Compression 哪种算法最适合大文本压缩?

Compression 哪种算法最适合大文本压缩?,compression,data-compression,Compression,Data Compression,目前,我正在寻找一种适用于大量文本的无损压缩算法,该算法将通过AES进一步加密,并用作隐写术中的有效负载 编辑: 根据,似乎 算术编码在统计压缩技术中更可取,而LZB则推荐用于字典压缩技术 所以现在我想知道,从压缩比和易于实现的角度来看,统计压缩还是字典压缩更适合大型英文文本压缩 我已经搜索过了,但仍然几乎不知道合适的算法。非常感谢您抽出时间回答。祝你今天愉快。:) 您在这个问题中描述的许多算法称为熵编码器(Shannon Fano、Huffman、算术等)。熵编码器用于压缩符号序列(通常是字节

目前,我正在寻找一种适用于大量文本的无损压缩算法,该算法将通过AES进一步加密,并用作隐写术中的有效负载

编辑:

根据,似乎 算术编码在统计压缩技术中更可取,而LZB则推荐用于字典压缩技术

所以现在我想知道,从压缩比和易于实现的角度来看,统计压缩还是字典压缩更适合大型英文文本压缩


我已经搜索过了,但仍然几乎不知道合适的算法。非常感谢您抽出时间回答。祝你今天愉快。:)

您在这个问题中描述的许多算法称为熵编码器(Shannon Fano、Huffman、算术等)。熵编码器用于压缩符号序列(通常是字节),其中一些符号比其他符号更频繁。用于压缩自然语言的符号(字母)的简单熵编码只能产生大约2:1的压缩

相反,流行的现代文本无损压缩技术包括LZ77、LZW和BWT等方法。粗略地说,LZ系列涉及建立一个循环短符号序列字典(我们称之为“单词”),然后使用指针引用这些单词。LZ的一些实现,如LZ77和LZW,编码起来相当简单,但可能不会产生最高的压缩比。例如,请参阅此视频:。另一方面,LZMA2是一种相对更复杂的变体,具有更高的压缩比

Burrows-Wheeler变换(BWT)为字典方法提供了一种聪明的替代方法。我会让你参考维基百科的文章

不过,简而言之,它产生了原始字节序列的(可逆)排列,通常可以通过运行长度编码和熵编码器进行非常有效的压缩


如果我必须从头开始编写一种压缩技术,为了简单起见,我可能会选择LZW或LZ77。

您在这个问题中描述的许多算法称为熵编码器(Shannon Fano、Huffman、算术等)。熵编码器用于压缩符号序列(通常是字节),其中一些符号比其他符号更频繁。用于压缩自然语言的符号(字母)的简单熵编码只能产生大约2:1的压缩

相反,流行的现代文本无损压缩技术包括LZ77、LZW和BWT等方法。粗略地说,LZ系列涉及建立一个循环短符号序列字典(我们称之为“单词”),然后使用指针引用这些单词。LZ的一些实现,如LZ77和LZW,编码起来相当简单,但可能不会产生最高的压缩比。例如,请参阅此视频:。另一方面,LZMA2是一种相对更复杂的变体,具有更高的压缩比

Burrows-Wheeler变换(BWT)为字典方法提供了一种聪明的替代方法。我会让你参考维基百科的文章

不过,简而言之,它产生了原始字节序列的(可逆)排列,通常可以通过运行长度编码和熵编码器进行非常有效的压缩


如果我必须从头开始编码一种压缩技术,为了简单起见,我可能会选择LZW或LZ77。

香农-法诺编码、哈夫曼编码、算术编码、范围编码和非对称数字系统编码都是在您首次对数据建模后应用的零阶熵编码器,利用固有的冗余

对于文本,冗余是重复的字符串和数据中的高阶相关性。有几种方法可以为文本建模。最常见的是Lempel-Ziv 77,它查找匹配字符串,Burrows-Wheeler变换(查找描述),以及通过部分匹配进行预测


查看以查看压缩、压缩速度、使用的内存和解压缩速度的比较。

香农-法诺编码、哈夫曼编码、算术编码、范围编码和非对称数字系统编码都是在您首次对数据建模后应用的零阶熵编码器,利用固有的冗余

对于文本,冗余是重复的字符串和数据中的高阶相关性。有几种方法可以为文本建模。最常见的是Lempel-Ziv 77,它查找匹配字符串,Burrows-Wheeler变换(查找描述),以及通过部分匹配进行预测


查看以查看压缩、压缩速度、使用的内存和解压缩速度的比较。

请参阅。你还应该在你的问题中明确你是在寻找你所建议的算法之间的比较,还是最适合这份工作的算法。在后一种情况下,您必须描述“最适合”的标准,例如压缩比、内存、速度、兼容性、易于实现等。谢谢您的提醒。我在问题中添加了一些信息。请参阅。你还应该在你的问题中明确你是在寻找你所建议的算法之间的比较,还是最适合这份工作的算法。在后一种情况下,您必须描述“最适合”的标准,例如压缩比、内存、速度、兼容性、易于实现等。谢谢您的提醒。我在问题中添加了一些信息。精彩的回答,只是简单化和技术细节的正确组合。精彩的回答,只是简单化和技术细节的正确组合。