CN100546197C - 适用于多音频标准通用滤波器单元的vlsi实现方法 - Google Patents
适用于多音频标准通用滤波器单元的vlsi实现方法 Download PDFInfo
- Publication number
- CN100546197C CN100546197C CNB2006100301343A CN200610030134A CN100546197C CN 100546197 C CN100546197 C CN 100546197C CN B2006100301343 A CNB2006100301343 A CN B2006100301343A CN 200610030134 A CN200610030134 A CN 200610030134A CN 100546197 C CN100546197 C CN 100546197C
- Authority
- CN
- China
- Prior art keywords
- imdct
- fft
- data
- conversion
- window
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明涉及一种数字音频编解码技术领域的适用于多音频标准通用滤波器单元的VLSI实现方法。本发明采用了一个通过参数控制的系统框架,根据不同标准滤波器要求设定参数,控制系统下具体模块的工作,执行时包括IMDCT变换预处理,FFT运算,IMDCT变换后处理,地址映射与加窗处理五个操作步骤。其中每个步骤都需要配置控制参数,以完成特定标准对应的操作。本发明中,所有的指数与三角函数运算均通过调用CORDIC变换完成,系统框架中设计有算术运算单元,各步骤处理数据通过分时调用完成。使用本发明方法实现滤波器,可以在支持AAC,AC3和WMA三种主流音频解码器的前提下,有效的控制芯片面积。
Description
技术领域
本发明涉及一种数字音频编解码技术领域的方法,具体是一种适用于多音频标准通用滤波器单元的VLSI实现方法。
背景技术
目前,应用于音频压缩的标准如AAC(先进的音频编解码技术标准)、AC3(杜比音频编解码技术标准)和WMA(微软音频编解码技术标准)等都使用了基于心理声学模型的感知编码技术。此音频编码技术可以通过时频变换得到很高的编码效率,这其中都采用了基于MDCT/IMDCT与动态加窗的时频变换滤波器单元。然而,完成这些滤波器运算需要很大的计算量,硬件实现需要较多资源。如今,人们对于移动音频播放器的要求已经越来越不满足于对应单一音频标准的解码器,而为了实现能对应多标准的音频解码器,而为各个标准采用单独的结构与独立的资源显然是不合理、不经济的。这种做法会使得芯片成本上升、功耗提高,不具备移动设备对芯片面积与功耗方面的严格要求。因此,本发明希望在这样高性能要求的系统中,针对AAC,AC3与WMA这三种常用音频解码器中的滤波器模块,设计一个通用的处理单元。
经对现有技术的文献检索发现,Winnie Lau等在Consumer Electronics(消费电子杂志)1997年第43卷第559-566页上发表的“A Common Transform For MPEG&AC3 Audio decoder”(一种MPEG与AC3音频解码器通用的变换)提出了一种对MPEG和AC3音频解码器通用的架构,其中的公用模块主要表现在滤波器运算单元。但是该滤波器中的IMDCT设计采用了64与128点FFT,无法应对多种长度的IMDCT,使得该滤波器设计应用范围有限。此外,邓宁等在《电声技术》2005年第一期第47到49页上发表的“运用递归算法实现共用的MDCT和IMDCT结构”一文中提出了一种应用于任意点数的IMDCT快速算法,但是该算法需要额外的硬件开销存储三角函数值作为变换系数,这样为支持多种音频解码器不同点数的IMDCT变换,需要存储大量的三角函数值,需要较大的硬件开销。
发明内容
本发明为了解决上述问题,提供一种适用于多音频标准通用滤波器单元的VLSI实现方法,即可运用在AAC,AC3和WMA三种主流的音频解码器的滤波器运算单元的VLSI实现方法。本发明采用了基二点FFT算法完成所有点数为2n的IMDCT变换,解决了Winnie Lau提出的框架中只能完成64或128点FFT的缺点。通过CORDIC(旋转坐标变换)完成指数与三角函数运算,避免了邓宁在“运用递归算法实现共用的MDCT和IMDCT结构”设计中额外的硬件存储开销。针对不同滤波器IMDCT变换点数与窗函数类型进行分析,设计统一的硬件框架实现,通过设定配置参数,完成特定标准解码器的滤波器处理。使用该种方法实现滤波器,可以在支持AAC,AC3和WMA三种主流音频解码器的前提下,有效的控制芯片面积。
本发明是通过以下技术方案实现的。本发明通过设计一个参数可控制的系统框架,根据不同标准滤波器要求进行配置,控制系统下具体模块的工作,执行时包括IMDCT变换预处理,FFT运算,IMDCT变换后处理,地址映射与加窗处理五个操作步骤。其中每个步骤都需要控制参数进行配置,以完成特定标准对应的操作。本发明中,所有的指数与三角函数运算均通过调用CORDIC(旋转坐标)变换完成,系统框架中设计有算术运算单元,各步骤处理数据时,通过分时调用完成。
本发明具体步骤如下:
(1)根据滤波器参数完成IMDCT变换预处理,处理后数据写入FFT_RAM;
(2)根据滤波器参数对FFT_RAM中数据完成FFT运算;
(3)根据滤波器参数对FFT运算后的数据做IMDCT变换后处理;
(4)根据滤波器参数对FFT_RAM中数据做地址映射处理。
(5)根据滤波器参数做加窗处理。
以下对各个步骤进行进一步的说明:
(1)根据滤波器参数完成IMDCT变换预处理,处理后数据写入FFT_RAM
本步骤中以IMDCT变换的点数N为参数完成IMDCT变换预处理。N点的IMDCT定义如下:
n=0,1,...N-1
为了利用FFT运算实现IMDCT变换,需要对输入数据进行预处理,预处理的完成的算法是:
k=0,1,...N/4-1
k=0,1,...N/4-1
通过公式(b)和(c)的计算得到N/4点的复数,待做FFT计算。其中公式(b)通过地址变换操作完成,公式(c)中需要指数运算,本发明通过调用CORDIC运算单元实现。本步骤中对应的控制参数主要是变换点数N,即IMDCT变换的点数,这个会因为解码器标准不同而不同,所以需要由参数控制模块控制计数器的计数周期来产生公式(b)中地址变换的数值与公式(c)中的CORDIC变换的旋转角度。
本发明中假定上级处理后待做IMDCT变换的数据存储在一片RAM中。为完成复数域的指数运算,前一拍取出的偶地址数值X(2k)(实部)需要延时,等待下一拍取出的奇地址数值X(N/2-1-2k)(虚部),连同指数运算所需的相位值一同送入CORDIC运算单元。CORDIC运算结果分实部虚部数据写入两个RAM中待做下一步的FFT运算,这两个RAM在本发明中记做FFT_RAM。
(2)根据滤波器参数对FFT_RAM中数据完成FFT运算;
本步骤中需要IMDCT变换点数N作为FFT运算模块的控制参数,即FFT变换的点数为N/4。本发明中采用基二点复数FFT运算,其中的指数运算通过调用公用的CORDIC运算单元完成。复数FFT运算的全过程在FFT_RAM中完成,完成FFT运算的数据仍然存储在FFT_RAM中。对应的表达式为:
f′(n)=FFT(F(k))
n=0,1,2,...N/4-1;(d)
k=0,1,2,....N/4-1
(3)根据滤波器参数对FFT运算后的数据做IMDCT变换后处理
本步骤中的控制参数为IMDCT的变换点数N。完成FFT运算的数据,需要进行一定的后处理,才能作为IMDCT变换的正确输出,对应的公式表达式为:
n=0,1,2,...N/4-1
可以认为本步骤与步骤(1)完成的IMDCT变换预处理的运算非常相似,但是因为完成步骤(2)的FFT运算,复数数据分实部虚部存储在两个RAM中,所以这里无需格外的地址产生和延迟电路,只需根据IMDCT点数N,左移两位作为计数器n的复位参数。由这个计数器n产生本步骤计算所需的取数地址和指数运算的角度。指数运算仍然通过调用CORDIC运算模块完成。
(4)根据滤波器参数对FFT_RAM中数据做地址映射处理
本步骤中的所需的控制参数为IMDCT的变换点数N。在步骤(3)对N/4点FFT数据进行后处理之后,存在FFT_RAM中的数据,已经是IMDCT所需的数据,但是还需要完成如下公式表达的地址映射才能得到N点的IMDCT变换数值:
for(n=0;n<N/4;n++)
{
if(n<N/8)
{
}
else
{
x(2n-N/4)=Re(f(n))
}
}.
通过公式(f)描述的地址变换,从N/4点的复数值换算出N点的IMDCT变换的实数输出值。该值被送入下一步窗函数处理模块。
(5)根据滤波器参数做加窗处理;
为了支持AAC,AC3和WMA三种音频解码标准,本模块的控制参数为滤波器模块的窗函数类型。根据标准,AAC所加的窗序列为Sine窗或KBD窗,WMA所加窗为Sine窗,AC-3为KBD窗。在这里对每个数据都做KBD和Sine两种窗函数的处理。本发明中为了最大限度控制芯片面积,Sine窗通过调用CORDIC运算模块完成,KBD窗由于运算过于复杂,采用查表做乘法直接完成。加窗后的数据通过参数控制的选通器,确定当前输出是KBD窗还是Sine窗。
本发明的优点:
(1)本发明最大的优点是用统一的框架实现了AAC,AC3和WMA三种基于感知音频编码技术的解码器的滤波器单元。系统框架涉及IMDCT预处理,FFT运算,IMDCT后处理,加窗函数等五个模块。每个模块通过参数控制实现通用性,体现了硬件设计中,基于特定领域专项应用可重构设计的思路。这样的设计,有利于实现多标准数字音频处理的运算单元和存储单元的共享,减小最终的芯片面积和系统功耗,从而极大地满足人们对于多标准应用于移动多媒体之必然发展趋势的要求。
(2)本发明所采用的CORDIC运算是一种无乘法的实现方式,仅通过加法和移位操作来实现。这样做的优势主要有两点:a.去除了增大最终芯片面积与降低系统效率的乘法器;b.采用了执行效率更高的移位与加法操作提供系统性能。所以本发明中有关三角函数与指数运算均通过调用CORDIC运算单元完成,避免系数存储与乘法器的大量使用,降低芯片成本。
综上所述,本发明在处理速度和硬件资源方面,都是具有优势的。
附图说明
图1是多标准滤波器的总体结构图;
图2是IMDCT预处理模块的实现框图;
图3是IMDCT后处理模块的实现框图;
图4是地址映射与加窗模块的实现框图。
具体实现方式
结合本发明技术方案以及附图提供以下实施例:
如图1所示为多标准滤波器整个系统实现框图。AAC,AC3和WMA三种音频编码技术解码器的滤波器单元使用统一的框架,如图1,本发明的5个步骤分别对应于图中5个硬件模块。其对应关系如下:
步骤(1)对应IMDCT变换预处理模块。
步骤(2)对应FFT变换处理模块。
步骤(3)对应IMDCT变换后处理模块。
步骤(4)对应地址映射模块。
步骤(5)对应加窗处理模块。
各个硬件模块工作模式,由参数控制单元根据当前解码器的种类和滤波器参数进行配置,实现了硬件资源可重构使用。以下结合图示说明各个模块如何在一定的参数配置下工作。
IMDCT变换预处理模块。如图2。音频解码器中经过反量化,立体声等处理的数据,会放在RAM中,也就是公式(b)中待做IMDCT运算的X(k)。假设现在待作IMDCT变换的数据点数为N(本滤波器为支持AAC,AC3和WMA三种音频解码标准,N=128,256,512,1024,2048,4096),在参数控制模块中,将参数N右移两位与计数器值进行比较,相等时产生可复位计数器的复位信号。可复位计数器将计数值送入奇偶地址产生单元与相位产生单元。奇偶地址产生单元根据计数器提供的数值k产生公式(b)中取数所需的RAM取数地址,相位产生单元也将根据这个k值产生公式(c)中指数运算所需的角度值。另外,公式(c)中的指数运算,本发明中采用系统框架中共用的CORDIC运算单元实现。因为待做IMDCT的数据存在一片RAM中,前一拍取出的偶地址数值X(2k)需要延时,等待下一拍取出的奇地址数值X(N/2-1-2k),连同指数运算所需的相位值一同送入CORDIC运算单元。CORDIC运算结果写入FFT运算对应的实部虚部两片RAM中。
IMDCT变换后处理模块。如图3。这一部分的处理,与步骤(1)类似,不同的是,这部分处理的数据分实部虚部存储在两片RAM中,所以一个运算所需的数据在同一时钟即可从RAM中取出,无需延时电路,做完CORDIC变换的数据还是分实部虚部写回到两片RAM中。如公式(d)描述,无需特殊的地址变换电路,直接采用可复位计数器产生的值作为读写数据的地址即可。
地址映射模块与加窗模块。如图4。为了简单实现步骤(4)中的公式(f),在硬件实施中做如下变量替换:
for(t=0;t<N/8;t++)
{
x(2t)=Re[f(t+N/8)]
x(2t+1)=-Im[f(N/8-t)]
}
for(t=N/8;t<3N/8;t++)
{
x(2t)=Im[f(t-N/8)]
x(2t+1)=-Re[f(3N/8-t)]
}
for(t=3N/8;t<N/2;t++)
{
x(2t)=-Re[f(t-3N/8)]
x(2t+1)=Im[f(5N/8-t)]
} (g)
其中N为IMDCT变换点数,作为本模块控制参数提供。为了支持AAC,AC3和WMA三种音频解码标准,需要根据当前实现的是那一个标准的滤波器来选定适合的窗函数。根据标准,AAC所加的窗序列为Sine窗或KBD窗,WMA所加窗为Sine窗,AC-3为KBD窗。在这里对每个数据都做KBD和Sine两种窗函数的处理。本发明中为了最大限度控制芯片面积,Sine通过调用CORDIC运算模块完成,KBD窗由于运算过于复杂,采用查表做乘法直接完成。加窗后的数据通过选通器,确定当前输出是KBD窗还是Sine窗。
Claims (1)
1.一种适用于多音频标准通用滤波器单元的VLSI实现方法,其特征在于,通过一个能由参数配置的系统框架,通过参数配置内部运算模块,实现相应标准的滤波处理,包括以下步骤:
(1)根据滤波器参数完成IMDCT变换预处理,处理后数据写入FFT_RAM,具体为:
N点的IMDCT定义如下:
n=0,1,...N-1
采用FFT运算实现IMDCT变换,需要对输入数据进行预处理,预处理的完成的算法是:
k=0,1,...N/4-1
k=0,1,...N/4-1
其中N为IMDCT的变换点数,因标准不同对应有不同的数值,是本步骤对应的实现单元的控制参数;
(2)根据滤波器参数对FFT_RAM中数据完成FFT运算,具体为:采用基二点复数FFT运算,其中的指数运算通过调用系统框架中公用的CORDIC运算单元完成,对应的表达式为:
f′(n)=FFT(F(k))
n=0,1,2,...N/4-1;
k=0,1,2...N/4-1
FFT变换对应点数为IMDCT变换点数的四分之一,因标准不同,对应有不同的数值,是本步骤对应的实现单元的控制参数
(3)根据滤波器参数对FFT运算后的数据,需要进行后处理,才能作为IMDCT变换的正确输出,对应的公式表达式为:
n=0,1,2,...N/4-1
本步骤只需根据可复位计数器n产生取数地址和指数运算的角度,指数运算仍然通过调用CORDIC运算模块完成
(4)根据滤波器参数对FFT_RAM中数据做地址映射处理,通过步骤(3)对N/4点FFT数据进行后处理之后,存在相应RAM中的数据已经是IMDCT所需的数据,其中从N/4点的复数值换算出N点的IMDCT变换的实数输出值如下:
a)将N/4个复数点FFT数据按索引编号,从0到(N/4)-1,N个实数的IMDCT也按索引编号,从0到N-1,则IMDCT中索引号为0,2,4,…,(N/4)-2的值分别等于FFT数据索引号为N/8,(N/8)+1,(N/8)+2,…,(N/4)-1的实部;
b)IMDCT中索引号为(N/4)-1,(N/4)-3,(N/4)-5,…,1的值分别等于FFT数据索引号为0,1,2,…,(N/8)-1的虚部取负;
c)IMDCT中索引号为N/4,(N/4)+2,(N/4)+4,…,(3N/4)-2的值分别等于FFT数据索引号为0,1,2,…,(N/4)-1的虚部;
d)IMDCT中索引号为(3N/4)-1,(3N/4)-3,(3N/4)-5,…,(N/4)+1的值分别等于FFT数据索引号为0,1,2,…,(N/4)-1的实部取负;
e)IMDCT中索引号为3N/4,(3N/4)+2,(3N/4)+4,…,N-2的值分别等于FFT数据索引号为0,1,2,…,(N/8)-1的实部取负;
f)IMDCT中索引号为(3N/4)-1,(3N/4)-3,(3N/4)-5,…,(N/4)+1的值分别等于FFT数据索引号为N/8,(N/8)+1,(N/8)+2,…,(N/4)-1的虚部,该N点的IMDCT输出值被送入下一步窗函数处理模块;
通过上述公式描述的地址变换,从N/4点的复数值换算出N点的IMDCT变换的实数输出值,该值被送入下一步窗函数处理模块;
(5)根据滤波器参数做加窗处理,即根据标准,AAC所加的窗序列为Sine窗或者KBD窗,WMA所加窗为Sine窗,AC-3为KBD窗,在这里对每个数据做两种窗变换的处理,KBD和Sine窗,Sine窗通过调用CORDIC运算模块完成,KBD窗采用查表做乘法直接完成,加窗后的数据通过参数控制的选通器,确定当前输出是KBD窗还是Sine窗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100301343A CN100546197C (zh) | 2006-08-17 | 2006-08-17 | 适用于多音频标准通用滤波器单元的vlsi实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100301343A CN100546197C (zh) | 2006-08-17 | 2006-08-17 | 适用于多音频标准通用滤波器单元的vlsi实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1909382A CN1909382A (zh) | 2007-02-07 |
CN100546197C true CN100546197C (zh) | 2009-09-30 |
Family
ID=37700389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100301343A Expired - Fee Related CN100546197C (zh) | 2006-08-17 | 2006-08-17 | 适用于多音频标准通用滤波器单元的vlsi实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100546197C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308658B (zh) * | 2007-05-14 | 2011-04-27 | 深圳艾科创新微电子有限公司 | 一种基于片上系统的音频解码器及其解码方法 |
US8548815B2 (en) | 2007-09-19 | 2013-10-01 | Qualcomm Incorporated | Efficient design of MDCT / IMDCT filterbanks for speech and audio coding applications |
CN102568485B (zh) * | 2011-12-30 | 2013-12-11 | 展讯通信(上海)有限公司 | 音频信号的频时转换方法及装置 |
CN111294782B (zh) * | 2020-02-25 | 2022-02-08 | 北京百瑞互联技术有限公司 | 一种加速编解码专用集成电路及方法 |
-
2006
- 2006-08-17 CN CNB2006100301343A patent/CN100546197C/zh not_active Expired - Fee Related
Non-Patent Citations (10)
Title |
---|
VLSI电路噪声特性检测阈值的分析及决策. 钱志鸿,周求湛,魏小丽.吉林大学学报(工学版),第34卷第1期. 2004 |
VLSI电路噪声特性检测阈值的分析及决策. 钱志鸿,周求湛,魏小丽.吉林大学学报(工学版),第34卷第1期. 2004 * |
一种适用于AVS自适应环路滤波器的VLSI实现. 叶姜莉,龙沪强,刘佩林.信息技术,第2期. 2007 |
一种适用于AVS自适应环路滤波器的VLSI实现. 叶姜莉,龙沪强,刘佩林.信息技术,第2期. 2007 * |
一种高性能FFT处理器的VLSI结构设计. 孙阳,余锋.微电子学,第33卷第4期. 2003 |
一种高性能FFT处理器的VLSI结构设计. 孙阳,余锋.微电子学,第33卷第4期. 2003 * |
一种高速FIR数字滤波器的VLSI设计与实现. 朱华贵.重庆工业高等专科学校学报,第20卷第1期. 2005 |
一种高速FIR数字滤波器的VLSI设计与实现. 朱华贵.重庆工业高等专科学校学报,第20卷第1期. 2005 * |
运用递归算法实现共用的MDCT和IMDCT结构. 邓宁,周源华,郭凯.电声技术,第1期. 2005 |
运用递归算法实现共用的MDCT和IMDCT结构. 邓宁,周源华,郭凯.电声技术,第1期. 2005 * |
Also Published As
Publication number | Publication date |
---|---|
CN1909382A (zh) | 2007-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | Hardware efficient mixed radix-25/16/9 FFT for LTE systems | |
CN100546197C (zh) | 适用于多音频标准通用滤波器单元的vlsi实现方法 | |
US20120016502A1 (en) | Processor extensions for accelerating spectral band replication | |
EP2290938B1 (en) | Signal processing method, data processing method and data processing apparatus | |
CN1265294C (zh) | 基4和混合基(4+2)fft处理器地址映射方法和系统 | |
US7917370B2 (en) | Configurable common filterbank processor applicable for various audio standards and processing method thereof | |
CN101025919B (zh) | 音频解码中的合成子带滤波方法和合成子带滤波器 | |
Lei et al. | Low complexity and fast computation for recursive MDCT and IMDCT algorithms | |
CN1858998A (zh) | 数字音频滤波器的无乘法实现方法 | |
US20100185715A1 (en) | Method and Device for Transform Computation | |
CN102751963A (zh) | 基于乘累加器环的可配置离散小波变换电路及其实现方法 | |
Sakamoto et al. | A fast MPEG-audio layer III algorithm for a 32-bit MCU | |
CN100487810C (zh) | 基于可重构运算单元的mp3解码滤波器系统 | |
Moon et al. | Area-efficient memory-based architecture for FFT processing | |
CN113434811A (zh) | 一种fft处理器ip核使用的改良-2^6算法和2048点fft处理器ip核 | |
Patyk et al. | Hardware-efficient twiddle factor generator for mixed radix-2/3/4/5 FFTs | |
Banerjee et al. | A Novel Paradigm of CORDIC-Based FFT Architecture Framed on the Optimality of High-Radix Computation | |
Tsai et al. | Low power and cost effective VLSI design for an MP3 audio decoder using an optimised synthesis-subband approach | |
Hwang et al. | A novel MDCT/IMDCT computing kernel design | |
Petrovsky et al. | Dynamic reconfigurable on the lifting steps wavelet packet processor with frame-based psychoacoustic optimized time-frequency tiling for real-time audio applications | |
CN113628112B (zh) | 一种Hi-C数据分辨率增强方法及装置 | |
Pande et al. | An efficient high speed RISC processor for convolution | |
Tsai et al. | A configurable common filterbank processor for multi-standard audio decoder | |
Ko et al. | A VLSI implementation of dual AC-3 and MPEG-2 audio decoder | |
Du et al. | An implementation of filterbank for mpeg-2 aac on fpga |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090930 Termination date: 20130817 |