资 源 简 介
在Jpeg中Huffman采用的是范式Huffman编码。经过查相关资料有两种不同说法,请高手指点。谢谢!
1、构造范式 Huffman 编码的方法大致是:
分别统计从最大编码长度 maxlength 到 1 的每个长度对应了多少个符号。根据这一信息从 maxlength 个 0 开始以递增顺序为每个符号分配编码。例如,编码长度为 5 的符号有 4 个,长度为 3 的有 1 个,长度为 2 的有 3 个,则分配的编码依次为: 00000 00001 00010 00011 001 01 10 11
问题:如果按照这种说法那么我在一付图像中渡到的数据是:编码长度为 6 的符号有 1 个,长度为 5 的有 1 个,长度为 4 的有 3 个,长度为3的个数为4个,长度为2的个数为1个。按照以上的算法得到的编码为:000000;00001;0010;0011;001;010;011;100;01。出现001是0011的前缀。在读取数据流的时候将不能区别。
2、另外一种说法,曾经发帖问过。前面的长度编码加1左移一位得到后面长度的编码。像我这个例子如何确定最短码的起始值?
谢谢大家指点具体的范式Huffman编码实现