CN101295506B - 脉冲编解码方法及脉冲编解码器 - Google Patents

脉冲编解码方法及脉冲编解码器 Download PDF

Info

Publication number
CN101295506B
CN101295506B CN2007101030235A CN200710103023A CN101295506B CN 101295506 B CN101295506 B CN 101295506B CN 2007101030235 A CN2007101030235 A CN 2007101030235A CN 200710103023 A CN200710103023 A CN 200710103023A CN 101295506 B CN101295506 B CN 101295506B
Authority
CN
China
Prior art keywords
index
pulse
pulse position
code
orbit
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
CN2007101030235A
Other languages
English (en)
Other versions
CN101295506A (zh
Inventor
马付伟
张德军
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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
Priority to CN2007101030235A priority Critical patent/CN101295506B/zh
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to EP08734199.6A priority patent/EP2157573B1/en
Priority to DK14184929.9T priority patent/DK2827327T3/da
Priority to ES08734199.6T priority patent/ES2529292T3/es
Priority to JP2010504431A priority patent/JP5221642B2/ja
Priority to PT141849299T priority patent/PT2827327T/pt
Priority to ES14184929T priority patent/ES2817906T3/es
Priority to PCT/CN2008/070841 priority patent/WO2008134974A1/zh
Priority to EP14184929.9A priority patent/EP2827327B1/en
Publication of CN101295506A publication Critical patent/CN101295506A/zh
Priority to US12/607,723 priority patent/US8294602B2/en
Application granted granted Critical
Publication of CN101295506B publication Critical patent/CN101295506B/zh
Priority to US13/622,207 priority patent/US8988256B2/en
Priority to JP2013046027A priority patent/JP5866307B2/ja
Priority to US14/617,585 priority patent/US9225354B2/en
Priority to US14/974,171 priority patent/US9444491B2/en
Priority to JP2016000105A priority patent/JP6239652B2/ja
Priority to US15/228,661 priority patent/US9912350B2/en
Priority to US15/880,300 priority patent/US10153780B2/en
Priority to US16/184,240 priority patent/US10425102B2/en
Priority to US16/568,144 priority patent/US10666287B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种编码方法,对需要进行编码的脉冲按照位置进行合并,分别对有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目进行编码。本发明还提供相应的解码方法,以及编解码器。本发明提供的编码逻辑对于不同的编码脉冲数目可一致采用,避免了递归方式下编码索引冗余度的累加,从总的逻辑构思上保证充分利用编码比特。同时由于避免了对同一位置的多个脉冲进行分别编码,使得本发明进行位置合并后编码的方法具有节省编码比特的优势,并且随着轨道上编码脉冲数目的增加,脉冲位置发生重叠的几率也随之增加,本发明方法的优势愈加明显。

Description

脉冲编解码方法及脉冲编解码器
技术领域
本发明涉及脉冲编解码方法及相应的脉冲编解码器。 
背景技术
在矢量编码技术中,常常使用代数码书对自适应滤波后的残差信号进行量化编码。当经过搜索获得轨道上最佳代数码书脉冲的位置和符号信息后,通过编码计算得到相应的索引值,使得解码端能够根据该索引值重建脉冲序列。在保证无损重建的前提下,尽量减少编码索引值所需要的比特,是代数码书脉冲编码方法研究与发展的主要目标之一。 
下面以语音编码中一种较优的编码方法——宽带自适应多码率(AMR_WB+:Adaptive Multi-Rate Wideband)编码方法为例,说明现有代数码书脉冲所采用的一种具体编码方法。根据编码码率的不同,在每个轨道上可以编码1~N个脉冲,假定每个轨道有M=2m个位置,AMR_WB+中每个轨道上编码1~6个脉冲的过程分别描述如下: 
①每个轨道编码1个脉冲 
由于每个轨道有2m个位置,因此,每个轨道上脉冲的位置索引需要用m个比特进行编码,脉冲的符号索引需要用1比特编码。编码1个带符号脉冲的索引值为: 
I1p(m)=p+s×2m
其中p∈[0,2m-1]为脉冲的位置索引;s为脉冲的符号索引,当脉冲符号为正时,s设置为0,当脉冲符号为负时,s设置为1;I1p∈[0,2m+1-1]。 
每个轨道编码1个脉冲所需的比特数为:m+1。 
②每个轨道编码2个脉冲 
根据①的结果,每个轨道编码1个脉冲需要m+1个比特,对另一个脉冲的位置索引进行编码需要m个比特,由于对脉冲顺序没有特别要求,可通过排列脉冲位置索引获得的大小关系来表示另一个脉冲的符号。编码2个脉冲的索引值为: 
[0011] I2p(m)=p1+I1p0×2m=p1+p0×2m+s×22m
其中p0、p1∈[0,2m-1]分别为2个脉冲的位置索引;s为p0脉冲的符号索引;p1脉冲符号的具体表示规则为:p0<p1表示2个脉冲符号相同,p0>p1表示2个脉冲符号相反;I2p∈[0,22m+1-1]。 
每个轨道编码2个脉冲所需的比特数为:2m+1。 
③每个轨道编码3个脉冲 
将每个轨道分为两个部分:Section A和Section B,每个部分各包含2m-1个位置。某个部分中至少包含2个脉冲,根据②的结果,编码该部分需要2×(m-1)+1=2m-1个比特;另一个脉冲则在整个轨道上搜索,根据①的结果,需要m+1个比特;此外,还需要用1个比特来指示包含2个脉冲的部分。编码3个脉冲的索引值为: 
[0016] I3p(m)=I2p(m-1)+k×22m-1+I1p(m)×22m
其中k为Section的索引;I3p∈[0,23m+1-1]。 
每个轨道编码3个脉冲所需的比特数为:3m+1。 
④每个轨道编码4个脉冲 
将每个轨道分为两个部分:Section A和Section B,每个部分各包含2m-1个位置。各部分中包含脉冲个数的组合情况如下表所示: 
  类别   SectionA中脉冲数  SectionB中脉冲数   需要比特数
  0   0   4   4m-3
  1   1   3   4m-2
  2   2   2   4m-2
  3   3   1   4m-2
  4   4   0   4m-3
上表中,各个类别对应的需要比特数的依据为:对于类别0和类别4,在有4个脉冲的部分中采用类似③的方法,只是进行整体搜索的脉冲数目为2个,相当于I2p(m-2)+k×22m-3+I2p(m-1)×22m-2;对于类别1,相当于I1p(m-1)+I3p(m-1)×2m;对于类别2,相当于I2p(m-1)+I2p(m-1)×22m-1;对于类别3,相当于I3p(m-1)+I1p(m-1)×23m-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,每个部分各包含2m-1个位置。某个部分中至少包含3个脉冲,根据③的结果,编码该部分需要3×(m-1)+1=3m-2个比特;剩下两个脉冲则在整个轨道上搜索,根据②的结果,需要2m+1个比特;此外,还需要用1个比特来指示包含3个脉冲的部分。编码5个脉冲的索引值为: 
[0027] I5p(m)=I3p(m-1)+k×23m-2+I1p(m)×23m-1
每个轨道编码5个脉冲所需的比特数为:5m。 
⑥每个轨道编码6个脉冲 
将每个轨道分为两个部分:Section A和Section B,每个部分各包含2m-1个位置。各部分中包含脉冲个数的组合情况如下表所示: 
  类别  Section A中脉冲数  Section B中脉冲数   需要比特数
  0   0   6   6m-5
  1   1   5   6m-5
  2   2   4   6m-5
  3   3   3   6m-4
  4   4   2   6m-5
  5   5   1   6m-5
  6   6   0   6m-5
上表中,各个类别对应的需要比特数的依据可仿照④推算,不再赘述。 
分别将类别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+提供的代数脉冲编码方法,采用类似递归的编码逻辑,将编码脉冲数量较多的情况拆分为若干个编码脉冲数量较少的情况来处理。因此,随着轨道上编码脉冲数目的增加,编码索引的冗余度将逐渐累加。 
发明内容
一种脉冲编码方法,包括:对轨道上需要编码的脉冲按照位置进行统计,获得有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目;按照有脉冲位置的数目确定第一索引,所述第一索引对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况;按照有脉冲位置在轨道上的分布确定第二索引,所述第二索引从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况;按照各个有脉冲位置上的脉冲数目确定第三索引;生成编码索引,所述编码索引包括所述第一、二、三索引的信息。 
一种脉冲解码方法,包括:接收编码索引,从所述编码索引中提取出第一索引,按照第一索引确定有脉冲位置的数目;从所述编码索引中提取出第二、三索引;按照第二索引确定,在所述第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上的分布;按照第三索引确定各个有脉冲位置上的脉冲数目;按照有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。 
一种脉冲编码器,包括:脉冲统计单元,用于对轨道上需要编码的脉冲按照位置进行统计,输出有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目;索引计算单元,其中包括第一索引单元、第二索引单元和第三索引单元,第一索引单元用于按照有脉冲位置的数目输出第一索引,所述第一索引对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况,第二索引单元用于按照有脉冲位置在轨道上的分布输出第二 索引,所述第二索引从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况,第三索引单元用于按照各个有脉冲位置上的脉冲数目输出第三索引;索引组合单元,用于组合所述第一、二、三索引的信息生成编码索引。 
一种脉冲解码器,包括:第一提取单元,用于接收编码索引,从所述编码索引中提取出第一索引,按照第一索引确定有脉冲位置的数目;第二提取单元,用于从所述编码索引中提取出第二、三索引;第一解码单元,用于按照第二索引确定,在所述第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上的分布;第二解码单元,用于按照第三索引确定各个有脉冲位置上的脉冲数目;脉冲重建单元,用于按照有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。 
上述方法或装置通过对需要进行编码的脉冲按照位置进行合并,分别对有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目进行编码的方法,由于避免了对同一位置的多个脉冲进行分别编码,使得进行位置合并后编码的方法具有节省编码比特的优势。 
附图说明
图1是本发明实施例一编码方法流程示意图; 
图2是本发明实施例一中6脉冲编码索引结构示意图; 
图3是本发明实施例一中SU(1)的可能组合情况示意图; 
图4是本发明实施例一中SU(2)的可能组合情况示意图; 
图5是本发明实施例一中SU(3)的可能组合情况示意图; 
图6是本发明实施例一中SU(4)的可能组合情况示意图; 
图7是本发明实施例一中SU(5)的可能组合情况示意图; 
图8是本发明实施例一中SU(6)的可能组合情况示意图; 
图9是本发明实施例一中5脉冲编码索引结构示意图; 
图10是本发明实施例一中4脉冲编码索引结构示意图; 
图11是本发明实施例一中3脉冲编码索引结构示意图; 
图12是本发明实施例一中2脉冲编码索引结构示意图; 
图13是本发明实施例一中1脉冲编码索引结构示意图; 
图14是本发明实施例二中N=2时的X(N)树结构示意图; 
图15是本发明实施例二中N=3时的X(N)树结构示意图; 
图16是本发明实施例三解码方法流程示意图; 
图17是本发明实施例五编码器逻辑结构示意图; 
图18是本发明实施例六解码器逻辑结构示意图; 
图19是本发明实施例二、四方法的应用例二中的脉冲搜索结果图。 
具体实施方式
本发明实施例提供一种编码方法,对需要进行编码的脉冲按照位置进行合并,分别对有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目进行编码。本发明实施例还提供相应的解码方法,以及编解码器。以下分别对本发明实施例的方法和装置进行详细说明。 
实施例一、一种编码方法,如图1所示,包括: 
A1、对轨道上需要编码的脉冲按照位置进行统计,获得有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目。 
轨道上需要编码的脉冲总数通常根据码率来确定,需要编码的脉冲数目越多,显然编码索引需要的比特数也越多,码率越高。本文中, 
以pulse_num表示需要编码的脉冲总数,假设
Figure S071A3023520070516D000061
以pos_num表示有脉冲位置的数目,由于
Figure S071A3023520070516D000062
个脉冲在轨道上的分布可能出现位置重叠,假设pos_num=N,显然有
Figure S071A3023520070516D000063
以脉冲位置矢量P(N)={p(0),p(1),...,p(N-1)}表示有脉冲位置在轨道上的分布;其中,p(n)表示有脉冲位置在轨道上的位置序号,n∈[0,N-1],p(n)∈[0,M-1],M在本文中表示轨道上的位置总数,一般M可以为8,16等等; 
以脉冲数目矢量SU(N)={su(0),su(1),...,su(N-1)}表示各个有脉冲位置上的脉冲数目;其中,su(n)表示p(n)位置的脉冲数目,显然有
Figure S071A3023520070516D000064
Figure S071A3023520070516D000065
此外,需要编码的脉冲还可能带有符号,即具有正或负的特性,此时在对 轨道上需要编码的脉冲按照位置进行统计时,还需要获得各个有脉冲位置的脉冲符号信息。本文中, 
以脉冲符号矢量S(N)={s(0),s(1),...,s(N-1)}表示各个有脉冲位置的脉冲符号信息;其中,s(n)表示p(n)位置的脉冲符号,称为p(n)位置的符号索引,基于s(n)所代表的脉冲符号具有或正或负的二值性,一般可采用如下简单的编码方式:用s(n)=0表示正脉冲,s(n)=1表示负脉冲。当然,对于需要编码的脉冲来说,脉冲符号并不是必须具备的特征,按照实际需要,脉冲可以仅有位置和数量特性,此时无需统计脉冲符号信息。 
显然,P(N)、SU(N)、S(N)中的值具有一一对应的关系。 
在统计获得需要编码的脉冲的各项参数N、P(N)、SU(N)、S(N)后,就需要将各项参数编码为索引,建立参数与索引之间的对应关系,使得解码方能够根据索引恢复出对应的参数。对应关系可以采用两种表示方式,一是用代数方式表示的计算关系,这种情况下,编码方对参数进行正向计算获得索引,解码方则对索引进行反向计算获得参数;一是用映射方式表示的查询关系,这种情况下,编解码双方需要存储关联参数与索引的映射表。两种对应关系可根据参数的具体特点进行选择,一般而言,在数据量大的情况下,尽量设计出以计算关系表示的对应关系能够节省编解码双方的存储量,是更为有利的。下面分别对各项参数的编码进行说明。 
A2、按照有脉冲位置的数目pos_num=N确定第一索引I1,第一索引I1对应于相同pos_num下,有脉冲位置在轨道上全部可能的分布情况。 
pos_num的数值N变化范围不大,因此与第一索引I1的对应采用计算关系或查询关系都是可行的。在建立pos_num与I1的对应关系时,一般可令他们与具有一一对应的关系;当然,若某些pos_num数值下,其他参数的索引只需要较少比特数,这些pos_num也可以合并使用一个I1,再通过额外的标记比特进行区分。 
pos_num的数值N决定了P(N)全部可能情况的总数W(N),  W ( N ) = C M N , “C”表示求组合数;因此一个I1对应于W(N)个可能的P(N)。 
A3、按照有脉冲位置在轨道上的分布P(N)确定第二索引I2,第二索引I2从 第一索引I1对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况。 
P(N)的总可能数为  W ( N ) = C M N , 数据量较大,因此与第二索引I2的对应比较适合采用计算关系,当然采用查询关系也是可行的。显然W(N)即是I2全部可能的取值数目,若I2的值从0开始计数,则有I2∈[0,W(N)-1]。 
A4、按照各个有脉冲位置上的脉冲数目SU(N)确定第三索引I3。 
SU(N)虽然是与P(N)同维度的矢量,但受限于 数值通常不大,一般为1~6,因此SU(N)的总可能数不大,与第三索引I3的对应采用计算关系或查询关系都是可行的。并且,鉴于其矢量形式,在高维度情况下采用查询关系较为适宜;在低维度情况下计算关系的设计较为容易,则两种方式均可采用。需要说明的是,在某些极端情况下,例如N=1或
Figure S071A3023520070516D00008084913QIETU
,此时SU(N)只有一种可能情况,无须由具体的I3进行指示,可将I3视为不影响最终编码索引生成的任意值。 
A5、生成编码索引Index(
Figure S071A3023520070516D00008084924QIETU
),编码索引Index(
Figure 2007101030235100002S071A3023520070516D00008084924QIETU
)包括第一、二、三索引I1、I2、I3的信息。 
I1、I2、I3可以用任何能够被解码方识别的方式放置到编码索引中,例如,最简单的,可分别单独存放在固定的字段中。考虑到在需要编码的脉冲总数pulse_num一定的前提下,I1指示的pos_num的数值N决定了I2和I3的变化范围,即,决定了I2和I3需要的编码比特数,因此可采用如下方式来构造编码索引: 
①以第一索引I1为起始值,叠加其他索引的信息;I1的一个取值对应于编码索引的一个独立的取值范围;这样,解码方就可以根据编码索引的取值范围直接确定pos_num的数值N; 
②进一步的,在I1划定的取值范围中(通常对应于一定的字段长度),I2、I3可以用任何能够被解码方识别的方式进行放置,例如,最简单的,可分别单独存放。由于I2、I3一般不能表示为2的整数次方,为尽量节省编码比特,可将I2、I3组合为如下形式放置到I1划定的取值范围中: 
I 23 = I 3 × W ( N ) + I 2 = I 3 × C M N +I2
I2、I3均从0开始编码,  I 2 ∈ [ 0 , C M N - 1 ] , I3∈[0,Class(N)-1],Class(N)为SU(N) 的总可能数。显然,这种方式相当于将I1划定的取值范围分成Class(N)个长度为W(N)的部分,每个部分对应SU(N)的一种分布情况。 
③当然,在所编码的脉冲为带符号脉冲的情况下,Index
Figure S071A3023520070516D000091
还需要包括各个脉冲符号索引s(n)的信息,可简单的将脉冲符号矢量S(N)作为长度为N的字段放置到编码索引的固定位置上,例如末尾。 
综上,编码索引Index的一种构造方式可表示为: 
Figure S071A3023520070516D000093
容易理解的是,上述例举的编码索引构造方式仅为本实施例的一种可选方式,本领域技术人员可以利用构成编码索引的基本信息,容易的得出其他编码索引结构的构造方式,例如进行索引位置的互换或重新组合等,编码索引的具体构造方式不构成对本发明实施例的限定。 
为更好的理解上述编码索引的构造方式,下面举出一些实际的例子来进行说明。假设轨道上的位置总数M=16,且有脉冲位置的数目pos_num与第一索引I1为一一对应的关系: 
例一、编码
Figure S071A3023520070516D00009085040QIETU
个带符号脉冲,编码索引结构如图2所示。 
编码索引Index(6)共有21个比特,即Index(6)∈[0,221-1],图2中分别表示出pos_num的不同取值情况下,Index(6)所包含的各部分索引所占用的比特数。为清楚起见,以下用I1(N)、I2(N)、I3(N)、I23(N)分别表示N为特定取值下的该索引。I1(N)的确定采用映射方式(以下,以数值前冠以“0x”表示该数值为十六进制表示;此外,本文中未经特殊说明,其他数值均以十进制表示),分别为, 
I1(1)=0x1F0000,I1(2)=0x1E0000,I1(3)=0x1D0000, 
I1(4)=0x180000,I1(5)=0x000000,I1(6)=0x100000。 
下面对图2进行具体分析说明。 
①6个脉冲在1个位置上时,N=1,SU(1)的可能组合如图3所示; 
W(1)=16,I2(1)∈[0,15], 
SU(1)={6},Class(1)=1,I3(1)=0, 
因此I23(1)=I2(1)∈[0,15];
一个符号索引s(0)占用末尾的1个比特, 
I1(1)提供给I23(1)的编码空间长度为[221-I1(1)]/21=32768,显然足够使用。 
②6个脉冲在2个位置上时,N=2,SU(2)的可能组合如图4所示; 
W(2)=120,I2(2)∈[0,119], 
SU(2)={5,1},{4,2},{3,3},{2,4},{1,5};Class(2)=5,I3(2)∈[0,4], 
因此I23(2)=I3(2)×120+I2(2)∈[0,599]; 
两个符号索引s(0)、s(1)占用末尾的2个比特, 
I2(2)提供给I23(2)的编码空间长度为[I1(1)-I1(2)]/22=16384,显然足够使用。 
③6个脉冲在3个位置上时,N=3,SU(3)的可能组合如图5所示; 
W(3)=560,I2(3)∈[0,559], 
SU(3)={4,1,1},{1,4,1},{1,1,4},{3,2,1},{3,1,2},{2,3,1},{2,1,3},{1,3,2},{1,2,3},{2,2,2};Class(3)=10,I3(3)∈[0,9], 
因此I23(3)=I3(3)×560+I2(3)∈[0,5599]; 
三个符号索引s(0)~s(2)占用末尾的3个比特, 
I2(3)提供给I23(3)的编码空间长度为[I1(2)-I1(3)]/23=8192,显然足够使用。 
④6个脉冲在4个位置上时,N=4,SU(4)的可能组合如图6所示; 
W(4)=1820,I2(4)∈[0,1819], 
SU(4)={3,1,1,1},{1,3,1,1},{1,1,3,1},{1,1,1,3},{2,2,1,1},{2,1,2,1},{2,1,1,2},{1,2,2,1},{1,2,1,2},{1,1,2,2};Class(4)=10,I3(4)∈[0,9], 
因此I23(4)=I3(4)×1820+I2(4)∈[0,18199]; 
四个符号索引s(0)~s(3)占用末尾的4个比特, 
I2(4)提供给I23(4)的编码空间长度为[I1(3)-I1(4)]/24=20480,显然足够 使用。 
⑤6个脉冲在5个位置上时,N=5,SU(5)的可能组合如图7所示; 
W(5)=4368,I2(5)∈[0,4367], 
SU(5)={2,1,1,1,1},{1,2,1,1,1},{1,1,2,1,1},{1,1,1,2,1},{1,1,1,1,2};Class(5)=5,I3(5)∈[0,4], 
因此I23(5)=I3(5)×4368+I2(5)∈[0,21839]; 
五个符号索引s(0)~s(4)占用末尾的5个比特, 
I2(5)提供给I23(5)的编码空间长度为[I1(6)-I1(5)]/25=32768,显然足够使用。 
⑥6个脉冲在6个位置上时,N=6,SU(6)的可能组合如图8所示; 
W(6)=8008,I2(6)∈[0,8007], 
SU(6)={1,1,1,1,1,1},Class(6)=1,I3(6)=0, 
因此I23(6)=I2(6)∈[0,8007]; 
六个符号索引s(0)~s(5)占用末尾的6个比特, 
I2(6)提供给I23(6)的编码空间长度为[I1(4)-I1(6)]/26=8192,显然足够使用。 
例二、编码
Figure S071A3023520070516D000111
个带符号脉冲,编码索引结构如图9所示。 
编码索引Index(5)共有19个比特,即Index(5)∈[0,219-1]。图9中分别表示出pos_num的不同取值情况下,Index(5)所包含的各部分索引所占用的比特数。I1(N)的确定采用映射方式,分别为, 
I1(1)=0x78000,I1(2)=0x70000,I1(3)=0x60000, 
I1(4)=0x40000,I1(5)=0x00000。 
对图9的具体分析可仿照图2进行,在此不再赘述。 
例三、编码
Figure S071A3023520070516D000112
个带符号脉冲,编码索引结构如图10所示。 
编码索引Index(4)共有16个比特,即Index(4)∈[0,216-1]。图10中分别表示出pos_num的不同取值情况下,Index(4)所包含的各部分索引所占用的比特数。I1(N)的确定采用映射方式,分别为,
I1(1)=0xE000,I1(2)=0xC000,I1(3)=0x8000,I1(4)=0x0000。对图10的具体分析可仿照图2进行,在此不再赘述。 
例四、编码
Figure S071A3023520070516D000121
个带符号脉冲,编码索引结构如图11所示。 
编码索引Index(3)共有13个比特,即Index(3)∈[0,213-1]。图11中分别表示出pos_num的不同取值情况下,Index(3)所包含的各部分索引所占用的比特数。I1(N)的确定采用映射方式,分别为, 
I1(1)=0x1C00,I1(2)=0x1800,I1(3)=0x0000。 
对图11的具体分析可仿照图2进行,在此不再赘述。 
例五、编码
Figure S071A3023520070516D000122
个带符号脉冲,编码索引结构如图12所示。 
编码索引Index(2)共有9个比特,即Index(2)∈[0,29-1]。图12中分别表示出pos_num的不同取值情况下,Index(2)所包含的各部分索引所占用的比特数。I1(N)的确定采用映射方式,分别为, 
I1(1)=0x1E0,I1(2)=0x000。 
对图12的具体分析可仿照图2进行,在此不再赘述。 
例六、编码
Figure S071A3023520070516D000123
个带符号脉冲,编码索引结构如图13所示。 
编码索引Index(1)共有5个比特,即Index(1)∈[0,25-1]。由于N≡1,因此图13中,Index(2)仅包含索引I23(1)=I2(1),以及p(0)的符号索引s(0)。 
下面,对上述编码索引构造方式的优势进行分析。理论上,脉冲总数pulse_num一定的前提下,所有脉冲在轨道上的全部可能的排列组合数,就是编码索引的最小取值范围,由此对应的编码比特数即为理论下限值,当排列组合数为2的整数次方时,编码比特数的理论下限值为整数,当排列组合数不能表示为2的整数次方时,编码比特数的理论下限值为小数,此时,存在一定的编码冗余。轨道上的位置总数M=16时,在不同的pulse_num取值下,对编码比特数的理论下限值、采用AMR_WB+编码方式需要的编码比特数,以及采用上述编码索引构造方式需要的比特数进行对比,如下表所示: 
Figure S071A3023520070516D000131
由上表对比可以得知,上述实施例中的编码索引构造方式能够在理论下限值为整数时,达到理论下限值;在理论下限值为小数时,达到理论下限值的整数部分加一。在高码率的情形下,编码效率比AMR_WB+要高,即更加节省比特。这是由于本发明实施例提供的编码逻辑对于不同的编码脉冲数目可一致采用,避免了AMR_WB+所采用的递归方式下编码索引冗余度的累加,从总的逻辑构思上保证充分利用编码比特。同时由于避免了对同一位置的多个脉冲进行分别编码,使得本发明实施例进行位置合并后编码的方法具有节省编码比特的优势,并且随着轨道上编码脉冲数目的增加,脉冲位置发生重叠的几率也随之增加,本发明实施例方法的优势愈加明显。 
实施例二、一种编码方法,本实施例采用与实施例一相同的编码逻辑,本实施例主要是提供一种对第二索引I2的计算方法,使得便于通过代数计算来确定有脉冲位置在轨道上的分布:P(N)={p(0),p(1),...,p(N-1)}与I2的对应关系。 
本实施例中I2的计算方法是,按照设定的顺序,对第一索引I1对应的有脉冲位置的数目N下,P(N)全部可能的情况进行排列,以排列的序号作为指示相应分布情况的第二索引I2。 
“设定的顺序”可理解为编解码双方按照同样的排序计算规则,所确定的P(N)全部可能情况的顺序。本实施例中提供如下排序计算规则: 
由于P(N)不同的情况是通过所包含的不同数值组合来体现,因此不妨对P(N)中包含的各个位置序号进行排列,令:
p(0)<p(1)<...<p(N-1),或者p(0)>p(1)>...>p(N-1); 
假设采用前者,则有:p(0)∈[0,M-N],p(n)∈[p(n-1)+1,M-N+n],M为轨道上的位置总数。然后对P(N)不同的情况依次比较各个维度的大小,按照从小到大或者从大到小的顺序对所有可能的P(N)进行排序。 
假设采用从小到大的排序方式,并从0开始对排序后的P(N)进行编号,则: 
I 2 = C M N - C M - p ( 0 ) N + &Sigma; n = 1 N - 1 [ C M - p ( n - 1 ) - 1 N - n - C M - p ( n ) N - n ] ;
其中“C”表示求组合数;∑表示求和。上式的含义可解释为:
Figure S071A3023520070516D000142
表示第1个脉冲位于p(0)之前的P(N)情况总数;
Figure S071A3023520070516D000143
表示第1个脉冲位于p(0)时,第2个脉冲位于p(1)之前的P(N)情况总数;
Figure S071A3023520070516D000144
的含义可类推。需要说明的是,上述公式只是I2与P(N)间计算关系的一种表现形式,根据相同的排序规则,还可等价的以其他数学形式来描述该计算关系;若采用不同的排序规则,也可相应的设计出类似的计算关系,具体计算关系的表述方式不构成对本发明实施例的限定。 
为更好的理解上述I2的计算方法,可假设一个脉冲相对位置矢量X(N)={x(1),x(2),...,x(N)},X(N)与P(N)有如下一一对应关系: 
x(1)=p(0); 
x(i)=p(i-1)-p(i-2); 
x(i)表示的是第i个有脉冲位置与第i-1个有脉冲位置之间的相对位置关系,i∈[1,N]。利用X(N)可将P(N)所有可能的情况构造在一个N层树结构中,树的深度为N+1,树第i层的子节点表示第i个有脉冲位置的相对位置值x(i)。按照从左到右从小到大的顺序放置x(i)的取值,然后在树的底层,即末节点处从左到右依次对各个末节点进行编码。每个末节点到根节点的路径对应X(N)的一种情况,因此每个末节点的编码即为指示相应P(N)情况的第二索引I2。 
下面举出一些实际的例子来进行说明,假设轨道上的位置总数M=16。 
例一、有脉冲位置的数目pos_num的值N=2,树结构如图14所示。 
I 2 ( 2 ) = C 16 2 - C 16 - x ( 1 ) 2 + C 16 - x ( 1 ) - 1 1 - C 16 - [ x ( 1 ) + x ( 2 ) ] 1
= C 16 2 - C 16 - p ( 0 ) 2 + C 16 - p ( 0 ) - 1 1 - C 16 - p ( 1 ) 1
例二、有脉冲位置的数目pos_num的值N=3,树结构如图15所示。 
I 2 ( 3 ) = C 16 3 - C 16 - x ( 1 ) 3 + C 16 - x ( 1 ) - 1 2 - C 16 - [ x ( 1 ) + x ( 2 ) ] 2
+ C 16 - [ x ( 1 ) + x ( 2 ) ] - 1 1 - C 16 - [ x ( 1 ) + x ( 2 ) + x ( 3 ) ] 1
= C 16 3 - C 16 - p ( 0 ) 3 + C 16 - p ( 0 ) - 1 2 - C 16 - p ( 1 ) 2 + C 16 - p ( 1 ) - 1 1 - C 16 - p ( 2 ) 1
当N=4、5、6时,对应的树结构类似,I2的计算公式可类推,不再赘述。 
本实施例提供了一种以计算关系获得第二索引I2的方法,由于I2在编码索引中所占数据量较大,因此采用本实施例计算方法能够尽量减少编解码双方的存储量。同时,由于I2连续编码且与P(N)严格一一对应,因此能够最大限度的利用编码比特,避免浪费。 
下面对本发明实施例的解码方法进行详细说明。 
实施例三、一种解码方法,本实施例提供的解码方法对按照实施例一编码方法获得的编码索引进行解码,解码过程为编码过程的反过程,如图16所示,包括: 
B1、接收编码索引Index
Figure S071A3023520070516D000154
从Index(
Figure S071A3023520070516D00015085658QIETU
)中提取出第一索引I1,按照I1确定有脉冲位置的数目pos_num。 
由于不同码率下,编码索引的总比特数不同,因此解码方可直接根据编码索引的长度(比特数),确定出编码脉冲总数
Figure S071A3023520070516D000155
从Index中提取各个索引的信息,可按照与编码时将各个索引组合成Index
Figure S071A3023520070516D000157
相反的过程来进行。例如,若各个索引单独存放的固定的字段中,则直接分别提取即可。 
若Index
Figure S071A3023520070516D000158
采用实施例一中提供的以I1作为起始值叠加其他索引的结构,则可先提取出I1,按照与I1对应的pos_num的值N确定其他索引在Index
Figure S071A3023520070516D000159
中的位置。在这种情况下,由于一个I1对应Index
Figure S071A3023520070516D0001510
的一个独立取值范围,因此,解码方可从设定的若干个独立的取值范围中,判断Index
Figure S071A3023520070516D0001511
所属的取值范围,按照该所属的取值范围对应的起始值确定第一索引I1。 
B2、从编码索引Index
Figure S071A3023520070516D0001512
中提取出第二、三索引I2、I3; 
与I1类似,I2、I3的提取也按照与组合进Index
Figure S071A3023520070516D0001513
相反的过程进行,在独立放置时可被直接提取。若I2、I3采用实施例一中组合后进行叠加的编码方式, 则可采用以下步骤分离: 
①从编码索引Index
Figure S071A3023520070516D000161
中提取出I2、I3的组合值I23; 
I23在Index
Figure S071A3023520070516D000162
中的存放位置可由I1确定的N值来指示。 
②按照如下方式分离出I2、I3, 
I2=I23%W(N),I3=Int[I23/W(N)]; 
其中,W(N)为pos_num=N下,P(N)全部可能的情况的总数,  W ( N ) = C M N , M是轨道上的位置总数;%表示取余数;Int表示取整。 
B3、若编码的是带符号脉冲,则还需要从Index
Figure S071A3023520070516D000164
中提取出与各个有脉冲位置对应的符号索引s(n)。 
按照实施例一中提供的Index
Figure S071A3023520070516D000165
结构,N个符号索引位于Index末尾,因此在获得由I1指示的N值后可直接从Index
Figure S071A3023520070516D000167
中分离出各个s(n)。 
B4、按照第二索引I2确定,在pos_num=N下,有脉冲位置在轨道上的分布P(N); 
解码I2采用与编码I2相反的过程,若I2在编码时采用计算关系获得,则在解码时利用同样的计算关系进行逆运算即可;若I2在编码时采用查询关系获得,则在解码时查询相同的对应关系即可。 
B5、按照第三索引I3确定各个有脉冲位置上的脉冲数目SU(N);解码I3的原则与I2类似。 
B6、按照有脉冲位置在轨道上的分布P(N)和各个有脉冲位置上的脉冲数目SU(N),重建轨道上的脉冲序列。 
对于带符号脉冲的情形,在重建轨道上的脉冲序列时,还按照各个符号索引s(n)携带的脉冲符号信息,恢复各个有脉冲位置的脉冲符号的正或负的特性。 
实施例四、一种解码方法,本实施例采用与实施例三相同的解码逻辑,本实施例主要是提供一种对按照实施例二编码方法获得的第二索引I2,进行解码的计算方法,即提供实施例二中I2的计算方法的在解码方的逆计算方法。 
对于在编码时,按照  I 2 = C M N - C M - p ( 0 ) N + &Sigma; n = 1 N - 1 [ C M - p ( n - 1 ) - 1 N - n - C M - p ( n ) N - n ] 得到的I2,在解码时采用:
①从I2中逐个减去  C M - 1 N - 1 , . . . , C M - y 0 N - 1 ,
R ( y 0 ) = I 2 - C M - 1 N - 1 - . . . - C M - y 0 N - 1 ;
直到I2的余值R(y0)由正数变为负数;其中,M为轨道上的位置总数,N为有脉冲位置的数目,y0∈[1,M-N+1],“C”表示求组合数;记录轨道上第1个有脉冲位置的位置序号p(0)=y0-1; 
②若N>1,则继续从R[p(0)]中逐个减去
Figure S071A3023520070516D000173
直到R[p(0)]的余值R1(x1)由正数变为负数;记录轨道上第2个有脉冲位置的位置序号p(1)=y1-1; 
③以此类推,从R(n-1)[p(n-1)]中逐个减去 直到R(n-1)[p(n-1)]的余值Rn(yn)由正数变为负数;其中,n≤N-1;记录轨道上第n+1个有脉冲位置的位置序号p(n)=yn-1。 
④解码I2完成,获得P(N)={p(0),p(1),...,p(N-1)}。 
应当理解,实现本发明编解码方法的软件可以存储于计算机可读介质中。 
编码软件的在执行时,包括如下步骤:对轨道上需要编码的脉冲按照位置进行统计,获得有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目;按照有脉冲位置的数目确定第一索引,所述第一索引对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况;按照有脉冲位置在轨道上的分布确定第二索引,所述第二索引从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况;按照各个有脉冲位置上的脉冲数目确定第三索引;生成编码索引,所述编码索引包括所述第一、二、三索引的信息。 
解码软件的在执行时,包括如下步骤:接收编码索引,从所述编码索引中提取出第一索引,按照第一索引确定有脉冲位置的数目;从所述编码索引中提取出第二、三索引;按照第二索引确定,在所述第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上的分布;按照第三索引确定各个有脉冲位置上的脉冲数目;按照有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。 
所述的可读介质,如:ROM/RAM、磁碟、光盘等。
下面对本发明实施例的编解码器进行详细说明。 
实施例五、一种编码器10,如图17所示,包括: 
脉冲统计单元11,用于对轨道上需要编码的脉冲按照位置进行统计,输出有脉冲位置的数目N、有脉冲位置在轨道上的分布P(N)和各个有脉冲位置上的脉冲数目SU(N);在对带符号脉冲进行统计时,脉冲统计单元11还按照各个有脉冲位置的脉冲符号的正或负的特性,输出相应的脉冲符号信息S(N); 
索引计算单元12,包括: 
第一索引单元121,用于按照有脉冲位置的数目N输出第一索引I1,I1对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况; 
第二索引单元122,用于按照有脉冲位置在轨道上的分布P(N)输出第二索引I2,I2从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况; 
第三索引单元123,用于按照各个有脉冲位置上的脉冲数目SU(N)输出第三索引I3; 
索引组合单元13,用于组合所述第一、二、三索引的信息生成编码索引;在编码带符号脉冲时,索引组合单元13还将与各个有脉冲位置对应的符号索引的信息S(N),组合到所述编码索引中,所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息。 
在按照实施例一中提供的编码索引结构进行编码时,索引组合单元13可采用如下结构,包括: 
第一组合单元131,用于输出组合为I23的第二、三索引, 
I23=I3×W(N)+I2; 
其中,W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数。 
第二组合单元132,用于将第一组合单元131的输出与其他索引的信息叠加,输出编码索引Index
本实施例编码装置可用于实施例一和二提供的编码方法中。 
实施例六、一种解码器20,如图18所示,包括:
第一提取单元21,用于接收编码索引Index从Index
Figure S071A3023520070516D000192
中提取出第一索引I1,按照I1确定有脉冲位置的数目N; 
第二提取单元22,用于从编码索引Index
Figure S071A3023520070516D000193
中提取出第二、三索引I2、I3; 
在对实施例一中提供的编码索引结构进行解码时,第二提取单元22可采用如下结构,包括: 
分离子单元221,用于从编码索引中提取出第二、三索引的组合值I23; 
解析子单元222,用于按照如下方式分离输出第二、三索引I2、I3, 
I2=I23%W(N),I3=Int[I23/W(N)]; 
其中W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数;%表示取余数;Int表示取整。 
第一解码单元23,用于按照第二索引I2确定,在I1对应的有脉冲位置的数目N下,有脉冲位置在轨道上的分布P(N); 
第二解码单元24,用于按照第三索引I3确定各个有脉冲位置上的脉冲数目SU(N); 
脉冲重建单元25,用于按照有脉冲位置在轨道上的分布P(N)和各个有脉冲位置上的脉冲数目SU(N),重建轨道上的脉冲序列。 
在解码带符号脉冲时,解码器还需要包括: 
第三提取单元26,用于按照有脉冲位置的数目N,从Index(N)中提取出与各个有脉冲位置对应的符号索引s(n),所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息; 
此时,脉冲重建单元25可采用如下结构,包括: 
第一重建单元251,用于按照有脉冲位置在轨道上的分布P(N)和与各个有脉冲位置对应的符号索引s(n),恢复各个有脉冲位置的脉冲符号的正或负的特性; 
第二重建单元252,用于按照第一重建单元251输出的各个带符号的有脉冲位置的分布,和各个有脉冲位置上的脉冲数目SU(N),重建轨道上的脉冲序列。 
本实施例解码装置可用于实施例三和四供的解码方法中。 
为更好的理解上述实施例,以下给出具体的编解码实例,编码采用实施例 二编码方法,解码相应的采用实施例四解码方法,假设轨道上总位置数目M=16。 
例一、对图3所示的脉冲搜索结果进行编解码。 
A、编码 
Figure S071A3023520070516D000201
Index
Figure S071A3023520070516D000202
需要21个比特 
②统计N、P(N)、SU(N)、S(N) 
N=1; 
P(1)={p(0)}={2}; 
SU(1)={su(0)}={6}; 
S(1)={s(0)}={0}; 
③编码I1、I2、I3、I23 
按照N=1,由图2可知,I1=0x1F0000; 
按照实施例2计算方法,I2=2; 
Class(1)=1,I3=0;因此I23=I2=2; 
④生成Index
Figure S071A3023520070516D000203
Figure S071A3023520070516D000204
= 0 x 1 F 0000 + 2 &times; 2 + 0
= 0 x 1 F 0004
B、解码 
①收到
Figure S071A3023520070516D000207
根据编码长度确定
Figure S071A3023520070516D000208
②提取I1、s(n)、I23 
按照
Figure S071A3023520070516D000209
由图2可知,I1=0x1F0000,N=1; 
按照N=1,分离Index
Figure S071A3023520070516D0002010
末尾1个比特,s(0)=0; 
分离出I23,
Figure S071A3023520070516D0002011
“>>k”表示左移k位; 
③解码I23 
按照N=1,  W ( 1 ) = C 16 1 = 16 ;
I3=Int[I23/W(1)]=0,对应SU(1)唯一的一种情况:SU(1)={6}; 
I2=I23%W(1)=2;按照实施例4计算方法,P(1)={p(0)}={2};
④恢复脉冲序列 
由P(1)={2}、SU(1)={6}、s(0)=0知,在位置“2”上有“6”个“正”脉冲。解码过程完毕。 
例二、对图19所示的脉冲搜索结果进行编解码。 
A、编码 
Figure S071A3023520070516D000211
需要21个比特 
②统计N、P(N)、SU(N)、S(N) 
N=2; 
P(2)={p(0),p(1)}={2,4}; 
SU(2)={su(0),su(1)}={2,4}; 
S(2)={s(0),s(1)}={0,0}; 
③编码I1、I2、I3、I23 
按照N=2,由图2可知,I1=0x1E0000; 
按照实施例2计算方法,I2=30; 
Class(2)=5,假设SU(2)的5种可能情况按如下顺序排列:{{5,1},{4,2},{3,3},{2,4},{1,5}},则SU(2)={2,4}为第4种情况,I3=3;因此  I 23 = I 3 &times; C 16 2 + I 2 = 390 ;
④生成Index
Figure S071A3023520070516D000214
Figure S071A3023520070516D000215
= 0 x 1 F 0000 + 390 &times; 4 + 0 + 0
= 0 x 1 E 0618
B、解码 
①收到
Figure S071A3023520070516D000218
根据编码长度确定
Figure S071A3023520070516D000219
②提取I1、s(n)、I23 
按照由图2可知,I1=0x1E0000,N=2; 
按照N=2,分离Index
Figure S071A3023520070516D0002111
末尾2个比特,s(0)=0,s(1)=0; 
分离出I23,
Figure S071A3023520070516D0002112
③解码I23
按照N=2,  W ( 2 ) = C 16 2 = 120 ;
I3=Int[I23/W(2)]=3,按照与编码方使用的同样的SU(2)全部情形的排列顺序,对应第4种情况:SU(2)={2,4}; 
I2=I23%W(2)=30;按照实施例4计算方法,P(2)={2,4}; 
④恢复脉冲序列 
由P(2)={2,4}、SU(2)={2,4}、s(0)=0、s(1)=0知,在位置“2”上有“2”个“正”脉冲,在位置“4”上有“4”个“正”脉冲。解码过程完毕。 
通过上述实施例可以看出,本发明实施例采用对需要进行编码的脉冲按照位置进行合并,分别对有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目进行编码的方法。本发明实施例提供的编码方法对于不同的编码脉冲数目可一致采用,避免了递归方式下编码索引冗余度的累加,保证充分利用编码比特。同时由于避免了对同一位置的多个脉冲进行分别编码,使得本发明实施例进行位置合并后编码的方法具有节省编码比特的优势,并且随着轨道上编码脉冲数目的增加,脉冲位置发生重叠的几率也随之增加,本发明实施例方法的优势愈加明显。 
以上对本发明所提供的编解码方法及编解码器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (19)

1.一种脉冲编码方法,其特征在于,包括:
对轨道上需要编码的脉冲按照位置进行统计,获得有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目;
按照有脉冲位置的数目确定第一索引,所述第一索引对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况;
按照有脉冲位置在轨道上的分布确定第二索引,所述第二索引从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况;
按照各个有脉冲位置上的脉冲数目确定第三索引;
生成编码索引,所述编码索引包括所述第一、二、三索引的信息。
2.根据权利要求1所述的脉冲编码方法,其特征在于:
所述对轨道上需要编码的脉冲按照位置进行统计时,还按照各个有脉冲位置的脉冲符号的正或负的特性,获得相应的脉冲符号信息;
所述编码索引还包括与各个有脉冲位置对应的符号索引的信息,所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息。
3.根据权利要求1或2所述的脉冲编码方法,其特征在于:所述生成编码索引是,以第一索引为起始值,叠加其他索引的信息;所述第一索引的一个取值对应于编码索引的一个独立的取值范围。
4.根据权利要求3所述的脉冲编码方法,其特征在于:所述有脉冲位置的数目与第一索引为一一对应的关系;
所述轨道上共有16个位置,需要编码的脉冲数目为6,有脉冲位置的数目分别为1、2、3、4、5、6时,与其顺序一一对应的第一索引以十六进制表示分别为1F0000、1E0000、1D0000、180000、000000、100000;或者,
所述轨道上共有16个位置,需要编码的脉冲数目为5,有脉冲位置的数目分别为1、2、3、4、5时,与其顺序一一对应的第一索引以十六进制表示分别为78000、70000、60000、40000、00000;或者,
所述轨道上共有16个位置,需要编码的脉冲数目为4,有脉冲位置的数目分别为1、2、3、4时,与其顺序一一对应的第一索引以十六进制表示分别为E000、C000、8000、0000;或者,
所述轨道上共有16个位置,需要编码的脉冲数目为3,有脉冲位置的数目分别为1、2、3时,与其顺序一一对应的第一索引以十六进制表示分别为1C00、1800、0000;或者,
所述轨道上共有16个位置,需要编码的脉冲数目为2,有脉冲位置的数目分别为1、2时,与其顺序一一对应的第一索引以十六进制表示分别为1E0、000。
5.根据权利要求3所述的脉冲编码方法,其特征在于:在以第一索引为起始值,叠加其他索引的信息时,第二、三索引组合为如下形式进行叠加:
I3×W(N)+I2;
其中,I2、I3分别为第二索引和第三索引;W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数。
6.根据权利要求1或2所述的脉冲编码方法,其特征在于,所述按照有脉冲位置在轨道上的分布确定第二索引,是按照如下方式进行第二索引的计算:
按照设定的顺序,对第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况进行排列,以排列的序号作为指示相应分布情况的第二索引。
7.根据权利要求6所述的脉冲编码方法,其特征在于,所述按照设定的顺序,对第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况进行排列,按照如下方式进行:
将有脉冲位置在轨道上的分布对应为一个N维脉冲位置矢量P(N),
P(N)={p(0),p(1),...,p(N-1)};
其中,N为有脉冲位置的数目;p(n)表示有脉冲位置在轨道上的位置序号,n∈[0,N-1];p(0)<p(1)<...<p(N-1),或者p(0)>p(1)>...>p(N-1);
依次比较脉冲位置矢量各个维度的大小,按照从小到大或者从大到小的顺序对N维下全部可能的脉冲位置矢量进行排序。
8.根据权利要求7所述的脉冲编码方法,其特征在于,第二索引的计算公式为:
I 2 = C M N - C M - p ( 0 ) N + &Sigma; n = 1 N - 1 [ C M - p ( n - 1 ) - 1 N - n - C M - p ( N ) N - n ] ;
其中,M为轨道上的位置总数;p(0)∈[0,M-N],p(n)∈[p(n-1)+1,M-N+n];“C”表示求组合数;∑表示求和。
9.一种脉冲解码方法,其特征在于,包括:
接收编码索引,从所述编码索引中提取出第一索引,按照第一索引确定有脉冲位置的数目;
从所述编码索引中提取出第二、三索引;
按照第二索引确定,在所述第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上的分布;
按照第三索引确定各个有脉冲位置上的脉冲数目;
按照有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。
10.根据权利要求9所述的脉冲解码方法,其特征在于:在确定有脉冲位置的数目后,还从所述编码索引中提取出与各个有脉冲位置对应的符号索引,所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息;
在重建轨道上的脉冲序列时,还按照所述脉冲符号信息,恢复各个有脉冲位置的脉冲符号的正或负的特性。
11.根据权利要求9或10所述的脉冲解码方法,其特征在于,所述从编码索引中提取出第一索引采用:从设定的若干个独立的取值范围中,判断所述编码索引所属的取值范围,按照该所属的取值范围对应的起始值确定所述第一索引。
12.根据权利要求11所述的脉冲解码方法,其特征在于,所述从编码索引中提取出第二、三索引采用:从编码索引中提取出第二、三索引的组合值I23,按照如下方式分离出第二、三索引,
I2=I23%W(N),I3=Int[I23/W(N)];
其中,I2、I3分别为第二索引和第三索引;W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数;%表示取余数;Int表示取整。
13.根据权利要求9或10所述的脉冲解码方法,其特征在于,所述按照第二索引确定有脉冲位置在轨道上的分布采用:
从第二索引I2中逐个减去
Figure FSB00000465222600031
直到I2的余值R(y0)由正数变为负数;其中,M为轨道上的位置总数,N为有脉冲位置的数目,y0∈[1,M-N+1],“C”表示求组合数;记录轨道上第1个有脉冲位置的位置序号p(0)=y0-1;
若N>1,则继续从R[p(0)]中逐个减去
Figure FSB00000465222600041
直到R[p(0)]的余值R1(y1)由正数变为负数;记录轨道上第2个有脉冲位置的位置序号p(1)=y1-1;
以此类推,从R(n-1)[p(n-1)]中逐个减去
Figure FSB00000465222600042
Figure FSB00000465222600043
直到R(n-1)[p(n-1)]的余值Rn(yn)由正数变为负数;其中,n≤N-1;记录轨道上第n+1个有脉冲位置的位置序号p(n)=yn-1。
14.一种脉冲编码器,其特征在于,包括:
脉冲统计单元,用于对轨道上需要编码的脉冲按照位置进行统计,输出有脉冲位置的数目、有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目;
索引计算单元,所述索引计算单元包括:第一索引单元,用于按照有脉冲位置的数目输出第一索引,所述第一索引对应于相同有脉冲位置的数目下,有脉冲位置在轨道上全部可能的分布情况;第二索引单元,用于按照有脉冲位置在轨道上的分布输出第二索引,所述第二索引从所述第一索引对应的全部可能的分布情况中,指示与当前有脉冲位置的分布对应的分布情况;第三索引单元,用于按照各个有脉冲位置上的脉冲数目输出第三索引;
索引组合单元,用于组合所述第一、二、三索引的信息生成编码索引。
15.根据权利要求14所述的脉冲编码器,其特征在于:所述脉冲统计单元还按照各个有脉冲位置的脉冲符号的正或负的特性,输出相应的脉冲符号信息;所述索引组合单元还将与各个有脉冲位置对应的符号索引的信息,组合到所述编码索引中,所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息。
16.根据权利要求14或15所述的脉冲编码器,其特征在于,所述索引组合单元包括:
第一组合单元,用于输出组合为如下形式的第二、三索引,
I3×W(N)+I2;
其中,I2、I3分别为第二索引和第三索引;W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数。
第二组合单元,用于将所述第一组合单元的输出与其他索引的信息叠加,输出编码索引。
17.一种脉冲解码器,其特征在于,包括:
第一提取单元,用于接收编码索引,从所述编码索引中提取出第一索引,按照第一索引确定有脉冲位置的数目;
第二提取单元,用于从所述编码索引中提取出第二、三索引;
第一解码单元,用于按照第二索引确定,在所述第一索引对应的有脉冲位置的数目下,有脉冲位置在轨道上的分布;
第二解码单元,用于按照第三索引确定各个有脉冲位置上的脉冲数目;
脉冲重建单元,用于按照有脉冲位置在轨道上的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。
18.根据权利要求17所述的脉冲解码器,其特征在于,还包括:第三提取单元,用于按照有脉冲位置的数目,从所述编码索引中提取出与各个有脉冲位置对应的符号索引,所述符号索引指示与该索引对应的有脉冲位置的脉冲符号信息;
所述脉冲重建单元包括:第一重建单元,用于按照有脉冲位置在轨道上的分布和与各个有脉冲位置对应的符号索引,恢复各个有脉冲位置的脉冲符号的正或负的特性;第二重建单元,用于按照各个带符号的有脉冲位置的分布和各个有脉冲位置上的脉冲数目,重建轨道上的脉冲序列。
19.根据权利要求17或18所述的脉冲解码器,其特征在于,所述第二提取单元包括:分离子单元,用于从编码索引中提取出第二、三索引的组合值I23;
解析子单元,用于按照如下方式分离输出第二、三索引,
I2=I23%W(N),I3=Int[I23/W(N)];
其中,I2、I3分别为第二索引和第三索引;W(N)为第一索引对应的有脉冲位置的数目N下,有脉冲位置在轨道上全部可能的分布情况的总数;%表示取余数;Int表示取整。
CN2007101030235A 2007-04-29 2007-04-29 脉冲编解码方法及脉冲编解码器 Active CN101295506B (zh)

Priority Applications (19)

Application Number Priority Date Filing Date Title
CN2007101030235A CN101295506B (zh) 2007-04-29 2007-04-29 脉冲编解码方法及脉冲编解码器
DK14184929.9T DK2827327T3 (da) 2007-04-29 2008-04-29 Fremgangsmåde til excitationsimpulskodning
ES08734199.6T ES2529292T3 (es) 2007-04-29 2008-04-29 Método de codificación y de decodificación
JP2010504431A JP5221642B2 (ja) 2007-04-29 2008-04-29 符号化法、復号化法、符号器、および復号器
EP08734199.6A EP2157573B1 (en) 2007-04-29 2008-04-29 An encoding and decoding method
PT141849299T PT2827327T (pt) 2007-04-29 2008-04-29 Método para codificação de impulsos de excitação
ES14184929T ES2817906T3 (es) 2007-04-29 2008-04-29 Método de codificación de impulsos de las señales de excitación
PCT/CN2008/070841 WO2008134974A1 (fr) 2007-04-29 2008-04-29 Procédé de codage et de décodage, codeur et décodeur
EP14184929.9A EP2827327B1 (en) 2007-04-29 2008-04-29 Method for Excitation Pulse Coding
US12/607,723 US8294602B2 (en) 2007-04-29 2009-10-28 Coding method, decoding method, coder and decoder
US13/622,207 US8988256B2 (en) 2007-04-29 2012-09-18 Coding method, decoding method, coder, and decoder
JP2013046027A JP5866307B2 (ja) 2007-04-29 2013-03-07 符号化法、復号化法、符号器、および復号器
US14/617,585 US9225354B2 (en) 2007-04-29 2015-02-09 Coding method, decoding method, coder, and decoder
US14/974,171 US9444491B2 (en) 2007-04-29 2015-12-18 Coding method, decoding method, coder, and decoder
JP2016000105A JP6239652B2 (ja) 2007-04-29 2016-01-04 符号化の方法および符号化装置
US15/228,661 US9912350B2 (en) 2007-04-29 2016-08-04 Coding method, decoding method, coder, and decoder
US15/880,300 US10153780B2 (en) 2007-04-29 2018-01-25 Coding method, decoding method, coder, and decoder
US16/184,240 US10425102B2 (en) 2007-04-29 2018-11-08 Coding method, decoding method, coder, and decoder
US16/568,144 US10666287B2 (en) 2007-04-29 2019-09-11 Coding method, decoding method, coder, and decoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101030235A CN101295506B (zh) 2007-04-29 2007-04-29 脉冲编解码方法及脉冲编解码器

Publications (2)

Publication Number Publication Date
CN101295506A CN101295506A (zh) 2008-10-29
CN101295506B true CN101295506B (zh) 2011-11-16

Family

ID=40065737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101030235A Active CN101295506B (zh) 2007-04-29 2007-04-29 脉冲编解码方法及脉冲编解码器

Country Status (1)

Country Link
CN (1) CN101295506B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8294602B2 (en) 2007-04-29 2012-10-23 Huawei Technologies Co., Ltd. Coding method, decoding method, coder and decoder

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101931414B (zh) * 2009-06-19 2013-04-24 华为技术有限公司 脉冲编码方法及装置、脉冲解码方法及装置
US8849655B2 (en) * 2009-10-30 2014-09-30 Panasonic Intellectual Property Corporation Of America Encoder, decoder and methods thereof
CN102299760B (zh) 2010-06-24 2014-03-12 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN103886862B (zh) * 2010-06-24 2018-09-28 华为技术有限公司 脉冲编解码方法及脉冲编解码器
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
CN102521552B (zh) * 2011-11-02 2014-02-12 成都三零瑞通移动通信有限公司 带时钟校准功能的高容忍性pie解码器及其控制方法
US9336788B2 (en) * 2014-08-15 2016-05-10 Google Technology Holdings LLC Method for coding pulse vectors using statistical properties

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847929B2 (en) * 2000-10-12 2005-01-25 Texas Instruments Incorporated Algebraic codebook system and method
CN1811917A (zh) * 2005-01-27 2006-08-02 广达电脑股份有限公司 语音编码器中搜寻语音讯号的编码向量的搜寻系统及方法
CN1890713A (zh) * 2003-12-10 2007-01-03 法国电信 用于数字信号压缩编码的多脉冲字典的索引间的编码转换

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6847929B2 (en) * 2000-10-12 2005-01-25 Texas Instruments Incorporated Algebraic codebook system and method
CN1890713A (zh) * 2003-12-10 2007-01-03 法国电信 用于数字信号压缩编码的多脉冲字典的索引间的编码转换
CN1811917A (zh) * 2005-01-27 2006-08-02 广达电脑股份有限公司 语音编码器中搜寻语音讯号的编码向量的搜寻系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JP特开2004-120623A 2004.04.15
JP特开平11-296195A 1999.10.29

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8294602B2 (en) 2007-04-29 2012-10-23 Huawei Technologies Co., Ltd. Coding method, decoding method, coder and decoder
US8988256B2 (en) 2007-04-29 2015-03-24 Huawei Technologies Co., Ltd. Coding method, decoding method, coder, and decoder
US9225354B2 (en) 2007-04-29 2015-12-29 Huawei Technologies Co., Ltd. Coding method, decoding method, coder, and decoder

Also Published As

Publication number Publication date
CN101295506A (zh) 2008-10-29

Similar Documents

Publication Publication Date Title
CN101388210B (zh) 编解码方法及编解码器
CN101295506B (zh) 脉冲编解码方法及脉冲编解码器
Leinster Entropy and diversity: the axiomatic approach
Krichevsky Universal compression and retrieval
CN102122966B (zh) 基于信道极化的交错结构重复码的编码器及其编译码方法
CN101483043A (zh) 基于分类和排列组合的码本索引编码方法
CN104900271B (zh) 用于通过数据反演来提高数据存储的设备和方法
Yaakobi et al. Constructions and decoding of cyclic codes over $ b $-symbol read channels
Roman Coding and information theory
CN103582883B (zh) 具有组格式的可变长度数据的改进型编码和解码
CN101604977B (zh) 利用低密度奇偶校验矩阵进行数字数据编码的方法及编码器
CN103270498A (zh) 用于错误特征不完全的信道和存储器的错误检测和修正编码
WO2018148260A1 (en) Apparatus, method and system for digital information storage in deoxyribonucleic acid (dna)
CN109086890A (zh) 信息编码和信息解码的方法
CN102394661A (zh) 基于层译码处理的ldpc译码器及译码方法
CN102299760B (zh) 脉冲编解码方法及脉冲编解码器
CN110569974B (zh) 可包含人造碱基的dna存储分层表示与交织编码方法
Weinberger et al. The DNA storage channel: Capacity and error probability bounds
CN101431335B (zh) 用于调制编码和解码的方法、装置和系统
CN101252413A (zh) 去除喷泉码生成矩阵中长度为4的小环的方法及其应用
CN106228981A (zh) 一种基于压缩域的mp3自适应隐写方法
CN101304254A (zh) 矢量编/解码方法、装置及流媒体播放器
CN102623012B (zh) 矢量联合编解码方法及编解码器
CN111863088B (zh) 一种信息译码方法、装置、电子设备及存储介质
CN101266796A (zh) 一种量化编解码方法及装置

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