美文网首页Linux
常用压缩算法思想

常用压缩算法思想

作者: 追寻者的小憩书铺 | 来源:发表于2018-08-07 10:04 被阅读292次

几种常见的压缩算法原理介绍

LZ77算法

如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,我们就可以确定后一块的内容。所以我们可以用(两者之间的距离,相同内容的长度)这样一对信息,来替换后一块内容。由于(两者之间的距离,相同内容的长度)这一对信息的大小,小于被替换内容的大小,所以文件得到了压缩。

Huffman编码

我们把文件中一定位长的值看作是符号,比如把8位长的256种值,也就是字节的256种值看作是符号。我们根据这些符号在文件中出现的频率,对这些符号重新编码。对于出现次数非常多的,我们用较少的位来表示,对于出现次数非常少的,我们用较多的位来表示。这样一来,文件的一些部分位数变少了,一些部分位数变多了,由于变小的部分比变大的部分多,所以整个文件的大小还是会减小,所以文件得到了压缩。

RLE

RLE 又叫 Run Length Encoding ,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如, JPEG 就使用它)。

Rice

Rice 编码背后的基本思想是尽可能的用较少的位来存储多个字(正像使用哈夫曼编码一样)。实际上,有人可能想到 Rice 是静态的哈夫曼编码(例如,编码不是由实际数据内容的统计信息决定,而是由小的值比高的值常见的假定决定)。

编码非常简单:将值 X 用 X 个‘ 1 ’位之后跟一个 0 位来表示。

zip压缩算法

综合运用了多种简单压缩算法,来达到一个合理的压缩比例

如先LZ,后Huffman,然后RLE...详情见下图

zip压缩算法详解

下文是原始连接,讲得十分深入:

https://www.cnblogs.com/esingchan/p/3958962.html

相关文章

  • 常用压缩算法思想

    几种常见的压缩算法原理介绍 LZ77算法 如果文件中有两块内容相同的话,那么只要知道前一块的位置和大小,我们就可以...

  • Android

    Android常用图片压缩方式 质量压缩 尺寸压缩 1. 质量压缩 质量压缩通过相应算法进行优化Bitmap的位深...

  • 常用算法思想

    任何一个可以用计算机求解的问题所需要的计算时间都与其规模有关。 以上五种可以理解为一种思想,而不是算法。 分治法 ...

  • 常用算法思想

    1. 递推算法 递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。顺推法:是指从已知条件出发,逐步...

  • hdfs常用压缩算法

    gzip压缩 应用场景:当每个文件压缩之后在130M以内的(1个块大小内),都可以考虑用gzip压缩格式。譬如说 ...

  • PHP实现Huffman编码/解码

    Huffman 编码是一种数据压缩算法。我们常用的 zip 压缩,其核心就是 Huffman 编码,还有在 HTT...

  • LZW压缩算法

    参考链接:超级简单的数据压缩算法—LZW算法压缩算法——lzw算法实现LZW算法 LZW 压缩算法正确图解

  • 赫夫曼编码

    赫夫曼编码 赫夫曼编码在数据压缩领域有着广泛的应用,压缩率在20%-90%,是一种重要的算法 算法思想(以字符串压...

  • [Linux](十六) --文件的打包与压缩

    Linux中文件打包与压缩常用的几个命令及用法。 1.压缩就是通过一些算法节省文件或目录的空间,达到压缩的目的。 ...

  • 通过BitSet源码来理解BitMap算法

    BitMap是一种很常用的数据结构,它的思想的和原理是很多算法的基础,当然,并且在索引,数据压缩,海量数据处理等方...

网友评论

  • 阿蓬阿霞:看不懂😀
    为专业思维点赞👍👍
    阿蓬阿霞:@阿蓬阿霞 呵呵,激起大家好奇心了……不懂也要研读一番😄😃
    追寻者的小憩书铺:@阿蓬阿霞 谢谢点赞,本来是写给自己备忘的,结果阅读数最多😂
  • 千漫千寻:看得一头雾水😂😂😂
    千漫千寻:@Maker_Chen 无论写得多具体,我都不会看懂,不是你的问题……请原谅一个头脑里没有任何数字概念的画者……
    追寻者的小憩书铺:@千漫千寻 具体得可以自行搜索一下,应该可以看的比较明白⊙ω⊙
    追寻者的小憩书铺:@千漫千寻 不好意思,这个是我写来备忘的,可能抽象了点😂😂😂

本文标题:常用压缩算法思想

本文链接:https://www.haomeiwen.com/subject/lgkovftx.html