最佳矢量量化器码本设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学校代码: 10128
学号:************ 语音信号处理专题报告
题目:最佳矢量量化器码本设计
学生姓名:
学院:信息工程学院
系别:电子系
班级:
二〇一三年六月
最佳矢量量化器码本设计
一、矢量量化概述
矢量量化技术涉及到许多学科的技术和理论知识,且应用范围非常广泛。
由于矢量量化的数据压缩具有编码简单,效率高,压缩比大等优点,所以矢量量化最先在语音,图像,视频这些媒体信息的压缩中取得了巨大的应用。
由于矢量量化的高压缩比,使得它可以应用在民用的高清电视,网络视频的实时传输上,也可以应用在军用国防的卫星遥感,雷达监测等方面。
矢量量化技术在其他方面的应用也发展十分迅速,如矢量量化技术已广泛地应用于语音识别,说话人识别,数字水印,文件检索,纹理压缩,移动通信等众多科学领域。
矢量量化的三大关键步骤和技术是:码书设计,码字搜索和码字索引分配前两项是矢量量化过程中的关键。
码书设计可以看成是一个统计聚类的过程。
从另一个角度来看,码书设计也是一个迭代过程,码书可以视为一个类似函数优化的问题,所以要搜索最优化的全局码书,就需要一种全局算法。
从以上分析可以看出,码书的优化是一个很重要的任务。
人们试图找到各种新的码书优化的算法和策略。
多种理论研究都应用到了码书算法,例如神经网络,模糊集合论,遗传算法等。
此外,先进的预测技术也是提高压缩比的一种方法。
二、矢量量化的基本概念
量化就是把一个模拟信号值的连续范围分为若干相邻并具有唯一量值的区间,凡落在某区间的抽样信号样值都指定为该区间量值的过程。
量化分为两类:标量量化和矢量量化
1、标量量化
整个动态范围被分成若干个小区间,每个小区间有一个代表值,量化时落入小区间的信号值就用这个代表值代替,或者叫被量化为这个代表值。
这时的信号量是一维的,所以称为标量量化。
图(1-1)标量量化原理图
2、 矢量量化
矢量量化:若干个标量数据组成一个矢量,矢量量化是对矢量进行量化,它把矢量空间分成若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表矢量代替,,或者叫着被量化为这个代表矢量。
在输入信号序列中,每K 个连续样点可以组成一组K 维欧式空间中的一个矢量,矢量量化就是把这个K 维输入矢量X 映射成另一个K 维量化矢量。
其中量化矢量构成的集合127{,,.....,}y Y Y Y =称为码书或码本,码书中的每个矢量i Y 称为码字或码矢。
比如说,当K=2时,所得到的是二维矢量。
所有可能的二维矢量就构成了一个平面,记为(a1,a2),所有可能的(a1,a2)就是一个二维空间。
如图(a )所示,矢量量化就是将平面分成M 小区域,即1S ,2S ,.…..,M S ,从每个小区域中找出代表向量i Y ,这些代表向量的集合就是有M 个区间的二维矢量量化器。
若要对落在二维矢量空间中的一个模拟矢量12(,)X a a =进行量化,首先要选择一个合适的失真测度,而后利用最小失真原则,分别计算用量化矢量
(1,2,......,7)i Y i =替代X 所带来的失真。
其中最小失真值所对应的那个量化矢量(1,2,......,7)i Y i =中的某一个,就是模拟矢量X 的重构矢量(或称恢复矢量)。
通
常把所有M 个量化矢量构成的集合{}i y 称之为码书或码本。
码书中的量化矢量称为码字或码矢,例如图(b )中所示的矢量量化器的码书127{,,.....,}y Y Y Y =,其中每个量化矢量127,,.....,Y Y Y 称为码字或码矢。
不同的划分或不同的量化矢量选取就可以构成不同的矢量量化器。
(a ) (b)
图(1-3)矢量量化示意图
根据上面对矢量量化的描述,我们可以给矢量量化以下的定义:
矢量量化是把一个K 维模拟矢量k X x R ∈∈映射成为另一个K 维量化矢量,其数学表达式为 ()Y Q X =
12{,,.....,}k N N i Y y Y Y Y Y R ∈=∈
式中:X 表示输入矢量;x 表示信源空间;k R 表示K 维欧氏空间;Y 表示量化矢量(码字或码矢);N y 表示输出空间(即码书);()Q •表示量化符号;N 表示码书的大小(即码字的数目)。
三、矢量量化器原理
矢量量化器可以分解为两个部分:编码器和解码器。
在编码端,输入矢量X 与码书(I )中的每一个或部分码字进行比较,分别计算它们的失真,搜索到失真最小的码字i Y 的序号i (或此码字所在码书中的地址),并将i 的编码信号通过信道传输到译码端;在译码端,先把信道传来的编码信号译成序号i ,再根据序号i (或码字i Y 所在地址),从码书(II )中查出相应的码字。
由于码书(I )与码
书(II )是一样的,此时失真(,)i D X Y 最小,所以i Y 就是输入矢量X 的重构矢量(恢复矢量)。
很明显,由于在信道中传输的并不是矢量i Y 本身,而是其序列号i 的编码信号,所以传输速率还可以进一步提高。
矢量量化器原理框图如下:
图(1-4)矢量量化器原理框图
四、失真测度
设计矢量量化器的关键是编码器的设计,而译码器的工作仅是一个简单的查表过程。
在编码的过程中,需要引入失真测度的概念。
前已指出,失真是将输入信号矢量用码书的重构矢量来表征时的误差或付出的代价,而这种代价的统计平均值(平均失真)描述了矢量量化器的工作特性。
失真测度是以什么样的方法来反映用码字i Y 代替信源矢量X 时所付出的代价,即
[(,())]D E d X Q X = 式中,[.]E 表示求期望。
在矢量量化器的设计中,失真测度的选择是很重要的,失真测度选用得合适与否,直接影响系统的性能。
失真测度主要有均方误差失真测度(即欧氏距离),加权的均方误差失真测度,板仓-斋藤似然比距离,似然比失真测度等,,它们在语音信号处理中常被应用于语音波形矢量量化,线性预测参数矢量量化和孤立词识别的矢量量化中。
在本毕业设计中,各种算法中涉及到计算失真的部分均采用的是欧氏距离-均方误差。
欧氏距离-均方误差的定义如下:
设输入信号的某个K 维矢量X ,与码书中某个K 维矢量Y 进行比较,,i i x y 分别表示X 和Y 中的各元素(1i k ≤≤),则定义均方误差为欧氏距离,即有
2
21
1
(,)()K
i i i d X Y x y K
==
-∑
这里,2(,)d X Y 的下标2表示平方误差。
五、最佳矢量量化器的码本设计
最佳矢量量化器的码本设计也被称为最佳码本设计,即从大量的输入信号样本中训练出一个好的码本,在一定的条件下,矢量量化器的最佳码本设计使失真最小。
矢量量化器最佳设计中最重要的问题是如何确定量化区间和确定矢量量化,也就是要达到最佳划分和最佳码书。
一 最佳划分
码书给定,可以用最近邻准则NNR 得到最佳划分。
最邻近准则;根据该条件对信号空间进行最佳划分,对于信源空间中的任意一个矢量X ,若X 和码字i Y 的失真小于它和其他码字i Y 的失真,即
则j S 为最佳划分,j S 即为一个胞腔
由于给定码书12{,,......,}N N y Y Y Y =中共有N 个码字,所以可以把信源空间划分为N 个区间(1,2,......,)j S j N =. 二 最佳码书
划分了(1,2,......,)j S j N =后,为了使码书的平均失真最小,码字i Y 必须为相应划分 的(1,2,......,)j S j N =形心即满足 centroid 质心条件
j S 为集合中矢量的个数
{}N i j K
j I i j i Y X d Y X d R X S ∈≠≤∈=,);,(),(:∑∈=
j
S X j
j X
S Y 1
六、LBG 算法的实现流程
LBG 算法根据最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件提出,它的特点是算法理论严密,物理概念清晰和算法实现容易。
LBG 算法是目前比较常用和流行的一种码书建立方法,该方法可以用于两种情况:一是已知信源概率分布,二是未知信源概率分布,但是已知一个信号序列的情况。
由于实际情况中信源确定多维的概率分布很难,所以利用训练序列建立码本的LBG 算法用得比较多一些。
利用训练序列建立码书的LBG 算法的步骤如下: 第一步 初始化:
给定初始码书(0)
N y ,即给定码书的大小N 和码字{}00
12N Y Y Y ,
并设置n=0,设起始平均失真 (1)D -=∞ , 以及给定计算停止门限ε。
第二步 迭代:
用初始码书()
n N y 为形心,根据最邻近准则将训练序列分成N 个胞腔,即
{(,)(,)}n j j i d X Y d X Y δ=<
()
,,,(1,2,........,)n i j N i j Y Y y X TS i N ≠∈∈=
第三步 计算平均失真与相对失真: 平均失真为()
1
1min (,)m n r r D
d X Y m ==∑,()
n N Y y ∈ 相对失真为(1)()()
()
n n n n D D D
D
--= 若 ()n D ε≤,则停止计算,当前的码书()
n N y 就是设计好的()n L N N y y += ,否则进行
第四步:
第四步 利用公式 1
i
x S i
Y X S ∈=
∑ 计算这时划分的各个胞腔的形心,
由这N 个新形心(1)(1)(1)12{,,.....,}n n n N Y Y Y +++构成新的码书 (1)
n N y +,并置n=n+1,返回第二步再进行计算,直到()n D ε≤得到所要求的码书()
n L N N y y +=为止。
七、 LBG 算法初始码书的选取
一 随机选取法
该方法最先是用在聚类算法中,它是从训练序列中随机选取N 个矢量作为初始码字构成初始码书。
二 分裂法
先取一个较少码字的码书,用LBG 算法对其优化,对优化的结果进行分裂,得到较大的体积,较优化的码书再,重复优化,分裂,再优化过程。
具体步骤如下:
第一步计算所有训练序列的形心,将此形心作为第一个码字(0)1Y ; 第二步用一个合适的参数A ,乘以码字(0)1Y ,形成第二个码字(0)2Y ; 第三步以码字(0)1Y ,(0)2Y 为简单的初始码书,即
(0)
(0)(0)212{,}y Y Y =
用前面所述的LBG 算法,去设计仅含两个码字的码书()()()
212{,}n n n y Y Y =;
第四步将码书中的两个码字()()12,n n Y Y 分别乘以合适的参数B ,得到四个码字
()()()()1212,,,n n n n Y Y BY BY ;
第五步以这4个码字为基础,按步骤3构成含4个码字的码书,再乘以合适的参数以扩大码字的数目。
如此反复,经过2log N 次设计,就得到所要求的有N 个码字的初始码书。
本设计基于对矢量量化器的基本理论和结构的学习,重点研究了矢量量化器设计中最重要的技术——码书设计,对矢量量化技术进行总结,并对矢量量化的算法进行了分析。