第四章 矢量量化
第四章 矢量量化
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维无限空间划分为M个区域边界,然后将输入矢量与这些边界进行比较,并被量化为“距离”最小的区域边界的中心矢量值。
矢量量化的定义
将信号序列
的每K个连续样点分成一组,形成K维欧氏空间中的一个矢量,矢量量化就是把这个K维输入矢量X映射成另一个K维量化矢量。其中量化矢量构成的集合
称为码书或码本,码书中的每个矢量
称为码字或码矢。
下面以
为例进行说明。当
时,所得到的是二维矢量。所有可能的二维矢量就形成了一个平面,如果记二维矢量为
,所有可能的
就是一个二维空间。如下图(a)所示:
矢量量化就是先把这个平面划分为M块(相当于标量量化中的量化区间)
;然后从每一块中找出一个代表值
,这就构成了一个有M个区间的二维矢量量化器。如下图(b)所示的是一个7区间的二维矢量量化器,即
,共有
7个代表值,通常把这些代表值
称为量化矢量。
若要对一个矢量
进行量化,首先选择一个合适的失真测度,然后用最小失真原理,分别计算用量化矢量
替代
所带来的失真。
其中最小失真值所对应的那个量化矢量,就是矢量
的重构矢量(或恢复矢量)。
通常把所有M个量化矢量(重构矢量或恢复矢量)构成的集合
称为码书或码本(Codebook);把码书中的每个量化矢量
称为码字或码矢。如上图(b)中所示的矢量量化的码书为
,其中每个量化矢量
称为码字或码失。
不同的划分或不同的量化矢量选取就可以构成不同的矢量量化器。
如上所述,码书的每个元素是一个矢量。注:根据仙农信息论,矢量越长越好。实际中码书是不完备的,即矢量数是有限的,而对于任何一个实际应用来说,矢量的数目通常是无限的。在实际应用中,输入矢量和码书中码字不匹配的情况下,这种失真是允许的。
%基于矢量量化的语音通信系统:
编码器、解码器各有相同的码书:码书含J个k维码字。
工作原理:
(1) 每输入一帧语音(帧长为N),形成与之相应的k维特征矢量(
),并送入VQ编码器;
(2) 根据输入特征矢量从编码器码书中选择一与之失真误差最小的码失
,取
的编码(标号)
,即
;
(3) 传输
,若不产生误差,则收端的信号仍是
;
(4) 解码器按照
从解码器码书中选出具有相同下标的码字
作为输出,
即为
的重构矢量(恢复矢量),即
。%
矢量量化系统组成如上所示,其简单工作过程是:在编码端,输入矢量
与码书中的每一个码字进行比较,分别计算出它们的失真。搜索到失真最小的码字
的序号
(或该码字所在码书的地址),这些序号就作为传输或存储的参数。在恢复时,根据此序号从恢复端的码书中找出相应的码字
。由于两个码书是完全一样的,此时失真最小,所以
就是输入矢量
的重构矢量。
特点:
· 传输存储的不是矢量本身而是其序号,所以具有高保密性能;
· 收发两端没有反馈回路,因此比较稳定;
· 矢量量化器的关键是编码器的
,译码器只是简单的查表过程。
矢量量化在语音识别中的用途:
过程:
(1) 将待识别的语音样本(一个字或一个词)分帧矢量量化,其量化码书序列作为识别的参考模板;
(2) 识别时,对输入的语音计算其矢量量化序列,并计算该序列与每一参考模板的总平均失真量化误差(语音每一帧矢量量化值与码书的失真之和除以语音的帧数);
(3) 误差最小的码书序列所对应的字(或词)即为识别结果。
利用矢量量化技术,主要解决两个问
:
(1) 好的码书:有两个标志,J个区域边界和代表码字。
· “训练”或“学习”阶段:对大量的输入信号矢量,经过统计实验,划分J个区域边界,其任务是建立码书。
· 建立码书时,按照失真度准则,用聚类算法对训练数据进行分类,将数据在多维空间中划分为胞腔,常用LBG算法。
· 为建立好的码书,要求训练数据量大,有代表性;并选择好的失真准则以及码书优化方法。
(2) 未知矢量的量化:
· 按照失真测度准则,把未知矢量量化化为失真测度最小的区域边界的代表(码字)矢量,该码字的编号为编码;
· 比较两矢量时的测度问题。描述了当输入矢量用码书中对应的码失来表征时所应付出的代价。
· 未知矢量量化时的搜索策略,好的搜索策略可减少量化时间。
4、 失真测度?
设计矢量量化器的关键是编码器的设计,而译码器的工作仅是一个简单的查表过程。在编码的过程中,就需要引入失真测度的概念。
失真测度(距离测度):是将输入矢量
用码本重构矢量
来表征时所产生的误差或失真的度量方法,它可以描述两个或多个模型矢量间的相似程度。
失真度选择必须具备的特性:
1. 必须在主观评价上有意义,即小的失真应该对应于好的主观语音质量;
2. 必须是易于处理的,即在数学上易于实现,这样可以用于实际的矢量量化器的设计;
3. 平均失真存在并且可以计算;
4. 易于硬件实现。
失真测度主要有欧氏(Euclid)距离测度、加权欧氏 (Euclid)距离测度、Itakura-Saito距离测度、似然比失真测度、识别失真测度等。
欧氏距离-均方误差:
设
为未知模式的
维特征矢量,
为码书中某个
维码失,
分别表示
和
的同一维分量,
几种常用的Euclid距离测度如下:
· 均方误差Euclid距离测度,定义为:
·
方平均误差Euclid距离测度。定义为:
·
平均误差Euclid距离测度。定义为:
· 绝对值平均误差Euclid距离测度。定义为:
优点:计算简单,易于硬件实现。
· 最大平均误差Euclid距离测度。定义为:
· 加权Euclid距离测度。定义为:
式中,
-加权系数。
六种Euclid测度中,最常用均方误差Euclid距离测度。优点:简单、易处理,且基本符合语音主观感知的状况。
线性预测失真测度:
由日本学者板仓(Itakura)等人提出。
我们知道用全极点模型表示的线性预测方法,广泛用于语音信号处理中。它在
时得到的是模型的预测系数
。为了比较用这种参数表征的矢量,若直接使用Euclid失真测度,度量模型参数的误差无意义。因为,仅由预测器系数的差值不能完全表征这两个语音信息的差别。此时,应该直接用这些系数所描述的信号模型的功率谱进行度量。线性预测失真测度由此产生。
设
EMBED Equation.3 -一帧N长语音信号;
-
阶最佳线性预测系数;
-特征矢量;
-码书中某特征矢量。
当预测器的系数
,信号与模型完全匹配时,信号功率谱为:
这里
为信号的功率谱,
为预测误差能量,
为预测逆滤波器的频率响应。相应地,如设码书中某重构矢量的功率谱为:
则Itakura-Saito失真测度,其定义为:
式中,
-信号
的
阶自相关矩阵,
EMBED Equation.3
-信号
的自相关函数;
-信号
的的预测误差功率;
-
阶码书重构矢量的预测误差功率。
Itakura-Saito失真测度是针对线性预测模型的,用最大似然准则导出,适用于LPC参数描述的语音信号情况。
还推出一下两种线性预测的失真测度,它们比上述这种具有更好的性能。
对数似然比失真测度。定义为:
模型失真测度。定义为:
这两种失真测度也有局限性,仅比较了两矢量的功率谱,没有考虑能量信息。
识别失真测度
矢量量化用于语音识别时,对失真测度还应该有其他考虑。
例如:用LPC参数的对数似然比失真测度两矢量的功率谱时,应该考虑能量的影响。研究表明,频谱与能量均携带语音信息;如果仅仅依靠功率谱作为失真比较的参数,则识别的性能将不够理想。为此,引入识别失真测度,定义为:
其中,
-输入信号矢量和码书重构矢量的归一化能量;
-加权因子;
-专用函数,
的作用:
(1) 当能量接近时(
),忽略能量差异引起的影响;
(2) 当能量相差比较大时,进行线性加权;
(3) 当能量差超过门限
时,则为某固定值。
要经过实验来进行确定。
5、 矢量量化器的最佳码本设计?
选择了合适的失真测度后,就可进行矢量量化器的最佳设计,所谓最佳设计,就是:
(1) 从大量的信号样本中训练出优化的码书;
(2) 从实际效果出发寻找好的失真测度;
(3) 用最少的搜索和计算失真的运算量实现最大的平均信噪比。
数学表述:
-训练用特征矢量
与训练出的码书的码字
之间的畸变(失真测度);
则最佳码书的设计是在一定的条件下,使最小。这里
表示对X的全体构成的集合以及码本的所有码字Y进行统计平均。
重要的问题是如何划分量化区间和确定量化矢量。因此应该遵循以下两条原则:
(1) 最近邻准则(Nearest Neighbor Rule,NNR):-最佳划分
对给定的码书
(M为码书尺寸),找出所有码书矢量的最佳区域边界
,以使平均失真最小,即寻找最佳划分。这一过程类似于标量量化中量化区间的划分。由于码书已经给定,因此可用NNR原则。也就是:对于任意一个矢量
,如果它与矢量
的失真小于它和其他码字之间的失真,则
应属于某区域边界
,
就是最佳划分,下图给出了k=2的最佳划分示意图。
该条件实际上叙述了最佳矢量量化器的设计。因为这表明输入信号矢量可以最佳地用矢量空间中某区域边界
来表示。由于给定码书共有M个码字,所以可以把矢量空间分为M个区间
。这些
称为Voronoi胞腔。
%根据
选择相应的码字
,遵从NNR,即满足:
%
(2) 质心原则:-最佳码书
对于给定的区域边界
,找出最佳码书矢量,使码书的平均失真最小,也就是得到码书。这里,使平均失真最小,码字
必须为给定的
的质心。质心就是该区域中间的几何中心。这些质心就组成了最佳码书的码字。
%Euclid测度时,
应等于所有矢量的质心,即:
式中,
-所有选择码字(即归属于
所表示的区域)的输入矢量
的集合;
-集合
中矢量的个数,
。%
根据上述两条原则可设计出计算码书的递推算法。
LBG算法
选择了失真测度后,就可进行矢量量化器的最佳设计。所谓最佳设计,就是使失真最小。由于码书就是在这个设计过程中产生的,所以也就是码书的设计过程。
根据:
· Voronoi条件:
· 质心条件:
可以构造一种码书设计的递推算法。这种算法是标量量化器中Lloyd算法的多维推广,由Linde,Buzo,Gray推广到多维空间,称为LBG算法。LBG算法:理论严密、应用简便以及较好的设计效果,得到广泛应用,是各种改进算法的基础。
LBG算法步骤:
(1) 设定码书和迭代训练参数:
-全部输入的训练矢量
的集合;
-码书的容量;
-最大迭代次数;
-两个矢量的最小畸变阈值。
(2) 初始化:
个码字初值
;
畸变初值
;
迭代次数初值
。
(3) 将
分成
个子集
:
由最近邻准则,对于每个
,若下式成立,判定
。
(4) 计算总畸变:
(5) 计算畸变改进量
的相对值:
(6) 更新码书的码字
:
(7) 若满足
,则转入(9)执行,否则,转入(8)执行。
(8) 若满足
,则转入(9)执行;
否则,令
,转入(3)执行。
(9) 迭代终止:输出优化的最佳码书。
初始码本的生成
初始码书的设计对最佳码书的设计有很大影响。
构造初始码书:随机码书法、乘积码书法、分裂码书法等。
· 随机选取法:
个初始码字从训练序列中随机选取。
· 优点:简单、无空胞腔问题。
· 缺点:可能选到一些非典型的矢量作为码字(无代表性),可能导致收敛速度慢或不收敛,或码书不是最优。
· 乘积码书:用若干个低维码书做乘积,得高维码书。
· 用两个低维码书作乘积来获得。
维、
容量的码书乘以
维、
容量的码书,得
维、
容量的码书。
· 例如:设计8维、256容量的初始码书,由2个小码书相乘得到。小码书的维数:2和6(2+6=8),容量为16。
· 分裂法:先取较小码书,用LBG算法优化;再对优化结果进行分裂,得较大、较优码书。重复优化、分裂、再优化过程。
· 分裂法步骤:
(1) 求出
中全体训练矢量
的质心作为初始码书的码字
;
(2) 将
分裂为初始码书
,
,再用LBG算法得到新码书
,
;
(3) 重复(1)、(2)。循环r次后,最终的码书容量
。
· 矢量分裂方法:有多种。
(1) 选较小的阈值矢量
,则
可分裂为
;
(2) 选择实数
,则
可分裂为:
(3) 对某个
的质心,在
中找与
的畸变为最大的矢量
,再在
中找与
的畸变为最大的矢量
,则
分裂为
,
。
空胞腔的处理:迭代中有时出现空胞腔(胞腔是空集)
· 处置方法:去掉空胞腔,然后把最大胞腔(含有最多训练序列矢量的胞腔)分裂为两个胞腔。
设计好VQ量化器和码书,VQ量化系统基本完成。
VQ量化解码器:利用接收的码字编号,用查表法译码。很简单。
6、 矢量量化技术的优化设计?
在设计矢量量化系统时,有一些技术问题需要解决。比如,根据仙农理论,用长的矢量可以获得最佳性能。但当码书越来越大时,除了要求大的存储器外,搜索时间也非常长。如果从头至尾检查每个码矢量
,对于大的码书搜索过程就很慢,因而很难实时完成。比如,若码书中有M个码字,码字与输入矢量的维数为k,那么完成一次全搜索的计算代价是:乘法运算kM次,加法运算(2k-1)M,比较运算(M-1)次。当k和M都很大时,所需运算量非常大,因此也就产生了是否要对码书中所有码字进行失真的比较和计算的问题,此外,还应考虑:用多级的矢量量化的方法是否可以减少存储量和运算量?是否还可以用具有反馈的矢量量化系统来实现更好的性能?所有这些都属于矢量量化系统降低复杂度的设计问题。
人们研究了多种降低复杂度的设计方法,大致分为两类:一类是无记忆的矢量量化器;另一类是有记忆的矢量量化器。
无记忆的矢量量化系统
1、树形搜索的矢量量化系统
这种方法的优点是可以减少运算量,缺点是存储容量增大且性能会有所降低。树形搜索又可分为二叉树和多叉树两种。下面以二叉树为例进行说明。
这种方法中,码字不像普通VQ码本中的码字那样随意放置,而是排列在一棵树的节点上。下图为码书尺寸为
的二叉树,它的码书中共包含14个码字。输入信号矢量为
,先与
和
比较,计算出失真
和
。如果后者较小,则走下面支路,同时送“1”输出。类似地,如果最后到达
,则送出的输出角标就是101.这个过程也就是矢量量化的过程。
图中各层次的矢量,可以用下面的方法求得。例如,已知码书的8个码字,则按最近邻的原则配对,得
,
,
,
。求各列的质心,得到
。再求上面这两对的质心,就可得到
了。
由这个例子可以对全搜索和二叉树搜索进行对比。在二叉树法中,每层都需计算失真两次,比较一次。在
的上例中,需做
次失真和
次比较。所以运算量从全搜索的M次失真和M次比较,减少到二叉树的
次失真计算和
次比较。但对存储量来讲,全搜索只需要存储M个码字,而二叉树时则要增至2(M-1)个码字。下表给出了二叉树搜索与全搜索的比较。
失真运算量
比较运算量
存储容量
最佳程度
全搜索
M=8
M=8
M=8
全体
二叉树
2log2M=6
2log2M=3
2(M-1)=14
局部
相对于全搜索来说,二叉树搜索的主要优点是计算量有很大减少而性能下降并不多,但是二叉树搜索矢量量化的存储量没有减少,反而增加一倍。由于树形搜索并不是从全部码本矢量中找到最小失真的输出矢量,所以这种量化显然不是最佳的。
2、多级矢量量化系统
多级矢量量化由若干级矢量量化级联而成,因而又称为级联矢量量化器。多级矢量量化器不仅可减少计算量,而且还能够减少存储量。多级矢量量化器由若干个小码书构成。两级矢量量化器是多级矢量量化器中最简单的一种,因其相对简单,性能又接近于全搜索VQ,因此,在应用场合中使用的最多。以两级矢量量化为例来说明多级矢量量化系统。下图(a)为两级矢量量化的过程,而图(b)是设计两级码书的框图。
(a) 两级矢量量化器的量化过程
(b)两级码本的设计训练过程
工作原理:先采用一个小的码书,其长度为
,用它来大致逼近输入信号矢量;然后再用第二个小码书,其长度为
,用它来对第一次的误差进行编码;输入矢量与第一级匹配,得到其地址编号
,然后在第二级码书中搜索与这个误差矢量最佳匹配的矢量,得到其地址编号
,将
同时发送出去,在接收端根据
来恢复原来的矢量。
虽然,两级矢量量化只具有
尺寸的码书,但却相当于含有
尺寸的一级矢量量化的码书的效果。因此,与一级矢量量化系统相比,失真和比较的运算量即码书的存储容量,都分别从
减少到
。这种方法的缺点是级数增多时,性能的改进迅速趋于饱和。
有记忆的矢量量化系统
无记忆的矢量量化,因为在量化每一个矢量时,都不依赖于此矢量前面的任何矢量。也就是说,每一个输入矢量都是独立进行量化的。有记忆的矢量量化则不同,它在量化每一个输入矢量时,不仅与此矢量本身有关,而且也与其前面的矢量有关。也就是在量化时,它通过“记忆”,利用了过去输入矢量的信息,利用了矢量与矢量之间的相关性,从而提高了矢量量化的性能。尤其在语音编码时,引入记忆后,还可利用音长、短时的非平稳统计特性,清音、浊音和无声区域的特点,短时频谱特性等信息。这些特性的利用,意味着在相同维数条件下大大提高了矢量量化系统的性能。
有记忆的矢量量化通常可分为反馈矢量量化和自适应矢量量化两类。反馈矢量量化主要有预测矢量量化PVQ(Predictive VQ)和有限状态矢量量化FSVQ(Finite-State VQ)等。而自适应矢量量化(Adaptive VQ)是采用多个码书,量化时根据输入矢量的不同特征采用不同的码书。编码器要传送一些速率很低的边信息(Side Information),通知译码器使用哪个码书。反馈矢量量化和自适应矢量量化通常都结合起来使用,尤其是自适应矢量量化经常被用于各种矢量量化系统中,很少单独使用。下面讨论的自适应预测矢量量化(APVQ)就是典型的例子。
APVQ实际上是PVQ和AVQ的结合。从语音波形编码的观点来说,它就是ADPCM的矢量推广。下图为APVQ系统框图。
输入端,将输入语音信号序列分帧,构成矢量序列,对某一输入矢量
,用线性预测方法产生一个预测矢量
,相减之后得到误差矢量
,将误差矢量
进行矢量量化,得到
的量化矢量
,并将该重构误差码字的角标送给信道。另一方面,还采用了自适应技术,这里是指根据语音流各段不同的统计特性,将输入矢量划分为不同类型,而后确定使用多个码书和预测器中的哪一对,由帧分类器输出边带信息,决定用哪一个码书进行误差矢量的量化和用哪一个预测器来得到预测矢量,同时这个信息也由信道送到接收端。在译码端,根据收到的边带信息,确定使用接收端的哪一对码书与预测器。再由接收的误差码字角标在码书中找到量化矢量
。
由于APVQ使用了自适应和线性预测技术,所以既去掉了矢量与矢量之间的编码冗余度,又利用了语音信号的局部特性。尽管复杂度比普通的矢量量化系统增加了。但实践表明,用于语音编码时,其信噪比可比一般全搜索矢量量化器提高7dB以上。所以这是一种比较优良的数据压缩
。
7、 模糊矢量量化方法?
模糊矢量量化方法是在矢量量化中引入模糊集思想,利用模糊聚类算法代替传统的K均值算法设计矢量量化器的一种方法。
模糊c均值聚类算法,引入隶属度函数,在同样码本大小情况下,可以减少码本的量化误差。
首先模糊c均值聚类算法的目标函数如下式所示:
其中,
为训练矢量序列;
为各聚类中心组成的码本。
为一个模糊c均值隶属度函数集。
是第k个聚类中心即第k个码字的隶属度函数,满足
,
;
代表模糊度;
表示距离。
根据目标函数的模糊c均值聚类算式如下:
模糊矢量量化码本估计步骤如下:
(1) 设定初始码本和每个码字的初始隶属度函数
,为了方便可以令每个码字的初始隶属度函数为相等的值;
(2) 对于训练观察矢量序列
,利用上式计算新的聚类中心
及新的隶属度函数
;
(3) 利用目标函数,判断迭代计算是否收敛。如果前后差值小于阈值,则迭代结束,由新的聚类中心和隶属度函数集组成重估后的新码本;否则继续进行下一轮迭代计算。
模糊矢量量化步骤:
(1) 对待进行矢量量化的输入矢量
,模糊矢量量化不是通过矢量量化把输入矢量
量化成为某个码字
,而是把输入矢量
量化成由隶属度函数组成的矢量
,它表示
分别属于码字
EMBED Equation.3 的程度是多少,其中
由下式给定:
(2) 这时
的量化误差由下式给定:
(3)
的重构矢量由下式给定:
可见
的重构矢量由码字
EMBED Equation.3 的线性组合组成,所以相当于增加了码本的尺寸。
习题:
1. 什么叫矢量量化?在语音信号处理中有什么用途?什么叫码本、码本尺寸和码字?
2. 什么叫失真测度,理想的失真测度应具有什么特性?常用的有哪几种失真测度,如何定义?各有什么用途?
3. 什么是最佳矢量量化器码本设计原则?什么是最近邻原则?
4. 如何设计最佳矢量量化器?什么是LBG算法?如何用程序实现?怎样设计初始码本,并用于训练样本?
5. 矢量量化减少量化误差的思路有哪些?有哪些具体实现方法?
6. 模糊矢量量化的思路是什么?什么是模糊c均值聚类算法?
7. 模糊矢量量化器的训练步骤一般如何进行?
13
_1395405064.unknown
_1395406937.unknown
_1395409218.unknown
_1395484609.unknown
_1395485403.unknown
_1395487267.unknown
_1395487580.unknown
_1395488130.unknown
_1395488207.unknown
_1395506370.unknown
_1395506375.unknown
_1395506496.unknown
_1395488487.unknown
_1395488971.unknown
_1395488185.unknown
_1395488197.unknown
_1395488151.unknown
_1395487941.unknown
_1395488011.unknown
_1395487609.unknown
_1395487457.unknown
_1395487537.unknown
_1395487339.unknown
_1395487025.unknown
_1395487066.unknown
_1395487131.unknown
_1395487039.unknown
_1395485476.unknown
_1395486907.unknown
_1395485425.unknown
_1395484927.unknown
_1395485372.unknown
_1395484797.unknown
_1395484892.unknown
_1395484771.unknown
_1395410466.unknown
_1395411011.unknown
_1395460147.unknown
_1395461418.unknown
_1395461598.unknown
_1395461662.unknown
_1395462029.unknown
_1395462356.unknown
_1395462472.unknown
_1395462491.unknown
_1395462652.unknown
_1395462405.unknown
_1395462186.unknown
_1395462324.unknown
_1395462329.unknown
_1395462212.unknown
_1395462147.unknown
_1395462174.unknown
_1395461914.unknown
_1395461969.unknown
_1395461637.unknown
_1395461506.unknown
_1395461544.unknown
_1395461464.unknown
_1395460174.unknown
_1395461400.unknown
_1395460162.unknown
_1395411146.unknown
_1395460090.unknown
_1395460116.unknown
_1395460071.unknown
_1395411066.unknown
_1395411120.unknown
_1395411037.unknown
_1395410911.unknown
_1395410981.unknown
_1395410989.unknown
_1395410949.unknown
_1395410533.unknown
_1395410882.unknown
_1395410515.unknown
_1395410234.unknown
_1395410319.unknown
_1395410427.unknown
_1395410457.unknown
_1395410364.unknown
_1395410282.unknown
_1395410290.unknown
_1395410272.unknown
_1395409812.unknown
_1395410077.unknown
_1395410122.unknown
_1395409834.unknown
_1395409783.unknown
_1395409792.unknown
_1395409758.unknown
_1395408163.unknown
_1395408359.unknown
_1395408497.unknown
_1395408526.unknown
_1395408534.unknown
_1395408511.unknown
_1395408467.unknown
_1395408483.unknown
_1395408454.unknown
_1395408430.unknown
_1395408446.unknown
_1395408282.unknown
_1395408306.unknown
_1395408350.unknown
_1395408297.unknown
_1395408212.unknown
_1395408246.unknown
_1395408205.unknown
_1395407612.unknown
_1395408077.unknown
_1395408122.unknown
_1395408148.unknown
_1395408089.unknown
_1395407640.unknown
_1395408065.unknown
_1395407620.unknown
_1395407566.unknown
_1395407587.unknown
_1395407598.unknown
_1395407574.unknown
_1395407010.unknown
_1395407341.unknown
_1395406987.unknown
_1395406313.unknown
_1395406546.unknown
_1395406760.unknown
_1395406851.unknown
_1395406873.unknown
_1395406787.unknown
_1395406597.unknown
_1395406662.unknown
_1395406579.unknown
_1395406481.unknown
_1395406497.unknown
_1395406515.unknown
_1395406490.unknown
_1395406397.unknown
_1395406447.unknown
_1395406384.unknown
_1395405323.unknown
_1395406260.unknown
_1395406290.unknown
_1395406300.unknown
_1395406281.unknown
_1395405343.unknown
_1395405870.unknown
_1395405331.unknown
_1395405271.unknown
_1395405291.unknown
_1395405308.unknown
_1395405090.unknown
_1395405140.unknown
_1395405226.unknown
_1395405074.unknown
_1395389666.unknown
_1395403381.unknown
_1395403877.unknown
_1395404370.unknown
_1395404639.unknown
_1395404862.unknown
_1395404463.unknown
_1395404336.unknown
_1395404350.unknown
_1395404308.unknown
_1395403498.unknown
_1395403556.unknown
_1395403568.unknown
_1395403521.unknown
_1395403399.unknown
_1395403407.unknown
_1395390654.unknown
_1395390958.unknown
_1395391004.unknown
_1395403365.unknown
_1395403373.unknown
_1395390980.unknown
_1395390916.unknown
_1395390939.unknown
_1395390908.unknown
_1395390005.unknown
_1395390155.unknown
_1395390177.unknown
_1395390063.unknown
_1395389771.unknown
_1395389832.unknown
_1395389742.unknown
_1395387008.unknown
_1395389182.unknown
_1395389582.unknown
_1395389606.unknown
_1395389611.unknown
_1395389592.unknown
_1395389556.unknown
_1395389570.unknown
_1395389546.unknown
_1395387139.unknown
_1395387248.unknown
_1395389168.unknown
_1395387220.unknown
_1395387102.unknown
_1395387111.unknown
_1395387077.unknown
_1395387089.unknown
_1395385610.unknown
_1395385772.unknown
_1395386682.unknown
_1395386711.unknown
_1395385856.unknown
_1395385703.unknown
_1395385733.unknown
_1395385646.unknown
_1395382939.unknown
_1395383031.unknown
_1395383052.unknown
_1395382957.unknown
_1395382657.unknown
_1395382833.unknown
_1097304925.vsd
_1395382622.unknown
_1094652769.vsd
_1097303429.vsd