專利名稱:高速去塊效應濾波方法
技術領域:
本發明涉及視頻圖像處理技術領域,更進一步涉及一種高速去塊效應的濾波方 法。
背景技術:
為了改善視頻圖像在解碼后產生的方塊效應,去塊效應濾波技術在解碼端已經被 廣泛使用。去塊效應濾波技術是根據視頻圖像宏塊中的每一個4X4子塊的邊界強度和量 化系數,對圖像中的每一個4X4子塊像素進行濾波,以消除圖像中由于變換量化引入的方 塊效應。去塊效應濾波技術對圖像中每一個4X4塊的內容都要進行縱向和橫向兩次濾波, 由此涉及到大量的數值計算和存儲器讀寫。在現有的去塊效應濾波方法中,都以如何提高濾波速度為設計重點。例如,專 利申請“H. 264解碼器去塊效應濾波的操作方法”(申請號CN200710064949. 8,公開號 CN101035276A)中,為了提高濾波速度,該方法將一個宏塊左右分成兩個8X 16塊,先后對 每個8X 16塊中4X4子塊的垂直邊界和水平邊界按照從上到下的順序進行濾波。該濾波 順序有利于濾波過程中的數據復用,減少濾波過程對存儲器的訪問量。但該方法在數據讀 入和數據輸出時采用DDR SRAM存儲器,并不使用片上存儲器,整個濾波過程中大量的時鐘 周期用來對DDR SRAM進行控制和訪問,降低了濾波速度。又 如, 論 JC "An in/post-loop deblocking filter with hybrid fi lteringschedu le" (T.M.Liu, W. P. Lee, T.A.Lin, and C. Y. Lee, IEEE Transactionson Circuits and Sysems for Video Technology,vol. 17,no. 7,pp. 937-943,Jul. 2007.)中, 為了提高濾波速度,提出了一種垂直邊界和水平邊界交替濾波的去塊效應濾波方法。該方 法將一個宏塊分成8個4 X 8塊,然后對每個4 X 8塊中的4 X 4子塊中的邊界依照從上到下 的順序進行濾波,這種宏塊邊界濾波順序使片上存儲器資源的使用量進一步減少,并且濾 波的周期個數也比之前減少了 7個,但該方法中的邊界濾波順序過于繁復,雖然減少了片 上資源的使用量,但控制邏輯占用資源較多,并影響了濾波速度的進一步提升。
發明內容
本發明克服了現有技術存在的上述不足,提出了一種高速去塊效應濾波方法。該 方法提出了一種新的濾波順序,并將一個完整的濾波過程分成讀入數據,計算濾波像素的 上限值和濾波強度值,預濾波,更新像素,輸出數據五個步驟,通過合理的組織濾波和像素 數據的讀寫順序,減少了濾波過程中的數據等待周期,提高了濾波速度。本發明的具體步驟如下(1)對宏塊進行橫向切分。將亮度塊從上到下分成四個4X16子塊,將色度塊分成 四個4X8子塊。(2)對宏塊的垂直邊界進行濾波。先后對亮度數據的每個4X 16塊和色度數據的 每個4X8塊中的4X4子塊邊界,按照從左到右的順序進行垂直邊界的循環濾波。
(3)對宏塊進行縱向切分。將亮度塊從左到右分成四個16X4子塊,將色度塊分成 四個8X4子塊。(4)對宏塊的水平邊界進行濾波。先后對亮度數據的每個16X4塊和色度數據的 每個8X4塊中的4X4子塊邊界,按照從上到下的順序進行水平邊界的循環濾波。上述步驟(2)和步驟(4)中邊界循環濾波的步驟如下第一,讀入數據。 在進行垂直邊界濾波時,從存儲器中讀入垂直邊界右邊的像素數 據和宏塊的編碼參數,從第五個步驟的輸出數據中讀入垂直邊界左邊的像素數據。在進行 水平邊界濾波時,從存儲器中讀入水平邊界下邊的像素數據和宏塊的編碼參數,從第五個 步驟的輸出數據中讀入水平邊界上邊的待濾波數據。第二,計算濾波像素的上限值和濾波強度值。根據第一個步驟輸入的宏塊編碼參 數,按照現有視頻編碼標準中規定的門限參數公式,計算濾波像素的上限值,并判斷濾波強度值。第三,預濾波。計算濾波邊界兩邊像素的和值和差值。第四,更新像素。根據第二個步驟和第三個步驟得到的結果,對宏塊像素按照濾波 公式進行更新。第五,輸出數據。在進行垂直邊界濾波時,垂直邊界右邊的濾波后數據作為第一個 步驟的輸入數據,垂直邊界左邊的濾波后數據存入存儲器中;在進行水平邊界濾波時,水平 邊界下邊的濾波后數據作為第一個步驟的輸入數據,水平邊界上邊的濾波后數據存入存儲 器中。與現有技術相比,本發明具有以下優點第一,減少濾波過程中數據存取周期數。本發明提出了一種新的濾波順序,對宏塊 中4 X 4子塊的垂直邊界按照從左到右,從上到下的順序濾波,對宏塊中4 X 4子塊的水平邊 界按照從上到下,從左到右的順序濾波,這種邊界濾波順序更有利于數據復用,從而減少了 濾波過程中數據的存取周期數,加快了濾波速度。第二,對濾波過程的拆分更加合理。本發明將一個完整的濾波過程分成讀入數據、 計算濾波像素的上限值和濾波強度值、預濾波、更新像素和輸出數據五部分,每一步的計算 量趨于均衡,對濾波過程的拆分更加合理,加快了濾波速度。
圖1為本發明的流程圖。圖2為本發明宏塊垂直和水平邊界濾波步驟流程圖。
具體實施例方式下面結合附圖1對本發明做進一步的描述步驟1,對宏塊進行橫向切分,將亮度塊從上到下分成四個4X16子塊,將色度塊 分成四個4X8子塊。步驟2,對宏塊的垂直邊界進行濾波。2a)對宏塊亮度數據的垂直邊界進行濾波。對宏塊亮度數據的每個4X 16塊中的 4X4子塊邊界,按照從左到右的順序進行讀入數據,計算濾波像素的上限值和濾波強度值,預濾波,更新像素,輸出數據五個步驟的邊界循環濾波。
2b)對宏塊色度數據的垂直邊界進行濾波。對宏塊色度數據的每個4X8塊中的 4X4子塊邊界,按照從左到右的順序進行讀入數據,計算濾波像素的上限值和濾波強度值, 預濾波,更新像素,輸出數據五個步驟的邊界循環濾波。步驟3,對宏塊進行縱向切分,將亮度塊從左到右分成4個16 X 4子塊,將色度塊分 成4個8X4子塊。步驟4,對宏塊的水平邊界進行濾波。4a)對宏塊亮度數據的水平邊界進行濾波。對宏塊亮度數據的每個16X4塊中的 4X4子塊邊界,按照從上到下的順序進行讀入數據,計算濾波像素的上限值和濾波強度值, 預濾波,更新像素,輸出數據五個步驟的邊界循環濾波。4b)對宏塊色度數據的水平邊界進行濾波。對宏塊色度數據的每個8X4塊中的 4X4子塊邊界,按照從上到下的順序進行讀入數據,計算濾波像素的上限值和濾波強度值, 預濾波,更新像素,輸出數據的五個步驟的邊界循環濾波。結合圖2說明本發明宏塊垂直和水平邊界濾波的具體步驟是第一,讀入數據。讀入的數據包括圖像宏塊的像素數據和圖像宏塊的編碼信息。在 進行垂直邊界濾波時,從存儲器中讀入垂直邊界右邊的像素數據和宏塊的編碼參數,從第 五個步驟的輸出數據中讀入垂直邊界左邊的像素數據。在進行水平邊界濾波時,從存儲器 中讀入水平邊界下邊的像素數據和宏塊的編碼參數,從第五個步驟的輸出數據中讀入水平 邊界上邊的待濾波數據。宏塊的編碼參數包括圖像量化參數值qp (取值0 52),濾波補償值offsetA和 OfTsetB(取值-12 +12),宏塊的編碼格式(幀內編碼或幀間編碼)。第二,計算濾波像素的上限值和濾波強度值。根據第一個步驟輸入的宏塊編碼參 數,按照現有視頻編碼標準中規定的門限參數公式,計算濾波像素的上限值,并判斷濾波強 度值;上限值包括兩個,設為α和β,具體計算步驟如下首先根據輸入的圖像量化參數值qp和濾波補償值OffsetA和offsetB,根據(公 式1)和(公式2)計算得到兩個和值SumA和SumB。SumA = qp+OffsetA (公式 1)SumB = qp+OffsetB (公式 2)判斷SumA和SumB的大小,得到查表索引值indexA和indexB。判斷步驟如下若SumA 大于 0 且小于 51,則 indexA = SumA ;若 SumA 小于 0,則 indexA = 0 ;若 SumA 大于 51,貝丨J indexA = 51。若SumB 大于 0 且小于 51,則 indexB = SumB ;若 SumB 小于 0,則 indexB = 0 ;若 SumB 大于 51,則 indexB = 51。根據indexA和indexB,通過查表1查表得到α,β的值。_index A (for α) or incdexB (forP)_
I O I 1 I 2 I 3 1 4 I 5 I 6 I 7 8 9 1 10 111 1 12 1 13 1 14 1 15 I 16 | 17 α' 0 "0~ 0 000000000Q0T04T~ β|θ丨0丨0丨0 |o丨0 |o丨0丨0丨0丨0丨0丨0丨0丨0丨0丨2丨2
_indexA (for α) or incdexB (forP) __
I 18 I 19 I 20 I 21 I 22 I 23 I 24 丨 25 26 丨 27 !28 丨 29 30 丨 31 32 丨 33 34 \ Γ "α~~5678910~ 12 13 15 17 20 22 ~25~ 28 32 36 H "β [2 j3 [3 [3 U U U 4 6 6 7 7 8 8 [9 9 [ 10 [ 10
___indexA (for α) or incdexB (forp)
I 36 I 37 I 38 I 39 I 40 I 41 I 42 丨 43 丨 44 丨 45 46 丨 47 丨 48 49 | 50 丨 51 "α~~5θ"~56~~6ΓΤΓ"8θ"9θ" 101 113 127 144 162 182 ~203~ 226 25 " 255 — β I 11 I 11 I 12 I 12 丨 13 I 13 丨 14 丨 14 丨 15 15 丨 16 16 17 丨 17 18 18——濾波強度值bS按照如下規則進行判斷若邊界兩邊的兩組像素中至少有一組是幀內編碼模式,并且邊界是宏塊邊界,則 濾波強度值為4 ;若邊界兩邊的兩組像素中至少有一組是幀內編碼模式,而邊界不是宏塊 邊界,則濾波強度值為3 ;若邊界兩邊的兩組像素都不是幀內編碼模式,但是兩組像素中包 含非零的變換系數,則濾波強度值為2 ;若邊界兩邊的兩組像素使用了不同的參考圖像,或 運動矢量的差值大于0,則濾波強度值為1 ;在其他情況下濾波強度值為0。第三,預濾波。計算濾波邊界兩邊像素的和值和差值。從濾波邊界兩邊的兩組像 素中,一次取出兩個像素,計算這兩個像素的和值和差值,依次完成對兩組像素中所有像素 的計算。第四,更新像素。根據第二個步驟和第三個步驟得到的結果,對宏塊像素按照濾波 公式進行更新。在垂直邊界濾波時,設邊界左邊的四個像素分別是qQ,Q1, q2,q3,更新后的像素分 別是q' o,q' i,q' 2,q' 3,邊界右邊的四個像素分別是Pci, P1, P2,P3,更新后的像素分別
是 P' 0,P' 1,P' 2,P' 3°在水平邊界濾波時,設邊界下邊的四個像素分別是qQ,Q1, q2,q3,更新后的像素分 別是q' Q,q' i;q' 2,q' 3,邊界上邊的四個像素分別是PQ,P1, P2,P3,更新后的像素分別
是 P' 0,P' 1,P' 2,P' 3°當濾波強度bS值為4,(P2-P0) < β并且(p。_q。)< ((α +4)+2)時,按照(公式 3)(公式4)(公式5)(公式6)(公式7)(公式8)對像素進行更新。ρ' ο = (p2+2*p1+2*p0+2*q0+q1+4) >>3 (公式 3)ρ' ! = (p2+Pl+p0+q0+2) >>2(公式 4)ρ' 2 = (2*p3+3*p2+p1+p0+q0+4) >> 3 (公式 5)q' 0 = (p1+2*p0+2*q0+2*q1+q2+4) >>3 (公式 6)q' ! = (p0+q0+qi+q2+2) >>2(公式 7)q' 2 = (2*q3+3*q2+qi+q0+p0+4) >> 3 (公式 8)否則,按照(公式9)(公式10)對像素進行更新。ρ' 0 = (2*Pl+p0+qi+2) >>2(公式 9)q' 0 = (2*qi+q0+Pl+2) >>2(公式 10)第五,輸出數據。在進行垂直邊界濾波時,垂直邊界右邊的濾波后數據作為第一個步驟的輸入數據,垂直邊界左邊的濾波后數據存入存儲器中;在進行水平邊界濾波時,水平 邊界下邊的濾波后數據作為第一個步驟的輸入數據,水平邊界上邊的濾波后數據存入存儲 器中。
為了使本發明的優點得到進一步的體現,以下是使用本方法進行的測試。測試條件計算機配置環境為Pentium42. 6Ghz,內存 1G,系統windows xp2,xiIinx 公司 FPGA 開發工具軟件ISE10. 1版本,Menter Graphics公司時序仿真軟件modeltech6. 4e版本。硬件平臺配置環境為xilinx公司的virtex4系列開發板。測試內容輸入176 X 144,352 X 288,704X 576,1280 X 1024四種不同分辨率下各30幀視頻 圖像序列,統計本發明在每種分辨率下,濾波一個宏塊,濾波一幀圖像和濾波30幀的圖像 序列所使用的時鐘周期數。測試結果利用本發明對不同分辨率視頻圖像進行濾波,測試結果所下
權利要求
一種高速去塊效應濾波方法,包括以下步驟(1)對宏塊進行橫向切分,將亮度塊從上到下分成四個4×16子塊,將色度塊分成四個4×8子塊;(2)對宏塊的垂直邊界進行濾波,先后對亮度數據的每個4×16塊和色度數據的每個4×8塊中的4×4子塊邊界,按照從左到右的順序進行垂直邊界的循環濾波;(3)對宏塊進行縱向切分,將亮度塊從左到右分成四個16×4子塊,將色度塊分成四個8×4子塊;(4)對宏塊的水平邊界進行濾波,先后對亮度數據的每個16×4塊和色度數據的每個8×4塊中的4×4子塊邊界,按照從上到下的順序進行水平邊界的循環濾波。
2.根據權利要求1所述的高速去塊效應濾波方法,其特征在于所述的步驟(2)和步 驟(4)邊界循環濾波的步驟是第一,讀入數據,在進行垂直邊界濾波時,從存儲器中讀入垂直邊界右邊的像素數據和 宏塊的編碼參數,從第五個步驟的輸出數據中讀入垂直邊界左邊的像素數據;在進行水平 邊界濾波時,從存儲器中讀入水平邊界下邊的像素數據和宏塊的編碼參數,從第五個步驟 的輸出數據中讀入水平邊界上邊的待濾波數據;第二,計算濾波像素的上限值和濾波強度值,根據第一個步驟輸入的宏塊編碼參數,按 照現有視頻編碼標準中規定的門限參數公式,計算濾波像素時使用的上限值,并判斷濾波 強度值;第三,預濾波,計算濾波邊界兩邊像素的和值和差值;第四,更新像素,根據第二個步驟和第三個步驟得到的結果,對宏塊像素按照濾波公式 進行更新;第五,輸出數據,在進行垂直邊界濾波時,垂直邊界右邊的濾波后數據作為第一個步驟 的輸入數據,垂直邊界左邊的濾波后數據存入存儲器中;在進行水平邊界濾波時,水平邊 界下邊的濾波后數據作為第一個步驟的輸入數據,水平邊界上邊的濾波后數據存入存儲器 中。
全文摘要
本發明公開了一種視頻圖像處理領域的高速去塊效應濾波方法,主要解決現有技術中去塊效應濾波速度較慢的問題。本發明的步驟包括(1)對宏塊進行橫向切分;(2)對宏塊的垂直邊界進行濾波,先后對亮度數據和色度數據的4×4子塊邊界,按照從左到右的順序進行循環濾波;(3)對宏塊進行縱向切分;(4)對宏塊的水平邊界進行濾波,先后對亮度數據和色度數據的4×4子塊邊界,按照從上到下的順序進行循環濾波。本發明將宏塊的垂直和水平邊界的濾波過程分成讀入數據,計算濾波像素的上限值和濾波強度值,預濾波,更新像素,輸出數據五個步驟。本發明減少了濾波過程中數據存取周期并且對濾波過程的拆分更加合理,提高了濾波速度。
文檔編號H04N7/32GK101951519SQ20101050512
公開日2011年1月19日 申請日期2010年10月12日 優先權日2010年10月12日
發明者奉玉麗, 宋銳, 李云松, 李宏偉, 李明, 杜建超, 王養利, 肖嵩, 賈媛 申請人:西安電子科技大學