一,前言
今天蛮好了玩的,无意间看到了一篇文章名字为90岁的程序员,它的压缩算法改变了世界。看文章的过程中提交了压缩算法的最早期来源于是利用了统计冗余的概念。于是好奇就去查了下相关的原理。
二,统计冗余
对于一串由许多数值构成的数据来说,如果其中某些值经常出现,而另外一些值很少出现,那么,这种由于取值上统计的不均匀性就构成了统计冗余。
针对统计冗余,通常采用什么技术进行处理呢?最常用的是熵编码压缩技术。熵编码的主要思想是这样的:在一串由许多数值构成的数据中,对那些经常出现的值用短的码组来表示,对不经常出现的值用长的码组来表示,从而最终用于表示这一串数据的总的码位。
以上描述是百度百科摘取的,我仔细想了下关于图像它也是由数字组成的,比如rgb数字,而不同的图像格式可能不同吧,但是表示相同颜色部分一定是相关的。
简单理解,无损压缩就是归类,把相同的部分用不同的内容来表达,已达到压缩空间的目的。
三,行程编码
那么这个时候我就想到了一个简单的自创的压缩空间的方法,比如都是数值,然后有连续10个0。我就压缩为010,来表示,然后解压的时候恢复为10个0。结果后来还真找到了这类压缩方法,叫行程编码。例如,一串字母表示的数据为“aaabbbbccccdddeeddaa”,经过 游程编码处理可表示为“3a4b4c3d2e2d2a”。
四,总结
由于我学习围绕图形图像,那么解码部分也少不了,当然压缩也会用到,这个可能属于性能优化设计,比如用压缩后的形式进行传输。主要是好奇,了解下它的思想~
网友评论