论文部分内容阅读
目前,音频解码主流的解决方案有基于DSP的解码方案、基于RISC处理器的解码方案以及基于ASIC的解码方案。其中,基于DSP或者RISC处理器的解码方案虽然有兼容性好、开发周期短的优点,但是解码器的整体功耗较高,无法满足移动终端对功耗的要求;而基于ASIC的解码方案虽然具有低功耗的优点,但是它的灵活性比较差,而且开发周期比较长;而软硬件协同设计兼顾了低功耗和兼容性的要求。基于以上几种方案的优缺点,本文在进行MP3和AAC音频解码器的设计时采用了软硬件协同设计的解码方案。整个解码器由一个CPU核加上硬件加速模块组成,所有解码工作可以通过运行在CPU上的软件与硬件模块协同完成。本文的主要工作包括以下几个方面:首先介绍了各种音频解码的实现方案,分析和比较了它们的优点和缺点,并且在此基础上提出了基于软硬件协同设计的音频解码方案。然后,本文介绍了软硬件协同设计的基本原则以及步骤,并且从MP3和AAC音频的解码算法分析出发,详细分析和讨论了各个模块的复杂度。在复杂度分析结果的基础上,本文对MP3和AAC音频的解码进行了软硬件模块的划分,即将计算集中的模块以及计算频繁的操作运用硬件实现,而将控制集中的模块通过软件来实现,根据软硬件划分的结果确定了MP3和AAC音频解码器的整体架构。接着详细讨论了MP3和AAC音频解码器的硬件实现模块的设计,包括VLD模块和频时变换模块。对于MP3和AAC音频中Huffman解码器的设计,本文采用了一种效率高和占用资源少的硬件实现方法—十六叉树搜索法。对于频时变换计算模块,本文采用统一的基于DCT-II的变换核的快速算法对MP3的综合滤波器组和AAC的IMDCT进行计算。然后具体介绍了MP3音频解码的软硬件协同实现。完成软硬件的协同工作。此外,本文还进行了针对MP3音频解码的软件进行了算法优化和定点化,包括浮点变量的定点化以及浮点算法的定点化,定点化的结果表明精度满足设计的要求。最后对上述设计的MP3音频解码器进行了软硬件的协同验证,并且对其性能进行了软硬件协同的评估,包括硬件消耗资源的开销评估以及运用硬件加速模块之后取得的效果的评估。性能评估以及最后码流测试的结果表明:本设计可以在Xilinx的XUP V2P开发板上实现MP3音频的单声道32kHz采样码流的实时解码。