数据压缩算法

我想知道是否有人有一个数据压缩算法列表。 我基本上都不知道数据压缩,我希望能够了解更多关于不同算法的知识,看看哪些是最新的,还有很多ASIC尚未开发。

我希望实现一个数据压缩ASIC,它独立于进入的数据类型(音频,video,图像等)。

如果我的问题太开放,请告诉我,我会修改。 谢谢

那里有大量的压缩算法。 你需要的是无损压缩算法。 无损压缩算法压缩数据,使得它可以被解压缩以实现在压缩之前给出的确切内容。 相反的是有损压缩算法。 有损压缩可以从文件中删除数据。 PNG图像使用无损压缩,而JPEG图像可以并且经常使用有损压缩。

一些最广为人知的压缩算法包括:

  • RLE
  • 霍夫曼
  • LZ77

ZIP存档使用霍夫曼编码和LZ77的组合来提供快速压缩和解压缩时间以及相当好的压缩比。

LZ77几乎是RLE的一种通用forms,它通常会产生更好的结果。

霍夫曼允许最重复的字节表示最少的比特数。 想象一下看起来像这样的文本文件:

aaaaaaaabbbbbcccdd 

Huffman的典型实现将产生以下映射:

 Bits Character 0 a 10 b 110 c 1110 d 

所以该文件将被压缩为:

 00000000 10101010 10110110 11011101 11000000 ^^^^^ Padding bits required 

18个字节下降到5.当然,该表必须包含在文件中。 该算法可以更好地处理更多数据:P

如果Wiki不够用,Alex Allain在Huffman压缩算法上有一篇很好的文章 。

随意询问更多信息。 这个话题非常广泛。

有很多数据压缩算法。 如果你正在寻找百科全书的东西,我推荐Salomon等人的数据压缩手册 ,它的内容与你可能获得的一样全面(并且在数据压缩的原理和实践方面也有很好的部分) 。

我最好的猜测是,基于ASIC的压缩通常是针对特定应用实现的,或者是作为SoC的专用元件实现的,而不是作为独立的压缩芯片实现的。 我也怀疑寻找“最新和最好的”压缩格式是这里的方式 – 我希望标准化,成熟度和特定目的的适用性更重要。

以下是一些无损算法(可以使用这些完美恢复原始数据):

  • 霍夫曼代码
  • LZ78(和LZW变体)
  • LZ77
  • 算术编码
  • 不合逻辑
  • 部分匹配预测(ppm)

许多众所周知的格式如png或gif使用这些变体或组合。

另一方面,也存在有损算法(压缩数据的准确性会降低,但通常效果很好)。 现有技术的有损技术结合了差分编码,量化和DCT等思想。

要了解有关数据压缩的更多信息, 请参阅https://www.elsevier.com/books/introduction-to-data-compression/sayood/978-0-12-809474-7 。 这是一个非常容易获得的介绍文本。 在pdf在线的第3版。

我的论文“缓存和主存储器系统中数据压缩的架构方法概述”( 这里的永久链接)回顾了许多压缩算法以及在现代处理器中使用它们的技术。 它审查了研究级和商业级压缩算法/技术,因此您可能会发现一个尚未在ASIC中实现的算法/技术。

LZW或Lempel Ziv算法是一个很好的无损算法。 伪代码在这里: http : //oldwww.rasip.fer.hr/research/compress/algorithms/fund/lz/lzw.html