① 简述JPEG静态图象压缩编码的过程及其实现技术
不是吧。。。。啥专业?
10、详述JPEG静态图象压缩编码原理及实现技术。
答:JPEG是由国际电报咨询委员会(CCITT)和国际标准化协会(OSI)联合组成的一个图象专家小组开发研制的连续色调、多级灰度、静止图象的数字图象压缩编码方法。JPEG适于静止图象的压缩,此外,电视图象序列的帧内图象的压缩编码也常采用JPEG压缩标准。JPEG数字图象压缩文件作为一种数据类型,如同文本和图形文件一样地存储和传输。基于离散余弦变换(DCT)的编码方法是JPEG算法的核心内容。算法的编解码过程如教材136页图4.25-4.26所示。编码处理过程包括原图象数据输入、正向DCT变换器、量化器、熵编码器和压缩图象数据的输出,除此之外还附有量化表和熵编码表(即哈夫曼表);接收端由信道收到压缩图象数据流后,经过熵解码器、逆量化器、逆变换(IDCT),恢复并重构出数字图象,量化表和熵编码表同发送端完全一致。编码原图象输入,可以是单色图象的灰度值,也可以是彩色图象的亮度分量或色差分量信号。DCT的变换压缩是对一系列8*8采样数据作块变换压缩处理,可以对一幅像,从左到右、从上到下、一块一块(8*8/块)地变换压缩,或者对多幅图轮流取8*8采样数据块压缩。解码输出数据,需按照编码时的分块顺序作重构处理,得到恢复数字图象。
具体的实现技术如下:
(1)首先把一幅图象分8*8的子块按图中的框图进行离散余弦正变换(FDCT)和离散余弦逆变换(IDCT)。
在编码器的输入端,原始图象被分成一系列8*8的块,作为离散余弦正变换(FDCT)的输入。在解码器的输出端,离散余弦逆变换(IDCT)输出许多8*8的数据块,用以重构图象。8*8 FDCT和8*8 IDCT数学定义表达式如下:
离散余弦正变换(FDCT)可看作为一个谐波分析仪,把离散余弦逆变换(IDCT)看作一个谐波合成器。每个8*8二维原图象采样数据块,实际上是64点离散信号,该信号是空间二维参数x和y的函数。FDCT把这些信号作为输入,然后把它分解成64个正交基信号,每个正交信号对应于64个二维(2D)空间频率中的一个,这些空间频率是由输入信号的频谱组成。FDCT的输出是64个基信号的幅值(即DCT系数),每个系数值由64点输入信号唯一地确定,即离散余弦变换的变换系数。在频域平面上变换系数二维频域变量u和v的函数。对应于u=0,v=0的系数,称做直流分量(DC系数),其余63个系数称做交流分量(AC系数)。因为在一幅图象中像素之间的灰度或色差信号变化缓慢,在8*8子块中像素之间相关性很强,所以通过离散余弦正变换处理后,在空间频率低频范围内集中了数值大的系数,这样为数据压缩提供了可能。远离直流系数的高频交流系数大多为零或趋于零。如果FDCT和IDCT变换计算中计算精度足够高,并且DCT系数没有被量化,那么原始的64点信号就能精确地恢复。
(2)量化
为了达到压缩数据的目的,对DCT系数F(u,v)需作量化处理。量化处理是一个多到一的映射它是造成DCT编解码信息损失的根源。在JPEG标准中采用线性均匀量化器。量化定义为,对64个DCT变换系数F(u,v)除以量化步长Q(u,v)后四舍五入取整。即量化器步长是量化表的元素,量化表元素随DCT变换系数的位置而改变,同一像素的亮度量化表和色差量化表不同值,量化表的尺寸也是64,与64个变换系数一一对应。量化表中的每一个元素值为1至255之间的任意整数,其值规定了对应位置变换系数的量化器步长。在接收端要进行逆量化,逆量化的计算公式为:
不同频率的余弦函数对视觉的影响不同,量化处理是在一定的主观保真度图像质量的前提下,可据不同频率的视觉阈值来选择量化表中的元素值的大小。根据心理视觉加权函数得到亮度化表和色度量化表。DCT变换系数F(u,v)除以量化表中对应位置的量化步长,其幅值下降,动态范围变窄,高频系数的零值数目增加。
(3)熵编码
为进一步达到压缩数据的目的,需对量化后的DC系数和行程编码后的AC系数进行基于统计特性的熵编码。64个变换系数经量化后,坐标u=v=0的值是直流分量(即DC系数)。DC系数是64个图像采样平均值。因为相邻的8×8块之间有强的相关性,所以相邻块的DC系数值很接近,对量化后前后两块之间的DC系数差值进行编码,可以用较少的比特数。DC系数包含了整个图像能量的主要部分。经量化后的63个AC系数编码时从左上方AC(u=7,v=7)开始,沿箭头方向,以“Z”字形行程扫描,直到AC(u=7,v=7)扫描结束。量化后特编码的AC系数通常有许多零值,沿“Z”字形路径行进,可使零AC系数集中,便于使用行程编码方法。63个AC系数行程编码和码字,可用两个字节表示。JPEG建议使用两种熵编码方法:Huffman编码和自适应二进制算术编码。熵编码可分成两步进行,首先把DC和AC系数转换成一个中间格式的符号序列,第二步是给这些符号赋以变长码字。
② jpg格式的图片怎样压缩大小
应该怎样在电脑上实现图片压缩呢?下面我们就一起来看一下吧。
借助工具:闪电图片压缩器
操作方法:
第一步、双击打开软件,如图,点击“添加文件”,将需要压缩的图片一次性添加进来。
③ JPEG标准的基本系统中压缩过程有几步每步的工作原理是什么
JPEG压缩分四个步骤实现:
1.颜色模式转换及采样;
2.DCT变换;
3.量化;
4.编码。
二.
1.颜色模式转换及采样 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三个成份的数据取样比例。
2.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之间。 DCT变换公式:
x,y代表图像数据矩阵内某个数值的坐标位置f(x,y)代表图像数据矩阵内的数个数值u,v代表DCT变换后矩阵内某个数值的坐标位置F(u,v)代表DCT变换后矩阵内的某个数值 u=0 且 v=0 c(u)c(v)=1/1.414 u>0 或 v>0 c(u)c(v)=1 经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。
3、量化 图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。 当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容,JPEG提供的量化表如下:
4、编码 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的编码工作。
AC编码 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压缩。 参考资料[1] 林福宗 《图像文件格式(上)——Windows 编程》,清华大学出版社, 1996年[2] 李振辉、李仁各编着,《探索图像文件的奥秘》,清华大学出版社,1996年[3] 黎洪松、成实译《JPEG静止数据压缩标准》,学苑出版社,1996年
希望能对你有点帮助 !
④ 简述JPEG压缩算法
首先你需要了解几个概念,有损压缩,量化,行程编码。
对一副图片来说,bitmap就是原始格式,没经过任何压缩的。
量化就是把所有0-255的像素值进行归类,然后分成尽量少的积累,这要存储量就小很多了,对于JEPG来说量化是有损压缩的起源。
最后就是对所有的已经归类过的点进行行程编码,然后就压缩完了
⑤ JPEG标准的基本系统中压缩过程有几步每一步减少那种冗余 谢谢了! 急啊 !
JPEG压缩过程 JPEG压缩分四个步骤实现: 1.颜色模式转换及采样; 2.DCT变换; 3.量化; 4.编码。 二. 1.颜色模式转换及采样 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三个成份的数据取样比例。 2.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之间。 DCT变换公式: x,y代表图像数据矩阵内某个数值的坐标位置f(x,y)代表图像数据矩阵内的数个数值u,v代表DCT变换后矩阵内某个数值的坐标位置F(u,v)代表DCT变换后矩阵内的某个数值 u=0 且 v=0 c(u)c(v)=1/1.414 u>0 或 v>0 c(u)c(v)=1 经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。 3、量化 图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。 当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容,JPEG提供的量化表如下: 4、编码 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的编码工作。 AC编码 AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。
⑥ JPEG的无损压缩方法原理及过程。
jpeg是有损压缩,jpeg2000才有无损压缩。。
JPEG2000的原理:
JPEG 2000 与传统 JPEG 最大的不同,在于它放弃了 JPEG
所采用的以离散馀弦转换(Discrete Cosine Transform) 为主的区块编码方式,而改采以小波转换(Wavelet transform)
为主的多解析编码方式。小波转换的主要目的是要将影像的频率成分抽取出来。
JPEG2000的优点:
1、JPEG2000 作为JPEG升级版,高压缩(低比特速率)是其目标,其压缩率比 JPEG 高约 30% 左右。
2、JPEG2000
同时支持有损和无损压缩,而 JPEG 只能支持有损压缩。无损压缩对保存一些重要图片十分有用。
3、JPEG2000
能实现渐进传输,这是JPEG2000的一个极其重要的特征。也就是我们对 GIF
格式影像常说的“渐现”特性。它先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图象由朦胧到清晰显示,而不必是像现在的 JPEG
一样,由上到下慢慢显示。
4、JPEG2000
支持所谓的“感兴趣区域”特性,你可以任意指定影像上你感兴趣区域的压缩质量,还可以选择指定的部份先解压缩。这样我们就可以很方便的突出重点了。
⑦ 如何压缩图片大小jpg
jpg格式的图片想要压缩的话,直接用这个在线图片压缩工具吧,可以把图片文件缩减到任意体积大小,比如你直接设置一下压缩数值到200kb,马上瞬间就能把图片的文件大小压缩到200kb搞定,你设定压缩到多少kb,他压缩完输出的图片就是多少kb,不需要任何繁琐的操作和专业知识。在线智能压缩图片大小,图片压缩体积
在线图片智能压缩使用步骤:
一、首先点击加号添加需要压缩的图片。目前已知支持对jpg、png等多种常见的图片格式进行压缩,如果上传图片并压缩成功,则代表支持该图片格式。
二、可以自行修改图片需要被压缩到的最大宽高尺寸,默认为图片原始的宽高尺寸,且宽高比例是自动锁定的。
三、必须设置图片被压缩后,期望输出的图片文件的最大占用空间。(必填项)
四、选择图片生成的算法。默认为混合优先算法,绝大多数情况下使用默认算法即可。
五、压缩的设定值不能小于1Kb,但图片压缩的最终效果可以小于1Kb。
butterpig