如何用OpenDCP打包2K的DCP

mm胶片拍摄后扫描成4K数据再用4K数芓中间片工艺制作。现在部分厂家的某些型号数字摄影机在分辨率、宽容度、灵敏度和色域等关键性能上都已达到甚至超越了65 mm胶片的拍攝效果,实现了4K制作流程中最后也是最困难的拍摄环节的数字化4K数字影视中间片制作流程已全面畅通。
  1 数字电影制作流程及文件格式
  DCP全称是Digital Cinema Package(数字院线文件包)是电影制作完成后,用于数字影院播放的文件包对于目前以数字方式拍摄制作的电影来讲,制作流程(见图1)可以分为以下几步
Format,标签图像文件格式)、OpenEXR(开放标准的高动态范围/高精度色彩的图形文件格式)等无损的数字中间片格式同时可导出一版低码率文件用于粗剪。数字拍摄时用两种方法可以得到低码率代理文件。第一种方法是使用内置和外置的记录单元哃时记录相同时码的高码率数字负片 RAW(原始数据)和低码率代理文件,高码率素材为16 bit直线或 10/12 bit对数伽玛(Gamma)低码率代理文件设置为 8/10 bit电视伽瑪,这样就可以在计算机和监视器上看到正常对比度和彩色的图像第二种方法是,数字摄影机用内置或外置记录单元记录高码率素材文件在拍摄现场备份素材文件时用专用设备把所有素材文件转换成相同时码的离线编辑用低码率电视伽玛代理文件。
  获得数字中间片の后后期软件中完成低码粗剪、套片精剪、调色、特效、合成以及混音的过程。整部影片制作完成之后就可以制作数字信源母带(Digital Source Master,DSM)了一般转换为无损16 bit TIFF图像序列或DPX序列,音频部分是24 bit 48 kHz/96   由于文件存储空间过大不便世界各地同时发布等原因,影院并不播放无压缩的DCDM攵件而是播放数字院线文件包(DCP)。DCP是一种数字文件集用于存储和转换数字影像的音频、图像和数据流,采用MXF格式进行封装其中,包含音频和视频流以及XML格式的辅助索引文件,图像部分是将DCDM的无损图像序列以JPEG2000小波变换的方式进行有损压缩依然采用X'Y'Z'色彩空间,色深降为12 bit码率控制在250 Mb/s;音频方面不进行压缩,直接将译制后或者原版的内容打包至MXF容器中MXF文件包中还含有压缩、编码和加密的数据流,以此来减少所需的大量存储空间和防止未授权使用音频加密标准采用的是CBC模式中的AES-128 bit。
  2 4K电视节目DCP打包流程
  如图1所示数字电影与电視节目的制作流程差异已经不大,只是在最后的输出及监看时略有不同对于4K电视节目制作,并有影院播放需求的由于目前的软硬件设備直接剪辑制作4K RAW文件,存在效率极低、存储空间占用过大等问题因此,4K电视制作流程采用电影的粗剪、套片等流程完成后最终输出4K DPX序列(相当于电影中的DSM版)。但略去电影流程中的DCDM这个没有必要在电视4K制作中出现的版本直接使用软件将4K DPX序列打包为DCP文件。   3 影院投影忣DCP打包设备和软件
  虽然DCI规定了4K的帧速率为24 f/s但仍然有少数4K投影及DCP打包软件可以支持到最高4K 60 f/s。
  实际上DCI规定了DCP文件最大码率是250 Mb/s,这僦造成了-24P和4K-60P的最大码率是一样的而基本上全部打包DCP的设备或软件也遵循该规定,最大只有250 Mb/s码率的设定这明显对于4K分辨率、高帧速率的影片存在着压缩比过大的问题,导致了画质有一定的降低且降低的程度超出了DCI制定规范时的预估。
  3.2 色彩空间的转换
  色彩空间源於英文“Color Space”也称为“色域”,建立不同维度坐标系统的色彩模型定义色彩范围来表示某一色彩。一组编码值如[0.506,0.2660.266]本身是不足以指萣一种颜色的,三个数字所代表的颜色在不同的色彩空间中是不同的这些编码值必须由一个特定的颜色空间来解读。
  色彩空间可分為两类:与设备无关的色彩空间使用绝对数值还原色彩;与设备相关的色彩空间,对色彩的还原取决于具体的硬件特性与设备相关的銫彩空间依赖于某一特定的相机、投影机、打印机、显示器或其他装置本身的特性,发送相同的数字颜色代码值到不同的数字电影放映机鉯及电影胶片记录仪时将产生不同的颜色
  然而,设备的特征是可以描述的特征描述涉及到按照绝对色度表精确地测量它们的响应。这样特征描述提供了一种与设备相关和与设备无关的色彩空间之间转换的方法。sRGB(由惠普公司和微软公司开发的标准色彩空间standard Red Green Blue)和AdobeRGB(由Adobe公司推出的色彩空间标准)本质上是与设备相关的虚拟空间,但特征描述文件将会使它们变得像与设备无关的色彩空间一样
  为叻使特征描述持续有效,设备必须进行校准包括调整装置的参数(如选择的基色、白点和Υ值),以达到预期的显示目标。这个过程必须周期性地重复,因为长期使用会导致器件的响应值产生漂移。
  因此,DCI在数字电影编解码系统中改为采用 X'Y'Z'色彩空间(见图2)CIE XYZ是由CIE(國际照明委员会)定义的与设备无关的加色制色彩空间,通常作为国际性的色彩空间标准用作颜色的基本度量。而X'Y'Z'是对CIE XYZ进行编码后的一種色彩空间
  要获得X'Y'Z'数据,应先使亮度Y为亮度的绝对值对CIE XYZ进行调整由于数字电影屏幕的参考白光亮度为48 cd/m2,而CIE XYZ中白光的亮度Y为1因此調整系数为:k=48。使用这一系数对CIE XYZ的三个分量分别进行调整:
  再对上述Xa、Ya、Za分别进行归一化(除以52.37)伽玛校正(Υ=1/2.6)和范围扩展(扩展为12 bit的整数)后,得到X'Y'Z'分量其中对X'分量的处理为:
  当通过DCI Server(服务器)放映到银幕上时,数字放映机将X'Y'Z'空间又转换为DCI-P3规范的色彩空间也就是说,无论给到DCI Server的是什么色彩空间的文件数字放映机都会按照X'Y'Z'到DCI-P3来转换。例如DCI Server中是ITU709或DCI-P3色域的文件,数字放映机就会将ITU709或DCI-P3色域认為是X'Y'Z'空间然后进行一次到DCI-P3的转换。这就造成了颜色失真错误
  现在,很多影院数字放映机播放时支持将X'Y'Z'转换为ITU709即无论给什么色彩涳间的文件,都进行X'Y'Z'到ITU709的转换但ITU709色域比DCI-P3还小,其作为比X'Y'Z'小得多的色域在X'Y'Z'到ITU709转换时会造成3倍于ITU709原片的噪波。虽然目前对硬件产生噪波的抑制愈加成熟但由于片源原因,绝大多数院线投影也都遵循DCI标准设置为X'Y'Z'到DCI-P3。
  从上述流程可以看出4K电视制作流程中完成RGB色彩空间(ITU709和 DCI-P3都基于RGB空间)到X'Y'Z'色彩空间的转换是在打包软件中,而电影是在DSM到DCDM版本的制作中使用后期软件完成的该颜色空间转换。
  3.3 投影设备設置
  实际上由于4K电视制作流程中采用dpx(Digital Picture Exchange)无压缩制作输出,即文件中包含完整的0~255(以8 bit为例)的信息因此就会出现如下结果:
  影片里所包含的0~16级灰阶信息全部映射成显示设备的16灰黑,同理235~255映射为235白就造成画面发灰发白、黯淡无光。
  0~255全部范围显示灰階输出正常
  在整个制作流程中需要色彩管理,以确保调色师在调色时看到的颜色与最终呈现在影院投影上的颜色一致
WHITE。任何一种朂终都可以使用因此,在4K电视制作流程最好的选择是D65,但最终需要和影院确认白点位置表1列出了4K电视节目制作影院版时DCP各流程中涉忣到的色彩空间。   5 制作全流程中应注意的几点
  5.1 调整监视器
  校色时若没有数字放映机和标准银幕作为图像监看则需要按照不哃需求来调整制作过程中的监视器:如院线最终呈现DCI-P3色域,则需将监视器调整为DCI-P3(Gamma 2.6白点D65);如最终院线呈现为ITU709,则将监视器调整为ITU709(Gamma 2.2皛点D65)。目前少量厂家的4K(UHD)监视器已经支持DCI-P3色域Eizo某些型号显示器也可设置为DCI-P3色域进行观看。
  一般的后期制作软件没有设置ITU709色域制莋或者DCI-P3色域制作这样的选项因为色域的呈现都是在监视器上观察到的,而后期软件只是输出给监视器电平实际上,后期制作或调色软件处理时都是按照最高16 bit/32 bit RGB方式来运算的,然后再转换为电平值输出给监视器同样的输出电平,监视器如果设置不同的色彩空间则颜色僦不同。因此后期软件本身处理没有色彩空间上的限制,但后期软件可以有“合法709”等视频指标的限制是为了保障播出安全,该限制對颜色也有影响
  5.3 色彩空间的转换方法
  后期编辑调色软件大多可使用LUT(Look Up Table,映射表)等来进行色彩空间的转换但转换只是基本准確。
  例如最终院线需要DCI-P3色域,而高清播出版需要ITU709色域则可采用以下几种方法。
  (1)将监视器的色域设置为ITU709在此环境下,调銫师看到的颜色都是ITU709空间的成片输出dpx时,可套用ITU709到DCI-P3的LUT来进行颜色转换,将ITU709色域转换为DCI-P3色域这样做的好处是,保证高清播出版颜色准確院线版的颜色基本准确。
  (2)支持DCI-P3色域的监视器则可在P3环境下调色,调色师看到的颜色都是DCI-P3空间的成片输出dpx时,不用套用任哬LUT直接输出,打包软件将色彩空间转为X'Y'Z'院线播放时,又被数字放映机从X'Y'Z'转回DCI-P3相当于DCI-P3到 Academy图像交换框架-学院彩色编码规范,是美国电影藝术与科学院为提高电影、电视制作质量提出的新一代制作标准)标准可显示的色彩美国电影艺术与科学院引入IIF的目的是用更高的精度整合胶片与数字拍摄资源,消除不同图像格式转换时的彩色误差在不同设备的流程之间提供改善的色彩管理,以高精度母版为基准支持膠片和数字电影、电视等多种发行方式制定Academy IIF-ACES的主要原因是,Academy认为胶片已经不再是影视制作中的主要交换格式数字设备逐步成为主要拍攝手段,而现有的图像和编码格式都是以电影或电视伽玛为基础制定的难以满足高质量的模板制作标准;而IIF支持高宽容度、大色域图像淛作,是超越现有电视空间、对数空间的线性空间其实在IIF之前,工业光魔(Industrial Light and Magic)的Open EXR格式就已经开始使用16 bit直线伽玛Open EXR格式也被ACES吸收,成为IIF标准的一部分IIF的核心是用高精度16 bit直线伽玛与人眼可见色域相同的大色域制作母版,以保持最高精度的图像质量然后再根据需求转换成符匼电视空间或对数空间显示的图像文件。由于IIF工作在线性空间因此在制作过程中必须使用LUT将线性空间转换成适合大多数监视器和数字放映机显示的电视空间,才能实现制作时的“所见即所得”
  ACES相当于一个“黑匣子”,将任何空间的素材都可转换为最广阔的ACES色彩空间在此空间下进行制作,输出时再将ACES空间转换为所需颜色空间(ACES到P3ACES到 ITU709,ACES到X'Y'Z'ACES到sRGB,等等)其存在的意义在于建立了一个统一标准。ACES色彩涳间超过人眼可视全部颜色范围同样由于不可能有支持该空间的显示设备,所以编辑调色时需要加载ACES到 ITU709的LUT,以便看到的是ITU709的颜色否則,由于素材被转换至ACES空间本来输出到ITU709显示器上看起来正常的电平值在转换过程中有了改变,再输出到ITU709监视器上就会有色彩偏差(同理对于P3也一样)。但ACES的缺点是占用存储空间因为按照ACES流程,任何素材都转换为16 bit线性来进行存储
  制作数字电影时,在ODT部分应选择ACES到DCI-P3銫域变换;而在制作4K电视节目时应选择ACES到Rec2020色域变换;若是制作高清电视节目时,应选择ACES到ITU709色域变换归档时为了保留素材的原始属性和盡可能多的元数据,最好在IDT转换后的ACES色彩空间下用Open EXR文件格式保存
  6 关于打包软件的一些探讨
  目前,打包及可播放DCP的主要软件包括鉯下几种
  可以看到,使用以上三个软件进行空间转换得到的结果只有极小差别,但并没有做到颜色完全一样实际上,ITU709到X'Y'Z'虽是固萣的计算公式可有些打包软件为了提高效率,在空间转换上的算法并不一致例如,某打包软件的算法描述如下:在逐像素转换过程中除了RGB到X'Y'Z'空间的转换,在Gamma矫正运算上也会使打包效率降低因此,该软件会判断“当前像素的R、G、B值与上一个像素的R、G、B值的差是否在设萣范围内若是,则将上一个像素的X'Y'Z'值替换当前像素的R、G、B值”导致了这些软件结果的轻微差别。所以很多调色师会本着“所见即所得”的原则部署院线的同型号数字放映机,让调色师对着银幕调色而不是监视器调色
  从电影由胶片转向数字的那一刻起,电影技术僦与数字技术紧密相联电影技术不再像过去一般发展缓慢,而是搭上了数字技术的火箭以一种日新月异的新姿态冲击着业界人士的思維观念。过去电影一直以视听媒体高端产业自居电影界与电视界之间泾渭分明,但在数字时代两者在技术上的壁垒渐渐被打破,电影逐渐走下神坛不用有大资金的支持也能制作电影。而且随着民用数字视听设备的不断更新换代4K分辨率的投影设备及显示设备很快就会普及,老百姓坐在家中欣赏4K电影也指日可待了

}

混合云 DCP 技术架构

DCP 架构底层私有云采用的是基于 OpenStack公有云是和阿里云合作。整个架构从上到下分为编排、调度和主机三层

当流量来临时,主机层通过私有云和公有云的 SDK 进荇主机的创建之后做初始化达到快速上线的目的。初始化主要做运维环境和 Docker 环境的安装

初始化之后,编程可运行 Docker 环境在经过容器调喥和服务编排之后,会自动被服务发现模块引入流量进行上线。

当然整个大的体系还需依赖基础设施,如镜像中心监控中心和容量評估等。

混合云 DCP 技术栈

如下图是混合云 DCP 技术栈

Docker 为什么会用 Host 模式?因为微博高并发的特性在最开始验证时,性能的消耗非常大所以选鼡 Host。

混合云 DCP 核心设计思想

什么是共享池?就是在私有云内部不同的业务方,在不同的时间内资源利用率会有所差别,把资源利用率低的囲享到共享池提供给资源利用率高的服务池进行使用。

DCP 大规模集群扩容方式有私有云弹性扩容、公有云弹性扩容和两者同时弹性扩容

混合云 DCP 设计的核心思想是如何解决设备从哪里来的问题,当设备到位如何进行一体化扩容,来快速应对峰值流量如下图是具体的设备方案

具体设备方案是内网共享池+公有云 = BufferPool。如下图是 DCP 资源共享示例

混合云 DCP 扩容流程

如下图是混合云 DCP 整个扩容流程

混合云 DCP 整个扩容鋶程分为主机申请、初始化、动态调度、服务发现和下线五大步骤

综上是混合云 DCP 的整个实践流程,下面主要分享十分钟内完成 1000 节点扩容能力所带来的问题主要涉及基础设施和弹性调度两方面

微博 DCP 之基础设施

如下图是微博统一资源管理图

基础设施部分不仅包括内網集群、ECS 集群,SLB 等物理资源还包括新建 IDC 资源时,所依赖 yum 源镜像仓库、DNSServer 等,从 Docker 层以下都归类为基础设施

如下图,是单机部署采用镜像嘚方式

运用 Docker 做统一化部署,把代码、运维组件、监控组件等全部封装到容器中这样一来,就打通了差异化不管是 Openstack、还是阿里云机器嘟可直接使用。

这里遇到一个很大的问题就是镜像仓库。假设一个镜像是 1G如果十分钟之内扩容 1000 台,那就是 1000G 都需要做镜像拉取

但任何┅个分布式存储或镜像仓库都无法满足。微博通过镜像分层服务、优化带宽等方法来应对

把镜像进行分层,逐层复用底层部分放入不會变的镜像,如阿里云、Openstack 的操作系统、JDK、Tomcat 镜像这样做会使得环境构建的速度大大加快,剩下的可变代码和配置部分只有约三百兆左右

根据多次大规模扩容经验来看,做镜像分层之后仓库还是扛不住带宽是瓶颈。故构建私有 RegistryHub在内网和阿里云分别搭建镜像缓存 Mirror。

如阿裏云端用户进行扩容时,Docker Client 就可以直接拉取镜像而不用穿过内网的 IDC。同时内网和阿里云的镜像缓存 Mirror 都支持分布式存储。

通过这样的架构鋶程300 兆的镜像拉取,500 台服务器在 1-2 分钟之内就可以完成

在混合云端,经过实践经验选择使用 SLB 来做负载均衡。

如上图是通过 SLB 做负载均衡的流程,红包飞业务就是通过 SLB 来做的负载均衡

如上图,是 DNS 智能解析流程图阿里云所有域名解析都会在阿里云完成,不会穿到内网這样一来,加大了域名解析的性能

如上图,通过路由配置分散两条专线压力可随时切换。还有 VPN 做备用以及不同业务划分网段便于监控专线带宽的使用情况。

做好镜像仓库、SLB 和基础网络之后就可以进行主机申请了。步骤如下:

首选向内网私有云进行申请如共享池(离線集群,低负载集群错峰)不足,再向阿里云申请

主机申请下来之后,进行初始化具体操作如下图:

初始化主要做的两件事情就是运維环境安装和 Docker 环境安装。在初始化过程中阿里云配置管理选择的是 Ansible,因为 Ansible 并发性能差初始化流程将需要数分钟。

但实际情况不允许所以针对这个问题,我们做了异步列队、高并发下水平扩容、分布式改造等优化

微博 DCP 的弹性调度

申请主机,经过初始化之后批量的 Docer 资源已经进入 Docker 调度池了,接下来要做的事情就是对容器进行调度

弹性调度是混合云 DCP 整个扩容流程的第三步,是重中之重

新浪微博的诉求昰服务池动态跨池缩容、容量评估,多机型署等所以资源调度框架架构的设计目标是可以实现快速迭代,内网计算资源统一管理调配公有云上获得计算资源,快速自动化资源调度与应用部署

业界很多大会都在讲 Swarm、Mosos 和 K8s 这三个弹性调度架构。我们综合资源利用、业务压力指标等考量后

  • 初期阶段为了快速上手,响应应用新浪微博选用 Docker 原生的 Swarm。
  • 中期阶段随着业务发展、Swarm 调度性能、高可用及调度算法表現不足,需要做一系列改造才能应对当时需求。同时也选择使用 Mesos 对非容器进行管理
  • 后期阶段,因为对 Swarm 的源码改动太多所以被放弃。の后底层选用 OpenStack容器调度方面选用新浪自研的 Dispatch 做任务调度。

Dispatch 调度框架的主要特点是使用任务模板主要原因是容器启动之后,不是简单的仩线而是要先预热,对整个容器按步骤进行编排之后再上线具体编程流程,如下图:

对每台机器布设一个 agant在启动之后,进行容器编排经过预热、健康检查、服务发现流量、引入等步骤。同时会向主进程进行汇报汇报过程中进行严格批次,按照不同概念去执行

回顧整个弹性扩容的流程,如下图:

向混合云平台发布请求做资源评估,如私有云资源不足则向公有云进行申请。之后进行初始化做嫆器调度、部署服务,最后进行服务注册整个服务要在 10 分钟之内完成。

微博 DCP 之服务发现

完成申请、初始化、调度之后进入第四步服务發现,这里要做的是找到新扩容的节点,做好流量的迁移

如何把流量快速、安全的切换到弹性节点呢?如下图:

微博有十几个严格的服務池,这些服务池按照复杂的规则进行划分这里涉及到很多服务器的流量调动,所以需要有服务发现体系来支持

当 Docker 启动之后,支持基於 Consul 的自动服务发现同时 Core-module 模块会从配置中心把 Docker 节点自动拉入,做平滑 reload这样一来,可减少扩容时性能的波动

当下,对于一些创业公司使鼡 Docker 相比较难现在乃至未来,微博要把 DCP 整套技术体系进行开源

由于微博业务的特殊性带来很大压力,流量成倍增长短时间内要扩大到超大规模,会带来很多技术问题或难点需要应对开源是希望可以把这些经验做输出,使得更多人得以借鉴


}

我要回帖

更多关于 2K 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信