(57)【要約】  マルチフレームメモリ（５０４）に記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、前記マルチフレームメモリ（５０４）から読み出された参照ピクチャの画素データのうち、第１の動き検出時の探索範囲である第１範囲に含まれる画素データを記憶しているローカルメモリ（７０２）と、前記ローカルメモリ（７０２）に記憶されている画素データを用いて、前記第１の動き検出を行う通常の動き検出部（７０４）と、前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行うダイレクト予測器（１０８）とを備える。
2008136178.tif 000002
【特許請求の範囲】
【請求項１】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、第１の動き検出時の探索範囲である第１範囲に含まれる画素データを記憶しているローカルメモリと、
前記ローカルメモリに記憶されている画素データを用いて、前記第１の動き検出を行う第１の動き検出手段と、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行う第２の動き検出手段と
を備えることを特徴とする動き検出装置。
【請求項２】
前記第２の動き検出手段は、前記マルチフレームメモリに記憶されている前記参照ピクチャの画素データを用いて、前記第２の動き検出を行なう
ことを特徴とする請求項１に記載の動き検出装置。
【請求項３】
さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記マルチフレームメモリに記憶されている画素データを選択する選択手段を備え、
前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行う
ことを特徴とする請求項２に記載の動き検出装置。
【請求項４】
さらに、前記第２の動き検出手段による前記第２の動き検出の実行及び非実行を制御する実行制御手段を備える
ことを特徴とする請求項１に記載の動き検出装置。
【請求項５】
前記実行制御手段は、前記第２の動き検出に用いる画素データの少なくとも一部が前記ローカルメモリに蓄えられている場合に限り、前記第２の動き検出手段に前記第２の動き検出を実行させる
ことを特徴とする請求項４に記載の動き検出装置。
【請求項６】
さらに、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、前記第２範囲に含まれる画素データを記憶しているキャッシュメモリを備え、
前記ローカルメモリは、前記キャッシュメモリから読み出された前記第１範囲に含まれる画素の画素データを記憶しており、
前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データを用いて前記第２の動き検出を行なう
ことを特徴とする請求項１に記載の動き検出装置。
【請求項７】
さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記キャッシュメモリに記憶されている画素データを選択する選択手段を備え、
前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行う
ことを特徴とする請求項６に記載の動き検出装置。
【請求項８】
さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、
前記第２の動き検出手段は、前記第２の動き検出可否判定手段において前記第２の動き検出が可能と判定された場合に、前記第２の動き検出を行なう
ことを特徴とする請求項６に記載の動き検出装置。
【請求項９】
前記第２の動き検出可否判定手段は、前記第２の動き検出に用いられる画素データが、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうちの予め定められた一部の領域に含まれている場合にのみ、前記第２の動き検出が可能と判定する
ことを特徴とする請求項８に記載の動き検出装置。
【請求項１０】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１１】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、右方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１２】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、左方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１３】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向及び横方向の双方に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１４】
前記キャッシュメモリには、１枚の参照ピクチャを構成する画素データのうち所定数のマクロブロックラインに含まれるマクロブロックの画素データのみが記憶されており、当該記憶されているマクロブロックのうち最上行と最下行のマクロブロックの画素データは、前記第１の動き検出の対象となるマクロブロックが更新される毎に更新される
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１５】
さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、
前記第２の動き検出可否判定手段は、前記キャッシュメモリに記憶されているマクロブロックのうち前記第１の動き検出の対象となるマクロブロックが更新された際に更新されるマクロブロックを除外して前記第２の動き検出の可否を判定する
ことを特徴とする請求項１４に記載の動き検出装置。
【請求項１６】
前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データのみを用いて前記第２の動き検出を行なう
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１７】
前記キャッシュメモリの記憶容量は、前記ローカルメモリの記憶容量より大きく、かつ前記マルチフレームメモリの記憶容量より小さい
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１８】
前記第２の動き検出は、予測動きベクトルと動きベクトルとの差分処理を必要としない動き検出である
ことを特徴とする請求項１に記載の動き検出装置。
【請求項１９】
前記第２の動き検出は、ダイレクト予測又はスキップ予測である
ことを特徴とする請求項１８に記載の動き検出装置。
【請求項２０】
前記動き検出装置は、１チップで構成されている
ことを特徴とする請求項１に記載の動き検出装置。
【請求項２１】
さらに、前記マルチフレームメモリを備える
ことを特徴とする請求項１に記載の動き検出装置。
【請求項２２】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出方法であって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、ローカルメモリに記憶されている第１の動き検出時の探索範囲である第１範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出を行うステップと、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行うステップと
を含むことを特徴とする動き検出方法。
【請求項２３】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出プログラムであって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、ローカルメモリに記憶されている第１の動き検出時の探索範囲である第１範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出を行うステップと、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行うステップと
をコンピュータに実行させるための動き検出プログラム。
【請求項２４】
参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記参照ピクチャ内の画素であって動き検出時の探索範囲に含まれる画素の画素データを記憶している第１のメモリと、
前記第１のメモリより容量が大きく、前記第１のメモリへと転送される画素データを格納する第２のメモリと、
前記第１のメモリに記憶されている画素データを用いて第１の動き検出を行う第１の動き検出手段と、
前記第２のメモリに記憶されている画素データを用いて前記第１の動き検出と異なるアルゴリズムを用いて第２の動き検出を行う第２の動き検出手段と、
を備えることを特徴とする動き検出装置。
【請求項２５】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記マルチフレームメモリから読み出しを行った参照ピクチャ内の画素であって動き検出時の探索範囲及び当該探索範囲に隣接する拡大範囲の画素の画素データを記憶しているローカルメモリと、
前記ローカルメモリが記憶している画素データのうち前記探索範囲に含まれる画素データを用いて第１の動き検出を行う第１の動き検出手段と、
前記ローカルメモリが記憶している画素データのうち前記探索範囲及び前記拡大範囲に含まれる画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いて第２の動き検出を行う第２の動き検出手段と
を備えることを特徴とする動き検出装置。
【請求項２６】
前記拡大範囲は、前記探索範囲の中心の画素を含む複数の行に相当する範囲である
ことを特徴とする請求項２５に記載の動き検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化に関し、特に、動画像の符号化における動き検出処理を行なう動き検出集積装置、動き検出方法、動き検出装置、及び動き検出プログラムに関する。
【背景技術】
【０００２】
近年、音声、画像及びその他のデータを統合的に扱うマルチメディア時代を迎え、従来からの情報メディア、つまり新聞、雑誌、テレビ、ラジオ、電話等の情報を人に伝達する手段がマルチメディアの対象として取り上げられるようになってきた。一般に、マルチメディアとは、文字だけでなく、図形、音声、特に画像等を同時に関連づけて表すことをいうが、上記従来の情報メディアをマルチメディアの対象とするには、その情報をディジタル形式にして表すことが必須条件となる。【０００３】
ところが、上記の各情報メディアが持つ情報量をディジタル情報量として見積もってみると、文字の場合の１文字当たりの情報量は１〜２バイトである。これに対し、音声であれば１秒当たり６４Ｋｂｉｔｓ（電話品質）、さらに動画であれば１秒当たり１００Ｍｂｉｔｓ（現行テレビ受信品質）以上の情報量が必要となる。このため、上記の情報メディアでその膨大な情報をディジタル形式でそのまま扱うことは現実的では無い。例えば、テレビ電話は、６４Ｋｂｉｔｓ〜１．５Ｍｂｉｔｓの伝送速度を持つ総合サービスディジタル網（ＩＳＤＮ: Ｉｎｔｅｇｒａｔｅｄ Ｓｅｒｖｉｃｅｓ Ｄｉｇｉｔａｌ Ｎｅｔｗｏｒｋ）によって実用化されているが、テレビカメラで撮影された映像をそのままＩＳＤＮを介して送ることは不可能である。【０００４】
そこで、必要となってくるのが情報の圧縮技術であり、例えば、テレビ電話の場合、ＩＴＵ−Ｔ（国際電気通信連合  電気通信標準化部門）で勧告されたＨ．２６１やＨ．２６３規格の動画圧縮技術が用いられている。また、ＭＰＥＧ−１規格の情報圧縮技術によると、通常の音楽用ＣＤ（コンパクト・ディスク）に音声情報とともに画像情報を記録することも可能となる。【０００５】
ここで、ＭＰＥＧ（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）とは、ＩＳＯ／ＩＥＣ（国際標準化機構／国際電気標準会議）で標準化された動画像信号圧縮の国際規格である。ＭＰＥＧ−１は、動画像信号を１．５Ｍｂｐｓまで、つまりテレビ信号の情報を約１００分の１にまで圧縮する規格である。また、ＭＰＥＧ−１規格では対象とする品質を伝送速度が主として約１．５Ｍｂｐｓで実現できる程度の中程度の品質としたことから、さらなる高画質化の要求をみたすべく規格化されたＭＰＥＧ−２では、動画像信号の伝送速度を２〜１５ＭｂｐｓとしＴＶ放送品質を実現する。さらに最近では、ＭＰＥＧ−１、ＭＰＥＧ−２と標準化を進めてきた作業グループ（ＩＳＯ／ＩＥＣ ＪＴＣ１／ＳＣ２９／ＷＧ１１）によって、ＭＰＥＧ−１、ＭＰＥＧ−２を上回る圧縮率を達成し、更に物体単位で符号化・復号化・操作を可能とし、マルチメディア時代に必要な新しい機能を実現することができるＭＰＥＧ−４が規格化された。ＭＰＥＧ−４では、当初、低ビットレートの符号化方法の標準化を目指して規格化が進められたが、現在はインタレース画像の符号化方法や高ビットレートの符号化方法も含む、より汎用的な符号化に拡張されている。【０００６】
更に、２００３年には、ＩＳＯ／ＩＥＣとＩＴＵ−Ｔが共同で、より高圧縮率の画像符号化方式として、ＭＰＥＧ−４ＡＶＣ及びＨ．２６４を開発し、これらの規格が標準化されている。Ｈ．２６４規格は、現在ＨＤ（Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ）画像などに適したＨｉｇｈ Ｐｒｏｆｉｌｅ対応の改正規格まで拡張されている。Ｈ．２６４規格で想定するアプリケーションは、ＭＰＥＧ−２やＭＰＥＧ−４と同様にディジタル放送、ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｋ）プレーヤ／レコーダ、ハードディスクプレーヤ／レコーダ、カムコーダ、テレビ電話などに広がっている。【０００７】
一般に動画像の符号化では、時間方向及び空間方向の冗長性を削減することによって情報量の圧縮を行う。そこで、時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出及び予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。ここで、ピクチャとは１枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。ここで、インタレース画像とは、１つのフレームが時刻の異なる２つのフィールドから構成される画像である。インタレース画像の符号化処理及び復号化処理においては、１つのフレームを、フレームのまま処理したり、２つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。【０００８】
参照画像を参照せずに画面内予測符号化を行うピクチャをＩピクチャと呼ぶ。また、１枚の参照画像のみを参照し画面間予測符号化を行うピクチャをＰピクチャと呼ぶ。また、同時に２枚の参照画像を参照して画面間予測符号化を行うことのできるピクチャをＢピクチャと呼ぶ。Ｂピクチャにおける画面間予測符号化では、表示時間が前方もしくは後方から任意の組み合わせとして２枚のピクチャを参照することが可能である。参照画像（参照ピクチャ）は符号化の基本単位であるマクロブロック（ＭＢ）ごとに指定することができるが、符号化を行ったビットストリーム中で先に記述される方の参照ピクチャを第１参照ピクチャ、後に記述される方を第２参照ピクチャとして区別する。ただし、これらのピクチャを符号化する場合の条件として、参照するピクチャが既に符号化されている必要がある。【０００９】
ＰピクチャまたはＢピクチャの符号化には、動き補償画面間予測符号化が用いられている。動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。動き補償とは、単純に参照フレームの画素値から符号化対象ピクチャの画素値を予測するのではなく、ピクチャ内の各部の動き量（以下、「動きベクトル」と呼ぶ）を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした位置における予測値と符号化対象ピクチャの画素値との差分を符号化することによりデータ量を減らしている。この方式では、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録または伝送される。【００１０】
動きベクトルはマクロブロック単位で検出されており、具体的には、符号化対象ピクチャ側のマクロブロック（基準ブロック）を固定しておき、参照ピクチャ側のマクロブロックを探索範囲内で移動させ、基準ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。【００１１】
図１は、従来の動画像符号化装置の構成を示すブロック図である。【００１２】
この動画像符号化装置は、動き検出器５０６と、マルチフレームメモリ５０４と、減算器５１２と、減算器５１８と、動き補償器５０８と、符号化器５２０と、加算器５１０と、動きベクトルメモリ５１４と、動きベクトル予測器５１６とを含む。【００１３】
ＰピクチャもしくはＢピクチャなどの画面間予測では、動き検出器５０６は、マルチフレームメモリ５０４から出力される参照画像の画素である参照画素ＭＥｐｅｌを、符号化対象画像の画面信号Ｖｉｎと比較し、動きベクトルＭＶと参照フレーム番号ＲｅｆＮｏとを出力する。参照フレーム番号ＲｅｆＮｏは、複数の参照画像の中から選択された、符号化対象画像において参照する参照画像を特定する識別信号によって示される。動きベクトルＭＶは、動きベクトルメモリ５１４に一時的に記憶されたのちに近傍動きベクトルＰｒｅｖＭＶとして出力され、動きベクトル予測器５１６において、予測動きベクトルＰｒｅｄＭＶを予測するために参照される近傍動きベクトルＰｒｅｖＭＶとして使用される。減算器５１８は、動きベクトルＭＶから予測動きベクトルＰｒｅｄＭＶを減算し、減算結果を動きベクトル予測差分ＤｉｆＭＶとして出力する。【００１４】
一方、マルチフレームメモリ５０４は、参照フレーム番号ＲｅｆＮｏ及び動きベクトルＭＶで特定される画素を、動き補償参照画素ＭＣｐｅｌ１として出力する。動き補償器５０８は、小数画素精度の参照画素を生成して参照画面画素ＭＣｐｅｌ２を出力する。減算器５１２は画面信号Ｖｉｎから参照画面画素ＭＣｐｅｌ２を減算し、画面予測誤差ＤｉｆＰｅｌを出力する。【００１５】
また、符号化器５２０は、画面予測誤差ＤｉｆＰｅｌと動きベクトル予測差分ＤｉｆＭＶと参照フレーム番号ＲｅｆＮｏとを可変長符号化し、符号化信号Ｓｔｒを出力する。なお、符号化時に画面予測誤差の復号化結果である復号画面予測誤差ＲｅｃＤｉｆＰｅｌも同時に出力する。復号画面予測誤差ＲｅｃＤｉｆＰｅｌは画面予測誤差ＤｉｆＰｅｌに符号化誤差が重畳されたものであり、画面間予測復号化装置で符号化信号Ｓｔｒを復号化して得られる画面間予測誤差と一致する。【００１６】
加算器５１０は、参照画面画素ＭＣｐｅｌ２に復号画面予測誤差ＲｅｃＤｉｆＰｅｌを加算する。加算結果は、復号画面ＲｅｃＰｅｌとしてマルチフレームメモリ５０４に記憶される。但し、マルチフレームメモリ５０４の容量を有効に利用するため、マルチフレームメモリ５０４に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ５０４に記憶する必要が無い画面の復号画面ＲｅｃＰｅｌはマルチフレームメモリ５０４に記憶されない。【００１７】
図２は従来の動画像復号化装置の構成を示すブロック図である。同図において、図１と同一符号の処理部は、同一の機能を有するため、その説明は適宜省略する。【００１８】
図２に示す従来の動画像復号化装置は、図１に示す従来の動画像予測符号化装置で符号化した符号化信号Ｓｔｒを復号化して復号画面信号Ｖｏｕｔを出力する装置であり、マルチフレームメモリ５０４と、動き補償器５０８と、加算器５１０と、加算器６１４と、動きベクトルメモリ５１４と、動きベクトル予測器５１６と、復号化器６１６とを含む。【００１９】
復号化器６１６には符号化信号Ｓｔｒが入力される。復号化器６１６は、符号化信号Ｓｔｒを復号化し、復号画面予測誤差ＲｅｃＤｉｆＰｅｌと動きベクトル予測差分ＤｉｆＭＶと参照フレーム番号ＲｅｆＮｏとを出力する。加算器６１４は、動きベクトル予測器５１６から出力される予測動きベクトルＰｒｅｄＭＶと、復号化器６１６から出力される動きベクトル予測差分ＤｉｆＭＶとを加算し、動きベクトルＭＶを復号する。【００２０】
画面間予測では、マルチフレームメモリ５０４は、参照フレーム番号ＲｅｆＮｏと動きベクトルＭＶとで示される画素を動き補償参照画素ＭＣｐｅｌ１として出力し、動き補償器５０８は、小数画素精度の参照画素を生成して参照画面画素ＭＣｐｅｌ２を出力する。加算器５１０は、参照画面画素ＭＣｐｅｌ２に復号画面予測誤差ＲｅｃＤｉｆＰｅｌを加算する。加算結果は、復号画面ＲｅｃＰｅｌとしてマルチフレームメモリ５０４に記憶される。【００２１】
但し、マルチフレームメモリ５０４の容量を有効に利用するため、マルチフレームメモリ５０４に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ５０４に記憶する必要が無い画面の復号画面ＲｅｃＰｅｌはマルチフレームメモリ５０４に記憶されない。以上のように、復号画面信号Ｖｏｕｔ、すなわち復号画面ＲｅｃＰｅｌを符号化信号Ｓｔｒから正しく復号化することができる。【００２２】
ところで、図３は動き検出処理の動作を示す模式図であり、同図を用いて一般的な動き検出処理を簡単に説明する。同図において、フレームＦ１１Ｎ−１及びフレームＦ１１Ｎは、符号化を行うピクチャであり、フレームＦ１１Ｎ−１は時間的にフレームＦ１１Ｎよりも過去のピクチャを示している。例えば、領域Ｐ１１００は符号化を行うピクチャの一部分を示している。領域Ｐ１１００中の四角で示したマクロブロックに対してフレームＦ１１Ｎ−１を用いて画面間予測を行う場合、領域Ｐ１１０１の内、探索範囲である点線で囲んだ領域の中から右上向きの矢印の動きを検出し、その結果として楕円の一部分を参照画像として参照していることを示している。また、同様に領域Ｐ１１０２は符号化を行うピクチャの一部分を示している。領域Ｐ１１０２中の四角で示したマクロブロックに対してフレームＦ１１Ｎ−１を用いて画面間予測を行う場合、領域Ｐ１１０３の内、探索範囲である点線で囲んだ領域の中から左下向きの矢印の動きを検出し、三角形の一部分を参照画像として参照していることを示している。【００２３】
また、領域Ｐ１１０４は、マクロブロック毎の処理において、符号化を行うマクロブロックをマクロブロック１１２１、マクロブロック１１２２、マクロブロック１１２３、マクロブロック１１２４の順で移動させることを示している。また、フレームＦ１１Ｎ−１の領域Ｐ１１０５は、動き検出を行なう探索範囲が探索範囲１１３１、探索範囲１１３２、探索範囲１１３３、探索範囲１１３４の順に移動していることを示している。以上のように、通常の動き検出の動作では検出範囲を、符号化対象のマクロブロックの切り替わりの動作に合せて探索範囲の更新を行っており、隣り合うマクロブロックの場合、探索範囲が相当量重なっていることが分かる。【００２４】
図４は、従来の動き検出機能を実現する第１のブロック図であり、図１の点線で囲んだ範囲５０２におけるマルチフレームメモリ５０４と動き検出器５０６の接続の一例を示している。同図において、図１と同一符号の処理部は同一の機能を有するため、その説明を適宜省略する。【００２５】
動き検出器５０６は、ローカルメモリ７０２と、通常の動き検出部７０４とを含む。【００２６】
ローカルメモリ７０２は、マルチフレームメモリ５０４から探索範囲に含まれる画素データを読出し蓄える。これにより、図３における領域Ｐ１１０５で示した動き検出を行う領域が移動する状態において、領域が重なっている部分の再転送を無くすことを実現し、参照画素ＭＥｐｅｌのデータ転送量を削減している。次に、ローカルメモリ７０２に蓄えられる画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に供給される。通常の動き検出部７０４は、動き検出を行い、その結果として動きベクトルＭＶを出力する。この構成は、マルチフレームメモリ５０４が外部メモリとして外付けされる場合などには、画素データを転送するバンド幅を削減するために非常に有効である。【００２７】
また、複数の領域から動きベクトルを探索する必要がある場合には、特許文献１では、動き検出で用いるためのローカルメモリ７０２と同等のメモリを複数用いた構成が開示されている。【００２８】
しかしながら、たとえローカルメモリ７０２を実装したとしても、Ｈ.２６４規格を用いた場合、またさらに、対応する画角が大きくなる場合には、参照画素ＭＥｐｅｌのデータ転送量が課題となってくる。図５は、従来の動き検出を行うためのメモリ管理を示す第１の模式図である。図５（ａ）は、一画面分の画像データを示す図であり、図５（ｂ）は、図５（ａ）の一部を拡大した図である。図５（ｂ）に示される拡大されている部分は、ローカルメモリ７０２に蓄えられている探索範囲（白地の３×３のマス目、１つのマス目が１マクロブロックに対応）と、探索範囲を移動させた場合に必要となる転送領域（斜線）とを示している。同図に示されているように、１マクロブロック単位（＝１６画素×１６画素）で動き検出処理を行う場合、１マクロブロック行分の動き検出を行うためには、（探索範囲の縦の長さ）×（１画面の横幅）分のメモリ転送が必要となり、１画面分の動き検出を行う時には、さらに１画面の縦のマクロブロックライン数を乗じた量のメモリ転送を行う必要がある。つまり、ＭＰＥＧ−２においてＳＤサイズ画像（７２０画素×４８０画素、４５ＭＢ×３０ＭＢ）で、縦横１マクロブロック分ずつ移動した画素範囲を探索範囲とした場合、【００２９】
（１６＋１６×２）×７２０×３０＝１，０３６，８００【００３０】
の画素が１画面あたりの動き検出で、マルチフレームメモリ５０４からローカルメモリ７０２へ転送される必要がある。【００３１】
ここで、Ｈ．２６４のＳＤサイズ画像を想定した参照用ローカルメモリの管理状態を考えると、小数画素精度の動き補償を行うには６タップのフィルタを用いるため、従来のＭＰＥＧ−２などより周辺画素が多く必要となる（例えば、非特許文献１参照）。つまり、ＭＰＥＧ−２などでは小数精度画素位置を囲む４つの整数画素から小数精度画素を作っていたが、６タップフィルタの場合、３６の整数画素から小数精度画素を作るため、同じ領域で探索を行う場合、ＭＰＥＧ−２と比べ上２行、下２行、左２列、右２列の画素が必要となる。従って、Ｈ．２６４などのＳＤサイズ画像で、縦横１マクロブロック分ずつ移動した画素範囲を探索範囲とした場合、【００３２】
（１６＋１６×２＋４）×７２０×３０＝１，１２３，２００【００３３】
の画素が１画面あたりの動き検出で、マルチフレームメモリ５０４からローカルメモリ７０２へ転送される必要がある。【００３４】
さらに、ＨＤサイズ（１９２０画素×１０８８画素、１２０ＭＢ×６８ＭＢ）の画像を扱う場合、特にＨ．２６４による符号化を行う場合には、前述の１画面あたりの画素転送量が大幅に増加してしまい、図４に示す参照画素ＭＥｐｅｌの転送能力を超えてしまう可能性がある。【００３５】
例えば、ＭＰＥＧ−２のＨＤサイズ画像を想定した参照用ローカルメモリの管理状態について考える。この場合、ＨＤサイズの画像はＳＤサイズの画像に対して約６倍の画素数を持つため、簡略のため上下、左右それぞれ２．５倍の参照領域を探索するものとすれば、縦横の探索範囲は縦横４０画素分ずつ移動した画素範囲となり、同様に、【００３６】
（１６＋４０×２）×１，９２０×６８＝１２，５３３，７６０【００３７】
の画素が１画面あたりの動き検出で転送されることになる。【００３８】
さらに、Ｈ．２６４のＨＤサイズ画像を想定した参照用ローカルメモリの管理状態を想定した場合、同様に、【００３９】
（１６＋４０×２＋４）×１，９２０×６８＝１３，０５６，０００【００４０】
の画素が１画面あたりの動き検出で転送されることになり、ＭＰＥＧ−２のＳＤサイズで必要な画素転送量の約１３倍の転送が必要となることが分かる。【００４１】
以上のような理由により、さらにキャッシュメモリを備えた動き検出器の構成を考えることが可能である。図６は従来の動き検出機能を実現する第２のブロック図を示している。同図において、図４と同一符号の処理部は同一の機能を有するため、その説明を適宜省略する。【００４２】
動き検出器８０６は、キャッシュメモリ８０２と、ローカルメモリ７０２と、通常の動き検出部７０４とを含む。図４に示した動き検出器５０６との違いは、マルチフレームメモリ５０４とローカルメモリ７０２の間に、さらにキャッシュメモリ８０２を備えているところである。【００４３】
マルチフレームメモリ５０４に記憶されている画素データは、参照画素ＭＥｐｅｌとして転送され、キャッシュメモリ８０２に蓄えられる。さらに当該画素データは参照画素ＣＭＥｐｅｌとして転送され、ローカルメモリ７０２に蓄えられる。さらに通常の動き検出部７０４は、その画素データを用いて動き検出を行い、その結果として動きベクトルＭＶを出力する。【００４４】
この従来構成では、キャッシュメモリ８０２がマクロブロックライン単位のラインバッファとして画素データを記憶することによって、図５に示しているような同じマクロブロックラインの画素データの再取得を無くしている。図７は従来の動き検出を行うためのメモリ管理を示す第２の模式図であり、キャッシュメモリ８０２におけるメモリ管理の動作を簡単に表したものである。つまり、キャッシュメモリ８０２は、灰色で塗りつぶした符号化対象マクロブロックｍｅＣｎｔを含む探索範囲の横ラインに含まれる画素データと、次のマクロブロックラインの動き検出のために使用されるマクロブロックラインａｄｄＡｒｅａに含まれる画素データとを蓄える。これによって、マルチフレームメモリ５０４が外部メモリとして外付けされる場合などにおいて、参照ピクチャから何度も同じマクロブロックラインの画素データを取得する必要を無くし、参照画素ＭＥｐｅｌにおける画素データを転送するバンド幅を削減することができるようになる。このため、バンド幅削減には非常に有効な実装となる。【００４５】
以上のように、使用する画素データの局所性を利用し、マルチフレームメモリ５０４、キャッシュメモリ８０２、ローカルメモリ７０２のような階層的なメモリ構成をとることによって、実装メモリコストを抑制しつつ、外部メモリとのバンド幅を削減し、動き検出のための局所的なアクセス頻度の高さにも対応するという実装が考えられている。【００４６】
図８は、図７に示したメモリ管理方法よりもキャッシュメモリ８０２に蓄えられる画素データの容量が少ないメモリ管理方法を模式的に示す図である。【００４７】
同図のキャッシュメモリ８０２の管理では、基本的に参照領域ＲｅｆＡｒｅａと予備記憶領域ＳｕｂＡｒｅａとのメモリ管理を行い、次回開放領域ＲｅｌＡｒｅａの画素データが記憶されている物理メモリ位置に次回取得領域ＮｘｔＡｒｅａの画素データを格納していくことによって、マクロブロックラインａｄｄＡｒｅａの画素データを予め格納することが不要となり、実装メモリ量を減らすことが可能となる。【００４８】
（ダイレクト予測の説明）
Ｈ．２６４規格には、ダイレクト予測と呼ばれる画面間予測のモードが存在する。このモードは、符号化済みブロックの動き情報を用いて、対象ブロックの動き情報を予測生成する符号化モードであり、動き情報の符号化に必要なビット数が不要なため圧縮効率が向上するという効果を持つ。【００４９】
ダイレクト予測を利用することで向上する圧縮率は、符号化済みブロックから対象ブロックの動き情報を予測する精度に依存する。そこで、主として時間方向の動き情報の相関を利用する「時間ダイレクト・モード」と、主として空間方向（ピクチャ内の水平・垂直の２次元空間）の動き情報の相関を利用する「空間ダイレクト・モード」の２通りが導入されている。【００５０】
時間ダイレクト・モードは、異なる動きが含まれ、かつ動きの速度が一定の画像で効果があり、空間ダイレクト・モードは同じような動きが含まれ、かつ動きの速度が変化する画像で効果がある（例えば、非特許文献１参照）。【００５１】
なお、ダイレクト予測した画像と原画像との差分画像も必要としない場合、差分画素情報も符号化しないスキップ予測となる場合もあるが、以下簡略のため、この場合もダイレクト予測に含めて説明する。【００５２】
（ダイレクト予測を含めた画面間予測）
以上のような技術背景及び従来回路構成において、ダイレクト予測を用いた符号化を行う処理フローの一例を説明する。図９は、従来の動き検出処理を示すフローチャートである。まず、ローカルメモリ７０２を用いて動き検出処理を行い、最適な動きベクトル結果を求める（Ｓ１７０１）。【００５３】
次に、Ｓ１７０１で求めた動きベクトル結果が、ダイレクト予測により算出される動きベクトルと等しいか、あるいはほぼ等しいかを判定する（Ｓ１７０２）。Ｓ１７０２の判定結果が真の場合は、ダイレクト予測として符号化処理を行い（Ｓ１７０３）、真とならなければ通常の画面間予測として動き検出結果の符号化処理を行う（Ｓ１７０４）。
【特許文献１】特開２００６−２７０６８３号公報
【非特許文献１】ＩＴＵ-Ｔ Ｒｅｃｏｍｅｎｄａｔｉｏｎ Ｈ.２６４, “ＳＥＲＩＥＳ Ｈ: ＡＵＤＩＯＶＩＳＵＡＬ ＡＮＤ ＭＵＬＴＩＭＥＤＩＡ ＳＹＳＴＥＭＳ Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ ｏｆ ａｕｄｉｏｖｉｓｕａｌ ｓｅｒｖｉｃｅｓ -Ｃｏｄｉｎｇ ｏｆ ｍｏｖｉｎｇ ｖｉｄｅｏ：Ａｄｖａｎｃｅｄ ｖｉｄｅｏ ｃｏｄｉｎｇ ｆｏｒ ｇｅｎｅｒｉｃ ａｕｄｉｏｖｉｓｕａｌ ｓｅｒｖｉｃｅｓ,”Ｍａｒｃｈ ２００５.
【発明の開示】
【発明が解決しようとする課題】
【００５４】
ところで、図４又は図６に示した動き検出器を用いて、例えば電車の車窓から見える景色や、テレビ番組の固定的なテロップが入る動画像を符号化する場合、ダイレクト予測を行うことで符号化効率を非常に向上させることができる。しかし、ローカルメモリ７０２の中には探索範囲となるマクロブロックしか蓄えられておらず、ダイレクト予測で用いるべき画素データが存在しないためにダイレクト予測をすることが出来なくなり符号化効率が下がる場合がある。【００５５】
上記の一例に関して図１０Ａ及び図１０Ｂを用いて説明する。図１０Ａ及び図１０Ｂは、車窓からの風景を撮像した画像データから動き検出する処理を説明するための模式図である。同図において、図１０ＡのフレームＦ１８Ｎ−１と図１０ＢのフレームＦ１８Ｎは、符号化を行う電車などの中から窓を通して外の風景を録画していることを想定した場合のピクチャであり、フレームＦ１８Ｎ−１は時間的にフレームＦ１８Ｎよりも過去のピクチャを示している。【００５６】
電車が右方向に進行している場合、社内からの風景は相対的に左側に移動する。このため、フレームＦ１８Ｎ−１内の外部の風景が、フレームＦ１８Ｎよりも左にずれている。一般的に、画面間予測を行う時にピクチャの全体的なシフトがある場合、動き検出を行う探索範囲を全体的にずらす手法が効果的である。このため、例えば、範囲Ｐ１８００内の四角の網掛け部のマクロブロックＰ１８０１をフレームＦ１８Ｎ−１から動き検出する場合、範囲Ｐ１８０２で示すように、探索中心を右にずらした探索範囲Ｐ１８０３の中からマクロブロックＰ１８０１に対応する画素位置を求め、動きベクトルの探索を行う。同図では、マクロブロックＰ１８０１は、領域Ｐ１８０４との相関が高いという判定を行うことが予想される。【００５７】
しかしながら、領域Ｐ１８０９は、車内の壁及び手すりの一部を含んだ領域を想定している。このため、例えば斜線で示した四角のマクロブロックＰ１８０５を符号化する場合、フレームＦ１８Ｎ−１の参照画像において、画面全体の動きに引きずられてしまい、探索領域Ｐ１８０７の中で、マクロブロックＰ１８０５に対応する位置を探索し、動きベクトル探索を行うようになると考えられる。しかし、マクロブロックＰ１８０５に対応する位置は探索領域Ｐ１８０７の中には存在せず、相関性の高い画像を得ることができない。このため、結果的に画面間予測のモードではなく画面内予測で参照画像を生成するようになることが予想される。【００５８】
この場合、領域Ｐ１８０９では、フレームＦ１８Ｎ−１とフレームＦ１８Ｎとで動きがあまり存在しないため、動きベクトルが０の場合の領域Ｐ１８０８が、マクロブロックＰ１８０５に対応する領域として選択されていれば効果的に符号化を実現することができることが予想される。例えば、マクロブロックＰ１８０５に対して、左と上と右上の周辺マクロブロックを用いて画面内予測を行なうと仮定すると、マクロブロックＰ１８０５に関して空間ダイレクト・モードで予測される動きベクトルは０ベクトルとなり（ダイレクト予測のアルゴリズムに関しては非特許文献１を参照）、ダイレクト予測が選択されれば非常に効果的にマクロブロックを符号化することができることが理解できる。しかしながら、上述の従来の技術では、ローカルメモリ７０２内にはＰ１８０８の領域のマクロブロックが蓄えられていないために、ダイレクト予測を用いることができないことになる。【００５９】
また、特許文献１で示されているように、動き検出で用いるためのローカルメモリ７０２と同等のメモリを複数用いることによってダイレクト予測に対応することも考えられる。しかし、これまで説明してきたとおり、フルＨＤ画角などの大画角化やＨ.２６４規格などのタップ数の大きい動き補償が必要となる場合、ローカルメモリ７０２やキャッシュメモリ８０２として実装するメモリは莫大な容量となり、実装コストの増加が課題となる。【００６０】
本発明は、上述の課題を解決するためになされたものであり、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【００６１】
本発明に係る動き検出装置は、マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、第１の動き検出時の探索範囲である第１範囲に含まれる画素データを記憶しているローカルメモリと、前記ローカルメモリに記憶されている画素データを用いて、前記第１の動き検出を行う第１の動き検出手段と、前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行う第２の動き検出手段とを備えることを特徴とする。【００６２】
第１の動き検出手段が参照する画素データをローカルメモリに蓄えている。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となる。また、第１範囲外の画素データを用いて第２の動き検出が行える。このため、第１範囲内の画素データのみを用いて第２の動き検出を行なう場合に比べて、符号量を削減することができる。【００６３】
好ましくは、前記第２の動き検出手段は、前記マルチフレームメモリに記憶されている前記参照ピクチャの画素データを用いて、前記第２の動き検出を行なうことを特徴とする。【００６４】
第１の動き検出手段が参照する画素データをローカルメモリに蓄えている。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となる。また、第２の動き検出をローカルメモリより容量の大きなマルチフレームメモリを用いることにより、第１範囲外の画素データを用いて第２の動き検出が行える。このため、第１範囲内の画素データのみを用いて第２の動き検出を行なう場合に比べて、符号量を削減することができる。【００６５】
これにより、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することができる。【００６６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記マルチフレームメモリに記憶されている画素データを選択する選択手段を備え、前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行うことを特徴とする。【００６７】
第１の動き検出手段が参照する画素データはローカルメモリに蓄えられており、第２の動き検出手段が参照する画素データについてもローカルメモリに蓄えられている場合があるため、動き検出装置とマルチフレームメモリの平均バンド幅を削減することができる。【００６８】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段による前記第２の動き検出の実行及び非実行を制御する実行制御手段を備えることを特徴とする。【００６９】
実行制御手段によって第２の動き検出手段によるマルチフレームメモリからの画素データの取得を制御できる。このため、マルチフレームメモリのバンド幅が溢れる等のシステム破綻を防止することができる。【００７０】
さらに好ましくは、前記実行制御手段は、前記第２の動き検出に用いる画素データの少なくとも一部が前記ローカルメモリに蓄えられている場合に限り、前記第２の動き検出手段に前記第２の動き検出を実行させることを特徴とする。【００７１】
第２の動き検出に用いる画素データの全てをマルチフレームメモリから取得する必要がない場合に限り第２の動き検出を行う。このため、動き検出装置とマルチフレームメモリとの間の転送の平均バンド幅を削減しつつ、符号量も削減できる。【００７２】
さらに好ましくは、上述の動き検出装置は、さらに、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、前記第２範囲に含まれる画素データを記憶しているキャッシュメモリを備え、前記ローカルメモリは、前記キャッシュメモリから読み出された前記第１範囲に含まれる画素の画素データを記憶しており、前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データを用いて前記第２の動き検出を行なうことを特徴とする。【００７３】
第１の動き検出手段が参照するローカルメモリに蓄えられる画素データをキャッシュメモリから取得し、第２の動き検出手段がキャッシュメモリに蓄えられた画素データを参照する。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となり、かつローカルメモリに必要となる画素データが格納されていなくとも第２の動き検出を行うことが可能であるので、符号量を削減することもできる。さらに、キャッシュメモリ自体は第１の動き検出における転送のバンド幅を確保するためにも寄与しているので、第２の動き検出を行うためのメモリの実装コストが特に必要ないという効果もある。【００７４】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記キャッシュメモリに記憶されている画素データを選択する選択手段を備え、前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行うことを特徴とする。【００７５】
第１の動き検出手段が参照する画素データはローカルメモリに蓄えられており、第２の動き検出手段が参照する画素データについてもローカルメモリに蓄えられている場合がある。このため、キャッシュメモリの平均バンド幅を削減することができる。【００７６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、前記第２の動き検出手段は、前記第２の動き検出可否判定手段において前記第２の動き検出が可能と判定された場合に、前記第２の動き検出を行なうことを特徴とする。【００７７】
第２の動き検出手段の参照する画素データがキャッシュメモリに蓄えられていない場合に、マルチフレームメモリから画素データを取得する必要がないまたはキャッシュメモリに蓄えなおす必要がない。このため、マルチフレームメモリの平均バンド幅を削減することができる。【００７８】
さらに好ましくは、前記第２の動き検出可否判定手段は、前記第２の動き検出に用いられる画素データが、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうちの予め定められた一部の領域に含まれている場合にのみ、前記第２の動き検出が可能と判定することを特徴とする。【００７９】
具体的には、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向に制限を加えた領域であることを特徴とする。【００８０】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、右方向に制限を加えた領域であることを特徴とする。【００８１】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、左方向に制限を加えた領域であることを特徴とする。【００８２】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向及び横方向の双方に制限を加えた領域であることを特徴とする。【００８３】
キャッシュメモリに蓄えられた画像データの中で第２の動き検出手段が参照する画素データが存在するかどうか判定を行う領域がキャッシュメモリに蓄えられた画像データの形状によらず単純化できる。このため、第２の動き検出可否判定手段における判定を容易化することができる。【００８４】
さらに好ましくは、前記キャッシュメモリには、１枚の参照ピクチャを構成する画素データのうち所定数のマクロブロックラインに含まれるマクロブロックの画素データのみが記憶されており、当該記憶されているマクロブロックのうち最上行と最下行のマクロブロックの画素データは、前記第１の動き検出の対象となるマクロブロックが更新される毎に更新されることを特徴とする。【００８５】
第１の動き検出を行うために必要なマルチフレームメモリからキャッシュメモリへの画素データの転送も抑制できるので、さらにマルチフレームメモリの平均バンド幅を削減することが可能となる。【００８６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、前記第２の動き検出可否判定手段は、前記キャッシュメモリに記憶されているマクロブロックのうち前記第１の動き検出の対象となるマクロブロックが更新された際に更新されるマクロブロックを除外して前記第２の動き検出の可否を判定することを特徴とする。【００８７】
キャッシュメモリの更新のタイミングによらず第２の動き検出が行えるかどうかを判定できる。このため、第２の動き検出可否判定手段における判定を容易化することが可能となる。【００８８】
さらに好ましくは、前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データのみを用いて前記第２の動き検出を行なうことを特徴とする。【００８９】
転送のバンド幅を確保することが難しいマルチフレームメモリやローカルメモリの平均バンド幅を一切増加させることなく、第１の動き検出の探索範囲外からも第２の動き検出を行うことが可能となる。【００９０】
さらに好ましくは、前記第２の動き検出は、予測動きベクトルと動きベクトルとの差分処理を必要としない動き検出であることを特徴とする。【００９１】
第２の動き検出手段による動き検出結果の符号化において動きベクトル予想差分を符号化する必要がないため、平均符号長を短縮することが可能となる。【００９２】
さらに好ましくは、前記第２の動き検出は、ダイレクト予測又はスキップ予測であることを特徴とする。【００９３】
ダイレクト予測では動きベクトル予想差分を符号化する必要がなく、スキップでは差分画素情報についても符号化する必要がないため、平均符号長を短縮することが可能となる。【００９４】
さらに好ましくは、上述の動き検出装置は、１チップで構成されていることを特徴とする。【００９５】
キャッシュメモリとローカルメモリが動き検出手段と単一のチップに構成されるため、これらのメモリのバンド幅が確保しやすくなる。【００９６】
なお、本発明は、このような特徴的な手段を備える動き検出装置として実現することができるだけでなく、動き検出装置に含まれる特徴的な手段をステップとする動き検出方法として実現したり、動き検出方法に含まれる特徴的なステップをコンピュータに実行させるためのプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは言うまでもない。
【発明の効果】
【００９７】
本発明によると、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することができる。
【図面の簡単な説明】
【００９８】
【図１】図１は、従来の動画像符号化装置の構成を示すブロック図である。
【図２】図２は、従来の動画像復号化装置の構成を示すブロック図である。
【図３】図３は、動き検出の動作を示す模式図である。
【図４】図４は、従来の動き検出機能を実現する第１のブロック図である。
【図５】図５は、従来の動き検出を行うためのメモリ管理を示す第１の模式図である。
【図６】図６は、従来の動き検出機能を実現する第２のブロック図である。
【図７】図７は、従来の動き検出を行うためのメモリ管理を示す第２の模式図である。
【図８】図８は、従来の動き検出を行うためのメモリ管理を示す第３の模式図である。
【図９】図９は、従来の動き検出処理を示すフローチャートである。
【図１０Ａ】図１０Ａは、車窓からの風景を動き検出する動作を示す模式図である。
【図１０Ｂ】図１０Ｂは、車窓からの風景を動き検出する動作を示す模式図である。
【図１１】図１１は、本発明を実現する第１の動き検出装置の構成を示すブロック図である。
【図１２】図１２は、動き検出範囲の拡張を示す模式図である。
【図１３】図１３は、本発明の動き検出処理を示すフローチャートである。
【図１４】図１４は、本発明を実現する第２の動き検出装置の構成を示すブロック図である。
【図１５】図１５は、動き検出範囲の制限を説明する模式図である。
【図１６Ａ】図１６Ａは、本発明において車窓からの風景を動き検出する動作を示す模式図である。
【図１６Ｂ】図１６Ｂは、本発明において車窓からの風景を動き検出する動作を示す模式図である。
【図１７】図１７は、Ｈ．２６４レコーダを実現するＡＶ処理部のブロック図である。
【図１８Ａ】図１８Ａは、コンピュータシステムにより本発明を実施する場合の説明図である。
【図１８Ｂ】図１８Ｂは、コンピュータシステムにより本発明を実施する場合の説明図である。
【図１８Ｃ】図１８Ｃは、コンピュータシステムにより本発明を実施する場合の説明図である。
【符号の説明】
【００９９】
１００、２００  動き検出器
１０６  選択器
１０８  ダイレクト予測器
１１０  アクセスフラグ記憶部
１１２、２０４  ダイレクト判定器
５０４  マルチフレームメモリ
７０２  ローカルメモリ
７０４  通常の動き検出部
８０２  キャッシュメモリ
【発明を実施するための最良の形態】
【０１００】
（実施の形態１）
以下、本発明の実施の形態１について、図１１から図１３を用いて説明する。【０１０１】
図１１は、本発明を実現する第１の動き検出装置の構成を示すブロック図である。同図において、図４と同一符号の処理部は同一の機能を有するものを示し、その説明を適宜省略する。【０１０２】
第１の動き検出装置は、マルチフレームメモリ５０４と、動き検出器１００とを含む。【０１０３】
動き検出器１００は、図４に示した動き検出器５０６の構成に加え、さらに、選択器１０６、ダイレクト予測器１０８、アクセスフラグ記憶部１１０、及びダイレクト判定器１１２を含む。【０１０４】
動き検出器１００は、以下で説明する動作を行い、ダイレクト予測を含めた動き検出を行う。なお、通常の動き検出部７０４は第１の動き検出手段として、ダイレクト予測器１０８は第２の動き検出手段として、選択器１０６は選択手段として、アクセスフラグ記憶部１１０及びダイレクト判定器１１２は、実行制御手段として機能する。【０１０５】
まず、通常の動き検出を行う場合は、従来技術で説明した処理の流れと同じであり、マルチフレームメモリ５０４に記憶されている画素データが、参照画素ＭＥｐｅｌとしてローカルメモリ７０２に一次蓄積される。ローカルメモリ７０２に蓄積された画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に入力される。通常の動き検出部７０４は、入力された参照画素ＬＭＥｐｅｌを用いて通常の動き検出を行う。ローカルメモリ７０２には、探索範囲に相当する分の画素データと符号化の対象とするマクロブロックが移動したときに探索範囲として必要となる程度の画素データが蓄えられている。例えば、図５のような領域を探索する例であれば、縦に３マクロブロック分と横に４マクロブロック分の画素データがローカルメモリ７０２に格納されると良い。もちろん、探索範囲の広さ等に応じて蓄えられる領域に増減はあり得る。次に、簡略のため空間ダイレクト・モードに絞ってダイレクト予測を行う場合の説明を続ける。【０１０６】
ダイレクト予測では、周辺マクロブロックの動きベクトル情報を用いてダイレクト予測用動きベクトルｄｉｒＭＶが決定され、そのダイレクト予測用動きベクトルｄｉｒＭＶがダイレクト判定器１１２に入力される。また、ダイレクト予測を行うか行わないかの制御情報をアクセスフラグとしてアクセスフラグ記憶部１１０に格納しておく。アクセスフラグはフラグ信号ＡＦｓｉｇとしてダイレクト判定器１１２に入力される。【０１０７】
ダイレクト判定器１１２におけるアクセスフラグの意味する制御内容は、例えば、以下の１）〜４）など、動き検出器１００の実装の仕方に応じていくつかの内容が考えられる。【０１０８】
１）．ローカルメモリ７０２の中に、ダイレクト予測で用いる画素データの全てが含まれている場合に限りダイレクト予測を行ない、一部でも含まれていない場合にはダイレクト予測を行なわない。【０１０９】
２）．ローカルメモリ７０２の中に、ダイレクト予測で使う画素データが一部でも含まれている場合にはダイレクト予測を行ない、全く含まれていない場合にはダイレクト予測を行わない。【０１１０】
３）．ローカルメモリ７０２に格納されている領域から大きく離れたピクチャ空間にダイレクト予測で使う画素データが存在する場合は、ダイレクト予測を行わない。【０１１１】
４）．マルチフレームメモリ５０４とローカルメモリ７０２との間のバスに対する割当バンド幅に余裕が無い場合はダイレクト予測を行わない。【０１１２】
アクセスフラグを導入する１つの目的は、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅の増加を抑えるという点にある。例えば、１）のような制御方法を採用した場合には、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅を一切増加させないという効果がある。但し、この制御のみを行うのでは探索範囲内に参照画素が全て含まれるときに限りダイレクト予測が行われるので、従来と比較して効果は少ない。２）や３）のような制御方法を採用した場合には、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅の増加を抑えつつ、ダイレクト予測も可能になるという効果がある。４）のような制御方法を採用した場合にはシステム全体の状況に応じてダイレクト予測を行うことができるという効果がある。また、１）から４）の制御を組み合わせることはもちろん可能である。例えば、バンド幅に余裕がある場合はダイレクト予測を行うが、バンド幅に余裕がない場合はローカルメモリ７０２内にダイレクト予測で使うデータが全てある場合に限りダイレクト予測を行う、というような制御を行っても良い。また、他の制御方法も考えられる。例えば、ローカルメモリ７０２内にダイレクト予測で使うデータが半分以上存在する場合に限りダイレクト予測を行う、というような制御も考えられる。【０１１３】
ダイレクト判定器１１２は、ダイレクト予測用動きベクトルｄｉｒＭＶとフラグ信号ＡＦｓｉｇとに基づいて、ダイレクト予測を行うか否か及びダイレクト予測で用いる画素データを何れのメモリから取得するかを判定し、判定結果を、判定結果信号ＤＪｓｉｇとして選択器１０６とダイレクト予測器１０８とに出力する。選択器１０６は、判定結果信号ＤＪｓｉｇに従って、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在する場合はローカルメモリ７０２に記憶されている参照画素ＬＭＥｐｅｌを選択し、選択された参照画素ＬＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。また、選択器１０６は、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在しない場合は、マルチフレームメモリ５０４に記憶されている参照画素ＭＥｐｅｌを選択し、選択された参照画素ＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。ダイレクト予測器１０８は、入力画素データの参照画素ＤＰｐｅｌを用いて動き補償を行い、予測画像を作り出す。【０１１４】
最終的に、動き検出器１００では、図示しない判定器によって、通常の動き検出部７０４を用いた場合の符号化コストと、ダイレクト予測器１０８を用いた場合の符号化コストとが比較され、符号化コストの小さい方がモード判定結果として採用される。通常の動き検出が採用された場合は、図１に示した従来の動画像符号化装置の処理の流れと同様に、動きベクトルＭＶが出力され、予測動きベクトルＰｒｅｄＭＶとの差分である動きベクトル予測差分ＤｉｆＭＶが符号化される。また、ダイレクト予測が採用された場合には動きベクトル予測差分ＤｉｆＭＶを符号化する必要は無く、符号量の削減を行う事が可能となる。【０１１５】
以上のような符号化処理を行うことによって、マルチフレームメモリ５０４とローカルメモリ７０２とのバンド幅を最小限に抑制しつつ、ローカルメモリ７０２に存在しない領域をダイレクト予測することも可能とすることによって、符号量の削減を実現することができる。【０１１６】
図１２は動き検出範囲の拡張を示す模式図であり、前述の動作を視覚的に説明している。また、図１３は本発明の動き検出処理を示すフローチャートである。以下では、図１２及び図１３を用いて動作を説明する。図１２において、フレームＦ２Ｎ−１とフレームＦ２Ｎは、符号化を行うピクチャであり、フレームＦ２Ｎ−１は時間的にフレームＦ２Ｎよりも過去のピクチャを示している。【０１１７】
例えば、フレームＦ２Ｎのマクロブロックｍｂ２の符号化を行う場合、通常の動き検出部７０４は、フレームＦ２Ｎ−１を参照画像として通常の動き検出を行うためにローカルメモリ７０２に蓄えられている動きベクトル探索範囲ｓｒｃｈＡｒｅａ内の参照画素ＬＭＥｐｅｌを用いて動きベクトルを探索する。探索の結果、通常の動き検出部７０４は、マクロブロックｍｂ２と楕円の一部が含まれる領域ｓｒｃｈＢｌｏｃｋとの相関が高いと判定し、動きベクトルＭＶを検出する（Ｓ３０１）。【０１１８】
一方、ダイレクト予測ではローカルメモリ７０２に含まれる範囲から拡張された領域ｄｉｒＡｒｅａまでを参照画像として使用することができる。本発明の実施の形態１では、マルチフレームメモリ５０４に含まれる範囲を参照することもできるので、フレームＦ２Ｎ−１の全てから参照することも可能であるが、ここでは上述の３）のような制御を行い、拡張された領域ｄｉｒＡｒｅａをダイレクト予測で使用できる範囲に制限した場合を例にとって図示している。【０１１９】
次に、ダイレクト判定器１１２は、拡張された領域ｄｉｒＡｒｅａにダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが含まれるかどうかを判定する（Ｓ３０２）。ダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが拡張された領域ｄｉｒＡｒｅａに含まれると判定された場合には（Ｓ３０２でＹｅｓ）、選択器１０６は、マルチフレームメモリ５０４からダイレクト予測参照領域ｄｉｒＢｌｏｃｋの画素データの取得を行う。また、ダイレクト予測器１０８は、符号化コストを算出する（Ｓ３０３）。【０１２０】
ダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが拡張された領域ｄｉｒＡｒｅａに含まれないと判定された場合には（Ｓ３０２でＮｏ）、ダイレクト予測器１０８は、ダイレクト予測を符号化モードの候補から除外する（Ｓ３０４）。ここで、Ｓ３０１を含むプロセスＰ３００と、Ｓ３０２〜Ｓ３０４を含むプロセスＰ３０１とは並列に処理することも可能である。【０１２１】
プロセスＰ３００とプロセスＰ３０１が終了すると、動きベクトルＭＶを採用した場合の符号化コストとダイレクト予測を行った場合の符号化コストとが比較される（Ｓ３０５）。【０１２２】
ダイレクト予測の符号化コストが優れていると判定された場合は（Ｓ３０５でＹｅｓ）、ダイレクト予測として動きベクトル予測差分ＤｉｆＭＶを符号化することなく符号化処理が行なわれる（Ｓ３０６）。また、通常の動き検出の符号化コストが優れていると判定された場合は、通常の画面間予測として動きベクトル予測差分ＤｉｆＭＶまで含めて符号化処理が行なわれる（Ｓ３０７）。ただし、Ｓ３０４においてダイレクト予測が符号化モードの候補から除外されている場合には、Ｓ３０５で符号化コストの判定を行うことなくＳ３０７において通常の画面間予測として符号化処理が行なわれる。【０１２３】
なお、実施の形態１ではダイレクト予測器１０８に入力する画素データの入力元を選択器１０６で切り替えることとしたが、ダイレクト予測を行う時は常にマルチフレームメモリ５０４から画素データを取得するような構成にしても良い。この構成によると、データ取得経路を簡単化することができる。また、一般的にローカルメモリ７０２と通常の動き検出部７０４との間の画素データ転送には定常的に最大限のバス幅を使用している構成となっている可能性がある。このため、ダイレクト予測時にマルチフレームメモリ５０４より画素データを取得することとしても、ローカルメモリ７０２と通常の動き検出部７０４のバス転送能力に影響を与えない。【０１２４】
なお、本実施の形態における動き検出器１００は、内部でのバス転送能力（例えばローカルメモリ７０２から通常の動き検出部７０４への画素データ転送）を確保するために１チップで構成することが望ましい。一方でマルチフレームメモリ５０４は大容量が必要であるので別チップとして外付けするのが一般的である。【０１２５】
（実施の形態２）
次に、本発明の実施の形態２について、図１４から図１６Ｂを用いて説明する。【０１２６】
図１４は、本発明を実現する第２の動き検出装置の構成を示すブロック図である。同図において、図１１と同一符号の処理部は同一の機能を有するものを示し、その説明を適宜省略する。【０１２７】
第２の動き検出装置は、マルチフレームメモリ５０４と、動き検出器２００とを含む。【０１２８】
動き検出器２００は、図１１に示した動き検出器１００の構成に加え、マルチフレームメモリ５０４とローカルメモリ７０２の間に、さらにキャッシュメモリ８０２を含む。また、動き検出器２００には、動き検出器１００に存在したアクセスフラグ記憶部１１０が存在しない。キャッシュメモリ８０２の記憶容量は、ローカルメモリ７０２の記憶容量より大きく、かつマルチフレームメモリ５０４の記憶容量より小さい。【０１２９】
動き検出器２００は、以下で説明する動作を行い、ダイレクト予測を含めた動き検出を行う。なお、通常の動き検出部７０４は第１の動き検出手段として、ダイレクト予測器１０８は第２の動き検出手段として、選択器１０６は選択手段として、ダイレクト判定器２０４は第２の動き検出可否判定手段として、機能する。【０１３０】
まず、通常の動き検出を行う場合は、従来技術で説明した処理の流れと同じであり、マルチフレームメモリ５０４に記憶されている画素データが、参照画素ＭＥｐｅｌとしてキャッシュメモリ８０２に一次蓄積される。マルチフレームメモリ５０４に蓄積された画素データは、参照画素ＣＭＥｐｅｌとしてローカルメモリ７０２に二次蓄積される。ローカルメモリ７０２に蓄積された画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に入力される。通常の動き検出部７０４は、入力された参照画素ＬＭＥｐｅｌを用いて通常の動き検出を行う。ローカルメモリ７０２には、探索範囲に相当する分の画素データと符号化の対象とするマクロブロックが移動したときに探索範囲として必要となる程度の画素データが蓄えられている。例えば、図５のような領域を探索する例であれば、縦に３マクロブロック分と横に４マクロブロック分の画素データがローカルメモリ７０２に格納されると良い。もちろん、探索範囲の広さ等に応じて蓄えられ領域に増減はあり得る。一方、ダイレクト予測を行う場合について次に説明するが、実施の形態１と同じく簡略のため空間ダイレクト・モードに絞って説明を続ける。【０１３１】
ダイレクト予測では、周辺マクロブロックの動きベクトル情報を用いてダイレクト予測用動きベクトルｄｉｒＭＶが決定され、そのダイレクト予測用動きベクトルｄｉｒＭＶがダイレクト判定器２０４に入力される。【０１３２】
ダイレクト判定器２０４は、ダイレクト予測用動きベクトルｄｉｒＭＶに基づいて、ダイレクト予測を行うか否か及びダイレクト予測で用いる画素データを何れのメモリから取得するかを判定し、判定結果を、判定結果信号ＤＪｓｉｇとして選択器１０６とダイレクト予測器１０８とに出力する。選択器１０６は、判定結果信号ＤＪｓｉｇに従って、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在する場合はローカルメモリ７０２に記憶されている参照画素ＬＭＥｐｅｌを選択し、選択された参照画素ＬＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。また、選択器１０６は、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在せず、キャッシュメモリ８０２に存在する場合は、キャッシュメモリ８０２に記憶されている参照画素ＣＭＥｐｅｌを選択し、参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。ダイレクト予測器１０８は、入力画素データの参照画素ＤＰｐｅｌを用いて動き補償を行い、予測画像を作り出す。【０１３３】
最終的に動き検出器２００では、図示しない判定器によって、通常の動き検出部７０４を用いた場合の符号化コストと、ダイレクト予測器１０８を用いた場合の符号化コストとが比較され、符号化コストの小さい方がモード判定結果として採用される。通常の動き検出では、従来の動画像符号化装置を表す図１に示している流れと同様に、動きベクトルＭＶが出力され、予測動きベクトルＰｒｅｄＭＶとの差分である動きベクトル予測差分ＤｉｆＭＶが符号化される。また、ダイレクト予測が選択された場合には動きベクトル予測差分ＤｉｆＭＶを符号化する必要は無く、符号量の削減を行う事が可能となる。【０１３４】
本実施の形態の１つの特徴はマルチフレームメモリ５０４ではなく、キャッシュメモリ８０２からのみダイレクト予測に用いる画素データを取得する構成としている点にある。マルチフレームメモリ５０４は通常は外部メモリとして外付けされることが多いため、画素データを転送するバンド幅を確保することが難しい。しかしながら、本実施の形態の構成にすれば外付けメモリとの間の転送のバンド幅を一切増加させることなく、探索範囲外からもダイレクト予測を行うことが可能となる。なお、実施の形態１と組み合わせてマルチフレームメモリ５０４からもダイレクト予測が実行できる構成としたときは実施の形態１と同様の効果がある。【０１３５】
さらに、キャッシュメモリ自体は通常の動き予測における転送のバンド幅を確保するためにも寄与しているので、ダイレクト予測に対応するための追加のメモリの実装コストは特に必要がないという利点もある。【０１３６】
以上のような符号化処理を行うことによって、マルチフレームメモリ５０４の転送量の増加を行うことなくダイレクト予測の範囲を拡張でき、また、キャッシュメモリ８０２とローカルメモリ７０２とのバンド幅を最小限に抑制しつつ、ローカルメモリ７０２に存在しない領域をダイレクト予測することも可能とする。これらによって、符号量の削減を実現することが可能となる。【０１３７】
なお、本実施の形態ではダイレクト予測器１０８に入力する画素データの入力元を選択器１０６で切り替えることとしたが、ダイレクト予測を行う時は常にキャッシュメモリ８０２から画素データを取得するような構成にしても良い。すなわち、ローカルメモリ７０２から選択器１０６へのパスが存在しないような構成である。この構成にすることにより、データ取得経路の簡単化ができる。また、一般的にローカルメモリ７０２と通常の動き検出部７０４との間の画素データ転送には定常的に最大限のバス幅を使用している構成となっている可能性がある。このため、このような構成にしても、ローカルメモリ７０２と通常の動き検出部７０４のバス転送能力に影響を与えない。【０１３８】
なお、本実施の形態における動き検出器２００は、内部でのバス転送能力（例えばローカルメモリ７０２から通常の動き検出部７０４への画素データ転送）を確保するために１チップで構成することが望ましい。一方でマルチフレームメモリ５０４は大容量が必要であるので別チップとして外付けするのが一般的である。【０１３９】
なお、本実施の形態では、マルチフレームメモリ５０４とローカルメモリ７０２の間に明示的にキャッシュメモリ８０２を設ける構成を示したが、キャッシュメモリ８０２が蓄積するラインバッファに相当する程度の領域に含まれる画素データを、ローカルメモリ７０２が蓄える構成としても良い。しかし、この場合にローカルメモリ７０２内に記憶されている画素データの画像上での範囲を探索範囲とすると、通常の動き検出部７０４とローカルメモリ７０２との転送のバンド幅が極度に増大してしまう。よって、通常の動き検出部７０４では、ローカルメモリ７０２が蓄える画素データのうち、上述の実施の形態で示した程度の特定の探索範囲のみから動き検出を行い（図５の例であれば縦に３マクロブロック、横に３マクロブロックに相当する程度の範囲）、ダイレクト予測器１０８は、ローカルメモリ７０２に含まれるラインバッファの全ての領域からダイレクト予測を行うような構成にしても良い。この場合、ローカルメモリ７０２の出力側のバンド幅が増加するが、全体的なメモリ量を減らしつつ外部メモリのバンド幅の増加なくダイレクト予測の性能を向上することが可能である。なお、この構成においても後述するようにダイレクト予測を行う範囲を制限すればダイレクト判定器２０４の制御を容易にすることが可能である。【０１４０】
（探索拡張範囲の制約追加）
実施の形態２の構成では、キャッシュメモリ８０２を用いることでマルチフレームメモリ５０４との間の画素データ転送量を最大限に削減しつつ、ダイレクト予測の予測可能範囲を拡張している。ここで、ダイレクト予測の拡張範囲に制約を追加することにより、ダイレクト判定器２０４の制御が容易になり、さらに実装面で利点がある。以下、ダイレクト予測の予測可能拡張範囲の制約について説明を続ける。【０１４１】
図１５は動き検出範囲の制限を説明する模式図である。図１５（ａ）〜図１５（ｃ）は、ローカルメモリ７０２の画素制御内容をマクロブロック単位の時系列で記載したものである。図１５（ａ）では、画面左端のマクロブロック１００２を右側にシフトさせたマクロブロック１００４を探索中心とした場合の領域１００６（３マクロブロック×３マクロブロック）が動き検出範囲となっている。また、斜線で示している３マクロブロック分の領域１００８が次のマクロブロック処理（図１５（ｂ））を行うために、事前に取得されていることを示している。メモリ管理状態は、図１５（ａ）から図１５（ｂ）、図１５（ｃ）の状態に遷移していく。【０１４２】
図１５（ｄ）〜図１５（ｆ）は、図１５（ａ）〜図１５（ｃ）と同様にマクロブロック毎のローカルメモリ７０２の探索範囲の管理状態を示しているのに加え、主に横線をつけた領域１０１０を含むキャッシュメモリ８０２の状態も追加で記載している。これらの図は、キャッシュメモリ８０２が、例えば（ピクチャ幅×３マクロブロックライン）のメモリ容量を実装している場合の状態を表している。図１５（ｄ）から図１５（ｅ）、図１５（ｆ）と探索中心のマクロブロック１００４が右側にシフトして行くに従い、上段のチェックで示した論理領域１０１２が格納されている物理メモリ領域に、下段のチェックをつけた論理領域１０１４の画像情報を格納していくことによって、メモリ状態を更新していく様子を表している。【０１４３】
図１５（ｄ）〜図１５（ｆ）のような管理で、ダイレクト予測の予測可能範囲をキャッシュメモリ８０２に含まれるもの全てとした場合、前述のメモリ状態を更新している論理領域１０１２及び１０１４での更新タイミングによっては、ダイレクト予測が難しくなる。また、キャッシュメモリ８０２に格納されている領域は矩形では無いため、ダイレクト判定器２０４による領域判定が複雑なものとなる。【０１４４】
そこで、動き検出のための探索範囲の右側に拡張するダイレクト予測の予測可能拡張範囲を、ローカルメモリ７０２に格納されている探索範囲から固定マクロブロック列分までの領域拡張に制限する。これによって、画素データの更新タイミングやダイレクト予測領域の上下位置を取得可能判定処理に加える必要がなくなる為、ダイレクト判定器２０４の実装を容易化することが可能となる。例えば、図１５（ｄ）〜図１５（ｆ）において探索範囲から２マクロブロック列分１０１６までの領域にダイレクト予測の右側の予備拡張範囲を制限すれば、更新のタイミングを気にする必要はなくなる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。【０１４５】
また、図１５（ｇ）〜図１５（ｉ）は、図１５（ａ）〜図１５（ｃ）と同様にマクロブロック毎のローカルメモリ７０２の探索範囲の管理状態を示しているのに加え、主に横線をつけた領域１０１８を含むキャッシュメモリ８０２の状態も追加記載している。図１５（ｄ）〜図１５（ｆ）と異なるのは図８で説明したメモリ管理によってキャッシュメモリ８０２の実装容量を削減している点である。キャッシュメモリ８０２が、例えば（ピクチャ幅×３マクロブロックライン−α）のメモリ容量を実装している場合の状態を表している。図１５（ｇ）から図１５（ｈ）、図１５（ｉ）に探索中心のマクロブロック１００４を右側にシフトして行くに従い、上段のチェックで示した論理領域１０２０が格納されている物理メモリ領域に、下段のチェックをつけた論理領域１０２２の画像情報を格納していくことで、メモリ状態を更新していく様子を表している。【０１４６】
図１５（ｇ）〜図１５（ｉ）のような管理を行う前提で、ダイレクト予測の予測可能範囲をキャッシュメモリ８０２に含まれるもの全てとした場合、動き検出のための探索範囲から左側に関しても、前述のメモリ状態を更新しているチェックで示した論理領域１０２０及び１０２２の更新タイミングによっては、ダイレクト判定が難しくなる。また、同様にキャッシュメモリ８０２に格納されている領域が矩形では無いため、ダイレクト判定器２０４による領域判定が複雑なものとなる。【０１４７】
そこで、動き検出のための探索範囲の左側に拡張するダイレクト予測の予測可能拡張範囲を、ローカルメモリ７０２に格納されている探索範囲から固定マクロブロック列分までの領域拡張に制限する。これによって、画素データの更新タイミングやダイレクト予測領域の上下位置を取得可能判定処理に加える必要がなくなる為、ダイレクト判定器２０４の実装を容易化することが可能となる。例えば、図１５（ｄ）〜図１５（ｆ）において探索範囲から右側に２マクロブロック列分１０２４、左側に１マクロブロック列分１０２６までの領域にダイレクト予測の予備拡張範囲を制限すれば更新のタイミングを気にする必要はなくなる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。【０１４８】
なお、動き検出のための探索範囲を拡張したダイレクト予測の予備拡張範囲を縦方向に制限することも可能である。例えば、図１５（ｄ）〜図１５（ｆ）のような管理を考えた場合、キャッシュメモリ８０２に蓄えられている領域のうち最上行のマクロブロックと最下行のマクロブロックは対象マクロブロックが移るにつれて更新されていくが、中央の２マクロブロック行については更新されない。そこで、ダイレクト予測の予備拡張範囲を中央の２マクロブロック行分のマクロブロックに制限することで、ダイレクト判定器２０４は容易にダイレクト予測を行うかどうかを判定することができる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。さらに、制限範囲は縦方向のみ、あるいは横方向のみに限られるものではなく、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムによっては、縦方向と横方向の双方に制限をかけることでダイレクト判定器２０４の判定をさらに容易にすることが可能である。【０１４９】
（本実施の形態の車窓の画像への適用）
図１６Ａ及び図１６Ｂは、本発明において車窓からの風景の動き検出する動作を示す模式図である。図１６Ａにおいて、フレームＦ６Ｎ−１は、図１０Ａに示したフレームＦ１８Ｎ−１と同一の参照画像を示す。領域Ｐ６００はキャッシュメモリ８０２で管理している領域を示す。領域Ｐ６０１は前述したダイレクト判定器２０４においてダイレクト予測の予測格納拡張範囲に制限を加えた領域を示す。また、同図には、探索中心となるマクロブロックＰ６０２と、動き検出を行なう探索範囲Ｐ６０３と、図１０Ｂに示したフレームＦ１８Ｎの符号化対象のマクロブロックＰ１８０５と同じ空間上の位置の周辺Ｐ６０４と、ダイレクト予測で選択される位置Ｐ６０５とが示されている。ここでは、図１０Ａ及び図１０Ｂと同様に、探索中心が右側にシフトしている状態を仮定している。【０１５０】
図１６Ｂは、フレームＦ１８Ｎにおける符号化対象マクロブロックｃｕｒｒＭＢ（マクロブロック１８０５）と、その周辺マクロブロックである左隣接マクロブロックｍｂ６Ａと、上隣接マクロブロックｍｂ６Ｂと、右上隣接マクロブロックｍｂ６Ｃとを示している。説明の簡略のため、例えば、全体の動きに同期して探索中心がずれてしまっているため、左隣接マクロブロックｍｂ６Ａ、上隣接マクロブロックｍｂ６Ｂ及び右上隣接マクロブロックｍｂ６Ｃからなる周辺マクロブロックは、一致する参照画像がフレームＦ６Ｎ−１から得られていないとし、それぞれ画面内予測が適応されていると仮定する。【０１５１】
上記仮定のもと、符号化対象マクロブロックｃｕｒｒＭＢに対する処理を行う場合、周辺マクロブロックの符号化モードが全て画面内予測となっている。このため、空間ダイレクト・モードにおける予測動きベクトルは０ベクトルとなる。ここで、動き検出を行う探索範囲Ｐ６０３が、周辺マクロブロックに対する動き検出範囲と同様に右側にずれてしまっていると仮定すると、探索範囲Ｐ６０３の中からは符号化コストが高くなってしまった参照画像が選択される。【０１５２】
ここで、ダイレクト予測のために生成する動きベクトルは０ベクトルであり、ダイレクト判定器２０４は、ダイレクト予測で選択される位置Ｐ６０５がダイレクト予測の予測格納拡張範囲に制限を加えた領域Ｐ６０１に含まれるかどうかを判断する。その結果として、位置Ｐ６０５が領域Ｐ６０１に含まれると判断されれば、ダイレクト予測として符号化を行う。これによって、画面内予測を行うよりも格段に符号化ビット量を削減したダイレクト予測による符号化を行うことが可能となる。【０１５３】
なお、ブロック図（図１１や図１４など）の各機能ブロックは典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されても良い。マルチフレームメモリ５０４などは大容量となるため、ＬＳＩに外付けする大容量のＳＤＲＡＭなどで実装することもあるが、１パッケージ化や１チップ化されることも有り得る。【０１５４】
また、ここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を動的に再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。【０１５５】
（応用例１）
上記の動き検出装置を含む動画像符号化装置の応用例について説明する。【０１５６】
図１７は、Ｈ．２６４レコーダを実現するＡＶ処理部のブロック図である。ＡＶ処理部４００は、ディジタル圧縮された音声及び画像を再生するＤＶＤレコーダやハードディスクレコーダなどのＡＶ処理部を示している。【０１５７】
ＡＶ処理部４００は、ストリーム入出力部４０２と、メモリ入出力部４０４と、ＡＶ制御部４０６と、画像符号化復号化部４０８と、音声符号化復号化部４１０と、画像処理部４１２と、画像入出力部４１４と、音声処理部４１６と、音声入出力部４１８とを含む。【０１５８】
ストリーム入出力部４０２は、音声と画像のストリームデータｅｘＳｔｒを入出力する処理部であり、ストリームデータや音声・画像の復号データなどのデータを転送するバスｅｘＢｕｓと、大容量蓄積デバイス（図示せず）とに接続されている。【０１５９】
画像符号化復号化部４０８は、画像の符号化及び復号化を行う処理部であり、バスｅｘＢｕｓに接続されている。【０１６０】
ＡＶ処理部４００の外務には、ストリームデータや符号化データや復号化データなどのデータを格納するメモリ３９０が設けられており、メモリ入出力部４０４を介して、バスｅｘＢｕｓに接続されている。【０１６１】
ここで、画像符号化復号化部４０８は図１１と図１４に示した動き検出装置を含むものである。ストリームデータｅｘＳｔｒは、符号化信号Ｓｔｒを含んでおり、メモリ３９０は図１１に示しているマルチフレームメモリ５０４が含まれるものである。【０１６２】
画像処理部４１２は、画像信号に対してプレ処理及びポスト処理を行う処理部であり、バスｅｘＢｕｓに接続されている。画像入出力部４１４は、画像処理部４１２で処理したもしくは画像処理部４１２で処理をせずに通過だけさせた画像データ信号を画像信号ｅｘＶＳｉｇとして外部に出力する、また、画像入出力部４１４は、外部からの画像信号ｅｘＶＳｉｇを取り込む。【０１６３】
音声処理部４１６は、音声信号ｅｘＡＳｉｇに対してプレ処理及びポスト処理を行う処理部であり、バスｅｘＢｕｓに接続されている。音声入出力部４１８は、音声処理部４１６で処理したもしくは音声処理部４１６で処理をせずに通過だけさせた音声データ信号を外部に音声信号ｅｘＡＳｉｇとして出力する、また、音声入出力部４１８は、外部からの音声信号ｅｘＡＳｉｇを取り込む。また、ＡＶ制御部４０６は、ＡＶ処理部４００の全体制御を行う処理部である。【０１６４】
符号化処理においては、最初に画像信号ｅｘＶＳｉｇが画像入出力部４１４に入力され、音声信号ｅｘＡＳｉｇが音声入出力部４１８に入力される。【０１６５】
まず記録処理では、画像入出力部４１４に入力された画像信号ｅｘＶＳｉｇを用いて、画像処理部４１２においてフィルタ処理や符号化のための特徴量抽出などが行なわれる。また、特徴量抽出後の画像信号ｅｘＶＳｉｇは、メモリ入出力部４０４を介してメモリ３９０に原画像として格納される。次に、再びメモリ入出力部４０４を介してメモリ３９０から画像符号化復号化部４０８に、原画像データと参照画像データの転送が行なわれる。逆に、画像符号化復号化部４０８からメモリ３９０には画像符号化復号化部４０８で符号化された画像ストリームデータと局所復元データとが転送される。【０１６６】
一方、音声入出力部４１８に入力された音声信号ｅｘＡＳｉｇを用いて、音声処理部４１６においてフィルタ処理や符号化のための特徴量抽出などが行われ、特徴量抽出された音声信号ｅｘＡＳｉｇは、メモリ入出力部４０４を介してメモリ３９０に原音声データとして格納される。次に、再びメモリ入出力部４０４を介してメモリ３９０から原音声データを取り出して符号化し、符号化された音声データが、再度、音声ストリームデータとしてメモリ３９０に格納される。【０１６７】
符号化処理の最後に、画像ストリーム、音声ストリーム及びその他のストリーム情報を一つのストリームデータとして処理し、ストリーム入出力部４０２を介してストリームデータｅｘＳｔｒを出力し、光ディスク（ＤＶＤ）やハードディスク（ＨＤＤ）などの大容量蓄積デバイスに書き込む処理が行なわれる。【０１６８】
次に、復号化処理では以下のような動作を行う。まず、光ディスクやハードディスクや半導体メモリなどの大容量蓄積デバイスから、記録処理で蓄積しているデータの読み出しを行うことにより音声及び画像のストリーム信号が、ストリーム入出力部４０２を介してストリームデータｅｘＳｔｒが入力される。そのストリームデータｅｘＳｔｒに含まれる画像ストリームは画像符号化復号化部４０８に入力され、音声ストリームは音声符号化復号化部４１０に入力される。【０１６９】
画像符号化復号化部４０８によって復号化された画像データはメモリ入出力部４０４を介してメモリ３９０に格納される。メモリ３９０に格納されたデータは画像処理部４１２でノイズ除去などの加工処理を行う。また、メモリ３９０に格納された画像データは再び画像符号化復号化部４０８において、画面間動き補償予測の参照ピクチャとして使用されることもある。【０１７０】
また、音声符号化復号化部４１０によって復号化された音声データはメモリ入出力部４０４を介してメモリ３９０に格納される。メモリ３９０に格納されたデータに対して、音声処理部４１６で音響などの加工処理が施される。【０１７１】
最後に、音声と画像の時間的な同期をとりながら、画像処理部４１２で加工処理したデータは画像入出力部４１４を介して画像信号ｅｘＶＳｉｇとして出力され、テレビ画面などに表示される。音声処理部４１６で加工処理したデータは音声入出力部４１８を介して音声信号ｅｘＡＳｉｇとして出力され、最終的にはスピーカなどから出力される。【０１７２】
（応用例２）
さらに、上記各実施の形態で示した動画像復号化装置をソフトウェアにより実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。【０１７３】
図１８Ａ〜図１８Ｃは、上記実施の形態１から実施の形態２の動画像復号化装置を実現するプログラムを格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。【０１７４】
図１８Ａは、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１８Ｂは、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムとしての動画像復号化装置が記録されている。【０１７５】
また、図１８Ｃは、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムとしての動画像復号化装置を、フレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより動画像復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。【０１７６】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。【０１７７】
本発明の動き検出装置は、通常の動き検出対応範囲を越えた参照画像空間に関して、ダイレクト予測を活用することによって、外部メモリもしくは内部の広域なキャッシュメモリから画素データを取得し、外部メモリとの転送バンド幅を殆ど増加することなく、また実装メモリ量を増加することなく、画面間予測の対象範囲を拡張することが可能とする。【０１７８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される
【産業上の利用可能性】
【０１７９】
本発明は、例えば、Ｈ.２６４規格を用いたＨＤ画像サイズなどの大画角なピクチャサイズに対応したムービー及びレコーダ等に適用できる。
【図１】
2008136178.tif 000003
【図２】
2008136178.tif 000004
【図３】
2008136178.tif 000005
【図４】
2008136178.tif 000006
【図５】
2008136178.tif 000007
【図６】
2008136178.tif 000008
【図７】
2008136178.tif 000009
【図８】
2008136178.tif 000010
【図９】
2008136178.tif 000011
【図１０Ａ】
2008136178.tif 000012
【図１０Ｂ】
2008136178.tif 000013
【図１１】
2008136178.tif 000014
【図１２】
2008136178.tif 000015
【図１３】
2008136178.tif 000016
【図１４】
2008136178.tif 000017
【図１５】
2008136178.tif 000018
【図１６Ａ】
2008136178.tif 000019
【図１６Ｂ】
2008136178.tif 000020
【図１７】
2008136178.tif 000021
【図１８Ａ】
2008136178.tif 000022
【図１８Ｂ】
2008136178.tif 000023
【図１８Ｃ】
2008136178.tif 000024
【手続補正書】
【提出日】平成21年3月19日(2009.3.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像の符号化に関し、特に、動画像の符号化における動き検出処理を行なう動き検出集積装置、動き検出方法、動き検出装置、及び動き検出プログラムに関する。
【背景技術】
【０００２】
近年、音声、画像及びその他のデータを統合的に扱うマルチメディア時代を迎え、従来からの情報メディア、つまり新聞、雑誌、テレビ、ラジオ、電話等の情報を人に伝達する手段がマルチメディアの対象として取り上げられるようになってきた。一般に、マルチメディアとは、文字だけでなく、図形、音声、特に画像等を同時に関連づけて表すことをいうが、上記従来の情報メディアをマルチメディアの対象とするには、その情報をディジタル形式にして表すことが必須条件となる。
【０００３】
ところが、上記の各情報メディアが持つ情報量をディジタル情報量として見積もってみると、文字の場合の１文字当たりの情報量は１〜２バイトである。これに対し、音声であれば１秒当たり６４Ｋｂｉｔｓ（電話品質）、さらに動画であれば１秒当たり１００Ｍｂｉｔｓ（現行テレビ受信品質）以上の情報量が必要となる。このため、上記の情報メディアでその膨大な情報をディジタル形式でそのまま扱うことは現実的では無い。例えば、テレビ電話は、６４Ｋｂｉｔｓ〜１．５Ｍｂｉｔｓの伝送速度を持つ総合サービスディジタル網（ＩＳＤＮ: Ｉｎｔｅｇｒａｔｅｄ Ｓｅｒｖｉｃｅｓ Ｄｉｇｉｔａｌ Ｎｅｔｗｏｒｋ）によって実用化されているが、テレビカメラで撮影された映像をそのままＩＳＤＮを介して送ることは不可能である。
【０００４】
そこで、必要となってくるのが情報の圧縮技術であり、例えば、テレビ電話の場合、ＩＴＵ−Ｔ（国際電気通信連合  電気通信標準化部門）で勧告されたＨ．２６１やＨ．２６３規格の動画圧縮技術が用いられている。また、ＭＰＥＧ−１規格の情報圧縮技術によると、通常の音楽用ＣＤ（コンパクト・ディスク）に音声情報とともに画像情報を記録することも可能となる。
【０００５】
ここで、ＭＰＥＧ（Ｍｏｖｉｎｇ Ｐｉｃｔｕｒｅ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）とは、ＩＳＯ／ＩＥＣ（国際標準化機構／国際電気標準会議）で標準化された動画像信号圧縮の国際規格である。ＭＰＥＧ−１は、動画像信号を１．５Ｍｂｐｓまで、つまりテレビ信号の情報を約１００分の１にまで圧縮する規格である。また、ＭＰＥＧ−１規格では対象とする品質を伝送速度が主として約１．５Ｍｂｐｓで実現できる程度の中程度の品質としたことから、さらなる高画質化の要求をみたすべく規格化されたＭＰＥＧ−２では、動画像信号の伝送速度を２〜１５ＭｂｐｓとしＴＶ放送品質を実現する。さらに最近では、ＭＰＥＧ−１、ＭＰＥＧ−２と標準化を進めてきた作業グループ（ＩＳＯ／ＩＥＣ ＪＴＣ１／ＳＣ２９／ＷＧ１１）によって、ＭＰＥＧ−１、ＭＰＥＧ−２を上回る圧縮率を達成し、更に物体単位で符号化・復号化・操作を可能とし、マルチメディア時代に必要な新しい機能を実現することができるＭＰＥＧ−４が規格化された。ＭＰＥＧ−４では、当初、低ビットレートの符号化方法の標準化を目指して規格化が進められたが、現在はインタレース画像の符号化方法や高ビットレートの符号化方法も含む、より汎用的な符号化に拡張されている。
【０００６】
更に、２００３年には、ＩＳＯ／ＩＥＣとＩＴＵ−Ｔが共同で、より高圧縮率の画像符号化方式として、ＭＰＥＧ−４ＡＶＣ及びＨ．２６４を開発し、これらの規格が標準化されている。Ｈ．２６４規格は、現在ＨＤ（Ｈｉｇｈ Ｄｅｆｉｎｉｔｉｏｎ）画像などに適したＨｉｇｈ Ｐｒｏｆｉｌｅ対応の改正規格まで拡張されている。Ｈ．２６４規格で想定するアプリケーションは、ＭＰＥＧ−２やＭＰＥＧ−４と同様にディジタル放送、ＤＶＤ（Ｄｉｇｉｔａｌ Ｖｅｒｓａｔｉｌｅ Ｄｉｓｋ）プレーヤ／レコーダ、ハードディスクプレーヤ／レコーダ、カムコーダ、テレビ電話などに広がっている。
【０００７】
一般に動画像の符号化では、時間方向及び空間方向の冗長性を削減することによって情報量の圧縮を行う。そこで、時間的な冗長性の削減を目的とする画面間予測符号化では、前方または後方のピクチャを参照してブロック単位で動きの検出及び予測画像の作成を行い、得られた予測画像と符号化対象ピクチャとの差分値に対して符号化を行う。ここで、ピクチャとは１枚の画面を表す用語であり、プログレッシブ画像ではフレームを意味し、インタレース画像ではフレームもしくはフィールドを意味する。ここで、インタレース画像とは、１つのフレームが時刻の異なる２つのフィールドから構成される画像である。インタレース画像の符号化処理及び復号化処理においては、１つのフレームを、フレームのまま処理したり、２つのフィールドとして処理したり、フレーム内のブロック毎にフレーム構造またはフィールド構造として処理したりすることができる。
【０００８】
参照画像を参照せずに画面内予測符号化を行うピクチャをＩピクチャと呼ぶ。また、１枚の参照画像のみを参照し画面間予測符号化を行うピクチャをＰピクチャと呼ぶ。また、同時に２枚の参照画像を参照して画面間予測符号化を行うことのできるピクチャをＢピクチャと呼ぶ。Ｂピクチャにおける画面間予測符号化では、表示時間が前方もしくは後方から任意の組み合わせとして２枚のピクチャを参照することが可能である。参照画像（参照ピクチャ）は符号化の基本単位であるマクロブロック（ＭＢ）ごとに指定することができるが、符号化を行ったビットストリーム中で先に記述される方の参照ピクチャを第１参照ピクチャ、後に記述される方を第２参照ピクチャとして区別する。ただし、これらのピクチャを符号化する場合の条件として、参照するピクチャが既に符号化されている必要がある。
【０００９】
ＰピクチャまたはＢピクチャの符号化には、動き補償画面間予測符号化が用いられている。動き補償画面間予測符号化とは、画面間予測符号化に動き補償を適用した符号化方式である。動き補償とは、単純に参照フレームの画素値から符号化対象ピクチャの画素値を予測するのではなく、ピクチャ内の各部の動き量（以下、「動きベクトル」と呼ぶ）を検出し、当該動き量を考慮した予測を行うことにより予測精度を向上すると共に、データ量を減らす方式である。例えば、符号化対象ピクチャの動きベクトルを検出し、その動きベクトルの分だけシフトした位置における予測値と符号化対象ピクチャの画素値との差分を符号化することによりデータ量を減らしている。この方式では、復号化の際に動きベクトルの情報が必要になるため、動きベクトルも符号化されて記録または伝送される。
【００１０】
動きベクトルはマクロブロック単位で検出されており、具体的には、符号化対象ピクチャ側のマクロブロック（基準ブロック）を固定しておき、参照ピクチャ側のマクロブロックを探索範囲内で移動させ、基準ブロックと最も似通った参照ブロックの位置を見つけることにより、動きベクトルが検出される。
【００１１】
図１は、従来の動画像符号化装置の構成を示すブロック図である。
【００１２】
この動画像符号化装置は、動き検出器５０６と、マルチフレームメモリ５０４と、減算器５１２と、減算器５１８と、動き補償器５０８と、符号化器５２０と、加算器５１０と、動きベクトルメモリ５１４と、動きベクトル予測器５１６とを含む。
【００１３】
ＰピクチャもしくはＢピクチャなどの画面間予測では、動き検出器５０６は、マルチフレームメモリ５０４から出力される参照画像の画素である参照画素ＭＥｐｅｌを、符号化対象画像の画面信号Ｖｉｎと比較し、動きベクトルＭＶと参照フレーム番号ＲｅｆＮｏとを出力する。参照フレーム番号ＲｅｆＮｏは、複数の参照画像の中から選択された、符号化対象画像において参照する参照画像を特定する識別信号によって示される。動きベクトルＭＶは、動きベクトルメモリ５１４に一時的に記憶されたのちに近傍動きベクトルＰｒｅｖＭＶとして出力され、動きベクトル予測器５１６において、予測動きベクトルＰｒｅｄＭＶを予測するために参照される近傍動きベクトルＰｒｅｖＭＶとして使用される。減算器５１８は、動きベクトルＭＶから予測動きベクトルＰｒｅｄＭＶを減算し、減算結果を動きベクトル予測差分ＤｉｆＭＶとして出力する。
【００１４】
一方、マルチフレームメモリ５０４は、参照フレーム番号ＲｅｆＮｏ及び動きベクトルＭＶで特定される画素を、動き補償参照画素ＭＣｐｅｌ１として出力する。動き補償器５０８は、小数画素精度の参照画素を生成して参照画面画素ＭＣｐｅｌ２を出力する。減算器５１２は画面信号Ｖｉｎから参照画面画素ＭＣｐｅｌ２を減算し、画面予測誤差ＤｉｆＰｅｌを出力する。
【００１５】
また、符号化器５２０は、画面予測誤差ＤｉｆＰｅｌと動きベクトル予測差分ＤｉｆＭＶと参照フレーム番号ＲｅｆＮｏとを可変長符号化し、符号化信号Ｓｔｒを出力する。なお、符号化時に画面予測誤差の復号化結果である復号画面予測誤差ＲｅｃＤｉｆＰｅｌも同時に出力する。復号画面予測誤差ＲｅｃＤｉｆＰｅｌは画面予測誤差ＤｉｆＰｅｌに符号化誤差が重畳されたものであり、画面間予測復号化装置で符号化信号Ｓｔｒを復号化して得られる画面間予測誤差と一致する。
【００１６】
加算器５１０は、参照画面画素ＭＣｐｅｌ２に復号画面予測誤差ＲｅｃＤｉｆＰｅｌを加算する。加算結果は、復号画面ＲｅｃＰｅｌとしてマルチフレームメモリ５０４に記憶される。但し、マルチフレームメモリ５０４の容量を有効に利用するため、マルチフレームメモリ５０４に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ５０４に記憶する必要が無い画面の復号画面ＲｅｃＰｅｌはマルチフレームメモリ５０４に記憶されない。
【００１７】
図２は従来の動画像復号化装置の構成を示すブロック図である。同図において、図１と同一符号の処理部は、同一の機能を有するため、その説明は適宜省略する。
【００１８】
図２に示す従来の動画像復号化装置は、図１に示す従来の動画像予測符号化装置で符号化した符号化信号Ｓｔｒを復号化して復号画面信号Ｖｏｕｔを出力する装置であり、マルチフレームメモリ５０４と、動き補償器５０８と、加算器５１０と、加算器６１４と、動きベクトルメモリ５１４と、動きベクトル予測器５１６と、復号化器６１６とを含む。
【００１９】
復号化器６１６には符号化信号Ｓｔｒが入力される。復号化器６１６は、符号化信号Ｓｔｒを復号化し、復号画面予測誤差ＲｅｃＤｉｆＰｅｌと動きベクトル予測差分ＤｉｆＭＶと参照フレーム番号ＲｅｆＮｏとを出力する。加算器６１４は、動きベクトル予測器５１６から出力される予測動きベクトルＰｒｅｄＭＶと、復号化器６１６から出力される動きベクトル予測差分ＤｉｆＭＶとを加算し、動きベクトルＭＶを復号する。
【００２０】
画面間予測では、マルチフレームメモリ５０４は、参照フレーム番号ＲｅｆＮｏと動きベクトルＭＶとで示される画素を動き補償参照画素ＭＣｐｅｌ１として出力し、動き補償器５０８は、小数画素精度の参照画素を生成して参照画面画素ＭＣｐｅｌ２を出力する。加算器５１０は、参照画面画素ＭＣｐｅｌ２に復号画面予測誤差ＲｅｃＤｉｆＰｅｌを加算する。加算結果は、復号画面ＲｅｃＰｅｌとしてマルチフレームメモリ５０４に記憶される。
【００２１】
但し、マルチフレームメモリ５０４の容量を有効に利用するため、マルチフレームメモリ５０４に記憶されている画面の領域は不要な場合は開放され、またマルチフレームメモリ５０４に記憶する必要が無い画面の復号画面ＲｅｃＰｅｌはマルチフレームメモリ５０４に記憶されない。以上のように、復号画面信号Ｖｏｕｔ、すなわち復号画面ＲｅｃＰｅｌを符号化信号Ｓｔｒから正しく復号化することができる。
【００２２】
ところで、図３は動き検出処理の動作を示す模式図であり、同図を用いて一般的な動き検出処理を簡単に説明する。同図において、フレームＦ１１Ｎ−１及びフレームＦ１１Ｎは、符号化を行うピクチャであり、フレームＦ１１Ｎ−１は時間的にフレームＦ１１Ｎよりも過去のピクチャを示している。例えば、領域Ｐ１１００は符号化を行うピクチャの一部分を示している。領域Ｐ１１００中の四角で示したマクロブロックに対してフレームＦ１１Ｎ−１を用いて画面間予測を行う場合、領域Ｐ１１０１の内、探索範囲である点線で囲んだ領域の中から右上向きの矢印の動きを検出し、その結果として楕円の一部分を参照画像として参照していることを示している。また、同様に領域Ｐ１１０２は符号化を行うピクチャの一部分を示している。領域Ｐ１１０２中の四角で示したマクロブロックに対してフレームＦ１１Ｎ−１を用いて画面間予測を行う場合、領域Ｐ１１０３の内、探索範囲である点線で囲んだ領域の中から左下向きの矢印の動きを検出し、三角形の一部分を参照画像として参照していることを示している。
【００２３】
また、領域Ｐ１１０４は、マクロブロック毎の処理において、符号化を行うマクロブロックをマクロブロック１１２１、マクロブロック１１２２、マクロブロック１１２３、マクロブロック１１２４の順で移動させることを示している。また、フレームＦ１１Ｎ−１の領域Ｐ１１０５は、動き検出を行なう探索範囲が探索範囲１１３１、探索範囲１１３２、探索範囲１１３３、探索範囲１１３４の順に移動していることを示している。以上のように、通常の動き検出の動作では検出範囲を、符号化対象のマクロブロックの切り替わりの動作に合せて探索範囲の更新を行っており、隣り合うマクロブロックの場合、探索範囲が相当量重なっていることが分かる。
【００２４】
図４は、従来の動き検出機能を実現する第１のブロック図であり、図１の点線で囲んだ範囲５０２におけるマルチフレームメモリ５０４と動き検出器５０６の接続の一例を示している。同図において、図１と同一符号の処理部は同一の機能を有するため、その説明を適宜省略する。
【００２５】
動き検出器５０６は、ローカルメモリ７０２と、通常の動き検出部７０４とを含む。
【００２６】
ローカルメモリ７０２は、マルチフレームメモリ５０４から探索範囲に含まれる画素データを読出し蓄える。これにより、図３における領域Ｐ１１０５で示した動き検出を行う領域が移動する状態において、領域が重なっている部分の再転送を無くすことを実現し、参照画素ＭＥｐｅｌのデータ転送量を削減している。次に、ローカルメモリ７０２に蓄えられる画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に供給される。通常の動き検出部７０４は、動き検出を行い、その結果として動きベクトルＭＶを出力する。この構成は、マルチフレームメモリ５０４が外部メモリとして外付けされる場合などには、画素データを転送するバンド幅を削減するために非常に有効である。
【００２７】
また、複数の領域から動きベクトルを探索する必要がある場合には、特許文献１では、動き検出で用いるためのローカルメモリ７０２と同等のメモリを複数用いた構成が開示されている。
【００２８】
しかしながら、たとえローカルメモリ７０２を実装したとしても、Ｈ.２６４規格を用いた場合、またさらに、対応する画角が大きくなる場合には、参照画素ＭＥｐｅｌのデータ転送量が課題となってくる。図５は、従来の動き検出を行うためのメモリ管理を示す第１の模式図である。図５（ａ）は、一画面分の画像データを示す図であり、図５（ｂ）は、図５（ａ）の一部を拡大した図である。図５（ｂ）に示される拡大されている部分は、ローカルメモリ７０２に蓄えられている探索範囲（白地の３×３のマス目、１つのマス目が１マクロブロックに対応）と、探索範囲を移動させた場合に必要となる転送領域（斜線）とを示している。同図に示されているように、１マクロブロック単位（＝１６画素×１６画素）で動き検出処理を行う場合、１マクロブロック行分の動き検出を行うためには、（探索範囲の縦の長さ）×（１画面の横幅）分のメモリ転送が必要となり、１画面分の動き検出を行う時には、さらに１画面の縦のマクロブロックライン数を乗じた量のメモリ転送を行う必要がある。つまり、ＭＰＥＧ−２においてＳＤサイズ画像（７２０画素×４８０画素、４５ＭＢ×３０ＭＢ）で、縦横１マクロブロック分ずつ移動した画素範囲を探索範囲とした場合、
【００２９】
（１６＋１６×２）×７２０×３０＝１，０３６，８００
【００３０】
の画素が１画面あたりの動き検出で、マルチフレームメモリ５０４からローカルメモリ７０２へ転送される必要がある。
【００３１】
ここで、Ｈ．２６４のＳＤサイズ画像を想定した参照用ローカルメモリの管理状態を考えると、小数画素精度の動き補償を行うには６タップのフィルタを用いるため、従来のＭＰＥＧ−２などより周辺画素が多く必要となる（例えば、非特許文献１参照）。つまり、ＭＰＥＧ−２などでは小数精度画素位置を囲む４つの整数画素から小数精度画素を作っていたが、６タップフィルタの場合、３６の整数画素から小数精度画素を作るため、同じ領域で探索を行う場合、ＭＰＥＧ−２と比べ上２行、下２行、左２列、右２列の画素が必要となる。従って、Ｈ．２６４などのＳＤサイズ画像で、縦横１マクロブロック分ずつ移動した画素範囲を探索範囲とした場合、
【００３２】
（１６＋１６×２＋４）×７２０×３０＝１，１２３，２００
【００３３】
の画素が１画面あたりの動き検出で、マルチフレームメモリ５０４からローカルメモリ７０２へ転送される必要がある。
【００３４】
さらに、ＨＤサイズ（１９２０画素×１０８８画素、１２０ＭＢ×６８ＭＢ）の画像を扱う場合、特にＨ．２６４による符号化を行う場合には、前述の１画面あたりの画素転送量が大幅に増加してしまい、図４に示す参照画素ＭＥｐｅｌの転送能力を超えてしまう可能性がある。
【００３５】
例えば、ＭＰＥＧ−２のＨＤサイズ画像を想定した参照用ローカルメモリの管理状態について考える。この場合、ＨＤサイズの画像はＳＤサイズの画像に対して約６倍の画素数を持つため、簡略のため上下、左右それぞれ２．５倍の参照領域を探索するものとすれば、縦横の探索範囲は縦横４０画素分ずつ移動した画素範囲となり、同様に、
【００３６】
（１６＋４０×２）×１，９２０×６８＝１２，５３３，７６０
【００３７】
の画素が１画面あたりの動き検出で転送されることになる。
【００３８】
さらに、Ｈ．２６４のＨＤサイズ画像を想定した参照用ローカルメモリの管理状態を想定した場合、同様に、
【００３９】
（１６＋４０×２＋４）×１，９２０×６８＝１３，０５６，０００
【００４０】
の画素が１画面あたりの動き検出で転送されることになり、ＭＰＥＧ−２のＳＤサイズで必要な画素転送量の約１３倍の転送が必要となることが分かる。
【００４１】
以上のような理由により、さらにキャッシュメモリを備えた動き検出器の構成を考えることが可能である。図６は従来の動き検出機能を実現する第２のブロック図を示している。同図において、図４と同一符号の処理部は同一の機能を有するため、その説明を適宜省略する。
【００４２】
動き検出器８０６は、キャッシュメモリ８０２と、ローカルメモリ７０２と、通常の動き検出部７０４とを含む。図４に示した動き検出器５０６との違いは、マルチフレームメモリ５０４とローカルメモリ７０２の間に、さらにキャッシュメモリ８０２を備えているところである。
【００４３】
マルチフレームメモリ５０４に記憶されている画素データは、参照画素ＭＥｐｅｌとして転送され、キャッシュメモリ８０２に蓄えられる。さらに当該画素データは参照画素ＣＭＥｐｅｌとして転送され、ローカルメモリ７０２に蓄えられる。さらに通常の動き検出部７０４は、その画素データを用いて動き検出を行い、その結果として動きベクトルＭＶを出力する。
【００４４】
この従来構成では、キャッシュメモリ８０２がマクロブロックライン単位のラインバッファとして画素データを記憶することによって、図５に示しているような同じマクロブロックラインの画素データの再取得を無くしている。図７は従来の動き検出を行うためのメモリ管理を示す第２の模式図であり、キャッシュメモリ８０２におけるメモリ管理の動作を簡単に表したものである。つまり、キャッシュメモリ８０２は、灰色で塗りつぶした符号化対象マクロブロックｍｅＣｎｔを含む探索範囲の横ラインに含まれる画素データと、次のマクロブロックラインの動き検出のために使用されるマクロブロックラインａｄｄＡｒｅａに含まれる画素データとを蓄える。これによって、マルチフレームメモリ５０４が外部メモリとして外付けされる場合などにおいて、参照ピクチャから何度も同じマクロブロックラインの画素データを取得する必要を無くし、参照画素ＭＥｐｅｌにおける画素データを転送するバンド幅を削減することができるようになる。このため、バンド幅削減には非常に有効な実装となる。
【００４５】
以上のように、使用する画素データの局所性を利用し、マルチフレームメモリ５０４、キャッシュメモリ８０２、ローカルメモリ７０２のような階層的なメモリ構成をとることによって、実装メモリコストを抑制しつつ、外部メモリとのバンド幅を削減し、動き検出のための局所的なアクセス頻度の高さにも対応するという実装が考えられている。
【００４６】
図８は、図７に示したメモリ管理方法よりもキャッシュメモリ８０２に蓄えられる画素データの容量が少ないメモリ管理方法を模式的に示す図である。
【００４７】
同図のキャッシュメモリ８０２の管理では、基本的に参照領域ＲｅｆＡｒｅａと予備記憶領域ＳｕｂＡｒｅａとのメモリ管理を行い、次回開放領域ＲｅｌＡｒｅａの画素データが記憶されている物理メモリ位置に次回取得領域ＮｘｔＡｒｅａの画素データを格納していくことによって、マクロブロックラインａｄｄＡｒｅａの画素データを予め格納することが不要となり、実装メモリ量を減らすことが可能となる。
【００４８】
（ダイレクト予測の説明）
Ｈ．２６４規格には、ダイレクト予測と呼ばれる画面間予測のモードが存在する。このモードは、符号化済みブロックの動き情報を用いて、対象ブロックの動き情報を予測生成する符号化モードであり、動き情報の符号化に必要なビット数が不要なため圧縮効率が向上するという効果を持つ。
【００４９】
ダイレクト予測を利用することで向上する圧縮率は、符号化済みブロックから対象ブロックの動き情報を予測する精度に依存する。そこで、主として時間方向の動き情報の相関を利用する「時間ダイレクト・モード」と、主として空間方向（ピクチャ内の水平・垂直の２次元空間）の動き情報の相関を利用する「空間ダイレクト・モード」の２通りが導入されている。
【００５０】
時間ダイレクト・モードは、異なる動きが含まれ、かつ動きの速度が一定の画像で効果があり、空間ダイレクト・モードは同じような動きが含まれ、かつ動きの速度が変化する画像で効果がある（例えば、非特許文献１参照）。
【００５１】
なお、ダイレクト予測した画像と原画像との差分画像も必要としない場合、差分画素情報も符号化しないスキップ予測となる場合もあるが、以下簡略のため、この場合もダイレクト予測に含めて説明する。
【００５２】
（ダイレクト予測を含めた画面間予測）
以上のような技術背景及び従来回路構成において、ダイレクト予測を用いた符号化を行う処理フローの一例を説明する。図９は、従来の動き検出処理を示すフローチャートである。まず、ローカルメモリ７０２を用いて動き検出処理を行い、最適な動きベクトル結果を求める（Ｓ１７０１）。
【００５３】
次に、Ｓ１７０１で求めた動きベクトル結果が、ダイレクト予測により算出される動きベクトルと等しいか、あるいはほぼ等しいかを判定する（Ｓ１７０２）。Ｓ１７０２の判定結果が真の場合は、ダイレクト予測として符号化処理を行い（Ｓ１７０３）、真とならなければ通常の画面間予測として動き検出結果の符号化処理を行う（Ｓ１７０４）。
【特許文献１】特開２００６−２７０６８３号公報
【非特許文献１】ＩＴＵ-Ｔ Ｒｅｃｏｍｅｎｄａｔｉｏｎ Ｈ.２６４, “ＳＥＲＩＥＳ Ｈ: ＡＵＤＩＯＶＩＳＵＡＬ ＡＮＤ ＭＵＬＴＩＭＥＤＩＡ ＳＹＳＴＥＭＳ Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ ｏｆ ａｕｄｉｏｖｉｓｕａｌ ｓｅｒｖｉｃｅｓ -Ｃｏｄｉｎｇ ｏｆ ｍｏｖｉｎｇ ｖｉｄｅｏ：Ａｄｖａｎｃｅｄ ｖｉｄｅｏ ｃｏｄｉｎｇ ｆｏｒ ｇｅｎｅｒｉｃ ａｕｄｉｏｖｉｓｕａｌ ｓｅｒｖｉｃｅｓ,”Ｍａｒｃｈ ２００５.
【発明の開示】
【発明が解決しようとする課題】
【００５４】
ところで、図４又は図６に示した動き検出器を用いて、例えば電車の車窓から見える景色や、テレビ番組の固定的なテロップが入る動画像を符号化する場合、ダイレクト予測を行うことで符号化効率を非常に向上させることができる。しかし、ローカルメモリ７０２の中には探索範囲となるマクロブロックしか蓄えられておらず、ダイレクト予測で用いるべき画素データが存在しないためにダイレクト予測をすることが出来なくなり符号化効率が下がる場合がある。
【００５５】
上記の一例に関して図１０Ａ及び図１０Ｂを用いて説明する。図１０Ａ及び図１０Ｂは、車窓からの風景を撮像した画像データから動き検出する処理を説明するための模式図である。同図において、図１０ＡのフレームＦ１８Ｎ−１と図１０ＢのフレームＦ１８Ｎは、符号化を行う電車などの中から窓を通して外の風景を録画していることを想定した場合のピクチャであり、フレームＦ１８Ｎ−１は時間的にフレームＦ１８Ｎよりも過去のピクチャを示している。
【００５６】
電車が右方向に進行している場合、社内からの風景は相対的に左側に移動する。このため、フレームＦ１８Ｎ−１内の外部の風景が、フレームＦ１８Ｎよりも左にずれている。一般的に、画面間予測を行う時にピクチャの全体的なシフトがある場合、動き検出を行う探索範囲を全体的にずらす手法が効果的である。このため、例えば、範囲Ｐ１８００内の四角の網掛け部のマクロブロックＰ１８０１をフレームＦ１８Ｎ−１から動き検出する場合、範囲Ｐ１８０２で示すように、探索中心を右にずらした探索範囲Ｐ１８０３の中からマクロブロックＰ１８０１に対応する画素位置を求め、動きベクトルの探索を行う。同図では、マクロブロックＰ１８０１は、領域Ｐ１８０４との相関が高いという判定を行うことが予想される。
【００５７】
しかしながら、領域Ｐ１８０９は、車内の壁及び手すりの一部を含んだ領域を想定している。このため、例えば斜線で示した四角のマクロブロックＰ１８０５を符号化する場合、フレームＦ１８Ｎ−１の参照画像において、画面全体の動きに引きずられてしまい、探索領域Ｐ１８０７の中で、マクロブロックＰ１８０５に対応する位置を探索し、動きベクトル探索を行うようになると考えられる。しかし、マクロブロックＰ１８０５に対応する位置は探索領域Ｐ１８０７の中には存在せず、相関性の高い画像を得ることができない。このため、結果的に画面間予測のモードではなく画面内予測で参照画像を生成するようになることが予想される。
【００５８】
この場合、領域Ｐ１８０９では、フレームＦ１８Ｎ−１とフレームＦ１８Ｎとで動きがあまり存在しないため、動きベクトルが０の場合の領域Ｐ１８０８が、マクロブロックＰ１８０５に対応する領域として選択されていれば効果的に符号化を実現することができることが予想される。例えば、マクロブロックＰ１８０５に対して、左と上と右上の周辺マクロブロックを用いて画面内予測を行なうと仮定すると、マクロブロックＰ１８０５に関して空間ダイレクト・モードで予測される動きベクトルは０ベクトルとなり（ダイレクト予測のアルゴリズムに関しては非特許文献１を参照）、ダイレクト予測が選択されれば非常に効果的にマクロブロックを符号化することができることが理解できる。しかしながら、上述の従来の技術では、ローカルメモリ７０２内にはＰ１８０８の領域のマクロブロックが蓄えられていないために、ダイレクト予測を用いることができないことになる。
【００５９】
また、特許文献１で示されているように、動き検出で用いるためのローカルメモリ７０２と同等のメモリを複数用いることによってダイレクト予測に対応することも考えられる。しかし、これまで説明してきたとおり、フルＨＤ画角などの大画角化やＨ.２６４規格などのタップ数の大きい動き補償が必要となる場合、ローカルメモリ７０２やキャッシュメモリ８０２として実装するメモリは莫大な容量となり、実装コストの増加が課題となる。
【００６０】
本発明は、上述の課題を解決するためになされたものであり、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【００６１】
本発明に係る動き検出装置は、マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、第１の動き検出時の探索範囲である第１範囲に含まれる画素データを記憶しているローカルメモリと、前記ローカルメモリに記憶されている画素データを用いて、前記第１の動き検出を行う第１の動き検出手段と、前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行う第２の動き検出手段とを備えることを特徴とする。
【００６２】
第１の動き検出手段が参照する画素データをローカルメモリに蓄えている。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となる。また、第１範囲外の画素データを用いて第２の動き検出が行える。このため、第１範囲内の画素データのみを用いて第２の動き検出を行なう場合に比べて、符号量を削減することができる。
【００６３】
好ましくは、前記第２の動き検出手段は、前記マルチフレームメモリに記憶されている前記参照ピクチャの画素データを用いて、前記第２の動き検出を行なうことを特徴とする。
【００６４】
第１の動き検出手段が参照する画素データをローカルメモリに蓄えている。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となる。また、第２の動き検出をローカルメモリより容量の大きなマルチフレームメモリを用いることにより、第１範囲外の画素データを用いて第２の動き検出が行える。このため、第１範囲内の画素データのみを用いて第２の動き検出を行なう場合に比べて、符号量を削減することができる。
【００６５】
これにより、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することができる。
【００６６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記マルチフレームメモリに記憶されている画素データを選択する選択手段を備え、前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行うことを特徴とする。
【００６７】
第１の動き検出手段が参照する画素データはローカルメモリに蓄えられており、第２の動き検出手段が参照する画素データについてもローカルメモリに蓄えられている場合があるため、動き検出装置とマルチフレームメモリの平均バンド幅を削減することができる。
【００６８】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段による前記第２の動き検出の実行及び非実行を制御する実行制御手段を備えることを特徴とする。
【００６９】
実行制御手段によって第２の動き検出手段によるマルチフレームメモリからの画素データの取得を制御できる。このため、マルチフレームメモリのバンド幅が溢れる等のシステム破綻を防止することができる。
【００７０】
さらに好ましくは、前記実行制御手段は、前記第２の動き検出に用いる画素データの少なくとも一部が前記ローカルメモリに蓄えられている場合に限り、前記第２の動き検出手段に前記第２の動き検出を実行させることを特徴とする。
【００７１】
第２の動き検出に用いる画素データの全てをマルチフレームメモリから取得する必要がない場合に限り第２の動き検出を行う。このため、動き検出装置とマルチフレームメモリとの間の転送の平均バンド幅を削減しつつ、符号量も削減できる。
【００７２】
さらに好ましくは、上述の動き検出装置は、さらに、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、前記第２範囲に含まれる画素データを記憶しているキャッシュメモリを備え、前記ローカルメモリは、前記キャッシュメモリから読み出された前記第１範囲に含まれる画素の画素データを記憶しており、前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データを用いて前記第２の動き検出を行なうことを特徴とする。
【００７３】
第１の動き検出手段が参照するローカルメモリに蓄えられる画素データをキャッシュメモリから取得し、第２の動き検出手段がキャッシュメモリに蓄えられた画素データを参照する。このため、動き検出装置とマルチフレームメモリとの間の平均バンド幅を削減することが可能となり、かつローカルメモリに必要となる画素データが格納されていなくとも第２の動き検出を行うことが可能であるので、符号量を削減することもできる。さらに、キャッシュメモリ自体は第１の動き検出における転送のバンド幅を確保するためにも寄与しているので、第２の動き検出を行うためのメモリの実装コストが特に必要ないという効果もある。
【００７４】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記キャッシュメモリに記憶されている画素データを選択する選択手段を備え、前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行うことを特徴とする。
【００７５】
第１の動き検出手段が参照する画素データはローカルメモリに蓄えられており、第２の動き検出手段が参照する画素データについてもローカルメモリに蓄えられている場合がある。このため、キャッシュメモリの平均バンド幅を削減することができる。
【００７６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、前記第２の動き検出手段は、前記第２の動き検出可否判定手段において前記第２の動き検出が可能と判定された場合に、前記第２の動き検出を行なうことを特徴とする。
【００７７】
第２の動き検出手段の参照する画素データがキャッシュメモリに蓄えられていない場合に、マルチフレームメモリから画素データを取得する必要がないまたはキャッシュメモリに蓄えなおす必要がない。このため、マルチフレームメモリの平均バンド幅を削減することができる。
【００７８】
さらに好ましくは、前記第２の動き検出可否判定手段は、前記第２の動き検出に用いられる画素データが、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうちの予め定められた一部の領域に含まれている場合にのみ、前記第２の動き検出が可能と判定することを特徴とする。
【００７９】
具体的には、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向に制限を加えた領域であることを特徴とする。
【００８０】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、右方向に制限を加えた領域であることを特徴とする。
【００８１】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、左方向に制限を加えた領域であることを特徴とする。
【００８２】
また、前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向及び横方向の双方に制限を加えた領域であることを特徴とする。
【００８３】
キャッシュメモリに蓄えられた画像データの中で第２の動き検出手段が参照する画素データが存在するかどうか判定を行う領域がキャッシュメモリに蓄えられた画像データの形状によらず単純化できる。このため、第２の動き検出可否判定手段における判定を容易化することができる。
【００８４】
さらに好ましくは、前記キャッシュメモリには、１枚の参照ピクチャを構成する画素データのうち所定数のマクロブロックラインに含まれるマクロブロックの画素データのみが記憶されており、当該記憶されているマクロブロックのうち最上行と最下行のマクロブロックの画素データは、前記第１の動き検出の対象となるマクロブロックが更新される毎に更新されることを特徴とする。
【００８５】
第１の動き検出を行うために必要なマルチフレームメモリからキャッシュメモリへの画素データの転送も抑制できるので、さらにマルチフレームメモリの平均バンド幅を削減することが可能となる。
【００８６】
さらに好ましくは、上述の動き検出装置は、さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、前記第２の動き検出可否判定手段は、前記キャッシュメモリに記憶されているマクロブロックのうち前記第１の動き検出の対象となるマクロブロックが更新された際に更新されるマクロブロックを除外して前記第２の動き検出の可否を判定することを特徴とする。
【００８７】
キャッシュメモリの更新のタイミングによらず第２の動き検出が行えるかどうかを判定できる。このため、第２の動き検出可否判定手段における判定を容易化することが可能となる。
【００８８】
さらに好ましくは、前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データのみを用いて前記第２の動き検出を行なうことを特徴とする。
【００８９】
転送のバンド幅を確保することが難しいマルチフレームメモリやローカルメモリの平均バンド幅を一切増加させることなく、第１の動き検出の探索範囲外からも第２の動き検出を行うことが可能となる。
【００９０】
さらに好ましくは、前記第２の動き検出は、予測動きベクトルと動きベクトルとの差分処理を必要としない動き検出であることを特徴とする。
【００９１】
第２の動き検出手段による動き検出結果の符号化において動きベクトル予想差分を符号化する必要がないため、平均符号長を短縮することが可能となる。
【００９２】
さらに好ましくは、前記第２の動き検出は、ダイレクト予測又はスキップ予測であることを特徴とする。
【００９３】
ダイレクト予測では動きベクトル予想差分を符号化する必要がなく、スキップでは差分画素情報についても符号化する必要がないため、平均符号長を短縮することが可能となる。
【００９４】
さらに好ましくは、上述の動き検出装置は、１チップで構成されていることを特徴とする。
【００９５】
キャッシュメモリとローカルメモリが動き検出手段と単一のチップに構成されるため、これらのメモリのバンド幅が確保しやすくなる。
【００９６】
なお、本発明は、このような特徴的な手段を備える動き検出装置として実現することができるだけでなく、動き検出装置に含まれる特徴的な手段をステップとする動き検出方法として実現したり、動き検出方法に含まれる特徴的なステップをコンピュータに実行させるためのプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）等の記録媒体やインターネット等の通信ネットワークを介して流通させることができるのは言うまでもない。
【発明の効果】
【００９７】
本発明によると、探索範囲分のローカルメモリを実装することによってフレームメモリからのデータ転送のバンド幅を削減したシステムにおいて、メモリ実装のコストを抑えつつ、ダイレクト予測に対応した動き検出装置を提供することができる。
【発明を実施するための最良の形態】
【００９８】
（実施の形態１）
以下、本発明の実施の形態１について、図１１〜図１３を用いて説明する。
【００９９】
図１１は、本発明を実現する第１の動き検出装置の構成を示すブロック図である。同図において、図４と同一符号の処理部は同一の機能を有するものを示し、その説明を適宜省略する。
【０１００】
第１の動き検出装置は、マルチフレームメモリ５０４と、動き検出器１００とを含む。
【０１０１】
動き検出器１００は、図４に示した動き検出器５０６の構成に加え、さらに、選択器１０６、ダイレクト予測器１０８、アクセスフラグ記憶部１１０、及びダイレクト判定器１１２を含む。
【０１０２】
動き検出器１００は、以下で説明する動作を行い、ダイレクト予測を含めた動き検出を行う。なお、通常の動き検出部７０４は第１の動き検出手段として、ダイレクト予測器１０８は第２の動き検出手段として、選択器１０６は選択手段として、アクセスフラグ記憶部１１０及びダイレクト判定器１１２は、実行制御手段として機能する。
【０１０３】
まず、通常の動き検出を行う場合は、従来技術で説明した処理の流れと同じであり、マルチフレームメモリ５０４に記憶されている画素データが、参照画素ＭＥｐｅｌとしてローカルメモリ７０２に一次蓄積される。ローカルメモリ７０２に蓄積された画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に入力される。通常の動き検出部７０４は、入力された参照画素ＬＭＥｐｅｌを用いて通常の動き検出を行う。ローカルメモリ７０２には、探索範囲に相当する分の画素データと符号化の対象とするマクロブロックが移動したときに探索範囲として必要となる程度の画素データが蓄えられている。例えば、図５のような領域を探索する例であれば、縦に３マクロブロック分と横に４マクロブロック分の画素データがローカルメモリ７０２に格納されると良い。もちろん、探索範囲の広さ等に応じて蓄えられる領域に増減はあり得る。次に、簡略のため空間ダイレクト・モードに絞ってダイレクト予測を行う場合の説明を続ける。
【０１０４】
ダイレクト予測では、周辺マクロブロックの動きベクトル情報を用いてダイレクト予測用動きベクトルｄｉｒＭＶが決定され、そのダイレクト予測用動きベクトルｄｉｒＭＶがダイレクト判定器１１２に入力される。また、ダイレクト予測を行うか行わないかの制御情報をアクセスフラグとしてアクセスフラグ記憶部１１０に格納しておく。アクセスフラグはフラグ信号ＡＦｓｉｇとしてダイレクト判定器１１２に入力される。
【０１０５】
ダイレクト判定器１１２におけるアクセスフラグの意味する制御内容は、例えば、以下の１）〜４）など、動き検出器１００の実装の仕方に応じていくつかの内容が考えられる。
【０１０６】
１）．ローカルメモリ７０２の中に、ダイレクト予測で用いる画素データの全てが含まれている場合に限りダイレクト予測を行ない、一部でも含まれていない場合にはダイレクト予測を行なわない。
【０１０７】
２）．ローカルメモリ７０２の中に、ダイレクト予測で使う画素データが一部でも含まれている場合にはダイレクト予測を行ない、全く含まれていない場合にはダイレクト予測を行わない。
【０１０８】
３）．ローカルメモリ７０２に格納されている領域から大きく離れたピクチャ空間にダイレクト予測で使う画素データが存在する場合は、ダイレクト予測を行わない。
【０１０９】
４）．マルチフレームメモリ５０４とローカルメモリ７０２との間のバスに対する割当バンド幅に余裕が無い場合はダイレクト予測を行わない。
【０１１０】
アクセスフラグを導入する１つの目的は、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅の増加を抑えるという点にある。例えば、１）のような制御方法を採用した場合には、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅を一切増加させないという効果がある。但し、この制御のみを行うのでは探索範囲内に参照画素が全て含まれるときに限りダイレクト予測が行われるので、従来と比較して効果は少ない。２）や３）のような制御方法を採用した場合には、マルチフレームメモリ５０４とローカルメモリ７０２との間のデータ転送のバンド幅の増加を抑えつつ、ダイレクト予測も可能になるという効果がある。４）のような制御方法を採用した場合にはシステム全体の状況に応じてダイレクト予測を行うことができるという効果がある。また、１）から４）の制御を組み合わせることはもちろん可能である。例えば、バンド幅に余裕がある場合はダイレクト予測を行うが、バンド幅に余裕がない場合はローカルメモリ７０２内にダイレクト予測で使うデータが全てある場合に限りダイレクト予測を行う、というような制御を行っても良い。また、他の制御方法も考えられる。例えば、ローカルメモリ７０２内にダイレクト予測で使うデータが半分以上存在する場合に限りダイレクト予測を行う、というような制御も考えられる。
【０１１１】
ダイレクト判定器１１２は、ダイレクト予測用動きベクトルｄｉｒＭＶとフラグ信号ＡＦｓｉｇとに基づいて、ダイレクト予測を行うか否か及びダイレクト予測で用いる画素データを何れのメモリから取得するかを判定し、判定結果を、判定結果信号ＤＪｓｉｇとして選択器１０６とダイレクト予測器１０８とに出力する。選択器１０６は、判定結果信号ＤＪｓｉｇに従って、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在する場合はローカルメモリ７０２に記憶されている参照画素ＬＭＥｐｅｌを選択し、選択された参照画素ＬＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。また、選択器１０６は、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在しない場合は、マルチフレームメモリ５０４に記憶されている参照画素ＭＥｐｅｌを選択し、選択された参照画素ＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。ダイレクト予測器１０８は、入力画素データの参照画素ＤＰｐｅｌを用いて動き補償を行い、予測画像を作り出す。
【０１１２】
最終的に、動き検出器１００では、図示しない判定器によって、通常の動き検出部７０４を用いた場合の符号化コストと、ダイレクト予測器１０８を用いた場合の符号化コストとが比較され、符号化コストの小さい方がモード判定結果として採用される。通常の動き検出が採用された場合は、図１に示した従来の動画像符号化装置の処理の流れと同様に、動きベクトルＭＶが出力され、予測動きベクトルＰｒｅｄＭＶとの差分である動きベクトル予測差分ＤｉｆＭＶが符号化される。また、ダイレクト予測が採用された場合には動きベクトル予測差分ＤｉｆＭＶを符号化する必要は無く、符号量の削減を行う事が可能となる。
【０１１３】
以上のような符号化処理を行うことによって、マルチフレームメモリ５０４とローカルメモリ７０２とのバンド幅を最小限に抑制しつつ、ローカルメモリ７０２に存在しない領域をダイレクト予測することも可能とすることによって、符号量の削減を実現することができる。
【０１１４】
図１２は動き検出範囲の拡張を示す模式図であり、前述の動作を視覚的に説明している。また、図１３は本発明の動き検出処理を示すフローチャートである。以下では、図１２及び図１３を用いて動作を説明する。図１２において、フレームＦ２Ｎ−１とフレームＦ２Ｎは、符号化を行うピクチャであり、フレームＦ２Ｎ−１は時間的にフレームＦ２Ｎよりも過去のピクチャを示している。
【０１１５】
例えば、フレームＦ２Ｎのマクロブロックｍｂ２の符号化を行う場合、通常の動き検出部７０４は、フレームＦ２Ｎ−１を参照画像として通常の動き検出を行うためにローカルメモリ７０２に蓄えられている動きベクトル探索範囲ｓｒｃｈＡｒｅａ内の参照画素ＬＭＥｐｅｌを用いて動きベクトルを探索する。探索の結果、通常の動き検出部７０４は、マクロブロックｍｂ２と楕円の一部が含まれる領域ｓｒｃｈＢｌｏｃｋとの相関が高いと判定し、動きベクトルＭＶを検出する（Ｓ３０１）。
【０１１６】
一方、ダイレクト予測ではローカルメモリ７０２に含まれる範囲から拡張された領域ｄｉｒＡｒｅａまでを参照画像として使用することができる。本発明の実施の形態１では、マルチフレームメモリ５０４に含まれる範囲を参照することもできるので、フレームＦ２Ｎ−１の全てから参照することも可能であるが、ここでは上述の３）のような制御を行い、拡張された領域ｄｉｒＡｒｅａをダイレクト予測で使用できる範囲に制限した場合を例にとって図示している。
【０１１７】
次に、ダイレクト判定器１１２は、拡張された領域ｄｉｒＡｒｅａにダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが含まれるかどうかを判定する（Ｓ３０２）。ダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが拡張された領域ｄｉｒＡｒｅａに含まれると判定された場合には（Ｓ３０２でＹｅｓ）、選択器１０６は、マルチフレームメモリ５０４からダイレクト予測参照領域ｄｉｒＢｌｏｃｋの画素データの取得を行う。また、ダイレクト予測器１０８は、符号化コストを算出する（Ｓ３０３）。
【０１１８】
ダイレクト予測で生成されるダイレクト予測用動きベクトルｄｉｒＭＶが拡張された領域ｄｉｒＡｒｅａに含まれないと判定された場合には（Ｓ３０２でＮｏ）、ダイレクト予測器１０８は、ダイレクト予測を符号化モードの候補から除外する（Ｓ３０４）。ここで、Ｓ３０１を含むプロセスＰ３００と、Ｓ３０２〜Ｓ３０４を含むプロセスＰ３０１とは並列に処理することも可能である。
【０１１９】
プロセスＰ３００とプロセスＰ３０１が終了すると、動きベクトルＭＶを採用した場合の符号化コストとダイレクト予測を行った場合の符号化コストとが比較される（Ｓ３０５）。
【０１２０】
ダイレクト予測の符号化コストが優れていると判定された場合は（Ｓ３０５でＹｅｓ）、ダイレクト予測として動きベクトル予測差分ＤｉｆＭＶを符号化することなく符号化処理が行なわれる（Ｓ３０６）。また、通常の動き検出の符号化コストが優れていると判定された場合は、通常の画面間予測として動きベクトル予測差分ＤｉｆＭＶまで含めて符号化処理が行なわれる（Ｓ３０７）。ただし、Ｓ３０４においてダイレクト予測が符号化モードの候補から除外されている場合には、Ｓ３０５で符号化コストの判定を行うことなくＳ３０７において通常の画面間予測として符号化処理が行なわれる。
【０１２１】
なお、実施の形態１ではダイレクト予測器１０８に入力する画素データの入力元を選択器１０６で切り替えることとしたが、ダイレクト予測を行う時は常にマルチフレームメモリ５０４から画素データを取得するような構成にしても良い。この構成によると、データ取得経路を簡単化することができる。また、一般的にローカルメモリ７０２と通常の動き検出部７０４との間の画素データ転送には定常的に最大限のバス幅を使用している構成となっている可能性がある。このため、ダイレクト予測時にマルチフレームメモリ５０４より画素データを取得することとしても、ローカルメモリ７０２と通常の動き検出部７０４のバス転送能力に影響を与えない。
【０１２２】
なお、本実施の形態における動き検出器１００は、内部でのバス転送能力（例えばローカルメモリ７０２から通常の動き検出部７０４への画素データ転送）を確保するために１チップで構成することが望ましい。一方でマルチフレームメモリ５０４は大容量が必要であるので別チップとして外付けするのが一般的である。
【０１２３】
（実施の形態２）
次に、本発明の実施の形態２について、図１４〜図１６Ｂを用いて説明する。
【０１２４】
図１４は、本発明を実現する第２の動き検出装置の構成を示すブロック図である。同図において、図１１と同一符号の処理部は同一の機能を有するものを示し、その説明を適宜省略する。
【０１２５】
第２の動き検出装置は、マルチフレームメモリ５０４と、動き検出器２００とを含む。
【０１２６】
動き検出器２００は、図１１に示した動き検出器１００の構成に加え、マルチフレームメモリ５０４とローカルメモリ７０２の間に、さらにキャッシュメモリ８０２を含む。また、動き検出器２００には、動き検出器１００に存在したアクセスフラグ記憶部１１０が存在しない。キャッシュメモリ８０２の記憶容量は、ローカルメモリ７０２の記憶容量より大きく、かつマルチフレームメモリ５０４の記憶容量より小さい。
【０１２７】
動き検出器２００は、以下で説明する動作を行い、ダイレクト予測を含めた動き検出を行う。なお、通常の動き検出部７０４は第１の動き検出手段として、ダイレクト予測器１０８は第２の動き検出手段として、選択器１０６は選択手段として、ダイレクト判定器２０４は第２の動き検出可否判定手段として、機能する。
【０１２８】
まず、通常の動き検出を行う場合は、従来技術で説明した処理の流れと同じであり、マルチフレームメモリ５０４に記憶されている画素データが、参照画素ＭＥｐｅｌとしてキャッシュメモリ８０２に一次蓄積される。マルチフレームメモリ５０４に蓄積された画素データは、参照画素ＣＭＥｐｅｌとしてローカルメモリ７０２に二次蓄積される。ローカルメモリ７０２に蓄積された画素データは、参照画素ＬＭＥｐｅｌとして通常の動き検出部７０４に入力される。通常の動き検出部７０４は、入力された参照画素ＬＭＥｐｅｌを用いて通常の動き検出を行う。ローカルメモリ７０２には、探索範囲に相当する分の画素データと符号化の対象とするマクロブロックが移動したときに探索範囲として必要となる程度の画素データが蓄えられている。例えば、図５のような領域を探索する例であれば、縦に３マクロブロック分と横に４マクロブロック分の画素データがローカルメモリ７０２に格納されると良い。もちろん、探索範囲の広さ等に応じて蓄えられ領域に増減はあり得る。一方、ダイレクト予測を行う場合について次に説明するが、実施の形態１と同じく簡略のため空間ダイレクト・モードに絞って説明を続ける。
【０１２９】
ダイレクト予測では、周辺マクロブロックの動きベクトル情報を用いてダイレクト予測用動きベクトルｄｉｒＭＶが決定され、そのダイレクト予測用動きベクトルｄｉｒＭＶがダイレクト判定器２０４に入力される。
【０１３０】
ダイレクト判定器２０４は、ダイレクト予測用動きベクトルｄｉｒＭＶに基づいて、ダイレクト予測を行うか否か及びダイレクト予測で用いる画素データを何れのメモリから取得するかを判定し、判定結果を、判定結果信号ＤＪｓｉｇとして選択器１０６とダイレクト予測器１０８とに出力する。選択器１０６は、判定結果信号ＤＪｓｉｇに従って、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在する場合はローカルメモリ７０２に記憶されている参照画素ＬＭＥｐｅｌを選択し、選択された参照画素ＬＭＥｐｅｌを参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。また、選択器１０６は、ダイレクト予測で用いる画素データがローカルメモリ７０２に存在せず、キャッシュメモリ８０２に存在する場合は、キャッシュメモリ８０２に記憶されている参照画素ＣＭＥｐｅｌを選択し、参照画素ＤＰｐｅｌとしてダイレクト予測器１０８に出力する。ダイレクト予測器１０８は、入力画素データの参照画素ＤＰｐｅｌを用いて動き補償を行い、予測画像を作り出す。
【０１３１】
最終的に動き検出器２００では、図示しない判定器によって、通常の動き検出部７０４を用いた場合の符号化コストと、ダイレクト予測器１０８を用いた場合の符号化コストとが比較され、符号化コストの小さい方がモード判定結果として採用される。通常の動き検出では、従来の動画像符号化装置を表す図１に示している流れと同様に、動きベクトルＭＶが出力され、予測動きベクトルＰｒｅｄＭＶとの差分である動きベクトル予測差分ＤｉｆＭＶが符号化される。また、ダイレクト予測が選択された場合には動きベクトル予測差分ＤｉｆＭＶを符号化する必要は無く、符号量の削減を行う事が可能となる。
【０１３２】
本実施の形態の１つの特徴はマルチフレームメモリ５０４ではなく、キャッシュメモリ８０２からのみダイレクト予測に用いる画素データを取得する構成としている点にある。マルチフレームメモリ５０４は通常は外部メモリとして外付けされることが多いため、画素データを転送するバンド幅を確保することが難しい。しかしながら、本実施の形態の構成にすれば外付けメモリとの間の転送のバンド幅を一切増加させることなく、探索範囲外からもダイレクト予測を行うことが可能となる。なお、実施の形態１と組み合わせてマルチフレームメモリ５０４からもダイレクト予測が実行できる構成としたときは実施の形態１と同様の効果がある。
【０１３３】
さらに、キャッシュメモリ自体は通常の動き予測における転送のバンド幅を確保するためにも寄与しているので、ダイレクト予測に対応するための追加のメモリの実装コストは特に必要がないという利点もある。
【０１３４】
以上のような符号化処理を行うことによって、マルチフレームメモリ５０４の転送量の増加を行うことなくダイレクト予測の範囲を拡張でき、また、キャッシュメモリ８０２とローカルメモリ７０２とのバンド幅を最小限に抑制しつつ、ローカルメモリ７０２に存在しない領域をダイレクト予測することも可能とする。これらによって、符号量の削減を実現することが可能となる。
【０１３５】
なお、本実施の形態ではダイレクト予測器１０８に入力する画素データの入力元を選択器１０６で切り替えることとしたが、ダイレクト予測を行う時は常にキャッシュメモリ８０２から画素データを取得するような構成にしても良い。すなわち、ローカルメモリ７０２から選択器１０６へのパスが存在しないような構成である。この構成にすることにより、データ取得経路の簡単化ができる。また、一般的にローカルメモリ７０２と通常の動き検出部７０４との間の画素データ転送には定常的に最大限のバス幅を使用している構成となっている可能性がある。このため、このような構成にしても、ローカルメモリ７０２と通常の動き検出部７０４のバス転送能力に影響を与えない。
【０１３６】
なお、本実施の形態における動き検出器２００は、内部でのバス転送能力（例えばローカルメモリ７０２から通常の動き検出部７０４への画素データ転送）を確保するために１チップで構成することが望ましい。一方でマルチフレームメモリ５０４は大容量が必要であるので別チップとして外付けするのが一般的である。
【０１３７】
なお、本実施の形態では、マルチフレームメモリ５０４とローカルメモリ７０２の間に明示的にキャッシュメモリ８０２を設ける構成を示したが、キャッシュメモリ８０２が蓄積するラインバッファに相当する程度の領域に含まれる画素データを、ローカルメモリ７０２が蓄える構成としても良い。しかし、この場合にローカルメモリ７０２内に記憶されている画素データの画像上での範囲を探索範囲とすると、通常の動き検出部７０４とローカルメモリ７０２との転送のバンド幅が極度に増大してしまう。よって、通常の動き検出部７０４では、ローカルメモリ７０２が蓄える画素データのうち、上述の実施の形態で示した程度の特定の探索範囲のみから動き検出を行い（図５の例であれば縦に３マクロブロック、横に３マクロブロックに相当する程度の範囲）、ダイレクト予測器１０８は、ローカルメモリ７０２に含まれるラインバッファの全ての領域からダイレクト予測を行うような構成にしても良い。この場合、ローカルメモリ７０２の出力側のバンド幅が増加するが、全体的なメモリ量を減らしつつ外部メモリのバンド幅の増加なくダイレクト予測の性能を向上することが可能である。なお、この構成においても後述するようにダイレクト予測を行う範囲を制限すればダイレクト判定器２０４の制御を容易にすることが可能である。
【０１３８】
（探索拡張範囲の制約追加）
実施の形態２の構成では、キャッシュメモリ８０２を用いることでマルチフレームメモリ５０４との間の画素データ転送量を最大限に削減しつつ、ダイレクト予測の予測可能範囲を拡張している。ここで、ダイレクト予測の拡張範囲に制約を追加することにより、ダイレクト判定器２０４の制御が容易になり、さらに実装面で利点がある。以下、ダイレクト予測の予測可能拡張範囲の制約について説明を続ける。
【０１３９】
図１５は動き検出範囲の制限を説明する模式図である。図１５（ａ）〜図１５（ｃ）は、ローカルメモリ７０２の画素制御内容をマクロブロック単位の時系列で記載したものである。図１５（ａ）では、画面左端のマクロブロック１００２を右側にシフトさせたマクロブロック１００４を探索中心とした場合の領域１００６（３マクロブロック×３マクロブロック）が動き検出範囲となっている。また、斜線で示している３マクロブロック分の領域１００８が次のマクロブロック処理（図１５（ｂ））を行うために、事前に取得されていることを示している。メモリ管理状態は、図１５（ａ）〜図１５（ｂ）、図１５（ｃ）の状態に遷移していく。
【０１４０】
図１５（ｄ）〜図１５（ｆ）は、図１５（ａ）〜図１５（ｃ）と同様にマクロブロック毎のローカルメモリ７０２の探索範囲の管理状態を示しているのに加え、主に横線をつけた領域１０１０を含むキャッシュメモリ８０２の状態も追加で記載している。これらの図は、キャッシュメモリ８０２が、例えば（ピクチャ幅×３マクロブロックライン）のメモリ容量を実装している場合の状態を表している。図１５（ｄ）〜図１５（ｅ）、図１５（ｆ）と探索中心のマクロブロック１００４が右側にシフトして行くに従い、上段のチェックで示した論理領域１０１２が格納されている物理メモリ領域に、下段のチェックをつけた論理領域１０１４の画像情報を格納していくことによって、メモリ状態を更新していく様子を表している。
【０１４１】
図１５（ｄ）〜図１５（ｆ）のような管理で、ダイレクト予測の予測可能範囲をキャッシュメモリ８０２に含まれるもの全てとした場合、前述のメモリ状態を更新している論理領域１０１２及び１０１４での更新タイミングによっては、ダイレクト予測が難しくなる。また、キャッシュメモリ８０２に格納されている領域は矩形では無いため、ダイレクト判定器２０４による領域判定が複雑なものとなる。
【０１４２】
そこで、動き検出のための探索範囲の右側に拡張するダイレクト予測の予測可能拡張範囲を、ローカルメモリ７０２に格納されている探索範囲から固定マクロブロック列分までの領域拡張に制限する。これによって、画素データの更新タイミングやダイレクト予測領域の上下位置を取得可能判定処理に加える必要がなくなる為、ダイレクト判定器２０４の実装を容易化することが可能となる。例えば、図１５（ｄ）〜図１５（ｆ）において探索範囲から２マクロブロック列分１０１６までの領域にダイレクト予測の右側の予備拡張範囲を制限すれば、更新のタイミングを気にする必要はなくなる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。
【０１４３】
また、図１５（ｇ）〜図１５（ｉ）は、図１５（ａ）〜図１５（ｃ）と同様にマクロブロック毎のローカルメモリ７０２の探索範囲の管理状態を示しているのに加え、主に横線をつけた領域１０１８を含むキャッシュメモリ８０２の状態も追加記載している。図１５（ｄ）〜図１５（ｆ）と異なるのは図８で説明したメモリ管理によってキャッシュメモリ８０２の実装容量を削減している点である。キャッシュメモリ８０２が、例えば（ピクチャ幅×３マクロブロックライン−α）のメモリ容量を実装している場合の状態を表している。図１５（ｇ）〜図１５（ｈ）、図１５（ｉ）に探索中心のマクロブロック１００４を右側にシフトして行くに従い、上段のチェックで示した論理領域１０２０が格納されている物理メモリ領域に、下段のチェックをつけた論理領域１０２２の画像情報を格納していくことで、メモリ状態を更新していく様子を表している。
【０１４４】
図１５（ｇ）〜図１５（ｉ）のような管理を行う前提で、ダイレクト予測の予測可能範囲をキャッシュメモリ８０２に含まれるもの全てとした場合、動き検出のための探索範囲から左側に関しても、前述のメモリ状態を更新しているチェックで示した論理領域１０２０及び１０２２の更新タイミングによっては、ダイレクト判定が難しくなる。また、同様にキャッシュメモリ８０２に格納されている領域が矩形では無いため、ダイレクト判定器２０４による領域判定が複雑なものとなる。
【０１４５】
そこで、動き検出のための探索範囲の左側に拡張するダイレクト予測の予測可能拡張範囲を、ローカルメモリ７０２に格納されている探索範囲から固定マクロブロック列分までの領域拡張に制限する。これによって、画素データの更新タイミングやダイレクト予測領域の上下位置を取得可能判定処理に加える必要がなくなる為、ダイレクト判定器２０４の実装を容易化することが可能となる。例えば、図１５（ｄ）〜図１５（ｆ）において探索範囲から右側に２マクロブロック列分１０２４、左側に１マクロブロック列分１０２６までの領域にダイレクト予測の予備拡張範囲を制限すれば更新のタイミングを気にする必要はなくなる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。
【０１４６】
なお、動き検出のための探索範囲を拡張したダイレクト予測の予備拡張範囲を縦方向に制限することも可能である。例えば、図１５（ｄ）〜図１５（ｆ）のような管理を考えた場合、キャッシュメモリ８０２に蓄えられている領域のうち最上行のマクロブロックと最下行のマクロブロックは対象マクロブロックが移るにつれて更新されていくが、中央の２マクロブロック行については更新されない。そこで、ダイレクト予測の予備拡張範囲を中央の２マクロブロック行分のマクロブロックに制限することで、ダイレクト判定器２０４は容易にダイレクト予測を行うかどうかを判定することができる。もちろん、どの範囲にまで制限するべきかについては、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムに応じて適宜変更すればよい。さらに、制限範囲は縦方向のみ、あるいは横方向のみに限られるものではなく、キャッシュメモリ８０２のメモリ容量や更新のアルゴリズムによっては、縦方向と横方向の双方に制限をかけることでダイレクト判定器２０４の判定をさらに容易にすることが可能である。
【０１４７】
（本実施の形態の車窓の画像への適用）
図１６Ａ及び図１６Ｂは、本発明において車窓からの風景の動き検出する動作を示す模式図である。図１６Ａにおいて、フレームＦ６Ｎ−１は、図１０Ａに示したフレームＦ１８Ｎ−１と同一の参照画像を示す。領域Ｐ６００はキャッシュメモリ８０２で管理している領域を示す。領域Ｐ６０１は前述したダイレクト判定器２０４においてダイレクト予測の予測格納拡張範囲に制限を加えた領域を示す。また、同図には、探索中心となるマクロブロックＰ６０２と、動き検出を行なう探索範囲Ｐ６０３と、図１０Ｂに示したフレームＦ１８Ｎの符号化対象のマクロブロックＰ１８０５と同じ空間上の位置の周辺Ｐ６０４と、ダイレクト予測で選択される位置Ｐ６０５とが示されている。ここでは、図１０Ａ及び図１０Ｂと同様に、探索中心が右側にシフトしている状態を仮定している。
【０１４８】
図１６Ｂは、フレームＦ１８Ｎにおける符号化対象マクロブロックｃｕｒｒＭＢ（マクロブロック１８０５）と、その周辺マクロブロックである左隣接マクロブロックｍｂ６Ａと、上隣接マクロブロックｍｂ６Ｂと、右上隣接マクロブロックｍｂ６Ｃとを示している。説明の簡略のため、例えば、全体の動きに同期して探索中心がずれてしまっているため、左隣接マクロブロックｍｂ６Ａ、上隣接マクロブロックｍｂ６Ｂ及び右上隣接マクロブロックｍｂ６Ｃからなる周辺マクロブロックは、一致する参照画像がフレームＦ６Ｎ−１から得られていないとし、それぞれ画面内予測が適応されていると仮定する。
【０１４９】
上記仮定のもと、符号化対象マクロブロックｃｕｒｒＭＢに対する処理を行う場合、周辺マクロブロックの符号化モードが全て画面内予測となっている。このため、空間ダイレクト・モードにおける予測動きベクトルは０ベクトルとなる。ここで、動き検出を行う探索範囲Ｐ６０３が、周辺マクロブロックに対する動き検出範囲と同様に右側にずれてしまっていると仮定すると、探索範囲Ｐ６０３の中からは符号化コストが高くなってしまった参照画像が選択される。
【０１５０】
ここで、ダイレクト予測のために生成する動きベクトルは０ベクトルであり、ダイレクト判定器２０４は、ダイレクト予測で選択される位置Ｐ６０５がダイレクト予測の予測格納拡張範囲に制限を加えた領域Ｐ６０１に含まれるかどうかを判断する。その結果として、位置Ｐ６０５が領域Ｐ６０１に含まれると判断されれば、ダイレクト予測として符号化を行う。これによって、画面内予測を行うよりも格段に符号化ビット量を削減したダイレクト予測による符号化を行うことが可能となる。
【０１５１】
なお、ブロック図（図１１や図１４など）の各機能ブロックは典型的には集積回路であるＬＳＩとして実現される。これらは個別に１チップ化されても良いし、一部または全てを含むように１チップ化されても良い。マルチフレームメモリ５０４などは大容量となるため、ＬＳＩに外付けする大容量のＳＤＲＡＭなどで実装することもあるが、１パッケージ化や１チップ化されることも有り得る。
【０１５２】
また、ここではＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路または汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を動的に再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。さらには、半導体技術の進歩または派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０１５３】
（応用例１）
上記の動き検出装置を含む動画像符号化装置の応用例について説明する。
【０１５４】
図１７は、Ｈ．２６４レコーダを実現するＡＶ処理部のブロック図である。ＡＶ処理部４００は、ディジタル圧縮された音声及び画像を再生するＤＶＤレコーダやハードディスクレコーダなどのＡＶ処理部を示している。
【０１５５】
ＡＶ処理部４００は、ストリーム入出力部４０２と、メモリ入出力部４０４と、ＡＶ制御部４０６と、画像符号化復号化部４０８と、音声符号化復号化部４１０と、画像処理部４１２と、画像入出力部４１４と、音声処理部４１６と、音声入出力部４１８とを含む。
【０１５６】
ストリーム入出力部４０２は、音声と画像のストリームデータｅｘＳｔｒを入出力する処理部であり、ストリームデータや音声・画像の復号データなどのデータを転送するバスｅｘＢｕｓと、大容量蓄積デバイス（図示せず）とに接続されている。
【０１５７】
画像符号化復号化部４０８は、画像の符号化及び復号化を行う処理部であり、バスｅｘＢｕｓに接続されている。
【０１５８】
ＡＶ処理部４００の外部には、ストリームデータや符号化データや復号化データなどのデータを格納するメモリ３９０が設けられており、メモリ入出力部４０４を介して、バスｅｘＢｕｓに接続されている。
【０１５９】
ここで、画像符号化復号化部４０８は図１１と図１４に示した動き検出装置を含むものである。ストリームデータｅｘＳｔｒは、符号化信号Ｓｔｒを含んでおり、メモリ３９０は図１１に示しているマルチフレームメモリ５０４が含まれるものである。
【０１６０】
画像処理部４１２は、画像信号に対してプレ処理及びポスト処理を行う処理部であり、バスｅｘＢｕｓに接続されている。画像入出力部４１４は、画像処理部４１２で処理したもしくは画像処理部４１２で処理をせずに通過だけさせた画像データ信号を画像信号ｅｘＶＳｉｇとして外部に出力する、また、画像入出力部４１４は、外部からの画像信号ｅｘＶＳｉｇを取り込む。
【０１６１】
音声処理部４１６は、音声信号ｅｘＡＳｉｇに対してプレ処理及びポスト処理を行う処理部であり、バスｅｘＢｕｓに接続されている。音声入出力部４１８は、音声処理部４１６で処理したもしくは音声処理部４１６で処理をせずに通過だけさせた音声データ信号を外部に音声信号ｅｘＡＳｉｇとして出力する、また、音声入出力部４１８は、外部からの音声信号ｅｘＡＳｉｇを取り込む。また、ＡＶ制御部４０６は、ＡＶ処理部４００の全体制御を行う処理部である。
【０１６２】
符号化処理においては、最初に画像信号ｅｘＶＳｉｇが画像入出力部４１４に入力され、音声信号ｅｘＡＳｉｇが音声入出力部４１８に入力される。
【０１６３】
まず記録処理では、画像入出力部４１４に入力された画像信号ｅｘＶＳｉｇを用いて、画像処理部４１２においてフィルタ処理や符号化のための特徴量抽出などが行なわれる。また、特徴量抽出後の画像信号ｅｘＶＳｉｇは、メモリ入出力部４０４を介してメモリ３９０に原画像として格納される。次に、再びメモリ入出力部４０４を介してメモリ３９０から画像符号化復号化部４０８に、原画像データと参照画像データの転送が行なわれる。逆に、画像符号化復号化部４０８からメモリ３９０には画像符号化復号化部４０８で符号化された画像ストリームデータと局所復元データとが転送される。
【０１６４】
一方、音声入出力部４１８に入力された音声信号ｅｘＡＳｉｇを用いて、音声処理部４１６においてフィルタ処理や符号化のための特徴量抽出などが行われ、特徴量抽出された音声信号ｅｘＡＳｉｇは、メモリ入出力部４０４を介してメモリ３９０に原音声データとして格納される。次に、再びメモリ入出力部４０４を介してメモリ３９０から原音声データを取り出して符号化し、符号化された音声データが、再度、音声ストリームデータとしてメモリ３９０に格納される。
【０１６５】
符号化処理の最後に、画像ストリーム、音声ストリーム及びその他のストリーム情報を一つのストリームデータとして処理し、ストリーム入出力部４０２を介してストリームデータｅｘＳｔｒを出力し、光ディスク（ＤＶＤ）やハードディスク（ＨＤＤ）などの大容量蓄積デバイスに書き込む処理が行なわれる。
【０１６６】
次に、復号化処理では以下のような動作を行う。まず、光ディスクやハードディスクや半導体メモリなどの大容量蓄積デバイスから、記録処理で蓄積しているデータの読み出しを行うことにより音声及び画像のストリーム信号が、ストリーム入出力部４０２を介してストリームデータｅｘＳｔｒが入力される。そのストリームデータｅｘＳｔｒに含まれる画像ストリームは画像符号化復号化部４０８に入力され、音声ストリームは音声符号化復号化部４１０に入力される。
【０１６７】
画像符号化復号化部４０８によって復号化された画像データはメモリ入出力部４０４を介してメモリ３９０に格納される。メモリ３９０に格納されたデータは画像処理部４１２でノイズ除去などの加工処理を行う。また、メモリ３９０に格納された画像データは再び画像符号化復号化部４０８において、画面間動き補償予測の参照ピクチャとして使用されることもある。
【０１６８】
また、音声符号化復号化部４１０によって復号化された音声データはメモリ入出力部４０４を介してメモリ３９０に格納される。メモリ３９０に格納されたデータに対して、音声処理部４１６で音響などの加工処理が施される。
【０１６９】
最後に、音声と画像の時間的な同期をとりながら、画像処理部４１２で加工処理したデータは画像入出力部４１４を介して画像信号ｅｘＶＳｉｇとして出力され、テレビ画面などに表示される。音声処理部４１６で加工処理したデータは音声入出力部４１８を介して音声信号ｅｘＡＳｉｇとして出力され、最終的にはスピーカなどから出力される。
【０１７０】
（応用例２）
さらに、上記各実施の形態で示した動画像復号化装置をソフトウェアにより実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【０１７１】
図１８Ａ〜図１８Ｃは、上記実施の形態１から実施の形態２の動画像復号化装置を実現するプログラムを格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
【０１７２】
図１８Ａは、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示し、図１８Ｂは、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。従って、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムとしての動画像復号化装置が記録されている。
【０１７３】
また、図１８Ｃは、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムとしての動画像復号化装置を、フレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより動画像復号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【０１７４】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【０１７５】
本発明の動き検出装置は、通常の動き検出対応範囲を越えた参照画像空間に関して、ダイレクト予測を活用することによって、外部メモリもしくは内部の広域なキャッシュメモリから画素データを取得し、外部メモリとの転送バンド幅を殆ど増加することなく、また実装メモリ量を増加することなく、画面間予測の対象範囲を拡張することが可能とする。
【０１７６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【産業上の利用可能性】
【０１７７】
本発明は、例えば、Ｈ.２６４規格を用いたＨＤ画像サイズなどの大画角なピクチャサイズに対応したムービー及びレコーダ等に適用できる。
【図面の簡単な説明】
【０１７８】
【図１】図１は、従来の動画像符号化装置の構成を示すブロック図である。
【図２】図２は、従来の動画像復号化装置の構成を示すブロック図である。
【図３】図３は、動き検出の動作を示す模式図である。
【図４】図４は、従来の動き検出機能を実現する第１のブロック図である。
【図５】図５は、従来の動き検出を行うためのメモリ管理を示す第１の模式図である。
【図６】図６は、従来の動き検出機能を実現する第２のブロック図である。
【図７】図７は、従来の動き検出を行うためのメモリ管理を示す第２の模式図である。
【図８】図８は、従来の動き検出を行うためのメモリ管理を示す第３の模式図である。
【図９】図９は、従来の動き検出処理を示すフローチャートである。
【図１０Ａ】図１０Ａは、車窓からの風景を動き検出する動作を示す模式図である。
【図１０Ｂ】図１０Ｂは、車窓からの風景を動き検出する動作を示す模式図である。
【図１１】図１１は、本発明を実現する第１の動き検出装置の構成を示すブロック図である。
【図１２】図１２は、動き検出範囲の拡張を示す模式図である。
【図１３】図１３は、本発明の動き検出処理を示すフローチャートである。
【図１４】図１４は、本発明を実現する第２の動き検出装置の構成を示すブロック図である。
【図１５】図１５は、動き検出範囲の制限を説明する模式図である。
【図１６Ａ】図１６Ａは、本発明において車窓からの風景を動き検出する動作を示す模式図である。
【図１６Ｂ】図１６Ｂは、本発明において車窓からの風景を動き検出する動作を示す模式図である。
【図１７】図１７は、Ｈ．２６４レコーダを実現するＡＶ処理部のブロック図である。
【図１８Ａ】図１８Ａは、コンピュータシステムにより本発明を実施する場合の説明図である。
【図１８Ｂ】図１８Ｂは、コンピュータシステムにより本発明を実施する場合の説明図である。
【図１８Ｃ】図１８Ｃは、コンピュータシステムにより本発明を実施する場合の説明図である。
【符号の説明】
【０１７９】
１００、２００  動き検出器
１０６  選択器
１０８  ダイレクト予測器
１１０  アクセスフラグ記憶部
１１２、２０４  ダイレクト判定器
５０４  マルチフレームメモリ
７０２  ローカルメモリ
７０４  通常の動き検出部
８０２  キャッシュメモリ
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、第１の動き検出時の探索範囲である第１範囲に含まれる画素データを記憶しているローカルメモリと、
前記ローカルメモリに記憶されている画素データを用いて、前記第１の動き検出を行う第１の動き検出手段と、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行う第２の動き検出手段と
を備えることを特徴とする動き検出装置。
【請求項２】
前記第２の動き検出手段は、前記マルチフレームメモリに記憶されている前記参照ピクチャの画素データを用いて、前記第２の動き検出を行なう
ことを特徴とする請求項１に記載の動き検出装置。
【請求項３】
さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記マルチフレームメモリに記憶されている画素データを選択する選択手段を備え、
前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行う
ことを特徴とする請求項２に記載の動き検出装置。
【請求項４】
さらに、前記第２の動き検出手段による前記第２の動き検出の実行及び非実行を制御する実行制御手段を備える
ことを特徴とする請求項１に記載の動き検出装置。
【請求項５】
前記実行制御手段は、前記第２の動き検出に用いる画素データの少なくとも一部が前記ローカルメモリに蓄えられている場合に限り、前記第２の動き検出手段に前記第２の動き検出を実行させる
ことを特徴とする請求項４に記載の動き検出装置。
【請求項６】
さらに、前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、前記第２範囲に含まれる画素データを記憶しているキャッシュメモリを備え、
前記ローカルメモリは、前記キャッシュメモリから読み出された前記第１範囲に含まれる画素の画素データを記憶しており、
前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データを用いて前記第２の動き検出を行なう
ことを特徴とする請求項１に記載の動き検出装置。
【請求項７】
さらに、前記第２の動き検出手段が前記第１範囲内の画素データを使用して前記第２の動き検出を行なう場合には前記ローカルメモリに記憶されている画素データを選択し、前記第２の動き検出手段が前記第２範囲内であり、かつ前記第１範囲外の画素データを使用して前記第２の動き検出を行なう場合には前記キャッシュメモリに記憶されている画素データを選択する選択手段を備え、
前記第２の動き検出手段は、前記選択手段によって選択された画素データを用いて前記第２の動き検出を行う
ことを特徴とする請求項６に記載の動き検出装置。
【請求項８】
さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、
前記第２の動き検出手段は、前記第２の動き検出可否判定手段において前記第２の動き検出が可能と判定された場合に、前記第２の動き検出を行なう
ことを特徴とする請求項６に記載の動き検出装置。
【請求項９】
前記第２の動き検出可否判定手段は、前記第２の動き検出に用いられる画素データが、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうちの予め定められた一部の領域に含まれている場合にのみ、前記第２の動き検出が可能と判定する
ことを特徴とする請求項８に記載の動き検出装置。
【請求項１０】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１１】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、右方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１２】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、左方向に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１３】
前記予め定められた一部の領域は、前記キャッシュメモリに含まれている画素データが参照ピクチャ上で占める領域のうち、縦方向及び横方向の双方に制限を加えた領域である
ことを特徴とする請求項９に記載の動き検出装置。
【請求項１４】
前記キャッシュメモリには、１枚の参照ピクチャを構成する画素データのうち所定数のマクロブロックラインに含まれるマクロブロックの画素データのみが記憶されており、当該記憶されているマクロブロックのうち最上行と最下行のマクロブロックの画素データは、前記第１の動き検出の対象となるマクロブロックが更新される毎に更新される
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１５】
さらに、前記第２の動き検出に用いられる画素データが前記キャッシュメモリに記憶されている場合にのみ、前記第２の動き検出が可能と判定する第２の動き検出可否判定手段を備え、
前記第２の動き検出可否判定手段は、前記キャッシュメモリに記憶されているマクロブロックのうち前記第１の動き検出の対象となるマクロブロックが更新された際に更新されるマクロブロックを除外して前記第２の動き検出の可否を判定する
ことを特徴とする請求項１４に記載の動き検出装置。
【請求項１６】
前記第２の動き検出手段は、前記キャッシュメモリに記憶されている前記参照ピクチャの画素データのみを用いて前記第２の動き検出を行なう
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１７】
前記キャッシュメモリの記憶容量は、前記ローカルメモリの記憶容量より大きく、かつ前記マルチフレームメモリの記憶容量より小さい
ことを特徴とする請求項６に記載の動き検出装置。
【請求項１８】
前記第２の動き検出は、予測動きベクトルと動きベクトルとの差分処理を必要としない動き検出である
ことを特徴とする請求項１に記載の動き検出装置。
【請求項１９】
前記第２の動き検出は、ダイレクト予測又はスキップ予測である
ことを特徴とする請求項１８に記載の動き検出装置。
【請求項２０】
前記動き検出装置は、１チップで構成されている
ことを特徴とする請求項１に記載の動き検出装置。
【請求項２１】
さらに、前記マルチフレームメモリを備える
ことを特徴とする請求項１に記載の動き検出装置。
【請求項２２】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出方法であって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、ローカルメモリに記憶されている第１の動き検出時の探索範囲である第１範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出を行うステップと、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行うステップと
を含むことを特徴とする動き検出方法。
【請求項２３】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出プログラムであって、
前記マルチフレームメモリから読み出された参照ピクチャの画素データのうち、ローカルメモリに記憶されている第１の動き検出時の探索範囲である第１範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出を行うステップと、
前記第１範囲を含み、かつ当該第１範囲よりも広い第２範囲に含まれる前記参照ピクチャの画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いた第２の動き検出を行うステップと
をコンピュータに実行させるための動き検出プログラム。
【請求項２４】
参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記参照ピクチャ内の画素であって動き検出時の探索範囲に含まれる画素の画素データを記憶している第１のメモリと、
前記第１のメモリより容量が大きく、前記第１のメモリへと転送される画素データを格納する第２のメモリと、
前記第１のメモリに記憶されている画素データを用いて第１の動き検出を行う第１の動き検出手段と、
前記第２のメモリに記憶されている画素データを用いて前記第１の動き検出と異なるアルゴリズムを用いて第２の動き検出を行う第２の動き検出手段と
を備えることを特徴とする動き検出装置。
【請求項２５】
マルチフレームメモリに記憶された参照ピクチャの画素データを用いて、符号化対象ピクチャを構成するマクロブロックの動き検出を行う動き検出装置であって、
前記マルチフレームメモリから読み出しを行った参照ピクチャ内の画素であって動き検出時の探索範囲及び当該探索範囲に隣接する拡大範囲の画素の画素データを記憶しているローカルメモリと、
前記ローカルメモリが記憶している画素データのうち前記探索範囲に含まれる画素データを用いて第１の動き検出を行う第１の動き検出手段と、
前記ローカルメモリが記憶している画素データのうち前記探索範囲及び前記拡大範囲に含まれる画素データを用いて、前記第１の動き検出と異なるアルゴリズムを用いて第２の動き検出を行う第２の動き検出手段と
を備えることを特徴とする動き検出装置。
【請求項２６】
前記拡大範囲は、前記探索範囲の中心の画素を含む複数の行に相当する範囲である
ことを特徴とする請求項２５に記載の動き検出装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008136178.tif 000025
【図２】
2008136178.tif 000026
【図３】
2008136178.tif 000027
【図４】
2008136178.tif 000028
【図５】
2008136178.tif 000029
【図６】
2008136178.tif 000030
【図７】
2008136178.tif 000031
【図８】
2008136178.tif 000032
【図９】
2008136178.tif 000033
【図１０Ａ】
2008136178.tif 000034
【図１０Ｂ】
2008136178.tif 000035
【図１１】
2008136178.tif 000036
【図１２】
2008136178.tif 000037
【図１３】
2008136178.tif 000038
【図１４】
2008136178.tif 000039
【図１５】
2008136178.tif 000040
【図１６Ａ】
2008136178.tif 000041
【図１６Ｂ】
2008136178.tif 000042
【図１７】
2008136178.tif 000043
【図１８Ａ】
2008136178.tif 000044
【図１８Ｂ】
2008136178.tif 000045
【図１８Ｃ】
2008136178.tif 000046
【国際調査報告】
2008136178.tif 000047
2008136178.tif 000048
2008136178.tif 000049
2008136178.tif 000050
2008136178.tif 000051