简述JPEG的压缩原理

快啊帮忙拉... 快啊帮忙拉 展开
 我来答
多多益善将心比心
推荐于2018-06-22 · TA获得超过769个赞
知道大有可为答主
回答量:1253
采纳率:100%
帮助的人:297万
展开全部
  JPEG压缩分四个步骤实现:
  一、颜色模式转换及采样:
  RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。 Y=0.2990R+0.5870G+0.1140B Cb=-0.1687R-0.3313G+0.5000B+128 Cr=0.5000R-0.4187G-0.0813B+128 人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。
  二、DCT变换:
  DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。 压缩时,将原始图像数据分成8*8数据单元矩阵。JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。 当图像数据分成一个8*8矩阵后,还必须将每个数值减去128,然后一一代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT变换公式所接受的数字范围是在-128到+127之间。
  三、量化:
  图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。 当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容。
  四、编码:
  1、编码 Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。 编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。 DC编码 DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,下表即列出差值所应保留的Bit数与差值内容的对照。
  在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫曼码值,完成DC的编码工作;
  2、AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。 63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。 如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。 例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的前面有5个零。 由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相关书籍。 实现上述四个步骤,即完成一幅图像的JPEG压缩。
匿名用户
2013-12-01
展开全部
JPEG 根据压缩技术的不同,而把静态影像压缩的方式分为两种,一种是有失真模式 (Information Loss),另一种是无失真模式(Information lossless)。兹将此两种压缩模式分述如下:1. 有失真模式: �6�4采用离散馀弦转换 (Discrete Cosine Transform; DCT) 的技术。 �6�4经过压缩与解压缩还原之後的影像会有失真产生,幸好人的眼睛对於少许失真不易察觉。 �6�4压缩率高,压缩 30 倍仍能获得高品质。 �6�4应用於一般图片、多媒体。 �6�4应用广泛,目前的应用绝大部份都是采用此种模式。2. 无失真模式: �6�4采用差值讯号编码 (Differential Pulse Code Modulation; DPCM) 的技术。 �6�4经过压缩与解压缩还原之後的影像与原始影像相比完全没有失真产生。 �6�4压缩率低,通常在 10 倍以下。 �6�4主要应用於医学影像,因为医学上宁可压缩率低确保影像品质,而不愿高压缩率引起的影像失真造成误诊。 �6�4因为压缩率不高,除了医学影像之外,目前的应用很少采用此种模式。一般而言,JPEG压缩要经过几个部骤: 1区块切割:将影像切成8*8区块 2色相转换:将RGB转为YUV (YCbCr) 3 取样:4:2:2 4:1:1 4DCT转换:将空间域资料转换为频率域资料,低频区集中 5量化:将转换後之8*8区块再行处理,使之系数值变小 6熵编码:将量化後之区块进行编码储存
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-12-01
展开全部
更改它的分辨率、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式