APP下载

AMF文件结构分析及其工作机制介绍

2022-08-17余倞璇马绪怡

现代电影技术 2022年7期
关键词:调色关联管线

余倞璇 马绪怡

(1.北京电影学院影视技术系,北京 100088)

(2.北京电影学院中国电影高新技术研究院,北京 100088)

1 AMF简介

ACES (Academy Color Encoding System,学院颜色编码系统)是AMPAS (Academy of Motion Picture Arts and Sciences,美国电影艺术与科学学院)主导研发的一套颜色编码系统,同时也代表着一套严格的制作规范:它将不同来源的素材、视频信号通过IDT (Input Device Transform,输入设备转换),转到一个有着超过人眼可见光的色彩空间下进行视效、调色、LMT (Look Modification Transforms,风格修正转换)处理。最后通过RRT(Reference Rendering Transform,参考渲染转换)与ODT (Output Device Transform,输出设备转换),输出给不同的显示设备,以实现最大可能的色彩统一。

ACES自2014年1.0版本发布以来,已较为广泛地应用到了电影制作领域,据IMDB 的不完全统计(数据截至2020年),涉及到使用ACES制作的好莱坞影片或剧集已逾五百部,每年制作的数量依旧呈增长趋势。不仅是电影电视领域,作为一套开放的色彩管理系统,ACES也在游戏、VR/AR、显示硬件等领域有着广泛的应用。

在ACES实际使用中,它的色彩管线配置上存在着一些语焉不详的细节:用户通常需要考虑到许多不同的参数,例如:ACES 的版本设置、ASC CDL (Color Decision List,色彩决策表)工作色域设置、ODT 输出设备的白点设置等,这些参数的不同,会使最终呈现的影像与最初的设计有所差异。

为了让最终呈现的颜色准确无误,转换过程中每一个参数都必须严格一致,亟需提升工作流程,将ACES流程中会涉及到的大量LUT、CLF、CTL自动化地整合起来。

于是,在ACES推出1.0版本的时候,开发人员先是引入了“ACES clip”的概念,这里的“clip”指代的可以是一个实拍素材、序列帧文件,也可以是一个VFX 片段,亦或是最终的成片,ACES clip希望以文本的形式,系统地描述对当前物料的色彩管理流程,以实现自动化的处理,在这期间,“ACES clip”以“.ACEScilp.xml”作为文件尾缀。经过几年的工作组讨论,在2020年发布的ACES 1.2中,ACES元数据格式 (ACES Metadata Format,后文简称AMF)正式加入了ACES流程。AMF 取代并实现了“ACES clip”的设想,将ACES转换过程涉及到的参数,以XML 元数据作为sidecar文件的形式记录下来,然后将特定的素材与AMF 相关联,获取到ACES色彩管线信息,从而实现ACES色彩管理流程中每个参数的正确且有序地传递。

在格式上,AMF 以“.amf”为文件尾缀,也可以关联并写入到EDL、ALE 等剪辑信息传递文件中,进行数据的传递。应用方式上,AMF 通常需要与特定的素材之间建立联系,以让特定的素材获取到AMF 色彩管线信息,它们之间的关联形式灵活多样。在内容上,AMF 包含详细的IDT、ODT、RRT 信息,同时还支持携带LMT 信息——可以关联任意数量且带有顺序关系的CLF (Common LUT Format,通用LUT 格式)、ASC CDL文件,以实现创意风格的传递。

在ACES流程中使用AMF 将可以尽可能地简化复杂的色彩交接流程,减少沟通中的歧义,在生产的全流程中实现标准化的色彩管理。

2 AMF的工作机制

现有的颜色数据传递流程和AMF 颜色数据传递流程有着较大的区别(图1)。

图1 使用AMF流程和传统流程的对比

在拍摄环节,传统流程中需要给摄影机和现场监视器设置监看LUT 以获得一个正确的监看效果,而在AMF的流程中,可以应用AMF文件来取代作为监看的LUT,未来支持AMF 的摄影机,则可以根据AMF色彩管线信息输出视频代理。

在现场调色阶段,现场调色师会使用ASC CDL作为交接文件,但因为各种原因,ASC CDL文件传递到后期环节会比较麻烦,现场调色师难以与后期调色师形成数据上的沟通。而在AMF 的流程中,ASC CDL被内嵌在AMF 文件中,同时AMF 还携带着能正确还原ASC CDL 工作色域的色彩管线信息,使流程更加可靠。

在每日样片制作环节,现场剪辑使用来自于现场调色的AMF 文件,使粗剪的画面获取到ACES色彩管道信息。在导出剪辑信息传递文件时,可以在剪辑信息传递文件中,关联上每个镜头的AMF文件名或是UUID (Universally Unique Identifier,通用唯一标识符),之后流程中能通过剪辑信息传递文件自动找到关联的AMF,使时间线上的镜头批量获取到色彩管线信息。

在剪辑和调色流程中,通过导入之前的剪辑信息传递文件,读取到EDL中的AMF信息,以获得现场调色数据,如此后期调色师便可以与现场调色师建立沟通,以方便进一步调整色彩。

在视效制作环节,大部分的数字内容制作(DCC)软件都支持OCIO (Open Color IO),可以通过OCIO 支持ACES色彩管线。随着ACES流程得到越来越广泛的应用,之后支持ACES 的DCC软件或将会支持直接读取AMF。

在客户审片环节,审片平台也可以读取AMF色彩管线设置,将画面正确地在客户面前显示出来。

在存档与交付环节,AMF 文件本身还可以作为一个ACES色彩管线信息的存档文件,能够有效地储存影片的色彩创意,以方便未来重新制作。

3 AMF的文件命名方式与数据模块

AMF文件在传递时通常不是单个文件,而是大量的AMF 文件,其使用周期中会被不同的系统和工具所处理,所以一个统一且易读的文件名是AMF重要的元数据组成,官方建议使用者采用标准的命名格式,即“文件描述_ 标准日期格式(YYYY-MM-DD) _ 格林威治时间标准格式(HHMMSSZ)”,其中文件描述应该尽可能多地包含文件的用途、素材片段的ID、文件名、以及AMF的创建者姓名,文件名后半部的时间应采用AMF文件的创建时间。以下是一个标准的文件名命名案例,如:Dailies_Show Name_A002R2EC_2019-01-07_080228Z.amf。

这是一个简化后的AMF结构图 (图2),AMF利用可扩展标记语言来撰写,采用XSD 架构,树形结构的AMF 以<aces:aces MetadataFile>为根元素,向下扩展为<aces:amf Info><aces:clipId><aces:pipe Line><aces:archivedPipeline>四大主要的子元素。

图2 AMF文件结构图

一个AMF 文件必须包含根元素<aces:aces-MetadataFile>,作为所有元素的父级,由它扩展出其他子元素,它主要用于记录AMF 的各种版本信息:“version”内记录着AMF 的版本,“xmlns:aces”内记录着ACES命名空间的版本,“xmlns:xsi、xsi:schemeLocation”是可选的,分别记录着XML命名空间约束文档和ACES 架构实例命名空间约束文档。如果涉及到了ASC CDL 数 据,“xmlns:cdl”中会包含ASC CDL的版本信息。

子元素<aces:amfInfo>内包含着有关于该AMF的基础信息,它一共有四个子元素:“author、Date Time、description、uuid”,分别用来存放AMF的创建者名称、邮件,AMF 的创建时间与修改时间,文件的通用唯一识别码,以及对文件的补充描述信息。其中“dateTime”和“uuid”由系统辅助填写,软件通过元素“uuid”来识别,确定具体某一个AMF 文件,它是由系统生成的,是相对于文件名的一个更精准识别标识。

子元素<aces:clip Id>是一个可选的元素,里面的<aces:clip Name>描述的是片段的名称,元素<aces:sequence><aces:file>或是<aces:uuid>用于确定具体是哪一个视频文件或是哪一些序列帧。在AMF 文件和视频的关联原则上,则采用“多对多”的关联方式,即一个视频文件可以关联多个AMF文件,一个AMF文件也可以被多个视频使用。具体的关联逻辑依照不同的工作流程各有不同。

子元素<aces:pipeline>和<aces:archived-Pipeline>是AMF中用来描述ACES的色彩管线信息的部分,前者是必选的,用来表述当前ACES的色彩管线;后者是可选的,用来存储该AMF 曾经使用过的色彩管线存档,并不限定保存数量,它相当于是该AMF色彩管线的“变化日志”。这两个模块内部的结构都是一样的,一共包含着四个子元素:<aces:pipelineInfo><aces:input Transform><aces:look Transform ><aces:output Transform>,分别记录着该色彩管线的“基本介绍”与输入转换、风格转换、输出转换四个板块的信息,软件会按色彩管线顺序对画面中每个像素进行逐一处理。在色彩管线的“基本介绍”信息里,通常会包含着描述、作者、创建与修改时间以及系统版本等信息,其中“系统版本”是一个关键信息,它可能会影响到系统间的兼容性,软件可能会因为版本不同而选用不同的转换文件。AMF 每一次转换,都是关联CTL转换文件实现的,AMF 中仅记录该转换的“转换文件ID (TransformID)”“转换文件路径(File)”“哈希值 (Hash)”与“补充描述信息(Description)”,另外AMF 不仅支持ACES 内部的CTL转换,还支持一些自定义的外部转换。

在ACES 色彩管线设计上,<aces:input-Transform>和<aces:look Transform>元素都是可选的(如果导入的颜色属于ACES物料,则无需进行<aces:input Transform>转换,如果不具有风格调整则无需<aces:look Transform>转换);但是<aces:output Transform>转换是必须存在的,色彩管线中必须有一个确定且具体的输出目标,这里的<aces:output Transform>输出转换代表的是“Combined Output Transform”,即RRT 与ODT 的结合。

4 剪辑信息传递文件对AMF的支持

AMF可以写入剪辑信息传递文件,使之关联到时间线上对应镜头。

ALE (Avid Log Exchange File)文件通过自定义元数据的方式关联了AMF信息。ALE 新定义了两栏对片段描述的元数据,分别是“AMF_UUID”“AMF_NAME”元素。“AMF_UUID”表示AMF子元素<aces:uuid>内包含的UUID 信息。“AMF_NAME”表示与ALE文件关联,处于同一文件夹下的AMF 文件的文件名。通过这两列自定义元数据,支持ALE 的软件可以检索到相关的AMF文件,并应用到对应镜头上。

EDL (CMX3600 Edit Decision List,剪辑决策表)通过在片段后定义专用指令的方式,来支持自定义扩展,以关联AMF 文件。定义了两个专用指令“AMF_UUID”和“AMF_ NAME”,作用和ALE中一样,用于关联相关的AMF文件。

ALE 和EDL都支持ASC CDL作为内部参数传递,当其参数与AMF 中的参数产生冲突时,会优先选择AMF中的信息。

FCPXML (Final Cut Pro X XML)和OTIO 都支持给剪辑片段添加自定义元数据来关联AMF。里面同样包含了UUID、AMF文件名与及其路径。

在以上的剪辑信息传递文件中,都采用“AMF_UUID”和“AMF_NAME”来标识某一个AMF 文件,这二者都是可选的元素,当二者中缺少一个,会应用另一个元素进行AMF 文件的寻找和匹配,当二者的匹配产生冲突的时候,而UUID 的优先级会更高一点,被优先采用。

另外,以上剪辑信息传递文件都是通过“一条片段关联一个AMF文件”的方式,对AMF文件与片段的关联进行更高一级的管理,所以在这种情况下,AMF中用于链接片段的子元素<aces:clipId>理论上应该与关联的剪辑信息传递文件内的数据保持一致。

5 AMF现阶段的实际应用

AMF 一个比较常见的流程应用就是将现场调色数据传递至每日样片环节,实际创作中,仅使用LUT 或ASC CDL有时并不能够完整复现现场调色的结果(ASC CDL数据作用在不同的工作色域下得到的结果可能会不一样,或因监看环境不一致,观看效果也不一样),在AMF 中对于ASC CDL 有着相应的输入和输出转换,可以将ASC CDL 的数据应用在创建该ASC CDL 时所使用的对应工作色彩空间上,这可以使得ASC CDL 的调色信息不会因软件的工作色彩空间不同而影响画面。利用AMF文件将IDT、ODT、LMT 集成在一起,会极大地方便整个工作流程。以下笔者通过使用Pomfort公司的软件Sliverstack,以及Colorfront公司的Transkoder 系统,演示一下现场调色的数据,通过AMF传递到样片环节的工作流程。

如图3所示,在Silverstack调色界面中将调色模式选为“ACES CDL Advanced”,通过使用ACES的方式处理测试图,在此,IDT 根据素材选择为“ARRI-Alexa Log-C El800 v3”,ASC CDL 的工作色彩空间选择为ACES 1.2.0(ACEScct)。ACES所有转换都是公开的,这些转换在后续的流程中也可以得到其他软件的支持。

图3 在Silverstack的调色界面中选择调色模式

ACES色彩管线的LMT 部分是对画面进行风格调整的模块,一般ACES的使用者会在这里添加一些风格上的调整。AMF内支持添加多个LMT 节点,反映在软件里即可以在这里添加多个ASC CDL处理,并且这里的ASC CDL 处理是带有顺序关系的。还可以添加.CUBE 格式的LUT,以及一些Sliverstack自带的处理节点。ASC CDL信息会被记录到子节点“cdl:SOPNode”和“cdl:SOPNode”下以进行保存,对于其他非ASC CDL 的节点会被转换到CLF (通用LUT 格式,Common LUT Format)文件中进行保存,如图4所示,Cube格式的LUT 信息会被转成CLF的标准格式记录在CLF 文件中,其他Sliverstack 自带的处理,会以16 位浮点矩阵的形式记录到关联的CLF 中,这使得AMF支持的色彩变换更加多元,但缺点是,对于其他软件,CLF中的信息将无法进行数据上的修改。

图4 示例CLF中的信息 (部分省略)

在ACES RRT 和ODT 设置部分,笔者选择了Rec.709-Rec.709 100nits (dim)与ACES 1.2.0(ACEScct)。如图5、图6所示,选择进行AMF调色数据的导出,一同被导出的还有与之关联的CLF文件。

图5 在Silverstack中输出AMF

图6 在Silverstack中导出的AMF里所做的调整

AMF 导出后,将其导入Transkoder (目前Transkoder还不支持利用剪辑信息传递文件的方式导入AMF,所以这里对时间线上的镜头逐个应用AMF)。Transkoder 会自动加载AMF中选定的IDT、RRT、ODT 转换,以正确的方式将画面显示出来,同时因为所有的转换都是确定唯一的,所以不存在传统流程中LUT 的歧义或误用。

但是,因为软件之间的节点逻辑稍有不同,Transkoder并不能直接关联AMF内CLF文件,但可通过手动的方式,添加一个CLF节点,导入CLF信息。至此,AMF 完成了一次简单的信息传递,对于之后的流程,原则上也可以通过类似的方式传递片段或是成片的颜色信息(图7~图9)。

图7 在Transkoder系统中为单个镜头应用AMF

图8 片段应用AMF后的ACES色彩管线

图9 完整导入的后的ACES色彩管线及其输出效果

在之后的软件版本中,通过剪辑信息传递文件导入AMF的方式变得更加成熟之后,会使得整个工作流程变得更加顺畅,目前开发人员和软件厂商正在进一步推进这一部分内容。

考虑到AMF 存在的兼容性问题,笔者制作了一款针对AMF 解析、并转换成LUT 的工具 (https://github.com/youdrew/ACESMetadataForm at Analyst_CPP)。该工具使用C++和部分Python代码进行混合编程,在Mac OS (x86_64)上测试运行,主要是基于QT6框架,使用到的其他外部程序库包括CTL (Color Transform Language)库,用它来解析CTL转换并根据设定的管线渲染出相应的画面;OCIO (Open Color IO)库,用它来负责解析和转换各种格式的LUT 并检查输出的OCIO配置文件;QT 库主要负责图形界面的显示以及AMF文件的XML 解析和处理、文件的IO 操作。OpenCV 库主要负责码值的读取和图像的分析。

该工具通过输入一个AMF,读取到AMF中的ACES色彩管线信息,并将其以对象的形式存储到内部的变量中。在这期间,用户可以选择性地修改AMF中的信息,或选择是否输出“输入转换”或“风格转换”中的内容。然后根据色彩管线中的信息,在用户指定路径里遍历对应的CTL、CDL、LUT 文件,找到相应的色彩信息传递文件之后,根据管线内容,分别渲染一张“伊莎贝拉测试图”和一张“标准色彩图”,将渲染后的伊莎贝拉测试图显示到UI界面上(图10)。读取渲染后的标准色彩图上的信息,在“Cube”和“Curve”页面更直观地展现出色彩管线的颜色倾向。最后,为了应对不同的使用场景,可以将AMF 中的内容转换成LUT,使不支持AMF,但支持LUT 的软/硬件中支持AMF的ACES色彩管线信息(图11)。

图10 软件分析页面

图11 软件导出页面

6 结论与展望

ACES以其开源特性和极高的兼容度,获得了影视行业的青睐。自2020 年ACES 1.2 公布,AMF、CLF等新的工具引入了工作流程,AMF 以元数据的方式打包传递了ACES 的色彩管线信息,对复杂的传统流程有了一定的改进。但就目前来说,ACES依旧处在研发阶段,很多功能尚需要工程师继续完善,而AMF 虽然相比于ACES cilp已经改进了许多,但该文件格式也还是需要更多的软件厂商的支持,才能使它变得更普遍通用。

预计ACES 2.0推出的时候,AMF被正式投入使用,届时一个更方便、精准且适用性更高的色彩管理流程将会被建立起来,届时ACES流程也将得到更全面的普及,这也是行业所期盼的。

猜你喜欢

调色关联管线
两位画家
“一带一路”递进,关联民生更紧
亮度调色多面手
4种复古调色法
奇趣搭配
夹套管线预制安装
浅谈通信管线工程建设
浅谈通信管线工程建设
智趣
低锰管线钢的相变行为