基于MIPS平台的 MPEG-4 AACplus v2解码器的实现

1 引言
MPEG一4运动图像及其声音的编码标准是由国际标准化组织(ISO)和国际电工委员会(IEC)的运动图像专家组(MPEG)制定的,MPEG一4音频编码标准作为MPEG一4国际标准的音频部分,代表了当前音频编码技术的主流_l1。它通过提供标准化的技术基础,使得数字电视、交互式图形应用和交互式多媒体等应用领域中产品的制作、发布和内容获取的整合成为可能。

MPEG一4 AACplus v2是最新的MPEG一4音频技术,它包含了3种MPEG技术:高级音频编码(Advanced Audio Coding,AAC),频带重现(Spectral Band Repli—cation,SBR)和参量立体声(Parametric Stereo,PS)。其中,AAC是MPEG一4标准的音频编码规范;SBR是独特的带宽扩展技术,这使得音频编解码器可在比原来少一半的比特率条件下产生相同质量的音频效果;PS技术大大提高了低比特率下立体声信号的二次编解码效率,能使低比特速率的立体声信号的编解码效率增加一倍。

MIPS是一种很流行的RISC处理器,它采用精简指令系统计算结构(Reduced Instruction Set Computer,RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(Complex Instruction Set Computer,CISC)相比,RISC具有设计更简单,设计周期更短等优点,并可应用更多的先进技术,更快地开发下一代处理器。

与目前流行ARM相比,MIPS具有3P优势,即价格、功耗和性能。HSB1101开发平台是一款基于MIPS的嵌入式计算机平台,笔者完成了MPEG-4 AACplus v2解码器在HSB1 101开发平台上的实现,并结合HSB1 101开发平台的特性,对MPEG一4 AACplus v2解码器进行了优化设计。实验结果表明,该解码器在确保音频解码质量的同时,解码速率也有很大提高,很好地满足了解码实时性的要求。

2 MPEG一4 AACplus v2编解码原理
2.1 MPEG一4 AAC 主要编码模块的介绍

2.1.1 心理声学模型
心理声学模型(psychoacoustic mode1)根据人耳的心理声学原理,在对输入信号进行编码时,只对人耳可昕到的部分进行处理,丢弃了人耳听不到的部分。AAC中的心理声学模型主要应用了心理声学中的临界频带、同时掩蔽、掩蔽扩散以及绝对听觉阈值等效应。

2.1.2 增益控制
增益控制模块(gain control module)主要是由多相正交滤波器(PQF filter)、增益补偿器(gain compensator)和叠加处理器(overlap/add processor)组成。该模块对声音信号进行了能量的控制与衰减,使声音信号的能量范围变小,因此,降低了该信号在解码时引入前回声的机率。

2.1.3 块转换/滤波器组
AAC滤波器组使用改进的离散余弦变换(MDCT),把时域上的输入音频数据变换成频域数据。另外,由于余弦变换在边界处存在固有的不连续性,因此在块边界处可能产生很大的噪声。相邻块的采样值在时问上重叠,有利于消除这种噪声,这种技术被称为时域混叠抵消(Time Domain Alias Cancellation,TDAC)技术。

2.1.4 瞬时噪声整形
瞬时噪声整形(temporary noise shaping)~lJ用了时频的对应关系,对频域数据进行预测,以此来修正时域信号。

2.1.5 预测
时域预测的方法是利用前两个帧的信号来预测当前帧的信号,将实际时域信号与预测信号相减得到预测残差,对残差进行量化编码[21,解码时,则利用预测残差和预测值重建频谱信号。

2.1.6 强度立体声和M/S立体声
强度立体声(intensity stereo)就是用左声道表示实际左声道强度,右声道记录左右声道各子带的能量比,从而使右声道的编码比特数显著降低。M/S立体声将两个声道频谱值分别相加和相减,将得到的值存入两个声道,这样两个频谱值相减的声道频谱值大部分为0,从而显著降低了编码的比特数。

2.1.7 量化和无噪声编码
量化(quantization)模型的基本目标是对频谱数据进行量化,使得量化噪声满足心理声学模型的要求。

而无噪声编码(noiseless coding)主要是对输入数据进行Huffman编码。
MPEG一4 AAC编程流程图如图1所示。

1

2.2 AACplus v2新增加的2个模块
AAC,AACplus vl和AACplus v2的关系图如图2所示。

2

2.2.1 频带重现
当比特率低于128 Kbifs时,大多数编码技术产生的音频质量都有了明显的下降。这是因为编码器要么开始减少音频带宽并修正(通常是收窄)立体声的映像,要么意图通过更少的比特数来重现完整的音频带宽,同时导致在音频中引入了编码噪声(coding arti—facts)。SBR就是寻求解决这种问题的一种全新的音频编码增强工具。SBR是在音频压缩算法中的一种实现高效高频率的编码新方法。当联合SBR一起使用,其主体编码器只负责处理音频频谱的低频部分。高频部分则由SBR解码器产生,这是紧跟在传统波形解码器之后的一个后处理过程。SBR基于对主体编码器处理得到的低频信号进行分析,在解码器上重建高频部分。为了确保精确重建,一些指导信息以非常低的数据率夹杂在主体编码器产生的码流中一同传输。因而,SBR实现了在非常低数据率下的全带宽音频编码,与主体编码器相比,压缩效率明显增加。

2.2.2 参量立体声
参量立体声技术是为提高低比特率立体声信号的音频压缩效率的一项主要举措。参量立体声编码器从音频信号的立体声影像中分解出其参量表示,而在传统模式下原始信号只会被编码为单声道表示。立体声映像信息被表现为少量的高质量的参量立体声信息,与单声道信号在比特流中同时传输。然后,基于接收到的参量立体声信息,解码器便可重建立体声映像,测试结果表明合并有参量立体声的低比特率(例如24 Kbit/s)的音频比特流,所能让听众感受到的音频质量明显高于不具备参量立体声的相似音频比特流的质量。

3 HSBll01开发平台介绍
3.1 HSBllO1开发板介绍
HSB1 101开发板是一款基于MIPS的嵌入式计算机平台,它基于32bit MIPS架构的CPU-AU1100处理区。该处理器适用于设计移动手持设备类产品,具有高性能、低功耗、接口丰富和体积小巧等优良特性。HSB1 101开发板正是基于此芯片本身的各种特点而设计的。HSB1101开发板的设计遵循了AMD AU1100嵌入式芯片的特点,其设计理念参考了当前市场上众多的开发板及嵌入式单板机的优点,并融入最新掌上计算机、手持设备的特点,是一款单板机和开发板两用的嵌入式系统平台。

3.2 Mediaplayer工程介绍
在HSB1101开发板上,通过Mediaplayer这一工程,对整个音频解码流程进行操作和控制。

Mediaplayer由若干个相互独立又互相联系的模块组成,每个模块都具有良好的封装性,同时具有便于外界调用的接口。对于不同的使用者来说,每个模块都可作为一个独立的任务或者线程。图3给出了Mediaplayer具体的流程图。

3

由Mediaplayer的流程图可看出,输入的数据首先由demux模块将其分为视频和音频数据两部分,而此处只需调用音频模块部分,然后通过audio driver调用完成库函数封装的MPEG一4 AACplus v2解码器即可进一步进行解码流程。

通过HSB1101平台上Mediaplayer这一工程,一方面使得整个工程的架构模块化更加清晰,为以后进行音视频的同时调用提供了有效的接口;另一方面,大大提高了程序的移植性。

4 MPEG一4 AACplus v2解码器的优化设计
4·1对解码流程中开销较大的函数进行汇编 化
表1列出了profile文件中提供的开销较大的函数。

4

结合MIPS指令系统[31的特点对代码进行优化之后,整个流程所消耗的指令周期数由258 389 800降至18 778 664,由表1可看出解码效率有了明显的改善和提高。

4.2 对解码模块进行库函数封装
这样做有3点作用:
第一,为外部调用提供接口。将整个解码流程过程中用到的功能模块封装起来,这样外部驱动进行调用时,只需要利用封装后提供的接口就可执行解码过程州。

第二,保护内部数据,使整个架构的模化更加清晰。做成库函数之后,各个功能模块相对独立,即使改动外部的驱动程序,也不会影响到功能模块内部的功能实现;同样地,当需要修改或优化模块内部代码时,也不会影响到外部的驱动程序,从而使得这个程序架构的模块化更加清晰明了。

第三,提高可移植性。由于对程序进行了清晰的库函数整理和封装,提高了解码功能模块的可移植性,便于从一个平台向另一个平台移植。

5 MPEG一4 AACplus v2解码器的性能测试
为了更直观地体现上述措施所达到的效果,这里给出了在HSB1101开发平台上实现的MPEG一4 AAC—plus v2解码器的测试结果。在测试过程中,采用了一段22 050 Hz采样率、ADTS格式的MPEG一4 AACplusv2码流,从音频解码质量和解码速率两个方面来介绍测试结果。

5.1 解码质量
为了比较解码质量,将HSB1101上的PCM输出音频码流与标准浮点解码器的输出进行对比。此处使用最大绝对误差MAX E和均方根误差冗 S。

根据参考文献[5】中,有限精度(12 bit)的MP3解码器的误差指标要求,即
MAXE≤9.7xlO ,RMS≤1.4xlO。 (1)
经过计算可得出测试序列在32 bit定点解码器情况下的指标为一4 —4
MAX E≤9.32x10 ,尼 S≤1.22x10 (2)
由此可见,该解码器满足有限精度解码器的精度指标要求。

图4~5给出了测试音频码流通过标准浮点解码器和HSB1101开发平台上的解码器分别解码后得到的音频码流的波形图。

5

5.2 解码速率
要保证解码的实时性,解码器的运算速度是非常重要的因素。通过上述的代码优化措施,MPEG一4AACplus v2解码器在HSB1101开发平台上的运行速度得到了很大改善,对于解码测试序列,该解码器解码1帧平均要用700 k指令周期,每秒音频解码共需要30 M指令周期,远小于HSB1101每秒所能执行的指令周期数(400 M)。因此,该解码器不但保证了音频处理的实时性,同时还为视频解码和其他应用提供了充足的处理空间。

6 结束语
给出了MPEG一4 AACplus v2解码器在HSB1 101开发平台上的实现方案,结合HSB1101开发平台的特性,对解码器进行了优化。实验结果表明,该解码器在确保了音频解码质量的基础上,‘解码速率也很好地满足了实时性的要求,与此同时,由于每秒音频解码所需要的指令周期数远远小于HSB1101每秒所能执行的指令周期数,该音频解码器也为视频解码和其他应用提供了足够的处理空间。

若你对采用Imagination IP设计的产品感兴趣,并想了解更多?
欢迎关注我们的微信(微信号imgtec)和微博(地址 http://weibo.com/ImaginationTech )吧。

--电子创新网--
粤ICP备12070055号