亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于mpeg-4的流媒體服務器端配置緩沖區(qū)的方法及系統(tǒng)的制作方法

文檔序號:7943343閱讀:505來源:國知局
專利名稱:基于mpeg-4的流媒體服務器端配置緩沖區(qū)的方法及系統(tǒng)的制作方法
技術領域
本發(fā)明涉及通信技術領域,尤其涉及一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法及系統(tǒng)。
背景技術
服務器端緩沖技術是一種應用級視頻質(zhì)量控制技術,其想是在服務器端劃分一塊內(nèi)存作為緩沖區(qū),通過緩沖一定數(shù)據(jù)量來平滑網(wǎng)絡抖動。如圖1所示,filling_rate(t)表示t刻已經(jīng)編碼的視頻流填入緩沖區(qū)的速度,如果要求編碼視流無損失地填入緩沖區(qū),這時,filling_rate(t)實際上等于當視頻編碼碼率。Outing_rate (t)表示t時刻視頻流流出緩沖的速度,因為視頻流流出后隨即將通過網(wǎng)絡發(fā)送出去,所以0uting_rate(t)實際上等于當前網(wǎng)絡發(fā)送速率。BuffeHt)表示t時刻緩沖區(qū)已經(jīng)緩存視頻流的總大小。由于當前IP網(wǎng)絡的盡最大能力的設計思想和底層硬件的局限性還不能夠提供充分可靠的服務質(zhì)量保證(QoQ,因此在C/S模式傳輸時要引入服務器端緩沖技術來彌補當前網(wǎng)絡傳輸?shù)娜毕?。MPEG-4的視頻編碼流碼率波動極大,它比一般的C/S模式傳輸更需要引入緩沖區(qū)來吸收這種碼率波動。服務器端緩沖區(qū)對于基于MPEG-4的流媒體系統(tǒng)是非常重要的。近年來,人們對于流媒體服務器端緩沖區(qū)管理方法提出了一些方法和設想,它們采用了不同的思路和技術方案。歸納總結,圖2所示是一種典型的MPEG-4視頻流網(wǎng)絡傳輸架構。在發(fā)送端,由自適應的MPEG-4編碼器對原始視頻流進行編碼、打包后傳遞給RTP/ UDP/IP模塊,通過網(wǎng)絡傳輸?shù)浇邮斩?。這些成功接收的包以發(fā)送端相反的順序通過RTP/ UDP/IP模塊,由MPEG-4解碼器進行解碼。同時接收端根據(jù)數(shù)據(jù)包到達的情況計算出網(wǎng)絡傳輸狀況。通過實時傳輸控制協(xié)議(RTCP)反饋給發(fā)送端。發(fā)送端根據(jù)這些反饋信息調(diào)整編碼參數(shù)。在圖2所示的典型的視頻流傳輸框架中,現(xiàn)有的服務器緩沖算法主要有兩種途徑。1、編碼前調(diào)整編碼幀率。2、編碼后丟幀控制。當緩沖區(qū)占有率超過50%時,就假定它已經(jīng)開始出現(xiàn)溢出的苗頭,從而開始隔幀編碼。這種假定在帶寬資源很窄的網(wǎng)絡中或在無線視頻傳輸中尤為合理的,在這些情形下, 緩沖區(qū)的數(shù)據(jù)還不一定馬上就會被調(diào)度出去,而編碼后的MPEG-4視頻數(shù)據(jù)卻要不斷地進入緩沖區(qū),如果此時不控制進入緩沖區(qū)的MPEG-4速率,緩沖區(qū)就會有溢出的危險。一旦緩沖區(qū)剩余容量達到一頂?shù)木鋾r,現(xiàn)有的算法都是采用拋棄一些非重要的楨來減緩緩沖區(qū)的壓力。現(xiàn)有技術解決了緩沖區(qū)溢出的危險,但是卻影響了流媒體的質(zhì)量,使得解碼出來的圖像視頻存在一定的失真。

發(fā)明內(nèi)容
本文提出的服務器端緩沖區(qū)動態(tài)配置算法充分考慮了 MPEG-4視頻編碼流的特點,在盡量保證不丟幀的前提下,通過動態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預防緩沖區(qū)溢出和提高有效解碼率,進一步提高了視頻質(zhì)量。本算法非常適合系統(tǒng)資源足夠、帶寬窄或強實時性的視頻流式傳輸。為了解決上述問題,本發(fā)明提出了一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法,所述方法包括計算當前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預設的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大??;如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動態(tài)丟幀算法釋放幀。所述調(diào)整現(xiàn)有緩沖區(qū)的大小計算式為緩沖區(qū)占有率*緩沖區(qū)大小*(1+(1_緩沖區(qū)占有率)*0. 1)。所述通過控制幀率來調(diào)整MPEG-4視頻編碼碼率包括當緩存占有率大于第一閾值占有率且小于第三閾值占有率時,對MPEG-4視頻編碼進行隔幀編碼;當緩存占有率大于第三閾值占有率且小于第二閾值占有率時,對MPEG-4視頻編碼進行隔三幀編碼。所述通過動態(tài)丟幀算法釋放幀包括判斷緩沖區(qū)的空閑區(qū)是否大于幀長,如果緩沖區(qū)的空閑區(qū)小于幀長,則先將緩沖區(qū)重要性低的幀釋放。所述通過動態(tài)丟幀算法釋放幀還包括如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長,則將即將要進入的幀丟棄。所述第一閾值占有率在百分之五十以上。相應的,本發(fā)明實施例還公開了一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的系統(tǒng),包括計算模塊,用于計算當前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊,用于判斷緩存占有率與預設的第一閾值占有率和第二閾值占有率間的關系,并將判斷結果返回到處理模塊中處理;處理模塊,用于根據(jù)判斷模塊反饋的判斷結果進行處理,所述處理模塊包括第一處理單元,用于在所述緩存占有率小于第一閾值占有率時,調(diào)整現(xiàn)有緩沖區(qū)的大小;第二處理單元,用于在所述緩存占有率超過第一閾值占有率且小于第二閾值占有率時,通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;第三處理單元,用于在所述緩存占有率超過第二閾值占有率時,通過動態(tài)丟幀算法釋放幀。在本發(fā)明實施例中,算法的前一部分能夠有效地防止緩沖區(qū)的溢出,這是因為在網(wǎng)絡帶寬一定的情況下傳輸占有帶寬巨大的視頻數(shù)據(jù),動態(tài)配置緩沖區(qū)充分利用了資源且保證了質(zhì)量。算法的后兩部分在充分考慮到系統(tǒng)資源緊缺的前提下,考慮到了考慮了 MPEG-4的編解碼原理,能夠有效地提高視頻質(zhì)量。


為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1是現(xiàn)有技術中服務器端緩沖區(qū)描述結構示例圖;圖2是現(xiàn)有技術中視頻流傳輸架構圖;圖3是本發(fā)明實施例中的基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法流程圖;圖4是本發(fā)明實施例中的基于MPEG-4的流媒體服務器端配置緩沖區(qū)的系統(tǒng)示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施中的基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法,主要包括計算當前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預設的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大小;如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動態(tài)丟幀算法釋放幀。根據(jù)圖2所示是一種典型的MPEG-4視頻流網(wǎng)絡傳輸架構,實質(zhì)上是依據(jù)接收端計算出來的Outing_rate(t)來調(diào)節(jié)filling_rate (t)。然而這種調(diào)節(jié)方式需要反饋控制協(xié)議的參與而且編碼參數(shù)調(diào)整復雜,會增加系統(tǒng)資源開銷和網(wǎng)絡帶寬的浪費。如果改成根據(jù) Buffer (t)來調(diào)節(jié)filling_rate (t),就無須反饋控制協(xié)議的參與,直接就用UDP協(xié)議傳輸也可達到服務器緩沖區(qū)動態(tài)調(diào)整的目的。由前面描述可以知道,理想情況下,t時刻緩沖區(qū)已經(jīng)緩存視頻流的總大小BuffeHt)等于0 t時間段內(nèi)緩沖區(qū)填入的數(shù)據(jù)總和減去0 t時間段內(nèi)緩沖區(qū)流出的數(shù)據(jù)總和,可用式(2)表示。Buffer{t) = ( Filling _ rate{t) - ( Outing _ rate{t)(2)
Jo—Jo—由式⑵變形成式(3)
t fitFilling _ rate =Buffer(t) + Outing _ rate(t)(3) Jo — Jo —由式(3)可以清楚地看出,filling_rate(t)調(diào)節(jié)的依據(jù)有兩種(1)根據(jù)Outing_rate(t)的變化來調(diào)節(jié);
(2)是根據(jù)Buffer_filied⑴的值來調(diào)節(jié)。緩沖區(qū)管理控制算法分前后三部分前一部分調(diào)整buffer的大小來調(diào)節(jié)buffer, 當達到系統(tǒng)資源上限的時候就采用最后一部門代碼;第二部分調(diào)整MPEG-4視頻編碼器編碼參數(shù)來實現(xiàn)對filling_rate(t)的調(diào)節(jié);后一部分根據(jù)各類幀重要性來淘汰重要性低的視頻幀占據(jù)緩沖區(qū),保證當前緩存的視頻幀都是最重要的。圖3示出了本發(fā)明實施例中的基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法流程圖,其主要包括如下步驟S301 計算當前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;S302:判斷緩存占有率是否大于第一預先設置的第一閾值占有率,如果該緩存占有率小于預先設置的第一閾值占有率,則進行S303,如果該緩存占有率大于預先設置的第一閾值占有率,則進行S304 ;S303 調(diào)整現(xiàn)有的緩沖區(qū)的大小;服務器端緩沖區(qū)的起始大小是一個固定的值,比如說這里當BuffeHt)達到50% 或者60%時的緩沖區(qū)的大小的時候,緩沖區(qū)采用一定的算法隨之增加。當緩沖區(qū)達到資源上限時,緩沖區(qū)不變而采用第二部分調(diào)整MPEG-4視頻編碼器編碼參數(shù)算法。比如系統(tǒng)循環(huán)讀取MPEG-4視頻流,在計算緩沖區(qū)占有率后,如果占有率未達到第一閾值70%情況下,調(diào)整現(xiàn)有緩沖區(qū)的大小為緩沖區(qū)占有率*緩沖區(qū)大小(1+(1-緩沖區(qū)占有率)*1/10)。S304:判斷緩存占有率是否大于預先設置的第二閾值占有率,如果緩存占有率大于預先設置的第二閾值占有率,則進入S305,如果緩存占有率小于預先設置的第二閾值占有率,則進入S306 ;S305 則通過幀控制來調(diào)整MPEG-4視頻編碼碼率;MPEG-4視頻編碼器的碼率之所以能夠調(diào)節(jié)主要有賴于它編碼的可伸縮性。視頻的伸縮性包括空間可伸縮性、時間可伸縮性、信噪比可伸縮性3種??臻g可伸縮性和信噪比可伸縮性影響視頻流的畫面質(zhì)量,時間可伸縮性影響視頻流的連續(xù)性,選擇何種伸縮性實際上取決于畫面質(zhì)量和連續(xù)性之間的取舍。本文選取時間可伸縮性(即控制幀率)來調(diào)整 MPEG-4視頻編碼碼率。衡量視頻傳輸技術的好壞,不能單純以如何提高網(wǎng)絡利用率為標準。一方面,網(wǎng)絡傳輸?shù)囊曨l流越多并不代表在解碼時解出的有效視頻幀越多。因為MPEG-4視頻編碼采用了幀間預測機制,如果參考幀丟了,在接收端由于錯誤傳播將造成相當一段視頻無法使用, 所以在回放時會出現(xiàn)停頓現(xiàn)象。另一方面,網(wǎng)絡傳輸?shù)囊曨l流越多并不代表它不連續(xù)性丟幀,有時情愿接收的幀數(shù)少一些,只要視頻幀丟失得較為均勻就行。算法前一部分選取時間可伸縮性(即控制幀率)來調(diào)整MPEG-4視頻編碼碼率除了起預防緩沖區(qū)溢出的作用外,實際上還起到了預防連續(xù)性丟幀的作用。具體通過幀控制來調(diào)整MPEG-4視頻編碼碼率還可以實現(xiàn)細化過程,比如當緩存占有率大于第一閾值占有率且小于第三閾值占有率時,對MPEG-4視頻編碼進行隔幀編碼;當緩存占有率大于第三閾值占有率且小于第二閾值占有率時,對MPEG-4視頻編碼進行隔三幀編碼。這里的第一閾值占有率小于第三閾值占有率,第三閾值占有率小于第二閾值占有率。S306 則通過動態(tài)丟幀算法釋放幀。至于如何提高傳輸視頻幀的有效解碼,可先從考察MPEG-4的3類幀入手。MPEG-4 視頻幀分為3類I-V0P,P-V0P和B-V0P。為了方便表述不妨簡稱為I幀、P幀和B幀。3類編碼幀的重要性依次為I幀、P幀和B幀。同樣是P幀,前面的比后面的更重要(因為后面的P幀要參考前面的P幀才能解碼)。在緩沖區(qū)不得不丟幀的情況下,先將緩沖區(qū)中重要性低的幀釋放,直至有足夠空間為止,如果緩沖區(qū)中該釋放的幀都釋放了還是沒有足夠空間, 這時才把即將要進入的幀丟棄。具體流程如下首先需要判斷緩沖區(qū)的空閑區(qū)是否大于幀長,大于則編碼后直接進入緩沖區(qū),如果不是的話,需要從后往前找到一幀重要性低的VOP釋放。需要說明的是,本實施例中的第一閾值占有率一般設置在50%以上,比如為 50%,或者60%,或者100%,這里的第一閾值占有率、第二閾值占有率、第三閾值占有率都小于100%,基于上述實現(xiàn)過程中,這里的第一閾值占有率可以取值為70%、第二閾值占有率可以取值為90 %、第三閾值占有率可以取值為80%,當然這里的取值可以針對具體應用和實施情況來取值。相應的,本發(fā)明實施例還提供了一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的系統(tǒng),包括計算模塊41,用于計算當前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊42,用于判斷緩存占有率與預設的第一閾值占有率和第二閾值占有率間的關系,并將判斷結果返回到處理模塊中處理;這里的判斷模塊可以直接判斷緩存占有率與第一閾值占有率、第二閾值占有率甚至是第三閾值占有率之間的關系,并可以根據(jù)判斷關系將結果返回到處理單元中的各個處理單元中執(zhí)行相應的任務。處理模塊43,用于根據(jù)判斷模塊反饋的判斷結果進行處理,所述處理模塊包括第一處理單元431,用于在所述緩存占有率小于第一閾值時,調(diào)整現(xiàn)有緩沖區(qū)的大??;這里的調(diào)整現(xiàn)有緩沖區(qū)的大小計算式可以是緩沖區(qū)占有率*緩沖區(qū)大小*(1+(1-緩沖區(qū)占有率)*0. 1)。第二處理單元432,用于在所述緩存占有率超過第一閾值且小于第二閾值占有率時,通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;具體的情況可以是,當緩存占有率大于第一閾值占有率且小于第三閾值占有率時,對MPEG-4視頻編碼進行隔幀編碼;當緩存占有率大于第三閾值占有率且小于第二閾值占有率時,對MPEG-4視頻編碼進行隔三幀編碼。第三處理單元433,用于在所述緩存占有率超過第二閾值占有率時,通過動態(tài)丟幀算法釋放幀。具體的,當判斷緩沖區(qū)的空閑區(qū)是否大于幀長,如果緩沖區(qū)的空閑區(qū)小于幀長,則先將緩沖區(qū)重要性低的幀釋放。如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長,則將即將要進入的幀丟棄。需要說明的是,本實施例中的第一閾值占有率一般設置在50%以上,比如為 50%,或者60%,或者100%,這里的第一閾值占有率、第二閾值占有率、第三閾值占有率都小于100%,基于上述實現(xiàn)過程中,這里的第一閾值占有率可以取值為70%、第二閾值占有率可以取值為90%、第三閾值占有率可以取值為80%,當然這里的取值可以針對具體應用和實施情況來取值。本文提出的服務器端緩沖區(qū)動態(tài)配置算法充分考慮了 MPEG-4視頻編碼流的特點,在盡量保證不丟幀的前提下,通過動態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預防緩沖區(qū)溢出和提高有效解碼率,進一步提高了視頻質(zhì)量。本算法非常適合系統(tǒng)資源足夠、帶寬窄或強實時性的視頻流式傳輸。本發(fā)明實施例中的算法的前一部分能夠有效地防止緩沖區(qū)的溢出,這是因為在網(wǎng)絡帶寬一定的情況下傳輸占有帶寬巨大的視頻數(shù)據(jù),動態(tài)配置緩沖區(qū)充分利用了資源且保證了質(zhì)量。算法的后兩部分在充分考慮到系統(tǒng)資源緊缺的前提下,考慮到了考慮了 MPEG-4的編解碼原理,能夠有效地提高視頻質(zhì)量。
以上對本發(fā)明實施例所提供的,進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
權利要求
1.一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法,其特征在于,包括 計算當前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預設的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大?。?如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整 MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動態(tài)丟幀算法釋放幀。
2.如權利要求1所述的方法,其特征在于,所述調(diào)整現(xiàn)有緩沖區(qū)的大小計算式為緩沖區(qū)占有率*緩沖區(qū)大小* (1+(1"緩沖區(qū)占有率)*0. 1)。
3.如權利要求1所述的方法,其特征在于,所述通過控制幀率來調(diào)整MPEG-4視頻編碼碼率包括當緩存占有率大于第一閾值占有率且小于第三閾值占有率時,對MPEG-4視頻編碼進行隔幀編碼;當緩存占有率大于第三閾值占有率且小于第二閾值占有率時,對MPEG-4視頻編碼進行隔三幀編碼。
4.如權利要求1所述的方法,其特征在于,所述通過動態(tài)丟幀算法釋放幀包括判斷緩沖區(qū)的空閑區(qū)是否大于幀長,如果緩沖區(qū)的空閑區(qū)小于幀長,則先將緩沖區(qū)重要性低的幀釋放。
5.如權利要求4所述的方法,其特征在于,所述通過動態(tài)丟幀算法釋放幀還包括 如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長,則將即將要進入的幀丟棄。
6.如權利要求1至5任一項所述的方法,其特征在于,所述第一閾值占有率在百分之五十以上。
7.一種基于MPEG-4的流媒體服務器端配置緩沖區(qū)的系統(tǒng),其特征在于,包括 計算模塊,用于計算當前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊,用于判斷緩存占有率與預設的第一閾值占有率和第二閾值占有率間的關系,并將判斷結果返回到處理模塊中處理;處理模塊,用于根據(jù)判斷模塊反饋的判斷結果進行處理,所述處理模塊包括 第一處理單元,用于在所述緩存占有率小于第一閾值占有率時,調(diào)整現(xiàn)有緩沖區(qū)的大第二處理單元,用于在所述緩存占有率超過第一閾值占有率且小于第二閾值占有率時,通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;第三處理單元,用于在所述緩存占有率超過第二閾值占有率時,通過動態(tài)丟幀算法釋放幀。
全文摘要
本發(fā)明實施例公開了基于MPEG-4的流媒體服務器端配置緩沖區(qū)的方法及系統(tǒng),其中該方法包括計算當前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預設的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大??;如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動態(tài)丟幀算法釋放幀。本發(fā)明實施例在盡量保證不丟幀的前提下,通過動態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預防緩沖區(qū)溢出和提高有效解碼率,進一步提高了視頻質(zhì)量。
文檔編號H04N21/6437GK102378065SQ20111031837
公開日2012年3月14日 申請日期2011年10月19日 優(yōu)先權日2011年10月19日
發(fā)明者羅春耕, 羅晴明 申請人:江西省南城縣網(wǎng)信電子有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1