图像为什么非压缩不可?

jopen 10年前

图像和视频的压缩技术应用广泛,每天刷微博的图片,盗版回来的小电影,无一不用压缩技术。

        压缩的必要性

图像为什么非压缩不可?

        某天陈老师要录动作大片,经过长期艰苦奋斗,他制成了这样一段视频:画面大小 1000×1000pixel,24 位真彩色,每秒 30 帧,时长 2 小时。

        如果不进行任何压缩,存储这段视频需要 1000*1000*24*30*60*120=5.184 ×1012 bit ≈ 648GB 的空间。(2014 年 4 月 5 日,500GB 硬盘最低价格是 299 元~)

        用 4M 宽带下载这部大片,最少需要 360 小时 = 15 天。

        可见,要保障人民群众的切身利益,压缩技术非常有必要。

        压缩的可能性

图像为什么非压缩不可?

        就单幅图像而言,压缩的可能性是显而易见的。

        如上面三幅小图,图a每个形状里面都填充着相同的颜色,图b每一行的颜色是相同的,更过分的图c整幅图只填充了一种颜色。

        压缩前:第 1 个点灰色,第 2 个点灰色,第 3 个点灰色,第 4 个点灰色,第 5 个点灰色,第 6 个点灰色......第 89 个点灰色,第 90 个点黑色......

        最简单的压缩后:第 1 到 89 个点灰色,第 90 个点黑色。

        常见的压缩标准

图像为什么非压缩不可?

        JPEG 是广泛使用的照片存储格式,它适应人的视觉,用更多的数据来存储人眼敏感的图像低频部分,用很少的数据存储人眼不关心的高频部分。维基百科有很详尽的讲解 http://zh.wikipedia.org/wiki/JPEG

        JPEG 2000 是基于小波变换的图像压缩标准,可以获得比 JPEG 更大的压缩比,通常它被认为是未来取代 JPEG 的标准。

        图像压缩的基本套路

图像为什么非压缩不可?

        图像压缩基本按照以下流程进行:

        原图像 -> 映射 -> 量化 -> 符号编码 -> 存储/传输 -> 符号解码 -> 反映射 -> 图像

        映射(Mapper):对原图像进行变换,使之更容易被压缩。(比如傅里叶变换)

        量化(Quantizer):量化是压缩的主要图像,主要也是它引入误差的。比如有一个以 2 为单位的量化器,看到原图像值是 17,将它除 2 向下取整,量化得到8;图像还原的时候,用8×2=16 得到还原值,与真实值相差了1。

        符号编码(Symbol encoder):图像已经变换量化完了,该为存储和传输作准备了。符号编码可以进一步地压缩文件大小:

        将重复出现次数多的数据,用简短的符号进行编码;出现次数少的数据,用较长的符号进行编码;后面的哈夫曼(Huffman)编码会详细讲到~

        JPEG 的压缩套路

图像为什么非压缩不可?

        鉴于图像压缩的每个步骤都能有不同的方法,所以有必要制定统一的标准,使得图像在每台电脑每部手机中都能正常使用。

        JPEG 是其中一个标准,它的压缩套路如下:

        原图像 -> 分解成一个个小图像 -> 变换 -> 量化 -> 符号编码 -> 压缩后的图像

        分解图像:JPEG 会将一幅大图像分解成8×8 的小图像。至于为什么是8×8 呢,嗯,欢迎各位同学剧透;

        变换:JPEG 使用 DCT 变换(离散余弦变换),类似傅里叶变换,不过它是取实部。(不由感慨,学好“信号与系统”也是很有必要的...)

        量化:JPEG 通过各种除法来进行量化,不过对于不同重要程度的信息,它所除的数的大小会有所不同;

        符号编码:JPEG 使用常见的哈夫曼(Huffman)编码。

        图像还原,就是反过来进行这些步骤。

        JPEG 的实现方法比较简单,小朋友们在家也能模仿。也因为简单高效,所以 JPEG 的应用范围相当广泛。

来自: 果壳网