JP2007110602A - 動きベクトル検出装置 - Google Patents
動きベクトル検出装置 Download PDFInfo
- Publication number
- JP2007110602A JP2007110602A JP2005301554A JP2005301554A JP2007110602A JP 2007110602 A JP2007110602 A JP 2007110602A JP 2005301554 A JP2005301554 A JP 2005301554A JP 2005301554 A JP2005301554 A JP 2005301554A JP 2007110602 A JP2007110602 A JP 2007110602A
- Authority
- JP
- Japan
- Prior art keywords
- difference value
- pixel
- value sum
- search
- storage register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
【課題】比較的広い探索範囲から所定フレームの符号化対象画素ブロックに対する動きベクトルを検出する場合に、当該動きベクトルの検出処理に必要なレジスタの個数を従来に比して低減可能な構成の動きベクトル検出装置を提供する。
【解決手段】動きベクトル検出装置100を、動きベクトルの探索範囲に対して設定される探索ポイント数よりも少ない数の差分値和格納レジスタ140a0〜140anと、差分値和の最小値を格納する1つの最小値格納レジスタ140bとを含んだ構成とし、差分値和格納レジスタ数の差分値和の演算処理を並列に行い、この演算結果がそれぞれ対応する差分値和格納レジスタ140a0〜140anに格納される毎に、これら差分値和と最小値格納レジスタに格納された差分値和とを比較し、最小値格納レジスタの差分値和をこれらのうちの最小値にする処理を行う。
【選択図】 図1
【解決手段】動きベクトル検出装置100を、動きベクトルの探索範囲に対して設定される探索ポイント数よりも少ない数の差分値和格納レジスタ140a0〜140anと、差分値和の最小値を格納する1つの最小値格納レジスタ140bとを含んだ構成とし、差分値和格納レジスタ数の差分値和の演算処理を並列に行い、この演算結果がそれぞれ対応する差分値和格納レジスタ140a0〜140anに格納される毎に、これら差分値和と最小値格納レジスタに格納された差分値和とを比較し、最小値格納レジスタの差分値和をこれらのうちの最小値にする処理を行う。
【選択図】 図1
Description
本発明は、比較的広い探索範囲から所定フレームの符号化対象画素ブロックに対する動きベクトルを検出する動きベクトル検出装置に関する。
従来、MPEG(Motion Picture Experts Group)規格等の動画像圧縮において、連続する複数フレームで構成される動画像の所定フレームにおける符号化対象の画素ブロックに対する動きベクトルを検出して符号化効率を高める技術がある。具体的には、動画像を形成するそれぞれが時間的に離れたフレーム間で、一方のフレーム内の符号化対象のブロックと、他方のフレーム内のサーチエリア(参照画素の範囲)における候補ブロックとのブロックマッチングを行い、相関の最も高いブロックのフレーム内の相対位置を動きベクトルとして検出する。このような技術として、例えば、特許文献1に記載の動きベクトル検出回路及び特許文献2に記載の演算回路がある。
特許文献1の従来技術は、広範囲のサーチエリアを対象とした動きベクトルの検出処理を行う回路であって、M×N個の演算ユニットを用いて、符号化対象ブロックと候補ブロックとのマッチング演算を並列処理する検出回路である。回路構成としては、参照画素データを基準に符号化対象画素データをシフトレジスタを用いて逐次比較し、演算ユニットの出力をそれぞれの差分演算結果レジスタに格納する。
また、特許文献2の従来技術は、符号化対象の画素ブロックと、M×N個の探索候補の画素ブロックとに対して、符号化対象の画素ブロックと探索候補の画素ブロックとの差分絶対値和を演算するM×N個の演算ユニットを備え、当該M×N個の演算ユニットを行列状に配置して相互接続し、符号化対象の画素ブロック及び探索候補の画素ブロックの画素値を一定の順序で供給して動きベクトルの検出処理を行う演算回路である。このような構成とすることで、演算ユニットにおいて、探索候補の画素ブロックの画素値をレジスタに格納することなく差分絶対値和の計算を行うことができるので、回路規模を縮小することが可能となる。
特開平10−13837号公報
特開平6−141304号公報
しかしながら、上記特許文献1の従来技術においては、演算ユニットの出力をそれぞれの差分演算結果レジスタに格納しているため、シフトレジスタや演算結果格納用レジスタが演算対象画素数必要となり、広範囲のサーチエリアを設定した場合に、回路の規模及び回路の製造コストが増加するという問題があった。
また、上記特許文献2の従来技術においても、広範囲のサーチエリアを設定した場合に、探索候補の画素ブロック数(M×N個)が増加するため、差分演算用のシフトレジスタ回路と中間演算データを格納するレジスタが増加分に応じた個数必要となり、回路規模及び回路コストが増加するという問題が生じる。
また、上記特許文献2の従来技術においても、広範囲のサーチエリアを設定した場合に、探索候補の画素ブロック数(M×N個)が増加するため、差分演算用のシフトレジスタ回路と中間演算データを格納するレジスタが増加分に応じた個数必要となり、回路規模及び回路コストが増加するという問題が生じる。
そこで、本発明は、このような従来の技術の有する未解決の課題に着目してなされたものであって、比較的広い探索範囲から所定フレームの符号化対象画素ブロックに対する動きベクトルを検出する場合に、当該動きベクトルの検出処理に必要なレジスタの個数を従来に比して低減可能な構成の動きベクトル検出装置を提供することを目的としている。
〔形態1〕 上記目的を達成するために、形態1の動きベクトル検出装置は、
連続する複数フレームによって構成される動画像の所定フレームにおける、縦M個×横N個の符号化対象の画素(M,Nは自然数)から構成される符号化対象画素ブロックと、当該符号化対象画素ブロックと時間の隔たったフレームにおける縦J個×横K個の画素(J,Kは自然数)から構成される前記符号化対象画素ブロックよりも多い画素数の探索範囲画素ブロックとに基づき、ブロックマッチング法を用いて前記符号化対象画素ブロックに対する動きベクトルを検出する動きベクトル検出装置であって、
予め設定された探索ポイント情報に基づき、前記探索範囲画素ブロックから縦M個×横N個の画素から構成される探索候補画素ブロックを選択する探索候補画素ブロック選択手段と、
前記符号化対象画素ブロックの各画素の画素値と、当該各画素に対応する前記選択した探索候補画素ブロックの各画素の画素値との差分値の絶対値を演算すると共に、当該差分値の絶対値を累積して差分値和を演算する差分値和演算手段と、
前記探索範囲画素ブロックに対する前記探索ポイントの総数よりも少数の、前記差分値和を格納する差分値和格納レジスタと、
前記差分値和の最小値を格納する最小値格納レジスタと、
前記差分値和格納レジスタに格納された差分値和と、前記最小値格納レジスタに格納された差分値和とを比較して、前記差分値和格納レジスタに格納された差分値和の方が前記最小値格納レジスタに格納された差分値和よりも小さい値であったときに、前記最小値格納レジスタに格納された差分値和を前記差分値和格納レジスタに格納された差分値和に更新する最小値更新手段と、を備え、
前記最小値更新手段は、所定の前記差分値和格納レジスタに前記差分値和が格納される毎に、前記最小値格納レジスタの更新処理を行うことを特徴としている。
連続する複数フレームによって構成される動画像の所定フレームにおける、縦M個×横N個の符号化対象の画素(M,Nは自然数)から構成される符号化対象画素ブロックと、当該符号化対象画素ブロックと時間の隔たったフレームにおける縦J個×横K個の画素(J,Kは自然数)から構成される前記符号化対象画素ブロックよりも多い画素数の探索範囲画素ブロックとに基づき、ブロックマッチング法を用いて前記符号化対象画素ブロックに対する動きベクトルを検出する動きベクトル検出装置であって、
予め設定された探索ポイント情報に基づき、前記探索範囲画素ブロックから縦M個×横N個の画素から構成される探索候補画素ブロックを選択する探索候補画素ブロック選択手段と、
前記符号化対象画素ブロックの各画素の画素値と、当該各画素に対応する前記選択した探索候補画素ブロックの各画素の画素値との差分値の絶対値を演算すると共に、当該差分値の絶対値を累積して差分値和を演算する差分値和演算手段と、
前記探索範囲画素ブロックに対する前記探索ポイントの総数よりも少数の、前記差分値和を格納する差分値和格納レジスタと、
前記差分値和の最小値を格納する最小値格納レジスタと、
前記差分値和格納レジスタに格納された差分値和と、前記最小値格納レジスタに格納された差分値和とを比較して、前記差分値和格納レジスタに格納された差分値和の方が前記最小値格納レジスタに格納された差分値和よりも小さい値であったときに、前記最小値格納レジスタに格納された差分値和を前記差分値和格納レジスタに格納された差分値和に更新する最小値更新手段と、を備え、
前記最小値更新手段は、所定の前記差分値和格納レジスタに前記差分値和が格納される毎に、前記最小値格納レジスタの更新処理を行うことを特徴としている。
このような構成であれば、探索候補画素ブロック選択手段によって、予め設定された探索ポイント情報に基づき、前記探索範囲画素ブロックから縦M個×横N個の画素から構成される探索候補画素ブロックを選択することが可能であり、差分値和演算手段によって、前記符号化対象画素ブロックの各画素の画素値と、当該各画素に対応する前記選択した探索候補画素ブロックの画素の画素値との差分値の絶対値を演算すると共に、当該差分値の絶対値を累積して差分値和を演算することが可能である。
また、最小値更新手段によって、前記探索範囲画素ブロックに対する前記探索ポイントの総数よりも少数の、前記差分値和を格納する差分値和格納レジスタに格納された差分値和と、前記差分値和の最小値を格納する最小値格納レジスタに格納された差分値和とを比較して、前記差分値和格納レジスタに格納された差分値和の方が前記最小値格納レジスタに格納された差分値和よりも小さい値であったときに、前記最小値格納レジスタに格納された差分値和を前記差分値和格納レジスタに格納された差分値和に更新することが可能である。
そして、最小値更新手段は、所定の前記差分値和格納レジスタに差分値和が格納される毎に、前記最小値の更新処理を行うことが可能である。
従って、例えば、各差分値和格納レジスタに探索ポイントを振り分けたとして、各探索ポイントに対応した探索候補画素ブロックに対する差分値和が、複数の差分値和格納レジスタに対して並列に演算され、その演算結果が各差分値和格納レジスタに格納される毎に、この格納された差分値和と最小値格納レジスタに格納された差分値和とを比較して上記最小値の更新処理を行うようにすることで、複数の探索ポイントに対応した探索候補画素ブロックに対して、同じ差分値和格納レジスタを使い回すことが可能となるので、差分値和格納レジスタの個数を従来に比して少数に抑えることが可能となる。これにより、装置の回路規模を縮小できると共に、装置の製造コストを削減できるという効果が得られる。
従って、例えば、各差分値和格納レジスタに探索ポイントを振り分けたとして、各探索ポイントに対応した探索候補画素ブロックに対する差分値和が、複数の差分値和格納レジスタに対して並列に演算され、その演算結果が各差分値和格納レジスタに格納される毎に、この格納された差分値和と最小値格納レジスタに格納された差分値和とを比較して上記最小値の更新処理を行うようにすることで、複数の探索ポイントに対応した探索候補画素ブロックに対して、同じ差分値和格納レジスタを使い回すことが可能となるので、差分値和格納レジスタの個数を従来に比して少数に抑えることが可能となる。これにより、装置の回路規模を縮小できると共に、装置の製造コストを削減できるという効果が得られる。
ここで、上記符号化対象画素ブロックは、各画素行を構成する画素数がM個で、各画素列を構成する画素数がN個の画素行列から構成されており、上記探索範囲画素ブロックは、各画素行を構成する画素数がJ個で、各画素列を構成する画素数がK個の画素行列から構成されており、両者の関係は、「J>M,K>N」、「J>M,K≧N」、「J≧M,K>N」のいずれかとなる。
また、上記符号化対象画素ブロックと上記探索候補画素ブロックとは、同じ行数及び同じ列数(各行及び各列の画素数も同数)の画素行列となる。
また、上記ブロックマッチング法とは、動きベクトルを検出する手法の一つであり、画像中のある大きさの領域をテンプレートのブロック(探索候補画素ブロック)とし、前フレームの探索範囲のブロック(探索範囲画素ブロック)における評価対象のテンプレートブロックと現フレームの注目ブロック(符号化対象画素ブロック)との差分評価関数の値(差分値和)を最小とする点を対応点とする手法である。つまり、この最小となる点が動きベクトルとなる。ブロックマッチング法においては、 最小点を求める上で、探索範囲のブロック(テンプレートブロックよりも大きな範囲のブロック)における、評価対象のテンプレートブロックの全パターンに対して注目ブロックとの差分評価関数の値を求めることが望ましいが、このやり方であると探索範囲のブロックサイズが大きくなればなるほどブロックマッチングの処理負荷が大きくなってしまうので、探索範囲のブロックサイズが大きい場合などは、ある程度間引いてテンプレートブロックを設定することで処理負荷を軽くしている。
また、上記ブロックマッチング法とは、動きベクトルを検出する手法の一つであり、画像中のある大きさの領域をテンプレートのブロック(探索候補画素ブロック)とし、前フレームの探索範囲のブロック(探索範囲画素ブロック)における評価対象のテンプレートブロックと現フレームの注目ブロック(符号化対象画素ブロック)との差分評価関数の値(差分値和)を最小とする点を対応点とする手法である。つまり、この最小となる点が動きベクトルとなる。ブロックマッチング法においては、 最小点を求める上で、探索範囲のブロック(テンプレートブロックよりも大きな範囲のブロック)における、評価対象のテンプレートブロックの全パターンに対して注目ブロックとの差分評価関数の値を求めることが望ましいが、このやり方であると探索範囲のブロックサイズが大きくなればなるほどブロックマッチングの処理負荷が大きくなってしまうので、探索範囲のブロックサイズが大きい場合などは、ある程度間引いてテンプレートブロックを設定することで処理負荷を軽くしている。
また、上記探索ポイント情報とは、例えば、探索範囲画素ブロックにおける各探索候補画素ブロックの開始位置(これを、探索ポイントという)を決定する情報であり、例えば、探索ポイントを示すアドレス情報等が登録されたデータテーブルであったり、公知のスパイラル探索法のアルゴリズム(例えば、公知のログアリスミックサーチアルゴリズム等)などの探索ポイントを決定するアルゴリズムの情報であったりする。例えば、探索候補画素ブロック選択手段が、探索範囲画素ブロックに対して、探索候補画素ブロックの左上隅の画素の位置を画素行方向に対して1画素毎、画素列方向に対して1画素毎にずらしながらM×Nの探索候補画素ブロックを順番に選択する場合に、各探索候補画素ブロックの左上隅の画素データのアドレス等が探索ポイントを示す情報となる。
また、上記差分値和演算手段は、例えば、本発明が差分値和格納レジスタを1つ備える構成の場合は、各探索ポイントの探索候補画素ブロックに対して1つずつ順番に差分値和の演算処理を行ったり、例えば、本発明が差分値和格納レジスタを複数備える構成の場合は、複数の差分値和格納レジスタに対応する探索ポイントの差分値和演算処理を並列で行ったり、または複数の差分値和格納レジスタにおける所定数の差分値和格納レジスタに対応する探索ポイント毎に順番に差分値和演算処理を行ったりするなど、差分値和格納レジスタの個数、差分値和の演算を行う演算ユニットの個数などに応じた演算性能を有するものである。
〔形態2〕 更に、形態2の動きベクトル検出装置は、形態1の動きベクトル検出装置において、
前記差分値和格納レジスタを、前記探索範囲画素ブロックにおける画素行方向又は画素列方向の各固定位置に対してそれぞれ設定される探索ポイントの、各画素行又は各画素列における設定数だけ備え、
前記各差分値和格納レジスタを、そのそれぞれが互いに重複しないように同じ前記固定位置に対応する探索ポイントのグループ毎にそれぞれ1対1に対応させ、
前記差分値和演算手段は、前記各画素行又は各画素列に設定された前記複数の探索ポイントに対する差分値和の演算処理を並列に行うようになっていることを特徴としている。
前記差分値和格納レジスタを、前記探索範囲画素ブロックにおける画素行方向又は画素列方向の各固定位置に対してそれぞれ設定される探索ポイントの、各画素行又は各画素列における設定数だけ備え、
前記各差分値和格納レジスタを、そのそれぞれが互いに重複しないように同じ前記固定位置に対応する探索ポイントのグループ毎にそれぞれ1対1に対応させ、
前記差分値和演算手段は、前記各画素行又は各画素列に設定された前記複数の探索ポイントに対する差分値和の演算処理を並列に行うようになっていることを特徴としている。
このような構成であれば、本装置を構成する差分値和格納レジスタが、探索範囲画素ブロックにおける画素行方向又は画素列方向の各行又は各列の所定位置に設定される探索ポイント数だけあれば済むので、特に、処理の高速化等のために、画素行方向又は画素列方向に対して所定画素数毎に間引いて探索ポイントが設定される場合などにおいて、差分値和格納レジスタの個数を従来に比して少数に抑えることが可能となる。これにより、装置の回路規模を縮小できると共に、装置の製造コストを削減できるという効果が得られる。また、複数の探索ポイントに対する差分値和の演算処理を並列に行うことが可能となるので、差分値和演算処理の処理速度を高速化することができるという効果が得られる。
ここで、上記各画素行又は各画素列における設定数とは、具体的に、各画素行毎又は各画素列毎に設定される探索ポイント数のことである。例えば、5行の画素行から構成される探索範囲画素ブロックの各画素行毎に、探索ポイントが5個ずつ(計25個)設定されている場合は、5個の差分値和格納レジスタで本装置を構成する。一方、5行の画素行に対して、1行目は探索ポイントが4つ、2行目は探索ポイントが5つ、3行目〜5行目は探索ポイントが3つといったように行毎に探索ポイントの設定数が異なる場合は(探索ポイントの合計は4+5+3×3=18個)、2行目が探索ポイントが5つと設定数が一番多いので、装置を構成する差分値和格納レジスタの個数を5個とすることが好ましい。
〔形態3〕 更に、形態3の動きベクトル検出装置は、形態1又は2の動きベクトル検出装置において、
前記差分値和演算手段は、前記符号化対象画素ブロックにおける各画素行毎又は各画素列毎に順番に前記差分値和の演算処理を行うようになっており、
前記符号化対象画素ブロックの前記各画素行又は前記各画素列を構成する画素の総ビット数を、前記各差分値和格納レジスタに対応する画素のデータを前記差分値和演算手段に伝送するデータ伝送バスのデータ伝送ビット数と同じビット数にしたことを特徴としている。
前記差分値和演算手段は、前記符号化対象画素ブロックにおける各画素行毎又は各画素列毎に順番に前記差分値和の演算処理を行うようになっており、
前記符号化対象画素ブロックの前記各画素行又は前記各画素列を構成する画素の総ビット数を、前記各差分値和格納レジスタに対応する画素のデータを前記差分値和演算手段に伝送するデータ伝送バスのデータ伝送ビット数と同じビット数にしたことを特徴としている。
このような構成であれば、符号化対象画素ブロックの各画素行又は各画素列を構成する画素のデータ(データ伝送バスのバス幅(バスの最大伝送ビット数)と同じビット数)を一遍に伝送することが可能となるので、データ伝送バスの伝送能力を効率よく利用でき、上記した並列処理等を併用することで、差分値和演算処理の処理速度を高速化することができるという効果が得られる。
〔形態4〕 更に、形態4の動きベクトル検出装置は、形態1乃至3のいずれか1の動きベクトル検出装置において、
前記差分値和演算手段は、前記差分値の絶対値に代えて差分値の自乗値を演算し、当該差分値の自乗値を累積して前記差分値和を演算することを特徴としている。
このような構成であれば、差分値の自乗値を累積した差分値和を用いて、動きベクトルを検出することが可能である。
前記差分値和演算手段は、前記差分値の絶対値に代えて差分値の自乗値を演算し、当該差分値の自乗値を累積して前記差分値和を演算することを特徴としている。
このような構成であれば、差分値の自乗値を累積した差分値和を用いて、動きベクトルを検出することが可能である。
従って、差分値の自乗値を累積した差分値和を用いた場合においても、装置の回路規模を縮小できると共に、装置の製造コストを削減できるという効果が得られる。
以下、本発明の実施の形態を図面に基づき説明する。図1〜図9は、本発明に係る動きベクトル検出装置の実施の形態を示す図である。
本発明に係る動きベクトル検出装置は、現フレームの符号化対象画素ブロックである対象画素データと、1つ前のフレームの探索候補画素ブロックである参照画素データにおける探索候補画素ブロックとに対して、ブロックマッチング法を用いて両者の誤差が最小となる探索候補画素ブロックを探索し、当該探索した画素データに基づき対象画素データに対する動きベクトルを検出する構成とした。
本発明に係る動きベクトル検出装置は、現フレームの符号化対象画素ブロックである対象画素データと、1つ前のフレームの探索候補画素ブロックである参照画素データにおける探索候補画素ブロックとに対して、ブロックマッチング法を用いて両者の誤差が最小となる探索候補画素ブロックを探索し、当該探索した画素データに基づき対象画素データに対する動きベクトルを検出する構成とした。
まず、本発明に係る動きベクトル検出装置の構成を図1に基づき説明する。図1は、本発明に係る動きベクトル検出装置100の構成を示すブロック図である。
動きベクトル検出装置100は、連続する複数フレームによって構成される動画像における所定フレームの符号化対象画素ブロックに対する動きベクトルを検出する装置であって、図1に示すように、プロセッサ10と、中間バッファ12と、動き検出部14と、データ伝送バス16とを含んだ構成となっている。
動きベクトル検出装置100は、連続する複数フレームによって構成される動画像における所定フレームの符号化対象画素ブロックに対する動きベクトルを検出する装置であって、図1に示すように、プロセッサ10と、中間バッファ12と、動き検出部14と、データ伝送バス16とを含んだ構成となっている。
プロセッサ10は、動きベクトル検出装置100全体を制御するものであり、図示しない命令メモリの所定アドレスに記憶された命令コードを、図示しない命令キャッシュを介して取得しつつ、動きベクトル検出処理全般を管理する。具体的には、レジスタ14bを介して命令コードに応じた指示を制御部14aに与え(例えば、レジスタ14bへのフラグの書き込みなど)、制御部14aに、動き検出部14の各部に指示信号(起動制御信号あるいはモード設定信号等)を出力させたりする。ここで、前記起動制御信号とは、動き検出部14の各部を所定タイミングで起動させる指示信号であり、前記モード設定信号とは、動画像の各フレーム毎に、動きベクトル検出処理における探索範囲、フレームの圧縮タイプ(P,B,I)、圧縮モード(MPEG1,2,4)等、プロセッサ10のメモリ内プログラムにより、レジスタ14bを介して動き検出部14の各構成部に対して種々の指定を行う指示信号である。
ここで、命令メモリは、プロセッサ10に対して入力される種々の命令コードを記憶しており、プロセッサ10からの読み出しに応じて、指定されたアドレスの命令コードを命令キャッシュに出力する。
また、命令キャッシュは、命令メモリから入力された命令コードを一時的に記憶し、所定タイミングでプロセッサ10に出力する。
また、命令キャッシュは、命令メモリから入力された命令コードを一時的に記憶し、所定タイミングでプロセッサ10に出力する。
中間バッファ12は、動きベクトル検出処理において用いられる、当該動きベクトルの探索範囲の画素ブロックである参照画素データを記憶するメモリであり、例えば、2次元アクセスメモリ等から構成される。
ここで、参照画素データは、後述する現フレーム(f)の符号化対象の画素データである対象画素データに対して1つ前のフレーム(f−1)の画像の画素データであり、且つ前記対象画素データのサイズよりも大きなサイズ(画素範囲)の画素データである。
ここで、参照画素データは、後述する現フレーム(f)の符号化対象の画素データである対象画素データに対して1つ前のフレーム(f−1)の画像の画素データであり、且つ前記対象画素データのサイズよりも大きなサイズ(画素範囲)の画素データである。
また、上記2次元アクセスメモリとは、特開2002−222117号公報に記載された方式のメモリであり、例えば、「1バイト(8ビット)の記憶が可能な最小単位の仮想の記憶素子2が、縦方向と横方向にそれぞれ4個ずつ合計16個配置された仮想最小2次元メモリ空間1」(同公報の図1参照)が想定され、この仮想最小2次元メモリ空間1は、「物理的には、4つの物理的なメモリ4A〜4Cに予め分割されてマッピングされている。すなわち、1つの仮想最小2次元メモリ空間1は、4つの物理的なメモリ4A〜4Cの同一のアドレスから始まる4バイトの連続領域に対応している。」(同公報の図2参照)。そして、このような仮想最小2次元メモリ空間1において、同公報の図4に示すようなアクセスが可能とされている。これにより、例えば、複数の探索ポイントに対するデータに同時にアクセスすることができるので、データの読み出しや書き込み処理を高速化することが可能である。
更に、図2に基づき、上記参照画素データ及び上記対象画素データについて具体的に説明する。ここで、図2(a)は、参照画素データの一構成例を示す図であり、(b)は、対象画素データの一構成例を示す図であり、(c)は、参照画素データの詳細な構成の一例を示す図である。
図2(b)に示すように、現フレーム(f)の画像データである画像データ31において、前述した符号化対象の画素データである対象画素データ31aが設定される。これに対して、図2(a)に示すように、1つ前のフレーム(f−1)の画像データである画像データ30において、対象画素データ31aに対する動きベクトルを探索する範囲である参照画素データ30aが設定される。つまり、図2(a),(b)に示すように、現フレームにおける対象画素データ31aと同じ位置にある、1つ前のフレームにおける画素ブロック30bが含まれるように参照画素データの範囲が設定される。より具体的には、参照画素データ30aは、図2(c)に示すように、画素ブロック30bが、縦16画素×横16画素のブロックで構成されているとすると、縦256画素×横256画素のサイズで構成される。つまり、参照画素データ30aは、対象画素データ31aと同じサイズの縦16画素×横16画素のサイズの画素ブロックが、縦4ブロック×横4ブロックの計16ブロック連なった範囲となる。
図2(b)に示すように、現フレーム(f)の画像データである画像データ31において、前述した符号化対象の画素データである対象画素データ31aが設定される。これに対して、図2(a)に示すように、1つ前のフレーム(f−1)の画像データである画像データ30において、対象画素データ31aに対する動きベクトルを探索する範囲である参照画素データ30aが設定される。つまり、図2(a),(b)に示すように、現フレームにおける対象画素データ31aと同じ位置にある、1つ前のフレームにおける画素ブロック30bが含まれるように参照画素データの範囲が設定される。より具体的には、参照画素データ30aは、図2(c)に示すように、画素ブロック30bが、縦16画素×横16画素のブロックで構成されているとすると、縦256画素×横256画素のサイズで構成される。つまり、参照画素データ30aは、対象画素データ31aと同じサイズの縦16画素×横16画素のサイズの画素ブロックが、縦4ブロック×横4ブロックの計16ブロック連なった範囲となる。
また、本実施の形態においては、対象画素データの各画素行又は各画素列を構成する画素の総ビット数は、後述するデータ伝送バスの幅(伝送ビット数)と同じビット数となるようにしている。これは、後述する差分値和の演算処理において、中間バッファ12に格納された参照画素データを効率よく動き検出部14に伝送する事を考慮している。
図1に戻って、動き検出部14は、制御部14aと、レジスタ14bと、ローカルバッファ14cと、差分値和演算部14dとを含んだ構成となっている。
図1に戻って、動き検出部14は、制御部14aと、レジスタ14bと、ローカルバッファ14cと、差分値和演算部14dとを含んだ構成となっている。
制御部14aは、データ伝送バス16を介してプロセッサ10から送られてきた各種指示信号を、レジスタ14bを介して各構成要素に伝送したり、中間バッファ12に格納された参照画素データを読み出して、差分値和演算部14dに伝送したりするなど(例えば、DMA(Direct Memory Access)転送で行う)、動き検出部14を統括制御する機能を有したものである。また、差分値和演算部14で演算された差分値和の最小値及びその探索ポイント情報からアドレス値演算を行って動きベクトルを求め、当該動きベクトルをレジスタ14bの所定のレジスタに格納する機能なども有している。
ここで、探索ポイント情報とは、参照画素データにおける各探索候補画素ブロックの位置を示す情報のことであり、本実施の形態においては、各探索候補画素ブロックの左上隅の画素の位置を示す情報(例えば、アドレス番号等)などが探索ポイント情報となる。
レジスタ14bは、プロセッサ10がデータ伝送バス16を介してアクセス可能な制御レジスタであり、参照画素データの画素行方向又は画素列方向に対して設定される各探索ポイント数nと同数の前記差分値和の演算結果を格納する(中間演算結果も格納する)演算結果格納レジスタ140a0〜140anと、差分値和の最小値を格納する1つの最小値格納レジスタ140bとを含んだ構成となっている。更に、参照画素データの位置情報(アドレス)、演算開始の情報等を格納するレジスタなども含んだ構成となっている。
レジスタ14bは、プロセッサ10がデータ伝送バス16を介してアクセス可能な制御レジスタであり、参照画素データの画素行方向又は画素列方向に対して設定される各探索ポイント数nと同数の前記差分値和の演算結果を格納する(中間演算結果も格納する)演算結果格納レジスタ140a0〜140anと、差分値和の最小値を格納する1つの最小値格納レジスタ140bとを含んだ構成となっている。更に、参照画素データの位置情報(アドレス)、演算開始の情報等を格納するレジスタなども含んだ構成となっている。
ローカルバッファ14cは、動きベクトル検出処理において用いられる、現フレーム(f)の画像の画素データである符号化処理対象の画素データ(対象画素データ)を記憶するメモリである。なお、MPEGなどの画像符号化技術においては、この対象画素データを構成する画素ブロック(例えば、16画素×16画素など)をマクロブロックと呼ぶ。
差分値和演算部14dは、制御部14aからの演算開始命令に基づき、参照画素データにおける探索候補画素ブロックの画素値と、対象画素データの画素値との差分値和を演算すると共に、この演算結果に基づき、各対象画素データ毎に、当該対象画素データに対する全探索候補画素ブロックのうち差分値和が最小となる探索候補画素ブロックを検出する機能を有している。
差分値和演算部14dは、制御部14aからの演算開始命令に基づき、参照画素データにおける探索候補画素ブロックの画素値と、対象画素データの画素値との差分値和を演算すると共に、この演算結果に基づき、各対象画素データ毎に、当該対象画素データに対する全探索候補画素ブロックのうち差分値和が最小となる探索候補画素ブロックを検出する機能を有している。
ここで、探索候補画素ブロックとは、参照画素データにおける、動きベクトルの探索候補の画素ブロックであり、対象画素データと同じサイズの画素ブロックである。つまり、差分値和演算部14dは、参照画素データにおいて設定された複数の探索候補画素ブロックの各画素値と、対象画素データの各画素値との差分値和を演算し且つ当該差分値和に基づいてこれらの最小値を求める。
また、差分値和の演算処理は、具体的には、中間バッファから、参照画素データにおける前記演算開始命令の指定する複数の探索ポイント(本実施の形態においては、参照画素データにおける所定の画素行にそれぞれ設定された探索ポイント)に対応した探索候補画素ブロックの画素データを読み出し、当該読み出した画素データと、ローカルバッファ14cから読み出した対象画素データの画素データとに基づき、各探索候補画素ブロックの画素データの画素値と、これに対応する対象画素データの画素データの画素値との差分値の絶対値又は自乗値を算出し、当該算出した差分値又は自乗値を各探索候補画素ブロック毎に全て累積して差分値和を演算する処理である。このとき、複数(n個)の探索ポイントに対する差分値和の演算処理は並列に行われ、これらの演算結果は、上記演算結果格納レジスタ140a0〜140anにそれぞれ格納される。
そして、演算結果格納レジスタ140a0〜140anに差分値和が格納されると、これら各演算結果格納レジスタ140a0〜140anに格納された差分値和と、上記最小値格納レジスタ140bに格納された差分値和とをそれぞれ比較し、演算結果格納レジスタ140a0〜140anのいずれか1の差分値和が、最小値格納レジスタ140bの差分値和よりも小さいときは、最小値格納レジスタ140bの差分値和を前記いずれか1の差分値和に更新し、そうでないときは、最小値格納レジスタの差分値和をそのまま保持する。この更新処理が完了すると、演算結果格納レジスタだけをリセットし、最小値格納レジスタの値はそのままで、次の、画素行又は画素列に対して設定された探索ポイントに対して上記差分値和の演算処理及び上記最小値の更新処理を実行する。
このように、探索ポイントの設定された画素行又は画素列毎に、上記差分値和の演算処理及び上記最小値の更新処理を順次行い、参照画素データに対して設定された全ての探索ポイントに対して処理が完了すると、そのときに最小値格納レジスタ140bに格納されている差分値和をレジスタ14bに格納する。
データ伝送バス16は、プロセッサ10からの指示信号や、中間バッファ12の参照画素データ等を動き検出部14に伝送したり、動き検出部14の演算結果等をプロセッサ10に伝送するためのデータ伝送路であり、複数のバスにそれぞれの伝送を分割しても良い。
データ伝送バス16は、プロセッサ10からの指示信号や、中間バッファ12の参照画素データ等を動き検出部14に伝送したり、動き検出部14の演算結果等をプロセッサ10に伝送するためのデータ伝送路であり、複数のバスにそれぞれの伝送を分割しても良い。
更に、図3に基づき、動き検出部14における動きベクトル検出処理の流れを説明する。図3は、動き検出部14における動きベクトル検出処理を示すフローチャートである。
動きベクトル検出処理は、レジスタ14bを介してプロセッサ10から送られてくる演算命令に応じて、動き検出部14で実行される処理であって、制御部14bからの指示に応じて、図3に示すように、まずステップS100に移行する。
動きベクトル検出処理は、レジスタ14bを介してプロセッサ10から送られてくる演算命令に応じて、動き検出部14で実行される処理であって、制御部14bからの指示に応じて、図3に示すように、まずステップS100に移行する。
ステップS100では、制御部14aからリセット信号を差分値和演算部14dに送信して差分値和演算部14dを構成する演算ユニット(具体的には、演算ユニットの有するレジスタやカウンタ等)をリセットしてステップS102に移行する。
ステップS102では、差分値和演算部14dにおいて、制御部14aからの演算開始指示があったか否かを判定し、演算開始指示があったと判定された場合(Yes)は、ステップS104に移行し、そうでない場合(No)は、制御部14aからの演算開始命令を受信するまで待機する。
ステップS102では、差分値和演算部14dにおいて、制御部14aからの演算開始指示があったか否かを判定し、演算開始指示があったと判定された場合(Yes)は、ステップS104に移行し、そうでない場合(No)は、制御部14aからの演算開始命令を受信するまで待機する。
ステップS104に移行した場合は、差分値和演算部14dにおいて、レジスタ14bに対してリセット信号を送り、演算結果格納レジスタ140a0〜140an及び最小値格納レジスタ140bを初期化してステップS106に移行する。ここで、演算結果格納レジスタ140a0〜140anの初期値として「0」を格納し、一方、最小値格納レジスタ14bの初期値として、当該レジスタ14bに格納できる値の最大値(又は十分大きな値)を格納する。これにより、最小値格納レジスタ140bの初期値が常に最小値となってしまうような値となるのを避ける。
ステップS106では、差分値和演算部14dにおいて、演算処理用のレジスタに、制御部14aからの中間バッファ12から読み出された参照画素データ、当該参照画素データのライン番号及び探索ポイント情報が書き込まれたか否かを判定し、書き込まれたと判定された場合(Yes)は、ローカルバッファ14cから、前記書き込まれた参照画素データのライン番号に対応したラインの対象画素データを読み出してステップS108に移行し、そうでない場合(No)は、書き込まれるまで待機する。ここで、探索ポイント情報は、各探索候補画素ブロックの左上隅の画素データのアドレス(例えば、画像全体に対するアドレスなど)に対応付けて設定された通し番号などとする。
ステップS108に移行した場合は、差分値和演算部14dにおいて、ローカルバッファ14cから、対象画素データの読み出しが終了したか否かを判定し、終了したと判定された場合(Yes)は、ステップS110に移行し、そうでない場合(No)は、終了するまで処理を続行する。
ステップS110に移行した場合は、差分値和演算部14dにおいて、対象画素データのポイント値(画素のアドレスなど)を読み込んでステップS112に移行する。
ステップS110に移行した場合は、差分値和演算部14dにおいて、対象画素データのポイント値(画素のアドレスなど)を読み込んでステップS112に移行する。
ステップS112では、ステップS108で読み出された対象画素データから、上記書き込まれた探索ポイント情報及びライン番号の参照画素データ(Lineデータ)に対応したLineのデータを読み出してステップS114に移行する。
ステップS114では、差分値和演算部14dにおいて、上記読み出した参照画素データのLineデータの画素データと、対象画素データのLineデータの画素データとの差分値和を演算してステップS116に移行する。
ステップS114では、差分値和演算部14dにおいて、上記読み出した参照画素データのLineデータの画素データと、対象画素データのLineデータの画素データとの差分値和を演算してステップS116に移行する。
ステップS116では、差分値和演算部14dにおいて、各探索ポイント情報に対する差分値和の演算処理が完了したか否かを判定し、完了したと判定された場合(Yes)はステップS118に移行し、そうでない場合(No)は、ステップS112に移行する。
ステップS118に移行した場合は、各探索ポイント情報に対応する探索候補画素ブロックの差分値和の演算結果及び探索ポイント情報を、演算結果格納レジスタ140a0〜140anのうち各対象画素データの探索ポイント情報に対応したレジスタに格納してステップS120に移行する。
ステップS118に移行した場合は、各探索ポイント情報に対応する探索候補画素ブロックの差分値和の演算結果及び探索ポイント情報を、演算結果格納レジスタ140a0〜140anのうち各対象画素データの探索ポイント情報に対応したレジスタに格納してステップS120に移行する。
ステップS120では、差分値和演算部14dにおいて、演算結果格納レジスタ140a0〜140anに格納された差分値和と、最小値格納レジスタ140bに格納された差分値和とをそれぞれ比較してステップS122に移行する。
ステップS122では、演算結果格納レジスタ140a0〜140anのいずれかに格納された差分値和よりも、最小値格納レジスタ140bに格納された差分値和の方が大きいか否かを判定し、大きいと判定された場合(Yes)は、ステップS124に移行し、そうでない場合(No)は、ステップS126に移行する。
ステップS122では、演算結果格納レジスタ140a0〜140anのいずれかに格納された差分値和よりも、最小値格納レジスタ140bに格納された差分値和の方が大きいか否かを判定し、大きいと判定された場合(Yes)は、ステップS124に移行し、そうでない場合(No)は、ステップS126に移行する。
ステップS124に移行した場合は、差分値和演算部14dにおいて、最小値格納レジスタ140bに格納された差分値和を、演算結果格納レジスタ140a0〜140anのいずれかに格納された差分値和の最小値に更新してステップS126に移行する。
ステップS126では、差分値和演算部14dにおいて、参照画像データに対して設定された全ての探索ポイントに対して差分値和の演算処理及び最小値の更新処理が終了したか否かを判定し、終了したと判定された場合(Yes)は、ステップS128に移行し、そうでない場合(No)は、ステップS104に移行する。
ステップS126では、差分値和演算部14dにおいて、参照画像データに対して設定された全ての探索ポイントに対して差分値和の演算処理及び最小値の更新処理が終了したか否かを判定し、終了したと判定された場合(Yes)は、ステップS128に移行し、そうでない場合(No)は、ステップS104に移行する。
ステップS128に移行した場合は、差分演算部14dにおいて、最小値格納レジスタに格納された差分値和及び探索ポイント番号を制御部14aに通知して処理を終了する。
次に、図4〜図9に基づき、本実施の形態の動作を説明する。
ここで、図4は、探索候補画素ブロック及び対象画素データの詳細な画素構成を示す図である。また、図5(a)は、差分値和の演算処理の流れを示す図であり、(b)は、各Lineデータ間の演算処理の一例を示す図である。また、図6は、参照画素データに対して設定された探索ポイントと、各探索ポイントに対応した演算結果格納レジスタの構成を示す図である。また、図7は、差分値和演算部14dにおける演算処理部の具体的な構成を示す図である。また、図8(a)は、演算結果格納レジスタの構成を示す図であり、(b)は、最小値格納レジスタの構成を示す図である。また、図9は、ログアリスミックサーチの探索アルゴリズムを示す図である。
次に、図4〜図9に基づき、本実施の形態の動作を説明する。
ここで、図4は、探索候補画素ブロック及び対象画素データの詳細な画素構成を示す図である。また、図5(a)は、差分値和の演算処理の流れを示す図であり、(b)は、各Lineデータ間の演算処理の一例を示す図である。また、図6は、参照画素データに対して設定された探索ポイントと、各探索ポイントに対応した演算結果格納レジスタの構成を示す図である。また、図7は、差分値和演算部14dにおける演算処理部の具体的な構成を示す図である。また、図8(a)は、演算結果格納レジスタの構成を示す図であり、(b)は、最小値格納レジスタの構成を示す図である。また、図9は、ログアリスミックサーチの探索アルゴリズムを示す図である。
なお、ここでは、図2(a)に示す探索候補画素ブロック30b及び図2(b)に示す対象画素データ31aのサイズを、図4に示すように、縦16画素×横16画素のサイズとし、各画素を8bitの画素データで構成する。また、参照画素データのサイズは、図2(c)に示すように、縦16画素×横16画素のサイズの画素ブロックを縦4ブロック×横4ブロック連ねた構成とした。また、画素データの差分値和演算部14dへの伝送処理及び差分値和演算部14dにおける各演算処理は、対象画素データ及び探索候補画素ブロックの画素行単位で行うこととする。また、図4に示すように、対象画素データ及び探索候補画素ブロックの各画素行に対して、それぞれライン番号としてLine0〜Line15を対応付けることとする。つまり、各ラインの画素データの総ビット数は16画素×8bit=128bitとなる。また、ここでは、データ伝送バス16のバス幅は128bitとする。
動き検出部14は、プロセッサ10からの演算開始命令をレジスタ14bを介して受け取ると、制御部14aにおいて、リセット信号を差分値和演算部14dに送信し、当該差分値和演算部14dの有する演算ユニットをリセットする(ステップS100)。次に、差分値和演算部14dは、演算処理が開始されると(ステップS102の「Yes」の分岐)、レジスタ14bに対して演算結果格納レジスタ140a0〜140anに対して格納値を「0」にリセットするリセット信号を送り、一方、最小値格納レジスタ140bに対して格納値を「最大値」にリセットするリセット信号を送って、これらのレジスタを初期化する(ステップS104)。
演算結果格納レジスタ140a0〜140an及び最小値格納レジスタ140bが初期化されると、制御部14bは、中間バッファ12に格納された参照画素データから各探索ポイント番号及び各ライン番号に対応した参照画素データを読み出し、これを差分値和演算部14dの有する演算用のレジスタに書き込む。これによって、差分値和演算部14dは、参照画素データが書き込まれたと判定し(ステップS106の「Yes」の分岐)、次いで、ローカルバッファ14cから参照画素データのライン番号に対応するラインの対象画素データを読み込み(ステップS108の「Yes」の分岐)、更に、対象画素データに対応するポイント値(画素のアドレス)を読み込む(ステップS110)。つまり、図5(a)に示すように、中間バッファ12から、参照画素データにおける探索ポイントに対応した探索候補画素ブロックのLine0の画素データ(128bit)が読み出され、これがデータ伝送バス16及び制御部14aを介して差分値和演算部14dに書き込まれると、ローカルバッファ14cから、対象画素データのLine0に対応したLine0の画素データ(128bit)が読み出され、これが差分値和演算部14dに書き込まれる。
そして、探索候補画素ブロック及び対象画素データにおけるLine0の画素データ同士で差分値演算をうと共にこれら差分値の絶対値を求め、更に、これら差分値の絶対値を累積してLine0の差分値和を演算する(ステップS114)。より具体的には、図5(b)に示すように、Line0の対象画素データにおける各画素列の画素データを左から順にMp00〜Mp015とし、同様にLine0の探索候補画素ブロックの画素データにおける各画素列の画素データをCp00〜Cp015とすると、図中の楕円で囲った組合せのように同じ列の画素毎に、差分値及び当該差分値の絶対値を演算し、この演算結果を全て足し合わせる(累積する)。例えば、1列目のMp00とCp00との場合は、その差分絶対値和は|Mp00−Cp00|となる。このような差分絶対値和の演算を、Mp015及びCp015の組まで行い、これらの差分値和を累積する。このLine0の累積結果をDAC0とすると、Line1は、DAC0+|Mp10−Cp10|+|Mp11−Cp11|・・・+|Mp114−Cp114|+|Mp115−Cp115|といったように、Line1の累積結果にそれ以前のLine(Line0)の累積結果も足し合わせる。つまり、このような演算処理をLine0〜Line15まで順次行うと、Line15の演算結果は、DAC0+DAC1+・・・+DAC14+|Mp150−Cp150|+|Mp151−Cp151|・・・+|Mp1514−Cp1514|+|Mp1515−Cp1515|となる。
上記のような差分値和の演算処理を繰り返し、画素行方向に設定された複数の探索ポイント(演算結果格納レジスタと同数の探索ポイント)に対応した探索候補画素ブロックと、対象画素データとの差分値和の演算処理が完了すると(ステップS116の「Yes」の分岐)、これら演算結果を、それぞれの探索ポイント番号に対応する演算結果格納レジスタ140a0〜140anに格納する(ステップS118)。本実施の形態においては、探索ポイントを指定するためのデータテーブルや探索アルゴリズム等に基づいて、演算結果格納レジスタ140a0〜140anには、予め参照画素データの探索ポイント番号が割り振られている。ここでは、図6に示すように、探索ポイントが設定された各画素行における各探索ポイントの左から順に、例えば、Line0であれば、左から1番目の探索ポイントに対応する探索ポイント番号(0,0)を演算結果レジスタ140a0に、2番目の探索ポイント番号(0,1)を140a1に、3番目の探索ポイント番号(0,2)を140a2に・・・n番目の探索ポイント番号(0,n)を140anに、といったように割り振っていく(図では「n=4」まで)。つまり、各画素行の探索ポイントが同じ列幅で設定されているとすると、演算結果格納レジスタ140a0には、(0,0)〜(m(m≦15),0)が、演算結果格納レジスタ140a1には、(0,1)〜(m(m≦15),1)が、演算結果格納レジスタ140a2には、(0,2)〜(m(m≦15),2)が、演算結果格納レジスタ140a3には、(0,3)〜(m(m≦15),3)が、演算結果格納レジスタ140a4には、(0,4)〜(m(m≦15),4)が、それぞれ割り振られることになる。
ここで、探索ポイントは、1画素行ずつ且つ1画素列ずつずらす毎に設定(全探索候補に対して設定)するのでは無く、設定対象の各画素行又は各画素列に対して、各探索ポイント間に所定画素列又は所定画素行の探索ポイントを設定しない領域を設けるように設定する。つまり、間引き探索を行う。
また、図6に示す例の場合は、動きベクトル検出装置100を、演算結果格納レジスタを5つ備えた構成とすれば、参照画素データにおける差分値和の最小値を求めることが可能である。つまり、本発明に係る動きベクトル検出装置100は、参照画素データに対する全探索ポイント数の差分値和格納レジスタを必要とせず、図6の例に示すように、各画素行の探索ポイント数が一定数であれば、この探索ポイント数分の差分値和格納レジスタを備えた構成とすれば良い。
また、図6に示す例の場合は、動きベクトル検出装置100を、演算結果格納レジスタを5つ備えた構成とすれば、参照画素データにおける差分値和の最小値を求めることが可能である。つまり、本発明に係る動きベクトル検出装置100は、参照画素データに対する全探索ポイント数の差分値和格納レジスタを必要とせず、図6の例に示すように、各画素行の探索ポイント数が一定数であれば、この探索ポイント数分の差分値和格納レジスタを備えた構成とすれば良い。
更に、差分値和演算部14dは、探索ポイントが設定されている各画素行毎に、各探索ポイントに対応した探索候補画素ブロックに対する上記演算処理を並列に行う。つまり、参照画素データのLine0に対しては、探索ポイント番号(0,0)〜(0,4)の5つの探索候補画素ブロックに対する演算処理を並列に行う。探索ポイント番号(0,0)〜(0,4)に対する演算処理が終了すると、これらの演算結果を演算結果格納レジスタ140a0(図ではSAD0)〜140a4(図ではSAD4)にそれぞれ格納する。
更に、演算結果格納レジスタ140a0〜140anに演算結果が格納されると、図7に示すように、これら演算結果格納レジスタ140a0〜140anにそれぞれ格納された差分値和と、最小値格納レジスタ140bに格納された差分値和とを比較し(ステップS120)、最小値格納レジスタ140bに格納された差分値和の方が、演算結果格納レジスタ140a0〜140anのいずれかに格納された、これらの差分値和の最小値よりも大きい場合は(ステップS122の「Yes」の分岐)、最小値格納レジスタ140bの格納内容を更新する(ステップS124)。
演算結果格納レジスタ140a0〜140anには、図8(a)に示すように、探索ポイント番号及び演算結果である差分値和を格納するようになっており、最小値の更新処理前においては、最前の演算結果及びその探索ポイント番号が格納されている。一方、最小値格納レジスタ140bには、図8(b)に示すように、探索ポイント番号及び演算結果最小値である差分値和の最小値を格納するようになっており、最小値の更新処理前においては、現時点における演算結果格納レジスタ140a0〜140anに格納されている演算結果の演算が行われる前の差分値和の最小値が格納されている。
例えば、最前の演算処理において、レジスタ140a0に格納された差分値和が、演算結果格納レジスタ140a1〜140anよりも小さな値で、且つ最小値格納レジスタに格納された差分値和よりも小さい値の場合は、最小値格納レジスタ140bに格納された差分値和に代えて、レジスタ140a0に格納された差分値和を格納する。つまり、差分値和の書き換え(更新)を行う。
上述したような演算処理及び最小値更新処理を、参照画素データに対して、データテーブルや探索アルゴリズム等に基づいて予め設定された全探索ポイントに対して完了すると(ステップS126の「Yes」の分岐)、この時点で最小値格納レジスタ140bに格納されている探索ポイント番号及び差分値和を、参照画素データに対する差分値和の最小値のデータとして制御部14aに通知して処理を終了する(ステップS128)。
制御部14aは、差分値和演算部14dから最小の差分値和及びその探索ポイント番号を取得すると、この探索ポイント番号に基づき中間バッファ12のアドレス値演算を行い、演算結果のアドレス値をレジスタ14bに書き込む。ここで、探索ポイント番号には、探索候補画素ブロックの左上隅のアドレスが対応付けられており、制御部14aは、これによりアドレス値演算を行い動きベクトル(対象画素の移動方向及び移動距離)を求める。
なお、参照画素データに対する探索ポイントの設定に、図9に示すような、ログアリスミックサーチアルゴリズムを用いても良い。ここで、ログアリスミックサーチの具体的な探索手順は、図9に示すように、まず、参照画素データ全体に対して差分値和の最小値(図中の(1,1))を求め、次いで、その最小値の対象画素データを中心とした上下左右に所定画素の範囲である全体に対して探索範囲を狭めた参照画素データにおける最小値を求める。この範囲における最小値が求まったら、更に、この最小値の対象画素データを中心とした更に探索範囲狭めた参照画素データにおける最小値を求めて、この最小値を最終的な探索結果とする。ログアリスミックサーチは、探索を進めるにつれ、各画素行又は各画素列に設定される探索ポイント数が減少するため、各画素行毎に差分値和の演算を並列に行っていくためには、探索ポイント数が最大数の画素行又は画素列に合わせて、動きベクトル検出装置の構成を、この最大数の差分値和格納レジスタを有する構成とすることが好ましい。
以上、動きベクトル検出装置100を、参照画素データにおける各画素行又は各画素列に設定された探索ポイント数の差分値和格納レジスタ140a0〜140anを備え、且つ差分値和の最小値和を格納する最小値格納レジスタ140bを備えた構成とし、更に、各画素行又は各画素列に設定された探索ポイントに対する差分値和の演算処理を並列に行うと共に、この探索ポイントに対する差分値和が差分値和格納レジスタ140a0〜140anに格納される毎に、最小値の更新処理を行う構成としたので、従来に比して、差分値和を格納するレジスタの個数を少なくすることができ、これにより、回路規模を縮小できるので装置の製造コストを削減することが可能である。
また、差分値和の演算処理において、対象画素データのサイズを1画素を8bitの画素データとした、16画素×16画素のサイズとし、更に、画素データの転送を、各画素行毎(データ伝送バスのバス幅である128bit単位)に行う構成としたので、これにより、データ伝送バスの性能を最大限用いて効率よく伝送処理を行うことが可能となる。
上記実施の形態において、差分値和演算部14dは、形態1乃至4のいずれか1の差分値和演算手段、並びに形態1の最小値更新手段に対応する。
上記実施の形態において、差分値和演算部14dは、形態1乃至4のいずれか1の差分値和演算手段、並びに形態1の最小値更新手段に対応する。
また、上記実施の形態において、プロセッサ10及び制御部14aによる探索ポイント番号、ライン番号及び当該探索ポイント番号及びライン番号に対応した参照画素データの書き込み処理は、形態1の探索候補画素ブロック選択手段に対応する。
また、上記実施の形態において、参照画素データは、形態1又は2の探索範囲画素ブロックに対応し、対象画素データは、形態1又は3の符号化対象画素ブロックに対応する。
また、上記実施の形態において、参照画素データは、形態1又は2の探索範囲画素ブロックに対応し、対象画素データは、形態1又は3の符号化対象画素ブロックに対応する。
なお、上記実施の形態においては、差分値和演算部14dにおいて、差分値の絶対値を演算し、これを累積して差分値和を演算するようにしたが、これに限らず、例えば、差分値の自乗値を演算し、これを累積して差分値和を求めるようにするなど、他の方法で差分値和を演算するようにしても良い。また、差分値和と同等の性質を持つ数値であれば、他の数値を演算するようにしても良い。
また、上記実施の形態においては、動きベクトル検出装置100を複数の差分値和格納レジスタを有する構成とし、これらレジスタに対応する探索ポイントの演算処理を複数並列に行うようにしたが、これに限らず、差分値和格納レジスタを1つ有する構成とし、各探索ポイントに対する演算処理を順次行う構成としても良い。この場合も、差分値和格納レジスタに差分値和が格納される毎に、最小値更新処理を行う。
また、上記実施の形態においては、MPEGの符号化技術を例として説明しているが、これに限らず、本発明は、他の動画像符号化技術に対しても適用可能である。
100…動きベクトル検出装置、10…プロセッサ、12…中間バッファ、14…動き検出部、14a…制御部、14b…レジスタ、14c…ローカルバッファ、14d…差分値和演算部、16…データ伝送バス、30a…参照画素データ、31a…対象画素データ、140a0〜140an…差分値和格納レジスタ、140b…最小値格納レジスタ
Claims (4)
- 連続する複数フレームによって構成される動画像の所定フレームにおける、縦M個×横N個の符号化対象の画素(M,Nは自然数)から構成される符号化対象画素ブロックと、当該符号化対象画素ブロックと時間の隔たったフレームにおける縦J個×横K個の画素(J,Kは自然数)から構成される前記符号化対象画素ブロックよりも多い画素数の探索範囲画素ブロックとに基づき、ブロックマッチング法を用いて前記符号化対象画素ブロックに対する動きベクトルを検出する動きベクトル検出装置であって、
予め設定された探索ポイント情報に基づき、前記探索範囲画素ブロックから縦M個×横N個の画素から構成される探索候補画素ブロックを選択する探索候補画素ブロック選択手段と、
前記符号化対象画素ブロックの各画素の画素値と、当該各画素に対応する前記選択した探索候補画素ブロックの各画素の画素値との差分値の絶対値を演算すると共に、当該差分値の絶対値を累積して差分値和を演算する差分値和演算手段と、
前記探索範囲画素ブロックに対する前記探索ポイントの総数よりも少数の、前記差分値和を格納する差分値和格納レジスタと、
前記差分値和の最小値を格納する最小値格納レジスタと、
前記差分値和格納レジスタに格納された差分値和と、前記最小値格納レジスタに格納された差分値和とを比較して、前記差分値和格納レジスタに格納された差分値和の方が前記最小値格納レジスタに格納された差分値和よりも小さい値であったときに、前記最小値格納レジスタに格納された差分値和を前記差分値和格納レジスタに格納された差分値和に更新する最小値更新手段と、を備え、
前記最小値更新手段は、所定の前記差分値和格納レジスタに前記差分値和が格納される毎に、前記最小値格納レジスタの更新処理を行うことを特徴とする動きベクトル検出装置。 - 前記差分値和格納レジスタを、前記探索範囲画素ブロックにおける画素行方向又は画素列方向の各固定位置に対してそれぞれ設定される探索ポイントの、各画素行又は各画素列における設定数だけ備え、
前記各差分値和格納レジスタを、そのそれぞれが互いに重複しないように同じ前記固定位置に対応する探索ポイントのグループ毎にそれぞれ1対1に対応させ、
前記差分値和演算手段は、前記各画素行又は各画素列に設定された前記複数の探索ポイントに対する差分値和の演算処理を並列に行うようになっていることを特徴とする請求項1記載の動きベクトル検出装置。 - 前記差分値和演算手段は、前記符号化対象画素ブロックにおける各画素行毎又は各画素列毎に順番に前記差分値和の演算処理を行うようになっており、
前記符号化対象画素ブロックの前記各画素行又は前記各画素列を構成する画素の総ビット数を、前記各差分値和格納レジスタに対応する画素のデータを前記差分値和演算手段に伝送するデータ伝送バスのデータ伝送ビット数と同じビット数にしたことを特徴とする請求項1又は請求項2記載の動きベクトル検出装置。 - 前記差分値和演算手段は、前記差分値の絶対値に代えて差分値の自乗値を演算し、当該差分値の自乗値を累積して前記差分値和を演算することを特徴とする請求項1乃至請求項3のいずれか1項に記載の動きベクトル検出装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005301554A JP2007110602A (ja) | 2005-10-17 | 2005-10-17 | 動きベクトル検出装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005301554A JP2007110602A (ja) | 2005-10-17 | 2005-10-17 | 動きベクトル検出装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007110602A true JP2007110602A (ja) | 2007-04-26 |
Family
ID=38036076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005301554A Pending JP2007110602A (ja) | 2005-10-17 | 2005-10-17 | 動きベクトル検出装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007110602A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010011150A (ja) * | 2008-06-27 | 2010-01-14 | Mitsubishi Electric Corp | 動きベクトル検出装置および動画像符号化装置 |
JP2010026571A (ja) * | 2008-07-15 | 2010-02-04 | Oki Semiconductor Co Ltd | 画像処理装置及び画像処理方法 |
-
2005
- 2005-10-17 JP JP2005301554A patent/JP2007110602A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010011150A (ja) * | 2008-06-27 | 2010-01-14 | Mitsubishi Electric Corp | 動きベクトル検出装置および動画像符号化装置 |
JP2010026571A (ja) * | 2008-07-15 | 2010-02-04 | Oki Semiconductor Co Ltd | 画像処理装置及び画像処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101520027B1 (ko) | 움직임 추정 방법 및 장치 | |
JP2004508639A (ja) | 画像のマッチング | |
US20060002472A1 (en) | Various methods and apparatuses for motion estimation | |
JP4405516B2 (ja) | 長方形状動き検索 | |
US7002587B2 (en) | Semiconductor device, image data processing apparatus and method | |
US6668020B2 (en) | Method for motion estimation in video coding | |
CN109727187B (zh) | 用于调整多个感兴趣区域数据的存储位置的方法和装置 | |
KR102311798B1 (ko) | 다중 객체 추적 방법 및 장치 | |
JP6461029B2 (ja) | 時系列データ圧縮装置 | |
US11321092B1 (en) | Tensor-based memory access | |
JP4597103B2 (ja) | 動きベクトル探索方法及び装置 | |
JP4377693B2 (ja) | 画像データ検索 | |
JP2007110602A (ja) | 動きベクトル検出装置 | |
JP4695124B2 (ja) | 動画像符号化における動き探索装置 | |
CN110289861B (zh) | 半精度压缩感知采样方法 | |
JP2002152750A (ja) | 動きベクトル検出方法および装置 | |
JP4488805B2 (ja) | 動きベクトル検出装置および方法 | |
JP2007123989A (ja) | 動きベクトル検出装置 | |
JP3310525B2 (ja) | デジタルデータ処理装置 | |
JP2000287214A (ja) | 動き検出方法および装置 | |
JP2009055291A (ja) | 動き検出回路 | |
JP2001285874A (ja) | 動きベクトル探索装置、方法及びプログラムを記録した記録媒体 | |
JP4935705B2 (ja) | 動き補償に伴う更新領域検出装置 | |
JP6918661B2 (ja) | 符号化装置、符号化方法及びプログラム | |
JP4144601B2 (ja) | 演算処理回路、データ格納回路、演算処理装置、演算処理方法、データ格納方法、および、演算結果格納読み出し方法 |