專利名稱:多源流媒體傳輸QoS控制方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)設(shè)計(jì)與應(yīng)用技術(shù)領(lǐng)域,涉及計(jì)算機(jī)軟件、數(shù)據(jù)傳輸技術(shù)、多媒體技術(shù)以及IP網(wǎng)絡(luò),特別涉及一種多源流媒體傳輸QoS控制方法。
背景技術(shù):
目前,對(duì)流媒傳輸QoS研究的主要對(duì)象主要單路流媒體,解決問(wèn)題的方法主要通過(guò)緩沖器調(diào)度、網(wǎng)絡(luò)資源預(yù)留等方法。在進(jìn)行單源流媒體進(jìn)行傳輸時(shí),效果較好,然而在進(jìn)行多源流媒體傳輸QoS控制時(shí),上述技術(shù)效果則并不理想。
針對(duì)多源流媒體傳輸QoS控制方法,申請(qǐng)人經(jīng)過(guò)查新,檢索到4篇與本發(fā)明相關(guān)較為緊密的文獻(xiàn),它們分別是1、基于Qos的多路視頻回放2、IP網(wǎng)絡(luò)VOD中具有QoS保證的流媒體系統(tǒng)結(jié)構(gòu)研究與設(shè)計(jì)3、Realtime multimedia transport using multiple paths4.An application-level QoS comparison of single-stream and multi-streamapproaches in a wireless ad hoc network上述文獻(xiàn)分別提出了多路視頻進(jìn)行回放時(shí)所采用的多緩沖區(qū)及其調(diào)度算法;基于RSVP實(shí)現(xiàn)QoS;采用多路徑的方式實(shí)現(xiàn)多流實(shí)時(shí)傳輸及對(duì)視音頻分成兩路流傳輸并在接收端進(jìn)行同步控制的方法。其中,多緩沖區(qū)控制及調(diào)度算法能夠在一定程度上解決播放時(shí)的抖動(dòng)問(wèn)題,但在網(wǎng)絡(luò)傳輸方面產(chǎn)無(wú)能為力;采用資源預(yù)留協(xié)議RSVP,可以在流媒體傳輸之間在網(wǎng)絡(luò)中預(yù)留資源,這需要網(wǎng)絡(luò)支持,且不能根據(jù)網(wǎng)絡(luò)環(huán)境變化進(jìn)行動(dòng)態(tài)調(diào)整;采用多路徑傳輸方法可以屏蔽掉部分網(wǎng)絡(luò)故障,但并不判斷網(wǎng)絡(luò)能否滿足于特定流媒體的傳輸要求;將音視頻分開(kāi)傳輸增加了額外開(kāi)銷,在進(jìn)行多源流媒體傳輸時(shí)會(huì)使問(wèn)題更加復(fù)雜。
另外,現(xiàn)有描述多源流媒體的語(yǔ)言SMIL(Synchronized Multimedia IntegrationLanguage,同步多媒體集成語(yǔ)言)側(cè)重于描述多路流媒體的呈現(xiàn)信息,缺少對(duì)多源流媒體QoS控制信息的描述。目前的網(wǎng)絡(luò)帶寬測(cè)試方法,如Pathchar算法或包對(duì)算法,都是通過(guò)向網(wǎng)絡(luò)中輸入數(shù)據(jù)來(lái)檢測(cè)可用帶寬,這類主動(dòng)輸入數(shù)據(jù)的方法會(huì)對(duì)測(cè)試結(jié)果造成影響,特別是在高速網(wǎng)絡(luò)環(huán)境中,將會(huì)產(chǎn)生較大偏差。此外,這類方法只能獲得網(wǎng)絡(luò)的當(dāng)前最大可用帶寬,無(wú)法獲得丟包率。目前的帶寬分配方法主要針對(duì)單路媒體流,不能根據(jù)媒體流的類型與QoS要求對(duì)并發(fā)傳輸?shù)亩嗦访襟w流進(jìn)行網(wǎng)絡(luò)帶寬的協(xié)調(diào)分配。此外,現(xiàn)有帶寬分配方法是依據(jù)最大可用帶寬,未考慮在該帶寬下的丟包率。
因此,進(jìn)行流媒體傳輸特別是多源流媒體傳輸時(shí),現(xiàn)有技術(shù)并不能解決對(duì)網(wǎng)絡(luò)可用帶寬進(jìn)行噢各地區(qū)精確檢測(cè)并在可用網(wǎng)絡(luò)帶寬隨時(shí)發(fā)生變化時(shí)對(duì)多源流媒體的傳輸帶寬進(jìn)行動(dòng)態(tài)優(yōu)化分配的問(wèn)題,這在一定程度上限制了流媒體傳輸?shù)姆?wù)質(zhì)量。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種多源流媒體傳輸QoS控制方法,根據(jù)多源流媒體中各路媒體的具體情況及網(wǎng)絡(luò)可用帶寬情況,在整體上降低了數(shù)據(jù)傳輸?shù)难舆t與丟包率,可對(duì)網(wǎng)絡(luò)資源進(jìn)行優(yōu)化利用,以提高多源流媒體的傳輸質(zhì)量。
實(shí)現(xiàn)上述發(fā)明的技術(shù)解決方案是一種多源流媒體傳輸QoS(Quality ofService)控制方法按以下步驟進(jìn)行首先,采用多源流媒體語(yǔ)言MSML解釋器從MSML文件中獲得多源流媒體的元數(shù)據(jù)信息,該信息中的流媒體類型、傳輸質(zhì)量要求將用于流媒體數(shù)據(jù)傳輸中的QoS控制;然后,采用定值帶寬檢測(cè)模塊根據(jù)RTP/RTCP協(xié)議判斷當(dāng)前網(wǎng)絡(luò)狀況所能傳輸數(shù)據(jù)的最高速率;根據(jù)此結(jié)果,多源流媒體帶寬分配模塊結(jié)合流媒體類型、傳輸質(zhì)量要求、所支持的碼率,獲得每路流媒體的在當(dāng)前網(wǎng)絡(luò)狀況下可用的最高編碼速率以及編碼速率倍數(shù)的傳輸速率;定值帶寬檢測(cè)模塊與多源流媒體帶寬分配模塊交替運(yùn)行,隨時(shí)根據(jù)最新的網(wǎng)絡(luò)可用帶寬,獲得最高可用的編碼速率及倍數(shù)傳輸速率;最后,數(shù)據(jù)傳輸控制模塊根據(jù)用戶的VCR命令與帶寬分配結(jié)果,向RTP/RTCP模塊發(fā)送更編碼速率及倍數(shù)傳輸速率指令;RTP/RTCP模塊在數(shù)據(jù)傳輸控制模塊的控制下進(jìn)行流媒體的實(shí)時(shí)傳輸。
所述的多源流媒體語(yǔ)言MSML是一種基于XML的、支持多源流媒體傳輸QoS控制與同步播放的描述語(yǔ)言;MSML描述的信息包括三種類型一、各路流媒體的基本信息,包括名稱、URL、類型;二、各路流媒體的傳輸質(zhì)量要求,包括編碼速率范圍、最大允許延遲、最大允許丟包率;三、各路流媒體播放過(guò)程中呈現(xiàn)信息,包括視頻窗口初始大小、位置。
所述的定值帶寬檢測(cè)是指采用RTP/RTCP協(xié)議檢測(cè)并獲得從媒體所支持的最低速率到網(wǎng)絡(luò)最高可用傳輸速率間各速率下流媒體傳輸丟包率,并將這一丟包率與流媒體傳輸允許的最大丟包率進(jìn)行比較,如果比預(yù)定丟包率小,則認(rèn)為當(dāng)前網(wǎng)絡(luò)狀況能滿足該速率下的數(shù)據(jù)傳輸,否則就認(rèn)為當(dāng)前網(wǎng)絡(luò)狀況不能滿足該速率下的數(shù)據(jù)傳輸。
所述的多源流媒體帶寬分配是指根據(jù)定值帶寬檢測(cè)的結(jié)果,調(diào)整各路流媒體的編碼速率與傳輸速率,調(diào)整分以下兩種情況處理一、若某路流媒體來(lái)自于與其它流媒體不同的流媒體服務(wù)器時(shí),則采用定值帶寬檢測(cè)算法從高到低檢測(cè)該路流媒體的各級(jí)編碼速率,直到找到當(dāng)前網(wǎng)絡(luò)狀態(tài)支持的最高編碼速率,若緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小當(dāng)前呈現(xiàn)時(shí)間戳PTS(PresentationTimeStamp)之差小于特定閾值,則檢測(cè)網(wǎng)絡(luò)狀態(tài)所支持該速率的倍速率;若緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小PTS之差大于特定閾值,將編碼速率作為倍速率;最后,將當(dāng)前網(wǎng)絡(luò)狀態(tài)所支持的最高編碼速率作為該路流媒體的編碼速率,倍速率作為實(shí)際傳輸速率;二、若其中幾路流媒體來(lái)自于同一流媒體服務(wù)器,則根據(jù)媒體類型的優(yōu)先級(jí)確定這些媒體流總編碼速率的侯選集合,并通過(guò)定值帶寬檢測(cè)算法選擇最高的總編碼速率,若當(dāng)緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小PTS之差大于特定閾值還需要用定值帶寬檢測(cè)相應(yīng)的倍速率,否則,將最高的總編碼速率作為總倍速率;最后,將當(dāng)前網(wǎng)絡(luò)狀態(tài)所支持的最高編碼速率作為這些媒體的編碼速率,并根據(jù)總編碼速率中各路流媒體速率所占的比重將總倍速率相應(yīng)地分解到各路媒體作為實(shí)際傳輸速率。
本發(fā)明采用上述方法,能根據(jù)多源流媒體中各路媒體的基本信息、同步信息、媒體類型、QoS要求以及呈現(xiàn)信息判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)能否滿足既定速率的媒體傳輸。在帶寬受限的情況下,根據(jù)流媒體的類型與QoS需求,對(duì)來(lái)自不同流媒體服務(wù)器的多路并發(fā)媒體數(shù)據(jù)分配帶寬,從而在整體上降低數(shù)據(jù)傳輸?shù)难舆t與丟包率。通過(guò)上述策略,對(duì)網(wǎng)絡(luò)資源進(jìn)行優(yōu)化利用,以提高多源流媒體的傳輸質(zhì)量。
圖1是本發(fā)明控制機(jī)制的組成;圖2是本發(fā)明控制機(jī)制的工作機(jī)理。
具體實(shí)施例方式
為了更清楚地理解本發(fā)明,以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
參照?qǐng)D1所示,首先,多源流媒體語(yǔ)言MSML解釋器用于從MSML文件中獲得多源流媒體的元數(shù)據(jù)信息,該信息中的流媒體類型、傳輸質(zhì)量要求將用于流媒體數(shù)據(jù)傳輸中的QoS控制;然后,定值帶寬檢測(cè)模塊采用RTP/RTCP協(xié)議判斷當(dāng)前網(wǎng)絡(luò)狀況所能傳輸數(shù)據(jù)的最高速率;根據(jù)此結(jié)果,多源流媒體帶寬分配模塊結(jié)合流媒體類型、傳輸質(zhì)量要求,調(diào)整每路流媒體的編碼速率以及編碼速率倍數(shù)的傳輸速率;定值帶寬檢測(cè)模塊與多源流媒體帶寬分配模塊交替運(yùn)行,隨時(shí)根據(jù)最新網(wǎng)絡(luò)狀況進(jìn)行帶寬分配;最后,數(shù)據(jù)傳輸控制模塊根據(jù)用戶的VCR命令與帶寬分配結(jié)果,對(duì)流媒體傳輸進(jìn)行控制;RTP/RTCP模塊在數(shù)據(jù)傳輸控制模塊的控制下進(jìn)行流媒體的實(shí)時(shí)傳輸,并根據(jù)緩沖區(qū)中的數(shù)據(jù)量完成丟失數(shù)據(jù)的重傳。
1、多源流媒體傳輸QoS控制機(jī)制的組成多源流媒體傳輸QoS控制機(jī)制由MSML解釋器、定值帶寬檢測(cè)、多源流媒體帶寬分配、數(shù)據(jù)傳輸控制以及RTP/RTCP五個(gè)模塊組成。
MSML解釋器用于從MSML文件中獲得多源流媒體的元數(shù)據(jù)信息;其中,流媒體類型、傳輸質(zhì)量要求將用于傳輸中的QoS控制。定值帶寬檢測(cè)模塊用于判斷當(dāng)前網(wǎng)絡(luò)狀況能否滿足某個(gè)確定速率的數(shù)據(jù)傳輸。多源流媒體帶寬分配模塊根據(jù)定值帶寬檢測(cè)結(jié)果以及流媒體類型、傳輸質(zhì)量要求確定媒體的編碼速率與傳輸速率。數(shù)據(jù)傳輸控制模塊根據(jù)VCR命令與帶寬分配結(jié)果對(duì)媒體傳輸進(jìn)行控制。RTP/RTCP協(xié)議模塊用于實(shí)現(xiàn)流媒體的實(shí)時(shí)有序傳輸以及丟失數(shù)據(jù)包的重傳。
2、多源流媒體傳輸QoS控制機(jī)制的工作機(jī)理參照?qǐng)D2所示,多源流媒體傳輸QoS控制機(jī)制主要是以事件驅(qū)動(dòng)方式工作的。在從MSML文件中的流媒體類型與QoS要求信息后,以數(shù)據(jù)傳輸控制模塊為核心,通過(guò)處理用戶VCR控制、緩沖區(qū)狀態(tài)以及定時(shí)器三類事件完成多源流媒體傳輸QoS控制;在處理過(guò)程中,傳輸控制模塊調(diào)用多源流媒體分配模塊、RTP/RTCP模塊。事件類型與處理過(guò)程如下■VCR控制1)當(dāng)開(kāi)始播放時(shí),采用RTSP或MMS協(xié)議獲得各路流媒體的各級(jí)編碼速率,并以最高速率通知媒體服務(wù)器傳輸數(shù)據(jù),同時(shí)執(zhí)行多源流媒體帶寬分配;2)當(dāng)暫停播放時(shí),采用RTSP或MMS協(xié)議通知媒體服務(wù)器暫停傳輸數(shù)據(jù);3)當(dāng)繼續(xù)播放時(shí),采用RTSP或MMS協(xié)議通知媒體服務(wù)器以當(dāng)前編碼速率與傳輸速率繼續(xù)傳輸數(shù)據(jù);4)當(dāng)停止播放時(shí),采用RTSP或MMS協(xié)議通知媒體服務(wù)器停止傳輸數(shù)據(jù),并關(guān)閉通道。
5)當(dāng)拖動(dòng)到某一時(shí)刻播放時(shí),清空緩沖區(qū),并以最高速率通知媒體服務(wù)器傳輸數(shù)據(jù),同時(shí)執(zhí)行多源流媒體帶寬分配。
■緩沖區(qū)狀態(tài)1)當(dāng)緩沖區(qū)容量中該路媒體時(shí)延小于特定閾值(5秒),重新執(zhí)行多源流媒體帶寬分配;2)當(dāng)緩沖區(qū)容量中該路媒體時(shí)延大于特定閾值(30秒),將多源流媒體各路媒體的傳輸速率設(shè)置為編碼速率。
■定時(shí)器定時(shí)重新執(zhí)行多源流媒體帶寬分配。
在執(zhí)行多源流媒體帶寬分配過(guò)程中,調(diào)用定值帶寬檢測(cè)模塊檢驗(yàn)當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足為各路媒體分配的帶寬,根據(jù)檢測(cè)結(jié)果,為每路流媒體重新進(jìn)行帶寬分配。
在處理“開(kāi)始播放”、“拖動(dòng)到某一時(shí)刻播放”、“緩沖區(qū)容媒體時(shí)延小于特定閾值”事件過(guò)程中,為流媒體分配的傳輸速率一般是所傳輸媒體編碼速率的倍數(shù),這樣可以快速填充緩沖區(qū),以減少用戶等待時(shí)間。
3、多源流媒體傳輸QoS控制機(jī)制各個(gè)模塊的接口■多源流媒體帶寬分配模塊的接口Bandinfo[]AllotBand(Mediainfo MediaArray[]);該函數(shù)確定多路媒體的傳輸速率以及所傳媒體的編碼速率。
函數(shù)AllotBand的參數(shù)為Mediainfo類型的數(shù)組,Mediainfo類型定義如下Struct Mediainfo{char[]url,int Mediatype,int Minband,int Maxlost}其中,url為流媒體的URL;Mediatype為媒體類型,包括音頻、視頻、屏幕三種類型;Minband、Maxlost為該媒體的QoS要求,分別是允許的最小帶寬、最大丟包率。
函數(shù)AllotBand返回Bandinfo類型的數(shù)組,Bandinfo類型定義如下Struct Bandinfo {int coding_speed,int trans_speed}其中,coding_speed為編碼速率;trans_speed為傳輸速率。
■定值帶寬檢測(cè)模塊的接口Int Bandtest(int b,int lmax,int pmax,int pmin);該函數(shù)用于判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否滿足帶寬要求。
其中,b為需要檢查的某路流媒體定值帶寬、該路流媒體允許的最大丟包率lmax、該媒體流在緩沖區(qū)中的最大與最小PTS pmax與pmin;返回為丟包率,當(dāng)返回-1時(shí),說(shuō)明當(dāng)前網(wǎng)絡(luò)狀況不能滿足帶寬b。定值帶寬檢測(cè)算法由多源流媒體帶寬分配算法調(diào)用。
■RTSP/MMS模塊的接口
■RTP/RTCP模塊的接口
4、基于XML的多源流媒體語(yǔ)言MSMLMSML是一種簡(jiǎn)單的基于XML的標(biāo)記語(yǔ)言,可以用于描述多源流媒體中各路媒體的基本信息、同步信息、媒體類型、QoS要求以及呈現(xiàn)信息。
MSML的顯示分成兩部分。第一部分是開(kāi)始部分(Header Section),在這里定義顯示的全局特性,比如播放器中的信息窗口要顯示的信息,各路流媒體播放器過(guò)程中窗口呈現(xiàn)狀態(tài),包括視頻窗口初始化大小、位置。
第二部分是主體部分(Body Section),這里主要指定流媒體的同步信息,媒體的基本信息,包括名稱、URL、類型,設(shè)置流媒體的QoS要求,包括編碼速率范圍、最大延遲時(shí)間和最大丟包率。
MSML文件的框架結(jié)構(gòu)如下<msml>
<head>
<meta/>
...說(shuō)明各路媒體的基本信息...
<layout>
...定義流媒體播放過(guò)程中呈現(xiàn)時(shí)所需的初始化信息...
</layout>
</head>
<body>
<par>
...給定流媒體的基本信息...
...設(shè)定傳輸質(zhì)量所需的相關(guān)參數(shù)...
<par>
</body>
</msml>
標(biāo)簽說(shuō)明如下表
meta標(biāo)簽的屬性設(shè)置如下
layout標(biāo)簽的屬性設(shè)置如下
流媒體文件的屬性設(shè)置
5、定值帶寬檢測(cè)在點(diǎn)播過(guò)程中,由于媒體數(shù)據(jù)的編碼速率是已知的,因此,我們只需要檢驗(yàn)當(dāng)前網(wǎng)絡(luò)狀況下傳輸該速率媒體數(shù)據(jù)的丟包率是否小于該流媒體QoS需求的中最大允許丟包率,即可判斷媒體數(shù)據(jù)的傳輸效果。
鑒于此,我們?cè)O(shè)計(jì)了一種定值帶寬估測(cè)算法,用于檢測(cè)在允許有限次數(shù)據(jù)重傳的情況下,某個(gè)特定速率媒體流的丟包率。定值帶寬估測(cè)算法如下算法輸入需要檢查的某路流媒體定值帶寬bv、該路流媒體允許的最大丟包率lmax、該媒體流在緩沖區(qū)中的最大與最小PTS pmax、pmin;算法輸出丟包率l;當(dāng)返回-1時(shí),說(shuō)明當(dāng)前網(wǎng)絡(luò)狀況不能滿足帶寬bv,即lmax<lr;中間變量、送持續(xù)時(shí)間ts,時(shí)間ts接收的RTP包數(shù)目m,RTP包大小s,允許重傳次數(shù)n,重傳中固定時(shí)延tc。
算法描述如下
STEP1.若緩沖區(qū)為空,或(pmax-pmin)/(tc+s/bv)<1,則n=0;否則n=[(pmax-pmin)/(tc+s/bv)],f(x)=[x]為高斯函數(shù),n≥1表示允許數(shù)據(jù)重傳。
STEP2.若n=0,在ts時(shí)間內(nèi),媒體服務(wù)器向播放器發(fā)送速率為bv的媒體數(shù)據(jù)包數(shù)目為(ts×bv)/s個(gè),丟包率為l=1-(ts×bv)/(s×m);若l≤lmax,則當(dāng)前網(wǎng)絡(luò)狀況滿足該速率媒體數(shù)據(jù)的傳輸,返回l,否則,返回-1;STEP3.若n≥1,則引入重傳機(jī)制,此時(shí)丟包率為ln,若ln≤lmax,則當(dāng)前網(wǎng)絡(luò)狀況可滿足該速率媒體數(shù)據(jù)的傳輸,返回ln;若ln>lmax,當(dāng)前網(wǎng)絡(luò)狀況不滿足該速率媒體數(shù)據(jù)的傳輸,返回-1。
和其它算法相比,本方法的主要特點(diǎn)是1)獲得鏈路傳輸某一事先確定的速率帶寬的能力,而不必估測(cè)鏈路全部可用帶寬;2)不主動(dòng)向網(wǎng)絡(luò)輸入數(shù)據(jù),測(cè)試過(guò)程對(duì)網(wǎng)絡(luò)是無(wú)擾的;3)測(cè)量過(guò)程真實(shí)反映了鏈路數(shù)據(jù)的傳輸過(guò)程;4)不存在受鏈路上其它流量干擾的問(wèn)題。
6、多源流媒體帶寬分配組成多源流媒體的各路媒體可能來(lái)自多個(gè)媒體服務(wù)器,而且由于媒體類型不同,對(duì)媒體傳輸?shù)囊笠膊煌?。?duì)音頻流媒體,要求較低的丟包率與抖動(dòng),并且在流媒體中占有重要位置;對(duì)于屏幕流媒體,要求有高分辨率,但是幀速率要求不高,在流媒體中占有比視頻更重要的位置。此外,每路媒體還有具體的QoS要求。
為了在受限的網(wǎng)絡(luò)狀態(tài)下,獲得好的表現(xiàn)質(zhì)量,我們?cè)O(shè)計(jì)了一種多源流媒體帶寬分配算法,對(duì)來(lái)自不同流媒體服務(wù)器的多路并發(fā)媒體數(shù)據(jù)分配帶寬,從而在整體降低數(shù)據(jù)傳輸?shù)难舆t與丟包率。
多源流媒體帶寬分配算法根據(jù)媒體的類型、QoS要求、緩沖區(qū)與網(wǎng)絡(luò)狀態(tài)以試探的方式為每路媒體分類帶寬。多源流媒體帶寬分配算法如下算法輸入n路流媒體中每路媒體的流媒體URLi、媒體類型Mediatypei、最小帶寬Minbandi、最大丟包率Maxlosti、當(dāng)前編碼速率CodingSpeedi,t,當(dāng)前傳輸速率與編碼速率的倍數(shù)Timesi,t,n路流媒體中每路媒體的當(dāng)前丟包率Losti,t,在緩沖區(qū)內(nèi)的時(shí)延di,t,di,t=pmax,i,t-pmin,i,t,pmax,i,t與pmin,i,t是該媒體流當(dāng)前在緩沖區(qū)中的最大與最小PTS,i∈[1,n]。
算法輸出n路流媒體中每路媒體的編碼速率CodingSpeedi,t+1,傳輸速率與編碼速率的倍數(shù)Timesi,t+1,i∈[1,n]。
STEP1.設(shè)M為n路流媒體的集合,MEM(jìn)是滿足以下條件的集合對(duì)于ME中任意流媒體,與M中其它任意流媒體來(lái)源于不同的媒體服務(wù)器。對(duì)ME中所有流媒體并行執(zhí)行以下操作設(shè)媒體流的序號(hào)為jSTEP1.1當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延dj,t=0時(shí),則CodingSpeedj,t+1設(shè)置為將該路媒體支持的最高編碼速率、設(shè)置Timesj,t+1為2。
STEP1.2當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延0<dj,t≤d時(shí)若Losti,t≥Maxlosti且Timesi,t>1.5,設(shè)置CodingSpeedj,t+1為CodingSpeedj,t,設(shè)置Timesj,t+1為T(mén)imesj,t-0.5;若Losti,t≥Maxlosti且Timesi,t≤1.5且CodingSpeedj,t>Minbandi,設(shè)置CodingSpeedj,t+1為比CodingSpeedj,t低一級(jí)的編碼速率,設(shè)置Timesj,t+1為2;若Losti,t≥Maxlosti且Timesi,t≤1.5且CodingSpeedj,t≤Minbandi,設(shè)置CodingSpeedj,t+1為Minbandi,設(shè)置Timesj,t+1為1;若Losti,t≤Maxlosti且Timesi,t≤2.5,設(shè)置CodingSpeedj,t+1為CodingSpeedj,t,設(shè)置Timesj,t+1為T(mén)imesj,t+0.5;若Lostj,t≤Maxlosti且Timesi,t>2.5且CodingSpeedj,t不是最高的編碼速率,設(shè)置CodingSpeedj,t+1為比CodingSpeedj,t高一級(jí)的編碼速率,設(shè)置Timesj,t+1為2;若Losti,t≤Maxlosti且Timesi,t>2.5且CodingSpeedx是最高的編碼速率,設(shè)置CodingSpeedj,t+1為CodingSpeedj,t,設(shè)置Timesj,t+1為T(mén)imesi,t;當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延d<dj,t時(shí)若Losti,t≥Maxlosti且CodingSpeedj,t>Minbandi,設(shè)置CodingSpeedj,t+1為比CodingSpeedj,t低一級(jí)的編碼速率,設(shè)置Timesj,t+1為1;若Losti,t≥Maxlosti且CodingSpeedj,t≤Minbandi,設(shè)置CodingSpeedj,t+1為Minbandi,設(shè)置Timesj,t+1為1;若Losti,t≤Maxlosti且CodingSpeedj,t不是最高的編碼速率,設(shè)置CodingSpeedj,t+1為比CodingSpeedj,t高一級(jí)的編碼速率,設(shè)置Timesj,t+1為1;若Losti,t≤Maxlosti且Timesi,t>2.5且CodingSpeedj,t是最高的編碼速率,設(shè)置CodingSpeedj,t+1為CodingSpeedj,t,設(shè)置Timesj,t+1為1。
STEP2.設(shè)MM=M-ME,將MM劃分成若干個(gè)子集MM,k,k∈[1,m]。每個(gè)子集中的媒體來(lái)源于同一媒體服務(wù)器,各個(gè)子集中的媒體來(lái)源于不同的媒體服務(wù)器。
STEP3.在MM,k中,各路媒體應(yīng)具有相同丟包率,相同的倍速率、在緩沖區(qū)具有相同的時(shí)延,設(shè)MM,k的當(dāng)前丟包率為L(zhǎng)ostM,k,t、傳輸速率與編碼速率的倍數(shù)為T(mén)imesM,k,t、時(shí)延為dM,k,t,MM,k中各路媒體當(dāng)前編碼速率之和CodingSpeedM,k,t。LostM,k,t、dM,k,t與MM,k中任意一路媒體的丟包率、緩沖區(qū)延遲相同。對(duì)每個(gè)MM,k并行執(zhí)行以下操作STEP3.1 確定MM,k中每路媒體的優(yōu)先級(jí),其中音頻流優(yōu)先級(jí)為3,屏幕媒體流優(yōu)先級(jí)為2,視頻媒體流優(yōu)先級(jí)為1,同一類型的媒體具有相同的優(yōu)先級(jí)。
STEP3.2 當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延dM,k,t=0時(shí),對(duì)MM,k中任意一路媒體j,將CodingSpeedj,t+1設(shè)置為將該路媒體支持的最高編碼速率、設(shè)置Timesj,t+1為2。
STEP3.3 當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延0<dM,k,t≤d時(shí)若MM,k中存在一路媒體j,使得LostM,k,t≥Maxlostj且當(dāng)前Timesj,t>1.5,則保持MM,k中所有媒體的傳輸速率不變,設(shè)置Timesj,t+1為T(mén)imesj,t-0.5;若MM,k中存在一路媒體j,使得LostM,k,t≥Maxlostj且Timesi,t≤1.5,則在所有當(dāng)前編碼速率大于最小允許速率的媒體流中尋找優(yōu)先級(jí)最低的媒體流,假設(shè)為媒體l,設(shè)置CodingSpeedl,t+1為比CodingSpeedl,t低一級(jí)的編碼速率,設(shè)置MM,k所有媒體的倍速率為2。如果MM,k不存在編碼速率大于最小允許速率的媒體流,則設(shè)置MM,k中所有媒體的編碼速率為對(duì)應(yīng)的最小允許速率,設(shè)置MM,k所有媒體的倍速率為1。
若MM,k中任一媒體j,都滿足LostM,k,t≥Maxlostj,且Timesi,t≤2.5,設(shè)置CodingSpeedj,t+1為CodingSpeedj,t,設(shè)置Timesj,t+1為T(mén)imesj,t+0.5;若MM,k中任一媒體j,都滿足LostM,k,t≥Maxlostj,且Timesi,t>2.5,則在所有當(dāng)前編碼速率不是最高編碼速率的媒體流中尋找優(yōu)先級(jí)最高的媒體流,假設(shè)為媒體l,設(shè)置CodingSpeedl,t+1為比CodingSpeedl,t高一級(jí)的編碼速率,設(shè)置MM,k所有媒體的倍速率為2。若MM,k所有媒體的當(dāng)前編碼速率都是最高編碼速率,保持各路媒體的編碼速率與倍速率不變。當(dāng)緩沖區(qū)內(nèi)媒體的時(shí)延d<dM,k,t時(shí)若MM,k中存在一路媒體j,使得LostM,k,t≥Maxlostj,則在所有當(dāng)前編碼速率大于最小允許速率的媒體流中尋找優(yōu)先級(jí)最低的媒體流,假設(shè)為媒體l,設(shè)置CodingSpeedl,t+1為比CodingSpeedl,t低一級(jí)的編碼速率,設(shè)置MM,k所有媒體的倍速率為1。如果MM,k不存在編碼速率大于最小允許速率的媒體流,則設(shè)置MM,k中所有媒體的編碼速率為對(duì)應(yīng)的最小允許速率,設(shè)置MM,k所有媒體的倍速率為1。
若MM,k中任一媒體j,都滿足LostM,k,t≥Maxlostj,則在所有當(dāng)前編碼速率不是最高編碼速率的媒體流中尋找優(yōu)先級(jí)最高的媒體流,假設(shè)為媒體l,設(shè)置CodingSpeedl,t+1為比CodingSpeedl,t高一級(jí)的編碼速率,設(shè)置MM,k所有媒體的倍速率為1。若MM,k所有媒體的當(dāng)前編碼速率都是最高編碼速率,保持各路媒體的編碼速率,設(shè)置MM,k所有媒體的倍速率為1。
權(quán)利要求
1.一種多源流媒體傳輸QoS(Quality of Service)控制方法,其特征在于,按以下步驟進(jìn)行首先,采用多源流媒體語(yǔ)言MSML解釋器從MSML文件中獲得多源流媒體的元數(shù)據(jù)信息,該信息中的流媒體類型、傳輸質(zhì)量要求將用于流媒體數(shù)據(jù)傳輸中的QoS控制;然后,采用定值帶寬檢測(cè)模塊根據(jù)RTP/RTCP協(xié)議判斷當(dāng)前網(wǎng)絡(luò)狀況所能傳輸數(shù)據(jù)的最高速率;根據(jù)此結(jié)果,多源流媒體帶寬分配模塊結(jié)合流媒體類型、傳輸質(zhì)量要求、所支持的碼率,獲得每路流媒體的在當(dāng)前網(wǎng)絡(luò)狀況下可用的最高編碼速率以及編碼速率倍數(shù)的傳輸速率;定值帶寬檢測(cè)模塊與多源流媒體帶寬分配模塊交替運(yùn)行,隨時(shí)根據(jù)最新的網(wǎng)絡(luò)可用帶寬,獲得最高可用的編碼速率及倍數(shù)傳輸速率;最后,數(shù)據(jù)傳輸控制模塊根據(jù)用戶的VCR命令與帶寬分配結(jié)果,向RTP/RTCP模塊發(fā)送更編碼速率及倍數(shù)傳輸速率指令;RTP/RTCP模塊在數(shù)據(jù)傳輸控制模塊的控制下進(jìn)行流媒體的實(shí)時(shí)傳輸。
2.根據(jù)權(quán)利要求1所述的多源流媒體傳輸QoS控制方法,其特征在于所述的多源流媒體語(yǔ)言MSML是一種基于XML的、支持多源流媒體傳輸QoS控制與同步播放的描述語(yǔ)言;MSML描述的信息包括三種類型一、各路流媒體的基本信息,包括名稱、URL、類型;二、各路流媒體的傳輸質(zhì)量要求,包括編碼速率范圍、最大允許延遲、最大允許丟包率;三、各路流媒體播放過(guò)程中呈現(xiàn)信息,包括視頻窗口初始大小、位置。
3.根據(jù)權(quán)利要求1所述的多源流媒體傳輸QoS控制方法,其特征在于所述的定值帶寬檢測(cè)是指采用RTP/RTCP協(xié)議檢測(cè)并獲得從媒體所支持的最低速率到網(wǎng)絡(luò)最高可用傳輸速率間各速率下流媒體傳輸丟包率,并將這一丟包率與流媒體傳輸允許的最大丟包率進(jìn)行比較,如果比預(yù)定丟包率小,則認(rèn)為當(dāng)前網(wǎng)絡(luò)狀況能滿足該速率下的數(shù)據(jù)傳輸,否則就認(rèn)為當(dāng)前網(wǎng)絡(luò)狀況不能滿足該速率下的數(shù)據(jù)傳輸。
4.根據(jù)權(quán)利要求1所述的多源流媒體傳輸QoS控制方法,其特征在于所述的多源流媒體帶寬分配是指根據(jù)定值帶寬檢測(cè)的結(jié)果,調(diào)整各路流媒體的編碼速率與傳輸速率,調(diào)整分以下兩種情況處理一、若某路流媒體來(lái)自于與其它流媒體不同的流媒體服務(wù)器時(shí),則采用定值帶寬檢測(cè)算法從高到低檢測(cè)該路流媒體的各級(jí)編碼速率,直到找到當(dāng)前網(wǎng)絡(luò)狀態(tài)支持的最高編碼速率,若緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小當(dāng)前呈現(xiàn)時(shí)間戳PTS(PresentationTimeStamp)之差小于特定閾值,則檢測(cè)網(wǎng)絡(luò)狀態(tài)所支持該速率的倍速率;若緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小PTS之差大于特定閾值,將編碼速率作為倍速率;最后,將當(dāng)前網(wǎng)絡(luò)狀態(tài)所支持的最高編碼速率作為該路流媒體的編碼速率,倍速率作為實(shí)際傳輸速率;二、若其中幾路流媒體來(lái)自于同一流媒體服務(wù)器,則根據(jù)媒體類型的優(yōu)先級(jí)確定這些媒體流總編碼速率的侯選集合,并通過(guò)定值帶寬檢測(cè)算法選擇最高的總編碼速率,若當(dāng)緩沖區(qū)為空或其中媒體數(shù)據(jù)包的最大與最小PTS之差大于特定閾值還需要用定值帶寬檢測(cè)相應(yīng)的倍速率,否則,將最高的總編碼速率作為總倍速率;最后,將當(dāng)前網(wǎng)絡(luò)狀態(tài)所支持的最高編碼速率作為這些媒體的編碼速率,并根據(jù)總編碼速率中各路流媒體速率所占的比重將總倍速率相應(yīng)地分解到各路媒體作為實(shí)際傳輸速率。
全文摘要
本發(fā)明公開(kāi)了一種多源流媒體傳輸QoS控制方法,由多源流媒體描述語(yǔ)言解釋器、多源流媒體帶寬分配、定值帶寬檢測(cè)、數(shù)據(jù)傳輸控制以及RTP/RTCP五個(gè)模塊組成。MSML解釋器根據(jù)MSML文件獲得各路流媒體的URL、傳輸質(zhì)量要求;多源流媒體帶寬分配模塊根據(jù)流媒體傳輸?shù)腝oS要求以及檢測(cè)模塊得到的帶寬值確定各路流媒體的傳輸速率與編碼速率;數(shù)據(jù)傳輸控制模塊根據(jù)VCR命令與緩沖區(qū)狀態(tài)對(duì)媒體傳輸進(jìn)行控制;RTP/RTCP模塊實(shí)現(xiàn)流媒體的實(shí)時(shí)有序傳輸。本發(fā)明可實(shí)現(xiàn)多路多源并發(fā)流媒體傳輸質(zhì)量的協(xié)調(diào)控制,以降低傳輸延遲與丟包率,適用于多窗口視頻點(diǎn)播、網(wǎng)絡(luò)視頻監(jiān)控、網(wǎng)絡(luò)教育課件點(diǎn)播、多角度/多場(chǎng)景實(shí)況轉(zhuǎn)播等應(yīng)用領(lǐng)域。
文檔編號(hào)H04L12/24GK1744592SQ20051009608
公開(kāi)日2006年3月8日 申請(qǐng)日期2005年9月29日 優(yōu)先權(quán)日2005年9月29日
發(fā)明者鄭慶華, 劉均, 彭挺, 林杰, 伍洋, 張帆, 王晨旭, 呂偉梅, 張之明, 丁凱, 江丕峻, 姜山, 楊冬, 陳洪 申請(qǐng)人:西安交通大學(xué)