<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 安全與國防 > 設計應用 > 基于場(chǎng)景切換的H.264碼率控制技術(shù)

基于場(chǎng)景切換的H.264碼率控制技術(shù)

作者: 時(shí)間:2008-03-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  摘 要:在H.264/AVC器中,由于采用了固定長(cháng)度的圖像組(GOP)結構,不能有效地處理中的,導致幀后續各幀質(zhì)量嚴重下降。為了有效解決該問(wèn)題。提出一種自適應的碼率控制算法,通過(guò)的快速檢測方法檢測中的場(chǎng)景切換,在場(chǎng)景切換幀處終止當前COP并對GOP層的碼率分配算法做出修正。仿真結果表明:采用該算法可以有效地降低場(chǎng)景切換對后續帖質(zhì)量的影響,而且合理地分配碼率資源,提高了整個(gè)的編碼質(zhì)量。在相同碼率條件下,整體編碼質(zhì)量可以提高0.3~O.5 dB。

  關(guān)鍵詞:視頻編碼;自適應碼率控制;場(chǎng)景切換檢測

  碼率在帶寬受限的多媒體通信系統中具有重要的作用。傳統的視頻通信碼率控制算法,如H.264/AVC編碼器中采用的碼率控制算法,在將碼率資源分配到圖像組(GOP)中各幀圖像時(shí),僅僅考慮了各幀圖像自身的復雜度,而忽視了同GOP中各幀圖像之間的相關(guān)性,如對含有頻繁場(chǎng)景切換的視頻序列進(jìn)行編碼時(shí),GOP中某幀圖像可能因出現場(chǎng)景切換而與其參考幀之間毫無(wú)相關(guān)性,如果仍然采用傳統的碼率控制方法,將導致圖像編碼資源浪費和編碼質(zhì)量的下降。

  本文提出一種自適應改變GOP長(cháng)度的碼率控制算法,可以有效地節省碼率資源,并且能夠有效地提高場(chǎng)景切換幀后續各幀的編碼質(zhì)量和序列整體的編碼質(zhì)量。

  1 碼率與視頻場(chǎng)景切換

  由于視頻序列中I、P及B幀編碼后產(chǎn)生的比特數不一樣,為了使輸出碼流速率與信道速率相匹配,提高信道利用率,一般在編碼器和信道之間加一個(gè)緩沖區,而緩沖區容量大小與通信時(shí)延的要求構成了一對新的矛盾,碼率控制的目的就是為了解決這一矛盾。對于編碼器來(lái)說(shuō),一個(gè)魯棒的碼率控制算法應該在充分利用帶寬資源和保證緩沖區不溢出的前提下,將有限的碼率資源進(jìn)行合理分配,獲得盡可能好的編碼質(zhì)量。

  當視頻序列中出現場(chǎng)景切換時(shí),其編碼質(zhì)量將受到影響,影響程度取決于場(chǎng)景切換幀在其所處GOP中的位置。當場(chǎng)景切換發(fā)生在I幀時(shí),由于I幀采用編碼模式,場(chǎng)景切換對于I幀本身不會(huì )產(chǎn)生任何影響,同時(shí)也不會(huì )對后續幀的預測編碼產(chǎn)生影響;由于B幀為雙向預測,只要其前后2個(gè)參考幀有1幀與其處于同一場(chǎng)景中(假設序列中沒(méi)有連續2幀同時(shí)發(fā)生場(chǎng)景切換),其預測編碼的精度仍然能夠得到保證,編碼質(zhì)量不會(huì )受到很大影響。不同于I幀和B幀,當場(chǎng)景切換發(fā)生在,對當前GOP編碼質(zhì)量的影響相當大:首先,由于當前與其參考幀處于不同的場(chǎng)景中,編碼將完全失效,宏塊必須通過(guò)RDO(rate-distortion optimiza-tion)模式選擇后才采取編碼,優(yōu)化過(guò)程極大浪費了編碼時(shí)間;其次,由于絕大多數宏塊采用編碼模式,占用了大量的碼率資源,使得后續各幀由于碼率資源缺乏而編碼質(zhì)量下降,此影響還會(huì )延續至后續的GOP。

  圖1給出了一個(gè)有5處場(chǎng)景切換的測試序列(詳見(jiàn)2.3節)在80 kb/s碼率條件下各幀編碼比特曲線(xiàn)和Y分量PSNR(峰值信噪比)曲線(xiàn)。同時(shí),表1也給出了場(chǎng)景切換幀前10幀和后10幀Y分量平均PSNR值數據及其變化值。由圖中(虛線(xiàn)表示場(chǎng)景切換幀位置)可以看出,在場(chǎng)景切換時(shí),當前幀將占用較多編碼比特資源,從而導致后續幀由于碼率資源缺乏而PSNR值下降,詳細數據可見(jiàn)表1。

  

  

  現實(shí)中的視頻序列,不可避免存在場(chǎng)景切換。如果編碼器不考慮場(chǎng)景切換的影響,就會(huì )浪費有限的碼率資源,從而導致編碼質(zhì)量下降。目前,針對場(chǎng)景切換提出了很多碼率控制算法,其中常用的方法是通過(guò)改變GOP的結構和長(cháng)度來(lái)重新分配碼率資源。如在文的算法中,當檢測到場(chǎng)景切換時(shí),當前GOP剩余幀和下一個(gè)GOP的所有幀合并為一個(gè)GOP,因此,GOP長(cháng)度要比默認長(cháng)度N大,最糟的情況下為2N-1。由于GOP過(guò)長(cháng)容易導致緩沖區的溢出,并且導致GOP中后面部分幀的編碼性能下降。在文提出的算法中,采取將過(guò)長(cháng)的GOP拆分成2個(gè)新的GOP來(lái)解決這個(gè)問(wèn)題,但這樣做的后果是導致增加一個(gè)I幀,造成碼率資源的浪費。本文算法與文相比,不額外增加I幀的數量,可以有效地節省碼率資源,同時(shí)有效地提高場(chǎng)景切換幀后續各幀的編碼質(zhì)量和序列整體的編碼質(zhì)量。

  2 針對場(chǎng)景切換的自適應碼率控制算法

  2.1 自適應碼率控制算法

  在該算法中,當前GOP的長(cháng)度將隨著(zhù)場(chǎng)景切換幀的出現自適應地改變,并且同時(shí)對碼率資源進(jìn)行重新分配。假設默認的GOP長(cháng)度為N,分配給每個(gè)GOP的碼率資源為

  其中:B表示帶寬;F表示幀速率;Rprev表示前一個(gè)GOP編碼剩余比特或超支比特。對于第1個(gè)GOP來(lái)說(shuō),Rprev=0。每編碼一幀圖像,R更新如下:

  其中Sipb為剛編碼幀(可能為I幀、或B幀)所用的比特數。當GOP所有幀編碼完畢后,Rprev=R。

  假設當前GOP在編碼M(MN)幀后,第M+1幀檢測出場(chǎng)景切換,在H.264編碼算法中,此幀內絕大多數宏塊經(jīng)過(guò)RDO優(yōu)化之后均采用幀內預測模式編碼,當前GOP也在編完所有N幀之后結束。采用本文的算法,當檢測到第M+1幀有場(chǎng)景切換時(shí),當前GOP即提前終止,并提前進(jìn)入下一個(gè)GOP的編碼。由上述分析可知,發(fā)生場(chǎng)景切換時(shí)當前GOP的實(shí)際長(cháng)度為M幀,因此,其預分配的碼率按

  照式(1)計算并不合適,應由下式?jīng)Q定:

  由于GOP提前終止,其未編碼的N-M幀應分配的編碼比特數為

  這部分比特應該從當前GOP按照式(1)計算的預分配碼率中減去,則當前GOP提前終止時(shí),Rprev應該修正如下:

  當前GOP提前終止后對Rprev做出修正,根據式(1)則可計算出下一個(gè)GOP的預分配碼率,并開(kāi)始下一個(gè)GOP的編碼。

  本算法的前提是必須能檢測出場(chǎng)景切換,因此,快速有效地檢測檢測出場(chǎng)景切換是十分必要的。

  2.2 視頻場(chǎng)景切換快速檢測算法

  視頻場(chǎng)景切換包含如下幾種類(lèi)型:突變場(chǎng)景切換、消融和淡入淡出等。目前,已有的場(chǎng)景切換檢測算法分為3類(lèi):基于灰度值檢測、基于運動(dòng)搜索檢測和基于邊緣輪廓檢測。雖然后2種檢測算法具有比較好的性能,但是算法的高復雜度極大地限制了它們的應用,尤其是在對于實(shí)時(shí)性要求比較高的視頻通信碼率控制算法中。

  通過(guò)對視頻序列的統計分析發(fā)現,當有場(chǎng)景切換時(shí),當前幀與其參考幀在灰度和色彩信息上有很大的區別,而沒(méi)有場(chǎng)景切換的時(shí)候,整個(gè)序列的灰度和色彩基本處于平穩或者緩變的狀態(tài)。選擇mobile和grandma 2個(gè)YUV視頻序列(無(wú)場(chǎng)景切換),其各分量(Y為亮度分量,U、V為色度分量)的均值變化緩慢,如圖2所示。同時(shí),對于有頻繁場(chǎng)景切換的視頻序列(以CNN新聞?wù)瑪嗪鸵粋€(gè)構造序列為例),可知在場(chǎng)景切換處,3個(gè)分量的均值全部或部分出現突變,如圖3所示。

  

  

  圖中mean(x)為枧頻序列X分量的均值,X代表視頻序列的Y、U、V 3個(gè)分量。

  通過(guò)以上分析可知,當圖像序列的各分量的均值發(fā)生突變時(shí),一般來(lái)說(shuō)是有場(chǎng)景切換發(fā)生。據此,采用當前幀和參考幀3個(gè)分量均值的絕對差值作為判斷當前幀圖像是否有場(chǎng)景切換的差異函數為

  

  

  其中:mean()為均值函數;Scur和Sref分別表示當前幀圖像和其參考幀圖像;X代表其3個(gè)分量。

  根據差異函數,判斷是否有場(chǎng)景切換可以依據式(7)和(8):

  

  

  當式(7)和式(8)同時(shí)滿(mǎn)足時(shí),可以判定當前幀有場(chǎng)景切換發(fā)生。式中:mean(Y)、mean(U)和mean(V)分別為當前GOP內當前幀之前所有幀各分量均值的平均值;tTHl和tTH2為判決門(mén)限系數,分別描述當前幀和參考幀之間亮度和色度均值的相對差異和絕對差異。

  顯然,上述算法只需要計算各幀圖像3個(gè)分量的均值,非常低,很適合于碼率控


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>