矢量量化算法

本文介绍了矢量量化技术的基础,特别是LBG算法,该算法用于图像压缩和语音编码。LBG算法的关键步骤包括最佳划分和最佳码书设计。程序部分包括码书生成、图像量化编码和解码,涉及matlab生成图像、码书训练、量化编码和重构图像等过程。
摘要由CSDN通过智能技术生成

1. LBG算法介绍

自从1980年提出矢量量化器码书设计的LBG算法以来,矢量量化技术已经成功地应用到图像压缩和语音编码中。 
LBG算法中的最佳矢量量化器设计的关键是最佳划分和最佳码书的设计。 一是给定码书条件下寻找信源空间的最佳划分,使平均失真最小,由码书 和NNR得最佳划分,信源空间中的任一点矢量,如果它和码字的失真小于它和其它码字的失真;二是在给定划分条件下,寻找最佳码书,使平均失真最小。其思想如下所示: 

  a.随意选取n个图像块作为码字; 
  b.由这n个码字对所有的图像块进行划分,即分成n个集合,使每个集合中的图像块,都是与各码字距离中与对应的码字的距离最小的; 
  c.由这n个集合的重心,得到n个新的码字; 
  d.如果这些个码字与原来的码矢量变化不大(收敛),就完成码书的训练,否则重新进行2、3步。

2.程序部分

该程序分为三个部分:trvqsp_img、vqimg_enc、vqimg_dec。trvqsp_img的作用是根据输入图像得到码书;vqimg_enc的作用是根据码书对图像进行矢量量化;vqimg_dec的作用是根据码书文件和压缩后的文件重构原始图像。

(1)准备工作

a.用matlab生成.img图像

clear variables;  
filename='**';  
im=imread(filename);  
im=rgb2gray(im);  
f=fopen([filename(1:end-4) '.img'],'wb');  
for i=1:size(im,2)  
    for j=1:size(im,1)  
        fwrite(f,im(j,i),'uint8');  
    end  
end  
fclose(f);  


(2

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值