嵌入式MP3解码器中Huffman算法的硬件加速(1)
2015-06-26 01:02
导读:计算机应用论文论文,嵌入式MP3解码器中Huffman算法的硬件加速(1)样式参考,免费教你怎么写,格式要求,科教论文网提供的这篇文章不错:摘 要 Huffman解码是MP3解码流程中的一个重要部分,其运算量在整个流程中占有相
摘 要 Huffman解码是MP3解码流程中的一个重要部分,其运算量在整个流程中占有相当比重,其算法实现的优劣直接关系到MP3的实时解码。传统的Huffman解码多采用软件实现,从而增大了CPU的负担。本文介绍一种Huffman解码的硬件加速方案,并对Huffman码表进行了改进,而MP3解码器已在Altera的FPGA上进行验证,结果表明在实时解码的前提下,节约了CPU资源,并可显著降低CPU的工作频率。 关键字 MP3;Huffman编码;硬件加速;实时解码 1 引言 Huffman编码是一种无损的、可变长熵编码,其理论依据是使各个符号的概率均匀化,即出现概率大的符号编成短码,出现概率小的编成长码。在MPEG1_III中,根据音频数据的统计特性建有34张码表,为了实现最优的编码,编码器会根据当前处理的数据类型来选择码表进行编码。由于是对频域量化值进行编码,一般大值主要集中在低频部分,而零值则集中于高频部分,所以各个频段可以灵活选择编码效率更高的Huffman表。按照MPEG1_III标准,从零到Nyquist采样频率范围上的量化值被分成big value,count1,zero三个区域,对于big value区和count1区采用不同的编码方案。为提高编码效率,在big value区每两个绝对量化值转换为一个Huffman码字;count1区4个绝对量化值转换为一个Huffman字;zero区的量化值全为零,从而不需编码和传输。另外为了进一步提高big value区的编码效率,将其细分为region0,region1,region2 三个区域,允许每个区域选择不同的码表。2 Huffman解码算法分析 经过分析,Huffman硬件加速实现的难点在于Huffman码表的设计,码表效率的高低直接决定了Huffman硬件解码的速度。本设计采用分步查表法进行Huffman解码,其主要思路是在码表中加入索引(Index)来指明下一次查表的码表位置,这样查表工作就被分为若干次完成,每次读入固定的比特数,如命中则输出解码值,否则根据当前位置的索引值去码表中进行下一步搜索,图1为所示步骤。这样,只需增加少量存储码表空间就可以实现快速查找,一次读入的比特数越多查找速度就越快。在对查表速度和存储空间进行权衡后,对于MPEG1_III协议中的表1,表2及表3采用3bit的搜索步长,其它表采用4bit;同时也改进协议中的Huffman码表以适应分步查表法。Huffman码表的每一项都由码字和码表构成,且码表中的每一项都按照输入码字的顺序进行排列。下面以count1区的table A为例加以说明。

图1 分步查表法 图2为MPEG1_III协议中的table A,图3为根据分步查表法特点,将协议中的table A调整后的新码表。当输入的码字为0100时,它在码表中对应的位置为地址0100。这样排列可以很方便地根据输入的码字进行地址映射,减少了计算映射的逻辑单元。如果一次查表未能命中,则根据码表中给出的跳转地址进行二次查表。调整后的新码表比原先有所增大,其目的是当输入固定比特长度的码字都可以在表中直接查找到,而不需额外的计算。在查表得到解码共2页: 1 [2] 下一页 论文出处(作者):
(转载自科教范文网http://fw.nseac.com)
基于规则和语料库的中文姓名识别研究
基于PDA的Linux文件系统裁剪问题研究