音频编码器和解码器的制作方法

文档序号:18325523发布日期:2019-08-03 10:58阅读:339来源:国知局
音频编码器和解码器的制作方法

相关申请的交叉引用

本申请要求2013年5月24日提交的美国临时专利申请no.61/827264的申请目的权益,其内容通过引用并入于此。

本公开一般涉及音频编码。特别地,它涉及在音频编码系统中对参数向量的编码和解码。本公开还涉及在音频解码系统中重构音频对象的方法和装置。



背景技术:

在传统音频系统中,采用基于声道的方法。每个声道例如可以表示一个扬声器或者一个扬声器阵列的内容。对于这种系统,可能的编码方案包括离散多声道编码或者诸如mpeg环绕之类的参数编码。

近来,已经开发出一种新的方法。该方法是基于对象的。在采用基于对象的方法的系统中,三维音频场景由音频对象及其相关联的位置元数据来表示。在音频信号的回放期间,这些音频对象在三维音频场景中四处移动。该系统还可以包括所谓的床声道(bedchannel),所述床声道可以被描述为直接映射到例如上述传统音频系统的扬声器位置的静止音频对象。

在基于对象的音频系统中可能出现的问题是如何高效地对音频信号进行编码和解码以及保持编码信号的质量。可能的编码方案包括:在编码器侧,根据音频对象和床声道来创建包括许多声道的下混信号以及使得能够在解码器侧重建音频对象和床声道的辅助信息。

mpeg空间音频对象编码(mpegsaoc)描述了一种用于对音频对象进行参数编码的系统。该系统发送用于上混矩阵的辅助信息,其借助于诸如对象的电平差和互相关性之类的参数来描述对象的属性。这些参数然后在解码器侧被用来控制音频对象的重建。该过程在数学上是复杂的,并且常常必须依赖于关于没有由参数明确描述的音频对象的属性的假设。在mpegsaoc中提出的方法可以降低基于对象的音频系统所需的比特率,但是可能还需要改进以进一步提高如上所述的效率和质量。

附图说明

现在将参考附图来描述示例性实施例,其中:

图1是根据示例性实施例的音频编码系统的概括框图;

图2是图1中所示的示例性上混矩阵编码器的概括框图;

图3示出了参数向量中与由图1的音频编码系统确定的上混矩阵中的元素对应的第一元素的示例性概率分布;

图4示出了参数向量中与由图1的音频编码系统确定的上混矩阵中的元素对应的至少一个经取模差分编码的(modulodifferentialcoded)第二元素的示例性概率分布;

图5是根据示例性实施例的音频解码系统的概括框图;

图6是图5中所示的上混矩阵解码器的概括框图;

图7描述了参数向量中与由图1的音频编码系统确定的上混矩阵中的元素对应的第二元素的编码方法;

图8描述了参数向量中与由图1的音频编码系统确定的上混矩阵中的元素对应的第一元素的编码方法;

图9描述了用于示例性参数向量中的第二元素的图7的编码方法的部分;

图10描述了用于示例性参数向量中的第一元素的图8的编码方法的部分;

图11是图1中所示的第二示例性上混矩阵编码器的概括框图;

图12是根据示例性实施例的音频解码系统的概括框图;

图13描述了用于对上混矩阵的行进行稀疏编码(sparseencoding)的编码方法;

图14描述了用于上混矩阵的示例性行的图10的编码方法的部分;

图15描述了用于上混矩阵的示例性行的图10的编码方法的部分;

所有图都是示意性的,并且一般只显示对于阐明本公开所必要的部分,而其它部分可能被省略或者仅作暗示。除非另外指出,否则在不同附图中相同的附图标记指代相同的部分。

具体实施方式

鉴于以上所述,一个目标是提高编码音频信号的效率和质量的编码器、解码器以及相关联的方法。

i.概述-编码器

根据第一方面,示例性实施例提出了用于编码的编码方法、编码器和计算机程序产品。所提出的方法、编码器和计算机程序产品一般可以具有相同的特征和优点。

根据示例性实施例,提供一种用于在音频编码系统中对参数向量进行编码的方法,每个参数对应于非周期量,向量具有第一元素和至少一个第二元素,该方法包括:通过可取n个值的索引值来表示向量中的每个参数;使所述至少一个第二元素中的每一个与符号相关联,其中符号是如下计算的:计算第二元素的索引值与向量中它前面的元素的索引值之间的差;对差应用模n运算。该方法还包括如下步骤:通过基于包含符号概率的概率表对与所述至少一个第二元素相关联的符号进行熵编码来对所述至少一个第二元素中的每一个进行编码。

该方法的优点是与不对差应用模n运算的传统差值编码策略相比,可能的符号的数量减少了大约一半。因此,概率表的大小减少了大约一半。结果,存储概率表需要更少的存储器,并且由于概率表通常存储于编码器中的昂贵存储器中,所以以此方式编码器可以变得更便宜。另外,可以提高在概率表中查找符号的速度。另外的优点是:由于概率表中的所有符号都是与特定的第二元素相关联的可能的候选,所以编码效率可以提高。与之相比,对于传统的差值编码策略,在概率表中只有大约一半的符号是与特定的第二元素相关联的候选。

根据实施例,该方法还包括使向量中的第一元素与符号关联,符号是这样计算的:按偏移值使表示向量中的第一元素的索引值移位;对经移位的索引值应用模n运算。该方法还包括如下步骤:通过使用用于对至少一个第二元素进行编码的相同的概率表对与第一元素相关联的符号进行熵编码来对第一元素进行编码。

该实施例利用了如下事实:第一元素的索引值的概率分布与所述至少一个第二元素的符号的概率分布相似,虽然按偏移值相对于彼此移位。因此,对于向量中的第一元素,可以使用相同的概率表,而非专用的概率表。根据以上,这可以导致降低存储器需求和更便宜的编码器。

根据实施例,偏移值等于第一元素的最可能的索引值与概率表中所述至少一个第二元素的最可能的符号之间的差。这意味着概率分布的峰值是对齐的。因此,对于第一元素,相比于为第一元素使用专用的概率表,保持了基本上相同的编码效率。

根据实施例,参数向量的第一元素和所述至少一个第二元素在特定的时间帧对应于在音频编码系统中使用的不同频带。这意味着与多个频带对应的数据可以在同一个操作中被编码。例如,参数向量可以对应于随多个频带变化的上混或重构系数。

根据实施例,参数向量的第一元素和所述至少一个第二元素在特定的频带对应于在音频编码系统中使用的不同时间帧。这意味着与多个时间帧对应的数据可以在同一个操作中被编码。例如,参数向量可以对应于随多个时间帧变化的上混或重构系数。

根据实施例,概率表被转译成哈夫曼码书,其中与向量中的元素相关联的符号被用作码书索引,并且其中编码步骤包括通过用码书中按与第二元素关联的码书索引进行索引的码字表示第二元素,来对所述至少一个第二元素中的每一个进行编码。通过使用符号作为码书索引,可以提高查找用于表示元素的码字的速度。

根据实施例,编码步骤包括通过用哈夫曼码书中按与第一元素关联的码书索引进行索引的码字表示第一元素,使用用于对所述至少一个第二元素进行编码的相同的哈夫曼码书,对向量中的第一元素进行编码。因此,在编码器的存储器中只需存储一个哈夫曼码书,根据以上,这可以导致更便宜的编码器。

根据另一个实施例,参数向量对应于由音频编码系统确定的上混矩阵中的元素。这可以减少在音频编码/解码系统中所需要的比特率,因为上混矩阵可以被高效地编码。

根据示例性实施例,提供一种包含计算机代码指令的计算机可读介质,当所述计算机代码指令在具有处理能力的设备上执行时适于执行第一方面的任何方法。

根据示例性实施例,提供一种用于在音频编码系统中对参数向量进行编码的编码器,每个参数对应于非周期量,向量具有第一元素和至少一个第二元素,该编码器包括:接收组件,适于接收所述向量;索引组件,适于用可取n个值的索引值来表示向量中的每个参数;关联组件,适于使所述至少一个第二元素中的每一个与符号关联,其中符号是这样计算的:计算第二元素的索引值与向量中它前面的元素的索引值之间的差;对差应用模n运算。该编码器还包括编码组件,用于通过基于包含符号概率的概率表对与所述至少一个第二元素关联的符号进行熵编码来对所述至少一个第二元素中的每一个进行编码。

ii.概述-解码器

根据第二方面,示例性实施例提出了用于解码的解码方法、解码器和计算机程序产品。所提出的方法、解码器和计算机程序产品一般可以具有相同的特征和优点。

关于在上面编码器的概述中所呈现的特征和设置的优点对于解码器的相应特征和设置一般也可以是有效的。

根据示例性实施例,提供一种用于在音频解码系统中将经熵编码的符号的向量解码成与非周期量有关的参数向量的方法,经熵编码的符号的向量包含第一经熵编码的符号和至少一个第二经熵编码的符号,并且参数向量包含第一元素和至少一个第二元素,该方法包括:通过使用概率表以可取n个整数值的符号来表示经熵编码的符号的向量中的每个经熵编码的符号;使第一经熵编码的符号与索引值相关联;使所述至少一个第二经熵编码的符号中的每一个与索引值相关联,所述至少一个第二经熵编码的符号的索引值是这样计算的:计算与在经熵编码的符号的向量中第二经熵编码的符号前面的经熵编码的符号相关联的索引值和表示第二经熵编码的符号的符号的和;对该和应用模n运算。该方法还包括如下步骤:以对应于与所述至少一个第二经熵编码的符号相关联的索引值的参数值表示参数向量的所述至少一个第二元素。

根据示例性实施例,对于经熵编码的符号的向量中的所有经熵编码的符号,使用相同的概率表来执行以符号表示经熵编码的符号的向量中的每个经熵编码的符号的步骤,其中与第一经熵编码的符号相关联的索引值是这样计算的:按偏移值对表示经熵编码的符号的向量中的第一经熵编码的符号的符号进行移位;对移位后的符号应用模n运算。该方法还包括如下步骤:用对应于与第一经熵编码的符号相关联的索引值的参数值来表示参数向量的第一元素。

根据实施例,概率表被转译成哈夫曼码书并且每个经熵编码的符号对应于哈夫曼码书中的码字。

根据另外的实施例,哈夫曼码书中的每个码字与码书索引相关联,并且以符号表示经熵编码的符号的向量中的每个经熵编码的符号的步骤包括用与对应于经熵编码的符号的码字相关联的码书索引来表示经熵编码的符号。

根据实施例,经熵编码的符号的向量中的每个经熵编码的符号在特定的时间帧对应于在音频解码系统中使用的不同频带。

根据实施例,经熵编码的符号的向量中的每个经熵编码的符号在特定的频带对应于在音频解码系统中使用的不同时间帧。

根据实施例,参数向量对应于由音频解码系统使用的上混矩阵中的元素。

根据示例性实施例,提供一种包含计算机代码指令的计算机可读介质,所述计算机代码指令当在具有处理能力的设备上执行时适于执行第二方面的任何方法。

根据示例性实施例,提供一种用于在音频解码系统中将经熵编码的符号的向量解码成与非周期量有关的参数向量的解码器,经熵编码的符号的向量包含第一经熵编码的符号和至少一个第二经熵编码的符号,并且参数向量包含第一元素和至少一个第二元素,该解码器包括:接收组件,被配置为接收所述经熵编码的符号的向量;索引组件,被配置为通过使用概率表以可取n个整数值的符号来表示经熵编码的符号的向量中的每个经熵编码的符号;关联组件,被配置为使第一经熵编码的符号与索引值相关联;关联组件,还被配置为使所述至少一个第二经熵编码的符号中的每一个与索引值相关联,所述至少一个第二经熵编码的符号的索引值是这样计算的:计算与在经熵编码的符号的向量中在第二经熵编码的符号前面的经熵编码的符号相关联的索引值和表示第二经熵编码的符号的符号的和;对该和应用模n运算。该解码器还包括解码组件,被配置为用对应于与所述至少一个第二经熵编码的符号相关联的索引值的参数值来表示参数向量的至少一个第二元素。

iii.概述-稀疏矩阵编码器

根据第三方面,示例性实施例提出用于编码的编码方法、编码器和计算机程序产品。所提出的方法、编码器和计算机程序产品一般可以具有相同的特征和优点。

根据示例性实施例,提供一种用于在音频编码系统中对上混矩阵进行编码的方法,上混矩阵的每行包含m个元素,该m个元素允许从包含m个声道的下混信号中重构音频对象的时间/频率块(time/frequencytile),该方法包括:对于上混矩阵中的每行:从上混矩阵中的行的m个元素中选择元素子集;以上混矩阵中的位置和值来表示所选择的元素子集中的每个元素;对所选择的元素子集中的每个元素的值和在上混矩阵中的位置进行编码。

如本文所使用的,术语包含m个声道的下混信号是指包含m个信号或声道的信号,其中每个声道是包含要重构的音频对象的多个音频对象的组合。声道数典型地大于1,并且在许多情况下声道数为5或更多。

如本文所使用的,术语上混矩阵是指具有n行m列的矩阵,其允许从包含m个声道的下混信号中重构n个音频对象。上混矩阵的每行上的元素对应于一个音频对象,并且提供要与下混的m个声道相乘的系数,以便重构音频对象。

如本文所使用的,上混矩阵中的位置通常是指指示矩阵元素的行和列的行和列索引。术语位置也可以指上混矩阵的给定行中的列索引。

在一些情况下,在音频编码/解码系统中,每时间/频率块发送上混矩阵的所有元素需要不期望的高比特率。该方法的优点在于只需要对上混矩阵元素的子集进行编码并传输给解码器。因为更少的数据被传输并且数据被更高效地编码,所以这可以降低音频编码/解码系统所需的比特率。

例如通过对输入音频信号应用合适的滤波器组,音频编码/解码系统典型地把时间-频率空间划分成时间/频率块。时间/频率块通常指与时间间隔和频率子带对应的时间-频率空间的一部分。时间间隔典型地可以对应于在音频编码/解码系统中使用的时间帧的持续时间。频率子带典型地可以对应于由在音频编码/解码系统中使用的滤波器组限定的一个或几个相邻的频率子带。在频率子带对应于由滤波器组限定的多个相邻的频率子带的情况下,这允许在音频信号的解码过程中具有非均匀的频率子带,例如,音频信号的频率越高,则频率子段越宽。在宽带情况下,当音频编码/解码系统在整个频率范围上操作时,时间/频率块的频率子带可以对应于整个频率范围。上面的方法公开了用于在音频编码系统中对上混矩阵进行编码的编码步骤,以允许在一个这种时间/频率块期间重构音频对象。然而,应当理解,该方法可以针对音频编码/解码系统的每个时间/频率块重复。同样应当理解,可以同时对几个时间/频率块进行编码。典型地,相邻的时间/频率块可以在时间和/或频率上有一些重叠。例如,时间上的重叠可以相当于重构矩阵的元素在时间上(即从一个时间间隔到下一个时间间隔)的线性插值。然而,本公开以编码/解码系统的其它部分为目标,而在相邻时间/频率块之间在时间和/或频率上的任何重叠就留给技术人员去实现。

根据实施例,对于上混矩阵中的每行,所选择的元素子集在上混矩阵中的位置跨越多个频带和/或多个时间帧而变化。相应地,对元素的选择可以取决于特定的时间/频率块,使得对于不同的时间/频率块可以选择不同的元素。这提供了更灵活的编码方法,提高编码信号的质量。

根据实施例,对于上混矩阵的每行,所选择的元素子集包含相同数量的元素。在其它实施例中,所选元素的数量可以正好为1。这降低了编码器的复杂度,因为算法只需要为每行选择相同数量的元素,即当在解码器侧执行上混时最重要的元素。

根据实施例,对于上混矩阵中的每行以及对于多个频带或多个时间帧,所选择的元素子集的元素的值形成一个或多个参数向量,参数向量中的每个参数对应多个频带或多个时间帧的一个,并且其中一个或多个参数向量使用根据第一方面的方法进行编码。换言之,所选元素的值可能被高效地编码。如上面在第一方面的概述中呈现的关于特征和设置的优点通常对本实施例是有效的。

根据实施例,对于上混矩阵中的每行以及对于多个频带或多个时间帧,所选择的元素子集的元素的位置形成一个或多个参数向量,参数向量中的每个参数对应多个频带或多个时间帧的一个,并且其中一个或多个参数向量使用根据第一方面的方法进行编码。换言之,所选元素的位置可能被高效地编码。如上面在第一方面的概述中呈现的关于特征和设置的优点通常对本实施例是有效的。

根据示例性实施例,提供一种包含计算机代码指令的计算机可读介质,所述计算机代码指令当在具有处理能力的设备上执行时适于执行第三方面的任何方法。

根据示例性实施例,提供一种用于在音频编码系统中对上混矩阵进行编码的编码器,上混矩阵的每行包含m个元素,该m个元素允许从包含m个声道的下混信号中重构音频对象的时间/频率块,该编码器包括:接收组件,适于接收上混矩阵中的每行;选择组件,适于从上混矩阵中的行的m个元素中选择元素子集;编码组件,适于用上混矩阵中的位置和值来表示所选择的元素子集中的每个元素,编码组件还适于对所选择的元素子集中的每个元素的值和在上混矩阵中的位置进行编码。

iv.概述-稀疏矩阵解码器

根据第四方面,示例性实施例提出用于解码的解码方法、解码器和计算机程序产品。所提出的方法、解码器和计算机程序产品一般可以具有相同的特征和优点。

关于如在上面稀疏矩阵编码器的概述中呈现的特征和设置的优点对于解码器的相应特征和设置通常可以是有效的。

根据示例性实施例,提供一种用于在音频解码系统中重构音频对象的时间/频率块的方法,包括:接收包含m个声道的下混信号;接收表示上混矩阵中的行的m个元素的子集的至少一个经编码的元素,每个经编码的元素包含上混矩阵中的行中的位置和值,该位置指示下混信号的m个声道中与该经编码的元素对应的的一个声道;以及通过形成与所述至少一个经编码的元素对应的下混声道的线性组合,来从下混信号中重构音频对象的时间/频率块,其中在所述线性组合中,每个下混声道被乘以它对应的经编码的元素的值。

这样,根据该方法,通过形成下混声道的子集的线性组合来重构音频对象的时间/频率块。下混声道的子集对应于已经接收到经编码的上混系数的那些声道。因此,尽管只接收到上混矩阵的诸如稀疏子集之类的子集,该方法允许重构音频对象。通过形成仅与所述至少一个经编码的元素对应的下混声道的线性组合,解码过程的复杂度可以降低。替代方案是形成所有下混信号的线性组合,然后将它们中的一些(不与所述至少一个经编码的元素对应的下混信号)乘以零值。

根据实施例,所述至少一个经编码的元素的位置跨多个频带和/或跨多个时间帧而变化。换言之,对于不同的时间/频率块,可以对上混矩阵的不同元素进行编码。

根据实施例,所述至少一个经编码的元素的元素数量等于1。这意味着在每个时间/频率块中,根据一个下混声道来重构音频对象。然而,在不同的时间/频率块之间,用来重构音频对象的这一个下混声道可能变化。

根据实施例,对于多个频带或多个时间帧,所述至少一个经编码的元素的值形成一个或多个向量,其中每个值由经熵编码的符号表示,其中经熵编码的符号的每个向量中的每个符号对应于所述多个频带的一个或所述多个时间帧的一个,并且其中使用根据第二方面的方法来对经熵编码的符号的一个或多个向量进行解码。以此方式,上混矩阵的元素的值可以被高效地编码。

根据实施例,对于多个频带或多个时间帧,所述至少一个经编码的元素的位置形成一个或多个向量,其中每个位置由经熵编码的符号表示,其中经熵编码的符号的每个向量中的每个符号对应于所述多个频带的一个或所述多个时间帧的一个,并且其中使用根据第二方面的方法来对经熵编码的符号的一个或多个向量进行解码。以此方式,上混矩阵的元素的位置可以被高效地编码。

根据示例性实施例,提供一种包含计算机代码指令的计算机可读介质,所述计算机代码指令当在具有处理能力的设备上执行时适于执行第三方面的任何方法。

根据示例性实施例,提供一种用于重构音频对象的时间/频率块的解码器,包括:接收组件,被配置为接收包含m个声道的下混信号以及表示上混矩阵中的行的m个元素的子集的至少一个经编码的元素,每个经编码的元素包含在上混矩阵中的行中的位置和值,该位置指示下混信号的m个声道中与经编码的元素对应的一个声道;以及重构组件,被配置为通过形成与所述至少一个经编码的元素对应的下混声道的线性组合,来从下混信号中重构音频对象的时间/频率块,其中在所述线性组合中每个下混声道被乘以它对应的经编码的元素的值。

v.示例性实施例

图1示出了用于对音频对象104进行编码的音频编码系统100的概括框图。音频编码系统包括下混组件106,该下混组件106根据音频对象104创建下混信号110。下混信号110例如可以是与诸如dolbydigitalplus之类的既定声音解码系统或诸如aac、usac或mp3之类的mpeg标准后向兼容的5.1或7.1环绕声信号。在其它实施例中,下混信号不后向兼容。

为了能够从下混信号110中重构音频对象104,在上混参数分析组件112处根据下混信号110和音频对象104来确定上混参数。例如,上混参数可以对应于允许从下混信号110中重构音频对象104的上混矩阵的元素。上混参数分析组件112关于各个时间/频率块处理下混信号110和音频对象104。因此,上混参数是针对每个时间/频率块确定的。例如,可以针对每个时间/频率块确定上混矩阵。例如,上混参数分析组件112可以在诸如正交镜像滤波器(qmf)域之类的频域中操作,这允许了频率选择性处理。出于这个原因,通过使下混信号110和音频对象104经历滤波器组108,下混信号110和音频对象104可以被变换到频域。这可以例如通过应用qmf变换或任何其它适当的变换来完成。

上混参数114可被组织成向量格式。向量可以表示用于在特定的时间帧在不同的频带从音频对象104中重构特定的音频对象的上混参数。例如,向量可以对应于上混矩阵中的某个矩阵元素,其中向量包含用于后续频带的某个矩阵元素的值。在其它实施例中,向量可以表示用于在特定的频带在不同的时间帧从音频对象104中重构特定的音频对象的上混参数。例如,向量可以对应于上混矩阵中的某个矩阵元素,其中向量包含用于后续时间帧但是在相同频带的某个矩阵元素的值。

向量中的每个参数对应于非周期量,例如在-9.6到9.4之间取值的量。非周期量一般是指在该量可以取的值中不存在周期性的量。这与诸如角度之类的周期量相反,其中在量可以取的值之间存在清晰的周期性对应。例如,对于角度,存在2π周期性,使得例如角度0对应于角度2π。

上混参数114然后以向量格式由上混矩阵编码器102接收。现在将结合图2来详细说明上混矩阵编码器。向量由接收组件202接收并且具有第一元素和至少一个第二元素。元素的数量例如取决于音频信号中的频带数量。元素的数量也可以取决于在一个编码操作中被编码的音频信号的时间帧的数量。

向量然后由索引组件204索引。索引组件适于用可取预定数量的值的索引值来表示向量中的每个参数。这种表示可以在两个步骤中完成。首先,对参数进行量化,然后,按索引值索引量化后的值。举例来说,在向量中的每个参数可以在-9.6到9.4之间取值的情况下,这可以通过使用0.2的量化步长来完成。量化后的值然后可以按索引0-95,即96个不同的值来索引。在下面的示例中,索引值在0-95的范围中,但是这当然只是示例,其它范围的索引值也同样可能,例如0-191或者0-63。较小的量化步长可以在解码器侧产生失真较小的解码音频信号,但是也可能导致在音频编码系统100与解码器之间的数据传输需要较大的比特率。

被索引的值随后被发送到关联组件206,关联组件206使用取模差分编码策略来使所述至少一个第二元素中的每一个与符号相关联。关联组件206适于计算第二元素的索引值与向量中前面的元素的索引值之间的差。通过只使用传统的差分编码策略,所述差可以是-95到95的范围中的任意一个,即它有191个可能的值。这意味着当使用熵编码对差值进行编码时,需要包含191个概率的概率表,即一个概率用于所述差的191个可能值中的每个。而且,因为对于每个差,191个概率中的大约一半是不可能的,所以编码的效率会降低。例如,如果要差分编码的第二元素具有索引值90,则可能的差在-5到+90的范围内。典型地,具有这样的熵编码策略将降低编码的效率:在该熵编码策略中,对于要编码的每个值,某些概率是不可能的。本公开中的差分编码策略可以克服这个问题,并且通过对差应用模96运算,同时使所需代码的数量降低到96个。关联算法可以表示为:

δidx(b)=(idx(b)-idx(b-1))modnq(公式1)

其中b是向量中正被差分编码的元素,nq是可能的索引值的数量,并且δidx(b)是与元素b关联的符号。

根据一些实施例,概率表被转译成哈夫曼码书。在这种情况下,与向量中的元素相关联的符号用作码书索引。编码组件208然后可以通过用哈夫曼码书中由与第二元素相关联的码书索引来索引的码字表示第二元素,对所述至少一个第二元素中的每一个进行编码。

可以在编码组件208中实现任何其它适当的熵编码策略。举例来说,这种编码策略可以是区间编码策略(rangecodingstrategy)或算术编码策略。

下面示出模运算方法的熵总是小于或等于传统差分方法的熵。传统差分方法的熵ep为:

其中p(n)p(n)是普通差分索引值n的概率。

取模方法的熵eq为:

其中q(n)是如下给出的取模差分索引值n的概率:

q(0)=p(0)(公式4)

q(n)=p(n)+p(n-nq)n=1...nq-1(公式5)

因此我们有

在最后的求和中代入n=j-nq,得到

(公式7)

另外,

逐项比较和,由于

log2p(n)≤log2(p(n)+p(n-nq))(公式9)

以及类似地

log2p(n-nq)≤log2(p(n)+p(n-nq))(公式10)

我们得出ep≥eq。

如上所示,取模方法的熵总是小于或等于传统差分方法的熵。熵相等的情况是以下罕见的情况:要编码的数据是病态数据,即不是正常表现的数据,在大多数情况下不适用于例如上混矩阵。

由于取模方法的熵总是小于或等于传统差分方法的熵,所以与由传统差分方法计算的符号的熵编码相比,由取模方法计算的符号的熵编码将产生更低或至少相同的比特率。换言之,由取模方法计算的符号的熵编码在大多数情况下比由传统差分方法计算的符号的熵编码更高效。

如上所述,另一个优点在于取模方法中概率表中必需概率的数量大约为传统非取模方法中必需概率的数量的一半。

上面已经描述了用于对参数向量中的至少一个第二元素进行编码的取模方法。通过使用表示第一元素的被索引的值,可以对第一元素进行编码。由于第一元素的索引值的概率分布和所述至少一个第二元素的取模差分值的概率分布可能非常不同,(关于被索引的第一元素的概率分布参见图3,关于所述至少一个第二元素的取模差分值,即符号,的概率分布参见图4)所以可能需要用于第一元素的专用概率表。这要求音频编码系统100和相应的解码器在其存储器中具有这种专用概率表。

然而,发明者观察到概率分布的形状在某些情况下非常相似,虽然相对于彼此被移位。这个观察可以用来以所述至少一个第二元素的符号的概率分布的移位版本来近似被索引的第一元素的概率分布。这种移位可以通过调整关联组件206来实现,以便通过按偏移值对表示向量中的第一元素的索引值进行移位,并且随后对移位后的索引值应用模96(或相应值)运算,来使向量中的第一元素与符号相关联。

与第一元素关联的符号的计算因此可以表示为:

idxshifted(1)=(idx(1)-abs_offset)modnq(公式11)

这样获得的符号被编码组件208使用,该编码组件208通过使用与用来对所述至少一个第二元素进行编码的概率表相同的概率表对与第一元素相关联的符号进行熵编码来对第一元素进行编码。偏移值可以等于或至少接近于第一元素的最可能的索引值与概率表中所述至少一个第二元素的最可能的符号之间的差值。在图3中,第一元素的最可能的索引值由箭头302指示。假设所述至少一个第二元素的最可能的符号是零,则箭头302所表示的值将是所使用的偏移值。通过使用偏移方法,图3和图4中分布的峰被对齐。该方法避免了对第一元素的专用概率表的需求,因此在音频编码系统100和相应的解码器中节约了存储器,同时常常维持与专用概率表将提供的几乎相同的编码效率。

在使用哈夫曼码书完成所述至少一个第二元素的熵编码的情况下,编码组件208可以通过用哈夫曼码书中由与第一元素关联的码书索引来索引的码字表示第一元素,来使用与用于对所述至少一个第二元素进行编码的哈夫曼码书相同的哈夫曼码书对第一元素进行编码。

由于在音频解码系统中对参数进行编码时查找速度可能很重要,存储码书的存储器有利地是快速存储器,因此很昂贵。通过只使用一个概率表,编码器因此可以比使用两个概率表的情况更便宜。

可以注意到,图3和图4所示的概率分布常常是预先在训练数据集上计算的,因此不是在对向量进行编码时计算的,但是当然可以在编码时“即时”计算分布。

同样可以注意到,上面对于使用来自上混矩阵的向量作为正要编码的参数向量的音频编码系统100的描述只是示例应用。根据本公开,用于对参数向量进行编码的方法可以在音频编码系统中的其它应用中使用,例如当对下混编码系统中的其它内部参数(诸如在诸如谱带复制(sbr)之类的参数带宽扩展系统中所使用的参数)进行编码时。

图5是用于从经编码的下混信号510和经编码的上混矩阵512中重建经编码的音频对象的音频解码系统500的概括框图。经编码的下混信号510由下混接收组件506接收,在下混接收组件506中,信号被解码并且如果还不在适当的频域中,则被变换到适当的频域。经解码的下混信号516然后被发送给上混组件508。在上混组件508中,使用经解码的下混信号516和经解码的上混矩阵504来重构经编码的音频对象。更具体地说,上混组件508可以执行如下矩阵操作:在该矩阵操作中,经解码的上混矩阵504被乘以包含经解码的下混信号516的向量。下面描述上混矩阵的解码过程。音频解码系统500还包括渲染组件514,根据连接到音频解码系统500的回放单元的类型,基于所重构的音频对象518,该渲染组件514输出音频信号。

经编码的上混矩阵512由上混矩阵解码器502接收,现在将结合图6来详细说明上混矩阵解码器502。上混矩阵解码器502被配置为在音频解码系统中将经熵编码的符号的向量解码成与非周期量有关的参数向量。经熵编码的符号的向量包含第一经熵编码的符号和至少一个第二经熵编码的符号,并且参数向量包含第一元素和至少一个第二元素。经编码的上混矩阵512因此以向量格式被接收组件602接收。解码器502还包括索引组件604,索引组件604被配置为通过使用概率表用可取n个值的符号来表示向量中的每个经熵编码的符号。n例如可以是96。关联组件606被配置为根据用于对参数向量中的第一元素进行编码的编码方法,通过任何适当的手段使第一经熵编码的符号与索引值相关联。每个第二代码的符号和第一代码的索引值然后由关联组件606使用,其中关联组件606使所述至少一个第二经熵编码的符号中的每一个与索引值相关联。通过首先计算在经熵编码的符号的向量中与第二经熵编码的符号前面的经熵编码的符号相关联的索引值和表示第二经熵编码的符号的符号的和,来计算所述至少一个第二经熵编码的符号的索引值。随后,对该和应用模n运算。在不失一般性的情况下,假设最小索引值为0而最大索引值为n-1,例如95。关联算法因此可表示为:

idx(b)=(idx(b-1)+δidx(b))modnq(公式12)

其中b是正被解码的向量中的元素,而nq是可能的索引值的数量。

上混矩阵解码器502还包括解码组件608,解码组件608被配置为用对应于与所述至少一个第二经熵编码的符号关联的索引值的参数值来表示参数向量的所述至少一个第二元素。这种表示因此是由例如图1中所示的音频编码系统100编码的参数的解码版本。换言之,这种表示等于由图1中所示的音频编码系统100编码的经量化的参数。

根据本发明的一个实施例,对于经熵编码的符号的向量中的所有经熵编码的符号,使用相同的概率表来以符号表示经熵编码的符号的向量中的每个经熵编码的符号。其优点在于只需要在解码器的存储器中存储一个概率表。由于在音频解码系统中对经熵编码的符号进行解码时查找速度可能很重要,存储概率表的存储器有利地是快速存储器,因此很昂贵。通过只使用一个概率表,解码器因此可以比使用两个概率表的情况更便宜。根据该实施例,关联组件606可以被配置为通过首先按偏移值对表示经熵编码的符号的向量中的第一经熵编码的符号进行移位,来使第一经熵编码的符号与索引值相关联。然后对移位后的符号应用模n运算。关联算法因此可以表示为:

idx(1)=(idxshifted(1)+abs_offset)modnq(公式13)

解码组件608被配置为用对应于与第一经熵编码的符号相关联的索引值的参数值来表示参数向量的第一元素。这种表示因此是由例如图1中所示的音频编码系统100编码的参数的解码版本。

现在将结合图7-10来进一步说明对非周期量进行差分编码的方法。

图7和9描述了用于参数向量中的四(4)个第二元素的编码方法。输入向量902因此包含五个参数。参数可以取最小值与最大值之间的任意值。在该示例中,最小值是-9.6,最大值是9.4。编码方法中的第一个步骤s702是用可取n个值的索引值来表示向量902中的每个参数。在这种情况下,n被选为96,这意味着量化步长大小为0.2。这给出了向量904。下一个步骤s704是计算每个第二元素(即向量904中的四个上部参数)与它前面的元素之间的差。所得到的向量906因此包含四个差分值——向量906中的四个上部值。如图9中可见,差分值可以是负数、零和正数。如上所述,具有只可取n个值(在本情况中是96个值)的差分值是有利的。为了实现这一点,在本方法的下一个步骤s706中,模96运算被应用于向量906中的第二元素。所得到的向量908不包含任何负值。向量908中所示的这样获得的符号随后被用于图7中所示的方法的最后步骤s708中,以通过基于包含向量908中所示的符号的概率的概率表对与所述至少一个第二元素相关联的符号进行熵编码来对向量的第二元素进行编码。

如图9中所见,在索引步骤s702之后第一元素未被处理。在图8和10中,描述了用于对输入向量中的第一元素进行编码的方法。在描述图8和10时,在上面对图7和9的描述中所作出的关于参数的最小和最大值以及可能的索引值的数量的相同假设有效的。第一元素1002由编码器接收。在编码方法的第一个步骤s802中,第一元素的参数由索引值1004表示。在下一个步骤s804中,按偏移值对被索引的值1004进行移位。在该示例中,偏移值是49。如上所述计算该值。在下一个步骤s806中,对移位后的索引值1006应用模96运算。所得到的值1008然后可以在编码步骤s802中使用,以通过使用与用来对图7中的至少一个第二元素进行编码的概率表相同的概率表对符号1008进行熵编码来对第一元素进行编码。

图11示出了图1中的上混矩阵编码器102的实施例。上混矩阵编码器102’可以用于在音频编码系统(例如图1中所示的音频编码系统100)中对上混矩阵进行编码。如上所述,上混矩阵的每行包含m个元素,该m个元素允许从包含m个声道的下混信号中重构音频对象。

以低的总体目标比特率,每个对象和t/f段地编码和发送所有m个上混矩阵元素,每个下混声道一个,可能需要不期望的高比特率。这可以通过上混矩阵的“稀疏化”来降低,即尝试减少非零元素的数量。在某些情况下,五个元素中的四个为零,并且只有单个下混声道被用作重构音频对象的基础。稀疏矩阵相比于非稀疏矩阵具有经编码的索引(绝对或差分)的其它概率分布。在上混矩阵包含大部分零的情况下,使得值为零的概率大于0.5,并且使用哈夫曼编码,编码效率会降低,这是因为当特定值(例如,零)具有大于0.5的概率时,哈夫曼编码算法是低效的。而且,由于上混矩阵中很多元素具有零值,它们不包含任何信息。因此策略可以是选择上混矩阵元素的子集并且只对其进行编码并传输给解码器。由于传输更少的数据,这可以降低音频编码/解码系统所需的比特率。

为了提高上混矩阵的编码效率,可以对稀疏矩阵使用专用编码模式,这将在下面详细说明。

上混矩阵编码器102,包括接收组件1102,接收组件1102适于接收上混矩阵中的每行。上混矩阵编码器102,还包括选择组件1104,选择组件1104适于从上混矩阵中的行的m个元素中选择元素子集。在大多数情况下,该子集包含所有非零值的元素。但是根据某个实施例,选择组件可以选择不去选择具有非零值的元素,例如具有接近于零的值的元素。根据实施例,对于上混矩阵的每行,所选择的元素子集可以包含相同数量的元素。为了进一步降低所需的比特率,所选元素的数量可以是一个(1)。

上混矩阵编码器102’还包括编码组件1106,编码组件1106适于用上混矩阵中的位置和值来表示所选择的元素子集中的每个元素。编码组件1106还适于对所选择的元素子集中的每个元素的值和在上混矩阵中的位置进行编码。它例如可以适于使用如上所述的取模差分编码对值进行编码。在这种情况下,对于上混矩阵中的每行以及对于多个频带或多个时间帧,所选择的元素子集中的元素的值形成一个或多个参数向量。参数向量中的每个参数对应于所述多个频带或多个时间帧的一个。因此,可以使用如上所述的取模差分编码来对参数向量进行编码。在其它实施例中,可以使用常规的差分编码来对参数向量进行编码。在另一个实施例中,编码组件1106适于使用每个值的真正量化值(即,未经差分编码)的固定速率编码来对每个值分别进行编码。

典型地对于内容已观察平均比特率的到以下示例。比特率是在m=5的情况下测量的,要在解码器侧重构的音频对象的数量是11,频带的数量是12,并且参数量化器的步长大小是0.1并具有192级。对于已经对上混矩阵中的每行的所有五个元素都进行编码的情况,观察到下面的平均比特率:

固定速率编码:165kb/sec,

差分编码:51kb/sec,

取模差分编码:51kb/sec,但是如上所述只有一半大小的概率表或码书。

对于由选择组件1104针对上混矩阵中的每行只选择一个元素,即稀疏编码的情况,观察到下面的平均比特率:

固定速率编码(对于值使用8比特,对于位置使用3比特):45kb/sec,

对于元素的值和元素的位置都进行取模差分编码:20kb/sec。

编码组件1106可以适于以与值相同的方式对元素子集中的每个元素在上混矩阵中的位置进行编码。编码组件1106还可以适于与对值的编码相比以不同的方式对元素子集中的每个元素在上混矩阵中的位置进行编码。在使用差分编码或取模差分编码来对位置进行编码的情况下,对于上混矩阵中的每行以及对于多个频带或多个时间帧,所选择的元素子集的元素的位置形成一个或多个参数向量。参数向量中的每个参数对应于所述多个频带或多个时间帧的一个。因此使用如上所述的差分编码或取模差分编码来对参数向量进行编码。

可以注意到,上混矩阵编码器102’可以与图2中的上混矩阵编码器102组合,以根据上面所述来实现对稀疏上混矩阵的取模差分编码。

还可以注意到,上面将对稀疏矩阵中的行进行编码的方法例示为对稀疏上混矩阵中的行进行编码,但是该方法可用于对本领域熟练技术人员所熟知的其它类型的稀疏矩阵进行编码。

现在将结合图13-15来进一步说明对稀疏上混矩阵进行编码的方法。

上混矩阵例如由图11中的接收组件1102接收。对于上混矩阵中的每行1402,1502,该方法包括从上混矩阵中的行的m个(例如,5个)元素中选择子集s1302。所选择的元素子集中的每个元素随后由上混矩阵中的位置和值来表示s1304。在图14中,一个元素被选择s1302作为子集,例如,值为2.34的3号元素。该表示因此可以是具有两个字段的向量1404。向量1404中的第一字段表示值,例如2.34,并且向量1404中的第二字段表示位置,例如3。在图15中,两个元素被选择s1302作为子集,例如值为2.34的3号元素和值为-1.81的5号元素。该表示因此可以是具有四个字段的向量1504。向量1504中的第一字段表示第一元素的值,例如2.34,并且向量1504中的第二字段表示第一元素的位置,例如3。向量1504中的第三字段表示第二元素的值,例如-1.81,并且向量1504中的第四字段表示第二元素的位置,例如5。然后,根据上面所述对表示1404、1504进行编码s1306。

图12是根据示例性实施例的音频解码系统1200的概括框图。解码器1200包括接收组件1206,接收组件1206被配置为接收包含m个声道的下混信号1210以及表示上混矩阵中的行的m个元素的子集的至少一个经编码的元素1204。每个经编码的元素包含值和在上混矩阵的行中的位置,位置指示下混信号1210的m个声道中与该经编码的元素对应的一个声道。所述至少一个经编码的元素1204由上混矩阵元素解码组件1202进行解码。上混矩阵元素解码组件1202被配置为根据用于对该至少一个经编码的元素1204进行编码的编码策略来对该至少一个经编码的元素1204进行解码。上面公开了关于这种编码策略的示例。该至少一个经解码的元素1214然后被发送给重构组件1208,重构组件1208被配置为通过形成与该至少一个经编码的元素1204对应的下混声道的线性组合,来从下混信号1210中重构音频对象的时间/频率块。当形成线性组合时,每个下混声道被乘以它对应的经编码的元素1204的值。

例如,如果经解码的元素1214包含值1.1和位置2,则第二下混声道的时间/频率块被乘以1.1,然后将其用于重构音频对象。

音频解码系统500还包括渲染组件1216,渲染组件1216基于所重构的音频对象1218来输出音频信号。音频信号的类型取决于连接到音频解码系统1200的回放单元的类型。例如,如果一对耳机连接到音频解码系统1200,则渲染组件1216可以输出立体声信号。

等同、延伸、替代和其它

在研究了上面的描述之后,对于本领域的技术人员来说,本公开的其它实施例将变得显然。虽然本说明书和附图公开了实施例和示例,但是本公开不限于这些具体的示例。不脱离由所附权利要求书限定的本公开的范围的情况下,可以做出许多修改和变型。在权利要求书中出现的任何附图标记不应被理解为限制它们的范围。

另外,通过研究附图、公开内容和所附权利要求书,技术人员在实践本公开时可以理解并实现所公开的实施例的变型。在权利要求中,词语“包括”不排除其它元素或步骤,并且不定冠词“一”不排除多个。某些措施被记载在相互不同的从属权利要求中这一事实,并非指示这些措施的组合不能被使用以获益。

上文所公开的系统和方法可以被实现为软件、固件、硬件或它们的组合。在硬件实现方式中,以上描述中所提到的功能单元之间的任务划分不一定对应于物理单元的划分;相反,一个物理部件可以具有多个功能,并且一个任务可以由合作的几个物理部件来执行。某些部件或者所有部件可以被实现为由数字信号处理器或微处理器执行的软件,或者被实现为硬件或专用集成电路。这种软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非临时性介质)和通信介质(或临时性介质)。如本领域技术人员所熟知的,术语“计算机存储介质”包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性、可移除和不可移除的介质。计算机存储介质包括但不局限于ram、rom、eeppom、闪存或其它存储器技术、cd-rom、数字通用盘(dvd)或其它光学盘存储器、磁盒、磁带、磁盘存储器或其它磁性存储设备、或者可以用来存储期望的信息并且可以由计算机访问的任何其它介质。另外,技术人员熟知的是,通信介质典型地以诸如载波之类的调制数据信号或者其它传送机制来包含计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1