CN101281750B - 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统 - Google Patents

基于变长分裂表的矢量量化高阶码本扩展编码及解码系统 Download PDF

Info

Publication number
CN101281750B
CN101281750B CN200810038192XA CN200810038192A CN101281750B CN 101281750 B CN101281750 B CN 101281750B CN 200810038192X A CN200810038192X A CN 200810038192XA CN 200810038192 A CN200810038192 A CN 200810038192A CN 101281750 B CN101281750 B CN 101281750B
Authority
CN
China
Prior art keywords
module
header
code book
coding
splitting table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200810038192XA
Other languages
English (en)
Other versions
CN101281750A (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.)
MediaSoC Technologies Co., Ltd.
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN200810038192XA priority Critical patent/CN101281750B/zh
Publication of CN101281750A publication Critical patent/CN101281750A/zh
Application granted granted Critical
Publication of CN101281750B publication Critical patent/CN101281750B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

一种编解码技术领域的基于变长分裂表的矢量量化高阶码本扩展编码及解码系统,解码系统包括扩展编码判断模块,编码格矢量分裂模块,基础码本编码模块,扩展模式选择模块,一级扩展计算模块,二级扩展计算模块,打包输出模块,解码系统包括:参数获取模块,编码方式判断模块,基础码本解码模块,一级扩展分裂量解码模块,二级扩展分裂量解码模块,矢量合成模块,对于不在基础码本中的码字,利用基于变长分裂表的两级扩展方式来进行编码,一级扩展采用等长比特编码分裂量;二级扩展采用不等长比特编码分裂量。这种两级扩展方案既保证了对较小值码字量化的高效性,又节约了在对大值码字进行矢量量化时开销的比特数。

Description

基于变长分裂表的矢量量化高阶码本扩展编码及解码系统
技术领域
本发明涉及一种音频编码技术领域的系统,具体是一种基于变长分裂表的矢量量化高阶码本扩展编码及解码系统。
背景技术
音频编码中常采用矢量量化的技术,一种比较常用的量化技术是格型矢量量化技术,在低码率的情况下用得相当普及。
在3GPP(第三代合作伙伴计划)组织推荐的AMR-WB+(自适应多速率宽带)音频编码标准的TCX(变换码激励编码)部分所运用的量化技术就是建立在8维高斯格上的多位率格型矢量量化技术。它作用于预整形后的频谱数据,以八个数为一组,根据就近原则将这八个数量化为8维格集合上的点。之后,选取不同的码本,输出相应的基础码本标识位,基础码本索引和扩展码本的值。
经过对现有技术文献的检索发现,美国专利US 2005/0285764《Method andsystem for multi-rate lattice vector quantization of a signal》(多码率格型矢量量化方法和装置)中提出的Voronoi扩展(最近邻扩展)方法已经在AMR-WB+标准中采用,即编码器通过Voronoi扩展装置来量化大值的矢量,即在矢量量化中遇到较大矢量值的时候,使用Voronoi扩展装置将基础码本按指数扩大,直到码本大到能将大矢量值包含进来。求Voronoi扩展码本值时,需要首先对输入样点和生成矩阵做乘法运算得到矢量v,然后再通过公式y=mc+v(其中y为待量化矢量,c为其对应的基础码本中的码字,m为基础码本的放大倍数,v为其对应的Voronoi码本中的码字)求得扩展后的码本c,并判断c是否位于基础码本中。这就大量使用了乘法和加法的操作,从而导致计算复杂度大增。
检索中还发现,中国发明专利200710064351.9《一种量化编解码方法及装置》中量化编码系统采用分裂处理单元对大值的矢量进行基于分裂表的量化。这一装置采取将大值码字分裂成低阶码本与分裂量之和的策略,将码本设计成低阶码本与多级分裂表的组合,这样既避免了大量乘法运算,也达到了高阶扩展的目的。但随着分裂级的升高,对分裂表索引的表示需要花费的比特数也成倍增加,使得分裂级达到三级以上时,矢量量化的效率不及标量量化高,而需要采取标量量化装置来进行量化。
发明内容
本发明针对上述现有技术的不足,提供了一种基于变长分裂表的矢量量化高阶码本扩展编码及解码系统,采用变长分裂表进行高阶码本扩展,既保证了对较小值码字分裂量化的高效性,又节约了在对大值码字进行矢量量化时开销的比特数。
本发明是通过如下技术方案实现的:
本发明涉及一种基于变长分裂表的矢量量化高阶码本扩展编码系统,包括如下模块:扩展编码判断模块,编码格矢量分裂模块,基础码本编码模块,扩展模式选择模块,一级扩展计算模块,二级扩展计算模块,打包输出模块。其中:
扩展编码判断模块判断待编码格矢量
Figure S200810038192XD00021
是否在基础码本中,若在,则将输出到基础码本编码模块,同时将编码模式标识信息header输出到打包输出模块;若不在,则将
Figure S200810038192XD00023
输出到编码格矢量分裂模块;
编码格矢量分裂模块利用变长分裂表中的分裂量将待编码格矢量中的八个分量y(i)(i=1,…,8)分别作分裂处理,将每个y(i)分裂后形成一个新的码字分量c(i)与变长分裂表中的一个分裂量y’(i),分裂量y’(i)为变长分裂表中能使c(i)绝对值最小的一个分裂量;其中生成的八个码字分量c(i)组成的八维矢量为基础码本中的某一矢量
Figure S200810038192XD00025
将八个y’(i)输出到扩展模式选择模块,并将
Figure S200810038192XD00026
输出到基础码本编码模块;
基础码本编码模块计算
Figure S200810038192XD00027
Figure S200810038192XD00028
在基础码本中的索引i,将i输出到打包输出模块;
扩展模式选择模块检测八个y’(i)值的大小,若均小于等于一级扩展阈值,一级扩展阈值为一级分裂表中最大分裂量的值,则将y’(i)输出到一级扩展计算模块,否则将y’(i)输出到二级扩展计算模块。同时,将编码模式标识信息header输出到打包输出模块;
一级扩展计算模块计算y’(1)…y’(8)在一级扩展分裂表中的分裂表索引k,并将k输出到打包输出模块;
二级扩展计算模块分别计算各个分裂量y’(1)…y’(8)在二级扩展中的分裂表标识信息split header和在该分裂表中的分裂表索引k,并将八组splitheader和k输出到打包输出模块;
打包输出模块将接收到的参数header来将各参数打包并输出。若header标识编码方法为基础码本编码,则将header,i打包输出;若header标识编码方法为一级扩展编码,则将header,i,k打包输出;若header标识编码方法为二级扩展编码,则将header,i,split header,k打包输出。
其中,所述编码模式标识信息header,用于识别出编码端采用的编码方式;基本索引i,用于索引编码分裂出的基础码本中的码字部分;分裂表标识信息split header为二级扩展中分裂表的编号,该信息用于识别所使用的分裂量选用的哪个分裂表;分裂表索引k为每个分裂量在所选用的分裂表中的索引,用于索引该分裂表中的值。
本发明还涉及一种基于变长分裂表的矢量量化高阶码本扩展解码系统,包括如下模块:参数获取模块,编码方式判断模块,基础码本解码模块,一级扩展分裂量解码模块,二级扩展分裂量解码模块,矢量合成模块。其中:
参数获取模块接收编码端发来的数据包,并对数据包进行解析,读取编码端传过来的所有参数,参数可包括:编码模式标识信息header、基本索引i、分裂表标识信息split header、分裂表索引k,并将所有参数输出到编码方式判断模块;
编码方式判断模块根据编码模式标识信息header的值判断编码端采用的编码方式,若采用的是基础码本编码方式,则将header和i输出到基础码本解码模块;若采用的是一级扩展编码方式,则将header和i输出到基础码本解码模块,并将k输出到一级扩展分裂量解码模块;若采用的是二级扩展编码方式,则将header和i输出到基础码本解码模块,并将split header和k输出到二级扩展分裂量解码模块;
基础码本解码模块检测header的值,若其标识为基础码本编码,则根据header和i的值计算码字
Figure S200810038192XD00041
解码结束;若其标识为扩展码本编码方式,则根据header和i的值计算码字
Figure S200810038192XD00042
并将
Figure S200810038192XD00043
输出到矢量合成模块;
一级扩展分裂量解码模块根据分裂表索引k计算分裂量的值y’(i),并将y’(i)输出到矢量合成模块;
二级扩展分裂量解码模块根据八个分裂表标识信息split header和其对应的分裂表索引k计算八个分裂量的值y’(i),并将y’(i)输出到矢量合成模块;
矢量合成模块将
Figure S200810038192XD00044
的各个分量c(i)分别与各个分裂量y’(i)对应相加,得到还原的矢量解码结束。
与现有技术相比,本发明具有如下有益效果:本发明由于采用变长分裂表进行高阶码本扩展,既保证了对较小值码字分裂量化的高效性,又节约了在对大值码字进行矢量量化时开销的比特数,尤其是对多维矢量中只有少数几维需要分裂的情况,比特数节省尤为明显。在低比特率音频编码应用中,相对于现有技术各维分裂量等长编码方法,本发明采用的方法在10.4kbps编码时,每帧(80ms)能节约10~30比特,而在24kbps编码时,每帧(80ms)能节约40~140比特。而对于使用了高阶扩展方法编码的矢量,本发明所采用的方法能节省7%-15%的比特数。
附图说明
图1为基于变长分裂表的矢量量化高阶码本扩展系统编码端示意图;
图2为基于变长分裂表的矢量量化高阶码本扩展系统解码端示意图。
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例中选取RE8点集作为基础码本。
所述的RE8点集的定义为:
RE8=2D8∪{2D8+(1,…,1)},其中D8={(x1,x2,…,x8)∈Z8|x1+…+x8为偶数};
可见,RE8集合中所有数据之和是4的倍数,并且奇偶性相同,在所述的RE8点集中选取如下子集作为基础码本,其特征码本(leader)如表1所示:
                       表1
                     特征码本
{0,0,0,0,0,0,0,0},{3,3,3,3,1,1,1,1},
{2,0,0,0,0,0,0,0},{5,3,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1},{6,2,0,0,0,0,0,0},
{2,2,0,0,0,0,0,0},{5,3,3,1,1,1,1,1},
{2,2,2,2,0,0,0,0},{5,5,1,1,1,1,1,1},
{3,1,1,1,1,1,1,1},{7,1,1,1,1,1,1,1},
{4,0,0,0,0,0,0,0},{7,3,1,1,1,1,1,1},
{3,3,1,1,1,1,1,1},{3,3,3,3,3,3,3,1},
{4,2,2,0,0,0,0,0},{3,3,3,3,3,3,3,3},
{3,3,3,1,1,1,1,1},{9,1,1,1,1,1,1,1},
{4,4,0,0,0,0,0,0},{11,1,1,1,1,1,1,1},
{5,1,1,1,1,1,1,1},{13,1,1,1,1,1,1,1},
基础码本又分为Q0,Q2,Q3,Q4四个码本,此外,当实际需要的是{3,3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}时,则将3和1对调,于是对于{3,3,3,3,3,1,1,1}对调得到{3,3,3,1,1,1,1,1};对于{3,3,3,3,3,3,1,1}对调得到{3,3,1,1,1,1,1,1},这样,便可以用基础码本进行检索。故在基础码本Q4中不包含{3,3,3,3,3,1,1,1}和{3,3,3,3,3,3,1,1}。将这两种特征码本称作属于码本inv_Q4。
在表1中,Leader所属码本的情况如表2所示:
                              表2
Figure S200810038192XD00061
在编码过程中,不同的基础码本是用一个不同长度的二进制数列来标识的,即数据包中的header(头)信息,具体的表示方式如下:
Q0→header=0;
Q2→header=10;
Q3→header=110;
Q4→header=1110;
inv_Q4→header=111111 110。
而对于在上述基础码本中找不到的矢量,则对各维分量进行分裂,然后将各维分裂量用变长编码方法进行编码。
本实施例具体可以应用于低码率编码方案中,如AVS-M音频编码等编码处理过程中。
本实施例编码过程中所采用的变长分裂表如表3所示,
                           表3变长分列表
Figure S200810038192XD00071
  17   192   320
  18   196   324
  19   200   328
  20   204   332
  21   208   336
  22   212   340
  23   216   344
  24   220   348
  25   224   352
  26   228   356
  27   232   360
  28   236   364
  29   240   368
  30   244   372
  31   248   376
  …   …
  63   504
如图1所示,本实施例涉及一种基于变长分裂表的矢量量化高阶码本扩展编码系统,在编码端的高阶码本扩展处理过程中,包括两个扩展级编码方式:一级扩展编码、二级扩展编码,下面分别对两个扩展级的实现分别进行具体描述:
(一)编码端扩展级为一级扩展编码时,以数据 y → = { 7 , - 5,1,1,1,1,1 , 1 } 为例,对基于变长分裂表编码过程具体如下:
扩展编码判断模块对
Figure S200810038192XD00083
进行检测,发现数据
Figure S200810038192XD00084
不在基础码本中,将输出到编码格矢量分裂模块;
编码格矢量分裂模块将
Figure S200810038192XD00086
中的每一个分量y(i)都分裂为c(i)与变长分裂表中的某一个值y’(i),具体为:
将y(i)减去一个与其同号的分裂量,得到的差c(i)为新的码字分量,即c(i)=y(i)-sgn(y(i))y′(i),(i=0,1,…,7);
选取使c(i)的绝对值最小的分裂量
Figure S200810038192XD00091
的每一个分量进行分裂:
c(1)=y(1)-4=7-4=3;
c(2)=y(2)-(-1)*4=-5-(-4)=-1;
c(3)=y(3)-0=1-0=1;
c(7)=y(7)-0=1-0=1;
分裂后得到的新的码字
Figure S200810038192XD00092
为{3,-1,1,1,1,1,1,1},此时,
Figure S200810038192XD00093
在基础码本Q3中,八个分裂量分别为:4,4,0,0,0,0,0,0。
将八个分裂量4,4,0,0,0,0,0,0输出到扩展模式选择模块,将
Figure S200810038192XD00094
输出到基础码本编码模块。
基础码本编码模块计算{3,-1,1,1,1,1,1,1}在Q3中的索引base indexi,将i输出到打包输出模块。
扩展模式选择模块检测八个分裂量的值均<=4,判断扩展级为一级且{3,-1,1,1,1,1,1,1}在基础码本Q3中,得到编码模式标识信息为1111110。将八个分裂量输出到一级扩展计算模块,同时将编码模式标识信息1111110输出到打包输出模块。
一级扩展计算模块计算分裂量4,4,0,0,0,0,0,0在一级分裂表中的索引分别为1,1,0,0,0,0,0,0,将这些索引输出到打包输出模块。
打包输出模块打包输出编码参数,具体的输出格式如下:
  1111110   base index in Q3   11000000
其中:1111110为header标识信息,标识此处编码方式为一级扩展,且对应的基础码本在Q3中,接下来为
Figure S200810038192XD00095
在基础码本Q3中的索引,11000000为对应的八个分裂量在一级分裂表中的索引。
所述的一级扩展编码采用等比特数来编码各维分裂量。
一个码字若不在基础码本中,则是因其分量的绝对值太大,为此,可将绝对值大的分量减去一个分裂量,得到一个绝对值足够小的差,使该差成为基础码本中的一个码字,之后,将该差对应的码字在基础码本中的索引和分裂量在分裂表中的索引作为输出,从而实现基于分裂表编码。
其中,所述的一级扩展分裂表k1,如表4所示:
                           表4
                i    K1        binary
                0    0         b0
                1    4         b1
表4中列出了为一级扩展级时,分裂表k1的数值定义,表中k1为分裂量,i为分裂量的索引,各个分裂量的大小为4的整数倍。
表4中第三列为用二进制表示的k1在分裂级为1时的编码定义,即取分裂量0时,编码输出为其索引“0”,取分裂量4时,编码输出为其索引“1”。这样,对于一个八维矢量中的八个分量,每一个分量都需要1比特来表示其分裂量的索引,共8比特。
本实施例中,一级编码过程中,输出格式如下,
  header   Base index I   Split index k
具体包括header,
Figure S200810038192XD00101
在基础码本中的索引base index和分裂量的索引
Figure S200810038192XD00102
组成。其中一级扩展编码方式的header的定义方式如表5所示:
                            表5
header(binary/二进制)  Header value/头值        header定义
11110                  0x1E                     r=1,in Q4
1111110                0x7E                     r=1,in Q3
111111 11 10           0x3FE                    r=1,in inv_Q4
(二)编码端扩展级为二级扩展编码时,以数据 y → = { 27 , - 7,1,1,1,1,1,1 } 为例,基于变长分裂表的二级扩展编码过程具体如下:
扩展编码判断模块对
Figure S200810038192XD00111
进行检测,发现数据不在基础码本中,将输出到编码格矢量分裂模块;
编码格矢量分裂模块将
Figure S200810038192XD00114
中的每一个分量y(i)都分裂为c(i)与变长分裂表中的某一个值y’(i),具体为:
将y(i)减去一个与其同号的分裂量,得到的差c(i)为新的码字分量,即c(i)=y(i)-sgn(y(i))y′(i),(i=0,1,…,7);
选取使c(i)的绝对值最小的分裂量
Figure S200810038192XD00115
的每一个分量进行分裂:
c(1)=y(1)-24=27-24=3;
c(2)=y(2)-(-1)*4=-7-(-4)=-3;
c(3)=y(3)-0=1-0=1;
c(7)=y(7)-0=1-0=1;
分裂后得到的新的码字
Figure S200810038192XD00116
为{3,-3,1,1,1,1,1,1},此时,
Figure S200810038192XD00117
在基础码本Q4中,八个分裂量分别为24,4,0,0,0,0,0,0。
将八个分裂量24,4,0,0,0,0,0,0输出到扩展模式选择模块,将
Figure S200810038192XD00118
输出到基础码本编码模块。
基础码本编码模块计算{3,-3,1,1,1,1,1,1}在Q4中的索引base indexi,将i输出到打包输出模块。
扩展模式选择模块检测八个分裂量的值并非均<=4,判断扩展级为二级且{3,-3,1,1,1,1,1,1}在基础码本Q4中,得到编码模式标识信息为111110。将八个分裂量输出到二级扩展计算模块,同时将编码模式标识信息111110输出到打包输出模块。
二级扩展计算模块计算八个分裂量24,4,0,0,0,0,0,0在二级扩展所使用的分裂表中的索引,它们的索引分别用split header与index k的组合来表示。它们对应的split header和index k的组合分别为:110,11;10,0;0;0;0;0;0;0;其中分裂量“0”只有split header,无index k。将这些split header和索引k输出到打包输出模块。
打包输出模块打包输出编码参数,具体的输出格式如下:
  111110   base index in Q4   11011100000000
其中:111110为header标识信息,标识此处编码方式为二级扩展,且对应的基础码本在Q4中,接下来为
Figure S200810038192XD00121
在基础码本Q4中的索引,11011100000000为对应的八个分裂量在二级扩展分裂表中的索引。可见,编码此八个分裂量信息只需要14比特,若采用等长编码则需要8*3=24比特(等长分裂表中,分裂量24需要用3比特进行编码,所有分裂量的编码长度取八个中最长的那个)。
二级扩展编码采用不等长比特数来编码各维分裂量。二级扩展编码方式的header的定义方式如表6所示:
                                表6
header(binary/二进制)    Header value/头值        header定义
111110                   0x3E                     r=2,in Q4
111111 10                0xFE                     r=2,in Q3
111111 11 11             0x3FF                    r=2,in inv_Q4
二级扩展编码对应的分裂码表可以如表7所示:
  表7
  i   k0   binary   k2   binary   k3   binary   k4   binary   k5   binary   …
  0   0   none   4   b0   12   b00   28   b000   60   b0000   …
  1   8   b1   16   b01   32   b001   64   b0001   …
  2   20   b10   36   b010   68   b0010   …
  3   24   b11   40   b011   72   b0011   …
  4   44   b100   76   b0100   …
  5   48   b101   80   b0101   …
  6   52   b110   84   b0110   …
  7   56   b111   88   b0111   …
8 92 b1000
  9   96   b1001   …
  10   100   b1010   …
  11   104   b1011   …
12 108 b1100
  13   112   b1101   …
  14   116   b1110   …
  15   120   b1111   …
  …   …
表7中列出了扩展级为2时使用的分裂表k0及k2-k5的数值定义,k6,k7依此类推。表中k为分裂量,i为分裂量的索引,各个分裂量的大小为4的整数倍,binary为所对应的二进制编码。在此,各个数值及级别均为具体举例示意,并不作为本发明实施例的限定。
由于二级扩展使用的分裂表包括各个不同的级别,固必须给各个级别的分裂表再定义header信息,即split header,定义如表8:
                              表8
Split header(binary/二进制)    Header value/头值    header定义
0                              0x0                  K0
10                             0x2                  K2
110                            0x6                  K3
1110                           0xE                  K4
11110                          0x1E                 K5
111110                         0x3E                 K6
1111110                        0x7E                 K7
若取分裂量为0时,即该维数据未进行分裂,则输出一个比特“0”作为splitheader来标识,且无需输出分裂量在分裂表k0中的索引;若取分裂量为4时,该分裂量在k2中,编码输出其split header索引“10”,以及其在k2中的索引“0”;若取分裂量为20时,该分裂量在k3中,编码输出其split header索引“110”,以及其在k3中的索引“10”。
因此,本实施例中,二级编码过程中,输出格式如下,
header   Baseindex I   1<sup>st</sup>Splitheader  1<sup>st</sup>Index k   2<sup>nd</sup>splitheader  2<sup>nd</sup>index k   …   8<sup>th</sup>splitheader  8<sup>th</sup>index k
具体包括header,
Figure S200810038192XD00141
在基础码本中的索引base index I和八个分裂量的split header,以及对应的八个index k。这里要注意的是,当其中某一个splitheader为“0”时,其对应的index k不需要传,占用0比特。Index k的长度依据split header来定,不同的split header对应不同的index k长度。分裂量在k0,k2-k7中时,所消耗的比特数如表9所示:
                        表9
分裂表   Split header消耗比特数   Index k消耗比特数   一个分裂量消耗的总比特数
  K0   1   0   1
  K2   2   1   3
  K3   3   2   5
  K4   4   3   7
  K5   5   4   9
  K6   6   5   11
  K7   7   6   13
实际情况中,对于一个八维矢量,往往只有少许几维需要分裂,且值特别大的数字往往只有一维,固采用不等长编码区别对待,能在实际应用中节省不少比特数。
如图2所示,本实施例还涉及一种基于变长分裂表的矢量量化高阶码本扩展解码系统,解码端也包括两种扩展级编码方式下的解码处理过程。
(一)在编码端使用一级扩展编码时,以数据 y &RightArrow; = { 7 , - 5,1,1,1,1,1,1 } 为例,解码端基于变长分裂表的解码过程具体如下:
参数获取模块接收编码端发来的数据包,对其进行解析,读取header,i,k等参数,并将这些参数输出到编码方式判断模块;
编码方式判断模块根据编码模式标识信息header值1111110,判断为一级扩展编码,并可以得知对应的所在基础码本为Q3,将header值1111110和i输出到基础码本解码模块,并将k的值11000000输出到一级扩展分裂量解码模块;
基础码本解码模块检测header的值1111110为一级扩展编码,根据header和索引i的值计算码字
Figure S200810038192XD00151
得到 c &RightArrow; = { 3 , - 1,1,1,1,1,1,1 } , 并将输出到矢量合成模块;
一级扩展分裂量解码模块根据分裂表索引 k &RightArrow; = 11000000 , 计算得到分裂量的值为{4,4,0,0,0,0,0,0},并将这些分裂量输出到矢量合成模块;
矢量合成模块将基础码本中的矢量{3,-1,1,1,1,1,1,1}与分裂量{4,4,0,0,0,0,0,0}相加,这里分裂量取与基础码本中对应分量相同的符号,得到还原的矢量
Figure S200810038192XD00155
为{7,-5,1,1,1,1,1,1},解码结束。
(二)在编码端使用二级扩展编码时,以数据 y &RightArrow; = { 27 , - 7,1,1,1,1,1,1 } 为例,在解码端基于变长分裂表的解码过程具体如下:
参数获取模块接收编码端发来的数据包,对其进行解析,读取header,I,split header,k等参数,并将这些参数输出到编码方式判断模块;
编码方式判断模块根据编码模式标识信息header值111110,判断为二级扩展编码,并可以得知对应的所在基础码本为Q4,将header值111110和i输出到基础码本解码模块,并将split header和k的值11011100000000输出到二级扩展分裂量解码模块;
基础码本解码模块检测header的值111110为二级扩展编码,根据header和索引i的值计算码字
Figure S200810038192XD00159
得到 c &RightArrow; = { 3 , - 3,1,1,1,1,1,1 } , 并将
Figure S200810038192XD001511
输出到矢量合成模块;
二级扩展分裂量解码模块读取分裂量索引11011100000000,解析该索引,第一个split header为110,接下来往后读两位为第一个index k,即11,查分裂表得第一个分裂量为24;接着往下读,得到第二个split header为10,往后读一位为0,查分裂表得第二个分裂量为4;接着往下读,得到第三个splitheader为0,固知第三个分裂量为0;同理接着往下读,得到第四至八个分裂量均为0。最终得到八维分裂量为{24,4,0,0,0,0,0,0};并将这些分裂量输出到矢量合成模块;
矢量合成模块将基础码本中的矢量{3,-3,1,1,1,1,1,1}与分裂量{24,4,0,0,0,0,0,0}相加,这里分裂量取与基础码本中对应分量相同的符号,得到还原的矢量
Figure S200810038192XD00161
为{27,-5,1,1,1,1,1,1},解码结束。
综上所述,一级扩展采用等长比特编码分裂量,适应于较小且比基础码本中矢量稍大的矢量;二级扩展采用不等长比特编码分裂量,适应于较大数值的矢量,由于实际应用中大值矢量中,往往只有1-3维需要分裂,故对分裂量采用不等长编码,给未分裂的几维用1比特“0”标识,有利于高效利用比特数,节省比特开销。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (4)

1.一种基于变长分裂表的矢量量化高阶码本扩展编码系统,其特征在于,包括如下模块:扩展编码判断模块,编码格矢量分裂模块,基础码本编码模块,扩展模式选择模块,一级扩展计算模块,二级扩展计算模块,打包输出模块,其中:
扩展编码判断模块判断待编码格矢量
Figure FSB00000260038700011
是否在基础码本中,若在,则将
Figure FSB00000260038700012
输出到基础码本编码模块,同时将编码模式标识信息header输出到打包输出模块;若不在,则将
Figure FSB00000260038700013
输出到编码格矢量分裂模块;
编码格矢量分裂模块利用变长分裂表中的分裂量将待编码格矢量
Figure FSB00000260038700014
中的八个分量y(j)(j=1,…,8)分别作分裂处理,将每个y(j)分裂后形成一个新的码字分量c(j)与变长分裂表中的一个分裂量y’(j),分裂量y’(j)为变长分裂表中能使c(j)绝对值最小的一个分裂量;其中生成的八个码字分量c(j)组成的八维矢量为基础码本中的某一矢量将八个y’(j)输出到扩展模式选择模块,并将
Figure FSB00000260038700016
输出到基础码本编码模块;
基础码本编码模块计算
Figure FSB00000260038700017
Figure FSB00000260038700018
在基础码本中的索引i,将i输出到打包输出模块;
扩展模式选择模块检测八个y’(j)值的大小,若均小于等于一级扩展阈值,一级扩展阈值为一级分裂表中最大分裂量的值,则将y’(j)输出到一级扩展计算模块,否则将y’(j)输出到二级扩展计算模块,同时,将编码模式标识信息header输出到打包输出模块;
一级扩展计算模块计算y’(1)…y’(8)在一级扩展分裂表中的分裂表索引k,并将k输出到打包输出模块;
二级扩展计算模块分别计算各个分裂量y’(1)…y’(8)在二级扩展中的分裂表标识信息split header和在该分裂表中的分裂表索引k,并将八组split header和k输出到打包输出模块;
打包输出模块将接收到的参数header、各参数打包并输出,若header标识编码方法为基础码本编码,则将header,i打包输出;若header标识编码方法为一级扩展编码,则将header,i,k打包输出;若header标识编码方法为二级扩展编码,则将header,i,split header,k打包输出;
所述分裂表标识信息split header为二级扩展中分裂表的编号,该信息用于识别所使用的分裂量选用的哪个分裂表。
2.根据权利要求1所述的基于变长分裂表的矢量量化高阶码本扩展编码系统,其特征是,所述编码模式标识信息header,用于识别出编码端采用的编码方式。
3.根据权利要求1所述的基于变长分裂表的矢量量化高阶码本扩展编码系统,其特征是,所述分裂表索引k为每个分裂量在所选用的分裂表中的索引,用于索引该分裂表中的值。
4.一种基于变长分裂表的矢量量化高阶码本扩展解码系统,其特征在于,包括如下模块:参数获取模块,编码方式判断模块,基础码本解码模块,一级扩展分裂量解码模块,二级扩展分裂量解码模块,矢量合成模块,其中:
参数获取模块接收编码端发来的数据包,并对数据包进行解析,读取编码端传过来的所有参数,参数可包括:编码模式标识信息header、基本索引i、分裂表标识信息split header、分裂表索引k,并将所有参数输出到编码方式判断模块;
编码方式判断模块根据编码模式标识信息header的值判断编码端采用的编码方式,若采用的是基础码本编码方式,则将header和i输出到基础码本解码模块;若采用的是一级扩展编码方式,则将header和i输出到基础码本解码模块,并将k输出到一级扩展分裂量解码模块;若采用的是二级扩展编码方式,则将header和i输出到基础码本解码模块,并将split header和k输出到二级扩展分裂量解码模块;
基础码本解码模块检测header的值,若其标识为基础码本编码,则根据header和i的值计算码字
Figure FSB00000260038700021
解码结束;若其标识为扩展码本编码方式,则根据header和i的值计算码字
Figure FSB00000260038700022
并将
Figure FSB00000260038700023
输出到矢量合成模块;
一级扩展分裂量解码模块根据分裂表索引k计算分裂量的值y’(j),并将y’(j)输出到矢量合成模块;
二级扩展分裂量解码模块根据八个分裂表标识信息split header和其对应的分裂表索引k计算八个分裂量的值y’(j),并将y’(j)输出到矢量合成模块;
矢量合成模块将
Figure FSB00000260038700031
的各个分量c(j)分别与各个分裂量y’(j)对应相加,得到还原的矢量
Figure FSB00000260038700032
解码结束;
所述分裂表标识信息split header为二级扩展中分裂表的编号,该信息用于识别所使用的分裂量选用的哪个分裂表。
CN200810038192XA 2008-05-29 2008-05-29 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统 Expired - Fee Related CN101281750B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810038192XA CN101281750B (zh) 2008-05-29 2008-05-29 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810038192XA CN101281750B (zh) 2008-05-29 2008-05-29 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统

Publications (2)

Publication Number Publication Date
CN101281750A CN101281750A (zh) 2008-10-08
CN101281750B true CN101281750B (zh) 2010-12-22

Family

ID=40014178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810038192XA Expired - Fee Related CN101281750B (zh) 2008-05-29 2008-05-29 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统

Country Status (1)

Country Link
CN (1) CN101281750B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101695000B (zh) * 2009-10-13 2012-08-29 武汉大学 基于高斯混合模型的分裂矢量量化编解码方法及其装置
CN102623012B (zh) 2011-01-26 2014-08-20 华为技术有限公司 矢量联合编解码方法及编解码器
CN103794219B (zh) * 2014-01-24 2016-10-05 华南理工大学 一种基于m码字分裂的矢量量化码本生成方法
CN106935243A (zh) * 2015-12-29 2017-07-07 航天信息股份有限公司 一种基于melp的低比特数字语音矢量量化方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238100A (zh) * 1996-10-23 1999-12-08 斯特拉斯克莱德大学 矢量量化代码本产生方法
US6148283A (en) * 1998-09-23 2000-11-14 Qualcomm Inc. Method and apparatus using multi-path multi-stage vector quantizer
CN1659785A (zh) * 2002-05-31 2005-08-24 沃伊斯亚吉公司 信号多速率点阵矢量量化的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1238100A (zh) * 1996-10-23 1999-12-08 斯特拉斯克莱德大学 矢量量化代码本产生方法
US6148283A (en) * 1998-09-23 2000-11-14 Qualcomm Inc. Method and apparatus using multi-path multi-stage vector quantizer
CN1659785A (zh) * 2002-05-31 2005-08-24 沃伊斯亚吉公司 信号多速率点阵矢量量化的方法和系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JP特开2003-345392A 2003.12.03
Minjie Xie et al.EMBEDDED ALGEBRAIC VECTOR QUANTIZERS (EAVQ) WITH APPLICATION TO WIDEBAND SPEECH CODING.《Proceedings of IEEE International Conference on Acoustics,Speech,and Signal Processing,1996》.1996,第1卷第240-243页. *
Stephane Ragot et al.LOW-COMPLEXITY MULTI-RATE LATTICE VECTOR QUANTIZATION WITH APPLICATION TO WIDEBAND TCX SPEECH CODING AT 32 KBIT/S.《Proceedings of IEEE International Conference on Acoustics,Speech,and Signal Processing,2004》.2004,第1卷第I-501-I-504页. *

Also Published As

Publication number Publication date
CN101281750A (zh) 2008-10-08

Similar Documents

Publication Publication Date Title
CN101281750B (zh) 基于变长分裂表的矢量量化高阶码本扩展编码及解码系统
CN101430881B (zh) 一种编码、解码、编解码方法、编解码系统以及相关装置
HRP20140400T1 (hr) Dekodiranje višekanalnog audio kodiranog toka bitova pomoä†u adaptivne hibridne transformacije
US10425102B2 (en) Coding method, decoding method, coder, and decoder
CN100539437C (zh) 一种音频编解码器的实现方法
RU2008105046A (ru) Эффективное кодирование и декодирование блоков преобразования
CN101615910B (zh) 压缩编码的方法、装置和设备以及压缩解码方法
MXPA04007054A (es) Codificacion adaptable de longitud variable.
TW200943738A (en) Coder, decoder, coding method, and decoding method
DE602004010885D1 (de) Audio-transkodierung
CN103329199A (zh) 编码方法、编码装置、周期性特征量决定方法、周期性特征量决定装置、程序、记录介质
CN101266796B (zh) 一种量化编解码方法及装置
MX2021013470A (es) Un codificador, un decodificador y métodos correspondientes que utilizan un filtro de bucle adaptativo.
CN110932736A (zh) 一种基于Raptor码及四进制RS码的DNA信息存储方法
CN100583649C (zh) 矢量编/解码方法、装置及流媒体播放器
MX2022011469A (es) Método de codificación y método de decodificación de nube de puntos, codificador y decodificador y medio de almacenamiento.
CN116016606A (zh) 一种基于智慧云的污水处理运维数据高效管理系统
EP2251981B1 (en) Method and apparatus for coding and decoding
CN102077470B (zh) 采用线性分组码的编码方法、装置及线性分组码生成方法、装置
CN101266795B (zh) 一种格矢量量化编解码的实现方法及装置
JP2003229835A5 (zh)
CN102623012A (zh) 矢量联合编解码方法及编解码器
CN103746701A (zh) 一种用于Rice无损数据压缩的快速编码选项选择方法
CN101488823A (zh) Reed-Muller译码方法及使用该方法的译码器
CN102891730B (zh) 基于bcd码卫星短报文的编码方法和装置

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
ASS Succession or assignment of patent right

Owner name: MEDIASOC TECHNOLOGIES CO., LTD.

Free format text: FORMER OWNER: SHANGHAI JIAO TONG UNIVERSITY

Effective date: 20130524

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 200240 MINHANG, SHANGHAI TO: 201241 MINHANG, SHANGHAI

TR01 Transfer of patent right

Effective date of registration: 20130524

Address after: 555 No. 201241 Shanghai Zizhu Science Park in Minhang District City, Dongchuan Road No. 4 Building 302C

Patentee after: MediaSoC Technologies Co., Ltd.

Address before: 200240 Dongchuan Road, Shanghai, No. 800, No.

Patentee before: Shanghai Jiao Tong University

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101222

Termination date: 20140529