CN101540172B - 一种音频数据的编解码系统及方法 - Google Patents

一种音频数据的编解码系统及方法 Download PDF

Info

Publication number
CN101540172B
CN101540172B CN2009101336729A CN200910133672A CN101540172B CN 101540172 B CN101540172 B CN 101540172B CN 2009101336729 A CN2009101336729 A CN 2009101336729A CN 200910133672 A CN200910133672 A CN 200910133672A CN 101540172 B CN101540172 B CN 101540172B
Authority
CN
China
Prior art keywords
voice data
discrete cosine
result
cosine transform
multiplexing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009101336729A
Other languages
English (en)
Other versions
CN101540172A (zh
Inventor
朱俊锋
孙大鹏
李敏杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN2009101336729A priority Critical patent/CN101540172B/zh
Publication of CN101540172A publication Critical patent/CN101540172A/zh
Application granted granted Critical
Publication of CN101540172B publication Critical patent/CN101540172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开一种音频数据的编解码系统及方法,包括:A、判断输入的音频数据进行MDCT还是IMDCT,如果进行MDCT,转入步骤B;如果进行IMDCT,音频数据为要进行复用计算的音频数据,转入步骤C;B、对音频数据进行MDCT前处理后,得到要进行复用计算的音频数据,转入步骤C;C、对要进行复用计算的音频数据进行复用计算,如果音频数据进行MDCT,则将该复用计算结果作为所述音频数据进行MDCT后的结果;如果音频数据进行IMDCT,则将该复用计算结果进行IMDCT后处理,然后再作为音频数据进行IMDCT后的结果。从而实现了音频数据进行MDCT与IMDCT的可复用。

Description

一种音频数据的编解码系统及方法
技术领域
本发明涉及对音频数据的处理技术,特别涉及一种音频数据的编解码系统及方法。
背景技术
目前,对音频数据进行传输或存储时,为了减少传输或存储的音频数据所占的容量,需要对音频数据进行编解码,达到压缩音频数据的效果。其中,改良的离散余弦变化(MDCT,Modified Discrete Cosine Transform)就是一种对音频数据进行编码的硬件实现方式,反向改良的离散余弦变化(IMDCT,Inverse Modified Discrete Cosine Transform)就是一种对音频数据进行解码的硬件实现方式。
MDCT就是利用离散余弦变化(DCT,Discrete Cosine Transform)的能量聚集性,将音频数据能量聚集到少数变化系数上,从而提高压缩音频数据的效果。但是,DCT本身的实现是需要额外运算和时间的,因此,有效地硬件系统实现必然要求降低变化实现的复杂度,即寻求速度快、功耗低及面积小的硬件系统实现方法。从运算量来看,硬件运算量较小时,硬件速度必然快,功耗势必下降,而硬件芯片的面积,随着硬件复用程度的增加而变小。
对于现有的一套通用的音频数据编解码方法,其中,涉及到DCT的模块主要是编码中用到的MDCT模块和解码中用到的IMDCT模块。MDCT的表达式如公式(1)所示:
y ( n ) = Σ k = 0 N - 1 X ( k ) · Φ n , k = Σ k = 0 N - 1 X ( k ) · cos { 2 π N · ( n + 1 2 ) · ( k + N + 2 4 ) } , n = 0 ~ N 2 - 1 公式(1)
IMDCT的表达式如公式(2)所示:
X ( k ) = Σ n = 0 N / 2 - 1 y ( n ) · Φ n , k = Σ n = 0 N / 2 - 1 y ( n ) · cos { 2 π N · ( n + 1 2 ) · ( k + N + 2 4 ) } , k = 0 ~ N - 1 公式(2)
其中,X(k)表示运算点数为K的输入音频数据,N为输入音频数据的长度,y(n)表示经过编码后得到的音频数据。
当采用的DCT进行音频数据编解码的音频数据为长块时,N为36,当为短块时,N为12。
图1为现有技术采用MDCT对音频数据进行编码的方法流程图,其具体步骤为:
步骤101、提供音频数据,其长度为N;
步骤102、根据音频数据计算得到中间信号,主要的原理是利用了Φn,k的三角函数对称性,在其硬件电路中,计算公式为公式(3):
XX ( k ) = X ( N / 4 + k ) - X ( N / 4 - k - 1 ) XX ( N / 4 + k ) = X ( N / 2 + k ) + X ( N - k - 1 ) , k = 0 ~ N / 4 - 1 公式(3)
其中,X是长度为N的音频数据,XX是中间计算信号;k是运转指数;
步骤103、根据中间信号计算MDCT,采用的计算公式为公式(4):
y ( n ) = Σ k = 0 N / 2 - 1 XX ( k ) * Φ n , k , n = 0 ~ N / 2 - 1 公式(4)
其中,当本步骤采用硬件实现时,将耗用N2/4个乘法,当N为36时,其乘法运算量将为324;
步骤104、输出通过MDCT后得到的经过编码的音频数据。
图1这种硬件实现对音频数据的编码直接采用了乘累加的方法,优点在于结构比较简单,即直接设置乘累加模块就可以实现,但其缺点是乘法运算量很大。ISO MPEC提供的原始算法的乘法运算量为648(N为36,采用公式(1))计算,采用图1的方法可以使运算量减少到324,但MDCT的运算量依然巨大,最终导致硬件化后硬件系统功耗很高,硬件模块的性能不佳。另外,依据图1构造的硬件模块只能实现MDCT,而不能实现IMDCT,如果需要在芯片上实现IMDCT,还需要额外增加一套硬件模块,这样就增加了硬件系统的电路面积,提高了硬件系统设计的难度和成本。
发明内容
由鉴于此,本发明提供一种音频数据的编解码系统,能够实现音频数据进行MDCT与IMDCT的可复用。
本发明还提供一种音频数据的编解码方法,能够能够实现音频数据进行MDCT与IMDCT的可复用。
为达到上述目的,本发明实施例的技术方案具体是这样实现的:
一种音频数据的编解码系统,包括:主控制器,用于驱动信号控制装置生成控制信号;信号控制装置,用于在所述主控制器的驱动下,生成所述控制信号并输出给信号处理装置;信号处理装置,用于根据所述控制信号,对所述音频数据进行改良的离散余弦变换前处理,再进行复用计算并输出结果;或者对所述音频数据进行复用计算,再进行反向改良的离散余弦变换后处理并输出结果。
一种音频数据的编解码方法,包括:A、判断所述音频数据要进行改良的离散余弦变化还是反向改良的离散余弦变化,如果要进行改良的离散余弦变换,转入步骤B;如果要进行反向改良的离散余弦变换,则对所述音频数据进行处理,得到要进行复用计算的音频数据,转入步骤C;B、对所述音频数据进行改良的离散余弦变换前处理,得到要进行复用计算的音频数据,转入步骤C;C、对所述要进行复用计算的音频数据进行复用计算,得到复用计算结果,如果所述音频数据要进行改良的离散余弦变换,则将该复用计算结果作为所述音频数据进行改良的离散余弦变换后的结果输出;如果所述音频数据要进行反向改良的离散余弦变换,则将该复用计算结果进行反向改良的离散余弦变换后处理,然后再作为所述音频数据进行反向改良的离散余弦变换后的结果输出。
由上述技术方案可见,本发明提供的方法及系统,将要进行MDCT的输入音频数据转换为可以采用本发明提供的复用计算的音频数据后,即进行MDCT前处理后,进行复用计算输出;或者将要进行IMDCT的输入音频数据进行复用计算后,再进行IMDCT后处理输出。由于经过转换的要进行MDCT的输入音频数据和要进行IMDCT的输入音频数据都可以采用复用计算,所以可以采用相同的硬件模块同时实现音频数据的MDCT或IMDCT。进行MDCT前处理或IMDCT后处理虽然采用了不同的加减算法,但可以设置相同的加减硬件模块实现,实现了音频数据进行MDCT与IMDCT的可复用。另外,本发明在实现音频数据的MDCT或IMDCT过程中,MDCT前处理或IMDCT后处理简单,均为加法运算;复用计算共用主要的信号处理装置,且该单元的结构简单,运算量小,降低了音频数据编解码系统的功耗。
附图说明
图1为现有技术采用MDCT对音频数据进行编码的方法流程图;
图2为本发明提供的音频数据的编解码系统示意图;
图3为本发明提供的信号控制装置结构示意图;
图4为本发明提供的一种音频数据的编解码方法流程图;
图5为本发明提供的一种音频数据的编解码方法实施例流程图;
图6为本发明提供的信号处理装置的结构示意图;
图7为本发明对音频数据进行MDCT的工作示意图;
图8为本发明将一组9点运算结果更改为5点运算结果和4点运算结果的实现示意图;
图9为本发明根据2组运算点数为9的音频数据的DCT结果,进行运算点数为18的音频数据的DCT计算的实现示意图;
图10为本发明对经过复用计算的音频数据进行IMDCT后处理的操作示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
图2为本发明提供的音频数据的编解码系统示意图,该系统包括:主控制器、信号控制装置及信号处理装置,其中,
主控制器,用于驱动信号控制装置生成所述控制信号;
信号控制装置,用于在主控制器的驱动下,生成运算控制信号给信号处理装置;
信号处理装置,用于根据从信号控制装置接收的运算控制信号,对存储器中的输入音频数据进行MDCT前处理后再进行复用计算输出结果;或者对存储器中的输入音频数据进行复用计算后再进行IMDCT后处理输出结果。
在该系统中,还可以包括寄存装置,用于为信号控制装置提供输入音频数据的状态信息,输入音频数据的状态信息至少包括要进行IMDCT还是MDCT的信息,及块类型;信号控制装置,还用于根据寄存器提供的输入音频数据状态信息,生成运算控制信号。
当然,主控制器也对寄存装置进行驱动。
在本实施例中,输入的音频数据可以存储在外部存储器中,比如随机存储器(RAM,random access memory)中,输出的经过IMDCT或MDCT后的音频数据也可以存储在RAM中。
在本实施例中,信号控制装置在逻辑上分,可以分为MDCT前处理逻辑控制电路、复用计算逻辑控制电路及IMDCT后处理逻辑控制电路。其中,当输入的音频数据需要进行MDCT时,则需要采用MDCT前处理逻辑电路生成进行MDCT前处理的运算控制信号,使信号处理装置对输入音频数据进行MDCT前处理,然后再由复用计算逻辑控制电路生成复用运算控制信号,使信号处理装置对经过MDCT前处理的输入音频数据进行复用计算输出;当输入的音频数据需要进行IMDCT时,由复用计算逻辑控制电路生成复用运算控制信号,使信号处理装置对输入音频数据进行复用计算后,再由IMDCT后处理逻辑控制电路生成进行IMDCT后处理的运算控制信号,使信号处理装置对经过复用计算的输入音频数据进行IMDCT后处理并输出。
无论信号控制装置采用哪一种逻辑控制电路,在生成运算控制信号时,实际上就是生成包括加/减控制信号、乘/乘加控制信号、信号处理装置寄存器控制信号及音频数据的读写信号的至少一种或多种组合。
图3为本发明提供的信号控制装置的结构示意图,包括:主控制状态转换单元、状态判断单元、系数产生模块、控制信号产生单元、系数产生模块及计数单元,其中,
计数单元,用于向主控制状态转换单元发送计数信号,并对输入音频数据的IMDCT/MDCT过程进行计时;
主控制状态转换单元,用于接收状态判断单元发送的判断结果,并根据判断结果控制控制信号产生单元产生运算控制信号;
状态判断单元,用于根据寄存装置存储的输入音频数据状态信息进行输入音频数据的状态判断,并将得到判断结果发送给主控制状态转换单元;
控制信号产生单元,用于在主控制状态转换单元的驱动下,生成运算控制信号发送给信号处理装置,以及驱动系数产生单元产生系数,并发送给所述信号处理装置;
系数产生单元,用于在所述控制信号产生单元的驱动下产生系数,并发送给所述信号处理装置。
在该实施例中,信号处理装置根据接收到的运算控制信号及系数产生单元产生系数对输入的音频数据进行IMDCT或MDCT。
在该实施例中,状态判断单元包括长短块判断子单元、颗粒和子带判断子单元以及通道判断子单元,其中,
长短块判断子单元,用于根据寄存装置存储的输入音频数据状态信息判断输入的音频数据的长短块类型;
颗粒和子带判断子单元,用于根据寄存装置存储的输入音频数据状态信息判断输入的音频数据所在的颗粒或子带,在本发明中,将一帧输入音频数据分为2个颗粒,每个颗粒分成2个通道,每个通道下有若干个子带,每个子带中按照输入音频数据的长短块类型分为18运算点数或3组6点运算点数的输入音频数据;
通道判断子单元,用于根据寄存装置存储的输入音频数据状态信息判断输入的每一帧音频数据所在的通道。
图4为本发明提供的一种音频数据的编解码方法流程图,其具体步骤为:
步骤401、接收输入的音频数据;
步骤402、判断所接收的音频数据需要进行IMDCT还是进行MDCT,如果是MDCT,则执行步骤403;如果要进行IMDCT,则执行步骤404;
在本步骤中,寄存装置对应输入的音频数据存储其状态信息,该状态信息表明要进行IMDCT还是进行MDCT;
步骤403、对该音频数据进行MDCT前处理,对经过MDCT前处理的该音频数据进行复用计算后输出;
步骤404、对该音频数据进行复用计算后,再进行IMDCT后处理后输出。
对于输入的音频数据来说,其有长短块类型之分,所以在进行复用计算时,采用的公式并不相同,所以需要对音频输入数据的长短块类型进行判断,如图5所示,图5为本发明提供的一种音频数据的编解码方法实施例流程图,其具体步骤为:
步骤501、对接收的输入音频数据进行编解码类型判断,如果进行MDCT,则执行步骤502;如果进行IMDCT,则执行步骤503;
步骤502、对输入音频数据进行MDCT前处理,执行步骤503;
步骤503、信号控制装置中的复用计算逻辑控制电路对步骤501接收的输入音频数据或步骤502中进行MDCT前处理后的输入音频数据开始进行复用计算;
在本步骤中,将进行复用计算处理的输入音频数据统称为该音频数据;
步骤504、对该音频数据计算一组DCT;
在本步骤中,该音频数据可以分为2组运算点数为9的音频数据(在块类型为长块时),也可以分为3组点数为6的音频数据(在块类型为短块时),计算一组DCT就是计算一组运算点数为9的音频数据或一组运算点数为3的音频数据;
步骤505、判断该音频数据的块类型,如果是长块,转入步骤506,如果是短块,转入步骤509;
步骤506、对该音频数据计算第二组DCT;
在该步骤中,计算第二组DCT就是计算第二组运算点数为9的音频数据;
步骤507、是否对该音频数据进行了两组DCT计算,如果是,执行步骤508;如果否,转入步骤504执行;
步骤508、对DCT计算得到的结果进行运算点数为18的所述音频数据的DCT计算,得到结果后,转入步骤510;
步骤509、是否对该音频数据进行了两组DCT计算,如果是,执行步骤508;如果否,转入步骤504执行;
步骤510、对接收的输入音频数据进行块类型判断,如果是长块,执行步骤512;如果是短块,执行步骤511;
步骤511、是否对该音频数据进行了三组DCT计算,如果否,执行步骤504;如果是,则执行步骤512;
步骤512~514、判断输入的音频数据编解码类型,如果是MDCT,则将步骤508得到的结果直接直接输出;如果是IMDCT,则将步骤508得到的结果进行IMDCT后处理后输出。
从上述可以得知,信号处理装置根据信号控制装置发送的运算控制信号和系数产生模块产生系数进行运算。图6为本发明提供的信号处理装置的结构示意图,信号处理装置实际上是由随机存储器、存储器、寄存器、乘法器以及加/减法器组成并进行运算,如图6所示,信号处理装置具体包括:
RAM020、RAM021、寄存器022、寄存器023、乘法器024、寄存器025、选择器027、选择器026、加/减法器028及寄存器029,用于通过加减法以及乘法运算完成输入音频数据的IMDCT或MDCT。
输入音频数据在进行MDCT或IMDCT之前,将被存放在RAM020中,RAM020在整个IMDCT或MDCT过程中,RAM020也用于存储中间结果。系数产生单元产生的系数存储在RAM021中。乘法器024主要在整个IMDCT或MDCT过程中完成乘法运算:从RAM020中读出的音频数据暂存在寄存器022中,从RAM021中读出的系数暂存在寄存器023中,然后寄存器022中暂存的音频数据和寄存器023暂存的系数被发送到乘法器024中进行乘法运算,再将乘法运算结果暂存在寄存器025中。加/减法器028有2个输入端A、B,其中,A端与选择器026相连,B端与选择器027相连。寄存器029与寄存器022的输出分别为选择器026的两个输入,寄存器025与寄存器022的输出分别为选择器027的两个输入,寄存器029的输出为加/减法器028的运算结果。这样,加/减法器028就能完成以下几种情况的加减法混合运算:1、RAM 020存储的音频数据的加法或减法运算,RAM 020中的音频数据经过寄存器022分别进入选择器026与选择器027,然后进入加/减法器028完成加/减法运算;2、乘累加运算,第一次乘法器024的乘法运算结果将通过选择器027进入加/减法器028,然后暂存在寄存器029中,以便为选择器026提供输入数据;第二次乘法器024的乘法运算结果将通过选择器027进入加/减法器028的B端,暂存在寄存器029中的乘法运算结果将通过选择器026进入加/减法器028,第一次乘法运算结果和第二次乘法运算结果进行加/减运算后,得到的结果将暂存在寄存器029中,以便为选择器026提供输入数据,乘累加的过程将一直循环,直至乘累加结束。
以下具体说明本发明是怎样对输入的音频数据进行MDCT或IMDCT的。
信号控制装置中的状态判断单元判断输入的音频数据是要进行MDCT还是进行IMDCT,如果需要进行MDCT,则在寄存装置中的寄存器F中对应该音频数据存储表示要进行MDCT的标识,如0;如果需要进行IMDCT,则在寄存器F中对应该音频数据存储表示要进行IMDCT的标识,如1。寄存器F是寄存装置中的用于存储输入的音频数据是要进行MDCT还是进行IMDCT信息的寄存器,其中存储的要进行MDCT或进行IMDCT的标识在后续对该音频数据的处理过程中还会用到。
根据寄存器F对应该音频数据存储的标识判断是否要对该音频数据进行MDCT前处理。由于进行MDCT和进行IMDCT的音频数据的结构形式不一样,所以为了能够对该音频数据进行复用计算,需要对要进行MDCT的音频数据进行MDCT前处理,处理后的结构形式和要进行IMDCT的音频数据的结构形式相同。如果寄存器F对应该音频数据存储的标识为1,则不需要进行MDCT前处理,如果为0,则要进行MDCT前处理。这时,由信号控制装置的MDCT前处理逻辑控制电路控制信号处理装置完成。具体地,MDCT前处理逻辑控制电路控制运算处理模块将该音频数据按照式(5)进行加减法运算。
X ( k ) = a ( k - 9 ) - a ( 26 - k ) , k = 9 ~ 17 X ( k ) = - a ( 27 + k ) - a ( 26 - k ) , k = 0 ~ 8 - - - ( 5 )
其中,k表示运算点数,对于该音频数据进行MDCT时,一共有36个输入点,经过MDCT前处理后就成为了18个运算点数的所述音频数据。
图7为对音频数据进行MDCT的工作示意图,其中,a0~a35表示输入的音频数据,X0~X17表示经过MDCT前处理之后的输出结果。以运算点数k为1为例,首先信号处理装置从RAM 020中取出第28个输入的第28个音频数据和第25个音频数据,分别通过寄存器022送到选择器026和选择器027中,然后进入加/减法器028的A、B端完成加/减法运算后暂存在寄存器029中,最后将运算结果存储在RAM 020中。其他的运算点数按照公式(5)采用上述方式进行计算即可。
对该音频数据进行MDCT前处理后,就可以由信号控制装置的复用计算逻辑控制电路进行复用计算,该音频数据进行MDCT前处理后或者要进行的IMDCT的音频数据的结构一样,都是具有18个运算点的音频数据,因此,对这两种音频数据的复用计算也相同,这样,就实现了对音频数据的MDCT与IMDCT功能的可复用,从而减小了音频数据编解码系统的硬件电路面积,降低了电路功耗。
复用计算的具体过程以下进行详细说明。
由信号控制装置中的状态判断单元判断进行了MDCT前处理后的该音频数据或要进行IMDCT的该音频数据的块类型,如果是长块,则在寄存装置中的寄存器W中对应该音频数据存储表示为长块的标识,如1;如果为短块,则寄存器W中对应该音频数据存储表示为短块的标识,如0;寄存器W是寄存装置中的用于对应音频数据存储该音频数据的块类型的寄存器,其中对应该音频数据存储的块类型在后续对该音频数据的处理过程中还会用到。
如果音频数据的块类型为长块,则对音频数据进行长块数据重构,重构采用信号处理装置中的加/减法器028进行加减运算,将18个点运算的音频数据重构为两组9个点运算的音频数据,将这两组9个点运算的音频数据存储在信号处理装置中的RAM020中,在对音频数据进行长块数据重构过程中,需要满足如下公式:
X(k)=X(k)+X(k-1);k=1~N/2-1    (6)
P(k)=X(2k);k=0~N/4-1    (7)
Q(k)=X(2k+1)+X(2k-1);Q(0)=X(1);k=1~N/4-1    (8)
其中,当该音频数据的块类型为长块时,N为36,X(k)为输入的18个点运算,P(k)、Q(k)为重构后得到的2组9点运算的音频数据。在采用硬件实现时,公式(6)、公式(7)和公式(8)只涉及到加法运算,采用加/减法器028就可以实现。
以(6)式中的一个点运算为例,其主要操作如下:将存放在RAM 020中的18个运算点的音频数据中的一个运算点读取出来,存放进寄存器022,再通过选择器026到达加/减法器028的A端口;然后从RAM 020中读取小于并临近该运算点的另一个运算点读取出来,存放进寄存器022,然后通过选择器027到达加/减法器028的B端口,完成加法运算后经过寄存器029保存至RAM 020,(7)式实现只需从RAM 020中获取对应的运算点即可;(8)式的实现与(6)式的实现相同;在这个运算过程中,得到的结果为(7)式得到的P(k),另一组为(8)式得到的Q(k)。每组9点运算的音频数据将分为5点运算和4点运算,以其中一组为例,5点运算、4点运算及9点运算的表达式分别为:
pg ( n ) = Σ k = 0 4 P ( 2 k ) * cos ( 2 n + 1 ) kπ 9 , n = 0 ~ 4 - - - ( 9 )
ph ( n ) = Σ k = 0 3 P ( 2 k + 1 ) * cos ( 2 n + 1 ) ( 2 k + 1 ) π 18 , n = 0 ~ 3 - - - ( 10 )
p ( n ) = Σ k = 0 9 - 1 P ( k ) * cos ( 2 n + 1 ) kπ 18 - - - ( 11 )
其中,P(k)为(7)式得到的结果,pg(n)为5点运算结果,ph(n)为4点运算结果,p(n)为9点运算结果。为了方便硬件实现,(9)式与(10)式的硬件实现采用乘累加的方式得到。
以(9)式中的一个运算点为例,其主要操作如下:将存放在RAM 020中的一个运算点读取出来,存放进寄存器022,将存放在系数RAM 021中的对应系数读取出来,存放进寄存器023。寄存器022与寄存器023中的值进入乘法器024之后的结果存放在寄存器025中,然后通过选择器027到达加/减法器028的B端,最后通过寄存器029、选择器026反馈到加/减法器028的A端口。另一方面,第二个运算点与系数将从RAM 020与系数RAM 021中取出到寄存器022与寄存器023,然后进入乘法器024,乘积的结果将通过选择器027到达加/减法器028的B端口,与在A端口的数据完成加减法运算。然后重复上面的过程,直到运算结束。当完成运算后,运算结果将保存回RAM020。得到的5点DCT与4点的运算结果后,9点运算结果必须满足如下关系:
p ( n ) = pg ( n ) + ph ( n ) ; p ( 4 ) = pg ( 4 ) ; p ( 8 - n ) = pg ( n ) - ph ( n ) ; , n = 0 ~ 3 - - - ( 12 )
其式(12)的示意图如图8所示。
按照(12)式分别对两组9点运算的音频数据进行DCT计算后,得到2组运算点数为9的音频数据的DCT结果。再根据2组运算点数为9的音频数据的DCT结果,进行运算点数为18的音频数据的DCT计算,得到运算点数为18的音频数据的DCT结果。如果音频数据要进行MDCT,则这就是最后的结果;如果音频数据要进行IMDCT,则还需要进行IMDCT后处理过程后才得到最后的结果。根据2组运算点数为9的音频数据的DCT结果,进行运算点数为18的音频数据的DCT计算过程为:在RAM 020中读取2组9点运算的各一个结果,通过加/减法器028作加/减法运算,运算结果通过寄存器022送到乘法器024的一端,同时将对应系数从RAM 021读取出来,通过寄存器023送到乘法器024的另一端。经过乘法器024后的结果保存回RAM 020。进行运算点数为18的音频数据的DCT计算满足如下关系:
g ( n ) = [ p ( n ) + 1 2 cos ( 2 n + 1 ) π 36 * q ( n ) ] * 1 2 cos ( 2 n + 1 ) π 72 g ( 17 - n ) = [ p ( n ) - 1 2 cos ( 2 + 1 ) π 36 * q ( n ) ] * 1 2 cos ( 35 - 2 n ) π 72 , n = 0 ~ 8 - - - ( 13 )
其中p(n)、q(n)分别为2组9点运算结果。最终输出结果为g(0)到g(17)共18个运算点数,如图9所示,图9为本发明根据2组运算点数为9的音频数据的DCT结果,进行运算点数为18的音频数据的DCT计算的实现示意图。
如果该音频数据的块类型为短块,则将得到的运算点数为18的所述音频数据分为3组,每组6个运算点数,对每组6个运算点数的音频数据进行短块数据重构,通过重构6个运算点的音频数据,得到每组3个点的2组该音频数据,这2组音频数据作为复用计算的输入,被存放在RAM020中,在进行短块数据的重构过程中,满足:
X1(k)=X(3C+k)+X(3C+k-1);k=1~N/2-1    (14)
P(k)=X1(2k);k=0~N/4-1    (15)
Q(k)=X1(2k+1)+X1(2k-1);Q(0)=X1(1);k=1~N/4-1    (16)
其中,当该音频数据的块类型为短块时,N=12,C为循环计算的次数,X(k)为输入的6个点音频数据,P(k)、Q(k)为重构后得到的2组3点运算。在硬件实现时,上面3式均只涉及到加法运算。
以(14)式中的一个运算点为例,其主要操作为:将存放在RAM 020中的运算点读取出来,存放进寄存器022,再通过选择器026到达加/减法器028的A端口;然后从RAM 020中读取另一个相应的运算点,存放进寄存器023,然后通过选择器027到达加/减法器028的B端口,完成加法运算后经过寄存器029保存至RAM 020。(15)式实现只需从RAM 020中获取对应的运算点即可;(16)式的实现与(14)式的实现相同。
在进行该音频数据的短块数据重构后,对每组3个运算点的音频数据进行DCT计算,分别得到2组3点的DCT结果,表达式为:
p(0)=P(0)+P(1)*0.866025+P(2)*0.5;
p(1)=P(0)-P(2);
p(2)=P(0)-P(1)*0.866025+P(2)*0.5;    (17)
q(0)=Q(0)+Q(1)*0.866025+Q(2)*0.5;
q(1)=Q(0)-Q(2);
q(2)=Q(0)-Q(1)*0.866025+Q(2)*0.5;    (18)
其中,P(k)为(15)式得到的结果,Q(k)为(16)式得到的结果,p(0)、p(1)、p(2)与q(0)、q(1)、q(2)分别为2组3点DCT的运算结果。为了方便硬件实现,(17)式与(18)式的硬件实现采用乘累加的方式得到。
根据(17)式得到的3个运算点的音频数据DCT结果和(18)式得到的3个运算点的音频数据DCT结果进行DCT计算,得到6个运算点的音频数据DCT结构,信号处理装置的主要操作过程为:在RAM 020中读取2组3点DCT的各一个DCT结果,通过加/减法器028作加/减法运算,结果通过寄存器022送到乘法器024的一端,同时将相应系数从系数RAM 021读取出来,通过寄存器023送到乘法器024的另一端。经过乘法器024后的结果保存回RAM020。根据(17)式得到的3个运算点的音频数据DCT结果和(18)式得到的3个运算点的音频数据DCT结果进行DCT计算满足如下关系:
g ( n ) = [ p ( n ) + 1 2 cos ( 2 n + 1 ) π 12 * q ( n ) ] * 1 2 cos ( 2 n + 1 ) π 24 g ( 5 - n ) = [ p ( n ) - 1 2 cos ( 2 n + 1 ) π 12 * q ( n ) ] * 1 2 cos ( 11 - 2 n ) π 24 , n = 0 ~ 2 - - - ( 19 )
其中p(n)、q(n)分别为2组3点DCT的结果。最终输出结果为g(0)到g(5)共6个运算点数的音频数据的DCT值。
由于在进行MDCT前处理或要进行IMDCT的音频数据一般为18个运算点的音频数据,按照短块的复用计算处理,根据ISO11172-3的规定,需要循环3次,才能将分为3组的6个运算点数的音频数据处理完,将循环了3次得到的3组g(0)到g(5)作为短块的复用计算结果输出。
对经过MDCT前处理的音频数据或要进行IMDCT处理的音频数据进行了复用处理后,对于经过MDCT前处理的音频数据来说,就可以直接输出了,对于要进行IMDCT处理的音频数据来说,还需要进行IMDCT后处理后才能得到最终结果,以下详细介绍如何对要进行IMDCT处理的音频数据再进行复用计算后,再进行IMDCT后处理过程。
信号控制装置中的状态判断单元根据寄存器F中对应音频数据存储的标识判断是否需要进行IMDCT后处理:音频数据经过复用计算,保存在RAM 020中的值有18个运算点数的音频数据的DCT结果,如果寄存器F存储对应音频数据的标识为“0”,则表示RAM 020中的18个运算点数的音频数据的DCT结果为音频数据的MDCT输出结果;如果寄存器F的值为“1”,则保存在RAM 020中的值有18个运算点数的音频数据的DCT结果还需要进行IMDCT后处理,才能得到音频数据IMDCT的最后输出结果,其关系式如下:
X ( n ) = g ( n + N 4 ) X ( N 2 - n - 1 ) = - g ( n + N 4 ) X ( 3 N 4 - n - 1 ) = - g ( n ) X ( 3 N 4 + n ) = - g ( n ) , n = 0 ~ N 4 - 1 - - - ( 20 )
其中,g(n)为复用计算结果;X(n)为音频数据IMDCT的最后输出结果。IMDCT后处理的操作可用图10进行说明:将复用计算结果保存在RAM 020中且等分成2部分,分别用A、B表示,进行IMDCT后处理后,输出的音频数据在数量上为输出前音频数据的2倍,其顺序为B,-B,-A,-A。
本发明在实现音频数据的MDCT或IMDCT过程中,MDCT前处理或IMDCT后处理简单,均为加法运算;复用计算共用主要的信号处理装置,且该单元的结构简单,长块时乘法运算量仅为99个;对于短块,采用了与长块类似的处理算法乘法量仅为39个,减小了运算量,从而降低了音频数据编解码系统的功耗。
以上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种音频数据的编解码系统,其特征在于,包括:
主控制器,用于驱动信号控制装置生成控制信号;
寄存装置,用于在所述主控制器的驱动下,为信号控制装置提供所述音频数据的状态信息,所述状态信息至少包括是要进行反向改良的离散余弦变换还是改良的离散余弦变换的信息;
信号控制装置,用于在所述主控制器的驱动下,根据寄存装置提供的所述状态信息生成所述控制信号并输出给信号处理装置;
信号处理装置,用于根据所述控制信号,对所述音频数据进行改良的离散余弦变换前处理,再进行复用计算并输出结果;或者对所述音频数据进行复用计算,再进行反向改良的离散余弦变换后处理并输出结果;
所述信号控制装置包括:
计数单元,用于向主控制状态转换单元发送计数信号,并对所述音频数据的反向改良的离散余弦变换或改良的离散余弦变换过程进行计时;
主控制状态转换单元,用于接收状态判断单元发送的判断结果,并根据所述判断结果驱动控制信号产生单元产生所述控制信号;
状态判断单元,用于根据所述寄存装置存储的音频数据状态信息进行所述音频数据的状态判断,并将判断结果发送给所述主控制状态转换单元;
控制信号产生单元,用于在所述主控制状态转换单元的驱动下,生成所述控制信号并发送给所述信号处理装置,以及驱动系数产生单元产生系数,并发送给所述信号处理装置;
系数产生单元,用于在所述控制信号产生单元的驱动下产生系数,并发送给所述信号处理装置。
2.如权利要求1所述的编解码系统,其特征在于,所述状态信息进一步包括块类型,所述状态判断单元包括:
长短块判断子单元,用于根据所述状态信息判断所述音频数据的长短块 类型;
颗粒和子带判断子单元,用于根据所述状态信息判断所述音频数据所在的颗粒或子带;
通道判断子单元,用于根据所述状态信息判断所述音频数据中每一帧音频数据所在的通道。
3.如权利要求1所述的编解码系统,其特征在于,所述控制信号包括加/减控制信号、乘/乘加控制信号、寄存装置控制信号及音频数据的读写控制信号中的至少一种或多种组合。
4.如权利要求1~3任一所述的编解码系统,其特征在于,
所述音频数据在进行改良的离散余弦变换或反向改良的离散余弦变换之前,将被存放在第一RAM(020)中,第一RAM(020)还用于根据所述控制信号存储中间结果;
系数产生单元产生的系数存储在第二RAM(021)中;
第一乘法器(024)根据所述控制信号完成乘法运算:从第一RAM(020)中读出的音频数据暂存在第一寄存器(022)中,从第二RAM(021)中读出的系数暂存在第二寄存器(023)中,然后第一寄存器(022)中暂存的音频数据和第二寄存器(023)暂存的系数被发送到第一乘法器(024)中进行乘法运算,再将乘法运算结果暂存在第三寄存器(025)中;
加/减法器(028)根据运算控制信号完成加/减运算,加/减法器(028)有2个输入端A端和B端,A端与第二选择器(026)相连,B端与第一选择器(027)相连,第四寄存器(029)与第一寄存器(022)的输出分别为第二选择器(026)的两个输入,第三寄存器(025)与第一寄存器(022)的输出分别为第一选择器(027)的两个输入,第四寄存器(029)的输出为加/减法器(028)的运算结果。
5.一种音频数据的编解码方法,其特征在于,包括:
A、判断所述音频数据要进行改良的离散余弦变化还是反向改良的离散余弦变化,如果要进行改良的离散余弦变换,转入步骤B;如果要进行反向 改良的离散余弦变换,则将所述音频数据作为要进行复用计算的音频数据,转入步骤C;
B、对所述音频数据进行改良的离散余弦变换前处理,得到要进行复用计算的音频数据,转入步骤C;
C、对所述要进行复用计算的音频数据进行复用计算,得到复用计算结果,如果所述音频数据要进行改良的离散余弦变换,则将该复用计算结果作为所述音频数据进行改良的离散余弦变换后的结果输出;如果所述音频数据要进行反向改良的离散余弦变换,则将该复用计算结果进行反向改良的离散余弦变换后处理,然后再作为所述音频数据进行反向改良的离散余弦变换后的结果输出,
所述步骤C中对所述要进行复用计算的音频数据进行复用计算之前进一步包括:
判断所述音频数据的块类型,如果是长块,则进行长块的复用计算;如果是短块,则进行短块的复用计算;
所述进行长块的复用计算为:
将得到的运算点数为18的所述要进行复用计算的音频数据进行长块数据重构,得到2组运算点数为9的所述音频数据,重构公式为:
X(k)=X(k)+X(k-1);k=0~N/2-1,
P(k)=X(2k);k=0~N/4-1,Q(k)=X(2k+1)+X(2k-1);Q(0)=X(1);k=1~N/4-1,其中,N为36,X(k)为运算点数为18的所述音频数据,P(k)和Q(k)为2组运算点数为9的所述要进行复用计算的音频数据;
将2组运算点数为9的所述要进行复用计算的音频数据分别进行离散余弦变换,得到2组运算点数为9的所述要进行复用计算的音频数据的离散余弦变换结果;
根据2组运算点数为9的所述要进行复用计算的音频数据的离散余弦变换结果,进行运算点数为18的所述要进行复用计算的音频数据的离散余弦 变换,作为长块的复用计算结果,公式为: 
Figure FSB00000653074700041
n=0~8,
其中,p(n)、q(n)分别为2组运算点数为9的所述要进行复用计算的音频数据的离散余弦变换结果,g(0)到g(17)为长块的复用计算结果;
所述进行短块的复用计算为:
a、将得到的运算点数为18的所述要进行复用计算的音频数据分为3组,每组6个运算点数,将其中一组6个运算点数的音频数据进行短块数据重构,得到2组运算点数为3的音频数据,公式为:
X1(k)=X(3C+k)+X(3C+k-1);k=0~N/2-1,
P(k)=X1(2k);k=0~N/4-1,Q(k)=X1(2k+1)+X1(2k-1);Q(0)=X1(1);k=1~N/4-1,其中,N为12,X1(k)为运算点数为6的所述要进行复用计算的音频数据,P(k)和Q(k)为重构后得到的2组运算点数为3的音频数据,C为循环计算的次数;
b、对2组运算点数为3的音频数据分别进行离散余弦变换,公式为:
p(0)=P(0)+P(1)*0.866025+P(2)*0.5;
p(1)=P(0)-P(2);
p(2)=P(0)-P(1)*0.866025+P(2)*0.5;
q(0)=Q(0)+Q(1)*0.866025+Q(2)*0.5;
q(1)=Q(0)-Q(2);
q(2)=Q(0)-Q(1)*0.866025+Q(2)*0.5;
其中,p(k)为对P(k)进行离散余弦变换得到的结果,q(k)为Q(k)进行离散余弦变换得到的结果;
c、根据2组运算点数为3的音频数据的离散余弦变换结果计算,得到运算点数为6的所述要进行复用计算的音频数据的离散余弦变换值,公式 为:
Figure FSB00000653074700051
n=0~2,
其中,g(0)到g(5)作为运算点数为6的所述音频数据的离散余弦变换结果;
d、判断运算点数为6的所述要进行复用计算的音频数据是否循环复用计算了3次,如果不是,则将C加1后,转入步骤a继续执行,否则,将循环了3次得到的3组g(0)到g(5)作为短块的复用计算结果。
6.如权利要求5所述的编解码方法,其特征在于,
所述步骤B中对所述音频数据进行改良的离散余弦变换前处理采用 
Figure FSB00000653074700052
公式,其中,a()为所述音频数据,k为进行复用运算点数,X(k)为运算点数为18的所述要进行复用计算的音频数据。
7.如权利要求5所述的编解码方法,其特征在于,所述将2组运算点数为9的所述要进行复用计算的音频数据分别进行离散余弦变换,得到2组运算点数为9的所述要进行复用计算的音频数据的离散余弦变换结果的过程为:
将2组运算点数为9的所述要进行复用计算的音频数据的每一组拆分为运算点数为5和运算点数为4的两组音频数据,对运算点数为5、运算点数为4及运算点数为9的要进行复用计算的音频数据进行离散余弦变换,公式为:
Figure FSB00000653074700053
n=0~4, 
Figure FSB00000653074700054
n=0~3,
其中,pg(n)为运算点数为5的音频数据经过离散余弦变换后得到的结果, ph(n)为运算点数为4的音频数据经过离散余弦变换后得到的结果;
将pg(n)和ph(n)按照公式n=0~3进行加减法运算,得到每一组运算点数为9的所述要进行复用计算的音频数据P(n)的离散余弦变换结果。
8.如权利要求5所述的编解码方法,其特征在于,所述将该复用计算结果进行反向改良的离散余弦变换后处理采用 
Figure FSB00000653074700062
Figure FSB00000653074700063
公式进行,其中,g(n)为该复用计算结果;M(n)是将该复用计算结果进行反向改良的离散余弦变换后处理的结果。 
CN2009101336729A 2009-04-15 2009-04-15 一种音频数据的编解码系统及方法 Active CN101540172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101336729A CN101540172B (zh) 2009-04-15 2009-04-15 一种音频数据的编解码系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101336729A CN101540172B (zh) 2009-04-15 2009-04-15 一种音频数据的编解码系统及方法

Publications (2)

Publication Number Publication Date
CN101540172A CN101540172A (zh) 2009-09-23
CN101540172B true CN101540172B (zh) 2012-02-22

Family

ID=41123320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101336729A Active CN101540172B (zh) 2009-04-15 2009-04-15 一种音频数据的编解码系统及方法

Country Status (1)

Country Link
CN (1) CN101540172B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102081926B (zh) * 2009-11-27 2013-06-05 中兴通讯股份有限公司 格型矢量量化音频编解码方法和系统
CN111294782B (zh) * 2020-02-25 2022-02-08 北京百瑞互联技术有限公司 一种加速编解码专用集成电路及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1858998A (zh) * 2006-04-20 2006-11-08 上海交通大学 数字音频滤波器的无乘法实现方法
CN101018327A (zh) * 2006-04-11 2007-08-15 珠海炬力集成电路设计有限公司 离散余弦变换集成模块及其运算组合方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101018327A (zh) * 2006-04-11 2007-08-15 珠海炬力集成电路设计有限公司 离散余弦变换集成模块及其运算组合方法
CN1858998A (zh) * 2006-04-20 2006-11-08 上海交通大学 数字音频滤波器的无乘法实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JP特开2006-189716A 2006.07.20
谢艳凤 等.MDCT共用递归结构的并行改进与实现.《电声技术》.2009,第33卷(第03期),第68-70页,第73页. *
邓宁 等.运用递归算法实现共用的MDCT和IMDCT结构.《电声技术》.2005,(第1期),第47-49页. *

Also Published As

Publication number Publication date
CN101540172A (zh) 2009-09-23

Similar Documents

Publication Publication Date Title
CN106529670B (zh) 一种基于权重压缩的神经网络处理器、设计方法、芯片
CN110276450B (zh) 基于多粒度的深度神经网络结构化稀疏系统和方法
CN111062472B (zh) 一种基于结构化剪枝的稀疏神经网络加速器及其加速方法
CN109472350A (zh) 一种基于块循环稀疏矩阵的神经网络加速系统
CN112465110B (zh) 一种卷积神经网络计算优化的硬件加速装置
WO2009025676A1 (en) Encoding and/or decoding digital content
CN113628094B (zh) 一种基于gpu的高吞吐量sm2数字签名计算系统及方法
CN107341133A (zh) 基于任意维数矩阵lu分解的可重构计算结构的调度方法
CN104579656A (zh) 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器
CN1529411A (zh) 一种并行-串行乘加器
CN111368988B (zh) 一种利用稀疏性的深度学习训练硬件加速器
CN114297571A (zh) 一种适用于格密码算法的多项式乘法硬件实现系统
CN101540172B (zh) 一种音频数据的编解码系统及方法
CN106775577A (zh) 一种高性能非精确冗余二进制乘法器及其设计方法
CN102567282B (zh) 通用dsp处理器中fft计算实现装置和方法
CN106656213B (zh) 基于k段分解的低复杂度极化码折叠硬件构架的实现方法
CN101534125B (zh) 一种超长数据变长编码合成系统
CN113222129A (zh) 一种基于多级缓存循环利用的卷积运算处理单元及系统
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN104268124A (zh) 一种fft实现装置和方法
CN101833540B (zh) 信号处理方法和装置
CN1858998A (zh) 数字音频滤波器的无乘法实现方法
CN103023519A (zh) 一种费马数变换的方法和装置
CN102023963B (zh) 高速多模式时频域变换方法
CN102447898B (zh) 用fpga实现klt变换的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: JUXIN(ZHUHAI) TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: JULI INTEGRATED CIRCUIT DESIGN CO., LTD.

Effective date: 20141217

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20141217

Address after: 519085 C District, 1# workshop, No. 1, science and technology No. four road, hi tech Zone, Zhuhai, Guangdong, China

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Juli Integrated Circuit Design Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.