專利名稱:高速去塊效應(yīng)濾波方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻圖像處理技術(shù)領(lǐng)域,更進(jìn)一步涉及一種高速去塊效應(yīng)的濾波方 法。
背景技術(shù):
為了改善視頻圖像在解碼后產(chǎn)生的方塊效應(yīng),去塊效應(yīng)濾波技術(shù)在解碼端已經(jīng)被 廣泛使用。去塊效應(yīng)濾波技術(shù)是根據(jù)視頻圖像宏塊中的每一個(gè)4X4子塊的邊界強(qiáng)度和量 化系數(shù),對(duì)圖像中的每一個(gè)4X4子塊像素進(jìn)行濾波,以消除圖像中由于變換量化引入的方 塊效應(yīng)。去塊效應(yīng)濾波技術(shù)對(duì)圖像中每一個(gè)4X4塊的內(nèi)容都要進(jìn)行縱向和橫向兩次濾波, 由此涉及到大量的數(shù)值計(jì)算和存儲(chǔ)器讀寫。在現(xiàn)有的去塊效應(yīng)濾波方法中,都以如何提高濾波速度為設(shè)計(jì)重點(diǎn)。例如,專 利申請(qǐng)“H. 264解碼器去塊效應(yīng)濾波的操作方法”(申請(qǐng)?zhí)朇N200710064949. 8,公開(kāi)號(hào) CN101035276A)中,為了提高濾波速度,該方法將一個(gè)宏塊左右分成兩個(gè)8X 16塊,先后對(duì) 每個(gè)8X 16塊中4X4子塊的垂直邊界和水平邊界按照從上到下的順序進(jìn)行濾波。該濾波 順序有利于濾波過(guò)程中的數(shù)據(jù)復(fù)用,減少濾波過(guò)程對(duì)存儲(chǔ)器的訪問(wèn)量。但該方法在數(shù)據(jù)讀 入和數(shù)據(jù)輸出時(shí)采用DDR SRAM存儲(chǔ)器,并不使用片上存儲(chǔ)器,整個(gè)濾波過(guò)程中大量的時(shí)鐘 周期用來(lái)對(duì)DDR SRAM進(jìn)行控制和訪問(wèn),降低了濾波速度。又 如, 論 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.)中, 為了提高濾波速度,提出了一種垂直邊界和水平邊界交替濾波的去塊效應(yīng)濾波方法。該方 法將一個(gè)宏塊分成8個(gè)4 X 8塊,然后對(duì)每個(gè)4 X 8塊中的4 X 4子塊中的邊界依照從上到下 的順序進(jìn)行濾波,這種宏塊邊界濾波順序使片上存儲(chǔ)器資源的使用量進(jìn)一步減少,并且濾 波的周期個(gè)數(shù)也比之前減少了 7個(gè),但該方法中的邊界濾波順序過(guò)于繁復(fù),雖然減少了片 上資源的使用量,但控制邏輯占用資源較多,并影響了濾波速度的進(jìn)一步提升。
發(fā)明內(nèi)容
本發(fā)明克服了現(xiàn)有技術(shù)存在的上述不足,提出了一種高速去塊效應(yīng)濾波方法。該 方法提出了一種新的濾波順序,并將一個(gè)完整的濾波過(guò)程分成讀入數(shù)據(jù),計(jì)算濾波像素的 上限值和濾波強(qiáng)度值,預(yù)濾波,更新像素,輸出數(shù)據(jù)五個(gè)步驟,通過(guò)合理的組織濾波和像素 數(shù)據(jù)的讀寫順序,減少了濾波過(guò)程中的數(shù)據(jù)等待周期,提高了濾波速度。本發(fā)明的具體步驟如下(1)對(duì)宏塊進(jìn)行橫向切分。將亮度塊從上到下分成四個(gè)4X16子塊,將色度塊分成 四個(gè)4X8子塊。(2)對(duì)宏塊的垂直邊界進(jìn)行濾波。先后對(duì)亮度數(shù)據(jù)的每個(gè)4X 16塊和色度數(shù)據(jù)的 每個(gè)4X8塊中的4X4子塊邊界,按照從左到右的順序進(jìn)行垂直邊界的循環(huán)濾波。
(3)對(duì)宏塊進(jìn)行縱向切分。將亮度塊從左到右分成四個(gè)16X4子塊,將色度塊分成 四個(gè)8X4子塊。(4)對(duì)宏塊的水平邊界進(jìn)行濾波。先后對(duì)亮度數(shù)據(jù)的每個(gè)16X4塊和色度數(shù)據(jù)的 每個(gè)8X4塊中的4X4子塊邊界,按照從上到下的順序進(jìn)行水平邊界的循環(huán)濾波。上述步驟(2)和步驟(4)中邊界循環(huán)濾波的步驟如下第一,讀入數(shù)據(jù)。 在進(jìn)行垂直邊界濾波時(shí),從存儲(chǔ)器中讀入垂直邊界右邊的像素?cái)?shù) 據(jù)和宏塊的編碼參數(shù),從第五個(gè)步驟的輸出數(shù)據(jù)中讀入垂直邊界左邊的像素?cái)?shù)據(jù)。在進(jìn)行 水平邊界濾波時(shí),從存儲(chǔ)器中讀入水平邊界下邊的像素?cái)?shù)據(jù)和宏塊的編碼參數(shù),從第五個(gè) 步驟的輸出數(shù)據(jù)中讀入水平邊界上邊的待濾波數(shù)據(jù)。第二,計(jì)算濾波像素的上限值和濾波強(qiáng)度值。根據(jù)第一個(gè)步驟輸入的宏塊編碼參 數(shù),按照現(xiàn)有視頻編碼標(biāo)準(zhǔn)中規(guī)定的門限參數(shù)公式,計(jì)算濾波像素的上限值,并判斷濾波強(qiáng)度值。第三,預(yù)濾波。計(jì)算濾波邊界兩邊像素的和值和差值。第四,更新像素。根據(jù)第二個(gè)步驟和第三個(gè)步驟得到的結(jié)果,對(duì)宏塊像素按照濾波 公式進(jìn)行更新。第五,輸出數(shù)據(jù)。在進(jìn)行垂直邊界濾波時(shí),垂直邊界右邊的濾波后數(shù)據(jù)作為第一個(gè) 步驟的輸入數(shù)據(jù),垂直邊界左邊的濾波后數(shù)據(jù)存入存儲(chǔ)器中;在進(jìn)行水平邊界濾波時(shí),水平 邊界下邊的濾波后數(shù)據(jù)作為第一個(gè)步驟的輸入數(shù)據(jù),水平邊界上邊的濾波后數(shù)據(jù)存入存儲(chǔ) 器中。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)第一,減少濾波過(guò)程中數(shù)據(jù)存取周期數(shù)。本發(fā)明提出了一種新的濾波順序,對(duì)宏塊 中4 X 4子塊的垂直邊界按照從左到右,從上到下的順序?yàn)V波,對(duì)宏塊中4 X 4子塊的水平邊 界按照從上到下,從左到右的順序?yàn)V波,這種邊界濾波順序更有利于數(shù)據(jù)復(fù)用,從而減少了 濾波過(guò)程中數(shù)據(jù)的存取周期數(shù),加快了濾波速度。第二,對(duì)濾波過(guò)程的拆分更加合理。本發(fā)明將一個(gè)完整的濾波過(guò)程分成讀入數(shù)據(jù)、 計(jì)算濾波像素的上限值和濾波強(qiáng)度值、預(yù)濾波、更新像素和輸出數(shù)據(jù)五部分,每一步的計(jì)算 量趨于均衡,對(duì)濾波過(guò)程的拆分更加合理,加快了濾波速度。
圖1為本發(fā)明的流程圖。圖2為本發(fā)明宏塊垂直和水平邊界濾波步驟流程圖。
具體實(shí)施例方式下面結(jié)合附圖1對(duì)本發(fā)明做進(jìn)一步的描述步驟1,對(duì)宏塊進(jìn)行橫向切分,將亮度塊從上到下分成四個(gè)4X16子塊,將色度塊 分成四個(gè)4X8子塊。步驟2,對(duì)宏塊的垂直邊界進(jìn)行濾波。2a)對(duì)宏塊亮度數(shù)據(jù)的垂直邊界進(jìn)行濾波。對(duì)宏塊亮度數(shù)據(jù)的每個(gè)4X 16塊中的 4X4子塊邊界,按照從左到右的順序進(jìn)行讀入數(shù)據(jù),計(jì)算濾波像素的上限值和濾波強(qiáng)度值,預(yù)濾波,更新像素,輸出數(shù)據(jù)五個(gè)步驟的邊界循環(huán)濾波。
2b)對(duì)宏塊色度數(shù)據(jù)的垂直邊界進(jìn)行濾波。對(duì)宏塊色度數(shù)據(jù)的每個(gè)4X8塊中的 4X4子塊邊界,按照從左到右的順序進(jìn)行讀入數(shù)據(jù),計(jì)算濾波像素的上限值和濾波強(qiáng)度值, 預(yù)濾波,更新像素,輸出數(shù)據(jù)五個(gè)步驟的邊界循環(huán)濾波。步驟3,對(duì)宏塊進(jìn)行縱向切分,將亮度塊從左到右分成4個(gè)16 X 4子塊,將色度塊分 成4個(gè)8X4子塊。步驟4,對(duì)宏塊的水平邊界進(jìn)行濾波。4a)對(duì)宏塊亮度數(shù)據(jù)的水平邊界進(jìn)行濾波。對(duì)宏塊亮度數(shù)據(jù)的每個(gè)16X4塊中的 4X4子塊邊界,按照從上到下的順序進(jìn)行讀入數(shù)據(jù),計(jì)算濾波像素的上限值和濾波強(qiáng)度值, 預(yù)濾波,更新像素,輸出數(shù)據(jù)五個(gè)步驟的邊界循環(huán)濾波。4b)對(duì)宏塊色度數(shù)據(jù)的水平邊界進(jìn)行濾波。對(duì)宏塊色度數(shù)據(jù)的每個(gè)8X4塊中的 4X4子塊邊界,按照從上到下的順序進(jìn)行讀入數(shù)據(jù),計(jì)算濾波像素的上限值和濾波強(qiáng)度值, 預(yù)濾波,更新像素,輸出數(shù)據(jù)的五個(gè)步驟的邊界循環(huán)濾波。結(jié)合圖2說(shuō)明本發(fā)明宏塊垂直和水平邊界濾波的具體步驟是第一,讀入數(shù)據(jù)。讀入的數(shù)據(jù)包括圖像宏塊的像素?cái)?shù)據(jù)和圖像宏塊的編碼信息。在 進(jìn)行垂直邊界濾波時(shí),從存儲(chǔ)器中讀入垂直邊界右邊的像素?cái)?shù)據(jù)和宏塊的編碼參數(shù),從第 五個(gè)步驟的輸出數(shù)據(jù)中讀入垂直邊界左邊的像素?cái)?shù)據(jù)。在進(jìn)行水平邊界濾波時(shí),從存儲(chǔ)器 中讀入水平邊界下邊的像素?cái)?shù)據(jù)和宏塊的編碼參數(shù),從第五個(gè)步驟的輸出數(shù)據(jù)中讀入水平 邊界上邊的待濾波數(shù)據(jù)。宏塊的編碼參數(shù)包括圖像量化參數(shù)值qp (取值0 52),濾波補(bǔ)償值offsetA和 OfTsetB(取值-12 +12),宏塊的編碼格式(幀內(nèi)編碼或幀間編碼)。第二,計(jì)算濾波像素的上限值和濾波強(qiáng)度值。根據(jù)第一個(gè)步驟輸入的宏塊編碼參 數(shù),按照現(xiàn)有視頻編碼標(biāo)準(zhǔn)中規(guī)定的門限參數(shù)公式,計(jì)算濾波像素的上限值,并判斷濾波強(qiáng) 度值;上限值包括兩個(gè),設(shè)為α和β,具體計(jì)算步驟如下首先根據(jù)輸入的圖像量化參數(shù)值qp和濾波補(bǔ)償值OffsetA和offsetB,根據(jù)(公 式1)和(公式2)計(jì)算得到兩個(gè)和值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。根據(jù)indexA和indexB,通過(guò)查表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——濾波強(qiáng)度值bS按照如下規(guī)則進(jìn)行判斷若邊界兩邊的兩組像素中至少有一組是幀內(nèi)編碼模式,并且邊界是宏塊邊界,則 濾波強(qiáng)度值為4 ;若邊界兩邊的兩組像素中至少有一組是幀內(nèi)編碼模式,而邊界不是宏塊 邊界,則濾波強(qiáng)度值為3 ;若邊界兩邊的兩組像素都不是幀內(nèi)編碼模式,但是兩組像素中包 含非零的變換系數(shù),則濾波強(qiáng)度值為2 ;若邊界兩邊的兩組像素使用了不同的參考圖像,或 運(yùn)動(dòng)矢量的差值大于0,則濾波強(qiáng)度值為1 ;在其他情況下濾波強(qiáng)度值為0。第三,預(yù)濾波。計(jì)算濾波邊界兩邊像素的和值和差值。從濾波邊界兩邊的兩組像 素中,一次取出兩個(gè)像素,計(jì)算這兩個(gè)像素的和值和差值,依次完成對(duì)兩組像素中所有像素 的計(jì)算。第四,更新像素。根據(jù)第二個(gè)步驟和第三個(gè)步驟得到的結(jié)果,對(duì)宏塊像素按照濾波 公式進(jìn)行更新。在垂直邊界濾波時(shí),設(shè)邊界左邊的四個(gè)像素分別是qQ,Q1, q2,q3,更新后的像素分 別是q' o,q' i,q' 2,q' 3,邊界右邊的四個(gè)像素分別是Pci, P1, P2,P3,更新后的像素分別
是 P' 0,P' 1,P' 2,P' 3°在水平邊界濾波時(shí),設(shè)邊界下邊的四個(gè)像素分別是qQ,Q1, q2,q3,更新后的像素分 別是q' Q,q' i;q' 2,q' 3,邊界上邊的四個(gè)像素分別是PQ,P1, P2,P3,更新后的像素分別
是 P' 0,P' 1,P' 2,P' 3°當(dāng)濾波強(qiáng)度bS值為4,(P2-P0) < β并且(p。_q。)< ((α +4)+2)時(shí),按照(公式 3)(公式4)(公式5)(公式6)(公式7)(公式8)對(duì)像素進(jìn)行更新。ρ' ο = (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)對(duì)像素進(jìn)行更新。ρ' 0 = (2*Pl+p0+qi+2) >>2(公式 9)q' 0 = (2*qi+q0+Pl+2) >>2(公式 10)第五,輸出數(shù)據(jù)。在進(jìn)行垂直邊界濾波時(shí),垂直邊界右邊的濾波后數(shù)據(jù)作為第一個(gè)步驟的輸入數(shù)據(jù),垂直邊界左邊的濾波后數(shù)據(jù)存入存儲(chǔ)器中;在進(jìn)行水平邊界濾波時(shí),水平 邊界下邊的濾波后數(shù)據(jù)作為第一個(gè)步驟的輸入數(shù)據(jù),水平邊界上邊的濾波后數(shù)據(jù)存入存儲(chǔ) 器中。
為了使本發(fā)明的優(yōu)點(diǎn)得到進(jìn)一步的體現(xiàn),以下是使用本方法進(jìn)行的測(cè)試。測(cè)試條件計(jì)算機(jī)配置環(huán)境為Pentium42. 6Ghz,內(nèi)存 1G,系統(tǒng)windows xp2,xiIinx 公司 FPGA 開(kāi)發(fā)工具軟件ISE10. 1版本,Menter Graphics公司時(shí)序仿真軟件modeltech6. 4e版本。硬件平臺(tái)配置環(huán)境為xilinx公司的virtex4系列開(kāi)發(fā)板。測(cè)試內(nèi)容輸入176 X 144,352 X 288,704X 576,1280 X 1024四種不同分辨率下各30幀視頻 圖像序列,統(tǒng)計(jì)本發(fā)明在每種分辨率下,濾波一個(gè)宏塊,濾波一幀圖像和濾波30幀的圖像 序列所使用的時(shí)鐘周期數(shù)。測(cè)試結(jié)果利用本發(fā)明對(duì)不同分辨率視頻圖像進(jìn)行濾波,測(cè)試結(jié)果所下
權(quán)利要求
一種高速去塊效應(yīng)濾波方法,包括以下步驟(1)對(duì)宏塊進(jìn)行橫向切分,將亮度塊從上到下分成四個(gè)4×16子塊,將色度塊分成四個(gè)4×8子塊;(2)對(duì)宏塊的垂直邊界進(jìn)行濾波,先后對(duì)亮度數(shù)據(jù)的每個(gè)4×16塊和色度數(shù)據(jù)的每個(gè)4×8塊中的4×4子塊邊界,按照從左到右的順序進(jìn)行垂直邊界的循環(huán)濾波;(3)對(duì)宏塊進(jìn)行縱向切分,將亮度塊從左到右分成四個(gè)16×4子塊,將色度塊分成四個(gè)8×4子塊;(4)對(duì)宏塊的水平邊界進(jìn)行濾波,先后對(duì)亮度數(shù)據(jù)的每個(gè)16×4塊和色度數(shù)據(jù)的每個(gè)8×4塊中的4×4子塊邊界,按照從上到下的順序進(jìn)行水平邊界的循環(huán)濾波。
2.根據(jù)權(quán)利要求1所述的高速去塊效應(yīng)濾波方法,其特征在于所述的步驟(2)和步 驟(4)邊界循環(huán)濾波的步驟是第一,讀入數(shù)據(jù),在進(jìn)行垂直邊界濾波時(shí),從存儲(chǔ)器中讀入垂直邊界右邊的像素?cái)?shù)據(jù)和 宏塊的編碼參數(shù),從第五個(gè)步驟的輸出數(shù)據(jù)中讀入垂直邊界左邊的像素?cái)?shù)據(jù);在進(jìn)行水平 邊界濾波時(shí),從存儲(chǔ)器中讀入水平邊界下邊的像素?cái)?shù)據(jù)和宏塊的編碼參數(shù),從第五個(gè)步驟 的輸出數(shù)據(jù)中讀入水平邊界上邊的待濾波數(shù)據(jù);第二,計(jì)算濾波像素的上限值和濾波強(qiáng)度值,根據(jù)第一個(gè)步驟輸入的宏塊編碼參數(shù),按 照現(xiàn)有視頻編碼標(biāo)準(zhǔn)中規(guī)定的門限參數(shù)公式,計(jì)算濾波像素時(shí)使用的上限值,并判斷濾波 強(qiáng)度值;第三,預(yù)濾波,計(jì)算濾波邊界兩邊像素的和值和差值;第四,更新像素,根據(jù)第二個(gè)步驟和第三個(gè)步驟得到的結(jié)果,對(duì)宏塊像素按照濾波公式 進(jìn)行更新;第五,輸出數(shù)據(jù),在進(jìn)行垂直邊界濾波時(shí),垂直邊界右邊的濾波后數(shù)據(jù)作為第一個(gè)步驟 的輸入數(shù)據(jù),垂直邊界左邊的濾波后數(shù)據(jù)存入存儲(chǔ)器中;在進(jìn)行水平邊界濾波時(shí),水平邊 界下邊的濾波后數(shù)據(jù)作為第一個(gè)步驟的輸入數(shù)據(jù),水平邊界上邊的濾波后數(shù)據(jù)存入存儲(chǔ)器 中。
全文摘要
本發(fā)明公開(kāi)了一種視頻圖像處理領(lǐng)域的高速去塊效應(yīng)濾波方法,主要解決現(xiàn)有技術(shù)中去塊效應(yīng)濾波速度較慢的問(wèn)題。本發(fā)明的步驟包括(1)對(duì)宏塊進(jìn)行橫向切分;(2)對(duì)宏塊的垂直邊界進(jìn)行濾波,先后對(duì)亮度數(shù)據(jù)和色度數(shù)據(jù)的4×4子塊邊界,按照從左到右的順序進(jìn)行循環(huán)濾波;(3)對(duì)宏塊進(jìn)行縱向切分;(4)對(duì)宏塊的水平邊界進(jìn)行濾波,先后對(duì)亮度數(shù)據(jù)和色度數(shù)據(jù)的4×4子塊邊界,按照從上到下的順序進(jìn)行循環(huán)濾波。本發(fā)明將宏塊的垂直和水平邊界的濾波過(guò)程分成讀入數(shù)據(jù),計(jì)算濾波像素的上限值和濾波強(qiáng)度值,預(yù)濾波,更新像素,輸出數(shù)據(jù)五個(gè)步驟。本發(fā)明減少了濾波過(guò)程中數(shù)據(jù)存取周期并且對(duì)濾波過(guò)程的拆分更加合理,提高了濾波速度。
文檔編號(hào)H04N7/32GK101951519SQ20101050512
公開(kāi)日2011年1月19日 申請(qǐng)日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者奉玉麗, 宋銳, 李云松, 李宏偉, 李明, 杜建超, 王養(yǎng)利, 肖嵩, 賈媛 申請(qǐng)人:西安電子科技大學(xué)