CN102158692B - 编码方法、解码方法、编码器和解码器 - Google Patents
编码方法、解码方法、编码器和解码器 Download PDFInfo
- Publication number
- CN102158692B CN102158692B CN2010101177049A CN201010117704A CN102158692B CN 102158692 B CN102158692 B CN 102158692B CN 2010101177049 A CN2010101177049 A CN 2010101177049A CN 201010117704 A CN201010117704 A CN 201010117704A CN 102158692 B CN102158692 B CN 102158692B
- Authority
- CN
- China
- Prior art keywords
- coefficient
- vector
- encoded
- current
- divided
- 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
- 238000000034 method Methods 0.000 title claims abstract description 85
- 239000013598 vector Substances 0.000 claims abstract description 574
- 238000013139 quantization Methods 0.000 claims description 64
- 238000003795 desorption Methods 0.000 claims description 5
- 238000004321 preservation Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 11
- 238000013507 mapping Methods 0.000 abstract description 4
- 238000000638 solvent extraction Methods 0.000 abstract 3
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 201000003373 familial cold autoinflammatory syndrome 3 Diseases 0.000 description 16
- 238000011002 quantification Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 11
- 238000001228 spectrum Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明实施例提供一种编码方法、解码方法、编码器和解码器,该编码方法包括:根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对待编码系数进行矢量划分;根据选择的维度将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量;对格索引矢量进行无损编码。通过本发明实施例,编码端进行矢量划分将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后对格索引矢量进行无损编码,总体上可以减少编码使用的比特数;解码端采用与编码端相同的方法进行矢量划分,并通过与编码端相逆的过程进行解码;从而提高了量化质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
Description
技术领域
本发明实施例涉及视频技术领域,尤其涉及一种编码方法、解码方法、编码器和解码器。
背景技术
变换域编码是目前语音频标准中最常见的一种编解码技术,例如:动态影像专家压缩标准音频层面3(Moving Picture Experts Group AudioLayer III;以下简称:MP3),高级音频编码(Advanced Audio Coding;以下简称:AAC)及其后续版本。在一个基于变换域编码技术的语音编码***中,量化器是整个语音编码***的核心模块之一。量化器的作用是将输入的变换系数映射为有限个数据(一般为整数)。
现有语音频标准中矢量量化器应用的范围很广。矢量量化器是将连续的若干数据合并,统一进行量化。而在矢量量化器中,格矢量量化器具有存储量等方面的优势,因而获得了广泛的应用。
多码率矢量量化编码方法作用于频谱数据,以8个数为一组,根据就近原则将这8个数量化为RE8集合上的点。之后,选取不同的码本,输出相应的基础码本、基础码本索引和扩展码本的值。
但是,现有的多码率矢量量化编码方法在格的选择上固定为8维。然而,在一些广泛应用的标准,例如:AAC中,一帧的系数会分解成若干子带,每个子带的系数个数为4的整数倍而不是8的整数倍。因此,对于部分子带,例如:包括28个系数的子带,现有的多码率矢量量化编码方法会出现维度的适配问题。
另外,现有的多码率矢量量化编码方法的编码效率强依赖于基于统计分析的基础码本,当被量化对象在基础码本内时,编码效率较高;若被量化对象不在基础码本内,比特消耗量非常大。在实际应用中,以对音乐信号进行编码为例,很难用一个有限空间的基础码本去描述音乐信号的系数统计分布特性,因此,在很多情况下,相当多的量化对象不会落在预先训练好的基础码本内,这时,现有的多码率矢量量化编码方法的编码效率不高,量化精度无法保证,导致编码质量较低。
发明内容
本发明实施例提供一种编码方法、解码方法、编码器和解码器,以提高量化质量和编解码效率。
本发明实施例提供一种编码方法,包括:
根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分;
根据选择的维度将所述待编码系数划分成的矢量量化为格矢量,并将所述格矢量映射为格索引矢量;
对所述格索引矢量进行无损编码。
本发明实施例还提供一种解码方法,包括:
根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分;
根据选择的维度对所述待解码系数划分成的矢量进行无损解码获得格索引矢量;
将所述格索引矢量映射为格矢量。
本发明实施例还提供一种编码器,包括:
第一矢量划分模块,用于根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分;
量化模块,用于根据选择的维度将所述第一矢量划分模块划分成的矢量量化为格矢量,并将所述格矢量映射为格索引矢量;
编码模块,用于对所述格索引矢量进行无损编码。
本发明实施例还提供一种解码器,包括:
第二矢量划分模块,用于根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分;
解码模块,用于根据选择的维度对所述第二矢量划分模块划分成的矢量进行无损解码获得格索引矢量;
逆量化模块,用于将所述格索引矢量映射为格矢量。
通过本发明实施例,编码端根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分,然后根据选择的维度将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后对格索引矢量进行无损编码,总体上可以减少编码使用的比特数;解码端采用与编码端相同的方法进行矢量划分,并通过与编码端相逆的过程进行解码;提高了量化质量,进而提高了编解码效率和编解码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明编码方法一个实施例的流程图;
图2为本发明解码方法一个实施例的流程图;
图3为本发明编码方法另一个实施例的流程图;
图4为本发明矢量划分方法一个实施例的流程图;
图5为本发明解码方法另一个实施例的流程图;
图6为本发明编码方法再一个实施例的流程图;
图7为本发明解码方法再一个实施例的流程图;
图8为本发明编码器一个实施例的结构示意图;
图9为本发明编码器另一个实施例的结构示意图;
图10为本发明解码器一个实施例的结构示意图;
图11为本发明解码器另一个实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明编码方法一个实施例的流程图,如图1所示,该编码方法可以包括:
步骤101,根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分。
其中,上述至少两个维度矢量可以包括4维矢量、6维矢量和8维矢量等多种矢量,从上述至少两个维度矢量中选择的至少一个维度矢量可以为4维矢量、6维矢量和/或8维矢量等,本发明实施例对此不作限定,但是本发明实施例以选择的维度矢量为4维矢量和/或8维矢量为例进行说明,这是因为当前主流音频编码器的子带所包含待编码系数的个数一般为4或8的倍数。
在本实施例的一种实现方式中,在根据当前子带所包含待编码系数的个数,对当前子带中的待编码系数进行矢量划分之前,可以先根据已编码系数确定当前子带中当前待编码系数的平坦度;然后,可以根据当前子带所包含待编码系数的个数,以及当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待编码系数及与该当前待编码系数右相邻的系数进行矢量划分。其中,平坦度反映了频谱的平坦程度,可以用多种数学特性来表征,例如:方差等;本发明实施例对平坦度的表现形式不作限定,只要可以反映频谱的平坦程度即可。
具体地,如果当前子带所包含待编码系数的个数等于4,则可以将当前子带中当前待编码系数及与该当前待编码系数右相邻的连续3个系数划分为4维矢量;或者,如果当前子带所包含待编码系数的个数大于4,且当前待编码系数的平坦度小于预设的第一阈值,则可以将当前子带中当前待编码系数及与该当前待编码系数右相邻的连续7个系数划分为8维矢量;或者,如果所述当前子带所包含待编码系数的个数大于4,且当前待编码系数的平坦度不小于上述预设的第一阈值时,则可以将当前子带中当前待编码系数及与当前待编码系数右相邻的连续3个系数划分为4维矢量。其中,该预设的第一阈值可以根据编码的性能要求任意设置,本发明实施例对该预设的第一阈值的大小不作限定。
在本实施例的另一种实现方式中,如果当前子带所包含待编码系数的个数为8的整数倍,则可以将当前子带中的待编码系数划分为第一数量的8维矢量,该第一数量为当前子带所包含待编码系数的个数除以8的商;或者,如果当前子带所包含待编码系数的个数不是8的整数倍,则可以将当前子带中的待编码系数划分为第二数量的8维矢量和一个4维矢量,该第二数量为当前子带所包含待编码系数的个数减去4之后的差值除以8的商。
步骤102,根据选择的维度将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量。
本实施例中,根据选择的维度将待编码系数划分成的矢量量化为格矢量具体可以为:将8维矢量量化为E8格矢量;和/或,将4维矢量量化为D4格矢量。其中,D4格矢量是4维的最优格点,E8格矢量是8维的最优格点。
D4格是Dn格的一种,Dn格的定义为n维矢量{x1,x2,...,xn},上述n维矢量中的各分量均为整数且各分量之和为偶数,例如:{1,-1,2,0}。E8格的定义为简言之,一部分E8格是D8格;而另一部分E8格为8维矢量{x1,x2,...,x8},满足xi∈Z+0.5,i=1,...,n,Z表示整数集,且该8维矢量的各分量之和为偶数。
本实施例中,格矢量与格索引矢量一一对应。定义格矢量为X,X对应的格索引矢量为K,对于D4格和E8格,均存在生成矩阵G与该生成矩阵G的逆矩阵G-1,且满足:
因此,本实施例中,格矢量与格索引的映射是可逆的。
具体地,D4格的生成矩阵GD4,以及该生成矩阵GD4的逆矩阵分别为:
E8格的生成矩阵GE8,以及该生成矩阵GE8的逆矩阵分别为:
步骤103,对格索引矢量进行无损编码。
在本实施例的一种实现方式中,在步骤102中,根据选择的维度将待编码系数划分成的矢量量化为格矢量之前,还可以先确定上述矢量的绝对值;然后根据选择的维度将上述矢量的绝对值量化为绝对值格矢量,并将该绝对值格矢量映射为格索引矢量;在此过程中,还需保存上述绝对值格矢量中的非零系数在量化之前的符号信息,该符号信息包括该非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系;最后,对上述格索引矢量进行无损编码,并对保存的符号信息进行编码。
上述实施例中,编码端根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分,然后根据选择的维度将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后对格索引矢量进行无损编码,总体上可以减少编码使用的比特数,提高了量化质量,进而提高了编码效率和编码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
图2为本发明解码方法一个实施例的流程图,如图2所示,该解码方法可以包括:
步骤201,根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分。
其中,上述至少两个维度矢量可以包括4维矢量、6维矢量和8维矢量等多种矢量,从上述至少两个维度矢量中选择的至少一个维度矢量可以为4维矢量、6维矢量和/或8维矢量等,本发明实施例对此不作限定,但是本发明实施例以选择的维度矢量为4维矢量和/或8维矢量为例进行说明,这是因为当前主流音频解码器的子带所包含待解码系数的个数一般为4或8的倍数。
在本实施例的一种实现方式中,在根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分之前,可以先根据已解码系数确定当前子带中当前待解码系数的平坦度;然后,可以根据当前子带所包含待解码系数的个数,以及当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待解码系数及与当前待解码系数右相邻的系数进行矢量划分。其中,平坦度反映了频谱的平坦程度,可以用多种数学特性来表征,例如:方差等;本发明实施例对平坦度的表现形式不作限定,只要可以反映频谱的平坦程度即可。
具体地,如果当前子带所包含待解码系数的个数等于4,则可以将当前子带中当前待解码系数及与该当前待解码系数右相邻的连续3个系数划分为4维矢量;或者,如果当前子带所包含待解码系数的个数大于4,且当前待解码系数的平坦度小于预设的第二阈值,则可以将当前子带中当前待解码系数及与当前待解码系数右相邻的连续7个系数划分为8维矢量;或者,如果当前子带所包含待解码系数的个数大于4,且当前待解码系数的平坦度不小于预设的第二阈值,则可以将当前子带中当前待解码系数及与该当前待解码系数右相邻的连续3个系数划分为4维矢量。其中,该预设的第二阈值可以根据解码的性能要求任意设置,本发明实施例对该预设的第二阈值的大小不作限定;本实施例中,第二阈值的大小与本发明图1所示实施例中第一阈值的大小相等。
在本实施例的另一实现方式中,如果当前子带所包含待解码系数的个数为8的整数倍,则可以将当前子带中的待解码系数划分为第三数量的8维矢量,该第三数量为当前子带所包含待解码系数的个数除以8的商;或者,如果当前子带所包含待解码系数的个数不是8的整数倍,则可以将当前子带中的待解码系数划分为第四数量的8维矢量和一个4维矢量,该第四数量为当前子带所包含待解码系数的个数减去4之后的差值除以8的商。
步骤202,根据选择的维度对待解码系数划分成的矢量进行无损解码获得格索引矢量。
具体地,可以对上述8维矢量进行无损解码获得8维格索引矢量;和/或,可以对上述4维矢量进行无损解码获得4维格索引矢量。
步骤203,将该格索引矢量映射为格矢量。
具体地,可以将8维格索引矢量映射为E8格矢量,和/或,可以将4维格索引矢量映射为D4格矢量,以完成系数的重建。
其中,D4格矢量与E8格矢量的定义与本发明图1所示实施例步骤102中的描述相同,格索引矢量与格矢量的映射关系与式(1)~式(3)描述的映射关系相同,在此不再赘述。
在本实施例的一种实现方式中,若格索引矢量映射成的格矢量为绝对值格矢量,还需要对保存该绝对值格矢量中的非零系数在量化之前的符号信息的码元进行解码,获得该非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系;根据该对应关系将该非零系数在量化之前的符号赋给对应的非零系数,以完成系数的重建。
上述实施例中,解码端根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分,然后根据选择的维度对待解码系数划分成的矢量进行无损解码获得格索引矢量,并将该格索引矢量映射为格矢量,完成系数的重建;从而提高了量化质量,进而提高了解码效率和解码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。。
下面结合图3~图7,对本发明实施例提供的编码方法和解码方法进行详细说明。其中,图3、图4和图6所示实施例以动态图像专家组联合语音音频编码(Moving Pictures Experts Group Unified Speech and Audio Coding;以下简称:USAC)编码器的编码端对音乐信号的频域(Frequency Domain;以下简称:FD)支路进行编码为例进行说明;图5和图7所示实施例以USAC编码器的解码端对音乐信号的FD支路进行解码为例进行说明。当然本发明实施例并不仅限于此,该USAC编码器还可用于处理语音信号的时域(TimeDomain;以下简称:TD)支路。在TD支路下,该USAC编码器中有一子模块用于处理时域编码后的残差系数,该残差系数也可用本发明实施例提供的方法进行处理,具体的实现方式与FD支路的实现方式一致,在此不再赘述。
图3为本发明编码方法另一个实施例的流程图,如图3所示,该编码方法可以包括:
步骤301,根据已编码系数确定当前子带中当前待编码系数的平坦度。
本实施例中,USAC编码器FD支路的子带划分方式是固定的,量化、编码的顺序均是从最低频到最高频。对于每个子带,假定每个子带包含的待编码系数个数均为L。在USAC编码器中,每个子带包含的待编码系数的个数限定为4的倍数。
其中,平坦度反映了频谱的平坦程度,可以用多种数学特性来表征,例如:方差等;本实施例对平坦度的表现形式不作限定,只要可以反映频谱的平坦程度即可。本实施例中,设N个相邻的待编码系数组成数组{x0,x1,...,xN-1},则平坦度P(xi)可以为:
将P(xi)与预设的第一阈值THD进行比较,若P(xi)<THD,则说明频谱比较平坦;若P(xi)≥THD,则说明频谱比较振荡。
根据信号的相关性,在时域或频域上,相邻子带的属性是相近的。例如:假设在第i帧第j个子带内频谱比较平坦,则在第i+1帧第j个子带内频谱比较平坦的可能性也是非常大的。同样,频域上相邻子带间也存在类似的相关性。
设当前待编码系数为第i帧第j个系数xi,j,则根据已编码系数确定当前子带中当前待编码系数xi,j的平坦度可以为:
P(xi,j)=α0·P(xi-1,j)+α1·P(xi,j-8) (5)
式(5)中,P(xi,j)是当前待编码系数xi,j,及与xi,j右相邻的连续7个系数{xi,j,xi,j+1,...,xi,j+7}的平坦度;P(xi-1,j)是第i-1帧第j个系数xi-1,j,及与xi-1,j右相邻的7个系数{xi-1,j,xi-1,j+1,...,xi-1,j+7}的平坦度;P(xi,j-8)是第i帧第j个系数xi,j左相邻的连续8个系数{xi,j-8,xi,j-7,...,xi,j-1}的平坦度;α0和α1为0至1之间的小数,反映了上式两个分量P(xi-1,j)和P(xi,j-8)对P(xi,j)的影响权值,在实际应用中,α0和α1为预先设定的常数。另外,需要考虑边界条件,在每一帧的起始阶段的待编码系数,仅能获得频域上若干相邻待编码系数的相关信息。在该边界条件下,强制设定α0=1且α1=0。
步骤302,根据当前子带所包含待编码系数的个数,以及当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待编码系数及与该当前待编码系数右相邻的系数进行矢量划分。
下面结合图4,对步骤302中矢量划分的操作进行详细说明。
图4为本发明矢量划分方法一个实施例的流程图,在图4所示实施例中,假设当前子带所包含待编码系数的总数为L,已编码系数的个数为k,预设的第一阈值为THD。
如图4所示,该矢量划分方法可以包括:
步骤401,判断L与k的差值是否等于4。如果等于4,则执行步骤402;如果L与k的差值大于4,则执行步骤403。
步骤402,将当前子带中当前待编码系数及与该当前待编码系数右相邻的连续3个系数划分为4维矢量,结束本次流程。
举例来说,假设当前子带中当前待编码系数为xi,j,则可以将{xi,j,xi,j+1,xi,j+2,xi,j+3}划分为一个4维矢量。
步骤403,判断当前待编码系数的平坦度是否小于THD;如果小于,则执行步骤404;如果当前待编码系数的平坦度不小于THD,则执行步骤405。
其中,THD可以根据编码的性能要求任意设置,本发明实施例对THD的大小不作限定。
步骤404,将当前子带中当前待编码系数及与该当前待编码系数右相邻的连续7个系数划分为8维矢量,并将k的值加8,执行步骤406。
举例来说,假设当前子带中当前待编码系数为xi,j,则可以将{xi,j,xi,j+1,...,xi,j+7}划分为一个8维矢量。
步骤405,将当前子带中当前待编码系数及与当前待编码系数右相邻的连续3个系数划分为4维矢量,并将k的值加4,执行步骤406。
举例来说,假设当前子带中当前待编码系数为xi,j,则可以将{xi,j,xi,j+1,xi,j+2,xi,j+3}划分为一个4维矢量。
步骤406,判断k是否等于L。如果等于,则结束本次流程;如果L大于k,则返回执行步骤401。
至此,本实施例中矢量划分的操作完成。
步骤303,根据选择的维度将划分的各个矢量量化为格矢量,并将该格矢量映射为格索引矢量。
本实施例中,对划分的各个矢量逐个进行量化。对于8维矢量,先将8维矢量量化为一个E8格矢量,然后,参考式(1)和式(3)计算该E8格矢量对应的格索引矢量;而对于4维矢量,则先将4维矢量量化成一个D4格矢量,然后,参考式(1)和式(2)计算该D4格矢量对应的格索引矢量。
步骤304,对格索引矢量进行无损编码。
具体地,在进行无损编码时,既可以对格索引矢量中的各分量单独进行编码,也可以对格索引矢量中的多个分量联合进行编码。特别地,在对格索引矢量进行无损编码时,可以调用USAC编码器中的算术编码模块完成。
最后,将所有待处理的子带均进行量化和编码后,将码流合并,编码端的操作完成。
上述实施例中,编码端根据当前子带所包含待编码系数的个数,以及当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分,然后将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后对格索引矢量进行无损编码,总体上可以减少编码使用的比特数,提高了量化质量,进而提高了编码效率和编码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
图5为本发明解码方法另一个实施例的流程图,如图5所示,该解码方法可以包括:
步骤501,根据已解码系数确定当前子带中待解码系数的平坦度。
具体地,可以采用本发明图3所示实施例步骤301提供的方法确定当前子带中待解码系数的平坦度,在此不再赘述。
步骤502,根据当前子带所包含待解码系数的个数,以及当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待解码系数及与当前待解码系数右相邻的系数进行矢量划分。
具体地,可以采用本发明图4所示实施例提供的方法对当前子带中当前待解码系数及与当前待解码系数右相邻的系数进行矢量划分,在此不再赘述。
步骤503,根据选择的维度对划分的各个矢量进行无损解码获得格索引矢量。
具体地,可以对8维矢量进行无损解码获得8维格索引矢量;和/或,可以对4维矢量进行无损解码获得4维格索引矢量。
步骤504,将该格索引矢量映射为格矢量。
本实施例中,对于8维格索引矢量,可以参考式(1)和式(3)计算该8维格索引矢量对应的格矢量;对于4维格索引矢量,可以参考式(1)和式(2)计算该4维格索引矢量对应的格矢量;以在解码端完成频率系数的重建。
上述实施例中,解码端根据当前子带所包含待解码系数的个数,以及当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分,然后对待解码系数划分成的矢量进行无损解码获得格索引矢量,并将该格索引矢量映射为格矢量,完成频率系数的重建;从而提高了量化质量,进而提高了解码效率和解码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
图6为本发明编码方法再一个实施例的流程图,如图6所示,该编码方法可以包括:
步骤601,根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分。
具体地,如果当前子带所包含待编码系数的个数为8的整数倍,则可以将当前子带中的待编码系数划分为第一数量的8维矢量,该第一数量为当前子带所包含待编码系数的个数除以8的商;或者,如果当前子带所包含待编码系数的个数不是8的整数倍,则可以将当前子带中的待编码系数划分为第二数量的8维矢量和一个4维矢量,该第二数量为当前子带所包含待编码系数的个数减去4之后的差值除以8的商。
举例来说,假定当前子带所包含待编码系数的个数为L,如果L是8的整数倍,即L能够被8整除,则将这L个待编码系数划分为个8维矢量,其中,为第一数量;若L不是8的整数倍,即L不能够被8整除,则将这L个待编码系数分解成个8维矢量和1个4维矢量,其中,为第二数量。
步骤602,根据选择的维度将划分的各个矢量量化为格矢量,并将该格矢量映射为格索引矢量。
本实施例中,可以顺序将划分的各个矢量量化为格矢量,并将该格矢量映射为格索引矢量。
举例来说,假定当前子带所包含的待编码系数被划分成了M个矢量。可以首先将前M-1个矢量量化成M-1个E8格矢量;然后,参考式(1)和式(3)计算该E8格矢量对应的格索引矢量。对于最后一个矢量,若该最后一个矢量为8维矢量,则可以先将该最后一个矢量量化为一个E8格矢量,然后,参考式(1)和式(3)计算该E8格矢量对应的格索引矢量;若该最后一个矢量为4维矢量,则可以先将该最后一个矢量量化为一个D4格矢量,然后,参考式(1)和式(2)计算该D4格矢量对应的格索引矢量。
步骤603,对格索引矢量进行无损编码。
具体地,在进行无损编码时,既可以对格索引矢量中的各分量单独进行编码,也可以对格索引矢量中的多个分量联合进行编码。特别地,在对格索引矢量进行无损编码时,可以调用USAC编码器中的算术编码模块完成。
最后,将所有待处理的子带均进行量化和编码后,将码流合并,编码端的操作完成。
上述实施例中,编码端根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分,然后将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后对格索引矢量进行无损编码,总体上可以减少编码使用的比特数,提高了量化质量,进而提高了编码效率和编码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
图7为本发明解码方法再一个实施例的流程图,如图7所示,该解码方法可以包括:
步骤701,根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分。
具体地,如果当前子带所包含待解码系数的个数为8的整数倍,则可以将当前子带中的待解码系数划分为第三数量的8维矢量,该第三数量为当前子带所包含待解码系数的个数除以8的商;或者,如果当前子带所包含待解码系数的个数不是8的整数倍,则可以将当前子带中的待解码系数划分为第四数量的8维矢量和一个4维矢量,该第四数量为当前子带所包含待解码系数的个数减去4之后的差值除以8的商。
举例来说,假定当前子带所包含待解码系数的个数为L,如果L是8的整数倍,即L能够被8整除,则将这L个待解码系数划分为个8维矢量,其中,为第三数量;若L不是8的整数倍,即L不能够被8整除,则将这L个待解码系数分解成个8维矢量和1个4维矢量,其中,为第四数量。
步骤702,根据选择的维度对划分的各个矢量进行无损解码获得格索引矢量。
具体地,可以对上述8维矢量进行无损解码获得8维格索引矢量;和/或,可以对上述4维矢量进行无损解码获得4维格索引矢量。
本实施例中,在进行无损解码时,既可以一次性对所有的格索引矢量进行无损解码,也可以逐个对格索引矢量进行无损解码。特别地,在进行无损解码时,可以调用USAC解码器中的算术解码模块完成。
步骤703,将该格索引矢量映射为格矢量。
具体地,可以将8维格索引矢量映射为E8格矢量,和/或,可以将4维格索引矢量映射为D4格矢量,以完成频率系数的重建。
本实施例中,假定当前子带包括M个格索引矢量。对于前M-1个格索引矢量,可以参考式(1)和式(3)计算该M-1个8维格索引矢量对应的格矢量。对于最后一个格索引矢量,若最后一个格索引矢量为8维格索引矢量,则参考式(1)和式(3)计算最后一个格索引矢量对应的格矢量;若最后一个格索引矢量为4维格索引矢量,则参考式(1)和式(2)计算最后一个格索引矢量对应的格矢量;以在解码端完成频率系数的重建。
上述实施例中,解码端根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分,然后对该待解码系数划分成的矢量进行无损解码获得格索引矢量,并将该格索引矢量映射为格矢量,完成频率系数的重建。从而提高了量化质量,进而提高了解码效率和解码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
参考式(3),E8格生成矩阵的逆矩阵有“中和”的作用。若待量化的8维矢量的符号完全相同,则量化后的格矢量的幅值必定减少。因此,在本发明图3和图6所示实施例中,可以在量化前对待编码系数划分成的矢量进行符号分离,确定上述矢量的绝对值。然后,将上述矢量的绝对值量化为绝对值格矢量,并将该绝对值格矢量映射为格索引矢量。在一些情况下,待编码系数划分成的矢量中部分分量的幅值比较小,例如:该待编码系数划分成的矢量中部分分量的幅值小于1。在将上述矢量的绝对值量化为绝对值格矢量之前,可以保存这些幅值较小的分量的符号;在量化之后,若该幅值较小的分量被量化成零,则无需再保存该幅值较小的分量的符号,仅保存量化后的绝对值格矢量中的非零系数在量化之前的符号信息即可,该符号信息包括上述非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系。然后对上述格索引矢量进行无损编码,并对保存的符号信息进行编码。
经过上述操作获得的码流结构,与本发明图3和图6所示实施例获得的码流结构相比,会有额外的比特保存量化后的绝对值格矢量中的非零系数在量化之前的符号信息。
对应地,在本发明图5和图7所示实施例中,在解码端,若格索引矢量映射成的格矢量为绝对值格矢量,还需要对保存该绝对值格矢量中的非零系数在量化之前的符号信息的码元进行解码,获得该非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系;根据该对应关系将非零系数在量化之前的符号赋给对应的非零系数,以完成系数的重建。
本发明实施例的核心之处之一在于量化输出的不再是格矢量,而是格索引矢量,从而可以彻底解除基于统计训练的基础码本的约束,使得量化更加适应于音乐信号的处理。
例如:X1:{4,4,0,2,2,0,0,0}是落在现有基础码本中的Q4码本,对应的格索引矢量为K1:{-1,2,0,1,1,0,0,0}。假定存在另一个格索引矢量K2:{-1,0,0,1,0,1,0,2},K2对应的格矢量为X2:{2,2,2,4,2,4,2,2}。按照信息论的理论,对K1和K2进行编码时使用的比特数是相等的。若采用现有的多码率矢量量化编码方法,X1在现有的基础码本内,而X2并不在现有的基础码本内,因此对上述格矢量X1和X2进行编码时,使用的比特数相差很大。在实际应用中,音乐信号的频谱系数分布很难用一个有限空间的基础码本描述,很多情况下,待编码矢量均不在基础码本内。若采用现有的多码率矢量量化编码方法,会使得对上述格矢量X1和X2进行编码时使用的比特数大大增加。
而使用本发明实施例提供的编码方法,在编码端,可以通过数学变换改变待编码系数的分布,摆脱基础码本的约束,对格索引矢量进行无损编码。使用本发明实施例提供的解码方法,在解码端,进行无损解码获得格索引矢量,再利用上述数学变换的可逆性,无损地得到格矢量。
此外,考虑到具体编码器和具体解码器子带划分的特性,本发明实施例提供的编码方法和解码方法可以动态地选择不同维度下的最优格点,因此可以获得较佳的量化效果。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图8为本发明编码器一个实施例的结构示意图,本实施例提供的编码器可以实现本发明图1所示实施例的流程,如图8所示,该编码器可以包括:第一矢量划分模块81、量化模块82和编码模块83。
其中,第一矢量划分模块81,用于根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分;
在本实施例的一种实现方式中,第一矢量划分模块81具体用于在当前子带所包含待编码系数的个数为8的整数倍时,将当前子带中的待编码系数划分为第一数量的8维矢量,该第一数量为当前子带所包含待编码系数的个数除以8的商;或者,第一矢量划分模块81具体用于在当前子带所包含待编码系数的个数不是8的整数倍时,将当前子带中的待编码系数划分为第二数量的8维矢量和一个4维矢量,该第二数量为当前子带所包含待编码系数的个数减去4之后的差值除以8的商。
量化模块82,用于根据选择的维度将第一矢量划分模块81划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量;具体地,量化模块82可以将8维矢量量化为E8格矢量;和/或,可以将4维矢量量化为D4格矢量。
编码模块83,用于对上述格索引矢量进行无损编码。
图9为本发明编码器另一个实施例的结构示意图,本实施例提供的编码器可以实现本发明图1、图3或图6所示实施例的流程。与图8所示的编码器相比,不同之处在于,图9所示的编码器还可以包括:第一平坦度确定模块84、符号分离模块85和保存模块86。
其中,第一平坦度确定模块84,用于根据已编码系数确定当前子带中当前待编码系数的平坦度;这时,第一矢量划分模块81可以根据当前子带所包含待编码系数的个数,以及第一平坦度确定模块84确定的当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待编码系数及与当前待编码系数右相邻的系数进行矢量划分。具体地,第一矢量划分模块81可以在当前子带所包含待编码系数的个数等于4时,将当前子带中当前待编码系数及与当前待编码系数右相邻的连续3个系数划分为4维矢量;或者,第一矢量划分模块81可以在当前子带所包含待编码系数的个数大于4,且当前待编码系数的平坦度小于预设的第一阈值时,将当前子带中当前待编码系数及与当前待编码系数右相邻的连续7个系数划分为8维矢量;或者,第一矢量划分模块81可以在当前子带所包含待编码系数的个数大于4,且当前待编码系数的平坦度不小于预设的第一阈值时,将当前子带中当前待编码系数及与当前待编码系数右相邻的连续3个系数划分为4维矢量。其中,该预设的第一阈值可以根据编码的性能要求任意设置,本发明实施例对该预设的第一阈值的大小不作限定。
本实施例中,符号分离模块85,用于确定第一矢量划分模块81划分成的矢量的绝对值;这时,量化模块82可以将符号分离模块85确定的矢量的绝对值量化为绝对值格矢量,并将该绝对值格矢量映射为格索引矢量。
本实施例中,保存模块86,用于保存上述绝对值格矢量中的非零系数在量化之前的符号信息,该符号信息包括该非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系;这时,编码模块83可以对上述格索引矢量进行无损编码,并对保存模块86保存的符号信息进行编码。
上述实施例中,第一矢量划分模块81根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待编码系数进行矢量划分,然后量化模块82将待编码系数划分成的矢量量化为格矢量,并将该格矢量映射为格索引矢量,最后编码模块83对格索引矢量进行无损编码,总体上可以减少编码使用的比特数,提高了量化质量,进而提高了编码效率和编码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
图10为本发明解码器一个实施例的结构示意图,本实施例提供的解码器可以实现本发明图2所示实施例的流程,如图10所示,该解码器可以包括:第二矢量划分模块1001、解码模块1002和逆量化模块1003。
其中,第二矢量划分模块1001,用于根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分;
在本实施例的一种实现方式中,第二矢量划分模块1001可以在当前子带所包含待解码系数的个数为8的整数倍时,将当前子带中的待解码系数划分为第三数量的8维矢量,该第三数量为当前子带所包含待解码系数的个数除以8的商;或者,第二矢量划分模块1001可以在当前子带所包含待解码系数的个数不是8的整数倍时,将当前子带中的待解码系数划分为第四数量的8维矢量和一个4维矢量,该第四数量为当前子带所包含待解码系数的个数减去4之后的差值除以8的商。
解码模块1002,用于根据选择的维度对第二矢量划分模块1001划分成的矢量进行无损解码获得格索引矢量;具体地,解码模块1002可以对8维矢量进行无损解码获得8维格索引矢量;和/或,解码模块1002可以对4维矢量进行无损解码获得4维格索引矢量。
逆量化模块1003,用于将上述格索引矢量映射为格矢量。
图11为本发明解码器另一个实施例的结构示意图,本实施例提供的解码器可以实现本发明图2、图5或图7所示实施例的流程。与图10所示的解码器相比,不同之处在于,图11所示的解码器还可以包括:第二平坦度确定模块1004和符号解码模块1005。
其中,第二平坦度确定模块1004,用于根据已解码系数确定当前子带中当前待解码系数的平坦度;这时,第二矢量划分模块1001可以根据当前子带所包含待解码系数的个数,以及第二平坦度确定模块1004确定的当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对当前子带中当前待解码系数及与当前待解码系数右相邻的系数进行矢量划分。具体地,第二矢量划分模块1001可以在当前子带所包含待解码系数的个数等于4时,将当前子带中当前待解码系数及与当前待解码系数右相邻的连续3个系数划分为4维矢量;或者,第二矢量划分模块1001可以在当前子带所包含待解码系数的个数大于4,且当前待解码系数的平坦度小于预设的第二阈值时,将当前子带中当前待解码系数及与当前待解码系数右相邻的连续7个系数划分为8维矢量;或者,第二矢量划分模块1001可以在当前子带所包含待解码系数的个数大于4,且当前待解码系数的平坦度不小于预设的第二阈值时,将当前子带中当前待解码系数及与当前待解码系数右相邻的连续3个系数划分为4维矢量。其中,该预设的第二阈值可以根据解码的性能要求任意设置,本发明实施例对该预设的第二阈值的大小不作限定;本实施例中,第二阈值的大小与本发明图1所示实施例中第一阈值的大小相等。
本实施例中,符号解码模块1005,用于当逆量化模块1003获得的格矢量为绝对值格矢量时,对保存绝对值格矢量中的非零系数在量化之前的符号信息的码元进行解码,获得该非零系数在量化之前的符号,以及该非零系数在量化之前的符号与该非零系数的对应关系;根据该对应关系将该非零系数在量化之前的符号赋给对应的非零系数,以完成系数的重建。
上述解码器中,第二矢量划分模块1001根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对当前子带中的待解码系数进行矢量划分,然后解码模块1002根据选择的维度对待解码系数划分成的矢量进行无损解码获得格索引矢量,逆量化模块1003将该格索引矢量映射为格矢量,完成系数的重建;从而提高了量化质量,进而提高了解码效率和解码质量,为处理包括音乐信号在内的信号类型提供了高质量的量化方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种编码方法,其特征在于,包括:
根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分;
根据选择的维度将所述待编码系数划分成的矢量量化为格矢量,并将所述格矢量映射为格索引矢量;
对所述格索引矢量进行无损编码;
其中,所述根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分包括:根据当前子带所包含待编码系数的个数,以及所述当前子带中当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的系数进行矢量划分;所述当前子带中当前待编码系数的平坦度是所述根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分之前,根据已编码系数确定的;
或者,
所述根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分包括:当所述当前子带所包含待编码系数的个数为8的整数倍时,将所述当前子带中的待编码系数划分为第一数量的8维矢量,所述第一数量为所述当前子带所包含待编码系数的个数除以8的商;或者,当所述当前子带所包含待编码系数的个数不是8的整数倍时,将所述当前子带中的待编码系数划分为第二数量的8维矢量和一个4维矢量,所述第二数量为所述当前子带所包含待编码系数的个数减去4之后的差值除以8的商。
2.根据权利要求1所述的方法,其特征在于,所述根据当前子带所包含待编码系数的个数,以及所述当前子带中当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的系数进行矢量划分包括:
当所述当前子带所包含待编码系数的个数等于4时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续3个系数划分为4维矢量;或者,
当所述当前子带所包含待编码系数的个数大于4,且所述当前待编码系数的平坦度小于预设的第一阈值时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续7个系数划分为8维矢量;或者,
当所述当前子带所包含待编码系数的个数大于4,且所述当前待编码系数的平坦度不小于所述预设的第一阈值时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续3个系数划分为4维矢量。
3.根据权利要求1-2任意一项所述的方法,其特征在于,所述根据选择的维度将所述待编码系数划分成的矢量量化为格矢量包括:
将所述8维矢量量化为E8格矢量;和/或,
将所述4维矢量量化为D4格矢量。
4.根据权利要求1所述的方法,其特征在于,所述根据选择的维度将所述待编码系数划分成的矢量量化为格矢量之前,还包括:
确定所述待编码系数划分成的矢量的绝对值;
所述根据选择的维度将所述待编码系数划分成的矢量量化为格矢量,并将所述格矢量映射为格索引矢量包括:
根据选择的维度将所述矢量的绝对值量化为绝对值格矢量,并将所述绝对值格矢量映射为格索引矢量。
5.根据权利要求4所述的方法,其特征在于,还包括:保存所述绝对值格矢量中的非零系数在量化之前的符号信息,所述符号信息包括所述非零系数在量化之前的符号,以及所述非零系数在量化之前的符号与所述非零系数的对应关系;
所述对所述格索引矢量进行无损编码包括:
对所述格索引矢量进行无损编码,并对保存的符号信息进行编码。
6.一种解码方法,其特征在于,包括:
根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分;
根据选择的维度对所述待解码系数划分成的矢量进行无损解码获得格索引矢量;
将所述格索引矢量映射为格矢量;
其中,所述根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分包括:根据当前子带所包含待解码系数的个数,以及所述当前子带中当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的系数进行矢量划分;所述当前子带中当前待解码系数的平坦度是所述根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分之前,根据已解码系数确定的;
或者,
所述根据当前子带所包含待解码系数的个数,对所述当前子带中的待解码系数进行矢量划分包括:当所述当前子带所包含待解码系数的个数为8的整数倍时,将所述当前子带中的待解码系数划分为第三数量的8维矢量,所述第三数量为所述当前子带所包含待解码系数的个数除以8的商;或者,当所述当前子带所包含待解码系数的个数不是8的整数倍时,将所述当前子带中的待解码系数划分为第四数量的8维矢量和一个4维矢量,所述第四数量为所述当前子带所包含待解码系数的个数减去4之后的差值除以8的商。
7.根据权利要求6所述的方法,其特征在于,所述根据当前子带所包含待解码系数的个数,以及所述当前子带中当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的系数进行矢量划分包括:
当所述当前子带所包含待解码系数的个数等于4时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续3个系数划分为4维矢量;或者,
当所述当前子带所包含待解码系数的个数大于4,且所述当前待解码系数的平坦度小于预设的第二阈值时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续7个系数划分为8维矢量;或者,
当所述当前子带所包含待解码系数的个数大于4,且所述当前待解码系数的平坦度不小于所述预设的第二阈值时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续3个系数划分为4维矢量。
8.根据权利要求6-7任意一项所述的方法,其特征在于,所述根据选择的维度对所述待解码系数划分成的矢量进行无损解码获得格索引矢量包括:
对所述8维矢量进行无损解码获得8维格索引矢量;和/或,
对所述4维矢量进行无损解码获得4维格索引矢量。
9.根据权利要求6所述的方法,其特征在于,所述格矢量为绝对值格矢量;
所述将所述格索引矢量映射为格矢量之后,还包括:
对保存所述绝对值格矢量中的非零系数在量化之前的符号信息的码元进行解码,获得所述非零系数在量化之前的符号,以及所述非零系数在量化之前的符号与所述非零系数的对应关系;
根据所述对应关系将所述非零系数在量化之前的符号赋给对应的非零系数。
10.一种编码器,其特征在于,包括:
第一矢量划分模块,用于根据当前子带所包含待编码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢量划分;
量化模块,用于根据选择的维度将所述第一矢量划分模块划分成的矢量量化为格矢量,并将所述格矢量映射为格索引矢量;
编码模块,用于对所述格索引矢量进行无损编码;
进一步地,所述编码器还包括:第一平坦度确定模块;所述第一平坦度确定模块,用于根据已编码系数确定所述当前子带中当前待编码系数的平坦度;所述第一矢量划分模块,具体用于根据当前子带所包含待编码系数的个数,以及所述第一平坦度确定模块确定的当前待编码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的系数进行矢量划分;
或者,
所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的个数为8的整数倍时,将所述当前子带中的待编码系数划分为第一数量的8维矢量,所述第一数量为所述当前子带所包含待编码系数的个数除以8的商;或者,所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的个数不是8的整数倍时,将所述当前子带中的待编码系数划分为第二数量的8维矢量和一个4维矢量,所述第二数量为所述当前子带所包含待编码系数的个数减去4之后的差值除以8的商。
11.根据权利要求10所述的编码器,其特征在于,所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的个数等于4时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续3个系数划分为4维矢量;或者,
所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的个数大于4,且所述当前待编码系数的平坦度小于预设的第一阈值时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续7个系数划分为8维矢量;或者,
所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的个数大于4,且所述当前待编码系数的平坦度不小于所述预设的第一阈值时,将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续3个系数划分为4维矢量。
12.根据权利要求10-11任意一项所述的编码器,其特征在于,所述量化模块具体用于将所述8维矢量量化为E8格矢量;和/或,
所述量化模块具体用于将所述4维矢量量化为D4格矢量。
13.根据权利要求10所述的编码器,其特征在于,还包括:
符号分离模块,用于确定所述第一矢量划分模块划分成的矢量的绝对值;
所述量化模块,具体用于将所述符号分离模块确定的矢量的绝对值量化为绝对值格矢量,并将所述绝对值格矢量映射为格索引矢量。
14.根据权利要求13所述的编码器,其特征在于,还包括:
保存模块,用于保存所述绝对值格矢量中非零系数在量化之前的符号信息,所述符号信息包括所述非零系数在量化之前的符号,以及所述非零系数在量化之前的符号与所述非零系数的对应关系;
所述编码模块,具体用于对所述格索引矢量进行无损编码,并对所述保存模块保存的符号信息进行编码。
15.一种解码器,其特征在于,包括:
第二矢量划分模块,用于根据当前子带所包含待解码系数的个数,从至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢量划分;
解码模块,用于根据选择的维度对所述第二矢量划分模块划分成的矢量进行无损解码获得格索引矢量;
逆量化模块,用于将所述格索引矢量映射为格矢量;
进一步地,所述解码器还包括:第二平坦度确定模块;所述第二平坦度确定模块,用于根据已解码系数确定所述当前子带中当前待解码系数的平坦度;所述第二矢量划分模块,具体用于根据当前子带所包含待解码系数的个数,以及所述第二平坦度确定模块确定的当前待解码系数的平坦度,从至少两个维度矢量中选择至少一个对所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的系数进行矢量划分;
或者,
所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的个数为8的整数倍时,将所述当前子带中的待解码系数划分为第三数量的8维矢量,所述第三数量为所述当前子带所包含待解码系数的个数除以8的商;或者,所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的个数不是8的整数倍时,将所述当前子带中的待解码系数划分为第四数量的8维矢量和一个4维矢量,所述第四数量为所述当前子带所包含待解码系数的个数减去4之后的差值除以8的商。
16.根据权利要求15所述的解码器,其特征在于,所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的个数等于4时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续3个系数划分为4维矢量;或者,
所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的个数大于4,且所述当前待解码系数的平坦度小于预设的第二阈值时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续7个系数划分为8维矢量;或者,
所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的个数大于4,且所述当前待解码系数的平坦度不小于所述预设的第二阈值时,将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续3个系数划分为4维矢量。
17.根据权利要求15-16任意一项所述的解码器,其特征在于,所述解码模块具体用于对所述8维矢量进行无损解码获得8维格索引矢量;和/或,
所述解码模块具体用于对所述4维矢量进行无损解码获得4维格索引矢量。
18.根据权利要求15所述的解码器,其特征在于,还包括:
符号解码模块,用于当所述逆量化模块获得的格矢量为绝对值格矢量时,对保存所述绝对值格矢量中的非零系数在量化之前的符号信息的码元进行解码,获得所述非零系数在量化之前的符号,以及所述非零系数在量化之前的符号与所述非零系数的对应关系;根据所述对应关系将所述非零系数在量化之前的符号赋给对应的非零系数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101177049A CN102158692B (zh) | 2010-02-11 | 2010-02-11 | 编码方法、解码方法、编码器和解码器 |
PCT/CN2011/070009 WO2011097963A1 (zh) | 2010-02-11 | 2011-01-04 | 编码方法、解码方法、编码器和解码器 |
US13/572,980 US9991905B2 (en) | 2010-02-11 | 2012-08-13 | Encoding method, decoding method, encoder and decoder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101177049A CN102158692B (zh) | 2010-02-11 | 2010-02-11 | 编码方法、解码方法、编码器和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102158692A CN102158692A (zh) | 2011-08-17 |
CN102158692B true CN102158692B (zh) | 2013-02-13 |
Family
ID=44367245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101177049A Active CN102158692B (zh) | 2010-02-11 | 2010-02-11 | 编码方法、解码方法、编码器和解码器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9991905B2 (zh) |
CN (1) | CN102158692B (zh) |
WO (1) | WO2011097963A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2982446A1 (fr) | 2011-11-07 | 2013-05-10 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
FR2982447A1 (fr) * | 2011-11-07 | 2013-05-10 | France Telecom | Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants |
WO2014118597A1 (en) * | 2013-02-01 | 2014-08-07 | Nokia Corporation | Method and apparatus for lattice vector quantization of an audio signal |
US9736000B2 (en) * | 2013-08-23 | 2017-08-15 | Macom Connectivity Solutions, Llc | Duplex transmission over reduced pairs of twinax cables |
CN110033779B (zh) * | 2014-02-27 | 2023-11-17 | 瑞典爱立信有限公司 | 用于棱椎矢量量化编索引和解索引的方法和装置 |
CN105791827B (zh) * | 2016-02-26 | 2018-07-24 | 北京计算机技术及应用研究所 | 一种无线信道的视频编码方法 |
CN115116456A (zh) * | 2022-06-15 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 音频处理方法、装置、设备、存储介质及计算机程序产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110214A (zh) * | 2007-08-10 | 2008-01-23 | 北京理工大学 | 一种基于多描述格型矢量量化技术的语音编码方法 |
CN101266796A (zh) * | 2007-03-12 | 2008-09-17 | 华为技术有限公司 | 一种量化编解码方法及装置 |
CN101430881A (zh) * | 2008-11-10 | 2009-05-13 | 华为技术有限公司 | 一种编码、解码、编解码方法、编解码***以及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60017825T2 (de) * | 1999-03-23 | 2006-01-12 | Nippon Telegraph And Telephone Corp. | Verfahren und Vorrichtung zur Kodierung und Dekodierung von Audiosignalen und Aufzeichnungsträger mit Programmen dafür |
CA2388358A1 (en) | 2002-05-31 | 2003-11-30 | Voiceage Corporation | A method and device for multi-rate lattice vector quantization |
US20070168197A1 (en) * | 2006-01-18 | 2007-07-19 | Nokia Corporation | Audio coding |
US7953595B2 (en) * | 2006-10-18 | 2011-05-31 | Polycom, Inc. | Dual-transform coding of audio signals |
US7966175B2 (en) | 2006-10-18 | 2011-06-21 | Polycom, Inc. | Fast lattice vector quantization |
-
2010
- 2010-02-11 CN CN2010101177049A patent/CN102158692B/zh active Active
-
2011
- 2011-01-04 WO PCT/CN2011/070009 patent/WO2011097963A1/zh active Application Filing
-
2012
- 2012-08-13 US US13/572,980 patent/US9991905B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266796A (zh) * | 2007-03-12 | 2008-09-17 | 华为技术有限公司 | 一种量化编解码方法及装置 |
CN101110214A (zh) * | 2007-08-10 | 2008-01-23 | 北京理工大学 | 一种基于多描述格型矢量量化技术的语音编码方法 |
CN101430881A (zh) * | 2008-11-10 | 2009-05-13 | 华为技术有限公司 | 一种编码、解码、编解码方法、编解码***以及相关装置 |
Non-Patent Citations (2)
Title |
---|
Andras Mehes et al..Binary Lattice Vector Quantization with Linear Block Codes and Affine Index Assignments.《IEEE TRANSCATIONS ON INFORMATION THEORY》.1998,第44卷(第1期), * |
甘涛 等.基于四叉树结构的小波格型矢量量化.《电子科技大学学报》.2005,第34卷(第4期), * |
Also Published As
Publication number | Publication date |
---|---|
US9991905B2 (en) | 2018-06-05 |
CN102158692A (zh) | 2011-08-17 |
WO2011097963A1 (zh) | 2011-08-18 |
US20120307909A1 (en) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102158692B (zh) | 编码方法、解码方法、编码器和解码器 | |
CA2637185C (en) | Complex-transform channel coding with extended-band frequency coding | |
US8190425B2 (en) | Complex cross-correlation parameters for multi-channel audio | |
JP4963498B2 (ja) | 非典型的な部分系列に関する部分情報を用いた音声及びオーディオ符号化パラメータの量子化 | |
EP1969593B1 (en) | Multiple description coding using correlating transforms | |
KR101895198B1 (ko) | 오디오 인코더 및 디코더 | |
US8447591B2 (en) | Factorization of overlapping tranforms into two block transforms | |
WO2008022564A1 (en) | Audio encoding system | |
US10049683B2 (en) | Audio encoder and decoder | |
US20120232909A1 (en) | Method and system for two-step spreading for tonal artifact avoidance in audio coding | |
CN102201238A (zh) | 用于编码和解码激励模式的方法和装置 | |
CN102572426A (zh) | 一种数据处理的方法和装置 | |
US20110135007A1 (en) | Entropy-Coded Lattice Vector Quantization | |
CN104246875A (zh) | 利用条件量化器的音频编码和解码 | |
CA2803273A1 (en) | Encoding method, decoding method, encoding device, decoding device, program, and recording medium | |
KR20210133551A (ko) | 적응형 주파수 복원 기법 기반 오디오 부호화 방법 | |
CN102801427B (zh) | 源信号变速率格矢量量化的编解码方法和*** | |
US10861469B2 (en) | Apparatuses and methods for encoding and decoding a multichannel audio signal | |
Nemer et al. | Reducing Musical Noise in Transform Based Audio Codecs | |
KR20230121396A (ko) | 신경망을 이용한 스테레오 부호화 방법 및 부호화 장치, 복호화 방법 및 복호화 장치 | |
Cheng et al. | Audio coding and image denoising based on the nonuniform modulated complex lapped transform | |
US7580843B2 (en) | Synthesis subband filter process and apparatus | |
WO2013146895A1 (ja) | 符号化方法、符号化装置、復号方法、復号装置、プログラム及び記録媒体 |
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 |
Effective date of registration: 20211223 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |