亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        王喜民,楊鼎才,閆俊海

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

        1 引言

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

        圖1 碼率控制原理圖

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

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

        2 以往跳幀算法的研究

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

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

        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++;

        }

        其中,F(xiàn)rameSkipped為跳幀數(shù),緊接著上一次編碼的第i幀之后將被編碼的是第(i+1+FrameSkipped)幀。采用跳幀的目的是通過犧牲圖像連續(xù)性來換取圖像質(zhì)量的穩(wěn)定性。根據(jù)人眼的視覺特性,偶爾少量的圖像跳幀,對視頻質(zhì)量的影響并不大。但是如果發(fā)生頻繁的連續(xù)跳幀,則會引起圖像的停滯、跳躍,嚴重影響視頻通信質(zhì)量。這在碼率控制策略中,是要堅決避免的。在常規(guī)的碼率控制策略中,通常為了避免溢出,當緩存區(qū)內(nèi)比特數(shù)超過緩存區(qū)空間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 主動跳幀算法的計算過程

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

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

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

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

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

        4 試驗結果

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

        圖2 主動跳幀策略流程圖

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

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

        5 結束語

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

        [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的碼率控制算法的研究與實現(xiàn)[J].計算機應用與軟件,2007(5):28-39.

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

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

        猜你喜歡
        策略
        基于“選—練—評”一體化的二輪復習策略
        幾何創(chuàng)新題的處理策略
        求初相φ的常見策略
        例談未知角三角函數(shù)值的求解策略
        我說你做講策略
        “我說你做”講策略
        數(shù)據(jù)分析中的避錯策略
        高中數(shù)學復習的具體策略
        “唱反調(diào)”的策略
        幸福(2017年18期)2018-01-03 06:34:53
        價格調(diào)整 講策略求互動
        国产精品无码一区二区三区在| 二区久久国产乱子伦免费精品| 美女视频永久黄网站免费观看国产| 人妻露脸国语对白字幕| 中文字幕女优av在线| 成午夜精品一区二区三区| 久久亚洲精品成人av| 狠狠躁夜夜躁人人爽天天| 国产亚洲亚洲精品视频| aa日韩免费精品视频一| 一级r片内射视频播放免费| 中文亚洲av片在线观看| 少妇极品熟妇人妻无码| 亚洲欧美日韩国产综合久| 国产99久久久国产精品免费| 自拍偷自拍亚洲一区二区| av色欲无码人妻中文字幕| 无码人妻精品一区二区三区66 | 国产精品黄色片在线观看| 亚洲国产一区二区视频| 无码精品国产一区二区三区免费| 无码吃奶揉捏奶头高潮视频 | 日韩精品永久免费播放平台| 老熟妇嗷嗷叫91九色| 国产精品天干天干| 人与禽交av在线播放| 国产精品27页| 亚洲综合新区一区二区| 在线麻豆精东9制片厂av影现网 | 韩日无码不卡| 最新国产激情视频在线观看| 免费看av在线网站网址| 亚洲美女啪啪| 亚洲一区二区三区厕所偷拍| 免费国产线观看免费观看| 久久久久亚洲av无码专区网站| 欧美日韩综合在线视频免费看 | 日日碰狠狠添天天爽超碰97| 91热视频在线观看| 久草视频这里只有精品| 亚洲av日韩av无码污污网站|