999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

H.264碼率控制跳幀算法研究

2010-06-13 11:32:58王喜民楊鼎才閆俊海
微處理機 2010年3期
關鍵詞:策略

王喜民,楊鼎才,閆俊海

(河北省燕山大學信息科學與工程學院,秦皇島066004)

1 引言

H.264中碼率控制原理如圖1所示,碼率控制的任務就是在保證緩沖器不產生上溢和下溢的前提下,通過調整一些編碼參數(如量化參數)來使編碼比特率達到期望值。以便編碼器輸出碼率能夠在比特率恒定的通信信道和網絡中傳輸,這種利用信道緩沖器對編碼產生的比特數加以控制的技術就是碼率控制。

圖1 碼率控制原理圖

在視頻編碼過程中,編碼器和傳輸信道間的緩沖器起了重要的作用。編碼器使緩沖器的占用量保持在50%左右。如果緩沖器發生上溢,則會損失一些數據,相反,如果緩沖器的占用量過低就會浪費帶寬。緩沖器的輸入端是編碼器產生可變的比特流,輸出端以恒定的比特率把數據傳輸到信道上。輸入緩沖器和輸出緩沖器的數據差值將保存在緩沖器中,為了防止緩沖器上溢,當緩沖器的占用量達到某一個限值時,就跳過下一幀,即該時刻緩沖器沒有輸入只有輸出,從而減小緩沖器的占用量,因此,通過對碼率控制中跳幀的適當控制可以較好地緩解由于場景和物體劇烈運動所帶來的緩存上溢現象,達到優化圖像質量的目的。

這種避免緩存區的溢位,在碼率控制策略中,選擇跳過一幀或幾幀圖像不對其編碼,就是碼率控制中的跳幀技術。

2 以往跳幀算法的研究

以往的跳幀控制算法中,一般都只是將緩沖器的上限定為80%,并將80%作為跳幀的依據,當緩存容量超過80%,將此幀定為跳幀,相反,當緩存容量低于25%的時候,也將此幀定為跳幀。但是這樣處理有其弊端性.事實上,當要編碼的圖像發生場景變換或者圖像物體運動劇烈的時候,由于圖像包含更多的信息,必然會造成編碼后的比特數上漲,往往會超過緩沖器上閾值的限制,如果就這樣簡單的將其判為跳幀,會導致運動劇烈的圖像丟失,遺漏掉圖像中的重要細節,從而使圖像質量下降。

跳幀算法中,假定編碼的目標比特率為Bit_Rate,視頻流的幀率為F,緩存區大小由Buffer_Size表示,緩存區充盈度用緩存中的比特數Buffer_Fullness表示,當緩存區充盈度超過一個閾值Threshold,則跳過當前幀不對其編碼,直到當前緩存區充盈度低于門限值之后,再對此時的圖像進行編碼,通過跳幀的方法可以防止緩存區溢位。在編碼第一個I幀之前,將Buffer_Fullness初始化為0。設B為剛剛編碼完的第i幀對應的比特數,則跳幀算法為:

Buffer_Size=Bit_Rate*TimeDelay;

FrameSkipped=0;

Buffer_Fullness=Buffer_Fullness+B-Bit_Rate/F;

while(Buffer_Fullness>=Threshold)

{

Buffer_Fullness=Buffer_Fullness-Bit_Rate/F;

FrameSkipped++;

}

其中,FrameSkipped為跳幀數,緊接著上一次編碼的第i幀之后將被編碼的是第(i+1+FrameSkipped)幀。采用跳幀的目的是通過犧牲圖像連續性來換取圖像質量的穩定性。根據人眼的視覺特性,偶爾少量的圖像跳幀,對視頻質量的影響并不大。但是如果發生頻繁的連續跳幀,則會引起圖像的停滯、跳躍,嚴重影響視頻通信質量。這在碼率控制策略中,是要堅決避免的。在常規的碼率控制策略中,通常為了避免溢出,當緩存區內比特數超過緩存區空間Bs的80%時,跳過當前幀而不對其作編碼,直到其低于臨界值后再進行編碼。如下式所示:

3 主動跳幀策略

3.1 場景切換的檢測

以往改進算法中大部分采用 MADratio,而MADratio也能夠準確的反映出圖像的復雜度,但是它卻不能預測場景切換幀。因為MADratio算法如下:

對于存在場景切換的視頻序列,由于場景切換幀與之前幀的幀間相關性小,場景切換的MADP預測不準確,進而造成 MADratio計算不準確。因此MADratio不能預測場景切換。應該采用的是文獻[3]中提到的PSNRdropratio來預測場景切換,并作相關處理。PSNRdropratio的計算在編碼器計算完每幀的PSNR值之后進行,其計算步驟如下:

假設當前編碼幀j幀被跳過,利用離j幀最近的j-1幀作為j幀的重構幀,計算出 j幀的PSNR,這里記為 PSNRskip,j,然后利用下式可以計算 PSNRdrop,j

PSNRdrop,j=PSNRj-1- PSNRskip,j

其中 PSNRj-1為j-1幀的實際 PSNR

當前編碼 j幀的 PSNRdropratio,j,則由下式得到

3.2 主動跳幀算法的計算過程

主動跳幀策略,即在緩存區并未達到空間上限的80%時,為了保留一些信息量較高,相對重要的圖像,而主動跳過一些跟上一幀圖像相關度較高,相對來說并不十分重要的圖像。通過主動跳幀,可以有效的降低緩存區充盈度,從而有效的抑制由于緩存區長期處于高充盈度狀態。而引發的圖像連續跳幀。預先的主動跳幀,降低了緩存區充盈度,可以有效的防止緩存區達到極度充盈狀態:即使跳過1幀或2幀圖像仍然不能有效的釋放緩存區空間,而需要連續跳過數幀圖像。通過實驗仿真發現,該主動跳幀策略,可以防止緩存區長期處于臨界飽和狀態,并且有效的抑制大量圖像的連續跳幀。

如果當前編碼的P幀圖像同時滿足以下三個條件,則采用主動跳幀策略,不對該幀編碼,而直接編碼下一幀圖像:

(1)當前GOP的跳幀標志位Skip_Flag為1。在開始一個GOP的編碼時,將跳幀標志位置0,一旦在當前GOP中有跳幀發生時,則將Skip_Flag置為1。表示在當前GOP中,通過使用基于預測的拉格朗日最優化方法選擇的I幀量化參數進行編碼時,仍然不能完全抑止跳幀的發生。在當前GOP的編碼中,仍然存在繼續跳幀的可能性,因此有必要做好主動跳幀的準備。

(2)當前緩存區充盈度超過緩存區空間的60%。即當前緩存區維持在一個較高的充盈度狀態。即使緩存區空間沒有達到上限的80%,但是根據上一條件,可以認為當前GOP存在跳幀的可能性。為了避免當緩存區充盈度繼續增加之后,而發生對跳幀圖像不具選擇能力的被動跳幀,因此在緩存區充盈度為60%的時候設置一個判決閾。當這個閾值選擇較大,接近80%的時候,則不能有效的通過預判來避免被動跳幀的發生。而當閾值選擇較小時,則可能造成過多的圖像滿足主動跳幀的條件,被主動跳過而不進行編碼,但是從實際的編碼結果來分析,并不需要有這么多的圖像發生主動跳幀,而為后續的相對重要的圖像留出緩存區空間。因此這個閾值的選擇顯得非常重要,如果選擇不當,反而會導致使用了主動跳幀策略之后比原來的被動跳幀控制有更多的圖像跳幀,對視頻序列的連續性造成負面的影響。通過對大量序列的仿真發現,將閾值設置在緩存區空間的60%,能夠有效起到提前釋放緩存區空間的作用,為此后一些信息量較高、相對重要的圖像留出編碼空間,使其可以被保留而不被跳幀,同時也有效避免了后續圖像發生大量連續的跳幀。

(3)計算當前幀的,通過仿真實驗,認為當前幀相對其他的圖像來說,復雜度較低,不存在明顯的場景切換和快速的局部運動。跳過這一幀圖像對此后圖像編碼質量影響不大,仍然可以根據前一幀圖像作為參考幀來進行幀間編碼。保證主動跳幀之后,對整個視頻序列的主觀質量不造成明顯的影響。其算法的流程如圖2所示。該策略可以通過跳過一些復雜度較低,對于整個序列而言并不重要的圖像,來為后面復雜度較高,不能丟失的圖像留出緩存區空間。通過主動跳幀,降低了緩存區充盈度,可以有效的防止緩存區達到極度充盈狀態:即使跳過1幀或2幀圖像仍然不能有效的釋放緩存區空間,而需要連續跳過數幀圖像。

4 試驗結果

為了分析提出的主動跳幀策略在防止圖像連續跳幀中的作用,在下表中給出了JVT-H017碼率控制策略跟采用和未采用主動跳幀策略的低延遲碼率控制算法對比實驗的結果分析。選用Stefan標準QCIF測試序列。將每一個GOP的長度定為30幀,其結構為 IPPP,不采用 B幀;在編碼時,將 Basic Unit的大小定為99個宏塊,即一個Basic Unit的大小為一幀圖像的大小,相當于是將碼率控制算法分為GOP層和幀層;每一個序列各編碼150幀圖像,編碼的幀率為30fps,目標比特為120kbps,緩存區大小為24kbits,相當于允許延時200ms。

圖2 主動跳幀策略流程圖

表1 三種方法的跳幀結果比較

從表1中可以發現,不論是否采用主動跳幀,該方法在低延遲下都能更好的控制跳幀,這在上文已有詳細的對比分析。在此重點針對采用和未采用主動跳幀策略的實驗結果,來分析主動跳幀策略的作用。在H017方法中,不但跳幀數目最多,共53幀,而且出現了大量的連續跳幀,其中在第32幀處出現6幀跳幀,然后僅編碼完第38幀,在第39時又出現6幀的跳幀,然后編碼完第45幀,又立即在第46幀處出現連續的4幀跳幀。這樣連續的跳幀嚴重影響了視頻的主觀視覺質量,在視頻通信中需要極力避免。在未采用主動跳幀時,共跳幀15幀,其中有1次連續跳了4幀圖像,1次連續跳了3幀圖像。其中在第38幀處,連續跳完2幀之后,僅編碼了第42和43幀后又連續出現了3幀跳幀。在采用了主動跳幀后,雖然總體的跳幀數量也為15幀,但是最大的連續圖像跳幀為3幀,且僅出現一次。原來在第38幀處連續出現的2幀和3幀連續跳幀,由于在第36幀的主動跳幀,在第38幀時沒有圖像跳幀,僅在第42幀處連續跳過了3幀圖像。有效的抑制了圖像的連續跳幀。當然從表1中發現,主動跳幀策略通過分散的預先跳幀來避免連續跳幀的發生。從對比實驗結果可以發現,雖然在第76幀發生了主動跳幀,但是其實即使這里沒有主動跳幀,其后續的P幀都不會發生跳幀,如果僅在當前的GOP分析,反而增加了圖像的跳幀。但是從整體來分析,主動跳幀緩解了緩存區的充盈度,雖然在當前沒有明顯的體現出減少跳幀的作用,卻為下一個GOP留出了更多的緩存區空間,減少其跳幀的可能性,并能提高其編碼質量。通過引入主動跳幀之后,該算法在有效維持圖像質量的同時,仍可以有效的抑制圖像的連續跳幀。

5 結束語

針對傳統的跳幀技術,提出了新的主動跳幀策略。該策略在緩存區尚未達到跳幀閾值時,主動跳過一些跟上一幀圖像相關度較高,相對來說并不十分重要圖像,來降低緩存區的充盈度。通過主動跳幀不但可以為視頻中相對重要的圖像留出編碼空間防止其被跳過,并且能夠有效的抑制圖像的連續跳幀,提高圖像的質量。

[1]S W WU.Improved Rate Control for Low-Delay Communications in H.264/AVC Video Coding Standard[R].National Yet- sen University,July,2004.

[2]Minqiangjiang,Xiaoquanyi,Nan Ling.On Enhancing H264 Rate Control by PSN Based Frame Complexity Estimation[J].IEEE Transactions Consumer Electronics,2003(1):281-286.

[3]劉文堯,龔聲蓉.基于H.264的碼率控制算法的研究與實現[J].計算機應用與軟件,2007(5):28-39.

[4]周駿華,石繼剛.一種基于運動復雜度的H.264碼率控制跳幀算法[J].浙江工業大學學報,2006(4):13-15.

[5]畢厚杰.新一代視頻壓縮編碼標準 -H.264/AVC[M].北京:人民郵電出版社,2005.

猜你喜歡
策略
基于“選—練—評”一體化的二輪復習策略
幾何創新題的處理策略
求初相φ的常見策略
例談未知角三角函數值的求解策略
我說你做講策略
“我說你做”講策略
數據分析中的避錯策略
高中數學復習的具體策略
數學大世界(2018年1期)2018-04-12 05:39:14
“唱反調”的策略
幸福(2017年18期)2018-01-03 06:34:53
價格調整 講策略求互動
中國衛生(2016年8期)2016-11-12 13:26:50
主站蜘蛛池模板: 日韩小视频在线播放| 97综合久久| 日本成人在线不卡视频| 国产白浆在线观看| 伊人色在线视频| 99视频在线看| 国产午夜无码片在线观看网站| 国产精品19p| 强乱中文字幕在线播放不卡| 日本欧美视频在线观看| 91麻豆久久久| 亚洲福利片无码最新在线播放| a毛片免费看| 欧美综合中文字幕久久| 日本不卡在线视频| 国产啪在线| 欧美国产在线看| 免费无码AV片在线观看中文| 欧美国产在线看| 久久综合久久鬼| 国产成人资源| 国产杨幂丝袜av在线播放| 亚洲中文字幕久久无码精品A| 国产白浆视频| 欧美人与牲动交a欧美精品| 成人字幕网视频在线观看| 欧美日本在线一区二区三区| 亚洲AV无码不卡无码| 亚洲手机在线| 一级做a爰片久久毛片毛片| 99久久精品免费观看国产| 国产综合无码一区二区色蜜蜜| 丰满的少妇人妻无码区| 久久精品一品道久久精品| 麻豆精品在线视频| 成人精品视频一区二区在线| 最新国产成人剧情在线播放| 国产精品19p| 日韩午夜福利在线观看| 园内精品自拍视频在线播放| 欧美三級片黃色三級片黃色1| 国产网站黄| 波多野结衣第一页| 欧美精品v欧洲精品| 久久这里只有精品2| 日韩av高清无码一区二区三区| 国产精品伦视频观看免费| 久久久无码人妻精品无码| 国产精品午夜福利麻豆| 精品91自产拍在线| 精品视频一区二区三区在线播| 日韩中文无码av超清| 日韩欧美国产精品| 久久国产乱子伦视频无卡顿| 亚洲精品福利视频| 日韩高清在线观看不卡一区二区 | 久久久久久尹人网香蕉| 国产精品私拍在线爆乳| 极品国产一区二区三区| 国产小视频a在线观看| 啊嗯不日本网站| 国产视频自拍一区| 中文国产成人久久精品小说| 久久综合九九亚洲一区| 在线人成精品免费视频| 亚洲成人网在线观看| 日韩精品毛片人妻AV不卡| 91精品在线视频观看| 久久伊人色| 青青草原国产| 日本三级欧美三级| 蜜桃视频一区二区三区| 美女一级毛片无遮挡内谢| 免费一级无码在线网站| 久久这里只有精品2| 国国产a国产片免费麻豆| 国产情精品嫩草影院88av| 99久久精品久久久久久婷婷| 亚洲乱码视频| 一本视频精品中文字幕| 亚洲永久免费网站| 欧美自慰一级看片免费|