(57)【要約】  画像復号装置（１００）は、既に復号された画像であって、ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部（２０）と、第１の記憶部（２０）より記憶容量が小さく、且つ第１の記憶部（２０）よりデータの読み出し速度が速い第２の記憶部（３０）と、参照画像の一部の領域であって、ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、第１の記憶部（２０）から第２の記憶部（３０）に転送する探索領域転送部（４０）と、第２の記憶部（３０）から探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、ブロックの動きベクトルを算出する動きベクトル演算部（５０）と、動きベクトル演算部（５０）で算出された動きベクトルを用いて、ブロックを復号する復号部（６０）とを備える。
2011048764.tif 000002
【特許請求の範囲】
【請求項１】
符号化画像を構成するブロックを復号する復号装置であって、
該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える
復号装置。
【請求項２】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１のブロックである場合にのみ、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項３】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１及び第２のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を開始し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項４】
前記探索領域転送部は、復号されるブロックが前記第２のブロックであった場合、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を中止する
請求項３に記載の復号装置。
【請求項５】
前記第２の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶し、
前記探索領域転送部は、前記探索領域の画素データのうちの前記第２の記憶部に記憶されていない画素データのみを、前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜４のいずれか１項に記載の復号装置。
【請求項６】
前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第２の記憶部から削除する
請求項５に記載の復号装置。
【請求項７】
該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、
前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第１の記憶部から前記第２の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第２の記憶部から削除する
請求項６に記載の復号装置。
【請求項８】
前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのｎ（ｎ：自然数）番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、（ｎ＋１）番目の前記ブロックに対応する前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜７のいずれか１項に記載の復号装置。
【請求項９】
該復号装置は、さらに、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、
前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部とを備える
請求項１〜８のいずれか１項に記載の復号装置。
【請求項１０】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記参照領域転送部は、前記第１のブロックに対応する前記参照領域の画素データを前記第２の記憶部から前記第３の記憶部に転送し、前記第２のブロックに対応する前記参照画像の画素データを前記第１の記憶部から前記第３の記憶部に転送する
請求項９に記載の復号装置。
【請求項１１】
前記第２の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備え、
前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第３の記憶部に転送する
請求項９又は１０に記載の復号装置。
【請求項１２】
前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第１の探索領域と、再生順で後の参照画像に含まれる第２の探索領域とを含み、
前記動きベクトル演算部は、前記第１及び第２の探索領域それぞれの探索範囲の画素データを前記第２の記憶部から読み出して絶対値差分和を算出する処理を、前記第１及び第２の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出する
請求項１〜１１のいずれか１項に記載の復号装置。
【請求項１３】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する復号方法であって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを含む
復号方法。
【請求項１４】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させるプログラムであって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる
プログラム。
【請求項１５】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する集積回路であって、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル演算部で算出された動きベクトルを用いて、前記マクロブロックを復号する復号部とを備える
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された画像を復号する画像復号装置及び画像復号方法に関するもので、特に、復号した画像の相関探索を行う画像復号装置及び画像復号方法に関するものである。
【背景技術】
【０００２】
動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを１６ｘ１６画素からなるマクロブロックに分割し、マクロブロックごとに符号化する。そして、画像符号化装置は、動画像を符号化し圧縮した符号化ストリームを生成する。画像復号装置では、この符号化ストリームをマクロブロック単位に復号し、元の動画像の各ピクチャを再生する。【０００３】
従来の画像符号化方式の１つとしてＩＴＵ−Ｔ  Ｈ．２６４規格がある（例えば、非特許文献１及び非特許文献２を参照）。Ｈ．２６４規格に対応した画像復号装置は、図３０に示すように、まず、ビットストリームバッファ７０２から符号化ストリームを読み込み、可変長復号部７０４で可変長復号され、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部７０１に渡され、各処理部で必要な形式に変換される。【０００４】
係数情報は、逆量子化部７０５で逆量子化され、逆周波数変換部７０６でマクロブロック種別に応じた方法で逆周波数変換される。マクロブロック種別がイントラマクロブロックの場合は、面内予測部７０７で、面内予測モードに応じた予測画像の生成が行われる。一方、マクロブロック種別がインターマクロブロックの場合は、動きベクトル算出部７０８で動きベクトル情報から動きベクトルが算出され、その動きベクトルを用いて動き補償部７０９で予測画像が生成される。さらに、再構成部７１１では、予測画像と逆周波数変換された係数情報すなわち差分画像とから復号画像が生成される。さらに、デブロックフィルタ部７１２で復号画像にデブロックフィルタ処理が行われ、フレームメモリ７０３に格納される。【０００５】
Ｈ．２６４規格には、ダイレクトモードと呼ばれるマクロブロック種別が存在する。ダイレクトモードはインターマクロブロックの一つで、符号化ストリーム中に動きベクトル情報を持たず、過去に復号したピクチャの動きベクトルを用いて動きベクトルを生成する。図３１にＨ．２６４規格におけるダイレクトモードの動きベクトル算出方法を示す。復号マクロブロックの動きベクトルｍｖＬ０及びｍｖＬ１は、復号ピクチャに対応するアンカーピクチャの復号マクロブロックと同じ位置にあるアンカーブロックの動きベクトルｍｖＣｏｌから、各参照ピクチャの時間間隔ｔｂおよびｔｄでスケーリングして、算出される。【０００６】
ダイレクトモードでは、符号化ストリーム中に動きベクトル情報を挿入する必要が無いため、高い圧縮効率を得ることができる。しかしながら、画像によっては、このダイレクトモードで生成される動きベクトルは最適な動きベクトルではない場合がある。動きベクトルが最適でない場合は、動きベクトル情報は削減されるものの、予測画像からの誤差に相当する係数情報が増加するため、結果として圧縮効率を低下させることになる。特に、アンカーブロックがイントラブロックの場合は、動きベクトルがないため、大きな誤差を発生させることが多かった。【０００７】
一方、次世代の画像符号化規格として提案されている技術の中には、このような問題を解決する技術がある（非特許文献３）。図３２に示すように、この技術では、従来のＨ．２６４規格のダイレクトモードの演算方法を変更している。具体的には、２つの参照ピクチャＬ０と参照ピクチャＬ１との復号マクロブロックと同じ位置を中心とする所定の範囲の中で、次に述べる探索方法に従って、最も相関が高い、すなわち、最も類似した部分を検出することによって動きベクトルを決定する。【０００８】
上述の探索方法は、復号マクロブロックの位置を中心として、上下左右対称に探索を行う。最初に参照ピクチャＬ０の探索領域の左上位置と参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらしながら、順にＳＡＤを計算する。【０００９】
このように順にＳＡＤを算出し、最も小さいＳＡＤの位置が最も類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。このように参照画像そのものを使って動きベクトルを算出することにより、従来のように、過去の復号時の情報を用いないため、常に最適な動きベクトルを算出することができる。その結果、係数情報を増加させることがなく、且つ動きベクトル情報を符号化ストリームに挿入する必要がなくなるので、圧縮効率を向上させることができる。【００１０】
なお、Ｈ．２６４規格では、Ｂピクチャにおけるスキップモードでもダイレクトモードと同一の動きベクトル演算を行うが、本明細書ではスキップモードの場合も含めてダイレクトモードと呼んでいる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４規格書  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ、２００５年３月発行
【非特許文献２】Ｔｈｏｍａｓ  Ｗｉｅｇａｎｄ  ｅｔ  ａｌ、“Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  Ｈ．２６４／ＡＶＣ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｓｔａｎｄａｒｄ”、  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＣＩＲＣＵＩＴＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＶＩＤＥＯ  ＴＥＣＨＮＯＬＯＧＹ、  ＪＵＬＹ  ２００３、  ＰＰ．１−１９．
【非特許文献３】Ｔｏｍｏｋａｚｕ  Ｍｕｒａｋａｍｉ著、「Ａｄｖａｎｃｅｄ  Ｂ  Ｓｋｉｐ  Ｍｏｄｅ  ｗｉｔｈ  Ｄｅｃｏｄｅｒ−ｓｉｄｅ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ」、［ｏｎｌｉｎｅ］、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ、２００９年４月１５日、［２００９年９月１８日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｆｔｐ３．ｉｔｕ．ｉｎｔ／ａｖ−ａｒｃｈ／ｖｉｄｅｏ−ｓｉｔｅ／０９０４＿Ｙｏｋ／ＶＣＥＧ−ＡＫ１２．ｚｉｐ＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以上のように、非特許文献３において、ダイレクトモード時に参照画像の探索によって動きベクトルを決定するための演算方法は示されている。しかしながら、従来の動きベクトル算出に比べて極めてデータ量の大きい参照画像を用いてどのように動きベクトル探索を行い、必要な参照画像をフレームメモリからどのように取得するのかという仕組みが具体的に示されていない。【００１３】
従来のダイレクトモードでは、動きベクトルの算出に用いるデータは過去のピクチャの動きベクトルであり、１本の動きベクトルはたかだか４Ｂｙｔｅ程度である。一方、非特許文献３で示される方法では、フレームメモリに格納されている画像そのものを用いるため、１回の探索に少なくとも１６画素ｘ１６画素ｘ２ピクチャ＝５１２画素が必要で、また、動きベクトルの探索は、探索領域が３２ｘ３２の場合、１７ｘ１７の２８９回の探索が必要となるため、１回のダイレクトモードの動きベクトルの算出に必要なフレームメモリから読み出すデータは５１２ｘ２８９＝１４７，９６８Ｂｙｔｅとなる。これは、従来の方法の約４万倍のデータ量に相当する。さらに、ハイビジョン映像の場合、マクロブロックは１秒間に２４４，８００個あるため、フレームメモリからのデータ転送量は膨大なものになる。１秒間あたりの転送量を１秒あたりの転送量を示すバンド幅で表現すると、３６ＧＢｙｔｅ／ｓｅｃに相当する。【００１４】
処理の性能は、大きくは演算性能とデータ転送性能との両方で決まり、高速に演算できたとしても、必要なデータの転送に時間がかかってしまうと、性能は劣化してしまう。【００１５】
一般的に、画像復号装置におけるフレームメモリは容量が大きいため、しばしば演算を行うＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の外に接続するＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）上に置かれる場合が多い。しかしながら、このように大きな転送バンド幅を実現するＤＲＡＭの構成は困難又は非常に高価なものとなる。また、通常のＤＲＡＭでは転送性能が不足し、処理性能を低下させてしまう。したがって、高い性能を実現するためには、フレームメモリからのデータ転送量および転送バンド幅を削減することが必要である。【００１６】
本発明は、上記従来の課題を解決するものであって、動きベクトルの算出処理において、フレームメモリからのデータ転送量又はデータ転送バンド幅を削減できる画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の一形態に係る復号装置は、符号化画像を構成するブロックを復号する。具体的には、該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。【００１８】
上記構成によれば、探索領域の画素データを予め第１の記憶部から第２の記憶部に一度だけ転送しておき、データの読み出し速度の速い第２の記憶部から繰り返し探索領域の画素データを読み出して動きベクトルを算出することができる。その結果、第１の記憶部からのデータ転送量を削減することができると共に、データ転送に要する消費電力を低減することができる。なお、本明細書中の「ブロック」とは、典型的にはマクロブロックを指すが、これに限定されない。【００１９】
一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第１のブロックである場合にのみ、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号してもよい。これにより、第１の記憶部から第２の記憶部に転送されるデータ量を必要最小限とすることができる。その結果、データ転送に要する消費電力をさらに低減することができる。【００２０】
他の形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第１及び第２のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を開始してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号してもよい。これにより、動きベクトル演算部による探索領域の画素データの転送完了の待ち時間を少なくすることができる。【００２１】
また、前記探索領域転送部は、復号されるブロックが前記第２のブロックであった場合、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を中止してもよい。これにより、不要なデータの転送量が減るので、データ転送に要する消費電力をさらに低減することができる。【００２２】
また、前記第２の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶していてもよい。そして、前記探索領域転送部は、前記探索領域の画素データのうちの前記第２の記憶部に記憶されていない画素データのみを、前記第１の記憶部から前記第２の記憶部に転送してもよい。これにより、第１の記憶部からのデータ転送量をさらに削減することができる。【００２３】
さらに、前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第２の記憶部から削除してもよい。これにより、第２の記憶部の記憶容量を小さくすることができる。【００２４】
一形態として、該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第１の記憶部から前記第２の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第２の記憶部から削除してもよい。【００２５】
また、前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのｎ（ｎ：自然数）番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、（ｎ＋１）番目の前記ブロックに対応する前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送してもよい。このように、復号に必要な複数の処理をパイプライン化することで、データ転送の空き時間をなくして、第１の記憶部からの転送バンド幅をさらに削減することができる。【００２６】
さらに、該復号装置は、前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部とを備えてもよい。これにより、第１の記憶部からのデータ転送量をさらに削減することができる。【００２７】
一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。そして、前記参照領域転送部は、前記第１のブロックに対応する前記参照領域の画素データを前記第２の記憶部から前記第３の記憶部に転送し、前記第２のブロックに対応する前記参照画像の画素データを前記第１の記憶部から前記第３の記憶部に転送してもよい。ダイレクトモードの場合、探索領域と参照領域とが実質的に同一となるので、第２の記憶部から第３の記憶部に参照領域の画素データを転送することができる。一方、ダイレクトモードであるか否かに拘らず、参照領域の画素データが第２の記憶部に格納されているか否かを判断し、格納されている場合には第２の記憶部から転送してもよい。【００２８】
また、前記第２の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備えてもよい。そして、前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第３の記憶部に転送してもよい。これにより、探索領域記憶部の記憶容量を小さくすることができると共に、探索領域記憶部へのアクセスを削減することができる。【００２９】
また、前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第１の探索領域と、再生順で後の参照画像に含まれる第２の探索領域とを含んでもよい。そして、前記動きベクトル演算部は、前記第１及び第２の探索領域それぞれの探索範囲の画素データを前記第２の記憶部から読み出して絶対値差分和を算出する処理を、前記第１及び第２の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出してもよい。但し、動きベクトル算出方法はこれに限定されない。【００３０】
本発明の一形態に係る復号方法は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する方法である。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを含む。【００３１】
本発明の一形態に係るプログラムは、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させる。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる。【００３２】
本発明の一形態に係る集積回路は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する。具体的には、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。
【発明の効果】
【００３３】
本発明によれば、第１の記憶部からのデータ転送量又はデータ転送バンド幅を削減できる復号装置を実現することが可能になるという効果が得られる。
【図面の簡単な説明】
【００３４】
【図１Ａ】図１Ａは、画像復号装置の概略構成を示すブロック図である。
【図１Ｂ】図１Ｂは、画像復号装置の詳細構成を示すブロック図である。
【図２】図２は、画像復号装置の動作フローを示す説明図である。
【図３Ａ】図３Ａは、インターマクロブロックでない場合における、画像復号装置の時系列の動作を示す説明図である。
【図３Ｂ】図３Ｂは、インターマクロブロックでダイレクトモードでない場合における、画像復号装置の時系列の動作を示す説明図である。
【図３Ｃ】図３Ｃは、ダイレクトモードの場合における、画像復号装置の時系列の動作を示す説明図である。
【図４】図４は、画像復号装置の構成を示す構成図である。
【図５】図５は、画像復号装置の動作フローを示す説明図である。
【図６】図６は、画像復号装置の時系列の動作を示す説明図である。
【図７Ａ】図７Ａは、マクロブロックＭＢｎにおける探索領域を示す図である。
【図７Ｂ】図７Ｂは、マクロブロックＭＢｎの次のマクロブロックＭＢｎ＋１の探索領域を示す図である。
【図７Ｃ】図７Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋１との探索領域を拡大した図である。
【図８Ａ】図８Ａは、マクロブロックＭＢｎにおける探索領域を示す図である。
【図８Ｂ】図８Ｂは、マクロブロックＭＢｎの下のマクロブロックＭＢｎ＋８の探索領域を示す図である。
【図８Ｃ】図８Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋８との探索領域を拡大した図である。
【図８Ｄ】図８Ｄは、参照画像のうちの探索画像メモリが記憶する領域を示す図である。
【図９】図９は、画像復号装置の動作フローを示す説明図である。
【図１０】図１０は、画像復号装置の時系列の動作を示す説明図である。
【図１１】図１１は、画像復号装置の動作を示す説明図である。
【図１２】図１２は、画像復号装置の構成を示す構成図である。
【図１３】図１３は、画像復号装置の動作フローを示す説明図である。
【図１４】図１４は、画像復号装置の時系列の動作を示す説明図である。
【図１５】図１５は、画像復号装置の構成を示す構成図である。
【図１６】図１６は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図１７】図１７は、画像復号装置の構成を示す構成図である。
【図１８】図１８は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図１９】図１９は、画像復号装置の構成を示す構成図である。
【図２０】図２０は、画像復号装置の探索画像転送の動作フローを示す説明図である。
【図２１Ａ】図２１Ａは、参照画像のうちの広域領域記憶部が記憶する領域を示す図である。
【図２１Ｂ】図２１Ｂは、参照画像のうちの探索領域記憶部が記憶する領域を示す図である。
【図２２】図２２は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図２３】図２３は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。
【図２４】図２４は、デジタル放送用システムの全体構成図である。
【図２５】図２５は、テレビの構成例を示すブロック図である。
【図２６】図２６は、光ディスクである記録メディアに情報の読み書きを行う情報再生／記録部の構成例を示すブロック図である。
【図２７】図２７は、光ディスクである記録メディアの構造例を示す図である。
【図２８】図２８は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。
【図２９】図２９は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。
【図３０】図３０は、従来の画像復号装置を示す構成図である。
【図３１】図３１は、従来のＨ．２６４規格のダイレクトモード時の演算方法を示す説明図である。
【図３２】図３２は、従来のダイレクトモード時に参照画像を探索して動きベクトルを得る方式の演算方法を示す説明図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施の形態における画像復号装置について、図面を参照しながら説明する。
【００３６】
（実施の形態１）
本発明の実施の形態１に係る画像復号装置の概要について説明する。本発明の実施の形態１に係る画像復号装置は、符号化ストリーム（符号化画像）を構成するマクロブロック毎に可変長復号を行う。次に、そのマクロブロックがダイレクトモードの場合には、参照ピクチャから探索領域の画素データ（「探索画像」とも言う）を読み出して探索画像メモリに格納する。そして、その探索画像メモリから探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、動きベクトルの探索を行い、動きベクトルを決定するように構成されている。
【００３７】
以上が本発明の画像復号装置の概要についての説明である。
【００３８】
次に、図１Ａ及び図１Ｂを参照して、本実施の形態１の画像復号装置１００の構成について説明する。図１Ａは、本実施の形態１の画像復号装置１００の概略構成を示すブロック図である。図１Ｂは、本実施の形態１の画像復号装置１００の詳細構成を示すブロック図である。
【００３９】
画像復号装置１００は、図１Ａに示されるように、第１の記憶部２０と、第２の記憶部３０と、探索領域転送部４０と、動きベクトル演算部５０と、復号部６０とを備え、復号画像をマクロブロック毎に復号して、復号画像を出力する。なお、以降の説明では、マクロブロック毎に復号する例を説明するが、本発明はこれに限定されない。つまり、画像復号装置１００は、マクロブロックより大きい、又は小さい任意の大きさのブロック単位で復号を行うことができる。
【００４０】
第１の記憶部２０は、画像復号装置１００によって既に復号された画像であって、マクロブロックを復号する際に参照される参照画像の画素データを記憶する。第２の記憶部３０は、第１の記憶部２０より記憶容量が小さく、且つ第１の記憶部２０よりデータの読み出し速度が速い記憶部である。典型的には、第１の記憶部２０はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、第２の記憶部３０はＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であるが、これには限定されない。
【００４１】
探索領域転送部４０は、参照画像の一部の領域であって、マクロブロックの動きベクトルを算出するのに必要な探索領域の画素データを、第１の記憶部２０から第２の記憶部３０に転送する。動きベクトル演算部５０は、第２の記憶部３０から探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、マクロブロックの動きベクトルを算出する。復号部６０は、動きベクトル演算部５０で算出された動きベクトルを用いて、マクロブロックを復号する。
【００４２】
本実施の形態１の画像復号装置１００は、図１Ｂに示されるように、全体を制御する制御部１０１、入力された符号化ストリームを格納するビットストリームバッファ１０２、復号した画像データを格納するフレームメモリ１０３、符号化ストリームを読み込み可変長復号する可変長復号部１０４、逆量子化を行う逆量子化部１０５、逆周波数変換を行う逆周波数変換部１０６、面内予測（イントラ予測ともいう）を行い予測画像を生成する面内予測部１０７、動きベクトルを算出する動きベクトル算出部１０８、動き補償を行い予測画像を生成する動き補償部１０９、予測画像を切り替えるスイッチ１１０、逆周波数変換された差分画像と予測画像とから復号画像を生成する再構成部１１１、及び再構成された画像にブロックノイズを除去し高画質化するデブロックフィルタ部１１２から構成される。
【００４３】
動きベクトル算出部１０８は、さらに動きベクトル演算を行う動きベクトル演算部１８１と、動きベクトルを算出するための探索領域の画素データ（「探索画像」ともいう）を格納する探索画像メモリ１８２とから構成される。動き補償部１０９は、動き補償演算を行う動き補償演算部１９１と、動き補償に使用する参照領域の画素データ（「参照画像」ともいう）を格納する参照画像メモリ１９２とから構成される。
【００４４】
ここで、図１Ａの第１の記憶部２０は、図１Ｂのフレームメモリ１０３に対応する。図１Ａの第２の記憶部３０は、図１Ｂの探索画像メモリ１８２に対応する。図１Ａの探索領域転送部４０は、図１Ｂでは明示していないが動きベクトル算出部１０８に含まれる。図１Ａの動きベクトル演算部５０は、図１Ｂの動きベクトル演算部１８１に対応する。図１Ａの復号部６０は、図１Ｂの可変長復号部１０４、逆量子化部１０５、逆周波数変換部１０６、及び再構成部１１１等に対応する。
【００４５】
以上が画像復号装置１００の構成についての説明である。
【００４６】
次に、図１Ａ及び図１Ｂに示した画像復号装置１００の動作を図２のフローチャートを用いて説明する。図２は、１つのマクロブロックの復号動作を示している。本実施の形態１においては、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【００４７】
まず、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ１０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。係数情報は、逆量子化部１０５に出力される。次に、逆量子化部１０５で逆量子化処理を行う（Ｓ１０２）。次に、逆周波数変換部１０６で逆周波数変換を行う（Ｓ１０３）。
【００４８】
次に、復号するマクロブロックがインターマクロブロックであるか、イントラマクロブロックであるかの判定を行う（Ｓ１０４）。インターマクロブロックの場合は（Ｓ１０４でＹｅｓ）、さらにダイレクトモードであるかどうかの判定を行う（Ｓ１０５）。つまり、復号対象のマクロブロックが、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロックであるか、又は動きベクトルを示す情報を付加して符号化された第２のブロックであるかを判定する。
【００４９】
ダイレクトモードの場合は（Ｓ１０５でＹｅｓ）、動きベクトルを探索するための探索領域の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送する（Ｓ１０６）。図３２に示すように、２枚の参照画像内における探索領域の位置は、探索領域を３２ｘ３２画素とした場合、復号されるマクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。言い換えれば、探索領域は、参照画像内において、復号対象画像内における復号対象マクロブロックの位置に対応する位置を含み、且つマクロブロックより大きな領域を指す。
【００５０】
次に、探索画像メモリ１８２に格納されている探索領域の画素データを用いて、動きベクトル演算部１８１で動きベクトルの探索を行い、動きベクトルを算出する（Ｓ１０７）。動きベクトルの探索は、例えば、以下のようにして行う。
【００５１】
まず、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と、参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤ（Ｓｕｍｓ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【００５２】
より詳しく説明すると、探索画像メモリ１８２には、復号対象マクロブロックを含む符号化画像より再生順で前の参照ピクチャＬ０に含まれる第１の探索領域（破線で示す領域）及び、再生順で後の参照ピクチャＬ１に含まれる第２の探索領域（破線で示す領域）の画素データが記憶されている。
【００５３】
動きベクトル演算部１８１は、まず、参照ピクチャＬ０の第１の探索領域の左上のブロック（探索範囲）の画素データと、参照ピクチャＬ１の第２の探索領域の右下のブロック（探索範囲）の画素データとを探索画像メモリ１８２から読み出し、２つのブロックの画素データのＳＡＤを算出する。ここで読み出されるブロックの大きさは、復号対象ブロックの大きさと同一である。
【００５４】
次に、動きベクトル演算部１８１は、第１及び第２の探索領域内で探索範囲をずらしながら、上記の処理を繰り返し実行する。そして、動きベクトル演算部１８１は、算出したＳＡＤが最も小さい探索範囲の位置に基づいて、動きベクトルを算出する。
【００５５】
ダイレクトモードで無い場合は（Ｓ１０５でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ１０８）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって、動きベクトルが求められる。
【００５６】
ここで得られた動きベクトルは、動き補償部１０９に出力される。次に、フレームメモリ１０３から参照画像メモリ１９２に動きベクトルが示す参照領域（「参照画像」とも言う）の画素データを転送する（Ｓ１０９）。そして、動き補償演算部１９１は、参照画像メモリ１９２に格納された参照領域の画素データを用いて、１／２画素精度や１／４画素精度の予測画像を生成する（Ｓ１１０）。
【００５７】
一方、インターマクロブロックで無い場合（Ｓ１０４でＮｏ）、すなわちイントラマクロブロックの場合は、面内予測部１０７で面内予測の処理を行い、予測画像を生成する（Ｓ１１１）。このインターマクロブロックかどうかの選択は、図１Ｂの構成図では、スイッチ１１０によって行われる。
【００５８】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ１１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ１１３）。
【００５９】
これらの動作を時系列上の動作として表したものを図３Ａ〜図３Ｃに示す。図３Ａはインターマクロブロックでない場合、図３Ｂはインターマクロブロックでダイレクトモードでない場合、図３Ｃはダイレクトモードの場合である。いずれの場合も、図２のフローチャートの順に逐次的に動作する。図中のＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は１つのマクロブロックの復号にかかる時間を示しており、マクロブロックによって変動しても構わない。
【００６０】
本実施の形態１では、インターマクロブロックの場合に、ダイレクトモードの場合とダイレクトモードでない場合との２つの場合を備えているとしたが、これは次のような理由による。ダイレクトモードは、符号化ストリーム中に動きベクトルに関する情報を符号化しないため、圧縮率の向上が可能な優れた方式である。しかしながら、復号側で動きベクトルを予測して生成するため、画像の種類によっては動きベクトルの値が最適でないことがある。最適でない場合には、符号化ストリームの係数情報の符号量が増大し、結果として圧縮率を低下させてしまう。そのため、ダイレクトモードの場合とダイレクトモードでない場合との二つのモードを持たせることで、符号化側でより圧縮率の高いモードを選択し、符号化するができる。その結果、圧縮率の向上を図ることができる。
【００６１】
以上が画像復号装置１００の動作についての説明である。
【００６２】
このように実施の形態１では、従来の動きベクトル算出部に、動きベクトルの探索を行うための探索画像メモリ１８２を配置することにより、フレームメモリ１０３からのデータ転送量を削減することが可能となる。動きベクトル探索に先立って、探索画像メモリ１８２に探索領域の画素データを転送しておけば、動きベクトル探索の１回の演算毎にフレームメモリ１０３にアクセスする必要がなく、探索画像メモリ１８２にのみアクセスすればよい。その結果、フレームメモリ１０３から読み出すデータ量を、１マクロブロックあたり３２ｘ３２ｘ２＝２０４８Ｂｙｔｅに削減することができる。
【００６３】
また、転送量を削減することにより、同時に、転送に要する消費電力の低減を図ることができる。
【００６４】
なお、本実施の形態１においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【００６５】
また、本実施の形態１では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【００６６】
また、本実施の形態１においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態１で参照している非特許文献３に示されるようなフレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【００６７】
また、本実施の形態１では、非特許文献３の方法を使用しているが、フレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態１に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【００６８】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【００６９】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【００７０】
（実施の形態２）
次に、本実施の形態２における画像復号装置の概要について説明する。実施の形態１では、逆周波数変換後、ダイレクトモードの場合にのみ、探索画像の転送を行っていた。そのため、探索画像の転送完了を待って、動きベクトルの探索処理を行う必要があり、無駄な待ち時間を生じていた。そこで本実施の形態２においては、動きベクトル算出部に、さらに探索画像転送部（探索領域転送部）を設ける。そして、動きベクトル算出処理の開始前に、探索画像の転送を開始しておくことにより、待ち時間をなくすことが可能になる。その結果、処理性能を向上すると共に、フレームメモリからの転送バンド幅が削減可能であることを示す。
【００７１】
以上が、本実施の形態２における画像復号装置の概要についての説明である。
【００７２】
次に、本実施の形態２の画像復号装置２００の構成について説明する。図４は、本実施の形態２の画像復号装置２００の構成図である。本実施の形態２の画像復号装置２００は、フレームメモリ１０３から探索画像メモリ１８２へのデータ転送を制御する探索画像転送部２８３を備え、他の構成要素は、実施の形態１における図１Ｂと同じであり、同じ番号を振って説明を省略する。
【００７３】
以上が画像復号装置２００の構成についての説明である。
【００７４】
次に、図４に示した画像復号装置２００の動作を図５のフローチャートを用いて説明する。図５は、１つのマクロブロックの復号動作を示している。本実施の形態２においては、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【００７５】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索領域の画素データを、フレームメモリ１０３から探索画像メモリ１８２への転送する処理を開始する（Ｓ２００）。図３２に示すように、２枚の参照画像の探索領域の位置は、探索領域が３２ｘ３２画素の場合、復号されるマクロブロックの位置の周辺３２ｘ３２画素で、復号されるマクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【００７６】
ここでは、転送が完了する必要はない。最初に、探索画像転送の開始が可能になっているのは、非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索する。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前（すなわち、ダイレクトモードであるか否かを判断する前）に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
【００７７】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ２０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。係数情報は、次の逆量子化部１０５に出力される。次に、逆量子化部１０５で逆量子化処理を行う（Ｓ２０２）。次に、逆周波数変換部１０６で逆周波数変換を行う（Ｓ２０３）。
【００７８】
次に、復号するマクロブロックがインターマクロブロックか、イントラマクロブロックであるかの判定を行う（Ｓ２０４）。インターマクロブロックの場合は（Ｓ２０４でＹｅｓ）、さらにダイレクトモードであるかどうかの判定を行う（Ｓ２０５）。
【００７９】
ダイレクトモードの場合は（Ｓ２０５でＹｅｓ）、探索画像転送部２８３での探索画像の転送が完了しているかをチェックし、完了していなければ完了するまで待つ（Ｓ２０６）。転送が完了したら、次に、探索画像メモリ１８２の探索画像を用いて、動きベクトル演算部１８１で動きベクトルの探索を行い、動きベクトルを算出する（Ｓ２０７）。
【００８０】
動きベクトルの探索は、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と、参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤを算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【００８１】
ダイレクトモードで無い場合は（Ｓ２０５でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ２０８）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって動きベクトルが求められる。
【００８２】
ここで、探索画像を使うことがないことがわかるので、探索画像転送部２８３での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。得られた動きベクトルは動き補償部１０９に出力され、フレームメモリ１０３から参照画像メモリ１９２に動きベクトルが示す参照画像が転送される（Ｓ２０９）。そして、動き補償演算部１９１は、参照画像メモリ１９２に格納された参照画像を用いて、１／２画素精度や１／４画素精度の予測画像を生成する（Ｓ２１０）。
【００８３】
一方、インターマクロブロックで無い場合（Ｓ２０４でＮｏ）、すなわちイントラマクロブロックの場合は、面内予測部１０７で面内予測の処理を行い、予測画像を生成する（Ｓ２１１）。ここでも探索画像を使うことがないことがわかるので、探索画像転送部２８３での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。また、このインターマクロブロックかどうかの選択は、図４の構成図では、スイッチ１１０によって行われる。
【００８４】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ２１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ２１３）。
【００８５】
これらの動作のうち、ダイレクトモード時の動作を時系列上の動作として表したものを図６に示す。図６に示すように、探索画像の転送開始を可変長復号の前に行うことにより、動きベクトル探索前に転送が完了しているので、待ち時間なく、動きベクトルの探索を行うことができるようになっている。
【００８６】
なお、探索画像の転送は、必ずしも逆周波数変換が終わるまでに完了するとは限らない。しかしながら、探索画像の転送と、可変長復号、逆量子化、逆周波数変換とを平行して行うことにより、図３Ｃの場合と比較して、逆周波数変換と動きベクトル探索との間の待ち時間は確実に少なくなる。
【００８７】
以上が画像復号装置２００の動作についての説明である。
【００８８】
実施の形態１では、性能を向上させるためには、探索画像転送の時間を短くすることが必要となり、単位時間あたりの転送量を示すバンド幅が増大してしまう。しかし、本実施の形態２では、探索画像転送部２８３を設けて、あらかじめ、探索画像の転送を開始しておくことで、他の処理を行っている間に探索画像の転送が可能となり、転送時間を実施の形態１に比べて長くすることができる。その結果として、フレームメモリ１０３からの転送バンド幅の低減が可能になる。
【００８９】
なお、本実施の形態２においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【００９０】
また、本実施の形態２では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【００９１】
また、本実施の形態２においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態２で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【００９２】
また、本実施の形態２では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態２に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【００９３】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【００９４】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【００９５】
なお、探索画像の転送開始のタイミングは、本実施の形態２では可変長復号の直前としているが、動きベクトル探索の前であればいつでも構わない。また、直前のマクロブロックの処理中などであっても構わない。
【００９６】
また、イントラマクロブロック時や、ダイレクトモードでないインターマクロブロックの場合の、探索画像の転送の完了又は中断の処理は、ダイレクトモードでないことがわかっていればどのタイミングで行っても構わない。早く中断することによって無駄な転送を削減し、消費電力を低減することが可能になる。
【００９７】
（実施の形態３）
次に、本実施の形態３における画像復号装置の概要について説明する。実施の形態１および２では、復号するマクロブロックごとに探索画像の転送を行っていた。あるマクロブロックの動きベクトル算出に必要な探索領域は、次のマクロブロックでは、１６画素右にずれるだけで、多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送する。
【００９８】
これにより、転送量を削減し、転送バンド幅を削減することができることを示す。以上が、本実施の形態３における画像復号装置の概要についての説明である。
【００９９】
次に、本実施の形態３の画像復号装置２００の構成について説明する。本実施の形態３の画像復号装置２００の構成は、実施の形態２の図４と同一であるので、説明を省略する。
【０１００】
なお、実施の形態３に係る探索画像メモリ１８２は、フレームメモリ１０３から過去に転送された画素データの少なくとも一部を継続して記憶している。そして、実施の形態３に係る探索画像転送部２８３は、符号化対象マクロブロックの探索領域の画素データのうち、探索画像メモリ１８２に記憶されていない画素データのみを、フレームメモリ１０３から探索画像メモリ１８２に新たに転送する。さらに、探索画像転送部２８３は、過去に転送された画素のデータのうち、後続のマクロブロックの動きベクトルを算出するのに使用されない画素データを、探索画像メモリ１８２から削除する。
【０１０１】
以上が、本実施の形態３における画像復号装置２００の構成についての説明である。
【０１０２】
次に、本実施の形態３における画像復号装置２００の動作を説明する。全体の動作のフローは実施の形態２の図５と同じであるので、説明を省略する。本実施の形態３においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１０３】
本実施の形態３と実施の形態２との違いは、探索画像転送部２８３による探索画像の転送範囲である。実施の形態２では、探索画像転送部２８３が、動きベクトルの探索に必要な全ての探索画像を、フレームメモリ１０３から探索画像メモリ１８２に転送するとしていた。しかしながら、実際には、図７Ａ〜図７Ｃに示すように、探索画像の多くは直前のマクロブロックの探索画像と重複している。
【０１０４】
図７Ａは、マクロブロックＭＢｎにおける探索領域を示している。探索領域が３２ｘ３２画素の場合は、図７Ａに示すように、周辺のマクロブロックのちょうど中央までが探索領域となる。図７Ｂは、マクロブロックＭＢｎの次のマクロブロックＭＢｎ＋１の探索領域である。図７Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋１との探索領域を拡大して１つの図に示したものである。
【０１０５】
図７Ｃに示すように、探索領域を３つの領域に分けることができる。領域Ａは、マクロブロックＭＢｎでのみ探索領域として必要な領域である。領域Ｂは、マクロブロックＭＢｎでもマクロブロックＭＢｎ＋１でも探索領域として必要な領域である。領域Ｃは、マクロブロックＭＢｎ＋１でのみ探索領域として必要な領域である。つまり、マクロブロックＭＢｎ＋１の動きベクトル算出処理では、既に探索画像メモリ１８２に転送している領域Ａ、領域Ｂのうち、領域Ａのデータを削除して、領域Ｃのデータのみをフレームメモリ１０３から探索画像メモリ１８２に転送すればよいことがわかる。
【０１０６】
以上が、本実施の形態３における画像復号装置２００の動作についての説明である。
【０１０７】
このように、探索領域が水平方向にずれて、新たに必要になった領域のみをフレームメモリ１０３から探索画像メモリ１８２に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態１では、１マクロブロックあたり２０４８Ｂｙｔｅの転送が必要であったが、実施の形態３では、１マクロブロックあたり１６ｘ３２ｘ２＝１０２４Ｂｙｔｅに削減することが可能になる。
【０１０８】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０１０９】
なお、本実施の形態３では実施の形態２に対して説明したが、実施の形態１に対しても適用可能であり、同様の効果を得ることができる。
【０１１０】
また、本実施の形態３では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１１１】
また、本実施の形態３においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態３で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１１２】
また、本実施の形態３では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態３に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１１３】
また、本実施の形態３では、復号マクロブロックの周辺３２ｘ３２画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
【０１１４】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１１５】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１１６】
（実施の形態４）
次に、本実施の形態４における画像復号装置の概要について説明する。実施の形態３では、動きベクトルの探索に必要な探索画像のうち、直前に復号したマクロブロックの探索画像として使われていない領域のみの転送を行っていた。しかしながら、１マクロブロック上のマクロブロックで使われた探索画像を探索画像メモリに保持しておけば、１６画素下にずれるだけで、さらに多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送することにより、実施の形態３よりもさらに、転送量を削減し、転送バンド幅を削減することができることを示す。
【０１１７】
以上が、本実施の形態４における画像復号装置の概要についての説明である。
【０１１８】
次に、本実施の形態４の画像復号装置２００の構成について説明する。本実施の形態４の画像復号装置２００の構成は、実施の形態２の図４と全く同一であるので、説明を省略する。
【０１１９】
以上が、本実施の形態４における画像復号装置２００の構成についての説明である。
【０１２０】
次に、本実施の形態４における画像復号装置２００の動作を説明する。全体の動作のフローは実施の形態２の図５と同じであるので、説明を省略する。本実施の形態４においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１２１】
本実施の形態４と実施の形態３との違いは、探索画像転送部２８３による探索画像の転送範囲である。実施の形態３では、探索画像転送部２８３が、復号されるマクロブロックの動きベクトル探索に必要な探索領域のうち、直前に復号されたマクロブロックの探索領域との差分のみを、フレームメモリ１０３から探索画像メモリ１８２に転送するとしていた。しかしながら、実際には、図８Ａ〜図８Ｄに示すように、探索画像の多くは上側のマクロブロックの探索画像と重複している。
【０１２２】
図８Ａは、マクロブロックＭＢｎにおける探索領域を示している。探索領域が３２ｘ３２画素の場合は、図８Ａに示すように、周辺のマクロブロックのちょうど中央まで探索領域となる。図８Ｂは、マクロブロックＭＢｎの下のマクロブロックＭＢｎ＋８の探索領域である。図８Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋８との探索領域を拡大して１つの図に示したものである。
【０１２３】
図８Ｃに示すように、探索領域を３つの領域に分けることができる。領域Ｄは、マクロブロックＭＢｎでのみ探索領域として必要な領域である。領域Ｅは、マクロブロックＭＢｎでもマクロブロックＭＢｎ＋８でも探索領域として必要な領域である。領域Ｆは、マクロブロックＭＢｎ＋８でのみ探索領域として必要な領域である。つまり、マクロブロックＭＢｎ＋８の動きベクトル算出処理では、既に探索画像メモリ１８２に転送している領域Ｄ、領域Ｅのうち、領域Ｄのデータを削除して、領域Ｆのデータのみをフレームメモリ１０３から転送すればよいことがわかる。
【０１２４】
また、実施の形態３で説明したように、マクロブロックＭＢｎ＋８の直前のマクロブロックであるマクロブロックＭＢｎ＋７の動きベクトル探索において、図８Ｃの領域Ｆの左半分の領域は、既にフレームメモリ１０３から探索画像メモリ１８２に転送済みである。そこで、マクロブロックＭＢｎ＋８の動きベクトルの探索のためには、領域Ｆの右半分の領域のみを新たに追加すればよい。そこで、この領域の画素データのみを、フレームメモリ１０３から転送すればよいことがわかる。
【０１２５】
すなわち、画像復号装置２００が符号化画像を構成する複数のマクロブロックを、符号化画像の左上から右下に向かって順次復号する場合において、探索画像転送部２８３は、探索領域の右下隅に相当する部分（領域Ｆの右半分）の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送し、探索領域の左上端に相当する部分より前に転送された画素データを探索画像メモリ１８２から削除すればよい。
【０１２６】
本実施の形態４の場合、探索画像メモリ１８２は、一旦保持した探索領域の画素データを下のマクロブロックが使うまで保持する必要があるので、図８Ｄに示すように復号する画像用の水平サイズに比例した容量が必要である。
【０１２７】
なお、図８Ｄの例では、参照画像の画素データをマクロブロック単位で、フレームメモリ１０３から転送し、又は探索画像メモリ１８２から削除しているように見えるが、本発明はこれに限定されない。すなわち、マクロブロックの境界を意識することなく、新たに必要な領域の画素データのみをフレームメモリ１０３から転送し、又は不要になった画素データ全てを探索画像メモリ１８２から削除すればよい。
【０１２８】
以上が、本実施の形態４における画像復号装置２００の動作についての説明である。
【０１２９】
このように、探索領域が水平垂直方向にずれて、新たに必要になった領域のみをフレームメモリ１０３から探索画像メモリ１８２に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態１では、１マクロブロックあたり２０４８Ｂｙｔｅの転送が必要であったが、実施の形態４では、１マクロブロックあたり１６ｘ１６ｘ２＝５１２Ｂｙｔｅに削減することが可能になる。
【０１３０】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０１３１】
なお、本実施の形態４では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１３２】
また、本実施の形態４においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態４で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１３３】
また、本実施の形態４では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態４に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１３４】
また、本実施の形態４では、復号マクロブロックの周辺３２ｘ３２画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
【０１３５】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１３６】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１３７】
（実施の形態５）
次に、本実施の形態５における画像復号装置の概要について説明する。実施の形態１〜４では、それぞれの処理は逐次的に行われていた。本実施の形態５では、それぞれの処理を異なるマクロブロックに対して同時に行うことにより、処理を並列化し性能を向上するとともに、フレームメモリ１０３から探索画像メモリ１８２への探索画像の転送の転送時間を最大化して、転送バンド幅を最小化することが可能になる。
【０１３８】
以上が、本実施の形態５における画像復号装置の概要についての説明である。
【０１３９】
次に、本実施の形態５の画像復号装置の構成について説明する。本実施の形態５の画像復号装置の構成は、実施の形態２の図４と同一であるので、説明を省略する。
【０１４０】
以上が、本実施の形態５における画像復号装置の構成についての説明である。
【０１４１】
次に、図４に示した画像復号装置２００の動作を図９のフローチャートを用いて説明する。図９は、１つのマクロブロックの復号動作を示しており、本実施の形態５では、各処理ブロックが異なるマクロブロックに対して処理を行うため、実施の形態２とは一部異なる処理フローとなっている。また、フローチャート中の横方向の点線はいくつかの処理をまとめた処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態５においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１４２】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ１０３から探索画像メモリ１８２へ転送する（Ｓ３００）。図３２に示すように、２枚の参照画像の探索領域は、探索領域が３２ｘ３２画素の場合、復号マクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【０１４３】
動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態２と同じく非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索するからである。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
【０１４４】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ３０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。
【０１４５】
次に、インターマクロブロックかイントラマクロブロックの判定を行う（Ｓ３０２）。インターマクロブロックの場合は（Ｓ３０２でＹｅｓ）、さらにダイレクトモードかその他のモードであるかの判定を行う（Ｓ３０３）。ダイレクトモードの場合は（Ｓ３０３でＹｅｓ）、動きベクトル演算部１８１で、探索画像メモリ１８２の探索画像を用いて動きベクトルの探索を行い、動きベクトルを算出する（Ｓ３０４）。
【０１４６】
動きベクトルの探索は、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤを算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【０１４７】
ダイレクトモードで無い場合は（Ｓ３０３でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ３０５）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって、動きベクトルが求められる。
【０１４８】
ここで、インターマクロブロックの判定（Ｓ３０２）およびダイレクトモードの判定（Ｓ３０３）は、可変長復号部１０４による可変長復号処理（Ｓ３０１）の完了後に行うように書かれているが、これらの判定に必要な符号化情報が復号された時点で判定しても構わない。
【０１４９】
次に、可変長復号部１０４が出力した係数情報に対して、逆量子化部１０５で逆量子化を行い（Ｓ３０６）、逆周波数変換部１０６で逆周波数変換を行う（Ｓ３０７）。
【０１５０】
次に、インターマクロブロックかイントラマクロブロックかを再度判定する（Ｓ３０８）。インターマクロブロックの場合は（Ｓ３０８でＹｅｓ）、動き補償部１０９で動きベクトル算出部２０８が出力する動きベクトルを用いて、フレームメモリ１０３から探索画像を参照画像メモリ１９２に転送する（Ｓ３０９）。動き補償部１０９は、参照画像メモリ１９２に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する（Ｓ３１０）。一方、インターマクロブロックでない場合は（Ｓ３０８でＮｏ）、面内予測部１０７で面内予測を行い、予測画像を生成する（Ｓ３１１）。
【０１５１】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ３１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ３１３）。
【０１５２】
ここで、図９において、探索画像転送（Ｓ３００）をステージ０とし、可変長復号（Ｓ３０１）から逆量子化（Ｓ３０６）の前までをステージ１とし、逆量子化（Ｓ３０６）および逆周波数変換（Ｓ３０７）をステージ２とし、面内予測（Ｓ３１１）、参照画像転送（Ｓ３０９）、動き補償（Ｓ３１０）および再構成処理（Ｓ３１２）をステージ３とし、デブロックフィルタ（Ｓ３１３）をステージ４とする。これらのステージ０からステージ４の各ステージが異なるマクロブロックを処理するように、制御部１０１は各処理部の動作タイミングを制御する。この動作を図１０を用いて説明する。
【０１５３】
図１０において、ＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は時間間隔を示し、１つのマクロブロックの復号にかかる処理時間を示す時間単位である。図１０では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図１０では、マクロブロックＭＢｎ−１以前及びマクロブロックＭＢｎ＋３以降のマクロブロックは記載を省略している。
【０１５４】
ＴＳｎにおいて、ステージ０は、マクロブロックＭＢｎについて処理を行う。ＴＳｎ＋１において、ステージ０はマクロブロックＭＢｎ＋１の処理を行い、ステージ１はマクロブロックＭＢｎの処理を行う。すなわち、探索画像転送部２８３は、符号化画像を構成する複数のマクロブロックのうち、復号順でｎ（ｎ：自然数）番目のマクロブロックの動きベクトルの演算又は探索が行われているのと平行して、（ｎ＋１）番目のマクロブロックに対応する探索領域の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送する。
【０１５５】
ここで、図１１に一般的な符号化ストリームの構成を示す。ステージ１においては、可変長復号部１０４による可変長復号（Ｓ３０１）によって、図１１の符号化情報のうち少なくともマクロブロック種別および動きベクトル情報が復号された後に、動きベクトル演算部１８１による動きベクトル算出（Ｓ３０５）又は動きベクトル探索（Ｓ３０４）が動作している。
【０１５６】
すなわち、符号化ストリームの先頭に格納されているマクロブロック種別及び動きベクトル情報に基づいて、復号対象マクロブロックがダイレクトモードで符号化されていると判断された場合にのみ、動きベクトル演算または動きベクトル探索の処理が開始される。これにより、不要な処理を実行しなくて済むので、消費電力が少なくて済む。
【０１５７】
ＴＳｎ＋２においては、ステージ０はマクロブロックＭＢｎ＋２の処理を、ステージ１はマクロブロックＭＢｎ＋１の処理を、ステージ２はマクロブロックＭＢｎの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。５ステージに分割した場合、ステージを分割しない場合に比べて５倍の速度で動作することが可能になる。
【０１５８】
以上が、本実施の形態５における画像復号装置２００の動作についての説明である。
【０１５９】
本実施の形態５では、一連の処理をステージに分割し、ステージ０に探索画像転送を行うことにより、無駄な時間なく全ての時間で探索画像の転送を行うことができる。そのため、実施の形態２の図６と比較すると、転送しない時間がなくなり、より多くの時間を探索画像転送に使うことができ、結果として転送バンド幅を低減することができる。
【０１６０】
なお、本実施の形態５では実施の形態４に対して説明したが、実施の形態２、３いずれに対しても適用可能であり、同様の転送バンド幅削減の効果を得ることができる。
【０１６１】
また、本実施の形態５においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【０１６２】
本実施の形態５では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１６３】
また、本実施の形態５においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態５で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１６４】
また、本実施の形態５では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態５に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１６５】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１６６】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１６７】
また、本実施の形態５における処理のステージ分割は１つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
【０１６８】
（実施の形態６）
次に、本実施の形態６における画像復号装置の概要について説明する。実施の形態５では、探索画像の転送を並列に行うことにより、転送バンド幅を削減できることを示したが、本実施の形態６では、さらに、動きベクトルの探索を投機的に前もって開始することで、無駄時間をなくし、効率的に動きベクトル探索処理が行えることを示す。
【０１６９】
以上が、本実施の形態６における画像復号装置の概要についての説明である。
【０１７０】
次に、本実施の形態６の画像復号装置３００の構成について説明する。本実施の形態６の画像復号装置３００の構成を、図１２に示す。本実施の形態６における画像復号装置３００は、ダイレクトモードの場合に参照画像を用いて動きベクトルの探索を行う動きベクトル探索部（図１Ｂの動きベクトル演算部５０に対応）３８４と、ダイレクトモード以外の場合に動きベクトルを算出する動きベクトル演算部３８１と、動きベクトル演算部３８１が出力する動きベクトルと動きベクトル探索部３８４が出力する動きベクトルとを切り替えるスイッチ３８５とを備える。その他の構成要素は、実施の形態２の図４と同じであるので、同じ番号を振り、説明を省略する。
【０１７１】
以上が、本実施の形態６における画像復号装置３００の構成についての説明である。
【０１７２】
次に、図１２に示した画像復号装置３００の動作を図１３のフローチャートを用いて説明する。
【０１７３】
図１３は、１つのマクロブロックの復号動作を示しており、本実施の形態６では、動きベクトル探索部３８４が新たに加わったため、実施の形態５とは一部異なる処理フローとなっている。また、図９と同様にフローチャート中の横方向の点線は処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態６においても、他の実施の形態１〜５と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１７４】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ１０３から探索画像メモリ１８２へ転送する（Ｓ４００）。図３２に示すように、２枚の参照画像の探索領域の位置は、探索領域が３２ｘ３２画素の場合、復号マクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【０１７５】
動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態２と同じく非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索する。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になる。
【０１７６】
次に、動きベクトル探索部３８４において、動きベクトルの探索を行う（Ｓ４０１）。他の処理の最初に動きベクトル探索が可能となっているのは、先に説明した探索画像転送部２８３による転送が行えるのと同じ理由であり、探索領域の画素データが探索画像メモリ１８２にあれば、動きベクトルの探索が可能になるためである。
【０１７７】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ４０２）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。
【０１７８】
次に、ダイレクトモード以外のインターマクロブロックかどうかの判定を行う（Ｓ４０３）。ダイレクトモード以外のインターマクロブロックの場合は（Ｓ４０３でＹｅｓ）、動きベクトル演算部３８１で、動きベクトル演算を行い、動きベクトルを算出する（Ｓ４０４）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって動きベクトルが求められる。
【０１７９】
次に、可変長復号部１０４が出力した係数情報に対して、逆量子化部１０５で逆量子化を行い（Ｓ４０５）、逆周波数変換部１０６で逆周波数変換を行う（Ｓ４０６）。
【０１８０】
次に、インターマクロブロックかイントラマクロブロックかを再度判定する（Ｓ４０７）。インターマクロブロックの場合は（Ｓ４０７でＹｅｓ）、動き補償部１０９でスイッチ３８５が選択する動きベクトルを用いてフレームメモリ１０３から参照領域の画素データを参照画像メモリ１９２に転送する（Ｓ４０９）。
【０１８１】
なお、動きベクトル算出部３０８において、スイッチ３８５は、ダイレクトモードの場合は、動きベクトル探索部３８４が出力する動きベクトルを選択し、ダイレクトモードでない場合は、動きベクトル演算部３８１が出力する動きベクトルを選択し、出力する（Ｓ４０８）。
【０１８２】
動き補償部１０９は、参照画像メモリ１９２に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する（Ｓ４１０）。一方、インターマクロブロックでない場合は（Ｓ４０７でＮｏ）、面内予測部１０７で面内予測を行い、予測画像を生成する（Ｓ４１１）。
【０１８３】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ４１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ４１３）。
【０１８４】
ここで、図１３において、探索画像転送（Ｓ４００）をステージ０とし、動きベクトル探索（Ｓ４０１）から逆量子化（Ｓ４０５）の前までをステージ１とし、逆量子化（Ｓ４０５）および逆周波数変換（Ｓ４０６）をステージ２とし、面内予測（Ｓ４１１）、参照画像転送（Ｓ４０９）、動き補償（Ｓ４１０）および再構成処理（Ｓ４１１）をステージ３とし、デブロックフィルタ（Ｓ４１２）をステージ４とする。
【０１８５】
これらのステージ０からステージ４の各ステージが異なるマクロブロックを処理するように、制御部１０１は各処理部の動作タイミングを制御する。この動作を図１４を用いて説明する。図１４において、ＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は時間間隔を示し、１つのマクロブロックの復号にかかる処理時間を示す時間単位である。図１４では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図１４では、マクロブロックＭＢｎ−１以前及びマクロブロックＭＢｎ＋３以降のマクロブロックは記載を省略している。
【０１８６】
ＴＳｎにおいて、ステージ０は、マクロブロックＭＢｎについて処理を行う。ＴＳｎ＋１において、ステージ０はマクロブロックＭＢｎ＋１の処理を行い、ステージ１はマクロブロックＭＢｎの処理を行う。ここで、図９のステージ１では、動きベクトル演算部１８１による動きベクトル探索の処理（Ｓ３０４）は、可変長復号部１０４による可変長復号（Ｓ３０１）の途中から、すなわちマクロブロック種別や動きベクトル情報の復号後から開始しているのに対し、図１４のステージ１では、ＴＳｎ＋１の開始後すぐにマクロブロックＭＢｎに対する動きベクトル探索部３８４による動きベクトル探索（Ｓ４０１）の処理を行っている点に違いがある。すなわち、復号対象マクロブロックがダイレクトモードであるか否かを判断することなく、動きベクトル演算または動きベクトル探索の処理が開始される。
【０１８７】
ＴＳｎ＋２においては、ステージ０はマクロブロックＭＢｎ＋２の処理を、ステージ１はマクロブロックＭＢｎ＋１の処理を、ステージ２はマクロブロックＭＢｎの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。５ステージに分割した場合、ステージを分割しない場合に比べて５倍の速度で動作することが可能になる。
【０１８８】
以上が、本実施の形態６における画像復号装置３００の動作についての説明である。
【０１８９】
本実施の形態６によれば、可変長復号部１０４によってマクロブロック種別などを復号する前に、動きベクトル探索部３８４を動作させる。その後、動きベクトル探索部３８４が出力する動きベクトルと、動きベクトル演算部３８１が出力する動きベクトルとをスイッチ３８５で切り替えることにより、動きベクトル探索部３８４が動作できない空き時間をなくし、効率的に演算できるようになる。
【０１９０】
なお、本実施の形態６においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【０１９１】
また、本実施の形態６では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１９２】
また、本実施の形態６においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態６で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１９３】
また、本実施の形態６では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態６に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１９４】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１９５】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１９６】
また、本実施の形態６における処理のステージ分割は１つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
【０１９７】
また、本実施の形態６では、常に動きベクトル探索部３８４が動きベクトルを算出するまで動作することとしたが、実際には動きベクトル探索部３８４が出力する動きベクトルを使用しないことがわかり次第、演算を停止するような制御を行ってもよい。
【０１９８】
（実施の形態７）
次に、本実施の形態７における画像復号装置の概要について説明する。実施の形態１〜６では、動きベクトル探索を行う探索画像メモリと、動き補償を行う参照画像メモリとは接続されていない。すなわち、動き補償部は、常にフレームメモリから参照画像メモリに参照領域の画素データを転送し、動き補償処理を行っていた。
【０１９９】
一方、本実施の形態７では、ダイレクトモードの場合には、動き補償処理で使用する参照画像が、探索画像メモリに既に存在することを利用して、ダイレクトモードの場合には探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
【０２００】
以上が、本実施の形態７における画像復号装置の概要についての説明である。
【０２０１】
次に、本実施の形態７の画像復号装置４００の構成について説明する。本実施の形態７の画像復号装置４００の構成を、図１５に示す。本実施の形態７における画像復号装置４００は、フレームメモリ１０３から参照領域の画素データを参照画像メモリ（第３の記憶部）１９２転送するか、探索画像メモリ１８２から参照領域の画素データを参照画像メモリ１９２に転送するかを切り替えるスイッチ（参照領域転送部）４９３を備える。その他の構成要素は、実施の形態６の図１２と同じであるので、同じ番号を振り、説明を省略する。
【０２０２】
以上が、本実施の形態７における画像復号装置４００の構成についての説明である。
【０２０３】
次に、図１５に示した画像復号装置４００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３の参照画像転送（Ｓ４０９）の動作が異なるので、図１６に示すフローチャートを用いて詳細に説明する。本実施の形態７においても、他の実施の形態と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２０４】
動き補償部４０９による参照画像転送時に、図１６に示すように、まず、復号するマクロブロックがダイレクトモードかどうかを判定する（Ｓ５０１）。ダイレクトモードであれば（Ｓ５０１でＹｅｓ）、使用する参照領域の画素データは必ず探索画像メモリ１８２に保持されている。このため、スイッチ４９３を切り替えて、参照領域の画素データを探索画像メモリ１８２から参照画像メモリ１９２に転送する（Ｓ５０２）。
【０２０５】
一方、ダイレクトモードでない場合は（Ｓ５０１でＮｏ）、これまでの実施の形態１〜７と同じく、参照領域の画素データをフレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２０６】
その他の処理はすべて実施の形態５と同じであるので、説明を省略する。
【０２０７】
このように構成することにより、ダイレクトモードが選択された場合、探索画像メモリ１８２に動き補償部４０９が使用する参照画像が存在するので、フレームメモリ１０３から参照画像メモリ１９２への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
【０２０８】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０２０９】
なお、本実施の形態７では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２１０】
また、本実施の形態７においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態７で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２１１】
また、本実施の形態７では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態７に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２１２】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２１３】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２１４】
また、本実施の形態７では、探索画像メモリ１８２から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接探索画像メモリ１８２にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい
【０２１５】
（実施の形態８）
次に、本実施の形態８における画像復号装置の概要について説明する。実施の形態７では、ダイレクトモードの場合のみ、探索画像メモリから参照画像メモリに転送し、動き補償処理を行っていた。本実施の形態８では、ダイレクトモードでない場合も含めて、動きベクトルが指す参照画像が探索画像メモリ上に存在するかどうかを判定する。そして、探索画像メモリ上にある場合には、探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
【０２１６】
以上が、本実施の形態８における画像復号装置の概要についての説明である。
【０２１７】
次に、本実施の形態８の画像復号装置５００の構成について説明する。本実施の形態８の画像復号装置５００の構成を、図１７に示す。本実施の形態８における画像復号装置５００は、動きベクトルが指す参照画像が探索画像メモリ１８２内にあるかどうかを判定する動きベクトル判定部５１３を備える。その他の構成要素は、実施の形態７の図１５と同じであるので、同じ番号を振り、説明を省略する。
【０２１８】
以上が、本実施の形態８における画像復号装置５００の構成についての説明である。
【０２１９】
次に、図１７に示した画像復号装置５００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３における参照画像転送（Ｓ４０９）の動作が異なるので、図１８に示すフローチャートを用いて詳細に説明する。本実施の形態８においても、実施の形態１〜７と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２２０】
動き補償部４０９による参照画像転送時に、図１８に示すように、動きベクトル判定部５１３は、動きベクトル算出部３０８が算出する動きベクトルが指す参照画像が探索画像メモリ１８２上に存在するかどうかを判定する（Ｓ６０１）。探索画像メモリ１８２上に参照画像が存在すれば（Ｓ６０１でＹｅｓ）、スイッチ４９３によって、探索画像メモリ１８２から参照画像メモリ１９２に転送する（Ｓ６０２）。動きベクトル判定部５１３は、ダイレクトモードの場合は、必ず探索画像メモリ１８２上に参照画像があると判定する。
【０２２１】
一方、動きベクトル判定部５１３が、探索画像メモリ１８２上に参照画像が存在しないと判定した場合は（Ｓ６０１でＮｏ）、フレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２２２】
その他の処理はすべて実施の形態７と同じであるので、説明を省略する。
【０２２３】
以上が、本実施の形態８における画像復号装置５００の動作についての説明である。
【０２２４】
このように構成することにより、ダイレクトモードであるかどうかに関わらず、探索画像メモリ１８２に動き補償部４０９が使用する参照画像が存在する場合には、フレームメモリ１０３から参照画像メモリ１９２への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
【０２２５】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０２２６】
なお、本実施の形態８では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２２７】
また、本実施の形態８においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態８で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２２８】
また、本実施の形態８では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態８に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２２９】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２３０】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２３１】
また、本実施の形態８では、探索画像メモリ１８２から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接探索画像メモリ１８２にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
【０２３２】
（実施の形態９）
次に、本実施の形態９における画像復号装置の概要について説明する。実施の形態８では、探索画像メモリに対して、フレームメモリからの書き込み、参照画像メモリへの読み出し、動きベクトル探索部による読み出しと、アクセスが集中するために、探索画像メモリの実現が困難になる場合がある。
【０２３３】
そこで、本実施の形態９では、フレームメモリから読み出した画素データのうちの現在の探索で使用しない領域を、別途設けた共有メモリに配置することにより、現在のマクロブロックの復号に必要な探索領域の画素データのみを探索画像メモリに配置する。これにより、探索画像メモリのアクセスを削減し、探索画像メモリの構成を容易にする。
【０２３４】
以上が、本実施の形態９における画像復号装置６００の概要についての説明である。
【０２３５】
次に、本実施の形態９の画像復号装置６００の構成について説明する。本実施の形態９の画像復号装置６００の構成を、図１９に示す。本実施の形態９における画像復号装置６００は、探索画像メモリ１８２より記憶容量の大きい共有メモリ６１４を備える。その他の構成要素は、実施の形態８の図１７と同じであるので、同じ番号を振り、説明を省略する。
【０２３６】
すなわち、実施の形態９に係る画像復号装置６００は、動きベクトル探索部３８４に直接アクセスされる探索画像メモリ（探索領域記憶部）１８２と、探索画像メモリ１８２に記憶されている探索領域を含み、且つ参照画像のうちの探索領域より広い領域の画素データを記憶している共有メモリ６１４（広範領域記憶部）６１４とを備える。そして、スイッチ４９３は、参照領域の画素データを共有メモリ６１４から参照画像メモリ１９２に転送する。
【０２３７】
以上が、本実施の形態９における画像復号装置６００の構成についての説明である。
【０２３８】
次に、図１９に示した画像復号装置６００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３における探索画像転送（Ｓ４００）および参照画像転送（Ｓ４０９）の動作が異なる。本実施の形態９においても、実施の形態１〜７と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２３９】
まず、図１３における探索画像転送（Ｓ４００）の動作を図２０に示すフローチャートを用いて説明する。探索画像転送部２８３は、フレームメモリ１０３から共有メモリ６１４に探索領域の画素データを転送する（Ｓ７０１）。図２１Ａに示すように、共有メモリ６１４には、下のマクロブロックの探索時にも使える領域を全て保持する。このため、共有メモリ６１４には、対応する画像サイズの水平方向のサイズに比例した容量が必要となる。
【０２４０】
次に、探索画像転送部２８３は、共有メモリ６１４から探索画像メモリ１８２に、動きベクトル探索部３８４が使用する探索領域の画素データのみを転送する（Ｓ７０２）。図２１Ｂに示すように、探索画像メモリ１８２が保持するのは、そのマクロブロックに必要な探索領域のみとなるため、探索画像メモリ１８２の容量を小さくすることができる。
【０２４１】
次に、図１３における参照画像転送（Ｓ４０９）の動作を図２２に示すフローチャートで説明する。動き補償部４０９による参照画像転送時に、図２２に示すように、動きベクトル判定部５１３は、動きベクトル算出部３０８が算出する動きベクトルが指す参照画像（すなわち、参照領域）が共有メモリ６１４上に存在するかどうかを判定する（Ｓ８０１）。共有メモリ６１４上に参照画像が存在すれば（Ｓ８０１でＹｅｓ）、スイッチ４９３によって、共有メモリ６１４から参照画像メモリ１９２に転送する（Ｓ８０２）。動きベクトル判定部５１３は、ダイレクトモードの場合は、必ず共有メモリ６１４上に参照画像があると判定する。
【０２４２】
一方、動きベクトル判定部５１３が、共有メモリ６１４上に参照画像が存在しないと判定した場合は（Ｓ８０１でＮｏ）、フレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２４３】
その他の処理はすべて実施の形態８と同じであるので、説明を省略する。
【０２４４】
以上が、本実施の形態９における画像復号装置６００の動作についての説明である。
【０２４５】
このように構成することにより、探索画像メモリ１８２は、アクセス量が大きい動きベクトル探索部３８４からの読み出しと、共有メモリ６１４からの書き込みとのみに対応すればよいため、探索画像メモリ１８２の構成が容易になる。
【０２４６】
なお、本実施の形態９では、実施の形態８に対して説明したが、実施の形態７に対しても同様に適用することが可能である。
【０２４７】
また、本実施の形態９では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２４８】
また、本実施の形態９においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態９で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２４９】
また、本実施の形態９では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態９に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２５０】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２５１】
また、探索画像メモリ１８２、参照画像メモリ１９２および共有メモリ６１４は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２５２】
また、本実施の形態９では、共有メモリ６１４から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接共有メモリ６１４にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
【０２５３】
（実施の形態１０）
上記各実施の形態で示した画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ＩＣカード、半導体メモリ等、プログラムを記録できるものであればよい。
【０２５４】
さらにここで、上記各実施の形態で示した動画像復号方法の応用例とそれを用いたシステムを説明する。
【０２５５】
図２３は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０６〜ex１１０が設置されている。
【０２５６】
このコンテンツ供給システムex１００は、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０６〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）ex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５などの各機器が接続される。
【０２５７】
しかし、コンテンツ供給システムex１００は図２３のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex１０６〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【０２５８】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex１１６はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex１１４は、ＧＳＭ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）方式、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式、Ｗ−ＣＤＭＡ（Ｗｉｄｅｂａｎｄ−Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式、若しくはＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）方式、ＨＳＰＡ(Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ)の携帯電話、またはＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）等であり、いずれでも構わない。
【０２５９】
コンテンツ供給システムex１００では、カメラex１１３等が基地局ex１０９、電話網ex１０４を通じてストリーミングサーバex１０３に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex１１３を用いて撮影するコンテンツ（例えば、音楽ライブの映像等）に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex１０３に送信する。一方、ストリーミングサーバex１０３は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
【０２６０】
なお、撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。また、カメラex１１３に限らず、カメラex１１６で撮影した静止画像および／または動画像データを、コンピュータex１１１を介してストリーミングサーバex１０３に送信してもよい。この場合の符号化処理はカメラex１１６、コンピュータex１１１、ストリーミングサーバex１０３のいずれで行ってもよいし、互いに分担して行ってもよい。
【０２６１】
また、これら符号化・復号処理は、一般的にコンピュータex１１１や各機器が有するＬＳＩex５００において処理する。ＬＳＩex５００は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号用のソフトウェアをコンピュータex１１１等で読み取り可能な何らかの記録メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込み、そのソフトウェアを用いて符号化・復号処理を行ってもよい。さらに、携帯電話ex１１４がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex１１４が有するＬＳＩex５００で符号化処理されたデータである。
【０２６２】
また、ストリーミングサーバex１０３は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【０２６３】
以上のようにして、コンテンツ供給システムex１００では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex１００では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【０２６４】
なお、コンテンツ供給システムex１００の例に限らず、図２４に示すように、デジタル放送用システムex２００にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex２０１では映像情報のビットストリームが電波を介して通信または放送衛星ex２０２に伝送される。このビットストリームは上記各実施の形態で説明した動画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex２０２は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex２０４が受信する。受信したビットストリームを、テレビ（受信機）ex３００またはセットトップボックス（ＳＴＢ）ex２１７等の装置が復号して再生する。
【０２６５】
また、記録媒体であるＣＤやＤＶＤ等の蓄積メディアｅｘ２１４に記録したビットストリームを読み取り、復号する再生装置ｅｘ２１２にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタｅｘ２１３に表示される。
【０２６６】
また、ＤＶＤ、ＢＤ等の記録メディアex２１５に記録した符号化ビットストリームを読み取り復号する、または記録メディアex２１５に映像信号を符号化し書き込むリーダ／レコーダex２１８にも上記各実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex２１９に表示され、符号化ビットストリームが記録された記録メディアex２１５により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex２０３または衛星／地上波放送のアンテナex２０４に接続されたセットトップボックスex２１７内に動画像復号装置を実装し、これをテレビのモニタex２１９で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
【０２６７】
図２５は、上記各実施の形態で説明した画像復号方法を用いたテレビ（受信機）ex３００を示す図である。テレビex３００は、上記放送を受信するアンテナex２０４またはケーブルex２０３等を介して映像情報のビットストリームを取得、または出力するチューナex３０１と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調／復調部ex３０２と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重／分離部ex３０３を備える。また、テレビex３００は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex３０４、映像信号処理部ex３０５を有する信号処理部ex３０６と、復号した音声信号を出力するスピーカex３０７、復号した映像信号を表示するディスプレイ等の表示部ex３０８を有する出力部ex３０９とを有する。さらに、テレビex３００は、ユーザ操作の入力を受け付ける操作入力部ex３１２等を有するインタフェース部ex３１７を有する。さらに、テレビex３００は、各部を統括的に制御する制御部ex３１０、各部に電力を供給する電源回路部ex３１１を有する。インタフェース部ex３１７は、操作入力部ex３１２以外に、リーダ／レコーダex２１８等の外部機器と接続されるブリッジex３１３、ＳＤカード等の記録メディアex２１６を装着可能とするためのスロット部ex３１４、ハードディスク等の外部記録メディアと接続するためのドライバex３１５、電話網と接続するモデムex３１６等を有していてもよい。なお記録メディアex２１６は、格納する不揮発性／揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex３００の各部は同期バスを介して互いに接続されている。
【０２６８】
まず、テレビex３００がアンテナex２０４等により外部から取得したデータを復号し、再生する構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、ＣＰＵ等を有する制御部ex３１０の制御に基づいて、変調／復調部ex３０２で復調した映像データ、音声データを多重／分離部ex３０３で分離する。さらにテレビex３００は、分離した音声データを音声信号処理部ex３０４で復号し、分離した映像データを映像信号処理部ex３０５で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex３０９から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex３１８、ex３１９等に一旦これらの信号を蓄積するとよい。また、テレビex３００は、放送等からではなく、磁気／光ディスク、ＳＤカード等の記録メディアex２１５、ex２１６から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex３００が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、制御部ex３１０の制御に基づいて、音声信号処理部ex３０４で音声信号を符号化し、映像信号処理部ex３０５で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重／分離部ex３０３で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex３２０、ex３２１等に一旦これらの信号を蓄積するとよい。なお、バッファex３１８〜ex３２１は図示しているように複数備えていてもよいし、１つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調／復調部ex３０２や多重／分離部ex３０３の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【０２６９】
また、テレビex３００は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのＡＶ入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex３００は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
【０２７０】
また、リーダ／レコーダex２１８で記録メディアから符号化ビットストリームを読み出す、または書き込む場合には、上記復号処理または符号化処理はテレビex３００、リーダ／レコーダex２１８のいずれで行ってもよいし、テレビex３００とリーダ／レコーダex２１８が互いに分担して行ってもよい。
【０２７１】
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生／記録部ex４００の構成を図２６に示す。情報再生／記録部ex４００は、以下に説明する要素ex４０１〜ex４０７を備える。光ヘッドex４０１は、光ディスクである記録メディアex２１５の記録面にレーザスポットを照射して情報を書き込み、記録メディアex２１５の記録面からの反射光を検出して情報を読み込む。変調記録部ex４０２は、光ヘッドex４０１に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex４０３は、光ヘッドex４０１に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex２１５に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex４０４は、記録メディアex２１５に記録するための情報および記録メディアex２１５から再生した情報を一時的に保持する。ディスクモータex４０５は記録メディアex２１５を回転させる。サーボ制御部ex４０６は、ディスクモータex４０５の回転駆動を制御しながら光ヘッドex４０１を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex４０７は、情報再生／記録部ex４００全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex４０７が、バッファex４０４に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex４０２、再生復調部ex４０３、サーボ制御部ex４０６を協調動作させながら、光ヘッドex４０１を通して、情報の記録再生を行うことにより実現される。システム制御部ex４０７は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【０２７２】
以上では、光ヘッドex４０１はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【０２７３】
図２７に光ディスクである記録メディアex２１５の模式図を示す。記録メディアex２１５の記録面には案内溝（グルーブ）がスパイラル状に形成され、情報トラックex２３０には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex２３１の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex２３０を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex２１５は、データ記録領域ex２３３、内周領域ex２３２、外周領域ex２３４を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex２３３であり、データ記録領域ex２３３より内周または外周に配置されている内周領域ex２３２と外周領域ex２３４は、ユーザデータの記録以外の特定用途に用いられる。情報再生／記録部ex４００は、このような記録メディアex２１５のデータ記録領域ex２３３に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
【０２７４】
以上では、１層のＤＶＤ、ＢＤ等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録／再生を行う構造の光ディスクであってもよい。
【０２７５】
また、デジタル放送用システムex２００において、アンテナex２０５を有する車ex２１０で放送衛星ex２０２等からデータを受信し、車ex２１０が有するカーナビゲーションex２１１等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex２１１の構成は例えば図２５に示す構成のうち、ＧＰＳ受信部を加えた構成が考えられ、同様なことがコンピュータex１１１や携帯電話ex１１４等でも考えられる。また、上記携帯電話ex１１４等の端末は、テレビex３００と同様に、符号化器・復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という３通りの実装形式が考えられる。
【０２７６】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【０２７７】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【０２７８】
（実施の形態１１）
本実施の形態では、実施の形態１に示した画像復号装置を、典型的には半導体集積回路であるＬＳＩとして実現した形態を図２８に示す。ビットストリームバッファ１０２及びびフレームメモリ１０３をＤＲＡＭ上に実現し、その他の回路やメモリをＬＳＩ上に構成している。
【０２７９】
これらは個別に１チップ化されてもよいし、一部またはすべてを含むように１チップ化されても良い。ここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２８０】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０２８１】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
【０２８２】
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話やテレビ、デジタルビデオレコーダー、デジタルビデオカメラ、カーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管（ＣＲＴ）の他、液晶やＰＤＰ（プラズマディスプレイパネル）、有機ＥＬなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
【０２８３】
また、本実施の形態は、システムＬＳＩとＤＲＡＭ(Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)の構成を示したが、ｅＤＲＡＭ（ｅｍｂｅｄｅｄ  ＤＲＡＭ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やハードディスクなど他の記憶装置で構成してもかまわない。
【０２８４】
（実施の形態１２）
上記各実施の形態で示した画像復号装置および方法は、典型的には集積回路であるＬＳＩで実現される。一例として、図２９に１チップ化されたＬＳＩex５００の構成を示す。ＬＳＩex５００は、以下に説明する要素ex５０２〜ex５０９を備え、各要素はバスex５１０を介して接続している。電源回路部ex５０５は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【０２８５】
また、例えば復号処理を行う場合には、ＬＳＩex５００は、ＣＰＵex５０２の制御に基づいて、ストリームＩ／Ｏex５０６によって基地局ex１０７から得られた符号化データ、または記録メディアex２１５から読み出して得た符号化データを一旦メモリex５１１等に蓄積する。ＣＰＵex５０２の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex５０７に送られ、信号処理部ex５０７において音声データの復号および／または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex５１１等に蓄積するとよい。復号された出力信号はメモリex５１１等を適宜介しながら、ＡＶＩ／Ｏex５０９からモニタｅｘ２１９等に出力される。メモリex５１１にアクセスする際にはメモリコントローラex５０３を介する構成である。
【０２８６】
なお、上記では、メモリex５１１がＬＳＩex５００の外部の構成として説明したが、ＬＳＩex５００の内部に含まれる構成であってもよい。また、ＬＳＩex５００は１チップ化されてもよいし、複数チップ化されてもよい。
【０２８７】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２８８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２８９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０２９０】
本発明の画像復号装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
【符号の説明】
【０２９１】
２０        第１の記憶部
３０        第２の記憶部
４０        探索領域転送部
５０        動きベクトル演算部
６０        復号部
１００、２００、３００、４００、５００、６００  画像復号装置
１０１、７０１      制御部
１０２、７０２      ビットストリームバッファ
１０３、７０３      フレームメモリ
１０４、７０４      可変長復号部
１０５、７０５      逆量子化部
１０６、７０６      逆周波数変換部
１０７、７０７      面内予測部
１０８、２０８、３０８、７０８      動きベクトル算出部
１０９、４０９、７０９      動き補償部
１１０、３８５、４９３      スイッチ
１１１、７１１      再構成部
１１２、７１２      デブロックフィルタ部
１８１、３８１      動きベクトル演算部
１８２      探索画像メモリ
１９１      動き補償演算部
１９２      参照画像メモリ
２８３      探索画像転送部
３８４      動きベクトル探索部
５１３      動きベクトル判定部
６１４      共有メモリ
ex１００      コンテンツ供給システム
ex１０１      インターネット
ex１０２      インターネットサービスプロバイダ
ex１０３      ストリーミングサーバ
ex１０４      電話網
ex１０６      基地局
ex１０７      基地局
ex１０８      基地局
ex１０９      基地局
ex１１０      基地局
ex１１１      コンピュータ
ex１１２      ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）
ex１１３      カメラ
ex１１４      携帯電話
ex１１５      ゲーム機
ex１１６      カメラ
ex１１７      マイク
ex２００      デジタル放送用システム
ex２０１      放送局
ex２０２      放送衛星
ex２０３      ケーブル
ex２０４      アンテナ
ex２０５      アンテナ
ex２１０      車
ex２１１      カーナビゲーション
ex２１２      再生装置
ex２１３      モニタ
ex２１５      記録メディア
ex２１６      記録メディア
ex２１７      セットトップボックス（ＳＴＢ）
ex２１８      リーダ／レコーダ
ex２１９      モニタ
ex２２０      リモートコントローラ
ex２３０      情報トラック
ex２３１      記録ブロック
ex２３２      内周領域
ex２３３      データ記録領域
ex２３４      外周領域
ex３００      テレビ（受信機）
ex３０１      チューナ
ex３０２      変調／復調部
ex３０３      多重／分離部
ex３０４      音声信号処理部
ex３０５      映像信号処理部
ex３０６      信号処理部
ex３０７      スピーカ
ex３０８      表示部
ex３０９      出力部
ex３１０      制御部
ex３１１      電源回路部
ex３１２      操作入力部
ex３１３      ブリッジ
ex３１４      スロット部
ex３１５      ドライバ
ex３１６      モデム
ex３１７      インタフェース部
ex３１８      バッファ
ex３１９      バッファ
ex４００      情報再生／記録部
ex４０１      光ヘッド
ex４０２      変調記録部
ex４０３      再生復調部
ex４０４      バッファ
ex４０５      ディスクモータ
ex４０６      サーボ制御部
ex４０７      システム制御部
ex５００      ＬＳＩ
ex５０２      ＣＰＵ
ex５０３      メモリコントローラ
ex５０５      電源回路部
ex５０６      ストリームＩ／Ｏ
ex５０７      信号処理部
ex５０９      ＡＶ  Ｉ／Ｏ
ex５１０      バス
ex５１１      メモリ
【図１Ａ】
2011048764.tif 000003
【図１Ｂ】
2011048764.tif 000004
【図２】
2011048764.tif 000005
【図３Ａ】
2011048764.tif 000006
【図３Ｂ】
2011048764.tif 000007
【図３Ｃ】
2011048764.tif 000008
【図４】
2011048764.tif 000009
【図５】
2011048764.tif 000010
【図６】
2011048764.tif 000011
【図７Ａ】
2011048764.tif 000012
【図７Ｂ】
2011048764.tif 000013
【図７Ｃ】
2011048764.tif 000014
【図８Ａ】
2011048764.tif 000015
【図８Ｂ】
2011048764.tif 000016
【図８Ｃ】
2011048764.tif 000017
【図８Ｄ】
2011048764.tif 000018
【図９】
2011048764.tif 000019
【図１０】
2011048764.tif 000020
【図１１】
2011048764.tif 000021
【図１２】
2011048764.tif 000022
【図１３】
2011048764.tif 000023
【図１４】
2011048764.tif 000024
【図１５】
2011048764.tif 000025
【図１６】
2011048764.tif 000026
【図１７】
2011048764.tif 000027
【図１８】
2011048764.tif 000028
【図１９】
2011048764.tif 000029
【図２０】
2011048764.tif 000030
【図２１Ａ】
2011048764.tif 000031
【図２１Ｂ】
2011048764.tif 000032
【図２２】
2011048764.tif 000033
【図２３】
2011048764.tif 000034
【図２４】
2011048764.tif 000035
【図２５】
2011048764.tif 000036
【図２６】
2011048764.tif 000037
【図２７】
2011048764.tif 000038
【図２８】
2011048764.tif 000039
【図２９】
2011048764.tif 000040
【図３０】
2011048764.tif 000041
【図３１】
2011048764.tif 000042
【図３２】
2011048764.tif 000043
【手続補正書】
【提出日】平成23年1月20日(2011.1.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化画像を構成するブロックを復号する復号装置であって、
該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、
前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部と、
前記動き補償演算部で生成された予測画像を用いて、前記ブロックを復号する復号部とを備える
復号装置。
【請求項２】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１のブロックである場合にのみ、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項３】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１及び第２のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を開始し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項４】
前記探索領域転送部は、復号されるブロックが前記第２のブロックであった場合、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を中止する
請求項３に記載の復号装置。
【請求項５】
前記第２の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶し、
前記探索領域転送部は、前記探索領域の画素データのうちの前記第２の記憶部に記憶されていない画素データのみを、前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜４のいずれか１項に記載の復号装置。
【請求項６】
前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第２の記憶部から削除する
請求項５に記載の復号装置。
【請求項７】
該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、
前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第１の記憶部から前記第２の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第２の記憶部から削除する
請求項６に記載の復号装置。
【請求項８】
前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのｎ（ｎ：自然数）番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、（ｎ＋１）番目の前記ブロックに対応する前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜７のいずれか１項に記載の復号装置。
【請求項９】
（削除）
【請求項１０】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記参照領域転送部は、前記第１のブロックに対応する前記参照領域の画素データを前記第２の記憶部から前記第３の記憶部に転送し、前記第２のブロックに対応する前記参照画像の画素データを前記第１の記憶部から前記第３の記憶部に転送する
請求項１に記載の復号装置。
【請求項１１】
前記第２の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備え、
前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第３の記憶部に転送する
請求項１０に記載の復号装置。
【請求項１２】
前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第１の探索領域と、再生順で後の参照画像に含まれる第２の探索領域とを含み、
前記動きベクトル演算部は、前記第１及び第２の探索領域それぞれの探索範囲の画素データを前記第２の記憶部から読み出して絶対値差分和を算出する処理を、前記第１及び第２の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出する
請求項１〜８、１０及び１１のいずれか１項に記載の復号装置。
【請求項１３】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、第３の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する復号方法であって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算ステップと、
前記参照画像の一部の領域であって、前記動き補償演算ステップで参照される参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送ステップと、
前記動き補償演算ステップで生成された予測画像を用いて、前記ブロックを復号する復号ステップとを含む
復号方法。
【請求項１４】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、第３の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させるプログラムであって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算ステップと、
前記参照画像の一部の領域であって、前記動き補償演算ステップで参照される参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送ステップと、
前記動き補償演算ステップで生成された予測画像を用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる
プログラム。
【請求項１５】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する集積回路であって、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、
前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部と、
前記動き補償演算部で生成された予測画像を用いて、前記マクロブロックを復号する復号部とを備える
集積回路。
【手続補正書】
【提出日】平成23年2月15日(2011.2.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された画像を復号する画像復号装置及び画像復号方法に関するもので、特に、復号した画像の相関探索を行う画像復号装置及び画像復号方法に関するものである。
【背景技術】
【０００２】
動画像を符号化する画像符号化装置は、動画像を構成する各ピクチャを１６ｘ１６画素からなるマクロブロックに分割し、マクロブロックごとに符号化する。そして、画像符号化装置は、動画像を符号化し圧縮した符号化ストリームを生成する。画像復号装置では、この符号化ストリームをマクロブロック単位に復号し、元の動画像の各ピクチャを再生する。
【０００３】
従来の画像符号化方式の１つとしてＩＴＵ−Ｔ  Ｈ．２６４規格がある（例えば、非特許文献１及び非特許文献２を参照）。Ｈ．２６４規格に対応した画像復号装置は、図３０に示すように、まず、ビットストリームバッファ７０２から符号化ストリームを読み込み、可変長復号部７０４で可変長復号され、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部７０１に渡され、各処理部で必要な形式に変換される。
【０００４】
係数情報は、逆量子化部７０５で逆量子化され、逆周波数変換部７０６でマクロブロック種別に応じた方法で逆周波数変換される。マクロブロック種別がイントラマクロブロックの場合は、面内予測部７０７で、面内予測モードに応じた予測画像の生成が行われる。一方、マクロブロック種別がインターマクロブロックの場合は、動きベクトル算出部７０８で動きベクトル情報から動きベクトルが算出され、その動きベクトルを用いて動き補償部７０９で予測画像が生成される。さらに、再構成部７１１では、予測画像と逆周波数変換された係数情報すなわち差分画像とから復号画像が生成される。さらに、デブロックフィルタ部７１２で復号画像にデブロックフィルタ処理が行われ、フレームメモリ７０３に格納される。
【０００５】
Ｈ．２６４規格には、ダイレクトモードと呼ばれるマクロブロック種別が存在する。ダイレクトモードはインターマクロブロックの一つで、符号化ストリーム中に動きベクトル情報を持たず、過去に復号したピクチャの動きベクトルを用いて動きベクトルを生成する。図３１にＨ．２６４規格におけるダイレクトモードの動きベクトル算出方法を示す。復号マクロブロックの動きベクトルｍｖＬ０及びｍｖＬ１は、復号ピクチャに対応するアンカーピクチャの復号マクロブロックと同じ位置にあるアンカーブロックの動きベクトルｍｖＣｏｌから、各参照ピクチャの時間間隔ｔｂおよびｔｄでスケーリングして、算出される。
【０００６】
ダイレクトモードでは、符号化ストリーム中に動きベクトル情報を挿入する必要が無いため、高い圧縮効率を得ることができる。しかしながら、画像によっては、このダイレクトモードで生成される動きベクトルは最適な動きベクトルではない場合がある。動きベクトルが最適でない場合は、動きベクトル情報は削減されるものの、予測画像からの誤差に相当する係数情報が増加するため、結果として圧縮効率を低下させることになる。特に、アンカーブロックがイントラブロックの場合は、動きベクトルがないため、大きな誤差を発生させることが多かった。
【０００７】
一方、次世代の画像符号化規格として提案されている技術の中には、このような問題を解決する技術がある（非特許文献３）。図３２に示すように、この技術では、従来のＨ．２６４規格のダイレクトモードの演算方法を変更している。具体的には、２つの参照ピクチャＬ０と参照ピクチャＬ１との復号マクロブロックと同じ位置を中心とする所定の範囲の中で、次に述べる探索方法に従って、最も相関が高い、すなわち、最も類似した部分を検出することによって動きベクトルを決定する。
【０００８】
上述の探索方法は、復号マクロブロックの位置を中心として、上下左右対称に探索を行う。最初に参照ピクチャＬ０の探索領域の左上位置と参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらしながら、順にＳＡＤを計算する。
【０００９】
このように順にＳＡＤを算出し、最も小さいＳＡＤの位置が最も類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。このように参照画像そのものを使って動きベクトルを算出することにより、従来のように、過去の復号時の情報を用いないため、常に最適な動きベクトルを算出することができる。その結果、係数情報を増加させることがなく、且つ動きベクトル情報を符号化ストリームに挿入する必要がなくなるので、圧縮効率を向上させることができる。
【００１０】
なお、Ｈ．２６４規格では、Ｂピクチャにおけるスキップモードでもダイレクトモードと同一の動きベクトル演算を行うが、本明細書ではスキップモードの場合も含めてダイレクトモードと呼んでいる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４規格書  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ、２００５年３月発行
【非特許文献２】Ｔｈｏｍａｓ  Ｗｉｅｇａｎｄ  ｅｔ  ａｌ、“Ｏｖｅｒｖｉｅｗ  ｏｆ  ｔｈｅ  Ｈ．２６４／ＡＶＣ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｓｔａｎｄａｒｄ”、  ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＣＩＲＣＵＩＴＳ  ＡＮＤ  ＳＹＳＴＥＭＳ  ＦＯＲ  ＶＩＤＥＯ  ＴＥＣＨＮＯＬＯＧＹ、  ＪＵＬＹ  ２００３、  ＰＰ．１−１９．
【非特許文献３】Ｔｏｍｏｋａｚｕ  Ｍｕｒａｋａｍｉ著、「Ａｄｖａｎｃｅｄ  Ｂ  Ｓｋｉｐ  Ｍｏｄｅ  ｗｉｔｈ  Ｄｅｃｏｄｅｒ−ｓｉｄｅ  Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ」、［ｏｎｌｉｎｅ］、ＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ、２００９年４月１５日、［２００９年９月１８日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｆｔｐ３．ｉｔｕ．ｉｎｔ／ａｖ−ａｒｃｈ／ｖｉｄｅｏ−ｓｉｔｅ／０９０４＿Ｙｏｋ／ＶＣＥＧ−ＡＫ１２．ｚｉｐ＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以上のように、非特許文献３において、ダイレクトモード時に参照画像の探索によって動きベクトルを決定するための演算方法は示されている。しかしながら、従来の動きベクトル算出に比べて極めてデータ量の大きい参照画像を用いてどのように動きベクトル探索を行い、必要な参照画像をフレームメモリからどのように取得するのかという仕組みが具体的に示されていない。
【００１３】
従来のダイレクトモードでは、動きベクトルの算出に用いるデータは過去のピクチャの動きベクトルであり、１本の動きベクトルはたかだか４Ｂｙｔｅ程度である。一方、非特許文献３で示される方法では、フレームメモリに格納されている画像そのものを用いるため、１回の探索に少なくとも１６画素ｘ１６画素ｘ２ピクチャ＝５１２画素が必要で、また、動きベクトルの探索は、探索領域が３２ｘ３２の場合、１７ｘ１７の２８９回の探索が必要となるため、１回のダイレクトモードの動きベクトルの算出に必要なフレームメモリから読み出すデータは５１２ｘ２８９＝１４７，９６８Ｂｙｔｅとなる。これは、従来の方法の約４万倍のデータ量に相当する。さらに、ハイビジョン映像の場合、マクロブロックは１秒間に２４４，８００個あるため、フレームメモリからのデータ転送量は膨大なものになる。１秒間あたりの転送量を１秒あたりの転送量を示すバンド幅で表現すると、３６ＧＢｙｔｅ／ｓｅｃに相当する。
【００１４】
処理の性能は、大きくは演算性能とデータ転送性能との両方で決まり、高速に演算できたとしても、必要なデータの転送に時間がかかってしまうと、性能は劣化してしまう。
【００１５】
一般的に、画像復号装置におけるフレームメモリは容量が大きいため、しばしば演算を行うＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の外に接続するＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）上に置かれる場合が多い。しかしながら、このように大きな転送バンド幅を実現するＤＲＡＭの構成は困難又は非常に高価なものとなる。また、通常のＤＲＡＭでは転送性能が不足し、処理性能を低下させてしまう。したがって、高い性能を実現するためには、フレームメモリからのデータ転送量および転送バンド幅を削減することが必要である。
【００１６】
本発明は、上記従来の課題を解決するものであって、動きベクトルの算出処理において、フレームメモリからのデータ転送量又はデータ転送バンド幅を削減できる画像復号装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の一形態に係る復号装置は、符号化画像を構成するブロックを復号する。具体的には、該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。
【００１８】
上記構成によれば、探索領域の画素データを予め第１の記憶部から第２の記憶部に一度だけ転送しておき、データの読み出し速度の速い第２の記憶部から繰り返し探索領域の画素データを読み出して動きベクトルを算出することができる。その結果、第１の記憶部からのデータ転送量を削減することができると共に、データ転送に要する消費電力を低減することができる。なお、本明細書中の「ブロック」とは、典型的にはマクロブロックを指すが、これに限定されない。
【００１９】
一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第１のブロックである場合にのみ、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号してもよい。これにより、第１の記憶部から第２の記憶部に転送されるデータ量を必要最小限とすることができる。その結果、データ転送に要する消費電力をさらに低減することができる。
【００２０】
他の形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。前記探索領域転送部は、復号されるブロックが前記第１及び第２のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を開始してもよい。前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号してもよい。これにより、動きベクトル演算部による探索領域の画素データの転送完了の待ち時間を少なくすることができる。
【００２１】
また、前記探索領域転送部は、復号されるブロックが前記第２のブロックであった場合、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を中止してもよい。これにより、不要なデータの転送量が減るので、データ転送に要する消費電力をさらに低減することができる。
【００２２】
また、前記第２の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶していてもよい。そして、前記探索領域転送部は、前記探索領域の画素データのうちの前記第２の記憶部に記憶されていない画素データのみを、前記第１の記憶部から前記第２の記憶部に転送してもよい。これにより、第１の記憶部からのデータ転送量をさらに削減することができる。
【００２３】
さらに、前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第２の記憶部から削除してもよい。これにより、第２の記憶部の記憶容量を小さくすることができる。
【００２４】
一形態として、該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第１の記憶部から前記第２の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第２の記憶部から削除してもよい。
【００２５】
また、前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのｎ（ｎ：自然数）番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、（ｎ＋１）番目の前記ブロックに対応する前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送してもよい。このように、復号に必要な複数の処理をパイプライン化することで、データ転送の空き時間をなくして、第１の記憶部からの転送バンド幅をさらに削減することができる。
【００２６】
さらに、該復号装置は、前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部とを備えてもよい。これにより、第１の記憶部からのデータ転送量をさらに削減することができる。
【００２７】
一形態として、前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであってもよい。そして、前記参照領域転送部は、前記第１のブロックに対応する前記参照領域の画素データを前記第２の記憶部から前記第３の記憶部に転送し、前記第２のブロックに対応する前記参照画像の画素データを前記第１の記憶部から前記第３の記憶部に転送してもよい。ダイレクトモードの場合、探索領域と参照領域とが実質的に同一となるので、第２の記憶部から第３の記憶部に参照領域の画素データを転送することができる。一方、ダイレクトモードであるか否かに拘らず、参照領域の画素データが第２の記憶部に格納されているか否かを判断し、格納されている場合には第２の記憶部から転送してもよい。
【００２８】
また、前記第２の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備えてもよい。そして、前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第３の記憶部に転送してもよい。これにより、探索領域記憶部の記憶容量を小さくすることができると共に、探索領域記憶部へのアクセスを削減することができる。
【００２９】
また、前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第１の探索領域と、再生順で後の参照画像に含まれる第２の探索領域とを含んでもよい。そして、前記動きベクトル演算部は、前記第１及び第２の探索領域それぞれの探索範囲の画素データを前記第２の記憶部から読み出して絶対値差分和を算出する処理を、前記第１及び第２の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出してもよい。但し、動きベクトル算出方法はこれに限定されない。
【００３０】
本発明の一形態に係る復号方法は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する方法である。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを含む。
【００３１】
本発明の一形態に係るプログラムは、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させる。具体的には、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、前記動きベクトル演算ステップで算出された動きベクトルを用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる。
【００３２】
本発明の一形態に係る集積回路は、既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する。具体的には、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、前記動きベクトル演算部で算出された動きベクトルを用いて、前記ブロックを復号する復号部とを備える。
【発明の効果】
【００３３】
本発明によれば、第１の記憶部からのデータ転送量又はデータ転送バンド幅を削減できる復号装置を実現することが可能になるという効果が得られる。
【図面の簡単な説明】
【００３４】
【図１Ａ】図１Ａは、画像復号装置の概略構成を示すブロック図である。
【図１Ｂ】図１Ｂは、画像復号装置の詳細構成を示すブロック図である。
【図２】図２は、画像復号装置の動作フローを示す説明図である。
【図３Ａ】図３Ａは、インターマクロブロックでない場合における、画像復号装置の時系列の動作を示す説明図である。
【図３Ｂ】図３Ｂは、インターマクロブロックでダイレクトモードでない場合における、画像復号装置の時系列の動作を示す説明図である。
【図３Ｃ】図３Ｃは、ダイレクトモードの場合における、画像復号装置の時系列の動作を示す説明図である。
【図４】図４は、画像復号装置の構成を示す構成図である。
【図５】図５は、画像復号装置の動作フローを示す説明図である。
【図６】図６は、画像復号装置の時系列の動作を示す説明図である。
【図７Ａ】図７Ａは、マクロブロックＭＢｎにおける探索領域を示す図である。
【図７Ｂ】図７Ｂは、マクロブロックＭＢｎの次のマクロブロックＭＢｎ＋１の探索領域を示す図である。
【図７Ｃ】図７Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋１との探索領域を拡大した図である。
【図８Ａ】図８Ａは、マクロブロックＭＢｎにおける探索領域を示す図である。
【図８Ｂ】図８Ｂは、マクロブロックＭＢｎの下のマクロブロックＭＢｎ＋８の探索領域を示す図である。
【図８Ｃ】図８Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋８との探索領域を拡大した図である。
【図８Ｄ】図８Ｄは、参照画像のうちの探索画像メモリが記憶する領域を示す図である。
【図９】図９は、画像復号装置の動作フローを示す説明図である。
【図１０】図１０は、画像復号装置の時系列の動作を示す説明図である。
【図１１】図１１は、画像復号装置の動作を示す説明図である。
【図１２】図１２は、画像復号装置の構成を示す構成図である。
【図１３】図１３は、画像復号装置の動作フローを示す説明図である。
【図１４】図１４は、画像復号装置の時系列の動作を示す説明図である。
【図１５】図１５は、画像復号装置の構成を示す構成図である。
【図１６】図１６は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図１７】図１７は、画像復号装置の構成を示す構成図である。
【図１８】図１８は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図１９】図１９は、画像復号装置の構成を示す構成図である。
【図２０】図２０は、画像復号装置の探索画像転送の動作フローを示す説明図である。
【図２１Ａ】図２１Ａは、参照画像のうちの広域領域記憶部が記憶する領域を示す図である。
【図２１Ｂ】図２１Ｂは、参照画像のうちの探索領域記憶部が記憶する領域を示す図である。
【図２２】図２２は、画像復号装置の参照画像転送の動作フローを示す説明図である。
【図２３】図２３は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。
【図２４】図２４は、デジタル放送用システムの全体構成図である。
【図２５】図２５は、テレビの構成例を示すブロック図である。
【図２６】図２６は、光ディスクである記録メディアに情報の読み書きを行う情報再生／記録部の構成例を示すブロック図である。
【図２７】図２７は、光ディスクである記録メディアの構造例を示す図である。
【図２８】図２８は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。
【図２９】図２９は、集積回路で実現される各実施の形態の画像復号処理を示すブロック図である。
【図３０】図３０は、従来の画像復号装置を示す構成図である。
【図３１】図３１は、従来のＨ．２６４規格のダイレクトモード時の演算方法を示す説明図である。
【図３２】図３２は、従来のダイレクトモード時に参照画像を探索して動きベクトルを得る方式の演算方法を示す説明図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施の形態における画像復号装置について、図面を参照しながら説明する。
【００３６】
（実施の形態１）
本発明の実施の形態１に係る画像復号装置の概要について説明する。本発明の実施の形態１に係る画像復号装置は、符号化ストリーム（符号化画像）を構成するマクロブロック毎に可変長復号を行う。次に、そのマクロブロックがダイレクトモードの場合には、参照ピクチャから探索領域の画素データ（「探索画像」とも言う）を読み出して探索画像メモリに格納する。そして、その探索画像メモリから探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、動きベクトルの探索を行い、動きベクトルを決定するように構成されている。
【００３７】
以上が本発明の画像復号装置の概要についての説明である。
【００３８】
次に、図１Ａ及び図１Ｂを参照して、本実施の形態１の画像復号装置１００の構成について説明する。図１Ａは、本実施の形態１の画像復号装置１００の概略構成を示すブロック図である。図１Ｂは、本実施の形態１の画像復号装置１００の詳細構成を示すブロック図である。
【００３９】
画像復号装置１００は、図１Ａに示されるように、第１の記憶部２０と、第２の記憶部３０と、探索領域転送部４０と、動きベクトル演算部５０と、復号部６０とを備え、復号画像をマクロブロック毎に復号して、復号画像を出力する。なお、以降の説明では、マクロブロック毎に復号する例を説明するが、本発明はこれに限定されない。つまり、画像復号装置１００は、マクロブロックより大きい、又は小さい任意の大きさのブロック単位で復号を行うことができる。
【００４０】
第１の記憶部２０は、画像復号装置１００によって既に復号された画像であって、マクロブロックを復号する際に参照される参照画像の画素データを記憶する。第２の記憶部３０は、第１の記憶部２０より記憶容量が小さく、且つ第１の記憶部２０よりデータの読み出し速度が速い記憶部である。典型的には、第１の記憶部２０はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、第２の記憶部３０はＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であるが、これには限定されない。
【００４１】
探索領域転送部４０は、参照画像の一部の領域であって、マクロブロックの動きベクトルを算出するのに必要な探索領域の画素データを、第１の記憶部２０から第２の記憶部３０に転送する。動きベクトル演算部５０は、第２の記憶部３０から探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、マクロブロックの動きベクトルを算出する。復号部６０は、動きベクトル演算部５０で算出された動きベクトルを用いて、マクロブロックを復号する。
【００４２】
本実施の形態１の画像復号装置１００は、図１Ｂに示されるように、全体を制御する制御部１０１、入力された符号化ストリームを格納するビットストリームバッファ１０２、復号した画像データを格納するフレームメモリ１０３、符号化ストリームを読み込み可変長復号する可変長復号部１０４、逆量子化を行う逆量子化部１０５、逆周波数変換を行う逆周波数変換部１０６、面内予測（イントラ予測ともいう）を行い予測画像を生成する面内予測部１０７、動きベクトルを算出する動きベクトル算出部１０８、動き補償を行い予測画像を生成する動き補償部１０９、予測画像を切り替えるスイッチ１１０、逆周波数変換された差分画像と予測画像とから復号画像を生成する再構成部１１１、及び再構成された画像にブロックノイズを除去し高画質化するデブロックフィルタ部１１２から構成される。
【００４３】
動きベクトル算出部１０８は、さらに動きベクトル演算を行う動きベクトル演算部１８１と、動きベクトルを算出するための探索領域の画素データ（「探索画像」ともいう）を格納する探索画像メモリ１８２とから構成される。動き補償部１０９は、動き補償演算を行う動き補償演算部１９１と、動き補償に使用する参照領域の画素データ（「参照画像」ともいう）を格納する参照画像メモリ１９２とから構成される。
【００４４】
ここで、図１Ａの第１の記憶部２０は、図１Ｂのフレームメモリ１０３に対応する。図１Ａの第２の記憶部３０は、図１Ｂの探索画像メモリ１８２に対応する。図１Ａの探索領域転送部４０は、図１Ｂでは明示していないが動きベクトル算出部１０８に含まれる。図１Ａの動きベクトル演算部５０は、図１Ｂの動きベクトル演算部１８１に対応する。図１Ａの復号部６０は、図１Ｂの可変長復号部１０４、逆量子化部１０５、逆周波数変換部１０６、及び再構成部１１１等に対応する。
【００４５】
以上が画像復号装置１００の構成についての説明である。
【００４６】
次に、図１Ａ及び図１Ｂに示した画像復号装置１００の動作を図２のフローチャートを用いて説明する。図２は、１つのマクロブロックの復号動作を示している。本実施の形態１においては、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【００４７】
まず、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ１０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。係数情報は、逆量子化部１０５に出力される。次に、逆量子化部１０５で逆量子化処理を行う（Ｓ１０２）。次に、逆周波数変換部１０６で逆周波数変換を行う（Ｓ１０３）。
【００４８】
次に、復号するマクロブロックがインターマクロブロックであるか、イントラマクロブロックであるかの判定を行う（Ｓ１０４）。インターマクロブロックの場合は（Ｓ１０４でＹｅｓ）、さらにダイレクトモードであるかどうかの判定を行う（Ｓ１０５）。つまり、復号対象のマクロブロックが、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロックであるか、又は動きベクトルを示す情報を付加して符号化された第２のブロックであるかを判定する。
【００４９】
ダイレクトモードの場合は（Ｓ１０５でＹｅｓ）、動きベクトルを探索するための探索領域の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送する（Ｓ１０６）。図３２に示すように、２枚の参照画像内における探索領域の位置は、探索領域を３２ｘ３２画素とした場合、復号されるマクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。言い換えれば、探索領域は、参照画像内において、復号対象画像内における復号対象マクロブロックの位置に対応する位置を含み、且つマクロブロックより大きな領域を指す。
【００５０】
次に、探索画像メモリ１８２に格納されている探索領域の画素データを用いて、動きベクトル演算部１８１で動きベクトルの探索を行い、動きベクトルを算出する（Ｓ１０７）。動きベクトルの探索は、例えば、以下のようにして行う。
【００５１】
まず、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と、参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤ（Ｓｕｍｓ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）を算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【００５２】
より詳しく説明すると、探索画像メモリ１８２には、復号対象マクロブロックを含む符号化画像より再生順で前の参照ピクチャＬ０に含まれる第１の探索領域（破線で示す領域）及び、再生順で後の参照ピクチャＬ１に含まれる第２の探索領域（破線で示す領域）の画素データが記憶されている。
【００５３】
動きベクトル演算部１８１は、まず、参照ピクチャＬ０の第１の探索領域の左上のブロック（探索範囲）の画素データと、参照ピクチャＬ１の第２の探索領域の右下のブロック（探索範囲）の画素データとを探索画像メモリ１８２から読み出し、２つのブロックの画素データのＳＡＤを算出する。ここで読み出されるブロックの大きさは、復号対象ブロックの大きさと同一である。
【００５４】
次に、動きベクトル演算部１８１は、第１及び第２の探索領域内で探索範囲をずらしながら、上記の処理を繰り返し実行する。そして、動きベクトル演算部１８１は、算出したＳＡＤが最も小さい探索範囲の位置に基づいて、動きベクトルを算出する。
【００５５】
ダイレクトモードで無い場合は（Ｓ１０５でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ１０８）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって、動きベクトルが求められる。
【００５６】
ここで得られた動きベクトルは、動き補償部１０９に出力される。次に、フレームメモリ１０３から参照画像メモリ１９２に動きベクトルが示す参照領域（「参照画像」とも言う）の画素データを転送する（Ｓ１０９）。そして、動き補償演算部１９１は、参照画像メモリ１９２に格納された参照領域の画素データを用いて、１／２画素精度や１／４画素精度の予測画像を生成する（Ｓ１１０）。
【００５７】
一方、インターマクロブロックで無い場合（Ｓ１０４でＮｏ）、すなわちイントラマクロブロックの場合は、面内予測部１０７で面内予測の処理を行い、予測画像を生成する（Ｓ１１１）。このインターマクロブロックかどうかの選択は、図１Ｂの構成図では、スイッチ１１０によって行われる。
【００５８】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ１１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ１１３）。
【００５９】
これらの動作を時系列上の動作として表したものを図３Ａ〜図３Ｃに示す。図３Ａはインターマクロブロックでない場合、図３Ｂはインターマクロブロックでダイレクトモードでない場合、図３Ｃはダイレクトモードの場合である。いずれの場合も、図２のフローチャートの順に逐次的に動作する。図中のＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は１つのマクロブロックの復号にかかる時間を示しており、マクロブロックによって変動しても構わない。
【００６０】
本実施の形態１では、インターマクロブロックの場合に、ダイレクトモードの場合とダイレクトモードでない場合との２つの場合を備えているとしたが、これは次のような理由による。ダイレクトモードは、符号化ストリーム中に動きベクトルに関する情報を符号化しないため、圧縮率の向上が可能な優れた方式である。しかしながら、復号側で動きベクトルを予測して生成するため、画像の種類によっては動きベクトルの値が最適でないことがある。最適でない場合には、符号化ストリームの係数情報の符号量が増大し、結果として圧縮率を低下させてしまう。そのため、ダイレクトモードの場合とダイレクトモードでない場合との二つのモードを持たせることで、符号化側でより圧縮率の高いモードを選択し、符号化するができる。その結果、圧縮率の向上を図ることができる。
【００６１】
以上が画像復号装置１００の動作についての説明である。
【００６２】
このように実施の形態１では、従来の動きベクトル算出部に、動きベクトルの探索を行うための探索画像メモリ１８２を配置することにより、フレームメモリ１０３からのデータ転送量を削減することが可能となる。動きベクトル探索に先立って、探索画像メモリ１８２に探索領域の画素データを転送しておけば、動きベクトル探索の１回の演算毎にフレームメモリ１０３にアクセスする必要がなく、探索画像メモリ１８２にのみアクセスすればよい。その結果、フレームメモリ１０３から読み出すデータ量を、１マクロブロックあたり３２ｘ３２ｘ２＝２０４８Ｂｙｔｅに削減することができる。
【００６３】
また、転送量を削減することにより、同時に、転送に要する消費電力の低減を図ることができる。
【００６４】
なお、本実施の形態１においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【００６５】
また、本実施の形態１では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【００６６】
また、本実施の形態１においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態１で参照している非特許文献３に示されるようなフレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【００６７】
また、本実施の形態１では、非特許文献３の方法を使用しているが、フレームメモリに記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態１に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【００６８】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【００６９】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【００７０】
（実施の形態２）
次に、本実施の形態２における画像復号装置の概要について説明する。実施の形態１では、逆周波数変換後、ダイレクトモードの場合にのみ、探索画像の転送を行っていた。そのため、探索画像の転送完了を待って、動きベクトルの探索処理を行う必要があり、無駄な待ち時間を生じていた。そこで本実施の形態２においては、動きベクトル算出部に、さらに探索画像転送部（探索領域転送部）を設ける。そして、動きベクトル算出処理の開始前に、探索画像の転送を開始しておくことにより、待ち時間をなくすことが可能になる。その結果、処理性能を向上すると共に、フレームメモリからの転送バンド幅が削減可能であることを示す。
【００７１】
以上が、本実施の形態２における画像復号装置の概要についての説明である。
【００７２】
次に、本実施の形態２の画像復号装置２００の構成について説明する。図４は、本実施の形態２の画像復号装置２００の構成図である。本実施の形態２の画像復号装置２００は、フレームメモリ１０３から探索画像メモリ１８２へのデータ転送を制御する探索画像転送部２８３を備え、他の構成要素は、実施の形態１における図１Ｂと同じであり、同じ番号を振って説明を省略する。
【００７３】
以上が画像復号装置２００の構成についての説明である。
【００７４】
次に、図４に示した画像復号装置２００の動作を図５のフローチャートを用いて説明する。図５は、１つのマクロブロックの復号動作を示している。本実施の形態２においては、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【００７５】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索領域の画素データを、フレームメモリ１０３から探索画像メモリ１８２への転送する処理を開始する（Ｓ２００）。図３２に示すように、２枚の参照画像の探索領域の位置は、探索領域が３２ｘ３２画素の場合、復号されるマクロブロックの位置の周辺３２ｘ３２画素で、復号されるマクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【００７６】
ここでは、転送が完了する必要はない。最初に、探索画像転送の開始が可能になっているのは、非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索する。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前（すなわち、ダイレクトモードであるか否かを判断する前）に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
【００７７】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ２０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。係数情報は、次の逆量子化部１０５に出力される。次に、逆量子化部１０５で逆量子化処理を行う（Ｓ２０２）。次に、逆周波数変換部１０６で逆周波数変換を行う（Ｓ２０３）。
【００７８】
次に、復号するマクロブロックがインターマクロブロックか、イントラマクロブロックであるかの判定を行う（Ｓ２０４）。インターマクロブロックの場合は（Ｓ２０４でＹｅｓ）、さらにダイレクトモードであるかどうかの判定を行う（Ｓ２０５）。
【００７９】
ダイレクトモードの場合は（Ｓ２０５でＹｅｓ）、探索画像転送部２８３での探索画像の転送が完了しているかをチェックし、完了していなければ完了するまで待つ（Ｓ２０６）。転送が完了したら、次に、探索画像メモリ１８２の探索画像を用いて、動きベクトル演算部１８１で動きベクトルの探索を行い、動きベクトルを算出する（Ｓ２０７）。
【００８０】
動きベクトルの探索は、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と、参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤを算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【００８１】
ダイレクトモードで無い場合は（Ｓ２０５でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ２０８）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって動きベクトルが求められる。
【００８２】
ここで、探索画像を使うことがないことがわかるので、探索画像転送部２８３での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。得られた動きベクトルは動き補償部１０９に出力され、フレームメモリ１０３から参照画像メモリ１９２に動きベクトルが示す参照画像が転送される（Ｓ２０９）。そして、動き補償演算部１９１は、参照画像メモリ１９２に格納された参照画像を用いて、１／２画素精度や１／４画素精度の予測画像を生成する（Ｓ２１０）。
【００８３】
一方、インターマクロブロックで無い場合（Ｓ２０４でＮｏ）、すなわちイントラマクロブロックの場合は、面内予測部１０７で面内予測の処理を行い、予測画像を生成する（Ｓ２１１）。ここでも探索画像を使うことがないことがわかるので、探索画像転送部２８３での探索画像の転送の完了を待っても良いし、転送が完了していなければ中断しても構わない。また、このインターマクロブロックかどうかの選択は、図４の構成図では、スイッチ１１０によって行われる。
【００８４】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ２１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ２１３）。
【００８５】
これらの動作のうち、ダイレクトモード時の動作を時系列上の動作として表したものを図６に示す。図６に示すように、探索画像の転送開始を可変長復号の前に行うことにより、動きベクトル探索前に転送が完了しているので、待ち時間なく、動きベクトルの探索を行うことができるようになっている。
【００８６】
なお、探索画像の転送は、必ずしも逆周波数変換が終わるまでに完了するとは限らない。しかしながら、探索画像の転送と、可変長復号、逆量子化、逆周波数変換とを平行して行うことにより、図３Ｃの場合と比較して、逆周波数変換と動きベクトル探索との間の待ち時間は確実に少なくなる。
【００８７】
以上が画像復号装置２００の動作についての説明である。
【００８８】
実施の形態１では、性能を向上させるためには、探索画像転送の時間を短くすることが必要となり、単位時間あたりの転送量を示すバンド幅が増大してしまう。しかし、本実施の形態２では、探索画像転送部２８３を設けて、あらかじめ、探索画像の転送を開始しておくことで、他の処理を行っている間に探索画像の転送が可能となり、転送時間を実施の形態１に比べて長くすることができる。その結果として、フレームメモリ１０３からの転送バンド幅の低減が可能になる。
【００８９】
なお、本実施の形態２においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【００９０】
また、本実施の形態２では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【００９１】
また、本実施の形態２においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態２で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【００９２】
また、本実施の形態２では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態２に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【００９３】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【００９４】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【００９５】
なお、探索画像の転送開始のタイミングは、本実施の形態２では可変長復号の直前としているが、動きベクトル探索の前であればいつでも構わない。また、直前のマクロブロックの処理中などであっても構わない。
【００９６】
また、イントラマクロブロック時や、ダイレクトモードでないインターマクロブロックの場合の、探索画像の転送の完了又は中断の処理は、ダイレクトモードでないことがわかっていればどのタイミングで行っても構わない。早く中断することによって無駄な転送を削減し、消費電力を低減することが可能になる。
【００９７】
（実施の形態３）
次に、本実施の形態３における画像復号装置の概要について説明する。実施の形態１および２では、復号するマクロブロックごとに探索画像の転送を行っていた。あるマクロブロックの動きベクトル算出に必要な探索領域は、次のマクロブロックでは、１６画素右にずれるだけで、多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送する。
【００９８】
これにより、転送量を削減し、転送バンド幅を削減することができることを示す。以上が、本実施の形態３における画像復号装置の概要についての説明である。
【００９９】
次に、本実施の形態３の画像復号装置２００の構成について説明する。本実施の形態３の画像復号装置２００の構成は、実施の形態２の図４と同一であるので、説明を省略する。
【０１００】
なお、実施の形態３に係る探索画像メモリ１８２は、フレームメモリ１０３から過去に転送された画素データの少なくとも一部を継続して記憶している。そして、実施の形態３に係る探索画像転送部２８３は、符号化対象マクロブロックの探索領域の画素データのうち、探索画像メモリ１８２に記憶されていない画素データのみを、フレームメモリ１０３から探索画像メモリ１８２に新たに転送する。さらに、探索画像転送部２８３は、過去に転送された画素のデータのうち、後続のマクロブロックの動きベクトルを算出するのに使用されない画素データを、探索画像メモリ１８２から削除する。
【０１０１】
以上が、本実施の形態３における画像復号装置２００の構成についての説明である。
【０１０２】
次に、本実施の形態３における画像復号装置２００の動作を説明する。全体の動作のフローは実施の形態２の図５と同じであるので、説明を省略する。本実施の形態３においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１０３】
本実施の形態３と実施の形態２との違いは、探索画像転送部２８３による探索画像の転送範囲である。実施の形態２では、探索画像転送部２８３が、動きベクトルの探索に必要な全ての探索画像を、フレームメモリ１０３から探索画像メモリ１８２に転送するとしていた。しかしながら、実際には、図７Ａ〜図７Ｃに示すように、探索画像の多くは直前のマクロブロックの探索画像と重複している。
【０１０４】
図７Ａは、マクロブロックＭＢｎにおける探索領域を示している。探索領域が３２ｘ３２画素の場合は、図７Ａに示すように、周辺のマクロブロックのちょうど中央までが探索領域となる。図７Ｂは、マクロブロックＭＢｎの次のマクロブロックＭＢｎ＋１の探索領域である。図７Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋１との探索領域を拡大して１つの図に示したものである。
【０１０５】
図７Ｃに示すように、探索領域を３つの領域に分けることができる。領域Ａは、マクロブロックＭＢｎでのみ探索領域として必要な領域である。領域Ｂは、マクロブロックＭＢｎでもマクロブロックＭＢｎ＋１でも探索領域として必要な領域である。領域Ｃは、マクロブロックＭＢｎ＋１でのみ探索領域として必要な領域である。つまり、マクロブロックＭＢｎ＋１の動きベクトル算出処理では、既に探索画像メモリ１８２に転送している領域Ａ、領域Ｂのうち、領域Ａのデータを削除して、領域Ｃのデータのみをフレームメモリ１０３から探索画像メモリ１８２に転送すればよいことがわかる。
【０１０６】
以上が、本実施の形態３における画像復号装置２００の動作についての説明である。
【０１０７】
このように、探索領域が水平方向にずれて、新たに必要になった領域のみをフレームメモリ１０３から探索画像メモリ１８２に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態１では、１マクロブロックあたり２０４８Ｂｙｔｅの転送が必要であったが、実施の形態３では、１マクロブロックあたり１６ｘ３２ｘ２＝１０２４Ｂｙｔｅに削減することが可能になる。
【０１０８】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０１０９】
なお、本実施の形態３では実施の形態２に対して説明したが、実施の形態１に対しても適用可能であり、同様の効果を得ることができる。
【０１１０】
また、本実施の形態３では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１１１】
また、本実施の形態３においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態３で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１１２】
また、本実施の形態３では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態３に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１１３】
また、本実施の形態３では、復号マクロブロックの周辺３２ｘ３２画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
【０１１４】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１１５】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１１６】
（実施の形態４）
次に、本実施の形態４における画像復号装置の概要について説明する。実施の形態３では、動きベクトルの探索に必要な探索画像のうち、直前に復号したマクロブロックの探索画像として使われていない領域のみの転送を行っていた。しかしながら、１マクロブロック上のマクロブロックで使われた探索画像を探索画像メモリに保持しておけば、１６画素下にずれるだけで、さらに多くの画素はそのまま探索に用いることができる。したがって、必要な画素だけをフレームメモリから探索画像メモリに転送することにより、実施の形態３よりもさらに、転送量を削減し、転送バンド幅を削減することができることを示す。
【０１１７】
以上が、本実施の形態４における画像復号装置の概要についての説明である。
【０１１８】
次に、本実施の形態４の画像復号装置２００の構成について説明する。本実施の形態４の画像復号装置２００の構成は、実施の形態２の図４と全く同一であるので、説明を省略する。
【０１１９】
以上が、本実施の形態４における画像復号装置２００の構成についての説明である。
【０１２０】
次に、本実施の形態４における画像復号装置２００の動作を説明する。全体の動作のフローは実施の形態２の図５と同じであるので、説明を省略する。本実施の形態４においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１２１】
本実施の形態４と実施の形態３との違いは、探索画像転送部２８３による探索画像の転送範囲である。実施の形態３では、探索画像転送部２８３が、復号されるマクロブロックの動きベクトル探索に必要な探索領域のうち、直前に復号されたマクロブロックの探索領域との差分のみを、フレームメモリ１０３から探索画像メモリ１８２に転送するとしていた。しかしながら、実際には、図８Ａ〜図８Ｄに示すように、探索画像の多くは上側のマクロブロックの探索画像と重複している。
【０１２２】
図８Ａは、マクロブロックＭＢｎにおける探索領域を示している。探索領域が３２ｘ３２画素の場合は、図８Ａに示すように、周辺のマクロブロックのちょうど中央まで探索領域となる。図８Ｂは、マクロブロックＭＢｎの下のマクロブロックＭＢｎ＋８の探索領域である。図８Ｃは、マクロブロックＭＢｎとマクロブロックＭＢｎ＋８との探索領域を拡大して１つの図に示したものである。
【０１２３】
図８Ｃに示すように、探索領域を３つの領域に分けることができる。領域Ｄは、マクロブロックＭＢｎでのみ探索領域として必要な領域である。領域Ｅは、マクロブロックＭＢｎでもマクロブロックＭＢｎ＋８でも探索領域として必要な領域である。領域Ｆは、マクロブロックＭＢｎ＋８でのみ探索領域として必要な領域である。つまり、マクロブロックＭＢｎ＋８の動きベクトル算出処理では、既に探索画像メモリ１８２に転送している領域Ｄ、領域Ｅのうち、領域Ｄのデータを削除して、領域Ｆのデータのみをフレームメモリ１０３から転送すればよいことがわかる。
【０１２４】
また、実施の形態３で説明したように、マクロブロックＭＢｎ＋８の直前のマクロブロックであるマクロブロックＭＢｎ＋７の動きベクトル探索において、図８Ｃの領域Ｆの左半分の領域は、既にフレームメモリ１０３から探索画像メモリ１８２に転送済みである。そこで、マクロブロックＭＢｎ＋８の動きベクトルの探索のためには、領域Ｆの右半分の領域のみを新たに追加すればよい。そこで、この領域の画素データのみを、フレームメモリ１０３から転送すればよいことがわかる。
【０１２５】
すなわち、画像復号装置２００が符号化画像を構成する複数のマクロブロックを、符号化画像の左上から右下に向かって順次復号する場合において、探索画像転送部２８３は、探索領域の右下隅に相当する部分（領域Ｆの右半分）の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送し、探索領域の左上端に相当する部分より前に転送された画素データを探索画像メモリ１８２から削除すればよい。
【０１２６】
本実施の形態４の場合、探索画像メモリ１８２は、一旦保持した探索領域の画素データを下のマクロブロックが使うまで保持する必要があるので、図８Ｄに示すように復号する画像用の水平サイズに比例した容量が必要である。
【０１２７】
なお、図８Ｄの例では、参照画像の画素データをマクロブロック単位で、フレームメモリ１０３から転送し、又は探索画像メモリ１８２から削除しているように見えるが、本発明はこれに限定されない。すなわち、マクロブロックの境界を意識することなく、新たに必要な領域の画素データのみをフレームメモリ１０３から転送し、又は不要になった画素データ全てを探索画像メモリ１８２から削除すればよい。
【０１２８】
以上が、本実施の形態４における画像復号装置２００の動作についての説明である。
【０１２９】
このように、探索領域が水平垂直方向にずれて、新たに必要になった領域のみをフレームメモリ１０３から探索画像メモリ１８２に転送することで、転送量を削減することができ、転送バンド幅も合わせて削減することができる。実施の形態１では、１マクロブロックあたり２０４８Ｂｙｔｅの転送が必要であったが、実施の形態４では、１マクロブロックあたり１６ｘ１６ｘ２＝５１２Ｂｙｔｅに削減することが可能になる。
【０１３０】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０１３１】
なお、本実施の形態４では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１３２】
また、本実施の形態４においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態４で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１３３】
また、本実施の形態４では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態４に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１３４】
また、本実施の形態４では、復号マクロブロックの周辺３２ｘ３２画素を探索するとしているが、水平および垂直方向にずれた位置を探索してもよい。ずれ量がマクロブロック毎に同一であれば同様の効果が得られる。
【０１３５】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１３６】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１３７】
（実施の形態５）
次に、本実施の形態５における画像復号装置の概要について説明する。実施の形態１〜４では、それぞれの処理は逐次的に行われていた。本実施の形態５では、それぞれの処理を異なるマクロブロックに対して同時に行うことにより、処理を並列化し性能を向上するとともに、フレームメモリ１０３から探索画像メモリ１８２への探索画像の転送の転送時間を最大化して、転送バンド幅を最小化することが可能になる。
【０１３８】
以上が、本実施の形態５における画像復号装置の概要についての説明である。
【０１３９】
次に、本実施の形態５の画像復号装置の構成について説明する。本実施の形態５の画像復号装置の構成は、実施の形態２の図４と同一であるので、説明を省略する。
【０１４０】
以上が、本実施の形態５における画像復号装置の構成についての説明である。
【０１４１】
次に、図４に示した画像復号装置２００の動作を図９のフローチャートを用いて説明する。図９は、１つのマクロブロックの復号動作を示しており、本実施の形態５では、各処理ブロックが異なるマクロブロックに対して処理を行うため、実施の形態２とは一部異なる処理フローとなっている。また、フローチャート中の横方向の点線はいくつかの処理をまとめた処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態５においても、実施の形態１と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１４２】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ１０３から探索画像メモリ１８２へ転送する（Ｓ３００）。図３２に示すように、２枚の参照画像の探索領域は、探索領域が３２ｘ３２画素の場合、復号マクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【０１４３】
動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態２と同じく非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索するからである。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になるためである。
【０１４４】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ３０１）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。
【０１４５】
次に、インターマクロブロックかイントラマクロブロックの判定を行う（Ｓ３０２）。インターマクロブロックの場合は（Ｓ３０２でＹｅｓ）、さらにダイレクトモードかその他のモードであるかの判定を行う（Ｓ３０３）。ダイレクトモードの場合は（Ｓ３０３でＹｅｓ）、動きベクトル演算部１８１で、探索画像メモリ１８２の探索画像を用いて動きベクトルの探索を行い、動きベクトルを算出する（Ｓ３０４）。
【０１４６】
動きベクトルの探索は、探索画像メモリ１８２上の２枚の参照ピクチャＬ０、Ｌ１に対して、図３２に示すように、最初に参照ピクチャＬ０の探索領域の左上位置と参照ピクチャＬ１の探索領域の右下位置とを比較して、ＳＡＤを算出する。次に、参照ピクチャＬ０は右方向に、参照ピクチャＬ１は左方向に比較する位置をずらし、ＳＡＤを計算する。このように順にＳＡＤを算出し、もっとも小さいＳＡＤの位置がもっとも類似した位置とみなす。そして、そのベクトルを復号ピクチャの復号マクロブロックを起点とする動きベクトルｍｖＬ０及びｍｖＬ１に変換して、動きベクトルを算出する。
【０１４７】
ダイレクトモードで無い場合は（Ｓ３０３でＮｏ）、動きベクトル演算部１８１で動きベクトル演算を行い、動きベクトルを算出する（Ｓ３０５）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって、動きベクトルが求められる。
【０１４８】
ここで、インターマクロブロックの判定（Ｓ３０２）およびダイレクトモードの判定（Ｓ３０３）は、可変長復号部１０４による可変長復号処理（Ｓ３０１）の完了後に行うように書かれているが、これらの判定に必要な符号化情報が復号された時点で判定しても構わない。
【０１４９】
次に、可変長復号部１０４が出力した係数情報に対して、逆量子化部１０５で逆量子化を行い（Ｓ３０６）、逆周波数変換部１０６で逆周波数変換を行う（Ｓ３０７）。
【０１５０】
次に、インターマクロブロックかイントラマクロブロックかを再度判定する（Ｓ３０８）。インターマクロブロックの場合は（Ｓ３０８でＹｅｓ）、動き補償部１０９で動きベクトル算出部２０８が出力する動きベクトルを用いて、フレームメモリ１０３から探索画像を参照画像メモリ１９２に転送する（Ｓ３０９）。動き補償部１０９は、参照画像メモリ１９２に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する（Ｓ３１０）。一方、インターマクロブロックでない場合は（Ｓ３０８でＮｏ）、面内予測部１０７で面内予測を行い、予測画像を生成する（Ｓ３１１）。
【０１５１】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ３１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ３１３）。
【０１５２】
ここで、図９において、探索画像転送（Ｓ３００）をステージ０とし、可変長復号（Ｓ３０１）から逆量子化（Ｓ３０６）の前までをステージ１とし、逆量子化（Ｓ３０６）および逆周波数変換（Ｓ３０７）をステージ２とし、面内予測（Ｓ３１１）、参照画像転送（Ｓ３０９）、動き補償（Ｓ３１０）および再構成処理（Ｓ３１２）をステージ３とし、デブロックフィルタ（Ｓ３１３）をステージ４とする。これらのステージ０からステージ４の各ステージが異なるマクロブロックを処理するように、制御部１０１は各処理部の動作タイミングを制御する。この動作を図１０を用いて説明する。
【０１５３】
図１０において、ＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は時間間隔を示し、１つのマクロブロックの復号にかかる処理時間を示す時間単位である。図１０では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図１０では、マクロブロックＭＢｎ−１以前及びマクロブロックＭＢｎ＋３以降のマクロブロックは記載を省略している。
【０１５４】
ＴＳｎにおいて、ステージ０は、マクロブロックＭＢｎについて処理を行う。ＴＳｎ＋１において、ステージ０はマクロブロックＭＢｎ＋１の処理を行い、ステージ１はマクロブロックＭＢｎの処理を行う。すなわち、探索画像転送部２８３は、符号化画像を構成する複数のマクロブロックのうち、復号順でｎ（ｎ：自然数）番目のマクロブロックの動きベクトルの演算又は探索が行われているのと平行して、（ｎ＋１）番目のマクロブロックに対応する探索領域の画素データをフレームメモリ１０３から探索画像メモリ１８２に転送する。
【０１５５】
ここで、図１１に一般的な符号化ストリームの構成を示す。ステージ１においては、可変長復号部１０４による可変長復号（Ｓ３０１）によって、図１１の符号化情報のうち少なくともマクロブロック種別および動きベクトル情報が復号された後に、動きベクトル演算部１８１による動きベクトル算出（Ｓ３０５）又は動きベクトル探索（Ｓ３０４）が動作している。
【０１５６】
すなわち、符号化ストリームの先頭に格納されているマクロブロック種別及び動きベクトル情報に基づいて、復号対象マクロブロックがダイレクトモードで符号化されていると判断された場合にのみ、動きベクトル演算または動きベクトル探索の処理が開始される。これにより、不要な処理を実行しなくて済むので、消費電力が少なくて済む。
【０１５７】
ＴＳｎ＋２においては、ステージ０はマクロブロックＭＢｎ＋２の処理を、ステージ１はマクロブロックＭＢｎ＋１の処理を、ステージ２はマクロブロックＭＢｎの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。５ステージに分割した場合、ステージを分割しない場合に比べて５倍の速度で動作することが可能になる。
【０１５８】
以上が、本実施の形態５における画像復号装置２００の動作についての説明である。
【０１５９】
本実施の形態５では、一連の処理をステージに分割し、ステージ０に探索画像転送を行うことにより、無駄な時間なく全ての時間で探索画像の転送を行うことができる。そのため、実施の形態２の図６と比較すると、転送しない時間がなくなり、より多くの時間を探索画像転送に使うことができ、結果として転送バンド幅を低減することができる。
【０１６０】
なお、本実施の形態５では実施の形態４に対して説明したが、実施の形態２、３いずれに対しても適用可能であり、同様の転送バンド幅削減の効果を得ることができる。
【０１６１】
また、本実施の形態５においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【０１６２】
本実施の形態５では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１６３】
また、本実施の形態５においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態５で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１６４】
また、本実施の形態５では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態５に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１６５】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１６６】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１６７】
また、本実施の形態５における処理のステージ分割は１つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
【０１６８】
（実施の形態６）
次に、本実施の形態６における画像復号装置の概要について説明する。実施の形態５では、探索画像の転送を並列に行うことにより、転送バンド幅を削減できることを示したが、本実施の形態６では、さらに、動きベクトルの探索を投機的に前もって開始することで、無駄時間をなくし、効率的に動きベクトル探索処理が行えることを示す。
【０１６９】
以上が、本実施の形態６における画像復号装置の概要についての説明である。
【０１７０】
次に、本実施の形態６の画像復号装置３００の構成について説明する。本実施の形態６の画像復号装置３００の構成を、図１２に示す。本実施の形態６における画像復号装置３００は、ダイレクトモードの場合に参照画像を用いて動きベクトルの探索を行う動きベクトル探索部（図１Ｂの動きベクトル演算部５０に対応）３８４と、ダイレクトモード以外の場合に動きベクトルを算出する動きベクトル演算部３８１と、動きベクトル演算部３８１が出力する動きベクトルと動きベクトル探索部３８４が出力する動きベクトルとを切り替えるスイッチ３８５とを備える。その他の構成要素は、実施の形態２の図４と同じであるので、同じ番号を振り、説明を省略する。
【０１７１】
以上が、本実施の形態６における画像復号装置３００の構成についての説明である。
【０１７２】
次に、図１２に示した画像復号装置３００の動作を図１３のフローチャートを用いて説明する。
【０１７３】
図１３は、１つのマクロブロックの復号動作を示しており、本実施の形態６では、動きベクトル探索部３８４が新たに加わったため、実施の形態５とは一部異なる処理フローとなっている。また、図９と同様にフローチャート中の横方向の点線は処理ステージの境界を示しており、詳しくは後で説明する。本実施の形態６においても、他の実施の形態１〜５と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０１７４】
まず、探索画像転送部２８３において、ダイレクトモード時の動きベクトルの探索に用いる探索画像をフレームメモリ１０３から探索画像メモリ１８２へ転送する（Ｓ４００）。図３２に示すように、２枚の参照画像の探索領域の位置は、探索領域が３２ｘ３２画素の場合、復号マクロブロックの周辺３２ｘ３２画素で、復号マクロブロックの左上の位置を（ｘ、ｙ）と２次元座標で表した場合、（ｘ−８、ｙ−８）となる位置を左上とする３２ｘ３２画素の領域が探索領域となる。
【０１７５】
動作の最初に、探索画像転送の開始が可能になっているのは、実施の形態２と同じく非特許文献３における動きベクトル探索は、図３２に示したように、デコードマクロブロックと同じ空間位置を中心とする３２ｘ３２画素の探索領域を探索する。したがって、可変長復号部１０４による可変長復号により、符号化ストリームに含まれる符号化情報や係数情報が復号される前に、探索領域が一意に決定され、探索領域の画素データの転送が可能になる。
【０１７６】
次に、動きベクトル探索部３８４において、動きベクトルの探索を行う（Ｓ４０１）。他の処理の最初に動きベクトル探索が可能となっているのは、先に説明した探索画像転送部２８３による転送が行えるのと同じ理由であり、探索領域の画素データが探索画像メモリ１８２にあれば、動きベクトルの探索が可能になるためである。
【０１７７】
次に、入力された符号化ストリームを可変長復号部１０４で可変長復号を行う（Ｓ４０２）。可変長復号部１０４は、マクロブロック種別、面内予測（イントラ予測）モード、動きベクトル情報、量子化パラメータなどの符号化情報及び各画素データに対応する係数情報を出力する。符号化情報は、制御部１０１に出力され、その後各処理部に入力される。
【０１７８】
次に、ダイレクトモード以外のインターマクロブロックかどうかの判定を行う（Ｓ４０３）。ダイレクトモード以外のインターマクロブロックの場合は（Ｓ４０３でＹｅｓ）、動きベクトル演算部３８１で、動きベクトル演算を行い、動きベクトルを算出する（Ｓ４０４）。Ｈ．２６４規格では、動きベクトルは、周辺の動きベクトルをｍｖＡ、ｍｖＢ、ｍｖＣとした場合、それらの中央値を予測動きベクトルとする。この予測動きベクトルと、符号化ストリームに含まれる動きベクトル情報（動きベクトルの差分値）とを加算することによって動きベクトルが求められる。
【０１７９】
次に、可変長復号部１０４が出力した係数情報に対して、逆量子化部１０５で逆量子化を行い（Ｓ４０５）、逆周波数変換部１０６で逆周波数変換を行う（Ｓ４０６）。
【０１８０】
次に、インターマクロブロックかイントラマクロブロックかを再度判定する（Ｓ４０７）。インターマクロブロックの場合は（Ｓ４０７でＹｅｓ）、動き補償部１０９でスイッチ３８５が選択する動きベクトルを用いてフレームメモリ１０３から参照領域の画素データを参照画像メモリ１９２に転送する（Ｓ４０９）。
【０１８１】
なお、動きベクトル算出部３０８において、スイッチ３８５は、ダイレクトモードの場合は、動きベクトル探索部３８４が出力する動きベクトルを選択し、ダイレクトモードでない場合は、動きベクトル演算部３８１が出力する動きベクトルを選択し、出力する（Ｓ４０８）。
【０１８２】
動き補償部１０９は、参照画像メモリ１９２に格納された参照領域の画素データを用いて動き補償を行い、予測画像を生成する（Ｓ４１０）。一方、インターマクロブロックでない場合は（Ｓ４０７でＮｏ）、面内予測部１０７で面内予測を行い、予測画像を生成する（Ｓ４１１）。
【０１８３】
得られた予測画像と、逆周波数変換部１０６が出力する差分画像とを、再構成部１１１によって加算することにより、復号画像を生成する（Ｓ４１２）。次に、得られた復号画像に対して、デブロックフィルタ部１１２において、ブロックノイズを低減するデブロックフィルタ処理を行い、フレームメモリ１０３に結果を格納する（Ｓ４１３）。
【０１８４】
ここで、図１３において、探索画像転送（Ｓ４００）をステージ０とし、動きベクトル探索（Ｓ４０１）から逆量子化（Ｓ４０５）の前までをステージ１とし、逆量子化（Ｓ４０５）および逆周波数変換（Ｓ４０６）をステージ２とし、面内予測（Ｓ４１１）、参照画像転送（Ｓ４０９）、動き補償（Ｓ４１０）および再構成処理（Ｓ４１１）をステージ３とし、デブロックフィルタ（Ｓ４１２）をステージ４とする。
【０１８５】
これらのステージ０からステージ４の各ステージが異なるマクロブロックを処理するように、制御部１０１は各処理部の動作タイミングを制御する。この動作を図１４を用いて説明する。図１４において、ＴＳ（Ｔｉｍｅ  Ｓｌｏｔ）は時間間隔を示し、１つのマクロブロックの復号にかかる処理時間を示す時間単位である。図１４では等間隔に並んでいるが、必ずしも等間隔である必要はない。また、図１４では、マクロブロックＭＢｎ−１以前及びマクロブロックＭＢｎ＋３以降のマクロブロックは記載を省略している。
【０１８６】
ＴＳｎにおいて、ステージ０は、マクロブロックＭＢｎについて処理を行う。ＴＳｎ＋１において、ステージ０はマクロブロックＭＢｎ＋１の処理を行い、ステージ１はマクロブロックＭＢｎの処理を行う。ここで、図９のステージ１では、動きベクトル演算部１８１による動きベクトル探索の処理（Ｓ３０４）は、可変長復号部１０４による可変長復号（Ｓ３０１）の途中から、すなわちマクロブロック種別や動きベクトル情報の復号後から開始しているのに対し、図１４のステージ１では、ＴＳｎ＋１の開始後すぐにマクロブロックＭＢｎに対する動きベクトル探索部３８４による動きベクトル探索（Ｓ４０１）の処理を行っている点に違いがある。すなわち、復号対象マクロブロックがダイレクトモードであるか否かを判断することなく、動きベクトル演算または動きベクトル探索の処理が開始される。
【０１８７】
ＴＳｎ＋２においては、ステージ０はマクロブロックＭＢｎ＋２の処理を、ステージ１はマクロブロックＭＢｎ＋１の処理を、ステージ２はマクロブロックＭＢｎの処理を行う。これらを同時に処理することにより、各処理ブロックが並列に動作し、動作速度を向上させることができる。５ステージに分割した場合、ステージを分割しない場合に比べて５倍の速度で動作することが可能になる。
【０１８８】
以上が、本実施の形態６における画像復号装置３００の動作についての説明である。
【０１８９】
本実施の形態６によれば、可変長復号部１０４によってマクロブロック種別などを復号する前に、動きベクトル探索部３８４を動作させる。その後、動きベクトル探索部３８４が出力する動きベクトルと、動きベクトル演算部３８１が出力する動きベクトルとをスイッチ３８５で切り替えることにより、動きベクトル探索部３８４が動作できない空き時間をなくし、効率的に演算できるようになる。
【０１９０】
なお、本実施の形態６においては、可変長符号としているが、ハフマン符号やランレングス符号、算術符号など、どのような符号化方式であっても構わない。
【０１９１】
また、本実施の形態６では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０１９２】
また、本実施の形態６においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態６で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０１９３】
また、本実施の形態６では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態６に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０１９４】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０１９５】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０１９６】
また、本実施の形態６における処理のステージ分割は１つの例であり、この分割方法に限ったものではなく、処理の特性に応じて自由に選択することが可能である。
【０１９７】
また、本実施の形態６では、常に動きベクトル探索部３８４が動きベクトルを算出するまで動作することとしたが、実際には動きベクトル探索部３８４が出力する動きベクトルを使用しないことがわかり次第、演算を停止するような制御を行ってもよい。
【０１９８】
（実施の形態７）
次に、本実施の形態７における画像復号装置の概要について説明する。実施の形態１〜６では、動きベクトル探索を行う探索画像メモリと、動き補償を行う参照画像メモリとは接続されていない。すなわち、動き補償部は、常にフレームメモリから参照画像メモリに参照領域の画素データを転送し、動き補償処理を行っていた。
【０１９９】
一方、本実施の形態７では、ダイレクトモードの場合には、動き補償処理で使用する参照画像が、探索画像メモリに既に存在することを利用して、ダイレクトモードの場合には探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
【０２００】
以上が、本実施の形態７における画像復号装置の概要についての説明である。
【０２０１】
次に、本実施の形態７の画像復号装置４００の構成について説明する。本実施の形態７の画像復号装置４００の構成を、図１５に示す。本実施の形態７における画像復号装置４００は、フレームメモリ１０３から参照領域の画素データを参照画像メモリ（第３の記憶部）１９２転送するか、探索画像メモリ１８２から参照領域の画素データを参照画像メモリ１９２に転送するかを切り替えるスイッチ（参照領域転送部）４９３を備える。その他の構成要素は、実施の形態６の図１２と同じであるので、同じ番号を振り、説明を省略する。
【０２０２】
以上が、本実施の形態７における画像復号装置４００の構成についての説明である。
【０２０３】
次に、図１５に示した画像復号装置４００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３の参照画像転送（Ｓ４０９）の動作が異なるので、図１６に示すフローチャートを用いて詳細に説明する。本実施の形態７においても、他の実施の形態と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２０４】
動き補償部４０９による参照画像転送時に、図１６に示すように、まず、復号するマクロブロックがダイレクトモードかどうかを判定する（Ｓ５０１）。ダイレクトモードであれば（Ｓ５０１でＹｅｓ）、使用する参照領域の画素データは必ず探索画像メモリ１８２に保持されている。このため、スイッチ４９３を切り替えて、参照領域の画素データを探索画像メモリ１８２から参照画像メモリ１９２に転送する（Ｓ５０２）。
【０２０５】
一方、ダイレクトモードでない場合は（Ｓ５０１でＮｏ）、これまでの実施の形態１〜７と同じく、参照領域の画素データをフレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２０６】
その他の処理はすべて実施の形態５と同じであるので、説明を省略する。
【０２０７】
このように構成することにより、ダイレクトモードが選択された場合、探索画像メモリ１８２に動き補償部４０９が使用する参照画像が存在するので、フレームメモリ１０３から参照画像メモリ１９２への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
【０２０８】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０２０９】
なお、本実施の形態７では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２１０】
また、本実施の形態７においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態７で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２１１】
また、本実施の形態７では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態７に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２１２】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２１３】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２１４】
また、本実施の形態７では、探索画像メモリ１８２から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接探索画像メモリ１８２にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
【０２１５】
（実施の形態８）
次に、本実施の形態８における画像復号装置の概要について説明する。実施の形態７では、ダイレクトモードの場合のみ、探索画像メモリから参照画像メモリに転送し、動き補償処理を行っていた。本実施の形態８では、ダイレクトモードでない場合も含めて、動きベクトルが指す参照画像が探索画像メモリ上に存在するかどうかを判定する。そして、探索画像メモリ上にある場合には、探索画像メモリから参照画像を取得する。これにより、無駄な転送を削減し、転送量を削減できることを示す。
【０２１６】
以上が、本実施の形態８における画像復号装置の概要についての説明である。
【０２１７】
次に、本実施の形態８の画像復号装置５００の構成について説明する。本実施の形態８の画像復号装置５００の構成を、図１７に示す。本実施の形態８における画像復号装置５００は、動きベクトルが指す参照画像が探索画像メモリ１８２内にあるかどうかを判定する動きベクトル判定部５１３を備える。その他の構成要素は、実施の形態７の図１５と同じであるので、同じ番号を振り、説明を省略する。
【０２１８】
以上が、本実施の形態８における画像復号装置５００の構成についての説明である。
【０２１９】
次に、図１７に示した画像復号装置５００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３における参照画像転送（Ｓ４０９）の動作が異なるので、図１８に示すフローチャートを用いて詳細に説明する。本実施の形態８においても、実施の形態１〜７と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２２０】
動き補償部４０９による参照画像転送時に、図１８に示すように、動きベクトル判定部５１３は、動きベクトル算出部３０８が算出する動きベクトルが指す参照画像が探索画像メモリ１８２上に存在するかどうかを判定する（Ｓ６０１）。探索画像メモリ１８２上に参照画像が存在すれば（Ｓ６０１でＹｅｓ）、スイッチ４９３によって、探索画像メモリ１８２から参照画像メモリ１９２に転送する（Ｓ６０２）。動きベクトル判定部５１３は、ダイレクトモードの場合は、必ず探索画像メモリ１８２上に参照画像があると判定する。
【０２２１】
一方、動きベクトル判定部５１３が、探索画像メモリ１８２上に参照画像が存在しないと判定した場合は（Ｓ６０１でＮｏ）、フレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２２２】
その他の処理はすべて実施の形態７と同じであるので、説明を省略する。
【０２２３】
以上が、本実施の形態８における画像復号装置５００の動作についての説明である。
【０２２４】
このように構成することにより、ダイレクトモードであるかどうかに関わらず、探索画像メモリ１８２に動き補償部４０９が使用する参照画像が存在する場合には、フレームメモリ１０３から参照画像メモリ１９２への転送を行わなくて良い。このため、外部メモリからの転送量を削減することが可能となる。
【０２２５】
また、転送量を削減することにより、同時に転送に要する消費電力の低減を図ることができる。
【０２２６】
なお、本実施の形態８では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２２７】
また、本実施の形態８においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態８で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２２８】
また、本実施の形態８では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態８に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２２９】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２３０】
また、探索画像メモリ１８２および参照画像メモリ１９２は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２３１】
また、本実施の形態８では、探索画像メモリ１８２から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接探索画像メモリ１８２にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
【０２３２】
（実施の形態９）
次に、本実施の形態９における画像復号装置の概要について説明する。実施の形態８では、探索画像メモリに対して、フレームメモリからの書き込み、参照画像メモリへの読み出し、動きベクトル探索部による読み出しと、アクセスが集中するために、探索画像メモリの実現が困難になる場合がある。
【０２３３】
そこで、本実施の形態９では、フレームメモリから読み出した画素データのうちの現在の探索で使用しない領域を、別途設けた共有メモリに配置することにより、現在のマクロブロックの復号に必要な探索領域の画素データのみを探索画像メモリに配置する。これにより、探索画像メモリのアクセスを削減し、探索画像メモリの構成を容易にする。
【０２３４】
以上が、本実施の形態９における画像復号装置６００の概要についての説明である。
【０２３５】
次に、本実施の形態９の画像復号装置６００の構成について説明する。本実施の形態９の画像復号装置６００の構成を、図１９に示す。本実施の形態９における画像復号装置６００は、探索画像メモリ１８２より記憶容量の大きい共有メモリ６１４を備える。その他の構成要素は、実施の形態８の図１７と同じであるので、同じ番号を振り、説明を省略する。
【０２３６】
すなわち、実施の形態９に係る画像復号装置６００は、動きベクトル探索部３８４に直接アクセスされる探索画像メモリ（探索領域記憶部）１８２と、探索画像メモリ１８２に記憶されている探索領域を含み、且つ参照画像のうちの探索領域より広い領域の画素データを記憶している共有メモリ６１４（広範領域記憶部）６１４とを備える。そして、スイッチ４９３は、参照領域の画素データを共有メモリ６１４から参照画像メモリ１９２に転送する。
【０２３７】
以上が、本実施の形態９における画像復号装置６００の構成についての説明である。
【０２３８】
次に、図１９に示した画像復号装置６００の動作は、実施の形態６のフローチャートである図１３と同じであるが、図１３における探索画像転送（Ｓ４００）および参照画像転送（Ｓ４０９）の動作が異なる。本実施の形態９においても、実施の形態１〜７と同じく、ダイレクトモードの場合以外の処理は、Ｈ．２６４規格と同様とし、ダイレクトモードの場合は、非特許文献３に示される演算方法をとる。
【０２３９】
まず、図１３における探索画像転送（Ｓ４００）の動作を図２０に示すフローチャートを用いて説明する。探索画像転送部２８３は、フレームメモリ１０３から共有メモリ６１４に探索領域の画素データを転送する（Ｓ７０１）。図２１Ａに示すように、共有メモリ６１４には、下のマクロブロックの探索時にも使える領域を全て保持する。このため、共有メモリ６１４には、対応する画像サイズの水平方向のサイズに比例した容量が必要となる。
【０２４０】
次に、探索画像転送部２８３は、共有メモリ６１４から探索画像メモリ１８２に、動きベクトル探索部３８４が使用する探索領域の画素データのみを転送する（Ｓ７０２）。図２１Ｂに示すように、探索画像メモリ１８２が保持するのは、そのマクロブロックに必要な探索領域のみとなるため、探索画像メモリ１８２の容量を小さくすることができる。
【０２４１】
次に、図１３における参照画像転送（Ｓ４０９）の動作を図２２に示すフローチャートで説明する。動き補償部４０９による参照画像転送時に、図２２に示すように、動きベクトル判定部５１３は、動きベクトル算出部３０８が算出する動きベクトルが指す参照画像（すなわち、参照領域）が共有メモリ６１４上に存在するかどうかを判定する（Ｓ８０１）。共有メモリ６１４上に参照画像が存在すれば（Ｓ８０１でＹｅｓ）、スイッチ４９３によって、共有メモリ６１４から参照画像メモリ１９２に転送する（Ｓ８０２）。動きベクトル判定部５１３は、ダイレクトモードの場合は、必ず共有メモリ６１４上に参照画像があると判定する。
【０２４２】
一方、動きベクトル判定部５１３が、共有メモリ６１４上に参照画像が存在しないと判定した場合は（Ｓ８０１でＮｏ）、フレームメモリ１０３から参照画像メモリ１９２に転送する。
【０２４３】
その他の処理はすべて実施の形態８と同じであるので、説明を省略する。
【０２４４】
以上が、本実施の形態９における画像復号装置６００の動作についての説明である。
【０２４５】
このように構成することにより、探索画像メモリ１８２は、アクセス量が大きい動きベクトル探索部３８４からの読み出しと、共有メモリ６１４からの書き込みとのみに対応すればよいため、探索画像メモリ１８２の構成が容易になる。
【０２４６】
なお、本実施の形態９では、実施の形態８に対して説明したが、実施の形態７に対しても同様に適用することが可能である。
【０２４７】
また、本実施の形態９では、ダイレクトモードという表記を使用しているが、スキップモードなど、実質的にダイレクトモードが使われる場合を含むものとする。
【０２４８】
また、本実施の形態９においては、ダイレクトモード時以外の処理はＨ．２６４規格と同様としたが、ＭＰＥＧ２規格やＭＰＥＧ４規格、ＶＣ−１規格など、どのような画像符号化規格であってもよい。また、ダイレクトモード時に複数のモードがあり、そのうちの一つが、本実施の形態９で参照している非特許文献３に示されるようなフレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば構わない。
【０２４９】
また、本実施の形態９では、非特許文献３の方法を使用しているが、フレームメモリ１０３に記憶されている参照画像の画素データを用いて動きベクトルを算出する方法であれば、どのような方法であっても構わない。また、動きベクトルの探索する範囲や、探索の精度は本実施の形態９に限定されるものではなく、自由に決定しても構わない。また、動きベクトルを探索する際に、小数精度位置を算出するために、周辺の画素が必要になる場合は、その部分も含めて探索画像メモリ１８２に保持してもよい。
【０２５０】
また、各処理部の構成は、専用ハードウェアによる回路で実現してもよいし、プロセッサ上のプログラムで実現してもよい。
【０２５１】
また、探索画像メモリ１８２、参照画像メモリ１９２および共有メモリ６１４は、メモリとしているが、データの記憶が可能な記憶素子であれば、フリップフロップなど他の構成によるものであっても構わない。さらには、プロセッサのメモリ領域の一部や、キャッシュメモリの一部を用いる構成であっても構わない。
【０２５２】
また、本実施の形態９では、共有メモリ６１４から参照画像メモリ１９２に転送するとしたが、動き補償演算部１９１が直接共有メモリ６１４にアクセスし、参照画像を読み取って動き補償の演算を行ってもよい。
【０２５３】
（実施の形態１０）
上記各実施の形態で示した画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ＩＣカード、半導体メモリ等、プログラムを記録できるものであればよい。
【０２５４】
さらにここで、上記各実施の形態で示した動画像復号方法の応用例とそれを用いたシステムを説明する。
【０２５５】
図２３は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０６〜ex１１０が設置されている。
【０２５６】
このコンテンツ供給システムex１００は、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０６〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）ex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５などの各機器が接続される。
【０２５７】
しかし、コンテンツ供給システムex１００は図２３のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex１０６〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【０２５８】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex１１６はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex１１４は、ＧＳＭ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）方式、ＣＤＭＡ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式、Ｗ−ＣＤＭＡ（Ｗｉｄｅｂａｎｄ−Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）方式、若しくはＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）方式、ＨＳＰＡ(Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ)の携帯電話、またはＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）等であり、いずれでも構わない。
【０２５９】
コンテンツ供給システムex１００では、カメラex１１３等が基地局ex１０９、電話網ex１０４を通じてストリーミングサーバex１０３に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex１１３を用いて撮影するコンテンツ（例えば、音楽ライブの映像等）に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex１０３に送信する。一方、ストリーミングサーバex１０３は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
【０２６０】
なお、撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。また、カメラex１１３に限らず、カメラex１１６で撮影した静止画像および／または動画像データを、コンピュータex１１１を介してストリーミングサーバex１０３に送信してもよい。この場合の符号化処理はカメラex１１６、コンピュータex１１１、ストリーミングサーバex１０３のいずれで行ってもよいし、互いに分担して行ってもよい。
【０２６１】
また、これら符号化・復号処理は、一般的にコンピュータex１１１や各機器が有するＬＳＩex５００において処理する。ＬＳＩex５００は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号用のソフトウェアをコンピュータex１１１等で読み取り可能な何らかの記録メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込み、そのソフトウェアを用いて符号化・復号処理を行ってもよい。さらに、携帯電話ex１１４がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex１１４が有するＬＳＩex５００で符号化処理されたデータである。
【０２６２】
また、ストリーミングサーバex１０３は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【０２６３】
以上のようにして、コンテンツ供給システムex１００では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex１００では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【０２６４】
なお、コンテンツ供給システムex１００の例に限らず、図２４に示すように、デジタル放送用システムex２００にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex２０１では映像情報のビットストリームが電波を介して通信または放送衛星ex２０２に伝送される。このビットストリームは上記各実施の形態で説明した動画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex２０２は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex２０４が受信する。受信したビットストリームを、テレビ（受信機）ex３００またはセットトップボックス（ＳＴＢ）ex２１７等の装置が復号して再生する。
【０２６５】
また、記録媒体であるＣＤやＤＶＤ等の蓄積メディアｅｘ２１４に記録したビットストリームを読み取り、復号する再生装置ｅｘ２１２にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタｅｘ２１３に表示される。
【０２６６】
また、ＤＶＤ、ＢＤ等の記録メディアex２１５に記録した符号化ビットストリームを読み取り復号する、または記録メディアex２１５に映像信号を符号化し書き込むリーダ／レコーダex２１８にも上記各実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex２１９に表示され、符号化ビットストリームが記録された記録メディアex２１５により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex２０３または衛星／地上波放送のアンテナex２０４に接続されたセットトップボックスex２１７内に動画像復号装置を実装し、これをテレビのモニタex２１９で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
【０２６７】
図２５は、上記各実施の形態で説明した画像復号方法を用いたテレビ（受信機）ex３００を示す図である。テレビex３００は、上記放送を受信するアンテナex２０４またはケーブルex２０３等を介して映像情報のビットストリームを取得、または出力するチューナex３０１と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調／復調部ex３０２と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重／分離部ex３０３を備える。また、テレビex３００は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex３０４、映像信号処理部ex３０５を有する信号処理部ex３０６と、復号した音声信号を出力するスピーカex３０７、復号した映像信号を表示するディスプレイ等の表示部ex３０８を有する出力部ex３０９とを有する。さらに、テレビex３００は、ユーザ操作の入力を受け付ける操作入力部ex３１２等を有するインタフェース部ex３１７を有する。さらに、テレビex３００は、各部を統括的に制御する制御部ex３１０、各部に電力を供給する電源回路部ex３１１を有する。インタフェース部ex３１７は、操作入力部ex３１２以外に、リーダ／レコーダex２１８等の外部機器と接続されるブリッジex３１３、ＳＤカード等の記録メディアex２１６を装着可能とするためのスロット部ex３１４、ハードディスク等の外部記録メディアと接続するためのドライバex３１５、電話網と接続するモデムex３１６等を有していてもよい。なお記録メディアex２１６は、格納する不揮発性／揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex３００の各部は同期バスを介して互いに接続されている。
【０２６８】
まず、テレビex３００がアンテナex２０４等により外部から取得したデータを復号し、再生する構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、ＣＰＵ等を有する制御部ex３１０の制御に基づいて、変調／復調部ex３０２で復調した映像データ、音声データを多重／分離部ex３０３で分離する。さらにテレビex３００は、分離した音声データを音声信号処理部ex３０４で復号し、分離した映像データを映像信号処理部ex３０５で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex３０９から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex３１８、ex３１９等に一旦これらの信号を蓄積するとよい。また、テレビex３００は、放送等からではなく、磁気／光ディスク、ＳＤカード等の記録メディアex２１５、ex２１６から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex３００が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、制御部ex３１０の制御に基づいて、音声信号処理部ex３０４で音声信号を符号化し、映像信号処理部ex３０５で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重／分離部ex３０３で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex３２０、ex３２１等に一旦これらの信号を蓄積するとよい。なお、バッファex３１８〜ex３２１は図示しているように複数備えていてもよいし、１つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調／復調部ex３０２や多重／分離部ex３０３の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【０２６９】
また、テレビex３００は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのＡＶ入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex３００は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
【０２７０】
また、リーダ／レコーダex２１８で記録メディアから符号化ビットストリームを読み出す、または書き込む場合には、上記復号処理または符号化処理はテレビex３００、リーダ／レコーダex２１８のいずれで行ってもよいし、テレビex３００とリーダ／レコーダex２１８が互いに分担して行ってもよい。
【０２７１】
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生／記録部ex４００の構成を図２６に示す。情報再生／記録部ex４００は、以下に説明する要素ex４０１〜ex４０７を備える。光ヘッドex４０１は、光ディスクである記録メディアex２１５の記録面にレーザスポットを照射して情報を書き込み、記録メディアex２１５の記録面からの反射光を検出して情報を読み込む。変調記録部ex４０２は、光ヘッドex４０１に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex４０３は、光ヘッドex４０１に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex２１５に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex４０４は、記録メディアex２１５に記録するための情報および記録メディアex２１５から再生した情報を一時的に保持する。ディスクモータex４０５は記録メディアex２１５を回転させる。サーボ制御部ex４０６は、ディスクモータex４０５の回転駆動を制御しながら光ヘッドex４０１を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex４０７は、情報再生／記録部ex４００全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex４０７が、バッファex４０４に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex４０２、再生復調部ex４０３、サーボ制御部ex４０６を協調動作させながら、光ヘッドex４０１を通して、情報の記録再生を行うことにより実現される。システム制御部ex４０７は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【０２７２】
以上では、光ヘッドex４０１はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【０２７３】
図２７に光ディスクである記録メディアex２１５の模式図を示す。記録メディアex２１５の記録面には案内溝（グルーブ）がスパイラル状に形成され、情報トラックex２３０には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex２３１の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex２３０を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex２１５は、データ記録領域ex２３３、内周領域ex２３２、外周領域ex２３４を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex２３３であり、データ記録領域ex２３３より内周または外周に配置されている内周領域ex２３２と外周領域ex２３４は、ユーザデータの記録以外の特定用途に用いられる。情報再生／記録部ex４００は、このような記録メディアex２１５のデータ記録領域ex２３３に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
【０２７４】
以上では、１層のＤＶＤ、ＢＤ等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録／再生を行う構造の光ディスクであってもよい。
【０２７５】
また、デジタル放送用システムex２００において、アンテナex２０５を有する車ex２１０で放送衛星ex２０２等からデータを受信し、車ex２１０が有するカーナビゲーションex２１１等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex２１１の構成は例えば図２５に示す構成のうち、ＧＰＳ受信部を加えた構成が考えられ、同様なことがコンピュータex１１１や携帯電話ex１１４等でも考えられる。また、上記携帯電話ex１１４等の端末は、テレビex３００と同様に、符号化器・復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という３通りの実装形式が考えられる。
【０２７６】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【０２７７】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【０２７８】
（実施の形態１１）
本実施の形態では、実施の形態１に示した画像復号装置を、典型的には半導体集積回路であるＬＳＩとして実現した形態を図２８に示す。ビットストリームバッファ１０２及びびフレームメモリ１０３をＤＲＡＭ上に実現し、その他の回路やメモリをＬＳＩ上に構成している。
【０２７９】
これらは個別に１チップ化されてもよいし、一部またはすべてを含むように１チップ化されても良い。ここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２８０】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０２８１】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
【０２８２】
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話やテレビ、デジタルビデオレコーダー、デジタルビデオカメラ、カーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管（ＣＲＴ）の他、液晶やＰＤＰ（プラズマディスプレイパネル）、有機ＥＬなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
【０２８３】
また、本実施の形態は、システムＬＳＩとＤＲＡＭ(Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)の構成を示したが、ｅＤＲＡＭ（ｅｍｂｅｄｅｄ  ＤＲＡＭ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やハードディスクなど他の記憶装置で構成してもかまわない。
【０２８４】
（実施の形態１２）
上記各実施の形態で示した画像復号装置および方法は、典型的には集積回路であるＬＳＩで実現される。一例として、図２９に１チップ化されたＬＳＩex５００の構成を示す。ＬＳＩex５００は、以下に説明する要素ex５０２〜ex５０９を備え、各要素はバスex５１０を介して接続している。電源回路部ex５０５は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【０２８５】
また、例えば復号処理を行う場合には、ＬＳＩex５００は、ＣＰＵex５０２の制御に基づいて、ストリームＩ／Ｏex５０６によって基地局ex１０７から得られた符号化データ、または記録メディアex２１５から読み出して得た符号化データを一旦メモリex５１１等に蓄積する。ＣＰＵex５０２の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex５０７に送られ、信号処理部ex５０７において音声データの復号および／または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex５１１等に蓄積するとよい。復号された出力信号はメモリex５１１等を適宜介しながら、ＡＶＩ／Ｏex５０９からモニタｅｘ２１９等に出力される。メモリex５１１にアクセスする際にはメモリコントローラex５０３を介する構成である。
【０２８６】
なお、上記では、メモリex５１１がＬＳＩex５００の外部の構成として説明したが、ＬＳＩex５００の内部に含まれる構成であってもよい。また、ＬＳＩex５００は１チップ化されてもよいし、複数チップ化されてもよい。
【０２８７】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２８８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０２８９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０２９０】
本発明の画像復号装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
【符号の説明】
【０２９１】
２０        第１の記憶部
３０        第２の記憶部
４０        探索領域転送部
５０        動きベクトル演算部
６０        復号部
１００、２００、３００、４００、５００、６００  画像復号装置
１０１、７０１      制御部
１０２、７０２      ビットストリームバッファ
１０３、７０３      フレームメモリ
１０４、７０４      可変長復号部
１０５、７０５      逆量子化部
１０６、７０６      逆周波数変換部
１０７、７０７      面内予測部
１０８、２０８、３０８、７０８      動きベクトル算出部
１０９、４０９、７０９      動き補償部
１１０、３８５、４９３      スイッチ
１１１、７１１      再構成部
１１２、７１２      デブロックフィルタ部
１８１、３８１      動きベクトル演算部
１８２      探索画像メモリ
１９１      動き補償演算部
１９２      参照画像メモリ
２８３      探索画像転送部
３８４      動きベクトル探索部
５１３      動きベクトル判定部
６１４      共有メモリ
ex１００      コンテンツ供給システム
ex１０１      インターネット
ex１０２      インターネットサービスプロバイダ
ex１０３      ストリーミングサーバ
ex１０４      電話網
ex１０６      基地局
ex１０７      基地局
ex１０８      基地局
ex１０９      基地局
ex１１０      基地局
ex１１１      コンピュータ
ex１１２      ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）
ex１１３      カメラ
ex１１４      携帯電話
ex１１５      ゲーム機
ex１１６      カメラ
ex１１７      マイク
ex２００      デジタル放送用システム
ex２０１      放送局
ex２０２      放送衛星
ex２０３      ケーブル
ex２０４      アンテナ
ex２０５      アンテナ
ex２１０      車
ex２１１      カーナビゲーション
ex２１２      再生装置
ex２１３      モニタ
ex２１５      記録メディア
ex２１６      記録メディア
ex２１７      セットトップボックス（ＳＴＢ）
ex２１８      リーダ／レコーダ
ex２１９      モニタ
ex２２０      リモートコントローラ
ex２３０      情報トラック
ex２３１      記録ブロック
ex２３２      内周領域
ex２３３      データ記録領域
ex２３４      外周領域
ex３００      テレビ（受信機）
ex３０１      チューナ
ex３０２      変調／復調部
ex３０３      多重／分離部
ex３０４      音声信号処理部
ex３０５      映像信号処理部
ex３０６      信号処理部
ex３０７      スピーカ
ex３０８      表示部
ex３０９      出力部
ex３１０      制御部
ex３１１      電源回路部
ex３１２      操作入力部
ex３１３      ブリッジ
ex３１４      スロット部
ex３１５      ドライバ
ex３１６      モデム
ex３１７      インタフェース部
ex３１８      バッファ
ex３１９      バッファ
ex４００      情報再生／記録部
ex４０１      光ヘッド
ex４０２      変調記録部
ex４０３      再生復調部
ex４０４      バッファ
ex４０５      ディスクモータ
ex４０６      サーボ制御部
ex４０７      システム制御部
ex５００      ＬＳＩ
ex５０２      ＣＰＵ
ex５０３      メモリコントローラ
ex５０５      電源回路部
ex５０６      ストリームＩ／Ｏ
ex５０７      信号処理部
ex５０９      ＡＶ  Ｉ／Ｏ
ex５１０      バス
ex５１１      メモリ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化画像を構成するブロックを復号する復号装置であって、
該復号装置によって既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、
前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部と、
前記動き補償演算部で生成された予測画像を用いて、前記ブロックを復号する復号部とを備える
復号装置。
【請求項２】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１のブロックである場合にのみ、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項３】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記探索領域転送部は、復号されるブロックが前記第１及び第２のブロックのいずれであるかを判断する前に、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を開始し、
前記復号部は、前記動きベクトル演算部で算出された前記動きベクトルを用いて前記第１のブロックを復号し、付加されている前記動きベクトルを用いて前記第２のブロックを復号する
請求項１に記載の復号装置。
【請求項４】
前記探索領域転送部は、復号されるブロックが前記第２のブロックであった場合、前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する処理を中止する
請求項３に記載の復号装置。
【請求項５】
前記第２の記憶部は、前記探索領域転送部によって転送された過去の画素データの少なくとも一部を継続して記憶し、
前記探索領域転送部は、前記探索領域の画素データのうちの前記第２の記憶部に記憶されていない画素データのみを、前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜４のいずれか１項に記載の復号装置。
【請求項６】
前記探索領域転送部は、過去の画素のデータのうち、後続の前記ブロックの前記動きベクトルを算出するのに使用されない画素データを、前記第２の記憶部から削除する
請求項５に記載の復号装置。
【請求項７】
該復号装置は、前記符号化画像を構成する複数の前記ブロックを、前記符号化画像の左上から右下に向かって順次復号する場合において、
前記探索領域転送部は、前記探索領域の右下隅に相当する部分の画素データを前記第１の記憶部から前記第２の記憶部に転送し、前記探索領域の左上端に相当する部分より前に転送された画素データを前記第２の記憶部から削除する
請求項６に記載の復号装置。
【請求項８】
前記探索領域転送部は、前記符号化画像を構成する複数の前記ブロックのうちのｎ（ｎ：自然数）番目の前記ブロックの動きベクトルが前記動きベクトル演算部で算出されているのと平行して、（ｎ＋１）番目の前記ブロックに対応する前記探索領域の画素データを前記第１の記憶部から前記第２の記憶部に転送する
請求項１〜７のいずれか１項に記載の復号装置。
【請求項９】
前記ブロックは、復号に用いられる動きベクトルを示す情報を付加せずに符号化された第１のブロック、又は動きベクトルを示す情報を付加して符号化された第２のブロックであり、
前記参照領域転送部は、前記第１のブロックに対応する前記参照領域の画素データを前記第２の記憶部から前記第３の記憶部に転送し、前記第２のブロックに対応する前記参照画像の画素データを前記第１の記憶部から前記第３の記憶部に転送する
請求項１に記載の復号装置。
【請求項１０】
前記第２の記憶部は、前記動きベクトル演算部に直接アクセスされる探索領域記憶部と、前記探索領域記憶部に記憶されている前記探索領域を含み、且つ前記参照画像のうちの前記探索領域より広い領域の画素データを記憶している広範領域記憶部とを備え、
前記参照領域転送部は、前記参照領域の画素データを前記広範領域記憶部から前記第３の記憶部に転送する
請求項９に記載の復号装置。
【請求項１１】
前記探索領域は、前記ブロックを含む前記符号化画像より再生順で前の参照画像に含まれる第１の探索領域と、再生順で後の参照画像に含まれる第２の探索領域とを含み、
前記動きベクトル演算部は、前記第１及び第２の探索領域それぞれの探索範囲の画素データを前記第２の記憶部から読み出して絶対値差分和を算出する処理を、前記第１及び第２の探索領域内で前記探索範囲の位置をずらしながら繰り返し実行し、算出された絶対値差分和が最も小さい前記探索範囲の位置に基づいて前記動きベクトルを算出する
請求項１〜１０のいずれか１項に記載の復号装置。
【請求項１２】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、第３の記憶部とを備える復号装置が、符号化画像を構成するブロックを復号する復号方法であって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算ステップと、
前記参照画像の一部の領域であって、前記動き補償演算ステップで参照される参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送ステップと、
前記動き補償演算ステップで生成された予測画像を用いて、前記ブロックを復号する復号ステップとを含む
復号方法。
【請求項１３】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部と、前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、第３の記憶部とを備える復号装置に、符号化画像を構成するブロックを復号させるプログラムであって、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送ステップと、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算ステップと、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算ステップと、
前記参照画像の一部の領域であって、前記動き補償演算ステップで参照される参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送ステップと、
前記動き補償演算ステップで生成された予測画像を用いて、前記ブロックを復号する復号ステップとを、復号装置に実行させる
プログラム。
【請求項１４】
既に復号された画像であって、前記ブロックを復号する際に参照される参照画像の画素データを記憶する第１の記憶部を備える復号装置に搭載され、符号化画像を構成するブロックを復号する集積回路であって、
前記第１の記憶部より記憶容量が小さく、且つ前記第１の記憶部よりデータの読み出し速度が速い第２の記憶部と、
前記参照画像の一部の領域であって、前記ブロックの動きベクトルを算出するのに必要な探索領域の画素データを、前記第１の記憶部から前記第２の記憶部に転送する探索領域転送部と、
前記第２の記憶部から前記探索領域の画素データを繰り返し読み出して所定の演算を行うことによって、前記ブロックの動きベクトルを算出する動きベクトル演算部と、
前記動きベクトル及び前記参照画像の画素データを用いて前記ブロックの予測画像を生成する動き補償演算部と、
前記参照画像の一部の領域であって、前記動き補償演算部によって参照される参照領域の画素データを記憶する第３の記憶部と、
前記参照領域の画素データを、前記第１及び第２の記憶部の一方から前記第３の記憶部に転送する参照領域転送部と、
前記動き補償演算部で生成された予測画像を用いて、前記マクロブロックを復号する復号部とを備える
集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１Ａ】
2011048764.tif 000044
【図１Ｂ】
2011048764.tif 000045
【図２】
2011048764.tif 000046
【図３Ａ】
2011048764.tif 000047
【図３Ｂ】
2011048764.tif 000048
【図３Ｃ】
2011048764.tif 000049
【図４】
2011048764.tif 000050
【図５】
2011048764.tif 000051
【図６】
2011048764.tif 000052
【図７Ａ】
2011048764.tif 000053
【図７Ｂ】
2011048764.tif 000054
【図７Ｃ】
2011048764.tif 000055
【図８Ａ】
2011048764.tif 000056
【図８Ｂ】
2011048764.tif 000057
【図８Ｃ】
2011048764.tif 000058
【図８Ｄ】
2011048764.tif 000059
【図９】
2011048764.tif 000060
【図１０】
2011048764.tif 000061
【図１１】
2011048764.tif 000062
【図１２】
2011048764.tif 000063
【図１３】
2011048764.tif 000064
【図１４】
2011048764.tif 000065
【図１５】
2011048764.tif 000066
【図１６】
2011048764.tif 000067
【図１７】
2011048764.tif 000068
【図１８】
2011048764.tif 000069
【図１９】
2011048764.tif 000070
【図２０】
2011048764.tif 000071
【図２１Ａ】
2011048764.tif 000072
【図２１Ｂ】
2011048764.tif 000073
【図２２】
2011048764.tif 000074
【図２３】
2011048764.tif 000075
【図２４】
2011048764.tif 000076
【図２５】
2011048764.tif 000077
【図２６】
2011048764.tif 000078
【図２７】
2011048764.tif 000079
【図２８】
2011048764.tif 000080
【図２９】
2011048764.tif 000081
【図３０】
2011048764.tif 000082
【図３１】
2011048764.tif 000083
【図３２】
2011048764.tif 000084
【国際調査報告】
2011048764.tif 000085
2011048764.tif 000086
2011048764.tif 000087
2011048764.tif 000088