JP3786300B2 - Motion vector detection apparatus and motion vector detection method - Google Patents

Motion vector detection apparatus and motion vector detection method Download PDF

Info

Publication number
JP3786300B2
JP3786300B2 JP24877696A JP24877696A JP3786300B2 JP 3786300 B2 JP3786300 B2 JP 3786300B2 JP 24877696 A JP24877696 A JP 24877696A JP 24877696 A JP24877696 A JP 24877696A JP 3786300 B2 JP3786300 B2 JP 3786300B2
Authority
JP
Japan
Prior art keywords
block
motion vector
value
reference block
image data
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
JP24877696A
Other languages
Japanese (ja)
Other versions
JPH1075453A (en
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP24877696A priority Critical patent/JP3786300B2/en
Publication of JPH1075453A publication Critical patent/JPH1075453A/en
Application granted granted Critical
Publication of JP3786300B2 publication Critical patent/JP3786300B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【目次】
以下の順序で本発明を説明する。
発明の属する技術分野
従来の技術
発明が解決しようとする課題(図6及び図7)
課題を解決するための手段
発明の実施の形態(図1〜図5)
発明の効果
【0002】
【発明の属する技術分野】
本発明は、動きベクトル検出装置及び動きベクトル検出方法に関し、例えばデイジタルのHDTV(High Definition Television)用のVTRにおいて動画像を高能率符号化する際の動きベクトルを検出する場合に適用して好適なものである。
【0003】
【従来の技術】
従来、動画像を高能率符号化する場合に動きベクトルすなわち時間的に異なる画像中の物体の動き方向と大きさを用いるものがあり、例えば画像の高能率符号化における動き補償フレーム間符号化に用いられている。このように画像の動きベクトルを求める方法としては、ブロツクマツチング法がある(特公昭54-124927 号公報)。
【0004】
このブロツクマツチング法では、現在のフレームの画像(基本画像)と1フレーム分過去のフレームである前フレームの画像(参照画像)からそれぞれ適当な数画素(M×N画素)からなるブロツクを形成する。そして、基本画像のブロツクを固定し(以下、このように固定する側のブロツクを基準ブロツクと呼ぶ)、参照画像のブロツクを所定のサーチエリア内で移動させたとき(以下、このように移動させる側のブロツクを評価ブロツクと呼ぶ)、基準ブロツクの画素値と評価ブロツクの画素値との差分の総和Sum(x、y)が最小になる参照画像側の評価ブロツクの位置を求めることにより動きベクトルを検出するようになされている。
【0005】
【発明が解決しようとする課題】
ところで上述のブロツクマツチング法においては、本来ベクトルによる重み付けを行わないことが一般的であるが、画像中で静止している部分の0ベクトル位置に重み付けを行つた場合、0ベクトル位置が屋根の瓦、及びブロツク塀のような連続するパターンのブロツクや、青空、芝生のような濃淡の差の少ない輝度が一定の画像パターンが続くブロツク内にあつて画面全体が移動する(パンニング)場合に、動きベクトルの検出ミスが発生することがある。
ところが、重み付けを行つた0ベクトル位置が画像中の静止画エリアにあるときには動きベクトルは当然0であり検出ミスはほとんど発生しない。
【0006】
すなわち、図6(A)及び(B)に示すように、ブロツク塀のような連続する画像パターンのブロツクに注目してブロツクマツチングを行うときに画面全体が右から左へ移動する(パンニング)場合(x方向への移動だけでy方向へは移動しない)、基準ブロツクの画像パターンに似通つているブロツクが存在することにより、サーチエリア内の本来の動きベクトル位置とは異なる位置で基準ブロツクの画素値と評価ブロツクの画素値との差分の総和が最小になることがある。
実際上、図7に示すように、基準ブロツクの画素値と評価ブロツクの画素値との差分の総和Sum(x、0)が最小になる評価ブロツクが、サーチエリア内のいくつかの位置において複数(4箇所)存在することにより、どの位置における評価ブロツクが本物なのか見分けがつきにくく、このため動きベクトルの検出ミスが発生するという問題があつた。
【0007】
本発明は以上の点を考慮してなされたもので、同様の画像パターンが連続する画像及び輝度が一定の画像において動きベクトルの検出ミスを低減させ得る動きベクトル検出装置及び動きベクトル検出方法を提案しようとするものである。
【0008】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像データの動きベクトルを検出する動きベクトル検出装置において、現フレームにおいて所定の大きさに形成されて所定位置に固定された基準ブロツクの画像データを取得する基準ブロツク取得手段と、前フレームにおいて所定範囲のサーチエリア内で移動させたときの各位置における基準ブロツクと同じ大きさでなる評価ブロツクの画像データを取得する評価ブロツク取得手段と、基準ブロツク取得手段により取得された基準ブロツクの画像データと評価ブロツク取得手段により取得された上記評価ブロツクの画像データとの画素値の差分の総和を算出する差分演算手段と、検出が終了している当該基準ブロツクの周囲ブロツクに対する動きベクトル値と、基準ブロツクの評価ブロツクに対する動きベクトル値との差分に対して、基準ブロツクの画像データの分散値に比例した係数を乗算することにより、重み付け量を算出する重み演算手段と、重み演算手段により算出された重み付け量を差分演算手段により算出された画素値の差分の総和に加算してブロツク差分値を算出する加算演算手段と、加算演算手段により算出されたブロツク差分値が最小となる位置の評価ブロツクから基準ブロツクまでの動きベクトルを検出する検出手段とを設けるようにする。
【0009】
動きベクトル検出装置では、検出が終了している当該基準ブロツクの周囲ブロツクに対する動きベクトル値と、基準ブロツクの評価ブロツクに対する動きベクトル値との差分に対して基準ブロツクの画像データの分散値に比例した係数を乗算することにより重み付け量を算出し、その重み付け量を画素値の差分の総和に加算して算出したブロツク差分値が最小となる位置の評価ブロツクから基準ブロツクまでの動きベクトルを検出することにより、画素値の差分の総和が最小になる評価ブロツクが複数存在するときにも、基準ブロツクの画像データのばらつき傾向を反映させた重み付け量を基に最終的な動きベクトルを検出することができるので、同一絵柄の連続したパターンのブロツク画像であつても誤りなく動きベクトルを検出することができる。
【0010】
周囲ブロツクは、基準ブロツクの上部に隣接する上ブロツク、又は基準ブロツクの左部に隣接する左ブロツク、或いは上ブロツク及び左ブロツクの双方であるようにすることにより、基準ブロツクから最も近い隣接した位置のブロツクまでの動きベクトル値に基づいて重み付け量を算出することができるので、演算を容易にすると共に演算時間を短縮させることができ、かくして最終的な動きベクトルの検出をリアルタイムに行うことができる。
【0011】
【発明の実施の形態】
以下図面について、本発明の一実施例を詳述する。
【0012】
図1(A)に示すように、ブロツクマツチングを行うためのブロツクは現在のフレーム(以下、これを現フレームと呼ぶ)をM×N画素の大きさに分割して形成される。この現フレームの中で分割されたブロツクを左上から右下方向に向かつて順に(0、0)、(0、1)……(0、n0 )、(1、0)、(1、1)……(2、0)、(2、1)……(m、0)……(m、n)と位置付けた場合に、動きベクトルを求めるために固定する基準ブロツクを例えば(m0 、n0 )と位置付けるようにする。
【0013】
ここで、通常の走査線方式(ノンインターレース方式)の画像データは左上から右下に向かつて入力されて来るので、動きベクトルを検出するための各ブロツクにおいても(0、0)、(0、1)……(0、n0 )、(1、0)、(1、1)……(2、0)、(2、1)……(m0 、n0 )……(m、n)の順に画像データが処理されていく。
本発明においては、基準ブロツク(m0 、n0 )の周囲に位置する各周囲ブロツクのうち当該基準ブロツク(m0 、n0 )の上部に隣接するブロツクを上ブロツク(m0 −1、n0 )、左部に隣接するブロツクを左ブロツク(m0 、n0 −1)と位置付ける。
【0014】
また、図1(B)に示すように、前フレームのサーチエリアは基準ブロツクの約2倍程度の大きさの面積でなる範囲(±x0 、±y0 )に設けられ、このサーチエリア内で評価ブロツク(m-1、n-1)の位置を前後左右に1画素づつ移動させていきながら基準ブロツク(m0 、n0 )と評価ブロツク(m-1、n-1)とをブロツクマツチングさせるようになされている。
【0015】
次に、図2にはブロツクマツチングを行うための動きベクトル検出装置1の構成を示す。動きベクトル検出装置1においては、符号化された画像データD1をフレームごとに差分演算部1Aの現フレーム用メモリ2及び前フレーム用メモリ3にそれぞれ順次格納する。つまり、現フレーム用メモリ2には現フレームF0 が、前フレーム用メモリ3には前フレームF-1がそれぞれ格納されることになる。
【0016】
ブロツクポジシヨンカウント回路4は動きベクトルの検出を行うために現フレーム用メモリ2に格納されている現フレームF0 内で固定された基準ブロツク(m0 、n0 )の位置を指定する指定信号S1を基準ブロツクアドレスコントロール回路5に送出する。
ここで、画像データは左上から右下に向かつて入力されて来るので、基準ブロツク(m0 、n0 )の周囲において当該基準ブロツク(m0 、n0 )の上部に隣接する上ブロツク(m0 −1、n0 )や、左部に隣接する左ブロツク(m0 、n0 −1)は、すでに画像データの処理がなされた後であつて、それぞれのブロツクにおいて動きベクトル値の検出が終了している。
【0017】
従つて、ブロツクポジシヨンカウント回路4は、指定信号S1を基準ブロツクアドレスコントロール回路5に送出すると同時に、基準ブロツク(m0 、n0 )の周囲ブロツクですでに画像データの処理が終了している上ブロツク(m0 −1、n0 )の動きベクトル値(x m−1、y n)(以下、これを上ブロツク動きベクトル値と呼ぶ)及び左ブロツク(m0 、n0 −1)の動きベクトル値(x 0 、y 0 −1)(以下、これを左ブロツク動きベクトル値と呼ぶ)を上ブロツクベクトル値メモリ6及び左ブロツクベクトル値メモリ7にそれぞれ送出して格納しておく。
【0018】
ここで、図3(A)に示すように上ブロツク動きベクトル値(x m−1、y n)は、前フレームF-1の上ブロツクから現フレームF0 の上ブロツクまでのベクトル値であり、既に算出された固定値である。また、左ブロツク動きベクトル値(x 0 、y 0 −1)も、前フレームF-1の左ブロツクから現フレームF0 の左ブロツクまでのベクトル値であり、既に算出された固定値である。
【0019】
基準ブロツクアドレスコントロール回路5は、指定信号S1に基づいて現フレーム用メモリ2から基準ブロツク(m0 、n0 )の画像データD2を読み出すためのアドレス信号S2を生成して現フレーム用メモリ2に送出する。
現フレーム用メモリ2は、アドレス信号S2に基づいて基準ブロツク(m0 、n0 )の画像データD2を読み出して差分演算回路8に送出する。
【0020】
続いて、図3(B)に示すように、ベクトルコントロール回路9はブロツクマツチングを行うために、前フレームF-1のサーチエリア内における全ての評価ブロツク(m-1、n-1)から現フレームF0 の基準ブロツク(m0 、n0 )までの動きベクトル値(x、y)(以下、これを基準ブロツク動きベクトル値と呼ぶ)を順次発生し、動きベクトル値信号S3として評価ブロツクアドレスコントロール回路10、及びベクトル差分重み演算回路11、12にそれぞれ送出する。
【0021】
評価ブロツクアドレスコントロール回路10は、入力された動きベクトル値信号S3に基づいて評価ブロツク(m-1、n-1)の画像データD3を読み出すためのアドレス信号S4を生成して前フレーム用メモリ3に送出する。前フレーム用メモリ3は、アドレス信号S4に基づいて評価ブロツク(m-1、n-1)の画像データD3を読み出して差分演算回路8に送出する。
【0022】
差分演算回路8は、入力された基準ブロツク(m0 、n0 )の画像データD2と評価ブロツク(m-1、n-1)の画像データD3との画素値の差分の絶対値の総和Sum(x、y)を演算するようになされている。これにより、画素値差分演算部1Aは基準ブロツク(m0 、n0 )と評価ブロツク(m-1、n-1)との画素値の差分を算出することができる。
ここで、基準ブロツク(m0 、n0 )内における全画素のアドレス値を(h、v)とした場合、当該基準ブロツク(m0 、n0 )の各画素値をY(h、v)と表し、対応する評価ブロツク(m-1、n-1)の各画素値をY xy(h、v)と表すと、各画素値の差分の絶対値の総和Sum(x、y)は、次式
【数1】

Figure 0003786300
で表すことができる。
【0023】
一方、ブロツク差分値演算部1Bの上ブロツクベクトル値メモリ6は、格納しておいた上ブロツク動きベクトル値(x 0 −1、y 0 )をベクトル差分重み演算回路11に送出する。同様に、左ブロツクベクトル値メモリ7は格納しておいた左ブロツク動きベクトル値(x 0 、y 0 −1)をベクトル差分重み演算回路12に送出する。
【0024】
ベクトル差分重み演算回路11は、入力された上ブロツク動きベクトル値(x 0 −1、y 0 )と、ベクトルコントロール回路9から入力される現在演算の行われている評価ブロツク(m-1、n-1)から基準ブロツク(m0 、n0 )までの基準ブロツク動きベクトル値(x、y)との差分(距離)に比例した値を、重み値Wup(x、y)として、次式
【数2】
Figure 0003786300
で算出するようになされている。
【0025】
同様に、ベクトル差分重み演算回路12は、入力された左ブロツク動きベクトル値(x 0 、y 0 −1)と、ベクトルコントロール回路9から入力された基準ブロツク動きベクトル値(x、y)との差分(距離)に比例した値を、重み値Wleft(x、y)として、次式
【数3】
Figure 0003786300
で算出するようになされている。
【0026】
ここで、(2)式及び(3)式において用いられている係数kは、現フレーム用メモリ2から読み出された画像データD2の分散値(ばらつき)に応じて変化する値であり、係数演算回路16によつて基準ブロツクの位置が変わる度に新たに生成され、乗算器17を介して重み値Wup(x、y)及びWleft(x、y)に乗算されるようになされている。
【0027】
つまり、係数演算回路16は画像データD2のばらつきが大きい場合、各評価ブロツク(m-1、n-1)との差分の絶対値の総和Sum(x、y)も当然ばらつきが大きくなるので、係数kを大きな値とすることにより重み値Wup(x、y)及びWleft(x、y)を大きくして大きく重み付けするようになされている。
また、係数演算回路16は画像データD2のばらつきが小さい場合、各評価ブロツク(m-1、n-1)との差分の絶対値の総和Sum(x、y)も当然ばらつきが小さくなるので、係数kを小さな値とすることにより重み値Wup(x、y)及びWleft(x、y)を小さくして小さく重み付けするようになされている。
【0028】
このように、係数演算回路16は画像データD2のばらつきに応じて係数kの値を変動させることにより、評価ブロツク(m-1、n-1)のそれぞれの位置における総和Sum(x、y)の値に重み付けしたときに係数kによつて大きく変動させない(打ち消さない)ようにしている。従つて、重み値Wup(x、y)及びWleft(x、y)は総和Sum(x、y)の値と比べればごく微小な値となる。この場合、重み値Wup(x、y)及びWleft(x、y)は、基準ブロツク動きベクトル値(x、y)が上ブロツク動きベクトル値(x 0 −1、y 0 )及び左ブロツク動きベクトル値(x 0 、y 0 −1)に近ければ近いほど距離が短くなるので差分は小さくなり、当然重み値も小さくなる。
【0029】
このようにして、算出された重み値Wup(x、y)及びWleft(x、y)は加算器13によつて加えられ、さらに差分演算回路8から出力される差分の絶対値の総和Sum(x、y)に加算器14を介して加えられてブロツク差分値Diff (x、y)として、次式
【数4】
Figure 0003786300
として表され、検出手段としてのベクトル値検出回路15に送出される。
【0030】
このようにして、サーチエリア内の全ての評価ブロツク(m-1、n-1)に対して算出したブロツク差分値Diff (x、y)がベクトル値検出回路15に入力される。ベクトル値検出回路15は、全てのブロツク差分値Diff (x、y)を比較し、当該ブロツク差分値Diff (x、y)が最も小さくなるときの基準ブロツク動きベクトル値(x、y)を出力するようになされている。
また、ベクトル値検出回路15は検出された基準ブロツク動きベクトル値(x、y)を上ブロツクベクトル値メモリ6及び左ブロツクベクトル値メモリ7にも送出し、右及び下ブロツクが次に基準ブロツク(m0 、n0 )となつたときの動きベクトル値として用いることができるようにしている。
【0031】
以上の構成において、動きベクトル検出装置1においては図6(A)及び(B)に示す基準ブロツク(m0 、n0 )と評価ブロツク(m-1、n-1)とに基づいて画像が右側から左側に移動する場合について説明する。
動きベクトル検出装置1では、差分演算部1Aによつて現フレームF0 の基準ブロツク(m0 、n0 )の画像データD2と前フレームF-1のサーチエリア内の評価ブロツク(m-1、n-1)の画像データD3との各画素値の差分の絶対値の総和Sum(x、y)を(1)式によつて算出する。
【0032】
ここで、サーチエリア内の全ての評価ブロツク(m-1、n-1)についての総和Sum(x、y)を算出し、この算出結果が最小となる評価ブロツク(m-1、n-1)の位置を求めただけでは、レンガの連続した同一パターンのブロツク画像が複数存在しているために総和Sum(x、y)が最小となる評価ブロツク(m-1、n-1)の位置を複数検出(図7)してしまつて正確な動きベクトルは検出できない。
【0033】
そこで、動きベクトル検出装置1はブロツク差分値演算部1Bによつて予め記憶させておいた上ブロツク動きベクトル値(x 0 −1、y 0 )及び左ブロツク動きベクトル値(x 0 、y 0 −1)と(図3(A))、基準ブロツク動きベクトル値(x、y)と(図3(B))の差分の絶対値に係数kを乗算した重み値Wup(x、y)、Wleft(x、y)を(2)式及び(3)式によつて算出し、当該重み値Wup(x、y)、Wleft(x、y)を(4)式によつて各画素値の差分の絶対値の総和Sum(x、y)に加算してブロツク差分値Diff (x、y)を求める。
【0034】
実際上、動きベクトル検出装置1では上ブロツク動きベクトル値(x 0 −1、y 0 )、及び左ブロツク動きベクトル値(x 0 、y 0 −1)が固定値であり、サーチエリア内の全ての基準ブロツク動きベクトル値(x、y)が評価ブロツク(m-1、n-1)の位置によつて変動する変動値であるために、評価ブロツク(m-1、n-1)がサーチエリア内の本来の動きベクトルを表す位置にあつた場合にだけ重み値Wup(x、y)、Wleft(x、y)が最小になり、かくしてブロツク差分値Diff (x、y)は最小になる。
【0035】
従つて、図4に示すように動きベクトル検出装置1ではサーチエリア内の各評価ブロツク(m-1、n-1)のそれぞれの位置におけるブロツク差分値Diff (x、y)は、重み値Wup(x、y)、Wleft(x、y)の大きさに応じた傾斜を持つグラフとして表示する。これにより、動きベクトル検出装置1はブロツク差分値Diff (x、y)が最小となる位置の基準ブロツク動きベクトル値(x、y)をベクトル値検出回路15によつて検出することができ、かくしてレンガのような連続したパターンのブロツク画像であつても動きベクトルを誤りなく検出することができる。
【0036】
また、動きベクトル検出装置1では重み値Wup(x、y)、Wleft(x、y)を算出する際に係数kの値を基準ブロツク(m0 、n0 )の画素のばらつきに応じて変動させることにより、総和Sum(x、y)を係数kによつて打ち消すことなく重み付けしてブロツク差分値Diff (x、y)を表すグラフの傾斜の角度を変えることができ、かくしてブロツク差分値Diff (x、y)が最小となる基準ブロツク動きベクトル値(x、y)の検出を容易にして動きベクトルの検出ミスを低減させることができる。
【0037】
このように、動きベクトル検出装置1は差分演算部1Aによつて基準ブロツク(m0 、n0 )と評価ブロツク(m-1、n-1)のそれぞれの位置における画素値の差分の絶対値の総和Sum(x、y)を算出し、ブロツク差分値演算部1Bによつて重み値Wup(x、y)、Wleft(x、y)を算出し、当該重み値Wup(x、y)、Wleft(x、y)を評価ブロツク(m-1、n-1)のそれぞれの位置における総和Sum(x、y)に加算してそれぞれのブロツク差分値Diff (x、y)を算出し、検出手段であるベクトル値検出回路15によつてブロツク差分値Diff (x、y)が最小となる基準ブロツク動きベクトル値(x、y)を検出することができる。
【0038】
以上の構成によれば、動きベクトル検出装置1は、基準ブロツク(m0 、n0 )の画像データD2と評価ブロツク(m-1、n-1)の画像データD3との各画素値の差分の絶対値の総和Sum(x、y)に、上ブロツク動きベクトル値(x 0 −1、y 0 )及び左ブロツク動きベクトル値(x 0 、y 0 −1)と、基準ブロツク動きベクトル値(x、y)との差分の絶対値に係数kをかけた重み値Wup(x、y)、Wleft(x、y)を加算してブロツク差分値Diff (x、y)を算出するようにしたことにより、ブロツク差分値Diff (x、y)が最小となる基準ブロツク動きベクトル値(x、y)の検出を容易にし、かくしてブロツクごとの画像パターンが似通つている場合でも動きベクトルの検出ミスを低減させて高品質な画像データを伝送することができる。
【0039】
また、動きベクトル検出装置1は基準ブロツク(m0 、n0 )の画像データD2の分散値に比例した係数kを上ブロツク動きベクトル値(x 0 −1、y 0 )及び左ブロツク動きベクトル値(x 0 、y 0 −1)と、基準ブロツク動きベクトル値(x、y)との差分の絶対値に乗算することにより、画素値の差分の総和Sum(x、y)に応じた重み値Wup(x、y)、Wleft(x、y)を算出することができ、かくしてブロツク差分値Diff (x、y)が最小となる場合の基準ブロツク(m0 、n0 )の動きベクトル検出を容易にして検出ミスを低減させることができる。
【0040】
さらに、動きベクトル検出装置1は基準ブロツク(m0 、n0 )の周囲に位置する周囲ブロツクのうち、基準ブロツク(m0 、n0 )の上部に隣接する上ブロツク(m0 −1、n0 )と、左部に隣接する左ブロツク(m0 、n0 −1)とに基づいて重み値Wup(x、y)、Wleft(x、y)を算出するようにしたことにより、演算を容易にして演算時間を短縮させることができ、かくしてリアルタイムに動きベクトルを検出することができる。
【0041】
なお上述の実施例においては、動きベクトル検出装置1において、現フレームF0 の基準ブロツク(m0 、n0 )に対して上部及び左部に隣接する上ブロツク(m0 −1、n0 )及び左ブロツク(m0 、n0 −1)の各動きベクトル値(x 0 −1、y 0 )及び(x 0 、y 0 −1)と、基準ブロツク動きベクトル値(x、y)との差分の絶対値に基づいて重み値Wup(x、y)、Wleft(x、y)を算出するようにした場合について述べたが、本発明はこれに限らず、図5に示す動きベクトル検出装置30のように前フレームの動きベクトル値を格納しておく前フレームベクトル値メモリ31、及びベクトル差分重み演算回路32を動きベクトル検出装置1に対して付け加えて、前フレームの動きベクトル値と、基準ブロツク動きベクトル値(x、y)との差分の絶対値に基づいて重み値Wfor (x、y)を算出して当該重み値Wfor (x、y)を、重み値Wup(x、y)、Wleft(x、y)に加えてブロツク差分値Diff (x、y)を求めるようにしても良い。この場合にも上述の実施例と同様の効果を得ることができる。
【0042】
また上述の実施例においては、サーチエリアの面積範囲を基準ブロツク(m0 、n0 )の面積の約4倍程度にするようにした場合について述べたが、本発明はこれに限らず、画像のパターンや処理時間に応じてサーチエリアの面積範囲を自由に設定するようにしても良い。
【0043】
さらに上述の実施例においては、ブロツク差分値Diff (x、y)を求めるために基準ブロツク(m0 、n0 )の周囲の上部及び左部に隣接する上ブロツク(m0 −1、n0 )及び左ブロツク(m0 、n0 −1)の各動きベクトル値(x 0 −1、y 0 )及び(x 0 、y 0 −1)を用いるようにした場合について述べたが、本発明はこれに限らず、要は基準ブロツク(m0 、n0 )に対して既に画像データの処理がなされて動きベクトル値の算出されたブロツクであれば上ブロツクあるいは左ブロツクのどちらか一方の動きベクトル値だけでブロツク差分値Diff (x、y)を求めたり、また左斜め上のブロツクや右斜め上のブロツクの動きベクトル値を用いるようにしても良い。
【0044】
さらに上述の実施例においては、本発明をHDTV用のVTRに適用するようにした場合について述べたが、本発明はこれに限らず、デイジタル画像通信の分野において動画像を高能率符号化して伝送する種々の装置に適用するようにしても良い。
【0045】
【発明の効果】
上述のように本発明によれば、画素値の差分の総和が最小になる評価ブロツクが複数存在するときにも、基準ブロツクの画像データのばらつき傾向を反映させた重み付け量を基に最終的な動きベクトルを検出することができるので、同一絵柄の連続したパターンのブロツク画像であつても誤りなく動きベクトルを検出することができ、かくして同様の画像パターンが連続する画像及び輝度が一定の画像において動きベクトルの検出ミスを低減させ得る動きベクトル検出装置及び動きベクトル検出方法を実現することができる。
【図面の簡単な説明】
【図1】本発明の実施例によるブロツクマツチングを行う場合の説明に供する略線図である。
【図2】本発明の実施例による動きベクトル検出装置の構成を示すブロツク図である。
【図3】本発明の実施例による各動きベクトル値の説明に供する略線図である。
【図4】本発明の実施例による重み値を加えたブロツク差分値によるグラフを示す図表である。
【図5】他の実施例による動きベクトル検出装置の構成を示すブロツク図である。
【図6】画像上におけるブロツクマツチングの説明に供する略線図である。
【図7】連続パターンの画像においてブロツクマツチングを行つたときのSumの最小値を表すグラフである。
【符号の説明】
1……動きベクトル検出装置、2……現フレーム用メモリ、3……前フレーム用メモリ、4……ブロツクポジシヨンカウント回路、5……基準ブロツクアドレスコントロール回路、6……上ブロツクベクトル値メモリ、7……左ブロツクベクトル値メモリ、8……差分演算回路、9……ベクトルコントロール回路、10……評価ブロツクアドレスコントロール回路、11、12、32……ベクトル差分重み演算回路、13、14……加算器、15……ベクトル値検出回路、16……係数演算回路、17……乗算器、31……前フレームベクトル値メモリ。[0001]
【table of contents】
The present invention will be described in the following order.
TECHNICAL FIELD OF THE INVENTION
Conventional technology
Problems to be Solved by the Invention (FIGS. 6 and 7)
Means for solving the problem
BEST MODE FOR CARRYING OUT THE INVENTION (FIGS. 1 to 5)
The invention's effect
[0002]
BACKGROUND OF THE INVENTION
The present invention relates to a motion vector detection device and a motion vector detection method, and is preferably applied to, for example, a case where a motion vector is detected when high-efficiency video is encoded in a digital HDTV (High Definition Television) VTR. Is.
[0003]
[Prior art]
Conventionally, when a moving image is encoded with high efficiency, there is a method using a motion vector, that is, a motion direction and size of an object in a temporally different image, for example, for motion compensation interframe encoding in high-efficiency encoding of an image. It is used. As a method for obtaining the motion vector of an image in this way, there is a blotting method (Japanese Patent Publication No. 54-124927).
[0004]
In this block clipping method, a block consisting of a suitable number of pixels (M × N pixels) is formed from the image of the current frame (basic image) and the image of the previous frame (reference image), which is one frame past. To do. Then, the block of the basic image is fixed (hereinafter, the block on the side to be fixed in this way is referred to as a reference block), and the block of the reference image is moved within the predetermined search area (hereinafter, this movement is performed). The block on the side is called an evaluation block), and the sum S of the differences between the pixel value of the reference block and the pixel value of the evaluation block SumThe motion vector is detected by obtaining the position of the evaluation block on the reference image side where (x, y) is minimized.
[0005]
[Problems to be solved by the invention]
By the way, in the above-described blotching method, it is general that weighting by a vector is not originally performed. However, when weighting is performed on a zero vector position of a stationary part in an image, the zero vector position is the roof. When the entire screen moves (panning) in a block of continuous patterns such as roof tiles and block fences, or in a block where the image pattern with a constant brightness difference such as a blue sky or lawn has a constant brightness, the pattern continues. A motion vector detection error may occur.
However, when the weighted 0 vector position is in the still image area in the image, the motion vector is naturally 0 and detection errors hardly occur.
[0006]
That is, as shown in FIGS. 6 (A) and 6 (B), the entire screen moves from right to left when performing block clipping while paying attention to the block of a continuous image pattern such as a block (panning). In this case (only moving in the x direction, not moving in the y direction), there is a block similar to the image pattern of the reference block, so that the reference block is different from the original motion vector position in the search area. In some cases, the sum of the differences between the pixel value of and the pixel value of the evaluation block is minimized.
In practice, as shown in FIG. 7, the sum S of the differences between the pixel value of the reference block and the pixel value of the evaluation blockumSince there are a plurality (four places) of evaluation blocks at which (x, 0) is minimized at several positions in the search area, it is difficult to tell which evaluation block is genuine. There was a problem that a detection error occurred.
[0007]
The present invention has been made in consideration of the above points, and proposes a motion vector detection device and a motion vector detection method capable of reducing motion vector detection errors in an image having a continuous image pattern and a constant brightness image. It is something to try.
[0008]
[Means for Solving the Problems]
  In order to solve such a problem, in the present invention, in a motion vector detection device for detecting a motion vector of image data, image data of a reference block formed in a predetermined size and fixed at a predetermined position in the current frame is acquired. Reference block acquisition means, evaluation block acquisition means for acquiring image data of an evaluation block having the same size as the reference block at each position when moved within the search area of a predetermined range in the previous frame, and reference block acquisition means Difference calculating means for calculating a sum of differences of pixel values between the image data of the reference block acquired by the above and the image data of the evaluation block acquired by the evaluation block acquiring means, and the reference block of the reference block that has been detected. For the motion vector values for the surrounding block and the evaluation block for the reference block By multiplying the difference from the motion vector value by a coefficient proportional to the variance value of the image data of the reference block, the weight calculation means for calculating the weight amount and the weight amount calculated by the weight calculation means Addition calculation means for calculating the block difference value by adding to the sum of the pixel value differences calculated by the calculation means, and the evaluation block from the position where the block difference value calculated by the addition calculation means is minimum to the reference block Detection means for detecting a motion vector is provided.
[0009]
  In the motion vector detection device, the difference between the motion vector value for the surrounding block of the reference block for which the detection has been completed and the motion vector value for the evaluation block of the reference block is proportional to the variance value of the image data of the reference block. A weighting amount is calculated by multiplying the coefficient, and the weighting amount is added to the sum of the pixel value differences to detect a motion vector from the evaluation block at the position where the calculated block difference value is minimum to the reference block. Thus, even when there are a plurality of evaluation blocks that minimize the sum of pixel value differences, the final motion vector can be detected based on the weighting amount reflecting the variation tendency of the image data of the reference block. Therefore, even if it is a block image of a continuous pattern of the same pattern, it can detect a motion vector without error. It can be.
[0010]
  The surrounding block is the adjacent block closest to the reference block by being the upper block adjacent to the top of the reference block, the left block adjacent to the left of the reference block, or both the upper block and the left block. Since the weighting amount can be calculated based on the motion vector values up to the block, the calculation can be facilitated and the calculation time can be shortened, and thus the final motion vector can be detected in real time. .
[0011]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0012]
As shown in FIG. 1A, a block for performing block clipping is formed by dividing a current frame (hereinafter referred to as a current frame) into a size of M × N pixels. The blocks divided in the current frame are (0, 0), (0, 1)... (0, n) in order from the upper left to the lower right.0), (1, 0), (1, 1)... (2, 0), (2, 1)... (M, 0)... (M, n) For example, (m0, N0).
[0013]
Here, since the image data of the normal scanning line method (non-interlace method) is input from the upper left to the lower right, each block for detecting a motion vector also has (0, 0), (0, 1) …… (0, n0), (1, 0), (1, 1) ... (2, 0), (2, 1) ... (m0, N0) ... The image data is processed in the order of (m, n).
In the present invention, the reference block (m0, N0) Of the surrounding blocks located around the reference block (m0, N0) The block adjacent to the top of the upper block (m0-1, n0), The block adjacent to the left is the left block (m0, N0-1).
[0014]
Further, as shown in FIG. 1B, the search area of the previous frame is a range (± x) having an area about twice the size of the reference block.0, ± y0) And the evaluation block (m-1, N-1) While moving the position forward, backward, left and right one pixel at a time, the reference block (m0, N0) And evaluation block (m-1, N-1).
[0015]
Next, FIG. 2 shows a configuration of a motion vector detection apparatus 1 for performing block clipping. In the motion vector detection device 1, the encoded image data D1 is sequentially stored in the current frame memory 2 and the previous frame memory 3 of the difference calculation unit 1A for each frame. In other words, the current frame memory 2 contains the current frame F.0However, the previous frame F is stored in the previous frame memory 3.-1Will be stored respectively.
[0016]
A block position count circuit 4 detects the current frame F stored in the current frame memory 2 in order to detect a motion vector.0Reference block fixed in (m0, N0) Is sent to the reference block address control circuit 5.
Here, since the image data is input once from the upper left to the lower right, the reference block (m0, N0) Around the reference block (m0, N0) Adjacent to the upper block (m0-1, n0) Or the left block adjacent to the left (m0, N0-1) is after the processing of the image data has already been performed, and the detection of the motion vector value is completed in each block.
[0017]
Accordingly, the block position count circuit 4 sends the designation signal S1 to the reference block address control circuit 5 and at the same time, the reference block (m0, N0) And the upper block (m0-1, n0) Motion vector value (x m-1, y n) (hereinafter referred to as the upper block motion vector value) and the left block (m0, N0-1) motion vector value (x m0, Y n0-1) (hereinafter referred to as the left block motion vector value) is sent to and stored in the upper block vector value memory 6 and the left block vector value memory 7, respectively.
[0018]
Here, as shown in FIG. 3A, the upper block motion vector value (x m-1, y n) is the previous frame F-1From current upper block to current frame F0Is a vector value up to the upper block, and is a fixed value already calculated. Also, the left block motion vector value (x m0, Y n0-1) is the previous frame F-1From left block to current frame F0Is a vector value up to the left block of, and is a fixed value already calculated.
[0019]
The reference block address control circuit 5 receives a reference block (m) from the current frame memory 2 based on the designation signal S1.0, N0) Is read out and sent to the current frame memory 2.
The current frame memory 2 uses the reference block (m0, N0) And is sent to the difference calculation circuit 8.
[0020]
Subsequently, as shown in FIG. 3B, the vector control circuit 9 performs the previous frame F in order to perform blocking.-1All evaluation blocks in the search area (m-1, N-1) To current frame F0Standard block (m0, N0) In the order of motion vector values (x, y) (hereinafter referred to as reference block motion vector values), and an evaluation block address control circuit 10 and a vector difference weight calculation circuit 11 as motion vector value signals S3, 12 respectively.
[0021]
The evaluation block address control circuit 10 evaluates the evaluation block (m based on the input motion vector value signal S3.-1, N-1) Is read out and sent to the previous frame memory 3. The previous frame memory 3 determines the evaluation block (m-1, N-1) And is sent to the difference calculation circuit 8.
[0022]
The difference calculation circuit 8 receives the input reference block (m0, N0) Image data D2 and evaluation block (m-1, N-1) Of the absolute value of the difference in pixel value from the image data D3 of S)um(X, y) is calculated. As a result, the pixel value difference calculation unit 1 </ b> A makes the reference block (m0, N0) And evaluation block (m-1, N-1) And the pixel value difference can be calculated.
Here, the reference block (m0, N0) Where the address values of all the pixels in () are (h, v), the reference block (m0, N0) Is represented as Y (h, v) and the corresponding evaluation block (m-1, N-1) For each pixel value of Y When expressed as xy (h, v), the sum S of the absolute values of the differences between the pixel valuesum(X, y) is the following formula
[Expression 1]
Figure 0003786300
Can be expressed as
[0023]
On the other hand, the upper block vector value memory 6 of the block difference value calculation unit 1B stores the stored upper block motion vector value (x m0-1, y n0) To the vector difference weight calculation circuit 11. Similarly, the left block vector value memory 7 stores the stored left block motion vector value (x m0, Y n0-1) is sent to the vector difference weight calculation circuit 12.
[0024]
The vector difference weight calculation circuit 11 receives the input upper block motion vector value (x m0-1, y n0) And an evaluation block (m-1, N-1) To the reference block (m0, N0) To the reference block motion vector value (x, y) up to the difference (distance), the weight value WupAs (x, y),
[Expression 2]
Figure 0003786300
It is made to calculate with.
[0025]
Similarly, the vector difference weight calculation circuit 12 receives the input left block motion vector value (x m0, Y n0-1) and a value proportional to the difference (distance) between the reference block motion vector value (x, y) input from the vector control circuit 9 is a weight value WleftAs (x, y),
[Equation 3]
Figure 0003786300
It is made to calculate with.
[0026]
Here, the coefficient k used in the expressions (2) and (3) is a value that changes in accordance with the dispersion value (variation) of the image data D2 read from the current frame memory 2, and the coefficient k A new value is generated each time the position of the reference block is changed by the arithmetic circuit 16, and the weight value Wup(X, y) and Wleft(X, y) is multiplied.
[0027]
That is, the coefficient calculation circuit 16 determines that each evaluation block (m-1, N-1) Sum of absolute values of differences fromumNaturally, (x, y) also has a large variation, so that the weight value W can be obtained by increasing the coefficient k.up(X, y) and Wleft(X, y) is increased so as to be heavily weighted.
Further, when the variation of the image data D2 is small, the coefficient calculation circuit 16 determines each evaluation block (m-1, N-1) Sum of absolute values of differences fromumNaturally, (x, y) also has a small variation, so that the weight value W can be obtained by setting the coefficient k to a small value.up(X, y) and Wleft(X, y) is made smaller and weighted smaller.
[0028]
As described above, the coefficient calculation circuit 16 varies the value of the coefficient k in accordance with the variation of the image data D2, and thereby the evaluation block (m-1, N-1) Sum S at each positionumWhen the values of (x, y) are weighted, they are not greatly changed (not canceled) by the coefficient k. Therefore, the weight value Wup(X, y) and Wleft(X, y) is the sum SumCompared with the value of (x, y), it becomes a very small value. In this case, the weight value Wup(X, y) and Wleft(X, y) indicates that the reference block motion vector value (x, y) is the upper block motion vector value (x m0-1, y n0) And left block motion vector values (x m0, Y n0Since the distance is shorter as the distance is closer to -1), the difference is smaller and the weight value is naturally smaller.
[0029]
In this way, the calculated weight value Wup(X, y) and Wleft(X, y) is added by the adder 13, and the sum S of the absolute values of the differences output from the difference calculation circuit 8 is further added.umBlock difference value D added to (x, y) via adder 14iffAs (x, y),
[Expression 4]
Figure 0003786300
And is sent to the vector value detection circuit 15 as detection means.
[0030]
In this way, all evaluation blocks (m-1, N-1Block difference value D calculated foriff(X, y) is input to the vector value detection circuit 15. The vector value detection circuit 15 calculates all block difference values Diff(X, y) are compared, and the block difference value DiffThe reference block motion vector value (x, y) when (x, y) is the smallest is output.
The vector value detection circuit 15 also sends the detected reference block motion vector value (x, y) to the upper block vector value memory 6 and the left block vector value memory 7, and the right and lower blocks are then sent to the reference block ( m0, N0) Can be used as a motion vector value.
[0031]
In the above configuration, the motion vector detection device 1 has the reference block (m) shown in FIGS.0, N0) And evaluation block (m-1, N-1) And the case where the image moves from the right side to the left side.
In the motion vector detection device 1, the difference calculation unit 1A uses the current frame F.0Standard block (m0, N0) Image data D2 and previous frame F-1Evaluation block in the search area (m-1, N-1) Of the absolute value of the difference of each pixel value from the image data D3 of S)um(X, y) is calculated by equation (1).
[0032]
Here, all evaluation blocks in the search area (m-1, N-1) Sum Sum(X, y) is calculated, and the evaluation block (m-1, N-1)), Since there are a plurality of block images of the same pattern of bricks, the sum SumEvaluation block that minimizes (x, y) (m-1, N-1) (See FIG. 7), an accurate motion vector cannot be detected.
[0033]
Therefore, the motion vector detecting device 1 uses the upper block motion vector value (x) stored in advance by the block difference value calculation unit 1B. m0-1, y n0) And left block motion vector values (x m0, Y n0−1) and (FIG. 3A), the weight value W obtained by multiplying the absolute value of the difference between the reference block motion vector values (x, y) and (FIG. 3B) by the coefficient k.up(X, y), Wleft(X, y) is calculated by the equations (2) and (3), and the weight value Wup(X, y), Wleft(X, y) is the sum S of the absolute values of the differences between the pixel values according to equation (4).umBlock difference value D added to (x, y)iffFind (x, y).
[0034]
In practice, the motion vector detection apparatus 1 uses the upper block motion vector value (x m0-1, y n0) And the left block motion vector value (x m0, Y n0-1) is a fixed value, and all reference block motion vector values (x, y) in the search area are evaluated blocks (m-1, N-1), The evaluation value (m-1, N-1) Is a weight value W only when it is in a position representing the original motion vector in the search area.up(X, y), Wleft(X, y) is minimized, and thus the block difference value Diff(X, y) is minimized.
[0035]
Therefore, as shown in FIG. 4, the motion vector detecting apparatus 1 uses each evaluation block (m-1, N-1) Block difference value D at each positioniff(X, y) is the weight value Wup(X, y), WleftIt is displayed as a graph having an inclination corresponding to the size of (x, y). As a result, the motion vector detecting device 1 is able to detect the block difference value D.iffThe reference block motion vector value (x, y) at the position where (x, y) is minimum can be detected by the vector value detection circuit 15, and thus a block image of a continuous pattern such as a brick can be obtained. Can detect the motion vector without error.
[0036]
In the motion vector detection device 1, the weight value Wup(X, y), WleftWhen calculating (x, y), the value of the coefficient k is used as the reference block (m0, N0), The sum SumBlock difference value D by weighting (x, y) by coefficient k without cancellationiffThe angle of inclination of the graph representing (x, y) can be changed, thus the block difference value DiffIt is possible to easily detect the reference block motion vector value (x, y) that minimizes (x, y), and reduce motion vector detection errors.
[0037]
In this way, the motion vector detection device 1 uses the difference calculation unit 1A to generate the reference block (m0, N0) And evaluation block (m-1, N-1) Sum of absolute values of differences in pixel values at respective positionsum(X, y) is calculated, and the weight value W is calculated by the block difference value calculation unit 1B.up(X, y), Wleft(X, y) is calculated, and the weight value Wup(X, y), Wleft(X, y) is evaluated block (m-1, N-1) Sum S at each positionumEach block difference value D added to (x, y)iff(X, y) is calculated, and the block value difference D is detected by the vector value detection circuit 15 as detection means.iffA reference block motion vector value (x, y) that minimizes (x, y) can be detected.
[0038]
According to the above configuration, the motion vector detection device 1 has the reference block (m0, N0) Image data D2 and evaluation block (m-1, N-1) Of the absolute value of the difference of each pixel value from the image data D3 of S)umThe upper block motion vector value (x m0-1, y n0) And left block motion vector values (x m0, Y n0-1) and the weight value W obtained by multiplying the absolute value of the difference between the reference block motion vector value (x, y) by the coefficient kup(X, y), WleftBlock difference value D by adding (x, y)iffBy calculating (x, y), the block difference value DiffThis makes it easy to detect the reference block motion vector value (x, y) that minimizes (x, y), and thus reduces the detection error of the motion vector even when the image patterns for each block are similar, resulting in high quality. Image data can be transmitted.
[0039]
In addition, the motion vector detection device 1 has a reference block (m0, N0) Is set to an upper block motion vector value (x m0-1, y n0) And left block motion vector values (x m0, Y n0-1) and the absolute value of the difference between the reference block motion vector value (x, y) and the sum S of the pixel value differences SumWeight value W according to (x, y)up(X, y), Wleft(X, y) can be calculated, and thus the block difference value DiffReference block when (x, y) is minimized (m0, N0) Motion vectors can be easily detected and detection errors can be reduced.
[0040]
Further, the motion vector detection device 1 is a reference block (m0, N0) Of the surrounding blocks located around the reference block (m0, N0) Adjacent to the upper block (m0-1, n0) And the left block (m0, N0-1) and the weight value Wup(X, y), WleftBy calculating (x, y), the calculation can be facilitated and the calculation time can be shortened, and thus the motion vector can be detected in real time.
[0041]
In the above-described embodiment, the current vector F is detected in the motion vector detection device 1.0Standard block (m0, N0) For the upper block (m0-1, n0) And left block (m0, N0-1) each motion vector value (x m0-1, y n0) And (x m0, Y n0−1) and the absolute value of the difference between the reference block motion vector value (x, y) and the weight value Wup(X, y), WleftAlthough the case where (x, y) is calculated has been described, the present invention is not limited to this, and the previous frame in which the motion vector value of the previous frame is stored as in the motion vector detection device 30 shown in FIG. A vector value memory 31 and a vector difference weight calculation circuit 32 are added to the motion vector detection device 1, and based on the absolute value of the difference between the motion vector value of the previous frame and the reference block motion vector value (x, y). Weight value Wfor(X, y) is calculated and the weight value Wfor(X, y) is the weight value Wup(X, y), WleftBlock difference value D in addition to (x, y)iff(X, y) may be obtained. Also in this case, the same effect as the above-mentioned embodiment can be obtained.
[0042]
Further, in the above embodiment, the area range of the search area is set as the reference block (m0, N0However, the present invention is not limited to this, and the area range of the search area may be freely set according to the image pattern and processing time. good.
[0043]
Furthermore, in the above embodiment, the block difference value DiffA reference block (m0, N0) Around the top and left of the upper block (m0-1, n0) And left block (m0, N0-1) each motion vector value (x m0-1, y n0) And (x m0, Y n0-1) has been described, but the present invention is not limited to this. In short, the reference block (m0, N0If the image data has already been processed and the motion vector value has been calculated, the block difference value D is determined by only the motion vector value of either the upper block or the left block.iff(X, y) may be obtained, or the motion vector value of the upper left block or the upper right block may be used.
[0044]
Further, in the above-described embodiments, the case where the present invention is applied to a VTR for HDTV has been described. However, the present invention is not limited to this, and a moving image is highly efficiently encoded and transmitted in the field of digital image communication. The present invention may be applied to various devices.
[0045]
【The invention's effect】
  As described above, according to the present invention, even when there are a plurality of evaluation blocks that minimize the total sum of pixel value differences, the final result is based on the weighting amount reflecting the variation tendency of the image data of the reference block. Since a motion vector can be detected, a motion vector can be detected without error even if it is a block image of a continuous pattern of the same pattern. Thus, in an image in which a similar image pattern is continuous and an image having a constant brightness. A motion vector detection device and a motion vector detection method capable of reducing motion vector detection errors can be realized.
[Brief description of the drawings]
BRIEF DESCRIPTION OF DRAWINGS FIG. 1 is a schematic diagram for explaining a case of performing block matching according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a motion vector detection device according to an embodiment of the present invention.
FIG. 3 is a schematic diagram for explaining each motion vector value according to the embodiment of the present invention.
FIG. 4 is a chart showing a graph of block difference values to which weight values are added according to an embodiment of the present invention.
FIG. 5 is a block diagram showing a configuration of a motion vector detection device according to another embodiment.
FIG. 6 is a schematic diagram for explanation of block clipping on an image.
FIG. 7 shows S when puncturing is performed on a continuous pattern image.umIt is a graph showing the minimum value of.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Motion vector detection apparatus, 2 ... Current frame memory, 3 ... Previous frame memory, 4 ... Block position count circuit, 5 ... Reference block address control circuit, 6 ... Upper block vector value memory , 7... Left block vector value memory, 8... Difference calculation circuit, 9... Vector control circuit, 10... Evaluation block address control circuit, 11, 12, 32. ... Adder, 15... Vector value detection circuit, 16... Coefficient operation circuit, 17.

Claims (4)

画像データの動きベクトルを検出する動きベクトル検出装置において、
現フレームにおいて所定の大きさに形成されて所定位置に固定された基準ブロツクの画像データを取得する基準ブロツク取得手段と、
前フレームにおいて所定範囲のサーチエリア内で移動させたときの各位置における上記基準ブロツクと同じ大きさでなる評価ブロツクの画像データを取得する評価ブロツク取得手段と、
上記基準ブロツク取得手段により取得された上記基準ブロツクの画像データと上記評価ブロツク取得手段により取得された上記評価ブロツクの画像データとの画素値の差分の総和を算出する差分演算手段と、
検出が終了している当該基準ブロツクの周囲ブロツクに対する動きベクトル値と、上記基準ブロツクの上記評価ブロツクに対する動きベクトル値との差分に対して、上記基準ブロツクの画像データの分散値に比例した係数を乗算することにより、重み付け量を算出する重み演算手段と、
上記重み演算手段により算出された上記重み付け量を上記差分演算手段により算出された上記画素値の差分の総和に加算してブロツク差分値を算出する加算演算手段と、
上記加算演算手段により算出された上記ブロツク差分値が最小となる位置の上記評価ブロツクから上記基準ブロツクまでの動きベクトルを検出する検出手段と
を具えることを特徴とする動きベクトル検出装置。
In a motion vector detection device for detecting a motion vector of image data,
Reference block acquisition means for acquiring image data of a reference block formed in a predetermined size and fixed at a predetermined position in the current frame;
Evaluation block acquisition means for acquiring image data of an evaluation block having the same size as the reference block at each position when moved in a search area of a predetermined range in the previous frame;
Difference calculating means for calculating a sum of differences in pixel values between the image data of the reference block acquired by the reference block acquiring means and the image data of the evaluation block acquired by the evaluation block acquiring means;
A coefficient proportional to the variance value of the image data of the reference block is calculated with respect to the difference between the motion vector value for the surrounding block of the reference block for which detection has been completed and the motion vector value for the evaluation block of the reference block A weight calculation means for calculating a weighting amount by multiplication;
An addition calculation means for calculating a block difference value by adding the weighting amount calculated by the weight calculation means to a sum of differences of the pixel values calculated by the difference calculation means;
A motion vector detection apparatus comprising: a detection means for detecting a motion vector from the evaluation block to the reference block at a position where the block difference value calculated by the addition calculation means is minimum.
上記周囲ブロツクは、上記基準ブロツクの上部に隣接する上ブロツク、又は上記基準ブロツクの左部に隣接する左ブロツク、或いは上記上ブロツク及び上記左ブロツクの双方である
ことを特徴とする請求項1に記載の動きベクトル検出装置。
2. The surrounding block is an upper block adjacent to an upper portion of the reference block, a left block adjacent to a left portion of the reference block, or both the upper block and the left block. The motion vector detection device described.
画像データの動きベクトルを検出する動きベクトル検出方法において、
現フレームにおいて所定の大きさに形成されて所定位置に固定された基準ブロツクの画像データを取得する基準ブロツク取得ステツプと、
前フレームにおいて所定範囲のサーチエリア内で移動させたときの各位置における上記基準ブロツクと同じ大きさでなる評価ブロツクの画像データを取得する評価ブロツク取得ステツプと、
上記基準ブロツク取得ステツプで取得された上記基準ブロツクの画像データと上記評価ブロツク取得手段により取得された上記評価ブロツクの画像データとの画素値の差分の総和を算出する差分演算ステツプと、
検出が終了している当該基準ブロツクの周囲ブロツクに対する動きベクトル値と、上記基準ブロツクの上記評価ブロツクに対する動きベクトル値との差分に対して、上記基準ブロツクの画像データの分散値に比例した係数を乗算することにより、重み付け量を算出する重み演算ステツプと、
上記重み演算ステツプで算出された上記重み付け量を上記差分演算ステツプで算出された上記画素値の差分の総和に加算してブロツク差分値を算出する加算演算ステツプと、
上記加算演算ステツプにより算出された上記ブロツク差分値が最小となる位置の上記評価ブロツクから上記基準ブロツクまでの動きベクトルを検出する検出ステツプと
を具えることを特徴とする動きベクトル検出方法。
In a motion vector detection method for detecting a motion vector of image data,
A reference block acquisition step for acquiring image data of a reference block formed in a predetermined size and fixed at a predetermined position in the current frame;
An evaluation block acquisition step for acquiring image data of the evaluation block having the same size as the reference block at each position when moved in the search area of a predetermined range in the previous frame;
A difference calculation step for calculating a sum of differences in pixel values between the image data of the reference block acquired in the reference block acquisition step and the image data of the evaluation block acquired by the evaluation block acquisition means;
A coefficient proportional to the variance value of the image data of the reference block is calculated with respect to the difference between the motion vector value for the surrounding block of the reference block for which detection has been completed and the motion vector value for the evaluation block of the reference block A weight calculation step for calculating a weighting amount by multiplication;
An addition calculation step for calculating a block difference value by adding the weighting amount calculated in the weight calculation step to a sum of differences of the pixel values calculated in the difference calculation step;
A motion vector detection method comprising: a detection step for detecting a motion vector from the evaluation block to the reference block at a position where the block difference value calculated by the addition operation step is minimum.
上記周囲ブロツクは、上記基準ブロツクの上部に隣接する上ブロツク、又は上記基準ブロツクの左部に隣接する左ブロツク、或いは上記上ブロツク及び上記左ブロツクの双方である
ことを特徴とする請求項に記載の動きベクトル検出方法。
The peripheral block is block upper adjacent the top of the reference block, or left blocks adjacent to the left portion of the reference block, or to claim 3, characterized in that the both of the upper block and the left block The motion vector detection method described.
JP24877696A 1996-08-30 1996-08-30 Motion vector detection apparatus and motion vector detection method Expired - Fee Related JP3786300B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24877696A JP3786300B2 (en) 1996-08-30 1996-08-30 Motion vector detection apparatus and motion vector detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24877696A JP3786300B2 (en) 1996-08-30 1996-08-30 Motion vector detection apparatus and motion vector detection method

Publications (2)

Publication Number Publication Date
JPH1075453A JPH1075453A (en) 1998-03-17
JP3786300B2 true JP3786300B2 (en) 2006-06-14

Family

ID=17183220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24877696A Expired - Fee Related JP3786300B2 (en) 1996-08-30 1996-08-30 Motion vector detection apparatus and motion vector detection method

Country Status (1)

Country Link
JP (1) JP3786300B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4529615B2 (en) * 2004-09-24 2010-08-25 ソニー株式会社 Encoding apparatus, encoding method, encoding method program, and recording medium recording the encoding method program
EP1874059A4 (en) * 2005-03-22 2011-05-04 Panasonic Corp Encoding device and dynamic image recording system using the encoding device
GB2432068B (en) * 2005-11-02 2010-10-06 Imagination Tech Ltd Motion estimation
JP5441803B2 (en) * 2010-04-12 2014-03-12 キヤノン株式会社 Motion vector determination device, motion vector determination method, and computer program
JP2011223393A (en) * 2010-04-12 2011-11-04 Canon Inc Encoding device and method of controlling encoding device
JP5441812B2 (en) * 2010-05-12 2014-03-12 キヤノン株式会社 Video encoding apparatus and control method thereof

Also Published As

Publication number Publication date
JPH1075453A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
WO2008047664A1 (en) Image creating device and image creating method
JPH0832048B2 (en) Motion vector detector
JP3200889B2 (en) Image vibration correction device
JP3786300B2 (en) Motion vector detection apparatus and motion vector detection method
JPH02108393A (en) Method and apparatus for measuring picture movement
JP2007323635A (en) Recursive filtering of video image
JP3143494B2 (en) Motion vector apparatus and method
JPH0799661A (en) Motion compensation predicting device
JPH04309078A (en) Jiggling detector for video data
JP3154272B2 (en) Image conversion apparatus and method
JP3303311B2 (en) Image vibration correction apparatus and image vibration correction method
JP3303312B2 (en) Image vibration correction apparatus and image vibration correction method
JP3271387B2 (en) Motion amount detection device and motion amount detection method
JP3271273B2 (en) Image vibration determination apparatus, image vibration correction apparatus, image vibration determination method, and image vibration correction method
JP3832924B2 (en) Image signal processing method, image signal processing apparatus, and computer-readable recording medium
JP4250807B2 (en) Field frequency conversion device and conversion method
JPH05176218A (en) Picture motion correcting device
JPH08279949A (en) Electronic zooming processing unit and its method
JP3271275B2 (en) Image vibration correction apparatus and image vibration correction method
JPH04205572A (en) Signal processor
JP3271274B2 (en) Image vibration determination apparatus, image vibration correction apparatus, image vibration determination method, and image vibration correction method
JP3223577B2 (en) Image stabilization device
JP3303310B2 (en) Image vibration correction apparatus and image vibration correction method
JP3230530B2 (en) Motion vector detecting device and motion vector detecting method
JP3252416B2 (en) Image stabilization device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050415

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051202

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051219

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: 20060303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060316

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

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees