JPEG图像压缩与编码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JPEG图像压缩与编码姓名:李攀攀(13720837)石亚文(13720851)石磊(13720853)课程:信号处理技术2020年5月27日JPEG图像压缩与编码目录1背景介绍1.1为什么进行图像的压缩1.2JPEG是什么1.3JPEG算法概要2JPEG算法的主要计算步骤2.1离散余弦变换2.2量化2.3Z字形编排2.4熵编码3仿真结果展示JPEG图像压缩与编码1背景介绍1.1为什么进行图像压缩第一,压缩的必要性:图象和视频通常在计算机中表示后会占用非常大的空间,而出于节省硬盘空间的考虑,往往要进行压缩。同时,传输过程中,为了节省珍贵的带宽资源和节省时间,也迫切要求压缩。图像编码与压缩从本质上来说就是对要处理的图像源数据按一定的规则进行变换和组合,从而达到以尽可能少的代码(或符号)来表示尽可能多的数据信息。第二,压缩的可能性:之所以可以进行压缩编码,是因为原始的数据包含一定的冗余。在图像的数据文件中包含大量的冗余信息,换句话说,在实际获取的原始数据中,包含有多余的冗余信息。这些冗余信息来自于数据之间的相关性,或者来自于人的视觉特性,这就为压缩数据提供了可能。同时,通过解压缩,我们可以根据之前采取的压缩方法(有损压缩、无损压缩等)进行相应的解压缩措施,得到满足图像主客观质量的恢复图像。1背景介绍图像数据的压缩基于两个特点:一是图像信息存在很大的信息冗余度,数据之间存在相关性,如相邻像素之间色彩的相关性,图像越有规律,相关性越大,可压缩的数据就越多。二是人眼对图像的亮度信息敏感而对色度信息不敏感,因此可利用这个特点来实现对图像的高压缩比。基于以上两个特点而发展来的数据压缩有两类一是无损压缩:将相同的或相似的数据或特征归类,使用较少的数据描述原始数据,从而减少数据量。如RLE编码,Huffman编码和算术编码。二是有损压缩:有针对性的简化不重要的数据,以减少总的数据量。只要损失的数据不会影响人眼主管接收的效果就可以采用这种压缩。如预测编码和变换编码。2020年5月27日JPEG图像压缩与编码1背景介绍1.2JPEG是什么JointPhotographicExpertsGroup的缩写,联合图像专家组由ISO和IEC两个组织机构联合组成的专家组,负责制定静态的数字图像数据压缩编码标准。JPEG标准静态图像数据压缩标准,用于压缩灰度图像和彩色图像。两种基本压缩算法:有损压缩算法:以离散余弦变换(DCT)为基础。无损压缩算法:以预测技术为基础。JPEG格式存放使用JPEG压缩的图像文件交换格式大多数浏览器都支持这种格式的文件。以这种格式存放的图像文件的后缀是.JPG或.JFF。也称JFIF2020年5月27日JPEG图像压缩与编码1背景介绍1.3JPEG算法概要利用视觉系统特性,使用变换、量化和熵编码相结合的方法,以去掉或减少视觉的冗余信息和数据本身的冗余信息JPEG标准的压缩算法大致分成三个步骤:使用正向离散余弦变换(FDCT)把空间域表示的图变换成频率域表示的图使用加权函数对DCT系数进行量化,加权函数对人的视觉系统是最佳的使用霍夫曼编码器对量化系数进行编码2020年5月27日JPEG图像压缩与编码1背景介绍JPEG压缩编码流程图2020年5月27日JPEG图像压缩与编码1背景介绍JPEG算法与颜色空间无关RGB和YUV之间的变换不包含在JPEG算法中JPEG算法处理单独的图像彩色分量,因此可压缩来自不同颜色空间的数据,如RGB,YCbCr,CMYK。色彩变换公式1背景介绍色彩空间变换和数据的压缩并没有直接的关系。而是涉及到图像采样的问题。采样依据:人的眼睛含有对亮度敏感的柱状细胞1.8亿个,含有对色彩敏感的椎状细胞0.08亿个,由于柱状细胞的数量远大于椎状细胞,所以眼睛对亮度的敏感程度要大于对色彩的敏感程度。JPEG图像压缩与编码2JPEG算法的主要计算步骤2.JPEG压缩编码算法的主要计算步骤(1)正向离散余弦变换(FDCT)(2)量化(quantization)(这一步出现了信息的损失)(3)Z字形编码(zigzagscan)。(4)使用差分脉冲编码调制(DPCM)对直流系数(DC)进行编码(5)使用行程长度编码(RLE)对交流系数(AC)进行编码(6)熵编码(entropycoding)2020年5月27日JPEG图像压缩与编码2JPEG算法的主要计算步骤2.1离散余弦变换(DCT)discretecosinetransform的缩写用余弦函数的离散值构成的变换矩阵对信号的一系列样本值进行运算的数学变换可将能量集中到频率较低的系数上将分量图像分成许多个8×8的图块,如图1为某一个8×8图块的离散余弦变换(,)fij(,)FuvDCT图1离散余弦变换在编码器色输入端,8*8的图像数据块,原始图像的采样精度为p位,是无符号整数,输入时把【0,2p】范围的无符号整数变成【-2p-1,2p-1-1】范围的有符号整数,以此作为离散余弦正变换FDCT(forwardDCT)的输入。在解码端经过离散余弦逆变换IDCT(inverseDCT)后,得到一系列的8*8的图像数据块,需要将数值范围从【-2p-1,2p-1-1】变回到【0,2p-1】,来获得重构图像。注:如果FDCT和IDCT变换计算精度足够高,且系数未经过量化,那么原始的64点信号能精确的恢复2020年5月27日JPEG图像压缩与编码2JPEG算法的主要计算步骤77001(21)(21)(,)()()(,)coscos41616ijiujvFuvCuCvfij77001(21)(21)(,)()()(,)coscos41616uviujvFijCuCvfuv二维DCT变换使用下式计算逆变换使用下式计算(),()=1/2CuCv(),()1CuCv当u,v=0;其他其中,JPEG图像压缩与编码2JPEG算法的主要计算步骤二维DCT的计算二维图像块的DCT可以理解为先对图像块的每一行进行一维DCT,然后对经行变换的块的每列再应用一维DCT。当计算精度足够高时,DCT变换不会损失图像质量(,)fij(,)Fuv(,)Giv垂直方向8×1DCT水平方向8×1DCT二维DCT变换方法XXJPEG图像压缩与编码2JPEG算法的主要计算步骤2.2量化对DCT变换后的(频率的)系数进行量化量化目的是降低非“0”系数的幅度以及增加“0”值系数的数目用图3所示的均匀量化器量化量化是造成图像质量下降的最主要原因量化用右式计算(,)ˆ(,)()(,)FuvFuvroundQuvDCT系数输入量化DCT系数输出图3均匀量化器JPEG图像压缩与编码2JPEG算法的主要计算步骤量化步距按照系数所在的位置和每种颜色分量的色调值来确定的因为人眼对亮度信号比对色差信号更敏感,因此使用两种量化表:如表1所示的亮度量化表和表2所示的色差量化表由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小表1和表2中的数值对CCIR601标准电视图像已经是最佳的如果不使用这两种表,也可以用自己的量化表替换它们JPEG图像压缩与编码2JPEG算法的主要计算步骤161110162440516112121419265860551413162440576956141722295187806218223756681091037724355564811041139249647887103121120101729295981121001039917182447999999991821266699999999242656999999999947669999999999999999999999999999999999999999999999999999999999999999999999999999表1.亮度量化步长表表2.色差量化步长表JPEG图像压缩与编码2JPEG算法的主要计算步骤2.3Z字形编排DCT系数的编排如图4所示,第一格为DC系数,其余的都是AC系数DCT系数的序号如图5所示,序号小的位置表示频率较低,把一个88的矩阵变成一个164的矢量DC系数AC系数开始0156141527282471316262942381217253041439111824314044531019233239455254202233384651556021343747505659613536484957586263图4量化DCT系数的编排图5DCT系数序号DC系数(直流分量)--能量一般较大,相邻的8*8块之间的DC系数有强的相关性,JPEG中对其采用差分编码,记录差值DIFF=DCj-DCj-1AC系数(交流分量)--63个交流分量采用Z字形行程编码JPEG图像压缩与编码2JPEG算法的主要计算步骤2.4熵编码用于进一步压缩采用DPCM编码后的DC系数差值和RLE编码后的AC系数。先将8×8图像块的DC系数和63个AC系数用中间符号表示,中间符号由两个符号组成一个符号是表示数据大小的可变长度码,用的代码是霍夫曼码一个符号是直接表达实际幅度的可变长度整数。由于DC系数和AC系数的统计特性不同,因此在熵编码时需要对DC系数和AC系数分别处理2JPEG算法的主要计算步骤1)DC系数1、DIFF=DCj-DCj-1,得到差分的系数值2、生成中间符号(SSSS,DIFF)SSSS为表示差值所需的位数,DIFF为表示起始值所需的位数位数s可以表示的范围【-2s+1,-2s-1】,【2s-1,2s-1】0位和1位单独3、符号编码位数SSSS的霍夫曼编码查表幅度DIFF用补码表示,正数时最高有效位为1,负数时最高有效位为02020年5月27日JPEG图像压缩与编码2)AC系数1、生成中间符号(RRRRSSSS,AC幅度值)RRRR表示0的行程长度,SSSS表示AC值所需的位数RRRRSSSS用R/S表示用4位表示RRRR的最大值为24-1=15,如果出现连续的超过15个0时,用增加扩展符号表示分别有R/S=0/0----EOBR/S=15/0=F/0---ZRL(表示有16个0)2、符号编码R/S的霍夫曼编码查表幅度用补码表示,正数时最高有效位为1,负数时最高有效位为0假设有一个8×8亮度图像块,在它之前的一个8×8图像块计算得到的DC系数值为20,整个编码过程如图5-8所示。说明如下(1)在这个例子中,计算正向离散余弦变换(FDCT)之前对源图像中的每个样本数据减去了128,在逆向离散余弦变换之后对重构图像中的每个样本数据加了128。(2)经过DCT变换和量化之后的系数如图5-8(f)所示(3)经过Z字形排列后的系数为15,0,-2,-1,-1,-1,0,0,-1,0,……,0。(4)DC系数和AC系数的中间符号以及经过编码后的代码如下所示中间符号:(3,-5)(1/2,-2)(0/1,-1)(0/1,-1)(0/1,-1)(2/1,-1)(0/0)编码输出:10001011011010000000001110001010DC系数AC系数开始系数的Z字形编码:15,0,-2,-1,-1,-1,0,0,-1,0…0235.6-1.0-12.1-5.202.1-1.7-2.71.3-22.6-18.5-6.2-3.2-2.9-0.10.4-1.2-10.9-9.3-1.61.50.2-0.9-0.6-0.1-7.1-1.90.21.50.9-0.10.00.3-0.6-0.81.51.6-0.1-0.70.61.31.8-0.2-1.6-0.3-0.81.51.0-1.0-1.3-0.4-0.3-1.5-0.51.71.1-0.8-2.61.6-3.8-1.81.91.2-0.6-0.42400-1000000-24-12000000-14-13000000000000000000000000

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功