(57)【要約】【課題】複数ブロックにわたってデータの欠損が発生した場合にブロックの境界の違和感を低減し、動画像の高画質化を図ることを目的とする。【解決手段】通信路を介して受信するブロックごとの動きベクトルを有する画像データを復号して表示する画像処理装置であって、受信した画像データの誤りを検出する誤り検出手段と、前記誤り検出手段が検出した誤りにより復号が不可能な画像領域の動きベクトルを推定する動きベクトル推定手段と、前記動きベクトル推定手段が推定した複数の動きベクトルのばらつきを判定するばらつき判定手段と、前記ばらつき判定手段が判定したばらつきから複数の領域をグルーピングするグルーピング手段と、前記グルーピング手段がグルーピングした領域の動きベクトルの代表値を決定する代表値決定手段とを有し、前記代表値決定手段が決定した代表値を用いて誤りを補間することを特徴とする画像処理装置等、を提供する。【選択図】図１
2007142883.tif 000002
【特許請求の範囲】
【請求項１】
通信路を介して受信するブロックごとの動きベクトルを有する画像データを復号して表示する画像処理装置であって、
受信した画像データの誤りを検出する誤り検出手段と、
前記誤り検出手段が検出した誤りにより復号が不可能な画像領域の動きベクトルを推定する動きベクトル推定手段と、
前記動きベクトル推定手段が推定した複数の動きベクトルのばらつきを判定するばらつき判定手段と、
前記ばらつき判定手段が判定したばらつきから複数の領域をグルーピングするグルーピング手段と、
前記グルーピング手段がグルーピングした領域の動きベクトルの代表値を決定する代表値決定手段とを有し、
前記代表値決定手段が決定した代表値を用いて誤りを補間することを特徴とする画像処理装置。
【請求項２】
前記誤り検出手段は、水平方向に連続するブロックの誤りを検出し、
前記グルーピング手段は、前記連続するブロックについてグルーピングすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記誤り検出手段は、垂直方向に連続するブロックの誤りを検出し、
前記グルーピング手段は、前記垂直方向に連続するブロックについてグルーピングすることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記ばらつき判定手段は、前記動きベクトル推定手段が推定した複数の動きベクトルの差分と閾値との比較で判定することを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記ばらつき判定手段は、第１の閾値以上連続したブロックでばらつきが小さく、ばらつきが大きいブロックが第２の閾値以内で続いた後、前記第１の閾値以上連続したブロックの動きベクトルとばらつきが小さいと判定される動きベクトルを持つブロックを受信した場合には、ばらつきが大きいと判定したブロックの動きベクトルを除去し、ばらつきが小さいと判定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記グルーピング手段は、フレームの最後のブロックでグルーピングを終了することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記グルーピング手段は、水平方向単位でグルーピングを実行することを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記グルーピング手段は、前記ばらつき判定手段で前記動きベクトルのばらつきが小さいと判定されたブロックが連続する場合に、所定のブロック数でグルーピングすることを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記動きベクトル推定手段は、前記復号が不可能な画像領域のあるブロックに時間的、空間的に隣接するブロックの動きベクトルから推定することを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
前記動きベクトル推定手段は、前記復号が不可能な画像領域のあるブロックが隣接ブロックに動きベクトルを持たない場合は、前フレームの同位置の動きベクトルを用いることを特徴とする請求項１に記載の画像処理装置。
【請求項１１】
前記動きベクトル推定手段は、前記復号が不可能な画像領域のあるブロックが隣接ブロックに動きベクトルを持たない場合は、ブロックごとに前フレームの画像を用いて動きベクトルを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
前記動きベクトル推定手段と前記代表値決定手段とが複数のベクトルから１つのベクトルを決定するように動作し、時間的に切替えて共用することを特徴とする請求項１〜１１の何れか１項に記載の画像処理装置。
【請求項１３】
通信路を介して受信するブロックごとの動きベクトルを有する画像データを復号して表示する画像処理方法であって、
受信した画像データの誤りを検出する誤り検出ステップと、
前記誤り検出ステップにより検出された誤りにより復号が不可能な画像領域の動きベクトルを推定する動きベクトル推定ステップと、
前記動きベクトル推定ステップにより推定された複数の動きベクトルのばらつきを判定するばらつき判定ステップと、
前記ばらつき判定ステップにより判定されたばらつきから複数の領域をグルーピングするグルーピングステップと、
前記グルーピングステップによりグルーピングされた領域の動きベクトルの代表値を決定する代表値決定ステップとを有し、
前記代表値決定ステップにより決定された代表値を用いて誤りを補間することを特徴とする画像処理方法。
【請求項１４】
前記誤り検出ステップは、水平方向に連続するブロックの誤りを検出し、
前記グルーピングステップは、前記連続するブロックについてグルーピングすることを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記誤り検出ステップは、垂直方向に連続するブロックの誤りを検出し、
前記グルーピングステップは、前記垂直方向に連続するブロックについてグルーピングすることを特徴とする請求項１３に記載の画像処理方法。
【請求項１６】
前記ばらつき判定ステップは、前記動きベクトル推定ステップにより推定された複数の動きベクトルの差分と閾値との比較で判定することを特徴とする請求項１３に記載の画像処理方法。
【請求項１７】
前記ばらつき判定ステップは、第１の閾値以上連続したブロックでばらつきが小さく、ばらつきが大きいブロックが第２の閾値以内で続いた後、前記第１の閾値以上連続した動きベクトルとばらつきが小さいと判定される動きベクトルを持つブロックを受信した場合には、ばらつきが大きいと判定したブロックの動きベクトルを除去し、ばらつきが小さいと判定することを特徴とする請求項１３に記載の画像処理方法。
【請求項１８】
前記グルーピングステップは、フレームの最後のブロックでグルーピングを終了することを特徴とする請求項１３に記載の画像処理方法。
【請求項１９】
前記グルーピングステップは、水平方向単位でグルーピングを実行することを特徴とする請求項１３に記載の画像処理方法。
【請求項２０】
前記グルーピングステップは、前記ばらつき判定ステップにより前記動きベクトルのばらつきが小さいと判定されたブロックが連続する場合に、所定のブロック数でグルーピングすることを特徴とする請求項１３に記載の画像処理方法。
【請求項２１】
前記動きベクトル推定ステップは、前記復号が不可能な画像領域のあるブロックに時間的、空間的に隣接するブロックの動きベクトルから推定することを特徴とする請求項１３に記載の画像処理方法。
【請求項２２】
前記動きベクトル推定ステップは、前記復号が不可能な画像領域のあるブロックが隣接ブロックに動きベクトルを持たない場合は、前フレームの同位置の動きベクトルを用いることを特徴とする請求項１３に記載の画像処理方法。
【請求項２３】
前記動きベクトル推定ステップは、前記復号が不可能な画像領域のあるブロックが隣接ブロックに動きベクトルを持たない場合は、ブロックごとに前フレームの画像を用いて動きベクトルを生成することを特徴とする請求項１３に記載の画像処理方法。
【請求項２４】
前記動きベクトル推定ステップと前記代表値決定ステップとが複数のベクトルから１つのベクトルを決定するように動作し、時間的に切替えて共用することを特徴とする請求項１３〜２３の何れか１項に記載の画像処理方法。
【請求項２５】
前記請求項１３に記載の方法の各工程をコンピュータにて実施させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法及びコンピュータプログラムに関し、例えば画像データの損失に起因した画像品質の低下を改善する際に用いて好適な技術に関する。
【背景技術】
【０００２】
近年、テレビ電話システム、テレビ会議システムまたは、ビデオオンデマンド（Video On Demand）システムといった、ネットワークを介して動画像信号を伝送するシステムが普及しつつある。
【０００３】
画像データ、特に圧縮されたビデオビットストリームは、誤りに対して非常に敏感である。例えば、符号化ビデオビットストリームの単一ビット誤りによって、表示画質に深刻な劣化がもたらされる可能性がある。誤り訂正方式は既知であり広く使用されているが、必ずしもうまくいくとは限らない。誤り、例えば伝送中に発生する誤りを、誤り訂正方式によって完全に訂正することができない場合、誤りによってもたらされるイメージ破損を隠蔽するために、誤り検出及び補間を使用することが既知である。
【０００４】
既知のタイプの誤り補間アルゴリズムは、概して２つの種類、すなわち空間的補間と時間的補間とに分類される。空間的補間では、欠損データは隣接する空間情報を使用して復元されるが、時間的補間では、現在のフレームとは異なるフレームのデータを使用して復元される。
【０００５】
ビデオ信号における時間的相関を利用することによって時間的補間を実行する１つの既知の方法は、動きベクトルを用いて損傷したマクロブロック（ＭＢ）を先のフレームからの動き補償済みブロックと置換することである。しかしながら、マクロブロックデータが破損された場合、動きベクトルは取得できない場合がある。
【０００６】
動きベクトルが取得できない場合に欠損領域を補間する技術として以下の（１）〜（３）に示すものが提案されている。また、動きベクトルを推定する技術として以下の（４）に示すものが提案されている。
【０００７】
（１）動きベクトルが欠損した場合に、周囲ブロックの動きベクトルの平均値を用いて欠損ブロックの補間を行う技術が知られている（特許文献１参照）。（２）動きベクトルが欠損した１つのマクロブロックに対して、周囲のブロックの動きベクトルをグループ分けして、最大数のグループの平均値を欠損したマクロブロックの動きベクトルとする技術が知られている（特許文献２参照）。（３）データエラーがあった場合に、エラー領域を汚染領域として登録し、平滑化処理を行う技術が知られている（特許文献３参照）。（４）符号化のための動きベクトル推定において移動物体に属するゼロベクトルの除去、ランダム動きベクトルの除去、周囲ブロックの動きベクトルと比較して大きく異なる場合の周辺動きベクトルからの均一化を行う技術が知られている（特許文献４参照）。
【０００８】
【特許文献１】特開平６−１６２６９３号公報
【特許文献２】特開２００３−１９９１１３号公報
【特許文献３】特開平９−２４７６８１号公報
【特許文献４】特開平８−１４９４７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ネットワークを介して動画像信号を伝送するシステムにおいてはパケットごとにデータを伝送する。ここで通信路が混雑していたり、何か別の理由により通信状態が悪い場合には、パケットが全て欠落してしまい、複数のマクロブロックにわたってデータの欠損が発生することとなる。
【００１０】
従来の方法では、これについて特化して言及したものはない。前記特許文献１、２の場合は１つのマクロブロックごとに動きベクトルの推定を行っており、複数ブロックにわたってデータの欠損が発生した場合には１ブロックずつ順次動きベクトルを推定して補間処理を行う。そのためマクロブロックの境界部分においてずれが発生するなど違和感の生じるものとなってしまう。
【００１１】
前記特許文献３の場合は、平滑化処理を行うことによってぼやけた画像となってしまう。また、前記特許文献４の場合は、違和感のない画像とするための符号化処理における動きベクトルの推定について述べている。符号化時の動きベクトル推定は、圧縮率を高めることを目的として推定するため必ずしも高画質なものとはならない。
【００１２】
本発明は前述の問題点に鑑み、複数ブロックにわたってデータの欠損が発生した場合にもブロックの境界の違和感を低減し、動画像の高画質化を図ることができるようにすることを目的としている。
【課題を解決するための手段】
【００１３】
前記目的を解決するために本発明は、通信路を介して受信するブロックごとの動きベクトルを有する画像データを復号して表示する画像処理装置であって、受信した画像データの誤りを検出する誤り検出手段と、前記誤り検出手段が検出した誤りにより復号が不可能な画像領域の動きベクトルを推定する動きベクトル推定手段と、前記動きベクトル推定手段が推定した複数の動きベクトルのばらつきを判定するばらつき判定手段と、前記ばらつき判定手段が判定したばらつきから複数の領域をグルーピングするグルーピング手段と、前記グルーピング手段がグルーピングした領域の動きベクトルの代表値を決定する代表値決定手段とを有し、前記代表値決定手段が決定した代表値を用いて誤りを補間することを特徴とする画像処理装置等、を提供する。
【発明の効果】
【００１４】
本発明によれば、複数ブロックにわたってデータの欠損が発生した場合にもブロックの境界の違和感を低減し、動画像の高画質化を図ることができる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
以下、添付図面を参照して、本発明に係る好適な実施例を詳細に説明する。本実施の形態を、伝送路を介して受信した画像データを復号し、表示を行う画像受信装置において受信したデータに欠損があった場合を例にとって説明する。
【００１６】
＜画像処理装置の構成＞
図２のブロック図を用いて、本実施形態の画像処理装置の構成を説明する。図２において、本実施形態の画像処理装置は、データ受信部２０１、バッファ２０２、誤り検出部２０３、復号部２０４、動きベクトルメモリ２０５、参照画像メモリ２０６、補間部２０７、フレームメモリ２０８、出力部２０９から構成される。
【００１７】
データ受信部２０１は、無線ＬＡＮあるいは、有線ＬＡＮあるいは公衆回線用の通信モジュールであり、符号化された動画像データを符号化器からＲＴＰ(Realtime Transport Protocol)などのプロトコルを用いて受信する。受信した符号化データをバッファ２０２に渡す。バッファ２０２には通信時にデータの順序が入れ替わったとしても受信したデータを正しい順序に再構築されて保存される。
【００１８】
誤り検出部２０３は、バッファ２０２内の受信した画像データに含まれる誤り、本実施形態ではデータの欠損を検出する。データの欠損を検出した場合にはどのマクロブロックが欠損しているかを示すデータ欠損領域情報を補間部２０７に渡す。データの欠損検出については、受信したデータのヘッダ情報を用いて検出する。
【００１９】
通信用のプロトコルにＲＴＰを用い、通信の１パケットに収まる頻度でリスタートマーカを挿入する。ＲＴＰ部のヘッダにリスタートマーカ後のマクロブロックがフレーム内の何番目のマクロブロックであるかが記述されており、この情報を利用して欠損したデータの画像に対する位置がわかる。復号部２０４での復号不可能なデータ誤りに関しても検出を行う。
【００２０】
復号部２０４は、動きベクトルの情報を含むある特定のフォーマット、例えばＭＰＥＧ−４などで符号化されたデータを参照画像メモリ２０６の画像を参照して復号するものであり、復号データをフレームメモリ２０８へ渡す。同時に再生画像データから動きベクトルデータを抽出して動きベクトルメモリ２０５へ渡す。
【００２１】
補間部２０７は、誤り検出部２０３で検出したデータの欠損領域の補間処理を後述するように行い、復号部２０４の渡すフレームメモリ２０８内のデータを補正するものである。出力部２０９は、フレームメモリ２０８に記憶されたデータを出力画像のタイミング制御など表示装置の処理可能な状態にして表示装置に出力する。
【００２２】
＜補間部の説明＞
図１は、本実施形態の特徴的部分となる補間部２０７の内部構成を示すブロック図である。
図１に示すように補間部２０７は、動きベクトル推定部１０１、連続誤り判定部１０２、切り替え回路１０３、処理領域判定部１０４、代表ベクトル決定部１０５、データ抽出部１０６から構成されている。
【００２３】
動きベクトル推定部１０１は、データが欠損したマクロブロックの動きベクトルを周囲の欠損していないマクロブロックの動きベクトルから推定する。推定方法については、時間的あるいは空間的に隣接するマクロブロックの動きベクトルの平均値を計算して推定値とする。隣接するマクロブロックの動きベクトルは類似している可能性が高いため、損傷した動きベクトルをこのように推定することは一般的に妥当である。
【００２４】
平均値だけでなく、隣接ブロックの欠損していない動きベクトルを用いる方法としては、まず隣接ブロックの動きベクトルを並べ替えて中央の値を推定値とする中央値、最大のベクトルと最小のベクトルを記憶しておく。そして、その中間の値を推定値とする中間値、隣接ブロックの欠損していない動きベクトルで最も多かったものを推定値とする最頻値などを欠損ブロックの動きベクトルとしてもよい。
【００２５】
また、先頭あるいは最後のブロックの動きベクトルなど特定値を推定値とするとバッファ容量を削減することができる。ここで、ＭＰＥＧ−４のＩフレームなどデータは欠損していないが動きベクトルを持たないマクロブロックが存在する。この場合は動きベクトルメモリ２０５に保存された前フレームの同位置の動きベクトルを使用するものとする。
【００２６】
連続誤り判定部１０２は、内部に図３に示すような２マクロブロック分の欠損領域情報と連続フラグを保存するバッファを持ち、バッファに保存した欠損領域１と欠損領域２とが連続しているかどうかを判定して連続欠損信号を切り替え回路１０３に渡す。欠損領域情報を受信してから次の欠損領域情報を所定の時間以上受信しない場合は連続フラグが１であれば連続欠損信号を切り替え回路１０３に渡す。
【００２７】
切り替え回路１０３では、連続誤り判定部１０２からの連続欠損信号を受信して、欠損が連続している場合は動きベクトル推定部１０１で推定した動きベクトルを処理領域判定部１０４へ、欠損が連続していない場合にはデータ抽出部１０６へ渡す。
【００２８】
処理領域判定部１０４は、切り替え回路を介して受信した２つの動きベクトルの差分を計算し、所定の閾値より小さい場合にはまとめて補間処理を行うため内部のバッファに保存する。ここで、所定の閾値は動きベクトルの大きさ、方向の２つのパラメータで持つものとする。
【００２９】
動きベクトルの差分計算を行うときには欠損領域の先頭ブロックの動きベクトルとの差分を順次計算する。まとめて処理する領域を決定することができれば良いので、連続して欠損している領域全てのブロックの判定が行われるのであればどのような順序で計算を行っても良い。欠損領域の先頭から順次隣接するマクロブロックの動きベクトルの差分を用いても良い。この場合は、図４(a)に示すように隣接するマクロブロックの動きベクトルの差分は小さいのだが、欠損領域全体では閾値よりも大きくなる場合があるので、バッファ内の動きベクトルの最大値、最小値との差分と所定の閾値との比較も必要となる。
【００３０】
所定の閾値よりも差分の大きい推定動きベクトルを受け取るとそれまで内部のバッファに保存していた推定動きベクトルを代表ベクトル決定部１０５へ渡す。所定の閾値よりも差分の小さい推定動きベクトルがフレーム内の最後のマクロブロックまで連続した場合にも同様にそれまで内部のバッファに保存していた推定動きベクトルを代表ベクトル決定部１０５へ渡す。
【００３１】
代表ベクトル決定部１０５では、複数の類似性の高い動きベクトルから代表値を求める。そのため、動きベクトル推定部１０１で説明したような欠損した動きベクトルを推定するのと同様の方法を用いることにより、欠損領域のマクロブロックごとに推定した動きベクトルから代表ベクトルを決定することができる。代表ベクトルを決定するとデータ抽出部１０６へ渡す。
【００３２】
データ抽出部１０６は、処理領域判定部１０４で決定した一括処理領域について、参照画像メモリ２０８内の代表ベクトル決定部１０５で決定した代表ベクトルの示す位置のデータを抽出してフレームメモリに渡すことにより補間処理を行う。
【００３３】
＜画像処理装置の動作＞
図５に示すような欠損が発生した場合を例にとって本実施形態の画像処理装置の動作を説明する。Ａ〜Ｘはそれぞれがマクロブロックであり、マクロブロックＫ〜Ｐにおいて推定した動きベクトルのばらつきが図４(b)に示すように所定の閾値よりも小さいものとする。
【００３４】
図５において、白い部分が正常受信部、斜線部がデータ欠損部である。マクロブロックＡ〜ＪおよびマクロブロックＱ〜Ｘはデータを正常に受信しているので通常時の処理を行う。データ受信部２０１でデータを受信すると、バッファ２０２を介して誤り検出部２０３でデータの欠損検出を行う。データの欠損は検出されないため復号部２０４で受信データを復号し、動きベクトルを動きベクトルメモリ２０５へ渡し、復号データを参照画像メモリ２０６およびフレームメモリ２０８へ渡す。フレームメモリ２０８のデータは出力部２０９により表示装置に出力する。
【００３５】
マクロブロックＫ〜Ｐはデータの欠損が発生しているため以下に説明する処理を行う。データ受信部２０１でデータを受信すると、バッファ２０２を介して誤り検出部２０３はデータ欠損検出を行う。復号部２０４で受信データを復号すると、動きベクトルを動きベクトルメモリ２０５へ渡し、復号データを参照画像メモリ２０６およびフレームメモリ２０８へ渡す。ここまでは通常時の処理と同様である。
【００３６】
誤り検出部２０３でデータの欠損が検出されると、補間部２０７内の動きベクトル推定部１０１、連続誤り判定部１０２へ欠損領域情報を渡す。動きベクトル推定部１０１では欠損領域情報よりマクロブロックＫが欠損していることがわかると、マクロブロックＫの周囲のマクロブロックＢ〜Ｄ、Ｊ、Ｒ〜Ｔの動きベクトルより動きベクトルを推定する。
【００３７】
連続誤り判定部１０２では、受信した欠損領域情報よりマクロブロックＫの位置情報を図３に示す内部バッファの欠損領域情報１に入れる。マクロブロックＬの欠損領域情報を受信すると、図３に示す位置情報を内部バッファの欠損領域情報２に入れる。欠損領域が連続しているため切り替え回路１０３を介して動きベクトル推定部１０１で推定した動きベクトルを処理領域判定部１０４へ渡す。同時にバッファの欠損領域情報２の連続フラグを１にする。処理領域判定部１０４では、いったん推定動きベクトルを内部バッファに保存する。
【００３８】
次に、マクロブロックＫと同様の処理を行ってマクロブロックＬの推定動きベクトルを受信すると欠損領域の先頭のマクロブロック、ここではマクロブロックＫの推定動きベクトルと差分演算を行う。差分値と所定の閾値との比較を行い、所定の閾値よりも小さいので内部バッファに保存される。同様の処理がマクロブロックＭ〜Ｏまで行われ、処理領域判定部１０４の内部バッファに保存される。
【００３９】
マクロブロックＰの推定動きベクトルを連続誤り判定部１０２で受信すると、連続フラグを「１」として次の欠損領域情報を待つ。所定の時間以上欠損領域情報を受信しないため推定動きベクトルを処理領域判定部１０４へ渡す。同時に欠損領域終了信号を処理領域判定部１０４へ渡す。
【００４０】
処理領域判定部１０４は欠損領域終了信号を受信すると、欠損領域の先頭のマクロブロックＫとマクロブロックＰとの推定動きベクトルの差分演算を行う。そして、差分値が所定の閾値より小さいので内部バッファに保存していたマクロブロックＫ〜ＯとマクロブロックＰをグルーピングして、推定動きベクトルを代表ベクトル決定部１０５へ渡す。
【００４１】
代表ベクトル決定部１０５は、マクロブロックＫ〜Ｐの推定動きベクトルの平均値を求めて代表動きベクトルを決定し、データ抽出部１０６に渡す。データ抽出部１０６は、受信した欠損領域と代表動きベクトルより参照画像メモリ内の該当する領域のデータを抽出してフレームメモリ２０８のデータを補間する。フレームメモリ２０８のデータは出力部２０９により表示装置に出力する。
【００４２】
図５に示すような欠損が発生し、マクロブロックＫ〜Ｐの推定動きベクトルのばらつきが図４(c)に示すようにマクロブロックＮのみ所定の閾値よりも大きい場合を例にとって本実施形態の画像処理装置の動作を説明する。マクロブロックＡ〜ＪおよびＱ〜Ｘのデータを正常に受信した場合の処理は前述したとおりであるので説明は省略する。
【００４３】
マクロブロックＫ〜Ｍの欠損ブロックにおいては差分が所定の閾値より小さいため前述の推定動きベクトルを処理領域判定部１０４の内部バッファに保存するまでの処理を行う。次に、マクロブロックＮについて前述のように連続欠損判定までを行う。推定した動きベクトルを処理領域判定部１０４で受信すると、マクロブロックＫの推定動きベクトルと差分演算を行い、差分値と所定の閾値との比較する。所定の閾値よりも大きいのでマクロブロックＫ〜Ｍを１つのグループとし、マクロブロックＫ〜Ｍの推定動きベクトルを代表ベクトル決定部１０５に渡す。代表ベクトルを決定して欠損部の補間を行う処理については前述の説明の通りである。
【００４４】
マクロブロックＮの推定動きベクトルを処理領域判定部１０４の内部バッファに保存し、マクロブロックＯの推定した動きベクトルを処理領域判定部１０４へ渡すまでの処理を前述のように行う。推定した動きベクトルを処理領域判定部１０４で受信すると、マクロブロックＮの推定動きベクトルと差分演算を行い、差分値と所定の閾値との比較を行う。差分値が所定の閾値よりも大きいのでマクロブロックＮを１つのグループとし、マクロブロックＮの推定動きベクトルを代表ベクトル決定部１０５に渡す。代表ベクトルを決定して欠損部の補間を行う処理については前述の説明の通りである。
【００４５】
その後、マクロブロックＯ、Ｐについては前述の推定動きベクトルの差分値が所定の閾値よりも小さい場合の処理を行うことによりマクロブロックＯ、Ｐを１つのグループとして欠損部の補間を行うことができる。
【００４６】
以上説明した処理を行うことで、複数ブロックにわたってデータの欠損が発生した場合にもブロックの境界の違和感を低減し、動画像の高画質化を図ることが可能となる。本実施形態では欠損ブロックの動きベクトルを推定するブロックと代表ベクトルを決定するブロックをわけて説明した。ところが、どちらも複数のベクトルから１つのベクトルを決定するように動作し、時間的に切替えて共用することによって実現しても同様の効果を得ることができる。
【００４７】
また本実施形態では推定動きベクトルのばらつきによる処理領域の判定と代表ベクトル決定をわけて説明したが、処理領域判定時に順次平均していき代表ベクトルを決定して実現することもでき、１つのブロックで代用して行っても同様の効果を得ることができる。
【００４８】
さらに、本実施形態では、処理領域判定部１０４において推定動きベクトルのバッファリングをして処理を行ったが、代表ベクトル決定部に推定動きベクトルのバッファを持つ構成としても良い。また、推定動きベクトルのばらつきが小さくても順次代表ベクトルの計算を繰り返し、代表ベクトルをバッファリングする構成としても同様の効果を得ることができる。
【００４９】
また、本実施形態では、処理領域判定部１０４において所定の閾値よりも差分の小さい推定動きベクトルが連続した場合にフレームの最後のマクロブロックまででグルーピングした。ところが、データの欠損を検出した際に欠損したマクロブロックの位置がわかっているので、マクロブロックラインごとでグルーピングして補間処理を行っても良い。また、処理領域判定部１０４で所定の値を持つことにより所定の個数ごとでグルーピングして補間処理を行っても良い。
【００５０】
さらに、本実施形態では、動きベクトル推定部２０１において欠損していないが動きベクトルを持たないマクロブロックは前フレームの同位置の動きベクトルを用いたが、マクロブロックごとに前フレームの画像を用いて新たに動きベクトルを生成しても良い。これにより処理負荷は大きくなるがより正確な補間を行うことが可能となる。
【００５１】
（第２の実施形態）
第１の実施形態においては、ハードウェアで実装する方法について説明したが、本実施形態においては、本発明の特徴的部分となる補間部をソフトウェアにより実装する方法について説明する。
【００５２】
本実施形態の画像処理装置の構成は図１に示した第１の実施形態と同一である。補間部２０７について本実施形態ではＣＰＵで実装する。本実施形態における補間部２０７の処理の流れについて図６のフローチャートを用いて説明する。
【００５３】
ステップＳ６００で欠損領域情報を受信すると、ステップＳ６０１で欠損したブロックに隣接するブロックの動きベクトルを動きベクトルメモリより取得する。ステップＳ６０２では、取得した動きベクトルを用いて欠損したブロックの動きベクトルを推定する。動きベクトル推定の方法については第１の実施形態の動きベクトル推定部で説明したいずれかの方法で推定することができる。
【００５４】
ステップＳ６０３で欠損領域情報から欠損ブロックが連続であるかの判定を行う。欠損ブロックが連続でない場合にはステップＳ６１０へ進み、バッファ内の推定動きベクトルをグルーピングする。ステップＳ６１１でグルーピングした動きベクトルから代表ベクトルを決定し、ステップＳ６１２で代表ベクトルの示す参照フレームデータを取得してステップＳ６１３で補間処理を行う。
【００５５】
一方、ステップＳ６０３で欠損ブロックが連続の場合にはステップＳ６０４へ進み、連続欠損領域の先頭ブロックか判定し、先頭ブロックであればステップＳ６００へ戻り今までのステップを繰り返す。先頭ブロックでなければステップＳ６０５へ進み、後述する推定動きベクトルのばらつきを判定し、ステップＳ６０６で推定動きベクトルのばらつきが小さいかどうかを判定する。
【００５６】
この判定の結果、ばらつきが大きい場合はステップＳ６１０へ進み、バッファ内の推定動きベクトルをグルーピングする。ステップＳ６１１でグルーピングした動きベクトルから代表ベクトルを決定し、ステップＳ６１２で代表ベクトルの示す参照フレームデータを取得してステップＳ６１３で補間処理を行う。
【００５７】
一方、ステップＳ６０６の判定の結果、ばらつきが小さい場合にはステップＳ６０７で推定動きベクトルをバッファへ保存する。ステップＳ６０８で処理しているブロックがフレーム内最後のマクロブロックであれば、ステップＳ６１０へ進み、バッファ内の推定動きベクトルをグルーピングする。ステップＳ６１１でグルーピングした動きベクトルから代表ベクトルを決定し、ステップＳ６１２で代表ベクトルの示す参照フレームデータを取得してステップＳ６１３で補間処理を行う。
【００５８】
ステップＳ６０８でフレーム内最後のマクロブロックでない場合にはステップＳ６０９へ進み、連続欠損領域が終了であれば、ステップＳ６１０でバッファ内の推定動きベクトルから代表ベクトルを決定する。ステップＳ６１０でバッファ内の推定動きベクトルをグルーピングする。ステップＳ６１１でグルーピングした動きベクトルから代表ベクトルを決定し、ステップＳ６１２で代表ベクトルの示す参照フレームデータを取得してステップＳ６１３で補間処理を行う。
【００５９】
一方、ステップＳ６０９で連続欠損領域が終了でなければ、ステップＳ６００に戻り今までのステップを繰り返す。ステップＳ６１３で欠損領域全ての補間が終了であれば処理を終了する。
【００６０】
図７、８にステップＳ６０５の推定動きベクトルのばらつき判定について２通りのフローチャートを示す。
図７において、ステップＳ７０１で受信した動きベクトルをバッファへ保存する。ステップＳ７０２でバッファ内の先頭ブロックの動きベクトルとの差分値を求める。ステップＳ７０３で求めた差分値と所定の閾値との比較を行い終了する。
【００６１】
図８において、ステップＳ８０１で受信した動きベクトルをバッファへ保存する。ステップＳ８０２でバッファ内に保存された左隣ブロックの動きベクトルとの差分値を求める。ステップＳ８０３で求めた差分値が所定の閾値よりも大きい場合には終了する。
【００６２】
一方、ステップＳ８０３で所定の閾値より小さい場合にはステップＳ８０４でバッファ内の最大動きベクトルとの差分を求める。ステップＳ８０５で求めた差分値が所定の閾値よりも大きい場合には終了する。一方、ステップＳ８０５で所定の閾値より小さい場合にはステップＳ８０６でバッファ内の最小動きベクトルとの差分を求める。ステップＳ８０７で求めた差分値と所定の閾値との比較を行い終了する。
【００６３】
図９、１０ではグルーピング処理について図６とは異なる方法のフローチャートを示す。図９において、ステップＳ９００〜ステップＳ９０７およびステップＳ９０９〜ステップＳ９１４は図６のステップＳ６００〜ステップＳ６０７およびステップＳ６０９〜ステップＳ６１４と同様の処理であるため、説明は省略する。
【００６４】
ステップＳ９０８では、ステップＳ９０７までの処理でバッファに保存した動きベクトルがマクロブロックラインの最後のブロックであるかを判定する。マクロブロックラインの最後のブロックであればステップＳ９１０でバッファ内の推定動きベクトルをグルーピングして図６にて説明した処理と同様の処理を行う。マクロブロックラインの最後のブロックでなければステップＳ９０９で連続欠損領域が終了か判定して図６にて説明した処理と同様の処理を行う。
【００６５】
次に、図１０において、ステップＳ１０００〜ステップＳ１００７およびステップＳ１００９〜ステップＳ１０１４は図６のステップＳ６００〜ステップＳ６０７およびステップＳ６０９〜ステップＳ６１４と同様の処理であるため、説明は省略する。
【００６６】
ステップＳ１００８では、ステップＳ１００７までの処理でバッファに保存した動きベクトルが所定の個数以上であるかを判定する。所定の個数以上であればステップＳ１０１０でバッファ内の推定動きベクトルをグルーピングして図６にて説明した処理と同様の処理を行う。所定の個数未満であればステップＳ１００９で連続欠損領域が終了か判定して図６にて説明した処理と同様の処理を行う。これにより、ソフトウェアによる実装においても前述の実施形態と同様の効果を得ることができる。
【００６７】
（第３の実施形態）
前述の実施形態では、連続する複数ブロックのデータが欠損した場合に動きベクトルのばらつきが少ない場合には同一の動きベクトルでまとめて補間する処理について説明した。本実施形態では縦方向に連続した領域の欠損が発生した場合も動きベクトルのばらつきが少ない場合には同一の動きベクトルでまとめて補間する処理について説明する。
【００６８】
本実施形態の画像処理装置の構成は図１に示した第１の実施形態と同様である。補間部についても図２に示した第１の実施形態と同様である。ただし、本実施形態においては連続誤り判定部１０２の内部バッファの容量およびシーケンスが第１の実施形態と異なる。
【００６９】
第１の実施形態においては誤り検出部２０３からの欠損領域情報を２マクロブロック分バッファリングして連続しているかを判定し、連続欠損信号を切り替え回路１０３に渡していた。本実施形態では、縦方向に連続したマクロブロックの欠損を判定するために、１ライン前のマクロブロックの欠損領域情報が必要となる。縦方向の欠損連続判定後順次不要となった欠損領域情報を破棄していく。そのため１ラインと１マクロブロック分の欠損領域情報と連続フラグを保存するバッファが必要となる。
【００７０】
図１１に１ラインにマクロブロックがｎ個含まれる場合のバッファの図を示す。また、第１の実施形態と同様に欠損領域が連続しているかを判定した後、１ライン後のマクロブロックすなわち上下に隣接するマクロブロックにおいて欠損領域が連続しているかを判定して連続欠損信号を切り替え回路１０３に渡す。
【００７１】
図１２に示すように欠損が発生した場合を例にとって説明する。ここでは８マクロブロックで１ラインが構成されているため連続誤り判定部１０２の内部バッファは９マクロブロック分必要となる。
【００７２】
図１２において白い部分が正常受信部、斜線部がデータ欠損部である。マクロブロックＡ'、Ｂ'、Ｄ'〜Ｊ'、Ｌ'〜Ｘ'は第１の実施形態における通常時の処理を行う。誤り検出部２０３でマクロブロックＣ'の欠損が検出されると、第１の実施形態と同様に動きベクトル推定を行い、連続誤り判定部１０２では、受信した欠損領域情報よりマクロブロックＣ'の位置情報を内部バッファの欠損領域情報１に入れる。
【００７３】
第１の実施形態では、マクロブロックＤ'〜Ｊ'が欠損していないため所定時間が経過して連続欠損領域終了信号を処理領域判定部１０４に渡す。ところが、本実施形態ではマクロブロックＤ'は欠損していないがマクロブロックＣ'の１ライン後のマクロブロックＫ'が欠損しているか判定するまで連続欠損領域終了信号は渡さない。マクロブロックＫ'の欠損領域情報を受信すると、欠損領域情報を内部バッファの欠損領域情報２に入れる。欠損領域が縦方向に連続しているので切り替え回路１０３を介してマクロブロックＣ'の推定した動きベクトルを処理領域判定部１０４へ渡す。同時にバッファの欠損領域情報２の連続フラグを１にする。
【００７４】
次にマクロブロックＫ'の動きベクトルを同様に推定し、連続欠損判定を行う。マクロブロックＬ'〜Ｘ'が欠損していないため、第１の実施形態よりも長く設定した所定の時間を経過して連続誤り判定部１０２は、連続欠損領域終了信号を処理領域判定部に渡す。そして、前述の実施形態と同様に処理領域判定、代表ベクトル決定、欠損部の補間処理を行う。
【００７５】
これにより、前述の実施形態で説明した複数ブロックにわたってデータの欠損が発生した場合だけでなく縦方向に複数ブロックにわたってデータの欠損が発生した場合にも同様の効果を得ることができる。
【００７６】
（第４の実施形態）
前述の実施形態では、横方向あるいは縦方向に連続する複数ブロックのデータが欠損して動きベクトルのばらつきが少ない場合には同一の動きベクトルでまとめて補間する処理について説明した。本実施形態では、複数ブロックにわたってデータが欠損し、ランダムで異なる動きベクトルが入っていた場合には除去してまとめて補間する処理について説明する。
【００７７】
本実施形態の画像処理装置の構成は図１に示した第１の実施形態と同様である。補間部についても図２に示した第１の実施形態と同様である。ただし、処理領域判定部１０４において第１の閾値、第２の閾値、第３の閾値と複数の閾値を持つものとする。
【００７８】
前述の実施形態では、処理領域判定部１０４において所定の閾値よりも大きいばらつきであった場合に内部のバッファに保存していた推定動きベクトルを代表ベクトル決定部１０５に渡していた。ところが、本実施形態ではデータの欠損部でグルーピングを行う部分が第１の閾値の数以上にマクロブロックが連続した場合は、前述の実施形態での所定の閾値より大きいばらつきであってもすぐには代表ベクトル決定部１０５へ渡さない。グルーピングできないマクロブロックが第２の閾値の個数以上続いた場合に内部のバッファに保存していた推定動きベクトルを代表ベクトル決定部１０５に渡すものとする。グルーピングできないマクロブロックの数が第２の閾値以内の連続であり、続いて第１の閾値の数以上連続したマクロブロックの推定動きベクトルとの差分が小さい推定動きベクトルを持つマクロブロックを受信した場合にグルーピングできないマクロブロックの推定動きベクトルを除いて受信したマクロブロックの推定動きベクトルをグルーピングするものとする。
【００７９】
草原や海といった画像は類似した動きベクトルを持つマクロブロックが多数あるため、符号化時における動きベクトルの推定では画像内のオブジェクトの動きとは異なる動きベクトルとなる場合がある。これにより実際のオブジェクトの動きでは類似した動きベクトルを持つマクロブロックが連続している部分でも動きベクトルにばらつきが生じてしまう。このとき、データの欠損が発生すると本来まとめて補間処理できる部分も前述の実施形態ではわけて補間処理を行う場合が発生してしまう。
【００８０】
そこで、図１３のようにデータ欠損が発生した場合に推定動きベクトルが図１４に示すようであった場合を例にとって説明する。例えば第１の閾値は３、第２の閾値は１である場合を説明する。即ちデータの欠損部でグルーピングした部分がマクロブロック３個以上連続し、グルーピングできないマクロブロックは１個以内であった後に再びグルーピングできるマクロブロックを受信した場合にはグルーピングする例を説明する。
【００８１】
マクロブロックＡ"〜Ｈ"およびマクロブロックＱ"〜Ｘ"は第１の実施形態での通常時の処理であるため説明を省略する。マクロブロックＩ"〜Ｋ"の欠損ブロックにおいては第１の実施形態での差分が所定の閾値より小さい場合の処理における処理領域判定部１０４の内部バッファに保存するまでの処理を行う。
【００８２】
次に、マクロブロックＬ"について第１の実施形態での連続欠損判定までの処理を行い、マクロブロックＩ"の推定動きベクトルとの差分が所定の閾値より大きいためマクロブロックＩ"〜Ｋ"の推定動きベクトルとは別で内部のバッファに保存する。マクロブロックＭ"について同様にマクロブロックＬ"の推定動きベクトルとの差分が所定の閾値より大きいため、次にマクロブロックＩ"の推定動きベクトルとの差分と所定の閾値との比較を行う。
【００８３】
マクロブロックＩ"の推定動きベクトルとの差分は所定の閾値より小さいためグルーピングできないマクロブロックは１個以下となる。そして、マクロブロックＬ"の推定動きベクトルはバッファから消去してマクロブロックＭ"の推定動きベクトルをマクロブロックＩ"〜Ｋ"の推定動きベクトルと共に保存する。
【００８４】
マクロブロックＮ"の推定動きベクトルはばらつきが小さいためマクロブロックＩ"〜Ｋ"、Ｍ"の推定動きベクトルと共に内部のバッファに保存する。マクロブロックＯ"の推定動きベクトルはマクロブロックＩ"の推定動きベクトルとの差分が所定の閾値より大きいためマクロブロックＬ"と同様にマクロブロックＩ"〜Ｋ"、Ｍ"、Ｎ"の推定動きベクトルとは別で内部のバッファに保存する。
【００８５】
マクロブロックＰ"ではマクロブロックＯ"とのばらつきが小さいためグルーピングできないマクロブロックは１個以下ではなくなり、マクロブロックＩ"〜Ｋ"、Ｍ"、Ｎ"の推定動きベクトルを代表ベクトル決定部１０５へ渡す。その後前述の実施形態と同様に代表ベクトルを決定、欠損部の補間処理を行う。マクロブロックＰ"で欠損領域が終了するため、前述の実施形態で説明したようにマクロブロックＯ"、Ｐ"で代表ベクトルを決定、欠損部の補間処理を行う。
【００８６】
これにより、前述の実施形態で説明した横方向あるいは縦方向に複数ブロックにわたってデータの欠損が発生した場合だけでなくランダムで異なる動きベクトルが入っていた場合にも同様の効果を得ることができる。
【００８７】
（本発明に係る他の実施形態）
前述した本発明の実施形態における画像処理装置を構成する各手段、並びに画像処理方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００８８】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【００８９】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムまたは装置に直接、または遠隔から供給する。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００９０】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００９１】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９２】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などもある。
【００９３】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９４】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９５】
また、その他の方法として、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記録媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９７】
さらに、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００９８】
【図１】本発明の第１の実施形態における補間部の概略構成を示すブロック図である。
【図２】本発明の第１の実施形態における画像処理装置の概略構成を示すブロック図である。
【図３】本発明の第１の実施形態における連続誤り判定部の詳細を説明する図である。
【図４】本発明の第１の実施形態における動きベクトルのばらつきを説明する図である。
【図５】本発明の第１の実施形態におけるデータ欠損発生時について説明する図である。
【図６】本発明の第２の実施形態における補間部の処理手順の一例を示すフローチャートである。
【図７】本発明の第２の実施形態におけるばらつき判定処理の一例を示すフローチャートである。
【図８】本発明の第２の実施形態におけるばらつき判定処理の一例を示すフローチャートである。
【図９】本発明の第２の実施形態における補間部の処理手順の一例を示すフローチャートである。
【図１０】本発明の第２の実施形態における補間部の処理手順の一例を示すフローチャートである。
【図１１】本発明の第３の実施形態における連続誤り判定部の詳細を説明する図である。
【図１２】本発明の第３の実施形態におけるデータ欠損発生時について説明する図である。
【図１３】本発明の第４の実施形態におけるデータ欠損発生時について説明する図である。
【図１４】本発明の第４の実施形態における動きベクトルのばらつきを説明する図である。
【符号の説明】
【００９９】
１０１  動きベクトル推定部
１０２  連続誤り判定部
１０３  切り替え回路
１０４  処理領域判定部
１０５  代表ベクトル決定部
１０６  データ抽出部
２０１  データ受信部
２０２  バッファ
２０３  誤り検出部
２０４  復号部
２０５  動きベクトルメモリ
２０６  参照画像メモリ
２０７  補間部
２０８  フレームメモリ
２０９  出力部
【図１】
2007142883.tif 000003
【図２】
2007142883.tif 000004
【図３】
2007142883.tif 000005
【図４】
2007142883.tif 000006
【図５】
2007142883.tif 000007
【図６】
2007142883.tif 000008
【図７】
2007142883.tif 000009
【図８】
2007142883.tif 000010
【図９】
2007142883.tif 000011
【図１０】
2007142883.tif 000012
【図１１】
2007142883.tif 000013
【図１２】
2007142883.tif 000014
【図１３】
2007142883.tif 000015
【図１４】
2007142883.tif 000016