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

申请号 : CN201110147298.5

文献号 : CN102810314B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵云轩张金亮

申请人 : 华为终端有限公司

摘要 :

本发明实施例公开了一种音频编码方法及装置、音频解码方法及装置、编解码系统,能够提高音频数据传输过程中的抗丢包性能。本发明实施例方法应用于至少包含2个声道的音频编解码系统,该方法包括:获取N个声道的音频数据;对获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,X为一个数据包中的音频数据的数目与一个音频帧中的音频数据的数目的比值,X为大于或等于1的整数;所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。本发明实施例还提供一种音频解码方法,相关装置以及编解码系统。本发明实施例能够有效提高音频数据传输过程中的抗丢包性能。

权利要求 :

1.一种音频编码方法,应用于音频编码系统,所述音频编码系统包含N个声道,N为大于或等于2的整数,其特征在于,包括:获取所述N个声道的音频数据;

对所述获取到的N个声道的音频数据进行声道交织打包得到数据包,使得音频解码装置依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数;

所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。

2.根据权利要求1所述的方法,其特征在于,所述对获取到的N个声道的音频数据进行声道交织打包得到数据包包括:将第h个音频帧中的第m个声道的音频数据与第i个音频帧中除第m个声道之外的其他声道的音频数据组成一个数据包;

并将第i个音频帧中的第m个声道的音频数据与第h个音频帧中除第m个声道之外的其他声道的音频数据组成另一数据包;

所述h,i为不同的音频帧的编号,所述m为1到N中的任一整数。

3.根据权利要求2所述的方法,其特征在于,

所述第h个音频帧和所述第i个音频帧为时间上相邻的音频帧。

4.根据权利要求1所述的方法,其特征在于,所述对获取到的N个声道的音频数据进行声道交织打包得到数据包包括:对时间上相邻的N个音频帧中的音频数据进行声道交织打包得到N个数据包,每个数据包中包含N段音频数据,所述N段音频数据中,任意两段音频数据均属于不同的音频帧。

5.根据权利要求4所述的方法,其特征在于,若N为2,所述对时间上相邻的N个音频帧中的音频数据进行声道交织打包得到N个数据包包括:将第j个音频帧的左声道的音频数据Lj与第j+1个音频帧的右声道的音频数据Rj+1组成一个数据包;

并将第j+1个音频帧的左声道的音频数据Lj+1与第j个音频帧的右声道的音频数据Rj组成另一数据包;

所述j为音频帧的编号。

6.根据权利要求4所述的方法,其特征在于,若N为3,所述对时间上相邻的N个音频帧中的音频数据进行声道交织打包得到N个数据包包括:将第k个音频帧的左声道的音频数据Lk、第k+1个音频帧的中声道的音频数据Mk+1以及第k+2个音频帧的右声道的音频数据Rk+2组成一个数据包;

并将第k+1个音频帧的左声道的音频数据Lk+1、第k+2个音频帧的中声道的音频数据Mk+2以及第k个音频帧的右声道的音频数据Rk组成另一数据包;

并将第k+2个音频帧的左声道的音频数据Lk+2、第k个音频帧的中声道的音频数据Mk以及第k+1个音频帧的右声道的音频数据Rk+1组成再一数据包。

7.根据权利要求1至6任一项所述的方法,其特征在于,所述对获取到的N个声道的音频数据进行声道交织打包得到数据包之后包括:对至少两个数据包中的音频数据进行两两异或运算得到冗余包。

8.一种音频解码方法,应用于音频编码系统,所述音频编码系统包含N个声道,N为大于或等于2的整数,其特征在于,包括:接收数据包;

当检测到数据包发生丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;

判断已接收到的数据包中是否包含所述丢失音频帧的剩余音频数据;

若包含,则使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;

若不包含,则继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。

9.根据权利要求8所述的方法,其特征在于,所述使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复包括:确定所述丢失音频帧中丢失的音频数据对应的声道,以及所述丢失音频帧的剩余音频数据对应的声道;

根据声道之间的相关性,利用所述丢失音频帧的剩余音频数据对所述丢失音频帧中丢失的音频数据进行恢复。

10.根据权利要求8所述的方法,其特征在于,所述方法还包括:获取与所述丢失音频帧在时间上相邻的前一个音频帧和/或后一个音频帧;

所述使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复包括:使用所述丢失音频帧的前一个音频帧和/或后一个音频帧、以及丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。

11.一种音频编码装置,用于对N个声道的音频数据进行编码,所述N为大于或等于2的整数,其特征在于,所述音频编码装置包括:获取单元,用于获取N个声道的音频数据;

交织打包单元,用于对所述获取单元获取到的N个声道的音频数据进行声道交织打包得到数据包,使得音频解码装置依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数,所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。

12.根据权利要求11所述的音频编码装置,其特征在于,

所述交织打包单元具体用于将第h个音频帧中的第m个声道的音频数据与第i个音频帧中除第m个声道之外的其他声道的音频数据组成一个数据包,并将第i个音频帧中的第m个声道的音频数据与第h个音频帧中除第m个声道之外的其他声道的音频数据组成另一数据包;

所述h,i为不同的音频帧的编号,所述m为1到N中的任一整数。

13.根据权利要求11所述的音频编码装置,其特征在于,

所述交织打包单元具体用于对时间上相邻的N个音频帧中的音频数据进行声道交织打包得到N个数据包,每个数据包中包含N段音频数据,所述N段音频数据中,任意两段音频数据均属于不同的音频帧。

14.根据权利要求11至13中任一项所述的音频编码装置,其特征在于,所述音频编码装置还包括:冗余处理单元,用于对所述交织打包单元打包得到的至少两个数据包中的音频数据进行两两异或运算得到冗余包。

15.一种音频解码装置,用于对N个声道的音频数据进行解码,所述N为大于或等于2的整数,其特征在于,所述音频解码装置包括:接收单元,用于接收数据包;

查询单元,用于当检测到数据包发生丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;

判断单元,用于判断所述接收单元已接收到的数据包中是否包含所述查询单元查询到的丢失音频帧的剩余音频数据,若包含,则触发恢复单元执行相应操作,若不包含,则触发处理单元执行相应操作;

恢复单元,用于根据所述判断单元的触发,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;

处理单元,用于根据所述判断单元的触发,触发所述接收单元继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,触发恢复单元执行相应操作。

16.根据权利要求15所述的音频解码装置,其特征在于,所述恢复单元包括:确定模块,用于确定所述丢失音频帧中丢失的音频数据对应的声道,以及所述丢失音频帧的剩余音频数据对应的声道;

执行模块,用于根据声道之间的相关性,利用所述丢失音频帧的剩余音频数据对所述丢失音频帧中丢失的音频数据进行恢复。

17.根据权利要求15所述的音频解码装置,其特征在于,所述音频解码装置还包括:相邻帧获取单元,用于获取与所述丢失音频帧在时间上相邻的前一个音频帧和/或后一个音频帧;

所述恢复单元具体用于使用所述丢失音频帧的前一个音频帧和/或后一个音频帧、以及丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。

18.一种编解码系统,所述编解码系统包含N个声道,N为大于或等于2的整数,其特征在于,包括:音频编码装置,用于获取N个声道的音频数据;对获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数;

所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧;发送所述数据包;

音频解码装置,用于接收数据包;当发生数据包丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;判断已接收到的数据包中是否包含所述丢失音频帧的剩余音频数据;若包含,则使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;若不包含,则继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。

说明书 :

音频编码方法及装置、音频解码方法及装置、编解码系统

技术领域

[0001] 本发明涉及数据处理领域,尤其涉及一种音频编码方法及装置、音频解码方法及装置、编解码系统。

背景技术

[0002] 视讯技术实现了语音、图像、数据等信息综合在一起的远距离传输,使人们在进行异地交流时利用视讯技术既可以听到对方的声音,又可以看到对方的活动图像和胶片内容,大大增强了异地交流的亲切感和临场感。
[0003] 视讯会议系统一般由多点控制单元(MCU,Multipoint Control Unit)和终端组成。在一个视讯会议中,每个终端对应一个会场,采集各个会场的声音、图像并编码发送给MCU。MCU按照一定的方式对声音、图像进行处理(声音混音、图像转发或组成多画面),并将处理后的声音和图像发送给各个终端,终端解码输出远端会场的声音和图像,实现远程通信的目的。
[0004] 现有的视讯会议系统一般采用用户数据报协议(UDP,User DatagramProtocol)传输音频和图像数据,由于UDP提供的是面向事务的简单不可靠信息传送服务,所以音频和图像数据传输过程中的丢包现象在所难免。
[0005] 为便于理解,下面首先对音频编解码过程中的一些参数进行简要说明:
[0006] 请参阅图1,图1展示了N个声道的音频数据流,其中,N个声道属于同一时刻的单位长度的音频数据(例如C1i,C2i,......,CNi)可以看作是一个音频帧,即如图1中所划分的音频帧1,音频帧2......音频帧i等,该i为音频帧的序号,i的数值与音频数据的时长有关。
[0007] 为后续描述的简便,可以将一段单位长度的音频数据叫做一段音频数据,该单位长度可以根据实际应用环境确定,其同时也表示一个音频帧的长度,例如为5毫秒,或10毫秒等,每个音频帧可以看作是由属于同一时刻的不同声道的音频数据所组成的集合。
[0008] 现有技术中,编码终端在进行至少两个声道音频编码时,会将同一音频帧中不同声道的音频数据编入一个数据包中,例如对于双声道音频编码,编码终端会将第1音频帧的左声道音频数据L1,以及第1音频帧的右声道音频数据R1编入数据包P1中,同理,数据包P2中编入L2以及R2,数据包P3中编入L3以及R3,以此类推,具体的数据包的打包方式可以如图2所示。
[0009] 假设这些数据包发往解码终端的过程中发生了丢包,则解码终端会采用正常接收到的数据包对丢失的数据包进行恢复,例如数据包P2发生了丢包,但是解码终端正常接收到了数据包P1以及数据包P3,则解码终端利用数据包P1中的音频数据以及数据包P3中的音频数据对数据包P2进行恢复。
[0010] 上述是一包一帧的打包方式,现有技术也可以采用一包多帧的打包方式,当采用一包多帧的打包方式时,每个数据包包含多个音频帧,且这些音频帧的全部音频数据均编入同一数据包,例如数据包P1中编入L1,R1,L2以及R2,数据包P2中编入L3,R3,L4以及R4。
[0011] 上述现有技术的方案中,每个数据包对应一个或多个音频帧,且这些音频帧的全部音频数据均被编入同一数据包,也就是说,如果一个数据包发生了丢包,则其对应的全部音频帧上所有声道的音频数据都会丢失,如果音频数据在不同音频帧间的变化比较大,则解码终端使用前后音频帧进行音频数据恢复时则难以取得较好的效果,从而降低了音频数据传输过程中的抗丢包性能。

发明内容

[0012] 本发明实施例提供了一种音频编码方法及装置、音频解码方法及装置、编解码系统,能够提高音频数据传输过程中的抗丢包性能。
[0013] 本发明实施例提供的音频编码方法,应用于音频编码系统,所述音频编码系统包含N个声道,N为大于或等于2的整数,包括:
[0014] 获取所述N个声道的音频数据;对所述获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数;所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。
[0015] 本发明实施例提供的音频解码方法,应用于音频编码系统,所述音频编码系统包含N个声道,N为大于或等于2的整数,包括:
[0016] 接收数据包;当检测到数据包发生丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;判断已接收到的数据包中是否包含所述丢失音频帧的剩余音频数据;若包含,则使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;若不包含,则继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。
[0017] 本发明实施例提供的音频编码装置,用于对N个声道的音频数据进行编码,所述N为大于或等于2的整数,所述音频编码装置包括:
[0018] 获取单元,用于获取N个声道的音频数据;交织打包单元,用于对所述获取单元获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数,所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。
[0019] 本发明实施例提供的音频解码装置,用于对N个声道的音频数据进行解码,所述N为大于或等于2的整数,所述音频解码装置包括:
[0020] 接收单元,用于接收数据包;查询单元,用于当检测到数据包发生丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;判断单元,用于判断所述接收单元已接收到的数据包中是否包含所述查询单元查询到的丢失音频帧的剩余音频数据,若包含,则触发恢复单元执行相应操作,若不包含,则触发处理单元执行相应操作;恢复单元,用于根据所述判断单元的触发,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;处理单元,用于根据所述判断单元的触发,触发所述接收单元继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,触发恢复单元执行相应操作。
[0021] 本发明实施例提供的编解码系统,所述编解码系统包含N个声道,N为大于或等于2的整数,包括:
[0022] 音频编码装置,用于获取N个声道的音频数据;对获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,所述X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,所述X为大于或等于1的整数;所述X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧;发送所述数据包;音频解码装置,用于接收数据包;当发生数据包丢包时,查询丢失的数据包对应的丢失音频帧,所述丢失音频帧为丢失了部分音频数据的音频帧;判断已接收到的数据包中是否包含所述丢失音频帧的剩余音频数据;若包含,则使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复;若不包含,则继续接收数据包,当获取到所述丢失音频帧的剩余音频数据时,使用所述丢失音频帧的剩余音频数据对所述丢失音频帧进行音频数据恢复。
[0023] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0024] 本发明实施例中,音频编码装置打包得到的数据包中包含X*N段音频数据,由于在这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,所以在数据包传输过程中若丢失了一个数据包,则该数据包中至少会有两个音频帧的音频数据不会完全丢失,即使音频数据在不同音频帧间的变化比较大,音频解码装置也可以依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,由于同一音频帧中的音频数据具有较强的相关性,因此音频解码装置在进行音频数据恢复时可以取得较好的效果,从而提高了音频数据传输过程中的抗丢包性能。

附图说明

[0025] 图1为现有技术中音频数据划分示意图;
[0026] 图2为现有技术中的数据包打包示意图;
[0027] 图3为本发明音频编码方法一个实施例示意图;
[0028] 图4为本发明音频编码方法另一实施例示意图;
[0029] 图5为本发明音频编码方法另一实施例示意图;
[0030] 图6为本发明双声道系统中数据包一种打包方式示意图;
[0031] 图7为本发明三声道系统中数据包一种打包方式示意图;
[0032] 图8为本发明双声道系统中数据包另一种打包方式示意图;
[0033] 图9为本发明双声道系统中数据包再一种打包方式示意图;
[0034] 图10为本发明三声道系统中数据包另一种打包方式示意图;
[0035] 图11为本发明音频解码方法一个实施例示意图;
[0036] 图12(a)为本发明声道交织打包方式1示意图;
[0037] 图12(b)为本发明声道交织打包方式1解码后示意图;
[0038] 图13(a)为本发明声道交织打包方式2示意图;
[0039] 图13(b)为本发明声道交织打包方式2解码后示意图;
[0040] 图14(a)为本发明声道交织打包方式3示意图;
[0041] 图14(b)为本发明声道交织打包方式3解码后示意图;
[0042] 图15(a)为本发明声道交织打包方式4示意图;
[0043] 图15(b)为本发明声道交织打包方式4解码后示意图;
[0044] 图16(a)为本发明声道交织打包方式5示意图;
[0045] 图16(b)为本发明声道交织打包方式5解码后示意图;
[0046] 图17(a)为本发明声道交织打包方式6示意图;
[0047] 图17(b)为本发明声道交织打包方式6解码后示意图;
[0048] 图18为本发明音频编码装置实施例示意图;
[0049] 图19为本发明音频解码装置实施例示意图;
[0050] 图20为本发明编解码系统实施例示意图。

具体实施方式

[0051] 本发明实施例提供了一种音频编码方法及装置、音频解码方法及装置、编解码系统,能够提高音频数据传输过程中的抗丢包性能。
[0052] 请参阅图3,本发明音频编码方法一个实施例包括:
[0053] 301、获取至少两个声道的音频数据;
[0054] 本实施例中,音频编码装置在进行音频编码之前,可以从采集设备,或者是其他的音频设备获取到至少两个声道的音频数据。
[0055] 需要说明的是,音频编码装置应用于音频编解码系统中,该音频编解码系统包含N个声道,其中N为大于或等于2的整数。其中,音频编码装置可以以一个独立的设备实现,也可以以模块的方式集成在其他终端设备中。
[0056] 该N个声道的音频数据中的每一个声道的音频数据被按照时间顺序划分为不同的音频帧,每一个音频帧具有固定的长度,每一个音频帧中包含N段音频数据,每段音频数据对应一个声道。
[0057] 例如对于3声道系统而言,每个音频帧中包含3段音频数据,这3段音频数据分别对应左声道,中声道以及右声道的各一段音频信号。
[0058] 302、对获取到的音频数据进行声道交织打包得到数据包。
[0059] 音频编码装置获取到N个声道的音频数据之后,可以对获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。
[0060] 其中,该X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,X为大于或等于1的整数,例如,若每个数据包中包含2段音频数据,每个音频帧中包含2段音频数据,则X等于1,若每个数据包中包含4个音频帧,每个音频帧中包含2段音频数据,则X等于2,诸如此类,此处不作限定。
[0061] 本实施例中,当打包得到数据包之后,音频编码装置为进一步提高音频数据传输过程中的抗丢包性能,还可以对至少两个数据包中的音频数据进行两两异或运算得到冗余包。
[0062] 需要说明的是,若音频编码装置对两个数据包中的音频数据进行两两异或运算得到冗余包,则该冗余包可以插入在这两个数据包之后传输,也可以放在所有的数据包之后传输,具体此处不作限定。
[0063] 每一个音频帧中包含N段音频数据,每个数据包中包含X*N段音频数据,而且每个数据包包含的X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,例如,当X等于1时,每个数据包包含N段音频数据,且这N段音频数据中,至少有2段音频数据属于不同的音频帧,当X等于2时,每个数据包包含2N段音频数据,且这2N段音频数据中,至少有3段音频数据属于不同的音频帧。
[0064] 从上面的示例可以看出,音频编码装置打包得到的数据包中包含X*N段音频数据,由于在这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,所以在数据包传输过程中若丢失了一个数据包,则该数据包中至少会有两个音频帧的音频数据不会完全丢失,即使音频数据在不同音频帧间的变化比较大,音频解码装置也可以依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,由于同一音频帧中的音频数据具有较强的相关性,因此音频解码装置在进行音频数据恢复时可以取得较好的效果,从而提高了音频数据传输过程中的抗丢包性能。
[0065] 本发明实施例中,可以采用多种方式实现声道交织打包,随着声道数目的增加,一个数据包中所包含的音频数据也会增加,这些音频数据中可以只有X+1段音频数据属于不同的音频帧,而其他的音频数据可以属于相同的音频帧,或者这些音频数据可以分别属于不同的音频帧,即每一个数据包中任意两段音频数据均属于不同的音频帧。
[0066] 可以理解的是,根据上述描述的两种方式可知,一个数据包中所包含的X*N段音频数据中可以有X+1至X*N段音频数据分别属于不同的音频帧,为便于说明,假设X等于1,下面以一些具体例子进行描述:
[0067] (1)、只有2段音频数据属于不同的音频帧:
[0068] 请参阅图4,本发明音频编码方法另一实施例包括:
[0069] 401、获取N个声道的音频数据;
[0070] 本实施例中的步骤401与图3所示实施例中的步骤301描述的内容类似,此处不再赘述。
[0071] 402、将第h个音频帧中的第m个声道的音频数据与第i个音频帧中除第m个声道之外的其他声道的音频数据组成一个数据包;
[0072] 本实施例中,声道的数目为N,音频编码装置可以将第h个音频帧中的第m个声道的音频数据与第i个音频帧中除第m个声道之外的其他的N-m个声道的音频数据组成一个数据包。
[0073] 音频编码装置得到的该数据包中包含N段音频数据,其中有一段音频数据为第h个音频帧中的第m个声道的音频数据,其余的为第i个音频帧中的音频数据,所以该数据包中有2段音频数据属于不同的音频帧。
[0074] 403、将第i个音频帧中的第m个声道的音频数据与第h个音频帧中除第m个声道之外的其他声道的音频数据组成另一数据包。
[0075] 本实施例中,声道的数目为N,音频编码装置可以将第i个音频帧中的第m个声道的音频数据与第h个音频帧中除第m个声道之外的其他的N-m个声道的音频数据组成一个数据包。
[0076] 音频编码装置得到的该数据包中包含N段音频数据,其中有一段音频数据为第i个音频帧中的第m个声道的音频数据,其余的为第h个音频帧中的音频数据,所以该数据包中有2段音频数据属于不同的音频帧。
[0077] 需要说明的是,本实施例中的步骤402与步骤403之间并没有固定的执行顺序,可以先执行步骤402,也可以先执行步骤403,或者还可以同时执行步骤402以及403,具体此处不作限定。
[0078] 本实施例中的第h个音频帧和第i个音频帧可以为时间上相邻的音频帧,也可以为时间上不相邻的音频帧,具体此处不作限定。
[0079] 当第h个音频帧和第i个音频帧可以为时间上相邻的音频帧时,本实施例中的打包方式可以使得相邻数据包中包含的音频帧跨度比较小,从而可以在音频解码时有效减少解码时延。
[0080] 此处仅以两个音频帧为例进行说明,可以理解的是,在实际应用中,也可以是更多的音频帧。
[0081] (2)、任意2段音频数据均属于不同的音频帧:
[0082] 请参阅图5,本发明音频编码方法另一实施例包括:
[0083] 501、获取N个声道的音频数据;
[0084] 本实施例中的步骤501与图3所示实施例中的步骤301描述的内容类似,此处不再赘述。
[0085] 502、对时间上相邻的N个音频帧中的音频数据进行声道交织打包得到N个数据包。
[0086] 本实施例中,声道的数目为N,音频编码装置可以将时间上相邻的N个音频帧中的音频数据进行声道交织打包,使得打包得到的每个数据包中包含N段音频数据,且在这N段音频数据中,任意两段音频数据均属于不同的音频帧。
[0087] 在实际应用中,音频编码装置可以采用交替打包的方式,例如先确定声道的数目N,再对于每一个音频帧,将该音频帧中的N段音频数据分别打包在N个数据包中,则N个音频帧中的音频数据正好可以放置在N个数据包中,这样即可实现每个数据包的N段音频数据中,任意两段音频数据均属于不同的音频帧。
[0088] 为便于理解,下面以两个具体实例进行简单描述:
[0089] 对于2声道系统,请参阅图6:
[0090] 音频编码装置可以将第i个音频帧的左声道的音频数据Li与第i+1个音频帧的右声道的音频数据Ri+1组成一个数据包;
[0091] 并将第i+1个音频帧的左声道的音频数据Li+1与第i个音频帧的右声道的音频数据Ri组成另一数据包。
[0092] 对于3声道系统,请参阅图7:
[0093] 音频编码装置可以将第i个音频帧的左声道的音频数据Li、第i+1个音频帧的中声道的音频数据Mi+1以及第i+2个音频帧的右声道的音频数据Ri+2组成一个数据包;
[0094] 并将第i+1个音频帧的左声道的音频数据Li+1、第i+2个音频帧的中声道的音频数据Mi+2以及第i个音频帧的右声道的音频数据Ri组成另一数据包;
[0095] 并将第i+2个音频帧的左声道的音频数据Li+2、第i个音频帧的中声道的音频数据Mi以及第i+1个音频帧的右声道的音频数据Ri+1组成再一数据包。
[0096] 上述例子中描述的排列和组合的方式仅是本实施例中的一种情况,在实际应用中,可以采用其他的排列组合方式实现,例如:
[0097] 对于2声道系统,请参阅图8以及图9:
[0098] 音频编码装置可以将第i个音频帧的右声道的音频数据Ri与第i+1个音频帧的左声道的音频数据Li+1组成一个数据包;
[0099] 并将第i+1个音频帧的右声道的音频数据Ri+1与第i个音频帧的左声道的音频数据Li组成另一数据包。
[0100] 或,
[0101] 音频编码装置可以将第i个音频帧的右声道的音频数据Ri与第i+1个音频帧的右声道的音频数据Ri+1组成一个数据包;
[0102] 并将第i+1个音频帧的左声道的音频数据Li+1与第i个音频帧的左声道的音频数据Li组成另一数据包。
[0103] 对于3声道系统,请参阅图10:
[0104] 音频编码装置可以将第i个音频帧的左声道的音频数据Li、第i+1个音频帧的左声道的音频数据Li+1以及第i+2个音频帧的左声道的音频数据Li+2组成一个数据包;
[0105] 并将第i+1个音频帧的中声道的音频数据Mi+1、第i+2个音频帧的中声道的音频数据Mi+2以及第i个音频帧的中声道的音频数据Mi组成另一数据包;
[0106] 并将第i+2个音频帧的右声道的音频数据Ri+2、第i个音频帧的右声道的音频数据Ri以及第i+1个音频帧的右声道的音频数据Ri+1组成再一数据包。
[0107] 在实际应用中,除了2声道系统以及3声道系统之外,还可以有更多声道的系统,具体处理方式与上述描述的方法类似,此处不再赘述。
[0108] 上面介绍了本发明音频编码方法,下面介绍本发明音频解码方法,请参阅图11,本发明音频解码方法一个实施例包括:
[0109] 1101、接收来自音频编码装置的数据包;
[0110] 当音频编码装置完成了编码之后,数据包会被发送至音频解码装置。
[0111] 该发送的过程可以是音频编码装置直接向音频解码装置发送该数据包,也可以是音频编码装置向转发设备发送该数据包,再由转发设备将该数据包发送至音频解码装置。
[0112] 1102、当检测到发生数据包丢包时,查询丢失的数据包对应的丢失音频帧;
[0113] 由于数据包往往是通过UDP方式发送的,由于UDP提供的是面向事务的简单不可靠信息传送服务,所以在传输过程中的数据包丢包现象在所难免。
[0114] 每个数据包都有其对应的唯一标识,例如音频编码装置发送的第一个数据包为数据包1,其标识为000,第二个数据包为数据包2,其标识为001,第三个数据包为数据包3,其标识为010,以此类推。
[0115] 音频解码装置可以根据接收到的数据包的标识以确定是否发生了丢包,例如音频解码装置接收到第一个数据包的标识为000,第二个数据包的标识为010,则音频解码装置可以确定发生了丢包,且丢失的数据包为数据包2。
[0116] 除了上述丢一个包的情况,现实系统中还会存在连续丢失2个包,以及多个包的情况。可以理解的是,在实际应用中,音频解码装置除了采用上述的方式确定是否发生丢包,以及具体丢失的数据包之外,还可以使用其他的方式,具体方式此处不作限定。
[0117] 本实施例中,音频编码装置所采用的打包规则可以预先设置于音频编码装置以及音频解码装置中,所以当音频解码装置确定了丢失的数据包之后,则可以查询到该丢失的数据包对应的丢失音频帧,该丢失音频帧为丢失了部分音频数据的音频帧。
[0118] 1103、判断已接收到的数据包中是否包含丢失音频帧的剩余音频数据,若是,则执行步骤1105,若否,则执行步骤1104;
[0119] 音频解码装置在确定了丢失音频帧之后,可以判断已接收到的数据包中是否包含丢失音频帧的剩余音频数据。
[0120] 1104、继续接收数据包;
[0121] 若音频解码装置确定已经接收到的数据包中不包含丢失音频帧的剩余音频数据,则音频解码装置可以继续接收数据包。
[0122] 1105、根据声道之间的相关性,利用所述丢失音频帧的剩余音频数据对丢失音频帧中丢失的音频数据进行恢复。
[0123] 若音频解码装置确定已经接收到的数据包中包含丢失音频帧的剩余音频数据,或者是音频解码装置通过步骤1104在继续接收数据包的过程中获取到了丢失音频帧的剩余数据,则可以按照声道之间的相关性,使用这些剩余音频数据恢复丢失音频帧中丢失的音频数据。
[0124] 需要说明的是,N声道系统中的多个声道往往是为了达到声音环绕的效果,所以同一个音频帧中的不同声道具有较强的相关性,也就是说同一个音频帧中的不同音频数据之间比较类似,区别一般在于声道对应的扬声器与听众位置之间的距离。
[0125] 本实施例中,可以通过多种方式使用剩余音频数据恢复丢失音频帧中丢失的音频数据,例如:
[0126] 音频解码装置可以判断已丢失的音频数据对应的声道与未丢失的音频数据对应的声道之间是否具有相关性。
[0127] 需要说明的是,当采用不同的声道对同一声源进行表征时,则这些声道之间具有相关性,若不同的声道所表现的声源完全不同,则这些声道之间不具有相关性。
[0128] 本实施例中,若某几个声道之间具有相关性,则表示这些声道的音频数据在信号特征上相同或比较类似,该信号特征可以是音频数据的基音周期、频率、音高等特征。
[0129] 若已丢失的音频数据对应的声道与未丢失的音频数据对应的声道之间不具有相关性,则音频解码装置可以使用预置的恢复算法对已丢失的音频数据进行声道内的丢包隐藏,具体的过程与传统的恢复过程类似,例如使用前后音频帧中的音频数据对被丢失的音频帧中的音频数据进行恢复,此处不再赘述。
[0130] 若已丢失的音频数据对应的声道与未丢失的音频数据对应的声道之间具有相关性,则音频解码装置在对已丢失的音频数据进行恢复时可以参考未丢失的音频数据的信号特征,即使用未丢失的音频数据的信号特征对已丢失的音频数据进行恢复。
[0131] 具体的恢复过程可以为:
[0132] 假设声道3为已丢失的音频数据对应的声道,则音频解码装置可以从声道3中获取在当前音频帧之前,最近被成功接收到的音频数据的信号特征,并根据该信号特征进行时间加权运算得到声道内的时间补偿参数。
[0133] 例如,音频解码装置确定声道3的当前音频帧为音频帧3,音频解码装置在音频帧1接收到了声道3的音频数据,该音频数据的信号基音周期为100赫兹,每一个音频帧的长度为30毫秒,则可以计算声道内的时间补偿参数为“a*30/(30+30+30)*100”,其中a为时间加权系数,该时间加权系数a与信号基音周期、音频帧长度等参数相关。
[0134] 该时间补偿参数表示的是在声道内对已丢失的音频数据在信号基音周期上的补偿。
[0135] 需要说明的是,本实施例中仅以一个例子说明了按照预置的算法计算声道内的时间补偿参数的过程,可以理解的是,在实际应用中,还可以有更多的方式计算声道内的时间补偿参数,具体为本领域技术人员的公知常识,此处不作限定。
[0136] 当计算得到时间补偿参数之后,音频解码装置可以采用未丢失的音频数据的信号特征对时间补偿参数进行修正得到综合补偿参数,例如可以为:
[0137] 综合补偿参数=未丢失的音频数据的信号特征*空间加权系数b*时间补偿参数。
[0138] 该空间加权系数b与声道之间的相关性程度相关,需要说明的是,在实际应用中,音频解码装置还可以采用其他的方式使用未丢失的音频数据的信号特征对时间补偿参数进行修正,此处不作限定。
[0139] 本实施例中可以采用未丢失的音频数据的信号特征对时间补偿参数进行修正,可以理解的是,音频解码装置同样可以直接进行声道内以及声道间的加权运算得到综合补偿参数,例如,假设未丢失的音频数据的信号基音周期为150赫兹,则该综合补偿参数可以为:x*(a*30/(30+30+30)*100)+y*(b*150)。
[0140] 其中,x为时间补偿权重,y为空间补偿权重,假设x=0.3,y=0.7,a=0.5,b=0.1,则综合补偿参数为16.7+10.5=27.2。
[0141] 当音频解码装置计算得到综合补偿参数之后,可以根据该综合补偿参数对已丢失的音频数据进行恢复。
[0142] 例如综合补偿参数为27.2,声道3上最近接收到的音频数据的信号基音周期为100赫兹,声道2上未丢失的音频数据的信号基音周期为150赫兹,则音频解码装置可以确定声道3上丢失的音频数据的信号基音周期为27.2+((100+150)/2)=152.2赫兹,从而根据计算得到的信号特征对声道3上丢失的音频数据进行恢复。
[0143] 需要说明的是,本实施例中仅以一个例子说明了根据综合补偿参数对已丢失的音频数据进行恢复的过程,可以理解的是,在实际应用中,还可以有更多的方式根据综合补偿参数对已丢失的音频数据进行恢复,例如:
[0144] 音频解码装置可以根据声道对应的扬声器与听众位置之间的距离确定空间补偿系数,再使用该空间补偿系数对剩余音频数据进行调整,从而得到丢失音频帧中丢失的音频数据。
[0145] 本实施例中,音频编码装置打包得到的数据包中包含X*N段音频数据,由于在这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,所以在数据包传输过程中若丢失了一个数据包,则该数据包中至少会有两个音频帧的音频数据不会完全丢失,即使音频数据在不同音频帧间的变化比较大,音频解码装置也可以依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,由于同一音频帧中的音频数据具有较强的相关性,因此音频解码装置在进行音频数据恢复时可以取得较好的效果,从而提高了音频数据传输过程中的抗丢包性能。
[0146] 为便于理解,下面以一些实际应用中的例子对本发明音频编码装置打包过程以及音频解码装置解码结果进行说明:
[0147] 一、一包一帧2声道相邻音频帧打包:
[0148] 请参阅图12(a),本实施例应用于2声道系统,其中左声道的音频数据为Li,右声道的音频数据为Ri。
[0149] 本实施例中以4个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0150] 音频编码装置将第1音频帧的左声道音频数据L1与第2音频帧的右声道音频数据R2打包得到数据包1,并将第2音频帧的左声道音频数据L2与第1音频帧的右声道音频数据R1打包得到数据包2,以此类推,音频编码装置将L3与R4打包得到数据包3,R3与L4打包得到数据包4。
[0151] 本实施例中,每个数据包中包含2段音频数据,每个音频帧中也包含2段音频数据,即每个数据包中包含的音频数据的数目与每个音频帧中包含的音频数据的数目相同,这种打包方式简称为“一包一帧”。
[0152] 音频编码装置可以为各数据包分配唯一的标识,例如为数据包1分配00,为数据包2分配01,为数据包3分配10,为数据包4分配11。
[0153] 音频编码装置打包完成之后,可以向音频解码装置发送这些数据包,假设数据包3在发送过程中发生了丢失,则音频解码装置接收到的第一个数据包的标识为00,第二个数据包的标识为01,第三个数据包的标识为11,则音频解码装置确定数据包3发生了丢失。
[0154] 音频解码装置解码得到的音频数据如图12(b)所示,其中,L3和R4被丢失,音频解码装置可以确定L3属于第3个音频帧,则获取该第3个音频帧的剩余音频数据R3,并根据R3对L3进行恢复,同理,音频解码装置还可以根据L4对R4进行恢复。
[0155] 本实施例中,可以通过多种方式使用剩余音频数据恢复丢失音频帧中丢失的音频数据,下面仅以一个例子进行说明:
[0156] 音频解码装置获取左声道对应的扬声器SL以及右声道对应的扬声器SR,计算扬声器SL与听众位置之间的距离DL,以及扬声器SR与听众位置之间的距离DS,按照DL与DS之间的比值或差值确定空间补偿系数a,再根据该空间补偿系数a对剩余音频数据进行调整,从而得到丢失的音频数据。
[0157] 例如,当使用R3对L3进行恢复时,DL与DS之间的比值为0.9,说明左声道对应的扬声器距离听众位置更近,则可以确定空间补偿系数为0.9,并将R3的声强乘以90%,再与空间传输参数H进行运算得到L3。
[0158] 其中,空间传输参数H与实际应用中的传输环境相关,具体此处不作限定。
[0159] 为进一步提高恢复的精确性,音频解码装置还可以获取丢失音频帧的前一个音频帧和/或后一个音频帧对该丢失音频帧中丢失的音频数据进行恢复,例如音频解码装置还可以根据L2,R2以及L4对R3进行恢复。
[0160] 需要说明的是,音频解码装置可以根据L2,R2以及L4确定时间补偿系数,并结合前述的空间补偿系数一并计算得到综合补偿系数,并根据该综合补偿系数对L2,R2,L3以及L4进行调整得到R3,具体过程此处不作限定。
[0161] 本实施例中,音频编码装置打包得到的每个数据包中包含2段音频数据,这2段音频数据分别属于不同的音频帧,且分别属于不同的声道,在实际应用中,音频编码装置还可以采用其他的打包方式,只要使得这2段音频数据分别属于不同的音频帧即可。
[0162] 例如音频编码装置可以将L1与L2打包得到数据包1,R2与R1打包得到数据包2,L3与L4打包得到数据包3,R4与R3打包得到数据包4。
[0163] 本实施例中,当丢失任意一个数据包时,也不会造成某个音频帧的音频数据完全被丢失,所以能够有效提高音频数据传输过程中的抗丢包性能。
[0164] 二、一包一帧2声道不相邻音频帧打包:
[0165] 上述方案中,每个数据包中包含的2段音频数据属于相邻的两个音频帧,在实际应用中,也可以属于不相邻的两个音频帧,具体请参阅图13(a)。
[0166] 本实施例应用于2声道系统,其中左声道的音频数据为Li,右声道的音频数据为Ri。
[0167] 本实施例中以4个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0168] 音频编码装置将第1音频帧的左声道音频数据L1与第3音频帧的右声道音频数据R3打包得到数据包1,并将第2音频帧的左声道音频数据L2与第4音频帧的右声道音频数据R4打包得到数据包2,以此类推,音频编码装置将L3与R1打包得到数据包3,L4与R2打包得到数据包4。
[0169] 本实施例中,每个数据包中包含2段音频数据,每个音频帧中也包含2段音频数据,即每个数据包中包含的音频数据的数目与每个音频帧中包含的音频数据的数目相同,这种打包方式简称为“一包一帧”。
[0170] 音频编码装置可以为各数据包分配唯一的标识,例如为数据包1分配00,为数据包2分配01,为数据包3分配10,为数据包4分配11。
[0171] 音频编码装置打包完成之后,可以向音频解码装置发送这些数据包,假设数据包1以及2在发送过程中发生了丢失,则音频解码装置接收到的第一个数据包的标识为10,第二个数据包的标识为11,则音频解码装置确定数据包1,2发生了丢失。
[0172] 音频解码装置解码得到的音频数据如图13(b)所示,其中,L1,L2,R3和R4被丢失,音频解码装置可以确定L1属于第1个音频帧,则获取该第1个音频帧的剩余音频数据R1,并根据R1对L1进行恢复,同理,音频解码装置还可以根据R2对L2进行恢复,根据L3对R3进行恢复,根据L4对R4进行恢复。
[0173] 为进一步提高恢复的精确性,音频解码装置还可以获取丢失音频帧的前一个音频帧和/或后一个音频帧对该丢失音频帧中丢失的音频数据进行恢复,例如音频解码装置还可以根据R2以及L4对R3进行恢复。
[0174] 本实施例中具体进行数据恢复的方式与前述实施例中描述的进行数据恢复的方式类似,此处不再赘述。
[0175] 本实施例中,音频编码装置打包得到的每个数据包中包含2段音频数据,这2段音频数据分别属于不同的音频帧,且分别属于不同的声道,在实际应用中,音频编码装置还可以采用其他的打包方式,只要使得这2段音频数据分别属于不同的音频帧即可。
[0176] 例如音频编码装置可以将L1与L3打包得到数据包1,R3与R1打包得到数据包2,L2与L4打包得到数据包3,R4与R2打包得到数据包4。
[0177] 或者,音频编码装置可以将L1与L4打包得到数据包1,R3与R1打包得到数据包2,R4与L2打包得到数据包3,L3与R2打包得到数据包4。
[0178] 根据图13(b)可以看出,当连续丢失两个数据包时,音频解码装置解码后依然可以在每一个音频帧上至少得到一段音频数据,而如果按照图12(a)所示的打包方式,若同时丢失数据包1以及数据包2,则第1个音频帧以及第2个音频帧的音频数据会完全丢失,因此,本实施例中的打包方式可以取得更好的抗丢包性能。
[0179] 三、一包一帧3声道相邻音频帧打包:
[0180] 请参阅图14(a),本实施例应用于3声道系统,其中左声道的音频数据为Li,中声道的音频数据为Mi,右声道的音频数据为Ri。
[0181] 本实施例中以3个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0182] 音频编码装置将第1音频帧的左声道音频数据L1、第2个音频帧的中声道数据M2,与第3音频帧的右声道音频数据R3打包得到数据包1,以此类推,音频编码装置将L2,M3与R1打包得到数据包2,L3,M1与R2打包得到数据包3。
[0183] 本实施例中,每个数据包中包含3段音频数据,每个音频帧中也包含3段音频数据,即每个数据包中包含的音频数据的数目与每个音频帧中包含的音频数据的数目相同,这种打包方式简称为“一包一帧”。
[0184] 数据包标识的分配以及音频解码装置根据数据包的标识确定丢失的数据包的过程与前述实施例中描述的过程类似,此处不再赘述。
[0185] 本实施例中,假设数据包2丢失,则音频解码装置解码后的音频数据如图14(b)所示,其中,L2,M3以及R1丢失,由于每一个音频帧上都能获得剩余的音频数据,所以音频解码装置可以根据这些剩余音频数据,或者进一步结合前后帧的音频数据对丢失的音频数据进行恢复,具体恢复过程与前述实施例中描述的过程类似,此处不再赘述。
[0186] 本实施例中,当丢失任意一个数据包时,也不会造成某个音频帧的音频数据完全被丢失,所以能够有效提高音频数据传输过程中的抗丢包性能。
[0187] 四、一包一帧3声道不相邻音频帧打包:
[0188] 请参阅图15(a),本实施例应用于3声道系统,其中左声道的音频数据为Li,中声道的音频数据为Mi,右声道的音频数据为Ri。
[0189] 本实施例中以3个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0190] 音频编码装置将L1,M1以及R2打包得到数据包1,将L2,M2与R1打包得到数据包2。
[0191] 本实施例中,每个数据包中包含3段音频数据,每个音频帧中也包含3段音频数据,即每个数据包中包含的音频数据的数目与每个音频帧中包含的音频数据的数目相同,这种打包方式简称为“一包一帧”。
[0192] 数据包标识的分配以及音频解码装置根据数据包的标识确定丢失的数据包的过程与前述实施例中描述的过程类似,此处不再赘述。
[0193] 本实施例中,假设数据包2丢失,则音频解码装置解码后的音频数据如图15(b)所示,其中,L2,M2以及R1丢失,由于每一个音频帧上都能获得剩余的音频数据,所以音频解码装置可以根据这些剩余音频数据,或者进一步结合前后帧的音频数据对丢失的音频数据进行恢复,具体恢复过程与前述实施例中描述的过程类似,此处不再赘述。
[0194] 本实施例中,数据包1中包含3段音频数据,其中L1以及M1属于第1个音频帧,R2属于第2个音频帧,数据包2中包含3段音频数据,其中L2以及M2属于第2个音频帧,R1属于第1个音频帧,这种打包方式相对于现有技术中的打包方式而言改动最小,所以音频编码装置的处理复杂度较低,但同样能够保证在丢失任意一个数据包时,不会造成某个音频帧的音频数据完全被丢失,所以能够有效提高音频数据传输过程中的抗丢包性能。
[0195] 上述图14(a)以及图15(a)所示的打包方式在实际应用中可以根据具体情况选择使用,其中,图14(a)所示的打包方式对现有技术中的打包方式改动较大,所以音频编码装置的处理复杂度略高,但当丢失任意一个数据包时,音频解码装置在每个音频帧上有2个剩余音频数据可以用于恢复丢失的音频数据,即使连续丢失两个数据包,音频解码装置在每个音频帧上也有1个剩余音频数据可以用于恢复丢失的音频数据,所以抗丢包性能比较好;
[0196] 而图15(a)所示的打包方式虽然不能抵抗连续丢失两个数据包的情况,且当丢失任意一个数据包时,音频解码装置在每个音频帧上只有1个剩余音频数据可以用于恢复丢失的音频数据,使得音频解码装置的处理复杂度略高,但是,这种打包方式相对于现有技术中的打包方式而言改动最小,所以音频编码装置的处理复杂度较低。
[0197] 上述几个例子中,均以“一包一帧”的打包方式进行说明,在实际应用中,还可以采用“一包多帧”的打包方式,下面具体进行说明。
[0198] 五、一包多帧打包:
[0199] 请参阅图16(a),本实施例应用于2声道系统,其中左声道的音频数据为Li,右声道的音频数据为Ri。
[0200] 本实施例中以8个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0201] 音频编码装置将L1,R2,L3与R4打包得到数据包1,将L2,R1,L4与R3打包得到数据包2,将L5,R6,L7与R8打包得到数据包3,将L6,R5,L8与R7打包得到数据包4。
[0202] 本实施例中,每个数据包中包含4段音频数据,每个音频帧中包含2段音频数据,即每个数据包中包含的音频数据的数目是每个音频帧中包含的音频数据的数目的2倍,这种打包方式简称为“一包两帧”。
[0203] 数据包标识的分配以及音频解码装置根据数据包的标识确定丢失的数据包的过程与前述实施例中描述的过程类似,此处不再赘述。
[0204] 本实施例中,假设数据包2,3丢失,则音频解码装置解码后的音频数据如图16(b)所示,其中,R1,L2,R3,L4,L5,R6,L7以及R8丢失,由于每一个音频帧上都能获得剩余的音频数据,所以音频解码装置可以根据这些剩余音频数据,或者进一步结合前后帧的音频数据对丢失的音频数据进行恢复,具体恢复过程与前述实施例中描述的过程类似,此处不再赘述。
[0205] 本实施例中,每个数据包中包含的音频数据的数目是每个音频帧中包含的音频数据的数目的2倍,可以理解的是,本实施例中的处理方式可以相当于将图12(a)所示方式中将数据包1以及数据包3组成为一个新的数据包,将数据包2以及数据包4组成一个新的数据包。
[0206] 六、带前向纠错(FEC,Forward Error Correction)打包:
[0207] 请参阅图17(a),本实施例应用于2声道系统,其中左声道的音频数据为Li,右声道的音频数据为Ri。
[0208] 本实施例中以2个音频帧为例进行说明,可以理解的是,在实际应用中还可以为更多的音频帧,具体此处不作限定。
[0209] 音频编码装置将L1与R2打包得到数据包1,将L2与R1打包得到数据包2,将L1^L2以及R1^R2打包得到冗余包。
[0210] 其中,L1^L2为L1与L2的异或运算结果,R1^R2为R1与R2的异或运算结果,L1^L2可以用于恢复L1以及L2,R1^R2可以用于恢复R1以及R2。
[0211] 数据包标识的分配以及音频解码装置根据数据包的标识确定丢失的数据包的过程与前述实施例中描述的过程类似,此处不再赘述。
[0212] 本实施例中,假设数据包2以及冗余包丢失,则音频解码装置解码后的音频数据如图17(b)所示,其中,R1以及L2丢失,由于每一个音频帧上都能获得剩余的音频数据,所以音频解码装置可以根据这些剩余音频数据,或者进一步结合前后帧的音频数据对丢失的音频数据进行恢复,具体恢复过程与前述实施例中描述的过程类似,此处不再赘述。
[0213] 本实施例中,若数据包1,2丢失,则音频解码装置可以根据冗余包中的L1^L2对L1以及L2进行恢复,并根据冗余包中的R1^R2对R1以及R2进行恢复。
[0214] 上述以几个例子对本发明音频编码过程以及解码过程进行了描述,可以理解的是,在实际应用中,声道数目,音频帧数目,打包方式等均可以有所变化,具体此处不作限定。
[0215] 下面介绍本发明音频编码装置实施例,请参阅图18,本发明音频编码装置应用于音频编解码系统,该音频编解码系统包含N个声道,其中N为大于或等于2的整数,本发明音频编码装置一个实施例包括:
[0216] 获取单元1801,用于获取N个声道的音频数据;
[0217] 交织打包单元1802,用于对获取单元1801获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,该X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,该X为大于或等于1的整数,该X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧。
[0218] 本实施例中的音频编码装置还可以进一步包括:
[0219] 冗余处理单元1203,用于对至少两个数据包中的音频数据进行两两异或运算得到冗余包。
[0220] 本实施例中的交织打包单元1202在实际应用中可以采用多种方式对获取到的N个声道的音频数据进行声道交织打包得到数据包。
[0221] 下面按照打包方式的不同,结合具体应用场景对本实施例中的音频编码装置进行详细描述:
[0222] (1)、只有2段音频数据属于不同的音频帧:
[0223] 本实施例中,音频编码装置在进行音频编码之前,音频编码装置中的获取单元1201可以从采集设备,或者是其他的音频设备获取到N个声道的音频数据。
[0224] 该N个声道的音频数据的具体描述与前述图3所示实施例中步骤301描述的内容类似,此处不再赘述。
[0225] 本实施例中,声道的数目为N,交织打包单元1802可以将第h个音频帧中的第m个声道的音频数据与第i个音频帧中除第m个声道之外的其他的N-m个声道的音频数据组成一个数据包。
[0226] 交织打包单元1802得到的该数据包中包含N段音频数据,其中有一段音频数据为第h个音频帧中的第m个声道的音频数据,其余的为第i个音频帧中的音频数据,所以该数据包中有2段音频数据属于不同的音频帧。
[0227] 此外,交织打包单元1802可以将第i个音频帧中的第m个声道的音频数据与第h个音频帧中除第m个声道之外的其他的N-m个声道的音频数据组成一个数据包。
[0228] 交织打包单元1802得到的该数据包中包含N段音频数据,其中有一段音频数据为第i个音频帧中的第m个声道的音频数据,其余的为第h个音频帧中的音频数据,所以该数据包中有2段音频数据属于不同的音频帧。
[0229] 需要说明的是,交织打包单元1802所进行的上述两次打包过程并没有固定的先后顺序。
[0230] 此处仅以两个音频帧为例进行说明,可以理解的是,在实际应用中,也可以是更多的音频帧,交织打包单元1802打包的过程类似,此处不再赘述。
[0231] (2)、任意2段音频数据均属于不同的音频帧:
[0232] 本实施例中,音频编码装置在进行音频编码之前,音频编码装置中的获取单元1801可以从采集设备,或者是其他的音频设备获取到N个声道的音频数据。
[0233] 该N个声道的音频数据的具体描述与前述图3所示实施例中步骤301描述的内容类似,此处不再赘述。
[0234] 本实施例中,声道的数目为N,交织打包单元1802可以将时间上相邻的N个音频帧中的音频数据进行声道交织打包,使得打包得到的每个数据包中包含N段音频数据,且在这N段音频数据中,任意两段音频数据均属于不同的音频帧。
[0235] 在实际应用中,交织打包单元1802可以采用交替打包的方式,例如先确定声道的数目N,再对于每一个音频帧,将该音频帧中的N段音频数据分别放置在N个数据包中,则N个音频帧中的音频数据正好可以放置在N个数据包中,这样即可实现每个数据包的N段音频数据中,任意两段音频数据均属于不同的音频帧。
[0236] 本实施例中,交织打包单元1802针对2声道系统以及3声道系统的处理方式可以与前述图5所示实施例中步骤502描述的内容类似,此处不再赘述。
[0237] 在实际应用中,除了2声道系统以及3声道系统之外,还可以有更多声道的系统,交织打包单元1802的具体处理方式类似,此处不再赘述。
[0238] 当交织打包单元1802进行打包得到数据包之后,冗余处理单元1803还可以对至少两个数据包中的音频数据进行两两异或运算得到冗余包。
[0239] 本发明实施例中,交织打包单元1802打包得到的数据包中包含X*N段音频数据,由于在这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,所以在数据包传输过程中若丢失了一个数据包,则该数据包中至少会有两个音频帧的音频数据不会完全丢失,即使音频数据在不同音频帧间的变化比较大,音频解码装置也可以依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,由于同一音频帧中的音频数据具有较强的相关性,因此音频解码装置在进行音频数据恢复时可以取得较好的效果,从而提高了音频数据传输过程中的抗丢包性能;
[0240] 此外,冗余处理单元1803还可以对至少两个数据包中的音频数据进行两两异或运算得到冗余包,从而更有利于音频解码装置进行音频数据恢复,从而进一步提高了音频数据传输过程中的抗丢包性能。
[0241] 下面介绍本发明音频解码装置实施例,请参阅图19,本发明音频解码装置应用于音频编解码系统,该音频编解码系统包含N个声道,其中N为大于或等于2的整数,本发明音频解码装置一个实施例包括:
[0242] 接收单元1901,用于接收来自音频编码装置的数据包;
[0243] 查询单元1902,用于当发生数据包丢包时,查询丢失的数据包对应的丢失音频帧,该丢失音频帧为丢失了部分音频数据的音频帧;
[0244] 判断单元1903,用于判断接收单元1901已接收到的数据包中是否包含查询单元1902查询到的丢失音频帧的剩余音频数据,若包含,则触发恢复单元1904执行相应操作,若不包含,则触发处理单元1905执行相应操作;
[0245] 恢复单元1904,用于根据判断单元1903的触发,使用该丢失音频帧的剩余音频数据对该丢失音频帧进行音频数据恢复;
[0246] 处理单元1905,用于根据判断单元1903的触发,触发该接收单元1901继续接收数据包,当获取到该丢失音频帧的剩余音频数据时,触发恢复单元1904执行相应操作。
[0247] 本实施例中的恢复单元1904可以进一步包括:
[0248] 确定模块19041,用于确定该丢失音频帧中丢失的音频数据对应的声道,以及该丢失音频帧的剩余音频数据对应的声道;
[0249] 执行模块19042,用于按照声道之间的相关性,对该丢失音频帧中丢失的音频数据进行恢复。
[0250] 本实施例中的音频解码装置还可以进一步包括:
[0251] 相邻帧获取单元1906,用于获取与该丢失音频帧在时间上相邻的前一个音频帧和/或后一个音频帧;
[0252] 则本实施例中的恢复单元1904具体可以用于使用该前一个音频帧和/或后一个音频帧、以及丢失音频帧的剩余音频数据对该丢失音频帧进行音频数据恢复。
[0253] 为便于理解,下面以一个具体应用场景对本实施例中的音频解码装置进行详细描述:
[0254] 当音频编码装置完成了编码之后,数据包会被发送至音频解码装置,则接收单元1901可以接收到来自音频编码装置的数据包。
[0255] 由于数据包往往是通过UDP方式发送的,由于UDP提供的是面向事务的简单不可靠信息传送服务,所以在传输过程中的数据包丢包现象在所难免。
[0256] 每个数据包都有其对应的唯一标识,音频解码装置可以根据接收到的数据包的标识以确定是否发生了丢包,音频解码装置确定是否发生丢包的过程与前述图4所示实施例中描述的过程类似,此处不再赘述。
[0257] 音频解码装置在确定了丢失音频帧之后,判断单元1903可以判断已接收到的数据包中是否包含丢失音频帧的剩余音频数据。
[0258] 若判断单元1903确定已经接收到的数据包中不包含丢失音频帧的剩余音频数据,则可以触发接收单元1901继续接收数据包。
[0259] 若判断单元1903确定已经接收到的数据包中包含丢失音频帧的剩余音频数据,或者是判断单元1903确定在接收单元1901继续接收数据包的过程中获取到的丢失音频帧的剩余音频数据,则恢复单元1904中的确定模块19041可以确定该丢失音频帧中丢失的音频数据对应的声道,以及该丢失音频帧的剩余音频数据对应的声道,之后执行模块19042可以按照声道之间的相关性,对该丢失音频帧中丢失的音频数据进行恢复。
[0260] 本实施例中,执行模块19042具体对音频数据进行恢复的过程可以与前述图11所示实施例中步骤1105所描述的过程类似,具体此处不再赘述。
[0261] 需要说明的是,为进一步提高对音频数据进行恢复的精确性,相邻帧获取单元1906还可以获取与该丢失音频帧在时间上相邻的前一个音频帧和/或后一个音频帧,则恢复单元1904可以使用前一个音频帧和/或后一个音频帧、以及丢失音频帧的剩余音频数据对该丢失音频帧进行音频数据恢复。
[0262] 本实施例中,音频编码装置打包得到的数据包中包含X*N段音频数据,由于在这X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧,所以在数据包传输过程中若丢失了一个数据包,则该数据包中至少会有两个音频帧的音频数据不会完全丢失,即使音频数据在不同音频帧间的变化比较大,恢复单元1904也可以依据被丢失的音频帧中剩余的音频数据进行音频数据恢复,由于同一音频帧中的音频数据具有较强的相关性,因此恢复单元1904在进行音频数据恢复时可以取得较好的效果,从而提高了音频数据传输过程中的抗丢包性能。
[0263] 下面介绍本发明音频解码装置实施例,请参阅图20,本发明编解码系统包含N个声道,其中N为大于或等于2的整数,本发明编解码系统一个实施例包括:
[0264] 音频编码装置2001,用于获取N个声道的音频数据;对获取到的N个声道的音频数据进行声道交织打包得到数据包,每个数据包中包含X*N段音频数据,该X为一个数据包中包含的音频数据的数目与一个音频帧中包含的音频数据的数目的比值,该X为大于或等于1的整数;该X*N段音频数据中,至少有X+1段音频数据属于不同的音频帧;发送该数据包;
[0265] 音频解码装置2002,用于接收数据包;当发生数据包丢包时,查询丢失的数据包对应的丢失音频帧,该丢失音频帧为丢失了部分音频数据的音频帧;判断已接收到的数据包中是否包含该丢失音频帧的剩余音频数据;若包含,则使用该丢失音频帧的剩余音频数据对该丢失音频帧进行音频数据恢复;若不包含,则继续接收数据包,当获取到该丢失音频帧的剩余音频数据时,使用该丢失音频帧的剩余音频数据对该丢失音频帧进行音频数据恢复。
[0266] 需要说明的是,本实施例中的音频编码装置2001可以与前述图18所示实施例中描述的音频编码装置类似,本实施例中的音频解码装置2002可以与前述图19所示实施例中描述的音频解码装置类似,具体此处不再赘述。
[0267] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0268] 以上对本发明所提供的一种音频编码方法及装置、音频解码方法及装置、编解码系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,因此,本说明书内容不应理解为对本发明的限制。