具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
在本发明实施例中,多媒体数据接收端根据收包情况,实时统计网络丢包和抖动情况,同时把统计结果反馈给多媒体数据发送端,然后多媒体数据发送端再根据反馈情况自适应调节编码速率。
图1是根据本发明的多媒体数据编码速率调节方法的流程图。
如图1所示,该方法包括:
步骤101:多媒体数据发送端根据多媒体数据接收端反馈的网络状况判断当前编码速率是否需要改变,如果需要改变则执行步骤103,如果不需要则执行步骤102。
步骤102:多媒体数据发送端保持当前的编码速率不变,并退出本流程。
步骤103:多媒体数据发送端变更编码速率。
其中,多媒体数据发送端开始可以按照高速率进行编码,当接收到多媒体数据接收端端对收包情况的反馈后,再根据反馈的网络状况判断目前是需要按照高速率编码还是按照低速率编码。
如果当前是高速率编码,同时网络反馈收包情况差,可以根据编码速率切换的历史成功率来判断是否需要降低编码速率,如果需要则降低编码速率,如果不需要则维持高编码速率不变。
如果当前是高速率编码,同时网络反馈收包情况很好,则维持高速率编码不变。
如果当前是低速率编码,并且保持低速率编码保持时间足够,再根据反馈的收包情况判断网络状况是否足够好,如果足够好切换到高速率编码;如果网络状况不满足足够好的条件,则判断网络状况与高速率编码时相比是否有改善,没有改善则切换到高速率编码,如果有改善则保持低速率编码。其中,如果切换到低速率编码网络状况变的足够好或者有改善,那么增加一次切换速率有效的次数。
具体地,可以预先设定编码速率对照值,利用编码速率对照值来判断当前的编码速率是高还是低。如果当前编码速率大于或者等于编码速率对照值,则认为当前编码速率为高,如果当前编码速率小于编码速率对照值,则认为当前编码速率为低。
当多媒体数据当前的编码速率大于或者等于编码速率对照值且反馈来的网络状况不满足预先设定时,判断降低编码速率的历史成功率是否满足预定条件,如果满足,则降低当前编码速率,如果不满足,则维持当前编码速率不变。其中,当多媒体数据接收端反馈的丢包均值小于预先设定的丢包阈值且多媒体数据接收端反馈的抖动均值小于预先设定的抖动阈值不同时成立时,可以认为反馈的网络状况不满足预先设定。
当编码速率切换次数大于预先设定的编码速率切换次数阈值,且降低编码速率的历史成功率大于预先设定的编码速率切换成功率阈值时,可以认为降低编码速率的历史成功率满足预定条件。
同样,当多媒体数据当前的编码速率大于或者等于编码速率对照值且反馈来的网络状况满足预先设定时,可以维持所述编码速率不变。其中当多媒体数据接收端反馈的丢包均值小于预先设定的丢包阈值且多媒体数据接收端反馈的抖动均值小于预先设定的抖动阈值时,可以认为反馈的网络状况满足预先设定。
对于低编码速率的情况,类似地,预先设定编码速率对照值,当所述多媒体数据当前的编码速率小于所述编码速率对照值时,判断所述当前编码速率保持时间是否大于预先设定的低速率保持时间阈值,如果不大于则维持所述当前编码速率不变;如果大于预先设定的低速率保持时间阈值,进一步判断反馈来的网络状况是否满足预先设定,如果满足则提高当前编码速率;如果不满足,进一步判断当前的网络状况是否有改善,如果有改善则维持所述当前编码速率不变,如果没有改善则提高当前编码速率。
对于低编码速率的情况,当多媒体数据接收端反馈的丢包均值小于预先设定的丢包阈值,且多媒体数据接收端反馈的抖动均值小于预先设定的抖动阈值时,可以认为反馈的网络状况满足预先设定。
对于低编码速率的情况,当Lost_recv+Lost_diff_recv<Lost_high-Lost_diff_high,且Jitter_recv+Jitter_diff_recv<Jitter_high-Jitter_diff_high时,判定当前的网络状况有改善,其中:
Lost_recv是多媒体数据接收端反馈的丢包均值;
Lost_diff_recv是多媒体数据接收端反馈的丢包方差;
Lost_high是降低编码速率之前多媒体数据接收端反馈的丢包均值;
Lost_diff_high是降低编码速率之前多媒体数据接收端反馈的丢包方差;
Jitter_recv是多媒体数据接收端反馈的抖动均值;
Jitter_diff_recv是多媒体数据接收端反馈的抖动方差;
Jitter_high是降低编码速率之前多媒体数据接收端反馈的抖动均值;
Jitter_diff_high是降低编码速率之前多媒体数据接收端反馈的抖动方值。
优选地,上述的多媒体数据具体可以是语音数据或者视频数据。
下面再分别对高编码速率和低编码速率的情形下,本发明实施例的流程进行更加详细的说明。
图2是根据本发明第一实施例的多媒体数据编码速率调节方法的流程图。在该实施例中,当前编码速率大于或者等于编码速率对照值,认为多媒体数据发送端处于高编码速率状况。
如图2所示,该方法包括:
步骤201:判断Lost_recv<Lost_alg且Jitter_recv<Jitter_alg是否成立,如果成立则执行步骤204并结束本流程;
其中,Lost_recv是多媒体数据接收端反馈的丢包均值;Lost_alg为现有技术中算法可以处理的网络丢包,Jitter_recv是多媒体数据接收端反馈的抖动均值,Jitter_alg为现有技术中算法可以处理的网络抖动。如果网络丢包超过Lost_alg,或者网络抖动超过Jitter_alg接受端的语音和视频质量就会下降。
步骤202:判断降低速率历史成功率是否满足条件,如果满足则执行步骤203并结束本流程,如果不满足则执行步骤204并结束本流程;
在这里,根据切换到低速率有效的次数和切换的总次数来计算切换速率成功率。当切换总次数达到一定的阈值,并且成功率小于一定阈值则以后不再降低编码速率。其中,降低速率历史成功率判断的条件为:
N_switch>N_thd,并且成功率大于P_thd,其中N_switch为速率切换次数;N_thd是速率切换次数阈值。
只有满足该条件才进行降低编码速率。
步骤203:多媒体数据发送端降低编码速率;
步骤204:多媒体数据发送端维持编码速率不变。
图2所示流程详细描述了处于高编码速率状况下的本发明实施例具体应用,下面描述处于低编码速率状况下的本发明实施例具体应用。
图3是根据本发明第二实施例的多媒体数据编码速率调节方法的流程图。在该实施例中,当前编码速率小于编码速率对照值,认为多媒体数据发送端处于低编码速率状况。
步骤301:判断多媒体数据发送端的低编码速率保持时间是否大于T_low,如果大于则执行步骤302及其后续步骤,如果不大于则执行步骤305。
在这里,T_low为预定的低速率编码保持时间。
步骤302:判断Lost_recv<Lost_alg且Jitter_recv<Jitter_alg是否成立,如果成立则执行步骤304并结束本流程,如果不成立则执行步骤303。
其中,Lost_recv是多媒体数据接收端反馈的丢包均值;Lost_alg为现有技术中算法可以处理的网络丢包,Jitter_recv是多媒体数据接收端反馈的抖动均值,Jitter_alg为现有技术中算法可以处理的网络抖动。如果网络丢包超过Lost_alg,或者网络抖动超过Jitter_alg接受端的语音和视频质量就会下降。
步骤303:判断网络状态是否有改善,如果有则执行步骤303,如果没有则执行步骤304。
步骤304:多媒体数据发送端提高编码速率,并结束本流程。
步骤305:多媒体数据发送端维持当前的低编码速率。
根据上述详细分析,本发明实施例还提出了一种多媒体数据编码速率调节系统。
图4是根据本发明的多媒体数据编码速率调节系统的结构示意图。
如图4所示,该系统包括多媒体数据发送端401和多媒体数据接收端402,其中:
多媒体数据接收端402,用于向多媒体数据发送端401反馈网络状况;
多媒体数据发送端401,用于根据反馈来的网络状况判断多媒体数据当前的编码速率是否需要发生改变,如果需要则变更所述编码速率;如果不需要则保持所述编码速率不变。
当多媒体数据发送端401处于高编码速率时:多媒体数据发送端401,用于当多媒体数据当前的编码速率大于或者等于预先设定的编码速率对照值且多媒体数据接收端402反馈来的网络状况不满足预先设定时,判断降低编码速率的历史成功率是否满足预定条件,如果满足,则降低所述编码速率,如果不满足,则维持所述编码速率不变。
当多媒体数据发送端401处于低编码速率时:多媒体数据发送端401,用于当多媒体数据当前的编码速率小于预先设定的编码速率对照值时,判断所述当前编码速率保持时间是否大于预先设定的低速率保持时间阈值,如果不大于则维持所述当前编码速率不变;如果大于预先设定的低速率保持时间阈值,多媒体数据发送端进一步判断反馈来的网络状况是否满足预先设定,如果满足则提高当前编码速率;如果不满足,进一步判断当前的网络状况是否有改善,如果有改善则维持所述当前编码速率不变,如果没有改善则提高当前编码速率。
综上所述,在本发明实施例中,多媒体数据接收端向多媒体数据发送端反馈网络状况,多媒体数据发送端再根据反馈来的网络状况判断多媒体数据当前的编码速率是否需要发生改变,如果需要则变更编码速率;如果不需要则保持编码速率不变。由此可见,应用本发明实施例以后,可以根据网络状况,实时调节编码速率,从而适应网络带宽的变化,尤其适合提高语音和视频质量。
另外,在本发明实施例中,可以利用语音视频数据收包情况判断网络带宽,而无须专门的带宽检测,从而避免实时语音和视频业务由于发包频繁而导致的带宽检测无效或者不准。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。