具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种音频编码方法、音频解码方法、相关装置及通信系统,使用本发明实施例提供的技术方案,能够具有可调的抗丢包性能,能够获得更好的输出码流质量。
本发明实施例中阐述的音频编码器和音频解码器可以是都位于终端设备中,且每个终端设备中都包含有音频编码器和音频解码器,也可以是位于需要交换机进行交互的两个不同的设备中。
本发明实施例仅以音频信号为例进行阐述,但本发明实施例的方法并不限于对音频信号进行编码和解码,还可以是视频信号等。
本发明实施例阐述了音频编码方法和音频解码方法,例如,在一个音频网络传输系统中,在编码端,实现了单描述、二描述、三描述和四描述技术,音频编码器通过传输网络将编码码流传递给音频解码器,接收端的音频解码器具有自适应解码各种多描述码流的能力,并通过实时控制协议反馈丢包率给音频编码器,音频编码器根据该丢包率信息选择多描述状态,并将音频编码器动态切换到新的多描述状态。
首先阐述一种音频编码方法。
实施例一
本实施例阐述一种音频编码方法,参见图1,该方法可以包括以下步骤:
步骤101:接收音频解码器根据获取的码流反馈的丢包率;
音频编码器首先向音频解码器发送编码码流,此时,可以采用任意一种多描述状态进行编码,但通常采用单描述,因为采用单描述没有冗余信息。音频编码器向音频解码器发送编码码流后,音频解码器根据接收到的实时传输协议序列号进行丢包率统计,然后通过实时控制协议将丢包率反馈给音频编码器。
音频解码器向编码器反馈的丢包率可以是使用与音频编码器向音频解码器发送的编码码流相同的信道进行传输。
步骤102:根据反馈的丢包率,将编码能力切换到与丢包率对应的多描述状态;
编码器可以通过查找预置的丢包率和多描述状态对应关系表将状态切换到与丢包率对应的多描述状态。丢包率和多描述状态对应关系表可以是在编码器端预先设置好的,例如可以是当反馈的丢包率为0%时,编码器状态切换为单描述;当反馈的丢包率的范围为0%~10%,编码器状态切换为二描述;当反馈的丢包率的范围为10%~20%时,编码器状态切换为三描述;当反馈的丢包率达到20%以上时,编码器状态切换为四描述。
例如,当前描述为单描述,当反馈的丢包率为15%时,则应切换到三描述。
步骤103:采用上述多描述状态对音频数据进行编码。
当可以占用的网络带宽固定时,在步骤103之前还可以调整数据和冗余数据的比例,也可以是使用增加的带宽编码冗余数据。
步骤103之后还可以包括一个步骤:向音频解码器发送编码后的多描述包,为了辅助解码器自适应解码动态切换,多描述包可以包含多描述数目信息和包描述号信息。
也可以是在多描述包前的实时传输协议包头中增加递增的序列号信息,保证同一信源编码帧对应的多个编码包按照包描述号顺序打实时传输协议包头。
本实施例通过切换到与音频解码器反馈的丢包率对应的多描述状态,采用多描述状态进行编码,能够根据实际情况调整编码码流的抗丢包能力,从而减少了无效的冗余信息占用的带宽。
实施例二和实施例三阐述的音频编码方法适用于不同的应用场景,当可以占用的网络带宽固定,无法提供更多带宽或占用更多带宽时,采用实施例二阐述的方法,当网络可用带宽具有一定弹性,其它业务可以提供部分带宽给音频业务使用时,采用实施例三阐述的方法,使得音频码流的解码质量能够得到更好的保证。
实施例二
本实施例阐述一种将冗余度和丢包率之间建立动态联系,通过丢包率的变化影响编码器的冗余度的增减、同时调整码流的抗丢包性能的方法。
多描述音频编码器具有单描述、二描述、三描述和四描述编码能力,其中单描述不具有抗丢包能力,二描述具有抗丢包0~10%的能力,三描述具有抗丢包10~20%的能力,四描述具有抗丢包20%以上的能力,在传输等量信息的情况下,多描述音频编码器码流所占带宽固定,单描述、二描述、三描述和四描述的抗丢包能力依次递增,冗余度依次递增,用于编码有效音频数据的码率递减,冗余数据与有效音频数据共享固定带宽。
参见图2,本实施例的方法可以包括以下步骤:
步骤201至步骤202与步骤101至步骤102相同,此处不再赘述。
步骤203:根据丢包率调整数据和冗余数据占用带宽的比例;
在码流固定带宽的范围内,通过调整音频数据和音频冗余数据比例的方式,调整抗丢包能力。
步骤204:采用多描述状态对调整后的数据进行编码。
由于步骤203中调整了数据和冗余数据占用带宽的比例,得到了新的冗余度,在冗余度和丢包率之间建立动态联系,同时调整了抗丢包性能。
步骤204之后还可以包括一个步骤:向音频解码器发送编码后的多描述包。
本实施例通过丢包率的变化来影响编码器的冗余度增减,使得能够根据实际网络情况调整抗丢包性能,进而能够使得音频码流的解码质量得到更好的保证。
实施例二阐述了一种占用带宽固定的音频编码方法,下面的实施例阐述一种网络可用带宽具有一定弹性的音频编码方法。
实施例三
本实施例阐述了一种网络可用带宽具有一定弹性,其它业务可以提供部分带宽给音频业务使用时的音频编码方法。
多描述编码器支持的单描述、二描述、三描述和四描述统一使用固定码率编码有效音频数据,额外增加带宽编码数据冗余,随着编码码流数量即描述数目的增加,冗余度增加。这样的音频码流,无论采用几描述,当获得全部码流时,都具有相同的音频质量。而单描述,二描述,三描述,四描述所需的网络带宽则依次递增。
参见图3,本实施例的方法包括以下步骤:
步骤301至步骤302与步骤101至步骤102相同,此处不再赘述。
步骤303:使用增加的带宽编码冗余数据;
无论步骤302中采用哪种多描述状态,对有效数据统一使用固定码率编码,而根据不同的多描述状态,对冗余数据编码需要的带宽需要额外增加,且单描述至四描述所需的网络带宽依次递增。
步骤304:采用多描述状态对上述数据进行编码。
例如,采用四描述,则包含四个编码码流。
步骤304之后还可以包括一个步骤:向音频解码器发送编码后的多描述包。
本实施例根据反馈的丢包率切换到对应的多描述状态,使用增加的带宽编码冗余数据,从而能够更好的保证码流的解码质量。
实施例一至实施例三阐述了编码方法,与编码方法对应,在解码端需要有对应的解码方法,才能得到更好的输出码流质量,下面阐述一种解码方法。
为实现自适应解码不同数量的多描述编码数据包,音频解码器需要配置4个缓冲区来存放相应的编码数据包,例如,码流最多的四描述,不丢包情况下,4个编码数据包解码出一个数据帧。四个缓冲区中,其中,一个是记录解码器调用次数的多描述包计数器,一个是记录已丢失多描述编码数据包计数器,即丢包计数器,一个是记录当前是几描述的状态变量,一个是解码器状态反馈变量。
音频解码器状态反馈变量共有3种状态:
1、需要读包状态,即解码器的中间状态,当解码当前帧尚未结束的情况下,解码器反馈该状态,等待读入下一包,例如,当前解码4描述码流,已经读入1个,2个或者3个包,解码器都反馈该状态。
2、解码完成状态,即解码器的完成状态,当已解码完该帧,则解码器返回该状态。同时,解码器将输出解码码流。
3、调用丢包隐藏(Packet Lost Concealment,PLC)状态,也是一种解码器的完成状态,PLC是丢包补偿的一种技术,当连续丢包时,可能出现对应同一解码帧的N个包全部丢失的情况,音频解码器无法解码出相应码流,则通过调用PLC进行音频解码器端丢包补偿,增强码流的音质效果。
实施例四
本实施例阐述一种音频解码方法,参见图4,本实施例的方法包括以下步骤:
步骤401:获取音频编码器发送的多描述包,将多描述包计数器的数值增1,所述多描述包包含多描述数目和包描述号;
当音频解码器解码时,按照实时传输协议包头的序列号,无遗漏调用自适应解码器,当实时传输协议包头序号不连续时,对应缺失的包号,也要调用解码器。
步骤402:获得丢包计数器的数值;
在步骤402之前还包括:判断步骤401获取的多描述包是否包含数据,在判断多描述包不包含数据时,将丢包计数器的数值增1。
步骤403:在确定所述多描述包计数器的数值或所述包描述号不小于所述多描述数目时,判断所述丢包计数器的数值是否不小于所述多描述数目;
在步骤403之前还包括一个步骤:判断所述多描述包计数器的数值或所述包描述号是否小于所述多描述数目。
在判断所述多描述包计数器的数值或所述包描述号小于所述多描述数目时,执行步骤401。
步骤404:如果所述丢包计数器的数值不小于所述多描述数目,调用丢包隐藏;如果所述丢包计数器的数值小于所述多描述数目,进行解码。
步骤404之后还包括一个步骤:输出调用丢包隐藏进行丢包补偿后或经过解码后的码流。
输出码流后,还可以将多描述包计数器的数值和丢包计数器的数值置零。此时,解码器的各种状态也为0。
本实施例由于在判断丢包计数器的数值不小于多描述数目时,调用丢包隐藏,输出经过丢包补偿后的码流,在判断丢包计数器的数值小于多描述数目时,进行解码,输出解码码流,使得即使在丢失包较多时也能输出近似信源的信息,从而能够获得更好的输出码流质量。
实施例五
本实施例阐述一种音频解码方法,参见图5,本实施例的方法可以包括以下步骤:
步骤501:调用解码器,多描述包计数器的数值增1;
每调用一次解码器,多描述包计数器的数值就增1。
步骤502:判断是否有数据包进入解码器,若有数据包,执行步骤503,若没有数据包,则执行步骤504;
步骤503:解析多描述数目和包描述号;
若有数据包进入解码器,解码器解析当前音频数据帧为几描述,当前包为第几个描述包,存储该编码数据包到对应缓冲区。
步骤504:丢包计数器的数值增1;
若没有数据包,则为空调用,表示该包丢失,将丢包计数器的数值增1。
步骤505:判断多描述包计数器的数值或包描述号是否不小于多描述数目,如果不小于,执行步骤506,如果小于,执行步骤507;
例如,当前音频解码器为三描述,三描述的第三号编码包进入音频解码器,此时需要执行步骤506。
步骤506:判断丢包计数器的数值是否不小于多描述数目,如果不小于,执行步骤508,如果小于,执行步骤509;
步骤507:解码器输出需要读包状态,并返回执行步骤501;
步骤508:解码器输出调用PLC状态;
步骤509:进行解码;
步骤510:输出码流,解码完成。
解码完成后,重置多描述包计数器的数值和丢包计数器的数值。
解码器可以统计实时传输协议包头的包序号丢失情况来得到丢包率,并定时将该信息通过实时传输协议反馈给编码器,帮助编码器刷新多描述状态。
下面举一个解码的实例说明解码过程,参见图6,图6为多描述解示意例图,601为二描述包,602为二描述丢包,603为四描述包,604为四描述丢包,图中的1、2、3、4、5、6、7为实时传输协议序列号,即包描述号。序列号5和6对应的多描述包与序列号3对应的相同,为四描述包,序列号7对应的多描述包与序列号1对应的相同,为二描述包。
当接收到实时传输协议序列号为1的包时,解析该包获知当前解码帧为二描述第一个包,多描述包计数器增1后多描述包计数器的数值此时为1,接收到3号包,确认2号包丢失,丢包计数器的数值增为1,空调一次解码器,多描述包计数器增1,此时多描述包计数器的数值为2,满足解码条件,即包计数器>=多描述数目,进一步判断丢包计数器的数值是否不小于多描述数目,此时是1<2,解码该音频帧,输出音频数据帧。
3号包获取后,解析为四描述第一个包,更新解码器多描述信息,计数器增1,由于输出音频帧后,多描述包计数器的数值置零,此时多描述包计数器的数值为1,而后获得的包为5号包,确认4号包丢失,对4号包的处理是调用一次解码器,并告知解码器该包丢失,丢包计数器自增1,解码器多描述包计数器的数值此时为2,然后对5号包处理,多描述包计数器的数值此时为3,对6号包处理,计数器为4,满足条件,即包计数器>=多描述数目,进一步判断丢包计数器的数值是否不小于多描述数目,此时是1<4,解码并输出数据帧。
本实施例由于在多描述包计数器的数值或包描述号不小于多描述数目时,进一步判断丢包计数器的数值是否小于多描述数目,当丢包计数器的数值小于多描述数目时,解码并输出解码码流,当丢包计数器的数值不小于多描述数目时,调用丢包隐藏输出码流,使得解码器能够根据编码的多描述状态进行解码,并在丢包较多时调用丢包隐藏输出码流,使得即使在丢失包较多时也能输出近似信源的信息,从而能够获得更好的输出码流质量。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上提供了音频编码方法和音频解码方法,本发明实施例还提供一种音频编码器、音频解码器和一种通信系统。
首先阐述一种音频编码器,参见图7,该音频编码器包括以下单元:
接收单元701,用于接收解码器根据获取的码流反馈的丢包率;
切换单元702,用于根据所述接收单元701得到的反馈的丢包率,将编码能力切换到与接收单元701接收到的所述丢包率对应的多描述状态;
编码单元703,用于采用切换单元702切换的所述多描述状态对音频数据进行编码。
其中,上述音频编码器还包括:
查找单元,用于查找预置的丢包率和多描述状态对应关系表;
切换单元702用于根据所述查找单元对预置的丢包率和多描述状态对应关系表的查找结果将状态切换到与所述丢包率对应的多描述状态。
其中,上述音频编码器还包括:
调整单元,用于调整音频数据和音频冗余数据占用带宽的比例;
编码单元703用于采用所述切换单元切换的所述多描述状态对所述调整单元调整音频数据和音频冗余数据占用带宽的比例后的数据进行编码。
其中,上述音频编码器还包括:
冗余数据编码单元,用于使用增加的带宽编码冗余数据;
编码单元703用于采用所述切换单元切换的所述多描述状态对所述冗余数据编码单元利用增加的带宽对冗余数据进行编码后的数据进行编码。
其中,上述音频编码器还包括:
发送单元,用于向音频解码器发送所述编码单元编码后的多描述包。
其中,上述音频编码器还包括:
增加单元,用于在所述多描述包前的实时传输协议包头中增加递增的序列号信息;
上述发送单元用于向音频解码器发送包含所述增加单元增加的所述递增的序列号信息的多描述包。
上述音频编码器可以用于实现本发明实施例提及的音频编码方法,但不限于实现该方法。
下面阐述一种音频解码器,参见图8,该音频解码器可以包括以下单元:
多描述包获取单元801,用于获取编码器发送的多描述包,所述多描述包包含多描述数目和包描述号;
多描述包计数器单元802,用于在多描述包获取单元801获取多描述包时,将多描述包计数器的数值增1;
丢包计数器单元802,用于获得丢包计数器的数值;
第一判断单元803,用于判断多描述包计数器单元802得到的多描述包计数器的数值或多描述包获取单元801得到的包描述号是否不小于多描述包获取单元801得到的所述多描述数目;
第二判断单元804,用于在第一判断单元803判断多描述包计数器的数值或包描述号不小于多描述数目时,判断丢包计数器单元802得到的丢包计数器的数值是否不小于所述多描述数目;
调用单元805,用于在第二判断单元804判断所述丢包计数器的数值不小于所述多描述数目时,调用丢包隐藏;
解码单元806,用于在第二判断单元804判断所述丢包计数器的数值小于所述多描述数目时,进行解码。
其中,上述音频解码器还包括:
第三判断单元,用于判断所述多描述包获取单元获取的所述多描述包是否包含数据;
丢包计数器单元802用于在所述第三判断单元判断所述多描述包不包含数据时,将丢包计数器的数值增1。
其中,上述音频解码器还包括:
输出单元,用于输出调用单元805调用丢包隐藏进行丢包补偿后或经过解码单元806解码后的码流。
其中,上述音频解码器还包括:
置零单元,用于在所述输出单元输出码流后,将所述多描述包计数器的数值和所述丢包计数器的数值置零。
上述音频解码器可以用于实现本发明实施例提及的音频解码方法,但不限于实现该方法。
下面阐述一种通信系统,参见图9,该通信系统包括以下装置:
音频编码器901,用于接收音频解码器根据获取的码流反馈的丢包率;切换到与所述丢包率对应的多描述状态;采用所述多描述状态进行编码;向解码器发送编码后的多描述包;
音频解码器902,用于获取音频编码器901发送的多描述包,将多描述包计数器的数值增1,所述多描述包包含多描述数目和包描述号;获得丢包计数器的数值;在判断所述多描述包计数器的数值或所述包描述号不小于所述多描述数目时,判断所述丢包计数器的数值是否不小于所述多描述数目;如果所述丢包计数器的数值不小于所述多描述数目,调用丢包隐藏;如果所述丢包计数器的数值小于所述多描述数目,进行解码;输出调用丢包隐藏进行丢包补偿后或经过解码后的码流。
其中,音频编码器901还用于调整数据和冗余数据的比例。
其中,音频编码器901还用于使用增加的带宽编码冗余数据。
其中,音频解码器902还用于将所述多描述包计数器的数值和所述丢包计数器的数值置零。
本发明实施例由于切换到与解码器反馈的丢包率对应的多描述状态,采用多描述状态进行编码,能够根据实际情况调整编码码流的抗丢包能力,从而减少了无效的冗余信息占用的带宽,由于在判断丢包计数器的数值不小于多描述数目时,调用丢包隐藏,输出经过丢包补偿后的码流,在判断丢包计数器的数值小于多描述数目时,进行解码,输出解码码流,使得即使在丢失包较多时也能输出近似信源的信息,从而能够获得更好的输出码流质量。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种音频编码方法、音频解码方法、相关装置及通信系统进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。