專利名稱:消除成塊假象和/或振鈴噪聲的濾波方法及其設備的制作方法
技術領域:
本發明涉及消除成塊假象(blocking artifact)和/或振鈴噪聲(ringingnoise),尤其涉及消除逐塊處理圖像幀時引起的成塊假象和振鈴噪聲的濾波方法和設備。
背景技術:
一般說來,視頻數據是通過以塊為單位處理圖像幀編碼的。具體地說,根據諸如運動圖像組(MPEG)和H.263之類的視頻數據編碼標準,通過以塊為單元對圖像幀進行離散余弦變換(DCT)和量化來編碼視頻數據。但是,以塊為單元編碼圖像幀可能導致成塊假象和振鈴噪聲。成塊假象使不包含在原始幀中的邊界區域存在于再現圖像幀中,從而引起再現圖像幀中邊界區域的相鄰像素之間的不連續。此外,當振鈴噪聲存在于圖像幀中時,圖像幀中對象的邊界線不是被光滑地畫出來的,例如,邊界線可能是不規則的。再現圖像幀的壓縮比越高,成塊假象和振鈴噪聲就越嚴重。
為了濾除成塊假象和振鈴噪聲,重要的是首先找出出現成塊假象和振鈴噪聲的圖像幀的確切區域。否則,存在于原始圖像幀中的邊界區域可能被錯誤地當作由于成塊假象造成的,并且將其消除了,從而使圖像質量變差。
一般說來,為了實現消除成塊假象和/或振鈴噪聲的傳統濾波方法,需要檢測由于成塊假象和/或振鈴噪聲再現的像素塊的邊界區域。例如,在由數個8×8或4×4像素塊組成的再現圖像幀中,測量存在于8×8或4×4像素塊之間的邊界上的像素的像素值,譬如,亮度、發光率和色彩的分布,并且將測量值與預定臨界值相比較。臨界值是通過測量像素的上述像素值,譬如,亮度、發光率和色彩的分布,找出上述像素值的分布之間的關系,和確定邊界區域是否存在于圖像幀之中,用實驗方法獲得的。
為了測量像素值的分布,必須沿著垂直或水平方向檢查相鄰塊之間的邊界區域中的像素值。但是,事實上,由于大量計算和復雜性,對邊界區域中的每個像素值都進行檢查幾乎是不可能的。具體地說,由于按照時間順序沿著垂直方向把像素值存儲在存儲設備中,為了沿著垂直方向計算像素值,需要連續訪問存儲設備。但是,連續訪問存儲設備至少目前是絕對做不到的。
發明內容
本發明提供了有效檢測存在于像素塊中的邊界區域的濾波方法和設備。
本發明還提供了利用小量計算就能有效檢測存在于像素塊中的邊界區域的濾波方法和設備。
根據本發明的一個方面,提供了消除成塊假象的方法,該方法包括(a)逐塊變換視頻數據;和(b)通過檢查變換獲得的值的分布,檢測視頻數據中邊界區域的存在。
根據本發明的另一個方面,提供了消除成塊假象的方法,該方法包括(a)逐塊變換和量化視頻數據;(b)根據變換和量化獲得的值的分布,建立濾波信息;和(c)根據濾波信息,濾波視頻數據。
優選地,(a)包括(a1)對視頻數據逐塊進行DCT,以獲得DCT系數;和(a2)量化DCT系數。更優選地,(a)包括對4×4像素塊進行DCT和量化,以獲得4×4量化DCT塊。
優選地,(b)包括根據量化DCT系數,建立表示存在成塊假象和/或振鈴噪聲的程度的濾波信息。更優選地,(b)包括(b1)通過檢查在量化DCT塊的最上行上,除了DC(直流)分量之外的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的垂直方向中。
優選地,(b)還包括(b2)通過檢查在量化DCT塊的最左列上,除了DC分量之外的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的水平方向中。要不然,(b)可以包括(b3)通過檢查不是在量化DCT塊的最上行和最左列上的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的對角線方向中。
優選地,(b)包括當只有像素A具有除了0之外的值時,把垂直成塊標志(VBF)和水平成塊標志(HBF)設置成1,作為濾波信息。優選地,(c)包括如果HBF和VBF被設置成1,那么,沿著像素塊的垂直和水平方向更強烈地進行消塊(deblocking)濾波。
優選地,(b)包括當只有像素A和B具有除了0之外的值時,把VBF設置成1,作為濾波信息,和(c)包括當VBF被設置成1時,沿著像素塊的垂直方向更強烈地進行消塊濾波。
優選地,(b)包括當只有像素A和C具有除了0之外的值時,把HBF設置成1,作為濾波信息,和(c)包括當HBF被設置成1時,沿著像素塊的水平方向更強烈地進行消塊濾波。
優選地,當像素A、B和C具有除了0之外的值時,把振鈴標志(RF)設置成1,和(c)包括當RF被設置成1時,更強烈地進行消鈴(deringing)濾波。
根據本發明的再一個方面,提供了消除成塊假象的濾波方法,該方法包括(a)以像素為單位變換和量化由視頻數據組成的塊,以便獲得量化值,檢查獲得的量化值,和當檢查結果表示需要濾波信息時,建立濾波信息;和(b)根據建立的濾波信息進行濾波。
優選地,(a)包括(a1)對在塊的最上行和最左列上,除了與DC分量相對應的像素之外的像素之一進行DCT和量化,以獲得量化DCT系數;和(a2)檢查量化DCT系數,當量化DCT系數是除了0之外的值時,根據檢查結果建立濾波信息,和終止對最上行和最左列上的像素進行DCT和量化。
(a)包括(a3)檢查量化DCT系數,和當量化DCT系數是0時,對在最上行和最左列上,除了與DC分量相對應的像素之外的像素之一進行DCT和量化;(a4)對除了與DC分量相對應的像素和在最上行和最左列上的像素之外的其余像素重復執行(a2)和(a3),以獲得量化DCT系數;和(a5)當在最上行和最左列上的所有像素的量化DCT系數都是0時,建立濾波信息。
根據本發明的再一個方面,提供了編碼視頻數據的編碼器,該編碼器包括環路濾波器,其中,環路濾波器包括濾波信息生成單元,用于根據通過變換和量化像素塊獲得的值的分布,建立濾波信息;濾波特性判定單元,用于根據建立的濾波信息,確定濾波特性;和消塊濾波器,用于根據確定的濾波特性,進行消塊濾波。
優選地,環路濾波器還包括環路變換單元,用于逐塊變換中間幀的像素值;和環路量化單元,用于量化由環路變換單元變換的值。
通過參照附圖,對本發明的優選實施例作詳細描述,本發明的上述目的和優點將更加清楚,在附圖中
圖1是根據本發明的編碼設備的方塊圖;圖2是根據本發明第一實施例的環路濾波器的方塊圖;圖3和4是顯示根據本發明第一實施例,利用濾波信息生成單元生成濾波信息的方法的圖形;圖5是顯示根據本發明第一實施例的一種變型生成的濾波信息的圖形;圖6是顯示根據本發明第一實施例的濾波方法的流程圖;圖7是顯示根據本發明第一實施例的另一種濾波方法的流程圖;圖8是根據本發明第二實施例的環路濾波器的方塊圖;圖9是顯示根據本發明第二實施例,利用濾波信息生成單元獲取濾波信息提取數據的方法、和根據獲取的濾波信息提取數據生成濾波信息的方法的圖形;和圖10是顯示根據本發明第二實施例的濾波方法的流程圖。
具體實施例方式
為了更好地理解本發明,在參照附圖描述本發明的優選實施例之前,簡要描述一下編碼視頻數據的概念。
一般說來,視頻數據由許多圖像幀組成。把圖像幀編碼成內部幀和中間幀,然后將它們發送出去。內部幀是不參照其它圖像編碼的,并且可以獨立地解碼它。同時,中間幀是根據前一個或后一個圖像,即,中間幀與前一個或后一個幀之間的差異編碼的,因此,解碼中間幀需要前一個或后一個幀。每個圖像幀由若干個宏塊組成,和每個宏塊由若干個像素塊組成。
在根據本發明的濾波方法和執行該方法的編碼設備中,邊界區域是通過變換宏塊或像素塊和檢查獲得的變換值和/或量化變換值獲得的值的分布來檢測的。現在描述濾波方法和執行該方法的編碼設備。
圖1是根據本發明優選實施例的編碼設備的方塊圖。參照圖1,編碼設備包括運動估計器1、變換器2、量化器3、逆量化器4、逆變換器5、運動補償器6和環路濾波器7。編碼設備還包括控制器(未示出)、第一開關10、第二開關20、和第三開關30,所有開關都由控制器來控制。
當把視頻數據輸入控制器時,控制器控制第一開關10,以便使內部幀和中間幀分別直接輸入變換器2和運動估計器1。運動估計器1將像素值與像素塊單元中的前像素值相比較,并且把像素值與前像素值之間的差值,即運動向量輸出到變換器2。變換器2改變數據的描述方式,即,在內部幀的情況中,變換存在于圖像幀中的像素值,和在中間幀的情況中,變換差值,即運動向量。在本發明的這個實施例中,進行離散余弦變換(DCT),以變換圖像幀,但是,諸如離散子波變換(DWT)之類的任何可應用方法都可用來取代DCT。量化器3根據預定量化步長,量化變換值,即,DCT系數。對于各個塊單元,可以自適應地確定量化步長。但是,量化步長越大,由于值的量化引起的噪聲就增加得越多。對圖像幀進行DCT和量化獲得的值利用,例如,可變長度編碼(VLC)來編碼,并且將結果發送到接收端。
同時,把通過DCT和量化獲得的值輸入到逆量化器4或環路濾波器7。此外,控制器控制第二開關20把內部幀輸入環路濾波器7中和只把中間幀輸入逆量化器4中。更明確地說,在內部幀的情況中,為了檢測邊界區域,需要從量化器3輸出的值,即,通過以塊為單位對像素進行DCT和量化獲得的值。因此,無需另外進行處理,可以把值直接輸入環路濾波器7中。在中間幀的情況中,從量化器3輸出的值是通過對中間幀和它們的前一幀之間的差值(運動向量)進行DCT和量化獲得的。因此,把值輸入逆量化器4中,以便對像素逐塊進行逆DCT和逆量化,這是以塊為單位恢復像素值的過程。
逆量化器4根據預定量化步長逆量化給定的像素值,和逆變換器5逆變換逆量化的值。更明確地說,在這個實施例中,逆變換器5對逆量化值進行逆離散余弦變換(IDCT)。但是,在變換器2采用除了DCT之外的其它變換方法的情況中,逆變換器5根據除了IDCT之外的逆變換方法進行逆變換。例如,如果把變換器2設置成對像素值進行離散子波變換(DWT),那么,逆變換器5對它進行逆DWT(IDWT)。從逆變換器5輸出的內部幀是要濾波的像素值,即,當前圖像幀的像素值,因此,將其輸入環路濾波器7中。內部幀需要得到運動補償,以獲得當前圖像幀的像素值,因此,將其輸入運動補償器6中。接著,控制器控制第三開關30,以便把從逆變換器5輸出的內部幀輸入環路濾波器7中,和從逆變換器5輸出的內部幀輸入運動補償器6中。然后,運動補償器6以塊為單位把內部幀與前圖像幀之間的差值加入前圖像幀中,恢復當前圖像幀,和把結果輸出到環路濾波器7。
環路濾波器7根據本發明濾波圖像幀。根據本發明的第一實施例,環路濾波器7檢查通過對像素值進行DCT和量化獲得的值的分布,以確定邊界區域是否存在于圖像幀中,并且根據檢查結果濾波圖像幀。根據本發明的第二實施例,環路濾波器7檢查分別對最上行和最左列上的像素值進行DCT和量化獲得的值,以便確定邊界區域是否存在于圖像幀中。接著,環路濾波器根據檢查結果,濾波圖像幀。以后將描述環路濾波器7的操作的詳細內容。
圖2是根據本發明第一實施例的環路濾波器的方塊圖。參照圖2,環路濾波器7包括環路變換單元71、環路量化單元72、濾波信息生成單元73、濾波特性判定單元74、消塊濾波器75、和消鈴濾波器76。
存在兩種輸入環路濾波器7的數據(i)要濾波的對象數據①;和(ii)要用于生成濾波信息的濾波信息提取數據②和③。對象數據①指的是圖像幀以塊為單位的像素值。內部幀的對象數據①通過第三開關30發送到環路濾波器7,和中間幀的對象數據①從運動補償器6輸入到環路濾波器7。在第一實施例中,濾波信息提取數據②和③指的是對某個塊的像素值進行DCT和量化獲得的值。內部幀的濾波信息提取數據②指的是對某個塊的像素值進行DCT和量化獲得的值,并且通過第二開關20直接發送到環路濾波器7,以便無需另外計算處理,就可以建立濾波信息。但是,中間幀的濾波信息提取數據③是從運動補償器6輸入到環路濾波器7的,因此,在環路濾波器7內必須對它進行變換和量化。由于這個原因,把通過第二開關20輸入的值,即,內部幀的濾波信息提取數據②輸入濾波信息生成單元73,和把從運動補償器6輸入的值,即,中間幀的濾波信息提取數據③,輸入環路變換單元71。
環路變換單元71和環路量化單元72為內部幀逐塊分別變換和量化像素值。環路變換單元71和環路量化單元72具有與如圖1所示的變換器2和量化器3相同的功能,即,變換和量化。但是,環路變換單元71和環路量化單元72的變換和量化不需要與變換器2和量化器3一樣精確。這是因為,由環路變換單元71和環路量化單元72生成的值只用于檢測邊界區域的存在與否,因此可以具有比變換器2和量化器3為了編碼視頻數據而獲得的那些值低的精度。于是,環路變換單元71和環路量化單元72可以利用整數運算來代替浮點運算,增大量化步長,或進行快速DCT,降低DCT和量化的精度,從而降低計算量。例如,由環路量化單元72進行的簡化量化算法如下LEVEL=(K×A(QP)+f×220)/220其中,LEVEL表示量化值,K表示對其進行DCT的量化像素值,A(QP)表示來自映射表的常數,和f是根據目標壓縮效率確定的常數。如果K<(220-f×220)/A(QP),那么,把量化值設置成1。否則,把它設置成另一個預定值。
濾波信息生成單元73利用對像素值逐塊進行DCT和量化獲得的值,建立濾波信息。以后將描述濾波信息生成單元73的操作的詳細內容。濾波特性判定單元74根據濾波信息確定和輸出濾波特性。消塊濾波器75和消鈴濾波器76根據確定的濾波特性,對視頻數據進行濾波。
圖3和4是顯示根據本發明第一實施例,利用圖1所示的濾波信息生成單元3建立濾波信息的方法的圖形。參照圖3,對在第一實施例中作為基本單元的4×4像素塊進行DCT和量化,以獲得4×4量化DCT塊(下文稱之為‘DCT塊’)。在DCT塊中,a表示DC分量,b表示指示邊界區域存在于DCT塊的垂直方向中的、在DCT塊的最上行上的、除了DC分量之外的像素,c表示指示邊界區域存在于DCT塊的水平方向中的、在DCT塊的最左列上的、除了DC分量之外的像素,和d表示指示振鈴噪聲存在于DCT塊的對角方向中的、在DCT塊的最左和最上行上的、除了值a到c之外的像素。
總而言之,如圖4所示,根據本發明的優選實施例,利用像素值A到C建立濾波信息。如下所示,通過檢查像素A、B和C的值,確定成塊假象的存在或程度,和根據檢查結果建立濾波信息(1)在只有像素A具有除了0之外的值的情況中也就是說,如果像素B和C被設置成0,那么,要在接收方再現的像素塊的所有像素具有相同值。在這種情況下,邊界區域存在于原始像素塊的垂直和水平方向中的可能性非常小。因此,如果邊界區域存在于再現像素塊中,那么,認為它是由成塊假象引起的,因此,把水平成塊標志(HBF)和垂直成塊標志(VBF)設置成1,作為濾波信息。
(2)在只有像素A和B具有除了0之外的值的情況中在這種情況下,在接收方再現的像素塊的垂直方向中的像素在預定范圍內具有相同值。這意味著,存在著邊界區域存在于原始像素塊的水平方向中的可能性,但是,邊界區域存在于原始像素塊的垂直方向中的可能性非常小。也就是說,邊界區域只存在于再現像素塊的垂直方向中,認為它是由成塊假象引起的,因此,把VBF設置成1,作為濾波信息。
(3)在只有像素A和C具有除了0之外的值的情況中在這種情況下,在接收方再現的像素塊的水平方向中的像素在預定范圍內具有相同值。這意味著,存在著邊界區域存在于原始像素塊的垂直方向中的可能性,但是,邊界區域存在于原始像素塊的水平方向中的可能性非常小。因此,如果邊界區域存在于再現像素塊的水平方向中,那么,認為它是由成塊假象引起的,在這種情況下,把HBF設置成1,作為濾波信息。
(4)在除了像素A、B和C之外的值具有除了0之外的值的情況中如果除了像素A和B所屬的列和像素A和C所屬的行之外的行和列上的像素具有除了0之外的值,那么,把振鈴標志RF設置成1,作為濾波信息。這意味著,振鈴噪聲存在于再現像素塊中。
當把HBF和/或VBF、和RF發送到濾波特性判定單元74時,濾波特性判定單元74根據這些標志,確定濾波特性。換句話說,如果確定了HBF,那么,設置消塊濾波器75,以便沿著像素塊的水平方向更強烈地進行濾波。如果確定了VBF,那么,設置消塊濾波器75,以便沿著像素塊的垂直方向更強烈地進行濾波。如果設置了RF,那么,設置消鈴濾波器76,以便根據成塊假象和/或振鈴噪聲的程度,對視頻數據進行自適應濾波。
在第一實施例中,利用像素A、B和C的值,建立濾波信息,以便消除成塊假象。可選地,根據應用的技術要求,譬如,精確性和迅速性,可以在跳過檢查最上行和最左列上的像素的值的至少一個的同時,建立濾波信息。
圖5是顯示根據本發明第一實施例的一種變型生成的濾波信息的圖形。這里,使用了圖2所示的環路濾波器7。但是,第一實施例的變型與第一實施例的不同之處在于,對圖像幀進行離散子波變換(DWT),而不是DCT。
參照圖5,對4×4像素塊進行DWT和量化,以獲得4個2×2量化DWT塊e到h。塊e是讓圖4的4×4 DCT塊通過低通濾波器獲得的,并且對應于4×4量化DCT塊的DC分量,即,像素A。塊f對應于4×4量化DCT塊的像素B,即,它指示邊界區域是否存在于原始像素塊的水平方向中。塊g對應于4×4量化DCT塊的像素C,即,它指示邊界區域是否存在于原始像素塊的垂直方向中。塊h對應于4×4量化DCT塊的、不在像素A和B、和像素A和C所屬的塊的最上行和最左列上的其它像素。塊h指示振鈴噪聲是否存在于原始像素塊中。
在第一實施例中,利用像素A、B和C的值建立濾波信息。同樣,在第一實施例的變型中,利用塊e、f、g和h也建立指示存在成塊假象和/或振鈴噪聲的濾波信息。
現在描述根據本發明第一實施例的濾波方法。
圖6是顯示根據本發明第一實施例的濾波方法的流程圖。參照圖6,編碼在步驟601中對輸入視頻數據逐塊進行DCT,以獲得DCT系數。接著,在步驟102中,根據預定量化步長量化DCT系數,以獲得量化DCT系數。在步驟602之后,編碼器在步驟603中檢查量化DCT塊的像素值的分布,和在步驟604中,根據檢查結果建立濾波信息。借助于濾波信息,可以檢測成塊假象和/或振鈴噪聲的程度。在步驟604之后,編碼器在步驟605中,根據建立的濾波信息確定濾波特性和對輸入視頻數據進行自適應濾波。
圖7是顯示根據本發明第一實施例的另一種濾波方法的流程圖。參照圖2和7,在步驟701中,濾波信息生成單元73檢查量化DCT塊的像素值的分布,以便把水平成塊標志HBF、垂直成塊標志VBF、和振鈴標志RF設置成1或0。如果在步驟702中把HBF設置成1,那么,濾波特性判定單元74在步驟703中,確定濾波特性,以便使消塊濾波器75在DCT塊的垂直方向更強烈地進行濾波。如果在步驟704中把VBF設置成1,那么,濾波特性判定單元74在步驟705中,確定和輸出濾波特性,以便使消塊濾波器75在DCT塊的水平方向更強烈地進行濾波。如果在步驟706中把HBF和VBF設置成1,那么,濾波特性判定單元74在步驟707中,確定濾波特性,以便使消塊濾波器75在DCT塊的垂直和水平方向更強烈地進行濾波。如果在步驟708中把RF設置成1,那么,濾波特性判定單元74在步驟709中,確定濾波特性,以便使消鈴濾波器76對DCT塊更強烈地進行濾波。此后,在步驟710中,消塊濾波器75和消鈴濾波器76根據設置的濾波特性,對輸入視頻數據進行自適應濾波。
消塊濾波是逐塊進行的,但是,視頻數據事實上是與與當前塊相鄰的塊的邊界區域上的像素值,以及當前塊一起輸入編碼器中的。輸入像素值由消塊濾波器75來濾波,并且作為改變值來輸出。例如,當當前塊的像素值1到4和相鄰塊的像素值5到8被消塊濾波器75更強烈地濾波時,相鄰值3到6發生改變,否則,只有值4和5發生改變。因此,將相鄰塊的標志與當前塊的標志進行比較,以調整消塊濾波器75的特性值。也就是說,如果相鄰塊的標志與當前塊的標志相同,那么,將消塊濾波器75的濾波特性值設置成強值,否則,將其設置成弱值。
可選地,濾波信息生成單元73可以將相鄰塊的標志VBF、HBF和RF與當前塊的標志VBF、HBF和RF相比較,并且根據比較結果,建立濾波信息。其結果是,建立的濾波信息可以比利用當前塊的標志建立的濾波信息更精確地得到表達,因此,可以更精確地確定濾波特性值。
圖8是根據本發明第二實施例的環路濾波器2的方塊圖。參照圖8,環路濾波器7包括環路變換單元81、環路量化單元82、濾波信息生成單元83、濾波特性判定單元74、消塊單元75、和消鈴單元76。
存在兩種輸入環路濾波器7的數據(i)要濾波的對象數據①;和(ii)要用于生成濾波信息的濾波信息提取數據②和③。對象數據①指的是圖像幀以塊為單位的像素值。內部幀的對象數據①通過第三開關30發送到環路濾波器7,和中間幀的對象數據①從運動補償器6輸入到環路濾波器7。與第一實施例中一樣,濾波信息提取數據②和③指的是對某個塊的像素值進行DCT和量化獲得的值。內部幀的濾波信息提取數據②指的是對某個塊的像素值進行DCT和量化獲得的值,并且通過第二開關20直接發送到環路濾波器7,以便無需另外計算處理,就可以建立濾波信息。但是,中間幀的濾波信息提取數據③是從運動補償器6輸入到環路濾波器7的,因此,在環路濾波器7內必須對它進行變換和量化。由于這個原因,把通過第二開關20輸入的值,即,內部幀的濾波信息提取數據②輸入濾波信息生成單元73,和把從運動補償器6輸入的值,即,中間幀的濾波信息提取數據③,輸入環路變換單元71。
環路變換單元81對分別在輸入內部幀的預定長度塊的最上行和最左列上的第一和第二像素進行DCT或DWT。在這種情況中,對最左列的第一和第二像素從上到下進行DCT或DWT,和對最左上行的第一和第二像素從左到右進行DCT或DWT。環路量化單元82量化環路變換單元81變換的DCT系數。環路變換單元81和環路量化單元82的DCT和量化與與參照圖1所述的變換器2和量化器3的DCT和量化相同。但是,環路變換單元81和環路量化單元82的變換和量化不需要與變換器2和量化器3一樣精確。這是因為,由環路變換單元81和環路量化單元82生成的值只用于檢測邊界區域的存在與否,因此可以具有比變換器2和量化器3為了編碼視頻數據而獲得的那些值低的精度。于是,環路變換單元81和環路量化單元82可以利用整數運算來代替浮點運算,增大量化步長,或進行快速DCT,降低DCT和量化的精度,從而降低計算量。例如,由環路量化單元82進行的簡化量化算法如下LEVEL=(K×A(QP)+f×220)/220其中,LEVEL表示量化值,K表示對其進行DCT的量化像素值,A(QP)表示來自映射表的常數,和f是根據目標壓縮效率確定的常數。如果K<(220-f×220/A(QP),那么,把量化值設置成1。否則,把它設置成另一個預定值。
濾波信息生成單元83檢查對其進行DCT(或DWT)的、在最上行和最左列的第一和第二像素是否具有除了0之外的值。如果在最上行或最左列上的經DCT(或DWT)或量化的第二像素值是0,那么,濾波信息生成單元83指令環路變換單元81和環路量化單元82對下一個像素進行DCT(或DWT)和量化下一個像素。濾波信息生成單元83接收下一個像素的值,檢查該值是否是0,并且重復上述操作。
如果對最上行或最左列上的第二像素值進行DCT(或DWT)或量化獲得的值是除了0之外的值,那么,濾波信息生成單元83根據該結果,建立濾波信息。建立濾波信息的方法像在第一實施例中描述的那樣。接著,濾波信息生成單元83指令環路變換單元81和環路量化單元82停止分別對像素值進行DCT(或DWT)和量化。換句話說,如果該值不是0,那么,終止最上行或最左列上的像素值的DCT(或DWT)和量化(以后再描述其詳細內容)。濾波特性判定單元74根據濾波信息,確定和輸出濾波特性。消塊濾波器75和消鈴濾波器76根據確定的濾波特性進行濾波。濾波特性判定單元74、消塊濾波器75、和消鈴濾波器76的操作與根據第一實施例的濾波特性判定單元74、消塊濾波器75、和消鈴濾波器76的那些操作相同。因此,這里略去不述。
圖9是顯示根據本發明第二實施例,利用圖8所示的濾波信息生成單元8 3獲取濾波信息提取數據和從濾波信息提取數據中建立濾波信息的方法的圖形。在圖9的濾波方法中,對在在本發明中作為濾波基本單元的的4×4像素塊的最左列上與DC分量相鄰的、在(a)中用斜虛線表示的第一像素C進行DCT和量化。接著,檢查通過DCT和量化獲得的值。如果該值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。如果該值是0,那么,對在(b)中用斜虛線表示的第二像素C進行DCT和量化,以獲得另一個值。如果該另一個值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。如果該另一個值是0,那么,對在(c)中用斜虛線表示的第三像素C進行DCT和量化,然后,也檢查通過DCT和量化獲得的再一個值。類似地,如果該再一個值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。如果該另一個值是0,和在最左列上再也沒有像素了,那么,根據已經獲得的結果建立濾波信息。濾波信息按照在根據本發明第一實施例的方法中所述的那樣獲取。
同時,對在(d)中用斜虛線表示的、在4×4像素塊的最上行上與DC分量相鄰的第一像素B進行DCT和量化。接著,檢查通過DCT和量化獲得的值。如果該值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。如果該值是0,那么,對在(e)中用斜虛線表示的第二像素B進行DCT和量化,然后,檢查通過DCT和量化獲得的另一個值。如果該另一個值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。如果該另一個值是0,那么,對在(f)中用斜虛線表示的第三像素B進行DCT和量化,并且檢查再一個值。如果該再一個值不是0,那么,終止DCT和量化,并且根據檢查結果建立濾波信息。但是,如果該另一個值是0,和在最上行是再也沒有像素了,那么,根據已經獲得的結果建立濾波信息。濾波信息按照在根據本發明第一實施例的方法中所述的那樣建立。
類似地,逐塊對4×4像素塊除了A、B和C之外的像素進行DCT和量化。接著,對通過DCT和量化獲得的值進行檢查,以檢測振鈴噪聲是否存在。此后,根據確定振鈴噪聲存在的準則建立濾波信息。建立濾波信息的方法與根據本發明第一實施例的方法相同。
圖10是顯示根據本發明第二實施例的濾波方法的流程圖。參照圖10,在步驟1001中,對在4×4像素塊的最左列上的、與DC分量相鄰的第1像素進行DCT和量化,以便計算量化DCT系數。在步驟1001之后,在步驟1002中檢查計算的量化DCT系數。如果量化DCT系數是0,那么,在步驟1003中,對下一個像素進行DCT量化,并且轉到步驟1002。
但是,如果量化DCT系數是除了0之外的值,或者相關像素是最左列上的最后一個像素,那么,在步驟1004中,終止DCT和量化,和根據已經獲得的結果,建立濾波信息。也就是說,當最左列上的任何一個像素具有除了0之外的量化DCT系數時,把水平成塊標志(HBF)設置成1,作為濾波信息。
在步驟1004之后,在步驟1005中,對最上行上的、與DC分量相鄰的第1像素進行DCT,并且量化獲得的DCT系數,以便計算量化DCT系數。接著,在步驟1006中檢查計算的量化DCT系數。如果量化DCT系數是0,那么,在步驟1007中,對下一個像素進行DCT量化,并且轉到步驟1006。
當量化DCT系數是除了0之外的值,或者相關像素是最上行上的最后一個像素時,在步驟1008中,終止DCT和量化,和根據已經獲得的結果,建立濾波信息。也就是說,如果最上行上的任何一個像素具有除了0之外的量化DCT系數,那么,把垂直成塊標志(VBF)設置成1,作為濾波信息。
在步驟1008之后,在步驟1009中,對不在最上行和最左列上的、與DC分量相鄰的像素進行DCT和量化。接著,在步驟1010中,檢查獲得的量化DCT系數。如果量化DCT系數是0,那么,在步驟1011中,對下一個像素進行DCT量化,并且轉到步驟1010。
當量化DCT系數是除了0之外的值,或者相關像素是不在最上行和最左列上的最后一個像素時,在步驟1012中,終止DCT和量化,和根據已經獲得的結果,建立濾波信息。也就是說,如果不在最上行和最左列上的任何一個像素具有除了0之外的量化DCT系數,那么,把振鈴標志(RF)設置成1,作為濾波信息。
在步驟1012之后,在步驟1013中,根據濾波信息確定濾波特性,和進行自適應濾波。得出濾波特性的方法如參照圖7所述的那樣。也就是說,當把HBF設置成1時,圖2或8的濾波特性判定單元74確定濾波特性,以便使圖2或8的消塊濾波器75在像素塊的垂直方向更強烈地進行濾波。當把VBF設置成1時,確定濾波特性,以便使消塊濾波器75在4×4像素塊的水平方向更強烈地進行濾波。在把HBF和VBF兩者都設置成1的情況中,濾波特性判定單元74確定和輸出濾波特性,以便使消塊濾波器75在4×4像素塊的垂直和水平方向更強烈地進行濾波。如果把RF設置成1,那么,確定濾波特性,以便使圖2或8的消鈴濾波器76對4×4像素塊更強烈地進行濾波。然后,消塊濾波器75和消鈴濾波器76根據設置的濾波特性,自適應濾波。
消塊濾波是逐塊進行的,但是,視頻數據事實上是與與當前塊相鄰的塊的邊界區域上的像素值,以及當前塊一起輸入編碼器中的。輸入像素值由消塊濾波器75來濾波,并且作為改變值來輸出。例如,當當前塊的像素值1到4和相鄰塊的像素值5到8被消塊濾波器75更強烈地濾波時,相鄰值3到6發生改變,但是,如果這些像素值被消塊濾波器75微弱地濾波,那么,只有值4和5發生改變。因此,將相鄰塊的標志與當前塊的標志進行比較,以調整消塊濾波器75的特性值。也就是說,當相鄰塊的標志與當前塊的標志相同,將消塊濾波器75的濾波特性值設置成強值,否則,將其設置成弱值,從而獲得相對精確的濾波特性值。
可選地,濾波信息生成單元73可以將相鄰塊的標志VBF、HBF和RF與當前塊的標志VBF、HBF和RF相比較,并且根據比較結果,建立濾波信息。其結果是,建立的濾波信息可以比由當前塊的標志構成的濾波信息更精確地得到表達,在這種情況下,可以更精確地確定濾波特性值。
在根據第二實施例的圖10的濾波方法中,首先對像素塊的最左列上的、除了DC分量之外的數個像素進行DCT和量化;然后對最上行上的、除了DC分量之外的數個像素進行DCT和量化;最后對不在像素塊的最上行和最左列上的、與DC分量相鄰的像素進行DCT和量化。但是,可選地,也可以對上面數個像素之一進行DCT和量化。
與根據第一實施例的方法相比,在根據第二實施例的方法中,以像素為單位進行DCT和量化,從而減少了計算量。此外,與根據第一實施例的方法一樣,在根據第二實施例的方法中,可以進行DWT,而不是DCT。
同時,在第一和第二實施例中,編碼器的環路濾波器用在執行濾波方法中。但是,濾波方法也可以以解碼器中的后濾波器的方式來實現。
代表根據本發明的濾波方法的源代碼的例子如下
根據上面源代碼,可以檢查邊界區域是否存在于一個塊中,和通過比較相鄰塊之間的濾波信息,可以更精確地檢測一個塊中邊界區域的存在。
雖然通過參照本發明的某些優選實施例,已經對本發明進行了具體圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作各種各樣的改變,而不偏離所附權利要求書所限定的本發明的精神和范圍。
如上所述,在根據本發明的濾波方法和設備中,通過更有效地檢測邊界區域,可以消除成塊假象和/或振鈴噪聲。
權利要求
1.一種消除成塊假象的方法,該方法包括(a)逐塊變換視頻數據;和(b)通過檢查變換獲得的值的分布,檢測視頻數據中邊界區域的存在。
2.一種消除成塊假象的方法,該方法包括(a)逐塊變換和量化視頻數據;(b)根據變換和量化獲得的值的分布,建立濾波信息;和(c)根據濾波信息,濾波視頻數據。
3.根據權利要求2所述的方法,其中,(a)包括(a1)對視頻數據逐塊進行DCT,以獲得DCT系數;和(a2)量化DCT系數。
4.根據權利要求2所述的方法,其中,(a)包括對4×4像素塊進行DCT和量化,以獲得4×4量化DCT塊。
5.根據權利要求3所述的方法,其中,(b)包括根據量化DCT系數,建立表示存在成塊假象和/或振鈴噪聲的程度的濾波信息。
6.根據權利要求5所述的方法,其中,(b)包括(b1)通過檢查在量化DCT塊的最上行上,除了DC分量之外的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的垂直方向中。
7.根據權利要求5所述的方法,其中,(b)包括(b2)通過檢查在量化DCT塊的最左列上,除了DC分量之外的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的水平方向中。
8.根據權利要求5所述的方法,其中,(b)包括(b3)通過檢查不是在量化DCT塊的最上行和最左列上的像素的值,建立濾波信息,此處,濾波信息表示邊界區域是否存在于原始像素塊的對角線方向中。
9.根據權利要求5所述的方法,其中,其中(b)通過檢查DC分量A、在最上行上與DC分量相鄰的像素B、和在量化DCT塊的最左列上與DC分量相鄰的像素C的值,建立濾波信息。
10.根據權利要求9所述的方法,其中,(b)包括當只有像素A具有除了0之外的值時,把垂直成塊標志(VBF)和水平成塊標志(HBF)設置成1,作為濾波信息。
11.根據權利要求10所述的方法,其中,(c)包括如果HBF和VBF被設置成1,那么,沿著像素塊的垂直和水平方向更強烈地進行消塊濾波。
12.根據權利要求9所述的方法,其中,(b)包括當只有像素A和B具有除了0之外的值時,把VBF設置成1,作為濾波信息。
13.根據權利要求12所述的方法,其中,(c)包括當VBF被設置成1時,沿著像素塊的垂直方向更強烈地進行消塊濾波。
14.根據權利要求9所述的方法,其中,(b)包括當只有像素A和C具有除了0之外的值時,把HBF設置成1,作為濾波信息。
15.根據權利要求14所述的方法,其中,(c)包括當HBF被設置成1時,沿著像素塊的水平方向更強烈地進行消塊濾波。
16.根據權利要求9所述的方法,其中,當像素A、B和C具有除了0之外的值時,把振鈴標志(RF)設置成1。
17.根據權利要求16所述的方法,其中,(c)包括當RF被設置成1時,更強烈地進行消鈴濾波。
18.一種消除成塊假象的濾波方法,該方法包括(a)以像素為單位變換和量化由視頻數據組成的塊,以便獲得量化值,檢查獲得的量化值,和當檢查結果表示需要濾波信息時,建立濾波信息;和(b)根據建立的濾波信息進行濾波。
19.根據權利要求18所述的方法,其中,(a)包括(a1)對在塊的最上行和最左列上,除了與DC分量相對應的像素之外的像素之一進行DCT和量化,以獲得量化DCT系數;和(a2)檢查量化DCT系數,當量化DCT系數是除了0之外的值時,根據檢查結果建立濾波信息,和終止對最上行和最左列上的像素進行DCT和量化。
20.根據權利要求19所述的方法,其中,(a)包括(a3)檢查量化DCT系數,和當量化DCT系數是0時,對在最上行和最左列上,除了與DC分量相對應的像素之外的像素之一進行DCT和量化;(a4)對除了與DC分量相對應的像素和在最上行和最左列上的像素之外的其余像素重復執行(a2)和(a3),以獲得量化DCT系數;和(a5)當在最上行和最左列上的所有像素的量化DCT系數都是0時,建立濾波信息。
21.一種編碼視頻數據的編碼器,該編碼器包括環路濾波器,其中,環路濾波器包括濾波信息生成單元,用于根據通過變換和量化像素塊獲得的值的分布,建立濾波信息;濾波特性判定單元,用于根據建立的濾波信息,確定濾波特性;和消塊濾波器,用于根據確定的濾波特性,進行消塊濾波。
22.根據權利要求21所述的編碼器,其中,環路濾波器還包括環路變換單元,用于逐塊變換中間幀的像素值;和環路量化單元,用于量化由環路變換單元變換的值。
全文摘要
本發明提供了消除成塊假象和振鈴噪聲的方法和設備。濾波方法包括逐塊變換視頻數據;和通過檢查變換獲得的值的分布,檢測視頻數據中邊界區域的存在。因此,通過更有效地檢測視頻數據中的邊界區域,可以完全消除成塊假象和/或振鈴噪聲。
文檔編號H04N5/21GK1436006SQ03103440
公開日2003年8月13日 申請日期2003年1月30日 優先權日2002年1月31日
發明者樸正輝, 金容帝, 李英烈 申請人:三星電子株式會社