專利名稱:去塊濾波方法
去塊濾波方法本發(fā)明涉及一種依照在宏塊中保存圖像信息的編碼標準來對以彼此水平相鄰的方式排列在宏塊行中以及以彼此垂直相鄰的方式排列在宏塊列中的宏塊執(zhí)行去塊濾波的方法,其中每ー個宏塊是由以彼此水平相鄰的方式排列在塊行m中以及以彼此垂直相鄰的方式排列在塊列η中的塊形成的,并且所述塊形成了矩陣M的塊元素Mmn,其中m=f 4以及η=Γ4,以及其中所述塊具有垂直邊緣和水平邊緣,并且以塊元素Mll為開始來對宏塊中的塊的垂直邊緣和水平邊緣進行濾波。本發(fā)明還涉及ー種可以執(zhí)行此類方法的去塊濾波器,以及ー種具有用于執(zhí)行此類方法的濾波算法的計算機程序。在很多應(yīng)用中使用了標準化的方法來編碼圖像信息。例如,依照H. 264標準的視頻壓縮方法被用于
-高分辨率電視,例如將視頻數(shù)據(jù)保存在高清數(shù)字多用途碟片(HD DVD)和藍光碟上的高清電視(HDTV), -移動終端,例如可以回放視頻的移動電話、個人數(shù)字助理(PDA)、便攜游戲機和MP3播放器,
-多媒體
-視頻會議技木,以及 -攝像機和數(shù)碼相機。在視頻壓縮中,視頻數(shù)據(jù)在發(fā)射機中被編碼,以編碼形式傳送至接收機,并且在接收機中被解碼。由此,所用標準也被稱為編解碼器,它是英文單詞“編碼”和“解碼”的組合體。在H. 264標準及其前任標準H. 263中,名為幀的單個視頻圖像被拆分成塊并被逐塊編碼,由此,在所有這兩個標準中,在每ー種情況下都會在編碼回路中使用去塊濾波器。其他視頻壓縮標準具有在后期處理階段對編碼幀執(zhí)行濾波的去塊濾波器。去塊濾波器被用于提高感知圖像質(zhì)量,由此可以通過對塊中保存的每個幀的圖像點執(zhí)行濾波來平滑可能在相鄰的塊之間形成且被稱為塊贗像的相鄰塊之間的光學(xué)可感知變換。在下文中,“濾波”指的是“去塊濾波”?!皩K進行濾波”指的是“對保存在塊中的名為像素的圖像點進行濾波”。對存在于多個行與列中且水平和垂直相鄰的塊來說,這些塊可被想象成是笛卡兒坐標系統(tǒng)中的棋盤排列區(qū)域。根據(jù)H. 264標準,對處于笛卡兒坐標系統(tǒng)中的位置(x/y)的塊的濾波依賴于那些處于笛卡兒坐標系統(tǒng)中的位置(χ-1/y)和(χ/y-l)的塊的已濾波像素。如果依照H. 264標準來編碼圖像信息,那么這些塊將被合并以形成宏塊,其中每ー個宏塊是由以彼此水平相鄰的方式排列在塊行中以及以彼此垂直相鄰的方式排列在塊列中的塊形成的,并且在每ー個情況中都具有四個塊。“對宏塊進行濾波”指的是“對保存在宏塊中的塊的像素進行濾波”。濾波是借助名為算法的一系列計算步驟執(zhí)行的,其中這些計算步驟通常是在計算機上的濾波程序的上下文中進行的。為了執(zhí)行這些計算步驟,通常可以使用具有計算核心的處理器,或者可以僅僅使用核心。當前,處理器趨向于具有多個核心,此類處理器也被稱為“多核處理器”或“多核系統(tǒng)”。此外,目前甚至還在開發(fā)同樣被稱為“多核處理器”或“多核系統(tǒng)”的具有多個核心的處理器架構(gòu),并且Intel公司的“Terascale”項目或“Larrabee”項目可以證明這一點。圖形處理器被稱為“圖形處理器單元(GPU)”,以來自NVidia公司的圖形處理器為例,此類圖形處理器現(xiàn)今甚至也具有多核處理器,由于其計算能力很高且編程簡單,因此,這種處理器正被越來越多地用于高性能的計算應(yīng)用。為了充分使用可用的計算能力,具有若干或眾多核心的處理器需要可并行化的算法。在并行化算法中,一個計算步驟不依賴于于前一個計算步驟的結(jié)果。如果計算步驟依賴于先前計算步驟的結(jié)果,那么必須以串聯(lián)方式、也就是以連續(xù)的方式來執(zhí)行這些計算步驟,并且這些步驟不能以彼此并行的方式進行。在多核處理器中實施H. 264標準的問題領(lǐng)域在于由于位置(x/y)的塊的濾波與處于位置(x-1/y)和(χ/y-l)的塊的已濾波 像素的依賴關(guān)系而沒有提供與別的宏塊無關(guān)的宏塊濾波的去塊濾波器。一種顧及了之前部分描述的數(shù)據(jù)依賴性的用于局部并行化濾波計算步驟的已知方法包括將處于笛卡爾坐標系統(tǒng)圖像中的多個塊合并到對角線中。這些由塊形成的對角線會被以串聯(lián)的方式連續(xù)濾波,從而以彼此并行的方式來對處于對角線內(nèi)部的塊進行濾波。然而,在使用NVidia公司的GPU來對塊的對角線進行濾波的過程中,以下缺陷將會出現(xiàn)
I.建立濾波程序?qū)崿F(xiàn)模型的算法也被稱為“內(nèi)核”。由于必須將廣泛滿足對角線內(nèi)部的塊的并行濾波需求的內(nèi)核算法傳送至包含GPU的圖形卡,并且必須在計算步驟開始之前依照內(nèi)核算法來配置GPU的計算核心,因此,對GPU進行初始化以便運行用于對對角線內(nèi)部的塊進行并行濾波的濾波程序的時間成本將會很高,該時間成本也被稱為啟動開銷。2.并行執(zhí)行的“內(nèi)核”算法不能相互同步,或者只能在延遲很大的情況下被同步,該延遲也被稱為等待時間。3.塊對角線的長度往往不足以充分使用GPU的所有計算核心,在這種情況下,一些GPU的計算能力并未得到使用。用于并行化濾波計算步驟的另一個選項包括在不考慮依照H. 264標準的濾波過程中出現(xiàn)的數(shù)據(jù)依賴性的情況下對宏塊進行濾波,由此,發(fā)明人將這種濾波描述成是一種樸素濾波方法。已被濾波的視頻幀將會用于預(yù)測跟隨在已濾波的幀之后的視頻幀。如果沒有對宏塊濾波所需要的與所述宏塊鄰接的宏塊進行濾波,那么在這個濾波結(jié)果與依照標準的濾波結(jié)果之間將會出現(xiàn)差異。這些差異將會導(dǎo)致樸素濾波方法的濾波結(jié)果與依照標準的濾波結(jié)果之間出現(xiàn)像素差異,據(jù)此,這些像素差異也被描述成是漂移效應(yīng),與依照標準的濾波的圖像質(zhì)量相比,此類效應(yīng)對解碼視頻幀的圖像質(zhì)量明顯產(chǎn)生了不利影響。本發(fā)明的目的是提供一種避免現(xiàn)有技術(shù)中的缺陷的去塊濾波方法。特別地,所提供的是一種可以使用具有若干計算核心的處理器的計算能力并產(chǎn)生很高圖像質(zhì)量的去塊濾波方法。根據(jù)本發(fā)明,提供了一種依照在宏塊中保存圖像信息的編碼標準來對以彼此水平相鄰的方式排列在宏塊行中以及以彼此垂直相鄰的方式排列在宏塊列中的宏塊執(zhí)行去塊濾波的方法,其中每一個宏塊是由以彼此水平相鄰的方式排列在塊行m中以及以彼此垂直相鄰的方式排列在塊列η中的塊形成的,所述塊形成了第一矩陣M的塊元素Μ_ ι =Γ4且n=f 4,其中所述塊具有形成塊的外部邊界的垂直邊緣和水平邊緣,并且宏塊中的塊的垂直邊緣和水平邊緣是以塊元素M11為開始而被濾波的,包含待濾波的第一宏塊中的塊的上下文區(qū)域?qū)⒈灰?guī)定,其中所述區(qū)域包含了那些以彼此水平相鄰的方式排列在塊行O中以及以彼此垂直相鄰的方式排列在塊列P中的塊,所述塊形成了第二矩陣K的塊元素Ktjp, ο=Γ7且P=I 7,其中塊元素Kre,r=3 6 且s=3 6對應(yīng)于第一矩陣M的塊元素M_ m=l 4且η=Γ40就去塊濾波而言,形成上下文區(qū)域的塊是未被濾波的。然后,以第二矩陣K的塊元素Kll為開始并且依照用于圖像信息的編碼標準來對上下文區(qū)域中的塊的垂直邊緣和水平邊緣進行濾波。在待濾波宏塊的旁邊,所述上下文區(qū)域包含了圍繞待濾波宏塊的僅僅ー個邊界,由此包含了兩個單行和兩個雙行的塊行。除了上下文區(qū)域中的總共49個塊之外,在這里不會為了對具有16個塊的待濾波宏塊進行濾波而對其他的塊執(zhí)行濾波。在用于宏塊濾波的上下文區(qū)域中的宏塊數(shù)量很少的情況下,可以采用相互獨立的方式來對不同宏塊執(zhí)行濾波,從而將不同宏塊的濾波計算步驟并行化。由此,具有多個計算核心的處理器的計算能力可以得到廣泛和完全的使用。在上下文區(qū)域內(nèi)部,所述塊是依照標準規(guī)定的數(shù)據(jù)依賴性來濾波的。由于圍繞待濾波宏塊的數(shù)量足夠多的33個塊以及圍繞待濾波宏塊的塊的排列,可以確保源自上下文區(qū)域濾波的濾波結(jié)果具有很高的宏塊圖像質(zhì)量。在本發(fā)明的優(yōu)選實施例中,用于圖像信息的編碼標準是H. 264標準。如果將該標準用于濾波,那么關(guān)于測試序列的量度產(chǎn)生+/-1的像素差異的概率小于2Χ10_6,這與用于 樸素濾波方法的大約3X 10_3的值形成了對比。與樸素濾波方法相比,在使用H. 264標準的情況下,在大小方面,發(fā)生大于I的像素差異的概率要小于IX 10Λ對很多應(yīng)用來說,這些像素差異所導(dǎo)致的漂移效應(yīng)是小到可以忽略的。除了 H. 264標準之外,其他標準同樣是可行的。優(yōu)選地,每ー個塊均由待濾波像素形成,并且在每ー種情況中,所述像素均以相互水平的方式排列在像素行中,以及以相互垂直的方式排列在像素列中。包含4X4像素的塊對應(yīng)的是H. 264標準。理論上,在ー個塊中可以保存不同數(shù)量的像素。在本發(fā)明的另ー個實施例中,上下文區(qū)域中不與第一宏塊中的塊的像素相對應(yīng)的塊的像素是在所述第一宏塊的塊的像素之前按時間順序濾波的。這樣ー來,濾波可以以預(yù)先濾波上下文區(qū)域中不與待濾波宏塊中的塊相對應(yīng)的塊為開始。非常有利的是,第一宏塊中的塊的像素現(xiàn)在是用上下文區(qū)域中那些不與第一宏塊中的塊的像素相對應(yīng)的已濾波塊的像素濾波的。這些已被預(yù)先濾波的塊的像素可以作為輸入像素使用,以便對待濾波宏塊進行濾波。由于上下文區(qū)域之外的塊的其他像素未被用于對那些已被預(yù)先濾波的像素進行濾波,因此,所述已被預(yù)先濾波的像素本身是依照標準化的方法并且結(jié)合部分未濾波的輸入像素而被濾波的。如果使用這些僅僅依照標準而被近似或大概濾波的像素,那么有可能會產(chǎn)生漂移效應(yīng),對于已濾波宏塊的像素來說,與依照樸素濾波方法濾波的宏塊以外的未濾波像素所實現(xiàn)的漂移效應(yīng)相比,這種漂移效應(yīng)要低出若干個數(shù)量級。依照去塊濾波強度,可以使用比上下文區(qū)域中不與第一宏塊中的塊的像素相對應(yīng)的塊的像素更少的像素來對第一宏塊的塊的像素進行濾波。這樣則可以在不對圖像質(zhì)量產(chǎn)生任何不利影響的情況下減少計算量。非常優(yōu)選的是,聯(lián)合濾波的相鄰宏塊將會形成一個宏塊區(qū)域,其中宏塊或宏塊區(qū)域的濾波是在與別的宏塊或別的宏塊區(qū)域無關(guān)的情況下進行的。舉個例子,四個或更多的相鄰宏塊可被聯(lián)合濾波。由于宏塊彼此相鄰,因此,包含了每ー個待濾波宏塊的上下文塊將會重疊。由于只對上下文塊的重疊區(qū)域執(zhí)行一次濾波,因此,與在每一次具有待濾波宏塊的情況中都對上下文塊進行完全濾波的情形相比,計算能力方面的工作將會減少。例如,除了待濾波宏塊的64個塊之外,將四個一起濾波的宏塊排列在兩行和兩列中的上下文區(qū)域還包含了采用圍繞宏塊的邊界的形式的另外89個待濾波的塊。如果以相互獨立的方式來對這四個宏塊進行濾波,那么除了待濾波宏塊的64個塊之外,所述上下文區(qū)域還包括33個塊,其中每一個塊都被當作圍繞特定宏塊的邊界,由此所述區(qū)域總共包括132個塊。相應(yīng)地,如果對四個宏塊執(zhí)行聯(lián)合濾波,那么上下文區(qū)域?qū)?3個塊,其數(shù)量要少于對四個宏塊執(zhí)行獨立濾波的情形。相對較少的這43個塊不但不需要被濾波,而且還不需要從主存儲器轉(zhuǎn)移至靜態(tài)隨機存取存儲器(SRAM)中進行濾波。為了以最佳方式使用所用處理器的可用計算能力而需要聯(lián)合濾波的宏塊的數(shù)量取決于可用計算核心的數(shù)量以及可用于濾波的SRAM存儲器的大小。在本發(fā)明的另一個實施例中,不同宏塊和/或宏塊區(qū)域的濾波是以相互并行的方式同時進行的。這樣一來,具有若干個計算核心的現(xiàn)代處理器的計算潛能將會得到充分使用。如果在具有不同計算核心的處理器上執(zhí)行若干個宏塊或宏塊區(qū)域的并行濾波,那么可 以以高達I萬億次計算/秒的高計算速率來執(zhí)行所述濾波。如果使用適當?shù)奶幚砥?,那么大小?、3或η萬億次計算/秒的高計算速率也是可能的,其中η是整數(shù)。以萬億次計算/秒為單位的可能計算速率并不是濾波算法的直接屬性,而是所用處理器的直接屬性。然而,與樸素濾波方法相比,依照本發(fā)明的濾波方法可以實現(xiàn)所用處理器的更高使用等級,其中所述更高使用等級將會導(dǎo)致產(chǎn)生以萬億次計算/秒為單位的計算速率。根據(jù)本發(fā)明,還提供了一種依照在宏塊中保存圖像信息的編碼標準來對以彼此水平相鄰的方式排列在宏塊行中以及以彼此垂直相鄰的方式排列在宏塊列中的宏塊執(zhí)行濾波的去塊濾波器,其中每一個宏塊是由以彼此水平相鄰的方式排列在塊行m中以及以彼此垂直相鄰的方式排列在塊列η中的塊形成的,并且所述塊形成了矩陣M的塊元素11_ ι =Γ4且n=f 4,其中所述塊具有形成塊的外部邊界的垂直邊緣和水平邊緣,并且在所有情況下,宏塊中的塊的垂直邊緣和水平邊緣會以塊元素M11為濾波起點而被濾波。所述去塊濾波器包括一個用于確定包含了待濾波的第一宏塊中的塊的上下文區(qū)域的分析單元,其中所述上下文區(qū)域由那些以彼此水平相鄰的方式排列在塊行ο中以及以彼此垂直的方式排列在塊列P中的塊形成,并且所述塊形成了第二矩陣K的塊元素Ktjp,其中0=廣7且p=f7,其中塊元素Κ , r=3 6且s=3 6對應(yīng)的是第一矩陣M的塊元素Mmn, m=l 4且n=l 4。此外,所述去塊濾波器還包括一個依照圖像信息的編碼標準并以第二矩陣K的塊元素K11為濾波起點來對上下文區(qū)域中的塊的水平邊緣和垂直邊緣進行濾波的濾波單元。在一個有利的實施例中,所述濾波器包括具有不同計算核心的處理器。在具有若干個計算核心的情況下,依照上述實施例的濾波步驟可以采用彼此并行的方式進行。非常有利的是,該濾波器包括主存儲器和靜態(tài)隨機存取存儲器。主存儲器和靜態(tài)隨機存取存儲器可被部署在計算機中部署的圖形卡上。作為替換或補充,別的隨機存取存儲器、別的主存儲器或是別的電子元件也是可以存在的。例如,主存儲器和隨機存取存儲器中的每一個可被指定給不同的計算核心。在其他實施例中,在濾波器中可以采用相互并行的方式來同時對包含了可以聯(lián)合濾波的宏塊的不同宏塊和/或不同宏塊區(qū)域進行濾波。這樣一來,與串行濾波的濾波器相比,宏塊濾波所需要的計算時間可被減少。此外,在這里還提供了ー種具有用于執(zhí)行根據(jù)本發(fā)明的方法的濾波算法的計算機程序。濾波算法是ー種用于濾波的算法。所述濾波算法是借助包含了濾波算法的計算機程序執(zhí)行的。以下將會借助附圖來說明本發(fā)明的其他實施例和益處。為了更加清楚,圖中的表示并不是依照規(guī)定比例或者成比例的。除非另作說明,否則相同的參考符號在圖中表示的是具有相同意義的相同組件。如下所示
圖I是相鄰宏塊的排列,其中每ー個宏塊是由塊形成的,所述塊以彼此水平相鄰的方式排列在塊行中,并且以彼此垂直相鄰的方式排列在塊列中,且在每一種情況中都具有四個塊;
圖2是用像素形成的塊,其中所述像素以彼此水平相鄰的方式排列在像素行中,并且以彼此垂直相鄰的方式排列在像素列中,且在每一種情況中都具有四個像素;以及
圖3是根據(jù)本發(fā)明實施例的一個示例的用于對宏塊執(zhí)行濾波的上下文區(qū)域,其中除了 待濾波的宏塊之外,所述上下文區(qū)域還包括圍繞宏塊的塊邊界?,F(xiàn)在將以視頻壓縮標準H. 264為例來對本發(fā)明進行說明。就此而論,圖I顯示了ー個具有九個宏塊M1-M9的排列,其中作為編碼幀的摘錄,所述宏塊在三個宏塊行上彼此水平相鄰,并且在三個宏塊列上彼此垂直相鄰。宏塊Ml被宏塊M2、M3、M4、M5、M6、M7、M8以及M9圍繞(以下用縮寫形式M2-M9表不),與姆ー個宏塊ー樣,所述宏塊是由以彼此水平相鄰的方式排列在塊行m中以及以彼此垂直相鄰的方式排列在塊列η中的塊B形成的,其中所述塊B形成了第一矩陣M的塊元素M_ m=f4且n=f4。在這里顯示了用于宏塊Ml的塊元素Mmn,并且在圖I的第一塊行m=l以及第ー塊列n=l的范圍中部分顯示了用于宏塊M2的塊元素。不同的塊被指定給了具有相同標示但卻處于不同宏塊M1、M2的塊元素。在每個范例中,宏塊M1-M9都具有由粗體顯示的水平和垂直邊緣形成的外部邊界。例如,宏塊Ml具有對宏塊M3與宏塊Ml進行劃界的水平邊緣41。此外,宏塊Ml具有對宏塊Ml與宏塊M8進行劃界的水平邊緣42。宏塊Ml具有對宏塊Ml與宏塊M5進行劃界的垂直邊緣43,以及對宏塊Ml與宏塊M6進行劃界的垂直邊緣44。與宏塊M1-M9 —祥,形成宏塊M1-M9的矩陣M中的塊元素Μ_ πι=Γ4且η=1 4的塊B彼此同樣是通過邊緣劃界的。例如,具有塊元素M11的塊是通過水平邊緣18來與宏塊M2的鄰接塊劃界的,其中所述水平邊緣形成了宏塊Ml的水平邊緣41的一部分。此外,具有塊元素M11的塊是通過水平邊緣19來與具有塊元素M21的塊劃界的。具有塊元素M11的塊還具有作為垂直邊緣43的一部分且將其與宏塊M5中的鄰接塊劃界的垂直邊緣14,以及將其與具有塊元素M12的塊劃界的垂直邊緣15。由此,塊B的塊邊緣形成了ー個模糊打印的線狀網(wǎng)格,所述網(wǎng)格被粗體打印的宏塊M1-M9的邊緣部分覆蓋,由此形成了重疊網(wǎng)格。如圖2所示并且以具有塊元素mn的塊為例,依照H. 264標準,每ー個塊B均由像素P形成,其中所述像素以彼此水平相鄰的方式排列在行u中,并且以彼此垂直的方式排列在像素列V中,且其在每ー種情況中都具有四個像素。每ー個塊包括4X4個像素,其中每ー個由4X4的塊組成的宏塊都包含16X16個像素。垂直邊緣14、15以及水平邊緣18、19對P以及諸如具有塊元素M12、M21的塊之類的相鄰塊的像素進行劃界。由此,每ー個塊和每一個宏塊的邊緣會將單個像素P相互劃界,其中一個邊緣區(qū)域包含了排列在一個邊緣上的所有像素P。由此,邊緣18的邊緣區(qū)域中都是像素行u的像素P以及與像素行u的像素P鄰接的塊B的像素P,所述像素行則緊挨著具有塊元素M11的塊B的邊緣18。與像素行u相t匕,來自與邊緣18方向垂直的像素行且遠離像素行u的像素同樣可以處于邊緣18的邊緣區(qū)域中。通過用去塊濾波器來對邊緣區(qū)域——也就是排列在邊緣上的多個像素P——執(zhí)行平滑處理,可以提高感知圖像質(zhì)量,理論上,所述邊緣區(qū)域是用鄰接的塊B之間的變換的光學(xué)感知度引導(dǎo)的??梢愿兄泥徑訅KB之間的光學(xué)變換越是清晰,則應(yīng)該在待濾波邊緣區(qū)域中包含越多的像素。包含在邊緣區(qū)域中的像素的數(shù)量會隨著去塊濾波的強度而增長。塊中的所有像素可被用于平滑邊緣區(qū)域。然而,對排列在由去塊濾波器執(zhí)行平滑處理以提高感知圖像質(zhì)量的邊緣區(qū)域上的像素P來說,對其數(shù)量所做的選擇是由所用視頻壓縮方法引導(dǎo)的,例如H. 264標準。圖3顯示的是用于對宏塊Ml執(zhí)行濾波的上下文區(qū)域K1,其中除了待濾波宏塊Ml之外,所述區(qū)域還包括圍繞該宏塊的邊界,并且所述邊界包括33個塊。所述上下文區(qū)域Kl由那些以彼此水平相鄰的方式排列在塊行ο中以及以彼此垂直的方式排列在塊列P中的塊 形成,并且所述塊形成了第二矩陣K的塊元素Ktjp,其中0=廣7且p=f 7,并且其中塊元素K ,r=3飛且s=3飛對應(yīng)的是第一矩陣M的塊元素M_ m=l 4且η=1 4。上下文區(qū)域Kl具有水平邊緣51、52以及垂直邊緣53、54,其中每一個邊緣均由七個塊形成。如圖2中針對具有塊元素K77的塊顯示的那樣,每個塊都包含了 4X4個像素。例如,具有塊元素k33的塊對應(yīng)的是具有塊元素M11的塊,具有塊元素K66的塊對應(yīng)的是具有塊元素M44的塊。換句話說,上下文區(qū)域Kl是通過圍繞宏塊Ml延伸來自具有塊元素K11、K12、K13、Κ14、Κ15、Κ16、Κ17、Κ21、Κ22、Κ23、Κ24、Κ25、Κ26、Κ27、Κ31、Κ32、Κ37、Κ41、Κ42、Κ47、Κ51、Κ52、Κ57、Κ61、Κ62、Κ67、Κ71、Κ72、Κ73、Κ74、Κ75、Κ76 以及 Κ77 的塊的邊界形成的。未被濾波的重建圖像的圖像數(shù)據(jù)將被用作這些塊的圖像數(shù)據(jù)。所述未被濾波的重建圖像的圖像數(shù)據(jù)可以從用于未被濾波的圖像材料的圖像存儲器中獲取。由此,在每一個范例中,除了宏塊Ml的塊B的像素P之外,在上下文區(qū)域中還會包含沿著宏塊Ml的水平邊緣41以及沿著宏塊Ml的垂直邊緣43的像素P的鄰接行。此外,在每一種情況中,沿著宏塊Ml的水平邊緣42以及宏塊Ml的垂直邊緣44的四行像素P將被包含。圍繞宏塊延伸的邊界僅僅包含了宏塊Μ2-Μ9的一部分(參見
圖1),其中所述邊界是由上下文區(qū)域Kl的塊B形成的。宏塊Μ2-Μ9的塊B以及圖2中未被顯示并且未被包含在上下文區(qū)域Kl中的其他宏塊形成了與上下文區(qū)域Kl鄰接的塊B的外部區(qū)域60。通過將用于對逐個宏塊Μ1-Μ9濾波的塊B限制成總共49個塊,可以在與別的宏塊無關(guān)的情況下對每一個宏塊Μ1-Μ9執(zhí)行濾波。這樣則可以采用相互并行的方式來同時對多個宏塊進行濾波。具有多個計算核心的處理器的計算能力可以與多個上下文塊Kl的同時濾波一起使用,其中所述上下文塊可以在相互獨立的情況下濾波。濾波結(jié)果可以保存在用于已濾波圖像材料的圖像存儲器中。對于上下文區(qū)域Kl的塊B的垂直邊緣1、3和水平邊緣2、10來說,依照為圖像信息指定的編碼標準,其濾波始于第二矩陣K的塊元素KU。在圖3所示的實施例的示例中,為圖像信息指定的編碼標準是H. 264標準。其他標準同樣是可行的。用于對圖3中的水平和垂直邊緣1-29執(zhí)行濾波的濾波步驟序列對應(yīng)的是用于水平和垂直邊緣1-29的參考符號的數(shù)字序列1-29。邊緣1-29中的每一個都會延伸到宏塊Ml中與所述邊緣垂直的下一個邊緣。舉個例子,在濾波步驟9中,被濾波的是從宏塊Ml的水平邊緣41延伸到宏塊Ml的水平邊緣42的垂直邊緣9。舉例來說,從塊元素Kll開始,形成宏塊M3的塊元素1(13、1(14、1(15、1(16、1(23、1(24、1(25以及K26的塊的垂直邊緣3、4、5和6會與其他塊一起被濾波。在對水平邊緣7和垂直邊緣8執(zhí)行了濾波之后,形成宏塊M5的塊元素1(31、1(41、1(51、1(61、1(32、1(42、1(52 以及 K62 的塊的水平邊緣 10、11、12 和 13 (以及其他的塊)將被濾波。至于濾波步驟14、15、16和17,所濾波的是待濾波宏塊Ml的塊的垂直邊緣。對具有宏塊Ml的上下文區(qū)域Kl來說,其濾波是以針對宏塊I的水平邊緣29的濾波為結(jié)束的。濾波步驟1-13濾波的是上下文區(qū)域Kl中具有不與第一宏塊Ml的塊B的像素P相對應(yīng)的塊元素1(11、1(12、1(13、1(14、1(15、1(16、1(17、1(21、1(22、1(23、1(24、1(25、1(26、1(27、1(31、K32、K37、K41、K42、K47、K51、K52、K57、K61、K62、K67、K71、K72、K73、K74、K75、K76 以及 Κ77
的塊B的像素P,并且所述濾波步驟是在用于濾波第一宏塊Ml的塊B的像素P的濾波步驟14-22之前按時間順序執(zhí)行的。這樣ー來,第一宏塊Ml的塊B的像素P是用上下文區(qū)域中不與第一宏塊Ml的塊B的像素P相對應(yīng)的塊B的已濾波像素P濾波的。所述上下文區(qū)域Kl中不與第一宏塊Ml的塊B的像素P相對應(yīng)的塊B的已濾波像素P可以作為已被預(yù)先濾 波的輸入像素來提供,以便對待濾波的宏塊Ml執(zhí)行濾波。已被預(yù)先濾波的像素P本身是依照H. 264標準并且結(jié)合部分未濾波的輸入像素來濾波的,其中處于上下文區(qū)域Kl的外部區(qū)域60的塊B的其他像素P未被用于對這些已被預(yù)先濾波的像素P進行濾波。盡管所使用的只是那些近似或大概濾波的像素,但在對上下文區(qū)域Kl執(zhí)行濾波的時候,與使用未濾波像素P作為輸入像素并依照樸素濾波方法來對宏塊Ml執(zhí)行濾波的處理所實現(xiàn)的漂移效應(yīng)相比,為待濾波宏塊Ml的像素P實現(xiàn)的漂移效應(yīng)將會低出幾個數(shù)量級。如果使用H. 264標準來對上下文區(qū)域Kl執(zhí)行濾波,那么量度產(chǎn)生+/-I的像素差異的概率要小于2χ10_6,這與使用了未濾波像素P作為輸入來對宏塊Ml進行濾波的樸素濾波方法所具有的大約3X 10_3的值形成了對比。與樸素濾波方法相比,在使用H. 264標準的情況下,在大小方面出現(xiàn)大于I的像素差異的概率要小于IX 10Λ對很多應(yīng)用來說,這些像素差異所導(dǎo)致的漂移效應(yīng)是小到可以忽略的。依照隨邊緣區(qū)域中包含的像素P的數(shù)量而增大的去塊濾波強度,可以使用比上下文區(qū)域Kl中不與第一宏塊Ml中的塊B的像素P相對應(yīng)的塊B的像素P更少的像素P來對第一宏塊Ml的塊B的像素P執(zhí)行濾波。這樣可以在不對依照H. 264標準編碼在宏塊Μ1-Μ9和塊B中的幀的圖像質(zhì)量產(chǎn)生任何不利影響的情況下減少計算量。聯(lián)合濾波的相鄰宏塊M2、M3可以形成一個宏塊區(qū)域,在該區(qū)域中,宏塊Ml或宏塊區(qū)域的濾波可以是在與別的宏塊Μ4或別的宏塊區(qū)域無關(guān)的情況下進行的。舉個例子,四個或更多相鄰的宏塊Μ1-Μ9可被聯(lián)合濾波。由于宏塊Μ1-Μ9彼此相鄰,因此,包含這些宏塊Μ1-Μ9的上下文塊Kl將會重疊。由于只對上下文塊Kl的重疊區(qū)域執(zhí)行一次濾波,因此,與在每一次具有待濾波宏塊Ml的情況中都對所有上下文塊Kl執(zhí)行完全濾波的情形相比,計算能力方面的工作將會減少。舉個例子,在圖I所示的四個宏塊Μ1、Μ6、Μ8和Μ9有待進行聯(lián)合濾波的排列中,其中除了待濾波宏塊Ml、M6、M8、M9的64個塊之外具有來自宏塊Ml、M8 ;M6、M9的兩個列,以及來自宏塊M1、M6 ;M8、M9的兩個列,上下文區(qū)域還可以包含89個待濾波塊,以此作為圍繞宏塊M1,M6,M8和M9的邊界。這89個待濾波塊中的第一個塊還包括宏塊M2的矩陣M的塊元素M33、M34、M43和M44。沿著水平邊緣41成一條直線的是宏塊M3的矩陣M中的塊元素M31、M32、M33、M34、M41、M42、M43和M44,以及宏塊M4的矩陣M中的塊元素M31、M32、M33、M34、M41、M42、M43和M44。來自宏塊Ml、M6 ;M8, M9的宏塊區(qū)域的上下文區(qū)域具有水平和垂直邊緣,這些區(qū)域各自是由11個塊形成的。如果在相互獨立的有待濾波的四個宏塊Ml、M6、M8和M9的情況下,那么除了待濾波宏塊M1、M6、M8和M9的64個塊之外,在每ー種情況下,上下文區(qū)域Kl還包括作為圍繞特定宏塊M1、M6、M8和M9的邊界的33個塊(每ー個上下文區(qū)域的49個塊要少于每一個宏塊皿1、厘6、厘8和皿9的16個塊),由此總共是132個塊。相應(yīng)地,如果對四個宏塊Ml、M6、M8和M9執(zhí)行聯(lián)合濾波,那么上下文區(qū)域?qū)?3個塊,其數(shù)量要少于獨立濾波四個宏塊Ml、M6、M8和M9的情形。相對較少的這43個塊不但不需要被濾波,而且還不需要從主存儲器轉(zhuǎn)移至靜態(tài)隨機存取存儲器(SRAM)中進行濾波。為了以最佳方式使用所用處理器的可用計算能力而需要聯(lián)合濾波的宏塊的數(shù)量取決于可用計算核心的數(shù)量以及可用于濾波的SRAM存儲器的大小。非常有利的是,不同宏塊Ml、M2或宏塊區(qū)域的濾波是以相互并行的方式同時進行的。這樣ー來,具有若干個計算核心的現(xiàn)代處理器的計算潛能將會得到充分使用。如果在 具有不同計算核心的處理器上執(zhí)行若干個宏塊Ml、M2或宏塊區(qū)域的并行濾波,那么可以以I萬億次計算/秒的高計算速率或是更高的計算速率來執(zhí)行所述濾波。為了執(zhí)行上下文區(qū)域Kl的濾波,在這里可以提供ー個包含了用于執(zhí)行濾波的濾波算法的計算機程序。通過使用去塊濾波器,可以執(zhí)行根據(jù)本發(fā)明的方法。這里提供的是根據(jù)在宏塊M1-M9中執(zhí)行存儲的H. 264標準來對宏塊M1-M9執(zhí)行濾波的去塊濾波器,其中所述宏塊以彼此水平相鄰的方式排列在宏塊行中,并且以彼此垂直的方式排列在宏塊列中,姆ー個宏塊M1-M9是由以彼此水平相鄰的方式排列在塊行m中以及以彼此垂直的方式排列在塊列η中的塊B形成的,并且所述塊B形成了第一矩陣M的塊元素Μ_ πι=Γ4且n=f 4,其中塊B具有形成塊B的外部邊界的垂直邊緣14、15以及水平邊緣18、19,由此,通過以塊元素Mll為濾波起點,可以對宏塊M1-M9的塊B的垂直邊緣14、15以及水平邊緣18、19執(zhí)行濾波。去塊濾波器包括一個用于確定包含了待濾波的第一宏塊Ml的塊B的上下文區(qū)域Kl的分析単元,其中所述上下文區(qū)域是由以彼此水平相鄰的方式排列在塊行ο中以及以彼此垂直的方式排列在塊列P中的塊B形成的,這些塊形成了第二矩陣K的塊元素Ktjp,其中0=廣7且ρ=1 7,其中塊元素Krs, r=3飛且s=3飛對應(yīng)的是第一矩陣M的塊元素M_ m=l 4且n=l 4。此外,所述去塊濾波器還包括一個濾波単元,用于以第二矩陣K的塊元素K11為濾波起點且依照H. 264標準來對上下文區(qū)域Kl的塊B的水平邊緣13以及垂直邊緣2,10執(zhí)行濾波。非常有利的是,去塊濾波器包括ー個具有不同計算核心的處理器。根據(jù)圖3所示的實施例的示例,所述濾波步驟1-29可以采用彼此并行的方式進行。去塊濾波器可以包括主存儲器和靜態(tài)隨機存取存儲器。主存儲器和靜態(tài)隨機存取存儲器可被部署在部署于計算機中的圖形卡上。借助去塊濾波器,可以采用彼此并行的方式來同時對不同宏塊M1-M9以及包含了可以聯(lián)合濾波的宏塊M1-M9的不同宏塊區(qū)域進行濾波。這樣ー來,與以串行方式執(zhí)行濾波的濾波器相比,對宏塊M1-M9執(zhí)行濾波所需要的時間可以縮短。
權(quán)利要求
1.一種依照保存在宏塊(Ml,M2)中的圖像信息的編碼標準來對宏塊(Ml)執(zhí)行去塊濾波的方法,其中所述宏塊以彼此水平相鄰的方式排列在宏塊行中,以及以彼此垂直相鄰的方式排列在宏塊列中,其中姆ー個宏塊(Ml, M2)是由以彼此水平相鄰的方式排列在塊行m中并且以彼此垂直相鄰的方式排列在塊列η中的塊(B)形成的,并且所述塊形成了第一矩陣M的塊元素Αη,πι=Γ4且n=f 4,其中這些塊(B)分別具有形成所述塊(B)的外部邊界的垂直邊緣(14,15)和水平邊緣(18,19),并且宏塊(Ml,M2)中的塊(B)的垂直邊緣(14,15)和水平邊緣(18,19)是以塊元素M11為開始結(jié)合以下步驟而被濾波的 確定包含了待濾波的第一宏塊(Ml)中的塊(B)的上下文區(qū)域(K1),所述上下文區(qū)域是由以彼此水平相鄰的方式排列在塊行ο中以及以彼此垂直相鄰的方式排列在塊列P中的塊(B)形成的,并且所述塊形成了第二矩陣K的塊元素Κ_ ο=Γ7且p=f 7,其中塊元素Κ , r=3 6且s=3 6對應(yīng)于第一矩陣M的塊元素Mmn, m=l 4且n=l 4,以及 以第二矩陣K的塊元素K11為開始,依照用于圖像信息的編碼標準,對上下文區(qū)域(Kl)中的塊(B )的垂直邊緣(I,3 )和水平邊緣(2,19 )執(zhí)行濾波。
2.根據(jù)權(quán)利要求I的方法,其中用于圖像信息的編碼標準是H.264標準。
3.根據(jù)權(quán)利要求I或權(quán)利要求2的方法,其中每ー個塊(B)是由待濾波的像素(P)形成的,其中所述像素以相互水平的方式排列在像素行(U)中,以及以相互垂直的方式排列在像素列(V)中,并且在每ー種情況中都具有四個像素(P)。
4.根據(jù)權(quán)利要求3的方法,其中上下文區(qū)域(Kl)中不與第一宏塊(Ml)中的塊(B)的像素(P)相對應(yīng)的塊(B)的像素(P)是在所述第一宏塊(Ml)的塊(B)的像素(P)之前按時間順序濾波的。
5.根據(jù)權(quán)利要求4的方法,其中第一宏塊(Ml)中的塊(B)的像素(P)是用上下文區(qū)域(Kl)中那些不與第一宏塊(Ml)中的塊(B)的像素(P)相對應(yīng)的塊(B)的已濾波像素(P)濾波的。
6.根據(jù)權(quán)利要求5的方法,其中依照去塊濾波強度來使用比上下文區(qū)域(Kl)中不與第一宏塊(Ml)中的塊(B)的像素(P)相對應(yīng)的塊(B)的像素(P)更少的像素對第一宏塊(Ml)的塊(B)的像素(P)執(zhí)行濾波。
7.根據(jù)前述任ー權(quán)利要求的方法,其中聯(lián)合濾波的相鄰宏塊(Ml,M2)形成一個宏塊區(qū)域,以及宏塊(Ml)或宏塊區(qū)域的濾波是以與別的宏塊(M2)或別的宏塊區(qū)域無關(guān)的方式進行的。
8.根據(jù)前述任ー權(quán)利要求的方法,其中不同宏塊(Ml,M2)和/或宏塊區(qū)域的濾波是以相互并行的方式同時進行的。
9.根據(jù)權(quán)利要求8的方法,其中若干宏塊(Ml,M2)或宏塊區(qū)域的并行濾波是在具有不同計算核心的處理器上執(zhí)行的。
10.根據(jù)前述任ー權(quán)利要求的方法,其中通過提供計算機程序來執(zhí)行去塊濾波,所述計算機程序包含了用于執(zhí)行濾波的濾波算法。
11.一種特別用于執(zhí)行根據(jù)權(quán)利要求1-9中任ー權(quán)利要求的方法的去塊濾波器,所述濾波器依照保存在宏塊(Ml,M2)中的圖像信息的編碼標準來對以彼此水平相鄰的方式排列在宏塊行中以及以彼此垂直相鄰的方式排列在宏塊列中的宏塊(Ml)執(zhí)行濾波,其中每ー個宏塊(Ml,M2)是由以彼此水平相鄰的方式排列在塊行m中并且以彼此垂直相鄰的方式排列在塊列η中的塊(B)形成的,并且所述塊形成了第一矩陣M的塊元素M_ m=f4且n=f4,其中這些塊(B)分別具有形成所述塊(B)的外部邊界的垂直邊緣(14,15)和水平邊緣(18,19),并且宏塊(M1,M2)中的塊(B)的垂直邊緣(14,15)和水平邊緣(18,19)是以塊元素M11作為濾波起點開始濾波的,包括 分析単元,用于確定包含了待濾波的第一宏塊(Ml)中的塊(B)的上下文區(qū)域(K1),所述上下文區(qū)域由那些以彼此水平相鄰的方式排列在塊行ο中以及以彼此垂直的方式排列在塊列P中的塊(B)形成,并且所述塊(B)形成了第二矩陣K的塊元素Ktjp, 0=廣7且p=f7,其中塊元素K ,r=3 6且s=3 6對應(yīng)的是第一矩陣M的塊元素M_ m=l 4且n=l 4,以及濾波單元,用于依照圖像信息的編碼標準并以第二矩陣K的塊元素K11為濾波起點來對上下文區(qū)域(Kl)中的塊(B)的水平邊緣(I,3 )和垂直邊緣(2,10 )執(zhí)行濾波。
12.根據(jù)權(quán)利要求11的去塊濾波器,其中該濾波器包含了具有不同計算核心的處理器。
13.根據(jù)權(quán)利要求11或權(quán)利要求12的去塊濾波器,其中濾波器包括主存儲器和靜態(tài)隨機存取存儲器(Static Random Access Memory)0
14.根據(jù)權(quán)利要求11-13中任ー權(quán)利要求的去塊濾波器,其中包含了可以聯(lián)合濾波的宏塊(M1,M2)的不同宏塊(M1,M2)和/或不同宏塊區(qū)域可以采用相互并行的方式同時濾波。
15.—種具有用于執(zhí)行權(quán)利要求1-10中任ー權(quán)利要求的方法的濾波算法的計算機程序。
全文摘要
本發(fā)明涉及一種依照保存在宏塊(M1,M2)中的圖像信息的編碼標準來對宏塊(M1)執(zhí)行去塊濾波的方法,所述宏塊以彼此水平相鄰的方式排列在宏塊行中,以及以彼此垂直相鄰的方式排列在宏塊列中,其中每一個宏塊(M1,M2)是由以彼此水平相鄰的方式排列在塊行m中并且以彼此垂直相鄰的方式排列在塊列n中的塊(B)形成的,并且所述塊形成了第一矩陣M的塊元素Mmn,m=1~4且n=1~4,其中這些塊(B)分別具有垂直邊緣(14,15)和水平邊緣(18,19),并且每一個邊緣都提供了塊(B)的外部邊緣,宏塊(M1,M2)中的塊(B)的垂直邊緣(14,15)和水平邊緣(18,19)是以塊元素M11為開始濾波的,其中包含了待濾波的第一宏塊(M1)中塊(B)的上下文區(qū)域(K1)將被規(guī)定,并且所述區(qū)域是由以彼此水平相鄰的方式排列在塊行o中以及以彼此垂直的方式排列在塊列p中的塊(B)形成的,并且所述塊(B)形成了第二矩陣K的塊元素Kop,o=1~7且p=1~7,其中塊元素Krs,r=3~6且s=3~6對應(yīng)的是第一矩陣M的塊元素Mmn,m=1~4且n=1~4。接下來,以第二矩陣K的塊元素K11為開始,依照圖像信息的編碼標準來對上下文區(qū)域(K1)的塊(B)的垂直邊緣(1,3)以及水平邊緣(2,10)執(zhí)行濾波。
文檔編號H04N7/50GK102835104SQ201080066150
公開日2012年12月19日 申請日期2010年4月14日 優(yōu)先權(quán)日2010年4月14日
發(fā)明者N.奧爾特爾 申請人:西門子企業(yè)通訊有限責(zé)任兩合公司