面2個(gè)block中的像素點(diǎn)數(shù)據(jù),確定讀取的像素點(diǎn)數(shù)據(jù)所在的區(qū)域Areal左偏移I列所在的區(qū)域?yàn)檫\(yùn)算區(qū)域,結(jié)合Areal左方2列、上方I行及下方I行的像素點(diǎn)數(shù)據(jù),對(duì)運(yùn)算區(qū)域內(nèi)的block進(jìn)行SAO計(jì)算。
[0041]優(yōu)選地,所述去塊濾波模塊包括:兩個(gè)濾波寄存器組和一個(gè)參考寄存器組,其中每個(gè)濾波寄存器組包括寄存器A、B、C、D,參考寄存器組包括寄存器E、F ;
[0042]所述去塊濾波模塊對(duì)濾波基礎(chǔ)單元進(jìn)行去塊濾波時(shí),采用如下方式將當(dāng)前需濾波的濾波基礎(chǔ)單元緩存到其中一個(gè)濾波寄存器組:將當(dāng)前需濾波的濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block緩存到E、F,將濾波基礎(chǔ)單元中的上面2個(gè)block緩存到其中一個(gè)濾波寄存器組中的A、B,將濾波基礎(chǔ)單元中的下面2個(gè)block緩存到所述其中一個(gè)濾波寄存器組中的C、D ;
[0043]所述去塊濾波模塊在對(duì)當(dāng)前需濾波的濾波基礎(chǔ)單元進(jìn)行濾波時(shí),根據(jù)緩存當(dāng)前需去塊濾波的濾波基礎(chǔ)單元的一個(gè)濾波寄存器組,及E、F中的像素點(diǎn)數(shù)據(jù)進(jìn)行去塊濾波,去塊濾波過程中,將下一個(gè)需去塊濾波的濾波基礎(chǔ)單元緩存到另一個(gè)濾波寄存器組,完成一次去塊濾波后,將去塊濾波后的濾波基礎(chǔ)單元所在濾波器寄存器組的C、D中像素點(diǎn)數(shù)據(jù)讀到E、F中。
[0044]優(yōu)選地,所述SAO模塊包括:左2列寄存器L2XM、兩個(gè)SAO寄存器組;
[0045]該方法還包括:所述SAO模塊在未針對(duì)當(dāng)前處理單元執(zhí)行SAO計(jì)算之前,將當(dāng)前處理單元左方第5、6列像素點(diǎn)數(shù)據(jù)緩存到L2XM ;
[0046]所述SAO模塊在去塊濾波模塊完成一個(gè)濾波基礎(chǔ)單元的去塊濾波后,按照交替使用的方式選擇其中一個(gè)SAO寄存器組緩存如下數(shù)據(jù):該濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block中的像素點(diǎn)數(shù)據(jù);該濾波基礎(chǔ)單元中上面2個(gè)block中的像素點(diǎn)數(shù)據(jù);WL2XM中讀取的Areal左方2列像素點(diǎn)數(shù)據(jù);Areal下方I行的像素點(diǎn)數(shù)據(jù);Areal上方I行的像素點(diǎn)數(shù)據(jù);
[0047]所述SAO模塊根據(jù)其中一個(gè)SAO寄存器組中緩存的數(shù)據(jù),對(duì)運(yùn)算區(qū)域內(nèi)的block進(jìn)行SAO計(jì)算;
[0048]其中,SAO模塊在從L2 XM中讀取Areal左方2列像素點(diǎn)數(shù)據(jù)到所述其中一個(gè)SAO寄存器組后,將Areal中右邊兩列的像素點(diǎn)數(shù)據(jù),讀入到L2XM ;
[0049]SAO模塊在去塊濾波模塊完成一個(gè)濾波基礎(chǔ)單元的去塊濾波后,將Areal中最下面I行的像素點(diǎn)數(shù)據(jù),讀入到另一個(gè)SAO寄存器組。
[0050]優(yōu)選地,所述處理單元的大小為編碼單元樹CTU的大小。
[0051]利用本發(fā)明提供的環(huán)內(nèi)濾波裝置及方法,具有以下有益效果:
[0052]本發(fā)明可以極大的降低外邊ram的數(shù)量,做到數(shù)據(jù)讀取和處理進(jìn)行流水設(shè)計(jì),輸入單塊8X8就可以完成垂直濾波和水平濾波,然后直接做SA0,去塊濾波和SAO流水都是以4X4的大小塊為單位進(jìn)行,相對(duì)現(xiàn)有技術(shù)中以一幀圖像為單位的濾波和SA0,最大限度的減少了流水延時(shí),同時(shí)無需存儲(chǔ)中間數(shù)據(jù),降低芯片面積,提升芯片性能,從而高效的實(shí)現(xiàn)高清視頻的實(shí)時(shí)編碼。
【附圖說明】
[0053]圖1為HEVC解碼過程不意圖;
[0054]圖2為本發(fā)明實(shí)施例提供的環(huán)內(nèi)濾波裝置結(jié)構(gòu)圖;
[0055]圖3為本發(fā)明處理單元采用CTU大小時(shí)對(duì)應(yīng)的block劃分及濾波基礎(chǔ)單元?jiǎng)澐质疽鈭D;
[0056]圖4為對(duì)EFAB⑶對(duì)應(yīng)的水平邊和垂直邊示意圖;
[0057]圖5為SAO計(jì)算對(duì)應(yīng)的示意圖;
[0058]圖6為對(duì)視頻圖像進(jìn)行tile劃分示意圖;
[0059]圖7A為本發(fā)明實(shí)施例去塊濾波需要的寄存器示意圖;
[0060]圖7B為本發(fā)明實(shí)施例SAO計(jì)算需要的寄存器示意圖;
[0061]圖8為本發(fā)明實(shí)施例環(huán)內(nèi)濾波方法流程圖;
[0062]圖9A、圖9B為本發(fā)明實(shí)施例交替使用兩組寄存區(qū)對(duì)應(yīng)的示意圖。
【具體實(shí)施方式】
[0063]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明提供的環(huán)內(nèi)濾波裝置和方法進(jìn)行更詳細(xì)地說明。
[0064]本發(fā)明提供一種環(huán)內(nèi)濾波裝置,如圖2所示,包括:
[0065]去塊濾波模塊201,以視頻圖像按NXM個(gè)像素點(diǎn)劃分的單元為處理單元,按照預(yù)定順序?qū)γ總€(gè)處理單元按照如下方式進(jìn)行去塊濾波:以當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個(gè)基本單元block、及當(dāng)前處理單元所在的區(qū)域?yàn)闉V波區(qū)域,以8X8個(gè)像素點(diǎn)為濾波基礎(chǔ)單元,按照從上往下,從左往右的順序?qū)V波區(qū)域內(nèi)的濾波基礎(chǔ)單元去塊濾波,對(duì)每個(gè)濾波基礎(chǔ)單元進(jìn)行去塊濾波時(shí),結(jié)合該濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block,先進(jìn)行垂直邊濾波,再進(jìn)行水平邊濾波,完成去塊濾波后,將去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block,及該濾波基礎(chǔ)單元中上面2個(gè)block中的像素點(diǎn)數(shù)據(jù)進(jìn)行緩存,其中,M、N為4的正整數(shù)倍,且分別大于8,I個(gè)block由4X4個(gè)像素點(diǎn)組成;
[0066]自適應(yīng)樣點(diǎn)補(bǔ)償SAO模塊202,讀取去塊濾波模塊緩存的去塊濾波后的濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block,及該濾波基礎(chǔ)單元中上面2個(gè)block中的像素點(diǎn)數(shù)據(jù),確定讀取的像素點(diǎn)數(shù)據(jù)所在的區(qū)域Areal左偏移I列所在的區(qū)域?yàn)檫\(yùn)算區(qū)域,結(jié)合Areal左方2列、上方I行及下方I行的像素點(diǎn)數(shù)據(jù),對(duì)運(yùn)算區(qū)域內(nèi)的block進(jìn)行SAO計(jì)算。
[0067]本發(fā)明實(shí)施例中所出現(xiàn)的NX M個(gè)像素點(diǎn),均指視頻圖像中N列、M行像素點(diǎn),N、M均為正整數(shù)。
[0068]本發(fā)明實(shí)施例去塊濾波模塊進(jìn)行去塊濾波時(shí),以NXM個(gè)像素點(diǎn)劃分的單元作為大的處理單元,以8X8的塊劃分的邊進(jìn)行濾波,先進(jìn)行垂直邊濾波再進(jìn)行水平邊濾波。M、N為4的正整數(shù)倍,且分別大于8,而不再以整幀圖像為處理單元。
[0069]為了適應(yīng)并行化程度非常高的芯片實(shí)現(xiàn),H265引入了很多并行運(yùn)算的優(yōu)化思路,其中包括tile的劃分,如圖6所示,將圖像劃分出的黑邊矩形區(qū)域?yàn)橐粋€(gè)Tile,Tile之間可以互相獨(dú)立,以此實(shí)現(xiàn)并行處理。一幀圖像可以由一個(gè)tile組成,也可以由多個(gè)tile組成,由多個(gè)tile組成時(shí),Tile之間可以互相獨(dú)立,每個(gè)tile被劃分為多個(gè)處理單元,上述預(yù)定順序可以是在一個(gè)tile內(nèi)按照從左往右、從上往下的順序?qū)μ幚韱卧捎蒙鲜龇椒ㄟM(jìn)行環(huán)內(nèi)濾波。
[0070]優(yōu)選地,本發(fā)明實(shí)施例中環(huán)內(nèi)濾波裝置還包括:
[0071]第一隨機(jī)存取存儲(chǔ)器203,用于存儲(chǔ)當(dāng)前濾波區(qū)域上面5行像素點(diǎn)數(shù)據(jù);
[0072]第二隨機(jī)存取存儲(chǔ)器204,用于存儲(chǔ)當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個(gè)block中的像素點(diǎn)數(shù)據(jù);
[0073]第三隨機(jī)存取存儲(chǔ)器205,用于存儲(chǔ)當(dāng)前處理單元左方第5、6列像素點(diǎn)數(shù)據(jù)。
[0074]由于去塊濾波時(shí)需要結(jié)合濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block的數(shù)據(jù),SAO計(jì)算時(shí)需要用到Areal上面I行的像素點(diǎn)數(shù)據(jù),因此設(shè)計(jì)一個(gè)第一隨機(jī)存取存儲(chǔ)器(top_ram)存儲(chǔ)當(dāng)前濾波區(qū)域上面5行像素點(diǎn)數(shù)據(jù)。
[0075]由于去塊濾波時(shí)需要用到當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個(gè)block,因此設(shè)計(jì)一個(gè)第二隨機(jī)存取存儲(chǔ)器(left_ram),用于存儲(chǔ)當(dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個(gè)block中的像素點(diǎn)數(shù)據(jù)。
[0076]由于SAO計(jì)算時(shí)需要用到Areal左邊兩列的像素點(diǎn)數(shù)據(jù),因此設(shè)計(jì)一個(gè)第三隨機(jī)存取存儲(chǔ)器(context_ram),用于存儲(chǔ)當(dāng)前處理單元左方第5、6列像素點(diǎn)數(shù)據(jù)。優(yōu)選地,該context_ram還被設(shè)計(jì)成用于存儲(chǔ)處理單元上邊塊和左邊塊的一些相關(guān)info信息。
[0077]優(yōu)選地,以編碼單元樹CTU (Coding Tree Unit)作為大的處理單元。即處理單元的大小為32 X 32個(gè)像素點(diǎn)數(shù)據(jù),實(shí)際設(shè)計(jì)中根據(jù)需求不限于此32 X 32個(gè)像素點(diǎn)數(shù)據(jù)大小。
[0078]在一幀圖像由一個(gè)tile或多個(gè)tile組成時(shí),則第一隨機(jī)存取存儲(chǔ)器203,會(huì)存儲(chǔ)當(dāng)前tile上面5行像素點(diǎn)數(shù)據(jù);第二隨機(jī)存取存儲(chǔ)器204,會(huì)存儲(chǔ)當(dāng)前處tile左方與當(dāng)前處理單元相鄰的M/4個(gè)block中的像素點(diǎn)數(shù)據(jù);第三隨機(jī)存取存儲(chǔ)器205,會(huì)存儲(chǔ)當(dāng)前tile左方第5、6列像素點(diǎn)數(shù)據(jù)。
[0079]下面以處理單元的大小為32X32為例對(duì)本發(fā)明環(huán)內(nèi)濾波裝置進(jìn)行說明,當(dāng)前,處理單元的大小還可以采用其他值,但處理方式均相同。
[0080]如圖3所示,將整個(gè)處理單元?jiǎng)澐殖?4個(gè)4X4的block塊(O?64),濾波區(qū)域?yàn)橐援?dāng)前處理單元左方與當(dāng)前處理單元相鄰的M/4個(gè)block(8個(gè)block)、及當(dāng)前處理單元所在的區(qū)域,即濾波區(qū)域包括blockL_0-L_7、0?63。圖3中的黑色邊需要進(jìn)行濾波。
[0081]以8X8個(gè)像素點(diǎn)為濾波基礎(chǔ)單元,按照從上往下,從左往右的順序?qū)V波區(qū)域內(nèi)的濾波基礎(chǔ)單元去塊濾波,對(duì)每個(gè)濾波基礎(chǔ)單元進(jìn)行去塊濾波時(shí),結(jié)合該濾波基礎(chǔ)單元上方水平相鄰的2個(gè)block,先進(jìn)行垂直邊濾波,再進(jìn)行水平邊濾波,因此一次讀進(jìn)濾波模塊的是6個(gè)4X4的block。
[0082]處理單元的第一列block以及左邊相鄰處理單元的最右邊一列block組成8 X 32的第一組單元,處理單元的第2、3列block組成第二組8X32單元,第4、5列block組成第三組8 X 32單元,第6、7列block組成第四組8 X 32單元,最右邊一列4X 4block則不濾波,在下一個(gè)處理單元進(jìn)行濾波,如此循環(huán)。
[0083]因此,對(duì)于32X32的處理單元,參與濾波操作的區(qū)域包括處理單元(除最右邊一列block)、上面相鄰處理單元的28X4的單元、左邊相鄰處理單元的4X32的單元,左上4X4的單元,需要濾波的邊是8X8為單位的邊。
[0084]對(duì)于