Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ENCODING METHOD, DECODING METHOD, ENCODER AND DECODER
Document Type and Number:
WIPO Patent Application WO/2011/097963
Kind Code:
A1
Abstract:
An encoding method, a decoding method, an encoder and a decoder are provided, wherein the encoding method includes: according to the number of the coefficients to be encoded contained in the current sub-band, the coefficients to be encoded is split vectorially by at least one dimension vector selected from at least two dimension vectors (101); according to the selected dimension, the vectors split from the coefficients to be encoded are quantized as lattice vectors, and the lattice vectors are mapped into lattice index vectors (102); and the lattice index vectors are encoded losslessly (103)

Inventors:
XIAO WEI (CN)
ZHANG QING (CN)
Application Number:
PCT/CN2011/070009
Publication Date:
August 18, 2011
Filing Date:
January 04, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
XIAO WEI (CN)
ZHANG QING (CN)
International Classes:
H03M7/00
Foreign References:
US20070168197A12007-07-19
CN101266796A2008-09-17
CN101110214A2008-01-23
Download PDF:
Claims:
权利要求

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

根据当前子带所包含待编码系数的个数, 从至少两个维度矢量中选择 至少一个对所述当前子带中的待编码系数进行矢量划分;

根据选择的维度将所述待编码系数划分成的矢量量化为格矢量, 并将 所述格矢量映射为格索引矢量;

对所述格索引矢量进行无损编码。

2、 根据权利要求 1所述的方法, 其特征在于, 所述根据当前子带所包 含待编码系数的个数, 从至少两个维度矢量中选择至少一个对所述当前子 带中的待编码系数进行矢量划分之前, 还包括:

根据已编码系数确定所述当前子带中当前待编码系数的平坦度; 所述根据当前子带所包含待编码系数的个数, 从至少两个维度矢量中 选择至少一个对所述当前子带中的待编码系数进行矢量划分包括:

根据当前子带所包含待编码系数的个数, 以及所述当前待编码系数的 平坦度, 从至少两个维度矢量中选择至少一个对所述当前子带中当前待编 码系数及与所述当前待编码系数右相邻的系数进行矢量划分。

3、 根据权利要求 2所述的方法, 其特征在于, 所述根据当前子带所包 含待编码系数的个数, 以及所述当前待编码系数的平坦度, 从至少两个维 度矢量中选择至少一个对所述当前子带中当前待编码系数及与所述当前待 编码系数右相邻的系数进行矢量划分包括:

当所述当前子带所包含待编码系数的个数等于 4 时, 将所述当前子带 中当前待编码系数及与所述当前待编码系数右相邻的连续 3个系数划分为 4 维矢量; 或者,

当所述当前子带所包含待编码系数的个数大于 4,且所述当前待编码系 数的平坦度小于预设的第一阈值时, 将所述当前子带中当前待编码系数及 与所述当前待编码系数右相邻的连续 7个系数划分为 8维矢量; 或者, 当所述当前子带所包含待编码系数的个数大于 4,且所述当前待编码系 数的平坦度不小于所述预设的第一阈值时, 将所述当前子带中当前待编码 系数及与所述当前待编码系数右相邻的连续 3个系数划分为 4维矢量。

4、 根据权利要求 1所述的方法, 其特征在于, 所述根据当前子带所包 含待编码系数的个数, 从至少两个维度矢量中选择至少一个对所述当前子 带中的待编码系数进行矢量划分包括:

当所述当前子带所包含待编码系数的个数为 8 的整数倍时, 将所述当 前子带中的待编码系数划分为第一数量的 8 维矢量, 所述第一数量为所述 当前子带所包含待编码系数的个数除以 8的商; 或者,

当所述当前子带所包含待编码系数的个数不是 8 的整数倍时, 将所述 当前子带中的待编码系数划分为第二数量的 8维矢量和一个 4维矢量, 所 述第二数量为所述当前子带所包含待编码系数的个数减去 4之后的差值除 以 8的商。

5、 根据权利要求 1-4任意一项所述的方法, 其特征在于, 所述根据选 择的维度将所述待编码系数划分成的矢量量化为格矢量包括:

将所述 8维矢量量化为 E8格矢量; 和 /或,

将所述 4维矢量量化为 D4格矢量。

6、 根据权利要求 1所述的方法, 其特征在于, 所述根据选择的维度将 所述待编码系数划分成的矢量量化为格矢量之前, 还包括:

确定所述待编码系数划分成的矢量的绝对值;

所述根据选择的维度将所述待编码系数划分成的矢量量化为格矢量, 并将所述格矢量映射为格索引矢量包括:

根据选择的维度将所述矢量的绝对值量化为绝对值格矢量, 并将所述 绝对值格矢量映射为格索引矢量。

7、 根据权利要求 6所述的方法, 其特征在于, 还包括: 保存所述绝对 值格矢量中的非零系数在量化之前的符号信息, 所述符号信息包括所述非 零系数在量化之前的符号, 以及所述非零系数在量化之前的符号与所述非 零系数的对应关系;

所述对所述格索引矢量进行无损编码包括:

对所述格索引矢量进行无损编码, 并对保存的符号信息进行编码。

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

根据当前子带所包含待解码系数的个数, 从至少两个维度矢量中选择 至少一个对所述当前子带中的待解码系数进行矢量划分;

根据选择的维度对所述待解码系数划分成的矢量进行无损解码获得格 索引矢量;

将所述格索引矢量映射为格矢量。

9、 根据权利要求 8所述的方法, 其特征在于, 所述根据当前子带所包 含待解码系数的个数, 从至少两个维度矢量中选择至少一个对所述当前子 带中的待解码系数进行矢量划分之前, 还包括:

根据已解码系数确定所述当前子带中当前待解码系数的平坦度; 所述根据当前子带所包含待解码系数的个数, 从至少两个维度矢量中 选择至少一个对所述当前子带中的待解码系数进行矢量划分包括:

根据当前子带所包含待解码系数的个数, 以及所述当前待解码系数的 平坦度, 从至少两个维度矢量中选择至少一个对所述当前子带中当前待解 码系数及与所述当前待解码系数右相邻的系数进行矢量划分。

10、 根据权利要求 9所述的方法, 其特征在于, 所述根据当前子带所 包含待解码系数的个数, 以及所述当前待解码系数的平坦度, 从至少两个 维度矢量中选择至少一个对所述当前子带中当前待解码系数及与所述当前 待解码系数右相邻的系数进行矢量划分包括:

当所述当前子带所包含待解码系数的个数等于 4 时, 将所述当前子带 中当前待解码系数及与所述当前待解码系数右相邻的连续 3个系数划分为 4 维矢量; 或者,

当所述当前子带所包含待解码系数的个数大于 4,且所述当前待解码系 数的平坦度小于预设的第二阈值时, 将所述当前子带中当前待解码系数及 与所述当前待解码系数右相邻的连续 7个系数划分为 8维矢量; 或者, 当所述当前子带所包含待解码系数的个数大于 4,且所述当前待解码系 数的平坦度不小于所述预设的第二阈值时, 将所述当前子带中当前待解码 系数及与所述当前待解码系数右相邻的连续 3个系数划分为 4维矢量。

11、 根据权利要求 8所述的方法, 其特征在于, 所述根据当前子带所 包含待解码系数的个数, 对所述当前子带中的待解码系数进行矢量划分包 括:

当所述当前子带所包含待解码系数的个数为 8 的整数倍时, 将所述当 前子带中的待解码系数划分为第三数量的 8 维矢量, 所述第三数量为所述 当前子带所包含待解码系数的个数除以 8的商; 或者,

当所述当前子带所包含待解码系数的个数不是 8 的整数倍时, 将所述 当前子带中的待解码系数划分为第四数量的 8维矢量和一个 4维矢量, 所 述第四数量为所述当前子带所包含待解码系数的个数减去 4之后的差值除 以 8的商。

12、 根据权利要求 8-1 1任意一项所述的方法, 其特征在于, 所述根据 选择的维度对所述待解码系数划分成的矢量进行无损解码获得格索引矢量 包括:

对所述 8维矢量进行无损解码获得 8维格索引矢量; 和 /或, 对所述 4维矢量进行无损解码获得 4维格索引矢量。

13、 根据权利要求 8所述的方法, 其特征在于, 所述格矢量为绝对值 格矢量;

所述将所述格索引矢量映射为格矢量之后, 还包括:

对保存所述绝对值格矢量中的非零系数在量化之前的符号信息的码元 进行解码, 获得所述非零系数在量化之前的符号, 以及所述非零系数在量 化之前的符号与所述非零系数的对应关系;

根据所述对应关系将所述非零系数在量化之前的符号赋给对应的非零 系数。

14、 一种编码器, 其特征在于, 包括:

第一矢量划分模块, 用于根据当前子带所包含待编码系数的个数, 从 至少两个维度矢量中选择至少一个对所述当前子带中的待编码系数进行矢 量划分;

量化模块, 用于根据选择的维度将所述第一矢量划分模块划分成的矢 量量化为格矢量, 并将所述格矢量映射为格索引矢量;

编码模块, 用于对所述格索引矢量进行无损编码。

15、 根据权利要求 14所述的编码器, 其特征在于, 还包括: 第一平坦度确定模块, 用于根据已编码系数确定所述当前子带中当前 待编码系数的平坦度;

所述第一矢量划分模块, 具体用于根据当前子带所包含待编码系数的 个数, 以及所述第一平坦度确定模块确定的当前待编码系数的平坦度, 从 至少两个维度矢量中选择至少一个对所述当前子带中当前待编码系数及与 所述当前待编码系数右相邻的系数进行矢量划分。

16、 根据权利要求 15所述的编码器, 其特征在于, 所述第一矢量划分 模块具体用于当所述当前子带所包含待编码系数的个数等于 4 时, 将所述 当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续 3 个系 数划分为 4维矢量; 或者,

所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的 个数大于 4, 且所述当前待编码系数的平坦度小于预设的第一阈值时, 将所 述当前子带中当前待编码系数及与所述当前待编码系数右相邻的连续 7 个 系数划分为 8维矢量; 或者, 所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的 个数大于 4, 且所述当前待编码系数的平坦度不小于所述预设的第一阈值 时, 将所述当前子带中当前待编码系数及与所述当前待编码系数右相邻的 连续 3个系数划分为 4维矢量。

17、 根据权利要求 14所述的编码器, 其特征在于, 所述第一矢量划分 模块具体用于当所述当前子带所包含待编码系数的个数为 8 的整数倍时, 将所述当前子带中的待编码系数划分为第一数量的 8 维矢量, 所述第一数 量为所述当前子带所包含待编码系数的个数除以 8的商; 或者,

所述第一矢量划分模块具体用于当所述当前子带所包含待编码系数的 个数不是 8 的整数倍时, 将所述当前子带中的待编码系数划分为第二数量 的 8维矢量和一个 4维矢量, 所述第二数量为所述当前子带所包含待编码 系数的个数减去 4之后的差值除以 8的商。

18、 根据权利要求 14-17任意一项所述的编码器, 其特征在于, 所述量 化模块具体用于将所述 8维矢量量化为 E8格矢量; 和 /或,

所述量化模块具体用于将所述 4维矢量量化为 D4格矢量。

19、 根据权利要求 14所述的编码器, 其特征在于, 还包括: 符号分离模块, 用于确定所述第一矢量划分模块划分成的矢量的绝对 值;

所述量化模块, 具体用于将所述符号分离模块确定的矢量的绝对值量 化为绝对值格矢量, 并将所述绝对值格矢量映射为格索引矢量。

20、 根据权利要求 19所述的编码器, 其特征在于, 还包括: 保存模块, 用于保存所述绝对值格矢量中非零系数在量化之前的符号 信息, 所述符号信息包括所述非零系数在量化之前的符号, 以及所述非零 系数在量化之前的符号与所述非零系数的对应关系;

所述编码模块, 具体用于对所述格索引矢量进行无损编码, 并对所述 保存模块保存的符号信息进行编码。 21、 一种解码器, 其特征在于, 包括:

第二矢量划分模块, 用于根据当前子带所包含待解码系数的个数, 从 至少两个维度矢量中选择至少一个对所述当前子带中的待解码系数进行矢 量划分;

解码模块, 用于根据选择的维度对所述第二矢量划分模块划分成的矢 量进行无损解码获得格索引矢量;

逆量化模块, 用于将所述格索引矢量映射为格矢量。

22、 根据权利要求 21所述的解码器, 其特征在于, 还包括: 第二平坦度确定模块, 用于根据已解码系数确定所述当前子带中当前 待解码系数的平坦度;

所述第二矢量划分模块, 具体用于根据当前子带所包含待解码系数的 个数, 以及所述第二平坦度确定模块确定的当前待解码系数的平坦度, 从 至少两个维度矢量中选择至少一个对所述当前子带中当前待解码系数及与 所述当前待解码系数右相邻的系数进行矢量划分。

23、 根据权利要求 22所述的解码器, 其特征在于, 所述第二矢量划分 模块具体用于当所述当前子带所包含待解码系数的个数等于 4 时, 将所述 当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续 3 个系 数划分为 4维矢量; 或者,

所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的 个数大于 4, 且所述当前待解码系数的平坦度小于预设的第二阐值时, 将所 述当前子带中当前待解码系数及与所述当前待解码系数右相邻的连续 7 个 系数划分为 8维矢量; 或者,

所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的 个数大于 4, 且所述当前待解码系数的平坦度不小于所述预设的第二阈值 时, 将所述当前子带中当前待解码系数及与所述当前待解码系数右相邻的 连续 3个系数划分为 4维矢量。 24、 根据权利要求 21所述的解码器, 其特征在于, 所述第二矢量划分 模块具体用于当所述当前子带所包含待解码系数的个数为 8 的整数倍时, 将所述当前子带中的待解码系数划分为第三数量的 8 维矢量, 所述第三数 量为所述当前子带所包含待解码系数的个数除以 8的商; 或者,

所述第二矢量划分模块具体用于当所述当前子带所包含待解码系数的 个数不是 8 的整数倍时, 将所述当前子带中的待解码系数划分为第四数量 的 8维矢量和一个 4维矢量, 所述第四数量为所述当前子带所包含待解码 系数的个数减去 4之后的差值除以 8的商。

25、 根据权利要求 21-24任意一项所述的解码器, 其特征在于, 所述解 码模块具体用于对所述 8维矢量进行无损解码获得 8维格索引矢量;和 /或, 所述解码模块具体用于对所述 4维矢量进行无损解码获得 4维格索引 矢量。

26、 根据权利要求 21所述的解码器, 其特征在于, 还包括:

符号解码模块, 用于当所述逆量化模块获得的格矢量为绝对值格矢量 时, 对保存所述绝对值格矢量中的非零系数在量化之前的符号信息的码元 进行解码, 获得所述非零系数在量化之前的符号, 以及所述非零系数在量 化之前的符号与所述非零系数的对应关系; 根据所述对应关系将所述非零 系数在量化之前的符号赋给对应的非零系数。

Description:
编码方法、 解码方法、 编码器和解码器 本申请要求于 2010 年 2 月 11 日提交中国专利局、 申请号为 201010117704.9 , 发明名称为 "编码方法、 解码方法、 编码器和解码器" 的 中国专利申请的优先权, 在先申请文件的内容通过引用结合在本申请中 。 技术领域

本发明实施例涉及视频技术领域, 尤其涉及一种编码方法、 解码方法、 编码器和解码器。 背景技术

变换域编码是目前语音频标准中最常见的一种 编解码技术, 例如: 动 态影像专家压缩标准音频层面 3 ( Moving Picture Experts Group Audio Layer III; 以下简称: MP3 ), 高级音频编码(Advanced Audio Coding; 以下简称:

AAC ) 及其后续版本。 在一个基于变换域编码技术的语音编码系统中 , 量 化器是整个语音编码系统的核心模块之一。 量化器的作用是将输入的变换 系数映射为有限个数据 (一般为整数)。

现有语音频标准中矢量量化器应用的范围很广 。 矢量量化器是将连续 的若千数据合并, 统一进行量化。 而在矢量量化器中, 格矢量量化器具有 存储量等方面的优势, 因而获得了广泛的应用。

多码率矢量量化编码方法作用于频 "普数据, 以 8个数为一组, 根据就 近原则将这 8个数量化为 RE 8 集合上的点。 之后, 选取不同的码本, 输出 相应的基础码本、 基^ i码本索引和扩展码本的值。

但是, 现有的多码率矢量量化编码方法在格的选择上 固定为 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维矢量 { Xl , x 2 ,…, χ η } , 上述 η 维矢量中的各分量均为整数且各分量之和为偶 数, 例如: {1, -1, 2, 0}。

Ε8格的定义为 Ε, D 8 u D 8 + iiiiiii丄 简言之, 一部分 E8

2'2'2'2'2'2'2'2

格是 D8格;而另一部分 E8格为 8维矢量 {x x 2 , x s },满足 Xi eZ + 0.5, i= 1, …, n, Z表示整数集, 且该 8维矢量的各分量之和为偶数。

本实施例中, 格矢量与格索引矢量——对应。 定义格矢量为 X, X对 应的格索引矢量为 K, 对于 D4格和 Ε8格, 均存在生成矩阵 G与该生成矩 阵 G的逆矩阵 G , 且满足:

K = X G

(1) X = K G 因此, 本实施例中, 格矢量与格索引的映射是可逆的。

具体地, D4格的生成矩阵 G D4 , 以及该生成矩阵 G D4 的逆矩阵分别为:

(2)

E8格的生成矩阵 G E8 , 以及该生成矩阵 G E8 的逆矩阵分别为:

步骤 103, 对格索 I矢量进行无损编码。

在本实施例的一种实现方式中, 在步骤 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编码器还可用于处理语音信号的时域( Time Domain; 以下简称: TD ) 支路。 在 TD支路下, 该 USAC编码器中有一子 模块用于处理时域编码后的残差系数, 该残差系数也可用本发明实施例提 供的方法进行处理, 具体的实现方式与 FD支路的实现方式一致, 在此不再 赘述。

图 3为本发明编码方法另一个实施例的流程图, 如图 3所示, 该编码 方法可以包括:

步骤 301, 根据已编码系数确定当前子带中当前待编码系 数的平坦度。 本实施例中, USAC编码器 FD支路的子带划分方式是固定的, 量化、 编码的顺序均是从最低频到最高频。 对于每个子带, 假定每个子带包含的 待编码系数个数均为 L。 在 USAC编码器中, 每个子带包含的待编码系数 的个数限定为 4的倍数。

其中, 平坦度反映了频谱的平坦程度, 可以用多种数学特性来表征, 例如: 方差等; 本实施例对平坦度的表现形式不作限定, 只要可以反映频 谱的平坦程度即可。 本实施例中, 设 N 个相邻的待编码系数组成数组 {x。, X,,..., x^}, 则平坦度 P ( Xl ) 可以为:

N-1

Σ Ι

P ( Xi ) = ~ ^ _ , 其中 i = o, 1, N-1 (4)

N-maxIx

将 P 与预设的第一阁值 THD进行比较, 若 P ( xj <THD, 则说 明频语比较平坦; 若 P ( Xl ) >THD, 则说明频谱比较振荡。

根据信号的相关性, 在时域或频域上, 相邻子带的属性是相近的。 例 如: 支设在第 i帧第 j个子带内频谱比较平坦, 则在第 i+1帧第 j个子带内 频语比较平坦的可能性也是非常大的。 同样, 频域上相邻子带间也存在类 似的相关性。

设当前待编码系数为第 i帧第 j个系数 , 则根据已编码系数确定当 前子带中当前待编码系数 x ; 的平坦度可以为:

式 (5) 中, P ( x i} )是当前待编码系数 x ;j , 及与 x ;j 右相邻的连续 Ί 个系数 { Xi ,j, x ij+1 ,..., χ ϋ+7 }的平坦度; Ρ ( x 1- j )是第 i-1帧第 j个系数 Χι-υ , 及与 Xi-ij右相邻的 7个系数 {χ;_ 1 ]5 Xi— · · ·, Μϋ+ 7 }的平坦度; P ( -8 )是第 i帧第 j个系数 x i;j 左相邻的连续 8个系数 {x — 8 , x ] _ 7 ,..., χ ϋ4 }的平坦度; α。 和 为 0至 1之间的小数, 反映了上式两个分量 Ρ ( Xl-lj )和 P ( x 1J-8 )对 P ( ) 的影响权值, 在实际应用中, α。和 为预先设定的常数。 另外, 需 要考虑边界条件, 在每一帧的起始阶段的待编码系数, 仅能获得频域上若 干相邻待编码系数的相关信息。在该边界条件 下, 强制设定^^且^二。。

步骤 302, 根据当前子带所包含待编码系数的个数, 以及当前待编码系 数的平坦度, 从至少两个维度矢量中选择至少一个对当前子 带中当前待编 码系数及与该当前待编码系数右相邻的系数进 行矢量划分。

下面结合图 4, 对步骤 302中矢量划分的操作进行详细说明。

图 4为本发明矢量划分方法一个实施例的流程图 在图 4所示实施例 中, 假设当前子带所包含待编码系数的总数为 L, 已编码系数的个数为 k, 预设的第一闳值为 THD。

如图 4所示, 该矢量划分方法可以包括:

步骤 401,判断 L与 k的差值是否等于 4。如果等于 4,则执行步骤 402; 如果 L与 k的差值大于 4, 则执行步骤 403。

步骤 402,将当前子带中当前待编码系数及与该当前 待编码系数右相邻 的连续 3个系数划分为 4维矢量, 结束本次流程。

举例来说, 假设当前子带中当前待编码系数为 x ; j , 则可以将

{ , ¾ +1 2 +3 }划分为一个 4维矢量。

步骤 403 , 判断当前待编码系数的平坦度是否小于 THD; 如果小于, 则执行步骤 404; 如杲当前待编码系数的平坦度不小于 THD, 则执行步骤 405。

其中, THD可以根据编码的性能要求任意设置, 本发明实施例对 THD 的大小不作限定。

步骤 404,将当前子带中当前待编码系数及与该当前 待编码系数右相邻 的连续 Ί个系数划分为 8维矢量, 并将 k的值加 8, 执行步骤 406。

举例来说, 假设当前子带中当前待编码系数为 x ; j , 则可以将 x, J+ i' - ' x, +7 }划分为一个 8维矢量。

步骤 405,将当前子带中当前待编码系数及与当前待 编码系数右相邻的 连续 3个系数划分为 4维矢量, 并将 k的值加 4, 执行步骤 406。

举例来说, 假设当前子带中当前待编码系数为 x ; j , 则可以将 { , ¾ +1 ,¾ +2 +3 }划分为一个 4维矢量。

步骤 406, 判断 k是否等于!^。 如果等于, 则结束本次流程; 如果 L大 于 k, 则返回执行步骤 401。

至此, 本实施例中矢量划分的操作完成。

步骤 303, 根据选择的维度将划分的各个矢量量化为格矢 量, 并将该格 矢量映射为格索引矢量。

本实施例中, 对划分的各个矢量逐个进行量化。 对于 8维矢量, 先将 8 维矢量量化为一个 E8格矢量, 然后, 参考式( 1 )和式 ( 3 )计算该 E8格 矢量对应的格索引矢量; 而对于 4维矢量, 则先将 4维矢量量化成一个 D4 格矢量, 然后, 参考式( 1 )和式(2 )计算该 D4格矢量对应的格索引矢量。

步骤 304, 对格索 1矢量进行无损编码。

具体地, 在进行无损编码时, 既可以对格索引矢量中的各分量单独进 行编码, 也可以对格索引矢量中的多个分量联合进行编 码。 特别地, 在对 格索引矢量进行无损编码时, 可以调用 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维矢

8 量, 其中, ^为第一数量; 若 L不是 8的整数倍, 即 L不能够被 8整除,

8 则将这 L个待编码系数分解成 个 8维矢量和 1个 4维矢量,其中, ^

8 8 为第二数量。

步骤 602, 根据选择的维度将划分的各个矢量量化为格矢 量, 并将该格 矢量映射为格索引矢量。

本实施例中, 可以顺序将划分的各个矢量量化为格矢量, 并将该格矢 量映射为格索引矢量。

举例来说, 假定当前子带所包含的待编码系数被划分成了 M个矢量。 可以首先将前 M-1个矢量量化成 M-1个 E8格矢量; 然后, 参考式( 1 )和 式(3 )计算该 E8格矢量对应的格索引矢量。 对于最后一个矢量, 若该最 后一个矢量为 8维矢量,则可以先将该最后一个矢量量化为 个 E8格矢量, 然后, 参考式(1 )和式(3 )计算该 E8格矢量对应的格索引矢量; 若该最 后一个矢量为 4维矢量,则可以先将该最后一个矢量量化为 个 D4格矢量, 然后, 参考式( 1 )和式 (2 ) 计算该 D4格矢量对应的格索引矢量。

步骤 603, 对格索 1矢量进行无损编码。

具体地, 在进行无损编码时, 既可以对格索引矢量中的各分量单独进 行编码, 也可以对格索引矢量中的多个分量联合进行编 码。 特别地, 在对 格索引矢量进行无损编码时, 可以调用 USAC编码器中的算术编码模块完 成。

最后, 将所有待处理的子带均进行量化和编码后, 将码流合并, 编码 端的操作完成。

上述实施例中, 编码端根据当前子带所包含待编码系数的个数 , 从至 少两个维度矢量中选择至少一个对当前子带中 的待编码系数进行矢量划 分, 然后将待编码系数划分成的矢量量化为格矢量 , 并将该格矢量映射为 格索引矢量, 最后对格索引矢量进行无损编码, 总体上可以减少编码使用 的比特数, 提高了量化质量, 进而提高了编码效率和编码质量, 为处理包 括音乐信号在内的信号类型提供了高质量的量 化方法。

图 7为本发明解码方法再一个实施例的流程图, 如图 7所示, 该解码 方法可以包括:

步骤 701, 根据当前子带所包含待解码系数的个数, 从至少两个维度矢 量中选择至少一个对当前子带中的待解码系数 进行矢量划分。

具体地, 如果当前子带所包含待解码系数的个数为 8 的整数倍, 则可 以将当前子带中的待解码系数划分为第三数量 的 8 维矢量, 该第三数量为 当前子带所包含待解码系数的个数除以 8 的商; 或者, 如果当前子带所包 含待解码系数的个数不是 8 的整数倍, 则可以将当前子带中的待解码系数 划分为第四数量的 8维矢量和一个 4维矢量, 该第四数量为当前子带所包 含待解码系数的个数减去 4之后的差值除以 8的商。

举例来说, 假定当前子带所包含待解码系数的个数为 L, 如果 L是 8 的整数倍, 即 L能够被 8整除, 则将这 L个待解码系数划分为 ^个 8维矢

8 量, 其中, 为第三数量; 若 L不是 8的整数倍, 即 L不能够被 8整除,

8 则将这 L个待解码系数分解成 个 8维矢量和 1个 4维矢量,其中, ^

8 8 为第四数量。

步骤 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所示实施例中, 在解码端, 若格索引矢 量映射成的格矢量为绝对值格矢量, 还需要对保存该绝对值格矢量中的非 零系数在量化之前的符号信息的码元进行解码 , 获得该非零系数在量化之 前的符号, 以及该非零系数在量化之前的符号与该非零系 数的对应关系; 根据该对应关系将非零系数在量化之前的符号 赋给对应的非零系数, 以完 成系数的重建。

本发明实施例的核心之处之一在于量化输出的 不再是格矢量, 而是格 索引矢量, 从而可以彻底解除基于统计训练的基础码本的 约束, 使得量化 更加适应于音乐信号的处理。

例如: X!: {4,4,0,2,2,0,0,0}是落在现有基础码本 的 Q 4 码本, 对应的 格索引矢量为 K 1 : {- 1 ,2,0,1,1 ,0,0,0}。 假定存在另一个格索引矢量 Κ 2 : {-1 ,0,0,1,0,1 ,0,2} , Κ 2 对应的格矢量为 Χ 2 : { 2,2,2,4,2,4,2,2} » 按照信息论的 理论, 对 和 Κ 2 进行编码时使用的比特数是相等的。 若采用现有的多码 率矢量量化编码方法, 在现有的基础码本内, 而 Χ 2 并不在现有的基础码 本内, 因此对上述格矢量 和 X 2 进行编码时, 使用的比特数相差 4艮大。 在实际应用中, 音乐信号的频谱系数分布很难用一个有限空间 的基础码本 描述, 很多情况下, 待编码矢量均不在基础码本内。 若采用现有的多码率 矢量量化编码方法, 会使得对上述格矢量 X 和 X 2 进行编码时使用的比特 数大大增加。

而使用本发明实施例提供的编码方法, 在编码端, 可以通过数学变换 改变待编码系数的分布, 摆脱基础码本的约束, 对格索引矢量进行无损编 码。 使用本发明实施例提供的解码方法, 在解码端, 进行无损解码获得格 索引矢量, 再利用上述数学变换的可逆性, 无损地得到格矢量。

此外, 考虑到具体编码器和具体解码器子带划分的特 性, 本发明实施 例提供的编码方法和解码方法可以动态地选择 不同维度下的最优格点, 因 此可以获得较佳的量化效果。

本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机 可读取存储介质中, 该程序在执行时, 执行包括上述方法实施例的步骤; 而前述的存储介质包括: 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, 且当前待编码系数的平坦度小于预设的第一阈 值时, 将当 前子带中当前待编码系数及与当前待编码系数 右相邻的连续 Ί 个系数划分 为 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所示的 解码器相比, 不同之处在于, 图 1 1所示的解码器还可以包括: 第二平坦度 确定模块 1004和符号解码模块 1005。

其中, 第二平坦度确定模块 1004, 用于根据已解码系数确定当前子带 中当前待解码系数的平坦度; 这时, 第二矢量划分模块 1001可以根据当前 子带所包含待解码系数的个数, 以及第二平坦度确定模块 1004确定的当前 待解码系数的平坦度, 从至少两个维度矢量中选择至少一个对当前子 带中 当前待解码系数及与当前待解码系数右相邻的 系数进行矢量划分。 具体地, 第二矢量划分模块 1001 可以在当前子带所包含待解码系数的个数等于 4 时, 将当前子带中当前待解码系数及与当前待解码 系数右相邻的连续 3 个 系数划分为 4维矢量; 或者, 第二矢量划分模块 1001可以在当前子带所包 含待解码系数的个数大于 4,且当前待解码系数的平坦度小于预设的第 阈 值时, 将当前子带中当前待解码系数及与当前待解码 系数右相邻的连续 7 个系数划分为 8维矢量; 或者, 第二矢量划分模块 1001可以在当前子带所 包含待解码系数的个数大于 4,且当前待解码系数的平坦度不小于预设的 二阈值时, 将当前子带中当前待解码系数及与当前待解码 系数右相邻的连 续 3个系数划分为 4维矢量。 其中, 该预设的第二阈值可以根据解码的性 能要求任意设置, 本发明实施例对该预设的第二阈值的大小不作 限定; 本 实施例中, 第二阈值的大小与本发明图 1 所示实施例中第一阔值的大小相 等。

本实施例中, 符号解码模块 1005, 用于当逆量化模块 1003获得的格矢 量为绝对值格矢量时, 对保存绝对值格矢量中的非零系数在量化之前 的符 号信息的码元进行解码, 获得该非零系数在量化之前的符号, 以及该非零 系数在量化之前的符号与该非零系数的对应关 系; 根据该对应关系将该非 零系数在量化之前的符号赋给对应的非零系数 , 以完成系数的重建。

上述解码器中, 第二矢量划分模块 1001根据当前子带所包含待解码系 数的个数, 从至少两个维度矢量中选择至少一个对当前子 带中的待解码系 数进行矢量划分, 然后解码模块 1002根据选择的维度对待解码系数划分成 的矢量进行无损解码获得格索引矢量, 逆量化模块 1003将该格索引矢量映 射为格矢量, 完成系数的重建; 从而提高了量化质量, 进而提高了解码效 率和解码质量, 为处理包括音乐信号在内的信号类型提供了高 质量的量化 方法。

本领域技术人员可以理解附图只是一个优选实 施例的示意图, 附图 中的模块或流程并不一定是实施本发明所必须 的。

本领域技术人员可以理解实施例中的装置中的 模块可以按照实施例描 述进行分布于实施例的装置中, 也可以进行相应变化位于不同于本实施例 的一个或多个装置中。 上述实施例的模块可以合并为一个模块, 也可以进 一步拆分成多个子模块。 最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非 对其限制; 尽管参照前述实施例对本发明进行了详细的说 明, 本领域的 普通技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案 进行修改, 或者对其中部分技术特征进行等同替换; 而这些修改或者替 换, 并不使相应技术方案的本质脱离本发明各实施 例技术方案的精神和 范围。