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