1.0 引言 高效視頻編碼(HEVC)是H.264/MPEG-4 AVC(高級(jí)視頻編碼)的一種升級(jí)版視頻壓縮標(biāo)準(zhǔn)(即ISO/IEC 23008-2 MPEG-H第2部分和ITU-T H.265)是由ISO/IEC動(dòng)態(tài)圖像專家組(MPEG)和ITU-T視頻編碼專家組(VCEG)共同編寫(xiě)的。與業(yè)界標(biāo)準(zhǔn)H.264相比,HEVC能夠以幾乎同樣的視頻質(zhì)量實(shí)現(xiàn)半比特速率,并且有望在視頻應(yīng)用中得到廣泛運(yùn)用,其中包括:手機(jī)、廣播、機(jī)頂盒、視頻會(huì)議、視頻監(jiān)控、車(chē)載等。 下圖顯示了帶有環(huán)路濾波的HEVC視頻解碼器結(jié)構(gòu)圖,突出顯示的即為環(huán)路濾波。如圖所示,它是一個(gè)可去除視頻編碼過(guò)程中塊效應(yīng)的兩個(gè)級(jí)組成的級(jí)聯(lián),即去塊效應(yīng)濾波(DBLK)和采樣自適應(yīng)偏移(SAO)濾波。接下來(lái)的兩部分內(nèi)容將詳細(xì)描述這個(gè)級(jí)。 圖1 HEVC視頻解碼器結(jié)構(gòu)圖 2.0 去塊效應(yīng)濾波(DBLK) 本部分將闡述去塊效應(yīng)濾波,如HEVC視頻標(biāo)準(zhǔn)[1]所述。去塊效應(yīng)濾濾器運(yùn)行可大體可分為兩部分: 1. 濾波器邊緣上的邊界濾波強(qiáng)度(aka BS)計(jì)算 2. 濾波器的實(shí)際運(yùn)行 縱觀整個(gè)去塊效應(yīng)濾波器運(yùn)行,本文獻(xiàn)采用了以下慣例:Q像素位于“縱向”濾波器的右側(cè),P像素位于“縱向”濾波器左側(cè)。同樣,Q屬于“橫向”濾波器邊緣下方的像素,P屬于“橫向”濾波器邊緣上方的像素。 圖2 環(huán)內(nèi)去塊效應(yīng)濾波中稱為慣例的相鄰像素 2.1 濾波器邊緣強(qiáng)度(aka BS) 邊界濾波強(qiáng)度[hor/ver][xpos][ypos]計(jì)算是在一個(gè)8x8網(wǎng)格上完成的,取值0、1、2,如下圖所示: 雖然在8x8網(wǎng)格的每個(gè)像素邊緣上都有濾波器(8x8結(jié)構(gòu)包括4像素邊緣),但就一個(gè)4像素段的所有像素而言,邊界濾波強(qiáng)度計(jì)算的屬性可以被組合。就強(qiáng)度計(jì)算而言,我們假設(shè)每個(gè)4像素段作為一個(gè)級(jí)。請(qǐng)注意,邊界濾波強(qiáng)度計(jì)算取決于當(dāng)前、左側(cè)和頂部LCU LCUinfo。 圖3 邊界濾波強(qiáng)度(BS)結(jié)構(gòu)圖,在8x8網(wǎng)格中顯示了邊緣及其編號(hào) 2.1.1 邊界濾波強(qiáng)度功能概述 邊界濾波強(qiáng)度計(jì)算是在一個(gè)8x8網(wǎng)格上完成的,設(shè)置圖片為0,且分片邊界(slice boundarie) (if loop_filter_across_slice_enabled_flag = 0),Tile邊界(loop_filter_across_tile_enabled_flag = 0). 只有8x8像素邊界經(jīng)過(guò)濾波,即預(yù)測(cè)單元(PU)和/或轉(zhuǎn)換單元(TU)邊界,濾波過(guò)程如下。 圖4 PU和TU部分的邊界濾波強(qiáng)度(BS)與邊緣調(diào)諧 邊界濾波強(qiáng)度推導(dǎo)規(guī)則: 感興趣的讀者可參見(jiàn)HEVC規(guī)范,了解以下內(nèi)容: 1. 邊界濾波強(qiáng)度的TU邊界濾波強(qiáng)度推導(dǎo):8.7.2.1章節(jié) 2. 邊界濾波強(qiáng)度的PU邊界濾波強(qiáng)度推導(dǎo):8.7.2.2章節(jié) 3. 邊界濾波強(qiáng)度推導(dǎo):8.7.2.3章節(jié) 2.1.2 色度邊界濾波強(qiáng)度推導(dǎo) 只有8x8色度像素網(wǎng)格上的PU和/或TU邊界得到濾波。色度邊界濾波強(qiáng)度值源自亮度邊界濾波強(qiáng)度值。就色度濾波器4:2:0 (q0, p0)采樣而言,從相應(yīng)的(2q0, 2p0)亮度采樣(即BS{Hor/ver}[xpos/2][ypos/2]圖中的2因素下行采樣)獲取邊界濾波強(qiáng)度。 圖5 色度邊界濾波強(qiáng)度映射:匹配到8x8網(wǎng)格然后除以2 2.2 濾波器運(yùn)行 該部分將闡述去除HEVC視頻標(biāo)準(zhǔn)中特定塊效應(yīng)的實(shí)際濾波。 2.2.1 濾波器的階數(shù) 就HEVC而言,規(guī)定的濾波器階數(shù)為幀級(jí)(不是LCU級(jí)),如下所示: 1. 在整個(gè)幀處理過(guò)程中,對(duì)所有塊的豎向邊緣都進(jìn)行了H濾波。 2. 在整個(gè)幀處理過(guò)程中,對(duì)所有塊的橫向邊緣都進(jìn)行了V濾波。 濾波是完全獨(dú)立的8x8濾波段,如圖6所示: 圖6 8x8塊級(jí)獨(dú)立濾波 是否需要亮度/色度(開(kāi)啟/關(guān)閉判定)濾波、濾波級(jí)別(弱濾波/強(qiáng)濾波)以及最終的實(shí)際濾波運(yùn)行將在下面章節(jié)闡述。 2.2.2 亮度濾波器開(kāi)啟/關(guān)閉以及弱/強(qiáng)濾波的判定 濾波器開(kāi)/關(guān)判定和亮度強(qiáng)/弱判定是根據(jù)上圖所示的四個(gè)行列段進(jìn)行的。 如果邊界濾波強(qiáng)度等于0,則按順序進(jìn)行以下步驟: qPL= ((QPP+QPQ+1)>>1), QPP 和 QPQ 為亮度 QPs β = BETA_TABLE[Clip3(0,51,qPL+(beta_offset_div2>2)) && ( |p3,0- p0,0| + |q3,0- q0,0| >3)) && ( | p0,0- q0,0| >1))) dSam0 = 1 If ( (2*dpq3 >2)) && ( |p3,3- p0,3| + |q3,3- q0,3| >3)) && ( | p0,3- q0,3| >1))) dSam3 = 1 如果 (dSam0 ==1 && dSam3 ==1) dE = 2 (strong filter); 其他 dE = 1 (弱濾波); 如果 (dp >1))>>3) ) dEp = 1 //對(duì)濾波采樣的數(shù)量進(jìn)行弱濾波 If (dq >1))>>3) ) dEq = 1 //對(duì)濾波采樣的數(shù)量進(jìn)行弱濾波 圖7 去塊效應(yīng)濾波中濾波開(kāi)/關(guān)以及濾波強(qiáng)度判定中的像素使用 表1 qp、tc和β(BETA_TABLE和TC_TABLE)之間的關(guān)系 2.2.3 亮度強(qiáng)濾波以及弱濾波 2.2.3.1 亮度強(qiáng)濾波機(jī)制 4像素部分共享同一個(gè)判定(dE, dEp, dEq) 如果(dE == 2),則進(jìn)行強(qiáng)濾波以修改每端的三個(gè)像素 p0' = Clip3( p0?2*tc, p0+2*tc, ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3 ) p1' = Clip3( p1?2*tc, p1+2*tc, ( p2 + p1 + p0 + q0 + 2 ) >> 2 ) p2' = Clip3( p2?2*tc, p2+2*tc, ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3 ) q0' = Clip3( q0?2*tc, q0+2*tc, ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3 ) q1' = Clip3( q1?2*tc, q1+2*tc, ( p0 + q0 + q1 + q2 + 2 ) >> 2 ) q2' = Clip3( q2?2*tc, q2+2*tc, ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3 ) 圖8 亮度DBLK濾波和邊緣周?chē)袼攸c(diǎn)的使用 2.2.3.2 亮度弱濾波機(jī)制 4像素部分共享同一個(gè)判定(dE, dEp, dEq) 如果(dE == 1),則進(jìn)行弱濾波以修改每端的一個(gè)或二個(gè)像素 D = (9*(q0– p0)-3*(q1–p1)+8)>>4 如果 (aBS(Δ) >1),tc>>1,(((p2+p0+1)>>1)–p1+Δ)>>1) p1’ = Clip1Y(p1+Δp) if dEq等于1,則濾波采樣值q1’規(guī)定如下: Δq = Clip3(-(tc>>1),tc>>1,(((q2+q0+1)>>1)–q1–Δ)>>1) q1’ = Clip1Y(q1+Δq)) 2.2.4 色度濾波 只有8x8色度像素網(wǎng)格上的PU和/或TU邊界得到濾波 邊界濾波強(qiáng)度源自亮度(對(duì)每個(gè)方向進(jìn)行2因素下行采樣)(請(qǐng)參見(jiàn)色度邊界濾波強(qiáng)度推導(dǎo)小節(jié)) qPI = ( (( QPQ + QPP + 1 ) >> 1) + cqp_offset ), 其中此處的cqp_offset分別代表組件Cb/U和Cr/V的pic_cb_qp_offset和pic_cr_qp_offset。 下表的qPI包括了qPC 圖9 色度DBLK濾波和邊緣周?chē)袼攸c(diǎn)的使用 表2 QPc向qPi轉(zhuǎn)換 tc = TC_TABLE[Clip3(0,53,qPC+2*(BS-1)+(tc_offset_div2 1時(shí),則Chroma濾波器將被開(kāi)啟 Δ = Clip3(-tC,tC,((((q0–p0)>3)) p0’ = Clip1C(p0+Δ) q0’ = Clip1C(q0-Δ) 3.1.3 邊界條件處理 需要條件處理的有三種條件: 1. 圖像邊界(上、下、左、右) 2. 分片邊界以及slice_loop_filter_across_slices_enabled_flag = 0。跨躍分片濾波適用于給定分片邊界的左側(cè)和上側(cè)邊緣(并非所有方向) 3. 瓦片邊界和loop_filter_across_tiles_enabled_flag = 0 在上述情況中,分片邊界沿線的像素未被處理,具體取決于SAO類(lèi)型。 就BO而言,所有像素都將被處理。 就EO而言,像素有效性將根據(jù)SAO類(lèi)型進(jìn)行,如果在邊界條件下像素?zé)o效,其將跳過(guò)進(jìn)行處理(即0漂移)。 下圖對(duì)邊界條件處理進(jìn)行了描述。 圖14 SAO解碼器的邊界處理實(shí)例 3.1.4 條件處理 在下列條件時(shí),SAO濾波將關(guān)閉。 SAO類(lèi)型idx = OFF CU類(lèi)型 = PCM且環(huán)路濾波器被描述為PCM類(lèi)型 CU類(lèi)型 = TQBypss(無(wú)損耗) 限幅電平SAO = OFF 參考文獻(xiàn) [1] HEVC 標(biāo)準(zhǔn) FDIS (HM10.0): http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip [2] JCT-VC文件管理系統(tǒng):http://phenix.int-evry.fr/jct/ [3] HEVC參考軟件:http://hevc.info/ 本文作者在此特別感謝Minhua Zhou、Osamoto Akira以及Woo-Shik Kim對(duì)本文提出的建議和意見(jiàn)。 |