导航:首页 > 文件处理 > jpeg压缩码计算方法

jpeg压缩码计算方法

发布时间:2022-04-26 20:31:07

Ⅰ 简述JPEG的压缩原理

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压缩。

算法JPEG的数学表达式是

我们这个学期有教过,对正向离散余弦变换数学公式看起来很头痛。
=
=!如果你只是应付考试,记住JPEG压缩编码算法的主要计算步骤,理解大概就行了。
(1)正向离散余弦变换(FDCT)。
(2)量化(Quantization)。
(3)Z字形编码(Zigzag
Scan)。
(4)使用差分脉冲编码调制(Differential
Pulse
Code
Molation,DPCM)对直流系数(DC)进行编码。
(5)使用行程长度编码(Run-Length
Encoding,RLE)对交流系数(AC)进行编码。
(6)熵编码(Entropy
Eoding)。
公式的网址:
http://blog.csdn.net/crfoxzl/archive/2007/11/03/1865072.aspx

Ⅲ JPEG压缩编码算法的主要步骤是什么其中哪些步骤是有损的,那些是无损的

JPEG压缩编码算法的主要计算步骤如下:
1、正向离散余弦变换(FDCT)。
2、量化(quantization)。
3、Z字形编码(zigzag scan)。
4、使用差分脉冲编码调制(differential pulse code molation,DPCM)对直流系数(DC)进行编码。
5、使用行程长度编码(run-length encoding,RLE)对交流系数(AC)进行编码。
6、熵编码(entropy coding)。

Ⅳ JPEG是矢量图像压缩编码标准

JPEG(Joint Photographic Experts Group) 是一个由 ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。

JPEG专家组开发了两种基本的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在V-CD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG 2000(简称JP 2000)标准,这个标准中将采用小波变换(wavelet)算法。

JPEG压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。压缩编码大致分成三个步骤:

1.使用正向离散余弦变换(forward discrete cosine transform,FDCT)把空间域表示的图变换成频率域表示的图。

2.使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。

3.使用霍夫曼可变字长编码器对量化系数进行编码。

译码或者叫做解压缩的过程与压缩编码过程正好相反。

JPEG算法与彩色空间无关,因此“RGB到YUV变换”和“YUV到RGB变换”不包含在JPEG算法中。JPEG算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如RGB, YCbCr和CMYK。

JPEG压缩编码算法的主要计算步骤如下:

1.正向离散余弦变换(FDCT)。

2.量化(quantization)。

3.Z字形编码(zigzag scan)。

4.使用差分脉冲编码调制(differential pulse code molation,DPCM)对直流系数(DC)进行编码。

5.使用行程长度编码(run-length encoding,RLE)对交流系数(AC)进行编码。

6.熵编码(entropy coding)。

2. 量化

量化是对经过FDCT变换后的频率系数进行量化。量化的目的是减小非“0”系数的幅度以及增加“0”值系数的数目。量化是图像质量下降的最主要原因。

对于有损压缩算法,JPEG算法使用均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此图中的左上角的量化步距要比右下角的量化步距小。

3. Z字形编排

量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排,如图5-17所示。这样就把一个8 ? 8的矩阵变成一个1 ? 64的矢量,频率较低的系数放在矢量的顶部。

4. 直流系数的编码

8 ? 8图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻8 ? 8图像块的DC系数值变化不大。根据这个特点,JPEG算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值(Delta)进行编码,

Delta=DC(0, 0)k-DC(0, 0)k-1 ........ (5-5)

5. 交流系数的编码

量化AC系数的特点是1 ? 64矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。

JPEG使用了1个字节的高4位来表示连续“0”的个数,而使用它的低4位来表示编码下一个非“0”系数所需要的位数,跟在它后面的是量化AC系数的数值。

6. 熵编码

使用熵编码还可以对DPCM编码后的直流DC系数和RLE编码后的交流AC系数作进一步的压缩。

在JPEG有损压缩算法中,使用霍夫曼编码器来减少熵。使用霍夫曼编码器的理由是可以使用很简单的查表(lookup table)方法进行编码。压缩数据符号时,霍夫曼编码器对出现频度比较高的符号分配比较短的代码,而对出现频度较低的符号分配比较长的代码。这种可变长度的霍夫曼码表可以事先进行定义。

Ⅳ MPEG和JPEG分别采用了什么算法

MPEG是Moving Pictures Experts Group(动态图像专家组)英文缩写.这个专家组是1988年开始负责CD建立视频和音频标首,MPEG有四个版本分别是,MPEG1 到MPEG4,其中MPEG3就是我们所说的MP3,MPEG在压缩比方面突破200:1,压缩时而做到对数据的损失很少.
JPEG是Joint Photographics Expert Group(合接图像专家组)英文缩写,JPEG可以大幅压缩图型文件,同样一幅画面压缩比是原文件的1/10到1/20,文件大小一般为几十K到一二百K之间,而色彩数最高可达24位,比较广泛应用于因特网上,以节约网络传输资源.JPEG的压缩效果还是可以的.

Ⅵ JPEG压缩编码算法的主要计算步骤哪些对图像的质量有损

JPEG压缩编码算法的主要计算步骤如下:
(1)正向离散余弦变换(FDCT)。 (2)量化(Quantization)。 (3)Z字形编码(Zigzag Scan)。 (4)使用差分脉冲编码调制(Differential Pulse Code Molation,DPCM)对直流系数(DC)进行编码。 (5)使用行程长度编码(Run-Length Encoding,RLE)对交流系数(AC)进行编码。 6)熵编码(Entropy Eoding)。
JPEG是有损编码,是在量化过程中取整而产生的。

Ⅶ 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排序,即按照下图箭头所指示的顺序串联起来。
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年

希望有点帮助
参考资料:http://www.daima.com.cn/Info/94/Info31445/

Ⅷ 简述JPEG压缩算法

首先你需要了解几个概念,有损压缩,量化,行程编码。
对一副图片来说,bitmap就是原始格式,没经过任何压缩的。
量化就是把所有0-255的像素值进行归类,然后分成尽量少的积累,这要存储量就小很多了,对于JEPG来说量化是有损压缩的起源。
最后就是对所有的已经归类过的点进行行程编码,然后就压缩完了

Ⅸ JPEG压缩的主要计算步骤是什么

如果图片多的话,最简单的办法就是放到一个文件夹里,
然后对那个文件夹点右键--添加到档案文件他会自动生成的个的,你也可以去那个文件改名(前提就像楼上说的那样,得安装有加压解工具)

Ⅹ JPEG图片大小怎么计算

1.57MB是图像的原始大小,740*740*3(RGB图像通常每像素3字节)=1642800字节=1.566696MB,大约等于其BMP格式的大小,而307.7KB是JPEG格式的大小,是压缩过的。

JPG图片的大小,与压缩质量系数有关,与图片的内容有关。640*480的JPG图片,文件大小可能只有几KB,也可能有上百KB。

256色,即每个像素用8位(一个字节)来描述,640*480共307200像素(约30万像素),因此图像大小就是307200字节,即300KB。

BMP文件实际是由位图文件头、位图信息头、彩色板、图像数据阵列四个部分构成,上面的300KB是图像数据阵列部分,加上文件前面的部分(一般为几十个字节),会比300KB略大。

(10)jpeg压缩码计算方法扩展阅读:

JPEG也是最常见的一种图像格式,它是由联合照片专家组开发并以命名为“ISO 10918-1”,JPEG仅仅是一种俗称而已。

JPEG文件的扩展名为.jpg或.jpeg,因其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。

阅读全文

与jpeg压缩码计算方法相关的资料

热点内容
编译原理好课 浏览:716
python中实数的表示 浏览:370
php下载中文名文件 浏览:348
哪里有专门注册app实名的 浏览:273
魔爪mx稳定器app去哪里下载 浏览:469
excel如何批量处理电话号码加密 浏览:324
ark命令 浏览:39
seal是不是对称密钥算法 浏览:29
免费学习的app在哪里下载 浏览:177
rfid与单片机 浏览:590
5s相当于安卓什么手机 浏览:690
哈佛商学院pdf 浏览:978
app的ip哪里买 浏览:909
移动天文台app在哪里下载 浏览:924
phpjsonencode乱码 浏览:587
t3的服务器名是什么几把 浏览:69
高中算法语句 浏览:549
安卓充电接头坏如何直接线 浏览:2
mcu编译成库 浏览:296
python官网访问不了了 浏览:98