(57)【特許請求の範囲】
【請求項１】
復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記復号手段で正常に復号できた現画像のマクロブロックのうち、前記復号された画像を参照しているマクロブロックの個数をカウントし、最も参照回数の多い画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする動画像復号装置。
【請求項２】
復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記エラーとなったマクロブロックが参照している、符号化部で設定された最も参照頻度の高い画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする動画像復号装置。
【請求項３】
復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記復号された画像を識別する識別子の符号量が最も小さい識別子に対応する画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする動画像復号装置。
【請求項４】
請求項１乃至３のいずれかに記載の動画像復号装置において、前記画像選択手段は、前記復号手段で正常に復号できた現画像のマクロブロックのうち、イントラマクロブロックの個数をカウントし、前記イントラマクロブロックの個数が所定の閾値より大きい場合、現画像をコンシールメント用画像として選択することを特徴とする動画像復号装置。
【請求項５】
請求項１乃至４のいずれかに記載の動画像復号装置において、前記画像選択手段は、前記復号手段でエラーと判定されたマクロブロックの個数が所定の閾値より大きい場合、前記復号手段で復号されたピクチャを破棄することを特徴とする動画像復号装置。
【発明の詳細な説明】
【技術分野】
［０００１］  本発明は、ＭＰＥＧ−４等の動画像符号化データを復号する動画像復号装置に関し、特に、伝送エラーのある環境においても画質劣化の少ない映像を再生することのできる動画像復号装置に関するものである。
【背景技術】
［０００２］  近年、テレビ電話システム、映像配信システム（ストリーミング）などで広く用いられている動画像符号化方式の１つとしてＭＰＥＧ−４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ｐｈａｓｅ  ４）Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）がある。ＭＰＥＧ−４  Ｖｉｓｕａｌでは時間方向の予測を用いた圧縮方式を採用している。
図９（Ａ）は、ＭＰＥＧ−４  Ｖｉｓｕａｌを用いた予測符号化の例を示した図で、参照画像を必要とせず画面内の情報のみを用いて符号化を行うＩフレーム（図中、Ｉ１およびＩ７）と、直前に符号化したフレームを参照画像として予測符号化するＰフレーム（図中、Ｐｎ：ｎ＝２，３，４，５，６）とから構成されている。例えば、フレームＰ４は、直前に符号化したフレームＰ３を参照画像として予測符号化されている。
［０００３］  また、最近では、ＭＰＥＧ−４  ＡＶＣ（ＩＳＯ／ＩＥＣ  １４４９６−１０）と呼ばれる符号化方式を利用したアプリケーションも開発されている。ＭＰＥＧ−４  ＡＶＣの特徴の１つとして、複数の参照画像を用いた予測符号化があげられる。
図９（Ｂ）は、ＭＰＥＧ−４  ＡＶＣを用いた予測符号化の例を示した図で、参照画像を必要とせず画面内の情報のみを用いて符号化を行うＩフレーム（図中、Ｉ１およびＩ７）と、過去に符号化された１または複数のフレームを参照画像として予測符号化するＰフレーム（図中、Ｐｎ：ｎ＝２，３，４，５，６）から構成されている。例えば、フレームＰ４は、過去に符号化されたフレームＩ１、フレームＰ２、およびフレームＰ３を参照画像として予測符号化されている。
［０００４］  ところで、無線通信など、通信路でエラーが混入する環境では、受信側で必ずしも正しい復号画像が得られるとは限らない。さらに、予測符号化を用いているため、あるフレームでエラーが発生すると、その影響がエラー発生フレームのみにとどまらず、続くフレームにまで伝播してしまう。例えば、図９（Ａ）において斜線で示したフレームＰ４でエラーを検出した場合、フレームＰ４だけでなく、フレームＰ４を参照しているフレームＰ５、さらにはフレームＰ５を参照しているフレームＰ６にまでエラーが伝播し画質劣化を引き起こしてしまう。これを回避するため、受信側でエラーのあるフレーム（図９（Ａ）におけるフレームＰ４、フレームＰ５、フレームＰ６）を表示しないようにしたり、エラー部分（フレームＰ４におけるエラーブロック）を他の画像で置き換えたりする処理が行われる。
【０００５】
例えば、特許文献１「動画像復号化装置」には、あるフレームでエラーを検出した場合、参照画像を必要としないフレームまで符号化データを読み飛ばす方法が開示されている。
図１０は、従来の方法におけるエラー発生時の処理フローを示す図で、エラーが発生した場合、ピクチャヘッダの検索を行い（Ｓ３１）、ピクチャヘッダが検出されたか否かを判定し（Ｓ３２）、ピクチャヘッダが検出されない場合は検出されるまで繰り返す。ピクチャヘッダが検出された場合には、該ピクチャヘッダがＩピクチャであるか否かを判定する（Ｓ３３）。該ピクチャヘッダがＩピクチャの場合には、復号処理を行って終了する（Ｓ３４）。また、該ピクチャヘッダがＩピクチャでない場合には、Ｓ３１に戻り、次のピクチャヘッダの検索を行う。つまり、エラーが発生した場合、Ｉピクチャを検出するまで符号化データを読み飛ばす処理を行っている。
【０００６】
また、特許文献２「動画像圧縮符号の復号方法及び復号装置」には、あるフレームでエラーを検出した場合、その直前に復号されたフレームを用いてコンシールメントする方法が開示されている。
【特許文献１】
特開平８−１４９４７４号公報
【特許文献２】
特開平９−９３５８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法のように、参照画像を必要としないフレーム（図９（Ａ）の例では、フレームＩ７）まで符号化データを読み飛ばした場合、エラー発生フレームの直前のフレーム（図９（Ａ）の例では、フレームＰ３）が表示され続けるという問題があった。また、直前に復号されたフレームを用いてエラー部分を置き換える処理では、エラー発生フレームと直前に復号されたフレームとの相関が低い場合に画質劣化が目立つという問題があった。さらには、従来の技術では、参照画像が複数ある場合の考慮がなされていなかった。
［０００８］  本発明は、上記の課題を解決するためになされたもので、複数のフレームを参照して予測符号化する符号化方式において、伝送エラー等が発生した場合に、画質劣化の少ない動画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記復号手段で正常に復号できた現画像のマクロブロックのうち、前記復号された画像を参照しているマクロブロックの個数をカウントし、最も参照回数の多い画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする。
【００１０】
また、本発明は、復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記エラーとなったマクロブロックが参照している、符号化部で設定された最も参照頻度の高い画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする。
【００１１】
また、本発明は、復号された複数の画像のうち少なくとも一つの画像を参照して現画像の復号を行う動画像復号装置において、入力された符号化データを復号する復号手段と、前記復号手段でエラーが検出された場合に、前記復号された画像を識別する識別子の符号量が最も小さい識別子に対応する画像をコンシールメント用画像として選択する画像選択手段と、前記エラーが検出された部分を前記コンシールメント用画像と正常に復号できたマクロブロックの動きベクトルとから生成した動き補償画像で置き換えることによりコンシールメントするエラー隠蔽手段と、を備えることを特徴とする。
【００１２】
さらに、前記画像選択手段は、前記復号手段で正常に復号できた現画像のマクロブロックのうち、イントラマクロブロックの個数をカウントし、前記イントラマクロブロックの個数が所定の閾値より大きい場合、現画像をコンシールメント用画像として選択することを特徴とする。
［００１３］  さらに、前記画像選択手段は、前記復号手段でエラーと判定されたマクロブロックの個数が所定の閾値より大きい場合、前記復号手段で復号されたピクチャを破棄することを特徴とする。
［００１４］
［００１５］
［００１６］
［００１７］
［００１８］
［００１９］
［００２０］
［００２１］
［００２２］
［００２３］
［００２４］
【発明の効果】
［００２５］  本発明によれば、復号過程でエラーを検出した場合、フレームバッファに格納されている複数の画像からコンシールメント用画像を適切に選択してコンシールメントすることにより、画質劣化の少ない動画像復号装置を提供することができる。
【図面の簡単な説明】
［００２６］
［図１］本発明の第１の実施形態における動画像復号装置の概略構成を示す機能ブロック図である。
［図２］本発明の第１の実施形態におけるフレームバッファの構成を示す図である。
［図３］本発明の第１の実施形態における参照インデックスと参照画像の対応関係を説明するための図である。
［図４］本発明の第１の実施形態におけるフレームバッファの更新状況を説明するための図である。
［図５］本発明の第１の実施形態におけるエラー修正部の動作を説明するための図である。
【図６】本発明の第１の実施形態におけるエラー修正部の動作を説明するための図である。
【図７】本発明の第１の実施形態における動画像復号方法の処理フロー図である。
【図８】本発明の第１の実施形態におけるエラー修正処理の処理フロー図である。
【図９】ＭＰＥＧ−４における予測符号化の例を示した図である。
【図１０】従来の方法におけるエラー発生時の処理フローを示した図である。
【符号の説明】
【００２７】
１…復号部、２…書込み制御部、３…フレームバッファ、４…読込み制御部、５…表示部、６…エラー修正部、６１…画像選択部、６２…エラー隠蔽部、７１…マクロブロック、７２…マクロブロック。
【発明を実施するための最良の形態】
【００２８】
［実施形態１］
図１は、本発明の第１の実施形態における動画像復号装置の概略構成を示す機能ブロック図で、本実施形態における動画像復号装置は、復号部１、書込み制御部２、フレームバッファ３、読込み制御部４、表示部５、および、エラー修正部６から構成され、該エラー修正部６は、画像選択部６１、および、エラー隠蔽部６２より構成されている。
【００２９】
図２（Ａ）は、図１に示したフレームバッファ３の構成を示した図で、該フレームバッファ３は、現在復号中の画像、および復号済みの画像（参照画像として使用、あるいは出力待ち）を格納するための４つのフレームメモリと、それぞれのフレームメモリに対応した４つの付加情報メモリとを備えている。本実施形態における動画像復号装置では、最大３つのフレームを参照画像として使用することができる（残り１つのフレームメモリは現在復号中の画像格納用）。
【００３０】
図２（Ｂ）は、図２（Ａ）に示した付加情報の内容の詳細を示した図で、付加情報は、各フレームメモリに格納されているフレームの詳細な情報を示すものであり、図２（Ｂ）に示すように、状態（ｓｔａｔｕｓ）、フレーム番号（ｆｒａｍｅ＿ｎｕｍ）、およびマクロブロック情報（ｍｂ＿ｉｎｆｏ）から構成される。ここで、マクロブロックとは１６×１６画素からなるブロックを指している（ＭＰＥＧ−４  Ｖｉｓｕａｌ、ＭＰＥＧ−４  ＡＶＣにおける定義と同じ）。
【００３１】
状態（ｓｔａｔｕｓ）は、対応するフレームメモリの使用状態を示すものであり、ＵＮＵＳＥＤ（未使用）、ＵＳＥＤ＿ＦＯＲ＿ＲＥＦ（参照画像として使用）、ＵＳＥＤ＿ＦＯＲ＿ＮＯＮＲＥＦ（非参照画像として使用）の３つの値をとるものとする。フレーム番号（ｆｒａｍｅ＿ｎｕｍ）は、各フレームを特定するための情報であり、正の整数をとるものとする（基本的にはフレーム番号の小さいものから先に表示される）。
【００３２】
マクロブロック情報（ｍｂ＿ｉｎｆｏ）は、フラグ（ｆｌａｇ）、マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）、参照インデックス（ｒｅｆ＿ｉｄｘ）、および動きベクトル（ｍｖ）から構成されている。例えば、ＱＣＩＦ（Ｑｕａｒｔｅｒ  Ｃｏｍｍｏｎ  Ｉｎｔｅｒｆａｃｅ  Ｆｏｒｍａｔ）サイズの場合、ＱＣＩＦは、１７６×１４４画素から構成され、前述したように、マクロブロックは１６×１６画素を１ブロックとすることから、１フレームは９９（１１×９）個のマクロブロックから構成される。そのため、９９個分のマクロブロック情報（ｍｂ＿ｉｎｆｏ）を持つ。
【００３３】
フラグ（ｆｌａｇ）は、復号したマクロブロックの状態を示すものであり、ＳＵＣＣＥＥＤＥＤ（正常復号）、ＥＲＲＯＲ（エラー発生）、ＣＯＮＣＥＡＬＥＤ（エラー修正済み）の３つの値をとるものとする。
【００３４】
マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）は、マクロブロックの符号化タイプを示すものであり、ＩＮＴＲＡ＿ＭＢ（参照画像を必要とせずに画面内の情報のみを用いて符号化（イントラ符号化）されているイントラマクロブロック）、ＩＮＴＥＲ＿ＭＢ（参照画像を用いて予測符号化（インター符号化）されているインターマクロブロック）の２つの値をとるものとする。
【００３５】
また、参照インデックス（ｒｅｆ＿ｉｄｘ）は、マクロブロックがどのフレームを参照画像としているかを示す識別子であり、‘０’、‘１’、‘２’の３つの値をとるものとする（本実施形態では、最大３つのフレームを参照画像として使用できるため）。
【００３６】
ここで、参照インデックスと参照画像の対応関係を示す参照画像リストについて説明する。参照画像リストは、基本的に、フレームを構成するスライス（複数のマクロブロックの集合）の先頭（スライスヘッダ）の復号直後に決定される。
【００３７】
図３は、図９（Ｂ）におけるフレームＰ４のスライスヘッダを復号した直後の参照画像リストを示した図である。図３（Ａ）の例では、ｒｅｆ＿ｉｄｘ＝０はフレームＰ３、ｒｅｆ＿ｉｄｘ＝１はフレームＰ２、ｒｅｆ＿ｉｄｘ＝２はフレームＩ１が参照画像であることを示している。また、図３（Ｂ）の例では、ｒｅｆ＿ｉｄｘ＝０はフレームＩ１、ｒｅｆ＿ｉｄｘ＝１はフレームＰ３、ｒｅｆ＿ｉｄｘ＝２はフレームＰ２が参照画像であることを示している。
【００３８】
ＭＰＥＧ−４  ＡＶＣの場合、予測ブロック（マクロブロック等）単位でｒｅｆ＿ｉｄｘ値が符号化され、ｒｅｆ＿ｉｄｘ値が小さいほど短い符号が割り当てられている。そのため、最も参照頻度の高い画像がｒｅｆ＿ｉｄｘ＝０となるように、スライス単位で参照画像リストが更新される。通常は、現画像に表示順で近い復号画像ほど小さいｒｅｆ＿ｉｄｘ値が割り当てられるが（図３（Ａ））、符号化側で、数フレーム前の復号画像が参照画像として適当であると判断した場合には、直前の復号画像ではなく、数フレーム前の復号画像にｒｅｆ＿ｉｄｘ＝０が割り当てられている場合もある（図３（Ｂ））。
【００３９】
動きベクトル（ｍｖ）は、動き補償の際の動きベクトルを表す情報である。ここで、動きベクトル値の精度については特に制限はなく、１画素精度、１／２画素精度、１／４画素精度等、いくらであってもよい。なお、参照インデックス（ｒｅｆ＿ｉｄｘ）および動きベクトル（ｍｖ）は、マクロブロックタイプ（ｍｂ＿ｔｙｐｅ）がＩＮＴＥＲ＿ＭＢの場合にのみ有効である。
【００４０】
なお、ここでは付加情報としてマクロブロック（１６×１６画素）単位ごとに参照インデックス（ｒｅｆ＿ｉｄｘ）、および動きベクトル（ｍｖ）を持つ構成としたが、さらに細かい単位、例えば、ＭＰＥＧ−４  ＡＶＣにおけるマクロブロック分割単位（１６×１６画素、１６×８画素、８×１６画素、８×８画素）、さらにはサブマクロブロック分割単位（８×４画素、４×８画素、４×４画素）で持つようにしてもよい。次に、各部の動作について説明する。
【００４１】
図１において、復号部１では、入力された符号化データの可変長復号、逆量子化、逆変換、動き補償等が行われ、１フレーム分の復号画像、フレーム番号（ｆｒａｍｅ＿ｎｕｍ）、およびマクロブロック情報（ｍｂ＿ｉｎｆｏ）を書込み制御部２に出力する。復号済みの画像が必要なＰフレーム等の場合には、フレームバッファ３より対応する画像が入力され、復号に利用される。また、復号過程においてエラーが発生したか否かを示すエラーフラグ（０：エラーなし、１：エラーあり）をエラー修正部６に通知する。ここで、エラーとは、可変長復号テーブルに存在しない符号語を検出した場合、復号結果が規定範囲を超えている場合、復号値に矛盾を検出した場合などである。
【００４２】
書込み制御部２では、フレームバッファ３の各フレームメモリの状態をチェックし、未使用状態（ｓｔａｔｕｓ＝ＵＮＵＳＥＤ）のフレームメモリを選択し、復号部１から入力される復号画像、フレーム番号（ｆｒａｍｅ＿ｎｕｍ）、およびマクロブロック情報（ｍｂ＿ｉｎｆｏ）を書き込む。書き込んだフレームメモリに対しては、ｓｔａｔｕｓ＝ＵＳＥＤ＿ＦＯＲ＿ＲＥＦ（参照画像として使用）もしくはＵＳＥＤ＿ＦＯＲ＿ＮＯＮＲＥＦ（非参照画像として使用）に変更する。もし、未使用状態のフレームメモリが存在しない場合、読込み制御部４により１フレーム分のデータを表示部５に出力することによって、フレームメモリの空きを作った後に書き込む。
【００４３】
読込み制御部４では、フレームバッファ３の各フレームメモリの状態をチェックし、未使用状態（ｓｔａｔｕｓ＝ＵＮＵＳＥＤ）のフレームメモリがない場合は、フレーム番号の最も小さいものを選択し、表示部５に出力する。出力されたフレームメモリに対しては、ｓｔａｔｕｓ＝ＵＮＵＳＥＤに変更する。
【００４４】
表示部５は、ＬＣＤディスプレイ、表示用バッファ等から構成され、読込み制御部４から出力された復号画像を表示する。
【００４５】
図４は、フレームバッファ３の更新状況を説明するための図で、図４は、図９（Ｂ）におけるフレームＰ４、およびフレームＰ５復号時のフレームバッファ３の状態を示した図である。
【００４６】
図４（Ａ）は、フレームＰ４復号開始時のフレームバッファ３の状態を示した図で、フレームメモリ１、フレームメモリ２、およびフレームメモリ３は、ｓｔａｔｕｓ＝ＵＳＥＤ＿ＦＯＲ＿ＲＥＦ（参照画像として使用）であり、それぞれ復号画像Ｉ１、復号画像Ｐ２、および復号画像Ｐ３が格納されている。フレームＰ４復号開始時、書込み制御部２は、フレームバッファ３の状態をチェックし、ｓｔａｔｕｓ＝ＵＮＵＳＥＤであるフレームメモリ４を次の復号画像の書込み先に設定する。復号部１で復号されたフレームＰ４は、フレームメモリ４に書き込まれ、フレームメモリ４は、ｓｔａｔｕｓ＝ＵＳＥＤ＿ＦＯＲ＿ＲＥＦに変更される。
【００４７】
図４（Ｂ）は、フレームＰ４復号完了時のフレームバッファ３の状態を示した図で、フレームＰ４復号完了時、読込み制御部４は、フレームバッファ３の状態をチェックし、ｓｔａｔｕｓ＝ＵＮＵＳＥＤであるフレームメモリがないため、フレームメモリ１に格納されているフレーム番号の最も小さい（ｆｒａｍｅ＿ｎｕｍ＝１）復号画像Ｉ１を表示部５に出力し、ｓｔａｔｕｓ＝ＵＮＵＳＥＤに変更する。
【００４８】
図４（Ｃ）は、フレームＰ５復号開始時のフレームバッファ３の状態を示した図で、フレームＰ４復号開始時と同様に、書込み制御部２は、ｓｔａｔｕｓ＝ＵＮＵＳＥＤであるフレームメモリ１を次の復号画像の書込み先に設定する。復号部１で復号されたフレームＰ５は、フレームメモリ１に書き込まれ、フレームメモリ１は、ｓｔａｔｕｓ＝ＵＳＥＤ＿ＦＯＲ＿ＲＥＦに変更される。
【００４９】
次に、エラー修正部６について説明する。エラー修正部６は、画像選択部６１、エラー隠蔽部６２より構成され、復号部１より通知されるエラーフラグが‘１’の場合に動作し、‘０’の場合には何もしない。
画像選択部６１では、フレームバッファ３に格納されている付加情報を参照し、コンシールメント用画像としてどのフレームを用いるかを選択し、選択した画像のフレーム番号（ｆｒａｍｅ＿ｎｕｍ）、あるいは選択した画像が格納されているフレームメモリ番号を選択フレーム情報としてエラー隠蔽部６２に通知する。エラー隠蔽部６２では、付加情報、および画像選択部６１より通知される選択フレーム情報を用いてエラーのあったマクロブロックに対してコンシールメント処理を行う。
【００５０】
ここで、図９（Ｂ）における斜線で示したフレームＰ４の復号過程でエラーを検出した場合のエラー修正部６の動作について説明する。このとき、フレームバッファ３の状態は図４（Ｂ）、参照画像リストは図３（Ａ）で示される通りである。
【００５１】
図５は、フレームＰ４の復号結果をマクロブロック単位で示した図である。なお、画像サイズはＱＣＩＦ（１７６×１４４画素）とした。そのため、前述したように、マクロブロックは１６×１６画素を１ブロックとすることから、フレームＰ４は１１×９、合計９９個のマクロブロックから構成される。
【００５２】
“Ｘ”は、正常に復号されたマクロブロックのうちイントラ符号化（参照画像を必要とせずに画面内の情報のみを用いて符号化）されているイントラマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ  かつ  ｍｂ＿ｉｎｆｏ．ｍｂ＿ｔｙｐｅ＝ＩＮＴＲＡ＿ＭＢを満たすマクロブロック）を示している。
【００５３】
“０”は、正常に復号されたマクロブロックのうちフレームＰ３を参照画像としているインターマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ  かつ  ｍｂ＿ｉｎｆｏ．ｍｂ＿ｔｙｐｅ＝ＩＮＴＥＲ＿ＭＢ  かつ  ｍｂ＿ｉｎｆｏ．ｒｅｆ＿ｉｄｘ＝０）を示している。同様に、“１”はフレームＰ２を参照画像としているマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ  かつ  ｍｂ＿ｉｎｆｏ．ｍｂ＿ｔｙｐｅ＝ＩＮＴＥＲ＿ＭＢ  かつ  ｍｂ＿ｉｎｆｏ．ｒｅｆ＿ｉｄｘ＝１）、“２”はフレームＩ１を参照画像としているマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ  かつ  ｍｂ＿ｉｎｆｏ．ｍｂ＿ｔｙｐｅ＝ＩＮＴＥＲ＿ＭＢ  かつ  ｍｂ＿ｉｎｆｏ．ｒｅｆ＿ｉｄｘ＝２）を示している。
【００５４】
また、“Ｅ”は、復号過程でエラーが発生したマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＥＲＲＯＲを満たすマクロブロック）を示している。
【００５５】
画像選択部６１では、まず、フレームＰ４におけるイントラマクロブロック（図５の“Ｘ”）の個数ｎＩ、フレームＰ３を参照しているインターマクロブロック（図５の“０”）の個数ｎ０、フレームＰ２を参照しているインターマクロブロック（図５の“１”）の個数ｎ１、フレームＩ１を参照しているインターマクロブロック（図５の“２”）の個数ｎ２、およびエラーマクロブロック（図５の“Ｅ”）の個数ｎＥをカウントする。
【００５６】
次に、次式（１）を満たすｎに対応するフレームをコンシールメント用画像として選択し、選択した画像のフレーム番号（ｆｒａｍｅ＿ｎｕｍ）、あるいは選択した画像が格納されているフレームメモリ番号を選択フレーム情報としてエラー隠蔽部６２に通知する。
ｎ＝ＭＡＸ（ｎ０，ｎ１，ｎ２）・・・式（１）
【００５７】
フレームＰ４では、ｎ＝ｎ０（“０”の個数が最も多い）なので、ｎ０に対応するフレームＰ３のｆｒａｍｅ＿ｎｕｍ＝３、あるいはフレームメモリ番号＝３を選択フレーム情報としてエラー隠蔽部６２に通知する。
【００５８】
このように、最も参照頻度の高いフレームをコンシールメント用画像として選択することにより、フレームＰ４で復号された動きベクトルを利用して適切にコンシールメントすることができ、画質劣化を目立たなくすることができる。
【００５９】
また、参照画像を必要とせずに画面内の情報のみを用いて符号化されているイントラマクロブロックをｒｅｆ＿ｉｄｘ＝０のフレームＰ３を参照しているマクロブロックと同等に扱い、次式（２）を満たすｎに対応するフレームをコンシールメント用画像として選択するようにしてもよい。
ｎ＝ＭＡＸ（ｎＩ＋ｎ０，ｎ１，ｎ２）・・・式（２）
【００６０】
また、イントラマクロブロックの個数ｎＩが所定の閾値Ｔ１より大きい場合（ｎＩ＞Ｔ１）、コンシールメント用画像として現画像（フレームＰ４）を選択するようにしてもよい。例えば、フレームＰ４でシーンチェンジが発生してイントラマクロブロックが多く発生した場合などで、異なるシーンをコンシールメント用画像とすることによる画質劣化を防ぐことができる。
【００６１】
また、エラーマクロブロックの個数ｎＥが所定の閾値Ｔ２より大きい場合（ｎＥ＞Ｔ２）、コンシールメントせずにそのフレームを破棄するようにしてもよい。このようにすることによって、極端にエラーの多いフレームを表示することによる画質劣化を防ぐことができる。
【００６２】
また、エラーマクロブロック周辺のマクロブロックが、式（１）または式（２）で求めたフレーム（フレームＰ３）と異なるフレームを参照している場合には、後者のフレームをコンシールメント用画像として選択するようにしてもよい。図５の例では、“Ｅ”で示されるエラーブロックの周辺のマクロブロックは、ほとんどが“１”でありフレームＰ２を参照しているため、フレームＰ３の代わりにフレームＰ２をコンシールメント用画像として選択する。
【００６３】
あるいは、ｎ０、ｎ１、ｎ２を求める際にｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤを満たすすべてのマクロブロックを対象にするのではなく、エラーマクロブロックの周辺マクロブロックのみを対象にしてもよい。例えば、エラーマクロブロックの近傍８マクロブロック（上、右上、右、右下、下、左下、左、左上のマクロブロック）のみを対象としたり、エラーマクロブロックのマクロブロックアドレスを（ｘ０，ｙ０）としたとき、｜ｘ−ｘ０｜＜ｄｘ、かつ｜ｙ−ｙ０｜＜ｄｙを満たすマクロブロック（ｘ，ｙ）のみを対象としてもよい（ここで、ｄｘ、ｄｙは定数である）。このようにすることによって、オクルージョン（手前の物体によって後ろの物体が隠れてしまうこと（図６参照））等で数フレーム前を参照しているマクロブロックにエラーが発生した場合などに適切なコンシールメントを行うことができる。
【００６４】
図６は、オクルージョンの例を示した図で、フレームＰ２からフレームＰ４にかけて、人物Ｂが人物Ａの前を横切る様子を示している。フレームＰ４におけるマクロブロック７２を符号化する場合、フレームＰ３では対応する部分が人物Ｂの後ろに隠れているため、マクロブロック７２を含めた周辺のマクロブロックはフレームＰ３を参照画像とするのではなく、フレームＰ２を参照画像とする可能性が高い（マクロブロック７１が対応する部分）。そのため、マクロブロック７２でエラーが発生した場合、コンシールメント用画像としてフレームＰ２を選択したほうがより適切なコンシールメントを行うことができる。
【００６５】
また、上記を組み合わせ、フレーム全体の情報から求めたコンシールメント用画像と、周辺のマクロブロックの情報から求めたコンシールメント用画像とを、エラーマクロブロックごとに切り換えるようにしてもよい。
【００６６】
図１において、エラー隠蔽部６２では、画像選択部６１により通知される選択フレーム情報、およびフレームバッファ３に格納されている付加情報をもとに、フレームＰ４のエラー発生マクロブロックを修正する。例えば、エラー発生マクロブロックと同じ位置の画像をコンシールメント用画像からコピーする。
【００６７】
あるいは、次式（３）により、フレームＰ４中、正常に復号できたインターマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤかつｍｂ＿ｉｎｆｏ．ｍｂ＿ｔｙｐｅ＝ＩＮＴＥＲ＿ＭＢ）の動きベクトルの平均値からフレーム全体の動きベクトル（ｍｖ＿ｇｌｏｂａｌ）を求め、ｍｖ＿ｇｌｏｂａｌを用いてコンシールメント用画像から動き補償した画像で隠蔽するようにしてもよい。
【００６８】
【数１】
0004531058.tif 000002
【００６９】
あるいは、正常に復号できたインターマクロブロックのうち、エラーマクロブロックの周辺（隣接マクロブロック、隣接スライス等）の動きベクトルの平均値から局所的な動きベクトル（ｍｖ＿ｌｏｃａｌ）を求め、求めたｍｖ＿ｌｏｃａｌを用いてコンシールメント用画像から動き補償した画像で隠蔽するようにしてもよい。
【００７０】
あるいは、ＭＰＥＧ−４におけるデータパーティション利用時において、マクロブロック内でエラーが発生したが動きベクトルは正常に復号できた場合、データパーティションは利用していないが動きベクトルの復号値は信用できる場合などは、エラーマクロブロックの動きベクトルをそのまま利用してもよい。
【００７１】
また、コンシールメント用画像として現画像を選択した場合には、周辺の正常に復号できたマクロブロックの画素値をコピーするなどしてエラーを隠蔽してもよい。
最後に、修正したマクロブロックのマクロブロック情報を更新（ｆｌａｇ＝ＣＯＮＣＥＡＬＥＤ）する。
【００７２】
図７は、本発明の第１の実施形態における動画像復号方法の処理フロー図である。
ステップＳ１では、フレームバッファの初期化が行われる。具体的には、必要なメモリの確保、フレームメモリの状態の初期化（すべて未使用状態、すなわちｓｔａｔｕｓ＝ＵＮＵＳＥＤ）等が行われる。
ステップＳ２で、フレームバッファに空きがあるかどうかをチェックし、空きがある（ｓｔａｔｕｓ＝ＵＮＵＳＥＤのフレームメモリが存在する）場合にはステップＳ４へ、空きがない（ｓｔａｔｕｓ＝ＵＮＵＳＥＤのフレームメモリが存在しない）場合にはステップＳ３へ進む。
【００７３】
ステップＳ３では、フレームバッファに格納されている復号画像のうち表示順で最も古いもの（フレーム番号が最も小さいもの）を表示用バッファへ出力後、出力したフレームメモリの状態を未使用状態（ｓｔａｔｕｓ＝ＵＮＵＳＥＤ）に変更してステップＳ４へ進む。
ステップＳ４では、これから復号する画像の格納場所として、未使用状態（ｓｔａｔｕｓ＝ＵＮＵＳＥＤ）のフレームメモリを取得し、ステップＳ５に進む。
【００７４】
ステップＳ５では、符号化データを１フレーム分復号し、復号画像をステップＳ４で確保したフレームバッファに格納するとともに、復号過程でエラーが発生した場合にはエラーフラグを‘１’にセットする。
ステップＳ６では、エラーが発生した場合（エラーフラグ＝‘１’）ステップＳ７に進み、エラーが発生しなかった場合（エラーフラグ＝‘０’）ステップＳ８に進む。
ステップＳ７では、エラーの発生した部分のコンシールメント処理をおこなった後ステップＳ８に進む。
ステップＳ８では、まだ符号化データが続く場合はステップＳ２に戻り処理を継続し、符号化データが終了した場合には処理全体を終了する。
【００７５】
図８は、ステップＳ７の詳細を示した処理フロー図である。
ステップＳ１１では、エラー隠蔽処理を行う開始マクロブロックを設定する。
ステップＳ１２では、対象マクロブロックがエラーを含んでいるか否かを判定する。エラーか否かはフレームバッファに格納されているマクロブロック情報のフラグ（ｆｌａｇ）によって判定することができる。エラーマクロブロックの場合（ｆｌａｇ＝ＥＲＲＯＲ）にはステップＳ１３に進み、エラーマクロブロックでない場合（ｆｌａｇ≠ＥＲＲＯＲ）にはステップＳ１６に進む。
【００７６】
ステップＳ１３では、フレームバッファに格納されている画像から、対象マクロブロックのコンシールメント用画像を選択しステップＳ１４に進む。
ステップＳ１４では、コンシールメント種別（例えば、ステップＳ１３で選択された画像の同じ位置にある画像をコピー、動きベクトルに基づき動き補償した画像をコピー、あるいは現画像の周辺画素をコピー、など）を決定しステップＳ１５に進む。
ステップＳ１５では、実際にコンシールメント処理を行い、マクロブロック情報を更新し（ｆｌａｇ＝ＣＯＮＣＥＡＬＥＤ）、ステップＳ１６に進む。
【００７７】
ステップＳ１６では、次に処理するマクロブロックを検索し、ステップＳ１７に進む。
ステップＳ１７では、次に処理するマクロブロックが存在する場合、ステップＳ１２に戻り処理を継続する。次に処理すべきマクロブロックが存在しない場合、処理を終了しステップＳ８へ進む。
【００７８】
ステップＳ１１とステップＳ１６におけるマクロブロックの設定と検索の一般的な方法としては、画像の左上のマクロブロックからラスタスキャン順に行うことが考えられるが、この方法に限らず、どんな順序で設定と検索をしてもよい。
【００７９】
［実施形態２］
次に、本発明の第２の実施形態について説明する。本実施形態における動画像復号装置の構成は、図１に記載の通りであり、画像選択部６１のみ第１の実施形態と動作が異なる。以下、図９（Ｂ）における斜線で示したフレームＰ４の復号過程でエラーを検出した場合の画像選択部６１の動作について説明する。このとき、フレームバッファ３の状態は、図４（Ｂ）で示される通りである。
【００８０】
画像選択部６１では、まず、フレームＰ４において正常に復号されたマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ）の個数ｎＳ、およびエラーマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＥＲＲＯＲ）の個数ｎＥをカウントする。次に、式（４）を用いて、現画像（フレームＰ４）と復号済みの画像（フレームＰ３、フレームＰ２、フレームＩ１）との差分絶対値和ｓａｄ（ｘ）を求める。式（４）において、ｃｕｒｒ（ｉ，ｊ）は、現画像の座標（ｉ，ｊ）の画素値、ｐｒｅｖ（ｉ，ｊ）は、復号済みの画像の座標（ｉ，ｊ）の画素値である。ただし、ｓａｄ（ｘ）の計算には、現画像（フレームＰ４）において、正常に復号されたマクロブロック（ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤ）のみを用いるものとする。また、フレームＰ４とフレームＰ３の差分絶対値和をｓａｄ（１）、フレームＰ４とフレームＰ２の差分絶対値和をｓａｄ（２）、フレームＰ４とフレームＩ１の差分絶対値和をｓａｄ（３）とする。
【００８１】
【数２】
0004531058.tif 000003
【００８２】
次に、式（５）を満たすｓａｄに対応するフレーム、すなわち最も相関度の高いフレームをコンシールメント用画像として選択し、選択した画像のフレーム番号（ｆｒａｍｅ＿ｎｕｍ）、あるいは選択した画像が格納されているフレームメモリ番号を選択フレーム情報としてエラー隠蔽部６２に通知する。
【００８３】
【数３】
0004531058.tif 000004
【００８４】
このように、最も相関度の高いフレームをコンシールメント用画像として選択することにより、シーンチェンジや画面のフラッシュ等を考慮した適切なコンシールメントを行うことができ、画質劣化を目立たなくすることができる。
【００８５】
また、ここでは、相関度の計算に差分絶対値和を用いたが、これ以外の方法、例えば差分二乗和（式（６）および式（７））等を用いても良い。
【００８６】
【数４】
0004531058.tif 000005
【００８７】
また、ｓａｄ（１）、ｓａｄ（２）、ｓａｄ（３）の計算過程で、ｓａｄ（ｘ）が所定の閾値Ｔ３より小さくなった場合（ｓａｄ（ｋ）＜Ｔ３，  ｋ＝１または２または３）、それ以後のｓａｄの計算を省略し、ｓａｄ（ｋ）に対応するフレームをコンシールメント用画像として選択するようにしてもよい。こうすることによって、少ない処理量により適切なコンシールメント用画像を選択することができる。
【００８８】
また、ｓａｄが所定の閾値Ｔ４より大きい場合（ｓａｄ＞Ｔ４）、コンシールメント用画像として現画像（フレームＰ４）を選択するようにしてもよい。例えば、フレームＰ４でシーンチェンジが発生した場合などで、異なるシーンをコンシールメント用画像とすることによる画質劣化を防ぐことができる。
【００８９】
また、エラーマクロブロックの個数ｎＥが所定の閾値Ｔ５より大きい場合（ｎＥ＞Ｔ５）、コンシールメントせずにそのフレームを破棄するようにしてもよい。このようにすることによって、極端にエラーの多いフレームを表示することによる画質劣化を防ぐことができる。
【００９０】
また、第１の実施形態で用いたｎとを組み合わせてコンシールメント用画像を決定するようにしてもよい。例えば、第１の実施形態の式（１）において、ｎ０、ｎ１、ｎ２のばらつきが小さい場合、ｓａｄあるいはｓｓｄによりコンシールメント用画像を決定してもよい。あるいは、式（８）または式（９）により求まる値ｙが最大となるようなフレームをコンシールメント用画像として選択するようにしてもよい。ここで、αおよびβは、実験的に定まる値であり、α＞０、β＞０である。
ｙ＝α・ｎ−β・ｓａｄ・・・式（８）
ｙ＝α・ｎ−β・ｓｓｄ・・・式（９）
【００９１】
このようにすることによって、より適切なコンシールメント用画像を選択することができ、画質劣化を目立たなくすることができる。
【００９２】
また、式（４）によりｓａｄ（ｘ）を求める際に、ｍｂ＿ｉｎｆｏ．ｆｌａｇ＝ＳＵＣＣＥＥＤＥＤを満たすすべてのマクロブロックを対象にするのではなく、第１の実施形態と同様、エラーマクロブロックの周辺マクロブロック（例えば、近傍８マクロブロックなど）のみを対象にしてもよい。このようにすることによって、オクルージョン等で数フレーム前を参照しているマクロブロックにエラーが発生した場合などに適切なコンシールメントを行うことができる。
【００９３】
また、上記を組み合わせ、フレーム全体の情報から求めたコンシールメント用画像と、周辺のマクロブロックの情報から求めたコンシールメント用画像とを、エラーマクロブロックごとに切り換えるようにしてもよい。
【００９４】
［実施形態３］
次に、本発明の第３の実施形態について説明する。本実施形態における動画像復号装置の構成は、図１の通りであり、画像選択部６１のみ第１の実施形態と動作が異なる。以下、図９（Ｂ）における斜線で示したフレームＰ４の復号過程でエラーを検出した場合の画像選択部６１の動作について説明する。このとき、フレームバッファ３の状態は、図４（Ｂ）で示される通りである。
【００９５】
本実施形態における画像選択部６１では、参照画像リストより、参照インデックスｒｅｆ＿ｉｄｘ＝０の画像をコンシールメント用画像として選択し、選択した画像のフレーム番号（ｆｒａｍｅ＿ｎｕｍ）、あるいは選択した画像が格納されているフレームメモリ番号を選択フレーム情報としてエラー隠蔽部６２に通知する。例えば、参照画像リストが図３（Ａ）の場合、ｒｅｆ＿ｉｄｘ＝０のフレームＰ３をコンシールメント用画像として選択する。また、参照画像リストが図３（Ｂ）の場合、フレームＩ１をコンシールメント用画像として選択する。
【００９６】
エラーを検出したスライスの参照画像リストにおけるｒｅｆ＿ｉｄｘ＝０に対応する参照画像は、そのスライス内で最も参照頻度の高い画像である。これは、第１の実施形態で説明したように、発生符号量を抑えるために、参照画像として最も選択されやすい（予測誤差が小さい等）画像がｒｅｆ＿ｉｄｘ＝０となるように参照画像リストの更新が行われるためである。
【００９７】
また、エラーを検出したスライスの参照画像リストが利用できない場合（スライスヘッダでエラーを検出した場合など）、直前に復号したスライスにおける参照画像リストを利用してもよい。
【００９８】
これによって、複雑な計算をすることなく適切なコンシールメント用画像を選択することができ、画質劣化を目立たなくすることができる。さらに、オクルージョン（図６参照）により直前のフレームからのコンシールメントが不適当な場合の、画質劣化を防ぐことができる。さらに、通常符号化側では、予測誤差の最も小さい画像をｒｅｆ＿ｉｄｘ＝０の参照画像とするので、ｒｅｆ＿ｉｄｘ＝０の参照画像をコンシールメント用画像として選択することにより、オクルージョン等が発生した場合でも、適切で画質劣化の少ないコンシールメントを行うことができる。
【００９９】
本実施形態においては、フレームを単位としてエラー修正する例を示したが、フィールド単位であっても同様に適用可能である。
また、本実施形態においては、フレームバッファには‘最大の参照画像枚数（３）＋１’のフレームメモリを確保し、コンシールメント用画像として参照画像のうちいずれかを選択する構成としたが、リソースに余裕のある環境等では、これより多くのフレームメモリを確保し、参照画像だけでなく表示待ち等でフレームバッファに残っている画像をコンシールメント用画像として選択するようにしてもよい。
【０１００】
また、本実施形態では、エラー修正したマクロブロックに対してエラー修正済みを示すフラグ（ｆｌａｇ＝ＣＯＮＣＥＡＬＥＤ）を設定したが、以降のフレームでエラー修正処理をする場合は、ｆｌａｇ＝ＣＯＮＣＥＡＬＥＤのマクロブロックを利用しないようにしてもよい。
【図１】
0004531058.tif 000006
【図２】
0004531058.tif 000007
【図３】
0004531058.tif 000008
【図４】
0004531058.tif 000009
【図５】
0004531058.tif 000010
【図６】
0004531058.tif 000011
【図７】
0004531058.tif 000012
【図８】
0004531058.tif 000013
【図９】
0004531058.tif 000014
【図１０】
0004531058.tif 000015