CN103329198B - 低复杂度目标矢量识别 - Google Patents
低复杂度目标矢量识别 Download PDFInfo
- Publication number
- CN103329198B CN103329198B CN201080071139.5A CN201080071139A CN103329198B CN 103329198 B CN103329198 B CN 103329198B CN 201080071139 A CN201080071139 A CN 201080071139A CN 103329198 B CN103329198 B CN 103329198B
- Authority
- CN
- China
- Prior art keywords
- vector
- candidate
- distance
- code
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 239000013598 vector Substances 0.000 title claims abstract description 1174
- 238000000034 method Methods 0.000 claims description 85
- 238000007689 inspection Methods 0.000 claims description 55
- 230000014509 gene expression Effects 0.000 claims description 18
- 210000003813 thumb Anatomy 0.000 claims description 3
- 230000008569 process Effects 0.000 description 51
- 238000010586 diagram Methods 0.000 description 40
- 238000004590 computer program Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 6
- 238000013139 quantization Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 238000011002 quantification Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 235000019580 granularity Nutrition 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
- G10L19/032—Quantisation or dequantisation of spectral components
- G10L19/038—Vector quantisation, e.g. TwinVQ audio
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Character Discrimination (AREA)
Abstract
本发明特别公开了从多个候选矢量当中识别出一个或多个目标矢量,每一个候选矢量具有各个已排序元素并且与代码本的一个或多个代码矢量的对应分类相关联,并且至少其中一个候选矢量与两个或更多代码矢量的一个对应分类相关联,其中所述两个或更多代码矢量当中包括该对应的候选矢量以及可以通过排列和带符号排列的其中之一从该对应的候选矢量获得的至少一个代码矢量,在所述多个候选矢量中的所有候选矢量当中,所述目标矢量关于输入矢量的至少已排序表示具有最小距离。所述识别包括:对于多个候选矢量当中的一个候选矢量,至少基于该候选矢量与参考矢量之间的距离以及参考矢量与输入矢量的至少已排序表示之间的距离,检查输入矢量的至少已排序表示与该候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离。所述识别还包括:对于所述候选矢量,只有在所述检查产生否定结果的情况下才计算输入矢量的至少已排序表示与该候选矢量之间的距离。
Description
技术领域
本发明的实施例涉及编码,特别涉及语音和音频编码。
背景技术
例如对于基于移动终端的通信,用于语音和音频编码的低复杂度算法构成一项非常具有相关性的资产。由于其低存储容量和低复杂度,在保持编码效率的同时,结构化代码本在几种现有技术语音和音频编解码器中可能是优选的,比如将在第三代合作伙伴计划(3GPP)内标准化的增强型话音服务(EVS)编解码器。
用在这些语音和音频编解码器内的代码本例如可以是基于晶格结构,正如在A.Vasilache、B.Dumitrescu和I.Tabus的参考文献“Multiple-scale leader-lattice VQ with application to LSFquantization”(Signal Processing,2002,vol.82,第563-586页,Elsevier)中所描述的那样,其被全文合并在此以作参考。
有可能把晶格代码本定义为各个领导分类的并集,其中每一个领导分类由一个领导矢量表征。领导矢量是一个n维矢量(其中n表示一个整数),其各个分量(例如正分量)被排序(例如递减排序)。对应于所述领导矢量的领导分类于是由该领导矢量以及通过该领导矢量的所有带符号排列而获得的所有矢量(其中可能存在一些限制)构成。还有可能的情况是,其中一个、一些或所有领导分类分别与一个或多个尺度相关联,并且晶格代码本于是被形成为各个经过缩放(scaled)和/或未经缩放(unscaled)的领导分类的并集。
例如可以通过找到代码本中的最近相邻代码矢量来对输入矢量进行编码(例如在量化时),所述最近相邻代码矢量即关于输入矢量具有最小距离的代码矢量。该代码矢量的标识符(例如被指派给该代码矢量的索引)于是可充当输入矢量的已编码表示。
发明内容
虽然通过使用结构化代码本已经减少了对输入矢量进行编码所需的存储器数量并且降低了计算复杂度,但是例如关于在移动设备中应用基于代码本的编码,希望进一步降低存储器要求和/或计算复杂度。
根据本发明的第一方面,公开了一种方法,其包括:从多个候选矢量当中识别出一个或多个目标矢量,每一个候选矢量具有各个已排序元素并且与代码本的一个或多个代码矢量的一个对应分类相关联,并且至少其中一个候选矢量与两个或更多代码矢量的一个对应分类相关联,其中所述两个或更多代码矢量当中包括对应的候选矢量以及可以通过排列和带符号排列的其中之一从该对应的候选矢量获得的至少一个代码矢量,在所述多个候选矢量中的所有候选矢量当中,所述目标矢量关于输入矢量的至少已排序表示具有最小距离。所述识别包括:对于多个候选矢量当中的一个候选矢量,至少基于该候选矢量与参考矢量之间的距离以及参考矢量与输入矢量的至少已排序表示之间的距离,检查输入矢量的至少已排序表示与该候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离。所述识别还包括:对于所述候选矢量,只有在所述检查产生否定结果的情况下才计算输入矢量的至少已排序表示与该候选矢量之间的距离。根据本发明的第一方面的方法例如可以是一种用于对输入矢量进行量化和/或编码的方法。
根据本发明的第二方面,公开了一种装置,其被配置成施行根据本发明的第一方面的方法,或者其包括用于施行根据本发明的第一方面的方法的部件,即用于识别一个或多个目标矢量的部件,该部件又包括用于检查输入矢量的至少已排序表示与候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离的部件,以及用于只有在所述检查产生否定结果的情况下才计算输入矢量的至少已排序表示与该候选矢量之间的距离的部件。
根据本发明的第三方面,公开了一种装置,其包括至少一个处理器以及至少一个包括计算机程序代码的存储器,所述至少一个存储器和计算机程序代码被配置成利用所述至少一个处理器使得所述装置至少施行根据本发明的第一方面的方法。包括在存储器中的计算机程序代码例如可以至少部分地代表用于处理器的软件和/或固件。存储器的非限制性实例有可由处理器访问的随机存取存储器(RAM)或只读存储器(ROM)。
根据本发明的第四方面,公开了一种计算机程序,其包括用于在处理器上执行所述计算机程序时施行根据本发明的第一方面的方法的程序代码。所述计算机程序例如可以通过因特网之类的网络来分发。所述计算机程序例如可以被存储或编码在计算机可读介质中。所述计算机程序例如可以至少部分地代表处理器的软件和/或固件。
根据本发明的第五方面,公开了一种计算机可读介质,其中存储有根据本发明的第四方面的计算机程序。所述计算机可读介质例如可以被具体实现为电、磁、电磁、光学或其他存储介质,并且可以是可移除介质或者固定安装在装置或设备中的介质。这样的计算机可读介质的非限制性实例有RAM或ROM。所述计算机可读介质例如可以是有形介质,比如有形存储介质。计算机可读介质应当被理解成可由例如处理器之类的计算机读取。
后面将简要概括与本发明的所有这些前述方面有关的特征和实施例。
如前所述,每一个候选矢量与一个或多个代码矢量的对应分类相关联。其中所有代码矢量分类的代码矢量都来自相同的代码本。分别与不同候选矢量相关联的代码矢量分类例如可以互不相同。各个代码矢量分类例如可以被视为构成代码本的不同部分。
其中,与各个候选矢量相关联的代码矢量分类的对应尺寸可以是相同的或至少部分地(例如对于至少其中一些候选矢量)不同的。
每一个候选矢量的各个元素被排序,例如递减或递增排序。
候选矢量的元素例如可以全部是正的,或者全部是负的,或者遵循另一种(例如预先定义的)符号规范,这里仅仅是给出几个非限制性实例。
一个候选矢量例如可以被视为与其关联的代码矢量分类相关联,这是因为至少该候选矢量被包括为该分类中的代码矢量。这种情况例如对于所述多个候选矢量当中的所有候选矢量都成立。
至少一个候选矢量与两个或更多代码矢量的对应分类相关联。在这种情况下,所述两个或更多代码矢量的其中之一是与所述两个或更多代码矢量的分类本身相关联的候选矢量,并且至少其中一个另外的代码矢量是可以通过排列(例如重新安排矢量的各个元素)或者带符号排列(例如重新安排矢量的各个元素并且/或者改变矢量的一个或多个元素的符号)从该候选矢量获得的代码矢量。例如可能出现的情况是,与一个候选矢量相关联的代码矢量分类包括该候选矢量,并且该代码矢量分类当中的所有其他代码矢量都可以通过排列或带符号排列而从该候选矢量获得。这一点例如可以对于分别与所述多个候选矢量当中的几个或所有候选矢量相关联的代码矢量分类都成立。
至少一个候选矢量例如可以与一个或多个代码矢量的一个分类相关联,该分类仅仅包括等于该候选矢量的一个代码矢量。该候选矢量例如可以是零矢量(其仅仅具有零值元素)。在这种情况下,无法通过排列或带符号排列生成另外的代码矢量。
除了仅仅包括一个代码矢量(例如零矢量)的一个代码矢量分类之外,分别与多个候选矢量当中的各个候选矢量相关联的代码矢量分类可以例如全都包括多于一个代码矢量。同样地,分别与多个候选矢量当中的各个候选矢量相关联的所有代码矢量分类也可以都包括多于一个代码矢量。
其中一些或所有候选矢量例如可以是分别与各个领导分类相关联的领导矢量,其中每一个领导分类包含所述一个或多个代码矢量当中的对应多个。领导矢量例如可以是具有递减(或递增)排序的正元素的矢量。与领导矢量相关联的领导分类例如可以包括该领导矢量以及通过该领导矢量的带符号排列而获得的所有矢量(这例如可以意味着如果领导矢量是零矢量,则不可能有带符号排列,从而领导分类仅仅包括该零矢量),其中关于符号组合可以存在一些限制,比如一个矢量中的符号数目必须是偶数或奇数。各个领导分类的并集例如可以构成所述代码本(例如晶格代码本)。该代码本例如可以被用于语音、音频和/或视频信号的量化。
或者,其中一些或所有候选矢量例如可以是一个或多个领导矢量的经过缩放的表示。举例来说,可以存在N个领导矢量,其中每一个领导矢量与一个对应的领导分类相关联,并且这些领导分类当中的每一个与L个不同尺度(缩放因数)的一个集合相关联,所述集合对于不同领导分类可以是相同的或不同的。所述代码本于是可以被形成为N·L个经过缩放的领导分类的并集,所述N·L个经过缩放的领导分类分别由N·L个经过缩放的领导矢量表示来表示(其中存在N个组,每一组包括与同一领导矢量有关的L个经过缩放的领导矢量表示)。
同样地,其中一个或多个候选矢量可以是领导矢量,并且其中一些或更多候选矢量可以是一个或多个领导矢量的经过缩放的表示。
从多个候选矢量当中识别出一个或多个目标矢量。因此目标矢量是候选矢量。
在多个候选矢量中的所有候选矢量当中,目标矢量关于输入矢量的至少已排序表示具有最小距离(根据距离函数,例如一个预定义距离函数)。
从候选矢量当中识别出一个或多个目标矢量可能是有用的,这是因为对于多个候选矢量当中的每一个候选矢量,该候选矢量与输入矢量的至少已排序表示之间的距离等于与该候选矢量相关联的代码矢量分类的(在该代码矢量分类的所有代码矢量当中)关于输入矢量具有最小距离的该代码矢量的距离。
如果仅仅识别出一个目标矢量,则该目标矢量关于输入矢量的至少已排序表示具有最小距离。此外,该目标矢量于是也与包含代码本的所有代码矢量当中的关于输入矢量具有最小距离的代码矢量的代码矢量分类相关联。
如果识别出两个目标矢量,则这两个目标矢量(在多个候选矢量中的所有候选矢量当中)关于输入矢量的至少已排序表示具有最小的两个距离。这些距离可以是相同的,但是同样可以是不同的。这一点在多于两个目标矢量的情况下类似地成立。
目标矢量可以不一定与包括在代码本的所有代码矢量当中关于输入矢量具有最小距离的对应代码矢量的对应代码矢量分类相关联(例如使得第一目标矢量与关于输入矢量具有最小距离的代码矢量相关联,并且第二目标矢量与关于输入矢量具有第二小距离的代码矢量相关联)。举例来说,如果识别出两个目标矢量(如前所述的第一目标矢量和第二目标矢量),可能出现的情况是其并不分别与代码本当中的关于输入矢量第一近和第二近的代码矢量相关联,而是可能与代码本当中的关于输入矢量第一近和仅仅第三近的代码矢量相关联。这是因为整个代码本当中的第二近的代码矢量可能已经与第一目标矢量相关联。但是从应用的角度来看这一点可能没有意义,因为与同一目标矢量相关联的代码矢量对于其表示可能要求相同的比特数。举例来说,如果使用相同的比特率,则放松质量(更高的距离/失真)的做法可能没有用(也就是说于是使用第一近的代码矢量而不是较差的第二近的代码矢量,这是因为二者都要求相同的比特数)。
例如可以在根据本发明的第一方面的方法的一个步骤中接收输入矢量,并且随后可以相应地配置根据本发明的第二或第三方面的装置、根据本发明的第四方面的计算机程序以及根据本发明的第五方面的计算机可读介质。
例如可以通过仅仅对其元素进行排序而从输入矢量获得输入矢量的至少已排序表示,其方式例如与对候选矢量的元素进行排序的方式相同(例如递减或递增)。但是为了获得输入矢量的至少已排序表示,还可以施行一个或多个另外的变换步骤,例如对输入矢量的元素进行变换以便遵循与候选矢量相同的符号规范(例如输入矢量的所有元素必须为正或者所有元素必须为负),并且例如按照与候选矢量的元素相同的方式对所得到的经过变换的元素进行排序。因此输入矢量的至少已排序表示例如还被视为包括输入矢量的已排序符号变换表示,例如输入矢量的已排序绝对值表示,其中输入矢量的所有元素都已被变换到其绝对值并且随后被排序。
一旦识别出一个或多个目标矢量,对于每一个目标矢量于是可以确定与该目标矢量相关联的代码矢量分类当中的关于输入矢量具有最小距离的代码矢量,这例如是通过根据输入矢量排列目标矢量的元素并且/或者为目标矢量的元素指派符号而实现的。可以附加地或替换地输出所述一个或多个目标矢量,例如输出到另一个(例如功能)单元。例如可以通过输出所述一个或多个目标矢量当中的每一个的标识符(例如索引)来输出所述一个或多个目标矢量。所述一个或多个目标矢量例如可以与该目标矢量关于输入矢量的至少已排序表示的对应距离一起输出。基于这些距离,于是例如有可能从所述一个或多个目标矢量当中另外选择一个或多个目标矢量,从而例如得到最终选择的目标矢量(其中与该最终选择的目标矢量相关联的代码矢量例如被用于对输入矢量进行量化/编码)。
根据本发明的前述各方面,把输入矢量的至少已排序表示与多个候选矢量当中的至少其中一个候选矢量进行比较。例如可以在根据本发明的第一方面的方法的一个步骤中产生该至少已排序表示,并且随后可以相应地配置根据本发明的第二或第三方面的装置、根据本发明的第四方面的计算机程序以及根据本发明的第五方面的计算机可读介质。
但是在可能的情况下为了避免必须计算输入矢量关于多个候选矢量当中的所有候选矢量的距离,对于一个候选矢量检查输入矢量的至少已排序表示与该候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离。这一检查例如可以在一个循环的对应迭代中施行,所述循环对多个候选矢量当中的所有候选矢量或者除去一个预先选择或任意选择的候选矢量之外的所有候选矢量进行检查,以便识别出目标矢量。
其中,所述参考矢量例如可以是多个候选矢量当中的一个候选矢量,其在至此关于输入矢量的至少已排序表示所检查过的候选矢量当中关于输入矢量的至少已排序表示具有最小距离。如果至此关于输入矢量的至少已排序表示还没有检查其他候选矢量,则参考矢量例如可以是多个候选矢量当中的预先定义或随机选择的一个。还有可能的情况是,参考矢量是多个候选矢量当中的一个候选矢量,但是其在对于所述多个候选矢量当中的各个候选矢量所施行的全部检查期间保持固定。
其中在检查时,避免实际上计算输入矢量的至少已排序表示与候选矢量之间的距离。这样就降低了计算复杂度。相反,至少基于候选矢量与参考矢量之间的距离以及参考矢量与输入矢量的至少已排序表示之间的距离来施行所述检查。前一个距离可以例如从包括所有候选矢量配对之间的距离(或者参考矢量与不等于参考矢量的所有候选矢量之间的距离)的一个预先计算的数据库获取,后一个距离可以例如已经能够从对于参考矢量施行的先前检查获得。
在检查时,例如可以通过利用三角不等式(或其衍生形式)来实现避免实际计算输入矢量的至少已排序表示与候选矢量之间的距离。
如果所述检查产生肯定结果(即揭示出输入矢量的至少已排序表示与候选矢量之间的距离大于输入矢量的至少已排序表示与参考矢量之间的距离),则不计算输入矢量的至少已排序表示与候选矢量之间的距离,否则就计算该距离。
因此,为了识别出多个候选矢量当中的一个或多个目标矢量,不一定需要计算输入矢量的至少已排序表示与所有候选矢量之间的距离。相反,通过在该计算之前引入检查,可以评估是否实际需要实际的距离计算。其中一些或全部这些检查例如可以是基于已经可以从先前的检查获得的距离,或者涉及只要使用相同的代码本就不会发生改变并且从而就可以(例如在接收到输入矢量之前)预先计算的候选矢量和/或参考矢量之间的距离。
其中,输入矢量的至少已排序表示与候选矢量之间的距离和输入矢量与和所述候选矢量相关联的代码矢量分类中的最近代码矢量之间的距离相同。这一点对于所述多个候选矢量当中的所有候选矢量都成立。因此检查各个候选矢量(而不是检查代码本的所有代码矢量)就足够了。
例如可以根据一个距离量度来计算任何矢量之间的距离,比如Minkowski量度、Euclidean量度、Manhattan量度或Chebychev量度,这里仅仅举出几个非限制性实例。
与一个或多个目标矢量相关联的对应代码矢量分类的代码矢量于是可以充当用于对输入矢量(其例如可以是视频信号、图像信号、语音信号或音频信号的一部分)进行量化和/或编码的基础。
根据本发明的第一方面的方法例如可以包括基于一个或多个目标矢量对输入矢量进行量化和/或编码以便获得输入矢量的已量化和/或已编码表示的步骤,其中例如是基于与一个或多个目标矢量相关联的对应代码矢量分类的代码矢量。于是可以相应地配置根据本发明的第二或第三方面的装置、根据本发明的第四方面的计算机程序以及根据本发明的第五方面的计算机可读介质。举例来说,如果仅仅获得单个目标矢量,则可以基于与该目标矢量相关联的代码矢量分类的一个代码矢量来量化输入矢量,例如在该代码矢量分类当中关于输入矢量具有最小距离的该代码矢量。该代码矢量例如可以由一个标识符(例如比特串)表示,该标识符于是构成输入矢量的已量化和已编码表示。如果识别出几个目标矢量,对于输入矢量的编码/量化例如可以包括:从与各个目标矢量相关联的对应代码矢量分类中识别出对应的代码矢量,其在对应代码矢量分类的各个代码矢量当中关于输入矢量具有最小距离;从这些识别出的代码矢量当中选择一个代码矢量(其中例如考虑到用以表示这些代码矢量和/或这些代码矢量与输入矢量的对应距离所需的对应比特数);以及利用一个标识符来表示所选择的代码矢量。
根据本发明的所有方面的一个示例性实施例,检查输入矢量的至少已排序表示与候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离是通过以下步骤施行的:检查候选矢量与参考矢量之间的距离和参考矢量与输入矢量的至少已排序表示之间的距离之间的差的绝对值是否大于参考矢量与输入矢量的至少已排序表示之间的距离。这种检查可以从三角不等式导出。
根据本发明的所有方面的一个示例性实施例,所述检查以及(在对应的检查产生否定结果的情况下)所述距离计算例如可以在以下步骤中施行:除了至少一次被用作参考矢量的一个候选矢量之外(例如最初当对于一个新的输入矢量第一次施行所述识别时),对于多个候选矢量当中的所有候选矢量识别出一个或多个目标矢量。但是仍然可能必须计算充当参考矢量的该候选矢量与输入矢量的至少已排序表示之间的距离以供后来参考。
根据本发明的所有方面的一个示例性实施例,参考矢量是从多个候选矢量当中预先选择或随机选择的一个候选矢量。所述参考矢量例如可以被预先定义为总是多个候选矢量当中的第一个候选矢量,或者可以例如在每次接收到新的输入矢量时从多个候选矢量当中随机选择。例如可以基于对多个输入矢量的一项或更多项特性的分析以及/或者基于输入矢量的一项或多项统计属性从多个候选矢量当中预先选择参考矢量。
根据本发明的所有方面的一个示例性实施例,所述识别(一个或多个目标矢量)还包括:如果针对候选矢量的检查产生否定结果,则检查输入矢量的至少已排序表示与候选矢量之间的所计算距离是否小于(或者作为一种替换方案:小于或等于)参考矢量与输入矢量的至少已排序表示之间的距离,并且如果输入矢量的至少已排序表示与候选矢量之间的所计算距离小于(或者在前面给出的替换方案中:小于或等于)参考矢量与输入矢量的至少已排序表示之间的距离,则把参考矢量定义为该候选矢量。
如果关于输入矢量的至少已排序表示与候选矢量之间的距离是否大于输入矢量的至少已排序表示与参考矢量之间的距离的检查是否定的,则无法获得关于一方面的输入矢量的至少已排序表示与候选矢量的距离和另一方面的输入矢量的至少已排序表示与参考矢量的距离之间的关系的信息。因此计算输入矢量的至少已排序表示与候选矢量之间的距离并且将其与输入矢量的至少已排序表示与参考矢量之间的距离进行比较,如果输入矢量的至少已排序表示与候选矢量之间的所计算距离小于参考矢量与输入矢量的至少已排序表示之间的距离,则使得该候选矢量成为参考矢量(参考矢量被重新定义)。
通过对多个候选矢量当中的对应候选矢量施行几项检查,可以确保参考矢量总是关于输入矢量的至少已排序表示具有到当时为止的最小距离的候选矢量。
其中例如可以从多个候选矢量当中识别出仅仅一个目标矢量,并且在检查了多个候选矢量当中的最后一个候选矢量之后,该目标矢量于是可以对应于参考矢量。在关于输入矢量的至少已排序表示检查了多个候选矢量当中的最后一个候选矢量之后,从而参考矢量所代表的目标矢量与包含代码本的所有代码矢量当中的关于输入矢量具有最小距离的代码矢量的代码矢量分类相关联。
例如可以从一个存储器获取候选矢量与参考矢量之间的距离,所述存储器包括关于多个候选矢量当中的各个候选矢量的所有可能配对的距离。例如可以预先计算所述距离(例如在接收输入矢量之前)。所述距离可以例如被包含在实施根据本发明的第一方面的方法的装置或者根据本发明的第二和第三方面的装置的ROM中,或者包含在这样的装置的固件部分中。例如有可能在代码本改变时更新/改变这些距离。由于候选矢量之间的距离与输入矢量无关,因此在计算方面高效并且从而有利的做法是预先计算并且将其存储在所述存储器中,以避免为了能够检查当前输入矢量的至少已排序表示与候选矢量之间的距离是否大于当前输入矢量的至少已排序表示与参考矢量之间的距离而必须计算这些距离。
参考矢量与输入矢量的至少已排序表示之间的距离可以对应于针对多个候选矢量当中的一个先前检查过的候选矢量所计算的该先前检查过的候选矢量与输入矢量的至少已排序表示之间的距离,并且可以从其至少被临时存储在其中的存储器获取。除了存储所有候选矢量配对之间的预先计算的距离之外(并且基本上与此无关),这种做法进一步大大有助于降低识别目标矢量的计算复杂度。因此对于目标矢量的识别例如还可以包括至少临时存储输入矢量的至少已排序表示与候选矢量之间的所计算距离以供后来参考。
根据本发明的所有方面的一个示例性实施例,在关于输入矢量识别一个或多个目标矢量时,对于多个候选矢量当中的至少几个候选矢量施行所述检查,并且在每一项检查中使用相同的参考矢量。所述参考矢量例如可以是来自所述多个候选矢量当中的一个候选矢量,比如零矢量。参考矢量可以被预先定义或者从多个候选矢量当中预先选择。
除了被用作参考矢量的候选矢量之外,例如可以对多个候选矢量当中的所有候选矢量施行所述检查。
或者例如在参考矢量不是其中一个候选矢量的情况下,可以对于多个候选矢量当中的所有候选矢量施行所述检查。通过在检查中使用相同的(例如恒定的)参考矢量例如可以允许识别出多于一个目标矢量,从而识别出关于输入矢量具有较小距离的多于一个代码矢量。在分别与各个候选矢量相关联的至少其中一些代码矢量分类提供用于编码的不同比特数的情形中,例如可以利用这一点。当有(来自具有至少部分地不同的比特要求的不同代码矢量分类的)多个代码矢量都可以被视为接近输入矢量并且从而适合作为输入矢量的已编码/已量化表示时,从而可以在精确度与比特要求之间做出折衷(举例来说,取代选择最接近输入矢量的代码矢量,可以选择更加远离输入矢量的代码矢量(例如第二近的代码矢量),这是因为其需要较少比特但是仍然构成输入矢量的相当精确的表示)。
随后可以从包括参考矢量与多个候选矢量当中的所有候选矢量之间的距离的存储器获取候选矢量与参考矢量之间的距离,或者在参考矢量是其中一个候选矢量的情况下,从包括参考矢量与多个候选矢量当中的除去该参考矢量之外的所有候选矢量之间的距离的存储器获取。由于这些距离与输入矢量无关,因此例如可以在根据本发明的第二和第三方面的装置的固件中预先计算这些距离(例如在接收到输入矢量之前)。
在关于输入矢量识别出一个或多个目标矢量时,可以仅仅计算一次参考矢量与输入矢量的至少已排序表示之间的距离。由于参考矢量和输入矢量在关于输入矢量识别出一个或多个目标矢量的过程中都不会改变,因此明智的做法是计算并且至少临时存储该距离仅仅一次(例如在第一项检查之前)并且随后在后续检查中获取该距离。
根据本发明的所有方面的一个示例性实施例,根据本发明的第一方面的方法还可以包括:对于一个或多个目标矢量当中的至少一个目标矢量,确定包含在与该至少一个目标矢量相关联的对应代码矢量分类中的对应代码矢量,其中该对应代码矢量在该对应代码矢量分类中的所有代码矢量当中关于输入矢量具有最小距离。于是可以相应地配置根据本发明的其他方面的装置、计算机程序和计算机可读介质。其中即使已识别出几个目标矢量,但是可能仅仅希望实际确定对应的相关联代码矢量的一个子组(例如仅仅其中一个代码矢量)。举例来说,可以基于其相关联的目标矢量仅仅确定应当实际充当输入矢量的已编码/已量化表示的代码矢量。
确定对应的代码矢量于是例如可以包括:对与包含对应的代码矢量的代码矢量分类相关联的目标矢量应用排列操作,其将撤销输入矢量的至少已排序表示的排序从而获得目标矢量的已排列表示;为目标矢量的已排列表示的各个元素指派符号,所述符号等于输入矢量中的相应位置处的元素的符号,从而获得目标矢量的带符号已排列表示;以及只有在对于与目标矢量相关联的代码矢量分类施加符号约束并且目标矢量的带符号已排列表示不满足所述符号约束的情况下,才翻转目标矢量的带符号已排列表示的最小元素的符号从而获得代码矢量,否则把目标矢量的带符号已排列表示视为代码矢量。
根据本发明的所有方面的一个示例性实施例,输入矢量至少部分地代表视频、图像、音频和语音信号的至少其中之一。
根据本发明的所有方面的一个示例性实施例,对于目标矢量的识别构成第三代合作伙伴计划(3GPP)语音和/或音频编解码器的一部分,特别是增强型话音服务(EVS)编解码器。
参照后面结合附图给出的本发明的实施例的详细描述,本发明的所有方面的其他特征将变得显而易见并且将对其进行阐述。但是应当理解的是,附图仅仅被设计成用于说明的目的而不是定义本发明的界限,对于后者应当参照所附权利要求书。还应当理解的是,附图不是按比例绘制的,而是仅仅意图在概念上说明其中所描述的结构和规程。具体来说,附图中的各项特征的存在不应当被视为使得这些特征对于本发明是强制性的。
附图说明
在附图中:
图1是根据本发明的一个实施例的装置的示意图;
图2是根据本发明的一个实施例的方法的流程图;
图3是根据本发明的一个实施例的有形存储介质;
图4是根据本发明的一个实施例的图2的流程图的步骤202中的处理的流程图;
图5是根据本发明的一个实施例的由三个领导分类构成的代码本的图示;
图6是根据本发明的另一个实施例的图2的流程图的步骤202中的处理的流程图;以及
图7是根据本发明的一个实施例的由四个领导分类构成的另一个代码本的图示。
具体实施方式
图1示意性地示出了根据本发明的一个实施例的装置1的各个组件。装置1例如可以是例如能够对语音、音频和视频信号的至少其中之一进行编码的电子设备或者这样的设备的一个组件。装置1特别被配置成从多个候选矢量当中识别出一个或多个目标矢量。装置1例如可以被具体实现为一个模块。装置1的非限制性实例有移动电话、个人数字助理、便携式多媒体(音频和/或视频)播放器以及计算机(例如膝上型或台式计算机)。
装置1包括处理器10,其例如可以被具体实现为微处理器、数字信号处理器(DSP)或专用集成电路(ASIC),这里仅仅举出几个非限制性实例。处理器10执行存储在程序存储器11中的程序代码,并且使用主存储器12作为工作存储器以便例如至少临时存储中间结果,并且例如还存储预先定义和/或预先计算的数据库。其中一些或所有存储器11和12也可以被包括在处理器10中。存储器11和/或12例如可以被具体实现为只读存储器(ROM)、随机存取存储器(RAM),这里仅仅是给出几个非限制性实例。其中一个或全部两个存储器11和12可以被固定地连接到处理器10或者可以从处理器10移除(例如以存储器卡或记忆棒的形式)。
处理器10还控制输入/输出(I/O)接口13,通过所述接口处理器接收信息或者向其他功能单元提供信息。
正如后面将描述的那样,处理器10至少能够执行用于从多个候选矢量当中识别出一个或多个目标矢量的程序代码。但是处理器10当然可以具有其他能力。举例来说,处理器10可以能够例如基于采样输入值来进行语音、音频和视频编码的至少其中之一。处理器10可以附加地或替换地能够控制便携式通信和/或多媒体设备的操作。
图1的装置还可以包括例如用户接口或天线之类的组件,其中用户接口例如用以允许装置1的用户与处理器10交互,天线具有相关联的射频(RF)电路以允许装置1施行无线通信。
由装置1的各个组件构成的电路可以用硬件单独实施、部分地用硬件和软件实施或者仅用软件实施,正如在本说明书的末尾进一步描述的那样。
图2示出了根据本发明的一个实施例的方法的流程图200。该流程图200的各个步骤例如可以由存储在如图3中所示的有形存储介质30上的计算机程序31的对应程序代码32定义。有形存储介质30例如可以具体实现图1的程序存储器11,并且计算机程序31于是可以由图1的处理器10执行。
参照图2,在步骤201中获得输入矢量。该输入矢量例如可以通过接收而获得(例如通过图1的I/O接口13),或者可以从由处理器10执行的处理或程序内部获得。该程序的处理例如可以是编码处理的一部分。输入矢量例如可以代表语音、音频、图像和/或视频信号的至少一部分。输入矢量可例如包括语音信号的差分谱数据或者线谱频率(LSF)系数,这里仅仅是给出几个实例。
在步骤202中,关于在步骤201中获得的输入矢量从多个候选矢量当中识别出一个或多个目标矢量。其中,每一个候选矢量(例如领导矢量)与一个对应的代码矢量分类(例如与该领导矢量相关联的领导分类)相关联,其中该代码矢量分类的各个代码矢量或者是所述候选矢量,或者可以通过排列或带符号排列从该候选矢量获得(其中例如可以施加一些另外的限制)。
其中,如果一个候选矢量是零矢量,则其相关联的代码矢量分类仅仅包括该零矢量本身。这些代码矢量分类的并集构成一个代码本。于是为了识别出该代码本中的关于输入矢量具有最小距离的代码矢量,以下做法可能就足够了:从所有候选矢量当中识别出所谓的目标矢量,其是关于输入矢量的已排序绝对值表示具有最小距离的候选矢量;并且随后基于目标矢量确定关于输入矢量具有最小距离的代码矢量。正如下面将参照图4解释的那样,根据本发明的实施例,识别出目标矢量的该处理的计算复杂度可以被显著降低。此外正如后面将参照图6示出的那样,如果识别出接近输入矢量的几个代码矢量,则也有可能从多个候选矢量当中识别出几个目标矢量。
在步骤203中,可以例如通过图1的I/O输出13把在步骤202中识别出的一个或多个目标矢量提供到另一个组件,或者内部提供到由处理器10执行的程序的另一个处理。替换地或附加地,可以(由处理器10)施行基于所述一个或多个目标矢量的其他处理。举例来说,如果仅仅识别出单个目标矢量,则可以基于该目标矢量确定关于输入矢量具有最小距离的代码矢量。该代码矢量例如可以与对应的标识符(比如一个索引)相关联,并且该标识符于是可以代表输入矢量的已编码和已量化表示。该表示于是例如可以通过装置1的I/O接口输出(参见图1),或者可以由处理器10进一步处理。如果识别出多于一个目标矢量,则可以基于这些目标矢量确定对应地相关联的代码矢量,或者可以例如基于表示一个代码矢量所需的比特数与该代码矢量关于输入矢量的距离之间的折衷来施行针对一个目标矢量(及其相关联的代码矢量)的选择。
图4示出了根据本发明的一个实施例的用于从多个候选矢量当中识别出单个目标矢量的方法的流程图400。其中,首先把一个预先选择的候选矢量用作参考矢量,但是该参考矢量在流程图400的执行过程中可以改变。
流程图400例如可以在图2的流程图200的步骤202中例如由装置1的处理器10施行(参见图1)。相应地,流程图400的各个步骤可以被具体实现为存储在图3的有形存储介质30上的计算机程序31的程序代码32。
为了描述流程图400,假设有N个候选矢量{c1,...,cN},必须从中选择目标矢量。其中N是大于1的整数。在本例中,每一个候选矢量只具有递减地排序的正元素,因此候选矢量的第一个元素大于第二个元素,第二个元素又大于第三个元素,后面以此类推。假设每一个候选矢量与一个代码矢量分类相关联,该代码矢量分类包括该候选矢量以及通过该候选矢量的元素的带符号排列获得的另外的代码矢量。对于其中一个或多个候选矢量可以存在符号约束,例如使得对应于这些候选矢量的(即其带符号排列中的)负号的数目必须为偶数或奇数。
在步骤401中,将输入矢量(例如在图2的步骤201中获得的输入矢量)变换成至少已排序表示,其在本例中是输入矢量的已排序绝对值表示。该已排序绝对值表示在后面将被标示为x,并且是通过以下步骤从输入矢量获得的:形成其各个元素的对应绝对值,并且对这些绝对值元素进行排序以匹配候选矢量的排序,即在本例中是递减地排序。
在步骤402中,定义参考矢量cref。cref例如可以被定义为如图4中所示的候选矢量集合{c1,...,cN}当中的第一个候选矢量c1,但是这并非强制性的。
在步骤403中,随后计算并存储距离dref,x(例如存储在装置1的主存储器12中,参见图1)。dref,x是通过对参考矢量cref和已排序绝对值输入矢量x应用一个距离量度而获得的。对于图4的流程图400的描述,假设该距离量度是Euclidean量度,但是这仅仅是一个实例,也可以应用其他量度。
在步骤404中,循环变量i被设定成等于2。
在步骤405中,从数据库获取距离di,ref。距离di,ref表示候选矢量ci与参考矢量cref之间的距离。由于候选矢量ci和参考矢量cref都是与已排序绝对值输入矢量x无关的候选矢量(参见步骤402),因此该距离以及还有所有可能的候选矢量对之间的距离被预先计算并且存储在存储器中,例如存储在图1的装置1的主存储器12中。这些距离例如可以被包含在图1的装置1的固件中,并且可以只在所述候选矢量集合改变时才被改变或更新。但是如果存在不同的候选矢量集合以例如用于对不同类型的信号进行编码或者以不同的量化粒度进行编码,则对于这些候选矢量集合当中的每一个,可以预先计算并存储每一个候选矢量集合内的所有可能配对的相应距离。
在步骤406中,检查距离di,ref与距离dref,x之间的差的绝对值是否大于距离dref,x。这一检查表明候选矢量ci与已排序绝对值输入矢量x之间的距离di,x是否将大于cref与已排序绝对值输入矢量x之间的距离dref,x。因此只有在距离di,x不一定大于距离di,ref的情况下,对于距离di,x的实际计算才有意义。其中应当提到的是,在步骤405中施行的检查仅仅是基于di,ref和dref,x,其中di,ref已经在步骤405中从预先计算的数据库获取,dref,x已经在步骤403中被计算和存储(对于循环变量i的更高数值,可以从步骤403中的计算或者从步骤408的先前计算获得dref,x,正如后面将讨论的那样)。因此,在步骤406中施行的检查在计算方面较为经济。
在步骤406中施行的检查可以从如下应用于矢量ci、cref和x的三角不等式导出:
这等效于:
如果下面的不等式成立,则得出结论距离di,x大于距离dref,x:
在这种情况下,不需要计算di,x,这是因为当把不等式(3)插入到不等式(2)的第一部分中时,于是会看到dref,x<di,x成立。
如果步骤406中的检查产生否定结果,则当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x不一定大于当前候选矢量ci与参考矢量cref(到当时为止的最佳候选矢量)之间的距离di,ref。实际上,当时关于这两个距离之间的关系的信息完全不可用。
因此,在步骤407中计算当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x,并且在步骤408中将其与距离dref,x进行比较。如果这一检查揭示出距离di,x小于距离dref,x,则在步骤409中使得当前候选矢量ci成为新的参考矢量cref(这反映出参考矢量cref总是被认为是最接近已排序绝对值输入矢量的到当时为止所检查的候选矢量),并且这一当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x在步骤410中被存储为距离dref,x(以供步骤406后来参考)。如果步骤408中的检查揭示出距离di,x不小于距离dref,x,则跳过步骤409-410。
在步骤411中,检查循环变量i是否已经达到N,也就是说是否所有候选矢量都已经被检查。如果不是这种情况,则在步骤412中把循环变量i递增1,并且流程图跳回到步骤405以检查下一个候选矢量。如果步骤411中的检查揭示出循环变量i等于N,则在步骤413中使得该参考矢量成为目标矢量ctarget,并且流程图终止。
如果步骤406中的检查产生肯定结果,则不需要计算当前候选矢量与已排序绝对值输入矢量之间的距离di,x,这是因为其将大于距离dref,x。所述流程图随后跳到步骤411。
应当提到的是,图4的步骤408中的条件“di,x<dref,x”作为一种替换方案也可以被改变到“di,x≤dref,x”。于是仍然将由图4的流程图400识别出仅仅一个目标矢量。但是例如仍然可能希望使用条件“di,x<dref,x”来强制参考候选矢量将被识别为目标矢量,即使有一个或多个其他候选矢量关于输入矢量的已排序绝对值表示x具有相同的距离。这在参考矢量(或者与之相关联的一个或多个代码矢量)与其他候选矢量(或者分别与之相关联的一个或多个代码矢量)相比需要较少比特来标识的情况下可能是有利的,并且/或者在参考矢量(或者与之相关联的一个或多个代码矢量)的标识被预先计算或者与其他候选矢量(或者分别与之相关联的一个或多个代码矢量)相比更容易确定的情况下可能是有利的。
如前所述,候选矢量与分别包含对应的候选矢量以及可以通过带符号排列从对应的候选矢量获得的其他代码矢量的对应的代码矢量分类相关联(在一个代码矢量中的负号数目方面可能有一些约束)。所有这些代码矢量一起构成一个代码本。现在,为了基于通过图4的流程图400识别出的目标矢量确定关于输入矢量具有最小距离的实际代码矢量(比如在图2的流程图200的步骤203中),例如可以应用以下步骤:
(a)对目标矢量ctarget的各个元素施行排列操作,所述排列操作将把已排序绝对值输入矢量x变换回到其未排序(但是仍然是绝对值)形式。
(b)如果原始输入矢量的元素具有负号,则该对应的负号被指派给已排列目标矢量的相应位置处的元素。
(c)如果对于与目标矢量ctarget相关联的代码矢量施加了符号约束(例如涉及一个代码矢量内的负号的数目),则通过相应地切换在步骤(b)中获得的矢量的最小元素的符号而满足这些符号约束。
于是所得到的矢量就是代码本当中的关于输入矢量具有最小距离的代码矢量。
前面已经提到过,从中识别出目标矢量的候选矢量例如可以是领导矢量(例如在前面提到的参考文献“Multiple-scale leader-lattice VQ withapplication to LSF quantization”中定义的领导矢量)。同样地,所述候选矢量可以是与各个领导分类相关联的经过缩放的领导矢量,所述领导分类又与由一个或多个尺度的各个集合相关联。在前面提到的参考文献“Multiple-scale leader-lattice VQ with application to LSFquantization”中给出了这样的领导分类的实例。如果对于所有领导矢量存在单一共同尺度,则(取代缩放各个领导矢量)可以相应地缩放输入矢量,并且可以像在无缩放情况中那样(但是利用经过修改的输入矢量)利用领导矢量(作为候选矢量)施行图4的流程图。
还有可能的情况是,候选矢量部分地是领导矢量并且部分地是经过缩放的领导矢量。对于所有这些情形,图1-4的实施例(还有后面描述的图6的实施例)都适用。
下面将参照图5给出用于从一个候选矢量集合当中识别出单个目标矢量并且基于该目标矢量确定关于输入矢量具有最小距离的代码矢量的一个实例,其中假设所有候选矢量都是领导矢量。
图5示出了具有由不同符号表示的多个二维代码矢量的笛卡尔坐标系50。所述代码矢量属于三个不同的领导分类,其中这些领导分类的并集构成一个代码本。
第一领导分类具有由星号标记的四个代码矢量,并且通过带符号排列从坐标为[4,0]的领导矢量51导出。该第一领导分类具有以下代码矢量:{[4,0],[0,4],[-4,0],[0,-4]}。显然其中没有符号约束。可以看到,领导矢量[4,0]只具有递减地排序的正元素。这一点对于后面描述的第二和第三领导分类的领导矢量同样成立。
第二领导分类具有由圆圈标记的八个代码矢量,并且通过带符号排列从坐标为[3,1]的领导矢量52导出。该第二领导分类具有以下代码矢量:{[3,1],[1,3],[-1,3],[-3,1],[-3,-1],[-1,-3],[1,-3],[3,-1]}。显然其中没有符号约束。
第三领导分类具有由圆点标记的四个代码矢量,并且通过带符号排列从坐标为[2,2]的领导矢量53导出。该第三领导分类具有以下代码矢量:{[2,2],[-2,2],[-2,-2],[2,-2]}。显然其中没有符号约束。
现在,如果应当确定代码本(其由图5的16个代码矢量表示)当中的关于输入矢量具有最小距离的代码矢量,则可以通过以下步骤实现:
-计算输入矢量的已排序绝对值表示关于所有三个领导矢量之间的距离;
-选择产生最小距离的领导矢量;以及
-基于该所选领导矢量确定所述代码矢量。
对于一个示例性输入矢量[0,-3.5](图5中未示出)施行这一方法将采取以下形式:
已排序绝对值输入矢量将作为[3.5,0]被获得。
该已排序绝对值输入矢量[3.5,0]关于第一领导矢量[4,0]的距离(在这里作为一个实例使用Euclidean量度)将是0.5。
已排序绝对值输入矢量[3.5,0]关于第二领导矢量[3,1]的距离将是1.12。
已排序绝对值输入矢量[3.5,0]关于第三领导矢量[2,2]的距离将是2.5。
因此将选择第一领导矢量,因为其关于已排序绝对值输入矢量产生最小距离。
随后通过对第一领导矢量[4,0]的各个元素进行排列获得与该第一领导矢量相关联的第一领导分类中的代码矢量,其中将把已排序绝对值输入矢量[3.5,0]变换回到绝对值输入矢量[0,3.5],即把第一领导矢量[4,0]排列成[0,4]。
随后,把输入矢量[0,-3.5]的各个元素的符号指派给已排列第一领导矢量[0,4]中的相同位置处的元素,从而产生代码矢量[0,-4]。
可以看到,在图5中的所有16个代码矢量当中,代码矢量[0,-4]是关于输入矢量[0,-3.5]具有最小距离的一个。
但是这一发现过程需要在二维空间内明确地计算三个距离,这是因为没有利用三角不等式。
与此相对,在根据本发明的实施例确定关于输入矢量[0,-3.5]具有最小距离的代码矢量时,可以进一步降低计算复杂度,正如后面将参照图4的流程图所表明的那样。
其中假设三个领导矢量[4,0]、[3,1]和[2,2]之间的距离已经被预先计算并且存储在数据库中,从而其不会被视为增加本例的计算复杂度。
在步骤401中(参见图4),基于输入矢量[0,-3.5]确定已排序绝对值输入矢量x=[3.5,0]。
在步骤402中,于是把参考矢量cref设定成等于第一领导矢量[4,0]。
在步骤403中,把参考矢量[4,0]与已排序绝对值输入矢量[3.5,0]之间的距离确定为0.5。
在步骤404中,把循环变量i增大到2,这意味着现在检查第二领导矢量。
在步骤405中,获取第一与第二领导矢量之间的预先计算的距离,其等于1.41。
步骤406中的检查于是产生肯定结果,这是因为(1.41-0.5)的绝对值大于0.5。因此,不计算第二领导矢量与已排序绝对值输入矢量之间的距离(不执行步骤407)。相反,流程图跳到步骤411并且随后跳到步骤412,其中把i增大到3。
这意味着现在检查第三领导矢量。为此,在步骤405中获取第一领导矢量与第三领导矢量之间的预先计算的距离,其等于2.82。
步骤406中的检查再一次是肯定的,这是因为(2.8-0.5)的绝对值大于0.5。因此,不计算第三领导矢量与已排序绝对值输入矢量之间的距离(不执行步骤407)。相反,流程图跳到步骤411,并且随后由于领导矢量的数目N是3(与i一样)因此跳到步骤413,其中把参考矢量cref(其仍然是步骤402中设定的第一领导矢量[4,0])定义为目标矢量ctarget。
基于第一领导矢量[4,0],随后可以通过如前面所示出的排列和符号指派来确定代码本当中的关于输入矢量[0,-3.5]具有最小距离的代码矢量[0,-4]。
从而可以看到,取代计算所有三个领导矢量关于已排序绝对值输入矢量的距离并且将这些结果彼此进行比较,只需要计算第一领导矢量与已排序绝对值输入矢量之间的距离,并且对于每一个领导矢量必须将已经计算的数值进行比较。特别随着领导矢量的尺寸(元素数目)增大,在步骤406中涉及的其他计算(比如形成差及其绝对值)的计算复杂度可以忽略。
从前面的实例可以理解,计算复杂度降低的数量还取决于检查领导矢量的序列。如果首先检查最佳领导矢量(正如前面的实例那样),则不需要计算对应于其他领导矢量的距离,并且计算复杂度的降低程度最大。但是即使在没有首先检查最佳领导矢量的情况下,仍然会实现计算复杂度的显著降低,这是因为仅仅对于与先前检查的领导矢量相比关于已排序绝对值输入矢量不一定具有更大距离的那些领导矢量才实际计算该距离。
图6示出了根据本发明的一个实施例的用于从多个候选矢量当中识别出一个或多个目标矢量的方法的流程图600。其中,在所有检查操作中使用相同的候选矢量作为参考矢量。与图4的流程图400不同,这样允许潜在地识别出多于一个目标矢量(从而也识别出接近输入矢量的多于一个代码矢量)。但是所识别出的目标矢量的实际数目特别取决于参考矢量的选择,正如后面将描述的那样。
流程图600例如可以在图2的流程图200的步骤202中例如由装置1的处理器10施行(参见图1)。相应地,流程图600的各个步骤可以被具体实现为存储在图3的有形存储介质30上的计算机程序31的程序代码32。
为了描述流程图600,假设有N个候选矢量{c1,...,cN},必须从中选择一个或多个目标矢量。其中N是大于1的整数。作为一个实例,同样假设每一个候选矢量只具有递减地排序的正元素,因此候选矢量的第一个元素大于第二个元素,第二个元素又大于第三个元素,后面以此类推。假设每一个候选矢量与一个代码矢量分类相关联,该代码矢量分类包括该候选矢量以及通过该候选矢量的元素的带符号排列获得的另外的代码矢量。对于其中一个或多个候选矢量可以存在符号约束,例如使得对应于这些候选矢量的(即其带符号排列中的)负号的数目必须为偶数或奇数。在由与仅仅包括对应的候选矢量而没有其他代码矢量(举例来说,如果所述候选矢量是零矢量,则无法通过带符号排列获得其他代码矢量)的各个代码矢量分类相关联的N个候选矢量构成的所述集合中,还可以有一个或多个候选矢量。
在流程图600的步骤601中,把输入矢量(例如在图2的步骤201中获得的输入矢量)变换成已排序绝对值输入矢量x(其是输入矢量的至少已排序表示的一个实例),这是通过形成其各个元素的对应绝对值并且把这些绝对值元素进行排序以匹配候选矢量的排序而实现的,即在本例中是递减地排序。
在步骤602中,把对应于目标矢量的反变量j设定到1。
在步骤603中,定义参考矢量cref。cref例如可以被定义为如图6中所示的候选矢量集合{c1,...,cN}当中的第一个候选矢量c1,但是这并非强制性的。该参考矢量cref对于流程图600的所有后续操作被保持恒定。
于是在步骤604中计算距离dref,x(例如在装置1的主存储器12中,参见图1)。通过将距离量度应用到参考矢量cref和已排序绝对值输入矢量x获得dref,x。对于图6的流程图600的描述,假设该距离量度是Euclidean量度,但是这仅仅是一个实例,也可以应用其他量度。
在步骤605中,变量indj被设定成等于1并且被存储。此外,变量distj被设定成等于dref,x并且被存储。对于j=1的变量对indj和distj(参见步骤602)代表由图6的流程图600识别出的第一目标矢量,并且将在步骤613中被输出。其中,变量indj表示该第一目标矢量在候选矢量集合{c1,...,cN}中的索引i,并且distj表示该第一目标矢量关于输入矢量的已排序绝对值表示之间的距离。
在步骤606中,循环变量i被设定成等于2。
在步骤607中,从数据库中获取距离di,ref。距离di,ref表示候选矢量ci与参考矢量cref之间的距离。由于候选矢量ci和参考矢量cref都与已排序绝对值输入矢量x无关,因此该距离以及还有参考矢量与所有其他候选矢量(除了参考矢量之外)之间的距离被预先计算并且存储在存储器中,例如存储在图1的装置1的主存储器12中。这些距离例如可以被包含在图1的装置1的固件中,并且可以只在所述候选矢量集合改变时才被改变或更新。但是如果存在不同的候选矢量集合以例如用于对不同类型的信号进行编码或者以不同的量化粒度进行编码,则对于这些候选矢量集合当中的每一个,可以预先计算并存储参考矢量与每一个候选矢量集合内的所有其他候选矢量之间的相应距离。
在步骤608中,检查距离di,ref与距离dref,x之间的差的绝对值是否大于距离dref,x。
这一检查表明候选矢量ci与已排序绝对值输入矢量x之间的距离di,x是否将一定大于cref与已排序绝对值输入矢量x之间的距离dref,x。因此只有在距离di,x不一定大于距离di,ref的情况下,对于距离di,x的实际计算才有意义。其中应当提到的是,在步骤608中施行的检查仅仅是基于di,ref和dref,x,其中di,ref已经在步骤607中从预先计算的数据库获取,dref,x已经在步骤603中被计算并且在步骤604中被存储。因此,在步骤608中施行的检查在计算方面较为经济。
如果步骤608中的检查产生否定结果,则当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x不一定大于当前候选矢量与参考矢量cref之间的距离di,ref。因此,在步骤609中计算并存储该当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x。
随后在步骤610中检查距离di,x是否小于距离dref,x。如果是这种情况,则在步骤611中把对所识别出的目标矢量进行计数的变量j递增1,并且在步骤612中把i的当前值存储在变量indj中,并且把当前的距离di,x存储在变量distj中。如果步骤610中的检查产生否定结果,则跳过步骤611和612。
在步骤613中,检查循环变量i是否已经达到N,即是否已经检查了所有候选矢量。如果不是这种情况,则在步骤614中把循环变量i递增1,并且流程图跳回到步骤607以检查下一个候选矢量。如果步骤613中的检查揭示出循环变量i等于N,则在步骤615中输出存储j个所识别出的目标矢量的索引的所有变量ind1...indj以及其关于输入矢量的已排序绝对值表示的对应距离dist1...distj。流程图随后终止。
如果步骤608中的检查产生肯定结果,则不需要计算当前候选矢量ci与已排序绝对值输入矢量x之间的距离di,x,这是因为其一定大于距离dref,x。流程图随后跳到步骤613。
随后例如可以根据图2的流程图200的步骤203进一步处理由图6的流程图600识别出的j个目标矢量。举例来说,对于这j个目标矢量当中的每一个,可以确定与该目标矢量相关联的对应代码矢量分类中的(在对应分类的各个代码矢量当中)最接近输入矢量的对应代码矢量,其方式与在前面的图4的情境中已经对于单个目标矢量所描述的方式相同。
其中可以理解的是,由图6的流程图600识别出的目标矢量的数目j强烈取决于参考矢量cref与输入矢量的已排序绝对值表示之间的距离。
举例来说,如果该距离较小,例如是在由N个候选矢量构成的所述集合中所能达到的最小距离,则只有参考矢量将被图6的流程图600识别为目标矢量,这是因为对于所有其他候选矢量,步骤608中的检查将是肯定的。
否则,如果该距离较大,例如是在由N个候选矢量构成的所述集合中所能达到的最大距离,则将对于所有其他N-1个候选矢量计算距离di,x,这是因为步骤608中的检查对于所有这N-1个候选矢量将是否定的。于是在步骤614中将把所有候选矢量(包括参考矢量)输出为目标矢量。
因此例如可能明智的做法是把接近输入矢量的平均位置(例如在考虑多个不同输入矢量时的平均位置)的一个候选矢量选为参考矢量,例如零矢量。
下面将参照图7给出用于从一个候选矢量集合当中识别出几个目标矢量并且基于这些目标矢量确定(在与所述目标矢量相关联的对应代码矢量分类内)关于输入矢量具有最小距离的代码矢量的一个实例,其中假设所有候选矢量都是领导矢量。
图7示出了具有由不同符号表示的多个二维代码矢量的笛卡尔坐标系70。所述代码矢量属于四个不同的领导分类,其中这些领导分类的并集构成一个代码本。存在作为零矢量的第一领导矢量74。该领导矢量74由正方形符号标记,并且具有仅包括领导矢量74的领导分类。此外还存在三个领导矢量71、72和73以及分别与其相关联的领导分类,其对应于已经在图5的情境中描述的领导矢量51、52和53以及分别与其相关联的领导分类。
所述领导矢量集合因此被定义为{[0,0],[4,0],[3,1],[2,2]}。假设第一领导矢量[0,0]将被用作参考矢量(参见图6的流程图600的步骤601),则将预先计算下面的距离:
d2,ref=4
d3,ref=3.16
d4,ref=2.82
现在考虑应当关于输入矢量[0,2]识别出目标矢量的情况(图7中未示出)。
在步骤601中,输入矢量[0,2]的已排序绝对值表示于是被获得为x=[0,2]。
在步骤604中确定距离dref,x=2,并且在步骤605中连同ind1=1存储为dist1=2。
随后基于(在步骤604中计算的)dref,x和(预先计算的)d2,ref在步骤608中施行检查。从而检查2<2是否成立,其结果是否定的,从而在步骤609中计算距离d2,x=2。步骤610中的检查于是揭示出d2,x=2不小于dref,x=2,从而跳过步骤611和612,也就是说不把c2识别为目标矢量。
随后基于(在步骤604中计算的)dref,x和(预先计算的)d3,ref对第三领导矢量(i=3)施行检查。从而检查2<1.16是否成立,其结果是否定的,从而在步骤609中计算距离d3,x=1.41。步骤610中的检查于是揭示出d3,x=1.41小于dref,x=2,从而在步骤612中连同index2=3把距离d3,x存储为dist2=2,也就是说把c3识别为目标矢量。
最后,基于(在步骤604中计算的)dref,x和(预先计算的)d4,ref对第四领导矢量(i=4)施行检查。从而是检查2<0.82是否成立,其结果是否定的,从而在步骤609中计算距离d4,x=2。步骤610中的检查于是揭示出d4,x=2不小于dref,x=2,从而跳过步骤611和612,也就是说不把c4识别为目标矢量。
领导矢量c1(其距离为d1,x=2)和c3(其距离为d3,x=1.41)被输出为目标矢量,连同其关于输入矢量的已排序绝对值表示x的相应距离。
其中,距离dref,x=2大于或等于其他领导矢量关于输入矢量的已排序绝对值表示的距离这一事实使得步骤608中的每一项检查结果是否定的,从而要计算距离(步骤609)。
作为一个替换实例,考虑应当关于输入矢量[1,1]识别目标矢量的情况(图7中未示出)。
在步骤601中,输入矢量[1,1]的已排序绝对值表示于是被获得为x=[1,1]。
在步骤604中确定距离dref,x=1.41,并且在步骤605中连同ind1=1存储为dist1=1.41。
随后基于(在步骤604中计算的)dref,x和(预先计算的)d2,ref在步骤608中施行检查。从而是检查1.41<2.59是否成立,其结果是肯定的,从而不计算距离d2,x。
随后基于(在步骤604中计算的)dref,x和(预先计算的)d3,ref对第三领导矢量(i=3)施行检查。从而是检查1.41<1.75是否成立,其结果是肯定的,从而不计算距离d3,x。
最后,基于(在步骤604中计算的)dref,x和(预先计算的)d4,ref对第四领导矢量(i=4)施行检查。从而是检查1.41<1.41是否成立,其结果是否定的,从而在步骤609中计算距离d4,x=1.41。步骤610中的检查于是揭示出d4,x=1.41不小于dref,x=1.41,从而跳过步骤611和612。
仅有的一个领导矢量(cref=c1)被输出为目标矢量,连同其关于输入矢量的已排序绝对值表示x的相应距离。
在这里,距离dref,x=1.41小于第二和第三领导矢量关于输入矢量的已排序绝对值表示的距离这一事实使得步骤608中的检查结果对于这两个领导矢量是肯定的,从而没有计算其对应的距离。对于第四领导矢量c4,步骤608的检查是否定的,因此在步骤609中计算距离d4,x,但是随后步骤610的检查揭示出c4并不比cref更接近x,因此c4未被识别为目标矢量。
从而就识别出与包含关于输入矢量([1,1])具有最小距离的代码矢量([0,0])的领导分类相关联的目标矢量([0,0]),而无需计算由四个领导矢量构成的所述集合中的另外三个领导矢量当中的至少两个([4,0]和[3,1])的距离。
因此,从前面的实例明显看到,在考虑将为之识别一个或多个目标矢量的多个不同输入矢量时,将会出现其中不需要计算所有领导矢量关于输入矢量的已排序绝对值表示x的距离的几种情况(参见步骤609),从而使得计算复杂度相比于输入矢量的已排序绝对值表示与所有领导矢量之间的距离的蛮力计算要低得多,并且同时保留了一般不仅获得单个目标矢量(及其相关联的代码矢量)而且获得多于该单个目标矢量(及其相关联的代码矢量)的优点。这一点例如可以被利用来基于一条或多条其他标准从所识别出的目标矢量当中选择这些目标矢量的其中之一(及其相关联的代码矢量),所述其他标准比如有表示所选择的目标矢量(或其相关联的代码矢量)所需的比特数。
其中应当提到的是,通过把图6的步骤610中的条件“di,x<dref,x”改变成“di,x≤dref,x”可以进一步增加所识别出的目标矢量的数目。于是在前面的最后一个实例中,领导矢量c4也将被识别为目标矢量。
在本申请中使用的术语“电路”指代所有以下情况:
(a)仅有硬件的电路实现方式(比如仅仅在模拟和/或数字电路中的实现方式);以及
(b)电路与软件(和/或固件)的组合,比如(适用于):
(i)(多个)处理器的组合,或者
(ii)一起工作来使得装置(比如移动电话或定位设备)施行各项功能的(多个)处理器/软件(其中包括(多个)数字信号处理器)、软件以及(多个)存储器的各个部分;以及
(c)需要软件或固件来操作的电路(比如(多个)微处理器或(多个)微处理器的一部分),尽管所述软件或固件并不以物理方式存在。
“电路”的上述定义适用于本申请中对于该术语的所有使用,其中包括在任何权利要求中的使用。作为另一个实例,在本申请中使用的术语“电路”还将涵盖仅有一个处理器(或多个处理器)或者一个处理器的一部分连同与之相伴的软件和/或固件的实现方式。如果适用于特定权利要求元素的话,术语“电路”例如还将涵盖用于移动电话或定位设备的基带集成电路或应用处理器集成电路。
关于在本申请中描述的本发明的各个方面及其实施例,应当理解的是,对于任何动作或步骤的公开应当被理解为公开了相应装置的相应(功能)配置(例如计算机程序代码和/或处理器和/或相应装置的某种其他部件的配置),或者公开了被定义成在执行时导致这样的动作或步骤的相应计算机程序代码,以及/或者公开了一个系统(或其各个部分)的相应(功能)配置。
在本申请中给出的本发明的各个方面及其实施例以及还有其各项单一特征应当被理解成在彼此的所有可能组合中做了公开。还应当理解的是,在前面给出的流程图中的方法步骤序列并不是强制性的,此外还可能有替换的序列。
前面通过非限制性实例描述了本发明。特别应当提到的是,在不背离所附权利要求书的范围和精神的情况下,本领域技术人员可以想到并且可以实施各种替换方式和变型。
Claims (29)
1.一种用于音频编码的方法,包括:
从多个候选矢量当中识别出一个或多个目标矢量,每一个候选矢量具有各个已排序元素并且与代码本的一个或多个代码矢量的对应分类相关联,并且至少其中一个所述候选矢量与两个或更多代码矢量的对应分类相关联,其中所述两个或更多代码矢量包括所述对应的候选矢量以及可以通过排列和带符号排列的其中之一从所述对应的候选矢量获得的至少一个代码矢量,在所述多个候选矢量中的所有候选矢量当中,所述目标矢量关于输入矢量的至少已排序表示具有最小距离,所述识别包括:
对于所述多个候选矢量当中的一个候选矢量,检查所述输入矢量的所述至少已排序表示与所述候选矢量之间的距离大于所述输入矢量的所述至少已排序表示与所述参考矢量之间的距离,其中通过以下步骤来施行所述检查:检查所述候选矢量与所述参考矢量之间的距离和所述参考矢量与所述输入矢量的所述至少已排序表示之间的距离之间的差的绝对值是否大于所述参考矢量与所述输入矢量的所述至少已排序表示之间的距离;以及
对于所述候选矢量,当所述检查产生否定结果时计算所述输入矢量的所述至少已排序表示与所述候选矢量之间的距离。
2.根据权利要求1的方法,其中,所述检查以及在所述对应检查产生否定结果的情况下还有对于所述距离的所述计算是在所述识别中施行的,其中除了至少一次被用作所述参考矢量的一个候选矢量之外,所述识别对于所述多个候选矢量当中的所有候选矢量识别出所述一个或多个目标矢量。
3.根据权利要求1-2当中的任一条的方法,其中,所述参考矢量是从所述多个候选矢量当中预先选择或随机选择的候选矢量。
4.根据权利要求1的方法,其中,所述识别还包括:如果针对所述候选矢量的所述检查产生否定结果,则检查所述输入矢量的所述至少已排序表示与所述候选矢量之间的所述计算的距离是否小于所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离,并且如果所述输入矢量的所述至少已排序表示与所述候选矢量之间的所述计算的距离小于所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离,则把所述参考矢量定义为所述候选矢量。
5.根据权利要求4的方法,其中,从所述多个候选矢量当中识别出仅仅一个目标矢量,并且在检查了所述多个候选矢量当中的最后一个候选矢量之后,所述目标矢量对应于所述参考矢量。
6.根据权利要求4-5当中的任一条的方法,其中,从存储器获取所述候选矢量与所述参考矢量之间的所述距离,所述存储器包括关于所述多个候选矢量当中的所有可能的候选矢量配对的距离。
7.根据权利要求4的方法,其中,所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离对应于针对所述多个候选矢量当中的一个先前检查过的候选矢量所计算的所述先前检查过的候选矢量与所述输入矢量的所述至少已排序表示之间的距离,并且从其至少被临时存储在其中的存储器获取。
8.根据权利要求1的方法,其中,在关于输入矢量识别所述一个或多个目标矢量的所述步骤中,对于所述多个候选矢量当中的至少几个候选矢量施行所述检查,并且在每一项所述检查中使用相同的参考矢量。
9.根据权利要求8的方法,其中,从包括所述参考矢量与所述多个候选矢量当中的所有候选矢量之间的距离的存储器获取所述候选矢量与所述参考矢量之间的所述距离。
10.根据权利要求8-9当中的任一条的方法,其中,在关于输入矢量识别所述一个或多个目标矢量的所述步骤中,仅仅计算一次所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离。
11.根据权利要求1-2、4-5和7-9当中的任一条的方法,其还包括对于一个或多个目标矢量当中的至少一个目标矢量,确定包含在与所述至少一个目标矢量相关联的所述对应代码矢量分类中的一个对应代码矢量,其中所述对应代码矢量在所述对应代码矢量分类中的所有代码矢量当中关于所述输入矢量具有最小距离。
12.根据权利要求11的方法,其中,确定所述对应代码矢量的所述步骤包括:
对与包含所述对应代码矢量的所述代码矢量分类相关联的所述目标矢量应用排列操作,其将撤销所述输入矢量的所述至少已排序表示的排序从而获得所述目标矢量的已排列表示;
为所述目标矢量的所述已排列表示的各个元素指派符号,所述符号等于所述输入矢量中的相应位置处的元素的符号,从而获得所述目标矢量的带符号已排列表示;以及
只有在对于与所述目标矢量相关联的所述代码矢量分类施加符号约束并且所述目标矢量的所述带符号已排列表示不满足所述符号约束的情况下,才翻转所述目标矢量的所述带符号已排列表示的最小元素的符号从而获得所述代码矢量,否则把所述目标矢量的所述带符号已排列表示视为所述代码矢量。
13.根据权利要求1-2、4-5和7-9当中的任一条的方法,其中,所述输入矢量至少部分地代表视频、图像、音频和语音信号的至少其中之一。
14.根据权利要求1-2、4-5和7-9当中的任一条的方法,其中,所述方法构成第三代合作伙伴计划增强型话音服务编解码器的一部分。
15.一种用于音频编码的装置,其包括:
用于从多个候选矢量当中识别出一个或多个目标矢量的部件,每一个候选矢量具有各个已排序元素并且与代码本的一个或多个代码矢量的对应分类相关联,并且至少其中一个所述候选矢量与两个或更多代码矢量的对应分类相关联,其中所述两个或更多代码矢量当中包括所述对应的候选矢量以及可以通过排列和带符号排列的其中之一从所述对应的候选矢量获得的至少一个代码矢量,在所述多个候选矢量中的所有候选矢量当中,所述目标矢量关于输入矢量的至少已排序表示具有最小距离,所述用于识别的部件包括:
用于对于所述多个候选矢量当中的一个候选矢量,检查所述输入矢量的所述至少已排序表示与所述候选矢量之间的距离大于所述输入矢量的所述至少已排序表示与所述参考矢量之间的距离的部件,其中通过以下步骤来施行所述检查:检查所述候选矢量与所述参考矢量之间的距离和所述参考矢量与所述输入矢量的所述至少已排序表示之间的距离之间的差的绝对值是否大于所述参考矢量与所述输入矢量的所述至少已排序表示之间的距离;以及
用于对于所述候选矢量,当所述检查产生否定结果时计算所述输入矢量的所述至少已排序表示与所述候选矢量之间的距离的部件。
16.根据权利要求15的装置,其中,对于除了至少一次被用作所述参考矢量的一个候选矢量之外的所述多个候选矢量当中的所有候选矢量施行所述用于检查的部件以及在所述对应检查产生否定结果的情况下还有用于计算所述距离的部件。
17.根据权利要求15和16当中的任一条的装置,其中,所述参考矢量是从所述多个候选矢量当中预先选择或随机选择的候选矢量。
18.根据权利要求15的装置,其还包括在针对所述候选矢量的所述检查产生否定结果的情况下用于检查所述输入矢量的所述至少已排序表示与所述候选矢量之间的所述计算的距离是否小于所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离的部件,以及用于在所述输入矢量的所述至少已排序表示与所述候选矢量之间的所述计算的距离小于所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离的情况下用于把所述参考矢量定义为所述候选矢量的部件。
19.根据权利要求18的装置,其中,从所述多个候选矢量当中识别出仅仅一个目标矢量,并且在检查了所述多个候选矢量当中的最后一个候选矢量之后,所述目标矢量对应于所述参考矢量。
20.根据权利要求18-19当中的任一条的装置,其还包括用于从存储器获取所述候选矢量与所述参考矢量之间的所述距离的部件,所述存储器包括关于所述多个候选矢量当中的所有可能的候选矢量配对的距离。
21.根据权利要求18的装置,其中,所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离对应于针对所述多个候选矢量当中的一个先前检查过的候选矢量所计算的所述先前检查过的候选矢量与所述输入矢量的所述至少已排序表示之间的距离,并且从其至少被临时存储在其中的存储器获取。
22.根据权利要求15的装置,其还包括用于在关于输入矢量识别所述一个或多个目标矢量中对于所述多个候选矢量当中的至少几个候选矢量施行检查的部件,并且在每一项所述检查中使用相同的参考矢量。
23.根据权利要求22的装置,其还包括用于从存储器获取所述候选矢量与所述参考矢量之间的所述距离的部件,所述存储器包括所述参考矢量与所述多个候选矢量当中的所有候选矢量之间的距离。
24.根据权利要求22和23当中的任一条的装置,其还包括用于在关于输入矢量识别所述一个或多个目标矢量中仅仅计算一次所述参考矢量与所述输入矢量的所述至少已排序表示之间的所述距离的部件。
25.根据权利要求15-16、18-19和21-23当中的任一条的装置,其还包括用于对于一个或多个目标矢量当中的至少一个目标矢量,确定包含在与所述至少一个目标矢量相关联的所述对应代码矢量分类中的一个对应代码矢量的部件,其中所述对应代码矢量在所述对应代码矢量分类中的所有代码矢量当中关于所述输入矢量具有最小距离。
26.根据权利要求25的装置,其还通过包括以下部件来包括用于确定所述对应的代码矢量的部件:
用于对与包含所述对应代码矢量的所述代码矢量分类相关联的所述目标矢量应用排列操作的部件,其将撤销所述输入矢量的所述至少已排序表示的排序从而获得所述目标矢量的已排列表示;
用于为所述目标矢量的所述已排列表示的各个元素指派符号的部件,所述符号等于所述输入矢量中的相应位置处的元素的符号,从而获得所述目标矢量的带符号已排列表示;以及
用于只有在对于与所述目标矢量相关联的所述代码矢量分类施加符号约束并且所述目标矢量的所述带符号已排列表示不满足所述符号约束的情况下,才翻转所述目标矢量的所述带符号已排列表示的最小元素的符号从而获得所述代码矢量,否则把所述目标矢量的所述带符号已排列表示视为所述代码矢量的部件。
27.根据权利要求15-16、18-19和21-23当中的任一条的装置,其中,所述输入矢量至少部分地代表视频、图像、音频和语音信号的至少其中之一。
28.根据权利要求15-16、18-19和21-23当中的任一条的装置,其中,根据第三代合作伙伴计划增强型话音服务编解码器来识别所述一个或多个目标矢量。
29.根据权利要求15-16、18-19和21-23当中的任一条的装置,其还包括用户接口和天线的至少其中之一。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2010/055448 WO2012069885A1 (en) | 2010-11-26 | 2010-11-26 | Low complexity target vector identification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103329198A CN103329198A (zh) | 2013-09-25 |
CN103329198B true CN103329198B (zh) | 2015-07-08 |
Family
ID=46145423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080071139.5A Expired - Fee Related CN103329198B (zh) | 2010-11-26 | 2010-11-26 | 低复杂度目标矢量识别 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9196255B2 (zh) |
EP (1) | EP2643833B1 (zh) |
KR (1) | KR101461840B1 (zh) |
CN (1) | CN103329198B (zh) |
WO (1) | WO2012069885A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112565789B (zh) * | 2019-11-13 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 视频解码及编码方法、装置、计算机可读介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958225A (en) * | 1989-06-09 | 1990-09-18 | Utah State University Foundation | Full-search-equivalent method for matching data and a vector quantizer utilizing such method |
EP0505654A1 (en) * | 1991-03-29 | 1992-09-30 | International Business Machines Corporation | Vector quantizing method for coding signals and system for implementing said method |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272593B1 (en) * | 1999-01-26 | 2007-09-18 | International Business Machines Corporation | Method and apparatus for similarity retrieval from iterative refinement |
DE102004055230B3 (de) * | 2004-11-16 | 2006-07-20 | Siemens Ag | Verfahren zur Spracherkennung aus einem vorgebbaren Vokabular |
US20070094035A1 (en) | 2005-10-21 | 2007-04-26 | Nokia Corporation | Audio coding |
FR2893432B1 (fr) * | 2005-11-16 | 2008-01-04 | Atmel Corp | Quantificateur de vecteur fonde sur une dichotomie spatiale a n dimensions |
US20070168197A1 (en) * | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
WO2008114075A1 (en) * | 2007-03-16 | 2008-09-25 | Nokia Corporation | An encoder |
KR101170137B1 (ko) | 2008-02-15 | 2012-07-31 | 노키아 코포레이션 | 복잡성이 축소된 벡터 인덱싱 및 탈-인덱싱 |
EP2304722B1 (en) * | 2008-07-17 | 2018-03-14 | Nokia Technologies Oy | Method and apparatus for fast nearest-neighbor search for vector quantizers |
WO2012069886A1 (en) | 2010-11-26 | 2012-05-31 | Nokia Corporation | Coding of strings |
DE112012005424T5 (de) * | 2011-12-21 | 2014-09-18 | International Business Machines Corporation | Lese/Schreib-Operationen in Halbleiterspeicher-Bauelementen |
-
2010
- 2010-11-26 CN CN201080071139.5A patent/CN103329198B/zh not_active Expired - Fee Related
- 2010-11-26 KR KR1020137016566A patent/KR101461840B1/ko active IP Right Grant
- 2010-11-26 EP EP10860073.5A patent/EP2643833B1/en active Active
- 2010-11-26 US US13/988,952 patent/US9196255B2/en active Active
- 2010-11-26 WO PCT/IB2010/055448 patent/WO2012069885A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4958225A (en) * | 1989-06-09 | 1990-09-18 | Utah State University Foundation | Full-search-equivalent method for matching data and a vector quantizer utilizing such method |
EP0505654A1 (en) * | 1991-03-29 | 1992-09-30 | International Business Machines Corporation | Vector quantizing method for coding signals and system for implementing said method |
Non-Patent Citations (1)
Title |
---|
Vector Quantization;anonymous;《http://www.mqasem.net/vectorquantization/vq.html》;20090809;全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2012069885A1 (en) | 2012-05-31 |
KR20130107335A (ko) | 2013-10-01 |
US20130238346A1 (en) | 2013-09-12 |
EP2643833A4 (en) | 2014-06-04 |
CN103329198A (zh) | 2013-09-25 |
KR101461840B1 (ko) | 2014-11-13 |
US9196255B2 (en) | 2015-11-24 |
EP2643833B1 (en) | 2020-01-01 |
EP2643833A1 (en) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chang et al. | A fast LBG codebook training algorithm for vector quantization | |
CN110210560A (zh) | 分类网络的增量训练方法、分类方法及装置、设备及介质 | |
CN110636445B (zh) | 基于wifi的室内定位方法、装置、设备及介质 | |
CN109344893B (zh) | 一种基于移动终端的图像分类方法 | |
CN113132723A (zh) | 一种图像压缩方法及装置 | |
CN112994701A (zh) | 数据压缩方法、装置、电子设备及计算机可读介质 | |
CN117316333B (zh) | 基于通用的分子图表示学习模型的逆合成预测方法及装置 | |
CN108351962A (zh) | 具有自适应性通道特征的对象检测 | |
CN110060166A (zh) | 智能理赔方法、装置、计算机设备以及存储介质 | |
US11531884B2 (en) | Separate quantization method of forming combination of 4-bit and 8-bit data of neural network | |
CN109272340B (zh) | 参数阈值确定方法、装置及计算机存储介质 | |
CN107527058A (zh) | 一种基于加权局部特征聚合描述符的图像检索方法 | |
CN103329198B (zh) | 低复杂度目标矢量识别 | |
CN109934248B (zh) | 一种针对迁移学习的多模型随机生成与动态自适应组合方法 | |
CN114662607B (zh) | 基于人工智能的数据标注方法、装置、设备以及存储介质 | |
Drumond et al. | End-to-end DNN training with block floating point arithmetic | |
CN112418298B (zh) | 数据检索方法、装置以及计算机可读存储介质 | |
CN112200275B (zh) | 人工神经网络的量化方法及装置 | |
US20220334802A1 (en) | Information processing apparatus, information processing system, and information processing method | |
Lee et al. | A Novel Sensitivity Metric For Mixed-Precision Quantization With Synthetic Data Generation | |
CN112714062B (zh) | 一种面向超算用户体验质量的多路径路由方法和装置 | |
CN115687617B (zh) | 一种数据处理方法和数据处理装置 | |
CN104616012B (zh) | 获取紧凑全局特征描述子的方法 | |
Oh et al. | Weight equalizing shift scaler-coupled post-training quantization | |
Bidwai et al. | LSTM model for Channel Occupation Prediction in GSM Band |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160108 Address after: Espoo, Finland Patentee after: Technology Co., Ltd. of Nokia Address before: Espoo, Finland Patentee before: Nokia Oyj |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150708 Termination date: 20201126 |
|
CF01 | Termination of patent right due to non-payment of annual fee |