你能解释一下如何从 lz77 转换为霍夫曼吗?
Could you explain how to convert from lz77 to huffman?
你能解释一下如何在下图中的示例中将 lz77 转换为 huffman 吗?
简单:
在第一步中,您的输出基本上是 3 个数字:
- 上一索引
- 要重复的字符数
- 下一个字符(ascii 或 unicode)
该算法要求您预先指定滑动 window。这意味着您知道 (1) 和 (2) 最多可以有多大。
换句话说,您知道 (1) 和 (2) 将占用多少位。
由于 (3) 本质上也是来自固定长度字母表的字符,因此您还知道 (3)
的位长
这意味着简单地连接它们是安全的。
因此,第一个算法的输出可以被认为是输出一个位序列,其中序列中的每一项都有固定的长度。
这是应用哈夫曼的理想选择。
当然具体的就不说了,大家可以选择很多。
- 归一化霍夫曼 table
- 左分支 1 vs 左分支 0
- 合并数量相似的项目时的优先级
- 等等
所以我无法轻易解释您显示的确切输出值。
但我希望我至少可以解释一下如何从 A 到 B。
你不能。显示的编码是比喻性的。不是字面意思。符号A、B、C都被编码为单个比特0。显然这对解码端的帮助不大。
你能解释一下如何在下图中的示例中将 lz77 转换为 huffman 吗?
简单:
在第一步中,您的输出基本上是 3 个数字:
- 上一索引
- 要重复的字符数
- 下一个字符(ascii 或 unicode)
该算法要求您预先指定滑动 window。这意味着您知道 (1) 和 (2) 最多可以有多大。 换句话说,您知道 (1) 和 (2) 将占用多少位。 由于 (3) 本质上也是来自固定长度字母表的字符,因此您还知道 (3)
的位长这意味着简单地连接它们是安全的。 因此,第一个算法的输出可以被认为是输出一个位序列,其中序列中的每一项都有固定的长度。
这是应用哈夫曼的理想选择。
当然具体的就不说了,大家可以选择很多。
- 归一化霍夫曼 table
- 左分支 1 vs 左分支 0
- 合并数量相似的项目时的优先级
- 等等
所以我无法轻易解释您显示的确切输出值。 但我希望我至少可以解释一下如何从 A 到 B。
你不能。显示的编码是比喻性的。不是字面意思。符号A、B、C都被编码为单个比特0。显然这对解码端的帮助不大。