專利名稱:一種去塊濾波方法、系統及去塊濾波器的制作方法
技術領域:
本發明屬于基于塊的視頻編解碼領域,尤其涉及一種去塊濾波方法、系統 及去塊濾波器。
背景技術:
傳統基于塊的視頻編解碼系統,在相對碼率較低的視頻編解碼時總會遇到 塊效應問題。塊效應的產生嚴重影響圖像的主觀質量,究其原因是基于塊的預 測、補償、變換、量化而造成的。為了克服這種塊效應,新型視頻編解碼在編
碼環中引入了去塊濾波(Deblocking)系統,簡稱"濾波",該系統也是新型視頻 編解碼在相對碼率較低的情況下依舊能保持較好的主觀j見覺效果的重要因素之 一,是新型^L頻編解碼中的重要組成部分。
由于新型^L頻編解碼中的整數變換基于4x4點,去塊濾波系統在濾波時也 以4x4點的子塊為單元處理。如圖1示出了現有技術提供的宏塊邊界濾波順序 示意圖,其中圖l(a)、圖l(b)分別表示一個宏塊的亮度分量邊界和色度分 量邊界。將整個視頻或圖像幀分為若干個16x16的宏塊(Micro Block, MB), 每個宏塊由16個4x4的子塊(Sub-block)組成,將所有子塊的每列左邊界組 成的宏塊列邊界定義為A、 B、 C、 D,子塊每行的上邊界組成的宏塊行邊界定 義為a、 b、 c、 d。濾波時分別對每個子塊的上邊界和左邊界進行濾波,以先對 每列邊界水平濾波,再對每行邊界垂直濾波,先濾亮度值,再濾色度值的順序 對宏塊的子塊邊界分別處理。對垂直邊界進行水平濾波時,從最左側的邊開始, 從左到右依次對A、 B、 C、 D四條垂直邊界進行水平濾波;對水平邊界進行垂 直濾波時,從最上方開始,從上到下依次對a、 b、 c、 d四條水平邊界進行垂直 濾波。濾過亮度值后再濾色度值,色度分為U、 V,依次對U、 V分量進行濾波,以E、 F的順序對色度分量的垂直邊界進行水平濾波,以e、 f的順序對色 度分量的水平邊界進行垂直濾波。在整個16x16的宏塊濾波結束后再將所有濾 波數據一起存儲到外部存儲器中。現有技術的濾波方法中,亮度和色度的處理 可以并行處理,但是濾波體系需要采用多個濾波控制單元、濾波單元和內部寄 存器以實現并行,這樣的方法在減少了濾波時間的同時,增大了芯片的面積。
現有技術中的視頻編解碼協議所描述的濾波方法,讀取整個16x16的宏塊 后,再進行縱向橫向濾波,濾波結束后才能將整個宏塊存儲到外部存儲器,整 個宏塊的圖像信息讀取、濾波、存儲順序進行,未將讀取、濾波和存儲過程最 大限度的并行,導致數據處理速度慢,濾波系統利用率不高,嚴重制約濾波性 能,在需要濾波的圖像數據量很大時,該缺陷表現得更為明顯。
發明內容
本發明實施例的目的在于提供一種去塊濾波方法,旨在解決現有技術中將 每個宏塊橫縱濾波完成后再存儲的濾波方法影響數據處理速度的問題。
本發明實施例是這樣實現的, 一種去塊濾波方法,所述去塊濾波方法將一 個視頻或圖像幀分為若干個16x16宏塊,每個宏塊分為16個4x4的子塊,將 所述宏塊按照4個子塊為一行的方式分成四行,對宏塊中的每個子塊的上邊界 和左邊界進行濾波,其特征在于,所述濾波方法包括步驟
讀取當前宏塊到內部存儲器;
對當前宏塊以行為單位進行濾波;及
完成一行濾波后將該行存儲。
本發明實施例的另一目的在于提供一種采用上述去塊濾波方法的去塊濾波 系統,所述系統包括
濾波控制單元,用于對整個去塊濾波各單元進行控制;
內部存儲器,包括存儲器和寄存器,用于存儲參與濾波的宏塊的圖像數據;
外部存儲器,用于存儲當前幀所有宏塊的視頻數據,包括已濾波和未濾波的宏塊,即整幀圖像數據,通過數據總線與內部存儲器進行數據交換或傳遞;
及
濾波單元,用于讀取當前宏塊進行垂直邊界的水平濾波和水平邊界的垂直 濾波,通過控制單元的控制將濾波結果存儲到外部存儲器或者內部存儲器中。
本發明實施例的另一目的在于提供一種去塊濾波器,所述濾波器采用上述 去塊濾波方法,或者上述去塊濾波系統。
本發明實施例的另一目的在于提供一種移動多媒體處理器,包括上述去塊
濾波器。
本發明的濾波方法為讀取16xl6宏塊的圖像信息到內部存儲器后,對一行 進行垂直邊界的水平濾波,之后對該行進行水平邊界的垂直濾波,依次再對下 一行濾波,當完成一行的濾波后,判斷該行是否參與后續濾波過程,根據判斷 結果,將該行以及上一行濾波得到的圖像信息存儲到內部或者外部存儲器中。 本發明的濾波方法節省空間、時間,滿足了當前市場的要求。
圖l是現有技術提供的宏塊邊界濾波順序示意圖; 圖2是本發明實施例提供的去塊濾波方法的實現流程圖; 圖3是本發明實施例提供的去塊濾波系統結構圖; 圖4是本發明實施例提供的內部存儲器結構圖5是本發明實施例提供的去塊濾波方法的16x16的宏塊與相鄰子塊示意
圖6是本發明實施例提供的宏塊A、 B行亮度濾波結束后各子塊存儲區內 的圖像信息示意圖7是本發明實施例提供的宏塊C、 D行亮度濾波結束后備子塊存儲區內 的圖像信息示意圖;息;
圖9是本發明實施例提供的去塊濾波流程圖。
具體實施例方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實 施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅 僅用以解釋本發明,并不用于限定本發明。
本發明實施例中,將整個視頻或圖像幀存儲到外部存儲器,然后啟動濾波 系統,先對每個宏塊進行濾波強度計算,并判斷是否要對當前宏塊進行濾波, 之后將需要濾波的宏塊讀入內部存儲器,然后對每個宏塊的以行為單位對每一 行子塊順次進行亮度和色度的垂直邊界的濾波和水平邊界濾波濾波,當完成一 行子塊的濾波后再將不再參與后續濾波的圖像信息存儲到外部存儲器,參與后 續濾波的子塊留在內部存儲器中備用,直到整個視頻或圖像幀的宏塊均濾波完 成為止。其中對當前宏塊濾波的順序為對當前宏塊第一行先進行垂直邊界的水 平濾波,再進行水平邊界的垂直濾波,對第一行濾波完成后即刻進行第二行的 濾波,同時將第 一行頂宏塊的最后 一行圖像信息即頂宏塊存儲器內的圖像信息 存儲到外部存儲器中,第二行濾波完成后即刻進行第三行的濾波,同時將第一 行的圖像信息存儲到外部存儲器中,其他行依次濾波,先進行亮度的濾波,再 進行色度的濾波,直到將整個宏塊濾波完成。采用這種橫縱交互、邊濾邊存的 濾波方法,改進了現有^l支術中的先縱后橫、整塊存儲的濾波方法,提高了濾波 速度。同時在上述濾波方法基礎上,本發明還提供了與之相應的系統及去塊濾 波器。
濾波強度的提前計算可以提供出完整的宏塊濾波信息,在整個濾波過程中, 即可獲得當前宏塊、上方宏塊以及下方宏塊的信息,去除掉不必要的解碼圖像 數據的讀寫數據總線(Direct Memory Access, DMA)的才喿作。
本發明實施例中,整個圖像幀圖像存儲在外部存儲器,濾波時將整個圖像幀分為若干宏塊,對每個宏塊進行濾波,由于在基礎級別的碼流中為零的情況 比較多,考慮到實際視頻碼流中有宏塊強度為零的情況,本發明實施例中,濾 波開始時先進行濾波強度的計算,再判斷該宏塊是否需要進行濾波。判斷方法
為
判斷當前宏塊邊界強度是否全為零,當前宏塊強度不全為0時,對當前宏 塊進行濾波;若當前宏塊邊界強度全為零,但當前宏塊存在正下方宏塊且正下 方宏塊頂水平邊界強度不為零,則將當前宏塊亮度的最后一行存儲到頂宏塊存 儲器;若當前宏塊邊界強度全為零,但當前宏塊存在右側宏塊且其最左側垂直 邊界強度不為零,則將當前宏塊亮度最左側子塊存儲到側宏塊存儲器。
作為本發明的一個實施例,為節省資源,對宏塊進行濾波強度計算的過程 與將宏塊的圖像信息存儲到內部存儲器的過程可以并行進行。
本發明實施例中,完成強度計算,并經判斷可以對當前宏塊進行濾波后, 開始對宏塊依次進行濾波。圖2示出了本發明實施例提供的去塊濾波方法的實 現流程,本發明實施例所述的濾波方法,包括以下步驟
在步驟S201中,讀取當前宏塊到內部存儲器;
在步驟S202中,對當前宏塊以行為單位進行濾波;
在步驟S203中,完成一行濾波后將該行存儲。
本發明實施例中,所述讀取當前宏塊到內部存儲器,為從外部存儲器中將 整個視頻或圖像幀的所有宏塊通過數據總線依次讀取到內部存儲器中。
本發明實施例中,所述對當前宏塊以行為單位進行濾波的步驟為
讀取當前宏塊第一行進行濾波,即對所述行的四個子塊進行垂直邊界的水 平濾波,再進行水平邊界的垂直濾波;
完成第 一行濾波后,開始讀取當前宏塊第二行到內部存^l器并進行濾波, 同時將當前宏塊上方的頂宏塊最后一行四個子塊的圖l象信息存儲到外部存儲器 中,對第二行進行濾波,即對所述行的四個子塊進行垂直邊界的水平濾波,再 進行水平邊界的垂直濾波;完成第二行濾波后,開始讀取當前宏塊第三行到內部存儲器并進行濾波, 同時將第一行的圖像信息存儲到外部的存儲器中,對第三行進行濾波,即對所
述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;
完成第三行濾波后,開始讀取當前宏塊第四行到內部存儲器并進行濾波, 同時將第二行的圖像信息存儲到外部的存儲器中,對第四行進行濾波,即對所
述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;及 完成第四行濾波后,開始色度U、 V宏塊的濾波,濾波過程與亮度相同。 在完成亮度第四行濾波后,將亮度第三行的圖像信息存儲到外部存儲器中;判 斷亮度第四行的圖像信息是否參與到下行宏塊濾波,如果參與到下行宏塊的濾 波,將其存儲到頂宏塊存儲器中,否則直接存儲到外部存儲器中,亮度色度宏 塊濾波結束后,開始對下個宏塊進行濾波。
作為本發明的 一個實施例,在讀取所述當前宏塊一行子塊進行濾波之前, 需要判斷所述行是否已經全部讀取到內部存儲器中,只要所述行圖像信息已經 成功讀取到內部存儲器中,即刻對所述行進行濾波。換言之,當讀取所述當前
宏塊圖像信息到內部存儲器時,可以在完成整個宏塊的讀耳又后再啟動濾波過程, 也可以在完成整個宏塊一行圖像信息的讀取后即刻開始對該行的濾波。
作為本發明的一個實施例,所述完成一行濾波后將該行存儲,可以是只要 所述行濾波完成便將其寫出到內部或者外部存儲器,也可以是所述行濾波完成, 并且所述當前宏塊的圖像信息均已完成讀取到內部存儲器中的過程,再將所述 行寫出到內部或者外部存儲器中。作為本發明的一個實施例,由于外部存儲器 多選用單端口的外部存儲器,讀寫操作需要串行運行,本實施例的這一處理確 保了讀寫操作不相沖突。
圖3示出了本發明實施例提供的去塊濾波系統的結構,所述系統包括 濾波控制單元301 ,用于對整個去塊濾波各單元進行控制; 濾波強度計算單元302,用于在濾波開始前對宏塊進行濾波強度計算,以 判斷是否有必要對所述宏塊進行濾波;內部存儲器304,包括存儲器B和寄存器A,用于存儲參與濾波的宏塊的 圖像數據,通過數據總線進行數據交換或傳遞;
外部存儲器306,用于存儲當前幀所有宏塊的^L頻數據,包括已濾波和未 濾波的宏塊,即整幀圖像數據;
濾波單元303,用于對當前宏塊進行垂直邊界的水平濾波和水平邊界的垂 直濾波,通過控制單元301的控制將濾波結果存儲到外部存儲器306或者內部 存儲器304中。
濾波控制單元301、濾波強度計算單元302、內部存儲器304、濾波單元303 位于去塊濾波器的內部,與外部存儲器通過凄t據總線進行數據傳遞或交換。所 述數據總線可以是DMA。
圖4示出了本發明實施例提供的內部存儲器304結構圖。所述內部存儲器 304用于存儲參與濾波過程所需的當前宏塊圖像信息及與當前宏塊濾波相關的 所有信息,包括寄存器A和存儲器B。
其中所述寄存器A包括寄存器q和寄存器p,用于存儲當前宏塊濾波數據、 從當前宏塊存儲器403讀取的圖像數據、從側宏塊存儲器402和頂宏塊存儲器 401讀取的圖〗象數據。
所述存儲器B包括
頂宏塊存儲器401,用于存儲位于當前宏塊上方相鄰宏塊最下邊亮度4 x 16 子塊或色度U、 V4x8子塊的圖像信息,并在完成當前宏塊濾波過程后換為存 儲當前宏塊最下方亮度4 x 16子塊或色度U、 V4 x 8子塊用于后續正下方宏塊 濾波的圖像信息;
側宏塊存儲器402,用于存儲位于當前宏塊左側相鄰宏塊最右邊亮度16 x 4 子塊或色度U、 V8x4子塊的圖《象信息,并在完成當前宏塊濾波過程后換為存 儲當前宏塊的最右邊亮度16x4子塊或色度U、 V8 x 4子塊用于后續宏塊濾波 的圖像信息;及
當前宏塊存儲器403,用于存儲需要濾波的當前宏塊的圖像信息。本發明實施例中,在完成當前宏塊濾波過程后側宏塊存儲器402換為存儲 當前宏塊的最右邊亮度16x4子塊或色度U、 V8x4子塊用于后續宏塊濾波的 圖像信息及頂宏塊存儲器401換為存儲當前宏塊最下方亮度4 x 16子塊或色度 U、 V4x8子塊用于正下方宏塊濾波的圖像信息這一方案,不僅存儲空間得以 高效利用,而且避免了正下方宏塊濾波時再去外部存儲器306中讀取圖像信息, 提高了濾波的速度。另外頂宏塊存儲器401除了濾波時使用外,在解碼過程中 的幀間預測也得到復用。
由于實際工程中用到的外部存儲器306是同步動態隨機存儲器 (Synchronous Dynamic Random Access Memory, SDRAM),其只支持單端口 即讀寫不能同時發生。為了能更好的滿足性能要求,作為本發明的一個實施例, 在開始濾波時,從外部存儲器306讀取當前宏塊的圖像數據到當前宏塊存儲器 403,當整個亮度的圖像信息讀完后進行濾波,同時讀取色度U、 V的圖像信息, 即對該行垂直邊界和水平邊界濾波的同時,色度的U、 V圖像信息讀入內部存 儲器304中為進行色度濾波準備就緒,這樣將讀取色度圖像信息所耗費的時間 最大程度上并行在亮度的濾波過程中,而亮度、色度圖像濾波都結束后的圖像 信息即刻通過直接存儲器存取(Direct Memory Access, DMA)存儲到外部存 儲器306又與亮度、色度的濾波過程并行。并且本發明實施例中將當前宏塊參 與到右側宏塊或正下方宏塊濾波的子塊保留在內部存儲器304中,不必存儲到 外部存儲器306的濾波方案,進一步節省了數據的讀入寫出所耗費的時間。
作為本發明的又一個實施例,另一個方案可以是在開始濾波時,從外部存 儲器306讀取當前宏塊的圖像數據到當前宏塊存儲器403,當一行亮度的圖像 信息讀完后即刻對該行進行亮度濾波,邊讀入下一行邊對該行進行濾波,實現 并行操作。當整個亮度的圖像信息讀完后隨即一行行讀取色度U和V的圖像信 息,與對亮度濾波相似,完成一行的讀取后即可對該行進行色度濾波,當完成 一行的濾波后即可將該行上方一行根據用途的不同,分別寫出到內部或者外部 存儲器中,最大程度實現對外部存儲器的利用。以下均以本實施例的并行方式為例對本發明的原理進行詳細論述,并不喪失一般性。
當讀入寫出同時發生時,作為本發明的一個實施例,讀入的優先級高于寫 出的優先級。
圖5示出了本發明實施例提供的去塊濾波方法的16x16的宏塊與相鄰子塊 示意圖。圖5(a)表示要濾波的亮度分量邊界,標記為白色的為需要濾波的16x16 的宏塊,共分為16個4x4的子塊,并依照先橫后縱的方式將子塊依次標記為0、 1、.3...15,標記有斜線背景的為相鄰左側和上方的一行子塊,依照先橫后縱的 方式依次標記為a、 b、 c...h,將16x16的宏塊和相鄰的子塊4安行對上邊界標記, 定義為A、 B、 C及D行,例如A代表第一行子塊e、 0、 1、 2、 3的上邊界。
亮度分量的濾波順序為首先對A行進行濾波,對0、 1、 2、 3子塊進行 垂直邊界的水平濾波后,對0、 1、 2、 3子塊進行水平邊界的垂直濾波。當A 行濾波完成后,宏塊上方的子塊a、 b、 c、 d的圖^f象信息即刻通過DMA存儲到 外部存儲器306中,并同時開始對B行進行濾波。對B行進行濾波的過程與A 行相同,即對4、 5、 6、 7子塊進行垂直邊界的水平濾波,然后對4、 5、 6、 7 子塊進行水平邊界的垂直濾波。當B行濾波完成后,A行的圖像信息即刻通過 DMA存儲到外部的存儲器中,同時對C行進行濾波。對8、 9、 10、 ll子塊進 行垂直邊界的水平濾波,然后對8、 9、 10、 11子塊進行水平邊界的垂直濾波。 當C行濾波完成后,B行的圖像信息即刻通過DMA存儲到外部的存儲器中, 并同時對D行進行濾波。對12、 13、 14、 15子塊進行垂直邊界的水平濾波, 然后對12、 13、 14、 15子塊進行水平邊界的垂直濾波。C行的圖像信息在D 行完成濾波后存儲到外部存儲器306中,D行的圖像信息將存入頂宏塊存儲器 401中,參與下面宏塊的濾波。
作為本發明的一個實施例,當子塊3, 7, 11, 15參與到當前宏塊右側宏塊 的縱向濾波時,這4個子塊不寫出到外部存儲器306。
作為本發明的一個實施例,當子塊12, 13, 14, 15涉及到當前宏塊正下方 宏塊的橫向濾波時,這4個子塊也不會寫出。這樣降低了存儲器存取所需的周期,提高性能。
圖5 (b)示出了色度分量的濾波順序,與亮度分量的濾波順序相同,筒述
如下對16、 17子塊進行水平濾波后,對16、 17進行垂直濾波;當E行垂直 濾波完成后,對18、 19進行水平濾波,然后對18、 19進行垂直濾波。由于色 度分量又分為U、 V兩種,U、 V濾波順序相同。
以下對宏塊進行濾波的過程進行詳細描述。圖6、 7、 8示出了本發明實施 例提供的濾波結束后宏塊各子塊存儲區內的圖傳 rf息示意圖。
對A行進行垂直邊界的水平濾波,詳述如下
濾波開始后,調用當前宏塊存儲器403中標記為0的子塊和側宏塊存儲器 402中標記為e的子塊內的圖像信息分別到寄存器q、 p中,進行垂直邊界的水 平濾波,濾波結束后,p寄存器內濾波后的圖像信息e,存儲到當前宏塊存儲器 403的0子塊所在的存儲區,q寄存器內濾波后圖像信息O,存儲到p寄存器;
調用當前宏塊存儲器403中1子塊內圖像信息至q寄存器,進行垂直邊界 的水平濾波,濾波結束后,p寄存器內濾波后的圖像信息O,存儲到當前宏塊存 儲器403的1子塊所在的存儲區,q寄存器內濾波后的圖像信息l,存儲到p寄 存器;
調用當前宏塊存儲器403中2子塊內圖像信息至q寄存器,進行垂直邊界 的水平濾波,濾波結束后,p寄存器內濾波后的圖像信息l,存儲到當前宏塊存 儲器403的2子塊所在的存儲區,q寄存器內濾波后的圖像信息2,存儲到p寄 存器;
調用當前宏塊存儲器403中3子塊內圖像信息至q寄存器,進行垂直邊界 的水平濾波,濾波結束后,p寄存器內的濾波后圖像信息2'存儲到當前宏塊存 儲器403的3子塊所在的存儲區,q寄存器內濾波后的圖像信息3'存儲到側宏 塊存儲器402e子塊所在的存儲區。
以上完成了 A行垂直邊界的水平濾波,濾波結束后,原各個存儲區內的數 據實現了錯位存儲,如圖6 (a)所示,e,、 0,、 1,、 2,、 3,分別表示垂直邊界水平濾波結束后的圖像信息,即圖像的像素值。
對A行進行水平邊界的垂直濾波,詳述如下
調用當前宏塊存儲區內的1子塊所在存儲區的圖像信息,即O,圖像信息和 頂宏塊存儲器401的a子塊分別存儲到q、p寄存器,進行水平邊界的垂直濾波, 濾波結束后,q寄存器內圖像信息O"存儲到1子塊所在存儲區,p寄存器內圖 像信息a,存儲到a子塊所在存儲區;
調用當前宏塊存儲區內的2子塊所在存儲區的圖像信息,即l,圖像信息和 頂宏塊存儲器401的b子塊分別存儲到q、p寄存器,進行水平邊界的垂直濾波, 濾波結束后,q寄存器內圖像信息l,,存儲到2子塊所在存儲區,p寄存器內圖 像信息b,存儲到b子塊所在存儲區;
調用當前宏塊存儲區內的3子塊所在存儲區的圖像信息,即2'圖像信息和 頂宏塊存儲器401的c子塊分別存儲到q、p寄存器,進行水平邊界的垂直濾波, 濾波結束后,q寄存器內圖像信息2"存儲到3子塊所在存儲區,p寄存器內圖 像信息c,存儲到c子塊所在存儲區;
調用側宏塊存儲區內的e子塊所在存儲區的圖像信息,即3'圖像信息和頂 宏塊存儲器401的d子塊分別存儲到q、 p寄存器,進行水平邊界的垂直濾波, 濾波結束后,q寄存器內圖像信息存儲3"到側宏塊存儲器402e子塊所在存儲區, p寄存器內圖j象信息d,存儲到d子塊所在存儲區。
以上完成了 A^f亍水平邊界的垂直濾波,如圖6(b)所示,a,、 b,、 c,、 d,、 0", 1", 2", 3"分別表示完成水平邊界垂直濾波后的圖像信息。
以上操作完成A行的垂直邊界和水平邊界的濾波,此時頂宏塊存儲器401 中a、 b、 c、 d子塊所在存儲區內濾波后的圖^象信息a,、 b,、 c,、 d,可以通過DMA 存儲到外部存儲器306中。
完成A行的濾波后,開始B行的垂直邊界水平濾波,濾波過程同A行類 似,詳述如下
濾波開始后,調用當前宏塊存儲器403中標記為4的子塊和側宏塊存儲器402中標記為f的子塊分別到寄存器q、 p中,進行垂直邊界的水平濾波,濾波 結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的4子塊所 在的存儲區,q寄存器內濾波后的圖像信息存儲到p寄存器;
調用當前宏塊存儲器403中5子塊至q寄存器,進行垂直邊界的水平濾波, 濾波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的5子 塊所在的存儲區,q寄存器內濾波后的圖像信息存儲到p寄存器;
調用當前宏塊存儲器403中6子塊至q寄存器,進行垂直邊界的水平濾波, 濾波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的6子 塊所在的存儲區,q寄存器內濾波后的圖傳4言息存儲到p寄存器;
調用當前宏塊存儲器403中7子塊至q寄存器,進行垂直邊界的水平濾波, 濾波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的7子 塊所在的存儲區,q寄存器內濾波后的圖像信息存儲到側宏塊存儲器402f子塊 存儲區。
以上完成了 B行垂直邊界的水平濾波,濾波結束后,原各個存儲區內的數 據實現錯位存儲,如圖6(c)所示,4,、 5,、 6,、 7,、 f分別是B行垂直邊界水 平濾波結束后的圖像信息。
之后進行B行水平邊界的垂直濾波,與A行的濾波過程類似,詳述如下
調用當前宏塊存儲區內的5子塊即4'圖像信息和當前宏塊存儲器403的1 子塊所在存儲區的'圖像信息,即O"圖像信息分別存儲到q、 p寄存器,進行水 平邊界的垂直濾波,濾波結束后,q寄存器內濾波后的圖像信息存儲到5子塊 所在存儲區,p寄存器內濾波后的圖像信息存儲到1子塊所在存儲區;
調用當前宏塊存儲區內的6子塊所在存儲區的圖像信息和2子塊所在存儲 區的圖像信息分別存儲到q、 p寄存器,進行水平邊界的垂直濾波,濾波結束后, q寄存器內濾波后的圖像信息存儲到6子塊所在存儲區,p寄存器內濾波后的圖 像信息存儲到2子塊所在存儲區;
調用當前宏塊存儲區內的7子塊所在存儲區的圖像信息和3子塊所在存儲區的圖像信息分別存儲到q、 p寄存器,進行水平邊界的垂直濾波,濾波結束后,
q寄存器內濾波后的圖像信息存儲到7子塊所在存儲區,p寄存器內濾波后的圖 像信息存儲到3子塊所在存儲區;
調用側宏塊存儲區內的f子塊所在存儲區的圖像信息和側宏塊存儲器402 的e子塊所在存儲區的圖像信息分別存儲到q、 p寄存器,進行水平邊界的垂直 濾波,濾波結束后,q寄存器內濾波后的圖像信息存儲到側宏塊存儲器402f子 塊所在存儲區,p寄存器內濾波后的圖像信息存儲到e子塊所在存儲區。
如圖6(d)所示,O,"、 l,"、 2",、 3",、 4"、 5"、 6"、 7"分別表示完成 水平邊界垂直濾波后的圖像信息。以上操作完成B行的垂直邊界和水平邊界的 濾波,此時標記為e、 0、 1、 2、 3子塊所在存儲區內濾波后的圖像信息3,"、 e'、 0",、 l,"、 2",可以通過DMA存儲到外部存儲器306中。其中當當前宏塊右側 宏塊不存在或者其右側宏塊最左側邊界強度為0時,即當前宏塊右側16x4子塊 不參與右側宏塊濾波,在側宏塊e子塊內的3",圖像信息需要通過DMA存儲到 外部存儲器306中,否則不需要寫出,將作為下一宏塊的側宏塊e存入側宏塊 存儲器402中。這樣節省了不必要的圖像信息讀取所消耗的時間,濾波性能有 所提高。
C行的濾波過程與B行類似。完成C行的垂直邊界和水平邊界的濾波后, 如圖7 (a)所示,此時標記為f、 4、 5、 6、 7子塊所在存儲區內濾波后的圖像 信息7,"、 f、 4",、 5",和6,"可以通過DMA存儲到外部存儲器306中。其中 當當前宏塊右側宏塊不存在或者其右側宏塊最左側邊界強度為0時,即當前宏 塊右側16x4子塊不參與右側宏塊濾波,在側宏塊f子塊內的7",圖像信息需要 通過DMA存儲到外部存儲器306中,否則不需要寫出,將作為下一宏塊的側 宏塊f存入側宏塊存儲器402中。D行的濾波過程與C和B行類似,如圖7 ( b ) 所示,完成D行的垂直邊界和水平邊界的濾波后,此時標記為g、 8、 9、 10、 11子塊所在存儲區內濾波后的圖像信息11",、 g,、 8",、 9",、 IO,,,可以通過 DMA存儲到外部存儲器306中。其中當當前宏塊右側宏塊不存在或者其右側宏塊最左側邊界強度為0時,即當前宏塊右側16x4子塊不參與右側宏塊濾波, 在側宏塊g子塊內的lr"圖像信息需要通過DMA存儲到外部存儲器306中, 否則不需要寫出,將作為下一宏塊的側宏塊g存入側宏塊存儲器402中。
若當前宏塊所在行是整幅圖像最后一行或者當前宏塊正下方宏塊頂邊濾波 強度全為O時,即當前宏塊最下方的4xl6子塊不參與正下方宏塊的濾波,標記 為13、 14、 15、 h子塊所在存儲區內濾波后的圖像信息12"、 13"、 14"、 15" 可以通過DMA存儲到外部存儲器306中;否則標記為13、 14、 15、 h子塊所 在存儲區內濾波后的圖像信息存儲到頂宏塊存儲器401相應的存儲區內。由于 12子塊內濾波后的圖像信息,即h,的圖像信息可能參與當前宏塊左下方宏塊的 濾波,因此當其需要參與當前宏塊左下方宏塊的濾波時,該子塊存儲到頂宏塊 相應的存儲區內,否則存儲到外部存儲器306中。
對當前宏塊的亮度濾波完成后,即進行色度的濾波,色度分為U和V兩種 模式,這兩種圖像信息的處理模式相同,與亮度濾波過程類似。以U圖像濾波 為例,詳述如下
進行E行垂直邊界的水平濾波
濾波開始后,調用當前宏塊存儲器403中標記為16的子塊和側宏塊存儲器 402中標記為k的子塊分別至子寄存器q、 p中,進行垂直邊界的水平濾波,濾 波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的16子塊 所在的存儲區,q寄存器內濾波后的圖像信息存儲到p寄存器;
調用當前宏塊存儲器403中17子塊至q寄存器,進行垂直邊界的水平濾波, 濾波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的17子 塊所在的存儲區,q寄存器內濾波后的圖像信息存儲到側宏塊存儲器402k子塊 存儲區。
以上完成了 E行垂直邊界的水平濾波,濾波結束后,原各個存儲區內的數 據實現了錯位存儲,如圖8(a)所示,17,、 k,、 16,分別是垂直邊界水平濾波 結束后的圖像信息。進行E行水平邊界的垂直濾波 調用當前宏塊存儲區內的17子塊和頂宏塊存儲器401的i子塊內的圖像信 息分別存儲到q、 p寄存器,進行水平邊界的垂直濾波,濾波結束后,q寄存器 內濾波后的圖像信息存儲到17子塊所在存儲區,p寄存器內像素值存儲到i子 塊所在存儲區;
調用側宏塊存儲區內的k子塊和j子塊內的圖像信息分別存儲到q、 p寄存 器,進行水平邊界的垂直濾波,濾波結束后,q寄存器內濾波后的圖像信息存 儲到側宏塊存儲器402k子塊所在存儲區,p寄存器內濾波后的圖像信息存儲到 頂宏塊存儲器401j子塊所在存儲區。
如圖8(b)所示,17"、 16"、 i,、 j,分別表示完成水平邊界垂直濾波后的 圖像信息。以上操作完成E行的垂直邊界和水平邊界的濾波。此時頂宏塊存儲 區標記為i、 j子塊所在存儲區內濾波后的圖像信息i,、 j,可以通過DMA存儲到 外部存儲器306中。
對F行進行垂直邊界的水平濾波
濾波開始后,調用當前宏塊存儲器403中標記為18的子塊和側宏塊存儲器 402中標記為1的子塊內的圖像信息分別至子寄存器q、 p中,進行垂直邊界的 水平濾波,濾波結束后,p寄存器內濾波后的圖^象信息存儲到當前宏塊存儲器 403的18子塊所在的存儲區,q寄存器內濾波后的圖像信息存儲到p寄存器;
調用當前宏塊存儲器403中19子塊至q寄存器,進行垂直邊界的水平濾波, 濾波結束后,p寄存器內濾波后的圖像信息存儲到當前宏塊存儲器403的19子 塊所在的存儲區,q寄存器內濾波后的圖像信息存儲到側宏塊存儲器4021子塊 存儲區,以上完成了 F行垂直邊界的水平濾波,濾波結束后,原各個存儲區內 的數據實現了錯位存儲,如7(c)圖所示,19,、 1,、 18,分別表示垂直邊界水平 濾波結束后的圖像信息。
之后進行F行水平邊界的垂直濾波
調用當前宏塊存儲區內的19子塊和17子塊分別存儲到q、 p寄存器,進行水平邊界的垂直濾波,濾波結束后,q寄存器內圖像信息存儲到19子塊所在存 儲區,p寄存器內圖像信息存儲到17子塊所在存儲區;
調用側宏塊存儲區內的1子塊和k子塊分別存儲到q、 p寄存器,進行水平 邊界的垂直濾波,濾波結束后,q寄存器內圖像信息存儲到側宏塊存儲器4021 子塊所在存儲區,p寄存器內圖像信息存儲到頂宏塊存儲器401k子塊所在存儲 區。
如圖8(d)所示,17,"、 16",、 19"、 18"分別表示完成水平邊界垂直濾 波后的圖像信息'。以上操作完成F行的垂直邊界和水平邊界的濾波。此時標記 為k、 16、 17子塊所在存儲區內濾波后的圖像信息17" 、k,、 16"可以通過DMA 存儲到外部存儲器306中。
其中當當前宏塊右側宏塊不存在或者其右側宏塊最左側邊界強度為0時, 即當前宏塊右側8x4子塊不參與右側宏塊濾波,在側宏塊k子塊內的17',,圖像 信息需要通過DMA存儲到外部存儲器306中,否則不需要寫出,將作為下一 宏塊的側宏塊k存入側宏塊存儲器402中。
若當前宏塊所在行是整幅圖像最后一行或者當前宏塊正下方宏塊頂邊濾波 強度全為0時,標記為1、 18、 19子塊所在存儲區內濾波后的圖像信息19"、 1,、 18"可以通過DMA存^"到外部存儲器306中;否則標記為1、 18、 19子塊所在 存儲區內濾波后的圖像信息存儲至頂宏塊存儲器401相應的存儲區內。
作為本發明的一個實施例,若當前宏塊所在行是整幅圖像最后一行或者當 前宏塊正下方宏塊頂邊濾波強度全為0時,即當前宏塊最下方的4x8子塊不參 與正下方宏塊的濾波,標記為19、 1子塊所在存儲區內濾波后的圖1象信息18"、 19"可以通過DMA存儲到外部存儲器306中;否則標記為19、 1子塊所在存儲 區內濾波后的圖像信息存儲至頂宏塊存儲器401相應的存儲區內。
由于18子塊內濾波后的圖像信息,即l,的圖像信息可能參與當前宏塊左下 方宏塊的濾波。因此,當其參與當前宏塊左下方宏塊的濾波時,該子塊存儲到 頂宏塊相應的存儲區內;否則存儲到外部存儲器306中。V圖像濾波的處理方法與U圖像完全相同。
對當前宏塊的亮度、色度全部濾波完成后,再調入下一個宏塊進行濾波,
直到整個圖像信息濾波完成,將所有有用信息存儲到外部存儲器306中,釋放
寄存器401B中數據。
圖9示出了本發明實施例提供的去塊濾波流程圖,具體步驟詳述如下 在步驟S901中,計算當前宏塊邊界強度是否全為0,是則執行S902,否
則執行S908;
在步驟S902中,判斷當前宏塊是否為該行的最后一個宏塊,是則執行S905, 否則執行S903;
在步驟S903中,判斷當前宏塊右側宏塊的最左側邊濾波強度是否全為0, 是則執行S905,否則執行S904;
在步驟S904中,從外部存儲器306讀取當前宏塊最右邊的16x4子塊到側 宏塊存儲器402中;
在步驟S905中,判斷當前宏塊位于所在整幀圖像的最后一行,是則結束, 否則執行S906;
在步驟S906中,判斷當前宏塊正下方宏塊的頂邊濾波強度是否全為0,是 則結束,否則執行S907;
在步驟S907中,從外部存儲器306讀取當前宏塊最下方4x16.子塊到頂宏 塊存儲器401中;
在步驟S908中,從外部存儲器306讀取當前宏塊整個16x16亮度圖像信
白
在步驟S909中,對宏塊的亮度進行濾波,同時并行進行色度U、 V圖像信 息的讀入。在濾波過程中,相應行濾波結束后,將需要寫出的子塊寫出到外部 存儲器306,完成整個亮度、色度圖像的濾波;
在步驟S910中,判斷當前宏塊是否位于所在整幀圖像的最后一行,是則結 束,否則執行S911;在步驟S911中,判斷當前宏塊正下方宏塊的頂邊濾波強度是否全為0,是 則結束,否則執4亍S912;
在步驟S912中,將當前宏塊最下方4x16亮度塊和4x8色度子塊U、 V存 入頂宏塊存^f渚區相應位置。
作為本發明的一個實施例,本發明的濾波方法可以應用于移動多々某體處理 器的編解碼中,從實際效果看,可以很好的滿足性能的要求。目前,移動多媒 體處理器被廣泛應用于各種手持設備,市場對性能的要求越來越高,本發明滿 足了市場對移動多媒體處理器性能的更高要求。
本發明實施例提供的一種去塊濾波方法,先計算濾波強度并判斷宏塊是否 需要濾波,將每一個16x16的宏塊分成4x16的4行,再將要進行濾波的宏塊 的圖像信息按照整行4x16字塊為一個單元逐行讀入內部存儲器304中,然后當 完成第一行讀取后即可開始對第一行進行先垂直再水平的濾波,濾波結束后即 可將側宏塊的圖像信息寫出到外部存儲器中。在第一行進行濾波的同時,第二 行的圖像信息通過數據總線存儲內部存儲器304中,當第二行濾波結束后可將 第一行寫出;當第三行濾波結束后可將第二行寫出;當第四行濾波結束后可將 三行寫出,第四行是否寫出需要判斷其是否參與今后的濾波過程。本發明的濾 波方法可以是將整個宏塊的信息讀取完畢后再進行逐行濾波,濾波過程與寫出 過程實現并行操作,也可以是逐行讀取和逐行濾波過程并行進行,待到外部存 儲器不再進行讀取后并行開始進行逐行寫出。綜上所述,與現有技術的濾波方 法相比,本發明實施例的整個16x16宏塊通過數據總線的讀入、寫出的操作包 含在整個宏塊的濾波過程中,提高了數據總線的利用率,節省時間,從而使整 個解碼的性能得到很大的提高,以滿足當前市場的要求。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發 明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明 的保護范圍之內。
權利要求
1、一種去塊濾波方法,所述去塊濾波方法將一個視頻或圖像幀分為若干個16×16宏塊,每個宏塊分為16個4×4的子塊,將所述宏塊按照4個子塊為一行的方式分成四行,對宏塊中的每個子塊的上邊界和左邊界進行濾波,其特征在于,所述濾波方法包括步驟讀取當前宏塊到內部存儲器;對當前宏塊以行為單位進行濾波;及完成一行濾波后將該行存儲。
2、 如權利要求l所述的方法,其特征在于,所述讀取當前宏塊到內部存儲器為從外部存儲器中將整個視頻或圖像幀的所有宏塊通過數據總線依次讀取到內部存儲器中。
3、 如權利要求l所述的方法,其特征在于,所述對當前宏塊以行為單位進行濾波的步驟為讀取當前宏塊第一行進行濾波,即對所述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;完成第一行濾波后,開始讀取當前宏塊第二行到內部存儲器并進行濾波,同時當前宏塊上方的頂宏塊最后一行四個子塊的圖像信息存儲到外部存儲器中,對第二行進行濾波,即對所述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;完成第二行濾波后,開始讀取當前宏塊第三行到內部存儲器并進行濾波,同時將第一行的圖像信息存儲到外部的存儲器中,對第三行進行濾波,即對所述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;完成第三行濾波后,開始讀取當前宏塊第四行到內部存儲器并進行濾波,同時將第二行的圖像信息存儲到外部的存儲器中,對第四行進行濾波,即對所述行的四個子塊進行垂直邊界的水平濾波,再進行水平邊界的垂直濾波;及完成第四行濾波后,開始讀取下一行到內部存儲器并進行濾波,同時將第三行的圖像信息存儲到外部的存儲器中,同時將第四行的圖像信息存儲到頂宏塊存儲器中,參與下一行濾波。
4、 如權利要求3所述的方法,其特征在于,當當前宏塊每行的最后一個子塊將參與到所述宏塊右側宏塊的垂直邊界濾波時,所述子塊存儲到側宏塊存儲器。
5、 如權利要求3所述的方法,其特征在于,當當前宏塊每列的最后一個子塊將參與到所述宏塊正下方宏塊的水平邊界濾波時,所述子塊存儲到頂宏塊存儲器。
6、 如權利要求1所述的方法,其特征在于,當讀取所述當前宏塊圖像信息到內部存儲器時,可以為在完成整個宏塊的讀取后再啟動濾波過程,或者為在完成整個宏塊一行圖像信息的讀取后即刻開始對該行的濾波。
7、 如權利要求l所述的方法,其特征在于,所述完成一行濾波后將該行存儲,可以為只要所述行濾波完成便將其寫出到內部或者外部存儲器,或者為所述行濾波完成,并且所述當前宏塊的圖像信息均已完成讀取到內部存儲器中的過程,再將所述行寫出到內部或者外部存儲器中。
8、 如權利要求l-7任一所述的方法,其特征在于,所述對當前宏塊進行濾波為進行亮度濾波或者色度濾波。
9、 如權利要求8所述的方法,其特征在于,對所述宏塊進行亮度和色度濾波時,濾波順序為先對亮度進行濾波,后對色度進行濾波。
10、 如權利要求l所述的方法,其特征在于,所述方法中在對宏塊進行濾波之前進一步包括步驟對宏塊進行濾波強度計算;及判斷是否對當前宏塊進行濾波。
11、 如權利要求IO所述的方法,其特征在于,所述對宏塊進行濾波強度計算和將宏塊的圖像信息存儲到內部存儲器并行進行。
12、 如權利要求IO所述的方法,其特征在于,所述判斷是否對所述宏塊進4亍濾波的方法為判斷當前宏塊邊界強度是否全為零,當前宏塊強度不全為0時,對當前宏塊進行濾波;若當前宏塊邊界強度全為零,但當前宏塊存在正下方宏塊且正下方宏塊頂水平邊界強度不為零,則將當前宏塊亮度的最后一行存^f諸到頂宏塊存儲器;以及若當前宏塊邊界強度全為零,但當前宏塊存在右側宏塊且其最左側垂直邊界強度不為零,則將當前宏塊亮度最左側子塊存儲到側宏塊存儲器。
13、 如權利要求1所述的方法,其特征在于,當讀取和存儲數據同時發生時,讀取優先級高于存儲優先級。
14、 一種采用如權利要求1的方法的去塊濾波系統,其特征在于,所述系統包括濾波控制單元,用于對整個去塊濾波各單元進行控制;內部存儲器,包括存儲器和寄存器,用于存儲參與濾波的宏塊的圖像數據;外部存儲器,用于存儲當前幀所有宏塊的視頻數據,包括已濾波和未濾波的宏塊,即整幀圖像數據,通過數據總線與內部存儲器進行數據交換或傳遞;及濾波單元,用于讀取當前宏塊進行垂直邊界的水平濾波和水平邊界的垂直濾波,通過控制單元的控制將濾波結果存儲到外部存儲器或者內部存儲器中。
15、 如權利要求14所述的系統,其特征在于,所述系統進一步—包括濾波強度計算單元,用于在濾波開始前讀取宏塊進行濾波強度計算,以判斷是否有必要對所述宏塊進行濾波。
16、 如權利要求15所述的系統,其特征在于,所述濾波強度計算單元與所述內部存儲器可以并行使用。
17、 如權利要求14所述的系統,其特征在于,所述濾波單元在濾波前可以判斷是否對所述宏塊進行濾波,所述判斷方法為判斷當前宏塊邊界強度是否全為零,當前宏塊強度不全為0時,對當前宏塊進行濾波;若當前宏塊邊界強度全為零,但當前宏塊存在正下方宏塊且正下方宏塊頂水平邊界強度不為零,則將當前宏塊亮度的最后一行存儲到頂宏塊存儲器;以及若當前宏塊邊界強度全為零,但當前宏塊存在右側宏塊且其最左側垂直邊界強度不為零,則將當前宏塊亮度最左側子塊存儲到側宏塊存儲器。
18、 如權利要求14所述的系統,其特征在于,當所述系統讀取和存儲數據同時發生時,讀取優先級高于存儲優先級。
19、 如權利要求14所述的系統,其特征在于,所述數據總線為直接存儲器存取DMA。
20、 如權利要求14所述的系統,其特征在于,所述內部存儲器用于存儲參與濾波過程所需的當前宏塊圖像信息及與當前宏塊濾波相關的所有信息,包括存儲器和寄存器,所述寄存器包括寄存器q和寄存器p,用于存儲當前宏塊濾波數據、從當前宏塊存儲器讀取的圖像數據、從側宏塊存儲器和頂宏塊存儲器讀取的圖像數據,所述存儲器包括頂宏塊存儲器,用于存儲位于當前宏塊上方相鄰宏塊最下邊亮度4x 16子塊或色度U、 V4x8子塊的圖像信息,并在完成當前宏塊濾波過程后換為存儲當前宏塊最下方亮度4x 16子塊或色度U、 V4x8子塊用于后續正下方宏塊濾波的圖像信息;側宏塊存儲器,用于存儲位于當前宏塊左側相鄰宏塊最右邊亮度16 x 4子塊或色度U、 V8x4子塊的圖像信息,并在完成當前宏塊濾波過程后換為存儲當前宏塊的最右邊亮度16 x 4子塊或色度U、 V8 x 4子塊用于后續宏塊濾波的圖像信息;及當前宏塊存儲器,用于存儲需要濾波的當前宏塊的圖像信息。
21、如權利要求14所述的系統,其特征在于,所述外部存儲器是同步動態隨機存儲器。
22、 如權利要求14或15所述的系統,其特征在于,所述系統應用于移動多媒體處理器。
23、 一種采用權利要求14所述的去塊濾波系統的去塊濾波器。
24、 一種移動多i某體處理器,其特征在于,'包括如權利要求23所述的去塊濾波器。
全文摘要
本發明適用于基于塊的視頻編解碼領域,提供了一種去塊濾波方法、系統及去塊濾波器。將一個視頻或圖像幀分為若干個16×16宏塊,每個宏塊分為16個4×4的子塊,將所述宏塊按照4個子塊為一行的方式分成四行,對宏塊中的每個子塊的上邊界和左邊界進行濾波,所述濾波方法包括步驟讀取當前宏塊到內部存儲器;對當前宏塊以行為單位進行濾波;及完成一行濾波后將該行存儲。讀取16×16宏塊的圖像信息到內部存儲器后,對一行進行垂直邊界的水平濾波,之后對該行進行水平邊界的垂直濾波,依次再對下一行濾波,當完成一行的濾波后,判斷該行是否參與后續濾波過程,根據判斷結果,將該行以及上一行濾波得到的圖像信息存儲到內部或者外部存儲器中。
文檔編號H04N7/26GK101472173SQ20071012559
公開日2009年7月1日 申請日期2007年12月29日 優先權日2007年12月29日
發明者劉志強, 成富平, 王曉寄, 胡勝發 申請人:深圳安凱微電子技術有限公司