线性分组码编译码.docx

上传人:lao****ou 文档编号:247284 上传时间:2023-06-21 格式:DOCX 页数:27 大小:417.31KB
下载 相关 举报
线性分组码编译码.docx_第1页
第1页 / 共27页
线性分组码编译码.docx_第2页
第2页 / 共27页
线性分组码编译码.docx_第3页
第3页 / 共27页
线性分组码编译码.docx_第4页
第4页 / 共27页
线性分组码编译码.docx_第5页
第5页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《线性分组码编译码.docx》由会员分享,可在线阅读,更多相关《线性分组码编译码.docx(27页珍藏版)》请在第一文库网上搜索。

1、线性分组码编译码通信工程班电视广播原理课程设计报告设计题目:姓名:学号:班级:指导教师:目录摘要3一、基本原理4二、设计过程72.2 框架设计82.3 程序模块框图92.3.1DCT变换92.3.2量化X12.3.3“Z”字扫描122.3.4huffman编码132.3.5图示16三、总结17四、附件18摘要本文主要介绍了JPEG的编码和解码过程。该程序的编码部分能把一张BMP格式的图象进行JEPG编码,压缩成以二进制形式保存的文件;通过相应的解码程序又可以把图象解压缩出来。在图象传送过程中,我们经常采用JPEG格式对静态图象进行编码。JPEG基本系统是一种有损编码,无法完全恢复出原图象,信息

2、有一定的丢失,称为有损压缩。尽管我们希望能够无损压缩,但是通常有损压缩的压缩比(即原图象占的字节数与压缩后图象占的字节数之比,压缩比越大,说明压缩效率越高)比无损压缩的高。JPEG编码先把图象色彩RBG变成亮度Y和色度Cr、Cb,它利用人的视觉对色度不敏感的特点,减少一部分色度数据,以达到压缩。JPEG采取多种编码方式,包含有行程编码(RUn1engthCOding)和哈夫曼(HUff1nan)编码,有很高的压缩比。在编码前,先对数据进行分块,离散余弦变换(DCT)及量化,保留能量大的低频信号,丢弃高频信号以达到压缩。解码时,进行端解码,反量化,反离散余弦变换(IDCT)。关键字:JPEG;有

3、损压缩;行程编码;哈夫曼编码一、基本原理JPEG是JOintPhotographicExpertsGroUP(联合图像专家组)的缩写,文件后辍名为jpg或.jpeg”,是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较

4、好的图像品质。而且JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;相反地,压缩比越小,品质就越好。比如可以把137Mb的BMP位图文件压缩至20.3KBo当然也可以在图像质量和文件尺寸之间找到平衡点。JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像。JPEG压缩分四个步骤:1、颜色模式转换及采样2、DCT变换3、量化4、编码。颜色模式转换及采样。RGB色彩系统是我们最常用的

5、表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YebCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。Y=0.2990R+0.5870G+0.1140BCb=-O.1687R-0.3313G+0.5000B128Cr=O.5000R-0.4187G-0.0813B+128人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部

6、分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的数据取样比例。DCT变换。DCT变换的全称是离散余弦变换(DiSCreteCosineTransform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。压缩时,将原始图像数据分成8*8数据单元矩阵。JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4

7、:2:2,则每个MeU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。当图像数据分成一个8*8矩阵后,还必须将每个数值减去128,然后代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT转换公式所接受的数字范围是在-128到+127之间。X,y代表图像数据矩阵内某个数值的坐标位置f(x,y)代表图像数据矩阵内的数个数值u,V代表DCT变换后矩阵内某个数值的坐标位置F(u,V)代表DCT变换后矩阵内的某个数值U=O且v=0c(u)c(v)=11.414u0或v0c(u)c(v)=1经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为

8、DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。量化。图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容。编码。Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。编码时,每个矩阵数据的DC值与

9、63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。DC编码DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补数即可。所谓1的补数,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的

10、位数为3。在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为IOO1O1。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称为ZR1(ZeroRum1ength),而(

11、0/0)称为EOB(Ene1ofB1ock)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的HUff1nan编码表中找到U1U1U1ooI1nO霍夫曼码值,于是加上原来100(4)即是用来取5,4的Huffman编码1111111110011110100,5,4表示AC值为4的前面有5个零。参考资料:1、林福宗图像文件格式(上)一一Windows编程清华大学出版社,1996年2、李振辉、李仁各编著,探索图像文件的奥秘清华大学出版社,1996年

12、3、黎洪松、成实译JPEG静止数据压缩标准学苑出版社,1996年二、设计过程2.1设计思路本次设计中将JPEG图像编码过程分为四个部分:、颜色模式转换及采样、DCT变换、量化、编码、对BMP图像进行读取,得到RGB三基色数据,由于人眼对图片上的亮度Y的变化远比色度UV的变化更敏感,因此要对RGB进行色彩转换,通过RGB到YUV的转换公式,将RGB转化为YCbCr色彩空间,得到亮度分量Y和色差分量UV。、对得到的YUV数据进行DCT,通过此步骤可以降低图像数据的相关性。、对变换后的数据进行量化,量化采用数据与标准量化表相除的方法。由于量化表在高频的位置取了较大的值,数据的高频部分便得到了许多的“

13、0”值。之后,进行ZigZag扫描,将量化后的数据中更多的“0”值排列到数据的末端。、然后进行HUffman编码,最终形成压缩后的二进制数据码流,完成图像压缩编码。根据设计思想画出系统流程图:说明:要将一幅彩色图像进行压缩编码,首先将图像RGB分量转化为亮度分量和色差分量,然后将图像分成8义8的象素块,用正向二维DCT把每个块转变成64个DCT系数值,其中1个数值是直流(DC)系数,即8义8空域图像子块的平均值,其余的63个是交流(AC)系数,接下来对DCT系数进行Zig-Zag扫描和HUffnIan编码,实现了图像压缩。2.3程序模块框图2.3.1DCT变换基于DCT变换的程序流程图此部分分

14、为三个过程:原始图像的载入、颜色模式转换、采样以及DCT变换(1)原始图像的载入。MAT1AB中利用函数imread来实现图像文件的读取操作。其语法格式为:Img=imread(fi1ename,fmt)X,map=imread(fiIename,fmt)=imread(fiIename)Fi1ename:图像文件名;fmt:图像文件格式。(2)颜色模式转换及采样(3)DCT变换DCT变换具体程序实现:RGB=imread(autumn.BMP)*从内存中读取BMP格式的真彩色图像I=rgb2gTay(RGB);%将真彩色图像RGB转换为灰度级亮度图像II=im2doub1e(I)*将I变换为

15、双精度格式I1=idct2(I);%对I进行二维DCT,返回的包含DCT系数12=idct2Q1);%求二维DCF逆变换,重构图像subp1ot(2,2,1);imshow(I);subp1ot(2,2,2);imshow(I2);subp1ot(2,2,3);imshow(I1);subp1ot(2,2,4);imshow(abs(I1-I2);figruemesh(I1);tit1e(变换谱三维彩色图)co1orbar(Vert)%在垂直轴旁增加一颜色等级条量化过程的程序流程图图像文件的显示。在MAT1AB中,可以调用image函数来显示图像,其语法格式为:Image(C)image是用来显示附标图像,即显示的图像上有x、y坐标轴的显示,可以看到图像的像素大小。量化过程是控制JPEG压缩比的关键。这个步骤除掉了一些高频量,损失了很高细节。但事实上人眼对高空间频率远没有低频敏感。所以处理后的视觉损失很小。另一个重要原因是所有的图片的点与点之间会有一个色彩过渡的过程。大量的图象信息被包含在低空间频率中。经过量化处理后,在高空间频率段,将出现大量连续的零。Zig-Zag程序流程图矢量中有许多连续的0,可以使用R1E来压缩掉这些Oo假设有一组矢量(64个的后63个,己按Z字形扫描得到)是57,45

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服