第四章矢量量化1第四章矢量量化1、矢量量化?(VQ)是1956年由steinhaus首次提出的,1970年代后期发展起来的数据压缩和编码技术。它主要应用于:语音编码、语音合成、语音识别和说话人识别。矢量量化在语音信号处理中占有重要地位。2、标量量化和矢量量化?标量量化:是对标量进行量化,即一维的矢量量化。将动态范围分成若干个小区间,每小区间有一个代表值。当输入信号落入某区间时,量化成该代表值。矢量量化:是对矢量进行量化。将矢量空间分成若干个小区域,每小区域有一个代表矢量。当输入矢量落入某区域时,量化成该代表矢量。矢量量化是标量量化的发展。矢量量化总是优于标量量化,维数越高,性能越优越。矢量量化有效利用各分量间的互相关性。1970年代末,Linde,Buzo,Gray和Markel等人首次解决了矢量量化码书生成的方法,并首先将矢量量化用于语音编码获得巨大成功。如,在语音通信方面,将在原来编码速率为2.4kbit/s的线性预测声码器基础上,将每帧的10个反射系数加以10维的矢量量化,就可使编码速率降低到800bit/s,而声音质量基本未下降。又如分段声码器,由于采用矢量量化,可以使数码率降低到150bit/s。3、矢量量化的基本原理?标量量化是对信号的单个样本或参数的幅度进行量化;标量是指被量化的变量,为一维变量。矢量量化的过程是将语音信号波形的K个样点的每一帧,或有K个参数的每一参数帧构成K维空间的一个矢量,然后对这个矢量进行量化。标量量化可以说是K=1的矢量量化。矢量量化的过程和标量量化过程相似。在标量量化时,在一维的零至无穷大值之间设置若干个量化阶梯,当某输入信号的幅度值落在某相邻的两个量化阶梯之间时,就被量化成两阶梯的中心值。而在矢量量化时,则将K维无限空间划第四章矢量量化2分为M个区域边界,然后将输入矢量与这些边界进行比较,并被量化为“距离”最小的区域边界的中心矢量值。矢量量化的定义将信号序列iy的每K个连续样点分成一组,形成K维欧氏空间中的一个矢量,矢量量化就是把这个K维输入矢量X映射成另一个K维量化矢量。其中量化矢量构成的集合iY称为码书或码本,码书中的每个矢量iY称为码字或码矢。KiNRYYYYY,,,21下面以2K为例进行说明。当2K时,所得到的是二维矢量。所有可能的二维矢量就形成了一个平面,如果记二维矢量为21,aa,所有可能的21,aa就是一个二维空间。如下图(a)所示:矢量量化就是先把这个平面划分为M块(相当于标量量化中的量化区间)MSSS,,,21;然后从每一块中找出一个代表值MiYi,,2,1,这就构成了一个有M个区间的二维矢量量化器。如下图(b)所示的是一个7区间的二维矢量量化器,即7,2MK,共有721,,,YYY7个代表值,通常把这些代表值iY称为量化矢量。若要对一个矢量X进行量化,首先选择一个合适的失真测度,然后用最小失真原理,分第四章矢量量化3别计算用量化矢量iY替代X所带来的失真。其中最小失真值所对应的那个量化矢量,就是矢量X的重构矢量(或恢复矢量)。通常把所有M个量化矢量(重构矢量或恢复矢量)构成的集合iY称为码书或码本(Codebook);把码书中的每个量化矢量MiYi,,2,1称为码字或码矢。如上图(b)中所示的矢量量化的码书为721,,,YYY,其中每个量化矢量721,,,YYY称为码字或码失。不同的划分或不同的量化矢量选取就可以构成不同的矢量量化器。如上所述,码书的每个元素是一个矢量。注:根据仙农信息论,矢量越长越好。实际中码书是不完备的,即矢量数是有限的,而对于任何一个实际应用来说,矢量的数目通常是无限的。在实际应用中,输入矢量和码书中码字不匹配的情况下,这种失真是允许的。%基于矢量量化的语音通信系统:编码器、解码器各有相同的码书:码书含J个k维码字。工作原理:(1)每输入一帧语音(帧长为N),形成与之相应的k维特征矢量(Nk),并送入VQ编码器;(2)根据输入特征矢量从编码器码书中选择一与之失真误差最小的码失vy,取vy的编码(标号)v,即ixv;(3)传输v,若不产生误差,则收端的信号仍是v;(4)解码器按照v从解码器码书中选出具有相同下标的码字vy作为输出,vy即为ix的重构矢量(恢复矢量),即vyv。%第四章矢量量化4矢量量化系统组成如上所示,其简单工作过程是:在编码端,输入矢量iX与码书中的每一个码字进行比较,分别计算出它们的失真。搜索到失真最小的码字minjY的序号j(或该码字所在码书的地址),这些序号就作为传输或存储的参数。在恢复时,根据此序号从恢复端的码书中找出相应的码字minjY。由于两个码书是完全一样的,此时失真最小,所以minjY就是输入矢量iX的重构矢量。特点:传输存储的不是矢量本身而是其序号,所以具有高保密性能;收发两端没有反馈回路,因此比较稳定;矢量量化器的关键是编码器的设计,译码器只是简单的查表过程。矢量量化在语音识别中的用途:过程:(1)将待识别的语音样本(一个字或一个词)分帧矢量量化,其量化码书序列作为识别的参考模板;(2)识别时,对输入的语音计算其矢量量化序列,并计算该序列与每一参考模板的总平均失真量化误差(语音每一帧矢量量化值与码书的失真之和除以语音的帧数);(3)误差最小的码书序列所对应的字(或词)即为识别结果。第四章矢量量化5利用矢量量化技术,主要解决两个问题:(1)好的码书:有两个标志,J个区域边界和代表码字。“训练”或“学习”阶段:对大量的输入信号矢量,经过统计实验,划分J个区域边界,其任务是建立码书。建立码书时,按照失真度准则,用聚类算法对训练数据进行分类,将数据在多维空间中划分为胞腔,常用LBG算法。为建立好的码书,要求训练数据量大,有代表性;并选择好的失真准则以及码书优化方法。(2)未知矢量的量化:按照失真测度准则,把未知矢量量化化为失真测度最小的区域边界的代表(码字)矢量,该码字的编号为编码;比较两矢量时的测度问题。描述了当输入矢量用码书中对应的码失来表征时所应付出的代价。未知矢量量化时的搜索策略,好的搜索策略可减少量化时间。4、失真测度?设计矢量量化器的关键是编码器的设计,而译码器的工作仅是一个简单的查表过程。在编码的过程中,就需要引入失真测度的概念。失真测度(距离测度):是将输入矢量iX用码本重构矢量iY来表征时所产生的误差或失真的度量方法,它可以描述两个或多个模型矢量间的相似程度。失真度选择必须具备的特性:1.必须在主观评价上有意义,即小的失真应该对应于好的主观语音质量;2.必须是易于处理的,即在数学上易于实现,这样可以用于实际的矢量量化器的设计;3.平均失真存在并且可以计算;4.易于硬件实现。失真测度主要有欧氏(Euclid)距离测度、加权欧氏(Euclid)距离测度、Itakura-Saito距离测度、似然比失真测度、识别失真测度等。欧氏距离-均方误差:设x为未知模式的k维特征矢量,y为码书中某个k维码失,iiyx,分别表示x和y的同一维分量,几种常用的Euclid距离测度如下:均方误差Euclid距离测度,定义为:第四章矢量量化6kyxyxyxkyxdTkiii2121,r方平均误差Euclid距离测度。定义为:kiriiryxkyxd11,r平均误差Euclid距离测度。定义为:rrrkiriiryxdyxkyxd111',1,绝对值平均误差Euclid距离测度。定义为:kiiirryxkyxdyxd11'11,,优点:计算简单,易于硬件实现。最大平均误差Euclid距离测度。定义为:iikirrrMyxyxdyxd11max,lim,加权Euclid距离测度。定义为:211,kiiiyxiwkyxd式中,iw-加权系数。六种Euclid测度中,最常用均方误差Euclid距离测度。优点:简单、易处理,且基本符合语音主观感知的状况。线性预测失真测度:由日本学者板仓(Itakura)等人提出。我们知道用全极点模型表示的线性预测方法,广泛用于语音信号处理中。它在分析时得到的是模型的预测系数pkaak1,10。为了比较用这种参数表征的矢量,若直接使用Euclid失真测度,度量模型参数的误差无意义。因为,仅由预测器系数的差值不能完全表征这两个语音信息的差别。此时,应该直接用这些系数所描述的信号模型的功率谱进行度量。线性预测失真测度由此产生。第四章矢量量化7设nx1,,1,0Nn-一帧N长语音信号;paaa,,,21-p阶最佳线性预测系数;paaaa,,,21-特征矢量;''2'1',,,,1paaaa-码书中某特征矢量。当预测器的系数p,信号与模型完全匹配时,信号功率谱为:222jjeAeXf这里2jeX为信号的功率谱,2为预测误差能量,jeA为预测逆滤波器的频率响应。相应地,如设码书中某重构矢量的功率谱为:2'2'2''jpjeAeXf则Itakura-Saito失真测度,其定义为:1ln,2'22''''ppTxISaRaffd式中,xR-信号nx的1p阶自相关矩阵,0110110rprprprrrprrrRxir-信号nx的自相关函数;2-信号nx的的预测误差功率;2'p-p阶码书重构矢量的预测误差功率。Itakura-Saito失真测度是针对线性预测模型的,用最大似然准则导出,适用于LPC参数描述的语音信号情况。还推出一下两种线性预测的失真测度,它们比上述这种具有更好的性能。对数似然比失真测度。定义为:TTLLRaRaRaaffd'''ln,模型失真测度。定义为:1,'''TTmaRaRaaffd第四章矢量量化8这两种失真测度也有局限性,仅比较了两矢量的功率谱,没有考虑能量信息。识别失真测度矢量量化用于语音识别时,对失真测度还应该有其他考虑。例如:用LPC参数的对数似然比失真测度两矢量的功率谱时,应该考虑能量的影响。研究表明,频谱与能量均携带语音信息;如果仅仅依靠功率谱作为失真比较的参数,则识别的性能将不够理想。为此,引入识别失真测度,定义为:'',,EEgffdEfd其中,',EE-输入信号矢量和码书重构矢量的归一化能量;-加权因子;xg-专用函数,FFFddxxxxxxxxxxg0xg的作用:(1)当能量接近时(dxEE'),忽略能量差异引起的影响;(2)当能量相差比较大时,进行线性加权;(3)当能量差超过门限Fx时,则为某固定值。,,dFxx要经过实验来进行确定。5、矢量量化器的最佳码本设计?选择了合适的失真测度后,就可进行矢量量化器的最佳设计,所谓最佳设计,就是:(1)从大量的信号样本中训练出优化的码书;(2)从实际效果出发寻找好的失真测度;(3)用最少的搜索和计算失真的运算量实现最大的平均信噪比。数学表述:yxd,-训练用特征矢量X与训练出的码书的码字Y之间的畸变(失真测度);则最佳码书的设计是在一定的条件下,使YXdED,最小。这里E表示对X的全体构成的集合以及码本的所有码字Y进行统计平均。重要的问题是如何划分量化区间和确定量化矢量。因此应该遵循以下两条原则:(1)最近邻准则(NearestNeighborRule,NNR):-最佳划分第四章矢量量化9对给定的码书MYYY,,,21(M为码书尺寸),找出所有码书矢量的最佳区域边界MiSi,,2,1,以使平均失真最小,即寻找最佳划分。这一过程类似于标量量化中量化区间的划分。由于码书已经给定,因此可用NNR原则。也就是:对于任意一个矢量X,如果它与矢