專利名稱:一種快速計算h.264視頻標準中去塊濾波邊界強度值的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及H.264視頻標準中的去塊濾波領(lǐng)域,特別是涉及H.264去塊濾波中邊界強 度(Boundary Strength)值的快速計算方法。
背景技術(shù):
H.264視頻標準是ITU-T國際標準組織在2005年3月正式發(fā)布的一套視頻編解碼標 準(H.264標準書《Joint Video Team of ITU-T and ISO/IEC Recommendation H.264: Advanced video coding for generic audiovisual services》)。
去塊濾波技術(shù)是H.264標準采用的新技術(shù)之一,它的引入不僅提高了壓縮效率,并且 改善了圖像的主觀效果。但是其計算復雜度也是較高的,特別在解碼器中,去塊濾波的運 算量大約占解碼器計算總量的1/3。去塊濾波操作分為2個部分首先是計算濾波邊的邊 界強度BS,然后根據(jù)不同的邊界強度BS釆用強弱不同的濾波操作。在整個去塊濾波操作 中,卯%的運算量都集中在邊界強度BS的計算上。因此,降低邊界強度BS計算的復雜 度是必要的,也是有實用價值的。
通過閱讀H.264標準可以發(fā)現(xiàn),在H.264標準中,計算每條濾波邊的邊界強度BS值 是以像素為單位,因此一條濾波邊要循環(huán)計算16次才能得出該邊的所有邊界強度BS值。 在接下來的濾波操作中,利用計算出來的每個像素點的BS值進行不同強弱程度的濾波操 作。
從上面的分析可以看出H.264標準提出的這種計算方法沒有充分利用濾波邊上像素 點之間的相關(guān)性,同時也沒有利用H.264編碼模式中大塊模式所占比例較大的特性,導致 很多重復的計算量,大大增加了濾波時間。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種快速計算去塊濾波邊界強度值的方法,在保 證濾波圖像質(zhì)量不下降的情況下,能夠大大減少濾波操作所耗用的時間。
本發(fā)明解決其技術(shù)問題采用以下的技術(shù)方案 一種快速計算H.264視頻標準中去塊濾 波邊界強度的方法,首先讀取當前濾波邊兩側(cè)子塊m和n的編碼模式狀態(tài)(幀內(nèi)模式/幀 間模式),并根據(jù)其狀態(tài)進行邊界強度BS值的預判,然后進行修正操作,從而得到最終 的邊界強度值
一、如果m和n子塊分別在不同宏塊內(nèi),且m、 n所屬的這兩個宏塊中至少有一個是 幀內(nèi)編碼模式,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15]為4;如果m和n子塊在同一宏塊內(nèi),且當前宏塊是幀內(nèi)編碼模式,此時 預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15]為3; 二、如果m和n子塊在同一宏塊內(nèi),且當前宏塊編碼模式為幀間16X16、 16X8或者 8X16時,通過進一步判斷濾波邊的位置及兩邊編碼信息來預判當前濾波邊的16 個像素點的BS值BS
BS[15]為0或1;
從宏塊的左側(cè)的邊緣開始,假設(shè)從左到右將宏塊等分成4部分,將從左到右的四 條邊分別設(shè)為a、 b、 c、 d;同樣,從宏塊的上側(cè)邊緣開始,假設(shè)從上到下將宏塊 等分成4部分,將從上到下的四條邊分別設(shè)為e、 f、 g、 h;
a、 如果當前宏塊為16X16幀間編碼模式,且當前濾波邊為16X16塊內(nèi)垂直濾波時的
b、 c、 d邊或水平濾波時的f、 g、 h邊,此時預判當前整條濾波邊16個像素點的邊 界強度BS值BS
BS[15]為0,然后跳轉(zhuǎn)到步驟e;
b、 如果當前宏塊為16X8幀間編碼模式,且當前濾波邊為16X8塊內(nèi)垂直濾波時的b、
c、 d邊或水平濾波時的f、 h邊,此時預判當前整條濾波邊16個像素點的邊界強度 BS值BS[0
BS[15為0,然后跳轉(zhuǎn)到步驟e;
c、 如果當前宏塊為8X16幀間編碼模式,且當前濾波邊為8X16塊內(nèi)垂直濾波時的b、 d邊或水平濾波時的f、 g、 h邊,此時預判當前整條濾波邊16個像素點的邊界強度 BS值BS
BS[15]為0,然后跳轉(zhuǎn)到步驟e;
d、 在步驟b、 c情況下,如果當前濾波邊為幀間16X8模式水平濾波時的g邊或者為 幀間8X 16模式垂直濾波時的c邊,此時按照H.264標準先對當前濾波邊上的第一 個像素點做參考幀及運動矢量的比較,從而計算出第一個像素點的BS值BS[O], 根據(jù)H.264標準,BS
為0或1,接下來預判g(shù)或c整條濾波邊剩下的15個像素 點的邊界強度BS值BS[1] BS[15]等于BS
,然后跳轉(zhuǎn)到步驟e;
e、 以4X4塊為單位,按照H.264標準進行殘差系數(shù)判決,如果有殘差系數(shù)則將前面 步驟計算得到的BS值校正為2,否則保持原判
三、如果當前濾波邊沒有經(jīng)歷步驟一、二的預判過程,則可以知道當前宏塊編碼模式 為幀間8X8、 8X4、 4X8或者4X4,此時以4X4塊為單位,按照H.264標準進 行邊界強度BS值的計算。 經(jīng)過以上的三個步驟,即完成了 BS的計算,在接K來的濾波操作中可根據(jù)徇到的邊界 強度值進行不同強弱程度的濾波。
本發(fā)明與已有技術(shù)相對照,效果是積極且明顯的適用于H.264標準中去塊濾波的情 況,由于考慮了邊界強度BS值的提前預判策略,在推薦的不同測試序列下,較之H.264 標準算法能節(jié)省約69% 75%的濾波運算時間,因此能更好的促進H.264標準在實際應(yīng)用 中的使用效果。
圖1為本發(fā)明提出的計算濾波強度BS流程圖; 圖2為幀間宏塊模式中的可預判邊結(jié)構(gòu)圖3為H. 264標準算法和本發(fā)明的算法的實驗結(jié)果對比圖。
具體實施例方式
下面結(jié)合實施例對本發(fā)明作進一步說明,但不限定本發(fā)明。 實施例
本實施例進行的是基于H. 264標準的視頻解碼濾波過程,其流程如圖1所示
(1) 讀取當前濾波邊兩側(cè)子塊的編碼模式狀態(tài),根據(jù)其編碼狀態(tài)(幀內(nèi)模式/幀間模式)
來預判邊界強度BS值;
(2) 如果當前濾波邊在宏塊邊緣上即m、 n子塊分別屬于不同的宏塊,且m、 n所屬的 這兩個宏塊中至少有一個是幀內(nèi)編碼模式,此時預判當前整條濾波邊16個像素點的邊界 強度BS值BS
BS[15]為4,然后跳轉(zhuǎn)到步驟(10);
(3) 如果當前濾波邊不在宏塊邊緣上即m、 n子塊在同一宏塊內(nèi),且當前宏塊是幀內(nèi)編 碼模式,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15]為3, 然后跳轉(zhuǎn)到步驟(10);
(4) 如果m、 n子塊在同一宏塊內(nèi),且當前宏塊為16X16的幀間模塊模式時(如圖2 中的16X16塊所示),如果當前濾波邊為圖2中16X16塊內(nèi)垂直濾波時的b、 c、 d邊或 水平濾波時的f、g、h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15]為0,然后跳轉(zhuǎn)到步驟(8);
(5) 如果m、 n子塊在同一宏塊內(nèi),且當前宏塊為16X8的幀間模塊模式時(如圖2中 的16X8塊所示),如果當前濾波邊為圖2中16X8塊內(nèi)垂直濾波時的b、 c、 d邊或水平 濾波時的f、h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15] 為0,然后跳轉(zhuǎn)到步驟(8);
(6) 如果m、 n子塊在同一宏塊內(nèi),且當前宏塊為8X16的幀間模塊模式時(如圖2中 的8X16塊所示),如果當前濾波邊為圖2中8X16塊內(nèi)垂直濾波時的b、 d邊或水平濾波 時的f、 g、 h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
BS[15] 為0,然后跳轉(zhuǎn)到步驟(8);
(7) 在(5)、 (6)情況下,如果當前濾波邊為圖2中幀間16X8模式水平濾波時的g邊 或者為幀間8X 16模式垂直濾波時的c邊時,按照H.264標準先對當前濾波邊上的第一個 像素點做參考幀及運動矢量的比較,從而計算出第一個像素點的BS值根據(jù)H.264標準, BS[O]為O或l,接下來預判g(shù)或c整條濾波邊剩下的15個像素點的邊界強度BS值BS[1] BS[15]等于BS[O];
(8) 經(jīng)過(4) (7)的預判后,按照H.264標準進行殘差系數(shù)判決,如果有殘差系數(shù) 則將前面步驟計算得到的BS值校正為2,否則保持原判,然后跳轉(zhuǎn)到步驟(10);
(9) 如果當前濾波邊沒有經(jīng)歷(2) (8)的預判過程,則可以知道當前宏塊編碼模式 為幀間8X8、 8X4、 4X8或者4X4,此時以4X4塊為單位,按照H.264標準計算得到邊 界強度BS值;
(10)當前濾波邊BS計算完成。
實現(xiàn)效果測試平臺為VC6.0編譯環(huán)境,Windows XP操作系統(tǒng),P4 2. 40GHz處理器, 256MB內(nèi)存。所選測試序列特性為長度300幀、分辯率大小為QCIF格式、編碼碼率為30fps、 每15幀編1個I幀、量化參數(shù)為28。比較Foreman、 Contai證、Coastguard、 Mobile 這4個推薦測試序列,從圖3中可以看出,較之H.264標準算法,本發(fā)明使用的算法能節(jié) 省約69% 75%的濾波運算時間,由此可以看出本發(fā)明提出的快速預判濾波邊界強度BS 值的算法相比較H.264標準算法始終處在更佳的狀態(tài)。
權(quán)利要求
1.一種快速計算H.264視頻標準中去塊濾波邊界強度的方法,其特征在于首先讀取當前濾波邊兩側(cè)子塊m和n的編碼模式狀態(tài),并根據(jù)其狀態(tài)進行邊界強度BS值的預判,然后進行修正操作,從而得到最終的邊界強度值1)、如果m和n子塊分別在不同宏塊內(nèi),且m、n所屬的這兩個宏塊中至少有一個是幀內(nèi)編碼模式,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
~BS[15]為4;如果m和n子塊在同一宏塊內(nèi),且當前宏塊是幀內(nèi)編碼模式,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
~BS[15]為3;2)、如果m和n子塊在同一宏塊內(nèi),且當前宏塊編碼模式為幀間16×16、16×8或者8×16時,通過進一步判斷濾波邊的位置及兩邊編碼信息來預判當前濾波邊的16個像素點的BS值BS
~BS[15]為0或1;從宏塊的左側(cè)的邊緣開始,假設(shè)從左到右將宏塊等分成4部分,將從左到右的四條邊分別設(shè)為a、b、c、d;同樣,從宏塊的上側(cè)邊緣開始,假設(shè)從上到下將宏塊等分成4部分,將從上到下的四條邊分別設(shè)為e、f、g、h;a、如果當前宏塊為16×16幀間編碼模式,且當前濾波邊為16×16塊內(nèi)垂直濾波時的b、c、d邊或水平濾波時的f、g、h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
~BS[15]為0,然后跳轉(zhuǎn)到步驟e;b、如果當前宏塊為16×8幀間編碼模式,且當前濾波邊為16×8塊內(nèi)垂直濾波時的b、c、d邊或水平濾波時的f、h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
~BS[15]為0,然后跳轉(zhuǎn)到步驟e;c、如果當前宏塊為8×16幀間編碼模式,且當前濾波邊為8×16塊內(nèi)垂直濾波時的b、d邊或水平濾波時的f、g、h邊,此時預判當前整條濾波邊16個像素點的邊界強度BS值BS
~BS[15]為0,然后跳轉(zhuǎn)到步驟e;d、在步驟b、c情況下,如果當前濾波邊為幀間16×8模式水平濾波時的g邊或者為幀間8×16模式垂直濾波時的c邊,此時按照H.264標準先對當前濾波邊上的第一個像素點做參考幀及運動矢量的比較,從而計算出第一個像素點的BS值BS
,根據(jù)H.264標準,BS
為0或1,接下來預判g(shù)或c整條濾波邊剩下的15個像素點的邊界強度BS值BS[1]~BS[15]等于BS
,然后跳轉(zhuǎn)到步驟e;e、以4×4塊為單位,按照H.264標準進行殘差系數(shù)判決,如果有殘差系數(shù)則將前面步驟計算得到的BS值校正為2,否則保持原判;3)、如果當前濾波邊沒有經(jīng)歷步驟一、二的預判過程,則可以知道當前宏塊編碼模式為幀間8×8、8×4、4×8或者4×4,此時以4×4塊為單位,按照H.264標準進行邊界強度BS值的計算。
全文摘要
本發(fā)明涉及一種快速計算H.264視頻標準中去塊濾波邊界強度值的方法讀取濾波邊兩側(cè)子塊m、n的編碼狀態(tài)并進行如下操作1.如果m、n子塊所屬宏塊中至少有一個是幀內(nèi)編碼模式,預判當前整條濾波邊16個像素點邊界強度值為4或3;2.如果m、n子塊在同一宏塊內(nèi),且該宏塊編碼模式為幀間16×16、16×8或8×16時,進一步判斷濾波邊的位置及塊信息,從而預判當前濾波邊16個像素點邊界強度值為0或1。經(jīng)過此預判步驟后,再根據(jù)H.264標準對其進行校正,最終得到邊界強度BS值;3.如果m、n子塊在同一宏塊內(nèi),且該宏塊編碼模式為幀間8×8、8×4、4×8或4×4時,以4×4塊為單位,按照H.264標準計算其邊界強度。
文檔編號H04N7/32GK101106713SQ20071005284
公開日2008年1月16日 申請日期2007年7月27日 優(yōu)先權(quán)日2007年7月27日
發(fā)明者立 朱, 胡瑞敏, 皓 陳, 鐃 陳, 媛 高 申請人:武漢大學