JPEG图像理论基础

随着数码科技的不断提高,相机作为记录生活,定格美丽的数码产品,被越来越多的人喜爱。街头美食,秀丽山水,明星美女等成为了人们拍照的关注点和分享的话题,带给了人们不少的生活乐趣和美丽回忆。随着专业和个人的需要,相机的拍照功能被添加到手机,电脑,摄像头等各式数码产品中。数码相机成像的原理比较复杂,包括色彩感知,颜色空间转换,校正等,数码相机系统的一般流程图见图2.1。
这里写图片描述
目前绝大多数相机都默认JPEG图像的输出。JPEG图像在网络和个人应用上十分普遍,因为它同其他格式相比有占用空间小,图像质量高的优点。同时JPEG算法拥有极大的灵活性,可以根据所需情况的不同,调节图像的质量和大小。JPEG2000进一步提升了其性能,不仅有损和无损压缩两种模式,而且压缩性能得到了约30%的提高。 JPEG2000最大的特征就是它可以先获取轮廓部分再填补细节部分,就像在浏览很多网站时看到的那样。

JPEG全名为Joint Photographic Exports Group,汉语翻译为联合图像专家小组,是一个负责制定数字图像编码方法的国际标准化小组。该小组定制了多种JPEG标准,包括有损和无损两种算法,顺序、渐进、无损和层次四种编码模式,Huffman编码和算术编码两种熵编码模式。
这里写图片描述

JPEG算法的基本流程可以粗略分为6个过程:转换颜色模式、采样、图像分块和DCT变换、Zigzag 扫描、量化、编码。下面将对这几个关键的过程进行讲解。

2.1.1 颜色模式转换

颜色模式,就是人为规定的用于表达数字颜色的方式,是电子设备用来记录和显示颜色的基础。常见的颜色模式有RGB模式、CMYK模式、位图模式、灰度模式、双色调模式和多通道模式等。下面将介绍图像中比较典型的几种模式:
(1)RGB:最基本的一种图像的颜色记录模式,每个像素点都使用RGB三个颜色进行表示。每一个像素的RGB分量分配一个0~255范围内的强度值,通过组合以实现各种颜色的表示。
(2)CMKY:一种十分常见且实用的模式,是彩色打印机采用的颜色模式。由于打印机的墨只有青、红、黄、黑四种颜色,所以该模式与RGB不同的是使用四个颜色分量来表示一个颜色。
(3)灰度模式:用单一的色调来显示图像,每个像素都具有从 0%(白色)到 100%(黑色)的亮度值。一个像素的颜色用0~255范围内的8位二进制强度值来表示。可以展现出出黑色与白色及其中间的过渡色。本文实验所使用的数据库,就需要预先将图像转换为灰度图像。
不同的颜色模式之间有一定的转换关系,例如如果想将RGB模式的BMP图像压缩为YCrCb模式的JPEG图像,需要通过以下的关系式进行:
这里写图片描述
其中R表示红色分量,G表示红色分量,B表示红色分量,Y表示亮度, 表示色度, 饱和度。

2.1.2 采样

通常对图像进行采样时,如果记录每一点的色彩值,需要的存储空间就会很大。然而研究人员发现,人眼系统有独特的感知功能,使得人对亮度的感知更加敏锐,而对彩色信息的感知较弱。跟RGB模式使用8位二进制记录每个像素的每个分量相比,JPEG图像采用的YCbCr模式,只需要对2×2单元格记录4个亮度信息,1个色度信息,1个饱和度信息,而不是记录所有的12个颜色信息。上述记录方式表示为4:1:1,它和4:2:2是常用的采样比例。在彩色图像的恢复过程中,使用一点的彩色分量代替本单元的彩色信息,这样做虽然会使恢复出来的图像同原图像比有一定的区别,但不影响人眼的观察效果,而且还极大的减少了保存图像所需的存储空间。

2.1.3 分块与离散余弦变换

该过程是JPEG图像的一个中心环节,也是所有隐密算法关注的要点,隐密分析也从中提取用于分类的特征。该过程首先将图像进行8×8分块,分块之后对每个块进行DCT变换,分块太大和太小都会影响压缩质量,以8个像素为单位是有一定考虑的。在对一个8×8子块DCT变换后,产生的DCT系数矩阵也是8×8大小。(0,0)位置表示的是直流系数,而其他的系数从左上到右下逐渐由低频成分向高频成分过渡。在这64个系数中,大多数数值都约等于0。

2.1.4 Zigzag扫描排序

DCT变换得到的是8×8系数矩阵,但是当把数据存放在内存中时,它们是按顺序成线性保存的。如果按照行的顺序保存DCT系数矩阵,每行的结尾和下一行的起始点没有任何联系 ,所以JPEG图像的格式要求按照如下顺序保存,这样所有的系数之间都是相邻的。
这里写图片描述

2.1.5 量化

DCT系数是浮点数,下一步需要将其量化为整数之后才能继续编码的过程。在量化过程,对于亮度和色度分辨采用不同的量化表,因为JPEG图像对两者的要求不同,亮度部分保留的较为精细,而色度部分进行粗量化即可。通过量化表的数值可以看,在低频部分的步长较小,而高频部分的步长较大。经过量化之后,虽然会损失一部分的信息,但是不会影响视觉体验,并且减少了存储数据所需的空间。

这里写图片描述

2.1.6 编码

经过量化之后的DCT系数的直流部分有一是数值比较大,第二个特点就是相邻块的差值不大。系数中的交流部分大多数都为0。因此对于直流系数,JPEG使用差分脉冲调制编码,计算当前块与前一块数值的差进行编码,减小数据量。对于交流系数,由于大部分数值为0,所以使用行程编码(Run Length Coding,RLC),连续重复的数字越多数据量减少的越多。例如连续数字“000000”,可以使用行程编码表示为(6,0)。
为了在上述操作的基础上继续压缩数据量,JPEG压缩标准又使用了算术编码和Huffman编码两种熵编码方式。其中Huffman编码占据主要地位,对使用频率高的内容用长度较短的码字表示,对使用频率低的内容用长度较长的码字表示,这样可以让编码后的数据量最小。

2.1.7 JPEG图像优缺点总结

JPEG图像是现代数码设备等都支持的一种高级压缩格式,在人眼不易察觉的情况下大幅度缩减保存所需的数据量,并且可以用质量因子控制文件的清晰度,继而控制文件的大小。JPEG由于其优秀的编码方式和压缩效率,被广泛应用到网络图像数据传输中。
它的缺点也很明显,在对JPEG图像进行编辑之后,它的质量会一次又一次的下降。最后形成的JPEG图像会有明显的质量损失。另一方面,由其复杂的压缩方式所决定,颜色简单或者大片区域像素相近的图像不适合使用JPEG格式进行压缩,这会使压缩效果较差。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值