使用复数值数据的音频信号解码的制作方法

文档序号:2827953阅读:339来源:国知局
专利名称:使用复数值数据的音频信号解码的制作方法
技术领域
本发明涉及音频信号编码。本发明具体来说,但非专门地,涉及对MPEG-1层III数据信号进行解码。
背景技术
MPEG-1层III(通常称为mp3)是广泛采用的音频编解码器。在ISO/IEC JTC1/SC29/WG11 MPEG,IS11172-3,Information Technology-Coding of Moving Pictures and Associated Audio for DigitalStorage Media at up to about 1.5Mbit/s,Part3Audio,MPEG-1,1992中介绍了mp3的行业标准。这一标准可以从国际标准化组织(ISO)(www.iso.ch)得到并且以引用的方式并入本文。
已经设计出了高级音频编码标准(AAC)来解决mp3的部分不足。在ISO/IEC JTC1/SC29/WG11 MPEG,IS13818-3,Information Technology-Generic Coding of Moving Pictures and Associated Audio,Part3Audio,MPEG-2,1994中介绍了AAC标准,这个标准也可以从ISO得到。
作为解码处理的一部分,各个标准介绍的相应音频解码器创建改进离散余弦变换(MDCT)系数的形式的频率或者谱系数,即,代表编码数据信号的谱分量的系数。
各个谱系数代表编码音频信号的相应频率分量。在某些应用中,例如在均衡器中,有可能希望能够对谱系数进行后处理,以使得信号的一个或多个相应频率分量能够得到直接运用。不过,在常规的mp3和AAC解码中,只有有限的MDCT系数的后处理是可能实行的。之所以如此,有两个原因。首先,MDCT是临界采样的和重叠的变换(典型地采用50%重叠),这一变换借助时域混叠消除(TDAC)来实现完全重构。这意味着,由于时域混叠的影响,借助(正向)MDCT将信号x(n)变换成X(k)和借助反向MDCT将X(k)反向变换成时域信号x′(n)一般来说不会给出恒等式x(n)=x′(n)。不过,完全重构是通过对信号x′(n)进行交叠相加运算实现的。因此,调节单独一个给定帧的MDCT系数能够影响(例如,减少)解码信号中时域混叠消除导致的听得见的伪音。第二个原因是,MDCT是实数值变换,并且这使得相位调节或旋转实际上不可能做到。
已经知道,可以对信号的谱分量的复数值表达(即,具有实数和虚数分量的表达)比较容易进行后处理。由Coding Technologies(www.codingtechnologies.com)提供的谱带复制(SBR)带扩展工具(例如,在mp3PRO和Advanced Audio Coding Plus(aacPlus)中得到了应用)对复数值子带域表达进行运算。
附图1表示针对AAC提出的SBR解码器。AAC MDCT系数由全基本层解码器30(典型地运行在采样频率的一半上)处理,以产生多个时域采样。将时域采样提供给32(或者在基本层解码器运行在整个采样频率上的情况下是64)频带复指数调制分析QMF(正交镜像对称滤波器)组32,以产生复数值子带域信号,该信号可由处理单元34进行后处理。在后处理之后,将复数值子带域信号提供给64频带复指数调制合成QMF组36,该QMF组产生包括PCM采样的输出信号。附图1中图解说明的算法的缺点是,除了基本层解码器外,还要使用复指数调制滤波器组,这在计算上和在存储方面成本都是很高的。为mp3提出的SBR算法受到同样缺点的困扰。

发明内容
因此应该希望给出一种支持复数值谱系数的后处理而又不会明显增加解码器的复杂性的音频解码器。
据此,本发明的第一个方面给出了一种解码器,包括用于从接收到的信号中还原出多个第一谱系数的装置,第一谱系数包括第一变换装置的产物;反向变换装置,用于将所述第一谱系数变换成一个或多个时域信号分量;第二变换装置,用于将所述一个或多个时域信号分量变换成多个第二谱系数,其中在相应的调制频率上,所述第二变换装置的调制正交于所述第一变换装置的调制,该解码器此外还包括用于对一个或多个所述第一谱系数与相应的第二谱系数结合起来进行处理的装置。
与公共调制频率相应的第一和第二谱系数可以一起作为复数值谱系数加以处理。并且,这样,适合于由处理装置进行后处理。
按照优选实施方式,所述第一正向频率变换和所述第二正向频率变换之一包括改进离散余弦变换(MDCT),另一个包括改进离散正弦变换(MIDST)。按照这样的实施方式,该解码器尤其适用于对mp3信号进行解码。按照一种实施方式,解码器还包括用于对所述第二谱系数和它们的相应混叠的第一谱系数进行复数值混叠减少的装置,其中所述复数值混叠减少装置包括一个或多个设置成用于将复数值加权值应用于所述混叠的第一和相应的第二频率分量的抗混叠蝶形运算单元(butterflies)。
按照一种优选实施方式,该解码器此外该包括用于对所述复数值谱系数进行一次或多次复数值反向频率变换来产生多个数据采样的装置;用于将一种或多种类型的窗口函数应用于所述数据采样来产生多个加窗的数据采样的装置;和用于从所述加窗的数据采样构建输出信号的装置。最好,所述复数值反向频率变换包括奇数频率调制的反向离散傅立叶变换(IDFT),更好地,所述复数值反向频率变换包括奇次奇数频率调制的反向离散傅立叶变换(O2DFT)。
最好,该解码器此外还包括用于按照说明书中的等式[5]和[6]调节复数值谱系数的相位的装置。
按照另外一种实施方式,所述反向变换装置包括合成子带滤波器组并且第二正向变换装置包括分析子带滤波器组。最好,所述第一变换装置包括分析滤波器组,所述第一和第二正向变换装置之一是余弦调制的,另一个是正弦调制的。
本发明的第二个方面给出了一种对数据信号进行解码的方法,该方法包括从接收到的信号中还原出多个第一频率系数,第一谱系数包括第一变换装置的产物;由反向变换装置将所述第一谱系数变换成一个或多个时域信号分量;由第二变换装置将所述一个或多个时域信号分量变换成多个第二谱系数,其中在相应的调制频率上,所述第二变换装置的调制正交于所述第一变换装置的调制,该方法此外还包括对一个或多个所述第一谱系数与相应的第二谱系数结合起来进行处理。
在从属权利要求中列出了其它优选特征。
在阅读了下述本发明优选实施方式的介绍的情况下,本发明的更多有益方面对于本领域技术人员来说将会变得显而易见。


现在将以举例的方式并且参照附图介绍本发明的实施方式,其中附图1给出了图解说明常规谱带复制(SBR)增强解码器的框图;附图2给出了常规MPEG-1层III解码器的框图;附图3给出了具体实施本发明的一个方面的解码器;附图4给出了在上采样之后下采样滤波器组的两个相邻子带滤波器的响应的固定格式的图解说明;附图5给出了抗混叠蝶形运算单元的示意图;附图6给出了具体实施本发明的一个方面的解码器的另一种实施方式;附图7表示常规MPEG-1层I/II解码器的简化框图;和附图8给出具体实施本发明的一个方面的再另一种实施方式。
具体实施例方式
典型的常规MPEG-1层III编码器(未示出)设置成用来接收包括一连串或一帧1152个音频输入采样的PCM输入信号。将该输入信号供应给多相分析滤波器组,该滤波器组将该输入信号滤波成32个间距均匀的重叠频带,以产生32个下采样子带信号分量,各个分量包括36个子带采样。
针对各个子带信号分量,进行加窗的(正向)MDCT(改进离散余弦变换)。使用四种窗口类型来迎合可变时间分段。对于信号的(准)稳定部分,可以使用所谓的正常窗口,而,对于信号的非稳定部分,可以使用一系列所谓短窗。定义了两种短时类型的窗口(所谓的开始和停止窗口)来防止从正常窗口切换到短窗以及反过来进行的时候出现不连续。对于正常、开始和停止窗口,MDCT是对36个输入(即,36个子带采样)进行的并且产生18个输出MDCT系数,这些MDCT系数通常称为频率线。对于短窗,MDCT是对三个12个输入的组(即,三个12个子带采样的组)进行的,并且产生三个6个输出MDCT系数(或频率线)的组。576个MDCT系数的集合称为一团(granule)。对于包括1152个输入采样的典型mp3帧来说,由于编码处理的重叠性质,会产生两个团。总的来说,会为各个576个输入采样产生18×32=576个MDCT系数或频率线。
在正常、开始或停止窗口的情况下,将MDCT频率线提供给抗混叠蝶形运算单元,以减小由对多相滤波器组的谱重叠滤波器进行下采样所造成的混叠效果。最后,对MDCT系数进行编码(使用霍夫曼(Huffman)编码)和量化,以产生具有规定位流格式的输出信号。量化和编码是在位分配单元的控制下进行的,该单元执行位分配算法,该算法典型地是由心理声学模型指导的。
附图2给出了常规MPEG-1层III解码器10的简化框图,仅仅示出了对评价本发明有帮助的那些组成部分。解码器10设置成用于接收具有规定mp3位流格式的输入信号。解码和去量化单元12进行位流的解码(典型地是霍夫曼解码)和去量化,以产生频率线,或者MDCT系数。对于各个由编码器产生的576个MDCT频率线的集合,再生出相应的576个频率线。
将这些频率线提供给重新排序单元14,该单元在短型窗口的情况下对各个系数团内的频率线进行重新排序。在正常、开始或停止窗口的情况下,将这些频率线提供给混叠蝶形运算单元16,混叠蝶形运算单元执行由编码器的抗混叠蝶形运算单元执行的抗混叠操作的反向操作。
MDCT单元18对这些频率线执行IMDCT(反向改进离散余弦变换),以产生32个多相滤波器子带信号分量,各个分量包括36个子带采样。对于与正常、开始或停止窗口MDCT相应的那些频率线,IMDCT单元18将18个频率线作为输入并且产生36个子带域采样。对于与短窗MDCT相应的那些频率线,IMDCT单元18将3个6个频率线的组作为输入并且产生3个12个子带域采样的组。
由加窗和重叠-相加单元20对子带采样进行加窗操作和标准重叠和相加操作。在位流的相关辅助信息(side information)内携带着与要使用哪种类型的窗口有关的信息。
最后,将这些子带采样提供给多相合成滤波器组22,该滤波器组22按系数32进行上采样,并且产生包括PCM采样的输出信号。
该滤波器组22包括原型低通滤波器,对原始低通滤波器进行余弦调制,以形成较高频带。子带滤波器组与MDCT/IMDCT单元的串联组合称为混合滤波器组,因为它一部分由滤波器组构成,一部分由变换构成。IMDCT单元18和合成滤波器组22一起构成混合合成滤波器组。从计算的角度看,并且因此从实现的角度看,认为使用混合滤波器组是mp3的弱点,它引入了复杂性。
如上面所指出的,MDCT系数是实数值的(即,它们不包括虚部)并且是临界采样的,这样来说,它们不太适于后处理。在下面的本发明的优选实施方式的介绍中,给出了一种复杂性与解码器10相当的解码器,这种解码器在解码处理的中间阶段创建类似奇调制离散傅立叶变换(DFT)表达的复数值系数,这些复数值系数很适于后处理。而且,实数值MDCT系数扩展到复数值系数带来了系数为2的有效过采样。结果,这些复数值系数不会象MDCT那样受到时域混叠的影响。换句话说,借助这种复数值变换及其反变换对信号x(n)进行变换和反变换将会得到同样的信号x(n)。
可以将MDCT定义为C(k)=Σn=0N-1x(n)cos(2π(n+12+N4)(k+12)N)---[1]]]>其中n是时间指数,对于常规mp3解码器来说,该时间指数代表子带采样指数;N是变换长度或大小;k是频率指数;x(n)是时域信号,在常规mp3解码器中,该信号包括由子带采样构成的子带时域信号;而C(k)是频域MDCT频谱。
等式[1]代表复数值变换的实部,如等式[2]中所示 等式[2]中给出的复数值变换是奇次奇频离散傅立叶变换(O2DFT)并且可以通过快速傅立叶变换(FFT)的预旋转和后旋转(或调制)来有效地加以计算。由等式[2]的复数值变换的虚部给出了称为改进离散正弦变换(MDST)的变换。因此,可以将MDST描述为
其中S(k)是频域MDST频谱。
因此,MDCT系数与它们相应的MDST系数一起给出了数据信号在频域中的复数值表达,各个MDCT系数给出对应的复数值系数的实部,而相应MDST给出虚部。这样的复数值系数很适于后处理。可以将MDCT和MDST说成是相互正交的变换,即,相对于彼此正交的变换,因为一个变换的频率指数k的变换内核正交于另一个变换对应于同一频率指数k的变换内核。换句话说,具有相同调制频率的第一变换(例如,MDCT)和第二变换(例如,MDST)各自的变换调制内核是正交的。
正是这种正交属性使得变换各自的输出能够用作复数值表达的相应实部和虚部。一般来说,用在具体实施本发明的解码器中来创建复数值频率或谱系数的虚部的正向频率变换的调制在相应的频率上正交于用在编码器中来创建复数值频率或谱系数的实部的正向频率变换的调制(或者反过来,即,解码器中的正向频率变换创建实部和编码器中的正向频率变换创建复数值频率系数的虚部的情况)。在下面的本发明的具体实施方式
的介绍中,假设解码器设置成用于对mp3数据信号进行解码,所以在编码器(未示出)中采用MDCT,并且在实施本发明的解码器中采用MDST。不过,将会理解,按照其它可供选用的实施方式,可以采用其它类似的正交变换。而且,可以使用将数据信号从时域变换到频率(以及反过来)的其它装置,例如,子带分析和合成滤波器组,这两个滤波器组是以相互正交的方式调制的。
附图3给出具体实现本发明的一个方面的解码器40的框图。为了清晰,仅仅示出了解码器40有助于理解本发明的那些组成部分。解码器40设置成用于对多个MDCT系数或频率线进行运算,如附图3的左手边所指出的。在正常情况下,MDCT系数是通过对解码器40接收到的输入信号进行解码和去量化而还原出来的。例如,在解码器40包括mp3解码器的情况下,输入信号包括mp3编码位流,并且解码器40此外还包括解码和去量化单元以及重新排序单元(在附图2中给出,而在附图3中没有示出),它们对所接收到的mp3位流进行还原和重新排序,以产生MDCT系数。在下面的介绍中,例如,假设解码器40设置成用来对mp3信号进行解码。
为了获得子带域采样,借助IMDCT对MDCT系数进行变换。对于mp3解码,这可以采用与常规mp3解码器10所采用的方式相同的方式来实现。因此,按照优选实施方式,解码器40包括混叠单元或者混叠蝶形运算单元42和IMDCT单元44,它们分别类似于常规解码器10的混叠蝶形运算单元16和IMDCT单元18。
IMDCT单元44产生多个包括子带采样的子带域信号分量。由加窗和重叠-相加单元46对子带采样进行常规加窗和重叠-相加运算,按照优选实施方式,该加窗和重叠-相加单元46类似于常规解码器10的加窗和重叠-相加单元20。
为了产生复数值系数,解码器40必须创建这些系数的虚部。如前面参照等式[3]介绍的那样,这可以通过对子带域信号分量进行MDST来实现。在重叠-相加运算之后,子带信号分量就做好了变换回频域的准备,并且将它们提供给MDST单元48。
针对各个子带域信号分量,MDST单元48进行加窗(正向)MDST。对于正常、开始或停止窗口,对36个输入(即,36个子带采样)进行MDST,并且产生18个输出MDST系数或频率线。对于短窗,对三个12个输入的组(即,三个12个子带采样的组)进行MDST,并且产生三个6个输出MDST系数的组。
最好对MDST系数进行抗混叠。因此,解码器40最好包括抗混叠单元50或者抗混叠蝶形运算单元。在正常情况下,抗混叠仅仅针对与正常、开始或停止窗口相关的数据进行。抗混叠蝶形运算单元50总地来讲类似于mp3标准中介绍的抗混叠蝶形运算单元,只是要对计算的某些方面求反(negated)。具体来说,参照mp3标准并且使用同样的符号,为了用在针对MDCT系数的抗混叠蝶形运算单元中,将向量c定义为c=[-0.6,-0.535,-0.33,-0.185,-0.095,-0.041,-0.0142,-0.0037]由此可以计算出下列两个另外的向量cu和cs
cu(k)=c(k)1+c(k)2,k=0,...,7]]>cs(k)=11+c(k)2,k=0,...,7]]>[4]在对MDST系数进行抗混叠的时候,要对向量cu求反,即,乘以系数-1。在其它情况下,抗混叠蝶形运算单元50可以按照mp3标准操作。
因此,在由附图3中的虚线AA’代表的解码阶段,可以为解码器40给出复数值系数,各个系数的虚部由相应的MDST系数给出,该系数的实部由相应的MDCT系数给出。为了使各个MDST系数的产生与其相应的MDCT系数同步,最好由延迟元件52对MDCT系数进行延迟。延迟量取决于产生MDST系数所需的处理延迟,该处理延迟主要由进行重叠-相加运算所需的延迟决定。解码器40为各个系数团的各个MDCT系数产生相应的复数值系数。
这些复数值系数适合于后处理,并且为此,在解码器40中设置了处理单元56,用来如期望的调节一个或多个复数值系数。由于复数值系数是频域分量,因此可以有利地直接对编码信号的一个或多个频率分量进行后处理。
还要求解码器40产生时域输出信号,在本例中,该时域输出信号包括来自经过后处理(视情况而定)的复数值系数的PCM信号。为此,观察到复数值系数的形式类似于由O2DFT产生的系数的形式。而且,由整个频率分析(编码器和解码器二者中的)结合抗混叠(编码器和解码器二者中的)得到的系数与由单独一次复数值变换获得的系数对应得非常好,要好于对各个子带信号进行得一组复数值变换。因此认为,通过对复数值系数进行反O2DFT有可能产生时域输出信号。这有利地避免了在解码器40中使用子带滤波器组的需求。
不过,为了减少输出信号中能够感觉到的伪音,最好进行复数值系数的某种预处理,从而使它们更加接近地类似于O2DFT系数,就好像是由单独一次O2DFT获得的,而不是对各个子带信号进行O2DFT获得的。就此而论,由解码器40产生的复数值系数与真正的O2DFT系数之间的主要差别是1)虽然已经通过由抗混叠蝶形运算单元50执行的抗混叠并且在编码器中得到了减少,但是在复数值系数中仍然存在一些混叠;和2)由常规mp3编码器的(多相)滤波器组造成的相位旋转。
残余混叠并不明显并且可以容忍。不过,由多相滤波器造成的相位旋转可以通过对各个复数值系数施加相位旋转或移动来加以补偿。混合mp3滤波器组和O2DFT二者各自的相位特性都基本上是线性的并且因此可以由线性函数表达。mp3滤波器组结合对奇数子带使用频率倒置还对交替的子带进行了求反(即,引入180°或π相移)。因此,复数值系数补偿mp3或类似的滤波器组的性能所要求的相移(comp可以由下式近似 其中a和b是常数,而k是与系数团的576个系数相应的指数。项ak+b给出与原型滤波器和所应用的余弦调制二者的线性相位特性相关的线性相移,而项 用于对与交替子带相应的系数求反(假设是普通的mp3结构)。a和b的值可以通过在O2DFT输出端处和在混合复数扩展MPEG-1分析滤波器组的输出端处测量任意输入信号的相位特性来确定。通过分析多个输入信号或帧的这些相应相位特性,可以优化a和b的值。
可以以直接旋转的方式对复数值系数应用多相滤波器修正Pcorr(k)=exp(j·comp(k))P(k)[6]其中P(k)是未补偿的复数值系数,而Pcorr(k)是经过补偿的或经过修正的复数值系数(可在附图3中的级AA′处得到)。
在附图3中,解码器40包括相位补偿单元54或多相滤波器修正单元,用于执行等式[6]的相位补偿。该相位补偿单元54将经过相位补偿的复数值系数Pcorr(k)提供给处理单元56。
在后处理(视情况而定)之后,复数值系数做好了变换到时域的准备。如上面所指出的那样,这在传统上是通过对与各个系数团相关的复数值系数进行一次或多次反向O2DFT来实现的。为此,解码器40此外还包括反向O2DFT单元58,该单元是为了对复数值系数进行一次或多次反向O2DFT而设置的。将会看到,按照优选实施方式,反向O2DFT单元58设置成用于一次对整个系数团的各个复数值系数进行运算,而不是按照它们相关的子带对复数值系数应用一系列较小的反向O2DFT。因此,反向O2DFT单元58对与系数团相关的的所有复数值系数执行单独一次反向O2DFT(在需要正常、开始或停止类型的窗口时)或者对与系数团相关的所有复数值系数的相应数量的子集执行多次反向O2DFT(在需要短型窗口时)。对于系数团包括576个频率线的mp3位流,反向O2DFT单元58对于正常、开始或停止窗口在整个系数团执行单独一次反向O2DFT,得到1152个时域采样,并且对3个192个复数值系数的子集执行三次反向O2DFT,得到三个相应的384个时域采样的序列或集合。反向O2DFT单元58的输出包括多个(在本例中是1152个)还原出来的信号分量或采样,这些信号分量或采样可以用于构建PCM输出信号。
为了构建PCM输出信号,对由反向O2DFT单元58产生的信号采样执行加窗和重叠-相加运算。因此,解码器40此外还包括加窗单元60和重叠-相加单元62,下面将更加详细地介绍它们的操作。
为了使使用加窗和重叠-相加单元60、62进行的PCM输出信号构建可以得到更好的理解,现在将详细介绍常规mp3加窗。在mp3中,规定了四种不同的窗口类型(和伴随的长度),即,‘正常’、‘开始、‘短’和‘停止’。选择某种类型的窗口或者一系列不同窗口类型来迎合要应用(多个)窗口的数据部分的特性。例如,短型窗口通常应用于与音频信号中的瞬变对应的数据部分。与给定数据帧相关的辅助信息指出与系数团一起使用的是哪种窗口类型。所需要的窗口类型影响MDCT的长度或大小(因此还有反向MDCT)和加窗/重叠-相加运算二者。
对于mp3,可以将窗口函数z(n)描述为下列形式对于正常类型的窗口(类型0)z(n)=sin(π36(n+12)),n=0...35---[7]]]>对于开始类型的窗口(类型1)
z(n)=sin(π36(n+12))n=0...171n=18...23sin(π12(n+12-18))n=24...290n=30...35---[8]]]>对于短型窗口(类型2),同时编码三个短窗zp(n)=sin(π12(n+12)),n=0...11,p=0,1,2---[9]]]>对于停止类型的窗口(类型3)z(n)=0n=0...5sin(π12(n+12-6))n=6...111n=12...17sin(π36(n+12))n=18...35---[10]]]>等式[7]、[8]、[9]和[10]中的各个窗口函数一般情况下看作单一窗口函数,不过它们可能牵涉到不止一个窗口的应用。从函数[7]、[8]和[10]中可以看出,窗口长度是36(即,36点窗口),因此指数n从0变到35。对于函数[9],三个短的12点窗口的组合长度是36,因此对于p=0到2,n从0变到11。因此,各个窗口类型的总长度对应于子带信号分量的大小(36个子带采样)。
现在介绍由加窗和重叠-相加单元60、62结合反向O2DFT单元58进行的PCM输出信号的构建。在下面的例子中,假设原始PCM信号包括1152个音频采样的帧,各个帧有效地变换成两个576个频率线的系数团(或者MDCT系数)。因此,反向O2DFT单元58对576个复数值系数的系数团进行操作,以产生包括1152个采样的信号,然后将这些采样提供给加窗和重叠-相加单元60、62。将会看出,仅仅将反向O2DFT单元58产生的信号采样的各个实部提供给加窗单元60。
将复数值系数的第1个集合或系数团表示为Xl(k),其中k=0...575。参照附图3,Xl(k)是由经过修正的复数值系数Pcorr(k)(在由处理单元56进行了后处理之后)的各个集合或系数团构成。在对复数值系数的第1集合(1从0开始)进行了解码之后,由加窗和重叠-相加单元60、62产生的输出信号用下式描述(使用重叠-相加)yl+1(n+576·l)=yl(n+576·l)+xl+1(n) [11]其中指数n=0…1151,yl(n)是对第1个集合进行解码之后的输出信号,而xl(n)是对复数值系数Xl(k)进行变换(反向O2DFT)得到的信号的实部。对于所有的n,将输出信号yo(n)初始化为零。
信号xl(n)的产生取决于相应的指定窗口类型,如下所述。在第1个集合的窗口类型是0、1或3的情况下,反向O2DFT单元58产生临时信号xtmp(n),该信号包括输入长度为576并且输出长度为1152的反向O2DFT的实部(即,对与相应系数团相关的所有复数值系数进行的单独一次“长”反向O2DFT)。在等式[12]中给出了合乎需要的变换 其中n=0...N-1并且变换长度N=1152。
当用于第1个集合的窗口类型是2(即,“短窗”)时,反向O2DFT单元58对三个192个复数值系数的集合执行各自的反向O2DFT,以产生三个相应的临时信号,将这三个临时信号表示为xtmp,0(n)、xtmp,1(n)和xtmp,2(n),这三个信号各自具有384个点,如等式[13]中所示 其中指数p=0...2,n=0...N-1,N=384,并且在按频率排序之前按照p对Xl(k)进行排序。
有效提供给加窗和重叠-相加单元60、62的是临时信号xtmp(n)、xtmp,p(n)。
当第1个集合的窗口类型是0时,由加窗单元60按照下式计算信号xl(n)
xl(n)=sin(π1152(n+12))xtmp(n),n=0...1151---[14]]]>其中等式[14]中的除数1152与反向O2DFT变换长度N一致。
当第1个集合的窗口类型是1时,由加窗单元60按照下式计算信号xl(n)xl(n)=sin(π1152(n+12))xtmp(n),n=0...575]]>xl(n)=xtmp(n) n=576...767xl(n)=sin(π384(n+12-576))xtmp(n),n=768...959]]>xl(n)=0 n=960...1151 [15]当第1个集合的窗口类型是2时,加窗单元60通过首先计算三个临时信号来计算信号xl(n)xl,tmp,p(n)=sin(π384(n+12))xtmp,p(n),n=0...383,p=0...2---[16]]]>其中等式[16]中的除数384与反向O2DFT变换长度N一致。
然后按照下式构建信号xl(n)xl(n)=0 n=0...191xl(n)=xl,tmp,0(n-192) n=192...383xl(n)=xl,tmp,0(n-192)+xl,tmp,1(n-384) n=384...575xl(n)=xl,tmp,1(n-384)+xl,tmp,2(n-576) n=576...767xl(n)=xl,tmp,2(n-576) n=768...959xl(n)=0 n=960...1151[17]当第1个集合的窗口类型是3时,由加窗单元60按照下式计算信号xl(n)xl(n)=0 n=0...191xl(n)=sin(π384(n+12-192))xtmp(n),n=192...383]]>xl(n)=xtmp(n) n=384...575xl(n)=sin(π1152(n+12))xtmp(n),n=576...1151---[18]]]>其中除数1152与反向O2DFT变换长度N一致并且除数384与N/3一致。
将会看出,等式[14]、[15]、[16]和[18]具有下列一般形式xl(n)=z(n)xtmp(n) [19]其中xl(n)是加窗函数,xtmp(n)是未加窗函数,而z(n)是窗口函数。注意,等式[14]、[15]、[16]和[18]的窗口函数z(n)总地来说分别类似于等式[7]、[8]、[9]和[10]中描述的窗口函数z(n)。不过,等式[14]、[15]、[16]和[18]中的窗口函数z(n)各自的窗口长度按照各自的变换长度越长,各自的除数就相应地越大。等式[14]、[15]、[16]和[18]的窗口函数z(n)可以说成分别包括等式[7]、[8]、[9]和[10]中描述的窗口函数z(n)的上采样形式,上采样的范围取决于各自的变换长度/窗口长度N。还要注意,等式[14]、[15]、[16]和[18]的窗口函数z(n)各自包括单独一个窗口函数,即使它的应用可能涉及不止一个窗口的应用。
从前述介绍中将会意识到,解码器40能够通过创建复数值系数在解码处理的中间阶段实现编码信号的后处理。有利地,由于复数值系数代表编码信号的频率或谱分量,因此基于频率的后处理可以直接进行。而且,解码器40与常规的mp3解码器10相比,解码器40并非明显更复数值,并且有益地,不需要合成滤波器组。还要注意,解码器40并不会受到时域混叠的困扰,因为O2DFT表达得到了有效的系数为2的过采样。
按照前述实施方式,对复数值系数应用一次或多次反向O2DFT。按照另一种可选实施方式,可以使用可选的变换。例如,在编码器使用奇数频率调制变换(例如,奇数频率调制离散余弦变换(DCT),即,DCT类型IV)的情况下,在解码器中使用相应的反向奇数频率调制变换,例如奇数频率调制DFT。因此,在解码器40中,可以使用奇数频率调制反向离散傅立叶变换代替反向O2DFT。具体参照等式[12]和[13],由项(k+1/2)代表奇数频率调制或者旋转,其中1/2将频域中的变换采样移动了半个采样。可以将奇数频率调制离散傅立叶变换定义为如下形式
C(k)=Σnx(n)e-j(2πN(n+φ)(k+12))]]>其中,φ可以取任意值。
并非必须使用奇数频率调制变换。例如,在编码器中可以使用偶数频率调制的变换(例如,DCT类型I变换),只要在解码器中使用类似调制的反向变换。也可以使用其它频率的调制(内核),只要编码器和解码器中使用兼容的调制内核。
按照另外一种可选实施方式(未示出),反向O2DFT单元设置成用于按照复数值系数与哪个子带相关对复数值系数应用一系列较小的反向O2DFT,而不是一次对整个系数团的各个复数值系数进行运算。因此,在mp3系数的情况下,反向O2DFT单元产生32个复数值子带域信号分量,各个分量包括36个子带采样。对于与正常、开始或停止窗口相应的那些复数值系数,反向O2DFT单元将18个复数值系数作为输入,并且产生36个复数值子带域采样。对于与短窗相应的那些复数值系数,反向O2DFT单元将3个6个复数值系数的组作为输入并且产生3个12个复数值子带域采样的组。按照这样的实施方式,最好包括处于后处理单元与反向O2DFT单元之间的混叠单元,用于对复数值系数进行混叠,以抵消或基本上抵消由抗混叠单元50和编码器中的抗混叠给出的抗混叠。在反向O2DFT单元之后,将复数值子带采样提供给复指数调制合成滤波器组,仅仅使用该滤波器组的实数值输出分量来提供解码器的输出信号。举例来说,复指数调制合成滤波器组可以使用与常规余弦调制滤波器组类似的等式来实现,只是将余弦函数替换为等价的复指数函数。而且,因为仅使用实数值输出,所以一种可选方案是对复数值子带采样的实数值部分采用常规的余弦调制的滤波器组并且对复数值子带采样的虚部采用相应的正弦调制的滤波器组(使用与余弦调制的滤波器组相同的等式,只是将余弦调制替换为正弦调制)。
在附图3的解码器40中,抗混叠单元50可以包括常规的抗混叠装置,典型地具有常规抗混叠蝶形运算单元的形式。这样的蝶形运算单元使用实数值对系数进行加权来实施加权求和。在美国专利US5559834(Edler)和B.Edler所著的“Aliasing reduction insub-bands of cascaded filter banks with decimation”,ElectronicsLetters,Vol.28,No.12,第1104-1106页,1992年6月)中介绍了这样的抗混叠蝶形运算单元的实例。这样的蝶形运算单元减少了由多相滤波器组的临界下采样造成的混叠。
为了解释说明,附图4示出了在上采样之后下采样多相滤波器组的第一个和第二个相邻子带滤波器(未示出)的固定格式响应R1、R2。而且还示出了通过例如对与这些子带滤波器相关的相应子带信号应用MDCT而获得的两个具有值A和B的谱分量。将会看出,作为混叠的结果,在与具有值A的谱分量相应的频率上,有额外的具有值qB的频谱分量,并且在与具有值B的谱分量相应的频率上,有额外的具有值rA的谱分量。因此,由于下采样,在与具有值A的谱分量相应的频率上的谱分量的值可以以A+qB的形式给出,而在与具有值B的谱分量相应的频率上的谱分量的值可以以B+rA的形式给出。q和r各自的值是由相应子带滤波器在具有值B和A的谱分量各自的频率上的相应传递函数决定的。具有值A和B的谱分量的实际值可以按照下述方式计算A′=A+qB B′=B+rAA=A′-q(B′-rA)B=B′-r(A′-qB)A=A′-qB′1-rq]]>B=B′-rA′1-rq---[20]]]>其中A、A′、B和B′代表各个谱分量值或幅度。等式[20]可以以附图5中所示的抗混叠蝶形运算单元的形式用图解的方式表示。传统上,r和q的值是实数值(即,它们不包括复数值分量)。
使用实数值使得抗混叠蝶形运算单元在谱分量(例如,附图4中的A+qB)与相应的镜像频谱分量(例如附图4中的B+rA)之间的相位差接近180°(或π)或者180°的倍数的情况下补偿混叠对谱系数的幅度的影响。结果,实数值抗混叠蝶形运算单元尤其适合于处理指定使用正常、开始或停止类型的窗口的MDCT或MDST系数(由分析滤波器组的子带域采样获得)。不过,在指定使用短型窗口的情况下,子带边缘附近的镜像谱分量之间的相位差不能由π的倍数恰当地近似表示。因此,常规地抗混叠单元50仅仅在应用正常、开始和停止窗口的情况下有用。这样,在mp3标准中,仅仅对这三种类型的窗口应用抗混叠。
现在参照附图6介绍本发明的另一种可选实施方式,这种实施方式通过使用复数值抗混叠蝶形运算单元缓解了上面略述的问题。附图6给出了采用复数值抗混叠蝶形运算单元的解码器140的框图。现在参照附图6,解码器140总体上类似于解码器40,并且使用类似的附图标记表示类似的组成部分。不过,解码器140包括复数值抗混叠单元170,该单元设置成用于通过对复数值系数应用复数值加权值或乘数来对复数值系数执行抗混叠。抗混叠单元170可以包括附图4中所示的一般类型的抗混叠蝶形运算单元,其中加权值或乘数r和q的值是复数值。提供给复数值抗混叠单元170的各个复数值系数的实部包括由延迟单元152适当延迟的相应MDCT系数,而复数值系数的虚部包括由MDST单元148提供的相应MDST系数或正交分量。与解码器40不同,对随后用于提供复数值系数的实部的MDCT系数进行常规混叠(由混叠单元142方便地进行)。
在对复数值系数进行了复数值抗混叠之后,将它们提供给多相滤波器修正单元154。对这些系数进行的进一步处理是参照附图3介绍的那些处理。
可以采用试验手段来确定加权值r和q的适当复数值。例如,为了给出r和q的第一估计值,针对各个MDCT频率接收器(frequencybin),将相应的已知幅度的正弦信号供应给mp3编码器中常见类型的常规mp3混合滤波器组(未示出)(即,包括多相分析滤波器组和用于对由分析滤波器组产生的子带信号进行MDCT的装置)。将各个正弦信号的相应频率选择为相应MDCT频率接收器的中心频率。对于正常、开始和停止窗口,可以按照下式计算中心频率f=(k+12)fs1152Hz---[21]]]>其中k=0...575,fs是采样频率,除数1152与变换长度N一致。因此要通过等式[21]计算576个频率,每个频率对应于一个MDCT集(bin)。
对于短型窗口,中心频率是按照下式计算的f=(k+12)fs384Hz---[22]]]>
其中k=0...191,fs是采样频率,除数384与变换长度N一致。因此要通过等式[22]计算192个频率,每个频率对应于一个MDCT集。
然后对由混合滤波器组产生的各个MDCT系数或频率线进行处理,例如使用附图3中所示的IMDCT单元144、重叠-相加单元146和MDST单元148来产生相应的MDST系数。因此,可以针对各个正弦信号得到相应的复数值系数。因为各个正弦曲线仅仅包括一个相应的频率分量,所以对于各个正弦曲线,仅仅产生了两个复数值系数一个代表各个正弦曲线本身(即,在频率和幅度上与相应的正弦曲线相当),另一个代表作为由滤波器组造成的混叠的结果而出现的镜像分量。如果假设正弦分量的幅度为A,则镜像分量的幅度为rA。因为A是已知的,所以可以容易地计算出r。加权值q可以按照类似的方式计算出来。对各个正弦曲线重复进行这一处理,以针对各个镜像频带集合产生相应的r和q值。从等式[21]和[22]中注意到,各个r和q的值也随窗口类型变化。最好通过使用常规非线性优化算法对按照上述方式计算出来的r和q值进行优化。
本发明并不局限于MPEG-1层III数据信号或者MDCT。就此而言,注意,术语“系数团”本来是mp3术语,但是本领域技术人员很容易理解,在非mp3实施方式的环境下,可以将本文中使用的术语“系数团”解释为任何等价的频率线或系数的分组方式(通常,术语“帧”等价于“系数团”)。
作为另一个例子,附图8中示出了具体实施本发明的另一个方面的用于MPEG-1层I或层II信号的解码器240的框图。作为背景,附图7示出了常规MPEG-1层I/II解码器的简化框图,该解码器包括用于对包含在接收到的MPEG-1层I/II位流中的频谱值进行解码以产生32个子带信号的组件130。然后将子带信号提供给合成子带滤波器组136,该滤波器组产生相应的时域音频输出信号x(n)。
在附图8中,解码器240包括用于对包含在所接收到的数据信号(例如,MPEG-1层I/II位流)中的频谱值进行解码的组件或模块212,以产生多个子带信号或子带信号分量。在所接收到的数据信号包括MPEG-1层I/II位流的情况下,对各个帧产生32个子带信号。将子带信号提供给合成子带滤波器组236,该滤波器组产生包括多个数据采样的相应的时域信号x(n)。在所接收到的数据信号包括MPEG-1层I/II位流的情况下,滤波器组236包括32个带余弦调制的合成滤波器组。然后将时域信号x(n)提供给分析子带滤波器组237,该滤波器组产生多个子带信号或信号分量。在所接收到的数据信号包括MPEG-1层I/II位流的情况下,滤波器组237包括32个带滤波器组并且为各个帧产生32个子带信号。此外,分析滤波器237的调制正交于合成滤波器组236的调制。因此,在所接收到的数据信号包括MPEG-1层I/II位流的情况下,分析滤波器组237包括正弦调制的滤波器组。结果,由分析滤波器组237产生的各个子带信号可以用作复数值子带信号的虚数值部分,相应的实数值部分是由解码器212产生的相应子带信号给出的。
复数值子带信号在转换到时域之前得到处理或者调节。因此,解码器240此外还包括用于按照需要调节一个或多个复数值子带信号的处理单元256。由于复数值子带信号是频域分量,因此可以有利地直接对编码信号的一个或多个频率分量进行后处理。
复数值子带信号包括复指数调制的子带系数,并且可以使用复指数调制的合成滤波器组239将其转换到时域,仅仅需要滤波器组239的实数值输出分量(表示为附图8中的数据信号x(n))。
而且,总地来说,本发明并不局限于本文介绍的实施方式,可以对这些实施方式进行改造或改变,而不会超出本发明的范围。
权利要求
1.一种解码器,包括用于从接收到的信号中还原出多个第一谱系数的装置,第一谱系数包括第一变换装置的产物;反向变换装置,用于将所述第一谱系数变换成一个或多个时域信号分量;第二变换装置,用于将所述一个或多个时域信号分量变换成多个第二谱系数,其中在相应的调制频率上,所述第二变换装置的调制正交于所述第一变换装置的调制,该解码器此外还包括用于对一个或多个所述第一谱系数与相应的第二谱系数结合起来进行处理的装置。
2.按照权利要求1所述的解码器,其中所述还原装置包括用于对所接收到的数据信号进行解码和去量化来还原出第一谱系数的装置,所述第一谱系数包括第一频率变换的产物;其中所述反向变换装置包括用于对所述第一谱系数进行一次或多次反向频率变换来产生所述时域信号分量的装置,其中第二变换装置包括用于对所述时域信号分量进行一次或多次第二正向频率变换来产生所述第二谱系数的装置,并且其中在相应的调制频率上,所述第一正向频率变换正交于所述第二正向频率变换。
3.按照权利要求2所述的解码器,其中所述第一谱系数包括临界采样的正向频率变换的输出,所述临界采样的正向频率变换在要进行变换的数据采样中采用50%的重叠。
4.按照权利要求2或3所述的解码器,其中所述第一正向频率变换和所述第二正向频率变换之一包括改进离散余弦变换(MDCT),另一个包括改进离散正弦变换(MDST)。
5.按照权利要求4所述的解码器,其中所述第一正向频率变换包括改进离散余弦变换(MDCT),所述反向频率变换包括反向改进离散余弦变换(IMDCT),并且所述第二正向频率变换包括改进离散正弦变换(MDST)。
6.按照权利要求2到5中任何一项所述的解码器,其中在所述一个或多个第二正向频率变换之前,对所述时域信号分量进行一次或多次加窗和重叠-相加运算。
7.按照权利要求6所述的解码器,此外还包括用于对所述第一谱系数进行延迟从而使各个第一谱系数与各自的相应第二谱系数同步的装置。
8.按照权利要求2到7中任何一项所述的解码器,此外还包括用于将混叠引入到所述第一谱系数中来产生混叠的第一谱系数的装置,所述一次或多次反向频率变换是对所述混叠的第一谱系数进行的。
9.按照权利要求8所述的解码器,此外还包括用于对所述第二谱系数进行混叠减少的装置。
10.按照权利要求8所述的解码器,此外还包括用于对所述第二谱系数和它们的相应的混叠的第一谱系数进行复数值混叠减少的装置,其中所述复数值混叠减少装置包括一个或多个设置成用于将复数值加权值应用于所述混叠的第一和相应的第二频率分量的抗混叠蝶形运算单元。
11.按照权利要求2到10中任何一项所述的解码器,其中各个第一谱系数和相应的第二谱系数一起构成复数值谱系数,该解码器此外该包括用于对所述复数值谱系数进行一次或多次复数值反向频率变换来产生多个数据采样的装置;用于将一种或多种类型的窗口函数应用于所述数据采样来产生多个加窗的数据采样的装置;和用于从所述加窗的数据采样构建输出信号的装置。
12.按照权利要求11所述的解码器,其中各个复数值谱系数集合是针对各个从所述接收到的数据信号中还原出来的第一谱系数的各个系数团产生的,并且其中,针对至少第一种类型的窗口函数,所述复数值反向频率变换装置设置成用于对各个集合的所有复数值谱系数进行单独一次反向频率变换。
13.按照权利要求11所述的编码器,其中所述输出信号构建装置对所述加窗的数据采样应用一次或多次重叠-相加运算,以产生所述输出信号。
14.按照权利要求11到13中任何一项所述的编码器,其中,针对至少所述第一种类型的窗口函数,所述窗口函数应用装置设置成用于针对各个复数值谱系数集合产生的所有数据采样应用单独一个窗口函数。
15.按照权利要求11到14中任何一项所述的编码器,其中,所述至少第一种类型的窗口函数包括长度经过调节的形式的MPEG-1层III类型0、类型1和类型3窗口函数。
16.按照权利要求11到15中任何一项所述的解码器,其中针对至少第二种类型的窗口函数,所述复数值反向频率变换装置设置成用于对各个复数值谱系数的子集进行相应的反向频率变换,集合的所有复数值频率分量都属于所述子集中的一个或另一个。
17.按照权利要求16中所述的解码器,针对至少所述第二种类型的窗口函数,所述窗口函数应用装置设置成用于对针对复数值谱系数的各个子集产生的所有数据采样应用单独一个窗口函数。
18.按照权利要求16或17所述的解码器,其中所述至少第二种类型的窗口函数包括长度经过调节的形式的MPEG-1层III类型2窗口函数,并且各个子集的复数值谱系数属于三个相应子集中一个或另一个。
19.按照权利要求11所述的解码器,其中使复数值谱系数的各个集合与各个频率子带相关联,并且其中,针对至少第一种类型的窗口函数,所述复数值反向频率变换装置设置成用于对复数值谱系数的各个集合进行相应的反向频率变换,并且,针对至少第二种类型的窗口函数,所述复数值反向频率变换装置设置成用于对复数值谱系数的各个子集进行相应的反向频率变换,集合的所有复数值频率分量属于所述子集中的一个或另一个子集。
20.按照权利要求19中所述的解码器,其中所述输出信号构建装置包括复指数调制的合成滤波器组,该合成滤波器组的实数值输出分量包括所述输出信号。
21.按照权利要求11到20中任何一项所述的解码器,其中所述复数值反向频率变换包括奇数频率调制的反向离散傅立叶变换(DFT)。
22.按照权利要求21中所述的解码器,其中所述复数值反向频率变换包括奇次奇频调制的反向离散傅立叶变换(O2DFT)。
23.按照权利要求11到22中任何一项所述的解码器,此外还包括用于按照说明书中的等式[5]和[6]调节复数值谱系数的相位的装置。
24.按照权利要求1中所述的解码器,其中所述反向变换装置包括合成子带滤波器组并且第二正向变换装置包括分析子带滤波器组。
25.按照权利要求24所述的解码器,其中所述第一变换装置包括分析滤波器组,所述第一和第二正向变换装置之一是余弦调制的,另一个是正弦调制的。
26.按照权利要求24或25所述的解码器,此外还包括复指数调制的合成滤波器组,该合成滤波器组设置成用于从所述第一和第二谱系数产生时域输出信号。
27.一种对数据信号进行解码的方法,该方法包括从接收到的信号中还原出多个第一谱系数,第一谱系数包括第一变换装置的产物;由反向变换装置将所述第一谱系数变换成一个或多个时域信号分量;由第二变换装置将所述一个或多个时域信号分量变换成多个第二谱系数,其中在相应的调制频率上,所述第二变换装置的调制正交于所述第一变换装置的调制,该方法此外还包括对一个或多个所述第一谱系数与相应的第二谱系数结合起来进行处理。
全文摘要
一种解码器,尤其但非专门,用于MPEG-1层III数据信号,其中将还原出来的谱系数变换成时域信号分量,然后使用相对于编码器中使用的正向变换正交调制的正向变换对时域信号分量进行变换,以产生一组第二谱系数。这样,可以将第一和第二谱系数用作便于后处理的复数值谱系数。按照优选实施方式,在经过后处理之后,使用奇数频率调制的离散傅立叶变换(DFT)将复数值频率分量变换到时域。
文档编号G10L19/26GK1914669SQ200580003343
公开日2007年2月14日 申请日期2005年1月13日 优先权日2004年1月28日
发明者E·G·P·舒杰斯 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1