(57)【要約】  動き補償装置（１１７０）は、非矩形状の対象ブロックに対して、フレームメモリ（１１４０）に記憶されている参照画像を用いて動き補償を行うもので、参照画像のうちの一部を記憶するための参照ブロックメモリ（１１７１）と、動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを参照画像の中から特定し、特定した画素ブロックの画素データをフレームメモリ（１１４０）から参照ブロックメモリ（１１７１）に転送するフレームメモリ転送制御部（１１７２）と、参照ブロックメモリ（１１７１）に記憶されている画素ブロックに含まれる参照ブロックを用いて、対象ブロックの予測ブロックを生成する動き補償処理部（１１７４）とを備える。
2012120582.tif 000002
【特許請求の範囲】
【請求項１】
動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う動き補償装置であって、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える
動き補償装置。
【請求項２】
該動き補償装置は、さらに、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備え、
前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する
請求項１に記載の動き補償装置。
【請求項３】
前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項１又は２に記載の動き補償装置。
【請求項４】
前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む１以上の画素ブロックを特定し、特定した前記１以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項１又は２に記載の動き補償装置。
【請求項５】
該動き補償装置は、さらに、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備え、
前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送する
請求項１〜４のいずれか１項に記載の動き補償装置。
【請求項６】
符号化ストリームを復号して復号動画像を生成する動画像復号装置であって、
参照画像を記憶するフレームメモリと、
請求項１〜５のいずれか１項に記載の動き補償装置と、
前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償装置によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成する復号部とを備え、
前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像復号装置。
【請求項７】
動画像を符号化して符号化ストリームを生成する動画像符号化装置であって、
参照画像を記憶するフレームメモリと、
請求項１〜５のいずれか１項に記載の動き補償装置と、
前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償装置によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成する符号化部とを備え、
前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像符号化装置。
【請求項８】
参照画像のうちの一部を記憶するための参照ブロックメモリを備える動き補償装置が、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う動き補償方法であって、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含む
動き補償方法。
【請求項９】
参照画像のうちの一部を記憶するための参照ブロックメモリを備えるコンピュータに、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行なわせるプログラムであって、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを、コンピュータに実行させる
プログラム。
【請求項１０】
動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う集積回路であって、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える
集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像データに対する動画像処理装置に関し、特に非矩形の動き補償を用いる動き補償装置に関する。
【背景技術】
【０００２】
近年、広く利用されている動画像圧縮技術の標準規格としては、例えば、ＩＴＵ−Ｔ（国際電気通信連合  電気通信標準化部門）のＨ．２６１およびＨ．２６３、ＩＳＯ／ＩＥＣ（国際標準化機構  国際電気標準会議）のＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ）−１、ＭＰＥＧ−２およびＭＰＥＧ−４など、また、ＩＴＵ−ＴとＭＰＥＧの合同であるＪＶＴ（Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ）のＨ．２６４／ＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）などがある。更に、次世代の動画像圧縮技術がＩＴＵ−ＴやＩＳＯ／ＩＥＣなどで検討されている。【０００３】
一般に、動画像圧縮技術の重要な要素に、動画像を構成する連続した複数の画像の持つ時間方向の冗長性を削減することで情報量の圧縮を行う動き補償画面間予測がある。動き補償画面間予測とは、符号化対象画像内の画素ブロックが、符号化対象画像の前方または後方に位置する参照画像内のどの方向にどの程度動いたかを検出して、予測画像（以下、「動き補償ブロック」、または「インター予測ブロック」ともいう）の作成を行い、得られた予測画像と符号化対象画像との差分値に対して符号化を行う手法である。【０００４】
符号化対象画像内の動き補償ブロックが、符号化対象画像の前方または後方に位置する参照画像内のどの方向にどの程度動いたかを示す情報を動きベクトルという。参照される画像を参照画像と呼ぶ。動き補償ブロックは独立した動きベクトルと参照画像を持つことが可能である。動き補償に必要となる画素ブロックを参照ブロックと呼ぶ。【０００５】
Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣの動き補償画面間予測では、１６×１６、１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４の７通りの矩形動き補償ブロックが用いられる。【０００６】
一方、ＩＴＵ−ＴおよびＩＳＯ／ＩＥＣなどにおいて、次世代の動画像圧縮技術に提案されている動き補償画面間予測に、より良い符号化効率を実現するため、動き補償ブロックの形やサイズを画像の特性などに応じて適応的に変化させる動き補償技術（以下、「多角形動き補償」、または、「非矩形動き補償」ともいう）がある（非特許文献１、非特許文献２、特許文献１、および、特許文献２）。【０００７】
図４２は、特許文献２に記載されたマクロブロック分割の例を示すものである。図４２に記載されたように、マクロブロックをジオメトリカルに分割し、それぞれのインター予測ブロックを復号する。また、図４３は、特許文献２に記載されたジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法のフロー図である。【０００８】
図４３を参照すると、ジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法が概ね方法１００によって示されている。【０００９】
方法１００は、制御を機能ブロック１１４に受け渡す開始ブロック１１２を含む。機能ブロック１１４は、現在のモードタイプがジオメトリック・モードタイプであるかどうかを判定する。現在のモードタイプがジオメトリック・モードタイプである場合には、制御が機能ブロック１１６に受け渡される。現在のモードタイプがジオメトリック・モードタイプでない場合には、制御が終了ブロック１２０に受け渡される。【００１０】
機能ブロック１１６は、ジオメトリック・パーティション・パラメータを復号し（例えば、予測のために近傍のジオメトリック・データが利用可能である場合には、これを使用し、適切に符号化テーブルを適応させる）、制御を機能ブロック１１８に受け渡す。機能ブロック１１８は、パーティション・インター予測を復号し（例えば、予測のために近傍の復号されたデータが利用可能である場合には、これを使用し、適切に符号化テーブルを適応させる）、制御を終了ブロック１２０に受け渡す。【００１１】
また、従来の動き補償装置としては、参照ブロック読み出し時のメモリアクセス性能を向上させるためにキャッシュメモリを用いるものがあった（例えば、特許文献３参照）。図４４は、特許文献３に記載された従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。図４５は、特許文献３に記載された従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっている場合のプリロード指定アドレス設定法の説明図である。【００１２】
図４４は、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。同図を図４５の参照マクロブロックがキャッシュライン境界をまたがっている場合のアドレスの説明図を用いて説明する。まず、図４５において参照マクロブロック内の上端行の開始アドレスはＡ番地であり、その行の後尾アドレスはＢ番地であるとする。キャッシュライン境界はＣ番地にあり、このＣ番地がＡ番地とＢ番地との間にあることから、参照マクロブロックがキャッシュライン境界をまたがっている、すなわち参照マクロブロックの行がキャッシュライン境界を含んでいるものと判定される。【００１３】
図４４のステップＳ２１で参照キャッシュライン境界マクロブロックの行の先頭アドレスが算出され、そのアドレスがＡ番地とされ、ステップＳ２２で参照マクロブロックの行の後尾アドレスが算出され、そのアドレスがＢ番地とされる。そしてステップＳ２３でＡ番地とＢ番地の間にキャッシュライン境界が存在するか否かが判定され、存在する時にはその番地がＣ番地として求められ、ステップＳ２４でキャッシュライン境界をまたがっていると判定され、ステップＳ２５でプリロード指定アドレス、すなわちプリロード時における先頭アドレスが従来例におけるＡ番地から変更されてＣ番地とされる。ステップＳ２３でＡ番地と番地の間にキャッシュライン境界が存在しない時には、ステップＳ２６でキャッシュライン境界をまたがっていないと判定され、ステップＳ２７でプリロード指定アドレスが行の先頭アドレス、すなわちＡ番地とされる。【００１４】
図４５で説明したように、参照マクロブロックがキャッシュライン境界をまたがっている場合には、プリロード先頭アドレスをＣ番地とすることによってその行のその前の領域、すなわち図４５のＡ領域が今回のマクロブロックに対する復号処理ではプリロードされないことになる。従ってこのＡ領域に対応してキャッシュミスが発生する確率が存在するが、ラスター順でマクロブロックの走査方法をとること、すなわち行の左端のマクロブロックから復号を行うことによって、動きベクトルを考慮しても参照フレーム画像のマクロブロックの中で右端に近いマクロブロックよりも左端に近いマクロブロックの方がプリロード済みである確率が高い。【００１５】
従って、図４５においてもＡ領域は参照マクロブロックの左側にあることからこのＡ領域のデータはすでにキャッシュメモリにプリロード済みとなっている確率が高い。特許文献３ではこのような動画像データ処理の特性に対応してデータのプリロード命令を発行することによって、キャッシュミスの発生が低減されることが期待される。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】国際公開第２００８／０１６６０５号
【特許文献２】国際公開第２００８／０１６６０９号
【特許文献３】特許第４１８０５４７号公報
【非特許文献】
【００１７】
【非特許文献１】Oscar Divorra Escoda et al著「GEOMETRY-ADAPTIVE BLOCK PARTITIONING FOR VIDEO CODING」 In Proc. Of International Conference on Acoustics, Speech, and Signal Processing(ICASSP 2007), April 2007
【非特許文献２】Oscar Divorra et al著「Geometry-adaptive Block Partioning」  ＩＴＵ−Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ  Ｓｅｃｔｏｒ  ＳＴＵＤＹ  ＧＲＯＵＰ  １６  Ｑｕｅｓｔｉｏｎ  ６  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）  ｄｏｃｕｍｅｎｔ  VCEG-AF10、  April 2007
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、特許文献２に記載されている従来の構成では、次世代の画像圧縮技術に提案されている動き補償画面間予測で使用する参照ブロックを格納したメモリのメモリアクセスについての記載はなく、動き補償画面間予測を用いた場合の参照ブロックを格納したメモリのメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間の低減が難しいという課題を有していた。【００１９】
また、特許文献３に記載されている従来の構成では、動き補償に必要な参照ブロック読み出し時のメモリアクセス性能を向上させるために、参照ブロックの左端画素の座標と右端画素の座標の２画素の間にキャッシュライン境界が存在するかどうかを判定してプリロードアドレスを決定するという方法をとっている。このため、多角形動き補償を行う場合には、参照ブロックが多角形であるため、水平方向に２つ以上の画素で構成されていない場合があり、その場合は従来の構成ではプリロードアドレスが計算できないという課題と、参照ブロックが水平方向に２つ以上の画素で構成されているとしても参照ブロックの左端画素の座標と右端画素の座標を参照ブロックに１度計算するだけではキャッシュラインを超えるかどうか判定できないという課題を有していた。【００２０】
本発明は、上記従来の課題を解決するもので、多角形（非矩形）の対象ブロックに対して動き補償を行う場合のメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間を低減することができる動き補償装置を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の一形態に係る動き補償装置は、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う。具体的には、前記参照画像のうちの一部を記憶するための参照ブロックメモリと、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える。【００２２】
上記構成によれば、フレームメモリから画素データを転送する処理時間を従来よりも短縮することができる。より具体的には、矩形の画素ブロックを特定する処理に要する時間は、非矩形の参照ブロックを特定する処理に要する時間よりも遥かに短い。一方、矩形の画素ブロックは非矩形の参照ブロックより大きな領域であるので、矩形の画素ブロックをフレームメモリから参照ブロックメモリに転送するのに要する時間は、非矩形の参照ブロックを転送するのに要する時間より僅かに長い。これらを総合すると、矩形の画素ブロックを特定する処理を開始してから転送を完了するまでの処理時間は、非矩形の参照ブロックの場合と比較して大幅に短縮することができる。【００２３】
さらに、該動き補償装置は、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備えてもよい。そして、前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成してもよい。【００２４】
一例として、前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送してもよい。【００２５】
他の例として、前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む１以上の画素ブロックを特定し、特定した前記１以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送してもよい。【００２６】
このように、フレームメモリから参照ブロックメモリに転送される矩形状の画素ブロックは、非矩形状の参照ブロックを含む単一の画素ブロックであってもよいし、非矩形状の参照ブロックを含む複数の画素ブロックの集合であってもよい。【００２７】
さらに、該動き補償装置は、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備えてもよい。そして、前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送してもよい。【００２８】
これにより、既に参照ブロックメモリに記憶されている画素データの転送を省略することができるので、フレームメモリから画素データを転送する処理時間をさらに短縮することができる。【００２９】
本発明の一形態に係る動画像復号装置は、符号化ストリームを復号して復号動画像を生成する。具体的には、参照画像を記憶するフレームメモリと、上記に記載の動き補償装置と、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償装置によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成する復号部とを備える。そして、前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する。【００３０】
本発明の一形態に係る動画像符号化装置は、動画像を符号化して符号化ストリームを生成する。具体的には、参照画像を記憶するフレームメモリと、上記に記載の動き補償装置と、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償装置によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成する符号化部とを備える。そして、前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する。【００３１】
本発明の一形態に係る動き補償方法は、参照画像のうちの一部を記憶するための参照ブロックメモリを備える動き補償装置が、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う方法である。具体的には、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含む。【００３２】
本発明の一形態に係るプログラムは、参照画像のうちの一部を記憶するための参照ブロックメモリを備えるコンピュータに、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行なわせる。具体的には、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを、コンピュータに実行させる。【００３３】
本発明の一形態に係る集積回路は、動画像に含まれる非矩形状の対象ブロックに対して、フレームメモリに記憶されている参照画像を用いて動き補償を行う。具体的には、前記参照画像のうちの一部を記憶するための参照ブロックメモリと、前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備える。
【発明の効果】
【００３４】
本発明によれば、多角形（非矩形）動き補償を行う場合のメモリ帯域や動きベクトルなどのヘッダ情報を復号してから参照ブロックを読み出すまでの時間を低減することができる動き補償装置を提供することができる。
【図面の簡単な説明】
【００３５】
【図１】図１は、実施の形態１に係る画像符号化装置のブロック図である。
【図２Ａ】図２Ａは、動き補償部のブロック図の一例である。
【図２Ｂ】図２Ｂは、動き補償部の処理を中心とした画像符号化装置の動作を示すフローチャートの一例である。
【図３Ａ】図３Ａは、動き補償部のブロック図の他の例である。
【図３Ｂ】図３Ｂは、動き補償部の処理を中心とした画像符号化装置の動作を示すフローチャートの他の例である。
【図４】図４は、実施の形態１に係る画像復号装置のブロック図である。
【図５Ａ】図５Ａは、動き補償部のブロック図の一例である。
【図５Ｂ】図５Ｂは、動き補償部の処理を中心とした画像復号装置の動作を示すフローチャートの一例である。
【図６Ａ】図６Ａは、動き補償部のブロック図の他の例である。
【図６Ｂ】図６Ｂは、動き補償部の処理を中心とした画像復号装置の動作を示すフローチャートの他の例である。
【図７】図７は、画素ブロックとパーティションとの関係の例を示す図である。
【図８】図８は、画素ブロックと共に転送される周辺の画素を示す図である。
【図９】図９は、参照ブロック内座標の例を示す図である。
【図１０】図１０は、参照画面内座標の例を示す図である。
【図１１】図１１は、参照画像の座標と、参照ブロックメモリのバンクとの関係例を示す図である。
【図１２】図１２は、参照ブロックメモリ状態管理部に保持されている情報の一例を示す図である。
【図１３】図１３は、画素ブロックのアドレス算出処理の全体の流れを示すフローチャートである。
【図１４】図１４は、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図１５】図１５は、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図１６】図１６は、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図１７】図１７は、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図１８】図１８は、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図１９】図１９は、θ=０°,９０°,１８０°,２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【図２０】図２０は、画素ブロック内の有効画素抽出処理の全体の流れを示すフローチャートである。
【図２１】図２１は、画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２２】図２２は、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２３】図２３は、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２４】図２４は、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２５】図２５は、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２６】図２６は、θ=０°,９０°,１８０°,２７０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【図２７】図２７は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図２８】図２８は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図２９】図２９は、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図３０】図３０は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図３１】図３１は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図３２】図３２は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【図３３】図３３は、実施の形態２に係る画素ブロックのアドレス算出処理を説明するための図である。
【図３４】図３４は、実施の形態２に係る矩形状の画素ブロックの左上座標を導出する処理の流れを示すフローチャートである。
【図３５】図３５は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成図である。
【図３６】図３６は、デジタル放送用システムの全体構成図である。
【図３７】図３７は、テレビの構成例を示すブロック図である。
【図３８】図３８は、光ディスクである記録メディアに情報の読み書きを行う情報再生／記録部の構成例を示すブロック図である。
【図３９】図３９は、光ディスクである記録メディアの構造例を示す図である。
【図４０】図４０は、各実施の形態の動画像復号装置を実現する集積回路の構成例を示す構成図である。
【図４１】図４１は、各実施の形態の動画像復号装置を実現する集積回路の構成例を示す構成図である。
【図４２】図４２は、従来のマクロブロック分割の例を示す図である。
【図４３】図４３は、従来のジオメトリカルに分割されたインター予測ブロックを復号する例示的な方法のフロー図である。
【図４４】図４４は、従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっているかの判定と、プリロード指定アドレスを変更する処理の詳細フローチャートである。
【図４５】図４５は、従来の動き補償装置において、参照マクロブロックがキャッシュライン境界をまたがっている場合のプリロード指定アドレス設定法の説明図である。
【発明を実施するための形態】
【００３６】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００３７】
（実施の形態１）
図１は、本実施の形態における画像符号化装置の構成を示すブロック図である。画像符号化装置１０００は、符号化処理部１１００と、符号化処理部１１００の動作を制御する符号化制御部１２００とを備える。
【００３８】
符号化処理部１１００は、動画像をブロックごとに符号化することによって符号化ストリームを生成する。このような符号化処理部１１００は、減算器１１１０、直交変換部１１２１、量子化部１１２２、エントロピー符号化部１１２３、逆量子化部１１２４、逆直交変換部１１２５、加算器１１２６、デブロッキングフィルタ１１３０、フレームメモリ１１４０、面内予測部１１５０、動き補償部１１７０、動き検出部１１６０、及びスイッチ１１８０を備える。
【００３９】
減算器１１１０は、動画像を取得するとともに、スイッチ１１８０から予測画像（予測ブロック）を取得する。そして、減算器１１１０は、その動画像に含まれる符号化対象ブロック（対象ブロック）から予測画像を減算することによって残差画像（残差ブロック）を生成する。
【００４０】
直交変換部１１２１は、減算器１１１０によって生成された残差画像に対して、例えば離散コサイン変換などの直交変換を行うことによって、その残差画像を複数の周波数係数からなる係数ブロックに変換する。量子化部１１２２は、その係数ブロックに含まれる各周波数係数を量子化することによって、量子化された係数ブロックを生成する。
【００４１】
エントロピー符号化部１１２３は、量子化部１１２２によって量子化された係数ブロックと、動き検出部１１６０によって検出された動きベクトル、ブロックパーティション情報（後述）、及び参照画像特定情報等をエントロピー符号化（可変長符号化）することによって符号化ストリームを生成する。
【００４２】
逆量子化部１１２４は、量子化部１１２２によって量子化された係数ブロックを逆量子化する。逆直交変換部１１２５は、その逆量子化された係数ブロックに含まれる各周波数係数に対して逆離散コサイン変換などの逆直交変換を行うことによって、復号残差画像（復号残差ブロック）を生成する。
【００４３】
加算器１１２６は、スイッチ１１８０から取得した予測画像と、逆直交変換部１１２５によって生成された復号残差画像とを加算することによって、局所復号画像（復号ブロック）を生成する。
【００４４】
なお、本実施の形態においては、上記の直交変換部１１２１、量子化部１１２２、エントロピー符号化部１１２３、逆量子化部１１２４、逆直交変換部１１２５、及び加算器１１２６で、符号化部１１２０を構成しているが、これに限定されない。例えば、動き検出部１１６０又は符号化制御部１２００等をさらに加えてもよい。
【００４５】
デブロッキングフィルタ１１３０は、加算器１１２６によって生成された局所復号画像のブロック歪みを除去し、その局所復号画像をフレームメモリ１１４０に格納する。
【００４６】
面内予測部１１５０は、加算器１１２６によって生成された局所復号画像を用いて対象ブロックに対して面内予測を行うことによって予測画像（予測ブロック）を生成する。
【００４７】
動き検出部１１６０は、動画像に含まれる対象ブロックに対して動きベクトルを検出し、その検出された動きベクトル、ブロックパーティション情報、及び参照画像特定情報を動き補償部１１７０とエントロピー符号化部１１２３とに出力する。なお、ブロックパーティション情報とは、対象ブロック（参照ブロック）の形状を示す情報である。また、参照画像特定情報とは、フレームメモリ１１４０に記憶されている複数の参照画像のうちの１つを特定するための情報である。
【００４８】
ブロックパーティション情報は、例えば、図７に示されるように、参照ブロックの水平サイズH_SIZEと、参照ブロックの垂直サイズV_SIZEと、従来例（特許文献１、特許文献２、非特許文献１、非特許文献２）に記載されているρ及びθとを含む。
【００４９】
ρ及びθは、参照ブロックのパーティションを決めるパラメータであり、ρ及びθで定義される線分と直交する直線をパーティション分割境界と定義する。ρは、画素ブロックの中心からパーティション分割境界に直交する線分の長さを表す。θは、画素ブロックの中心から水平方向右側を０°とし、反時計回りを正としたときの線分の角度を表す。
【００５０】
また、パーティション分割境界の左側の領域をパーティション０、パーティション分割境界の右側の領域をパーティション１と定義する。言い換えれば、パーティション分割境界で区画される２つのパーティションのうち、画素ブロックの左上の画素を含むパーティションをパーティション０、もう一方をパーティション１と定義する。
【００５１】
動き補償部１１７０は、フレームメモリ１１４０に格納されている参照画像と、動き検出部１１６０によって検出された動きベクトルとを用いることによって、対象ブロックに対して動き補償を行う。動き補償部１１７０は、このような動き補償によって対象ブロックに対する予測画像（予測ブロック）を生成する。
【００５２】
なお、本発明に係る動き補償部１１７０は、矩形状の対象ブロックに対する動き補償と、非矩形状の対象ブロックに対する動き補償とを行なうことができる。また、本明細書中の「矩形状」には、正方形と長方形とが該当する。一方、本明細書中の「非矩形状」には、矩形状に該当しない形状、具体的には、台形、平行四辺形、三角形及び五角形等の四角形以外の多角形、円形、楕円形等が該当する。
【００５３】
スイッチ１１８０は、対象ブロックが面内予測符号化される場合には、面内予測部１１５０によって生成された予測画像を減算器１１１０および加算器１１２６に出力する。一方、スイッチ１１８０は、対象ブロックが画面間予測符号化される場合には、動き補償部１１７０によって生成された予測画像を減算器１１１０および加算器１１２６に出力する。
【００５４】
次に、図２Ａを参照して、動き補償部（動き補償装置）１１７０の構成の一例を説明する。図２Ａは、動き補償部１１７０のブロック図の一例である。図２Ａに示される動き補償部１１７０は、参照ブロックメモリ１１７１と、フレームメモリ転送制御部１１７２と、参照ブロックメモリ転送制御部１１７３と、動き補償処理部１１７４とを備える。
【００５５】
参照ブロックメモリ１１７１は、フレームメモリ２１４０に記憶されている参照画像のうちの一部を記憶するため記憶部である。具体的には、参照画像のうちの動き補償処理部１１７４での処理に用いられる一部が記憶される。
【００５６】
なお、参照ブロックメモリ１１７１は、典型的には、フレームメモリ２１４０より記憶容量が小さく、且つフレームメモリ２１４０よりデータの読み出し速度が速い記憶部である。典型的には、フレームメモリ２１４０はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、参照ブロックメモリ１１７１はＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であるが、これには限定されない。
【００５７】
フレームメモリ転送制御部１１７２は、参照画像の一部の領域である画素ブロックの画素データを、フレームメモリ２１４０から参照ブロックメモリ１１７１に転送する。なお、画素ブロックとは、動き補償処理部１１７４で用いられる参照ブロックを含む矩形状の領域を指す。また、参照ブロックとは、参照画像の一部の領域であって、対象ブロックに対する動き補償に用いられる領域である。ここで、対象ブロックと参照ブロックとは、通常同じ形状となる。すなわち、対象ブロックが矩形状の場合には参照ブロックも矩形状となり、対象ブロックが非矩形状の場合には参照ブロックも非矩形状となる。
【００５８】
そこで、フレームメモリ転送制御部１１７２は、画素ブロックの位置及び形状を、動き検出部１１６０から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて特定する。そして、参照ブロックが矩形状の場合、フレームメモリ転送制御部１１７２は、参照画像そのものの画素ブロックの画素データを、フレームメモリ２１４０から参照ブロックメモリ１１７１に転送する。一方、参照ブロックが非矩形状の場合、フレームメモリ転送制御部１１７２は、参照ブロックを含む（典型的には、外接する）画素ブロックを参照画像の中から特定し、特定した画素ブロックの画素データを、フレームメモリ２１４０から参照ブロックメモリ１１７１に転送する。
【００５９】
ただし、フレームメモリ転送制御部１１７２は、実際には、参照ブロックが矩形状であるか非矩形状であるかにかかわらず、特定した画素ブロックの画素データに加えて、当該画素ブロックの周辺画素の画素データも合わせて転送する。具体的には、図８に示されるように、画素ブロックの画素データと、画素ブロック周辺の画素の画素データとを合わせて転送する。詳細は後述する。
【００６０】
参照ブロックメモリ転送制御部１１７３は、参照ブロックの画素データを、参照ブロックメモリ１１７１から動き補償処理部１１７４に転送する。参照ブロックメモリ転送制御部１１７３は、参照ブロックの位置及び形状を、動き検出部１１６０から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて特定する。
【００６１】
そして、参照ブロックが矩形状の場合、参照ブロックメモリ転送制御部１１７３は、参照ブロックメモリ１１７１に記憶されている画素ブロックの画素データを、そのまま動き補償処理部１１７４に転送する。一方、参照ブロックが非矩形状の場合、参照ブロックメモリ転送制御部１１７３は、矩形状の画素ブロックから非矩形状の参照ブロックを抽出し、抽出した参照ブロックの画素データを、参照ブロックメモリ１１７１から動き補償処理部１１７４に転送する。
【００６２】
ただし、参照ブロックメモリ転送制御部１１７３は、実際には、参照ブロックが矩形状であるか、非矩形状であるかにかかわらず、抽出した参照ブロックの画素データに加えて、当該参照ブロックの周辺画素の画素データも合わせて転送する。詳細は後述する。
【００６３】
動き補償処理部１１７４は、参照ブロックメモリ１１７１に記憶されている画素ブロックに含まれる参照ブロックを用いて、より具体的には、参照ブロックメモリ転送制御部１１７３によって転送された参照ブロックを用いて、対象ブロックの予測ブロックを生成する。
【００６４】
次に、図２Ｂを参照して、図１及び図２Ａに示される画像符号化装置１０００及び動き補償部１１７０の動作を説明する。図２Ｂは、動き補償部１１７０の処理を中心とした画像符号化装置１０００の動作を示すフローチャートの一例である。
【００６５】
まず、動き検出部１１６０は、対象ブロックの動き検出を行い、動きベクトルとブロックパーティション情報と参照画像特定情報とを動き補償部１１７０に出力する（ステップＳ１１１０）。ここで、対象ブロックが矩形状の場合には、ブロックパーティション情報は省略することができる。
【００６６】
次に、フレームメモリ転送制御部１１７２は、動き検出部１１６０から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて、フレームメモリ１１４０に記憶されている参照画像のうち、転送の対象となる画素ブロックのアドレスを算出する処理を実行する（ステップＳ１１２０）。
【００６７】
画素ブロック内の座標（画素ブロック内座標）の例を図９に示す。原点は、画素ブロックの左上端で、水平方向（ｘ座標）は右方向が正の方向とし、垂直方向（ｙ座標）は下方向が正の方向とする。また、参照画像内の座標（参照画像内座標）の例を図１０に示す。原点は、参照画像の左上端で、水平方向（ｘ座標）は右方向が正の方向とし、垂直方向（ｙ座標）は下方向が正の方向とする。
【００６８】
フレームメモリ転送制御部１１７２は、まず、画素ブロックの左上端を（０，０）とする座標系で画素ブロックのアドレスを算出し、算出したアドレスを参照画像の左上端を（０，０）とする座標系に変換する処理を行う。アドレス算出処理の詳細は、後述する。そして、フレームメモリ転送制御部１１７２は、特定した画素ブロックの画素データを、フレームメモリ１１４０から参照ブロックメモリ１１７１に転送する（ステップＳ１１３０）。
【００６９】
次に、参照ブロックメモリ転送制御部１１７３は、参照ブロックメモリ１１７１に記憶されている画素ブロックのうち、転送の対象となる参照ブロックを抽出する処理を実行する（ステップＳ１１４０）。以下、画素ブロックのうちの転送の対象となる画素（すなわち、参照ブロックを構成する画素）を「有効画素」、転送の対象とならない画素を「無効画素」と標記する。そして、参照ブロックメモリ転送制御部１１７３は、抽出された参照ブロックの画素データを、参照ブロックメモリ１１７１から動き補償処理部１１７４に転送する（ステップＳ１１５０）。
【００７０】
次に、動き補償処理部１１７４は、動き検出部１１６０から取得した動きベクトルと、参照ブロックメモリ転送制御部１１７３によって転送された参照ブロックとを用いて、対象ブロックに対する動き補償処理を実行する（ステップＳ１１６０）。そして、動き補償処理部１１７４は、動き補償処理によって生成された予測ブロックの画素データを、減算器１１１０に出力する。
【００７１】
減算器１１１０は、動き補償処理部１１７４から取得した予測ブロックの画素データを、対応する対象ブロックの画素データから減算することにより、残差ブロックを生成する（ステップＳ１１７０）。そして、減算器１１１０は、生成した残差ブロックの画素データを、符号化部１１２０に出力する。
【００７２】
符号化部１１２０は、減算器１１１０から取得した残差ブロックの画素データを符号化して符号化ストリームとして出力すると共に、ローカルエンコードして得られる復号ブロックをフレームメモリ１１４０に格納する（ステップＳ１１８０）。
【００７３】
具体的には、残差ブロックを直交変換部１１２１で直交変換し、量子化部１１２２で量子化する。そして、量子化部１１２２で生成された量子化係数をエントロピー符号化部１１２３でエントロピー符号化して、符号化ストリームを生成する。また、エントロピー符号化部１１２３の処理と並行して、量子化部１１２２で生成された量子化係数を逆量子化部１１２４で逆量子化し、逆直交変換部１１２５で逆直交変換し、加算器１１２６で予測ブロックを加算し、デブロッキングフィルタ１１３０でフィルタ処理をして得られる復号ブロックをフレームメモリ１１４０に格納する。
【００７４】
次に、図３Ａ及び図３Ｂを参照して、動き補償部１１７０の構成及び動作の他の例を説明する。図３Ａは、動き補償部１１７０のブロック図の他の例である。図３Ｂは、動き補償部１１７０の処理を中心とした画像符号化装置１０００の動作を示すフローチャートの他の例である。なお、図２Ａ及び図２Ｂとの共通点には同一の符号を付して詳しい説明は省略する。
【００７５】
図３Ａに示される動き補償部１１７０は、図２Ａの構成に加えて、参照ブロックメモリ状態管理部１１７５をさらに備える。参照ブロックメモリ状態管理部１１７５は、参照画像の画素データが参照ブロックメモリ１１７１に記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する。そして、フレームメモリ転送制御部１１７２は、特定した画素ブロックのうち、参照ブロックメモリ１１７１に記憶されていない画素データを、参照ブロックメモリ状態管理部１１７５で管理されている転送ブロック単位で選択的に転送する。
【００７６】
図１１の（ａ）は、参照ブロックメモリ１１７１の構成例である。図１１の（ｂ）は、参照画像の座標と、参照ブロックメモリ１１７１のバンクとの関係例（解像度１９２０×１０８０ｐｉｘｅｌのとき）である。図１２は、参照ブロックメモリ状態管理部１１７５に保持されている情報の一例である。
【００７７】
まず、参照ブロックメモリ１１７１の記憶領域は、図１１の（ａ）に示されるように、所定のサイズ（この例では、１６×１６画素）のバンク（転送ブロック）に区画されている。そして、参照ブロックメモリ１１７１に対する画素データの書き込みは、このバンク単位で行なわれる。
【００７８】
参照ブロックメモリ状態管理部１１７５は、参照ブロックメモリ１１７１に保持されている画素データの参照画像内座標での水平座標を特定する情報（ｘ＿ｏｆｆｓｅｔ）と、参照ブロックメモリ１１７１に保持されている画素データの参照画像内座標での垂直座標を特定する情報（ｙ＿ｏｆｆｓｅｔ）と、参照ブロックメモリ１１７１に保持されている参照画像を特定する情報（ｒｅｆｉｄｘ）と、動き補償に有意な画素データを保持しているかどうかの状態を表す情報（状態）とを、バンク単位で管理する。
【００７９】
なお、「ｘ＿ｏｆｆｓｅｔ」は、例えば、画素ブロックの頂点（左上端）の参照画像内座標での水平座標の上位４ビットに相当する。「ｙ＿ｏｆｆｓｅｔ」は、例えば、画素ブロックの頂点（左上端）の参照画像内座標での垂直座標の上位４ビットに相当する。「ｒｅｆｉｄｘ」は、例えば、参照画像のピクチャ番号（参照画像特定情報）である。「状態」には、例えば、当該バンクに有意な画素が保持されている場合に「ｖａｌｉｄ」が、有意な画素が保持されていない場合に「ｉｎｖａｌｉｄ」が設定される。
【００８０】
具体的には、フレームメモリ転送制御部１１７２が算出した参照画像内での画素ブロックの座標情報から、参照ブロックメモリ１１７１に保持されている画素データのｘ＿ｏｆｆｓｅｔ、ｙ＿ｏｆｆｓｅｔ、ｒｅｆｉｄｘ、及び状態を更新し、保持する。そして、保持した情報をフレームメモリ転送制御部１１７２、及び参照ブロックメモリ転送制御部１１７３に出力する。
【００８１】
参照ブロックメモリ状態管理部１１７５に記憶されている情報は、例えば、参照ブロックメモリ１１７１が図１１の（ａ）で示される構成をし、図１１の（ｂ）に示されるが参照画像の一部を記憶している場合に、図１２に示すような情報である。
【００８２】
フレームメモリ転送制御部１１７２は、加算器１１２６から出力された復号画像をフレームメモリ１１４０に参照画像として書き込む。また、動き検出部１１６０から取得したブロックパーティション情報と、参照画像特定情報と、動きベクトルとから動き補償をするために必要な参照画像を特定し、参照ブロックを含む画素ブロックの参照画像内座標での水平座標と垂直座標とを計算する。
【００８３】
そして、フレームメモリ転送制御部１１７２は、計算した水平座標及び垂直座標と、参照ブロックメモリ状態管理部１１７５から取得した参照ブロックメモリ１１７１に保持されている画素データのｘ＿ｏｆｆｓｅｔ、ｙ＿ｏｆｆｓｅｔ、ｒｅｆｉｄｘ、及び状態とを比較して、参照ブロックメモリ１１７１に必要な画素データが記憶されていなければ、フレームメモリ１１４０から当該画素データを含むバンクを読み出し、参照ブロックメモリ１１７１に書き込む。
【００８４】
参照ブロックメモリ状態管理部１１７５は、フレームメモリ転送制御部１１７２が読み出して参照ブロックメモリ１１７１に書き込んだ画素データのｘ＿ｏｆｆｓｅｔ、ｙ＿ｏｆｆｓｅｔ、ｒｅｆｉｄｘ、及び状態を更新する。一方、参照ブロックメモリ１１７１に必要な画素データが記憶されていれば、フレームメモリ１１４０からバンクは読み出さない。
【００８５】
図３Ｂに示されるフローチャートは、ステップＳ１１２２及びステップＳ１１３２が追加されている点が、図２Ｂに示されるフローチャートと相違する。すなわち、フレームメモリ転送制御部１１７２は、図３Ｂに示されるように、画素ブロックのアドレス算出処理（ステップＳ１１２０）の後、特定した画素ブロック全体が既に参照ブロックメモリ１１７１に格納されているかを確認する（ステップＳ１１２２）。
【００８６】
特定した画素ブロック全体が参照ブロックメモリ１１７１に格納されていなければ（ステップＳ１１２２でＮ）、フレームメモリ転送制御部１１７２は、特定した画素ブロックのうち、参照ブロックメモリ１１７１に記憶されていない画素データを、参照ブロックメモリ状態管理部１１７５で管理されている転送ブロック単位で選択的に転送する（ステップＳ１１３０）。そして、参照ブロックメモリ状態管理部１１７５は、フレームメモリ転送制御部１１７２による転送結果に応じて、参照ブロックメモリの状態を更新する（ステップＳ１１３２）。
【００８７】
図４は、本実施の形態における画像復号装置の構成を示すブロック図である。画像復号装置２０００は、復号処理部２１００と、復号処理部２１００の動作を制御する復号制御部２２００とを備える。
【００８８】
復号処理部２１００は、符号化ストリームをブロックごとに復号することによって復号画像を生成する。このような復号処理部２１００は、エントロピー復号部２１１１、逆量子化部２１１２、逆直交変換部２１１３、加算器２１２０、デブロッキングフィルタ２１３０、フレームメモリ２１４０、面内予測部２１５０、動き補償部２１６０、及びスイッチ２１７０を備える。
【００８９】
エントロピー復号部２１１１は、符号化ストリームを取得し、その符号化ストリームをエントロピー復号（可変長復号）し、量子化係数ブロックと、動きベクトルと、ブロックパーティション情報と、参照画像特定情報とを生成する。
【００９０】
逆量子化部２１１２は、エントロピー復号部２１１１によるエントロピー復号によって生成された量子化係数ブロックを逆量子化する。逆直交変換部２１１３は、その逆量子化された係数ブロックに含まれる各周波数係数に対して逆離散コサイン変換などの逆直交変換を行うことによって、復号残差画像（復号残差ブロック）を生成する。
【００９１】
なお、本実施の形態においては、上記のエントロピー復号部２１１１、逆量子化部２１１２、及び逆直交変換部２１１３で、復号部２１１０を構成しているが、これに限定されない。
【００９２】
加算器２１２０は、スイッチ２１７０から取得した予測画像（予測ブロック）と、逆直交変換部２１１３によって生成された復号残差画像とを加算することによって復号画像（復号ブロック）を生成する。
【００９３】
デブロッキングフィルタ２１３０は、加算器２１２０によって生成された復号画像のブロック歪みを除去し、その復号画像をフレームメモリ２１４０に格納するとともに、その復号画像を出力する。
【００９４】
面内予測部２１５０は、加算器２１２０によって生成された復号画像を用いて復号対象ブロック（対象ブロック）に対して面内予測を行うことによって予測画像（予測ブロック）を生成する。
【００９５】
動き補償部２１６０は、フレームメモリ２１４０に格納されている画像を参照画像と、エントロピー復号部２１１１によるエントロピー復号によって生成された動きベクトルとを用いて、対象ブロックに対して動き補償を行う。動き補償部２１６０は、このような動き補償によって対象ブロックに対する予測画像（予測ブロック）を生成する。
【００９６】
スイッチ２１７０は、対象ブロックが面予測符号化されている場合には、面内予測部２１５０によって生成された予測画像を加算器２１２０に出力する。一方、スイッチ２１７０は、対象ブロックが画面間予測符号化されている場合には、動き補償部２１６０によって生成された予測画像を加算器２１２０に出力する。
【００９７】
次に、図５Ａを参照して、動き補償部（動き補償装置）２１６０の構成の一例を説明する。図５Ａは、動き補償部２１６０のブロック図の一例である。図５Ａに示される動き補償部２１６０は、参照ブロックメモリ２１６１と、フレームメモリ転送制御部２１６２と、参照ブロックメモリ転送制御部２１６３と、動き補償処理部２１６４とを備える。なお、図５Ａに示される動き補償部２１６０の各機能ブロックは、図２Ａに示される同一名称の各機能ブロックに対応する。
【００９８】
なお、フレームメモリ転送制御部２１６２は、エントロピー復号部２１１１から動きベクトル、ブロックパーティション情報、及び参照画像特定情報を取得する点が図２Ａのフレームメモリ転送制御部１１７２と相違する。また、参照ブロックメモリ転送制御部２１６３は、エントロピー復号部２１１１からブロックパーティション情報を取得する点が図２Ａの参照ブロックメモリ転送制御部１１７３と相違する。さらに、動き補償処理部２１６４は、生成した予測ブロックを加算器２１２０に出力する点が図２Ａの動き補償処理部１１７４と相違する。
【００９９】
次に、図５Ｂを参照して、図４及び図５Ａに示される画像復号装置２０００及び動き補償部２１６０の動作を説明する。図５Ｂは、動き補償部２１６０の処理を中心とした画像復号装置２０００の動作を示すフローチャートの一例である。
【０１００】
まず、エントロピー復号部２１１１は、符号化ストリームをエントロピー復号して、量子化係数ブロックと、動きベクトルと、ブロックパーティション情報と、参照画像特定情報とを生成する（ステップＳ１２１０）。
【０１０１】
次に、フレームメモリ転送制御部２１６２は、エントロピー復号部２１１１から取得した動きベクトル、ブロックパーティション情報、及び参照画像特定情報に基づいて、転送対象となる画素ブロックのアドレスを算出する処理を実行する（ステップＳ１２２０）。なお、この処理は、図２ＢのステップＳ１１２０と共通する処理であって、詳細は後述する。そして、フレームメモリ転送制御部２１６２は、特定した画素ブロックの画素データを、フレームメモリ２１４０から参照ブロックメモリ２１６１に転送する（ステップＳ１２３０）。
【０１０２】
次に、参照ブロックメモリ転送制御部２１６３は、転送の対象となる参照ブロックを抽出する処理を実行する（ステップＳ１２４０）。なお、この処理は、図２ＢのステップＳ１１４０と共通する処理であって、詳細は後述する。そして、参照ブロックメモリ転送制御部２１６３は、抽出された参照ブロックの画素データを、参照ブロックメモリ２１６１から動き補償処理部２１６４に転送する（ステップＳ１２５０）。
【０１０３】
次に、動き補償処理部２１６４は、エントロピー復号部２１１１から取得した動きベクトルと、参照ブロックメモリ転送制御部２１６３によって転送された参照ブロックとを用いて、対象ブロックに対する動き補償処理を実行する（ステップＳ１２６０）。そして、動き補償処理部２１６４は、動き補償処理によって生成された予測ブロックの画素データを、加算器２１２０に出力する。
【０１０４】
加算器２１２０は、逆直交変換部２１１３から取得した復号残差ブロックの画素データと、動き補償処理部２１６４から取得した予測ブロックの対応する画素データとを加算して、復号ブロック（復号画像）を生成する（ステップＳ１２７０）。なお、復号残差ブロックは、エントロピー復号部２１１１で生成された量子化係数ブロックを、逆量子化部２１１２で逆量子化し、逆直交変換部２１１３で逆直交変換することによって得られる。
【０１０５】
そして、加算器２１２０で生成された復号画像は、デブロッキングフィルタ２１３０でフィルタ処理され、復号画像として出力されると共に、参照画像としてフレームメモリ２１４０に格納される（ステップＳ１２８０）。
【０１０６】
次に、図６Ａ及び図６Ｂを参照して、動き補償部２１６０の構成及び動作の他の例を説明する。図６Ａは、動き補償部２１６０のブロック図の他の例である。図６Ｂは、動き補償部２１６０の処理を中心とした画像復号装置２０００の動作を示すフローチャートの他の例である。なお、図５Ａ及び図５Ｂとの共通点には同一の符号を付して詳しい説明は省略する。
【０１０７】
図６Ａに示される動き補償部２１６０は、図５Ａの構成に加えて、参照ブロックメモリ状態管理部２１６５をさらに備える。参照ブロックメモリ状態管理部２１６５の機能は、図３Ａの参照ブロックメモリ状態管理部１１７５と共通するので、説明は省略する。
【０１０８】
フレームメモリ転送制御部２１６２は、図６Ｂに示されるように、画素ブロックのアドレス算出処理（ステップＳ１２２０）の後、特定した画素ブロック全体が既に参照ブロックメモリ２１６１に格納されていなければ（ステップＳ１２２２でＮ）、特定した画素ブロックのうち、参照ブロックメモリ２１６１に記憶されていない画素データを、参照ブロックメモリ状態管理部２１６５で管理されている転送ブロック単位で選択的に転送する（ステップＳ１２３０）。そして、参照ブロックメモリ状態管理部２１６５は、フレームメモリ転送制御部２１６２による転送結果に応じて、参照ブロックメモリの状態を更新する（ステップＳ１２３２）。
【０１０９】
図１３〜図１９を用いて、フレームメモリ転送制御部１１７２の参照ブロックを含む矩形状の画素ブロックのアドレス算出の詳細な動作説明を行う。図１３は、フレームメモリ転送制御部１１７２が行う画素ブロックのアドレス算出処理の全体の流れを示すフローチャートである。なお、以下の説明は、フレームメモリ転送制御部２１６２にも同様に当てはまる。
【０１１０】
まず、フレームメモリ転送制御部１１７２は、動き検出部１１６０から取得したブロックパーティション情報を用いて、動き補償処理で必要となる参照ブロックが非矩形状であるかどうかを判定する（ステップＳ２３０１）。
【０１１１】
ステップＳ２３０１の判定の結果、参照ブロックが矩形状である場合（ステップＳ２３０１でＹ）には、矩形状の参照ブロックに一致する画素ブロックの左上画素とサイズとを算出する（ステップＳ２３０２）。
【０１１２】
一方、ステップＳ２３０１の判定の結果、参照ブロックが非矩形状である場合（ステップＳ２３０１でＮＯ）には、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する（ステップＳ２３０３）。
【０１１３】
次に、動き補償処理部１１７４でのフィルタ処理に必要な画素を画素ブロックに加えるために、ステップＳ２３０２又はステップＳ２３０３で算出した画素ブロックの左上画素とサイズとを修正する処理を行う（ステップＳ２３０４）。
【０１１４】
例えば、Ｈ．２６４の動き補償で用いられる６タップフィルタを用いて、水平方向の小数画素生成を行う場合は、図８に示されるように、画素ブロックの左上画素の水平座標を−２補正し、水平サイズを＋５補正する。同様に、Ｈ．２６４の動き補償で用いられる６タップフィルタを用いて、垂直方向の小数画素生成を行う場合は、図８に示されるように、画素ブロックの左上画素の垂直座標を−２補正し、垂直サイズを＋５補正する。なお、Ｈ．２６４の動き補償で用いられる６タップフィルタ処理を例にしたが、必ずしもそうである必要はなく、いかなるフィルタ処理であっても構わない。
【０１１５】
次に、フレームメモリ転送制御部１１７２は、動き検出部１１６０から取得した動きベクトル情報と、画素ブロックの座標情報とを用いて、ステップＳ２３０４で導出した各パーティションに外接する画素ブロックの左上座標を動きベクトル分だけ並行移動して、参照画像内の矩形状の画素ブロックの左上座標を求める（ステップＳ２３０５）。
【０１１６】
すなわち、ステップＳ２３０２及びステップＳ２３０３では、一旦、対象ブロックの位置での画素ブロックの左上座標を算出しており、この仮の左上座標をステップＳ２３０５で動きベクトル分だけ平行移動することにより、本来の参照ブロックの位置における画素ブロックの左上座標を得ることができる。
【０１１７】
次に、フレームメモリ転送制御部１１７２は、各矩形状の画素ブロックの参照画像内の左上座標を、参照画像のフレームメモリ１１４０内でのアドレスに変換することによって、フレームメモリ１１４０から読み出す矩形状の画素ブロックを構成する画素データのアドレスを計算する（ステップＳ２３０６）。
【０１１８】
図１４は、各非矩形パーティションに外接する矩形状の画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。なお、図１４〜図１９で示すフローチャートでは、ブロックパーティション情報として、参照ブロックの水平サイズH_SIZEと、参照ブロックの垂直サイズV_SIZEと、従来例（特許文献１、特許文献２、非特許文献１、非特許文献２）に記載されているρとθを用いて説明する。
【０１１９】
ステップＳ２４０１では、動き検出部１１６０から取得したパーティション情報θが、０°＜θ＜９０°かどうかを判定する。すなわち、ρとθとで定義される線分が、図７の第１象限（右上の領域）に位置するか否かを判定する。そして、０°＜θ＜９０°である場合は、ステップＳ２４０２の処理を行う。ステップＳ２４０２では、０°＜θ＜９０°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う（ステップＳ２４０２）。一方、０°＜θ＜９０°でない場合は、ステップＳ２４０３の処理を行う（ステップＳ２４０１）。
【０１２０】
ステップＳ２４０３では、動き検出部１１６０から取得したブロックパーティション情報θが、９０°＜θ＜１８０°かどうかを判定する。すなわち、ρとθとで定義される線分が、図７の第２象限（左上の領域）に位置するか否かを判定する。そして、９０°＜θ＜１８０°である場合は、ステップＳ２４０４の処理を行う。ステップＳ２４０４では、９０°＜θ＜１８０°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う（ステップＳ２４０４）。一方、９０°＜θ＜１８０°でない場合は、ステップＳ２４０５の処理を行う（ステップＳ２４０３）。
【０１２１】
ステップＳ２４０５では、動き検出部１１６０から取得したパーティション情報θが、１８０°＜θ＜２７０°かどうかを判定する。すなわち、ρとθとで定義される線分が、図７の第３象限（左下の領域）に位置するか否かを判定する。そして、１８０°＜θ＜２７０°である場合は、ステップＳ２４０６の処理を行う。ステップＳ２４０６では、１８０°＜θ＜２７０°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う（ステップＳ２４０６）。一方、１８０°＜θ＜２７０°でない場合は、ステップＳ２４０７の処理を行う（ステップＳ２４０５）。
【０１２２】
ステップＳ２４０７では、動き検出部１１６０から取得したパーティション情報θが、２７０°＜θ＜３６０°かどうかを判定する。すなわち、ρとθとで定義される線分が、図７の第４象限（右下の領域）に位置するか否かを判定する。そして、２７０°＜θ＜３６０°である場合は、ステップＳ２４０８の処理を行う。ステップＳ２４０８では、２７０°＜θ＜３６０°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う（ステップＳ２４０８）。一方、２７０°＜θ＜３６０°でない場合は、ステップＳ２４０９の処理を行う（ステップＳ２４０７）。
【０１２３】
ステップＳ２４０９では、θ＝９０°、１８０°、２７０°、または３６０°のときの参照ブロックに外接する画素ブロックの左上座標とサイズとを導出する処理を行う（ステップＳ２４０９）。
【０１２４】
図１５は、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。なお、図１５〜図１９で示すフローチャートでは、ブロックパーティション情報と水平座標情報とからパーティション分割境界の垂直座標を導出するf(x)という関数と、ブロックパーティション情報と垂直座標情報とからパーティション分割境界の水平座標を導出するg(x)とを用いているが、この関数を下記式１及び式２に示す。
【０１２５】
【数１】
2012120582.tif 000003
【０１２６】
【数２】
2012120582.tif 000004
【０１２７】
ステップＳ２５０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２５０２の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２５１２の処理を行う（ステップＳ２５０１）。
【０１２８】
ステップＳ２５０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップＳ２５０３の処理を行う。一方、0<g(0)<H_SIZEでない場合は、ステップＳ２５０７の処理を行う（ステップＳ２５０２）。
【０１２９】
ステップＳ２５０７では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ２５０８の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ２５１２の処理を行い（ステップＳ２５０７）、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１３０】
ステップＳ２５０３では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２５０３）、ステップＳ２５０４の処理を行う。ステップＳ２５０４では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし（ステップＳ２５０４）、ステップＳ２５０５の処理を行う。
【０１３１】
ステップＳ２５０５では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(0),0）とし（ステップＳ２５０５）、ステップＳ２５０６の処理を行う。ステップＳ２５０６では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE-g(0),垂直サイズh=f(H_SIZE-1)とし（ステップＳ２５０６）、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１３２】
すなわち、ステップＳ２５０３〜ステップＳ２５０６では、図７に示されるように、パーティション分割境界が画素ブロックの上辺及び右辺と交差する場合のパーティション０及びパーティション１に外接する画素ブロックの左上座標とサイズとを導出している。
【０１３３】
なお、この例では、パーティション分割境界に接する２つのパーティション０、１の両方について、左上座標とサイズとを導出したが、パーティション０、１のどちらが参照ブロックであるかを特定して、特定された側の左上座標とサイズとを導出するようにしてもよい。これは、図１５〜図１９の各処理に共通する。
【０１３４】
ステップＳ２５０８では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２５０８）、ステップＳ２５０９の処理を行う。ステップＳ２５０９では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=ｆ(H_SIZE-1)とし（ステップＳ２５０９）、ステップＳ２５１０の処理を行う。
【０１３５】
ステップＳ２５１０では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,f(0)）とし（ステップＳ２５１０）、ステップＳ２５１１の処理を行う。ステップＳ２５１１では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(0)とし（ステップＳ２５１１）、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１３６】
すなわち、ステップＳ２５０８〜ステップＳ２５１１では、パーティション分割境界が画素ブロックの左辺及び右辺と交差する場合のパーティション０及びパーティション１に外接する画素ブロックの左上座標とサイズとを導出している。
【０１３７】
ステップＳ２５１２では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２５１２）、ステップＳ２５１３の処理を行う。ステップＳ２５１３では、パーティション０に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZEとし（ステップＳ２５１３）、ステップＳ２５１４の処理を行う。
【０１３８】
ステップＳ２５１４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(0),0）とし（ステップＳ２５１４）、ステップＳ２５１５の処理を行う。ステップＳ２５１５では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE-g(0),垂直サイズh=V_SIZEとし（ステップＳ２５１５）、０°＜θ＜９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１３９】
すなわち、ステップＳ２５１２〜ステップＳ２５１５では、パーティション分割境界が画素ブロックの上辺及び下辺と交差する場合のパーティション０及びパーティション１に外接する画素ブロックの左上座標とサイズとを導出している。
【０１４０】
なお、図１６〜図１８についても上記と同様に、パーティション分割境界が画素ブロックのどの辺と交差するかを場合分けながら、各パーティションに外接する画素ブロックの左上座標とサイズとを算出している。
【０１４１】
図１６は、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【０１４２】
ステップＳ２６０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ２６０２の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ２６１２の処理を行う（ステップＳ２６０１）。
【０１４３】
ステップＳ２６０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップＳ２６０３の処理を行う。一方、0<g(0)<H_SIZEでない場合は、ステップＳ２６０７の処理を行う（ステップＳ２６０２）。
【０１４４】
ステップＳ２６０７では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２６０８の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２６１２の処理を行い（ステップＳ２６０７）、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１４５】
ステップＳ２６０３では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２６０３）、ステップＳ２６０４の処理を行う。ステップＳ２６０４では、パーティション０に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=f(0)とし（ステップＳ２６０４）、ステップＳ２６０５の処理を行う。
【０１４６】
ステップＳ２６０５では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２６０５）、ステップＳ２６０６の処理を行う。ステップＳ２６０６では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし（ステップＳ２６０６）、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１４７】
ステップＳ２６０８では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２６０８）、ステップＳ２６０９の処理を行う。ステップＳ２６０９では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=ｆ(0)とし（ステップＳ２６０９）、ステップＳ２６１０の処理を行う。
【０１４８】
ステップＳ２６１０では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,f(H_SIZE-1)）とし（ステップＳ２６１０）、ステップＳ２６１１の処理を行う。ステップＳ２６１１では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(H_SIZE-1)とし（ステップＳ２６１１）、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１４９】
ステップＳ２６１２では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２６１２）、ステップＳ２６１３の処理を行う。ステップＳ２６１３では、パーティション０に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=V_SIZEとし（ステップＳ２６１３）、ステップＳ２６１４の処理を行う。
【０１５０】
ステップＳ２６１４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(V_SIZE-1),0）とし（ステップＳ２６１４）、ステップＳ２６１５の処理を行う。ステップＳ２６１５では、パーティション１の外接矩形の水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZEとし（ステップＳ２６１５）、９０°＜θ＜１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１５１】
図１７は、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【０１５２】
ステップＳ２７０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ２７０２の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ２７１２の処理を行う（ステップＳ２７０１）。
【０１５３】
ステップＳ２７０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２７０３の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２７０７の処理を行う（ステップＳ２７０２）。
【０１５４】
ステップＳ２７０７では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２７０８の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２７１２の処理を行い（ステップＳ２７０７）、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１５５】
ステップＳ２７０３では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２７０３）、ステップＳ２７０４の処理を行う。ステップＳ２７０４では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=f(H_SIZE-1)とし（ステップＳ２７０４）、ステップＳ２７０５の処理を行う。
【０１５６】
ステップＳ２７０５では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,f(0)）とし（ステップＳ２７０５）、ステップＳ２７０６の処理を行う。ステップＳ２７０６では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(0)とし（ステップＳ２７０６）、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１５７】
ステップＳ２７０８では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２７０８）、ステップＳ２７０９の処理を行う。ステップＳ２７０９では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし（ステップＳ２７０９）、ステップＳ２７１０の処理を行う。
【０１５８】
ステップＳ２７１０では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,f(0)）とし（ステップＳ２７１０）、ステップＳ２７１１の処理を行う。ステップＳ２７１１では、パーティション１に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZE-f(0)とし（ステップＳ２７１１）、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１５９】
ステップＳ２７１２では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２７１２）、ステップＳ２７１３の処理を行う。ステップＳ２７１３では、パーティション０に外接する画素ブロックの水平サイズw=g(V_SIZE-1),垂直サイズh=V_SIZEとし（ステップＳ２７１３）、ステップＳ２７１４の処理を行う。
【０１６０】
ステップＳ２７１４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(0),0）とし（ステップＳ２７１４）、ステップＳ２７１５の処理を行う。ステップＳ２７１５では、パーティション１の外接矩形の水平サイズw=H_SIZE-g(0),垂直サイズh= V_SIZEとし（ステップＳ２７１５）、１８０°＜θ＜２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１６１】
図１８は、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【０１６２】
ステップＳ２８０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２８０２の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２８１２の処理を行う（ステップＳ２８０１）。
【０１６３】
ステップＳ２８０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ２８０３の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ２８０７の処理を行う（ステップＳ２８０２）。
【０１６４】
ステップＳ２８０７では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ２８０８の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ２８１２の処理を行い（ステップＳ２８０７）、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１６５】
ステップＳ２８０３では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２８０３）、ステップＳ２８０４の処理を行う。ステップＳ２８０４では、パーティション０の外接矩形の水平サイズw=H_SIZE,垂直サイズh=f(0)とし（ステップＳ２８０４）、ステップＳ２８０５の処理を行う。
【０１６６】
ステップＳ２８０５では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,f(H_SIZE-1)）とし（ステップＳ２８０５）、ステップＳ２８０６の処理を行う。ステップＳ２８０６では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZE-f(H_SIZE-1)とし（ステップＳ２８０６）、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１６７】
ステップＳ２８０８では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２８０８）、ステップＳ２８０９の処理を行う。ステップＳ２８０９では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=V_SIZEとし（ステップＳ２８０９）、ステップＳ２８１０の処理を行う。
【０１６８】
ステップＳ２８１０では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(V_SIZE-1),f(H_SIZE-1)）とし（ステップＳ２８１０）、ステップＳ２８１１の処理を行う。ステップＳ２８１１では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZE-f(H_SIZE-1)とし（ステップＳ２８１１）、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１６９】
ステップＳ２８１２では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２８１２）、ステップＳ２８１３の処理を行う。ステップＳ２８１３では、パーティション０に外接する画素ブロックの水平サイズw=g(0),垂直サイズh=V_SIZEとし（ステップＳ２８１３）、ステップＳ２８１４の処理を行う。
【０１７０】
ステップＳ２８１４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（g(V_SIZE-1),0）とし（ステップＳ２８１４）、ステップＳ２８１５の処理を行う。ステップＳ２８１５では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE-g(V_SIZE-1),垂直サイズh=V_SIZEとし（ステップＳ２８１５）、２７０°＜θ＜３６０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１７１】
図１９は、θ=０°,９０°,１８０°,２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理の流れを示すフローチャートである。
【０１７２】
ステップＳ２９０１では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝０°かどうかを判定する。そして、θ＝０°である場合は、ステップＳ２９０２の処理を行う。一方、θ＝０°でない場合は、ステップＳ２９０６の処理を行う（ステップＳ２９０１）。
【０１７３】
ステップＳ２９０６では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝９０°かどうかを判定する。そして、θ＝９０°である場合は、ステップＳ２９０７の処理を行う。一方、θ＝９０°でない場合は、ステップＳ２９１１の処理を行う（ステップＳ２９０６）。
【０１７４】
ステップＳ２９１１では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝１８０°かどうかを判定する。そして、θ＝１８０°である場合は、ステップＳ２９１２の処理を行う。一方、θ＝１８０°でない場合は、ステップＳ２９１６の処理を行う（ステップＳ２９１１）。
【０１７５】
ステップＳ２９１６では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝２７０°かどうかを判定する。そして、θ＝２７０°である場合は、ステップＳ２９１７の処理を行う（ステップＳ２９１６）。
【０１７６】
ステップＳ２９０２では、パーティション０に外接するが層ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２９０２）、ステップＳ２９０３の処理を行う。ステップＳ２９０３では、パーティション０に外接する画素ブロックの水平サイズw=1/2*H_SIZE+ρ,垂直サイズh=V_SIZEとし（ステップＳ２９０３）、ステップＳ２９０４の処理を行う。
【０１７７】
ステップＳ２９０４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（1/2*H_SIZE+ρ,0）とし（ステップＳ２９０４）、ステップＳ２９０５の処理を行う。ステップＳ２９０５では、パーティション１に外接する画素ブロックの水平サイズw=1/2*H_SIZE-ρ,垂直サイズh=V_SIZEとし（ステップＳ２９０５）、θ＝０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１７８】
ステップＳ２９０７では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２９０７）、ステップＳ２９０８の処理を行う。ステップＳ２９０８では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE-ρとし（ステップＳ２９０８）、ステップＳ２９０９の処理を行う。
【０１７９】
ステップＳ２９０９では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,1/2*V_SIZE−ρ）とし（ステップＳ２９０９）、ステップＳ２９１０の処理を行う。ステップＳ２９１０では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE+ρとし（ステップＳ２９１０）、θ＝９０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１８０】
ステップＳ２９１２では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２９１２）、ステップＳ２９１３の処理を行う。ステップＳ２９１３では、パーティション０に外接する画素ブロックの水平サイズw=1/2*H_SIZE-ρ,垂直サイズh=V_SIZEとし（ステップＳ２９１３）、ステップＳ２９１４の処理を行う。
【０１８１】
ステップＳ２９１４では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（1/2*H_SIZE-ρ,0）とし（ステップＳ２９１４）、ステップＳ２９１５の処理を行う。ステップＳ２９１５では、パーティション１に外接する画素ブロックの水平サイズw=1/2*H_SIZE+ρ,垂直サイズh=V_SIZEとし（ステップＳ２９１５）、θ＝１８０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１８２】
ステップＳ２９１７では、パーティション０に外接する画素ブロックの左上画素の参照ブロック内座標を（0,0）とし（ステップＳ２９１７）、ステップＳ２９１８の処理を行う。ステップＳ２９１８では、パーティション０に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE+ρとし（ステップＳ２９１８）、ステップＳ２９１９の処理を行う。
【０１８３】
ステップＳ２９１９では、パーティション１に外接する画素ブロックの左上画素の参照ブロック内座標を（0,1/2*V_SIZE+ρ）とし（ステップＳ２９１９）、ステップＳ２９２０の処理を行う。ステップＳ２９２０では、パーティション１に外接する画素ブロックの水平サイズw=H_SIZE,垂直サイズh=1/2*V_SIZE-ρとし（ステップＳ２９２０）、θ＝２７０°のときの各パーティションに外接する画素ブロックの左上座標とサイズとを導出する処理を終了する。
【０１８４】
以上、図１４〜図１９で示したフローチャートの処理により、各非矩形パーティションに外接する画素ブロックの左上座標とサイズとが導出できる。
【０１８５】
次に、図２０〜図３２を用いて、参照ブロックメモリ転送制御部１１７３の画素ブロック内の有効画素抽出処理の詳細な動作説明を行う。図２０は、参照ブロックメモリ転送制御部１１７３が行う画素ブロック内の有効画素抽出処理の全体の流れを示すフローチャートである。なお、以下の説明は、参照ブロックメモリ転送制御部２１６３にも同様に当てはまる。
【０１８６】
まず、参照ブロックメモリ転送制御部１１７３は、動き検出部１１６０から取得したブロックパーティション情報を用いて、動き補償処理で必要となる参照ブロックが非矩形であるかどうかを判定する（ステップＳ３１０１）。ステップＳ３３０１の判定の結果、参照ブロックが矩形である場合には、画素ブロック内の全ての画素を有効画素と判定する（ステップＳ３１０２）。一方、ステップＳ３３０１の判定の結果、参照ブロックが非矩形である場合には、画素ブロック内の有効画素判定を行う（ステップＳ３１０３）。
【０１８７】
次に、動き補償部１１７０で利用するフィルタ処理に必要な画素を参照ブロックに追加するために、有効画素の座標を補正する（ステップＳ３１０４）。例えば、Ｈ．２６４の動き補償で用いられる６タップフィルタを用いて、水平方向の小数画素生成を行う場合は、参照ブロックの左上画素の水平座標を−２補正して、水平サイズを＋５補正する。Ｈ．２６４の動き補償で用いられる６タップフィルタを用いて、垂直方向の小数画素生成を行う場合は、参照ブロックの左上画素の垂直座標を−２補正して、垂直サイズを＋５補正する。Ｈ．２６４の動き補償で用いられる６タップフィルタ処理を例にしたが、必ずしもそうである必要はなくいかなるフィルタ処理であっても構わない。
【０１８８】
次に、参照ブロックメモリ転送制御部１１７３は、参照ブロックメモリ１１７１内の参照ブロックの有効画素座標の情報を求め、当該情報で特定される参照ブロックの画素データを動き補償部１１７０に出力する（ステップＳ３１０５）。
【０１８９】
図２１は、画素ブロック内の有効画素の判定の流れを示すフローチャートである。図２１〜図３２で示すフローチャートでは、ブロックパーティション情報として、画素ブロックの水平サイズH_SIZEと、画素ブロックの垂直サイズV_SIZEと、従来例（特許文献１、特許文献２、非特許文献１、非特許文献２）に記載されているρとθとを用いて説明する。
【０１９０】
ステップＳ３２０１では、動き検出部１１６０から取得したブロックパーティション情報θが、０°＜θ＜９０°かどうかを判定する。そして、０°＜θ＜９０°である場合は、ステップＳ３２０２の処理を行う。ステップＳ３２０２では、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定を行う（ステップＳ３２０２）。一方、０°＜θ＜９０°でない場合は、ステップＳ３２０３の処理を行う（ステップＳ３２０１）。
【０１９１】
ステップＳ３２０３では、動き検出部１１６０から取得したブロックパーティション情報θが、９０°＜θ＜１８０°かどうかを判定する。そして、９０°＜θ＜１８０°である場合は、ステップＳ３２０４の処理を行う。ステップＳ３２０４では、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定を行う（ステップＳ３２０４）。一方、９０°＜θ＜１８０°でない場合は、ステップＳ３２０５の処理を行う（ステップＳ３２０３）。
【０１９２】
ステップＳ３２０５では、動き検出部１１６０から取得したブロックパーティション情報θが、１８０°＜θ＜２７０°かどうかを判定する。そして、１８０°＜θ＜２７０°である場合は、ステップＳ３２０６の処理を行う。ステップＳ３２０６では、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定を行う（ステップＳ３２０６）。一方、１８０°＜θ＜２７０°でない場合は、ステップＳ３２０７の処理を行う（ステップＳ３２０５）。
【０１９３】
ステップＳ３２０７では、動き検出部１１６０から取得したブロックパーティション情報θが、２７０°＜θ＜３６０°かどうかを判定する。そして、２７０°＜θ＜３６０°である場合は、ステップＳ３２０８の処理を行う。ステップＳ３２０８では、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定を行う（ステップＳ３２０８）。一方、２７０°＜θ＜３６０°でない場合は、ステップＳ３２０９の処理を行う（ステップＳ３２０７）。
【０１９４】
ステップＳ３２０９では、θ＝９０°、１８０°、２７０°、または３６０°のときの画素ブロック内の有効画素の判定を行う（ステップＳ３２０９）。
【０１９５】
図２２は、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【０１９６】
ステップＳ３３０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３３０２の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３３０６の処理を行う（ステップＳ３３０１）。
【０１９７】
ステップＳ３３０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップＳ３３０３の処理を行う。ステップＳ３３０３では、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３３０３）。一方、0<g(0)<H_SIZEでない場合は、ステップＳ３３０４の処理を行う（ステップＳ３３０２）。
【０１９８】
ステップＳ３３０４では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ３３０５の処理を行う。ステップＳ３３０５では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３３０５）。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ３３０６の処理を行う（ステップＳ３３０６）。
【０１９９】
ステップＳ３３０６では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、０°＜θ＜９０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３３０６）。
【０２００】
図２３は、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【０２０１】
ステップＳ３４０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ３４０２の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ３４０６の処理を行う（ステップＳ３４０１）。
【０２０２】
ステップＳ３４０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<g(0)<H_SIZEかどうかを判定する。そして、0<g(0)<H_SIZEである場合は、ステップＳ３４０３の処理を行う。ステップＳ３４０３では、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定を行い、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３４０３）。一方、0<g(0)<H_SIZEでない場合は、ステップＳ３４０４の処理を行う（ステップＳ３４０２）。
【０２０３】
ステップＳ３４０４では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３４０５の処理を行う。ステップＳ３４０５では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３４０５）。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３４０６の処理を行う（ステップＳ３４０６）。
【０２０４】
ステップＳ３４０６では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、９０°＜θ＜１８０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３４０６）。
【０２０５】
図２４は、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【０２０６】
ステップＳ３５０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ３５０２の処理を行う。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ３５０６の処理を行う（ステップＳ３５０１）。
【０２０７】
ステップＳ３５０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３５０３の処理を行う。ステップＳ３５０３では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３５０３）。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３５０４の処理を行う（ステップＳ３５０２）。
【０２０８】
ステップＳ３５０４では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３５０５の処理を行う。ステップＳ３５０５では、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３５０５）。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３５０６の処理を行う（ステップＳ３５０６）。
【０２０９】
ステップＳ３５０６では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、１８０°＜θ＜２７０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３５０６）。
【０２１０】
図２５は、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【０２１１】
ステップＳ３６０１では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３６０２の処理を行う。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３６０６の処理を行う（ステップＳ３６０１）。
【０２１２】
ステップＳ３６０２では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<ｆ(0)<V_SIZEかどうかを判定する。そして、0<ｆ(0)<V_SIZEである場合は、ステップＳ３６０３の処理を行う。ステップＳ３６０３では、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３６０３）。一方、0<ｆ(0)<V_SIZEでない場合は、ステップＳ３６０４の処理を行う（ステップＳ３６０２）。
【０２１３】
ステップＳ３６０４では、動き検出部１１６０から取得したブロックパーティション情報のH_SIZEとV_SIZEとから、0<f(H_SIZE-1)<V_SIZEかどうかを判定する。そして、0<f(H_SIZE-1)<V_SIZEである場合は、ステップＳ３６０５の処理を行う。ステップＳ３６０５では、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定を行い、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３６０５）。一方、0<f(H_SIZE-1)<V_SIZEでない場合は、ステップＳ３６０６の処理を行う（ステップＳ３６０６）。
【０２１４】
ステップＳ３６０６では、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を行い、２７０°＜θ＜３６０°のときの画素ブロック内の有効画素の判定を終了する（ステップＳ３６０６）。
【０２１５】
図２６は、θ=０°,９０°,１８０°,２７０°のときの画素ブロック内の有効画素の判定の流れを示すフローチャートである。
【０２１６】
ステップＳ３７０１では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝０°かどうかを判定する。そして、θ＝０°である場合は、ステップＳ３７０２の処理を行う。一方、θ＝０°でない場合は、ステップＳ３７０３の処理を行う（ステップＳ３７０１）。
【０２１７】
ステップＳ３７０３では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝９０°かどうかを判定する。そして、θ＝９０°である場合は、ステップＳ３７０４の処理を行う。一方、θ＝９０°でない場合は、ステップＳ３７０５の処理を行う（ステップＳ３７０５）。
【０２１８】
ステップＳ３７０５では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝１８０°かどうかを判定する。そして、θ＝１８０°である場合は、ステップＳ３７０６の処理を行う。一方、θ＝１８０°でない場合は、ステップＳ３７０７の処理を行う（ステップＳ３７０５）。
【０２１９】
ステップＳ３７０７では、動き検出部１１６０から取得したブロックパーティション情報のθから、θ＝２７０°かどうかを判定する。そして、θ＝２７０°である場合は、ステップＳ３７０８の処理を行う（ステップＳ３７０７）。
【０２２０】
図２６に記載のあるvalid_partition0(i,j)、および、valid_partition1(i,j)は、画素ブロックと同じサイズの２次元行列データであり、２つに分割されたブロックパーティションを構成する画素が画素ブロック内の各座標で有効かどうかを示す情報である。１のときに有効であることを示し、０のときに無効であることを示す。
【０２２１】
ステップＳ３７０２では、0<=i<=1/2*H_SIZE＋ρ,0<=j<V_SIZEの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、1/2*H_SIZE＋ρ<=i<H_SIZE,0<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする（ステップＳ３７０２）。
【０２２２】
ステップＳ３７０４では、0<=i<=H_SIZE,0<=j<1/2*V_SIZE-ρの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、0<=i<=H_SIZE,1/2*V_SIZE-ρ<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする（ステップＳ３７０４）。
【０２２３】
ステップＳ３７０６では、0<=i<=1/2*H_SIZE-ρ、0<=j<V_SIZEの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、1/2*H_SIZE-ρ<=i<H_SIZE、0<=j<V_SIZEの画素について、valid_partition0(i,j)=0、valid_partition1(i,j)=1とする（ステップＳ３７０６）。
【０２２４】
ステップＳ３７０８では、0<=i<=H_SIZE,0<=j<1/2*V_SIZE+ρの画素について、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、0<=i<=H_SIZE,1/2*V_SIZE+ρ<=j <V_SIZEの画素について、valid_partition0 (i,j)=0、valid_partition1(i,j)=1とする（ステップＳ３７０８）。
【０２２５】
図２７は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【０２２６】
ステップＳ３８０１では、j=0とし、ステップＳ３８０２の処理を行う（ステップＳ３８０１）。ステップＳ３８０２では、i=0とし、ステップＳ３８０３の処理を行う（ステップＳ３８０２）。ステップＳ３８０３では、斜辺（パーティション分割境界）を成す座標(g（j）,j)を算出し、ステップＳ３８０４の処理を行う（ステップＳ３８０３）。
【０２２７】
ステップＳ３８０４では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ３８０５の処理を行う（ステップＳ３８０４）。ステップＳ３８０５では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップＳ３８０６の処理を行う。ステップＳ３８０６では、i++とし、ステップＳ３８０４の処理を行う（ステップＳ３８０６）。すなわち、ステップＳ３８０４〜ステップＳ３８０６は、パーティション分割境界の左側に位置する画素を、パーティション０に属する画素と判定する処理である。
【０２２８】
一方、0<=i<=g(j)ではない場合は、ステップＳ３８０７の処理を行う（ステップＳ３８０５）。
【０２２９】
ステップＳ３８０７では、valid_partition0 (i,j)=0、valid_partition1(i,j)=１とし、ステップＳ３８０８の処理を行う（ステップＳ３８０７）。ステップＳ３８０８では、g(j)<=i< H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップＳ３８０９の処理を行う。ステップＳ３８０９では、i++とし、ステップＳ３８０７の処理を行う（ステップＳ３８０９）。すなわち、ステップＳ３８０７〜ステップＳ３８０９は、パーティション分割境界の右側に位置する画素を、パーティション１に属する画素と判定する処理である。
【０２３０】
一方、g(j)<=i<H_SIZEではない場合は、ステップＳ３８１０の処理を行う（ステップＳ３８０８）。ステップＳ３８１０では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップＳ３８１１の処理を行う。ステップＳ３８１１では、j++とし、ステップＳ３８０２の処理を行う（ステップＳ３８１１）。一方、j<V_SIZEではない場合は、画素ブロックの上辺から下辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ３８１０）。
【０２３１】
図２８は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図２８は、図２７の処理と類似し、パーティション分割境界の上側に位置する画素をパーティション０に属する画素と判定し、下側に位置する画素をパーティション１に属する画素と判定する処理である。
【０２３２】
ステップＳ３９０１では、j=0とし、ステップＳ３９０２の処理を行う（ステップＳ３９０１）。ステップＳ３９０２では、i=0とし、ステップＳ３９０３の処理を行う（ステップＳ３９０２）。ステップＳ３９０３では、斜辺（パーティション分割境界）を成す座標(i,f(i))を算出し、ステップＳ３９０４の処理を行う（ステップＳ３９０３）。
【０２３３】
ステップＳ３９０４では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ３９０５の処理を行う（ステップＳ３９０４）。ステップＳ３９０５では、0<=j<=f(i)かどうかを判定する。そして、0<=j<=f(i)である場合は、ステップＳ３９０６の処理を行う。ステップＳ３９０６では、j++とし、ステップＳ３９０４の処理を行う（ステップＳ３９０６）。一方、0<=j<=f(i)ではない場合は、ステップＳ３９０７の処理を行う（ステップＳ３９０５）。
【０２３４】
ステップＳ３９０７では、valid_partition0(i,j)=0、valid_partition1(i,j)=１とし、ステップＳ３９０８の処理を行う（ステップＳ３９０７）。ステップＳ３９０８では、f(i)<=j<V_SIZEかどうかを判定する。そして、f(i)<=j< V_SIZEである場合は、ステップＳ３９０９の処理を行う。ステップＳ３９０９では、j++とし、ステップＳ３９０７の処理を行う（ステップＳ３９０９）。一方、f(i)<=j<V_SIZEではない場合は、ステップＳ３９１０の処理を行う（ステップＳ３９０８）。
【０２３５】
ステップＳ３９１０では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップＳ３９１１の処理を行う。ステップＳ３９１１では、i++とし、ステップＳ３９０２の処理を行う（ステップＳ３９１１）。一方、i<H_SIZEではない場合は、画素ブロックの左辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ３９１０）。
【０２３６】
図２９は、画素ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。
【０２３７】
ステップＳ４００１では、j=0とし、ステップＳ４００２の処理を行う（ステップＳ４００１）。ステップＳ４００２では、i=0とし、ステップＳ４００３の処理を行う（ステップＳ４００２）。ステップＳ４００３では、斜辺（パーティション分割境界）を成す座標(g(j),j)を算出し、ステップＳ４００４の処理を行う（ステップＳ４００３）。
【０２３８】
ステップＳ４００４では、g(j)<H_SIZEかどうかを判定する。そして、g(j)<H_SIZEである場合は、ステップＳ４００５の処理を行う。一方、g(j)<H_SIZEでない場合は、ステップＳ４０１１の処理を行う（ステップＳ４００４）。
【０２３９】
ステップＳ４００５では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４００６の処理を行う（ステップＳ４００５）。ステップＳ４００６では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップＳ４００７の処理を行う。ステップＳ４００７では、i++とし、ステップＳ４００５の処理を行う（ステップＳ４００７）。一方、0<=i<=g(j)ではない場合は、ステップＳ４００８の処理を行う（ステップＳ４００６）。すなわち、ステップＳ４００５〜ステップＳ４００７は、パーティション分割境界の左側に位置する画素を、パーティション０に属する画素と判定する処理である。
【０２４０】
ステップＳ４００８では、valid_partition0(i,j)=0、valid_partition1(i,j)=１とし、ステップＳ４００９の処理を行う（ステップＳ４００８）。ステップＳ４００９では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップＳ４０１０の処理を行う。ステップＳ４０１０では、i++とし、ステップＳ４００８の処理を行う（ステップＳ４０１０）。一方、g(j)<=i<H_SIZEではない場合は、ステップＳ４０１４の処理を行う（ステップＳ４００９）。すなわち、ステップＳ４００８〜ステップＳ４０１０は、パーティション分割境界の右側に位置する画素を、パーティション１に属する画素と判定する処理である。
【０２４１】
ステップＳ４０１１では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４０１２の処理を行う（ステップＳ４０１１）。ステップＳ４０１２では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップＳ４０１３の処理を行う。ステップＳ４０１３では、i++とし、ステップＳ４０１１の処理を行う（ステップＳ４０１３）。一方、i<H_SIZEではない場合は、ステップＳ４０１４の処理を行う（ステップＳ４０１２）。すなわち、ステップＳ４０１１〜ステップＳ４０１３は、パーティション分割境界と画素ブロックの右辺との交点より下側の画素を、全てパーティション０に属する画素と判定する処理である。
【０２４２】
ステップＳ４０１４では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップＳ４０１５の処理を行う。ステップＳ４０１５では、j++とし、ステップＳ４００２の処理を行う（ステップＳ４０１５）。一方、j<V_SIZEではない場合は、復号ブロックの上辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ４０１４）。
【０２４３】
図３０は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図３０は、図２９の処理と類似し、パーティション分割境界の左側に位置する画素をパーティション０に属する画素と判定し、右側に位置する画素をパーティション１に属する画素と判定し、パーティション分割境界と画素ブロックの左辺との交点より下側の画素を、全てパーティション１に属する画素と判定する処理である。
【０２４４】
ステップＳ４１０１では、j=0とし、ステップＳ４１０２の処理を行う（ステップＳ４１０１）。ステップＳ４１０２では、i=0とし、ステップＳ４１０３の処理を行う（ステップＳ４１０２）。ステップＳ４１０３では、斜辺（パーティション分割境界）を成す座標(g(j),j)を算出し、ステップＳ４１０４の処理を行う（ステップＳ４１０３）。
【０２４５】
ステップＳ４１０４では、0＜=g(j)かどうかを判定する。そして、0＜=g(j)である場合は、ステップＳ４１０５の処理を行う。一方、0＜=g(j)でない場合は、ステップＳ４１１１の処理を行う（ステップＳ４１０４）。
【０２４６】
ステップＳ４１０５では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４１０６の処理を行う（ステップＳ４１０５）。ステップＳ４１０６では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップＳ４１０７の処理を行う。ステップＳ４１０７では、i++とし、ステップＳ４１０５の処理を行う（ステップＳ４１０７）。一方、0<=i<=g(j)ではない場合は、ステップＳ４１０８の処理を行う（ステップＳ４１０６）。
【０２４７】
ステップＳ４１０８では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップＳ４１０９の処理を行う（ステップＳ４１０８）。ステップＳ４１０９では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップＳ４１１０の処理を行う。ステップＳ４１１０では、i++とし、ステップＳ４１０８の処理を行う（ステップＳ４１１０）。一方、g(j)<=i<H_SIZEではない場合は、ステップＳ４１１４の処理を行う（ステップＳ４１０９）。
【０２４８】
ステップＳ４１１１では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップＳ４１１２の処理を行う（ステップＳ４１１１）。ステップＳ４１１２では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップＳ４１１３の処理を行う。ステップＳ４１１３では、i++とし、ステップＳ４１１１の処理を行う（ステップＳ４１１３）。一方、i<H_SIZEではない場合は、ステップＳ４１１４の処理を行う（ステップＳ４１１２）。
【０２４９】
テップＳ４１１４では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップＳ４１１５の処理を行う。ステップＳ４１１５では、j++とし、ステップＳ４１０２の処理を行う（ステップＳ４１１５）。一方、j<V_SIZEではない場合は、画素ブロックの上辺から左辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ４１１４）。
【０２５０】
図３１は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図３１は、図２９の処理と類似し、パーティション分割境界と画素ブロックの左辺との交点より上側の画素を全てパーティション１に属する画素と判定し、パーティション分割境界の左側に位置する画素をパーティション０に属する画素と判定し、右側に位置する画素をパーティション１に属する画素と判定する処理である。
【０２５１】
ステップＳ４２０１では、j=0とし、ステップＳ４２０２の処理を行う（ステップＳ４２０１）。ステップＳ４２０２では、i=0とし、ステップＳ４２０３の処理を行う（ステップＳ４２０２）。ステップＳ４２０３では、斜辺（パーティション分割境界）を成す座標(g(j),j)を算出し、ステップＳ４２０４の処理を行う（ステップＳ４２０３）。
【０２５２】
ステップＳ４２０４では、0＜=g(j)かどうかを判定する。そして、0＜=g(j)である場合は、ステップＳ４２０５の処理を行う。一方、0＜=g(j)でない場合は、ステップＳ４２１１の処理を行う（ステップＳ４２０４）。
【０２５３】
ステップＳ４２０５では、valid_partition0(i,j)=0、valid_partition1(i,j)=1とし、ステップＳ４２０６の処理を行う（ステップＳ４２０５）。ステップＳ４２０６では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップＳ４２０７の処理を行う。ステップＳ４２０７では、i++とし、ステップＳ４２０５の処理を行う（ステップＳ４２０７）。一方、0<=i<=g(j)ではない場合は、ステップＳ４２０８の処理を行う（ステップＳ４２０６）。
【０２５４】
ステップＳ４２０８では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４２０９の処理を行う（ステップＳ４２０８）。ステップＳ４２０９では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップＳ４２１０の処理を行う。ステップＳ４２１０では、i++とし、ステップＳ４２０８の処理を行う（ステップＳ４２１０）。一方、g(j)<=i<H_SIZEではない場合は、ステップＳ４２１４の処理を行う（ステップＳ４２０９）。
【０２５５】
ステップＳ４２１１では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４２１２の処理を行う（ステップＳ４２１１）。ステップＳ４２１２では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップＳ４２１３の処理を行う。ステップＳ４２１３では、i++とし、ステップＳ４２１１の処理を行う（ステップＳ４２１３）。一方、i<H_SIZEではない場合は、ステップＳ４２１４の処理を行う（ステップＳ４２１２）。
【０２５６】
ステップＳ４２１４では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップＳ４２１５の処理を行う。ステップＳ４２１５では、j++とし、ステップＳ４２０２の処理を行う（ステップＳ４２１５）。一方、j<V_SIZEではない場合は、画素ブロックの左辺から下辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ４２１４）。
【０２５７】
図３２は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定の流れを示すフローチャートである。図３２は、図２９の処理と類似し、パーティション分割境界と画素ブロックの右辺との交点より上側の画素を全てパーティション０に属する画素と判定し、パーティション分割境界の左側に位置する画素をパーティション０に属する画素と判定し、右側に位置する画素をパーティション１に属する画素と判定する処理である。
【０２５８】
ステップＳ４３０１では、j=0とし、ステップＳ４３０２の処理を行う（ステップＳ４３０１）。ステップＳ４３０２では、i=0とし、ステップＳ４３０３の処理を行う（ステップＳ４３０２）。ステップＳ４３０３では、斜辺（パーティション分割境界）を成す座標(g(j),j)を算出し、ステップＳ４３０４の処理を行う（ステップＳ４３０３）。
【０２５９】
ステップＳ４３０４では、g(j)<H_SIZEかどうかを判定する。そして、g(j)<H_SIZEである場合は、ステップＳ４３０５の処理を行う。一方、g(j)<H_SIZEでない場合は、ステップＳ４３１１の処理を行う（ステップＳ４３０４）。
【０２６０】
ステップＳ４３０５では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４３０６の処理を行う（ステップＳ４３０５）。ステップＳ４３０６では、0<=i<=g(j)かどうかを判定する。そして、0<=i<=g(j)である場合は、ステップＳ４３０７の処理を行う。ステップＳ４３０７では、i++とし、ステップＳ４３０５の処理を行う（ステップＳ４３０７）。一方、0<=i<=g(j)ではない場合は、ステップＳ４３０８の処理を行う（ステップＳ４３０６）。
【０２６１】
ステップＳ４３０８では、valid_partition0(i,j)=0、valid_partition1(i,j)=１とし、ステップＳ４３０９の処理を行う（ステップＳ４３０８）。ステップＳ４３０９では、g(j)<=i<H_SIZEかどうかを判定する。そして、g(j)<=i<H_SIZEである場合は、ステップＳ４３１０の処理を行う。ステップＳ４３１０では、i++とし、ステップＳ４３０８の処理を行う（ステップＳ４３１０）。一方、g(j)<=i<H_SIZEではない場合は、ステップＳ４３１４の処理を行う（ステップＳ４３０９）。
【０２６２】
ステップＳ４３１１では、valid_partition0(i,j)=1、valid_partition1(i,j)=0とし、ステップＳ４３１２の処理を行う（ステップＳ４３１１）。ステップＳ４３１２では、i<H_SIZEかどうかを判定する。そして、i<H_SIZEである場合は、ステップＳ４３１３の処理を行う。ステップＳ４３１３では、i++とし、ステップＳ４３１１の処理を行う（ステップＳ４３１３）。一方、i<H_SIZEではない場合は、ステップＳ４３１４の処理を行う（ステップＳ４３１２）。
【０２６３】
ステップＳ４３１４では、j<V_SIZEかどうかを判定する。そして、j<V_SIZEである場合は、ステップＳ４３１５の処理を行う。ステップＳ４３１５では、j++とし、ステップＳ４３０２の処理を行う（ステップＳ４３１５）。一方、j<V_SIZEではない場合は、画素ブロックの下辺から右辺にパーティション分割境界がある場合の有効画素判定を終了する（ステップＳ４３１４）。
【０２６４】
以上、図２０〜図３２で示したフローチャートの処理により参照ブロックメモリ１１７１内での画素ブロック有効画素、すなわち参照ブロックの抽出ができる。
【０２６５】
かかる構成によれば、フレームメモリ１１４０から非矩形動き補償を実施するための参照ブロックのアドレスを決定する時間を短くすることができる。そのため、動き検出部１１６０がヘッダ情報（動きベクトル、ブロックパーティション情報、及び参照画像特定情報等）を算出してから、フレームメモリ転送制御部１１７２が、参照ブロックを含む矩形状の画素ブロックを読み出し、参照ブロックメモリ１１７１に書き込むまでの時間を短くすることができる。
【０２６６】
なお、非矩形の参照ブロックを含む矩形領域の参照画面座標での水平座標と垂直座標を計算する方法として外接する矩形の頂点座標から求める方法を示したが、参照ブロックを含む矩形の頂点座標から計算してもよいし、参照ブロックをなす辺の座標から計算してもよい。
【０２６７】
（実施の形態２）
実施の形態１に係るフレームメモリ転送制御部１１７２は、非矩形状の参照ブロックに外接する単一の矩形画素ブロックの画素データを、フレームメモリ１１４０から参照ブロックメモリ１１７１に転送する。例えば、図３３のハッチング（斜線ハッチング及びドットハッチングを含む）で示される三角形の参照ブロック３５００（１０５画素）を動き補償に用いる場合、矩形状の画素ブロック３０００（２５６画素）が転送の対象となる。このように、参照ブロックの形状又は大きさによっては、実際には動き補償に用いない多くの画素（上記の例では、１５１画素）を転送する必要が生じる可能性がある。
【０２６８】
そこで、実施の形態２では、動き補償に用いない画素の一部を転送の対象から除外することによって、フレームメモリ１１４０から参照ブロックメモリ１１７１への転送負荷を低減することを目的とする。なお、実施の形態２に係る画像符号化装置及び画像復号装置の構成及び基本的な動作は実施の形態１と共通するので、共通点の詳しい説明は省略し、相違点を中心に説明する。
【０２６９】
図３３は、動き補償に用いられる非矩形の参照ブロックを含む矩形状の画素ブロックを示す図である。図３４は、実施の形態２に係る画素ブロックの左上座標を導出する処理を示すフローチャートである。すなわち、実施の形態２は、図１３のステップＳ２３０３に相当する処理が実施の形態１と相違する。
【０２７０】
まず、実施の形態２に係るフレームメモリ転送制御部１１７２は、図３３に示されるように、参照画像３０００を予め定められた大きさの矩形状の複数の画素ブロック３１００、３２００、３３００、３４００に区画し、画素ブロック３１００、３２００、３３００、３４００の単位でフレームメモリ１１４０から参照ブロックメモリ１１７１に転送することができる。すなわち、画素ブロック３１００、３２００、３３００、３４００は、例えばＤＲＡＭのアクセス単位であって、図３３の例では、８画素×８画素の正方形である。但し、画素ブロックの大きさは上記に限定されない。また、画素ブロックは正方形である必要はなく、長方形であってもよい。
【０２７１】
そして、実施の形態２に係るフレームメモリ転送制御部１１７２は、複数の画素ブロック３１００、３２００、３３００、３４００のうち、非矩形状の参照ブロック３５００を構成する画素を含む１以上の画素ブロック３２００、３３００、３４００を特定し、特定した１以上の画素ブロック３２００、３３００、３４００の画素データをフレームメモリ１１４０から参照ブロックメモリ１１７１に転送する。
【０２７２】
図３４を参照して、転送対象となる画素ブロックの左上座標を導出する処理を説明する。但し、図３４は、左上座標を導出する処理の一例であって、本発明はこれに限定されない。
【０２７３】
まず、フレームメモリ転送制御部１１７２は、非矩形状の参照ブロック３５００の辺を構成する画素の座標を特定する（Ｓ４４０１）。図３３の例では、斜線ハッチングで示される３９画素の座標が特定される。なお、画素の座標は、ｘ座標（横方向）及びｙ座標（縦方向）の組み合わせで表現され、例えば、左上の画素３１０１の座標は（０，０）となる。
【０２７４】
次に、フレームメモリ転送制御部１１７２は、ステップＳ４４０１で特定した３９画素全てに対して、ステップＳ４４０３〜ステップＳ４４０５の処理を実行する（Ｓ４４０２、Ｓ４４０６）。この繰り返し処理は、非矩形の参照ブロック３５００を構成する画素を含む画素ブロックの左上座標を導出する処理である。
【０２７５】
まず、フレームメモリ転送制御部１１７２は、参照ブロック３５００の辺を構成する画素の座標値の下３ビットを０に置き換える（Ｓ４４０３）。例えば、非矩形の参照ブロック３５００の右上の画素３５０１の座標（１５，２）の下３ビットを０に置き換えると、この画素３５０１を含む画素ブロック３２００の左上の画素３２０１の座標（８，０）が得られる。但し、画素ブロックの大きさが異なれば０に置き換えるビット数も異なり、例えば、画素ブロックの大きさが１６画素×１６画素であれば、座標値の下４ビットを０に置き換えればよい。
【０２７６】
次に、フレームメモリ転送制御部１１７２は、ステップＳ４４０３で導出した座標（８，０）が、後述するステップＳ４４０４で既に出力された座標であるか否かを判断する（Ｓ４４０３）。そして、未だ出力されていない座標である場合（Ｓ４４０３でＮｏ）、フレームメモリ転送制御部１１７２は、ステップＳ４４０３で導出した座標（８，０）を、非矩形の参照ブロック３５００を構成する画素を含む画素ブロック３２００の左上座標として出力する（Ｓ４４０４）。
【０２７７】
一方、次に画素３５０１の左下の画素３５０２に対してステップＳ４４０３〜ステップＳ４４０５を実行したとすると、画素３５０１の場合と同様に、画素ブロック３２００の左上の画素３２０１の座標（８，０）が得られる（Ｓ４４０３）。このため、この座標は出力されない（Ｓ４４０４でＹｅｓ）。
【０２７８】
上記の処理を、図３３の斜線ハッチングで示される３９画素に対して実行すると、例えば、画素３５０３の座標（９，８）から画素ブロック３４００の左上の画素３４０１の座標（８，８）が得られ、画素３５０４の座標（７，１０）から画素ブロック３３００の左上の画素３３０１の座標（０，８）が得られる。
【０２７９】
すなわち、実施の形態２の処理を図３３に適用すれば、図１３のステップＳ２３０３に相当する処理で、３つの画素ブロック３２００、３３００、３４００の左上座標が得られる。一方、各画素ブロック３２００、３３００、３４００のサイズは固定（８画素×８画素）であるので、改めて導出する必要はない。
【０２８０】
このように、実施の形態２によれば、参照ブロック３５００を動き補償で用いるために、３つの画素ブロック３２００、３３００、３４００の画素データ（１９２画素）をフレームメモリ１１４０から参照ブロックメモリ１１７１に転送すればよく、実施の形態１と比較して転送負荷を低減することが可能となる。
【０２８１】
（実施の形態３）  セット・システム実装形態
＊実行プログラムとそのプログラムを保持する記録メディア＊
上記各実施の形態で示した画像復号方法の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ＩＣカード、半導体メモリ等、プログラムを記録できるものであればよい。
【０２８２】
さらにここで、上記各実施の形態で示した画像処理装置の応用例とそれを用いたシステムを説明する。
【０２８３】
＊ネットで接続されたシステム＊
図３５は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０６〜ex１１０が設置されている。
【０２８４】
このコンテンツ供給システムex１００は、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０６〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（Personal Digital Assistant）ex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５などの各機器が接続される。
【０２８５】
しかし、コンテンツ供給システムex１００は図３５のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex１０６〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
【０２８６】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex１１６はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex１１４は、ＧＳＭ（登録商標）（Global System for Mobile Communications）方式、ＣＤＭＡ（Code Division Multiple Access）方式、Ｗ−ＣＤＭＡ（Wideband-Code Division Multiple Access）方式、若しくはＬＴＥ（Long Term Evolution）方式、ＨＳＰＡ(High Speed Packet Access)の携帯電話、またはＰＨＳ（Personal Handyphone System）等であり、いずれでも構わない。
【０２８７】
コンテンツ供給システムex１００では、カメラex１１３等が基地局ex１０９、電話網ex１０４を通じてストリーミングサーバex１０３に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex１１３を用いて撮影するコンテンツ（例えば、音楽ライブの映像等）に対して上記各実施の形態で説明したように符号化処理を行い、ストリーミングサーバex１０３に送信する。一方、ストリーミングサーバex１０３は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４、ゲーム機ex１１５等がある。配信されたデータを受信した各機器では、受信したデータを復号処理して再生する。
【０２８８】
なお、撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号処理はクライアントで行っても、ストリーミングサーバex１０３で行ってもよいし、互いに分担して行ってもよい。また、カメラex１１３に限らず、カメラex１１６で撮影した静止画像および／または動画像データを、コンピュータex１１１を介してストリーミングサーバex１０３に送信してもよい。この場合の符号化処理はカメラex１１６、コンピュータex１１１、ストリーミングサーバex１０３のいずれで行ってもよいし、互いに分担して行ってもよい。
【０２８９】
また、これら符号化・復号処理は、一般的にコンピュータex１１１や各機器が有するＬＳＩex５００において処理する。ＬＳＩex５００は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号用のソフトウェアをコンピュータex１１１等で読み取り可能な何らかの記録メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込み、そのソフトウェアを用いて符号化・復号処理を行ってもよい。さらに、携帯電話ex１１４がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex１１４が有するＬＳＩex５００で符号化処理されたデータである。
【０２９０】
また、ストリーミングサーバex１０３は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
【０２９１】
以上のようにして、コンテンツ供給システムex１００では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex１００では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
【０２９２】
＊放送システム＊
なお、コンテンツ供給システムex１００の例に限らず、図３６に示すように、デジタル放送用システムex２００にも、上記各実施の形態の少なくとも動画像符号化装置または動画像復号装置のいずれかを組み込むことができる。具体的には、放送局ex２０１では映像情報のビットストリームが電波を介して通信または衛星ex２０２に伝送される。このビットストリームは上記各実施の形態で説明した動画像符号化方法により符号化された符号化ビットストリームである。これを受けた放送衛星ex２０２は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex２０４が受信する。受信したビットストリームを、テレビ（受信機）ex３００またはセットトップボックス（ＳＴＢ）ex２１７等の装置が復号して再生する。
【０２９３】
また、記録媒体であるＣＤやＤＶＤ等の蓄積メディアｅｘ２１４に記録したビットストリームを読み取り、復号する再生装置ｅｘ２１２にも上記実施の形態で示した画像復号装置を実装することが可能である。この場合、再生された映像信号はモニタｅｘ２１３に表示される。
【０２９４】
また、ＤＶＤ、ＢＤ等の記録メディアex２１５に記録した符号化ビットストリームを読み取り復号する、または記録メディアex２１５に映像信号を符号化し書き込むリーダ／レコーダex２１８にも上記各実施の形態で示した動画像復号装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex２１９に表示され、符号化ビットストリームが記録された記録メディアex２１５により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex２０３または衛星／地上波放送のアンテナex２０４に接続されたセットトップボックスex２１７内に動画像復号装置を実装し、これをテレビのモニタex２１９で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号装置を組み込んでもよい。
【０２９５】
＊放送システム内の機器の一例としてのテレビ＊
図３７は、上記各実施の形態で説明した画像復号方法を用いたテレビ（受信機）ex３００を示す図である。テレビex３００は、上記放送を受信するアンテナex２０４またはケーブルex２０３等を介して映像情報のビットストリームを取得、または出力するチューナex３０１と、受信した符号化データを復調する、または外部に送信する符号化データに変調する変調／復調部ex３０２と、復調した映像データ、音声データを分離する、または符号化された映像データ、音声データを多重化する多重／分離部ex３０３を備える。また、テレビex３００は、音声データ、映像データそれぞれを復号する、またはそれぞれの情報を符号化する音声信号処理部ex３０４、映像信号処理部ex３０５を有する信号処理部ex３０６と、復号した音声信号を出力するスピーカex３０７、復号した映像信号を表示するディスプレイ等の表示部ex３０８を有する出力部ex３０９とを有する。さらに、テレビex３００は、ユーザ操作の入力を受け付ける操作入力部ex３１２等を有するインタフェース部ex３１７を有する。さらに、テレビex３００は、各部を統括的に制御する制御部ex３１０、各部に電力を供給する電源回路部ex３１１を有する。インタフェース部ex３１７は、操作入力部ex３１２以外に、リーダ／レコーダex２１８等の外部機器と接続されるブリッジex３１３、ＳＤカード等の記録メディアex２１６を装着可能とするためのスロット部ex３１４、ハードディスク等の外部記録メディアと接続するためのドライバex３１５、電話網と接続するモデムex３１６等を有していてもよい。なお記録メディアex２１６は、格納する不揮発性／揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex３００の各部は同期バスを介して互いに接続されている。
【０２９６】
まず、テレビex３００がアンテナex２０４等により外部から取得したデータを復号し、再生する構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、ＣＰＵ等を有する制御部ex３１０の制御に基づいて、変調／復調部ex３０２で復調した映像データ、音声データを多重／分離部ex３０３で分離する。さらにテレビex３００は、分離した音声データを音声信号処理部ex３０４で復号し、分離した映像データを映像信号処理部ex３０５で上記各実施の形態で説明した復号方法を用いて復号する。復号した音声信号、映像信号は、それぞれ出力部ex３０９から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex３１８、ex３１９等に一旦これらの信号を蓄積するとよい。また、テレビex３００は、放送等からではなく、磁気／光ディスク、ＳＤカード等の記録メディアex２１５、ex２１６から符号化された符号化ビットストリームを読み出してもよい。次に、テレビex３００が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex３００は、リモートコントローラex２２０等からのユーザ操作を受け、制御部ex３１０の制御に基づいて、音声信号処理部ex３０４で音声信号を符号化し、映像信号処理部ex３０５で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重／分離部ex３０３で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex３２０、ex３２１等に一旦これらの信号を蓄積するとよい。なお、バッファex３１８〜ex３２１は図示しているように複数備えていてもよいし、１つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調／復調部ex３０２や多重／分離部ex３０３の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
【０２９７】
また、テレビex３００は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのＡＶ入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex３００は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号処理、外部出力のみが可能な構成であってもよい。
【０２９８】
また、リーダ／レコーダex２１８で記録メディアから符号化ビットストリームを読み出す、または書き込む場合には、上記復号処理または符号化処理はテレビex３００、リーダ／レコーダex２１８のいずれで行ってもよいし、テレビex３００とリーダ／レコーダex２１８が互いに分担して行ってもよい。
【０２９９】
＊テレビまたはリーダ／レコーダが記録メディアへの記録再生を行う構成について＊
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生／記録部ex４００の構成を図３８に示す。情報再生／記録部ex４００は、以下に説明する要素ex４０１〜ex４０７を備える。光ヘッドex４０１は、光ディスクである記録メディアex２１５の記録面にレーザスポットを照射して情報を書き込み、記録メディアex２１５の記録面からの反射光を検出して情報を読み込む。変調記録部ex４０２は、光ヘッドex４０１に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex４０３は、光ヘッドex４０１に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex２１５に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex４０４は、記録メディアex２１５に記録するための情報および記録メディアex２１５から再生した情報を一時的に保持する。ディスクモータex４０５は記録メディアex２１５を回転させる。サーボ制御部ex４０６は、ディスクモータex４０５の回転駆動を制御しながら光ヘッドex４０１を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex４０７は、情報再生／記録部ex４００全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex４０７が、バッファex４０４に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex４０２、再生復調部ex４０３、サーボ制御部ex４０６を協調動作させながら、光ヘッドex４０１を通して、情報の記録再生を行うことにより実現される。システム制御部ex４０７は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
【０３００】
以上では、光ヘッドex４０１はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
【０３０１】
図３９に光ディスクである記録メディアex２１５の模式図を示す。記録メディアex２１５の記録面には案内溝（グルーブ）がスパイラル状に形成され、情報トラックex２３０には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex２３１の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex２３０を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex２１５は、データ記録領域ex２３３、内周領域ex２３２、外周領域ex２３４を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex２３３であり、データ記録領域ex２３３より内周または外周に配置されている内周領域ex２３２と外周領域ex２３４は、ユーザデータの記録以外の特定用途に用いられる。情報再生／記録部ex４００は、このような記録メディアex２１５のデータ記録領域ex２３３に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した符号化データの読み書きを行う。
【０３０２】
以上では、１層のＤＶＤ、ＢＤ等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録／再生を行う構造の光ディスクであってもよい。
【０３０３】
また、デジタル放送用システムex２００において、アンテナex２０５を有する車ex２１０で衛星ex２０２等からデータを受信し、車ex２１０が有するカーナビゲーションex２１１等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex２１１の構成は例えば図３７に示す構成のうち、ＧＰＳ受信部を加えた構成が考えられ、同様なことがコンピュータex１１１や携帯電話ex１１４等でも考えられる。また、上記携帯電話ex１１４等の端末は、テレビex３００と同様に、符号化器・復号器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号器のみの受信端末という３通りの実装形式が考えられる。
【０３０４】
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
【０３０５】
また、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【０３０６】
（実施の形態４）  ＬＳＩ実装形態
＊ＬＳＩ１  発明部のみ＊
本実施の形態では、実施の形態１に示した画像復号装置を、典型的には半導体集積回路であるＬＳＩとして実現した形態を図４０に示す。フレームメモリ３をＤＲＡＭ上に実現し、その他の回路やメモリをＬＳＩ上に構成している。
【０３０７】
これらは個別に１チップ化されてもよいし、一部またはすべてを含むように１チップ化されても良い。ここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０３０８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現しても良い。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０３０９】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適応などが可能性として有り得る。
【０３１０】
さらに加えて、本実施の形態の画像復号装置を集積化した半導体チップと、画像を描画するためのディスプレイとを組み合せて、様々な用途に応じた描画機器を構成することができる。携帯電話やテレビ、デジタルビデオレコーダー、デジタルビデオカメラ、カーナビゲーション等における情報描画手段として、本発明を利用することが可能である。ディスプレイとしては、ブラウン管（ＣＲＴ）の他、液晶やＰＤＰ（プラズマディスプレイパネル）、有機ＥＬなどのフラットディスプレイ、プロジェクターを代表とする投射型ディスプレイなどと組み合わせることが可能である。
【０３１１】
また、本実施の形態は、システムＬＳＩとＤＲＡＭ(Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ)の構成を示したが、ｅＤＲＡＭ（ｅｍｂｅｄｅｄ  ＤＲＡＭ）やＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やハードディスクなど他の記憶装置で構成してもかまわない。
【０３１２】
（実施の形態５）  セット・システム実装形態
＊ＬＳＩ１  全体＊
上記各実施の形態で示した画像復号装置および方法は、典型的には集積回路であるＬＳＩで実現される。一例として、図４１に１チップ化されたＬＳＩex５００の構成を示す。ＬＳＩex５００は、以下に説明する要素ex５０２〜ex５０９を備え、各要素はバスex５１０を介して接続している。電源回路部ex５０５は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
【０３１３】
また、例えば復号処理を行う場合には、ＬＳＩex５００は、マイコンex５０２の制御に基づいて、ストリームＩ／Ｏex５０６によって復調処理回路ex２２０から得られた符号化データ、または記録メディアex２１５から読み出して得た符号化データを一旦メモリex５１１等に蓄積する。マイコンex５０２の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex５０７に送られ、信号処理部ex５０７において音声データの復号および／または映像データの復号が行われる。ここで映像信号の復号処理は上記各実施の形態で説明した復号処理である。さらに、場合により復号された音声信号と復号された映像信号を同期して再生できるようそれぞれの信号を一旦メモリex５１１等に蓄積するとよい。復号された出力信号はメモリex５１１等を適宜介しながら、ＡＶＩ／Ｏex５０９からモニタｅｘ２１９等に出力される。メモリex５１１にアクセスする際にはメモリコントローラex５０３を介する構成である。
【０３１４】
なお、上記では、メモリex５１１がＬＳＩex５００の外部の構成として説明したが、ＬＳＩex５００の内部に含まれる構成であってもよい。また、ＬＳＩex５００は１チップ化されてもよいし、複数チップ化されてもよい。
【０３１５】
なお、ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０３１６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【０３１７】
さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【産業上の利用可能性】
【０３１８】
本発明の画像復号装置は、様々な用途に利用可能である。例えば、テレビ、デジタルビデオレコーダー、カーナビゲーション、携帯電話、デジタルカメラ、デジタルビデオカメラ等の高解像度の情報表示機器や撮像機器に利用可能であり、利用価値が高い。
【符号の説明】
【０３１９】
１００  方法
１１２  開始ブロック
１１４，１１６，１１８  機能ブロック
１２０  終了ブロック
１０００  画像符号化装置
１１００  符号化処理部
１１１０  減算器
１１２０  符号化部
１１２１  直交変換部
１１２２  量子化部
１１２３  エントロピー符号化部
１１２４，２１１２  逆量子化部
１１２５，２１１３  逆直交変換部
１１２６，２１２０  加算器
１１３０，２１３０  デブロッキングフィルタ
１１４０，２１４０  フレームメモリ
１１５０，２１５０  面内予測部
１１６０  動き検出部
１１７０，２１６０  動き補償部
１１７１，２１６１  参照ブロックメモリ
１１７２，２１６２  フレームメモリ転送制御部
１１７３，２１６３  参照ブロックメモリ転送制御部
１１７４，２１６４  動き補償処理部
１１７５，２１６５  参照ブロックメモリ状態管理部
１１８０，２１７０  スイッチ
１２００  符号化制御部
２０００  画像復号装置
２１００  復号処理部
２１１０  復号部
２１１１  エントロピー復号部
２２００  復号制御部
３０００  参照画像
３１００，３２００，３３００，３４００  画素ブロック
３１０１，３２０１，３３０１，３４０１，３５０１，３５０２，３５０３，３５０４  画素
３５００  参照ブロック
ex１００      コンテンツ供給システム
ex１０１      インターネット
ex１０２      インターネットサービスプロバイダ
ex１０３      ストリーミングサーバ
ex１０４      電話網
ex１０６      基地局
ex１０７      基地局
ex１０８      基地局
ex１０９      基地局
ex１１０      基地局
ex１１１      コンピュータ
ex１１２      ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）
ex１１３      カメラ
ex１１４      携帯電話
ex１１５      ゲーム機
ex１１６      カメラ
ex１１７      マイク
ex２００      デジタル放送用システム
ex２０１      放送局
ex２０２      放送衛星
ex２０３      ケーブル
ex２０４      アンテナ
ex２０５      アンテナ
ex２１０      車
ex２１１      カーナビゲーション
ex２１２      再生装置
ex２１３      モニタ
ex２１５      記録メディア
ex２１６      記録メディア
ex２１７      セットトップボックス（ＳＴＢ）
ex２１８      リーダ／レコーダ
ex２１９      モニタ
ex２２０      復調部
ex２３０      情報トラック
ex２３１      記録ブロック
ex２３２      内周領域
ex２３３      データ記録領域
ex２３４      外周領域
ex３００      テレビ（受信機）
ex３０１      チューナ
ex３０２      変調／復調部
ex３０３      多重／分離部
ex３０４      音声信号処理部
ex３０５      映像信号処理部
ex３０６      信号処理部
ex３０７      スピーカ
ex３０８      表示部
ex３０９      出力部
ex３１０      制御部
ex３１１      電源回路部
ex３１２      操作入力部
ex３１３      ブリッジ
ex３１４      スロット部
ex３１５      ドライバ
ex３１６      モデム
ex３１７      インタフェース部
ex３１８      バッファ
ex３１９      バッファ
ex４００      情報再生／記録部
ex４０１      光ヘッド
ex４０２      変調記録部
ex４０３      再生復調部
ex４０４      バッファ
ex４０５      ディスクモータ
ex４０６      サーボ制御部
ex４０７      システム制御部
ex５００      ＬＳＩ
ex５０２      ＣＰＵ
ex５０３      メモリコントローラ
ex５０５      電源回路部
ex５０６      ストリームＩ／Ｏ
ex５０７      信号処理部
ex５０９      ＡＶ  Ｉ／Ｏ
ex５１０      バス
ex５１１      メモリ
【図１】
2012120582.tif 000005
【図２Ａ】
2012120582.tif 000006
【図２Ｂ】
2012120582.tif 000007
【図３Ａ】
2012120582.tif 000008
【図３Ｂ】
2012120582.tif 000009
【図４】
2012120582.tif 000010
【図５Ａ】
2012120582.tif 000011
【図５Ｂ】
2012120582.tif 000012
【図６Ａ】
2012120582.tif 000013
【図６Ｂ】
2012120582.tif 000014
【図７】
2012120582.tif 000015
【図８】
2012120582.tif 000016
【図９】
2012120582.tif 000017
【図１０】
2012120582.tif 000018
【図１１】
2012120582.tif 000019
【図１２】
2012120582.tif 000020
【図１３】
2012120582.tif 000021
【図１４】
2012120582.tif 000022
【図１５】
2012120582.tif 000023
【図１６】
2012120582.tif 000024
【図１７】
2012120582.tif 000025
【図１８】
2012120582.tif 000026
【図１９】
2012120582.tif 000027
【図２０】
2012120582.tif 000028
【図２１】
2012120582.tif 000029
【図２２】
2012120582.tif 000030
【図２３】
2012120582.tif 000031
【図２４】
2012120582.tif 000032
【図２５】
2012120582.tif 000033
【図２６】
2012120582.tif 000034
【図２７】
2012120582.tif 000035
【図２８】
2012120582.tif 000036
【図２９】
2012120582.tif 000037
【図３０】
2012120582.tif 000038
【図３１】
2012120582.tif 000039
【図３２】
2012120582.tif 000040
【図３３】
2012120582.tif 000041
【図３４】
2012120582.tif 000042
【図３５】
2012120582.tif 000043
【図３６】
2012120582.tif 000044
【図３７】
2012120582.tif 000045
【図３８】
2012120582.tif 000046
【図３９】
2012120582.tif 000047
【図４０】
2012120582.tif 000048
【図４１】
2012120582.tif 000049
【図４２】
2012120582.tif 000050
【図４３】
2012120582.tif 000051
【図４４】
2012120582.tif 000052
【図４５】
2012120582.tif 000053
【手続補正書】
【提出日】平成24年6月29日(2012.6.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
符号化ストリームを復号して復号動画像を生成する動画像復号装置であって、
参照画像を記憶するフレームメモリと、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償部と、
前記符号化ストリームから前記復号動画像を生成する復号部とを備え、
前記動き補償部は、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備え、
前記復号部は、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償部によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成し、
前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像復号装置。
【請求項２】
前記動き補償部は、さらに、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備え、
前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する
請求項１に記載の動画像復号装置。
【請求項３】
前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項１又は２に記載の動画像復号装置。
【請求項４】
前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む１以上の画素ブロックを特定し、特定した前記１以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項１又は２に記載の動画像復号装置。
【請求項５】
前記動き補償部は、さらに、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備え、
前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送する
請求項１〜４のいずれか１項に記載の動画像復号装置。
【請求項６】
動画像を符号化して符号化ストリームを生成する動画像符号化装置であって、
参照画像を記憶するフレームメモリと、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償部と、
前記動画像から前記符号化ストリームを生成する符号化部とを備え、
前記動き補償部は、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備え、
前記符号化部は、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償部によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成し、
前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像符号化装置。
【請求項７】
前記動き補償部は、さらに、矩形状の前記画素ブロックから非矩形状の前記参照ブロックを抽出し、抽出した前記参照ブロックの画素データを前記参照ブロックメモリから前記動き補償処理部に転送する参照ブロック転送制御部を備え、
前記動き補償処理部は、前記参照ブロック転送制御部によって前記参照ブロックメモリから転送された前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する
請求項６に記載の動画像符号化装置。
【請求項８】
前記フレームメモリ転送制御部は、非矩形状の前記参照ブロックに外接する矩形状の前記画素ブロックを特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項６又は７に記載の動画像符号化装置。
【請求項９】
前記フレームメモリ転送制御部は、前記参照画像を構成する予め定められた大きさの矩形状の複数の画素ブロックのうち、非矩形状の前記参照ブロックを構成する画素を含む１以上の画素ブロックを特定し、特定した前記１以上の画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送する
請求項６又は７に記載の動画像符号化装置。
【請求項１０】
前記動き補償部は、さらに、前記参照画像の画素データが前記参照ブロックメモリに記憶されているか否かを、予め定められた大きさの転送ブロック単位で管理する参照ブロックメモリ状態管理部を備え、
前記フレームメモリ転送制御部は、特定した前記画素ブロックのうち、前記参照ブロックメモリに記憶されていない画素データを、前記参照ブロックメモリ状態管理部で管理されている前記転送ブロック単位で選択的に転送する
請求項６〜９のいずれか１項に記載の動画像符号化装置。
【請求項１１】
参照画像を記憶するフレームメモリと、前記参照画像のうちの一部を記憶するための参照ブロックメモリとを備える動画像復号装置が、符号化ストリームを復号して復号動画像を生成する動画像復号方法であって、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償ステップと、
前記符号化ストリームから前記復号動画像を生成する復号ステップとを含み、
前記動き補償ステップは、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含み、
前記復号ステップでは、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償ステップで生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成し、
前記フレームメモリ転送制御ステップでは、前記復号ステップで取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像復号方法。
【請求項１２】
参照画像を記憶するフレームメモリと、前記参照画像のうちの一部を記憶するための参照ブロックメモリとを備える動画像符号化装置が、動画像を符号化して符号化ストリームを生成する動画像符号化方法であって、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償ステップと、
前記動画像から前記符号化ストリームを生成する符号化ステップとを含み、
前記動き補償ステップは、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含み、
前記符号化ステップでは、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償ステップで生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成し、
前記フレームメモリ転送制御ステップでは、前記符号化ステップで生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
動画像符号化方法。
【請求項１３】
参照画像を記憶するフレームメモリと、前記参照画像のうちの一部を記憶するための参照ブロックメモリとを備えるコンピュータに、符号化ストリームを復号して復号動画像を生成させるプログラムであって、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償ステップと、
前記符号化ストリームから前記復号動画像を生成する復号ステップとを、コンピュータに実行させ、
前記動き補償ステップは、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含み、
前記復号ステップでは、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償ステップで生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成し、
前記フレームメモリ転送制御ステップでは、前記復号ステップで取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
プログラム。
【請求項１４】
参照画像を記憶するフレームメモリと、前記参照画像のうちの一部を記憶するための参照ブロックメモリを備えるコンピュータに、動画像を符号化して符号化ストリームを生成させるプログラムであって、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償ステップと、
前記動画像から前記符号化ストリームを生成する符号化ステップとを、コンピュータに実行させ、
前記動き補償ステップは、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御ステップと、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理ステップとを含み、
前記符号化ステップでは、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償ステップで生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成し、
前記フレームメモリ転送制御ステップでは、前記符号化ステップで生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
プログラム。
【請求項１５】
符号化ストリームを復号して復号動画像を生成する集積回路であって、
参照画像を記憶するフレームメモリと、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償部と、
前記符号化ストリームから前記復号動画像を生成する復号部とを備え、
前記動き補償部は、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備え、
前記復号部は、前記符号化ストリームから前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを取得すると共に、前記符号化ストリームと前記動き補償部によって生成された前記予測ブロックとを用いて、前記符号化ストリームから前記復号動画像を生成し、
前記フレームメモリ転送制御部は、前記復号部によって取得された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
集積回路。
【請求項１６】
動画像を符号化して符号化ストリームを生成する集積回路であって、
参照画像を記憶するフレームメモリと、
動画像に含まれる非矩形状の対象ブロックに対して、前記フレームメモリに記憶されている前記参照画像を用いて動き補償を行う動き補償部と、
前記動画像から前記符号化ストリームを生成する符号化部とを備え、
前記動き補償部は、
前記参照画像のうちの一部を記憶するための参照ブロックメモリと、
前記対象ブロックに対する動き補償に用いられる非矩形状の参照ブロックを含む矩形状の画素ブロックを前記参照画像の中から特定し、特定した前記画素ブロックの画素データを前記フレームメモリから前記参照ブロックメモリに転送するフレームメモリ転送制御部と、
前記参照ブロックメモリに記憶されている前記画素ブロックに含まれる前記参照ブロックを用いて、前記対象ブロックの予測ブロックを生成する動き補償処理部とを備え、
前記符号化部は、前記参照画像の形状を示すブロックパーティション情報及び動きベクトルを生成すると共に、前記動き補償部によって生成された前記予測ブロックを用いて、前記動画像から前記符号化ストリームを生成し、
前記フレームメモリ転送制御部は、前記符号化部で生成された前記ブロックパーティション情報及び前記動きベクトルを用いて、非矩形状の前記参照ブロックを含む矩形状の前記画素ブロックを特定する
集積回路。
【国際調査報告】
2012120582.tif 000054
2012120582.tif 000055
2012120582.tif 000056
2012120582.tif 000057