(57)【要約】      （修正有）【課題】ビデオデコーダ、その中でエラーを隠蔽する方法、および、ビデオ画像を生成する方法を提供する。【解決手段】補間、代用、適応技術、加重合計技術を含めて、様々な隠蔽技術を開示する。各実施の形態で、破損したデータパケットを調べ、１つ又は複数のエラー位置と、エラーがないと予想されるデータを破損データパケットが含むか否かと、このエラーのないデータを使用すべきか否かを識別する。ビデオビットストリームに埋め込まれたＦＥＣ符号を復号するための、下位互換性のある技術を開示する。リングバッファ中のビデオビットストリームデータに高速かつ効率的にアクセスする技術も開示する。【選択図】図３
2008306734.tif 000002
【特許請求の範囲】
【請求項１】
ビデオビットストリーム中で受け取ったエラーを適宜隠蔽するビデオデコーダであって、
画像の選択部分についてのエラー値を維持するように適合されたメモリモジュールと、
エラーに応答して画像を生成する複数のエラー復元モジュールと、
前記複数のエラー復元モジュールに対応するエラー値の複数の予測を生成するように適合された予測モジュールと、
前記ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、前記エラー値の予測の比較に基づいて前記エラー復元モジュールからエラー復元モジュールを選択するように適合された制御モジュールとを備えたビデオデコーダ。
【請求項２】
エラー復元技術に対応する所定のエラー値を記憶したルックアップテーブルをさらに備え、前記ルックアップテーブルが前記予測モジュールに結合された請求項１記載のビデオデコーダ。
【請求項３】
ビデオビットストリーム中で受け取ったエラーを隠蔽するビデオデコーダであって、
画像の選択部分についてのエラー分散を維持するように適合されたメモリモジュールと、
エラーに応答して画像を生成する複数のエラー復元モジュールと、
前記複数のエラー復元モジュールに対応する複数の重みを生成するように適合された予測モジュールと、
前記ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、選択されたエラー復元モジュールの出力を前記予測モジュールからの重みと組み合わせて前記エラーを隠蔽するように適応された制御モジュールとを備えたビデオデコーダ。
【請求項４】
前記予測モジュールが、予想されるエラーの逆数に関係する重みを提供する請求項３記載のビデオデコーダ。
【請求項５】
前記予測モジュールが、最小平均２乗誤差をもたらす重みを提供する請求項３記載のビデオデコーダ。
【請求項６】
複数のエラー隠蔽技術から選択的にエラー隠蔽技術を適用するオプティマイザ回路であって、
画像の少なくとも一部に関係する推定エラーを維持する手段と、
前記推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成する手段と、
最小の予測エラー推定値をもたらすエラー隠蔽技術を選択する手段とを備えるオプティマイザ回路。
【請求項７】
ビデオデコーダ中でエラーを隠蔽する方法であって、
予測符号化されたビデオビットストリームの第１部分にあるエラーを検出するステップ、
前記エラーが標準的な動きベクトルに関係する場合、代用動きベクトルを提供するステップ、
前のフレームの第１の参照部分が利用可能な場合、前記第１の参照部分を前記代用動きベクトルと共に使用して再構築するステップ、及び、前記前のフレームの第１の参照部分が利用不可能な場合、前記前のフレームに先行する第２のフレームの第２の参照部分を使用するステップを含む方法。
【請求項８】
前記ビデオビットストリームからの前記標準的な動きベクトルが利用可能であって前記第１の参照部分が利用不可能な場合、前記動きベクトルを前記第２のフレームの第２の参照部分と共に使用するステップ、及び、前記前のフレームと前記第２のフレームとの間の時間的な差を反映するように、前記標準的な動きベクトルの大きさを補償するステップをさらに含む請求項７記載の方法。
【請求項９】
前記第２のフレームが前の前のフレームである場合、前記大きさを補償するステップは２を掛けることを含む請求項８記載の方法。
【請求項１０】
前記標準的な動きベクトルが利用不可能であって前記第１の参照部分が利用不可能な場合、前記代用動きベクトルを前記第２のフレームの前記第２の参照部分と共に使用するステップ、及び、前記前のフレームと前記第２のフレームとの間の時間的差を反映するように、前記代用動きベクトルの大きさを補償するステップをさらに含む請求項７記載の方法。
【請求項１１】
前記代用動きベクトルが、隣接する動きベクトルのコピーまたは、隣接する動きベクトルから補間されるものである請求項７記載の方法。
【請求項１２】
前記ビデオビットストリームからの別の動きベクトルが利用可能であると決定するステップ、及び  前記別の動きベクトルを前記標準的な動きベクトル及び前記代用動きベクトルの代わりに使用して前記エラーを隠蔽するステップをさらに含む請求項７記載の方法。
【請求項１３】
ビデオ画像を適宜生成する方法であって、
フレームについてのビデオデータを受け取るステップ、前記ビデオデータがイントラ符号化されているか予測符号化されているかを決定するステップを含み、
前記ビデオデータがイントラ符号化されている場合、
前記イントラ符号化ビデオデータがエラーに対応するか否かを決定するステップ、
前記イントラ符号化ビデオデータがエラーに対応する場合、前記エラーを隠蔽するステップ、
前記イントラ符号化ビデオデータがエラーに対応する場合、ビデオパケットの少なくとも一部に関連するエラー値を第１の所定の値にセットするステップ、  
前記イントラ符号化ビデオデータについてエラーが検出されなかった場合、前記エラー値をリセットするステップ、及び、
前記イントラ符号化ビデオデータについてエラーが検出されなかった場合、前記イントラ符号化ビデオデータを使用するステップを含み、
前記ビデオデータが予測符号化されている場合、
前記予測符号化ビデオデータがエラーに対応するか否かを決定するステップを含み、前記予測符号化ビデオデータがエラーに対応する場合、
前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされている場合、前記予測符号化ビデオデータを使用するステップ、
前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされていない場合、前記予測符号化ビデオデータの使用に対応する第１の推定エラーを予測するステップ、 
前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされていない場合、第１の予測符号化エラー隠蔽技術の使用に対応する第２の推定エラーを予測するステップ、
前記予測した第１の推定エラーと前記予測した第２の推定エラーとの間で比較することによって前記予測符号化ビデオデータの使用と前記第１の予測符号化エラー隠蔽技術の使用との間で選択するステップ、及び、
前記予測符号化ビデオデータと前記第１の予測符号化エラー隠蔽技術のいずれを選択するかに従って前記エラー値を更新するステップを含み、
前記予測符号化ビデオデータがエラーに対応する場合、
第２の予測符号化エラー隠蔽技術を適用するステップ、及び、
前記第２の予測符号化エラー隠蔽技術に従って前記エラー値を更新するステップを含む方法。
【請求項１４】
前記第１の予測符号化エラー隠蔽技術と前記第２の予測符号化エラー隠蔽技術が同じである請求項１３記載の方法。
【請求項１５】
前記第２の推定エラーを予測するステップがさらに、予測符号化に対する複数のエラー隠蔽技術に対応する複数の推定エラーを予測するステップを含み、前記予測符号化ビデオデータの使用と前記予測符号化エラー隠蔽技術の使用との間で選択するステップがさらに、
前記予測符号化ビデオデータの使用と、前記複数のエラー隠蔽技術のうちのエラー隠蔽技術の使用との間で、前記対応する推定エラーの予測に基づいて選択するステップを含む請求項１３記載の方法。
【請求項１６】
前記第２の予測符号化エラー隠蔽技術を適用するステップがさらに、
予測符号化に対する複数のエラー隠蔽技術に対応する複数の推定エラーを予測するステップ、
前記予測した推定エラーを使用して前記複数のエラー隠蔽技術から選択するステップ、
前記選択したエラー隠蔽技術を適用するステップ、及び、
前記選択したエラー隠蔽技術に従って前記エラー値を調整するステップを含む請求項１３記載の方法。
【請求項１７】
前記ビデオデータがマクロブロック、ビデオオブジェクトプレーン（ＶＯＰ）、またはフレームである請求項１３記載の方法。
【請求項１８】
前記エラー値を０〜２５５の範囲に正規化するステップをさらに含む請求項１３記載の方法。
【請求項１９】
フレームシーケンス中の進行に応答して、１未満の値を有するリーキーな値を前記エラー値に掛けることをさらに含む請求項１３記載の方法。
【請求項２０】
前記リーキーな値が約０．９３である請求項１９記載の方法。
【請求項２１】
前記エラー値をメモリアレイ中に維持するステップをさらに含み、前記アレイ中のエラー値が前記画像中の少なくとも１つのピクセルに関連する請求項１３記載の方法。
【請求項２２】
前記エラー値をメモリアレイ中に維持するステップをさらに含み、前記画像中の各ピクセルが前記アレイ中のエラー値に関連する請求項１３記載の方法。
【請求項２３】
ビデオ画像を生成する方法であって、
ビデオフレームについてのデータを受け取るステップ、
前記ビデオフレームが予測符号化フレームかイントラ符号化フレームかを決定するステップを含み、
前記ビデオフレームが予測符号化フレームの場合、
前記ビデオフレームからのビデオデータグループがエラーに対応するか否かを決定するステップを含み、
前記ビデオデータグループ中にエラーがない場合、
前記ビデオデータグループがイントラ符号化されているか予測符号化されているかを決定するステップ、
前記ビデオデータグループがイントラ符号化されている場合、前記ビデオデータグループをイントラ復号するステップ、
前記ビデオデータグループがイントラ符号化されている場合、前記ビデオデータグループの少なくとも一部に関連するエラー分散をリセットするステップ、
前記ビデオデータがイントラ符号化されている場合、第１の加重合計を使用して前記
ビデオデータグループに対応する画像の一部を再構築するステップであって、前記第１の加重合計が少なくとも第１と第２の技術の結果を組み合わせたものであること、及び、
前記画像の一部を再構築するのに使用された前記第１の加重合計に従って前記エラー分散を更新するステップを含み、
前記ビデオデータグループ中にエラーがある場合、
前記ビデオデータグループに対応する前記画像の一部にある前記エラーを隠蔽するステップ、及び、エラー隠蔽に従って前記エラー分散を更新するステップを含む方法。
【請求項２４】
前記ビデオデータグループがマクロブロック、ビデオオブジェクトプレーン（ＶＯＰ）、または不足データを含む請求項２３記載の方法。
【請求項２５】
前記エラーを隠蔽するステップがさらに、第２の加重合計を使用して、前記ビデオデータグループに対応する前記画像の一部を隠蔽するステップを含み、前記第２の加重合計が、少なくとも２つのエラー隠蔽技術の結果を組み合わせたものである請求項２３記載の方法。
【請求項２６】
前記第１の加重合計が、前記第１及び第２の技術の予想エラーの逆数に関係する値に従って前記第１及び第２の技術の結果を重み付けする請求項２３記載の方法。
【請求項２７】
前記第１の技術が、前のフレームの第１の参照部分から前記画像の一部を構築するステップを含み、前記第２の技術が、前記前のフレームに先行するフレームの第２の参照部分から前記画像の一部を構築するステップを含む請求項２３記載の方法。
【請求項２８】
前記第２の加重合計が、第３及び第４のエラー隠蔽技術の予想エラーの逆数に関係する値に従って前記第３及び第４のエラー隠蔽技術の結果をそれぞれ重み付けする請求項２３記載の方法。
【請求項２９】
前記ビデオフレームが予測符号化フレームの場合、
次のビデオデータグループを受け取るステップ、及び、
前記ビデオデータグループが処理されるまで前記方法の実行を継続するステップをさらに含む請求項２３記載の方法。
【請求項３０】
前記ビデオフレームがイントラ符号化フレームの場合、
前記ビデオフレームからのビデオデータグループがエラーに対応するか否かを決定するステップ、
前記ビデオデータグループ中にエラーがない場合、
前記ビデオデータグループをイントラ復号するステップ、
前記ビデオデータグループの少なくとも一部に関連するエラー分散をリセットするステップ、
前記ビデオデータグループ中にエラーがある場合、
前記ビデオデータグループに対応する前記画像の一部にあるエラーを隠蔽するステップ、及び、
前記エラー分散を所定の値に設定するステップをさらに含む請求項２３記載の方法。
【請求項３１】
前記ビデオフレームがイントラ符号化フレームの場合、
次のビデオデータグループを受け取るステップ、及び、
前記ビデオデータグループが処理されるまでイントラ符号化フレーム中のデータグルー
プに対応する前記方法の一部の実行を継続するステップをさらに含む請求項３０記載の方
法。
【請求項３２】
複数のエラー隠蔽技術からエラー隠蔽技術を選択する方法であって、
画像の少なくとも一部に関係する推定エラーを維持するステップ、
前記推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成するステップ、及び、
最小の予測エラー推定値をもたらすエラー隠蔽技術を選択するステップを含む方法。
【請求項３３】
前記複数のエラー隠蔽技術からのエラー隠蔽技術が、対応するすべてのピクセルを灰色に設定するステップ、または、前のフレームと後のフレームとの間を補間するステップを含む請求項３２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ復号技術に関する。より詳細には、本発明は、ビデオデコーダ、その中でエラーを隠蔽する方法、および、ビデオ画像を生成する方法に関する。
【背景技術】
【０００２】
ビデオ信号をより少ない帯域幅又は記憶空間で伝送又は記憶するために、様々なディジタルビデオ圧縮技術が出現している。このようなビデオ圧縮技術には、Ｈ．２６１、Ｈ．２６３、Ｈ．２６３＋、Ｈ．２６３＋＋、Ｈ．２６Ｌ、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、及びＭＰＥＧ−７などの国際規格が含まれる。これらの圧縮技術は、とりわけ離散コサイン変換（ＤＣＴ）技術及び動き補償（ＭＣ）技術によって、比較的高い圧縮率を達成する。このようなビデオ圧縮技術により、無線携帯電話ネットワーク、コンピュータネットワーク、ケーブルネットワークなどの様々なディジタルネットワークや、衛星
などを介して、ビデオビットストリームを効率的に搬送することができる。  
【０００３】
ユーザにとっては残念なことに、ディジタルビデオ信号の搬送又は伝送に使用される様々な媒体は、常に完璧に機能するとは限らず、伝送されるデータは破損、或いは中断され得る。このような破損には、エラー、ドロップアウト、遅延が含まれ得る。破損は、無線チャネルや非同期転送モード（ＡＴＭ）ネットワークなど、幾つかの伝送媒体において、ある程度の頻度で発生する。例えば、無線チャネルにおけるデータ伝送は、環境雑音、マルチパス、シャドーイングによって破損され得る。別の例では、ＡＴＭネットワークにおけるデータ伝送は、ネットワーク輻輳及びバッファオーバーフローによって破損され得る。
【０００４】
ビデオを搬送しているデータストリーム又はビットストリーム中の破損は、表示されるビデオに破壊を引き起こし得る。１ビットのデータ損失でも、ビットストリームとの同期が失われることがあり、これにより、同期コードワードが受信されるまで後続のビットが利用不可能になる。伝送中のこれらのエラーは、フレームの不足や、フレーム内のブロックの不足などを引き起こし得る。比較的よく圧縮されたデータストリームの欠点の１つは、ビデオ信号を搬送するデータストリームの伝送において破損の受けやすさが増大することである。
【０００５】
当業者は、ビットストリーム中のデータの破損に対して軽減する技術を開発することを求めてきた。例えば、不足又は破損したブロック中のエラーを隠すため、エラー隠蔽技術を使用することができる。しかし、従来のエラー隠蔽技術は、相対的に不完全であり精巧でないことがある。
【０００６】
別の例では、破損ビットを回復するために順方向エラー訂正（ＦＥＣ）技術を使用し、それにより破損があった場合にデータを再構築する。しかし、ＦＥＣ技術は不都合なことに冗長データを招き、そのためビデオのためのビットストリームの帯域幅が拡大するか、ビデオに残された有効な総帯域幅が縮小する。また、ＦＥＣ技術は実施のための計算が複雑である。さらに、従来のＦＥＣ技術は、Ｈ．２６１、Ｈ．２６３、ＭＰＥＧ−２、ＭＰＥＧ−４などの国際規格との互換性がないばかりか、より高度な「システム」レベルで実施しなければならない。
【発明の開示】
【課題を解決するための手段】
【０００７】
本発明は、破損したビデオビットストリームの画像中のエラーを隠蔽する方法及び装置に関する。一実施の形態では、不足又は破損したイントラ符号化マクロブロック中のエラーを、その不足又は破損したマクロブロックの上下の画像部分に対応する他のマクロブロックから、データを線形補間することによって隠蔽する。一実施の形態では、不足又は破損した予測符号化マクロブロックに対して代用動きベクトルを利用することができる。別の実施の形態では、受け取った動きベクトルを２倍にし、２倍にした動きベクトルを前の前のフレームに参照付ける。別の実施の形態では、予測エラー推定値に従って、いずれの隠蔽又は再構築技術を適用するかを適宜選択する。別の実施の形態では、加重合計において隠蔽データを結合して破損又は不足データを置換し、推定エラーを低減させることによって、エラーを隠蔽する。
【０００８】
本発明の一実施の形態は、ビデオビットストリーム中で受け取ったエラーを隠蔽するビデオデコーダを含み、このビデオデコーダは、ビデオビットストリーム中のエラーを検出するように適合されたエラー検出回路と、画像の一部に対応するビデオビットストリームの一部にあるエラーの指示を提供するように構成されているメモリデバイスと、画像の第１部分にあるエラーの指示に応答するように構成されている制御回路とを備える。制御回路はさらに、画像中の第１部分の上にある第２部分及び画像中の第１部分の下にある第３部分にエラーがないか否かを検出するように構成されている。制御回路はさらに、画像の第２部分中の対応するデータと画像の第３部分中の対応するデータとの間を補間して、エラーを隠蔽するように構成されている。
【０００９】
本発明による別の実施の形態は、ビデオビットストリーム中で受け取ったエラーを適宜隠蔽するビデオデコーダを含み、このビデオデコーダは、画像の選択部分についてのエラー値を維持するように適合されたメモリモジュールと、エラーに応答して画像を生成する複数のエラー復元モジュールと、複数のエラー復元モジュールに対応するエラー値の複数の予測を生成するように適合された予測モジュールと、ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、エラー値の予測の比較に基づいてエラー復元モジュールからエラー復元モジュールを選択するように適合された制御モジュールとを備える。
【００１０】
本発明の一実施の形態は、ビデオビットストリーム中で受け取ったエラーを隠蔽するビデオデコーダを含み、このビデオデコーダは、画像の選択部分についてのエラー分散を維持するように適合されたメモリモジュールと、エラーに応答して画像を生成する複数のエラー復元モジュールと、複数のエラー復元モジュールに対応する複数の重みを生成するように適合された予測モジュールと、ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、選択されたエラー復元モジュールの出力を予測モジュールからの重みと組み合わせてエラーを隠蔽するように適応された制御モジュールとを備える。
【００１１】
本発明の一実施の形態は、複数のエラー隠蔽技術から選択的にエラー隠蔽技術を適用するオプティマイザ回路を含み、このオプティマイザ回路は、画像の少なくとも一部に関係する推定エラーを維持する手段と、推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成する手段と、最小の予測エラー推定値をもたらすエラー隠蔽技術を選択する手段とを備える。
【００１２】
本発明の一実施の形態は、ビデオデコーダ中でエラーを隠蔽する方法を含み、この方法は、イントラ符号化されたビデオビットストリームの第１部分にあるエラーを検出するステップ、画像の第１部分の上にある第２部分と画像の第１部分の下にある第３部分とが破損していないと決定するステップ、及び、第２部分及び第３部分が破損していない場合、第２部分中の第１の水平ピクセル行と第３部分中の第２の水平ピクセル行との間で、第１部分中のピクセルを補間してエラーを隠蔽するステップを含む。
【００１３】
本発明の一実施の形態は、ビデオデコーダ中でエラーを隠蔽する方法を含み、この方法は、予測符号化されたビデオビットストリームの第１部分にあるエラーを検出するステップ、エラーが標準的な動きベクトルに関係する場合、代用動きベクトルを提供するステップ、前のフレームの第１の参照部分が利用可能な場合、第１の参照部分を代用動きベクトルと共に使用して再構築するステップ、及び、前のフレームの第１の参照部分が利用不可能な場合、前のフレームに先行する第２のフレームの第２の参照部分を使用するステップを含む。
【００１４】
本発明の一実施の形態は、ビデオ画像を適宜生成する方法を含み、この方法は、フレームについてのビデオデータを受け取るステップ、及び、ビデオデータがイントラ符号化されているか予測符号化されているかを決定するステップを含む。ビデオデータがイントラ符号化されている場合、この方法は、イントラ符号化ビデオデータがエラーに対応するか否かを決定するステップ、イントラ符号化ビデオデータがエラーに対応する場合、エラーを隠蔽するステップ、イントラ符号化ビデオデータがエラーに対応する場合、ビデオパケットの少なくとも一部に関連するエラー値を第１の所定の値にセットするステップ、イントラ符号化ビデオデータについてエラーが検出されなかった場合、エラー値をリセットするステップ、及び、イントラ符号化ビデオデータについてエラーが検出されなかった場合、イントラ符号化ビデオデータを使用するステップを含む。ビデオデータが予測符号化されている場合、この方法は、予測符号化ビデオデータがエラーに対応するか否かを決定するステップを含む。予測符号化ビデオデータがエラーに対応する場合、この方法は、予測符号化ビデオデータについてエラーが検出されず、関連するエラー値がリセットされている場合、予測符号化ビデオデータを使用するステップ、予測符号化ビデオデータについて
エラーが検出されず、関連するエラー値がリセットされていない場合、予測符号化ビデオデータの使用に対応する第１の推定エラーを予測するステップ、予測符号化ビデオデータについてエラーが検出されず、関連するエラー値がリセットされていない場合、第１の予測符号化エラー隠蔽技術の使用に対応する第２の推定エラーを予測するステップ、予測した第１の推定エラーと予測した第２の推定エラーとの間で比較することによって予測符号化ビデオデータの使用と第１の予測符号化エラー隠蔽技術の使用との間で選択するステップ、及び、予測符号化ビデオデータと第１の予測符号化エラー隠蔽技術のいずれを選択するかに従ってエラー値を更新するステップを含む。予測符号化ビデオデータがエラーに対応する場合、この方法は、第２の予測符号化エラー隠蔽技術を適用するステップ、及び、第２の予測符号化エラー隠蔽技術に従ってエラー値を更新するステップを含む。
【００１５】
本発明の一実施の形態は、ビデオ画像を生成する方法を含み、この方法は、ビデオフレームについてのデータを受け取るステップ、及び、ビデオフレームが予測符号化フレームかイントラ符号化フレームかを決定するステップを含む。ビデオフレームが予測符号化フレームの場合、この方法は、ビデオフレームからのビデオデータグループがエラーに対応するか否かを決定するステップを含む。ビデオデータグループ中にエラーがない場合、この方法は、ビデオデータグループがイントラ符号化されているか予測符号化されているかを決定するステップ、ビデオデータグループがイントラ符号化されている場合、ビデオデ
ータグループをイントラ復号するステップ、ビデオデータグループがイントラ符号化されている場合、ビデオデータグループの少なくとも一部に関連するエラー分散をリセットするステップ、ビデオデータがイントラ符号化されている場合、第１の加重合計を使用してビデオデータグループに対応する画像の一部を再構築するステップであって、第１の加重合計は少なくとも第１と第２の技術の結果を組み合わせるステップ、及び、画像の一部を再構築するのに使用された第１の加重合計に従ってエラー分散を更新するステップを含む。ビデオデータグループ中にエラーがある場合、この方法は、ビデオデータグループに対応する画像の一部にあるエラーを隠蔽するステップ、及び、エラー隠蔽に従ってエラー分散を更新するステップを含む。
【００１６】
本発明の一実施の形態は、複数のエラー隠蔽技術からエラー隠蔽技術を選択する方法を含み、この方法は、画像の少なくとも一部に関係する推定エラーを維持するステップ、推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成するステップ、及び、最小の予測エラー推定値をもたらすエラー隠蔽技術を選択するステップを含む。
【００１７】
本発明は、部分的に破損したデータから使用可能なビデオデータを回復する方法及び装置に関する。各実施の形態で、破損したデータパケットを調べて１つ又は複数のエラー位置を識別し、エラーがないと予想されるデータを破損データパケットが含むか否かを識別し、このエラーのないデータを使用すべきか否かを識別する。パケットを順方向と逆方向との両方で復号することを用いて、エラーの位置を突き止めることができる。イントラ符号化マクロブロックを回復することもできる。デコーダは、回復されたイントラ符号化マクロブロックに適用される他の基準に従って、破損したデータパケットから回復されたイントラ符号化マクロブロックを使用するかドロップするかを選択することができる。一実施の形態では、オプションのデータ区分化機能が有効にされた状態で符号化されたビデオビットストリームデータを調べ、破損パケット中でエラーなしと予想される領域にある指定のデータを取り出す。
【００１８】
本発明の一実施の形態は、少なくとも部分的に破損したビデオパケットから有用なデータを回復するように適合された回路を含み、この回路は、ビデオパケットを順方向と逆方向とに復号するように構成されている復号回路であって、順方向と逆方向で最初にみられたエラーのビット位置を検出する復号回路を備える。さらに、順方向と逆方向で復号された完全なマクロブロックのカウントを維持するように適合されたカウンタと、重複領域に対応するビデオパケットの少なくとも一部を廃棄するように適合された制御回路とを備える。この制御回路はさらに、重複領域がない場合、バックトラッキング量に対応する追加のデータをさらに廃棄するように構成されており、さらに、不完全なマクロブロック中の情報を廃棄するように構成されており、残りのデータの少なくとも一部の使用を可能にするように適合される。
【００１９】
本発明の一実施の形態は、少なくとも部分的に破損したビデオパケットから有用なデータを回復するように適合された回路を含み、この回路は、データ区分化が有効にされた状態でビデオパケットが符号化されているか否かを決定するように適合されたデータ解析回路と、ビデオパケットの動きマーカの前にエラーがあるか否かを決定するように構成されているエラーチェック回路と、解析回路及びエラーチェック回路に結合されたデコーダとを備える。デコーダは、データ区分化が有効にされた状態でビデオパケットが符号化されているとデータ解析回路が示すときであって、動きマーカの前にエラーがないとエラーチェック回路が示す場合、破損ビデオパケット中の動きマーカの前にあるデータの少なくとも一部を復号するように適合される。
【００２０】
本発明の一実施の形態は、少なくとも部分的に破損したビデオパケットから有用なデータを回復するように適合された回路を含み、この回路は、ビデオパケットを受け取る手段と、ビデオパケットのビデオパケットヘッダ、ビデオパケットのＤＣ部分、ビデオパケットの動きベクトル部分のうちの少なくとも１つに破損が検出されたときにデータを回復せずに終了する手段と、ビデオパケットを順方向に復号するのを開始する手段と、順方向にエラーなく復号されたマクロブロックの数の第１カウントを維持する手段と、順方向に復号されたコードワードを記憶する手段と、順方向でエラーが最初に検出されたときの第１のビット位置を記憶する手段と、ビデオパケットを反対方向に復号するのを開始する手段と、反対方向にエラーなく復号されたマクロブロックの数の第２カウントを維持する手段と、反対方向に復号されたコードワードを記憶する手段と、反対方向でエラーが最初に検出されたときの第２のビット位置を記憶する手段と、順方向と反対方向との両方でエラーがあると識別された領域に対応する重複領域があるか否かを決定する手段と、重複領域がある場合に、重複領域中のデータを廃棄し、ビデオパケットの残りの部分にあるデータを使用する手段と、重複領域がない場合に、順方向の第１のエラー位置から第１のバックトラッキング量だけ前の位置と、反対方向における第２のエラー位置から第２のバックトラッキング量だけ後の位置との間のデータを廃棄し、ビデオパケットの残りの部分を回復する手段とを備える。
【００２１】
本発明の一実施の形態は、破損したビデオパケットから有用なデータを回復する方法を含み、この方法は、ビデオパケットを受け取るステップ、ビデオパケットのビデオパケットヘッダ中で破損が検出されたときにデータを回復せずに終了するステップ、ビデオパケットのＤＣ部分中で破損が検出されたときにデータを回復せずに終了するステップ、ビデオパケットの動きベクトル部分中で破損が検出されたときにデータを回復せずに終了するステップ、ビデオパケットを順方向に復号するのを開始するステップ、順方向にエラーなしで復号されたマクロブロックの数の第１カウントを維持するステップ、順方向に復号されたコードワードを記憶するステップ、順方向で最初にエラーが検出されたときの第１のビット位置を記憶するステップ、ビデオパケットを反対方向に復号するのを開始するステップ、反対方向にエラーなしで復号されたマクロブロックの数の第２カウントを維持するステップ、反対方向に復号されたコードワードを記憶するステップ、反対方向で最初にエラーが検出されたときの第２のビット位置を記憶するステップ、順方向と反対方向との両方でエラーがあると識別された領域に対応する重複領域があるか否かを決定するステップ、重複領域がある場合に、重複領域中のデータを廃棄し、ビデオパケットの残りの部分にあるデータを使用するステップ、重複領域がない場合に、順方向の第１のエラー位置から第１のバックトラッキング量だけ前の位置と、反対方向における第２のエラー位置から第２のバックトラッキング量だけ後の位置との間のデータを廃棄し、ビデオパケットの残りの部分を回復するステップを含む。
【００２２】
本発明の一実施の形態は、破損したビデオパケット中のデータを回復する方法を含み、この方法は、ビデオパケットを調べて、データ区分化が有効にされた状態でビデオパケットが符号化されているか否かを決定するステップ、ビデオパケットの動きマーカの前にエラーがあるか否かを決定するステップ、及び、データ区分化が有効にされた状態でビデオパケットが符号化されており、かつ動きマーカの前にエラーがない場合、破損ビデオパケット中の動きマーカの前にあるデータの少なくとも一部を復号するステップを含む。
【００２３】
本発明は、ビデオビットストリームに埋め込まれた順方向エラー訂正（ＦＥＣ）符号を使用して、ビデオオブジェクトプレーン（ＶＯＰ）などのビデオデータを有利に再構築し復号する方法及び装置に関する。有利なことに、ビデオビットストリームの一部が伝送中に破損又は紛失しても、元のビデオデータを回復することができる。さらに有利なことに、開示するこの方法及び装置は、標準的な構文に準拠するビデオビットストリームとの下位互換性を有し、それによりデコーダは、標準的なビデオビットストリームと、ＦＥＣ符号が埋め込まれたビデオビットストリームとの両方に対して互換性を達成することができる。一実施の形態では、デコーダは、ユーザデータビデオパケットからＦＥＣ符合を取り出す。帯域幅を節約するために、エンコーダは、ビデオデータのサブセットに対応するＦＥＣ符号を提供することができ、デコーダは、提供されたＦＥＣ符号がいずれのデータに対応するかについての指示を受け取って解釈することができる。
【００２４】
本発明の一実施の形態は、破損したビデオデータを再構築するように適合されたビデオデコーダを含み、このビデオデコーダは、ビデオビットストリームを受け取るように適合された受信機回路と、受信機回路に結合され、ビデオビットストリームの少なくとも一部を記憶するように適合されたバッファと、ビデオデータを順方向エラー訂正（ＦＥＣ）符号と区別するように適合された解析回路と、ビデオデータ中の破損を検出するように構成されているエラー監視回路と、ビデオデータ及びＦＥＣ符号を受け取るように適合され、ＦＥＣ符号が適用されるビデオデータ中の破損を除去するように構成されているＦＥＣデ
コーダとを備える。
【００２５】
本発明の一実施の形態は、順方向エラー訂正（ＦＥＣ）符号を含むビデオビットストリームを復号するビデオデコーダを含み、このビデオデコーダは、ビデオデータとＦＥＣ符号との両方を含むビデオビットストリームを受け取る手段と、ビデオビットストリームからビデオデータを取り出す手段と、取り出されたビデオデータの一部に破損があるか否かを決定する手段と、破損の検出に応答してビデオビットストリームからＦＥＣ符号を取り出す手段と、ビデオデータの一部が破損なく回復されるように、ＦＥＣ符号を使用してビデオデータの一部を再構築する手段とを備える。
【００２６】
本発明の一実施の形態は、順方向エラー訂正（ＦＥＣ）符号を含むビデオビットストリームを復号するプロセスを含み、このプロセスは、ビデオデータとＦＥＣ符号との両方を含むビデオビットストリームを受け取るステップ、ビデオビットストリームからビデオデータを取り出すステップ、取り出されたビデオデータの一部に破損があるか否かを決定するステップ、破損の検出に応答してビデオビットストリームからＦＥＣ符号を取り出すステップ、及び、ビデオデータの一部が破損なく回復されるように、ＦＥＣ符号を使用してビデオデータの一部を再構築するステップを含む。
【００２７】
本発明の一実施の形態は、順方向エラー訂正（ＦＥＣ）符号を含むビデオビットストリームを復号するプロセスを含み、このプロセスは、ビデオデータとＦＥＣ符号との両方を含むビデオビットストリームを受け取るステップ、ビデオビットストリームからビデオデータを取り出すステップ、取り出されたビデオデータに対応するＦＥＣ符号が利用可能か否かを決定するステップ、ＦＥＣ符号が利用可能な場合、ＦＥＣ符号をビデオビットストリームから取り出すステップ、及び、ビデオデータの一部が破損なく回復されるように、ＦＥＣ符号を使用してビデオデータの一部を復号するステップを含む。
【００２８】
本発明は、ビデオビットストリーム中で受け取ったデータを管理する方法及び装置に関する。ビデオビットストリームから受け取ったビデオデータは、循環バッファとも呼ばれるリングバッファ中に配置される。リングバッファには、データロギング情報も記憶される。一実施の形態では、データロギング情報は、対応するビデオデータと同期して又は整合して記憶される。データロギング情報は、対応するビデオデータ中のエラーの有無に関する状況を含み得る。リングバッファは、ビットストリームデータへの高速かつ効率的なアクセスを提供し、ビデオビットストリームからエラー復元な方式でデータを抽出するモジュールは、ビットストリームデータに複数回にわたって複数方向にアクセスすることができる。
【００２９】
本発明の一実施の形態は、ビデオデコーダのためのデータバッファ回路を含み、このデータバッファ回路は、ビデオビットストリームを受け取るように適合された受信機回路と、ビデオビットストリームを記憶するように適合されたリングバッファと、リングバッフ
ァからデータを取り出すように適合されたエラー復元モジュールとを備える。
【００３０】
本発明の一実施の形態は、ビデオデコーダのためのデータバッファ回路を含み、このデータバッファ回路は、ビデオビットストリームを受け取る手段と、ビデオビットストリー
ムにエラーがあるか否かを調査する手段と、エラー指示にかかわらずビデオビットストリームをリングバッファに記憶する手段と、ビデオビットストリームデータに対応するデータロギング情報を、対応するビデオビットストリームデータに整合するようにしてリングバッファに記憶する手段と、データ要求に応答して、ビデオビットストリームの一部とデータロギング情報の対応部分との両方をリングバッファから自動的に取り出す手段とを備える。
【００３１】
本発明の一実施の形態は、ビデオビットストリームからの情報にアクセスする方法を含み、この方法は、ビデオビットストリームを受け取るステップ、ビデオビットストリームにエラーがあるか否かを調査するステップ、エラー指示にかかわらずビデオビットストリームをリングバッファに記憶するステップ、ビデオビットストリームデータに対応するデータロギング情報を、対応するビデオビットストリームデータに整合するようにしてリングバッファに記憶するステップ、及び、データ要求に応答して、ビデオビットストリームの一部とデータロギング情報の対応部分との両方をリングバッファから自動的に取り出すステップを含む。
【００３２】
次に、本発明のこれら及び他の特徴について、図面を参照しながら述べる。これらの図面及び関連する記述は、本発明の好ましい実施の形態を例示するために提供するものであり、本発明の範囲を限定するものではない。
【発明を実施するための最良の形態】
【００３３】
本発明をある好ましい実施の形態の観点から記載するが、本明細書に述べる利点及び特徴のすべてを提供するものではない実施の形態を含めて、当業者に明らかな他の実施の形態も、本発明の技術的範囲内に属する。したがって、本発明の技術的範囲は、添付の特許請求の範囲を参照することによってのみ定義される。
【００３４】
ビデオの表示は、比較的多くの帯域幅を消費する可能性があり、特にビデオがリアルタイムで表示されるときはそうである。さらに、ビデオビットストリームが無線送信される
か、輻輳したネットワークを介して送信される場合、パケットが紛失するか、許容できないほど遅延する場合がある。ビデオビットストリーム中のデータパケットが受信されたときでも、ネットワーク輻輳などのためにパケットが適時に受信されなかった場合、該パケットはビデオビットストリームをリアルタイムで復号するのに使用できないことがある。
本発明の実施の形態では、有利にも、ビデオビットストリーム中のデータパケットが遅延、ドロップ、又は紛失したときに生じるエラーを補償して隠蔽する。幾つかの実施の形態では、元のデータを他のデータから再構築する。他の実施の形態では、ビデオビットストリームの対応する表示が相対的により少ないエラーを呈するように、エラーの結果を隠蔽又は隠匿し、それによりシステムの信号対雑音比（ＳＮＲ）を効果的に向上させる。さらに有利なことに、本発明の実施の形態によれば、既存のビデオ復号規格に準拠するビデオビットストリームとの下位互換性を維持することができる。
【００３５】
図１に、本発明の一実施の形態に係る、ビデオ配信システムを実現するためのネットワーク化されたシステムを示す。符号化コンピュータ１０２が、ビデオ信号を受信し、これを比較的コンパクトかつ頑強なフォーマットに符号化する。符号化コンピュータ１０２は、ソフトウェアを実行する汎用コンピュータを含めた様々なタイプのマシン、及び専用ハードウェアに対応するものとすることができる。符号化コンピュータ１０２は、衛星受信機１０４、ビデオカメラ１０６、ビデオ会議端末１０８などを介して、様々なソースからビデオシーケンスを受信することができる。ビデオカメラ１０６は、ビデオカメラレコーダ、ウェブカム、無線デバイスの内蔵カメラなど、様々なタイプのカメラに対応するものとすることができる。また、ビデオシーケンスは、データ記憶装置１１０に記憶することができる。データ記憶装置１１０は、符号化コンピュータ１０２の内部にあっても外部にあってもよい。データ記憶装置１１０には、テープ、ハードディスク、光ディスクなどのデバイスを含むことができる。図１に示すデータ記憶装置１１０などのデータ記憶装置は、符号化されていないビデオ、符号化されたビデオ、又はこの両方を記憶できることは当業者には理解されるであろう。一実施の形態では、符号化コンピュータ１０２は、データ
記憶装置１１０などのデータ記憶装置から符号化されていないビデオを取り出し、符号化されていないビデオを符号化し、符号化済みビデオを同じデータ記憶装置でも別のデータ記憶装置でもよいデータ記憶装置に記憶する。ビデオのソースには、元々はフィルムフォーマットの採用されたソースを含まれ得ることができることを理解されたい。
【００３６】
符号化コンピュータ１０２は、符号化済みビデオを受信デバイスに配信し、該受信デバイスは、符号化済みビデオを復号する。受信デバイスは、ビデオを表示することのできる様々なデバイスに対応するものとすることができる。例えば、図示のネットワーク化システムに示す受信デバイスには、携帯電話１１２、パーソナルディジタルアシスタント（ＰＤＡ）１１４、ラップトップコンピュータ１１６、デスクトップコンピュータ１１８が含まれる。受信デバイスは、通信ネットワーク１２０を介して符号化コンピュータ１０２と通信することができ、通信ネットワーク１２０は、無線通信ネットワークを含めた様々な通信ネットワークに対応するものとすることができる。携帯電話１１２などの受信デバイスを使用して符号化コンピュータ１０２にビデオ信号を送信することもできることは、当業者には理解されるであろう。
【００３７】
符号化コンピュータ１０２、及び受信デバイス又はデコーダは、様々なコンピュータに対応するものとすることができる。例えば、符号化コンピュータ１０２は、マイクロプロセッサ又はプロセッサ（以下、プロセッサと記す）によって制御される任意のデバイスとすることができ、限定しないがこれらには、パーソナルコンピュータ、ワークステーション、サーバ、クライアント、ミニコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、個々のコンピュータのネットワーク、モバイルコンピュータ、パームトップコンピュータ、ハンドヘルドコンピュータ、ＴＶ用セットトップボックス、対話式テレビジョン、対話式キオスク、パーソナルディジタルアシスタント（ＰＤＡ）、対話式無線通信デバイス、モバイルブラウザ、ウェブ対応携帯電話などの端末デバイスや、これらの組合せが含まれる。コンピュータはさらに、キーボード、マウス、トラックボール、タッチパッド、タッチスクリーンなどの入力デバイスと、コンピュータ画面、プリンタ、スピーカなどの出力デバイスと、既存の又は今後開発されるその他の入力デバイスを有することができる。
【００３８】
記載した符号化コンピュータ１０２及びデコーダは、ユニプロセッサマシン又はマルチプロセッサマシンに対応するものとすることができる。さらにコンピュータは、アドレス指定可能な記憶媒体又はコンピュータアクセス可能な媒体を備えることもできる。例えば、ランダムアクセスメモリ（ＲＡＭ）、電気的消去及びプログラム可能読出専用メモリ（ＥＥＰＲＯＭ）、ハードディスク、フロッピー（登録商標）ディスク、レーザディスクプレーヤ、ディジタルビデオデバイス、コンパクトディスクＲＯＭ、ＤＶＤ−ＲＯＭ、ビデオテープ、オーディオテープ、磁気記録トラック、電子ネットワークなどであり、或いは、プログラムやデータを例とした電子コンテンツを伝送又は記憶するためのその他の技術である。一実施の形態では、コンピュータは、ネットワークインタフェースカード、モデム、赤外線（ＩＲ）ポートなどのネットワーク通信デバイスや、ネットワークに接続するのに適したその他のネットワーク接続デバイスを有する。さらにコンピュータは、適切なオペレーティングシステムを実行する。例えば、Ｌｉｎｕｘ、Ｕｎｉｘ（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）３．１、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）９５、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）９８、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）Ｍｅ、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、Ａｐｐｌｅ（登録商標）ＭａｃＯＳ（登録商標）、ＩＢＭ（登録商標）ＯＳ／２（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）ＣＥ、Ｐａｌｍ  ＯＳ（登録商標）などである。通常、適切なオペレーティングシステムは有利なことに通信プロトコル実装を含む場合があり、これは、無線ネットワークを含み得るネットワークを介して渡されるすべての入来及び送出メッセージトラフィックを処理する。他の実施の形態では、オペレーティングシステムはコンピュータのタイプに応じて異なる場合もあるが、オペレーティングシステムは、ネットワークとの通信リンクを確立するのに必要な適切な通信プロトコルを提供し続けることができる。
【００３９】
図２にフレームのシーケンスを示す。ビデオシーケンスは、間隔を空けてとられた複数のビデオフレームを含む。フレームが表示されるレートは、フレームレートと呼ばれる。
静止ビデオの圧縮に使用される技術に加えて、動画ビデオ技術では、時間ｋのフレームを時間ｋ−１のフレームに関係付けて、ビデオ情報を相対的に少量のデータにさらに圧縮する。しかし、伝送エラーなどのエラーのために時間ｋ−１のフレームが利用不可能な場合、従来のビデオ技術では、時間ｋのフレームを正しく復号できないことがある。後で説明するとおり、本発明の実施の形態によれば、有利にも、時間ｋ−１のフレームが利用不可能なときでも時間ｋのフレームを復号することができるように、頑強な方式でビデオストリームを復号する。
【００４０】
フレームシーケンス中のフレームは、インタレース方式のフレームと、ノンインタレース方式のフレーム、即ちプログレッシブフレームのいずれかに対応するものである。インタレース方式のフレームでは、各フレームが２つの別々のフィールドで構成され、これらが共にインタレースされてフレームを形成する。このようなインタレース化は、ノンインタレース方式、プログレッシブフレームでは行われない。本明細書に述べる原理及び利点は、ノンインタレース方式即ちプログレッシブビデオのコンテキストで例示するが、インタレース方式ビデオとノンインタレース方式ビデオとの両方に適用可能であることを、当業者は理解するであろう。さらに、本発明の幾つかの実施の形態は、ＭＰＥＧ−２のコンテキスト又はＭＰＥＧ−４のコンテキストだけで述べる場合があるが、本明細書に述べる原理及び利点は、Ｈ．２６１、Ｈ．２６３、ＭＰＥＧ−２、ＭＰＥＧ−４、及びまだ開発されていないビデオ規格を含めて、広範なビデオ規格に適用可能である。さらに、本発明の幾つかの実施の形態では、エラー隠蔽技術を、例えばマクロブロックのコンテキストで述べる場合があるが、本明細書に述べる技術は、ブロック、マクロブロック、ビデオオブジェクトプレーン、ライン、個々のピクセル、ピクセルのグループなどにも適用できることは、当業者なら理解するであろう。
【００４１】
ＭＰＥＧ−４規格は、「オーディオビデオオブジェクトのコーディング：システム（Ｃｏｄｉｎｇ  ｏｆ  Ａｕｄｉｏ−Ｖｉｓｕａｌ  Ｏｂｊｅｃｔｓ：Ｓｙｓｔｅｍｓ）」１４４９６−１、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ２５０２、１９９８年１１月、及び「オーディオビデオオブジェクトのコーディング：ビジュアル（Ｃｏｄｉｎｇ  ｏｆ  Ａｕｄｉｏ−Ｖｉｓｕａｌ  Ｏｂｊｅｃｔｓ：Ｖｉｓｕａｌ）」１４４９６−２、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ２５０２、１９９８年１１月に定義されており、ＭＰＥＧ−４  Ｖｉｄｅｏ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｍｏｄｅｌは、ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１「ＭＰＥＧ−４ビデオ検証モデル１７．０（ＭＰＥＧ−４  Ｖｉｄｅｏ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｍｏｄｅｌ  １７．０）」ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１  Ｎ３５１５、中国、北京、２０００年７月に定義されている。
【００４２】
ＭＰＥＧ−２システムでは、１つのフレームが複数のブロックに符号化され、各ブロックは６つのマクロブロックに符号化される。マクロブロックは、輝度や色など、フレームを構成するための情報を含む。さらに、フレームは、静止フレーム即ちイントラ符号化フレームとして符号化することもできるが、フレームシーケンス中のフレームは、時間的に相関させるもの（即ち予測符号化フレーム）とすることができ、マクロブロックは、一時点におけるあるフレームのセクションを、別の時点における別のフレームのセクションに関係付けることができる。
【００４３】
ＭＰＥＧ−４システムでは、フレームシーケンス中のフレームがさらに、ビデオオブジェクトプレーン（ＶＯＰ）として知られる幾つかのビデオオブジェクトに符号化される。
１つのフレームを単一のＶＯＰに符号化、或いは複数のＶＯＰに符号化することができる。無線システムなど、あるシステムでは、ＶＯＰがフレームとなるように、各フレームが１つのＶＯＰだけを含む。ＶＯＰは受信側に送信され、そこで再びデコーダによって表示用のビデオオブジェクトに復号される。ＶＯＰは、イントラ符号化ＶＯＰ（Ｉ−ＶＯＰ）、予測符号化ＶＯＰ（Ｐ−ＶＯＰ）、両方向予符号化ＶＯＰ（Ｂ−ＶＯＰ）、又はスプライトＶＯＰ（Ｓ−ＶＯＰ）に対応するものとすることもできる。Ｉ−ＶＯＰは、別のフレーム又はピクチャからの情報に依存しない。即ち、Ｉ−ＶＯＰは独立して復号される。フレームが完全にＩ−ＶＯＰで構成されている場合、このフレームはＩフレームと呼ばれる。このようなフレームは、場面転換などの状況でよく使用される。Ｉ−ＶＯＰは、別のフレームからの内容に依存しないので頑強に送受信することができるものの、Ｐ−ＶＯＰ又はＢ−ＶＯＰと比較して、相対的に多量のデータ又はデータ帯域幅を消費する点で不都合である。ビデオを効率的に圧縮して送信するには、ビデオフレーム中の多くのＶＯＰをＰ−ＶＯＰに対応させる。
【００４４】
Ｐ−ＶＯＰは、ビデオオブジェクトを過去のＶＯＰ、即ち時間的に前の（ＶＯＰで符号化済みの）ビデオオブジェクトに参照付けることにより、ビデオオブジェクトを効率的に符号化する。この過去のＶＯＰは、参照ＶＯＰと呼ばれる。例えば、時間ｋのフレーム中のオブジェクトが時間ｋ−１のフレーム中のオブジェクトに関係付けられる場合、Ｐ−ＶＯＰ中に符号化される動き補償を使用して、Ｉ−ＶＯＰの場合よりも少ない情報でビデオオブジェクトを符号化することができる。参照ＶＯＰは、Ｉ−ＶＯＰ及びＰ−ＶＯＰのいずれでもよい。
【００４５】
Ｂ−ＶＯＰは、過去のＶＯＰと未来のＶＯＰとの両方を参照ＶＯＰとして使用する。リアルタイムのビデオビットストリーム中では、Ｂ−ＶＯＰは使用すべきではない。しかし、本明細書に述べる原理及び利点は、Ｂ−ＶＯＰを含むビデオビットストリームにも適用することができる。Ｓ−ＶＯＰは、アニメーション化されたオブジェクトを表示するのに使用される。
【００４６】
符号化されたＶＯＰは、マクロブロックに構成される。マクロブロックは、輝度（明るさ）成分を記憶するためのセクションと、クロミナンス（色）成分を記憶するためのセクションとを含む。マクロブロックは、通信ネットワーク１２０を介して送受信される。データの通信が、符号分割多重アクセス（ＣＤＭＡ）からの変調及び復調など、他の通信レイヤをさらに含み得ることは、当業者には理解されるであろう。ビデオビットストリームが対応するオーディオ情報を含んでもよく、これもまた、符号化及び復号されることは、当業者には理解されるであろう。
【００４７】
図３は、ビデオビットストリーム中のエラー又は不足データを隠蔽するプロセスを概略的に示したフローチャート３００である。エラーは、データの紛失、データの破損、ヘッダエラー、構文エラー、データ受信の遅延など、様々な問題又は利用不能に対応するものとなり得る。有利なことに図３のプロセスは、実施するのに比較的複雑でなく、比較的遅いデコーダによって実施することができる。
【００４８】
エラーを検出すると、プロセスは第１の決定ブロック３０４で開始される。第１の決定ブロック３０４で、エラーが、イントラ符号化（ｉｎｔｒａ−ｃｏｄｈｉｎｇ）に関するものか予測符号化（ｐｒｅｄｉｃｔｉｖｅ−ｃｏｄｈｉｎｇ）に関するものかを決定する。イントラ符号化又は予測符号化が、フレーム、マクロブロック、ビデオオブジェクトプレーン（ＶＯＰ）などに当てはまることは、当業者には理解されるであろう。例示はマクロブロックのコンテキストにおいてなされているが、図３に述べる原理及び利点はビデオオブジェクトプレーンなどにも当てはまることは、当業者なら理解するであろう。エラーがイントラ符号化マクロブロックに関するものである場合、第１の決定ブロック３０４から第１の状態３０８に進む。エラーが予測符号化マクロブロックに関するものである場合、第１の決定ブロック３０４から第２の決定ブロック３１２に進む。予測符号化マクロブロックの場合のエラーは、時間ｔの現在フレーム中の不足マクロブロックから、或いは動きの参照先である時間ｔ−１の参照フレーム中のエラーから生じ得ることを理解されたい。
【００４９】
第１の状態３０８で、不足マクロブロックと命名されたイントラ符号化マクロブロック中のエラーを補間、或いは空間的に隠蔽する。一実施の形態では、画像中で不足マクロブロックの「上」に表示されることになっている上方マクロブロックからのデータと、画像中で不足マクロブロックの「下」に表示されることになっている下方マクロブロックからのデータとを線形補間することにより、不足マクロブロック中のエラーを隠蔽する。線形補間以外の技術を使用することもできる。
【００５０】
例えば、上方マクロブロックからコピーされたｌｂとして示されるラインと、下方マクロブロックからコピーされたｌｔとして示されるラインとを使用して、垂直に線形補間することができる。一実施の形態では、上方マクロブロックの最低ラインをｌｂとし、下方マクロブロックの最上ラインをｌｔとして使用する。
【００５１】
状況によっては、上方マクロブロック及び／又は下方マクロブロックも利用不可能な場合がある。例えば、上方マクロブロック及び／又は下方マクロブロックがエラーを有することがある。さらに、不足マクロブロックが画像の上限又は画像の下限に位置する場合もある。
【００５２】
本発明の一実施の形態では、上方マクロブロックと下方マクロブロックとの間の線形補間が適用不可能な場合、以下の規則を使用して不足マクロブロック中のエラーを隠蔽する。
【００５３】
不足マクロブロックが画像の上限にある場合、下方マクロブロックの最上ラインをｌｂとして使用する。下方マクロブロックもない場合、画像中で次に低いマクロブロックの最上ラインをｌｂとして使用する。以下、さらに低いマクロブロックが不足している場合も同様にする。すべての下方マクロブロックが不足している場合、灰色ラインをｌｂとして使用する。
【００５４】
不足マクロブロックが画像の下限にある場合、又は下方マクロブロックがない場合、上方マクロブロックの最低ラインｌｂをｌｔとしても使用する。
【００５５】
不足マクロブロックが画像の上限にも画像の下限にもなく、上方マクロブロックと下方マクロブロックとの間の補間が適用不可能な場合、本発明の一実施の形態では、不足マクロブロックを灰色ピクセル（Ｙ＝Ｕ＝Ｖ＝１２８値）で置換する。
【００５６】
復号規格の１つであるＭＰＥＧ−４によれば、エラーを含むブロックに関連するピクセルは「０」として記憶され、これは表示において緑色のピクセルに対応する。灰色ピクセルは、緑色よりも不足ブロックに関連する色に近付けることができ、シミュレーションテストでは、複雑さを相対的にほとんど又はまったく増大させずに、緑色のピクセルに勝る０．１ｄＢの改善が見られた。例えば、灰色のピクセル色はコピー命令によって実現することができる。空間的な隠蔽が完了すると、プロセスは終了する。
【００５７】
エラーが予測符号化マクロブロックに関するものである場合、第２の決定ブロック３１２で、別の動きベクトルが不足ブロックに使用可能か否かを決定する。例えば、ビデオビットストリームは、冗長動きベクトルなど別の動きベクトルも含む場合があり、これを不足マクロブロック中の標準的な動きベクトルの代わりに使用することができる。一実施の形態では、冗長動きベクトルは、標準的な動きベクトルを２倍にすることによって推定される。冗長動きベクトルの一実施の形態では、時間ｔの現在フレーム中の動きを、時間ｔ−２のフレームに参照付ける。時間ｔ−２のフレームと冗長動きベクトルとの両方が利用
可能な場合、第２の決定ブロック３１２から第２の状態３１６に進み、冗長動きベクトル及び時間ｔ−２のフレームから不足マクロブロックを再構築する。そうでない場合、第２の決定ブロック３１２から第３の決定ブロック３２０に進む。
【００５８】
第３の決定ブロック３２０では、エラーが、現在フレーム中の予測符号化マクロブロックの不足、即ち動きベクトルの不足によるものか否かを決定する。動きベクトルが不足している場合、第３の決定ブロック３２０から第３の状態３２４に進む。そうでない場合、第３の決定ブロック３２０から第４の決定ブロック３２８に進む。
【００５９】
第３の状態３２４では、不足マクロブロック中で不足している動きベクトルを代用して、時間的なエラー隠蔽を提供する。不足の動きベクトルを時間的に隠蔽する一実施の形態については、後で図４に関してより詳細に述べる。プロセスは第３の状態３２４から第４の決定ブロック３２８に進む。
【００６０】
第４の決定ブロック３２８では、エラーが参照フレーム、例えば時間ｔ−１のフレームの不足によるものか否かを決定する。この参照フレームが利用可能な場合、第４の決定ブロック３２８から第４の状態３３２に進み、参照フレーム及び第３の状態３２４からの代用動きベクトルを使用する。そうでない場合、第５の状態３３６に進む。
【００６１】
第５の状態３３６では、時間ｔ−ｋのフレームを参照フレームとして使用する。フレームが前の前のフレームに対応する場合、ｋは２となり得る。一実施の形態では、マクロブロック中で受け取った、或いは第３の状態３２４で代用した動きベクトルに、直線的な動きの場合は２などの因数を掛けて、エラーを隠蔽する。ビデオ画像の動きの特性に応じて他の適切な因数が使用され得ることを、当業者は理解するであろう。プロセスは、次のエラーが検出されるまで終了に向けて進む。
【００６２】
図４に、不足の動きベクトルを時間的に隠蔽する例示的なプロセスを示す。一実施の形態では、マクロブロックは４つの動きベクトルを含む。図示の時間的隠蔽技術では、不足マクロブロック４０２の不足の動きベクトルを、他のマクロブロックからコピーした動きベクトルで代用する。後述する別の実施の形態では、不足マクロブロック４０２の不足の動きベクトルを、他のマクロブロックから補間された動きベクトルで代用する。
【００６３】
不足マクロブロック４０２が画像中の他のマクロブロックの上及び下にある場合、不足マクロブロック４０２の上にある上方マクロブロック４０４から動きベクトルをコピーし、不足マクロブロック４０２の下にある下方マクロブロック４０６から動きベクトルをコピーする。
【００６４】
不足マクロブロック４０２は、第１の不足の動きベクトル４１０、第２の不足の動きベクトル４１２、第３の不足の動きベクトル４１４、第４の不足の動きベクトル４１６に対応する。上方マクロブロック４０４は、第１の上方動きベクトル４２０、第２の上方動きベクトル４２２、第３の上方動きベクトル４２４、第４の上方動きベクトル４２６を含む。下方マクロブロック４０６は、第１の下方動きベクトル４３０、第２の下方動きベクトル４３２、第３の下方動きベクトル４３４、第４の下方動きベクトル４３６を含む。
【００６５】
上方マクロブロック４０４と下方マクロブロック４０６とが両方とも利用可能であり、動きベクトルを含む場合、図示のプロセスは、第３の上方動きベクトル４２４を第１の不足の動きベクトル４１０として使用し、第４の上方動きベクトル４２６を第２の不足の動きベクトル４１２として使用し、第１の下方動きベクトル４３０を第３の不足の動きベクトル４１４として使用し、第２の下方動きベクトル４３２を第４の不足の動きベクトル４１６として使用する。
【００６６】
不足マクロブロック４０２が画像の上限にある場合、第１の不足の動きベクトル４１０と第２の不足の動きベクトル４１２との両方を０ベクトル（動きなし）に設定する。また、第１の下方動きベクトル４３０を第３の不足の動きベクトル４１４として使用し、第２の下方動きベクトル４３２を第４の不足の動きベクトル４１６として使用する。
【００６７】
下方マクロブロック４０６が破損しているか、或いは利用不可能であり、及び／又は不足マクロブロック４０２が画像の下限にある場合、第３の不足の動きベクトル４１４を、第１の不足の動きベクトル４１０に使用される値と等しい値に設定し、第４の不足の動きベクトル４１６を、第２の不足の動きベクトル４１２に使用される値と等しい値に設定する。
【００６８】
一実施の形態では、不足マクロブロック４０２の不足の動きベクトルを、他のマクロブロックから補間された動きベクトルで代用する。様々な補間技術が存在する。一例では、第１の不足の動きベクトル４１０を、第１の上方動きベクトル４２０と、第３の上方動きベクトル４２４の３倍とのベクトル和で置換する。即ちｖ１410＝ｖ１420＋（３）（ｖ３424）である。別の例では、第３の不足の動きベクトル４１４を、第３の下方動きベクトル４３４と、第１の下方動きベクトル４３０の３倍とのベクトル和で置換することができる。即ちｖ３414＝（３）（ｖ１430）＋ｖ３434である。
【００６９】
図５は、ビデオビットストリーム中のエラーを適宜隠蔽するプロセスを概略的に示したフローチャート５００である。有利にも図５のプロセスは、隠蔽モードを適宜選択し、それにより、エラー隠蔽済み又は再構築済み画像を比較的歪みの少ない画像とすることができる。シミュレーションテストでは、ピーク信号対雑音比が約１．５デシベル（ｄＢ）まで改善されると予測された。現在フレームについてのデータがエラーなしで受信された場合でも、図５のプロセスを使用してエラー隠蔽モードを選択することができる。
【００７０】
例えば、このプロセスで、連続的な３つのフレームを受信することができる。第１フレームは明瞭に受信される。第２フレームは、比較的高い度合いで破損して受信される。第３フレームについてのデータは明瞭に受信されるが、第３フレームの一部の再構築は、比較的高い度合いで破損して受信される第２フレームの一部に依存する。ある種の状況下では、第３フレームの一部が破損フレームの一部に依存するので、第３フレームの一部を隠蔽するのが有利となり得る。図５に示すプロセスでは、有利にも、このようなエラー隠蔽技術が標準的なビデオデコーダによって対応する画像の表示を提供するのに必要とされないときでも、いつエラー隠蔽技術を呼び出すべきかを識別することができる。
【００７１】
プロセスは第１の状態５０４で開始し、現在フレーム、即ち時間ｔのフレームについてのビデオビットストリームからのデータを受け取る。受け取ったデータの一部は、ドロップアウト、破損、遅延などのエラーのために不足している場合がある。プロセスは第１の状態５０４から第１の決定ブロック５０６に進む。
【００７２】
第１の決定ブロック５０６では、分析中のデータがイントラ符号化ビデオオブジェクトプレーン（Ｉ−ＶＯＰ）、又は予測符号化ＶＯＰ（Ｐ−ＶＯＰ）に対応するかを決定するプロセスは、マクロブロックやフレームなど種々のレベルで作用することができ、ＶＯＰがフレームとなり得ることを、当業者は理解するであろう。ＶＯＰがＩ−ＶＯＰである場合、第１の決定ブロック５０６から第２の決定ブロック５１０に進む。そうでない場合、即ちＶＯＰがＰ−ＶＯＰである場合、第３の決定ブロック５１４に進む。
【００７３】
第２の決定ブロック５１０では、Ｉ−ＶＯＰに関する受け取ったデータ中にエラーがあるか否かを決定する。エラーがある場合、第２の決定ブロック５１０から第２の状態５１８に進む。そうでないときは第３の状態５２２に進む。
【００７４】
第２の状態５１８では、先に図３の第１の状態３０８に関して記載した空間的隠蔽技術などの空間的隠蔽技術によってエラーを隠蔽する。プロセスは第２の状態５１８から第４の状態５２６に進む。
【００７５】
第４の状態５２６では、エラー値を、第２の状態５１８で使用した隠蔽技術について予測されるエラーに設定する。一実施の形態では、エラーを０〜２５５の範囲に正規化する。０はエラーなしに対応し、２５５は最大エラーに対応する。例えば、エラー隠蔽モードにおけるピクセルに灰色ピクセルが取って代わる場合、エラー値を２５５とすることができる。一実施の形態では、エラー値は、事前計算済みのエラー推定値のテーブルから取り出す。空間補間法では、エラーのないピクセルに隣接するピクセルは、通常、エラーのないピクセルからより遠くにあるピクセルよりも忠実に隠蔽される。一実施の形態では、エラーのないピクセルに隣接するピクセルについてはエラー値９７としてモデル化し、他のピクセルはエラー値２１５でモデル化する。エラー値は、メモリアレイ中にピクセル単位で維持することができ、選択されたピクセルだけについて維持することもでき、ピクセルのグループについて維持することもでき、その他も可能である。
【００７６】
第３の状態５２２では、エラーのないＩ−ＶＯＰを受け取っており、このＶＯＰの対応ピクセルのエラー値を（０に）クリアする。当然、エラーのない状態を示すのには他の値も任意に選択することができる。プロセスは第３の状態５２２から第５の状態５３０に進み、受け取ったデータからＶＯＰを構築して終了する。プロセスは、受け取った次のＶＯＰを処理するために再アクティブ化され得る。
【００７７】
第３の決定ブロック５１４に戻るが、ここで、Ｐ−ＶＯＰがエラーを含むか否かを決定する。エラーがない場合、第３の決定ブロック５１４から第４の決定ブロック５３４に進む。そうでない場合、オプションの第６の状態５３８に進む。
【００７８】
第４の決定ブロック５３４で、対応するピクセルのエラー値が０か否かを決定する。エラー値が０であり、現在のＰ−ＶＯＰのデータ中にエラーがない場合、エラーのない状況に対応するので、第５の状態５３０に進み、受け取ったデータでＶＯＰを構築する。次いで、プロセスは終了するか、処理すべき次のＶＯＰのために待機する。エラー値が０でない場合、第７の状態５４２に進む。
【００７９】
第７の状態５４２では、受け取ったデータを使用した場合に得られることになる推定エラー値、即ち新しいエラー値を予測する。例えば、前のフレームがエラーを含んでいた場合、現在フレームのＰ−ＶＯＰを復号して使用することによって、このエラーが現在フレームに伝搬することがある。一実施の形態では、推定エラー値は、およそ１０３にエラー伝搬項を足した値であり、エラー伝搬項は前のエラー値によって決まる。エラー伝搬項はまた、１フレームあたりのエラー伝搬のわずかな損失を反映するように、０．９３などの「リーキーな」値を含み得る。プロセスは第７の状態５４２から第８の状態５４６に進む
。
【００８０】
第８の状態５４６では、エラー復元技術を使用した場合に得られることになる推定エラー値を予測する。エラー復元技術は、図３及び４に関して記載したエラー隠蔽技術や、他のフレームを参照する追加の動きベクトルを使用するものなど、様々な技術に対応するものとすることができる。追加の動きベクトルが前の前のフレームを参照する場合、一実施の形態では、４６に伝搬エラーを足した値をエラー値として使用する。前のフレーム中の伝搬エラーは、前の前のフレーム中の伝搬エラーとは異なり得ることを認識されたい。一実施の形態では、複数のエラー復元技術から得られることになる推定エラー値を予測する。プロセスは第８の状態５４６から第９の状態５５０に進む。
【００８１】
第９の状態５５０では、受け取ったデータを使用することと、エラー復元技術を使用することとの間で選択を行う。一実施の形態では、受け取ったデータを使用することと、複数のエラー復元技術のうちの１つを使用することとの間で選択を行う。最低の予測推定エラー値をもたらす構築、隠蔽、又は再構築技術を使用して、画像の対応部分を構築する。
プロセスは、第９の状態５５０から第１０の状態５５４に進み、そこで、選択した受信データ又はフレームを生成するのに使用されたエラー復元技術に従って、影響を受けるエラー値を更新して終了する。次いでプロセスは、次のＶＯＰを受け取るまで待機し、次のＶＯＰを処理するために再アクティブ化され得ることを理解されたい。
【００８２】
オプションの第６の状態５３８では、複数のエラー復元技術によって予測エラー値を計算する。最低の予測推定エラー値を示すエラー復元技術を選択する。プロセスは、オプションの第６の状態５３８から第１１の状態５５８に進む。
【００８３】
第１１の状態５５８では、オプションの第６の状態５３８で選択したエラー復元技術を適用する。１つのエラー復元技術だけを使用してＰ−ＶＯＰについてのエラーを隠蔽する場合、オプションの第６の状態５３８はなくてもよく、選択プロセスなしで第１１の状態５５８でエラー復元技術を適用することができることは、当業者なら理解するであろう。
プロセスは、第１１の状態５５８から第１２の状態５６２に進み、第１１の状態５５８で適用したエラー復元技術に従って対応エラー値を更新する。次いでプロセスは終了し、後のＶＯＰを処理するために再アクティブ化され得るようになる。
【００８４】
図６は、加重予測を使用してビデオビットストリーム中のエラーを補償することのできるプロセス概略的に示したフローチャート６００である。このプロセスの一実施の形態は、適応技術よりも相対的に実施が複雑でない。図示のプロセスでは、データフレームを受け取り、１マクロブロックずつデータを処理する。このプロセスでは、伝送中のエラーが生じた場合、全データフレームは受け取らなくてよいことを理解されたい。むしろ、フレームを受け取るための時間枠が失効したと決定したり、後続のフレームについてのデータを受け取ったりといった他の条件下で、現在フレームの処理を開始することができる。
【００８５】
プロセスは第１の決定ブロック６０４で開始し、現在フレームが予測符号化フレーム（Ｐフレーム）であるかイントラ符号化フレーム（Ｉフレーム）であるかを決定する。現在フレームがＩフレームに対応する場合、第１の決定ブロック６０４から第２の決定ブロック６０８に進む。現在フレームがＰフレームに対応する場合、第１の決定ブロック６０４から第３の決定ブロック６１２に進む。
【００８６】
第２の決定ブロック６０８では、分析中のマクロブロックがエラーを含むか否かを決定する。分析中のマクロブロックは、フレームの最初のマクロブロックに対応し、フレームの最後のマクロブロックで終わるものとすることができる。ただし、分析の順序を変更することができる。エラーは、データの不足、構文エラー、チェックサムエラーなど、様々な異常に対応する可能性がある。マクロブロック中にエラーが検出されない場合、第２の決定ブロック６０８から第１の状態６１６に進む。マクロブロック中にエラーが検出された場合、第２の状態６２０に進む。
【００８７】
第１の状態６１６では、マクロブロックを復号する。イントラ符号化フレームのすべてのマクロブロックはイントラ符号化されている。イントラ符号化マクロブロックは、他のマクロブロックを参照せずに復号することができる。プロセスは第１の状態６１６から第３の状態６２４に進み、マクロブロック中のピクセルに対応するエラー分散（ＥＶ）値を０にリセットする。エラー分散値は、予測又は予想されるエラー伝搬量に関係する。イントラ符号化マクロブロックは他のマクロブロックに依存しないので、エラーのないイントラ符号化マクロブロックは、エラー分散０を有すると予想することができる。０を示すのにどんな数でも任意に選択できることは、当業者には理解されるであろう。また、エラー分散は、ピクセル単位、ピクセルのグループ単位、選択されたピクセル単位、マクロブロック単位など、様々な方法で追跡され得ることも理解されるであろう。プロセスは第３の状態６２４から第４の決定ブロック６２８に進む。
【００８８】
第４の決定ブロック６２８では、フレーム中の最後のマクロブロックを処理したか否かを決定する。処理すべきさらなるマクロブロックがフレーム中にある場合、第４の決定ブロック６２８から第２の決定ブロック６０８に戻る。最後のマクロブロックの処理が終わっていると、プロセスは終了し、後続のフレームのために再アクティブ化され得るようになる。
【００８９】
第２の状態６２０では、先に図３の第１の状態３０８に関して記載した空間的隠蔽技術などの空間的隠蔽技術によって、エラーを隠蔽する。一実施の形態では、マクロブロックのピクセルを、１２８で符号化される灰色で埋める。プロセスは第２の状態６２０から第４の状態６３２に進み、マクロブロックの対応エラー分散σH2を所定の値σHΓ2に設定する。一実施の形態では、エラー分散σH2を０〜２５５の範囲に正規化する。所定の値は、例えばシミュレーション結果や実体面でのテストなどから得ることができる。さらに、所定の値は、隠蔽技術に応じて決まるものとすることもできる。一実施の形態では、隠蔽技
術がマクロブロックを灰色で埋めるものである場合、所定の値σHΓ2は２５５である。プロセスは第４の状態６３２から第４の決定ブロック６２８に進む。
【００９０】
フレームがＰフレームの場合、第１の決定ブロック６０４から第３の決定ブロック６１２に進む。第３の決定ブロック６１２では、分析中のマクロブロックがエラーを含むか否かを決定する。エラーが検出されない場合、第３の決定ブロック６１２から第５の決定ブロック６３６に進む。エラーが検出された場合、第３の決定ブロック６１２から第５の状態６４０に進む。
【００９１】
Ｐフレーム中のマクロブロックは、インター符号化マクロブロックとイントラ符号化マクロブロックとのいずれかに対応し得る。第５の決定ブロック６３６で、マクロブロックがインター符号化マクロブロック又はイントラ符号化マクロブロックに対応するかを決定する。マクロブロックがイントラ符号化マクロブロックに対応する場合、第５の決定ブロック６３６から第６の状態６４４に進む。マクロブロックがインター符号化マクロブロックに対応する場合、第７の状態６４８に進む。
【００９２】
第６の状態６４４では、エラーなしで受け取ったイントラ符号化マクロブロックを復号することに進む。イントラ符号化マクロブロックは、別のマクロブロックを参照せずに復号することができる。プロセスは第６の状態６４４から第８の状態６５２に進み、このマクロブロックについて維持している対応エラー分散を０にリセットする。プロセスは第８の状態６５２から第６の決定ブロック６６４に進む。
【００９３】
第６の決定ブロック６６４では、フレーム中の最後のマクロブロックを処理したか否かを決定する。処理すべきさらなるマクロブロックがフレーム中にある場合、第６の決定ブロック６６４から第３の決定ブロック６１２に戻る。最後のマクロブロックの処理が終わっている場合、プロセスは終了し、後続のフレームのために再アクティブ化され得るようになる。
【００９４】
第７の状態６４８では、マクロブロックをエラーなしで受け取ったときでも、マクロブロックのピクセルを再構築する。前の前のフレームの方が前のフレームよりも少ない破損を呈する場合があるので、この状況で再構築すると、画質が向上する可能性がある。このプロセスの一実施の形態では、第１の再構築モードと第２の再構築モードとの間で、いずれのモードがよりよいエラー隠蔽をもたらすと予想されるかに応じて選択する。別の実施の形態では、加重合計を使用して２つのモードを組み合わせる。一例では、使用する重みは推定エラーの逆数に対応し、したがってプロセスは最小２乗誤差（ＭＭＳＥ）で復号する。
【００９５】
第１の再構築モードでは、受け取った動きベクトルと前のフレーム中の対応部分とに基づいて、マクロブロックを再構築する。第１の再構築モードで再構築されるピクセルｑ＾kを式１に示す。数式１で、ｒ＾kは予測残差である。
【００９６】
【数１】
2008306734.tif 000003
第２の再構築モードでは、マクロブロックの動きベクトルによって指定される動きの量を２倍にすることによってマクロブロックを再構築し、前の前のフレーム、即ち時間ｋ−２のフレームの対応部分を使用する。
【００９７】
第１の再構築モードで再構築されるピクセルのエラー分散σPk-12を数式２に示す。ｋはフレームを表し、例えば現在フレームの場合はｋ＝０である。第２の再構築モードで再構築されるピクセルのエラー分散σPk-22を数式３に示す。
【００９８】
【数２】
2008306734.tif 000004
【００９９】
【数３】
2008306734.tif 000005
一実施の形態では、σPk-12＞σHΘ2＋σPk-22の場合、第２の再構築モードを選択する。別の実施の形態では、加重合計を使用してこれらの再構築技術を組み合わせたものである。一例では、使用する重みは予測エラーの逆数に対応し、したがって最小２乗誤差（ＭＭＳＥ）で復号する。加重合計を使用する場合、２つの予測値を組み合わせてピクセルｑkを再構築する。一実施の形態では、ピクセルｑkは、数式４に示すようにｑ＾kによって
再構築される。
【０１００】
【数４】
2008306734.tif 000006
一実施の形態では、重み係数βは、数式５から計算される。
【０１０１】
【数５】
2008306734.tif 000007
プロセスは第７の状態６４８から第９の状態６５６に進む。第９の状態６５６で、第７の状態６４８で適用した再構築に基づいて、このマクロブロックに対応するエラー分散を更新する。プロセスは第９の状態６５６から第６の決定ブロック６６４に進む。一実施の形態では、エラー分散は数式６の表現から計算される。
【０１０２】
【数６】
2008306734.tif 000008
第５の状態６４０では、マクロブロック中のエラーを隠蔽する。様々な隠蔽技術が適用可能である。一実施の形態では、マクロブロックがイントラ符号化であるかインター符号化であるかにかかわらず、時間的な隠蔽を使用する。他の実施の形態では、隠蔽技術を選択する際の要因として、マクロブロック中で使用された符号化のタイプを使用することができることを理解されたい。
【０１０３】
このプロセスの一実施の形態では、第５の状態６４０で、前のフレームに基づく第１の隠蔽モードと、前の前のフレームに基づく第２の隠蔽モードとの間で選択する。第１の隠蔽モードでは、画像中で不足マクロブロックの上にあるマクロブロックから抽出した動きベクトルを使用して、不足マクロブロックに対するインター符号化マクロブロックを生成する。不足マクロブロックの上にあるマクロブロックがエラーを有する場合、動きベクトルを０ベクトルに設定することができる。生成したインター符号化マクロブロックと、前のフレーム即ちｔ−１のフレームからの対応する参照情報とを使用して、フレームの対応
部分を再構築する。
【０１０４】
第２の隠蔽モードでは、画像中で不足マクロブロックの上にあるマクロブロックから抽出した動きベクトルをコピーして２を掛けることにより、不足マクロブロックに対するインター符号化マクロブロックを生成する。不足マクロブロックの上にあるマクロブロックがエラーを有する場合、動きベクトルを０ベクトルに設定することができる。生成したインター符号化マクロブロックと、前の前のフレーム即ちｔ−２のフレームからの対応する参照情報とを使用して、フレームの対応部分を再構築する。
【０１０５】
エラー分散は、関連する伝搬エラーと隠蔽エラーの合計としてモデル化することができる。一実施の形態では、第１の隠蔽モードは第２の隠蔽モードよりも低い隠蔽エラーを有するが、第２の隠蔽モードは、第１の隠蔽モードよりも低い伝播エラーを有する。
【０１０６】
一実施の形態では、第１の隠蔽モードと第２の隠蔽モードとの間で、いずれがより低い推定エラー分散をもたらすかに基づいて選択する。別の実施の形態では、加重合計を使用して２つのモードを組み合わせる。数式７で、σqk(i)2は、ピクセルｑkのエラー分散を示す。前のフレームに基づく第１の隠蔽モードでは、ｉの値は１に等しく、前の前のフレームに基づく第２の隠蔽モードでは、ｉの値は２に等しい。
【０１０７】
【数７】
2008306734.tif 000009
数式７で、σHΔ(i)2は、その隠蔽モードでのエラー分散に対応し、σck-12は、伝搬エラー分散に対応する。
【０１０８】
別の実施の形態では、加重合計を計算して、隠蔽のエラー分散をさらに低減させる。例えば、数式８に示すように、ｑ＾kをｑ〜kで置換することができる。
【０１０９】
【数８】
2008306734.tif 000010
一実施の形態では、重み係数αは、数式９のように示される。
【０１１０】
【数９】
2008306734.tif 000011
プロセスは第５の状態から第１０の状態６６０に進む。第１０の状態６６０では、第５の状態６４０で適用した隠蔽に基づいて、このマクロブロックに対応するエラー分散を更新し、第６の決定ブロック６６４に進む。加重合計を使用する一実施の形態では、エラー分散は数式１０に示されたものから計算される。
【０１１１】
【数１０】
2008306734.tif 000012
状況によっては、フレーム全体がドロップしているか紛失している。本発明の一実施の形態では有利にも、フレームシーケンスから不足フレームが検出されるのに応答して、前のフレームを繰り返すか、又は前のフレームと次のフレームとの間で補間する。リアルタイムの適用例では、次のフレームを受け取って、次のフレームを復号し、前のフレームと次のフレームから補間した置換フレームを生成するための時間をデコーダに与えるために、フレームシーケンスの表示はわずかに遅延する可能性がある。不足フレームは、受け取ったフレームからフレームレートを計算することによって、そして、後続のフレームを受信する予想時間を計算することによって検出され得る。フレームが予想時間に到着しない場合、前のフレームで置換するか、或いは前のフレーム及び次のフレームから補間する。
このプロセスの一実施の形態ではさらに、利用可能なオーディオ部分を表示画像に対応するように同期させる。
【０１１２】
データ破損は、場合によっては避けられないことである。様々な技術を、ビデオデータの送信又は受信におけるエラーを隠蔽するのに役立てることができる。しかし、標準的なビデオ復号技術では、非効率的なことに、エラーなしのデータをエラーありとしてしまう可能性がある。例えば、ＭＰＥＧ−４規格では、マクロブロック中にエラーが検出されたときはこのマクロブロック全体を捨てるよう推奨されている。以下の技術は、破損のあるビデオパケットから幾つかのマクロブロックについてのデータを確実に回復して使用することができることを例示するものである。例えば、ＭＰＥＧ−４システムにおけるマクロ
ブロックは、６つの８×８画像ブロックを含み得る。これらの画像ブロックのうち４つは輝度を符号化し、２つは色度を符号化する。従来のシステムの１つでは、伝送エラーが１つの画像ブロックに影響を及ぼしただけであっても、６つの画像ブロックをすべて廃棄する。
【０１１３】
図７Ａ及び７Ｂに、サンプルビデオパケットを示す。ＭＰＥＧ−４システムでは、ビデオパケットは、ビデオパケットの開始を示すための再同期マーカを含む。１つのビデオパケット内にあるマクロブロックの数は変更され得る。
【０１１４】
図７Ａには、Ｉ−ＶＯＰの場合の、ＤＣ成分及びＡＣ成分を有するビデオパケット７００のサンプルを示す。ビデオパケット７００はビデオパケットヘッダ７０２を含み、ビデオパケットヘッダ７０２は、再同期マーカと、パケットのマクロブロックを復号するのに使用できるその他のヘッダ情報とを含む。その他のヘッダ情報は、パケット中の第１マクロブロックのマクロブロック番号や、パケットを復号するための量子化パラメータ（ＱＰ）などである。ＤＣ部分７０４は、輝度などのｍｃｂｐｃ、ｄｑｕａｎｔ、及びｄｃデータを含み得る。ＤＣマーカ７０６は、ＤＣ部分７０４をＡＣ部分７０８から分離している。一実施の形態では、ＤＣマーカ７０６は、１９ビットのバイナリストリング「１１０  １０１１  ００００  ００００  ０００１」である。ＡＣ部分７０８は、ａｃ＿ｐｒｅｄフラグ及びその他の文字情報を含み得る。
【０１１５】
図７Ｂには、Ｐ−ＶＯＰの場合のビデオパケット７２０を示す。ビデオパケット７２０は、図７Ａのビデオパケットヘッダ７０２と同様のビデオパケットヘッダ７２２を含んでいる。ビデオパケット７２０はさらに、動きデータを含む動きベクトル部分７２４を含んでいる。動きマーカ７２６は、動きベクトル部分７２４中の動きデータをＤＣＴ部分７２８中の文字データから分離している。一実施の形態では、動きマーカは１７ビットのバイナリストリング「１  １１１１  ００００  ００００  ０００１」である。
【０１１６】
図８に、破損したマクロブロックを廃棄する例を示す。リバーシブル可変長符号（ＲＶＬＣ）は、文字符号などのデータを、順方向８０２と反対方向又は逆方向８０４との両方で読取り又は復号することができるように設計されている。例えば、順方向８０２でマクロブロックがＮ個の場合、最初のマクロブロック８０６、ＭＢ＃０を最初に読み取り、最後のマクロブロック８０８、ＭＢ＃Ｎ−１を最後に読み取る。マクロブロック８１０でエラーを突き止めることができ、これを使用して、廃棄するマクロブロック８１２の範囲を規定することができる。
【０１１７】
図９は、本発明の一実施の形態に係る、破損したパケットの離散コサイン変換（ＤＣＴ）部分を部分的にＲＶＬＣ復号するプロセスを概略的に示したフローチャートである。プロセスは、第１の状態９０４で、ビデオパケットのビデオパケットヘッダのマクロブロック番号などのマクロブロック情報を読み取ることによって開始される。プロセスは第１の状態９０４から第２の状態９０８に進む。
【０１１８】
第２の状態９０８では、ビデオパケットのＤＣ部分又は動きベクトル部分を適切に調査する。ビデオパケットヘッダと、ＤＣ部分又は動きベクトル部分とに構文テスト及び論理テストを適用して、その中のエラーを検出する。プロセスは第２の状態９０８から第１の決定ブロック９１２に進む。
【０１１９】
第１の決定ブロック９１２で、この例示的なプロセスは、第１の状態９０４からのビデオパケットヘッダ中に、或いは第２の状態９０８からのＤＣ部分又は動きベクトル部分にエラーがあったか否かを決定する。エラーが検出された場合、第１の決定ブロック９１２から第３の状態９１６に進む。エラーが検出されなかった場合、第１の決定ブロック９１２から第４の状態９２０に進む。
【０１２０】
第３の状態９１６では、ビデオパケットを廃棄する。ビデオパケットヘッダ中のエラー、或いはＤＣ部分又は動きベクトル部分中のエラーが不適当に復号された場合、比較的重
大なエラーにつながる可能性があることは、当業者には理解されるであろう。一実施の形態では、代わりにエラー隠蔽技術を呼び出し、終了する。プロセスは、後で別のビデオパケットを読み取るために再アクティブ化され得るようになる。
【０１２１】
第４の状態９２０では、ビデオパケットを順方向に復号する。一実施の形態では、標準的なＭＰＥＧ−４ＲＶＬＣ復号技術に従ってビデオバケットを復号する。このプロセスの一実施の形態では、マクロブロックカウンタ中でマクロブロックのカウントを維持する。
ビデオパケットの最初にあるヘッダはマクロブロックインデックスを含み、これを使用してマクロブロックカウンタを初期化することができる。復号が順方向に進むにつれて、マクロブロックカウンタがインクリメントする。エラーが見つかった場合、一実施の形態では、マクロブロックカウンタから１カウントを除去し、マクロブロックカウンタが完全に復号済みのマクロブロックの数を含むようにする。
【０１２２】
さらに、このプロセスの一実施の形態では、すべてのコードワードを２分木の葉として記憶する。２分木の枝には、０と１とのいずれかの符号が付けられる。このプロセスの一実施の形態では、マクロブロックがイントラ符号化されているかインター符号化されているかに応じて、異なる２つの木フォーマットを使用する。順方向に復号する場合、ビデオパケットからのビットを、ＲＶＬＣデータを含むビットバッファから取り出し、３つのイベントのうちの１つがみられるまで木の中のデータを走査する。これらのイベントは、葉ノードで有効なコードワードに到達する第１のイベントと、２分木の無効な葉（いずれの
ＲＶＬＣコードワードにも対応しない）に到達する第２のイベントと、ビットバッファの終わりに到達する第３のイベントに対応する。
【０１２３】
第１のイベントは、エラーがないことを示す。エラーがない場合、単純なルックアップテーブルなどを介して、有効なＲＶＬＣコードワードをそれに対応する葉ノード（ｌａｓｔ、ｒｕｎ、ｌｅｖｅｌ）にマッピングする。一実施の形態では、この情報をアレイに記憶する。８×８ブロック全体が復号されたことは、ｌａｓｔ＝１を有するＲＶＬＣコードワードがあることによって示されるが、このとき、プロセスは次のブロックを復号することに進み、エラーがみられるまで又は最後のブロックに到達するまで継続する。
【０１２４】
第２のイベント及び第３のイベントは、エラーに対応する。これらのエラーは、様々なエラー条件によって引き起こされる可能性がある。エラー条件の例としては、無効なＲＶＬＣコードワードが挙げられ、これは、ＥＳＣＡＰＥシンボルの予想位置に誤ったマーカビットがあることや、ＥＳＣＡＰＥシンボルからの復号済みコードワードが、通常の（ＥＳＣＡＰＥでない）シンボルによって復号されているはずの（ｒｕｎ、ｌｅｎｇｔｈ、ｌｅｖｅｌ）情報をもたらすことや、６４個よりも多くの（又はＤＣがＡＣと別に符号化されたイントラブロックの場合は６３個よりも多くの）ＤＣＴ係数が８×８ブロック中にあることや、ビデオパケット中のすべての８×８ブロックの予想ＤＣＴ係数すべてをうまく復号した後に余分なビットが残っていることや、ビデオパケット中の予想されるすべての８×８ブロックを復号するにはビットが不十分であることなどによる。これらの条件を、順番にテストすることができる。例えば、余分なビットが残っているか否かをテストする場合、ビデオパケット中のすべての８×８ブロックを処理した後でこの条件をテストする。別の例では、ＤＣＴ係数の数のテストは、ブロックごとに行うことができる。プロセスは第４の状態９２０から第２の決定ブロック９２４に進む。ただし、第４の状態９２０及
び第２の決定ブロック９２４をＦＯＲループなどのループに含むこともできることは、当業者には理解されるであろう。
【０１２５】
第２の決定ブロック９２４では、第４の状態９２０（順方向）で記載したビデオパケットの順方向復号でエラーがあったか否かを決定する。エラーがなかった場合、第２の決定ブロック９２４から第５の状態９２８に進む。順方向復号でエラーがあった場合、第２の決定ブロック９２４から、第６の状態９３２及び第１０の状態９４８に進む。順方向復号でエラーがあると、それ以上の順方向復号を終了し、第１０の状態９４８でエラー位置及びエラータイプを記録する。順方向におけるエラー位置Ｌ1と、順方向における完全に符号化されたマクロブロックの数Ｎ1については、後で図１０〜１３に関してより詳細に述べる。
【０１２６】
第５の状態９２８では、ＤＣＴ係数ブロックを再構築し、終了する。一実施の形態では、再構築は標準的なＭＰＥＧ−４技術に従って進める。次のビデオパケットを処理するためにプロセスを再アクティブ化できることは、当業者には理解されるであろう。
【０１２７】
第６の状態９３２では、ビデオパケットデータをビットバッファにロードする。部分的ＲＶＬＣ復号を行うためには、構文エラー又はデータオーバーランを先に生じることなく、各ビデオパケットごとにＤＣマーカ（Ｉ−ＶＯＰの場合）又は動きマーカ（Ｐ−ＶＯＰの場合）の検出が得られるべきである。一実施の形態では、パケット全体についてのデータを読み取る循環バッファを使用して、各バイトを８ビットに展開することによりビデオパケットについての残りのビットを得る。
【０１２８】
バッファの最後からスタッフィングビットを除去する。これにより、ＲＶＬＣバッファ中にデータビットだけが残る。ビデオパケットのビデオパケットヘッダと動きベクトル部分又はＤＣ部分とを解析する間に、以下の情報がわかるはずである。即ち、予想マクロブロック数、各マクロブロックのタイプ（イントラ又はインター）、マクロブロックがスキップされるか否か、８×８ブロックの予想される４つの輝度ブロック及び２つの色度ブロックのうちでいくつの及びいずれのブロックが符号化されておりしたがってビットストリーム中にあるべきか、イントラブロックが６３個の係数を有するか６４個の係数を有するか（即ち、それらのＤＣ係数がＡＣ係数と共に符号化されているか別個に符号化されているか）である。この情報は、ＲＶＬＣデータビットと共にデータ構造に記憶することができる。プロセスは第６の状態９３２から第７の状態９３６に進む。
【０１２９】
第７の状態９３６では、ビデオパケットに対してリバーシブル可変長符号（ＲＶＬＣ）復号を逆方向に実施する。一実施の形態では、標準的なＭＰＥＧ−４ＲＶＬＣ復号技術に従ってビデオバケットの逆方向復号を実施する。各方向で、最大数の復号済みコードワードを回復すべきである。このプロセスの一実施の形態では、反対方向でみられた完全に復号済みのマクロブロックの数をカウンタ中で維持する。一実施の形態では、カウンタは、ビデオパケット中の予想マクロブロック数Ｎに関係する、ビデオパケットヘッダからの値で初期化される。カウンタは、マクロブロックが読み取られるにつれてカウントダウンする。プロセスは第７の状態９３６から第８の状態９４０に進む。
【０１３０】
第８の状態９４０では、逆方向復号からビデオパケット中のエラーを検出し、エラー及びエラータイプを記録する。先に第４の状態９２０に関して記載した順方向でのエラーに加えて、反対の復号方向で生じ得る別のエラーは、復号される最後のコードワード、即ち反対方向における最初のコードワードが、ｌａｓｔ＝０を有するコードワードに復号されるときに生じる。有利なことに、反対方向でエラー位置を検出することにより、まだこのようなデータが使用可能であるデータ範囲を明らかにすることができる。反対方向即ち逆方向におけるエラー位置Ｌ2と、反対方向における完全に復号済みのマクロブロックの数
Ｎ2の使用については、後で図１０〜１３に関して述べる。
【０１３１】
この例示的なプロセスでは、反対の復号方向で、順方向の復号方向とは異なる復号木（イントラ／インター）を使用する。一実施の形態では、反対方向の復号木は、各コードワードごとにビットの順番を逆にすることによって得られる。さらに、一実施の形態では、順方向復号で最後にくるサインビットが逆方向復号では最初にみられること、及びＬａｓｔ＝１は順方向復号では８×８ブロックの最後のコードワードを示すが、反対方向復号では最初のコードワードを示すことを考慮するように、シンボル復号ルーチンを修正する。
反対方向に復号する場合、まさしく最初のコードワードはｌａｓｔ＝１を有するはずであり、そうでない場合はエラーが宣言される。
【０１３２】
データを反対の順番で読み取る場合、このプロセスでは、ブロックを復号する際に１シンボル先を見る。ｌａｓｔ＝１を有するコードワードに到達した場合、現在の８×８ブロックの反対方向復号の最後に到達しており、したがって次のブロックに進む。さらに、ブロックの順番も同じ理由で逆になる。例えば、順方向で５つのインターブロック及びそれに続いて３つのイントラブロックが予想される場合、反対方向では３つのイントラブロック及びそれに続いて５つのインターブロックが予想されるはずである。プロセスは第８の状態９４０から第９の状態９４４に進む。
【０１３３】
第９の状態９４４では、順方向と反対方向の復号方向からの重複エラー領域を廃棄する。復号済みシンボルの２つのアレイを比較して、順方向ＲＶＬＣ復号中に得られたエラーと反対方向ＲＶＬＣ復号中に得られたエラーとの間のエラー重複を評価し、ビデオパケットを部分的に復号する。部分的復号についてのこれ以上の詳細は、後で図１０〜１３に関してより詳細に述べる。本明細書に述べるプロセスで、アレイは、各方向で復号エラーが宣言される前にうまく復号されたコードワードを含むことは当業者には理解されるであろう。順方向と反対方向とでうまく復号された領域間に、ビットレベルで重複がなくＤＣＴ（マクロブロック）レベルでも重複がない場合、一実施の形態では、各方向で約９０ビットなどの所定ビット数Ｔの保存的バックトラッキングを実施する。即ち、各方向の最後の９０ビットを廃棄する。重複する（ビットバッファ中の）コードワード、又は重複するＤＣＴ係数に復号された（ＤＣＴバッファ中の）コードワードは、廃棄される。さらに、一実施の形態では、（部分的なマクロブロックＤＣＴデータやイントラ符号化マクロブロックではない）全インターマクロブロックだけを復号バッファに保持する。次いで、残ったコードワードを使用して、個々のブロックごとに８×８ＤＣＴ値を再構築し、終了する。
プロセスは、次のビデオパケットを処理するために再アクティブ化することができることを理解されたい。
【０１３４】
図９に示したプロセスにより、順方向におけるエラー位置（ビット位置）Ｌ1と、反対方向におけるエラー位置Ｌ2と、順方向及び反対方向でみられたエラーのタイプと、ビデオパケットの予想される長さＬと、ビデオパケット中の予想されるマクロブロック数Ｎと、順方向における完全に復号済みのマクロブロックの数Ｎ1と、反対方向における完全に復号済みのマクロブロックの数Ｎ2とが明らかになる。
【０１３５】
図１０〜１３に、部分的ＲＶＬＣ復号の方法を示す。例示的な部分的ＲＶＬＣ復号プロセスの１つでは、ビデオパケットから有用なデータを抽出するための部分的復号方法を、４つの結果に従って選択する。第１の結果Ｌ1＋Ｌ2＜Ｌ及びＮ1＋Ｎ2＜Ｎの場合の処理は、図１０に関して後述する。第２の結果Ｌ1＋Ｌ2＜Ｌ及びＮ1＋Ｎ2≧Ｎの場合の処理は、図１１に関して後述する。第３の結果Ｌ1＋Ｌ2≧Ｌ及びＮ1＋Ｎ2＜Ｎの場合の処理は、図１２に関して後述する。第４の結果Ｌ1＋Ｌ2≧Ｌ及びＮ1＋Ｎ2≧Ｎの場合の処理は、図１３に関して後述する。
【０１３６】
図１０に、Ｌ1＋Ｌ2＜Ｌ及びＮ1＋Ｎ2＜Ｎのときに用いられる部分的復号方法を示す。
図１０の第１の部分１００２は、ビットエラー位置Ｌ1及びＬ2を示す。第２の部分１００４は、順方向における完全に復号済みのマクロブロックＮ1、及び反対方向における完全に復号済みのマクロブロックＮ2を示す。第３の部分１００６は、ビットエラー位置からのビットのバックトラッキングＴを示す。ビットのバックトラッキングＴに選択される数は、非常に広い範囲で様々とすることができ、順方向と反対方向とで異なる数にすることさえできることは、当業者には理解されるであろう。一実施の形態では、Ｔの値は９０ビットである。
【０１３７】
この例示的なプロセスでは、ビデオパケットを第１の部分パケット１０１０、第２の部分パケット１０１２、及び廃棄部分パケット１０１４に配分する。第１の部分パケット１０１０は、デコーダによって使用することができ、Ｌ1−Ｔに対応するビット位置までの完全なマクロブロックを含む。また、第２の部分パケット１０１２も、デコーダによって使用することができ、Ｌ−Ｌ2＋Ｔに対応するビット位置からパケットの最後Ｌまでの完全なマクロブロックを含む。したがって、第２の部分パケットのサイズは約Ｌ2−Ｔである。後で図１４に関してより詳細に述べるが、このプロセスの一実施の形態では、第１の部分パケット１０１０及び第２の部分パケット１０１２中のイントラブロックは、破損していないと識別された場合でも廃棄する。ビデオパケットの残りの部分を含む廃棄部分パケット１０１４は、廃棄する。
【０１３８】
図１１に、Ｌ1＋Ｌ2＜Ｌ及びＮ1＋Ｎ2≧Ｎのときに用いられる部分的復号方法を示す。
図１１の第１の部分１１０２は、ビットエラー位置Ｌ1及びＬ2を示す。第２の部分１１０４は、順方向における完全に復号済みのマクロブロックＮ1、及び反対方向における完全に復号済みのマクロブロックＮ2を示す。
【０１３９】
この例示的なプロセスでは、ビデオパケットを第１の部分パケット１１１０、第２の部分パケット１１１２、及び廃棄部分パケット１１１４に配分する。第１の部分パケット１１１０は、デコーダによって使用することができ、ビデオパケットの最初からＮ−Ｎ2−１に対応するマクロブロックまでの完全なマクロブロックを含む。第２の部分パケット１１１２もまた、デコーダによって使用することができ、ビデオパケット中の（Ｎ1＋１）番目のマクロブロックから最後のマクロブロックまでを含む。したがって、第２の部分パケット１１１２のサイズは約Ｎ−Ｎ1−１である。このプロセスの一実施の形態では、第１の部分パケット１１１０及び第２の部分パケット１１１２中のイントラブロックは、破損していないと識別された場合でも廃棄する。ビデオパケットの残りの部分を含む廃棄部分パケット１１１４は、廃棄する。
【０１４０】
図１２に、Ｌ1＋Ｌ2≧Ｌ及びＮ1＋Ｎ2＜Ｎのときに用いられる部分的復号方法を示す。図１２の第１の部分１２０２は、ビットエラー位置Ｌ1及びＬ2を示す。第２の部分１２０４は、順方向における完全に復号済みのマクロブロックＮ1、及び反対方向における完全に復号済みのマクロブロックＮ2を示す。
【０１４１】
この例示的なプロセスでは、ビデオパケットを第１の部分パケット１２１０、第２の部分パケット１２１２、及び廃棄部分パケット１２１４に配分する。第１の部分パケット１２１０は、デコーダによって使用することができ、ビデオパケットの最初からＮ−ｂ＿ｍｂ（Ｌ2）にあるマクロブロックまでの完全なマクロブロックを含む。ｂ＿ｍｂ（Ｌ2）は、ビット位置Ｌ2にあるマクロブロックを指す。第２の部分パケット１２１２もまた、デコーダによって使用することができ、Ｌ1に対応するビット位置からパケットの最後までの完全なマクロブロックを含む。このプロセスの一実施の形態では、第１の部分パケット１２１０及び第２の部分パケット１２１２中のイントラブロックは、破損していないと識別された場合でも廃棄する。ビデオパケットの残りの部分を含む廃棄部分パケット１２１４は、廃棄する。
【０１４２】
図１３に、Ｌ1＋Ｌ2≧Ｌ及びＮ1＋Ｎ2≧Ｎのときに用いられる部分的復号方法を示す。
図１３の第１の部分１３０２は、ビットエラー位置Ｌ1及びＬ2を示す。第２の部分１３０４は、順方向における完全に復号済みのマクロブロックＮ1、及び反対方向における完全に復号済みのマクロブロックＮ2を示す。
【０１４３】
この例示的なプロセスでは、ビデオパケットを第１の部分パケット１３１０、第２の部分パケット１３１２、及び廃棄部分パケット１３１４に配分する。第１の部分パケット１３１０は、デコーダによって使用することができ、Ｎ−ｂ＿ｍｂ（Ｌ2）に対応するビット位置までの完全なマクロブロックと、（Ｎ−Ｎ2−１）番目までの完全なマクロブロックとのうちの少ない方を含む。ｂ＿ｍｂ（Ｌ2）は、ビット位置Ｌ2までのうちで最後の完全なマクロブロックを指す。第２の部分パケット１３１２もまた、デコーダによって使用することができ、ビデオパケットの最後から数えた、Ｎ−ｆ＿ｍｂ（Ｌ1）に対応する完全なマクロブロックの数と、Ｎ−Ｎ1−１に対応する完全なマクロブロックの数のうちの少ない方を含む。ｆ＿ｍｂ（Ｌ1）は、順方向で決定された破損していないマクロブロックの、反対方向における最後のマクロブロックを指す。このプロセスの一実施の形態では、第１の部分パケット１３１０及び第２の部分パケット１３１２中のイントラブロックは、破損していないと識別された場合でも廃棄する。ビデオパケットの残りの部分を含む廃棄部分パケット１３１４は、廃棄する。
【０１４４】
図１４に、少なくとも１つのイントラ符号化マクロブロックを含む、部分的に破損したビデオパケット１４０２を示す。一実施の形態では、部分的に破損したビデオパケットの一部にあるイントラ符号化マクロブロックは、この部分的に破損したビデオパケットのうちの破損していないと考えられる部分にある場合でも廃棄する。
【０１４５】
図９〜１３に関して記載したプロセスなどの復号プロセスでは、部分的に破損したビデオパケット１４０２を、第１の部分パケット１４０４、破損部分パケット１４０６、及び第２の部分パケット１４０８に割り振る。第１の部分パケット１４０４及び第２の部分パケット１４０８は、エラーなしと考えられ、使用することができる。破損部分パケット１４０６は、破損したデータを含んでおり、使用すべきではない。
【０１４６】
しかし、図示の第１の部分パケット１４０４は、第１のイントラ符号化マクロブロック１４１０を含み、図示の第２の部分パケット１４０８は、第２のイントラ符号化マクロブロック１４１２を含む。本発明の一実施の形態に係るプロセスの１つでは、ビデオパケット中でエラー又は破損が検出された場合、第１のイントラ符号化マクロブロック１４１０や第２のイントラ符号化マクロブロック１４１２などのイントラ符号化マクロブロックも廃棄し、有利にも、エラーのないマクロブロックに対応する回復されたマクロブロックを使用し続ける。その代わり、部分的に破損したビデオパケットのイントラ符号化マクロブ
ロックを隠蔽する。
【０１４７】
本発明の一実施の形態では、部分的に破損したパケットからイントラ符号化マクロブロックを部分的に復号する。ＭＰＥＧ−４規格によれば、破損したビデオパケットからのどんなデータもドロップされる。イントラ符号化マクロブロックは、Ｉ−ＶＯＰ中とＰ−ＶＯＰ中との両方で符号化することができる。ＭＰＥＧ−４規格で提供されているように、イントラ符号化マクロブロックのＤＣ係数、及び／又はイントラ符号化マクロブロックの最上行と第１列のＡＣ係数は、このイントラ符号化マクロブロックに近接するイントラ符号化マクロブロックから予測符号化することができる。
【０１４８】
ビデオビットストリーム中で符号化されるパラメータは、適切な動作モードを指示することができる。第１のパラメータは、ＭＰＥＧ−４で「ｉｎｔｒａ＿ｄｃ＿ｖｃｌ＿ｔｈｒ」と呼ばれるもので、ＶＯＰヘッダ中に位置する。ＭＰＥＧ−４に述べられているように、第１のパラメータｉｎｔｒａ＿ｄｃ＿ｖｃｌ＿ｔｈｒは、表１に記述する８つの符号のうちの１つに符号化される。表中で、ＱＰは量子化パラメータを示す。
【０１４９】
【表１】
2008306734.tif 000013
「０００」のｉｎｔｒａ＿ｄｃ＿ｖｃｌ＿ｔｈｒ符号は、イントラ符号化マクロブロック中でＤＣ係数をＡＣ係数から分離することに対応する。Ｉ−ＶＯＰに関しては、ｉｎｔｒａ＿ｄｃ＿ｖｃｌ＿ｔｈｒパラメータを「０００」に設定すると、エンコーダによってＤＣ係数がＤＣマーカの前に配置され、ＡＣ係数がＤＣマーカの後に配置されることになる。  
【０１５０】
Ｐ−ＶＯＰに関しては、ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒパラメータを「０００」に設定すると、エンコーダによってＤＣ係数がｃｂｐｙ及びａｃ＿ｐｒｅｄ＿ｆｌａｇ情報と共に動きマーカの直後に配置されることになる。ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒパラメータの値は、符号化レベルで選択されることを理解されたい。エラー復元のためには、ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒパラメータを「０００」に設定すると、ビデオビットストリームは相対的により頑強に符号化することができる。それでもなお、本発明の一実施の形態では有利にも、ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒパラメータの設定が「０００」になっていることを検出し、動きマーカ及び／又はＤＣマーカがあるか否かを監視する。対応する動きマーカ及び／又はＤＣマーカがエラーなしで観測された場合、動きマーカ及び／又はＤＣマーカの前で受け取られるＤＣ情報を分類し、このＤＣ情報を復号の際に使用する。そうでない場合、このＤＣ情報はドロップされる。
【０１５１】
第２のパラメータは、ＭＰＥＧ−４で「ａｃ＿ｐｒｅｄ＿ｆｌａｇ」と呼ばれるもので、動きマーカ／ＤＣマーカの後に、ただしＲＶＬＣ文字データの前に位置する。「ａｃ＿ｐｒｅｄ＿ｆｌａｇ」パラメータは、ＤＣ係数からみて現在のブロックと最もよく合致する近接ブロックから、最上行及び第１列のＤＣＴ係数（計１４個の係数）を異なる形で符号化するようエンコーダに命令し、かつそのように復号するようデコーダに命令する。図１５に示すように、差が最小の近接ブロックを予測ブロックとして使用する。
【０１５２】
図１５に、ＡＣ予測によるマクロブロックのシーケンスを示す。図１５は、第１のマクロブロック１５０２であるＡ、第２のマクロブロック１５０４であるＢ、第３のマクロブロック１５０６であるＣ、第４のマクロブロック１５０８であるＤ、第５のマクロブロック１５１０であるＸ、第６のマクロブロック１５１２であるＹを含む。第５のマクロブロック１５１０であるＸ及び第６のマクロブロック１５１２であるＹは、ＡＣ予測が有効にされた状態で符号化されている。第１のマクロブロック１５０２であるＡからの第１列のＤＣＴ係数が、第５のマクロブロック１５１０であるＸ及び第６のマクロブロック１５１２であるＹの中で使用されている。第３のマクロブロック１５０６であるＣ又は第４のマクロブロック１５０８であるＤからの最上行の係数を使用して、第５のマクロブロック１５１０であるＸ、又は第６のマクロブロック１５１２であるＹの最上行がそれぞれ符号化されている。
【０１５３】
エラー復元のためには、エンコーダは、イントラ符号化マクロブロックに対するＡＣ予測又は差分符号化を無効にすべきであることを理解されたい。ＡＣ予測が無効にされた場合、ＲＶＬＣデータの第１又は第２の「優良」部分に対応するイントラ符号化マクロブロックを使用することができる。
【０１５４】
一実施の形態では、ＡＣ予測が有効になっている場合、ＲＶＬＣデータの「優良」部分のイントラ符号化マクロブロックは、図１４に関して上述したようにドロップすることができる。
【０１５５】
加えて、本発明の一実施の形態に係るデコーダ又は復号プロセスの１つでは、さらに、ＡＣ予測が有効でも、「疑わしいイントラ符号化マクロブロック」と呼ぶイントラ符号化マクロブロックを使用できるか否かを決定する。デコーダは、疑わしいイントラ符号化マクロブロックのすぐ左又はすぐ上に別のイントラ符号化マクロブロックが存在するか否かを決定する。このような他のイントラ符号化マクロブロックが存在しない場合、この疑わしいイントラ符号化マクロブロックに「優良」の符号を付け、復号して使用する。
【０１５６】
デコーダの１つはさらに、疑わしいイントラ符号化マクロブロックのすぐ左又はすぐ上にある他のマクロブロックのいずれかが復号されていないか否かを決定する。このようなマクロブロックがある場合、この疑わしいイントラ符号化マクロブロックは使用しない。
【０１５７】
図１６に、ＭＰＥＧ−４データ区分化パケットのビット構造を示す。データ区分化は、エンコーダによって選択できるオプションである。このデータ区分化パケットは、再同期マーカ１６０２、マクロブロック番号１６０４、量子化スケール１６０６、ヘッダ拡張符号（ＨＥＣ）１６０８、動き及びヘッダ情報１６１０、動きマーカ１６１２、文字情報１６１４、再同期マーカ１６１６を含む。
【０１５８】
ＭＰＥＧ−４規格では、データ区分化パケット中で、フレームデータのＤＣ部分をフレームデータのＡＣ部分の前と後のいずれに配置してもよい。この順番はエンコーダによって決定される。データ区分化が有効になっている場合、エンコーダは、図１６に示すヘッダ情報の一部として、動きマーカ１６１２の前の動き及びヘッダ情報１６１０中に、動きベクトルを「ｎｏｔ−ｃｏｄｅｄ」及び「ｍｃｂｐｃ」情報と共に含む。
【０１５９】
パケットを受け取る際にエラーが検出されたが、エラーが動きマーカ１６１２の後で生じた場合、本発明の一実施の形態では、動きマーカ１６１２の前で受け取ったデータを使用する。一実施の形態では、動きマーカ１６１２の位置を予測し、予測した位置に動きマーカ１６１２がみられたか否かに基づいてエラーを検出する。符号化される場面の性質に応じて、動き及びヘッダ情報１６１０に含まれるデータは、有利に回復できる多量の情報をもたらすことができる。
【０１６０】
例えば、「ｎｏｔ  ｃｏｄｅｄ」フラグがセットされている場合、デコーダは前のフレーム中の同じ位置からマクロブロックをコピーすべきである。「ｎｏｔ  ｃｏｄｉｎｇ」フラグに対応するマクロブロックは、安全に再構築することができる。「ｍｃｂｐｃ」は、マクロブロックを形成する６つの８×８ブロック（４つは輝度用、２つは色度用）のうちのいずれが符号化済みであり、したがって対応するＤＣＴ係数を文字情報１６１４中に含むかを識別する。
【０１６１】
ＲＶＬＣが有効になっている場合、文字情報１６１４はさらに、第１の部分と第２の部分とに分割される。動きマーカ１６１２のすぐ後に続く第１の部分は、「ｃｂｐｙ」情報を含み、これは、４つの輝度用８×８ブロックのうちのいずれが実際に符号化されており、いずれが符号化されていないかを識別する。ｃｂｐｙ情報はまた、パケット中の、対応する「イントラＤＣ  ＶＬＣ符号化」が有効になっているイントラ符号化マクロブロックについてのＤＣ係数も含む。
【０１６２】
ｃｂｐｙ情報はさらにａｃ＿ｐｒｅｄ＿ｆｌａｇも含み、これは、対応するイントラ符号化マクロブロックが、そのすぐ左又はすぐ上にある他のマクロブロックからＡＣ予測で異なる形でエンコーダによって符号化されているか否かを示す。一実施の形態では、デコーダは、ｃｂｐｙ情報、ＤＣ係数、及びａｃ＿ｐｒｅｄ＿ｆｌａｇのうちのすべて又は選択されたものを、文字情報１６１４中のＤＣＴデータの第１のエラーなし部分の有無と共に使用して、いずれの部分を安全に復号できるかを評価する。一実施の形態では、このような優良なデータ部分があることは、イントラマクロブロックのＤＣ係数、及びｃｂｐｙによって推論されるマクロブロックの未符号化Ｙブロックを復号できることを示す。
【０１６３】
送信又は記憶されるディジタル情報の頑強性を高めるためにディジタル通信で使用される技術の１つに、順方向エラー訂正（ＦＥＣ）符号化がある。ＦＥＣ符号化は、データを記憶又は送信する前にエラー訂正情報を追加することを含む。ＦＥＣプロセスの一部はまた、ビットインタリーブなど他の技術を含み得る。元のデータとエラー訂正情報との両方が記憶又は送信されるが、データが紛失した場合、ＦＥＣデコーダは、受信したデータ及びエラー訂正情報から不足データを再構築することができる。
【０１６４】
有利なことに、本発明の実施の形態では、効率的かつ下位互換性のある方式でＦＥＣ符号を復号する。ＦＥＣ符号化技術の欠点の１つは、エラー訂正情報が、オーバーヘッドと呼ばれる記憶されるか送信されるデータ量を増加させることである。図１７に、ブロックエラーレート（ＢＥＲ）訂正能力とオーバーヘッドとの間のトレードオフの一例を示す。
横軸１７１０は平均ＢＥＲ訂正能力に対応する。縦軸１７２０はオーバーヘッドの量に対応し、図１７ではパーセントで表されている。第１の曲線１７３０は、理論的なビットオーバーヘッド対ＢＥＲ訂正能力に対応する。第２の曲線１７４０は、オーバーヘッド対ＢＥＲ訂正能力の実例の１つに対応する。オーバーヘッドコストにもかかわらず、元のデータを意図されたように受信する利益は、データ記憶又は送信が増大するという欠点、或いは帯域幅の限られたシステム中でビット割振りが変更されるという欠点に勝ることができる。
【０１６５】
ＦＥＣ符号化に関するもう１つの欠点は、ＦＥＣ符号で符号化されたデータが、ＦＥＣ符号化前に使用されていたシステム及び／又は規格にもはや適合しなくなる場合があることである。したがって、ＦＥＣ符号化は、ＭＰＥＧ−４など既存のシステム及び／又は規格に追加するのが比較的難しい。
【０１６６】
既存のシステムとの互換性を有するには、ビデオビットストリームがＭＰＥＧ−４構文などの標準的な構文に準拠すべきである。本発明の実施の形態では有利にも、既存のシステムとの互換性を維持するために、非組織符号ではなく組織ＦＥＣ符号だけで符号化されたＦＥＣ符号化済みビットストリームを復号し、識別されたユーザデータビデオパケットからＦＥＣ符号を取り出す。
【０１６７】
図１８に、組織ＦＥＣデータを含むビデオビットストリームを示す。ＦＥＣ符号は、組織符号と非組織符号のいずれかに対応するものとすることができる。組織符号は、元のデータは手付かずのままにして、ＦＥＣ符号を別個に付加する。例えば、従来のビットストリームは、第１のデータ１８１０、第２のデータ１８３０などを含み得る。組織符号化を使用すると、元のデータ即ち第１のデータ１８１０及び第２のデータ１８３０は保存され、ＦＥＣ符号が別個に提供される。図１８では、別個のＦＥＣ符号の例を、第１のＦＥＣ符号１８２０及び第２のＦＥＣ符号１８４０で示す。一実施の形態では、データはＶＯＰパケット中で搬送され、ＦＥＣ符号は、ビットストリーム中の対応するＶＯＰパケットに続くユーザデータパケット中で搬送される。エンコーダの一実施の形態では、各ＶＯＰパケットにつき、ユーザデータビデオパケット中にＦＥＣ符号のパケットを含む。ただし、エンコーダによってなされる判断に応じて、すべてには満たない対応データにＦＥＣ符号を補うこととしてもよい。
【０１６８】
対照的に、非組織符号化では、元のデータとＦＥＣ符号とが結合される。適用可能なビデオ規格がＦＥＣ符号を指定していない場合、非組織符号結果をビットストリーム中に生成するＦＥＣ技術の適用は避けるべきであることは、当業者には理解されるであろう。
【０１６９】
様々なＦＥＣ符号化タイプを使用することができる。一実施の形態では、ＦＥＣ符号化技術は、Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ（ＢＣＨ）符号化技術
に対応する。一実施の形態では、５１１のブロックサイズを使用する。図示の構成では、ＦＥＣ符号は、チャネルレベルなど別のレベルとは異なって、パケタイザレベルで適用される。
【０１７０】
ＭＰＥＧ−４システムのコンテキストにおいて、第１のＦＥＣ符号１８２０及び第２のＦＥＣ符号１８４０で示すように別個の体系的エラー訂正データを含む方法の１つは、エラー訂正データをユーザデータビデオパケットに含むことである。ユーザデータビデオパケットは、標準的なＭＰＥＧ−４デコーダによって無視される可能性がある。ＭＰＥＧ−４構文では、データパケットは、ビデオビットストリーム中で、データパケットの開始符号としてのユーザデータ開始符号によってユーザデータビデオパケットとして識別される。ユーザデータ開始符号は、１６進法で０００００１Ｂ２のビットストリングである。ユーザデータビデオパケットには、ＦＥＣ符号と共に様々なデータを含むことができる。一実施の形態では、ユーザデータヘッダ符号が、ユーザデータビデオパケット中のデータのタイプを識別する。例えば、ユーザデータヘッダ符号に関する１６ビット符号が、ユーザデータビデオパケット中のデータがＦＥＣ符号であることを識別することができる。まだ定義されていない規格などにおける別の例では、選択されたデータのＦＥＣ符号は、固有の開始コードを有する専用データパケット中で搬送される。
【０１７１】
ビデオビットストリーム中のすべてのデータに対応するエラー訂正符号を、ユーザデータビデオパケットに含むことができることを理解されたい。ただしこれにより、不利なことに、比較的多量のオーバーヘッドが生じる。本発明の一実施の形態では有利にも、ビデオビットストリーム中のデータの選択部分のみからＦＥＣ符号を符号化する。ユーザデータビデオパケット中のユーザデータヘッダ符号はさらに、対応するＦＥＣ符号が適用される選択されたデータを識別することができる。一例では、動きベクトル、ＤＣ係数、及びヘッダ情報のうちの少なくとも１つに対応するデータに対してのみ、ＦＥＣ符号が提供及
び復号される。
【０１７２】
図１９は、ビデオビットストリーム中の体系的に符号化されたＦＥＣデータを復号するプロセスを概略的に示したフローチャート１９００である。このプロセスは、１つのＶＯＰにつき１度アクティブ化することができる。この復号プロセスは有利にも、ＦＥＣ符号化を含むビデオビットストリームとそうでないビットストリームとに対して互換性を有する。プロセスは第１の状態１９０４で開始し、ビデオビットストリームを受信する。ビデオビットストリームは、ローカル又はリモートのネットワークを介して無線で受信することができ、さらにバッファなどに一時的に記憶することができる。プロセスは第１の状態１９０４から第２の状態１９０８に進む。
【０１７３】
第２の状態１９０８では、ビデオビットストリームからデータを取り出す。例えば、ＭＰＥＧ−４デコーダでは、標準的なＭＰＥＧ−４ビデオデータに対応する部分とＦＥＣ符号に対応する部分とを識別することができる。一実施の形態では、ＦＥＣ符号をユーザデータビデオパケットから取り出す。プロセスは第２の状態１９０８から決定ブロック１９１２に進む。
【０１７４】
決定ブロック１９１２では、第２の状態１９０８で取り出した他のデータと共にＦＥＣ符号が利用可能か否かを決定する。ＦＥＣ符号が利用可能な場合、決定ブロック１９１２から第３の状態１９１６に進む。そうでない場合、決定ブロック１９１２から第４の状態１９２０に進む。別の実施の形態では、決定ブロック１９１２では代わりに、受信したビデオビットストリーム中にエラーがあるか否かを決定する。エラーを調査する対象であるビデオビットストリーム中の対応部分は、バッファに記憶することができることを理解されたい。エラーが検出された場合、決定ブロック１９１２から第３の状態１９１６に進む。エラーが検出されなかった場合、決定ブロック１９１２から第４の状態１９２０に進む。
【０１７５】
第３の状態１９１６では、ＦＥＣ符号を復号して、不良データを再構築し、及び／又は受信データの正しさを検証する。第３の状態１９１６は、ＦＥＣ符号に付随する通常のビデオデータを復号することを含んでもよい。一実施の形態では、ビデオデータの選択された部分だけにＦＥＣ符号が補われており、プロセスは、取り出したＦＥＣ符号の対応するデータを示すヘッダ符号などを読み取る。
【０１７６】
プロセスは第３の状態からオプションの第５の状態１９２４に進む。符号化プロセスの１つではさらに、ＦＥＣ符号と同じパケット中に他のデータも含む。例えば、この他のデータは、動きベクトルの数のカウントと、再同期フィールドと動きマーカフィールドとの間で符号化された１パケットあたりのビット数のカウントとのうち、少なくとも一方に対応するものとすることができる。このカウントにより、デコーダは有利にも、再同期を可能にする次のマーカを有するビットストリーム中の場所よりも早くビデオビットストリームに再同期することができる。プロセスは、オプションの第５の状態１９２４から終了に進む。プロセスは、別のＶＯＰなど、データの次のバッチを処理するために再アクティブ化され得るようになる。
【０１７７】
第４の状態１９２０では、受信したビデオデータを使用する。取り出したデータは、ＦＥＣ符号が埋め込まれていないビデオビットストリームに対応する通常のビデオデータとすることができる。取り出したデータはまた、ビデオビットストリーム中で埋め込まれたＦＥＣ符号とは別に維持される通常のビデオデータに対応するものとすることもできる。
次いでプロセスは、データの次のバッチを処理するために再アクティブ化されるまで終了する。
【０１７８】
図２０は、ビデオデータをエラー復元復号する際にリングバッファを使用するプロセスの１つを概略的に示したブロック図である。データは、様々なビットレート及びバーストで送信及び／又は受信される可能性がある。例えば、ネットワーク輻輳が、データパケットの受信に遅延を生じることがある。特に無線環境では、データのドロップも起こり得る。さらに、比較的少量の受信データを、デコーダによって処理される準備ができるまでバッファに記憶しておくこともできる。
【０１７９】
本発明の一実施の形態では有利にも、エラー復元復号のために、リングバッファを使用して入来ビデオビットストリームを記憶する。リングバッファは、固定サイズのバッファである。リングバッファのサイズは、非常に広い範囲で選択できることを理解されたい。リングバッファは、ランダムアクセスメモリ（ＲＡＭ）などのアドレス指定可能メモリから構築することができる。リングバッファの別名は循環バッファである。
【０１８０】
ビデオビットストリームをリングバッファに記憶することは、ビデオ対応携帯電話などの無線ＭＰＥＧ−４準拠エンコーダ中でビデオビットストリームをエラー復元復号することを含めて、エラー復元復号において有用である。エラー復元復号技術を使用すると、ビデオビットストリームからのデータを、複数回にわたり、複数の位置で、複数の方向にビデオビットストリームから読み取ることができる。リングバッファにより、デコーダは、ビデオビットストリームの様々な部分から確実かつ効率的にデータを取り出すことができる。１つのテストでは、リングバッファを使用することで、ビットストリームデータへのアクセス速度が２倍になった。
【０１８１】
他のバッファ実装形態とは対照的に、データは有利にも、リングバッファからあふれ出すことがない。データは、先入れ先出し（ＦＩＦＯ）方式でリングバッファを出入りする。リングバッファが一杯のときに追加の要素を加えると、リングバッファ中の最初の要素、即ち最も古い要素が上書きされる。
【０１８２】
図２０のブロック図は、リングバッファ２００２の一構成を示すものである。データが受信されるのに伴って、ビデオビットストリームから受け取られたデータがリングバッファ２００２にロードされる。一実施の形態では、ビデオビットストリームを復号するデコーダのモジュールは、直接にビデオビットストリームにアクセスするのではなく、リングバッファ２００２に記憶されたビデオビットストリームデータにアクセスする。また、リングバッファ２００２はデータフロー中でＶＯＰデコーダの前にあっても後にあってもよいことは、当業者なら理解するであろう。ただし、ＶＯＰはＶＯＰデコーダの前では、圧縮された形式なので、リングバッファ２００２をＶＯＰデコーダの前に配置すれば、リングバッファ２００２のためのメモリが節約される。
【０１８３】
リングバッファ２００２にロードされるビデオビットストリームデータは、図２０ではビットストリームファイル２００４で表されている。エラーフラグなどのエラーロギング情報を含めたデータロギング情報もまた、生成されるのに伴ってリングバッファ２００２に記憶される。データロギング情報は、図２０ではログファイル２００６として表されている。一実施の形態では、Ｈ．２２３出力とデコーダ入力との間のログインタフェースが、リングバッファ２００２中のデータロギング情報をビデオビットストリームデータに同期又は整合させるのが有利である。
【０１８４】
第１の矢印２０１０は、リングバッファ２００２中でデータが記憶される位置（アドレス）に対応する。データがリングバッファ２００２に追加されるにつれて、リングバッファ２００２は概念上、図２０に示すように時計回りに回転する。第２の矢印２０１２は、リングバッファ２００２からデータが取り出される例示的な位置を示す。第３の矢印２０１４は、取り出されつつある又はアクセスされつつあるパケット中の例示的なバイト位置に対応するものとすることができる。パケット開始コード２０１６が、リングバッファ２００２全体にわたって分散しているものとすることができる。
【０１８５】
ビデオパケットが有効になっている状態でＶＯＰを復号するためにデータがリングバッファ２００２から取り出されると、デコーダの一実施の形態は、各パケットの対応エラーフラグを調査する。パケットが破損していることがわかった場合、デコーダは、クリーンな又はエラーのないパケットがみられるまでパケットをスキップする。デコーダは、パケットがみられた場合、適切な位置情報をインデックステーブルに記憶する。これにより、デコーダは、パケットを繰り返しシークすることなく効率的にパケットにアクセスすることができる。別の実施の形態では、デコーダは、リングバッファ２００２の内容を使用して、図７〜１６に関して上述したように部分的に破損したビデオパケットからデータを回復し使用する。
【０１８６】
表２に、リングバッファ２００２に記憶されたパケットへの比較的効率的なアクセスを可能にするインデックステーブルの内容のサンプルを示す。
【０１８７】
【表２】
2008306734.tif 000014
以上、本発明の様々な実施の形態について記載した。本発明をこれらの具体的な実施の形態に関して記載したが、これらの記述は本発明を例示するものであり、限定するものではない。当業者なら、添付の特許請求の範囲に定義する本発明の要旨及び技術的範囲を逸脱することなく、様々な修正及び応用を想到するであろう。
【図面の簡単な説明】
【０１８８】
【図１】本発明の一実施の形態に係る、ビデオ配信システムを実現するためのネット    ワーク化されたシステムを示す図である。
【図２】フレームのシーケンスを示す図である。
【図３】ビデオビットストリーム中のエラー又は不足データを隠蔽するプロセスを概    略的に示すフローチャートである。
【図４】不足の動きベクトルを時間的に隠蔽するプロセスを示す図である。
【図５】ビデオビットストリーム中のエラーを適宜隠蔽するプロセスを概略的に示すフローチャートである。
【図６】加重予測を使用してビデオビットストリーム中のエラーを補償することので    きるプロセスを概略的に示すフローチャートである。
【図７Ａ】Ｉ−ＶＯＰの場合の、ＤＣ成分及びＡＣ成分を含むビデオパケットのサンプルを示す図である。
【図７Ｂ】Ｐ−ＶＯＰの場合のビデオパケットを示す図である。
【図８】破損したマクロブロックを廃棄する例を示す図である。
【図９】本発明の一実施の形態に係る、破損したパケットの離散コサイン変換（ＤＣＴ）部分を部分的にＲＶＬＣ復号するプロセスを概略的に示すフローチャートである。
【図１０】部分的ＲＶＬＣ復号の方法を示す図である。
【図１１】部分的ＲＶＬＣ復号の方法を示す図である。
【図１２】部分的ＲＶＬＣ復号の方法を示す図である。
【図１３】部分的ＲＶＬＣ復号の方法を示す図である。
【図１４】少なくとも１つのイントラ符号化マクロブロックを含む、部分的に破損したビデオパケットを示す図である。
【図１５】ＡＣ予測によるマクロブロックのシーケンスを示す図である。
【図１６】ＭＰＥＧ−４データ区分化パケットのビット構造を示す図である。
【図１７】ブロックエラーレート（ＢＥＲ）訂正能力とオーバーヘッドとの間のトレードオフの一例を示す図である。
【図１８】組織ＦＥＣデータを含むビデオビットストリームを示す図である。
【図１９】ビデオビットストリーム中の体系的に符号化されたＦＥＣデータを復号するプロセスを概略的に示すフローチャートである。
【図２０】ビデオデータをエラー復元復号する際にリングバッファを使用するプロセスの１つを概略的に示すブロック図である。
【符号の説明】
【０１８９】
１０２    符号化コンピュータ
１０４    衛星受信機
１０６    ビデオカメラ
１０８    ビデオ会議端末
１１０    データ記憶装置    
１１２    携帯電話
１１４    パーソナルディジタルアシスタント（ＰＤＡ）
１１６    ラップトップコンピュータ
１１８    デスクトップコンピュータ
１２０    通信ネットワーク
３００    フローチャート
４０２    下足マクロブロック
４０４    上方マクロブロック
４０６    下方マクロブロック
４１０    第１の不足の動きベクトル
４１２    第２の不足の動きベクトル
４１４    第３の不足の動きベクトル
４１６    第４の不足の動きベクトル
４２０    第１の上方動きベクトル
４２２    第２の上方動きベクトル
４２４    第３の上方動きベクトル
４２６    第４の上方動きベクトル
４３０    第１の下方動きベクトル
４３２    第２の下方動きベクトル
４３４    第３の下方動きベクトル
４３６    第４の下方動きベクトル
５００    フローチャート
６００    フローチャート
７００    ビデオパケット
７０２    ビデオパケットヘッド
７０４    ＤＣ部分
７０６    ＤＣマーカ
７０８    ＡＣ部分
７２０    ビデオパケット
７２２    ビデオパケットヘッダ
７２４    動きベクトル部分
７２６    動きマーカ
７２８    ＰＣＴ部分
８０２    順方向
８０４    逆方向
８０６    マクロブロック
８１０    マクロブロック
８１２    廃棄するマクロブロック
１００２    第１の部分
１００４    第２の部分
１００６    第３の部分
１０１０    第1の部分パケット
１０１２    第２の部分パケット
１０１４    廃棄部分パケット
Ｌ          ビットエラー
Ｔ        バックトラッキング
Ｎ        マクロブロック
１１０２    第１の部分
１１０４    第２の部分
１１１０    第１の部分パケット
１１１２    第２の部分パケット
１１１４    廃棄部分パケット
１２０２    第１の部分
１２０４    第２の部分
１２１０    第１の部分パケット
１２１２    第２の部分パケット
１２１４    廃棄部分パケット
１３０２    第１の部分
１３０４    第２の部分
１３１０    第１の部分パケット
１３１２    第２の部分パケット
１３１４    廃棄部分パケット
１４０２    ビデオパケット
１４０４    第１の部分パケット
１４０６    破損部分パケット
１４０８    第２の部分パケット
１４１０    第１のイントラ符号化マクロブロック
１４１２    第２のイントラ符号化マクロブロック
１５０２    第１のマクロブロック
１５０４    第２のマクロブロック
１５０６    第３のマクロブロック
１５０８    第４のマクロブロック
１５１０    第５のマクロブロック
１５１２    第６のマクロブロック
１６０２    再同期マーカ
１６０４    マクロブロック番号
１６０６    量子化スケール
１６０８    ヘッダ拡張符号（ＨＥＣ）
１６１０    ヘッダ情報
１６１２    動きマーカ
１６１４    文字情報
１６１６    再同期マーカ
１７１０    横軸
１７２０    縦軸
１７３０    第１の曲線
１７４０    第２の曲線
１８１０    第１のデータ
１８２０    第１のＦＥＣ符号
１８３０    第２のデータ
１８４０    第２のＦＥＣ符号
１９００    フローチャート
２００２    リングバッファ
２００４    ビットストリームファイル
２００６    ログファイル
２０１０    第１の矢印
２０１２    第２の矢印
２０１４    第３の矢印
２０１６    パケット開始コード
【図１】
2008306734.tif 000015
【図２】
2008306734.tif 000016
【図３】
2008306734.tif 000017
【図４】
2008306734.tif 000018
【図５】
2008306734.tif 000019
【図６】
2008306734.tif 000020
【図７Ａ】
2008306734.tif 000021
【図７Ｂ】
2008306734.tif 000022
【図８】
2008306734.tif 000023
【図９】
2008306734.tif 000024
【図１０】
2008306734.tif 000025
【図１１】
2008306734.tif 000026
【図１２】
2008306734.tif 000027
【図１３】
2008306734.tif 000028
【図１４】
2008306734.tif 000029
【図１５】
2008306734.tif 000030
【図１６】
2008306734.tif 000031
【図１７】
2008306734.tif 000032
【図１８】
2008306734.tif 000033
【図１９】
2008306734.tif 000034
【図２０】
2008306734.tif 000035
【手続補正書】
【提出日】平成20年6月26日(2008.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ビデオビットストリーム中で受け取ったエラーを適宜隠蔽するビデオデコーダであって、
画像の選択部分についてのエラー値を維持するように適合されたメモリモジュールと、
エラーに応答して画像を生成する複数のエラー復元モジュールと、
前記複数のエラー復元モジュールに対応するエラー値の複数の予測を生成するように適合された予測モジュールと、
前記ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、前記エラー値の予測の比較に基づいて前記エラー復元モジュールからエラー復元モジュールを選択するように適合された制御モジュールとを備えたビデオデコーダ。
【請求項２】
エラー復元技術に対応する所定のエラー値を記憶したルックアップテーブルをさらに備え、前記ルックアップテーブルが前記予測モジュールに結合された請求項１記載のビデオデコーダ。
【請求項３】
ビデオビットストリーム中で受け取ったエラーを隠蔽するビデオデコーダであって、
画像の選択部分についてのエラー分散を維持するように適合されたメモリモジュールと、
エラーに応答して画像を生成する複数のエラー復元モジュールと、
前記複数のエラー復元モジュールに対応する複数の重みを生成するように適合された予測モジュールと、
前記ビデオビットストリーム中のエラーの指示を受け取り、これに応答して、選択されたエラー復元モジュールの出力を前記予測モジュールからの重みと組み合わせて前記エラーを隠蔽するように適応された制御モジュールとを備えたビデオデコーダ。
【請求項４】
前記予測モジュールが、予想されるエラーの逆数に関係する重みを提供する請求項３記載のビデオデコーダ。
【請求項５】
前記予測モジュールが、最小平均２乗誤差をもたらす重みを提供する請求項３記載のビデオデコーダ。
【請求項６】
複数のエラー隠蔽技術から選択的にエラー隠蔽技術を適用するオプティマイザ回路であって、
画像の少なくとも一部に関係する推定エラーを維持する手段と、
前記推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成する手段と、
最小の予測エラー推定値をもたらすエラー隠蔽技術を選択する手段とを備えるオプティマイザ回路。
【請求項７】
ビデオデコーダ中でエラーを隠蔽する方法であって、
イントラ符号化されたビデオビットストリームの第1部分にあるエラーを検出するステップ、
画像の前記第１部分の上にある第２部分と前記画像の前記第１部分の下にある第３部分とが破損していないと決定するステップ、及び、
前記第２部分及び前記第３部分が破損していない場合、前記第２部分中の第１の水平ピクセル行と前記第３部分中の第２の水平ピクセル行との間で前記第１部分中のピクセルを補間して、エラーを隠蔽するステップを含む方法。
【請求項８】
前記補間が線形補間を含む請求項７記載の方法。
【請求項９】
前記第１部分が前記画像の上限に対応すると決定するステップ、及び、
前記第３部分が破損していない場合、前記第３部分から前記第２部分の水平ピクセル行をコピーするステップをさらに含む請求項７の方法。
【請求項１０】
前記第２部分が破損していると決定するステップ、
前記第３部分が破損していないと決定するステップ、及び、
前記第２部分が破損しており前記第３部分が破損していない場合、前記第３部分から前記第２の水平ピクセル行をコピーするステップをさらに含む請求項７の方法。
【請求項１１】
前記第２部分が破損していると決定するステップ、
前記第３部分が破損していないと決定するステップ、及び、
前記第２部分及び前記第３部分が破損している場合、前記第１部分中のピクセルを灰色に限定するステップをさらに含む請求項７の方法。
【請求項１２】
前記検出したエラーが、フレーム中のエラー、ビデオオブジェクトプレーン（ＶＯＰ）中のエラー、または、マクロブロック中のエラーに関係する請求項７記載の方法。
【請求項１３】
ビデオデコーダ中でエラーを隠蔽する方法であって、
予測符号化されたビデオビットストリームの第１部分にあるエラーを検出するステップ、
前記エラーが標準的な動きベクトルに関係する場合、代用動きベクトルを提供するステップ、
前のフレームの第１の参照部分が利用可能な場合、前記第１の参照部分を前記代用動きベクトルと共に使用して再構築するステップ、及び、前記前のフレームの第１の参照部分が利用不可能な場合、前記前のフレームに先行する第２のフレームの第２の参照部分を使用するステップを含む方法。
【請求項１４】
前記ビデオビットストリームからの前記標準的な動きベクトルが利用可能であって前記第１の参照部分が利用不可能な場合、前記動きベクトルを前記第２のフレームの第２の参照部分と共に使用するステップ、及び、前記前のフレームと前記第２のフレームとの間の時間的な差を反映するように、前記標準的な動きベクトルの大きさを補償するステップをさらに含む請求項１３記載の方法。
【請求項１５】
前記第２のフレームが前の前のフレームである場合、前記大きさを補償するステップは２を掛けることを含む請求項１４記載の方法。
【請求項１６】
前記標準的な動きベクトルが利用不可能であって前記第１の参照部分が利用不可能な場合、前記代用動きベクトルを前記第２のフレームの前記第２の参照部分と共に使用するステップ、及び、前記前のフレームと前記第２のフレームとの間の時間的差を反映するように、前記代用動きベクトルの大きさを補償するステップをさらに含む請求項１３記載の方法。
【請求項１７】
前記代用動きベクトルが、隣接する動きベクトルのコピーまたは、隣接する動きベクトルから補間されるものである請求項１３記載の方法。
【請求項１８】
前記ビデオビットストリームからの別の動きベクトルが利用可能であると決定するステップ、及び  前記別の動きベクトルを前記標準的な動きベクトル及び前記代用動きベクトルの代わりに使用して前記エラーを隠蔽するステップをさらに含む請求項１３記載の方法。
【請求項１９】
ビデオ画像を適宜生成する方法であって、
フレームについてのビデオデータを受け取るステップ、前記ビデオデータがイントラ符号化されているか予測符号化されているかを決定するステップを含み、前記ビデオデータがイントラ符号化されている場合、
前記イントラ符号化ビデオデータがエラーに対応するか否かを決定するステップ、前記イントラ符号化ビデオデータがエラーに対応する場合、前記エラーを隠蔽するステップ、
前記イントラ符号化ビデオデータがエラーに対応する場合、ビデオパケットの少なくとも
一部に関連するエラー値を第１の所定の値にセットするステップ、
前記イントラ符号化ビデオデータについてエラーが検出されなかった場合、前記エラー値をリセットするステップ、及び、前記イントラ符号化ビデオデータについてエラーが検出されなかった場合、前記イントラ符号化ビデオデータを使用するステップを含み、前記ビデオデータが予測符号化されている場合、
前記予測符号化ビデオデータがエラーに対応するか否かを決定するステップを含み、前記予測符号化ビデオデータがエラーに対応する場合、
前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされている場合、前記予測符号化ビデオデータを使用するステップ、前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされていない場合、前記予測符号化ビデオデータの使用に対応する第１の推定エラーを予測するステップ、 
前記予測符号化ビデオデータについてエラーが検出されず、前記関連するエラー値がリセットされていない場合、第１の予測符号化エラー隠蔽技術の使用に対応する第２の推定エラーを予測するステップ、
前記予測した第１の推定エラーと前記予測した第２の推定エラーとの間で比較することによって前記予測符号化ビデオデータの使用と前記第１の予測符号化エラー隠蔽技術の使用との間で選択するステップ、及び、
前記予測符号化ビデオデータと前記第１の予測符号化エラー隠蔽技術のいずれを選択するかに従って前記エラー値を更新するステップを含み、
前記予測符号化ビデオデータがエラーに対応する場合、
第２の予測符号化エラー隠蔽技術を適用するステップ、及び、
前記第２の予測符号化エラー隠蔽技術に従って前記エラー値を更新するステップを含む方法。
【請求項２０】
前記第１の予測符号化エラー隠蔽技術と前記第２の予測符号化エラー隠蔽技術が同じである請求項１９記載の方法。
【請求項２１】
前記第２の推定エラーを予測するステップがさらに、予測符号化に対する複数のエラー隠蔽技術に対応する複数の推定エラーを予測するステップを含み、前記予測符号化ビデオデータの使用と前記予測符号化エラー隠蔽技術の使用との間で選択するステップがさらに、
前記予測符号化ビデオデータの使用と、前記複数のエラー隠蔽技術のうちのエラー隠蔽技術の使用との間で、前記対応する推定エラーの予測に基づいて選択するステップを含む請求項１９記載の方法。
【請求項２２】
前記第２の予測符号化エラー隠蔽技術を適用するステップがさらに、
予測符号化に対する複数のエラー隠蔽技術に対応する複数の推定エラーを予測するステップ、
前記予測した推定エラーを使用して前記複数のエラー隠蔽技術から選択するステップ、
前記選択したエラー隠蔽技術を適用するステップ、及び、
前記選択したエラー隠蔽技術に従って前記エラー値を調整するステップを含む請求項１９記載の方法。
【請求項２３】
前記ビデオデータがマクロブロック、ビデオオブジェクトプレーン（ＶＯＰ）、またはフレームである請求項１９記載の方法。
【請求項２４】
前記エラー値を０〜２５５の範囲に正規化するステップをさらに含む請求項１９記載の方法。
【請求項２５】
フレームシーケンス中の進行に応答して、１未満の値を有するリーキーな値を前記エラー値に掛けることをさらに含む請求項１９記載の方法。
【請求項２６】
前記リーキーな値が約０．９３である請求項２５記載の方法。
【請求項２７】
前記エラー値をメモリアレイ中に維持するステップをさらに含み、前記アレイ中のエラー値が前記画像中の少なくとも１つのピクセルに関連する請求項１９記載の方法。
【請求項２８】
前記エラー値をメモリアレイ中に維持するステップをさらに含み、前記画像中の各ピクセルが前記アレイ中のエラー値に関連する請求項１９記載の方法。
【請求項２９】
ビデオ画像を生成する方法であって、
ビデオフレームについてのデータを受け取るステップ、
前記ビデオフレームが予測符号化フレームかイントラ符号化フレームかを決定するステップを含み、
前記ビデオフレームが予測符号化フレームの場合、
前記ビデオフレームからのビデオデータグループがエラーに対応するか否かを決定するステップを含み、
前記ビデオデータグループ中にエラーがない場合、
前記ビデオデータグループがイントラ符号化されているか予測符号化されているかを決定するステップ、
前記ビデオデータグループがイントラ符号化されている場合、前記ビデオデータグループをイントラ復号するステップ、
前記ビデオデータグループがイントラ符号化されている場合、前記ビデオデータグループの少なくとも一部に関連するエラー分散をリセットするステップ、
前記ビデオデータがイントラ符号化されている場合、第１の加重合計を使用して前記ビデオデータグループに対応する画像の一部を再構築するステップであって、前記第１の加重合計が少なくとも第１と第２の技術の結果を組み合わせたものであること、及び、
前記画像の一部を再構築するのに使用された前記第１の加重合計に従って前記エラー分散を更新するステップを含み、
前記ビデオデータグループ中にエラーがある場合、
前記ビデオデータグループに対応する前記画像の一部にある前記エラーを隠蔽するステップ、及び、エラー隠蔽に従って前記エラー分散を更新するステップを含む方法。
【請求項３０】
前記ビデオデータグループがマクロブロック、ビデオオブジェクトプレーン（ＶＯＰ）、または不足データを含む請求項２９記載の方法。
【請求項３１】
前記エラーを隠蔽するステップがさらに、第２の加重合計を使用して、前記ビデオデータグループに対応する前記画像の一部を隠蔽するステップを含み、前記第２の加重合計が、少なくとも２つのエラー隠蔽技術の結果を組み合わせたものである請求項２９記載の方法。
【請求項３２】
前記第１の加重合計が、前記第１及び第２の技術の予想エラーの逆数に関係する値に従って前記第１及び第２の技術の結果を重み付けする請求項２９記載の方法。
【請求項３３】
前記第１の技術が、前のフレームの第１の参照部分から前記画像の一部を構築するステップを含み、前記第２の技術が、前記前のフレームに先行するフレームの第２の参照部分から前記画像の一部を構築するステップを含む請求項２９記載の方法。
【請求項３４】
前記第２の加重合計が、第３及び第４のエラー隠蔽技術の予想エラーの逆数に関係する値に従って前記第３及び第４のエラー隠蔽技術の結果をそれぞれ重み付けする請求項２９記載の方法。
【請求項３５】
前記ビデオフレームが予測符号化フレームの場合、
次のビデオデータグループを受け取るステップ、及び、
前記ビデオデータグループが処理されるまで前記方法の実行を継続するステップをさらに含む請求項２９記載の方法。
【請求項３６】
前記ビデオフレームがイントラ符号化フレームの場合、
前記ビデオフレームからのビデオデータグループがエラーに対応するか否かを決定するステップ、
前記ビデオデータグループ中にエラーがない場合、
前記ビデオデータグループをイントラ復号するステップ、
前記ビデオデータグループの少なくとも一部に関連するエラー分散をリセットするステップ、
前記ビデオデータグループ中にエラーがある場合、
前記ビデオデータグループに対応する前記画像の一部にあるエラーを隠蔽するステップ、及び、
前記エラー分散を所定の値に設定するステップをさらに含む請求項２９記載の方法。
【請求項３７】
前記ビデオフレームがイントラ符号化フレームの場合、
次のビデオデータグループを受け取るステップ、及び、
前記ビデオデータグループが処理されるまでイントラ符号化フレーム中のデータグループに対応する前記方法の一部の実行を継続するステップをさらに含む請求項３６記載の方法。
【請求項３８】
複数のエラー隠蔽技術からエラー隠蔽技術を選択する方法であって、
画像の少なくとも一部に関係する推定エラーを維持するステップ、
前記推定エラーを使用して、エラー隠蔽技術の適用に対応する複数の予測エラー推定値を生成するステップ、及び、
最小の予測エラー推定値をもたらすエラー隠蔽技術を選択するステップを含む方法。
【請求項３９】
前記複数のエラー隠蔽技術からのエラー隠蔽技術が、対応するすべてのピクセルを灰色に設定するステップ、または、前のフレームと後のフレームとの間を補間するステップを含む請求項３８記載の方法。