数据压缩算法

Ver*_*ian 33 c c++ compression algorithm signal-processing

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

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

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

Moh*_*oun 38

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

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

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

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

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

aaaaaaaabbbbbcccdd
Run Code Online (Sandbox Code Playgroud)

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

Bits Character
   0         a
  10         b
 110         c
1110         d
Run Code Online (Sandbox Code Playgroud)

所以该文件将被压缩为:

00000000 10101010 10110110 11011101 11000000
                                       ^^^^^
                              Padding bits required
Run Code Online (Sandbox Code Playgroud)

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

亚历克斯·阿兰(Alex Allain)有一篇关于霍夫曼压缩算法的好文章,以防维基不足.

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


use*_*260 5

我的论文《高速缓存和主内存系统中数据压缩的体系结构方法概览》此处永久链接)回顾了许多压缩算法以及在现代处理器中使用它们的技术。它回顾了研究级和商业级压缩算法/技术,因此您可能会发现尚未在ASIC中实现的算法/技术。


ski*_*kim 5

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

  • 霍夫曼码
  • LZ78(和LZW变体)
  • LZ77
  • 算术编码
  • Sequitur
  • 部分匹配的预测(ppm)

许多众所周知的格式(例如png或gif)都使用它们的变体或组合。

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

要了解有关数据压缩的更多信息,我建议https://www.elsevier.com/books/introduction-to-data-compression/sayood/978-0-12-809474-7。这是一个非常容易理解的介绍文字。在线提供pdf的第三版。