欢迎来到天天文库
浏览记录
ID:38266356
大小:137.00 KB
页数:10页
时间:2019-06-07
《JPEG图像压缩实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、通信技术综合实验指导书JPEG静态图像压缩实验指导书一、实验目的1.了解多媒体通信中图像压缩技术2.熟悉JPEG图像压缩编码过程3.掌握二维DCT变换算法二、实验原理JPEG(JointPhotographicExpertsGroup)是一个由ISO和ITU-T两个组织机构联合组成的一个图像专家小组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。JPEG不仅适于静止图像的压缩,电视图像的帧内图像的压缩编码,也常采用此
2、算法。JPEG标准定义了多种工作模式,其中最基本的是基于8×8块的DCT顺序编码,将一帧图像分为8×8的块,然后按照从左至右、自上而下的顺序,对块进行DCT、量化和熵编码。其编、解码框图如下:FDCT熵编码器量化表熵编码表压缩图像数据源图像数据基于DCT的编码器图像子块量化器图1基于DCT的顺序编码框图DCT解码器IDCT逆量化器熵解码器量化表熵编码表压缩图像数据重构图像数据图2基于DCT的顺序解压缩框图10西南科技大学信息工程学院通信技术综合实验指导书JPEG压缩编码算法的主要计算步骤:1)正向离散余弦变换(FDCT)。2)量化(quantization
3、)。3)Z字形编码(zigzagscan)。4)使用差分脉冲编码调制(differentialpulsecodemodulation,DPCM)对直流系数(DC)进行编码。5)使用行程长度编码(run-lengthencoding,RLE)对交流系数(AC)进行编码。6)熵编码(entropycoding)。一、实验内容按照上述压缩过程实现一幅图像的压缩,生成符合JPEG标准的图像文件JPEG图像编码流程如下:输入原图像8×8二维FDCT变换量化DC系数差分编码AC系数游程编码熵编码生成JPEG压缩文件文件保存输入原图像8×8二维IDCT变换逆量化DC系数
4、解码AC系数解码码熵解码读取JEPG文件JIEPEIGJPEGWENJIAN表说明量化表图3JPEG图像编码流程1.DCT变换对8×8的图像数据块进行二维DCT10西南科技大学信息工程学院通信技术综合实验指导书的变换,把能量集中在少数几个系数上,从而达到数据压缩的目的。:DCT变换公式:DCT反变换公式:其中:二维DCT变换可以分解为行和列的一维DCT变换的组合运算,也可将8×8的块分为更小的子块,直接对二维数据进行2维快速余弦变换。1.量化量化表达式为:其中T(u,v)是推荐的量化矩阵,详见附录1量化矩阵表2.熵编码JPEG标准中熵编码对直流DC系数和交
5、流AC系数分别采用不同的压缩编码算法1)DC系数编码:JEPG把所有子块的DC系数集合在一起,采用差分编码的方法表示。编码步骤为:a)将初始值设为128,对相邻块的DC系数F(0,0)进行差分运算b)将差分值改写为[size,value](尺寸,幅值)的符号对。尺寸取2的对数加1c)按照表2、3对该符号对进行编码2)AC系数编码AC系数编码步骤为:a)以块为单位,从AC01开始对块内的量化数据进行Z形行程扫描,记录两个非零值的大小和其间连续零的个数b)将扫描结果改写为[RunLength,level](行程、幅度)的符号对,10西南科技大学信息工程学院通信
6、技术综合实验指导书其中RunLength代表该非零值和它前一个值之间0的个数,以(EOB)表示块结束。a)按照表3对上述的符号对进行编码。若符号在表中查不到对应码字,用ESC码表示,然后按表4,5对RunLength和level进行编码。2.对编码后的图像数据进行解码,与原始图像数据进行比较。二、实验要求1.根据实验内容要求编写编解码程序,所用编程语言自选。可以参考实验室提供的范例程序,并充分发挥你的创造性,写出有自己特色的程序。2.生成JPEG格式的压缩文件,可用第三方软件打开,由指导教师验证通过3.实验完成后提交完整源程序,并在关键处加上详细批注。4.
7、撰写实验报告,实验报告要求详细介绍你实现的功能,设计思想,并根据思考题进行分析。三、样本程序说明实验室提供一个BC编写的样本程序,供大家参考。见“JPEG实验”文件夹,各文件功能说明如下:1)JPEG压缩程序:gendat.exe2)为压缩后的数据加上JPEG文件头的程序genjpg.exe3)解JEPG压缩程序extrdat.exe其中:(1)的输入参量是需要生成的压缩文件的名字。主程序流程为:a)程序初始化,读取文件名称、原始图像数据等基本数据;b)从AC.TAB和DC.TAB两个文件生成AC表和DC表,存入数组c)以8×8为样本单位进行DCT变换d)
8、以8×8为样本单位进行量化e)以8×8为样本单位进行Z形扫描f)以
此文档下载收益归作者所有