專利名稱:H.264/avc多參考幀的快速選擇方法
技術領域:
本發(fā)明涉及一種信息處理的視頻編碼的方法,特別是一種H.264/AVC多參考幀的快速選擇方法。
背景技術:
自從ITU-T頒布了H.261后,基于塊的混合編碼方法作為框架被普遍采用并不斷發(fā)展。國際標準H.261、H.263、MPEG-1、MPEG-2、MPEG-4等的制定極大推動了多媒體技術的應用。然而,隨著新服務的大量增加和高清電視的即將普及,以及現有傳輸媒體如Cable Modem、Xdsl、UMTS較低的傳輸碼率,迫切需要提高編碼效率;同時還要求視頻編碼標準能夠適應現存或未來的網絡。這些問題為新視頻編碼標準H.264/AVC的產生提供了切實的依據。
這些視頻編碼標準均采用混合編碼框架,即將輸入視頻圖象分割成宏塊,對其進行預測、變換、量化、熵編碼。預測包括幀內預測和幀間預測,幀內預測可去除空間冗余,而幀間預測可去除時間上的冗余。
H.264/AVC仍遵從這種基于塊的混合編碼方案,但包含了許多新特征VCL層和NAL層分離、空間域的幀內估計、1/4像素精度運動估計、自適應塊尺寸運動補償、多參考幀運動補償預測、通用B幀的概念、低復雜16bit的整數變換和量化、環(huán)內去塊濾波器和高效的熵編碼。這些新特征一方面能夠顯著提高編碼效率;另一方面具有網絡友好性,可有效用于各種網絡和應用環(huán)境。
其中H.264/AVC為進一步提高幀間圖象的編碼效率,將幀間預測的宏塊分割成7種塊模式(16×16,16×8,8×16,8×8,8×4,4×8,4×4),并對每種模式下的分割塊進行多參考幀運動估計與補償,以便最大限度地去除時間冗余性。這些塊模式的運動估計和參考幀選擇是以率失真RDO(Rate-Distortion Optimization)為判決依據,如公式(1)所示。除這些塊模式外,P幀還支持SKIP模式(或B幀支持Direct模式)和幀內預測模式(INTRA)。實際中,前向幀間預測通常采用5個參考幀。
JMOTION(mv,ref|λMOTION)=SAD(s,r(ref,mv))+λMOTION(R(mv-pred)+R(ref))(1)其中,s是當前塊像素值,ref為要選擇的參考幀,mv是參考ref的運動矢量,pred為預測矢量,r(ref,mv)為參考塊的像素值,SAD(sum of absolute difference)為當前塊與參考塊像素差值的絕對值和,碼率R包括運動矢量與其預測值的差值編碼比特和參考幀的編碼比特。
校驗模型采用了一種全搜索方法,如附圖1所示,當前塊先在最近的參考幀中進行運動估計,可通過公式(1)來計算在該參考幀內的JMOTION;然后依次在其它參考幀中運動估計并比較JMOTION,最終JMOTION最小的參考幀為最佳參考幀。具體過程如圖1所示,在16×16,16×8,8×16,8×8模式中,每個子塊分別在不同參考幀運動估計;而8×8塊中所有8×4,4×8,4×4模式的子塊首先在同一個參考幀運動估計并累加JMOTION,然后才在不同參考幀之間進行比較。
這種對多參考幀的全搜索方法可以獲得最好的編碼效果,但顯著增加了編碼的復雜度,其處理時間隨著參考幀數量增多呈線性增長。實際中,多參考幀預測補償殘差的減少依賴于序列的特征。因此對于相當多的序列提高的編碼效率并不明顯,而增加的計算變成一種浪費。
發(fā)明內容
本發(fā)明的目的是提供一種H.264/AVC實時編碼器的多參考幀快速選擇方法,相對于全搜索方法,它可以在信噪比和碼率變化很小的同時,大量節(jié)約編碼時間。
為達到上述目的,本發(fā)明的構思是根據序列特征來確定搜索的參考幀數量,在這個數量范圍內再進行搜索,可以減少實際搜索的參考幀數目,可有效降低計算復雜度,同時信噪比和碼率變化可忽略不計。
根據上數構思,本發(fā)明采用下述技術方案一種H.264/AVC多參考幀的快速選擇方法,其特征在于利用當前序列的紋理特征、當前塊的運動信息以及不同模式間多參考幀選擇的相關性來自適應地確定所需的參考幀數量,通過比較當前塊在這個較小數量范圍內參考幀的率失真,以率失真最小的參考幀為最佳參考幀。。
快速選擇的步驟如下a)對已編碼幀內宏塊的最佳模式分布進行統計,以此來衡量當前序列的紋理特征,確定當前幀可能需要的參考幀數量;b)比較當前塊在步驟a中確定的參考幀數量范圍內的率失真,如果是單調增加,通常距離最近參考幀為最佳參考幀;否則在非單調情況下,結合運動信息進一步來確定當前塊所需參考幀的數量,比較這個范圍內參考幀的率失真,最終將率失真最小的參考幀被確定為最佳參考幀;c)用步驟a和步驟b中的方法來快速確定16×16、8×8和4×4模式的最佳參考幀;d)利用與8×8和4×4模式多參考幀選擇的相關性來確定8×4和4×8模式下各塊可能選擇的參考幀,如果可能選擇的參考幀為一幀,則該幀為最佳參考幀;如果為兩幀,則比較二者的率失真,最終確定8×4和4×8模式的最佳參考幀;e)利用與16×16和8×8模式多參考幀選擇的相關性來確定16×8和8×16模式下各塊可能選擇的參考幀的分布范圍,比較該范圍內參考幀的率失真,得到16×8和8×16模式的最佳參考幀。
本發(fā)明與現有技術相比,具有如下顯而易見的突出實質性特點和顯著優(yōu)點本發(fā)明利用當前編碼序列的紋理特征、當前塊的運動信息以及不同模式間多參考幀選擇的相關性來自適應地確定所需參考幀的數量。實驗表明在保持碼率和信噪比幾乎不變的同時,本發(fā)明的方法能大量節(jié)省編碼時間。
圖1是校驗模型中不同模式的多參考幀選擇圖2是本發(fā)明的處理流程圖具體實施方式
以下結合附圖描述本發(fā)明的H.264/AVC實時編碼器的多參考幀快速選擇方法的一個具體實施例在H.264/AVC校驗模型Jm72編碼器上,具體工作環(huán)境為3.06GHz CPU的惠普工作站,序列測試結構為IBBP,編碼器的主要參數包括熵編碼采用CABAC;運動估計采用全搜索,搜索范圍為16,1/4搜索精度;量化參數為24,28和32。實驗測試包括5個CIF序列Foreman、Flower、Paris、Bus和Mobile。
首先我們在Jm72編碼器上采用全搜索的方法測試了這5個序列在不同數量參考幀下的編碼情況,列在表1的數據是使用1到4個參考幀時分別與使用5個參考幀時編碼效率(僅信噪比變化和碼率變化)的比較,例如ΔPSNR=0.00,表示與使用5個參考幀時的信噪比相同。
表1編碼器在不同數量的參考幀下的性能比較
附注QP=28,ΔPSNR為信噪比變化,ΔR為碼率變化(與5個參考幀情況比較)由表1可以看到,不同位置的參考幀對提高編碼效率的作用是不同,前兩個參考幀對提高編碼效率的作用最明顯。隨著距離的增加,較遠參考幀對提高編碼效率的作用逐漸降低。因此通常情況下,距離當前幀越近的參考幀相關性越強,選擇的優(yōu)先級也越高。但在一些特殊情況下,距離較遠的參考幀能夠明顯提高編碼效率,例如在對象邊緣遮擋和顯露時,或者在場景快速切換時,多參考幀中的某一幀可能更符合當前宏塊需要。由表中可以看出編碼信噪比和碼率在有些序列中并非完全單調變化,說明多參考幀并不是對所有序列都是有效,而這些變化與序列的紋理特征和運動趨勢密切相關。因此,可以看出,多參考幀提高的編碼效率與序列的紋理特征和運動信息有關。
由表1實驗結果可見對于紋理細膩、場景變化明顯的序列,例如Mobile序列,參考幀數量越多,其編碼效率越高。本發(fā)明通過統計已編碼幀的模式分布來描述序列的紋理變化如果選中的較小塊模式(8×8、8×4、4×8和4×4)的比例P(sub-MB)越大,說明紋理較細膩;如果最近參考幀內預測模式選中比例P(INTRA)較大,說明序列場景可能在切換,這時參考幀數量不必過多;如果P(SKIP)較大,說明序列場景變化甚微,僅需最近的參考幀即可;如果選中較大塊模式(16×16,16×8,8×16)的比例P(MB)較高,說明該序列紋理比較平坦,場景變化緩慢因此不需要過多的參考幀。另外可通過比較當前塊在不同參考幀中的運動矢量(MVi)變化來確定運動變化程度。如果|MVi-MVi-1|值較大,表示當前塊在不同參考幀運動變化明顯,需要搜索較多的參考幀。否則表示運動變化較小,不必檢測過多的參考幀。
最終判決最佳參考幀以率失真JMOTION為準則,因此可以結合上述對序列的紋理特征和運動信息分析,通過判斷當前塊在不同參考幀的JMOTION的單調性來快速判定最佳參考幀。首先統計紋理特征,確定需要參考幀的數目;然后比較當前塊的JMOTION在這個數目范圍中的單調性。如果是單調增加,通常最近參考幀為最佳參考幀;否則在非單調情況下,結合運動信息來確定當前塊所需參考幀的數目,因此可在有限數量的參考幀內比較JMOTION,最終確定最佳參考幀。
在本發(fā)明中,僅對16×16、8×8和4×4模式采用上述方法來快速選定最佳參考幀,其它模式可采用與這三種模式在參考幀選擇時的相關性來快速判定。其具體過程如下
利用上述的快速方法對當前宏塊的16×16模式進行多參考幀運動估計得到最佳參考幀Ref16×16和相應的SAD16×16。同樣利用上述快速方法對當前宏塊的四個8×8塊的8×8和4×4模式分別進行多參考幀運動估計得到8×8模式的最佳參考幀Ref8×8(i)和相應的SADa×8(i)以及4×4模式的最佳參考幀Ref4×4(i),i表示8×8塊的序號。對于整個宏塊而言,如果排除公式(1)中運動矢量和參考幀的編碼比特的影響,通常存在以下關系式 因此可推斷,16×8和8×16模式下各塊的最佳參考幀最有可能分布在16×16模式和8×8模式的最佳參考幀之間,其分布區(qū)間可用下式表示Ref16×8(i)和Ref8×16(i)∈ (3)[min(Ref16×16,minRef8×8),max(Ref16×16,maxRef8×8)]i∈
其中minRef8×8=min(Ref8×8(i)),maxRef8×8=max(Ref8×8(i))i∈
。因此僅需檢查該區(qū)間范圍內的參考幀即可。
對于8×8塊,如圖1所示,8×4、4×8和4×4模式下所有子塊在同一個參考幀內進行運動估計后,計算JMOTION和后,再進行幀間比較。因此可以推斷在8×8塊中8×8和4×4模式的最佳參考幀最有可能是8×4和4×8模式的最佳參考幀。具體過程如下對于第i個8×8塊,其8×8模式的最佳參考幀為Ref8×8(i),而4×4模式的最佳參考幀為Ref4×4(i),如果Ref8×8(i)等于Ref4×4(i),則該參考幀為8×4和4×8模式的最佳參考幀;否則Ref8×8(i)和Ref4×4(i)這兩個參考幀可能為8×4和4×8模式的最佳參考幀,因此只比較這兩個參考幀的JMOTION即可。
本發(fā)明充分利用上述的特征,將之有機結合在一起,得到多參考幀的快速選擇方法,其流程如圖2所示,具體步驟實施如下①對已編碼幀進行模式統計和分析,確定當前幀所需的參考幀數量如果P(INTRA)與P(SKIP)的和大于某個閾值(T0),僅需最近的兩個參考幀即可;如果P(sub-MB)小于P(MB),需要四個參考幀,否則檢查全部參考幀。
②對第一個參考幀進行運動估計,如果SAD小于某個閾值(T1),提前終止對其它參考幀的運動估計。
③在已確定的參考幀范圍內依次比較鄰近的兩個參考幀的JMOTION,如屬單調遞增,則最近參考幀為最佳;否則根據運動信息判斷是否檢測下一個參考幀。
④重復步驟1-3,依次確定16×16、8×8和4×4模式的最佳參考幀。
⑤利用8×4和4×8模式與8×8和4×4模式的參考幀選擇的相關性確定這兩種模式的可能選擇的參考幀,如果可能選擇的參考幀為一幀,則該幀為最佳參考幀;如果為兩幀,則比較二者的率失真,最終確定最佳參考幀。
⑥利用與16×16和8×8模式的相關性來確定16×8和8×16模式的可能參考幀分布范圍,比較范圍內參考幀的JMOTION,確定最佳參考幀。
觀察上述方法可以發(fā)現,在步驟1和3中利用了紋理特征和運動信息。在步驟1中,如果將對整個幀進一步分割成較小的區(qū)域進行統計,效果會更好。閾值T0可根據實際情況賦值,在本發(fā)明的實驗中為0.4。步驟2中的閾值T1與量化參數有關,根據量化后4×4矩陣的直流系數是否等于或小于1來確定。
實驗結果表明,本發(fā)明的多參考快速選擇方法與校驗模型的全搜索方法比較,可提高編碼速度大約30%左右,同時信噪比和碼率變化可以忽略。
權利要求
1.一種H.264/AVC多參考幀的快速選擇方法,其特征在于利用當前編碼序列的紋理特征、當前塊的運動信息以及不同模式間多參考幀選擇的相關性來自適應地確定所需參考幀的數量,通過比較當前塊在這個較小數量范圍內參考幀的率失真,以率失真最小的參考幀為最佳參考幀。
2.如權利要求1所述的H.264/AVC多參考幀的快速選擇方法,其特征在于快速選擇的步驟如下a.對已編碼幀內宏塊的最佳模式分布進行統計,以此來衡量當前序列的紋理特征,確定當前幀可能需要的參考幀數量;b.比較當前塊在步驟a中確定的參考幀數量范圍內的率失真,如果是單調增加,通常距離最近參考幀為最佳參考幀;否則在非單調情況下,結合運動信息進一步來確定當前塊所需參考幀的數量,比較這個范圍內參考幀的率失真,最終將率失真最小的參考幀被確定為最佳參考幀;c.用步驟a和步驟b中的方法來快速確定16×16、8×8和4×4模式的最佳參考幀;d.利用與8×8和4×4模式多參考幀選擇的相關性來確定8×4和4×8模式下各塊可能選擇的參考幀,如果可能選擇的參考幀為一幀,則該幀為最佳參考幀;如果為兩幀,則比較二者的率失真,最終確定8×4和4×8模式的最佳參考幀;e.利用與16×16和8×8模式多參考幀選擇的相關性來確定16×8和8×16模式下各塊可能選擇的參考幀的分布范圍,比較該范圍內參考幀的率失真,得到16×8和8×16模式的最佳參考幀。
全文摘要
本發(fā)明涉及一種H.264/AVC多參考幀的快速選擇方法。本發(fā)明方法是利用當前編碼序列的紋理特征、當前塊的運動信息以及不同模式間多參考幀選擇的相關性來自適應地確定所需參考幀的數量,通過比較當前塊在這個較小數量范圍內參考幀的率失真,以率失真最小的參考幀為最佳參考幀。實驗表明本發(fā)明方法在保持碼率和信噪比幾乎不變的同時,本發(fā)明能夠大量節(jié)省編碼時間。
文檔編號H04N7/26GK1649413SQ20051002357
公開日2005年8月3日 申請日期2005年1月26日 優(yōu)先權日2005年1月26日
發(fā)明者張兆揚, 滕國偉, 趙海武 申請人:上海大學