王 丰

中国电影科学技术研究所(中央宣传部电影技术质量检测所),北京 100086

1 引言

沉浸式音频(Immersive Audio)技术在电影中的应用具有里程碑意义,其凭借高品质的包容感、更加明确的位置感以及更为丰富细腻的声音细节迅速走进广大观众的视野,成为现阶段业界最为关注的焦点之一。与传统影厅5.1 声道、7.1 声道等二维环绕声技术相比,沉浸式音频影厅在观众区上方增加了能够展现声场高度(维度)的音频声道,同时具备了基于音频资产与元数据信息共同描述的音频对象元素,每个扬声器都是一个独立发声单元,声像定位效果更为准确。

为推动电影沉浸式音频技术的规范化发展,美国电影电视工程师协会(SMPTE)从2018 年起陆续发布多个技术标准,对影院沉浸式音频元数据类型、声场组结构、码流以及素材交换格式等多个方面作出规范,其目的是通过规范沉浸式音频系统的技术要求,让技术团队在沉浸式音频系统的研发和升级改造时有章可循,逐步提升不同品牌沉浸式音频系统的互操作性,进而改变现阶段不同品牌系统互不兼容的生态环境。

SMPTE 颁布的电影沉浸式音频系列标准具有较强的前瞻性,其定义的功能特性可以从技术层面为影视声音创作提供更大的表现空间,但当时尚无能够完整支持其全部功能的沉浸式音频系统。为此,SMPTE 于2021年针对SMPTE ST 2098-2:2019 沉浸式音频码流规范(Immersive Audio Bitstream Specification)标准(以下简称“SMPTE ST 2098-2”)发布了约束性文档SMPTE RDD 57:2021(以下简称“SMPTE RDD 57”),针对SMPTE ST 2098-2 的基础功能提出支持建议,对一些高级功能做出了限制建议,其目的是降低沉浸式音频码流的复杂度,阶段性推进影院放映端的应用普及率,未来会根据行业发展情况逐步取消相关功能性限制,直至支持完整功能特性。为促进沉浸式音频技术的健康发展与推广,提升沉浸式音频技术的优化与普及,使研发者能够在正确理解和遵循标准的前提下进行技术创新,确保不同品牌系统之间具备互操作性,同时使内容创作者和观众能够在不同的渲染还音平台享受尽可能一致的听觉体验,需要对沉浸式音频所涉及的相关标准进行跟踪研究和深入分析。本文深入研究了SMPTE ST 2098-2 标准中各内容元素参数位段的功能含义,梳理了沉浸式音频所涉及的全部功能特性,并结合其他相关标准,介绍了现阶段电影行业沉浸式音频技术的实际应用情况。

2 沉浸式音频码流元素分析与研究

SMPTE ST 2098-2 是关于沉浸式音频码流的主要标准,它从两个部分定义了沉浸式音频码流(Immersive Audio Bitstream, IABitstream)结构,包括前导码部分(Preamble)和沉浸式音频帧部分(IAFrame),如图1 所示。其中IAFrame 是IABitstream 中最重要的元素(Element),全部沉浸式音频数据都存在于其中,包括用于扬声器阵列的声床信息,以及可呈现到任意扬声器或任意虚拟位置的音频对象信息,此外还包含多个音频数据元素,每个元素都带有脉冲编码调制(Pulse Code Modulation, PCM)或数字无损压缩编码(Digital Losslessly-coded, DLC)音频资产信息。

图1 沉浸式音频码流结构示意图

IAFrame 元素是由多个子级元素组成的层次结构。子级元素类型包括声床定义元素(BedDefinition)、音频对象元素(ObjectDefinition)、无损压缩音频元素(AudioDataDLC)、脉冲编码调制音频元素(AudioDataPCM)、制作工具信息元素(AuthoringTool-Info)和 用 户 数 据 元 素(UserData),如 图2 所示。SMPTE ST 2098-2 明确指出,IABitstream 中除上述元素外不能够包含任何其他类型的元素。

图2 元素层级结构图

2.1 沉浸式音频帧(IAFrame)元素

IAFrame 是层级最高的帧头元素,其数据字段主要包含6类位段(图3)。

图3 沉浸式音频帧(IAFrame)元素

起始的Version 位段用于指定沉浸式音频码流的版本,符合IABitstream 规范码流版本的值应为1,该参数位段禁止使用0 或2 的值。最后的SubElement-Count 位段表示当前元素中包含的下级元素(子元素)总数。

SampleRate 与BitDepth 用于规定音频内容的采样频率和量化深度,同一个IABitstream 中所有音频内容应使用相同的采样率与量化深度。SampleRate的编码值为“0x0”表示采样率为48kHz,编码值为“0x1”表示采样率为96kHz,编码值“0x2”与“0x3”表示预留的未定义采样率。BitDepth 编码值为“0x0”表示16bit 的量化深度,BitDepth 编码值为“0x1”表示24bit的量化深度,BitDepth 编码值“0x2”与“0x3”表示预留的未定义量化深度,IAFrame 中的所有被取样音频内容的量化深度取值范围应在(-2n-1≤量化值<2n-1)的范围内。

FrameRate 用于表示IAFrame 的帧率,同时控制音频内容的采样数(SampleCount),FrameRate 编码值所对应的帧率与音频采样数的对应关系如表1所示。

表1 帧率与采样数的对应关系

MaxRendered 表示在单帧播放期间可同时被渲染的最大声道数和对象数之和。例如,对于具有无条件声床的9.1OH 声床和无条件对象的118 个对象的IAFrame 元素,该IAFrame 的最大渲染计数为128。对于所有预设的声道或对象,无论是否存在音频资产,其数量都会包含在最大渲染计数中。2022 年底,SMPTE 对SMPTE ST 2098-2 标准进行了修订,对MaxRendered 位段要求做了补充,规定采样频率为48kHz 码流的MaxRendered 值不高于128,规定采样频率为96kHz码流的MaxRendered 值不高于64。

2.2 声床定义(BedDefinition)元素

BedDefinition 元素包含声床元数据和指向音频资产的信息,主要包含14 类位段,其结构如图4所示。

图4 声床定义(BedDefinition) 元素

MetaID 用于识别帧与帧之间的元数据信息。在一个IAFrame 中相同类型的两个元素不得具有相同的MetaID,在连续的IAFrame 中,相同类型和相同MetaID 的元素通常表示连续音频。

ConditionalBed 表示符合特定声场环境时才会被激活的条件声床,该位段值为0 表示BedDefinition 元素不存在条件声床,BedDefinition 直接被激活;值为1表示BedDefinition 元素存在条件声床,且会随之出现BedUseCase 位段。从功能特性来看,条件声床属于沉浸式音频的高级功能,是为特定声场组环境而使用的声床,当该声床元素为主元素,且条件声床存在并被激活时,条件声床应(与其他有效声床元素一起)从对应的扬声器中还音。当该声床元素为子元素,且条件声床存在并被激活时,条件声床应替代原声床从对应扬声器中还音。

ChannelCount 表示BedDefinition 中的声道总数量,ChannelID 表示声床中的一个唯一声道,声道标准名称参数及重映射路由目的地遵从SMPTE ST 428-12、ITU-R BS.2051-3 和SMPTE ST 2098-5 中的定义。一个BedDefinition 元素中的同一个ChannelID 值不能出现1 次以上。AudioDataID 用于识别码流中携带的相关单声道音频资产,当该位段为0时表示没有音频资产,IABitstream 编码器可通过把该字段设为0 的方式表示静音音频资产。

此外,ChannelGainPrefix 规定了声道增益值的编码方式;ChannelDecorInfoExists 表示是否对该声床声道的音频资产进行去相关处理;AudioDescription 用于提供音频资产的描述信息,音频资产可以描述为基本音频类型的组合,其代码值对应的基本描述信息内容如表2所示。

表2 音频内容描述代码与描述信息内容的关系

2.3 声床重映射(BedRemap)元素

BedRemap 元素是BedDefinition 元素的可选子元素,用于描述如何将声床从原有配置转换为不同的播放配置。例如,该元素可以提供将9.1 声床下混到5.1 声床的相关信息,以便在5.1 声场配置的影院中播放内容。BedRemap 元素应具备明确的目标环境指向,并提供混合系数,从而将BedDefinition 元素中的每个通道分配到还音系统支持的声道上。当Bed-Remap 元素存在并被激活时,声音以与重映射参数一致的方式重映射到渲染器配置中,并通过该特定目标环境所对应的扬声器还音。BedRemap 元素主要包含8类位段,具体映射如图5所示。

图5 声床重映射(BedRemap)元素

RemapUseCase 表示激活重映射元素的目标声场组类型,如5.1、7.1DS、9.1OH 等。SourceChannels 对应的声道数量应为原BedDefinition 元素中指定声床所包含的声道数量。DestinationChannels 对应的声道数量应等于重映射后所定义的实际输出声道数量。RemapInfoExists 出现在重映射子块中,位段值应设置为1,表示需要进行重映射处理。DestinationChannelID 表示重映射的声道标识,在每个BedRemap 元素子块中具有唯一值,声道标识及路由目的地遵从SMPTE ST 428-12、ITU-R BS.2051-2 和SMPTE ST 2098-5 中的定义。RemapGainPrefix 规定了对重映射增益值编码的方式,代码值为0 表示无增益变化,代码值为1 表示静音,代码值为2 表示声道增益代码(RemapGain)包含在IABitstream 中,根据增益代码设置增益大小。

2.4 对象定义(ObjectDefinition)元素

ObjectDefinition 元素包含元数据和指向音频资产的指针信息,能够生成一个音频对象的一帧。为了给对象元数据参数提供足够的时间分辨率,需要将单个IAFrame 所对应的时长进行分割,将一帧的声音内容按照一定的时间间隔划分为多个子块,子块的数量、排列顺序以及每个子块的采样数和持续时长如表3所示。

表3 不同帧率与音频子块参数的对应关系

在ObjectDefinition 元素中还包含着区域(Zone)信息,该信息由码流中的代码值来表示。对于影厅来说,区域是指影厅不同部分所包含的扬声器合集,一般可分为9 个区域,包括银幕后方三区域(左中右)、左右墙二区域、后墙二区域(左右)、顶层二区域(左右)。但当子元素ObjectZoneDefinition19 被激活时,高级区域配置会取代原有的9个区域。

ObjectDefinition 元素主要包含22 类位段,如图6所示。该元素可以支持ObjectDefinition 和Object-ZoneDefinition19两类子元素。

图6 对象定义元素(ObjectDefinition)

ConditionalObject 表示符合特定声场环境时才会被激活的音频对象,其作用与前面的ConditionalBed基本一致。从功能特性上来看,条件对象是为特定目标环境而使用的替代音频对象,当该对象为主对象元素,且条件对象被激活时,条件对象应(与其他有效对象元素一起)出现在对应的位置上。当该对象为子对象元素,且条件对象被激活时,不同坐标位置的子音频对象将替换主音频对象,主音频对象应不发声。

除了以上元素外,PanInfoExists 表示子块(Sub Block)中是否存在声象移动信息;ObjectGainPrefix 表示对象增益值的编码方法;ObjectPosX、ObjectPosY、ObjectPosZ 规定了移动音频对象在三维空间中的位置坐标;ObjectSnap 位段相当于调整音频音色与音频位置优先级关系的总开关,而ObjectZoneControl 位段相当于区域控制功能的总开关;ObjectSpreadMode 指定了码流中音频对象的扩散信息类型,其代码值对应的标识及功能如表4 所示;ObjectDecorCoefPrefix规定了对“去相关”增益值进行编码的方法。

表4 扩散类型描述

2.5 对象区域定义19(ObjectZoneDefinition19)元素

ObjectZoneDefinition19 是ObjectDefinition 元素的可选子元素,定义了与ObjectDefinition 中常规9 区域定义方式不同的替代分区定义,将还音环境区域扩展至影厅内19 个分区。如果解码器能够识别ObjectZoneDefinition19 参数位段,并且支持Object-ZoneDefinition19 元素识别,应将音频信号区域设置关系与19 个区域位置相关联,并将主ObjectDefinition 元素中的ZoneGainPrefix 和ZoneGain 值替换为子元素(ObjectZoneDefinition19)中的ZoneGainPrefix 和ZoneGain19值。

2.6 脉冲编码调制音频(AudioDataPCM)元素与无损压缩音频(AudioDataDLC)元素

AudioDataPCM 与AudioDataDLC 元素都是携带实际音频内容的位段,一般来说也是数据量最大的位段。AudioDataPCM 元素主要包含了线性PCM 无压缩音频数据内容,其采样频率支持48kHz 或96kHz,量化深度支持16bit 或24bit,该元素用于表示音频内容,会被声床和音频对象元素所引用。该元素主要包含AudioDataID、PCMData 共2 类位段。AudioDataDLC 元素由声床元素和音频对象元素组成,所携带的音频资产应符合编码规范,该规范是为数字影院而设计,采用了时域线性预测音频压缩方式,对音频资产进行无损编码。每个AudioDataDLC 元素包含一帧单声道无损压缩编码音频波形,该元素不能用于非整数帧率的IAFrame。该元素主要包含AudioDataID、DLCSize、DLCSampleRate 等19 类参数位段。AudioDataPCM 和AudioDataDLC 元素仅用于表示音频内容,解码过程中会被声床和音频对象元素所引用,元素本身不涉及功能特性内容,在此不做过多分析与解读。

2.7 制作工具信息(AuthoringToolInfo)元素和用户数据(UserData)元素

AuthoringToolInfo 元素用于标识创建沉浸式音频的供应厂商和制作工具(包括版本号),渲染器在解码过程中可能会跳过这个元素,该元素包含AuthoringToolURI 参数位段。AuthoringToolURI 是一个以空字符结束的ASCII 文本字符串,每个字符包含在一个8bit 字节中。它是由国际互联网工程任务组(IETF)发布的IETF RFC 2396 定义的统一资源标识符组成,标识内容是制作工具供应商注册的DNS 可解析域名(大多为官方网址),以防止不同供应商提供的工具标识符之间的重复。URI 的其余部分可由制作工具供应商以符合RFC 2396的任何方式定义。

UserData 元素携带使用SMPTE UL 标识的未定义用户数据,渲染器在解码过程中可能会跳过这个元素。该元素包含UserID、UserDataBytes 两类参数位段。UserID 是符合SMPTE ST 298 标准的SMPTE管理通用标签,用于标识创建UserDataBytes 的实体及其定义,与无法识别的UserID 相关联的UserData-Bytes可能会被忽略。

3 沉浸式音频标准在电影行业的发展与应用情况

3.1 电影沉浸式音频技术的全球发展与应用现状

沉浸式音频技术自2012 年在电影行业正式商用以来,迅速成为电影行业的重要发展方向,国际上有电影电视工程师协会(SMPTE)、数字电影倡导组织(DCI)、跨协会数字电影论坛(ISDCF)等多个组织参与了沉浸式音频标准的商讨或制定,2018 年发布的SMPTE ST 2098 系列标准较为重要。在其制定标准的过程中,众多国际厂商展开了技术博弈,多家企业为实现技术互操作性和标准化发展公开并统一了诸如元数据类型、声场组结构、码流规范等技术指标,同时最大限度地保留了诸如源母版格式、渲染算法等自有知识产权的核心技术内容。

ISDCF 于2019 年2 月底组织电影行业技术公司基于SMPTE ST 2098-2 实施了初步互插拔测试(Plug-Fest),测试过程中的DCP 素材均使用符合SMPTE ST 2098-2 码流规范的MXF 数据文件来生成。巴可(Barco)、杜比(Dolby)、Xperi/DTS、D-BOX 等厂商参加了测试,测试结果表明现阶段有条件实现沉浸式音频基础功能的正确渲染还音,但对一些高级功能尚不能实现互操作。为兼顾大多厂商音频渲染器现阶段的实际运算能力,降低音频编码的复杂程度,控制沉浸式音频在电影行业广泛应用的技术门槛,ISDCF 认为需要制定一份约束性文档,并于2020 年针对SMPTE ST 2098-2 发布了沉浸式音频码流约束-IAB 应用简介1(Immersive Audio Bitstream Constrants-IAB Application Profile 1),该文档包含了对数字电影数据包(DCP)和合成播放列表(CPL)标识符、声床声道、音频对象以及元数据信息等完整特性的约束建议,逐步引导不同厂商沉浸式音频系统实现渲染还音的互操作。

SMPTE 采纳了ISDCF 的建议,于2021 年发布了SMPTE RDD 57 文档,该文档针对ST 2098-2 的基础功能提出明确建议,对现阶段用于DCP 的沉浸式音频码流提出多项约束性建议,未来会根据行业的发展情况逐步取消相关功能性限制,直至完全符合SMPTE ST 2098-2的全部功能要求。

SMPTE RDD 57 文档主要对沉浸式音频码流的以下功能做出了限制:

(1)采样率限制为48kHz,且不允许使用其他采样率;

(2)帧率仅允许是24FPS、25FPS、30FPS、48FPS和60FPS;

(3)仅允许拥有1 个声床,声床最多包含10 个声道,声场组仅允许采用SMPTE ST 428-12:2013 数字电影发行母版通用音频声道和声场组(D-Cinema Distribution Master Common Audio Channels and Soundfield Groups)标准中定义的7.1DS 声场组,或SMPTE ST 2098-5:2018 数字电影沉浸式音频声道和声场组(D-Cinema Immersive Audio Channels and Soundfield Groups)标准中定义的9.1OH 声场组;

(4)仅允许BedUseCase 参数位段被设置为Always Use 的条件声床存在,并且BedDefinition 不拥有任何子元素,对同步声床功能也做出了禁用建议;

(5)ChannelGainPrefix 与ObjectGainPrefix 位段值只能为0,且不能存在ChannelGain 和ObjectGain 位段,也就是说现阶段音频增益控制功能暂不能包含在码流中;

(6)声床内容不允许进行去相关处理,且不允许包 含ChannelDecorCoefPrefix 和ChannelDecorCoef 位段,在对音频对象进行去相关处理时,ObjectDecorCoefPrefix 位段值仅允许为0 或1,不允许包含Object-DecorCoef 位段;

(7)仅允许ObjectUseCase 参数位段被设置为Always Use 的条件对象存在,并且ObjectDefinition 不能拥有任何子元素;

(8)如果存在ObjectSnapTolExists 位段,则该位段值应为0,不允许包含ObjectSnapTolerance 位段;

(9)如果存在区域增益控制信息,ZoneGainPrefix位段值仅允许为0 或1,且仅可存在11 种区域赋值方式;

(10)区域扩散中ObjectSpreadMode 位段值应始终为2,不允许包含ObjectSpreadX、ObjectSpreadY 和ObjectSpreadZ 这3个位段;

(11)不 允 许 包 含ObjectZoneDefinition19 位 段信息;

(12)不允许包含BedRemap、AuthoringToolInfo 和UserData 这三个元素。

3.2 我国电影沉浸式音频技术发展情况

目前,我国有多家从事电影沉浸式音频技术的公司或机构,他们通过不断技术研发和创新,为电影制作和放映提供了多种出色的沉浸式音频解决方案,并在国内外影院中得到了一定范围的应用与认可。

中国电影科学技术研究所(中央宣传部电影技术质量检测所)始终积极推进数字电影沉浸式音频技术发展,在沉浸式音频系列技术标准制定期间就已开始积极关注和跟踪相关进展,并在标准发布后第一时间对标准进行了研究和解读,认为相关标准的发布,为制版和发行的统一、系统间的兼容提供了技术和标准指导。我单位技术研发团队对SMPTE ST 2098 系列标准的兼容性、技术专利壁垒、国产化可行性等关键问题进行了深入研究和探索,为实现数字电影沉浸式音频系统全流程国产化、打破国外技术垄断并与国际技术标准实现兼容,推动沉浸式音频技术在行业制作、发行、放映等环节的应用打下了良好的基础。现阶段正在逐步推进《数字电影沉浸式音频发行母版技术要求》《数字电影沉浸式音频渲染效果主观评价方法》等相关沉浸式音频标准的起草,旨在形成具有我国自主知识产权的数字影院沉浸式音频标准化体系,提高相关领域的国际话语权和行业竞争力,实现电影还音技术的高质量发展。

4 结语

沉浸式音频技术在影视、音乐、娱乐等诸多行业的应用愈发普及,俨然已成为当今乃至未来一段时间音频技术的发展方向。对于电影行业来说,沉浸式音频系统已成为高端影厅的标配,同时节目制作机构也有越来越多的混录棚通过升级改造具备了支持电影沉浸式音频制作生产的硬件环境,与其相关的技术标准也紧随技术与市场的发展不断修订更新。

随着技术标准的不断完善,沉浸式音频的元数据类型以及功能特性将会逐步统一,音频内容的编解码方式也会逐步走向一致,国内外不同厂商的沉浸式音频设备将会逐步实现良好的兼容,从而有效降低影片的制作运营成本。标准对技术发展具有规范促进作用,在保证通用性、兼容性和可操作性方面发挥了积极作用,但同时也可能会产生专业技术壁垒,使有些公司不得不放弃自研技术,甚至需要为制作符合标准的产品支付高额的专利授权费。

在现阶段电影行业中,沉浸式音频技术仍有着多元化发展空间,比如目前在母板格式和渲染算法等方面还没有统一的标准规范,可以预见沉浸式音频未来的主要技术赛道将从“功能特性创新”逐步转换为“渲染算法创新”。相关研究人员和从业人员要找准切入点,积极提升沉浸式音频技术领域多元化发展,将技术研发与市场应用相结合,逐步拓展活跃用户数量,充分发掘核心技术所蕴含的商业价值,推动其形成技术标准,用技术实力提升市场博弈能力和行业竞争力,进一步推动电影行业高质量发展。❖