登录站点

用户名

密码

MPEG-2ACC解码器的优化设计

已有 824 次阅读  2009-09-28 11:21   标签解码器  设计 

MPEG-2ACC解码器的优化设计

媒体和许多应用领域里,对声频编码的效率提出一种新的要求。当需要高编码效率来克服带宽的限制时,可使用一种新型MPEG标准,这种标准称为先进的声频编码标准(MPEG-2AAC ISO/IEC 13818-7)。这种新标准与其他MPEG声频标准相比,具有很多优点,如能摆脱某些基于约束的兼容性和提供高质量的声频等。另外,它也能把高分辨滤波器存储体、预测技术、瞬时噪声整形(Temporal Noise Shaping,TNS)技术和霍夫曼编码有效地组合在一起,从而为新标准具有特有性能奠定良好的基础。由于它具有高性能特点,所以这种新标准能构成MPEG-4ACC声频标准的内核。

MPEG-2AAC编码器是国际上普遍认同的一种标准,它在消费类电子产品中获得广泛应用,如声频点播(Audio On Demand,AOD)、HDTV系统和数字声频广播(Digital AudioBroadcasting,DAB)。

MPEG-2AAC编码器能为质量和复杂性提供不同的折中解决方案。为了实现这个目的,在设计过程中必须定义三种配置文件:主配置文件、低复杂性(Low-Complexity,LC)配置文件和可扩充采样速率(Scalable Sampling Rate,SSR)配置文件。在这些文件中,只有主配置文件能提供更高的质量,但需要更高的复杂性,这因为它包含除增益控制工具外的所有工具。因此,为了实现内含主配置文件的MPEG-2AAC解码器时,必须花费大量的计算和存储器资源才能满足要求。这些问题主要涉及到霍夫曼解码、预测和高分辨率滤波器存储体。在处理这些步骤过程中,能构成MPEG-2AAC解码算法,而这些处理步骤的特性可归纳如下。

霍夫曼解码

霍夫曼解码能够使用可变长度代码来进一步降低比例因子和量化频谱数据的冗余。因此,在AAC过程中,可以使用一种比例因子霍夫曼码本和11种特殊的霍夫曼码本。但是这些码本表格需要大容量的存储器才能存储,另外,码本和搜索也需要许多计算量。

预测

先进的声频编码(Advanced Audio Coding,AAC)技术使用一种预测工具来提高冗余简约。在这种处理步骤中,通常使用二阶反向自适应预测器来消除后面子带采样之间的冗余。预测工具对静止信号特别有效,但是配置上述过去帧的状态变量能增加存储器资源的开销。

高分辨滤波器存储体

与MPEG/声频layer-31混合滤波器存储体不同,ACC使用一种改进的离散余弦变换(Modified Discrete Cosine Transform,MDCT)技术。为了进一步增加窗口长度、自适应窗口整形函数和变换模块的切换,MDCT必须超额完成上述编码的滤波器存储体。另外,它也能为滤波器存储体提供更好的频率选择性,但是当频率灵敏度增加时,则必须以更高的计算复杂性为代价。

在这里,提出一种新的设计方案,该方案能够优化2通道MPEG-2ACC解码器,并能支持主配置文件。为了解决系统复杂性和存储器之间存在的制约问题,研发一种有效的处理结构,而这种结构是由3个硬件模块组成,这3个模块分别为霍夫曼解码器模块、预测模块和DSP核模块。其中DSP核是可编程的,它利用可编程的性能为系统提供最大的灵活性。而ACC解码算法是利用它自身的汇编语言进行编程。另外,这三种硬件模块均是以并行处理结构组成,从而能够得到最大的处理效率。为了解决由于高分辨率滤波器存储体产生的沉重负担,这里使用由Duhamel et al.提出的快速IMDCT算法,这样才能完成预测的解码任务。

1  优化设计

在MPEG-2ACC解码器设计时,将涉及到多种优化措施,如霍夫曼解码工具、预测工具和快速T/F变换。

  (1) 夫曼解码工具

  在进行MPEG-2ACC解码设计时,只要利用位流中的辅助信息,就能选择12个霍夫曼码字中的一个。利用所选的霍夫曼代码字,我们就能够对霍夫曼代码字进行解压缩处理,然后利用解压缩霍夫曼代码字的码索引,就能得到量化后的频谱系数。因为霍夫曼工具包含12个霍夫曼的码字,如要存储,则需要很大的存储器空间。另外,在进行霍夫曼解压缩处理时,将会涉及到许多运算,这样对DSP核的控制显得很费劲。

行设计时,霍夫曼解码器可利用快速硬连线逻辑来实现。所设计的霍夫曼解码器能够在一个单时钟周期里对一个霍夫曼编码索引进行解码。现将硬件和软件实现霍夫曼解码器的性能进行比较,比较结果见表5-5,从表中看出,用硬件实现霍夫曼解码器比软件实现更有效。


(2) 预测工具

MPEG-2ACC的预测工具是采用自动校正技术,能对帧的连续频谱值进行自动校正,并能完成每个频谱系数的预测,这些均是利用二阶反向自适应点阵滤波器来完成的。在实时操作时,当每个频谱分量的频率达到16kHz时,则产生一次预测,此时,预测系数可用LMS算法进行更新。

在电路设计时,通常预测工具需要一个高精度处理器。另外,对于每个预测器的状态变量需要大量的存储元件。因此,可利用硬线逻辑(浮点运算之和与存储器模块构成)来完成预测。由于预测和其他处理是独立完成的,所以它们能够以并行的方法实现各自的功能,从而提高解码系统的处理速度。

(3) 快速T/F变换

滤波器存储体工具能够把时间一频率表示的编码信号转换为时域信号,这种转换是利用反向改进的离散余弦变换(Inverse Medified Discrete Cosine Transform,IMDCT)来完成的,它实际上是使用一种称为时域图形失真消除(Time-Domain Aliasing Cancellation,TDAC)的技术。

IMDCT的特征表达式可表示为


为了将式(5-1)中Xi,n计算得到的冗余去掉,应使用快速算法,为此,推荐使用快速IMDCT。算法来实现滤波器存储体工具。这种算法能够使用一种N/4点复杂FFT来完成N点的IMDCT,因此,它能够降低整个系统的计算量。快速IMDCT算法的流程图,如图5-15所示。

 


在设计优化过程中,将涉及到可编程数字信号处理器和有关系统结构等问题。

    a.可编程DSP核

为了满足系统设计优化的要求,系统中的DSP核设计时必须具有下列特点:

    (a)高质量声频编码

在实际操作过程中,由于声频编码较多,如MPEG-1/2 Layer II,III,MPEG-2AAC和AC-3,所以必须对这些算法进行分析,从中找出一种算法能满足处理器运行时所需的精度。而处理器的精度要求可根据ISO/IEC 13818-4顺应性和最高级设备产生。根据上述的分析,DSP核的性能必须满足下列要求。

    ①数据处理单元应该具有下列形式:

24位数据,48位ALU,累加器;   

乘法器能够支持多种乘法形式:即带符号位与不带符号位、带符号位与不带符号位、不带符号位与不带符号位的乘法;

收敛舍入器和限幅器。

②需要一个大于18位PCM输出。

③在一个MAC操作周期里,能高效地完成F/T变换处理。

④能为AAC的缓冲器管理中的2048模量寻址。

⑤对于AC-3和AAC算法,它能高效地完成512点复杂FfT(CFFT)。

(b)低功耗

硬件结构电路中的低功耗应该考虑采用两种方法:屏蔽和避免,可根据实际情况分别使用。

    ①避免

为了防止产生不必要的功耗,在电路设计时,应该使用最少的硬件资源。为了实现这个目的,可使用单个ALU,但是对于高速指令流的控制,应该采用3级流水线的哈佛结构。

②屏蔽

对于不需要用的硬件资源可采用屏蔽的方法以减少这些器件的功耗。为了实现这个任务,在DSP核设计时,应考虑到能够切断在激活状态下不使用硬件的电流流动。在实际设计中,只要利用锁存器就能够实现对输入的切断。利用锁存器实现低功耗的结构图,如图5-16所示。从图中看出,当允许端(Enable)=l,输出=输入;当允许端=O,则输出=输出,此时输入被锁存器切断。


(c)易编程

为了使编程简化和方便,在指令设计时,应能为声频算法提供最大的自由度空间。尽管操作调度和硬件资源分配已经完成,但编程人员仍然能使用3级流水线进行编程。

b.系统结构

推荐的AAC解码系统结构图如图5-17所示。该系统由一个专用的处理器核和两个硬件逻辑模块组成。其中硬件逻辑模块是由霍夫曼解码和预测模块组成。由于霍夫曼解码工具需要大的计算量,为了提高计算效率,它所示的结构设计必须具有快速工作的能力。另外,预测工具需要高精度运行,高计算能力和多个存储器,这样必须利用浮点结构单元和外部存储器模块才能完成预测的任务。


 系统中的专用处理器核是一种20位定点可编程的DSP,它能对各种声频信号进行优化处理。这些处理涉及到引无噪声编码、反向量化、标度因子、M/S(多/单)密度立体声、TNS和滤波器存储体工具。

2  硬件模块电路

系统结构中主要涉及到专用的DSP核、霍夫曼解码器和预测器,现对这些模块分别进行分析。

    (1) 霍夫曼解码器

在电路设计时,霍夫曼解码器模块可利用组合硬件逻辑来构成。这种模块由12个霍夫曼表格模块和能够选择12个霍夫曼表格逻辑之一的霍夫曼表格选择逻辑组成。在每一个霍夫曼表格(码本)ROM和每一个霍夫曼索引选择逻辑里,均能把位数据流和霍夫曼表格数据进行比较,这样才能足以返回到霍夫曼编码索引。采用这种结构,编码处理仅需要一个时钟周期。霍夫曼解码模块的结构如图5-18所示。


(2) 预测器

预测器设计的结构框图如图5-19所示。在设计时,预测工具使用一种16位浮点运算单元,而数据地址发生器(Data Address Gen-erator,DAG)模块能为预测器提供各种状态变量的地址。另外,预测器控制器能完成运算单元和DAG单元之间的控制。

 


(3) 处理器核

MPEG-2AAC解码器中的处理器核设计时,它的运行时钟速度最小值应为40MHz,这样才能满足系统所要求的性能。DSP核的模块是由取指令单元、指令解码器单元和执行单元组成。其中执行单元是由数据处理单元和数据地址发生器组成。

DSP核中的数据处理单元是根据单个MAC结构组成,而数据处理单元的内部结构图如图5-20所示。

 


处理器核是可编程的,它能使用自身的汇编语言进行编程,并支持其他的特殊指令,如解压缩(UNPACK)、霍夫曼(HUFFMAN)以及一般运算和逻辑指令(包括硬件MAC)。对于位语法分析,解压缩是一种很有用的指令,这点在软件设计和实际使用时尤为注意。另外,本系统中所有指令均在一个单周期里完成。

(4) 系统模块性

系统模块性是本系统的重要特点,它能使系统具有非常灵活的模块结构,即系统中的某些模块(如预测器)能够容易去掉和重新组合。带有预测器的处理器核能够作为AAC解码器的一种主要配置文件,另一方面,没有预测器的处理核能够作为AAC解码器的一种LC配置文件。本文所设计的结构能够很容易地把解码器的主要配置文件转换成解码器的LC配置文件(LC即低复杂性)。它是利用移去预测器来实现的。在这种转换过程中,无需对系统结构进行任何修改。具有MP3霍夫曼解码器的DSP核能够作为MP3解码器,如果采用MP3的附加霍夫曼表格,则设计的霍夫曼解码器模块既能作为MP3解码器,又能作为AAC解码器。同样,DSP处理核也能作为AC-3解码器或MP2解码器或双Ac-3和MP2解码器。总之,本文所设计的硬件能够根据用途要求很容易地进行重新配置,这些可能配置的解码器如图5-21所示。


3  系统功效

为了对完成系统进行校验,必须在设计系统上施加两种验证。第一种验证是检查解码算法的正确性,而第二种验证是校验解码处理实时操作的可行性。这两种验证均是使用DSP核的模拟器中的C语言。

    (1) 解码算法

在对解码算法正确性验证时,首先要进行定点模拟,而定点模拟器是由解码器的输出估算来完成的。这里使用定点模拟器的主要目的是能够降低由于有限字长制约而带来的误差。   
为了测量设计系统的声音质量,必须完成ISO/IEC 13818-4顺应性试验。为此,定义两个参数,它们分别用式(5-2)和式(5-3)表示的噪声电平(NL)和最大误差速率(MER)。


根据ISO/IEC 13818-4顺应性试验要求,NL<-101dB满刻度,MER<1。那么,对于
一个完成系统的性能归纳见表5-6,表中Np是处理位数,No是输出PCM的位数。



从表中试验结果表明,输出质量优于20位精度,才能满足IS013818-4的要求,同样,输出PCM至少也应为20位,才能通过顺应性试验。另外,从结果中看到,当精度达到20位时,就能在系统复杂性和输出质量之间找到一个好的折中性能。因此,只要使用一个20位DSP核就能完成AAC解码器,并使其性能满足声音质量设计要求。

最后要说明的一个问题是,PCM输出采样同样也可以利用DSP核的软件模拟器来得到,其值恰好与试验得到的结果是相等的,从而能进一步说明我们使用的解码算法的正确性。

(2) 解码处理实时操作

在验证解码处理实时操作的可行性时,通常是在最坏模拟情况下测量时钟周期数来完成的。当采样频率为48kHz和处理核工作频率为40MHz时,则一个时间采样进行实时解码处理所需要的时钟周期数为


因此,解码系统必须用小于833.3时钟周期完成一个帧的整个处理。在处理过程中,每个解码处理步骤所需要的时间周期数是不同的,主要决定每个步骤计算的难易程度。有关各个处理步骤所需的时间周期数归纳见表5-7,从表5-7中看出,设计一个MPEG-2AAC解码系统,只要花费小于361828周期就能对一帧声频进行解码处理。因此,在系统设计时,只要选择DSP核的指令执行速度为16.9MIPS,就能对一个2通道MPEG-2AAC主配置文件位数据流进行实时解码。此时,完成系统程序和数据存储器的容量应该为多少,也就是说完成系统的复杂性如何。它可以归纳为表5-8。而系统的门数和数据通路的最大延迟见表5-9和表5-10。



4  结论

我们提出一种有关MPEG-2AAC解码器的新型设计方案,它能够支持主要配置文件。设计的处理器是一种混合结构形式,由一个定点DSP核和两个硬件逻辑模块(霍夫曼解码器和预测器)组成。设计的系统能够支持除掉耦合通道工具外的所有解码工具,同时,它也能支持多种采样速率(32kHz、44.1kHz和48kHz)运行。

为了验证设计系统,可利用模拟器来校验,它能把系统的16位PCM(脉码调制器)输出与浮点和定点模拟的结果进行比较,从而估算出系统的精度。模拟结果表明,完成系统和定点C模型提供相同的精度,而浮点和定点模拟结果表明,仅有两位的误差(最大值)。这些结果均是在16位PCM(脉码调制器)输出进行比较时得到的。

当DSP工作频率为40MHz时,设计系统仅花费361828个周期,就能对单声频帧(16.9MIPS)进行解码。即便使用最简单的设计系统,它仍然能够高效率地支持2通道MPEG-2AAC主配置文件的解码处理。

上一篇: 具有DAC和电源优化功能的MP3解码器 下一篇: 单片DSP的数字摄像系统

分享 举报