一种量化编解码方法和装置转让专利

申请号 : CN200910260527.7

文献号 : CN102098057B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李海婷张德明本特·凯瑟马格纳斯·斯卡弗皮特·瓦里

申请人 : 华为技术有限公司

摘要 :

本发明实施例提供一种量化编解码方法和装置,涉及通信领域,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。本发明实施例提供的方法为:对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果;对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的非帧间预测量化索引值向解码端输出;根据当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数;对预测系数进行量化,将量化过程中分配的系数量化索引值进行编码,将编码后的系数量化索引值向解码端输出。

权利要求 :

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

对当前帧进行非帧间预测量化,得到所述当前帧的非帧间预测量化结果;

对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的所述非帧间预测量化索引值向解码端输出;

根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数;

对所述预测系数进行量化,将对所述预测系数进行量化的量化过程中分配的系数量化索引值进行编码,将编码后的所述系数量化索引值向解码端输出;

其中,所述根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数包括:根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到使所述当前帧和精细化量化结果之间误差最小的预测系数;

其中,所述精细化量化结果为对所述当前帧及过去至少一帧的非帧间预测量化结果进行帧间预测量化所得到的量化结果。

2.根据权利要求1所述的量化编码方法,其特征在于,所述对当前帧进行非帧间预测量化,包括:对所述当前帧利用其自身的信息进行量化。

3.根据权利要求1所述的量化编码方法,其特征在于,所述非帧间预测量化,包括:非帧间预测直接量化、非帧间预测切换量化中的一种;

其中,所述非帧间预测切换量化为当帧序号满足一定条件时,用所述条件对应的量化方法进行量化。

4.一种量化解码方法,包括正常解码方法和出现丢帧时的异常解码方法,其特征在于,所述正常解码方法包括:接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值;

对所述编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值;

根据所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;

根据所述系数量化索引值,得到量化后的预测系数;

根据所述量化后的预测系数和所述当前帧的非帧间预测量化结果以及过去至少一帧的非帧间预测量化结果,得到所述当前帧的精细化量化结果;

对所述当前帧的精细化量化结果进行反量化,得到重构的所述当前帧;

所述异常解码方法包括:

接收来自编码端的当前帧的编码后的非帧间预测量化索引值;

对所述编码后的非帧间预测量化索引值进行解码,得到非帧间预测量化索引值;

根据所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;

对所述当前帧的非帧间预测量化结果进行反量化,得到重构的所述当前帧。

5.一种编码装置,其特征在于,包括:

非帧间预测量化单元,用于对当前帧进行非帧间预测量化,得到所述当前帧的非帧间预测量化结果;

编码单元,用于对所述非帧间预测量化单元处理过程中分配的非帧间预测量化索引值进行编码;

输出单元,用于将所述编码单元输出的编码后的所述非帧间预测量化索引值向解码端输出;

预测系数获取单元,用于根据所述非帧间预测量化单元获得的所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数;

系数量化单元,用于对所述预测系数获取单元获取的所述预测系数进行量化;

所述编码单元,还用于对所述系数量化单元处理过程中分配的系数量化索引值进行编码;

所述输出单元,还用于将所述编码单元输出的所述系数量化索引值向解码端输出;

其中,所述预测系数获取单元根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数包括:根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到使所述当前帧和精细化量化结果之间误差最小的预测系数;

其中,所述精细化量化结果为对所述当前帧及过去至少一帧的非帧间预测量化结果进行帧间预测量化所得到的量化结果。

6.根据权利要求5所述的编码装置,其特征在于,所述非帧间预测量化单元对当前帧进行的非帧间预测量化,包括:对所述当前帧利用其自身的信息进行量化。

7.根据权利要求5所述的编码装置,其特征在于,所述非帧间预测量化单元进行的非帧间预测量化,包括:非帧间预测直接量化、非帧间预测切换量化中的一种;其中,所述非帧间预测切换量化为当帧序号满足一定条件时,用所述条件对应的量化方法进行量化。

8.一种解码装置,其特征在于,包括:

接收单元,用于接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值;

解码单元,用于对所述接收单元接收的所述编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值;

非帧间预测量化结果获取单元,用于根据所述解码单元得到的所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;

量化系数获取单元,用于根据所述解码单元得到的所述系数量化索引值,得到量化后的预测系数;

精细化量化结果获取单元,用于根据所述量化系数获取单元得到的所述量化后的预测系数,和所述非帧间预测量化结果获取单元得到的所述当前帧以及过去至少一帧的非帧间预测量化结果,得到所述当前帧的精细化量化结果;

反量化单元,用于对所述精细化量化结果获取单元得到的所述当前帧的精细化量化结果进行反量化,得到重构的所述当前帧;或者,对所述非帧间预测量化结果获取单元得到的所述当前帧的非帧间预测量化结果进行反量化,得到重构的所述当前帧。

说明书 :

一种量化编解码方法和装置

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种量化编解码方法和装置。

背景技术

[0002] 量化编码技术是语音/音频编码领域中一种非常广泛应用的技术,无论是AMR(Adaptive Multi Rate,自适应多速率)语音编码器、联合超宽带编码器,还是音频编码领域广泛使用的MPEG(Moving Picture Experts Group,活动图像专家组)AAC(Advanced Audio Coding,高级音频编码)编码器,量化编码技术都是不可或缺的关键技术,量化编码技术的好坏将直接影响整个编码器的性能。
[0003] 量化技术的分类方法较多,其中一种分类方法是将量化技术分成标量量化与矢量量化。矢量量化由于可以很好的消除帧内相关和统计冗余,因此得到了更加长远的发展。
[0004] 编码速率、量化信噪比、计算复杂度和存储量是评价一个矢量量化器好坏的重要指标。矢量量化的方法很多,其主要的发展方向是追求在更低的编码速率下获得更高的量化信噪比,同时保持较低的计算复杂度和存储量。
[0005] 其中,预测矢量量化是为了在消除帧内相关和统计冗余的同时,能够进一步消除帧间相关及帧间冗余而提出的一种广泛应用于量化编码领域的技术。此项技术提出的主要目的是为了提高量化效率,用更低的编码比特数获得同样的量化效果。
[0006] 闭环预测量化是一种比较常用的帧间预测量化技术,其主要原理为:先根据过去帧的量化信号得到当前帧的预测信号,再用当前帧的原始信号减去预测信号得到当前帧的预测残差,最后量化该残差。在此基础上改进后的开环预测量化是另一种比较常用的帧间预测量化技术,其主要原理为:先根据过去帧的量化预测残差信号得到当前帧的预测信号,再用当前帧的原始信号减去预测信号得到当前帧的预测残差,最后量化该残差。再一种方法是转换预测多级矢量量化技术,其主要原理是采用多级矢量量化的思想,在每一级矢量量化的过程中从预先存储的多组预测系数中选择一组使得预测误差最小的预测系数进行预测矢量量化,然后将量化误差作为下一级矢量量化的目标矢量,继续进行预测矢量量化。
[0007] 发明人在实现本发明的过程中发现,上述方法没有考虑编码方法对错误的鲁棒性,会产生错误传递,抗丢包特性较差。

发明内容

[0008] 本发明的实施例提供一种量化编解码方法和装置,在合理去除帧间相关性、提高量化效率的同时,能够提高对错误的鲁棒性,具有较好的抗丢包性。
[0009] 本发明实施例提供一种量化编码方法,包括:
[0010] 对当前帧进行非帧间预测量化,得到所述当前帧的非帧间预测量化结果;
[0011] 对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的所述非帧间预测量化索引值向解码端输出;
[0012] 根据所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数;
[0013] 对所述预测系数进行量化,将所述量化过程中分配的系数量化索引值进行编码,将编码后的所述系数量化索引值向解码端输出。
[0014] 本发明实施例提供一种量化解码方法,包括正常解码方法和异常解码方法,[0015] 所述正常解码方法包括:
[0016] 接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值;
[0017] 对所述编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值;
[0018] 根据所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;
[0019] 根据所述系数量化索引值,得到量化后的预测系数;
[0020] 根据所述量化后的预测系数和所述当前帧的非帧间预测量化结果以及过去至少一帧的非帧间预测量化结果,得到所述当前帧的精细化量化结果;
[0021] 对所述当前帧的精细化量化结果进行反量化,得到重构的所述当前帧;
[0022] 所述异常解码方法包括:
[0023] 接收来自编码端的当前帧的编码后的非帧间预测量化索引值;
[0024] 对所述编码后的非帧间预测量化索引值进行解码,得到非帧间预测量化索引值;
[0025] 根据所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;
[0026] 对所述当前帧的非帧间预测量化结果进行反量化,得到重构的所述当前帧。
[0027] 本发明实施例还提供一种编码装置,包括:
[0028] 非帧间预测量化单元,用于对当前帧进行非帧间预测量化,得到所述当前帧的非帧间预测量化结果;
[0029] 编码单元,用于对所述非帧间预测量化单元处理过程中分配的非帧间预测量化索引值进行编码;
[0030] 输出单元,用于将所述编码单元输出的编码后的所述非帧间预测量化索引值向解码端输出;
[0031] 预测系数获取单元,用于根据所述非帧间预测量化单元获得的所述当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数;
[0032] 系数量化单元,用于对所述预测系数获取单元获取的所述预测系数进行量化;
[0033] 所述编码单元,还用于对所述系数量化单元处理过程中分配的系数量化索引值进行编码;
[0034] 所述输出单元,还用于将所述编码单元输出的所述系数量化索引值向解码端输出。
[0035] 本发明实施例还提供一种解码装置,包括:
[0036] 接收单元,用于接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值;
[0037] 解码单元,用于对所述接收单元接收的所述编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值;
[0038] 非帧间预测量化结果获取单元,用于根据所述解码单元得到的所述非帧间预测量化索引值,得到所述当前帧的非帧间预测量化结果;
[0039] 量化系数获取单元,用于根据所述解码单元得到的所述系数量化索引值,得到量化后的预测系数;
[0040] 精细化量化结果获取单元,用于根据所述量化系数获取单元得到的所述量化后的预测系数,和所述非帧间预测量化结果获取单元得到的所述当前帧以及过去至少一帧的非帧间预测量化结果,得到所述当前帧的精细化量化结果;
[0041] 反量化单元,用于对所述精细化量化结果获取单元得到的所述当前帧的精细化量化结果进行反量化,得到重构的所述当前帧;或者,对所述非帧间预测量化结果获取单元得到的所述当前帧的非帧间预测量化结果进行反量化,得到重构的所述当前帧。
[0042] 本发明实施例提供的量化编解码方法和装置,在编码端,首先对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果,将量化过程中分配的非帧间预测量化索引值进行编码并向解码端输出;再根据当前帧及过去至少一帧的非帧间预测量化结果,得到使当前帧和精细化量化结果之间误差最小的预测系数,然后对该预测系数进行量化,将量化过程中分配的系数量化索引值进行编码并向解码端输出。由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。

附图说明

[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044] 图1为本发明实施例提供的量化编码方法的流程框图;
[0045] 图2为本发明实施例提供的正常情况下的量化解码方法流程框图;
[0046] 图3为本发明实施例提供的异常情况下的量化解码方法流程框图;
[0047] 图4为本发明实施例提供的针对谱包络参数矢量的量化编码方法的流程框图;
[0048] 图5为本发明实施例提供的针对谱包络参数矢量的在正常情况下的量化解码方法的流程框图;
[0049] 图6为本发明实施例提供的针对谱包络参数矢量的在异常情况下的量化解码方法的流程框图;
[0050] 图7为本发明实施例提供的针对10阶线性预测系数的量化编码方法的流程框图;
[0051] 图8为本发明实施例提供的针对10阶线性预测系数的在正常情况下的量化解码方法的流程框图;
[0052] 图9为本发明实施例提供的针对8维矢量的量化编码方法的流程框图;
[0053] 图10为本发明实施例提供的编码装置的结构框图;
[0054] 图11为本发明实施例提供的解码装置的结构框图。

具体实施方式

[0055] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0056] 本发明实施例提供的量化编码方法,如图1所示,该方法步骤包括:
[0057] S101、对当前帧进行非帧间预测量化,得到该当前帧的非帧间预测量化结果。
[0058] 在此,对当前帧进行非帧间预测量化,可以是对当前帧利用其自身的信息进行量化。即只用当前帧自身信息,不利用过去一帧或多帧的信息对当前帧进行量化。另外,非帧间预测量化,可以是非帧间预测直接量化、非帧间预测切换量化中的一种。其中,非帧间预测切换量化为,当帧序号满足一定条件时,用该条件对应的量化方法进行量化。既可以是两种量化方法间的切换,也可以是多种量化方法之间的切换。例如,若当前帧的帧序号满足第一条件时,用第一量化方法,满足第二条件时,用第二量化方法……满足第N+1条件时,用第N+1量化方法等。
[0059] S102、对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的非帧间预测量化索引值向解码端输出。
[0060] S103、根据当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数。
[0061] 在此,根据当前帧及过去至少一帧的非帧间预测量化结果,可以是得到使当前帧和精细化量化结果之间误差最小的预测系数,例如均方差值最小等;其中,该精细化量化结果为对当前帧及过去至少一帧的非帧间预测量化结果进行帧间预测量化所得到的量化结果。
[0062] S104、对预测系数进行量化,将该量化过程中分配的系数量化索引值进行编码,将编码后的系数量化索引值向解码端输出。
[0063] 本发明实施例提供的量化编码方法,在对当前帧的第一级量化过程中,采用的是非帧间预测量化,没有用到过去帧的信息,所以在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。具体解码过程在后述进行说明。
[0064] 本发明实施例提供的量化解码方法,包括正常解码方法和出现丢帧的异常解码方法。如图2所示,正常解码方法的步骤包括:
[0065] S201、接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值。
[0066] S202、对编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值。
[0067] S203、根据非帧间预测量化索引值,得到当前帧的非帧间预测量化结果。
[0068] S204、根据系数量化索引值,得到量化后的预测系数。
[0069] S205、根据量化后的预测系数和当前帧的非帧间预测量化结果以及过去至少一帧的非帧间预测量化结果,得到当前帧的精细化量化结果。
[0070] S206、对当前帧的精细化量化结果进行反量化,得到重构的所述当前帧。
[0071] 出现丢帧的异常解码方法,如图3所示,该方法步骤包括:
[0072] S301、接收来自编码端的当前帧的编码后的非帧间预测量化索引值。
[0073] S302、对编码后的非帧间预测量化索引值进行解码,得到非帧间预测量化索引值。
[0074] S303、根据非帧间预测量化索引值,得到当前帧的非帧间预测量化结果。
[0075] S304、对当前帧的非帧间预测量化结果进行反量化,得到重构的当前帧。
[0076] 本发明实施例提供的量化编解码方法,在编码端,首先对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果,将量化过程中分配的非帧间预测量化索引值进行编码并向解码端输出;再根据当前帧及过去至少一帧的非帧间预测量化结果,得到使当前帧和精细化量化结果之间误差最小的预测系数,然后对该预测系数进行量化,将量化过程中分配的系数量化索引值进行编码并向解码端输出。由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以对应的解码端,可以在正常情况下和丢帧的异常情况下均能够进行解码。在解码端,在没有丢帧的正常情况下:解码得到非帧间预测量化索引值和系数量化索引值,根据非帧间预测量化索引值得到当前帧的非帧间预测量化结果,根据系数量化索引值得到量化后的预测系数,在利用量化后的预测系数、当前帧及过去至少一帧的非帧间预测量化结果,得到精细化量化结果,对其进行反量化重构当前帧。在丢帧的异常情况下:可以只对当前帧非帧间预测量化结果进行反量化,重构该当前帧,无需再利用过去帧的非帧间预测量化结果。这样,由于编码端的第一级量化采用了非帧间预测量化,没有用到过去帧的信息,所以在解码端,一旦出现丢帧,可以采用上述异常方法处理,不会将错误传递下去,这样,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。
[0077] 另外,在本发明实施例中,编码端和解码端之间传递的是编码后的非帧间预测量化索引值和编码后的系数量化索引值,可以用很少的比特进行量化编码,因而,还可以节省网络资源。
[0078] 本发明实施例提供量化编解码方法,以一种超宽带编解码器的谱包络参数量化为例进行说明。假设每一帧的谱包络参数是一个16维矢量x(n),x(n)={x0(n)x1(n)…x15(n)}。
[0079] 在编码端一侧的步骤如下:
[0080] 在对当前帧进行量化之前,可以先利用现有技术对其进行一些处理,以减少量化值的动态范围,针对本实施例,可以对当前帧x(n)进行去均值和计算半径的处理,如图4的步骤S401和S402。
[0081] S401、计算当前帧的谱包络参数矢量x(n)的均值m(n),对该均值进行标量量化,将量化过程中分配的均值标量量化索引值进行编码,传输到解码端,并得到去均值后的谱包络参数矢量y(n)。
[0082] 在此,均值 对均值进行4比特标量量化,得到量化后的均值,记作 那么去均值后的谱包络参数矢量 其中矢量中的元素
i=0,1,…,15。
[0083] 进一步地,在计算均值矢量前,还可以先对信号进行修正,为后面根据谱包络参数量化结果进行比特分配提供更好的依据。
[0084] S402、计算去均值后的谱包络参数矢量y(n)的半径参数r(n),对该半径参数r(n)进行标量量化,将量化过程中分配的半径参数标量量化索引值进行编码,传输到解码端,并得到归一化后的谱包络参数矢量z(n)。该z(n)即为本发明实施例的待量化的当前帧信号。
[0085] 在此,半径参数 对半径参数进行5比特标量量化,得到量化后的半径参数,记作 那么归一化后的谱包络参数矢量 其中矢量中的元素i=0,1,…,15。
[0086] 至此,通过步骤S401和步骤S402,得到了待量化的当前帧z(n),然后对其进行预测量化过程,如图4步骤S403至步骤S406。
[0087] S403、对待量化的当前帧z(n)进行非帧间预测量化,得到非帧间预测量化结果[0088] 在本实施例中,非帧间预测量化可以采用低复杂度的Gosset格型矢量量化,且使用非帧间预测切换量化,即根据帧序号的奇偶分别进行量化。
[0089] 如果当前帧帧序号为偶数,则直接对待量化的归一化谱包络参数矢量z(n)进行32比特的低复杂度Gosset格型矢量量化,得到偶数帧的非帧间预测量化结果[0090] 如果当前帧帧序号为奇数,则将待量化的归一化谱包络参数矢量z(n)乘上正交旋转矩阵,得到修正后的归一化谱包络参数矢量z′(n),其中矢量中的元素i=0,1,…,15。V为16×16的正交旋转矩阵。然后再对修
正后的归一化谱包络参数矢量z′(n)进行32比特的低复杂度Gosset格型矢量量化,将量化过程中分配的格型矢量量化索引值(即非帧间预测量化索引值)进行编码,传输到解码端,并得到量化后的矢量 最后再将量化后的矢量 乘上正交旋转矩阵,得到奇数帧的非帧间预测量化结果 其中矢量中的元素 i=0,1,…,
15。
[0091] 本步骤S403得到了非帧间预测量化结果
[0092] S404、对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的该非帧间预测量化索引值向解码端输出。
[0093] 在本实施例中,对应步骤S404,当帧序号为偶数时,则直接对待量化的归一化谱包络参数矢量z(n)进行32比特的低复杂度Gosset格型矢量量化,将量化过程中分配的格型矢量量化索引值(即非帧间预测量化索引值)进行编码,传输到解码端。当帧序号为奇数时,先乘上正交旋转矩阵,得到修正后的归一化谱包络参数矢量z′(n),再对z′(n)进行32比特的低复杂度Gosset格型矢量量化,将量化过程中分配的格型矢量量化索引值(即非帧间预测量化索引值)进行编码,传输到解码端。
[0094] S405、根据当前帧及过去至少一帧的非帧间预测量化结果,得到使该当前帧和精细化量化结果之间误差最小的预测系数。
[0095] 这里所谓的精细化量化结果,是对当前帧及过去至少一帧的非帧间预测量化结果进行帧间预测量化所得到的量化结果。
[0096] 精细化量化结果可以表示为:
[0097] 其中, 为精细化量化结果, 为当前帧及过去至少一帧的非帧间预测量化结果, 为量化后的第i个预测系数,M为预测阶数。
[0098] 根据当前帧及过去至少一帧的非帧间预测量化结果,得到使该当前帧和精细化量化结果之间误差最小的预测系数,在本实施例中可以是得到使该当前帧和精细化量化结果之间均方差值最小的预测系数。所以预测系数a(n)可以用以下方法获得:
[0099]
[0100] 其中R为矩阵z(n)和矩阵 的互相关矩阵,为:
[0101]
[0102] 其中,zT(n)为z(n)的转置矩阵,R-1为R取逆。
[0103] 一般地,为了降低编码比特数,一种经济有效的方法是只进行一阶预测,即M=1,则此时的精细化结果可以表示为:
[0104]
[0105] 进而,使当前帧和精细化量化结果之间均方差值最小的预测系数可以表示为:
[0106]
[0107] 通过上述预测系数a(n)的获取过程可以看出,获取a(n)并不需要计算得出精细化结果 而是通过当前帧及过去至少一帧的非帧间预测量化结果即可得到。
[0108] 对应本实施例的谱包络参数的非帧间预测量化结果 本实施例假设只进行一阶预测,即M=1,则预测系数a(n)为:
[0109]
[0110] S406、对获得的预测系数a(n)进行标量量化,将量化过程中分配的系数量化索引值进行编码,向解码端输出,并得到量化后的预测系数 本实施例中采用3比特对最优预测系数a(n)进行标量量化。
[0111] 至此,编码端的编码过程结束,针对当前帧待量化的信号,编码端向解码端发送了编码后的非帧间预测量化索引值、编码后的系数量化索引值,以及最先进行的以减少量化值动态范围的编码后的均值标量量化索引值和编码后的半径参数标量量化索引值。
[0112] 对应编码端,如图5所示,解码端一侧的步骤如下:
[0113] 在无丢帧的正常情况下:
[0114] 由于编码端对待量化的当前帧进行的处理,则此处解码端也需要进行相应的解码等处理。
[0115] S501、接收来自编码端的当前帧的编码后的均值标量量化索引值,对其进行解码,得到量化后的均值
[0116] S502、接收来自编码端的当前帧的编码后的半径参数标量量化索引值,对其进行解码,得到量化后的半径参数
[0117] S503、接收来自编码端的当前帧的编码后的非帧间预测量化索引值,对其进行解码,得到非帧间预测量化结果
[0118] 当当前帧的帧序号为偶数时,得到的非帧间预测量化结果为 当当前帧的帧序号为奇数时,得到的非帧间预测量化结果为 i=0,1,…,15。
[0119] S504、接收来自编码端的当前帧的编码后的系数量化索引值,对其进行解码,得到量化后的预测系数
[0120] S505、根据上述量化后的预测系数 以及当前帧及过去一帧(本实施例假设只进行一阶预测,即M=1)的非帧间预测量化结果 得到精细化量化结果[0121] 由于编码端在对当前帧进行量化之前,对其进行了诸如去均值、求半径的现有技术处理,所以在此处还要对此进行解码处理。
[0122] S506、根据步骤S505得到的精细化量化结果 以及步骤S501得到的量化后的均值 和步骤S502得到的量化后的半径参数 得到量化后的谱包络参数矢量 量化后的谱包络参数矢量中的元素 i=0,1,…,15。
[0123] S507、对量化后的谱包络参数矢量 进行反量化,重构出谱包络参数矢量x(n)。
[0124] 需要说明的是,如果编码端没有对待量化的信号进行预先处理,而是直接进行非帧间预测量化,那么在解码端则获取到精细化结果即可。
[0125] 在本实施例中,由于解码端正常处理中的获取精细化结果步骤需要用到之前帧的非帧间预测量化结果,所以,一旦第n帧丢失后,第n帧之后的第n+1帧到第M帧将不再适用上述正常处理方法,而应该采用本发明实施例提供的量化解码方法中的异常处理方法。
[0126] 在丢帧的异常情况下:
[0127] 由于已经假设M=1,所以,如果第n帧丢失后没有再次发生帧丢失,则本实施例只有第n+1帧采用异常处理方法,之后的帧仍然采用正常处理方法。
[0128] 以下详细说明,在解码端如果第n帧发生丢失,那么第n+1帧的解码步骤如图6所示,为:
[0129] 同样,由于编码端对待量化的当前帧进行的处理,则此处解码端也需要进行相应的解码等处理。
[0130] S601、接收来自编码端的第n+1帧的编码后的均值标量量化索引值,对其进行解码,得到量化后的均值
[0131] S602、接收来自编码端的第n+1帧的编码后的半径参数标量量化索引值,对其进行解码,得到量化后的半径参数
[0132] S603、接收来自编码端的第n+1帧的编码后的非帧间预测量化索引值,对其进行解码,得到非帧间预测量化结果
[0133] 当第n+1帧的帧序号为偶数时,得到的非帧间预测量化结果为 当第n+1帧的帧序号为奇数时,得到的非帧间预测量化结果为 i=0,1,…,15。
[0134] 异常情况下的解码方法不在计算获取精细化量化结果,而是将得到的非帧间预测量化结果当作精细化量化结果来使用。
[0135] 同样,由于编码端在对当前帧进行量化之前,对其进行了诸如去均值、求半径的现有技术处理,所以在此处还要对此进行解码处理。
[0136] S604、根据步骤S603得到的非帧间预测量化结果 以及步骤S601得到的量化后的均值 和步骤S602得到的量化后的半径参数 得到量化后的谱包络参数矢量 量化后的谱包络参数矢量中的元素 i=0,1,…,15。
[0137] S605、对量化后的谱包络参数矢量 进行反量化,重构出谱包络参数矢量x(n+1)。
[0138] 本发明实施例提供的量化编解码方法,在编码端,其主要步骤为:对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果,将量化过程中分配的非帧间预测量化索引值进行编码并向解码端输出;再根据当前帧及过去至少一帧的非帧间预测量化结果,得到使当前帧和精细化量化结果之间误差最小的预测系数,然后对该预测系数进行量化,将量化过程中分配的系数量化索引值进行编码并向解码端输出。由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以对应的解码端,可以在正常情况下和丢帧的异常情况下均能够进行解码。在解码端,在没有丢帧的正常情况下:解码得到非帧间预测量化索引值和系数量化索引值,根据非帧间预测量化索引值得到当前帧的非帧间预测量化结果,根据系数量化索引值得到量化后的预测系数,在利用量化后的预测系数、当前帧及过去至少一帧的非帧间预测量化结果,得到精细化量化结果,对其进行反量化重构当前帧。在丢帧的异常情况下,可以只对当前帧非帧间预测量化结果进行反量化,重构该当前帧,无需再利用过去帧的非帧间预测量化结果。这样,由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以在解码端,一旦出现丢帧,可以采用上述异常方法处理,不会将错误传递下去,这样,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。
[0139] 另外,在本发明实施例中,编码端和解码端之间传递的是编码后的非帧间预测量化索引值和编码后的系数量化索引值,可以用很少的比特进行量化编码,因而,还可以节省网络资源。
[0140] 本发明另一实施例提供的量化编解码方法,以一组10阶线性预测系数量化为例进行说明。
[0141] 设每一帧的10阶线性预测系数矢量为α(n),由于线性预测系数的动态范围较大且直接对其量化容易造成线性预测滤波器不稳定,因此通常将其转换为线谱对参数后在进行量化。设每一帧的10阶线谱对参数矢量为x(n),x(n)={x0(n)x1(n)…x9(n)}。
[0142] 编码端一侧的步骤如下:
[0143] 在对当前帧进行量化之前,可以先利用现有技术对其进行一些处理,以减少量化值的动态范围,针对本实施例,可以对当前帧x(n)进行去均值处理,如图7的步骤S701。
[0144] S701、对当前帧的线谱对参数矢量x(n)进行去均值处理,得到去均值后的线谱对参数矢量z(n)=x(n)-M。其中M为事先存储的线谱对均值矢量,矢量中的元素记作{M0 M1…M9}。
[0145] S702、对待量化的当前帧z(n)进行非帧间预测量化,得到非帧间预测量化结果在本实施例中,非帧间预测量化采用的是非帧间预测直接量化。
[0146] S703、对非帧间预测直接量化过程中分配的非帧间预测量化索引值进行编码,将编码后的该非帧间预测量化索引值向解码端输出。
[0147] S704、根据当前帧及过去至少一帧的非帧间预测量化结果,得到使该当前帧和精细化量化结果之间误差最小的预测系数。
[0148] 在此,所指的精细化结果和上述实施例中的类似,可以表示为:
[0149]
[0150] 其中, 为精细化量化结果, 为当前帧及过去至少一帧的非帧间预测量化结果, 为量化后的第i个预测系数,M为预测阶数。在本实施例中,假设进行两阶预测,即M=2。
[0151] 同上述实施例类似,本实施例中的预测系数也是使该当前帧和精细化量化结果之间均方差值最小的预测系数。所以预测系数a(n)可以用以下方法获得:
[0152]
[0153] 其中R为矩阵z(n)和矩阵 的互相关矩阵,为:
[0154]
[0155] 其中,zT(n)为z(n)的转置矩阵,R-1为R取逆。
[0156] 通过上述预测系数a(n)的获取过程可以看出,获取a(n)并不需要计算得出精细化结果 而是通过当前帧及过去至少一帧的非帧间预测量化结果即可得到[0157] S705、对获得的预测系数a(n)进行标量量化,将量化过程中分配的系数量化索引值进行编码,向解码端输出,并得到量化后的预测系数
[0158] 至此,编码端的编码过程结束,针对当前帧待量化的信号,编码端向解码端发送了编码后的非帧间预测量化索引值、编码后的系数量化索引值。
[0159] 对应编码端,如图8所示,解码端一侧的步骤如下:
[0160] 在无丢帧的正常情况下:
[0161] S801、接收来自编码端的当前帧的编码后的非帧间预测量化索引值,对其进行解码,得到非帧间预测量化结果 该非帧间预测量化结果 即为当前帧量化后的去均值的线谱对参数矢量。
[0162] S802、接收来自编码端的当前帧的编码后的系数量化索引值,对其进行解码,得到量化后的预测系数
[0163] S803、根据上述量化后的预测系数 以及当前帧及过去两帧(本实施例假设进行两阶预测,即M=2)的非帧间预测量化结果 得到精细化量化结果[0164] S804、根据精细化量化结果 以及事先存储的线谱对均值矢量M,得到最终的量化后的线谱对参数矢量 量化后的线谱对参数矢量中的元素 i=0,1,…,9。其中Mi为与编码端相同的事先存储的线谱对均值矢量中的第i个元素。
[0165] S805、对量化后的线谱对参数矢量 进行反量化,重构出线谱对参数矢量为x(n)。
[0166] 需要说明的是,如果编码端没有对待量化的信号进行预先处理,而是直接进行非帧间预测量化,那么在解码端则获取到精细化结果即可。
[0167] 在丢帧的异常情况下,器处理方法和上述实施例中的异常处理方式类似,即用非帧间预测量化结果代替精细化结构重构原始信号,在此不再赘述。
[0168] 本发明实施例提供的量化编解码方法,在编码端,其主要步骤为:对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果,将量化过程中分配的非帧间预测量化索引值进行编码并向解码端输出;再根据当前帧及过去至少一帧的非帧间预测量化结果,得到使当前帧和精细化量化结果之间误差最小的预测系数,然后对该预测系数进行量化,将量化过程中分配的系数量化索引值进行编码并向解码端输出。由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以对应的解码端,可以在正常情况下和丢帧的异常情况下均能够进行解码。在解码端,在没有丢帧的正常情况下:解码得到非帧间预测量化索引值和系数量化索引值,根据非帧间预测量化索引值得到当前帧的非帧间预测量化结果,根据系数量化索引值得到量化后的预测系数,在利用量化后的预测系数、当前帧及过去至少一帧的非帧间预测量化结果,得到精细化量化结果,对其进行反量化重构当前帧。在丢帧的异常情况下,可以只对当前帧非帧间预测量化结果进行反量化,重构该当前帧,无需再利用过去帧的非帧间预测量化结果。这样,由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以在解码端,一旦出现丢帧,可以采用上述异常方法处理,不会将错误传递下去,这样,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。
[0169] 另外,在本发明实施例中,编码端和解码端之间传递的是编码后的非帧间预测量化索引值和编码后的系数量化索引值,可以用很少的比特进行量化编码,因而,还可以节省网络资源。
[0170] 本发明又一实施例提供的以一个8维矢量的量化为例进行说明。
[0171] 设每一帧的8维矢量x(n),x(n)={x0(n)x1(n)…x7(n)}。
[0172] 如图9所示,编码端一侧的步骤如下:
[0173] S901、对待量化的当前帧矢量x(n)进行非帧间预测量化,得到非帧间预测量化结果
[0174] 在本实施例中,非帧间预测量化采用非帧间预测切换量化,具体使用切换的Z格标量量化,对每一帧待量化矢量的每一个元素分别进行切换Z格标量量化。可以采用三种略有差别的Z格标量量化器,则第n帧的得量化矢量的第i个元素的非帧间量化结果为:
[0175]
[0176] 其中, 表示向下取整,Δ表示量化步长,%表示求余数,i=0,1,…,7。
[0177] S902、对非帧间预测量化过程中分配的非帧间预测量化索引值进行编码,将编码后的该非帧间预测量化索引值向解码端输出。
[0178] S903、根据当前帧及过去至少一帧的非帧间预测量化结果,得到使该当前帧和精细化量化结果之间误差最小的预测系数。
[0179] 在本实施例中,假设只进行一阶预测,即M=1,则预测系数的获取过程和上述实施例的步骤S405类似,在此不再赘述。
[0180] S904、对获得的预测系数a(n)进行标量量化,将量化过程中分配的系数量化索引值进行编码,向解码端输出,并得到量化后的预测系数
[0181] 至此,编码端的编码过程结束,针对当前帧待量化的信号,编码端向解码端发送了编码后的非帧间预测量化索引值、编码后的系数量化索引值。
[0182] 对应编码端,解码端一侧仍然区分正常情况和异常情况,两种情况下的解码方法基本和上述实施例中的类似。对于正常情况:向根据非帧间预测量化索引值,得到当前帧的非帧间预测量化结果,再根据系数量化索引值得到量化后的预测系数,然后根据量化后的预测系数、当前帧及过去一帧(本实施例中M=1)的非帧间预测量化结果,得到精细化量化结果,最后对该精细化量化结果进行反量化,重构出当前帧。对于异常情况:就是将当前帧的非帧间预测量化结果进行反量化,重构当前帧。在此就不针对解码分步赘述了。
[0183] 本发明实施例提供的量化编解码方法,在编码端,其主要步骤为:对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果,将量化过程中分配的非帧间预测量化索引值进行编码并向解码端输出;再根据当前帧及过去至少一帧的非帧间预测量化结果,得到使当前帧和精细化量化结果之间误差最小的预测系数,然后对该预测系数进行量化,将量化过程中分配的系数量化索引值进行编码并向解码端输出。由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以对应的解码端,可以在正常情况下和丢帧的异常情况下均能够进行解码。在解码端,在没有丢帧的正常情况下:解码得到非帧间预测量化索引值和系数量化索引值,根据非帧间预测量化索引值得到当前帧的非帧间预测量化结果,根据系数量化索引值得到量化后的预测系数,在利用量化后的预测系数、当前帧及过去至少一帧的非帧间预测量化结果,得到精细化量化结果,对其进行反量化重构当前帧。在丢帧的异常情况下,可以只对当前帧非帧间预测量化结果进行反量化,重构该当前帧,无需再利用过去帧的非帧间预测量化结果。这样,由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以在解码端,一旦出现丢帧,可以采用上述异常方法处理,不会将错误传递下去,这样,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。
[0184] 另外,在本发明实施例中,编码端和解码端之间传递的是编码后的非帧间预测量化索引值和编码后的系数量化索引值,可以用很少的比特进行量化编码,因而,还可以节省网络资源。
[0185] 本发明实施例提供的编码装置10,如图10所示,编码装置10该包括:
[0186] 非帧间预测量化单元1001,用于对当前帧进行非帧间预测量化,得到当前帧的非帧间预测量化结果。
[0187] 在此,该非帧间预测量化单元1001对当前帧进行的非帧间预测量化,可以是对当前帧利用其自身的信息进行量化。且非帧间预测量化可以包括:非帧间预测直接量化、非帧间预测切换量化中的一种;其中,非帧间预测切换量化为当帧序号满足一定条件时,用该条件对应的量化方法进行量化。
[0188] 编码单元1002,用于对非帧间预测量化单元1001处理过程中分配的非帧间预测量化索引值进行编码。
[0189] 输出单元1003,用于将编码单元1002输出的编码后的非帧间预测量化索引值向解码端输出。
[0190] 预测系数获取单元1004,用于根据非帧间预测量化单元1001获得的当前帧及过去至少一帧的非帧间预测量化结果,得到预测系数。
[0191] 系数量化单元1005,用于对预测系数获取单元1004获取的预测系数进行量化。
[0192] 编码单元1002,还用于对系数量化单元1005处理过程中分配的系数量化索引值进行编码。
[0193] 输出单元1003,还用于将编码单元1002输出的系数量化索引值向解码端输出。
[0194] 本发明实施例提供的编码装置,在对当前帧的第一级量化过程中,采用的是非帧间预测量化,没有用到过去帧的信息,所以在此量化过程中没有受到过去帧的影响,有利于解码端在出现丢帧的异常情况下,不使错误向后传递,
[0195] 当前帧待量化的信号输入编码装置10后,到达非帧间预测量化单元1001处。该非帧间预测量化单元1001对其进行非帧间预测量化,该量化可以是直接量化也可以是切换量化。非帧间预测量化单元1001将量化过程中分配的非帧间预测量化索引值输入到编码单元1002处。该编码单元1002将非帧间预测量化索引值进行编码后,输入到输出单元1003处。该输出单元1003将编码后的非帧间预测量化索引值向解码端发出。
[0196] 非帧间预测量化单元1001将当前帧以及过去至少一帧的非帧间预测量化结果输入到预测系数获取单元1004处。该预测系数获取单元1004根据当前帧及过去至少一帧的非帧间预测量化结果,得到的可以是使当前帧和精细化量化结果之间误差最小的预测系数,其中,该精细化量化结果为对当前帧及过去至少一帧的非帧间预测量化结果进行帧间预测量化所得到的量化结果;该误差最小可以是均方差之最小。预测系数获取单元1004将得到的预测系数输入到系数量化单元1005处。该系数量化单元1005对预测系数进行量化,将量化过程中分配的系数量化索引值输入到编码单元1002处。该编码单元1002将系数量化索引值进行编码,将编码后的系数量化索引值输入到编码单元1003处。该编码单元1003将编码后的系数量化索引值向解码端输入。
[0197] 本发明实施例提供的解码装置11,如图11所示,该解码装置11包括:
[0198] 接收单元1101,用于接收来自编码端的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值。
[0199] 解码单元1102,用于对接收单元1101接收的编码后的非帧间预测量化索引值和编码后的系数量化索引值进行解码,得到非帧间预测量化索引值和系数量化索引值。
[0200] 非帧间预测量化结果获取单元1103,用于根据解码单元1102得到的非帧间预测量化索引值,得到当前帧的非帧间预测量化结果。
[0201] 量化系数获取单元1104,用于根据解码单元1102得到的系数量化索引值,得到量化后的预测系数。
[0202] 精细化量化结果获取单元1105,用于根据量化系数获取单元1104得到的量化后的预测系数,和非帧间预测量化结果获取单元1103得到的当前帧以及过去至少一帧的非帧间预测量化结果,得到当前帧的精细化量化结果。
[0203] 反量化单元1106,用于对精细化量化结果获取单元1105得到的当前帧的精细化量化结果进行反量化,得到重构的当前帧;或者,对非帧间预测量化结果获取单元1103得到的当前帧的非帧间预测量化结果进行反量化,得到重构的当前帧。
[0204] 本发明实施例提供的解码装置,可以在正常情况下和丢帧的异常情况下均能够进行解码。在解码端,在没有丢帧的正常情况下:解码得到非帧间预测量化索引值和系数量化索引值,根据非帧间预测量化索引值得到当前帧的非帧间预测量化结果,根据系数量化索引值得到量化后的预测系数,在利用量化后的预测系数、当前帧及过去至少一帧的非帧间预测量化结果,得到精细化量化结果,对其进行反量化重构当前帧。在丢帧的异常情况下,可以只对当前帧非帧间预测量化结果进行反量化,重构该当前帧,无需再利用过去帧的非帧间预测量化结果。这样,由于编码端的第一级量化,采用了非帧间预测量化,没有用到过去帧的信息,所以在解码端,一旦出现丢帧,可以采用上述异常方法处理,不会将错误传递下去,在合理去除帧间相关性、提高量化效率的同时,可以有效避免丢失帧引起的错误传递,进而提高了对错误的鲁棒性,具有较好的抗丢包性。
[0205] 在无丢帧的正常情况下:
[0206] 编码端输出的当前帧的编码后的非帧间预测量化索引值和编码后的系数量化索引值输入到解码端的接收单元1101处。该接收单元1101将上述编码后的非帧间预测量化索引值和系数量化索引值输入到解码单元1102处。该解码单元1102对其进行解码,得到非帧间预测量化索引值和系数量化索引值,将非帧间预测量化索引值输入到非帧间预测量化结果获取单元1103处,将系数量化索引值输入到量化系数获取单元1104处。该非帧间预测量化结果获取单元1103根据非帧间预测量化索引值,得到当前帧的非帧间预测量化结果,并将当前帧和过去至少一帧的非帧间预测量化结果输入到精细化量化结果获取单元1105处。量化系数获取单元1104根据系数量化索引值,得到量化后的预测系数,将该量化后的预测系数输入到精细化量化结果获取单元1105处。该精细化量化结果获取单元1105根据量化后的预测系数,和当前帧以及过去至少一帧的非帧间预测量化结果,得到当前帧的精细化量化结果,将该精细化量化结果输入到反量化单元1106处。该反量化单元1106对当前帧的精细化量化结果进行反量化,得到重构的当前帧。
[0207] 在丢帧的异常情况下:
[0208] 编码端输出的当前帧的编码后的非帧间预测量化索引值输入到解码端的接收单元1101处。该接收单元1101将上述编码后的系数量化索引值输输入解码单元1102处。该解码单元1102对其进行解码,得到非帧间预测量化索引值,将非帧间预测量化索引值输入到非帧间预测量化结果获取单元1103处。该非帧间预测量化结果获取单元1103根据非帧间预测量化索引值,得到当前帧的非帧间预测量化结果,将当前帧的非帧间预测量化结果输入到反量化单元1106处。该反量化单元1106对当前帧的非帧间预测量化结果进行反量化,得到重构的当前帧。
[0209] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0210] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。