(57)【要約】【課題】動きベクトルの検出に要する時間を短縮する。【解決手段】入力画像と、入力画像により参照される参照画像の間で、動きベクトルを検出する方法において、まず、参照画像において、所定のパターンを有する２次元の探索領域を設定し（Ｓ１０）、探索領域に含まれる複数の探索点を基準位置とした複数のブロックと、入力画像の符号化対象ブロックとの間のマッチングを並列して演算する（Ｓ１２）。演算の結果を評価して、最適なマッチング結果が得られると（Ｓ１４のＹ）、それを動きベクトルに設定する（Ｓ１６）。最適解が得られていない場合は（Ｓ１４のＮ）、評価結果に基づいて、次にマッチングを演算する探索領域を設定し（Ｓ１８）、探索を続ける。【選択図】図１０
2005303984.tif 000002
【特許請求の範囲】
【請求項１】
第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する動きベクトル検出装置であって、
前記第１画像と、前記第２画像に含まれるブロックとの間で、マッチングを演算する演算部を複数備え、
前記複数の演算部が並列して複数のマッチングを同時に演算することを特徴とする動きベクトル検出装置。
【請求項２】
前記ブロックの位置の基準となる点を探索点と呼ぶとき、前記複数の演算部は、所定のパターンを有する２次元の探索領域に含まれる複数の探索点を基準位置とした複数のブロックと前記第１画像との間でマッチングを演算し、
前記動きベクトル検出装置は、
前記複数の演算部による演算結果を評価して、最適なマッチング結果を与えた探索点を検出する評価部と、
前記評価部による評価結果に基づいて、次にマッチングを演算する探索点を設定する設定部と、
を更に備えることを特徴とする請求項１に記載の動きベクトル検出装置。
【請求項３】
前記設定部は、最適なマッチング結果を与えた探索点を含むように次回の探索領域を設定し、設定した探索領域に含まれる点を次回の探索点に設定することを特徴とする請求項２に記載の動きベクトル検出装置。
【請求項４】
前記設定部は、前記探索領域の中心点と、最適なマッチング結果を与えた探索点とを結ぶ方向に、次回の探索領域を設定することを特徴とする請求項２又は３に記載の動きベクトル検出装置。
【請求項５】
前記設定部は、前回の演算において最適なマッチング結果を与えた探索点と、今回の演算において最適なマッチング結果を与えた探索点とを結ぶ方向に、次回の探索領域を設定することを特徴とする２又は３に記載の動きベクトル検出装置。
【請求項６】
前記設定部は、前回の探索以前の前記評価部による評価結果、前記第１画像内の他のブロックの動きベクトル、前記第１画像よりも過去又は未来の画像の動きベクトル、及び前記第１画像のスクロールに関する情報のいずれかを更に判断基準として前記探索点を設定することを特徴とする請求項２から５のいずれかに記載の動きベクトル検出装置。
【請求項７】
前記設定部は、前記評価部による評価結果、前記第１画像内の他のブロックの動きベクトル、前記第１画像よりも過去又は未来の画像の動きベクトル、及び前記第１画像のスクロールに関する情報のいずれかに基づいて、前記探索領域の形状を可変に設定することを特徴とする請求項２から６のいずれかに記載の動きベクトル検出装置。
【請求項８】
動画像を符号化して符号化データ列を生成する画像符号化装置であって、
前記動画像を構成する第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する動きベクトル検出部と、
前記動きベクトルを利用して前記第１画像を符号化する符号化部と、を備え、
前記動きベクトル検出部は、前記第１画像と、前記第２画像に含まれるブロックとの間で、マッチングを演算する演算部を複数備え、
前記複数の演算部が並列して複数のマッチングを同時に演算することを特徴とする画像符号化装置。
【請求項９】
第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する方法であって、
前記第２画像に含まれるブロックの位置の基準となる点を探索点と呼ぶとき、所定のパターンを有する２次元の探索領域に含まれる複数の探索点を基準位置とした複数のブロックと前記第１画像との間のマッチングを並列して演算するステップと、
前記演算するステップの演算結果を評価して、最適なマッチング結果を与えた探索点を検出するステップと、
前記検出するステップの検出結果に基づいて、次にマッチングを演算する探索点を設定するステップと、
を備えることを特徴とする動きベクトル検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル検出技術に関し、例えば、フレーム間予測モードを含む画像符号化方式により動画像を符号化するために、フレーム間の動きベクトルを検出する装置及び方法、及びその動きベクトル検出装置を利用可能な画像符号化装置に関する。
【背景技術】
【０００２】
動画の圧縮符号化方式の規格であるＭＰＥＧ（Motion Picture Experts Group）−４では、動きベクトルを用いた動き補償予測符号化が行われる（例えば、特許文献１参照）。特許文献１に記載された追跡型動きベクトル探索方法では、ある探索原点から所定の探索パターンに従って各探索点における差分絶対値の総和を計算し、探索パターン中心の探索点の差分絶対値の総和が最も小さくなるまで、次の探索パターンの中心を差分絶対値の総和が最も小さい探索点に移動させて、最適点を追跡するというものである。特許文献１では、このような追跡型動きベクトル探索方法において、無駄な動きベクトルの探索を防ぎ、探索の効率化を図るために、処理単位ごとに動きベクトル探索可能回数を設定するなど、探索の終了条件を設定しておく技術を提案している。
【特許文献１】特開２００３−８７７９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した追跡型の動きベクトル探索方法では、探索原点から出発して、探索点を隣に移動させつつ探索を行うので、動きベクトルを検出するのに要する時間が長くなるという問題がある。また、探索時間を短縮するために、上述したような探索の終了条件を設定すると、探索原点の周囲の局所的な極小点で探索を終了してしまう場合があり、動きベクトルの検出精度が悪化し、符号量の増大や画質の低下を招くという問題がある。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、動きベクトルの検出に要する時間を短縮する技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、動きベクトル検出装置に関する。この動きベクトル検出装置は、第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する動きベクトル検出装置であって、前記第１画像と、前記第２画像に含まれるブロックとの間で、マッチングを演算する演算部を複数備え、前記複数の演算部が並列して複数のマッチングを同時に演算することを特徴とする。
【０００６】
ブロック間のマッチングは、例えば、ブロックに含まれる各画素の画素値の差分に基づいて演算されてもよい。演算部は、各画素の画素値の差分が小さいほど小さくなるような指標を演算してもよく、例えば、各画素の画素値の差分自乗和を演算してもよいし、各画素の画素値の差分絶対値の総和を演算してもよい。複数の演算部を用いて複数のマッチング演算を同時に行うことにより、動きベクトルの検出に要する時間を短縮することができるので、動画像を符号化するための処理速度を向上させることができる。また、複数のマッチング演算を並列して行うことにより、メモリアクセスなどの時間を短縮することができ、処理時間の短縮のために、より好都合である。
【０００７】
前記ブロックの位置の基準となる点を探索点と呼ぶとき、前記複数の演算部は、所定のパターンを有する２次元の探索領域に含まれる複数の探索点を基準位置とした複数のブロックと前記第１画像との間でマッチングを演算し、前記動きベクトル検出装置は、前記複数の演算部による演算結果を評価して、最適なマッチング結果を与えた探索点を検出する評価部と、前記評価部による評価結果に基づいて、次にマッチングを演算する探索点を設定する設定部と、を更に備えてもよい。２次元の探索領域に含まれる探索点における演算を同時に行い、領域単位で最適解を探索することができるので、従来の１次元的に１つずつ探索点を移動させる方法に比べて、より短時間でより広い領域にわたって探索を行うことができる。これにより、処理時間を短縮することができるとともに、動きベクトルの検出精度を向上させることができ、符号量を低減し、画質を向上させることができる。
【０００８】
前記設定部は、最適なマッチング結果を与えた探索点を含むように次回の探索領域を設定し、設定した探索領域に含まれる点を次回の探索点に設定してもよい。これにより、最適なマッチングを与える探索点が存在すると推測される方向に向かって、適切に探索を進めることができるので、処理時間を短縮することができるとともに、動きベクトルの検出精度を向上させることができる。
【０００９】
前記設定部は、前記探索領域の中心点と、最適なマッチング結果を与えた探索点とを結ぶ方向に、次回の探索領域を設定してもよい。前記設定部は、前回の演算において最適なマッチング結果を与えた探索点と、今回の演算において最適なマッチング結果を与えた探索点とを結ぶ方向に、次回の探索領域を設定してもよい。これにより、動きベクトルの検出精度を向上させることができる。
【００１０】
前記評価部は、演算結果を評価した結果、所定の条件を満たしたときに、探索を終了してもよい。例えば、前回の演算において最適なマッチングを与えた探索点と、今回の演算において最適なマッチングを与えた探索点が同一であったときに、探索を終了してもよい。また、マッチング演算で算出された指標が所定のしきい値よりも良好であったときに、探索を終了してもよい。
【００１１】
前記設定部は、前回の探索以前の前記評価部による評価結果、前記第１画像内の他のブロックの動きベクトル、前記第１画像よりも過去又は未来の画像の動きベクトル、及び前記第１画像のスクロールに関する情報のいずれかを更に判断基準として前記探索点を設定してもよい。前記設定部は、前記評価部による評価結果、前記第１画像内の他のブロックの動きベクトル、前記第１画像よりも過去又は未来の画像の動きベクトル、及び前記第１画像のスクロールに関する情報のいずれかに基づいて、前記探索領域の形状を可変に設定してもよい。これにより、更に高速かつ高精度に動きベクトルを検出することができる。
【００１２】
本発明の別の態様は、画像符号化装置に関する。この画像符号化装置は、動画像を符号化して符号化データ列を生成する画像符号化装置であって、前記動画像を構成する第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する動きベクトル検出部と、前記動きベクトルを利用して前記第１画像を符号化する符号化部と、を備え、前記動きベクトル検出部は、前記第１画像と、前記第２画像に含まれるブロックとの間で、マッチングを演算する演算部を複数備え、前記複数の演算部が並列して複数のマッチングを同時に演算することを特徴とする。
【００１３】
本発明の更に別の態様は、動きベクトル検出方法に関する。この動きベクトル検出方法は、第１画像と、前記第１画像の参照画像である第２画像との間で、動きベクトルを検出する方法であって、前記第２画像に含まれるブロックの位置の基準となる点を探索点と呼ぶとき、所定のパターンを有する２次元の探索領域に含まれる複数の探索点を基準位置とした複数のブロックと前記第１画像との間のマッチングを並列して演算するステップと、前記演算するステップの演算結果を評価して、最適なマッチング結果を与えた探索点を検出するステップと、前記検出するステップの検出結果に基づいて、次にマッチングを演算する探索点を設定するステップと、を備えることを特徴とする。
【００１４】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、プログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１５】
本発明によれば、動きベクトルの検出に要する時間を短縮する技術を提供することができる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施の形態に係る画像符号化装置は、ＭＰＥＧ−４に準拠した画像符号化を行う。本実施の形態の画像符号化装置は、符号化対象画像と参照画像との間で動きベクトルを検出する際に、複数のブロックマッチングを並列して行うことにより処理の高速化を図る。また、本実施の形態では、複数のブロックマッチングを同時に行うことを利用した、より検出精度の高い新たな動きベクトル探索方法を提案する。
【００１７】
図１は、本発明の実施の形態に係る画像符号化装置１０の全体構成を示す。画像符号化装置１０は、動きベクトル検出回路２４、動き補償回路２６、フレームメモリ２８、符号化回路３０、復号化回路３２、出力バッファ３４、符号量制御回路３６、及び参照モード選択回路３８を含む。これらの構成は、ハードウエア的には、任意のコンピュータのＣＰＵ、メモリ、その他のＬＳＩで実現でき、ソフトウエア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１８】
画像符号化装置１０に外部から入力された画像（以下、「入力画像」という）は、動きベクトル検出回路２４に送られる。動きベクトル検出回路２４は、予めフレームメモリ２８に格納されて予測のために参照の対象となる画像（以下、「参照画像」という）と入力画像との間で動きベクトルを検出する。動き補償回路２６は、符号量制御回路３６から量子化に用いる量子化ステップの値を取得し、その量子化の係数とマクロブロックの予測モードを決定する。動きベクトル検出回路２４により検出された動きベクトルと、動き補償回路２６により決定された量子化係数及びマクロブロック予測モードが、符号化回路３０へ送られる。また、動き補償回路２６は、マクロブロックについての予測値と実際の値との差分を予測誤差として符号化回路３０に送る。
【００１９】
符号化回路３０は、予測誤差を量子化係数を用いて符号化して出力バッファ３４へ送る。符号化回路３０は、量子化した予測誤差と量子化係数を復号化回路３２へ送る。復号化回路３２は、量子化された予測誤差を量子化係数に基づいて復号化し、復号化した予測誤差と動き補償回路２６による予測値との和を復号画像としてフレームメモリ２８に送る。この復号画像は、後続の画像の符号化処理において参照される場合に、参照画像として動きベクトル検出回路２４へ送られる。符号量制御回路３６は、出力バッファ３４の蓄積量の状態を取得し、その蓄積量の状態に応じて次の量子化に用いる量子化ステップの値を生成する。
【００２０】
参照モード選択回路３８は、フレーム内符号化、フレーム間前方向予測符号化、フレーム間双方向予測符号化、の間でフレーム予測モードの切り替えを行い、他の回路に対してフレームの参照モード情報を出力する。
【００２１】
図２から図６を用いて、本実施の形態の動きベクトル検出方法について説明する。動きベクトル検出回路２４は、ブロックマッチングにより動きベクトルを検出する。すなわち、入力画像のうち、符号化の対象となるマクロブロック（以下、「符号化対象マクロブロック」という）との差分（予測誤差）が最も小さい参照画像のマクロブロック（以下、「予測マクロブロック」という）を探索する。本実施の形態では、動きベクトル検出回路２４は、ブロックマッチングの一例として、符号化対象マクロブロックと、予測マクロブロックの候補となるマクロブロックとの間で、画素値の差分絶対値の総和を算出し、その値が最小となるマクロブロックを予測マクロブロックとする。符号化対象マクロブロックの位置から、検出された予測マクロブロックの位置への動きを示すベクトルが、その符号化対象マクロブロックの動きベクトルとなる。
【００２２】
図２は、入力画像１００の例を示す。いま、入力画像１００のうち、縦４画素×横４画素の正方形のマクロブロック１０２が符号化の対象となっているものとする。ＭＰＥＧ−４では、一般に、縦１６画素×横１６画素の領域をマクロブロックとするが、ここでは、図の簡略化のために縦４画素×横４画素としている。符号化対象マクロブロック１０２の位置を、左上端の画素の位置で代表させて二重丸で示すことにする。
【００２３】
図３は、参照画像１１０の例を示す。本実施の形態では、符号化対象マクロブロック１０２を符号化するときの動きベクトルを検出するために、参照画像１１０の中から、予測マクロブロックの候補として、符号化対象マクロブロック１０２とのブロックマッチングを演算する対象となるマクロブロック（以下、単に「演算対象マクロブロック」という）を２５個設定し、符号化対象マクロブロック１０２と２５個の演算対象マクロブロックとのブロックマッチングを同時に行う。図３の例では、まず第１段階として、入力画像１００の符号化対象マクロブロック１０２の位置と同じ位置（二重丸の位置）を中心とした縦５画素×横５画素の正方形の領域１１６（以下、この領域を「探索領域１１６」という）に含まれる２５個の画素の位置（黒丸の位置。以下、この位置を「探索点」という）を左上の画素とした縦４画素×横４画素のマクロブロック２５個を演算対象マクロブロックに設定してブロックマッチングを行う。
【００２４】
図４は、図３に示した２５個の演算対象マクロブロックを具体的に示す。動きベクトル検出回路２４は、符号化対象マクロブロック１０２と、図４に示した２５個の演算対象マクロブロック１１２ａ〜１１２ｙとの間で画素値の差分絶対値の総和又は差分二乗値の総和などの差分データを演算し、それらのうち差分データが最小である演算対象マクロブロックを検出する。このとき、演算対象マクロブロック１１２ａ〜１１２ｙに含まれる画素は、全て領域１１４の内部にあるので、差分演算時には、領域１１４の内部の画素の画素値をいったんローカルメモリに格納し、ローカルメモリから順次画素値を読み出しつつ、２５の演算を同時に並列して行う。
【００２５】
図５（ａ）（ｂ）は、本実施の形態の動きベクトル探索方法を説明するための図である。本実施の形態では、図２に示した符号化対象マクロブロック１０２の動きベクトルを検出するために、図３に示した探索領域１１６を移動させながらブロックマッチングを繰り返し、符号化対象マクロブロック１０２との差分が最小となる演算対象マクロブロックを探索する。以下、第ｎ段階のブロックマッチングにおいて差分が最小である演算対象マクロブロック１１２の位置（左上の画素で代表させる）を「第ｎ最小点」と呼び、図中では記号「ｍｎ」で示す。また、第ｎ段階のブロックマッチングの探索領域１１６の中心位置を「第ｎ中心点」と呼び、図中では記号「ｃｎ」で表す。
【００２６】
図５（ａ）及び図５（ｂ）において、図３に示した第１段階の探索領域１１６ａに含まれる２５個の演算対象マクロブロック１１２のうち、符号化対象マクロブロック１０２との差分が最小であったマクロブロックの位置、すなわち第１最小点を「ｍ１」で示している。動きベクトル検出回路２４は、この第１段階の演算結果に基づいて、第２段階の探索領域１１６ｂを設定する。本実施の形態では、動きベクトル検出回路２４は、前回の演算における最小点を基準にして、最小点を含む領域を次の探索領域とする。
【００２７】
図５（ａ）の例では、動きベクトル検出回路２４は、第１中心点ｃ１と第１最小点ｍ１を結ぶベクトルｃ１ｍ１を２倍した位置を、第２中心点ｃ２とする。そして、第２段階の探索領域１１６ｂに含まれる２５の探索点についてブロックマッチングを行う。このとき、第１段階で既にブロックマッチングを行った演算対象マクロブロック１１２については演算を省略してもよい。このように、前回の演算における探索領域１１６の中心点と最小点とを結ぶ方向へ探索領域１１６を移動させることにより、予測マクロブロックが存在すると推測される方向へ適切に探索領域１１６をずらしながらブロックマッチングを行うことができるので、短い時間で効率良く予測マクロブロックを探索することができる。また、局所的な最小点で探索を終了してしまう可能性を低減し、動きベクトルの検出精度を向上させることができる。
【００２８】
図５（ｂ）に示した例では、第１最小点ｍ１を左上端とした領域を第２段階の探索領域１１６ｂとする。このように、前回の演算における最小点を端点とする領域を探索領域１１６に設定することにより、探索点の重複をできる限り少なくし、少ない演算回数でより多くの探索点におけるブロックマッチングを行うことができるので、短い時間で効率良く予測マクロブロックを探索することができる。また、局所的な最小点で探索を終了してしまう可能性を低減し、動きベクトルの検出精度を向上させることができる。
【００２９】
図６（ａ）（ｂ）（ｃ）も、本実施の形態の動きベクトル探索方法を説明するための図である。図６（ａ）、図６（ｂ）、及び図６（ｃ）において、図５（ａ）に示した第２段階の探索領域１１６ｂに含まれる２５個の演算対象マクロブロック１１２のうち、符号化対象マクロブロック１０２との差分が最小であったマクロブロックの位置、すなわち第２最小点を「ｍ２」で示している。
【００３０】
図６（ａ）の例では、動きベクトル検出回路２４は、図５（ａ）の例と同様に、第２中心点ｃ２と第２最小点ｍ２を結ぶベクトルｃ２ｍ２を２倍した位置を、第３中心点ｃ３とする。図６（ｂ）の例では、動きベクトル検出回路２４は、第２中心点ｃ２と第２最小点ｍ２を結ぶ方向に第３中心点ｃ３を設定するのは図６（ａ）の例と同様であるが、第２最小点ｍ２を含み、かつ、既に演算が終了している探索点をできる限り含まないように、第３段階の探索領域１１２ｃを設定している。これにより、探索方向を適切に設定しつつ、より多くの探索点におけるブロックマッチングを行うことができる。図６（ｃ）の例では、動きベクトル検出回路２４は、第１最小点ｍ１と第２最小点ｍ２を結ぶ方向に第３中心点ｃ３を設定する。この例においても、予測マクロブロックが存在すると推測される方向に探索領域を適切に移動させて探索を行うことができる。
【００３１】
図７も、本実施の形態の動きベクトル探索方法を説明するための図である。図７の例では、探索領域の形状が一様ではなく、各段階において所定の条件に応じて変更される。例えば、第２段階の探索領域１１６ｂは、第１中心点ｃ１と第１最小点ｍ１を結ぶベクトルｃ１ｍ１の方向に長い形状を有する。すなわち、予測マクロブロックが存在すると推測される方向により広く探索領域をとる。これにより、動きベクトルの検出精度と検出速度を向上させることができる。第３段階の探索領域１１６ｃも、同様に、第２中心点ｃ２と第２最小点ｍ２を結ぶベクトルｃ２ｍ２の方向により広くなるように設定されている。探索領域は、長方形に限らず、任意の形状を有していてもよい。
【００３２】
図５〜図７を用いて説明した例では、直前の探索結果をもとに次回の探索領域を決定したが、探索領域を決定するための判断基準として、その他に、直前よりも過去の探索結果を判断基準としてもよい。例えば、第ｎ中心点ｃｎと第ｎ最小点ｍｎを結ぶベクトルｃｎｍｎの総和に基づいて、次回の探索領域を設定してもよい。また、過去又は未来のフレームの動きベクトルの情報や、同一フレーム内の他のマクロブロックの動きベクトルの情報を判断基準としてもよい。例えば、第１段階の探索領域として、参照フレームの対応マクロブロックの動きベクトルを中心とした探索領域を設定してもよい。また、第２段階以降の探索領域として、参照フレームの対応マクロブロックの動きベクトルの方向に長い形状を有する探索領域を設定してもよい。また、参照フレームの各マクロブロックの動きベクトルの統計情報に基づいて探索領域を設定してもよい。さらに別の判断基準として、同一フレーム内の他のマクロブロックの動きベクトルの統計情報に基づいて探索領域を設定してもよい。例えば、他のマクロブロックの動きベクトルの平均を中心とした探索領域を設定してもよいし、他のマクロブロックの動きベクトルの方向に広く探索領域を設定してもよい。また、動きベクトル以外の情報、例えば、画面がスクロールされているなどの情報を取得し、その情報を判断基準としてもよい。例えば、画像全体が横方向にスクロールしている旨の情報を取得したときに、横に長い探索領域を設定してもよい。以上のように、直前の探索結果の他に、様々な情報を参照して動きベクトルを推測することにより、より高速かつ高精度に動きベクトルを検出することができる。
【００３３】
動きベクトル検出回路２４は、上述した探索方法にしたがって探索領域１１６を移動しつつブロックマッチングを行い、第（ｎ−１）最小点と第ｎ最小点が一致したときに探索を終了し、第ｎ最小点で示されるマクロブロックを予測マクロブロックとする。動きベクトル検出回路２４は、第（ｎ−１）最小点と第ｎ最小点の間の距離が所定のしきい値よりも短くなったときに探索を終了してもよいし、その他の探索終了条件が設定されてもよい。
【００３４】
図８は、本実施の形態の動きベクトル検出回路２４の構成を示す。動きベクトル検出回路２４は、演算部４０、評価部４２、及び位置設定部４４を有する。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。上述した動きベクトル検出回路２４の機能は、具体的にはこれらの構成により実現される。
【００３５】
演算部４０は、符号化対象マクロブロック１０２と、複数の演算対象マクロブロック１１２との間で並列してブロックマッチングを演算する。評価部４２は、演算部４０による演算結果を取得し、演算結果を評価する。評価部４２は、演算部４０により演算された複数のブロックマッチングの結果の中から、最小の差分を与える探索点を検出し、その最小点をメモリなどに記憶する。評価部４２は、今回の演算における最小点を、記憶されていた前回の演算における最小点と比較し、それらが同一であれば、その点を予測マクロブロックと決定し、動き補償回路２６及び符号化回路３０に伝達する。前回と今回の最小点が同一でなければ、新たに今回の最小点を記憶し、位置設定部４４に次回の探索領域１１６を設定するよう指示する。位置設定部４４は、評価部４２からの指示を受けて、上述したような規則にしたがって、次回の探索領域１１６の位置を設定する。
【００３６】
図９は、本実施の形態の演算部４０の構成を示す。演算部４０は、入力画像格納部５０、参照画像格納部５２、タイミング調整回路５４、及び複数の差分演算回路５６を有する。これらの構成も、ハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できる。
【００３７】
入力画像格納部５０は、入力画像の符号化対象マクロブロック１０２を格納する。参照画像格納部５２は、参照画像の演算対象マクロブロック１１２を格納する。これらは、フレームメモリ２８で代用されてもよいし、フレームメモリ２８の一部を利用して実現されてもよい。参照画像格納部５２には、図４において説明したように、領域１１４の画素値が格納されてもよい。タイミング調整回路５４は、符号化対象マクロブロック１０２の画素値と演算対象マクロブロック１１２の画素値を差分演算回路５６に入力するタイミングを調整する。タイミング調整回路５４は、参照画像格納部５２に格納された領域１１４の画素値を順次読み出すときに、読み出された画素値を演算に用いる差分演算回路５６に対して画素値が供給されるよう、カウンタ及びフリップフロップなどを利用してタイミングを調整する。具体的には、複数のフリップフロップに、参照画像格納部５２からまとめて読み出した複数画素のデータを格納しておく。そして、入力画像格納部５０から画素データを読み出すタイミングに応じてカウンタを動作させ、カウンタの値に応じて、フリップフロップに格納された画素データの中から、各差分演算回路５６に必要な画素データを選択して供給する。
【００３８】
差分演算回路５６ａ〜５６ｙは、符号化対象マクロブロック１０２と演算対象マクロブロック１１２ａ〜１１２ｙとの間でブロックマッチングを演算する。差分演算回路５６は、符号化対象マクロブロック１０２と演算対象マクロブロック１１２の画素値の差分絶対値の総和を算出してもよいし、差分二乗和を算出してもよいし、その他、画像間の差分を示す任意の量を算出してもよい。従来の探索方法では、演算のたびに同じ画素値を何度も読み込む必要があったが、本実施の形態によれば、複数の差分演算回路５６に、ブロックマッチングに必要な画素値を同時に供給することができるので、メモリアクセスを大幅に削減し、処理速度を向上させることができる。
【００３９】
図１０は、本実施の形態に係る動きベクトル検出方法の手順を示すフローチャートである。まず、位置設定部４４は、第１段階の探索領域１１６を設定し（Ｓ１０）、差分演算回路５６は、探索領域１１６に含まれる複数の探索点におけるブロックマッチングを並列して演算する（Ｓ１２）。評価部４２が演算結果を評価し、所定の条件に基づいて、最適解が検出されたと判断した場合（Ｓ１４のＹ）、その最適解に基づいて動きベクトルを設定し（Ｓ１６）、探索を終了する。評価部４２が、まだ最適解が検出されていないと判断すると（Ｓ１４のＮ）、位置設定部４４が次回のマッチング演算のために探索領域１１６を更新し（Ｓ１８）、再び差分演算回路５６によりマッチング演算が実行される（Ｓ１２）。
【００４０】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４１】
動きベクトル検出回路２４は、実施の形態で説明した複数のマッチングを並列して実行する探索モードと、従来の探索モードを適宜切り替えて実行してもよい。例えば、データ量の大きい動画像をリアルタイムに符号化する場合や、フレームレートが高い場合など、高速な符号化処理が要求される場合には、実施の形態で説明したように、複数の差分演算回路５６を並列して動作させることにより処理速度の向上を図る一方、動画像のデータ量が小さい場合や、携帯機器などにおいて、ＣＰＵなどの処理能力が比較的低い場合や、消費電力を抑えたい場合などは、動作させる差分演算回路５６を削減してもよい。このような技術を実現するために、画像符号化装置１０は、動画像のデータ量、フレームレート、機器の処理能力、機器の動作モードなどに応じて、動きベクトルの検出方法や、動作させる差分演算回路５６の数などを変更する制御手段を備えてもよい。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係る画像符号化装置の全体構成を示す図である。
【図２】入力画像の例を示す図である。
【図３】参照画像の例を示す図である。
【図４】図３に示した２５個の演算対象マクロブロックを具体的に示す図である。
【図５】図５（ａ）（ｂ）は、実施の形態の動きベクトル探索方法を説明するための図である。
【図６】図６（ａ）（ｂ）（ｃ）は、実施の形態の動きベクトル探索方法を説明するための図である。
【図７】実施の形態の動きベクトル探索方法を説明するための図である。
【図８】実施の形態の動きベクトル検出回路の構成を示す図である。
【図９】実施の形態の演算部の構成を示す図である。
【図１０】実施の形態に係る動きベクトル検出方法の手順を示すフローチャートである。
【符号の説明】
【００４３】
１０  画像符号化装置、２４  動きベクトル検出回路、２６  動き補償回路、２８  フレームメモリ、３０  符号化回路、３２  復号化回路、３４  出力バッファ、３６  符号量制御回路、３８  参照モード選択回路、４０  演算部、４２  評価部、４４  位置設定部、５０  入力画像格納部、５２  参照画像格納部、５４  タイミング調整回路、５６  差分演算回路。
【図１】
2005303984.tif 000003
【図２】
2005303984.tif 000004
【図３】
2005303984.tif 000005
【図４】
2005303984.tif 000006
【図５】
2005303984.tif 000007
【図６】
2005303984.tif 000008
【図７】
2005303984.tif 000009
【図８】
2005303984.tif 000010
【図９】
2005303984.tif 000011
【図１０】
2005303984.tif 000012