專利名稱:基于錯誤隱蔽的編碼數字圖像的方法
技術領域:
本發明涉及編碼一個數字圖像的一種方法,該數字圖像在一個二進制數據流中包括宏數據塊,該方法包括一個估計步驟,用于宏數據塊,經一個錯誤隱蔽方法重新構建它的容量,一個判定步驟,用于從編碼中除去宏數據塊,基于被重新構建的該宏數據塊進行從編碼中除去一個宏數據塊的一個判定。
背景技術:
根據由W.Zeng和B.Liu在用于視頻技術的電路和系統的IEEE學報上的文章“Geometric-Structure-Based Error Concealment with Novel Application inBlock-Based Low-Bit-Rate Coding”,Vol.9,No.4,1999年6月,這種類型的編碼方法是熟知的。該文章描述了排除屬于宏數據塊的數據塊的方法,數據塊組合,所述宏數據塊能夠被相互編碼或內部編碼。該文章建議用視頻編碼標準協調這種數據塊排除,而且,在第一種解決方式中,通過用常數塊,例如黑塊,代替未編碼的塊,然后由接收機檢測,或者,在第二種解決方式中,當一個宏數據塊中的所有數據塊被除去時,通過修改字符,該字符定義一個宏數據塊內哪個數據塊被編碼,該修改與宏數據塊的地址字的修改同時發生。分配確定數量的比特以便在相互編碼的宏數據塊中傳遞排除的數據塊的地址。
本發明與下列考慮有關MPEG-4標準定義了一種編碼語法和建議了確定數量的工具來用于管理傳輸錯誤。這些用于管理傳輸錯誤的工具受到某種約束。在這些工具當中,MPEG-4標準建議用于再同步二進制數據流的工具周期地把再同步標記插入數據流中。由接收機使用這些標記,整個解碼過程中由于它們的存在,接收機被重新同步。當在數據流中出現錯誤時,接收機不能讀出更多的數據直到它檢測到一個隨后的再同步標記。由標記以及在該標記和隨后標記之間的數據所形成的組被稱為一個視頻數據分組。再同步標記被包括在視頻數據分組的一個首標單元中。首標單元還包含視頻數據分組的第一宏數據塊的數,以允許空間再同步,和允許接收機繼續解碼的參數。隨后的宏數據塊的數不出現在數據流中。MPEG-4標準所定義的再同步可以如點再同步這樣被限制,因為它的存在只用于一個流中的確定數據項,數據流的其余部分被動地翻譯。按照前述引用文章中所建議的第二種解決方式,在此情況下當然不可能改變宏數據塊的地址或表明沒被編碼的數據塊。如果宏數據塊已經被排除,所有的宏數據塊被這樣解碼和被順序的放置,導致圖像元素的圖形數據的“遲滯“誤差。引用文章中建議的第一種解決方式包括由解碼器檢測常數塊二取代除去的數據塊。在MPEG-4語法中沒有作出這種檢測的規定,并且在多數接收機上將引起圖形錯誤。
發明內容
本發明的一個目的是建議一種編碼方法,包括除去具有確定容量的宏數據塊以便根據與編碼標準兼容的編碼重新構建,該編碼標準包括點再同步裝置。
實際上,按照本發明,前言段落中所述的一種編碼方法的特征在于,它還包括在排除一個或多個宏數據塊之后,把一個再同步標記插入二進制數據流的一個步驟。
再同步標記代表數據流中確定的比特數(至少在17和23比特之間)。本發明的另一個目的是通過排除宏數據塊減少與數字圖像的傳輸相關的二進制數據流。按照本發明給出的事實,排除一個,或更普遍的排除幾個宏數據塊導致插入代表確定比特數的一個再同步標記,這種宏數據塊的排除對于減少二進制數據流的大小可以是無關緊要的。
在一個特別優選的實施例中,編碼方法的特征在于判定步驟包括一個子步驟,評估通過一個宏數據塊的排除所引起的二進制數據流的減少,隨著根據所述排除引起的二進制數據流的減少的一個函數作出排除宏數據塊的判定。
本發明可以在一個編碼器中被實現,例如一個視頻編碼器。此外,本發明還涉及諸如通過按照本發明的方法所產生的一種數據流。因此,本發明還涉及一種解碼方法和一種解碼器,允許正確地解碼諸如通過按照本發明的方法產生的一個數據流。最后,本發明涉及一個計算機程序,用于實現按照本發明方法的各種步驟。
附圖簡述結合參考下述的實施例,通過對非限制示例的闡述,本發明的這些和其他方面將更易理解。
在附圖中
圖1是表示一個數字圖像的編碼方法的各種步驟的一個功能圖,該數字圖像包括在一個二進制數據流中的宏數據塊。
圖2顯示在一個流上按照本發明的方法的效果,該數據流包括一個數字圖像的編碼的數據,該數字圖像包括宏數據塊。
圖3是按照本發明的一個視頻編碼器的示意圖。
圖4是按照本發明的一個視頻解碼器的示意圖。
發明的
具體實施例方式
圖1是表示按照本發明的編碼一個數字圖像方法的各種步驟的一個功能圖,該數字圖像包含在一個二進制數據流中的宏數據塊MB。在該示例的實施例中,按照本發明的方法尤其涉及在宏數據塊MB上執行編碼的部分,該宏數據塊MB已經以一組量化系數QC(MB)和位移向量MV(MB)的形式被轉換。這些量化系數QC(MB)和這些位移矢量MV(MB)被插在該實施例中方法的開頭上。第一估計步驟EST估計宏數據塊的一個容量CAP(MB)以便通過一個錯誤隱蔽方法重新構建。該容量的估計可以包括各種準則。
這些準則相應于解碼器中可用的錯誤隱蔽裝置。因而,兩種主要類型的錯誤隱蔽裝置是可能的空間錯誤隱蔽和時間錯誤隱蔽。特別的是,通過一個錯誤隱蔽方法重新構建趨于表明確定容量的均勻區域和均勻運動的區域。
例如,第一組準則涉及均勻區域并因此執行空間錯誤隱蔽宏數據塊順序中相鄰的重復的類似宏數據塊,或者處理數據的設施,通過它近鄰的空間內插法可以重新組建一個宏數據塊。這兩個準則可以是實用的且便于評估,例如,通過計算被考慮排除的宏數據塊和是相鄰的或從鄰近宏數據塊空間內插入的一個或多個宏數據塊之間的差,執行該計算作為估計步驟EST的一部分。
另一組準則與均勻運動的區域相關并執行時間錯誤隱蔽。例如,屬于均勻運動區域的宏數據塊能因此而被排除,同時相鄰宏數據塊的位移矢量可被用于內插除外的宏數據塊。通過計算相鄰宏數據塊的位移矢量之間和從一個圖像到下一個圖像宏數據塊的剩余信號的量化系數之間的差,該準則可被評估。
因此,通過現有技術已知的完全不同的裝置可以估算容量CAP(MB)。來自估計步驟EST的容量CAP(MB)可以是二進制形式或可以是數值被確定的一個數,例如,通過考慮用于除去的宏數據塊與一個內插入宏數據塊不同的程度。
因此,按照本發明的方法包括針對從編碼中除去宏數據塊的一個判定步驟DEC。基于被重新組建的宏數據塊的容量CAP(MB)來作出該判定。如果容量CAP(MB)是二進制的,被除去的宏數據塊為一確定的比特值,如果容量CAP(MB)是一個數字,宏數據塊被排除,例如,對于容量值超過一預定的閾值。該預定的閾值可以是固定的或被改變的,取決于用于傳輸的可用資源,這將在下面進行描述。這些有關容量CAP(MB)的條件在下面的描述中定義“良好的”重組容量。
在本發明一個特別優選的實施例中,判定步驟包括一個子步驟,其中二進制數據流尺寸的減少決定著被評估的排除的宏數據塊,判定是否排除宏數據塊是基于這種排除法二進制數據流的減少的一個準則。通過這樣的事實該步驟是合理的,即插入再同步標記必然需要插入一個完整的首標元素,它代表數據流中確定的比特數(至少在17和23比特之間)。本發明的另一個目的是通過除去宏數據塊減少與傳輸圖像有關的二進制數據流的大小。按照本發明給出的事實,排除一個,或更普遍的排除幾個宏數據塊導致插入代表確定比特數的一個完整的首標元素,所述宏數據塊的排除對于減少二進制數據流的大小不能起到任何作用。通過除去宏數據塊影響減少二進制數據流的評估,因而提供一種實際的目的。在該步驟EVAL中,通過排除確定數量的宏數據塊所節省的比特數被評估,接著該數被比較,例如在判定步驟DEC中,與由插入一個首標元素所表示的比特數相比較。當通過從編碼的宏數據塊中的排出所引起的二進制數據流的減少不是零時,作出排除的判定。
按照本發明的方法最好包括一個二進制數據流的一個輸出速率的計算步驟CAL,基于該二進制數據流的輸出速率作出排除宏數據塊的判定。結合運送二進制數據流的編碼的宏數據塊的傳輸裝置執行該計算步驟CAL。
此外,所述的步驟CAL,EST和EVAL可以被組合例如,計算步驟CAL的結果可以影響確定“良好的”重組宏數據塊容量的閾值,所述閾值嚴格地隨著可用流的變大而增大。因而可以考慮這樣一個步驟,即組合評估步驟EVAL和那些計算步驟CAL的結果來用于確定用于容量CAP(MB)的一個閾值,除了這樣的情況,在判定步驟DEC中不包括具有一容量CAP(MB)的宏數據塊高于該閾值。
取決于判定步驟DEC的結果,宏數據塊在步驟BC(情況N)被插入視頻數據分組中或者在步驟EXC(情況Y)從編碼中被除去。在步驟BC中,比特被計數以便當視頻數據分組是足夠的尺寸時,在步驟MARK中觸發插入一個再同步標記。在每個步驟EXC之后,一個再同步標記在步驟MARK中被插入二進制數據流中。這里,術語“再同步標記”必須被解釋,通常包括,例如在MPEG-4標準中,諸如常規的標記RESYNC,VOPStart(一個視頻對象的一個時間情況(計劃)的開始),GOVStart(一個視頻對象一組時間情況的開始),EOS(視頻對話期的結束)。因而,在該方法的最后,獲得一個二進制數據流BIN。
應該注意的是,構造視頻數據分組的方法可以任意地使用數據劃分,并且通過使用或不使用或者沒有數據劃分通常不會影響本發明。
應該注意的是,MPEG-4標準已經建議在一個視頻對象中不編碼確定的宏數據塊,或者更為通常的,在一個視頻圖像中,通過出現一個“未編碼的”標志來表示沒有編碼。由解碼器解釋出現的這種標志,使用位于在一種前述情況的視頻對象的相同位置中的宏數據塊代替未編碼的宏數據塊。通常,直接使用所述的前述的情況。作為結果,該標志只能用于P編碼的圖像,因為前述的實例是可用的和在B編碼的圖像中隱含回波。因而插入一個標志的這種特性只對具有一個位移矢量接近于零的區域有用,和對于從一個圖像或實例到下一個組織結構沒有重大改變。按照本發明的從編碼中除去宏數據塊的方法不必插入任何特殊標志,并因而從編碼中除去宏數據塊能夠用于所有方式的I,P或B編碼。
圖2示例了按照本發明在一個二進制數據流上的效果,該二進制數據流包括一個數字圖像編碼的數據或包括宏數據塊的一個視頻對象。圖2a表示具有包括一個再同步標記MA的一個首標元素的一個視頻數據分組VP。標記的周期性可以基于宏數據塊的數量,或者最好是基于比特數。后者的解決方式最好由MPEG-4標準選擇,使標記在整個數據流上均勻分布。在所有情況下,一個再同步標記和緊跟著的直到下一個再同步標記的數據定義一個視頻數據分組。當標記的周期性是基于比特數時,通過按照這樣的機理確定這些視頻數據分組的長度,如果在當前視頻分組中的比特數超過一個閾值,通過插入一個再同步標記在隨后宏數據塊的開始上生成一個新的視頻數據分組。
在MPEG-4標準中,在接收機中重新開始解碼程序所需的信息,以及視頻分組的第一宏數據塊MB(n)的數n和用于解碼該第一宏數據塊所需的量化參數被包括在一個首標元素中,首標元素還包含再同步標記。第一宏數據塊的數n允許被執行的空間再同步,而且量化參數允許被再同步的微分解碼過程。隨后的宏數據塊的數不被表示。
在圖2b中,被重組的具有合適容量的宏數據塊由斜陰影線所表示。它們是j宏數據塊MBn+i+1到MBn+i+j。當這些宏數據塊被插入前面所述的方法和圖1中時,通過去除判定EXC中斷視頻數據分組的構造,如圖2c的示意圖所示。這里,略圖示例了沒有數據劃分的情況,其中宏數據塊以簡單的串流方式一個跟著一個。數據劃分不會抵觸本發明的原理。由此引起的二進制數據流的情況如圖2d所示。一個再同步標記MA和相關的首標元素在該點上已經被插入數據流中,該點應該是任意一個第一個除去的宏數據塊,和在宏數據塊MBn+i+j+1之前。這里,按照圖2,通過插入再同步標記MA和相關的首標元素所引起的二進制數據流尺寸的減少不是零表示去除的宏數據塊MBn+i+1到MBn+i+j的塊大于插入的首標元素。如果在該方法中包括一個評估步驟EVAL,這種去除宏數據塊是有效的;如果存在一個評估步驟EVAL并且如果代表宏數據塊的方塊已經小于包括首標元素的方塊的話,這種去除將不發生。
由于二進制數據流包括具有宏數據塊的一個數字圖像的編碼的數據,所述二進制數據流是這樣的,即宏數據塊MBn+i+1到MBn+i+j在二進制數據流中的至少一個點上不被編碼,并且由于通過一個錯誤隱蔽方法能夠重新組建該未編碼的宏數據塊,則按照本發明所述二進制數據流的特性在于,在二進制數據流的定位上,一個再同步標記MA存在于二進制數據流中,在該位置上宏數據塊不被編碼。
圖3是按照本發明的一個視頻編碼器的一個示意圖。圖3所示的視頻編碼器以宏數據塊MB的形式接收圖形數據(圖像)。這些圖形圖像被轉換成第一編碼級ENC部分,其中包含在宏數據塊中的信息被編碼成量化系數QC(MB)和位移矢量MV(MB),通過一系列運算,比如加法ADD,減法SUB,變換DCTQ和IDCTQ,以及運動估算和補償MCE。一個存儲器MEM能夠使這些運算的某一運算被執行并用來存儲數據(例如圖象數據)。宏數據塊可以被相互編碼或內部編碼。量化系數QC(MB)和位移矢量MV(MB)被發送,一方面發送到一個可變長度編碼器VLC,另一方面發送到一個估計模塊EST。如圖3所示,估計模塊EST最好耦合到第一編碼級ENC的存儲器MEM。在編碼器VLC中,量化系數QC(MB)和位移矢量MV(MB)被轉換到用于后面格式化的第一形式。經一個錯誤隱蔽方法被重組的宏數據塊的容量在估計模塊EST中被估算。容量值接著被發送到與一個中斷器INT相連接的一個判定模塊DEC,中斷器INT屬于一個格式器FRMT,它格式化以編碼器VLC的輸出格式所接收到的數據。取決于容量值CAP(MB),和最好取決于針對二進制數據流尺寸的減少的評估步驟的結果和針對于二進制數據流數輸出率的一個計算步驟的結果,判斷模塊DEC在兩個編碼路徑之間轉換中斷器INT。當判斷模塊DEC轉換中斷器到位置1,視頻數據分組以常規方式被構造,通過在一個模塊BC中計數比特和宏數據塊。然后當視頻數據分組達到要求的尺寸時,通過一個標記模塊MARK實現插入包括一個再同步標記的一個首標元素。當判定模塊DEC轉換中斷器到位置2時,判定模塊已經決定除去的宏數據塊由一個完成除去步驟EXC的模塊從編碼中被除去。在每個排除步驟EXC之后,通過模塊MARK把包括一個再同步標記的一個首標元素插入二進制數據流中。因而從格式器FRMT獲得相應于圖2a和2d所述的那些視頻分組VP。
在該編碼器中各種模塊的安排相應于具體的實施例,而并不意在排除本技術領域顯而易見的其他的實施例。
圖4是按照本發明的一個視頻解碼器的一個示意圖。解碼器接收編碼的二進制數據流,例如以圖2所示的視頻分組VP的形式,經過一個傳輸信道(未示出)。作為響應它提供一列解碼的宏數據塊MB。解碼器包括一個去格式器DFRMT,一個可變長度字符解碼器VLD,一個解碼級CDEC。解碼級CDEC包括一個逆變換IDCTQ,一個運動補償器MC和一個存儲器MEM。去格式器DFRMT包括一個檢測模塊DET,為了在二進制數據流中的至少一個點上檢測未編碼的宏數據塊的目的。檢測模塊DET被耦合到一個錯誤隱蔽模塊EC,它被指定特別用于在檢測步驟DET中已經被檢測到的未編碼的宏數據塊。激活的錯誤隱蔽模塊從而重新組建宏數據塊。
按照本發明的解碼器特征在于,未編碼的宏數據塊的檢測模塊DET包括一個檢測子模塊,這是為了檢測再同步標記之間不規則區間的目的。因而,子步驟在宏數據塊正好沒被編碼的點上使用再同步標記的檢測來檢測未編碼的宏數據塊。在本發明的一個實施例中,涉及通過計數宏數據塊來形成視頻數據分組以便達到所需的尺寸,按照本發明的解碼器計數在前述視頻分組中存在的宏數據塊,在每個再同步標記上開始進行,并使用剛好接收到的視頻分組的第一宏數據塊的數和開始進行的視頻分組的第一宏數據塊的數,它推導沒有被編碼的相同的宏數據塊,從而在沒有被編碼的宏數據塊的那點上檢測一個再同步標記的插入。此外,檢測模塊DET還可以用于檢測,例如,在二進制數據流中的錯誤,所述錯誤通過耦合到所述檢測模塊DET的錯誤隱蔽模塊被隱蔽。按照對應于圖像或視頻對象數據分組的順序,重組的宏數據塊被插入到去格式器DFRMT的輸出數據中。然而,基于有效的重組的數據,這種插入的重組數據可以在解碼方法中的幾個點或步驟上被實現。
因此,在此介紹的解碼器實現了一種解碼一個二進制數據流的方法,該二進制數據流包括具有宏數據塊的一個數字圖像的編碼的數據,包括一個檢測在二進制數據流的至少一個點上沒有被編碼的宏數據塊的步驟,一個主要的被激活的錯誤隱蔽步驟,用于在檢測步驟DET中未編碼的宏數據塊,特征在于檢測未編碼的宏數據塊的步驟包括一個檢測子步驟,用于檢測再同步標記之間不規則區間。
在此所述的解碼方法可應用于標準MPEG-4,H26L和其他的。
在圖4示例的一個優選實施例中,錯誤隱蔽模塊EC包括用于初次重組的第一裝置PEC,也就是說,例如,錯誤的時間重組,裝置SCT用于評價第一重組,判定是否修改(情況2)錯誤重組或判定第一重組是否有效,第二裝置SEC用于次級重組,也就是說,例如,空間重組,基于錯誤重組的修改,當評價步驟決定時它被激活。例如,通過空間錯誤隱蔽屬于一個內部編碼的圖像(I為內部編碼的)的一個未編碼的宏數據塊將被較好地校正,反之,通過空間或時間錯誤隱蔽,屬于一個外部編碼的圖像(P或B為相互編碼的)一個未編碼的宏數據塊將被較好地校正。在此介紹的優選實施例因而允許獲得最佳的重組結構,通過嘗試和測試各種類型的錯誤隱蔽。本領域精通的技術人員因而可以在不超出本發明的范圍下,根據各種復雜的組合形式,通過評估重組的質量的測試(空間連續測試),使用各種裝置來用于重組。
對于本領普通技術人員來說,通過使用可獲得的軟件和/或硬件,有許多方式可以實現按照本發明所公開的方法步驟的功能,。為此,附圖是以特性所示意的。因此,盡管通過各種方框完成了附圖示例的各種功能,但這并不是說一個單一的軟件和/或硬件單元就不能完成幾個功能。這不排除允許完成一個單一功能的軟件和/或硬件裝置的一種組合。
在不超出后面權利要求中定義的意圖和范圍的情況下,本領域技術人員可以實現許多修改。
權利要求
1.一種編碼數字圖像的方法,該數字圖像包括在一個二進制數據流中的宏數據塊,該方法包括一個估計步驟,用于經一個錯誤隱蔽方法被重新組建宏數據塊的一個容量,一個判定步驟,用于從編碼中被除去的宏數據塊,基于被重組的該宏數據塊的容量作出從編碼中除去一個宏數據塊的一個判定,特征在于還包括一個步驟,在除去一個或多個宏數據塊之后,把一個再同步標記插入二進制數據流中。
2.如權利要求1中的編碼方法,特征在于判定步驟包括一個子步驟,評估通過除去宏數據塊所引起的二進制數據流的減少,隨著根據該除去引起的二進制數據流的減少的一個函數作出除去宏數據塊的判定。
3.如權利要求1和2之一的編碼方法,特征在于它包括一個二進制數據流輸出率的一個計算步驟,基于該二進制數據流的輸出率作出除去宏數據塊的判定。
4.一種用于編碼數字圖像的編碼器,該數字圖像包括在一個二進制數據流中的宏數據塊,包括一個估計模塊,用于估計通過一個錯誤隱蔽方法被重新組建的宏數據塊的一個容量,一個判定模塊,意在判定編碼宏數據塊的一個排除,基于被重組的所述宏數據塊的容量作出除去一個宏數據塊的一個判定,特征在于還包括一個模塊,在除去一個或多個宏數據塊之后,把一個再同步標記插入二進制數據流中。
5.如權利要求3中的編碼方法,特征在于它包括一個或多個模塊,用于完成權利要求2和3之一的特征步驟。
6.一種包含數字圖像的編碼的數據的二進制數據流,該數字圖像包括宏數據塊,所述二進制數據流是這樣的,即宏數據塊在二進制數據流中的至少一個位置上不被編碼,通過一個錯誤隱蔽方法重新組建具有一個容量的所述未編碼的宏數據塊,特征在于,在二進制數據流的該點上,一個再同步標記存在于二進制數據流中,在該點上宏數據塊不被編碼。
7.一種解碼包含一個數字圖像的編碼數據的一個二進制數據流的方法,該數字圖像包括宏數據塊,所述二進制數據流在規則區間上包含再同步標記,包括一個檢測步驟,用于二進制數據流至少一個位置上的未編碼的宏數據塊,特別被激活的一個錯誤隱蔽步驟,用于在檢測步驟中被檢測到的未編碼的宏數據塊,特征在于檢測未編碼的宏數據塊的步驟包括一個檢測子步驟,用于檢測再同步標記之間的不規則區間。
8.一種解碼包含一個數字圖像的編碼數據的一個二進制數據流的解碼器,該數字圖像包括宏數據塊,包括一個檢測模塊,用于二進制數據流至少一個位置上的未編碼的宏數據塊,意在特別被激活的一個錯誤隱蔽模塊,用于由檢測模塊檢測到的未編碼的宏數據塊,特征在于用于檢測未編碼的宏數據塊的檢測模塊包括一個檢測子模塊,用于檢測再同步標記之間的不規則區間。
9.一種用于一個編碼器的計算機程序產品,包括一系列功能和功能存取的一個集合資源,特征在于,計算機程序產品包括一組指令,當裝入這樣一個編碼器時,編碼器運行權利要求1至3之一所要求的方法。
10.一種用于一個解碼器的計算機程序產品,包括一系列功能和功能存取的一個集合資源,特征在于,計算機程序產品包括一組指令,當裝入這樣一個解碼器時,解碼器運行權利要求7所要求的方法。
全文摘要
本發明涉及一種編碼數字圖像的方法,該數字圖像在一個二進制數據流中包括宏數據塊,包括一個估計步驟,用于通過一個錯誤隱蔽方法被重新組建宏數據塊的一個容量,一個判定步驟,用于從編碼中被除去的宏數據塊,基于被重組的該宏數據塊的容量作出從編碼中除去一個宏數據塊的一個判定,和一個步驟,在除去一個或多個宏數據塊之后,把一個再同步標記插入二進制數據流中。本發明能夠使宏數據塊從編碼中被除去,從而對于需要數據流再同步處理過程的編碼標準來說,減少了所需的傳輸資源。應用:根據標準MPEG-4,H26L……的編碼器和解碼器。
文檔編號H04N7/26GK1374624SQ0210541
公開日2002年10月16日 申請日期2002年3月2日 優先權日2001年3月6日
發明者S·E·瓦倫特, C·杜福爾 申請人:皇家菲利浦電子有限公司