專利名稱:誤差掩蔽的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種掩蔽在以宏塊壓縮形式傳輸?shù)膱D象信號中的誤差的方法,每個宏塊包含成行、成列的象素,該方法至少包含步驟a)解碼傳輸?shù)膱D象信號;b)檢測誤差宏塊;c)分類誤差宏塊,以便獲得誤差宏塊所屬的類別;d)根據(jù)其類別,糾正誤差宏塊。
本發(fā)明還涉及一種相應的設(shè)備,用于執(zhí)行這種掩蔽方法。
本發(fā)明具體地涉及糾正MPEG壓縮的視頻信號。
背景技術(shù):
視頻信號壓縮的目的之一是通過如無線電信道或互聯(lián)網(wǎng)的網(wǎng)絡進行傳輸。傳輸誤差會損害解碼流的視覺效果,因此需要一些有效的誤差掩蔽技術(shù)。誤差掩蔽可包含利用在解碼流發(fā)現(xiàn)的空間冗余來插入缺漏的數(shù)據(jù),就是說,利用周圍的象素來插入宏塊??梢哉业揭恍┚哂胁煌瑢傩缘目臻g掩蔽算法。當在解碼器中可使用不同的掩蔽算法時,最好包含一種能保留邊緣信息的算法和另一種專用于重建平滑變換的算法。歐洲專利EP 0782347描述了一種方法來將誤差宏塊分類為單調(diào)類、邊緣類和紋理類,并根據(jù)這種分類來矯正誤差宏塊。分類考慮到有效周圍宏塊的預定數(shù)目,在這些宏塊中不包含誤差。它包括-將每個有效的周圍宏塊分類為單調(diào)類、邊緣類和紋理類,單調(diào)類代表其中不包含邊緣的宏塊,邊緣類代表其中包含一個邊緣的宏塊,紋理類代表其中包含多于一個邊緣的宏塊;-如果只有一對相對于誤差宏塊相對放置的有效周圍宏塊是邊緣類,并具有相同的邊緣方向,則將該誤差宏塊定為邊緣類;或者,根據(jù)具有單調(diào)類或紋理類的周圍宏塊的數(shù)目,來將其定為單調(diào)類或紋理類。
分類每個周圍宏塊的建議方法包括若干步驟,包括方差計算和較大數(shù)目的方向預測。因此,本方法耗資巨大并且不能實時應用于如移動電話的具有少量資源等的處理機上。
而且,根據(jù)有效的周圍宏塊來分類誤差宏塊的方法假設(shè)誤差宏塊具有預定數(shù)目的周圍宏塊,這不一定是正確的,因為一方面,突發(fā)性誤差可能會跨越宏塊的若干行;另一方面,誤差宏塊可能處于圖象的邊沿。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種成本合算的掩蔽誤差的方法與設(shè)備。
為此,如第一段所述,根據(jù)本發(fā)明的一種掩蔽誤差的方法的特征在于1)所述誤差宏塊具有至少一個其中不包含誤差的有效周圍宏塊。
2)所述分類步驟包含至少以下子步驟-通過使所述行或列的兩個連續(xù)象素的值相減,為每個有效的周圍宏塊和與誤差宏塊相鄰的一行或列的每個象素計算梯度;-估算梯度方向變換的次數(shù)C方向;3)如果至少一個梯度的絕對值高于第一預定閾值,就將誤差宏塊定為邊緣類;如果C方向嚴格是正數(shù),且高于第二預定閾值的梯度絕對值的數(shù)目大于α乘C方向,則定為紋理類,其中α是可編程量;或者定為噪聲或單調(diào)類。
根據(jù)本發(fā)明,以一種成本合算的方式確定誤差宏塊的類別。事實上,在這種確定中只考慮與誤差宏塊直接相鄰的象素。就是說,如果我們考慮使用了16*16象素的宏塊的MPEG-4標準,當誤差宏塊周圍有4個宏塊有效時,也就是說這些宏塊中不包含誤差時,只需計算60個梯度,并將其與2個閾值相比較來確定誤差宏塊的類別。并且,不管有效周圍宏塊的數(shù)目有多少,只要這個誤差宏塊有至少一個有效周圍宏塊,該分類步驟就可以應用于任何誤差宏塊。因此,只要在圖象中有一個有效宏塊,就可以通過循環(huán)使用這種掩蔽方法來掩蔽其他的宏塊。
在一種優(yōu)選的實施方案中,糾正步驟使用一種以預定選擇順序從一套算法中選出的算法,所述的套和/或選擇順序根據(jù)誤差宏塊的類別而變化。根據(jù)這種優(yōu)選實施方案,可選出最佳的可得的算法來糾正給定類別的宏塊。如果由于任何原因,這種算法不能掩蔽誤差的宏塊,則嘗試另一種算法,依此類推。
在另一種優(yōu)選的實施方案中,如果誤差宏塊屬于邊緣類或紋理類,選擇順序的第一算法是算法M邊緣,它能夠保留邊緣信息;如果誤差宏塊屬于噪聲類或單調(diào)類,選擇順序的第一算法是算法M平滑,它專用于重建平滑變換。
在一種實施方案中,M邊緣是四重線性內(nèi)插(quadrilinearinterpolation)。
在另一種實施方案中,M平滑是最大化平滑內(nèi)插。
本發(fā)明還涉及一種包含一套指令的計算機程序,這套指令被載入處理機或計算機時,會使處理機或計算機執(zhí)行上述的掩蔽方法。
下面結(jié)合具體實施方案的描述將使本發(fā)明的這些和其它的方面更清楚。
現(xiàn)在結(jié)合例子和附圖來具體描述本發(fā)明,其中圖1顯示了根據(jù)本發(fā)明的一種方法的框圖;圖2a解釋了梯度的計算;圖2b解釋了基于計算所得的梯度的分類;圖3a解釋了應用于邊緣類的宏塊的根據(jù)本發(fā)明的方法;圖3b解釋了應用于紋理類的宏塊的根據(jù)本發(fā)明的方法;圖4a解釋了應用于噪聲類的宏塊的根據(jù)本發(fā)明的方法;圖4b解釋了應用于單調(diào)類的宏塊的根據(jù)本發(fā)明的方法;圖5是指示對應于每個類別的一套算法和選擇順序的表格。
具體實施方案圖1中描述了根據(jù)本發(fā)明的掩蔽方法。這種方法至少包含應用于傳輸?shù)膱D象信號101上的解碼步驟102,檢測步驟103,梯度計算步驟104,第一比較步驟105,第二比較步驟106,估算步驟107,分類步驟108和糾正步驟109。
接下來,傳輸?shù)膱D象信號101是使用16*16宏塊編碼的MPEG-4視頻信號,每個宏塊包含具有色度或亮度值或二者都有的象素(下面,“值”表示或者色度,或者亮度)。對本領(lǐng)域的技術(shù)人員來說顯而易見根據(jù)本發(fā)明的掩蔽方法要與利用基于塊的處理進行編碼的任何信號一起使用。
在檢測步驟103中,分析該宏塊以確定其是否誤差。這種確定對本領(lǐng)域技術(shù)人員來說是公知的,并可以被找到,例如在1993年2月12日提交的標題為“用于在數(shù)字視頻處理系統(tǒng)中掩蔽誤差的儀器”的US專利5,455,629中可以找到。如果此宏塊是誤差的,則在梯度計算步驟104中計算所有有效周圍宏塊的相鄰行、列的2個連續(xù)象素之間的梯度。圖2中詳細描述了這種計算。在第一比較步驟105中,計算的梯度的絕對值與第一閾值進行比較,且確定絕對值高于第一閾值的梯度的數(shù)目N1。在第二比較步驟106中,計算的梯度的絕對值與第二閾值進行比較,且確定絕對值高于第二閾值的梯度的數(shù)字N2。在估算步驟107中確定梯度的方向變化的次數(shù)C方向。在分類步驟108中,根據(jù)N1、N2和C方向的值來確定誤差宏塊的類別。在糾正步驟109中,根據(jù)其類別來糾正誤差宏塊。
圖2a解釋了梯度的計算。此圖顯示了具有4個有效周圍宏塊的8*8誤差宏塊。誤差宏塊的象素由虛線代表。只考慮頂部、底部周圍宏塊的2個相鄰行和左側(cè)、右側(cè)周圍宏塊的2列用于計算梯度。下面的表格指明了如何計算梯度,和如何確定梯度的方向變化。在此例中,考慮4個象素201到204;對2個相鄰行和列的所有象素的計算與此相同,特別是對象素205到207。
-Grad×××代表象素×××的梯度-Val×××代表象素×××的值如果象素位置由行數(shù)i和列數(shù)j代表-對于位置(i,j)上的相鄰行的象素,Grad(i,j)=Val(i,j+1)-Val(i,j)-對于位置(i,j)上的相鄰列的象素,Grad(i,j)=Val(i+1,j)-Val(i,j)
圖2b解釋了基于計算得到的梯度的分類。在步驟208中,分類步驟108確定了N1嚴格為正數(shù)或不是。由于第一閾值較高,N1嚴格為正數(shù)這一事實就指明在有效周圍宏塊中至少有一個強大的邊緣。因此,如果N1嚴格為正數(shù),就在步驟209中將誤差宏塊定為邊緣類。如果N1等于0,分類步驟108就確定N2是高于還是等于α*C方向的量,其中α是可編程量。由于第二閾值較高但小于第一閾值,第二閾值之上的梯度指示明顯的邊緣。對于給定象素,當出現(xiàn)梯度的方向變化而沒有任何強大的或明顯的邊緣時,這通常會指示噪聲。因此,如果C方向嚴格為正數(shù),且N2高于或等于α*C方向的量,則在步驟211中將誤差宏塊定為紋理類,這意味著該宏塊是結(jié)構(gòu)化的紋理,具有可以看出的明顯的邊緣。如果C方向等于0或N2小于α*C方向的量,這意味著誤差宏塊周圍的梯度是單調(diào)的,或在誤差宏塊中的噪聲遠遠多于明顯邊緣,且在步驟212中將該誤差宏塊定為單調(diào)或噪聲類。
在圖3a到4b中利用有效周圍宏塊的2個相鄰行和列描述了這些誤差宏塊。在0到255之間的值指示了周圍象素的亮度值。在這些例子中,第一閾值等于40,第二閾值等于10,且可編程量α等于1.2。本領(lǐng)域的技術(shù)人員能清楚看出,可以通過簡單地修改這些值來獲得最佳可能的結(jié)果。
圖3a解釋了應用于邊緣類的宏塊的根據(jù)本發(fā)明的方法。梯度的計算指明有2個梯度的絕對值高于對應強大邊緣的第一閾值。因此,這個誤差宏塊被定為邊緣類。
圖3b解釋了應用于紋理類的宏塊的根據(jù)本發(fā)明的方法。梯度的計算指明-N1=0N2=28C方向=21因此,明顯邊緣的數(shù)目N2大于方向改變次數(shù)C方向的可編程量α,且該誤差宏塊被定為紋理類。
圖4a解釋了應用于噪聲類的宏塊的根據(jù)本發(fā)明的方法。梯度的計算指明-N1=0N2=1C方向=25因此,明顯邊緣的數(shù)目N2小于方向改變次數(shù)C方向的可編程量α,且該誤差宏塊被定為噪聲類。
圖4b解釋了應用于單調(diào)類的宏塊的根據(jù)本發(fā)明的方法。梯度的計算指明-N1=0N2=0C方向=0因此該誤差宏塊被定為單調(diào)類。
圖5是表示為每個類別的一套算法和選擇順序的表。在給定系統(tǒng)中,給定的算法可能不能用于掩蔽誤差宏塊,例如因為-誤差宏塊不具有足夠的有效周圍宏塊;-在系統(tǒng)中不具有足夠的存儲器資源來使用給定算法;-時間限制使其不可能使用給定算法。
因此,對于誤差宏塊的每個類別,系統(tǒng)中都可以以一種選擇順序得到一套算法。該系統(tǒng)首先嘗試通過選擇順序的第一算法來掩蔽給定的誤差宏塊。如果對于此誤差宏塊不能使用這種算法,該系統(tǒng)則嘗試通過選擇順序的第二算法來掩蔽給定的誤差宏塊,依此類推。盡管第二算法的掩蔽質(zhì)量不如第一算法好,但像這樣使用一套算法有這樣一個優(yōu)點幾乎始終可以對誤差宏塊進行掩蔽。
對于邊緣或紋理類的誤差宏塊,選擇順序的第一算法是四重線性內(nèi)插。這種算法包含利用誤差象素周圍的頂部、底部、左側(cè)、右側(cè)的最近有效象素來插入修改此誤差象素的值。四重線性內(nèi)插的一個例子在Proc.Globelcom’95第1778-1783頁中由Susanna Aign和KhaledFazel所著的文件“用于分級MPEG-2視頻編/解碼器的時間、空間的誤差掩蔽技術(shù)”中有描述。這種算法被公知為擅長在誤差宏塊中保留邊緣信息。選擇順序的第二算法是最大化平滑內(nèi)插。最大化平滑內(nèi)插的一個例子在‘IEEE通信會報的1993年10月第41卷No.10’中由Yao Wang、QuinFan Zhu和Leonard Shaw所著的文件“在變換編碼中的最大化平滑圖象恢復”中有描述。這種算法被公知為擅長重建平滑變化。選擇順序的第三算法是簡單內(nèi)插,包含例如使用有效周圍宏塊的平均值來替換誤差宏塊。盡管不能得到最佳可能的掩蔽質(zhì)量,但這種簡單內(nèi)插能掩蔽大多數(shù)誤差宏塊。
對于噪聲或單調(diào)類的誤差宏塊,選擇順序的第一算法是最大化平滑內(nèi)插,第二算法是四重線性內(nèi)插,第三算法是簡單內(nèi)插。
上面的附圖和對其的描述只是解釋了本發(fā)明,而不對其進行限制。在這方面,作出下面的結(jié)尾評述。
當對誤差宏塊進行分類后,有不同的方式來掩蔽該誤差宏塊。圖5為每個類別提供了一套算法,可用于掩蔽本類別的誤差宏塊。對本領(lǐng)域技術(shù)人員很清楚,可以不偏離本發(fā)明范圍地使用其他算法。
可以在集成于置頂盒或電視接收機的集成電路中實施根據(jù)本發(fā)明的掩蔽方法。載入程序存儲器的一套指令使該集成電路執(zhí)行該掩蔽方法。這套指令可被存儲在如唱片的數(shù)據(jù)載體上。可以從數(shù)據(jù)載體上讀取這套指令,以便將其載入隨后執(zhí)行其任務的集成電路的程序存儲器中。
權(quán)利要求
1.一種掩蔽在以宏塊壓縮形式傳輸?shù)膱D象信號中的誤差的方法,每個宏塊包含成行、成列的象素,該方法至少包含步驟a)解碼傳輸?shù)膱D象信號;b)檢測誤差宏塊;c)分類誤差宏塊,以便獲得誤差宏塊所屬的類別;d)根據(jù)其類別,糾正誤差宏塊;所述的方法的特征還在于1)所述誤差宏塊具有至少一個其中不包含誤差的有效周圍宏塊;2)所述分類步驟包含至少以下子步驟-通過使所述行或列的兩個連續(xù)象素的值相減,為每個有效的周圍宏塊和與誤差宏塊相鄰的一行或列的每個象素計算梯度;-估算梯度方向變換的次數(shù)C方向;3)如果至少一個梯度的絕對值高于第一預定閾值,就將誤差宏塊定為邊緣類;如果C方向嚴格為正數(shù),且高于第二預定閾值的梯度絕對值的數(shù)目大于α乘C方向,則定為紋理類,其中α是可編程量;或者定為噪聲類或單調(diào)類。
2.如權(quán)利要求1的掩蔽方法,其中所述糾正步驟使用一種從具有預定選擇順序的一套算法中選出的算法,所述的套和/或選擇順序根據(jù)誤差宏塊的類別而改變。
3.如權(quán)利要求2的掩蔽方法,其中如果誤差宏塊屬于邊緣類或紋理類,選擇順序的第一算法是算法M邊緣,它能夠保留邊緣信息;如果誤差宏塊屬于噪聲類或單調(diào)類,選擇順序的第一算法是算法M平滑,它專用于重建平滑變換。
4.如權(quán)利要求3的掩蔽方法,其中所述M邊緣是四重線性內(nèi)插。
5.如權(quán)利要求3的掩蔽方法,其中所述M平滑是最大化平滑內(nèi)插。
6.一種用于掩蔽在以宏塊壓縮形式傳輸?shù)膱D象信號中的誤差的設(shè)備,每個宏塊包含成行、成列的象素,該掩蔽設(shè)備至少包含a)用于解碼傳輸?shù)膱D象信號的裝置;b)用于檢測誤差宏塊的裝置;c)用于分類誤差宏塊,以便獲得誤差宏塊所屬的類別的裝置;d)用于根據(jù)其類別,糾正誤差宏塊的裝置;所述設(shè)備的特征還在于1)所述誤差宏塊具有至少一個其中不包含誤差的有效周圍宏塊;2)所述分類裝置至少包含-用于通過使所述行或列的兩個連續(xù)象素的值相減,為每個有效的周圍宏塊和與誤差宏塊相鄰的一行或列的每個象素計算梯度的裝置;-用于估算梯度方向變換的次數(shù)C方向的裝置;3)如果至少一個梯度的絕對值高于第一預定閾值,就將誤差宏塊定為邊緣類;如果C方向嚴格為正數(shù),且高于第二預定閾值的梯度絕對值的數(shù)目大于α乘C方向,則定為紋理類,其中α是可編程量;或者定為噪聲類或單調(diào)類。
7.如權(quán)利要求6的掩蔽設(shè)備,其中所述用于糾正的裝置使用一種從具有預定選擇順序的一套算法中選出的算法,所述的套和/或選擇順序根據(jù)誤差宏塊的類別而改變。
8.如權(quán)利要求7的掩蔽設(shè)備,其中如果誤差宏塊屬于邊緣類或紋理類,選擇順序的第一算法是算法M邊緣,它能夠保留邊緣信息;如果誤差宏塊屬于噪聲類或單調(diào)類,選擇順序的第一算法是算法M平滑,它專用于重建平滑變換。
9.如權(quán)利要求8的掩蔽設(shè)備,其中所述M邊緣是四重線性內(nèi)插。
10.如權(quán)利要求8的掩蔽設(shè)備,其中所述M平滑是最大化平滑內(nèi)插。
11.一種包含一套指令的計算機程序,當這套程序被載入處理機或計算機時,會使該處理機或計算機執(zhí)行如權(quán)利要求1的掩蔽方法。
全文摘要
本發(fā)明涉及一種掩蔽在以宏塊(Macroblock)壓縮形式傳輸?shù)膱D象信號101中的誤差的方法。該方法包含解碼步驟102、用于檢測誤差宏塊的步驟103、分類步驟、根據(jù)其分類來糾正誤差宏塊的糾正步驟109。本發(fā)明提供了一種成本合算的分類步驟。為此,分類步驟包含在步驟104中為每個有效的周圍宏塊和與誤差宏塊相鄰的一行或列的每個象素計算梯度(gradient),在步驟107中估算梯度的方向變化次數(shù)C
文檔編號H04N7/26GK1463555SQ02801906
公開日2003年12月24日 申請日期2002年5月28日 優(yōu)先權(quán)日2001年5月29日
發(fā)明者S·E·瓦倫特 申請人:皇家菲利浦電子有限公司