矢量量化代码本产生方法

文档序号:7575530阅读:280来源:国知局
专利名称:矢量量化代码本产生方法
技术领域
本发明涉及矢量量化数据压缩,特别涉及一种用于矢量量化数据压缩的代码本构成方法,以及所构成的代码本。
当存储或发送大量数字数据时,通常需要能够把该数据有效地压缩到最大程度以减少存储空间或传输时间。当要处理数字视频图像时,这通常涉及必须以高速度处理的极大量的数据,则对压缩的需要就特别强烈(特别对于象可视电话通信这样的实时应用中)。
一种用于压缩数字视频的技术称为“矢量量化”,其中使用了参考插入块(referance patches)(例如,从一个或多个“库”或“原型”图像中所取的相对较小的部分)的代码本。在该技术的最简单形式中,每个要被压缩的图像被分区为多个图像块,并通过按像素接像素地与为每个图像块而从代码本中选择的参考块相匹配(即,近似比较)。存储用于每个所选择的参考块的代码本索引,以及该图像块的相应位置矢量(即,它们在原始图像中的位置),以提供该图像的压缩表示。如果该代码本的副本可用的话,则可以通常利用所存储的代码本索引来构成该原始图像的近似图像以恢复所需的一组参考块,并利用分别存储的图像块位置矢量把这些参考块插入到一个图像帧中。所获得的压缩比是该图像被分区成的图像块的尺寸的一个函数,较大的图像块则可以获得更大的压缩。
简单的矢量量化技术要求为每个图像块对代码本进行穷举搜索,这是一个计算量极大的过程,其中采用大的代码本来使压缩图像的质量尽管可能的好,并且产生更大的图像块以尽管可能的提供压缩比,这需要大量的像素比较操作。一种用于减少这种搜索过程的技术被称为“分级矢量量化”(HVQ)。这种技术在1995年IEEE(电气和电子工程师协会)出版的《数据压缩处理会议》中第3-12页由N Chadda、M Vishwanath、以及P A Chou所著的“透视加权块变换的分级矢量量化”中有具体描述。
为了说明HVQ,考虑要压缩黑白视频序列的各个数字化图像帧的情况,其中每个帧由一个分别具有字节整数形式的量度值的像素的阵列所构成。假设该帧被分为由垂直相邻的像素对所形成的图像块(这样每对像素由一对亮度值或2维矢量[i,j]所表示),并提供一个包含多个参考块的代码本B0,每个参考块由一对水平相邻的像素所构成,并且在该代码本中的参考块的数目(例如,256)远小于可能的像素对图像块的总数。提供一个索引表T0把该2维矢量的每个可能值映射到相关的代码本地址中,使得T0[i,j]把在B0中的最接近的一条(即,B0[T0[i,j]])对应于矢量[i,j]。在该代码本中查找最接近于一个给定的输入矢量的条目可以简单地通过查找表格T0而确定。
现在考虑这种情况,即要被压缩的图像帧被分为2×2像素的图像块、使得每个块由一个亮度值的4维矢量[i,j,k,l]所表示。这些4维矢量中的每个被分为两个2维矢量,并且可以利用表格T0映射到另外的2维矢量[T0[i,j],T0[k,l]]。假设第二代码本B1包含多个对应于一组4像素的图像块的4维矢量[p,q,r,s](其中该图像块的数目远小于可能的4位图像块的总数)。一个第二级的索引表T1这样构成,使得B1[T1[T0[i,j],T0[k,l]]]是在B1中最接近于[B0[T0[i,j]],B0[T0[k,l]]]的一项。在代码本B1中查找最接近于某个给定输入矢量的一项可以通过在表格T0中查找像素对[i,j]和[k,l]来实现,然后把所得的2维矢量T0[i,j]、T0[k,l]应用到表格T1中。这一过程在图1中示出。
在非HVQ过程中,需要提供一个包含4维矢量的代码本,并且对每个要被压缩图像中的4维矢量(或图像块),把在该矢量中的每一项与在代码本中的每个矢量的对应项相比较。当n是矢量中的元素的数目,并且m是在该代码本中条目的数目,则这种穷举搜索过程需要n×m次比较操作以查找一个匹配的矢量。相反,该HVQ过程需要n-1次查找步骤以找出一个匹配矢量。假设比较和查找的计算量相似,可以看出对于合理的数值m来说,n×m比n-1大得多,这样HVQ查找过程大约比穷举搜索快m倍。
对于每个加在HVQ过程中的更高的索引表级别(T2,T3等等),压缩比进一步增大。请注意,由于中间过程的代码本对执行HVQ过程来说并不重要,在实践中只有最后级别的代码本B需要保留。
分级矢量量化可以被用于压缩彩色图像,这通过把彩色图像中的三个成份分出来(例如,红、蓝、绿)并把它们分别压缩,然后把三组代码本参考块合并产生一个解压缩图像。
显然为了有效的使用HVQ,需要构造一系列表格T0,1...m以及代码本B0,1...m,其中m是对在用于压缩的最大图像块中的像素数目取以2为底的对数。常规的HVQ方法首先产生代码本,例如,通过从多个原型图像帧中提取参考块,然后从该代码本中产生表格。
由于在最后级别m中的图像块是级别m-1中的图像块尺寸的两倍,并且通过在级别m中对代码本内的图像块进行穷举搜索以识别出最相近的在级别m中的图像块。这样,如果级别m-1图像块7和13放置在一起时最接近级别m图像块100,则Tm[7,13]将被设为100。这一过程在各级别中向后传递以产生在每个级别中的代码本和索引表。
在此方法中,从原型图像帧中选取的级别m代码本图像块的过程基本上任意的。其结果是这些图像块中的特定一个可能不会或很少被选择作为对来自要被压缩的图像的一个图像块的匹配图像,从而造成代码本的效率低下。
本发明的第一个目的是克服或者至少减轻常规矢量量化代码本的缺点。
本发明的第二个目的是提供一种产生矢量量化代码本的方法,其中当压缩统计属性反映被用于构成该代码本的训练数据(training data)的统计属性的数据时,该代码本中的条目的使用频率基本相同。
根据本发明的第一个方面,在此提供一种从至少一个由一组数据值所构成的原型数据阵列构成一个矢量量化代码本的方法,该方法包括1)从该数据阵列中选择n维采样矢量的第一阶,每个采样矢量包括一组在阵列中相邻的数据值并且每个采样矢量确定在一个有限n维空间中的一个点;2)把所述空间分为预定数目的区域,每个区域基本包括相同数目的采样矢量;3)对每个所述的区域分配一个唯一的索引,其中该索引被选择来对在步骤2)中执行的分级过程进行编码;
4)对所述空间内的基本上所有可能点确定这些点所在的区域,以及构成把基本上所有点映射到各区域索引的一个查找索引表;5)从该数据阵列中选择n维采样矢量的第二阶,每个采样矢量包括一组相邻的数据值,并且用通过查找在步骤4)中所产生的索引表而获得的相关的区域矢量来替代每个采样矢量,以创建另一个数据阵列或多个阵列;6)迭代执行步骤1)至5)以获得进一步的数据阵列以及任何后续产生的数据阵列,其中每个在最后一次迭代中产生的索引是从在原型数据阵列中的一组nm维采样矢量中推导出来的,其中m是迭代执行的次数;7)对每个在最后一次迭代中产生的索引创建一个表示在原型数据阵列中的相关一组nm维采样矢量的nm维参考矢量;以及8)构成包含该参考矢量的代码本,其中每个在最后一次迭代中产生的索引指向对应参考矢量在代码本中的位置。
所采用的方法是查找在一个n维空间中的一小组点的集合,这些点代表一个大得多的总体。为了有效地编码,所有这些代表点的使用频率应当基本相同。假设,我们具有关于要被表达的总体的某些信息,例如在n维空间中在规则网格上的概率密度函数的编码。该任务可以被分两个部分a)把该n维空间分为子空间,使得在整个子空间的概率密度函数的积分基本相等;以及b)查找每个子空间的“重心”,并用其表示该空间的总体。当对用于图像压缩的高维空间(大于等于16维)进行操作时,在计算上会发生困难。在本发明之后的原理是步骤a)如果对低维空间(一般是2维)进行操作会比较容易,这意味着如果用某种方式把n维的问题分割为一系列在低维中的问题,则整个任务将变得容易。如果作为对所述2维空间执行分区的结果,我们能够执行从原始n维空间2维子流形(sub-manifold)到作为度量空间的1维代码空间投影,则该分割方法成为可能。这样通过减少子流形的重复成对应用,我们可以把16维度量空间变换为8维代码空间。重复应用子流形减少处理过程,可以使得16空间映射到1维代码空间。
最好,在步骤1)中,被选择矢量基本上均匀地分布在所述数据阵列中。最好,每个数据值至少包含一个矢量。
最好,步骤5)中包括将该数据阵列再分割为所述采样矢量的第二阶,使得每个条目包含至少一个矢量。但是,另外所选择矢量可以只包含该数据阵列的一部分。该部分与这些区域一致,采样矢量的第一阶基本被选择。
在本发明的一个实施例中,步骤2)包括(a)对所述空间的每一维确定矢量分布的平均值和偏差;(b)确定具有最大偏差的矢量的维度;以及(c)把该空间分为两个区域,第一区域包含具有用于所选维度超过该平均值的数值的矢量,并且第二区域包含不具有所选维度超过该平均值的数值的矢量。对于每个区域,重复迭代执行步骤(a)-(c),直到获得所需数目的区域。该数目由查找索引表的所需尺寸所确定。
在本发明的另一个实施例中,步骤2)包括确定矢量分布的主要部分(或回归线),然后确定该主要分量的重心。然后通过垂直于该主要分量并穿过其重心的直线把该空间一分为二,产生两个区域或子空间。通过连续递归操作对每个区域继续分割直到获得理想数目的区域。
上述两个分割操作涉及重复应用相同的分割步骤,这不是本发明本质特征。在另一个实施例中两个不同的分割步骤可以每个分割操作中交替应用。
由分割操作所产生的区域的数目一般小于1000-4000,例如128或256。对于更高的区域数目,该计算的复杂度可能难以控制。
最好,对于步骤1)-4)的每次重复,该区域所创建的序列被用于确定索引的分配。特别地(对于二进制索引),第一分割确定该索引的最高有效位,第二分割确定下一个最高有效位,等等。对于包含超过该平均值的矢量的区域,适当位被设为1,对于包含低于该平值的矢量的区域,该适当位被设为0。可以看出通过把1替换为0并且把0替换为1可以获得类似的结果。
最好,在步骤3),分配该索引的结果是该索引保留对于构成每个区域的矢量的数据值的平均值的区域的次序。
本发明特别应用于产生用于压缩数字图像的代码本,该数字图像包括像素阵列,每个像素由一个亮度值确定。在第一级的矢量表示在原型图像中的相邻像素的块,而在更高级的矢量对应于在收缩图像中的块。在每一级中,该区域被分配给保留区域的主观次序的索引。例如,包含相对暗的色调的区域被分配相对低的索引,包含相对量的色调的区域被分配相对高的索引。
最好,在上述方法的步骤1)中,n=2。最好,在第一次迭代中,在原始数据阵列中的每对水平相邻数据值被选择以提供用于在步骤2)中的矢量,使得基本所有数据值出现在两个数据值对中。在步骤5)中,该数据阵列或每个数据阵列被分为水平相邻的数据值对,使得每对与相邻对连接。在第二次迭代中,在步骤1)中,每对垂直相邻的数据值被提取,而在步骤5)中(如果该过程包括3次或更多次迭代),该进一步的数据阵列或者每个进一步的数据阵列被再分割为垂直相邻的数据值对。对每个相继的迭代,水平和垂直相邻的数据值对被交替选择。
而第一和第二阶的采样矢量(最好所有阶的采样矢量)具有相同的方向,这并非本质的。例如,在每个阶中,水平和垂直块可以相混合。
上述方法能够产生用于每个矢量量化过程的最佳代码本。但是,假设对于HVQ所必须的每个级别的索引查找表是该代码本产生方法的内在产物,它特别适用于产生用于分级矢量量化(HVQ)过程的代码本。
在上述方法的特定实施例中,最好在每次迭代结束时另外执行步骤7)和8),以在每个级别产生代码本。这对于要用可变大小参考矢量压缩图像的情况可能是必须的。
根据本发明的第二个方面,在此提供一种从至少一个有一组数据数值组成的原始数据阵列构成矢量量化代码本的方法,该方法包括1)从该数据阵列选择n维采样矢量的第一阶,每个采样矢量包括一组在该阵列中相邻的数据数值,并且每个采样矢量在有限n维空间中确定一个点;2)把包含所述采样矢量的所述n维空间分区为基本上包含相同数目的矢量的预定数目的区域;3)对每个所述区域分配一个唯一的索引,其中该索引被选择以对在步骤2)执行的分区过程代码化;4)对在所述空间中的基本上所有可能点确定这些点所处于的区域,并且构成一个把基本上所有可能点映射到各区域索引的查找索引表;5)对每个区域确定代表在该组中的采样矢量的参考矢量;以及6)构成包含该参考矢量的代码本,其中每个索引指向在该代码本中相应参考矢量的位置。
根据本发明的第三个方面,在此提供一种构成用于分级矢量化过程中的一组索引表的方法,该表格从至少一个由一组数据数值组成的原始数据阵列所构成,该方法包括1)从该数据阵列选择n维采样矢量的第一阶,每个采样矢量包括一组在该阵列中相邻的数据值,并且每个采样矢量在有限n维空间中确定一个点;2)把包含所述采样矢量的所述n维空间分区为基本上包含相同数目的矢量的预定数目的区域;3)对每个所述区域分配一个唯一的索引,其中该索引被选择以对在步骤2)执行的分区过程代码化;4)对在所述空间中的基本上所有可能点确定这些点所处于的区域,并且构成一个把基本上所有可能点映射到各区域索引的找查索引表;5)从该数据阵列选择n维采样矢量的第二阶,每个采样矢量包括一组相邻的数据数值,并且用通过查找在步骤4)中产生的索引表而获得的相关区域索引替代每个采样矢量,以创建进一步的数据阵列;以及6)对进一步的数据阵列和任何后续产生的数据阵列迭代重复执行步骤1)-5),其中每个在最后迭代中产生的索引是从一组在该原始数据阵列中的nm维采样矢量中推导而得,其中m是迭代执行的次数。
上述本发明第三个方面的方法能够产生一组索引表,它用于需要对数据编码的情况,但不适用能够从该编码数据重构原始数据的情况,即不需要代码本的情况。
上文中所用的术语“原型”包括所捕获的实际图像,例如用照像机拍摄。但是该术语还包括人工产生的图像,例如预先存在的代码本。
为了更好地理解本发明,并且为了示出本发明如何生效,下面将参照附图通过实例进行说明,其中


如下图1简要示出两层分级矢量量化过程。
图2示出用于压缩的2维数据图像帧;图3示出从图2中的图像帧获得的第一级频率图;图4示出用图3的频率图从图2的图像帧中获得的第一级收缩图像帧;
图5示出从图4的图像中获得的第2级频率图;以及图6示出用图5的频率图从图2的图像帧中获得的第二级收缩图像。
在图2中示出由320×200像素所构成的2维黑白数字图像。每个像素的亮度级或强度定义在0-256的范围内(即,由8位二进制整数所表示)。假设,要用分级矢量量化过程把图2的图像压缩4的倍数。该过程在图1中示出,并已经在上文中描述。该图像首先被分割为相等的2×2像素图像块。每个图像块被分割为上部或下部像素对。交替地对每个图像块把上部或下部像素对平行地馈送到相同的第一级查找表T0,以推出用于每对的第一级索引。然后所获得的索引对被馈送到第二级查找表T1,以推出指向在一代码本中的参考块的第二级索引。通过只存储在每个图像块中的图像的一部分和各个索引以创建该图像的压缩表示。为了对该数据解压缩,只需要访问该代码本,或者该代码本的副本,利用该索引并且对所得的参考块正确排序。
它来自于信息理论中的一个基本概念,即,最有效的代码本是只包含有很可能在被用相同频率压缩的图像中出现的图像块的代码本。相反,包含在压缩图像中从未用到或只是很少用到的图像块的代码本是极其没有效率的。如上文所述,代码本通常用一组作为被压缩的典型图像的测试或原型图像所产生。因此,如果在该代码本中的图像块以基本上相同的频率在测试图像中出现,则很可能这些图像块也以相同频率在要被压缩的图像中出现。
在构成适用于压缩图2的图像帧的2×2像素块的代码本的第一步骤是从一数字原型图像(在此种情况中图2的图像帧可以被认为是一幅原型图像)提取每对水平相邻的像素,使得每个除了在图像帧的边缘的像素之外的每个像素以两个不同的像素对出现。如上文所述,该被选择的原型图像具有与要被压缩的图像相似的属性。然后,每对像素的左边和右边像素的亮度在2维空间中被相对地标示,以获得示出该像素对的亮度分布的第一级频率图(或者出现率图)。对于图2的图像的映象在图3中示出,为了便于说明,亮区对应于高密度的相似像素对,而暗区对应于低密度的相似像素对。在典型图像中,相邻像素对趋向于具有相似的亮度(除了跨越锐边的像素对之外),结果高亮度的频带从频率图的左下角到右上角横穿过该频率图的对角线。
然后对该图的两条轴确定亮度分布。对于x轴的分布沿着x轴示出。从该分布可以确定平均值,以及相对于每条轴的分布的偏差。频率图被平行于具有最小偏差并且穿过另一条轴的平均亮度的分割线(在此种情况下该线由A表示)分为两个区域以产生两个新的子图。显然这些子图基本上包含相同数目的像素对。通过分别取每个新的子图,并且通过对图3中所示的一个子图的y轴示出其亮度分布,该过程被重复执行以产生分别包含基本相同数目的像素对的进一步的频率子图(通过沿着适当的分割线B,C和D进行分割)。该过程重复进行直到子图或组的数目等于在第一级代码本中的条目的数目,例如256个。
随着子图产生过程的进行,索引或标识符被动态分配给该子图,以对该分区过程代码化。对于要产生256个子图的情况,需要8位二进制索引。在该过程的第一分割决定该索引的最高有效位,第二分割决定下一个最高有效位,等等。另外,当发生水平分割时,例如通过分割线A,用于上部子图的相关位被设为1,并且用于下部子图的相关位被设为0。当发生垂直分割时,例如通过分割线D,用于右侧子图的相关位被设为1,而用于左侧子图的相关位被设为0。结果得到一组趋于保留该图的主要亮度的索引。例如,在图3的右上角的子图具有最高的索引,对应于高亮度,而在左下角的子图具有最低的索引,对应于低亮度。
每个子图或组包括该频率图的一个区域,并且在整个空间中的每个点落入一个子图中。产生包含在该空间中的每个可能点的第一级查找索引表T0,在该空间中的每个点被映射到用于该点所在的子图的索引。例如,像素亮度的范围从0到255,该索引表T0将包含256×256个条目。
对于每个子图,通过获得构成该子图的所有像素对的左右像素的平均亮度值产生2×1像素参考块。这些参考块然后被作为第一级代码本B0而存储,在参考块的代码本中所存储的位置由相关索引所指向。
在代码本产生过程的下一个步骤是把该测试图像再分割为水平相邻的像素对,并用相关的第一级索引代替这些像素对中的每一个。结果是图像从左边向右边收缩,如图4中所示。需要注意的重要一点是,由于该索引保持子图的亮度次序,则第一级收缩图像仍然可以辨认。
接着从第一收缩图像产生第二级频率图,只有在此时垂直相邻的每个像素对被抽取,并且上部和下部像素的亮度互成对比。这在图5中示出,其中也示出按上文所述的方式对该图进行分割的结果。索引被再次动态分配。
可以理解在第一级收缩图像中的每个像素是映射到在第一级代码本B0中的两个像素参考块,并且在第二级频率图中的每个条目对应于2×2的像素块。因此,对于第二级频率图的每个子图,可以通过对来自该图中的每个块的四个像素确定平均值而产生2×2像素参考块。构成包含垂直相邻的第一级索引与相关第二级索引之间的每个可能组合的第二级索引查找表T0。然后构成包含该参考块的第二级代码本,其中参考块的位置由相关第二级索引所指向。
如果要获得比能够由2×2像素代码本块所获得的压缩比更高的压缩比,该过程可以重复进行以产生第二级代码本(4×2像素块)和第四级代码本(4×4像素块),等等。
本发明的一个优点是它可以提供能够允许最低有效位数据从索引字节整数中丢失的数据阵列的压缩表示。这是因为这些索引保留它们所代码的代码本块的主要次序。因此,由索引00110010和00110011所指向的块趋于类似,使得在索引的最低有效位中出现错误,从而使得为解压缩图像选择不正确的块不会明显对该图像造成失真。在许多数字传输系统中,通常只为数字数据的最高有效位传输纠错码(例如,GSM移动电话)。因此显然本发明方法适用于这种传输系统。另外,从本发明所获得的压缩表示的容错性使得仅仅从该索引除去一个或多个最低有效位就能够增加压缩比。
上述方法涉及利用水平或垂直轴在每一级重复把频率图分割为两个部分。通过沿着最大偏差的轴执行分割,保证映射条目与新的子图的平均值之间的期望距离小于该子图被沿着最小偏差的轴分割的情况。该原则可以通过确定沿着多于两条轴的偏差而进一步应用。实现原则的一个实践方法是计算该频率图的主要成分。这在英国Strathclyde大学的Thesis博士所著的《做为用于人工神经网络的组织原则的负反馈》中描述。该图被在右角向着主要成分延伸并穿过该成分的平均值的分割线所分割。该过程对每个子图重复进行。
可以看出能够对上述实施例做出各种改变而不脱离本发明的范围。例如,彩色图像帧可以通过考虑每个分离的主要颜色而被压缩。
在一些矢量量化方法中,可以对平均值和偏差值已经被预先标准化之后的图像块进行压缩。为了重构原始图像,沿着原始图像块的平均值和偏差值的代码本索引被存储/发送。用于这些方法的代码本包括具有被标准化的平均值和偏差值的参考块。由于当低偏差图像块被发送时,大多数被发送的信息被编码于该图像块的平均值中,因此,当预先制备这种类型的代码本时,最好避免从具有低偏差的图像块中提取的多数条目偏离该频率图。因此该代码本的结构可以通过预先处理该训练的集合而改进,以除去具有低偏差的图像块。通过使图像块保留在训练集合中的概率成为其变量的递增函数,可以易于实现上述操作。
对某些应用,可能只需要构成该查找索引表,而不需要实际代码本。考虑到需要为安全目的识别别人的相貌的情况。按照上述方式产生一组索引表。利用HVQ过程,具有安全性的人的相貌图像被编码,对于每个图像的结果是在最终级别的索引的阵列。(如果代码本被产生,这些索引将分别指向代码本中的各个图像块。)这些阵列存储在一个数据库中。当一个人需要安全检查时,他们的相貌图像被获得并且在HVQ过程中进行编码。然后该索引的结果阵列被与存储在数据库中的阵列相比较。
权利要求
1.一种从至少一个包括一组数据值的原型数据阵列构成一矢量量化代码本的方法,其特征在于,该方法包括1)从该数据阵列中选择n为采样矢量的第一阶,每个采样矢量包括一组在阵列中相邻的数据值并且每个采样矢量确定在一个有限n维空间中的一个点;2)把所述空间分为预定数目的区域,每个区域基本包括相同数目的采样适量;3)对每个所述的区域分配一个唯一的索引,其中该索引被选择来对在步骤2)中执行的分级处理进行编码;4)对所述空间内的基本上所有可能点确定这些点所在的区域,以及构成把基本上所有点映射到各区域索引的一个查找索引表;5)从该数据阵列中选择n维采样矢量的第二阶,每个采样矢量包括一组相邻的数据值,并且用通过查找在步骤4)中所产生的索引表而获得的相关的区域矢量来替代每个采样矢量,以创建另一个数据阵列或多个阵列;6)迭代执行步骤1)至5)以获得进一步的数据阵列以及任何后续产生的数据阵列,其中每个在最后一次迭代中产生的索引是从在原型数据阵列中的一组nm维采样矢量中推导出来的,其中m是迭代执行的次数;7)对每个在最后一次迭代中产生的索引创建一个表示在原型数据阵列中的相关一组nm维采样矢量的nm维参考矢量;以及8)构成包含该参考矢量的代码本,其中每个在最后一次迭代中产生的索引指向对应参考矢量在代码本中的位置。
2.根据权利要求1所述的方法,其特征在于,被选择矢量基本上在所述数据阵列中均匀分布。
3.根据权利要求1所述的方法,其特征在于,步骤5)包括把该数据阵列再分割为相同矢量的所述第二阶,使得每个条目包含于至少一个矢量中。
4.根据上述任何一项权利要求所述的方法,其特征在于,步骤2)包括(a)对所述空间的每一维确定矢量分布的平均值和偏差;(b)确定具有最大偏差的矢量的维度;以及(c)把该空间分为两个区域,第一区域包含具有用于所选维度超过该平均值的数值的矢量,并且第二区域包含不具有所选维度超过该平均值的数值的矢量。
5.根据权利要求1-3中的任何一项所述的方法,其特征在于,步骤2)包括确定在该空间中矢量分布的主要部分(或回归线),然后确定该主要部分的重心,然后通过垂直于该主要部分并穿过其重心的直线把该空间一分为二,产生两个区域或子空间。
6.根据权利要求4所述的方法,其特征在于,在交替重复中,步骤2)包括确定在该空间中矢量分布的主要部分(或回归线),然后确定该主要部分的重心,然后通过垂直于该主要部分并穿过其重心的直线把该空间一分为二,产生两个区域或子空间。
7.根据权利要求5所述的方法,其特征在于,在交替重复中,步骤2)包括(a)对所述空间的每一维确定矢量分布的平均值和偏差;(b)确定具有最大偏差的矢量的维度;以及(c)把该空间分为两个区域,第一区域包含具有用于所选维度超过该平均值的数值的矢量,并且第二区域包含不具有所选维度超过该平均值的数值的矢量。
8.根据上述任何一项权利要求所述的方法,其特征在于,对于步骤1)-4)的每次重复,该区域所创建的序列被用于确定索引的分配。
9.根据权利要求8所述的方法,其特征在于,在对于二进制索引的交替重复中第一分割确定该索引的最高有效位,第二分割确定下一个最高有效位,等等。
10.一种从至少一个由一组数据数值组成的原始数据阵列构成矢量量化代码本的方法,该方法包括1)从该数据阵列选择n维采样矢量的第一阶,每个采样矢量包括一组在该阵列中相邻的数据数值,并且每个采样矢量在有限n维空间中确定一个点;2)把包含所述采样矢量的所述n维空间分区为基本上包含相同数目的矢量的预定数目的区域;3)对每个所述区域分配一个唯一的索引,其中该索引被选择以对在步骤2)执行的分区过程代码化;4)对在所述空间中的基本上所有可能点确定这些点所处于的区域,并且构成一个把基本上所有可能点映射到各区域索引的查找索引表;5)对每个区域确定代表在该组中的采样矢量的参考矢量;以及6)构成包含该参考矢量的代码本,其中每个索引指向在该代码本中相应参考矢量的位置。
11.一种构成用于分级矢量化过程中的一组索引表的方法,该表格从至少一个由一组数据数值组成的原始数据阵列所构成,该方法包括1)从该数据阵列选择n维采样矢量的第一阶,每个采样矢量包括一组在该阵列中相邻的数据值,并且每个采样矢量在有限n维空间中确定一个点;2)把包含所述采样矢量的所述n维空间分区为基本上包含相同数目的矢量的预定数目的区域;3)对每个所述区域分配一个唯一的索引,其中该索引被选择以对在步骤2)执行的分区过程代码化;4)对在所述空间中的基本上所有可能点确定这些点所处于的区域,并且构成一个把基本上所有可能点映射到各区域索引的找查索引表;5)从该数据阵列选择n维采样矢量的第二阶,每个采样矢量包括一组相邻的数据数值,并且到达每个采样矢量替换为通过查找在步骤4)中产生的索引表而获得的相关区域索引,以创建进一步的数据阵列;以及6)为进一步的数据阵列和任何后续产生的数据阵列迭代重复执行步骤1)-5),其中每个在最后迭代中产生的索引从一组在该原始数据阵列中的nm维采样矢量中推导而得,其中m是迭代执行的次数。
12.一种用上述权利要求1-10中任何一项的方法所构成的数据比较代码本。
13.一组用权利要求11所述的方法所构成的索引表。
全文摘要
采用矢量量化的数据比较系统利用通过查找在一个n维空间中的一小组点的集合而构成的代码本所索引表,这些点代表一个大得多的总体。把该空间分区,使得在整个子空间的概率密度函数的积分基本相等,并且然后用每个子空间的“重心”表示该空间的总体。依次应用该分区把n维空间映射到一维代码空间。
文档编号H04N7/28GK1238100SQ9719986
公开日1999年12月8日 申请日期1997年10月15日 优先权日1996年10月23日
发明者威廉·保罗·科克肖特, 罗伯特·巴塞洛缪·兰伯特 申请人:斯特拉斯克莱德大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1