JP3611507B2 - 動きベクトル検出装置 - Google Patents

動きベクトル検出装置 Download PDF

Info

Publication number
JP3611507B2
JP3611507B2 JP2000160829A JP2000160829A JP3611507B2 JP 3611507 B2 JP3611507 B2 JP 3611507B2 JP 2000160829 A JP2000160829 A JP 2000160829A JP 2000160829 A JP2000160829 A JP 2000160829A JP 3611507 B2 JP3611507 B2 JP 3611507B2
Authority
JP
Japan
Prior art keywords
motion vector
data
vector detection
pixel
unit
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.)
Expired - Fee Related
Application number
JP2000160829A
Other languages
English (en)
Other versions
JP2001339725A (ja
Inventor
満希 有田
俊一 九郎丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2000160829A priority Critical patent/JP3611507B2/ja
Priority to US09/866,928 priority patent/US6885705B2/en
Publication of JP2001339725A publication Critical patent/JP2001339725A/ja
Priority to US10/990,386 priority patent/US7133453B2/en
Priority to US11/023,529 priority patent/US7099393B2/en
Application granted granted Critical
Publication of JP3611507B2 publication Critical patent/JP3611507B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation

Description

【0001】
【発明の属する技術分野】
本発明は、画像圧縮処理に関するものであり、特に、画像通信を目的とした低ビットレート向けの規格であるH.261、H.263、MPEG4等に適用可能な動きベクトル検出処理に関するものである。
【0002】
【従来の技術】
現在、H.261、H.263、MPEG4等、画像通信を目的とした低ビットレート向けの規格では、フレーム間の相互を用いた圧縮のために動きベクトルの検出を行う。この動きベクトル検出処理は、一般に、現画像内の複数の画素からなるブロックを処理対象とし、この処理対象ブロックが、当該現画像に対する時間的に前の画像のどの位置に存在するかをいわゆるブロックマッチング法により調べ、画像の動きの方向、及び量を示す動きベクトルを検出するものである。
【0003】
図31は、従来の一般的な動きベクトル検出処理を説明するための説明図である。図において、処理対象ブロックTとは、NX×NY画素からなる現画像内の符号化の対象となるブロックであり、参照領域とは、処理対象ブロックTと同一空間位置近傍で、且つ当該処理対象ブロックよりも大きい、MX×MY画素からなる前画像の探索領域である。また、参照ブロックIとは、NX×NY画素からなる前記参照領域上の任意の位置におけるブロックである。
【0004】
一般的な、ブロックマッチング法による動きベクトル検出は、処理対象ブロックTと、参照領域内の参照ブロックIとの比較を行い、処理対象ブロックTと最もマッチングの取れている参照ブロックIの位置を求める。その後、前記処理対象ブロックTの位置と、前記参照領域内の最もマッチングが取れている参照ブロックIの位置との間の距離、及び方向を動きベクトルとして検出する。なお、処理対象ブロックTと参照ブロックIとのマッチングは、以下に示す数式(1)に示すような、ブロックを構成する画素が有する画素値の差分の絶対値の和である絶対差分誤差和を用いることにより行われる。
【0005】
絶対差分誤差和=Σ|Ref(Mx+x,My+y)−Src(x,y)|・・・(1)
ここで、数式(1)の式中のRef(Mx+x,My+y)は、参照ブロックの画素位置を示し、Src(x,y)は処理対象ブロックの画素位置を表わす。
また、より正確な動きベクトルを検出したい場合には、参照領域の画素データ間の位置における画素値を補間処理を行うことにより求め、当該位置について処理対象ブロックとのマッチングを行う場合もある。
【0006】
【発明が解決しようとする課題】
前述した絶対差分誤差和の計算は、処理対象ブロックを構成するNX×NY画素の画素値の差分の絶対値の和であり、同様の処理を参照領域内のすべての参照ブロックに行うことは、膨大な計算量が必要となる。
【0007】
通常、ある探索位置における絶対差分誤差和の値が比較的大きな場合には、絶対差分誤差和の計算途中で既に最小の絶対差分誤差和の値を超えてしまう。そのため、当該探索領域の位置を動きベクトルを検出する探索位置の候補から除外できるにもかかわらず、無駄な演算を実行していたため、演算速度や消費電力の点においてロスが発生していた。
【0008】
また、動きベクトルは、一般的に動きベクトルの探索を行った処理対象ブロックの周辺では、ほとんど変化が見られないことが多く、特に、高解像度の画像が要求されない場合においても、周辺ブロックに対しても同様に動きベクトルの探索が行われており、演算速度や消費電力の点においてロスが発生していた。
【0009】
一方、このロスを解消する為に、専用演算機構を用いて演算する前に、汎用演算機構で変化の有無を調べてから探索を実行するか否かを決定する場合があるが、この場合は、汎用演算部に負荷を負わせてしまう。
【0010】
また、一方、この負荷を解消するために、一回のみ絶対差分誤差和を算出する機能を専用演算部に持たせた場合、もし、変化が無く探索の必要が無いときは、改めて専用演算機構を動作させ、その結果を得るのは、演算速度、消費電力の点でロスが発生していた。
【0011】
また、処理対象ブロックに対する参照ブロックの探索は、例えば、処理対象ブロックの周囲参照ブロックに対して絶対差分誤差和が最小となる方向に進めていく場合、一旦、探索した参照ブロックに対して、2重に探索する場合が有り、演算速度や消費電力の点においてロスが発生していた。
【0012】
また、絶対差分誤差和は、ブロックを構成する全ての画素に対して、その画素値の差分の絶対値の和を求めることにより算出されるため、高解像度の映像が要求されない場合であっても必要以上の演算を行い、演算速度や消費電力の点においてロスが発生する。
【0013】
また、このロスを解消するために、ブロックを構成する画素に対して、一列置き等にサブサンプリングを行い、演算量を軽減するものもあるが、この場合には、動きベクトル検出のために使用される画素データが読込んだ画素データのうちの一部となるため、せっかく読込んだ、動きベクトル検出に使用されない他の画素データを破棄することになり、消費電力の点でロスが発生する。
【0014】
また、処理対象ブロックの位置が画像データの有効領域範囲の端の位置に来たとき、参照領域内には、動きベクトル探索を実行できない領域が混在しているため、この領域にデータを転送しても探索に活用されずに、消費電力の点でロスが発生していた。
【0015】
また、近隣の処理対象ブロックの参照領域同士には、オーバーラップする領域が存在するため、各処理ブロックの探索毎に参照領域全体の画素データを本専用演算部に読み込むのは、演算速度、消費電力の点でロスが発生していた。
【0016】
また、処理ブロックの位置が画像データの有効領域範囲の端に来たとき、動きベクトルの位置によっては、演算に使用する参照領域の画像データが有効領域範囲内から出てしまい、動きベクトル探索ができないという問題点を有していた。
【0017】
また、補間処理を行い参照ブロックを構成する画素間の位置における画素値を求める場合には、一般に、参照ブロックを構成する画素データの読み出しを一方向の読み出し方向をもって、読み出していたため、たとえば、横方向に画素データを読み出したときには、縦方向の画素間の位置における画素値を求めるために、縦方向の補間処理に必要な画素が揃うまで、数サイクル待つことが必要となり、演算速度の点でロスが発生していた。
【0018】
本発明は、前記問題点に鑑みてなされたものであり、動きベクトル検出処理の高速化、低電力化を図ることができる動きベクトル検出装置を提供することを目的とする。
【0019】
【課題を解決するための手段】
前述した問題点を解決するために、本発明の請求項1に記載の動きベクトル検出装置は、現画像内の複数の画素からなる処理対象ブロックと、当該現画像に対して時間的に前となる前画像の所定の参照領域データ内の複数の画素からなる参照ブロックとの間で、ブロックマッチングを行い動きベクトルを検出する動きベクトル検出装置において、前記処理対象ブロック、及び前記参照領域データのアドレスを生成する第1のアドレス生成部と、前記第1のアドレス生成部により指示された参照領域データを保持する第1の記憶部と、前記第1のアドレス生成部により指示された処理対象ブロックのデータを保持する第2の記憶部と、前記第1の記憶部、及び前記第2の記憶部から出力するデータのアドレスを生成する第2のアドレス生成部と、前記第1の記憶部より出力されたデータ、及び第2の記憶部より出力されたデータを用いて動きベクトルを検出する動きベクトル検出部とを具備し、前記第2のアドレス生成部は、横方向の画素アドレスをカウントするロウカウンタと、縦方向のアドレスをカウントするカラムカウンタと、画素データのアドレスを保持するアドレス保持部とを有し、前記カラムカウンタのカウント値のLSB(最下位ビット)の反転値を画素データのアドレスに加算することにより、前記参照ブロック及び前記処理対象ブロックの画像イメージに対する画素並びに対して市松模様となるようにサブサンプリングすることを特徴とするものである。
【0026】
また、本発明の請求項に記載の動きベクトル検出装置は、請求項1に記載の動きベクトル検出装置において、前記動きベクトル検出部は、前記第1の記憶部から出力されたデータ、及び第2の記憶部から出力されたデータより整数精度の動きベクトルを検出する整数精度動きベクトル検出部であることを特徴とするものである。
【0027】
また、本発明の請求項に記載の動きベクトル検出装置は、請求項1に記載の動きベクトル検出装置において、前記動きベクトル検出部は、前記第1の記憶部からの出力データを入力とし、少数精度の画素データを生成する補間画素生成部と、前記補間画素生成部から出力されたデータ、及び第2の記憶部から出力されたデータより少数精度の動きベクトルを検出する少数精度動きベクトル検出部とからなることを特徴とするものである。
【0028】
また、本発明の請求項に記載の動きベクトル検出装置は、請求項1に記載の動きベクトル検出装置において、前記動きベクトル検出部は、前記第1の記憶部から出力されたデータ、及び第2の記憶部から出力されたデータより整数精度の動きベクトルを検出する整数精度動きベクトル検出部と、前記第1の記憶部からの出力データを入力とし、少数精度の画素データを生成する補間画素生成部と、前記補間画素生成部から出力されたデータ、及び第2の記憶部から出力されたデータより少数精度の動きベクトルを検出する少数精度動きベクトル検出部とからなることを特徴とするものである。
【0042】
また、本発明の請求項に記載の動きベクトル検出方法は、現画像内の複数の画素からなる処理対象ブロックと、当該現画像に対して時間的に前となる前画像の所定の参照領域データ内の複数の画素からなる参照ブロックとの間で、ブロックマッチングを行い動きベクトルを検出する動きベクトル検出方法において、前記処理対象ブロック、及び前記参照領域データのアドレスを生成する第1のアドレス生成ステップと、前記第1のアドレス生成ステップにより指示された参照領域データを保持する第1の記憶ステップと、前記第1のアドレス生成ステップにより指示された処理対象ブロックのデータを保持する第2の記憶ステップと、前記保持された参照領域データ、及び処理対象ブロックのデータから出力する画素データのアドレスを生成する第2のアドレス生成ステップと、前記参照領域データ、及び処理対象ブロックのデータを用いて動きベクトルを検出する動きベクトル検出ステップとを有し、前記第2のアドレス生成ステップは、横方向の画素アドレスをカウントする第1のカウントステップと、縦方向のアドレスをカウントする第2のカウントステップと、画素データのアドレスを保持するアドレス保持ステップとを有し、前記第2のカウントステップのカウント値のLSB(最下位ビット)の反転値を画素データのアドレスに加算することにより、前記参照ブロック及び前記処理対象ブロックの画像イメージに対する画素並びに対して市松模様となるようにサブサンプリングすることを特徴とするものである。
【0049】
また、本発明の請求項に記載の動きベクトル検出方法は、請求項に記載の動きベクトル検出方法において、前記動きベクトル検出ステップは、前記参照領域データ、及び処理対象ブロックのデータを用いて整数精度の動きベクトルを検出する整数精度動きベクトル検出ステップであることを特徴とするものである。
【0050】
また、本発明の請求項に記載の動きベクトル検出方法は、請求項に記載の動きベクトル検出方法において、前記動きベクトル検出ステップは、前記参照領域データを構成する画素データを入力とし、少数精度の画素データを生成する補間画素生成ステップと、前記補間画素生成ステップから出力されたデータ、及び処理対象ブロックのデータを用いて少数精度の動きベクトルを検出する少数精度動きベクトル検出ステップとからなることを特徴とするものである。
【0051】
また、本発明の請求項に記載の動きベクトル検出方法は、請求項に記載の動きベクトル検出方法において、前記動きベクトル検出ステップは、前記参照領域データ、及び処理対象ブロックのデータを用いて整数精度の動きベクトルを検出する整数精度動きベクトル検出ステップと、前記参照領域データを構成する画素データを入力とし、少数精度の画素データを生成する補間画素生成ステップと、前記補間画素生成ステップから出力されたデータ、及び処理対象ブロックのデータを用いて少数精度の動きベクトルを検出する少数精度動きベクトル検出ステップとからなることを特徴とするものである。
【0064】
【発明の実施の形態】
(実施の形態1)
以下に、本発明の実施の形態1による動きベクトル検出装置について、図1から図4を用いて説明する。
図1は、本発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。図1において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部106とからなる。
【0065】
データ保持部101は、画像データを保持する大容量メモリであり、第1のアドレス生成部の指示に従い、参照領域のデータを第1の記憶部に、処理対象ブロックのデータを第2の記憶部に出力する。
【0066】
第1のアドレス生成部102は、データ保持部101内に保持されている画像データより、符号化対象となるデータである処理対象ブロックのデータ、及び処理対象ブロックとブロックマッチングを行なう参照ブロックの探索を行う領域である参照領域データのアドレスを生成する。
【0067】
なお、以下に説明する本発明の動きベクトル検出装置において、処理対象ブロック、及び参照ブロックは複数の画素群からなる画像単位であり、ここでは、例えば、1ブロックが縦16画素、横16画素の全256画素により構成されるものを例にとって説明する。
【0068】
第1の記憶部103は、第1のアドレス生成部102により指示された参照領域データを保持する格納領域であり、第2のアドレス生成部105の指示に従い、処理対象ブロックとのブロックマッチングを行う参照ブロックの画素データを出力する。
【0069】
なお、以下に説明する本発明の動きベクトル検出装置において、動きベクトル検出装置が検出を行なう動きベクトルの範囲を−16〜+15.5とし、当該動きベクトルの範囲に対応する探索領域として、第1の記憶部103が保持する参照領域の画素データは、処理対象ブロック位置を中心とした縦48画素、横48画素により構成さるものを例にとって説明する。
【0070】
第2の記憶部104は、第1のアドレス生成部102により指示された処理対象ブロックのデータを保持する格納領域であり、第2のアドレス生成部105の指示に従い、処理対象ブロックの画素データを出力する。
第2のアドレス生成部105は、第1の記憶部103、及び第2の記憶部104から出力する画素データのアドレスを生成するとともに、探索処理が終了した旨を整数精度動きベクトル検出部106に出力する。
【0071】
なお、この探索処理とは、処理対象ブロックと絶対差分誤差が最小となる参照ブロックを参照領域内から探索する処理であり、この探索処理は、特定の個数の参照ブロックとの比較が終了することにより、又は探索領域範囲内の全ての参照ブロックとの比較が終了すること、或は、処理対象ブロックに対して、特定位置の参照ブロックの絶対差分誤差がその上下左右に位置する参照ブロックの絶対差分誤差よりも小さることが検出されること等により終了する。
【0072】
整数精度動きベクトル検出部106は、第1の記憶部103から出力される参照ブロックの画素データ、及び第2の記憶部104から出力される処理対象ブロックの画素データを用いて、処理対象ブロックに対する参照ブロックの絶対差分誤差和を計算し、当該絶対差分誤差和が最小となる参照ブロックを探索して、動きベクトル検出する。
【0073】
次に、本発明の実施の形態1による動きベクトル検出装置の特徴部分である第2のアドレス生成部105について詳細に説明する。
以下に、第2のアドレス生成部105による画素データのアドレス生成処理について図2から図4を用いて説明することにする。なお、本実施の形態1による第2のアドレス生成部105は、画像イメージにおける画素の並びに対して市松模様にサンプリングを行なうものである。
【0074】
図2は、本発明の実施の形態1による第2のアドレス生成部105の構成を示すブロック図であり、図3は、本発明の実施の形態1による第2のアドレス生成部105がサブサンプリングを行うマクロブロックの一例を示す図である。なお、図3に示すように各画素のアドレスは、初期値を0として、0から255までのアドレス値が設定されている。
【0075】
図2において、第2のアドレス生成部105は、カラムカウンタ11と、ロウカウンタ12と、アドレス保持部13と、加算器14とからなる。
ロウカウンタ11、及びカラムカウンタ12は、ともにダウンカウンタであり、図3に示すように、ロウカウンタ値、及びカラムカウンタ値がそれぞれ設定されている。また、ロウカウンタ11は、第2のアドレス生成部105から画素データのアドレスが出力される毎にデクリメントされる。一方、カラムカウンタ12は、ロウカウンタ11が0になった時にデクリメントされるものであり、また、ロウカウンタ11がデクリメントされる毎に、加算器14に対してカラムカウンタ値のLSB(最下位ビット)を反転して出力する。
【0076】
アドレス保持部13は、アドレス値(以下、予め保持するアドレス値を初期アドレス値と称する。)を保持し、ロウカウンタ11がデクリメントされると、アドレス保持部13が保持する初期アドレス値にプラス2をしたアドレス値を加算器14に出力するとともに、アドレス保持部13が保持する初期アドレス値を、加算器14に出力したアドレス値に更新する。なお、アドレス保持部13が保持する初期アドレス値の初期値は0である。
【0077】
加算器14は、アドレス保持部13から出力されたアドレス値に、カラムカウンタ12から出力されたカラムカウンタ値のLSB(最下位ビット)の反転値を加算して画素データアドレス値として出力する。すなわち、カラムカウンタ12から出力されたカラムカウンタ12のLSB(最下位ビット)が「0」、すなわちカラムカウンタ値が偶数の場合には、アドレス保持部13から出力されたアドレス値に「0」を反転した「1」を加算し、画素データアドレス値として出力する。一方、カラムカウンタ12から出力されたカラムカウンタ12のLSB(最下位ビット)が「1」、すなわちカラムカウンタ値が奇数の場合には、アドレス保持部13から出力されたアドレス値に、「1」を反転した「0」を加算し、画素データアドレス値として出力する。
【0078】
次に、第2のアドレス生成部105の動作について図3、図4を用いて説明する。
図4は、本発明の実施の形態1による第2のアドレス生成部105の画素データのアドレス生成処理を説明するためのフローチャートである。
ロウカウンタ11がデクリメントされる(ステップS101)と、カラムカウンタ12は、ロウカウンタ値が「0」であるか否かの判断を行なう(ステップS102)。
【0079】
この時、ロウカウンタ値が「0」である場合には、カラムカウンタ12をデクリメント(ステップS103)し、デクリメントしたカラムカウンタ値のLSB(最下位ビット)の反転値を加算器14に出力する(ステップS104)。
また、ロウカウンタ値が「0」でない場合には、カラムカウンタ12のカラムカウンタ値の変更を行わず、カラムカウンタ値のLSB(最下位ビット)の反転値を加算部14に出力する(ステップS104)。
【0080】
一方、アドレス保持部13は、ロウカウンタ11がデクリメントされる(ステップS101)と、保持された初期アドレス値に2を加算した値を加算器14に出力するとともに、アドレス保持部13が保持する初期アドレス値を、アドレス保持部13から出力されたアドレス値、すなわちアドレス保持部13が保持していた初期アドレス値に2を加えたものに更新する(ステップ105)。
【0081】
次に、加算器14は、アドレス保持部13から出力されたアドレス値に、ステップS104によりカラムカウンタ12から出力されたカラムカウンタ値のLSB(最下位ビット)の反転値を加算して(ステップS106)、画素データアドレス値として出力する(ステップS107)。
【0082】
このように、ロウカウンタ11、カラムカウンタ12、アドレス保持部13、加算器14を備えることにより、画像イメージにおける画素並びに対して市松模様に画素データの位置をサブサンプリングすることができ、マクロブロックを構成する全ての画素に対して絶対差分誤差和を求める場合と比較して、比較的高圧縮の場合には同等程度の精度を得ることができ、かつ絶対差分誤差和を求めるために必要とする計算量を、半分にすることができ、処理速度の向上や消費電力の削減につながる。
【0083】
また、水平成分、或は垂直成分のみをサブサンプリングし、データの処理量を軽減するものに比べ、画素分布による影響を受けることが少ない。また、水平方向、及び垂直方向に同じ比率によりサブサンプルを行い、データの処理量を軽減するものに比べ、正確に絶対差分誤差和を求めることができ、精度よく動きベクトルを求めることができる。
【0084】
なお、本実施の形態1では、第2のアドレス生成部105が画像イメージにおける画素並びに対して市松模様に画素データの位置をサンプリングするものについて説明したが、これに限定されず、本実施の形態1による第2のアドレス生成部105によれば、ロウカウンタ11、カラムカウンタ12、アドレス保持部13の設定値を任意に変更することにより、画像イメージにおける画素並びに対して自由にサブサンプリングを行うことができる。
【0085】
(実施の形態2)
以下、本発明の実施の形態2による動きベクトル検出装置について、図5から図7を用いて説明する。
図5は、本発明の実施の形態2による動きベクトル検出装置の構成の一例を示すブロック図である。図5において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部206とからなる。
【0086】
なお、本実施の形態2による動きベクトル検出装置は、整数精度動きベクトル検出部206に特徴を有する点においてのみ、前述した実施の形態1による動きベクトル検出装置と相違する。そのため、前述した実施の形態1による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0087】
以下に、本発明の実施の形態2による動きベクトル検出装置の特徴部分である、整数精度動きベクトル検出部206について図6、図7を用いて説明する。
図6は、本発明の実施の形態2による整数精度動きベクトル検出部206の構成を示すブロック図である。図6において、整数精度動きベクトル検出部206は、絶対差分誤差値計算部21と、減算器22と、カウンタ23と、絶対差分誤差和計算部24と、動きベクトル生成部25とからなる。
【0088】
絶対差分誤差値計算部21は、入力された処理対象ブロックの画素データと、当該処理対象ブロックの画素データに対応する参照ブロックの画素データとの画素値の差分の絶対値を計算し、当該差分の絶対値を絶対差分誤差値として減算器22に出力する。
【0089】
減算器22は、絶対差分誤差値計算部21により絶対差分誤差値の出力がある毎に、絶対差分誤差和計算部24が保持する閾値から絶対差分誤差値を、順次、減算して行く。なお、以下の説明では、減算器22による減算が開始される前の閾値を初期閾値と称する。
【0090】
カウンタ23は、特定のカウント数を有するアップカウンタであり、減算器22によって、閾値からの絶対差分誤差値が減算される毎にカウンタ23をインクリメントする。なお、本実施の形態2によるカウンタ23は、0から127までをカウント有する。これは、第2のアドレス生成部105により、処理対象とする16画素×16画素のマクロブロックに対して市松模様にサンプリングを行った画素データを用いて、整数精度動きベクトル検出部206が絶対差分誤差和を算出するためである。
【0091】
絶対差分誤差和計算部24は、初期閾値を保持するとともに、減算器22により、絶対差分誤差値が減算された閾値を保持する。
また、絶対差分誤差和計算部24は、減算器22による減算の結果、閾値の値が負になった場合には、カウンタ23を0にセットし、絶対差分誤差値計算部21、減算器22の処理を中止し、当該参照ブロックの位置を、絶対差分誤差和の最小値位置の候補から除外する旨の信号を第2アドレス生成部105に出力する。
【0092】
一方、減算器22による減算の結果、閾値の値が正である場合には、カウンタ23の値が「127」になるまで減算器21による減算が繰り返される。減算器22による減算の結果、閾値の値が正のままであり、且つカウンタ23の値が「127」になると、カウンタ23を0にセットし、絶対差分誤差和計算部24が保持する初期閾値から、当該正の値の閾値を減算し、当該減算した値を絶対差分誤差和計算部24が保持する新たな初期閾値として設定する。
【0093】
また、当該参照ブロックは絶対差分誤差和が最小となる参照ブロックの候補となるため、第2のアドレス生成部105から出力された当該参照ブロックの位置と処理対象ブロックの位置を表わすデータを動きベクトル生成部25に出力する。なお、絶対差分誤差和計算部24による閾値の値が負になったか否かの判定は、絶対差分誤差和計算部24の閾値のMSB(最上位ビット)が「1」(負であることを示すビットとする。)であるか否かのみを判断することにより判定することができる。
また、絶対差分誤差和計算部24は、第2のアドレス生成部105から探索処理が終了した旨の信号を受けた場合には、絶対差分誤差和計算部24が保持する初期閾値を評価関数として出力する。
【0094】
動きベクトル生成部25は、絶対差分誤差和計算部24から参照ブロックの位置と処理対象ブロックの位置を表わすデータを受けると、その変化量から動きベクトルを生成する。なお、動きベクトル生成部25は、絶対差分誤差和計算部24からの出力を受ける毎に動きベクトルを生成するものであり、以前に生成した動きベクトルが存在する場合には、当該動きベクトルを新たに生成した動きベクトルに更新する。
【0095】
また、動きベクトル生成部25は、第2のアドレス生成部105から探索処理が終了した旨の信号を受けた場合には、動きベクトル生成部24が保持する動きベクトルを、処理対象ブロックの動きベクトルとして出力する。
【0096】
次に、整数精度動きベクトル検出部206の動作について図7を用いて説明する。
図7は、本発明の実施の形態2による整数精度動きベクトル検出部206の動作を説明するためのフローチャートである。なお、図7により示されたフローチャートにおける整数精度動きベクトル検出部206の動作は、処理対象ブロックに対する特定の参照ブロックの絶対差分誤差和を計算するためのものであり、処理対象ブロックと参照ブロックの対応する画素データが入力されることにより開始される処理である。
【0097】
処理対象ブロックの画素データと、当該処理対象ブロックの画素データに対応する参照ブロックの画素データの入力があると、絶対差分誤差値計算部21は、処理対象ブロックの画素データと参照ブロックの画素データとの画素値の差分の絶対値を計算し、絶対差分誤差値として減算器22に出力する(ステップS201)。
【0098】
減算器22は、絶対値差分誤差計算部21から絶対差分誤差値の出力があると、絶対差分誤差和計算部24が保持する閾値から、当該絶対差分誤差値を減算する(ステップS202)。
【0099】
減算器22によって閾値から絶対差分誤差値が減算されると、カウンタ23は、カウンタの値をインクリメントする(ステップS203)。
【0100】
次に、絶対差分誤差和計算部24は、ステップS202により、閾値から絶対差分誤差値が減算された結果、閾値の値が負の値になっていないか否かを、閾値のMSB(最上位ビット)が「1」であるか否かにより判断する(ステップS204)。なお、MSB(最上位ビット)が「1」は、閾値が負、MSB(最上位ビット)が「0」は、閾値が正であることを示すものとする。
【0101】
この時、閾値のMSB(最上位ビット)が「1」である場合には、当該参照ブロックの絶対差分誤差和は、最小の絶対差分誤差和となり得ないため、カウンタ23の値を「0」にセット(ステップS209)して、当該参照ブロックに対する処理を最後まで行わず、終了する。
【0102】
一方、閾値のMSB(最上位ビット)が「1」でない場合には、カウンタ23の値が「127」であるか否か、すなわち、処理が行われる全ての画素の絶対差分誤差値が閾値から減算されたか否かの判断を行なう(ステップS205)。
【0103】
この時、カウンタ23の値が「127」でない場合には、ステップS201に行き、残りの画素についての絶対差分誤差値を計算(ステップS201)し、以後、同様の処理を行なう(ステップS202からS205)。
【0104】
一方、カウンタ23の値が「127」である場合には、絶対差分誤差和計算部24は、処理対象ブロックに対する参照ブロックが絶対差分誤差和が最小となる参照ブロックの候補となるため、第2のアドレス生成部105から出力された当該参照ブロックの位置と処理対象ブロックの位置を表わすデータを動きベクトル生成部25に出力する(ステップS207)。
【0105】
動きベクトル生成部25は、参照ブロックの位置と処理対象ブロックの位置を表わすデータを受けると、その変化量から動きベクトルを生成する(ステップS207)。なお、この時、以前に生成した動きベクトルが存在する場合には、以前に生成した動きベクトルを新たに生成した動きベクトルに更新する。
【0106】
また、絶対差分誤差和計算部24は、絶対差分誤差和計算部24が保持する初期閾値からカウンタ23の値が「127」となった時の正の閾値の値を減算し、当該減算した値を絶対差分誤差和計算部24が保持する新たな初期閾値として更新(ステップS208)する。
その後、絶対差分誤差和計算部24は、カウンタ23の値を「0」にセット(ステップS209)して、当該参照ブロックに対する処理を終了する。
【0107】
このように、整数精度動きベクトル検出部206は、図7を用いて説明した処理対象ブロックに対する参照ブロックの絶対差分誤差和が最小となるの参照ブロックの検索処理を動きベクトル探索領域範囲内の他の参照ブロックに対して同様に行う。
【0108】
また、処理対象ブロックに対して、参照領域内の参照ブロックの探索が終了すると、第2のアドレス生成部105から探索処理が終了した旨の信号が整数精度動きベクトル検出部206に出力され、絶対差分誤差和計算部24は、絶対差分誤差和計算部24が保持する初期閾値を評価関数として出力し、動きベクトル生成部26は、動きベクトル生成部が保持する動きベクトルを、処理対象ブロックの動きベクトルとして出力する。
【0109】
このように、整数精度動きベクトル検出部206が閾値から絶対差分誤差値を順次減算し、閾値の値が負となった時点で、処理対象ブロックに対する最小の絶対差分誤差和となる参照ブロックの候補から除外し、途中で計算を中止することにより、処理速度の向上や消費電力の削減を図ることができる。
【0110】
また、処理を行っている参照ブロックが処理対象ブロックに対する最小の絶対差分誤差和を有する参照ブロックの候補となるか否かの判断を、閾値からの減算結果が負になるか否かによって判断するため、当該判断を絶対差分誤差和計算部24の閾値のMSB(最上位ビット)の値のみによって行うことができ、より一層の処理速度の向上や消費電力の削減を図ることができる。
【0111】
なお、本発明の実施の形態2では、動きベクトル検出装置が市松模様にサブサンプリングした参照ブロックの画素データと処理対象ブロックの画素データを用いて動きベクトルを検出するものについて説明したが、これに限定されず、動きベクトル検出装置が参照ブロックの画素データと処理対象ブロックの画素データを用いて動きベクトルを検出するものであれば同様の効果を得ることができる。
【0112】
(実施の形態3)
以下、本発明の実施の形態3による動きベクトル検出装置について、図8から図10を用いて説明する。
図8は、本発明の実施の形態3による動きベクトル検出装置の構成の一例を示すブロック図である。図8において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部206と、探索履歴保持部301とからなる。
【0113】
なお、本実施の形態3による動きベクトル検出装置は、探索が終了した参照ブロックの履歴を保持し、同じ参照ブロックの2重探索を防止する点においてのみ、前述した実施の形態2による動きベクトル検出装置と相違する。そのため、前述した実施の形態2による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0114】
探索履歴保持部301は、整数精度動きベクトル検出部206により探索が行われた参照ブロックの履歴を保持する。なお、本実施の形態3では、探索対象の位置、及びその周辺位置8ヶ所の計9つ分の参照ブロックの履歴を持つものについて説明する。
【0115】
以下に、本発明の実施の形態3における動きベクトル検出装置による探索履歴を利用した、絶対差分誤差和が最小となる参照ブロックの探索処理の一例について、図9、図10を用いて説明する。
図9は、本実施の形態3による動きベクトル検出装置の第2のアドレス生成部105による探索処理の一例を説明するための説明図である。図9において、実線は、処理対象ブロックを示し、点線は、参照ブロックを示す。なお、この探索処理とは、処理対象ブロックと絶対差分誤差が最小となる参照ブロックを参照領域内から探索する処理である。
【0116】
図9に示すように、本実施の形態3による動きベクトル検出装置の第2のアドレス生成部105による探索処理の一例として、まず、第2のアドレス生成部105は、処理対象ブロック内の注目画素xに対して、同じ位置、及び上下左右に1画素分ずらした5つ参照ブロックに対して探索を行うよう画素アドレスを生成し、整数精度動きベクトル検出部206により、当該参照ブロックに対する探索が行われる。
【0117】
その結果は第2のアドレス生成部105に出力され、アドレス生成部105は、上下左右の何れかの絶対差分誤差和が最小となった場合には、次に、当該絶対差分誤差和が最小となる参照ブロックを中心として、上下左右に1画素分ずらした参照ブロックに対して同様の処理を行う。この処理は、真ん中に位置する参照ブロックの絶対差分誤差和が最小となるまで繰り返され、絶対差分誤差和が最小となる真ん中に位置する参照ブロックが検出されると、当該参照ブロックを、処理対象ブロックに対して最小の絶対差分誤差和となる参照ブロックとして検出し、探索を終了する。
【0118】
図10は、探索履歴保持部301内のデータ構造を示す図であり、aからlは、参照ブロックを示す符号である。太線1で囲まれた範囲は探索履歴保持部301が保持する履歴の範囲であり、実線2は探索が終了した参照ブロックを示すものであり、点線3は未探索の参照ブロックを示す。
【0119】
例えば、処理対象ブロック位置がhの位置にあるとすると、まず、前述したように、処理対象ブロックに対する5つの参照ブロックに対して探索が行われる。探索が終了すると、探索履歴保持部301は、探索が行われた参照ブロックe、参照ブロックg、参照ブロックh、参照ブロックi、参照ブロックkに対してフラグを立てる(図10(A))。
【0120】
次に、整数精度動きベクトル検出部206による探索の結果、例えば、処理対象ブロックに対する、参照ブロックe、参照ブロックg、参照ブロックh、参照ブロックi、参照ブロックkの絶対差分誤差和の内、参照ブロックeの絶対差分誤差が最小となった場合には、探索履歴保持部301は、探索履歴保持部301が保持する履歴を全て下方向にシフトさせる(図10(B))。
【0121】
これにより、探索履歴保持部301が保持する履歴は、次の探索で中心の参照ブロックである参照ブロックeを中心としたものに、書き換えられたことになる(図10(C))。
【0122】
第2のアドレス生成部105は、当該参照ブロックeを中心とした、参照ブロックb、参照ブロックd、参照ブロックe、参照ブロックf、参照ブロックhに対して探索を行う際には、探索履歴保持部301内のフラグの有無を判断し、フラグが立っていない、参照ブロックb、参照ブロックd、参照ブロックfの画素データのみの画素アドレスを生成する。そのため、整数精度動きベクトル検出部206は、既に探索が行われた参照ブロックe、参照ブロックhの探索処理を2重に行うことがない。
【0123】
このように、探索履歴保持部301を設け、既に探索を行った参照ブロックに対して探索履歴を残すことにより、同じ参照ブロックに対して2重の探索を行うことを防止することができる。これにより、処理速度の向上を可能にするとともに、消費電力を削減することができる。
【0124】
なお、本実施の形態3において、第2のアドレス生成部105による探索処理は、上下左右に位置する参照ブロックの内、絶対差分誤差和が最小となる方向に探索を進めるものについて説明したが、これに限定されず、探索履歴保持部301を具備し、探索履歴保持部301が保持する探索履歴に基づいて第2のアドレス生成部が探索処理を行うものであれば何でもよい。
【0125】
(実施の形態4)
以下、本発明の実施の形態4による動きベクトル検出装置について、図11から図14を用いて説明する。
図11は、本発明の実施の形態4による動きベクトル検出装置の構成の一例を示すブロック図である。図11において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部106と、転送ルール保持部401と、転送ルール検出部402とからなる。
【0126】
なお、本実施の形態4による動きベクトル検出装置は、データ保持部101により保持されている画像データ上で、第1の記憶部103に出力される参照領域データがどの位置に存在するかにより、データ保持部101から第1の記憶部103に転送される参照領域データの転送ルールを変更する点においてのみ、前述した実施の形態1による動きベクトル検出装置と相違する。そのため、前述した実施の形態1による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0127】
転送ルール保持部401は、領域判定コードと転送ルールとを対にして保持する。
転送ルール検出部402は、第1のアドレス生成部102により出力された領域判定コードに基づき転送ルールを検出し、第1のアドレス生成部102、及び第2のアドレス生成部105に出力する。
【0128】
ここで、前記領域判定コードについて図12を用いて説明する。
図12は、画像データを示す図であり、本発明の実施の形態4による領域判定コードは、現時点での動きベクトルの探索を行う参照領域が画像データ上のどの位置に対応するかを示す、4ビットからなるコードである。各ビットは、各ビットは上位から、上端・下端・左端・右端を示しており、例えば上端を示すビットが「1」である場合は、前記参照領域が画像データの上端にあることを示し、ビットが「0」である場合は、前記参照領域が画像データの上端でないことを示している。なお、この領域判定コードは、画像データのアドレスを制御する第1のアドレス生成部102が保持している。
【0129】
以下に、本発明の実施の形態4による動きベクトル検出装置の第1のアドレス生成部102による参照領域データの転送処理について、図12、図13、図14を用いて説明する。
図13は、転送ルール保持部401内に格納されている領域判定コードと転送ルールの一例を示す図であり、図14は、参照領域データを構成する48×48画素のアドレスを示したものである。
【0130】
第1のアドレス生成部102から領域判定コードが転送ルール検出部402に出力されると、転送ルール検出部402は、転送ルール保持部401内に保持されている領域判定コードに対応する転送ルールを検出する。
転送ルール検出部402により検出された転送ルールは、第1のアドレス生成部102に出力される。第1のアドレス生成部102は、検出された転送ルールに基づいて第1の記憶部103に出力する参照領域データの転送アドレスを生成する。
【0131】
例えば、領域判定コードが「0000」の場合には、第1のアドレス生成部は、図12に示した転送開始アドレス位置から、水平方向に1画素ずつ、矩形の水平方向の長さが48、即ち画素アドレスが0から47までの48画素についてのデータを読み出す。即ち、図14に示すように、画素アドレスが0から47までの48画素分のデータの読み出しが終了すると、転送開始アドレス位置から画像イメージに対して垂直方向に1画素分シフトして、左端から画素アドレスが48から95までの水平方向48画素分のデータを同様に読み出す。この垂直方向へのシフトは、矩形の垂直方向の長さが48、即ち縦方向に48画素分移動するまで継続される。
【0132】
また、例えば、領域判定コードが「1010」の場合には、図14に示すように、画素アドレスが784の位置から画素データの読み出しが開始され、水平方向に1画素ずつ、矩形の水平方向の長さが32、即ち画素アドレスが784から815までの32画素分のデータを読み出す。画素アドレスが784から815までの32画素分のデータを読み出しが終了すると、画素アドレス784の位置から画像イメージに対して垂直方向に1画素分シフトして、画素アドレスが832から863までの水平方向32画素分のデータを同様に読み出す。この垂直方向へのシフトは、矩形の垂直方向の長さが32、即ち縦方向に32画素分移動するまで継続される。
【0133】
なお、領域判定コードが「0001」、「0010」、「0100」、「0101」、「0110」、「1000」、「1001」の場合の参照領域データの転送処理は、前述した領域判定コードが「0000」、「1010」の場合の説明、及び図13から明らかであるので説明を省略する。
【0134】
このように、画像データ上の参照領域データの位置に応じて、第1のアドレス生成部102が第1の記憶部103に出力する参照領域データの転送ルールを変更することにより、第1の記憶部103に転送するデータ量を必要最小限にすることができ、処理速度の向上、及び消費電力を削減することができる。
【0135】
なお、本実施の形態4による動きベクトル検出装置において、領域判定コードを第1のアドレス生成部102が保持しているものについて説明したが、これに限定されず、例えば、ユーザが領域判定コードを転送ルール検出部402に直接入力するもの等であってもよい。
また、本発明の実施の形態4による動きベクトル検出装置は、領域判定コードに対応する転送ルールの例として、図13に示すような転送ルールを示したが、これに限定されず、領域判定コードに対応する転送ルールに基づいて、第1のアドレス生成部102がデータの転送アドレスを生成するものであればなんでもよい。
【0136】
(実施の形態5)
以下、本発明の実施の形態5による動きベクトル検出装置について、図15から図17を用いて説明する。
図15は、本発明の実施の形態5による動きベクトル検出装置の構成の一例を示すブロック図である。図15において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部106と、転送ルール検出部402と、転送ルール保持部401と、記憶データ制御部501とからなる。
【0137】
なお、本実施の形態5による動きベクトル検出装置は、第1の記憶部103がダブルバッファ構造を有する動きベクトル検出装置であって、第1の記憶部103内のデータを記憶データ制御部501が制御する点においてのみ、前述した実施の形態4による動きベクトル検出装置と相違する。そのため、前述した実施の形態1による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0138】
なお、まずここで、第1の記憶部103内のメモリ構造であるダブルバッファ構造について、図16を用いて説明することにする。
図16は、本発明の実施の形態5による第1の記憶部103のメモリ構造を説明する説明図であり、図16において、第1の記憶部103は、メモリXとメモリYの2つのバファメモリを保持している。この2つのメモリは、例えば、メモリYに対してデータの読み込み読み込みが行われている際には、他方のメモリXでは、データの読み出しが行われている。また、両処理が終了するとメモリXとメモリYを入れ替えて、メモリXに対してデータの読み込み読み込みを行うと同時に、メモリYに書き込まれたデータを読み出す。これにより、データの入出力を効率的に行うことができるものである。
【0139】
次に、本発明の実施の形態5による記憶データ制御部501の動作の動作について説明する。
一般的に、画像データを構成する複数のブロックに対して動きベクトルを求める場合には、画像データに対して左上端に位置するブロックから順次右側に1ブロックずつシフトさせ、それぞれの処理対象ブロックに対して動きベクトルを検出する。そのため、前述したようなダブルバッファ構造を有する第1の記憶部103を用いて、探索を行う領域である参照領域データの入出力を行う場合には、画素データがメモリXとメモリYとの間でオーバーラップすることになり、処理対象ブロックが変わる毎に重複したデータ転送を行ってしまう。
【0140】
よって、本発明の実施の形態5による動きベクトル検出装置の記憶データ制御部501は、図17に示すように、ダブルバッファ構造を有する第1の記憶部103に格納されたデータのうち、メモリYに必要なデータであり且つメモリX上に格納されているデータをメモリXからメモリYに転送する。その後メモリYに必要なデータをデータ保持部101から読み込む。なお、同様の処理は、メモリYからメモリXへの転送においても同様に行われる。
【0141】
なお、この記憶データ制御部501により、コピーが行われる第1の記憶部103内のデータの範囲は、第1のアドレス生成部102から出力される領域判定コードに基づいて決定されるものであり、領域判定コードは、前記実施の形態4により説明したものと同様であるため説明を省略する。
【0142】
以下に、本実施の形態5による記憶データ制御部501の動作の具体例について図18を用いて説明する。
図18は、領域判定コードと、第1の記憶部103が新たに読み込むデータ、及び第1の記憶部103内でコピーするデータとの対応を示す図である。
例えば、図18に示すように、メモリYに対してデータの読み込みを行なう領域判定コードが「0000」の場合には、記憶データ制御部501は、第1の記憶部103内のメモリXのデータのうち、右の6ブロック分のデータをメモリYの左にコピーする。これにより、データ記憶部103は、残りの右3ブロック分のデータのみをデータ保持部101から新たに読込めばよい。
【0143】
また、メモリYに対してデータの読み込みを行なう領域判定コードが「0001」の場合には、記憶データ制御部501は、図18に示すように、第1の記憶部103内のメモリXのデータのうち、右の6ブロック分のデータをメモリYの左にコピーする。また、領域判定コードが「0001」の場合、即ち右端のビットが「1」の場合には、右側に位置するブロックのデータが存在しないため、データの読み込みを行わない。
【0144】
また、メモリYに対してデータの読み込みを行なう領域判定コードが「0010」の場合には、記憶データ制御部501は、図18に示すように、データのコピーを行わない。これは、前述したように、複数のブロックに対して動きベクトルを求める場合に、処理を行なう処理対象ブロックを右側に順次シフトさせながら動きベクトル検出を行なうため、領域判定コードが「0010」の場合、即ち、右から2つ目のビットが「1」の場合には、動きベクトルを検出する処理対象ブロックの位置が画像データの左端に位置するため、前回の探索で用いたデータを用いることができないためである。
なお、他の領域判定コードの場合の記憶データ制御部501の動作は、前述した領域判定コード「0000」、「0001」、「0010」、及び図18から明らかであるので、説明を省略する。
【0145】
このように、領域判定コードを用いて、記憶データ制御部501が、第1の記憶部103内に記憶されたデータの制御を行うことにより、データ保持部101から読込むデータの量を軽減することができ、処理速度の向上が可能となるとともに、消費電力の軽減につながる。
【0146】
なお、本実施の形態5による動きベクトル検出装置において、領域判定コードを第1のアドレス生成部102が保持しているものについて説明したが、これに限定されず、例えば、ユーザが領域判定コードを記憶データ制御部501に直接入力するもの等であってもよい。
【0147】
また、本実施の形態5による動きベクトル検出装置は、少なくとも、第1の記憶部103のメモリ構造がダブルバッファ構造をしているものであればよく、データ保持部101や、第2の記憶部104のメモリ構造は、どのようなものであってもよい。
【0148】
また、本発明の実施の形態1から5において、動きベクトルを検出する動きベクトル検出部が整数精度の動きベクトルを検出する整数精度動きベクトル検出部106であるものについて説明したが、これに限定されず、例えば、動きベクトルを検出部が少数精度の動きベクトルを求めるものや、整数精度の動きベクトルと少数精度の動きベクトルをともに求めるもの等であってもよい。なお、少数精度の動きベクトル検出については、後述する実施の形態6で説明することにする。
【0149】
(実施の形態6)
以下、本発明の実施の形態6による動きベクトル検出装置について、図19から図22を用いて説明する。
図19は、本発明の実施の形態6による動きベクトル検出装置の構成の一例を示すブロック図である。図19において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、補間画素生成部601と、少数精度動きベクトル検出部602と、読み出し方向決定部603とからなる。
【0150】
補間画素生成部601は、第1の記憶部内に保持される参照領域データの画素間の任意の位置における画素値の補間処理を行うことによって求めるものである。なお、本発明の実施の形態6では、説明を簡単にするため、各画素間の真ん中の位置における画素値である半画素を生成するものを例にとって説明する。
【0151】
図20は、本発明の実施の形態6による動きベクトル検出装置の補間画素生成部601を説明するための説明図であり、黒丸は画素の位置、白丸は補間画素生成部601により求められた半画素の位置を示す。例えば、半画素mを生成するためには、画素A、画素B、画素C、及び画素Dの周囲4画素分の画素値のデータが必要であり、補間画素生成部601は、半画素m=(画素A+画素B+画素C+画素D)/4を計算することにより半画素mの画素値を求める。また、半画素nを生成するためには、縦方向に存在する画素Bと画素Dの2画素分の画素値のデータが必要であり、補間画素生成部601は、半画素n=(画素B+画素D)/2を計算することにより半画素nの画素値を求める。さらに、半画素oを生成するためには、横方向に存在する画素Cと画素Dの2画素分の画素値のデータが必要であり、補間画素生成部601は、半画素o=(画素C+画素D)/2を計算することにより半画素oの画素値を求める。
【0152】
少数精度動きベクトル検出部602は、第1の記憶部103から出力された参照ブロックの画素データを用いて補間画素生成部601が生成した半画素データ、及び第2の記憶部104から出力される処理対象ブロックの画素データを用いて、処理対象ブロックと、参照ブロックから1/2画素分ずれた半画素精度の参照ブロックとの絶対差分誤差和を計算し、当該絶対差分誤差和が最小となる半画素精度の参照ブロックを探索して、動きベクトル検出する。なお、本実施の形態6による少数精度動きベクトル検出装置602による前記半画素精度の参照ブロックを探索は、処理対象ブロック位置の周辺における最小の半画素精度の参照ブロックが存在する方向に探索を進めるものとし、当該探索方向は、探索位置ベクトルとして読み出し方向決定部603に出力される。
【0153】
読み出し方向決定部603は、補間画素生成部601で生成を行なう半画素データの位置によって、第1の記憶部103から出力する参照領域の画素データの読み出し方向を決定する。なお、この補間画素生成部601により生成が行われる半画素データの位置は、前述した少数精度動きベクトル検出部602から出力される探索位置ベクトルに基づいて決定される。
【0154】
以下に、本発明の実施の形態6による動きベクトル検出装置のハーフペル生成処理について図21、図22を用いて説明する。
図21、図22は、本発明の実施の形態6による補間画素生成部601による半画素データの生成を説明するための説明図である。図21、図22において、補間画素生成部601は、図示するように、補間処理部81とシフトレジスタ群82とからなる。
補間処理部81は、シフトレジスタ82が保持する画素データの補間処理を行い、画素間の位置における画素値を算出する。シフトレジスタ群82は、21個のシフトレジスタからなり、画素データの入力がある毎に読込んだ画素データをシフトさせる。なお、本実施の形態6では、画素間の中心の位置である半画素精度の画素値を求めるものである。
【0155】
この補間画素生成部601により、参照ブロックに対して左、右、右上、右下、左上、左下の何れかの方向に1/2画素ずれた半画素精度の参照ブロックを作成する場合には、読み出し方向決定部603は、第1の記憶部103内に格納された参照領域のデータを横方向に読み出す旨の指示を第2のアドレス生成部105に対して行う。第2のアドレス生成部105は、図21に示すように、第1の記憶部103内に格納された参照領域の画素データから、横方向に位置するデータを18画素づつ、縦方向に18回読み出す。
【0156】
読み出された画素データは、補間画素生成部601内のシフトレジスタ群82に入り、補間処理部81により補間処理が行われる。
また、補間画素生成部601のシフトレジスタ群82は、少なくとも、(横方向に読み出すデータ数+2)個のシフトレジスタを保持することにより、斜め方向に半画素ずれた画素データを生成する場合であっても、改めて、データの読み出しを行なうことなく、斜め方向に半画素ずれた画素データの補間処理を行うことができ、処理速度向上とともに消費電力の削減を図ることができる。
【0157】
一方、この補間画素生成部601により、参照ブロックに対して上、下、右上、右下、左上、左下の何れかの方向に1/2画素ずれた半画素精度の参照ブロックを作成する場合には、読み出し方向決定部603は、第1の記憶部103内に格納された参照領域のデータを縦方向に読み出す旨の指示を第2のアドレス生成部105に対して行う。第2のアドレス生成部105は、図22に示すように、第1の記憶部103内に格納された参照領域の画素データから、縦方向に位置するデータを18画素づつ、横方向に18回読み出す。
読み出された画素データは、補間画素生成部601内のシフトレジスタ群82に入り、補間処理部81により補間処理が行われる。
【0158】
このように、縦方向に読み出した画素データを用いて、縦方向に半画素ずれた画素データを生成することにより、縦方向に半画素ずれた画素データの補間処理を行なうための演算量を減らすことができ、処理速度向上とともに消費電力の削減を図ることができる。
【0159】
また、補間画素生成部601のシフトレジスタ群82は、少なくとも、(縦方向に読み出すデータ数+2)個のシフトレジスタを保持することにより、斜め方向に半画素ずれた画素データを生成する場合であっても、改めて、データの読み出しを行なうことなく、斜め方向に半画素ずれた画素データの補間処理を行うことができ、処理速度向上とともに消費電力の削減を図ることができる。
【0160】
すなわち、画素の補間位置によって画像イメージに対するデータの読み出し方向を変更することにより、補間画素生成部601の構成を変更することなく縦方向、または横方向に半画素ずれた半画素n、oを高速に、且つ同タイミングで生成することが可能となり、処理速度向上とともに消費電力の削減を図ることが出来る。さらに斜め方向に半画素ずれた半画素mを生成する際にも、少なくともシフトレジスタ群82が20個のシフトレジスタを有することにより、高速に、且つ同タイミングで半画素データを生成することが可能となり、データ転送量の削減、処理速度向上とともに消費電力の削減を図ることが出来る。
【0161】
なお、図21、図22では、補間画素生成部601が21個のシフトレジスタを有するシフトレジスタ群82を示したが、これに限定されず、例えば、上下左右方向に半画素ずれた画素データを生成する場合には、少なくとも、2個のシフトレジスタを保持するものであればよく、また、斜め方向へ半画素ずれた画素データを生成するためには、少なくとも20個のシフトレジスタを保持するものであればよい。
【0162】
(実施の形態7)
以下、本発明の実施の形態7による動きベクトル検出装置について、図23、及び図24を用いて説明する。
図23は、本発明の実施の形態7による動きベクトル検出装置の構成の一例を示すブロック図である。図23において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、補間画素生成部601と、読み出し方向決定部603と、少数精度動きベクトル検出部701とからなる。
【0163】
なお、本実施の形態7による動きベクトル検出装置は、少数精度動きベクトル検出部702が絶対差分誤差和を計算する絶対差分誤差和演算部を2つ搭載し、処理対象ブロックに対する2つ分の少数精度参照ブロックのブロックマッチングを同時に行う点においてのみ、前述した実施の形態6による動きベクトル検出装置と相違する。そのため、前述した実施の形態6による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0164】
以下に、本発明の実施の形態7による動きベクトル検出装置による少数精度動きベクトル検出処理について説明する。
前記実施の形態1において説明したように、第2のアドレス生成部105は、処理対象ブロック、及び参照ブロックに対して市松模様にサブサンプリングした画素データのアドレスを発生する。
【0165】
しかし、本実施の形態7による補間画素生成部601において、第2の記憶部104から出力される市松模様にサブサンプリングされた処理対象ブロックの画素データに対応する半画素精度参照ブロックを生成するためには、前記実施の形態6で説明したように参照ブロックを構成する全画素データ、及びその周辺の一画素分の画素データを読込む必要がある。
【0166】
そこで、補間画素生成部601は、第1の記憶部103から読込んだ参照ブロックを構成する全画素データ、及びその周辺の一画素分のデータを用いて、市松模様にサンプリングされた処理対象ブロックと対応する2つの半画素精度処理対象ブロック、例えば、整数精度の参照ブロックから上と下、左と右、右斜め上と右斜め下、左斜め上と左斜め下、右斜め上と左斜め上、右斜め下と左斜め下にそれぞれ半画素分ずれた2つ半画素精度参照ブロックの少数精度画素のデータを生成し、少数精度動きベクトル検出部701に出力する。
【0167】
なお、このとき、整数精度の参照ブロックから、例えば上下に半画素分ずれた少数精度の参照ブロックの画素データは、少数精度の参照ブロックを構成する画素列の上端列及び下端列の画素データがそれぞれ異なるのみであり、それ以外の重複部分は同じ値を用いることができる。そのため、補間画素生成部601のデータ処理量を軽減することができる。これは、左と右、右斜め上と右斜め下、左斜め上と左斜め下、右斜め上と左斜め上、右斜め下と左斜め下にそれぞれ半画素分ずれた2つ半画素精度参照ブロックの少数精度画素のデータを生成するときも同様である。
【0168】
以下に、少数精度動きベクトル検出部701に構成について、図24を用いて説明する。
図24は、本発明の実施の形態7による動きベクトル検出装置の少数精度動きベクトル検出部701の構成を説明するブロック図である。図において、少数精度動きベクトル検出部701は、第1の絶対差分誤差和演算部71と、第2の絶対差分誤差和演算部72と、動きベクトル生成部73とからなる。
【0169】
第1の絶対差分誤差和演算部71、及び第2の絶対差分誤差和演算部72は、ともに、市松模様にサブサンプリングされた処理対象ブロックの画素データと、当該処理対象ブロックの画素データに対応する半画素精度の参照ブロックの画素データを用いて、処理対象ブロック、及び半画素精度参照ブロックを構成する画素データの絶対値の差分の和である絶対差分誤差和を求める演算部である。
【0170】
動きベクトル生成部73は、第1の絶対差分誤差和演算部71、及び第2の絶対差分誤差和演算部72により演算された、処理対象ブロックに対して絶対差分誤差和が小さくなる少数精度の参照ブロックの位置から動きベクトルを生成する。
【0171】
例えば、少数精度動きベクトル検出部701により、市松模様にサブサンプリングされた処理対象ブロックに対して左右に半画素分ずれた2つの半画素精度の参照ブロックについてのブロックマッチングを行なう場合には、補間画素生成部601から左側に半画素ずれた半画素精度の処理対象ブロックの画素データ、及び処理対象ブロックの画素データが第1の絶対差分誤差和演算部71に入力され、右側に半画素ずれた半画素精度の処理対象ブロックの画素データ、処理対象ブロックの画素データが第2の絶対差分誤差和演算部71に入力される。
【0172】
第1の絶対差分誤差和演算部71、及び第2の絶対差分誤差和演算部72では、市松模様にサブサンプリングされた処理対象ブロックに対して右側、及び左側に半画素分ずれた少数精度の参照ブロックの絶対差分誤差和がそれぞれ演算され、動きベクトル生成部73に出力される。
【0173】
動きベクトル生成部73は、第1の絶対差分誤差和演算部71、及び第2の絶対差分誤差和演算部72から出力された絶対差分誤差和を比較し、絶対差分誤差和の値が小さい方の少数精度の参照ブロックに対する動きベクトルを検出する。
【0174】
このように、サブサンプリングを行った処理対象ブロックに対して、少数精度の動きベクトルの検出に用いる少数精度の補間画素を生成するために第1の記憶部103内に記憶された参照ブロックを構成する全画素データを読み出した場合であっても、少数精度動きベクトル検出部701が絶対差分誤差和演算部を2つ搭載し、補間画素生成部601が2つの半画素精度参照ブロックを同時生成することにより、上と下、左と右、右斜め上と右斜め下、左斜め上と左斜め下、右斜め上と左斜め上、右斜め下と左斜め下等に半画素分ずれた2つ半画素精度処理対象ブロックの絶対差分誤差和の演算処理を同時に行うことができ、補間画素生成部601の処理量を軽減することができるとともに、第1の記憶部103から読み出すデータ量を軽減することができ、処理速度を向上することができるとともに、消費電力の削減につながる。
【0175】
なお、本発明の実施の形態7による動きベクトル検出装置では、第2のアドレス生成部105が処理対象ブロックに対して市松模様となるように画素のアドレスを生成するものについて説明したが、これに限定されず、例えば、第2のアドレス生成部105が処理対象ブロックを構成する全ての画素のアドレスを生成するもの等、第2のアドレス生成部105が生成する画素アドレスの方式には限定されない。
【0176】
(実施の形態8)
以下、本発明の実施の形態8による動きベクトル検出装置について、図12、図25、図26を用いて説明する。
図25は、本発明の実施の形態8による動きベクトル検出装置の構成の一例を示すブロック図である。図25において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部106と、転送ルール保持部401と、転送ルール検出部402と、探索可否条件保持部801と、探索可否条件検出部802とからなる。
【0177】
なお、本実施の形態8による動きベクトル検出装置は、第2のアドレス生成部105が探索可否条件検出部802により検出された探索可否条件に基づいて、第1の記憶部103から出力する参照ブロックの画素データのアドレスを生成する点においてのみ、前述した実施の形態4による動きベクトル検出装置と相違する。そのため、前述した実施の形態4による動きベクトル検出装置と同様の構成要素については同じ符号を付し、説明を省略する。
【0178】
探索可否条件保持部801は、領域判定コードと探索を行うことができる位置か否かを判断するための条件である探索可否条件とを対にして保持する。
探索可否条件検出部802は、第1のアドレス生成部102により出力された領域判定コードに基づき探索可否条件保持部801から探索可否条件を検出し、第2のアドレス生成部105に出力する。
なお、領域判定コードは、前記本発明の実施の形態4において、図12を用いて説明した領域判定コードと同様であるため、説明を省略する。
【0179】
以下に、本発明の実施の形態8による動きベクトル検出装置の第2のアドレス生成部105による参照ブロックの画素データのアドレス生成処理について、図25、図26を用いて説明する。
図26(a)は、探索可否条件保持部801内に格納されている領域判定コードと探索可否条件の一例を示す図である。これは、図26(b)に示すように、右方向を正とする横軸をx軸、下方向を正とする縦軸をy軸とし、画素pの位置を原点とした場合の探索可否条件保持部801が保持する探索可否条件を示したものである。なお、図26(a)に示された領域可否条件は、探索を行うことができる領域を示したものである。
【0180】
第1のアドレス生成部102より領域判定コードが探索可否条件検出部802に出力されると、探索可否条件検出部802は、探索可否条件保持部801内から当該領域判定コードに対応する探索可否条件を検出し、第2のアドレス生成部105に出力する。
第2のアドレス生成部105は、探索可否条件検出部802から出力された探索可否条件に基づいて、第1の記憶部103から出力する画素データのアドレスを生成する。
【0181】
次に、本発明の実施の形態8による動きベクトル検出装置の具体例について説明する。
例えば、第1のアドレス生成部102より出力された領域判定コードが「0000」の場合には、探索可否条件検出部802は、探索可否条件保持部801から探索可否条件である(−16≦x≦15、−16≦y≦15)を検出し、第2のアドレス生成部105に出力する。
第2のアドレス生成部105は、前記探索可否条件検出部802もより検出された探索可否条件を用い、−16≦x≦15、−16≦y≦15の範囲内となるように画素アドレスを生成する。
【0182】
なお、領域判定コードが「0001」「0010」「0100」「0101」「0110」「1000」「1001」「1010」の場合についても、前述した領域判定コードが「0000」の場合と同様であるため説明を省略する。
【0183】
このように、探索可否条件検出部802が探索可否条件保持部801から領域判定コードを用いて、探索可否条件を検出し、当該探索可否条件に基づき第2のアドレス生成部105が第1の記憶部103から出力する画素データのアドレスを生成することにより、有効な探索を行なうことができる領域の画素アドレスを正確に生成することができ、無駄な探索処理を行なうことなく高速に処理を行うことができる。
【0184】
(実施の形態9)
以下、本発明の実施の形態9による動きベクトル検出装置について、図27を用いて説明する。
図27は、本発明の実施の形態9による動きベクトル検出装置の構成の一例を示すブロック図である。図27において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部105と、整数精度動きベクトル検出部106と、転送ルール保持部401と、転送ルール検出部402と、補間画素生成部601と、少数精度動きベクトル検出部602と、読み出し方向決定部603と、探索可否条件保持部801と、探索可否条件検出部802とからなる。
【0185】
なお、本発明の実施の形態9は、前記本実施の形態8における動きベクトル検出装置の整数精度動きベクトル検出時に用いられる探索可否条件保持部801と探索可否条件検出部802を、少数精度動きベクトルの検出時にも用いるものであり、整数精度動きベクトル検出時、及び少数精度動きベクトル検出時に、それぞれ探索可否条件検出部802により探索可否条件を検出し、第2のアドレス生成部105が、当該探索可否条件検出部802により検出された探索可否条件を用いて画素アドレスを生成するものである。なお、各構成要素は、前記実施の形態6及び8で説明した動きベクトル検出装置と同様であるため、説明を省略する。
【0186】
このように、整数精度動きベクトル検出に用いられる探索可否条件保持部801と探索可否条件検出部802を、少数精度動きベクトル検出にも併用することにより、回路規模の縮小を図るとともに、製造コスト削減につながる。
【0187】
(実施の形態10)
以下、本発明の実施の形態10による動きベクトル検出装置について、図28を用いて説明する。
図28は、本発明の実施の形態10による動きベクトル検出装置の構成の一例を示すブロック図である。図28において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部905と、整数精度動きベクトル検出部106と、転送ルール保持部401と、転送ルール検出部402と、補間画素生成部601と、少数精度動きベクトル検出部602と、読み出し方向決定部603と、探索可否条件保持部801と、探索可否条件検出部802とからなる。
【0188】
なお、本発明の実施の形態10における動きベクトル検出装置は、整数精度動きベクトル検出時に、探索可否条件検出部802により検出された探索可否条件を用いて、整数精度の動きベクトル探索を行い、整数精度の動きベクトルを検出する。その後、少数精度動きベクトルの検出を行う場合には、前記整数精度動きベクトル検出時の探索可否の結果を用いて少数精度の動きベクトル検出を行うものである。なお、各構成要素は、前記実施の形態6及び8で説明した動きベクトル検出装置と同様であるため、説明を省略する。
【0189】
第2のアドレス生成部905は、探索可否条件検出部802により検出された探索可否条件に基づいて、整数精度動きベクトル検出に用いる画素データのアドレスを生成すると共に、整数精度動きベクトル検出時に探索を行うことができたか否かの情報である、探索可否データを各参照ブロック位置毎に保持する。また、整数精度の動きベクトル検出後、少数精度動きベクトル検出を行う場合には、当該探索可否データを用いて少数精度の動きベクトル検出時の探索可否を判断する。
【0190】
以下に、本発明の実施の形態10による動きベクトル検出装置の動作について図29を用いて説明する。
図29は、整数精度動きベクトル検出時の動きベクトル探索の一例を示したものであり、特定位置における参照ブロック(中心に位置するブロック)から上下左右に一画素分ずれた位置における参照ブロック(図中、点線で表わす)の位置を示す図である。なお、本発明の実施の形態10による動きベクトル検出装置の整数精度動きベクトル検出は、図29に示すような位置関係にある参照ブロックのうち、中心に位置する参照ブロックの絶対差分誤差和が最小となった場合に、当該参照ブロック位置を整数精度の動きベクトル検出の対象位置とするものである。
【0191】
第2のアドレス生成部905は、整数精度動きベクトル検出時に、この動きベクトル検出の対象位置の上下左右に位置する参照ブロックの探索の可否を4ビットからなる探索可否データとして保持する。具体的には、例えば、図29に示すように左端ビットから上下左右の位置を表わすものとし、探索を行うことができなかった参照ブロック位置のビットを「1」、探索を行うことができた参照ブロック位置のビットを「0」として保持する。
【0192】
これにより、整数精度の動きベクトル探索終了後、さらに正確な動きベクトルを求めるために、整数精度の動きベクトル検出時に探索を行った領域の範囲内で少数精度の動きベクトル探索を行う場合にでも、第2のアドレス生成部905は、前記4ビットからなる探索可否データに基づいて、第1の記憶部103から出力する画素アドレスを生成することができる。これにより、少数精度の動きベクトルの検出時に改めて探索可否条件の検出を行うことなく、探索の可否を判断することができ、処理速度の向上を図ることができる。また、整数精度の動きベクトル検出時の探索結果を少数精度動きベクトル検出時にも用いるため、回路規模の縮小を図るとともに、製造コスト削減につながる。
【0193】
(実施の形態11)
以下、本発明の実施の形態11による動きベクトル検出装置について、図30を用いて説明する。
図30は、本発明の実施の形態11による動きベクトル検出装置とその周辺の構成の一例を示すブロック図である。図30において、動きベクトル検出装置は、データ保持部101と、第1のアドレス生成部102と、第1の記憶部103と、第2の記憶部104と、第2のアドレス生成部1005と、整数精度動きベクトル検出部106と、探索実行可否決定部1001とからなる。なお、前記実施の形態1で説明した動きベクトル検出装置を構成する各構成要素の内、同一のものについては、同一の符号を付し、説明を省略する。
【0194】
探索実行可否決定部1001は、前回の動きベクトル検出で検出された動きベクトルを保持するとともに、整数精度動きベクトル検出部106により算出された絶対差分誤差と特定の閾値とを比較することにより探索実行の可否を決定する。
【0195】
第2のアドレス生成部1005は、第1の記憶手段103、及び第2の記憶手段104から出力するデータのアドレスを生成すると共に、第1の記憶手段103から動きベクトル検出位置での画素データを整数精度動きベクトル検出部106をスルーして外部に出力するためのスルーパスを与える。
【0196】
次に、本発明の実施の形態11による動きベクトル検出装置の動作について説明する。
第2のアドレス生成部1005は、探索実行可否決定部1001が保持する前回の探索で検出された動きベクトルを用いて、第1の記憶部103より出力する画素データ、及び第2の記憶部104より出力する画素データのアドレスを生成する。
即ち、一般的に検出される動きベクトルは、探索を行った処理対象ブロックの周辺では、ほとんど変化が見られないことが多いため、第2アドレス生成部1005は、まず、可能性の高い位置(たとえば、直前に探索したブロックの動きベクトルと同位置)の参照ブロックに対してブロックマッチングするように画素データのアドレスを生成する。
【0197】
整数精度動きベクトル検出部106は、第2のアドレス生成部105により第1の記憶部103から読み出された参照ブロックの画素データ、及び第2の記憶部104から読み出された処理対象ブロックの画素データとを入力として、当該処理対象ブロックと参照ブロックとの絶対差分誤差和計算し、探索実行可否決定部1001に出力する。
【0198】
この探索実行可否決定部1001では、整数精度動きベクトル検出部106により算出された絶対差分誤差が特定の閾値以下であるか否かが判断され、特定の閾値以下であれば、第2のアドレス生成部1005が前回の探索で検出された動きベクトルを用いて決定した参照ブロックの位置を動きベクトル検出位置と決定し、動きベクトルの探索処理を終了する。
【0199】
一方、絶対差分誤差が特定の閾値以上の場合には、その後、他の参照ブロックに対して動きベクトル探索処理を実行するように第2のアドレス生成部1005に出力する。
【0200】
このように、動きベクトルが検出される可能性の高い位置(たとえば、直前に探索したブロックの動きベクトルと同位置)の参照ブロックに対してブロックマッチングを行い、そのマッチング結果(絶対差分誤差和)により、その後の探索実行の可否を判断することにより、処理速度の向上や消費電力の削減を図ることができる。
【0201】
また、この際、前記の判断の結果、動きベクトル探索を実行しない場合には、動きベクトル検出処理以降で用いる画素データとしては、第1の記憶部103に格納されている参照ブロック中で、前回の探索で検出された動きベクトル位置で示されている画素データが必要となる。
【0202】
そのため、本実施の形態11の動きベクトル検出装置では、探索実行可否決定部1001により、第2のアドレス生成部1005に対して、前回の探索で検出された動きベクトル位置の画素データを整数精度動きベクトル検出部106をスルーして外部に出力するためのパスであるスルーパスを与える旨の指示が出力され、第2のアドレス生成部1005は、第1の記憶部にスルーパスを与え、格納されている参照ブロックの画素データを整数精度動きベクトル検出部106をスルーして外部装置に出力する。
【0203】
このように、前回の動きベクトル探索で検出された動きベクトルを用いる場合であっても、第2のアドレス生成部1005によりスルーパスを与えることにより、動きベクトル検出処理以降で用いる、前回の探索で検出された動きベクトル位置で示されている画素データを外部装置に出力することができる。
【0204】
なお、本発明の実施の形態11による動きベクトル検出装置では、動きベクトルを検出する手段として、整数性どの動きベクトルを検出する整数精度動きベクトル検出部106のみを有するものについて説明したが、これに限定されず、少数精度の動きベクトルを検出するための、少数精度の画素データを生成する補間画素生成部と、前記補間画素生成部から出力されたデータ、及び第2の記憶部から出力されたデータより少数精度の動きベクトルを検出する少数精度動きベクトル検出部とをさらに具備するものであってもよい。
【0205】
(実施の形態12)
また、本発明の動きベクトル検出装置は、前記実施の形態1から実施の形態11以外にも、前記実施の形態1から実施の形態11の内の少なくとも2つ以上を組み合わせたものであってもよく、前記実施の形態1から実施の形態11のそれぞれの効果と同様の効果を得ることができる。
【0206】
【発明の効果】
本発明の請求項1、または請求項に記載の動きベクトル検出装置、及び方法によれば、画像イメージにおける画素並びに対して市松模様に画素データの位置をサブサンプリングすることにより、マクロブロックを構成する全ての画素に対して絶対差分誤差和を求める場合と比較して、比較的高圧縮の場合には同等程度の精度を得ることができ、かつ絶対差分誤差和を求めるために必要とする計算量を、半分にすることができ、処理速度の向上や消費電力の削減につながる。
【0213】
また、本発明の請求項、または請求項に記載の動きベクトル検出装置、及び方法によれば、整数精度の動きベクトルを検出する動きベクトル検出装置において、前記請求項1、5に記載の発明と同様の効果を得ることができる。
【0214】
また、本発明の請求項、または請求項に記載の動きベクトル検出装置、及び方法によれば、少数精度の動きベクトルを検出する動きベクトル検出装置において、前記請求項1、5に記載の発明と同様の効果を得ることができる。
【0215】
また、本発明の請求項、または請求項に記載の動きベクトル検出装置、及び方法によれば、整数精度の動きベクトル、及び少数精度の動きベクトルを検出可能な動きベクトル検出装置において、前記請求項1、5に記載の発明と同様の効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による動きベクトル検出装置の構成を示すブロック図である。
【図2】本発明の実施の形態1による第2のアドレス生成部の構成を示すブロック図である。
【図3】本発明の実施の形態1による第2のアドレス生成部がサブサンプリングを行うマクロブロックの一例を示す図である
【図4】本発明の実施の形態1による第2のアドレス生成部の画素データのアドレス生成処理を説明するためのフローチャートである。
【図5】本発明の実施の形態2による動きベクトル検出装置の構成を示すブロック図である。
【図6】本発明の実施の形態2による動きベクトル検出部の構成を示すブロック図である。
【図7】本発明の実施の形態2による整数精度動きベクトル検出部の動作を説明するためのフローチャートである。
【図8】本発明の実施の形態3による動きベクトル検出装置の構成を示すブロック図である。
【図9】本発明の実施の形態3における動きベクトル検出装置による動きベクトル探索処理の一例を説明するための説明図である。
【図10】本発明の実施の形態3による探索履歴保持部内のデータ構造を示す図である。
【図11】本発明の実施の形態4による動きベクトル検出装置の構成を示すブロック図である。
【図12】領域判定コードを説明するための説明図である。
【図13】本発明の実施の形態4による転送ルール保持部内に格納されている領域判定コードと転送ルールの一例を示す図である。
【図14】参照領域データの画素アドレスの一例を示す図である。
【図15】本発明の実施の形態5による動きベクトル検出装置の構成を示すブロック図である。
【図16】本発明の実施の形態5による第1の記憶部のメモリ構造を説明するための説明図である。
【図17】本発明の実施の形態5による第1の記憶部内のデータ処理を説明するための説明図である。
【図18】領域判定コードと、第1の記憶部が新たに読込むデータ、及び第1の記憶部内でコピーするデータとの対応を示す図である。
【図19】本発明の実施の形態6による動きベクトル検出装置の構成を示すブロック図である。
【図20】本発明の実施の形態6による補間画素生成部を説明するための説明図である。
【図21】本発明の実施の形態6による補間画素生成部による半画素データの生成を説明するための説明図である。
【図22】本発明の実施の形態6による補間画素生成部による半画素データの生成を説明するための説明図である。
【図23】本発明の実施の形態7による動きベクトル検出装置の構成を示すブロック図である。
【図24】本発明の実施の形態7による少数精度動きベクトル検出部の構成を説明するブロック図である。
【図25】本発明の実施の形態8による動きベクトル検出装置の構成を示すブロック図である。
【図26】(a)本発明の実施の形態8による探索可否条件保持部内に格納されている領域判定コードと探索可否条件の一例を示す図である。(b)図26(a)に示した探索可否条件を説明するための説明図である。
【図27】本発明の実施の形態9による動きベクトル検出装置の構成を示すブロック図である。
【図28】本発明の実施の形態10による動きベクトル検出装置の構成を示すブロック図である。
【図29】整数精度動きベクトル検出時の動きベクトル探索の一例を示す図である。
【図30】本発明の実施の形態11による動きベクトル検出装置の構成を示すブロック図である。
【図31】従来の一般的な動きベクトル検出処理を説明するための説明図である。
【符号の説明】
101 データ保持部
102 第1のアドレス生成部
103 第1の記憶部
104 第2の記憶部
105、905、1005 第2のアドレス生成部
106、206 整数精度動きベクトル検出部
301 探索履歴保持部
401 転送ルール保持部
402 転送ルール検出部
501 記憶データ制御部
601 補間画素生成部
602、701 少数精度動きベクトル検出部
603 読み出し方向決定部
1001 探索実行可否決定部
11 カラムカウンタ
12 ロウカウンタ
13 アドレス保持部
14 加算器
21 絶対差分誤差値計算部
22 減算器
23 カウンタ
24 絶対差分誤差和計算部
25、73 動きベクトル検出部
71 第1の絶対差分誤差和演算部
72 第2の絶対差分誤差和演算部
81 補間処理部
82 シフトレジスタ群

Claims (8)

  1. 現画像内の複数の画素からなる処理対象ブロックと、当該現画像に対して時間的に前となる前画像の所定の参照領域データ内の複数の画素からなる参照ブロックとの間で、ブロックマッチングを行い動きベクトルを検出する動きベクトル検出装置において、
    前記処理対象ブロック、及び前記参照領域データのアドレスを生成する第1のアドレス生成部と、
    前記第1のアドレス生成部により指示された参照領域データを保持する第1の記憶部と、
    前記第1のアドレス生成部により指示された処理対象ブロックのデータを保持する第2の記憶部と、
    前記第1の記憶部、及び前記第2の記憶部から出力するデータのアドレスを生成する第2のアドレス生成部と、
    前記第1の記憶部より出力されたデータ、及び第2の記憶部より出力されたデータを用いて動きベクトルを検出する動きベクトル検出部とを具備し、
    前記第2のアドレス生成部は、横方向の画素アドレスをカウントするロウカウンタと、
    縦方向のアドレスをカウントするカラムカウンタと、
    画素データのアドレスを保持するアドレス保持部とを有し、
    前記カラムカウンタのカウント値のLSB(最下位ビット)の反転値を画素データのアドレスに加算することにより、前記参照ブロック及び前記処理対象ブロックの画像イメージに対する画素並びに対して市松模様となるようにサブサンプリングすることを特徴とする動きベクトル検出装置。
  2. 請求項1に記載の動きベクトル検出装置において、
    前記動きベクトル検出部は、前記第1の記憶部から出力されたデータ、及び第2の記憶部から出力されたデータより整数精度の動きベクトルを検出する整数精度動きベクトル検出部であることを特徴とする動きベクトル検出装置。
  3. 請求項1に記載の動きベクトル検出装置において、
    前記動きベクトル検出部は、前記第1の記憶部からの出力データを入力とし、少数精度の画素データを生成する補間画素生成部と、
    前記補間画素生成部から出力されたデータ、及び第2の記憶部から出力されたデータより少数精度の動きベクトルを検出する少数精度動きベクトル検出部とからなることを特徴とする動きベクトル検出装置。
  4. 請求項1に記載の動きベクトル検出装置において、
    前記動きベクトル検出部は、前記第1の記憶部から出力されたデータ、及び第2の記憶部から出力されたデータより整数精度の動きベクトルを検出する整数精度動きベクトル検出部と、
    前記第1の記憶部からの出力データを入力とし、少数精度の画素データを生成する補間画素生成部と、
    前記補間画素生成部から出力されたデータ、及び第2の記憶部から出力されたデータより少数精度の動きベクトルを検出する少数精度動きベクトル検出部とからなることを特徴とする動きベクトル検出装置。
  5. 現画像内の複数の画素からなる処理対象ブロックと、当該現画像に対して時間的に前となる前画像の所定の参照領域データ内の複数の画素からなる参照ブロックとの間で、ブロックマッチングを行い動きベクトルを検出する動きベクトル検出方法において、
    前記処理対象ブロック、及び前記参照領域データのアドレスを生成する第1のアドレス生成ステップと、
    前記第1のアドレス生成ステップにより指示された参照領域データを保持する第1の記憶ステップと、
    前記第1のアドレス生成ステップにより指示された処理対象ブロックのデータを保持する第2の記憶ステップと、
    前記保持された参照領域データ、及び処理対象ブロックのデータから出力する画素データのアドレスを生成する第2のアドレス生成ステップと、
    前記参照領域データ、及び処理対象ブロックのデータを用いて動きベクトルを検出する動きベクトル検出ステップとを有し、
    前記第2のアドレス生成ステップは、横方向の画素アドレスをカウントする第1のカウントステップと、
    縦方向のアドレスをカウントする第2のカウントステップと、
    画素データのアドレスを保持するアドレス保持ステップとを有し、
    前記第2のカウントステップのカウント値のLSB(最下位ビット)の反転値を画素データのアドレスに加算することにより、前記参照ブロック及び前記処理対象ブロックの画像イメージに対する画素並びに対して市松模様となるようにサブサンプリングすることを特徴とする動きベクトル検出方法。
  6. 請求項5に記載の動きベクトル検出方法において、
    前記動きベクトル検出ステップは、前記参照領域データ、及び処理対象ブロックのデータを用いて整数精度の動きベクトルを検出する整数精度動きベクトル検出ステップであることを特徴とする動きベクトル検出方法。
  7. 請求項5に記載の動きベクトル検出方法において、
    前記動きベクトル検出ステップは、前記参照領域データを構成する画素データを入力とし、少数精度の画素データを生成する補間画素生成ステップと、
    前記補間画素生成ステップから出力されたデータ、及び処理対象ブロックのデータを用いて少数精度の動きベクトルを検出する少数精度動きベクトル検出ステップとからなることを特徴とする動きベクトル検出方法。
  8. 請求項5に記載の動きベクトル検出方法において、
    前記動きベクトル検出ステップは、前記参照領域データ、及び処理対象ブロックのデータを用いて整数精度の動きベクトルを検出する整数精度動きベクトル検出ステップと、
    前記参照領域データを構成する画素データを入力とし、少数精度の画素データを生成する補間画素生成ステップと、
    前記補間画素生成ステップから出力されたデータ、及び処理対象ブロックのデータを用いて少数精度の動きベクトルを検出する少数精度動きベクトル検出ステップとからなることを特徴とする動きベクトル検出方法。
JP2000160829A 2000-05-30 2000-05-30 動きベクトル検出装置 Expired - Fee Related JP3611507B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2000160829A JP3611507B2 (ja) 2000-05-30 2000-05-30 動きベクトル検出装置
US09/866,928 US6885705B2 (en) 2000-05-30 2001-05-30 Motor vector detection apparatus for performing checker-pattern subsampling with respect to pixel arrays
US10/990,386 US7133453B2 (en) 2000-05-30 2004-11-18 Motion vector detection apparatus for performing checker-pattern subsampling with respect to pixel arrays
US11/023,529 US7099393B2 (en) 2000-05-30 2004-12-29 Motion vector detection apparatus for performing checker-pattern subsampling with respect to pixel arrays

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000160829A JP3611507B2 (ja) 2000-05-30 2000-05-30 動きベクトル検出装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004225082A Division JP2005006351A (ja) 2004-08-02 2004-08-02 動きベクトル検出装置及び動きベクトル検出方法

Publications (2)

Publication Number Publication Date
JP2001339725A JP2001339725A (ja) 2001-12-07
JP3611507B2 true JP3611507B2 (ja) 2005-01-19

Family

ID=18664958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000160829A Expired - Fee Related JP3611507B2 (ja) 2000-05-30 2000-05-30 動きベクトル検出装置

Country Status (2)

Country Link
US (3) US6885705B2 (ja)
JP (1) JP3611507B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3596519B2 (ja) * 2001-12-13 2004-12-02 ソニー株式会社 画像信号処理装置及び方法
JP3596520B2 (ja) * 2001-12-13 2004-12-02 ソニー株式会社 画像信号処理装置及び方法
JP3596521B2 (ja) * 2001-12-13 2004-12-02 ソニー株式会社 画像信号処理装置及び方法
KR100865034B1 (ko) * 2002-07-18 2008-10-23 엘지전자 주식회사 모션 벡터 예측 방법
US7386373B1 (en) * 2003-01-07 2008-06-10 Garmin International, Inc. System, method and apparatus for searching geographic area using prioritized spatial order
US6745115B1 (en) 2003-01-07 2004-06-01 Garmin Ltd. System, method and apparatus for searching geographic area using prioritized spacial order
WO2004079916A2 (en) * 2003-03-03 2004-09-16 Mobilygen Corporation Array arrangement for memory words and combination of video prediction data for an effective memory access
US20050232355A1 (en) * 2004-04-15 2005-10-20 Srinivas Cheedela Video decoder for supporting both single and four motion vector macroblocks
JP4488805B2 (ja) 2004-06-25 2010-06-23 パナソニック株式会社 動きベクトル検出装置および方法
US7630585B2 (en) * 2004-06-25 2009-12-08 Intel Corporation Image processing using unaligned memory load instructions
KR20090014371A (ko) * 2004-07-13 2009-02-10 파나소닉 주식회사 움직임 검출 장치
US7986733B2 (en) * 2004-07-30 2011-07-26 Broadcom Corporation Tertiary content addressable memory based motion estimator
US7873107B2 (en) * 2004-07-30 2011-01-18 Broadcom Corporation Tertiary content addressable memory based motion estimator
JP4744943B2 (ja) * 2004-08-19 2011-08-10 パナソニック株式会社 動きベクトル検出方法および動画処理装置
GB2431787B (en) * 2005-10-31 2009-07-01 Hewlett Packard Development Co A method of tracking an object in a video stream
US8526680B2 (en) * 2005-11-30 2013-09-03 Nikon Corporation Image processing method, image processing program, image processing device, and imaging device
JP4793070B2 (ja) * 2006-04-12 2011-10-12 ソニー株式会社 動きベクトル探索方法及び装置
JP4692371B2 (ja) * 2006-04-26 2011-06-01 オムロン株式会社 画像処理装置、画像処理方法、画像処理プログラム、および画像処理プログラムを記録した記録媒体、ならびに移動物体検出システム
US20080144902A1 (en) * 2006-10-25 2008-06-19 Aloka Co., Ltd. Optimal block searching algorithm for tissue displacement estimation in elasticity imaging
JP2008124580A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd 動きベクトル検出方法、動きベクトル検出装置、及び撮像システム
JP2010515336A (ja) * 2006-12-27 2010-05-06 インテル コーポレイション ビデオ情報をデコード及びエンコードする方法及び装置
FR2923339B1 (fr) * 2007-11-05 2009-12-11 Commissariat Energie Atomique Procede de lecture d'une matrice bidimensielle de pixels et dispositif pour la mise en oeuvre d'un tel procede
US8358696B2 (en) * 2008-12-31 2013-01-22 Intel Corporation Motion estimation techniques
TWI419146B (zh) * 2009-07-23 2013-12-11 Novatek Microelectronics Corp 畫面翻轉方法及裝置
SG190064A1 (en) 2010-11-08 2013-06-28 Agency Science Tech & Res A piezoelectric resonator
JP5786478B2 (ja) * 2011-06-15 2015-09-30 富士通株式会社 動画像復号装置、動画像復号方法、及び動画像復号プログラム
US10085016B1 (en) 2013-01-18 2018-09-25 Ovics Video prediction cache indexing systems and methods
EP2772189A1 (en) * 2013-02-28 2014-09-03 Koninklijke Philips N.V. Apparatus and method for determining vital sign information from a subject
KR20140119220A (ko) * 2013-03-27 2014-10-10 한국전자통신연구원 영상 재압축 제공 장치 및 방법
JP2019149721A (ja) * 2018-02-27 2019-09-05 キヤノン株式会社 動画像符号化装置、動画像符号化装置の制御方法及びプログラム
CN116074533B (zh) * 2023-04-06 2023-08-22 湖南国科微电子股份有限公司 运动矢量预测方法、系统、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5278663A (en) * 1991-06-28 1994-01-11 Samsung Electronics Co. Ltd. Method for compensating the vibration of an image and device therefor in a video camera
US5245654A (en) * 1991-10-10 1993-09-14 Cermetek Microelectronics, Inc. Solid state isolation device using opto-isolators
JPH0686272A (ja) 1992-08-31 1994-03-25 Sony Corp 動きベクトル検出装置
FR2703866B1 (fr) * 1993-04-09 1995-06-02 Rockwell International Corp Dispositif de couplage par opto-coupleur entre un modem et une ligne téléphonique.
JP3031152B2 (ja) * 1993-12-24 2000-04-10 日本電気株式会社 動き予測プロセッサ及び動き予測装置
US5777836A (en) * 1994-04-01 1998-07-07 U.S. Robotics Mobile Communications Corp. Line current protection circuit and method for use with a PCMCIA-architecture modem card
JP3460759B2 (ja) 1995-08-04 2003-10-27 日本電信電話株式会社 動きベクトル検出方法と装置
JPH1013835A (ja) 1996-06-19 1998-01-16 Ricoh Co Ltd 動きベクトル検出方法
US6332002B1 (en) * 1997-11-01 2001-12-18 Lg Electronics Inc. Motion prediction apparatus and method
US20020015513A1 (en) * 1998-07-15 2002-02-07 Sony Corporation Motion vector detecting method, record medium on which motion vector calculating program has been recorded, motion detecting apparatus, motion detecting method, picture encoding apparatus, picture encoding method, motion vector calculating method, record medium on which motion vector calculating program has been recorded
JP2000050278A (ja) 1998-07-28 2000-02-18 Sony Corp 動きベクトル算出方法及び動きベクトル算出プログラムを記録した記録媒体

Also Published As

Publication number Publication date
US6885705B2 (en) 2005-04-26
US7133453B2 (en) 2006-11-07
US20020041631A1 (en) 2002-04-11
US20050089100A1 (en) 2005-04-28
JP2001339725A (ja) 2001-12-07
US20050135487A1 (en) 2005-06-23
US7099393B2 (en) 2006-08-29

Similar Documents

Publication Publication Date Title
JP3611507B2 (ja) 動きベクトル検出装置
JP3863376B2 (ja) 動き推定器
KR100486249B1 (ko) 움직임 추정 장치 및 탐색영역에서 레퍼런스매크로블록창의 스캐닝 방법
JPH03256485A (ja) 動きベクトル検出回路
US20060002472A1 (en) Various methods and apparatuses for motion estimation
JP2861462B2 (ja) 動きベクトル検出装置
JP2000106674A (ja) 動き検出方法および装置
CN112261413B (zh) 视频编码方法、编码装置、电子设备和存储介质
JPH07203457A (ja) 動きベクトル検出装置
US6380987B1 (en) Motion vector detection circuit enabling high-speed search of motion vector
CN110691253A (zh) 一种基于帧间预测的编解码方法及装置
JP2005006351A (ja) 動きベクトル検出装置及び動きベクトル検出方法
JP2008141249A (ja) 動きベクトル検出装置およびその方法
JP4178562B2 (ja) 動きベクトル検出装置および方法
JPS62206980A (ja) 動画像の動き推定における初期偏位方式
CN113630601B (zh) 一种仿射运动估计方法、装置、设备及存储介质
JPH0787499A (ja) 動きベクトル検出装置および方法
JP4155102B2 (ja) 画素値演算装置、動画像符号化装置及び動画像復号化装置
JPH0795585A (ja) 動きベクトル検出装置
KR100247111B1 (ko) 동작 검출 장치
US8270478B2 (en) Method and apparatus for computing a sliding sum of absolute differences
JP2934156B2 (ja) 階層型動き検出方法と装置
JP2901848B2 (ja) ベクトル相関検出回路
JP3214660B2 (ja) 動きベクトル検出装置
JP4160855B2 (ja) ブロックマッチング画像処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041019

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081029

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091029

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101029

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111029

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121029

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees