專利名稱:視頻錯(cuò)誤修復(fù)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像信息處理領(lǐng)域,具體而言涉及到幀中視頻解碼的時(shí)域錯(cuò)誤修復(fù)技術(shù),更具體而言涉及視頻錯(cuò)誤修復(fù)裝置。
背景技術(shù):
隨著有線寬帶網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的發(fā)展和用戶需求的驅(qū)動(dòng),多媒體技術(shù)和相關(guān)應(yīng)用得到了越來越多的關(guān)注,被認(rèn)為是未來高速網(wǎng)絡(luò)的主流應(yīng)用之一。多媒體應(yīng)用由其是視頻應(yīng)用,對(duì)于傳統(tǒng)的Intemet的傳統(tǒng)應(yīng)用如WWW,E-mail等其要求更高,對(duì)帶寬要求更大。由于視頻應(yīng)用中大多采用了高壓縮率的編碼技術(shù),其對(duì)傳輸存儲(chǔ)的誤碼要求更為苛刻,但是有線、無線網(wǎng)絡(luò)傳輸不提供傳輸?shù)腝oS(Quality of Services)保證,存儲(chǔ)不能保證不受到噪聲干擾,因此提高視頻對(duì)于視頻錯(cuò)誤的修復(fù)隱藏能力一直是多媒體的研究熱點(diǎn)。
錯(cuò)誤隱藏技術(shù)(也稱作“錯(cuò)誤修復(fù)技術(shù)”)是在完全不增加傳輸信息量前提下,在接收端對(duì)錯(cuò)誤信息進(jìn)行修復(fù)的技術(shù)。錯(cuò)誤隱藏的目的不在于完全還原錯(cuò)誤,而是利用接收端僅有的視頻信息來增加解碼后的圖像品質(zhì)。錯(cuò)誤隱藏不會(huì)降低圖像的編碼效率。如何在不增加額外信息下利用接收端僅有的信息以增加修復(fù)圖像品質(zhì),是所有錯(cuò)誤隱藏技術(shù)所要面對(duì)的問題,現(xiàn)有的隱藏技術(shù)主要包括空間域錯(cuò)誤隱藏和時(shí)間域錯(cuò)誤隱藏技術(shù)。
空間域的錯(cuò)誤隱藏技術(shù)是指在一幀圖像中存在錯(cuò)誤的圖像區(qū)域時(shí),利用該幀圖像中的信息來隱藏錯(cuò)誤(即修復(fù)錯(cuò)誤),例如,用該幀圖像中與該錯(cuò)誤圖像區(qū)域尺寸大小一致的有效相鄰圖像區(qū)域來隱藏該錯(cuò)誤區(qū)域的錯(cuò)誤。一般圖像畫面內(nèi)某一像素和其鄰近的像素間具有很高的相關(guān)性,故可以利用丟失宏塊附近的像素以內(nèi)插、外插配合距離權(quán)重等方法修復(fù)錯(cuò)誤宏塊的像素值。空間域法的基本原理是使用像素做內(nèi)插修復(fù),當(dāng)四周像素值變化過大或者有不同物體邊緣時(shí),使用空間域的修復(fù)會(huì)產(chǎn)生朦朧漸層的感覺,使得物體的邊緣模糊??臻g域的錯(cuò)誤隱藏法不適合對(duì)大范圍區(qū)域做修復(fù),因?yàn)楫?dāng)修復(fù)的范圍過大時(shí),內(nèi)部的像素離宏塊邊緣過遠(yuǎn),容易失去與邊緣像素值的相關(guān)性。
時(shí)間域錯(cuò)誤隱藏技術(shù)是指在一幀圖像中存在錯(cuò)誤圖像區(qū)域時(shí),利用該幀圖像的參考圖像中的信息來隱藏錯(cuò)誤。其原理就是利用幀間的時(shí)間冗余來做修復(fù)。時(shí)間域的錯(cuò)誤隱藏技術(shù)的核心是修復(fù)錯(cuò)誤宏塊(以下有時(shí)稱作MB)的運(yùn)動(dòng)矢量信息。對(duì)錯(cuò)誤宏塊的運(yùn)動(dòng)矢量信息進(jìn)行修復(fù)的方式可以采用從與錯(cuò)誤宏塊鄰近的四或八個(gè)宏塊取它們的運(yùn)動(dòng)向量的平均值或是中值,并用該值來取代該錯(cuò)誤宏塊的運(yùn)動(dòng)向量。當(dāng)錯(cuò)誤的宏塊不完全跟鄰近四周的宏塊有相同的運(yùn)動(dòng)方向與距離時(shí),如果單純使用四周運(yùn)動(dòng)向量的平均值或是中值有時(shí)反而改變了物體原有的運(yùn)動(dòng)方向,因此產(chǎn)生了邊界匹配法BMA(Boundary MatchingAlgorithm)和改進(jìn)的邊界匹配法MBMA(Modified Boundary MatchingAlgorithm),利用錯(cuò)誤宏塊周圍的正確信息在參考圖像中選擇最佳的替代宏塊。BMA和MBMA最大的特點(diǎn)是不需要復(fù)雜的運(yùn)算,利用選取的宏塊跟四周正確的像素經(jīng)由簡單的差異比較即可選出一個(gè)在宏塊間最佳匹配者,從而達(dá)到良好的匹配效果。BMA和MBMA只適用于單獨(dú)宏塊出錯(cuò)情況,由于在實(shí)際視頻傳輸或存儲(chǔ)過程中,受到噪聲的干擾往往是持續(xù)一段時(shí)間,所以比較常見的情況是連續(xù)一些的MB出錯(cuò)從而組成錯(cuò)誤區(qū)域。當(dāng)發(fā)生錯(cuò)誤區(qū)域時(shí),因?yàn)楸恍迯?fù)的錯(cuò)誤宏塊會(huì)繼續(xù)影響到它周圍相鄰錯(cuò)誤宏塊的修復(fù)結(jié)果,所以需要對(duì)這些區(qū)域中哪個(gè)宏塊先修復(fù),哪個(gè)宏塊后修復(fù)決定一個(gè)順序。不同的修復(fù)順序會(huì)產(chǎn)生不同的結(jié)果。比較簡單的順序是對(duì)錯(cuò)誤區(qū)域采用從上到下,從左到右的修復(fù);另外一種是從錯(cuò)誤區(qū)域的邊緣向中心收縮的方式。
中國專利CN1997163A公開了一種修復(fù)視頻傳輸信號(hào)錯(cuò)誤的方法,該方法提出了一種基于出錯(cuò)區(qū)域中外部邊界的參考紋理強(qiáng)度自動(dòng)確定修復(fù)順序的技術(shù)。該方法認(rèn)為人眼對(duì)于視頻中的邊緣紋理信息敏感,所以在修復(fù)錯(cuò)誤區(qū)域順序選擇時(shí),選擇錯(cuò)誤區(qū)域周圍具有最大紋理信息的位置作為修復(fù)的起始點(diǎn),這樣就能保證視頻具有較好的邊緣效果,從而達(dá)到較好的視覺效果。但是,由于相對(duì)于參考圖像,當(dāng)前視頻可以分為運(yùn)動(dòng)變化部分(前景)和不變化部分(背景)兩部分,如果當(dāng)前視頻錯(cuò)誤區(qū)域發(fā)生在前景部分,而背景部分具有邊緣信息的干擾則可能導(dǎo)致前景部分的錯(cuò)誤區(qū)域丟失不被修復(fù),導(dǎo)致當(dāng)前幀視頻質(zhì)量嚴(yán)重下降,而且還會(huì)影響到后續(xù)幀的視頻畫面質(zhì)量,造成誤差在圖像之間傳播。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述現(xiàn)有視頻錯(cuò)誤修復(fù)方法中所存在的不足,提供了一種能顯著提高視頻最終畫面質(zhì)量的視頻錯(cuò)誤修復(fù)裝置。該裝置根據(jù)錯(cuò)誤區(qū)域周圍的宏塊的運(yùn)動(dòng)矢量MV信息為參考,自動(dòng)確定先修復(fù)錯(cuò)誤區(qū)域中的哪個(gè)宏塊,然后調(diào)用錯(cuò)誤修復(fù)單元進(jìn)行修復(fù)。
根據(jù)本發(fā)明的視頻錯(cuò)誤修復(fù)裝置,其特征在于,具備視頻解碼單元,對(duì)視頻碼流進(jìn)行解碼;錯(cuò)誤檢測(cè)單元,檢測(cè)當(dāng)前幀的錯(cuò)誤區(qū)域;修復(fù)宏塊選取單元,根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊;修復(fù)單元,在參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。
其中,優(yōu)選所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊。
本發(fā)明的視頻錯(cuò)誤修復(fù)裝置中,優(yōu)選所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,按照以下公式(I)或(I’)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度。
公式(I) 公式(I’) 其中,m和n分別表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的橫坐標(biāo)值以及縱坐標(biāo)值,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n-1)|、|MV(m,n+1)|為與所述宏塊(m,n)相鄰的左、右、下、上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,|MV(m-1,n-1)|、|MV(m+1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n+1)|為與所述宏塊(m,n)相鄰的左下、右下、左上、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,MvStrength(m,n)表示所述宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度。
本發(fā)明的視頻錯(cuò)誤修復(fù)裝置中,更優(yōu)選所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度以及可信度,按照以下公式(II)以及(III)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊。
公式(II) 公式(III) 其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度, 當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取 (Trust(a-1,b)+Trust(a+1,b)+Trust(a,b-1)+Trust(a,b+1))/nonzero*w,nonzero表示與該宏塊(a,b)相鄰的左、右、上、下宏塊中不為所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù),w表示小于1大于0的數(shù), 并且,MvStrength(m,n)表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與所述宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
另外,本發(fā)明的視頻錯(cuò)誤修復(fù)裝置還優(yōu)選所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度以及可信度,按照以下公式(II’)以及(III’)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊, 公式(II’) 公式(III’) 其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度,Trust(a-1,b-1)、Trust(a+1,b-1)、Trust(a-1,b+1)、Trust(a+1,b+1)分別表示宏塊(a-1,b-1)、宏塊(a+1,b-1)、宏塊(a-1,b+1)、宏塊(a+1,b+1)的可信度,當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)區(qū)域(a,b)是所述錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的區(qū)域時(shí)其可信度Trust(a,b)取(Trust(a-1,b)+Trust(a+1,b)+Trust(a,b-1)+Trust(a,b+1)+Trust(a-1,b-1)+Trust(a+1,b-1)+Trust(a+1,b+1)+Trust(a-1,b+1))/nonzero*w,nonzero表示與該宏塊(a,b)相鄰的左、右、上、下、左下、左上、右下、右上宏塊中不為所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù),w表示小于1大于0的數(shù),并且,MvStrength(m,n)表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1) Trust(m-1,n-1)+Trust(m+1,n-1)+Trust(m+1,n+1)+Trust(m-1,n+1),SumTrust表示與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)所述公式(II’)計(jì)算, |MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|、|MV(m-1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n-1)|、|MV(m+1,n+1)|為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
在上述任意一項(xiàng)本發(fā)明所述的視頻錯(cuò)誤修復(fù)裝置中,所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊。
本發(fā)明的視頻錯(cuò)誤修復(fù)裝置,優(yōu)選所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并且,在以搜索起始點(diǎn)為中心的一定的像素范圍內(nèi)進(jìn)行搜索,該搜索起始點(diǎn)的像素坐標(biāo)為(16×m+MVx,16×n+MVy),其中m和n分別表示以宏塊為單位的橫坐標(biāo)值以及縱坐標(biāo)值,MVx通過如下公式(IV)獲得,MVy通過如下公式(V)獲得, 公式(IV) 公式(V) 其中, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算, MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的X方向上的運(yùn)動(dòng)矢量, MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(m,n-1)為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的Y方向上的運(yùn)動(dòng)矢量。
本發(fā)明的視頻錯(cuò)誤修復(fù)裝置,還優(yōu)選所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并且,在以搜索起始點(diǎn)為中心的一定的像素范圍內(nèi)進(jìn)行搜索,該搜索起始點(diǎn)的像素坐標(biāo)為(16×m+MVx,16×n+MVy),其中m和n分別表示以宏塊為單位的橫坐標(biāo)值以及縱坐標(biāo)值,MVx通過如下公式(IV’)獲得,MVy通過如下公式(V’)獲得, 公式(IV’) 公式(V’) 其中, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1) Trust(m-1,n-1)+Trust(m+1,n-1)+Trust(m+1,n+1)+Trust(m-1,n+1) ,SumTrust表示與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)所述公式(II’)計(jì)算, MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)、MVx(m-1,n-1)、MVx(m-1,n+1)、MVx(m+1,n-1)、MVx(m+1,n+1)為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的X方向上的運(yùn)動(dòng)矢量,MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(n,n-1)、MVy(m-1,n-1)、MVy(m-1,n+1)、MVy(m+1,n-1)、MVy(m+1,n+1)為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的Y方向上的運(yùn)動(dòng)矢量。
上述本發(fā)明的視頻錯(cuò)誤修復(fù)裝置,還優(yōu)選所述修復(fù)單元對(duì)于所述參考幀中與所述當(dāng)前幀的正確區(qū)域相對(duì)應(yīng)的區(qū)域進(jìn)行標(biāo)記,當(dāng)在所述參考幀中搜索到的所述修復(fù)宏塊的最佳替代宏塊位于標(biāo)記的區(qū)域內(nèi)時(shí),不用該最佳替代宏塊來修復(fù)所述修復(fù)宏塊。
上述本發(fā)明的視頻錯(cuò)誤修復(fù)裝置,進(jìn)一步優(yōu)選對(duì)于所述當(dāng)前幀中的多個(gè)錯(cuò)誤區(qū)域,同時(shí)地,所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊,并且所述修復(fù)單元在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。
本發(fā)明所提供的視頻錯(cuò)誤修復(fù)裝置相比于現(xiàn)有的視頻錯(cuò)誤補(bǔ)償方法,其有益的效果表現(xiàn)在在修復(fù)出錯(cuò)區(qū)域時(shí),對(duì)于前景部分予以優(yōu)先修復(fù),而背景部分由于兩幀之間沒有發(fā)生變化,修復(fù)時(shí)采用直接拷貝方式,所以在等到前景部分修復(fù)完成后再來完成背景修復(fù)比較合理,最大可能地修復(fù)出錯(cuò)視頻,提高最終視頻輸出單元的畫面質(zhì)量。此外,本發(fā)明方法不具體針對(duì)特定的視頻編碼、解碼標(biāo)準(zhǔn)而設(shè)計(jì),可適應(yīng)于任何一種視頻壓縮標(biāo)準(zhǔn)。
圖1為本發(fā)明視頻錯(cuò)誤修復(fù)裝置的結(jié)構(gòu)框圖。
圖2為本發(fā)明在圖1裝置上執(zhí)行步驟的流程圖。
圖3是對(duì)圖2所示步驟的進(jìn)一步詳細(xì)的流程圖。
圖4為宏塊4-鄰域圖,標(biāo)示出了邊界匹配法在4-鄰域所用到的邊界區(qū)域范圍。
圖5為宏塊8-鄰域圖,標(biāo)示出了邊界匹配法在8-鄰域所用到的邊界區(qū)域范圍。
圖6為參考幀中標(biāo)記的正確區(qū)域和可疑錯(cuò)誤區(qū)域。
圖7為表示宏塊之間可信度關(guān)系的示例圖。
圖8為表示邊界匹配法的一例示意圖。
圖9為本發(fā)明的一個(gè)實(shí)施例,詳細(xì)描述了修復(fù)視頻中一個(gè)錯(cuò)誤區(qū)域的過程。
圖10為本發(fā)明的第二個(gè)實(shí)施例,描述了同時(shí)修復(fù)視頻中多個(gè)錯(cuò)誤區(qū)域的過程。
圖11為本發(fā)明的第三個(gè)實(shí)施例,對(duì)于同樣的出錯(cuò)視頻,表示用本發(fā)明的順序修復(fù)裝置與現(xiàn)有技術(shù)的順序修復(fù)裝置進(jìn)行修復(fù)的結(jié)果。
具體實(shí)施例方式 以下結(jié)合附圖以及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
圖1為本發(fā)明涉及的視頻錯(cuò)誤修復(fù)裝置的結(jié)構(gòu)框圖。如圖1所示,本發(fā)明的視頻修復(fù)裝置1具備視頻解碼單元10,用于對(duì)視頻碼流進(jìn)行解碼;錯(cuò)誤檢測(cè)單元20,用于檢測(cè)當(dāng)前幀的錯(cuò)誤區(qū)域;修復(fù)宏塊選取單元30,其根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊;修復(fù)單元40,在參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。另外,本發(fā)明的視頻修復(fù)裝置通常與最終的視頻輸出顯示裝置相連接。圖1中50為存儲(chǔ)器,其例如由RAM和ROM組成,用來存儲(chǔ)視頻錯(cuò)誤修復(fù)裝置1在運(yùn)行中的數(shù)據(jù)。
圖2是本發(fā)明的視頻錯(cuò)誤修復(fù)裝置運(yùn)行過程的一示例圖。
首先在視頻解碼單元10中執(zhí)行步驟S1,根據(jù)相應(yīng)視頻解碼標(biāo)準(zhǔn)來對(duì)視頻比特流內(nèi)容進(jìn)行解碼;然后在錯(cuò)誤檢測(cè)單元20中執(zhí)行步驟S2、S3、S4,在步驟S2中根據(jù)標(biāo)準(zhǔn)定義來對(duì)視頻碼流進(jìn)行錯(cuò)誤檢測(cè),在步驟S3中判斷碼流是否出錯(cuò),具體來講就是判斷是否有宏塊出錯(cuò);當(dāng)檢測(cè)到有碼流出錯(cuò)則執(zhí)行步驟S4,即在當(dāng)前幀中標(biāo)記出這些錯(cuò)誤宏塊,進(jìn)而在當(dāng)前幀中確定錯(cuò)誤區(qū)域和參考幀中的正確區(qū)域;在修復(fù)宏塊選取單元30中執(zhí)行步驟S5,從當(dāng)前幀中的錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊;然后在修復(fù)單元40中執(zhí)行步驟S6,對(duì)于在步驟S5中選取的修復(fù)宏塊進(jìn)行修復(fù),并將修復(fù)后的碼流輸出。在步驟S3中,如果沒有找到錯(cuò)誤宏塊則直接向外輸出碼流。
圖3是對(duì)圖2所示步驟的進(jìn)一步詳細(xì)的流程圖。即,圖3是對(duì)于圖2中步驟S4至步驟S6的詳細(xì)流程圖,其由錯(cuò)誤檢測(cè)單元20、修復(fù)宏塊選取單元30、修復(fù)單元40執(zhí)行。在此,對(duì)通常出現(xiàn)的一個(gè)錯(cuò)誤區(qū)域由相連的幾個(gè)宏塊組成的方式進(jìn)行說明。具體實(shí)現(xiàn)步驟如下在步驟S10中標(biāo)記出當(dāng)前視頻圖像中的錯(cuò)誤宏塊;在步驟S11中確定當(dāng)前幀中錯(cuò)誤區(qū)域個(gè)數(shù)和每個(gè)錯(cuò)誤區(qū)域中所含宏塊數(shù)目;在步驟S12中以當(dāng)前幀為參考,確定參考幀中的正確區(qū)域;在步驟S13中計(jì)算錯(cuò)誤區(qū)域中的宏塊的參考MV強(qiáng)度大??;在步驟S14中,找出錯(cuò)誤區(qū)域中的參考MV強(qiáng)度最大的宏塊,以錯(cuò)誤區(qū)域中的當(dāng)前參考MV強(qiáng)度最大的宏塊為最先修復(fù)宏塊;在步驟S15中,對(duì)于當(dāng)前參考MV強(qiáng)度最大的錯(cuò)誤宏塊首先修復(fù),采用邊界匹配算法(可以采用通常的邊界匹配算法,也可以采用可信度加權(quán)預(yù)測(cè)的邊界匹配算法,但是考慮到修復(fù)效果優(yōu)選采用可信度加權(quán)預(yù)測(cè)的邊界匹配算法)在參考幀中尋找最佳替代宏塊;在步驟S16中判斷所找到的最佳替代宏塊是否在參考幀中所標(biāo)記的正確區(qū)域內(nèi),如果在標(biāo)記的正確區(qū)域內(nèi)(即,在步驟16中的結(jié)果為“是”),則不進(jìn)行替代,執(zhí)行步驟S17將該錯(cuò)誤宏塊的參考MV強(qiáng)度信息置0,然后繼續(xù)執(zhí)行步驟S14;而如果在步驟S16中判斷出所找到的最佳替代宏塊不在參考幀中所標(biāo)記的正確區(qū)域內(nèi)(即,在步驟16中的結(jié)果為“否”),則執(zhí)行步驟S18,用替代宏塊替代錯(cuò)誤宏塊,然后更新該錯(cuò)誤修復(fù)宏塊的參考MV強(qiáng)度,并計(jì)算該錯(cuò)誤修復(fù)宏塊的可信度;在步驟S19中判斷錯(cuò)誤區(qū)域中的錯(cuò)誤宏塊是否已全部修復(fù),如果已經(jīng)全部處理完畢,則結(jié)束視頻修復(fù)向外部輸出修復(fù)后的視頻,否則繼續(xù)進(jìn)行步驟S14。
圖4示出了一個(gè)錯(cuò)誤宏塊(以下有時(shí)將宏塊簡稱“MB”)與其4-鄰域中上端宏塊210,下端宏塊220,左端宏塊230以及右端宏塊240之間的關(guān)系。鄰域有4-鄰域和8-鄰域兩種,4-鄰域指上,下,左,右;8-鄰域是指上,下,左,右,左上,右上,左下,右下。本發(fā)明對(duì)宏塊的4-鄰域以及8-鄰域的情況均適用。圖4中還示出了一個(gè)錯(cuò)誤MB與其上端邊界區(qū)域211,下端邊界區(qū)域221,左端邊界區(qū)域231和右端邊界區(qū)域241的關(guān)系。這些邊界區(qū)域具體應(yīng)用于步驟S15中,為邊界匹配法所需要的邊界區(qū)域。
圖5示出了一個(gè)錯(cuò)誤MB與其8-鄰域中的左端宏塊250,左上宏塊255,上宏塊260,右上宏塊265,右端宏塊270,右下宏塊275,下宏塊280,左下宏塊285之間的關(guān)系。圖5還示出了在步驟S15中邊界匹配法所需要的邊界區(qū)域290(以灰色表示的區(qū)域)。
圖6示出了以當(dāng)前幀為參考,確定參考幀中正確區(qū)域的原理找出當(dāng)前幀中所有正確宏塊和這些正確宏塊對(duì)于參考幀的MV值,利用這些MV值,在參考幀中找出對(duì)應(yīng)的參考宏塊位置,然后將參考宏塊所在的區(qū)域標(biāo)記為正確區(qū)域。圖6(a)中表示參考幀300,圖6(b)中表示當(dāng)前幀400。本發(fā)明將參考幀分為兩個(gè)區(qū)域正確區(qū)域310和可疑錯(cuò)誤區(qū)域320。這里的正確區(qū)域和可疑錯(cuò)誤區(qū)域并不是依據(jù)該區(qū)域是否發(fā)生錯(cuò)誤來劃分。劃分方法為如果參考幀中的一個(gè)宏塊能在當(dāng)前幀中通過MV找到與其對(duì)應(yīng)的宏塊,也就是說當(dāng)前幀中有一個(gè)宏塊的MV值正好指向該宏塊,則該宏塊屬于正確區(qū)域,如果該宏塊不能在當(dāng)前幀中找到對(duì)應(yīng)宏塊,則該宏塊屬于可疑錯(cuò)誤區(qū)域。正確區(qū)域310中的每一個(gè)宏塊都能在當(dāng)前幀中找到對(duì)應(yīng)宏塊。區(qū)域320中的宏塊不能在當(dāng)前中找到對(duì)應(yīng)宏塊,該區(qū)域中的視頻內(nèi)容可能在視頻傳輸或存儲(chǔ)中發(fā)生錯(cuò)誤。本發(fā)明將當(dāng)前幀400也分為兩個(gè)區(qū)域正確區(qū)域410和錯(cuò)誤區(qū)域420。當(dāng)前幀的正確區(qū)域和錯(cuò)誤區(qū)域的劃分標(biāo)準(zhǔn)是以這兩個(gè)區(qū)域是否發(fā)生錯(cuò)誤來判斷。區(qū)域420為錯(cuò)誤發(fā)生區(qū)域,該區(qū)域的宏塊由于受到噪聲干擾產(chǎn)生錯(cuò)誤。區(qū)域410的宏塊沒有發(fā)生錯(cuò)誤。
在步驟S13中計(jì)算當(dāng)前幀的錯(cuò)誤區(qū)域中的宏塊的參考MV強(qiáng)度時(shí),可以按照以下公式(I)或(I’)計(jì)算,公式(I)是采用4-領(lǐng)域方式的算法,公式(I’)是用8-領(lǐng)域方式的算法。
公式(I) 公式(I’) 其中,m和n分別表示錯(cuò)誤區(qū)域中的宏塊(m,n)的橫坐標(biāo)值以及縱坐標(biāo)值,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n-1)|、|MV(m,n+1)|為與錯(cuò)誤宏塊(m,n)相鄰的左、右、下、上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,|MV(m-1,n-1)|、|MV(m+1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n+1)|為與錯(cuò)誤宏塊(m,b)相鄰的左下、右下、左上、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,MvStrength(m,n)表示錯(cuò)誤宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度。
另外,在步驟S13中計(jì)算當(dāng)前幀的錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV強(qiáng)度時(shí),采用4-領(lǐng)域方式的算法也可以是按照以下公式(II)以及(III)來計(jì)算,并將參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為修復(fù)宏塊。
公式(II) 公式(III) 其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度,當(dāng)宏塊(a,b)是錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)宏塊(a,b)是錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取(Trust(a-1,b)+Trust(a+1,b)+Trust(a,b-1)+Trust(a,b+1))/nonzero*w,nonzero表示與該宏塊(a,b)相鄰的左、右、上、下宏塊中不為錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù)(也就是,與該宏塊(a,b)相鄰的左、右、上、下宏塊中其可信度不為0的宏塊的個(gè)數(shù)),w表示小于1大于0的數(shù)。
并且,MvStrength(m,n)表示錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|為與宏塊(m,n)相鄰的左、右、上、下宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
進(jìn)一步,在步驟S13中計(jì)算當(dāng)前幀的錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV強(qiáng)度時(shí),采用8-領(lǐng)域方式的算法也可以是按照以下公式(II’)以及(III’)來計(jì)算,并將在錯(cuò)誤區(qū)域中的參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊。
公式(II’) 公式(III’) 其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度,Trust(a-1,b-1)、Trust(a+1,b-1)、Trust(a-1,b+1)、Trust(a+1,b+1)分別表示宏塊(a-1,b-1)、宏塊(a+1,b-1)、宏塊(a-1,b+1)、宏塊(a+1,b+1)的可信度,當(dāng)宏塊(a,b)是錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)區(qū)域(a,b)是錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的區(qū)域時(shí)其可信度Trust(a,b)取 (Trust(a-1,b)+Trust(a+1,b)+Trust(a,b-1)+Trust(a,b+1)+Trust(a-1,b-1)+Trust(a+1,b-1)+Trust(a+1,b+1)+Trust(a-1,b+1))/nonzero*w,nonzeo表示與該宏塊(a,b)相鄰的左、右、上、下、左下、左上、右下、右上宏塊中不為錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù)(也就是,與該宏塊(a,b)相鄰的左、右、上、下、左下、左上、右下、右上宏塊中其可信度不為0的宏塊的個(gè)數(shù)),w表示小于1大于0的數(shù)。
并且,MvStrength(m,n)表示錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度, SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1) Trust(m-1,n-1)+Trust(m+1,n-1)+Trust(m+1,n+1)+Trust(m-1,n+1),SumTrust表示與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)上述公式(II’)計(jì)算,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|、|MV(m-1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n-1)|、|MV(m+1,n+1)|為與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
圖7表示宏塊之間可信度的關(guān)系的示例圖。圖7中包含三個(gè)宏塊450,460,470。其中,450為正確宏塊其可信度為1。460和470為錯(cuò)誤修復(fù)宏塊(也就是,錯(cuò)誤區(qū)域中的經(jīng)過修復(fù)的宏塊)。由于錯(cuò)誤修復(fù)宏塊460利用正確宏塊450的信息來完成修復(fù),所以該錯(cuò)誤修復(fù)宏塊可信度要小于宏塊450的可信度,這里為0.9。由于錯(cuò)誤修復(fù)宏塊470是利用錯(cuò)誤修復(fù)宏塊460信息來完成修復(fù),所以該錯(cuò)誤修復(fù)宏塊的可信更小,小于宏塊460可信度,這里為0.81。由此可以看出,在錯(cuò)誤區(qū)域的宏塊中,最先被修復(fù)的宏塊的可信度最高,隨著錯(cuò)誤修復(fù)的進(jìn)行,修復(fù)順序越靠后的錯(cuò)誤修復(fù)宏塊的可信度越低。
參考運(yùn)動(dòng)矢量MV的強(qiáng)度MvStrength(a,b)用在步驟S14中,用來搜索參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊。由于當(dāng)前幀視頻中的錯(cuò)誤區(qū)域可能包含背景和前景,背景在前后兩幀之間不會(huì)產(chǎn)生變化,而且錯(cuò)誤宏塊是利用其周圍的宏塊信息來修復(fù),所以在對(duì)錯(cuò)誤區(qū)域進(jìn)行修復(fù)時(shí)應(yīng)當(dāng)首先修復(fù)其中的變化區(qū)域,然后再修復(fù)不會(huì)變化區(qū)域。由于變化區(qū)域的參考MV強(qiáng)度往往較大,而背景區(qū)域處參考MV強(qiáng)度值為0,所以要選擇參考MV最強(qiáng)的一個(gè)出錯(cuò)MB作為第一個(gè)修復(fù)。
在本發(fā)明中修復(fù)單元采用邊界匹配法在所述參考幀中搜索修復(fù)宏塊的最佳替代宏塊,優(yōu)選采用加權(quán)預(yù)測(cè)的邊界匹配算法。邊界匹配算法是視頻錯(cuò)誤隱藏領(lǐng)域的通用算法,用來在參考幀中搜索當(dāng)前幀中的錯(cuò)誤宏塊的最佳匹配替代宏塊。
以下就邊界匹配算法(Boundary matching Algorithm,簡稱BMA)進(jìn)行說明。其基本原理如圖8所示。圖8中,圖8(a)為參考幀,圖8(b)為當(dāng)前幀。當(dāng)前幀中具有一個(gè)錯(cuò)誤宏塊(Missing MB)部分,為了在參考幀中找到當(dāng)前幀錯(cuò)誤宏塊的最佳替代宏塊,需要用錯(cuò)誤宏塊(Missing MB)周圍的一圈像素信息(圖中選取2行,為小方格所示區(qū)域,可以為1行或者多行)在參考幀中做一個(gè)最佳匹配。匹配過程為(1)選擇參考幀中的匹配搜索點(diǎn)(為Matching MB,中心點(diǎn)),該搜索點(diǎn)對(duì)應(yīng)的待匹配區(qū)域?yàn)閳D8(a)的小格子區(qū)域所示;(2)計(jì)算參考幀待匹配區(qū)域(圖8(a)小格子區(qū)域)和當(dāng)前幀錯(cuò)誤宏塊周圍區(qū)域(圖8(b)小格子區(qū)域)之間像素值差的絕對(duì)值之和,得到當(dāng)前匹配搜索點(diǎn)的匹配誤差大??;(3)在參考幀中,以錯(cuò)誤宏塊中心坐標(biāo)為中心點(diǎn),在一定的搜索范圍(例如3×3)內(nèi)獲得各個(gè)搜索點(diǎn)的匹配誤差大小,找出匹配誤差最小的搜索點(diǎn)及其對(duì)應(yīng)的宏塊,該宏塊即為該錯(cuò)誤宏塊的最佳替代宏塊。
搜索例如在以搜索起始點(diǎn)為中心的3×3像素范圍內(nèi)進(jìn)行。當(dāng)令(m,n)為當(dāng)前錯(cuò)誤宏塊的以宏塊為單位的坐標(biāo)位置時(shí),在參考幀中,搜索起始點(diǎn)可以是錯(cuò)誤宏塊所在的像素坐標(biāo)位置(16×m,16×n)。但是為了取得更好的搜索結(jié)果,本發(fā)明優(yōu)選對(duì)搜索起始點(diǎn)進(jìn)行可信度加權(quán)預(yù)測(cè),起始點(diǎn)為(16×m+MVx,16×n+MVy)。其中(MVx,MVy)為對(duì)錯(cuò)誤宏塊運(yùn)動(dòng)矢量的預(yù)測(cè)值,在當(dāng)在參考幀中搜索時(shí)可以從(16×m,16×n)開始,則(MVx,MVy)取值為(0,0)。但是為了提高準(zhǔn)確性,本發(fā)明優(yōu)選對(duì)錯(cuò)誤宏塊的運(yùn)動(dòng)矢量MV進(jìn)行可信度加權(quán)從而獲得一個(gè)預(yù)測(cè)(MVx,MVy)值,然后以(16×m+MVx,16×n+MVy)為中心在參考幀中進(jìn)行邊界匹配算法,以尋找最佳替代宏塊。以采用4-領(lǐng)域算法的情況為例,MVx通過如下公式(IV)獲得,MVy通過如下公式(V)獲得。
公式(IV) 公式(V) 其中,SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算,MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)為與宏塊(m,n)相鄰的左、右、上、下宏塊的X方向上的運(yùn)動(dòng)矢量,MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(m,n-1)為與宏塊(m,n)相鄰的左、右、上、下宏塊的Y方向上的運(yùn)動(dòng)矢量。
另外,以采用8-領(lǐng)域算法的情況為例,MVx通過如下公式(IV’)獲得,MVy通過如下公式(V’)獲得。
公式(IV’) 其中,SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1) Trust(m-1,n-1)+Trust(m+1,n+1)+Trust(m-1,n+1)’SumTrust表示與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)所述公式(II’)計(jì)算,MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)、MVx(m-1,n-1)、MVx(n-1,n+1)、MVx(m+1,n-1)、MVx(m+1,n+1)分別為與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的X方向上的運(yùn)動(dòng)矢量,MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(m,n-1)、MVy(m-1,n-1)、MVy(m-1,n+1)、MVy(m+1,n-1)、MVy(m+1,n+1)為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的Y方向上的運(yùn)動(dòng)矢量。
在步驟S15中利用通常的邊界匹配法(或者可信度加權(quán)預(yù)測(cè)的邊界匹配法)在參考幀中找到最佳替代宏塊后,在步驟S16中判斷該最佳替代宏塊是否在參考幀中已標(biāo)記的正確區(qū)域以內(nèi)。如果該替代宏塊在參考幀中已標(biāo)記的正確區(qū)域以內(nèi),則將放棄用該最佳替代宏塊來替換錯(cuò)誤宏塊,在步驟S17中將該錯(cuò)誤宏塊的MvStrength(m,n)值變?yōu)?,該錯(cuò)誤宏塊在本次循環(huán)放棄修復(fù)而在以后的循環(huán)中修復(fù),并且跳到步驟S14繼續(xù)執(zhí)行。而如果在步驟S16中判斷出最佳匹配替代宏塊不在參考幀中已標(biāo)記的正確區(qū)域內(nèi),則執(zhí)行步驟S18,利用該最佳匹配替代宏塊替換當(dāng)前幀中的錯(cuò)誤宏塊,并更新該錯(cuò)誤修復(fù)宏塊的參考MV強(qiáng)度且計(jì)算該錯(cuò)誤修復(fù)宏塊的可信度。
圖9結(jié)合一個(gè)實(shí)例介紹了對(duì)于一幀圖像中單個(gè)錯(cuò)誤區(qū)域修復(fù)的過程,修復(fù)過程中以4-鄰域方式為例作分析。
圖9(a)為參考幀500;圖9(b)為當(dāng)前幀510,在當(dāng)前幀510中由視頻錯(cuò)誤檢測(cè)單元發(fā)現(xiàn)圖像中存在一個(gè)錯(cuò)誤區(qū)域511,該區(qū)域由M×N個(gè)MB構(gòu)成;利用圖6所示的方法在參考幀500中標(biāo)記出正確區(qū)域530和可疑錯(cuò)誤區(qū)域520,如圖9(c)所示;然后利用步驟S10所述,將當(dāng)前幀錯(cuò)誤區(qū)域中的宏塊一一標(biāo)記,標(biāo)號(hào)為1到15,這里標(biāo)號(hào)的選擇順序不需要遵循一定的關(guān)系,可以隨意選取,只需讓每個(gè)錯(cuò)誤宏塊具有唯一的標(biāo)識(shí)即可,如圖9(d)所示。并且,如圖9(d)所示,找出與錯(cuò)誤區(qū)域511相鄰的正確區(qū)域512,為圖9(d)所示的虛線框區(qū)域;然后執(zhí)行步驟S14,利用從公式(I)、(I’)、(III)、(III’)中選出的任意一個(gè)公式來計(jì)算出這1到15個(gè)錯(cuò)誤宏塊的參考MV強(qiáng)度大小,選擇1到15個(gè)錯(cuò)誤宏塊中具有最大參考MV強(qiáng)度的宏塊為最先修復(fù)的宏塊,在此為11號(hào)宏塊,如圖9(e)所示;然后執(zhí)行步驟S15,例如采用(可信度加權(quán)預(yù)測(cè)的)邊界匹配算法,在參考幀中尋找最佳替代宏塊;找到最佳替代宏塊后執(zhí)行步驟S16,當(dāng)判斷結(jié)果為“否”時(shí),執(zhí)行步驟S18,用最佳替代宏塊來替代錯(cuò)誤宏塊11,得到結(jié)果圖9(f),并且更新錯(cuò)誤修復(fù)宏塊11的MV(由此,在下一輪步驟中計(jì)算得到的宏塊11周圍的錯(cuò)誤宏塊6和12的參考運(yùn)動(dòng)矢量MV的強(qiáng)度大小也會(huì)發(fā)生變化),并計(jì)算該出錯(cuò)誤修復(fù)宏塊11的可信度大小;進(jìn)一步,當(dāng)在步驟S19中判斷出還存在錯(cuò)誤宏塊時(shí),返回到步驟S14。直到所有的錯(cuò)誤宏塊處理完畢(中間處理過程中請(qǐng)參照?qǐng)D9(g)、9(h)、9(i)、9(j)),最終得到錯(cuò)誤修復(fù)后新的當(dāng)前幀540,如圖9(k)所示。
圖10結(jié)合一個(gè)實(shí)例介紹了本發(fā)明另一實(shí)施方式,即圖像中同時(shí)出現(xiàn)2個(gè)或多個(gè)錯(cuò)誤區(qū)域時(shí)的修復(fù)過程。
本發(fā)明對(duì)當(dāng)前幀圖像中含有多個(gè)錯(cuò)誤區(qū)域的情況同樣適用,處理過程中并不需要一個(gè)錯(cuò)誤區(qū)域一個(gè)錯(cuò)誤區(qū)域地串行修復(fù),可以對(duì)多個(gè)錯(cuò)誤區(qū)域同時(shí)進(jìn)行修復(fù),即可以并行處理多個(gè)錯(cuò)誤區(qū)域。具體而言,分別對(duì)每個(gè)錯(cuò)誤區(qū)域執(zhí)行步驟S14~S19即可。圖10(a)所示為參考幀,圖10(b)為對(duì)應(yīng)的當(dāng)前幀,當(dāng)前幀中具有三個(gè)錯(cuò)誤區(qū)域560,570,580。本發(fā)明對(duì)這個(gè)三個(gè)錯(cuò)誤區(qū)域同時(shí)執(zhí)行步驟S14~S19,并行修復(fù)三個(gè)錯(cuò)誤區(qū)域。圖10(c)為并行修復(fù)中間結(jié)果圖。圖9(d)為最終結(jié)果圖。
圖11為本發(fā)明的第三個(gè)實(shí)施例,對(duì)于同樣的出錯(cuò)視頻,表示用本發(fā)明的順序修復(fù)裝置與現(xiàn)有技術(shù)的順序修復(fù)裝置進(jìn)行修復(fù)的結(jié)果的比較。圖11(a)為參考幀600,在參考幀中有一個(gè)運(yùn)動(dòng)物體620,在參考幀中背景部分具有很強(qiáng)的紋理和邊界部分610。圖11(b)為當(dāng)前幀700,在當(dāng)前幀中發(fā)生了傳輸或存儲(chǔ)錯(cuò)誤,錯(cuò)誤區(qū)域?yàn)閳D11(b)所示的黑色區(qū)域710覆蓋部分。
圖11(c)、11(d)、11(e)、11(f)為本發(fā)明所提出的基于宏塊參考MV強(qiáng)度的順序修復(fù)錯(cuò)誤區(qū)域方法的處理過程圖。本發(fā)明修復(fù)出錯(cuò)區(qū)域的順序是依據(jù)錯(cuò)誤宏塊周圍的參考MV強(qiáng)度來決定,對(duì)于具有參考MV強(qiáng)度大的部分予以優(yōu)先修復(fù),即先修復(fù)出當(dāng)前幀相對(duì)于參考幀的變化部分,前景部分;然后修復(fù)當(dāng)前幀相對(duì)于參考幀的不變部分,背景部分。圖11(g)為用本發(fā)明提出順序修復(fù)所得結(jié)果圖。
圖11(h)為現(xiàn)有技術(shù)的基于宏塊參考紋理強(qiáng)度的順序修復(fù)錯(cuò)誤區(qū)域方法處理結(jié)果圖。該方法認(rèn)為人眼對(duì)于圖像中的紋理信息敏感,所以出錯(cuò)區(qū)域的修復(fù)順序是依據(jù)錯(cuò)誤宏塊周圍的參考紋理強(qiáng)度來決定,對(duì)于具有參考紋理和邊緣信息大的部分予以優(yōu)先修復(fù)。
比較圖11(g)和圖11(h)可以看出本發(fā)明所提供的錯(cuò)誤修復(fù)裝置能夠更準(zhǔn)確的修復(fù)出視頻錯(cuò)誤,提高視頻質(zhì)量。本發(fā)明對(duì)視頻中的錯(cuò)誤優(yōu)先修復(fù)變化的前景部分。因?yàn)楸尘安糠衷谇昂髢蓭g不會(huì)發(fā)生變化,對(duì)于錯(cuò)誤區(qū)域的宏塊可以直接拷貝復(fù)制參考幀同一位置的宏塊即可,而不管修復(fù)順序如何所得結(jié)果都一樣,所以如果先修復(fù)出當(dāng)前幀中的前景部分更加合理。這樣能達(dá)到更好的視覺效果。
權(quán)利要求
1.一種視頻錯(cuò)誤修復(fù)裝置,其特征在于,
具備
視頻解碼單元,對(duì)視頻碼流進(jìn)行解碼;
錯(cuò)誤檢測(cè)單元,檢測(cè)當(dāng)前幀的錯(cuò)誤區(qū)域;
修復(fù)宏塊選取單元,根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊;
修復(fù)單元,在參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。
2.如權(quán)利要求1所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊。
3.如權(quán)利要求2所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,按照以下公式(I)或(I’)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,
公式(I)
公式(I’)
其中,m和n分別表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的橫坐標(biāo)值以及縱坐標(biāo)值,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n-1)|、|MV(m,n+1)|為與所述宏塊(m,n)相鄰的左、右、下、上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,|MV(m-1,n-1)|、|MV(m+1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n+1)|為與所述宏塊(m,n)相鄰的左下、右下、左上、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度,MvStrength(m,n)表示所述宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度。
4.如權(quán)利要求1所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度以及可信度,按照以下公式(II)以及(III)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊,
公式(II)
公式(III)
其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度,
當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取
(Trust(a-1,b)+Trust(a+1,b)+Trust(a,b-1)+Trust(a,b+1))/nonzero*w,noonzero表示與該宏塊(a,b)相鄰的左、右、上、下宏塊中不為所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù),w表示小于1大于0的數(shù),
并且,MvStrength(m,n)表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,
SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與所述宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算,|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
5.如權(quán)利要求1所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度以及可信度,按照以下公式(II’)以及(III’)計(jì)算所述錯(cuò)誤區(qū)域中的宏塊的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,并將在錯(cuò)誤區(qū)域中的所述參考運(yùn)動(dòng)矢量MV的強(qiáng)度最大的宏塊作為所述修復(fù)宏塊,
公式(II’)
公式(III’)
其中,a和b分別表示宏塊(a,b)的橫坐標(biāo)值以及縱坐標(biāo)值,Trust(a,b)、Trust(a-1,b)、Trust(a+1,b)、Trust(a,b-1)、Trust(a,b+1)分別表示宏塊(a,b)、宏塊(a-1,b)、宏塊(a+1,b)、宏塊(a,b-1)、宏塊(a,b+1)的可信度,Trust(a-1,b-1)、Trust(a+1,b-1)、Trust(a-1,b+1)、Trust(a+1,b+1)分別表示宏塊(a-1,b-1)、宏塊(a+1,b-1)、宏塊(a-1,b+1)、宏塊(a+1,b+1)的可信度,
當(dāng)宏塊(a,b)是所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊時(shí)其可信度Trust(a,b)取0,當(dāng)宏塊(a,b)是正確區(qū)域中的宏塊時(shí)其可信度Trust(a,b)取1,當(dāng)區(qū)域(a,b)是所述錯(cuò)誤區(qū)域中的經(jīng)修復(fù)的區(qū)域時(shí)其可信度Trust(a,b)取(Trust(a4,b)+Trust(a+1,b)+Trus(a,b-1)+Trust(a,b+1)+Trust(a-1,b-1)+Trust(a+1,b-1)+Trust(a+1,b+1)+Trust(a-I,b+1))/nonzero*w,nonzero表示與該宏塊(a,b)相鄰的左、右、上、下、左下、左上、右下、右上宏塊中不為所述錯(cuò)誤區(qū)域中的未經(jīng)修復(fù)的宏塊的個(gè)數(shù),w表示小于1大于0的數(shù),
并且,MvStrength(m,n)表示所述錯(cuò)誤區(qū)域中的宏塊(m,n)的參考運(yùn)動(dòng)矢量MV的強(qiáng)度,
SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(tm,n+1)
Trust(m-1,n-1)+Trust(m+1,n-1)+Trust(m+1,n+1)+Trust(m-1,n+1),SumTrust表示與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)所述公式(II’)計(jì)算,
|MV(m-1,n)|、|MV(m+1,n)|、|MV(m,n+1)|、|MV(m,n-1)|、|MV(m-1,n-1)|、|MV(m-1,n+1)|、|MV(m+1,n-1)|、|MV(m+1,n+1)|為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度。
6.如權(quán)利要求1~5中的任意一項(xiàng)所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊。
7.如權(quán)利要求3或4所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并且,在以搜索起始點(diǎn)為中心的一定的像素范圍內(nèi)進(jìn)行搜索,該搜索起始點(diǎn)的像素坐標(biāo)為(16×m+MVx,16×n+MVy),其中m和n分別表示以宏塊為單位的橫坐標(biāo)值以及縱坐標(biāo)值,MVx通過如下公式(IV)獲得,MVy通過如下公式(V)獲得
公式(IV)
公式(V)
其中,SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)表示與宏塊(m,n)相鄰的左、右、上、下宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)的值根據(jù)所述公式(II)計(jì)算,
MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的X方向上的運(yùn)動(dòng)矢量,
MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(m,n-1)為與所述宏塊(m,n)相鄰的左、右、上、下宏塊的Y方向上的運(yùn)動(dòng)矢量。
8.如權(quán)利要求3或5所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元采用邊界匹配法在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并且,在以搜索起始點(diǎn)為中心的一定的像素范圍內(nèi)進(jìn)行搜索,該搜索起始點(diǎn)的像素坐標(biāo)為(16×m+MVx,16×n+MVy),其中m和n分別表示以宏塊為單位的橫坐標(biāo)值以及縱坐標(biāo)值,MVx通過如下公式(IV’)獲得,MVy通過如下公式(V’)獲得
公式(IV’)
公式(V’)
其中,
SumTrust=Trust(m-1,n)+Trust(m+1,n)+Trust(m,n-1)+Trust(m,n+1)
Trust(m-1,n-1)+Trust(m+1,n-1)+Trtst(m+1,n+1)+Trust(m-1,n+1)
,SumTrust表示與宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的可信度之和,且Trust(m-1,n)、Trust(m+1,n)、Trust(m,n-1)、Trust(m,n+1)、Trust(m-1,n-1)、Trust(m+1,n-1)、Trust(m+1,n+1)、Trust(m-1,n+1)的值根據(jù)所述公式(II’)計(jì)算,
MVx(m-1,n)、MVx(m+1,n)、MVx(m,n+1)、MVx(m,n-1)、MVx(m-1,n-1)、MVx(m-1,n+1)、MVx(m+1,n-1)、MVx(m+1,n+1)為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的X方向上的運(yùn)動(dòng)矢量,
MVy(m-1,n)、MVy(m+1,n)、MVy(m,n+1)、MVy(m,n-1)、MVy(m-1,n-1)、MVy(m-1,n+1)、MVy(m+1,n-1)、MVy(m+1,n+1)為與所述宏塊(m,n)相鄰的左、右、上、下、左下、左上、右下、右上宏塊的Y方向上的運(yùn)動(dòng)矢量。
9.如權(quán)利要求6所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元對(duì)于所述參考幀中與所述當(dāng)前幀的正確區(qū)域相對(duì)應(yīng)的區(qū)域進(jìn)行標(biāo)記,當(dāng)在所述參考幀中搜索到的所述修復(fù)宏塊的最佳替代宏塊位于標(biāo)記的區(qū)域內(nèi)時(shí),不用該最佳替代宏塊來修復(fù)所述修復(fù)宏塊。
10.如權(quán)利要求7所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元對(duì)于所述參考幀中與當(dāng)前幀的正確區(qū)域相對(duì)應(yīng)的區(qū)域進(jìn)行標(biāo)記,當(dāng)在所述參考幀中搜索到的所述修復(fù)宏塊的最佳替代宏塊位于標(biāo)記的區(qū)域內(nèi)時(shí),不用該最佳替代宏塊來修復(fù)所述修復(fù)宏塊。
11.如權(quán)利要求8所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
所述修復(fù)單元對(duì)于所述參考幀中與當(dāng)前幀的正確區(qū)域相對(duì)應(yīng)的區(qū)域進(jìn)行標(biāo)記,當(dāng)在所述參考幀中搜索到的所述修復(fù)宏塊的最佳替代宏塊位于標(biāo)記的區(qū)域內(nèi)時(shí),不用該最佳替代宏塊來修復(fù)所述修復(fù)宏塊。
12.如權(quán)利要求1~5中的任意一項(xiàng)所述的視頻錯(cuò)誤修復(fù)裝置,其特征在于,
對(duì)于所述當(dāng)前幀中的多個(gè)錯(cuò)誤區(qū)域,同時(shí)地,所述修復(fù)宏塊選取單元根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊,并且所述修復(fù)單元在所述參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。
全文摘要
本發(fā)明涉及一種視頻錯(cuò)誤修復(fù)裝置,其特征在于,具備視頻解碼單元,對(duì)視頻碼流進(jìn)行解碼;錯(cuò)誤檢測(cè)單元,檢測(cè)當(dāng)前幀的錯(cuò)誤區(qū)域;修復(fù)宏塊選取單元,根據(jù)與所述錯(cuò)誤區(qū)域中的宏塊相鄰的宏塊的運(yùn)動(dòng)矢量MV的強(qiáng)度來從所述錯(cuò)誤區(qū)域中選取要進(jìn)行修復(fù)的修復(fù)宏塊;修復(fù)單元,在參考幀中搜索所述修復(fù)宏塊的最佳替代宏塊,并用該最佳替代宏塊來修復(fù)該修復(fù)宏塊。根據(jù)本發(fā)明的視頻錯(cuò)誤修復(fù)裝置能顯著提高視頻最終的畫面質(zhì)量。
文檔編號(hào)H04N7/64GK101827272SQ20091011783
公開日2010年9月8日 申請(qǐng)日期2009年3月6日 優(yōu)先權(quán)日2009年3月6日
發(fā)明者藤井由紀(jì)夫, 寺田光一, 沙浩 申請(qǐng)人:株式會(huì)社日立制作所