(57)【特許請求の範囲】
【請求項１】
動画像に含まれるフレーム画像を分割したマクロブロック毎に複数パターンの縮小画像を生成する縮小部と、
前記マクロブロック毎に検出された動きベクトルを統計処理する統計処理部と、
前記縮小部により参照フレームを縮小した複数パターンの縮小画像のうちの１つの縮小画像を前記統計処理部の処理結果に基づいて選択し、選択した前記縮小画像内の第１探索範囲を探索して第１動きベクトルを検出する第１の動き探索部と、
前記参照フレームのうち前記第１動きベクトルに基づいて設定される第２探索範囲を探索して第２動きベクトルを検出する第２の動き探索部と、を有し、
前記フレーム画像を分割した前記マクロブロックは画素マトリックスであり、
前記縮小部は、前記画素マトリックスにおいて、第１の配列方向の成分と前記第１の配列方向と直交する第２の配列方向の成分との比が異なる複数の設定方向に応じて前記マクロブロックに含まれる画素を間引いて、前記複数パターンの縮小画像を生成すること、を特徴とする符号化回路。
【請求項２】
前記縮小部は、前記設定方向と垂直な第１の直線及び第２の直線を前記設定方向に沿って交互に設定し、前記第１の直線に沿って前記画素を１画素おきに間引き、前記第２の直線の前記画素を間引いて前記縮小画像を生成すること、を特徴とする請求項１に記載の符号化回路。
【請求項３】
前記統計処理部は、処理対象のフレーム画像において、処理対象のマクロブロックに隣接するマクロブロックの動きベクトルを統計処理すること、を特徴とする請求項１または２に記載の符号化回路。
【請求項４】
前記統計処理部は、前記処理対象のフレーム画像において検出した動きベクトルと、前記処理対象のフレーム画像に対する後方の参照フレームにおいて検出した動きベクトルとを統計処理すること、を特徴とする請求項３に記載の符号化回路。
【請求項５】
前記統計処理部は、処理対象のフレーム画像において、処理対象のマクロブロックに隣接するマクロブロックの動きベクトルと、前記参照フレームにおいて前記処理対象のマクロブロックと空間的に同一位置のマクロブロックを含む参照領域内のマクロブロックの動きベクトルとを統計処理すること、を特徴とする請求項１または２に記載の符号化回路。
【請求項６】
前記第１の動き探索部は、前記統計処理部の処理結果として得られる統計動きベクトルにおける、第１の配列方向の成分と、前記第１の配列方向と直交する第２の配列方向の成分の比に応じて、前記複数パターンの縮小画像のうちの１つの縮小画像を選択すること、を特徴とする請求項１〜５のいずれか一項に記載の符号化回路。
【請求項７】
動画像に含まれるフレーム画像を分割したマクロブロック毎に複数パターンの縮小画像を生成し、
前記マクロブロック毎に検出された動きベクトルを統計処理し、
参照フレームを縮小した複数パターンの縮小画像のうちの１つの縮小画像を前記統計処理の処理結果に基づいて選択し、選択した前記縮小画像内の第１探索範囲を探索して第１動きベクトルを検出し、
前記参照フレームのうち前記第１動きベクトルに基づいて設定される第２探索範囲を探索して第２動きベクトルを検出し、
前記フレーム画像を分割した前記マクロブロックは画素マトリックスであり、
前記画素マトリックスにおいて、第１の配列方向の成分と前記第１の配列方向と直交する第２の配列方向の成分との比が異なる複数の設定方向に応じて前記マクロブロックに含まれる画素を間引いて、前記複数パターンの縮小画像を生成すること、を特徴とする符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
動画像の符号化回路、符号化方法に関する。
【背景技術】
【０００２】
従来、ＭＰＥＧ（Moving Picture Experts Group）やＨ．２６４等は、動画像の圧縮符号化の規格として知られている。これらの圧縮符号化を行う画像処理装置では、画面内予測（イントラ予測）や画面間予測（インター予測）を行う。画面間予測では、動き探索処理を行い、符号化対象の画面（現処理画像とよぶ）を分割したマクロブロック（ＭＢ）の動きベクトルを検出する。動き探索処理は、処理対象のマクロブロックと類似したブロックを、現処理画像と時間的に前後関係にある参照画像の中から探し出す処理である。動き探索処理において、縮小画像が用いられることがある（たとえば、特許文献１，２参照）。現処理画像と参照画像の水平方向と垂直方向に沿って一律に画素を間引く、たとえば偶数番目の画素を間引いて縮小画像を生成する。この縮小画像を用いて動き探索処理を行い、その結果に基づいて、現処理画像と参照画像における動き探索処理の探索範囲を設定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１５８８５５号公報
【特許文献２】特開２０１１−０５５５５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、動画像を符号化する符号化装置において、符号化の効率（画面間予測による符号化の効率）を向上させるためには、動き探索処理において、処理対象のマクロブロックにより類似したブロックを検出することが求められる。それには、広い探索範囲が望ましい。しかし、探索範囲を広くすることは、探索に係る時間を長くし、処理効率の低下を招く。
【課題を解決するための手段】
【０００５】
本発明の一観点によれば、動画像に含まれるフレーム画像を分割したマクロブロック毎に複数パターンの縮小画像を生成する縮小部と、前記マクロブロック毎に検出された動きベクトルを統計処理する統計処理部と、前記縮小部により参照フレームを縮小した複数パターンの縮小画像のうちの１つの縮小画像を前記統計処理部の処理結果に基づいて選択し、選択した前記縮小画像内の第１探索範囲を探索して第１動きベクトルを検出する第１の動き探索部と、前記参照フレームのうち前記第１動きベクトルに基づいて設定される第２探索範囲を探索して第２動きベクトルを検出する第２の動き探索部と、を有し、前記フレーム画像を分割した前記マクロブロックは画素マトリックスであり、前記縮小部は、前記画素マトリックスにおいて、第１の配列方向の成分と前記第１の配列方向と直交する第２の配列方向の成分との比が異なる複数の設定方向に応じて前記マクロブロックに含まれる画素を間引いて、前記複数パターンの縮小画像を生成する。
【発明の効果】
【０００６】
本発明の一観点によれば、符号化効率を向上することができる。
【図面の簡単な説明】
【０００７】
【図１】符号化装置の概略構成図である。
【図２】動きベクトル検出部のブロック図である。
【図３】符号化するピクチャの説明図である。
【図４】ピクチャ間における前方参照の説明図である。
【図５】ピクチャ間における前方参照及び後方参照の説明図である。
【図６】マクロブロックの処理順序と動きベクトル予測値等の算出の説明図である。
【図７】（ａ），（ｂ）は現処理画像の動きベクトル探索を示す説明図である。
【図８】（ａ），（ｂ）は縮小画像の動きベクトル探索を示す説明図である。
【図９】（ａ），（ｂ）は縮小画像の動きベクトル探索を示す説明図である。
【図１０】（ａ），（ｂ）は現処理画像の動きベクトル探索を示す説明図である。
【図１１】（ａ）〜（ｆ）は動き探索における全探索の説明図である。
【図１２】現処理画像と探索範囲、探索結果を示す説明図である。
【図１３】本実施形態の処理を示すフローチャートである。
【図１４】比較例の処理を示すフローチャートである。
【図１５】統計処理に用いるマクロブロックを示す説明図である。
【図１６】（ａ）〜（ｄ）は縮小画像の作成処理を示す説明図である。
【図１７】縮小画像のパターン（ケース１〜４）を示す説明図である。
【図１８】縮小画像のパターン（ケース５〜８）を示す説明図である。
【図１９】縮小画像のパターン（ケース９〜１２）を示す説明図である。
【図２０】縮小画像のパターン（ケース１３〜１６）を示す説明図である。
【図２１】縮小画像のパターン選択処理を示すフローチャートである。
【図２２】縮小画像のパターン選択処理を示すフローチャートである。
【図２３】縮小画像のパターン選択処理を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、一実施形態を説明する。
先ず、符号化装置の概略を説明する。
図１に示す符号化装置１０は、たとえばＭＰＥＧ２の規格にしたがって、入力画像１１を符号化した符号化信号１２を生成する符号化回路である。
【０００９】
マクロブロック分割部（ＭＢ分割部）２１は、入力画像１１を処理単位で分割した画像（マクロブロック（ＭＢ））を、減算器２２と動きベクトル検出部３２に出力する。
減算器２２は、マクロブックと、予測モード選択部３４から出力される予測画像との差分値を算出し、その差分値を出力する。直交変換量子化部２３は、上記差分値を直交変換した後に、量子化を行い、量子化したデータを出力する。直交変換は、たとえば離散コサイン変換（ＤＣＴ:Discrete Cosine Transform）である。エントロピー符号化部２４は、直交変換量子化部２３により量子化されたデータを可変長符号化変換し、符号化信号１２を出力する。
【００１０】
逆量子化逆直交変換部２５は、直交変換量子化部２３により量子化されたデータを逆量子化した後、逆直交変換を行い、処理後のデータを出力する。逆直交変換は、たとえば逆離散コサイン変換（ＩＤＣＴ:Inverse DCT）である。加算器２６は、逆量子化逆直交変換部２５の出力データに、予測モード選択部３４から出力される予測画像を加算して参照画像を生成する。この参照画像は、現フレームバッファ２７に保持される。
【００１１】
フレーム内予測部２８は、現フレームバッファ２７に保持された参照画像を入力し、隣接ブロックからの画素レベルに基づいて、参照画像のフレーム内予測を行う。デブロッキングフィルタ２９は、現フレームバッファ２７に保持された参照画像を入力し、隣接する２つのマクロブロックの境界を平滑化して出力する。これにより、デブロッキングフィルタ２９は、画像を符号化した際に生じるブロック歪を減少させる。フレームバッファ管理部３０は、デブロッキングフィルタ２９の出力データをフレームバッファ３１に出力し、フレームバッファ３１はその出力データを記憶する。
【００１２】
動きベクトル検出部３２は、ＭＢ分割部２１から入力されたマクロブロック（ＭＢ）と、過去のフレームバッファ３１に格納された参照画像とを用いて、対象マクロブロックの動きベクトル（ＭＶ:Motion Vector）を検出する。動きベクトル（ＭＶ）は、通常、周辺領域との相関が高い。フレーム間予測部３３は、周辺領域の動きベクトル（ＭＶ）に基づいて動きベクトル予測値（ＭＶＰ:Motion Vector Predictor）を算出する。さらに、フレーム間予測部３３は、動きベクトル（ＭＶ）と動きベクトル予測値（ＭＶＰ）との間の予測差分値（ＭＶＤ:Motion Vector Difference ）を算出する。上記のエントロピー符号化部２４は、この予測差分値（ＭＶＤ）を含む符号化信号１２を出力する。復号化装置（図示略）において、予測差分値（ＭＶＤ）により動きベクトル（ＭＶ）を算出し、復号化した出力画像を生成する。
【００１３】
予測モード選択部３４は、フレーム間予測部３３とフレーム内予測部２８の予測誤差を比較し、当該マクロブロックを最も効率よく符号化することができる符号化モードを選択し、符号化モード情報を生成する。この符号化モード情報は、符号化対象情報として、エントロピー符号化部２４へ受け渡される。符号化モード情報には、マクロブロックを分割した分割マクロブロックのサイズと、分割マクロブロックをさらに分割したサブマクロブロックのサイズが含まれる。
【００１４】
図２に示すように、動きベクトル検出部３２は、縮小部４１、統計処理部４２、動き探索部４３，４４を有している。
縮小部４１は、マクロブロック（ＭＢ）を所定の縮小率で縮小した縮小マクロブロック（ＳＭＢ）を生成する。縮小部４１は、たとえば、マクロブロック（ＭＢ）の画素を間引くことにより縮小マクロブロックＳＭＢを生成する。縮小率は、たとえば水平方向と垂直方向にそれぞれ２分の１（１／２）である。そして、縮小部４１は、パターンが異なる複数の縮小マクロブロックＳＭＢを生成する。
【００１５】
複数のパターンは、マクロブロックＭＢの動きベクトルＭＶに基づいて設定される。たとえば、パターンは、動きベクトルＭＶに応じて設定されたラインに沿って画素を間引くように設定される。縮小部４１は、複数のパターンに応じて画素を間引いて複数の縮小マクロブロックＳＭＢを生成する。縮小マクロブロックＳＭＢのパターン（間引く画素の位置）については後述する。このように生成された縮小マクロブロックＳＭＢは、動きベクトルの方向に応じた画素を含む。縮小部４１は、生成した複数の縮小マクロブロックＳＭＢをメモリ５０の縮小フレームバッファ５１に格納する。
【００１６】
縮小部４１は、フレーム画像を処理単位に分割したマクロブロック（ＭＢ）を順次縮小処理し、縮小マクロブロックＳＭＢを縮小フレームバッファ５１に格納する。したがって、縮小フレームバッファ５１には、各フレーム画像の縮小画像が格納される。つまり、原処理画像において、対象マクロブロックＣｕの縮小マクロブロックと、対象マクロブロックＣｕよりも過去に処理されたマクロブロック（ＭＢ）の縮小マクロブロックとが格納される。また、縮小フレームバッファ５１には、原処理画像と異なる時間に撮影され、原処理画像よりも前（過去）に処理された参照フレームの縮小画像が格納される。参照フレームは、原処理画像よりも前（過去）に撮影された前方参照フレームと、原処理画像よりも後（未来）に撮影された後方参照フレームを含む。
【００１７】
メモリ５０には記憶領域として、上記の縮小フレームバッファ５１と、対象マクロブロックバッファ５２と、動きベクトルバッファ５３が設定される。また、メモリ５０には、図１に示す現フレームバッファ２７、過去のフレームバッファ３１等の記憶領域が設定される。メモリ５０は、たとえばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等のメモリモジュールとすることができる。このようなメモリモジュールは、たとえば、符号化装置１０の各機能部を含む半導体装置（ＬＳＩ）に接続される。
【００１８】
統計処理部４２は、縮小部４１にて作成された複数パターンの縮小画像のうちの１つの縮小画像を選択するためのパターン選択情報を生成する。たとえば、統計処理部４２は、処理対象のマクロブロック（ＭＢ）の位置情報に基づいて、過去の動きベクトルをメモリ５０の動きベクトルバッファ５３から読み出し、該動きベクトルに基づいてパターン選択情報を生成する。パターン選択情報は、たとえば動きベクトルを統計処理した統計動きベクトルＭＶＳである。
【００１９】
たとえば、統計処理部４２は、現処理画像において、処理対象のマクロブロック（ＭＢ）に隣接するマクロブロックの動きベクトルを動きベクトルバッファ５３から読み出す。そして、統計処理部４２は、読み出した動きベクトルを統計処理し、パターン選択情報を生成する。統計処理は、たとえば平均値を算出する処理である。たとえば、統計処理部４２は、現処理画像で既に生成した動きベクトルの平均値を算出し、この平均値をパターン選択情報（統計動きベクトルＭＶＳ）とする。
【００２０】
また、統計処理部４２は、現処理画像に対して後方の参照画像がある場合、その参照画像の動きベクトルを動きベクトルバッファ５３から読み出す。たとえば、統計処理部４２は、参照画像において、上記処理対象のマクロブロック（ＭＢ）と同じ位置にあるマクロブロック（以下、参照マクロブロック）の動きベクトルと、その参照マクロブロックの周辺領域のマクロブロックの動きベクトルを、動きベクトルバッファ５３から読み出す。そして、統計処理部４２は、現処理画像の動きベクトルと、参照画像の動きベクトルとを統計処理し、パターン選択情報を生成する。統計処理は、たとえば平均値を算出する処理である。たとえば、統計処理部４２は、現処理画像で既に生成した動きベクトルと過去に生成した参照画像の動きベクトルの平均値を算出し、この平均値をパターン選択情報（統計動きベクトルＭＶＳ）とする。
【００２１】
動き探索部４３は、パターン選択情報（統計動きベクトルＭＶＳ）に基づいて、対象マクロブロックに対応し、縮小フレームバッファ５１に格納された複数の縮小マクロブロックのうちの１つを選択する。また、動き探索部４３は、パターン選択情報（統計動きベクトルＭＶＢ）に対応する縮小参照画像を選択する。つまり、動き探索部４３は、パターン選択情報に応じた１つのパターンの縮小画像を選択する。そして、動き探索部４３は、選択した縮小マクロブロック及び縮小参照画像を読み出す。そして、動き探索部４３は、縮小マクロブロックを用いて縮小参照画像を探索し、縮小マクロブロックの動きベクトルＳＭＶを検出する。そして、動き探索部４３は、動きベクトルＳＭＶを動き探索部４４に出力する。
【００２２】
たとえば、動き探索部４３は、設定された探索範囲において、縮小マクロブロックＳＭＢと同じ範囲に含まれる画素を候補ブロックとする。動き探索部４３は、縮小マクロブロックＳＭＢに含まれる各画素の値と候補ブロックに含まれる各画素の値を比較し、評価値を算出する。評価値は、たとえば差分絶対値和（ＳＡＤ:Sum of Absolute Difference）である。なお、評価値として、差分二乗和（ＳＳＤ:Sum of Squared Difference）、ＳＡＴＤ（Sum of Absolute Transformed Difference）等を用いてもよい。
【００２３】
そして、動き探索部４３は、評価値が最小の候補ブロックを検出する。そして、動き探索部４３は、参照画像において、対象マクロブロックと空間的に同一位置にあるマクロブロック（仮想マクロブロック）から、検出した候補ブロックまでの移動量を算出する。動き探索部４３は、検出した候補ブロックの位置と、仮想マクロブロックの位置とに基づいて、移動量を算出する。この移動量は、縮小画像における対象マクロブロックの動きベクトルＳＭＶである。動きベクトルＳＭＶは、対象マクロブロックＣｕに対する候補ブロックの相対的な位置関係（ずれ量およびずれ方向）を示すデータ（情報）である。
【００２４】
このように、動き探索部４３では、動き探索に縮小画像を用いるため、演算量が大幅に削減され、動き探索が効率化する。
また、動き探索部４３では、統計処理部４２における処理結果（統計動きベクトルＭＶＳ）に基づいて、複数のパターンのうちの１つを選択し、その選択したパターンの縮小画像（縮小マクロブロック、縮小参照画像）を用いて動きベクトルＳＭＶを検出する。選択したパターンの縮小画像は、パターン選択情報（統計動きベクトルＭＶＳ）に応じた画素を含む。したがって、画素の配列方向（縦方向，横方向）に沿って一律に間引いた縮小画像を用いる場合と比べ、対象マクロブロックにより近い候補ブロックを検出することができる。つまり、高い精度にて動きベクトルＳＭＶを検出することができる。
【００２５】
動き探索部４４は、動き探索の処理単位となるマクロブロック毎に、動き探索部４３から入力された動きベクトルＳＭＶに応じた探索範囲で、動き探索を行う。ただし、動きベクトルＳＭＶは、縮小画像により探索された動きベクトルであるため、縮小率に応じて拡大した値（大きさ）で用いる。たとえば、上記の縮小部４１は、水平方向及び垂直方向の画素数をそれぞれ１／２にした縮小画像を生成し、動き探索部４３はその縮小画像を用いて動き探索処理を行う。したがって、動き探索部４４は、動きベクトルＳＭＶが示す水平方向及び垂直方向の値を２倍して用いる。
【００２６】
動き探索部４４は、参照画像として、過去のフレームバッファ３１に格納された復号画像を部分的に用いる。
動き探索部４４は、参照画像において、対象マクロブロックと等しい位置の参照マクロブロックの基準点（たとえば、マクロブロックの中心位置）から、動きベクトルＳＭＶに応じてずれた位置を探索中心とする。たとえば、動きベクトルＳＭＶの水平方向及び垂直方向の各値を、Ｖｘ，Ｖｙとする。この場合、基準点の座標（Ｐｘ，Ｐｙ）に対して、探索中心の座標（Ｓｘ，Ｓｙ）を、
Ｓｘ＝Ｐｘ＋２Ｖｘ
Ｓｙ＝Ｐｙ＋２Ｖｙ
とする。そして、この探索中心として探索範囲を設定する。探索範囲の大きさは、たとえば、マクロブロック（ＭＢ）の大きさに応じた画素数を含むように設定される。たとえば、マクロブロック（ＭＢ）に対して水平方向に±ＸＡ画素、垂直方向に±ＹＡ画素を含むように探索範囲の大きさを設定する。
【００２７】
動き探索部４４は、このように位置が設定された探索範囲において、上記の動き探索部４３と同様に、動き探索を行う。つまり、動き探索部４４は、設定された探索範囲において、マクロブロックＭＢと同じ範囲に含まれる画素を候補ブロックとする。動き探索部４４は、マクロブロックＭＢに含まれる各画素の値と候補ブロックに含まれる各画素の値を比較し、評価値を算出する。評価値は、たとえば差分絶対値和（ＳＡＤ）である。なお、評価値として、差分二乗和（ＳＳＤ）やＳＡＴＤを用いてもよい。そして、動き探索部４４は、評価値が最小の候補ブロックを検出する。そして、動き探索部４４は、参照画像において、対象マクロブロックと空間的に同一位置にあるマクロブロック（仮想マクロブロック）から、検出した候補ブロックまでの移動量（動きベクトル）を算出する。
【００２８】
この動き探索部４４において、参照画像に対して、動き探索部４３にて検出された動きベクトルＳＭＶに応じて探索範囲が設定（オフセット）される。動き探索部４３による動きベクトルＳＭＶは、対象マクロブロックＣｕの周辺のマクロブロック、または後方参照画像における仮想マクロブロックとその周辺のマクロブロックの動きベクトルＭＶにより算出されたパターン選択情報（統計動きベクトルＭＶＳ）に応じたパターンの縮小画像を用いて検出される。対象マクロブロックＣｕの動きは、周辺のマクロブロックの動きと関連性が高いことが多い。したがって、周辺のマクロブロックにおける動きベクトルを統計処理したパターン選択情報（統計動きベクトルＭＶＳ）を用い、対象マクロブロックの動きベクトルに応じたパターンの縮小画像を用いることで、高い精度にて動きベクトルＳＭＶを検出することができる。そして、その動きベクトルＳＭＶを用いることで、対象マクロブロックＣｕの動きベクトルに応じた探索範囲を参照画像に対して設定することができ、したがって、対象マクロブロックＣｕの動きベクトルＭＶを効率よく検出することができる。また、動きベクトルＭＶを精度よく検出することができる。
【００２９】
ピクチャの種類と参照関係を説明する。
図３に示すように、４つの画像（ピクチャ）６１，６２，６３，６４は、この順番で撮影される。ピクチャ６１はたとえばＩピクチャであり、イントラ予測処理により符号化する。
【００３０】
ピクチャ６４はＰピクチャである。このピクチャ６４に含まれるマクロブロック６４ａは、ピクチャ６１に含まれるマクロブロック６１ａと同一または類似している。ピクチャ６４の符号化処理において、ピクチャ６１を参照画像（前方参照）とした動きベクトル探索処理を行い、マクロブロック６４ａにおける参照情報を符号化する。
【００３１】
ピクチャ６２はＢピクチャである。このピクチャ６２に含まれるマクロブロック６２ａは、前方ピクチャ６１に含まれるマクロブロック６１ｂと同一または類似している。また、このマクロブロック６２ａは、後方のピクチャ６４に含まれるマクロブロック６４ｂと同一または類似している。ピクチャ６２の符号化処理において、ピクチャ６１とピクチャ６４を参照画像（前方参照、後方参照、双方向参照）とした動きベクトル探索処理を行い、マクロブロック６２ａにおける参照情報を符号化する。
【００３２】
ピクチャ６３はＢピクチャである。このピクチャ６３に含まれるマクロブロック６３ａは、前方ピクチャ６１に含まれるマクロブロック６１ｃと同一または類似している。また、このマクロブロック６３ａは、後方のピクチャ６４に含まれるマクロブロック６４ｃと同一または類似している。ピクチャ６３の符号化処理において、ピクチャ６１とピクチャ６４を参照画像（前方参照、後方参照、双方向参照）とした動きベクトル探索処理を行い、マクロブロック６３ａにおける参照情報を符号化する。
【００３３】
次に、Ｐピクチャにおける参照画像とマクロブロック（ＭＢ）を説明する。
図４に示すように、３つの画像（ピクチャ）７１，７２，７３は、この順番で撮影される。現処理画像７３は、４つのマクロブロック７３ａ，７３ｂ，７３ｃ，７３ｄを含む。現処理画像７３はＰピクチャである。マクロブロック７３ａは、前方（現処理画像７３より時間的に過去）の参照画像７１のマクロブロック７１ａと同一または類似している。参照画像７１はＩピクチャまたはＰピクチャであり、現処理画像７３よりも前に符号化されている。したがって、現処理画像７３において、参照画像７１に含まれるマクロブロック７１ａを示す情報と差分を符号化する。
【００３４】
現処理画像７３のマクロブロック７３ｂは、前方の参照画像７２のマクロブロック７２ａと同一または類似している。参照画像７２はＩピクチャまたはＰピクチャであり、現処理画像７３よりも前に符号化されている。したがって、現処理画像７３において、参照画像７２に含まれるマクロブロック７２ａを示す情報と差分を符号化する。
【００３５】
同様に、現処理画像７３のマクロブロック７３ｃ，７３ｄは、前方の参照画像７２のマクロブロック７２ｂ，７２ｃと同一または類似している。現処理画像７３において、参照画像７２に含まれるマクロブロック７２ｂ，７２ｃを示す情報と差分を符号化する。
【００３６】
次に、Ｂピクチャにおける参照画像とマクロブロック（ＭＢ）を説明する。
図５に示すように、５つの画像（ピクチャ）８１，８２，８３，８４，８５は、この順番で撮影される。現処理画像８３は４つのマクロブロック８３ａ，８３ｂ，８３ｃ，８３ｄを含む。現処理画像８３はＢピクチャである。マクロブロック８３ａは、前方（現処理画像８３より時間的に過去）の参照画像８１のマクロブロック８１ａと同一または類似している。参照画像８１はＩピクチャまたはＰピクチャであり、現処理画像８３よりも前に符号化されている。したがって、現処理画像８３において、参照画像８１に含まれるマクロブロック８１ａを示す情報と差分を符号化する。
【００３７】
現処理画像８３のマクロブロック８３ｂは、前方の参照画像８２のマクロブロック８２ａと同一または類似している。また、マクロブロック８３ｂは、後方（現処理画像８３より時間的に未来）の参照画像８４のマクロブロック８４ａと統一または類似している。参照画像８４はＩピクチャまたはＰピクチャであり、現処理画像８３よりも前に符号化されている。したがって、現処理画像８３において、参照画像８２，８４に含まれるマクロブロック８２ａ，８４ａを示す情報と差分を符号化する。
【００３８】
現処理画像８３のマクロブロック８３ｃは、後方の参照画像８５のマクロブロック８５ａと同一または類似している。参照画像８５はＩピクチャまたはＰピクチャであり、現処理画像８３よりも前に符号化されている。したがって、現処理画像８３において、参照画像８５に含まれるマクロブロック８５ａを示す情報と差分を符号化する。
【００３９】
現処理画像８３のマクロブロック８３ｄは、前方の参照画像８２のマクロブロック８２ｂと同一または類似している。また、マクロブロック８３ｄは、後方の参照画像８４のマクロブロック８４ｂと統一または類似している。したがって、現処理画像８３において、参照画像８２，８４に含まれるマクロブロック８２ｂ，８４ｂを示す情報と差分を符号化する。
【００４０】
次に、ピクチャ内における処理順序と、動きベクトル予測値（ＭＶＰ），予測差分値（ＭＶＤ）の算出処理を説明する。
図６に示すように、１つのピクチャ（フレーム）９１は、マトリックス状に配列された複数個（８×６個）のマクロブロック（ＭＢ）を含む。各マクロブロック（ＭＢ）は、たとえば水平方向１６画素，垂直方向１６画素の画素マトリクスである。
【００４１】
符号化処理は、破線の矢印で示したように、ラスタスキャン方向に配置された複数のマクロブロックＭＢ毎に実施される。つまり、最上端のマクロブロックラインの左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に実施される。次に、２段目のマクロブロックラインの左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に符号化処理が実施される。以降、左端のマクロブロックＭＢから右端のマクロブロックＭＢの順に実施される符号化処理が、最下端のマクロブロックラインまで繰り返される。
【００４２】
処理対象のマクロブロックを「Ｃｕ」として示す。この対象マクロブロックＣｕの周辺のマクロブロック「Ａ」「Ｂ」「Ｃ」の動きベクトル（ＭＶＡ）（ＭＶＢ）（ＭＶＣ）に基づいて、動きベクトル予測値（ＭＶＰ）を算出する。動きベクトル予測値（ＭＶＰ）は、周辺のマクロブロック「Ａ」「Ｂ」「Ｃ」の動きベクトル（ＭＶＡ）（ＭＶＢ）（ＭＶＣ）の中間値である。つまり、動きベクトル予測値（ＭＶＰ）は、
ＭＶＰ＝Ｍｅｄｉａｎ（ＭＶＡ，ＭＶＢ，ＭＶＣ）
により算出される。なお、「Ｍｅｄｉａｎ」は、中間値を得る算術子である。そして、予測差分値（ＭＶＤ）は、対象マクロブロックＣｕの動きベクトル（ＭＶ）と動きベクトル予測値（ＭＶＰ）に基づいて、
ＭＶＤ＝ＭＶ−ＭＶＰ
により算出される。
【００４３】
次に、動きベクトルの探索の概略を説明する。
図７（ａ）に示すように、現処理画像１２０に含まれる対象マクロブロックＣｕの動きベクトルを検出する。この検出において、現処理画像１２０と時間的に異なる画像であって、現処理画像１２０よりも前に符号化された参照画像１１０を用いる。この参照画像１１０において、対象マクロブロックＣｕと空間的に同一位置の仮想マクロブロックを含む探索範囲１１１を設定する。なお、対象マクロブロックＣｕに対応する仮想マクロブロックを明示するために同じ符号「Ｃｕ」を用いて示す場合がある。動き探索処理は、この探索範囲１１１内にあって、対象マクロブロックＣｕに対して評価値が最小の候補ブロックを探索する。
【００４４】
図７（ｂ）に示すように、探索範囲１１１の大きさは、仮想マクロブロックＣｕと、その仮想マクロブロックＣｕの周辺の８個のマクロブロックを含むように設定される。対象マクロブロックＣｕは、たとえば１６×１６画素の画素マトリックスである。これに基づき、たとえば、マクロブロック（ＭＢ）に対して水平方向と垂直方向にそれぞれ±１６画素を含むように探索範囲の大きさを設定する。このような設定の場合、探索範囲の大きさは、４８×４８画素（３×３マクロブロックを含む大きさ）となる。
【００４５】
ここで、探索範囲に対する全探索法を説明する。
先ず、図１１（ａ）に示すように、探索範囲１１１の左上に候補ブロック１１２を設定する。そして、この候補ブロック１１２に含まれる画素の画素値と、対象マクロブロックＣｕに含まれる画素の画素値とに基づいて、評価値を算出する。評価値は、上記したように、たとえば差分絶対値和（ＳＡＤ）である。このように算出した評価値を、候補ブロック１１２の位置情報に関連付けて記憶する。たとえば、この探索処理を図２に示す動き探索部４４にて実行する場合、記憶する領域は、たとえば動き探索部４４に含まれるバッファである。なお、以下の説明において算出する評価値についても同様に記憶する。
【００４６】
次に、図１１（ｂ）に示すように、探索範囲１１１において、候補ブロック１１２を、右側に１画素分ずらして設定する。そして、この候補ブロック１１２の評価値を算出する。このように、右側に向かって１画素ずつずらして設定した候補ブロックの評価値を算出する。そして、図１１（ｃ）に示すように、探索範囲１１１において、右端に設定した候補ブロック１１２の評価値を算出すると、上記と同様の処理を、１画素分下側にずらして設定した候補ブロックについて行う。
【００４７】
即ち、図１１（ｄ）に示すように、探索範囲１１１の左端において、上端から１画素分下がった位置に候補ブロック１１２を設定する。そして、この候補ブロック１１２の評価値を算出する。そして、図１１（ｅ）に示すように、探索範囲１１１において、候補ブロック１１２を、右側に１画素分ずらして設定する。そして、この候補ブロック１１２の評価値を算出する。このように、１画素ずつ候補ブロック１１２の設定位置をずらし、各位置に設定した候補ブロック１１２の評価値を算出する。そして、図１１（ｆ）に示すように、探索範囲１１１の右下に候補ブロック１１２を設定し、この候補ブロック１１２における評価値を算出する。
【００４８】
このように、探索範囲１１１に設定した全ての候補ブロック１１２の評価値を算出する。記憶した全ての評価値のうち、もっとも小さな評価値に関連付けた候補ブロック１１２の位置情報を得る。
【００４９】
たとえば、図１２に示すように、上記の動き探索により、評価値が最小の候補ブロック１１２を検出する。そして、参照画像１１０において、仮想マクロブロックＣｕから、検出した候補ブロック１１２までの移動量を算出する。この移動量は、対象マクロブロックＣｕの動きベクトルＭＶである。
【００５０】
次に、縮小画像による動き探索を説明する。
上記の図７（ａ）に示す現処理画像１２０と参照画像１１０とをそれぞれ縮小した縮小画像を生成する。
【００５１】
図８（ａ）に示すように、縮小処理画像１４０は、図７（ａ）に示す現処理画像１２０を、たとえば１／２に縮小したものである。同様に、縮小参照画像１３０は、図７（ａ）に示す参照画像１１０を、たとえば１／２に縮小したものである。縮小処理画像１４０に含まれる縮小マクロブロック１４１は、図７（ａ）に示す対象マクロブロックＣｕを１／２に縮小したものである。この縮小マクロブロック１４１に対して、空間的に同一位置の仮想マクロブロック１３１を中心とする探索範囲１３２を縮小参照画像１３０に設定する。
【００５２】
図８（ｂ）に示すように、探索範囲１３２の大きさは、仮想マクロブロック１３１と、その仮想マクロブロック１３１の大きさに応じて設定される。１つの縮小マクロブロック（ＳＭＢ）は、たとえば８×８画素の画素マトリックスである。これに基づき、たとえば、縮小マクロブロック（ＳＭＢ）に対して水平方向と垂直方向にそれぞれ±８画素を含むように探索範囲の大きさを設定する。このような設定の場合、探索範囲の大きさは、２４×２４画素となる。この探索範囲１３２において、対象マクロブロックＳＭＢを用いて探索する。
【００５３】
図９（ａ）に示すように、探索範囲１３２において、縮小マクロブロックＳＭＢに対する評価値が最も小さな候補ブロック１３３を検出する。そして、図９（ｂ）に示すように、仮想マクロブロック１３１に対する候補ブロック１３３の移動量（動きベクトルＳＭＶ）を算出する。このように検出した動きベクトルに基づいて、原画サイズの画像について、動きベクトルＭＶを検出する。
【００５４】
すなわち、図１０（ａ）に示すように、参照画像１１０において、上記のように検出した動きベクトルＳＭＶに基づいて、探索範囲を設定する。ただし、動きベクトルＳＭＶは、現処理画像１２０と参照画像１１０をそれぞれ１／２に縮小した縮小画像１４０，１３０（図８（ａ）参照）により探索された動きベクトルである。このため、動きベクトルＳＭＶの水平方向の成分と垂直方向の成分をそれぞれ２倍した成分の仮想動きベクトルＰＭＶを算出する。この仮想動きベクトルＰＭＶは、対象マクロブロックＣｕに対して、評価値が最も小さい候補ブロックが存在しうる確立の高い場所を示す。
【００５５】
このため、図１０（ｂ）に示すように、仮想動きベクトルＰＭＶに応じて参照画像１１０における探索範囲を設定する。たとえば、仮想マクロブロックＣｕを中心とする探索範囲１１１を、仮想動きベクトルＰＭＶに応じてオフセットした探索範囲１１１ａを設定する。このように設定した探索範囲１１１ａは、中心部分において、対象マクロブロックＣｕに対応して、最も小さな評価値の候補ブロック１１２が存在する確立が高い。つまり、対象マクロブロックＣｕの画素との差が小さい画素が含まれる。一方、探索範囲１１１ａの外側であって、探索範囲１１１との間の領域には、対象マクロブロックＣｕの画素との差が大きい画素が含まれる。したがって、このようにオフセットした探索範囲１１１ａを設定することで、効率のよい探索を行うことができる。
【００５６】
図１３は、動きベクトル検出部３２において、１つのマクロブロック（ＭＢ）に対する処理を機能的に示すフローチャートである。動きベクトル検出処理を、このフローチャートにしたがって実施することもできる。
【００５７】
先ず、ステップ２０１において、現処理画像と参照画像を取得する。そして、ステップ２０２において、現処理画像と参照画像について、複数パターンの縮小画像を生成する。次に、ステップ２０３において、過去の動きベクトルＭＶを取得する。そして、ステップ２０４において、動きベクトルＭＶを統計処理する。ステップ２０５において、統計処理の結果に基づいて、縮小画像を選択する。
【００５８】
次いで、ステップ２０６において、縮小画像（縮小処理画像、縮小参照画像）を用い、全探索法にしたがって探索を行い、対象マクロブロックの動きベクトルＳＭＶを検出する。ステップ２０７において、全画素探索完了したか否かを判定する。探索範囲に含まれる全画素について探索を完了した場合（判定：ＹＥＳ）、処理を終了する。全画素について探索を完了していない場合（判定：ＮＯ）、ステップ２０８に移行する。ステップ２０８において、検出した動きベクトルＳＭＶに基づいて参照画像における探索範囲を設定する。そして、参照画像の探索範囲内を全探索法にしたがって探索を実施する。
【００５９】
次に、比較例の処理を説明する。
図１４に示すように、ステップ２５１において、現処理画像と参照画像を取得する。ステップ２５２において、現処理画像と参照画像について、それぞれ１つの縮小画像（縮小処理画像、縮小参照画像）を生成する。ステップ２５３において、縮小画像（縮小処理画像、縮小参照画像）を用い、全探索法にしたがって探索を行い、対象マクロブロックの動きベクトルＳＭＶを検出する。ステップ２５４において、全画素探索完了したか否かを判定する。探索範囲に含まれる全画素について探索を完了した場合（判定：ＹＥＳ）、処理を終了する。全画素について探索を完了していない場合（判定：ＮＯ）、ステップ２５５に移行する。ステップ２５５において、検出した動きベクトルＳＭＶに基づいて参照画像における探索範囲を設定し、その探索範囲内を全探索法にしたがって探索を実施する。
【００６０】
次に、統計処理に用いる動きベクトルについて説明する。
図１５に示すように、４つの画像（ピクチャ）１５１，１５２，１５３，１５４は、この順番で撮影される。たとえば、ピクチャ１５１はＩピクチャまたはＰピクチャであり、ピクチャ１５４はＰピクチャであり、ピクチャ１５２，１５３はＢピクチャである。
【００６１】
たとえば、ピクチャ１５２を現処理画像とする。そして、この現処理画像１５２に含まれる対象マクロブロックＣｕの動きベクトルを検出する。このとき、現処理画像１５２において、左上のマクロブロック（ＭＢ）から、ラスタ方向（破線矢印にて示す）に沿って符号化処理され、これらのマクロブロック（ＭＢ）について動きベクトルが生成されている。これらのマクロブロックのうち、対象マクロブロックＣｕを中心とする参照領域１５２ａに含まれ、既に符号化処理されたマクロブロック（対象マクロブロックＣｕより濃いハッチングにて示されたマクロブロック）において、現処理画像１５２から前方の参照画像１５１を参照した動きベクトルを用いる。参照領域１５２ａは、たとえば、図７（ｂ）に示す探索範囲１１１と同じ大きさに設定される。これらのマクロブロックの動きベクトルを統計処理（平均化）して統計動きベクトルＭＶＳを生成する。この統計動きベクトルＭＶＳにより、複数パターの縮小画像のうちの１つの縮小画像を選択する。
【００６２】
また、現処理画像１５２について後方参照がある場合、参照するピクチャ（後方参照画像）１５４はＰピクチャであり、この後方参照画像１５４は、前方のピクチャ（前方参照画像）１５１を参照する。そして、この後方参照画像１５４に含まれる全てのマクロブロックは、現処理画像１５２よりも前に符号化され、それぞれの動きベクトルが生成されている。この後方参照画像１５４において、現処理画像１５２の対象マクロブロックＣｕと空間的に同一位置の仮想マクロブロック（「Ｃ１」と表記）を中心とする参照領域１５４ａに含まれるマクロブロックにおいて、後方参照画像１５４から前方参照画像１５１を参照した動きベクトルを用いる。そして、現処理画像１５２の動きベクトルと、後方参照画像１５４の動きベクトルとを統計処理（平均化）して統計動きベクトルＭＶＳを生成する。この統計動きベクトルＭＶＳにより、複数パターの縮小画像のうちの１つの縮小画像を選択する。
【００６３】
次に、縮小画像のパターンについて説明する。
上記したように、図２に示す動きベクトル検出部３２は、対象マクロブロックＣｕに対して、その対象マクロブロックＣｕの周辺のマクロブロック（図１５に示す現処理画像１５２、後方参照画像１５４に含まれるマクロブロック）の動きベクトルを統計処理した統計動きベクトルＭＶＳに基づいて、縮小画像を選択する。このため、縮小画像のパターンは、統計動きベクトルＭＶＳの方向に応じて設定される。動きが強い方向に応じたパターンにて画素を間引いた縮小画像を用いるように、各パターンが設定される。
【００６４】
図１６（ａ）に示すように、マクロブロック（ＭＢ）は、たとえば１６×１６個の画素Ｇを含む画素マトリックスである。このマクロブロック（ＭＢ）において、左上の画素を基準画素Ｇｒとする。図において、マクロブロック（ＭＢ）の左の数字は、基準画素Ｇｒから縦方向（垂直方向）の画素位置を示す。また、マクロブロック（ＭＢ）の上の数字は、基準画素Ｇｒから横方向（水平方向）の画素位置を示す。
【００６５】
図１６（ａ）において、矢印ＬＶは、統計動きベクトルＭＶＳの方向を示す。統計動きベクトルＭＶＳに対して垂直方向に間引きがあるパターンとし、そのパターンによって縮小画像を生成する。詳しくは、統計動きベクトルＭＶＳに対して垂直な第１ラインＬ１と第２ラインＬ２を、統計動きベクトルＭＶＳ（ＬＶ）に沿って交互に設定する。なお、図１６（ａ）では、それぞれ１本の第１ラインＬ１及び第２ラインＬ２を示している。この第１ラインＬ１を、画素を残すラインとし、第２ラインＬ２を、画素を間引くラインとする。さらに、第１ラインＬ１に沿って１画素おきに画素を間引く。図１６（ａ）において、基準画素Ｇｒを除き、梨地のハッチングを付した画素Ｇ２が縮小部４１（図２参照）において間引く画素であり、基準画素Ｇｒとハッチングを付していない画素Ｇ１が縮小画像に含まれる画素である。
【００６６】
上記のように、第１ラインＬ１と第２ラインＬ２に応じて画素を間引く処理により、図１６（ｄ）に示す縮小マクロブロック（ＳＭＢ）を生成する。この縮小マクロブロック（ＳＭＢ）は、８画素×８画素の画素マトリックスである。この縮小マクロブロック（ＳＭＢ）において、各画素内に記載した文字は、図１６（ａ）に示すマクロブロック（ＭＢ）における画素の位置（縦方向の位置と横方向の位置）を示す。
【００６７】
なお、図１６（ａ）において太線にて示した矩形は、マクロブロック（ＭＢ）における繰り返しパターンＲＰを示す。この繰り返しパターンＲＰは、残す画素Ｇ１と間引く画素Ｇ２を含む領域であり、この繰り返しパターンＲＰが画素の配列方向に沿って繰り返され、縮小マクロブロック（ＳＭＢ）が形成される。
【００６８】
上記のように生成した縮小マクロブロック（ＳＭＢ）を、統計動きベクトルＭＶＳに応じて選択する。ベクトルは、方向と大きさを示す。上記したように、縮小マクロブロックＳＭＢは、動きが強い方向に応じたパターンにて画素を間引いたパターンとなるように生成される。したがって、統計動きベクトルＭＶＳの方向に応じて選択するとよい。このため、統計動きベクトルＭＶＳの縦方向の成分と横方向の成分の比を用い、その比に応じてパターンを生成することで、ベクトルの方向に応じた選択を可能とする。
【００６９】
図１６（ｂ）に示すように、統計動きベクトルＭＶＳにおいて、縦方向の成分ＭＶｙについて、下向きをプラス「＋」、上向きをマイナス「−」とする。また、横方向の成分ＭＶｘについて、右方向をプラス「＋」、左向きをマイナス「−」とする。
【００７０】
図１６（ｃ）は、統計動きベクトルＭＶＳについて、縦方向の成分ＭＶｙと横方向の成分ＭＶｘの比を示す。たとえば、マクロブロックＭＢの画素の配列方向（縦方向）と平行な統計動きベクトルＭＶＳの場合、縦方向の成分ＭＶｙと横方向の成分ＭＶｘの比は、「縦：横＝１：０」または「縦：横＝−１：０」となる。なお、図１６（ｃ）において、黒丸は成分が「０」であることを示す。
【００７１】
図１７〜図２０は、統計動きベクトルＭＶＳの比に対するマクロブロックＭＢの画素の間引きのパターンを［ケースｎ］として示す。なお、図１７〜図２０において、画素等の符号を省略する。
【００７２】
図１７に示す［ケース１］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝１：０」または「縦：横＝−１：０」の場合のパターンの縮小画像を生成する。なお、この例は、図１６（ａ）〜（ｄ）にて示したパターンである。なお、図１７では、縦方向の成分と横成分の比について、代表的な例を示している。また、［ケース２］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝８：−１」または「縦：横＝−８：１」の場合のパターンの縮小画像を生成する。また、［ケース３］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝４：−１」または「縦：横＝−４：１」の場合のパターンの縮小画像を生成する。また、［ケース４］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝２：−１」または「縦：横＝−２：１」の場合のパターンの縮小画像を生成する。
【００７３】
図１８に示す［ケース５］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝−１：１」または「縦：横＝１：−１」の場合のパターンの縮小画像を生成する。また、［ケース６］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝−１：２」または「縦：横＝１：−２」の場合のパターンの縮小画像を生成する。また、［ケース７］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝−１：４」または「縦：横＝１：−４」の場合のパターンの縮小画像を生成する。また、［ケース８］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝−１：８」または「縦：横＝１：−８」の場合のパターンの縮小画像を生成する。
【００７４】
図１９に示す［ケース９］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝０：１」または「縦：横＝０：−１」の場合のパターンの縮小画像を生成する。また、［ケース１０］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝１：８」または「縦：横＝−１：−８」の場合のパターンの縮小画像を生成する。また、［ケース１１］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝１：４」または「縦：横＝−１：−４」の場合のパターンの縮小画像を生成する。また、［ケース１２］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝１：２」または「縦：横＝−１：−２」の場合のパターンの縮小画像を生成する。
【００７５】
図２０に示す［ケース１３］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝１：１」または「縦：横＝−１：−１」の場合のパターンの縮小画像を生成する。また、［ケース１４］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝２：１」または「縦：横＝−２：−１」の場合のパターンの縮小画像を生成する。また、［ケース１５］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝４：１」または「縦：横＝−４：−１」の場合のパターンの縮小画像を生成する。また、［ケース１６］では、統計動きベクトルＭＶＳに応じて、縦方向の成分と横方向の成分の比が、「縦：横＝８：１」または「縦：横＝−８：−１」の場合のパターンの縮小画像を生成する。
【００７６】
なお、図１８に示す［ケース５］は、間引きのパターンが図１７に示す［ケース１］と同じである。つまり、［ケース５］による縮小画像は、［ケース１］による縮小画像と同じ画素を含む。同様に、図１９に示す［ケース９］、図２０に示す［ケース１３］は、間引きのパターンが図１７に示す［ケース１］と同じであり、それらの縮小画像は、［ケース１］による縮小画像と同じ画素を含む。
【００７７】
次に、縮小画像を選択する処理を説明する。
図２１〜図２３は、統計処理の結果に基づく縮小画像のパターン選択を示す。なお、図２１〜図２３に示す判断子には、図１７〜図２０に対応し、縦方向の成分と横成分の比について、代表的な例を示している。
【００７８】
統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比に応じて、縮小画像（パターン）を選択する。
先ず、図２１に示すように、ステップ２２１において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝８：−１」か否かを判定する。また、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝−８：１」か否かを判定する。比が「縦：横＝８：−１」または「縦：横＝−８：１」の場合（判定：ＹＥＳ）、ステップ２２２において［ケース２］によって作成されたパターンの縮小画像を選択する。比が「縦：横＝８：−１」と「縦：横＝−８：１」のいずれでもない場合（判定：ＮＯ）、ステップ２２３へ移行する。
【００７９】
次に、ステップ２２３の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝−１：８」または「縦：横＝１：−８」の場合（判定：ＹＥＳ）、ステップ２２４において［ケース８］によって作成されたパターンの縮小画像を選択する。ステップ２２５の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝１：８」または「縦：横＝１：−８」の場合（判定：ＹＥＳ）、ステップ２２６において［ケース１０］によって作成されたパターンの縮小画像を選択する。ステップ２２７の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝８：１」または「縦：横＝１：−８」の場合（判定：ＹＥＳ）、ステップ２２８において［ケース１６］によって作成されたパターンの縮小画像を選択する。
【００８０】
次に、図２２に示すように、ステップ２２９の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝４：−１」または「縦：横＝−４：１」の場合（判定：ＹＥＳ）、ステップ２３０において［ケース３］によって作成されたパターンの縮小画像を選択する。ステップ２３１の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝−１：４」または「縦：横＝１：−４」の場合（判定：ＹＥＳ）、ステップ２３２において［ケース７］によって作成されたパターンの縮小画像を選択する。
【００８１】
次いで、ステップ２３３の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝１：４」または「縦：横＝−１：−４」の場合（判定：ＹＥＳ）、ステップ２３４において［ケース１１］によって作成されたパターンの縮小画像を選択する。ステップ２３５の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝４：１」または「縦：横＝−４：−１」の場合（判定：ＹＥＳ）、ステップ２３６において［ケース１５］によって作成されたパターンの縮小画像を選択する。
【００８２】
次に、図２３に示すように、ステップ２３７の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝２：−１」または「縦：横＝−２：１」の場合（判定：ＹＥＳ）、ステップ２３８において［ケース４］によって作成されたパターンの縮小画像を選択する。ステップ２３９の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝−１：２」または「縦：横＝１：−２」の場合（判定：ＹＥＳ）、ステップ２４０において［ケース６］によって作成されたパターンの縮小画像を選択する。
【００８３】
次いで、ステップ２４１の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝１：２」または「縦：横＝−１：−２」の場合（判定：ＹＥＳ）、ステップ２４２において［ケース１２］によって作成されたパターンの縮小画像を選択する。ステップ２４３の判定において、統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が、「縦：横＝２：１」または「縦：横＝−２：−１」の場合（判定：ＹＥＳ）、ステップ２４４において［ケース１４］によって作成されたパターンの縮小画像を選択する。
【００８４】
そして、ステップ２４３において、判定が「ＮＯ」、すなわち統計動きベクトルＭＶＳの垂直成分（縦）と水平成分（横）の比が上記のいずれでもない場合、ステップ２４５において［ケース１］によって作成されたパターンの縮小画像を選択する。
【００８５】
以上記述したように、本実施形態によれば、以下の効果を奏する。
（１）動きベクトル検出部３２は、ＭＢ分割部２１から入力されたマクロブロック（ＭＢ）と、過去のフレームバッファ３１に格納された参照画像とを用いて、対象マクロブロックの動きベクトル（ＭＶ:Motion Vector）を検出する。動きベクトル検出部３２の縮小部４１は、マクロブロック（ＭＢ）を所定の縮小率で縮小した縮小マクロブロック（ＳＭＢ）を生成する。統計処理部４２は、縮小部４１にて作成された複数パターンの縮小画像のうちの１つの縮小画像を選択するためのパターン選択情報（統計動きベクトルＭＶＳ）を生成する。動き探索部４３は、パターン選択情報（統計動きベクトルＭＶＳ）に基づいて、複数の縮小画像のうちの１つを選択し、その縮小参照画像を探索し、縮小マクロブロックの動きベクトルＳＭＶを検出する。動き探索部４４は、動き探索の処理単位となるマクロブロック毎に、動き探索部４３から入力された動きベクトルＳＭＶに応じた探索範囲で、動き探索を行い、対象マクロブロックＣｕの動きベクトルＭＶを検出する。
【００８６】
この動き探索部４４において、参照画像に対して、動き探索部４３にて検出された動きベクトルＳＭＶに応じて探索範囲が設定（オフセット）される。動き探索部４３による動きベクトルＳＭＶは、対象マクロブロックＣｕの周辺のマクロブロック、または後方参照画像における仮想マクロブロックとその周辺のマクロブロックの動きベクトルＭＶにより算出されたパターン選択情報（統計動きベクトルＭＶＳ）に応じたパターンの縮小画像を用いて検出される。
【００８７】
対象マクロブロックＣｕの動きは、周辺のマクロブロックの動きと関連性が高いことが多い。したがって、周辺のマクロブロックにおける動きベクトルを統計処理したパターン選択情報（統計動きベクトルＭＶＳ）を用い、対象マクロブロックの動きベクトルに応じたパターンの縮小画像を用いることで、高い精度にて動きベクトルＳＭＶを検出することができる。そして、その動きベクトルＳＭＶを用いることで、対象マクロブロックＣｕの動きベクトルに応じた探索範囲を参照画像に対して設定することができ、対象マクロブロックＣｕの動きベクトルＭＶを効率よく検出することができる。また、動きベクトルＭＶを精度よく検出することができる。そして、動きベクトルＭＶの精度は、符号化におけるデータ量（符号化圧縮率）に影響する。したがって、本実施形態では、予測精度（符号化圧縮率）を高めることができる。
【００８８】
たとえば、単純に水平方向と垂直方向のみに沿って間引くことで縮小画像を生成した場合、その縮小画像において、対象マクロブロックの動きに応じた特徴的な画素が含まれないことがある。すると、縮小画像を用いた動き探索処理において、適切な評価値が得られないことがある。このような場合、対象マクロブロックＣｕに対応する候補ブロックの評価値が、他の候補ブロックよりも小さくなってしまい、誤検出を発生することがある。このような場合には、対象マクロブロックと検出した参照ブロックとの間の誤差が大きくなり、符号化信号におけるデータ量の増加を招く。誤検出を防ぐために探索範囲を大きくすると、探索時間の増大を招く。また、探索範囲を大きくすることは、縮小画像による動き探索が無駄にして、効率の低下を招く。
【００８９】
（２）縮小部４１は、統計動きベクトルＭＶＳに対して垂直な第１ラインＬ１と第２ラインＬ２を、統計動きベクトルＭＶＳ（ＬＶ）に沿って交互に設定する。この第１ラインＬ１を、画素を残すラインとし、第２ラインＬ２を、画素を間引くラインとする。さらに、第１ラインＬ１に沿って１画素おきに画素を間引く。このように、第１ラインＬ１と第２ラインＬ２に応じて画素を間引く処理により、動きの強い方向に応じたパターンで画素を間引いた縮小マクロブロック（ＳＭＢ）（縮小画像）を生成することができる。
【００９０】
尚、上記各実施形態は、以下の態様で実施してもよい。
・上記実施形態において、マクロブロック（ＭＢ）や縮小マクロブロック（ＳＭＢ）のサイズを適宜変更してもよい。また、縦方向の画素の数と横方向の画素の数とが互いに異なるマクロブロック（縮小マクロブロック）としてもよい。
【００９１】
・上記実施形態に対し、統計処理部４２の結果に応じたパターンにて参照画像を縮小した縮小参照画像と縮小マクロブロックＳＭＢを生成し、動き探索を行うようにしてもよい。
【符号の説明】
【００９２】
１０  符号化装置（符号化回路）
３２  動きベクトル検出部
３３  フレーム間予測部
４１  縮小部
４２  統計処理部
４３，４４  動き探索部
ＭＢ  マクロブロック
ＳＭＢ  縮小マクロブロック
ＭＶ  動きベクトル（第２動きベクトル）
ＳＭＶ  動きベクトル（第１動きベクトル）
ＭＶＳ  統計動きベクトル
【図１】
0006390275.tif 000002
【図２】
0006390275.tif 000003
【図３】
0006390275.tif 000004
【図４】
0006390275.tif 000005
【図５】
0006390275.tif 000006
【図６】
0006390275.tif 000007
【図７】
0006390275.tif 000008
【図８】
0006390275.tif 000009
【図９】
0006390275.tif 000010
【図１０】
0006390275.tif 000011
【図１１】
0006390275.tif 000012
【図１２】
0006390275.tif 000013
【図１３】
0006390275.tif 000014
【図１４】
0006390275.tif 000015
【図１５】
0006390275.tif 000016
【図１６】
0006390275.tif 000017
【図１７】
0006390275.tif 000018
【図１８】
0006390275.tif 000019
【図１９】
0006390275.tif 000020
【図２０】
0006390275.tif 000021
【図２１】
0006390275.tif 000022
【図２２】
0006390275.tif 000023
【図２３】
0006390275.tif 000024