JP3786300B2 - Motion vector detection apparatus and motion vector detection method - Google Patents
Motion vector detection apparatus and motion vector detection method Download PDFInfo
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
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 m0 、y n0 −1)(以下、これを左ブロツク動きベクトル値と呼ぶ)を上ブロツクベクトル値メモリ6及び左ブロツクベクトル値メモリ7にそれぞれ送出して格納しておく。
【0018】
ここで、図3(A)に示すように上ブロツク動きベクトル値(x m−1、y n)は、前フレームF-1の上ブロツクから現フレームF0 の上ブロツクまでのベクトル値であり、既に算出された固定値である。また、左ブロツク動きベクトル値(x m0 、y n0 −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】
で表すことができる。
【0023】
一方、ブロツク差分値演算部1Bの上ブロツクベクトル値メモリ6は、格納しておいた上ブロツク動きベクトル値(x m0 −1、y n0 )をベクトル差分重み演算回路11に送出する。同様に、左ブロツクベクトル値メモリ7は格納しておいた左ブロツク動きベクトル値(x m0 、y n0 −1)をベクトル差分重み演算回路12に送出する。
【0024】
ベクトル差分重み演算回路11は、入力された上ブロツク動きベクトル値(x m0 −1、y n0 )と、ベクトルコントロール回路9から入力される現在演算の行われている評価ブロツク(m-1、n-1)から基準ブロツク(m0 、n0 )までの基準ブロツク動きベクトル値(x、y)との差分(距離)に比例した値を、重み値Wup(x、y)として、次式
【数2】
で算出するようになされている。
【0025】
同様に、ベクトル差分重み演算回路12は、入力された左ブロツク動きベクトル値(x m0 、y n0 −1)と、ベクトルコントロール回路9から入力された基準ブロツク動きベクトル値(x、y)との差分(距離)に比例した値を、重み値Wleft(x、y)として、次式
【数3】
で算出するようになされている。
【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 m0 −1、y n0 )及び左ブロツク動きベクトル値(x m0 、y n0 −1)に近ければ近いほど距離が短くなるので差分は小さくなり、当然重み値も小さくなる。
【0029】
このようにして、算出された重み値Wup(x、y)及びWleft(x、y)は加算器13によつて加えられ、さらに差分演算回路8から出力される差分の絶対値の総和Sum(x、y)に加算器14を介して加えられてブロツク差分値Diff (x、y)として、次式
【数4】
として表され、検出手段としてのベクトル値検出回路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 m0 −1、y n0 )及び左ブロツク動きベクトル値(x m0 、y n0 −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 m0 −1、y n0 )、及び左ブロツク動きベクトル値(x m0 、y n0 −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 m0 −1、y n0 )及び左ブロツク動きベクトル値(x m0 、y n0 −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 m0 −1、y n0 )及び左ブロツク動きベクトル値(x m0 、y n0 −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 m0 −1、y n0 )及び(x m0 、y n0 −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 m0 −1、y n0 )及び(x m0 、y n0 −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
[0016]
A block position count circuit 4 detects the current frame F stored in the
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
[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
The
[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
[0021]
The evaluation block
[0022]
The
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]
Can be expressed as
[0023]
On the other hand, the upper block vector value memory 6 of the block difference
[0024]
The vector difference
[Expression 2]
It is made to calculate with.
[0025]
Similarly, the vector difference
[Equation 3]
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
[0027]
That is, the
Further, when the variation of the image data D2 is small, the
[0028]
As described above, the
[0029]
In this way, the calculated weight value Wup(X, y) and Wleft(X, y) is added by the
[Expression 4]
And is sent to the vector
[0030]
In this way, all evaluation blocks (m-1, N-1Block difference value D calculated foriff(X, y) is input to the vector
The vector
[0031]
In the above configuration, the motion
In the motion
[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
[0034]
In practice, the motion
[0035]
Therefore, as shown in FIG. 4, the motion
[0036]
In the motion
[0037]
In this way, the motion
[0038]
According to the above configuration, the motion
[0039]
In addition, the motion
[0040]
Further, the motion
[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
[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
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.
ことを特徴とする請求項3に記載の動きベクトル検出方法。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.
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)
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 |
-
1996
- 1996-08-30 JP JP24877696A patent/JP3786300B2/en not_active Expired - Fee Related
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 | |
JP2947360B2 (en) | Method and apparatus for measuring image motion | |
JP3786300B2 (en) | Motion vector detection apparatus and motion vector detection method | |
US7970227B2 (en) | Image processing apparatus, image processing method, and computer program | |
JP4796696B2 (en) | Method and apparatus for computer-aided motion compensation of digitized images and computer-readable recording medium | |
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 | |
JP3727460B2 (en) | Motion vector detection circuit | |
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 | |
JP4250807B2 (en) | Field frequency conversion device and conversion method | |
JPH08279949A (en) | Electronic zooming processing unit and its method | |
JP4078733B2 (en) | Motion vector detection method and apparatus | |
JP3271275B2 (en) | Image vibration correction apparatus and image vibration correction method | |
JPH04205572A (en) | Signal processor | |
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 | |
JP2743763B2 (en) | Motion estimation method for moving images |
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 |