回顾失真测度最佳矢量量化器和码本设计降低复杂度的矢量量化系统语音参数的矢量量化回顾矢量量化(VQ,VectorQuantization)是一种极其重要的信号压缩方法。VQ在语音信号处理中占十分重要的地位。广泛应用于语音编码、语音识别和语音合成等领域。凡是要用量化的地方都可以采用矢量量化。矢量量化研究的目的?针对特定的信息源和矢量维数,设计出一种最优化的量化器,在R(量化速率)一定的情况下,给出的量化失真尽可能接近D(R)(最小量化失真)。术语码本Codebook码字CodeWord码本大小CodebookSizeVoronoiCell胞腔矢量量化研究的目的?针对特定的信息源和矢量维数,设计出一种最优化的量化器,在R(量化速率)一定的情况下,给出的量化失真尽可能接近D(R)(最小量化失真)。图7-2矢量量化系统的组成4.3矢量量化的失真测度失真测度(距离测度):是将输入矢量Xi用码本重构矢量Yi来表征时所产生的误差或失真的度量方法,它可以描述两个或多个模型矢量间的相似程度。失真测度是矢量量化和模式识别中一个十分重要的问题,选择合适与否直接影响系统的性能。失真度选择必须具备的特性必须在主观评价上有意义,即小的失真应该对应于好的主观语音质量;必须是易于处理的,即在数学上易于实现,这样可以用于实际的矢量量化器的设计;平均失真存在并且可以计算;易于硬件实现失真测度主要有均方误差失真测度(即欧氏距离)、加权的均方误差失真测度、板仓-斋藤(Itakura-Saito)距离,似然比失真测度等,还有人提出的所谓的“主观的”失真测度。一、欧氏距离-均方误差设输入信号的某个K维矢量X,与码书中某个K维矢量Y进行比较,xi,yi分别表示X和Y中的各元素,则定义均方误差为欧氏距离:KYXYXyxKYXdTKiii)()()(1),(122)1(Ki几种其他常用的欧氏距离:1.r方平均误差KiriiryxKYXd11),(2.r平均误差rKiriiryxKYXd11']1[),(3.绝对值平均误差KiiiyxKYXd111),(4.最大平均误差iiKirrrMyxYXdYXd11max)],([lim),(二、线性预测失真测度用全极模型表示的线性预测方法,广泛应用于语音信号处理中。它在分析时得到的是模型的预测系数.仅由预测系数的差值,不能完全表征这两个语音信息的差别。应该直接由这些系数所描述的信号模型的功率谱来进行比较。222)()()(jjeAeXf当预测器的阶数,信号与模型完全匹配时,信号功率谱为:p信号的功率谱预测误差能量预测逆滤波器的频率响应222)()()(jpjeAeXf1ln),(2aRaffdTISTa相应的,设码书中某重构矢量的功率谱为则定义Itakura-Saito距离为piaaTirirrrRaa1)()(2)0()0(这种失真测度是针对线性预测模型、用最大似然准则推导出来,所以特别适用于LPC参数,描述语音信号的情况,常用于LPC编码中。我们由此又推导出两种线性预测色失真测度,他们比上述具有更好的性能,即)ln(ln),(22RaaaRaffdTTpLLR①对比似然比失真测度②模型失真测度11),(22RaaaRaffdTTpm注:这两种失真测度都仅仅比较两矢量的功率谱,而没有考虑其他能量信息。三、识别失真测度失真测度的定义)(),(),(EEgffdEfdLLR加权因子输入信号矢量的归一化能量码书重构矢量的归一化能量)()()(0)(FFddxxxxxxxxxxg当两矢量的能量接近时(即),忽略能量差异引起的影响;当两矢量能量相差很大时,即进行线性加权;而当能量差超过门限时,则为固定值dxEEFx4.4最佳矢量量化器和码本的设计最佳设计就是使失真最小1、最佳划分2、最佳码书一、矢量量化器最佳设计的两个条件最佳矢量量化器满足的两个必要条件1)Voronoi分割条件(最近邻准则)对信号空间的分割应满足});,(),(:{liYXdYXdRXSilKl根据该条件可以对信号空间进行最佳划分,得到的称为一个胞腔lS2)Centroid质心条件子空间分割固定后,Voronoi胞元的质心就是量化器的码字][llSXXEY对于一般的失真测度和信源分布,很难找到质心的计算方法,但对于一般的分布和常用的均方失真测度,可以证明lSXllXNY1是中包含的矢量个数lS二、LBG算法K-meansclusteringalgorithm1980年由Linde,Buzo和Gray提出,它是标量量化器中Lloyd算法的推广,在矢量量化中是一个基本算法。LBG算法由于其理论上的严密性、应用上的简便性以及较好的设计效果,得到了广泛的应用,并常被作为各种改进算法的基础LBG算法步骤第一步:初始化给出训练VQ码书所需的全部参考矢量X,X的集合用S表示;设定量化级数,失真控制门限,算法最大迭代次数L以及初始码书;设总失真;迭代次数的初始化为m=1},,,{)0()0(2)0(1NYYY)0(D第二步:迭代2)计算失真:1)根据最近邻准则将S分成N个子集,,┅,,即当时,下式成立:)(1mS)(mNS)(2mS)(1mSXljiYXdYXdmiml,),,(,()1()1(NiSXmlmmlYXdD1)1()()(),(4)计算相对失真改进量:3)计算新码字)(1)(miSXimiXNY)()()1()()()(mmmmmmDDDDD)(m将与失真门限值进行比较。若则转入6)否则转入5);)(m)(m:,,,)()(2)(1mNmmYYY5)若则转至6),否则m加1,转至1)Lm第三步:结束6)得到最终的训练码书,)()(2)(1,,,mNmmYYY并输出总失真)(mD为了避免迭代算法无限制循环下去,这里设置了两个阈值参数:最大迭代次数L和失真控制门限。的值设得远小于1,当时,表明再进行迭代运算失真得减小是有限的、可)(m以停止运算。L是限制迭代次数的参数,防止设置较低时迭代次数过多三、初始码书的选择①随机选取法②分裂法分裂法Findcentroid0)1()1('DyyyynnnnClassifyvectorsFindCnetroidComputeDistortionD'DDm=2*mDD'mMm=1YesStopNoYesNoNearest-NeighborsearchK-meanschestering0.01~0.05降低复杂度的矢量量化系统()知识扩展)•矢量量化系统主要由编码器和译码器组成:编码器主要由码书搜索算法和码书构成译码器由查表方法和码书构成•矢量量化器的研究主要围绕降低速率、减少失真和降低复杂度展开。•降低复杂度的设计方法大致分为两类:一类是无记忆的矢量量化器另一类是有记忆的矢量量化器一、无记忆的矢量量化系统无记忆矢量量化是指量化每一个矢量时都不依赖于此矢量前面的其他矢量,即每一个矢量都是独立量化的。1、全搜索矢量量化器前面我们介绍的LBG算法,在进行VQ编码时,采用的就是全搜索法,即对于每个输入矢量,比较它与每一个码书中的码字的失真,并将失真最小的码字标号作为输出2.树形搜索的矢量量化系统•树形搜索是减少矢量量化计算量的一种重要方法。•它又分为二叉树和多叉树两种:码字不象普通的码字那样随意放置,而是排列在一棵树的接点上,如图所示,码本尺寸为M=8的二叉树,它的码本中共包含14个码字。输入矢量X先与Y0和Y1比较,计算出失真d(X,Y0)和d(X,Y1)。如果后者较小,则走下面支路,同时送出“1”,同理,如果最后达到Y101,则送出的输出角标101。这就是矢量量化的过程。表7-1二叉树与全搜索的比较失真运算量比较运算量存储容量最佳程度全搜索M=8M=8M=8全体二叉树2log2M=62log2M=32(M-1)=14局部二叉树搜索的主要优点是计算量有很大减少而性能下降并不多,但存储量增加。2.多级矢量量化系统多级矢量量化器由若干级矢量量化器级联而成,因而又称级联矢量量化器。多级矢量量化不仅可以减少计算量还可以减少存储量。多级矢量量化器由若干个小码书构成。图7-5两级矢量量化系统工作框图及码书训练先采用一个小的码书,其长度为M1,用它来逼近输入信号矢量;然后再用第二个小码书,其长度为M2,用它来对第一次的误差进行编码;输入矢量与第一级匹配,得到其地址编号i,然后在第二级码书中搜索与这个误差矢量最佳匹配的矢量,得到其地址编号j,将和同时发送出去,在接受端根据和来恢复原来的矢量,由于每本码书的体积较小,所以采用全搜索法ijij二、有记忆的矢量量化系统在量化每一个输入时,不仅与此矢量本身有关,而且也与前面的矢量有关。有记忆矢量量化系统反馈矢量量化自适应矢量量化分类:预测矢量量化PVQ(PredictiveVQ)有限状态矢量量化FSVQ(Finite-StateVQ)自适应矢量量化(AdaptiveVQ)是采用多个码书,量化时根据输入矢量的不同特征采用不同的码书。实际例子:语音参数的矢量量化语音参数的矢量量化——将语音信号经过分析,得到各种参数,然后再将这些按帧分析所得的参数构成矢量,进行矢量量化。线性预测系数的矢量量化是人们最关心的问题。例:线性预测编码的矢量量化器(VQLPC)声码器。图7-7800b/s的VQLPC声码器框图对线性预测系数采用了矢量量化,而其余参数均采用差值标量量化(了解)模糊c均值聚类算法目标函数为如下式所示:,11(,,)()()NJmFCMkiiKikJXUYuXdXY式4-33根据目标函数的模糊c均值类聚算式如下:1121211(),1()()(),1,1()NmkiiikNmkiiJmikijmiuXXYkJuXdXuXkJiNdXkj,Y,Y式4-34模糊矢量量化码本估计的步骤如下:1)设定初始码本和每个码字的初始隶属度函数,为了方便可以令每个码字的初始隶属度函数为相等的值;2)对于训练观察矢量序列,利用式(4-34)计算新的聚类中心及新的隶属度函数;3)利用式(4-33)的目标函数,判断迭代计算是否收敛。如果前后差值小于某个阈值,则迭代计算结束,由新的聚类中心和隶属度函数集组成重估后的新码本;否则继续进行下一轮迭代计算。ku12,,...,NXXXXkYku模糊矢量量化的步骤如下:1)对于待矢量量化的输入矢量,模糊矢量量化不是通过矢量量化把输入矢量量化成为某个码字,而是把输入矢量量化成由隶属度函数组成的矢量,它表示分别属于码字的程度是多少;其中由下式给定:2)这时的量化误差由下式给定:iXiXkYiX12()(),(),...,()iiiJiUXuXuXuXiX(1,2,...,)kYkJ()kiuX121211()(),1,()1()JmikikijkmidXuXkJuXdXkj,Y,YiX1()(,)JmkiikkDuXdXY3)的重构矢量由下式给定:可见的重构矢量由码字的线性组合组成,所以相当于增加了码本的尺寸。iX11ˆJmkkkiJmkkuYXuiX(1,2,...,)kYkJ作业:1.编程实现LBG算法