Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PULSE ENCODING AND DECODING METHOD AND PULSE CODEC
Document Type and Number:
WIPO Patent Application WO/2011/160537
Kind Code:
A1
Abstract:
A pulse encoding and decoding method and a pulse codec. A joint encoding of two or more tracks enables codebook spaces that would have been idle in a single track encoding to be combined, thereby becoming an encoding bit that can be spared. In addition, pulses requiring encoding on each track are combined on the basis of location; the numbers of the locations having a pulse, the distribution of the locations having a pulse across the track, and the number of pulses on each location having a pulse are encoded respectively, thus avoiding multiple pulses at one location being encoded individually, thereby sparing encoding bits.

Inventors:
MA, Fuwei (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
马付伟 (中国广东省深圳市龙岗区坂田华为总部办公楼, Guangdong 9, 518129, CN)
Application Number:
CN2011/074999
Publication Date:
December 29, 2011
Filing Date:
May 31, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECHNOLOGIES CO., LTD. (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
华为技术有限公司 (中国广东省深圳市龙岗区坂田华为总部办公楼, Guangdong 9, 518129, CN)
MA, Fuwei (Huawei Administration Building, Bantian Longgang Distric, Shenzhen Guangdong 9, 518129, CN)
International Classes:
G10L19/10
Attorney, Agent or Firm:
SHENPAT INTELLECTUAL PROPERTY AGENCY (Room 1521, West Block Guomao Buildin, Shenzhen Guangdong 4, 518014, CN)
Download PDF:
Claims:
权 利 要 求

1、 一种脉冲编码方法, 其特征在于, 包括:

获取 T个轨道上需要编码的脉冲, T是大于或等于 2的整数;

分别对各个轨道上需要编码的脉冲按照位置进行统计,获得各个轨道上有 脉冲位置的数目 Nt、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数 目, 其中下标 t表示第 t个轨道, t e [0, T-1];

按照各个轨道上有脉冲位置的数目 {Νο, Ν^. , Ν }确定第一索引 II , 所述 第一索引对应于其所代表的有脉冲位置的数目下,各个轨道上有脉冲位置全部 可能的分布情况;

分别按照各个轨道上有脉冲位置的分布确定各个轨道的第二索引 I2t,所述 第二索引从所述第一索引对应的全部可能的分布情况中,指示相应轨道上与当 前有脉冲位置的分布对应的分布情况;

分别按照各个轨道上各个有脉冲位置上的脉冲数目确定各个轨道的第三 索引 I3t;

生成编码索引 Ind, 所述编码索引包括第一索引和各个轨道的第二、 三索 引的信息。

2、 根据权利要求 1所述的方法, 其特征在于:

所述分别对各个轨道上需要编码的脉冲按照位置进行统计时,还按照各个 轨道上各个有脉冲位置的脉冲符号的正或负的特性,获得各个轨道的各个有脉 冲位置的脉冲符号信息; 息, 所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息。

3、 根据权利要求 1或 2所述的方法, 其特征在于:

一个第一索引与一个 {Νο, Ν^. , Ν }组合对应, 或者,

至少有一个第一索引与两个以上的 {NQ, Ν^. , Ν }组合对应,对于存在与 第一索引对应的 Nt值不唯一的轨道, 除了确定该轨道的第二、 三索引, 还确定 与该轨道上当前有脉冲位置的数目对应的附加索引,所述附加索引对应于其所 代表的有脉冲位置的数目下, 该轨道上有脉冲位置全部可能的分布情况, 所述 编码索引中还包括所述附加索引的信息。

4、 根据权利要求 3所述的方法, 其特征在于, 所述编码索引 Ind釆用如下 方式生成:

Ind = II + Index(O) x 丽 (t) + Index(l) x 丽 (t) + … + Index(T - 1);

t=l t=2

其中, Imax(t)表示 Index(t)的上限值, "Π"表示求积, Index(t)釆用如下方式 生成: 在不包含符号索引的情况下, 对于与第一索引对应的 Nt值唯一的轨道: Index(t) = I2t + I3t , 其中 "C" 表示求组合数, Mt表示第 t个轨道上

的位置总数; 在不包含符号索引的情况下, 对于与第一索引对应的 Nt值不唯一的轨道:

Index(t) = Ift + I2t + I3t , 其中 Ift表示第 t个轨道与当前 Nt值对应的附

加索引; 在包含符号索引的情况下, 对于与第一索引对应的 Nt值唯一的轨道: Index(t) = (I2t + I3t ) χ 2Nt + Ist, 其中 Ist表示第 t个轨道的符号索引, 共有 Nt个比特,每个比特的取值指示与该比特对应的有脉冲位置的脉冲符号信 息; 在包含符号索引的情况下, 对于与第一索引对应的 Nt值不唯一的轨道: Index(t) = Ift + (I2t + I3t ) χ 2Nt + Ist

5、 根据权利要求 1至 4中任一项所述的方法, 其特征在于, 在所述生成编 码索引的步骤之后还包括:

比较所述编码索引 Ind和调整门限值 THR, 其中,

THR < 2Bmax - Imax(T),

Imax(T)表示 Ind的上限值, Bmax表示用来对编码索引进行编码的比特数量 的上限值, 若 Ind小于 THR, 釆用第一数量的编码比特对 Ind进行编码, 否则釆用第二 数量的编码比特对加上偏移值 THRQ的 Ind进行编码, THR < THR0 < 2Bmax - Imax(T), 所述第一数量少于所述第二数量, 所述第二数量小于等于 Bmax, 所述 第一数量和所述第二数量均为正整数。

6、 根据权利要求 5所述的方法, 其特征在于, 第一索引与

组合的对应关系釆用如下方式确定: 统计 {Νο,Ν^.,Ν }组合的出现概率, 使 出现概率越高的组合对应的第一索引越小。

7、 根据权利要求 1至 4中任一项所述的方法, 其特征在于, 所述分别按照 各个轨道上各个有脉冲位置上的脉冲数目确定各个轨道的第三索引 I3t的步骤 包括:

对于第 t个轨道, 将在 Nt个有脉冲位置上有 ^个脉冲的情况, 映射为在 Nt 个位置上有 W_Nt个脉冲的情况, 其中 ^表示第 t个轨道上需要编码的脉冲总 数,

按照设定的顺序, 对 ^ - Nt个脉冲在 Nt个位置上全部可能的分布情况进行 排列, 以排列的序号作为指示有脉冲位置上的脉冲数目的第三索引 I3t

8、根据权利要求 7所述的方法, 其特征在于, 各个轨道的第三索引 I3t的计 算公式为:

A5Vt _ A5Vt v 「「AWt A5Vt

丄 -3t— ρρτ — LppT_q(0)十 L^ppx-h-q(h-l) _ ^PPT-h-q(h)J '

h=l

其中, Δ^ = ^- Nt, PPT = ^- 1, q(h)表示第 h+ 1个脉冲的位置序号, he [0, Δ^- 1], q(h) G [0, Nt- 1], q(0) q(l) … q(A^ - 1), 或者 q(0) > q(l) >… q(A^V[- 1), ∑表示求和。

9、 根据权利要求 1至 4中任一项所述的方法, 其特征在于, 各个轨道的第 二索引 I2t的计算公式为:

其中, pt(n)表示第 n个有脉冲位置在轨道上的位置序号, ηζ [0, Nt_ l], pt(0) e [0, Mt— Nt], pt(n) e [pt(n- l)+ l, Mt— Nt + n], pt(0) < pt(l) <… < pt(Nt - 1), 或者 pt(0) > pt(l) >… > pt(Nt - 1)。

10、 一种脉冲编码方法, 其特征在于, 包括:

获取 T个轨道上需要编码的脉冲, T是大于或等于 2的整数;

分别对各个轨道上需要编码的脉冲按照位置进行统计,获得各个轨道上有 脉冲位置的数目 Nt、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数 目, 其中下标 t表示第 t个轨道, t e [0, T-1];

分别按照各个轨道上有脉冲位置的数目确定各个轨道的第一索引 lit,所述 第一索引对应于其所代表的有脉冲位置的数目下,该轨道上有脉冲位置全部可 能的分布情况;

分别按照各个轨道上有脉冲位置的分布确定各个轨道的第二索引 I2t,所述 第二索引从所述第一索引对应的全部可能的分布情况中,指示该轨道上与当前 有脉冲位置的分布对应的分布情况;

分别按照各个轨道上各个有脉冲位置上的脉冲数目确定各个轨道的第三 索引 I3t;

生成编码索引 Ind, 所述编码索引包括各个轨道的第一、 二、 三索引的信 息。

11、 一种脉冲解码方法, 其特征在于, 包括:

获取编码索引 Ind, 从所述编码索引中提取出第一索引, 按照第一索引确 定 T个轨道的各个轨道上有脉冲位置的数目 {Νο, Ν^. , Ν } , 其中 Nt的下标 t表 示第 t个轨道, t e [0, T-1] , T是大于或等于 2的整数;

从所述编码索引中提取出各个轨道的第二索引 I2t和第三索引 I3t;

分别对于各个轨道,按照第二索引确定,在所述第一索引对应的有脉冲位 置的数目下, 有脉冲位置在轨道上的分布;

分别对于各个轨道, 按照第三索引确定各个有脉冲位置上的脉冲数目; 分别对于各个轨道,按照有脉冲位置在轨道上的分布和各个有脉冲位置上 的脉冲数目, 重建轨道上的脉冲序列。

12、 根据权利要求 11所述的方法, 其特征在于, 所述从编码索引中提取出 第一索引釆用: 从设定的若干个独立的取值范围中, 判断所述编码索引所属的 取值范围, 按照该所属的取值范围对应的起始值确定所述第一索引。

13、 根据权利要求 11所述的方法, 其特征在于:

一个第一索引与一个 {Νο, Ν^. , Ν }组合对应, 或者,

至少有一个第一索引与两个以上的 {NQ, Ν^. , Ν }组合对应,对于存在与 第一索引对应的 Nt值不唯一的轨道, 除了提取该轨道的第二、 三索引, 还提取 与该轨道上当前有脉冲位置的数目对应的附加索引,所述附加索引对应于其所 代表的有脉冲位置的数目下, 该轨道上有脉冲位置全部可能的分布情况。

14、 根据权利要求 11至 13中任一项所述的方法, 其特征在于, 所述获取编 码索引 Ind的步骤包括:

从编码码流中提取第一数量的编码比特;

若所述第一数量的编码比特解码后的值小于调整门限值 THR,以所述第一 数量的编码比特解码后的值作为编码索引 Ind;

否则,增加提取的编码比特的数量至第二数量, 以所述第二数量的编码比 特解码后的值减去偏移值 THRQ作为编码索引 Ind。

15、 一种脉冲解码方法, 其特征在于, 包括:

获取编码索引 Ind, 从所述编码索引中提取出各个轨道的第一索引 Ilt, 分 别对于各个轨道, 按照第一索引确定有脉冲位置的数目 Nt, 其中下标 t表示第 t 个轨道, t e [0, T-1] , T是大于或等于 2的整数;

从所述编码索引中提取出各个轨道的第二索引 I2t和第三索引 I3t;

分别对于各个轨道,按照第二索引确定,在所述第一索引对应的有脉冲位 置的数目下, 有脉冲位置在轨道上的分布;

分别对于各个轨道, 按照第三索引确定各个有脉冲位置上的脉冲数目; 分别对于各个轨道,按照有脉冲位置在轨道上的分布和各个有脉冲位置上 的脉冲数目, 重建轨道上的脉冲序列。

16、 一种脉冲编码器, 其特征在于, 包括:

脉冲统计单元, 用于获取 T个轨道上需要编码的脉冲, T是大于或等于 2的 整数, 分别对各个轨道上需要编码的脉冲按照位置进行统计, 获得各个轨道上 有脉冲位置的数目 Nt、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲 数目, 其中下标 t表示第 t个轨道, te[0, T-1];

索引计算单元, 所述索引计算单元包括: 第一索引单元, 用于按照各个轨 道上有脉冲位置的数目 {Νο,Ν^.,Ν }输出第一索引 II, 所述第一索引对应于 其所代表的有脉冲位置的数目下, 各个轨道上有脉冲位置全部可能的分布情 况; 第二索引单元, 用于分别按照各个轨道上有脉冲位置的分布输出各个轨道 的第二索引 I2t, 所述第二索引从所述第一索引对应的全部可能的分布情况中, 指示相应轨道上与当前有脉冲位置的分布对应的分布情况; 第三索引单元, 用 于分别按照各个轨道上各个有脉冲位置上的脉冲数目输出各个轨道的第三索 引 1

索引组合单元, 用于组合所述第一索引和各个轨道的第二、三索引的信息 生成编码索引 Ind。

17、 根据权利要求 16所述的编码器, 其特征在于: 至少有一个第一索引与 两个以上的 {NQ, Νι,...,Ντ-i}组合对应,

所述索引计算单元还包括附加索引单元,用于对于存在与第一索引对应的 Nt值不唯一的轨道, 确定与该轨道上当前有脉冲位置的数目对应的附加索引, 所述附加索引对应于其所代表的有脉冲位置的数目下,该轨道上有脉冲位置全 部可能的分布情况;

所述索引组合单元还将所述附加索引的信息组合到所述编码索引中。

18、 根据权利要求 16或 17所述的编码器, 其特征在于, 还包括: 编码比特 调整单元, 用于在所述索引组合单元生成编码索引后, 比较所述编码索引 Ind 和调整门限值 THR, 其中,

THR<2Bmax-Imax(T),

Imax(T)表示 Ind的上限值, Bmax表示用来对编码索引进行编码的比特数量 的上限值,

若 Ind小于 THR, 釆用第一数量的编码比特对 Ind进行编码, 否则釆用第二 数量的编码比特对加上偏移值 THRQ的 Ind进行编码, THR < THR0 < 2Bmax - Imax(T), 所述第一数量少于所述第二数量, 所述第二数量小于等于 Bmax, 所述 第一数量和所述第二数量均为正整数。 19、 一种脉冲解码器, 其特征在于, 包括:

第一提取单元, 用于获取编码索引 Ind, 从所述编码索引中提取出第一索 引, 按照第一索引确定 T个轨道的各个轨道上有脉冲位置的数目 {N0, Ni, ... , Ντ-ι} , 其中 Nt的下标 t表示第 t个轨道, t e [0, T-l] , Τ是大于或等于 2的整数; 第二提取单元,用于从所述编码索引中提取出各个轨道的第二索引 I2t和第 三索引 1

第一解码单元, 用于分别对于各个轨道, 按照第二索引确定, 在所述第一 索引对应的有脉冲位置的数目下, 有脉冲位置在轨道上的分布;

第二解码单元, 用于分别对于各个轨道,按照第三索引确定各个有脉冲位 置上的脉冲数目;

脉冲重建单元, 用于分别对于各个轨道,按照有脉冲位置在轨道上的分布 和各个有脉冲位置上的脉冲数目, 重建轨道上的脉冲序列。

20、 根据权利要求 19所述的解码器, 其特征在于, 至少有一个第一索引与 两个以上的 {NQ, Νι, ... , Ντ-ι}组合对应, 所述解码器还包括:

附加提取单元, 用于对于存在与第一索引对应的 Nt值不唯一的轨道, 提取 与该轨道上当前有脉冲位置的数目对应的附加索引,所述附加索引对应于其所 代表的有脉冲位置的数目下, 该轨道上有脉冲位置全部可能的分布情况;

所述第二提取单元是根据所述附加提取单元提取的附加索引确定的相应 轨道上当前有脉冲位置的数目, 提取出该轨道的第二索引 I2t和第三索引 I3t

21、 根据权利要求 19或 20所述的解码器, 其特征在于, 还包括: 解码比 特调整单元, 用于从编码码流中提取第一数量的编码比特, 若所述第一数量的 编码比特解码后的值小于调整门限值 THR, 以所述第一数量的编码比特解码 后的值作为编码索引 Ind输出,否则,增加提取的编码比特的数量至第二数量, 以所述第二数量的编码比特解码后的值减去偏移值 THRQ作为编码索引 Ind输 出。

Description:
脉冲编解码方法及脉冲编解码器

本申请要求于 2010 年 6 月 24 日提交中国专利局、 申请号为 201010213451.5、 发明名称为 "脉冲编解码方法及脉冲编解码器" 的中国专利 申请的优先权, 其全部内容通过引用结合在本申请中。

技术领域

本发明涉及脉冲编解码方法及脉冲编解码器。

背景技术

在矢量编码技术中,常常使用代数码书对自适 应滤波后的残差信号进行量 化编码。 当经过搜索获得轨道上最佳代数码书脉冲的位 置和符号信息后,通过 编码计算得到相应的索引值,使得解码端能够 根据该索引值重建脉冲序列。在 保证无损重建的前提下,尽量减少编码索引值 所需要的比特,是代数码书脉冲 编码方法研究与发展的主要目标之一。

下面以语音编码中一种较优的编码方法——宽 带自适应多码率 ( AMR WB +: Adaptive Multi-Rate Wideband )编码方法为例, 说明现有代数 码书脉冲所釆用的一种具体编码方法。根据编 码码率的不同,在每个轨道上可 以编码 1~N个脉冲, 叚定每个轨道有 M = 2""个位置, AMR— WB +中每个轨道 上编码 1~6个脉冲的过程分别描述如下:

①每个轨道编码 1个脉冲

由于每个轨道有 2 m 个位置, 因此, 每个轨道上脉冲的位置索引需要用 m 个比特进行编码, 脉冲的符号索引需要用 1比特编码。编码 1个带符号脉冲的 索引值为:

其中 ρ ζ [0 , 2 m - l]为脉冲的位置索引; s为脉冲的符号索引, 当脉冲符号为正 时, s设置为 0 , 当脉冲符号为负时, s设置为 1 ; I lp G [0 , 2 m+1 - l]。

每个轨道编码 1个脉冲所需的比特数为: m + 1。

②每个轨道编码 2个脉冲

根据①的结果, 每个轨道编码 1个脉冲需要 m + 1个比特, 对另一个脉冲 的位置索引进行编码需要 m个比特, 由于对脉冲顺序没有特别要求, 可通过 排列脉冲位置索引获得的大小关系来表示另一 个脉冲的符号。编码 2个脉冲的 索引值为:

I 2p (m) = pl + I lp0 x 2 m 1 + P 0 x 2 m + s x 2 2m

其中 p0、 pi G [0, 2 m - 1]分别为 2个脉冲的位置索引; s为 pO脉冲的符号索引; pi脉冲符号的具体表示规则为: pO < pi表示 2个脉冲符号相同, pO > pi表示 2个脉冲符号相反; l 2p e[0, 2 2m+1 -l]。

每个轨道编码 2个脉冲所需的比特数为: 2m + 1。

③每个轨道编码 3个脉冲

将每个轨道分为两个部分: Section A和 Section B, 每个部分各包含 2"^ 个位置。 某个部分中至少包含 2个脉冲, 根据②的结果, 编码该部分需要 2 X (m- l)+ l =2m- 1个比特; 另一个脉冲则在整个轨道上搜索,根据①的结 果, 需要 m+ 1个比特; 此外, 还需要用 1个比特来指示包含 2个脉冲的部分。 编 码 3个脉冲的索引值为:

I 3p (m) = I 2p (m - l) + kx 2 2mA + I lp (m) x 2 2m

其中 k为 Section的索引; I 3p e[0, 2 3m+1 - 1]。

每个轨道编码 3个脉冲所需的比特数为: 3m + 1。

④每个轨道编码 4个脉冲

将每个轨道分为两个部分: Section A和 Section B, 每个部分各包含 2"^ 个位置。 各部分中包含脉冲个数的组合情况如下表所示 :

上表中, 各个类别对应的需要比特数的依据为: 对于类别 0和类别 4, 在 有 4 个脉冲的部分中釆用类似③的方法, 只是进行整体搜索的脉冲数目为 2 个, 相当于 I 2p (m- 2) + kx2 2m - 3 + I 2p (m- l)x2 2m - 2 ; 对于类别 1, 相当于 I lp (m -1) + I 3p (m-I)x2 m ; 对于类别 2, 相当于 I 2p (m- 1) + I 2p (m- l ? 2 " 1 1 ; 对于 类别 3 , 相当于 I 3p (m - 1) + I lp (m - 1) x 2 3m 2

将类别 0和类别 4看作一种可能的情况,类别 1~3各作为一种情况, 则总 共有 4种情况, 因此需要用 2个比特来表示对应的情况, 则类别 1~3都需要 4m- 2 + 2 = 4m个比特; 此外, 对于包含类别 0和类别 4的情况, 还需要用 1 个比特来区分, 因此类别 0和类别 4需要 4m- 3 + 2 + 1 =4m个比特。

每个轨道编码 4个脉冲所需的比特数为: 4m。

⑤、 每个轨道编码 5个脉冲

将每个轨道分为两个部分: Section A和 Section B, 每个部分各包含 2"^ 个位置。 某个部分中至少包含 3个脉冲, 根据③的结果, 编码该部分需要 3 X (m- 1)+ 1 =3m- 2个比特; 剩下两个脉冲则在整个轨道上搜索, 根据②的结 果, 需要 2m+ l个比特; 此外, 还需要用 1个比特来指示包含 3个脉冲的部 分。 编码 5个脉冲的索引值为:

I 5p (m) = I 3p (m - l) + kx 2 3m - 2 + I lp (m) x 2 3m

每个轨道编码 5个脉冲所需的比特数为: 5m。

⑥每个轨道编码 6个脉冲

将每个轨道分为两个部分: Section A和 Section B, 每个部分各包含 2"^ 个位置。 各部分中包含脉冲个数的组合情况如下表所示 :

上表中, 各个类别对应的需要比特数的依据可仿照④推 算, 不再赘述。 分别将类别 0和 6、 类别 1和 5、 类别 2和 4各看作一种可能的情况, 类 别 3单独作为一种情况, 则总共有 4种情况, 因此需要用 2个比特来表示对应 的情况, 则类别 3需要 6m - 4 + 2 = 6m - 2个比特; 对于那些包含合并类别的 情况, 还需要用 1个比特来区分, 因此除类别 3外的其他类别需要 6m - 5 + 2 + 1 = 6m - 2个比特。

每个轨道编码 6个脉冲所需的比特数为: 6m - 2。

在提出本发明的过程中, 发明人发现, AMR— WB +提供的代数脉冲编码 方法, 釆用类似递归的编码逻辑, 将编码脉冲数量较多的情况拆分为若干个编 码脉冲数量较少的情况来处理, 计算复杂度较大, 同时, 随着轨道上编码脉冲 数目的增加, 编码索引的冗余度将逐渐累加, 容易造成编码比特的浪费。 发明内容

本发明实施例提供能够节省编码比特的脉冲编 码方法。

一种脉冲编码方法, 包括: 获取 T个轨道上需要编码的脉冲, T是大于或 等于 2的整数; 分别对各个轨道上需要编码的脉冲按照位置进 行统计, 获得各 个轨道上有脉冲位置的数目 N t 、有脉冲位置在轨道上的分布和各个有脉 冲位置 上的脉冲数目, 其中下标 t表示第 t个轨道, t e [0, T-1]; 按照各个轨道上有脉 冲位置的数目 {Νο, Ν^. , Ν }确定第一索引 II , 所述第一索引对应于其所代表 的有脉冲位置的数目下, 各个轨道上有脉冲位置全部可能的分布情况; 分别按 照各个轨道上有脉冲位置的分布确定各个轨道 的第二索引 I2 t ,所述第二索引从 所述第一索引对应的全部可能的分布情况中, 指示相应轨道上与当前有脉冲位 置的分布对应的分布情况;分别按照各个轨道 上各个有脉冲位置上的脉冲数目 确定各个轨道的第三索引 I3 t ; 生成编码索引 Ind, 所述编码索引包括第一索引 和各个轨道的第二、 三索引的信息。

另一种脉冲编码方法, 包括: 获取 T个轨道上需要编码的脉冲, T是大于 或等于 2的整数; 分别对各个轨道上需要编码的脉冲按照位置进 行统计, 获得 各个轨道上有脉冲位置的数目 N t 、有脉冲位置在轨道上的分布和各个有脉 冲位 置上的脉冲数目, 其中下标 t表示第 t个轨道, t e [0, T-1]; 分别按照各个轨道 上有脉冲位置的数目确定各个轨道的第一索引 lit,所述第一索引对应于其所代 表的有脉冲位置的数目下, 该轨道上有脉冲位置全部可能的分布情况; 分别按 照各个轨道上有脉冲位置的分布确定各个轨道 的第二索引 I2 t ,所述第二索引从 所述第一索引对应的全部可能的分布情况中, 指示该轨道上与当前有脉冲位置 的分布对应的分布情况;分别按照各个轨道上 各个有脉冲位置上的脉冲数目确 定各个轨道的第三索引 I3 t ; 生成编码索引 Ind, 所述编码索引包括各个轨道的 第一、 二、 三索引的信息。

本发明实施例还提供与之相应的脉冲解码方法 以及相应的脉冲编码器和 解码器。

本发明实施例中, 通过将两个以上的轨道联合进行编码,使得在 单个轨道 编码的情况下空闲的码书空间能够在联合编码 时合并,成为可以被节省的编码 比特, 此外, 对各个轨道上需要进行编码的脉冲按照位置进 行合并, 分别对有 脉冲位置的数目、有脉冲位置在轨道上的分布 和各个有脉冲位置上的脉冲数目 进行编码,避免了对同一位置的多个脉冲进行 分别编码,使得编码比特更加节 省。

附图说明

图 1是本发明实施例一编码方法流程示意图;

图 2是本发明实施例一中脉冲位置映射示意图;

图 3是本发明实施例二编码方法流程示意图;

图 4是本发明实施例三编码方法流程示意图;

图 5是本发明实施例四中轨道脉冲叠加示意图;

图 6是本发明实施例四中脉冲分布的轨道索引示 图;

图 7是本发明实施例五解码方法流程示意图;

图 8是本发明实施例六解码方法流程示意图;

图 9是本发明实施例七解码方法流程示意图;

图 10是本发明实施例八编码器逻辑结构示意图;

图 11是本发明实施例九解码器逻辑结构示意图。

具体实施方式

本发明实施例提供脉冲编码方法,通过将两个 以上的轨道联合进行编码来 节省的编码比特。 本发明实施例还提供相应的脉冲解码方法以及 脉冲编解码 器。 以下分别进行详细说明。

在语音编码器中, 经过码书搜索得到每个轨道上所有脉冲的位置 和符号 (若涉及)信息, 这些信息需要被完整的传递到解码端, 使得在解码端能够唯 一的恢复所有脉冲的位置和符号(若涉及)信 息, 同时为了尽量的降低比特率, 期望使用尽量少的比特来传递这些信息。

通过理论分析可知, 同一轨道上所有脉冲位置和符号(若涉及)的 排列组 合数即为码本空间的最小值,对应的编码比特 数即为理论下限值。轨道上的位 置总数以及脉冲总数是一定的,对于轨道上的 位置总数以及脉冲总数的不同取 值情况而言, 所有脉冲位置和符号的排列组合数并不总是 2的整数次幂, 因此 编码比特数的理论下限值并不总是整数, 此时,单轨道编码的实际编码比特数 至少为理论下限值的整数部分加 1 , 这使得不可避免的出现部分码本空间的空 闲。 例如, 表 1给出了在位置总数为 16的轨道上, 需要编码的脉冲总数 W为 1-6 的情况下, 编码比特数的理论下限值 际下限值以及空闲空间的情况。

从表 1可以看出, 大多数情况下, 实际下限值仍会带来码本空间的较大浪 费, 因此本发明提出, 对两个以上的轨道进行联合编码, 这样在单轨道编码中 空闲的码本空间就可以合并, 一旦合并的空闲空间足够, 即可降低 1个实际编 码比特。显然,对于同样类型(轨道上的位置 总数和脉冲总数均相同)的轨道, 只要将 K个轨道联合编码即可节省 1个编码比特, K > l / (l-kk), 其中 kk为单轨 道编码的理论下限值的小数部分。 举例而言, kk小于 0.5的轨道, 例如, 表 1中 脉冲总数为 3、 4、 5的轨道, 2个一起联合编码即可节省 1个编码比特, 表 1中脉 冲总数为 6的轨道, 3个一起联合编码即可节省 1个编码比特。 当然, 不同类型 的轨道联合编码也可以达到同样的效果, 只要 2个轨道的 kk累加之和小于 1 , 或 者 3个轨道的 kk累加之和小于 2即可节省一个比特, 显然若 3个轨道的 kk累加之 和小于 1更可节省 2个比特, 以此类推。表 2给出了同类型 2轨道联合编码与单轨 道编码的比较情况(考虑脉冲有符号), 轨道上的位置总数为 16, 需要编码的 脉冲总数 为 3-5。

表 3给出了不同类型 2-3轨道联合编码与单轨道编码的比较情况(考 虑脉冲 有符号), 轨道上的位置总数为 16, 需要编码的脉冲总数 为 3-5。

表 3 联合 单轨道排列组合 单轨道编码实际 轨道联合编码实 ί

模式 数 下限值 际下限值

2轨道 3 5472 13

28 联合 4 44032 16

2轨道 4 44032 16

34 联合 5 285088 19

3 5472 13

3轨道

4 44032 16 47 联合

5 285088 19 以上给出了多轨道联合编码节省比特数的理论 分析, 为达到该理论效果, 需要使编码索引尽可能有效的使用码本空间, 下面分别以具体实施例给出实现 多轨道联合编码的实际比特下限值的编码方法 。 实施例一、 一种脉冲编码方法, 如图 1所示, 包括:

Al、 获取 T个轨道上需要编码的脉冲, T是大于或等于 2的整数。

T个轨道中每个轨道上需要编码的脉冲总数通 根据码率来确定, 需要编 码的脉冲数目越多, 显然编码索引需要的比特数也越多, 码率越高, 本文中, 以 pulse— num t 表示第 t个轨道上需要编码的脉冲总数, 假设 pulse— num t = ^, t G

[0, T-l] ; 联合编码的各个轨道上的脉冲总数可以相同也 可以不同。

Α2、 分别对各个轨道上需要编码的脉冲按照位置进 行统计, 获得各个轨 道上有脉冲位置的数目 N t 、有脉冲位置在轨道上的分布和各个有脉 冲位置上的 脉冲数目。

本文中:

以 pos— num t 表示第 t个轨道上有脉冲位置的数目,由于 ^个脉冲在轨道上的 分布可能出现位置重叠, 假设 pos— num t = N t , 显然有 N t e [l , ^]。

以脉冲位置矢量 P t (N t ) = {p t (0), p t (l), p t (N t - 1)}表示第 t个轨道上有脉 冲位置在轨道上的分布; 其中, p t (n)表示有脉冲位置在第 t个轨道上的位置序 号, n e [0, N t - 1] , p t (n) G [0, M t - 1] , M t 在本文中表示第 t个轨道上的位置总 数, 一般 M t 可以为 8 , 16等等, 联合编码的各个轨道上的位置总数可以相同也 可以不同。

以脉冲数目矢量 SU t (N t ) = {su t (0), su t (l), su t (N t - 1)}表示第 t个轨道上 的各个有脉冲位置上的脉冲数目; 其中, su t (n)表示 p t (n)位置的脉冲数目, 显然 有 su t (0) + sut(l) +… + su t (Nt _ 1) = ^。

此外, 需要编码的脉冲还可能带有符号, 即具有正或负的特性, 此时在对 轨道上需要编码的脉冲按照位置进行统计时, 还需要获得各个有脉冲位置的脉 冲符号信息, 本文中:

以脉冲符号矢量 S t (N t ) = { (0), s t (l), ..· , s t (N t - 1)}表示第 t个轨道上的各 个有脉冲位置的脉冲符号信息;其中, s t (n)表示 p t (n)位置的脉冲符号,称为 p t (n) 位置的符号索引, 基于 s t (n)所代表的脉冲符号具有或正或负的二值 性, 一般可 釆用如下简单的编码方式: 用 s t (n) = 0表示正脉冲, s t (n) = 1表示负脉冲。 当然, 对于需要编码的脉冲来说, 脉冲符号并不是必须具备的特征, 按照实际需要, 脉冲可以仅有位置和数量特性, 此时无需统计脉冲符号信息。

显然, P t (N t )、 SU t (N t )、 S t (N t )中的值具有——对应的关系。

在统计获得轨道联合编码需要的各项参数 N t 、 P t (N t )、 SU t (N t )、 S t (N t )后, 就需要将各项参数编码为索引, 建立参数与索引之间的对应关系,使得解码方 能够根据索引恢复出对应的参数。对应关系可 以釆用两种表示方式,一是用代 数方式表示的计算关系, 这种情况下, 编码方对参数进行正向计算获得索引, 解码方则对索引进行反向计算获得参数; 一是用映射方式表示的查询关系, 这 种情况下, 编解码双方需要存储关联参数与索引的映射表 。 两种对应关系可根 据参数的具体特点进行选择, 一般而言, 在数据量大的情况下, 尽量设计出以 计算关系表示的对应关系能够节省编解码双方 的存储量, 是更为有利的。 下面 分别对各项参数的编码进行说明。

A3、 按照各个轨道上有脉冲位置的数目 {Νο, Ν^. , Ν }确定第一索引 II , 第一索引 II对应于其所代表的有脉冲位置的数目下,各 轨道上有脉冲位置全 部可能的分布情况。

T-1

{Νο, Ν^. , Ν }组合的可能情况总数为 Π N t , 由于 N t 取值不大, 通常联 t=o

合编码的轨道总数 T也不会很大, 使得 {N Q , Ni, ... , Nw}组合的可能情况总数不 是 4艮大, 因此 {Ν 0 , Ν^. , Ν }组合与第一索引 II的对应釆用计算关系或查询关 系都是可行的。 在建立 {N Q , N 1 ... , Nw}组合与 II的对应关系时, 一般可令他们与 II具有一 一对应的关系, 即一个第一索引与一个 {N 0 , N 1 ... , Nw}组合对应。 pos— num t 的数值 N t 决定了 P t (N t )全部可能情况的总数 W t (N t ), Wt(N t ) = , "C" 表示求 组合数;因此一个 II对应于 PW

t=o

Τ-1 )}。

当然,若某个轨道的某些 N T 值对应较少的 P T (N T )情况数,可以将这些 N T 值组 合起来对应同一个 II ,即至少有一个 II与两个以上的 {N Q , N 1 ... , Nw}组合对应, 此时需要通过额外的附加索引 对这些对应同一个 II的 {N 0 , N 1 ... , Nw}组合进 行区分, 也就是用附加索引 ¾进一步确定与 II对应的 N T 值不唯一的轨道当前的 N T 值。

可以将不同的 II视为轨道联合编码的分类索引, 它根据各个轨道的脉冲位 置数组合将整个联合编码的码本空间划分为若 干个部分。下面举例说明联合编 码的组合分类情况。 表 4为 3脉冲 2轨道联合编码的一种组合分类方案, 共有 3 χ 3种 N T 值组合, 每种组合对应一个分类(II ), 假定轨道上的位置总数 M T 均为 16。

表 5为 4脉冲 2轨道联合编码的一种组合分类方案, 共有 4 4种 N T 值组合, 同样是每种组合对应一个分类 (II ), 假定轨道上的位置总数 M T 均为 16。 轨道 0 轨道 1

分类 P t (N t )组合数

N t N t

1 4 4 1820 1820

2 4 3 1820 560

3 3 4 560 1820

4 3 3 560 560

5 4 2 1820 120

6 2 4 120 1820

7 3 2 560 120

8 2 3 120 560

9 4 1 1820 16

10 1 4 16 1820

11 2 2 120 120

12 3 1 560 16

13 1 3 16 560

14 2 1 120 16

15 1 2 16 120

16 1 1 16 16

表 6为 5脉冲 2轨道联合编码的一种组合分类方案, 与前面两例不同的是, 将 N t = l、 2、 3的情形组合在一起进行分类, 共有 3 x 3种分类(II ), 某些分类 对应多个 N t 值组合, 假定轨道上的位置总数 M t 均为 16。

表 6 轨道 0 轨道 1

分类 P t (N t )组合数

N t N t

1 5 5 4368 4368 2 5 4 4368 1820

3 4 5 1820 4368

4 4 4 1820 1820

5 5 1、 2、 3 4368 (16 + 120 + 560)

6 1、 2、 3 5 (16 + 120 + 560) 4368

7 4 1、 2、 3 1820 (16 + 120 + 560)

8 1、 2、 3 4 (16 + 120 + 560) 1820

9 1、 2、 3 1、 2、 3 (16 + 120 + 560) (16 + 120 + 560) 由表 6可以看出, 通过将 N t 值(通常是对应位置组合数较少的 N t 值)组合 在一起进行分类, 可以有效减少总的联合编码分类数量(例如表 6中的分类数 为 9个, 远少于——对应情况下的分类数 25), 当然, 相应的需要在出现非唯一 N t 值的分类情形中使用额外的附加索引 ¾来确定当前 N t 值, 即在 11划分出的空 间中, 进一步划分出由附加索引 ¾标识的子空间。

A4、 分别按照各个轨道上有脉冲位置的分布 P t (N t )确定各个轨道的第二索 引 I2 t , 第二索引 I2 t 从第一索引 II对应的全部可能的分布情况中, 指示相应轨道 上与当前有脉冲位置的分布对应的分布情况。

P t (N t )的总可能数为 W t (N t )= ,数据量较大, 因此与第二索引 I2 t 的对应 比较适合釆用计算关系, 当然釆用查询关系也是可行的。 显然 W t (N t )即是 I2 t 全 部可能的取值数目, 若 I2 t 的值从 0开始计数, 则有 I2 t e [0, W t (N t )-l] 0

当然, 在需要使用附加索引 ¾的情况下, 决定 I2 t 范围的 N t 值由第一索引 II 与附加索引 联合确定。

为便于通过代数计算来确定 P t (N t )与 I2 t 的对应关系, 下面给出一种第二索 引 I2 t 的计算公式:

其中, p t (n)表示第 n个有脉冲位置在轨道上的位置序号, ne[0, N t _l], p t (0) e [0, M t — N t ], p t (n) e[p t (n-l)+l, M t — N t + n], p t (0) < p t (l) <… < p t (N t - 1), 或者 p t (0) > p t (l) > … > p t (N t - 1)。

釆用上述方法能够以计算关系获得各个轨道的 第二索引 I2 t ,由于 I2 t 在编码 索引中所占数据量较大, 釆用计算方法能够尽量减少编解码双方的存储 量。 同 时, 由于 I2 t 连续编码且与 P t (N t )严格——对应, 因此能够最大限度的利用编码 比特,避免浪费。 关于该计算方法的原理以及具体推导和描述请 参阅公开号为 CN101295506的中国专利申请(公开日为 2008年 10月 29日 ), 尤其可参见该申 请文件说明书第 13页第 18行至第 15页第 9行(实施例二, 附图 14、 15 ), 相应的 解码计算方法可参见该申请文件说明书第 16页第 23行至第 17页第 12行(实施例 四)。

A5、 分别按照各个轨道上各个有脉冲位置上的脉冲 数目 SU t (N t )确定各个 轨道的第三索引 I3 t

SU t (N t )虽然是与 P t (N t )同维度的矢量, 但受限于 su t (0) + su t (l) + ... + su t (N t - l) = i t , 且 ^的数值通常不大, 一般为 1~6 , 因此 SU t (N t )的总可能数不大, 与第三索引 I3 t 的对应釆用计算关系或查询关系都是可行 的。 需要说明的是,在 某些极端情况下, 例如 N t = l或 N t = W, 此时 SU t (N t )只有一种可能情况, 无须 由具体的 I3 t 进行指示, 可将 I3 t 视为不影响最终编码索引生成的任意值。

为便于通过代数计算来确定 SU t (N t )与 I3 t 的对应关系,下面给出一种第三索 引 I3 t 的计算方法:

对于第 t个轨道, 将在 N t 个有脉冲位置上有 ^个脉冲的情况, 映射为在 N t 个位置上有 W _ N t 个脉冲的情况, 其中 ^表示第 t个轨道上需要编码的脉冲总 数。 例如, 图 2所示的 4种 6脉冲 4位置(^ = 6, N t = 4 )的情形, 其 SU t (N t )均为 {1, 2, 1, 2 } , 将每个位置上的脉冲数减 1 (因为每个位置都至少有 1个脉冲 )得 到 {0, 1, 0, 1 } , 即将 SU t (N t )的信息映射为 2脉冲 4位置的编码情形。

按照设定的顺序, 对 ^ - N t 个脉冲在 N t 个位置上全部可能的分布情况进行 排列, 以排列的序号作为指示有脉冲位置上的脉冲数 目的第三索引 I3 t

体现上述计算方法的一种计算公式为:

A5V t _ A5V t v 「「AW t -h _ A5V t -h Ί .

丄 -3t — ρρτ — LppT_ q (0) 十 Z L^ppx-h-q(h-l) _ ^PPT-h-q(h) J '

h=l 其中, Δ^ = ^- N t , ΡΡΤ = ^- 1, q(h)表示第 h+ 1个脉冲的位置序号, he [0, A i t -l], q(h)e [0, N t - 1], q(0) q(l) … q(A^ - 1), 或者 q(0) > q(l) >… q(A^V[- 1), ∑表示求和。

关于该计算方法的原理以及具体推导和描述请 参阅公开号为 CN101388210的中国专利申请(公开日为 2009年 3月 18日 ), 尤其可参见该申请 文件说明书第 8页第 23行至第 10页第 7行(实施例二, 附图 6), 相应的解码计算 方法可参见该申请文件说明书第 21页第 10行至第 21页第 27行(实施例六;)。

A6、 生成 T个轨道的总的编码索引 Ind, 编码索引 Ind包括第一索引 II和各 个轨道的第二、 三索引 I2 t 、 I3 t 的信息。

II、 I2 t 、 I3 t 以及附加索引 If t (若涉及)和符号索引 Is t (若涉及)可以用任 何能够被解码方识别的方式放置到编码索引中 , 例如, 最简单的, 可分别单独 存放在固定的字段中。 考虑到在各个轨道需要编码的脉冲总数 pulse— num t —定 的前提下, II指示的各个 pos— num t 的数值 N t 决定了 I2 t 和 I3 t 的变化范围, 即, 决 定了 I2 t 和 I3 t 需要的编码比特数(在涉及的情况下, 也决定了 Is t 需要的编码比特 数), 因此可釆用如下方式来构造编码索引:

①以第一索引 II为起始值, 叠加其他索引的信息; II的一个取值对应于编 码索引的一个独立的取值范围; 这样, 解码方就可以根据编码索引的取值范围 当然,在有附加索引的情况下, 根据 II只能确定与第一索引对应的 N t 值不唯一的轨道的 N t 值组合, 例如表 6中 的组合 "1、 2、 3"; 不管是确定的 N t 值还是 N t 值组合, 其所需编码空间都是确 定的, 因此可以将 II划定的取值范围 (通常对应于一定的字段长度)再分成 T 个部分分别给 T个轨道的 I2 t 、 I3 t 和 If t (若涉及)使用。

② I2 t 、 I3 t 可以用任何能够被解码方识别的方式进行 放置,例如,最简单的, 可分别单独存放。 由于 I2 t 、 I3 t —般不能表示为 2的整数次方, 为尽量节省编码 比特, 可将第 t个轨道 I2 t 、 I3 t 组合为如下形式放置到从 II划定的取值范围中所 分配的部分中:

Index(t) = I2 t + I3 t W t (N t ) = I2 t + I3 t

I2 t 、 I3 t 均从 0开始编码, I2 t e[0, W t (N t )- 1], I3 t G [0, Class(N t ) - 1], Class(N t ) 为 SU t (N t )的总可能数。 显然, 这种方式相当于将从 II中分配的取值范围分成 Class(N t )个长度为 W t (N t )的部分, 每个部分对应 SU t (N t )的一种分布情况。

当然, 在需要使用 ¾的情况下, 从 II中分配给该轨道的取值范围需要先由 ¾划分给不同的 N t 使用, 再在划分给各个 N t 的空间中放置 I2 t 、 I3 t , 此时,

Index(t) = If t + I2 t + I3 t

③当然, 在所编码的脉冲为带符号脉冲的情况下, 各个 Index(t)中还需要 包括各个脉冲符号索引 s t (n)的信息, 例如, 可以将第 t个轨道的符号索引 Is t 作为 长度为 N t 的字段放置在从 II中分配给该轨道的取值范围中的固定位置上 例如 末尾, 此时,

Index(t) = (I2 t + I3 t ) χ 2 Nt + Is t (对于与第一索引对应的 N t 值唯一的 轨道), 或者,

Index(t) = If t + (I2 t + I3 t ) 2 Nt + Is t (对于与第一索引对应的 N t 值不 唯一的轨道), 其中, Is t = s t (0) 2 Nt_1 + s t (l) χ 2 N t- 2 +… + s t (N t - 1)

综上, T个轨道的总的编码索引 Ind的一种构造方式可表示为:

Ind = 11 + Index(T - 1) + I (Τ-1) χ {… χ { Index(2) + I (2) χ [Index(l) + I (1) lndex(O)] } ... }

= II + Index(O) x 丽 (t) + Index(l) x 丽 (t) +… + Index(T - 1) ,

t=l t=2

其中 I max (t)表示 Index(t)的上限值, "Π" 表示求积。 解码时可釆用对 I max (t)取余 的方式逐个将 Index(t)分离出来, 例如, 将 ( Ind - II )对 I max (T - 1)取余获得 Index(T - 1) , 从( Ind - II )中减去 Index(T - 1)再除以 I max (T - 1)后继续对 I max (T - 2)取余获得 Index(T - 2) , 以此类推, 直至获得 lndex(0)。 容易理解的是, 一种可选方 式, 本领域技术人员可以利用构成编码索引的基本 信息, 容易的得出其他编码 索引结构的构造方式, 例如进行索引位置的互换或重新组合等, 具体可以是先 组合不同轨道的 I2 t , 再组合 I3 t 和 Is t 等, 编码索引的具体构造方式不构成对本发 明实施例的限定。 实施例二、一种脉冲编码方法, 本实施例是将联合编码的各个轨道分别计 算出各自索引后, 再组合成编码索引, 如图 3所示, 包括步骤:

Bl、 获取 T个轨道上需要编码的脉冲, T是大于或等于 2的整数。

B2、 分别对各个轨道上需要编码的脉冲按照位置进 行统计, 获得各个轨 道上有脉冲位置的数目 N t 、有脉冲位置在轨道上的分布和各个有脉 冲位置上的 脉冲数目。

步骤 Bl、 B2可参照实施例一的步骤 Al、 A2执行。

B3、 分别按照各个轨道上有脉冲位置的数目确定各 个轨道的第一索引 Il t , 第一索引 lit对应于其所代表的有脉冲位置的数目下,该 轨道上有脉冲位置全部 可能的分布情况。

B4、 分别按照各个轨道上有脉冲位置的分布确定各 个轨道的第二索引 I2 t , 第二索引 I2 t 从第一索引 Il t 对应的全部可能的分布情况中,指示该轨 道上与当前 有脉冲位置的分布对应的分布情况。

B5、 分别按照各个轨道上各个有脉冲位置上的脉冲 数目确定各个轨道的 第三索引 I3 t

步骤 B3-B5可参照实施例一的步骤 Al、 A2执行,分别获得各个轨道的索引 的过程具体请参阅公开号为 CN101295506的中国专利申请(公开日为 2008年 10 月 29日 ), 尤其可参见该申请文件说明书第 6页第 13行至第 15页第 9行(实施例 一、 实施例二), 相应的解码计算方法可参见该申请文件说明书 第 15页第 11行 至第 17页第 12行(实施例三、 实施例四)。

B6、生成 T个轨道的总的编码索引 Ind, 编码索引 Ind包括各个轨道的第一、 二、 三索引 Il t 、 I2 t 、 I3 t 的信息。 Il t 、 I2 t 、 I3 t 和符号索引 Is t (若涉及)可以用任何能够被解码方识别的方 放置到编码索引中, 例如, 最简单的, 可分别单独存放在固定的字段中。 当然 也可以进行组合, 例如分别将各个轨道的索引组合在一起后再叠 加, 即釆用如 下方式来构造编码索引: Ind = Index(O) x 丽 (t) + Index(l) x 丽 (t) + … + Index(T - 1)

t=l t=2

其中 I max (t)表示 Index(t)的上限值,

Index(t) = Il t + I2 t + I3 t χ (不考虑脉冲符号的情形 ), 或者, Index(t) = Il t + (I2 t + I3 t χ C¾ ) χ 2 Nt + Is t (考虑脉冲符号的情形 )。

式, 本领域技术人员可以利用构成编码索引的基本 信息, 容易的得出其他编码 索引结构的构造方式, 例如在各个轨道内进行索引位置的互换或重新 组合等,

实施例三、 一种脉冲编码方法, 本实施例是在实施例一或二的基础上, 提 出的进一步节省编码比特的方法。

本实施例脉冲编码方法的编码索引 Ind生成过程可参照实施例一或二方法 执行, 在生成编码索引 Ind的之后执行如下操作, 如图 4所示, 包括:

Cl、 比较编码索引 Ind和调整门限值 THR, 其中,

THR < 2 Bmax - I max (T) ,

I max (T)表示 Ind的上限值, Bmax表示用来对编码索引进行编码的比特数量 上 限值, 若 Ind小于 THR, 则转到步骤 C2 , 否则转到步骤 C3。

C2、 釆用第一数量的编码比特对 Ind进行编码。

C3、 釆用第二数量的编码比特对加上偏移值 THR Q 的 Ind进行编码, THR < THR 0 < 2 Bmax - I max (T) ,所称的第一数量少于第二数量, 而第二数量则小于等于 Bmax, 第一数量和第二数量均为正整数。

例如, 对于 2个 4脉冲轨道联合编码的情形 (每个轨道的位置总数假设为

16 ), Ind的总可能数 I max (T) = 44032 X 44032 (考虑脉冲有符号), 需要 31个编码 比特, 其空闲码本空间为 2 31 - 44032 x 44032 = 208666624 , 可以设置 THR = THR 0 = 208666624, 当 Ind小于 208666624时, 使用第一数量( 30个) 的编码比 特对 Ind进行编码, 当 Ind大于 208666624时, 使用第二数量( 31个) 的编码比 特对 Ind + 208666624进行编码, 显然, 有 9.7%的几率在 31个比特的基础上再节 省一个比特。 当然, 调整门限值 THR可以设置的比 208666624更小, 以节省更 多的比特,但相应出现可节省比特的情况的概 率会大幅度的下降,可平衡考虑。

关于该节省比特的方法的原理以及具体推导和 描述请参阅申请号为 CN200910150637.8的中国专利申请(申请日为 2009年 6月 19日)。

进一步的, 为提高可节省比特的情况出现的概率, 可釆用如下优选方式来 设置编码索引 Ind中第一索引 II与 {N 0 , N 1 ... , N T 组合的对应关系: 统计 {N 0 , Ν^. , Ν }组合的出现概率, 使出现概率越高的组合对应的第一索引越小, 以 尽量减 d、出现概率高的组合的编码索引值。 实施例四、一种脉冲编码方法, 本实施例从与实施例一和二不同的角度提 出一种新的轨道联合编码方法。

在实施例一和二中不管是对轨道有脉冲位置的 情况进行联合分类(实施例 一)还是分别对每个轨道设置第一索引 (实施例二), 均需要对每个轨道的脉 冲位置分布进行分别处理, 本实施例则釆用一种新的思路, 即, 将联合编码的 各个轨道重叠为 1个轨道, 叠加其脉冲分布信息。 例如, 如图 5所示, 将 2个 3 脉冲轨道叠加成 1个 6脉冲轨道(假设各个轨道的位置数为 16 ), 然后,

①按照单轨道脉冲分布的情形, 计算叠加后的轨道的分布索引, 例如可釆 用实施例二中所描述的 Il t 、 I2 t 、 I3 t 以及 Is t 组合的方式。

②按照脉冲所属轨道的情形编制轨道索引, 例如, 如图 6所示, 图 5叠加得 到的 3位置 6脉冲对应不同的轨道分布情形,可以用不同 轨道索引分别来表示 相应的情形, 图 6中 "0" 表示轨道 0上的脉冲, " X " 表示轨道 1上的脉冲。

③将脉冲叠加得到的单轨道的分布索引与表示 脉冲所属轨道的轨道索引 组合在一起获得最终的编码索引。

本实施例联合编码方法同样可以象实施例一和 二一样节省编码比特, 并 且, 也可以与实施例三结合使用, 以达到进一步节省编码比特的目的。 实施例五、一种脉冲解码方法, 本实施例提供的解码方法对按照实施例一 编码方法获得的编码索引进行解码, 解码过程为编码过程的反过程, 如图 7所 示, 包括:

Dl、 获取编码索引 Ind, 从编码索引 Ind中提取出第一索引 II , 按照第一索 引 II确定 T个轨道的各个轨道上有脉冲位置的数目 {N。, N 1 ... , Nw}。

从 Ind中提取各个索引的信息, 可按照与编码时将各个索引组合成 Ind相反 的过程来进行。 例如, 若各个索引单独存放的固定的字段中, 则直接分别提取 即可。

若 Ind釆用实施例一中提供的以 II作为起始值叠加其他索引的结构, 则可 先提取出 II , 按照与 II对应的 {N Q , Ni, ... , N T _ 组合将各个轨道的 Index(t)从 Ind 中分离出来。 在这种情况下, 由于一个 II对应 Ind的一个独立取值范围, 因此, 解码方可从设定的若干个独立的取值范围中, 判断 Ind所属的取值范围, 按照 该所属的取值范围对应的起始值确定第一索引 II。

当然, 在存在与第一索引 II对应的 N t 值不唯一的轨道的情况下, 对于该轨 道, II确定的是其 N t 值组合, 实际 N t 值由进一步提取的附加索引 ¾来确定, 此 时分离出的 Index(t)中包含 的信息。

D2、 从编码索引 Ind中提取出各个轨道的第二索引 I2 t 和第三索引 I3 t ; 与 II类似, I2 t 、 I3 t 的提取也按照与组合进 Index(^V)相反的过程进行, 在独 立放置时可被直接提取。若 I2 t 、I3 t 釆用实施例一中组合后进行叠加的编码方 式, 则此步骤是从 Index(t)中分离 I2 t 、 I3 t 、 If t (若涉及)和 Is t (若涉及), 根据组合 的过程进行逆运算即可。

例如, 在不涉及 ¾和 Is t 的情况下, I2 t = Index(t) % W t (N t ), I3 t = Int[Index(t) / W t (N t )] , 其中%表示取余数, Int表示取整。 在涉及 If t 的情况下, 与确定 II类 似,可先根据 Index(t)所属的取值范围对应的起始值确定附加 引 ¾,在分离出 后根据确定的 N t 值进一步提取 I2 t 、 I3 t 和 Is t (若涉及)。

D3、 分别对于各个轨道, 按照第二索引 I2 t 确定, 在第一索引 II和 ¾ (若涉 及)对应的有脉冲位置的数目下, 有脉冲位置在轨道上的分布。

解码 I2 t 釆用与编码 I2 t 相反的过程,若 I2 t 在编码时釆用计算关系获得, 则在 解码时利用同样的计算关系进行逆运算即可; 若 I2 t 在编码时釆用查询关系获 得, 则在解码时查询相同的对应关系即可。

D4、 分别对于各个轨道, 按照第三索引 I3 t 确定各个有脉冲位置上的脉冲 数目。

D5、 分别对于各个轨道, 按照有脉冲位置在轨道上的分布 P t (N t )和各个有 脉冲位置上的脉冲数目 SU t (N t ), 重建轨道上的脉冲序列。

对于带符号脉冲的情形, 在重建各个轨道上的脉冲序列时,还按照各个 符 号索引 s t (n)携带的脉冲符号信息, 恢复各个有脉冲位置的脉冲符号的正或负的 特性。 实施例六、一种脉冲解码方法, 本实施例提供的解码方法对按照实施例二 编码方法获得的编码索引进行解码, 解码过程为编码过程的反过程, 如图 8所 示, 包括:

El、 获取编码索引 Ind, 从编码索引 Ind中提取出各个轨道的第一索引 Il t , 分别对于各个轨道, 按照第一索引 Il t 确定有脉冲位置的数目 N t

由于在各个轨道上脉冲总数 ^确定的情况下(由于不同码率下, 编码索引 的总比特数不同, 因此解码方可直接根据编码索引的长度(比特 数), 确定出 各个轨道上脉冲总数 ^ ), Index(t)的上限值 I max (t)确定, 因此可以直接从 Ind中 分离出各个轨道的 Index(t) ,进而根据 Index(t)的取值范围确定出 Il t 和相应的 N t

E2、 从编码索引 Ind中提取出各个轨道的第二索引 I2 t 和第三索引 I3 t 。 即, 从 Index(t)中分离出 I2 t 和 I3 t , 可参照实施例五的步骤 D2执行。 若涉及脉冲符号, 还可进一步分离出 Is t

E3、 分别对于各个轨道, 按照第二索引 I2 t 确定, 在第一索引 Il t 对应的有 脉冲位置的数目下, 有脉冲位置在轨道上的分布。

E4、 分别对于各个轨道, 按照第三索引 I3 t 确定各个有脉冲位置上的脉冲 数目。

E5、 分别对于各个轨道, 按照有脉冲位置在轨道上的分布 P t (N t )和各个有 脉冲位置上的脉冲数目 SU t (N t ), 重建轨道上的脉冲序列。

步骤 E3-E5可参照实施例五的步骤 D3-D5执行。 实施例七、一种脉冲解码方法, 本实施例提供的解码方法与实施例三编码 方法对应, 对实施例三变长编码的码流进行解码, 以获得编码索引, 过程如图

9所示, 包括:

Fl、 从编码码流中提取第一数量的编码比特。

F2、若第一数量的编码比特解码后的值小于调 门限值 THR, 则转到步骤

F3 , 否则转到步骤 F4。

F3、 以第一数量的编码比特解码后的值作为编码索 引 Ind。

F4、 否则, 增加提取的编码比特的数量至第二数量, 以第二数量的编码比 特解码后的值减去偏移值 THR Q 作为编码索引 Ind。

按照本实施例解码方法从编码码流中获得编码 索引 Ind后, 即可按照实施 例五或六的解码方法继续对编码索引 Ind进行解码。 实施例八、一种脉冲编码器 10, 本实施例提供的编码器可用于执行实施例 一编码方法, 如图 10所示, 包括:

脉冲统计单元 101 , 用于获取 T个轨道上需要编码的脉冲, T是大于或等于 2的整数, 分别对各个轨道上需要编码的脉冲按照位置进 行统计, 获得各个轨 道上有脉冲位置的数目 N t 、有脉冲位置在轨道上的分布和各个有脉 冲位置上的 脉冲数目, 其中下标 t表示第 t个轨道, t e [0, T-1];

索引计算单元 102, 包括:

第一索引单元 1021 , 用于按照各个轨道上有脉冲位置的数目 {N。, NI, ... , Nw}输出第一索引 II , II对应于其所代表的有脉冲位置的数目下, 各个轨道上 有脉冲位置全部可能的分布情况;

第二索引单元 1022,用于分别按照各个轨道上有脉冲位置的分 输出各个 轨道的第二索引 I2 t , I2 t 从 II对应的全部可能的分布情况中, 指示相应轨道上与 当前有脉冲位置的分布对应的分布情况;

第三索引单元 1023 ,用于分别按照各个轨道上各个有脉冲位置上 脉冲数 目输出各个轨道的第三索引 I3 t

索引组合单元 103 , 用于组合第一索引 II和各个轨道的第二、 三索引 I2 t 、 I3 t 的信息生成编码索引 Ind。 在至少有一个第一索引与两个以上的 {N Q , Ν^. , Ν }组合对应的情况下, 索引计算单元 102还可进一步包括附加索引单元 1024 (图 10中以虚线框示出 ), 用于对于存在与第一索引对应的 N t 值不唯一的轨道,确定与该轨道上当前有 脉 冲位置的数目对应的附加索引 ¾, 附加索引 对应于其所代表的有脉冲位置的 数目下, 该轨道上有脉冲位置全部可能的分布情况。 此时, 索引组合单元 103 还将附加索引 ¾的信息组合到编码索引 Ind中。

此外,在釆用实施例三方法对编码索引进行变 长编码的情况下, 本实施例 脉冲编码器 10还可进一步包括编码比特调整单元 104 (图 10中以虚线框示出 ), 用于在索引组合单元 103生成编码索引后, 比较编码索引 Ind和调整门限值 THR, 其中,

THR < 2 Bmax - I max (T) ,

I max (T)表示 Ind的上限值, Bmax表示用来对编码索引进行编码的比特数量 的上限值,

若 Ind小于 THR, 釆用第一数量的编码比特对 Ind进行编码, 否则釆用第二 数量的编码比特对加上偏移值 THRQ的 Ind进行编码, THR < THR 0 < 2 Bmax - I max (T) , 所使用的第一数量少于第二数量, 第二数量小于等于 Bmax, 第一数量 和第二数量均为正整数。 实施例九、一种脉冲解码器 20 , 本实施例提供的解码器可用于执行实施例 五解码方法, 如图 11所示, 包括:

第一提取单元 201 , 用于获取编码索引 Ind, 从编码索引中提取出第一索引

II , 按照第一索引确定 T个轨道的各个轨道上有脉冲位置的数目 {N Q , Ni, - , Ντ-ι} ;

第二提取单元 202 , 用于从编码索引 Ind中提取出各个轨道的第二索引 I2 t 和第三索引 I3 t ;

第一解码单元 203 , 用于分别对于各个轨道, 按照第二索引 I2 t 确定, 在第 一索引对应的有脉冲位置的数目下, 有脉冲位置在轨道上的分布;

第二解码单元 204 , 用于分别对于各个轨道, 按照第三索引 I3 t 确定各个有 脉冲位置上的脉冲数目; 脉冲重建单元 205 , 用于分别对于各个轨道, 按照有脉冲位置在轨道上的 分布和各个有脉冲位置上的脉冲数目, 重建轨道上的脉冲序列。

在至少有一个第一索引与两个以上的 {N Q , Ν^. , Ν }组合对应的情况下, 本实施例解码器还可以进一步包括:

附加提取单元 206 (图 11中以虚线框示出 ), 用于对于存在与第一索引对应 的 N t 值不唯一的轨道,提取与该轨道上当前有 脉冲位置的数目对应的附加索引 ¾, 附加索引 对应于其所代表的有脉冲位置的数目下, 该轨道上有脉冲位置 全部可能的分布情况。此时, 第二提取单元 202是根据附加提取单元 206提取的 附加索引 确定的相应轨道上当前有脉冲位置的数目,提 取出该轨道的第二索 引 I2 t 和第三索引 I3 t

此外,在釆用实施例七方法对变长编码的码流 进行解码的情况下, 本实施 例脉冲解码器 20还可进一步包括解码比特调整单元 207 (图 11中以虚线框示 出), 用于从编码码流中提取第一数量的编码比特, 若第一数量的编码比特解 码后的值小于调整门限值 THR,以第一数量的编码比特解码后的值作为编 索 引 Ind输出, 否则, 增加提取的编码比特的数量至第二数量, 再以第二数量的 编码比特解码后的值减去偏移值 THR Q 作为编码索弓 I Ind输出。 本领域普通技术人员可以理解,上述实施例中 各种方法的全部或部分步骤 可以通过程序来指令相关硬件完成,该程序可 以存储于一计算机可读存储介质 中, 存储介质可以包括: 只读存储器、 随机存储器、 磁盘或光盘等。

以上对本发明实施例所提供的脉冲编解码方法 及脉冲编解码器进行了详 上实施例的说明只是用于帮助理解本发明的方 法及其核心思想; 同时,对于本 领域的一般技术人员,依据本发明的思想,在 具体实施方式及应用范围上均会 有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。