首页 >> 计算机科学 >> 文章

数字图像的压缩与恢复Comments>>

发表于 2010-05-15 11:54 | Tags 标签:,

一个图像是如何数字化的呢?不妨从一张玩具鸭子图片说起。

首先要把图片打格子分成若干小块,每块用一个数字来表示一种颜色。如果图像是纯黑白两色的,那每块只用1或0表示即可。若图像是16色的,每块用4位二进数表示,因为2^4=16,即4位二进制有16种组合,每种组合表示一种颜色就行了。真彩色位图的每个小块,都是由不同等级的红绿蓝三种色彩组合的,如图所示,每种颜色有2^8个等级,所以共有2^24种颜色, 因此每小块需要24位二进制数来表示。

可见,数字图像越艳丽,则需要记录的二进制数就越多越长。除此之外,打的格子越密,则一副图的总数据量就越大,此例中鸭子图片分成了11×14=154块,按真彩色位图来计算,则总数据量为154×24=3696比特。这些小格子显然是太大了,不能表现图片的细节,实际中的格子要密得多,例如1024×768,这是大家都熟悉的显示分辩率。

看这张滑雪图,人体的色彩变化比较大,而天空和雪的色彩却非常单调,可以想象,代表每个小格颜色的数值也应该非常接近,图右下的原始数据是8个相邻格子的色彩数据,由于两个相邻格子的数据差异很小,所以可以用第一个格式数据当作第二个格子数据的预测值,经实际测量后,把真实值与预测值的差值求出来,并用这个差值来表示第二个格子的色彩。那么,实际记录下的就是第三行差值。但恢复数据时,用前面一个值加上差值,就是当前的色彩值,只要有第一位的基础值,后面的色彩值就可以滚雪球式的一个个求出来。

用差值来记录色彩,只是简单地进行了很多个减法运算,在还原时再加回来,数据并没有一丁点的损失,因此被称为无损压缩,如果把很少的差值彻底丢弃,在还原时把一个格子的色彩信息代表了周围很多格子的色彩,则压缩率更高,但格子之间的微小差别就丢失了,这种方法属于有损压缩。

位图是每个格子都独立记录的,因此数据量很大,这就是bmp格式,而经过了上述的预测差值运算后,就变成了有损压缩格式,jpg格式就是其中之一。画质基本相同的两幅图,jpg格式的数据量要比bmp小得多。jpg是有损压缩的,但画质的损失非常小。Jpg格式是很智能的,例如对上面有大面积相似色彩的山水照给予较大的压缩率,而对非常热闹的人群照给予较小的压缩率。

上面说的只是静态的图像,而视频图像压缩得更大,一秒钟视频会切换几十张画面,而这些画面的绝大部分都是相同的,采集是每幅都是独立采的,生成的avi格式的数据量是很大的,不仅每幅画面本身可以压缩,更重要的是幅与幅之间也可以压缩,这就形成了数据量小得多的mpeg格式。也可以采用压缩率更高的rm格式,rm格式的画质比mpeg差得不多,但数据量却小了很多倍,更方便在网上传输。

不同的视频,幅与幅之间的相似度是不同的,韩剧的相似度很大,甭说一秒了,甚至几分钟内演员都坐在沙发上聊,除了嘴巴外每幅画面都基本一样,对这种视频可以采用较大的压缩率,而对动感性很强的武打片,则采用较小的压缩率,这种格式就是rmvb。跟rm格式不同的是,它的压缩率是可变的,vb就是可变比特率的意思。rmvb比rm更先进,相同数据量的rmvb视频会比rm视频清晰,而相同清晰度的视频,rmvb格式的数据量会更小。

一旦进行了有损压缩,数据缺失了,画质就很难复原了,但这也并不是不可能,这里面有个关键的概念--先验信息。例如这张民国美女黑白照片的嘴唇,要压缩成这个灰度,右侧的彩色图例中有五种可能,但通过先验信息(先验信息也就是我们以前已经知道了的知识)知道,美女的嘴唇不可能是绿的、蓝的和紫的,只能是右下的红色,把它还原成红色就对了。

钢琴和弦的每一小组乐音都是由不超过五个纯音符的组合,这些排列组合的总数还是不少的,但好在根据先验信息我们知道,只有极少数的组合是经常出现的,绝大多数的组合是基本不会出现的,如果我们得到了一组模糊不清的组合,它跟经常出现的某个组合与基本不会出现的某个组合的相似度一样,那我们就毫不犹豫地认定它就是那个经常出现的组合。

当然,实际上它不是那个经常出现的组合,而是那个基本不会出现的组合,这种可能性也是不能排除的,就好比那个民国美女真的长了一副蓝嘴唇一样,我们依靠先验信息做的判断就杯具了,但这是没办法的事。
现在的核磁共振技术在短时间内只能获得比较粗糙的图像,但我们知道被照器官的每一小块部分与相邻部分的相关性是很强的,而且我们对这些器官也具有很多先验信息,这就可以帮助我们像还原民国美女图那样,在粗糙的图像上还原出高画质的图像,可信度还可以做得非常高。

相关文章
  1. 很好啊~又学习了,谢谢了。对我们这种计算机外行来说,这样的程度就够了,既能有所了解,又不会太深看不懂,也影响阅读的兴趣。其实对非专业人来说也没有必要知道太多,脑资源也是资源不是,反对浪费~

  2. 这个“先验信息”的算法MS不属于压缩算法了吧?还有,电脑如何知道那是美女的嘴呢?

    • 是嗳,而且连新民网的水印都给还原没了,腻害~

      • 作者用这两幅图说明黑白图片还原成彩色图片需要先验信息,不代表那幅彩色图就一定是有黑白图还原而来的.我觉得这两幅图实际上是先有彩色图,然后转换成黑白图,最后打上水印.

  3. 学平面设计专业的,整天跟各式图片,图像软件打交道,却从来没想过这里面的学问,大致看明白了,谢谢!

  4. 今天才发现这个网站,剃刀老师你写得真棒啊,我觉得科普性文章就是要这种风格!生动有趣通俗易懂!真赞!

  5. 确实说的很浅显易懂了,尤其是对“先验信息”的描述,哈哈,觉得很好玩

  6. 众大仙 小生有一事不明 前几日我去放大一张我爷爷的母亲的民国级黑白照片 为什么放大后 背景有倾斜的网格呢?

  7. 除了说写的好,其他的就不会说了。没有破布那样的知识,无法做更深的交流。

  8. 现在有了各色口红把嘴唇涂成任何觉得另类的颜色,把头发染成孔雀翅膀色。先验信息会不会被新新人类打败?

  9. 不同的视频,幅与幅之间的相似度是不同的,韩剧的相似度很大,甭说一秒了,甚至几分钟内演员都坐在沙发上聊,除了嘴巴外每幅画面都基本一样
    ——————————————————
    剃刀大叔还看韩剧啊

    • 被老婆胁迫着看过一些,印象最深的是《看了又看》,特别喜欢银珠,希望老婆也能像银珠一样在先生下班进门时,站在门口对先生鞠躬说“您回来了~~”

      • 韩剧都是理想情节,不要看太多,看多了你就会去憧憬,而实际中却是很难有的,别自己纠结自己。

  10. 希望不要再提rm或rmvb,它是低画质和私有版权。文章开头太基础的东西,写的还挺详细,后面稍微有些深度的东西写的太简单了。

  11. 说成格子会让给你更多人懂得,要普及的话就得这样,最好在文章的最后加一些注。

  12. 剃刀大叔,
    我也是热爱科学的松鼠一只,尤其崇拜像您这样的计算机专家
    ~O(∩_∩)O~想请问一下,关于数字图像方面的问题哈。。如果要做一个像挂在松鼠会网站上的松鼠分布这样的地图,要用什么软件好呢?

  13. 科学松鼠会上将数学物理化学生物医药的文章居多。作为一名通信工程的学生,看到这篇文章很亲切啊,看回复电子信息的松鼠还真不少。楼主辛苦了

  14. 剃刀讲讲DES中S盒是怎么设计出来的吧,到底有没有留后门,这个我很有兴趣,尤其是这种八卦式的消息...

  15. avi不是压缩方式,最多算一个容器和mpeg等根本不能并列
    说rm的等的时候也该说RV多少多少等的压缩方式,,,,作者貌似以为扩展名就等于编码方式了一个avi可以是H264可以是别的更raw的,,压缩率大不相同

  16. Pingback: 科学松鼠会 » [小红猪]填补空缺——压缩感知

  17. Pingback: 科学松鼠会 » 松鼠的第二支漏斗

  18. 這段關於JPEG的描述有誤導成分:

    "位图是每个格子都独立记录的,因此数据量很大,这就是bmp格式,而经过了上述的预测差值运算后,就变成了有损压缩格式,jpg格式就是其中之一。"

    JPEG是在DCT後的frequency domain數據中做quantization,才形成lossy的。並不是在spatial domain進行"预测差值运算"。