專利名稱:視頻播放中的靜態(tài)丟幀方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻播放終端,特別涉及到多媒體處理能力有限的視頻播放終端。
背景技術(shù):
目前視頻播放系統(tǒng)所播放的視頻幀分為I幀、P幀和B幀,其中I幀和P幀是參考幀,B幀為非參考幀。在參考幀中,I幀是關(guān)鍵幀,P幀是普通參考幀。在對(duì)視頻幀做解碼時(shí),I幀依靠本身所包含的信息即可實(shí)現(xiàn)解碼,P幀需要一個(gè)I幀或一個(gè)其他P幀的信息才能實(shí)現(xiàn)對(duì)它的解碼,B幀需要一個(gè)I幀和一個(gè)P幀,或兩個(gè)P幀才能實(shí)現(xiàn)對(duì)它的解碼。
在視頻播放系統(tǒng)中,經(jīng)常會(huì)遇到這樣的問題輸入到播放終端的視頻序列的平均解碼復(fù)雜度超出了終端的處理能力,當(dāng)解碼器解碼完幾幀視頻圖像之后,系統(tǒng)的當(dāng)前時(shí)間便滯后于視頻幀的正常顯示時(shí)間,如果繼續(xù)進(jìn)行逐幀解碼,則會(huì)進(jìn)一步加劇視頻圖像顯示的滯后,造成用戶看到的是慢速播放的視頻。
目前處理這種問題的方法一般有兩種一是對(duì)輸入的視頻序列進(jìn)行盡力解碼,如果當(dāng)前的系統(tǒng)時(shí)間已經(jīng)滯后于要解碼的輸入視頻幀,則丟棄該視頻幀,不進(jìn)行解碼;二是在方法一的基礎(chǔ)上增加對(duì)幀類型的考慮,即如果丟棄的幀為B幀,則后續(xù)幀繼續(xù)解碼,如果丟棄的是I幀或B幀,則連續(xù)丟棄后續(xù)的幀直到下一個(gè)I幀到來。這兩種方法能盡量保持被解碼的視頻圖像的顯示時(shí)間接近視頻圖像要求的顯示時(shí)間,已被普遍用于目前常用的播放器中,如Windows Media Player,Real Player等。但是,如果采用方法一,則當(dāng)丟棄的幀是參考幀時(shí),會(huì)造成后續(xù)幀解碼出現(xiàn)誤差,解碼后視頻質(zhì)量降低;如果采用方法二,存在需要連續(xù)丟棄多個(gè)視頻幀的情況,容易造成播放的不連續(xù)和停頓,影響用戶的觀看效果。于是,如何在終端處理能力受限的情況下減輕視頻解碼的壓力,避免不均勻丟幀造成的顯示停頓,便具有實(shí)際應(yīng)用價(jià)值。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)在多媒體處理能力不足的終端上,進(jìn)行視頻播放時(shí)連續(xù)丟幀造成畫面經(jīng)常停頓,影響用戶觀看的弊端,減輕終端的視頻解碼壓力,提高視頻播放的流暢度,改善用戶的觀看效果;從而提供了一種用于對(duì)視頻播放過程中視頻終端所接收視頻幀的選擇性丟棄的方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種視頻播放中的靜態(tài)丟幀方法,用于對(duì)視頻播放過程中視頻終端所接收視頻幀的選擇性丟棄,包括以下步驟1)、利用基準(zhǔn)測(cè)試碼流預(yù)測(cè)視頻終端的視頻解碼能力,得到基準(zhǔn)幀長(zhǎng)、基準(zhǔn)幀寬、基準(zhǔn)幀頻三個(gè)參數(shù);2)、對(duì)視頻終端所接收的輸入視頻幀序列進(jìn)行分析,估計(jì)視頻幀序列的解碼復(fù)雜度,得到輸入幀長(zhǎng)、輸入幀寬、輸入幀頻三個(gè)參數(shù);3)、根據(jù)步驟1)得到的視頻解碼能力和步驟2)得到的視頻幀序列的解碼復(fù)雜度,計(jì)算目標(biāo)播放幀頻;4)、比較目標(biāo)播放幀頻和輸入幀頻,判斷是否需要進(jìn)行靜態(tài)丟幀,若輸入幀頻大于目標(biāo)播放幀頻,則做靜態(tài)丟幀操作,執(zhí)行下一步,否則,結(jié)束操作;5)、根據(jù)步驟3)得到的目標(biāo)播放幀頻計(jì)算丟幀百分比;6)、利用丟幀百分比確定靜態(tài)丟幀濾波器中的丟幀頻率M;7)、在視頻終端設(shè)置一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器的初始值為0;8)、視頻終端接收視頻幀序列,并將所述計(jì)數(shù)器的值與所述靜態(tài)丟幀濾波器中的丟幀頻率M做比較;若計(jì)數(shù)器的值小于M,則不丟棄當(dāng)前的輸入幀,直接把輸入視頻幀發(fā)送到解碼器中進(jìn)行解碼;若計(jì)數(shù)器的值等于M,則判斷當(dāng)前輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值清零,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一;若計(jì)數(shù)器的值大于M,判斷輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值置為計(jì)數(shù)器的值與M的差值,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一。
上述技術(shù)方案中,在所述的步驟3)中,所述的目標(biāo)播放幀頻的計(jì)算為目標(biāo)播放幀頻=基準(zhǔn)幀長(zhǎng)×基準(zhǔn)幀寬×基準(zhǔn)幀頻/輸入幀長(zhǎng)/輸入幀寬。
在所述的步驟5)中,所述的丟幀百分比的計(jì)算為
丟幀百分比=1-目標(biāo)播放幀頻/輸入幀頻。
在所述的步驟6)中,所述的丟幀頻率M取整數(shù),并且應(yīng)當(dāng)同時(shí)滿足公式|丟幀百分比×M-1|<|丟幀百分比×(M-1)-1||丟幀百分比×M-1|<=|丟幀百分比×(M+1)-1|。
本發(fā)明的視頻播放中的靜態(tài)丟幀方法具有以下優(yōu)點(diǎn)(1)本發(fā)明整體降低了視頻播放的復(fù)雜度;(2)本發(fā)明充分考慮終端的解碼能力和輸入視頻解碼復(fù)雜度,平衡整個(gè)播放過程的解碼壓力;(3)本發(fā)明避免了視頻播放的不連續(xù),減少視頻顯示停頓;(4)本發(fā)明依照丟幀濾波器和視頻幀類型進(jìn)行的丟幀實(shí)施既整體保持了丟幀百分比,又保證了丟棄幀的獨(dú)立性,不對(duì)其余幀的解碼造成影響,確保視頻播放和顯示的流暢度。
圖1為本發(fā)明的機(jī)頂盒應(yīng)用場(chǎng)景示意圖;圖2為靜態(tài)丟幀濾波器在視頻播放器中的位置;圖3為靜態(tài)丟幀濾波器的確定過程;圖4為本發(fā)明的視頻播放中的靜態(tài)丟幀方法中的靜態(tài)丟幀實(shí)施過程的流程圖;圖5為本發(fā)明的視頻播放中的靜態(tài)丟幀方法的流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的描述。
本發(fā)明的視頻播放中的靜態(tài)丟幀方法可應(yīng)用在如圖1所示的場(chǎng)景中。機(jī)頂盒通過寬帶網(wǎng)絡(luò)向流媒體服務(wù)器發(fā)出視頻服務(wù)請(qǐng)求,流媒體服務(wù)器響應(yīng)該請(qǐng)求,并通過網(wǎng)絡(luò)向機(jī)頂盒發(fā)送視頻數(shù)據(jù),機(jī)頂盒接受到視頻數(shù)據(jù)后進(jìn)行解碼,然后送到電視機(jī)進(jìn)行顯示。在本場(chǎng)景中,網(wǎng)絡(luò)帶寬能夠滿足視頻流的傳送需求,機(jī)頂盒的網(wǎng)絡(luò)接收模塊也有足夠的能力進(jìn)行數(shù)據(jù)接收,但機(jī)頂盒的視頻解碼能力不足,無法滿足對(duì)視頻流的全部數(shù)據(jù)進(jìn)行實(shí)時(shí)解碼。本發(fā)明的靜態(tài)丟幀方法正適用于這種視頻終端解碼能力不足的情況。
為了達(dá)到視頻流暢播放的效果,在機(jī)頂盒的視頻播放器中采用本發(fā)明提出的靜態(tài)丟幀方法。所述的靜態(tài)丟幀方法主要通過靜態(tài)丟幀濾波器實(shí)現(xiàn),靜態(tài)丟幀濾波器在視頻播放器中的位置如圖2所示壓縮視頻序列首先通過靜態(tài)丟幀濾波器進(jìn)行處理,然后送到視頻解碼器,得到解碼視頻序列,解碼視頻序列經(jīng)過圖形渲染之后形成顯示視頻序列。
如圖5所示,本實(shí)施例的靜態(tài)丟幀方法具體包含以下步驟1、預(yù)測(cè)視頻終端的解碼能力,利用基準(zhǔn)測(cè)試碼流測(cè)試機(jī)頂盒的視頻播放能力,并把測(cè)試碼流的視頻幀長(zhǎng)、視頻幀寬、機(jī)頂盒全力播放時(shí)所達(dá)到的幀頻分別設(shè)為基準(zhǔn)幀長(zhǎng)、基準(zhǔn)幀寬、基準(zhǔn)幀頻。視頻終端的解碼能力可由上述三個(gè)參數(shù)體現(xiàn)。例如,通過基準(zhǔn)碼流的測(cè)試,本實(shí)施例中采用的機(jī)頂盒的解碼能力參數(shù)為352×288×30,即基準(zhǔn)幀長(zhǎng)為352,基準(zhǔn)幀寬為288,基準(zhǔn)幀頻為30。
2、對(duì)機(jī)頂盒接收到的輸入視頻幀序列進(jìn)行分析,估計(jì)視頻幀序列的解碼復(fù)雜度。通過對(duì)視頻幀序列的分析,可以知道輸入幀長(zhǎng)、輸入幀寬、輸入幀頻。例如,本實(shí)施例中播放的視頻序列的參數(shù)為512×384×25,即輸入幀長(zhǎng)為512,輸入幀寬為384,輸入幀頻為25。
3、利用步驟1得到的視頻終端的解碼能力和步驟2得到的視頻序列幀的解碼復(fù)雜度,計(jì)算輸入序列的目標(biāo)播放幀頻。目標(biāo)播放幀頻的計(jì)算如公式(1)所示目標(biāo)播放幀頻=基準(zhǔn)幀長(zhǎng)×基準(zhǔn)幀寬×基準(zhǔn)幀頻/輸入幀長(zhǎng)/輸入幀寬 (1)代入本實(shí)施例中的各參數(shù),則目標(biāo)播放幀頻=352×288×30/512/384=15.54、比較目標(biāo)播放幀頻和輸入幀頻,判斷是否需要進(jìn)行靜態(tài)丟幀。在本實(shí)施例中,由于目標(biāo)播放幀頻(15.5)小于輸入幀頻(25),所以,需要進(jìn)行靜態(tài)丟幀。
5、由步驟3得到的目標(biāo)播放幀頻計(jì)算丟幀百分比,所述丟幀百分比的計(jì)算公式如公式(2)所示丟幀百分比=1-目標(biāo)播放幀頻/輸入幀頻 (2)在本實(shí)施例中,丟幀百分比=1-15.5/25=38%6、利用丟幀百分比確定靜態(tài)丟幀濾波器中的丟幀頻率M,M表示每輸入M幀需要丟棄一幀。為了便于丟幀的實(shí)施,M必須取整數(shù),并且應(yīng)當(dāng)同時(shí)滿足公式(3)和公式(4)|丟幀百分比×M-1|<|丟幀百分比×(M-1)-1| (3)|丟幀百分比×M-1|<=|丟幀百分比×(M+1)-1|(4)
M值的確定可以采用枚舉法,從數(shù)值1開始,把數(shù)值從1到(輸入幀頻-1)逐個(gè)代入上面的式子,遇到滿足式(3)和(4)的數(shù)值或者數(shù)值為(輸入幀頻-1)時(shí)停止,并把該值確定為M。
在本實(shí)施例中,把丟幀百分比(38%)代入(3)(4),并利用上述枚舉法可求得滿足的M值為3。
7、設(shè)置一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器的初值為0,計(jì)數(shù)器的值隨著視頻幀的輸入而增加。
8、將計(jì)數(shù)器的值與本實(shí)施例中的M值3進(jìn)行比較,如圖4所示,分三種情況1)、若計(jì)數(shù)器的值小于3,則不丟棄輸入幀,直接把輸入視頻幀發(fā)送到解碼器中進(jìn)行解碼;2)、若計(jì)數(shù)器的值等于3,則判斷輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值清零,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一;3)、若計(jì)數(shù)器的值大于3,判斷輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值置為計(jì)數(shù)器的值與M的差值,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一。
權(quán)利要求
1.一種視頻播放中的靜態(tài)丟幀方法,包括以下步驟1)、利用基準(zhǔn)測(cè)試碼流預(yù)測(cè)視頻終端的視頻解碼能力,得到基準(zhǔn)幀長(zhǎng)、基準(zhǔn)幀寬、基準(zhǔn)幀頻三個(gè)參數(shù);2)、對(duì)視頻終端所接收的輸入視頻幀序列進(jìn)行分析,估計(jì)視頻幀序列的解碼復(fù)雜度,得到輸入幀長(zhǎng)、輸入幀寬、輸入幀頻三個(gè)參數(shù);3)、根據(jù)步驟1)得到的視頻解碼能力和步驟2)得到的視頻幀序列的解碼復(fù)雜度,計(jì)算目標(biāo)播放幀頻;4)、比較目標(biāo)播放幀頻和輸入幀頻,判斷是否需要進(jìn)行靜態(tài)丟幀,若輸入幀頻大于目標(biāo)播放幀頻,則做靜態(tài)丟幀操作,執(zhí)行下一步,否則,結(jié)束操作;5)、根據(jù)步驟3)得到的目標(biāo)播放幀頻計(jì)算丟幀百分比;6)、利用丟幀百分比確定視頻終端中的靜態(tài)丟幀濾波器中的丟幀頻率M;7)、在視頻終端設(shè)置一個(gè)計(jì)數(shù)器,該計(jì)數(shù)器的初始值為0;8)、視頻終端接收視頻幀序列,并將所述計(jì)數(shù)器的值與所述靜態(tài)丟幀濾波器中的丟幀頻率M做比較;若計(jì)數(shù)器的值小于M,則不丟棄當(dāng)前的輸入幀,直接把輸入視頻幀發(fā)送到解碼器中進(jìn)行解碼;若計(jì)數(shù)器的值等于M,則判斷當(dāng)前輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值清零,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一;若計(jì)數(shù)器的值大于M,判斷輸入幀的類型,若輸入幀為B幀,則丟棄該幀,并把計(jì)數(shù)器的值置為計(jì)數(shù)器的值與M的差值,若為I幀或P幀,則不丟棄該幀,并將計(jì)數(shù)器的加一。
2.根據(jù)權(quán)利要求1中所述的視頻播放中的靜態(tài)丟幀方法,其特征在于,在所述的步驟3)中,所述的目標(biāo)播放幀頻的計(jì)算為目標(biāo)播放幀頻=基準(zhǔn)幀長(zhǎng)×基準(zhǔn)幀寬×基準(zhǔn)幀頻/輸入幀長(zhǎng)/輸入幀寬。
3.根據(jù)權(quán)利要求2中所述的視頻播放中的靜態(tài)丟幀方法,其特征在于,在所述的步驟5)中,所述的丟幀百分比的計(jì)算為丟幀百分比=1-目標(biāo)播放幀頻/輸入幀頻。
4.根據(jù)權(quán)利要求3中所述的視頻播放中的靜態(tài)丟幀方法,其特征在于,在所述的步驟6)中,所述的丟幀頻率M取整數(shù),并且應(yīng)當(dāng)同時(shí)滿足公式|丟幀百分比×M-1|<|丟幀百分比×(M-1)-1||丟幀百分比×M-1|<=|丟幀百分比×(M+1)-1|。
全文摘要
本發(fā)明公開了一種視頻播放中的靜態(tài)丟幀方法,用于對(duì)視頻播放過程中視頻終端所接收視頻幀的選擇性丟棄,包括利用基準(zhǔn)測(cè)試碼流預(yù)測(cè)視頻終端的視頻解碼能力;對(duì)視頻終端所接收的輸入視頻幀序列進(jìn)行分析,估計(jì)視頻幀序列的解碼復(fù)雜度;計(jì)算目標(biāo)播放幀頻;判斷是否需要進(jìn)行靜態(tài)丟幀,若需要?jiǎng)t執(zhí)行下一步,否則,結(jié)束操作;計(jì)算丟幀百分比;利用丟幀百分比確定視頻終端中的靜態(tài)丟幀濾波器中的丟幀頻率M;實(shí)施靜態(tài)丟幀過程。本發(fā)明的優(yōu)點(diǎn)在于整體降低了視頻播放的復(fù)雜度;平衡整個(gè)播放過程的解碼壓力;避免了視頻播放的不連續(xù),減少視頻顯示停頓;確保視頻播放和顯示的流暢度。
文檔編號(hào)H04N5/92GK101079993SQ20061008105
公開日2007年11月28日 申請(qǐng)日期2006年5月23日 優(yōu)先權(quán)日2006年5月23日
發(fā)明者陳志輝, 張?zhí)? 陳國(guó)平, 賀鵬程 申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所, 北京易視威信息技術(shù)有限公司