トップ :: H 電気 :: H04 電気通信技術




【発明の名称】 動きベクトル探索方法及び装置
【発明者】 【氏名】藤後 清丈

【要約】 【課題】回路規模の増大を抑制し、制御プログラムの簡単化を図る。

【構成】現画像用メモリ32−0,32−1を2バンク構成とし、この2バンク構成の現画像用メモリ32−0,32−1の出力をマルチプレクサ34で切り替え、参照画像用メモリ33−0〜33−3を4バンク構成とし、この4バンク構成の参照画像用メモリ33−0〜33−3の出力をマルチプレクサ35で切り替え可能にしている。そして、現画像データと参照画像データの画像データ保存用外部メモリ42からのデータ転送と差分絶対値和(SAD)演算を含む動き探索の処理を並列に実行している。
【特許請求の範囲】
【請求項1】
現時刻における現画像データと前記現時刻に対して1時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの1マクロブロック分を格納する第1の現画像用メモリと、
動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記現画像データの1マクロブロック分を格納する第2の現画像用メモリと、
前記第1及び第2の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか1つを選択する第1の選択手段と、
前記参照画像データのMマクロブロック分(但し、M;2以上の整数)を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの(N-1)×Mマクロブロック分(但し、N;2以上の整数)を格納する第1〜第N-1の参照画像用メモリと、
前記参照画像データのMマクロブロック分を格納するデータ格納領域を有し、前記動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を格納する第Nの参照画像用メモリと、
前記第1〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか1つを選択する第2の選択手段と、
前記動きベクトル探索処理期間中に、前記第1の選択手段で選択された前記現画像データと前記第2の選択手段で選択された前記参照画像データとの差分絶対値和を求める演算器と、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき動きベクトルを検出する検出器と、
を備えたことを特徴とする動きベクトル探索装置。
【請求項2】
現時刻における現画像データと前記現時刻に対して1時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの1マクロブロック分をそれぞれ格納する2バンク構成の第1及び第2の現画像用メモリと、
前記第1及び第2の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか1つを選択する第1の選択手段と、
前記参照画像データのMマクロブロック分(但し、M;2以上の整数)を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの(N-1)×Mマクロブロック分(但し、N;2以上の整数)を格納するNバンク構成の第1〜第Nの参照画像用メモリと、
前記第1〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか1つを選択する第2の選択手段と、
前記第1の選択手段で選択された前記現画像データと前記第2の選択手段で選択された前記参照画像データとを演算して差分絶対値和の演算結果を出力する演算器と、
前記演算結果に基づき動きベクトルを検出する検出器と、
を用いた動きベクトル探索方法であって、
前記外部メモリから読み出された前記現画像データの1マクロブロック分を前記第1の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの(N-1)×Mマクロブロック分を前記第1〜第N-1の参照画像用メモリに格納し、
前記第1の現画像用メモリから前記現画像データを読み出して前記第1の選択手段で選択すると共に、前記第1〜第N-1の参照画像用メモリから前記参照画像データを読み出して前記第2の選択手段で選択し、
前記第1の選択手段で選択した前記現画像データと、前記第2の選択手段で選択した前記参照画像とから、前記演算器で前記差分絶対値和を演算し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第2の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項3】
請求項1記載の動きベクトル探索装置において、
前記各第1〜第Nの参照画像用メモリは、
前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第1及び第2の読み出しポートと、を有するデュアルポートメモリにより構成され、
前記第2の選択手段は、
前記第1〜第Nの参照画像用メモリの前記第1の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第3の選択手段と、前記第1〜第Nの参照画像用メモリの前記第2の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第4の選択手段と、により構成され、
前記演算器は、
前記動きベクトル探索処理期間中に、前記第1の選択手段で選択された前記現画像データと、前記第3及び第4の選択手段でそれぞれ選択された前記参照画像データと、を並列演算して前記差分絶対値和を求め、
前記検出器は、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき前記動きベクトルを検出することを特徴とする動きベクトル探索装置。
【請求項4】
請求項2記載の動きベクトル探索方法において、
前記各第1〜第Nの参照画像用メモリとして、
前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第1及び第2の読み出しポートと、を有するデュアルポートメモリを使用し、
前記第2の選択手段として、
前記第1〜第Nの参照画像用メモリの前記第1の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第3の選択手段と、前記第1〜第Nの参照画像用メモリの前記第2の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第4の選択手段と、を使用し、
前記外部メモリから読み出された前記現画像データの1マクロブロック分を前記第1の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの(N-1)×Mマクロブロック分を前記第1〜第N-1の参照画像用メモリの前記書き込みポートから入力して格納し、
前記第1の現画像用メモリから前記現画像データを読み出して前記第1の選択手段で選択すると共に、前記第1〜第N-1の参照画像用メモリの前記第1及び第2の読み出しポートから前記参照画像データを読み出して前記第3及び第4の選択手段で選択し、
前記第1の選択手段で選択した前記現画像データと、前記第3及び第4の選択手段で選択した前記参照画像と、を前記演算器で並列演算して前記差分絶対値和を求めてこの演算結果を出力し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第2の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項5】
請求項1記載の動きベクトル探索装置において、
前記各第1〜第Nの参照画像用メモリは、
前記参照画像データのMマクロブロック分を格納するデータ格納領域と、動きベクトル検出結果を格納する検出結果格納領域と、前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む第1の書き込みポートと、前記動きベクトル検出結果を入力して前記検出結果格納領域に書き込む第2の書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第1及び第2の読み出しポートと、を有するデュアルポートメモリにより構成され、
前記第2の選択手段は、
前記第1〜第Nの参照画像用メモリの前記第1の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第3の選択手段と、前記第1〜第Nの参照画像用メモリの前記第2の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第4の選択手段と、により構成され、
前記演算器は、
前記動きベクトル探索処理期間中に、前記第1の選択手段で選択された前記現画像データと、前記第3及び第4の選択手段でそれぞれ選択された前記参照画像データと、を並列演算して前記差分絶対値和を求め、
前記検出器は、
前記動きベクトル探索処理期間中に、前記演算器で求めた前記差分絶対値和に基づき前記動きベクトルを検出し、前記動きベクトル検出結果を前記第1〜第Nの参照画像用メモリの前記第2の書き込みポートから入力して前記検出結果格納領域に格納することを特徴とする動きベクトル探索装置。
【請求項6】
請求項2記載の動きベクトル探索方法において、
前記各第1〜第Nの参照画像用メモリとして、
前記参照画像データのMマクロブロック分を格納するデータ格納領域と、動きベクトル検出結果を格納する検出結果格納領域と、前記外部メモリから読み出された前記参照画像データを入力して前記データ格納領域に書き込む第1の書き込みポートと、前記動きベクトル検出結果を入力して前記検出結果格納領域に書き込む第2の書き込みポートと、前記データ格納領域に書き込まれた前記参照画像データのうちの異なるマクロブロックデータをそれぞれ読み出して出力する第1及び第2の読み出しポートと、を有するデュアルポートメモリを使用し、
前記第2の選択手段として、
前記第1〜第Nの参照画像用メモリの前記第1の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第3の選択手段と、前記第1〜第Nの参照画像用メモリの前記第2の読み出しポートからそれぞれ出力された前記参照画像データのいずれか1つを選択する第4の選択手段と、を使用し、
前記外部メモリから読み出された前記現画像データの1マクロブロック分を前記第1の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの(N-1)×Mマクロブロック分を前記第1〜第N-1の参照画像用メモリの前記第1の書き込みポートから入力して前記データ格納領域に格納し、
前記第1の現画像用メモリから前記現画像データを読み出して前記第1の選択手段で選択すると共に、前記第1〜第N-1の参照画像用メモリの前記第1及び第2の読み出しポートから前記参照画像データを読み出して前記第3及び第4の選択手段で選択し、
前記第1の選択手段で選択した前記現画像データと、前記第3及び第4の選択手段で選択した前記参照画像と、を前記演算器で並列演算して前記差分絶対値和を求めてこの演算結果を出力し、前記演算結果から前記検出器で前記動きベクトルを検出し、前記動き検出結果を前記第1〜第N-1の参照画像用メモリの前記第2の書き込みポートから入力して前記検出結果格納領域に格納する、動きベクトル探索処理を行っている間に、
前記外部メモリから読み出された次の前記現画像データを前記第2の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのMマクロブロック分を前記第Nの参照画像用メモリに格納することを特徴とする動きベクトル探索方法。
【請求項7】
前記1マクロブロックは16×16画素の矩形領域、前記Mは3、及び、前記Nは4であることを特徴とする請求項1、3又は5記載の動きベクトル探索装置。
【請求項8】
前記1マクロブロックは16×16画素の矩形領域、前記Mは3、及び、前記Nは4であることを特徴とする請求項2、4又は6記載の動きベクトル探索方法。
【発明の詳細な説明】【技術分野】
【0001】
本発明は、ディジタル動画像・音声のコーディック(圧縮・伸張)に関する国際標準規格(ビデオコーディック規格)であるMPEG4(Moving Picture Experts Group 4)のエンコーダ等に使用される動きベクトル探索方法及びこの動きベクトル探索装置に関するものである。
【背景技術】
【0002】
従来、MPEG4エンコーダ等に使用される動きベクトル探索に関する技術としては、例えば、次のような文献に記載されるものがあった。
【0003】
【特許文献1】特開平10−42300号公報
【特許文献2】特開10−336671号方法
【特許文献3】特開2003−87799号公報
【特許文献4】特開2004−356673号公報
【非特許文献1】FUJITSU,55[6] (2004−11)富士通、中山寛・渡部康弘・萩谷太郎著「低消費電力MPEG-4ビデオコーディックコア」p.528−533
【0004】
特許文献3に記載されているように、例えば、MPEG4エンコーダにおいて、動きベクトル探索方法の例としては、フルサーチ(Full Search)法、TSS(Three Step Search)法、NTSS(New Three Step Search)法、サンプリング法、追跡型動きベクトル探索法等が知られている。
【0005】
フルサーチ法は、動きベクトル探索範囲の全探索点で、現フレーム(フレームとは、動画像データにおける画素単位である。)の輝度信号のマクロブロック(マクロブロックとは、処理対象となる画素領域の単位であり、MPEGの場合は16×16画素の矩形領域である。このマクロブロックを以下「MB」という。)の各画素のデータと参照フレームの参照ブロックの各画素のデータとの差分絶対値和(Summation of Absolute Differences、以下「SAD」という。)を算出し、SADが一番小さい参照ブロックを現フレームの輝度信号のMBと最もマッチングの良い参照ブロックとし、動きベクトルを算出する方法である。このフルサーチ法は、動きベクトル探索範囲の全画素を探索点としてブロックマッチングを行う方法であり、局部最小に陥らないため、探索精度が高く、画質の向上を図ることができるという利点を有しているが、動きベクトル探索範囲の全画素を探索点としているため、探索回数が多くなって演算量が非常に大きく、リアルタイムシステムに適用することが実際には難しいという問題点を有している。そこで、演算量を削減した動きベクトル探索方法として、TSS法、NTSS法、あるいはサンプリング法が提案されている。
【0006】
TSS法やNTSS法は、3回のステップで動きベクトルの探索を行う方法であり、サンプリング法は、所定のパターンをなす一定の画素を探索点とする方法である。このようなTSS法、NTSS法及びサンプリング法では、一定の探索範囲で、決まった探索パターンを用いるので、動きベクトル探索回数が一定となり(つまり、動きベクトル探索回数が固定され)、動きが少ない場合であっても、予め決めた探索回数で動きベクトルを求めるため、無駄な計算を行う場合がある。これを解決するために、動きベクトル探索回数を不定とする追跡型動きベクトル探索方法が提案されている。
【0007】
追跡型動きベクトル探索方法は、探索原点(参照フレームの現フレームの輝度信号のMBと同じ位置)から所定の探索パターンに従って各探索点のSADを計算し、探索パターン中心の探索点のSADが一番小さくなるまで、次の探索パターン中心をSADが一番小さい探索点に移動させることにより、動きベクトルを算出する方法である。この追跡型動きベクトル探索方法については、特許文献3の他に、非特許文献1にも記載されている。
【0008】
図2は、非特許文献1に記載された従来の追跡型動きベクトル探索方法を説明するための追跡型動き探索アルゴリズムの説明図である。
【0009】
MPEG圧縮符号化処理において、動き検出(Motion Estimation:ME)は、対象フレームの処理単位であるMB(16×16画素)に対し、参照フレームの中から最も似たブロック領域を見つけ出す処理であり、以下のような(a)ステップ1、(b)ステップ2、及び(c)ステップ3により実行される。
【0010】
(a) ステップ1
現フレーム1において既に処理されている周辺MBの動きベクトルMV1,MV2,MV3の情報から、参照フレーム2の探索領域2aにおいて探索を開始する初期探索中心を決定する。
【0011】
(b) ステップ2
参照フレーム2の探索領域2aにおいて探索中心から上下左右に1画素ずつずらした4つのMBとブロックマッチング処理を行い、最もテクスチャ(絵柄)が類似しているブロック地点に探索中心を移動させる。ブロックマッチングは、テクスチャの類似度を測るものであり、例えば、ブロック間対応画素のSADを計算し、SADが小さいほど類似度が高いと定義する。
【0012】
(c) ステップ3
探索中心のSADが最も小さくなるまで、ステップ2の処理を繰り返し、最終的に求められた探索中心を動きベクトルMVとする。
【0013】
図3は、特許文献3、4等に記載された従来の動きベクトル探索装置の一例を示す概略の構成図である。
【0014】
この動きベクトル探索装置10は、バス制御回路11、現画像用メモリ12、参照画像用メモリ13、マルチプレクサ(MUX)14、アドレス変換回路15、SAD演算器16、及び動きベクトル検出器17から構成されている。現画像用メモリ12は、現時刻の画像データの1MB分(1MBは16×16画素を示し、1画素当たり8ビットのデータ量である。)を格納するメモリ、参照画像用メモリ13は、現時刻に対して1時刻前の画像データの9MB分を格納するメモリである。動きベクトル探索装置10内のバス制御回路11は、バス20を介してメモリコントローラ21に接続され、このメモリコントローラ21に、画像データを保存するための大容量の外部メモリ22が接続されている。バス20には、MPEG4エンコーダ等を構成する他の回路が接続されてデータ転送に利用される。
【0015】
この動きベクトル探索装置10では、以下の(a)〜(f)のような動きベクトル探索処理1〜6が行われる。
【0016】
(a) 処理1
バス制御回路11により、現時刻tにおける画像データの1MB分を外部メモリ22からメモリコントローラ21を介して読み出し、現画像用メモリ12に格納する。
【0017】
(b) 処理2
バス制御回路11により、現時刻tに対して1時刻前t-1における画像データの9MB分を外部メモリ22からメモリコントローラ21を介して読み出し、参照画像用メモリ13に格納する。この9MB分は、処理1にて読み出したMBと同じ位置 (座標)の1個のMB分と、上下左右隣接する8個のMB分である。
【0018】
(c) 処理3
SAD演算器16により、処理1にて現画像用メモリ12に格納された1MB分の現画像データが読み出され、又、処理2にて参照画像用メモリ13に格納された9MB分の画像データ内において、SAD演算器16から所定の探索アルゴリズムに従って指定(選択)された1MBを示す位置情報(座標:x,y)により、マルチプレクサ14、及びアドレス変換回路15によって、1MB分の参照画像データが読み出され、現画像データと参照画像データに対して、1ライン(16画素:16×8=128ビット)毎に16回、下記の(1)式に従ったSAD演算が行われる。1個のMBのSAD値nSADが得られた時点で、動きベクトル検出器17にSAD値nSADと動きベクトルnMVが送られる。
【0019】
(d) 処理4
引き続き、追跡型動き探索アルゴリズムに従って、処理3を繰り返し実行する。
【0020】
(e) 処理5
動きベクトル検出器17にて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、バス制御回路11、及びメモリコントローラ21を介して、外部メモリ22に格納する。
【0021】
(f) 処理6
順次、現画像と参照画像を各メモリ12,13に格納し、処理3〜処理5を繰り返し、1フレーム(1画面、例えば、VGA(Video Graphics Array、グラフィックス表示の規格):640×480画素、40×30MB数)分の各MBに対する動きベクトル検出を行う。
【0022】
【数1】


【発明の開示】
【発明が解決しようとする課題】
【0023】
しかしながら、従来の図3の動きベクトル探索方法及びこの装置では、外部メモリ22から1MB分の現画像用メモリ12と9MB分の参照画像用メモリ13とへの画像データ転送後に、SAD演算等の動き探索の処理を行うため、画像サイズ大のために動き探索の処理量が大きい場合や、バス20に接続された他の回路とのアクセスの混雑度が大きい場合、データ転送が遅れて動き探索処理が遅れ、結果として画質の低下を招くという問題があった。
【0024】
この問題を解決するための一つの手法として、特許文献4の図6に記載された技術を利用し、例えば、動きベクトル探索装置10内に新たに、内部データバスと、現画像用メモリ12及び参照画像用メモリ13間のデータ転送を制御するための内部メモリ制御部と、この内部メモリ制御部等をプログラム制御するためのプログラム制御部とを設け、これらのプログラム制御部、内部メモリ制御部、現画像用メモリ12、参照画像用メモリ13、SAD演算器16及び動きベクトル検出器17を、内部データバスを介して相互に接続する。そして、プログラム制御部による制御により、現画像の画像データを格納した現画像用メモリ12から複数の現画像のMBデータを抽出して参照画像用メモリ13に内部メモリ制御部を用いて順次転送するデータ転送処理と、参照画像用メモリ13に順次転送された現画像のMBデータとこの参照画像用メモリ13に格納されている参照画像のMBデータとのSAD演算をSAD演算器16を用いて順次実行するSAD演算処理とを並行して行うことにより、動き探索の処理時間を短縮させることが考えられる。
【0025】
しかし、この手法では、新たに内部データバス、内部メモリ制御部、及びプログラム制御部を追加するので、動きベクトル探索装置10の回路規模が増大すると共に、制御プログラムが複雑化するという課題が生じ、未だ技術的に十分満足の得られる動きベクトル探索方法及び装置を実現できなかった。
【課題を解決するための手段】
【0026】
本発明の動きベクトル探索装置では、現時刻における現画像データと前記現時刻に対して1時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの1MB分を格納する第1の現画像用メモリと、動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記現画像データの1個のMB分を格納する第2の現画像用メモリと、前記第1及び第2の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか1つを選択する第1の選択手段と、前記参照画像データのM個のMB分(但し、M;2以上の整数)を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの(N-1)×M個のMB分(但し、N;2以上の整数)を格納する第1〜第N-1の参照画像用メモリとを備えている。
【0027】
更に、前記参照画像データのM個のMB分を格納するデータ格納領域を有し、前記動きベクトル探索処理期間中に、前記外部メモリから読み出された次の前記参照画像データのM個のMB分を格納する第Nの参照画像用メモリと、前記第1〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか1つを選択する第2の選択手段と、前記動きベクトル探索処理期間中に、前記第1の選択手段で選択された前記現画像データと前記第2の選択手段で選択された前記参照画像データとのSADを求める演算器と、前記動きベクトル探索処理期間中に、前記演算器で求めた前記SADに基づき動きベクトルを検出する検出器とが設けられている。
【0028】
本発明の動きベクトル探索方法では、現時刻における現画像データと前記現時刻に対して1時刻前の参照画像データとを格納する外部メモリから読み出された前記現画像データの1個のMB分をそれぞれ格納する2バンク構成の第1及び第2の現画像用メモリと、前記第1及び第2の現画像用メモリからそれぞれ読み出された前記現画像データのいずれか1つを選択する第1の選択手段と、前記参照画像データのM個のMB分(但し、M;2以上の整数)を格納するデータ格納領域をそれぞれ有し、前記外部メモリから読み出された前記参照画像データの(N-1)×M個のMB分(但し、N;2以上の整数)を格納するNバンク構成の第1〜第Nの参照画像用メモリと、前記第1〜第Nの参照画像用メモリからそれぞれ読み出された前記参照画像データのいずれか1つを選択する第2の選択手段と、前記第1の選択手段で選択された前記現画像データと前記第2の選択手段で選択された前記参照画像データとを演算してSADの演算結果を出力する演算器と、前記演算結果に基づき動きベクトルを検出する検出器とを使用する。
【0029】
そして、前記外部メモリから読み出された前記現画像データの1個のMB分を前記第1の現画像用メモリに格納すると共に、前記外部メモリから読み出された前記参照画像データの(N-1)×M個のMB分を前記第1〜第N-1の参照画像用メモリに格納し、前記第1の現画像用メモリから前記現画像データを読み出して前記第1の選択手段で選択すると共に、前記第1〜第N-1の参照画像用メモリから前記参照画像データを読み出して前記第2の選択手段で選択し、前記第1の選択手段で選択した前記現画像データと、前記第2の選択手段で選択した前記参照画像とから、前記演算器で前記SADを演算し、前記演算結果から前記検出器で前記動きベクトルを検出する、動きベクトル探索処理を行っている間に、前記外部メモリから読み出された次の前記現画像データを前記第2の現画像用メモリに格納すると共に、前記外部メモリから読み出された次の前記参照画像データのM個のMB分を前記第Nの参照画像用メモリに格納する。
【発明の効果】
【0030】
本発明の動きベクトル探索装置及び動きベクトル探索方法によれば、動き探索の処理中に、順次、現画像データと参照画像データを外部メモリから第1、第2の現画像用メモリ、及び第1〜第N-1の参照画像用メモリにそれぞれ格納しておき、画像データの転送と動き探索の処理を並列に実行することで、動きベクトル探索装置における回路規模をそれほど増大させることなく、且つ、制御プログラムを複雑化することなく、常にSAD演算を含む動き探索の処理が容易に実行可能となる。そのため、動き探索の処理量が大きい場合等でも、円滑なデータ転送によって動き探索処理が迅速に行われ、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【発明を実施するための最良の形態】
【0031】
動きベクトル探索装置は、バス制御回路、現時刻の画像データの1個のMB分を格納する現画像用メモリ、現時刻に対して1時刻前の画像データの9個のMB分を格納する参照画像用メモリ、マルチプレクサ、アドレス変換回路、SAD演算器、及び動きベクトル検出器を備え、次のような構成にしている。
【0032】
前記現画像用メモリを2バンク構成とし、この2バンク構成の現画像用メモリの出力をマルチプレクサで切り替え、前記参照画像用メモリを4バンク構成とし、この4バンク構成の参照画像用メモリの出力をマルチプレクサで切り替え可能にしている。そして、現画像データと参照画像データの画像データ保存用外部メモリからのデータ転送とSAD演算を含む動き探索の処理を並列に実行している。
【実施例1】
【0033】
(実施例1の構成)
図1は、本発明の実施例1を示す動きベクトル探索装置の概略の構成図である。
この動きベクトル探索装置30は、例えば、MPEG4エンコーダ等に使用されるモジュール構成の装置であり、バス制御回路31と、このバス制御回路31に接続され、現時刻における画像データの1MB分を格納するための2バンク構成の第1、第2の現画像用メモリ32−0,32−1と、バス制御回路31に接続され、現時刻に対して1時刻前の画像データの(N-1)×M個のMB分(例えば、N=4、M=3の9MB分)を格納するためのNバンク構成(例えば、N=4)の第1〜第4の参照画像用メモリ33−0〜33−3とを備えている。4バンク構成の第1〜第4の参照画像用メモリ33−0〜33−3は、各M個のMBデータ(例えば、M=3のMBデータ)をデータ格納領域33aに格納する128ビット出力のシングルポートメモリ(Single Port Memory)によりそれぞれ構成されている。シングルポートメモリは、一時にデータ書き込み又は読み出し動作のいずれかのみ可能なメモリであり、例えば、随時読み書き可能なメモリ(以下「RAM」という。)で構成されている。2バンク構成の第1、第2の現画像用メモリ32−0,32−1も、各1MBデータを格納する128ビット出力のシングルポートメモリによりそれぞれ構成されている。
【0034】
現画像用メモリ32−0,32−1の出力側には、第1の選択手段(例えば、128ビット×2入力且つ128ビット×1出力のマルチプレクサ(MUX))34を介して、SAD演算器37が接続され、更に、参照画像用メモリ33−0〜33−3の出力側が、第2の選択手段(例えば、128ビット×4入力且つ128ビット×1出力のマルチプレクサ(MUX))35を介して、SAD演算器37に接続されている。SAD演算器37は、アドレス変換回路36を介して参照画像用メモリ33−0〜33−3に接続され、更に、このSAD演算器37の出力側に、動きベクトル検出器38が接続されている。
【0035】
マルチプレクサ34は、SAD演算器37から与えられる切り替え信号S37により、2バンク構成の現画像用メモリ32−0,32−1の出力を切り替える回路である。マルチプレクサ35は、SAD演算器37から与えられる位置情報(座標:x,y)により、4バンク構成の参照画像用メモリ33−0〜33−3の出力を切り替える回路である。アドレス変換回路36は、SAD演算器37から与えられる位置情報(座標:x,y)をメモリアドレスに変換して参照画像用メモリ33−0〜33−3に対するアクセス箇所を指定する回路である。SAD演算器37は、切り替え信号S37及び位置情報(座標:x,y)を出力してマルチプレクサ34,35の出力データを入力し、SAD演算を行って1MBのSAD値nSAD及び動きベクトルnMVを動きベクトル検出器38へ出力する回路である。更に、動きベクトル検出器38は、1MBのSAD値nSAD及び動きベクトルnMVを入力して演算により動きベクトルMVを検出する検出部38a、及びその動きベクトルMVを格納する内部レジスタ38b等により構成されている。
【0036】
動きベクトル探索装置30内のバス制御回路31は、バス40を介して、メモリコントローラ41に接続され、このメモリコントローラ41に、画像データを保存するための外部メモリ42が接続されている。
【0037】
このように、本実施例1の動きベクトル探索装置30が従来の図3の動きベクトル探索装置10と異なる点は、現時刻における画像データの1MB分を格納する現画像用メモリ12を2バンク構成とし、この2バンク構成の現画像用メモリ32−0,32−1をマルチプレクサ34で切り替え可能とし、更に、現時刻に対して1時刻前の画像データの9MB分を格納する参照画像用メモリ13を4バンク構成とし、この4バンク構成の参照画像用メモリ33−0〜33−3をマルチプレクサ35で切り替え可能とした点である。
【0038】
(実施例1の動きベクトル探索方法)
本実施例1の動きベクトル探索装置30では、以下の(a)〜(h)のような動きベクトル探索処理1〜8が行われる。
【0039】
(a) 処理1
バス制御回路31により、現時刻tにおける画像データの1MB分をメモリコントローラ41の制御で外部メモリ42から読み出し、バス40を介して現画像用メモリ32−0に格納する。
【0040】
(b) 処理2
バス制御回路31により、現時刻tに対して1時刻前t-1における画像データの9MB分をメモリコントローラ41の制御で外部メモリ42から読み出し、バス40を介して参照画像用メモリ33−0〜33−2に格納する。この9MBは、処理1にて読み出したMBと同じ位置 (座標:x,y)のMBと上下左右隣接する8MBである。
【0041】
(c) 処理3
SAD演算器37により、処理1にて現画像用メモリ32−0に格納された1MB分の現画像データがマルチプレクサ34を介して読み出され、又、処理2にて参照画像用メモリ33−0〜33−2に格納された9MB分の画像データ内において、SAD演算器37から所定の追跡型動き探索アルゴリズムに従って指定(選択)された1MBを示す位置情報(座標:x,y)により、マルチプレクサ35及びアドレス変換回路36によって、1MB分の参照画像データが読み出され、現画像データと参照画像データに対して、1ライン(16画素:16×8=128ビット)毎に16回SAD演算が行われる。1MBのSAD値nSADが得られた時点で、SAD値nSADと動きベクトルnMVが動きベクトル検出器38へ送られる。
【0042】
(d) 処理4
引き続き所定の追跡型動き探索アルゴリズムに従って、処理3を繰返し実行する。
【0043】
(e) 処理5
処理3と処理4の動き探索の処理中に、次の現画像データを現画像用メモリ32−1に、又、参照画像データ(3MB分)を他の1バンクの参照画像用メモリ33−3に書き込んでおく。
【0044】
(f) 処理6
動きベクトル検出器38にて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、バス制御回路31、バス40、及びメモリコントローラ41を介して、外部メモリ42に格納する。
【0045】
(g) 処理7
動き探索処理中に、順次、現画像データと参照画像データを外部メモリ42から各メモリ32−0,32−1,33−0〜33−3のバンク(32−x、33−x)に格納し、画像データの転送と動き探索の処理を並列に実行する。
【0046】
(h) 処理8
処理3〜処理7を繰り返し、1フレーム分の各MBに対する動きベクトルMVの検出を行う。
【0047】
(実施例1の効果)
本実施例1によれば、動き探索の処理中に、順次、現画像データと参照画像データを外部メモリ42から各メモリ32−0,32−1,33−0〜33−3のバンク(32−x、33−x)に格納しておき、画像データの転送と動き探索の処理を並列に実行することで、動きベクトル探索装置30における回路規模をそれほど増大させることなく、且つ、制御プログラムを複雑化することなく、常にSAD演算を含む動き探索の処理が容易に実行可能となる。そのため、動き探索の処理量が大きい場合や、バス40に接続された他の回路とのバスアクセスの混雑度が大きい場合でも、円滑なデータ転送によって動き探索処理が迅速に行われ、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【実施例2】
【0048】
(実施例2の構成)
図4は、本発明の実施例2を示す動きベクトル探索装置の概略の構成図であり、実施例1を示す図1中の要素と共通の要素には共通の符号が付されている。
本実施例2の動きベクトル探索装置30Aでは、実施例1のシングルポートメモリからなるNバンク(例えば、4バンク)構成の参照画像用メモリ33−0〜33−3と、この出力を切り替える第2の選択手段(例えば、マルチプレクサ(MUX))35とに代えて、デュアルポートメモリ(Dual Port MeMory)からなるNバンク(例えば、4バンク)構成の第1〜第4の参照画像用メモリ33A−0〜33A−3と、この出力を切り替える2個の第3、第4の選択手段(例えば、マルチプレクサ(MUX))35−0,35−1とを設け、実施例1のSAD演算器37に代えて、2個のSAD演算器37−0,37−1を設け、更に、実施例1の動きベクトル検出器38に代えて、これとは構成の異なる動きベクトル検出器38Aを設けている。
【0049】
4バンク構成の参照画像用メモリ33A−0〜33A−3は、それぞれ1つの書き込みポート及び2つの第1、第2の読み出しポートを有し、それぞれM個のMBデータ(例えば、3MBデータ)をデータ格納領域33aに格納するデュアルポートメモリにより構成されている。各デュアルポートメモリは、1つの書き込みポートからのデータ書き込み動作と、2つの第1、第2の読み出しポートからの128ビット×2出力の読み出し動作とが、同時に(即ち、非同期に)行えるメモリであり、例えば、RAMで構成されている。
【0050】
2個のマルチプレクサ35−0,35−1は、それぞれ128ビット×4入力且つ128ビット×1出力の回路である。一方のマルチプレクサ35−0は、SAD演算器37−0から与えられる位置情報(座標:x,y)により、4バンク構成の参照画像用メモリ33A−1〜33A−3の出力を切り替える回路であり、この出力側がSAD演算器37−0に接続されている。他方のマルチプレクサ35−1は、SAD演算器37−1から与えられる他の位置情報(座標:x,y)により、4バンク構成の参照画像用メモリ33A−1〜33A−3の出力を切り替える回路であり、この出力側がSAD演算器37−1に接続されている。
2個のSAD演算器37−0,37−1のうち、一方のSAD演算器37−0は、切り替え信号S37−0及び位置情報(座標:x,y)を出力してマルチプレクサ34,35−0の出力データを入力し、SAD演算を行って1MBのSAD値nSAD及び動きベクトルnMVを動きベクトル検出器38Aへ出力する回路である。他方のSAD演算器37−1は、他の位置情報(座標:x,y)を出力してマルチプレクサ34,35−1の出力データを入力し、SAD演算を行って1MB分のSAD値nSAD及び動きベクトルnMVを動きベクトル検出器38Aへ出力する回路である。
【0051】
動きベクトル検出器38Aは、SAD演算器37−0,37−1から与えられる1MB分のSAD値nSAD及び動きベクトルnMVに基づく演算により動きベクトルMVを検出する検出部38a、及びその動きベクトルMVを格納する内部レジスタ38b等により構成されている。
【0052】
本実施例2の動きベクトル探索装置30Aでは、デュアルポートメモリで構成される各参照画像用メモリ33A−0〜33A−3の2つの第1、第2の読み出しポートから異なる2つのMBデータを、2個のマルチプレクサ35−0,35−1を介して読み出し、2個のSAD演算器37−0,37−1にて、異なる2つのMBデータを同時(並列)にSAD演算できる構成にしている。その他の構成は、実施例1と同様である。
【0053】
(実施例2の動きベクトル探索方法)
本実施例2の動きベクトル探索装置30Aにおいて、2バンク構成の現画像用メモリ32−0,32−1への外部メモリ42からの現画像データの書き込み、SAD演算器37−0,37−1への読み出し、及び、4バンク構成の参照画像用メモリ33A−0〜33A−3への外部メモリ42からの参照画像データの書き込み処理は、実施例1と同様に行われる。
【0054】
実施例1では、所定の追跡型動き探索アルゴリズムに従って指定された、4バンク構成の参照画像用メモリ33−0〜33−3内から1MB毎に読み出し、順次SAD演算を含む動き探索処理を行っている。これに対し、本実施例2では、4バンク構成の参照画像用メモリ33A−0〜33A−3を構成する各デュアルポートメモリの2つの第1、第2の読み出しポートから、指定された1MBと所定の追跡型動き探索アルゴリズムに従って、次に指定される1MBを同時に2個のSAD演算器37−0,37−1に読み出し、同時に2個のMBデータをSAD演算し、この演算結果を動きベクトル検出器38Aへ出力する。動きベクトル検出器38Aでは、検出部38aにて、最小のSAD値Min-SADとなる動きベクトルMVを検出し、この検出結果を内部レジスタ38bに格納すると共に、バス制御回路31、バス40、及びメモリコントローラ41を介して外部メモリ42に格納する。
【0055】
(実施例2の効果)
本実施例2によれば、4バンク構成の参照画像用メモリ33A−0〜33A−3をデュアルポートメモリにて構成し、これらの各デュアルポートメモリの2つの第1、第2の読み出しポートから異なる2つのMBデータを、2個のSAD演算器37−0,37−1にて同時に実行する構成にしている。そのため、実施例1よりも更に動き探索の処理量を増やすことができ、動き探索の処理量が大きい場合や、バス40に接続された他の回路とのバスアクセスの混雑度が大きい場合でも、画質の低下を防ぎ、結果として画質の向上に繋がるという効果が得られる。
【実施例3】
【0056】
(実施例3の構成)
図5は、本発明の実施例3を示す動きベクトル探索装置の概略の構成図であり、実施例2を示す図4中の要素と共通の要素には共通の符号が付されている。
【0057】
本実施例3の動きベクトル探索装置30Bでは、実施例2の動きベクトル探索装置30Aにおけるデュアルポートメモリからなる4バンク構成の参照画像用メモリ33A−0〜33A−3に代えて、これとは構成の異なる4バンク構成の参照画像用メモリ33B−0〜33B−3を設けている。4バンク構成の参照画像用メモリ33B−0〜33B−3は、それぞれ2つの第1、第2の書き込みポート、2つの第1、第2の読み出しポート、3MBデータを格納するデータ格納領域33a、及び動きベクトルMVの検出結果を格納する検出結果格納領域33bを有し、デュアルポートメモリにより構成されている。各デュアルポートメモリは、2つの第1、第2の書き込みポートからのデータ書き込み動作と、2つの第1、第2の読み出しポートからの128ビット×2出力の読み出し動作とが、同時に(即ち、非同期に)行えるメモリであり、例えば、RAMで構成されている。
【0058】
このように、本実施例3では、動きベクトル検出器38Aによる動きベクトルMVの検出結果を外部メモリ42へ転送すると同時に、その検出結果を実施例2のように動きベクトル検出器38Aの内部レジスタ38bに格納する構成ではなく、参照画像用メモリ33B−0〜33B−3の検出結果格納領域33bに格納する構成にしている。その他の構成は、実施例2と同様である。
【0059】
(実施例3の動きベクトル探索方法)
図6は、図5の動きベクトル検出器38Aにて検出される上及び左の動きベクトルの様子を示す模式図である。
【0060】
本実施例3の動きベクトル探索装置30Bにおいて、動き探索の処理は、実施例2と同様であるが、以下の処理が実施例2と異なる。
【0061】
実施例2では、動きベクトル検出器38A内の検出部38aにて検出した動きベクトルMVの検出結果を外部メモリ42へ転送すると同時に、内部レジスタ38bに格納している。格納には、1フレームの水平方向1ラインのMB分のレジスタが必要(例えば、VGA:640×480画素、水平方向1ライン640/16=40MB、40×2(MV)バイト=80バイト、80×8ビット=640ビット)である。
【0062】
実施例1、2では、SAD演算を行う際、図6に示すように、処理対象としているMBの上及び左の動きベクトルMV1,MV2を動きベクトル検出器38Aの内部レジスタ38bから読み出し、この動きベクトルMV1,MV2から探索する際のスタート地点を計算する。画像は、上及び左のMBの動きと似ているため、スタート地点を計算することにより、動き探索の処理量を減らすことが可能となる。
【0063】
これに対し、本実施例3では、検出部38aで検出された動きベクトMVの検出結果を、外部メモリ42へ転送すると同時に、内部レジスタ38bに格納する代わりに、デュアルポートメモリからなる参照画像用メモリ33B−0〜33B−3の検出結果格納領域33bに格納し、SAD演算を行う際に読み出す。
【0064】
(実施例3の効果)
本実施例3によれば、動きベクトルMVの検出結果を外部メモリ42へ転送すると同時に、デュアルポートメモリからなる参照画像用メモリ33B−0〜33B−3の検出結果格納領域33bに格納する構成にしている。そのため、実施例2と同様に、SAD演算を行う際、処理対象としているMBの上及び左の動きベクトルMV1,MV2から探索する際のスタート地点を計算し、探索のスタート地点を計算することにより、動き探索の処理量を減らすことができる。しかも、動きベクトル検出器38Aの内部レジスタ38bの代わりに、デュアルポートメモリからなる参照画像用メモリ33B−0〜33B−3の一部の検出結果格納領域33bへ、動きベクトルMVの検出結果を格納する構成にしているので、同じデータ量を格納する場合、レジスタよりメモリの方が面積的に小さい(例えば、面積比はレジスタ:メモリ≒6:1)ため、面積削減の効果が得られる。
【0065】
(変形例)
本発明は、上記実施例1〜3に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(1)、(2)のようなものがある。
(1) N(例えば、4)バンク構成の参照画像用メモリ33−0〜33−3,33A−0〜33A−3,33B−0〜33B−0〜33B−3は、M(例えば、3)個のMB分を格納するデュアルポートメモリであるが、NやMの個数を他の数に変更しても良い。
(2) 探索アルゴリズムは、追跡型動き探索アルゴリズム以外のアルゴリズムに変更しても良い。
【図面の簡単な説明】
【0066】
【図1】本発明の実施例1を示す動きベクトル探索装置の概略の構成図である。
【図2】従来の追跡型動きベクトル探索方法を説明するための追跡型動き探索アルゴリズムの説明図である。
【図3】従来の動きベクトル探索装置の一例を示す概略の構成図である。
【図4】本発明の実施例2を示す動きベクトル探索装置の概略の構成図である。
【図5】本発明の実施例3を示す動きベクトル探索装置の概略の構成図である。
【図6】図5の動きベクトル検出器38Aにて検出される上及び左の動きベクトルの様子を示す模式図である。
【符号の説明】
【0067】
30,30A,30B 動きベクトル探索装置
32−0,32−1 現画像用メモリ
33−0〜33−3,33A−0〜33A−3,33B−0〜33B−3
参照画像用メモリ
34,35,35−0,35−1 マルチプレクサ
36 アドレス変換回路
37,37−0,37−1 SAD演算器
38,38A 動きベクトル検出器
42 外部メモリ
【出願人】 【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
【出願日】 平成18年8月30日(2006.8.30)
【代理人】 【識別番号】100086807
【弁理士】
【氏名又は名称】柿本 恭成


【公開番号】 特開2008−60836(P2008−60836A)
【公開日】 平成20年3月13日(2008.3.13)
【出願番号】 特願2006−234299(P2006−234299)