- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据压缩分享 目录 数据压缩概念 常用压缩算法 压缩算法实践 结语 1.数据压缩概念 据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。数据压缩包括有损压缩和无损压缩。 数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩 分类:即时压缩和非即时压缩、数据压缩和文件压缩、无损压缩与有损压缩。数据是专指一些具有时间性的数据,这些数据常常是即时采集、即时处理或传输的。而文件压缩就是专指对将要保存在磁盘等物理介质的数据进行压缩,如一篇文章。 发展:Shannon,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。他借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。信息熵也奠定了所有数据压缩算法的理论基础。 Huffman编码是信息压缩编码,统计原始数据中各字符出现的频率;所有字符按频率降序排列;建立哈夫曼树:将哈夫曼树存入结果数据;重新编码原始数据到结果数据。之后又出现了进化和发展。 为了获得一种兼顾运行速度和压缩效果的“完美”编码的时候,两个犹太人 J. Ziv 和 A. Lempel 独辟蹊径,完全脱离 Huffman 及算术编码的设计思路,创造出了一系列比 Huffman 编码更有效,比算术编码更快捷的压缩算法。我们通常用这两个犹太人姓氏的缩写,将这些算法统称为 LZ 系列算法。LZ77,LZ78,LZW。(效率和压缩比) 再之后出现了各种适合文本压缩(无损)、图像压缩(有损)、音频压缩、视频压缩等等的算法。每个领域,思想的深度都在不断进步。就像发现引力波一样。 2.常见压缩算法 Wiki罗列了近100种算法,目的都是降低信息冗余度。 压缩算法思想 Entropy Encoding:最少bit数编码,Shannon,Huffman 字典算法:它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。 Sliding Window:滑动窗口 LZ77,如: DEFLATE(先用LZ77,然后用Huffman编码) 非字典算法:(Non-dictionary Algorithms)使用输入中的一部分数据,来预测后续的符号将会是什么,通过这种算法来减少输出数据的熵,PPM,BZIP 常见压缩实现工具: RAR:结合了PPM和LZSS算法 GZIP:DEFLATE,gzipped inflate data is prefixed with a two-byte header, and suffixed with a four-byte checksum。 ZIP:/76676/ Phil Katz 7ZIP:这种格式并不仅限于使用一种压缩算法,而是可以在bzip2, LZMA, LZMA2, 和 PPMd算法之间任意选择 The deflation algorithm used by gzip (also zip and zlib) is a variation of LZ77 (Lempel-Ziv 1977). 参考:/77247/ 3.常见压缩算法比较 QuickLZ: is the worlds fastest compression library, reaching?308 Mbyte/s per core. Snappy: is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression. For instance, compared to the fastest mode of zlib, Snappy is an order of magnitude faster for most inputs, but the resulting compressed files are anywhere from 20% to 100% bigger. On a single core of a Core i7 processor in 64-bit m
文档评论(0)