CN101981618B - 复杂度减少的矢量编制索引和去索引 - Google Patents

复杂度减少的矢量编制索引和去索引 Download PDF

Info

Publication number
CN101981618B
CN101981618B CN200880128366.XA CN200880128366A CN101981618B CN 101981618 B CN101981618 B CN 101981618B CN 200880128366 A CN200880128366 A CN 200880128366A CN 101981618 B CN101981618 B CN 101981618B
Authority
CN
China
Prior art keywords
vector
leading
vector set
index
class
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.)
Active
Application number
CN200880128366.XA
Other languages
English (en)
Other versions
CN101981618A (zh
Inventor
A·瓦西拉彻
L·拉克索南
A·拉莫
M·塔米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN101981618A publication Critical patent/CN101981618A/zh
Application granted granted Critical
Publication of CN101981618B publication Critical patent/CN101981618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3082Vector coding
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及对多个矢量集中的矢量集中包含的输入矢量编制索引。编制索引包括在输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用。编制索引还包括在输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。本发明还涉及基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来相应确定所述目标矢量。

Description

复杂度减少的矢量编制索引和去索引
技术领域
本发明涉及矢量编制索引和去索引。
背景技术
用于语音和音频编码的低复杂度算法对于基于移动终端的通信而言是很相关的有用资源。由于存储少和复杂度低,在保留编码效率的同时,例如针对量化,在若干现有技术的语音和音频编码解码器(比如ITU-T SG16/Q9目前正在标准化的自适应多速率-宽带(AMR-WB)或者G.EV-VBR)中结构化的码本是优选的。
如在通过引用整体结合于此的如下参考文献中所述,在语音和音频编码解码器的量化方法内使用的码本可以例如基于网格结构,该参考文献为:″Low-complexity multi-rate lattice vector quantizationwith application to wideband TCX speech coding at 32kbit/s″,S.Ragot,B.Bessette and R.Lefebvre,Proceedings of the IEEE InternationalConference on Acoustics,Speech,and Signal Processing,2004(ICASSP′04),Montreal,Canada,May 17-21,2004,vol.1,page 501-504。这一参考文献也更详细地描述量化过程。
当网格结构用作码本时,需要用于对网格点编制索引的算法。
有可能定义网格码本作为各自通过前导矢量来表征的前导类的并集。前导矢量是其分量被排序(例如递减地)的n维矢量。与前导矢量对应的前导类然后由前导矢量和通过前导矢量的所有有符号排列(可能有一些限制)而获得的所有矢量构成。
一种用于对作为前导类的并集来定义的网格的点编制索引的算法例如可以是对前导编制索引类型。如在通过引用整体结合于此的如下参考文献中所述,在该背景中除了其它算法之外还可以应用词典编辑和二项式算法,该参考文献为:″Robust indexing of latticesand permutation codes over binary symmetric channels″,A.Vasilacheand I.Tabus,In Signal Processing vol.83,no.7,pp.1467-1486,2003。
二项式算法一般复杂度更低,因为它们一次考虑若干矢量分量。
发明内容
存在进一步减少编制索引和/或去索引的复杂度的可能性。
根据本发明的第一方面,公开一种方法,该方法包括:对多个矢量集中的矢量集中包含的输入矢量编制索引。编制索引包括在输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用。编制索引还包括在输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第一方面,还公开一种计算机程序。该计算机程序包括可操作用以使处理器对多个矢量集中的矢量集中包含的输入矢量编制索引的指令。编制索引包括在输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用。编制索引还包括在输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第一方面,还公开一种具有存储于其上的这样的计算机程序的计算机可读介质。该计算机可读介质可以是能够存储电、磁、电磁或者光学形式的数字数据的任何介质。该介质可以固定地安装于设备中或者可以是可拆卸介质。
根据本发明的第一方面,还公开一种装置,该装置包括配置成对多个矢量集中的矢量集中包含的输入矢量编制索引的处理部件。该处理部件还被配置成在将要编制索引的输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用。该处理部件还被配置成在将要编制索引的输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第一方面,还公开一种装置,该装置包括用于对多个矢量集中的矢量集中包含的输入矢量编制索引的装置。用于编制索引的装置包括用于在输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用。用于编制索引的装置还包括用于在输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理的装置。
根据本发明的第一方面,输入矢量是将要编制索引的矢量。输入矢量被包括在矢量集中,该矢量集又被包括在多个矢量集中。多个矢量集可以例如适于作为例如用于量化过程的码本。在这样的量化过程中,例如可以将输入矢量标识为针对将要量化的矢量在多个矢量集中所有矢量的最接近匹配。
对输入矢量编制索引是向输入矢量分配索引。索引可以例如构成信号。信号可以在两个实体之间作为输入矢量的标识来交换。经由索引,可以在输入矢量包含于其中的矢量集中至少部分地标识输入矢量。索引可以例如标识在多个矢量集内或者仅在输入矢量包含于其中的矢量集内标识输入矢量。另外,索引可以代表、或者可以不代表输入矢量的分量的符号。
对输入矢量编制索引可以例如至少产生位置索引,该位置索引代表输入矢量中的值的位置。编制索引还可以产生符号索引,该符号索引代表输入矢量的分量的符号。编制索引还可以产生如下最终索引,该最终索引组合位置索引和符号索引并且还可以代表输入矢量包含于其中的前导类。
根据输入矢量包含于其中的矢量集来进行不同处理。如果输入矢量包含于属于矢量集的预定义组的矢量集中,则应用特定处理。否则应用通用处理。两种处理形成输入矢量编制索引的至少一部分。例如,特定处理和通用处理可以涉及整个编制索引过程或者可以涉及仅部分的编制索引过程。
特定处理适应输入矢量包含于其中的矢量集的特性。
特定处理被定制成适合输入矢量包含于其中的矢量集。这允许改进处理并且减少输入矢量编制索引的总复杂度。
例如,通过在一次循环中进行若干动作,与通用处理相比可以简化特定处理的结构。
同样,特定处理的引入可以允许例如通过从通用处理中排除特定矢量集的输入矢量的处理(并且将它们包括到特定处理中)从而简化通用处理来减少通用处理的复杂度。两种措施减少输入矢量编制索引的总复杂度。
该定制可以使特定处理的适用性限于在具有特性的矢量集中包含的输入矢量,即特定处理例如当未在矢量集的预定义组中的矢量集中包含的输入矢量的情况下可以不适用。
通用处理可以不限于仅应用于包含在矢量集的特定组中的矢量集中的输入矢量的情况。例如,通用处理可以在包含在多个矢量集中的任何矢量集中的输入矢量的情况下或者在多个矢量集中的除了矢量集的预定义组中的矢量集之外的任何矢量集中包含的输入矢量的情况下适用。后一种替代方式可以允许优化针对不在矢量集的预定义组中的矢量集中包含的输入矢量的通用处理。
根据本发明第一方面的一个示例实施例,通用处理如果应用于包含在具有特性的矢量集中的输入矢量,则将比应用于相同输入矢量的特定处理更复杂。其中,复杂度可以例如涉及计算复杂度和/或存储要求。
根据本发明第一方面的一个示例实施例,包含在矢量集的预定义组中的矢量集中的输入矢量具有比包含在不在矢量集的预定义组中的矢量集中的输入矢量更大的被编制索引概率。针对总复杂度,于是可以特别有用的是,特定处理的复杂度低于通用处理(当应用于包含在具有特性的矢量集中的输入矢量时)。概率可以依赖于其中进行编制索引的应用。例如,可以离线确定概率。
根据本发明第一方面的一个示例实施例,矢量集是前导类,并且各前导类包括不同前导矢量和前导矢量的排列。这些前导类的并集然后可以定义网格,该网格可以用作例如在语音、音频或者视频编码解码器中、在画面编码中、在数据压缩中或者在应用量化的任何其它领域中用于量化的结构化码本。
前导类可以是有符号的,并且编制索引可以至少产生位置索引和符号索引,该位置索引代表输入矢量中的值的位置,而该符号索引代表输入矢量的分量的符号。然后在特定处理中,可以在一次循环中联合地确定位置索引和符号索引。该循环例如可以对输入矢量的各分量重复循环。对照而言,在通用处理中,可以仅依次确定位置索引和符号索引。编制索引也可以产生如下最终索引,该最终索引组合位置索引和符号索引并且还可以代表输入矢量包含于其中的前导类。
可选地,前导类可以是无符号的。编制索引然后可以仅产生位置索引,该位置索引代表输入矢量中的值的位置。依情况而定,编制索引也可以产生如下最终索引,该最终索引还代表输入矢量包含于其中的前导类。
特定处理适应的特性可以在于前导类的预定义组仅包含具有如下前导矢量的前导类,这些前导矢量的分量仅取预定义数目的不同值。这一预定义数目例如可以是二。使特定处理适应这一特性可能在二项式编制索引的背景中特别地有用,因为它除了其它方面之外还允许在一次循环中联合地确定位置索引和符号索引,而不是依次确定它们。另外,使特定处理适应这一特性可能在二项式编制索引的背景中特别地有用,因为除了其它方面之外,编制索引过程于是仅需处理一个值(第一个)的位置而无需进一步预备检查第二介值的位置(它的位置通过固定第一个值的位置来固定)。
前导类的预定义组可以包含前导类的第一子组和前导类的第二子组,该前导类的第一子组具有分量仅取偶值的前导矢量,而该前导类的第二子组具有分量仅取奇值的前导矢量。特定处理然后可以在输入矢量包含于前导类的第一子组中的前导类中的情况下规定与在输入矢量包含于前导类的第二子组中的前导类中的情况下不同的动作。
可选地,特定处理适应的特性可以在于前导类的预定义组仅包含具有如下前导矢量的前导类,这些前导矢量的分量取最大数目的不同值。例如,前导类的预定义组中的前导类可以具有四值前导矢量。在特定处理中处理这样的前导类可以允许减少通用处理的复杂度,因为通用处理于是可以仅处理具有如下前导矢量的前导类,这些前导矢量具有三个或者更少不同值。这有助于减少输入矢量编制索引的总复杂度。
通用处理可以在包含在多个矢量集中除了矢量集的预定义组中的矢量集之外的任何矢量集中的输入矢量的情况下适用,以允许优化通用处理。
可以在基于由前导类定义的网格码本的量化过程中进行输入矢量的编制索引。
根据本发明第一方面的一个示例实施例,编制索引是二项式编制索引。在这样的二项式编制索引中,编制索引基于在某维度矢量中的各位置中分布值的可能性的数目。
根据本发明的第二方面,公开一种方法,该方法包括基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定目标矢量。该确定包括在目标矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的目标矢量的情况下适用。该确定还包括在目标矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第二方面,还公开一种计算机程序,该计算机程序包括可操作用以使处理器基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定目标矢量的指令。该确定包括在目标矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的目标矢量的情况下适用。该确定还包括在目标矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第二方面,还公开一种具有存储于其上的这样的计算机程序的计算机可读介质。该计算机可读介质可以是能够存储电、磁、电磁或者光学形式的数字数据的任何介质。该介质可以固定地安装于设备中或者可以是可拆卸介质。
根据本发明的第二方面,还公开一种装置,该装置包括配置成基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定目标矢量的处理部件。该处理部件还被配置成在将要确定的目标矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的目标矢量的情况下适用。该处理部件还被配置成在将要确定的目标矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
根据本发明的第二方面,还公开一种装置,该装置包括用于基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定目标矢量的处理部件。用于确定的装置包括用于在目标矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的目标矢量的情况下适用。用于确定的装置还包括在目标矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理的装置。
根据本发明的第二方面,目标矢量是将基于与目标矢量关联的索引来确定的矢量。目标矢量被包括在矢量集中,该矢量集又被包括在多个矢量集中。多个矢量集可以例如适于作为例如用于量化过程的码本。例如,如上文参照本发明的第一方面公开的那样,在这样的量化过程中,例如可以已经将目标矢量标识为针对将要量化的矢量在多个矢量集中所有矢量的最接近匹配,并且可以已经向目标矢量分配索引(即已经被编制索引)。这一索引例如可以至少部分地标识矢量集内的目标矢量。此外,这一索引例如可以标识目标矢量包含于其中的矢量集,并且还可以表明目标矢量的分量的符号。基于这一索引,根据本发明的第二方面,然后恢复目标矢量。这可能需要从进行目标矢量编制索引的实体向基于索引进行目标矢量确定的实体发送索引。为此,索引可以被视为在实体之间发送的信号。编制索引可以例如在量化期间发生,并且基于索引来确定目标矢量(可以被视为“去索引”)然后可以在去量化期间发生。
根据本发明的第二方面,根据目标矢量包含于其中的矢量集进行不同处理。如果目标矢量包含于属于矢量集的预定义组的矢量集,则应用特定处理。否则应用通用处理。
特定处理适应目标矢量包含于其中的矢量集的特性。
特定处理在利用特性的情况下被定制成适合目标矢量包含于其中的矢量集。这允许改进处理并且减少确定目标矢量的总复杂度。例如,与通用处理相比可以简化特定处理的结构。这一措施减少总复杂度。然而,该定制可以使特定处理的适用性限于其中目标矢量包含于具有特性的矢量集中的情况,即特定处理例如在目标矢量包含于不在矢量集的预定义组中的矢量集中的情况下可以不适用。
通用处理可以不限于仅应用于目标矢量包含于矢量集的特定组的情况下。例如,通用处理可以在多个矢量集中的任何矢量集中包含的目标矢量的情况下或者在多个矢量集中的除了矢量集的预定义组中的矢量集之外的任何矢量集中包含的目标矢量的情况下适用。后一种替代方式可以允许通用处理的至少一些优化。
根据本发明第二方面的一个示例实施例,通用处理如果应用于包含在具有特性的矢量集中的目标矢量的情况下则将比应用于相同输入矢量的情况下的特定处理更复杂。其中,复杂度可以例如涉及计算复杂度和/或存储要求。
根据本发明第二方面的一个示例实施例,包含在矢量集的预定义组中的矢量集中的目标矢量具有比包含在不在矢量集的预定义组中的矢量集中的目标矢量更大的确定概率。针对总复杂度,于是可以特别有用的是,特定处理的复杂度低于通用处理(当应用于包含在具有特性的矢量集中的目标矢量的情况下时)。概率可以依赖于其中进行目标矢量确定的应用(例如,去量化过程)。例如,可以离线确定概率。
根据本发明第二方面的一个示例实施例,矢量集是前导类,并且各前导类包括不同前导矢量和前导矢量的排列。
特定处理适应的特性可以例如在于前导类的预定义组仅包含具有如下前导矢量的前导类,这些前导矢量的分量仅取预定义数目的不同值。预定义数目可以例如是二。其中,两个不同值之一可以例如是零。
可以在基于由前导类定义的网格码本的去量化过程中进行目标矢量的确定。
特定处理适应的特性同样可以在于前导类的预定义组仅包含具有如下前导矢量的前导类,这些前导矢量的分量取最大数目的不同值。例如,前导类的预定义组中的前导类可以具有四值前导矢量。在特定处理中处理这样的前导类可以允许减少通用处理的复杂度,因为通用处理于是可以仅处理具有如下前导矢量的前导类,这些前导矢量具有三个或者更少不同值。这有助于减少输入矢量去索引的总复杂度。
通用处理可以在多个矢量集中除了矢量集的预定义组中的矢量集之外的任何矢量集中包含的目标矢量的情况下适用,以允许优化通用处理。
根据本发明第二方面的一个示例实施例,索引经由二项式编制索引与目标矢量关联。在这样的二项式编制索引中,编制索引基于在某维度矢量中的各位置中分布值的可能性的数目。
根据本发明的第三方面,公开一种系统。该系统包括:第一处理部件,被配置成对多个矢量集中的矢量集中包含的输入矢量编制索引,第一处理部件还被配置成在将要编制索引的输入矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的输入矢量的情况下适用,并且第一处理部件还被配置成在将要编制索引的输入矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。该系统还包括:第二处理部件,被配置成基于与包含在多个矢量集中的矢量集中的目标矢量关联的索引来确定目标矢量,第二处理部件还被配置成在将要确定的目标矢量包含于多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,该特定处理适应矢量集的预定义组中的矢量集的特性并且仅在包含在具有该特性的矢量集中的目标矢量的情况下适用,并且第二处理部件还被配置成在将要确定的目标矢量未包含于矢量集的预定义组中的矢量集中的情况下进行通用处理。
对于根据本发明第三方面的系统,对本发明第一和第二方面的特征和优点的上文描述相应地适用。
第二处理部件可以例如确定与由第一处理部件在输入矢量的编制索引期间已经向输入矢量分配的索引关联的目标矢量,从而输入矢量和目标矢量相等。可以例如在第一与第二处理部件之间传送索引。
可以例如在两个不同设备中包括第一和第二处理部件,其中在包括第一处理部件的设备中对输入矢量编制索引,并且其中在包括第二处理部件的设备中确定与第一处理部件确定的索引关联的目标矢量。
同样,第一和第二处理部件可以被包括在相同设备中并且可以例如分别用于量化和去量化。
根据和参照下文呈现的具体描述将会清楚并且阐明本发明的这些和其它方面。如上文呈现的本发明及其示例实施例的特征被理解为在相互所有可能组合中也有所公开。
附图说明
在附图中:
图1示出了G.EV-VBR编码器的示意框图;
图2示出了根据本发明第一方面的一个示例实施例的用于对输入矢量编制索引的方法的流程图;
图3示出了根据本发明第二方面的一个示例实施例的用于基于与目标矢量关联的索引来确定目标矢量的方法的流程图;并且
图4是能够实施根据本发明第一和第二方面的方法的设备的示意框图。
具体实施方式
在本发明的下文具体描述中,将在针对G.EV-VBR编码解码器及其派生编码解码器提出的网格量化器的背景中在网格点的编制索引和去索引的背景中描述本发明的示例实施例。然而本发明不限于这一编码解码器、这一特定网格量化器或者网格结构的编制索引/去索引;它同样可以应用于需要矢量编制索引和去索引的所有其它场景中。
G.EV-VBR编码解码器正在ITU-T SG16/Q9的标准化过程之中。它是用于如下宽带信号的语音和音频嵌入式可缩放编码解码器,这些宽带信号的编码比特速率为8、12、16、24和32kbit/s。
图1是G.EV-VBR编码解码器1的示意框图。前两层基于代码激发的线性预测(CELP)并且表示为“核编码解码器”(参见核编码解码器单元101)。通过对原信号100与核编码解码器合成信号之间的差信号103进行改型离散余弦变换(MDCT)系数(参见MDCT单元104)编码来获得其余层,其中从加法器102获得差信号。MDCT系数的量化(用于与比特速率24kbit/s对应的层)使用如下量化器105,该量化器基于从如下前导类获得的前导类,这些前导类来自如下网格2RE8,该网格2RE8是网格E8的用因子2缩放的旋转版本。前两层然后在比特流生成单元106中与其余层组合。
在量化中一般使用的网格可以表示为前导类的并集。因而,基于网格的量化结构可以描述为前导类的并集。
前导矢量是其分量被排序(例如降序)的n维整数矢量:
(v1....,v1、v2....,v2、vm....,vm),其中v1>v2>...>vm,v1∈N。
有ni个值vi。与前导矢量对应的前导类包括利用一些可能限制通过前导类的所有有符号排列而获得的矢量。这些限制在它们适用时与可以是奇数或者偶数的负矢量分量数目有关。前导类中的矢量数目为:
C ( v ) = 2 m | p | n ! n 1 ! n 2 ! . . . n m ! , - - - ( 1 )
其中p为可以是0(无符号约束)、+1(偶数个负分量)或者-1(奇数个负分量)的奇偶位。
为了举例说明二项式编制索引,考虑4维前导矢量(2,1,1,0)。这里考虑排列而不考虑符号。
在下表1中给出属于前导类(2,1,1,0)的矢量,其中呈现两个不同编制索引变体:
Figure BPA00001232100300131
表1:用于前导矢量(2,1,1,0)的前导类
参照表1的第一变体可见:在第一组(索引为0-3、即前四个矢量,由水平线表明)中,值1和0的相对位置相同,但是值2的位置随着从一个矢量到另一矢量而改变。在第二组(索引为4-7)中与此相同,以此类推。第一组与第二组之间的差别在于值为1的分量如何处于在为值为2的分量判定位置之后可用的三个位置。这两个值在三个位置的可能布置数目由多项式系数给出。因此在第一变体中有三组,其中在各组中仅改变值2的位置,从而在三组中的各组中有
Figure BPA00001232100300133
个矢量。
因此可以得出结论,一种枚举前导类中的矢量的方式是一次性考虑矢量中的不同值并且检查它们的可能位置。对于所考虑的例子(变体1),首先考虑值2的可能位置,然后在其余3个位置之中考虑值为1的分量的位置。值为0的分量的位置依赖于前两个值的位置(因为是最末值),因而无需单独考虑它。
表1中的变体2按照类似方式。然而未在一组内、而是在多组之间改变值2的位置。因而现在有四组(索引分别为0-2、3-5、6-8和9-11)。在这些组中的各组中,三个矢量在出现两次的值1位于三个可用位置的布置中不同,即
回到针对在ITU-T SG16/Q9中的标准化之中的G.EV-VBR编码解码器提出的示例网格量化器,在下表2中再现其中定义的前导矢量(这些前导矢量由于缩放因子可以不同于标准化的前导矢量)。前导矢量(并且因此网格)的维度为八,并且有共计36个前导矢量。其中,奇值分量的前导矢量具有符号约束。特别地,如果所有八个分量的绝对值之和为四的倍数,则负分量的数目应当为偶数,否则它应当为奇数。例如,索引为0的前导矢量(1,1,1,1,1,1,1,1)具有求和8(四的倍数),因此在来自与它对应的前导类的矢量中应当有偶数个-1。索引为3的前导矢量(3,1,1,1,1,1,1,1)具有求和10(不是4的倍数),因此负分量的数目应当为奇数。
  索引   前导矢量   索引   前导矢量
  0   {1,1,1,1,1,1,1,1}   18   {4,4,4,0,0,0,0,0}
  1   {2,2,0,0,0,0,0,0}   19   {6,2,2,2,0,0,0,0}
  2   {2,2,2,2,0,0,0,0}   20   {6,4,2,0,0,0,0,0}
  3   {3,1,1,1,1,1,1,1}   21   {7,1,1,1,1,1,1,1}
  4   {4,0,0,0,0,0,0,0}   22   {8,0,0,0,0,0,0,0}
  5   {2,2,2,2,2,2,0,0}   23   {6,6,0,0,0,0,0,0}
  6   {3,3,1,1,1,1,1,1}   24   {8,2,2,0,0,0,0,0}
  7   {4,2,2,0,0,0,0,0}   25   {8,4,0,0,0,0,0,0}
  8   {2,2,2,2,2,2,2,2}   26   {9,1,1,1,1,1,1,1]
  9   {3,3,3,1,1,1,1,1}   27   {10,2,0,0,0,0,0,0]
  10   {4,2,2,2,2,0,0,0}   28   {8,8,0,0,0,0,0,0}
  11   {4,4,0,0,0,0,0,0}   29   {10,6,0,0,0,0,0,0}
  12   {5,1,1,1,1,1,1,1}   30   {12,0,0,0,0,0,0,0}
  13   {3,3,3,3,1,1,1,1}   31   {12,4,0,0,0,0,0,0}
  14   {4,2,2,2,2,2,2,0}   32   {10,10,0,0,0,0,0,0}
  15   {4,4,2,2,0,0,0,0}   33   {14,2,0,0,0,0,0,0}
  16   {5,3,1,1,1,1,1,1}   34   {12,8,0,0,0,0,0,0}
  17   {6,2,0,0,0,0,0,0}   35   {16,0,0,0,0,0,0,0}
表2:G.EV-VBR编码解码器中的前导矢量
可以通过使用(用于通用数字信号处理器(DSP)仿真,例如函数sub()、add()、L_mult0()、move16())由ITU G.191ITU-TSoftware Tool Library 2005 User’s Manual提供的定点库以ANSI-C编写的以下示例通用编制索引代码来描述用于属于前导类的矢量的二项式编制索引过程。其中,在双前斜线“//”之后或者在“/*”与“*/”符号之间提供对代码的注释。
这一编制索引代码为通用,即它适用于在表2的任何前导类中包含的输入矢量。
pi=DIM;move16();
index=0;move16();
i=0;move16();
tmp=sub(no_vals_[idx_lead],1);
//tmp=no_vals_[idx_lead]-1;
WHILE(tmp>0)
{
tmp=sub(tmp,1);//tmp--;
IF(tmp>0){
  find_pos_elim_fx(abs_cv,DIM,vals_[idx_lead][i],p);
  idx=c2idx_fx(pi,p,no_vals_ind_[idx_lead][i]);
        pi=sub(pi,no_vals_ind_[idx_lead][i]);
        //pi=pi-no_vals_ind_[idx_lead][i];
        q=number_fx(sub(no_vals_[idx_lead],
        add(1,i)),no_vals_ind_[idx_lead][i+1],pi);
        index=add(index,extract_l(L_mult0(idx,q)));
        //index=index+idx*q;
        i=add(i,1);//i++
    }
    ELSE{
       find_pos_fx(abs_cv,DIM,vals_[idx_lead][i],p);
       idx=c2idx_fx(pi,p ,no_vals_ind_[idx_lead][i]);
       index=add(index,idx);//index=index+idx;
    }
}
在这一编制索引代码中,变量和函数/进程具有以下含义:
■DIM为网格维度,即8。
■变量int no_vals_[36]存储用于各前导矢量的不同值的数目。
■变量int no_vals_ind_[36][4]存储各前导矢量中的每个个别值的数目。
■变量int vals_[36][4]存储属于各前导矢量的值。
■变量int idx_lead代表将要编制索引的输入矢量属于的前导类的索引。
■变量int abs_cv[8]保持将要编制索引的输入矢量的绝对值。
■函数ind_pos_elim_fx{int*abs_cv,int dim,int val,int*p)找到值为val的分量在绝对值为abs_cv的dim维矢量内的位置、将它们放入阵列p中并且从矢量abs_cv中消除它们以预备它用于搜索下一个值。
■函数find_pos_fx(int*abs_cv,int dim,int val,int*p)与find_pos_elim_fx相同而不消除分量。针对前导矢量中的倒数第二值调用这一函数,由于未对最末值进行进一步搜索,因此无需消除具有倒数第二值的分量。
■函数int c2idx_fx(int dim,int*p,int no_vals)向no_vals个分量到共计dim个可能分量中的定位分配索引。例如:
(xx00)索引0
(x0x0)索引1
(x00x)索引2
(0xx0)索引3
(0x0x)索引4
(00xx)索引5,
其中no_vals=2,DIM=4并且对两个“x”在四个可能位置的位置编制索引。
■函数int number_fx(int no_vals,int*no_vals_ind_,int dim)对通过具有no_vals个如下值的dim维矢量的无符号排列而获得的矢量数目进行计数,其中各值在阵列中的出现次数为no_vals_ind_。它对应于无因子2m|p|的等式(1)的公式。
可以根据以下例子理解上文呈现的通用编制索引代码的功能。再次考虑表1的变体2的示例前导类。这一例子中的前导矢量为(2,1,1,0),并且假设前导类与idx_lead=5关联,尽管这对于该例而言并不重要。另外假设将要编制索引的输入矢量为(1,0,2,1),即该例的维度比在表2中的使用8维矢量的示例网格量化器中更小。然而这由于上述编制索引代码的通用性而无关紧要。
上述编制索引代码中的变量然后初始化成以下值:
abs_cv=(1,0,2,1)//前导类5中的将要编制索引的输入矢量
DIM=4              //四维矢量
no_vals[5]=3       //目标矢量中的三个不同值,即三值目标矢
                    //量
no_vals_ind_[5]=(1,2,1)//在输入矢量中分别一次、两次和一
                          //次出现三个不同值
vals_[5]=(2,1,0)       //输入矢量中的三个不同值分别为2、
                          //1和0
上述编制索引代码然后产生以下结果(在各while迭代结束时):
i p   abs_cv   idx   pi   q   index
  0   (2)   (1,0,1)   2   3   3   6
  1   (0,2)   (0)   1   1   1   7
作为上表1中表示为变体2的前导类idx_lead=5中包含的输入矢量(1,0,2,1)的编制索引的最终结果,因此获得事实上与前导类5中的矢量(1,0,2,1)对应的(位置)索引7。
回到上文呈现的通用编制索引代码,除了代表输入矢量中的值位置的位置索引之外,应当对与输入矢量中的非零值的符号有关的信息进行编码。用于符号的索引计算为:
idx _ sign = Σ i = 1 s h i 2 i - 1 ,
其中S是将要编制索引的矢量中的非零分量的数目,如果第i个非零分量为正则bi为0、否则为1。S的值对于前导类中的所有矢量而言相同。
最终索引I(包括位置和符号索引信息以及代表输入矢量包含于其中的前导类的信息)然后计算为:
I=shl(index,idx_sign_max_bit[idx_lead]);
   //I=index<<idx_sign_max_bit[idx_lead];
I=L_add(I,L_deposit_1(idx_sign));
   //I=I+idx_sign;
I=extract_1(L_add(I,offset_lead_[idx_lead]));
//I=I+offset_lead[idx_lead];
其中,所用变量具有以下含义:
·int idx_sign_max_bit[36]为如下变量,该变量存储代表符号索引的位数。如果奇偶位为零则它实际上对应于矢量中的非零值的数目或者如果奇偶位为+/-1则对应于非零值-1的数目。
·uint offset_lead[36+1]代表用于各前导类的前导偏移。它实际上意味着如果在第一前导类中有n1个矢量、在第二前导类中有n2个矢量,以此类推,则offset_lead将为:0,n1,n1+n2,…。以这一方式,可以在最终索引I中包括如下信息,该信息代表输入矢量包含于其中的前导类。
·通过将idx_sign实际地放置于移位索引的最末idx_sign_max_bits[]位(即级联位置索引位和idx_sign位,而知道idx_sign可以至多使用idx_sign_max_bits并且为将要编制索引的当前矢量属于的前导类添加偏移)来获得最终索引I。
本发明的第一方面提出通过如果将要编制索引的输入矢量包含于属于前导类的预定义组的前导类中,则应用特定处理以及如果不是这样则应用通用处理,来减少上述通用编制索引的复杂度。
图2是图示了根据本发明第一方面的一个示例实施例的用于输入矢量编制索引的方法的流程图2。
在第一步骤200中,接收输入矢量。可以例如在量化过程期间将输入矢量例如确定为与作为前导类的并集的网格中的所有矢量最接近匹配。在步骤200中,也接收输入矢量包含于其中的前导类的标识。仅列举数例,这可以例如是用于前导类的索引或者输入矢量包含于其中的前导类的前导矢量。
在步骤201,中然后确定前导类是否包含于一个或者多个前导类的预定义组中。如果情况如此,则在步骤202中,应用特定处理。否则在步骤203中,应用通用处理。
现在将更详细地讨论用于前导类的预定义组和用于在对这样的前导类的预定义组的前导类中包含的输入矢量编制索引时应用的特定处理的例子。
根据本发明第一方面的第一示例实施例,仅与索引为20的前导矢量(参见表2)(即{6,4,2,0,0,0,0,0})关联的前导类受到特定处理。因此,前导类的预定义组仅包含由索引20标识的一个前导类。
特别地,上述通用编制索引代码中的函数number_fx()的调用可以替换为以下代码:
IF(sub(idx_lead,20)==0)//如果(idx_lead==20)
{
    q=42;move16();
    if(sub(tmp,1)==0){//如果(tmp==1)
      q=6;move16();
    }
}
ELSE{
    q=C[sub(pi,1)][{no_vals_ind_[idx_lead][add(i,1)])];
    move16();
    //q=C[pi-1][no_vals_ind_[idx_lead][i+1]];
}
其中,变量e[DIM+1][DIM+1]存储上至维度8的二项式系数。
在这一实施例中,特定处理由在idx_lead等于20的情况下执行的代码代表,并且通用处理由如果idx_lead不等于20则执行的代码代表。
在这一实施例的背景中,发明人已经观察到,索引为20的前导类是具有4个不同值的单个前导。索引为20的前导矢量(具有四个不同值的仅一个前导矢量)迫使表no_vals_ind_to为维度36×4(36个前导类和每一前导类的数目最多为四个不同值)、即no_vals_ind_[idx_lead][i]针对idx_lead=20和i=3(i范围从0至3)仅不同于零。然而在上文呈现的通用编制索引代码中,在函数number_fx()中针对idx_lead=20仅出现对no_vals_ind_的这一非零值的引用。将函数number_fx()拆分成特定处理(用于前导矢量索引为20的前导类)和通用处理(用于其余前导类)因此是有益的,其中在通用处理中,现在仅需要对维度为36×3的表no_vals_ind_的引用。由此,特定处理的引入允许优化通用处理。
在本发明第一方面的第二示例实施例的背景中,发明人已经观察到,在一些实际使用情况下前导类的小子集比其它前导类更频繁地出现。例如对于用G.EV-VBR编码解码器内的网格量化器(具有在表2的前导矢量上构建的网格结构)量化的数据,最可能使用索引为1的前导矢量,即(2,2,0,0,0,0,0,0),并且一般而言,如下矢量比其它矢量更有可能被使用,对于这些矢量而言,前导类具有两个不同值(例如索引为1、2、3、4、5、6、9等的前导矢量)。结论是特别对于这些矢量而言更考虑复杂度小的编制索引方法将是合理的。
为了计算用于符号的索引,需要一种检查各矢量分量的符号的循环。单独地/具体地考虑仅有两个不同值的前导矢量时的复杂度更低,因为编制索引过程处理仅一个值(第一个)的位置而无需进一步预备检查后继值的位置。此外,仅有两个值的多数前导矢量具有一个零值(例如参见表格2中的索引为1、2、4等的前导矢量),因而位置索引的创建可以在相同循环中与符号索引的创建高效地耦合。
有两类前导具有两个值:一类仅有偶值(例如参见表2中的索引为1、2、4、5等的前导矢量),而另一类仅有奇值(参见索引3、6、9等)。对于第一类,多数分量具有值0,而对于第二类,多数分量具有值1。
例如,以下具体过程可以用来替换上述整个通用编制索引代码以处理具有偶分量的二值矢量。
idx_sign=0;move16();
index=0;/*用作cnt*/move16();
FOR(i=0;i<DIM;i++)
{
    q=cv[i];move16();logic16();
    if (q)
    {
         p[index]=i;move16();//对于位置索引
    }
    if(q<0)
    {
           tmp=shl(1,index);//对于符号索引
    }
    if(q<0){
          idx_sign=add(idx_sign,tmp};//对于符号索引
    }
    if(q){
         index=add(index,1);
    }
}
index=c2idx_fx(DIM,p,index);//位置索引
以类似方式,可以单独地例如使用以下过程来处理第二类(具有奇值的二值矢量):
idx_sign =0;move16();
index=0;move16();
FOR(i=0;i<DIM;i++)
{
    q=cv[i];move16();
    if(q<0)
    {
          tmp=shl(1,i);
    }
    if(q<0)
    {
          idx_sign =add(idx_sign,tmp);
    }
    if(q<0){
          q=sub(0,q);
    }
    tmp=sub(q,1);
    if(tmp)
    {
         p[index]=i;move16();
    }
    if(tmp){
          index=add(index,1);
    }
}
idx_sign=shl(idx_sign,1);//由于非零奇偶位
index=c2idx_fx(DIM,p,index);
在本发明第一方面的这一第二示例实施例中,前导类的预定义组因此包括仅有二值的前导矢量的所有前导类(即前导矢量索引为1、2、3、4、5、6、9等的前导类)。特定处理由两个如下代码段表示,该代码段指定用于分别对具有偶分量和奇分量的二值前导矢量的处理,并且通用处理由适用于所有其它前导类(例如表2中的前导索引为0、7、8、10等的前导类)的通用编制索引代码表示。其中注意预定义组在这里拆分成两个子组:第一子组包括具有偶分量的二值前导矢量,而第二子组包括具有奇分量的二值前导矢量;并且对于这些子组中的各子组,在特定处理中进行不同动作。
作为本发明第一方面的第二示例实施例的第一修改,也将有可能省却用于具有奇分量的二值前导矢量(例如索引为3、6、9等)的特定处理并且代之以执行通用编制索引代码。前导类的预定义组然后将仅包含包括具有偶分量的二值前导矢量的前导类。可选地,可以省却用于具有偶分量的二值前导矢量的特定处理。
作为本发明第一方面的第二示例实施例的第二修改,也将有可能使特定处理限于仅确定位置索引(“index”)或者仅确定符号索引(“idx_sign”)。这一修改当然也可以应用于本发明第一方面的第二示例实施例的第一修改。
本发明的第一方面涉及例如在量化期间需要的对输入矢量编制索引。下文将描述的本发明第二方面涉及去索引,即基于与目标矢量关联的索引来确定(或者恢复)目标矢量。
可以通过以下示例通用去索引代码来描述用于如下目标矢量的二项式去索引过程,该目标矢量属于如表2中定义的前导类。这一去索引代码是通用的,即它适用于表2的任何前导类中包含的目标矢量。在这一去索引代码中使用的变量和函数对应于在上述本发明第一方面的背景中呈现的通用编制索引代码中使用的变量和函数。去索引过程接收标识前导类的变量idx_lead和标识位置索引的变量index_loc(代表目标矢量中的值的位置)作为输入,并且确定目标矢量cv作为输出。其中,未考虑目标矢量的符号,可以在单独过程中恢复它。
FOR(j=0;j<DIM;j++){
    cv[j]=vals_[idx_lead][sub(no_vals_[idx_lead],1)];
    move16();/*默认放置最末值*/
    occ_pos[j]=0;move16();
}
/*---------------------------------------------------*
no_places_old=DIM;move16();
FOR(i=0;i<sub(no_vals_lidx_lead],1);i++)
{
    no_vals_crt=no_vals_[idx_lead];
    no_places=sub(no_places_old,no_vals_ind_[idx_lead][i
    );
    tmp=sub(no_vals_[idx_lead],add(2,i));
    IF(tmp>0){
       quotient=number_fx(sub(no_val_scrt,add(1,i)),
Figure BPA00001232100300241
no_vals_ind_[idx_lead][i],no_places);
idx=div_int(index_loc,quotient,
Figure BPA00001232100300242
index_loc);
/*整数除法:index_loc/quotient=idx,
reminder index_loc*/
/*p是如下表,该表具有no_places个可用位置中的值
为vals[i]的位置/*
idx2c_fx(no_places_old,p,
no_vals_ind_[idx_lead][i],idx);
no_places_old=no_places;move16();
/*将第i个值放置于代码矢量中/*
        IF(i==0)
        {
            FOR(j-0;j<no_vals_ind_[idx_lead][i];j++)
            {
                pos=p[j];      move16();
                cv[pos]=vals_[idx_lead](i);move16();
                occ_pos[pos]=1;move16();
            }
         }ELSE{
            FOF(j=0;j<no_vals_ind_[idx_lead][i];j++)
            {
                pos=offset(p[j]);move16();move16();
                cv[pos]=vals_[idx_lead][i];move16();
                occ_pos(pos]=1;move16();
            }
        }
        /*更新偏移*/
        l=0;move16();
        FOR(j=0;j<DIM;j++}
        {
            IF(occ_pos[j]==0)
            {
                offset[1]=j;move16();
                l=add(1,1);
            }
        }
    }
    ELSE{
        idx2c_fx(no_places_old,p,
            no_vals_ind_[idx_lead][i],index_loc);
        /*将倒数第二值放置于代码矢量中/*
        FOR(j=0;j<no_vals_ind_[idx_lead][i];j++)
        {
            pos=offset[p[j]];move16();move16();
            cv[pos]=vals_[idx_lead][i];move16();
        }
    }
}
其中,函数idx2c_fx(int dim,int*p,int no_vals,int index_loc)与上文讨论的函数c2idx_fx互补,并且返回如index_loc规定的no_vals分量在dim维矢量中的定位p。
另外,变量int occ_pos[8]保持对已经解码的值的分量已经放置于其上的位置的跟踪。变量int offset[8]用来发现值的实际位置,因为如果例如一个值已经放置于8维矢量中,则用于后继值的位置索引仅相对于七个位置。例如对于4维前导(2110),如果在对值2的位置进行解码给出(x2xx)并且用于值1的位置索引为0时,则这对应于用于两个值一的位置(0,1),但是这些一将实际地放置于位置(0,2),因为第一个值2已经在位置1。
图3是图示了根据本发明第二方面的一个示例实施例的用于基于与目标矢量关联的索引来确定目标矢量的方法的流程图3。可以例如在去量化过程期间执行这一方法。
在第一步骤300中,接收与将要确定的目标矢量关联的索引。该索引可以例如是从前导类的矢量中选择矢量的索引,其中前导类中的矢量可以例如用二项式编制索引。除了索引之外,还接收目标矢量包含于其中的前导类的标识。然而这是可选的,因为目标矢量包含于其中的前导类的标识同样可以被包含于与目标矢量关联的索引中。可以例如从包含所有以下信息的索引获得在步骤300中接收的前导类的索引和标识:前导类的标识、与应当确定前导类中的哪个矢量作为目标矢量有关的信息和用于目标矢量的符号信息。
例如,在量化过程期间,已经把将会在图3的流程图3中确定的目标矢量选择为对网格中所有矢量的最接近匹配。
在步骤301中,然后确定前导类是否包含于一个或者多个前导类的预定义组中。如果情况如此,则在步骤302中应用特定处理。否则,在步骤303中,应用通用处理。
现在将更详细地讨论用于前导类的预定义组和用于在对包含于这样的前导类的预定义组的前导类中的目标矢量进行去索引时应用的特定处理的例子。
根据本发明第二方面的第一示例实施例,仅与索引为20的前导矢量(参见表2)(即{6,4,2,0,0,0,0,0})关联的前导类受到特定处理。因此,前导类的预定义组仅包含由索引20标识的一个前导类。
具体而言,上文呈现的通用去索引代码的第一FOR循环(在水平虚线上方)然后可以替换为以下代码:
FOR(j=0;j<DIM;j++){
   if(sub(idx_lead,20)==0){
     cv[j]=0;move16();
   }
   if(sub(idx_lead,20))
   {
     cv[j]=vals_[idx_lead}[sub(no_vals_[idx_lead],1)};
     move16();
   }
   occ_pos[j]=0;move16();
}
另外,通用去索引代码中的函数number_fx()的调用然后可以替换为以下代码:
IF(sub(idx_lead,20)==0)
{
  quotient=42;move16();
  if(sub(tmp,1)==0){
        quotient=6;move16();
  }
}
ELSE{
   quotient=
   C[sub(no_places,1)][(no_vals_ind_[idx_lead][add
   (i,1)])];move16();
}
其中,如上文已经说明的那样,变量C[DIM+1][DIM+1]存储上至维度8的二项式系数。
在这一实施例中,特定处理由在idx_lead等于20的情况下执行的代码代表,并且通用处理由如果idx_lead不等于20则执行的代码代表。
在这一实施例的背景中,发明人已经观察到索引为20的前导类是具有4个不同值的单个前导。索引为20的前导矢量(具有四个不同值的仅一个前导矢量)迫使表no_vals_ind_和表vals_都为维度36×4(36个前导类和每一前导类的数目最多为四个不同值),即仅针对idx_lead=20和i=3(i范围从0至3)存在no_vals_ind_[idx_lead][i]和vals_[idx_lead][i]。然而在上文呈现的通用去索引代码中,在通用去索引代码的已经替换为具体代码的部分中,针对idx_lead=20仅出现对no_vals_indx_和vals_的相应值的引用。然后在剩余通用去索引代码中,现在仅需要对维度为36×3的表no_vals_ind_和表vals_的引用。因此,引入特定处理允许对通用处理进行优化。
根据本发明第二方面的第二示例实施例,前导类的预定义组仅包含如下前导类,该前导类具有索引为1的前导类矢量(参见表2),即(2,2,0,0,0,0,0,0)。取代了总是进行通用去索引,即在包含于任何前导类中目标矢量的情况下适用的去索引(并且已经参照上述通用去索引代码呈现的),例如可以在具有索引为1的前导类矢量的前导类中包含的目标矢量的情况下进行以下特定处理,否则仅进行通用处理。注意如在上文呈现的通用去索引代码中那样,以下特定处理仅产生无符号目标矢量cv。
FOR(i=0;i<DIM;i++)
{
    cv[i]=0;move16();
}
idx2c_fx(DIM,p,2,index_loc);
FOR(i=0;i<2;i++)
{
    cv[p[i]]=2;move16();move16();
}
在G.EV.VBR编码解码器(即用于基于表2中定义的前导矢量的代码表)以及比特速率为16、24和32kbit/s的语音和音乐数据中,前导矢量(2,2,0,0,0,0,0,0)为目前最有可能的,从而将特定处理应用于它的前导类减少了去索引过程的总复杂度。
图4是能够实施根据本发明第一和第二方面的方法的设备4的示意框图。这一设备可以例如是移动电话、计算机或者任何其它电子设备。该设备包括有权访问程序存储器401和存储器402的中央处理单元(CPU)400。CPU 400可以例如执行程序存储器401中存储的计算机程序。其中程序存储器401可以固定地安装于设备4中或者是可拆卸的。例如,程序存储器401可以实现为具有存储于其上的计算机程序的计算机可读介质。存储器402可以例如实现为随机存取存取器(RAM)。程序存储器401和存储器402同样可以实现为单个部件。
CPU 400还控制:麦克风驱动器,该驱动器又控制麦克风;扬声器驱动器403,该驱动器又控制扬声器;以及接口405,可以经由该接口与其它设备交换数据。接口405可以例如实现为无线电接口。
设备4因此包括为了与另一实体建立基于音频的通信而需要的所有部件。经由麦克风驱动器404接收的音频信号可以由CPU 400编码,并且经由接口405发送到另一设备。来自其它设备的音频数据同样可以经由接口405来接收、由CPU 400解码并且经由扬声器驱动器403来呈现。
其中,为了进行编码和解码,设备4的CPU 400运行编码解码器,例如G.EV-VBR编码解码器。这一编码解码器可以例如实现为存储于程序存储器401中的计算机程序。以这一方式,设备4可以例如实施图1的结构块101、104、105和106。
CPU 400可以理解为如下处理部件,该部件进行输入矢量的编制索引(根据图2的流程图)和/或基于与目标矢量关联的索引来确定目标矢量(根据图3的流程图),并且为此而进行根据本发明第一和第二方面的特定处理和通用处理。同样,编码解码器或者其部分可以实施于专用硬件406(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或者任何其它专用硬件)中,然后专用硬件406可以理解为如下处理部件,该部件进行输入矢量编制索引和/或基于与目标矢量关联的索引来确定目标矢量,并且为此而进行根据本发明第一和第二方面的特定处理和通用处理。
CPU 400执行的程序代码也可以视为包括形式为功能模块的这样的处理部件。
上文已经借助示例实施例描述本发明。应当注意,存在本领域技术人员清楚的并且可以在不脱离所附权利要求书的范围和精神实质时实施的替代方式和变化。

Claims (34)

1.一种用于音频编码的方法,包括:
-对多个矢量集中的矢量集中包含的输入矢量进行编制索引,其中所述编制索引包括:
-在所述输入矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的输入矢量的情况下适用,并且
-在所述输入矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的输入矢量则将比应用于相同输入矢量的所述特定处理更复杂,
其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列。
2.根据权利要求1所述的方法,其中所述前导类是有符号的,并且其中所述编制索引产生位置索引和符号索引,所述位置索引代表所述输入矢量中的值的位置,而所述符号索引代表所述输入矢量的分量的符号。
3.根据权利要求2所述的方法,其中在所述特定处理中,在一次循环中联合地确定所述位置索引和所述符号索引。
4.根据权利要求1所述的方法,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有以下前导矢量的前导类,该前导矢量的分量仅取预定义数目的不同值。
5.根据权利要求4所述的方法,其中所述前导类的预定义组包含前导类的第一子组和前导类的第二子组,所述前导类的第一子组具有分量仅取偶值的前导矢量,而所述前导类的第二子组具有分量仅取奇值的前导矢量,并且其中所述特定处理在所述输入矢量包含于所述前导类的第一子组中的前导类中的情况下规定与在所述输入矢量包含于所述前导类的第二子组中的前导类中的情况下不同的动作。
6.根据权利要求1所述的方法,其中在所述矢量集的预定义组中的矢量集中包含的输入矢量具有比未在所述矢量集的预定义组中的矢量集中包含的输入矢量更大的编制索引概率。
7.根据权利要求1所述的方法,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量取最大数目的不同值。
8.根据权利要求1所述的方法,其中所述通用处理在所述多个矢量集中的除了所述矢量集的预定义组中的所述矢量集之外的任何矢量集中包含输入矢量的情况下适用,以允许优化所述通用处理。
9.根据权利要求1所述的方法,其中所述编制索引是二项式编制索引。
10.根据权利要求2-9中的任一权利要求所述的方法,其中在基于由所述前导类定义的网格码本的量化过程中进行所述输入矢量的所述编制索引。
11.一种用于音频编码的装置,包括:
用于对多个矢量集中的矢量集中包含的输入矢量进行编制索引的装置,
用于在将要编制索引的所述输入矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的输入矢量的情况下适用,
用于在将要编制索引的所述输入矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理的装置,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的输入矢量则将比应用于相同输入矢量的所述特定处理更复杂,
其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列。
12.根据权利要求11所述的装置,其中所述前导类是有符号的,并且其中所述编制索引产生位置索引和符号索引,所述位置索引代表所述输入矢量中的值的位置,而所述符号索引代表所述输入矢量的分量的符号。
13.根据权利要求12所述的装置,其中在所述特定处理中,在一次循环中联合地确定所述位置索引和所述符号索引。
14.根据权利要求11所述的装置,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有以下前导矢量的前导类,该前导矢量的分量仅取预定义数目的不同值。
15.根据权利要求14所述的装置,其中所述前导类的预定义组包含前导类的第一子组和前导类的第二子组,所述前导类的第一子组具有分量仅取偶值的前导矢量,而所述前导类的第二子组具有分量仅取奇值的前导矢量,并且其中所述特定处理在所述输入矢量包含于所述前导类的第一子组中的前导类中的情况下规定与在所述输入矢量包含于所述前导类的第二子组中的前导类中的情况下不同的动作。
16.根据权利要求11所述的装置,其中在所述矢量集的预定义组中的矢量集中包含的输入矢量具有比未在所述矢量集的预定义组中的矢量集中包含的输入矢量更大的编制索引概率。
17.根据权利要求11所述的装置,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量取最大数目的不同值。
18.根据权利要求11所述的装置,其中所述通用处理在所述多个矢量集中的除了所述矢量集的预定义组中的所述矢量集之外的任何矢量集中包含输入矢量的情况下适用,以允许优化所述通用处理。
19.根据权利要求11所述的装置,其中所述编制索引是二项式编制索引。
20.根据权利要求11-19中的任一权利要求所述的装置,其中在基于由所述前导类定义的网格码本的量化过程中进行所述输入矢量的所述编制索引。
21.一种用于音频编码的方法,包括:
-基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定所述目标矢量,其中所述确定包括:
-在所述目标矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的目标矢量的情况下适用,并且
-在所述目标矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的目标矢量的情况下则将比应用于相同目标矢量的情况下的所述特定处理更复杂,
其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列。
22.根据权利要求21所述的方法,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量仅取预定义数目的不同值。
23.根据权利要求21所述的方法,其中在所述矢量集的预定义组中的矢量集中包含的目标矢量具有比未在所述矢量集的预定义组中的矢量集中包含的目标矢量更大的确定概率。
24.根据权利要求21所述的方法,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量取最大数目的不同值。
25.根据权利要求21所述的方法,其中所述通用处理在所述多个矢量集中的除了所述矢量集的预定义组中的所述矢量集之外的任何矢量集中包含目标矢量的情况下适用,以允许优化所述通用处理。
26.根据权利要求21所述的方法,其中所述索引经由二项式编制索引与所述目标矢量关联。
27.根据权利要求21-26中的任一权利要求所述的方法,其中在基于由所述前导类定义的网格码本的去量化过程中进行所述目标矢量的所述确定。
28.一种用于音频编码的装置,包括:
用于基于与多个矢量集中的矢量集中包含的目标矢量关联的索引来确定所述目标矢量的装置,
用于在将要确定的所述目标矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的目标矢量的情况下适用,以及
用于在将要确定的所述目标矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理的装置,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的目标矢量的情况下则将比应用于相同目标矢量的情况下的所述特定处理更复杂,
其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列。
29.根据权利要求28所述的装置,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量仅取预定义数目的不同值。
30.根据权利要求28所述的装置,其中在所述矢量集的预定义组中的矢量集中包含的目标矢量具有比未在所述矢量集的预定义组中的矢量集中包含的目标矢量更大的确定概率。
31.根据权利要求28所述的装置,其中所述特定处理适应的所述特性在于所述前导类的预定义组仅包含具有如下前导矢量的前导类,该前导矢量的分量取最大数目的不同值。
32.根据权利要求28所述的装置,其中所述索引经由二项式编制索引与所述目标矢量关联。
33.根据权利要求28-32中的任一权利要求所述的装置,其中在基于由所述前导类定义的网格码本的去量化过程中进行所述目标矢量的所述确定。
34.一种用于音频编码的系统,包括:
-第一处理部件,包括:用于对多个矢量集中的矢量集中包含的输入矢量进行编制索引的装置,用于在将要编制索引的所述输入矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的输入矢量的情况下适用,并且用于在将要编制索引的所述输入矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理的装置,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的输入矢量的情况下则将比应用于相同输入矢量的情况下的所述特定处理更复杂,其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列,以及
-第二处理部件,包括:用于基于与所述多个矢量集中的矢量集中包含的目标矢量关联的索引来确定所述目标矢量的装置,用于在将要确定的所述目标矢量包含于所述多个矢量集中的一个或者多个矢量集的预定义组中的矢量集中的情况下进行特定处理的装置,所述特定处理适应所述矢量集的预定义组中的所述矢量集的特性并且仅在包含在具有所述特性的矢量集中的目标矢量的情况下适用,以及用于在将要确定的所述目标矢量未包含于所述矢量集的预定义组中的矢量集中的情况下进行通用处理的装置,其中所述通用处理如果应用于具有所述特性的所述矢量集中包含的目标矢量的情况下则将比应用于相同目标矢量的情况下的所述特定处理更复杂,其中所述矢量集是前导类,并且其中各前导类包括不同前导矢量和所述前导矢量的排列。
CN200880128366.XA 2008-02-15 2008-02-15 复杂度减少的矢量编制索引和去索引 Active CN101981618B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2008/051901 WO2009100768A1 (en) 2008-02-15 2008-02-15 Reduced-complexity vector indexing and de-indexing

Publications (2)

Publication Number Publication Date
CN101981618A CN101981618A (zh) 2011-02-23
CN101981618B true CN101981618B (zh) 2014-06-18

Family

ID=39495330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880128366.XA Active CN101981618B (zh) 2008-02-15 2008-02-15 复杂度减少的矢量编制索引和去索引

Country Status (10)

Country Link
US (1) US8762141B2 (zh)
EP (2) EP3367381B1 (zh)
KR (1) KR101170137B1 (zh)
CN (1) CN101981618B (zh)
AR (1) AR070125A1 (zh)
ES (1) ES2821432T3 (zh)
PL (1) PL3367381T3 (zh)
TW (1) TWI480859B (zh)
WO (1) WO2009100768A1 (zh)
ZA (1) ZA201006498B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2011241424B2 (en) * 2010-04-14 2016-05-05 Voiceage Evs Llc Flexible and scalable combined innovation codebook for use in CELP coder and decoder
JP5711733B2 (ja) * 2010-06-11 2015-05-07 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 復号装置、符号化装置及びこれらの方法
HUE039862T2 (hu) 2010-07-02 2019-02-28 Dolby Int Ab Audio dekódolás szelektív utószûréssel
KR101461840B1 (ko) 2010-11-26 2014-11-13 노키아 코포레이션 낮은 복잡도의 타깃 벡터 식별
WO2012069886A1 (en) * 2010-11-26 2012-05-31 Nokia Corporation Coding of strings
WO2012101483A1 (en) 2011-01-28 2012-08-02 Nokia Corporation Coding through combination of code vectors
WO2013147667A1 (en) * 2012-03-29 2013-10-03 Telefonaktiebolaget Lm Ericsson (Publ) Vector quantizer
KR101996503B1 (ko) * 2012-04-13 2019-07-05 삼성디스플레이 주식회사 액정표시장치 및 그 제조방법
CN109979470B (zh) * 2014-07-28 2023-06-20 瑞典爱立信有限公司 椎体矢量量化器形状搜索
WO2017005296A1 (en) 2015-07-06 2017-01-12 Nokia Technologies Oy Bit error detector for an audio signal decoder

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493045A (en) 1981-10-19 1985-01-08 Fairchild Camera & Instrument Corp. Test vector indexing method and apparatus
US5105353A (en) * 1987-10-30 1992-04-14 International Business Machines Corporation Compressed LR parsing table and method of compressing LR parsing tables
US6084595A (en) * 1998-02-24 2000-07-04 Virage, Inc. Indexing method for image search engine
CA2388358A1 (en) * 2002-05-31 2003-11-30 Voiceage Corporation A method and device for multi-rate lattice vector quantization
US20070094035A1 (en) 2005-10-21 2007-04-26 Nokia Corporation Audio coding
US20070168197A1 (en) * 2006-01-18 2007-07-19 Nokia Corporation Audio coding

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A.Vasilache et al.Robust indexing of lattices and permutation codes over binary symmetric channels.《SIGNAL PROCESSING》.2003,第83卷(第7期),1467-1486.
Chun Wang et al.Lattice Labeling Algorithms for Vector Quantization.《IEEE Transactions on Circuits and Systems for Video Technology》.1998,第8卷(第2期),206-220.
Lattice Labeling Algorithms for Vector Quantization;Chun Wang et al;《IEEE Transactions on Circuits and Systems for Video Technology》;19980430;第8卷(第2期);206-220 *
Low-complexity multi-rate lattice vector quantization with application to wideband TCX sppech coding at 32 Kbit/s;Stephane Ragot et al;《Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing, 2004》;20041231;第1卷;501-504 *
Robust indexing of lattices and permutation codes over binary symmetric channels;A.Vasilache et al;《SIGNAL PROCESSING》;20031231;第83卷(第7期);1467-1486 *
Stephane Ragot et al.Low-complexity multi-rate lattice vector quantization with application to wideband TCX sppech coding at 32 Kbit/s.《Proceedings of IEEE International Conference on Acoustics, Speech, and Signal Processing, 2004》.2004,第1卷501-504.

Also Published As

Publication number Publication date
WO2009100768A1 (en) 2009-08-20
US20110010169A1 (en) 2011-01-13
EP2260486B1 (en) 2018-04-18
TW200947420A (en) 2009-11-16
KR101170137B1 (ko) 2012-07-31
ZA201006498B (en) 2012-02-29
ES2821432T3 (es) 2021-04-26
CN101981618A (zh) 2011-02-23
PL3367381T3 (pl) 2020-12-14
AR070125A1 (es) 2010-03-17
EP3367381B1 (en) 2020-09-02
EP3367381A1 (en) 2018-08-29
US8762141B2 (en) 2014-06-24
TWI480859B (zh) 2015-04-11
EP2260486A1 (en) 2010-12-15
KR20100113172A (ko) 2010-10-20

Similar Documents

Publication Publication Date Title
CN101981618B (zh) 复杂度减少的矢量编制索引和去索引
CN101388210B (zh) 编解码方法及编解码器
WO2009025676A1 (en) Encoding and/or decoding digital content
EP3074970B1 (en) Audio encoder and decoder
CN103280221A (zh) 一种基于基追踪的音频无损压缩编码、解码方法及系统
KR100984234B1 (ko) 벡터 코딩/디코딩 방법 및 장치 그리고 스트림 미디어플레이어
CN110932734A (zh) 一种基于交替方向乘子法的深度学习信道译码方法
CN107004422A (zh) 编码装置、解码装置、它们的方法及程序
CN114615507A (zh) 一种图像编码方法、解码方法及相关装置
CN101467459B (zh) 信号的矢量量化字典生成方法、编解码器及编解码方法
CN114219027A (zh) 一种基于离散小波变换的轻量级时间序列预测方法
CN1744475B (zh) 通过冗余和迭代处理进行信号处理的方法和系统
Angus Tree based lookahead sigma delta modulators
CN111049531B (zh) 一种基于分段线性惩罚函数的交替方向乘子法的深度学习信道译码方法
Yahampath Predictive vector quantizer design for distributed source coding
US7724159B2 (en) System, method, and/or apparatus for digital signal sorting
Aksu et al. Design, performance, and complexity analysis of residual trellis-coded vector quantizers
CN101673547B (zh) 编码方法、解码方法及其装置
KR20230164901A (ko) 향상된 음성을 컨디셔닝 피쳐로 활용하는 트랜스포머 기반 음성인식 기술
CN110771045A (zh) 编码装置、解码装置、编码方法、解码方法、以及程序
Arif et al. Effect of noise on speech compression in Run Length Encoding scheme
Chan et al. A low-complexity, high-quality, 64-Kbps audio codec with efficient bit allocation
CN112583422A (zh) 数据译码方法和装置及计算机存储介质
Sanikomm Hardware Implementation of a Novel Image Compression Algorithm
Syafalni et al. Improved Performance of Multistage Lattice Vector Quantization with Hybrid Lattice Structure

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: 20160214

Address after: Espoo, Finland

Patentee after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Patentee before: Nokia Oyj