JPEG算法JPEG标准是由国际标准化组织ISO和国际电话电报咨询委员会CCITT为静正图像所建立的第一个国际数字图像压缩标准,它是一个适用范围很广的通用标准,既可以用于灰度图像,又可以用于彩色图像,可以支持各种应用。例如在计算机技术中,基于JPEG有损压缩的数字水印算法,和嵌入式系统中的JPEG分层压缩等。在JPEG各类图像压缩算法中,基于离散余弦变换的图像压缩编码过程称为基本顺序过程,它应用于绝大多数图像压缩场合,并且它能在图像的压缩操作中获得较高的压缩比,并且重构图像与源图像的视觉效果基本相同。1引言1.1图像压缩研究目的及意义如今在Internet及其他电脑界面上,传统基于字符界面的应用逐渐被图像信息取代。图像尽管漂亮容易理解,但是也带来了一个问题:图像信息的数据量太大了,大数据量的图像信息会给存储器的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,这时就要考虑压缩。压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的几余,即保留不确定的信息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有穴余的描述。这个本质的东西就是信息量(即不确定因素)。压缩可分为两大类,第一类压缩过程是可逆的,也就是说,从压缩后的图像能够完全恢复出原来的图像,信息没有任何丢失,称为无损压缩;第二类压缩过程是不可逆的,无法完全恢复出原图像,信息有一定的丢失,成为有损压缩。选择哪一类压缩,要折中考虑,尽管我们希望能够无损压缩,但是通常有损压缩的压缩比(即原图像占的字节数与压缩后图像占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。图像压缩一般是通过改变图像的表示方式来达到,因此压缩和编码是分不开的。图像压缩的主要应用是图像信息的传输和存储,可广泛地应用于广播电视,电视会议,计算机通讯,传真,多媒体系统,医学图像,卫星图像等领域。1.2图像压缩研究现状近年来,图像技术发展迅速、相应的编码标准也应运而生。现概括如下:1.JPEG标准(JointPhotogaphicExperstsGroup),1991年提出,主要是针对静止图像的压缩标准。2.JPEG2000标准,1997年提出,1999年完成,JPEG2000是基于小波变换的静止图像压缩标准不仅有更优秀的压缩性能,而且有更丰富的处理能力。3.H.261又称为P*46,其中P为46kb/s的取值范围,是1到30的可变参数,它最初是针对在ISDN上实现电信会议使用,特别是面对面的可视电话和视频会议而设计的。实际的编码算法类似于MPEG算法,但是不能与后者兼容。H.261在实时编码时比MPEG所占用的CPU运算量少得多,此算法为了优化带宽占用量,引进了在图像质量与运动幅度之间的平衡机制,也就是说,剧烈运动的图像比相对静止的图像质量要差。因此这种方法是属于恒定码流可变质量编码而非恒定质量可变码流编码。4.H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准是可用在很宽的码流范围的,而非只用于低码流应用,它在多种应用中可以认为被用于取代H.261。H.263的编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。H.263标准在低码率下能够提供比H.261更好的图像效果。此外还有MPEG-1,MEPG-2/H.262,MEPG-4,MEPG-7,MEPG-21等其他图像压缩标准。目前JPEG是比较成功的一种图像压缩标准。1
1 JPEG 算法 JPEG 标准是由国际标准化组织 ISO 和国际电话电报咨询委员会 CCITT 为静止图像所建立的第 一个国际数字图像压缩标准,它是一个适用范围很广的通用标准,既可以用于灰度图像,又可以用 于彩色图像,可以支持各种应用。例如在计算机技术中,基于 JPEG 有损压缩的数字水印算法,和 嵌入式系统中的 JPEG 分层压缩等。在 JPEG 各类图像压缩算法中,基于离散余弦变换的图像压缩编 码过程称为基本顺序过程,它应用于绝大多数图像压缩场合,并且它能在图像的压缩操作中获得较 高的压缩比,并且重构图像与源图像的视觉效果基本相同。 1 引言 1.1 图像压缩研究目的及意义 如今在 Internet 及其他电脑界面上,传统基于字符界面的应用逐渐被图像信息取代。图像尽管漂 亮容易理解,但是也带来了一个问题:图像信息的数据量太大了,大数据量的图像信息会给存储器 的存储容量,通信干线信道的带宽,以及计算机的处理速度增加极大的压力。单纯靠增加存储器容 量,提高信道带宽以及计算机的处理速度等方法来解决这个问题是不现实的,这时就要考虑压缩。 压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信 息,去掉确定的信息(可推知的),也就是用一种更接近信息本质的描述来代替原有冗余的描述。这 个本质的东西就是信息量(即不确定因素)。 压缩可分为两大类,第一类压缩过程是可逆的,也就是说,从压缩后的图像能够完全恢复出原 来的图像,信息没有任何丢失,称为无损压缩;第二类压缩过程是不可逆的,无法完全恢复出原图 像,信息有一定的丢失,成为有损压缩。选择哪一类压缩,要折中考虑,尽管我们希望能够无损压 缩,但是通常有损压缩的压缩比(即原图像占的字节数与压缩后图像占的字节数之比,压缩比越大, 说明压缩效率越高)比无损压缩的高。 图像压缩一般是通过改变图像的表示方式来达到,因此压缩和编码是分不开的。图像压缩的主 要应用是图像信息的传输和存储,可广泛地应用于广播电视,电视会议,计算机通讯,传真,多媒 体系统,医学图像,卫星图像等领域。 1.2 图像压缩研究现状 近年来,图像技术发展迅速、相应的编码标准也应运而生。现概括如下: 1.JPEG 标准(Joint Photogaphic Expersts Group),1991 年提出,主要是针对静止图像的压缩标 准。 2.JPEG2000 标准,1997 年提出,1999 年完成,JPEG2000 是基于小波变换的静止图像压缩标准, 不仅有更优秀的压缩性能,而且有更丰富的处理能力。 3.H.261 又称为 P*46,其中 P 为 46kb/s 的取值范围,是 1 到 30 的可变参数,它最初是针对在 ISDN 上实现电信会议使用,特别是面对面的可视电话和视频会议而设计的。实际的编码算法类似于 MPEG 算法,但是不能与后者兼容。H.261 在实时编码时比 MPEG 所占用的 CPU 运算量少得多,此算法为 了优化带宽占用量,引进了在图像质量与运动幅度之间的平衡机制,也就是说,剧烈运动的图像比 相对静止的图像质量要差。因此这种方法是属于恒定码流可变质量编码而非恒定质量可变码流编码。 4.H.263 是国际电联 ITU-T 的一个标准草案,是为低码流通信而设计的。但实际上这个标准是可 用在很宽的码流范围的,而非只用于低码流应用,它在多种应用中可以认为被用于取代 H.261。H.263 的编码算法与 H.261 一样,但做了一些改善和改变,以提高性能和纠错能力。H.263 标准在低码率 下能够提供比 H.261 更好的图像效果。 此外还有 MPEG-1,MEPG-2/H.262,MEPG-4,MEPG-7,MEPG-21 等其他图像压缩标准。目 前 JPEG 是比较成功的一种图像压缩标准
2JPEG算法简介1991年,国际标准化组织(ISO)和国际电信联盟(ITU)制定了第一套静态图像压缩标准JPEG。该标准是基于离散余弦变换(DiscreteCosineTransform,DCT)的方法,在中高码率(码率大于0.25比特/像素)对于连续色调的静态灰度或彩色图像取得了较好的压缩性能。在目前多媒体通信采用的技术中,JPEG标准以其显著的压缩效率和较低的图像质量损失而获得了广泛应用,成为国际通用的标准。JPEG使用有损压缩时,在压缩比25:1的情况下,压缩后得到的图像与原始图像相比较,非图像专家难以找出它们之间的差别。JPEG能够适用于任何种类的连续色调的图像,且长宽比不受限制,同时也不受限于景物内容,图像得复杂度和统计特性等。鉴于JPEG其优良的品质,在标准提出后短短的几年间就获得了巨大的成功,目前网站上百分之80%的图像都是采用JPEG的压缩标准。虽然最近更高压缩率以及更多新功能的新一代图像压缩技术JPEG2000已经诞生。其目标是进一步改进目前压缩算法的性能,以适应低带宽,高噪声的环境,及医疗图像,电子图书馆,传真,Internet网上服务和保安等方面的应用。对于有较好的图像质量,较低的比特率或者是一些特殊功能的要求(比如渐进传输和感兴趣区域编码等)时,JPEG2000将是较好的选择。但是事实表明,随着JPEG系统产品的不断优化,在大多数场合下,JPEGyasuo就可以满足要求了。而且,JPEG的低复杂度,低成本的优点也是别的标准所无法取代的。因此,JPEG2000不可能完全替代JPEG。在未来很长一段时间内,JPEG仍然将是主流的静止图像压缩标准。3JPEG编码过程JPEG定义了两种基本的算法:一种是基于DCT的有失真的压缩算法,包括基本(Baseline)系统(顺序方式)和扩展系统(递增模式、分层编码):另一种是基于DPCM的无失真压缩算法,又称Spatial方式。DCT型算法可以实现较高的压缩,但较为复杂;空间预测算法可实现低到中等程度的压缩。选择使用哪种过程取决于特定的应用要求和价格性能考虑。无失真编码压缩比并不是很高,所以应用的也不是十分广泛,下面将主要介绍JPEG有失真的压缩过程。基于DCT的有失真编码处理过程如图1所示,JPEG基线系统是一种顺序DCT算法,这类算法在量化过程中引入误差,压缩是失真的。利用人的视觉系统的生理特性,使用量化和无损压缩编码去掉视觉的穴余信息和数据本身的几余信息。图1可以看出JPEG编码的处理过程,总的来说是这样的:对于一幅图像首先将其分成许多个8×8的小块,也就是每个小块有8×8=64个像素:分成多少个小块要看图像的分辨率,分辨率高,分的块就越多,分辨率小,分的块就越少。然后对每一个8X8的块进行二维DCT变换,经过DCT变换后就得到频域的64个离散余弦变换系数,然后要对这64个系数进行量化,DCT系数量化中所必需的量化表及摘编码中所必需的表的具体值,根据进行编码的图像不同而不同,一般取JPEG标准推荐的量化表,量化是根据量化表进行的,量化表是JPEG组织根据人的眼睛视觉的特性规定好的,直接用量化表去除得到的64个系数就是量化,量化后得到的仍是一个(8×8)64的系数,而这一系数已是低频集中在左上角的一个8×8的系数了。最后再利用熵编码表对其进行熵编码,摘编码后得到的就是己压缩的图像数据。基本DCT编码器原始图像压缩后的正向DCT变换上量化器编码器8×8数据块图像数据11量化表简编码表图1基于DCT的有损JPEG编码原理图3.1彩色空间变换计算机图像显示模型基本采用RGB颜色模型,即一幅彩色图像信号由R、G、B三基色光的三幅图像信号相加而成。这三种颜色之间的关系可以描述为:颜色R(红色的百分比)十G(绿色的百分比)+B(蓝色的百分比)JPEG标准中规定信源图像可以为彩色也可以为黑白,如果是彩色图像,一般由亮度分量Y和2
2 2 JPEG 算法简介 1991 年,国际标准化组织(ISO)和国际电信联盟(ITU)制定了第一套静态图像压缩标准 JPEG。 该标准是基于离散余弦变换(Discrete Cosine Transform,DCT)的方法,在中高码率(码率大于 0.25 比特/像素)对于连续色调的静态灰度或彩色图像取得了较好的压缩性能。在目前多媒体通信采用的 技术中,JPEG 标准以其显著的压缩效率和较低的图像质量损失而获得了广泛应用,成为国际通用的 标准。JPEG 使用有损压缩时,在压缩比 25:1 的情况下,压缩后得到的图像与原始图像相比较,非 图像专家难以找出它们之间的差别。JPEG 能够适用于任何种类的连续色调的图像,且长宽比不受 限制,同时也不受限于景物内容,图像得复杂度和统计特性等。 鉴于 JPEG 其优良的品质,在标准提出后短短的几年间就获得了巨大的成功,目前网站上百分 之 80%的图像都是采用 JPEG 的压缩标准。虽然最近更高压缩率以及更多新功能的新一代图像压缩 技术 JPEG2000 己经诞生。其目标是进一步改进目前压缩算法的性能,以适应低带宽,高噪声的环 境,及医疗图像,电子图书馆,传真,Internet 网上服务和保安等方面的应用。对于有较好的图像质 量,较低的比特率或者是一些特殊功能的要求(比如渐进传输和感兴趣区域编码等)时,JPEG2000 将是较好的选择。但是事实表明,随着 JPEG 系统产品的不断优化,在大多数场合下,JPEGyasuo 就可以满足要求了。而且,JPEG 的低复杂度,低成本的优点也是别的标准所无法取代的。因此, JPEG2000 不可能完全替代 JPEG。在未来很长一段时间内,JPEG 仍然将是主流的静止图像压缩标准。 3 JPEG 编码过程 JPEG 定义了两种基本的算法:一种是基于 DCT 的有失真的压缩算法,包括基本(Baseline)系 统(顺序方式)和扩展系统(递增模式、分层编码);另一种是基于 DPCM 的无失真压缩算法,又 称 Spatial 方式。DCT 型算法可以实现较高的压缩,但较为复杂;空间预测算法可实现低到中等程度 的压缩。选择使用哪种过程取决于特定的应用要求和价格性能考虑。 无失真编码压缩比并不是很高,所以应用的也不是十分广泛,下面将主要介绍 JPEG 有失真的 压缩过程。 基于 DCT 的有失真编码处理过程如图 1 所示,JPEG 基线系统是一种顺序 DCT 算法,这类算法 在量化过程中引入误差,压缩是失真的。利用人的视觉系统的生理特性,使用量化和无损压缩编码 去掉视觉的冗余信息和数据本身的冗余信息。图 1 可以看出 JPEG 编码的处理过程,总的来说是这 样的:对于一幅图像首先将其分成许多个 8×8 的小块,也就是每个小块有 8×8=64 个像素;分成多 少个小块要看图像的分辨率,分辨率高,分的块就越多,分辨率小,分的块就越少。然后对每一个 8×8 的块进行二维 DCT 变换,经过 DCT 变换后就得到频域的 64 个离散余弦变换系数,然后要对 这 64 个系数进行量化,DCT 系数量化中所必需的量化表及熵编码中所必需的表的具体值,根据进 行编码的图像不同而不同,一般取 JPEG 标准推荐的量化表,量化是根据量化表进行的,量化表是 JPEG 组织根据人的眼睛视觉的特性规定好的,直接用量化表去除得到的 64 个系数就是量化,量化 后得到的仍是一个(8×8)64 的系数,而这一系数己是低频集中在左上角的一个 8×8 的系数了。 最后再利用熵编码表对其进行熵编码,熵编码后得到的就是己压缩的图像数据。 原始图像 8×8数据块 量化器 基本DCT编码器 熵编码器 熵编码表 压缩后的 图像数据 正向DCT变换 量化表 图 1 基于 DCT 的有损 JPEG 编码原理图 3.1 彩色空间变换 计算机图像显示模型基本采用 RGB 颜色模型,即一幅彩色图像信号由 R、G、B 三基色光的三 幅图像信号相加而成。这三种颜色之间的关系可以描述为: 颜色=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比) JPEG 标准中规定信源图像可以为彩色也可以为黑白,如果是彩色图像,一般由亮度分量 Y 和
色度分量Cr和Cb构成,因为研究结果表明,人得视网膜有对红,绿,蓝颜色敏感程度不同的三种锥体细胞。人类视觉系统对光的亮度具有最强的分辨能力,对色度的分辨率大概是对亮度分辩率的四分之一等,利用人的视觉系统对颜色的感知这些特性,将RGB信号转换亮度和色差信号后进行编码。CCIR601建议规定的YCrCb彩色空间到RGB彩色空间的转换关系如下式:(1)Y=0.299R+0.587G+0.144B-128(2)Cr=0.500R-0.4187G-0.813B(3)Cb=-0.1687R-0.3133G+0.500B3.2DCT算法离散余弦变换(DiscreteCosineTransform,简称DCT变换)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。在JPEG算法中需要利用DCT对图像进行变换。离散余弦变换实现将一组光强数据转换成频率数据。在压缩时,将源图像数据分成8X8像素构成的像块的集合,如果原始图片的长宽不是8的倍数,需要先补成8的倍数。JPEG里是对Y、Cr、Cb分别做DCT变换的。DCT将每个数据单元的值转换为64个DCT系数,其中F(O,O)称为直流(DC)系数,其余63个系数称为交流(AC)系数。解压缩是正向变换的反过程。DCT和IDCT分别由公式(4)和公式(5)实现。[(2i + 1)u cos[1[(2j+1)元-C(u)C(v)Z f(i, j)cos[(4)F(u,v)=41616i=0 j=0(2x + 1)u jcos[1(2y+1)V元)C(u)C(v)ZZF(u, v)cos[(5)f(i,j)=161641=0 v=0上面两式中C(u),C(v)=1/ ~2(当u, V= 0)C(u),C(v)=l(其他情况)139144 1491531551551555155235.6 -1.0-12.1 -5.22.1 -1.7 -2.7 1.3156144151156159156156-22.6 -17.5-3.2-2.9-0.10.4-1.2153-6.2156150155160163158156156-10.9-9.33-1.61.50.20.9 0.6 -0.11591621602159159159161160-7.1 -1.90.21.50.9-0.10.00.3161155159160162162155155-0.60.81.51.6-0.1 -0.70.61.31611611611611601571571571.80.21.6-0.3-0.81.0-1.01.5162162161163162157157157-1.3 0.4 -0.3 -1.5 -0.51.71.1 -0.81631581621621611611588158-2.61.6 -3.8-1.81.91.2 -0.6 -0.4(a)源图像样本(b)DCT系数图2DCT变换3.3量化量化过程实际上就是对DCT系数的一个优化过程。它是利用了人眼对高频部分不敏感的特性来实现数据的大幅简化。量化过程实际上是简单地把频率领域上每个成份,除以一个对于该成份的常数,且接着四舍五入取最接近的整数。这是整个过程中的主要有损运算。以这个结果来说,经常会把很多高频率的成份四舍五入而接近0,且剩下很多会变成小的正或负数。整个量化的自的是减小非“0”系数的幅度以及增加“0”值系数的数目。量化是图像质量下降的最主要原因。因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。3
3 色度分量 Cr 和 Cb 构成,因为研究结果表明,人得视网膜有对红,绿,蓝颜色敏感程度不同的三种 锥体细胞。人类视觉系统对光的亮度具有最强的分辨能力,对色度的分辨率大概是对亮度分辩率的 四分之一等,利用人的视觉系统对颜色的感知这些特性,将 RGB 信号转换亮度和色差信号后进行编 码。 CCIR601 建议规定的 YCrCb 彩色空间到 RGB 彩色空间的转换关系如下式: Y RGB =++− 0.299 0.587 0.144 128 (1) Cr R G B =− − 0.500 0.4187 0.813 (2) Cb R G B =− − + 0.1687 0.3133 0.500 (3) 3.2 DCT 算法 离散余弦变换(Discrete Cosine Transform,简称 DCT 变换)是一种与傅立叶变换紧密相关的数 学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦 项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。在 JPEG 算法中需要利用 DCT 对图 像进行变换。 离散余弦变换实现将一组光强数据转换成频率数据。在压缩时,将源图像数据分成 8×8 像素构 成的像块的集合,如果原始图片的长宽不是 8 的倍数,需要先补成 8 的倍数。JPEG 里是对 Y、Cr、 Cb 分别做 DCT 变换的。DCT 将每个数据单元的值转换为 64 个 DCT 系数,其中 F(0,0)称为直流(DC) 系数,其余 63 个系数称为交流(AC)系数。解压缩是正向变换的反过程。DCT 和 IDCT 分别由公 式(4)和公式(5)实现。 7 7 0 0 1 (2 1) (2 1) ( , ) ( ) ( ) ( , )cos[ ]cos[ ] 4 i j 16 16 iu jv Fuv CuCv f i j π π = = + + = ∑∑ (4) 7 7 0 0 1 (2 1) (2 1) ( , ) ( ) ( ) ( , )cos[ ]cos[ ] 4 u v 16 16 xu yv f i j CuCv Fuv π π = = + + = ∑∑ (5) 上面两式中 Cu Cv ( ), ( ) 1/ 2( u, 0) = 当 v = Cu Cv ( ), ( ) 1( ) = 其他情况 图 2 DCT 变换 3.3 量化 量化过程实际上就是对 DCT 系数的一个优化过程。它是利用了人眼对高频部分不敏感的特性来 实现数据的大幅简化。量化过程实际上是简单地把频率领域上每个成份,除以一个对于该成份的常 数,且接着四舍五入取最接近的整数。这是整个过程中的主要有损运算。以这个结果来说,经常会 把很多高频率的成份四舍五入而接近 0,且剩下很多会变成小的正或负数。整个量化的目的是减小 非“0”系数的幅度以及增加“0”值系数的数目。量化是图像质量下降的最主要原因。因为人眼对 亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值
1611101624405161121419266055125814 131624 4057695651878014172229621822375668109103772435556481104113924964788710312112010172 92959899112100103JPEG亮度量化表17479999999918249999991821266699999999242656999947669999999999999999999999999999999999999999999999999999999999999999999999999999JPEG色度量化表图3JPEG量化表图2的DCT系数经过亮度量化表进行量化之后结果如图4所示:150-10O00-2-1000000-1-10000000000000000000000000000000000000000000000图4量化系数直流分量和各交流分量可用不同量化间隔量化,低频分量量化得细,高频分量量化得粗。Y、U、V也可用不同的量化表,Y细量化,U、V粗量化。JPEG规范中,Y数据和Cb、Cr数据各有一个8X8的推荐量化表,根据具体要求可以构造专用的量化表,但量化过程和逆量化过程应使用同样的量化表。量化是在图像文件品质与压缩比例之间做一选择的重要过程,而这也就是JPEG所谓的失真压缩方式。经量化处理后的数据,应用平均压缩比最高的Huffman码进行摘编码。3.4编码量化过后,要进行编码。对于DC系数和AC系数的编码,由于两者的统计性质上有很大的不同,所以要分开进行。4
4 图 3 JPEG 量化表 图 2 的 DCT 系数经过亮度量化表进行量化之后结果如图 4 所示: 图 4 量化系数 直流分量和各交流分量可用不同量化间隔量化,低频分量量化得细,高频分量量化得粗。Y、U、 V 也可用不同的量化表,Y 细量化,U、V 粗量化。JPEG 规范中,Y 数据和 Cb、Cr 数据各有一个 8 ×8 的推荐量化表,根据具体要求可以构造专用的量化表,但量化过程和逆量化过程应使用同样的 量化表。量化是在图像文件品质与压缩比例之间做一选择的重要过程,而这也就是 JPEG 所谓的失 真压缩方式。经量化处理后的数据,应用平均压缩比最高的 Huffman 码进行熵编码。 3.4 编码 量化过后,要进行编码。对于 DC 系数和 AC 系数的编码,由于两者的统计性质上有很大的不 同,所以要分开进行
DC值AC系数开始AC系数结束图5JPEG编码示意图8×8矩阵块的左上角第一个元素是直流(DC)系数,即图像子块平均值,由于相邻8×8块之间的DC系数之间的相关性很强,JPEG对DC系数采用差值脉冲编码(DPCM),即对相邻块之间的DC系数的差值Diff-DC-DCi-1进行编码。例如,两个相邻DC系数分别为1001和1002,直接传输分别需要10bit和10bit,采用DPCM后传输仅需10bit和1bit,从而达到压缩的效果。8×8的其它63个元素是交流(AC)系数,采用行程编码。为了保证低频分量先出现,高频分量后出现,以增加行程中连续“0”的个数,这63个元素采用了“之”字型(Zig-Zag)的排列方法。AC系数行程编码的码字用两个字节表示,如图6所示。位32107654下一个非零值所占两个非零值之间连续第一个字节零的个数(行程RunLength)的比特数(Size)位32107654第二个字节下一个非零系数的实际值图6行程编码示意图为了进一步压缩数据,对DC码和AC行程编码的码字再作基于统计特性的摘编码。JPEG标准建议使用的摘编码方法有霍夫曼编码和自适应二进制算术编码。经过以上过程,原始图像得到很大程度的压缩。4.结语JPEG是一种重要的压缩算法,本文介绍了JPEG算法的核心思想。经过压缩以后的数据,对于图像数据的存储来说,节省了存储空间,使得原有的存储设备,能够用米存储更多的信息。而对图像的传输而言,则减少了传输率,节省了传输时间,解决了数据量大和带宽有限的问题。因此JPEG及其他数据压缩算法有着重要的研究价值。5
5 图 5 JPEG 编码示意图 8×8 矩阵块的左上角第一个元素是直流(DC)系数,即图像子块平均值,由于相邻 8×8 块之 间的 DC 系数之间的相关性很强,JPEG 对 DC 系数采用差值脉冲编码(DPCM),即对相邻块之间的 DC 系数的差值 Diff=DCi-DCi-1 进行编码。例如,两个相邻 DC 系数分别为 1001 和 1002,直接传输 分别需要 10bit 和 10bit,采用 DPCM 后传输仅需 10bit 和 1bit,从而达到压缩的效果。 8×8 的其它 63 个元素是交流(AC)系数,采用行程编码。为了保证低频分量先出现,高频分量 后出现,以增加行程中连续“0”的个数,这 63 个元素采用了“之”字型(Zig-Zag)的排列方法。AC 系数行程编码的码字用两个字节表示,如图 6 所示。 图 6 行程编码示意图 为了进一步压缩数据,对 DC 码和 AC 行程编码的码字再作基于统计特性的熵编码。JPEG 标准 建议使用的熵编码方法有霍夫曼编码和自适应二进制算术编码。经过以上过程,原始图像得到很大 程度的压缩。 4.结语 JPEG 是一种重要的压缩算法,本文介绍了 JPEG 算法的核心思想。经过压缩以后的数据,对于 图像数据的存储来说,节省了存储空间,使得原有的存储设备,能够用米存储更多的信息。而对图 像的传输而言,则减少了传输率,节省了传输时间,解决了数据量大和带宽有限的问题。因此 JPEG 及其他数据压缩算法有着重要的研究价值