当前位置: 首页 > 专利查询>天津大学专利>正文

一种新的矢量量化初始码书的生成方法技术

技术编号:3587074 阅读:277 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种新的矢量量化初始码书的生成方法,属于数字图像、数字音频处理技术领域。首先参数初始化,后续处理是一个循环过程:第一步,首先计算距离门限值。将第一个训练矢量写入聚类矢量集,然后计算第二个训练矢量和它的距离d1,如果距离d1大于d0,则将第二个训练矢量加入聚类矢量集cluster,否则将它纳入第一个聚类矢量的胞腔,统计胞腔的矢量个数;第二步,统计出sizplus;第三步,判断,如果此时codebook已有siz_book个矢量,达到要求,算法结束;如果循环带来的码书增量加上当前码书大小未达到设计指标所制定的码书大小,那么依次将每个标记胞腔内的所有矢量从训练矢量集中删除,转到第一步。

【技术实现步骤摘要】

本专利技术属于数字图象、数字音频处理
,具体涉及一种新的矢量 量化初始码书的生成方法。
技术介绍
矢量量化技术在数字图像和数字音频的压缩中有着广泛的应用。在数字图像的矢量量化过程中,将图像分成4X4的小块,从而构成16维的矢量进行 矢量量化;而在数字音频压缩中,将每n(如16)个线谱频率(LSF)构成一个n 维矢量进行矢量量化在矢量量化中,码书的设计起着关键的作用。经典的码书设计方法包括 L B G算法,基于神经网络的码书设计方法(如自组织特征映射神经网络码书设 计S0FM),模拟退火码书设计算法(simulated annealing, SA),等等。一般最常用的码书设计方法是LBG算法(亦称GLA算法).而初始码书的选 取又是LBG算法生成码书性能好坏的关键。 一个不合理的初始码书容易使之 后的LBG算法生成的码书陷入局部最优,而且会使迭代次数增大;而好的初 始码书可以使LBG算法迭代生成的码书更接近全局最优,而且会减少迭代次 数。LBG算法基于平方误差测度和训练矢量集的LBG算法步骤如下 步骤1:给定初始码书C(+,令迭代次数n-O,平均失真D(-d^^00,给定相对门限<0<1)。步骤2:用码书C(w中的各码字作为质心,根据最佳划分原则把训练矢量集X划分为N个胞腔i () ={《U(),),},其中 <formula>formula see original document page 5</formula>步骤3:计算平均失真<formula>formula see original document page 5</formula>,判断相对误差是否满足<formula>formula see original document page 5</formula>若满足则停止算法,码书C()就是设计出的最终码书;否则转步骤4。步骤4:根据最佳码书条件,计算各胞腔的质心,即<formula>formula see original document page 5</formula>形成新码书C(+'),置n-n + l,转步骤2。引理对于有限训练矢量集,LBG算法总能产生一个量化器序列,其相 应的平均失真是递减的,且经过有限次迭代达到收敛。 训练矢量集随机抽取法在运用LBG算法设计码书的过程中,初始码书的选取是能否生成性能良 好的码书的关键。最常用的生成LBG算法的初始码书的方法是随机法,即训练矢量集随机抽 取法。训练矢量集随机抽取法是从L个训练矢量中随机抽取N个作为初始码书 的方法即每隔L/N个训练矢量选取一个训练矢量作为初始码矢。在运用LBG算法设计码书的过程中,初始码书的选取是能否生成性能良 好的码书的关键。 一个不合理的初始码书容易使之后的LBG算法生成的码书陷 入局部最优,收敛速度很慢,增大迭代次数;而好的初始码书可以使LBG算法 生成的码书更接近全局最优,且收敛很快,减少迭代次数。初始码书的选取 对码书性能和算法的收敛速度影响很大。最常用的生成LBG算法的初始码书的方法是随机法,即训练矢量集随机抽 取法。训练矢量集随机抽取法是从L个训练矢量中随机抽取N个作为初始码书 的方法即每隔L/N个训练矢量选取一个训练矢量作为初始码矢。训练矢量集随机抽取法的一个优点是不需要进行初始化计算,从而大大 减少了计算时间;另一个优点是由于初始码矢选自训练序列中,因此不存在 空胞腔问题。训练矢量集随机抽取法的一个缺点是可能会选到一些非典型的 矢量作为码矢,导致该胞腔只有很少矢量,甚至只有一个初始码矢,而且每次迭代又都保留这些非典型矢量或非典型矢量的质心;另一个缺点是会造成某些空间的胞腔分得过细,有些空间的胞腔分得太粗。这两个缺点都会导致码书中有部分码矢得不到充分利用,从而影响码书性能,和之后的LBG算法的收敛速度。
技术实现思路
本专利技术的目的在于提供,码书性 能更好,更加接近全局最优,同时加快了收敛速度,减少迭代次数。首先对一些参数初始化,包括要设计的码书大小siz-book,训练矢量集的 n个dim维训练矢量存入数组re —sig [n] [dim]。定义codebook [siz—book] [dim] 用于存储码书矢量,定义胞腔平均矢量数averagevectornum-n/siz—book, 初始化空间划分距离delta-数据动态范围上限的四分之一至数据动态范围 上限之间的数,动态码书大小计数器sizcount清零,码书大小增量计数器 sizplus清零。定义cluster为聚类矢量集。后续处理是这样一个循环过程第一步首先置delta-delta/2,计算距离门限值d0 = delta*delta*dim。 将第一个训练矢量作为聚类矢量写入聚类矢量集cluster,然后计算第二个训 练矢量和它的距离dl,如果距离dl大于dO,则将第二个训练矢量加入聚类矢 量集cluster,否则将它纳入第一个聚类矢量的胞腔,此胞腔的矢量个数 VectorNumber++。以此类推,依次计算训练矢量集中剩下的矢量与聚类矢量 集cluster中的各矢量的距离,取与最近的那个聚类矢量X的距离为dl,如果 距离dl大于d0,则将这个训练矢量写入聚类矢量集,否则将它纳入聚类矢量X的胞腔,此胞腔的矢量个数760^111^61++。直到所有训练矢量都参与了以上运算。第二步假设共筛选出m个聚类矢量构成聚类矢量集cluster,相应的当前 训练矢量集re-sig被划分为m个胞腔。依次比较各胞腔的矢量个数 VectorNumber与胞腔平均矢量数averagevectornum的大小,并标记(小于标 记l)统计出VectorNumber〈averagevectornum的胞腔个数sizplus。第三步如果sizcount+sizplus〉-siz—book,说明此次循环带来的码书增 量sizplus加上当前码书大小s izcount已经超出设计指标的码书大小 siz—book。则将cluster矢量按照胞腔内矢量的个数VectorNumber由大到小的 顺序排序(以占据矢量空间密集区),取前siz-book-sizcount个culster矢量 写入码书,此时codebook已有siz-book个矢量,达到要求,算法结東;如果sizcount+sizplus〈siz-book, 说明此次循环带来的码书增量 sizplus加上当前码书大小sizcount未达到设计指标所制定的码书大小 siz—book。另卩么依)大将每个半示i己l (即VectorNumber〈averagevectornum)的 cluster矢量写入码书,其胞腔内的所有矢量从训练矢量集re — sig中删除, sizcount++, 转至ij第一步。本专利技术是基于矢量空间划分的初始码书生成方法,能使初始码书的码失 在输入矢量空间中很好的散开,并尽可能占据输入概率密度较大的区域;从 而使之后的LBG算法避免陷入局部最优,设计出的码书性能更好,更加接近全局最优,同时加快了收敛速度,减少迭代次数。 附图说明图1是基于平方误差测度和训练矢量集的LB本文档来自技高网
...

【技术保护点】
一种新的矢量量化初始码书的生成方法,包括以下过程:参数初始化:包括要设计的码书大小siz_book,训练矢量集的n个dim维训练矢量存入数组re_sig[n][dim];定义codebook[siz_book][dim]用于存储码书矢量,定义胞腔平均矢量数averagevectornum=n/siz_book,初始化空间划分距离delta=数据动态范围上限的四分之一至数据动态范围上限之间的数,动态码书大小计数器sizcount清零,码书大小增量计数器sizplus清零;定义cluster为聚类矢量集;生成方法是这样一个循环过程:步骤一:首先置delta=delta/2,计算距离门限值d0=delta*delta*dim;将第一个训练矢量作为聚类矢量写入聚类矢量集cluster;计算第二个训练矢量和它的距离d1,如果距离d1大于d0,则将第二个训练矢量加入聚类矢量集cluster,否则将它纳入第一个聚类矢量的胞腔,此胞腔的矢量个数VectorNumber↑[++];以此类推,依次计算训练矢量集中剩下的矢量与聚类矢量集cluster中的各矢量的距离,取与最近的那个聚类矢量X的距离为d1,如果距离d1大于d0,则将这个训练矢量写入聚类矢量集,否则将它纳入聚类矢量X的胞腔,此胞腔的矢量个数VectorNumber↑[++],直到所有训练矢量都参与了以上运算;步骤二:假设共筛选出m个聚类矢量构成聚类矢量集cluster,相应的当前训练矢量集re_sig被划分为m个胞腔;依次比较各胞腔的矢量个数VectorNumber与胞腔平均矢量数averagevectornum的大小,并标记统计出VectorNumber〈averagevectornum的胞腔个数sizplus;步骤三:如果sizcount+sizplus>=siz_book,说明此次循环带来的码书增量sizplus加上当前码书大小sizcount已经超出设计指标的码书大小siz_book;则将cluster矢量按照胞腔内矢量的个数VectorNumber由大到小的顺序排序(以占据矢量空间密集区),取前siz_book-sizcount个culster矢量写入码书,此时codebook已有siz_book个矢量,达到要求,算法结束;如果sizcount+sizplus<siz_book,说明此次循环带来的码书增量sizplus加上当前码书大小sizcount未达到设计...

【技术特征摘要】
1、一种新的矢量量化初始码书的生成方法,包括以下过程参数初始化包括要设计的码书大小siz_book,训练矢量集的n个dim维训练矢量存入数组re_sig[n][dim];定义codebook[siz_book][dim]用于存储码书矢量,定义胞腔平均矢量数averagevectornum=n/siz_book,初始化空间划分距离delta=数据动态范围上限的四分之一至数据动态范围上限之间的数,动态码书大小计数器sizcount清零,码书大小增量计数器sizplus清零;定义cluster为聚类矢量集;生成方法是这样一个循环过程步骤一首先置delta=delta/2,计算距离门限值d0=delta*delta*dim;将第一个训练矢量作为聚类矢量写入聚类矢量集cluster;计算第二个训练矢量和它的距离d1,如果距离d1大于d0,则将第二个训练矢量加入聚类矢量集cluster,否则将它纳入第一个聚类矢量的胞腔,此胞腔的矢量个数VectorNumber++;以此类推,依次计算训练矢量集中剩下的矢量与聚类矢量集cluster中的各矢量的距离,取与最近的那个聚类矢量X的距离为d1,如果距离d1大于d0,则将这个训练矢量写入聚类矢量集,否则将它纳入聚类矢量X的胞腔,此胞腔的矢量个数VectorNumber++,直到所有训练矢量都参与了以上运算;步骤二假设共筛选...

【专利技术属性】
技术研发人员:张涛张海贺家琳杨东明叶蓉李欣
申请(专利权)人:天津大学
类型:发明
国别省市:12[中国|天津]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利