專利名稱:基于mpeg-4的流媒體服務(wù)器端配置緩沖區(qū)的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法及系統(tǒng)。
背景技術(shù):
服務(wù)器端緩沖技術(shù)是一種應(yīng)用級(jí)視頻質(zhì)量控制技術(shù),其想是在服務(wù)器端劃分一塊內(nèi)存作為緩沖區(qū),通過緩沖一定數(shù)據(jù)量來平滑網(wǎng)絡(luò)抖動(dòng)。如圖1所示,filling_rate(t)表示t刻已經(jīng)編碼的視頻流填入緩沖區(qū)的速度,如果要求編碼視流無損失地填入緩沖區(qū),這時(shí),filling_rate(t)實(shí)際上等于當(dāng)視頻編碼碼率。Outing_rate (t)表示t時(shí)刻視頻流流出緩沖的速度,因?yàn)橐曨l流流出后隨即將通過網(wǎng)絡(luò)發(fā)送出去,所以0uting_rate(t)實(shí)際上等于當(dāng)前網(wǎng)絡(luò)發(fā)送速率。BuffeHt)表示t時(shí)刻緩沖區(qū)已經(jīng)緩存視頻流的總大小。由于當(dāng)前IP網(wǎng)絡(luò)的盡最大能力的設(shè)計(jì)思想和底層硬件的局限性還不能夠提供充分可靠的服務(wù)質(zhì)量保證(QoQ,因此在C/S模式傳輸時(shí)要引入服務(wù)器端緩沖技術(shù)來彌補(bǔ)當(dāng)前網(wǎng)絡(luò)傳輸?shù)娜毕?。MPEG-4的視頻編碼流碼率波動(dòng)極大,它比一般的C/S模式傳輸更需要引入緩沖區(qū)來吸收這種碼率波動(dòng)。服務(wù)器端緩沖區(qū)對(duì)于基于MPEG-4的流媒體系統(tǒng)是非常重要的。近年來,人們對(duì)于流媒體服務(wù)器端緩沖區(qū)管理方法提出了一些方法和設(shè)想,它們采用了不同的思路和技術(shù)方案。歸納總結(jié),圖2所示是一種典型的MPEG-4視頻流網(wǎng)絡(luò)傳輸架構(gòu)。在發(fā)送端,由自適應(yīng)的MPEG-4編碼器對(duì)原始視頻流進(jìn)行編碼、打包后傳遞給RTP/ UDP/IP模塊,通過網(wǎng)絡(luò)傳輸?shù)浇邮斩恕_@些成功接收的包以發(fā)送端相反的順序通過RTP/ UDP/IP模塊,由MPEG-4解碼器進(jìn)行解碼。同時(shí)接收端根據(jù)數(shù)據(jù)包到達(dá)的情況計(jì)算出網(wǎng)絡(luò)傳輸狀況。通過實(shí)時(shí)傳輸控制協(xié)議(RTCP)反饋給發(fā)送端。發(fā)送端根據(jù)這些反饋信息調(diào)整編碼參數(shù)。在圖2所示的典型的視頻流傳輸框架中,現(xiàn)有的服務(wù)器緩沖算法主要有兩種途徑。1、編碼前調(diào)整編碼幀率。2、編碼后丟幀控制。當(dāng)緩沖區(qū)占有率超過50%時(shí),就假定它已經(jīng)開始出現(xiàn)溢出的苗頭,從而開始隔幀編碼。這種假定在帶寬資源很窄的網(wǎng)絡(luò)中或在無線視頻傳輸中尤為合理的,在這些情形下, 緩沖區(qū)的數(shù)據(jù)還不一定馬上就會(huì)被調(diào)度出去,而編碼后的MPEG-4視頻數(shù)據(jù)卻要不斷地進(jìn)入緩沖區(qū),如果此時(shí)不控制進(jìn)入緩沖區(qū)的MPEG-4速率,緩沖區(qū)就會(huì)有溢出的危險(xiǎn)。一旦緩沖區(qū)剩余容量達(dá)到一頂?shù)木鋾r(shí),現(xiàn)有的算法都是采用拋棄一些非重要的楨來減緩緩沖區(qū)的壓力?,F(xiàn)有技術(shù)解決了緩沖區(qū)溢出的危險(xiǎn),但是卻影響了流媒體的質(zhì)量,使得解碼出來的圖像視頻存在一定的失真。
發(fā)明內(nèi)容
本文提出的服務(wù)器端緩沖區(qū)動(dòng)態(tài)配置算法充分考慮了 MPEG-4視頻編碼流的特點(diǎn),在盡量保證不丟幀的前提下,通過動(dòng)態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預(yù)防緩沖區(qū)溢出和提高有效解碼率,進(jìn)一步提高了視頻質(zhì)量。本算法非常適合系統(tǒng)資源足夠、帶寬窄或強(qiáng)實(shí)時(shí)性的視頻流式傳輸。為了解決上述問題,本發(fā)明提出了一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法,所述方法包括計(jì)算當(dāng)前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預(yù)設(shè)的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大??;如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動(dòng)態(tài)丟幀算法釋放幀。所述調(diào)整現(xiàn)有緩沖區(qū)的大小計(jì)算式為緩沖區(qū)占有率*緩沖區(qū)大小*(1+(1_緩沖區(qū)占有率)*0. 1)。所述通過控制幀率來調(diào)整MPEG-4視頻編碼碼率包括當(dāng)緩存占有率大于第一閾值占有率且小于第三閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔幀編碼;當(dāng)緩存占有率大于第三閾值占有率且小于第二閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔三幀編碼。所述通過動(dòng)態(tài)丟幀算法釋放幀包括判斷緩沖區(qū)的空閑區(qū)是否大于幀長(zhǎng),如果緩沖區(qū)的空閑區(qū)小于幀長(zhǎng),則先將緩沖區(qū)重要性低的幀釋放。所述通過動(dòng)態(tài)丟幀算法釋放幀還包括如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長(zhǎng),則將即將要進(jìn)入的幀丟棄。所述第一閾值占有率在百分之五十以上。相應(yīng)的,本發(fā)明實(shí)施例還公開了一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的系統(tǒng),包括計(jì)算模塊,用于計(jì)算當(dāng)前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊,用于判斷緩存占有率與預(yù)設(shè)的第一閾值占有率和第二閾值占有率間的關(guān)系,并將判斷結(jié)果返回到處理模塊中處理;處理模塊,用于根據(jù)判斷模塊反饋的判斷結(jié)果進(jìn)行處理,所述處理模塊包括第一處理單元,用于在所述緩存占有率小于第一閾值占有率時(shí),調(diào)整現(xiàn)有緩沖區(qū)的大小;第二處理單元,用于在所述緩存占有率超過第一閾值占有率且小于第二閾值占有率時(shí),通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;第三處理單元,用于在所述緩存占有率超過第二閾值占有率時(shí),通過動(dòng)態(tài)丟幀算法釋放幀。在本發(fā)明實(shí)施例中,算法的前一部分能夠有效地防止緩沖區(qū)的溢出,這是因?yàn)樵诰W(wǎng)絡(luò)帶寬一定的情況下傳輸占有帶寬巨大的視頻數(shù)據(jù),動(dòng)態(tài)配置緩沖區(qū)充分利用了資源且保證了質(zhì)量。算法的后兩部分在充分考慮到系統(tǒng)資源緊缺的前提下,考慮到了考慮了 MPEG-4的編解碼原理,能夠有效地提高視頻質(zhì)量。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。圖1是現(xiàn)有技術(shù)中服務(wù)器端緩沖區(qū)描述結(jié)構(gòu)示例圖;圖2是現(xiàn)有技術(shù)中視頻流傳輸架構(gòu)圖;圖3是本發(fā)明實(shí)施例中的基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法流程圖;圖4是本發(fā)明實(shí)施例中的基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的系統(tǒng)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施中的基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法,主要包括計(jì)算當(dāng)前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預(yù)設(shè)的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大?。蝗绻鼍彺嬲加新食^第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動(dòng)態(tài)丟幀算法釋放幀。根據(jù)圖2所示是一種典型的MPEG-4視頻流網(wǎng)絡(luò)傳輸架構(gòu),實(shí)質(zhì)上是依據(jù)接收端計(jì)算出來的Outing_rate(t)來調(diào)節(jié)filling_rate (t)。然而這種調(diào)節(jié)方式需要反饋控制協(xié)議的參與而且編碼參數(shù)調(diào)整復(fù)雜,會(huì)增加系統(tǒng)資源開銷和網(wǎng)絡(luò)帶寬的浪費(fèi)。如果改成根據(jù) Buffer (t)來調(diào)節(jié)filling_rate (t),就無須反饋控制協(xié)議的參與,直接就用UDP協(xié)議傳輸也可達(dá)到服務(wù)器緩沖區(qū)動(dòng)態(tài)調(diào)整的目的。由前面描述可以知道,理想情況下,t時(shí)刻緩沖區(qū)已經(jīng)緩存視頻流的總大小BuffeHt)等于0 t時(shí)間段內(nèi)緩沖區(qū)填入的數(shù)據(jù)總和減去0 t時(shí)間段內(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, 當(dāng)達(dá)到系統(tǒng)資源上限的時(shí)候就采用最后一部門代碼;第二部分調(diào)整MPEG-4視頻編碼器編碼參數(shù)來實(shí)現(xiàn)對(duì)filling_rate(t)的調(diào)節(jié);后一部分根據(jù)各類幀重要性來淘汰重要性低的視頻幀占據(jù)緩沖區(qū),保證當(dāng)前緩存的視頻幀都是最重要的。圖3示出了本發(fā)明實(shí)施例中的基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法流程圖,其主要包括如下步驟S301 計(jì)算當(dāng)前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;S302:判斷緩存占有率是否大于第一預(yù)先設(shè)置的第一閾值占有率,如果該緩存占有率小于預(yù)先設(shè)置的第一閾值占有率,則進(jìn)行S303,如果該緩存占有率大于預(yù)先設(shè)置的第一閾值占有率,則進(jìn)行S304 ;S303 調(diào)整現(xiàn)有的緩沖區(qū)的大?。环?wù)器端緩沖區(qū)的起始大小是一個(gè)固定的值,比如說這里當(dāng)BuffeHt)達(dá)到50% 或者60%時(shí)的緩沖區(qū)的大小的時(shí)候,緩沖區(qū)采用一定的算法隨之增加。當(dāng)緩沖區(qū)達(dá)到資源上限時(shí),緩沖區(qū)不變而采用第二部分調(diào)整MPEG-4視頻編碼器編碼參數(shù)算法。比如系統(tǒng)循環(huán)讀取MPEG-4視頻流,在計(jì)算緩沖區(qū)占有率后,如果占有率未達(dá)到第一閾值70%情況下,調(diào)整現(xiàn)有緩沖區(qū)的大小為緩沖區(qū)占有率*緩沖區(qū)大小(1+(1-緩沖區(qū)占有率)*1/10)。S304:判斷緩存占有率是否大于預(yù)先設(shè)置的第二閾值占有率,如果緩存占有率大于預(yù)先設(shè)置的第二閾值占有率,則進(jìn)入S305,如果緩存占有率小于預(yù)先設(shè)置的第二閾值占有率,則進(jìn)入S306 ;S305 則通過幀控制來調(diào)整MPEG-4視頻編碼碼率;MPEG-4視頻編碼器的碼率之所以能夠調(diào)節(jié)主要有賴于它編碼的可伸縮性。視頻的伸縮性包括空間可伸縮性、時(shí)間可伸縮性、信噪比可伸縮性3種。空間可伸縮性和信噪比可伸縮性影響視頻流的畫面質(zhì)量,時(shí)間可伸縮性影響視頻流的連續(xù)性,選擇何種伸縮性實(shí)際上取決于畫面質(zhì)量和連續(xù)性之間的取舍。本文選取時(shí)間可伸縮性(即控制幀率)來調(diào)整 MPEG-4視頻編碼碼率。衡量視頻傳輸技術(shù)的好壞,不能單純以如何提高網(wǎng)絡(luò)利用率為標(biāo)準(zhǔn)。一方面,網(wǎng)絡(luò)傳輸?shù)囊曨l流越多并不代表在解碼時(shí)解出的有效視頻幀越多。因?yàn)镸PEG-4視頻編碼采用了幀間預(yù)測(cè)機(jī)制,如果參考幀丟了,在接收端由于錯(cuò)誤傳播將造成相當(dāng)一段視頻無法使用, 所以在回放時(shí)會(huì)出現(xiàn)停頓現(xiàn)象。另一方面,網(wǎng)絡(luò)傳輸?shù)囊曨l流越多并不代表它不連續(xù)性丟幀,有時(shí)情愿接收的幀數(shù)少一些,只要視頻幀丟失得較為均勻就行。算法前一部分選取時(shí)間可伸縮性(即控制幀率)來調(diào)整MPEG-4視頻編碼碼率除了起預(yù)防緩沖區(qū)溢出的作用外,實(shí)際上還起到了預(yù)防連續(xù)性丟幀的作用。具體通過幀控制來調(diào)整MPEG-4視頻編碼碼率還可以實(shí)現(xiàn)細(xì)化過程,比如當(dāng)緩存占有率大于第一閾值占有率且小于第三閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔幀編碼;當(dāng)緩存占有率大于第三閾值占有率且小于第二閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔三幀編碼。這里的第一閾值占有率小于第三閾值占有率,第三閾值占有率小于第二閾值占有率。S306 則通過動(dòng)態(tài)丟幀算法釋放幀。至于如何提高傳輸視頻幀的有效解碼,可先從考察MPEG-4的3類幀入手。MPEG-4 視頻幀分為3類I-V0P,P-V0P和B-V0P。為了方便表述不妨簡(jiǎn)稱為I幀、P幀和B幀。3類編碼幀的重要性依次為I幀、P幀和B幀。同樣是P幀,前面的比后面的更重要(因?yàn)楹竺娴腜幀要參考前面的P幀才能解碼)。在緩沖區(qū)不得不丟幀的情況下,先將緩沖區(qū)中重要性低的幀釋放,直至有足夠空間為止,如果緩沖區(qū)中該釋放的幀都釋放了還是沒有足夠空間, 這時(shí)才把即將要進(jìn)入的幀丟棄。具體流程如下首先需要判斷緩沖區(qū)的空閑區(qū)是否大于幀長(zhǎng),大于則編碼后直接進(jìn)入緩沖區(qū),如果不是的話,需要從后往前找到一幀重要性低的VOP釋放。需要說明的是,本實(shí)施例中的第一閾值占有率一般設(shè)置在50%以上,比如為 50%,或者60%,或者100%,這里的第一閾值占有率、第二閾值占有率、第三閾值占有率都小于100%,基于上述實(shí)現(xiàn)過程中,這里的第一閾值占有率可以取值為70%、第二閾值占有率可以取值為90 %、第三閾值占有率可以取值為80%,當(dāng)然這里的取值可以針對(duì)具體應(yīng)用和實(shí)施情況來取值。相應(yīng)的,本發(fā)明實(shí)施例還提供了一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的系統(tǒng),包括計(jì)算模塊41,用于計(jì)算當(dāng)前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊42,用于判斷緩存占有率與預(yù)設(shè)的第一閾值占有率和第二閾值占有率間的關(guān)系,并將判斷結(jié)果返回到處理模塊中處理;這里的判斷模塊可以直接判斷緩存占有率與第一閾值占有率、第二閾值占有率甚至是第三閾值占有率之間的關(guān)系,并可以根據(jù)判斷關(guān)系將結(jié)果返回到處理單元中的各個(gè)處理單元中執(zhí)行相應(yīng)的任務(wù)。處理模塊43,用于根據(jù)判斷模塊反饋的判斷結(jié)果進(jìn)行處理,所述處理模塊包括第一處理單元431,用于在所述緩存占有率小于第一閾值時(shí),調(diào)整現(xiàn)有緩沖區(qū)的大?。贿@里的調(diào)整現(xiàn)有緩沖區(qū)的大小計(jì)算式可以是緩沖區(qū)占有率*緩沖區(qū)大小*(1+(1-緩沖區(qū)占有率)*0. 1)。第二處理單元432,用于在所述緩存占有率超過第一閾值且小于第二閾值占有率時(shí),通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;具體的情況可以是,當(dāng)緩存占有率大于第一閾值占有率且小于第三閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔幀編碼;當(dāng)緩存占有率大于第三閾值占有率且小于第二閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔三幀編碼。第三處理單元433,用于在所述緩存占有率超過第二閾值占有率時(shí),通過動(dòng)態(tài)丟幀算法釋放幀。具體的,當(dāng)判斷緩沖區(qū)的空閑區(qū)是否大于幀長(zhǎng),如果緩沖區(qū)的空閑區(qū)小于幀長(zhǎng),則先將緩沖區(qū)重要性低的幀釋放。如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長(zhǎng),則將即將要進(jìn)入的幀丟棄。需要說明的是,本實(shí)施例中的第一閾值占有率一般設(shè)置在50%以上,比如為 50%,或者60%,或者100%,這里的第一閾值占有率、第二閾值占有率、第三閾值占有率都小于100%,基于上述實(shí)現(xiàn)過程中,這里的第一閾值占有率可以取值為70%、第二閾值占有率可以取值為90%、第三閾值占有率可以取值為80%,當(dāng)然這里的取值可以針對(duì)具體應(yīng)用和實(shí)施情況來取值。本文提出的服務(wù)器端緩沖區(qū)動(dòng)態(tài)配置算法充分考慮了 MPEG-4視頻編碼流的特點(diǎn),在盡量保證不丟幀的前提下,通過動(dòng)態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預(yù)防緩沖區(qū)溢出和提高有效解碼率,進(jìn)一步提高了視頻質(zhì)量。本算法非常適合系統(tǒng)資源足夠、帶寬窄或強(qiáng)實(shí)時(shí)性的視頻流式傳輸。本發(fā)明實(shí)施例中的算法的前一部分能夠有效地防止緩沖區(qū)的溢出,這是因?yàn)樵诰W(wǎng)絡(luò)帶寬一定的情況下傳輸占有帶寬巨大的視頻數(shù)據(jù),動(dòng)態(tài)配置緩沖區(qū)充分利用了資源且保證了質(zhì)量。算法的后兩部分在充分考慮到系統(tǒng)資源緊缺的前提下,考慮到了考慮了 MPEG-4的編解碼原理,能夠有效地提高視頻質(zhì)量。
以上對(duì)本發(fā)明實(shí)施例所提供的,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法,其特征在于,包括 計(jì)算當(dāng)前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預(yù)設(shè)的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大小; 如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整 MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動(dòng)態(tài)丟幀算法釋放幀。
2.如權(quán)利要求1所述的方法,其特征在于,所述調(diào)整現(xiàn)有緩沖區(qū)的大小計(jì)算式為緩沖區(qū)占有率*緩沖區(qū)大小* (1+(1"緩沖區(qū)占有率)*0. 1)。
3.如權(quán)利要求1所述的方法,其特征在于,所述通過控制幀率來調(diào)整MPEG-4視頻編碼碼率包括當(dāng)緩存占有率大于第一閾值占有率且小于第三閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔幀編碼;當(dāng)緩存占有率大于第三閾值占有率且小于第二閾值占有率時(shí),對(duì)MPEG-4視頻編碼進(jìn)行隔三幀編碼。
4.如權(quán)利要求1所述的方法,其特征在于,所述通過動(dòng)態(tài)丟幀算法釋放幀包括判斷緩沖區(qū)的空閑區(qū)是否大于幀長(zhǎng),如果緩沖區(qū)的空閑區(qū)小于幀長(zhǎng),則先將緩沖區(qū)重要性低的幀釋放。
5.如權(quán)利要求4所述的方法,其特征在于,所述通過動(dòng)態(tài)丟幀算法釋放幀還包括 如果緩沖區(qū)中釋放幀后滿足不了緩沖區(qū)的空閑區(qū)大于幀長(zhǎng),則將即將要進(jìn)入的幀丟棄。
6.如權(quán)利要求1至5任一項(xiàng)所述的方法,其特征在于,所述第一閾值占有率在百分之五十以上。
7.一種基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的系統(tǒng),其特征在于,包括 計(jì)算模塊,用于計(jì)算當(dāng)前緩沖區(qū)已經(jīng)緩存視頻流的緩存占有率;判斷模塊,用于判斷緩存占有率與預(yù)設(shè)的第一閾值占有率和第二閾值占有率間的關(guān)系,并將判斷結(jié)果返回到處理模塊中處理;處理模塊,用于根據(jù)判斷模塊反饋的判斷結(jié)果進(jìn)行處理,所述處理模塊包括 第一處理單元,用于在所述緩存占有率小于第一閾值占有率時(shí),調(diào)整現(xiàn)有緩沖區(qū)的大第二處理單元,用于在所述緩存占有率超過第一閾值占有率且小于第二閾值占有率時(shí),通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;第三處理單元,用于在所述緩存占有率超過第二閾值占有率時(shí),通過動(dòng)態(tài)丟幀算法釋放幀。
全文摘要
本發(fā)明實(shí)施例公開了基于MPEG-4的流媒體服務(wù)器端配置緩沖區(qū)的方法及系統(tǒng),其中該方法包括計(jì)算當(dāng)前緩沖區(qū)中已經(jīng)緩存視頻流的緩存占有率;判斷所述緩存占有率是大于預(yù)設(shè)的第一閾值占有率且小于第二閾值占有率,所述第二閾值占有率大于第一閾值占有率;如果所述緩存占有率小于第一閾值,則調(diào)整現(xiàn)有緩沖區(qū)的大??;如果所述緩存占有率超過第一閾值且小于第二閾值占有率,則通過控制幀率來調(diào)整MPEG-4視頻編碼碼率;如果所述緩存占有率超過第二閾值占有率,則通過動(dòng)態(tài)丟幀算法釋放幀。本發(fā)明實(shí)施例在盡量保證不丟幀的前提下,通過動(dòng)態(tài)配置緩沖區(qū)的容量和調(diào)整幀的編碼率來很好地預(yù)防緩沖區(qū)溢出和提高有效解碼率,進(jìn)一步提高了視頻質(zhì)量。
文檔編號(hào)H04N21/6437GK102378065SQ20111031837
公開日2012年3月14日 申請(qǐng)日期2011年10月19日 優(yōu)先權(quán)日2011年10月19日
發(fā)明者羅春耕, 羅晴明 申請(qǐng)人:江西省南城縣網(wǎng)信電子有限公司