(57)【特許請求の範囲】
【請求項１】
参照画像と被符号化画像との相関により、階層的に動きベクトルを検出する動き検出装置であって、
プロセッサと、
第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、
前記第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、
前記第１動き検出手段で検出した前記第１段階の動きベクトルを用いて実施する第２段階の動きベクトル検出のための第２参照画像を格納する第２記憶手段と、
前記第２記憶手段に格納された第２参照画像を用いて、第２段階の動きベクトルを検出する第２動き検出手段と、
前記第２動き検出手段で検出した前記第２段階の動きベクトルを用いて実施する第３段階の動きベクトル検出のための第３参照画像を格納する第３記憶手段と、
前記第３記憶手段に格納された第３参照画像を用いて、第３段階の動きベクトルを検出する第３動き検出手段と、
前記参照画像と前記被符号化画像を格納する主記憶手段と、
前記主記憶手段と前記第１記憶手段の間のデータ転送、前記主記憶手段と前記第２記憶手段の間のデータ転送、及び、前記主記憶手段と前記第３記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、
前記第１段階の動きベクトルの参照が必要な場合、前記プロセッサは、前記第２段階の動きベクトルの検出が完了する前に、前記第１段階で検出した動きベクトルに基づいて、前記主記憶手段から前記第３記憶手段へ第３参照画像のデータを転送する動き検出装置。
【請求項２】
参照画像と被符号化画像との相関により、階層的に動きベクトルを検出する動き検出装置であって、
プロセッサと、
第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、
前記第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、
前記第１動き検出手段で検出した前記第１段階の動きベクトルを用いて実施する第２段階の動きベクトル検出のための第２参照画像を格納する第２記憶手段と、
前記第２記憶手段に格納された第２参照画像を用いて、第２段階の動きベクトルを検出する第２動き検出手段と、
前記第２動き検出手段で検出した前記第２段階の動きベクトルを用いて実施する動き補償のための、輝度画像及び色差画像から構成される第３参照画像を格納する第３記憶手段と、
前記第３記憶手段に格納された第３参照画像を用いて、動き補償を実施する動き補償手段と、
前記参照画像と前記被符号化画像を格納する主記憶手段と、
前記主記憶手段と前記第１記憶手段の間のデータ転送、前記主記憶手段と前記第２記憶手段の間のデータ転送、及び、前記主記憶手段と前記第３記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、
前記第１段階の動きベクトルの参照が必要な場合、前記プロセッサは、前記第２段階の動きベクトルの検出が完了する前に、前記第１段階で検出した動きベクトルに基づいて、前記第３参照画像の色差成分のデータ領域を確定し、前記主記憶手段から前記第３記憶手段へ第３参照画像のデータを転送する動き検出装置。
【請求項３】
前記第１動き検出手段は、整数画素精度の動きベクトルを検出する、請求項１記載の動き検出装置。
【請求項４】
前記第２動き検出手段は、１／２画素精度の動きベクトルを検出する、請求項１記載の動き検出装置。
【請求項５】
前記第３動き検出手段は、１／４画素精度の動きベクトルを検出する、請求項１記載の動き検出装置。
【請求項６】
前記第１記憶手段と前記第２記憶手段とは、メモリで実装され、前記第１記憶手段のメモリサイズは、前記第２記憶手段のメモリサイズより大きい、請求項１記載の動き検出装置。
【請求項７】
前記第２記憶手段と前記第３記憶手段とは、メモリで実装され、前記第２記憶手段のメモリサイズは、前記第３記憶手段のメモリサイズより大きい、請求項１記載の動き検出装置。
【請求項８】
前記第２記憶手段には、前記データ転送制御手段と前記第２動き検出手段のいずれか一方がアクセスする、請求項１記載の動き検出装置。
【請求項９】
前記第３記憶手段には、前記データ転送制御手段と前記第３動き検出手段のいずれか一方がアクセスする、請求項１記載の動き検出装置。
【請求項１０】
前記第３記憶手段には、前記データ転送制御手段と前記動き補償手段のいずれか一方がアクセスする、請求項２記載の動き検出装置。
【請求項１１】
前記第１動き検出手段で検出した動きベクトルを基準にして、必要な範囲の参照画像のデータが、前記第２記憶手段から前記第３記憶手段へ転送される、請求項１記載の動き検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化技術に関し、特に、被符号化画像と参照画像とから被符号化画像の動きベクトルを検出する動き検出装置に関するものである。
【背景技術】
【０００２】
今日、動画像の伝送技術と蓄積技術は、我々の生活を豊かなものにする上で非常に重要な技術となっている。
【０００３】
例えば、携帯情報端末を用いた遠隔地でのテレビ電話が可能となっている。このテレビ電話では、音声に同期させて、動画像を相互に伝送できるため、従来に比べより豊かな表現力のあるコミュニケーションが実現ができる。テレビ電話の伝送路は無線であり、現在の伝送速度は、６４ｋｂｐｓ（ｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ）である。将来的には、２Ｍｂｐｓ程度まで高速化される可能性はある。しかし、比較的低い伝送速度の下で、伝送する画像の画質を向上させるためには、動画像の伝送技術、特に、動画像の圧縮符号化技術が重要である。
【０００４】
もう一方の重要技術である動画像の蓄積技術は、年々発展している。近年では、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）レコーダを使って、ディジタル方式でテレビ番組を録画することも可能となっている。ＤＶＤレコーダは年々販売台数を伸ばし、ＶＨＳレコーダが全てＤＶＤレコーダに置き換わるのも時間の問題である。ＶＨＳレコーダと同様に、ＤＶＤレコーダにおいても、高画質で長時間録画できることは、重要なセールスポイントである。ＤＶＤレコーダに使用される記録媒体（ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスクなど）の記録密度は、年々向上しているが、現状では、ハイビジョン番組を高画質で長時間録画するまでには至っていない。記録媒体の限られた領域に、長時間の映像を画質を保ちつつ録画するためには、画質を落とさずに映像を低ビットレートで符号化する動画像符号化技術が重要となる。
【０００５】
動画像符号化技術には、様々な方式が提案されている。画像圧縮技術の標準規格としては、ＩＴＵ‐Ｔ（国際電気通信連合電気通信標準化部門）のＨ．２６１、Ｈ．２６３、ＩＳＯ（国際標準化機構）のＭＰＥＧ‐１、ＭＰＥＧ‐２、ＭＰＥＧ‐４などがある。（ＭＰＥＧは、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐの略語。）
これらの動画像符号化処理において、符号化の対象となる入力画像は、縦１６画素×横１６画素の輝度成分、縦８画素×横８画素の色差成分（Ｃｂ）、および、縦８画素×横８画素の色差成分（Ｃｒ）から構成されるマクロブロックに分割される。各マクロブロックは、参照画像から最も類似したブロックが探索され（いわゆる動き検出処理が行われ）、探索された参照画像のブロックとの差分がとられる。そして、その差分は周波数領域に変換された後、可変長符号化されてビットストリームに変換される。
【０００６】
これらの符号化処理の中で、画質を大きく左右する処理が動き検出処理である。ＭＰＥＧ符号化処理装置において、重要な構成要素である動き検出部について、先ず、説明する。
【０００７】
動き検出には、様々な手法が存在するが、最も代表的な方法がブロックマッチング法である。ブロックマッチング法は、現画像のマクロブロックと、参照画像のある特定の範囲（以降、探索範囲と呼ぶ）から生成される、マクロブロックと同じサイズのブロックとの間で、画素レベルの演算を行い、相関度を示す評価値を求め、その評価値が最もよい結果となる参照画像上の位置を動きベクトルとして検出する方法である。評価値として、一般に、差分絶対値和（ＳＡＤ）や差分二乗和（ＳＳＤ）が用いられ、その値が小さいほど相関性が高いとみなされる。
【０００８】
従来、階層的に動き検出を実施する例がある。たとえば、文献１（日本国特開２００２−２１８４７４号公報）は、動きベクトルの検出を１／２画素精度で実施するために、第１ステップとして、比較的大きな探索範囲で整数画素精度の動きベクトル検出を実施し、第２ステップとして、第１ステップで検出した動きベクトルの周囲で、かつ、第１ステップより小さい探索範囲で、１／２画素精度の動きベクトルを検出する技術を開示している。
【０００９】
図２２と図２３とを参照して、従来技術による動き検出の方法を具体的に説明する。
【００１０】
図２２は、従来の一般的な動き検出部のブロック図である。図２２に示す従来の一般的な動き検出部は、整数画素精度動き検出部１、１／２画素精度動き検出部２、動き補償部３、第１ローカルメモリ４、第２ローカルメモリ５、第３ローカルメモリ６、ＤＭＡコントローラ７、及び、ＳＤＲＡＭ８を備える。
【００１１】
図２３は、従来の一般的な動き検出部のフローチャートである。
【００１２】
図２３のステップＳ１において、ＳＤＲＡＭ８に格納されている入力画像から、符号化対象のマクロブロック（以下、カレントマクロブロックと呼ぶ）を第１ローカルメモリ４へ転送する。
【００１３】
ステップＳ２において、カレントマクロブロックから決定される動き検出範囲、すなわち、探索範囲の画像データ、例えば、−３２＜＝Ｘ＜＝＋３２、−３２＜＝Ｙ＜＝＋３２の探索範囲の画像データが、参照画像として、ＳＤＲＡＭ８から第１ローカルメモリ４へ転送される。
【００１４】
ステップＳ３において、整数画素精度動き検出部１は、第１ローカルメモリ４に転送された、カレントマクロブロックと参照画像の探索範囲に対して、整数画素精度動き検出を行う。整数画素精度動き検出では、整数画素精度動き検出部１は、整数画素のみを用いて、カレントマクロブロックと最も相関の強い同じサイズのブロックを探索範囲から検出し、動きベクトルを求める。動きベクトルは、カレントマクロブロックの左端上の座標に対する、検出したブロックの左端上の座標の相対位置で表現する。相関の強さは、例えば、２つのブロック内の対応する画素における輝度成分の差分絶対値和（ＳＡＤ）や差分二乗和（ＳＳＤ）として評価される。
【００１５】
階層化して動き検出を行う場合、一般的に整数画素精度動き検出は、それ以降の階層の動き検出より探索範囲が大きい。そのため、必要とされるメモリ容量が大きくなる。
【００１６】
メモリ容量増大を回避するために、例えば、画素を間引いてメモリへ転送し、動き検出の精度を落とす方法がある。図２４は、１画素毎に間引かれた整数画素を示す。すなわち、図２４に示す例では、横方向に１画素毎に画素Ｐ２が間引かれて、画素Ｐ１のみが参照画像として用いられる。このように間引くと、間引かない場合と比較して横方向の検出精度が１／２に落ちる。しかし、第１ローカルメモリ４に確保されるべき参照画像用の領域は、１／２に削減できる。この方法により、同じ探索範囲を少ないメモリ容量で探索できる。または、同じメモリ容量で広範囲の動き検出を行うことができる。どのような間引き方法を採用するかは、検出精度が落ちることによる画質劣化と、探索範囲が広がることによる画質向上のトレードオフ関係により、決定される。
【００１７】
図２３に戻って、ステップＳ４において、ステップＳ３の整数画素精度動き検出で求めた動きベクトルＭＶ−ＩＮＴを基に、１／２画素精度動き検出に必要な参照画像が、ＳＤＲＡＭ８から第２ローカルメモリ５へ転送される。
【００１８】
上述したように、整数画素精度動き検出の参照画像の画素を間引いた場合、１／２画素精度動き検出のための参照画像を、ＳＤＲＡＭ８より再び取得する必要がある。なぜなら、後述するように、規格上、１／２画素を算出するためには、必ず隣接する整数画素が必要となるからである。整数画素精度動きベクトルＭＶ−ＩＮＴの周辺８点の１／２画素に対して、１／２画素精度動き検出を行う場合、ＳＤＲＡＭ８に格納されている参照画像から、動きベクトルＭＶ−ＩＮＴを基準として、Ｘ方向に「−１」、Ｙ方向に「−１」移動した座標位置から、横方向に１８画素、縦方向に１８ラインの画像が取得され、第２ローカルメモリ５に転送される。ＳＤＲＡＭ８に対して、３２ビット単位のアクセスしかできない場合は、参照画像として必要のない画素データを読み出してしまう場合があり、最大で横２４画素、縦１８ライン分の画像データを読み出す場合もある。
【００１９】
ステップＳ５において、１／２画素精度動き検出部２は、１／２画素精度動き検出を実施する。例えば、動きベクトルＭＶ−ＩＮＴの周辺８点において、ステップＳ４において第２ローカルメモリ５に転送された参照画像を用いて、１／２画素を生成し、その８個の１／２画素及び探索中心位置の整数画素と、カレントマクロブロックとで差分絶対値和演算を行う。
【００２０】
図２５は、整数画素Ｂの近傍に生成された１／２画素を示す。すなわち、探索中心位置である整数画素Ｂの周りに、１／２画素ａ〜ｈが生成されている。１／２画素は、例えば、ＭＰＥＧ−４のシンプルプロファイルの場合、整数画素Ａ〜Ｄを用いて、次のように算出される。
【００２１】
図２５の１／２画素ｆと１／２画素ｄは、それぞれ、
ｆ＝（Ａ＋Ｂ＋Ｃ＋Ｄ＋２−Ｒ）／４
ｄ＝（Ａ＋Ｂ＋１−Ｒ）／２
と算出される。ここで、Ｒは、ｒｏｕｎｄｉｎｇ  ｃｏｎｔｒｏｌと呼ばれ、「０」または「１」が代入される。
【００２２】
１／２画素精度動き検出部２は、探索中心位置の整数画素Ｂとその周りの８個の１／２画素ａ〜ｈの計９点の画素に対して、差分絶対値和の値が最も小さくなる点を求める。求めた差分絶対値和の値が最も小さくなる点に対する探索中心位置からのオフセット座標を、動きベクトルＭＶ−ＩＮＴに加算することにより、１／２画素精度の動きベクトルＭＶ−ＨＡＬＦが算出される。
【００２３】
さらに検出精度を向上させるために、１／２画素精度動き検出で求めた動きベクトルＭＶ−ＨＡＬＦを基に、１／４画素精度動き検出を実施する場合もある。例えば、１／２画素精度動き検出と同様に、動きベクトルＭＶ−ＨＡＬＦの周辺８点において、参照画像を用いて１／４画素を生成し、探索中心位置の１／２画素とその周りに生成した８個の１／４画素の計９点の画素に対して、差分絶対値和の値が最も小さくなる点を探索する。探索した点に対する探索中心位置からのオフセット座標を、動きベクトルＭＶ−ＨＡＬＦに加算することにより、１／４画素精度の動きベクトルを算出する。なお、図２２及び図２３においては、１／４画素精度動き検出のための構成要素と処理ステップを省略して図示していない。
【００２４】
ステップＳ６において、動き検出に続く動き補償のために、ステップＳ５の１／２画素精度動き検出において最終的に決定した動きベクトルが示す位置の参照画像が、ＳＤＲＡＭ８から第３ローカルメモリ６に転送される。
【００２５】
一般的に、動きベクトル検出は、画素データの輝度成分に対して実施される。そのため、輝度成分に関しては、多くの場合、１／２画素精度動き検出で第２ローカルメモリ５に取得した参照領域は、動き補償に必要な領域を包含している。データ転送量を削減するために、第２ローカルメモリ５のデータを、第３ローカルメモリ６へ転送する場合と、第２ローカルメモリ５を動き補償部３が直接アクセスする場合とがある。ただし、色差成分に関しては、第２ローカルメモリ５に転送されていないため、ＳＤＲＡＭ８より第３ローカルメモリ６へ転送する必要がある。
【００２６】
ステップＳ７において、動き補償部３は、動き補償を実施する。動き補償で取得する色差成分の画像データは、輝度成分の動きベクトルに基づいて決定される色差動きベクトルによって決定される。ＭＰＥＧ−４の場合、輝度成分の動きベクトルの１／２倍したものが色差成分の動きベクトルとして定義される。例えば、輝度成分の動きベクトルのＸＹ座標（０．５、１．５）は、１／２倍すると、（０．２５、０．７５）になるが、これは（０．５、０．５）に丸められる。
【００２７】
前述したとおり、動画像符号化処理は、動き検出、動き補償、ＤＣＴ、可変長符号化などの複数の処理から構成される。これらの処理を、一つのハードウェア資源（例えばプロセッサ）を用いて、マクロブロック単位に実行する場合、一つのマクロブロックの処理が終了するまで、次のマクロブロック処理が開始できない。このような逐次処理では、画面サイズや入力のフレームレートが大きい場合、マクロブロック処理が間に合わずに、コマ落ちが生じてしまうことがある。
【００２８】
これを解決するために、処理単位毎のハードウェア資源を用意し、マクロブロック処理をパイプライン的に実行する方法がある。
【００２９】
図２６は、動画像符号化処理のフローチャートである。図２６に示すように、一般的な動画像符号化処理は、ステップＳ１１の動き検出、ステップＳ１２の動き補償、ステップＳ１３のＤＣＴ／量子化処理、及び、ステップＳ１４の可変長符号化処理からなる。これらの処理を、４段のパイプランに分割すると、図２７のような処理になる。
【００３０】
図２７は、動画像符号化のパイプライン処理を示す。同図において、横軸は時間を表し、各処理の（）内の数字は、処理しているマクロブロック番号を示す。図２７に示すように、パイプライン処理では、マクロブロック番号「０」の動き検出処理が終了すると、マクロブロック番号「０」の動き補償処理が開始され、それと同時に、マクロブロック番号「１」の動き検出の処理がスタートする。
【００３１】
図２７に示す４つの処理のうち、最も処理時間が長い処理の処理時間を時間Ｔとすると、パイプライン処理では、時間Ｔの間隔でストリーム化されたマクロブロックが出力されることになる。４つの処理の合計時間を時間Ｕとすると、１マクロブロックあたりの処理時間は、逐次処理では時間Ｕ，パイプライン処理では時間Ｔとなり、Ｕ  ＞  Ｔ  は自明であるため、パイプライン処理によって、マクロブロック処理のスループットが向上する。
【００３２】
しかし、このようなパイプライン処理を実行するためには、各処理の間にパイプラインバッファが必要となる。パイプラインバッファとは、パイプラインの切れ目でデータを保持しておくための中間バッファである。よって、パイプライン化は、性能とコストのトレードオフを考慮して実施しなければならない。
【００３３】
図２８は、動き検出のフローチャートである。図２８は、複数に階層化された動き検出における、ある階層の動き検出の処理フローを示している。
【００３４】
ステップＳ２１において、第（ｍ−１）階層（ｍは２以上の自然数）の動き検出が行われる。ステップＳ２１において行われる第（ｍ−１）階層の動き検出が、図２４に示したような間引された参照画像に対して実施される場合、ステップＳ２２において、第（ｍ−１）階層で検出された動きベクトルを基に、次の第（ｍ）階層の動き検出のための参照画像データを転送しなければならない。ステップＳ２３において、転送された参照画像データを用いて、第（ｍ）階層の動き検出が行われる。
【００３５】
図２９は、動き検出のパイプラインの構成を示し、図２８の動き検出に対応するものである。動き検出において、広い範囲を探索する場合、その探索範囲のデータを取得するためのデータ転送に時間を要する。そのため、図２９に示すパイプラインの構成例では、ｓｔａｇｅ（ｋ＋１）に、データ転送のためのパイプラインステージを設けて、スループットを向上させるている。
【００３６】
以上説明したような、従来技術による手法は、パイプライン処理によって動画像処理のスループットが向上する反面、動き検出の階層が増えた場合には、パイプライン段数が深くなり、レイテンシが増大すると同時に、必要なパイプラインバッファの数が増大するという欠点がある。
【特許文献１】特開２００２−２１８４７４号公報（第３図）
【特許文献２】特開２００１−１５８７２号公報
【発明の開示】
【発明が解決しようとする課題】
【００３７】
そこで本発明は、パイプライン処理における時間遅延を低減してフレーム遅延の発生を抑制し、さらに、パイプラインバッファの数を削減できる、動画像符号化用の動き検出装置を提供することを目的とする。
【課題を解決するための手段】
【００３８】
第１の発明に係る動き検出装置は、参照画像と被符号化画像との相関により、階層的に動きベクトルを検出する動き検出装置であって、プロセッサと、第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、第１動き検出手段で検出した第１段階の動きベクトルを用いて実施する第２段階の動きベクトル検出のための第２参照画像を格納する第２記憶手段と、第２記憶手段に格納された第２参照画像を用いて、第２段階の動きベクトルを検出する第２動き検出手段と、第２動き検出手段で検出した第２段階の動きベクトルを用いて実施する第３段階の動きベクトル検出のための第３参照画像を格納する第３記憶手段と、第３記憶手段に格納された第３参照画像を用いて、第３段階の動きベクトルを検出する第３動き検出手段と、参照画像と被符号化画像を格納する主記憶手段と、主記憶手段と第１記憶手段の間のデータ転送、主記憶手段と第２記憶手段の間のデータ転送、及び、主記憶手段と第３記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、第１段階の動きベクトルの参照が必要な場合、プロセッサは、第２段階の動きベクトルの検出が完了する前に、第１段階で検出した動きベクトルに基づいて、主記憶手段から第３記憶手段へ第３参照画像のデータを転送し、第１段階の動きベクトルの参照が不必要な場合、プロセッサは、第１段階の動きベクトルの検出が完了する前に、主記憶手段から第３記憶手段へ第３参照画像のデータを転送する。
【００３９】
この構成によれば、第１段階で検出した動きベクトルを参照する場合、第３段階の動きベクトル検出用の参照画像の転送と、第２段階の動きベクトル検出の実行を同時に実施するため、第３段階の動きベクトル検出が遅延なく開始できる。また、第１段階で検出した動きベクトルを参照しない場合、第３段階の動きベクトルの検出を遅延なく開始できる。
【００４０】
第２の発明に係る動き検出装置は、参照画像と被符号化画像との相関により、階層的に動きベクトルを検出する動き検出装置であって、プロセッサと、第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、第１動き検出手段で検出した第１段階の動きベクトルを用いて実施する第２段階の動きベクトル検出のための第２参照画像を格納する第２記憶手段と、第２記憶手段に格納された第２参照画像を用いて、第２段階の動きベクトルを検出する第２動き検出手段と、第２動き検出手段で検出した第２段階の動きベクトルを用いて実施する動き補償のための第３参照画像を格納する第３記憶手段と、第３記憶手段に格納された第３参照画像を用いて、動き補償を実施する動き補償手段と、参照画像と被符号化画像を格納する主記憶手段と、主記憶手段と第１記憶手段の間のデータ転送、主記憶手段と第２記憶手段の間のデータ転送、及び、主記憶手段と第３記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、第１段階の動きベクトルの参照が必要な場合、プロセッサは、第２段階の動きベクトルの検出が完了する前に、第１段階で検出した動きベクトルに基づいて、主記憶手段から第３記憶手段へ第３参照画像のデータを転送し、第１段階で検出した動きベクトル非参照の場合、プロセッサは、第１段階の動きベクトルの検出が完了する前に、主記憶手段から第３記憶手段へ第３参照画像のデータを転送する。
【００４１】
この構成によれば、第１段階で検出した動きベクトルを参照する場合、動き補償用の参照画像の転送と、第２段階の動きベクトル検出の実行を同時に実施するため、動き補償が遅延なく開始できる。また、第１段階で検出した動きベクトルを参照しない場合、第３段階の動き補償を遅延なく開始できる。
【００４２】
第３の発明に係る動き検出装置は、参照画像と被符号化画像との相関により、階層的に動きベクトルを検出する動き検出装置であって、プロセッサと、第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、第１動き検出手段で検出した第１段階の動きベクトルを用いて実施する第２段階の動きベクトル検出のための第２参照画像を格納する第２記憶手段と、第２記憶手段に格納された第２参照画像を用いて、第２段階の動きベクトルを検出する第２動き検出手段と、参照画像と被符号化画像を格納する主記憶手段と、主記憶手段と第１記憶手段の間のデータ転送、及び、主記憶手段と第２記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、プロセッサは、第１段階の動きベクトル検出が完了する前に、主記憶手段から第２記憶手段へ第２参照画像のデータを転送する。
【００４３】
この構成によれば、第２段階の動きベクトル検出用の参照画像の転送と、第１段階の動きベクトル検出の実行を同時に実施するため、第２段階の動きベクトル検出が遅延なく開始できる。
【００４４】
第４の発明に係る動き検出装置は、参照画像と被符号化画像との相関により、動きベクトルを検出する動き検出装置であって、プロセッサと、第１段階の動きベクトル検出用の第１参照画像を格納する第１記憶手段と、第１記憶手段に格納された第１参照画像を用いて、第１段階の動きベクトルを検出する第１動き検出手段と、第１動き検出手段で検出した第１段階の動きベクトルを用いて実施する動き補償のための第２参照画像を格納する第２記憶手段と、第２記憶手段に格納された第２参照画像を用いて、動き補償を実施する動き補償手段と、参照画像と被符号化画像を格納する主記憶手段と、主記憶手段と第１記憶手段の間のデータ転送、及び、主記憶手段と第２記憶手段の間のデータ転送を制御するデータ転送制御手段とを備え、プロセッサは、第１段階の動きベクトルの検出が完了する前に、主記憶手段から第２記憶手段へ第２参照画像のデータを転送する。
【００４５】
この構成によれば、動き補償用の参照画像の転送と、第１段階の動きベクトル検出の実行を同時に実施するため、動き補償用が遅延なく開始できる。
【００４６】
第５の発明に係る動き検出装置では、第１動き検出手段は、整数画素精度の動きベクトルを検出する。
【００４７】
第６の発明に係る動き検出装置では、第２動き検出手段は、１／２画素精度の動きベクトルを検出する。
【００４８】
第７の発明に係る動き検出装置では、第３動き検出手段は、１／４画素精度の動きベクトルを検出する。
【００４９】
これらの構成によれば、整数画素精度の動きベクトル検出から１／４画素精度の動きベクトル検出まで、段階的に実行できる。さらに、整数画素精度の動きベクトル検出までを行う動き検出装置、１／２画素精度の動きベクトル検出までを行う動き検出装置、あるいは、１／４画素精度の動きベクトル検出までを行う動き検出装置を、応用目的に応じて随意に構成できる。
【００５０】
第８の発明に係る動き検出装置では、動き補償手段は、輝度画像の動き補償を実施する。
【００５１】
この構成によれば、輝度データに対して動き補償を行う動き検出装置を実現できる。
【００５２】
第９の発明に係る動き検出装置では、動き補償手段は、色差画像の動き補償を実施する。
【００５３】
この構成によれば、色差データに対して動き補償を行う動き検出装置を実現できる。
【００５４】
第１０の発明に係る動き検出装置では、第１記憶手段と第２記憶手段とは、メモリで実装され、第１記憶手段のメモリサイズは、第２記憶手段のメモリサイズより大きい。
【００５５】
この構成によれば、第１記憶手段を利用する第１動き検出手段は、第２記憶手段を利用する第２動き検出手段よりも、より広い範囲にわたって動きベクトルを探索することができる。
【００５６】
第１１の発明に係る動き検出装置では、第２記憶手段と第３記憶手段とは、メモリで実装され、第２記憶手段のメモリサイズは、第３記憶手段のメモリサイズより大きい。
【００５７】
この構成によれば、第２記憶手段を利用する第２動き検出手段は、第３記憶手段を利用する第３動き検出手段よりも、より広い範囲にわたって動きベクトルを探索することができる。
【００５８】
第１２の発明に係る動き検出装置では、第２記憶手段には、データ転送制御手段と第２動き検出手段のいずれか一方がアクセスする。
【００５９】
第１３の発明に係る動き検出装置では、第３記憶手段には、データ転送制御手段と第３動き検出手段のいずれか一方がアクセスする。
【００６０】
第１４の発明に係る動き検出装置では、第３記憶手段には、データ転送制御手段と動き補償手段のいずれか一方がアクセスする。
【００６１】
これらの構成によれば、パイプラインバッファを設けなくても、データ転送と動き検出を実行できる。
【００６２】
第１５の発明に係る動き検出装置では、第１動き検出手段で検出した動きベクトルを基準にして、必要な範囲の参照画像のデータが、第２記憶手段から第３記憶手段へ転送される。
【００６３】
この構成によれば、主記憶手段から第３記憶手段へのデータ転送を割愛できる。
【００６４】
第１６の発明に係る動き検出装置では、第１動き検出手段で検出した動きベクトルを基準にして、必要な範囲の参照画像のデータが、第１記憶手段から前記第２記憶手段へ転送される。
【００６５】
この構成によれば、主記憶手段から第２記憶手段へのデータ転送を割愛できる。
【発明の効果】
【００６６】
本発明によれば、パイプライン処理における時間遅延を低減してフレーム遅延の発生を抑制し、さらに、パイプラインバッファの数を削減できる、動画像符号化用の動き検出装置を提供することができる。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１における動き検出装置のブロック図
【図２】本発明の実施の形態１における動き検出装置のフローチャート
【図３】本発明の実施の形態１における参照画像の１／４に間引かれた整数画素配置図
【図４】本発明の実施の形態１における参照画像の１／４に間引かれた１／２画素配置図
【図５】本発明の実施の形態１における参照画像の１／４画素配置図
【図６】本発明の実施の形態１における参照画像の転送範囲を示す説明図
【図７】本発明の実施の形態１における動き検出装置のパイプラインの構成図
【図８】本発明の実施の形態２における動き検出装置のブロック図
【図９】本発明の実施の形態２における動き検出装置のフローチャート
【図１０】本発明の実施の形態２における輝度座標と色差座標の対応表
【図１１】本発明の実施の形態２における色差データの転送範囲の説明図
【図１２】従来技術による動き検出装置のパイプライン構成図
【図１３】本発明の実施の形態２における動き検出装置のパイプラインの構成図
【図１４】本発明の実施の形態３における動き検出装置のブロック図
【図１５】本発明の実施の形態３における動き検出装置のフローチャート
【図１６】本発明の実施の形態３における動き検出装置のパイプラインの構成図
【図１７】本発明の実施の形態４における動き検出装置のフローチャート
【図１８】本発明の実施の形態４における動き検出装置のパイプラインの構成図
【図１９】本発明の実施の形態５における動き検出装置のブロック図
【図２０】本発明の実施の形態５における動き検出装置のフローチャート
【図２１】本発明の実施の形態５における動き検出装置のパイプラインの構成図
【図２２】従来の一般的な動き検出部のブロック図
【図２３】従来の一般的な動き検出部のフローチャート
【図２４】１画素毎に間引かれた整数画素の例示図
【図２５】整数画素Ｂの近傍に生成された１／２画素の例示図
【図２６】動画像符号化処理のフローチャート
【図２７】動画像符号化のパイプライン処理の例示図
【図２８】動き検出のフローチャート
【図２９】動き検出のパイプラインの構成図
【符号の説明】
【００６８】
１  整数画素精度動き検出部
２  １／２画素精度動き検出部
３  動き補償部
４  第１ローカルメモリ
５  第２ローカルメモリ
６  第３ローカルメモリ
７  ＤＭＡコントローラ
８  ＳＤＲＡＭ
２０  プロセッサ
２１  整数画素精度動き検出器
２２  １／２画素精度動き検出器
２３  １／４画素精度動き検出器
２４  動き補償器
３１、３２、３３  ローカルメモリ
４１  ＳＤＲＡＭ
４２  ＤＭＡコントローラ
【発明を実施するための最良の形態】
【００６９】
次に、図面を参照しながら、本発明の実施の形態を説明する。
【００７０】
（実施の形態１）
図１は、本発明の実施の形態１における動き検出装置のブロック図である。本形態の動き検出装置は、図１に示すように、整数画素精度動き検出器２１、１／２画素精度動き検出器２２、１／４画素精度動き検出器２３、ローカルメモリ３１、３２、３３、ＳＤＲＡＭ４１、ＤＭＡコントローラ４２、及び、プロセッサ２０を備える。
【００７１】
整数画素精度動き検出器２１は、第１動き検出手段に相当し、１／２画素精度動き検出器２２は、第２動き検出手段に相当し、１／４画素精度動き検出器２３は、第３動き検出手段に相当する。
【００７２】
ローカルメモリ３１は、第１記憶手段に相当し、整数画素精度動き検出器２１が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ローカルメモリ３２は、第２記憶手段に相当し、１／２画素精度動き検出器２２が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ローカルメモリ３３は、第３記憶手段に相当し、１／４画素精度動き検出器２３が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ＳＤＲＡＭ４１は、主記憶装置に相当し、現フレームと参照フレームの画像データを格納する。
【００７３】
ＤＭＡコントローラ４２は、データ転送制御手段に相当し、ＳＤＲＡＭ４１とローカルメモリ３１、３２、３３の間のデータ転送を制御する。プロセッサ２０は、動き検出装置全体の処理を制御する。また、図１において、実線はデータ線を表し、点線は制御線を表す。
【００７４】
図２は、本発明の実施の形態１における動き検出装置のフローチャートである。図１を参照しつつ、図２に従って、本形態の動き検出装置の動作を説明する。
【００７５】
ステップＳ３１において、整数画素精度動き検出に使用する参照画像データと符号化対象のマクロブロックの画像データが、ＤＭＡコントローラ４２の制御の下、ＳＤＲＡＭ４１からローカルメモリ３１に転送される。
【００７６】
ステップＳ３２において、整数画素精度動き検出器２１は、ローカルメモリ３１に転送された参照画像データと符号化対象のマクロブロックの画像データを使用して、整数画素精度動き検出を実施する。整数画素動き検出は、ブロックマッチング法に従って実施される。
【００７７】
以下の説明では、本形態の整数画素精度動き検出を、水平方向に１／４に間引かれた参照画像に対して実施する例について述べる。
【００７８】
図３は、本発明の実施の形態１における参照画像の１／４に間引かれた整数画素配置図である。同図において、白丸の画素Ｆｐ１は、間引かれていない整数画素を表し、黒丸の画素Ｆｐ２は、間引かれた整数画素を表す。この例では、参照画像は、水平方向に１／４に間引かれている。水平方向で４画素単位に有効データが存在するため、水平方向の動き検出の精度が１／４になる。
【００７９】
整数画素精度動き検出の方法は、数多く提案されており、代表的なものとして、全探索、勾配法、ダイアモンドサーチ、Ｏｎｅ−ａｔ−ａ−Ｔｉｍｅなどがある。本発明では、どの方法を用いても良い。また、整数画素精度動き検出の評価関数には、従来技術の差分絶対値和、差分二乗和などが利用できる。
【００８０】
図２に戻り、ステップＳ３３において、１／２画素精度動き検出に使用される参照画像データと符号化対象のマクロブロックの画像データが、プロセッサ２０の命令によって、ＳＤＲＡＭ４１からローカルメモリ３２に転送される。
【００８１】
ステップＳ３４において、１／２画素精度動き検出器２２は、整数画素精度動き検出で検出した動きベクトルの周辺で、１／２画素精度動き検出を実施する。本形態の１／２画素精度動き検出では、整数画素精度動き検出で検出した動きベクトルの周辺の８個の１／２画素に対して、１／２画素精度動き検出が実施される。
【００８２】
以下の説明では、本形態の１／２画素精度動き検出を、水平方向に１／４に間引かれた参照画像に対して実施する例について述べる。
【００８３】
図４は、本発明の実施の形態１における参照画像の１／４に間引かれた１／２画素配置図である。図４において、白丸の画素Ｆｐ１は、間引かれていない整数画素を表し、黒丸の画素Ｆｐ２は、間引かれた整数画素を表す。また、小さい白丸の画素Ｈｐ１は、間引かれていない整数画素Ｆｐ１から算出された１／２画素を表す。
【００８４】
１／２画素は、前述したように、整数画素値の平均で算出する。図４に示すように、ある探索位置に注目すると、１／２画素は、横方向に４画素単位で有効である。また、同じ１／４に間引きされた処理でも、１／２画素精度動き検出には、整数画素精度動き検出の時に比較して、より多くの参照画像データが必要になることが分かる。
【００８５】
図２に戻り、ステップＳ３５において、１／４画素精度動き検出に使用される参照画像データと符号化対象のマクロブロックの画像データが、プロセッサ２０からの命令によって、ＳＤＲＡＭ４１からローカルメモリ３３に転送される。
【００８６】
ステップＳ３６において、１／４画素精度動き検出器２３は、１／２画素精度動き検出で検出した動きベクトルの周辺で、１／４画素精度動き検出を実施する。
【００８７】
動き検出の最後の階層である１／４画素精度動き検出では、動き検出の精度を向上させるために、画素の間引きは行われない。
【００８８】
図５は、本発明の実施の形態１における参照画像の１／４画素配置図である。図５において、白丸の画素Ｆｐ１は、整数画素を表し、小さい白丸の画素Ｈｐ１は、１／２画素を表し、小さい黒丸の画素Ｑｐ１は、１／４画素を表す。画素Ｆｐ１，画素Ｈｐ１，及び、画素Ｑｐ１の符号付けは、代表的であって、すべての画素に符号を付しているのではない。
【００８９】
１／４画素の算出は、１／２画素が整数画素から算出された場合と同様に、１／２画素の平均値として求められる。図５に示した１／４画素の配置、１／４画素を算出するための１／２画素の配置、さらに、１／２画素を算出するための整数画素の配置から明白なように、１／４画素精度動き検出では整数画素を間引くことができない。従って、間引きのある１／２画素からの１／２画素精度動き検出が終了したら、１／４画素精度動き検出用として、間引きのない参照画像データを転送する必要がある。
【００９０】
ところで、前述したように、１／４画素精度動き検出用の参照画像データの転送の終了を待って、１／４画素精度動き検出を実施すると、１／４画素精度動き検出の開始が遅くなり、レイテンシが増加する。そこで、図２に示すステップＳ３５では、整数画素精度動き検出が終了した時点で、１／２画素精度動き検出における探索範囲を含むように、１／４画素精度動き検出用のデータを転送する。
【００９１】
図６は、本発明の実施の形態１における参照画像の転送範囲を示す説明図である。図６において、各画素の符号は、図５と同様であり、説明を省略する。
【００９２】
図６に示す例では、符号化するマクロブロックは、３画素×３画素から構成されると仮定している。（実際は、符号化するマクロブロックは、１６画素×１６画素から構成される。）実線の枠５１が、整数画素精度動き検出でマッチングの取れたマクロブロックであり、その整数画素精度動きベクトルＭＶ−ＩＮＴの位置は、枠５１の左上の画素Ｆｐ３の座標で与えられる。点線で示す枠５２は、１／４画素精度動き検出用に転送すべき参照画像の範囲を示す。すなわち、枠５２は、１／２画素精度動き検出において、画素Ｆｐ３で示される動きベクトルＭＶ−ＩＮＴの位置から、その周辺の８個の１／２画素のいずれに１／２画素精度動きベクトルＭＶ−ＨＡＬＦの検出結果が落ち着いても、次の１／４画素精度動き検出のための１／４画素を生成するために必要な整数画素が必ず含まれるような画素の範囲を示している。
【００９３】
このように、１／４画素精度動き検出のための参照画像データの転送範囲を枠５２で示す範囲に設定すれば、１／４画素精度動き検出のための参照画像データを、整数画素精度動き検出において動きベクトルＭＶ−ＩＮＴが確定した段階で、図１のＳＤＲＡＭ４１からローカルメモリ３３へ転送することができる。この結果、１／２画素精度動き検出の結果を待たずに、１／４画素精度動き検出用の参照画像データを転送できるため、１／４画素精度動き検出のデータ待ち時間が削減され、マクロブロック処理のレイテンシが改善する。
【００９４】
図７は、本発明の実施の形態１における動き検出装置のパイプラインの構成を示す。図７は、本形態の動き検出装置の処理のパイプラインが、動き検出処理と参照画像ＤＭＡ転送処理とに分けて、ｓｔａｇｅ−０からｓｔａｇｅ−４にわたって構成されていることを表している。上述したように、本形態の動き検出装置では、ｓｔａｇｅ−３において、１／２画素精度動き検出と同時に、１／４画素精度動き検出用の参照画像データの転送が実施できるため、パイプラン段数を一段少なく出来る。
【００９５】
以上説明したように、本形態の動き検出装置によれば、パイプライン段数を一段少なくできて、その分だけ動き検出処理を高速に実施できるので、パイプライン処理における時間遅延を低減してフレーム遅延の発生を抑制出来る。
【００９６】
（実施の形態２）
図８は、本発明の実施の形態２における動き検出装置のブロック図である。図８において、図１と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【００９７】
本形態の動き検出装置は、図８に示すように、整数画素精度動き検出器２１、１／２画素精度動き検出器２２、動き補償器２４、ローカルメモリ３１、３２、３３、ＳＤＲＡＭ４１、ＤＭＡコントローラ４２、及び、プロセッサ２０を備える。
【００９８】
ローカルメモリ３１は、第１記憶手段に相当し、整数画素精度動き検出器２１が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ローカルメモリ３２は、第２記憶手段に相当し、１／２画素精度動き検出器２２が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ローカルメモリ３３は、第３記憶手段に相当し、動き補償器２４が使用する参照画像データと符号化対象のマクロブロックの画像データを格納する。ＳＤＲＡＭ４１は、主記憶装置に相当し、現フレームと参照フレームの画像データを格納する。
【００９９】
ＤＭＡコントローラ４２は、データ転送制御手段に相当し、ＳＤＲＡＭ４１とローカルメモリ３１、３２、３３の間のデータ転送を制御する。プロセッサ２０は、動き検出装置全体の処理を制御する。また、図８において、実線はデータ線を表し、点線は制御線を表す。
【０１００】
本形態の動き検出装置では、動き検出は、整数画素精度と１／２画素精度の２階層で実施され、１／４画素精度動き検出は実施されない。また、１／２画素精度動き検出では、参照画像の画素を間引かないものとする。１／２画素精度動き検出の後、動き補償が実施される。
【０１０１】
図９は、本発明の実施の形態２における動き検出装置のフローチャートである。
【０１０２】
図８を参照しつつ、図９に従って、本形態の動き検出装置の動作を説明する。
【０１０３】
ステップＳ４１における整数画素精度動き検出用の参照画像データと符号化対象のマクロブロック画像データの転送、ステップＳ４２における整数画素精度動き検出、ステップＳ４３における１／２画素精度動き検出用の参照画像データと符号化対象のマクロブロック画像データの転送、及び、ステップＳ４４における１／２画素精度動き検出は、図２に示した本発明の実施の形態１における動き検出装置のフローチャートのステップＳ３１、ステップＳ３２、ステップＳ３３、及び、ステップＳ３４と同様であり、説明を省略する。
【０１０４】
ステップＳ４４において、１／２画素精度動き検出が終了すると、次に動き補償を実施する。動き補償は、輝度成分の参照画像と、色差成分の参照画像に対して実施される。しかし、この段階では、色差成分の参照画像データは、ローカルメモリ３３にまだ転送されていない。また、色差成分の参照画像データ領域は、輝度成分の動きベクトルが確定した後でなければ特定できないため、従来技術では、１／２画素精度動き検出の確定後に、色差成分の参照画像データを転送する必要があった。
【０１０５】
そこで、本形態の動き検出装置では、ステップＳ４５において、整数画素動きベクトルが確定した段階で、１／２画素精度動き検出の探索範囲を含むように、色差成分の参照画像データの転送を開始する。すなわち、実施の形態１における図２のステップＳ３５の１／４画素精度動き検出用参照画像転送と同様に、１／２画素精度動き検出のいかなる探索結果にも対応できるように、必要な色差成分の参照画像データ領域を定義し、その領域の色差成分の参照画像データを、整数画素精度動き検出における動きベクトルの決定直後に、図８に示すＳＤＲＡＭ４１からローカルメモリ３３へ転送する。
【０１０６】
ステップＳ４６において、ステップＳ４４における１／２画素精度動き検出結果に従って、ローカルメモリ３３に格納されている、輝度成分の参照画像データと色差成分の参照画像データとを読出し、動き補償を行う。
【０１０７】
上述したステップＳ４５における色差成分の参照画像データの具体的な転送方法をさらに説明する。
【０１０８】
図１０は、本発明の実施の形態２における輝度座標と色差座標の対応表である。この対応表は、水平方向と垂直方向の座標に等しく適用できる。
【０１０９】
色差成分の参照画像データ（以下、色差データと呼ぶ）は、水平方向と垂直方向のそれぞれにおいて、輝度成分の参照画像データ（以下、輝度データと呼ぶ）の半分の量であるため、それぞれの方向で輝度データ２つに対して色差データ１つが対応する。（画面全体では、輝度データ４つに対して色差データ１つが対応する。）すなわち、図１０に示すように、輝度の座標値「０」は、色差の座標値「０」に、輝度の座標値「０．５」「１」「１．５」は、色差の座標値「０．５」に、輝度の座標値「２」は、色差の座標値「１」に、それぞれ対応するといった具合である。この座標変換ルールによれば、たとえば、輝度データのＸＹ座標（１．５、２．５）に対応する色差データのＸＹ座標は、（０．５、１．５）である。
【０１１０】
動き補償において、被符号化マクロブロックの１６画素×１６画素の輝度データに対応して生成しなければならない色差データは、８画素×８画素である。図１１は、本発明の実施の形態２における色差データの転送範囲の説明図である。図１１は、説明を簡単にするために、水平方向における輝度データの座標から色差データの座標に座標変換する例を示している。
【０１１１】
いま、輝度データにおいて、整数画素精度動き検出の結果、整数画素精度動きベクトルＭＶ−ＩＮＴの位置は、黒丸の整数画素Ｆｐ１２に求まったと仮定する。次の階層の１／２画素精度動き検出では、１／２画素精度動きベクトルが検出される可能性のある座標位置は、整数画素Ｆｐ１２の左右の１／２画素Ｈｐ１１と１／２画素Ｈｐ１２、および、整数画素Ｆｐ１２そのものである。例えば、整数画素Ｆｐ１２のＸ座標が「２」である場合、１／２画素精度動きベクトルが検出される可能性のある画素Ｈｐ１１，Ｆｐ１２，Ｈｐ１２のＸ座標は、それぞれ、「１．５」、「２」、「２．５」となる。
【０１１２】
これらの輝度データの座標に対応する色差データの座標と画素は、図１０の座標変換ルールより、座標「０．５」の１／２画素Ｈｐ２０、座標「１」の整数画素Ｆｐ２１、座標「１．５」の１／２画素Ｈｐ２１となる。つまり、色差データの１ライン−８画素分として生成される可能性のある画素の座標は、次の３つの場合のいずれかである。
（１）０．５、１．５、２．５、３．５、４．５、５．５、６．５、７．５
（２）１．０、２．０、３．０、４．０、５．０、６．０、７．０、８．０
（３）１．５、２．５、３．５、４．５、５．５、６．５、７．５、８．５
座標「０．５」の１／２画素Ｈｐ２０から座標「７．５」の１／２画素Ｈｐ２７までを含む場合（１）の色差データを生成するためには、座標「０」の整数画素Ｆｐ２０から座標「８．０」の整数画素Ｆｐ２８までを、ＳＤＲＡＭ４１からローカルメモリ３３に転送する必要がある。
【０１１３】
座標「１．５」の整数画素Ｈｐ２１から座標「８．５」の整数画素Ｈｐ２８を含む場合（３）の色差データを生成するためには、座標「１」の整数画素Ｆｐ２１から座標「９．０」の整数画素Ｆｐ２９までを、ＳＤＲＡＭ４１からローカルメモリ３３に転送する必要がある。
【０１１４】
以上より、場合（１）、（２）、（３）の色差データをすべて生成できるようにするためには、座標「０」の整数画素Ｆｐ２０から座標「９．０」の整数画素Ｆｐ２９までを、ＳＤＲＡＭ４１からローカルメモリ３３に転送すれば良い。このように計算することで、１／２画素精度動き検出が終了する前に、色差の参照画像データを転送することが可能である。
【０１１５】
このように、本形態の動き検出装置によれば、１／２画素精度動き検出の結果を待たずに、動き補償用の参照画像データを転送できるため、動き補償に必要な参照画像データを取得するための待ち時間が削減され、マクロブロック処理のレイテンシが改善する。
【０１１６】
ここで、本形態の動き検出装置における必要なパイプライン段数とパイプラインバッファ数の削減効果をより明確にするため、従来技術と比較しよう。
【０１１７】
図１２は、従来技術による動き検出装置のパイプライン構成を示す。同時に、図１２には、各段で必要なパイプラインバッファを示している。
【０１１８】
図１２に示すように、ｓｔａｇｅ−０において、現在転送している参照画像の輝度データを保持するための参照画像バッファ（輝度）が必要となる。これは、異なるマクロブロック世代において、データ転送と処理がｓｔａｇｅ−０とｓｔａｇｅ−１で同時に実施されているためである。例えば、ｓｔａｇｅ−１で（ｎ）番目のマクロブロックの整数画素精度動き検出を実行している時に、ｓｔａｇｅ−０で（ｎ＋１）番目のマクロブロックの整数画素精度動き検出用の参照画像データを並行して転送している。この時、（ｎ）番目のマクロブロックの整数画素精度動き検出で参照しているメモリ領域を破壊しないために、ｓｔａｇｅ−０におけるデータ転送のために別途バッファを設ける必要がある。さらに、ｓｔａｇｅ−１の整数画素精度動き検出に使用する現画像のマクロブロックデータ（輝度データと色差データ）を、ｓｔａｇｅ−０において同時に転送するために、現マクロブロックバッファ（輝度・色差）が必要である。
【０１１９】
従来技術による動き検出装置では、動き補償用データの転送が、ｓｔａｇｅ−２の１／２画素精度動き検出が完了した後に実行されるため、動き補償をｓｔａｇｅ−２とは別のｓｔａｇｅ−３で行う必要がある。これは、１／２画素精度動き検出と動き補償の処理を同じ段に収めることが性能的に難しいためである。この結果、ｓｔａｇｅ−２に、輝度データ転送用の参照画像バッファ（輝度）と、色差データ転送用の参照画像バッファ（色差）と、ｓｔａｇｅ−３に、輝度データ動き補償用の参照画像バッファ（輝度）と、色差データ動き補償用の参照画像バッファ（色差）とが必要となる。
【０１２０】
このように、従来技術による動き検出装置では、４段のパイプラインが必要であり、パイプラインバッファは、合計１０個必要である。
【０１２１】
図１３は、本発明の実施の形態２における動き検出装置のパイプラインの構成を示す。本形態のパイプライン構成によれば、ｓｔａｇｅ−０において整数画素精度動き検出用データ転送を行い、ｓｔａｇｅ−１において整数画素精度動き検出を行い、その結果を受けて１／２画素精度動き検出用データ転送を行う。ｓｔａｇｅ−２において１／２画素精度動き検出と動き補償用データ（色差データ）転送を並行して行い、その後動き補償を実施する。
【０１２２】
このように、本形態の動き検出装置によれば、ｓｔａｇｅ−１の整数画素精度動き検出の結果によって、動き補償用データ（色差データ）の転送範囲を特定して、動き補償用データ（輝度データと色差データ）の転送を、ｓｔａｇｅ−２において１／２画素精度動き検出と並行して実施できるので、必要なパイプライン段数は、３段である。これは、図１２に示した従来技術による動き検出装置よりも１段少ない。
【０１２３】
図１３には、パイプラインの各段で必要となるパイプラインバッファも同時に示している。本形態の動き検出装置では、必要なパイプラインバッファは、各段の輝度データ用の参照画像バッファ（輝度）と、輝度データと色差データ用の現マクロブロックバッファ（輝度・色差）、及び、ｓｔａｇｅ−２の色差データ用の参照画像バッファ（色差）の、計７個である。すなわち、本形態の動き検出装置では、ｓｔａｇｅ−３が不要となった効果として、パイプラインバッファ数を、図１２に示した従来技術による動き検出装置の１０個から７個に削減できる。
【０１２４】
（実施の形態３）
図１４は、本発明の実施の形態３における動き検出装置のブロック図である。図１４において、図１と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【０１２５】
本形態の動き検出装置は、図１４に示すように、整数画素精度動き検出器２１、１／２画素精度動き検出器２２、ローカルメモリ３１、３２、ＳＤＲＡＭ４１、ＤＭＡコントローラ４２、及び、プロセッサ２０を備える。
【０１２６】
本形態の動き検出装置では、整数画素精度動き検出の後に、１／２画素精度動き検出を実施し、１／４画素精度動き検出は実施しない。また、１／２画素精度動き検出では、参照画像の画素を間引かないものとする。
【０１２７】
図１５は、本発明の実施の形態３における動き検出装置のフローチャートである。
【０１２８】
図１５に示すように、本形態の動き検出装置は、ステップＳ５１において、整数画素精度動き検出用の参照画像データをＳＤＲＡＭ４１からローカルメモリ３１に転送する。
【０１２９】
ステップＳ５２において、整数画素精度動き検出を行う。
【０１３０】
ステップＳ５３において、１／２画素精度動き検出用の参照画像データをＳＤＲＡＭ４１からローカルメモリ３２に転送する。この１／２画素精度動き検出用の参照画像データの転送は、ステップＳ５１の整数画素精度動き検出用の参照画像データの転送と並行して行っても良いし、ステップＳ５２の整数画素精度動き検出と並行して行っても良い。
【０１３１】
１／２画素精度動き検出用の参照画像データの転送する領域は、整数画素精度動き検出の探索結果に依存せずに決定される。その決定の方法は、本発明の実施の形態１における１／４画素精度動き検出用の参照画像データの転送領域の決定の方法と同様である（図６参照）。すなわち、現在符号化中のマクロブロックに対して、整数精度動きベクトルがどの位置に落ち着いても、１／２画素精度動き検出に必要な参照画像データが必ず含まれるように、１／２画素精度動き検出用の参照画像データの転送する領域を決定する。
【０１３２】
ステップＳ５４において、ステップＳ５２の整数画素精度動き検出の探索結果を基に、ステップＳ５３で転送した１／２画素精度動き検出用の参照画像データを用いて、１／２画素精度動き検出を行う。
【０１３３】
このように、本形態の動き検出装置によれば、整数画素精度動き検出の結果を待たずに、１／２画素精度動き検出用の参照画像データを転送できるため、１／２画素精度動き検出用の参照画像データの待ち時間が削減され、マクロブロック処理のレイテンシが改善する。
【０１３４】
図１６は、本発明の実施の形態３における動き検出装置のパイプラインの構成を示す。本形態の動き検出装置によれば、ｓｔａｇｅ−１において、１／２画素精度動き検出用の参照画像データ転送が実施できるため、パイプラン段数がひとつ少なくて済む。
【０１３５】
（実施の形態４）
本発明の実施の形態４の動き検出装置は、図１に示した本発明の実施の形態１の動き検出装置と同じブロック構成である。従って、本形態の動き検出装置の説明は、図１を参照して行う。
【０１３６】
本形態の動き検出装置は、本発明の実施の形態１と実施の形態３を組み合わせたものであり、整数画素精度動き検出、１／２画素精度動き検出、及び、１／４画素精度動き検出を実施する。また、本形態の動き検出装置は、１／２画素精度動き検出用の参照画像転送を整数画素精度動き検出の結果を待たずに実施でき、かつ、１／４画素精度動き検出用の参照画像転送を、整数画素精度動き検出において動きベクトルが確定した直後に開始できる。
【０１３７】
図１７は、本発明の実施の形態４における動き検出装置のフローチャートである。図１を参照しつつ、図１７に従って、本形態の動き検出装置の動作を説明する。
【０１３８】
ステップＳ６１において、整数画素精度動き検出用参照画像データの転送を行う。
【０１３９】
ステップＳ６２において、整数画素精度動き検出を行う。
【０１４０】
ステップＳ６２と同時に、ステップＳ６３において、１／２画素精度動き検出用参照画像データの転送を行う。
【０１４１】
ステップＳ６４において、ステップＳ６２の整数画素精度動き検出の探索結果を基に、ステップＳ６３で転送した１／２画素精度動き検出用の参照画像データを用いて、１／２画素精度動き検出を行う。
【０１４２】
ステップＳ６４と同時に、ステップＳ６５において、ステップＳ６２の整数画素精度動き検出の探索結果を基に決定されたデータ転送領域について、１／４画素精度動き検出用参照画像データの転送を行う。
【０１４３】
ステップＳ６６において、テップＳ６４の１／２画素精度動き検出の探索結果を基に、ステップＳ６５で転送した１／４画素精度動き検出用の参照画像データを用いて、１／４画素精度動き検出を行う。
【０１４４】
このように、本形態の動き検出装置は、整数画素精度動き検出の結果を待たずに、１／２画素精度動き検出用の参照画像データを転送できるため、１／２画素精度動き検出用の参照画像データの待ち時間が削減される。さらに、１／２画素精度動き検出の結果を待たずに、１／４画素精度動き検出用の参照画像データを転送できるため、１／４画素精度動き検出用の参照画像データの待ち時間が削減される。この結果、本形態の動き検出装置によれば、マクロブロック処理のレイテンシが大幅に改善する。
【０１４５】
図１８は、本発明の実施の形態４における動き検出装置のパイプラインの構成を示す。図１８に示すように、本形態の動き検出装置は、ｓｔａｇｅ−１において、１／２画素精度動き検出用の参照画像データの転送が実施でき、かつ、ｓｔａｇｅ−２において、１／４画素精度動き検出用の参照画像データの転送が実施できる。その結果、本形態の動き検出装置では、パイプライン段数が２段削減される。さらに、本形態の動き検出装置は、マクロブロック処理のレイテンシが、動きベクトル検出の実行時間のみによって決定され、データ転送による遅延が生じないという特徴を有する。
【０１４６】
（実施の形態５）
図１９は、本発明の実施の形態５における動き検出装置のブロック図である。図１９において、図１と同様な構成要素については、同一の符号を付すことにより、説明を省略する。
【０１４７】
本形態の動き検出装置は、図１９に示すように、整数画素精度動き検出器２１、動き補償器２４、ローカルメモリ３１、３２、ＳＤＲＡＭ４１、ＤＭＡコントローラ４２、及び、プロセッサ２０を備える。
【０１４８】
本形態の動き検出装置では、整数画素精度動き検出の後に、動き補償を行う。
【０１４９】
図２０は、本発明の実施の形態５における動き検出装置のフローチャートである。
【０１５０】
図２０に示すように、本形態の動き検出装置は、ステップＳ７１において、整数画素精度動き検出用の参照画像データをＳＤＲＡＭ４１からローカルメモリ３１に転送する。
【０１５１】
ステップＳ７２において、ステップＳ７１においてローカルメモリ３１に転送された参照画像データを用いて、整数画素精度動き検出を行う。
【０１５２】
ステップＳ７３において、動き補償用の参照画像データをＳＤＲＡＭ４１からローカルメモリ３２に転送する。この参照画像データの転送は、ステップＳ７２の整数画素精度動き検出と並行して実施する。
【０１５３】
ステップＳ７４において、ステップＳ７３で転送した動き補償用の参照画像データを用いて、ステップＳ７２の整数画素精度動き検出の探索結果を基に、動き補償を行う。
【０１５４】
このように、本形態の動き検出装置によれば、整数画素精度動き検出の結果を待たずに、動き補償用の参照画像データを転送できるため、動き補償用の参照画像データの待ち時間が削減され、マクロブロック処理のレイテンシが改善する。
【０１５５】
図２１は、本発明の実施の形態５における動き検出装置のパイプラインの構成を示す。本形態の動き検出装置によれば、ｓｔａｇｅ−１において、動き補償用の参照画像データ転送が実施できるため、パイプラン段数がひとつ少なくて済む。
【０１５６】
以上説明したように、本発明の動き検出装置によれば、１／２画素精度動き検出用の参照画像データの転送と１／４画素精度動き検出用の参照画像データの転送とを、それぞれ上位の階層の画素精度動き検出の結果を待たずに、実施できるので、参照画像データの転送に伴う遅延が生ぜず、マクロブロック処理のレイテンシが大幅に改善する。また、本発明の動き検出装置によれば、パイプライン段数の削減と、パイプラインバッファ数の削減が可能となる。この結果、高速処理可能な動画像の動き検出装置を、より小型に低コストで実現できる。
【０１５７】
本発明の趣旨は、参照画像データの転送に伴うマクロブロック処理のレイテンシを改善し、さらに、パイプラインバッファの必要個数を削減できる、動画像符号化用動き検出装置を実現することにあるのであって、本発明の趣旨を逸脱しない限り、種々の適用が可能である。
【産業上の利用可能性】
【０１５８】
本発明に係わる動き検出装置は、例えば、動画像の符号化装置とその応用分野において利用できる。
【図１】
0004709155.tif 000002
【図２】
0004709155.tif 000003
【図３】
0004709155.tif 000004
【図４】
0004709155.tif 000005
【図５】
0004709155.tif 000006
【図６】
0004709155.tif 000007
【図７】
0004709155.tif 000008
【図８】
0004709155.tif 000009
【図９】
0004709155.tif 000010
【図１０】
0004709155.tif 000011
【図１１】
0004709155.tif 000012
【図１２】
0004709155.tif 000013
【図１３】
0004709155.tif 000014
【図１４】
0004709155.tif 000015
【図１５】
0004709155.tif 000016
【図１６】
0004709155.tif 000017
【図１７】
0004709155.tif 000018
【図１８】
0004709155.tif 000019
【図１９】
0004709155.tif 000020
【図２０】
0004709155.tif 000021
【図２１】
0004709155.tif 000022
【図２２】
0004709155.tif 000023
【図２３】
0004709155.tif 000024
【図２４】
0004709155.tif 000025
【図２５】
0004709155.tif 000026
【図２６】
0004709155.tif 000027
【図２７】
0004709155.tif 000028
【図２８】
0004709155.tif 000029
【図２９】
0004709155.tif 000030