反修正型离散余弦转换装置及方法

文档序号:6611639阅读:375来源:国知局

专利名称::反修正型离散余弦转换装置及方法
技术领域
:本发明关于压缩音频信号的重建,特别是有关于一种快速实现反修正型离散余弦转换装置及方法。
背景技术
:随着音频产品的普及化,加上数字音频便于数据传输、处理、与保存,且数据不易受环境干扰、或产生失真的问题,因此,较传统的模拟音频而言,数字音频数据已逐渐成为主流。一般而言,数字音频是通过转换模拟音频信号,例如取样或量化而得到。若以双声道的CD音质为例,以44.1kHz频率取样,16位量化,因此每秒钟约有1.411Mbps的数据量,除运算量相当庞大之外,对一首长度为5分钟的歌曲而言,若不经任何压缩,尚需要约50MByte的储存空间。因此,数字音频数据压缩已经变成音频产业中一项重要的技术。再者,由于用户对于声音质量的要求日趋提高,如此一来将更大幅增加数字化数据的运算量。因此,有效地减少庞大运算量、降低运算复杂度,且能够不影响译码还原后的压缩音频数据,并呈现良好的音频质量,成为势在必行的发展趋势。在数字音频数据压缩技术中,变换编码是普遍采用的一种方式。变换编码属频域编码,用以将信号从时域信号变换为频域信号,再针对频谱进行量化及编码,同时对音频进行有效的压缩。其中,修正型离散余弦转换(modifieddiscretecosinetransform,MDCT),因为具有消除块边界噪音的优点而得到广泛地应用,同时,反修正型离散余弦转换(inversemodifieddiscretecosinetransform,IMDCT),因为具有完全重建(perfectreconstruct)的特性,而成为普遍的重建转换方式。现有技术中,一种反修正型离散余弦转换的快速算法,利用离散余弦转换的DCT-IV(discretecosinetransform)加以实现,再使用快速傅立叶变换(fastFouriertransform,FFT)的架构来实现DCT-IV,用以有效地减少运算量。进一步地,于实现快速傅立叶变换的过程中,会需要进行一些旋转因子的运算(twiddlefactor),为提高运算效率,这些旋转因子通常以查表法(look-uptable)的方式取得,取得这些旋转因子后,再进行下一步的乘法与及加减法的运算,然后将运算结果存至存储器以供下次的运算。因此,整个转换过程中,不论是运算的进行,或是旋转因子的储存,皆需要消耗大量的存储器,也因此增加了系统架构的复杂度。有鉴于此,本发明提供一种适用于重建压缩音频信号的反修正型离散余弦转换装置及方法,能够有效率地减少运算量与所需存储器,进而降低整个系统的复杂度,并提高实用性能,达到维持良好音频质量与高效能的要求。
发明内容为解决上述问题,本发明揭示一种反修正型离散余弦转换装置,适用于压缩音频的重建。于一实施例中,该反修正型离散余弦转换装置包括一第一转换单元、一第一旋转因子产生单元、一快速傅立叶变换单元、一实部虚部处理单元、一第二转换单元、以及一迭加单元。该一第一转换单元,用以将一数列信号转换为一复变量列。该第一旋转因子产生单元,利用递归运算及部份查表的方式,用以产生一第一旋转因子数列。该快速傅立叶变换单元,耦接该第一旋转因子产生单元,用以对该复变量列进行快速傅立叶变换,以产生一中间数列。该实部虚部处理单元,接受该中间数列与一第二旋转因子数列的相乘结果,并取出该相乘结果的实部数列及虚部数列。该第二转换单元,接收该实部虚部处理单元的输出,并进行正负号调整及位移运算,以产生一还原数列。该迭加单元,将该还原数列与下一个还原数列进行重迭相加运算,以产生一输出信号。为解决上述问题,本发明进一步揭示一种反修正型离散余弦转换方法,适用于压缩音频信号的重建。于另一实施例中,该方法的步骤包括接收一数列信号,该数列信号包括复数个偶数数列数据,及复数个奇数数列数据;利用递归运算及部份查表的方式,用以产生一第一旋转因子数列;利用该数列信号的所述的偶数数列数据及所述的奇数数列数据组成一复变量列;将该复变数列与该第一旋转因子数列相乘后,再将上述结果进行快速傅立叶变换,以产生一第一中间数列;将该第一中间数列与一第二旋转因子数列相乘,以得到一第二中间数列;取出该第二中间数列的实部数列及虚部数列,分别代表一第三中间数列的偶数数列及奇数数列;位移该第三中间数列,以产生一第四中间数列;将该第四中间数列与一窗函数数列相乘以产生一还原数列,并将该还原数列与下一个还原数列进行重迭相加运算,以产生一输出信号。为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合附图,详细说明如下。图1为显示依据本发明实施例的反修正型离散余弦转换装置示意图;图2为显示依据本发明较佳实施例的迭加单元的迭加操作示意图;图3为显示依据本发明实施例的一对照表;及图4为显示依据本发明实施例的反修正型离散余弦转换方法流程图。附图标号10~反修正型离散余弦转换装置;102~第一转换单元;104~第一旋转因子产生单元;106~快速傅立叶变换单元;108~实部虚部处理单元;110~第二转换单元;112~迭加单元;及130、132~乘法器。具体实施例方式请参考图1,为显示依据本发明实施例的反修正型离散余弦转换装置10示意图,该系统10包括一第一转换单元102、一第一旋转因子产生单元104、一快速傅立叶变换单元106、一实部虚部处理单元108、一第二转换单元110、以及一迭加单元112。如图1所示,于一实施例中,该第一转换单元102,接收一数列信号X(k)后,将该数列信号X(k)转换为复数个偶数数列数据X2k、及复数个奇数数列数据XN-2k-1,用以代表一复变量列的实数部份及虚数部份,也即X2k+jXN-2k-1,其中,而N为正整数。接着,将该复变量列X2k+jXN-2k-1与一第一旋转因子数列相乘(乘法器130),以产生另一复变量列并传送至该快速傅立叶变换单元106。该第一旋转因子数列根据下式产生式(1)。上述第一旋转因子数列由该第一旋转因子产生单元104利用递归运算及部份查表的方式产生,以下将于图3针对产生的方式进一步地说明。请再参考图1,该快速傅立叶变换单元106,对该复变量列进行点的快速傅立叶变换,以产生一中间数列,表示为其中,而n=0,1,…,N-1。进一步,将该中间数列与一第二旋转因子数列相乘(乘法器132),并将相乘结果传送至该实部虚部处理单元108。其中,该第二旋转因子数列根据下式产生该实部虚部处理单元108,取出该相乘结果的实部部份及虚部部份,然后分别传送至该第二转换单元110,其中,该实部部份及该虚部部份,分别表示为g(2n)及g(N-2n-1)及上述两式,即是将离散余弦转换IV(DCT-IV)分解为偶数数数列(例如g(2n))及奇数数列(例如g(N-2n-1))的结果。因此,可以通过此分解结果,进一步地实现反修正型离散余弦转换。意即,当该第二转换单元110接收数列g(2n)及g(N-2n-1)后,对两者进行正负号调整及位移运算,以产生一数列y(n)之后,再将该数列y(n)与一窗函数数列h(n)相乘,以产生一还原数列z(n),并传送至该迭加单元112,其中,该窗函数数列h(n)为请参考图2,为显示依据本发明较佳实施例的迭加单元112的迭加操作示意图。如图2所示,当该迭加单元112接收该还原数列z(n)及下一个还原数列z(n+N)时,将该还原数列z(n)之后M笔数据,与该下一个还原数列z(n+N)之前M笔数据相加,用以产生一数列信号意即其中,z(n)来自于X(k)第一笔数据X(k1),而z(n+N)来自于X(k)第二笔数据X(k2)。同样地,当该迭加单元112接收一还原数列z(n+2N)时,便将z(n+N)之后M笔数据,与该还原数列z(n+2N)之前M笔数据执行迭加操作,以产生该数列信号值得一提的是,如图1所示,该反修正型离散余弦转换装置10的输入信号,即该数列信号X(k),为经处理的一压缩音频信号。于一实施例中,当该压缩音频信号为MP3(MPEGLayer-3)时,则该数列信号X(k),将该压缩音频信号,经由执行霍夫曼译码(Huffmandecoding)、反量化(de-quantization)、重新排序(reordering)、及消除虚拟信号(aliasreduction)等操作之后所产生。于其它实施例中,上述压缩音频信号,也可为其它类型的压缩音频信号,例如AAC(advancedaudiocoding)、WMA(WindowsMediaAudio)等。请参考图3,为显示依据本发明实施例的一对照表30,可预存于该第一旋转因子产生单元104(图1)的储存单元(未图标)中,或可预存于外部的储存单元(未图标)中,用以产生该第一旋转因子数列如前所述,于执行快速傅立叶变换过程中,需要一些旋转因子,而现有技术中,通常以查表的方式取得所述的旋转因子,因此往往浪费大量的储存空间。如图3所示,该对照表30,仅预存部份的k值,及所述的部份k值所对应的部份第一旋转因子(如式(1)所示),分别表示为余弦部份(cos)及正弦部份(sin)。因此,该第一旋转因子产生单元104利用该对照表30,查询出所述的部份第一旋转因子,之后,配合一既定的递归公式,用以计算出其它未列出的所述的k值所对应的其它第一旋转因子。于一实施例中,当N=512时,k=0,1,…,127,对照表30仅预存k=0,4,8,…,124等32组第一旋转因子,也即,节省了3/4的储存空间。于一实施例中,该既定的递归公式定义为cos(a+b)=cos(a-b)-2sina·sinb、及sin(a+b)=sin(a-b)+2cosa·sinb式(2)。参考式(1)所示的第一旋转因子数列当k=0时,该第一旋转因子的余弦部份为而正弦部份为将a-b定义为当次第一旋转因子所对应的角度值,即进一步,当k=1时,该第一旋转因子的余弦部份为而正弦部份为将a+b定义为下一个第一旋转因子所对应的角度值,即因此,而如图3所示,k=0时,该第一旋转因子的余弦值为A1(即cos(a-b)),正弦值为B1(即sin(a-b)),将A1、B1、a及b值分别代入式(2)中,即可计算出k=1的第一旋转因子。同样地,可利用式(2)及k=1的第一旋转因子,计算出k=2的第一旋转因子。当k=2时,该第一旋转因子的余弦部份为而正弦部份为如上述的定义,因此,而进一步,计算出及将k=1的第一旋转因子及a及b值分别代入式(2),以迭代运算出k=2的第一旋转因子,即及值。以此类推,由式(2)计算出k=2的第一旋转因子后,可利用式(1),定义a+b及a-b后,计算出k=3的第一旋转因子。请再参考图3,该对照表30提供k=4的第一旋转因子,其余弦及正弦部份各自为A2及B2。因此,当k=5时,由式(1)可知而k=4代入式(1),同样可得计算出及之后,将A2、B2、a及b值分别代入式(2),即可递归运算出k=5的第一旋转因子。综上所述,该第一旋转因子产生单元104(图1),利用式(2)递归运算及查询对照表30的方式,用以产生一第一旋转因子数列一方面可以大幅减少存储器的消耗,另一方面也可解决单纯利用该既定递归公式进行迭代运算时,所造成的累积误差(truncationanddiscretizationerror)的问题,从而改善迭代运算的精准度,还进一步减少重建压缩音频信号的失真。值得一提的是,该第二旋转因子数列可单纯利用递归公式计算而产生,或可单纯使用查表的方式取得,也可以利用上述递归运算及部份查表的方式产生。请参考图4,为显示依据本发明实施例的反修正型离散余弦转换方法流程图。首先,接收一数列信号,其中,该数列信号包括复数个偶数数列数据及复数个奇数数列数据,分别表示为X2k及XN-2k-1,N为正整数(步骤S302)。需注意该数列信号为经处理的一压缩音频信号,于一实施例中,当该压缩音频信号为MP3(MPEGLayer-3)时,则将该压缩音频信号执行霍夫曼译码(Huffmandecoding)、反量化(de-quantization)、重新排序(reordering)、及消除虚拟信号(aliasreduction),用以产生该数列信号。于其它实施例中,上述压缩音频信号也可为其它类型的压缩音频信号,例如AAC(advancedaudiocoding)、WMA(WindowsMediaAudio)等。接着,利用递归运算及部份查表的方式,用以产生一第一旋转因子数列其中,确认一对照表中是否预存完整的一第一旋转因子数列(步骤S304)。若该对照表仅预存该第一旋转因子数列的一部份,则利用一既定的递归公式,用以计算出其它未列出的该第一旋转因子(步骤S306)。关于递归运算及部份查表方法的内容,已详述于前文,因此在此不再赘述。之后,利用所述的偶数X2k及奇数数列数据XN-2k-1组成一复变数列Ek+jQk,并与该第一旋转因子数列相乘,以得到的结果,其中,Ek=X2k,Qk=XN-2k-1(步骤S308)。接着,再将上述结果进行点的快速傅立叶变换,用以产生一第一中间数列(步骤S310)。接下来,将该第一中间数列与一第二旋转因子数列相乘,以得到一第二中间数列,其中,n=0,1,…,N-1(步骤S312)。同时,取出该第二中间数列的实部数列及虚部数列,分别代表一第三中间数列g(n)的偶数数列及奇数数列(步骤S314)。进一步,位移该第三中间数列g(n),以产生一第四中间数列y(n),表示为(步骤S316)。再者,将该第四中间数列y(n)与一窗函数数列h(n)相乘,以产生一还原数列z(n)(步骤S318),其中,并将该还原数列z(n)与下一个还原数列z(n+N)进行重迭相加运算,以产生一输出信号(步骤S320)。值得注意的是,上述该第二旋转因子数列,可单纯利用递归公式计算而产生,或可单纯使用查表的方式取得,也可以利用上述递归运算及部份查表的方式产生。如前所述,本发明的装置与方法,能够有效地减少存储器的消耗,同时有效减少压缩音频重建的失真,达到维持良好音频质量与高效能的要求。虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何于此
技术领域
中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。权利要求1.一种反修正型离散余弦转换装置,适用于压缩音频的重建,其特征在于,该装置包括一第一转换单元,接收一数列信号,将该数列信号转换为复数个偶数数列数据X2k,及复数个奇数数列数据XN-2k-1,其中,N为正整数;一第一旋转因子产生单元,利用递归运算及部份查表的方式,以产生一第一旋转因子数列一快速傅立叶变换单元,耦接所述的第一旋转因子产生单元及所述的第一转换单元,接收所述的偶数数列数据X2k及所述的奇数数列数据XN-2k-1,以对一复变数列进行快速傅立叶变换,以产生一中间数列;一实部虚部处理单元,用以接受所述的中间数列与一第二旋转因子数列的相乘结果,并取出该相乘结果的实部数列及虚部数列;一第二转换单元,耦接所述的实部虚部处理单元,用以将该实部虚部处理单元的输出进行正负号调整及位移运算,并将运算结果与一窗函数数列h(n)相乘,以产生一还原数列z(n),其中,n=0,1,…,N-1;以及一迭加单元,将所述的还原数列z(n)与下一个还原数列z(n+N)进行重迭相加运算,以产生一输出信号。2.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的数列信号,为经处理的一压缩音频信号。3.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的快速傅立叶变换单元进行点的快速傅立叶变换。4.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的第一旋转因子产生单元根据以产生所述的第一旋转因子数列5.如权利要求4所述的反修正型离散余弦转换装置,其特征在于,该装置还包括一对照表,预存部份的k值及所述的部份k值所对应的部份值,以供所述的第一旋转因子产生单元使用。6.如权利要求5所述的反修正型离散余弦转换装置,其特征在于,所述的第一旋转因子产生单元利用查表所得所述的部份值,配合一既定的递归公式,以计算出其它未列出的所述的k值所对应的其它值。7.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的第二旋转因子数列根据而产生。8.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的第二转换单元利用所述的实部虚部处理单元的输出得到一数列g(n),并对该数列g(n)进行正负号调整及位移运算,用以产生一数列y(n),其中,9.如权利要求1所述的反修正型离散余弦转换装置,其特征在于,所述的窗函数数列h(n)为10.一种反修正型离散余弦转换方法,适用于压缩音频信号的重建,其特征在于,该方法包括下列步骤接收一数列信号,该数列信号包括复数个偶数数列数据X2k,及复数个奇数数列数据XN-2k-1,其中,N为正整数;利用递归运算及部份查表的方式,用以产生一第一旋转因子数列将一复变数列Ek+jQk与所述的第一旋转因子数列相乘,以得到的结果,再将上述结果进行快速傅立叶变换,用以产生一第一中间数列,其中,Ek=X2k,Qk=XN-2k-1;将所述的第一中间数列与一第二旋转因子数列相乘,以得到一第二中间数列,其中,n=0,1,…,N-1;取出所述的第二中间数列的实部数列及虚部数列,分别代表一第三中间数列g(n)的偶数数列及奇数数列;位移所述的第三中间数列g(n),以产生一第四中间数列y(n),其中,以及将所述的第四中间数列y(n)与一窗函数数列h(n)相乘以产生一还原数列z(n),并将该还原数列z(n)与下一个还原数列z(n+N)进行重迭相加运算,以产生一输出信号。11.如权利要求10所述的反修正型离散余弦转换方法,其特征在于,所述的数列信号,为经处理的一压缩音频信号。12.如权利要求10所述的反修正型离散余弦转换方法,其特征在于,将进行点的快速傅立叶变换,以产生所述的中间数列。13.如权利要求10所述的反修正型离散余弦转换方法,其特征在于,所述的第一旋转因子数列是根据下式产生14.如权利要求10所述的反修正型离散余弦转换方法,其特征在于,所述的第二旋转因子数列是根据下式产生15.如权利要求13所述的反修正型离散余弦转换方法,其特征在于,该方法还包括,利用一对照表所预存部份的k值及所述的部份k值所对应的部份值,配合一既定的递归公式,以计算出其它未列出的所述的k值所对应的其它值。16.如权利要求10所述的反修正型离散余弦转换方法,其特征在于,所述的窗函数数列h(n)为全文摘要本发明揭示一种反修正型离散余弦转换装置及方法,适用于压缩音频信号的重建,该装置包括一第一转换单元,接收一数列信号,并转换为一复变数列;一第一旋转因子产生单元,利用递归运算及部份查表的方式,以产生一第一旋转因子数列;一快速傅立叶变换单元,耦接该第一旋转因子产生单元,以对该复变量列进行快速傅立叶变换,用以产生一中间数列;一实部虚部处理单元,接受该中间数列与一第二旋转因子数列的相乘结果,并取出该相乘结果的实部数列及虚部数列;一第二转换单元,接收该实部虚部处理单元的输出,以产生一还原数列;以及一迭加单元,将该还原数列与下一个还原数列进行重迭相加运算,以产生一输出信号。文档编号G06F17/15GK101369426SQ20071014188公开日2009年2月18日申请日期2007年8月15日优先权日2007年8月15日发明者林慕生申请人:扬智科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1