專利名稱:Mpeg-4視頻碼流的錯誤恢復方法和裝置的制作方法
技術領域:
本發明涉及一種對由于信道誤碼嚴重需要進行錯誤恢復的方法和裝置,尤其涉及針對MPEG-4視頻碼流出現誤碼時進行錯誤恢復的方法和裝置。
背景技術:
在目前的視頻業務中,由于后續解碼的容錯性能不是很好,當信道誤碼比較嚴重時,在解碼器解碼失敗的情況下會有很多花屏現象,嚴重影響視頻質量。目前對于視頻錯誤恢復的技術主要集中在對壓縮視頻碼流解碼到像素域,然后在像素域通過各種算法來恢復。主要通過解碼后像素域的圖像錯誤塊的左右上下宏塊的空間相關性來恢復錯誤宏塊的圖像,通過解碼后像素域的圖像錯誤塊對應位置的前一幀相鄰宏塊的信息來恢復當前宏塊的運動矢量等信息。這種方法的好處在于由于最后是在像素域進行錯誤恢復,所以錯誤恢復效果比較好。但是解碼到像素域的錯誤恢復的方法有比較大的局限性,主要表現在其需要在解碼器內部實現,對于第三方提供的解碼器如果沒有內部實現錯誤恢復,則后續錯誤恢復算法基本沒有可能實現。同時,即使在像素域進行錯誤恢復,其計算復雜度也相當大。
發明內容
本發明的目的在于解決上述問題,提供了一種MPEG-4視頻碼流的錯誤恢復方法, 能大大減少由于解碼器不能正確解碼而造成的主觀質量下降的問題,并且與通常的像素域錯誤恢復相比計算復雜度低。本發明的另一目的在于提供了一種MPEG-4視頻碼流的錯誤恢復裝置。本發明的技術方案為本發明公開了一種MPEG-4視頻碼流的錯誤恢復方法,在像素域解碼之前的壓縮域進行錯誤恢復,該方法包括語法層糾錯步驟對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續解碼器規范的視頻碼流;宏塊層糾錯步驟根據錯誤宏塊所在的位置分別進行相應的處理,進行宏塊層的錯誤恢復。根據本發明的MPEG-4視頻碼流的錯誤恢復方法的一實施例,在語法層糾錯步驟中,進一步包括依次對MPEG-4 視頻碼流的 VisualObjectkquence、VisualObject、 VideoObjectLayer,VideoObjectPlane四個語法結構進行分析并糾錯,按照MPEG-4標準的語義規范對該四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。根據本發明的MPEG-4視頻碼流的錯誤恢復方法的一實施例,宏塊層糾錯步驟進一步包括對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,通過相鄰兩幀之間的空間相關性進行錯誤恢復;對于當前錯誤宏塊在I幀之后的一個P幀內的情況,用下一個P幀替代當前錯誤宏塊所在的P幀;對于當前錯誤宏塊在P幀之后的一個P幀內的情況,通過當前錯誤宏塊所在幀的運動趨勢的計算方法來預測當前錯誤宏塊以及后續宏塊的運動矢量,且不對當前錯誤宏塊的殘差像素值進行編碼,而是用當前錯誤宏塊所在幀的前一幀對應位置宏塊的像素值進行錯誤恢復。根據本發明的MPEG-4視頻碼流的錯誤恢復方法的一實施例,對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,細化的處理包括將當前幀的編碼類型變為P幀,同時將從當前錯誤宏塊開始到幀結束的宏塊的編碼類型改成SKIP模式,沿用前一個P幀的信息,使當前錯誤宏塊之前的宏塊的編碼類型維持INTRA模式。根據本發明的MPEG-4視頻碼流的錯誤恢復方法的一實施例,對于當前錯誤宏塊在P幀之后的一個P幀內的情況,細化的處理包括以當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊與上一個幀與之對應的一行之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量,Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η 為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢;計算當前錯誤宏塊的殘差運動矢量,計算公式為MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O)其中MV(Previ0Us)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media) 為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量;將當前錯誤宏塊的殘差運動矢量進行編碼,以生成更新后的MPEG-4視頻碼流。本發明還公開了一種MPEG-4視頻碼流的錯誤恢復裝置,位于MPEG-4解碼器之前, 對需要解碼的MPEG-4視頻碼流進行預處理,該裝置進一步包括碼流讀取模塊,接收需要解碼的MPEG-4視頻碼流;語法層糾錯模塊,連接碼流讀取模塊,對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合 MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續MPEG-4解碼器規范的MPEG-4視頻碼流;宏塊層處理模塊,根據錯誤宏塊所在的位置分別進行相應的處理,獲得錯誤宏塊的殘差運動矢量以及編碼模式信息;碼流糾錯模塊,根據錯誤宏塊的殘差運動矢量以及編碼模式信息通過修改比特值的方式完成對MPEG-4視頻碼流的糾錯。根據本發明的MPEG-4視頻碼流的錯誤恢復裝置的一實施例,在語法層糾錯模塊中,依次對 MPEG-4 視頻碼流的 VisualOb jectSequence>VisualObject>VideoObjectLayer> VideoObjectPlane四個語法結構進行分析并糾錯,按照MPEG-4標準的語義規范對該四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。根據本發明的MPEG-4視頻碼流的錯誤恢復裝置的一實施例,宏塊層處理模塊進一步包括第一類錯誤宏塊處理單元,對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,通過相鄰兩幀之間的空間相關性進行錯誤恢復;第二類錯誤宏塊處理單元,對于當前錯誤宏塊在I幀之后的一個P幀內的情況,用下一個P幀替代當前錯誤宏塊所在的P幀;第三類錯誤宏塊處理單元,對于當前錯誤宏塊在P幀之后的一個P幀內的情況,通過當前錯誤宏塊所在幀的運動趨勢的計算方法來預測當前錯誤宏塊以及后續宏塊的運動矢量,且不對當前錯誤宏塊的殘差像素值進行編碼,而是用當前錯誤宏塊所在幀的前一幀對應位置宏塊的像素值進行錯誤恢復。根據本發明的MPEG-4視頻碼流的錯誤恢復裝置的一實施例,該第一類錯誤宏塊處理單元的具體處理是將當前幀的編碼類型變為P幀,同時將從當前錯誤宏塊開始到幀結束的宏塊的編碼類型改成SKIP模式,沿用前一個P幀的信息,使當前錯誤宏塊之前的宏塊的編碼類型維持INTRA模式。根據本發明的MPEG-4視頻碼流的錯誤恢復裝置的一實施例,該第三類錯誤宏塊處理單元進一步包括錯誤宏塊運動趨勢計算單元,以當前錯誤宏塊所在幀的存在誤碼的行的上一個行宏塊與上一個幀與之對應的一行之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量,Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η 為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢;殘差運動矢量計算單元,計算當前錯誤宏塊的殘差運動矢量,計算公式為MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O)其中MV(Previ0Us)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media) 為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量。本發明對比現有技術有如下的有益效果本發明主要是在壓縮域進行錯誤恢復, 而并未進行像素域的解碼,與傳統的像素域錯誤恢復相比復雜度低。而本方案的實現是在解碼器之前添加一個預解碼模塊,將MPEG-4視頻碼流恢復成符合相應標準的規范碼流,以便后續解碼器能夠正確解碼,從而保證后續解碼不會出現花屏等嚴重的問題。由于其通用性好獨立性高,添加在MPEG-4解碼器前面,所以不會對后續的解碼器產生依賴。
圖1是本發明的MPEG-4視頻碼流的錯誤恢復方法的一個較佳實施例的流程圖。圖2是本發明的MPEG-4視頻碼流的錯誤恢復裝置的一個較佳實施例的原理圖。
圖3是本發明的宏塊層處理模塊的細化原理圖。
具體實施例方式下面結合附圖和實施例對本發明作進一步的描述。MPEG-4視頻碼流的錯誤恢復方法的實施例圖1示出了本發明的MPEG-4視頻碼流的錯誤恢復方法的實施例的詳細流程。請參見圖1,下面是對本方法流程中各個步驟的說明。本實施例的方法是在像素域解碼之前的壓縮域進行的錯誤恢復。主要是分為兩個階段的糾錯,第一個階段是語法層糾錯步驟,第二個階段是宏塊層糾錯步驟。在第一階段, 主要是對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續編碼器規范的視頻碼流。在第二階段,是根據錯誤宏塊所在的位置分別進行相應的處理,進行宏塊層的錯誤恢
Μ. ο步驟SlOO 進行語法層糾錯。語法層的糾錯是對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準進行比較,在當前語法變量不符合MPEG-4標準規定或者前后有矛盾的情況下,按照MPEG-4準備生成更新后的語法變量并進行編碼重構,以提供符合后續解碼器規范的視頻碼流。進一步的,依次對MPEG-4 視頻碼流的 VisualObjectkquence、VisualObject、 VideoObjectLayer,VideoObjectPlane四個語法結構進行分析并糾錯,按照MPEG-4標準的語義規范對這四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。步驟S102 對當前幀中的每一個宏塊進行處理。由于MPEG-4是壓縮編碼碼流,所以一旦一幀中某一個宏塊出現了無法,其之后的當前幀的所有信息都不能利用,因此需要一個預解碼錯誤恢復的處理。步驟S104 判斷當前誤碼宏塊所在的幀是否為I幀且前一幀是否為P幀。如果成立,進入步驟S106,如果不成立,進入步驟S108。步驟S106 將當前幀的編碼類型變為P巾貞,同時將當前錯誤宏塊開始到幀結束的宏塊的編碼類型改為SKIP (跳過編碼模式)模式,并沿用前一個P幀的信息,使當前錯誤宏塊之前的宏塊的編碼類型維持INTRA(幀內編碼模式)模式。步驟S108 判斷當前錯誤宏塊是否在工幀之后的一個P幀內。如果成立則進入步驟S110,如果不成立則進入步驟S112。步驟SllO 用下一個P幀替代當前錯誤宏塊所在的P幀。步驟S112 判斷當前錯誤宏塊是否在P幀之后的一個P幀中。如果成立則進入步驟S114,否則返回步驟S102中進入下一個宏塊的處理。步驟S114 獲得當前錯誤宏塊的運動趨勢。在本實施例中是使用通過當前幀的運動趨勢的計算方法來預測當前錯誤宏塊及后續宏塊的運動矢量,而宏塊的殘差像素值并不編碼仍用前一幀對應位置宏塊的像素值的
8方法來做錯誤恢復。步驟S116 通過前一幀同位置宏塊的運動矢量、當前宏塊預測運動矢量、運動趨勢計算當前錯誤宏塊的殘差值。首先,以當前錯誤宏塊所在幀的存在誤碼的上一行宏塊與上一個幀與之對應的一行宏塊之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量,Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η 為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢。其次,計算當前錯誤宏塊的殘差運動矢量,計算公式為MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O)其中MV(Previ0Us)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media) 為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量。步驟S118 判斷當前錯誤宏塊是否為最后一個宏塊。如果是則進入步驟S120,否則返回步驟S102進行下一個宏塊的處理。步驟S120 重新生成新的MPEG-4碼流。將當前錯誤宏塊的殘差運動矢量進行編碼,以生成更新后的MPEG-4視頻碼流。MPEG-4視頻碼流的錯誤恢復裝置的實施例圖2示出了本發明的MPEG-4視頻碼流的錯誤恢復裝置的實施例。錯誤恢復裝置位于MPEG-4解碼器之前,對需要解碼的MPEG-4視頻碼流進行預處理。請參見圖2,本實施例的MPEG-4視頻碼流的錯誤恢復裝置包括依次連接的四個模塊碼流讀取模塊10、語法層糾錯模塊12、宏塊層處理模塊14以及碼流糾錯模塊16。碼流讀取模塊10接收需要解碼的MPEG-4視頻碼流,將接收到的MPEG-4視頻碼流傳遞給下一個的語法層糾錯模塊12。語法層糾錯模塊12對MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續 MPEG-4解碼器規范的MPEG-4視頻碼流,然后將處理后的碼流交給下一個的宏塊層處理模塊14。在語法層糾錯模塊12中,依次對MPEG-4視頻碼流的VisualObjecUequence、 VisualObject、VideoObjectLayer, VideoObjectPlane 四個語法結構進行分析糾錯,按照 MPEG-4標準的語義規范對這四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。在經過語法層糾錯模塊12的處理后將已經重新生成的語法層糾正好的MPEG-4碼流傳遞給下一個的宏塊層處理模塊14。宏塊層處理模塊14根據錯誤宏塊所在的位置分別進行相應的處理,獲得錯誤宏塊的殘差運動矢量以及編碼模式信息。請同時參照圖3,宏塊層處理模塊14進一步包括第一類錯誤宏塊處理單元140、第二類錯誤宏塊處理單元142以及第三類錯誤宏塊處理單元 144。第一類錯誤宏塊處理單元140是對當前錯誤宏塊在I幀內且前一幀為P幀的情況進行處理,主要是通過相鄰兩幀之間的空間相關性進行錯誤恢復。具體的處理過程是將當前幀的編碼類型變為P幀,同時將從當前錯誤宏塊開始到幀結束的宏塊的編碼類型改為 SKIP模式,并沿用前一個P幀的信息,使當前錯誤宏塊之前的編碼類型維持INTRA模式。第二類錯誤宏塊處理單元142是對當前錯誤宏塊在I幀之后的一個P幀內的情況進行處理,用下一個P幀替代當前錯誤宏塊所在的P幀。第三類錯誤宏塊處理單元144是對當前錯誤宏塊在P幀之后的一個P幀內的情況進行處理,通過當前錯誤宏塊所在幀的運動趨勢的計算方法來預測當前錯誤宏塊以及后續宏塊的運動矢量,且不對當前錯誤宏塊的殘差像素值進行編碼,而是用當前錯誤宏塊所在幀的前一幀對應位置宏塊的像素值進行錯誤恢復。對于這個第三類錯誤宏塊處理單元144,是由錯誤宏塊運動趨勢計算單元1440和殘差運動矢量計算單元1442共同構成。對于錯誤宏塊運動趨勢計算單元1440,以當前錯誤宏塊所在幀的存在誤碼的行的上一個行宏塊與上一個幀與之對應的一行宏塊之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量,Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η 為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢。對于殘差運動矢量計算單元1442,計算當前錯誤宏塊的殘差運動矢量,計算公式為MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O)其中MV(Previ0Us)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media) 為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量。最后,宏塊層處理模塊14將新的殘差運動矢量以及編碼模式信息傳輸給下一個的碼流糾錯模塊16。碼流糾錯模塊16根據錯誤宏塊的殘差運動矢量以及編碼模式信息通過修改比特值的方法完成對MPEG-4視頻碼流的糾錯。本發明的主要改進點在于,一是在壓縮域進行錯誤恢復而并未進行像素域解碼, 一是通過計算當前幀的整體運動趨勢進行錯誤恢復。與傳統的像素域錯誤恢復相比復雜度低、通用性好、獨立性高,由于處理是在MPEG-4解碼器之前進行的,因而不會對后續的解碼器產生依賴。上述實施例是提供給本領域普通技術人員來實現或使用本發明的,本領域普通技術人員可在不脫離本發明的發明思想的情況下,對上述實施例做出種種修改或變化,因而本發明的保護范圍并不被上述實施例所限,而應該是符合權利要求書提到的創新性特征的最大范圍。
權利要求
1.一種MPEG-4視頻碼流的錯誤恢復方法,在像素域解碼之前的壓縮域進行錯誤恢復, 該方法包括語法層糾錯步驟對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續解碼器規范的視頻碼流;宏塊層糾錯步驟根據錯誤宏塊所在的位置分別進行相應的處理,進行宏塊層的錯誤恢復。
2.根據權利要求1所述的MPEG-4視頻碼流的錯誤恢復方法,其特征在于,在語法層糾錯步驟中,進一步包括依次對 MPEG-4 視頻碼流的 VisualObjectkquence、VisualObject、 VideoObjectLayer,VideoObjectPlane四個語法結構進行分析并糾錯,按照MPEG-4標準的語義規范對該四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。
3.根據權利要求1所述的MPEG-4視頻碼流的錯誤恢復方法,其特征在于,宏塊層糾錯步驟進一步包括對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,通過相鄰兩幀之間的空間相關性進行錯誤恢復;對于當前錯誤宏塊在I幀之后的一個P幀內的情況,用下一個P幀替代當前錯誤宏塊所在的P幀;對于當前錯誤宏塊在P幀之后的一個P幀內的情況,通過當前錯誤宏塊所在幀的運動趨勢的計算方法來預測當前錯誤宏塊以及后續宏塊的運動矢量,且不對當前錯誤宏塊的殘差像素值進行編碼,而是用當前錯誤宏塊所在幀的前一幀對應位置宏塊的像素值進行錯誤恢復。
4.根據權利要求3所述的MPEG-4視頻碼流的錯誤恢復方法,其特征在于,對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,細化的處理包括將當前幀的編碼類型變為P幀,同時將從當前錯誤宏塊開始到幀結束的宏塊的編碼類型改成SKIP模式,沿用前一個P幀的信息,使當前錯誤宏塊之前的宏塊的編碼類型維持 INTRA模式。
5.根據權利要求3所述的MPEG-4視頻碼流的錯誤恢復方法,其特征在于,對于當前錯誤宏塊在P幀之后的一個P幀內的情況,細化的處理包括以當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊與上一個幀與之對應的一行之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量, Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢;計算當前錯誤宏塊的殘差運動矢量,計算公式為MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O)其中MV(Previous)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media)為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量;將當前錯誤宏塊的殘差運動矢量進行編碼,以生成更新后的MPEG-4視頻碼流。
6.一種MPEG-4視頻碼流的錯誤恢復裝置,位于MPEG-4解碼器之前,對需要解碼的 MPEG-4視頻碼流進行預處理,該裝置進一步包括碼流讀取模塊,接收需要解碼的MPEG-4視頻碼流;語法層糾錯模塊,連接碼流讀取模塊,對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4 標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構, 以提供符合后續MPEG-4解碼器規范的MPEG-4視頻碼流;宏塊層處理模塊,根據錯誤宏塊所在的位置分別進行相應的處理,獲得錯誤宏塊的殘差運動矢量以及編碼模式信息;碼流糾錯模塊,根據錯誤宏塊的殘差運動矢量以及編碼模式信息通過修改比特值的方式完成對MPEG-4視頻碼流的糾錯。
7.根據權利要求6所述的MPEG-4視頻碼流的錯誤恢復裝置,其特征在于,在語法層糾錯模塊中,依次對MPEG-4視頻碼流的VisualOb jectkquence、VisualOb ject、 VideoObjectLayer,VideoObjectPlane四個語法結構進行分析并糾錯,按照MPEG-4標準的語義規范對該四個語法結構按照比特位逐次糾正,使MPEG-4視頻碼流符合后續解碼器規范的要求。
8.根據權利要求6所述的MPEG-4視頻碼流的錯誤恢復裝置,其特征在于,宏塊層處理模塊進一步包括第一類錯誤宏塊處理單元,對于當前錯誤宏塊在I幀內且前一幀為P幀的情況,通過相鄰兩幀之間的空間相關性進行錯誤恢復;第二類錯誤宏塊處理單元,對于當前錯誤宏塊在I幀之后的一個P幀內的情況,用下一個P幀替代當前錯誤宏塊所在的P幀;第三類錯誤宏塊處理單元,對于當前錯誤宏塊在P幀之后的一個P幀內的情況,通過當前錯誤宏塊所在幀的運動趨勢的計算方法來預測當前錯誤宏塊以及后續宏塊的運動矢量, 且不對當前錯誤宏塊的殘差像素值進行編碼,而是用當前錯誤宏塊所在幀的前一幀對應位置宏塊的像素值進行錯誤恢復。
9.根據權利要求8所述的MPEG-4視頻碼流的錯誤恢復裝置,其特征在于,該第一類錯誤宏塊處理單元的具體處理是將當前幀的編碼類型變為P幀,同時將從當前錯誤宏塊開始到幀結束的宏塊的編碼類型改成SKIP模式,沿用前一個P幀的信息,使當前錯誤宏塊之前的宏塊的編碼類型維持INTRA模式。
10.根據權利要求8所述的MPEG-4視頻碼流的錯誤恢復裝置,其特征在于,該第三類錯誤宏塊處理單元進一步包括錯誤宏塊運動趨勢計算單元,以當前錯誤宏塊所在幀的存在誤碼的行的上一個行宏塊與上一個幀與之對應的一行之間的運動矢量的差值的平均值作為運動趨勢,計算公式為MV (trend) = (Pre_MV
[n]-MV
[n])/n 公式(1)其中MV
[η]為當前錯誤宏塊所在幀的存在誤碼的行的上一行宏塊的運動矢量,Pre_MV
[η]為當前錯誤宏塊所在幀的上一個幀與之對應的一行宏塊的運動矢量,η為圖像中一行宏塊的數量值,MV(trend)為當前錯誤宏塊的運動趨勢;殘差運動矢量計算單元,計算當前錯誤宏塊的殘差運動矢量,計算公式為 MV (det al) = MV (previous) -MV (media) +MV (trend)公式 O) 其中MV(Previous)為當前錯誤宏塊前一幀對應位置宏塊的運動矢量,MV(media)為預測運動矢量,MV(detal)為當前錯誤宏塊的殘差運動矢量。
全文摘要
本發明公開了MPEG-4視頻碼流的錯誤恢復方法和裝置,能大大減少由于解碼器不能正確解碼而造成的主觀質量下降的問題,并且與通常的像素域錯誤恢復相比計算復雜度低。其技術方案為方法包括語法層糾錯步驟對當前的MPEG-4視頻碼流進行僅語法頭的解碼,對解碼得到的語法頭各個語法變量與MPEG-4標準比較,在當前語法變量不符合MPEG-4標準規定或者前后矛盾的情況下,按照MPEG-4標準生成更新的語法變量并進行編碼重構,以提供符合后續解碼器規范的視頻碼流;宏塊層糾錯步驟根據錯誤宏塊所在的位置分別進行相應的處理,進行宏塊層的錯誤恢復。
文檔編號H04N7/26GK102469315SQ201010546749
公開日2012年5月23日 申請日期2010年11月16日 優先權日2010年11月16日
發明者王宇泉 申請人:聯芯科技有限公司