论文部分内容阅读
AAC是一种低码率、高保真的音频编码标准,它的特点是:压缩率高,最大可达20:1,音质好,支持多种采样率及48个声道。相比于MP3、AC3等编码标准,在相同音质下AAC的码率更低,能有效节约传输带宽。AAC在数字音频的存储、多媒体的网络传输和数字音频广播等领域得到日益广泛的应用。因此,研究和实现AAC解码器具有重要的现实意义。目前实现AAC解码器的方式主要有两种:基于通用DSP的实现方式和ASIC实现方式。本课题采用了基于音频专用DSP核的音频解码方式,这种方式是前两种实现方式的折衷。音频专用DSP核相比于通用DSP,具有更适合于音频编解码的专用架构和专用DSP指令,它能在较低的频率下满足音频编解码的实时性要求;相比于ASIC实现方式,具有更好的灵活性,开发周期较短,容易同时兼容多种音频编解码标准。本文首先分析了MPEG-2 AAC解码器的各个模块的算法原理。为达到解码实时性的要求,在算法上分别对Huffman解码和反量化算法进行了优化。基于Huffman码表的特点,提出了一种新的快速Huffman解码算法。该算法由Huffman码字的首零位置来快速确定Huffman码字的码长,由码字码长和该码长的初始码字来确定该码字在码表中的位置,从而快速完成Huffman解码。基于该算法的Huffman解码效率比C定点程序中的算法提高了30%;利用查表法和多项式逼近的方法实现反量化算法。算法优化完成后,基于音频专用DSP核的指令集并采用合理安排代码顺序、合理利用通用寄存器、减少函数调用等汇编程序设计技巧,设计了AAC解码器的解码程序,其中IMDCT的实现是通过DSP专用指令调用IMDCT硬件加速器来完成。最后,基于软硬件协同验证平台对AAC解码器进行了实验验证,并且在解码时间、存储资源消耗及解码质量上对AAC解码器进行了评估。利用Modelsim对采样率为44.1KHz的AAC音频文件中编码最复杂的一帧数据进行仿真,解码这帧所消耗的指令周期为233680个;存储资源消耗了52.35KB;解码器的信噪比与商用解码器的信噪比基本相当。通过AAC音频解码实验验证,解码器能够在33MHz的时钟频率下成功实时解码,主观听觉上音质较佳,无噪声。