(57)【特許請求の範囲】
【請求項１】
複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号装置であって、
前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶する補正情報記憶手段と、
前記補正情報記憶手段により記憶されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定手段と、
前記動きベクトル要否判定手段により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手段と、
を備えたことを特徴とする動画像復号装置。
【請求項２】
前記補正情報記憶手段は、前記符号化ビットストリームから検出した直流成分差分値をブロックごとに補正情報としてさらに記憶し、
前記エラー補正手段は、前記補正情報記憶手段により記憶された直流成分差分値のうち前記エラーブロックに隣接するブロックの直流成分差分値を用いて前記補正画像の補正をさらに行うことを特徴とする請求項１に記載の動画像復号装置。
【請求項３】
複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号方法であって、
前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶装置に格納する補正情報格納工程と、
前記補正情報格納工程により記憶装置に格納されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定工程と、
前記動きベクトル要否判定工程により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正工程と、
を含んだことを特徴とする動画像復号方法。
【請求項４】
複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号プログラムであって、
前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶装置に格納する補正情報格納手順と、
前記補正情報格納手順により記憶装置に格納されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定手順と、
前記動きベクトル要否判定手順により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手順と、
をコンピュータに実行させることを特徴とする動画像復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号装置、動画像復号方法および動画像復号プログラムに関し、特に、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うことができる動画像復号装置、動画像復号方法および動画像復号プログラムに関するものである。
【背景技術】
【０００２】
画像伝送システムにおいては、伝送エラーが発生すると復号装置で正常に復号処理が行われず画質劣化が発生し、最悪の場合は、復号装置がハングアップする恐れもある。また、ＭＰＥＧは一旦復号エラーが発生すると次の回復ポイントまで復号処理が行えないという性質があるため、エラーが発生すると大きな画質劣化の要因になる。そこで、これまでは、復号エラーに対しては以下のような対策がなされてきた。
【０００３】
（ａ）ＭＰＥＧ復号装置が動き探索回路を実装していない場合には、ＭＰＥＧ復号装置において復号エラーを検出すると、エラー箇所を特定し、エラー箇所に対しては時間的に１フレーム前のエラー箇所と同位置の参照画像をそのまま補正画像として扱う。
【０００４】
（ｂ）ＭＰＥＧ復号装置が動き探索回路を実装している場合には、ＭＰＥＧ復号装置において復号エラーを検出すると、エラー箇所を特定し、エラー箇所に対応する隣接ＭＢ（マクロブロック）に対して動き探索を実行する。そして、動き探索結果を用いて参照画像から補正画像を取得する（例えば、特許文献１参照。）。
【０００５】
【特許文献１】特開２００１−３０９３８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、（ａ）の場合には、エラー箇所に対して時間的に１フレーム前の参照画像をそのまま補正画像として使用するため、１フレーム前の画像と同じ画像が連続し、映像が静止しているかのように見えるという問題がある。
【０００７】
また、（ｂ）の場合には、ＭＰＥＧ復号装置内に動き探索回路を搭載することで回路規模が増大して装置全体の規模に影響を及ぼすという問題、あるいは、復号装置内で動き探索を行うことで処理量が増加し復号処理時間に影響を及ぼすという問題がある。
【０００８】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うことができる動画像復号装置、動画像復号方法および動画像復号プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、請求項１の発明に係る動画像復号装置は、複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号装置であって、前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶する補正情報記憶手段と、前記補正情報記憶手段により記憶されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定手段と、前記動きベクトル要否判定手段により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手段と、を備えたことを特徴とする。
【００１０】
この請求項１の発明によれば、符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶し、記憶した動きベクトルのうち符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照してエラーブロックを補正する補正画像とするよう構成したので、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うことができる。
【００１１】
また、請求項２の発明に係る動画像復号装置は、請求項１の発明において、前記補正情報記憶手段は、前記符号化ビットストリームから検出した直流成分差分値をブロックごとに補正情報としてさらに記憶し、前記エラー補正手段は、前記補正情報記憶手段により記憶された直流成分差分値のうち前記エラーブロックに隣接するブロックの直流成分差分値を用いて前記補正画像の補正をさらに行うことを特徴とする。
【００１２】
この請求項２の発明によれば、符号化ビットストリームから検出した直流成分差分値をブロックごとに補正情報としてさらに記憶し、記憶した直流成分差分値のうちエラーブロックに隣接するブロックの直流成分差分値を用いて補正画像の補正をさらに行うよう構成したので、補正画像に隣接ブロックの直流成分差分値を反映することができる。
【００１４】
また、請求項１の発明によれば、符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報をブロックごとに補正情報としてさらに記憶し、記憶したスキップブロック情報のうちエラーブロックに隣接するブロックのスキップブロック情報に基づいて、エラーブロックの補正に動きベクトルを用いるか否かを判定し、エラーブロックの補正に動きベクトルを用いると判定した場合に、エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照してエラーブロックの補正画像とするよう構成したので、不要な参照ベクトルの算出を省くことができる。
【００１５】
また、請求項３の発明に係る動画像復号方法は、複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号方法であって、前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶装置に格納する補正情報格納工程と、前記補正情報格納工程により記憶装置に格納されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定工程と、前記動きベクトル要否判定工程により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正工程と、を含んだことを特徴とする。
【００１６】
この請求項３の発明によれば、符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶装置に格納し、記憶装置に格納した動きベクトルのうち符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照してエラーブロックを補正する補正画像とするよう構成したので、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うことができる。
【００１７】
また、請求項４の発明に係る動画像復号プログラムは、複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号プログラムであって、前記符号化ビットストリームから検出した動きベクトル及び前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報を各々ブロックごとに補正情報として記憶装置に格納する補正情報格納手順と、前記補正情報格納手順により記憶装置に格納されたスキップブロック情報のうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定手順と、前記動きベクトル要否判定手順により前記エラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手順と、をコンピュータに実行させることを特徴とする。
【００１８】
この請求項４の発明によれば、符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶装置に格納し、記憶装置に格納した動きベクトルのうち符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照してエラーブロックを補正する補正画像とするよう構成したので、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うことができる。
【発明の効果】
【００１９】
請求項１、３および４の発明によれば、動き探索を行うことなしに動きベクトルを用いた高精度なエラー補正を行うので、回路規模を増大することなく高精度なエラー補正を行うことができるという効果を奏する。
【００２０】
また、請求項２の発明によれば、補正画像に隣接ブロックの直流成分差分値を反映するので、補正画像の質をさらに向上することができるという効果を奏する。
【００２１】
また、請求項１、３および４の発明によれば、不要な参照ベクトルの算出を省くので、復号を高速に行うことができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明に係る動画像復号装置、動画像復号方法および動画像復号プログラムの好適な実施例を詳細に説明する。なお、本実施例では、本発明をＭＰＥＧを用いて動画を符号化／復号する場合を中心に説明する。
【実施例】
【００２３】
まず、本実施例に係るＭＰＥＧ符号化装置について説明する。図１は、本実施例に係るＭＰＥＧ符号化装置の構成を示す機能ブロック図である。同図に示すように、このＭＰＥＧ符号化装置１００は、減算回路１０１と、直交変換回路１０２と、量子化回路１０３と、可変長符号化回路１０４と、逆量子化回路１０５と、逆直交変換回路１０６と、加算回路１０７と、フレームメモリ１０８と、動き補償回路１０９と、動き探索回路１１０と、動きベクトル符号化回路１１１と、ストリーム多重化回路１１２とを有する。
【００２４】
最初に、画面内符号化を行うＩピクチャ符号化の動作について説明する。Ｉピクチャ符号化において、入力された動画像信号１００ａは、減算回路１０１が起動されないため直交変換回路１０２に供給される。直交変換回路１０２は、フレーム内の冗長性を取り除いて符号化する回路であり、入力した動画像信号を例えばＤＣＴ（離散コサイン変換）などにより所定の大きさのブロック毎に周波数成分に変換する回路である。
【００２５】
直交変換した結果の変換係数１０２ａは量子化回路１０３に供給される。量子化回路１０３は変換係数１０２ａをそれぞれ量子化する回路であり、量子化された符号１０３ａは可変長符号化回路１０４および逆量子化回路１０５へ供給される。
【００２６】
可変長符号化回路１０４は量子化された符号１０３ａを可変長符号化する回路であり、可変長符号化された符号１０４ａはマクロブロック単位にストリーム多重化回路１１２に供給される。ストリーム多重化回路１１２は、可変長符号化された符号１０４ａとそれに対応する所定のヘッダを付加した符号化ビットストリーム１１２ａを形成して出力する。
【００２７】
一方、逆量子化回路１０５は量子化された符号１０３ａを元の周波数成分の変換係数へと逆量子化し、逆量子化された符号１０５ａは逆直交変換回路１０６へ供給される。逆直交変換回路１０６は周波数成分の変換係数１０５ａを画像信号へと逆直交変換し、Ｉピクチャ符号化の際には加算回路１０７は起動されないため、逆直交変換された符号１０６ａは現フレームの画像信号としてフレームメモリ１０８へと供給される。フレームメモリ１０８は復号された画像データを順次蓄積するためのものであり、ＰピクチャおよびＢピクチャ符号化において画面間予測を行う際に、必要に応じて動き補償回路１０９および動き探索回路１１０から読み出される。
【００２８】
次に、画面間予測を行うＰピクチャおよびＢピクチャ符号化の動作について説明する。ＰピクチャおよびＢピクチャ符号化において、入力された動画像信号１００ａは減算回路１０１に供給される。減算回路１０１は現フレームと前フレームの間の冗長性を取り除く回路であり、入力された現フレーム信号１００ａと動き補償回路１０９からの動き補償された前フレーム信号１０９ａとのそれぞれの画素の差分値１０１ａが直交変換回路１０２に供給される。直交変換された結果の変換係数１０２ａは量子化回路１０３に供給される。量子化された符号１０３ａは可変長符号化回路１０４および逆量子化回路１０５へ供給される。
【００２９】
可変長符号化された符号１０４ａはマクロブロック単位にストリーム多重化回路１１２に供給される。ストリーム多重化回路１１２は、可変長符号化された符号１０４ａと動きベクトル符号化回路１１１からの符号化信号１１１ａとそれに対応する所定のヘッダを付加した符号化ビットストリーム１１２ａを形成して出力する。
【００３０】
一方、逆量子化回路１０５で逆量子化された符号１０５ａは逆直交変換回路１０６へ供給される。逆直交変換回路１０６で逆直交変換された符号１０６ａは加算回路１０７へ供給される。加算回路１０７は逆直交変換された符号１０６ａに動き補償された画像信号１０９ａを加算して現フレームの画像信号を再生する回路であり、再生された画像信号１０７ａは現フレームの画像信号としてフレームメモリ１０８へと供給される。
【００３１】
動き探索回路１１０は、現フレームの画像信号１００ａと前フレームまたは後フレームの画像信号１０８ａからフレーム間の画像の動きの大きさおよび方向を表す動きベクトルを所定の単位毎に検出する回路である。動き探索回路１１０で検出された動きベクトル１１０ａは動き補償回路１０９および動きベクトル符号化回路１１１へ供給される。
【００３２】
動き補償回路１０９は、フレームメモリ１０８に蓄積した画像信号１０８ａから動きのある部分をその動きに応じて現フレームの位置に動き補償する回路であり、動き探索回路１１０で検出された動きベクトル１１０ａを用いて所定の単位毎に動き補償する信号補償回路である。動き補償された画像信号１０９ａは減算回路１０１と加算回路１０７それぞれに供給される。
【００３３】
次に、本実施例に係るＭＰＥＧ復号装置の構成について説明する。図２は、本実施例に係るＭＰＥＧ復号装置の構成を示す機能ブロック図である。なお、このＭＰＥＧ復号装置２００は、図１に示したＭＰＥＧ符号化装置１００からの符号化信号（符号化ビットストリーム１１２ａ）を復号して元の画像信号１００ａを再生する。
【００３４】
図２に示すように、このＭＰＥＧ復号装置２００は、可変長復号回路２０１と、逆量子化回路２０３と、逆直交変換回路２０４と、加算回路２０５と、動き補償回路２０７と、フレームメモリ２０８と、補正パラメタメモリ２０９と、エッジ検出回路２１０と、エラー補正回路２１１とを有する。
【００３５】
最初に、エラーを含まない符号化ストリームの場合においてＭＰＥＧ符号化装置１００でＩピクチャ符号化された符号化ストリームが入力された時の動作について説明する。符号化ビットストリーム２００ａ（１１２ａ）は可変長復号回路２０１に入力される。可変長復号回路２０１は、符号化ビットストリーム２００ａ内のヘッダに基づいて画像データの符号化信号や動きベクトルの符号化信号を分離して順次可変長復号する回路である。復号された動きベクトル信号２０１ｂは動き補償回路２０７に入力され、復号された信号２０１ａは逆量子化回路２０３に供給される。
【００３６】
逆量子化回路２０３は、可変長復号回路２０１からの信号２０１ａを元の変換係数に逆量子化する逆量子化回路であり、ＭＰＥＧ符号化装置１００の量子化回路１０３にて周波数成分ごとに割り当てられた量子化ステップにて元の周波数成分ごとの変換係数をそれぞれ求める回路である。元の変換係数に逆量子化された変換係数２０３ａは逆直交変換回路２０４へ供給される。
【００３７】
逆直交変換回路２０４は、逆量子化回路２０３からの変換係数２０３ａを元の画像信号に逆変換する変換回路であり、ＭＰＥＧ符号化装置１００の直交変換回路１０２とほぼ反対の工程により変換係数から元の画像信号へ復号する回路である。Ｉピクチャを復号する場合、加算回路２０５は起動されないため、復号された画像信号２０４ａは動画像信号として出力され、またフレームメモリ２０８に蓄積される。
【００３８】
フレームメモリ２０８は、逆直交変換回路２０４からの画像データ２０４ａもしくは加算回路２０５からの画像データ２０５ａをフレーム毎に蓄積するメモリである。フレームメモリ２０８に蓄積された画像データは必要に応じて動き補償の際に動き補償回路２０７から読み出される。
【００３９】
次に、エラーを含まない符号化ストリームの場合においてＭＰＥＧ符号化装置１００でＰピクチャもしくはＢピクチャ符号化された符号化ストリームが入力された時の動作について説明する。符号化ビットストリーム２００ａ（１１２ａ）は可変長復号回路２０１に入力される。可変長復号回路２０１は、復号した画像データの信号２０１ａを逆量子化回路２０３に供給し、復号した動きベクトルの信号２０１ｂを動き補償回路２０７に供給する。
【００４０】
可変長復号回路２０１で復号された信号２０１ａは逆量子化回路２０３に供給される。逆量子化回路２０３で元の変換係数に逆量子化された変換係数２０３ａは逆直交変換回路２０４へ供給される。逆直交変換回路２０４で復号された画像信号２０４ａは加算回路２０５に供給される。加算回路２０５は、逆直交変換回路２０４からの復号された画像信号２０４ａに動き補償回路２０７からの動き補償された画像データ２０７ａを加算する加算回路であり、Ｐピクチャでは前フレームからの動き補償された画像データを加算し、Ｂピクチャでは前フレームおよび後フレームからのそれぞれ動き補償された画像データを加算する。動き補償された画像データ２０７ａが加算された画像信号２０４ａは動画像信号として出力され、またフレームメモリ２０８に蓄積される。
【００４１】
一方、復号された動きベクトル信号２０１ｂは動き補償回路２０７に供給される。動き補償回路２０７は、可変長復号回路２０１からの動きベクトル信号２０１ｂに基づいて、フレームメモリ２０８に蓄積した前フレームの画像データ２０８ａを動き補正する動き補正回路であり、正確には、Ｐピクチャの際には前フレームのＩピクチャまたはＰピクチャの画像データを動き補償し、Ｂピクチャの際には前フレームのＩまたはＰピクチャおよびその後に復号された後フレームのＩまたはＰピクチャの画像データを動き補償する。動き補償された画像データ２０７ａは加算回路２０５に供給される。
【００４２】
上述した内容は通常のＭＰＥＧ復号装置における動作であり、本実施例におけるＭＰＥＧ復号装置２００は上記の動作に加えて以下の動作も行う。可変長復号回路２０１は、入力された符号化ビットストリーム２００ａ（１１２ａ）のヘッダ解析を行い、テンポラルリファレンスおよびピクチャタイプ、ＳｋｉｐＭＢフラグ、ＤＣＴタイプ、復号した動きベクトルを検出し、検出した情報２０１ｃを補正パラメタメモリ２０９に蓄積する。逆直交変換回路２０４は、ＩＤＣＴ（Inverse Discrete Cosine Transform）後のＤＣ（直流）成分差分値２０４ｂを補正パラメタメモリ２０９に蓄積する。エッジ検出回路２１０は、フレームメモリ２０８に画像データが書き込まれた際に書き込まれた画像データを読み込んで所定の方式でエッジ検出を行い、その結果２１０ａを補正パラメタメモリ２０９に蓄積する。なお、補正パラメタメモリ２０９に蓄積される情報を以下ではパラメタと呼ぶ。
【００４３】
図３−１は、補正パラメタメモリ２０９に記憶されるパラメタの格納フォーマットの一例を示す図である。同図に示すように、この補正パラメタメモリ２０９は、各ピクチャについて、ピクチャタイプと、テンポラルリファレンスと、各マクロブロックの情報とを記憶する。ここで、各マクロブロックの情報としては、マクロブロックの番号を示すＭＢ番号、参照画像と同一画像を復号画像としているか否かを示すＳｋｉｐＭＢフラグ、ＤＣＴタイプ、復号した動きベクトルＸおよびＹ、エッジ検出結果を示すエッジ判定フラグ、ＤＣ成分差分値を記憶する。
【００４４】
図３−２は、ＤＣ成分差分値の一例を示す図である。同図に示すように、ＤＣ成分差分値については、ＩＤＣＴ後の係数を記憶し、記憶する係数は１マクロブロックあたり６Ｂｌｏｃｋの８×８個である。
【００４５】
エラー補正回路２１１は、エラー領域を特定し、特定したエラー領域に属するマクロブロックに対してエラー補正処理を行う回路である。具体的には、このエラー補正回路２１１は、エラー補正処理として、ＳｋｉｐＭＢ判定処理、参照ベクトル算出処理、ＤＣ成分差分値加算処理を行う。以下、エラー補正回路２１１の各処理の詳細について説明する。
【００４６】
まず、エラー補正回路２１１によるエラー領域特定について説明する。ＭＰＥＧは画像データを冗長性を除くために符号化しているため、符号化データの一部に異常が存在すると、次のリカバリーポイントまで復号処理が正常に行えない。そのために、エラー補正回路２１１は、まず最初にエラー領域の特定を行う。
【００４７】
復号処理中に復号エラーを検出する箇所は可変長復号回路２０１である。可変長復号回路２０１は、復号するストリームのヘッダに規格上認められていない値が入っていたりするヘッダ異常やストリームの順番が入れ替わったりデータの一部分が欠落するなどの構成異常を検出すると、検出したエラーＭＢ番号２０１ｄをエラー補正回路２１１に通知する。
【００４８】
エラー補正回路２１１は、エラーＭＢ番号が通知されると、可変長復号回路２０１と連携して符号化ストリームの次のリカバリーポイントまでストリームを読み飛ばす処理を行う。リカバリーポイントとは、次にアラインが取れる箇所であり、例えばＭＰＥＧ−２ではスライスヘッダ、ＭＰＥＧ−４ではビデオパケットヘッダなどが挙げられる。特にここではリカバリーポイントが決められているわけではなく、アラインが取れる箇所までストリームを読み飛ばすことを行う。これによって、エラー補正回路２１１は、エラーＭＢ番号とリカバリー可能なＭＢ番号を検出することが出来るため、これらの情報からエラー領域を特定できる。
【００４９】
なお、ＭＢ（マクロブロック）とは、図４に示すように、ある画面を縦１６画素と横１６画素単位で区切ったブロックである。ＭＰＥＧではこのＭＢ単位で処理が行われる。処理を行う順番は図５に示すとおり１ＭＢライン毎である。
【００５０】
エラー領域の特定は図６に示すように、エラーＭＢ番号とリカバリー可能ＭＢ番号から行う。すなわち、エラーＭＢ番号のＭＢからリカバリー可能ＭＢ番号の一つ前のＭＢまでがエラー領域となる。
【００５１】
また、図７および図８のようにエラー領域がフレームをまたぐ場合には、図９または図１０に示すテンポラルリファレンスの値を使って、いくつのフレームをまたいでいるかを特定する。エラー補正回路２１１は、ここで検出したエラー領域に対して１ＭＢ毎にエラー補正処理を行う。
【００５２】
このように、エラー補正回路２１１は、補正パラメタメモリ２０９に格納されたテンポラルリファレンス値を用いることによって、フレームをまたぐエラーに対しても正確にエラー領域を決定することができる。
【００５３】
次に、エラー補正回路２１１によるＳｋｉｐＭＢ判定処理について説明する。ここでＳｋｉｐＭＢ判定を行う目的は、特定したエラー領域に属する各マクロブロック（以下、これらのマクロブロックも「エラーＭＢ」という。）の隣接ＭＢがＳｋｉｐＭＢであった場合、隣接ＭＢは参照画像と同一の画像を復号画像として使用しており、隣接ＭＢがＳｋｉｐＭＢであるということはエラーＭＢもＳｋｉｐＭＢである可能性が高く、先にＳｋｉｐＭＢ判定を行うことで、後述する参照ベクトル算出処理を省略することが出来るためである。
【００５４】
エラー補正回路２１１は、エラーＭＢに対して隣接ＭＢを特定する。隣接ＭＢは、図１１に示すようにエラーＭＢに隣接する既に復号を完了したＭＢである。すなわち、エラーＭＢの左に隣接するＭＢをＡ、左上に隣接するＭＢをＢ、上に隣接するＭＢをＣ、右上に隣接するＭＢをＤとすると、エラー補正回路２１１は、これらの４個の隣接ＭＢを用いてＳｋｉｐＭＢ判定を行う。また、画面の左側や上側、右側など隣接ＭＢが存在しない場合は利用できる隣接ＭＢだけで処理を行う。
【００５５】
エラー補正回路２１１は、エラーＭＢに隣接するＭＢのＳｋｉｐＭＢフラグを用いてＳｋｉｐＭＢ判定を行う。ここで、図３−１に示したＳｋｉｐＭＢフラグが有効であるＭＢとは、復号処理を行わず参照フレームにおける同位置ＭＢの画像を現フレームの画像として処理するＭＢである。したがって、エラー補正回路２１１は、もしエラーＭＢがＳｋｉｐＭＢであると判定した場合には、参照フレームにおけるエラーＭＢと同位置ＭＢの画像を現フレームの画像として処理する。
【００５６】
なお、ここでは、エラー補正回路２１１は、エラーＭＢの隣接ＭＢのＳｋｉｐＭＢフラグを確認し、ＳｋｉｐＭＢの個数によってエラーＭＢをＳｋｉｐＭＢとするか否かの判定を行う。この個数は閾値として外部から設定することが可能である。また、隣接ＭＢが存在しないエラーＭＢはＳｋｉｐＭＢとは判定しない。また、閾値が隣接ＭＢの数よりも多い場合は隣接ＭＢがすべてＳｋｉｐＭＢのときにエラーＭＢをＳｋｉｐＭＢと判定する。隣接ＭＢがＳｋｉｐＭＢと判定されて補正されたＭＢの場合でも、この隣接ＭＢはＳｋｉｐＭＢとして処理を行う。
【００５７】
また、エラー補正回路２１１は、エラーＭＢをＳｋｉｐＭＢとして処理する場合は、次の参照ベクトルの算出処理は行わない。また、エラーＭＢが存在するピクチャが画面内予測符号化されたＭＢのみで構成されたピクチャ、すなわちＩピクチャの場合にも、次の参照ベクトルの算出処理は行わない。一方、エラーＭＢがＳｋｉｐＭＢでないと判定した場合には、次の参照ベクトルの算出処理を行う。
【００５８】
次に、参照フレームからエラーＭＢの参照画像となり得る領域を検出するための参照ベクトル算出について説明する。ここで、エラーＭＢの参照ベクトルを算出する目的は、エラーＭＢの補正画像となり得る画像を参照画像から探すためである。
【００５９】
従来は、復号回路内に動き探索回路を実装させ、復号画像から参照ベクトルの算出を行っている。これでは回路規模が増大するだけでなく、処理時間の増大にもつながってしまう。そのため、本実施例に係るＭＰＥＧ復号装置２００では、参照ベクトル（動きベクトル）を補正パラメタメモリ２０９に保存して使用することにした。また、参照ベクトルの算出には、使用するベクトルに対して加重平均処理を行い、汎用性のある参照ベクトル算出を実現した。
【００６０】
エラー補正回路２１１は、エラーＭＢがＳｋｉｐＭＢ無効と判定した場合に、エラーＭＢにおける参照ベクトルを算出する処理を行う。参照ベクトル算出は、エラーＭＢに対して図１１に示した隣接ＭＢの４本の参照ベクトル情報を用いて行う。また、ｘ方向およびｙ方向のベクトル成分それぞれを算出してエラーＭＢの参照ベクトルとする。そして、エラー補正回路２１１は、算出した参照ベクトルを元に補正画像になり得る画像をフレームメモリ２０８から読み出す。なお、参照ベクトル算出処理の詳細については後述する。
【００６１】
次に、ＤＣ成分差分値の加算処理について説明する。ここで、ＤＣ成分差分値を加算する目的は、参照フレームの補正画像となり得る画像をそのまま利用するだけでなく、エラーＭＢの隣接ＭＢから算出したＤＣ成分差分値を補正画像となり得る画像に加算することでより精度の高い補正画像を生成するためである。
【００６２】
エラー補正回路２１１は、隣接ＭＢのＤＣ成分差分値を平均化して求めたものをエラーＭＢの補正画像になり得る画像に対して加算することで、エラーＭＢの補正画像を生成し、生成した画像をフレームメモリ２０８にエラーＭＢの画像として書き込む。
【００６３】
なお、エラー補正回路２１１は、エラーＭＢに加算するＤＣ成分差分値の計算にあたって、隣接ＭＢのＤＣＴタイプおよびエッジ判定フラグを用いる。ここで、ＤＣＴタイプとしては、図１２に示すフレームＤＣＴと図１３に示すフィールドＤＣＴとがある。エラー補正回路２１１は、ＤＣ成分差分値を計算する際に、ＤＣＴタイプがフレームＤＣＴの場合には、隣接ＭＢの画素の値をそのまま用いることができるが、ＤＣＴタイプがフィールドＤＣＴの場合には、トップフィールドとボトムフィールドの画素の平均値を用いる。
【００６４】
また、エラー補正回路２１１は、隣接ＭＢのエッジ判定フラグを確認してエッジが含まれるＭＢについてはＤＣ成分差分値の計算には使用しないこととする。なお、ＤＣ成分差分値の算出処理の詳細については後述する。
【００６５】
次に、本実施例に係るＭＰＥＧ復号装置２００によるエラー補正動作について説明する。図１４は、本実施例に係るＭＰＥＧ復号装置２００によるエラー補正動作の動作フローを示す図である。
【００６６】
同図に示すように、このＭＰＥＧ復号装置２００は、可変長復号回路２０１が、復号エラーを検出すると（ステップＳ１０１、Ｙｅｓ）、エラーを検出したＭＢの番号を先頭ＭＢ番号として検出し（ステップＳ１０２）、次のリカバリー可能ＭＢ番号を検出する（ステップＳ１０３）。
【００６７】
そして、エラー補正回路２１１で先頭ＭＢ番号とリカバリー可能ＭＢ番号を用いてエラー領域を確定し（ステップＳ１０４）、確定したエラー領域の先頭のエラーＭＢについてＳｋｉｐＭＢ判定を行う（ステップＳ１０５）。
【００６８】
そして、エラーＭＢがＳｋｉｐＭＢであるか、または、ＩピクチャのＭＢであるかを判定し（ステップＳ１０６）、エラーＭＢがＳｋｉｐＭＢでなく、かつ、ＩピクチャのＭＢでない場合には、参照ベクトルを算出し（ステップＳ１０７）、エラーＭＢがＳｋｉｐＭＢであるか、または、ＩピクチャのＭＢである場合には、参照ベクトルを（０，０）とする（ステップＳ１０８）。
【００６９】
そして、エラー補正回路２１１は、参照ベクトルを用いてフレームメモリ２０８から補正画像となり得る画像を読み出し（ステップＳ１０９）、ＤＣ成分差分値を計算して加算する（ステップＳ１１０〜ステップＳ１１１）。
【００７０】
そして、加算結果を補正画像データとしてフレームメモリ２０８へ書き込み（ステップＳ１１２）、エラーＭＢがまだあるか否かを判定し（ステップＳ１１３）、まだエラーＭＢがある場合には、ステップＳ１０５に戻って次のエラーＭＢのＳｋｉｐＭＢ判定を行う。一方、全てのエラーＭＢについての処理を終了した場合には、ストリーム終了（ステップＳ１１４、Ｙｅｓ）になるまで、可変長復号回路２０１で引き続き復号エラーの検出を行う。
【００７１】
このように、エラー補正回路２１１がエラー領域を特定し、補正パラメタメモリ２０９に記憶したＭＢの情報を用いてエラー領域の各ＭＢに対して参照ベクトルおよびＤＣ成分差分値を算出して補正画像を生成することによって、高精度な補正画像を生成することができる。
【００７２】
次に、本実施例に係るＭＰＥＧ復号装置２００によるエラー領域特定動作について説明する。図１５は、本実施例に係るＭＰＥＧ復号装置２００によるエラー領域特定動作の動作フローを示す図である。
【００７３】
同図に示すように、ＭＰＥＧ復号装置２００は、可変長復号回路２０１でリカバリーポイントまでストリームを読み飛ばし（ステップＳ２０１）、リカバリー可能ＭＢ番号を検出する（ステップＳ２０２）。
【００７４】
そして、エラー補正回路２１１でテンポラルリファレンス値からフレームをまたぐエラー領域か否かを判定し（ステップＳ２０３）、判定結果に基づいてエラー領域を特定する（ステップＳ２０４）。
【００７５】
このように、エラー補正回路２１１がテンポラルリファレンス値を用いることによって、エラー領域がフレームにまたがる場合でも、正しくエラー領域を特定することができる。
【００７６】
次に、エラー補正回路２１１のＳｋｉｐＭＢ判定動作について説明する。図１６は、エラー補正回路２１１のＳｋｉｐＭＢ判定動作の動作フローを示す図である。なお、このＳｋｉｐＭＢ判定動作は、図１４のステップＳ１０６の動作に対応する。
【００７７】
同図に示すように、エラー補正回路２１１は、補正パラメタメモリ２０９を参照して隣接ＭＢであるＡ、Ｂ、ＣおよびＤのＳｋｉｐＭＢ情報を確認する（ステップＳ３０１）。ここで、Ａ、Ｂ、ＣおよびＤは、図１１に示した隣接ＭＢである。
【００７８】
そして、隣接ＭＢのＳｋｉｐＭＢ有効数が所定の閾値を越えているか否かを判定し（ステップＳ３０２）、所定の閾値を越えている場合には、エラーＭＢもＳｋｉｐＭＢであるとし（ステップＳ３０３）、所定の閾値を越えていない場合には、エラーＭＢはＳｋｉｐＭＢでないとする（ステップＳ３０４）。
【００７９】
このように、エラー補正回路２１１が、補正パラメタメモリ２０９に格納されたＳｋｉｐＭＢフラグを用いてエラーＭＢがＳｋｉｐＭＢであるか否かを判定することによって、不要な参照ベクトル算出処理を省くことができ、エラー補正処理を高速化することができる。
【００８０】
次に、エラー補正回路２１１でのエラーＭＢの参照ベクトル算出動作の詳細について説明する。エラー補正回路２１１は、エラーＭＢの各隣接ＭＢ（Ａ〜Ｄ）において左、左上、上、右上に位置するＭＢとの動きベクトルのベクトル差分を計算し、その結果を使って、エラーＭＢの参照ベクトルを算出する際の左、左上、上、右上ＭＢの動きベクトルの比率（加重平均の重み）を計算する。なお、エッジを含むＭＢについては計算対象から外す。
【００８１】
図１７−１は、エラーＭＢのｘ方向の参照ベクトルを算出する際の左、左上、上、右上ＭＢの動きベクトルの比率の分母および分子の計算式を示す図である。同図において、Ａ〜Ｋは図１７−２に示すＭＢを示す。また、｜Ａ−Ｅ｜は、ＡとＥのｘ方向の動きベクトルの差の絶対値を示し、他も同様である。
【００８２】
なお、Ａ〜ＫのＭＢの中でエッジが含まれるＭＢについては、絵柄の特徴が変わってしまっていることが考えられるため、計算対象から外す。エラー補正回路２１１は、エッジ検出回路２１０でのエッジ判定結果を考慮した計算結果をもとに、左、左上、上、右上それぞれの合計値を計算する。
【００８３】
図１７−１のＳＵＭ＿Ｘ１〜ＳＵＭ＿Ｘ４およびＳＵＭ＿Ｙを用いて、エラーＭＢの左のＭＢにおける比率ＲＡは、ＲＡ＝ＳＵＭ＿Ｘ１／ＳＵＭ＿Ｙであり、エラーＭＢの左上における比率ＲＢは、ＲＢ＝ＳＵＭ＿Ｘ２／ＳＵＭ＿Ｙである。同様に、エラーＭＢの上における比率ＲＣは、ＲＣ＝ＳＵＭ＿Ｘ３／ＳＵＭ＿Ｙであり、エラーＭＢの右上における比率ＲＤは、ＲＤ＝ＳＵＭ＿Ｘ４／ＳＵＭ＿Ｙである。
【００８４】
そして、これらの比率ＲＡ〜ＲＤを用いて、エラーＭＢの参照ベクトルのｘ方向の値ＥＲＲＯＲ（ｘ）は、ＥＲＲＯＲ（ｘ）＝ＲＡ＊Ａ（ｘ）＋ＲＢ＊Ｂ（ｘ）＋ＲＣ＊Ｃ（ｘ）＋ＲＤ＊Ｄ（ｘ）となる。ここで、Ａ（ｘ）は、Ａのｘ方向の動きベクトルの値であり、他も同様である。
【００８５】
また、エラーＭＢの参照ベクトルのｙ方向の値もｘ方向の値と同様に計算することができる。すなわち、図１７−１に示した｜Ａ−Ｅ｜を、ＡとＥのｙ方向の動きベクトルの差の絶対値とし、他も同様にｙ方向の動きベクトルの差の絶対値とすることによって、ｙ方向の値を計算することができる。
【００８６】
図１８は、エラー補正回路２１１の参照ベクトル算出動作の動作フローを示す図である。同図に示すように、エラー補正回路２１１は、補正パラメタメモリ２０９に格納された動きベクトルを用いて、隣接ＭＢであるＡの左ＭＢとの差分絶対値｜Ａ−Ｅ｜を計算し（ステップＳ４０１）、隣接ＭＢであるＢの左ＭＢとの差分絶対値｜Ｂ−Ｆ｜を計算する（ステップＳ４０２）。
【００８７】
同様に、隣接ＭＢであるＣの左ＭＢとの差分絶対値｜Ｃ−Ｂ｜を計算し（ステップＳ４０３）、隣接ＭＢであるＤの左ＭＢとの差分絶対値｜Ｄ−Ｃ｜を計算する（ステップＳ４０４）。
【００８８】
そして、エッジ検出回路２１０によりエッジが検出されたＭＢがあるか否かを判定し（ステップＳ４０５）、エッジが検出されたＭＢがある場合には、そのＭＢの動きベクトルを用いた計算結果を無効扱いにする（ステップＳ４０６）。
【００８９】
そして、合計値ＳＵＭ＿Ｘ１を計算し（ステップＳ４０７）、同様に、左上ＭＢとの差分絶対値の計算、上ＭＢとの差分絶対値の計算、右上ＭＢとの差分絶対値の計算を行って、合計値ＳＵＭ＿Ｘ２、ＳＵＭ＿Ｘ３およびＳＵＭ＿Ｘ４を計算する（ステップＳ４０８の判定結果がＮｏによる繰り返し）。
【００９０】
そして、ＳＵＭ＿Ｙを計算して比率ＲＡ〜ＲＤを計算し、計算した比率ＲＡ〜ＲＤを用いてエラーＭＢの参照ベクトルを算出する（ステップＳ４０９）。
【００９１】
このように、エラー補正回路２１１が、補正パラメタメモリ２０９に格納された動きベクトルを用いて、エラーＭＢの参照ベクトルを算出することによって、動き探索回路を実装することなく参照ベクトルを算出することができる。したがって、回路規模や復号処理時間を増大させることなく、高精度なエラー補正を行うことができる。
【００９２】
なお、ここでは、エラーＭＢの各隣接ＭＢ（Ａ〜Ｄ）において左、左上、上、右上に位置するＭＢとのベクトル差分を計算し、その結果を使って、エラーＭＢの参照ベクトルを算出する際の左、左上、上、右上ＭＢの動きベクトルの比率を計算することとしたが、エラーＭＢの隣接ＭＢ（Ａ〜Ｄ）における隣接ＭＢとの相関性を用いて比率を計算することもできる。
【００９３】
図１９は、隣接ＭＢとの相関性を用いて比率を計算する場合の比率の分母および分子の計算式を示す図である。同図において、Ａ〜Ｋは図１７−２に示すＭＢを示す。また、｜Ａ−Ｅ｜は、ＡとＥのｘ方向の動きベクトルの差の絶対値を示し、他も同様である。
【００９４】
図１９のＳＵＭ＿Ｘ１〜ＳＵＭ＿Ｘ４およびＳＵＭ＿Ｙを用いて、エラーＭＢの左のＭＢにおける比率ＲＡは、ＲＡ＝ＳＵＭ＿Ｘ１／ＳＵＭ＿Ｙであり、エラーＭＢの左上における比率ＲＢは、ＲＢ＝ＳＵＭ＿Ｘ２／ＳＵＭ＿Ｙである。同様に、エラーＭＢの上における比率ＲＣは、ＲＣ＝ＳＵＭ＿Ｘ３／ＳＵＭ＿Ｙであり、エラーＭＢの右上における比率ＲＤは、ＲＤ＝ＳＵＭ＿Ｘ４／ＳＵＭ＿Ｙである。
【００９５】
そして、これらの比率ＲＡ〜ＲＤを用いて、エラーＭＢの参照ベクトルのｘ方向の値ＥＲＲＯＲ（ｘ）は、ＥＲＲＯＲ（ｘ）＝ＲＡ＊Ａ（ｘ）＋ＲＢ＊Ｂ（ｘ）＋ＲＣ＊Ｃ（ｘ）＋ＲＤ＊Ｄ（ｘ）となる。ここで、Ａ（ｘ）は、Ａのｘ方向の動きベクトルの値であり、他も同様である。
【００９６】
また、エラーＭＢの参照ベクトルのｙ方向の値もｘ方向の値と同様に計算することができる。すなわち、図１９に示した｜Ａ−Ｅ｜を、ＡとＥのｙ方向の動きベクトルの差の絶対値とし、他も同様にｙ方向の動きベクトルの差の絶対値とすることによって、ｙ方向の値を計算することができる。
【００９７】
図２０は、図１９に示した計算式を用いたエラー補正回路２１１の参照ベクトル算出動作の動作フローを示す図である。同図に示すように、エラー補正回路２１１は、補正パラメタメモリ２０９に格納された動きベクトルを用いて、隣接ＭＢであるＡの隣接ＭＢとの差分絶対値和｜Ａ−Ｅ｜＋｜Ａ−Ｆ｜＋｜Ａ−Ｂ｜＋｜Ａ−Ｃ｜を計算し（ステップＳ５０１）、隣接ＭＢであるＢの隣接ＭＢとの差分絶対値和｜Ｂ−Ｆ｜＋｜Ｂ−Ｇ｜＋｜Ｂ−Ｈ｜＋｜Ｂ−Ｉ｜を計算する（ステップＳ５０２）。
【００９８】
同様に、隣接ＭＢであるＣの隣接ＭＢとの差分絶対値和｜Ｃ−Ｂ｜＋｜Ｃ−Ｈ｜＋｜Ｃ−Ｉ｜＋｜Ｃ−Ｊ｜を計算し（ステップＳ５０３）、隣接ＭＢであるＤの隣接ＭＢとの差分絶対値和｜Ｄ−Ｃ｜＋｜Ｄ−Ｉ｜＋｜Ｄ−Ｊ｜＋｜Ｄ−Ｋ｜を計算する（ステップＳ５０４）。
【００９９】
そして、ＳＵＭ＿Ｙを計算して比率ＲＡ〜ＲＤを計算し、計算した比率ＲＡ〜ＲＤを用いてエラーＭＢの参照ベクトルを算出する（ステップＳ５０５）。
【０１００】
なお、図１７−１および図１８に示した動作と図１９および図２０に示した動作を比較すると、図１７−１および図１８に示した動作は、エッジが含まれる部分のベクトル補正度が高く、図１９および図２０に示した動作は、相関性を用いることによって誤検出した場合の影響度を低く抑えることができるという特徴がある。
【０１０１】
次に、エラー補正回路２１１でのエラーＭＢのＤＣ成分差分値算出動作の詳細について説明する。エラー補正回路２１１は、エラーＭＢ内の４個のブロックそれぞれについてＤＣ成分差分値を計算する。
【０１０２】
図２１は、ＤＣ成分差分値計算に使用するブロックを示す図である。同図に示すように、隣接ＭＢをＡ〜Ｄとし、ＡがＡ１〜Ａ４のブロックから構成され、ＢがＢ１〜Ｂ４のブロックから構成され、ＣがＣ１〜Ｃ４のブロックから構成され、ＤがＤ１〜Ｄ４のブロックから構成されるとすると、エラー補正回路２１１は、エラーＭＢ内のブロック（１）のＤＣ成分差分値の計算にはブロックＡ２、Ｂ４、Ｃ３、Ｃ４を用い、エラーＭＢ内のブロック（２）のＤＣ成分差分値の計算にはブロック（１）、Ｃ３、Ｃ４、Ｄ３を用い、エラーＭＢ内のブロック（３）のＤＣ成分差分値の計算にはブロックＡ４、Ａ２、ブロック（１）、ブロック（２）を用い、エラーＭＢ内のブロック（４）のＤＣ成分差分値の計算にはブロック（１）、ブロック（２）、ブロック（３）を用いる。
【０１０３】
なお、上記のブロック（１）〜（４）の計算で使用する隣接ＭＢのブロックにおいて、ＤＣＴタイプがフィールドＤＣＴのＭＢが存在する場合は、事前にブロック間で平均化する必要がある。これは、図１３に示したとおり、どちらか一方にトップまたはボトムの画像が連続的に入っているからである。例えば、隣接ＭＢのＡがフィールドＤＣＴであった場合、Ａ２とＡ４のブロックを平均化する必要があり、Ａ２の８×８＝６４要素とＡ４の８×８＝６４要素それぞれを平均化した８×８＝６４要素をＡ２とＡ４のＤＣ成分差分値として使用する。
【０１０４】
また、エラーＭＢのＤＣ成分差分値算出動作は、基本的に参照ベクトル算出動作と同じであり、ここではエラーＭＢのブロック（１）を補正ブロックとするＤＣ成分差分値算出動作を示すが、他のブロックのＤＣ成分差分値算出動作も同様である。
【０１０５】
エラーＭＢのブロック（１）においてＤＣ成分差分値の計算に使用するブロックはＡ２、Ｂ４、Ｃ３、Ｃ４の４ブロックであり、それぞれにおいて左、左上、上、右上に位置するブロックとのＤＣ成分差分値の差を計算して、その結果を使ってエラーＭＢのブロック（１）のＤＣ成分差分値を算出する際の左、左上、上、右上ブロックのＤＣ成分差分値の比率（加重平均の重み）を計算する。なお、エッジを含むＭＢについては計算対象から外す。
【０１０６】
図２２は、ブロック（１）のＤＣ成分差分値を算出する際の左、左上、上、右上ブロックのＤＣ成分差分値の比率の分母および分子の計算式を示す図である。同図において、Ａ１、Ａ２、Ｂ１〜Ｂ４、Ｃ１〜Ｃ４、Ｄ１は図２１に示すブロックを示す。また、｜Ａ２−Ａ１｜は、それぞれのブロックのＤＣ成分差分値の８×８＝６４要素１つずつで差分絶対値を計算したものを示し、他も同様である。
【０１０７】
なお、Ａ１〜Ｄ１のＭＢの中でエッジが含まれるＭＢについては、絵柄の特徴が変わってしまっていることが考えられるため、計算対象から外す。エラー補正回路２１１は、エッジ検出回路２１０でのエッジ判定結果を考慮した計算結果をもとに、左、左上、上、右上それぞれの合計値を計算する。
【０１０８】
図２２のＳＵＭ＿Ｘ１〜ＳＵＭ＿Ｘ４およびＳＵＭ＿Ｙを用いて、補正ブロックの左に隣接するブロックにおける比率ＲＡは、ＲＡ＝ＳＵＭ＿Ｘ１／ＳＵＭ＿Ｙであり、補正ブロックの左上に隣接するブロックにおける比率ＲＢは、ＲＢ＝ＳＵＭ＿Ｘ２／ＳＵＭ＿Ｙである。同様に、補正ブロックの上に隣接するブロックにおける比率ＲＣは、ＲＣ＝ＳＵＭ＿Ｘ３／ＳＵＭ＿Ｙであり、補正ブロックの右上に隣接するブロックにおける比率ＲＤは、ＲＤ＝ＳＵＭ＿Ｘ４／ＳＵＭ＿Ｙである。
【０１０９】
そして、これらの比率ＲＡ〜ＲＤを用いて、補正ブロックにおけるＤＣ成分差分値ＥＲＲＯＲ（ＤＣ）は、ＥＲＲＯＲ（ＤＣ）＝ＲＡ＊Ａ２（ＤＣ）＋ＲＢ＊Ｂ４（ＤＣ）＋ＲＣ＊Ｃ３（ＤＣ）＋ＲＤ＊Ｃ４（ＤＣ）となる。ここで、Ａ２（ＤＣ）は、Ａ２のＤＣ成分差分値であり、他も同様である。
【０１１０】
図２３は、エラー補正回路２１１のＤＣ成分差分値算出動作の動作フローを示す図である。同図に示すように、エラー補正回路２１１は、補正パラメタメモリ２０９に格納されたＤＣ成分差分値を用いて、隣接ブロックであるＡ２の左ブロックとの差分絶対値｜Ａ２−Ａ１｜を計算し（ステップＳ６０１）、隣接ブロックであるＢ４の左ブロックとの差分絶対値｜Ｂ４−Ｂ３｜を計算する（ステップＳ６０２）。
【０１１１】
同様に、隣接ブロックであるＣ３の左ブロックとの差分絶対値｜Ｃ３−Ｂ４｜を計算し（ステップＳ６０３）、隣接ブロックであるＣ４の左ブロックとの差分絶対値｜Ｃ４−Ｃ３｜を計算する（ステップＳ６０４）。
【０１１２】
そして、エッジ検出回路２１０によりエッジが検出されたＭＢがあるか否かを判定し（ステップＳ６０５）、エッジが検出されたＭＢがある場合には、そのＭＢのＤＣ成分差分値を用いた計算結果を無効扱いにする（ステップＳ６０６）。
【０１１３】
そして、合計値ＳＵＭ＿Ｘ１を計算し（ステップＳ６０７）、同様に、左上ブロックとの差分絶対値の計算、上ブロックとの差分絶対値の計算、右上ブロックとの差分絶対値の計算を行って、合計値ＳＵＭ＿Ｘ２、ＳＵＭ＿Ｘ３およびＳＵＭ＿Ｘ４を計算する（ステップＳ６０８の判定結果がＮｏによる繰り返し）。
【０１１４】
そして、ＳＵＭ＿Ｙを計算して比率ＲＡ〜ＲＤを計算し、計算した比率ＲＡ〜ＲＤを用いて補正ブロックのＤＣ成分差分値を算出する（ステップＳ６０９）。
【０１１５】
このように、エラー補正回路２１１が、補正パラメタメモリ２０９に格納されたＤＣ成分差分値を用いて、エラーＭＢのＤＣ成分差分値を算出することによって、より精度の高い補正を行うことができる。
【０１１６】
なお、ここでは、補正ブロックの各隣接ブロックにおいて左、左上、上、右上に位置するブロックとのＤＣ成分差分値の差分絶対値を計算し、その結果を使って、補正ブロックのＤＣ成分差分値を算出する際の左、左上、上、右上ブロックのＤＣ成分差分値の比率を計算することとしたが、補正ブロックの隣接ブロックにおける隣接ブロックとの相関性を用いて比率を計算することもできる。
【０１１７】
図２４は、隣接ブロックとの相関性を用いて比率を計算する場合の比率の分母および分子の計算式を示す図である。図２４のＳＵＭ＿Ｘ１〜ＳＵＭ＿Ｘ４およびＳＵＭ＿Ｙを用いて、補正ブロックの左に隣接するブロックにおける比率ＲＡは、ＲＡ＝ＳＵＭ＿Ｘ１／ＳＵＭ＿Ｙであり、補正ブロックの左上に隣接するブロックにおける比率ＲＢは、ＲＢ＝ＳＵＭ＿Ｘ２／ＳＵＭ＿Ｙである。同様に、補正ブロックの上に隣接するブロックにおける比率ＲＣは、ＲＣ＝ＳＵＭ＿Ｘ３／ＳＵＭ＿Ｙであり、補正ブロックの右上に隣接するブロックにおける比率ＲＤは、ＲＤ＝ＳＵＭ＿Ｘ４／ＳＵＭ＿Ｙである。
【０１１８】
そして、これらの比率ＲＡ〜ＲＤを用いて、補正ブロックにおけるＤＣ成分差分値ＥＲＲＯＲ（ＤＣ）は、ＥＲＲＯＲ（ＤＣ）＝ＲＡ＊Ａ２（ＤＣ）＋ＲＢ＊Ｂ４（ＤＣ）＋ＲＣ＊Ｃ３（ＤＣ）＋ＲＤ＊Ｃ４（ＤＣ）となる。ここで、Ａ２（ＤＣ）は、Ａ２のＤＣ成分差分値であり、他も同様である。
【０１１９】
図２５は、図２４に示した計算式を用いたエラー補正回路２１１のＤＣ成分差分値算出動作の動作フローを示す図である。同図に示すように、エラー補正回路２１１は、補正パラメタメモリ２０９に格納されたＤＣ成分差分値を用いて、隣接ブロックであるＡ２の隣接ブロックとの差分絶対値和｜Ａ２−Ａ１｜＋｜Ａ２−Ｂ３｜＋｜Ａ２−Ｂ４｜＋｜Ａ２−Ｃ３｜を計算し（ステップＳ７０１）、隣接ブロックであるＢ４の隣接ブロックとの差分絶対値和｜Ｂ４−Ｂ３｜＋｜Ｂ４−Ｂ１｜＋｜Ｂ４−Ｂ２｜＋｜Ｂ４−Ｃ１｜を計算する（ステップＳ７０２）。
【０１２０】
同様に、隣接ブロックであるＣ３の隣接ブロックとの差分絶対値和｜Ｃ３−Ｂ４｜＋｜Ｃ３−Ｂ２｜＋｜Ｃ３−Ｃ１｜＋｜Ｃ３−Ｃ２｜を計算し（ステップＳ７０３）、隣接ブロックであるＣ４の隣接ブロックとの差分絶対値和｜Ｃ４−Ｃ３｜＋｜Ｃ４−Ｃ１｜＋｜Ｃ４−Ｃ２｜＋｜Ｃ４−Ｄ１｜を計算する（ステップＳ７０４）。
【０１２１】
そして、ＳＵＭ＿Ｙを計算して比率ＲＡ〜ＲＤを計算し（ステップＳ７０５）、エッジ検出回路２１０によりエッジが検出されたＭＢがあるか否かを判定する（ステップＳ７０６）。その結果、エッジが検出されたＭＢがある場合には、そのＭＢのＤＣ成分差分値を用いる計算結果を無効扱いにし（ステップＳ７０７）、比率ＲＡ〜ＲＤを用いて補正ブロックのＤＣ成分差分値を算出する（ステップＳ７０８）。
【０１２２】
上述してきたように、本実施例では、可変長復号回路２０１がビットストリーム２００ａから復号した動きベクトルをＭＢごとに補正パラメタメモリ２０９に格納し、エラー補正回路２１１が補正パラメタメモリ２０９に格納された動きベクトルを用いてエラーＭＢの参照ベクトルを算出して参照画像から補正画像を生成することとしたので、動き探索回路を実装することなく、参照画像から補正画像を生成することができる。
【０１２３】
また、本実施例では、逆直交変換回路２０４がＩＤＣＴ後のＤＣ成分差分値２０４ｂを
ＭＢごとに補正パラメタメモリ２０９に格納し、エラー補正回路２１１が補正パラメタメモリ２０９に格納されたＤＣ成分差分値を用いてエラーＭＢのＤＣ成分差分値を算出して参照画像から生成した補正画像に加算することとしたので、より精度の高い補正画像を生成することができる。
【０１２４】
なお、本実施例では、ＭＰＥＧ復号装置について説明したが、ＭＰＥＧ復号装置が有する構成をソフトウェアによって実現することで、同様の機能を有するＭＰＥＧ復号プログラムを得ることができる。そこで、このＭＰＥＧ復号プログラムを実行するコンピュータについて説明する。
【０１２５】
図２６は、本実施例に係るＭＰＥＧ復号プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ３００は、ＲＡＭ３１０と、ＣＰＵ３２０と、ＨＤＤ３３０と、ＬＡＮインタフェース３４０と、入出力インタフェース３５０と、ＤＶＤドライブ３６０とを有する。
【０１２６】
ＲＡＭ３１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ３２０は、ＲＡＭ３１０からプログラムを読み出して実行する中央処理装置である。
【０１２７】
ＨＤＤ３３０は、プログラムやデータを格納するディスク装置であり、ＬＡＮインタフェース３４０は、コンピュータ３００をＬＡＮ経由で他のコンピュータに接続するためのインタフェースである。
【０１２８】
入出力インタフェース３５０は、マウスやキーボードなどの入力装置および表示装置を接続するためのインタフェースであり、ＤＶＤドライブ３６０は、ＤＶＤの読み書きを行う装置である。
【０１２９】
そして、このコンピュータ３００において実行されるＭＰＥＧ復号プログラム３１１は、ＤＶＤに記憶され、ＤＶＤドライブ３６０によってＤＶＤから読み出されてコンピュータ３００にインストールされる。
【０１３０】
あるいは、このＭＰＥＧ復号プログラム３１１は、ＬＡＮインタフェース３４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ３００にインストールされる。
【０１３１】
そして、インストールされたＭＰＥＧ復号プログラム３１１は、ＨＤＤ３３０に記憶され、ＲＡＭ３１０に読み出されてＣＰＵ３２０によってＭＰＥＧ復号プロセス３２１として実行される。
【０１３２】
（付記１）複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号装置であって、
前記符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶する補正情報記憶手段と、
前記補正情報記憶手段により記憶された動きベクトルのうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手段と、
を備えたことを特徴とする動画像復号装置。
【０１３３】
（付記２）前記エラーブロックに隣接するブロックは、該エラーブロックの左、左上、上および右上のブロックであることを特徴とする付記１に記載の動画像復号装置。
【０１３４】
（付記３）前記エラー補正手段は、前記エラーブロックに隣接するブロックの動きベクトルの加重平均を該エラーブロックの参照ベクトルとして参照フレームから参照されるブロックを該エラーブロックの補正画像とすることを特徴とする付記１または２に記載の動画像復号装置。
【０１３５】
（付記４）前記エラー補正手段は、前記エラーブロックに隣接するブロックの動きベクトルの重みを計算する際にエッジを検出した場合には、重み計算にエッジが検出された動きベクトルは加重平均の対象から除外することを特徴とする付記３に記載の動画像復号装置。
【０１３６】
（付記５）前記補正情報記憶手段は、前記符号化ビットストリームから検出した直流成分差分値をブロックごとに補正情報としてさらに記憶し、
前記エラー補正手段は、前記補正情報記憶手段により記憶された直流成分差分値のうち前記エラーブロックに隣接するブロックの直流成分差分値を用いて前記補正画像の補正をさらに行うことを特徴とする付記１〜４のいずれか一つに記載の動画像復号装置。
【０１３７】
（付記６）前記補正情報記憶手段は、前記符号化ビットストリームから検出した、参照先フレームの参照場所が参照元フレームと同じ場所であるか否かを示す情報であるスキップブロック情報をブロックごとに補正情報としてさらに記憶し、
前記補正情報記憶手段により記憶されたスキップブロック情報のうち前記エラーブロックに隣接するブロックのスキップブロック情報に基づいて、該エラーブロックの補正に動きベクトルを用いるか否かを判定する動きベクトル要否判定手段をさらに備え、
前記エラー補正手段は、前記動きベクトル要否判定手段によりエラーブロックの補正に動きベクトルを用いると判定された場合に、該エラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックの補正画像とすることを特徴とする付記１〜５のいずれか一つに記載の動画像復号装置。
【０１３８】
（付記７）前記エラーブロックから構成されるエラー領域をエラーが検出されたブロックおよび次のリカバリー可能ブロックの番号に加えてフレーム番号を用いて特定するエラー領域特定手段をさらに備えたことを特徴とする付記１〜６のいずれか一つに記載の動画像復号装置。
【０１３９】
（付記８）前記動画像符号化装置は、ＭＰＥＧを用いて動画を符号化し、前記ブロックはマクロブロックであることを特徴とする付記１〜７のいずれか一つに記載の動画像復号装置。
【０１４０】
（付記９）複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号方法であって、
前記符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶装置に格納する補正情報格納工程と、
前記補正情報格納工程により記憶装置に格納された動きベクトルのうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正工程と、
を含んだことを特徴とする動画像復号方法。
【０１４１】
（付記１０）複数のブロックからフレームが構成される画像のブロックごとの動きベクトルを用いて動画像を符号化する動画像符号化装置が送信する符号化ビットストリームを入力して動画像を復号する動画像復号プログラムであって、
前記符号化ビットストリームから検出した動きベクトルをブロックごとに補正情報として記憶装置に格納する補正情報格納手順と、
前記補正情報格納手順により記憶装置に格納された動きベクトルのうち前記符号化ビットストリームから検出したエラーブロックに隣接するブロックの動きベクトルにより特定されるブロックを参照フレームから参照して該エラーブロックを補正する補正画像とするエラー補正手順と、
をコンピュータに実行させることを特徴とする動画像復号プログラム。
【産業上の利用可能性】
【０１４２】
以上のように、本発明に係る動画像復号装置、動画像復号方法および動画像復号プログラムは、動画像を符号化して配信する動画配信システムなどに有用であり、特に、伝送エラーが発生する可能性が高い場合に適している。
【図面の簡単な説明】
【０１４３】
【図１】本実施例に係るＭＰＥＧ符号化装置の構成を示す機能ブロック図である。
【図２】本実施例に係るＭＰＥＧ復号装置の構成を示す機能ブロック図である。
【図３−１】補正パラメタメモリに記憶されるパラメタの格納フォーマットの一例を示す図である。
【図３−２】ＤＣ成分差分値の一例を示す図である。
【図４】ＭＢ（マクロブロック）とＭＢ番号を示す図である。
【図５】ＭＢ復号順番を示す図である。
【図６】エラー領域を示す図である。
【図７】フレームをまたぐエラー領域を示す図（１）である。
【図８】フレームをまたぐエラー領域を示す図（２）である。
【図９】テンポラルリファレンス（ＧＯＰ１５／ＩＰＰＰ構造）を示す図である。
【図１０】テンポラルリファレンス（ＧＯＰ１５／ＩＢＢＰ構造）を示す図である。
【図１１】隣接ＭＢを示す図である。
【図１２】フレームＤＣＴを示す図である。
【図１３】フィールドＤＣＴを示す図である。
【図１４】本実施例に係るＭＰＥＧ復号装置によるエラー補正動作の動作フローを示す図である。
【図１５】本実施例に係るＭＰＥＧ復号装置によるエラー領域特定動作の動作フローを示す図である。
【図１６】エラー補正回路のＳｋｉｐＭＢ判定動作の動作フローを示す図である。
【図１７−１】エラーＭＢのＸ方向の参照ベクトルを算出する際の左、左上、上、右上ＭＢの動きベクトルの比率の分母および分子の計算式を示す図である。
【図１７−２】Ａ〜Ｋの定義を示す図である。
【図１８】エラー補正回路の参照ベクトル算出動作の動作フローを示す図である。
【図１９】隣接ＭＢとの相関性を用いて比率を計算する場合の比率の分母および分子の計算式を示す図である。
【図２０】図１９に示した計算式を用いたエラー補正回路の参照ベクトル算出動作の動作フローを示す図である。
【図２１】ＤＣ成分差分値計算に使用するブロックを示す図である。
【図２２】ブロック（１）のＤＣ成分差分値を算出する際の左、左上、上、右上ブロックのＤＣ成分差分値の比率の分母および分子の計算式を示す図である。
【図２３】エラー補正回路のＤＣ成分差分値算出動作の動作フローを示す図である。
【図２４】隣接ブロックとの相関性を用いて比率を計算する場合の比率の分母および分子の計算式を示す図である。
【図２５】図２４に示した計算式を用いたエラー補正回路のＤＣ成分差分値算出動作の動作フローを示す図である。
【図２６】本実施例に係るＭＰＥＧ復号プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【符号の説明】
【０１４４】
１００    ＭＰＥＧ符号化装置
１００ａ    動画像信号
１０１    減算回路
１０１ａ    フレーム間差分値
１０２    直交変換回路
１０２ａ    変換係数
１０３    量子化回路
１０３ａ    量子化された符号
１０４    可変長符号化回路
１０４ａ    可変長符号化された符号
１０５    逆量子化回路
１０５ａ    逆量子化された符号
１０６    逆直交変換回路
１０６ａ    逆直交変換された符号
１０７    加算回路
１０７ａ    再生画像信号
１０８    フレームメモリ
１０８ａ    画像信号
１０９    動き補償回路
１０９ａ    前フレーム信号
１１０    動き探索回路
１１０ａ    動きベクトル
１１１    動きベクトル符号化回路
１１１ａ    動きベクトル符号化信号
１１２    ストリーム多重化回路
１１２ａ    ビットストリーム出力
２００    ＭＰＥＧ復号装置
２００ａ    ビットストリーム入力
２０１    可変長復号回路
２０１ａ    復号された信号
２０１ｂ    動きベクトル信号
２０１ｃ    テンポラルリファレンス、ピクチャタイプ、ＳｋｉｐＭＢフラグ、ＤＣＴタイプ、動きベクトルの情報
２０１ｄ    エラーＭＢ番号、リカバリー可能ＭＢ番号
２０３    逆量子化回路
２０３ａ    変換係数
２０４    逆直交変換回路
２０４ａ    復号された画像信号
２０４ｂ    ＤＣ成分差分値
２０５    加算回路
２０５ａ    画像信号
２０７    動き補償回路
２０７ａ    動き補償画像データ
２０８    フレームメモリ
２０８ａ    前フレーム画像データ
２０９    補正パラメタメモリ
２１０    エッジ検出回路
２１０ａ    エッジ検出結果
２１１    エラー補正回路
３００    コンピュータ
３１０    ＲＡＭ
３１１    ＭＰＥＧ復号プログラム
３２０    ＣＰＵ
３２１    ＭＰＥＧ復号プロセス
３３０    ＨＤＤ
３４０    ＬＡＮインタフェース
３５０    入出力インタフェース
３６０    ＤＶＤドライブ
【図１】
0004523886.tif 000002
【図２】
0004523886.tif 000003
【図３−１】
0004523886.tif 000004
【図３−２】
0004523886.tif 000005
【図４】
0004523886.tif 000006
【図５】
0004523886.tif 000007
【図６】
0004523886.tif 000008
【図７】
0004523886.tif 000009
【図８】
0004523886.tif 000010
【図９】
0004523886.tif 000011
【図１０】
0004523886.tif 000012
【図１１】
0004523886.tif 000013
【図１２】
0004523886.tif 000014
【図１３】
0004523886.tif 000015
【図１４】
0004523886.tif 000016
【図１５】
0004523886.tif 000017
【図１６】
0004523886.tif 000018
【図１７−１】
0004523886.tif 000019
【図１７−２】
0004523886.tif 000020
【図１８】
0004523886.tif 000021
【図１９】
0004523886.tif 000022
【図２０】
0004523886.tif 000023
【図２１】
0004523886.tif 000024
【図２２】
0004523886.tif 000025
【図２３】
0004523886.tif 000026
【図２４】
0004523886.tif 000027
【図２５】
0004523886.tif 000028
【図２６】
0004523886.tif 000029