- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据压缩信源编码》实验指导书
《数据压缩与信源编码》
实验指导书
适用专业: 信息工程
课程代码: 6088619
总学时: 40 总学分: 2.5
编写单位:电气与电子信息学院
编 写 人: 李斌
审 核 人:
审 批 人:
批准时间: 2015 年 11 月 10日
目 录
实验一 码书的设计和使用 ………………………………… 2
实验二 基于DCT变换的图像压缩技术 …………………… 8
实验三 基于小波变换的图像压缩技术 ………………… 15
实验一 码书的设计和使用
一、 实验目的
采用矢量量化算法(LBG)获得图像压缩所需要的码书,通过码书实现图像压缩编码。
二、 实验内容
对给定的一幅图像进行码书设计、编码和解码。
三、 实验仪器、设备及材料
操作系统:Windowsxp;
软件:MATLAB
四、 实验原理
要想得到好的性能编码,仅采用标量量化是不可能的。当把多个信源符号联合起来形成多维矢量,再对矢量进行标量量化时自由度将更大,同样的失真下,量化基数可进一步减少,码率可进一步压缩。这种量化叫矢量量化。
一种有效和直观的矢量量化码书设计算法——LBG算法(也叫GLA算法)是由Linde、Buzo和Gray于1980年首先提出来的。该算法基于最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件,且是Lloyd算法在矢量空间的推广,其特点为物理概念清晰、算法理论严密及算法实现容易。
设训练矢量集为,待产生的码书为,其中,,,则码书设计过程就是需求把训练矢量集分成个子集的一种最佳聚类方案,而子集的质心矢量作为码字。假设平方误差测度用来表征训练矢量和码字之间的失真,即:
则码书设计的准则可用下列数学形式表达:
最小化
约束条件 ,
其中为矩阵,其元素满足:
矩阵可看作训练矢量的聚类结果。根据,可计算码字:
其中 代表子集中训练矢量的数目,或者说是矩阵第行中非零元素的数目。
针对训练矢量集为,其LBG算法的具体步骤如下:
步骤1:给定初始码书,令迭代次数,平均失真,给定相对误差门限。
步骤2:用码书中的各码字作为质心,根据最佳划分原则把训练矢量集划分为个胞腔,满足
步骤3:计算平均失真
判断相对误差是否满足
若满足,则停止算法,码书就是所求的码书。否则,转步骤4。
步骤4:根据最佳码书条件,计算各胞腔的质心,即
由这个新质心形成新码书,置,转步骤2。
五、 实验步骤
1. 码书的设计
clear all;
data=imread(cameraman.tif); %调入原始图像
data=double(data)/255; %归一化
[m,n]=size(data); %求出图像的行数和列数
figure(1)
subplot(1,2,1);
imshow(data); %显示原始图像
title(原始图像)
subplot(1,2,2);
imhist(data);
title(直方图)
siz_word=4; %设置码字的大小
siz_book=512; %设置码书的大小
data1=zeros(m*n,1);
for i=1:m
for j=1:n
data1((i-1)*n+j)=data(i,j);
end
end
M1=floor(m*n/siz_word);
r=mod(m*n,siz_word);
if r0
M1=M1+1;
end
data2=zeros(M1,siz_word);
l=1;
A=zeros(siz_word,1);
r=1;
for i=1:m*n
A(r)=data1(i);
if r==siz_word
data2(l,:)=A;
文档评论(0)