定位在表示音频内容的比特流的帧中的帧元素转让专利

申请号 : CN201280023527.5

文献号 : CN103703511B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马克斯·诺伊恩多夫马库斯·穆尔特鲁斯斯特凡·德勒海科·普尔哈根弗兰斯·德邦特

申请人 : 弗劳恩霍夫应用研究促进协会杜比国际公司皇家飞利浦股份有限公司

摘要 :

通过进行如下布置可以在一方面实现过高比特率与解码开销之间的更好折衷并且在另一方面实现帧元素定位的灵活性:在比特流的帧序列中的每个帧包括N个帧元素的序列,并且另一方面,该比特流包括配置块,该配置块包括指示元素数目N的字段以及类型指示语法部分,该类型指示语法部分对于N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型,其中在帧的N个帧元素的序列中,每个帧元素具有由类型指示部分针对相应元素位置指示的元素类型,在相应元素位置处,相应帧元素定位在比特流中的相应帧的N个帧元素的序列内。因而,帧被相等地构造为每个帧包括由类型指示语法部分指示的帧元素类型的N个帧元素的相同序列,其以相同的连续次序定位在比特流内。通过使用对于N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型的类型指示语法部分,通常能够针对帧的序列对该连续次序进行调整。

权利要求 :

1.一种用于对比特流(12)进行解码的解码器,所述比特流(12)包括配置块(28)和帧(20)序列,所述帧(20)分别表示音频内容(10)的连续时间周期,其中,所述配置块(UsacConfig)包括指示元素的数目N的字段(numElements)以及类型指示语法部分(52),所述类型指示语法部分(52)针对N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型,并且其中,所述帧序列中的每个帧包括N个帧元素的序列,其中,所述解码器被配置为通过以下方式对每个帧(20)进行解码:根据由所述类型指示语法部分针对相应元素位置指示的元素类型对每个帧元素(22)进行解码,其中在所述相应元素位置处,相应帧元素定位在所述比特流(12)中的相应帧(20)的所述N个帧元素(22)的序列内。

2.根据权利要求1所述的解码器,其中,所述解码器被配置为从所述类型指示语法部分(52)读取N个语法元素(54)的序列,其中每个语法元素针对所述语法元素位于所述N个语法元素的序列中的元素位置指示元素类型。

3.根据权利要求1所述的解码器,其中,所述解码器被配置为从所述配置块(28)读取N个配置元素(56)的序列,其中每个配置元素包括针对所述配置元素位于所述N个配置元素的序列中的元素位置的元素类型的配置信息,其中,所述解码器被配置为:在根据元素类型对每个帧元素(22)进行解码时,其中由所述类型指示语法部分针对在所述比特流(12)中的相应帧(20)的所述N个帧元素(22)的序列内定位相应帧元素的相应元素位置来指示所述元素类型,所述解码器使用针对相应元素位置的所述元素类型的配置信息,其中在所述相应元素位置处,相应帧元素定位在所述比特流(12)中的相应帧(20)的所述N个帧元素(22)的序列内。

4.根据权利要求3所述的解码器,其中,所述类型指示语法部分(52)包括N个语法元素(54)的序列,其中每个语法元素指示相应元素位置的元素类型,其中在所述相应元素位置处,相应语法元素定位在所述N个语法元素的序列内,并且所述解码器被配置为从所述比特流(12)交替地读取所述配置元素(56)和所述语法元素(54)。

5.根据权利要求1所述的解码器,其中,所述多个元素类型包括扩展元素类型,其中,所述解码器被配置为:

从任何帧(20)的所述扩展元素类型的每个帧元素(22b)读取关于相应帧元素的长度的长度信息(58),以及通过将关于所述相应帧元素的长度的所述长度信息(58)用作跳过区间长度,跳过所述帧(20)的所述扩展元素类型的所述帧元素(22)中的至少一些帧元素(22)的至少一部分。

6.根据权利要求5所述的解码器,其中,

所述解码器被配置为对于所述类型指示语法部分指示所述扩展元素类型的每个元素位置,从所述配置块(28)读取配置元素(74),所述配置元素(74)包括针对所述扩展元素类型的配置信息,其中在读取针对所述扩展元素类型的所述配置信息时,从所述比特流读取关于默认扩展有效载荷长度的默认有效载荷长度信息(60),所述解码器还被配置为:在读取所述扩展元素类型的所述帧元素(22)的所述长度信息(58)时,从所述比特流(12)读取条件语法部分(62)的默认扩展有效载荷长度标记(64),检查所述默认扩展有效载荷长度标记(64)是否被设定,并且如果所述默认扩展有效载荷长度标记(64)没有被设定,则从所述比特流(12)读取所述条件语法部分(62)的扩展有效载荷长度值(66),以获得相应帧元素的扩展有效载荷长度,以及如果所述默认扩展有效载荷长度标记(64)被设定,则将所述相应帧元素的所述扩展有效载荷长度设定为与所述默认扩展有效载荷长度相等,所述解码器还被配置为通过将所述相应帧元素的所述扩展有效载荷长度用作跳过区间长度,跳过所述帧(20)的所述扩展元素类型的所述帧元素(22)中的至少一些帧元素的有效载荷区段(68)。

7.根据权利要求5所述的解码器,其中,

所述解码器被配置为:在读取所述帧的所述扩展元素类型的任何帧元素的所述长度信息(58)时,从所述比特流(12)读取扩展有效载荷存在标记(70),检查所述扩展有效载荷存在标记(70)是否被设定,并且如果所述扩展有效载荷存在标记(70)没有被设定,则停止读取所述扩展元素类型的相应帧元素(22b),并继续读取当前帧(20)的另一帧元素(22)或后续帧(20)的帧元素,以及如果所述扩展有效载荷存在标记(70)被设定,则从所述比特流读取指示所述扩展元素类型的相应帧的扩展有效载荷长度的语法部分,并且在其所述长度信息的所述扩展有效载荷存在标记(70)被设定的情况下,至少针对所述帧(20)的所述扩展元素类型的所述帧元素(22)中的一些帧元素(22),通过将从所述比特流读取的所述扩展元素类型的相应帧元素(22b)的所述扩展有效载荷长度用作跳过区间长度,跳过所述帧元素的有效载荷区段(68)。

8.根据权利要求6所述的解码器,其中,

所述解码器被配置为:在读取所述默认有效载荷长度信息(60)时,

从所述比特流(12)读取默认有效载荷长度存在标记,

检查所述默认有效载荷长度存在标记是否被设定,

如果所述默认有效载荷长度存在标记没有被设定,则将所述默认扩展有效载荷长度设定为零,以及

如果所述默认有效载荷长度存在标记被设定,则从所述比特流明确地读取所述默认扩展有效载荷长度。

9.根据权利要求5所述的解码器,其中,

所述解码器被配置为:在读取所述配置块(28)时,针对由所述类型指示语法部分(52)指示出所述扩展元素类型的每个元素位置:从所述比特流(12)读取包括针对所述扩展元素类型的配置信息的配置元素(56),其中,所述配置信息包括指示多个有效载荷数据类型中的有效载荷数据类型的扩展元素类型字段(72)。

10.根据权利要求9所述的解码器,其中,所述多个有效载荷数据类型包括多通道边信息类型和多对象编码边信息类型,所述解码器被配置为:在读取所述配置块(28)时,针对由所述类型指示语法部分(52)指示出所述扩展元素类型的每个元素位置:如果所述扩展元素类型字段(72)指示所述多通道边信息类型,则从所述数据流(12)读取作为所述配置信息一部分的多通道边信息配置数据(74);并且如果所述扩展元素类型字段(72)指示所述多对象编码边信息类型,则从所述数据流读取作为所述配置信息一部分的多对象边信息配置数据(74);以及所述解码器被配置为:在对每个帧进行解码时,

通过如下方式对定位在由所述类型指示语法部分指示出所述扩展元素类型并且由所述配置元素(56)的所述扩展元素类型指示出所述多通道边信息类型的任何元素位置处的所述扩展元素类型的所述帧元素进行解码:使用所述多通道边信息配置数据(74)来配置多通道解码器(44e),并且向这样配置的多通道解码器(44e)给送所述扩展元素类型的相应帧元素(22b)的有效载荷数据(68)作为多通道边信息,以及通过如下方式对定位在由所述类型指示语法部分指示出所述扩展元素类型并且由所述配置元素(56)的所述扩展元素类型指示出所述多对象编码边信息类型的任何元素位置处的所述扩展元素类型的所述帧元素进行解码:使用所述多对象边信息配置数据(74)来配置多对象解码器(44d),并且向这样配置的多对象解码器(44d)给送所述扩展元素类型的相应帧元素(22b)的有效载荷数据(68)作为多对象信息。

11.根据权利要求9所述的解码器,其中,所述解码器被配置为针对由所述类型指示语法部分指示出所述扩展元素类型的任何元素位置,从所述比特流(12)读取配置数据长度字段(76)作为针对相应元素位置的所述配置元素的所述配置信息的一部分,以获得配置数据长度,检查由对于所述相应元素位置的所述配置元素的所述配置信息的所述扩展元素类型字段(72)指示的所述有效载荷数据类型是否属于作为所述多个有效载荷数据类型的子集的有效载荷数据类型预定集合,如果由针对所述相应元素位置的所述配置元素的所述配置信息的所述扩展元素类型字段(72)指示的所述有效载荷数据类型属于所述有效载荷数据类型预定集合,则从所述数据流(12)读取作为针对所述相应元素位置的所述配置元素的所述配置信息的一部分的依赖于有效载荷数据的配置数据(74),以及使用所述依赖于有效载荷数据的配置数据(74),对所述帧(20)中的所述相应元素位置处的所述扩展元素类型的所述帧元素进行解码,以及如果由针对所述相应元素位置的所述配置元素的所述配置信息的所述扩展元素类型字段(72)指示的所述有效载荷数据类型不属于所述有效载荷数据类型的预定集合,则使用所述配置数据长度来跳过所述依赖于有效载荷数据的配置数据(74),以及使用在所述帧(20)中的所述相应元素位置处的所述扩展元素类型的所述帧元素中的所述长度信息(58)来跳过所述帧元素。

12.根据权利要求5所述的解码器,其中,

所述解码器被配置为:在读取所述配置块(28)时,针对由所述类型指示语法部分(52)指示出所述扩展元素类型的每个元素位置,从所述比特流(12)读取包括针对所述扩展元素类型的配置信息的配置元素(56),其中,所述配置信息包括分段使用标记(78),以及所述解码器被配置为:在读取定位在由所述类型指示语法部分指示出所述扩展元素类型并且所述配置元素的所述分段使用标记(78)被设定的任何元素位置处的帧元素(22)时,从所述比特流读取分段信息,以及使用所述分段信息将连续帧的这些帧元素的有效载荷数据放在一起。

13.根据权利要求1所述的解码器,其中,所述解码器被配置为使得在对所述帧(20)中的位于由所述类型指示语法部分指示出单通道元素类型的元素位置处的帧元素(22)进行解码时,所述解码器重建音频信号。

14.根据权利要求1所述的解码器,其中,所述解码器被配置为使得在对所述帧(20)中的位于由所述类型指示语法部分指示出通道对元素类型的元素位置处的帧元素(22)进行解码时,所述解码器重建两个音频信号。

15.根据权利要求11所述的解码器,其中,所述解码器被配置为使用相同的可变长度代码来读取所述扩展元素类型字段(72)以及所述配置数据长度字段(76)。

16.一种用于将音频内容编码到比特流中的编码器,所述编码器被配置为:

将所述音频内容(10)的连续时间周期(18)编码为帧(20)序列,使得每个帧(20)包括元素数目为N的帧元素(22)序列,其中所述帧(20)分别表示所述音频内容(10)的所述连续时间周期(18),每个帧元素(22)具有多个元素类型中的相应一个类型,使得定位在所述帧元素序列的N个元素位置的序列中的任何公共元素位置处的帧的帧元素(22)具有相同元素类型,将配置块(28)编码到所述比特流(12)中,所述配置块(28)包括指示元素的数目N的字段以及类型指示语法部分,所述类型指示语法部分针对所述N个元素位置的序列中的每个元素位置指示相应元素类型,以及针对每个帧(20),将所述N个帧元素(22)的序列编码到所述比特流(12)中,使得定位在所述比特流(12)中的所述N个帧元素(22)的序列内的相应元素位置处的所述N个帧元素的序列中的每个帧元素(22)具有由所述类型指示语法部分针对所述相应元素位置指示的元素类型。

17.一种用于对比特流(12)进行解码的方法,所述比特流(12)包括配置块(28)和帧(20)序列,所述帧(20)分别表示音频内容的连续时间周期,其中,所述配置块(28)包括指示元素的数目N的字段(50)以及类型指示语法部分(52),所述类型指示语法部分(52)针对N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型,并且其中,所述帧序列中的每个帧包括N个帧元素的序列,其中,所述方法包括通过以下方式对每个帧(20)进行解码:根据所述元素类型对每个帧元素(22)进行解码,所述元素类型由所述类型指示语法部分针对相应帧元素在所述比特流(12)中的相应帧(20)的所述N个帧元素(22)的序列内所定位的相应元素位置来指示。

18.一种用于将音频内容编码到比特流中的方法,所述方法包括:

将所述音频内容(10)的连续时间周期(18)编码为帧(20)序列,使得每个帧(20)包括元素数目为N的帧元素(22)序列,其中所述帧(20)分别表示所述音频内容(10)的所述连续时间周期(18),每个帧元素(22)具有多个元素类型中的相应一个类型,使得定位在所述帧元素序列的N个元素位置的序列中的任何公共元素位置处的帧的帧元素(22)具有相同元素类型,将配置块(28)编码到所述比特流(12)中,所述配置块(28)包括指示元素的数目N的字段以及类型指示语法部分,所述类型指示语法部分针对所述N个元素位置的序列中的每个元素位置来指示相应元素类型,以及针对每个帧(20),将所述N个帧元素(22)的序列编码到所述比特流(12)中,使得定位在所述比特流(12)中的所述N个帧元素(22)的序列内的相应元素位置处的所述N个帧元素的序列中的每个帧元素(22)具有由所述类型指示语法部分针对所述相应元素位置指示的元素类型。

说明书 :

定位在表示音频内容的比特流的帧中的帧元素

技术领域

[0001] 本发明涉及音频编码,诸如所谓的USAC编解码器(USAC=统一语音与音频编码),尤其涉及定位在相应比特流的帧内的帧元素。

背景技术

[0002] 近年来,已经能够获得若干音频编解码器,每个音频编解码器被特定设计为适合专用应用。通常,这些音频编解码器能够并行地对不止一个音频通道或音频信号进行编码。一些音频编解码器甚至通过将音频内容的音频通道或音频对象进行不同分组并且使这些组经受不同的音频编码原理而适于对音频内容进行不同编码。更甚者,这些音频编解码器中的一些允许将扩展数据插入比特流中,以适应音频编解码器的未来扩展/发展。
[0003] 这种音频编解码器的一个示例为如在ISO/IEC CD 23003-3中定义的USAC编解码器。命名为“Information Technology-MPEG Audio Technologies-Part 3:Unified Speech and Audio Coding”的该标准详细地描述了对关于统一语音与音频编码的提议征求的参考模型的功能块。
[0004] 图5A和图5B例示编码器和解码器的框图。在下文中,简明地说明各个块的大体功能。因此,关于图6来说明将全部所得语法部分一起放在比特流中的问题。
[0005] 图5A和图5B例示编码器和解码器的框图。USAC编码器和解码器的框图反映出MPEG-D USAC编码的结构。可以像这样来描述大体结构:首先,存在包括MPEG环绕(MPEGS)功能单元和增强型SBR(eSBR)单元的公共预/后-处理,该MPEGS功能单元处置立体声或多通道处理,以及该eSBR单元处置输入信号中的较高音频频率的参数表示。然后,存在二个分支,一个分支包括改进的高级音频编码(AAC)工具路径,而另一分支包括基于线性预测编码(LP或LPC域)的路径,该另一分支转而以LPC残差的频域表示或时域表示为特征。用于AAC和LPC二者的所有传输频谱在量化与算术编码后以MDCT域表示。时域表示使用ACELP激励编码方案。
[0006] 在图5A和图5B中示出MPEG-D USAC的基本结构。在该图中的数据流为从左至右、从上到下。解码器功能为找出比特流有效载荷中的量化音频频谱或时域表示的描述,并且对所量化的值和其它重建信息进行解码。
[0007] 在传输频谱信息的情况下,解码器将重建量化频谱,通过在比特流有效载荷中起作用的任意工具来处理所重建的频谱以达到如由输入比特流有效载荷描述的实际信号频谱,以及最后将频域频谱转换到时域。在频谱重建的初始重建和定标后,存在修改频谱中的一个或更多个频谱以提供更高效编码的可选择工具。
[0008] 在传输时域信号表示的情况下,解码器将重建量化的时间信号,通过在比特流有效载荷中起作用的任意工具来处理重建的时间信号以达到如由输入比特流有效载荷描述的实际时域信号。
[0009] 对于对信号数据进行操作的可选择工具中的每一个,保留“通过”的选项,并且在略去处理的所有情况下,在其输入的频谱或时间样本在不进行修改的情况下直接通过工具。
[0010] 在比特流将其信号表示从时域改变为频域表示或从LP域改变为非LP域的情况下,反之亦然,解码器将借助于适当的转换重叠-相加加窗法来帮助从一个域至另一个域的转换。
[0011] 在转换处置之后,以相同的方式将eSBR和MPEGS处理施加至两条编码路径。
[0012] 比特流有效载荷解复用器工具的输入为MPEG-D USAC比特流有效载荷。解复用器将比特流有效载荷分为对于每个工具的部分,并且向工具中的每个工具提供与该工具有关的比特流有效载荷信息。
[0013] 来自比特流有效载荷解复用器工具的输出为:
[0014] ●取决于当前帧中的核心编码类型,为:
[0015] ○由以下内容表示的经量化且无噪声地进行编码的频谱
[0016] ○定标因子信息
[0017] ○算术编码的频谱线
[0018] ●或为:线性预测(LP)参数连同由以下中的任一者表示的激励信号:
[0019] ○经量化且算术编码的频谱线(变换编码激励,TCX)或
[0020] ○ACELP编码时域激励
[0021] ●频谱噪声填充信息(可选择)
[0022] ●M/S决策信息(可选择)
[0023] ●时间性噪声整形(TNS)信息(可选择)
[0024] ●滤波器组控制信息
[0025] ●时间展开(TW)控制信息(可选择)
[0026] ●增强型频谱带宽复制(eSBR)控制信息(可选择)
[0027] ●MPEG环绕(MPEGS)控制信息。
[0028] 定标因子无噪声解码工具从比特流有效载荷解复用器取得信息、解析该信息以及对霍夫曼和DPCM编码定标因子进行解码。
[0029] 定标因子无噪声解码工具的输入为:
[0030] ●用于无噪声编码频谱的定标因子信息
[0031] 定标因子无噪声解码工具的输出为:
[0032] ●定标因子的解码整数表示。
[0033] 频谱无噪声解码工具从比特流有效载荷解复用器取得信息、解析该信息、对算术编码数据进行解码以及重建量化的频谱。该无噪声解码工具的输入为:
[0034] ●无噪声编码频谱
[0035] 该无噪声解码工具的输出为:
[0036] ●频谱的量化值。
[0037] 逆量化器工具取得频谱的量化值,并且将整数值转换成未定标的重建频谱。该量化器为伸缩量化器,其伸缩因子取决于选择的核心编码模式。
[0038] 逆量化器工具的输入为:
[0039] ●用于频谱的量化值
[0040] 逆量化器工具的输出为:
[0041] ●未定标的逆量化频谱
[0042] 噪声填充工具被用于填充解码的频谱中的频谱间隙,该频谱间隙例如由于编码器中对位需求的严格限制而在频谱值被量化为零时出现。噪声填充工具的使用是可选择的。
[0043] 噪声填充工具的输入为:
[0044] ●未定标的逆量化频谱
[0045] ●噪声填充参数
[0046] ●定标因子的经解码的整数表示
[0047] 噪声填充工具的输出为:
[0048] ●对于先前被量化为零的频谱线的未定标的逆量化频谱值
[0049] ●定标因子的经修改的整数表示
[0050] 重新定标工具将定标因子的整数表示转换成实际值,并且用相关的定标因子乘以未定标的逆量化频谱。
[0051] 定标因子工具的输入为:
[0052] ●定标因子的经解码的整数表示
[0053] ●未定标的逆量化频谱
[0054] 来自定标因子工具的输出为:
[0055] ●经定标的逆量化频谱
[0056] 有关M/S工具的概述,请参考ISO/IEC 14496-3:2009,4.1.1.2。
[0057] 有关时间性噪声整形(TNS)工具的概述,请参考ISO/IEC 14496-3:2009,4.1.1.2。
[0058] 滤波器组/块交换工具施加在编码器中执行的频率映射的逆。逆改进型离散余弦变换(IMDCT)用于滤波器组工具。IMDCT可以被配置为支持120、128、240、256、480、512、960或1024频谱系数。
[0059] 滤波器组工具的输入为:
[0060] ●(逆量化)频谱
[0061] ●滤波器组控制信息
[0062] 来自滤波器组工具的输出为:
[0063] ●时域重建音频信号
[0064] 当使能时间扭曲模式时,时间扭曲式滤波器组/块交换工具替换普通滤波器组/块交换工具。滤波器组与普通滤波器组相同(IMDCT),另外地,加窗时域样本通过时间改变重新采样而从扭曲的时域映射至线性时域。
[0065] 时间扭曲式滤波器组工具的输入为:
[0066] ●逆量化频谱
[0067] ●滤波器组控制信息
[0068] ●时间扭曲控制信息
[0069] 来自滤波器组工具的输出为:
[0070] ●线性时域重建音频信号。
[0071] 增强型SBR(eSBR)工具重新生成音频信号的高频带。其基于在编码期间截断的谐波序列的复制。其调整所生成的高频带的频谱包络并且施加逆向滤波,以及将噪声和正弦分量相加以重新创建原始信号的频谱特性。
[0072] eSBR工具的输入为:
[0073] ●量化的包络数据
[0074] ●其它控制数据
[0075] ●来自频域核心解码器或ACELP/TCX核心解码器的时域信号
[0076] eSBR工具的输出为:
[0077] ●时域信号,或
[0078] ●例如,在使用MPEG环绕工具的情况下,信号的QMF域表示。
[0079] MPEG环绕(MPEGS)工具通过向由适当空间参数控制的输入信号应用复杂的上混程序而从一个或更多个输入信号生成多个信号。在USAC背景下,MPEGS通过对与所传输的下混信号并存的参数边信息进行传输而用于对多通道信号进行编码。
[0080] MPEGS工具的输入为:
[0081] ●下混的时域信号,或
[0082] ●来自eSBR工具的下混信号的QMF域表示
[0083] MPEGS工具的输出为:
[0084] ●多通道时域信号
[0085] 信号分类器工具分析原始输入信号,并且根据其来生成触发不同编码模式的选择的控制信息。输入信号的分析是与实现有关的,并且将试图选择用于给定输入信号帧的最佳核心编码模式。信号分类器的输出(可选择地)还可以用于影响其它工具(例如MPEG环绕、增强型SBR、时间扭曲式滤波器组以及其它)的行为。
[0086] 信号分类器工具的输入为:
[0087] ●原始的未修改输入信号
[0088] ●另外的依赖于实现的参数
[0089] 信号分类器工具的输出为:
[0090] ●控制核心编解码器的选择(非LP滤波的频域编码、LP滤波的频域
[0091] 编码、或LP滤波的时域编码)的控制信号。
[0092] ACELP工具通过将长期预测器(适应性码字)与脉冲样序列(创新码字)组合来提供高效地表示时域激励信号的方式。重建的激励通过LP合成滤波器进行发送以形成时域信号。
[0093] ACELP工具的输入为:
[0094] ●适应性及创新码本索引
[0095] ●适应性及创新代码增益值
[0096] ●其它控制数据
[0097] ●逆量化且内插的LPC滤波器系数
[0098] ACELP工具的输出为:
[0099] ●时域重建的音频信号
[0100] 基于MDCT的TCX解码工具用于将经加权的LP残差表示从MDCT域变换回时域信号,并且输出包括经加权的LP合成滤波的时域信号。IMDCT可以被配置支持256、512或1024频谱系数。
[0101] TCX工具的输入为:
[0102] ●(逆量化)MDCT频谱
[0103] ●逆量化且内插的LPC滤波器系数
[0104] TCX工具的输出为:
[0105] ●时域重建音频信号
[0106] 在ISO/IEC CD 23003-3(其通过引用并入本文)中公开的技术允许如下定义:例如作为单个通道元素的通道元素仅包含用于单个通道的有效载荷,或者作为通道对元素的通道元素包括用于两个通道的有效载荷,或者作为LFE(低频增强型)通道元素的通道元素包括用于LFE通道的有效载荷。
[0107] 自然地,USAC编解码器并非是能够经由一个比特流来对关于多于一个或二个音频通道或音频对象的较为复杂的音频编解码的信息进行编码和传送的唯一编解码器。因此,USAC编解码器仅用作具体示例。
[0108] 图6示出在一个公共场景中分别描绘的编码器和解码器两者的较一般的示例,其中编码器将音频内容10编码成比特流12,解码器从该比特流12来解码音频内容或其至少一部分。解码的结果即重建在14处表示。如图6所示,音频内容10可以由多个音频信号16构成。例如,音频内容10可以是由多个音频通道16构成的空间音频场景。可替代地,音频内容10可以表示音频信号16的聚集,其中音频信号16单独地和/或成组地表示可以任凭解码器的使用者的处理而被一起放到音频场景中的各个音频对象,使得获得例如用于特定扬声器配置的空间音频场景形式的音频内容10的重建14。编码器以连续时间周期为单位对音频内容10进行编码。这种时间周期在图6中的18处示意性示出。编码器使用相同的方式对音频内容10的连续周期18进行编码:也就是说,编码器每时间周期18将一个帧20插入比特流12中。这样做,编码器将相应时间周期18内的音频内容分解成帧元素,其数目和意义/类型对于每个时间周期18和帧20是分别相同的。关于上面概述的USAC编解码器,例如,编码器将在每个时间周期18内的同一对音频信号16编码成帧20的元素22的通道对元素,而使用另一编码原理诸如单通道编码用于另一音频信号16,以获得单个通道元素22等。对用于从如由一个或更多个帧元素22定义的下混音频信号中获得音频信号的上混的参数边信息进行采集,以在帧20内形成另一帧元素。在此情况下,传递该边信息的帧元素与其它帧元素有关或形成用于其它帧元素的一种扩展数据。自然地,这种扩展并不限于多通道或多对象边信息。
[0109] 一种可能性为在每个帧元素22内指出相应帧元素为何种类型。有利地,这种程序使得能够处理比特流语法的未来扩展。不能处理某些帧元素类型的解码器将简单地通过利用这些帧元素内部的相应长度信息来跳过比特流内的相应帧元素。此外,可以允许符合标准的不同类型解码器:一些解码器能够理解第一类型集合,而其它解码器理解并可以处理另一类型集合;可替代的元素类型将简单地被各个解码器忽略。另外,编码器将能够根据其裁量来对帧元素进行排序,使得可以以例如最小化解码器内的缓冲需求的次序向能够处理这种另外的帧元素的解码器给送帧20内的帧元素。然而,不利的是,比特流将必须传递每个帧元素的帧元素类型信息,其必要性转而在一方面对比特流12的压缩率造成负面影响,并且在另一方面对解码复杂度造成负面影响,原因是在每个帧元素内出现用于检查相应帧元素类型信息的解析开销。
[0110] 自然地,可能以另外的方式确定帧元素22间的次序,如按照惯例,但由于例如未来扩展帧元素的特定性质需要或建议例如帧元素间的不同次序,这种程序防止编码器具有重排帧元素的自由度。
[0111] 因此,分别存在对比特流、编码器以及解码器的另一构思的需求。

发明内容

[0112] 因此,本发明的目的在于提供解决上述问题并且允许获得帧元素定位的更有效方式的比特流、编码器以及解码器。
[0113] 此目的由正在审查中的独立权利要求的主题事物实现。
[0114] 本发明基于发现可以在如下情况下在一方面实现过高的比特流与解码开销之间的较好折衷并且可以在另一方面实现帧元素定位的灵活性的:比特流的帧序列中的每个帧包括N个帧元素的序列,并且另一方面,该比特流包括配置块,该配置块包括指示元素数目N的字段以及类型指示语法部分,该类型指示语法部分针对N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型,其中在帧的N个帧元素的序列中,每个帧元素具有由类型指示部分针对相应元素位置的元素类型,在该相应元素位置处,相应帧元素定位在比特流中的相应帧的N个帧元素的序列内。因而,帧被相同地结构造为每个帧包括由类型指示语法部分指示的帧元素类型的N个帧元素的相同序列,其以相同的连续次序定位在比特流内。通过使用对于N个元素位置的序列中的每个元素位置指示多个元素类型中的元素类型的类型指示语法部分,通常能够对于帧序列对该连续次序进行调整。
[0115] 通过该措施,帧元素类型可以以任何次序进行排列,诸如根据编码器的裁量,使得选择例如最适于所使用的帧元素类型的次序。
[0116] 多个帧元素类型可以例如包括扩展元素类型,其中扩展元素类型的帧元素包括关于相应帧元素的长度的长度信息,使得不支持特定扩展元素类型的解码器能够使用该长度信息作为跳过区间长度来跳过扩展元素类型的这些帧元素。另一方面,能够处置扩展元素类型的这些帧元素的解码器相应地处理其内容或有效载荷部分,并且因为编码器能够将扩展元素类型的这些帧元素自由地定位在帧的帧元素序列内,所以通过适当地选择帧元素类型次序并且在类型指示语法部分内传达该次序,可以将在解码器处的缓冲开销最小化。
[0117] 本发明实施例的有利实现是从属权利要求的主题。

附图说明

[0118] 此外,下面将参照附图来描述本申请的优选实施例,在附图中:
[0119] 图1示出根据实施例的编码器及其输入和输出的示意性框图;
[0120] 图2示出根据实施例的解码器及其输入和输出的示意性框图;
[0121] 图3示意地示出根据实施例的比特流;
[0122] 图4A至图4Z以及图4ZA至图4ZC示出根据实施例的例示比特流的具体语法的伪代码的表;
[0123] 图5A和图5B示出USAC编码器和解码器的框图;以及
[0124] 图6示出典型的一对编码器和解码器。

具体实施方式

[0125] 图1示出根据实施例的编码器24。编码器24用于将音频内容10编码为比特流12。
[0126] 如在本申请的说明书的引言部分所述的,音频内容10可以是若干音频信号16的聚集。音频信号16表示例如空间音频场景的各个音频通道。可替代地,音频信号16形成一起定义音频场景的音频对象集合中的音频对象以在解码侧自由混合。如在26处所示的,音频信号16被以公共时间基准t定义。也就是说,音频信号16可以与相同的时间区间有关,并且可以因此相对于彼此时间对齐。
[0127] 编码器24被配置为将音频内容10的连续时间周期18编码成帧20的序列,使得每个帧20表示音频内容10的时间周期18中的相应时间周期。在某种意义上,编码器24被配置为以相同方式对每个时间周期进行编码,使得每个帧20包括元素数目为N的帧元素的序列。在每个帧20内,适用的是每个帧元素22是多个元素类型中的相应一种类型,并且定位在某一元素位置处的帧元素22具有相同或相等的元素类型。也就是说,在帧20中的第一帧元素22具有相同的元素类型并且形成帧元素的第一序列(或子流);所有帧20中的第二帧元素22具有彼此相等的元素类型并且形成帧元素的第二序列,以此类推。
[0128] 根据实施例,例如,编码器24被配置为使得多个元素类型包括以下:
[0129] a)例如单个通道元素类型的帧元素可以由编码器24生成以表示一个单个音频信号。因此,在帧20内的某一元素位置处的帧元素22的序列(例如,因此形成帧元素的第i个子流的第i个元素帧(其中0>i>N+1))将一起表示这种单个音频信号的连续时间周期18。如此表示的音频信号可以直接与音频内容10的音频信号16中的任何一个相对应。然而,可替代的是如将在下面更详细地描述的,这样表示的音频信号可以是下混信号中的一个通道,其连同定位在帧20内的另一元素位置处的另一帧元素类型的帧元素的有效载荷数据来生成音频内容10的多个音频信号16,该音频信号16的数目高于刚才提及的下混信号的通道的数目。在下面更详细地描述的实施例的情况下,这种单个通道元素类型的帧元素被表示为UsacSingleChannelElement(Usac单个通道元素)。在MPEG环绕和SAOC的情况下,例如仅存在单个下混信号,其可以是单声、立体声或在MPEG环绕的情况下甚至为多通道。在多通道的情况下,例如5.1下混包括两个通道对元素和一个单个通道元素。在此情况下,单个通道元素以及两个通道对元素仅是下混信号的一部分。在立体声下混的情况下,将使用通道对元素。
[0130] b)通道对元素类型的帧元素可以由编码器24生成以表示立体声音频信号对。也就是说,定位在帧20内的公共元素位置处的此类型帧元素22将一起形成帧元素的相应子流,其表示这样的立体声音频对的连续时间周期18。如此表示的立体声音频信号对可以直接为音频内容10的任一对音频信号16,或者可以表示例如如下下混信号:其连同定位在另一元素位置处的另一元素类型的帧元素的有效载荷数据生成音频内容10的音频信号16,该音频信号16的数目高于2。在下面更详细地描述的实施例中,这种通道对元素类型的帧元素被表示为UsacChannelPairElement(Usac通道对元素)。
[0131] c)为了传输关于音频内容10的需要较少带宽的音频信号16(如超低音通道等)的信息,编码器24可以以如下类型的帧元素来支持特定类型的帧元素:该类型的帧元素被定位在公共元素位置处,表示例如单个音频信号的连续时间周期18。该音频信号可以直接是音频内容10的音频信号16中的任何之一,或者可以是如之前关于单个通道元素类型和通道对元素类型所描述的下混信号的一部分。在下面更详细地描述的实施例中,这种特定帧元素类型的帧元素被表示为UsacLfeElement。
[0132] d)扩展元素类型的帧元素可以由编码器24生成,以连同比特流来传送边信息,使得解码器能够对由类型a、b和/或c中的任何类型的帧元素表示的音频信号中的任何音频信号进行上混,以获得更高数目的音频信号。定位在帧20内的某一公共元素位置处的这种扩展元素类型的帧元素将因此传送与连续时间周期18有关的边信息,使得能够对由其它帧元素中的任何帧元素表示的一个或更多个音频信号的相应时间周期进行上混,以获得具有更高音频信号数目的相应时间周期,其中后者可以与音频内容10的原始音频信号16相对应。这种边信息的示例可以例如为参数边信息,诸如例如MPS或SAOC边信息。
[0133] 根据在下面详细描述的实施例,可用的元素类型仅包括上面概述的四种元素类型,但其它元素类型也是可用的。另一方面,元素类型a至c中仅一种或二种是可用的。
[0134] 如根据上面的讨论变清楚的,从比特流12略去扩展元素类型的帧元素22或在解码中忽略这些帧元素不会完全使音频内容10的重建不可能:至少其它元素类型的剩余帧元素传送足够的信息来生成音频信号。这些音频信号不一定与音频内容10的原始音频信号或其适当子集相对应,但可以表示音频内容10的一种“结合体”。也就是说,扩展元素类型的帧元素可以传送如下信息(有效载荷数据):该信息表示关于定位在帧20内的不同元素位置处的一个或更多个帧元素的边信息。
[0135] 然而,下面描述的实施例中,扩展元素类型的帧元素并不限于这种边信息传送。更确切地,扩展元素类型的帧元素在下文中被表示为UsacExtElement(Usac扩展元素),并且被定义为传送有效载荷数据连同长度信息,其中该长度信息使得解码器能够接收比特流12,以在例如解码器无法处理这些帧元素内的相应有效载荷数据的情况下跳过扩展元素类型的这些帧元素。这将在下面更详细地描述。
[0136] 然而,在继续描述图1的编码器之前,应当注意存在有对于上述元素类型的替代方案的若干可能性。对于上述扩展元素类型尤为如此。具体地,在扩展元素类型被配置为使得其有效载荷数据能够被例如无法处理相应有效载荷数据的解码器跳过的情况下,这些扩展元素类型帧元素的有效载荷数据可以是任何有效载荷数据类型。例如,该有效载荷数据可以形成关于其它帧元素类型的其它帧元素的有效载荷数据的边信息,或者可以形成表示另一音频信号的自包含有效载荷数据。此外,即使在扩展元素类型帧元素的有效载荷数据表示其它帧元素类型的帧元素的有效载荷数据的边信息的情况下,这些扩展元素类型帧元素的有效载荷数据不限于刚才描述的种类,即多通道边信息或多对象边信息。多通道边信息有效载荷例如将由其它元素类型的帧元素中的任何帧元素表示的下混信号伴随空间线索诸如双耳线索编码(BCC)参数(诸如通道间相干值(ICC)、通道间电平差(ICLD)和/或通道间时间差(ICTD)),以及可选择的通道预测系数,所述参数根据例如MPEG环绕标准在本领域中是已知的。刚才提及的空间线索参数可以例如以时间/频率分辨率(即时间/频率网格的每个时间/频率片一个参数)在扩展元素类型帧元素的有效载荷数据内传输。在多对象边信息的情况下,扩展元素类型帧元素的有效载荷数据可以包括相似的信息,诸如对象间交叉关联(IOC)参数、对象电平差(OLD)以及展现原始音频信号已经如何被下混到由另一元素类型的帧元素中的任何帧元素表示的下混信号的通道中的下混参数。该下混参数例如根据SAOC标准在本领域中是已知的。然而,扩展元素类型帧元素的有效载荷数据可以表示的不同边信息的示例为例如SBR数据,其用于对由定位在帧20内的不同元素位置处的其它帧元素类型的帧元素中的任何帧元素表示的音频信号的高频部分的包络进行参数编码,并且用于例如通过使用从作为高频部分的基础的上述音频信号所获得的低频部分而使得能够进行频带复制,然后形成通过SBR数据的包络如此获得的高频部分的包络。更一般地,扩展元素类型的帧元素的有效载荷数据可以传送边信息,以用于在时域中或频域中修改由定位在帧20内的不同元素位置处的其它元素类型中的任何类型的帧元素表示的音频信号,其中频域可以例如是QMF域或某其它滤波器组域或变换域。
[0137] 进一步继续描述图1的编码器24的功能,编码器24被配置为将配置块28编码到比特流12中,该配置块28包括指示元素的数目N的字段以及类型指示语法部分,该类型指示语法部分对于N个元素位置的序列中的每个元素位置来指示相应元素类型。因此,编码器24被配置为对于每个帧20将N个帧元素22的序列编码到比特流12中,使得N个帧元素22的序列中的定位在比特流12的N个帧元素22的序列内的相应元素位置处的每个帧元素22的元素类型由类型指示部分针对相应元素位置指示。换言之,编码器24形成N个子流,N个子流中的每个子流为相应元素类型的帧元素22的序列。也就是说,对于所有的这些N个子流,帧元素22具有相等的元素类型,而不同子流的帧元素可以具有不同的元素类型。编码器24被配置为通过将关于一个公共时间周期18的这些子流的所有N个帧元素进行连结以形成一个帧20而将所有这些帧元素复用到比特流12中。因此,在比特流12中,这些帧元素22在帧20中进行排列。在每个帧20内,N个子流——即关于相同时间周期18的N个帧元素——的表示被以静态连续次序进行排列,该静态连续次序分别由元素位置顺序和配置块28中的类型指示语法部分定义。
[0138] 利用类型指示语法部分,编码器24能够自由地选择次序,N个子流的帧元素22使用该次序在帧20内进行排列。通过该措施,编码器24能够例如将解码侧的缓冲开销保持为尽可能低。例如,传送另一子流(基本子流)的帧元素(其为非扩展元素类型)的边信息的扩展元素类型的帧元素的子流可以被定位在帧20内的如下元素位置:其在这些基本子流帧元素在帧20中所位于的元素位置的紧后方。通过该措施,解码侧必须缓冲基本子流的解码的结果或中间结果以将边信息施加于该结果或中间结果上的缓冲时间被保持为低,并且可以减小缓冲开销。在子流的帧元素(其为扩展元素类型)的有效载荷数据的边信息被施加至由帧元素22的另一子流(基本子流)表示的音频信号的中间结果(诸如频域)的情况下,扩展元素类型帧元素22的子流紧跟随基本子流的定位不仅最小化缓冲开销,而且将解码器可能必须中断所表示的音频信号的重建的进一步处理的持续时间最小化,原因在于例如扩展元素类型帧元素的有效载荷数据修改与基本子流的表示有关的音频信号的重建。然而,将依赖性扩展子流定位在其表示音频信号的基本子流前方也可能是有利的,其中该扩展子流参考该基本子流。例如,编码器24自由地将扩展有效载荷的子流在比特流内定位在相对于通道元素类型子流的上游。例如,子流i的扩展有效载荷可以传送动态范围控制(DRC)数据,并且例如相对于在元素位置i+1处的通道子流内、诸如经由频域(FD)编码对相应音频信号进行编码,在更早的元素位置i之前或在该元素位置i处传输自流i的扩展有效载荷。然后,当对由非扩展类型子流i+1表示的音频信号进行解码与重建时,解码器能够立即使用该DRC。
[0139] 目前为止所描述的编码器24表示本申请的可能实施例。然而,图1还示出编码器的仅被理解为图示的可能内部结构。如图1所示,编码器24可以包括分配器30和序列化器32,在分配器30和序列化器32之间以在下面更详细地描述的方式连接有多个编码模块34a至34e。具体地,分配器30被配置为接收音频内容10的音频信号16,并且将所接收的音频信号
16分配至各个编码模块34a至34e上。分配器30将音频信号16的连续时间周期18分配至编码模块34a至34e的方式是静态的。具体地,分配可以使得每个音频信号16被排他地转发至编码模块34a至34e之一。例如,给送至LFE编码器34a的音频信号被LFE编码器34a编码到类型c(参见上文)的帧元素22的子流中。例如,给送至单通道编码器34b的输入的音频信号被单通道编码器34b编码为类型a(参见上文)的帧元素22的子流。类似地,例如,给送至通道对编码器34c的输入的音频信号对被通道对编码器34c编码为类型d(参见上文)的帧元素22的子流。刚才提及的编码模块34a至34c以其输入和输出连接在一方面的分配器30和另一方面的序列化器32之间。
[0140] 然而,如图1所示,编码器模块34a至34e的输入不仅仅连接至分配器30的输出接口。更确切地,编码器模块34a至34e的输入可以由编码模块34d及34e中的任何编码模块的输出信号给送。编码模块34d和34e是如下编码模块的示例:其被配置为将多个输入音频信号在一方面编码为较少数目的下混通道的下混信号,并且在另一方面编码为类型d(参见上文)的帧元素22的子流。如根据以上讨论所清楚的,编码模块34d可以是SAOC编码器,而编码模块34e可以是MPS编码器。下混信号被转发至编码模块34b和34c中的任何编码模块。由编码模块34a至34e生成的子流被转发至序列化器32,该序列化器32将该子流排序为如上所述的比特流12。因此,编码模块34d和34e使其用于多个音频信号的输入连接至分配器30的输出接口,而使其子流输出连接至序列化器32的输入接口,以及使其下混输出分别连接至编码模块34b和/或34c的输入。
[0141] 应当注意,根据以上描述,多对象编码器34d和多通道编码器34e的存在仅被选择用于说明目的,并且例如这些编码模块34e和34e中的任何编码模块可以被移除或由另一编码模块替换。
[0142] 在描述编码器24及其可能的内部结构之后,参照图2来描述相应的解码器。图2的解码器通常由附图标记36表示,并且具有输入以接收比特流12,以及具有输出以用于输出音频内容10的重建版本38或其结合体。因此,解码器36被配置为对包括图1所示的配置块28和帧20的序列的比特流12进行解码,并且通过如下方式对每个帧20进行解码:根据由类型指示部分针对相应元素位置指示的元素类型来解码帧元素22,在相应元素位置处,相应帧元素22定位在比特流12中的相应帧20的N个帧元素22的序列内。也就是说,解码器36被配置为依据每个帧元素22在当前帧20内的元素位置而非根据在帧元素本身内的任何信息,将每个帧元素22分配为可能的元素类型之一。通过该措施,解码器36获得N个子流,第一子流由帧20的第一帧元素22组成,第二子流由帧20内的第二帧元素22组成,第三子流由帧20内的第三帧元素22组成,以此类推。
[0143] 在更详细地关于扩展元素类型帧元素来描述解码器36的功能之前,更详细地说明图2的解码器36的可能内部结构,以对应于图1的编码器24的内部结构。如关于编码器24所描述的,内部结构被理解为仅作为示例。
[0144] 具体地,如图2所示,解码器36可以在内部包括分配器40和排列器42,在分配器40和排列器42之间连接有解码模块44a至44e。每个解码模块44a至44e负责对某一帧元素类型的帧元素22的子流进行解码。因此,分配器40被配置为将比特流12的N个子流相对应地分配至解码模块44a至44e。解码模块44a例如为LFE解码器,该LFE解码器对类型c(参见上文)的帧元素22的子流进行解码以在其输出获得窄带(例如)音频信号。类似地,单通道解码器44b对类型a(参见上文)的帧元素22的输入子流进行解码以在其输出获得单个音频信号,并且通道对解码器44c对类型b(参见上文)的帧元素22的输入子流进行解码以在其输出获得一对音频信号。解码模块44a至44c使其输入和输出连接在一方面的分配器40的输出接口与另一方面的排列器42的输入接口之间。
[0145] 解码器36可以仅具有解码模块44a至44c。其它解码模块44e和44d负责扩展元素类型帧元素,并且因此就考虑音频编解码器的一致性而言是可选择的。如果这些扩展模块44e至44d中的二者或任一者不存在,则分配器40被配置为跳过比特流12中的相应扩展帧元素子流,如在下面更详细描述的,并且音频内容10的重建版本38仅为具有音频信号16的原始版本的结合。
[0146] 然而,如果存在,即如果解码器36支持SAOC和/或MPS扩展帧元素,则多通道解码器44e可以被配置为对由编码器34e生成的子流进行解码,而多对象解码器44d负责对由多对象编码器34d生成的子流进行解码。因此,在解码模块44e和/或44d存在的情况下,开关46可以将解码模块44c和44b中的任何解码模块的输出与解码模块44e和/或44d的下混信号输入连接。多通道解码器44e可以被配置为使用在来自分配器40的输入子流内的边信息对输入下混信号进行上混,以在其输出获得增加数目的音频信号。多对象解码器44d可以根据如下差异进行动作:多对象解码器44d将各个音频信号处理为音频对象,而多通道解码器44e在其输出将音频信号处理为音频通道。
[0147] 如此重建的音频信号被转发至对其进行排列的排列器42,以形成重建38。排列器42可以另外由用户输入48控制,该用户输入48指示例如可用扬声器配置或所允许的重建38的最高通道数目。取决于用户输入48,排列器42可以禁用解码模块44a至44e中的任何解码模块,例如诸如解码模块44d和44e中的任何解码模块,即使其存在以及即使扩展元素存在于比特流12中也是如此。
[0148] 在进一步分别描述解码器、编码器以及比特流的可能细节之前,应当注意,由于编码器有能力将作为扩展元素类型的子流的帧元素散置在不是扩展元素类型的子流的帧元素之间,所以通过编码器24分别适当地选择子流间的次序以及在每个帧20内的子流的帧元素间的次序,可以降低解码器36的缓冲开销。例如,假设进入通道对解码器44c的子流被置于帧20内的第一元素位置处,而用于解码器44e的多通道子流将被置于每个帧的端部。在此情况下,解码器36将必须在如下时期内缓冲表示用于多通道解码器44e的下混信号的中间音频信号:该时期桥接在分别到达每个帧20的第一帧元素和最末帧元素之间的时间。只有这样,多通道解码器44e才能够开始其处理。通过编码器24将专用于多通道解码器44e的子流在例如帧20的第二元素位置处进行排列,可以避免该延迟。另一方面,分配器40不需要关于每个帧元素与子流中的任何子流的从属关系来检查每个帧元素。更确切地,分配器40能够仅根据配置块和其中所含的类型指示语法部分来推定当前帧20的当前帧元素22与N个子流中的任何子流的从属关系。
[0149] 现在参照图3,其示出如上所述的包括配置块28和帧20的序列的比特流12。在观察图3时,右方的比特流部分跟随在左方的其它比特流部分的位置。在图3的情况下,例如,配置块28在图3所示的帧20前方,其中仅用于例示的目的,图3仅完整地示出3个帧20。
[0150] 此外,应当注意:配置块28可以以周期性或间歇性基准在帧20之间插入到比特流12内,以允许流式传输应用中的随机存取点。一般而言,配置块28可以是比特流12的简单连接部分。
[0151] 如上所述,配置块28包括字段50,字段50指示元素数目N,即每个帧20内的帧元素数目N以及如上所述的复用到比特流12中的子流数目。在描述比特流12的具体语法的实施例的如下实施例中,在图4A至图4Z以及图4ZA至图4ZC的以下特定语法示例中,字段50被表示为numElements(元素数),并且配置块28被称为UsacConfig(Usac配置)。此外,配置块28包括类型指示语法部分52。如上所述,该部分52对于每个元素位置来指示多个元素类型中的元素类型。如图3所示,并且作为关于以下特定语法示例的情况,类型指示语法部分52可以包括N个语法元素54的序列,其中每个语法元素54指示对于相应语法元素54在类型指示语法部分52内定位的相应元素位置的元素类型。换言之,部分52内的第i个语法元素54可以分别表示第i个子流的元素类型和每个帧20的第i个帧元素。在随后的具体语法示例中,语法元素被表示为UsacElementType(Usac元素类型)。虽然类型指示语法部分52可以被包含在比特流12内作为比特流12的单连通或连续部分,但是图3示例性示出其元素54与分别对于N个元素位置中的每个元素位置而存在的配置块28的其它语法元素部分交织。在下面概述的实施例中,该交织语法部分与特定于子流的配置数据55有关,其意义在下面更详细地描述。
[0152] 如上所述,每个帧20包括N个帧元素22的序列。这些帧元素22的元素类型不是由帧元素22本身内的相应类型指示器传达。更确切地,帧元素22的元素类型由其在每个帧20内的元素位置定义。图3中表示为帧元素22a的首先出现在帧20中的帧元素22具有第一元素位置,因而为由配置块28内的语法部分52对于第一元素位置表示的元素类型。这同样适用于后面的帧元素22。例如,在比特流12内紧跟随第一帧元素22a出现的帧元素22b,即具有元素位置2的帧元素,具有由类型指示语法部分52表示的元素类型。
[0153] 根据特定实施例,语法元素54以与其参考的帧元素22相同的次序在比特流12内排列。也就是说,第一语法元素54,即在比特流12中首先出现且位于图3最左端处的元素,表示每个帧20的首先出现的帧元素22a的元素类型,第二语法元素54表示第二帧元素22b的元素类型,以此类推。自然地,语法元素54在比特流12和语法部分52内的连续次序或排列可以相对于帧元素22在帧20内的连续次序进行交换。尽管较不优选,但是其它排列也是可行的。
[0154] 对于解码器36,这意味着解码器36可以被配置为从类型指示语法部分52读取N个语法元素54的该序列。更精确地,解码器36读取字段50,使得解码器36获知要从比特流12读取的语法元素54的数目N。如刚才所提及的,解码器36可以被配置为将语法元素和由此表示的元素类型与帧20内的帧元素22相关联,使得第i个语法元素54与第i个帧元素22相关联。
[0155] 除以上描述之外,配置块28可以包括N个配置元素56的序列55,其中每个配置元素56包括如下配置信息:其用于对于相应配置元素56在N个配置元素56的序列55中定位的相应元素位置的元素类型。具体地,将配置元素56的序列写入比特流12中(以及由解码器36从比特流12读取)的次序可以是与分别用于帧元素22和/或语法元素54的次序相同的次序。也就是说,在比特流12中首先出现的配置元素56可以包括用于第一帧元素22a的配置信息,第二配置元素56包括用于帧元素22b的配置信息,以此类推。如上面已经提及的,类型指示语法部分52和特定于元素位置的配置数据55在图3的实施例中被示为彼此交插,其中关于元素位置i的配置元素56在比特流12中被定位在用于元素位置i的类型指示器54与元素位置i+1之间。甚至换言之,配置元素56和语法元素54在比特流中交替排列,并且由解码器36从配置元素56和语法元素54交替进行读取,但此数据在块28内的比特流12中的其它定位也是可行的,如之前所提及的。
[0156] 通过分别传送用于配置块28中的每个元素位置1…N的配置元素56,比特流允许将帧元素不同地配置为分别属于子流和元素位置,但是为相同的元素类型。例如,比特流12可以包括两个单通道子流,并且因此每个帧20内有单个通道元素类型的二个帧元素。然而,用于这两个子流的配置信息可以在比特流12中不同地进行调整。这转而意味着:使图1的编码器24能够对于这些不同的子流来不同地设定配置信息内的编码参数;以及解码器36的单通道解码器44b在对这两个子流进行解码时通过使用这些不同的编码参数而受控。这对于其它解码模块同样适用。更一般而言,解码器36被配置为从配置块28读取N个配置元素56的序列,并且根据由第i个语法元素54表示的元素类型以及使用第i个配置元素56所包括的配置信息来对第i个帧元素22进行解码。
[0157] 为了说明的目的,假设在图3中第二子流,即包括在每个帧20内的第二元素位置处出现的帧元素22b的子流,具有包括扩展元素类型的帧元素22b的扩展元素类型子流。自然地,这仅是说明性的。
[0158] 此外,仅用于说明的目的,比特流或配置块28在每个元素位置包括一个配置元素56,而与由语法部分52对于该元素位置所表示的元素类型无关。例如,根据替代实施例,可以存在配置块28未包括其配置元素的一个或更多个元素类型,使得在后者情况下,取决于分别在语法部分52和帧20中出现的这种元素类型的帧元素的数目,配置块28内的配置元素
56的数目可以小于N。
[0159] 无论如何,图3示出用于建立关于扩展元素类型的配置元素56的又一示例。在随后说明的特定语法实施例中,这些配置元素56被表示为UsacExtElementConfig(Usac扩展元素配置)。仅为了完整性,在随后说明的特定语法实施例中要注意,其它元素类型的配置元素被表示为UsacSingleChannelElementConfig(Usac单个通道元素配置)、UsacChannelPairElementConfig(Usac通道对元素配置)以及UsacLfeElementConfig(UsacLfe元素配置)。
[0160] 然而,在叙述对于扩展元素类型的配置元素56的可能结构之前,参照图3的示出扩展元素类型的帧元素的可能结构的部分,于此说明第二帧元素22b。如图所示,扩展元素类型的帧元素可以包括关于相应帧元素22b的长度的长度信息58。解码器36被配置为从每个帧20的扩展元素类型的每个帧元素22b读取该长度信息58。若解码器36无法处理或被用户输入指示为不处理扩展元素类型的该帧元素所属的子流,则解码器36使用长度信息58作为跳过区间长度——即要跳过的比特流部分的长度——来跳过该帧元素22b。换言之,解码器36可以使用长度信息58来计算用于定义比特流区间长度的字节数目或任何其它适当度量以进一步执行读取比特流12,该比特流区间长度为直到存取或访问当前帧20内的下一帧元素或开始下一接续帧20为止要跳过的。
[0161] 如将在下面更详细描述的,扩展元素类型的帧元素可以被配置为适应音频编解码器的未来或替代的扩展或发展,并且因此扩展元素类型的帧元素可以具有不同的统计长度分布。为了利用根据一些应用、某一子流的扩展元素类型帧元素具有恒定长度或具有非常窄的统计长度分布的可能性,根据本申请的一些实施例,用于扩展元素类型的配置元素56可以包括默认有效载荷长度信息60,如图3所示。在此情况下,相应子流的扩展元素类型的帧元素22b可以参考包含在用于相应子流的相应配置元素56内的默认有效载荷长度信息60,而非明确地传输有效载荷长度。具体地,如图3所示,在此情况下,长度信息58可以包括默认扩展有效载荷长度标记64形式的条件语法部分62,该默认有效载荷长度标记64在未被设定的情况下后面跟随有扩展有效载荷长度值66。在扩展元素类型的相应帧元素22b的长度信息62的默认扩展有效载荷长度标记64被设定的情况下,扩展元素类型的任何帧元素
22b具有由相应配置元素56中的信息60表示的默认扩展有效载荷长度;以及在扩展元素类型的相应帧元素22b的长度信息58的默认扩展有效载荷长度标记64未被设定的情况下,扩展元素类型的任何帧元素22b具有与扩展元素类型的相应帧元素22b的长度信息58的扩展有效载荷长度值66相对应的扩展有效载荷长度。也就是说,每当可以仅参考由相应子流和元素位置各自的配置元素56内的默认有效载荷长度信息60表示的默认扩展有效载荷长度,编码器24可以避免扩展有效载荷长度值66的明确编码。解码器36如下进行动作。在读取配置元素56期间,解码器36读取默认有效载荷长度信息60。当读取相应子流的帧元素22b时,解码器36在读取这些帧元素的长度信息中读取默认扩展有效载荷长度标记64并且检查标记64是否被设定。如果默认有效载荷长度标记64未被设定,则解码器继续从比特流读取条件语法部分62的扩展有效载荷长度值66,以获得相应帧元素的扩展有效载荷长度。然而,如果默认有效载荷标记64被设定,则解码器36将相应帧的扩展有效载荷长度设定为与根据信息60得到的默认扩展有效载荷长度相等。然后,解码器36的跳过涉及使用刚才确定的扩展有效载荷长度作为跳过区间长度——即要跳过的比特流12的部分的长度——来跳过当前帧元素的有效载荷区段68,以存取当前帧20的下一帧元素22或开始下一帧20。
[0162] 因此,如先前所述,每当某一子流的扩展元素类型的帧元素的有效载荷长度的改变相当低时,运用标记机制64可以避免这些帧元素的有效载荷长度的逐帧重复传输。
[0163] 然而,由于并非先验明确由某一子流的扩展元素类型的帧元素传送的有效载荷是否具有关于帧元素的有效载荷长度的这种统计,并且因此是否值得在扩展元素类型的帧元素的这种子流的配置元素中明确传输默认有效载荷长度,所以根据另外的实施例,默认有效载荷长度信息60也由包括标记60a的条件语法部分实现,该标记60a在以下特定语法示例中被称为UsacExtElementDefaultLengthPresent(Usac扩展元素默认长度存在)并且表示是否进行默认有效载荷长度的明确传输。只有在标记60a被设定的情况下,条件语法部分包括在以下特定语法示例中被称为UsacExtElementDefaultLength(Usac扩展元素默认长度)的默认有效载荷长度的明确传输60b。否则,默认有效载荷长度被默认设定为0。在后者情况下,由于避免了默认有效载荷长度的明确传输,所以节省了比特流的位消耗。也就是说,解码器36(以及负责上述和下述所有读取程序的分配器40)可以被配置为在读取默认有效载荷长度信息60中从比特流12读取默认有效载荷长度存在标记60a,检查默认有效载荷长度存在标记60a是否被设定,以及如果默认有效载荷长度存在标记60a被设定,则将默认扩展有效载荷长度设定为零,并且如果默认有效载荷长度存在标记60a未被设定,则从比特流12明确地读取默认扩展有效载荷长度60b(即,跟随标记60a的字段60b)。
[0164] 除默认有效载荷长度机制之外或替代默认有效载荷长度机制,长度信息58可以包括扩展有效载荷存在标记70,其中长度信息58的扩展有效载荷存在标记70未被设定的扩展元素类型的任何帧元素22b仅包括扩展有效载荷存在标记。也就是说,不存在有效载荷区段68。另一方面,长度信息58的扩展有效载荷存在标记被70设定的扩展元素类型的任何帧元素22b的长度信息58还包括语法部分62或66,该语法部分62或66表示相应帧22b的扩展有效载荷长度,即相应帧22b的有效载荷区段68的长度。除默认有效载荷长度机制即结合默认扩展有效载荷长度标记64之外,扩展有效载荷存在标记70使得能够对扩展元素类型的每个帧元素提供两个可有效编码的有效载荷长度,即一方面为0并且另一方面为默认有效载荷长度即最可能的有效载荷长度。
[0165] 在解析或读取扩展元素类型的当前帧元素22b的长度信息58中,解码器36从比特流12读取扩展有效载荷存在标记70,检查扩展有效载荷存在标记70是否被设定,以及如果扩展有效载荷存在标记70未被设定,则停止读取相应帧元素22b并且继续读取当前帧20的另一、下一帧元素22,或开始读取或解析下一帧20。而如果扩展有效载荷存在标记70被设定,则解码器36读取语法部分62或至少部分66(如果标记64不存在,原因是此机制不可用)并且如果要跳过当前帧元素22的有效载荷,则通过使用扩展元素类型的相应帧元素22b的扩展有效载荷长度作为跳过区间长度来跳过有效载荷区段68。
[0166] 如上所述,可以设置扩展元素类型的帧元素,以适应音频编解码器的未来扩展或前解码器不适合的其它扩展,因此扩展元素类型的帧元素应当是可配置的。具体地,根据实施例,对于类型指示部分52表示扩展元素类型的每个元素位置,配置块28包括配置元素56,该配置元素56包括用于扩展元素类型的配置信息,其中除上面概述的部件之外或替代上面概述的部件,该配置信息包括表示多个有效载荷数据类型中的有效载荷数据类型的扩展元素类型字段72。根据一个实施例,多个有效载荷数据类型可以包括多通道边信息类型和多对象编码边信息类型,此外包括例如被保留供未来发展的其它数据类型。根据所表示的有效载荷数据类型,配置元素56另外包括特定于有效载荷数据类型的配置数据。因此,在相应元素位置处的帧元素22b和相应子流的帧元素22b分别在其有效载荷区段68中传送与所表示的有效载荷数据类型相对应的有效载荷数据。为了允许特定于有效载荷数据类型的配置数据74的长度的调整适应于有效载荷数据类型,并且允许用于另外的有效载荷数据类型的未来发展的保留,在下面描述的特定语法实施例具有扩展元素类型的配置元素56,另外包括被称为UsacExtElementConfigLength(Usac扩展元素配置长度)的配置元素长度值,使得不知道对于当前子流所表示的有效载荷数据类型的解码器36能够跳过配置元素56及其特定于有效载荷数据类型的配置数据74,以存取比特流12的紧跟随部分如下一元素位置的元素类型语法元素54(或在未示出的替代实施例中,下一元素位置的配置元素),或跟随配置块28的第一帧的起始或将参照图4A示出的一些其它数据。具体地,在用于语法的以下特定实施例中,多通道边信息配置数据包含在SpatialSpecificConfig中,而多对象边信息配置数据包含在SaocSpecificConfig中。
[0167] 根据后一方面,在读取配置块28中,解码器36将被配置为对于类型指示部分52表示扩展元素类型的每个元素位置或子流来执行下列步骤:
[0168] 读取配置元素56,包括读取表示多个可用有效载荷数据类型中的有效载荷数据类型的扩展元素类型字段72。
[0169] 如果扩展元素类型字段72表示多通道边信息类型,则从比特流12读取作为配置信息的一部分的多通道边信息配置数据74;而如果扩展元素类型字段72表示多对象边信息类型,则从比特流12读取作为配置信息的一部分的多对象边信息配置数据74。
[0170] 然后,在对相应帧元素22b——即分别对应于元素位置和子流的帧元素22b——进行解码中,在有效载荷数据类型表示多通道边信息类型的情况下,解码器36将使用多通道边信息配置数据74来配置多通道解码器44e,同时对如此配置的多通道解码器44e给送相应帧元素22b的有效载荷数据68作为多通道边信息;以及在有效载荷数据类型表示多对象边信息类型的情况下,解码器36将通过如下方式来解码相应的帧元素22b:使用多对象边信息配置数据74来配置多对象解码器44d,并且对如此配置的多对象解码器44d给送相应帧元素22b的有效载荷数据68。
[0171] 然而,如果由字段72表示未知的有效载荷数据类型,则解码器36将运用也由当前配置元素包括的前述配置长度值来跳过特定于有效载荷数据类型的配置数据74。
[0172] 例如,对于类型指示部分52表示扩展元素类型的任何元素位置,解码器36可以被配置为从比特流12读取配置数据长度字段76作为对于相应元素位置的配置元素56的配置信息的一部分以获得配置数据长度,并且检查由对于相应元素位置的配置元素的配置信息的扩展元素类型字段72表示的有效载荷数据类型是否属于作为多个有效载荷数据类型的子集的有效载荷数据类型的预定集合。如果由对于相应元素位置的配置元素的配置信息的扩展元素类型字段72表示的有效载荷数据类型属于有效载荷数据类型的预定集合,则解码器36将从数据流12读取作为对于相应元素位置的配置元素的配置信息的一部分的有效载荷数据依赖性配置数据74,并且使用有效载荷数据依赖性配置数据74对在帧20中的相应元素位置处的扩展元素类型的帧元素进行解码。但是如果由对于相应元素位置的配置元素的配置信息的扩展元素类型字段72表示的有效载荷数据类型并不属于有效载荷数据类型的预定集合,则解码器将使用配置数据长度来跳过有效载荷数据依赖性配置数据74,并且使用在帧20中的相应元素位置处的扩展元素类型的帧元素中的长度信息58来跳过该帧元素。
[0173] 除以上机制之外或代替以上机制,某一子流的帧元素可以被配置为以片段进行传输而非一次完全传输整个帧。例如,扩展元素类型的配置元素可以包括片段使用标记78,解码器可以被配置为在读取定位在如下任何元素位置处的帧元素22中从比特流12读取片段信息80并且使用片段信息来将连续帧的这些帧元素的有效载荷数据放在一起,其中对于该元素位置,类型指示部分表示扩展元素类型并且配置元素的片段使用标记78被设定。在以下的特定语法示例中,片段使用标记78被设定的子流的每个扩展类型帧元素包括一对标记——表示该子流的有效载荷起始的起始标记以及表示该子流的有效载荷结束的结束标记。这些标记在以下的特定语法示例中被称为UsacExtElementStart(Usac扩展元素开始)及UsacExtElementStop(Usac扩展元素停止)。
[0174] 此外,除以上机制之外或代替以上机制,相同的可变长度代码可以用于读取长度信息80、扩展元素类型字段72以及配置数据长度字段76,由此降低实现例如解码器的复杂度,并且通过仅在极少发生的情况(如未来扩展元素类型、更大的扩展元素类型长度等)下才需要另外的位来节省位。在随后说明的特定示例中,该可变长度代码(VLC)能够根据图4M得到。
[0175] 综上所述,以下可适用于解码器功能:
[0176] (1)读取配置块28,以及
[0177] (2)读取/解析帧20的序列。步骤1和2由解码器36、更精确地由分配器40执行。
[0178] (3)音频内容的重建限于那些子流,即限于在元素位置处的帧元素的序列,其解码由解码器36支持。步骤3是在解码器36内的例如其解码模块处执行(参见图2)。
[0179] 因此,在步骤1中,解码器36分别读取每个帧20的子流的数目50和帧元素22的数目,以及展示这些子流和元素位置中每一个的元素类型的类型指示语法部分52。对于步骤2中的解析比特流,解码器36然后循环地从比特流12读取帧20的序列的帧元素22。这样做,解码器36利用上述的长度信息58来跳过帧元素或其剩余/有效载荷部分。在第三步骤中,解码器36通过对未跳过的帧元素进行解码来执行重建。
[0180] 在步骤2中决定要跳过哪些元素位置和子流,解码器36可以检查配置块28内的配置元素56。为了这样做,解码器36可以被配置为以与用于元素类型指示器54和帧元素22本身的次序相同的次序从比特流12的配置块28循环地读取配置元素56。如上面所表示的,配置元素56的循环读取可以与语法元素54的循环读取散置。具体地,解码器36可以检查扩展元素类型子流的配置元素56内的扩展元素类型字段72。如果扩展元素类型不是被支持的扩展元素类型,则解码器36跳过相应子流和帧20内的各个帧元素位置处的相应帧元素22。
[0181] 为了减少传输长度信息58所需的比特率,解码器36在步骤1中被配置为检查扩展元素类型子流的配置元素56,具体地检查其默认有效载荷长度信息60。在第二步骤中,解码器36检查要跳过的扩展帧元素22的长度信息58。具体地,解码器36首先检查标记64。如果标记64被设定,则解码器36使用由默认有效载荷长度信息60对于相应子流所表示的默认长度作为要跳过的剩余有效载荷长度,以继续帧的帧元素的循环读取/解析。然而,如果标记64未被设定,则解码器36从比特流12明确地读取有效载荷长度66。虽然上面并未明确地说明,但应当清楚,解码器36可以得到要跳过的位或字节的数目,以通过一些另外的计算来存取当前帧的下一帧元素或下一帧。例如,解码器36可以考虑是否使如关于标记78在上面说明的片段机制作用。如果使片段机制作用,则解码器36可以考虑:在片段标记78被设定的任何情况下,子流的帧元素具有片段信息80;以及因此,在片段标记78未被设定的情况下,有效载荷数据68将比其正常情况更晚开始。
[0182] 在步骤3的解码中,解码器照常动作:也就是说,各个子流经受如图2所示的各个解码机制或解码模块,其中一些子流可以形成关于其它子流的边信息,如已经关于扩展子流的特定示例在上面说明的。
[0183] 至于关于解码器功能的其它可能细节,参考以上讨论。仅为了完整性,注意解码器36也可以在步骤1跳过对配置元素56的进一步解析,即对于要跳过的那些元素位置,原因是例如由字段72表示的扩展元素类型不符合所支持的扩展元素类型集合。然后,解码器36可以使用配置长度信息76以在对配置元素56进行循环读取/解析中跳过相应配置元素,即跳过相应数目的位/字节,以存取下一比特流语法元素如下一元素位置的类型指示器54。
[0184] 在继续以上提及的特定语法实施例前,应当注意,本发明并不限于使用统一语音与音频编码(USAC)及其各方面(例如使用混合物来交换核心编码、或使用参数编码(ACELP)和变换编码(TCX)在AAC如频域编码和LP编码之间交换)来实现。更确切地,上述子流可以利用任何编码方案来表示音频信号。此外,虽然在下面概述的特定语法实施例中,假设频谱带宽复制(SBR)为用于利用单通道和通道对元素类型子流来表示音频信号的核心编码器的编码选项,但SBR也可以不是上述元素类型的选项,但仅仅可运用于扩展元素类型。
[0185] 在下文中,说明对于比特流12的特定语法示例。应当注意,特定语法示例表示对于图3的实施例的可能实现,并且根据图3的各个符号和图3的描述来表示或得到在以下语法的语法元素与图3的比特流结构之间的一致性。现在概述以下特定示例的基本方面。在这点上,应当注意,除上面已经关于图3描述过的那些之外的任何另外细节要被理解为图3的实施例的可能扩展。所有的这些扩展可以各自建立到图3的实施例中。作为最后一个初步注释,应当理解,下面描述的特定语法示例明确地分别参考图5A和图5B的解码器和编码器环境。
[0186] 关于所包含的音频内容的高阶信息(如采样率、确切通道配置)存在于音频比特流中。这使比特流更加自包含,并且在嵌入到可以不具有明确传输该信息的任何手段的传输方案中时,使配置和有效载荷的传输更容易。
[0187] 配置结构包含有帧长度和频谱带宽复制(SBR)采样率比的组合索引(coreSbrFrameLengthIndex)。这保证二个值的有效传输,并且确保帧长度与SBR比的无意义组合无法被传达。后者简化了解码器的实现。
[0188] 配置可以借助于专用配置扩展机制进行扩展。这将防止如根据MPEG-4AudioSpecificConfig()已知的配置扩展的巨大且无效的传输。
[0189] 配置允许与每个所传输的音频通道相关联的扬声器位置的自由传达。常用通道对扬声器映射的传达可以借助于通道配置索引(channelConfigurationIndex)而有效地传达。
[0190] 每个通道元素的配置被包含在单独结构中,使得每个通道元素可以独立进行配置。
[0191] SBR配置数据(“SBR头”)被分裂成SbrInfo()和SbrHeader()。对于SbrHeader(),定义默认版本(SbrDfltHeader()),其可以在比特流中有效地引用。这减少了在需要重新传输SBR配置数据的位置处的位需求。
[0192] 借助于SbrInfo()语法元素,可以有效地传达较常施加至SBR的配置变化。
[0193] 用于频谱带宽复制(SBR)和参数立体声编码工具(MPS212又称MPEG环绕2-1-2)的配置被紧密集成到USAC配置结构中。这表示在标准中实际采用两种技术的显著更好的方式。
[0194] 语法以扩展机制为特征,该扩展机制允许编解码器的现有和未来扩展的传输。
[0195] 扩展可以以任何次序与通道元素进行放置(即交插)。这允许需要在被施加扩展的特定通道元素之前或之后进行读取的扩展。
[0196] 默认长度可以对于语法扩展进行定义,这使得恒定长度扩展的传输非常有效,原因是无需每次都传输扩展有效载荷的长度。
[0197] 如果需要借助于逃逸机制来传达值以扩展值的范围的常见情况被模块化到专用真实语法元素(escapedValue())中,该元素足够灵活地覆盖所有期望的逃逸值丛和位字段扩展。
[0198] 比特流配置
[0199] UsacConfig()(图4A)
[0200] UsacConfig()被扩展为包含有与所含音频内容有关的信息以及用于完整解码器设置所需的一切。关于音频的顶阶信息(采样率、通道配置、输出帧长度)聚集在起始处以容易从更高(应用)层存取。
[0201] UsacChannelConfig()(图4B)
[0202] 这样的元素给出与所包含的比特流元素以及其至扬声器的映射有关的信息。channelConfigurationIndex允许对被视为实际上相关的预定义的单声、立体声或多通道配置的范围中之一进行传达的容易且方便的方式。
[0203] 对于channelConfigurationIndex未覆盖的更详尽配置,UsacChannelConfig()允许将元素自由分配给32个扬声器位置的列表中的扬声器位置,该列表覆盖用于家庭或影院声音重现的所有已知扬声器设置中的所有目前已知的扬声器位置。
[0204] 该扬声器位置的列表是在MPEG环绕标准中起重要作用的列表的超集(参考ISO/IEC 23003-1的表1和图1)。已经增加四个另外的扬声器位置以能够覆盖最近问世的22.2扬声器设置(参见图4A以及图4B)。
[0205] UsacDecoderConfig()(图4C)
[0206] 该元素位于解码器配置的重要位置,使其包含解码器解释比特流所需的所有另外信息。
[0207] 具体地,于此通过明确地陈述比特流中的元素数目及其次序来定义比特流的结构。
[0208] 然后,对所有元素的循环允许所有类型(单个、成对、lfe、扩展)的所有元素的配置。
[0209] UsacConfigExtension()(图4L)
[0210] 为了考虑到未来的扩展,配置的特征为以下的强有力机制:对于USAC的尚未存在的配置扩展而扩展该配置。
[0211] UsacSingleChannelElementConfig()(图4D)
[0212] 该元素配置包含用于将解码器配置成对一个单通道进行解码所需的所有信息。这基本上为与核心编码器相关的信息,并且如果使用SBR,则为与SBR相关的信息。
[0213] UsacChannelPairElementConfig()(图4E)
[0214] 类似以上所述的,该元素配置包含用于将解码器配置成对一个通道对进行解码所需的所有信息。除上述的核心配置和SBR配置之外,其还包括特定于立体声的配置,例如所施加的立体声编码的确切类别(具有或不具有MPS212、残差等)。注意,该元素覆盖在USAC中可用的立体声编码选项的所有种类。
[0215] UsacLfeElementConfig()(图4F)
[0216] 因为LFE元素具有静态配置,所以LFE元素配置不包含配置数据。
[0217] UsacExtElementConfig()(图4K)
[0218] 该元素配置可以用于向编解码器配置任何种类的现有或未来扩展。每个扩展元素类型具有其本身的专用ID值。包括长度字段,以能够方便地跳过解码器所未知的配置扩展。默认有效载荷长度的任选定义进一步提高存在于实际比特流中的扩展有效载荷的编码效率。
[0219] 已知被预见为与USAC组合的扩展包括:MPEG环绕、SAOC以及根据MPEG-4AAC已知的某种FIL元素。
[0220] UsacCoreConfig()(图4G)
[0221] 该元素包含影响核心编码器设置的配置数据。目前,这些配置数据为用于时间弯曲工具和噪声填充工具的切换。
[0222] SbrConfig()(图4H)
[0223] 为了减少由sbr_header()的频繁重新传输所产生的位开销,通常保持为恒定的sbr_header()的元素的默认值现在被承载于配置元素SbrDfltHeader()中。此外,静态SBR配置元素也被承载于SbrConfig()中。这些静态位包括用于使能或禁止增强型SBR的特定特征(如谐波转位或跨时间包络整形特征(inter-TES))的标记。
[0224] SbrDfltHeader()(图4I)
[0225] 该元素承载通常保持为恒定的sbr_header()元素。影响事物(如幅值分辨率、交叉频带、频谱预平坦化)的元素现在被承载于SbrInfo()中,其允许所述事物实时地有效改变。
[0226] Mps212Config()(图4J)
[0227] 类似上面的SBR配置,对于MPEG环绕2-1-2工具的所有设置参数被集合在该配置中。来自SpatialSpecificConfig()的与上下文不相关或冗余的所有元素均被移除。
[0228] 比特流有效载荷
[0229] UsacFrame()(图4N)
[0230] 其为环绕USAC比特流有效载荷的最外侧包绕器并且表示USAC存取单元。其包含通过所有所含通道元素和如在config部分所传达的扩展元素的循环。这使得比特流格式在其可以包含的内容方面显著更灵活,并且是用于任何未来扩展的未来保证。
[0231] UsacSingleChannelElement()(图4O)
[0232] 该元素包含对单声流进行解码的所有数据。该内容被划分成与核心编码器相关的部分和与eSBR相关的部分。与eSBR相关的部分现在显著更紧密地连接至核心,这也显著更好地反映了解码器需要数据的次序。
[0233] UsacChannelPairElement()(图4P)
[0234] 该元素覆盖用于对立体声对进行编码的所有可能方式的数据。具体地,覆盖统一立体声编码的所有风格,从基于传统M/S的编码到借助于MPEG环绕2-1-2的完全参数立体声编码。stereoConfigIndex表示实际使用的风格。在该元素中发送适当的eSBR数据和MPEG环绕2-1-2数据。
[0235] UsacLfeElement()(图4Q)
[0236] 仅对之前的lfe_channel_element()重新命名,以遵守一致的命名方案。
[0237] UsacExtElement()(图4R)
[0238] 扩展元素被审慎设计为能够使灵活性最大化,但同时使效率最大化,即使对于具有较小(或通常根本没有)有效载荷的扩展也如此。向无知的解码器传达扩展有效载荷长度以跳过它。用户定义的扩展可以借助于扩展类型的保留范围进行传达。扩展可以以元素次序自由地放置。已经考虑一定范围的扩展元素,包括写入填充字节的机制。
[0239] UsacCoreCoderData()(图4S)
[0240] 该新元素概括影响核心编码器的所有信息,因此也包含fd_channel_stream()和lpd_channel_stream()。
[0241] StereoCoreToolInfo()(图4T)
[0242] 为了使语法的可读性容易化,所有立体声相关信息被捕获在该元素中。其处理立体声编码模式下的位的众多依赖性。
[0243] UsacSbrData()(图4X)
[0244] 可伸缩性音频编码的CRC功能元素和传统描述元素从用于成为sbr_extension_data()元素的元素中被移除。为了减少由SBR信息和头数据的频繁重新传输造成的开销,可以明确地传达它们的存在。
[0245] SbrInfo()(图4Y)
[0246] SBR配置数据经常进行实时修改。这包括先前需要完整sbr_header()的传输的控制如下事物的元素,该事物例如为幅值分辨率、交叉频带、频谱预平坦化。(参见[N11660]中的6.3,“效率”)。
[0247] SbrHeader()(图4Z)
[0248] 为了维持SBR实时地改变sbr_header()中的值的能力,在应当使用除在SbrDfltHeader()中发送的那些值以外的其它值的情况下,现在可以将SbrHeader()承载于UsacSbrData()内。对bs_header_extra机制进行维持以对于大部分常见情况将开销保持为尽可能低。
[0249] sbr_data()(图4ZA)
[0250] 再者,移除SBR可伸缩编码的余部,原因是其不能应用于USAC上下文中。取决于通道数目,sbr_data()包含一个sbr_single_channel_element()或一个sbr_channel_pair_element()。usacSamplingFrequencyIndex
[0251] 本表为在MPEG-4中使用以对音频编解码器的采样频率进行传达的表的超集。本表被进一步扩展为还覆盖目前在USAC操作模式下使用的采样率。还加入采样频率的一些倍数。
[0252] channelConfigurationIndex
[0253] 本表为在MPEG-4中使用以对channelConfiguration进行传达的表的超集。本表被进一步扩展来允许常用的和所预见的未来扬声器设置的传达。本表中的索引以5位进行传达,以允许未来扩展。
[0254] usacElementType
[0255] 仅 存 在 4 种 元 素 类型 。四 个 基 本 比 特 流 元 素 各 有 一 个 类 型 :UsacSingleChannelElement()、UsacChannelPairElement()、UsacLfeElement()、UsacExtElement()。这些元素提供所需的顶层结构,同时维持所有需要的灵活性。
[0256] usacExtElementType
[0257] 在UsacExtElement()内部,本元素允许传达过多的扩展。为了未来保证,位域被选择为足够大以允许所有可设想的扩展。在当前已知的扩展中,建议考虑少数扩展:填充元素、MPEG环绕以及SAOC。
[0258] usacConfigExtType
[0259] 可能需要在某一点扩展配置,那么这可以通过UsacConfigExtension()来处置,然后其将允许给每个新配置分配类型。当前可以被传达的唯一类型为用于该配置的填充机制。
[0260] coreSbrFrameLengthIndex
[0261] 该表将对解码器的多个配置方面进行传达。具体地,这些为输出帧长度、SBR比以及所得的核心编码器帧长度(ccfl)。同时,其表示用在SBR中的合成频带和QMF分析的数目。
[0262] stereoConfigIndex
[0263] 该表确定UsacChannelPairElement()的内部结构。该表表示单声或立体声核心的使用、MPS212的使用、是否施加立体声SBR以及是否在MPS212中施加残差编码。
[0264] 通过将eSBR头字段的大部分移动至可以借助于默认头标记来参考的默认头,大大减少了发送eSBR控制数据的位需求。被视为在现实世界系统中最可能改变的前述sbr_header()位域反而被外包给sbrInfo()元素,使其现在仅包括覆盖最多8位的4个元素。与由至少18位构成的sbr_header()相比,这节省了10位。
[0265] 评估此变化对总比特率的影响是较困难的,原因在于总比特率很大程度上取决于sbrInfo()中的eSBR控制数据的传输率。然而,已经对于在比特流中更改sbr交叉的公共使用情况,每次发生发送sbrInfo()替代完整传输的sbr_header()时,位节省可以高达22位。
[0266] USAC解码器的输出可以由MPEG环绕(MPS)(ISO/IEC 23003-1)或SAOC(ISO/IEC 23003-2)进一步处理。如果USAC中的SBR工具为有效的,则通过以对于ISO/IEC 23003-1 
4.4中的HE-AAC所描述的相同方式在QMF域中连接USAC解码器和后续MPS/SAOC解码器,USAC解码器通常可以有效地与后续MPS/SAOC解码器组合。如果在QMF域中的连接不可行,则它们需要在时域中进行连接。
[0267] 如果借助于usacExtElement机制(其中usacExtElementType为ID_EXT_ELE_MPEGS或ID_EXT_ELE_SAOC)将MPS/SAOC边信息嵌入到USAC比特流中,则USAC数据与MPS/SAOC数据之间的时间对齐呈现出USAC解码器与MPS/SAOC解码器之间的最有效连接。如果在USAC中的SBR工具为有效的并且如果MPS/SAOC采用64频带的QMF域表示(参见ISO/IEC 23003-16.6.3),则最有效连接是在QMF域中。否则,最有效连接是在时域中。这对应于如在ISO/IEC 
23003-14.4、4.5以及7.2.1中定义的MPS和HE-AAC的组合的时间对齐。
[0268] 通过在USAC解码后增加MPS解码所引入的另外延迟是由ISO/IEC 23003-14.5给定的,并且取决于:是否使用HQ MPS或LP MPS,以及MPS是否在QMF域或时域中连接至USAC。
[0269] ISO/IEC 23003-14.4阐明USAC系统与MPEG系统之间的接口。从系统接口传递给音频解码器的每个存取单元将导致从该音频解码器传递至系统接口的相应组合单元即组合器。这将包括起始状况和关断状况,即存取单元何时为存取单元的有限序列中的第一个或最后一个。
[0270] 对于音频组合单元,ISO/IEC 14496-17.1.3.5组合时间戳(CTS)指定施加至组合单元内的第n个音频样本的组合时间。对于USAC,n的值始终为1。注意,这适用于USAC解码器本身的输出。在USAC解码器例如与MPS解码器组合的情况下,需要考虑在MPS解码器的输出传递的组合单元。
[0271] 如果借助于usacExtElement机制(其中usacExtElementType为ID_EXT_ELE_MPEGS或ID_EXT_ELE_SAOC)将MPS/SAOC边信息嵌入到USAC比特流中,则可以可选择地施加以下限制:
[0272] ●MPS/SAOC sacTimeAlign参数(参见ISO/IEC 23003-17.2.5)将具有值0。
[0273] ●MPS/SAOC的采样频率将与USAC的输出采样频率相同。
[0274] ●MPS/SAOC bsFrameLength参数(参见ISO/IEC 23003-15.2)将具有预定列表的容许值之一。
[0275] USAC比特流有效载荷语法在图4N至图4R中示出,并且附属有效载荷元素的语法在图4S至图4W中示出,以及增强型SBR有效载荷语法在图4X至图4ZC中示出。
[0276] 数据元素的简短描述
[0277] UsacConfig()
[0278] 该元素包含关于所含音频内容的信息以及用于完整解码器设置所需的一切。
[0279] UsacChannelConfig()
[0280] 该元素给予与所包含的比特流元素以及其至扬声器的映射有关的信息。
[0281] UsacDecoderConfig()
[0282] 该元素包含由解码器解释比特流所需的所有另外信息。具体地,在此处传达SBR重新采样率,并且比特流的结构在此通过明确地陈述比特流中的元素数目及其次序进行定义。
[0283] UsacConfigExtension()
[0284] 对用于USAC的未来配置扩展的配置进行扩展的配置扩展机制。
[0285] UsacSingleChannelElementConfig()
[0286] 其包含用于将解码器配置为对一个单通道进行解码所需的所有信息。这基本上为与核心编码器相关的信息,并且如果使用SBR,则为与SBR相关的信息。
[0287] UsacChannelPairElementConfig()
[0288] 类似以上所述的,该元素配置包含用于将解码器配置为对一个通道对进行解码所需的所有信息。除上述的核心配置和SBR配置之外,其还包括特定于立体声的配置,例如所施加的立体声编码的确切类别(具有或不具有MPS212、残差等)。该元素覆盖在USAC中当前可用的立体声编码选项的所有种类。
[0289] UsacLfeElementConfig()
[0290] 因为LFE元素具有静态配置,所以LFE元素配置不包含配置数据。
[0291] UsacExtElementConfig()
[0292] 该元素配置可以用于对编解码器的任何种类的现有或未来扩展进行配置。每个扩展元素类型具有其本身专用类型值。包括长度字段,以能够跳过解码器所未知的配置扩展。
[0293] UsacCoreConfig()
[0294] 其包含影响核心编码器设置的配置数据。
[0295] SbrConfig()
[0296] 其包含通常保持为恒定的用于SBR的配置元素的默认值。此外,静态SBR配置元素也被承载于SbrConfig()中。这些静态位包括用于使能或禁止增强型SBR的特定特征(如谐波转位或inter-TES)的标记。
[0297] SbrDfltHeader()
[0298] 该元素承载SbrHeader()的元素的默认版本,如果不期望这些元素有差值,则可以参考该默认版本。
[0299] Mps212Config()
[0300] 对于MPEG环绕2-1-2工具的所有设置参数被集合在该配置中。
[0301] escapedValue()
[0302] 该元素实现使用不同数目的位来传输整数值的通用方法。其以两阶逃逸机制为特征,该两阶逃逸机制允许通过连续传输另外位来扩展可表示的值范围。
[0303] usacSamplingFrequencyIndex
[0304] 该索引确定解码后的音频信号的采样频率。在表C中描述usacSamplingFrequencyIndex的值及其相关联的采样频率。
[0305] 表C-usacSamplingFrequencyIndex的值和意义
[0306]
[0307]
[0308]
[0309] usacSamplingFrequency
[0310] 在usacSamplingFrequencyIndex等于零的情况下,解码器的输出采样频率被编码为无符号整数值。
[0311] channelConfigurationIndex
[0312] 该索引确定通道配置。如果channelConfigurationIndex>0,则该索引根据表Y明确地定义通道数目、通道元素以及关联扬声器映射。扬声器位置的名称、所使用的缩写以及可用扬声器的通用位置可以从图4A以及图4B得到。
[0313] bsOutputChannelPos
[0314] 该索引描述了与给定通道相关联的扬声器位置。该扬声器位置在收听者的3D环境中。也可以包含根据IEC 100/1706/CDV的扬声器位置。
[0315] 表-取决于coreSbrFrameLengthIndex的coreCoderFrameLength、sbrRatio、outputFrameLength以及numSlots的值
[0316]
[0317] usacConfigExtEnsionPresent
[0318] 其指示对配置的扩展的存在。
[0319] numOutChannels
[0320] 如果channelConfigurationIndex的值表示未使用任何预定义的通道配置,则该元素确定特定扬声器位置将关联的音频通道的数目。
[0321] numElements
[0322] 本字段包含将跟随通过UsacDecoderConfig()的元素类型的循环的元素的数目。
[0323] usacElementType[elemIdx]
[0324] 其定义在比特流中的位置elemIdx处的元素的USAC通道元素类型。存在四种元素类型,对于四个基本比特流元素中的每一个基本比特流元素的类型为:UsacSingleChannelElement()、UsacChannelPairElement()、UsacLfeElement()、UsacExtElement()。这些元素提供所需的顶层结构,同时维持所有需要的灵活性。
usacElementType的意义在表A中定义。
[0325] 表A-usacElementType的值
[0326]usacElementType 值
ID_USAC_SCE 0
ID_USAC_CPE 1
ID_USAC_LFE 2
ID_USAC_EXT 3
[0327] stereoConfigIndex
[0328] 该元素确定UsacChannelPairElement()的内部结构。其根据表ZZ表示单声或立体声核心的使用、MPS212的使用、是否施加立体声SBR、以及是否在MPS212中施加残差编码。该元素还定义辅助元素bsStereoSbr和bsResidualCoding的值。
[0329] 表ZZ-stereoConfigIndex的值及其意义以及bsStereoSbr和bsResidualCoding的隐式分配
[0330]
[0331]
[0332] tw_mdct
[0333] 该标记对本流中的时间扭曲式MDCT的使用进行传达。
[0334] noiseFilling
[0335] 该标记对FD核心编码器中的频谱缺陷的噪声填充的使用进行传达。
[0336] harmonicSBR
[0337] 该标记对SBR中的谐波基音的使用进行传达。
[0338] bs_interTes
[0339] 该标记对SBR中的inter-TES工具的使用进行传达。
[0340] dflt_start_freq
[0341] 其为用于比特流元素bs_start_freq的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0342] dflt_stop_freq
[0343] 其为用于比特流元素bs_stop_freq的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0344] dflt_header_extra1
[0345] 其为用于比特流元素bs_header_extra1的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0346] dflt_header_extra2
[0347] 其为用于比特流元素bs_header_extra2的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0348] dflt_freq_scale
[0349] 其为用于比特流元素bs_freq_scale的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0350] dflt_alter_scale
[0351] 其为用于比特流元素bs_alter_scale的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0352] dflt_noise_bands
[0353] 其为用于比特流元素bs_noise_bands的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0354] dflt_limiter_bands
[0355] 其为用于比特流元素bs_limiter_bands的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0356] dflt_limiter_gains
[0357] 其为用于比特流元素bs_limiter_gains的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0358] dflt_interpol_freq
[0359] 其为用于比特流元素bs_interpol_freq的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0360] dflt_smoothing_mode
[0361] 其为用于比特流元素bs_smoothing_mode的默认值,该默认值在标记sbrUseDfltHeader表示将采取用于SbrHeader()元素的默认值的情况下应用。
[0362] usacExtElementType
[0363] 该元素允许对比特流扩展类型进行传达。usacExtElementType的意义在表B中定义。
[0364] 表B-usacExtElementType的值
[0365]
[0366] usacExtElementConfigLength
[0367] 其以字节(八位字节)来传达扩展配置的长度。
[0368] usacExtElementDefaultLengthPresent
[0369] 该标记对是否在UsacExtElementConfig()中传送usacExtElementDefaultLength进行传达。
[0370] usacExtElementDefaultLength
[0371] 其以字节对扩展元素的默认长度进行传达。只要给定存取单元中的扩展元素偏离该值,则需要在比 特流中传输另外的长度。如果未明 确地 传输该 元素(usacExtElementDefaultLengthPresent==0),则usacExtElementDefaultLength的值将被设定为零。
[0372] usacExtElementPayloadFrag
[0373] 该标记表示本扩展元素的有效载荷是否可以被分片段并且作为连续USAC帧中的若干节段进行发送。
[0374] numConfigExtensions
[0375] 如果配置的扩展存在于UsacConfig()中,则该值表示所传达的配置扩展的数目。
[0376] confExtIdx
[0377] 配置扩展的索引。
[0378] usacConfigExtType
[0379] 该元素允许对配置扩展类型进行传达。usacConfigExtType的意义在表D中定义。
[0380] 表D-usacConfigExtType的值
[0381]usacConfigExtType 值
ID_CONFIG_EXT_FILL 0
/*保留供ISO使用*/ 1-127
/*保留供ISO范围以外使用*/ 128及更高
[0382] usacConfigExtLength
[0383] 其以字节(八位字节)对配置扩展的长度进行传达。
[0384] bsPseudoLr
[0385] 该标记对应当在Mps212处理之前将逆向中间/边旋转施加至核心信号进行传达。
[0386] 表-bsPseudoLr
[0387]bsPseudoLr 意义
0 核心解码器输出为DMX/RES
1 核心解码器输出为Pseudo L/R
[0388] bsStereoSbr
[0389] 该标记对结合MPEG环绕解码来使用立体声SBR进行传达。
[0390] 表-bsStereoSbr
[0391]bsStereoSbr 意义
0 单声SBR
1 立体声SBR
[0392] bsResidualCoding
[0393] 其根据下表来表示是否施加残差编码。BsResidualCoding值由stereoConfigIndex定义(参见X)。
[0394] 表X-bsResidualCoding
[0395]bsResidualCoding 意义
0 无残差编码,核心编码器为单声
1 残差编码,核心编码器为立体声
[0396] sbrRatioIndx
[0397] 其表示核心采样率与eSBR处理后的采样率之间的比。同时,其根据下表来表示在SBR中使用的合成频带和QMF分析的数目。
[0398] 表-sbrRatioIndex的定义
[0399]
[0400] elemIdx
[0401] 存在于UsacDecoderConfig()和UsacFrame()中的元素的索引。
[0402] UsacConfig()
[0403] UsacConfig()包含与输出采样频率和通道配置有关的信息。该信息将与在此元素外部如在MPEG-4AudioSpecificConfig()中所传达的信息相同。
[0404] Usac输出采样频率
[0405] 如果采样率并非为表1右栏列举的比率中之一,则必须得到采样频率依赖性表(代码表、定标因子频带表等)以解析比特流有效载荷。由于给定采样频率与仅一个采样频率表相关联,并且由于在可能的采样频率范围内期望最大的灵活性,所以下表将用于使隐式采样频率和期望采样频率依赖性表相关联。
[0406] 表1-采样频率映射
[0407]频率范围(Hz) 对于采样频率(Hz)的使用表
f>=92017 96000
92017>f>=75132 88200
75132>f>=55426 64000
55426>f>=46009 48000
46009>f>=37566 44100
37566>f>=27713 32000
27713>f>=23004 24000
23004>f>=18783 22050
18783>f>=13856 16000
13856>f>=11502 12000
11502>f>=9391 11025
9391>f 8000
[0408] UsacChannelConfig()
[0409] 通道配置表覆盖大多数常用的扬声器位置。为了进一步的灵活性,通道可以被映射至在各种应用的现代扬声器设置中发现的32个扬声器位置的总体选择。
[0410] 对于包含在比特流中的每个通道,UsacChannelConfig()指定该特定通道将映射至的相关联扬声器位置。由bsOutputChannelPos来对扬声器位置编索引。在多通道元素的情况下,bsOutputChannelPos[i]的索引i表示该通道在比特流中出现的位置。
[0411] 更精确地,以0(零)开始,以通道在比特流中出现的顺序对通道进行编号。在UsacSingleChannelElement()或UsacLfeElement()的普通情况下,通道编号被分配给该通道,并且通道计数值加1。在UsacChannelPairElement()的情况下,该元素中的第一通道(具有索引ch==0)被编号为1,而该同一元素中的第二通道(具有索引ch==1)接收下一更高的数字,并且通道计数值加2。
[0412] 其遵循numOutChannels将等于或小于比特流中所包含的所有通道的累积和。所有通道的累积和与如下数目相等:该数目为所有UsacSingleChannelElement()数目加上所有UsacLfeElement()数目再加上所有UsacChannelPairElement()的两倍数目。
[0413] 数组bsOutputChannelPos中的所有条目将被互相分开,以避免比特流中扬声器位置的双重分配。
[0414] 在channelConfigurationIndex为0且numOutChannels小于比特流中所包含的所有通道的累积和的特定情况下,那么非分配通道的处置在本说明书的范围以外。关于此的信息可以例如通过较高应用层的适当手段或通过特定设计的(私有)扩展有效载荷进行传送。
[0415] UsacDecoderConfig()
[0416] UsacDecoderConfig()包含由解码器解释比特流所需的所有另外信息。首先,sbrRatioIndex的值确定核心编码器帧长度(ccfl)与输出帧长度之间的比。其后,sbrRatioIndex为通过本比特流中的所有通道元素的循环。对于每次迭代,在usacElementType[]中传达元素类型,紧接着传达其相应的配置结构。各个元素在UsacDecoderConfig()中存在的次序将与相应有效载荷在UsacFrame()中的次序相等。
[0417] 元素的每个实例可以进行独立配置。当读取UsacFrame()中的每个通道元素时,对于每个元素,将使用该实例的相应配置即具有相同的elemIdx。
[0418] UsacSingleChannelElementConfig()
[0419] UsacSingleChannelElementConfig()包含将解码器配置为对一个单通道进行解码所需的所有信息。如果实际上采用SBR,则仅传输SBR配置数据。
[0420] UsacChannelPairElementConfig()
[0421] UsacChannelPairElementConfig()包含与核心编码器相关的配置数据以及取决于SBR的使用的SBR配置数据。立体声编码算法的确切类型由stereoConfigIndex表示。在USAC中,通道对可以以各种方式进行编码。这些方式为:
[0422] 1.使用常规联合立体声编码技术的立体声核心编码器对通过MDCT域中的复合预测可能性进行扩展。
[0423] 2.单声核心编码器通道与基于MPEG环绕的MPS212组合以用于完整参数立体声编码。单声SBR处理被施加至核心信号。
[0424] 3.立体声核心编码器对与基于MPEG环绕的MPS212组合,其中第一核心编码器通道承载下混信号并且第二通道承载残差信号。残差可以是被限制为实现部分残差编码的频带。单声SBR处理仅在MPS212处理之前被施加至下混信号。
[0425] 4.立体声核心编码器对与基于MPEG环绕的MPS212组合,其中第一核心编码器通道承载下混信号并且第二通道承载残差信号。残差可以是被限制为实现部分残差编码的频带。立体声SBR在MPS212处理之后被施加至重建的立体声信号。
[0426] 在核心编码器之后,选项3和4可以进一步与伪LR通道旋转组合。
[0427] UsacLfeElementConfig()
[0428] 由于LFE通道不允许使用时间扭曲式MDCT和噪声填充,所以无需传输对于这些工具的常用核心编码器标记。其反而将被设定为零。
[0429] 而且,在LFE背景下也不允许使用SBR。因而,不传输SBR配置数据。
[0430] UsacCoreConfig()
[0431] UsacCoreConfig()仅包含在全局比特流层级上使能或禁止时间扭曲式MDCT和频谱噪声填充的使用的标记。如果tw_mdct被设定为零,则不施加时间扭曲。如果noiseFilling被设定为零,则不施加频谱噪声填充。
[0432] SbrConfig()
[0433] SbrConfig()比特流元素用于对确切eSBR设置参数进行传达的目的。一方面,SbrConfig()对eSBR工具的一般部署进行传达。另一方面,SbrConfig()包含SbrHeader()的默认版本,即SbrDfltHeader()。如果在比特流中未传输不同的SbrHeader(),则将采取该默认头的值。此机制的背景为在一个比特流中通常仅应用一组SbrHeader()值。然后,SbrDfltHeader()的传输允许通过使用比特流中的仅一位而非常有效地参考该组默认值。通过允许比特流本身的新SbrHeader的带内传输,仍然保持实时地改变SbrHeader值的可能性。
[0434] SbrDfltHeader()
[0435] SbrDfltHeader()可以被称为基本SbrHeader()样板,并且应当包含用于主要使用的eSBR配置的值。在比特流中,通过设定sbrUseDfltHeader()标记可以参考该配置。SbrDfltHeader()的结构与SbrHeader()的结构相同。为了能够区别SbrDfltHeader()和SbrHeader()的值,SbrDfltHeader()中的位字段被加前缀“dflt_”而非“bs_”。如果表示使用SbrDfltHeader(),则SbrHeader()位字段将采取相应SbrDfltHeader()的值,即[0436] bs_start_freq=dflt_start_freq;
[0437] bs_stop_freq=dflt_stop_freq;
[0438] 等
[0439] (继续SbrHeader()中的所有元素,如:
[0440] bs_xxx_yyy=dflt_xxx_yyy;
[0441] Mps212Config()
[0442] Mps212Config()类似于MPEG环绕的SpatialSpecificConfig()并且大部分是根据SpatialSpecificConfig()得到的。然而,其程度减少为仅包含与USAC背景中的单声到立体声上混有关的信息。因此,MPS212仅配置一个OTT盒。
[0443] UsacExtElementConfig()
[0444] UsacExtElementConfig()为用于USAC的扩展元素的配置数据的一般容器。每个USAC扩展具有独特类型的标识符即usacExtElementType,其在表X中定义。对于每个Usa cEx tEl eme ntC onf ig ( ) ,所 包含的 扩展配 置的长 度以可 变usacExtElementConfigLength进行传输,并且允许解码器安全地跳过usacExtElementType为未知的扩展元素。
[0445] 对于通常具有恒定有效载荷长度的USAC扩展,UsacExtElementConfig()允许usacExtElementDefaultLength的传输。定义配置中的默认有效载荷长度允许UsacExtElement()内的usacExtElementPayloadLength的高度有效传达,其中位消耗需要被保持为低。
[0446] 在其中较大量数据被累积并且并非以每帧为基础进行传输而仅以每隔一帧或甚至更稀疏地进行传输的USAC扩展的情况下,该数据可以以遍布若干USAC帧的片段或区段进行传输。这可以有助于更加均衡地保持位储藏。该机 制的使 用由 标记usacExtElementPayloadFrag标记进行传达。片段机制在6.2.X的usacExtElement的描述中进一步说明。
[0447] UsacConfigExtension()
[0448] UsacConfigExtension()为用于UsacConfig()扩展的一般容器。其提供对在解码器初始化或设置时所交换的信息进行修正或扩展的便利方式。配置扩展的存在由usacConfigExtensionPresent表示。如果配置扩展存在(usacConfigExtensionPresent==1),则这些扩展的确切数目遵循位字段numConfigExtensions。每个配置扩展具有独特类型的标识符,usacConfigExtType,其在表X中定义。对于每个UsacConfigExtension,所包含的配置扩展的长度以可变usacConfigExtLength进行传输,并且允许配置比特流解析器安全地跳过usacConfigExtType为未知的配置扩展。
[0449] 对于音频对象类型USAC的顶级有效载荷
[0450] 术语和定义
[0451] UsacFrame()
[0452] 该数据块包含在一个USAC帧的时间周期内的音频数据、相关信息以及其它数据。如在UsacDecoderConfig()中所传达的,UsacFrame()包含numElements元素。这些元素可以包含对于一个或二个通道的音频数据、对于低频增强或扩展有效载荷的音频数据。
[0453] UsacSingleChannelElement()
[0454] 缩写SCE。包含用于单个音频通道的所编码数据的比特流的语法元素。single_channel_element( )基本上包括含有用于FD或LPD核心编码器的数据的UsacCoreCoderData()。在SBR处于作用态的情况下,UsacSingleChannelElement也包含SBR数据。
[0455] UsacChannelPairElement()
[0456] 缩写CPE。包含用于一对通道的数据的比特流有效载荷的语法元素。通道对可以通过传输二个离散通道或者通过一个离散通道和相关Mps212有效载荷来实现。这借助于stereoConfigIndex来传达。在SBR处于作用态的情况下,UsacChannelPairElement还包含SBR数据。
[0457] UsacLfeElement()
[0458] 缩写LFE。包含低采样频率增强通道的语法元素。LFE始终使用fd_channel_stream()元素进行编码。
[0459] UsacExtElement()
[0460] 包 含 扩 展 有 效 载 荷 的 语 法 元 素 。扩 展 元 素 的 长 度 作 为 配 置(USACExtElementConfig())的默认长度进行传达或在UsacExtElement()本身中进行传达。如果存在,则扩展有效载荷为usacExtElementType类型,如在配置中所传达的。
[0461] usacIndependencyFlag
[0462] 其根据下表来表示是否可以在不知道来自先前帧的信息的情况下对当前UsacFrame()进行完全解码。
[0463] 表-usacIndependencyFlag的意义
[0464]
[0465] 备注:请参考对于usacIndependencyFlag的使用建议的X.Y。
[0466] usacExtElementUseDefaultLength
[0467] 其表示扩展元素的长度是否与在UsacExtElementConfig()中定义的usacExtElementDefaultLength相对应。
[0468] usacExtElementPayloadLength
[0469] 其将以字节包含扩展元素的长度。该值应当仅在目前存取单元中的扩展元素长度偏离默认值usacExtElementDefaultLength的情况下在比特流中明确地传输。
[0470] usacExtElementStart
[0471] 其表示目前的usacExtElementSegmentData是否开始数据块。
[0472] usacExtElementStop
[0473] 其表示目前的usacExtElementSegmentData是否结束数据块。
[0474] usacExtElementSegmentData
[0475] 来自连续USAC帧的UsacExtElement()的所有usacExtElementSegmentData的级联,始于usacExtElementStart==1的UsacExtElement( )直至且包含usacExtElementStop==1的UsacExtElement(),形成一个数据块。在一个UsacExtElement()中包含完整数据块的情况下,usacExtElementStart和
usacExtElementStop二者将均被设定为1。根据下表,取决于usacExtElementType将数据块解释为字节对齐的扩展有效载荷:
[0476] 表-对于USAC扩展有效载荷解码的数据块的解释
[0477]
[0478] fill_byte
[0479] 可以用于以未承载信息的位来加长比特流的位的八位字节。用于fill_byte的确切位模式应当为‘10100101’。
[0480] 辅助元素
[0481] nrCoreCoderChannels
[0482] 在通道对元素的背景下,该变量表示形成立体声编码的基础的核心编码器通道的数目。取决于stereoConfigIndex的值,该值将为1或2。
[0483] nrSbrChannels
[0484] 在通道对元素的背景中,该变量表示被施加SBR处理的通道的数目。取决于stereoConfigIndex的值,该值将为1或2。
[0485] 用于USAC的附属有效载荷
[0486] 术语和定义
[0487] UsacCoreCoderData()
[0488] 该数据块包含核心编码器音频数据。对于FD模式或LPD模式,有效载荷元素包含用于一个或二个核心编码器通道的数据。特定模式在元素的起始时以每通道进行传达。
[0489] StereoCoreToolInfo()
[0490] 所有立体声相关信息被捕集在该元素中。其处理立体声编码模式下的位字段的众多依赖性。
[0491] 辅助元素
[0492] commonCoreMode
[0493] 在CPE中,该标记表示两个经编码的核心编码器通道是否使用相同模式。
[0494] Mps212Data()
[0495] 该数据块包含用于Mps212立体声模块的有效载荷。该数据的存在取决于stereoConfigIndex。
[0496] common_window
[0497] 其表示CPE的通道0和通道1是否使用相同的窗口参数。
[0498] common_tw
[0499] 其表示CPE的通道0和通道1对于时间扭曲式MDCT是否使用相同的参数。
[0500] UsacFrame()的解码
[0501] 一个UsacFrame()形成USAC比特流的一个存取单元。根据从表X确定的outputFrameLength,每个UsacFrame解码成768、1024、2048或4096个输出样本。
[0502] UsacFrame()中的第一位为usacIndependencyFlag,其确定是否可以在对先前帧没有任何获知的情况下对给定帧进行解码。如果usacIndependencyFlag被设定为0,则在当前帧的有效载荷中可能存在对先前帧的依赖性。
[0503] UsacFrame()进一步由一个或更多个语法元素组成,该一个或更多个语法元素将以与其相对应配置元素在UsacDecoderConfig()中的次序相同的次序出现在比特流中。每个元素在所有元素系列中的位置由elemIdx索引。对于每个元素,将使用该实例的相应配置(如在UsacDecoderConfig()中传输的)即具有相同的elemIdx。
[0504] 这些语法元素为表X中列举的四种类型中的一种类型。这些元素中的每个元素的类型由usacElementType确定。可能存在相同类型的多个元素。在不同帧的相同位置elemIdx处出现的元素将属于相同的流。
[0505] 表-简单的可能比特流有效载荷的示例
[0506]
[0507] 如果这些比特流有效载荷通过恒定比率通道进行传输,则它们可能包括具有ID_EXT_ELE_FILL的usacExtElementType的扩展有效载荷元素,以调整瞬时比特率。在此情况下,所编码的立体声信号的示例为:
[0508] 表-具有扩展有效载荷用以写入填充位的简单立体声比特流的示例
[0509]
[0510] UsacSingleChannelElement()的解码
[0511] UsacSingleChannelElement()的简单结构由UsacCoreCoderData()的一个实例组成,其中nrCoreCoderChannels被设定为1。取决于该元素的sbrRatioIndex,跟随nrSbrChannels的UsacSbrData()元素也被设定为1。
[0512] UsacExtElement()的解码
[0513] 在比特流中的UsacExtElement()结构可以由USAC解码器解码或跳过。每个扩展由在与UsacExtElement()相关联的UsacExtElementConfig()中传送的usacExtElementType识别。对于每个usacExtElementType,可以存在特定解码器。
[0514] 如果用于扩展的解码器能够用于USAC解码器,则紧接着由USAC解码器已经解析UsacExtElement()之后,将扩展的有效载荷转发至扩展解码器。
[0515] 如果用于扩展的解码器均不能用于USAC解码器,则在比特流内提供最小结构,使得扩展可以被USAC解码器忽略。
[0516] 扩展元素的长度由八位字节的默认长度指定,该默认长度可以在相应UsacExtElementConfig()内进行传达并且可以在UsacExtElement()中驳回;或者通过利用语法元素escapedValue(),扩展元素的长度由在UsacExtElement()中明确提供的长度信息指定,其为一个或三个八位字节长。
[0517] 跨越一个或更多个UsacFrame()的扩展有效载荷可以被分片段,并且其有效载荷分布在若干UsacFrame()间。在此情况下,usacExtElementPayloadFrag标记被设定为1,并且解码器必须采集如下范围的所有片段:从usacExtElementStart被设定为1的UsacFrame()直至且包含usacExtElementStop被设定为1的UsacFrame()。当usacExtElementStop被设定为1时,那么扩展被视为完整的并且被传递至扩展解码器。
[0518] 注意,本说明书不提供片段扩展有效载荷的完整性保护,应当使用其它手段来确保扩展有效载荷的完整性。
[0519] 注意,假设所有扩展有效载荷数据是字节对齐的。
[0520] 每个UsacExtElement()应遵守由于使用usacIndependencyFlag所带来的要求。更明确地,如果usacIndependencyFlag被设定(==1),则UsacExtElement()将能够解码而不需获知先前帧(及其中可能包含的扩展有效载荷)。
[0521] 解码处理
[0522] 在UsacChannelPairElementConfig()中传输的stereoConfigIndex确定在给定CPE中施加的立体声编码的确切类型。取决于立体声编码的该类型,在比特流中实际传输一个或二个核心编码器通道,并且可变nrCoreCoderChannels必须相应地进行设定。然后,语法元素UsacCoreCoderData()提供对于一个或二个核心编码器通道的数据。
[0523] 类似地,取决于立体声编码的类型和eSBR的使用(即如果sbrRatioIndex>0),可以存在可用于一个或二个通道的数据。nrSbrChannels的值需要相应地进行设定,并且语法元素UsacSbrData()提供对于一个或二个通道的eSBR数据。
[0524] 最后,取决于stereoConfigIndex的值来传输Mps212Data()。
[0525] 低频增强型(LFE)通道元素,UsacLfeElement()
[0526] 概论
[0527] 为了维持解码器的规则结构,UsacLfeElement()被定义为标准fd_channel_stream(0,0,0,0,x)元素,即其等于使用频域编码器的UsacCoreCoderData()。因而,使用用于对UsacCoreCoderData()-元素进行解码的标准程序可以进行解码。
[0528] 然而,为了提供LFE解码器的更高比特率和硬件高效率实现,向用于对该元素进行编码的选项施加若干限制:
[0529] ●window_sequence字段始终设定为0(ONLY_LONG_SEQUENCE)
[0530] ●任何LFE的仅最低24个频谱系数可以为非零
[0531] ●不使用时间性噪声整形,即tns_data_present被设定为0
[0532] ●时间扭曲不作用
[0533] ●不施加噪声填充
[0534] UsacCoreCoderData()
[0535] UsacCoreCoderData()包含用于对一个或二个核心编码器通道进行解码的所有信息。
[0536] 解码的次序为:
[0537] ●对于每个通道取得core_mode[]
[0538] ●在两个核心编码器通道(nrChannels==2)的情况下,解析StereoCoreToolInfo()并且确定所有立体声相关参数
[0539] ●取决于所传达的core_modes,对于每个通道来传输lpd_channel_stream()或fd_channel_stream()
[0540] 从以上列表可知,一个核心编码器通道(nrChannels==1)的解码导致获得core_mode位,其后面跟随一个lpd_channel_stream或fd_channel_stream,这取决于core_mode。
[0541] 在二个核心编码器通道的情况下,可以利用通道之间的若干传达冗余,特别是二个通道的core_mode为0的情况尤为如此。细节请参考6.2.X(StereoCoreToolInfo()的解码)。
[0542] StereoCoreToolInfo()
[0543] StereoCoreToolInfo()允许对如下参数进行有效编码:该参数的值可以在以FD模式(core_mode[0,1]==0)对二个通道进行编码的情况下跨越CPI的核心编码器通道共享。特别地,在比特流中的适当标记被设定为1时,共享下列数据元素。
[0544] 表-跨越核心编码器通道对的通道共享的比特流元素
[0545]
[0546] 如果未设定适当的标记,则对于每个核心编码器通道以StereoCoreToolInfo()(max_sfb、max_sfb1)或以跟随UsacCoreCoderData()元素中的StereoCoreToolInfo()的fd_channlel_stream()来分别传输数据元素。
[0547] 在common_window==1的情况下,StereoCoreToolInfo()还包含与MDCT域中的M/S立体声编码和复杂预测数据有关的信息(参见7.7.2)。
[0548] UsacSbrData()
[0549] 该数据块包含对于一个或二个通道的SBR带宽扩展的有效载荷。该数据的存在取决于sbrRatioIndex。
[0550] SbrInfo()
[0551] 该元素包含在改变时不需解码器重置的SBR控制参数。
[0552] SbrHeader()
[0553] 该元素包含具有SBR配置参数的SBR头数据,该数据通常不会随比特流的持续时间进行改变。
[0554] 用于USAC的SBR有效载荷
[0555] 在USAC中,SBR有效载荷在UsacSbrData()中进行传输,其为每个单个通道元素或通道对元素的整数部分。UsacSbrData()紧跟随UsacCoreCoderData()。不存在用于LFE通道的SBR有效载荷。
[0556] numSlots
[0557] 在Mps212Data帧中的时槽数目。
[0558] 虽然已经在设备的背景下描述了一些方面,但是清楚的是这些方面还表示相应方法的描述,其中块或装置与方法步骤或方法步骤的特征相对应。类似地,在方法步骤的背景下描述的方面也表示相应块的描述或相应装置的项或特征的描述。
[0559] 取决于某些实现要求,本发明的实施例可以以硬件或软件实现。实现可以使用如下数字储存介质来执行:例如,软盘、数字化通用磁盘(DVD)、光盘(CD)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)或闪速存储器,该数字储存介质在其上存储有电可读控制信号,该电可读控制信号与可编程计算机系统协作(或能够与其协作)使得执行各种方法。
[0560] 根据本发明的一些实施例包括具有电可读控制信号的非暂态数据载体,该电可读控制信号与可编程计算机系统协作,使得执行本文所述方法中的一种方法。
[0561] 所编码的音频信号可以经由有线或无线传输介质进行传输,或者可以储存在机器可读载体或非暂态储存介质上。
[0562] 通常,本发明的实施例可以被实现为具有程序代码的计算机程序产品,当在计算机上运行计算机程序产品时,该程序代码可操作为执行所述方法中的一种方法。程序代码可以例如储存在机器可读载体上。
[0563] 其它实施例包括储存在机器可读载体上的用于执行本文所述的方法中的一种方法的计算机程序。
[0564] 换言之,本发明方法的实施例因此为如下计算机程序:当在计算机上运行该计算机程序时,该计算机程序具有的程序代码用于执行本文所述的方法中的一种方法。
[0565] 因此,本发明方法的又一实施例为如下数据载体(或数字储存介质或计算机可读介质):其包括记录于其上的用于执行本文所述的方法中的一种方法的计算机程序。
[0566] 因此,本发明方法的又一实施例为表示用于执行本文所述的方法中的一种方法的计算机程序的数据流或信号序列。该数据流或信号序列可以例如被配置为经由数据通信连接如经由因特网进行传输。
[0567] 又一实施例包括可以被配置为或调整成执行本文所述的方法中的一种方法的处理装置,如计算机或可变成逻辑器件。
[0568] 又一实施例包括其上安装有用于执行本文所述的方法中的一种方法的计算机程序的计算机。
[0569] 在一些实施例中,可编程逻辑器件(例如现场可编程门阵列)可以用于执行本文所描述的方法的部分或全部功能。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文所述的方法中的一种方法。通常,该方法优选地由任何硬件装置执行。
[0570] 上述实施例仅说明本发明的原理。要理解,本文所描述的布置和细节的修改及变型对本领域技术人员将是明显的。因此,其意在仅受限于审查中的专利权利要求的范围,而非受限于通过本文中的实施例的描述和说明所提出的具体细节。