CN102037650A - 用于信号的低复杂度组合编码的装置和方法 - Google Patents
用于信号的低复杂度组合编码的装置和方法 Download PDFInfo
- Publication number
- CN102037650A CN102037650A CN2009801088337A CN200980108833A CN102037650A CN 102037650 A CN102037650 A CN 102037650A CN 2009801088337 A CN2009801088337 A CN 2009801088337A CN 200980108833 A CN200980108833 A CN 200980108833A CN 102037650 A CN102037650 A CN 102037650A
- Authority
- CN
- China
- Prior art keywords
- mrow
- locations
- unoccupied
- occupied
- positions
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 239000013598 vector Substances 0.000 claims description 94
- 238000001208 nuclear magnetic resonance pulse sequence Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 74
- 238000010586 diagram Methods 0.000 description 14
- 230000003044 adaptive effect Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 101100136092 Drosophila melanogaster peng gene Proteins 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000007493 shaping process Methods 0.000 description 4
- 230000003595 spectral effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
一种用于对脉冲位置和/或脉冲幅度编码和解码的方法和结构,其在编码具有非零值的脉冲位置和编码具有零值的脉冲位置之间进行自适应切换。
Description
背景技术
用于对关于语音、音频、图像、视频和其他信号的向量或矩阵量进行编码的方法是公知的。Peng等人的美国专利6,236,960(通过引用并入此处)中描述的一种该方法被称为阶乘脉冲编码(或FPC)。FPC可以使用总共M位对向量xi进行编码,给出了
并且向量xi的所有值取整数值,使得-m≤xi≤m,其中m是单位幅度脉冲的总数,并且n是向量长度。总共M位用于按最高效的方式对N个组合进行编码,使得描述组合的理论最小数目的如下表达式为真:
对于该式,F(n,d)是由下式给出的n个位置上的d个非零向量元素的组合数目:
D(m,d)是由下式给出的给定的总共m个单位脉冲的d个非零向量元素的组合数目:
D(m,d)=F(m-1,d-1), (4)
并且2d表示所需用于描述d个非零向量元素的极性(符号)的组合。项min(m,n)允许如下情况,其中单位幅度脉冲的数目m超过向量长度n。在现有技术中,已全面地描述了用于对具有该形式的向量进行编码和解码的方法和装置。此外,在3GPP2标准C.S0014-B中已描述了该编码方法的实用的实现方案,其中,向量长度n=54和m=7的单位幅度脉冲的数目产生了M=35位的码字。
尽管这些n和m值未引起任何不合理的复杂度负担,但是较大的值可能快速地引起问题,特别是在需要使存储器和计算复杂度尽可能低的移动手持设备中。例如,针对一些应用(诸如音频编码)的该编码方法的使用可能需要n=144和m=28或者更高。在这些环境下,与使用现有技术的方法产生组合表达式F(n,d)关联的成本对于实用的实现方案而言可能是过高的。
在更详细地考虑该成本时,我们可以将式3重写为:
由于F(144,28)将需要分子中的197位精度和分母中的98位精度,以产生99位的商,因此直接的实现方案是成问题的。由于现今的手持设备中使用的大部分数字信号处理器(DSP)典型地仅支持16位×16位的乘法运算,因此需要使用特殊的多精度乘法/除法例程。这些例程需要一系列嵌套的乘法/累加运算,其典型地需要k次乘法/累加(MAC)量级的运算,其中k是操作数中的16位片段的数目。对于197位的操作数,因此,执行单次197×16位乘法将需要最小13次MAC运算加上移位和存储操作。按相似的方式计算分母项,以产生98位的结果。此外,需要197/98位的除法,这是特别复杂的运算,因此式5中的整个阶乘关系的计算将需要相当大的资源。
为了降低复杂度,式5可以被重写以分散除法运算,从而产生下式:
在该表达式中,减少了除法运算的动态范围,但是不幸地,需要增加商的分辨率以准确地表示除以3、7、9等的除法。为了适应该结构,还需要取整运算以确保整数结果。假设大量的高精度除法运算,则该实现方案不能充分地解决关于大的m和n的复杂度问题,并且还具有因积累的精度误差而产生不正确的结果的可能性。
在另一实现方案中,式5可以按如下方式重新排列:
如果从左到右对该表达式估值,则结果将总是产生整数值。尽管该方法在一定程度上控制了精度和动态范围问题,但是大的m和n的值仍然需要大量使用多精度乘法和除法运算。
附图说明
被认为是新颖的本发明的特征在所附权利要求中得以具体阐述。然而,通过结合附图参照描述本发明的某些示例性实施例的本发明的以下详细描述,可以最佳地理解本发明本身的构造和操作方法,以及其目标和优点,在附图中:
图1是编码器的框图。
图2是解码器的框图。
图3是示出图1和图3的组合函数生成器的操作的流程图。
图4是根据各种实施例的编码器的框图。
图5是示出根据各种实施例的编码器的操作的流程图。
图6是根据各种实施例的解码器的框图。
图7是示出根据各种实施例的解码器的操作的流程图。
图8是示出根据各种实施例的使用估计密度的编码器的操作的流程图。
图9是示出根据各种实施例的使用估计密度的解码器的操作的流程图。
图10是示出根据各种实施例的编码器相对阈值的操作的流程图。
图11是示出根据各种实施例的解码器相对阈值的操作的流程图。
本领域的技术人员将认识到,附图中的元素被图示用于简单和清楚的目的,并且不一定依比例绘制。例如,图中的一些元素的尺寸可以相对于其他元素放大以帮助改进对本发明的实施例的理解。
具体实施方式
尽管本发明可以具有许多不同形式的实施例,但是在附图中示出和将在此详细地描述其特定实施例,应当理解的是,本公开将被视为本发明的原理的示例,并且不应使本发明限于所示出和详细描述的特定实施例。在以下描述中,在不同的附图中相同的附图标记用于描述相同、相似或相应的部件。
在本文中,诸如第一和第二、顶部和底部等关系性术语可以仅仅用于使一个实体或动作区别于另一实体或动作,但是不一定需要或意指这些实体或动作之间的任何实际的此类关系或顺序。术语“包括”或其任何其他变化形式应涵盖非排他性的内含物,使得包括元素列表的过程、方法、物品或装置不仅包括这些元素,而且可以包括未明确列出的或者对于该过程、方法、物品或装置是固有的其他元素。在没有更多限制的情况下,后跟有“包括一个”的元素并不排除包括该元素的过程、方法、物品或装置中的另外的相同元素的存在。
本文通篇中提及的“一个实施例”、“某些实施例”、“实施例”或者相似的术语意味着结合实施例描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。因此,本说明书通篇中各个位置出现的这些习语不一定均指的是同一实施例。此外,特定的特征、结构或特性可以按任何适当的方式无限制地组合在一个或多个实施例中。
如这里使用的术语“或者”应被解释为内含的或者意味着任何一个或多个组合。因此,“A、B或者C”意味着“以下组合中的任何组合:A;B;C;A和B;A和C;B和C;A、B和C”。此定义的例外将仅出现在如下情况中:即,元素、功能、步骤或动作的组合按某种方式固有地相互排斥。
本发明通常涉及对向量进行编码,并且具体地,涉及向量的组合阶乘脉冲编码。
现在转到附图,其中相同的附图标记表示相同的部件,图1是编码器100的框图。编码器100包括向量生成器102、组合编码电路(编码器)106、组合函数生成器108、以及其他编码电路104。在操作期间,由向量生成器102接收待编码的输入信号。如本领域中已知的,输入信号可以包括诸如语音、音频、图像、视频的信号和其他信号。
向量生成器102接收输入信号并且创建向量xi。向量生成器102可以包括许多编码范例,其包括但不限于,如Peng等人描述的码激励线性预测(CELP)语音编码,包括基于离散傅立叶变换(DFT)、离散余弦变换(DCT)、和改进的离散余弦变换(MDCT)的方法的关于音频、图像和视频的变换域编码,基于小波的变换编码,直接时域脉冲码调制(PCM),差分PCM,自适应差分PCM(ADPCM),或者本领域中公知的子带编码技术系列中的任何一个。事实上,可以根据本发明的某些实施例有利地处理具有以上给出的形式的任何信号向量。
组合编码电路106接收向量xi,并且使用阶乘脉冲编码产生码字C。如上文讨论的,阶乘脉冲编码可以使用总共M位对向量xi进行编码,给定并且向量xi的所有值取整数值,使得-m≤xi≤m,其中m是单位幅度脉冲的总数,并且n是向量长度。如上文讨论的,较大的m和n值可能快速地引起问题,特别是在需要使存储器和计算复杂度尽可能低的移动手持设备中。
为了解决该问题,组合函数生成器108利用用于产生F′(n,d)的低复杂度技术。组合编码电路106随后利用F′(n,d)产生码字C。电路108利用阶乘组合F′(n,d)的相对低的分辨率近似(位精度),其仅提供足以允许生成有效的码字的精度。就是说,只要维持某些属性,函数F(n,d)的适当近似就足以确保可以对所产生的码字唯一地解码。
为了描述F′(n,d)的生成,首先推导出作为F(n,d)的适当的近似的函数F′(n,d)。第一步骤是获得式5的以任意的a为底的对数,并且获得重新排列的项的以a为底的反对数:
其中函数expa(k)=ak。接着,定义函数P(i)、Q(d)和R(k),并且代入式8,使得:
然而,根据本发明的示例性实施例,为了使得到的码字可以唯一地解码,F(n,d)和F′(n,d)没有必要是等同的。仅存在足以使其保持为真的两个条件:
F′(n,d)≥F(n,d), (10)
和
F′(n,d)≥F′(n-1,d)+F′(n-1,d-1)。 (11)
对于第一个条件,所述约束被简单地描述为,如果F′(n,d)<F(n,d),则将存在重叠的码空间,并且随后,将存在能够生成特定码字的不止一个输入;因此,码字不是可以唯一地解码的。第二个条件陈述了关于给定的n,d的“误差”应大于或等于Peng等人在美国专利6,236,960中描述的与递归关系的前一元素关联的误差项的和。可能出现F(n,d)=F(n-1,d)+F(n-1,d-1),这仅在组合表达式准确地等于时为真。然而,尽管式11中的不等式是充分的,但是对于所有n和d值,其不一定全为真。对于这些值,F(n,d)可以满足从Peng等人的式31得到的另一不等式,并且其由下式给出:
在该情况中,对于某些(m,k),(m≤n),(k≤d),式11必须满足严格不等式,就是说:
F(m,k)>F(m-1,k)+F(m-1,k-1),m≤n,k≤d。 (13)
再次参照式9,现在希望通过利用原函数的低复杂度的近似,创建函数P′(i)、Q′(d)和R′(k),以生成F′(n,d),使得:
并且其中,满足式10和11中给出的条件。考虑P(i),可能希望近似该函数,使得P′(i)≥loga(i),i∈[1,2,...,n]。如果选择a=2并且随后将P′(i)约束为32位精度,由于大部分DSP支持单周期32位加法,因此得到的运算容易地在手持移动设备上实现。因此,我们定义:
其中是l(i)是移位因子,其可以作为i的函数而变化。在优选实施例中,l(i)=l=21,但是许多其他的值的集合是可能的。对于该示例,2l因子等同于向左移位l位,由此取整函数移除小数位,同时向上取整到下一个最高的整数,并且最后,2-l因子使结果向右返回移位l位。使用该方法,对于所有i≥1,函数P′(i)≥log2(i),再者由于log2域中的9位正整数分辨率可以表示512位的数,因此可以仅使用32位来提供充分的动态范围和精度。为了避免实时计算这些值的复杂度,它们可以被预先计算并且存储在表格中,对于F(144,28)示例,该表格仅使用存储器的144×4个字节。使用相似的方法对Q(d)进行近似,得到:
其中由于从总量中减去该量,因此使用取整函数这确保了使得Q′(d)的贡献将确保F′(n,d)≥F(n,d)。尽管l(j)可以依赖于m和n的配置而假设许多值,但是优选实施例对于可变的移位因子使用值l(j)=l=14。如同P′(i),Q′(d)可以被预先计算并且存储在表格中,对于F(144,28)示例,该表格仅使用存储器的28×4个字节。为了定义R′(k),需要首先将k定义为:
对于上文定义的P′(i)和Q′(d),k优选地是32位的数,其具有8位无符号整数部分ki和24位小数部分kf。使用该设置,通过使k=ki+kf并且随后以2为底取反对数,以产生可以得到R′(k)≥exp2(k)=2k。随后可以使用泰勒级数展开来按所期望的精度估计小数部分,其由表示,使用向上取整函数对结果向上取整,并且随后使结果适当地移位以形成多精度结果(仅具有l个有效位),使得:
其中,是施加到泰勒级数展开结果的整数移位因子。这里,l是按照与式15和16相似的方式使用的移位因子,用以确保R′(k)≥2k。然而,由于实际上不能预先计算R′(k)以进行高效的实时操作,因此需要在指明编码器和解码器中所需的准确操作上花费很多心思,以确保重新构造的信号向量准确地与输入信号向量匹配。应当注意,通过使向左移位可以获得R′(k),其可以由l位准确地表示。
在以上讨论中,已选择了函数P′(i)、Q′(d)和R′(k),使得每个单独的函数估值确保得到F′(n,d)≥F(n,d)。然而,仅仅对于累加影响而言需要满足该条件。例如,P′(i)和Q′(d)可以如上文所述,但是R′(k)可以是更加常规的R′(k)≈2k函数,其可以截去或舍去最低有效位,使得对于一些k值,R′(k)可以小于2k。只要该影响相对于P′(i)和Q′(d)的影响是小的,这就是可接受的,因此式10和11中的属性仍保持为真。
再者,只要满足关于式10和11的属性,在不丧失一般性的情况下可以使用任何函数P′(i)、Q′(d)和R′(k)。然而必须小心的是,如果使用过小的精度,则可能出现位速率的增加。还应当注意,在位速率和复杂度之间存在固有的折衷,并且对于大的m、n值,1或2位的增加可能是合理的折衷,以用于复杂度的显著降低。
现在描述在组合编码电路106中的用于位置和幅度的部分码字C的公式化。假设π={p1,p2,....,pv}是非零脉冲位置(按增序)并且μ={m1,m2,....,mv}是向量x中的各个位置的幅度。关于脉冲位置的码由下式给出:
并且关于脉冲幅度的码由下式给出:
因此,这些码字的公式化表示需要添加v和v-1个多精度数。在解码器中需要相似的减法运算。当n和m大时,这些运算也增加了FPC方法的复杂度。考虑关于多层嵌入编码系统的音频信号的编码/解码。该技术用于编码多层系统的三个层中的残差信号的变换。假设20ms块的尺寸是n=280并且对于所有层是相同的。用于编码的脉冲的数目取决于每个层的位速率。如果每个层是8kbps、16kbps或者32kbps,则它们分别需要160位、320位和640位来用于对20ms块进行编码。使用FPC技术,对于每层的160位、320位和640位,分别可以使用28、74和230个脉冲对长度为280的块进行编码。式(19)和(20)中的多精度运算是在典型地针对16位字进行操作的数字信号处理器上执行的。因此,为了形成160位码字,需要对10个字执行加法运算,并且为了形成640位码字,需要对40个字执行加法运算。每个加法运算占用4个单元(进位的生成,移动到数组,与进位相加)。因此多层系统的p个层中的k位码字的编码/解码需要次运算/秒。对于n、m和p的各种值,表1中示出了多精度加法/减法运算的复杂度。在该表中,WMOPS表示加权的每秒执行的百万次运算。表1:使用现有技术方法的FPC编码/解码中的加法/减法的复杂度
从表1中注意到,当位速率倍增时,多精度加法的复杂度增加六倍。
如前文提及的,组合函数由如下给出的近似函数F′(n,r)替换:
其中
并且R′(k)是函数R′(k)≈2k的近似,被给出为:
其中,k=ki+kf被分解为k的整数和小数部分,并且是k的小数部分的低分辨率泰勒级数展开。基于以上预先定义的函数Q′(r)和R′(k),首先获得了P′(i),从而对于n和d的所有值,满足唯一可解码不等式
F′(n,d)>F′(n-1,d)+F′(n-1,d-1)。(24)
返回式(19)和(20),用近似函数F′替换实际的函数F,从而产生了:
非零位置的数目的编码:
lR位尾数和指数表示格式在对非零位置的数目编码时也具有优点。非零位置的数目v的编码由下式给出
可以容易地看到,较之采用多精度格式,采用尾数和指数格式的两个近似函数的乘法是更容易的。然而主要优点是,当希望降低复杂度时,使用lR位尾数和指数表示,可以仅使用两个字来预先存储F′(n,k)和F′(m-1,k-1)中的每一个(它们的lR位尾数的积和它们的指数的和也可以被预先存储)。这使得在不需要相当数量的ROM的情况下能够快速地对v编码。
图2是解码器200的框图。如所示出的,解码器200包括组合解码电路206、信号重建电路210、其他解码电路204、和组合函数生成器108。在操作期间,组合码字由组合解码电路206接收。组合解码电路206向组合函数生成器提供n和d,并且作为响应,接收F′(n,d)。解码电路302随后基于F′(n,d)创建向量xi。电路206按与电路106相似的方式操作,不同之处在于使用减法替换加法运算。换言之,Ψ′k=Ψ′k+1-F′(pk,k)。向量xi被传递到信号重建电路210,其中,基于xi和来自其他解码电路204的其他参数创建输出信号(例如,语音、音频、图像、视频或其他信号)。更具体地,其他参数可以包括许多与特定实施例中正在使用的信号编码范例关联的信号重建参数。这可以包括但不限于,信号缩放和能量参数以及频谱整形和/或合成滤波器参数。通常这些参数用于按照再现最终输出信号的方式对重建的信号向量xi进行能量缩放和/或频谱整形。
图3是示出图1和图3的组合函数生成器的操作的流程图。更具体地,图3的逻辑流程300示出了用于组合函数生成器108产生F′(n,d)的步骤。该逻辑流程开始于301、302,其中,接收输入n和d。在303中累加器A被设定为0。在304中计数器i被设定为等于n-d+1。在306中,将对数近似P′(i)添加到累加器A。在310中,使计数器i递增1。在循环中重复306和310,直至计数器i大于n。312测试i>n并且当i变得大于n时终止循环。在此阶段,累加器包含组合函数F(n,d)的分子的对数近似。在316中,从累加器中减去组合函数的分母的对数近似Q′(d),以获得组合函数的对数近似。在318中,获取累加器的指数近似R′(A),以生成组合函数的近似B。在314中,输出B作为F′(n,d)。
尽管上文描述的复杂度降低的组合计算的使用用于显著降低复杂度,但是这些函数的计算仍极大引起编码和解码方法的复杂度。为了解决该问题,本发明的某些实施例提供了脉冲位置和/或脉冲幅度的编码和解码的方法之间的自适应切换,以便于减少必须执行的组合函数的计算次数。
再次参照式(19)和(20),以及它们相应的复杂度降低的实现方案的式(25)和(26),应当注意,式(19)和式(25)中的编码过程分别需要组合函数F和F′的v次计算。相似地,式(20)和(26)需要这些函数的v-1次计算。脉冲位置和脉冲幅度的解码是迭代的,并且因此计算这些函数的次数典型地是非常高的。在解码器中,这些函数的计算次数随着非零位置或占用位置的数目v而线性增加。为了降低脉冲位置和/或脉冲幅度的编码/解码的复杂度,本发明的某些可替选的实施例提供了一种用于对脉冲位置和/或脉冲幅度编码和解码的方法,其需要这些组合函数的较少的计算次数。在这些可替选的实施例中,提出了对式(19)和(20)的修改,并且通过扩展,提供出了对式(25)和(26)的修改,以有选择地对未占用位置进行编码。
首先参照式(20)和相应的复杂度降低的式(26)。如果定义
则式(20)可以被重写为:
(20a)
并且式(26)可以被重写为:
(26a)
应当注意,式(20a)和(26a)在结构上分别与式(19)和(25)相似,pk被p′k替换,n被m-1替换,并且占用位置v被v-1替换,即脉冲幅度的编码可以被视为置于m-1个位置的v-1个脉冲的位置编码,其中占用位置由p′k标识。实际上,编码脉冲幅度可以被视为占用脉冲的幅度mj被转换以生成由项pj和uj定义的伪位置。因此,脉冲位置的编码方法的任何修改可以容易地扩展到脉冲幅度的编码,反之亦然。
因而,根据某些可替选的实施例,提出了脉冲幅度和/或脉冲位置的编码的优化,用以减少组合函数的所需计算次数。在脉冲位置的编码/解码之前,v被编码/解码(式27)。因此,如果非零位置的数目的两倍大于位置的数目,即2·v>n,则未占用位置u1,u2,...,uv的数目小于占用位置的数目v。因此,在这些情况中,使用与式(19)(或(25))相似的式子的未占用位置的编码/解码的情况将导致较少的组合函数的计算,并且因此将具有较低的复杂度。为了在数学上说明这一点,首先将uk定义为未占用位置,并且U是未占用位置的集合,即,
U={0,1,...,n-1}-{p1,p2,...,pv}。(29)
应当注意,U的大小是n-v。现在,当2·v>n时,关于位置的码现在被计算为
(19z)
或者
。(25z)
相似地,对于幅度的编码,如果2·(v-1)>(m-1),则
,(20z)
或者
,(26z)
其中,u′k属于如下定义的集合U′
U′={0,1,...,m-2}-{p′1,p′2,...,p′v-1},(30)
并且p′k如式(28)中定义。
现在通过将所提出的技术应用于对280个位置中的27个脉冲(即,n=280并且m=27)进行的编码,将评估所提出的有选择地对未占用位置进行编码的方法如何来降低复杂度。由于2·m<n,因此不需要所提出的编码方法生成关于脉冲位置的码(Cπ)。然而,对于脉冲幅度的编码,将有利地使用所提出的技术。
结果是,在不使用所提出的技术的情况下,该特定示例中的编码/解码算法的最差情况的复杂度(当使用低复杂度组合函数时)是当非零位置的数目(v)是25至27之间,即m至m-2之间时。因而,当v=25时,使用式(26)将需要24次组合函数计算以用于编码,以及更多次的计算用于解码。在该情形中使用所提出的技术(式(26z))将仅需要编码器中的两次的组合函数的计算,并且较之其他解码技术的解码器明显地减少了计算的次数。
根据符合本发明的实施例的所提出的用于编码/解码的技术,该示例中的最差情况复杂度是当v接近m/2时的情况。在该情况中,使用式27的非零位置的数目v的编码和解码对复杂度有相当大的贡献。如在“非零位置的数目的编码”的部分中描述的参数的存储(在该示例中需要54个字的存储)进一步降低了复杂度。
下表示出了,当使用所提出的对未占用位置进行的编码的方法对280个位置中的27个脉冲进行编码,并且在20ms帧中执行2次编码时,复杂度降低。该表还示出了在存储用于计算关于非零位置的数目的码(式27)的参数时获得的优点。从该表看到,未占用位置的有选择的编码导致了0.6WMOPs的复杂度改进(从3.59到2.9),并且如果还存储式(27)中使用的参数,则节约了0.75WMOPs(从3.59到2.75)。
解码是编码过程的反过程,并且涉及首先基于接收到的码字C对非零位置的数目(v)解码。为此目的,可以采用例如Peng等人和Mittal等人(美国专利6,662,154)的用于对非零位置的数目编码/解码的各种方法。基于码字C和v提取关于位置的码字Cπ和关于幅度的码字Cμ。基于码字Cπ对位置p1,p2,...,pv解码。基于码字Cμ对幅度m1,m2,...,mv解码。编码的信号现被解码为:
通过现在将描述的改进的近似组合函数,可以进一步增强这里描述的通过在占用位置和未占用位置的编码之间的切换来减少组合函数的计算次数的技术。其基于如下认识,即,解码器具有因解码器需要重复地寻找使得F′(pk,k)小于多精度数Ck的最大值pk而引起的相当大的复杂度。解码器迭代地获得该pk值。这些迭代可能需要组合函数F’的数次计算,这将给解码过程添加了复杂度。
为了进一步降低(21)中的近似组合函数的复杂度,使用P′(i)的部分求和代替预先存储的P′(i),诸如:
并且现在式(21)可以等同地被计算为:
F′(n,d)=R′(S′(n)-S′(n-d)-Q′(d)) (33)
尽管使用近似组合函数显著降低了复杂度,但是这些函数的计算仍形成编码的复杂度的一个主要部分。近来在其他的公开中已公开了一种通过在占用位置和未占用位置的编码之间进行切换来减少组合函数的计算次数的方法。即使利用这些改进,解码器仍具有相当大的复杂度。这是因为解码器需要重复地寻找使得F′(pk,k)小于多精度数值Ck的最大值pk。解码器迭代地获得该pk值。这些迭代可能需要组合函数的数次计算,这将给解码过程添加了复杂度。
因此,需要一种其中解码器不需要迭代来获得pk的编码方法,并且提出了一种改进的组合函数,在其中解码器不需要迭代来获得pk。如果使用式(33)定义F′(pk,k),则在没有迭代的情况下获得该解是不可行的。
我们将近似组合函数重新定义为:
其中
是i的对数,高达l(i)=16个小数位,并且预先计算并存储Q″(d)=Q′(d)+d,使得(34)中定义的F′(n,d)满足唯一可解码不等式(24)。
将(16)中定义的Q′(d)当作d!的近似对数(以2为底)时,(34)中定义的F′(n,d)是式(3)和式(5)中定义的实际组合函数的近似。返回式(5),分子可以被假设为是n,n-1,n-2,...,n-d+1的几何平均值的d次方。这些数的算术平均值是如果使用算术平均值来近似几何平均值,则式(5)的近似可以被写为:
如果获取式(34)的对数(以2为底),并且使用与获得式(21)时使用的相似的方法,则获得了
因此
F′(n,d)=R′(d·P′(2·n-d+1)-d-Q′(d)) (37)
如这里和所附权利要求中使用的,可以在不偏离所提出的各种实施例的精神和范围的情况下使用多种阶乘组合,即,组合函数F,或者通常被标为F’的近似阶乘组合F’。如上文所述,这些组合函数可以包括但不限于下式:
F′(n,d)=R′(S′(n)-S′(n-d)-Q′(d)),以及
F′(n,d)=R′(d·P′(2·n-d+1)-d-Q′(d))。
通过参照附图,可以进一步理解在脉冲位置和/或脉冲幅度的编码和解码方法之间进行的自适应切换,以便于减少必须执行的组合函数的计算的次数。现在参照图4,图示了编码器400的框图。如可以看到的,尽管与图1略微相似,但是该编码器具有开关410,其由所示的位置密度估计器408提供的密度信息控制。目标向量x被输入到位置密度估计器408中,其输出关于占用位置的总数(v),和将被编码的占用位置的数目(η)的密度,和这些占用位置的位置的可能数目(ρ)的密度。组合编码模块106可以向开关410生成占用位置(pk)和未占用位置(uk)。由开关410判决应将(pk)或(uk)两者中的哪一个从开关410提供给组合函数生成器108。如果非零位置的数目高于某个预先定义的值,则开关可以将未占用位置(uk)传递到108。如果将被编码的占用位置的数目与这些占用位置的位置的可能数目的比大于预先定义的值,则开关也可以传递未占用位置(uk)。
图5是示出图4的编码器的操作的简化表示的流程图。该逻辑流程开始于510,其中,由向量生成器102接收输入信号。如上文讨论的,输入信号可以包括语音、音频、图像、视频或其他信号。在520中,产生向量xi并且将其输入到组合编码电路106中,其中,确定m和v并且将其传递到组合函数生成器108。如上文讨论的,m是单位幅度脉冲的总数(或者xi的整数值部分的绝对值的和)并且v是xi的非零元素的数目。在530中,F′(pj,j)由组合函数生成器108创建并且被传递到组合编码电路106,其中,在540中向量xi被编码以创建组合码字C。如上文讨论的,通过将F(pj,j)中的函数P(i)、Q(j)和R(k)替换为原始函数的低复杂度近似,使得满足式10和11中给出的条件,从而创建了F′(pj,j)。
现在参照图6,图示了符合某些实施例的解码器的框图600。解码器600按与编码器400相反的方式操作。如所示出的,解码器600包括组合解码电路206、信号重建电路210、其他解码电路204、组合函数生成器208、开关610、和位置密度估计器608。在操作期间由组合解码电路206接收组合码字。组合解码电路206向组合函数生成器提供n和d,并且作为响应接收F′(n,d)。解码电路302随后基于F′(n,d)创建向量xi。电路206按与电路106相似的方式操作,不同之处在于使用减法替换加法运算。换言之,Ψ′k=Ψ′k+1-F′(pk,k)。向量xi被传递到信号重建电路210,其中,基于xi和来自其他解码电路204的其他参数创建输出信号(例如,语音、音频、图像、视频或其他信号)。更具体地,其他参数可以包括许多与特定实施例中正在使用的信号编码范例关联的信号重建参数。这可以包括但不限于,信号缩放和能量参数以及频谱整形和/或合成滤波器参数。通常这些参数用于按照再现最终输出信号的方式对重建的信号向量xi进行能量缩放和/或频谱整形。
图7是示出图6的解码器的操作的简化表示的流程图。该逻辑流程开始于710,其中,由组合解码器206接收组合码字。在720中,将pj和j从组合解码器206传递到组合函数生成器208,并且在730中,将F(pj,j)返回解码器206。在740中,解码器206基于F(pj,j)对码字解码以产生向量xi,并且在750中xi被传递到其中创建输出信号的信号重建电路210。
可以看到,各种实施例中的所提出的“未占用位置”的编码方法被应用于位置和幅度的编码。然而,本领域的普通技术人员将看到,该方法可以应用于这些参数中的任一参数的编码。相似地,解码器按与编码器相反的方式操作。尽管现有技术的解码器总是对位置(pk)和(p′k)进行解码,但是符合本发明的实施例的解码器可以在2·v>n时对未占用位置(uk)进行解码,或者可以在2·(v-1)>m-1时对u′k进行解码。在对uk和u′k解码之后,解码器可以将其转换为pk、p′k和mk。
从与本发明的某些实施例一致的编码的简单概括开始,考虑如下流程:
接收使用脉冲序列来编码的信号;
确定非零脉冲位置的数目(v),并且可以使用式(27)生成关于v的码Cυ(应当注意,这是可选的步骤并且码字(C)实际上可以由码Cπ和Cμ近似);
确定非零脉冲的位置p1,p2,...,pv;如果2·v≤n,则使用式(25)生成关于位置的码Cπ,否则使用式(25z)生成关于位置的码Cπ;
确定非零脉冲的幅度m1,m2,...,mv;如果2·(v-1)≤m-1,则使用式(26)生成关于幅度的码Cμ,否则使用式(26z)生成关于幅度的码Cμ。
组合码Cυ、Cπ和Cμ以形成码字(C)。
可以考虑根据某些实施例的用于解码的简化流程:
接收表示使用脉冲序列来编码的信号的码字(C)。
找到非零脉冲位置的数目(v),其中v是使得式(21)中的Cυ不大于C的最大值。(再一次地,应当注意,解码可以在不明确确定式(21)中的Cυ的情况下进行);
基于码字C和非零位置的数目(v)提取码字Cπ和Cμ;
如果2·v≤n,则基于Cπ对占用位置p1,p2,...,pv进行解码;否则对未占用位置u1,u2,...,uv进行解码,并且从未占用位置计算占用位置;
如果2·(v-1)≤m-1,则基于Cμ对p′1,p′2,...,p′v-1进行解码;否则对u′1,u′2,...,u′v-1进行解码。基于p′1,p′2,...,p′v-1或u′1,u′2,...,u′v-1获得非零位置的幅度m1,m2,...,mv;以及
基于被解码的非零位置和被解码的非零位置的幅度,使用式(31)对编码信号进行解码。
下面将进一步检查这些简化的流程。
现在参照图8,流程800图示了,在作为估计密度的函数在向量的占用位置和未占用位置的编码之间进行的自适应切换方面,可以考虑根据本发明的某些实施例的操作编码器的编码过程。在框810中,接收待编码的具有n个位置的向量(x)。在框820中,确定向量(x)的n个位置中的多个占用位置的估计密度。在框830中,根据多个占用位置的估计密度进行n个位置中的多个占用位置的编码和多个未占用位置的编码之间的自适应切换,以生成编码值。位置的估计密度由多个未占用位置的数目相对于多个占用位置的数目而确定,并且因此多个占用位置的编码和多个未占用位置的编码之间的自适应切换进一步包括,当多个未占用位置的数目小于阈值时对多个未占用位置进行编码;以及当多个未占用位置的数目不小于阈值时对多个占用位置进行编码。阈值可以被视为多个占用位置的数目,诸如n/2。从多个码值生成码字(C),每个值是在向量(x)的n个位置中的多个位置处确定的。
现在参照图9,流程900图示了根据本发明的某些实施例的操作解码器的解码过程。在框910中,接收表示使用脉冲序列来编码的信号的码字(C)。在框920中,基于码字C确定向量(x)的n个位置中的多个占用位置的估计密度。在框930中,根据多个占用位置的估计密度执行向量x的多个占用位置的解码和多个未占用位置的解码之间的自适应切换,以生成解码值。位置的估计密度可以由多个未占用位置的数目相对于多个占用位置的数目而确定,并且多个占用位置的解码和多个未占用位置的解码之间的自适应切换可以进一步包括:当多个未占用位置的数目小于阈值时,对多个未占用位置解码以生成多个解码的未占用位置,并且从多个解码的未占用位置生成多个解码的占用位置;以及当多个未占用位置的数目不小于阈值时,对多个占用位置解码。阈值可以是多个占用位置的数目。在该情况中据此从解码值生成向量(x)。这可以进一步通过基于向量x的多个占用位置的数目v,从码字(C)提取码Cμ和码Cπ来完成。
对略有不同的方面进行陈述,图10和11的流程1000和1100分别图示了根据未占用位置的数目相对于诸如占用位置的数目的阈值的直接观察,而对估计密度的使用。图10的流程1000图示了用于操作编码器的方法,该编码器可操作用于从向量(x)编码码字(C)。在框1010中,接收待编码的具有n个位置的向量(x)。判决框1020查询向量(x)的n个位置中的多个未占用位置的数目是否小于阈值。如果是,则在框1030中,确定向量(x)的n个位置中的多个未占用位置的值,并且从多个未占用位置的值生成码字(C)。如果否,则在框1040中,确定多个占用位置的值,并且从多个占用位置的值生成码字(C)。
对于在向量(x)的n个位置中的多个未占用位置的数目小于阈值,(等于(m-1)/2)的示例性实施例中的脉冲幅度的编码,确定多个未占用位置的值可以进一步包括:确定多个占用位置的多个脉冲幅度m1,m2,...,mv;基于多个脉冲幅度生成多个未占用脉冲位置u′k;以及当2·(v-1)>(m-1)时通过位于m-1个位置的m-v个未占用脉冲位置的位置编码来编码多个幅度,以生成关于多个脉冲幅度的码Cμ。因而编码多个未占用位置的多个脉冲幅度可以进一步包括:根据0≤u′k<m-1生成关于多个幅度的码Cμ,其中u′k属于被定义为U′={0,1,...,m-2}-{p′1,p′2,...,p′v-1}的集合U′,并且
该情况中的码字(C)可以至少部分地由多个脉冲幅度的码Cμ确定。
继续该示例性实施例,在其中,向量(x)的n个位置中的多个未占用位置的数目小于阈值,还可以可选地采取多个未占用位置的多个脉冲位置的编码,以生成关于多个未占用位置的码Cπ。关于多个未占用位置的码Cπ是根据0≤uk<n而生成的。
尽管已描述的是,可以采用幅度编码和位置编码,并且可以与幅度编码组合执行位置编码,但是这两种类型的编码可以独立地采用,或者组合地进行采用。例如,在其中期望仅采用位置编码的情况中,考虑如下。确定向量x中的多个非零脉冲位置p1,p2,...,pv可以包括:根据0≤uk<n有选择地对多个未占用位置进行编码,以生成关于多个未占用位置的码Cπ。相反地,如果仅采用幅度编码,并且其中向量(x)的n个位置中的多个未占用位置的数目小于阈值,(等于(m-1)/2),则确定多个占用位置的值,并且从多个占用位置的值生成码字(C)可以进一步包括:当2·(v-1)≤m-1时确定多个占用位置的多个脉冲幅度m1,m2,...,mv,以根据 生成关于脉冲幅度的码Cμ;以及至少从码Cμ生成码字C。
然而,在以下事件中,其中,如果向量(x)的n个位置中的多个未占用位置的数目不小于阈值,则该方法将包括确定多个占用位置的值,以及从多个占用位置的值生成码字(C),并且在位置编码的情况中进一步包括:编码多个占用位置的多个脉冲位置p1,p2,...,pv,以根据0≤pk<n生成码Cπ。
再次参考图4,编码器400的操作将包括组合编码电路106的如下操作:接收待编码的具有n个位置的向量(x);确定向量(x)的n个位置中的多个占用位置的估计密度;以及根据多个占用位置的估计密度,在n个位置中的多个占用位置的编码和多个未占用位置的编码之间进行自适应切换以生成编码值。如前面教导的,位置的估计密度可以由多个未占用位置的数目相对于多个占用位置的数目而确定,并且多个占用位置的编码和多个未占用位置的编码之间的自适应切换可以由组合编码电路执行。该编码将进一步包括:当多个未占用位置的数目小于阈值时对多个未占用位置进行编码;以及当多个未占用位置的数目不小于阈值时对多个占用位置编码。如将进一步描述的,可以在向量(x)的n个位置中的多个位置处动态地执行:确定估计密度,以及基于估计密度在多个占用位置的编码和多个未占用位置的编码之间进行自适应切换。
图11的流程1100图示了用于操作解码器的方法,该解码器可操作用于从接收到的码字(C)生成向量(x)。在框1110中,接收表示使用脉冲序列来编码的信号的码字(C)。在判决框1120中,查询向量(x)的n个位置中的多个未占用位置的数目是否小于阈值。如果是,则在框1130中,对向量(x)的n个位置中的多个未占用位置解码,并且基于解码的多个未占用位置对多个占用位置解码。在框1140中,从多个未占用位置生成多个解码的占用位置值,并且从多个解码的未占用位置值和解码的占用位置值生成向量(x)。如果否,则流程继续到框1150,其中对多个占用位置进行解码。
可以理解,基于向量x的多个占用位置的数目v,可以从码字(C)提取码Cμ和码Cπ。
在其中向量(x)的n个位置中的多个未占用位置的数目小于阈值的条件下,幅度解码可以进一步包括:对多个未占用脉冲位置u′k进行解码;从所提取的码Cμ和多个解码的未占用脉冲位置u′k对多个占用位置的多个脉冲幅度m1,m2,...,mv进行解码;以及使用多个占用位置的解码的多个脉冲幅度m1,m2,...,mv对码字(C)解码,以根据生成向量(x)。
相似地,当向量(x)的n个位置中的多个未占用位置的数目小于阈值时,位置解码可以包括:对多个未占用脉冲位置uk解码;从多个解码的未占用脉冲位置uk生成多个解码的占用脉冲位置;以及使用解码的未占用脉冲位置和解码的占用脉冲位置对码字(C)解码,以生成向量(x)。
返回图6,解码器600的操作将包括组合解码电路206的如下操作:接收表示使用脉冲序列来编码的信号的码字(C);基于码字C确定向量(x)的n个位置中的多个占用位置的估计密度;以及根据多个占用位置的估计密度,在向量x的多个占用位置的解码和多个未占用位置的解码之间进行自适应切换,以生成解码值。再一次,如上文所述,位置的估计密度可以由多个未占用位置的数目相对于多个占用位置的数目而确定,并且由组合解码电路执行的多个占用位置的解码和多个未占用位置的解码之间的自适应切换将进一步包括:当多个未占用位置的数目小于阈值时,对多个未占用位置解码以生成多个解码的未占用位置,并且从多个解码的未占用位置生成多个解码的占用位置;以及当多个未占用位置的数目不小于阈值时,对多个占用位置解码。如将进一步描述的,可以在向量(x)的n个位置中的多个位置处动态地执行估计密度的确定,以及基于估计密度,在多个占用位置的解码和多个未占用位置的解码之间进行自适应切换。
如前面提及的,根据各个位置处的估计密度,可以在不止一个位置处动态地进行编码或解码模式之间的切换。
根据本发明的各种实施例,不论是对占用位置编码还是对未占用位置编码,都基于被定义为占用位置与位置数目的比的平均密度。在前面的部分中,图示了其中仅做出一次判决的方法,并且对于所有位置采用同一方法,即,对占用位置编码或者对未占用位置编码。由于占用位置在所有位置上的分布可能是不均匀的,因此该密度也是不均匀的。因此,值得的是,基于各种情况下的密度,保持对判决进行切换,以对占用位置编码或者对未占用位置编码。通过示例进行说明。考虑在n=27个位置中存在16个占用位置的情况。占用位置是0、7、9、10、12、13、15、16、17、18、19、20、21、22、24和25。在现有技术方法中,使用式(26)对这些占用位置直接编码,并且如上文所述,占用位置的数目大于n/2,使用式(26z)对未占用位置1、2、3、4、5、6、8、11、14、23和26进行编码。应当注意,在该示例中,现有技术的编码器需要组合函数的16次计算,而本发明中的编码器需要组合函数F或F’的11次计算。察看占用位置和未占用位置,可以看到,在编码器中使用最初5个脉冲位置的占用位置,即位置0、7、9、10和12进行编码,并且随后对未占用位置,即位置14、23和26进行编码,将计算减少到组合函数的8次计算。然而,解码器需要了解哪种方法用于编码,以及从一个方法到另一方法的切换在何处发生。由于解码器从最高位置开始解码直到最低位置,因此基于占用位置数目对最高位置编码。随后,估计占用位置的密度,并且如果密度小于0.5,则对下一占用位置编码,否则对下一未占用位置编码。
为了说明这一点,再次考虑上面的示例。由于最初的占用位置密度大于0.5,因此最高未占用位置26被编码为F′(26,11)。现在占用位置的估计密度是26个位置中的16个位置,其也大于0.5,并且因此下一未占用位置23被编码为F′(23,10)。现在可以推断(甚至在解码器处)位置24和25是占用的。占用位置密度现在变为23个位置中的14个占用位置,其仍大于0.5,并且因此下一未占用位置被编码为F′(14,9)。可以容易地估计剩余占用位置的密度是14个位置中的6个脉冲,其小于0.5。现在,下一占用位置13被编码为F′(13,6)。现在占用位置的密度被估计为13个位置中的5个脉冲,其小于0.5,并且因此依次对占用位置编码,即位置12被编码为F′(12,5)。现在存在12位置中的4个占用位置,并且因此再一次占用位置被编码为F′(10,4)。使用相同的论据,接着的三个占用位置被编码为F′(9,3)、F′(7,2)和F′(0,1)。因此在该示例中码字
Cπ=F′(0,1)+F′(7,2)+F′(9,3)+F′(10,4)+F′(12,5)+F′(13,6)F′(14,9)+F′(23,10)+F′(26,11)
需要组合函数的九次计算。
动态切换-编码器
对于一个或多个位置处的编码方法之间的动态切换,该切换可以是在一个或多个位置处确定的估计密度的函数。因此,在向量(x)的n个位置中的多个位置处,动态地执行估计密度的确定,以及基于估计密度在多个占用位置的编码和多个未占用位置的编码之间进行自适应切换。确定向量(x)的n个位置中的占用位置p1,p2,...,pv和未占用位置u1,u2,...,un-v。对于n个位置中的位置pk:
a.如果2·v>n,将最高未占用位置编码为F′(un-v,v),但是如果2·v≤n,则将最高未占用位置编码为F′(pv,v),其中,最后的编码位置(ρ)被设定为pv或un-v;
b.计算小于最后的编码位置(ρ)的占用位置的数目(η)和未占用位置的数目(ε);
c.如果2·η≤ρ,则获得小于ρ的最大占用位置pk,并且将该位置编码为F′(pk,η),其中最后的编码位置是ρ=pk;
d.如果2·η>ρ,则获得小于ρ的最大未占用位置uk,并且将该位置编码为F′(uk,ε),其中最后的编码位置是ρ=uk。
e.重复b、c和d直至η或ε等于0;
d和e中生成的位置码可以被求和以生成位置码Cπ。
在幅度编码的情况中,确定多个占用位置的多个脉冲幅度m1,m2,...,mv。此外,还基于多个脉冲幅度m1,m2,...,mv确定向量(x)的n个位置中的占用位置p’1,p’2,...,p’v-1和未占用位置u’1,u’2,...,u’m-v。对于n个位置中的位置p’k:
a.如果2·(v-1)>m-1,则将最高未占用位置编码为F′(u’m-v,v-1),但是如果2·(v-1)≤m-1,则将最高未占用位置编码为F′(p’v,v-1),其中最后的编码位置(ρ’)被设定为p’v或u’m-v;
b.计算小于最后的编码位置(ρ’)的占用位置的数目(η’)和未占用位置的数目(ε’);
c.如果2·η’≤ρ’,则获得小于ρ’的最大占用位置p’k,并且将该位置编码为F′(p’k,η’),其中最后的编码位置是ρ’=p’k;
d.如果2·η’>ρ’,则获得小于ρ’的最大未占用位置u’k并且将该位置编码为F′(u’k,ε’),其中最后的编码位置是ρ’=u’k。
e.重复b、c和d直至η’或ε’等于0;
d和e中生成的位置码可以被求和以生成位置码Cμ。
动态切换-解码器
对于解码期间的动态切换,在向量(x)的n个位置中的多个位置处,确定估计密度,以及动态地执行基于估计密度的多个占用位置的解码和多个未占用位置的解码之间的自适应切换。对于位置解码,切换包括:对于n个位置中的位置pk:
a.如果2·v>n,则从码Cπ将最高未占用位置解码为F′(un-v,v),但是如果2·v≤n,则将最高占用位置解码为F′(pv,v),其中最后的解码位置(ρ)被设定为pv或un-v;
b.计算小于最后的解码位置(ρ)的占用位置的数目(η)和未占用位置的数目(ε);
c.如果2·η≤ρ,则获得小于ρ的最大占用位置pk并且将该位置解码为F′(pk,η),其中最后的解码位置是ρ=pk;
d.如果2·η>ρ,则获得小于ρ的最大未占用位置uk并且将该位置解码为F′(uk,ε),其中最后的解码位置是ρ=uk。
e.重复b、c和d直至η或ε等于0;
根据在a、b、c、d和e中生成的最大占用位置pk和最大未占用位置uk,对多个占用位置进行解码。
对于幅度解码,确定多个占用位置的多个脉冲幅度m1,m2,...,mv。还基于多个脉冲幅度m1,m2,...,mv确定向量(x)的n个位置中的占用位置p’1,p’2,...,p’v-1和未占用位置u’1,u’2,...,u’m-v。并且,对于n个位置中的位置p’k:
a.如果2·(v-1)>m-1,则从码Cμ将最高未占用位置解码为F′(u’m-v,v-l),但是如果2·(v-1)≤m-1,则将最高占用位置解码为F′(p’v,v-l),其中,最后的解码位置(ρ’)被设定为p’v或u’m-v;
b.计算小于最后的解码位置(ρ’)的占用位置的数目(η’)和未占用位置的数目(ε’);
c.如果2·η’≤ρ’,则获得小于ρ’的最大占用位置p’k并且将该位置解码为F′(p’k,η’),其中最后的解码位置是ρ’=p’k;
d.如果2·η’>ρ’,则获得小于ρ’的最大未占用位置u’k并且将该位置解码为F′(u’k,ε’),其中最后的解码位置是ρ’=u’k。
e.重复b、c和d直至η’或ε’等于0;
根据在a、b、c、d和e中生成的最大占用位置pk和最大未占用位置uk对多个占用位置进行解码。
在前面的说明书中,已描述了本发明的具体实施例。然而,本领域的普通技术人员应意识到,在不偏离如所附权利要求中阐述的本发明的范围的情况下,可以进行各种修改和改变。因此,说明书和附图应被视为说明性的而非限制性的,并且所有该修改应包括在本发明的范围内。益处,优点,对问题的解决方案以及可以引出任何益处、优点或解决方案或者使其变得更加明显的任何因素不应被解释为任何或所有权利要求的关键的、必需的或基本的特征或因素。本发明由所附权利要求唯一确定,其包括在本申请的未决期间进行的任何修改,以及权利要求的所有等同物。
Claims (10)
1.一种用于操作从向量(x)编码码字(C)的编码器的方法,所述方法包括:
接收待编码的具有n个位置的向量(x);
确定所述向量(x)的所述n个位置中的多个占用位置的估计密度;以及
根据所述多个占用位置的所述估计密度,在所述n个位置的所述多个占用位置的编码和多个未占用位置的编码之间进行自适应切换,以生成编码值。
2.如权利要求1所述的方法,其中,在向量(x)的所述n个位置中的多个位置处,动态地执行:确定估计密度,以及,基于所述估计密度在所述多个占用位置的编码和所述多个未占用位置的编码之间进行自适应切换。
3.如权利要求1所述的方法,其中,位置的所述估计密度由所述多个未占用位置的数目相对于所述多个占用位置的数目而确定,以及在所述多个占用位置的编码和所述多个未占用位置的编码之间进行自适应切换进一步包括:
如果所述向量(x)的所述n个位置中的所述多个未占用位置的数目小于阈值,则确定所述向量(x)的所述n个位置中的所述多个未占用位置的值,并且从所述多个未占用位置的值生成码字(C),以及
否则,如果所述向量(x)的所述多个未占用位置的数目不小于所述阈值,则确定所述多个占用位置的值,并且从所述多个占用位置的值生成码字(C)。
4.一种编码器,包括:
组合编码电路,所述组合编码电路可操作用于执行:
接收待编码的具有n个位置的向量(x);
确定所述向量(x)的所述n个位置中的多个占用位置的估计密度;以及
根据所述多个占用位置的所述估计密度在所述n个位置的所述多个占用位置的编码和多个未占用位置的编码之间进行自适应切换,以生成编码值。
5.如权利要求4所述的编码器,其中,位置的所述估计密度由所述多个未占用位置的数目相对于所述多个占用位置的数目而确定,以及所述组合编码电路执行的在所述多个占用位置的编码和所述多个未占用位置的编码之间进行自适应切换进一步包括:
当所述多个未占用位置的数目小于阈值时,对所述多个未占用位置编码;以及
当所述多个未占用位置的数目不小于所述阈值时,对所述多个占用位置编码。
6.如权利要求4所述的编码器,其中,在向量(x)的所述n个位置中的多个位置处,动态地执行:确定所述估计密度,以及基于所述估计密度在所述多个占用位置的编码和所述多个未占用位置的编码之间进行自适应切换。
7.一种用于操作从码字(C)生成向量(x)的解码器的方法,所述方法包括:
接收表示使用脉冲序列来编码的信号的码字(C);
基于所述码字C确定所述向量(x)的n个位置中的多个占用位置的估计密度;以及
根据所述多个占用位置的所述估计密度,在所述向量x的所述多个占用位置的解码和多个未占用位置的解码之间进行自适应切换,以生成解码值。
8.如权利要求7所述的方法,其中,在所述向量(x)的所述n个位置中的多个位置处,动态地执行:确定所述估计密度,以及基于所述估计密度在所述多个占用位置的解码和所述多个未占用位置的解码之间进行自适应切换。
9.如权利要求8所述的方法,其中,位置的所述估计密度由所述多个未占用位置的数目相对于所述多个占用位置的数目而确定,以及在所述多个占用位置的解码和所述多个未占用位置的解码之间进行自适应切换进一步包括:
如果所述向量(x)的所述n个位置中的所述多个未占用位置的数目小于阈值,则对所述向量(x)的所述n个位置中的所述多个未占用位置进行解码,并且基于解码的多个未占用位置对所述多个占用位置解码;
从所述多个未占用位置生成多个解码的占用位置值,并且从所述多个解码的未占用位置值和解码的占用位置值生成向量(x),以及
否则,如果所述向量(x)的所述多个未占用位置的数目不小于所述阈值,则对所述多个占用位置进行解码。
10.一种解码器,包括:
组合解码电路,所述组合解码电路可操作用于执行:
接收表示使用脉冲序列来编码的信号的码字(C);
基于所述码字C确定向量(x)的n个位置中的多个占用位置的估计密度;以及
根据所述多个占用位置的所述估计密度,在所述向量x的所述多个占用位置的解码和多个未占用位置的解码之间进行自适应切换,以生成解码值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/047,586 US7889103B2 (en) | 2008-03-13 | 2008-03-13 | Method and apparatus for low complexity combinatorial coding of signals |
US12/047,586 | 2008-03-13 | ||
PCT/US2009/036479 WO2009114453A1 (en) | 2008-03-13 | 2009-03-09 | Apparatus and method for low complexity combinatorial coding of signals |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102037650A true CN102037650A (zh) | 2011-04-27 |
CN102037650B CN102037650B (zh) | 2014-02-19 |
Family
ID=40811155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980108833.7A Active CN102037650B (zh) | 2008-03-13 | 2009-03-09 | 用于信号的低复杂度组合编码的装置和方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7889103B2 (zh) |
EP (1) | EP2277268A1 (zh) |
KR (1) | KR101233057B1 (zh) |
CN (1) | CN102037650B (zh) |
BR (1) | BRPI0909699B1 (zh) |
MX (1) | MX2010010044A (zh) |
MY (1) | MY151357A (zh) |
RU (1) | RU2471288C2 (zh) |
WO (1) | WO2009114453A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103975387A (zh) * | 2011-12-07 | 2014-08-06 | 摩托罗拉移动有限责任公司 | 用于信号的组合代码化的装置和方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461106B2 (en) * | 2006-09-12 | 2008-12-02 | Motorola, Inc. | Apparatus and method for low complexity combinatorial coding of signals |
US8576096B2 (en) * | 2007-10-11 | 2013-11-05 | Motorola Mobility Llc | Apparatus and method for low complexity combinatorial coding of signals |
US8209190B2 (en) * | 2007-10-25 | 2012-06-26 | Motorola Mobility, Inc. | Method and apparatus for generating an enhancement layer within an audio coding system |
US20090234642A1 (en) * | 2008-03-13 | 2009-09-17 | Motorola, Inc. | Method and Apparatus for Low Complexity Combinatorial Coding of Signals |
US8639519B2 (en) | 2008-04-09 | 2014-01-28 | Motorola Mobility Llc | Method and apparatus for selective signal coding based on core encoder performance |
US8200496B2 (en) * | 2008-12-29 | 2012-06-12 | Motorola Mobility, Inc. | Audio signal decoder and method for producing a scaled reconstructed audio signal |
US8175888B2 (en) * | 2008-12-29 | 2012-05-08 | Motorola Mobility, Inc. | Enhanced layered gain factor balancing within a multiple-channel audio coding system |
US8219408B2 (en) * | 2008-12-29 | 2012-07-10 | Motorola Mobility, Inc. | Audio signal decoder and method for producing a scaled reconstructed audio signal |
US8140342B2 (en) * | 2008-12-29 | 2012-03-20 | Motorola Mobility, Inc. | Selective scaling mask computation based on peak detection |
WO2010091930A2 (en) * | 2009-02-12 | 2010-08-19 | Zoran (France) | Frame buffer compression for video processing devices |
US8849655B2 (en) | 2009-10-30 | 2014-09-30 | Panasonic Intellectual Property Corporation Of America | Encoder, decoder and methods thereof |
US8149144B2 (en) * | 2009-12-31 | 2012-04-03 | Motorola Mobility, Inc. | Hybrid arithmetic-combinatorial encoder |
US8428936B2 (en) * | 2010-03-05 | 2013-04-23 | Motorola Mobility Llc | Decoder for audio signal including generic audio and speech frames |
US8423355B2 (en) * | 2010-03-05 | 2013-04-16 | Motorola Mobility Llc | Encoder for audio signal including generic audio and speech frames |
US8751244B2 (en) * | 2011-05-02 | 2014-06-10 | Motorola Mobility Llc | Apparatus and method for low complexity combinatorial coding and decoding of signals |
US9129600B2 (en) | 2012-09-26 | 2015-09-08 | Google Technology Holdings LLC | Method and apparatus for encoding an audio signal |
US9672838B2 (en) | 2014-08-15 | 2017-06-06 | Google Technology Holdings LLC | Method for coding pulse vectors using statistical properties |
US9336788B2 (en) | 2014-08-15 | 2016-05-10 | Google Technology Holdings LLC | Method for coding pulse vectors using statistical properties |
US9990931B2 (en) | 2014-08-15 | 2018-06-05 | Google Technology Holdings LLC | Method for coding pulse vectors using statistical properties |
US9620136B2 (en) | 2014-08-15 | 2017-04-11 | Google Technology Holdings LLC | Method for coding pulse vectors using statistical properties |
JP6267250B2 (ja) * | 2016-02-25 | 2018-01-24 | 株式会社Subaru | 油圧回路の異常検知装置、及び、油圧回路の異常検知方法 |
US10395542B2 (en) * | 2016-03-28 | 2019-08-27 | Cisco Technology, Inc. | Drone traffic engineering |
US10366698B2 (en) * | 2016-08-30 | 2019-07-30 | Dts, Inc. | Variable length coding of indices and bit scheduling in a pyramid vector quantizer |
CN113642276B (zh) * | 2021-08-18 | 2023-05-05 | 电子科技大学 | 一种基于数据预编码的sram架构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010017594A1 (en) * | 2000-02-07 | 2001-08-30 | Ahn Seong Keun | Data modulating/demodulating method and apparatus for optical recording medium |
CN1365195A (zh) * | 1998-05-06 | 2002-08-21 | 三星电子株式会社 | 无损解码器及其方法 |
CN1420634A (zh) * | 2001-11-15 | 2003-05-28 | 松下电器产业株式会社 | 解码器、解码方法及其程序发布介质 |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL8006165A (nl) * | 1980-11-12 | 1982-06-01 | Philips Nv | Systeem voor het overdragen van digitale informatie, codeerinrichting voor toepassing in dat systeem, decodeerinrichting voor toepassing in dat systeem en registratiedrager voor toepassing in dat systeem. |
US4560977A (en) * | 1982-06-11 | 1985-12-24 | Mitsubishi Denki Kabushiki Kaisha | Vector quantizer |
US4670851A (en) * | 1984-01-09 | 1987-06-02 | Mitsubishi Denki Kabushiki Kaisha | Vector quantizer |
US4727354A (en) * | 1987-01-07 | 1988-02-23 | Unisys Corporation | System for selecting best fit vector code in vector quantization encoding |
JP2527351B2 (ja) * | 1987-02-25 | 1996-08-21 | 富士写真フイルム株式会社 | 画像デ―タの圧縮方法 |
US5067152A (en) * | 1989-01-30 | 1991-11-19 | Information Technologies Research, Inc. | Method and apparatus for vector quantization |
DE68922610T2 (de) * | 1989-09-25 | 1996-02-22 | Rai Radiotelevisione Italiana | Umfassendes System zur Codierung und Übertragung von Videosignalen mit Bewegungsvektoren. |
US5754976A (en) * | 1990-02-23 | 1998-05-19 | Universite De Sherbrooke | Algebraic codebook with signal-selected pulse amplitude/position combinations for fast coding of speech |
CN1062963C (zh) | 1990-04-12 | 2001-03-07 | 多尔拜实验特许公司 | 用于产生高质量声音信号的解码器和编码器 |
IT1281001B1 (it) | 1995-10-27 | 1998-02-11 | Cselt Centro Studi Lab Telecom | Procedimento e apparecchiatura per codificare, manipolare e decodificare segnali audio. |
JP3063668B2 (ja) * | 1997-04-04 | 2000-07-12 | 日本電気株式会社 | 音声符号化装置及び復号装置 |
EP0932141B1 (en) | 1998-01-22 | 2005-08-24 | Deutsche Telekom AG | Method for signal controlled switching between different audio coding schemes |
US6904174B1 (en) * | 1998-12-11 | 2005-06-07 | Intel Corporation | Simplified predictive video encoder |
KR100409167B1 (ko) * | 1998-09-11 | 2003-12-12 | 모토로라 인코포레이티드 | 정보 신호를 부호화하는 방법 및 장치 |
US6236960B1 (en) | 1999-08-06 | 2001-05-22 | Motorola, Inc. | Factorial packing method and apparatus for information coding |
US6504877B1 (en) * | 1999-12-14 | 2003-01-07 | Agere Systems Inc. | Successively refinable Trellis-Based Scalar Vector quantizers |
JP4149637B2 (ja) | 2000-05-25 | 2008-09-10 | 株式会社東芝 | 半導体装置 |
US6304196B1 (en) * | 2000-10-19 | 2001-10-16 | Integrated Device Technology, Inc. | Disparity and transition density control system and method |
AUPR105000A0 (en) | 2000-10-27 | 2000-11-23 | Canon Kabushiki Kaisha | Method for generating and detecting marks |
US7068946B2 (en) | 2001-01-23 | 2006-06-27 | At&T Corp. | Modulation scheme for tedons |
JP3404024B2 (ja) | 2001-02-27 | 2003-05-06 | 三菱電機株式会社 | 音声符号化方法および音声符号化装置 |
US6658383B2 (en) | 2001-06-26 | 2003-12-02 | Microsoft Corporation | Method for coding speech and music signals |
US6662154B2 (en) | 2001-12-12 | 2003-12-09 | Motorola, Inc. | Method and system for information signal coding using combinatorial and huffman codes |
AU2003213149A1 (en) | 2002-02-21 | 2003-09-09 | The Regents Of The University Of California | Scalable compression of audio and other signals |
WO2003077235A1 (en) | 2002-03-12 | 2003-09-18 | Nokia Corporation | Efficient improvements in scalable audio coding |
JP3881943B2 (ja) | 2002-09-06 | 2007-02-14 | 松下電器産業株式会社 | 音響符号化装置及び音響符号化方法 |
WO2004082288A1 (en) | 2003-03-11 | 2004-09-23 | Nokia Corporation | Switching between coding schemes |
EP1619664B1 (en) | 2003-04-30 | 2012-01-25 | Panasonic Corporation | Speech coding apparatus, speech decoding apparatus and methods thereof |
JP2005005844A (ja) * | 2003-06-10 | 2005-01-06 | Hitachi Ltd | 計算装置及び符号化処理プログラム |
JP4123109B2 (ja) * | 2003-08-29 | 2008-07-23 | 日本ビクター株式会社 | 変調装置及び変調方法並びに復調装置及び復調方法 |
WO2005043766A1 (en) * | 2003-11-04 | 2005-05-12 | Sunsail Development Avv | Method and system for loss-less data compression |
SE527670C2 (sv) | 2003-12-19 | 2006-05-09 | Ericsson Telefon Ab L M | Naturtrogenhetsoptimerad kodning med variabel ramlängd |
US7161507B2 (en) * | 2004-08-20 | 2007-01-09 | 1St Works Corporation | Fast, practically optimal entropy coding |
US7945447B2 (en) | 2004-12-27 | 2011-05-17 | Panasonic Corporation | Sound coding device and sound coding method |
JP5171256B2 (ja) | 2005-08-31 | 2013-03-27 | パナソニック株式会社 | ステレオ符号化装置、ステレオ復号装置、及びステレオ符号化方法 |
DE602006015097D1 (de) | 2005-11-30 | 2010-08-05 | Panasonic Corp | Skalierbare codierungsvorrichtung und skalierbares codierungsverfahren |
US7230550B1 (en) | 2006-05-16 | 2007-06-12 | Motorola, Inc. | Low-complexity bit-robust method and system for combining codewords to form a single codeword |
US7414549B1 (en) * | 2006-08-04 | 2008-08-19 | The Texas A&M University System | Wyner-Ziv coding based on TCQ and LDPC codes |
US7461106B2 (en) | 2006-09-12 | 2008-12-02 | Motorola, Inc. | Apparatus and method for low complexity combinatorial coding of signals |
US8576096B2 (en) | 2007-10-11 | 2013-11-05 | Motorola Mobility Llc | Apparatus and method for low complexity combinatorial coding of signals |
US8209190B2 (en) | 2007-10-25 | 2012-06-26 | Motorola Mobility, Inc. | Method and apparatus for generating an enhancement layer within an audio coding system |
US20090234642A1 (en) | 2008-03-13 | 2009-09-17 | Motorola, Inc. | Method and Apparatus for Low Complexity Combinatorial Coding of Signals |
US8639519B2 (en) | 2008-04-09 | 2014-01-28 | Motorola Mobility Llc | Method and apparatus for selective signal coding based on core encoder performance |
US8175888B2 (en) | 2008-12-29 | 2012-05-08 | Motorola Mobility, Inc. | Enhanced layered gain factor balancing within a multiple-channel audio coding system |
US8219408B2 (en) | 2008-12-29 | 2012-07-10 | Motorola Mobility, Inc. | Audio signal decoder and method for producing a scaled reconstructed audio signal |
US8200496B2 (en) | 2008-12-29 | 2012-06-12 | Motorola Mobility, Inc. | Audio signal decoder and method for producing a scaled reconstructed audio signal |
US8140342B2 (en) | 2008-12-29 | 2012-03-20 | Motorola Mobility, Inc. | Selective scaling mask computation based on peak detection |
-
2008
- 2008-03-13 US US12/047,586 patent/US7889103B2/en active Active
-
2009
- 2009-03-09 MY MYPI20104221 patent/MY151357A/en unknown
- 2009-03-09 EP EP09719264A patent/EP2277268A1/en not_active Withdrawn
- 2009-03-09 BR BRPI0909699-0A patent/BRPI0909699B1/pt active IP Right Grant
- 2009-03-09 RU RU2010141852/08A patent/RU2471288C2/ru active
- 2009-03-09 MX MX2010010044A patent/MX2010010044A/es active IP Right Grant
- 2009-03-09 KR KR1020107022865A patent/KR101233057B1/ko active IP Right Grant
- 2009-03-09 CN CN200980108833.7A patent/CN102037650B/zh active Active
- 2009-03-09 WO PCT/US2009/036479 patent/WO2009114453A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1365195A (zh) * | 1998-05-06 | 2002-08-21 | 三星电子株式会社 | 无损解码器及其方法 |
US20010017594A1 (en) * | 2000-02-07 | 2001-08-30 | Ahn Seong Keun | Data modulating/demodulating method and apparatus for optical recording medium |
CN1420634A (zh) * | 2001-11-15 | 2003-05-28 | 松下电器产业株式会社 | 解码器、解码方法及其程序发布介质 |
Non-Patent Citations (1)
Title |
---|
TASSOS MARKAS等: "MULTISPECTRAL IMAGE COMPRESSION ALGORITHMS", 《DATA COMPRESSION CONFERENCE, 1993》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103975387A (zh) * | 2011-12-07 | 2014-08-06 | 摩托罗拉移动有限责任公司 | 用于信号的组合代码化的装置和方法 |
CN103975387B (zh) * | 2011-12-07 | 2016-09-07 | 谷歌技术控股有限责任公司 | 用于信号的组合代码化的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
MX2010010044A (es) | 2011-03-28 |
KR20100135801A (ko) | 2010-12-27 |
EP2277268A1 (en) | 2011-01-26 |
MY151357A (en) | 2014-05-15 |
RU2010141852A (ru) | 2012-04-20 |
RU2471288C2 (ru) | 2012-12-27 |
WO2009114453A1 (en) | 2009-09-17 |
BRPI0909699B1 (pt) | 2019-10-08 |
BRPI0909699A2 (pt) | 2017-10-31 |
KR101233057B1 (ko) | 2013-02-13 |
BRPI0909699A8 (pt) | 2018-01-02 |
CN102037650B (zh) | 2014-02-19 |
US20090231169A1 (en) | 2009-09-17 |
US7889103B2 (en) | 2011-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102037650A (zh) | 用于信号的低复杂度组合编码的装置和方法 | |
JP5013627B2 (ja) | 信号の低複雑度組み合わせコーディングのための装置および方法 | |
KR101067212B1 (ko) | 신호의 저 복잡도 조합 코딩 장치 및 방법 | |
US20090234642A1 (en) | Method and Apparatus for Low Complexity Combinatorial Coding of Signals | |
CN102687403B (zh) | 使用算术阶段压缩未充分利用的代码空间的编码器和解码器 | |
JP5265682B2 (ja) | デジタルコンテンツの符号化および/または復号 | |
CN101401153B (zh) | Celp技术中改进的数字音频信号的编码/解码 | |
EP1995974B1 (en) | Method for realizing arithmetic coding | |
CN102158692A (zh) | 编码方法、解码方法、编码器和解码器 | |
Mittal et al. | Coding pulse sequences using a combination of factorial pulse coding and arithmetic coding | |
EP2705517B1 (en) | Methods for combinatorial coding and decoding of speech/audio/image/video signals and corresponding electronic encoder/decoder |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: Illinois State Patentee after: MOTOROLA MOBILITY LLC Address before: Illinois State Patentee before: MOTOROLA MOBILITY, Inc. |
|
TR01 | Transfer of patent right |
Effective date of registration: 20160406 Address after: California, USA Patentee after: Google Technology Holdings LLC Address before: Illinois State Patentee before: MOTOROLA MOBILITY LLC |