1.一种动态码率分配方法,其特征在于,包括:
获取发送者报告包的往返时间;
判断所述往返时间是否满足预定条件;
在所述往返时间满足预定条件时,进行码率切换;
发送切换码率后的媒体数据;
在无线网络控制器与用户设备之间带宽下降后,所述无线网络控制器使用为每一个用户设备预设的缓冲区缓存数据,并控制无线网络控制器缓存数据实际上缓冲的最大数据量,使无线网络控制器缓存数据实际上缓冲的最大数据量与用户设备缓存数据实际上缓冲的最大数据量关系满足:
UERBUFmax≥RNCRBUFmax×(PSSBWup-UEBWlow)/(UEBWlow-PSSBWlow)
其中,UERBUFmax为用户设备缓存数据实际上缓冲的最大数据量;RNCRBUFmax为无线网络控制器缓存数据实际上缓冲的最大数据量;PSSBWup为高码率;PSSBWlow为低码率;
UEBWlow为所述用户设备的低带宽。
2.如权利要求1所述的动态码率分配方法,其特征在于,所述获取发送者报告包的往返时间包括:
根据接收者报告包中携带的所述发送者报告包的发送时间,及最后接收发送者报告包到发送时间的延迟,获取所述发送者报告包的往返时间。
3.如权利要求1所述的动态码率分配方法,其特征在于,还包括:
判断所述往返时间满足预定条件后,判断当前传输帧为完整帧时,进行码率切换。
4.如权利要求1、2或3所述的动态码率分配方法,其特征在于,所述判断所述往返时间满足预定条件时,进行码率切换包括:
判断所述往返时间连续小于等于预设的往返时间最小值的次数达到预定次数时,向高码率媒体流调整。
5.如权利要求1、2或3所述的动态码率分配方法,其特征在于,所述判断所述往返时间满足预定条件时,进行码率切换包括:
判断所述往返时间连续大于等于预设的往返时间最大值的次数达到预定次数,且本时间段的往返时间大于前一个时间段的往返时间时,向低码率媒体流调整。
6.如权利要求5所述的动态码率分配方法,其特征在于,所述控制无线网络控制器缓存数据实际上缓冲的最大数据量包括:
通过控制所述预定次数,控制无线网络控制器缓存数据实际上缓冲的最大数据量。
动态码率分配方法、分组域流媒体服务器\n技术领域\n[0001] 本发明涉及通信技术领域,尤其涉及一种动态码率分配(DBA,DynamicBandwidth Allocation)方法、分组域流媒体服务器。\n背景技术\n[0002] 流媒体是一种把影像和声音信息进行压缩处理后,以媒体流的方式提供给用户观赏的技术,在移动通信领域进行的流媒体业务被称为移动流媒体,常见的进行移动流媒体的端对端组网结构如图1所示,包括:位于分组域的用户设备(UE,User Equipment)101、无线网络控制器(RNC,Radio NetworkController)102、网关通用分组无线业务支持节点(GGSN,Gateway GPRSSupport Node)103;位于网际协议(IP,Internet Protocol)网的分组域流媒体服务器(PSS,Packet-switched Streaming Server)104、门户(Portal)105。\n[0003] UE101受RNC102控制,通过RNC102分配无线资源,包括无线连接的服务质量(QoS,Quality of Service),通过GGSN103接入IP网络,通过互联网(Internet)连接到提供移动流媒体业务的服务器PSS104,及展示移动流媒体业务的服务器Portal105。\n[0004] 视频点播(VOD,Video On Demand)和直播电视(Live TV)是两种较常见的移动流媒体业务,PSS104把媒体流按规定的码率推送到客户端,即UE101。在理想的情况下,UE的接收和处理能力与PSS发送流媒体的码率相一致才能达到最佳的播放效果。而UE的接收能力是由UE的带宽决定,通常情况下,由于UE的移动性,决定了UE带宽会经常波动,因此UE在播放流媒体业务时质量会时好时坏,为了解决此问题,提出了DBA技术,即根据客户端所能支持的带宽情况分配不同的码率。\n[0005] 现在较为通用的DBA技术是,利用丢包率来决定是否改变码率以及如何改变码率。\n[0006] 在对现有技术的研究和实践过程中,发明人发现现有技术存在以下问题:\n[0007] 采用丢包率作为调整码率的依据,在已经发生丢包的情况下才进行切换,切换较为滞后,往往是出现播放质量比较差的状况并持续一段时间才被调整过来。特别对于需要向下调整码率,即码率下切的情况,丢包率达到一定程度时才把码率降低下去,说明此时UE侧的带宽已经低于码率并且有一段时间产生丢包了,媒体服务器才察觉到把码率切下去,对于用户的感受就是,持续一段时间马赛克后画面才恢复正常,带给用户的体验很差。\n[0008] 发明内容\n[0009] 本发明实施例要解决的技术问题是提供一种动态码率分配方法、分组域流媒体服务器,使移动流媒体在切换时的播放更加流畅。\n[0010] 为解决上述技术问题,本发明实施例一方面,提供了一种动态码率分配方法,包括:\n[0011] 获取发送者报告包的往返时间;\n[0012] 判断所述往返时间是否满足预定条件;\n[0013] 在所述往返时间满足预定条件时,进行码率切换;\n[0014] 发送切换码率后的媒体数据;\n[0015] 在无线网络控制器与用户设备之间带宽下降后,所述无线网络控制器使用为每一个用户设备预设的缓冲区缓存数据,并控制无线网络控制器缓存数据实际上缓冲的最大数据量,使无线网络控制器缓存数据实际上缓冲的最大数据量与用户设备缓存数据实际上缓冲的最大数据量关系满足:\n[0016] UERBUFmax≥RNCRBUFmax×(PSSBWup-UEBWlow)/(UEBWlow-PSSBWlow)[0017] 其中,UERBUFmax为用户设备缓存数据实际上缓冲的最大数据量;RNCRBUFmax为无线网络控制器缓存数据实际上缓冲的最大数据量;PSSBWup为高码率;PSSBWlow为低码率;UEBWlow为所述用户设备的低带宽。\n[0018] 由以上技术方案可以看出,由于本发明实施例使用发送者报告包的往返时间进行切换时机的判断,避免了使用丢包率进行判断,导在有数据丢失时,才进行下切,导致的马赛克现象。\n[0019] 附图说明\n[0020] 图1为现有技术进行移动流媒体的端对端组网结构图;\n[0021] 图2为本发明实施例提供的动态码率分配方法实施例一进行下切时数据传输实施例示意图;\n[0022] 图3为本发明实施例提供的动态码率分配方法实施例一进行下切时,UE带宽变化曲线、PSS发包码率变化曲线、RNC缓冲数据变化曲线、UE缓冲数据变化曲线示意图;\n[0023] 图4为本发明实施例提供的分组域流媒体服务器实施例一结构图;\n[0024] 图5为本发明实施例提供的分组域流媒体服务器实施例二结构图。\n[0025] 具体实施方式\n[0026] 本发明实施例提供了一种动态码率分配方法、分组域流媒体服务器,可以有效地提高移动流媒体业务的播放质量。\n[0027] 目前流媒体一般使用实时流协议(RTSP,Real Time Streaming Protocol)/实时传输协议(RTP,Real Time Transport Protocol)/RTP控制协议(RTCP,RTP Control Protocol)协议簇来控制/传输流媒体数据。其中,RTSP被用于建立和控制连续媒体的时间同步流。RTSP是文本协议并且类似超文本传输协议(HTTP,Hypertext Transfer Protocol),其主要不同之处在于RTSP是标准的流媒体协议,并通常利用独立传输协议,例如RTP来传输媒体数据。RTP用于提供时间信息和实现音频/视频流同步。RTP不处理资源预定,并且不保证实时服务的服务质量。RTCP的主要功能是为数据的传送情况提供反馈。\n发送端在用户点播成功后在发送RTP数据包的同时,每隔一定时间发送一次RTCP的发送者报告(SR,Sender Report)包进行发送端数据发送情况统计。接收端定期将报告信息接收者报告(RR,Receiver Report)包发送给发送端。\n[0028] PSS在发送一个SR包时,会在其中加上发送时的时间戳,记录发送该SR包的时间,UE收到该SR包时,并不会立刻返回RR包,通常要等待一段时间进行相应处理,再发出RR包,UE在发送RR包时,会在RR包中记录最后收到的SR包从PSS中发送出来的时间(LSR,Last SR),也就是该SR包中记录的该SR包发送时间,还会在RR中记录UE收到该SR包后等待了多长时间发出了该RR包,即最后接收SR包到发送时间的延迟(DLSR,delaysince last SR)。从PSS发出一个SR包到UE经历的时间,加上UE返回RR包到PSS经历的时间,可以称为SR包的往返时间(RTT,Round-Trip Time),RTT不包括UE收到SR包后等待的时间,因此假设PSS收到此RR包的当前时间是A,则RTT的计算公式为:RTT=A-LSR-DLSR。\n[0029] 本发明实施例中,PSS收到RR包后,读取其中的LSR、DLSR,计算出RTT,通过RTT来判断是否需要切换码率。\n[0030] 其中,LSR和DLSR均可从标准RTCP的RR包的相应字段直接读取。\n[0031] 本发明实施例提供的动态码率分配方法实施例一可以被分为两个步骤:RTCP分析阶段(RTCP analysis)和带宽状态调整(bandwidth adjust)。\n[0032] 在RTCP分析阶段对上报的RTCP包进行分析,计算RTT。\n[0033] 在i时间段RTT的计算公式可以表述为:RTTi=Ai-LSRi-DLSRi;i表示收到第i包RR包。\n[0034] 在带宽状态调整阶段,根据RTT大小,选择合适的码率调整策略。\n[0035] 根据网络的实际情况设置一个RTT范围,RTT大小在该范围内时,属于网络的正常状态,可以不作调整,RTT大小在该范围外时,需要根据实际情况对码率进行调整。假设RTT范围的最大值为RTTmax,最小值为RTTmin,在不同情况下调整码率的方法如下所述:\n[0036] 1、当连续n次RTTi≥RTTmax,并且RTTi>RTTi-1,表示SR包出现严重时延并越来越严重,此时,选择向低码率媒体流调整,即进行下切。其中连续n次RTTi≥RTTmax表示连续n个时间段RTT超出了上限,时延较严重需要进行下切,RTTi>RTTi-1表示本时间段的RTT大于前一个时间段的RTT,之所以需要增加这个条件,是由于当连续n次RTTi≥RTTmax,向低码率媒体流调整后,RTT并不能在短时间内回复到小于RTTmax,此时通常会有一小段时间,RTTi仍然大于等于RTTmax,假如不加入RTTi>RTTi-1的条件,系统有可能继续进行不必要的切换。因此,在判断连续n次RTTi≥RTTmax后,还需判断RTTi是否大于RTTi-1,如果向低码率媒体流调整的下切操作已经开始进行,则此时RTTi将小于RTTi-1,不要进行下切;如果结果为RTTi大于RTTi-1,说明SR包出现严重时延,并越来越严重,需要向低码率媒体流调整进行下切。\n[0037] n是为了防止由于网络的正常抖动而设定的值,可以根据实际情况进行配置,可以是一次,也可以是多次;n取值大于“1”时,不会在出现RTTi≥RTTmax时就即刻向低码率媒体流调整,防止由于网络的正常抖动带来的影响。\n[0038] 2、当连续m次RTTi≤RTTmin,表示网络长时间处于畅通状态,此时,选择向高码率媒体流调整,即进行上切。其中,m是为了防止由于网络的正常抖动而设定的值,可以根据实际情况进行配置,可以是一次,也可以是多次;m取值大于“1”时,不会在出现RTTi≤RTTmin时就即刻向低码率媒体流调整,防止由于网络的正常抖动带来的影响。\n[0039] 3、当RTTmin<RTTi≤RTTmax时,表示网络处于正常状态,此时,维持目前码率状态;在n的取值大于“1”时,RTTi≥RTTmax的次数低于n次,可以认为是网络的正常抖动,也可以维持目前码率状态;在m的取值大于“1”时,RTTi≤RTTmin的次数低于n次,同样可以认为是网络的正常抖动,也可以维持目前码率状态。\n[0040] 在实际使用中,n的取值需要考虑RNC与UE的缓冲区大小,尽量使出现连续n次RTTi≥RTTmax后,RNC与UE的缓冲区能够保存全部无法发出的数据为宜,通常连续n次RTTi≥RTTmax所耗费的时间可以为2个或3个RTCP数据包发送/接收周期。\n[0041] 进一步,由于移动流媒体的数据通常包括三种数据帧:I帧、P帧、B帧。\n[0042] 其中,I帧是整个画面完整编码的帧,又称为内部帧、完整帧、关键帧。I帧可以独立解码显示。I帧也能为相关的P帧、B帧的解码提供参照。\n[0043] P帧是编码与前一帧差异的帧。只纪录了与前一帧的差异数据,不能独立解码显示,必须在它参照的I帧预先收到时才能解码显示。\n[0044] B帧是编码与前一帧和后面的I帧的差异的帧。B帧同样不能独立解码显示,必须在它参照的I帧预先收到时才能解码显示。\n[0045] 假如切换时,正在传输B帧,则不会收到该B帧参照的后面的I帧,播放该B帧时,就会出现播放不流畅或马赛克等质量问题。\n[0046] 假如切换时,正在传输P帧,切换后继续传输的为使用切换后的码率进行编码的P帧,该切换后的P帧由于与前一个I帧的码率不同,很有可能无法参考前一个I帧解码出完整的图像,此时同样会出现播放不流畅或马赛克等质量问题。\n[0047] 现有技术只考虑了在丢包率达到一定程度时进行切换,在B帧或P帧时切换的情况非常常见,因此时常会出现由于切换导致的播放不流畅或马赛克等质量问题。\n[0048] 因此,在本发明实施例提供的动态码率分配方法实施例一中给出了在I帧进行切换的技术方案,在根据RTT大小判断需要切换后,判断当前要传输的帧为I帧时,进行切换,由于I帧是整个画面完整编码的帧,可以独立解码显示,不要参考前后的数据,也就不会出现无法出完整的图像的问题,避免了在B帧或P帧时切换导致的播放不流畅或马赛克等质量问题。\n[0049] 上文提到了切换的两种形式:上切和下切。码率上切,向高码率媒体流调整表示UE带宽远大于当前码率而要求上调码率,此时只要做到I帧切换,就可以避免出现播放不流畅或马赛克等质量问题。码率下切,向低码率媒体流调整表示UE带宽不能满足当前的码率要求而导致下调码率,情况比较复杂,为了尽可能避免可能会出现的播放不流畅或马赛克等质量问题,本发明实施例提供的动态码率分配方法实施例一给出的码率下切方法如下所述:\n[0050] 在无线接入网络(RAN,Radio Access Network)中RNC针对每个UE设置一个缓冲区,该缓冲大小以可存储RNC实际中可能出现的最大缓冲数据为较佳的方案,在每一个UE与RNC建立连接关系时设立。RNC实际中可能出现的最大缓冲数据与RTCP数据包的发送周期,及上文提到的n有关,即在连续n次RTTi≥RTTmax后,RNC可能缓冲到的最大数据。\n在网络畅通情况下,传送数据包所消耗的时间认为是很短的,一般情况下不会超出秒级,但在网络不畅通情况下,数据包将被塞进缓冲区。为了防止网络抖动或其它稍微不稳定的因素导致播放不流畅或播放质量下降问题,在UE上也要求设立一个缓冲区,用来缓冲媒体数据,该缓冲区的大小同样需要可以存储UE实际中可能出现的最大缓冲数据。同时,在PSS从高码率切换到低码率时,此时SR包出现严重时延,并越来越严重,RNC的缓冲区已经堆积大量数据,而且UE的带宽已经下降到无法短时间把上述堆积的数据传送到UE,如果UE没有缓冲区或缓冲区比较小,肯定会导致UE因无法及时得到要播放的媒体数据而播放不流畅甚至出现马赛克。\n[0051] 现举例说明PSS从高码率切换到低码率,即进行下切时数据传输的状况,进行下切时数据传输实施例示意图如图2所示:\n[0052] 图2中坐标纵轴表示缓冲区大小,其单位为Kbit,PSS刚从384Kbit码率切换到\n128Kbit码率,RNC接收的媒体数据码率为128Kbit,接收速率为128Kbit/S,接收到的媒体数据被缓存在RNC的缓冲区,此时UE缓冲区缓存的媒体数据码率仍然为384Kbit,向播放器传送媒体数据的速率仍然为384Kbit/S,而UE带宽已经下降为150Kbit/S,RNC缓冲区与UE缓冲区之间传输数据的速率为150Kbit/S。\n[0053] 此时,RNC缓冲了3840Kbit的数据,即缓冲了10秒的码率为384Kbit的数据,此时间是PSS用来检测RTT异常而下切码率的时间,即在连续n次RTTi≥RTTmax后缓存的数据。UE缓冲了1536Kbit数据,即缓冲了4秒的码率为384Kbit的数据,由于此数据是\n384Kbit码率的数据,因此播放速度还是384Kbit/S。\n[0054] 而此时,UE侧带宽已经下降为150Kbit/S,PSS的码率下切为128Kbit/S。4秒后,UE把最先缓冲的1536Kbit数据播放完毕时,又缓冲了150Kbit×4=600Kbit的数据,即RNC传输了600Kbit数据到UE,但RNC同时又缓存了128Kbit×4=512Kbit的数据;如此类推,再过大约600/(384-150)=1.65秒,UE就能把UE缓冲区的数据全部播放完毕。此时,RNC缓冲区缓存的数据码率仍然为384Kbit,由于UE缓冲区已经为空,UE接收到用150K码率传输的384Kbit码率的数据只能立刻播放出去,因此有一段时间会出现384Kbit码率的数据用150K码率传输的局面,虽然能保证不丢包,但播放肯定不流畅。PSS把码率再向下调整可以减小出现此情况的时间,为了彻底解决此问题,需要UE缓冲区与RNC缓冲区大小根据PSS能支持的码率等级以及RAN网络所支持带宽等级情况配置到一个比例。\n[0055] 现举例说明PSS从高码率切换到低码率,即进行下切时,UE带宽变化曲线、PSS发包码率变化曲线、RNC缓冲数据变化曲线、UE缓冲数据变化曲线示意图如图3所示:\n[0056] 曲线①为表示UE带宽变化的曲线,曲线②为表示PSS发包码率变化的曲线,其所在坐标系,横轴为时间轴,单位为秒,纵轴为带宽/码率,单位为Kbit/S;UEBWup表示UE在带宽下降前相对较高的带宽,UEBWup也可以被称为UE的高带宽;PSSBWup表示PSS与UEBWup对应的码率,也即与UE的高带宽相匹配的较高的码率,PSSBWup也可以被称为高码率;UEBWlow表示UE在带宽下降后相对较低的带宽,UEBWlow也可以被称为UE的低带宽;PSSBWlow表示PSS与UEBWlow对应的码率,也即与UE的低带宽相匹配的较低的码率,PSSBWlow也可以被称为低码率。\n[0057] 曲线③为表示RNC缓冲变化的曲线,其所在坐标系,横轴为时间轴,单位为秒,纵轴为RNC缓存数据量;RNCBUFmax表示RNC最大的缓冲容量,也即RNC缓冲区的最大容量;\nRNCRBUFmax表示RNC实际最大的缓冲数据,也即实际上RNC缓冲区缓冲的最大数据量。\n[0058] 曲线④⑤⑥为表示UE缓冲变化的曲线;UEBUFmax表示UE的最大缓冲容量,也即UE缓冲区的最大容量,UERBUFmax表示UE实际最大的缓冲数据,也即实际上UE缓冲区缓冲的最大数据量。\n[0059] 时间点T0表示UE带宽从高带宽下降到低带宽的时刻,时间点T1表示PSS检测到UE的带宽变化主动把码率从高码率切换到低码率的时刻,时间点T2′表示RNC把高码率数据传输完毕的时刻,时间点T2表示UE把高码率数据播放完毕同时也把缓冲清空的时刻,时间点T3表示RNC的缓冲被清空的时刻,此时表示端对端网络正式恢复到正常了。\n[0060] 如图3所示,从T0时刻到T3时刻,即从UE发生带宽变化到PSS及时调整码率并稳定下来的期间,由于RNCRBUFmax<RNCBUFmax以及UERBUFmax<UEBUFmax,因此,不会丢失数据包,没能及时发送或者播出的数据都被存储在缓存区,在数据完整的情况下,只要保证在I帧进行切换,就可以避免出现马赛克等质量问题。\n[0061] 在T0~T1时间段:PSS在此时间段内检测到UE带宽发生变化主动调整码率;\n[0062] 在T1~T2′时间段:RNC以PSSBWlow的速度接收低码率数据,以UEBWlow的速度传出高码率数据,因UEBWlow>PSSBWlow,RNC的缓冲数据逐渐减少,直到T2′时刻才把高码率数率输出完毕;\n[0063] 在T1~T2时间段:UE以PSSBWup的速度播放高码率数据,以UEBWlow的速度接收高码率数据,因PSSBWup>UEBWlow,UE的缓冲数据逐渐减少,直到T2时刻,UE缓冲区减为0。\n[0064] 当T2>T2′时,表示RNC在UE缓冲还没清空前已经把高码率数据传输完毕了,在T2′时间点后,UE以UEBWlow的速度接收新的低码率数据,在再以PSSBWup的速度播放完缓存的码率为PSSBWup的旧数据后,以PSSBWlow的速度播放新的低码率数据,因PSSBWlow<UEBWlow,在T2′后UE缓冲区缓存的数据就逐渐增加,直到T3时间点以后,RNC把缓冲的数据清空了,RNC进多少数据就出多少数据,此时网络通畅了,UE缓冲稳定了。UE在T2′时间点后的UE缓冲变化的曲线走势如图中曲线⑤所示。上述过程中,对于UE播放器来说,它的数据流一直都是流畅的,因此播放不存在质量问题。\n[0065] 当T2=T2′时,表示RNC把高码率数据传输完毕的同时,UE刚好把缓冲清空了,此后UE以UEBWlow的速度接收新的低码率数据,以PSSBWlow的速度播放新的低码率数据,UE缓冲变化的曲线走势如图中曲线⑥所示。上述过程中,对于UE播放器来说,它的数据流也是一直流畅的,因此播放不存在质量问题。\n[0066] 当T2<T2′时,表示RNC在没有把高码率数据传输完毕之前,UE就把缓冲清空了,因此在T2~T2′期间,高码率数据被低带宽传输到UE,并且UE的缓冲区为空,只能以低码率播放收到的高码率数据,此情况下,播放肯定不流畅,用户的体验就是播放有停顿。\n[0067] 记PSS检测到UE带宽传输异常所需要的时间(DT,Detect Time)为DT,DT使用公式可以表述为:DT=T1 T0,从图3可看出DT的大小将影响到RNCRBUFmax,DT越大,RNCRBUFmax越大,假设RTCP的RR包发包周期为P,连续n次RTTi≥RTTmax时,PSS检测到UE带宽传输异常需要进行下切,DT、n、P的关系可以表述为:\n[0068] DT=n×P (1)\n[0069] 在T0到T1期间,RNC缓冲以PSSBWup速度接收高码率数据,以UEBWlow速度输出数据到UE,两者之差乘以时间间隔DT即为RNCRBUFmax,其关系可以表述为:\n[0070] RNCRBUFmax=DT×(PSSBWup-UEBWlow) (2)\n[0071] T2前的数据都是码率为的PSSBWup数据,因此UE的播放器播放的速度也是PSSBWup,但此时UE的传输速度已经下降为UEBWlow,因此填充UE缓冲区的速度为UEBWlow,所以当前UE实际缓冲除以上述2个速度的差值即UE清空缓冲所需要的时间,记UE清空缓冲所需要的时间为CTUE,CTUE可以表述为:\n[0072] CTUE=T2-T0=UERBUFmax/(PSSBWup-UEBWlow) (3)[0073] 同理记RNC清空码率为PSSBWup数据所需的时间为CUTRNC,CUTRNC可以表述为:\n[0074] CUTRNC=T2′-T1=RNCRBUFmax/(UEBWlow-PSSBWlow) (4)\n[0075] 根据上文分析可知,T2≥T2′时播放才能保证不存在质量问题,即CTUE≥CUTRNC,根据式(3)、式(4),可得:\n[0076] UERBUFmax≥RNCRBUFmax×(PSSBWup-UEBWlow)/(UEBWlow-PSSBWlow) (5)[0077] 由于在实际应用中,各等级的码率,如PSSBWup、PSSBWlow等,是相对固定的,而UE的接收带宽,如UEBWup、UEBWlow是变化的不可控的,因此,本发明实施例提供的动态码率分配方法实施例一进一步给出了如下解决方案:\n[0078] 控制UERBUFmax和RNCRBUFmax的大小,使其满足式(5)的关系,通常使UERBUFmax越大或者RNCRBUFmax越小越好。\n[0079] 根据式(2),RNCRBUFmax大小与PSS检测到UE带宽变化所需的时间DT有关,PSS是根据接收到RTCP的RR包来检测的,因此DT跟发送RTCP数据包的周期P和n有关,可以通过减小n的取值,使DT变小,以达到使RNCRBUFmax减小的目的。\n[0080] 在本发明实施例提供的动态码率分配方法实施例一中,根据SR包的往返时间RTT的大小来判断切换的时机,及如何切换,在需要进行下切时,不会等待出现丢包的现象时再进行切换,避免了由于丢包带来的马赛克、停顿等质量问题。\n[0081] 进一步,在切换时选择I帧进行切换,避免了在B帧或P帧时切换导致的播放不流畅或马赛克等质量问题。\n[0082] 进一步,为了避免由于UE缓存区在RNC发送完高码率数据之前被清空,以低码率播放收到的高码率数据,导致的播放不流畅,给出了通过控制RNC最大的缓冲数据、UE实际最大的缓冲数据,来避免UE缓存区在RNC发送完高码率数据之前被清空的方法。\n[0083] 由于在I帧进行切换即可避免在B帧或P帧时切换导致的播放不流畅或马赛克等质量问题,因此本发明实施例提供的动态码率分配方法实施例二,给出了可以在判断UE带宽变化,需要切换时,选择I帧进行切换的方法:\n[0084] 首先根据用户设备的带宽发生变化,判断是否需要调整码率;\n[0085] 判断需要调整码率时,判断当前要传输的帧是否为I帧,在当前传输帧为完整帧时,进行码率切换。其中,根据用户设备的带宽发生变化,判断需要调整码率,可能是根据往返时间判断带宽变化,即获取发送者报告包的往返时间;在所述往返时间满足预定条件时,判断需要调整码率;在这种情况下,详细的操作方法和上文对本发明实施例提供的动态码率分配方法实施例一的描述基本一致,在此不再重复。\n[0086] 也可能是根据丢包率判断带宽变化,即获取丢包率;在所述丢包率满足预定条件时,判断需要调整码率。\n[0087] 通过丢包率判断带宽变化,进行码率调整的详细方法如下所述:\n[0088] 流媒体服务器对上报的RTCP包进行分析,计算丢包率。\n[0089] i时间段丢包率算法:Ri=f_lost/(Seq_numberi-Seq_numberi-1);其中,f_lost是相邻RTCP RR字段之间的RTP丢包总数;Seq_numberi是第i个RTCP包上报收到的RTP包序号;Seq_numberi-1是第i-1个RTCP包上报收到的RTP包序号;\n[0090] 根据丢包程度:\n[0091] 当连续n次Ri>=Rmax,n为预定值,属于严重丢包,选择向低码流调整;\n[0092] 当0<Ri<=Rmax,或者偶尔Ri=0,或者偶尔Ri>=Rmax,属于轻度丢包,维持目前码率状态;\n[0093] 当连续m次Ri=0,m为预定值,属于长时无丢包,选择向高码流调整。\n[0094] 在本发明实施例提供的动态码率分配方法实施例二中,在切换时选择I帧进行切换,避免了在B帧或P帧时切换导致的播放不流畅或马赛克等质量问题。\n[0095] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤:\n[0096] 一种动态码率分配方法,包括:\n[0097] 获取发送者报告包的往返时间;\n[0098] 判断所述往返时间是否满足预定条件;\n[0099] 在所述往返时间满足预定条件时,进行码率切换;\n[0100] 发送切换码率后的媒体数据。\n[0101] 一种动态码率分配方法,包括:\n[0102] 根据用户设备的带宽发生变化,判断需要调整码率时,在当前传输帧为完整帧时,进行码率切换,发送切换码率后的媒体数。\n[0103] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0104] 本发明实施例提供的分组域流媒体服务器实施例一结构如图4所示,包括:\n[0105] 往返时间获取单元410,用于获取发送者报告包的往返时间;\n[0106] 第一往返时间判断单元420,用于判断所述往返时间是否满足预定条件;\n[0107] 第一切换单元430,用于在所述往返时间满足预定条件时,进行码率切换;\n[0108] 发送单元440,用于发送切换码率后的媒体数据。\n[0109] 第一完整帧判断单元450,用于判断当前传输帧是否为完整帧,在当前传输帧为完整帧时,再控制所述第一切换单元440进行码率切换。\n[0110] 其中,往返时间获取单元410包括:\n[0111] 发送时间获取单元411,用于获取接收者报告包中携带的所述发送者报告包的发送时间;\n[0112] 延迟获取单元412,用于获取接收者报告包中携带的最后接收发送者报告包到发送时间的延迟;\n[0113] 处理单元413,用于根据接收者报告包中携带的所述发送者报告包的发送时间,及最后接收发送者报告包到发送时间的延迟,获取所述发送者报告包的往返时间。\n[0114] 第一往返时间判断单元420包括:\n[0115] 上切判断单元421,用于判断所述往返时间连续小于等于预设的往返时间最小值的次数是否达到预定次数;\n[0116] 下切判断单元422,用于判断所述往返时间连续大于等于预设的往返时间最大值的次数是否达到预定次数,本时间段的往返时间是否大于前一个时间段的往返时间;\n[0117] 第一切换单元430包括:\n[0118] 上切单元431,用于在所述往返时间连续小于等于预设的往返时间最小值的次数达到预定次数时,向高码率媒体流调整。\n[0119] 下切单元432,用于所述往返时间连续大于等于预设的往返时间最大值的次数达到预定次数,且本时间段的往返时间大于前一个时间段的往返时间时,向低码率媒体流调整。\n[0120] 本发明实施例提供的无线网络控制器实施例包括:\n[0121] 带宽判断单元,判断所述无线网络控制器与用户设备之间带宽是否下降;\n[0122] 缓冲单元,在判断结果为下降时,使用为每一个用户设备预设的缓冲区缓存数据。\n[0123] 本发明实施例提供的分组域流媒体服务器实施例二结构如图5所示,包括:\n[0124] 带宽判断单元510,用于根据用户设备的带宽发生变化,判断是否需要调整码率;\n[0125] 第二完整帧判断单元520,用于判断当前传输帧是否为完整帧;\n[0126] 第二切换单元530,用于在需要调整码率时,且当前传输帧为完整帧时,进行码率切换,发送切换码率后的媒体数据。\n[0127] 其中,带宽判断单元510包括:\n[0128] 第二往返时间判断单元511,用于获取发送者报告包的往返时间;在所述往返时间满足预定条件时,判断需要调整码率;\n[0129] 或,丢包率判断单元512,用于获取丢包率;在所述丢包率满足预定条件时,判断需要调整码率。\n[0130] 本发明实施例提供的分组域流媒体服务器实施例一、分组域流媒体服务器实施例二、及无线网络控制器实施例的具体使用方式,可参考上文对本发明实施例提供的动态码率分配方法实施例一、动态码率分配方法实施例二的描述,在此不再重复。\n[0131] 以上对本发明所提供的一种动态码率分配方法、分组域流媒体服务器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2014-04-16
未缴年费专利权终止
IPC(主分类): H04L 12/56
专利号: ZL 200810005294.1
申请日: 2008.02.27
授权公告日: 2010.08.18
- 2010-08-18
- 2008-10-08
- 2008-08-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-01-30
|
2006-07-27
| | |
2
| |
2007-06-13
|
2006-10-30
| | |
3
| |
2007-09-05
|
2006-03-03
| | |
4
| |
2006-10-18
|
2006-05-15
| | |
5
| |
2004-08-04
|
2003-01-16
| | |
6
| |
2006-10-18
|
2005-04-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |