【发布时间】:2020-06-25 17:47:49
【问题描述】:
我知道我们使用 Huffman Coding 来压缩 .txt 文件我想知道哪些其他扩展可以使用 Huffman Coding 进行压缩,例如我们可以压缩 (.pdf, .使用霍夫曼编码的 Xls、.Jpg、.Gif、.Mp4) 文件?
【问题讨论】:
标签: compression huffman-code image-compression
我知道我们使用 Huffman Coding 来压缩 .txt 文件我想知道哪些其他扩展可以使用 Huffman Coding 进行压缩,例如我们可以压缩 (.pdf, .使用霍夫曼编码的 Xls、.Jpg、.Gif、.Mp4) 文件?
【问题讨论】:
标签: compression huffman-code image-compression
原则上,您可以使用霍夫曼编码压缩任何类型的文件。霍夫曼编码假设输入是某种符号流,并且所有文件都表示为单独的字节,因此任何文件都是霍夫曼编码器的有效输入。
但实际上,由于多种原因,霍夫曼编码可能不适用于许多其他格式。例如,许多文件格式(PDF、MP4、JPG 等)已经采用了一些压缩方法来减少它们的空间使用,因此使用辅助压缩器来处理它们不太可能有任何作用。其次,霍夫曼编码是基于这样的假设,即看到的每个符号都是从某个固定的概率分布中采样的,与任何其他符号无关,因此当哪些符号出现在哪里存在相关性时效果不佳。例如,原始位图图像可能在像素颜色与其相邻像素之间存在相关性,但霍夫曼编码无法利用这一点。
话虽如此,霍夫曼编码通常被用作各种编码算法中的许多步骤之一。例如,如果我没记错的话,bzip2 的工作原理是将输入分成块,对每个块使用 Burrows-Wheeler 变换,然后使用移到前编码,然后是游程编码,最后使用 Huffman 编码到最后。
希望这会有所帮助!
【讨论】: