【发布时间】:2017-03-19 20:13:37
【问题描述】:
霍夫曼和算术编码数据在许多不同的压缩程序中用于熵编码。他们为要压缩的符号创建了一种新的编码,可能与字节边界不对齐。这意味着当必须解压缩数据时,必须逐位读取。然而,这似乎是一个非常非常缓慢的过程。
Huffman 和算术编码的数据解压缩通常如何加快速度?我们是否像 CRC 计算一样创建某种表,使我们能够读取每个字节的数据,然后解码符号,或者它总是真的以每个位为基础读取?
【问题讨论】:
霍夫曼和算术编码数据在许多不同的压缩程序中用于熵编码。他们为要压缩的符号创建了一种新的编码,可能与字节边界不对齐。这意味着当必须解压缩数据时,必须逐位读取。然而,这似乎是一个非常非常缓慢的过程。
Huffman 和算术编码的数据解压缩通常如何加快速度?我们是否像 CRC 计算一样创建某种表,使我们能够读取每个字节的数据,然后解码符号,或者它总是真的以每个位为基础读取?
【问题讨论】:
高效的霍夫曼解码器使用表格。你可以在zlib的inflate中看到一个例子,它使用了两级表来减少构建表所需的时间。
可以对算术代码进行约束,以允许它们使用表格,这通常是为了提高速度,对压缩的影响很小。
【讨论】: