(57)【要約】【課題】回路規模の増大を抑制し、制御プログラムの簡単化を図る。【解決手段】現画像用メモリ３２−０，３２−１を２バンク構成とし、この２バンク構成の現画像用メモリ３２−０，３２−１の出力をマルチプレクサ３４で切り替え、参照画像用メモリ３３−０〜３３−３を４バンク構成とし、この４バンク構成の参照画像用メモリ３３−０〜３３−３の出力をマルチプレクサ３５で切り替え可能にしている。そして、現画像データと参照画像データの画像データ保存用外部メモリ４２からのデータ転送と差分絶対値和（SAD）演算を含む動き探索の処理を並列に実行している。【選択図】図１
2008060836.tif 000002
【特許請求の範囲】
【請求項１】
現時刻における現画像データと前記現時刻に対して１時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの１マクロブロック分を格納する第１の現画像用メモリと、
動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記現画像データの１マクロブロック分を格納する第２の現画像用メモリと、
前記第１及び第２の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか１つを選択する第１の選択手段と、
前記参照画像データのMマクロブロック分（但し、M；２以上の整数）を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの（N-1）×Mマクロブロック分（但し、N；２以上の整数）を格納する第１〜第N-1の参照画像用メモリと、
前記参照画像データのMマクロブロック分を格納するデータ格納領域を有し、前記動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を格納する第Nの参照画像用メモリと、
前記第１〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか１つを選択する第２の選択手段と、
前記動きベクトル探索処理期間中に、前記第１の選択手段で選択された前記現画像データと前記第２の選択手段で選択された前記参照画像データとの差分絶対値和を求める演算器と、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき動きベクトルを検出する検出器と、
を備えたことを特徴とする動きベクトル探索装置。
【請求項２】
現時刻における現画像データと前記現時刻に対して１時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの１マクロブロック分をそれぞれ格納する２バンク構成の第１及び第２の現画像用メモリと、
前記第１及び第２の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか１つを選択する第１の選択手段と、
前記参照画像データのMマクロブロック分（但し、M；２以上の整数）を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの（N-1）×Mマクロブロック分（但し、N；２以上の整数）を格納するNバンク構成の第１〜第Nの参照画像用メモリと、
前記第１〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか１つを選択する第２の選択手段と、
前記第１の選択手段で選択された前記現画像データと前記第２の選択手段で選択された前記参照画像データとを演算して差分絶対値和の演算結果を出力する演算器と、
前記演算結果に基づき動きベクトルを検出する検出器と、
を用いた動きベクトル探索方法であって、
前記外部メモリから読み出された前記現画像データの１マクロブロック分を前記第１の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの（N-1）×Mマクロブロック分を前記第１〜第N-1の参照画像用メモリに格納し、
前記第１の現画像用メモリから前記現画像データを読み出して前記第１の選択手段で選択すると共に、前記第１〜第N-1の参照画像用メモリから前記参照画像データを読み出して前記第２の選択手段で選択し、
前記第１の選択手段で選択した前記現画像データと、前記第２の選択手段で選択した前記参照画像とから、前記演算器で前記差分絶対値和を演算し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第２の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項３】
請求項１記載の動きベクトル探索装置において、
前記各第１〜第Nの参照画像用メモリは、
前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第１及び第２の読み出しポートと、を有するデュアルポートメモリにより構成され、
前記第２の選択手段は、
前記第１〜第Nの参照画像用メモリの前記第１の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第３の選択手段と、前記第１〜第Nの参照画像用メモリの前記第２の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第４の選択手段と、により構成され、
前記演算器は、
前記動きベクトル探索処理期間中に、前記第１の選択手段で選択された前記現画像データと、前記第３及び第４の選択手段でそれぞれ選択された前記参照画像データと、を並列演算して前記差分絶対値和を求め、
前記検出器は、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき前記動きベクトルを検出することを特徴とする動きベクトル探索装置。
【請求項４】
請求項２記載の動きベクトル探索方法において、
前記各第１〜第Nの参照画像用メモリとして、
前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第１及び第２の読み出しポートと、を有するデュアルポートメモリを使用し、
前記第２の選択手段として、
前記第１〜第Nの参照画像用メモリの前記第１の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第３の選択手段と、前記第１〜第Nの参照画像用メモリの前記第２の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第４の選択手段と、を使用し、
前記外部メモリから読み出された前記現画像データの１マクロブロック分を前記第１の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの（N-1）×Mマクロブロック分を前記第１〜第N-1の参照画像用メモリの前記書き込みポートから入力して格納し、
前記第１の現画像用メモリから前記現画像データを読み出して前記第１の選択手段で選択すると共に、前記第１〜第N-1の参照画像用メモリの前記第１及び第２の読み出しポートから前記参照画像データを読み出して前記第３及び第４の選択手段で選択し、
前記第１の選択手段で選択した前記現画像データと、前記第３及び第４の選択手段で選択した前記参照画像と、を前記演算器で並列演算して前記差分絶対値和を求めてこの演算結果を出力し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第２の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項５】
請求項１記載の動きベクトル探索装置において、
前記各第１〜第Nの参照画像用メモリは、
前記参照画像データのMマクロブロック分を格納するデータ格納領域と、動きベクトル検出結果を格納する検出結果格納領域と、前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む第１の書き込みポートと、前記動きベクトル検出結果を入力して前記検出結果格納領域に書き込む第２の書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第１及び第２の読み出しポートと、を有するデュアルポートメモリにより構成され、
前記第２の選択手段は、
前記第１〜第Nの参照画像用メモリの前記第１の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第３の選択手段と、前記第１〜第Nの参照画像用メモリの前記第２の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第４の選択手段と、により構成され、
前記演算器は、
前記動きベクトル探索処理期間中に、前記第１の選択手段で選択された前記現画像データと、前記第３及び第４の選択手段でそれぞれ選択された前記参照画像データと、を並列演算して前記差分絶対値和を求め、
前記検出器は、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき前記動きベクトルを検出し、前記動きベクトル検出結果を前記第１〜第Nの参照画像用メモリの前記第２の書き込みポートから入力して前記検出結果格納領域に格納することを特徴とする動きベクトル探索装置。
【請求項６】
請求項２記載の動きベクトル探索方法において、
前記各第１〜第Nの参照画像用メモリとして、
前記参照画像データのMマクロブロック分を格納するデータ格納領域と、動きベクトル検出結果を格納する検出結果格納領域と、前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む第１の書き込みポートと、前記動きベクトル検出結果を入力して前記検出結果格納領域に書き込む第２の書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第１及び第２の読み出しポートと、を有するデュアルポートメモリを使用し、
前記第２の選択手段として、
前記第１〜第Nの参照画像用メモリの前記第１の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第３の選択手段と、前記第１〜第Nの参照画像用メモリの前記第２の読み出しポートからそれぞれ出力された前記参照画像データのいずれか１つを選択する第４の選択手段と、を使用し、
前記外部メモリから読み出された前記現画像データの１マクロブロック分を前記第１の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの（N-1）×Mマクロブロック分を前記第１〜第N-1の参照画像用メモリの前記第１の書き込みポートから入力して前記データ格納領域に格納し、
前記第１の現画像用メモリから前記現画像データを読み出して前記第１の選択手段で選択すると共に、前記第１〜第N-1の参照画像用メモリの前記第１及び第２の読み出しポートから前記参照画像データを読み出して前記第３及び第４の選択手段で選択し、
前記第１の選択手段で選択した前記現画像データと、前記第３及び第４の選択手段で選択した前記参照画像と、を前記演算器で並列演算して前記差分絶対値和を求めてこの演算結果を出力し、前記演算結果から前記検出器で前記動きベクトルを検出し、前記動き検出結果を前記第１〜第N-1の参照画像用メモリの前記第２の書き込みポートから入力して前記検出結果格納領域に格納する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第２の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項７】
前記１マクロブロックは１６×１６画素の矩形領域、前記Mは３、及び、前記Nは４であることを特徴とする請求項１、３又は５記載の動きベクトル探索装置。
【請求項８】
前記１マクロブロックは１６×１６画素の矩形領域、前記Mは３、及び、前記Nは４であることを特徴とする請求項２、４又は６記載の動きベクトル探索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル動画像・音声のコーディック（圧縮・伸張）に関する国際標準規格（ビデオコーディック規格）であるMPEG4（Moving Picture Experts Group ４）のエンコーダ等に使用される動きベクトル探索方法及びこの動きベクトル探索装置に関するものである。
【背景技術】
【０００２】
従来、MPEG4エンコーダ等に使用される動きベクトル探索に関する技術としては、例えば、次のような文献に記載されるものがあった。
【０００３】
【特許文献１】特開平１０−４２３００号公報
【特許文献２】特開１０−３３６６７１号方法
【特許文献３】特開２００３−８７７９９号公報
【特許文献４】特開２００４−３５６６７３号公報
【非特許文献１】FUJITSU,55[6] （２００４−１１）富士通、中山寛・渡部康弘・萩谷太郎著「低消費電力MPEG-4ビデオコーディックコア」ｐ．５２８−５３３
【０００４】
特許文献３に記載されているように、例えば、MPEG4エンコーダにおいて、動きベクトル探索方法の例としては、フルサーチ（Full Search）法、TSS(Three Step Search)法、NTSS(New Three Step Search)法、サンプリング法、追跡型動きベクトル探索法等が知られている。
【０００５】
フルサーチ法は、動きベクトル探索範囲の全探索点で、現フレーム（フレームとは、動画像データにおける画素単位である。）の輝度信号のマクロブロック（マクロブロックとは、処理対象となる画素領域の単位であり、MPEGの場合は１６×１６画素の矩形領域である。このマクロブロックを以下「MB」という。）の各画素のデータと参照フレームの参照ブロックの各画素のデータとの差分絶対値和（Summation of Absolute Differences、以下「SAD」という。）を算出し、SADが一番小さい参照ブロックを現フレームの輝度信号のMBと最もマッチングの良い参照ブロックとし、動きベクトルを算出する方法である。このフルサーチ法は、動きベクトル探索範囲の全画素を探索点としてブロックマッチングを行う方法であり、局部最小に陥らないため、探索精度が高く、画質の向上を図ることができるという利点を有しているが、動きベクトル探索範囲の全画素を探索点としているため、探索回数が多くなって演算量が非常に大きく、リアルタイムシステムに適用することが実際には難しいという問題点を有している。そこで、演算量を削減した動きベクトル探索方法として、TSS法、NTSS法、あるいはサンプリング法が提案されている。
【０００６】
TSS法やNTSS法は、３回のステップで動きベクトルの探索を行う方法であり、サンプリング法は、所定のパターンをなす一定の画素を探索点とする方法である。このようなTSS法、NTSS法及びサンプリング法では、一定の探索範囲で、決まった探索パターンを用いるので、動きベクトル探索回数が一定となり（つまり、動きベクトル探索回数が固定され）、動きが少ない場合であっても、予め決めた探索回数で動きベクトルを求めるため、無駄な計算を行う場合がある。これを解決するために、動きベクトル探索回数を不定とする追跡型動きベクトル探索方法が提案されている。
【０００７】
追跡型動きベクトル探索方法は、探索原点（参照フレームの現フレームの輝度信号のMBと同じ位置）から所定の探索パターンに従って各探索点のSADを計算し、探索パターン中心の探索点のSADが一番小さくなるまで、次の探索パターン中心をSADが一番小さい探索点に移動させることにより、動きベクトルを算出する方法である。この追跡型動きベクトル探索方法については、特許文献３の他に、非特許文献１にも記載されている。
【０００８】
図２は、非特許文献１に記載された従来の追跡型動きベクトル探索方法を説明するための追跡型動き探索アルゴリズムの説明図である。
【０００９】
MPEG圧縮符号化処理において、動き検出（Motion Estimation:ME)は、対象フレームの処理単位であるMB（１６×１６画素）に対し、参照フレームの中から最も似たブロック領域を見つけ出す処理であり、以下のような（ａ）ステップ１、（ｂ）ステップ２、及び（ｃ）ステップ３により実行される。
【００１０】
（ａ）  ステップ１
現フレーム１において既に処理されている周辺MBの動きベクトルMV1,MV2,MV3の情報から、参照フレーム２の探索領域２ａにおいて探索を開始する初期探索中心を決定する。
【００１１】
（ｂ）  ステップ２
参照フレーム２の探索領域２ａにおいて探索中心から上下左右に１画素ずつずらした４つのMBとブロックマッチング処理を行い、最もテクスチャ（絵柄）が類似しているブロック地点に探索中心を移動させる。ブロックマッチングは、テクスチャの類似度を測るものであり、例えば、ブロック間対応画素のSADを計算し、SADが小さいほど類似度が高いと定義する。
【００１２】
（ｃ）  ステップ３
探索中心のSADが最も小さくなるまで、ステップ２の処理を繰り返し、最終的に求められた探索中心を動きベクトルMVとする。
【００１３】
図３は、特許文献３、４等に記載された従来の動きベクトル探索装置の一例を示す概略の構成図である。
【００１４】
この動きベクトル探索装置１０は、バス制御回路１１、現画像用メモリ１２、参照画像用メモリ１３、マルチプレクサ（MUX）１４、アドレス変換回路１５、SAD演算器１６、及び動きベクトル検出器１７から構成されている。現画像用メモリ１２は、現時刻の画像データの１MB分（1MBは16×16画素を示し、1画素当たり８ビットのデータ量である。）を格納するメモリ、参照画像用メモリ１３は、現時刻に対して1時刻前の画像データの９MB分を格納するメモリである。動きベクトル探索装置１０内のバス制御回路１１は、バス２０を介してメモリコントローラ２１に接続され、このメモリコントローラ２１に、画像データを保存するための大容量の外部メモリ２２が接続されている。バス２０には、MPEG4エンコーダ等を構成する他の回路が接続されてデータ転送に利用される。
【００１５】
この動きベクトル探索装置１０では、以下の（ａ）〜（ｆ）のような動きベクトル探索処理１〜６が行われる。
【００１６】
(ａ)  処理１
バス制御回路１１により、現時刻ｔにおける画像データの1MB分を外部メモリ２２からメモリコントローラ２１を介して読み出し、現画像用メモリ１２に格納する。
【００１７】
(ｂ)  処理２
バス制御回路１１により、現時刻tに対して1時刻前t-1における画像データの９MB分を外部メモリ２２からメモリコントローラ２１を介して読み出し、参照画像用メモリ１３に格納する。この９MB分は、処理１にて読み出したMBと同じ位置 (座標)の１個のMB分と、上下左右隣接する８個のMB分である。
【００１８】
(ｃ)  処理３
SAD演算器１６により、処理１にて現画像用メモリ１２に格納された1MB分の現画像データが読み出され、又、処理２にて参照画像用メモリ１３に格納された９MB分の画像データ内において、SAD演算器１６から所定の探索アルゴリズムに従って指定（選択）された1MBを示す位置情報（座標：x,y）により、マルチプレクサ１４、及びアドレス変換回路１５によって、1MB分の参照画像データが読み出され、現画像データと参照画像データに対して、１ライン（１６画素：１６×８＝１２８ビット）毎に１６回、下記の（１）式に従ったSAD演算が行われる。１個のMBのSAD値nSADが得られた時点で、動きベクトル検出器１７にSAD値nSADと動きベクトルnMVが送られる。
【００１９】
(ｄ)  処理４
引き続き、追跡型動き探索アルゴリズムに従って、処理３を繰り返し実行する。
【００２０】
(ｅ)  処理５
動きベクトル検出器１７にて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、バス制御回路１１、及びメモリコントローラ２１を介して、外部メモリ２２に格納する。
【００２１】
(ｆ)  処理６
順次、現画像と参照画像を各メモリ１２，１３に格納し、処理３〜処理５を繰り返し、１フレーム（１画面、例えば、VGA(Video Graphics Array、グラフィックス表示の規格）：６４０×４８０画素、４０×３０MB数）分の各MBに対する動きベクトル検出を行う。
【００２２】
【数１】
2008060836.tif 000003
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかしながら、従来の図３の動きベクトル探索方法及びこの装置では、外部メモリ２２から１MB分の現画像用メモリ１２と９MB分の参照画像用メモリ１３とへの画像データ転送後に、SAD演算等の動き探索の処理を行うため、画像サイズ大のために動き探索の処理量が大きい場合や、バス２０に接続された他の回路とのアクセスの混雑度が大きい場合、データ転送が遅れて動き探索処理が遅れ、結果として画質の低下を招くという問題があった。
【００２４】
この問題を解決するための一つの手法として、特許文献４の図６に記載された技術を利用し、例えば、動きベクトル探索装置１０内に新たに、内部データバスと、現画像用メモリ１２及び参照画像用メモリ１３間のデータ転送を制御するための内部メモリ制御部と、この内部メモリ制御部等をプログラム制御するためのプログラム制御部とを設け、これらのプログラム制御部、内部メモリ制御部、現画像用メモリ１２、参照画像用メモリ１３、SAD演算器１６及び動きベクトル検出器１７を、内部データバスを介して相互に接続する。そして、プログラム制御部による制御により、現画像の画像データを格納した現画像用メモリ１２から複数の現画像のMBデータを抽出して参照画像用メモリ１３に内部メモリ制御部を用いて順次転送するデータ転送処理と、参照画像用メモリ１３に順次転送された現画像のMBデータとこの参照画像用メモリ１３に格納されている参照画像のMBデータとのSAD演算をSAD演算器１６を用いて順次実行するSAD演算処理とを並行して行うことにより、動き探索の処理時間を短縮させることが考えられる。
【００２５】
しかし、この手法では、新たに内部データバス、内部メモリ制御部、及びプログラム制御部を追加するので、動きベクトル探索装置１０の回路規模が増大すると共に、制御プログラムが複雑化するという課題が生じ、未だ技術的に十分満足の得られる動きベクトル探索方法及び装置を実現できなかった。
【課題を解決するための手段】
【００２６】
本発明の動きベクトル探索装置では、現時刻における現画像データと前記現時刻に対して１時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの１MB分を格納する第１の現画像用メモリと、動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記現画像データの１個のMB分を格納する第２の現画像用メモリと、前記第１及び第２の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか１つを選択する第１の選択手段と、前記参照画像データのM個のMB分（但し、M；２以上の整数）を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの（N-1）×M個のMB分（但し、N；２以上の整数）を格納する第１〜第N-1の参照画像用メモリとを備えている。
【００２７】
更に、前記参照画像データのM個のMB分を格納するデータ格納領域を有し、前記動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記参照画像データのM個のMB分を格納する第Nの参照画像用メモリと、前記第１〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか１つを選択する第２の選択手段と、前記動きベクトル探索処理期間中に、前記第１の選択手段で選択された前記現画像データと前記第２の選択手段で選択された前記参照画像データとのSADを求める演算器と、前記動きベクトル探索処理期間中に、前記演算器で求めた前記SADに基づき動きベクトルを検出する検出器とが設けられている。
【００２８】
本発明の動きベクトル探索方法では、現時刻における現画像データと前記現時刻に対して１時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの１個のMB分をそれぞれ格納する２バンク構成の第１及び第２の現画像用メモリと、前記第１及び第２の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか１つを選択する第１の選択手段と、前記参照画像データのM個のMB分（但し、M；２以上の整数）を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの（N-1）×M個のMB分（但し、N；２以上の整数）を格納するNバンク構成の第１〜第Nの参照画像用メモリと、前記第１〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか１つを選択する第２の選択手段と、前記第１の選択手段で選択された前記現画像データと前記第２の選択手段で選択された前記参照画像データとを演算してSADの演算結果を出力する演算器と、前記演算結果に基づき動きベクトルを検出する検出器とを使用する。
【００２９】
そして、前記外部メモリから読み出された前記現画像データの１個のMB分を前記第１の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの（N-1）×M個のMB分を前記第１〜第N-1の参照画像用メモリに格納し、前記第１の現画像用メモリから前記現画像データを読み出して前記第１の選択手段で選択すると共に、前記第１〜第N-1の参照画像用メモリから前記参照画像データを読み出して前記第２の選択手段で選択し、前記第１の選択手段で選択した前記現画像データと、前記第２の選択手段で選択した前記参照画像とから、前記演算器で前記SADを演算し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、前記外部メモリから読み出された次の前記現画像データを前記第２の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのM個のMB分を前記第Nの参照画像用メモリに格納する。
【発明の効果】
【００３０】
本発明の動きベクトル探索装置及び動きベクトル探索方法によれば、動き探索の処理中に、順次、現画像データと参照画像データを外部メモリから第１、第２の現画像用メモリ、及び第１〜第N-1の参照画像用メモリにそれぞれ格納しておき、画像データの転送と動き探索の処理を並列に実行することで、動きベクトル探索装置における回路規模をそれほど増大させることなく、且つ、制御プログラムを複雑化することなく、常にSAD演算を含む動き探索の処理が容易に実行可能となる。そのため、動き探索の処理量が大きい場合等でも、円滑なデータ転送によって動き探索処理が迅速に行われ、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【発明を実施するための最良の形態】
【００３１】
動きベクトル探索装置は、バス制御回路、現時刻の画像データの1個のMB分を格納する現画像用メモリ、現時刻に対して1時刻前の画像データの９個のMB分を格納する参照画像用メモリ、マルチプレクサ、アドレス変換回路、SAD演算器、及び動きベクトル検出器を備え、次のような構成にしている。
【００３２】
前記現画像用メモリを２バンク構成とし、この２バンク構成の現画像用メモリの出力をマルチプレクサで切り替え、前記参照画像用メモリを４バンク構成とし、この４バンク構成の参照画像用メモリの出力をマルチプレクサで切り替え可能にしている。そして、現画像データと参照画像データの画像データ保存用外部メモリからのデータ転送とSAD演算を含む動き探索の処理を並列に実行している。
【実施例１】
【００３３】
（実施例１の構成）
図１は、本発明の実施例１を示す動きベクトル探索装置の概略の構成図である。
この動きベクトル探索装置３０は、例えば、MPEG4エンコーダ等に使用されるモジュール構成の装置であり、バス制御回路３１と、このバス制御回路３１に接続され、現時刻における画像データの１MB分を格納するための２バンク構成の第１、第２の現画像用メモリ３２−０，３２−１と、バス制御回路３１に接続され、現時刻に対して1時刻前の画像データの(N-1)×M個のMB分（例えば、N＝４、M＝３の９MB分）を格納するためのNバンク構成（例えば、N＝４）の第１〜第４の参照画像用メモリ３３−０〜３３−３とを備えている。４バンク構成の第１〜第４の参照画像用メモリ３３−０〜３３−３は、各M個のMBデータ（例えば、M＝３のMBデータ）をデータ格納領域３３ａに格納する１２８ビット出力のシングルポートメモリ（Single Port Memory)によりそれぞれ構成されている。シングルポートメモリは、一時にデータ書き込み又は読み出し動作のいずれかのみ可能なメモリであり、例えば、随時読み書き可能なメモリ（以下「RAM」という。）で構成されている。２バンク構成の第１、第２の現画像用メモリ３２−０，３２−１も、各１MBデータを格納する１２８ビット出力のシングルポートメモリによりそれぞれ構成されている。
【００３４】
現画像用メモリ３２−０，３２−１の出力側には、第１の選択手段（例えば、１２８ビット×２入力且つ１２８ビット×１出力のマルチプレクサ（MUX)）３４を介して、SAD演算器３７が接続され、更に、参照画像用メモリ３３−０〜３３−３の出力側が、第２の選択手段（例えば、１２８ビット×４入力且つ１２８ビット×１出力のマルチプレクサ（MUX)）３５を介して、SAD演算器３７に接続されている。SAD演算器３７は、アドレス変換回路３６を介して参照画像用メモリ３３−０〜３３−３に接続され、更に、このSAD演算器３７の出力側に、動きベクトル検出器３８が接続されている。
【００３５】
マルチプレクサ３４は、SAD演算器３７から与えられる切り替え信号Ｓ３７により、２バンク構成の現画像用メモリ３２−０，３２−１の出力を切り替える回路である。マルチプレクサ３５は、SAD演算器３７から与えられる位置情報（座標：x,y）により、４バンク構成の参照画像用メモリ３３−０〜３３−３の出力を切り替える回路である。アドレス変換回路３６は、SAD演算器３７から与えられる位置情報（座標：x,y）をメモリアドレスに変換して参照画像用メモリ３３−０〜３３−３に対するアクセス箇所を指定する回路である。SAD演算器３７は、切り替え信号Ｓ３７及び位置情報（座標：x,y）を出力してマルチプレクサ３４，３５の出力データを入力し、SAD演算を行って１MBのSAD値nSAD及び動きベクトルnMVを動きベクトル検出器３８へ出力する回路である。更に、動きベクトル検出器３８は、１MBのSAD値nSAD及び動きベクトルnMVを入力して演算により動きベクトルMVを検出する検出部３８a、及びその動きベクトルMVを格納する内部レジスタ３８b等により構成されている。
【００３６】
動きベクトル探索装置３０内のバス制御回路３１は、バス４０を介して、メモリコントローラ４１に接続され、このメモリコントローラ４１に、画像データを保存するための外部メモリ４２が接続されている。
【００３７】
このように、本実施例１の動きベクトル探索装置３０が従来の図３の動きベクトル探索装置１０と異なる点は、現時刻における画像データの1MB分を格納する現画像用メモリ１２を２バンク構成とし、この２バンク構成の現画像用メモリ３２−０，３２−１をマルチプレクサ３４で切り替え可能とし、更に、現時刻に対して1時刻前の画像データの９MB分を格納する参照画像用メモリ１３を４バンク構成とし、この４バンク構成の参照画像用メモリ３３−０〜３３−３をマルチプレクサ３５で切り替え可能とした点である。
【００３８】
（実施例１の動きベクトル探索方法）
本実施例１の動きベクトル探索装置３０では、以下の（ａ）〜（ｈ）のような動きベクトル探索処理１〜８が行われる。
【００３９】
(ａ)  処理１
バス制御回路３１により、現時刻tにおける画像データの1MB分をメモリコントローラ４１の制御で外部メモリ４２から読み出し、バス４０を介して現画像用メモリ３２−０に格納する。
【００４０】
(ｂ)  処理２
バス制御回路３１により、現時刻tに対して1時刻前t-1における画像データの９MB分をメモリコントローラ４１の制御で外部メモリ４２から読み出し、バス４０を介して参照画像用メモリ３３−０〜３３−２に格納する。この９MBは、処理１にて読み出したMBと同じ位置 (座標：x,y)のMBと上下左右隣接する８MBである。
【００４１】
(ｃ)  処理３
SAD演算器３７により、処理１にて現画像用メモリ３２−０に格納された１MB分の現画像データがマルチプレクサ３４を介して読み出され、又、処理２にて参照画像用メモリ３３−０〜３３−２に格納された９MB分の画像データ内において、SAD演算器３７から所定の追跡型動き探索アルゴリズムに従って指定（選択）された１MBを示す位置情報(座標：x,y)により、マルチプレクサ３５及びアドレス変換回路３６によって、１MB分の参照画像データが読み出され、現画像データと参照画像データに対して、１ライン（１６画素：１６×８＝１２８ビット）毎に１６回SAD演算が行われる。１MBのSAD値nSADが得られた時点で、SAD値nSADと動きベクトルnMVが動きベクトル検出器３８へ送られる。
【００４２】
(ｄ)  処理４
引き続き所定の追跡型動き探索アルゴリズムに従って、処理３を繰返し実行する。
【００４３】
(ｅ)  処理５
処理３と処理４の動き探索の処理中に、次の現画像データを現画像用メモリ３２−１に、又、参照画像データ（３MB分）を他の１バンクの参照画像用メモリ３３−３に書き込んでおく。
【００４４】
(ｆ)  処理６
動きベクトル検出器３８にて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、バス制御回路３１、バス４０、及びメモリコントローラ４１を介して、外部メモリ４２に格納する。
【００４５】
(ｇ)  処理７
動き探索処理中に、順次、現画像データと参照画像データを外部メモリ４２から各メモリ３２−０，３２−１，３３−０〜３３−３のバンク（３２−ｘ、３３−ｘ）に格納し、画像データの転送と動き探索の処理を並列に実行する。
【００４６】
(ｈ)  処理８
処理３〜処理７を繰り返し、１フレーム分の各MBに対する動きベクトルMVの検出を行う。
【００４７】
（実施例１の効果）
本実施例１によれば、動き探索の処理中に、順次、現画像データと参照画像データを外部メモリ４２から各メモリ３２−０，３２−１，３３−０〜３３−３のバンク（３２−ｘ、３３−ｘ）に格納しておき、画像データの転送と動き探索の処理を並列に実行することで、動きベクトル探索装置３０における回路規模をそれほど増大させることなく、且つ、制御プログラムを複雑化することなく、常にSAD演算を含む動き探索の処理が容易に実行可能となる。そのため、動き探索の処理量が大きい場合や、バス４０に接続された他の回路とのバスアクセスの混雑度が大きい場合でも、円滑なデータ転送によって動き探索処理が迅速に行われ、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【実施例２】
【００４８】
（実施例２の構成）
図４は、本発明の実施例２を示す動きベクトル探索装置の概略の構成図であり、実施例１を示す図１中の要素と共通の要素には共通の符号が付されている。
本実施例２の動きベクトル探索装置３０Ａでは、実施例１のシングルポートメモリからなるNバンク（例えば、４バンク）構成の参照画像用メモリ３３−０〜３３−３と、この出力を切り替える第２の選択手段（例えば、マルチプレクサ（MUX)）３５とに代えて、デュアルポートメモリ(Dual Port MeMory)からなるNバンク（例えば、４バンク）構成の第１〜第４の参照画像用メモリ３３Ａ−０〜３３Ａ−３と、この出力を切り替える２個の第３、第４の選択手段（例えば、マルチプレクサ（MUX））３５−０，３５−１とを設け、実施例１のSAD演算器３７に代えて、２個のSAD演算器３７−０，３７−１を設け、更に、実施例１の動きベクトル検出器３８に代えて、これとは構成の異なる動きベクトル検出器３８Ａを設けている。
【００４９】
４バンク構成の参照画像用メモリ３３Ａ−０〜３３Ａ−３は、それぞれ１つの書き込みポート及び２つの第１、第２の読み出しポートを有し、それぞれM個のMBデータ（例えば、３MBデータ）をデータ格納領域３３ａに格納するデュアルポートメモリにより構成されている。各デュアルポートメモリは、１つの書き込みポートからのデータ書き込み動作と、２つの第１、第２の読み出しポートからの１２８ビット×２出力の読み出し動作とが、同時に（即ち、非同期に）行えるメモリであり、例えば、RAMで構成されている。
【００５０】
２個のマルチプレクサ３５−０，３５−１は、それぞれ１２８ビット×４入力且つ１２８ビット×１出力の回路である。一方のマルチプレクサ３５−０は、SAD演算器３７−０から与えられる位置情報（座標：x,y）により、４バンク構成の参照画像用メモリ３３Ａ−１〜３３Ａ−３の出力を切り替える回路であり、この出力側がSAD演算器３７−０に接続されている。他方のマルチプレクサ３５−１は、SAD演算器３７−１から与えられる他の位置情報（座標：x,y）により、４バンク構成の参照画像用メモリ３３Ａ−１〜３３Ａ−３の出力を切り替える回路であり、この出力側がSAD演算器３７−１に接続されている。
２個のSAD演算器３７−０，３７−１のうち、一方のSAD演算器３７−０は、切り替え信号Ｓ３７−０及び位置情報（座標：x,y）を出力してマルチプレクサ３４，３５−０の出力データを入力し、SAD演算を行って１MBのSAD値nSAD及び動きベクトルnMVを動きベクトル検出器３８Ａへ出力する回路である。他方のSAD演算器３７−１は、他の位置情報（座標：x,y）を出力してマルチプレクサ３４，３５−１の出力データを入力し、SAD演算を行って１MB分のSAD値nSAD及び動きベクトルnMVを動きベクトル検出器３８Ａへ出力する回路である。
【００５１】
動きベクトル検出器３８Ａは、SAD演算器３７−０，３７−１から与えられる１MB分のSAD値nSAD及び動きベクトルnMVに基づく演算により動きベクトルMVを検出する検出部３８a、及びその動きベクトルMVを格納する内部レジスタ３８b等により構成されている。
【００５２】
本実施例２の動きベクトル探索装置３０Ａでは、デュアルポートメモリで構成される各参照画像用メモリ３３Ａ−０〜３３Ａ−３の２つの第１、第２の読み出しポートから異なる２つのMBデータを、２個のマルチプレクサ３５−０，３５−１を介して読み出し、２個のSAD演算器３７−０，３７−１にて、異なる２つのMBデータを同時（並列）にSAD演算できる構成にしている。その他の構成は、実施例１と同様である。
【００５３】
（実施例２の動きベクトル探索方法）
本実施例２の動きベクトル探索装置３０Ａにおいて、２バンク構成の現画像用メモリ３２−０，３２−１への外部メモリ４２からの現画像データの書き込み、SAD演算器３７−０，３７−１への読み出し、及び、４バンク構成の参照画像用メモリ３３Ａ−０〜３３Ａ−３への外部メモリ４２からの参照画像データの書き込み処理は、実施例１と同様に行われる。
【００５４】
実施例１では、所定の追跡型動き探索アルゴリズムに従って指定された、４バンク構成の参照画像用メモリ３３−０〜３３−３内から１MB毎に読み出し、順次SAD演算を含む動き探索処理を行っている。これに対し、本実施例２では、４バンク構成の参照画像用メモリ３３Ａ−０〜３３Ａ−３を構成する各デュアルポートメモリの２つの第１、第２の読み出しポートから、指定された１MBと所定の追跡型動き探索アルゴリズムに従って、次に指定される１MBを同時に２個のSAD演算器３７−０，３７−１に読み出し、同時に２個のMBデータをSAD演算し、この演算結果を動きベクトル検出器３８Ａへ出力する。動きベクトル検出器３８Ａでは、検出部３８ａにて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、この検出結果を内部レジスタ３８ｂに格納すると共に、バス制御回路３１、バス４０、及びメモリコントローラ４１を介して外部メモリ４２に格納する。
【００５５】
（実施例２の効果）
本実施例２によれば、４バンク構成の参照画像用メモリ３３Ａ−０〜３３Ａ−３をデュアルポートメモリにて構成し、これらの各デュアルポートメモリの２つの第１、第２の読み出しポートから異なる２つのMBデータを、２個のSAD演算器３７−０，３７−１にて同時に実行する構成にしている。そのため、実施例１よりも更に動き探索の処理量を増やすことができ、動き探索の処理量が大きい場合や、バス４０に接続された他の回路とのバスアクセスの混雑度が大きい場合でも、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【実施例３】
【００５６】
（実施例３の構成）
図５は、本発明の実施例３を示す動きベクトル探索装置の概略の構成図であり、実施例２を示す図４中の要素と共通の要素には共通の符号が付されている。
【００５７】
本実施例３の動きベクトル探索装置３０Ｂでは、実施例２の動きベクトル探索装置３０Ａにおけるデュアルポートメモリからなる４バンク構成の参照画像用メモリ３３Ａ−０〜３３Ａ−３に代えて、これとは構成の異なる４バンク構成の参照画像用メモリ３３Ｂ−０〜３３Ｂ−３を設けている。４バンク構成の参照画像用メモリ３３Ｂ−０〜３３Ｂ−３は、それぞれ２つの第１、第２の書き込みポート、２つの第１、第２の読み出しポート、３MBデータを格納するデータ格納領域３３ａ、及び動きベクトルMVの検出結果を格納する検出結果格納領域３３ｂを有し、デュアルポートメモリにより構成されている。各デュアルポートメモリは、２つの第１、第２の書き込みポートからのデータ書き込み動作と、２つの第１、第２の読み出しポートからの１２８ビット×２出力の読み出し動作とが、同時に（即ち、非同期に）行えるメモリであり、例えば、RAMで構成されている。
【００５８】
このように、本実施例３では、動きベクトル検出器３８Ａによる動きベクトルMVの検出結果を外部メモリ４２へ転送すると同時に、その検出結果を実施例２のように動きベクトル検出器３８Ａの内部レジスタ３８ｂに格納する構成ではなく、参照画像用メモリ３３Ｂ−０〜３３Ｂ−３の検出結果格納領域３３ｂに格納する構成にしている。その他の構成は、実施例２と同様である。
【００５９】
（実施例３の動きベクトル探索方法）
図６は、図５の動きベクトル検出器３８Ａにて検出される上及び左の動きベクトルの様子を示す模式図である。
【００６０】
本実施例３の動きベクトル探索装置３０Ｂにおいて、動き探索の処理は、実施例２と同様であるが、以下の処理が実施例２と異なる。
【００６１】
実施例２では、動きベクトル検出器３８Ａ内の検出部３８ａにて検出した動きベクトルMVの検出結果を外部メモリ４２へ転送すると同時に、内部レジスタ３８ｂに格納している。格納には、１フレームの水平方向１ラインのMB分のレジスタが必要（例えば、VGA：６４０×４８０画素、水平方向１ライン６４０／１６＝４０MB、４０×２（MV）バイト＝８０バイト、８０×８ビット＝６４０ビット）である。
【００６２】
実施例１、２では、SAD演算を行う際、図６に示すように、処理対象としているMBの上及び左の動きベクトルMV1,MV2を動きベクトル検出器３８Ａの内部レジスタ３８ｂから読み出し、この動きベクトルMV1,MV2から探索する際のスタート地点を計算する。画像は、上及び左のMＢの動きと似ているため、スタート地点を計算することにより、動き探索の処理量を減らすことが可能となる。
【００６３】
これに対し、本実施例３では、検出部３８ａで検出された動きベクトMVの検出結果を、外部メモリ４２へ転送すると同時に、内部レジスタ３８ｂに格納する代わりに、デュアルポートメモリからなる参照画像用メモリ３３Ｂ−０〜３３Ｂ−３の検出結果格納領域３３ｂに格納し、SAD演算を行う際に読み出す。
【００６４】
（実施例３の効果）
本実施例３によれば、動きベクトルMVの検出結果を外部メモリ４２へ転送すると同時に、デュアルポートメモリからなる参照画像用メモリ３３Ｂ−０〜３３Ｂ−３の検出結果格納領域３３ｂに格納する構成にしている。そのため、実施例２と同様に、SAD演算を行う際、処理対象としているMBの上及び左の動きベクトルMV1,MV2から探索する際のスタート地点を計算し、探索のスタート地点を計算することにより、動き探索の処理量を減らすことができる。しかも、動きベクトル検出器３８Ａの内部レジスタ３８ｂの代わりに、デュアルポートメモリからなる参照画像用メモリ３３Ｂ−０〜３３Ｂ−３の一部の検出結果格納領域３３ｂへ、動きベクトルMVの検出結果を格納する構成にしているので、同じデータ量を格納する場合、レジスタよりメモリの方が面積的に小さい（例えば、面積比はレジスタ：メモリ≒６：１）ため、面積削減の効果が得られる。
【００６５】
（変形例）
本発明は、上記実施例１〜３に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の（１）、（２）のようなものがある。
（１）  N（例えば、４）バンク構成の参照画像用メモリ３３−０〜３３−３，３３Ａ−０〜３３Ａ−３，３３Ｂ−０〜３３Ｂ−０〜３３Ｂ−３は、M（例えば、３）個のMB分を格納するデュアルポートメモリであるが、NやMの個数を他の数に変更しても良い。
（２）  探索アルゴリズムは、追跡型動き探索アルゴリズム以外のアルゴリズムに変更しても良い。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施例１を示す動きベクトル探索装置の概略の構成図である。
【図２】従来の追跡型動きベクトル探索方法を説明するための追跡型動き探索アルゴリズムの説明図である。
【図３】従来の動きベクトル探索装置の一例を示す概略の構成図である。
【図４】本発明の実施例２を示す動きベクトル探索装置の概略の構成図である。
【図５】本発明の実施例３を示す動きベクトル探索装置の概略の構成図である。
【図６】図５の動きベクトル検出器３８Ａにて検出される上及び左の動きベクトルの様子を示す模式図である。
【符号の説明】
【００６７】
３０，３０Ａ，３０Ｂ      動きベクトル探索装置
３２−０，３２−１      現画像用メモリ
３３−０〜３３−３，３３Ａ−０〜３３Ａ−３，３３Ｂ−０〜３３Ｂ−３
参照画像用メモリ
３４，３５，３５−０，３５−１      マルチプレクサ
３６      アドレス変換回路
３７，３７−０，３７−１      SAD演算器
３８，３８Ａ      動きベクトル検出器
４２      外部メモリ
【図１】
2008060836.tif 000004
【図２】
2008060836.tif 000005
【図３】
2008060836.tif 000006
【図４】
2008060836.tif 000007
【図５】
2008060836.tif 000008
【図６】
2008060836.tif 000009