- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
多媒体信息处理综合课程设计--JPEG编解码方法设计与实现
《课程设计》
JPEG编解码
学院
专业:
班级:
姓名:
2014年1月
1. 设计目的 3
2. 实验设备及材料 3
3. 设计要求 3
4. 原理 3
4.1 JPEG 3
4.2 JPEG压缩中图像文件的格式 4
5
4.3.1离散余弦变换 6
4.3.2量化 6
4.3.3行程编码和熵编码 7
5. 程序设计 9
6. 实验结果 18
7. 总结 20
设计目的
1.JPEG编解码。
2.学习使用程序设计环境。
3.使用设计框架构造应用程序。
4.JPEG编码、解码实现。
PEG压缩中图像文件的格式
由于图像数据文件的格式有很多,如GIF、TIFF、PCX、TGA、BMP、JPEG等。而现在实现的是BMP和JPEG的相互转换,所以要具体介绍BMP和JPEG文件的格式。
BMP图像采用RGB(Red Green Blue)色彩模型,将各种颜色视为为红,绿,蓝(R,G,B)三个部分的组合。由于一幅图像中许多像素对应的颜色是相同的,BMP图像中采用了一个表:表中的每一行记录一种颜色的R,G,B值。这样,当表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值,这个表在BMP图像中称为调色板。有一种图,它的颜色数高达256×256×256种,也就是说包含上述提到的R,G,B颜色表示方法中所有的颜色,这种图叫做真彩色图(True Color)。真彩色图并不是说一幅图包含了所有的颜色,而是说它具有显示所有颜色的能力,即最多可以包含所有的颜色。表示真彩色图时,每个象素直接用R,G,B三个分量字节表示,而不采用调色板技术。
4.3JPEG编码原理
JPEG的压缩编码过程大致分成三个步骤:1、使用正向离散余弦变换把空间域表示的图变换成频率域表示的图;2、使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的;3、使用霍夫曼可变字长编码器对量化系数进行编码。下面依次介绍压缩过程中应用到的技术。
4.3.1离散余弦变换
离散余弦变换是压缩编码的基础。在JPEG中,首先将图像分割成8x8像素的小块,然后进行余弦变换,其变换式为(M=N=8):
对于每个8×8二维原图像采样数据块, 64点阵的离散函数FDCT把它们作为输入信号,然后分解成64个正交基信号,每个正交基信号对应于64个二维空间频率中的一个,这些空间频率是由输入信号的频谱组成。FDCT的输出是64个基信号的幅值(即DCT系数),每个系数值由64点阵输入信号唯一地确定,即离散余弦变换的变换系数。在频域平面上变换系数是二维频域变量u和v的函数。
因为在一幅图像中像素之间的灰度或色差信号变化缓慢,在8×8子块中像素之间的相关性很强,所以通过离散余弦正变换处理后,在空间频率低频范围内集中了数值大的系数,这就为数据压缩提供了可能。
4.3.2量化
为了达到压缩数据的目的,对经过FDCT变换后的频率系数进行量化处理。量化处理是一个多到一的映射,它是造成DCT编/解码信息损失的根源,是图像质量下降的最主要原因。在JPEG标准中采用线性均匀量化器。
量化定义为,对64个DCT变换系数除以量化步长,然后四舍五入取整。量化步长是量化表的元素,量化表元素随DCT变换系数的位置而改变。
不同频率的余弦函数对视觉的影响不同,量化处理是在一定的主观保真度图像质量的前提下,可据不同频率的视觉阈值来选择量化表中元素值的大小。
4.3.3行程编码和熵编码
JPEG 压缩的最后一步是对量化后的系数进行熵编码。这一步采用通用的无损数据压缩技术,对图像质量没有影响。
在熵编码之前,需要把64 个DCT 系数转换为一串中间符号。其中直流系数和交流系数的编码方式不同。
坐标u=v=0的值是直流分量(即DC系数)。直流系数表示当前分块中64 个象素的平均值,相邻分块的直流系数具有很强的相关性,因此在编码时只需记录与前一分块的直流系数的差值,即直流系数的“中间符号”采用差分脉冲编码(DPCM),它是64个图像的采样平均值。
DC系数的编码方法:
第1块图像的DC系数是“真值”,以后各块的DC是与前1块DC系数的“差值”:
Diff = DC(i) - DC(i-1)
其余63个AC系数编码是从左上方开始,沿箭头方向,对63 个交流系数用“之” 字型扫描,让它变成一维数组。这样做的目的是将低频系数放在前面,高频系数放在后面。因为高频系数中有很多0,为了节约空间,所以交流系数的“中间符号”用零行程码表示。
接下来对中间符号进行熵编码,这一步的目的是利用符号的统计特性,进一步提高压缩率。JPEG 标准规定的熵编码方式有两种:Huffman 编码和自适应二进制算术编码。这两种编码各有优劣:
“正宗”的Huffman 编码过程要对输入序列进行两遍扫描,第一遍统计各个
文档评论(0)