霍夫曼解码器的设计及在MP3解码中的应用
| 摘 要:变长编码技术(VLC)是在图像、视频和音频数据压缩中应用的一项主要技术。本文主要讨论一种主要的变长编码技术――霍夫曼编码及其解码器的硬件实现方法。作为mp3解码器中一个重要的模块,霍夫曼解码器的实现方法关系到整个芯片的实时解码目标能否实现。我们采用平行解码的方式来实现设计,利用查找表(LUT)的方式在较短的时钟周期内完成一个码字的解码。 关键词:VLC;霍夫曼编码;MP3解码器;查找表 |
| 1. 引言 ---在多媒体数据的压缩中,一项广泛应用的编码技术就是熵编码。作为重要的熵编码,霍夫曼编码可以通过消除统计的冗余数据来达到无损压缩的目的。本论文主要讨论霍夫曼(HUFFMAN)解码的硬件实现方法及MP3解码中霍夫曼解码器的设计。 2 霍夫曼编码算法 3 霍夫曼解码器的硬件结构研究 4 霍夫曼解码器在MP3解码器中的应用 |
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码
---熵编码规定,任何给定的一系列数据,如果每个数据符号出现的概率已知的话,就可以采用更有效率的方式来编码。霍夫曼编码的基本思想就是:给出现概率越高的数据符号编成越短的码字,给出现概率越低的数据符号编成越长的码字。
---虽然比特串方式的解码器有它的优点,设计难度小,消耗的硬件资源少,如图1此例中只需要3个触发器就可以了。但它的缺点也很明显:由于输入的码字长度的不同,解码所需要的时钟周期数也各不相同,这在解码过程中会引起比特率的不连续,从而需要额外的硬件来解决这个问题。另外,由于较长的解码时间也使比特串方式的霍夫曼解码器不适合应用在要求实时解码条件的系统中。
---以“表1”的码表为例,假设第一个输入的数据流由八位组成:“00100110”。开始解码的第一个周期累加器的值为“0”,解码的码字为“00”(A),码长为“2”。第二个周期,累加器的值为第一周期解码的码长“2”,累加器控制缓冲器移位2位,这样,解码的码字为“10”(D),码长为“2”。第三个周期,累加器的值为前两个周期解码的码长的和“4”,累加器控制缓冲器移位4位,解码的码字为“011”(C),码长为“3”。第四个周期,累加器的值为“7”,缓冲器中还剩一位数据。累加器控制缓冲器将前七位移出,输入新的比特流。算上上次解码剩下的一位“0”,假设第二个输入的8位数据是“10010101”,这样,下一个被解出的码字是“01001”(E)。第五个时钟周期,累加器的值为“12”,已经大于缓冲器的8位容量,因此用累加器的值减去“8”得到的值才是缓冲器中下一个未解码数据的位置。解码器重复以上过程,直到所有比特流中的数据全部解完。
