多声道音频扩展支持的制作方法

文档序号:2821130阅读:429来源:国知局
专利名称:多声道音频扩展支持的制作方法
技术领域
本发明涉及多声道音频编码以及多声道音频编码中的多声道音频扩展。更具体地,本发明涉及一种用于支持多声道音频编码系统编码端的多声道音频扩展的方法,一种用于支持多声道音频编码系统解码端的多声道音频扩展的方法,一种多声道音频编码器和一种用于多声道音频编码器地多声道扩展编码器,一种多声道音频解码器和一种用于多声道音频解码器的多声道扩展解码器,以及最后地,一种多声道音频编码系统。
背景技术
从现有技术可了解到音频编码系统。它们尤其用于传送或存储音频信号。
图1表示用于音频信号传输的音频编码系统的基本结构。音频编码系统包括发送端的编码器10和接收端的解码器11。将要传送的音频信号提供给编码器10。编码器负责将输入的音频数据速率调整到一个不会违反传输信道带宽条件的比特率等级。理想地,在这个编码过程中,编码器10只丢弃音频信号中不相关的信息。然后由音频编码系统的发送端传送已编码的音频信号,并在音频编码系统的接收端进行接收。接收端的解码器11执行与编码相反的过程,以获得解码的音频信号,其具有很小或没有人耳能察觉的退化。
可选地,图1的音频编码系统可用于存档音频数据。在这种情况下,编码器10提供的已编码音频数据存储在某个存储单元中,并且解码器11对从这个存储单元取回的音频数据进行解码。在这个可供选择的方式中,目标在于编码器获得尽可能低的比特率,以节省存储空间。
要处理的原始音频信号可以是单音频信号,或者是至少包含第一声道信号和第二声道信号的多声道音频信号。多声道音频信号的一个实例是由左声道信号和右声道信号组成的立体声音频信号。
根据所允许的比特率,可以将不同的编码方案应用于立体声音频信号。例如,左、右声道信号可以相互独立地编码。但是通常地,左、右声道信号之间存在相关性,而且最高级编码方案利用这种相关性,以获得比特率的进一步降低。
低比特率立体声扩展方法尤其适用于降低比特率。在立体声扩展方法中,将立体声音频信号编码为高比特率单声道信号,其与为立体声扩展保留的某种边信息一起由编码器提供。在解码器中,则在利用边信息的立体声扩展中,从高比特率单声道信号重建立体声音频信号。典型地,边信息仅占总比特率的几千比特每秒。
如果立体声扩展方案的目标在于运行于低比特率,则在解码过程中就不能获得原始立体声音频信号的确切复制。为了由此所需的原始立体声音频信号的近似值,有效的编码模型是必要的。
最常用的立体声音频编码方案是中侧(MS)立体声和强度立体声(IS)。
在MS立体声中,将左、右声道信号变换为和、差信号,例如J.D.Johnston和A.J.Ferreira在ICASSP-92 Conference Record,1992,pp.569-572发表的名为“Sum-difference stereo transform coding”的文章所述。为了获得最大的编码效率,以频率和时间相关两种方式进行这种变换。MS立体声对高质量、高比特率立体声编码尤其有用。
为了尝试获得较低的比特率,已经将IS与这种MS编码结合使用,其中IS构成一种立体声扩展方案。在IS编码中,部分频谱仅以单声道模式编码,并通过另外提供用于左、右声道的不同比例因子,重建立体声音频信号,例如,在文件US 5,539,829和US 5,606,618中所述的。
已经提出另外两种具有非常低比特率的立体声扩展方案,心理声学编码(BCC)和带宽扩展(BWE)。在BCC中,用IS对整个频谱进行编码,参见F.Baumgarte和C.Faller在AES 112th Convention,May 10-13,2002,Preprint 5575发表的名为“Why Binaural Cue Codingis Better than Intensity Stereo Coding”的文章。在BWE编码中,带宽扩展用于将单声道信号扩展为立体声信号,参见2002年10月ISO/IECJTC1/SC29/WG11(MPEG-4)N5203(MPEG第62次会议文献),名为“Text of ISO/IEC 14496-32001/FPDAM 1,Bandwidth Extension”的文章。
而且,文献US 6,016,473提出一种低比特率空间编码系统,用于对代表声场的多个音频流进行编码。在编码器端,将音频流分为多个子带信号,代表各自的频率子带。然后,生成一个代表这些子带信号组合的合成信号。另外,生成操纵控制信号,其指示在各子带中声场的主方向,例如,以加权矢量的形式。在解码端,基于合成信号和相关联的操纵控制信号,生成两个声道中的音频流。

发明内容
本发明的目的在于支持基于边信息以有效的方式将单音频信号扩展为多声道音频信号。
对于多声道音频编码系统的编码端,提出用于支持多声道音频扩展的第一方法。所提出的第一方法一方面包括,至少对多声道音频信号的较高频率,生成并提供第一多声道扩展信息,这个第一多声道扩展信息允许基于可用于多声道音频信号的单音频信号,至少重建多声道音频信号的较高频率。所提出的第二方法另一方面包括,对多声道音频信号的较低频率生成并提供第二多声道扩展信息,这个第二多声道扩展信息允许基于单音频信号重建多声道音频信号的较低频率,而且精确性高于第一多声道扩展信息允许至少重建多声道音频信号的较高频率。
另外,提出一种多声道音频编码器以及一种用于多声道音频编码器的扩展编码器,其包括一种装置,用于实现所提出的第一方法。
对于多声道音频编码系统的解码端,提出补充的第二方法,用于支持多声道音频扩展。所提出的第二方法一方面包括,基于所接收的用于多声道音频信号的单音频信号和所接收的用于多声道音频信号的第一多声道扩展信息,至少重建多声道音频信号的较高频率。所提出的第二方法另一方面包括,基于所接收的单音频信号和所接收的第二多声道扩展信息,以高于较高频率的精确性重建多声道音频信号的较低频率。所提出的第二方法进一步包括将重建的较高频率和重建的较低频率合并为重建的多声道音频信号的步骤。
另外,提出一种多声道音频解码器和一种用于多声道音频解码器的扩展解码器,其包括一种装置,用于实现所提出的第二方法。
最后,提出一种多声道音频编码系统,其包括所提出的多声道音频编码器以及所提出的多声道音频解码器。
本发明首先考虑到,人类听觉系统在低频对立体声感觉非常挑剔且灵敏。在中、高频率,空间听觉主要依赖于幅度等级差,所以,获得相对低的比特率的立体声扩展方法在中、高频率运行最佳。这些方法不能以获得优良立体声感觉所需要的精确性等级重建低频。因此,提议以高于多声道音频信号较高频率的效率对多声道音频信号的较低频率进行编码。通过提供用于整个多声道音频信号或用于多声道音频信号较高频率的通用多声道扩展信息,以及通过另外提供用于较低频率的专用多声道扩展信息实现这一目的,其中专用多声道扩展信息比通用多声道扩展信息产生更精确的重建。
本发明的优点在于,其允许获得优良立体声输出所需要的很重要的低频进行有效的编码,同时避免整个频谱所需比特的普遍增加。
本发明提供具有中等附加复杂性的已知解决方法的扩展。
依照所附权利要求书,可使本发明的优选实施方式变得明显。
多声道音频信号尤其可以是具有左声道信号和右声道信号的立体声音频信号。如果多声道音频信号包括多于两个声道,可将第一和第二多声道扩展信息提供给各自的声道对。
在优选的实施方式中,第一和第二多声道扩展信息都生成于频域内,并在频域内执行较高和较低频率的重建以及重建的较高和较低频率的合并。
可以用不同类型的变换获得时域到频域以及频域到时域的所需变换,例如,使用变址离散余弦变换(MDCT)和逆MDCT(IMDCT),快速傅立叶变换(FFT)和快速傅立叶逆变换(IFFT)或者离散余弦变换(DCT)和离散余弦逆变换(IDCT)。例如,J.P.Princen和A.B.Bradley在IEEE Trans.Acoustics,Speech,and Signal Processing,1986,Vol.ASSP-34,No.5,Oct.1986,pp.1153-1161发表的名为“Analysis/synthesis filter bank design based on time domain aliasingcancellation”的文章中,以及S.Shlien在IEEE Trans.Speech,andAudio Processing,Vol.5,No.4,Jul.1997,pp.359-366发表的名为“Themodulated lapped transform,its time-varying forms,and its applicationsto audio coding standards”的文章中详细描述了MDCT。
本发明可以使用多种编解码,尤其是适用于高音频质量的自适应多速率宽带扩展(AMR-WB+)。
本发明可以进一步实现于软件中或使用专用硬件方法实现。由于所用的多声道音频扩展是编码系统的一部分,最好以与整个编码系统相同的方式实现。
本发明尤其可以用于存储目的以及用于例如,去往和来自移动终端的传输。


通过结合附图考虑的本发明的示例性实施方式的详细描述,本发明的其它目的和特性将变得更加明显。
图1是表示音频编码系统通用结构的框图2是依照本发明的立体声音频编码系统一个实施方式的高级框图3是说明图2立体声音频编码系统的低频效应立体声编码器的框图;以及
图4是说明图2立体声音频编码系统的低频效应立体声解码器的框图。
具体实施例方式
图1已经在上面进行了描述。
将参照图2至4描述本发明的一个实施方式。
图2表示依照本发明的立体声音频编码系统一个实施方式的通用结构。立体声音频编码系统可以用于传送由左声道信号和右声道信号组成的立体声音频信号。
图2的立体声音频编码系统包括立体声编码器20和立体声解码器21。立体声编码器20对立体声音频信号进行编码,并将其传送至立体声解码器21,而立体声解码器21接收已编码的信号,对其进行解码,并使其再次成为可用的立体声音频信号。可选地,还可由立体声编码器20提供已编码的立体声音频信号,以存储在存储单元中,从其中可以由立体声解码器21再提取出已编码的立体声音频信号。
立体声编码器20包括相加点202,其经由缩放比例单元203与AMR-WB+单声道编码器组件204相连。AMR-WB+单声道编码器组件204进一步与AMR-WB+比特流复用器(MUX)205相连。另外,立体声编码器20包括立体声扩展编码器206和低频效应立体声编码器207,它们同样都与AMR-WB+比特流复用器205相连。而且,AMR-WB+单声道编码器组件204可与立体声扩展编码器206相连。立体声编码器20构成依照本发明的多声道音频编码器的一个实施方式,而立体声扩展编码器206和低频效应立体声编码器207共同组成依照本发明的扩展编码器的一个实施方式。
立体声解码器21包括AMR-WB+比特流解复用器(DEMUX)215,其与AMR-WB+单声道解码器组件214相连、与立体声扩展解码器216相连以及与低频效应立体声解码器217相连。AMR-WB+单声道解码器组件214进一步与立体声扩展解码器216以及与低频效应立体声解码器217相连。立体声扩展解码器216同样与低频效应立体声解码器217相连。立体声解码器21构成依照本发明的多声道音频解码器的一个实施方式,而立体声扩展解码器216和低频效应立体声解码器217共同组成依照本发明的扩展解码器的一个实施方式。
当要传送立体声音频信号时,将立体声音频信号的左声道信号L和右声道信号R提供给立体声编码器20。假设左声道信号L和右声道信号R设置在帧中。
相加点202将左、右声道信号L、R相加,并在缩放比例单元203中用0.5的因子进行缩放,以形成单音频信号M。AMR-WB+单声道编码器组件204则负责以已知的方式对单音频信号进行编码,以获得单声道信号比特流。
提供给立体声编码器20的左、右声道信号L、R进一步在立体声扩展编码器206中进行处理,以获得包含用于立体声扩展的边信息的比特流。在所示的实施方式中,立体声扩展编码器206在频域生成这种边信息,其对于中、高频率很有效,并且同时需要低的计算负荷,并产生低比特率。该边信息构成第一多声道扩展信息。
立体声扩展编码器206首先通过MDCT方式将所接收的左、右声道信号L、R变换到频域,以获得频谱左、右声道信号。然后,立体声扩展编码器206针对于多个相邻频带中的每个确定在各个频带中是左声道谱信号占优、右声道谱信号占优,还是这些信号都不占优。最后,立体声扩展编码器206在边信息比特流中,为每个频带提供相应的状态信息。
另外,立体声扩展编码器206可在所提供的边信息比特流中包括各种补充信息。例如,边信息比特流可包括等级修正增益,其指示左或右声道信号在每帧中或者甚至在每帧的每个频带中主导地位的扩展。可调节的等级修正增益允许从单音频信号M在频带内很好地重建立体声音频信号。同样,可包括用于量化这种等级修正增益的量化增益。此外,边信息比特流可包括增强信息,其一方面在取样的基础上反映原始左、右声道信号之间的差值,另一方面反映基于提供的边信息重建的左、右声道信号。为了可以在编码器侧进行这种重建,AMR-WB+单声道编码器组件204最好向立体声扩展编码器206提供单音频信号
可以将用于增强信息以及增强信息质量的比特率调整为分别可用的比特率。可提供用于对包括在边信息比特流中的任何信息进行编码的编码方案的指示。
提供给立体声编码器20的左、右声道信号L、R进一步在低频效应立体声编码器207中进行处理,以另外获得包含低频数据的比特流,其中低频数据可进行专用于立体声音频信号较低频率的立体声扩展,如在下面进一步详细说明的。这个低频数据构成第二多声道扩展信息。
由AMR-WB+单声道编码器组件204、立体声扩展编码器206和低频效应立体声编码器207提供的比特流则由AMR-WB+比特流复用器205进行复用,以进行传输。
所传送的复用比特流由立体声解码器21接收,再由AMR-WB+比特流解复用器215将其解复用为单声道信号比特流、边信息比特流和低频数据比特流。将单声道信号比特流转发至AMR-WB+单声道解码器组件214,将边信息比特流转发至立体声扩展解码器216,并将低频数据比特流转发至低频效应立体声解码器217。
由ARM-WB+单声道解码器组件214以已知的方式对单声道信号比特流进行解码。将所得的单音频信号
提供给立体声扩展解码器216和低频效应立体声解码器217。
立体声扩展解码器216对边信息比特流进行解码,并通过基于所得边信息和包括在所接收边信息比特流中的任何补充信息扩展所接收的单音频信号
在频域重建原始的左声道信号和原始的右声道信号。例如,在所示的实施方式中,如果状态标志指示对于这个频带没有主导信号,则通过在这个频带中使用单音频信号
获得特定频带中的频谱左声道信号
如果状态标志指示对于这个频带主导信号是左声道信号,则通过在这个频带中利用所接收的增益值乘以单音频信号
获得特定频带中的频谱左声道信号
以及,如果状态标志指示对于这个频带主导信号是右声道信号,则通过在这个频带中用所接收的增益值去除单音频信号
获得特定频带中的频谱左声道信号
以相应的方式获得特定频带中的频谱右声道信号
如果边信息比特流包括增强信息,则这个增强信息可以用于在取样基础上改善重建的频谱声道信号。
然后将重建的频谱左、右声道信号
提供给低频效应立体声解码器217。
低频效应立体声解码器217对包含用于低频立体声扩展的边信息的低频数据比特流进行解码,并通过基于所得的边信息扩展所接收的单音频信号
重建原始低频声道信号。然后,低频效应立体声解码器217将重建的低频带和立体声扩展解码器216提供的左声道信号
和右声道信号
的较高频带合并。
最后,低频效应立体声解码器217将所得的频谱左、右声道信号转换到时域,并作为立体声音频信号的重建的左、右声道信号
由立体声解码器21输出。
低频效应立体声编码器207和低频效应立体声解码器217的结构和操作将在下面参照图3和图4进行描述。
图3是低频立体声编码器207的示意框图。
低频立体声编码器207包括第一MDCT部分30、第二MDCT部分31和核心低频效应编码器32。核心低频效应编码器32包括边信号生成部分321,并且第一MDCT部分30和第二MDCT部分31的输出与这个边信号生成部分321相连。在核心低频效应编码器32中,边信号生成部分321经由量化循环部分322、选择部分323和哈夫曼循环部分324与复用器MUX 325相连。边信号生成部分321还经由排序部分326与哈夫曼循环部分324相连。而且,量化循环部分322同样直接与复用器325相连。低频立体声编码器207进一步包括标志生成部分327,并且第一MDCT部分30和第二MDCT部分31的输出同样与这个标志生成部分327相连。在核心低频效应编码器32中,标志生成部分327与选择部分323和哈夫曼循环部分324相连。复用器325的输出经由核心低频效应编码器32的输出和低频效应立体声编码器207的输出与AMR-WB+比特流复用器205相连。
首先由第一MDCT部分30通过基于帧的MDCT方式,将低频效应立体声编码器207接收的左声道信号L变换到频域,得到频谱左声道信号Lf。同时,第二MDCT部分31通过基于帧的MDCT方式,将所接收的右声道信号R变换到频域,得到频谱右声道信号Rf。然后,将所得的频谱声道信号提供给边信号生成部分321。
基于所接收的频谱左、右声道信号Lf和Rf,边信号生成部分321依照下列等式生成频谱边信号S
其中,i是识别各个频谱取样的索引,M和N是描述要量化的频谱取样的开始和结束索引的参数。在当前的实现方式中,分别将M和N设定为4和30。从而,边信号S仅包括较低频带的N-M个取样值。如果频带总数示例性地为27,频带中的取样分布为{3,3,3,3,3,3,3,4,4,5,5,5,6,6,7,7,8,9,9,10,11,14,14,15,15,17,18},从而,将对第二至第十个频带中的取样生成边信号S。
一方面将生成的频谱边信号S馈入到排序部分326。
排序部分326依照下列等式计算边信号S频谱取样的能量
ES(i)=S(i)·S(i),0≤i<N-M (2)
然后,排序部分326用函数SORT(ES)对所得到的能量数组按照计算的能量ES(i)降序排序。还将辅助变量用于排序操作,以确保核心低频效应编码器32知道所排列数组中的第一能量对应于哪个频谱位置,所排列数组中的第二能量对应于哪个频谱位置,等等。这个辅助变量并未被明确指示。
排序部分326将所排序的能量数组ES提供给哈夫曼循环部分324。
将边信号生成部分321生成的频谱边信号S一方面馈入量化循环部分322。
量化循环部分322量化边信号S,使得,量化取样的最大绝对值位于某个阈值T以下。在所示的实施方式中,将阈值T设定为3。这个量化所需的量化器增益与用于在解码器重建频谱边信号S的量化频谱相关联。
为了加速量化,初始量化器值gstart计算如下
在这个等式中,max是一个函数,其返回所输入数组中的最大值,也就是,这种情况下的频谱边信号S所有取样中的最大值。
接下来,在循环中增加量化器值gstart,直至量化频谱中所有值都位于阈值T以下。
在极其简单的量化循环中,首先,依照下列等式量化频谱边信号S,以获得量化的频谱边信号
现在,确定所得量化频谱边信号
的最大绝对值。如果这个最大绝对值小于阈值T,则当前量化器值gstart构成最终的量化器增益qGain。否则,当前量化器值gstart增加1,并用新量化器值gstart重复依照等式(4)的量化,直至所得量化频谱边信号
的最大绝对值小于阈值T。
在所示实施方式使用的更加有效的量化循环中,首先以较大的步长改变量化器值gstart,以加速过程,如下列伪C代码所示
Quantization Loop 2:
stepSize=A;
bigSteps=TRUE;
fineSteps=FALSE;
start:
Quantize S using Equation(4);
Find maximum absotute value of the
quantized specta
If(max absolute value of){
bigSteps=FALSE;
If(fineSteps==TRUE)
goto exit;
else
{
fineSteps=TRUE;
gstart=gstart-stepSize
}
} else{
If(bigSteps==TRUE)
gstart=gstart+stepSize
else
gstart=gstar+1
}
goto start:
exit;
从而,只要所得量化频谱边信号
的最大绝对值不小于阈值T,就将量化器值gstart增加步长量A。一旦所得量化频谱边信号
的最大绝对值小于阈值T,则将量化器值gstart再减少一个步长量A,然后将量化器值gstart增加1,直至所得量化频谱边信号
的最大绝对值再次小于阈值T。这个循环中最后的量化器值gstart则构成最终量化器值gGain。在所示的实施方式中,将步长量A设定为8。此外,用6比特对最终的量化器增益qGain进行编码,增益的范围为22至85之间。如果量化器增益qGain小于允许的最小增益值,则将量化频谱边信号
的取样设定为零。
在已经将频谱量化为阈值T以下之后,将量化频谱边信号
和所用的量化器增益qGain提供给选择部分323。在选择部分323中,修正量化的频谱边信号
使得,只考虑对立体声图像的生成具有重要贡献的频谱区域。将量化频谱边信号
中所有不在对立体声图像的生成具有重要贡献的频谱区域的取样设定为零。依照下列等式进行这种修正
其中,

分别是相对于当前帧的前一帧和下一帧的量化频谱取样。假设位于0≤i<N-M范围之外的频谱取样具有零值。经由前向编码获得下一帧的量化取样,其中下一帧的取样总是量化为阈值T以下,不过,将随后的哈夫曼编码循环应用于那一帧之前的量化取样。
如果频谱左、右声道信号的平均能量等级tLevel低于预先确定的阈值,则将量化的频谱边信号
的所有取样设定为零
在标志生成部分327中生成tLevel值,并将其提供给选择部分323。如下面将详细描述的。
选择部分323将修正的量化频谱边信号
和接收自量化循环部分322的量化器增益qGain一起提供给哈夫曼循环部分324。
同时,标志生成部分327为每帧生成空间强度标志,指示对于较低频率,反量化的频谱边信号应该完全属于左声道还是属于右声道,或者是否平均地分布在左、右声道上。
空间强度标志hPanning计算如下
其中,
还分别对当前帧的前一帧和后一帧的取样计算空间强度。将这些空间强度考虑在内,用于计算当前帧的最终空间强度标志,如下
其中,hPanningn-1和hPanningn+1分别是前一帧和下一帧的空间强度标志。因此,保证了在各帧之间进行一致的判决。
所得空间强度标志hPanning为‘0’,则对于特定帧指示,立体声信息平均分布在左、右声道,所得空间强度标志为‘1’,则对于特定帧指示,左声道信号明显强于右声道信号,并且空间强度标志为‘2’,则对于特定帧指示,右声道信号明显强于左声道信号。
对所得空间强度标志hPanning编码,使得,‘0’比特代表空间强度标志hPanning为‘0’,‘1’比特指示左声道或者右声道信号应该使用反量化的频谱边信号重建。在后一种情况下,后面会跟一个附加比特,其中‘0’比特代表空间强度标志hPanning为‘2’,而‘1’比特代表空间强度标志hPanning为‘1’。
标志生成部分327向哈夫曼循环部分324提供已编码的空间强度标志。而且,标志生成部分327向选择部分323提供来自等式(7)的中间值tLevel,其如上所述用于等式(6)中。
哈夫曼循环部分324负责对接收自选择部分323的修正的量化频谱边信号
的取样进行调整,使得用于低频数据比特流的比特数低于允许用于相应帧的比特数。
在所示的实施方式中,使用三种不同的哈夫曼编码方案,用于对量化的频谱取样进行有效的编码。对于每一帧,利用每种编码方案对量化的频谱边信号
进行编码,然后,选择获得最低所需比特数的编码方案。固定比特分配将只得到仅仅具有几个非零频谱取样的非常稀疏频谱。
第一哈夫曼编码方案(HUF1)通过从哈夫曼表中取回与各个值相关联的码,对那些除具有零值的取样之外的所有可用量化频谱取样进行编码。取样是否具有零值是由单个比特指示的。这个第一哈夫曼编码方案所需的比特数out_bits用下列等式进行计算
在这些等式中,a是0和5之间的幅度值,位于-3和+3之间的各个量化频谱取样值
映射为这些幅度值,零值除外。hufLowCoefTabe为六种可能的幅度值a中的每个定义了分别作为第一值的哈夫曼编码字长度和作为第二值的相关联的哈夫曼码字,如下表所示
hufLowCoefTable[6][2]=({3,0},(3,3),{2,3),(2,2),{3,2),{3,1}}.
在等式(9)中,hufLowCoefTable[a]
的值由为各个幅度值a定义的哈夫曼码字长度所给出,也就是既是可以是2,也可以是3。
为了进行传输,对这个编码方案得到的比特流进行组织,使得,可以基于下列语法进行解码
  HUF1_Decode(int16 *S_dec)  {  for(i=M;i<N;i++)   {   int16 sBinPresent=BsGetBits(1);   if(sBinPresent==1)  S_dec[i]=0;   else   {   int16 q=  HufDecodeSymbol(hufLowCoefTable);   q=(q>2) q-2:q-3;   S_dec[i]=q;   }  }   }
在这个语法中,BsGetBits(n)从比特流缓冲器中读取n个比特。sBinPresent指示一个码是否是当前用于特定取样索引的,HufDecodeSymbol()对来自比特流的下一个哈夫曼码字进行解码,并返回对应于这个码字的符号,而S_dec[i]是各个解码的量化频谱取样值。
第二哈夫曼编码方案(HUF2)通过从哈夫曼表中取回与各个值相关联的码,对所有量化的频谱取样进行编码,包括那些具有零值的取样。但是,如果具有最高索引的取样具有零值,将这个取样和所有具有零值的连续相邻取样排除在编码之外。用5比特对未被排除的取样的最高索引进行编码。第二哈夫曼编码方案(HUF2)所需的比特数out_bits用下列等式计算
在这些等式中,last_bin定义所有已编码取样中的最高索引。HufLowCoefTable_12为通过将各个量化取样值
增加值3而获得的在0和6之间的每个幅度值定义了哈夫曼码字长度和相关联的哈夫曼码字,如下表所示
hufLowCoefTable[7][2]={{4,8},{4,10},{2,1),{2,3},{2,0),{4,11},{4,9}}。
为了传输,对这个编码方案得到的比特流进行组织,使得,可以基于下列语法进行解码
HUF2_Decode(int16 *S_dec)
{
int16 last_bin=BsGetBits(5);
for(i=M;i<last_bin;i++)
S_dec[i]=
HufDecodeSymbol(hufLowCoefTable_12)-3;
}
在这个语法中,BsGetBits(n)从比特流缓冲器中读取n个比特。HufDecodeSymbol()对来自比特流的下一个哈夫曼码字进行解码,并返回对应于这个码字的符号,S_dec[i]是各个解码的量化频谱取样值。
如果少于17个取样值是非零值,则第三哈夫曼编码方案(HUF3)对连续零值的量化频谱取样值和非零值量化频谱取样值分别进行编码。用4比特指示帧中非零值的数量。这个第三以及最后的哈夫曼编码方案所需的比特数out_bits用下列等式进行计算
其中
   out_bits0=0;out_bits1=0;   for(i=M;i<N;i++)   {   int16 zeroRun=0;   /*--计数零值长度。--*/   for(;i<N;i++)   {   if(S^[i]==0)  zeroRun++;   else  break;   }   if(!(i==N && S^[i-1]==0))   {   int16 qCoef;   /*--零值部分的哈夫曼码字。--*/   out_bits0+=hufLowTable2[zeroRun]
;   out_bits1+=hufLowTable3[zeroRun]
;   /*--非零幅度的哈夫曼码字。--*/   qCoef=(S^[i]<0) S^[i]+3:S^[i]+2;   out_bits0+=hufLowCoefTable[qCoef]
;   out_bits1+=hufLowCoefTable[qCoef]
;   }   }
HufLowTable2和HufLowTable3都为频谱内的零值部分定义了哈夫曼码字长度和相关联的哈夫曼码字。这就是说,对于当前频谱内的零值编码提供了具有不同统计分布的两个表。两个表表示如下
hufLowTable2[25][2]={{1,1},{2,0},{4,7},{4,4},
{5,11},{6,27},{6,21},{6,20},{7,48},{8,98},{9,
215},{9,213},{9,212},{9,205},{9,204},{9,207},
{9,206},{9,201},{9,200},{9,203},{9,202},{9,
209},{9,208},{9,211},{9,210}}.
hufLowTable3[25][2]={{1,0},{3,6},{4,15},{4,14},
{4,9},{5,23},{5,22},{5,20},{5,16},{6,42},
{6,34},{7,86},{7,70},{8,174},{8,142},{9,350},
{9,286},{10,702},{10,574},{11,1406},{11,1151},
{11,1150},{12,2814},{13,5631},{13,5630}}.
用这两个表对零值进行编码,然后选择那些可带来较低比特总数的码。一个帧最终使用哪个表由单个比特指示。这个HufLowCoefTable对应于上述用于第一哈夫曼编码方案HUF1的HufLowCoefTable,并对于每个非零幅度值定义哈夫曼码字长度以及相关联的哈夫曼码字。
为了进行传输,对这个编码方案所得的比特流进行组织,使得,可以基于下列语法进行解码
   HUF3_Decode(int16*S_dec)   {   int16 qOffset,nonZeroCount,hTbl;   nonZeroCount=BsGetBits(4);   hTbl=BsGetBits(1);   for(i=M,qOffset=-1;i<nonZeroCount;i++)   {   int16 qCoef;<!-- SIPO <DP n="19"> --><dp n="d19"/>  int16 run=HutDecodeSymbol((hTbl==1)    hufLowTable2:hufLowTable3);  qOffset+=run+1;  qCoef=HufDecodeSymbol(hufLowCoefTable);  qCoef=(qCoef>2) qCoef-2:qCoef-3;  S_dec[qOffset]=qCoef;  }  }
在这个语法中,BsGetBits(n)从比特流缓冲器中读取n个比特。nonZeroCount指示量化频谱边信号取样中非零值的个数,hTbl指示选择哪个哈夫曼表,用于对零值进行编码。考虑各自使用的哈夫曼表,HufDecodeSymbol()对来自比特流的下一个哈夫曼码字进行解码,并返回对应于这个码字的符号。S_dec[i]是各个解码的量化频谱取样值。
现在,可以进入实际的哈夫曼编码循环。
在第一步骤中,确定所有编码方案HUF1、HUF2、HUF3所需的比特数G_bits。这些比特包括用于量化器增益qGain的比特和其它边信息比特。其它边信息比特包括指示量化频谱边信号是否只包括零值的标志比特,以及由标志生成部分327提供的已编码空间强度标志。
在下一步骤中,确定三种哈夫曼编码方案HUF1、HUF2和HUF3中的每种所需的比特总数。这个比特总数包括确定的比特数G_bits,确定的各个哈夫曼编码自身所需的比特数out_bits,以及用于指示所用哈夫曼编码方案所需的附加信令比特数。比特形式‘1’用于HUF3方案,比特形式‘01’用于HUF2方案,而比特形式‘00’用于HUF1方案。
现在,确定对于当前帧需要比特总数最小的哈夫曼编码方案。如果比特总数未超过允许的比特数,则选用这个哈夫曼编码方案。否则,修正量化频谱。
更具体地,修正量化频谱,使得,将最不重要的量化频谱取样值设定为零,如下所示
其中,leastIdx是具有最小能量的频谱取样的索引。这个索引是从得自排序部分326的排序能量ES数组中取回的,如上文所述。一旦已经将取样设定为零,就从排序的能量数组ES中除去对这个索引的输入,使得,总是可以除去剩余频谱取样中最小的频谱取样。
然后,基于修正的频谱,重复哈夫曼循环所需的所有计算,包括根据等式(9)至(11)的计算,直至至少对于其中一种哈夫曼编码方案,比特总数不再超出允许的比特数。
在所示的实施方式中,对用于低频数据比特流的元件进行组织,以进行传输,使得,可以基于下列语法对其进行解码
   Low_StereoData(S_dec,M,N,hPanning,qGain)   {   samplesPresent=BsGetBits(1);  if(samplesPresent)    {  hPanning=BsGetBits(1);  if(hPanning==1)hPanning=(BsGetBits(1)   ==0) 2∶1;   qGain=BsGetBits(6)+22;   if(BsGetBits(1)   Huf3_Decode(S_dec);   else if(BsGetBits(1)  Huf2_Decode(S_dec);   else  Huf1_Decode(S_dec);   }   }   }
可以看出,比特流包括一个比特作为比特流中是否存在任何取样的samples Present指示,一个或两个用于空间强度标志hPanning的比特,六个用于所用量化增益qGain的比特,一个或两个用于指示使用哪种哈夫曼编码方案的比特,以及所用哈夫曼编码方案所需的比特。分别对HUF1、HUF2和HUF3编码方案定义了函数Huf1Decode()、Huf2Decode()和Huf3Decode()。
低频效应立体声编码器207向AMR-WB+比特流复用器205提供这个低频数据比特流。
AMR-WB+比特流复用器205将从立体声扩展编码器206接收的边信息比特流和从低频效应立体声编码器207接收的比特流和单声道信号比特流一起进行复用,以进行传输,如上参照图2所述。
传送的比特流由图2的立体声解码器21接收,并由AMR-WB+比特流解复用器215分配给AMR-WB+单声道解码器组件214、立体声扩展解码器216和低频效应立体声解码器217。AMR-WB+单声道解码器组件214和立体声扩展解码器216对接收到的部分比特流进行处理,如上述参照图2所述。
图4是低频效应立体声解码器217的示意框图。
低频效应立体声解码器217包括核心低频效应解码器40、MDCT部分41、MS逆矩阵42、第一IMDCT部分43和第二IMDCT部分44。核心低频效应解码器40包括解复用器DEMUX 401,并且立体声解码器21的AMR-WB+比特流解复用器215的输出与这个解复用器401相连。在核心低频效应解码器40内,解复用器401经由哈夫曼解码器部分402与反量化器403相连,还与反量化器403直接相连。此外,解复用器401与MS逆矩阵42相连。反量化器403同样与MS逆矩阵42相连。立体声解码器21的立体声扩展解码器216的两个输出同样与MS逆矩阵42相连。立体声解码器21的AMR-WB+单声道解码器组件214的输出经由MDCT部分41与MS逆矩阵42相连。
低频效应立体声编码器207生成的低频数据比特流由AMR-WB+比特流解复用器215提供给解复用器401。由解复用器401根据上述语法对比特流进行解析。解复用器401向哈夫曼解码器部分402提供取回的哈夫曼码,向反量化器403提供取回的量化器增益,并向MS逆矩阵42提供取回的空间强度标志hPanning。
哈夫曼解码器部分402基于上面定义的哈夫曼表hufLowCoefTable[6][21、hufLowCoefTable_12[7][22、{hufLowTable2[25][2]、hufLowTable3[25][3]以及hufLowCoefTable中适当的表对接收到的哈夫曼码进行解码,得到量化的频谱边信号
所得的量化频谱边信号
由哈夫曼解码器部分402提供给反量化器403。
反量化器403根据下列等式对量化的频谱边信号
反量化
其中,变量gain是从解复用器401接收的解码的量化器增益值。所得的反量化频谱边信号
由反量化器403提供给MS逆矩阵42。
同时,ARM-WB+单声道解码器组件214向MDCT部分41提供解码的单音频信号
由MDCT部分41通过基于帧的MDCT方式,将解码的单音频信号
变换到频域,而且将所得的频谱单音频信号
提供给MS逆矩阵42。
另外,立体声扩展解码器216向MS逆矩阵42提供重建的频谱左声道信号
和重建的频谱右声道信号
在MS逆矩阵42中,首先估计所接收的空间强度标志hPanning。
如果解码的空间强度标志hPanning具有值‘1’,指示发现左声道信号空间上强于右声道信号,或者值‘2’,指示发现右声道信号空间上强于左声道信号,则根据下列等式计算对于较弱声道信号的衰落增益gLow
然后,对低频空间左Lf和右Rf声道取样进行重建,如下
从频谱取样索引N-M开始,将接收自立体声扩展解码器216的空间左
和右
声道取样加到所得的低频空间左Lf和右Rf声道取样上。
最后,由IMDCT部分43通过基于帧的IMDCT方式,将合并的频谱左声道信号变换到时域,以获得恢复的左声道信号
然后再由立体声解码器21输出。由IMDCT部分44通过基于帧的IMDCT方式,将合并的频谱右声道信号变换到时域,以获得恢复的右声道信号
然后同样由立体声解码器21输出。
所示的低频扩展方法有效地以低比特率对重要的低频进行编码,并用所用的通用立体声音频扩展方法进行平滑合并。其在低于1000Hz的低频处效果最好,在那里空间听觉是挑剔且敏感的。
显然,所描述的实施方式可以多种方式变化。一种关于对边信号生成部分321生成的边信号S进行量化的可能变形将在下面描述。
在上述方法中,对频谱取样进行量化,使得,量化的频谱取样的最大绝对值低于阈值T,而这个阈值设定为固定值T=3。在这种方法的变形中,阈值T可以取两个值中的一个,例如,T=3或T=4中的一个。
所述变形的目的在于对可用比特进行特别有效的利用。
使用固定阈值T用于频谱边信号S编码可以产生一种编码操作之后所用的比特数远远小于可用的比特数的情况。从立体声感觉的角度,希望尽可能充分利用所有可用的比特用于编码目的,从而,使未使用的比特数最小化。当运行于固定比特率条件下时,未使用的比特必须作为填充(stuffing and/or padding)比特发送,这将使整个编码系统的效率下降。
本发明各种实施方式中的整个编码操作可在两个阶段编码循环中执行。
在第一阶段中,使用第一较低阈值T,也就是,当前示例中的阈值T=3,对频谱边信号进行量化和哈夫曼编码。这个第一阶段的处理正对应于上述低频立体声编码器207的量化循环部分322、选择部分323和哈夫曼循环部分324进行的编码。
只有当第一阶段的编码操作指示增加阈值T可能是有利的,以便获得较好的频谱分辨率时,才进入第二阶段。在哈夫曼编码之后,由此确定是否阈值T=3,以及未使用的比特数是否大于14,并且通过将最不重要的频谱取样设定为零,不执行频谱丢弃。如果所有这些条件都满足,则编码器获知,为了最小化未使用的比特数必须增加阈值T。从而,在当前示例中,将阈值T增加1,成为T=4。只有在这种情况下,才进入编码的第二阶段。在第二阶段中,首先由量化循环部分322对频谱边信号进行重新量化,如上所述,只是在这次量化中,计算和调整量化器增益值,使得,量化频谱边信号的最大绝对值位于值4以下。如上所述在选择部分323中处理之后,再次进入上述的哈夫曼循环。由于已经为在-3至3之间的幅度值设计了哈夫曼幅度表HufLowCoefTable和HufLowCoefTable_12,所以不需要对实际的编码步骤进行修正。这些同样可应用于解码器部分。
然后,退出编码循环。
从而,如果在编码期间选择第二阶段,则用阈值T=4生成输出比特流,否则,用阈值T=3生成输出比特流。
必须注意,所述实施方式仅构成本发明可能实施方式中的一个变形。
权利要求
1.一种用于支持多声道音频编码系统编码端的多声道音频扩展的方法,所述方法包括
-至少对于多声道音频信号(L、R)的较高频率,生成并提供第一多声道扩展信息,这个第一多声道扩展信息允许基于可用于所述多声道音频信号(L、R)的单音频信号
重建至少所述多声道音频信号(L、R)的所述较高频率;以及
-对于所述多声道音频信号(L、R)的较低频率,生成并提供第二多声道扩展信息,这个第二多声道扩展信息允许基于所述单音频信号
重建所述多声道音频信号(L、R)的所述较低频率,其精确性高于所述第一多声道扩展信息允许重建至少所述多声道音频信号(L、R)的所述较高频率。
2.根据权利要求1所述的方法,其中生成并提供所述第二多声道扩展信息包括
-将多声道音频信号的第一声道信号(L)变换到频域,得到频谱第一声道信号(Lf);
-将所述多声道音频信号的第二声道信号(R)变换到频域,得到频谱第二声道信号(Rf);
-生成频谱边信号(S),代表所述频谱第一声道信号(Lf)和所述频谱第二声道信号(Rf)之间的差值;
-量化所述频谱边信号(S),以获得量化的频谱边信号;
-对所述量化的频谱边信号进行编码,并提供所述已编码的量化频谱边信号,作为所述第二多声道扩展信息的一部分。
3.根据权利要求2所述的方法,其中所述量化包括在循环中量化所述频谱边信号(S),在这个循环中,改变量化增益,使得,获得其最大绝对值低于预先确定的阈值的量化频谱边信号。
4.根据权利要求3所述的方法,其中调整所述预先确定的阈值,以确保对所述量化频谱边信号的所述编码获得小于预先确定的比特数的比特数,而预先确定的比特数低于可用的比特数。
5.根据权利要求3或4所述的方法,进一步包括,如果所述得到的量化频谱边信号所需的量化增益(qGain)低于第二预先确定的阈值,则将所述量化频谱边信号的所有值设定为零。
6.根据权利要求2至5中一个权利要求所述的方法,进一步包括,如果所述频谱第一和第二声道信号(Lf、Rf)的所述较低频率的平均能量(tLevel)低于预先确定的阈值,则将所述量化频谱边信号的所有值设定为零。
7.根据权利要求2至6中一个权利要求所述的方法,进一步包括将所述量化频谱边信号中不属于向所述多声道音频信号中的多声道图像做出显著贡献的频谱环境的那些值设定为零。
8.根据权利要求2至7中一个权利要求所述的方法,其中所述编码基于哈夫曼编码方案。
9.根据权利要求2至8中一个权利要求所述的方法,其中所述编码包括从至少两种编码方案中选择一个方案,对于所述量化频谱边信号,所选的编码方案得到最少的比特数。
10.根据权利要求2至9中一个权利要求所述的方法,其中所述编码包括,如果对所述全部量化的频谱边信号进行编码产生超过可用的比特数的比特数,则至少丢弃所述量化频谱边信号中具有最低能量的取样。
11.根据前述权利要求中一个权利要求所述的方法,进一步包括生成并提供一个指示(hPanning),其指示在所述多声道音频信号的所述较低频率处,所述多声道音频信号中的任何声道(L、R)是否明显强于所述多声道音频信号中的另一个声道(R、L)。
12.根据前述权利要求中一个权利要求所述的方法,其中以频带为单位在频域中生成所述第一多声道扩展信息,以及,其中以取样为单位在频域中生成所述第二多声道扩展信息。
13.根据前述权利要求中一个权利要求所述的方法,还包括
-将所述多声道音频信号的第一声道信号(L)和第二声道信号(R)合并为单音频信号(M),并将所述单音频信号(M)编码为单声道信号比特流;以及
-至少将所述单声道信号比特流、所述提供的第一多声道扩展信息和所述提供的第二多声道扩展信息复用为单个比特流。
14.一种用于支持多声道音频编码系统解码端的多声道音频扩展方法,所述方法包括
-基于所接收的用于所述多声道音频信号的第一多声道扩展信息和基于所接收的用于所述多声道音频信号(L、R)的单音频信号
重建至少多声道音频信号(L、R)的较高频率;以及
-基于所接收的第二多声道扩展信息和基于所述接收的单音频信号
以高于所述较高频率的精确性重建所述多声道音频信号(L、R)的较低频率;以及
-将所述重建的较高频率和所述重建的较低频率合并为重建的多声道音频信号
15.根据权利要求14所述的方法,其中重建所述多声道音频信号(L、R)的较低频率包括
-对包括在所述第二多声道扩展信息中的量化频谱边信号进行解码;
-对所述量化频谱边信号进行反量化,以获得反量化的频谱边信号;以及
-用所述反量化的频谱边信号扩展所述接收到的单音频信号
以获得所述多声道音频信号(L、R)的频谱第一声道信号和频谱第二声道信号的重建的较低频率。
16.根据权利要求15所述的方法,进一步包括,在所述较低频率上衰减所述频谱声道信号中的一个信号,如果所述第二多声道扩展信息进一步包括一个指示,其指示在将要在所述较低频率重建的所述多声道音频信号(L、R)中所述频谱声道信号中的另一个信号明显较强的话。
17.根据权利要求14至16中一个权利要求所述的方法,其中在频域中执行对所述重建的较高频率和所述重建的较低频率的合并,以获得重建的频谱声道信号
其包括较高和较低频率,并将所述重建的频谱声道信号
变换到时域,以获得所述重建的多声道音频信号
18.根据权利要求14至17中一个权利要求所述的方法,其中以频带为单位在频域中重建所述多声道音频信号(L、R)的所述较高频率,以及,其中以取样为单位在频域中重建所述多声道音频信号(L、R)的所述较低频率。
19.根据权利要求14至18中一个权利要求所述的方法,进一步包括接收比特流,以及将所述比特流解复用为包括所述单音频信号
的第一比特流、包括所述第一多声道扩展信息的第二比特流和包括所述第二多声道扩展信息的第三比特流。
20.多声道音频编码器(20),包括用于实现权利要求1至13中一个权利要求所述方法的步骤的装置(202-207,30-32,321-327)。
21.用于多声道音频编码器(20)的多声道扩展编码器(206、207),所述多声道扩展编码器(206、207)包括用于实现权利要求1至12中一个权利要求所述方法的步骤的装置(30-32,321-327)。
22.多声道音频解码器(21),包括用于实现权利要求14至19中一个权利要求所述方法的步骤的装置(215-217,40-44,401-403)。
23.用于多声道音频解码器(21)的多声道扩展解码器(216、217),所述多声道扩展解码器(216、217)包括用于实现权利要求14至18中一个权利要求所述方法的步骤的装置(40-44,401-403)。
24.多声道音频编码系统,包括带有用于实现权利要求1至13中一个权利要求所述方法的步骤的装置(202-207,30-32,321-327)的编码器(20),以及带有用于实现权利要求14至19中一个权利要求所述方法的步骤的装置(215-217,40-44,401-403)的解码器(21)。
全文摘要
本发明涉及在多声道音频编码系统中支持多声道音频扩展的方法和单元。为了允许对多声道音频信号L/R的可用单音频信号进行有效的扩展,提出除了至少用于多声道音频信号L/R较高频率的多声道扩展信息之外,多声道音频编码系统的编码端提供用于多声道音频信号L/R较低频率的专用多声道扩展信息。这个专用的多声道扩展信息使多声道音频编码系统的解码端以高于多声道音频信号L/R的较高频率的精确性,重建多声道音频信号L/R的较低频率。
文档编号G10L19/008GK1765072SQ03826338
公开日2006年4月26日 申请日期2003年4月30日 优先权日2003年4月30日
发明者尤哈·奥雅佩阿 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1