第四次作业 LBG矢量量化算法

本文档详细介绍了使用LBG算法进行图像矢量量化的三个程序:trvqsp_img用于生成码书,vqimg_enc进行图像量化压缩,vqimg_dec重构原始图像。在调试过程中遇到unistd.h文件缺失的问题,通过创建空的unistd.h文件并放置于正确路径解决。程序支持用户自定义图像尺寸和码书大小,但码书的自适应能力较弱。
摘要由CSDN通过智能技术生成
1. LBG算法的概述  
自从1980年提出矢量量化器码书设计的LBG算法以来,矢量量化技术已经成功地应用到图像压缩和语音编码中。 
LBG算法中的最佳矢量量化器设计的关键是最佳划分和最佳码书的设计。 一是给定码书条件下寻找信源空间的最佳划分,使平均失真最小,由码书 和NNR得最佳划分,信源空间中的任一点矢量,如果它和码字的失真小于它和其它码字的失真;二是在给定划分条件下,寻找最佳码书,使平均失真最小。其思想如下所示: 
(1)随意选取n个图像块作为码字; 
(2)由这n个码字对所有的图像块进行划分,即分成n个集合,使每个集合中的图像块,都是与各码字距离中与对应的码字的距离最小的; 
(3)由这n个集合的重心,得到n个新的码字; 
(4)如果这些个码字与原来的码矢量变化不大(收敛),就完成码书的训练,否则重新进行2、3步。 
算法步骤如下所示: 
(1)给定训练集T。固定ɛ(失真阈值)为一个很小的正数; 
(2)让N=1(码矢数量),将这一个码矢设置为所有训练样本的平均值: 
这里写图片描述  
计算总失真度(这时候的总失真很明显是最大的): 
这里写图片描述  
(3)分裂:对i=1,2,…,N,他们的码矢分别为: 
这里写图片描述  
让N=2N,就是每个码矢分裂(乘以扰乱系数1+ɛ和1-ɛ)为两个,这种每一次分裂后的码矢数量就是前一次的两倍。 
(4)迭代:让初始失真度为: 这里写图片描述  。将迭代索引或者迭代计数器置零i=0. 
1)对于训练集T中的每一个训练样本m=1,2,…,M。在所有码矢中寻找的 这里写图片描述 最小值,也就是看这个训练样本和哪个码矢距离最近。我们用n*记录这个最小值的索引。然后用这个码矢来近似这个训练样本: 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值