首页> 中国专利> 适用于多音频标准通用滤波器单元的VLSI实现方法

适用于多音频标准通用滤波器单元的VLSI实现方法

摘要

本发明涉及一种数字音频编解码技术领域的适用于多音频标准通用滤波器单元的VLSI实现方法。本发明采用了一个通过参数控制的系统框架,根据不同标准滤波器要求设定参数,控制系统下具体模块的工作,执行时包括IMDCT变换预处理,FFT运算,IMDCT变换后处理,地址映射与加窗处理五个操作步骤。其中每个步骤都需要配置控制参数,以完成特定标准对应的操作。本发明中,所有的指数与三角函数运算均通过调用CORDIC变换完成,系统框架中设计有算术运算单元,各步骤处理数据通过分时调用完成。使用本发明方法实现滤波器,可以在支持AAC,AC3和WMA三种主流音频解码器的前提下,有效的控制芯片面积。

著录项

  • 公开/公告号CN1909382A

    专利类型发明专利

  • 公开/公告日2007-02-07

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN200610030134.3

  • 发明设计人 刘倩茹;刘佩林;

    申请日2006-08-17

  • 分类号H03M7/30(20060101);G10L19/02(20060101);

  • 代理机构31201 上海交达专利事务所;

  • 代理人王锡麟;王桂忠

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2023-12-17 18:12:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-10-15

    未缴年费专利权终止 IPC(主分类):H03M7/30 授权公告日:20090930 终止日期:20130817 申请日:20060817

    专利权的终止

  • 2009-09-30

    授权

    授权

  • 2007-04-04

    实质审查的生效

    实质审查的生效

  • 2007-02-07

    公开

    公开

说明书

技术领域

本发明涉及一种数字音频编解码技术领域的方法,具体是一种适用于多音频标准通用滤波器单元的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定义如下:

>>x>>(>n>)>>=>>Σ>>k>=>0>>>N>/>2>->1> >X>>(>k>)>>·>cos>>(>>π>>2>N>>>>(>2>n>+>1>+>>N>2>>)>>>(>2>k>+>1>)>>)>>->->->>(>a>)>>>s>

n=0,1,…N-1

为了利用FFT运算实现IMDCT变换,需要对输入数据进行预处理,预处理的完成的算法是:

>>>F>′>>>(>k>)>>=>X>>(>2>k>)>>+>jX>>(>>N>2>>->1>->2>k>)>>->->->>(>b>)>>>s>

k=0,1,…N/4-1

>>F>>(>k>)>>=>>F>′>>>(>k>)>>·>exp>>(>->>>2>π>>N>>j>>(>k>+>>1>8>>)>>)>>->->->>(>c>)>>>s>

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变换的正确输出,对应的公式表达式为:

>>f>>(>n>)>>=>>f>′>>>(>n>)>>·>exp>>(>->>>2>π>>N>>j>>(>n>+>>1>8>>)>>)>>->->->>(>e>)>>>s>

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++)

{

>>x>>(>>>3>N>>4>>->1>->2>n>)>>=>->Re>>(>f>>(>n>)>>)>>>s>

>>x>>(>>N>4>>+>2>n>)>>=>Im>>(>f>>(>n>)>>)>>>s>

  if(n<N/8)

  {

>>x>>(>>>3>N>>4>>+>2>n>)>>=>->Re>>(>f>>(>n>)>>)>>>s>

>>x>>(>>N>4>>->1>->2>n>)>>=>->Im>>(>f>>(>n>)>>)>>>s>

  }

  else

  {

     x(2n-N/4)=Re(f(n))

>>x>>(>>>5>N>>4>>->1>->2>n>)>>=>Im>>(>f>>(>n>)>>)>>->->->>(>f>)>>>s>

  }

}

通过公式(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窗。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号