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)有一篇关于霍夫曼压缩算法的好文章,以防维基不足.
随意询问更多信息.这个话题非常广泛.
我的论文《高速缓存和主内存系统中数据压缩的体系结构方法概览》(此处永久链接)回顾了许多压缩算法以及在现代处理器中使用它们的技术。它回顾了研究级和商业级压缩算法/技术,因此您可能会发现尚未在ASIC中实现的算法/技术。
以下是一些无损算法(可以使用这些算法完美地恢复原始数据):
许多众所周知的格式(例如png或gif)都使用它们的变体或组合。
另一方面,也存在有损算法(会降低准确性以压缩数据,但通常效果很好)。最先进的有损技术结合了差分编码,量化和DCT等方面的思想。
要了解有关数据压缩的更多信息,我建议https://www.elsevier.com/books/introduction-to-data-compression/sayood/978-0-12-809474-7。这是一个非常容易理解的介绍文字。在线提供pdf的第三版。