CN102422541B - 编码方法、装置与系统、解码方法、装置与系统 - Google Patents
编码方法、装置与系统、解码方法、装置与系统 Download PDFInfo
- Publication number
- CN102422541B CN102422541B CN2009801590126A CN200980159012A CN102422541B CN 102422541 B CN102422541 B CN 102422541B CN 2009801590126 A CN2009801590126 A CN 2009801590126A CN 200980159012 A CN200980159012 A CN 200980159012A CN 102422541 B CN102422541 B CN 102422541B
- Authority
- CN
- China
- Prior art keywords
- vector
- code
- stream
- code book
- resolute
- 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
Links
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了一种编码方法、装置与系统、解码方法、装置与系统,其中,编码方法包括:对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将所述多个子码流进行合并,得到矢量码流;对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流。
Description
技术领域
本发明涉及通信技术,尤其是一种编码方法、装置与系统、解码方法、装置与系统。
背景技术
编码性能的一个重要指标是编码效率。高效率的编码技术,可以在编码端用尽可能少的比特,对经过一系列流程处理后的数据进行编码后传输给解码端,使解码端能够正确解码并重建数据,并确保重建的数据与编码端编码的数据完全一致。高效率的编码技术是视音频编解码中的核心技术,现有的霍夫曼编码(Huffman Coding,以下简称:HC)和算术编码(Arithmetic Coding,以下简称:AC)均是高效的编码技术,并且是无损编码。
统一语音和音频编码(Unified Speech and Audio Coding,以下简称:USAC)是移动图像专家组(Moving Picture Experts Group,以下简称:MPEG)正在进行的标准。USAC的目标是设计新的高质量编码器,既能处理好语音信号,也能处理好音乐信号。图1为现有技术USAC编码器的一个结构示意图,图2为现有技术USAC解码器的一个结构示意图。其中的USAC编码器与USAC解码器分别是基于USAC标准的编码器和解码器。如图1所示,在编码端,USAC编码器对输入信号进行分类,若输入信号属于音乐信号,则采用频域(frequency domain,以下简称:FD)编码器进行编码,并进行归一化、量化等编码预处理后,得到待编码系数,之后,采用AC编码器进行编码。若输入的是语音信号的待编码系数,则采用线性预测域(linear prediction domain,以下简称:LPD)编码器进行编码,并进行归一化、量化预处理后,得到待编码系数,之后,采用AC编码器进行编码。如图2所示,在解码端,USAC解码器采用AC解码器对接收到的码流进行解码,与反量化、反归一化等解码预处理后,根据码流中的标志位识别该码流是音乐信号码流还是语音信号码流,采用FD解码器对音乐信号码流进行解码,或采用LPD解码器对语音信号码流进行解码。
现有的USAC编码器中,AC编码器预先存储所有矢量之间的累积概率(cumulative Frequency)来描述各矢量间的相关性,接收到待编码系数时,从AC编码器中获取待编码系数中相邻矢量之间的相关性,并根据相邻矢量之间的相关性,采用基于上下文关系的算术编码方法对待编码系数进行编码。如图3所示,为现有技术USAC编码器的编码原理图。其中,A表示已编/解码但不作为上下文信息的4维矢量,B表示还未编/解码的4维矢量,C表示已编/解码并作为上下文信息的4维矢量,D表示当前要编/解码的4维矢量。USAC编码器的具体编码过程如下:将接收到的待编码系数分解成若干个4维矢量;将每一个矢量分解成一级或多级位平面;对于每一个矢量,提取其位平面的最高2级,并根据相邻矢量之间的相关性,采用基于上下文的概率计算方式对其进行编码;对于提取最高2级平面后的基它低层的位平面,使用一个统一的概率分布表进行算术编码。
一般情况下,编码效率主要由编码器的算法复杂度与存储空间决定。在实现本发明的过程中,发明人发现,现有技术中,采用AC编码器对待编码系数进行编码至少存在以下问题:
为了保证编码的完备性与无损编码,AC编码器消耗了大量的存储空间表示所有累积概率来描述相邻矢量之间的相关性,目前的相关存储量从15k至100k以上,从而降低了编码效率。由于存储空间会随着矢量维数的增大而呈级数增长,而现有的AC编码器的存储空间有限,从实际应用情况来看,利用现有的AC编码技术很难实现对4维以上矢量的编码。
发明内容
本发明实施例提供一种编码方法、装置与系统、解码方法、装置与系统,以减少编码相同矢量所需占用的编码装置的存储空间,从而提高编码装置的编码效率。
本发明实施例提供的一种编码方法,包括:
对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;
依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;
将所述多个子码流进行合并,得到矢量码流;
对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流。
本发明实施例提供的一种解码方法,包括:
接收第一码流,该第一码流包括边信息码流、矢量码流与符号码流,所述矢量码流包括对应于多个矢量的子码流;
对所述边信息码流进行解码,分别获得所述多个矢量中最大分量的位平面级数;
分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;
根据所述位置索引,分别获取所述多个矢量的绝对值矢量;
解码所述符号码流,得到所述多个矢量的符号信息;
分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;
根据所述多个矢量恢复出待编码系数。
本发明实施例提供的一种编码装置,包括:
第一编码模块,用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;
第二编码模块,用于依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;
第一合并模块,用于将所述多个子码流进行合并,得到矢量码流;
第二合并模块,用于对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流。
本发明实施例提供的一种编码系统,包括算术编码编码器,用于编码当前帧输入数据的待编码系数,得到第二码流,还包括本发明上述实施例提供的编码装置,用于编码所述当前帧输入数据的待编码系数,得到第一码流;以及
第一接收装置,用于接收所述当前帧输入数据的待编码系数,并分别发送给所述算术编码编码器与所述编码装置;
统计装置,用于统计采用所述编码装置编码所述当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用所述算术编码编码器编码所述当前帧输入数据的待编码系数所需的第二总比特数;
比较装置,用于比较所述第一总比特数是否大于所述第二总比特数;
传送装置,用于根据所述比较装置的比较结果,在所述第一总比特数小于所述第二总比特数时,在所述第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给接收端,所述第一标识用于标识所述第一比特流;在所述第一总比特数大于所述第二总比特数时,在所述第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给接收端,所述第二标识用于标识所述第二比特码流;在所述第一总比特数等于所述第二总比特数时,根据预先设置,选择所述第一码流或所述第二码流,并在选择的所述第一码流或所述第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给接收端。
本发明实施例提供的一种解码装置,包括:
第二接收模块,用于接收第一码流,该第一码流包括边信息码流、矢量码流与符号码流,所述矢量码流包括对应于多个矢量的子码流;
第一解码模块,用于对所述边信息码流进行解码,分别获得所述多个矢量中最大分量的位平面级数;
第二解码模块,用于分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;
第一获取模块,用于根据所述位置索引,分别获取所述多个矢量的绝对值矢量;
第三解码模块,用于解码所述符号码流,得到所述多个矢量的符号信息;
第二获取模块,用于分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;
恢复模块,用于根据所述多个矢量恢复出待编码系数。
本发明实施例提供的一种解码系统,包括算术编码解码器,用于对第二码流进行解码,恢复出当前帧数据的待编码系数,还包括本发明上述实施例提供的解码装置,用于对第一码流进行解码,恢复出当前帧数据的待编码系数;以及
第二接收装置,用于接收比特流,所述比特流为第一比特流或第二比特流,所述第一比特流中包括第一标识与所述第一码流,所述第二比特流中包括第二标识与所述第二码流;
识别装置,用于根据所述比特流中包括第一标识或第二标识,识别所述比特流为第一比特流或第二比特流;
解码处理装置,用于根据所述识别装置的识别结果,在所述比特流为第一比特流时,指示所述解码装置对所述第一码流进行解码;在所述比特流为第二比特流时,指示所述算术编码解码器对所述第二码流进行解码。
本发明实施例提供的一种通信系统,包括编码装置与解码装置,所述编码装置用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将所述多个子码流进行合并,得到矢量码流;对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流并传送给所述解码装置;
所述解码装置用于接收第一码流;对所述边信息码流进行解码,获得所述多个矢量中最大分量的位平面级数;分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;根据所述位置索引,分别获取所述多个矢量的绝对值矢量;解码所述符号码流,得到所述多个矢量的符号信息;分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;根据所述多个矢量恢复出待编码系数。
本发明实施例提供的另一种通信系统,包括编码系统与解码系统,所述编码系统包括:
第一接收装置,用于接收当前帧输入数据的待编码系数,并分别发送给算术编码编码器与编码装置;
算术编码编码器,用于编码当前帧输入数据的待编码系数,得到第二码流;
编码装置,用于接收待编码系数;对所述待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将所述多个子码流进行合并,得到矢量码流;对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流;
统计装置,用于统计采用所述编码装置编码所述当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用所述算术编码编码器编码所述当前帧输入数据的待编码系数所需的第二总比特数;
比较装置,用于比较所述第一总比特数是否大于所述第二总比特数;
传送装置,用于根据所述比较装置的比较结果,在所述第一总比特数小于所述第二总比特数时,在所述第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给所述解码系统,所述第一标识用于标识所述第一比特流为第一码流;在所述第一总比特数大于所述第二总比特数时,在所述第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给所述解码系统,所述第二标识用于标识所述第二比特流为第二码流;在所述第一总比特数等于所述第二总比特数时,根据预先设置,选择第一码流或第二码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给所述解码系统;
所述解码系统包括:
第二接收装置,用于接收所述传送装置传送的比特流,所述比特流为第一比特流或第二比特流;
识别装置,用于根据所述比特流中包括第一标识或第二标识,识别所述比特流为第一比特流或第二比特流;
解码处理装置,用于根据所述识别装置的识别结果,在所述比特流为第一比特流时,指示解码装置对所述第一码流进行解码;在所述比特流为第二比特流时,指示算术编码解码器对所述第二码流进行解码;
算术编码解码器,用于对所述第二码流进行解码,恢复出当前帧数据的待编码系数,
解码装置,用于接收所述第一码流;对所述边信息码流进行解码,获得所述多个矢量中最大分量的位平面级数;分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;根据所述位置索引,分别获取所述多个矢量的绝对值矢量;解码所述符号码流,得到所述多个矢量的符号信息;分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;根据所述多个矢量恢复出待编码系数。
基于本发明上述实施例提供的编码方法、装置与系统、解码方法、装置与系统,可以由预设时段内的使用概率大于预设值的矢量组成基础码本,接收到待编码系数后,可以将待编码系数分解成多个矢量,依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引,并对该位置索引进行编码,因此,编码装置中仅仅需要存储基础码本,不需要存储所有矢量及其之间的相关性,与现有技术相比,节省了编码相同矢量所需占用的编码装置存储空间;并且,由于仅仅需要对位置索引进行编码,相对于现有技术需要编码待编码系数来说,减少了待编码的数据量与编码所需的比特数,缩短了编码时间,提高了编码效率。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术USAC编码器的一个结构示意图;
图2为现有技术USAC解码器的一个结构示意图;
图3为现有技术USAC编码器的编码原理图;
图4为本发明编码方法一个实施例的流程图;
图5为本发明编码方法另一个实施例的流程图;
图6a为本发明音频信号的一个频谱图;
图6b为图6a所示音频信号分解成的谐波与单位脉冲示意图;
图7为本发明编码方法又一个实施例的流程图;
图8a为本发明一个绝对值矢量(2,1,0,3,2,1,0,1)的示意图;
图8b为本发明绝对值矢量(2,5,0,7,6,1,0,1)和(2,13,4,0,3,5,1,7)的示意图;
图9a为本发明第一码流的一个结构示意图;
图9b为图9a中子码流包括的分矢量码流的一个结构示意图;
图10为本发明编码方法再一个实施例的流程图;
图11为本发明解码方法一个实施例的流程图;
图12为本发明解码方法另一个实施例的流程图;
图13为本发明编码装置一个实施例的结构示意图;
图14为本发明编码装置另一个实施例的结构示意图;
图15为本发明编码装置又一个实施例的结构示意图;
图16为本发明编码装置再一个实施例的结构示意图;
图17为本发明编码装置还一个实施例的结构示意图;
图18为本发明编码系统一个实施例的结构示意图;
图19为本发明解码装置一个实施例的结构示意图;
图20为本发明解码装置另一个实施例的结构示意图;
图21为本发明解码装置又一个实施例的结构示意图;
图22为本发明解码装置再一个实施例的结构示意图;
图23为本发明解码系统一个实施例的结构示意图;
图24为本发明通信系统一个实施例的结构示意图;
图25为本发明通信系统另一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在音频信号中,不同4维矢量出现的频率差异比较明显。根据信息论知识,对于出现频率较高的矢量,例如:对于矢量{0,0,0,0},在USAC编码器中经常出现,可以使用尽可能少的比特数编码,以节省存储空间,使编码技术可以应用于4维以上更高维数的矢量,从而更有效提高编码效率。图4为本发明编码方法一个实施例的流程图。如图4所示,该实施例的编码方法包括:
步骤101,对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流。其中,最大分量即矢量中具有最大绝对值的分量。
步骤102,依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引并进行编码,得到多个子码流。其中,基础码本中码字对应的矢量在预设时段内的使用概率大于预设值。
步骤103,将多个子码流进行合并,得到矢量码流。
步骤104,对边信息码流、矢量码流与符号码流进行合并,合并得到的码流称为第一码流。此外,上述实施例的编码方法可以称为位平面矢量编码(Bitplane-vector Coding,以下简称:BC)方法,相应的,第一码流也可以称为BC码流。
在上述实施例提供的编码方法中,可以由预设时段内的使用概率大于预设值的矢量组成基础码本,接收到待编码系数后,可以将待编码系数分解成多个矢量,依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引,并对该位置索引进行编码,因此,编码装置中仅仅需要存储基础码本,所需占用的存储空间较小;并且,由于仅仅需要对位置索引进行编码,减少了待编码的数据量与编码所需的比特数,缩短了编码时间,提高了编码效率。
作为本发明的一个具体实施例,步骤101可以通过以下方式实现:去除待编码系数中的符号信息,获得绝对值系数;将该绝对值系数分解为维数相同的多个绝对值矢量;依次计算多个绝对值矢量中最大分量的位平面级数并进行编码,获得边信息码流;并对符号信息进行编码,获得符号码流。该实施例中,多个矢量具体为多个绝对值矢量。
作为本发明的另一个具体实施例,步骤101也可以通过以下方式实现:将待编码系数分解为维数相同的多个目标矢量;依次计算多个目标矢量中最大分量的位平面级数并进行编码,获得边信息码流;分别去除多个目标矢量中的符号信息,获得多个绝对值矢量;并对符号信息进行编码,获得符号码流。该实施例中,多个矢量具体为多个目标矢量。
另外,作为本发明的又一个具体实施例,步骤102可以通过以下方式实现:
依次以多个矢量中的每一个矢量作为当前矢量,查询基础码本中是否存在与当前矢量匹配的码字;若基础码本中存在与当前矢量匹配的码字,对该码字在基础码本中的位置索引进行编码,得到子码流,其中的位置索引中包括一个编码方式标识。具体地,该编码方式标识可以设置在位置索引的首位,另外也可以根据预先设定设置在其它位;若基础码本中不存在与当前矢量匹配的码字,对当前矢量进行单独编码,并在单独编码获得的码流的起始位置设置一个编码方式标识,得到子码流。其中的编码方式标识用于标识该子码流为对位置索引进行编码或当前矢量进行单独编码的编码方式。
根据本发明的再一个实施例,可以将音频信号的频谱分解成谐波与单位脉冲,也即:频谱中待编码系数分解得到的矢量可以表示为谐波矢量与单位脉冲矢量的叠加形式。其中,谐波为音频信号中的最核心部分,是音频信号中最重要的编码对象。相对于谐波,单位脉冲可以作为辅助性信息,描述音频信号的细节,单位脉冲矢量中各分量的取值为0或1。其中的谐波矢量也称为高位平面矢量,单位脉冲矢量也称为低位平面矢量。
图5为本发明编码方法另一个实施例的流程图。如图5所示,该实施例的编码方法包括:
步骤201,去除待编码系数中的符号信息,获得绝对值系数,并对去除的符号信息进行编码,获得符号码流。
步骤202,将该绝对值系数分解为维数相同的多个绝对值矢量。
步骤203,依次计算多个绝对值矢量中最大分量的位平面级数并进行编码,获得边信息码流。
步骤204,以多个矢量中的第一个矢量作为当前矢量,根据当前矢量中最大分量的位平面级数,对当前矢量进行级数分解,将当前矢量分解为一个以上分矢量,该一个以上的分矢量包括高位平面矢量。
步骤205,以一个以上分矢量中的第一个分矢量作为当前分矢量,查询基础码本中是否存在与当前分矢量匹配的码字。若基础码本中存在与当前分矢量匹配的码字,执行步骤206;否则,若基础码本中不存在与当前分矢量匹配的码字,执行步骤207。
步骤206,对该码字在基础码本中的位置索引进行编码,得到分矢量码流,其中的位置索引中包括一个用于表示该分矢量码流为对位置索引进行编码的编码方式标识。然后,执行步骤209。
步骤207,对当前分矢量进行单独编码。
步骤208,在单独编码获得的码流的起始位置设置一个编码方式标识,得到分矢量码流,该编码方式标识用于标识该分矢量码流为对当前分矢量进行单独编码的编码方式。
步骤209,判断当前分矢量是否为一个以上分矢量中的最后一个分矢量,也即:判断是否得到一个以上分矢量中所有分矢量的分矢量码流。若没有得到一个以上分矢量中所有分矢量的分矢量码流,也就是说,未完成对一个以上分矢量中所有分矢量的编码,以一个以上分矢量中当前分矢量的下一个分矢量作为当前分矢量,执行步骤205,直到通过步骤205-步骤208得到所有一个以上分矢量的分矢量码流;否则,若得到一个以上分矢量中所有分矢量的分矢量码流,执行步骤210。
步骤210,将一个以上分矢量编码得到的分矢量码流进行合并,得到当前矢量的子码流。
步骤211,判断当前矢量是否为多个矢量中的最后一个矢量,也即:判断是否得到多个矢量的子码流。若没有得到多个矢量的子码流,也就是说,未完成对多个矢量的编码,以多个矢量中当前矢量的下一个矢量作为当前矢量,执行步骤204,直到通过步骤204-步骤211得到多个矢量的子码流;否则,若得到多个矢量的子码流,执行步骤212。
步骤212,将多个子码流进行合并,得到矢量码流。
步骤213,对边信息码流、矢量码流与符号码流进行合并,得到第一码流。
作为本发明编码方法的又一个实施例,在图5所示实施例的步骤204中,一个以上分矢量还可以包括低位平面矢量。其中的高位平面矢量为谐波矢量,低位平面矢量为单位脉冲矢量。相应的,通过步骤205-步骤208对一个以上分矢量的位置索引进行编码或对分矢量进行单独编码时,可以按照所有分矢量中最大分量的位平面级数由高到低的顺序,依次以谐波矢量与单位脉冲矢量作为当前矢量进行编码。步骤209中,具体可以按照分矢量中最大分量的位平面级数由高到低的顺序,将谐波矢量编码得到的高位码流与单位脉冲矢量编码得到的低位码流进行合并。其中的分矢量码流包括高位码流与低位码流。
根据本发明人的一个实验结果,基于音频信号的特征,其中谐波部分的位平面级数主要分布范围为最高的1-3级,分别表示为Lev_1、Lev_2和Lev_3。如图6a所示,为本发明音频信号的一个频谱图。6a所示音频信号分解成的谐波与单位脉冲示意图如图6b所示。在实际应用中,对于任意信号的频谱,使用最多3级位平面即可非常好地描述其谐波部分。因此,根据本发明的一个应用实施例,可以对最大分量的位平面级数大于3的当前矢量进行级数分解。具体地,可以通过如下方式对最大分量的位平面级数大于3的当前矢量进行级数分解:提取当前矢量中高3位平面的分量作为谐波矢量,将提取高3位平面的分量后的每一级位平面作为一个单位脉冲矢量。例如:矢量(2,13,4,0,3,5,1,7)中最大分量的位平面级数为4,从中可以首先得到表示谐波的高3位的分矢量(1,6,2,0,1,2,0,3),也即:谐波矢量,然后,得到一层单位脉冲矢量(0,1,0,0,1,1,1,1)。根据位平面级数原理,可以获知原矢量(2,13,4,0,3,5,1,7)与两个分矢量(1,6,2,0,1,2,0,3)、(0,1,0,0,1,1,1,1)的关系为:{2,13,4,0,3,5,1,7}=2×{1,6,2,0,1,2,0,3}+{0,1,0,0,1,1,1,1}。
在本发明上述各实施例的编码方法中,基础码本具体可以包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数。相应的,查询基础码本中是否存在与当前矢量或当前分矢量匹配的码字包括:对当前矢量或当前分矢量进行多进制求和,获得唯一标识当前矢量或当前分矢量的矢量标识;查询基础码本中是否存在与矢量标识相同的码字标识。对该码字在基础码本中的位置索引进行编码包括:获取与当前矢量或当前分矢量的矢量标识相同的码字标识对应的比特数,并以该比特数对当前矢量或当前分矢量的位置索引进行编码。将矢量进行多进制求和与基础码本中的码字标识进行匹配,因此,在基础码本中仅仅存储码字标识即可,不需要再存储矢量本身,从而进一步减少了编码装置的存储空间;并且,存储码字标识相对于存储矢量本身,更易于查询是否可基于基础码本编码当前矢量,从而提高了编码效率。如下表1所示,为多个矢量的相关信息具体实例。
表1 多个矢量的相关信息具体实例(Lev_2)
根据本发明的上述实施例,基础码本中存储的内容包括上述表1中的“矢量的多进制和”、“位置索引”与“编码位置索引所需的比特数”三项内容。具体地,对当前矢量或当前分矢量的位置索引进行编码即为:对位置索引对应的二进制码进行编码。相应的,在基础码本中存储的内容为上述表1中的“矢量的多进制和”、“位置索引”与“编码位置索引所需的比特数”三项内容时,所需占用的码本空间大小约为:3*10743比特。其中,3表示基础码本中存储的上述三项内容,10743表示该实施例的基础码本中所包含的矢量总数。
在本发明上述各实施例的编码方法中,基础码本具体也可以包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量。其中,基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在各码本块的同一个码本块中,编码各码字所需的比特数相同,例如:在码本块0中,编码每一个码字所需要的比特数都是8;在码本块1中,编码每一个码字所需要的比特数都是9。相应的,查询基础码本中是否存在与当前矢量或当前分矢量匹配的码字包括:对当前矢量进行多进制求和,获得唯一标识当前矢量的矢量标识;查询多进制和列表中是否存在与该矢量标识相同的多进制和。若基础码本中存在与当前矢量匹配的码字,对该码字在基础码本中的位置索引进行编码包括:若多进制和列表中存在与矢量标识相同的多进制和,则获取与矢量标识相同的多进制和在多进制和列表中的位置序号;根据各码本块中的码字数量,确定位置序号所在的码本块以及在该码本块中的位置与该码本块中首码字的位置之差;根据在该码本块中的位置与该码本块中首码字的位置之差、以及所在的码本块中首码字的位置索引,确定多进制和对应的位置索引;根据编码各码本块中各码字的位置索引所需的比特数,获取编码多进制和对应的位置索引所需的比特数,并以该比特数编码多进制和对应的位置索引。根据该实施例,基础码本中存储的一个内容实例为:各码本块中首码字的位置索引,表示为:Offset_2bit[9]={0,8,28,...},和编码各码本块中各码字的位置索引所需的比特数,表示为:BitSpan_2bit[9]={8,9,10,...},和各码本块中的码字数量,表示为:Size_2bit[9]={4,6,56,...},和以表1中“矢量的多进制和”列表示的多进制和列表,即:
ID_L2[10743]={2,6,32768,36864,9,22,25,24576,25600,37888,3,7,8,10,18,24,26,32,36,37,70,73,86,...}。
根据该基础码本实施例,所需占用的码本空间大小约为:10743+3*9,其中,3表示基础码本中存储的上述三项内容,9表示上述基础码本中共有9个码本块。由此可知,与基础码本中存储的内容为“矢量的多进制和”、“位置索引”与“编码位置索引所需的比特数”相比,该实施例中基础码本所需的码本空间降低了近2/3,从而进一步减少了编码装置的存储空间。以Lev_2为例,基于该基础码本对一个矢量进行编码的一个实施例如下:
对该矢量进行多进制求和,获得唯一标识当前矢量的矢量标识,假设该矢量标识为25600;查询多进制和列表中是否存在与该矢量标识相同的多进制和;
若多进制和列表中存在与矢量标识相同的多进制和,则获取与矢量标识相同的多进制和在多进制和列表中的位置序号,以矢量标识25600为例,位置序号为8;
根据各码本块中的码字数量,确定位置序号所在的码本块以及在该码本块中的位置与该码本块中首码字的位置之差,基于上述实例,根据各码本块中的码字数量Size_2bit[9]={4,6,56,...},可知位置序号8所在的码本块为块1,其在该码本块1中的位置与所在的码本块1中首码字的位置之差为4;
根据在该码本块中的位置与该码本块中首码字的位置之差、以及所在的码本块中首码字的位置索引,确定多进制和对应的位置索引,继续上述实例,根据各码本块中首码字的位置索引Offset_2bit[9]={0,8,28,...},可知码本块1中首码字的位置索引为8,根据在码本块1中的位置与所在的码本块1中首码字的位置之差为4、所在的码本块1中首码字的位置索引8,可以确定多进制和对应的位置索引为8+4=12;
根据编码各码本块中各码字的位置索引所需的比特数,获取编码多进制和对应的位置索引所需的比特数,并以该比特数编码多进制和对应的位置索引,继续上述实例,根据编码各码本块中各码字的位置索引所需的比特数BitSpan_2bit[9]={8,9,10,...},可知编码码本块2中各码字的位置索引所需的比特数为9,以9比特编码位置索引12的二进制码000001100。
具体地,对最大分量的位平面级数为1的谐波矢量和单位脉冲矢量,可以进行二进制求和,对最大分量的位平面级数为2的谐波矢量,可以进行四进制求和,对最大分量的位平面级数为3的谐波矢量,可以进行八进制求和。
进一步地,按照对应的矢量在预设时段内的使用概率大小,又可以将基础码本划分为M个子码本,其中,M为大于1的整数。具体地,可以按照在预设时段内的使用概率由大到小的顺序,来排列子码本。相应的,查询基础码本中是否存在与当前矢量或当前分矢量的矢量标识相同的位置索引时,可以针对M个子码本中的第1个子码本,查询是否存在与矢量标识相同的位置索引;若存在,则执行获取与矢量标识相同的码字标识对应的比特数的操作;若不存在,则以下一个子码本作为第1个子码本,开始执行获取与该矢量标识相同的位置索引所在位置索引段对应的比特数操作,通过对M个子码本的依次查询,来获知基础码本中是否存在与当前矢量或当前分矢量的矢量标识相同的位置索引。其中,下一个小于或等于M。将基础码本划分为多个子码本后,在某一个子码本中查询到与矢量标识相同的位置索引时,可以及时跳出查询流程,从而不需要再对后续的基础码本进行查询,减少了查询时间,从而进一步提高了编码效率。
图7为本发明编码方法又一个实施例的流程图。如图7所示,该实施例的流程包括:
步骤301,从待编码系数中提取非零元素的符号信息,获得绝对值系数,并将提取的符号信息作为一个整体,表示为参数A,进行编码,得到符号码流。具体地,若待编码系数为正,则将该参数A编码为0,若待编码系数为正,则将该参数A编码为1。
步骤302,将绝对值系数分解为多个N维绝对值矢量,其中,N为大于零的整数,例如:8或6。为叙述方便,本实施例中选择将绝对值系数分解为多个8维绝对值矢量,即:N为8。当绝对值系数的数据长度不为8的整数倍时,在最后部分补零,使得绝对值系数的数据长度为8的整数倍。
步骤303,依次计算多个绝对值矢量中最大分量的位平面级数,将其作为一个整体,表示为参数B,对该参数B使用熵编码以节省比特,获得边信息码流。其中,可以选择熵编码可以是算术编码、霍夫曼编码等。
步骤304,以多个绝对值矢量中的第一个绝对值矢量作为当前矢量,根据步骤303获得的当前矢量中最大分量的位平面级数,对当前矢量进行级数分解,将当前矢量分解为一个以上分矢量。具体分解方法如下:
在最大分量的位平面级数小于或等于3时,不对当前矢量进行分解。如图8a所示,为本发明一个绝对值矢量(2,1,0,3,2,1,0,1)的示意图,由于绝对值矢量(2,1,0,3,2,1,0,1)中最大分量的位平面级数位2,因此,无需对其进行分解。再如图8b所示,为本发明绝对值矢量(2,5,0,7,6,1,0,1)和(2,13,4,0,3,5,1,7)的示意图,由于绝对值矢量(2,5,0,7,6,1,0,1)中最大分量的位平面级数位3,因此,也无需对其进行分解。
在最大分量的位平面级数大于3时,首先从当前矢量中提取高3位平面的分量作为一个分矢量,即:谐波矢量,然后将剩余的位平面每一级作为一个分矢量,即:单位脉冲矢量。例如:图8b中的绝对值矢量(2,13,4,0,3,5,1,7)中最大分量的位平面级数位4,将其分解为一个高3位的分矢量{1,6,2,0,1,2,0,3}和一个低位的分矢量{0,1,0,0,1,1,1,1}。
步骤305,将当前矢量作为一个参数C进行编码,得到一个子码流,该子码流中包括编码方式标识;或将当前矢量分解得到的一个以上分矢量,按照位平面级数由高到低的顺序,依次进行编码,得到一个分矢量码流,该分矢量码流中包括编码方式标识,然后按照位平面级数由高到低的顺序,将编码一个以上分矢量得到的一个以上分矢量码流,按照高位码流到低位码流的顺序合并,获得当前矢量的子码流。具体编码方式有如下几种情况。
第一,若当前矢量为全零矢量,则不对其进行编码,可以有效的节省编码所需比特数。
第二,若当前矢量中最大分量的位平面级数为1,则不对其进行级数分解,按照Lev_1编码模式、选择Lev_1对应的码本对其进行高位平面编码。
第三,若当前矢量中最大分量的位平面级数为2,则不对其进行级数分解,按照Lev_2编码模式、选择Lev_2对应的码本对其进行高位平面编码。
第四,若当前矢量中最大分量的位平面级数为3,则不对其进行级数分解,按照Lev_3编码模式、选择Lev_3对应的码本对其进行高位平面编码。
第五,若当前矢量中最大分量的位平面级数大于3,提取当前矢量中高3位平面的分量作为谐波矢量,并按照Lev_3编码模式对该谐波矢量进行高位平面编码,得到一个分矢量码流。然后,按位平面从高到低,将提取高3位平面的分量后的低层位平面进行低位平面编码,该编码模式称为Lev_3L,选择Lev_3L对应的码本对其进行编码,得到另一个分矢量码流,之后将对各分矢量编码得到的分矢量码流进行合并,得到当前矢量的子码流。
以下对Lev_1、Lev_2、Lev_3和Lev_3L的码本结构进行说明。
对于Lev_1,即:当前矢量的位平面级数为1,在当前矢量的维数为8时,共有255个矢量。在不对全零矢量进行编码时,Lev_1的码本大小为255。
对于Lev_2,即:当前矢量中最大分量的位平面级数为2,在当前矢量的维数为8时,共有65536个矢量。在实现本发明的过程中,发明人发现其中有很多矢量的出现概率非常小,甚至在大样本实验中从未出现。因此,为了更为有效的利用编码装置的存储空间,可以选择那些出现概率比较频繁的矢量,也即:在预设时段内的使用概率大于预设值的矢量,组成基础码本。对由于出现概率低未被选择的每个矢量,也称为:非基础码本,采用2比特对其中的每一个分量进行编码,为了避免解码的二义性,可以在编码获得的码流前添加一个2比特编码方式标识11,以表示该矢量采用的编码方式为独立编码。按照出现概率的大小,又可以将基础码本分成3个子码本,如下表2所示,为Lev_2编码模式的一个基础码本结构实例。根据表2,Lev_2编码模式下,基础码本被分为9个子码本。
表2 Lev_2模式的一个基础码本结构实例
子码本号 | Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 |
子码本大小 | 4 | 6 | 56 | 235 | 662 | 730 | 1317 | 2937 | 4796 |
其中,Q0采用8比特进行编码,Q1采用9比特进行编码,依此类推,Q8采用16比特进行编码。对由于出现概率低未被选择的每个矢量中的分量,采用2比特进行自然二进制编码。
对于Lev_3,即:当前矢量中最大分量的位平面级数为3或大于3,与Lev_2类似,按照同样的方式,分成基础码本和非基础码本两部分。对于矢量的维数为8时,Lev_3编码模式的一个基础码本结构实例见表3。根据表3,Lev_3编码模式下,基础码本被分为9个子码本。
表3 Lev_3编码模式的一个基础码本结构实例
码本号 | Q0 | Q1 | Q2 | Q3 | Q4 | Q5 | Q6 | Q7 | Q8 |
码本大小 | 2 | 4 | 26 | 40 | 136 | 330 | 891 | 3975 | 18781 |
其中,Q0采用8比特进行编码,Q1采用9比特进行编码,依此类推,Q8采用16比特进行编码。对由于出现概率低未被选择的每个矢量中的分量,采用3比特进行自然二进制编码。
此外,在矢量中最大分量的位平面级数大于3时,还需要对低位平面进行编码,其中所使用的码本称为Lev_3L,大小为256。
通过以上编码方式,可以用尽可能少的比特编码出现频率高矢量,从而节省比特数。在实际应用中,可根据具体需要决定基础码本的大小。一般地,基础码本越大,编码效率越高,相应地,占用的编码装置的存储空间也将增大。
以下以Lev_2编码模式的基础码本结构、当前矢量的维数为8为例,说明对最大分量的位平面级数为2的当前矢量的编码方法,对于Lev_3编码模式的基础码本结构、当前矢量的维数为其它值的情况,同样适用:
为了减少存储空间,本发明并不直接存储8维矢量,对当前矢量的8个分量进行多进制求和,获得当前矢量的矢量标识。具体地,对于Lev_1和Lev_3L,进行二进制求和,例如:当前矢量为{1,0,0,0,1,0,0,1},进行二进制求和,获得的矢量标识为137。对于Lev_2,进行四进制求和,例如:当前矢量为{0,1,0,2,2,1,3,2},进行四进制求和,获得的矢量标识为4766。对于Lev_3,进行八进制求和。例如:当前矢量为{7,1,7,0,1,0,0,0},进行八进制求和,获得的矢量标识为15172096;
在基础码本中查询是否存在与当前矢量标识相同的位置索引,查询顺序是从Q0开始,若在Q0中查询到与当前矢量标识相同的位置索引,获取该位置索引所在位置索引段对应的比特数,采用该比特数对该位置索引进行编码。否则,若在Q0中未查询到与当前矢量标识相同的位置索引,则依次选择Q1、Q2等,进行与Q0相同的查询、编码过程,依次类推,直到查询到与当前矢量标识相同的位置索引并对对应的位置索引进行编码,退出该查询过程。若在最后一个子码本中仍未查询到与当前矢量标识相同的位置索引,说明当前矢量并不在该基础码本中。此时,对当前矢量进行单独编码。可选的单独编码包括自然二进制编码。具体地:对于Lev_2,对每一个8维矢量中的每一个分量,采用2比特直接编码,共使用16比特;此外,在编码完毕后,可以在当前矢量对应码流的起始位置添加2比特的编码方式标识11,这样可以避免在解码端出现二义性错误,以获得正确的解码结果。
与Lev_2相比,对于Lev_3,当前矢量不存在于基础码本中时,对每一个8维矢量中每一个分量,采用3比特直接编码,共使用24比特;此外,在编码完毕后,可以在当前矢量对应码流的起始位置添加2比特的编码方式标识11,这样,以避免在解码端出现二义性错误,以获得正确的解码结果。因此,对当前8维矢量进行单独编码时,Lev_2编码模式下共需18比特,Lev_3编码模式下共需26比特。
对于Lev_1和Lev_3L,由于矢量的数量并不是很多,可以将所有的码本包含在基础码本中,因此,只需一个码本并且该码本是完备的,只需要在该基础码本中搜索到相应的码字标识后,采用相应的比特数对该码字标识对应的索引编码即可。
步骤306,按照边信息码流、子码流、符号码流的顺序,合并边信息码流、子码流与符号码流,得到第一码流并输出。如图9a所示,为本发明第一码流的一个结构示意图,图9b为图9a中子码流包括的分矢量码流的一个结构示意图。
在图7所示的上述实施例中,由于从步骤304-步骤305的操作为对绝对值矢量的一个编码处理过程,因此,由步骤304-步骤305过程的流程也称为绝对值矢量编码流程。
另外,为方便描述,将本发明上述各实施例提供的编码方法称为BC编码方法,将实现上述各第一编码方法的装置称为编码装置。作为本发明再一个实施例,可以在本发明上述各实施例提供的第一编码方法与算术编码编码器提供的算术编码编码方法之间进行切换,从而在不同情况下实现编码方法之间的灵活选择,进而提高编码效率。图10为本发明编码方法再一个实施例的流程图。如图10所示,该实施例的流程包括:
步骤401,通过第一编码方法对当前帧输入数据的待编码系数进行编码,并在得到第一码流后,统计编码当前帧输入数据的待编码系数所需的第一总比特数;以及采用算术编码编码器编码当前帧输入数据的待编码系数,得到第二码流,该第二码流也称为算术编码码流,并统计采用算术编码编码器编码当前帧输入数据的待编码系数所需的第二总比特数。
步骤402,比较第一总比特数是否大于第二总比特数。若第一总比特数小于第二总比特数,执行步骤403。否则,若第一总比特数大于第二总比特数,执行步骤404,若第一总比特数等于第二总比特数,执行步骤405。
步骤403,在第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给接收端,第一标识用于标识第一比特流为第一码流。之后,不再执行本实施例的后续流程。
步骤404,在第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给接收端,第二标识用于标识第二比特流为第二码流。之后,不再执行本实施例的后续流程。
步骤405,根据预先设置,选择第一码流或第二码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,形成第一比特流或第二比特流。
步骤406,将形成的第一比特流或第二比特流传送给接收端。
通过本发明上述各实施例的编码方法对待编码系数编码后,可以编码得到的码流发送给接收端,由接收端的解码装置采用与编码方法相应的解码方法,对码流进行相应的解码,恢复出第一编码前的相应待编码系数。
图11为本发明解码方法一个实施例的流程图。如图11所示,该实施例的解码方法包括:
步骤501,接收第一码流,该第一码流包括边信息码流、矢量码流与符号码流,矢量码流包括对应于多个矢量的子码流。
步骤502,对第一码流中的边信息码流进行解码,获得多个矢量中最大分量的位平面级数。
步骤503,分别根据多个矢量中最大分量的位平面级数,对多个子码流进行解码,得到基础码本中分别与多个矢量匹配的码字在基础码本中的位置索引。
步骤504,根据位置索引,分别获取多个矢量的绝对值矢量。
步骤505,解码第一码流中的符号码流,得到多个矢量的符号信息。
步骤506,分别将多个矢量的符号信息赋予多个矢量的绝对值矢量,得到多个矢量。
步骤507,根据多个矢量恢复出待编码系数。
在图11所示实施例的解码方法中,基础码本具体可以包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数。即:与编码方法实施例相应,在基础码本中存储的内容为上述表1中的“矢量的多进制和”、“位置索引”与“编码位置索引所需的比特数”三项内容。相应的,步骤504包括:分别从基础码本中获取与多个矢量匹配的码字在基础码本中的位置索引对应的多个码字标识;分别以多个码字标识作为矢量标识,获取相应的绝对值矢量,矢量标识为一个绝对值矢量进行多进制求和后获得的唯一标识绝对值矢量的标识。
另外,与编码方法实施例相应,在图11所示实施例的解码方法中,基础码本具体也可以包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量。其中,基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在各码本块的同一个码本块中,编码各码字所需的比特数相同。即:基础码本中存储的一个内容实例为:各码本块中首码字的位置索引Offset_2bit[9]={0,8,28,...},和编码各码本块中各码字的位置索引所需的比特数BitSpan_2bit[9]={8,9,10,...},和各码本块中的码字数量Size_2bit[9]={4,6,56,...},和以表1中“矢量的多进制和”列表示的多进制和列表。即:与编码方法实施例相应,在基础码本中存储的内容为上述表1中的“矢量的多进制和”、“位置索引”与“编码位置索引所需的比特数”三项内容。相应的,步骤503包括:针对每一个子码流,以码本块0作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第一比特数,从多个子码流中读取该第一比特数的数据,得到第一数值,以及根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引;比较第一数值是否大于最后一个码字的位置索引的大小;若不大于最后一个码字的位置索引的大小,则获取第一数值与当前码本块中首码字的位置索引之差的第一差值,并以该第一差值作为在当前码本块中的相对位置,从多进制和列表中获取第一数值对应的多进制和;若大于最后一个码字的位置索引的大小,则以作为下一个码本块的当前码本块的下一个码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第二比特数,并计算第二比特数与第一比特数之差的第二差值;从多个子码流中再读取第二差值比特数的数据,并与第一数值形成第二数值,并以该第二数值作为第一数值,执行根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引的操作。相应的,步骤504包括:按照多进制减法,获取与第一数值对应的多进制和相应的绝对值矢量。与编码方法实施例相应,基于该基础码本对一个子码流进行解码的一个实施例如下:
针对每一个子码流,以第一码本块,也即码本块0作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第一比特数,从多个子码流中读取该第一比特数的数据,得到第一数值,以及根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引。与编码方法实施例中矢量标识25600的实例相应,根据编码各码本块中各码字的位置索引所需的比特数BitSpan_2bit[9]={8,9,10,...},可知编码码本块0中各码字的位置索引所需的第一比特数为8,从多个子码流中读取该8比特数的数据,得到第一数值00000110,即:十进制数值6;根据当前码本块0中首码字的位置索引0与当前码本块中的码字数量4确定当前码本块中最后一个码字的位置索引为3;
比较第一数值是否大于最后一个码字的位置索引的大小。继续上述实例,比较第一数值6是否大于最后一个码字的位置索引的大小3;
若不大于最后一个码字的位置索引的大小,说明解码所得第一数值在当前码本块中,则获取第一数值与当前码本块中首码字的位置索引之差的第一差值,并以该第一差值作为在当前码本块中的相对位置,从多进制和列表中获取第一数值对应的多进制和。继续上述实例,若第一数值为2,说明解码所得第一数值2在码本块0中,则获取第一数值2与码本块0中首码字的位置索引0之差的第一差值2,并以该第一差值2作为在码本块0中的相对位置,从多进制和列表中获取第一数值对应的多进制和,即为:32768;
若大于最后一个码字的位置索引的大小,则以当前码本块的下一个码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第二比特数,并计算第二比特数与第一比特数之差的第二差值;从多个子码流中再读取第二差值比特数的数据,并与第一数值形成第二数值,并以该第二数值作为第一数值,执行根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引的操作,直到第一数值不大于最后一个码字的位置索引的大小为止。继续上述实例,第一数值6大于最后一个码字的位置索引的大小3,以码本块1作为当前码本块,根据编码各码本块中各码字的位置索引所需的比特数BitSpan_2bit[9]={8,9,10,...},获取编码码本块1中各码字的位置索引所需的第二比特数9,并计算第二比特数9与第一比特数8之差的第二差值1,从多个子码流中再读取1比特数的数据,并与第一数值00000110形成第二数值000001100,即十进制数值12,再与码本块1中的最后一个元素000001101比较,获知000001100小于000001101,可知000001100属于码本块1。根据各码本块中首码字的位置索引Offset_2bit[9]={0,8,28,...},可知码本块1中首码字的位置索引为8,获取12与码本块1中首码字的位置索引8之差的第一差值4,并以该第一差值4作为在当前码本块中的相对位置,即:位置索引12对应的当前码本块中的位置与该当前码本块中首码字的位置之差,从多进制和列表中获取12对应的多进制和25600;
按照多进制减法,获取与第一数值对应的多进制和相应的绝对值矢量,继续上述实例,按照四进制减法,获取与25600对应的绝对值矢量(1,2,1,0,0,0,0,0)。
与本发明上述实施例提供的编码方法相应,在编码端采用一种以上的编码方式对待编码系数编码时,子码流中包括编码方式标识,编码方式标识用于标识该子码流为对位置索引进行编码或绝对值矢量进行单独编码的编码方式。相应的,通过步骤502获得多个矢量中最大分量的位平面级数之后,还包括:识别子码流中编码方式标识所标识的编码方式;若编码方式标识所标识的编码方式为对位置索引进行编码,则执行步骤503;否则,若编码方式标识所标识的编码方式为对绝对值矢量进行单独编码,则根据绝对值矢量中最大分量的位平面级数对应的解码方式,直接对子码流进行解码,获得绝对值矢量。
另外,与图7所示的实施例相应,若编码过程中根据绝对值矢量中最大分量的位平面级数,对绝对值矢量进行级数分解,将绝对值矢量分解为一个以上分矢量,该一个以上的分矢量包括高位平面矢量,并且,子码流中包括编码方式标识,则步骤503具体可以通过以下方式实现:分别根据多个绝对值矢量中最大分量的位平面级数,识别该绝对值矢量对应的一个以上分矢量码流;依次以多个绝对值矢量中每一个绝对值矢量的最大分量的位平面级数作为当前位平面级数,根据该当前位平面级数,识别相应绝对值矢量对应的所述一个以上分矢量码流;依次以一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流,识别当前分矢量码流中编码方式标识所标识的编码方式;若所标识的编码方式为对位置索引进行编码,从基础码本中获取与当前分矢量匹配的码字在基础码本中的位置索引;以该位置索引作为矢量标识,获取该矢量标识对应的当前分矢量,该矢量标识为当前分矢量进行多进制求和后获得的唯一标识当前分矢量的标识;若所标识的编码方式为对当前分矢量进行单独编码,则直接对当前分矢量进行解码,获得当前分矢量。相应的,步骤504为:对一个以上分矢量码流解码获得的一个以上分矢量进行合成,得到绝对值矢量。
进一步地,若一个以上分矢量还包括低位平面矢量,其中,高位平面矢量为谐波矢量,谐波矢量编码得到的分矢量码流为高位码流,低位平面矢量为单位脉冲矢量,单位脉冲矢量编码得到的分矢量码流为低位码流,则一个以上分矢量码流包括高位码流与低位码流。在分矢量码流中,高位码流与低位码流按照对应的分矢量中最大分量的位平面级数由高到低的顺序排列。相应的,依次以一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流具体为:按照对应的分矢量中最大分量的位平面级数由高到低的顺序,依次以高位码流、低位码流作为当前分矢量码流。
与图10所示的实施例相应,若发送端可以在第一编码方法与算术编码编码方法之间进行切换,则在接收端,可以采用相应的解码方法实施例对接收到的比特流进行解码。图12为本发明解码方法另一个实施例的流程图,如图12所示,该实施例的解码方法包括:
步骤601,接收比特流,该比特流为第一比特流或第二比特流,其中,第一比特流中包括第一标识与第一码流,第二比特流中包括第二标识与第二码流。
步骤602,根据比特流中包括第一标识或第二标识,识别比特流是否为第一比特流。若为第一比特流,执行步骤603;否则,若为第二比特流,执行步骤604。
步骤603,针对第一比特流中的第一码流,通过步骤502-步骤507所示的流程对第一码流进行解码,恢复出当前帧数据的待编码系数。之后,不再执行本实施例的后续流程。
步骤604,针对第二比特流中的第二码流,采用算术编码解码器对第二比特流中的第二码流进行解码,恢复出当前帧数据的待编码系数。
图13为本发明编码装置一个实施例的结构示意图,该实施例的编码装置可用于实现本发明上述实施例的编码方法。如图13所示,该实施例的编码装置包括:第一编码模块701、第二编码模块702、第一合并模块703与第二合并模块704。其中,第一编码模块701用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对该待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流。第二编码模块702用于依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引并进行编码,得到多个子码流,其中,基础码本中码字对应的矢量在预设时段内的使用概率大于预设值。第一合并模块703用于将第二编码模块702编码得到的多个子码流进行合并,得到矢量码流。第二合并模块704用于对第一编码模块701获得的边信息码流、第一合并模块703合并得到的矢量码流与第一编码模块701获得的符号码流进行合并,得到第一码流。
图14为本发明编码装置另一个实施例的结构示意图,与图13所示的实施例相比,该实施例中,第一编码模块701包括第一去除单元801、第一分解单元802与第一编码单元803。其中,第一去除单元801用于去除获得的待编码系数中的符号信息,获得绝对值系数。第一分解单元802用于将第一去除单元801获得的绝对值系数分解为维数相同的多个绝对值矢量,该多个绝对值矢量即为图13中所示实施例中的多个矢量。相应的,第二编码模块702用于依次获取基础码本中与第一分解单元802分解得到的多个绝对值矢量匹配的码字在基础码本中的位置索引并进行编码,得到多个子码流,第一编码单元803用于依次计算第一分解单元802分解得到的多个绝对值矢量中最大分量的位平面级数并进行编码,获得边信息码流,并对第一去除单元801去除的符号信息进行编码,获得符号码流。相应的,第二合并模块704用于对第一编码单元803编码得到的边信息码流、第一合并模块703合并得到的矢量码流与第一编码单元803编码得到的符号码流进行合并,得到第一码流。
图15为本发明编码装置又一个实施例的结构示意图,与图13所示的实施例相比,该实施例中,第一编码模块701包括第二分解单元811、第二编码单元812、第二去除单元813与第三编码单元814。其中,第二分解单元811用于将获得的待编码系数分解为维数相同的多个目标矢量,该多个目标矢量即为图13中所示实施例中的多个矢量。相应的,第二编码模块702用于依次获取基础码本中与第二分解单元811分解得到的多个目标矢量匹配的码字在基础码本中的位置索引并进行编码,得到多个子码流,第二编码单元812用于依次计算第二分解单元811分解得到的多个目标矢量中最大分量的位平面级数并进行编码,获得边信息码流。第二去除单元813用于分别去除第二分解单元811分解得到的多个目标矢量中的符号信息,获得多个绝对值矢量。第三编码单元814用于对第二去除单元813去除的符号信息进行编码,获得符号码流。相应的,第二合并模块704用于对第二编码单元812编码得到的边信息码流、第一合并模块703合并得到的矢量码流与第三编码单元814编码得到的符号码流进行合并,得到第一码流。
在上述实施例所示的编码装置中,第二编码模块702具体可以包括:查询单元821、第四编码单元822与设置单元823。其中,查询单元821用于以第一编码模块701分解得到的多个矢量中的第一个矢量作为当前矢量,查询基础码本中是否存在与当前矢量匹配的码字。具体地,该多个矢量可以是第一分解单元802分解得到的多个绝对值矢量,也可以是第二分解单元811分解得到的多个目标矢量。第四编码单元822用于根据查询单元821的查询结果,在基础码本中存在与当前矢量匹配的码字时,对该码字在基础码本中的位置索引进行编码,得到子码流,其中的位置索引中包括一个编码方式标识;在基础码本中不存在与当前矢量匹配的码字,对当前矢量进行单独编码,并在单独编码获得的码流的起始位置设置一个编码方式标识,得到子码流。其中的编码方式标识用于标识子码流为对当前矢量进行单独编码的编码方式。设置单元823用于在第四编码单元822编码获得子码流后,指示查询单元821以多个矢量中当前矢量的下一个矢量作为当前矢量,查询基础码本中是否存在与作为当前矢量的下一个矢量匹配的码字,直到得到多个矢量对应的子码流。相应的,第一合并模块703用于根据设置单元823的指示,在全部得到多个矢量对应的子码流后,将第四编码单元822编码得到的多个子码流进行合并,得到矢量码流。图16为本发明编码装置再一个实施例的结构示意图,该实施例基于图14所示的编码装置。图17为本发明编码装置还一个实施例的结构示意图,该实施例基于图15所示的编码装置。
进一步地,再参见图16与图17,第二编码模块702还可以包括:第一获取单元824、分解单元825与合并单元826。其中,第一获取单元824用于以多个矢量中的第一个矢量作为当前矢量,获取当前矢量中最大分量的位平面级数,具体地,该多个矢量可以是第一分解单元802分解得到的多个绝对值矢量,也可以是第二分解单元811分解得到的多个目标矢量。分解单元825用于根据第一获取单元824获取到的当前矢量中最大分量的位平面级数,对当前矢量进行级数分解,将当前矢量分解为一个以上分矢量,该一个以上的分矢量包括高位平面矢量。相应的,查询单元821具体以分解单元825分解得到的一个以上分矢量中的第一个分矢量作为当前分矢量,查询基础码本中是否存在与当前分矢量匹配的码字。第四编码单元822具体根据查询单元821的查询结果,在基础码本中存在与当前分矢量匹配的码字时,对该码字在基础码本中的位置索引进行编码,得到分矢量码流,其中的位置索引中包括一个编码方式标识;在基础码本中不存在与当前分矢量匹配的码字时,对当前分矢量进行单独编码,并在编码获得的码流的起始位置设置一个编码方式标识,得到分矢量码流。相应的,设置单元823具体指示查询单元821以一个以上分矢量中当前分矢量的下一个分矢量作为当前分矢量,查询基础码本中是否存在与作为当前分矢量的下一个分矢量匹配的码字。合并单元826用于根据设置单元823的指示,在第四编码单元822编码得到一个以上分矢量中最后一个分矢量对应的分矢量码流时,将第四编码单元822编码得到的一个以上分矢量编码得到的分矢量码流进行合并,得到当前矢量的子码流。
另外,在本发明上述实施例提供的任意编码装置中,都可以包括第一存储模块705,用于存储基础码本,该基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数。相应的,查询单元821具体对当前矢量或当前分矢量进行多进制求和,获得唯一标识当前矢量或当前分矢量的矢量标识,并查询基础码本中是否存在与矢量标识相同的码字标识。相应的,第四编码单元822具体根据查询单元821的查询结果,在基础码本中存在与矢量标识相同的码字标识时,获取与矢量标识相同的码字标识对应的比特数,并以该比特数对位置索引进行编码。
或者,在本发明上述实施例提供的任意编码装置中,都可以包括第二存储模块706,用于存储基础码本,该基础码本包括:基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量。其中,基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在各码本块的同一个码本块中,编码各码字所需的比特数相同。相应的,查询单元821具体对当前矢量或当前分矢量进行多进制求和,获得唯一标识当前矢量或当前分矢量的矢量标识,并查询第二存储模块706的基础码本的多进制列表中是否存在与矢量标识相同的多进制和。第四编码单元822具体根据查询单元821的查询结果,在多进制列表中存在与矢量标识相同的多进制和时,获取与矢量标识相同的多进制和在多进制和列表中的位置序号;根据各码本块中的码字数量,确定位置序号所在的码本块以及在该码本块中的位置;根据在该码本块中的位置与所在的码本块中首码字的位置索引,确定多进制和对应的位置索引;根据编码各码本块中各码字的位置索引所需的比特数,获取编码多进制和对应的位置索引所需的比特数,并以该比特数编码多进制和对应的位置索引。其中的两个实施例分别如图16与图17所示。
若基础码本包括按照对应的矢量在预设时段内的使用概率大小划分的M个子码本,其中,M为大于1的整数。则相应的,查询单元821具体针对M个子码本中的第1个子码本,查询多进制和列表中是否存在与矢量标识相同的多进制和;若存在,则开始执行获取与该矢量标识相同的多进制和在多进制和列表中的位置序号的操作;若不存在,则以下一个子码本作为第1个子码本,开始执行查询多进制和列表中是否存在与该矢量标识相同的多进制和的操作,其中的下一个小于或等于M。
图18为本发明编码系统一个实施例的结构示意图,该实施例的编码系统可用于实现如本发明图10所示实施例的流程。如图18所示,该实施例的编码系统包括:算术编码编码器11、编码装置12、第一接收装置13、统计装置14、比较装置15与传送装置16。其中,算术编码编码器11用于编码当前帧输入数据的待编码系数,得到第二码流,该第二码流也称为算术编码码流。编码装置12用于编码当前帧输入数据的待编码系数,得到第一码流,其具体可以通过本发明上述图13至17任一实施例的编码装置实现。第一接收装置13用于接收当前帧输入数据的待编码系数,并分别发送给算术编码编码器11与编码装置12。统计装置14用于统计采用编码装置12编码当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用算术编码编码器11编码当前帧输入数据的待编码系数所需的第二总比特数。比较装置15用于比较统计装置14统计得到的第一总比特数是否大于第二总比特数。传送装置16用于根据比较装置15的比较结果,在第一总比特数小于第二总比特数时,在编码装置12编码得到的第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给接收端,其中的第一标识用于标识第一比特流为第一码流;在第一总比特数大于第二总比特数时,在第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给接收端,其中的第二标识用于标识第二比特流为第二码流;在第一总比特数等于第二总比特数时,根据预先设置,选择第一码流或第二码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给接收端。
图19为本发明解码装置一个实施例的结构示意图,该实施例的解码装置可用于实现本发明上述实施例的解码方法。如图19所示,该实施例的解码装置包括第二接收模块711、第一解码模块712、第二解码模块713、第一获取模块714、第三解码模块715、第二获取模块716与恢复模块717。其中,第二接收模块711用于接收发送端发送的第一码流,该第一码流包括边信息码流、矢量码流与符号码流,矢量码流包括对应于多个矢量的子码流。第一解码模块712用于对第二接收模块711接收到的第一码流中的边信息码流进行解码,分别获得多个矢量中最大分量的位平面级数。第二解码模块713用于分别根据第一解码模块712解码得到的多个矢量中最大分量的位平面级数,对多个子码流进行解码,得到基础码本中分别与多个矢量匹配的码字在基础码本中的位置索引。第一获取模块714用于根据第二解码模块713解码得到的位置索引,分别获取多个矢量的绝对值矢量。第三解码模块715用于解码第二接收模块711接收到的第一码流中的符号码流,得到多个矢量的符号信息。第二获取模块716用于分别将第三解码模块715解码得到的多个矢量的符号信息赋予第一获取模块714获取到的多个矢量的绝对值矢量,得到多个矢量。恢复模块717用于根据第二获取模块716得到的多个矢量,恢复出待编码系数。
图20为本发明解码装置另一个实施例的结构示意图,与图19所示的实施例相比,该实施例的编码装置还包括第一存储模块705,用于存储基础码本,该基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数。相应的,第一获取模块714包括:第二获取单元841与第三获取单元842。其中,第二获取单元841用于分别从第一存储模块705存储的基础码本中获取与多个矢量匹配的码字在基础码本中的位置索引对应的多个码字标识。第三获取单元842用于以第二获取单元841获取的多个码字标识作为矢量标识,获取相应的绝对值矢量,矢量标识为一个绝对值矢量进行多进制求和后获得的唯一标识绝对值矢量的标识。相应的,第二获取模块716用于分别将第三解码模块715解码得到的多个矢量的符号信息赋予第二获取单元841获取到的多个矢量的绝对值矢量,得到多个矢量。
或者,与图19所示的实施例相比,该实施例的编码装置还包括第二存储模块706,用于存储基础码本,该基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量。其中,基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在各码本块的同一个码本块中,编码各码字所需的比特数相同。相应的,第二解码模块713具体用于分别根据多个矢量中最大分量的位平面级数,针对每一个子码流,以第一码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第一比特数,从多个子码流中读取该第一比特数的数据,得到第一数值,以及根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引;比较第一数值是否大于最后一个码字的位置索引的大小;若不大于最后一个码字的位置索引的大小,则获取第一数值与当前码本块中首码字的位置索引之差的第一差值,并以该第一差值作为在当前码本块中的相对位置,从多进制和列表中获取第一数值对应的多进制和;若大于最后一个码字的位置索引的大小,则以作为下一个码本块的当前码本块的下一个码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第二比特数,并计算第二比特数与第一比特数之差的第二差值;从多个子码流中再读取第二差值比特数的数据,并与第一数值形成第二数值,并以该第二数值作为第一数值,执行根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引的操作。第一获取模块714具体按照多进制减法,获取与第一数值对应的多进制和相应的绝对值矢量。
另外,第二接收模块711接收到的第一码流中的子码流还可以包括编码方式标识,该编码方式标识用于标识子码流为对位置索引进行编码或对绝对值矢量进行单独编码的编码方式。相应的,图21为本发明解码装置又一个实施例的结构示意图,与图20所示的实施例相比,该实施例的解码装置还包括:识别模块718与解码处理模块719。其中,识别模块718用于识别第二接收模块711接收到的第一码流中的子码流中编码方式标识所标识的编码方式。解码处理模块719用于根据识别模块718的识别结果,在编码方式标识所标识的编码方式为对位置索引进行编码时,指示第二解码模块713依次对多个子码流进行解码;在所标识的编码方式为对绝对值矢量进行单独编码时,根据绝对值矢量中最大分量的位平面级数对应的解码方式,直接对子码流进行解码,获得绝对值矢量。
另外,第二接收模块711接收到的第一码流中的子码流可以包括一个以上分矢量编码得到的一个以上分矢量码流,其中一个以上的分矢量由根据绝对值矢量中最大分量的位平面级数对绝对值矢量进行级数分解得到,一个以上的分矢量包括高位平面矢量,子码流中还包括编码方式标识,该编码方式标识用于标识分矢量码流为对位置索引进行编码或对分矢量进行单独编码的编码方式。相应的,图22为本发明解码装置再一个实施例的结构示意图,与图20所示的实施例相比,该实施例的解码装置中,第二解码模块713包括:第一识别单元843、第二识别单元844与第四获取单元845。其中,第一识别单元843用于依次以第一解码模块712获得的多个绝对值矢量中每一个绝对值矢量的最大分量的位平面级数作为当前位平面级数,根据该位平面级数,识别绝对值矢量对应的一个以上分矢量码流,该绝对值矢量即为图20所示实施例中的矢量。第二识别单元844用于依次以第一识别单元843识别出的一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流,识别当前分矢量码流中编码方式标识所标识的编码方式。第四获取单元845用于根据第二识别单元844的识别结果,在所标识的编码方式为对位置索引进行编码时,从第一存储模块705存储的基础码本中获取与当前分矢量匹配的码字在基础码本中的位置索引,以该位置索引作为矢量标识,获取该矢量标识对应的当前分矢量。其中的矢量标识为当前分矢量进行多进制求和后获得的唯一标识当前分矢量的矢量标识;在所标识的编码方式为对当前分矢量进行单独编码时,直接对当前分矢量进行解码,获得当前分矢量。相应的,第一获取模块714对第四获取单元845获得的一个以上分矢量进行合成,得到绝对值矢量。
另外,一个以上分矢量还可以包括低位平面矢量,其中的高位平面矢量为谐波矢量,低位平面矢量为单位脉冲矢量,谐波矢量编码得到的分矢量码流为高位码流,单位脉冲矢量编码得到的分矢量码流为低位码流,一个以上分矢量码流包括高位码流与低位码流,在分矢量码流中,高位码流与低位码流按照对应的分矢量中最大分量的位平面级数由高到低的顺序排列。相应的,第二识别单元844具体按照对应的分矢量中最大分量的位平面级数由高到低的顺序,依次以高位码流、低位码流作为当前分矢量码流,识别当前分矢量码流中编码方式标识所标识的编码方式。
图23为本发明解码系统一个实施例的结构示意图,该实施例的解码系统可用于实现如本发明图12所示实施例的流程。如图23所示,该实施例的解码系统包括:算术编码解码器21、解码装置22、第二接收装置23、识别装置24与解码处理装置25。其中,第二接收装置23用于接收由发送端发送的比特流,该比特流为第一比特流或第二比特流,其中,第一比特流中包括第一标识与第一码流,第二比特流中包括第二标识与第二码流。识别装置24用于根据比特流中包括第一标识或第二标识,识别第二接收装置23接收到的比特流为第一比特流或第二比特流。解码处理装置25用于根据识别装置24的识别结果,在比特流为第一比特流时,指示解码装置22对第一码流进行解码;在比特流为第二比特流时,指示算术编码解码器21对第二码流进行解码。算术编码解码器21用于对第二码流进行解码,恢复出当前帧数据的待编码系数,解码装置22用于对第一码流进行解码,恢复出当前帧数据的待编码系数。
图24为本发明通信系统一个实施例的结构示意图。如图24所示,该实施例的通信系统包括编码装置1与解码装置2。其中,编码装置1用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引并进行编码,得到多个子码流,基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将多个子码流进行合并,得到矢量码流;对边信息码流、矢量码流与符号码流进行合并,得到第一码流并传送给解码装置2。该编码装置1具体可以通过本发明图13至图17所示任一实施例的编码装置实现。
解码装置2用于接收第一码流;对边信息码流进行解码,获得多个矢量中最大分量的位平面级数;分别根据多个矢量中最大分量的位平面级数,对多个子码流进行解码,得到基础码本中分别与多个矢量匹配的码字在基础码本中的位置索引;根据位置索引,分别获取多个矢量的绝对值矢量;解码符号码流,得到多个矢量的符号信息;分别将多个矢量的符号信息赋予多个矢量的绝对值矢量,得到多个矢量;根据多个矢量恢复出待编码系数。该解码装置2具体可以通过本发明图19至图22所示任一实施例的编码装置实现。
图25为本发明通信系统另一个实施例的结构示意图。如图25所示,该实施例的通信系统包括编码系统3与解码系统4。其中编码系统3包括:算术编码编码器11、编码装置12、第一接收装置13、统计装置14、比较装置15与传送装置16。其中,第一接收装置13用于接收当前帧输入数据的待编码系数,并分别发送给算术编码编码器11与编码装置12。算术编码编码器11用于编码当前帧输入数据的待编码系数,得到第二码流。编码装置12用于编码当前帧输入数据的待编码系数,得到第一码流,其具体可以通过本发明上述图13至17任一实施例的编码装置实现。统计装置14用于统计采用编码装置12编码当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用算术编码编码器11编码当前帧输入数据的待编码系数所需的第二总比特数。比较装置15用于比较第一总比特数是否大于第二总比特数。传送装置16用于根据比较装置15的比较结果,在第一总比特数小于第二总比特数时,在第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给解码系统4,具体地,可以传送给解码系统4中的第二接收装置23,其中的第一标识用于标识第一比特流为第一码流;在第一总比特数大于第二总比特数时,在第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给解码系统4,具体地,可以传送给解码系统4中的第二接收装置23,其中的第二标识用于标识第二比特流为第二码流;在第一总比特数等于第二总比特数时,根据预先设置,选择第一码流或算术编码码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给解码系统4,具体地,可以传送给解码系统4中的第二接收装置23。
解码系统4包括:算术编码解码器21、解码装置22、第二接收装置23、识别装置24与解码处理装置25。其中,第二接收装置23用于接收传送装置16发送的比特流,该比特流为第一比特流或第二比特流,其中,第一比特流中包括第一标识与第一码流,第二比特流中包括第二标识与第二码流。识别装置24用于根据比特流中包括第一标识或第二标识,识别第二接收装置23接收到的比特流为第一比特流或第二比特流。解码处理装置25用于根据识别装置24的识别结果,在比特流为第一比特流时,指示解码装置22对第一码流进行解码;在比特流为第二比特流时,指示算术编码解码器21对第二码流进行解码。算术编码解码器21用于对第二码流进行解码,恢复出当前帧数据的待编码系数,解码装置22用于对第一码流进行解码,恢复出当前帧数据的待编码系数。
作为本发明的一个应用,可以以本发明上述实施例提供的任一编码装置代替图1中的AC编码器,以本发明上述实施例提供的任一解码装置代替图2中的AC解码器。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例可以由预设时段内的使用概率大于预设值的矢量组成基础码本,接收到待编码系数后,可以将待编码系数分解成多个矢量,依次获取基础码本中与多个矢量匹配的码字在基础码本中的位置索引,并对该位置索引进行编码,因此,编码装置中仅仅需要存储基础码本,不需要存储有矢量及其之间的相关性,节省了编码相同矢量所需占用的编码装置存储空间;并且,由于仅仅需要对位置索引进行编码,减少了待编码的数据量与编码所需的比特数,缩短了编码时间,提高了编码效率。如下表4所示,为采用本发明图10所示实施例进行编码时的一个编码效率提升结果实例。
表4 编码效率提升结果实例
根据上述表4可知,采用本发明所示实施例的BC编码方法编码的帧数大于采用AC编码方法编码的帧数,尤其是在码率为20kbps和24kbps时。实验结果表明,采用本发明图10所示实施例进行编码后,编码效率至少提高2%以上。
最后所应说明的是:以上实施例仅用以说明本发明的技术方案,而非对本发明作限制性理解。尽管参照上述较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这种修改或者等同替换并不脱离本发明技术方案的精神和范围。
Claims (40)
1.一种编码方法,其特征在于,包括:
对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;
依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;
将所述多个子码流进行合并,得到矢量码流;
对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流。
2.根据权利要求1所述的方法,其特征在于,对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流包括:
去除所述待编码系数中的符号信息,获得绝对值系数,将该绝对值系数分解为维数相同的多个绝对值矢量,依次计算所述多个绝对值矢量中最大分量的位平面级数并进行编码,获得边信息码流,并对所述符号信息进行编码,获得符号码流,所述多个矢量为所述多个绝对值矢量;或者
将所述待编码系数分解为维数相同的多个目标矢量;依次计算所述多个目标矢量中最大分量的位平面级数并进行编码,获得边信息码流,所述多个矢量为所述多个目标矢量;分别去除所述多个目标矢量中的符号信息,获得多个绝对值矢量,并对所述符号信息进行编码,获得符号码流。
3.根据权利要求2所述的方法,其特征在于,还包括:
针对当前帧输入数据的待编码系数,分别执行所述对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流的操作,并在得到所述第一码流后,统计编码所述当前帧输入数据的待编码系数所需的第一总比特数;以及采用算术编码编码器编码所述当前帧输入数据的待编码系数,得到第二码流,并统计采用算术编码编码器编码所述当前帧输入数据的待编码系数所需的第二总比特数;
比较所述第一总比特数是否大于所述第二总比特数;
若所述第一总比特数小于所述第二总比特数,则在所述第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给接收端,所述第一标识用于标识所述第一比特流为第一码流;
若所述第一总比特数大于所述第二总比特数,则在所述第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给接收端,所述第二标识用于标识所述第二比特流为第二码流;
若所述第一总比特数等于所述第二总比特数,则根据预先设置,选择第一码流或第二码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,形成第一比特流或第二比特流,并
将形成的第一比特流或第二比特流传送给接收端。
4.根据权利要求1、2或3所述的方法,其特征在于,所述依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到子码流包括:
依次以所述多个矢量中的每一个矢量作为当前矢量,查询基础码本中是否存在与所述当前矢量匹配的码字;
若基础码本中存在与所述当前矢量匹配的码字,对该码字在基础码本中的位置索引进行编码,得到所述子码流,所述位置索引中包括一个编码方式标识;
若基础码本中不存在与所述当前矢量匹配的码字,对所述当前矢量进行单独编码,并在编码获得的码流的起始位置设置一个编码方式标识,得到所述子码流;
所述编码方式标识用于标识所述子码流为对位置索引进行编码或对所述当前矢量进行单独编码的编码方式。
5.根据权利要求4所述的方法,其特征在于,所述基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数;
所述查询基础码本中是否存在与所述当前矢量匹配的码字包括:对所述当前矢量进行多进制求和,获得唯一标识所述当前矢量的矢量标识;查询所述基础码本中是否存在与所述矢量标识相同的码字标识;
所述对该码字在基础码本中的位置索引进行编码包括:获取与所述矢量标识相同的码字标识对应的位置索引与比特数,并以该比特数对所述位置索引进行编码。
6.根据权利要求4所述的方法,其特征在于,所述基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量;所述基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在所述各码本块的同一个码本块中,编码各码字所需的比特数相同;
所述查询基础码本中是否存在与所述当前矢量匹配的码字包括:对所述当前矢量进行多进制求和,获得唯一标识所述当前矢量的矢量标识;查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和;
若基础码本中存在与所述当前矢量匹配的码字,对该码字在基础码本中的位置索引进行编码包括:若所述多进制和列表中存在与所述矢量标识相同的多进制和,则获取与所述矢量标识相同的多进制和在所述多进制和列表中的位置序号;根据各码本块中的码字数量,确定所述位置序号所在的码本块以及在该码本块中的位置与该码本块中首码字的位置之差;根据所述位置之差与所在的码本块中首码字的位置索引,确定所述多进制和对应的位置索引;根据编码各码本块中各码字的位置索引所需的比特数,获取编码所述多进制和对应的位置索引所需的比特数,并以该比特数编码所述多进制和对应的位置索引。
7.根据权利要求1、2或3所述的方法,其特征在于,所述依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码包括:
依次以所述多个矢量中的每一个矢量作为当前矢量,根据所述当前矢量中最大分量的位平面级数,对所述当前矢量进行级数分解,将所述当前矢量分解为一个以上分矢量,该一个以上的分矢量包括高位平面矢量;
针对所述当前矢量分解得到的一个以上分矢量,依次以每一个分矢量作为当前分矢量,查询基础码本中是否存在与所述当前分矢量匹配的码 字;
若基础码本中存在与所述当前分矢量匹配的码字,对该码字在基础码本中的位置索引进行编码,得到分矢量码流,所述位置索引中包括一个编码方式标识;
若基础码本中不存在与所述当前分矢量匹配的码字,对所述当前分矢量进行单独编码,并在编码获得的码流的起始位置设置一个编码方式标识,得到分矢量码流;
所述编码方式标识用于标识所述分矢量码流为对位置索引进行编码或对所述当前分矢量进行单独编码的编码方式;
将所述一个以上分矢量编码得到的分矢量码流进行合并,得到所述当前矢量的子码流。
8.根据权利要求7所述的方法,其特征在于,所述一个以上分矢量还包括低位平面矢量;
所述高位平面矢量为谐波矢量,所述低位平面矢量为单位脉冲矢量;
所述依次以所述多个矢量中的每一个矢量作为所述当前矢量包括:按照所述分矢量中最大分量的位平面级数由高到低的顺序,依次以所述谐波矢量与所述单位脉冲矢量作为所述当前矢量;
将所述一个以上分矢量编码得到的分矢量码流进行合并包括:按照所述分矢量中最大分量的位平面级数由高到低的顺序,将所述谐波矢量编码得到的高位码流与所述单位脉冲矢量编码得到的低位码流进行合并,所述分矢量码流包括所述高位码流与所述低位码流。
9.根据权利要求8所述的方法,其特征在于,根据所述当前矢量中最大分量的位平面级数,对所述当前矢量进行级数分解包括:对最大分量的位平面级数大于3的当前矢量进行级数分解。
10.根据权利要求9所述的方法,其特征在于,对最大分量的位平面级数大于3的当前矢量进行级数分解包括:提取所述当前矢量中高3位平面的分量作为谐波矢量,将提取高3位平面的分量后的每一级位平面作为一个单位脉冲矢量。
11.根据权利要求7所述的方法,其特征在于,所述基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码 该位置索引所需的比特数;
查询基础码本中是否存在与所述当前分矢量匹配的码字包括:对所述当前分矢量进行多进制求和,获得唯一标识所述当前分矢量的矢量标识;查询所述基础码本中是否存在与所述矢量标识相同的码字标识;
所述对该码字在基础码本中的位置索引进行编码包括:获取与所述矢量标识相同的码字标识对应的位置索引与比特数,并以该比特数对所述位置索引进行编码。
12.根据权利要求11所述的方法,其特征在于,所述一个以上分矢量还包括低位平面矢量;
所述高位平面矢量为谐波矢量,所述低位平面矢量为单位脉冲矢量;
对所述当前分矢量进行多进制求和包括:对最大分量的位平面级数为1的谐波矢量和单位脉冲矢量进行二进制求和,对最大分量的位平面级数为2的谐波矢量进行四进制求和,对最大分量的位平面级数为3的谐波矢量进行八进制求和。
13.根据权利要求11所述的方法,其特征在于,所述基础码本包括按照对应的矢量在预设时段内的使用概率大小划分的M个子码本,所述M个子码本按照在所述预设时段内的使用概率由大到小的顺序排列,M为大于1的整数;
查询所述基础码本中是否存在与所述矢量标识相同的码字标识包括:针对所述M个子码本中的第1个子码本,查询是否存在与所述矢量标识相同的码字标识;若存在,则执行所述获取与所述矢量标识相同的码字标识对应的位置索引与比特数的操作;若不存在,以下一个子码本作为第1个子码本,执行所述查询是否存在与所述矢量标识相同的码字标识的操作,所述下一个小于或等于M。
14.根据权利要求7所述的方法,其特征在于,所述基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量;所述基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在所述各码本块的同一个码本块中,编码各码字所需的比特数相同;
所述查询基础码本中是否存在与所述当前分矢量匹配的码字包括:对所述当前分矢量进行多进制求和,获得唯一标识所述当前分矢量的矢量标识;查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和;
若基础码本中存在与所述当前分矢量匹配的码字,对该码字在基础码本中的位置索引进行编码包括:若所述多进制和列表中存在与所述矢量标识相同的多进制和,则获取与所述矢量标识相同的多进制和在所述多进制和列表中的位置序号;根据各码本块中的码字数量,确定所述位置序号所在的码本块以及在该码本块中的位置与该码本块中首码字的位置之差;根据该位置之差与所在的码本块中首码字的位置索引,确定所述多进制和对应的位置索引;根据编码各码本块中各码字的位置索引所需的比特数,获取编码所述多进制和对应的位置索引所需的比特数,并以该比特数编码所述多进制和对应的位置索引。
15.根据权利要求14所述的方法,其特征在于,对所述当前分矢量进行多进制求和包括:
对最大分量的位平面级数为1的谐波矢量和单位脉冲矢量进行二进制求和,对最大分量的位平面级数为2的谐波矢量进行四进制求和,对最大分量的位平面级数为3的谐波矢量进行八进制求和。
16.根据权利要求14所述的方法,其特征在于,所述基础码本包括按照对应的矢量在预设时段内的使用概率大小划分的M个子码本,所述M个子码本按照在所述预设时段内的使用概率由大到小的顺序排列,M为大于1的整数;
查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和包括:针对所述M个子码本中的第1个子码本,查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和;若存在,则执行所述获取与所述矢量标识相同的多进制和在所述多进制和列表中的位置序号的操作;若不存在,以下一个子码本作为第1个子码本,执行所述查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和的操作,所述下一个小于或等于M。
17.一种解码方法,其特征在于,包括:
接收第一码流,该第一码流包括边信息码流、矢量码流与符号码流,所述矢量码流包括对应于多个矢量的子码流;
对所述边信息码流进行解码,分别获得所述多个矢量中最大分量的位平面级数;
分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;
根据所述位置索引,分别获取所述多个矢量的绝对值矢量;
解码所述符号码流,得到所述多个矢量的符号信息;
分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;
根据所述多个矢量恢复出待编码系数。
18.根据权利要求17所述的方法,其特征在于,所述基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数;
根据所述位置索引,分别获取所述多个矢量的绝对值矢量包括:分别从所述基础码本中获取与所述多个矢量匹配的码字在所述基础码本中的位置索引对应的多个码字标识;分别以所述多个码字标识作为矢量标识,获取相应的绝对值矢量,所述矢量标识为一个绝对值矢量进行多进制求和后获得的唯一标识所述绝对值矢量的标识。
19.根据权利要求17所述的方法,其特征在于,所述基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量;所述基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在所述各码本块的同一个码本块中,编码各码字所需的比特数相同;
对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引包括:
针对每一个子码流,以第一码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第一比特数,从所述多个子码流中读取该第一比特数的数据,得到第一数值,以及根据当前码本块中首码字的位置 索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引;
比较所述第一数值是否大于最后一个码字的位置索引的大小;
若不大于所述最后一个码字的位置索引的大小,则获取第一数值与当前码本块中首码字的位置索引之差的第一差值,并以该第一差值作为在当前码本块中的相对位置,从所述多进制和列表中获取所述第一数值对应的多进制和;
若大于所述最后一个码字的位置索引的大小,则以所述当前码本块的下一个码本块作为当前码本块,获取编码作为下一个码本块的当前码本块中各码字的位置索引所需的第二比特数,并计算所述第二比特数与所述第一比特数之差的第二差值;从所述多个子码流中再读取所述第二差值比特数的数据,并与所述第一数值形成第二数值,并以该第二数值作为第一数值,执行所述根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引的操作;
根据所述位置索引,分别获取所述多个矢量的绝对值矢量包括:按照多进制减法,获取与所述第一数值对应的多进制和相应的绝对值矢量。
20.根据权利要求19所述的方法,其特征在于,所述子码流中包括编码方式标识,所述编码方式标识用于标识所述子码流为对位置索引进行编码或对所述绝对值矢量进行单独编码的编码方式;
分别获得所述多个矢量中最大分量的位平面级数之后,还包括:识别所述子码流中编码方式标识所标识的编码方式;若所标识的编码方式为对位置索引进行编码,则执行所述分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码操作;若所标识的编码方式为对所述绝对值矢量进行单独编码,则根据所述绝对值矢量中最大分量的位平面级数对应的解码方式,直接对所述子码流进行解码,获得所述绝对值矢量。
21.根据权利要求19所述的方法,其特征在于,所述子码流包括编码方式标识与一个以上分矢量编码得到的一个以上分矢量码流,所述一个以上的分矢量由根据所述绝对值矢量中最大分量的位平面级数对所述绝对值矢量进行级数分解得到,所述一个以上的分矢量包括高位平面矢量;所述编码方式标识用于标识所述分矢量码流为对位置索引进行编码或对 所述分矢量进行单独编码的编码方式;所述多个矢量为多个绝对值矢量;
分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引包括:
依次以所述多个绝对值矢量中每一个绝对值矢量的最大分量的位平面级数作为当前位平面级数,根据所述当前位平面级数,识别所述绝对值矢量对应的所述一个以上分矢量码流;
依次以所述一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流,识别所述当前分矢量码流中编码方式标识所标识的编码方式;
若所标识的编码方式为对位置索引进行编码,从所述基础码本中获取与所述当前分矢量匹配的码字在所述基础码本中的位置索引;以所述位置索引作为矢量标识,获取所述矢量标识对应的当前分矢量,所述矢量标识为当前分矢量进行多进制求和后获得的唯一标识所述当前分矢量的标识;
若所标识的编码方式为对所述当前分矢量进行单独编码,则直接对所述当前分矢量进行解码,获得所述当前分矢量;
根据所述位置索引,分别获取所述多个矢量的绝对值矢量包括:对所述一个以上分矢量码流解码获得的一个以上分矢量进行合成,得到所述绝对值矢量。
22.根据权利要求21所述的方法,其特征在于,所述一个以上分矢量还包括低位平面矢量;所述高位平面矢量为谐波矢量,所述低位平面矢量为单位脉冲矢量;所述谐波矢量编码得到的分矢量码流为高位码流,所述单位脉冲矢量编码得到的分矢量码流为低位码流,所述一个以上分矢量码流包括所述高位码流与所述低位码流,所述高位码流与所述低位码流按照对应的分矢量中最大分量的位平面级数由高到低的顺序排列;
依次以所述一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流包括:按照对应的分矢量中最大分量的位平面级数由高到低的顺序,依次以高位码流、低位码流作为当前分矢量码流。
23.根据权利要求17至22任意一项所述的方法,其特征在于,还包括:
接收比特流,所述比特流为第一比特流或第二比特流,所述第一比特 流中包括第一标识与第一码流,所述第二比特流中包括第二标识与第二码流;
根据所述比特流中包括第一标识或第二标识,识别所述比特流为第一比特流或第二比特流;
若所述比特流为第一比特流,针对所述第一比特流中的码流,执行对所述边信息码流进行解码的操作,恢复出当前帧数据的待编码系数;
若所述比特流为第二比特流,针对所述第二比特流中的码流,采用算术编码解码器对所述第二比特流中的第二码流进行解码,恢复出当前帧数据的待编码系数。
24.一种编码装置,其特征在于,包括:
第一编码模块,用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;
第二编码模块,用于依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;
第一合并模块,用于将所述多个子码流进行合并,得到矢量码流;
第二合并模块,用于对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流。
25.根据权利要求24所述的编码装置,其特征在于,所述第一编码模块包括:
第一去除单元,用于去除所述待编码系数中的符号信息,获得绝对值系数;
第一分解单元,用于将所述绝对值系数分解为维数相同的多个绝对值矢量,所述多个矢量为所述多个绝对值矢量;
第一编码单元,用于依次计算所述多个绝对值矢量中最大分量的位平面级数并进行编码,获得边信息码流,并对所述符号信息进行编码,获得符号码流;
或者,所述第一编码模块包括:
第二分解单元,用于将所述待编码系数分解为维数相同的多个目标矢 量,所述多个矢量为所述多个目标矢量;
第二编码单元,用于依次计算所述多个目标矢量中最大分量的位平面级数并进行编码,获得边信息码流;
第二去除单元,用于分别去除所述多个目标矢量中的符号信息,获得多个绝对值矢量;
第三编码单元,用于对所述符号信息进行编码,获得符号码流。
26.根据权利要求25所述的编码装置,其特征在于,所述第二编码模块包括:
查询单元,用于以所述多个矢量中的第一个矢量作为当前矢量,查询基础码本中是否存在与所述当前矢量匹配的码字;
第四编码单元,用于根据所述查询单元的查询结果,在基础码本中存在与所述当前矢量匹配的码字时,对该码字在基础码本中的位置索引进行编码,得到所述子码流,所述位置索引中包括一个编码方式标识;在基础码本中不存在与所述当前矢量匹配的码字,对所述当前矢量进行单独编码,并在单独编码获得的码流的起始位置设置一个编码方式标识,得到所述子码流,所述编码方式标识用于标识所述子码流为对位置索引进行编码或所述当前矢量进行单独编码的编码方式;
设置单元,用于指示所述查询单元以所述多个矢量中所述当前矢量的下一个矢量作为当前矢量,查询基础码本中是否存在与作为当前矢量的下一个矢量匹配的码字。
27.根据权利要求26所述的编码装置,其特征在于,所述第二编码模块还包括:
第一获取单元,用于以所述多个矢量中的第一个矢量作为当前矢量,获取所述当前矢量中最大分量的位平面级数;
分解单元,用于根据所述当前矢量中最大分量的位平面级数,对所述当前矢量进行级数分解,将所述当前矢量分解为一个以上分矢量,该一个以上的分矢量包括高位平面矢量;
所述查询单元具体用于以所述一个以上分矢量中的第一个分矢量作为当前分矢量,查询基础码本中是否存在与所述当前分矢量匹配的码字;
所述第四编码单元具体用于根据所述查询单元的查询结果,在基础码 本中存在与所述当前分矢量匹配的码字时,对该码字在基础码本中的位置索引进行编码,得到分矢量码流,所述位置索引中包括一个编码方式标识;在基础码本中不存在与所述当前分矢量匹配的码字时,对所述当前分矢量进行单独编码,并在编码获得的码流的起始位置设置一个编码方式标识,得到分矢量码流;
所述设置单元具体用于指示所述查询单元以所述一个以上分矢量中所述当前分矢量的下一个分矢量作为当前分矢量,查询基础码本中是否存在与作为当前分矢量的下一个分矢量匹配的码字;
合并单元,用于根据所述设置单元的指示,在所述第四编码单元得到所述一个以上分矢量中最后一个分矢量对应的分矢量码流时,将所述一个以上分矢量编码得到的分矢量码流进行合并,得到所述当前矢量的子码流。
28.根据权利要求24至27任意一项所述的编码装置,其特征在于,还包括:
第一存储模块,用于存储所述基础码本,所述基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数;
所述查询单元具体用于对所述当前矢量或所述当前分矢量进行多进制求和,获得唯一标识所述当前矢量或所述当前分矢量的矢量标识,并查询所述基础码本中是否存在与所述矢量标识相同的码字标识;
所述第四编码单元具体用于根据所述查询单元的查询结果,在基础码本中存在与所述矢量标识相同的码字标识时,获取与所述码字标识对应的比特数,并以该比特数对所述位置索引进行编码。
29.根据权利要求24至27任意一项所述的编码装置,其特征在于,还包括:
第二存储模块,用于存储所述基础码本,所述基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量;所述基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码 本块,在所述各码本块的同一个码本块中,编码各码字所需的比特数相同;
所述查询单元具体用于对所述当前矢量或所述当前分矢量进行多进制求和,获得唯一标识所述当前矢量或所述当前分矢量的矢量标识,并查询所述多进制列表中是否存在与所述矢量标识相同的多进制和;
所述第四编码单元具体用于根据所述查询单元的查询结果,在所述多进制列表中存在与所述矢量标识相同的多进制和时,获取与所述矢量标识相同的多进制和在所述多进制和列表中的位置序号;根据各码本块中的码字数量,确定所述位置序号所在的码本块以及在该码本块中的位置与该码本块中首码字的位置之差;根据所述位置之差与所在的码本块中首码字的位置索引,确定所述多进制和对应的位置索引;根据编码各码本块中各码字的位置索引所需的比特数,获取编码所述多进制和对应的位置索引所需的比特数,并以该比特数编码所述多进制和对应的位置索引。
30.根据权利要求29所述的编码装置,其特征在于,所述基础码本包括按照对应的矢量在预设时段内的使用概率大小划分的M个子码本,所述M个子码本按照在所述预设时段内的使用概率由大到小的顺序排列,M为大于1的整数;
所述查询单元具体用于针对所述M个子码本中的第1个子码本,查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和;若存在,则执行所述获取与所述矢量标识相同的多进制和在所述多进制和列表中的位置序号的操作;若不存在,以下一个子码本作为第1个子码本,执行所述查询所述多进制和列表中是否存在与所述矢量标识相同的多进制和的操作,所述下一个小于或等于M。
31.一种编码系统,包括算术编码编码器,用于编码当前帧输入数据的待编码系数,得到第二码流,其特征在于,还包括权利要求24-30任意一项所述的编码装置,用于编码所述当前帧输入数据的待编码系数,得到第一码流;以及
第一接收装置,用于接收所述当前帧输入数据的待编码系数,并分别发送给所述算术编码编码器与所述编码装置;
统计装置,用于统计采用所述编码装置编码所述当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用所述算术编码编码器编码所述当前帧输入数据的待编码系数所需的第二总比特数;
比较装置,用于比较所述第一总比特数是否大于所述第二总比特数;
传送装置,用于根据所述比较装置的比较结果,在所述第一总比特数小于所述第二总比特数时,在所述第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给接收端,所述第一标识用于标识所述第一比特流;在所述第一总比特数大于所述第二总比特数时,在所述第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给接收端,所述第二标识用于标识所述第二比特码流;在所述第一总比特数等于所述第二总比特数时,根据预先设置,选择所述第一码流或所述第二码流,并在选择的所述第一码流或所述第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给接收端。
32.一种解码装置,其特征在于,包括:
第二接收模块,用于接收第一码流,该第一码流包括边信息码流、矢量码流与符号码流,所述矢量码流包括对应于多个矢量的子码流;
第一解码模块,用于对所述边信息码流进行解码,分别获得所述多个矢量中最大分量的位平面级数;
第二解码模块,用于分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;
第一获取模块,用于根据所述位置索引,分别获取所述多个矢量的绝对值矢量;
第三解码模块,用于解码所述符号码流,得到所述多个矢量的符号信息;
第二获取模块,用于分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;
恢复模块,用于根据所述多个矢量恢复出待编码系数。
33.根据权利要求32所述的解码装置,其特征在于,还包括第一存储模块,用于存储所述基础码本,所述基础码本包括:唯一标识一个码字的码字标识、该码字在基础码本中的位置索引以及编码该位置索引所需的比特数;
所述第一获取模块包括:
第二获取单元,用于分别从所述基础码本中获取与所述多个矢量匹配的码字在所述基础码本中的位置索引对应的多个码字标识;
第三获取单元,用于以所述多个码字标识作为矢量标识,获取相应的绝对值矢量,所述矢量标识为一个绝对值矢量进行多进制求和后获得的唯一标识所述绝对值矢量的标识。
34.根据权利要求32所述的解码装置,其特征在于,还包括第二存储模块,用于存储所述基础码本,所述基础码本包括:按照编码各矢量匹配的码字在基础码本中的位置索引所需的比特数大小依次排列的矢量的多进制和列表、各码本块中首码字的位置索引、编码各码本块中各码字的位置索引所需的比特数与各码本块中的码字数量;所述基础码本按照编码码字的位置索引所需的比特数大小被划分成依次排列的各码本块,在所述各码本块的同一个码本块中,编码各码字所需的比特数相同;
所述第二解码模块具体用于分别根据所述多个矢量中最大分量的位平面级数,针对每一个子码流,以第一码本块作为当前码本块,获取编码当前码本块中各码字的位置索引所需的第一比特数,从所述多个子码流中读取该第一比特数的数据,得到第一数值,以及根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引;比较所述第一数值是否大于最后一个码字的位置索引的大小;若不大于所述最后一个码字的位置索引的大小,则获取第一数值与当前码本块中首码字的位置索引之差的第一差值,并以该第一差值作为在当前码本块中的相对位置,从所述多进制和列表中获取所述第一数值对应的多进制和;若大于所述最后一个码字的位置索引的大小,则以作为下一个码本块的当前码本块的下一个码本块作为当前码本块,获取编码所述当前码本块中各码字的位置索引所需的第二比特数,并计算所述第二比特数与所述第一比特数之差的第二差值;从所述多个子码流中再读取所述第二差值比特数的数据,并与所述第一数值形成第二数值,并以该第二数值作为第一数值,执行所述根据当前码本块中首码字的位置索引与当前码本块中的码字数量确定当前码本块中最后一个码字的位置索引的操作;
所述第一获取模块具体用于按照多进制减法,获取与所述第一数值对 应的多进制和相应的绝对值矢量。
35.根据权利要求34所述的解码装置,其特征在于,所述子码流中包括编码方式标识,所述编码方式标识用于标识所述子码流为对位置索引进行编码或对所述绝对值矢量进行单独编码的编码方式;
所述解码装置还包括:
识别模块,用于识别所述子码流中编码方式标识所标识的编码方式;
解码处理模块,用于根据所述识别模块的识别结果,在所标识的编码方式为对位置索引进行编码时,指示所述第二解码模块依次对所述多个子码流进行解码;在所标识的编码方式为对所述绝对值矢量进行单独编码时,根据所述绝对值矢量中最大分量的位平面级数对应的解码方式,直接对所述子码流进行解码,获得所述绝对值矢量。
36.根据权利要求32所述的解码装置,其特征在于,所述子码流包括编码方式标识与一个以上分矢量编码得到的一个以上分矢量码流,所述一个以上的分矢量由根据所述绝对值矢量中最大分量的位平面级数对所述绝对值矢量进行级数分解得到,所述一个以上的分矢量包括高位平面矢量;所述编码方式标识用于标识所述分矢量码流为对位置索引进行编码或对所述分矢量进行单独编码的编码方式;所述多个矢量为多个绝对值矢量;
所述第二解码模块包括:
第一识别单元,用于依次以所述多个绝对值矢量中每一个绝对值矢量的最大分量的位平面级数作为当前位平面级数,根据所述当前位平面级数,识别所述绝对值矢量对应的所述一个以上分矢量码流;
第二识别单元,用于依次以所述一个以上分矢量码流中的一个分矢量码流作为当前分矢量码流,识别所述当前分矢量码流中编码方式标识所标识的编码方式;
第四获取单元,用于根据所述第二识别单元的识别结果,在所标识的编码方式为对位置索引进行编码时,从所述基础码本中获取与所述当前分矢量匹配的码字在所述基础码本中的位置索引,以所述位置索引作为矢量标识,获取所述矢量标识对应的当前分矢量,所述矢量标识为当前分矢量进行多进制求和后获得的唯一标识所述当前分矢量的标识;在所标识的编 码方式为对所述当前分矢量进行单独编码时,直接对所述当前分矢量进行解码,获得所述当前分矢量;
所述第一获取模块具体用于对所述第四获取单元获得的一个以上分矢量进行合成,得到所述绝对值矢量。
37.根据权利要求36所述的解码装置,其特征在于,所述一个以上分矢量还包括低位平面矢量;所述高位平面矢量为谐波矢量,所述低位平面矢量为单位脉冲矢量;所述谐波矢量编码得到的分矢量码流为高位码流,所述单位脉冲矢量编码得到的分矢量码流为低位码流,所述一个以上分矢量码流包括所述高位码流与所述低位码流,所述高位码流与所述低位码流按照对应的分矢量中最大分量的位平面级数由高到低的顺序排列;
所述第二识别单元具体用于按照对应的分矢量中最大分量的位平面级数由高到低的顺序,依次以高位码流、低位码流作为当前分矢量码流,识别所述当前分矢量码流中编码方式标识所标识的编码方式。
38.一种解码系统,包括算术编码解码器,用于对第二码流进行解码,恢复出当前帧数据的待编码系数,其特征在于,还包括权利要求32-37任意一项所述的解码装置,用于对第一码流进行解码,恢复出当前帧数据的待编码系数;以及
第二接收装置,用于接收比特流,所述比特流为第一比特流或第二比特流,所述第一比特流中包括第一标识与所述第一码流,所述第二比特流中包括第二标识与所述第二码流;
识别装置,用于根据所述比特流中包括第一标识或第二标识,识别所述比特流为第一比特流或第二比特流;
解码处理装置,用于根据所述识别装置的识别结果,在所述比特流为第一比特流时,指示所述解码装置对所述第一码流进行解码;在所述比特流为第二比特流时,指示所述算术编码解码器对所述第二码流进行解码。
39.一种通信系统,包括编码装置与解码装置,其特征在于,所述编码装置用于对获得的待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基 础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将所述多个子码流进行合并,得到矢量码流;对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流并传送给所述解码装置;
所述解码装置用于接收第一码流;对所述边信息码流进行解码,获得所述多个矢量中最大分量的位平面级数;分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;根据所述位置索引,分别获取所述多个矢量的绝对值矢量;解码所述符号码流,得到所述多个矢量的符号信息;分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;根据所述多个矢量恢复出待编码系数。
40.一种通信系统,包括编码系统与解码系统,其特征在于,所述编码系统包括:
第一接收装置,用于接收当前帧输入数据的待编码系数,并分别发送给算术编码编码器与编码装置;
算术编码编码器,用于编码当前帧输入数据的待编码系数,得到第二码流;
编码装置,用于接收待编码系数;对所述待编码系数中的符号信息进行编码,获得符号码流,以及分别对所述待编码系数分解成的多个矢量中最大分量的位平面级数进行编码,获得边信息码流;依次获取基础码本中与所述多个矢量匹配的码字在所述基础码本中的位置索引并进行编码,得到多个子码流,所述基础码本中码字对应的矢量在预设时段内的使用概率大于预设值;将所述多个子码流进行合并,得到矢量码流;对所述边信息码流、所述矢量码流与所述符号码流进行合并,得到第一码流;
统计装置,用于统计采用所述编码装置编码所述当前帧输入数据的待编码系数所需的第一总比特数,以及统计采用所述算术编码编码器编码所述当前帧输入数据的待编码系数所需的第二总比特数;
比较装置,用于比较所述第一总比特数是否大于所述第二总比特数;
传送装置,用于根据所述比较装置的比较结果,在所述第一总比特数小于所述第二总比特数时,在所述第一码流的起始位置设置第一标识,形成第一比特流,并将该第一比特流传送给所述解码系统,所述第一标识用 于标识所述第一比特流为第一码流;在所述第一总比特数大于所述第二总比特数时,在所述第二码流的起始位置设置第二标识,形成第二比特流,并将该第二比特流传送给所述解码系统,所述第二标识用于标识所述第二比特流为第二码流;在所述第一总比特数等于所述第二总比特数时,根据预先设置,选择第一码流或第二码流,并在选择的第一码流或第二码流的起始位置相应设置第一标识或第二标识,并将形成的第一比特流或第二比特流传送给所述解码系统;
所述解码系统包括:
第二接收装置,用于接收所述传送装置传送的比特流,所述比特流为第一比特流或第二比特流;
识别装置,用于根据所述比特流中包括第一标识或第二标识,识别所述比特流为第一比特流或第二比特流;
解码处理装置,用于根据所述识别装置的识别结果,在所述比特流为第一比特流时,指示解码装置对所述第一码流进行解码;在所述比特流为第二比特流时,指示算术编码解码器对所述第二码流进行解码;
算术编码解码器,用于对所述第二码流进行解码,恢复出当前帧数据的待编码系数;
解码装置,用于接收所述第一码流;对所述边信息码流进行解码,获得所述多个矢量中最大分量的位平面级数;分别根据所述多个矢量中最大分量的位平面级数,对所述多个子码流进行解码,得到基础码本中分别与所述多个矢量匹配的码字在所述基础码本中的位置索引;根据所述位置索引,分别获取所述多个矢量的绝对值矢量;解码所述符号码流,得到所述多个矢量的符号信息;分别将所述多个矢量的符号信息赋予所述多个矢量的绝对值矢量,得到所述多个矢量;根据所述多个矢量恢复出待编码系数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2009/072670 WO2011003233A1 (zh) | 2009-07-07 | 2009-07-07 | 编码方法、装置与系统、解码方法、装置与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102422541A CN102422541A (zh) | 2012-04-18 |
CN102422541B true CN102422541B (zh) | 2013-12-04 |
Family
ID=43428732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801590126A Active CN102422541B (zh) | 2009-07-07 | 2009-07-07 | 编码方法、装置与系统、解码方法、装置与系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102422541B (zh) |
WO (1) | WO2011003233A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107888246B (zh) | 2016-09-29 | 2023-04-28 | 华为技术有限公司 | 基于码本的信道状态信息反馈方法及设备 |
CN110262209B (zh) * | 2019-06-03 | 2020-06-26 | 中国科学技术大学 | 基于fpga的时间数字变换器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US5359606A (en) * | 1992-02-12 | 1994-10-25 | Storage Technology Corporation | Data quality analysis in a data signal processing channel |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2405560B (en) * | 2003-08-27 | 2006-05-03 | Matsushita Electric Ind Co Ltd | Vector quantization |
CN101266795B (zh) * | 2007-03-12 | 2011-08-10 | 华为技术有限公司 | 一种格矢量量化编解码的实现方法及装置 |
CN100583649C (zh) * | 2007-07-23 | 2010-01-20 | 华为技术有限公司 | 矢量编/解码方法、装置及流媒体播放器 |
-
2009
- 2009-07-07 CN CN2009801590126A patent/CN102422541B/zh active Active
- 2009-07-07 WO PCT/CN2009/072670 patent/WO2011003233A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN85103579A (zh) * | 1985-05-08 | 1986-11-05 | 索尼公司 | 纠错码的译码方法和系统 |
US5359606A (en) * | 1992-02-12 | 1994-10-25 | Storage Technology Corporation | Data quality analysis in a data signal processing channel |
Also Published As
Publication number | Publication date |
---|---|
CN102422541A (zh) | 2012-04-18 |
WO2011003233A1 (zh) | 2011-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067022B (zh) | 一种整型数据无损压缩方法、解压缩方法及装置 | |
CA2730202C (en) | Method for encoding a symbol using subsymbols and multiple codebooks | |
CN102368385B (zh) | 后向块自适应Golomb-Rice编解码方法及装置 | |
CN1787383B (zh) | 变换、编码、逆变换和解码音频信号的方法和设备 | |
CN103873877A (zh) | 远程桌面的图像传输方法及装置 | |
CN1675842B (zh) | 算术编码的方法、设备以及相应解码方法 | |
CN115883670B (zh) | 一种医疗数据分析采集方法及装置 | |
US7148821B2 (en) | System and method for partition and pattern-match decoding of variable length codes | |
US20140006036A1 (en) | Method and apparatus for coding and decoding | |
CN110720222A (zh) | 用于数字数据压缩的方法和设备 | |
US6121905A (en) | Method and apparatus for decoding JPEG symbols | |
EP1943648A1 (en) | Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor | |
EP3469711B1 (en) | Encoders, decoders and methods utilizing mode symbols | |
CN102422541B (zh) | 编码方法、装置与系统、解码方法、装置与系统 | |
CN104380733A (zh) | 视频量化参数编码方法、视频量化参数解码方法、设备、以及程序 | |
CN101304254A (zh) | 矢量编/解码方法、装置及流媒体播放器 | |
CN102547260A (zh) | 基于上下文自适应的可变长编码的解码方法及系统 | |
US7683809B2 (en) | Advanced lossless bit coding | |
KR101700537B1 (ko) | 이진데이터 압축 및 압축해제 방법 | |
CN104318926B (zh) | 基于IntMDCT的无损音频编码方法、解码方法 | |
CN108391134B (zh) | 熵编码器、熵译码器及对应地熵编码方法和熵译码方法 | |
KR100988010B1 (ko) | 결정 비트를 이용한 부호화/복호화 방법 및 장치 | |
JP6509916B2 (ja) | 連結されたrom−ramテーブルに基づいて算術コーディングを遂行する方法及び装置 | |
KR20170031868A (ko) | 바이너리 클러스터의 이진수 위상정보를 이용한 이진데이터 실시간 압축을 위한 부호화 복호화 장치 | |
CN102263960B (zh) | 一种快速解码cavlc非零系数幅值的方法 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210118 Address after: Room 400, building 5, No.11 Deshengmenwai street, Xicheng District, Beijing 100032 (Desheng Park) Patentee after: MIGU CULTURE TECHNOLOGY Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |