專利名稱:一種基于邊界梯度的視頻流容錯(cuò)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種視頻流容錯(cuò)方法,尤其涉及一種基于邊界梯度的視 頻流容錯(cuò)方法,屬于數(shù)字音視頻編解碼技術(shù)領(lǐng)域。
技術(shù)背景人們對(duì)多媒體業(yè)務(wù)的需求正在與日俱增。但是,現(xiàn)有網(wǎng)絡(luò)的服務(wù)質(zhì)量(QoS) —直得不到有效保障,所傳送的多媒體數(shù)據(jù)流誤碼率很高,嚴(yán) 重影響了視頻圖像的傳送質(zhì)量。這無(wú)疑會(huì)影響多媒體業(yè)務(wù)的進(jìn)一步開展。 在現(xiàn)有的網(wǎng)絡(luò)架構(gòu)下,僅僅依靠網(wǎng)絡(luò)傳輸技術(shù)來(lái)提高視頻傳輸質(zhì)量的余 地并不大,因此有必要通過(guò)改善視頻通信系統(tǒng)的容錯(cuò)算法,使之能夠克 服傳輸信道的高比特誤碼率,獲得較好的QoS保證。目前,視頻編解碼國(guó)際標(biāo)準(zhǔn)對(duì)數(shù)字視頻流定義了一整套嚴(yán)格的語(yǔ)法, 解碼端的任務(wù)就是根據(jù)視頻流的語(yǔ)法及語(yǔ)義還原出圖像序列。以MPEG-4 為例,其視頻流在語(yǔ)法上分為視覺(jué)對(duì)象序列、視覺(jué)對(duì)象、序列、幀、宏 塊、塊六個(gè)級(jí)別。但受限于對(duì)象提取技術(shù)以及對(duì)編碼器復(fù)雜程度的考慮, 在實(shí)際應(yīng)用中通常將幀作為一個(gè)視覺(jué)對(duì)象進(jìn)行編碼,因此通常的MPEG-4 視頻流如圖l所示,只包含序列、圖像、宏塊和塊四個(gè)級(jí)別,對(duì)MPEG-4 視頻流的容錯(cuò)處理也分別按這幾個(gè)級(jí)別進(jìn)行。序列、幀和宏塊這三個(gè)級(jí)別的語(yǔ)法元素出錯(cuò)誤對(duì)解碼過(guò)程造成的影 響各不相同。保證序列層語(yǔ)法元素的語(yǔ)義正確性是解碼器正常工作的前 提, 一旦發(fā)生錯(cuò)誤,將導(dǎo)致解碼器嚴(yán)重出錯(cuò)甚至無(wú)法工作,尤其是序列 起始碼出現(xiàn)的錯(cuò)誤。幀層中語(yǔ)法元素的錯(cuò)誤只會(huì)影響到能否成功解碼該 幀,不會(huì)影響下一幀解碼。但在基于預(yù)測(cè)的視頻編碼中,如果該幀不能 正確解碼,其錯(cuò)誤會(huì)直接影響其下一幀圖像,并一直擴(kuò)散下去,直至延 續(xù)到下一個(gè)序列層開始處。上述兩個(gè)級(jí)別語(yǔ)法元素錯(cuò)誤可以歸結(jié)為語(yǔ)義 層錯(cuò)誤,解碼器自身的解碼算法并不能發(fā)現(xiàn)此類錯(cuò)誤,必須通過(guò)人工干 預(yù)才可發(fā)現(xiàn)。而宏塊級(jí)錯(cuò)誤既有解碼算法不能發(fā)現(xiàn)的語(yǔ)義錯(cuò)誤,也有其 可以發(fā)現(xiàn)的語(yǔ)法錯(cuò)誤。并且宏塊級(jí)視頻流占整個(gè)視頻流的絕大部分,所 以宏塊級(jí)容錯(cuò)相當(dāng)重要。
在現(xiàn)有技術(shù)中,解碼端的錯(cuò)誤隱藏技術(shù)主要是利用正確接收到的信 息來(lái)估計(jì)或恢復(fù)由于誤碼而產(chǎn)生錯(cuò)誤的數(shù)據(jù),可以有效解決信道誤碼帶來(lái)的視頻質(zhì)量下降問(wèn)題,是解碼端最常使用的容錯(cuò)方法。 發(fā)明內(nèi)容本發(fā)明的目的是提供一種基于邊界梯度運(yùn)算的視頻流容錯(cuò)方法。該 方法利用視頻流本身的特點(diǎn),可以實(shí)現(xiàn)有針對(duì)性的錯(cuò)誤檢測(cè),解決誤碼 帶來(lái)的圖像質(zhì)量畸變問(wèn)題。為實(shí)現(xiàn)上述的發(fā)明目的,本發(fā)明采用下述技術(shù)方案一種基于邊界梯度的視頻流容錯(cuò)方法,對(duì)視頻流進(jìn)行分層容錯(cuò)處理, 其特征在于-在宏塊一級(jí),首先根據(jù)宏塊的邊界梯度比變化判別某一宏塊是否發(fā) 生了錯(cuò)誤,然后,對(duì)出錯(cuò)的幀內(nèi)編碼幀宏塊進(jìn)行基于時(shí)域相關(guān)性的錯(cuò)誤 隱藏處理,對(duì)出錯(cuò)的幀間編碼幀宏塊采用基于空域相關(guān)性的錯(cuò)誤隱藏處理。其中,如果某一宏塊分別與其上方、下方和左方宏塊的邊界梯度比 中,任何兩個(gè)超過(guò)指定閾值,則判定該宏塊發(fā)生了錯(cuò)誤。所述對(duì)出錯(cuò)的幀內(nèi)編碼幀宏塊進(jìn)行錯(cuò)誤隱藏為采用基于最小均方差 的插值方法對(duì)于出錯(cuò)的幀內(nèi)宏塊分別進(jìn)行水平和垂直方向上的處理。所述對(duì)出錯(cuò)的幀間編碼幀宏塊進(jìn)行錯(cuò)誤隱藏處理包括如下步驟(1) 判斷運(yùn)動(dòng)矢量解碼有無(wú)錯(cuò)誤;(2) 如果運(yùn)動(dòng)矢量解碼沒(méi)有錯(cuò)誤,直接將運(yùn)動(dòng)矢量指示的參考幀中 的宏塊復(fù)制到待隱藏塊中;(3) 如果運(yùn)動(dòng)矢量出現(xiàn)了誤碼,首先根據(jù)塊匹配準(zhǔn)則在幾個(gè)候選運(yùn) 動(dòng)矢量中選取最優(yōu)運(yùn)動(dòng)矢量,然后將這個(gè)運(yùn)動(dòng)矢量作為待隱藏塊的運(yùn)動(dòng) 矢量進(jìn)行運(yùn)動(dòng)補(bǔ)償,得到待隱藏宏塊。本發(fā)明所提供的視頻流容錯(cuò)方法首先通過(guò)錯(cuò)誤限制方法將幀層錯(cuò)誤 限制在一定范圍內(nèi),接著根據(jù)宏塊層語(yǔ)法元素的語(yǔ)義及宏塊間的相關(guān)性, 提取出能夠檢測(cè)出宏塊錯(cuò)誤的檢測(cè)點(diǎn);最后對(duì)檢出錯(cuò)誤的宏塊進(jìn)行錯(cuò)誤 隱藏,從而完成宏塊層容錯(cuò)。有關(guān)實(shí)驗(yàn)結(jié)果表明,本發(fā)明所提供的視頻 流容錯(cuò)方法具有較好的通用性,恢復(fù)圖像的主客觀質(zhì)量也有顯著提高。
下面通過(guò)附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。
圖1為通用的MPEG-4視頻流的內(nèi)部結(jié)構(gòu)示意圖; 圖2為宏塊邊界處的梯度示意圖。圖3為coastguard第30幀的正常情況下三個(gè)邊界梯度比。 圖4為coastguard第30幀產(chǎn)生錯(cuò)誤后三個(gè)邊界的梯度比。 圖5顯示了對(duì)出錯(cuò)的宏塊采用插值的辦法來(lái)進(jìn)行處理的示意圖。 圖6顯示了針對(duì)三種不同測(cè)試序列的解碼圖像的PSNR值變化曲線。
具體實(shí)施方式
本發(fā)明所提供的視頻流容錯(cuò)方法的基本思路是對(duì)視頻流進(jìn)行分層 容錯(cuò)處理,在序列和幀一級(jí),利用編碼端插入的再同步標(biāo)記進(jìn)行錯(cuò)誤限 制;在宏塊一級(jí),綜合利用碼流語(yǔ)義與宏塊間的相關(guān)性特點(diǎn)進(jìn)行錯(cuò)誤檢 測(cè),對(duì)于檢測(cè)出錯(cuò)誤的宏塊,按Intra(幀內(nèi)編碼)和Inter(幀間編碼)編碼類 型分別相應(yīng)處理。由于宏塊編碼方式不同,決定了針對(duì)兩者的錯(cuò)誤修復(fù) 方式也具有不同特點(diǎn),通常分別采用基于空域相關(guān)性的錯(cuò)誤隱藏與基于時(shí)域相關(guān)性的錯(cuò)誤隱藏,自適應(yīng)進(jìn)行地錯(cuò)誤隱藏。從前述對(duì)對(duì)宏塊層的錯(cuò)誤分析可以看出,宏塊層語(yǔ)法元素錯(cuò)誤會(huì)造 成整個(gè)碼流混亂,如果不加以限制,會(huì)擴(kuò)散下去,不但導(dǎo)致本幀解碼錯(cuò) 誤,還可能損壞下一幀的起始碼,產(chǎn)生丟幀。因此,需將錯(cuò)誤局限在盡 量小的范圍內(nèi)以限制其傳播。本發(fā)明提出的解決辦法是通過(guò)在編碼輸 出碼流中插入再同步標(biāo)記,將碼流分割成若干個(gè)分割塊。若某分割塊出 現(xiàn)誤碼,其錯(cuò)誤不會(huì)蔓延到下一個(gè)分割塊,這樣就把錯(cuò)誤限制在了兩個(gè) 同步標(biāo)記之間,有效地限制了錯(cuò)誤傳播范圍。對(duì)于分割塊大小的選取,也是需要重點(diǎn)考慮的因素??梢詫⒄麕?有宏塊作為一個(gè)分割塊,這樣所需添加的冗余信息就少,但錯(cuò)誤限制效 果不好,某一個(gè)宏塊出現(xiàn)了誤碼會(huì)導(dǎo)致該幀內(nèi)所有后續(xù)宏塊解碼錯(cuò)誤。 如果以每一宏塊為一個(gè)分割塊,錯(cuò)誤限制效果最好,可將錯(cuò)誤限制在宏 塊內(nèi)部,但引入的冗余信息過(guò)多,額外占用大量帶寬,導(dǎo)致傳輸效率降 低。綜合考慮限制效果和冗余信息對(duì)圖像質(zhì)量的影響,本發(fā)明以一行宏 塊為分割單位,在每行宏塊的開始處加入再同步信息。下面具體介紹本發(fā)明所提供的基于邊界梯度的視頻流容錯(cuò)方法的具 體步驟1.錯(cuò)誤檢測(cè)準(zhǔn)確的錯(cuò)誤檢測(cè)是進(jìn)行錯(cuò)誤糾正的前提?,F(xiàn)有的檢錯(cuò)方法普遍存在 冗余信息大、檢錯(cuò)效率較低的缺點(diǎn)。本發(fā)明充分利用視頻流本身的特點(diǎn), 提供有針對(duì)性的錯(cuò)誤檢測(cè)。通常,視頻流序列級(jí)及幀級(jí)中的語(yǔ)法元素均為定長(zhǎng)碼,并且對(duì)于特 定的應(yīng)用環(huán)境,其語(yǔ)法元素具有固定的取值。這些語(yǔ)法元素不會(huì)隨視頻 內(nèi)容發(fā)生變化,解碼端利用該約定來(lái)對(duì)視頻流檢錯(cuò),當(dāng)發(fā)現(xiàn)語(yǔ)法元素的 取值不符合約定時(shí),則可判斷此處發(fā)生了錯(cuò)誤。宏塊級(jí)語(yǔ)法元素大部分 為變長(zhǎng)碼,其取值隨視頻內(nèi)容的不同而變化,無(wú)法根據(jù)特定的應(yīng)用環(huán)境 來(lái)進(jìn)行誤碼檢測(cè),但可以利用算術(shù)解碼的自檢錯(cuò)能力檢測(cè)誤碼。另外, 還可以根據(jù)解碼原理進(jìn)行一些額外的錯(cuò)誤檢測(cè),例如每個(gè)塊的系數(shù)個(gè)數(shù)不會(huì)超過(guò)64、運(yùn)動(dòng)矢量不會(huì)超過(guò)搜索窗口所限定的范圍等等。利用算術(shù)解碼的自檢錯(cuò)能力只能檢測(cè)出少量的語(yǔ)法元素錯(cuò)誤,如果碼字出現(xiàn)了誤碼但是其取值卻處于正確的范圍,算術(shù)解碼是檢測(cè)不出這 種錯(cuò)誤的。因此還需利用視頻本身的相關(guān)性,即圖像在大部分區(qū)域較為 平坦,具有較強(qiáng)相關(guān)性的特點(diǎn),空間上相鄰的象素值的差別非常小。通 常情況下,宏塊邊界處的象素值變化是平緩的,即對(duì)應(yīng)位置的象素差值 應(yīng)很小。在由于誤碼而產(chǎn)生錯(cuò)誤后,錯(cuò)誤宏塊的恢復(fù)象素值會(huì)發(fā)生突變, 即在邊界處出現(xiàn)跳變。因此,本發(fā)明利用這一特點(diǎn)建立模型考察當(dāng)前宏 塊是否發(fā)生了突變,如果突變超過(guò)一定閾值,則判定該宏塊出現(xiàn)了錯(cuò)誤。圖2所示為宏塊邊界處的梯度示意圖。根據(jù)當(dāng)前的熵編碼機(jī)制分析, 一個(gè)宏塊出現(xiàn)錯(cuò)誤后有可能會(huì)擴(kuò)散到其相鄰的右方宏塊,因此,本發(fā)明 在錯(cuò)誤檢測(cè)時(shí)不考慮右方宏塊的梯度變化。設(shè)當(dāng)前宏塊的坐標(biāo)為(/,y), M5"(0,&)表示當(dāng)前宏塊的第1行16個(gè)象 素值,MS^(l,/t)表示當(dāng)前宏塊的第2行象素值,M5,"(15,"表示其上方宏 塊的最后1行象素值。Z)/M"p為當(dāng)前宏塊上邊界的內(nèi)部梯度和(Difference Inside a Macroblock),表示當(dāng)前宏塊內(nèi)第1行與第2行象素差的和,則有Z)/M p (/, _/ ) = t |M5,(0," — (1," ( 1 )£>她;為當(dāng)前宏塊與上芳°宏塊的邊界梯度和(Difference Between Macroblocks),表示當(dāng)前宏塊第1行與其上方宏塊最后1行(第16行) 象素差的和。因此有£>層"/,_/) = 碼—u(15力l (2)由上述分析可知,通常情況下Z)/M^與Z^A/up的值應(yīng)該非常接近,令 、表示當(dāng)前宏塊的上邊界梯度比,貝IJ: <formula>formula see original document page 7</formula>、 Z^A/^與D/M,^分別為當(dāng)前宏塊與其下方及 左方宏塊的內(nèi)部及宏塊間梯度和。同理,可得出其計(jì)算公式。圖3至圖6顯示了針對(duì)幾個(gè)標(biāo)準(zhǔn)測(cè)試序列(涵蓋了簡(jiǎn)單紋理、簡(jiǎn)單 運(yùn)動(dòng)、中等運(yùn)動(dòng)、復(fù)雜紋理劇烈運(yùn)動(dòng)等不同特征的序列)的測(cè)試結(jié)果, 該結(jié)果表明不同序列的邊界梯度比近似符合高斯分布,即絕大多數(shù)分布 在(0, 3]區(qū)間內(nèi),尤其是在1附近。這個(gè)測(cè)試結(jié)果驗(yàn)證了在沒(méi)有錯(cuò)誤的 情況下,宏塊的邊界是平滑的。圖7為coastguard序列第30幀在誤碼后的解碼圖像,在箭頭所示宏 塊發(fā)生錯(cuò)誤后,下圖分別為該宏塊對(duì)應(yīng)的上、下、左三個(gè)邊界的梯度比。 可以看出,Aup, &■, 4/,三個(gè)統(tǒng)計(jì)量明顯高于正常值。正常情況下,三 個(gè)統(tǒng)計(jì)量大于2的概率很小,據(jù)統(tǒng)計(jì),不超過(guò)5%,艮口<formula>formula see original document page 7</formula>特殊情況下,只有當(dāng)圖像中某對(duì)象的邊緣紋理恰好與宏塊邊界重合 時(shí),此時(shí)邊界梯度比才會(huì)很大,正常情況下絕大多數(shù)的邊界梯度比是接 近1的。但發(fā)生錯(cuò)誤時(shí),錯(cuò)誤宏塊的邊界梯度比會(huì)顯著增大,因此通過(guò) 與正常情況下邊界梯度比的對(duì)比,可以判別該宏塊是否發(fā)生了錯(cuò)誤。由 公式(4) (6)可以看出,圖像中的對(duì)象紋理邊緣與宏塊邊界重合的 概率很小,而兩個(gè)邊緣與其邊界梯度比同時(shí)發(fā)生重合的概率更小,不超 過(guò)0.25%。因此,如果、,&■, ^V,中的任何兩個(gè)超過(guò)指定閾值,貝U 可判定該宏塊發(fā)生了錯(cuò)誤。2.錯(cuò)誤隱藏發(fā)現(xiàn)宏塊發(fā)生了錯(cuò)誤之后,需要對(duì)該出錯(cuò)宏塊進(jìn)行錯(cuò)誤隱藏。有關(guān) 實(shí)驗(yàn)結(jié)果表明當(dāng)視頻序列內(nèi)容變化平緩時(shí),鄰近幀的時(shí)間相關(guān)性十分 明顯,對(duì)Intra編碼幀采用基于時(shí)域相關(guān)性的錯(cuò)誤隱藏最好;而當(dāng)Inter 編碼幀出現(xiàn)場(chǎng)景切換時(shí),原有的時(shí)域相關(guān)性被打破,此時(shí)采用基于空域 相關(guān)性的錯(cuò)誤隱藏效果更好。因此,自適應(yīng)地選擇基于時(shí)域或空域的錯(cuò) 誤隱藏方法可以達(dá)到更好的效果。為此,根據(jù)前文所述的邊界梯度檢測(cè),
迸行宏塊邊界的運(yùn)動(dòng)活躍度評(píng)估,以自適應(yīng)地確定采用時(shí)域相關(guān)性還是 空域相關(guān)性的錯(cuò)誤隱藏。(1) Intra宏塊圖8顯示了對(duì)于出錯(cuò)的幀內(nèi)宏塊采用插值的辦法來(lái)進(jìn)行處理的示意 圖。圖中陰影部分分別代表當(dāng)前幀中待插值的宏塊與各相鄰宏塊在相接 處的像素。通過(guò)圖中陰影表示的像素插值出當(dāng)前宏塊,而使用的插值公式能夠保證插值結(jié)果的均方誤差最小,具體插值處理過(guò)程如下先在水平方向進(jìn)行插值Cw/reW(/, _/) = (17 — /)*丄e//(0, _/) /17 + / * i /g似(17, _/) /17 (13)其中,i, j代表當(dāng)前宏塊中像素點(diǎn)的橫坐標(biāo)和縱坐標(biāo),取值從1到 16。 Left(O, j)代表左邊宏塊中陰影部分表示的像素值,Right(17, j)代表 右邊宏塊中陰影部分表示的像素值,以下類同。再進(jìn)行豎直方向的插值-C謂W(/, _/) = (17 - /"晰,0) /17 + _/ * £>麵(/, 17) /17 (14)然后對(duì)水平插值和垂直插值的結(jié)果取平均,作為當(dāng)前宏塊的像素值。如果上、下、左、右各宏塊中有一個(gè)不存在,則相應(yīng)的水平或垂直 插值不做,如果都不存在,則直接復(fù)制參考幀中對(duì)應(yīng)宏塊的像素值到當(dāng) 前宏塊中。(2) Inter宏塊對(duì)于出錯(cuò)的Inter宏塊,如果運(yùn)動(dòng)矢量解碼沒(méi)有錯(cuò)誤,則使用該運(yùn)動(dòng) 矢量對(duì)宏塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,直接將運(yùn)動(dòng)矢量指示的參考幀中的宏塊拷貝 到待隱藏塊中;如果運(yùn)動(dòng)矢量也出現(xiàn)了誤碼,則首先根據(jù)塊匹配準(zhǔn)則在 幾個(gè)候選運(yùn)動(dòng)矢量中選取一個(gè)最好的運(yùn)動(dòng)矢量,然后將這個(gè)運(yùn)動(dòng)矢量作 為待隱藏塊的運(yùn)動(dòng)矢量進(jìn)行運(yùn)動(dòng)補(bǔ)償,得到待隱藏宏塊。通常情況下,圖像中空間相鄰宏塊的運(yùn)動(dòng)特征會(huì)很相似,具有相似 的運(yùn)動(dòng)矢量,MPEG-4編碼器也正是利用相鄰宏塊運(yùn)動(dòng)矢量的相關(guān)性對(duì)運(yùn) 動(dòng)矢量進(jìn)行差分編碼,從而提高了壓縮比。如果某宏塊的運(yùn)動(dòng)矢量出現(xiàn) 了誤碼,可以利用其周圍相鄰宏塊的運(yùn)動(dòng)矢量來(lái)估計(jì)該宏塊的運(yùn)動(dòng)矢量 候選運(yùn)動(dòng)矢量包括左方相鄰宏塊的運(yùn)動(dòng)矢量、左上相鄰宏塊的運(yùn)動(dòng)矢量、 上方相鄰宏塊的運(yùn)動(dòng)矢量、右上相鄰宏塊的運(yùn)動(dòng)矢量、前四個(gè)運(yùn)動(dòng)矢量 的平均值、0值運(yùn)動(dòng)矢量。如果上述的四個(gè)相鄰宏塊中某宏塊發(fā)生誤碼,
則將相應(yīng)的運(yùn)動(dòng)矢量從候選運(yùn)動(dòng)矢量中去除,運(yùn)動(dòng)矢量的平均值也要做相應(yīng)改動(dòng)。本發(fā)明將利用如下規(guī)則從侯選中選取合適的運(yùn)動(dòng)矢量。 令w。 ( j 5)"。 (16)"=!>" + £)丄 (17)其中,/(;c,y,")表示第n幀恢復(fù)圖像中坐標(biāo)為(x,力的像素值,《,^表 示運(yùn)動(dòng)矢量J的水平分量和垂直分量,Oc。,y。)表示待隱藏塊的開始像素 (左上像素)的坐標(biāo),A、 Z^分別表示使用運(yùn)動(dòng)矢量"進(jìn)行錯(cuò)誤隱藏后 的宏塊與其上方相鄰宏塊及左方相鄰宏塊在相接處的像素差之和。"值越小,表明運(yùn)動(dòng)補(bǔ)償后的宏塊與相鄰宏塊在邊界處的連續(xù)性越 強(qiáng),對(duì)應(yīng)的運(yùn)動(dòng)矢量就是最優(yōu)的運(yùn)動(dòng)矢量,將其作為實(shí)際運(yùn)動(dòng)矢量來(lái)對(duì) 待隱藏宏塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,錯(cuò)誤隱藏的效果最好。為了驗(yàn)證本發(fā)明提出的視頻流容錯(cuò)方法,選取了四個(gè)典型的標(biāo)準(zhǔn)測(cè) 試序列Football (C類序列,紋理復(fù)雜,運(yùn)動(dòng)劇烈)、Coastguard (B類序 列,紋理比較豐富,運(yùn)動(dòng)中等,背景運(yùn)動(dòng))、Foreman (B類序列,紋理比 較豐富,運(yùn)動(dòng)中等,背景相對(duì)靜止)和Mother (A類序列,紋理簡(jiǎn)單, 運(yùn)動(dòng)緩慢)進(jìn)行了對(duì)比實(shí)驗(yàn),其格式為CIF格式,幀率為100幀,編碼 位率為256Kbps。對(duì)于誤碼錯(cuò)誤,國(guó)際電信聯(lián)盟定義了基于3GPP/3GPP2的誤碼網(wǎng)絡(luò)仿 真工具,其中包含6種不同模式的錯(cuò)誤文件,比特誤碼率從10"到10-3, 用以模擬不同誤碼率的信道。本發(fā)明選取了誤碼率為5xl0"的錯(cuò)誤模式文 件進(jìn)行了測(cè)試。實(shí)驗(yàn)結(jié)果如圖6所示??梢钥闯?,本發(fā)明提出的視頻流容錯(cuò)方案對(duì)這些典型的標(biāo)準(zhǔn)測(cè)試序 列均具有明顯的效果,具有通用性。圖6給出了解碼圖像的PSNR值的變 化曲線,其中三條曲線分別表示視頻流無(wú)誤碼(noError)、加入隨機(jī)錯(cuò)誤 并進(jìn)行本發(fā)明所述的容錯(cuò)處理(with Conceal)、加入同樣的隨機(jī)錯(cuò)誤但沒(méi) 有進(jìn)行容錯(cuò)處理(no Conceal)三種情況下解碼圖像的PSNR隨幀數(shù)的變化
曲線。由此可以看出隨機(jī)錯(cuò)誤的發(fā)生對(duì)圖像質(zhì)量抖動(dòng)的影響十分劇烈, 本發(fā)明提出的視頻流容錯(cuò)方案對(duì)這些典型的標(biāo)準(zhǔn)測(cè)試序列均具有明顯的 改善效果,具有通用性。以上對(duì)本發(fā)明所提供的基于邊界梯度運(yùn)算的視頻流容錯(cuò)方法進(jìn)行了 詳細(xì)的說(shuō)明。對(duì)本領(lǐng)域的一般技術(shù)人員而言,在不背離本發(fā)明實(shí)質(zhì)精神 的前提下對(duì)它所做的任何顯而易見的改動(dòng),都將構(gòu)成對(duì)本發(fā)明專利權(quán)的 侵犯,將承擔(dān)相應(yīng)的法律責(zé)任。
權(quán)利要求
1.一種基于邊界梯度的視頻流容錯(cuò)方法,對(duì)視頻流進(jìn)行分層容錯(cuò)處理,其特征在于在宏塊一級(jí),首先根據(jù)宏塊的邊界梯度比變化判別某一宏塊是否發(fā)生了錯(cuò)誤,然后,對(duì)出錯(cuò)的幀內(nèi)編碼幀宏塊進(jìn)行基于時(shí)域相關(guān)性的錯(cuò)誤隱藏處理,對(duì)出錯(cuò)的幀間編碼幀宏塊采用基于空域相關(guān)性的錯(cuò)誤隱藏處理。
2. 如權(quán)利要求1所述的基于邊界梯度的視頻流容錯(cuò)方法,其特征在于如果某一宏塊分別與其上方、下方和左方宏塊的邊界梯度比中,任 何兩個(gè)超過(guò)指定閾值,則判定該宏塊發(fā)生了錯(cuò)誤。
3. 如權(quán)利要求1所述的基于邊界梯度的視頻流容錯(cuò)方法,其特征在于所述對(duì)出錯(cuò)的幀內(nèi)編碼幀宏缺進(jìn)行錯(cuò)誤隱藏為采用基于最小均方差 的插值方法對(duì)于出錯(cuò)的幀內(nèi)宏塊分別進(jìn)行水平和垂直方向上的處理。
4. 如權(quán)利要求1所述的基于邊界梯度的視頻流容錯(cuò)方法,其特征在于所述對(duì)出錯(cuò)的幀間編碼幀宏塊進(jìn)行錯(cuò)誤隱藏處理包括如下步驟(1) 判斷運(yùn)動(dòng)矢量解碼有無(wú)錯(cuò)誤;(2) 如果運(yùn)動(dòng)矢量解碼沒(méi)有錯(cuò)誤,直接將運(yùn)動(dòng)矢量指示的參考幀中 的宏塊復(fù)制到待隱藏塊中;(3) 如果運(yùn)動(dòng)矢量出現(xiàn)了誤碼,首先根據(jù)塊匹配準(zhǔn)則在幾個(gè)候選運(yùn) 動(dòng)矢量中選取最優(yōu)運(yùn)動(dòng)矢量,然后將這個(gè)運(yùn)動(dòng)矢量作為待隱藏塊的運(yùn)動(dòng) 矢量進(jìn)行運(yùn)動(dòng)補(bǔ)償,得到待隱藏宏塊。
全文摘要
本發(fā)明提出了一種基于邊界梯度的視頻流容錯(cuò)方法。該方法將視頻流分為序列、幀、宏塊三個(gè)級(jí)別,根據(jù)各個(gè)級(jí)別中語(yǔ)法元素的特點(diǎn),采取了不同的容錯(cuò)策略,對(duì)序列級(jí)和幀級(jí)要根據(jù)特定的應(yīng)用環(huán)境進(jìn)行容錯(cuò),宏塊級(jí)容錯(cuò)則通過(guò)采用有效的錯(cuò)誤限制、綜合碼流語(yǔ)義及邊界梯度的錯(cuò)誤檢測(cè)與自適應(yīng)的錯(cuò)誤隱藏技術(shù)三個(gè)步驟來(lái)進(jìn)行。實(shí)驗(yàn)結(jié)果表明,使用本視頻流容錯(cuò)方法后,解碼器恢復(fù)圖像的主客觀質(zhì)量也都有顯著提高。
文檔編號(hào)H04N7/64GK101163250SQ20061011361
公開日2008年4月16日 申請(qǐng)日期2006年10月9日 優(yōu)先權(quán)日2006年10月9日
發(fā)明者東 姜, 波 李, 胡海苗 申請(qǐng)人:北京航空航天大學(xué)