带有查找表的霍夫曼代码
Huffman code with lookup table
我在互联网上读过一篇文章,知道从根目录遍历解码的自然方式,但我想用查找表更快地完成。
看完之后,我仍然不明白要点。
例如:
输入:"abcdaabaabaaa"代码数据0 a10 b110摄氏度111 d
文章说,由于长度可变,它通过取最大代码长度,并将其用作索引。
输出:"010110111001000010000"需要索引索引(二进制)代码位0 000 a 11 001 a 12010年2月1日3 011 a 14 100 b 25 101 b 26 110 c 37 111 d 3
我的问题是:
-
due to variable length, it determine the length by taking a bit of string of max code length
是什么意思?如何确定长度? -
如何生成查找表以及如何使用它?背后的算法是什么?
对于您的示例,最大代码长度为3位。因此,您从流(010)中提取前3位,并使用它来索引表。这给出了代码"a"和位=1。你从输入流中消耗1位,输出代码,然后继续。在第二次循环中,你会得到(101),它的索引为"b"和2位,等等。
要构建该表,请将其设置为1<lt;max_code_length,并填充详细信息,就像将索引解码为huffman代码一样。如果你看看你的例子,所有以"0"开头的索引都是a,以"10"开头的指数都是b,依此类推
相关文章:
- 为什么指标有时效果很好,有时效果不佳?写下霍夫曼代码
- 如何存储霍夫曼转换后的二进制代码?
- 霍夫曼压缩机/解压缩器
- 关于广义霍夫变换代码
- 霍夫曼编码 c++
- 霍夫曼解码功能反复反复压缩一个字符
- 霍夫曼解码压缩文件
- 实现霍夫曼树
- 没有指针的递归结构?(霍夫曼)
- 大文件的霍夫曼树
- 哪种方法更适合霍夫曼编码 我想读取字符及其频率
- 霍夫曼编码创建树C++
- 霍夫曼以位存储代码
- 带有查找表的霍夫曼代码
- 使用 std::unique_ptr 的霍夫曼树代码不起作用
- 霍夫曼解码中的递归函数不退出
- 霍夫曼代码,树的初始输入有问题
- 霍夫曼代码 - 分段错误 11.
- 在霍夫曼压缩后将代码表存储在压缩文件中,并从此表构建用于解压缩的树
- 如何使用霍夫曼代码压缩文件