音频编码、解码方法及其系统转让专利

申请号 : CN201310216510.8

文献号 : CN103280222B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈国明彭远疆蒋昀芝欧文军彭超刘洪龙兴平

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明提供一种音频编码、解码方法及其系统。所述音频编码方法,包括:对音频数据进行第一量化编码,获取第一量化编码数据;对所述音频数据进行第二量化编码,获取第二量化编码数据;将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,将当前帧音频数据对应的所述第二量化编码数据耦合至音频数据码流的下一帧。本发明的音频编码、解码方法及其系统,既能够实现对传输过程中丢失的音频数据的还原,对网络音频传输的网络延时和音频质量还原的影响都较少。

权利要求 :

1.一种音频编码方法,其特征在于,包括以下步骤:

对音频数据进行第一量化编码,获取第一量化编码数据;对所述音频数据进行第二量化编码,获取第二量化编码数据,其中,所述第一量化编码的码率大于所述第二量化编码的码率;

将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,将当前帧音频数据对应的所述第二量化编码数据耦合至音频数据码流的下一帧。

2.如权利要求1所述的音频编码方法,其特征在于,还包括以下步骤:对所述音频数据进行第一频带复制编码,获取第一频带复制数据;对所述音频数据进行第二频带复制编码,获取第二频带复制数据;

将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧;

将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。

3.如权利要求2所述的音频编码方法,其特征在于:

所述第一频带复制编码的码率大于所述第二频带复制编码的码率;

和/或,

所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同。

4.如权利要求1所述的音频编码方法,其特征在于,还包括以下步骤:对所述音频数据进行第一立体声编码,获取第一立体声编码数据;对所述音频数据进行第二立体声编码,获取第二立体声编码数据;

将当前帧音频数据对应的所述第一立体声编码数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二立体声编码数据耦合至所述音频数据码流的下一帧。

5.如权利要求4所述的音频编码方法,其特征在于:

所述第一立体声编码的码率大于所述第二立体声编码的码率;

和/或,

所述第一立体声编码数据和所述第二立体声编码的频域编码带宽相同。

6.如权利要求1所述的音频编码方法,其特征在于,对音频数据进行第一量化编码和第二量化编码之前,先进行以下步骤:对所述音频数据进行QMF滤波,分解为若干子带;

其中,所述第一量化编码和第二量化编码的编码高子带相同。

7.一种音频数据解码方法,其特征在于,包括以下步骤:获取音频数据码流;其中,所述音频数据码流的当前帧包括当前帧音频数据对应的第一量化编码数据,所述音频数据码流的下一帧包括所述当前帧音频数据对应的第二量化编码数据,所述第一量化编码数据和第二量化编码数据分别由第一量化编码和第二量化编码获得,所述第一量化编码的码率大于所述第二量化编码的码率;

判断获取的所述音频数据码流的当前帧是否丢失;

如果当前帧未丢失,则从所述当前帧中获取所述第一量化编码数据,对所述第一量化编码数据进行解码,获取当前帧音频数据;

如果当前帧丢失,则从所述当前帧的下一帧中获取所述第二量化编码数据,对所述第二量化编码数据进行解码,获取当前帧音频数据。

8.如权利要求7所述的音频解码方法,其特征在于,从所述当前帧中获取所述第一量化编码数据,对所述第一量化编码数据进行解码,获取当前帧音频数据的步骤包括:保存所述音频数据码流的当前帧;

在接收到所述音频数据码流的下一帧时,从保存的所述当前帧中获取所述第一量化编码数据并对所述第一量化编码数据进行解码,获取当前帧音频数据。

9.如权利要求7或者8所述的音频解码方法,其特征在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一频带复制数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二频带复制数据;

所述音频解码方法进一步包括以下步骤:

如果当前帧未丢失,则从所述当前帧中获取所述第一频带复制数据,根据所述第一频带复制数据对解码获取的所述当前帧音频数据进行频带恢复;

如果当前帧丢失,则从当前帧的下一帧中获取所述第二频带复制数据,根据所述第二频带复制数据对解码获取的所述当前帧音频数据进行频带恢复。

10.如权利要求7或者8所述的音频解码方法,其特征在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一立体声编码数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二立体声编码数据;

所述音频解码方法进一步包括以下步骤:

如果当前帧未丢失,则从所述当前帧中获取所述第一立体声编码数据,根据所述第一立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原;

如果当前帧丢失,则从当前帧的下一帧中获取所述第二立体声编码数据,根据所述第二立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原。

11.一种音频编码系统,其特征在于,包括:

第一量化编码模块,用于对音频数据进行第一量化编码,获取第一量化编码数据;

第二量化编码模块,用于对所述音频数据进行第二量化编码,获取第二量化编码数据,其中,所述第一量化编码的码率大于所述第二量化编码的码率;

第一数据合成模块,用于将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧;将当前帧音频数据对应的所述第二量化编码数据耦合至所述音频数据码流的下一帧。

12.如权利要求11所述的音频编码系统,其特征在于,还包括:第一频带编码模块,用于对所述音频数据进行第一频带复制编码,获取第一频带复制数据;

第二频带编码模块,用于对所述音频数据进行第二频带复制编码,获取第二频带复制数据;

第二数据合成模块,用于将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧,将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。

13.如权利要求12所述的音频编码系统,其特征在于:所述第一频带复制编码的码率大于所述第二频带复制编码的码率;

和/或,

所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同。

14.如权利要求11所述的音频编码系统,其特征在于,还包括:第一立体声编码模块,用于对所述音频数据进行第一立体声编码,获取第一立体声编码数据;

第二立体声编码模块,用于对所述音频数据进行第二立体声编码,获取第二立体声编码数据;

第三数据合成模块,用于将当前帧音频数据对应的所述第一立体声编码数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二立体声编码数据耦合至音频数据码流的下一帧。

15.如权利要求14所述的音频编码系统,其特征在于:所述第一立体声编码的码率大于所述第二立体声编码的码率;

和/或,

所述第一立体声编码数据和所述第二立体声编码的频域编码带宽相同。

16.如权利要求11所述的音频编码系统,其特征在于,进一步包括QMF滤波模块,用于对所述音频数据进行QMF滤波,将所述音频数据分解为若干子带;其中,所述第一量化编码和第二量化编码的编码高子带相同。

17.一种音频数据解码系统,其特征在于,包括:

码流获取模块,用于获取音频数据码流;其中,所述音频数据码流的当前帧包括当前帧音频数据对应的第一量化编码数据,所述音频数据码流的下一帧包括所述当前帧音频数据对应的第二量化编码数据,所述第一量化编码数据和第二量化编码数据分别由第一量化编码和第二量化编码获得,所述第一量化编码的码率大于所述第二量化编码的码率;

判断模块,用于判断获取的所述音频数据码流的当前帧是否丢失;

第一量化解码模块,用于如果当前帧未丢失,则从所述当前帧中获取所述第一量化编码数据,对所述第一量化编码数据进行解码,获取当前帧音频数据;

第二量化解码模块,用于如果当前帧丢失,则从所述当前帧的下一帧中获取所述第二量化编码数据,对所述第二量化编码数据进行解码,获取当前帧音频数据。

18.如权利要求17所述的音频解码系统,其特征在于,所述第一量化解码模块保存所述音频数据码流的当前帧;在接收到所述音频数据码流的下一帧时,从保存的所述当前帧中获取所述第一量化编码数据并对所述第一量化编码数据进行解码,获取当前帧音频数据。

19.如权利要求17或者18所述的音频解码系统,其特征在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一频带复制数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二频带复制数据;

所述音频解码系统还包括:

第一频带解码模块,用于如果当前帧未丢失,则从所述当前帧中获取第一频带复制数据,根据所述第一频带复制数据对解码获取的所述当前帧音频数据进行频带恢复;

第二频带解码模块,用于如果当前帧丢失,则从所述当前帧的下一帧中获取第二频带复制数据,根据所述第二频带复制数据对解码获取的所述当前帧音频数据进行频带恢复。

20.如权利要求17或者18所述的音频解码系统,其特征在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一立体声编码数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二立体声编码数据,所述音频解码系统还包括:

第一立体声解码模块,用于如果当前帧未丢失,则从所述当前帧中获取第一立体声编码数据,根据所述第一立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原;

第二立体声解码模块,用于如果当前帧丢失,则从所述当前帧的下一帧中获取第二立体声编码数据,根据所述第二立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原。

说明书 :

音频编码、解码方法及其系统

技术领域

[0001] 本发明涉及音频数据处理的技术领域,特别是涉及一种音频编码方法及其系统,以及一种音频解码方法及其系统。

背景技术

[0002] 通常的IP网络音频质量主要考虑两个因素的影响,分别是丢包和延迟。由于网络状况的时变性,各个节点和终端处理引入的时延,最终导致随机时延和丢包不可避免。为了提高网络音频质量,需要采用合适的丢包补偿方法对丢失的音频数据包进行补偿。
[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] 图1是本发明音频编码方法第一实施方式的流程示意图;
[0038] 图2是本发明音频编码方法第二实施方式的流程示意图;
[0039] 图3是本发明音频编码方法第三实施方式的流程示意图;
[0040] 图4是本发明音频编码方法编码的一帧音频数据码流的帧结构示意图;
[0041] 图5是本发明音频解码方法第一实施方式的结构示意图;
[0042] 图6是本发明音频编码系统第一实施方式的结构示意图;
[0043] 图7是本发明音频编码系统第二实施方式的局部结构示意图;
[0044] 图8是本发明音频编码系统第三实施方式的局部结构示意图;
[0045] 图9是本发明音频解码系统第一实施方式的结构示意图;
[0046] 图10是本发明音频解码系统第二实施方式的结构示意图;
[0047] 图11是本发明音频解码系统第三实施方式的结构示意图。

具体实施方式

[0048] 请参阅图1,图1是本发明音频编码方法第一实施方式的流程示意图。
[0049] 本实施方式的所述音频编码方法包括以下步骤:
[0050] S101,对音频数据进行第一量化编码,获取第一量化编码数据;
[0051] S102,对所述音频数据进行第二量化编码,获取第二量化编码数据;
[0052] S103,将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,将当前帧音频数据对应的所述第二量化编码数据耦合至所述音频数据码流的下一帧。
[0053] 通过对音频数据进行两次量化编码,并且两次量化编码获得的编码数据分别耦合至音频数据码流的当前帧和下一帧。在解码端发现当前帧发生丢包的情况下,也能够通过对下一帧包含的所述第二量化编码数据解码而获取当前帧音频数据,并且无需重传整个丢失的音频数据帧,对网络延时影响较少,并使音频数据还原的质量较好。
[0054] 其中,对于步骤S101和步骤S102,对音频数据进行第一量化编码,所述第一量化编码包括各种音频数据的量化编码方式。所述音频数据包括单声道的音频数据,也包括立体声音频数据,以及各种帧长和采样率条件下获得的音频数据。
[0055] 所述第一量化编码和所述第二量化编码根据预先设置的码率和编码带宽执行,获得的所述第一量化编码数据和所述第二量化编码数据是所述音频数据的核心编码信息,根据所述第一量化编码数据或者所述第二量化编码数据解码,都能够获得对应的音频数据。
[0056] 所述第一量化编码和所述第二量化编码的码率和编码带宽一般根据传输信道的带宽,发送端、接收端的处理能力等参数设定。
[0057] 在一个优选实施例中,所述第一量化编码的码率设置为大于所述第二量化编码的码率。因此,所述第二量化编码获得的第二量化编码数据的比特数小于所述第一量化编码获得的第一量化编码数据所占的比特数。因为所述第二量化编码数据是以FEC(Forward Error Concealment,前向差错隐藏)数据的形式耦合至音频数据码流的数据帧中的,而所述第二量化编码数据的比特数较少,对通信带宽的占用不会提高很多,但在丢失数据帧时,却能够准确恢复音频数据。
[0058] 在另一个优选实施例中,所述第一量化编码和所述第二量化编码的频域编码带宽相同,因此,根据所述第二量化编码数据解码获得的音频数据与根据所述第一量化编码数据解码获得的音频数据在听觉上基本没有差异,即使音频数据在传输过程中发生丢包,在解码端仍能够获得较好的音频质量。
[0059] 还可以进一步设置:所述第一量化编码的码率设置为大于所述第二量化编码的码率,并且所述第一量化编码和所述第二量化编码的频域编码带宽相同。则既可以保证对通信带宽的占用不会提高很多,又可在解码端得较好的音频质量。
[0060] 在进行步骤S101和S102之前,即进行所述第一量化编码和第二量化编码之前,还可首先进行一个对所述音频数据进行QMF(Quadraure Mirror Filter,正交镜像滤波器)滤波分解的步骤:
[0061] 对所述音频数据进行QMF滤波,分解为若干子带;
[0062] 其中,对各个所述子带进行所述第一量化编码和第二量化编码时,所述第一量化编码和第二量化编码的编码高子带相同。
[0063] 在实际操作时,可以通过QMF滤波器组,将音频数据的时域信号分解成若干子带(例如64子带),对于第一量化编码和第二量化编码,在不同编码码率下要保证编码高子带Band_high一致。这样所述第一量化编码和第二量化编码的编码带宽就相同了,其中,编码带宽=(Band_high*采样率/子带总数+1)>>1。
[0064] 在进行所述第一量化编码和第二量化编码之前,还可以进行一个对所述音频数据做编码前的预处理的步骤,所述预处理的步骤包括以下一种或者多种的组合:
[0065] 对所述音频数据进行下混频;
[0066] 对所述音频数据进行下采样;
[0067] 和/或,对所述音频信号进行MDCT变换(修正的离散余弦变换),将所述音频信号从时域变换到频域。
[0068] 通过上述预处理过程中,通过下混频将立体声音频信号变换成单声道的音频信号,方便编码处理过程中提取核心编码信息。通过下采样,例如两倍的下采样,可以降低音频数据采样率,降低数据传输过程中对带宽造成的负担,通过MDCT变换,将所述音频信号从时域变换到频域,使其更适合于编码应用,提高音频编码的质量和效率。
[0069] 对于上述步骤S103,将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,因此如果在解码端收到的所述音频数据码流没有丢帧,则只需要在所述音频数据码流的当前帧中提取所述第一量化编码数据,对所述第一量化编码数据进行解码,即可获得对应的当前帧音频数据;
[0070] 将当前帧音频数据对应的所述第二量化编码数据耦合至音频数据码流的下一帧,则如果在解码端收到的所述音频数据码流发生丢帧,当前帧丢失,则可以从所述当前帧的下一帧中提取所述当前帧音频数据对应的第二量化编码数据,对所述第二量化编码数据进行解码,即可获得对应的当前帧音频数据。
[0071] 在生成所述音频数据码流过程中,可进一步在所述音频数据码流中设置冗余编码标志位。则在解码端接收所述音频数据码流后,可以首先读取其中的所述冗余编码标志位,根据所述冗余编码标志位判断在编码端是否有进行丢帧补偿编码,以便在解码端选择合适的解码方法。
[0072] 请参阅图2,图2是本发明音频编码方法第二实施方式的流程示意图。
[0073] 本实施方式的音频编码方法与所述第一实施方式的主要区别在于,还包括以下频带复制编码的步骤:
[0074] S201,对所述音频数据进行第一频带复制编码,获取第一频带复制数据;
[0075] S202,对所述音频数据进行第二频带复制编码,获取第二频带复制数据;
[0076] S203,将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。
[0077] 其中,频带复制数据指的是经过频带复制编码处理后获得的一组参数,在编码端因为要节约传输带宽,因此一般将音频信号转换为低频信号发送。而通过进行频带复制编码,获取频带复制数据,并加入发送的音频数据码流中,则在解码端解码所述频带复制数据,可根据所述频带复制数据在解码端将音频信号恢复为高频信号。
[0078] 在本实方式中,分别对所述音频信号进行第一频带复制编码和第二频带复制编码,获取第一频带复制数据和第二频带复制数据,并将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。
[0079] 如果在解码端所述音频数据码流的当前帧没有丢失,则可以从所述音频数据码流的当前帧中提取所述第一量化编码数据和所述第一频带复制数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一频带复制数据,对所述音频数据进行频带恢复;
[0080] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二频带复制数据,解码获取所述第二量化编码数据对应的当前帧音频数据,并根据所述第二频带复制数据,对所述音频数据进行频带恢复。
[0081] 进一步地,所述第一频带复制编码的码率大于所述第二频带复制编码的码率;和/或,所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同。
[0082] 所述第一频带复制编码的码率大于所述第二频带复制编码的码率,则所述第二频带复制编码获得的第二频带复制数据的比特数小于所述第一量化编码获得的第一量化编码数据所占的比特数。对通信带宽的占用较少。
[0083] 所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同,则根据所述第一频带复制数据和所述第二频带复制数据解码获得的频带复制数据基本相同,即使音频数据在传输过程中发生丢包,在解码端仍能够获得较好的音频质量。
[0084] 请参阅图3,图3是本发明音频编码方法第三实施方式的流程示意图。
[0085] 本实施方式的音频编码方法与所述第一实施方式的主要区别在于,还包括以下立体声编码的步骤:
[0086] S301,对所述音频数据进行第一立体声编码,获取第一立体声编码数据;
[0087] S302,对所述音频数据进行第二立体声编码,获取第二立体声编码数据;
[0088] S303,将当前帧音频数据对应的所述第一立体声编码数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二立体声编码数据耦合至所述音频数据码流的下一帧。
[0089] 其中,所述立体声编码数据包括各个声道的音频信号强弱差别,以及相关性等信息。本实施方式尤其适合于具有至少两个声道的立体声音频数据的编码。
[0090] 如果所述音频数据码流的当前帧没有丢失,则可以在当前帧的音频数据码流中,提取所述第一量化编码数据和所述第一立体声编码数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一立体声编码数据,对所述音频数据进行立体声还原。
[0091] 在所述音频数据码流的当前帧发生丢包时,则可以通过在下一帧中提取所述第二量化编码数据和所述第二立体声编码数据,解码获取所述第二量化编码数据对应的当前帧音频数据,根据所述第二立体声编码数据,对所述音频数据进行立体声还原。
[0092] 本发明音频编码方法的第四实施方式为所述第二实施方式的音频编码方法和所述第三实施方式的音频编码方法结合。即,在编码过程中:
[0093] 分别对音频数据进行第一量化编码、第一频带复制编码和第一立体声编码,并将编码获得的当前帧音频数据对应的所述第一量化编码数据,第一频带复制数据和第一立体声编码数据耦合至所述音频数据码流的当前帧;
[0094] 分别对音频数据进行第二量化编码、第二频带复制编码和第二立体声编码,并将编码获得的当前帧音频数据对应的所述第二量化编码数据,第二频带复制数据和第二立体声编码数据耦合至所述音频数据码流的下一帧。
[0095] 请参阅图4,图4是本发明音频编码方法编码的一帧音频数据码流的帧结构示意图。其中,MDTS为修正的ADTS头,可设置其中一个数据位为冗余编码标志位。ACC1为耦合第一量化编码数据的比特,SBR1为耦合第一频带复制数据的比特,PS1为耦合第一立体声编码数据的比特;ACC2为耦合第二量化编码数据的比特,SBR2为耦合第二频带复制数据的比特,PS2为耦合第二立体声编码数据的比特。其中,SBR2和PS2可根据需要选择是否设置。
[0096] 在解码端接收所述音频数据码流后,如果当前帧没有丢失,则保存所述当前帧的数据,在接收或读取到下一帧时,从保存所述当前帧的数据中获取ACC1的比特,SBR1的比特和PS1的比特,根据所述第一量化编码数据,所述第一频带复制数据和所述第一立体声编码数据,执行解码获得当前帧音频数据,并对所述当前帧音频数据进行频带恢复和立体声还原处理。
[0097] 如果当前帧丢失,则在接收或读取到下一帧时,从所述下一帧的数据中获取所述ACC2的比特,SBR2的比特和PS2的比特,根据所述第二量化编码数据,所述第二频带复制数据和所述第二立体声编码数据,执行解码获得当前帧音频数据,并对所述当前帧音频数据进行频带恢复和立体声还原处理。
[0098] 请参阅图5,图5是本发明音频解码方法第一实施方式的流程示意图。
[0099] 所述音频解码方法包括以下步骤:
[0100] S501,获取音频数据码流;其中,所述音频数据码流的当前帧包括当前帧音频数据对应的第一量化编码数据,所述音频数据码流的下一帧包括所述当前帧音频数据对应的第二量化编码数据;
[0101] S502,判断获取的所述音频数据码流的当前帧是否丢失;如果当前帧未丢失,则执行步骤S503,如果当前帧丢失,则执行步骤S504;S503,从所述当前帧中获取所述第一量化编码数据,对所述第一量化编码数据进行解码,获取当前帧音频数据;
[0102] S504,从所述当前帧的下一帧中获取所述第二量化编码数据,对所述第二量化编码数据进行解码,获取当前帧音频数据。
[0103] 其中,对于步骤S501,获取音频数据码流。所述音频数据码流包含的所述第一量化编码数据和第二量化编码数据,由编码端对相同的音频数据分别进行第一量化编码和第二量化编码获得。当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,所述第二量化编码数据耦合至音频数据码流的下一帧。
[0104] 所述第二量化编码数据是所述音频数据的FEC(Forward Error Concealment,前向差错隐藏)数据,在所述第一量化编码数据丢失时,可通过所述第二量化编码数据的解码,获取丢失的音频数据。
[0105] 对于步骤S502,首先判断获取的所述音频数据码流的当前帧是否丢失;
[0106] 所述音频数据码流的当前帧是否丢失可以从所述音频数据码流的丢帧标志位读取,也可以通过其他习知的方式判断。
[0107] 一个常用的丢帧标志位为m_prev_lost_flag,当m_prev_lost_flag=0时,表示前一帧未丢失,当m_prev_lost_flag=1时,表示前一帧丢失。因此,判断当前帧是否丢失,可以在接收到所述当前帧的下一帧时,判断所述丢帧标志位m_prev_lost_flag是否等于1。
[0108] 进一步地,可设置在解码端输出的音频数据会延迟一个帧输出,亦即在接收到所述音频数据码流的下一帧时,再解码获取当前帧音频数据。
[0109] 则,所述获取当前帧的音频数据的步骤包括:
[0110] 保存所述音频数据码流的当前帧;
[0111] 在接收到所述音频数据码流的下一帧时,从保存的所述当前帧中获取所述第一量化编码数据并对所述第一量化编码数据进行解码,获取当前帧音频数据。
[0112] 如果所述当前帧为第一帧,可输出全0数据。
[0113] 亦即,在接收所述音频数据码流后,首先判断当前帧是否第一帧,所述判断可根据所述音频数据码流的另一个标志位m_first_frame_dec_flag是否为1来进行判断,如果m_first_frame_dec_flag=1,则表示收到的是第一帧数据,则保存当前帧数据,并输出全0数据;如果m_first_frame_dec_flag=0,则表示收到的不是第一帧数据,进一步判断m_prev_lost_flag是否为0。
[0114] 如果m_prev_lost_flag=1,则从所述下一帧中获取第二量化编码数据进行解码,获取所述当前帧音频数据,并将m_prev_lost_flag后移一位;如果m_prev_lost_flag=0,则从所述当前帧中获取第一量化编码数据进行解码,获取所述当前帧音频数据,并将m_prev_lost_flag后移一位。
[0115] 通过上述方法,将解码端输出的音频数据延迟一个帧输出,可以避免在丢包时发生的音频卡顿的现象。
[0116] 进一步地,如果所述音频数据码流的当前帧和下一帧都丢失,则对当前帧采用波形插值、数据包重复或者模型恢复的方法,对当前帧的音频数据进行丢包补偿。
[0117] 本发明的音频数据解码方法中,首先判断接收的音频数据码流的当前帧是否丢失,如果未丢失,则直接从当前帧获取第一量化编码数据进行解码,获取对应的当前帧音频数据;如果丢失,则从所述当前帧的下一帧中获取所述第二量化编码数据,根据所述第二量化编码数据解码获取丢失的当前帧音频数据。无需发送端重传整个丢失的音频数据帧,对网络延时影响较少。所述第二量化编码数据是直接根据音频数据编码而来,根据其解码获取对应的音频数据,可以使音频数据还原的质量较好。在获取所述第二量化编码数据之前,可进一步执行以下步骤:
[0118] 从所述音频数据码流读取预先设置的冗余编码标志位;
[0119] 如果所述冗余编码标志位有效,则获取所述第二量化编码数据,否则不获取所述第二量化编码数据。在解码端接收所述音频数据码流后,可以首先读取其中的所述冗余编码标志位,根据所述冗余编码标志位可以方便地判断在解码端是否进行丢帧补偿。
[0120] 本发明音频解码方法第二实施方式与所述第一实施方式的主要区别在于:
[0121] 所述音频数据码流的当前帧还包括当前帧音频数据对应的第一频带复制数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二频带复制数据;
[0122] 所述音频解码方法进一步包括以下步骤:
[0123] 如果当前帧未丢失,则从所述当前帧中获取所述第一频带复制数据,根据所述第一频带复制数据对解码获取的所述当前帧音频数据进行频带恢复;
[0124] 如果当前帧丢失,则从当前帧的下一帧中获取所述第二频带复制数据,根据所述第二频带复制数据对解码获取的所述当前帧音频数据进行频带恢复。
[0125] 其中,频带复制数据指的是经过频带复制编码处理后获得的一组参数,在编码端因为要节约传输带宽,因此一般将音频信号转换为低频信号发送。而通过进行频带复制编码,获取频带复制数据,并加入发送的音频数据码流中,则在解码端解码所述频带复制数据,可根据所述频带复制数据在解码端将音频信号恢复为高频信号。
[0126] 在本实施方式中,如果音频数据码流的当前帧没有丢失,则可以在音频数据码流的当前帧中提取所述第一量化编码数据和所述第一频带复制数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一频带复制数据,对所述当前帧音频数据进行频带恢复;
[0127] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二频带复制数据,解码获取所述第二量化编码数据对应的当前帧音频数据,并根据所述第二频带复制数据,对所述音频数据进行频带恢复。
[0128] 本发明音频解码方法第三实施方式与所述第一实施方式的主要区别在于:
[0129] 所述音频数据码流的当前帧还包括当前帧音频数据对应的第一立体声编码数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二立体声编码数据;
[0130] 所述音频解码方法进一步包括以下步骤:
[0131] 如果当前帧未丢失,则从所述当前帧中获取所述第一立体声编码数据,根据所述第一立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原;
[0132] 如果当前帧丢失,则从当前帧的下一帧中获取所述第二立体声编码数据,根据所述第二立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原。
[0133] 其中,所述立体声编码数据包括各个声道的音频信号强弱差别,以及相关性等信息。本实施方式尤其适合于具有至少两个声道的立体声音频数据的编码。
[0134] 如果音频数据码流的当前帧没有丢失,则可以在音频数据码流的当前帧中,提取所述第一量化编码数据和所述第一立体声编码数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一立体声编码数据,对所述音频数据进行立体声还原。
[0135] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二立体声编码数据,解码获取所述第二量化编码数据对应的当前帧音频数据,根据所述第二立体声编码数据,对所述音频数据进行立体声还原。
[0136] 本发明音频解码方法的第四实施方式为所述第二实施方式的音频解码方法和所述第三实施方式的音频解码方法结合。即,所述音频数据码流的当前帧包括当前帧音频数据对应的第一量化编码数据、第一频带复制数据和第一立体声编码数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二量化编码数据、第二频带复制数据和第二立体声编码数据;
[0137] 在解码端接收所述音频数据码流后,如果当前帧没有丢失,则从所述当前帧中获取所述第一量化编码数据,所述第一频带复制数据和所述第一立体声编码数据,执行解码获得当前帧的音频数据,并对所述音频数据进行频带恢复和立体声还原处理。
[0138] 如果当前帧丢失,则从所述下一帧的数据中获取所述第二量化编码数据,所述第二频带复制数据和所述第二立体声编码数据,执行解码获得当前帧的音频数据,并对所述音频数据进行频带恢复和立体声还原处理。
[0139] 请参阅图6,图6是本发明音频编码系统第一实施方式的结构示意图。
[0140] 本实施方式的所述音频编码系统包括:
[0141] 第一量化编码模块111,用于对音频数据进行第一量化编码,获取第一量化编码数据;
[0142] 第二量化编码模块112,用于对所述音频数据进行第二量化编码,获取第二量化编码数据;
[0143] 第一数据合成模块113,用于将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,将当前帧音频数据对应的所述第二量化编码数据耦合至所述音频数据码流的下一帧。
[0144] 通过对音频数据进行两次量化编码,并且两次量化编码获得的编码数据分别耦合至音频数据码流的当前帧和下一帧。在解码端发现当前帧发生丢包的情况下,也能够通过对下一帧包含的所述第二量化编码数据解码而获取当前帧音频数据,并且无需重传整个丢失的音频数据帧,对网络延时影响较少,并使音频数据还原的质量较好。
[0145] 其中,所述第一量化编码模块111对音频数据进行第一量化编码,所述第一量化编码包括各种音频数据的量化编码方式。所述音频数据包括单声道的音频数据,也包括立体声音频数据,以及各种帧长和采样率条件下获得的音频数据。
[0146] 所述第一量化编码模块111和所述第二量化编码模块112对音频数据进行第一量化编码和第二量化编码,所述第一量化编码和所述第二量化编码包括各种音频数据的量化编码方式。所述音频数据包括单声道的音频数据,也包括立体声音频数据,以及各种帧长和采样率条件下获得的音频数据。
[0147] 所述第一量化编码和所述第二量化编码根据预先设置的码率和编码带宽执行,获得的所述第一量化编码数据和所述第二量化编码数据是所述音频数据的核心编码信息,根据所述第一量化编码数据或者所述第二量化编码数据解码,都能够获得对应的音频数据。
[0148] 所述第一量化编码和所述第二量化编码的码率和编码带宽一般根据传输信道的带宽,发送端、接收端的处理能力等参数设定。
[0149] 在一个优选实施例中,所述第一量化编码的码率设置为大于所述第二量化编码的码率。因此,所述第二量化编码获得的第二量化编码数据的比特数小于所述第一量化编码获得的第一量化编码数据所占的比特数。因为所述第二量化编码数据是以FEC(Forward Error Concealment,前向差错隐藏)数据的形式耦合至音频数据码流的数据帧中的,而所述第二量化编码数据的比特数较少,对通信带宽的占用不会提高很多,但在丢失数据帧时,却能够准确恢复音频数据。
[0150] 在另一个优选实施例中,所述第一量化编码和所述第二量化编码的频域编码带宽相同,因此,根据所述第二量化编码数据解码获得的音频数据与根据所述第一量化编码数据解码获得的音频数据在听觉上基本没有差异,即使音频数据在传输过程中发生丢包,在解码端仍能够获得较好的音频质量。
[0151] 还可以进一步设置:所述第一量化编码的码率设置为大于所述第二量化编码的码率,并且所述第一量化编码和所述第二量化编码的频域编码带宽相同。则既可以保证对通信带宽的占用不会提高很多,又可在解码端得较好的音频质量。
[0152] 在一个实施例中,所述音频解码方法还包括一个QMF滤波模块,用于进行所述第一量化编码和第二量化编码之前,对所述音频数据进行QMF滤波,分解为若干子带;其中,对各个所述子带进行所述第一量化编码和第二量化编码时,所述第一量化编码和第二量化编码的编码高子带相同。
[0153] 在实际操作时,所述QMF滤波模块可以通过QMF滤波器组,将音频数据的时域信号分解成若干子带(例如64子带),对于第一量化编码和第二量化编码,在不同编码码率下要保证编码高子带Band_high一致。这样所述第一量化编码和第二量化编码的编码带宽就相同了,其中,编码带宽=(Band_high*采样率/子带总数+1)>>1。
[0154] 所述音频解码方法还可包括以下多个子模块中的一个或者多个:
[0155] 对所述音频数据进行下混频的混频子模块;
[0156] 对所述音频数据进行下采样的下采样子模块;
[0157] 和/或,对所述音频信号进行MDCT变换(修正的离散余弦变换),将所述音频信号从时域变换到频域的离散余弦变换子模块。
[0158] 通过上述预处理的子模块,下混频将立体声音频信号变换成单声道的音频信号,方便编码处理过程中提取核心编码信息。通过下采样,例如两倍的下采样,可以降低音频数据采样率,降低数据传输过程中对带宽造成的负担,通过MDCT变换,将所述音频信号从时域变换到频域,使其更适合于编码应用,提高音频编码的质量和效率。
[0159] 所述第一数据合成模块113将当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,因此如果在解码端收到的所述音频数据码流没有丢帧,则只需要在所述音频数据码流的当前帧中提取所述第一量化编码数据,对所述第一量化编码数据进行解码,即可获得对应的当前帧音频数据;
[0160] 将当前帧音频数据对应的所述第二量化编码数据耦合至音频数据码流的下一帧,则如果在解码端收到的所述音频数据码流发生丢帧,当前帧丢失,则可以从所述当前帧的下一帧中提取所述当前帧音频数据对应的第二量化编码数据,对所述第二量化编码数据进行解码,即可获得对应的当前帧音频数据。
[0161] 所述音频编码系统可进一步包括标志位设置模块,用于在所述音频数据码流中设置冗余编码标志位。则在解码端接收所述音频数据码流后,可以首先读取其中的所述冗余编码标志位,根据所述冗余编码标志位判断在编码端是否有进行丢帧补偿编码,以便在解码端选择合适的解码方法。
[0162] 请参阅图7,图7是本发明音频编码系统第二实施方式的局部结构示意图。
[0163] 本实施方式的音频编码系统与所述第一实施方式的主要区别在于,还包括:
[0164] 第一频带编码模块121,用于对所述音频数据进行第一频带复制编码,获取第一频带复制数据;
[0165] 第二频带编码模块122,用于对所述音频数据进行第二频带复制编码,获取第二频带复制数据;
[0166] 第二数据合成模块123,用于将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。
[0167] 其中,频带复制数据指的是经过频带复制编码处理后获得的一组参数,在编码端因为要节约传输带宽,因此一般将音频信号转换为低频信号发送。而通过进行频带复制编码,获取频带复制数据,并加入发送的音频数据码流中,则在解码端解码所述频带复制数据,可根据所述频带复制数据在解码端将音频信号恢复为高频信号。
[0168] 在本实方式中,所述第二频带编码模块121和所述第二频带编码模块122分别对所述音频信号进行第一频带复制编码和第二频带复制编码,获取第一频带复制数据和第二频带复制数据,并将当前帧音频数据对应的所述第一频带复制数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二频带复制数据耦合至所述音频数据码流的下一帧。
[0169] 如果在解码端所述音频数据码流的当前帧没有丢失,则可以从所述音频数据码流的当前帧中提取所述第一量化编码数据和所述第一频带复制数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一频带复制数据,对所述音频数据进行频带恢复;
[0170] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二频带复制数据,解码获取所述第二量化编码数据对应的当前帧音频数据,并根据所述第二频带复制数据,对所述音频数据进行频带恢复。
[0171] 进一步地,所述第一频带复制编码的码率大于所述第二频带复制编码的码率;和/或,所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同。
[0172] 所述第一频带复制编码的码率大于所述第二频带复制编码的码率,则所述第二频带复制编码获得的第二频带复制数据的比特数小于所述第一量化编码获得的第一量化编码数据所占的比特数。对通信带宽的占用较少。
[0173] 所述第一频带复制编码和所述第二频带复制编码的频域编码带宽相同,则根据所述第一频带复制数据和所述第二频带复制数据解码获得的频带复制数据基本相同,即使音频数据在传输过程中发生丢包,在解码端仍能够获得较好的音频质量。
[0174] 请参阅图8,图8是本发明音频编码系统第三实施方式的局部结构示意图。
[0175] 本实施方式的音频编码系统与所述第一实施方式的主要区别在于,还包括:
[0176] 第一立体声编码模块131,用于对所述音频数据进行第一立体声编码,获取第一立体声编码数据;
[0177] 第二立体声编码模块132,用于对所述音频数据进行第二立体声编码,获取第二立体声编码数据;第三数据合成模块133,用于将当前帧音频数据对应的所述第一立体声编码数据耦合至所述音频数据码流的当前帧;将当前帧音频数据对应的所述第二立体声编码数据耦合至所述音频数据码流的下一帧。
[0178] 其中,所述立体声编码数据包括各个声道的音频信号强弱差别,以及相关性等信息。本实施方式尤其适合于具有至少两个声道的立体声音频数据的编码。
[0179] 如果所述音频数据码流的当前帧没有丢失,则可以在当前帧的音频数据码流中,提取所述第一量化编码数据和所述第一立体声编码数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一立体声编码数据,对所述音频数据进行立体声还原。
[0180] 在所述音频数据码流的当前帧发生丢包时,则可以通过在下一帧中提取所述第二量化编码数据和所述第二立体声编码数据,解码获取所述第二量化编码数据对应的当前帧音频数据,根据所述第二立体声编码数据,对所述音频数据进行立体声还原。
[0181] 本发明音频编码系统的第四实施方式为所述第二实施方式的音频编码系统和所述第三实施方式的音频编码系统结合。即,同时包括所述第一量化编码模块111,第一频带编码模块121和第一立体声编码模块131,分别对音频数据进行第一量化编码、第一频带复制编码和第一立体声编码;
[0182] 第二量化编码模块112,第二频带编码模块122和第二立体声编码模块132,分别对音频数据进行第二量化编码、第二频带复制编码和第二立体声编码;
[0183] 所述第一数据合成模块113,第二数据合成模块123和所述第三数据合成模块133,分别将编码获得的所述第一量化编码数据,第一频带复制数据和第一立体声编码数据耦合至音频数据码流的当前帧;并将编码获得的所述第二量化编码数据,第二频带复制数据和第二立体声编码数据耦合至所述音频数据码流的下一帧。
[0184] 请参阅图9,图9是本发明音频解码系统第一实施方式的结构示意图。
[0185] 所述音频解码系统包括:
[0186] 码流获取模块211,用于获取音频数据码流;其中,所述音频数据码流的当前帧包括当前帧音频数据对应的第一量化编码数据,所述音频数据码流的下一帧包括所述当前帧音频数据对应的第二量化编码数据;
[0187] 判断模块212,用于判断获取的所述音频数据码流的当前帧是否丢失;
[0188] 第一量化解码模块213,用于如果当前帧未丢失,则从所述当前帧中获取所述第一量化编码数据,对所述第一量化编码数据进行解码,获取当前帧音频数据;
[0189] 第二量化解码模块214,用于如果当前帧丢失,则从所述当前帧的下一帧中获取所述第二量化编码数据,对所述第二量化编码数据进行解码,获取当前帧音频数据。
[0190] 其中,所述码流获取模块211获取音频数据码流。所述音频数据码流包含的所述第一量化编码数据和第二量化编码数据,由编码端对相同的音频数据分别进行第一量化编码和第二量化编码获得。当前帧音频数据对应的所述第一量化编码数据耦合至音频数据码流的当前帧,所述第二量化编码数据耦合至音频数据码流的下一帧。
[0191] 所述第二量化编码数据是所述音频数据的FEC(Forward Error Concealment,前向差错隐藏)数据,在所述第一量化编码数据丢失时,可通过所述第二量化编码数据的解码,获取丢失的音频数据。
[0192] 所述判断模块212,判断获取的所述音频数据码流的当前帧是否丢失。
[0193] 所述音频数据码流的当前帧是否丢失可以从所述音频数据码流的丢帧标志位读取,也可以通过其他习知的方式判断。
[0194] 一个常用的丢帧标志位为m_prev_lost_flag,当m_prev_lost_flag=0时,表示前一帧未丢失,当m_prev_lost_flag=1时,表示前一帧丢失。因此,判断当前帧是否丢失,可以在接收到所述当前帧的下一帧时,判断所述丢帧标志位m_prev_lost_flag是否等于1。
[0195] 进一步地,可设置在解码端输出的音频数据会延迟一个帧输出,亦即在接收到所述音频数据码流的下一帧时,再解码获取当前帧音频数据。
[0196] 则,所述获取当前帧的音频数据的步骤包括:
[0197] 保存所述音频数据码流的当前帧;
[0198] 在接收到所述音频数据码流的下一帧时,从保存的所述当前帧中获取所述第一量化编码数据并对所述第一量化编码数据进行解码,获取当前帧音频数据。
[0199] 如果所述当前帧为第一帧,可输出全0数据。
[0200] 亦即,在接收所述音频数据码流后,首先判断当前帧是否第一帧,所述判断可根据所述音频数据码流的另一个标志位m_first_frame_dec_flag是否为1来进行判断,如果m_first_frame_dec_flag=1,则表示收到的是第一帧数据,则保存当前帧数据,并输出全0数据;如果m_first_frame_dec_flag=0,则表示收到的不是第一帧数据,进一步判断m_prev_lost_flag是否为0。
[0201] 如果m_prev_lost_flag=1,则从所述下一帧中获取第二量化编码数据进行解码,获取所述当前帧音频数据,并将m_prev_lost_flag后移一位;如果m_prev_lost_flag=0,则从所述当前帧中获取第一量化编码数据进行解码,获取所述当前帧音频数据,并将m_prev_lost_flag后移一位。
[0202] 通过上述方法,将解码端输出的音频数据延迟一个帧输出,可以避免在丢包时发生的音频卡顿的现象。
[0203] 如果所述音频数据码流的当前帧和下一帧都丢失,则对当前帧采用波形插值、数据包重复或者模型恢复的方法,对当前帧的音频数据进行丢包补偿。
[0204] 本发明的音频数据解码系统中,首先判断接收的音频数据码流的当前帧是否丢失,如果未丢失,则直接从当前帧获取第一量化编码数据进行解码,获取对应的当前帧音频数据;如果丢失,则从所述当前帧的下一帧中获取所述第二量化编码数据,根据所述第二量化编码数据解码获取丢失的当前帧音频数据。无需发送端重传整个丢失的音频数据帧,对网络延时影响较少。所述第二量化编码数据是直接根据音频数据编码而来,根据其解码获取对应的音频数据,可以使音频数据还原的质量较好。
[0205] 本发明所述音频解码系统可进一步包括:
[0206] 标志位读取模块,用于从所述音频数据码流读取预先设置的冗余编码标志位;如果所述冗余编码标志位有效,则获取所述第二量化编码数据,否则不获取所述第二量化编码数据。在解码端接收所述音频数据码流后,可以首先读取其中的所述冗余编码标志位,根据所述冗余编码标志位可以方便地判断在解码端是否进行丢帧补偿。
[0207] 请参阅图10,图10是本发明音频解码系统第二实施方式的结构示意图。
[0208] 本实施方式的音频解码系统与所述第一实施方式的主要区别在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一频带复制数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二频带复制数据;
[0209] 所述音频解码系统还包括:
[0210] 第一频带解码模块221,用于如果当前帧未丢失,则从所述当前帧中获取所述第一频带复制数据,根据所述第一频带复制数据对解码获取的所述当前帧音频数据进行频带恢复;
[0211] 第二频带解码模块222,用于如果当前帧丢失,则从当前帧的下一帧中获取所述第二频带复制数据,根据所述第二频带复制数据对解码获取的所述当前帧音频数据进行频带恢复。
[0212] 其中,频带复制数据指的是经过频带复制编码处理后获得的一组参数,在编码端因为要节约传输带宽,因此一般将音频信号转换为低频信号发送。而通过进行频带复制编码,获取频带复制数据,并加入发送的音频数据码流中,则在解码端解码所述频带复制数据,可根据所述频带复制数据在解码端将音频信号恢复为高频信号。
[0213] 在本实施方式中,如果音频数据码流的当前帧没有丢失,则可以在音频数据码流的当前帧中提取所述第一量化编码数据和所述第一频带复制数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一频带复制数据,对所述当前帧音频数据进行频带恢复;
[0214] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二频带复制数据,解码获取所述第二量化编码数据对应的当前帧音频数据,并根据所述第二频带复制数据,对所述音频数据进行频带恢复。
[0215] 请参阅图11,图11是本发明音频解码系统第三实施方式的结构示意图。
[0216] 本实施方式的音频解码系统与所述第一实施方式的主要区别在于,所述音频数据码流的当前帧还包括当前帧音频数据对应的第一立体声编码数据,所述音频数据码流的下一帧还包括当前帧音频数据对应的第二立体声编码数据;
[0217] 所述音频解码系统还包括:
[0218] 第一立体声解码模块231,用于如果当前帧未丢失,则从所述当前帧中获取所述第一立体声编码数据,根据所述第一立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原;
[0219] 第二立体声解码模块232,用于如果当前帧丢失,则从当前帧的下一帧中获取所述第二立体声编码数据,根据所述第二立体声编码数据对解码获取的所述当前帧音频数据进行立体声还原。其中,所述立体声编码数据包括各个声道的音频信号强弱差别,以及相关性等信息。本实施方式尤其适合于具有至少两个声道的立体声音频数据的编码。
[0220] 如果音频数据码流的当前帧没有丢失,则可以在音频数据码流的当前帧中,提取所述第一量化编码数据和所述第一立体声编码数据,解码获取所述第一量化编码数据对应的当前帧音频数据,并根据所述第一立体声编码数据,对所述音频数据进行立体声还原。
[0221] 如果音频数据码流的当前帧丢失,则可以通过在下一帧中提取所述第二量化编码数据和所述第二立体声编码数据,解码获取所述第二量化编码数据对应的当前帧音频数据,根据所述第二立体声编码数据,对所述音频数据进行立体声还原。
[0222] 本发明音频解码系统的第四实施方式为所述第二实施方式的音频解码系统和所述第三实施方式的音频解码系统结合。即,同时包括所述码流获取模块211,判断模块212,第一量化解码模块213,第二量化解码模块214,第一频带解码模块221,第二频带解码模块222,第一立体声解码模块231和第二立体声解码模块232。
[0223] 在解码端接收所述音频数据码流后,如果当前帧没有丢失,则从所述当前帧中获取所述第一量化编码数据,所述第一频带复制数据和所述第一立体声编码数据,执行解码获得当前帧的音频数据,并对所述音频数据进行频带恢复和立体声还原处理。
[0224] 如果当前帧丢失,则从所述下一帧的数据中获取所述第二量化编码数据,所述第二频带复制数据和所述第二立体声编码数据,执行解码获得当前帧的音频数据,并对所述音频数据进行频带恢复和立体声还原处理。
[0225] 本领域普通技术人员可以理解实现上述实施方式中的全部或部分流程以及对应的系统,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各实施方式的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0226] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。