本文主要是介绍第四次作业 LBG矢量量化算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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*记录这个最小值的索引。然后用这个码矢来近似这个训练样本:
自从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*记录这个最小值的索引。然后用这个码矢来近似这个训练样本:
这篇关于第四次作业 LBG矢量量化算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!