07第七章矢量量化
矢量量化是实现数据压缩的一种有效方
法,早在50和60年代就被用于语音压缩 编码。直到70年代线性预测技术被引入 语音编码后,矢量量化技术才活跃起来。 80年代初,矢量量化技术的理论和应用 研究得到迅速发展。
7.2 矢量量化的基本原理
标量量化是对信号的单个样本或参数 的幅度进行量化;标量是指被量化的变 量,为一维变量。 矢量量化的过程是将语音信号波形 的K个样点的每一帧,或有K个参数的每 一参数帧构成K维空间的一个矢量,然 后对这个矢量进行量化。
N N
E d ( X, Y )
2
矢量量化的准则:在给定码本大小K时使量化所造成的 失真最小。
7.3 失真测度
前面我们讲过设计矢量量化器的关键 是编码器的设计。而在编码的过程中,就 需要引入失真测度的概念。
失真测度:是将输入矢量Xi用码本重构 矢量Yi来表征时所产生的误差或失真的度量 方法,它可以描述两个或多个模型矢量间的 相似程度。
表7-1 二叉树与全搜索的比较
失真运算量 比较运算量 存储容量 最佳程度
全体 局部
全搜索 二叉树
K
几种其他常用的欧氏距离: 1. r方平均误差
1 d r ( X ,Y ) K
x
i 1
K
i
yi
r
2. r平均误差
1 d 'r ( X ,Y ) [ K
x
i 1
K
i
yi ]
r
1 r
3.绝对值平均误差
1 d1 ( X , Y ) K
x
i 1
K
i
yi
4.最大平均误差
d M ( X , Y ) lim d r ( X , Y )] m ax xi yi [
一、欧氏距离-均方误差
设输入信号的某个K维矢量X,与码书中某个K 维矢量Y进行比较,xi,yi分别表示X和Y中的各元 素 (1 i K ) ,则定义均方误差为欧氏距离:
1 d 2 ( X ,Y ) K ( X Y )T ( X Y ) ( xi yi ) 2 K i 1
是 Sl 中包含的矢量个数
二、LBG算法 1980年由Linde,Buzo和Gray提出, 它是标量量化器中Lloyd算法的推广,在矢 量量化中是一个基本算法。 LBG算法由于其理论上的严密性、应用上 的简便性以及较好的设计效果,得到了广泛的 应用,并常被作为各种改进算法的基础。 LBG算法是一种递推算法,从一个事先 选定的初始码本中开始进行迭代,直到系统 满足性能要求或不再有明显改进为止。
失真度选择必须具备的特性: 必须在主观评价上有意义,即小的失真应该 对应于好的主观语音质量; 必须是易于处理的,即在数学上易于实现, 这样可以用于实际的矢量量化器的设计; 平均失真存在并且可以计算; 易于硬件实现。
常见失真测度方法
均方误差失真测度(即欧氏距离)
加权的均方误差失真测度 板仓-斋藤(Itakura-Saito)似然比距离 似然比失真测度 等等
矢量量化的定义 将信号序列 { yi } 的每K个连续样点 分成一组,形成K维欧式空间中的一 个矢量,矢量量化就是把这个K维输 入矢量X映射成另一个K维量化矢量。 其中量化矢量构成的集合 {Yi } 称为码 书或码本,码书中的每个矢量Yi 称为 码字或者码矢。
Y {Y1 ,Y2 ,YN Yi R }
立: d ( X ,Yl( m1) d ( X ,Yi( m1) ),i , j l 2)计算失真:
D ( m)
N
i 1 X Sl( m )
d ( X , Yl ( m1) )
( Y1( m) , Y2( m) ,, YNm) : 3)计算新码字
Yi
( m)ห้องสมุดไป่ตู้
1 Ni
Sl {X R K : d ( X , Yl ) d ( X , Yi );i l}
2)Centroid质心条件 子空间分割固定后,Voronoi胞元 的质心就是量化器的码字
Yl E[ X Y Sl ]
对于一般的失真测度和信源分布,很难找到 质心的计算方法,但对于一般的分布和常用的 均方失真测度,可以证明 1 Yl X N l X Sl
K
以K=2进行说明: 当K=2时,所得到的是二维矢量。所有可 能的二维矢量就形成了一个平面。 记为(a1,a2),所有可能的(a1,a2) 就是一个二维空间。如图7-1所示
图7-1 矢量量化概念示意图
矢量量化就是将这个平面划分为M块S1, S2,…,Si…SM,然后从每一块中找出代表值 Yi(i=1,2….M),这就构成一个有M个区 间的二维矢量量化器。图(b)所示的是一个 7区间的二维矢量量化器,即K=2,M=7。 通常这些代表值Yi称为量化矢量。
(m) 1
,Y
(m) 2
,,Y
(m) N
,
以停止运算。L是限制迭代次数的参数,防止 设臵较低时迭代次数过多 三、初始码书的选择 ① 随机选取法 ② 分裂法 ③乘积码书法
7.5 降低复杂度的矢量量化系统
• 矢量量化系统主要由编码器和译码器组成:
编码器主要由码书搜索算法和码书构成,
译码器由查表方法和码书构成。 • 矢量量化器的研究主要围绕降低速率(运算量)、 减少失真和降低复杂度(存储量)展开。 •降低复杂度的设计方法大致分为两类: 一类是无记忆的矢量量化器, 另一类是有记忆的矢量量化器。
存在的问题 一、如何划分M个区域边界。 方法是:将大量欲处理的信号的矢量进行统计划分, 进一步确定这些划分边界的中心矢量值来得到码书。 二、如何确定两矢量在进行比较时的测度。 这个测度就是两矢量间的距离,或以其中某一 矢量为基准时的失真度。它描述了当输入矢量用码 书所对应的矢量来表征时所应付出的代价。
概述 矢量量化的基本原理 失真测度 最佳矢量量化器和码本设计 降低复杂度的矢量量化系统
语音参数的矢量量化
7.1 概述
矢量量化(VQ,即Vector Quantization)是一种 极其重要的信号压缩方法。VQ在语音信号处理中占 十分重要的地位。广泛应用于语音编码、语音识别 和语音合成等领域。 量化分为两类: * 标量量化:将取样后的信号值逐个地进行量化。 * 矢量量化:将若干取样信号分成一组,即构成一 个矢量,然后对此矢量一次进行量化。 凡是要用量化的地方都可以采用矢量量化。
所有M个量化矢量构成的集合 { Yi }称为 码书或码本; 把码书中的每个量化矢量Yi(i=1, 2….M)称为码字或码矢。
量化方法: 对一个矢量X进行量化,首先选择一个合 适的失真测度,然后用最小失真原理,分别 计算用量化矢量Yi替代X所带来的失真。 其中最小失真值所对应的那个量化矢量, 就是矢量X的重构矢量(或恢复矢量)。
LBG算法步骤 第一步:初始化 给出训练VQ码书所需的全部参考矢量X, X的集合用S表示;设定量化级数,失真控制门 限 ,算法最大迭代次数L以及初始码 ( {Y1( 0) ,Y2( 0) ,, YN0) } ;设总失真 D ( 0 ) ;迭代次 书 数的初始化为m=1
第二步:迭代
( 1)根据最近邻准则将S分成N个子集 S1 m ) , ( ( ) S2m ) ,┅, N ) , 即当 X S1 m 时,下式成 S (m
r 1 i K 1 r
二、线性预测失真测度
用全极模型表示的线性预测方法,广泛应用于语 音信号处理中。它在分析时得到的是模型的预测系数。 仅由预测系数的差值,不能完全表征这两个语音信息 的差别。应该直接由这些系数所描述的信号模型的功 率谱来进行比较。
当预测器的阶数 p ,信号与模型 完全匹配时,信号功率谱为:
7.4 最佳矢量量化器和码本的设计
一、矢量量化器最佳设计的两个条件 最佳设计就是使失真最小 最佳设计中,重要的问题是如何划分量 化区间和确定量化矢量。这两个条件回答 了两个问题: (1)、最佳划分 (2)、最佳码书
最佳矢量量化器满足的两个必要条件 1)Voronoi分割条件(最近邻准则) 对信号空间的分割应满足
f ( ) X (e )
信号的功率谱
j
2
2
j
预测误差能量
2
A(e )
预测逆滤波器的频率响应
相应的,设码书中某重构矢量的功率谱为
f ( ) X (e )
j
2
p 2 A(e )
j 2
则定义Itakura-Saito距离为 a
T
d IS ( f , f )
aT Ra
2 ln 1
p
aT Ra' r (0)ra (0) 2 r (i)ra (i)
i 1
这种失真测度是针对线性预测模型、用最 大似然准则推导出来,所以特别适用于LPC参 数描述语音信号的情况,常用于LPC编码中。 我们由此又推导出两种线性预测失真测度,它 们比上述具有更好的性能,即 ①对数似然比失真测度
2. 树形搜索的矢量量化系统 • 树形搜索是减少矢量量化计算量的一种重要方法。
• 它又分为二叉树和多叉树两种:
码字不象普通的码字那样随意放臵, 而是排列在一棵树的接点上,如图所 示,码本尺寸为M=8的二叉树,它的 码本中共包含14个码字。输入矢量X 先与Y0和Y1比较,计算出失真d(X,Y0) 和d(X,Y1)。如果后者较小,则走下面 支路,同时送出“1”,同理,如果 最后达到Y101,则送出的输出角标 101。这就是矢量量化的过程。
特点: 传输存储的不是矢量本身而是其序号,所以 据有高保密性能;用于传输时,其传输速率 可以进一步降低; 收发两端没有反馈回路,因此比较稳定; 矢量量化器的关键是编码器的设计,译码器 只是简单的的查表过程。
矢量量化的性能指标除了码书的大小M以外还有由 于量化而产生的平均信噪比: