还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要随着科学技术的发展图像压缩技术越来越引起人们的__为此从众多的图像压缩编码标准中选取了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了__TLAB进行实验仿真首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了__TLAB及其图像处理工具箱的相关知识,并对基于DCT变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方法详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析最后应用__TLAB进行了实验仿真并分析结果得出结论实验结果表明基于DCT变换的JPEG图像压缩方法简单、方便既能保证有较高的压缩比,又能保证有较好的图像质量,应用__TLAB仿真出来的结果较好的反应了其编码算法原理关键词JPEG图像压缩;DCT;__TLAB;图像处理工具箱AbstractWiththedevelopmentofscien__andtechnologyi__gecompressiontechnologyisincreasinglyacauseforcon__rn.Todothisselectfromthe__nyi__gecompressioncodingstandardDCT-basedJPEGi__gecompressioncodingalgorithmresearchandcomparative____ysisofvarioussoftwarefeaturesselectedexperimentalsimulationof__TLAB.Firstillustratesthene__ssityandfeasibilityofi__gecompressioninmoderncommunicationandknowledgeabout__TLABanditsI__gePro__ssingToolboxandadetailedstudybasedonDCT-JPEGi__gecompressionalgorithmhighlightJPEGcompressioncodingpro__ssanddetailstheencodedDCTquantizationentropycodingandHuff__ncodingmoduleprincipleand__the__ticalderivationandfunctionofeachmodule.Thefinalapplicationof__TLABsimulationexperimentsand____yzetheresultsconcluded.ExperimentalresultsshowthattheDCT-basedJPEGcompressionmethodis______convenientcanguaranteeahighercompressionratiobutalsoensuresthatthereisabetteri__gequalityapplicationof__TLABsimulationresultsbetterreflectitscodingalgorithmprinciple.Keywords:JPEGi__gecompression;theDCT;__TLAB;I__gePro__ssingToolbox目录TOC\o1-3\h\u摘要1Abstract
21.绪论
41.
1.课题背景
41.
1.
1.离散余弦变换
51.
1.
2.预测技术
51.
2.图像压缩技术的发展和现状
61.
2.
1.图像编码技术发展历史
61.
2.
2.图像编码技术的现状
61.
3.__TLAB及其图像处理工具箱
62.图像压缩编码理论算法
82.
1.DCT变换的思想来源
82.
2.基于DCT的JPEG图像压缩编码步骤
92.
2.
1.颜色空间的转换和采样
92.
2.
2.二维离散余弦变换
102.
2.
3.DCT系数的量化
122.
2.
4.量化系数的编排
132.
2.
5.DC系数的编码
142.
2.
6.AC系数的编码
142.
2.
7.组成位数据流
152.
2.
8.DCT变换在图像压缩中的应用
172.
3.JPEG2000压缩算法
182.
3.
1.小波变换
182.
3.
2.量化
182.
3.
3.熵编码
192.
3.
4.位流__
192.
4.JPEG与JPEG2000的区别
193.基于DCT的图像压缩__TLAB仿真实现
213.
1.数字图像文件的读写
213.
2.程序流程图
223.
3.DCT变换的编程实现
233.
4.__TLAB仿真结果
244.个人总结26____27附录
281.绪论
1.
1.课题背景随着信息技术的发展,图像信息被广泛应用于多媒体通信和计算机系统中,但是图像数据的一个显著特点就是信息量大具有庞大的数据量,如果不经过压缩不仅超出了计算机的存储和处理能力而且在现有的通信信道的传输速率下,是无法完成大量多媒体信息实时传输的因此为了更有效的存储、处理和传输这些图像数据必须对其进行压缩因此有必要对图像压缩编码进行研究由于组成图像的各像素之间无论是在水平方向还是在垂直方向上都存在着一定的相关性,因此只要应用某种图像压缩编码方法提取或者减少这种相关性就可以达到压缩数据的目的数字图像的冗余主要表现在以下几种形式空间冗余规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余例如某__的画面中有一个规则物体其表面颜色均匀各部分的亮度、饱和度相近把该__作数字化处理生成位图后很大数量的相邻像素的数据是完全一样或十分接近的完全一样的数据当然可以压缩而十分接近的数据也可以压缩因为恢复后人亦分辨不出它与原图有什么区别这种压缩就是对空间冗余的压缩时间冗余序列图像如电视图像和运动图像和__数据的前后有着很强的相关性经常包含着冗余在播出该序列图像时时间发生了推移但若干幅画面的同一部位没有变化变化的只是其中某些地方这就形成了时间冗余统计冗余空间冗余和时间冗余是把图像__看作概率__时所反应出的统计特性,因此,这两种冗余也被称为统计冗余编码冗余同样长度的编码可以表示不同的信息结构冗余相似的,对称的结构如果都加以记录就出现结构冗余知识冗余由图像的记录方式与人对图像的知识差异而产生的冗余人对许多图像的理解与某些基础知识有很大的相关性许多规律性的结构,人可以由先验知识和背景知识得到而计算机存储图像时还得把一个个像素信息存入,这就形成冗余视觉冗余视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合从而达到以尽可能少的数据流代码来表示尽可能多的数据信息在众多的图像压缩编码标准中,JPEGJointPhotographicExpertsGroup格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像在JPEG图像压缩算法中,一种是以离散余弦变换DCT,DiscreteCosineTransform为基础的有损压缩算法,另一种是以预测技术为基础的无损压缩算法
1.
1.
1.离散余弦变换DCT变换利用傅立叶变换的性质采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余变换编码就是将图像光强矩阵时域__变换到系数空间频域__上进行处理的方法在空间上具有强相关的__,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的图像经DCT变换以后,DCT系数之间的相关性就会变小而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换最后将操作完成后所有的块拼接起来构成一幅单一的图像对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响因此,利用DCT进行图像压缩确实可以节约大量的存储空间在实验中,先将输入的原始lena图像分为8*8块,然后再对每个块进行二维DCT变换__TLAB图像处理上具箱中提供的二维DCT变换及DCT反变换函数如下dct2实现图像的二维离散余弦变换其语法格式为1B=dct2A返回图像A的二维离散余弦变换值,其大小与A相同且各元素为离散余弦变换的系数B(K1,k22B=dct2A,in,n或B=dct2A[m,n]如果m和n比图像A大,在对图像进行二维离散余弦变换之前,先将图像A补零至m*n如果m和n比图像A小则进行变换之前,将图像A剪切idct2可以实现图像的二维离散余弦反变换,其语法格式为B=idct2A;B=idct2A,m,n或B=idct2A,[m,n]
1.
1.
2.预测技术它是利用空间中相邻数据的相关性利用过去和现在出现过的点的数据情况来预测未来点的数据通常用的方法是差分脉冲编码调制DPCM和自适应差分脉冲编码调制ADPCM
1.
2.图像压缩技术的发展和现状
1.
2.
1.图像编码技术发展历史1948年提出电视__数字化后,图像压缩编码的研究工作就宣告开始了在这项技术发展的早期,限于客观条件,仅对帧内预测法和亚取样内查复原法进行研究,对视觉特性也做了一些极为有限但可贵的研究工作1966年J.B.ONeal对比分析了DPCM和PCM并提出了用于电视的实验数据1969年进行了线性预测编码的实际实验1969年__首届图像编码会议70年代开始进行了帧间预测编码的研究80年代开始对运动估值和模型编码进行研究进入90年代,ITU-T和ISO制定了一系列图像编码国际建议,如H.
261、JPEG、MPEG-
1、H.
262、H.
263、MPEG-4等变换编码是1968年H.C.Andrews等人提出的,采用的是二维离散傅立叶变换,此后相继出现用其他变换方法的变换编码,其中包括二维离散余弦变换
1.
2.
2.图像编码技术的现状经过几十年的发展,图像编码技术业已成熟,一些国际建议的制定极大地推动了图像编码技术的实现和产业化,从而推动图像编码技术以更快的速度发展,目前的研究方向有两个1更好地实现现有的图像编码国际建议研制出集成度更高、性能更好的图像编码专用芯片,使编码系统成本更低、可靠性更高解决好现有的图像编码系统__中的技术问题例如提高图像质量、提高抗码能力等2对图像编码理论和其他图像编码方法的研究目前已经提出和正在进行研究的图像编码方法有多分辨率编码、基于表面描述的编码、模型编码、利用人工神经网络的编码、利用分形几何的编码、利用数学形态学的编码等等
1.
3.__TLAB及其图像处理工具箱如果应用高级语言如Basic,C,Fortran编写仿真程序来实现这一基于DCT的图像压缩编码算法比较麻烦,而且仿真效果也不是十分理想本文主要应用__TLAB发布的图像处理工具箱中的相关函数和命令来实基于DCT的图像压缩编码理论算法的仿真__TLAB语言是由美国__thWorks公司推出的计算机软件,经过多年的逐步发展与不断完善,现已成为国际公认的最优秀的科学计算与数学应用软件之一,它集数值分析、矩阵运算、__处理和图形显示于一体,构成了一个方便的、界面友好的用户环境,而且还具有可扩展性特征__TLAB中的数字图像是以矩阵形式表示的,矩阵运算的语法对__TLAB中的数字图像同样适用,这意味着__TLAB强大的矩阵运算能力对用于图像处理非常有利图像处理工具箱I__gePro__ssingToolbox提供了一套全方位的参照标准算法和图形工具,用于进行图像处理、分析、可视化和算法__可进行图像压缩、空间转换、图像增强、特征检测、降噪、图像分割和图像配准等功能工具箱中大部分函数均以开放式__TLAB语言编写,这意味着可以检查算法、修改源代码和创建自定义函数本文利用__TLAB图像处理工具箱对基于DCT的JPEG图像压缩编码理论算法进行仿真,实验证明该软件功能强大,语言简洁易学,工具箱具有丰富的技术支持并集成了该领域专家的智慧,应用简单而效果良好
2.图像压缩编码理论算法
2.
1.DCT变换的思想来源__的变换分析方法中,通常是通过一组适当的基函数对__进行分解,得到__在变换域的表示方法,利用__在变换域中某些特征趋于集中的特点来提取其特征从而进行分析自18___傅立叶Fourier发表“热传导解析理论”以来,傅立叶变换一直是__处理领域中应用最广泛、效果最好的一种分析手段但傅立叶变换只是一种纯频域的分析方法,它在频域的定位性是完全准确的即频域分辨率最高,而在时域无任何定位性或分辩能力,也即傅立叶变换所反映的是整个__全部时间下的整体频域特征,而不能提供任何局部时间段上的频率信息事实上,在我们生活中的常见__通常都具有非平稳的性质,即其频域性质都是随时间而变化的对这一类__用傅立叶变换进行分析,虽然可以知道__所包含有哪些频率信息,但不能知道这些频率信息具体出现在哪个时间段上,因此不能提供关于__完整的信息可见,傅立叶变换不适用于提取局部时间段或瞬间的频域特征信息为了研究__在局部时间范围的频域特征,1946年Gabor提出了著名的Gabor变换其基本思想是,取时间函数作为窗口函数,用与待分析函数相乘,然后再进行傅立叶变换在Gabor变换的基础上,为了适应不同问题的需要,进一步发展了多种形式的窗口函数,如矩形窗、汉宁窗、哈明窗等,这一类加窗的傅立叶变换统称为短时傅立叶变换STFTSTFT从本质上讲,是用窗函数截取原始__的一个待分析段进行傅立叶变换,因而可以描述__在某一局部时间段上的频率信息目前,STFT在许多领域获得了广泛的应用,但由于STFT的定义决定了其窗函数的大小和形状均与时间和频率无关,一旦选定窗口就保持固定不变,不利于分析时变__实际上一般的高频__持续时间较短,而低频__持续时间较长,因此我们期望对于高频__采用小时间窗,对于低频__采用大时间窗进行分析在进行__分析时,这种变时间窗的要求同STFT的固定时窗窗不随频率而变化的特性是相矛盾的离散余弦变换DCT从本质上是一种变换分析方法,要在变换时最大的去除分析__的相关性提取其特征,就必须适当的构造一组基函数,这组基函数以某种形式类似于我们所要表示的数据,甚至具有与数据相同的相关结构在我们日常生活中常遇到的__在空间域和频域都具有相关性在空间上相隔较近的样值间的相关性比相隔较远的大的多,而在频域上通常呈带状为了分析和表示这样的__,我们需要基函数在空间域和频域是局域性的由于离散余弦函数的频域分辨率与时域分辨率成反比,刚好与实际__长时低频、短时高频的特性相吻合,既能精确定位__的突发跳变,又能把握__的整体变化率由此可见,离散余弦变换是一种比较理想的进行__处理的数学工具图像压缩编码的理论算法1基于DCT的JPEG图像压缩编码理论算法基于DCT编码的JPEG编码压缩过程框图,如图2-1所示图2-1基于DCT的JPEG图像压缩编码过程简化图上图是基于DCT变换的图像压缩编码的压缩过程,解压缩与上图的过程相反在编码过程中,首先将输入图像颜色空间转换后分解为8×8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流DC系数,即8×8空域图像子块的平均值,其余的63个是交流AC系数,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程在解码过程中,形成压缩后的图像格式,先对已编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8×8样本像块使用二维DCT反变换,最后将操作完成后的块组合成一个单一的图像这样就完成了图像的解压过程
2.
2.基于DCT的JPEG图像压缩编码步骤
2.
2.
1.颜色空间的转换和采样JPEG文件使用的颜色空间为1982年推荐的电视图像数字化标准CCIR601现为ITU-RBT.601在这个色彩空间中,每个分量、每个像素的电平规定为255级,用8位代码表示JPEG只支持YCbCr颜色模式其中Y代表亮度,CbCr代表色度全彩色图像RGB模式转换到YCbCr模式,用下组公式2-1其逆变换为2-2JPEG是以8×8的块为单位来进行处理的,由于人眼对亮度Y的敏感度比色度CbCr的敏感度大的多,所以采用缩减取样的方式,通常采用YUV422取样,图2-2所示图2-2YUV422取样示意图即对于16×16的块,Y取4个8×8的块,CbCr各取2个8×8的块也有YUV411方式,Y取4个8×8的块,CbCr各取1个8×8的块YUV422取样方式,数据减少1/3YUV411取样方式,数据减少1/2缩减取样一般采用图2-3所示方法图2-3压缩取样示意图
2.
2.
2.二维离散余弦变换在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶技术中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换DCT,DiscreteCosineTransform二维离散余弦正变换公式为2-3式中,二维离散余弦逆变换公式为2-4式中,JPEG采用的是8×8大小的子块的二维离散余弦变换在编码器的输入端,把原始图像顺序地分割成一系列8×8的子块,子块的数值在-128到127之间采用余弦变换获得64个变换系数变换公式,如式2-5所示2-5式中,在__TLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散余弦变换及其反变换1dct2dct2函数实现图像的二维离散余弦变换,其语法为F=dct2f由运行结果可知,DCT变换具有能量集中的性质,数据集中在左上角因此进行图像压缩时离散余弦变换矩阵可以舍弃右下角的高频数据2idct2idct2函数实现图像的二维离散余弦逆变换,其语法为F=idct2f在__TLAB图像处理工具箱中,有一个对图像进行块操作的函数blkproc,利用这个函数,可以直接实现图像一系列8×8子块的DCT变换其语法格式为B=blkprocA,[mn],fun,parameter1,parameter2,...B=blkprocA,[mn],[mbordernborder]fun...B=blkprocA,indexed,...[mn]是指图像以m*n为分块单位,对图像进行处理如8像素*8像素Fun应用此函数对分别对每个m*n分块的像素进行处理parameter1,parameter2要传给fun函数的参数mbordernborder对每个m*n块上下进行mborder个单位的扩充,左右进行nborder个单位的扩充,扩充的像素值为0,fun函数对整个扩充后的分块进行处理8×8的图像经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角DCT变换实际上是空间域的低通滤波器由于该低频分量包含了图像的主要信息如亮度,而高频与之相比,就不那么重要了,所以我们可以忽略高频分量,从而达到压缩的目的将高频分量去掉,这就要用到量化,它是产生信息损失的根源这里的量化操作,就是将某一个值除以量化表中对应的值由于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高频分量的目的JPEG使用的颜色是YUV格式我们提到过,Y分量代表了亮度信息,UV分量代表了色差信息相比而言,Y分量更重要一些我们可以对Y采用细量化,对UV采用粗量化,可进一步提高压缩比所以上面所说的量化表通常有两张,一张是针对Y的,一张是针对UV的
2.
2.
3.DCT系数的量化量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”系数的幅度以及增加“0”值系数的数目,它是图像质量下降的最主要原因对于基于DCT的JPEG图像压缩编码算法使用如图2-4所示的均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定因为人眼对亮度__比对色差__更敏感,因此使用了表2-1所示的种量化表此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右下角的量化步距小图2-4均匀量化器亮度和色度因为代表的图像的信息量不同,亮度代表了图像的低频分量,色度代表了图像的高频分量,要分别对亮度和色度进行量化,所以量化表也是不同的JPEG压缩色度和亮度量化表如表2-1所示表2-1JPEG压缩色度和亮度量化表亮度量化表色度量化表161110162440516117182447999999991212141926586055182126669999999914131624405769562426569999999999141722295187806247669999999999991822375668109103779999999999999999243555648110411392999999999999999949647887103121120101999999999999999979929598112100103999999999999999999量化会产生误差,上图是综合大量的图像测试的实验结果,对于大部分图像都有很好的结果表中可以看出,高频部分对应的量化值大,目的就是将高频部分编程接近于0,以便以后处理JPEG可以在压缩比和图像质量间作取舍方法就是改变量化值如果量化值放大一倍,则有更多的系数量化为0,提高了压缩比
2.
2.
4.量化系数的编排经过DCT变换后,低频分量集中在左上角,其中F0,0即第一行第一列元素代表了直流DC系数,即8×8子块的平均值,要对它单独编码由于两个相邻的8×8子块的DC系数相差很小,所以对它们采用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码8×8的其它63个元素是交流AC系数,采用行程编码
[10]所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排DCT变换后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减因此,量化系数按Z字形扫描读数,这样就把一个8×8的矩阵变成一个1×64的矢量,频率较低的系数放在矢量的顶部量化后的DCT系数的编排如图2-5所示图2-5量化DCT系数的编排量化后的DCT系数的序号如表2-2所示表2-2量化DCT系数的序号
01561415272824713162629423812172530414391118243140445310192332394552542022333846515560213437475056596135364849575862632.
2.
5.DC系数的编码8×8子块的64个变换系数经量化后,按直流系数DC和交流系数AC分成两类处理坐标u=v=0的直流系数DC实质上就是空域图像中64个像素的平均值图像块经过DCT变换之后得到的DC直流系数有两个特点,一是系数的数值比较大,二是相邻8×8图像块的DC系数值变化不大根据这个特点,JPEG算法使用了差分脉冲调制编码技术差分脉冲编码调制DPCM,DifferentialPulseCodeModulation,是一种对模拟__的编码模式,先根据前一个抽样值计算出一个预测值,再取当前抽样值和预测值之差作为编码用此差值称为预测误差抽样值和预测值非常接近因为相关性强,预测误差的可能取值范围比抽样值变化范围小所以可用少几位编码比特来对预测误差编码,从而降低其比特率这是利用减小冗余度的办法,降低了编码比特率因此对DC系数编码进行差分脉冲编码就是对相邻图像块之间量化DC系数的差值Delta进行编码,即对相邻块之间的DC系数的差值DIFF=DC-DC编码DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0差值5应保留的位数为3,列出差值所应保留的Bit数与差值内容的对照在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5101的位数为3,则霍夫曼码值应该是100,两者连接在一起即为_____
12.
2.
6.AC系数的编码DCT变换所得系数除直流系数之外的其余63个系数称为交流系数AC系数量化AC系数的特点是1×64矢量中包含有许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码RLE对它们进行编码所谓行程编码Run-LengthEncoding就是指仅存储一个像素值以及具有相同颜色的像素数目的图像数据编码方式,或称游程编码http://baike.baidu.com/view/
721796.htm\t_blank,常用RLERun-LengthEncoding表示该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果
[11]63个AC系数采用行程编码的方式进行编码的格式如图2-6所示也即在AC01到AC63中,找出每一个非零的AC值,将其表示成NN/SSVV的形式,其中NN表示该AC值前的0的个数而SS、VV与DC的定义一样如果连续的非0超过15个时,增加一个扩展字节15/0表示连续16个0另外若有一串0延伸到AC63,一律用0/0表示结束图2-6AC编码格式对于AC系数,有两个符号符号1为行程和尺寸,即上面的RunLength,Size0,0和15,0是两个比较特殊的情况0,0表示块结束标志EOB,15,0表示ZRL,当行程长度超过15时,用增加ZRL的个数来解决,所以最多有三个ZRL3×16+15=63符号2为幅度值Amplitude对于DC系数,也有两个符号符号1为尺寸Size;符号2为幅度值Amplitude对于AC系数,符号1和符号2分别进行编码零行程长度超过15个时,有一个符号15,0,块结束时只有一个符号0,0对符号1进行Huff__n编码亮度,色差的Huff__n码表不同对符号2进行变长整数VLI编码举例来说Size=6时,Amplitude的范围是-63~-32,以及32~63,对绝对值相同,符号相反的码字之间为反码关系所以AC系数为32的码字为_____0,33的码字为_____1,-32的码字为011111,-33的码字为011110符号2的码字紧接于符号1的码字之后对于DC系数,Y和UV的Huff__n码表也不同
2.
2.
7.组成位数据流JPEG编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,这样做的目的是为了便于传输、存储和译码器进行译码,这样的__的数据通常称为JPEG位数据流JPEGbitstream
[12]举个例子来说明上述过程下面为8×8的亮度Y图像子块经过量化后的系数,如表2-3所示150-100000-2-1000000-1-10000000000000000000000000000000000000000000000可见量化后只有左上角的几个点低频分量不为零,这样采用行程编码就会很有效第一步,熵编码的中间格式表示先看DC系数假设前一个8×8子块DC系数的量化值为12,则本块DC系数与它的差为3,根据下表表2-4DC系数表SizeAmplitude001–112–3-2233–7~-4,4~74–15~-8,8~155–31~-16,16~316–63~-32,32~637–127~-64,64~1278–255~-128,128~2559–511~-256,256~51110–1023~512,512~102311–2047~-1024,1024~2047查表得Size=2,Amplitude=3,所以DC中间格式为23下面对AC系数编码经过Zig-Zag扫描后,遇到的第一个非零系数为-2,其中遇到零的个数为1即RunLength,根据下面这张AC系数表表2-5AC系数表SizeAmplitude1–112–3-2233–7~-4,4~74–15~-8,8~155–31~-16,16~316–63~-32,32~637–127~-64,64~1278–255~-128,128~2559–511~-256,256~51110–1023~512,512~1023查表得Size=2所以RunLength=1,Size=2,Amplitude=3,所以AC中间格式为1,2-2其余的点类似,可以求得这个8×8子块熵编码的中间格式为DC23,1,2-2,0,1-1,0,1-1,0,1-1,2,1-1,EOB0,0第二步,熵编码对于232查DC亮度Huff__n表得到11,3经过VLI编码为011;对于1,2-21,2查AC亮度Huff__n表得到11011,-2是2的反码,为01;对于0,1-10,1查AC亮度Huff__n表得到00,-1是1的反码,为0;.....最后,这一8×8子块亮度信息压缩后的数据流为11011,1101101,000,000,000,111000,1010总共31比特,其压缩比是64×8/31=
16.5,大约每个象素用半个比特以上是图像压缩编码的整个过程从上面的例子可以看出,压缩比和图像质量是呈反比的,以下是压缩效率与图像质量之间的大致关系,可以根据需要,选择合适的压缩比压缩比和图像质量的关系如表2-6所示表2-6压缩比与图像质量的关系压缩效率单位bits/pixel图像质量
0.25~
0.50中~好,可满足某些应用
0.50~
0.75好~很好,满足多数应用
0.75~
1.5极好,满足大多数应用
1.5~
2.0与原始图像几乎一样
2.
2.
8.DCT变换在图像压缩中的应用JPEG格式是目前网络上最流行的图像格式,是可以把文件压缩到最小的格式,在Photoshop软件中以JPEG格式储存时,提供11级压缩级别,以0—10级表示其中0级压缩比最高,图像品质最差即使采用细节几乎无损的10级质量保存时,压缩比也可达51以BMP格式保存时得到4.28MB图像文件,在采用JPG格式保存时,其文件仅为178KB,压缩比达到241经过多次比较,采用第8级压缩为存储空间与图像质量兼得的最佳比例 JPEG格式的应用非常广泛,特别是在网络和光盘读物上,都能找到它的身影目前各类浏览器均支持JPEG这种图像格式,因为JPEG格式的文件尺寸较小,____快
2.
3.JPEG2000压缩算法目前的JPEG静止图像压缩标准,在中高比特率上压缩效果较好,然而在低比特速率的情况下,重构图像存在严重的方块效应,不能很好地适应网络传描图像的需要尽管目前的JPEG标准有44种操作模式,但是其中的大部分模式是针对不同的应用提出的,不具有通用性,这给交换、传输的压缩图像带来很大的麻烦为了弥补目前标准的不足,适应21世纪图像压缩的需要,早在1997年ISO/ITU-T__下的IECJTCl/SC29/WGl小组便开始着手制定新的静止图像压缩标准——JPEG2000与JPEG不同,JPEG2000基于小波变换,采用当前最新的嵌入式编码技术,在获得优于目前JPEG标准压缩效果的同时,生成的码流有较强的功能,可应用于多个领域
2.
3.
1.小波变换不同于传统的DCT变换,小波变换具有对__进行多分辨率分析和反映__局部特征的特点通过对图像片进行离散小波变换,得到小波系数图像,而分解的级数视具体情况而定小波系数图像由几种子带系数图像组成这些子带系数图像描述的是图像片水平和垂直方向的空间频率特性不同子带的小波系数反映图像片不同空间分辨率的特性通过多级小波分解,小波系数既能表示图像片中局部区域的高频信息如图像边缘,也能表示图像片中的低频信息如图像背景这样,即使在低比特律的情况下,我们也能保持较多的图像细节如边缘另外,下一级分解得到的系数所表示图像在水平和垂直方向的分辨率只有上一级小波系数所表示的图像的一半所以,通过对系数图像的不同级数进行解码,就可以得到具有不同空间分辨率或清晰,或模糊的图像小波变换因其具有的这种优点被JPEG2000标准所采用在编码系统中,对每个图像片进行__llat塔式小波分解经过大量的测试,JPEG2000选用两种小波滤波器LeGall5/3滤波器和Daubechies9/7滤波器前者可用于有损或无损图像压缩,后者只能用于有损压缩在JPEG2000标准中,小波滤波器可以有2种实现模式基于卷积的和基于提升机制的而具体实现时,对图像边缘都要进行周期对称延伸,这样可以防止滤波器对图像边缘操作时产生失真另外,为了减小变换时所需空间的开销,标准中还应用了基于行的小波变换技术
2.
3.
2.量化由于人类视觉系统对图像的分辨率要求有一定的局限,通过适当的量化减小变换系数的精度,可在不影响图像主观质量的前提下,达到图像压缩的目的量化的关键是根据变换后图像的特征、重构图像质量要求等因素设计合理的量化步长量化操作是有损的,会产生量化误差不过一种情况除外,那就是量化步长是1,并且小波系数都是整数,利用可恢复整数5/3拍小波滤波器进行小波变换得到的结果就符合这种情况在JPEG2000标准中,对每一个子带可以有不同的量化步长但是在一个子带中只有一个量化步长量化以后,每一个小波系数有2部分来表示符号和幅值对量化后的小波系数进行编码对于无损压缩,量化步长必须是1
2.
3.
3.熵编码图像经过变换、量化后,在一定程度上减少了空域和频域上的冗余度,但是这些数据在统计意义上还存在一定的相关性,为此采用熵编码来消除数据间的统计相关将量化后的子带系数划分成小的矩形单元——码块codeblock
2.
3.
4.位流__为了适合图像交换,更好地应用JPEG2000压缩码流的功能JPEG2000标准规定了存放压缩位流和解码所需参数的格式,把压缩码流以包为单元进行__,形成最终的码流JPEG2000通过采用速率控制方法来计算码流的理想截断点,从而获得给定压缩码率下的最佳重构图像质量速率控制使用了PCRD率失真优化算法率失真优化,即给定整个压缩码流的最大编码速率,找出每个码块压缩位流的适当截断点,在满足的条件下,使重构图像失真最小从而使得嵌入式码块编码具有如下特点生成的压缩位流可根据需要,被截断成不同长度的位流子集;将所有码块的截断位流__起来,可重构出一定质量的图像
2.
4.JPEG与JPEG2000的区别JPEG2000与传统JPEG最大的不同在于它放弃了JPEG所采用的以离散余弦变换DCT为主的区块编码方式,转而采用以小波变换DWT为主的多解析编码方式余弦变换是经典的谱分析工具,它考察的是整个时域过程的频域特征或整个频域过程的时域特征,因此对于平稳过程,它有很好的效果,但对于非平稳过程,它却有诸多不足在JPEG中,离散余弦变换将图像压缩为8×8的小块,然后依次放入文件中,这种算法靠丢弃频率信息实现压缩,因而图像的压缩率越高,频率信息被丢弃的越多在极端情况下,JPEG图像只保留了反映图像外貌的基本信息,精细的图像细节都损失了小波变换是现代谱分析工具,它既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手它能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为它消除了DCT压缩普遍具有的方块效应现在网络上的JPEG图像下载时是按“块”传输的,因此只能逐行显示,而采用JPEG2000格式的图像支持渐进传输JPEG2000中的渐进传输有2种,按照分辨率的渐进传输和按照质量的渐进传输按照质量的渐进传输就是先传输图像轮廓数据,然后再逐步传输细节数据来不断提高图像质量,而按照分辨率的渐进传输则先传输分辨率较低的图像,后一幅图像在前一幅图像的基础上提高其分辨率图像的渐进传输使得用户不需要像以前那样等图像全部下载后才决定是否需要,有助于快速地浏览和选择大量__,从而有效的解决了网络传输的不通顺问题JPEG2000一个极其重要的优点就是ROIRegionofInterest,感兴趣区域用户可以任意指定__上感兴趣的区域,然后在压缩时对这些区域指定压缩质量,或在恢复时指定某些区域的解压缩要求这是因为子波在空间和频率域上具有局域性,要完全恢复图像中的某个局部,并不需要所有编码都被精确保留,只要对应他的一部分编码没有误差就可以了在实际应用中,我们就可以对一幅图像中感兴趣的部分采用低压缩比以获取较好的图像效果,而对其他部分采用高压缩比以节省存储空间这样就能在保证不丢失重要信息的同时又有效地压缩了数据量,实现了真正的交互式压缩在相同的压缩质量参数下JPEG2000的峰值信噪比要优于JPEG;且在低位率时JPEG压缩会出现明显的方块效应,JPEG2000则会出现Gibbs效应,但JPEG2000的保真度要优于JPEGJPEG2000作为JPEG的升级版,其压缩率比JPEG高约30%左右,同时支持有损和无损压缩JPEG2000格式有一个极其重要的特征在于它能实现渐进传输,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示JPEG2000旨在创建一个新的图像编码系统,该压缩编码系统的率失真和主观图像质量优于现有的JPEG标准,能够提供对图像的低码率的压缩,并且对压缩码流可进行灵活的处理,如随机获取部分压缩码流、图像的渐进传输、感兴趣区域的实现以及压缩码流较强的容错性能等该标准将与现行JPEG标准兼容JPEG2000和JPEG相比优势明显,且向下兼容,因此可取代传统的JPEG格式JPEG2000即可应用于传统的JPEG市场,如扫描仪、数码相机等,又可应用于新兴领域,如网路传输、无线通讯等等JPEG不能在单__流中提供有损和无损压缩,并且不能支持大于64×64K的图像压缩同时,尽管当前的JPEG标准具有重新启动间隔的规定,但当碰到比特差错时图像质量将受到严重的损坏虽然JPEG2000比JPEG有很多有点,但是由于它的技术还不成熟,还存在稳定性、复杂性和准备不充分等问题,所以目前基于DCT的JPEG图像压缩编码仍然是世界上图像压缩技术标准应用最广泛的标准
3.基于DCT的图像压缩__TLAB仿真实现__TLAB图像处理工具箱支持四种图像类型,分别为RGB图像真彩色图像、索引图像、灰度图像、二值图像,由于有的函数对图像类型有限制,这四种类型可以用工具箱的类型转换函数相互转换__TLAB可操作的图像文件包括BMP、HDF、JPEG、PCX、TIFF、XWD等格式下面就图像处理的基本过程讨论工具箱所实现的常用功能__TLAB为用户提供了专门的函数来从图像格式的文件中读写图像数据这种方法不像其他编程语言,需要编写复杂的代码,只需要简单地调用__TLAB提供的函数即可
3.
1.数字图像文件的读写数字图像文件的读写步骤1图像文件的读取__TLAB中利用函数imread来实现图像文件的读取操作其语法格式为A=imreadfilename,fmt[X__p]=imreadfilename,fmt[…]=imreadfilenameFilename图像文件名;fmt图像文件格式A=imreadfilename,fmt读取图像到A,如果文件是包含灰度图像,A是二维矩阵,如果文件是包含真彩色图像RGB,A是三维矩阵M-by-N-by-3文件必须在当前目录下,或在__tlab的路径上如果imread不能够找到名称为filename的文件那么它将找一名为filename.fmt的文件[X,__p]=imreadfilename,fmt把图像filename读入与它相关的图像色彩信息写入__p,图像色彩信息值在范围
[01]中自动地重新调整[…]=imreadfilename这种方式是试图得到文件的格式从文件所包含的信息2图像文件的输出__TLAB中利用函数imwrite来实现图像文件的输出和保存操作其语法格式为ImwriteA,filename,fmtImwriteX,__p,filename,fmtImwrite…,filenameImwriteA,filename,fmt把图像A写入图像文件filenameImwriteX,__p,filename,fmt把X和它的相关色彩信息__p写入filenameImwrite…,filename把图像写入图像文件filename并推测可能的格式用来做filename的扩展名,扩展名必须是fmt中一合法名3图像文件的显示在__TLAB中,可以调用i__ge函数来显示图像,其语法格式为I__geCI__geC把矩阵C转成一图像C可以是一M×N或M×N×3维的矩阵,且可以是包含doubleuint8或uint16数据i__ge是用来显示附标图像,即显示的图像上有x、y坐标轴的显示,可以看到图像的像素大小但可以加上axisoff命令即可把坐标去掉在__TLAB的图像处理工具箱中,还提供了一个应用很广泛的图像显示函数,即imshow函数,其调用格式为ImshowI,nImshowI,[lowhigh]ImshowBWImshowX,__pimshowRGBimshowfilenameImshowI,n显示一幅n个灰度级的图像IImshowI,[lowhigh]一定灰度范围内显示灰度图像,low和high参数分别为数据数组的最小值和最大值ImshowBW显示二进制图像ImshowX,__p显示索引图像,其中X代表索引图像的数据矩阵,__p为颜色映射表imshowfilename显示一幅在当前目录下的合法文件imshowRGB显示RGB图像RGB是一个m×n×3的数组对于RGB中的每个像素r,c,imshow显示数值r,c,1:3所描述的颜色例如下面的程序imread‘zyj.bmp’;imshowI,title‘图像读出’
3.
2.程序流程图基于DCT的图像压缩编码的__TLAB实现的流程图如图3-1所示图3-1程序流程图
3.
3.DCT变换的编程实现DCT变换是数字图像处理中重要的变换,很多重要的图像算法、图像应用都是基于DCT变换的,如JPEG图像编码方式对于大尺寸的二维数值矩阵,倘若采用普通的DCT变换来进行,其所花费的时间将是让人难以忍受甚至无法达到实用而要克服这一难点,DCT变换的快速算法是比较好的选择就目前而言,DCT变换的快速算法无非有以下两种方式1由于FFT算法的普便采用,直接利用FFT来实现DCT变换的快速算法相比来说就相对容易但是此种方法也有不足计算过程会涉及到复数的运算由于DCT变换前后的数据都是实数,计算过程中引入复数,而一对复数的加法相当于两对实数的加法,一对复数的乘法相当于四对实数的乘法和两对实数的加法,显然是增加了运算量,也给硬件存储提出了更高的要求2直接在实数域进行DCT快速变换显然,这种方法相比于前一种而言,计算量和硬件要求都要优于前者鉴于此,本文采用第二种方法来实现DCT变换的快速算法
3.
4.__TLAB仿真结果__tlab程序见附录一图3-1为原始图像;图3-2为RGB转换为YUV后的图像;图3-3为解压后的图像图3-1原始图像图3-2RGB转换为YUV后的图像图3-3解压后的图像
4.个人总结相关技术日新月异的进步,使得数字图像相关技术的应用越来越广泛数字图像以其较之于传统文字信息大得多的信息量,更加符合人们接受信息的习惯的特点,已经渗透到社会生活的各个方面数字图像的固有缺陷是其特别巨大的数据量,与传输网络有限的传输能力形成了一对矛盾,成为制约数字图像应用的瓶颈因此数字图像的压缩编码与传输是非常有实际使用价值的热点研究问题本文通过研究设计一个基于DCT变换的图像压缩编码的__tlab实现,得到了下面的结论论文叙述的图像压缩编码算法,采用了JPEG的核心离散余弦变换算法DCT是正交变换,它可以将8*8图像的空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,因此它在软件中容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像仿真结果说明了压缩比增大时,图像的质量会降低,并且图像的信噪比会变小利用__TLAB仿真软件来实现离散余弦变换的图像压缩,具有方法简单、速度快、误差小的优点,免去了大量矩阵计算,大大提高了图像压缩的效率和精度由于本人能力、时间有限,所以本文的内容还存在不足之处,还请老师谅解____
[1]贺兴华.__TLAB
7.X图像处理.北京人民邮电出版社,
2006.
[2]EdwardW.Kamen.应用Web和__TLAB的__与系统基础.北京电子工业出版社,
2002.
[3]王洪元.__TLAB语言以及在电子信息工程中的应用.北京清华大学出版社,
2004.
[4]张汗灵.__TLAB在图像处理中的应用.北京清华大学出版社,
2008.
[5]冈萨里斯.数字图像处理.北京电子工业出版社,
2009.附录%__in.m%%初始化clear;clc;closeall;%%RGB转换为YUVI=imreadLena.jpg;figure1;imshowI;title原始图像;i__ge=rgb2yuvI;J=i__ge;figure2;imshowJ[];titleRGB转化为YUV的图像;%%J=im2uint8J;J=doubleJ;J_temp=J-128;m=sizeJ_temp1;n=sizeJ_temp2;%%离散余弦变换DCTb_DCT=zerosmn;%初始化DCT矩阵便于计算N=8;DCT___trix=zerosNN;fork=1:Nforl=1:NDCT___trixkl=cos2*k-1+1*l-1*pi/2*N;endend%将原始图像分块NXN并进行DCT变换fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;b_DCTx1:x2y1:y2=my_dct2J_tempx1:x2y1:y2DCT___trixN;endend%%量化b_Q=zerosmn;%初始化量化矩阵低频部分量化系数小高频部分量化系数大滤去更多高频信息Q___trix=zerosNN;Q11=4;step=3;fork=1:Nforl=1:NQ___trixkl=Q11+step*k-1+step*l-1;endend%将DCT后的矩阵进行量化并去整fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;b_Qx1:x2y1:y2=roundb_DCTx1:x2y1:y
2./Q___trix;%点除endend%%编码%%构建zigzag(Z行扫描)变换表可以快速实现变换注意仅适用于8X8矩阵%zigzag=[
0181692310...%
17243225181145...%
1219263340484134...%
27201367142128...%
3542495657504336...%
2922152330374451...%
5859524538313946...%5360615447556263];%zigzag=zigzag+1;b_encode=zerosmn;number=0;j=0;fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;%将8X8矩阵zig-zag变换生成1X64数组使连续的零个数最多B_encode=toZigzagb_Qx1:x2y1:y2;%游程编码fori=1:N*NifB_encodei~=0%第一个字节存储下一个非零值与上一个非零值之间0的个数byte1=uint8j;%使用无符号8位整型%第二个字节存储下一个非零值byte2=int8B_encodei;%使用有符号8位整型b_encodenumber+1=byte1;b_encodenumber+2=byte2;j=0;number=number+2;elsej=j+1;endendendendb_encode=b_encode1:number;%压缩后的数据%%计算压缩比code_bits1=number*8;%压缩数据大小比特origin_bits=m*n*8;%源数据大小比特compression_ratio=origin_bits/code_bits1;%压缩比disp压缩比:;dispcompression_ratio;%%反游程编码b_decode=zeros1m*n;number=0;fori=1:2:sizeb_encode2b_decodenumber+1:number+b_encodei=0;%zeros1b_encodei;b_decodenumber+1+b_encodei=b_encodei+1;number=number+b_encodei+1;end%%计算比特数code_bits2=number*8;disp比特数:;dispcode_bits2;%%反zig-zag变换b_decode2=zerosmn;fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;start=N*N*k-1*n/N+l-1+1;b_decode2x1:x2y1:y2=invZigzagb_decodestart:start+N*N-1;endend%%量化逆b_deQ=zerosmn;fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;b_deQx1:x2y1:y2=b_decode2x1:x2y1:y
2.*Q___trix;endend%%逆DCTb_IDCT=zerosmn;fork=1:m/Nforl=1:n/Nx1=1+N*k-1;x2=N*k;y1=1+N*l-1;y2=N*l;b_IDCTx1:x2y1:y2=my_idct2b_deQx1:x2y1:y2DCT___trixN;endend%%显示解压结果b_show=uint8b_IDCT+128;figure3;imshowb_show;title解压图像;%rgb2yuv.mfunction[yuv]=rgb2yuvimI=doubleim;R=im::1;G=im::2;B=im::3;Y=
0.299*R+
0.587*G+
0.___*B;U=-
0.147*R-
0.2__*G+
0.436*B;V=
0.615*R-
0.515*G-
0.100*B;yuv=cat3YUV;%my_dct
2.mfunction[B]=my_dct2ADCT___trixN%dct2主函数使用于NXN矩阵ifsizeA1~=N||sizeA2~=Nerror矩阵A阶数错误;endB=zerosNN;fork=1:Nforl=1:Nb_temp=0;form=1:Nforn=1:Nb_temp=b_temp+Amn*DCT___trixmk*DCT___trixnl;endendifk~=1c_u=1;elsec_u=1/sqrt2;endifl~=1;c_v=1;elsec_v=1/sqrt2;endBkl=1/4*c_u*c_v*b_temp;endend%toZigzag.mfunction[y]=toZigzagx%transforma__trixtothezigzagfor__t[rowcol]=sizex;ifrow~=coldisptoZigzagfails!!Mustbeasquare__trix!!;returnendy=zerosrow*col1;count=1;fors=1:rowifmods2==0form=s:-1:1ycount=xms+1-m;count=count+1;end;elseform=1:sycount=xms+1-m;count=count+1;endendendifmodrow2==0flip=1;elseflip=0;endfors=row+1:2*row-1ifmodflip2==0form=row:-1:s+1-rowycount=xms+1-m;count=count+1;endelseform=row:-1:s+1-rowycount=xs+1-mm;count=count+1;end;end;flip=flip+1;end%inZigzag.mfunction[y]=invZigzagx%inversetransformfromthezigzagfor__ttothe__trixformrow=roundsqrtlengthx;ifrow*row~=lengthxdispinvZigzagfails!!Mustbeasquare__trix!!;return;end;y=zerosrowrow;count=1;fors=1:rowifmods2==0form=s:-1:1yms+1-m=xcount;count=count+1;end;elseform=1:syms+1-m=xcount;count=count+1;end;end;end;ifmodrow2==0flip=1;elseflip=0;end;fors=row+1:2*row-1ifmodflip2==0form=row:-1:s+1-rowyms+1-m=xcount;count=count+1;end;elseform=row:-1:s+1-rowys+1-mm=xcount;count=count+1;end;end;flip=flip+1;end;%my_idct
2.mfunction[B]=my_idct2ADCT___trixN%idct2主函数使用于NXN矩阵ifsizeA1~=N||sizeA2~=Nerror矩阵A阶数错误;endB=zerosNN;fork=1:Nforl=1:Nb_temp=0;form=1:Nforn=1:Nifm~=1c_u=1;elsec_u=1/sqrt2;endifn~=1;c_v=1;elsec_v=1/sqrt2;endb_temp=b_temp+c_u*c_v*Amn*DCT___trixkm*DCT___trixln;endendBkl=1/4*b_temp;endend附件本科生课程设计成绩评定表姓名性别专业、班级课程设计题目课程设计答辩或质疑记录成绩评定依据最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字年月日abcde……bdDCT系数输入量化系数输出7654321076543210第一字节第二字节两个非零值之间的连续零的个数下一个非零值所占的比特数下一个非零系数的实际值。