文档介绍:基于 LBG 的矢量量化图像压缩编码实验一、实验原理矢量量化: 要想得到好的性能编码,仅采用标量量化是不可能的。当把多个信源符号联合起来形成多维矢量,再对矢量进行标量量化时自由度将更大,同样的失真下, 量化基数可进一步减少,码率可进一步压缩。这种量化叫矢量量化。应用: 在航天、军事、气象、医学、多媒体等领域中经常需要大量存储和传输各种静态图像和视频图像。为了提高传输效率和减少存储空间,必须采取有效的压缩编码算法消除图像中所包含的各种冗余信息并在给定的失真条件下使用尽量少的比特数来描述图像。矢量量化(VQ) 作为一种有效的有损压缩技术,其突出优点是压缩比大以及解码算法简单,因此它已经成为图像压缩编码的重要技术之一。矢量量化压缩技术的应用领域非常广阔,如军事部门和气象部门的卫星(或航天飞机)遥感照片的压缩编码和实时传输、雷达图像和军用地图的存储与传输、数字电视和 DVD 的视频压缩、医学图像的压缩与存储、网络化测试数据的压缩和传输、语音编码、图像识别和语音识别等等。 LGB 算法: 一种有效和直观的矢量量化码书设计算法—— LBG 算法(也叫 GLA 算法)是由 Linde 、 Buzo 和 Gray 于 1980 年首先提出来的。该算法基于最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件,且是 Lloyd 算法在矢量空间的推广, 其特点为物理概念清晰、算法理论严密及算法实现容易。设训练矢量集为?? 110,,, ?? MxxxX?,待产生的码书为?? 110,,, ?? NyyyC?, 其中??)1(10,,, ?? kiiiixxxx?,??)1(10,,, ?? kjjjjyyyy?,10,10??????NjMi , 则码书设计过程就是需求把训练矢量集 X 分成 N 个子集)1,,1,0(??NjS j?的一种最佳聚类方案,而子集 jS 的质心矢量 jy 作为码字。假设平方误差测度用来表征训练矢量 ix 和码字 jy 之间的失真,即: ????? 10 2)(),( kl jl iljiyxyxd 则码书设计的准则可用下列数学形式表达: 最小化??????? 10 10),(),,( Nj Mi ji ijyxdwCXWf 约束条件???? 101 Nj ijw ,10???Mi 其中 W 为NM?矩阵,其元素满足: ????0 1 ijw ji jiSx Sx??矩阵 W 可看作训练矢量的聚类结果。根据 W ,可计算码字: ???? 101 Mi i ijj jxwS y 其中 jS 代表子集 jS 中训练矢量的数目,或者说是矩阵 W 第1?j 行)1,,1,0,(??Miw ij?中非零元素的数目。针对训练矢量集为?? 110,,, ?? MxxxX?,其 LBG 算法的具体步骤如下: 步骤 1:给定初始码书??)0(1 )0(1 )0(0 )0(,,, ?? NyyyC?,令迭代次数 0?n ,平均失真???)1(D ,给定相对误差门限)10(????。步骤 2:用码书)(nC 中的各码字作为质心,根据最佳划分原则把训练矢量集 X 划分为 N 个胞腔??)(1 )(1 )(0 )(,,, nN nnnSSSS ???, )(niS 满足?? XvyvdyvdvS njNj ni ni??????),,( min ),(| )(10 )()(步骤 3:计算平均失真??????? 10 )(10 )(),( min 1 Mi njiNj nyxdM D 判断相对误差是否满足????)()()1(/)( nnnDDD 若满足,则停止算法,码书)(nC 就是所求的码书。否则,转步骤 4。步骤 4:根据最佳码书条件,计算各胞腔的质心,即????)( )1(1 Svni nivS y 由这 N 个新质心 1,,1,0, )1(???Niy ni?形成新码书)(nC ,置 1??nn ,转步骤2。二、实验目的采用矢量量化算法( LBG )获得图像压缩所需要的码书,通过码书实现图像压缩编码。三、实验内容对给定的一幅图片四、实验步骤(1)对训练图片,采用 LBG 算法获取最佳码书设计; ( 2)采用熵编码实现图像索引编号的压缩。五、程序代码 clear all; data=imread(''); % 调入原始图像 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=5