多媒体信息处理综合课程设计.docx

上传人:b****5 文档编号:5669022 上传时间:2022-12-31 格式:DOCX 页数:18 大小:1.16MB
下载 相关 举报
多媒体信息处理综合课程设计.docx_第1页
第1页 / 共18页
多媒体信息处理综合课程设计.docx_第2页
第2页 / 共18页
多媒体信息处理综合课程设计.docx_第3页
第3页 / 共18页
多媒体信息处理综合课程设计.docx_第4页
第4页 / 共18页
多媒体信息处理综合课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

多媒体信息处理综合课程设计.docx

《多媒体信息处理综合课程设计.docx》由会员分享,可在线阅读,更多相关《多媒体信息处理综合课程设计.docx(18页珍藏版)》请在冰豆网上搜索。

多媒体信息处理综合课程设计.docx

多媒体信息处理综合课程设计

兰州交通大学

《多媒体信息处理综合课程设计》

JPEG编解码方法设计与实现

学院

专业:

班级:

姓名:

2014年1月

...................................................................................................................3

.设计目的1.

兰州交通大学

2.实验设备及材料........................................................................................................3

3.设计要求....................................................................................................................3

4.原理............................................................................................................................3

4.1JPEG..................................................................................................................3

4.2JPEG压缩中图像文件的格式.........................................................................4

4.3JPEG编码原理..................................................................................................5

4.3.1离散余弦变换........................................................................................6

4.3.2量化........................................................................................................6

4.3.3行程编码和熵编码................................................................................7

5.程序设计....................................................................................................................9

6.实验结果..................................................................................................................18

7.总结..........................................................................................................................20

兰州交通大学

1.设计目的

1.掌握JPEG编解码的基本原理和方法。

2.学习使用程序设计环境。

3.使用设计框架构造应用程序。

4.掌握JPEG编码、解码实现。

2.实验设备及材料

1.PC机一台

2.MATLAB

3.设计要求

拍摄BMP图像,利用算法程序将摄入的图像进行编码,产生JPEG压缩图像,生成解压缩图像送显示设备显示,对视觉压缩结果进行评价并计算压缩比。

4.原理

4.1JPEG

JPEG(JointPhotographicExpertsGroup)是在国际标准化组织(ISO)领导之下制定静态图像压缩标准的委员会,第一套国际静态图像压缩标准ISO

10918-1(JPEG)就是该委员会制定的。

由于JPEG优良的品质,使他在短短几年内的图像都采用了80%网站上被广泛应用于互联网和数码相机领域,获得了成功,

兰州交通大学

JPEG压缩标准。

JPEG本身只有描述如何将一个影像转换为字节的数据串流(streaming),但并没有说明这些字节如何在任何特定的储存媒体上被封存起来。

.jpeg/.jpg是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。

尤其是使用过高的压缩比例,将使最终解压缩后恢复的图像质量明显降低,如果追求高品质图像,不宜采用过高压缩比例。

但是JPEG压缩技术十分先进,它用有损压缩方式去除冗余的图像数据,在获得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。

而且JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多种压缩级别,压缩比率通常在10:

1到40:

1之间,压缩比越大,品质就越低;相反地,品质就越高。

比如可以把1.37Mb的BMP位图文件压缩至20.3KB。

当然也可以在图像质量和文件尺寸之间找到平衡点。

JPEG格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持24bit真彩色,也普遍应用于需要连续色调的图像

4.2JPEG压缩中图像文件的格式

由于图像数据文件的格式有很多,如GIF、TIFF、PCX、TGA、BMP、JPEG等。

而现在实现的是BMP和JPEG的相互转换,所以要具体介绍BMP和JPEG文件的格式。

)色彩模型,将各种颜色视为为红,BlueGreenRed(RGB图像采用BMP.

兰州交通大学

绿,蓝(R,G,B)三个部分的组合。

由于一幅图像中许多像素对应的颜色是相同的,BMP图像中采用了一个表:

表中的每一行记录一种颜色的R,G,B值。

这样,当表示一个象素的颜色时,只需要指出该颜色是在第几行,即该颜色在表中的索引值,这个表在BMP图像中称为调色板。

有一种图,它的颜色数高达256×256×256种,也就是说包含上述提到的R,G,B颜色表示方法中所有的颜色,这种图叫做真彩色图(TrueColor)。

真彩色图并不是说一幅图包含了所有的颜色,而是说它具有显示所有颜色的能力,即最多可以包含所有的颜色。

表示真彩色图时,每个象素直接用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编码过程要对输入序列进行两遍扫描,第一遍统计各个符号出现的概率,构造Huffman树,得到码书;第二遍用码书对符号进行编码。

这么做的话,时间空间开销都较大。

两遍扫描意味着要把整幅图像的“中间符号”都记录下来,不能“随到随编”。

而且要把码书传给解码器,这会增加压缩文件的大小。

兰州交通大学

JPEG的实际实现一般支持两种Huffman方式,一种是前述的“正宗”Huffman编码(称为optimized方式),另一种则采用JPEG标准AnnexK中给出的缺省码书。

采用缺省码书的好处是输入序列只用扫描一遍,空间和实际开销都较小;缺点是,由于码书不是根据当前图像的统计信息得到的,那么压缩率会比“正宗”Huffman编码低一些。

不过由于Huffman编码对概率误差不敏感,因此实践中常常采用缺省码书进行编码。

算术编码和Huffman编码都是变长码,符号出现概率越高,码字越短。

不同之处在于,Huffman编码每个符号对应的码字是确定的,每个码字的bit数为整数。

算术编码的基本思想是用一个精度足够高的属于(0,1)的实数来表示整个输入序列,输入序列中每个符号对应的码字是不确定的,总体上每个符号对应的码字长度等于其信息熵(均以bit计),码字平均长度可能是小数。

算术编码的压缩率通常高于Huffman编码。

算术编码的另一个好处是,它很容易做成自适应的,因此只需扫描一遍输入序列,空间开销小很多。

5.程序设计

1、读入图像:

clear

I=imread('1.jpg');%读入原图像;

R=I(:

:

1);

将原图像转为双精度数据类型;%R1=im2double(R);

兰州交通大学

2、进行DCT矩阵变换(重复三次),并显示原图像大小、压缩图像大小、压缩比:

T=dctmtx(8);%产生二维DCT变换矩阵

L=blkproc(R1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T'是DCT函数P1*x*P2的参数

Mask=[10100000

11001000

11000000

00000000

00000000

00000000

00000000

00000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个

L2=blkproc(L,[88],'P1.*x',Mask);%只保留DCT变换的10个系数

[mn]=size(L2);

J=[mn];

fori=1:

m

value=L2(i,1);

num=1;

forj=2:

n

L2(i,j)==value

if

兰州交通大学

num=num+1;

else

J=[Jnumvalue];

num=1;

value=L2(i,j);

end

end

J=[Jnumvalue];

end

disp('原图像大小')

whos('L2');

disp('压缩图像大小:

')

whos('J');

disp('图像的压缩比:

')

disp(m*n/length(J))%解压缩

t1=J

(1);

t2=J

(2);

K(1:

t1,1:

t2)=0;

i1=1;

j1=1;

fori=3:

2:

length(J)

c1=J(i);

兰州交通大学

c2=J(i+1);

forj=1:

c1

K(i1,j1)=c2;

j1=j1+1;

ifj1>t2

i1=i1+1;

j1=1;

end

end

end

R2=blkproc(K,[8,8],'P1*x*P2',T',T);%逆DCT,重构图像

G=I(:

:

2);

G1=im2double(G);%将原图像转为双精度数据类型;

T=dctmtx(8);%产生二维DCT变换矩阵

L=blkproc(G1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T'是DCT函数P1*x*P2的参数

Mask=[10100000

11001000

11000000

00000000

00000000

0

0000000

兰州交通大学

00000000

00000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个

L2=blkproc(L,[88],'P1.*x',Mask);%只保留DCT变换的10个系数

[mn]=size(L2);

J=[mn];

fori=1:

m

value=L2(i,1);

num=1;

forj=2:

n

ifL2(i,j)==value

num=num+1;

else

J=[Jnumvalue];

num=1;

value=L2(i,j);

end

end

J=[Jnumvalue];

end

disp('原图像大小')

whos('L2');

兰州交通大学

disp('压缩图像大小:

')

whos('J');

disp('图像的压缩比:

')

disp(m*n/length(J))%解压缩

t1=J

(1);

t2=J

(2);

K(1:

t1,1:

t2)=0;

i1=1;

j1=1;

fori=3:

2:

length(J)

c1=J(i);

c2=J(i+1);

forj=1:

c1

K(i1,j1)=c2;

j1=j1+1;

ifj1>t2

i1=i1+1;

j1=1;

end

end

end

,重构图像DCT逆%blkproc(K,[8,8],'P1*x*P2',T',T);G2=

兰州交通大学

B=I(:

:

3);

B1=im2double(B);%将原图像转为双精度数据类型;

T=dctmtx(8);%产生二维DCT变换矩阵

L=blkproc(B1,[88],'P1*x*P2',T,T');%计算二维DCT,矩阵T及其转置T'是DCT函数P1*x*P2的参数

Mask=[10100000

11001000

11000000

00000000

00000000

00000000

00000000

00000000];%二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个

L2=blkproc(L,[88],'P1.*x',Mask);%只保留DCT变换的10个系数

[mn]=size(L2);

J=[mn];

fori=1:

m

value=L2(i,1);

num=1;

forj=2:

n

L2(i,j)==value

if

兰州交通大学

num=num+1;

else

J=[Jnumvalue];

num=1;

value=L2(i,j);

end

end

J=[Jnumvalue];

end

disp('原图像大小')

whos('L2');

disp('压缩图像大小:

')

whos('J');

disp('图像的压缩比:

')

disp(m*n/length(J))%解压缩

t1=J

(1);

t2=J

(2);

K(1:

t1,1:

t2)=0;

i1=1;

j1=1;

fori=3:

2:

length(J)

c1=J(i);

兰州交通大学

c2=J(i+1);

forj=1:

c1

K(i1,j1)=c2;

j1=j1+1;

ifj1>t2

i1=i1+1;

j1=1;

end

end

end

3、显示图像:

B2=blkproc(K,[8,8],'P1*x*P2',T',T);%逆DCT,重构图像

A(:

:

1)=R2;

A(:

:

2)=G2;

A(:

:

3)=B2;

Subplot(1,2,1);

imshow(I);title('原图像');%显示原图像

Subplot(1,2,2);

imshow(A);title('压缩图像');%显示压缩后的图像。

对比原始图像和压缩后的图像。

兰州交通大学

6.实验结果

压缩前图像压缩后图像

uiopen('c:

\User\Adminstrator\Desktop\1.jpg'.1)

原图像大小;

NameSizeBytesClass

1350*480840000doublearray

Grandtotalis168000elementsusing840000bytes

压缩图像大小;

NameSizeBytesClass

M1*48530356500doublearray

Grandtotalis48530elementsusing356500bytes

图像压缩比:

2.3562

压缩后图像压缩前图像

兰州交通大学

uiopen('c:

\User\Adminstrator\Desktop\2.jpg'.2)

原图像大小;

NameSizeBytesClass

1480*240545280doublearray

Grandtotalis115200elementsusing545280bytes

压缩图像大小;

NameSizeBytesClass

M1*26500205200doublearray

Grandtotalis26500elementsusing205200bytes

图像压缩比:

2.6573

压缩前图像压缩后图像

uiopen('c:

\User\Adminstrator\Desktop\3.jpg'.3)

原图像大小;

NameSizeBytesClass

1450*260604500doublearray

Grandtotalis117000elementsusing604500bytes

兰州交通大学

压缩图像大小;

NameSizeBytesClass

M1*29920226040doublearray

Grandtotalis29920elementsusing226040bytes

图像压缩比:

2.6743

7.总结

当图像的压缩比增大时,也即压缩率减小时,图像的质量也将降低。

基于DCT变换的JPEG图像压缩方法简单,方便,是一种非常有用的图像压缩方法,随着科学技术的发展,图像压缩技术越来越引起人们的关注。

因此基于DCT变换的JPEG图像压缩方法有着广阔的前景。

优点:

摄影作品或写实作品支持高级压缩。

利用可变的压缩比可以控制文件大小。

支持交错(对于渐近式JPEG文件)。

广泛支持Internet标准。

缺点:

有损耗压缩会使原始图片数据质量下降。

当您编辑和重新保存JPEG文件时,JPEG会混合原始图片数据的质量下降。

这种下降是累积性的。

JPEG不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片

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

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1