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

文档序号:7661161阅读:255来源:国知局

专利名称::一种新的矢量量化初始码书的生成方法
技术领域
:本发明属于数字图象、数字音频处理
技术领域
,具体涉及一种新的矢量量化初始码书的生成方法。
背景技术
:矢量量化技术在数字图像和数字音频的压缩中有着广泛的应用。在数字图像的矢量量化过程中,将图像分成4X4的小块,从而构成16维的矢量进行矢量量化;而在数字音频压缩中,将每n(如16)个线谱频率(LSF)构成一个n维矢量进行矢量量化在矢量量化中,码书的设计起着关键的作用。经典的码书设计方法包括LBG算法,基于神经网络的码书设计方法(如自组织特征映射神经网络码书设计S0FM),模拟退火码书设计算法(simulatedannealing,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>formulaseeoriginaldocumentpage5</formula>步骤3:计算平均失真<formula>formulaseeoriginaldocumentpage5</formula>,判断相对误差是否满足<formula>formulaseeoriginaldocumentpage5</formula>若满足则停止算法,码书C(")就是设计出的最终码书;否则转步骤4。步骤4:根据最佳码书条件,计算各胞腔的质心,即<formula>formulaseeoriginaldocumentpage5</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的胞腔,此胞腔的矢量个数76"0^111^61++。直到所有训练矢量都参与了以上运算。第二步假设共筛选出m个聚类矢量构成聚类矢量集cluster,相应的当前训练矢量集re-sig被划分为m个胞腔。依次比较各胞腔的矢量个数VectorNumber与胞腔平均矢量数averagevectornum的大小,并标记(小于标记l)统计出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未达到设计指标所制定的码书大小siz—book。另卩么依)大将每个半示i己l(即VectorNumber〈averagevectornum)的cluster矢量写入码书,其胞腔内的所有矢量从训练矢量集re—sig中删除,sizcount++,转至ij第一步。本发明是基于矢量空间划分的初始码书生成方法,能使初始码书的码失在输入矢量空间中很好的散开,并尽可能占据输入概率密度较大的区域;从而使之后的LBG算法避免陷入局部最优,设计出的码书性能更好,更加接近全局最优,同时加快了收敛速度,减少迭代次数。图1是基于平方误差测度和训练矢量集的LBG算法流程框图;图2是本发明流程框图;图3是本算法应用于语音编码算法中进行主观测试的结果比较图,图中,横轴为测试序列,纵轴为主观测试CMOS分值;其中,方块的曲线代表本发明得到的结果数据;菱形块的曲线代表扁R-WB+原方法得到的结果数据。具体实施方式实施例l:试验釆用"6灰度5UX512Lena图和Pe卯ers图作为训练图像分别用传统的随机初始码书生成法加LBG和新的初始码书生成法加LBG进行码书设计。本发明的具体过程如下第一步图像分块后成为16维矢量;由于数据的动态范围为0到255,所以置空间划分距离为256,然后找到相互距离大于(16"&*(16"&*16的矢量构成聚类矢量的集合cluster。然后用cluster中的矢量对训练矢量聚类成相应个数的胞腔。对胞腔矢量个数小于胞腔平均矢量数的cluster矢量加入码本,胞腔内的矢量从训练矢量集中删除。第二步更新训练矢量后,减小划分距离,delta=delta/2,重复以上过程,继续细划训练集,写入新码失,扩大码本。这样的逐步细致地划分训练矢量空间,能使码书中的码本分散开来。第三步gsizcount+sizplus〉=siz-book时说明此时码本增力口数sizplus加上原有码本数sizcoimt已经超出要设计的码本矢量数。此时将胞腔内的矢量个数从大到小排列,取矢量个数多的前siz—book-sizcount个cluster作为码矢。这样的排序,能使码书中的码本占据概率密度大的矢量空间。生成的码书分别用于256灰度512X512Lena图,P印pers图和训练集以外的灰度512X512F16图进行编码。以下给出了峰值信躁比和迭代次数的比较,可以看出新方法对PSNR提升了O.5dB左右,并且迭代次数大幅减小。以下给出了峰值信躁比和迭代次数的比较,可以看出新方法对PSNR提升了0.5dB左右,并且迭代次数大幅减小。<table>tableseeoriginaldocumentpage9</column></row><table>实施例2:AVS-M音频标准中,应用了一种基于交错分组和帧内预测的线谱频率系数矢量量化技术。其中用了五个矢量量化码书cb—isf_l_3_5[1024][3],cb一isf丄9—11[512][3],cb_isf-13-15—2[512][3],cb_isf—4_6—8[512][3],cb-isf—10—12_14_16[512][3]。用本发明的矢量量化码本训练方法训练出的码本替代原来的码本后,用PESQ测试结果如下。<table>tableseeoriginaldocumentpage9</column></row><table>权利要求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++,直到所有训练矢量都参与了以上运算;步骤二假设共筛选出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未达到设计指标所制定的码书大小siz_book;那么依次将每个标记1的cluster矢量写入码书,其胞腔内的所有矢量从训练矢量集re_sig中删除,sizcount++,转步骤一。2、根据权利要求l所述一种新的矢量量化初始码书的生成方法,其特征在于,参数初始化过程中,初始化空间划分距离delta=数据动态范围上限。全文摘要本发明涉及一种新的矢量量化初始码书的生成方法,属于数字图像、数字音频处理
技术领域
。首先参数初始化,后续处理是一个循环过程第一步,首先计算距离门限值。将第一个训练矢量写入聚类矢量集,然后计算第二个训练矢量和它的距离d1,如果距离d1大于d0,则将第二个训练矢量加入聚类矢量集cluster,否则将它纳入第一个聚类矢量的胞腔,统计胞腔的矢量个数;第二步,统计出sizplus;第三步,判断,如果此时codebook已有siz_book个矢量,达到要求,算法结束;如果循环带来的码书增量加上当前码书大小未达到设计指标所制定的码书大小,那么依次将每个标记胞腔内的所有矢量从训练矢量集中删除,转到第一步。文档编号H04N7/24GK101163239SQ20071015051公开日2008年4月16日申请日期2007年11月28日优先权日2007年11月28日发明者蓉叶,海张,涛张,欣李,杨东明,贺家琳申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1