霍夫曼解码器的设计及在MP3解码中的应用
[10-10 20:38:44] 来源:http://www.88dzw.com 电子制作 阅读:8478次
文章摘要:---以“表1”的码表为例,假设第一个输入的数据流由八位组成:“00100110”。开始解码的第一个周期累加器的值为“0”,解码的码字为“00”(A),码长为“2”。第二个周期,累加器的值为第一周期解码的码长“2”,累加器控制缓冲器移位2位,这样,解码的码字为“10”(D),码长为“2”。第三个周期,累加器的值为前两个周期解码的码长的和“4”,累加器控制缓冲器移位4位,解码的码字为“011”(C),码长为“3”。第四个周期,累加器的值为“7”,缓冲器中还剩一位数据。累加器控制缓冲器将前七位移出,输入新的比特流。算上上次解码剩下的一位“0”,假设第二个输入的8位数据是“10010101”,这样,
霍夫曼解码器的设计及在MP3解码中的应用,标签:电子小制作,http://www.88dzw.com---从上面的例子可以看出,不管码字的长短,各个码字解码所需要的时钟周期是相同的,而且解码的时间相对也比较短,比较适合要求实时解码的环境。而且当霍夫曼的码表改变的时候,只需要修改查找表中的数据就可以了,在通用性方面也比较方便。
4 霍夫曼解码器在MP3解码器中的应用
---作为一种重要音频数据的压缩算法,mp3算法以其优秀的压缩能力和较高品质的音质获得了较高的评价。在mp3的压缩算法中,霍夫曼编码的初始数据是DCT变换输出的音频频率线经过量化后的值。在mp3解码的过程中,霍夫曼解码器的作用是接受mp3比特流中的主数据,输出576条初始频率线。mp3的霍夫曼编码分为三个区域:Big-values,Count1,Rzero。Big-values区包含着出现频率最低的DCT系数,用最高的精确度来编码,为了进一步增强霍夫曼编码的精确度,将Big-values区再划分成三个区域,每个区域有32个码表可供选择;Count1区包含着出现频率中等的DCT系数,这个区中每四个值编码为一个码字,一共有2个码表供这个区域选择;Rzero区包含的是出现频率最高的频率值,全部被编码为0,不需要传输。在设计mp3解码器的霍夫曼解码器部分的时候,除了采用上述的平行结构,还要考虑上述三个区的起始边界,以及补零的问题。霍夫曼码字的三个区的起始边界信息和码表选择信息可以在mp3比特流数据的帧头和侧信息中找到;在解完Big-values和Count1两个区中的数据后,解码器还应该自动补0,直到解出576个频率值为止。MP3解码器中的霍夫曼解码器的状态机设计如图3所示。
5 结论
---我们以“ISO/IEC 11172-3”标准中的“霍夫曼码表6”为例进行验证最终仿真后输出波形如图4所示,“data_in”是数据输入端,“code_x” 和“code_y”是最终输出的码字,“valid”是有效信号,当“valid”为高电平时输出码字有效。
---通过实际地运行,并行结构的解码器很好地达到了mp3解码的要求。也可以方便的进行修改以满足各种应用环境的解码需求。另外经过验证此设计是可综合的,电路的关键路径是Shifter -> Look-up Table -> Accumulator -> Shifter,如果想达到更高的时钟频率可以进一步采用pipelining等结构对此关键路径进行优化。
《霍夫曼解码器的设计及在MP3解码中的应用》相关文章
- › 霍夫曼解码器的设计及在MP3解码中的应用
- 在百度中搜索相关文章:霍夫曼解码器的设计及在MP3解码中的应用
- 在谷歌中搜索相关文章:霍夫曼解码器的设计及在MP3解码中的应用
- 在soso中搜索相关文章:霍夫曼解码器的设计及在MP3解码中的应用
- 在搜狗中搜索相关文章:霍夫曼解码器的设计及在MP3解码中的应用