一種環(huán)內(nèi)濾波方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及視頻處理技術(shù)領(lǐng)域,尤其涉及一種環(huán)內(nèi)濾波方法及裝置。
【背景技術(shù)】
[0002]隨著數(shù)字視頻應(yīng)用產(chǎn)業(yè)鏈的快速發(fā)展,視頻應(yīng)用向以下幾個方向發(fā)展的趨勢愈加明顯:
[0003]I)高清晰度(Higher Definit1n):數(shù)字視頻的應(yīng)用格式從720P向1080P全面升級,甚至出現(xiàn)了 4KX2K、8KX4K的數(shù)字視頻格式;
[0004]2)高巾貞率(Higher frame rate):數(shù)字視頻巾貞率從30fps向60fps、120fps甚至240fps的應(yīng)用場景升級;
[0005]3)高壓縮率(Higher Compress1n rate):傳輸帶寬和存儲空間一直是視頻應(yīng)用中最為關(guān)鍵的資源,因此,在有限的空間和管道中獲得最佳的視頻體驗一直是用戶的不懈追求。
[0006]由于數(shù)字視頻應(yīng)用在發(fā)展中面臨上述趨勢,如果繼續(xù)采用H.264編碼,就出現(xiàn)一些局限性,為了面對以上發(fā)展趨勢,2010年I月,ITU-T VCEG和IS0/IEC MPEG聯(lián)合成立了JCT-VC聯(lián)合組織,統(tǒng)一制定下一代編碼標(biāo)準(zhǔn)HEVC (High Efficiency Video Coding,高效率視頻編碼),HEVC協(xié)議標(biāo)準(zhǔn)(H.265)于2013年正式在業(yè)界發(fā)布。與H.264相比,H.265具有更高的(接近于兩倍)壓縮比率,在同碼率下具有更佳的視頻質(zhì)量,而且支持8k超高清視頻(Ultra High Definit1n Televis1n, UHD)。
[0007]如圖1所示為HEVC的解碼過程示意圖,主要包括:熵解碼(Entropy)/環(huán)掃描(Scan) /反量化IQ、反變換(Trans)、中貞內(nèi)予頁測(Intra Predicat1n) /中貞間預(yù)測(Interpolat1n)/補(bǔ)償MC、去塊濾波(Deblock)/SAO (自適應(yīng)樣點(diǎn)補(bǔ)償)計算、寫回DDR (Write Back) / 顯不(display)。
[0008]環(huán)內(nèi)濾波模塊包括去塊濾波和SAO兩部分,先做去塊濾波,再做SA0,其中去塊濾波和SAO過程涉及邊界濾波強(qiáng)度計算BSD。去塊濾波主要用于判斷PU(預(yù)測單元,即用于視頻圖像幀中用于進(jìn)行預(yù)測運(yùn)算的單元)和TU(變換單元,即視頻圖像幀中用于參與變換運(yùn)算的單元)邊界兩邊像素值的特征,對邊界兩邊的像素點(diǎn)進(jìn)行濾波,以消除由于塊編碼方式所導(dǎo)致的一些邊框效應(yīng),使重建圖像具有更好的質(zhì)量和PSNR(Peak Signalto NoiseRat1,峰值信噪比)值。
[0009]HEVC具有高壓縮率,同時又具體高復(fù)雜度,為了支持超高清解碼,軟件幾乎難以實(shí)現(xiàn),耗時巨大。其中環(huán)內(nèi)濾波模塊在整個算法中耗時占比40%,為此需要考慮算法的硬件化。
[0010]協(xié)議規(guī)定視頻圖像中以4X 4個像素點(diǎn)作為基本塊block,以8 X 8個像素點(diǎn)的塊劃分的邊需要濾波,目前去塊濾波的方法是,針對一幀視頻圖像,先進(jìn)行整幀視頻圖像的垂直邊濾波,然后才進(jìn)行整幀視頻圖像的水平邊濾波。由于在濾波過程中對以8X8的塊劃分的邊進(jìn)行濾波時,需要用到其上面2個經(jīng)過濾波后的相鄰4X4block塊,因此以整幀圖像先進(jìn)行垂直邊濾波再進(jìn)行水平邊濾波時,導(dǎo)致中間需要存儲非常多的中間數(shù)據(jù)。在去塊濾波完成垂直邊和水平邊濾波后,后續(xù)執(zhí)行的SAO,還需要多保存一些像素點(diǎn)的數(shù)據(jù),如需要用到左邊兩列的像素點(diǎn)數(shù)據(jù)、上面一行的像素點(diǎn)數(shù)據(jù)及下面一行的像素點(diǎn)數(shù)據(jù),又導(dǎo)致中間要保存非常多的臨時數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0011]本發(fā)明提供一種環(huán)內(nèi)濾波方法及裝置,可以減少流水延時,降低芯片面積,提升芯片性能。
[0012]本發(fā)明提供一種環(huán)內(nèi)濾波裝置,包括:
[0013]去塊濾波模塊,以視頻圖像按NXM個像素點(diǎn)劃分的單元為處理單元,按照預(yù)定順序?qū)γ總€處理單元按照如下方式進(jìn)行去塊濾波:以當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個基本單元block、及當(dāng)前處理單元所在的區(qū)域為濾波區(qū)域,以8X8個像素點(diǎn)為濾波基礎(chǔ)單元,按照從上往下,從左往右的順序?qū)V波區(qū)域內(nèi)的濾波基礎(chǔ)單元去塊濾波,對每個濾波基礎(chǔ)單元進(jìn)行去塊濾波時,結(jié)合該濾波基礎(chǔ)單元上方水平相鄰的2個block,先進(jìn)行垂直邊濾波,再進(jìn)行水平邊濾波,完成去塊濾波后,將去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個block,及該濾波基礎(chǔ)單元中上面2個block中的像素點(diǎn)數(shù)據(jù)進(jìn)行緩存,其中,M、N為4的正整數(shù)倍,且分別大于8,I個block由4X4個像素點(diǎn)組成;
[0014]自適應(yīng)樣點(diǎn)補(bǔ)償SAO模塊,讀取去塊濾波模塊緩存的去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個block,及該濾波基礎(chǔ)單元中上面2個block中的像素點(diǎn)數(shù)據(jù),確定讀取的像素點(diǎn)數(shù)據(jù)所在的區(qū)域Areal左偏移I列所在的區(qū)域為運(yùn)算區(qū)域,結(jié)合Areal左方2列、上方I行及下方I行的像素點(diǎn)數(shù)據(jù),對運(yùn)算區(qū)域內(nèi)的block進(jìn)行SAO計算。
[0015]優(yōu)選地,本發(fā)明實(shí)施例中的環(huán)內(nèi)濾波裝置還包括:
[0016]第一隨機(jī)存取存儲器,用于存儲當(dāng)前濾波區(qū)域上面5行像素點(diǎn)數(shù)據(jù);
[0017]第二隨機(jī)存取存儲器,用于存儲當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個block中的像素點(diǎn)數(shù)據(jù);
[0018]第三隨機(jī)存取存儲器,用于存儲當(dāng)前處理單元左方第5、6列像素點(diǎn)數(shù)據(jù)。
[0019]優(yōu)選地,所述去塊濾波模塊包括:
[0020]兩個濾波寄存器組和一個參考寄存器組,其中每個濾波寄存器組包括寄存器A、B、C、D,參考寄存器組包括寄存器E、F ;
[0021]所述去塊濾波模塊使用E、F緩存當(dāng)前需濾波的濾波基礎(chǔ)單元上方水平相鄰的2個block,交替使用兩個濾波寄存器組緩存濾波基礎(chǔ)單元,在使用其中一個寄存器組緩存濾波基礎(chǔ)單元時,使用A、B緩存濾波基礎(chǔ)單元中的上面2個block,使用C、D緩存濾波基礎(chǔ)單元中的下面2個block ;
[0022]去塊濾波模塊在對當(dāng)前需濾波的濾波基礎(chǔ)單元進(jìn)行濾波時,根據(jù)緩存當(dāng)前需去塊濾波的濾波基礎(chǔ)單元的一個濾波寄存器組,及E、F中的像素點(diǎn)數(shù)據(jù)進(jìn)行去塊濾波,去塊濾波過程中,將下一個需去塊濾波的濾波基礎(chǔ)單元緩存到另一個濾波寄存器組,完成一次去塊濾波后,將去塊濾波后的濾波基礎(chǔ)單元所在濾波器寄存器組的C、D中像素點(diǎn)數(shù)據(jù)讀到E、F中。
[0023]優(yōu)選地,該SAO模塊包括:
[0024]左2列寄存器L2XM、兩個SAO寄存器組;
[0025]所述SAO模塊在未針對當(dāng)前處理單元執(zhí)行SAO計算之前,將當(dāng)前處理單元左方第5、6列像素點(diǎn)數(shù)據(jù)緩存到L2XM ;
[0026]所述SAO模塊交替使用兩個SAO寄存器組緩存數(shù)據(jù);
[0027]其中,SAO模塊在去塊濾波模塊完成一個濾波基礎(chǔ)單元的去塊濾波后,使其中一個SAO寄存器組緩存如下數(shù)據(jù):該濾波基礎(chǔ)單元上方水平相鄰的2個block中的像素點(diǎn)數(shù)據(jù);該濾波基礎(chǔ)單元中上面2個block中的像素點(diǎn)數(shù)據(jù);從L2XM中讀取的Areal左方2列像素點(diǎn)數(shù)據(jù);Areal下方I行的像素點(diǎn)數(shù)據(jù);Areal上方I行的像素點(diǎn)數(shù)據(jù);
[0028]SAO模塊在從L2XM中讀取Areal左方2列像素點(diǎn)數(shù)據(jù)到所述其中一個SAO寄存器組后,將Areal中右邊兩列的像素點(diǎn)數(shù)據(jù),讀入到L2XM ;
[0029]SAO模塊在去塊濾波模塊完成一個濾波基礎(chǔ)單元的去塊濾波后,還用于將Areal中最下面I行的像素點(diǎn)數(shù)據(jù),讀入到另一個SAO寄存器組。
[0030]優(yōu)選地,每個SAO寄存器組包括:
[0031]分別存儲I個block的寄存器G、H、1、J,用于存儲8X1個像素點(diǎn)數(shù)據(jù)的頂部寄存器Top_8 X I,用于存儲8 X I個像素點(diǎn)數(shù)據(jù)的底部寄存器Bottom_8 X I,用于存儲2 X 8個像素點(diǎn)數(shù)據(jù)的左兩列寄存器L2X8 ;
[0032]G、H用于緩存讀取的濾波基礎(chǔ)單元上方水平相鄰的2個block中的像素點(diǎn)數(shù)據(jù);
1、J用于緩存讀取的濾基礎(chǔ)單元中上面2個block中的像素點(diǎn)數(shù)據(jù);L2X8用于緩存讀取的Areal左方2列像素點(diǎn)數(shù)據(jù);Bottom_8X I用于緩存讀取的Areal下方I行的像素點(diǎn)數(shù)據(jù);Top_8X I用于緩存Areal上方I行的像素點(diǎn)數(shù)據(jù)。
[0033]優(yōu)選地,該裝置還包括:
[0034]第一輸出緩存區(qū)buff_out0和第二輸出緩存區(qū)buff_outl ;
[0035]所述SAO模塊將完成SAO計算后的像素點(diǎn)數(shù)據(jù)乒乓地輸出到buff_out0和bufT_
OUtl0
[0036]優(yōu)選地,所述處理單元的大小為編碼單元樹CTU的大小。
[0037]本發(fā)明還提供一種基于上述裝置的環(huán)內(nèi)濾波方法,包括:
[0038]去塊濾波模塊以視頻圖像按NXM個像素點(diǎn)劃分的單元為處理單元,按照預(yù)定順序?qū)γ總€處理單元按照如下方式進(jìn)行去塊濾波:以當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個基本單元block、及當(dāng)前處理單元所在的區(qū)域為濾波區(qū)域,以8X8個像素點(diǎn)為濾波基礎(chǔ)單元,按照從上往下,從左往右的順序?qū)V波區(qū)域內(nèi)的濾波基礎(chǔ)單元去塊濾波,對每個濾波基礎(chǔ)單元進(jìn)行去塊濾波時,結(jié)合該濾波基礎(chǔ)單元上方水平相鄰的2個block,先進(jìn)行垂直邊濾波,再進(jìn)行水平邊濾波,其中,M、N為4的正整數(shù)倍,且分別大于8,I個block由4X4個像素點(diǎn)組成;
[0039]去塊濾波模塊完成一個濾波基礎(chǔ)單元的去塊濾波后,將去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個block,及該濾波基礎(chǔ)單元中上面2個block中的像素點(diǎn)數(shù)據(jù)進(jìn)行緩存;
[0040]自適應(yīng)樣點(diǎn)補(bǔ)償SAO模塊讀取去塊濾波模塊緩存的去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個block,及該濾波基礎(chǔ)單元中上