JP4075238B2 - 動きベクトル検出方法及び記録媒体 - Google Patents
動きベクトル検出方法及び記録媒体 Download PDFInfo
- Publication number
- JP4075238B2 JP4075238B2 JP23265699A JP23265699A JP4075238B2 JP 4075238 B2 JP4075238 B2 JP 4075238B2 JP 23265699 A JP23265699 A JP 23265699A JP 23265699 A JP23265699 A JP 23265699A JP 4075238 B2 JP4075238 B2 JP 4075238B2
- Authority
- JP
- Japan
- Prior art keywords
- motion vector
- block
- pixels
- pixel
- sampling
- 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
Links
Images
Landscapes
- Color Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Analysis (AREA)
Description
【発明の属する技術分野】
本発明は、例えば動画像符号化における動き補償予測などに用いられる動きベクトルを検出する方法に関するものである。
【0002】
【従来の技術】
動きベクトルは、動画像のある時間における画像において、隣接する複数の画素で構成される画素ブロックが、異なる時間の画像中のどの位置と一番似ているかを示すベクトルである。この動きベクトルを検出する手法として、例えば文献「ディジタル画像圧縮の基礎」(安田浩、渡辺裕 著、日経BP出版センター、1997)p.47記載のブロックマッチング法がある。
【0003】
図11は、従来の動きベクトル検出方法を説明する図である。図11(a)においては、ベクトル検出の対象となるテンプレートブロックをTB1、探索範囲をSB1と表している。また、探索範囲SB1の画素を(○)、テンプレートブロックTB1の画素を(△)で示している。図11(a)中では、探索範囲SB1にテンプレートブロックTB1を重ねて示しているため、テンプレートブロックTB1が重なっている部分の探索範囲SB1の画素(○)は省略されている。また、図1中では、テンプレートブロックTB1は8画素×8ラインとなっているが、このブロックの大きさはこの大きさ以外であっても良い。
【0004】
動きベクトルの検出は、ある時間の画像ブロックが異なる時間の画像中のどこに移動したか(又は、どこから移動したか)を探索するものである。つまり探索範囲SB1は上記異なる時間の画素ブロックであり、テンプレートブロックTB1は上記ある時間の画像中から切り出された画素ブロックである。したがって、テンプレートブロックTB1が探索範囲SB1中のどの部分から移動したものかを探索することで動きベクトルを検出する。
【0005】
この動きベクトルを検出する方法として、従来、上記ブロックマッチング法による全探索法が知られている。この方法では、まずある時間の画像中から切り出されたテンプレートブロックTB1中の各画素値と、異なる時間の画像の探索範囲SB1中から取り出した評価ブロックSBM1の各画素値の違いを、各画素ごとに差分絶対値あるいは差分自乗値などで算出し、これらの値の総和を求め評価値とする。次に評価ブロックSBM1を探索範囲内で左右あるいは上下に1画素移動し、この移動後の画像ブロックSBM1の各画素値と、テンプレートブロックTB1の各画素値との違いを、上記と同様に算出し、評価値を求める。
【0006】
このように評価ブロックSBM1を1画素分左右・上下に移動しながら、それぞれの評価値を算出していく。そして上記評価値が最小となる評価ブロックSBM1から、テンプレートブロックTB1が移動してきたと判断する。図11(a)の例では、探索範囲SB1が16画素×16ラインで構成されており、テンプレートブロックTB1が水平・垂直方向にそれぞれ9回移動するため、評価ブロックSBM1は9×9=81組存在する。また図11(a)中では、動きベクトルの検出範囲を水平・垂直方向ともに±4とし、例えば図11(a)中の評価ブロックSBM1における評価値が最小だった場合には、動きベクトルは(3,3)となる。
【0007】
上記従来の全探索法においては、全探索領域を評価するためには、テンプレートブロックTB1と比較する評価ブロックが81組存在し、各評価値を算出するためには、評価ブロックに8×8=64画素あるので、81×64=5184回の差分絶対値あるいは差分自乗値を算出する必要があり、演算量が多いという問題がある。
【0008】
一方、上記演算量を削減するための手法として、以下に示す2ステップ探索法が知られている。すなわち、第1ステップでは、複数の画素から1つの画素を選択するサンプリングを行って縮小画像を作成し、この縮小画像上で動きベクトルを評価する。そして、次の第2ステップでは、第1ステップで求められた初期変位の周囲を、サンプリング前の画像上で、相対的に狭い探索範囲で評価するものである。
【0009】
図11(b)は、この第1ステップにおいて、4画素×4ラインから1画素をサンプリングするときに選択される画素を示したものであり、探索範囲内の画素のサンプリング点を(●)で示し、テンプレートブロック中の画素のサンプリング点を(▲)で示している。これにより、図11(b)に示す例においては、テンプレートブロックTB2と比較して評価値を求めるべき評価ブロックは3×3=9組であり、各評価値を算出するためには、各ブロックに2×2=4画素あるので、9×4=36回の差分絶対値あるいは差分自乗値を算出することとなる。さらに第2ステップとして、上記初期変位の周りを例えば±2の範囲で探索する場合、テンプレートブロックTB2と比較して評価値を求めるべき評価ブロックは5×5=25組あり、各評価値を算出するために8×8=64画素あるので、25×64=1536回の差分絶対値あるいは差分自乗値を算出することとなる。したがって、演算量の合計は36+1536=1572回であり、上記全探索法に比較すれば演算量は大幅に削減される。つまり、全探索法によれば演算量が多いため、ハードウェアの回路規模が大きくなってしまうが、この2ステップ探索法によればその問題を解決できるのである。
【0010】
【発明が解決しようとする課題】
しかしながら、2ステップ探索法によれば、次のような問題がある。すなわち、演算量の削減のために、第1ステップにおいて画素のサンプリングを行っているため、この初期変位を求める段階で探索点の選択を誤ると、以降の段階で検出される動きベクトルが上記全探索法で検出される動きベクトルとは異なったものとなり、符号化効率が低下してしまう。ここで、探索点の選択を誤った具体例を図12を例にとって説明する。
【0011】
図12において枠内の値は画素値を示しており、4画素×4ラインから1画素をサンプリングした場合、斜線を施した枠内の値を選択する。この場合は、4画素×4ラインからなる領域中の「左上隅の画素」を固定的に選択している。この図12(a)及び(b)の表す画像は、実際は全く異なる画像であるが、サンプリング点で構成される縮小画像は同じものとなっている。したがって、このようなサンプリング点の選択方法では、初期変位を正確に求めることができなくなってしまう。これは、動きベクトルを適切に求めるという観点から好ましくない。
【0012】
本発明はこのような事情に鑑みてなされたものであり、動きベクトルの検出精度を向上させるとともに、動きベクトルを検出するための演算量を削減することができ、ハードウェアの回路規模を削減することのできる動きベクトル検出方法を提供することを目的としている。
【0013】
【課題を解決するための手段、及び発明の効果】
上記目的を達成するためになされた本発明の動きベクトル検出方法は、ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、テンプレートブロックと探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出することを前提とする。そして、テンプレートブロック及び評価ブロックの画素中よりサンプリングした画素の値を用いて動きベクトルの検出を行う。このように、テンプレートブロックと評価ブロックとのブロックマッチングを、各ブロックの全ての画素ではなく、サンプリングした画素同士で行うため、演算量が低減される。
【0014】
しかし、サンプリング手法が従来のように固定位置にて行われると、図12を参照して説明したように、実際は全く異なる画像であっても同じ画像であると判断してしまう場合も生じる。これは、固定的なサンプリング手法では、テンプレートブロック及び評価ブロックの特徴を反映した画素が選択されない可能性が高いことに起因している。
【0015】
そこで、ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理を行うようにしたのである。この「ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理」については、いくつかの観点に基づいているので、適宜分類して説明する。
【0016】
(1)画素値の大小比較
請求項1の動きベクトル検出方法におけるサンプリング点設定処理では、ブロックの縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、画素値の大きい順または小さい順にライン上の全画素数よりも少ない数だけ選択してサンプリング点を設定する。このようなサンプリングをすれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなり、ブロックの特徴点を反映していると言えるため、動きベクトルの検出精度が向上する。すなわち、動きベクトルの検出精度を向上させるとともに、動きベクトルを検出するための演算量を削減することができる。したがって、ハードウェアの回路規模も削減できる。
【0017】
なお、「所定数のライン」については、ブロックを構成する全ラインでもよいし1ラインでもよい。また、画素値の大きい順または小さい順にライン上の全画素数よりも少ない数だけ選択するのであるから、これは最低1個でもよい。そして、ライン数が少ないほど、あるいは1ライン上から選択する画素数が少ないほど演算量は低減できる。しかし、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるので、これらについては両者のバランスを考慮して設定することが望ましい。
【0018】
さらに、請求項1の動きベクトル検出方法におけるサンプリング点設定処理においては、ライン数が複数である場合には、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行う。
【0019】
このようにすれば、ブロック中の画素値の「大小差」も判る。つまり、画素値の大きいものあるいは小さいものだけを選択すると、例えばブロック中における画素値の大小差が大きいものと、画素値の大小差が小さいものとの区別が付け難くなるが、画素値の大小差も反映させれば、それらの区別は容易に付くからである。したがって、上述した「大小度合い」に加えて、よりブロックの特徴点がサンプリングされるようになる。
【0020】
さらに、請求項2に示すように、所定数のライン群中における隣接ライン間で、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。これは、例えばブロック内の画素値の分布が均一であれば、画素値の大きいものを選択するラインと小さいものを選択するラインをどのようにとっても問題ないが、実際には画素値の分布は偏りがあるため、サンプリングした画素がブロック内の画素値の大小差が適切に反映していないことが想定されることを考慮したものである。つまり、隣接ライン間で画素値の大きい順・小さい順での選択を交互に行えば、画素値の分布に偏りがあった場合でも、極力画素値の大小差を反映したサンプリングが実現できるため、より画像の特徴点がサンプリングされるようになる。
【0021】
(2)画素値の差分値比較
請求項3の動きベクトル検出方法におけるサンプリング点設定処理では、テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、隣り合う画素間における画素値の差分値が大きい画素の組合せ又は小さい画素の組み合わせを所定数選択してサンプリング点として設定する。上述した請求項1の場合には、ブロック中の画素値の「大小差」も考慮することとなる。これはいわばマクロ的な観点からの画素値の大小差であるが、請求項3の場合には、ミクロ的な観点からの画素値の大小差に着目している。
【0022】
例えば、ブロック中の両端に存在する画素同士に所定の画素値の差分があっても、それらの間の画素値の変化は判らない。グラデーション的に明暗変化しているだけかもしれないし、急激な明暗変化がいくつも存在しているかもしれない。つまり、それらの間の明暗変化については判らない。それに対し、隣り合う画素間における画素値の差に着目すると、例えば差分値の最も大きな画素同士の組合せが選択されると、少なくとも同一ライン上においては、その差分値を超えるような明暗変化は他にはないことが判る。逆に、差分値の最も小さな画素同士の組合せが選択されると、少なくとも同一ライン上においては、その差分値を下回るような明暗変化は他にはないことが判る。例えばその最小の差分値がそれなりに大きければ、該当するライン全体として明暗変化が激しいことが判る。このように、隣接画素間の画素差分値が大きな画素をサンプリングすれば、ブロックの特徴点を反映した画素を得ることができる。
【0023】
なお、この場合の「所定数のライン」については、請求項1と同様に全ラインでもよいし1ラインでもよい。また、選択画素数が少ないほど演算量は低減できるが、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるため、これらについては両者のバランスを考慮して設定することが望ましい点についても同様である。
【0024】
さらに、請求項3の動きベクトル検出方法におけるサンプリング点設定処理においては、ライン数が複数である場合には、画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行う。差分値が大きい画素の組合せ・差分値が小さい画素の組合せを混在させることで、より画像の特徴点がサンプリングされるようになる。さらに、請求項4に示すように、所定数のライン群中における隣接ライン間で、画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とを交互に変えてもよい。
【0029】
(3)両画像のサンプリング点のアドレスを比較
請求項5の動きベクトル検出方法では、テンプレートブロックに対して請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、評価ブロックに対して請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて動きベクトルを検出する。最終的に動きベクトルを検出できた場合の評価ブロックの画素値とテンプレートブロックの画素値のマッチング度合いは高いので、両ブロックに同じサンプリング点設定処理を施せば、サンプリングされる画素の位置が同じになる可能性が高い。したがって、両ブロックのサンプリング点のアドレスの一致度合いに基づけば、動きベクトルを検出することができる。そして、サンプリング点設定処理の段階でブロックの特徴点を反映しているため動きベクトルの検出精度が向上しており、且つ演算量を低減することも実現している。
【0030】
(4)1の画像のサンプリング点の画素値と別の画像における同じアドレスの画素値とを比較
請求項6の動きベクトル検出方法では、テンプレートブロックに対して請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、評価ブロック中における、テンプレートブロックについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて動きベクトルを検出する。上述したように、最終的に動きベクトルを検出できた場合の評価ブロックの画素値とテンプレートブロックの画素値のマッチング度合いは高い。したがって、評価ブロック中における、テンプレートブロックについてのサンプリング点と同じアドレスの画素値と、テンプレートブロックからサンプリングした画素値とのマッチング度合いに基づけば、やはり、動きベクトルを検出できる。そして、動きベクトルの検出精度の向上及び演算量の低減という効果も得られる。
【0041】
また、請求項7に示すように、請求項1〜6のいずれか記載の動きベクトル検出方法を実行する機能は、例えば、デジタル回路やコンピュータシステム側で起動するプログラムとして備えられる。プログラムで実現する場合、例えば、FD、光磁気ディスク、CD−ROM、ハードディスク等の機械読み取り可能な記録媒体に記憶し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMを機械読み取り可能な記録媒体として前記プログラムを記憶しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いても良い。
【0042】
なお、本発明の動きベクトル検出方法によって検出された動きベクトルは、例えば動画像符号化における動き補償予測に用いられることが考えられるが、それに限られるわけではない。例えば動画像中の異なる動きを持つ物体の検出や、画像中の動きのある領域と静止領域(例えば背景)とを分割する、といった目的のために用いることもできる。
【0043】
【発明の実施の形態】
以下、本発明が適用された実施例について図面を用いて説明する。なお、本発明の実施の形態は、下記の実施例に何ら限定されることなく、本発明の技術的範囲に属する限り、種々の形態を採り得ることは言うまでもない。
【0044】
[第1実施例]
図1は、第1実施例の動きベクトル検出装置の概略構成を示すブロック図であり、サンプリング比をNとした場合の、N画素精度の動きベクトル(以下、動きベクトルを「MV」と略記することもある。)検出部11と、1画素精度のMV検出部12とを備える。N画素精度MV検出部11には、入力画像データ及び参照画像データが入力される。具体的には、入力画像中の動きベクトルの移動後のブロックであるテンプレートブロックTBと、そのテンプレートブロックTBが移動してきた参照画像中の元のブロックを含む探索範囲SBとが入力される。
【0045】
そして、このN画素精度MV検出部11では、テンプレートブロックTB及び探索範囲SB中から取り出した評価ブロック(図2中ではSBMと表している)の両者について後述するサンプリングを行い、そのサンプリング点の画素同士のマッチング度合いを判定する。具体的には、画素値の違いを各画素ごとに差分絶対値などで算出し、これらの値の総和を求め評価値とする。このブロックマッチングについては、図2に示すように、入力画像中のテンプレートブロックTBの位置に対応する参照画像中の位置の評価ブロックSBMから開始する。そして、続いて評価ブロックSBMを探索範囲SB内で左右あるいは上下にN画素移動し、この移動後の画像ブロックについてやはり同様のサンプリングを行って得たサンプリング点の各画素値と、テンプレートブロックTBの各画素値との違いを、上記と同様に算出して評価値を求める。このように評価ブロックをN画素分左右・上下に所定回数、すなわち最初の評価ブロックの位置から上下左右にS画素分の範囲(これが探索範囲SB)を移動しながら、それぞれの評価値を算出していく。そして上記評価値が最小となる評価ブロックを、初期変位MVSとして決定する。
【0046】
一方、図1に示すN画素精度MV検出部11から1画素精度MV検出部12へは、テンプレートブロックTB、探索範囲SBのデータに加えて、上述の初期変位MVSのデータが出力される。そして、1画素精度MV検出部12では、探索範囲SB中の初期変位MVSの周囲を評価していく。その評価手法は、初期変位MVSの周囲を左右あるいは上下に1画素移動し、この移動後の評価ブロックとテンプレートブロックTBの各画素同士のマッチング度合いを判定する。つまり、1画素単位で評価するのである。そして上記評価値が最小となる評価ブロックを、動きベクトルMV1として決定する。なお、初期変位MVSの周囲のどの程度の範囲を1画素精度で評価するかは、予め設定されているが、相対的には、N画素精度MV検出部11において探索する範囲よりは小さく設定される。
【0047】
これらの説明からも判るように、本実施例の動きベクトル検出装置は、いわゆる2ステップ探索法を実行して動きベクトルを求めるものであり、N画素精度MV検出部11において第1検出ステップが実行され、1画素精度MV検出部12にて第2検出ステップが実行される。なお、1画素精度MV検出部12から外部へは、動きベクトルMV1と、その動きベクトルMV1を決定した際の差分絶対値和が出力される。
【0048】
ここまでで説明した概略構成は、従来から存在する2ステップ探索法を用いた動きベクトルの検出方法と同じであるが、本第1実施例では、N画素精度MV検出部11において実行される第1検出ステップの内容が従来と異なっている。具体的には、テンプレートブロックTB及び探索範囲SB内の評価ブロックSBMを構成する画素サンプリング点を設定する際に工夫を施しているので、次に、そのサンプリング点設定処理について説明する。
【0049】
図3には、第1実施例のサンプリング点設定処理の具体例を示した。ここでは、サンプリング対象のテンプレートブロックTB及び評価ブロックを、図3(a)に示すように縦8画素×横8画素の画素ブロックとする。そして、この画素ブロックから4画素を選択する場合、縦方向に8ラインある内から2ライン選択し、その選択した各ライン中から2画素選択する。具体的には、1ライン目と5ライン目から選択する。そして、各ライン中から2画素選択する際には、まず1ライン目を構成する8画素の画素値を大小比較し、画素値の大きいものから順に2画素選択する。次に、5ライン目の画素値を大小比較し、今度は画素値の小さいものから順に2画素選択する。
【0050】
このようなサンプリング手法にて選択された画素は、図3(c)に示すように、1ライン目においては、(上から)3番目の画素(画素値:255)と4番目の画素(画素値:231)となり、5ライン目においては、(上から)7番目の画素(画素値:224)と8番目の画素(画素値:207)となる。
【0051】
図3(b)は、比較のために、従来のサンプリング手法にて選択された画素を示している。従来は、固定的に各ライン(この場合は1ライン目と5ライン目)の1番目と5番目の画素を選択していた。したがって、1ライン目からは画素値207の画素が2つと、5ライン目からは画素値が240の画素が2つ選択される。これは、ブロック内において位置的な偏りを無くすという観点から設定されたものであるが、このような選択手法であれば、図3(c)に示す画素ブロックにおいても、同じ画素値となる。つまり、この図3(b)と図3(c)の画素ブロックは、1,5ライン目の1,5番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図3(c)の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【0052】
これに対して、図2(c)にて示したサンプリング手法であれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなっている。さらに、単なる「大小度合い」だけでなく、ブロック中の画素値の「大小差」も判る。したがって、ブロックの画像的特徴点を反映したサンプリングがなされていると言える。そのため、動きベクトルの検出精度が向上する。なぜなら、不適切な初期変位MVSを決定してしまうと、その後、1画素精度MV検出部12で、探索範囲SB中の初期変位MVSの周囲を評価していった場合に、やはり実際の移動元のブロックを検出できない可能性が高くなるからである。このように、その第1検出ステップにおける初期変位MVSを適切に決定することで、動きベクトルの検出精度をも向上させることができる。なお、基本的にはサンプリング手法を採用しているため、演算量の低減も実現でき、ハードウェアの回路規模も削減できる。
【0053】
[第1実施例の別態様]
(1)上述した具体例では、図3に例示したように8ラインの内から2ライン選択するようにしたが、これは全ラインであってもよいし、1ラインであってもよい。また、2ライン選択する場合に、1ライン目と5ライン目に限定されることはなく、他のラインであってもよい。また、ラインを構成する画素から選択する場合には、ライン上の全画素数よりも少ない数だけ選択すればよい。したがって、最低1個でもよい。そして、選択するライン数が少ないほど、あるいは1ライン上から選択する画素数が少ないほど演算量は低減できる。しかし、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるので、これらについては両者のバランスを考慮して設定することが望ましい。
【0054】
(2)また、上記具体例では、図3に示すように、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行った。しかし、全ラインについて画素値の大きい順に選択してもよいし、逆に画素値の小さい順に選択してもよい。サンプリング点を設定する処理とをラインに応じて変えて行った。但し、両者を混在させた方が、画素値の大小差も反映されるため、適切なサンプリングとなる場合が多いと考えられる。
【0055】
(3)また、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを前提とし、選択ライン数が3ライン以上の場合には、選択ライン群中における隣接ライン間で、画素値の大きい順に選択してサンプリング点を設定する処理と、画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。ブロック中における画素値の分布が偏っていることも考えられるので、大きい順・小さい順での選択を交互に行えば、より画像の特徴点がサンプリングされるようになると考えられるからである。
【0056】
[第2実施例]
本第2実施例においてもサンプリング点設定処理が特徴であり、動きベクトル検出装置として実現した場合の概略構成は図1と同様である。したがって、N画素精度MV検出部11において実行されるサンプリング点設定処理について説明する。
【0057】
図4には、第2実施例のサンプリング点設定処理の具体例を示した。上述した第1実施例の場合と同様に、サンプリング対象のブロックを、図4(a)に示すように縦8画素×横8画素の画素ブロックとして説明する。そして、この画素ブロックから4画素を選択する場合、縦方向に8ラインある内から2ライン選択し、その選択した各ライン中から2画素選択する。具体的には、1ライン目と5ライン目から選択する。
【0058】
そして、各ライン中から2画素選択する際、本第2実施例においては、まず1ライン目を構成する8画素について、隣り合う(この場合は上下)画素値の差分値を算出し、差分値の大きい組み合わせの画素値を2画素選択する。図4(c)に示すように、この具体例の1ライン目の1番目と2番目の画素値の差分値(2番目の画素値から1番目の画素値を減算した値)は24であり、以下の画素値間の差分値はそれぞれ24,−24,−24,0,0,0である。したがって、この場合は、1番目の画素(画素値:207)と2番目の画素(画素値:231)が選択される。なお、2番目と3番目の画素値の差分値も同じ24であるため、これらを選択してもよいが、ここでは上位番目の画素を優先することとした。
【0059】
次に、5ライン目を構成する8画素について、隣り合う(この場合は上下)画素値の差分値を算出し、今度は、差分値の小さい組み合わせの画素値を2画素選択する。図4(c)に示すように、この具体例の5ライン目の1番目と2番目の画素値の差分値は7であり、以下の画素値間の差分値はそれぞれ8,−8,−7,0,−16,−17である。したがって、この場合は、7番目の画素(画素値:224)と8番目の画素(画素値:207)が選択される。
【0060】
図4(b)は、比較のために、従来のサンプリング手法にて選択された画素を示している。これは図3(b)に示した具体例と同じであり、固定的に、1ライン目及び5ライン目について1番目及び5番目の画素を選択している。したがって、1ライン目からは画素値207の画素が2つと、5ライン目からは画素値が240の画素が2つ選択される。このような選択手法であれば、図4(c)に示す画素ブロックにおいても、同じ画素値となる。つまり、この図4(b)と図4(c)の画素ブロックは、1,5ライン目の1,5番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図4(c)の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【0061】
これに対して、図4(c)にて示したサンプリング手法であれば、隣接画素間の画素値の「大小差」を考慮しているため、ブロックの画像的特徴点を反映したサンプリングがなされ、動きベクトルの検出精度が向上する。したがって、上述した第1実施例の場合と同様に、サンプリングによって演算量の低減を実現しているにもかかわらず、動きベクトルの検出精度を向上させるという効果を発揮する。
【0062】
なお、上述した第1実施例の場合には、ブロック中の画素値の「大小差」を考慮することとなっていたが、これはいわばマクロ的な観点からの画素値の大小差である。これに対して本第2実施例の場合は、隣接画素間というミクロ的な観点からの画素値の大小差に着目したものである。
【0063】
[第2実施例の別態様]
(1)第1実施例の場合と同様に、図4に例示した8ラインの内から選択するライン数は2に限られず、全ラインであってもよいし、1ラインであってもよい。また、2ライン選択する場合に、1ライン目と5ライン目に限定されることはなく、他のラインであってもよい。また、ラインを構成する画素から選択する場合には、ライン上の全画素数よりも少ない数だけ選択すればよいため、最低2個となる。そして、選択ライン数が少ないほど、あるいは1ライン上から選択する画素数が少ないほど演算量は低減できるが、逆に選択画素数が少ないほどブロックの特徴を反映した画素が選択されなくなる可能性も高くなるため、両者のバランスを考慮して設定することが望ましい点についても第1実施例の場合と同様である。
【0064】
(2)また、上記具体例では、図4に示すように、隣接画素値の差分値が大きい画素を選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行った。しかし、全ラインについて隣接画素値の差分値が大きい画素を選択してもよいし、逆に隣接画素値の差分値が小さい順に選択してもよい。但し、両者を混在させた方が、隣接画素値の差分値の大小差も反映されるため、適切なサンプリングとなる場合が多いと考えられる。
【0065】
(3)また、隣接画素値の差分値が大きい順に選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを前提とし、選択ライン数が3ライン以上の場合には、選択ライン群中における隣接ライン間で、隣接画素値の差分値が大きい順に選択してサンプリング点を設定する処理と、隣接画素値の差分値が小さい順に選択してサンプリング点を設定する処理とを交互に変えてもよい。
【0066】
[第3実施例]
本第3実施例においてもサンプリング点設定処理が特徴であり、動きベクトル検出装置として実現した場合の概略構成は図1と同様である。したがって、N画素精度MV検出部11において実行されるサンプリング点設定処理について説明する。
【0067】
図5には、第3実施例のサンプリング点設定処理の具体例を示した。上述した第1実施例の場合と同様に、サンプリング対象のブロックを、図5(a)に示すように縦8画素×横8画素の画素ブロックとして説明する。そして、この画素ブロックから4画素を選択する場合、縦方向に8ラインある内から2ライン選択し、その選択した各ライン中から2画素選択する。具体的には、1ライン目と5ライン目から選択する。
【0068】
そして、この第3実施例では、まず1ライン目を上下2段に分割し、その1段目(上側)を構成する4画素の画素値を大小比較し、画素値の大きいものを1画素選択する。次に、2段目(下側)の4画素の画素値を大小比較し、画素値の大きいものを1画素選択する。一方、5ライン目も上下2段に分割するが、今度は、その1段目を構成する4画素の画素値を大小比較して画素値の小さいものを1画素選択する。次に2段目の4画素の画素値を大小比較して画素値の小さいものを1画素選択する。
【0069】
このようなサンプリング手法にて選択された画素は、図5(c)に示すように、1ライン目においては、3番目の画素(画素値:255)と5番目の画素(画素値:207)となり、5ライン目においては、1番目の画素(画素値:240)と8番目の画素(画素値:207)となる。
【0070】
図5(b)は、比較のために従来のサンプリング手法にて選択された画素を示している。これは図3(b)に示した具体例と同じであり、固定的に1ライン目及び5ライン目について1番目及び5番目の画素を選択している。したがって、1ライン目からは画素値207の画素が2つと、5ライン目からは画素値が240の画素が2つ選択される。このような選択手法であれば、図5(c)に示す画素ブロックにおいても同じ画素値となる。つまり、この図5(b)と図5(c)の画素ブロックは、1,5ライン目の1,5番目の画素同士を比較すれば全く同じであるが、ブロック全体の画素値を比較すれば全く異なる画像であることが判る。したがって、従来手法では、図5(c)の画素ブロックから画像的特徴を反映した画素が適切にサンプリングされているとは言い難い。
【0071】
これに対して、図5(c)にて示したサンプリング手法であれば、画素値の最大値あるいは最小値などの「画素値の大小度合い」を考慮したサンプリングとなっている。さらに、単なる「大小度合い」だけでなく、ブロック中の画素値の「大小差」も判る。したがって、ブロックの画像的特徴点を反映したサンプリングがなされており、動きベクトルの検出精度が向上する。
【0072】
なお、ラインを分割した後のサンプリング内容は、上述した第1実施例の場合と同様であるが、本第3実施例の場合には、最初に分割しておくことで、ブロック全体から満遍なく特徴的な画素をサンプリングし易くなる。
また、本実施例では2段に分割したが3段以上であってもよい。分割範囲が小さくなるほど(つまり分割範囲を構成する画素数が少なくなるほど)サンプリングした画素がブロックの特徴を反映している可能性が高くなるが、逆にサンプリング数は多くなって演算量が増加する。したがって、この場合も、ブロックの特徴を反映した画素を選択できるというメリットと、演算量の低減というメリットとの両者のバランスを考慮して設定することが望ましい。
【0073】
[第4実施例]
第4実施例におけるサンプリング点設定処理は、第3実施例において分割後に行うサンプリング内容が異なるだけである。つまり、第3実施例においては、分割後のラインを構成する画素に対して第1実施例と同様のサンプリングを行ったが、第4実施例においては、分割後のラインを構成する画素に対して第2実施例と同様のサンプリングを行う。具体的には、1ライン目を上下2段に分割し、その1段目を構成する4画素について隣接画素値の差分値が大きい2画素を選択してサンプリング点を設定し、次に2段目を構成する4画素について隣接画素値の差分値が大きい2画素を選択してサンプリング点を設定する。一方、5ライン目の1段目を構成する4画素については、今度は隣接画素値の差分値が小さい2画素を選択してサンプリング点を設定し、次に2段目を構成する4画素について隣接画素値の差分値が小さい2画素を選択する。
【0074】
以上の説明からも判るように、この第4実施例の場合には、分割したライン上からは最低限2画素を選択しなくてはならないので、1ライン上からは最低4画素を選択することとなる。
なお、上記説明では、1ライン目は上下段とも隣接画素値の差分値が大きい2画素を選択し、5ライン目は上下段とも隣接画素値の差分値が小さい2画素を選択したが、これ以外にも適宜バリエーションは考えられる。つまり、全て隣接画素値の差分値が大きい2画素を選択してもよいし、逆に全て隣接画素値の差分値が小さい2画素を選択してもよい。また、1ライン目の上段は隣接画素値の差分値が大きい2画素を選択し、下段は隣接画素値の差分値が小さい2画素を選択するが、5ライン目は逆に、上段は隣接画素値の差分値が小さい2画素を選択し、下段は隣接画素値の差分値が大きい2画素を選択してもよい。
【0075】
[第3,4実施例の別態様]
第1,2実施例の場合と同様に、8ラインの内から選択するライン数は2に限られず、全ラインであってもよいし、1ラインであってもよい。また、2ライン選択する場合に、1ライン目と5ライン目に限定されることはなく、他のラインであってもよい。また、分割された後のサンプリング処理については、ライン上の全画素数よりも少ない数だけ選択すればよい。
【0076】
その他、サンプリング後の処理に関する考慮点については、第1,2実施例の場合と同様である。
[第5実施例]
図6は、第5実施例の動きベクトル検出装置の概略構成を示すブロック図であり、可変サンプリングMV検出部51と、全探索法MV検出部52と、演算制御部54とを備える。可変サンプリングMV検出部51には、入力画像データ及び参照画像データが入力される。具体的には、入力画像中の動きベクトルの移動後のブロックであるテンプレートブロックTBと、そのテンプレートブロックTBが移動してきた参照画像中の元のブロックを含む探索範囲SBとが入力される。そして可変サンプリングMV検出部51から全探索法MV検出部52へは、テンプレートブロックTB、探索範囲SBのデータに加えて、可変サンプリングMV検出部51にて検出した初期変位MVSのデータが出力される。そして、全探索法MV検出部52では、探索範囲SB中の初期変位MVSの周囲を評価して動きベクトルMV1を決定し、差分絶対値和と共に外部へ出力する。
【0077】
ここまでの、概略的な動作は図1に示した第1実施例の場合と同様であるが、本第5実施例では、演算制御部54からの指示によって、可変サンプリングMV検出部51におけるサンプリング比Nが変更設定され、また、全探索法MV検出部52における探索範囲SBが変更設定される。この演算制御部54には、探索範囲SBのサイズを示す水平(横)探索範囲及び垂直(縦)探索範囲のデータが入力され、これらに基づいて上述の可変サンプリングMV検出部51でのサンプリング比や全探索法MV検出部52での探索範囲SBの変更設定を指示する。
【0078】
可変サンプリングMV検出部51におけるサンプリング比Nは、水平・垂直探索範囲が広い場合には大きい値に、水平・垂直探索範囲が狭い場合には小さい値に設定され、全探索法MV検出部52における探索範囲±jは、可変サンプリングMV検出部51での第1検出ステップで求められた動きベクトルの初期変位MVSの周囲を探索する値として設定され、1≦j<Nである。
【0079】
図7には、このように水平・垂直探索範囲に応じてサンプリング比Nを変更したり、探索範囲SBを変更する場合の具体例を示した。図7(a),(b)では16画素×16画素の画素ブロックを示し、それを参照して説明する。
まず、図7(a)において探索範囲SBが水平・垂直に±8の場合には、可変サンプリングMV検出部51におけるサンプリング比N=2とし、第1検出ステップでは2画素×2画素から1画素選択する(図7(a)中の●参照)。そして、このようにサンプリングされた画素によって構成される縮小画像を用いて2画素精度の動きベクトルの初期変位を検出する。また、全探索法MV検出部52における第2検出ステップの処理としては、探索範囲SBを水平・垂直それぞれに±1とした全探索法によって1画素精度の動きベクトルを検出する。
【0080】
一方、図7(b)において探索範囲SBが水平・垂直に±16〜32の場合には、可変サンプリングMV検出部51におけるサンプリング比N=4とし、第1検出ステップでは4画素×4画素から1画素選択する(図7(b)中の●参照)。そして、このようにサンプリングされた画素によって構成される縮小画像を用いて4画素精度の動きベクトルの初期変位を検出する。また、全探索法MV検出部52における第2検出ステップの処理としては、探索範囲SBを水平・垂直それぞれに±2とした全探索法によって1画素精度の動きベクトルを検出する。
【0081】
このようにサンプリング比Nを変えることによって、探索範囲SBが拡大しても演算量の増加を抑制することができる。この方法を用いることにより、2画素×2ラインから1画素選択した場合の差分演算を4個のブロック(図7(a)中に点線によって示したブロック)に分割して考えた場合、4画素×4画素の画素値の差分演算あるいは自乗誤差演算となる。これは、4画素×4画素から1画素選択する場合と同じ画素数となり、差分演算器あるいは自乗誤差演算器を共有できるため、ハードウェア化にも適している。
【0082】
ここで、図7中に示した具体的な数値に関して説明しておく。図7(a)に示すように、例えば探索範囲が±8の場合、サンプリング比を2とし、参照画像と入力画像を共に2画素×2画素から1画素選択したとき、ブロックをマッチングする回数は{(8/2)×2+1)}2 =81(回)となる。この場合、図7(a)中に示す破線で分割すると、4画素×4画素のブロックが4つ存在することとなるので、4画素×4画素の差分演算は81×4=324回必要となる。この4画素×4画素の差分演算を基準に考えると、324回以内の演算であれば同一のハードウェアで処理可能である。
【0083】
そこで、図7(b)に示すようにサンプリング比を4とした場合を考える。このときは、16画素×16画素の画像ブロックが4画素×4画素の画像ブロックにサンプリングされる。探索範囲が±16の場合、ブロックをマッチングする回数は{(16/4)×2+1}2 =81回、探索範囲が±24の場合、ブロックをマッチングする回数は{(24/4)×2+1}2 =169回、探索範囲が±32の場合、ブロックをマッチングする回数は{(32/4)×2+1}2 =289回となる。上述したように、324回までの演算であれば同一のハードウェアで処理可能であるため、探索範囲を±8〜±32まで可変とすることができるのである。
【0084】
[第6実施例]
上述した第1〜第5実施例においては、サンプリング点設定処理を特徴とするものであったが、動きベクトルの検出精度の向上、演算量の増加防止という目的を実現する場合には、探索範囲SBの設定方法に着目することも有効である。本第6実施例は、そのような観点からなされたものである。
【0085】
図8は、第6実施例の動きベクトル検出装置の概略構成を示すブロック図であり、車速センサ61と、ステアリングセンサ62と、探索範囲決定部63と、動きベクトル検出部64とからなる。車速センサ61及びステアリングセンサ62が存在することからも判るように、本実施例の装置は車両に搭載された撮像装置から入力した画像についての動きベクトルを検出することを前提としている。
【0086】
ここで、このように車両に搭載された場合に特有の問題点について再度確認しておく。図9(a)に示すように、従来手法では、参照画像(前フレーム)中の探索範囲として、入力画像(現フレーム)中のテンプレートブロックと同じ位置を基準に左右上下に所定画素分の範囲を設定するのが一般的であった。これは、動きベクトルの向きが判らないので、全方向、つまり左右上下に同じ画素数分の範囲を設定することで、いずれの向きであっても動きベクトルを適切に検出できるようにするためである。
【0087】
しかしながら、車両に搭載された撮像装置にて車両前方を撮像した画像について動きベクトルを検出することを考えた場合、その画像中の風景は車速によって移動する量が異なる。特に、直線走行している場合には、車両の正面側、つまり画面中心付近の風景の移動量は小さいが、車両の横側、つまり画面の左右両端付近の風景の移動量は非常に大きくなる。また、カーブ走行している場合には、車両正面の風景であってもその移動量は非常に大きくなる。
【0088】
したがって、比較的狭い探索範囲を固定的に設定していると十分な対応ができなくなり、動きベクトルの適切な検出ができない。そうかといって、あらゆる場合において動きベクトルを高精度に検出しようとすると、探索範囲を広く設定しておく必要がある。しかし、探索範囲を広く設定しておくと、常に広い探索範囲についての探索が必要となるため、演算量が増大してしまう。
【0089】
そこで、本第6実施例の動きベクトル検出装置によれば、探索範囲決定部63が車速センサ61にて検出した車速(V)と、ステアリングセンサ62にて検出した操舵角(θ)とに基づいて探索範囲の位置を決定する。そして、その決定された探索範囲に基づいて、動きベクトル検出部64が動きベクトルを検出する。なお、この動きベクトル検出部64における検出手法は、例えば第1〜第5実施例の検出手法を用いるなどすればよいが、これらに限定されるものではない。
【0090】
探索範囲決定部63における探索範囲の決定の概要は、図9(b)に示すように、車両の走行速度及び操舵状態に応じてテンプレートブロックの概略的な移動元の位置を推定し、その推定位置の周囲に探索範囲を設定するのである。このようにすれば、その探索範囲内の評価ブロックSBMとテンプレートブロックとのブロックマッチングによって、適切に動きベクトルを検出することができるようになる。つまり、動きベクトルの検出精度を向上させることができる。そして、広い探索範囲を固定的に設定しておく必要がないので、演算量の増加も防止できる。
【0091】
次に、探索範囲決定部63において実行される探索範囲の決定にかかる処理内容を図10のフローチャートを参照して説明する。
最初のステップS101にて車速センサ61から車速(V)を、ステアリングセンサ62から操舵角(θ)をそれぞれ取り込む。そして、続くS102において操舵角θ=0が否かを判断する。つまり、直進走行(θ=0)しているのか否かを判断している。
【0092】
そして、カーブ走行している場合には(S102:NO)、左右いずれにカーブ走行しているかを判断し(S103)、左カーブの場合にはS104へ移行して、右方向へ移動させる。なお、ここでは右方向をプラス方向として考え、その移動分ΔMVは、操舵角θと車速Vの関数F(θ,V)で表される。つまりΔMV=F(θ,V)である。また、右カーブの場合にはS105へ移行して、左方向へ移動させる。この場合の移動分ΔMVは、ΔMV=−F(θ,V)となる。
【0093】
一方、直進走行している場合には(S102:YES)、S106で分割された領域に応じて次のように対処する。まず左側領域の場合の移動分ΔMVは、車速Vの関数F(V)を用いて、ΔMV=−F(θ)とする(S107)。逆に右側領域の場合の移動分ΔMVは、ΔMV=F(θ)とする(S109)。しかし、中心領域については移動しないものとする(S108)。つまりΔMV=0である。
【0094】
[第6実施例の別態様]
上述の実施例では、車速Vと操舵角θとに基づいて探索範囲の「位置」を決定したが、探索範囲の「サイズ」を決定してもよい。つまり、車速V及び操舵角θに基づき、移動ベクトルが大きいと推定されれば探索範囲を大きくするのである。例えば画像中心付近の風景の移動量は、直線走行していれば車速にあまり影響されず小さい。したがって、探索範囲も小さくて良い。これに対して、画面の左右両端付近の風景の移動量は車速に応じて大きくなるため、車速が大きいほど探索範囲も大きくする。このように、常に広い探索範囲を設定しておくのではなく、必要に応じて探索範囲を広げるようにすれば、固定的に広い探索範囲を設定しておく必要がないので、演算量の増加も防止でき、動きベクトルの検出精度も向上させることができるのである。
【0095】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。それらのいくつかを説明する。
(1)上述した第1〜第4実施例におけるサンプリング点設定処理は、2ステップ探索法における第1検出ステップでの処理を前提としたが、このような2ステップ探索法を前提しなくてもよい。つまり、サンプリングした画素同士のブロックマッチングを1ステップだけ実行するような使用方法も考えられる。
【0096】
(2)また、上述した第1〜第4実施例においては、「ブロックの特徴を反映した画素を選択できるようなサンプリング点設定処理」を特徴とするものであったが、サンプリング点設定処理以外の工夫も施すことが考えられる。その例を2つ説明する。
【0097】
(a)両画像のサンプリング点のアドレスを比較
テンプレートブロックTBに対して第1〜第4実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、評価ブロックSBMに対して第1〜第4実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて動きベクトルを検出する。最終的に動きベクトルを検出できた場合の評価ブロックSBMの画素値とテンプレートブロックの画素値のマッチング度合いは高いので、両ブロックに同じサンプリング点設定処理を施せば、サンプリングされる画素の位置が同じになる可能性が高い。したがって、両ブロックのサンプリング点のアドレスの一致度合いに基づけば、動きベクトルを検出することができる。そして、サンプリング点設定処理の段階でブロックの特徴点を反映しているため動きベクトルの検出精度が向上しており、且つ演算量を低減することも実現している。
【0098】
(b)テンプレートブロックTBのサンプリング点の画素値と評価ブロックSBMにおける同じアドレスの画素値とを比較
テンプレートブロックTBに対して第1〜第4実施例のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、評価ブロックSBM中における、テンプレートブロックTBについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて動きベクトルを検出する。(a)でも述べたように、最終的に動きベクトルを検出できた場合の評価ブロックSBMの画素値とテンプレートブロックTBの画素値のマッチング度合いは高い。したがって、評価ブロックSBM中における、テンプレートブロックTBについてのサンプリング点と同じアドレスの画素値と、テンプレートブロックTBからサンプリングした画素値とのマッチング度合いに基づけば、やはり、動きベクトルを検出できる。そして、動きベクトルの検出精度の向上及び演算量の低減という効果も得られる。
【0099】
(3)上述した各実施例にて検出された動きベクトルは、例えば動画像符号化における動き補償予測に用いられることが考えられる。しかし、そのような用途に限られるわけではない。例えば動画像中の異なる動きを持つ物体の検出や、画像中の動きのある領域と静止領域(例えば背景)とを分割する、といった目的のために用いることもできる。
【図面の簡単な説明】
【図1】 第1〜第4実施例の動きベクトル検出装置を示す概略ブロック図である。
【図2】 ブロックマッチングの概要を示す説明図である。
【図3】 第1実施例のサンプリング点設定処理を示す説明図である。
【図4】 第2実施例のサンプリング点設定処理を示す説明図である。
【図5】 第3実施例のサンプリング点設定処理を示す説明図である。
【図6】 第5実施例の動きベクトル検出装置を示す概略ブロック図である。
【図7】 第5実施例の、水平・垂直探索範囲に応じてサンプリング比Nを変更したり、探索範囲を変更する場合の具体例を示す説明図である。
【図8】 第6実施例の動きベクトル検出装置を示す概略ブロック図である。
【図9】 第6実施例の、車速や操舵角に応じて探索範囲を決定する処理の概要を示す説明図である。
【図10】 第6実施例の、探索範囲決定部にて実行される探索範囲の決定処理を示すフローチャートである。
【図11】 従来の動きベクトル検出方法の説明図である。
【図12】 従来の動きベクトル検出方法の問題点を示す説明図である。
【符号の説明】
11…N画素精度MV検出部
12…1画素精度MV検出部
51…可変サンプリングMV検出部
52…全探索法MV検出部
54…演算制御部
61…車速センサ
62…ステアリングセンサ
63…探索範囲決定部
64…動きベクトル検出部
Claims (7)
- ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法であって、前記テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、画素値の大きい順または小さい順に前記ライン上の全画素数よりも少ない数だけ選択してサンプリング点を設定するサンプリング点設定処理を行い、その設定されたサンプリング点の画素値を用いて動きベクトルの検出を行う動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の大きい順に選択してサンプリング点を設定する処理と、前記画素値の小さい順に選択してサンプリング点を設定する処理とをラインに応じて変えて行うことを特徴とする動きベクトル検出方法。 - 請求項1記載の動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記所定数のライン群中における隣接ライン間で、前記画素値の大きい順に選択してサンプリング点を設定する処理と、前記画素値の小さい順に選択してサンプリング点を設定する処理とを交互に変えること
を特徴とする動きベクトル検出方法。 - ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法であって、前記テンプレートブロック及び評価ブロックの、縦横いずれかの方向の所定数のラインについて、当該ライン上に存在する全画素中から、隣り合う画素間における画素値の差分値が大きい画素の組合せ又は小さい画素の組み合わせを所定数選択してサンプリング点として設定するサンプリング点設定処理を行い、その設定されたサンプリング点の画素値を用いて前記動きベクトルを検出する動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、前記画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行うこと
を特徴とする動きベクトル検出方法。 - 請求項3記載の動きベクトル検出方法において、
前記サンプリング点設定処理は、
前記ライン数が複数である場合には、前記画素値の差分値が大きい画素の組合せを選択してサンプリング点を設定する処理と、前記画素値の差分値が小さい画素の組合せを選択してサンプリング点を設定する処理とをラインに応じて変えて行うこと
を特徴とする動きベクトル検出方法。 - ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法において、
前記テンプレートブロックに対して前記請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスと、前記評価ブロックに対して前記請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素のアドレスとを比較し、その一致度合いに基づいて前記動きベクトルを検出することを特徴とする動きベクトル検出方法。 - ある時間の入力画像中における矩形形状のテンプレートブロックがそれ以前の入力画像である参照画像中の所定の探索範囲内のどのブロックから移動したかを示す動きベクトルを、前記テンプレートブロックと前記探索範囲内から取り出した矩形形状の評価ブロックとのマッチング度合いに基づいて検出する動きベクトル検出方法において、
前記テンプレートブロックに対して前記請求項1〜4のいずれか記載のサンプリング点設定処理を実行して得たサンプリング点の画素の値と、前記評価ブロック中における、前記テンプレートブロックについてのサンプリング点と同じアドレスの画素の値とを比較し、その画素値の一致度合いに基づいて前記動きベクトルを検出することを特徴とする動きベクトル検出方法。 - 請求項1〜6のいずれか記載の動きベクトル検出方法が、コンピュータシステムにて実行するプログラムとして記録されたことを特徴とする記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23265699A JP4075238B2 (ja) | 1999-08-19 | 1999-08-19 | 動きベクトル検出方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23265699A JP4075238B2 (ja) | 1999-08-19 | 1999-08-19 | 動きベクトル検出方法及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001061151A JP2001061151A (ja) | 2001-03-06 |
JP4075238B2 true JP4075238B2 (ja) | 2008-04-16 |
Family
ID=16942734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23265699A Expired - Fee Related JP4075238B2 (ja) | 1999-08-19 | 1999-08-19 | 動きベクトル検出方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4075238B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5079271B2 (ja) * | 2006-06-28 | 2012-11-21 | 京セラ株式会社 | 手ぶれ量検出装置、手ぶれ補正装置、撮像装置及び手ぶれ量検出方法 |
CN101390381B (zh) | 2005-12-26 | 2012-01-25 | 京瓷株式会社 | 抖动检测设备、抖动校正设备、成像设备、以及抖动检测方法 |
JP5079253B2 (ja) * | 2006-04-05 | 2012-11-21 | 京セラ株式会社 | 手ぶれ量検出装置、手ぶれ補正装置、撮像装置及び手ぶれ量検出方法 |
JP5079284B2 (ja) * | 2005-12-26 | 2012-11-21 | 京セラ株式会社 | 手ぶれ量検出装置、手ぶれ補正装置、撮像装置及び手ぶれ量検出方法 |
JP4752685B2 (ja) * | 2006-08-31 | 2011-08-17 | カシオ計算機株式会社 | 撮像装置及びプログラム |
JP4743048B2 (ja) * | 2006-08-31 | 2011-08-10 | カシオ計算機株式会社 | 撮像装置及びプログラム |
JP5413122B2 (ja) * | 2009-10-20 | 2014-02-12 | 富士通株式会社 | 画像処理方法および画像処理装置 |
JP5824953B2 (ja) * | 2011-08-09 | 2015-12-02 | 株式会社ソシオネクスト | 画像処理装置、画像処理方法及び撮像装置 |
JPWO2019215979A1 (ja) * | 2018-05-10 | 2021-05-27 | ソニーグループ株式会社 | 画像処理装置、車載装置、画像処理方法及びプログラム |
US11533471B2 (en) | 2018-06-22 | 2022-12-20 | Sony Corporation | Image processing apparatus and image processing method |
-
1999
- 1999-08-19 JP JP23265699A patent/JP4075238B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001061151A (ja) | 2001-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6380986B1 (en) | Motion vector search method and apparatus | |
JP3226020B2 (ja) | 動きベクトル検出装置 | |
JP3461626B2 (ja) | 特定画像領域抽出方法及び特定画像領域抽出装置 | |
JP3149840B2 (ja) | 動きベクトル検出装置及び方法 | |
JP2003533800A (ja) | Mcアップコンバージョンにおけるハローを低減する動き推定器 | |
JP2010288110A (ja) | 画像処理装置および画像処理方法 | |
JP2009071689A (ja) | 画像処理装置、画像処理方法および撮像装置 | |
JP4075238B2 (ja) | 動きベクトル検出方法及び記録媒体 | |
JPH10336668A (ja) | 動きベクトル検出装置 | |
JP2009105533A (ja) | 画像処理装置、撮像装置、画像処理方法および撮像画像処理方法 | |
US8447126B2 (en) | Image processing method and related apparatus | |
US6671321B1 (en) | Motion vector detection device and motion vector detection method | |
JPH089379A (ja) | 動きベクトル検出方法 | |
JP2014052855A (ja) | 画像処理装置、その制御方法、および制御プログラム | |
JP3333012B2 (ja) | 画像合成装置 | |
JP2006215655A (ja) | 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びプログラム記録媒体 | |
JPH09261646A (ja) | 画像の動き検出装置 | |
JP4410172B2 (ja) | 動きベクトル推定方法,動きベクトル推定装置,動きベクトル推定プログラムおよび動きベクトル推定プログラム記録媒体 | |
JPH0220988A (ja) | 動画像符号化装置における動ベクトル検出方式 | |
JPH1051793A (ja) | ブロックマッチング装置 | |
JP2009515395A (ja) | 動き推定 | |
JP3786300B2 (ja) | 動きベクトル検出装置及び動きベクトル検出方法 | |
JP4035903B2 (ja) | 動きベクトル検出方法及び装置 | |
JPS62206980A (ja) | 動画像の動き推定における初期偏位方式 | |
JP2810528B2 (ja) | 動き補償フレーム間予測符号化における動きベクトルの探索回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051012 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071206 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080121 |
|
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: 20110208 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140208 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |