JP2010288110A - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP2010288110A
JP2010288110A JP2009140813A JP2009140813A JP2010288110A JP 2010288110 A JP2010288110 A JP 2010288110A JP 2009140813 A JP2009140813 A JP 2009140813A JP 2009140813 A JP2009140813 A JP 2009140813A JP 2010288110 A JP2010288110 A JP 2010288110A
Authority
JP
Japan
Prior art keywords
resolution
motion vector
block
low
high resolution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009140813A
Other languages
English (en)
Inventor
Masayuki Yokoyama
正幸 横山
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 JP2009140813A priority Critical patent/JP2010288110A/ja
Priority to US12/793,791 priority patent/US8542741B2/en
Priority to CN2010101984372A priority patent/CN101924873B/zh
Publication of JP2010288110A publication Critical patent/JP2010288110A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Analysis (AREA)

Abstract

【課題】基準フレームと参照フレームとの間の動きベクトルを、階層化処理により、算出する場合に、より効率的に、処理サイクル数を少なくして、消費電力を抑制する。
【解決手段】高解像度層のブロック毎に、当該高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする高解像度層計算判定手段を設ける。高解像度層計算判定手段で、高解像度層のブロックについての動きベクトルの算出をすると判定したときには、高解像度動きベクトル算出手段を動作させて、高解像度層の動きベクトルを算出させるようにすると共に、高解像度層のブロックについての動きベクトルの算出をしないと判定したときには、高解像度動きベクトル算出手段を動作させずに、低解像度動きベクトル算出手段で算出された低解像度層の動きベクトルを、高解像度の層の画像サイズに合わせた大きさにしたもので代用するようにする。
【選択図】図1

Description

この発明は、2枚の異なる画面の間での動き(動きベクトル)を検出する画像処理装置および画像処理方法に関する。この明細書で、画面とは、1フレーム分または1フィールド分の画像データからなり、1枚分としてディスプレイに表示される画像を意味しているものとしている。
2枚の異なる画面の間での動き(動きベクトル)を検出し、検出した動きベクトルを用いることで、種々の画像処理を行うことができる。
例えば、動画像データを扱う際には、動画像データにおける2画面間の動きベクトルを用いることによって動画像データを、高効率で圧縮できることが広く知られている。また、検出した動きベクトルを用いることで、テレビジョンカメラのパン・チルト検出や被写体追尾などの処理を行うことも知られている。
さらに、最近では、検出した動きベクトルを用いて画像を重ね合わせることにより、センサレス手ぶれ補正や低照度撮影時のノイズ除去など、多岐に渡って応用が進められている。
動きベクトルの算出方法としては、ブロックマッチング手法や勾配法などが知られており、一般的には、ブロックマッチング手法が良く使用されている。
ブロックマッチング手法では、注目画面である参照画面と、当該参照画面の動きの元となる基準画面との間の2画面間の動きベクトルを、所定の大きさの矩形領域のブロック毎に、参照画面と基準画面との間での相関度を算出することにより算出する。
すなわち、基準画面に設定される基準ブロックと、参照画面において探索領域(サーチ範囲)内に複数設定される参照ブロックとの間の相関の強さを表す相関度をそれぞれ求める。そして、その求められた相関度のうち最も相関度の高い参照ブロックに基づいて、基準ブロックに対する動きベクトルを算出する。
なお、基準画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEGにおける動き検出の場合)と、参照画面が時間的に基準画面よりも前の画面とされる場合(例えば、画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。
前述したように、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、基準画面は基準フレームと称することとする。
従来の一般的なブロックマッチングの概要を、図27〜図30を参照して説明する。
ここで説明するブロックマッチング手法においては、例えば、図27(A)に示すように、基準フレーム100を、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域(ブロックという)の複数個に分割する。基準フレーム100におけるこれらの複数個のブロック102のそれぞれを、基準ブロックという。
ブロックマッチングにおいては、基準ブロック102と相関性の高いブロックを、参照フレーム101の中から検索する。参照フレーム101に設定される基準ブロックと同じ大きさのブロックを参照ブロックと呼ぶ。
そして、前記検索の結果、相関性が最も高いとして参照フレーム101内に検出された参照ブロック103(図27(B)参照)を、動き補償ブロックと呼ぶ。また、基準ブロック102と動き補償ブロック103との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)を、動きベクトル(図27(B)の符号104参照)と称する。
動きベクトル104は、参照フレーム101において、基準フレーム100の各基準ブロック102の位置と同じ位置に、基準ブロック102の射影イメージブロック109を想定したとき、この基準ブロックの射影イメージブロック109の位置(例えば中心位置)と、動き補償ブロック103の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
ブロックマッチング処理の概要を説明する。図28において点線で示すように、参照フレーム101において、基準フレーム100の各基準ブロック102の位置と同じ位置に基準ブロックの射影イメージブロック109を想定する。そして、この基準ブロックの射影イメージブロック109の中心の座標を、動き検出の原点105とする。そして、動きベクトル104が、動き検出の原点105から或る範囲内に存在すると仮定し、この動き検出の原点105を中心した所定の範囲をサーチ範囲106(図27の一点鎖線参照)と設定する。
次に、参照フレームにおいて、基準ブロック102と同じ大きさのブロック(参照ブロック)108を設定する。そして、この参照ブロック108の位置を、サーチ範囲106内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲106においては、複数個の参照ブロック108が設定されることになる。
ここで、参照ブロック108を、サーチ範囲106内を移動させるというのは、この例では、動き検出原点105が基準ブロックの中心位置であるので、参照ブロック108の中心位置を、サーチ範囲106内を移動させることを意味する。そのため、参照ブロック108を構成する画素は、サーチ範囲106よりもはみ出すことがある。
そして、サーチ範囲において、設定される各参照ブロック108に対して、当該各参照ブロック108と基準ブロック102との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)107(図B参照)を設定する。そして、それぞれの参照ベクトル107が指し示す位置にある参照ブロック108の画像内容と、基準ブロック102の画像内容との相関性を評価する。
参照ベクトル107は、図29に示すように、参照ブロック108の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができる。
例えば、参照ブロック108が、基準ブロック102の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル107はベクトル(1,0)となる。また、図30に示すように、参照ブロック108が、基準ブロック102の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル107はベクトル(3,2)となる。
つまり、参照ベクトル107は、図30の例に示すように、基準ブロック102および参照ブロック108の位置を、それぞれのブロックの中心位置とした場合、対応する各参照ブロック108の中心位置と基準ブロック102の中心位置との位置ずれを意味する。
参照ブロック108は、サーチ範囲106において移動するものとなるが、その場合に、参照ブロック108の中心位置がサーチ範囲106内を移動する。前述もしたように、参照ブロック108は、水平方向および垂直方向の複数画素からなる。このため、基準ブロック102とブロックマッチング処理される対象となる参照ブロック108が移動する最大範囲は、図30に示すように、サーチ範囲106よりも広いマッチング処理範囲110となる。
そして、基準ブロック102の画像内容との相関が最も強いとして検出された参照ブロック108の位置を、基準ブロック102の、参照フレーム101における位置(動いた後の位置)として検出し、検出した参照ブロックを、動き補償ブロック103とする。そして、その検出した動き補償ブロック103の位置と、基準ブロック102の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル104として検出するようにする(図27(B)参照)。
ここで、基準ブロック102と、サーチ範囲106に設定される複数の参照ブロック108との相関の強さを表す相関値は、基本的には基準ブロック102と参照ブロック108との対応する画素値を用いて算出される。この相関値を得る方法としては、自乗平均を用いる方法やブロック内の画素の差分の総和を算出する方法、その他種々の方法が提案されている。
以上のように、ブロックマッチング手法では、参照ブロックと基準ブロックとの相関度を、ブロック同士が近似しているかどうかの評価値として算出する。そして、算出した相関度が高い(評価値が高い)参照ブロックをサーチ範囲内において検出し、当該評価値の高い参照ブロックと基準ブロックとの位置ずれ量と位置ずれの方向とを、基準ブロックに対する動きベクトルとして検出する。
上述のようなブロックマッチング手法においては、サーチ範囲内に複数設定される参照ブロックと基準ブロックとの間の相関度を、参照ブロックごとに算出するため、画像処理量(処理サイクル数)が多くなり、消費電力が大きくなってしまうという問題がある。
この問題を解決するため、基準フレームと参照フレームそれぞれについて、高解像度の画像と、高解像度の画像を縮小して得た低解像度の画像とで階層を構成し、階層ごとに動きベクトルを算出する方法が考案されている(特許文献1参照)。
この階層的な動きベクトルの算出手法においては、低解像度の画像について、基準ブロックに対する動きベクトルを求め、求めた動きベクトルから、高解像度の画像における基準ブロックに対する参照ブロックのサーチ範囲を定める。したがって、高解像度の画像では、参照フレームにおける参照ブロックのサーチ範囲を狭い範囲とすることができる。
以上のことから、階層化手法を用いれば、低解像度の画像での動きベクトルの算出の際には、画素数が少なくなるので、基準ブロックと参照ブロックとの相関度を算出する際の演算処理量が少なくなる。そして、低解像度の画像に基づいて得た動きベクトルから、高解像度の画像における基準ブロックに対する参照ブロックのサーチ範囲を狭い範囲とすることができる。このため、最終的に得たい高解像度の画像の基準ブロックに対する動きベクトルを少ない画像処理量(処理サイクル数)で算出することができる。
しかし、階層的に動きベクトルを算出する方法でも、画像の縮小率が高すぎると正確な動きベクトルを求めることが出来ないため、階層的に動きベクトルを算出するだけでは画像処理量や消費電力の削減には限界があった。
これに対して、例えば特許文献2には、画像を帯域分離して低周波画像と高周波画像で階層を構成し、高周波成分の総量が閾値以下の場合は高周波画像での動きベクトル算出を省略するという方法が考案されている。
特開2009−55410号公報 特開2004−56305号公報
しかしながら、特許文献2の方法では、画像信号について、帯域分離して階層化するための処理量が必要となり、その分、画像処理量を削減することができないと言う問題がある。
また、特許文献2の方法では、動きベクトルの算出の省略は、高周波画像のフレーム全体に対して行うようにしているため、フレーム全体に対する高周波の割合が高い場合は、動きベクトルの算出の省略はなく、計算量を削減できないという問題もあった。
この発明は、以上の点にかんがみ、より効率的に、処理サイクル数を少なくして、消費電力を抑制することができる画像処理装置および方法を提供することを目的とする。
上記の課題を解決するために、この発明による画像処理装置は、
高解像度の基準フレームの画像情報が格納される高解像度基準フレームバッファと、
高解像度の参照フレームの画像情報が格納される高解像度参照フレームバッファと、
前記高解像度の基準フレームの画像が縮小された低解像度の基準フレームの画像情報が格納される低解像度基準フレームバッファと、
前記高解像度の参照フレームの画像が縮小された低解像度の参照フレームの画像情報が格納される低解像度参照フレームバッファと、
前記低解像度基準フレームおよび前記低解像度参照フレームにおいて、複数の画素からなる所定の大きさの低解像度層のブロックの単位で、低解像度層の動きベクトルを算出する低解像度動きベクトル算出手段と、
前記高解像度基準フレームおよび前記高解像度参照フレームにおいて、前記低解像度層のブロックに対応する大きさの高解像度層のブロックの単位で、前記低解像度層の動きベクトルの算出結果を用いながら、高解像度層の動きベクトルを算出する高解像度動きベクトル算出手段と、
前記高解像度層のブロック毎に、当該高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする高解像度層計算判定手段と、
を備え、
前記高解像度層計算判定手段で、前記高解像度層のブロックについての動きベクトルの算出をすると判定したときには、前記高解像度動きベクトル算出手段を動作させて、前記高解像度層の動きベクトルを算出させるようにすると共に、前記高解像度層のブロックについての動きベクトルの算出をしないと判定したときには、前記高解像度動きベクトル算出手段を動作させずに、前記低解像度動きベクトル算出手段で算出された前記低解像度層の動きベクトルを、前記高解像度の層の画像サイズに合わせた大きさにしたもので代用するようにする
ことを特徴とする。
上述の構成のこの発明による画像処理装置においては、階層化は、帯域分離ではなく、画像の縮小によりなされ、簡単な処理でよい。
そして、高解像度層では、動きベクトルの算出をするかどうかの判定を、高解像度基準フレームに設定されるブロック毎に行う。したがって、動きベクトルを算出する基準フレームと参照フレームとの画像内容に応じて、適宜、高解像度層のブロックの動きベクトルの算出を省略することができる。
この発明によれば、高解像度層での動きベクトルの算出をするかどうかの判定を、高解像度基準フレームに設定されるブロック毎に行う。このため、基準フレームと参照フレームとの画像内容に応じて、適宜、高解像度層のブロックの動きベクトルの算出を省略することができる。これにより、処理サイクル数や消費電力を、的確に抑制することができる。
この発明による画像処理装置の第1の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の実施形態で用いる階層化ブロックマッチング処理を説明するための図である。 この発明による画像処理装置の実施形態で用いる階層化ブロックマッチング処理を説明するための図である。 この発明による画像処理装置の実施形態で用いる階層化ブロックマッチング処理を説明するための図である。 この発明による画像処理装置の実施形態で用いる階層化ブロックマッチング処理を説明するための図である。 この発明による画像処理装置の実施形態で用いる階層化ブロックマッチング処理を説明するための図である。 この発明による画像処理装置の実施形態を説明するために用いる演算式を示す図である。 この発明による画像処理装置の実施形態で用いるブロックマッチング処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第1の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第2の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第2の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第3の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第3の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第4の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第4の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第5の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第5の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第6の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第6の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第7の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第7の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の第8の実施形態のハードウエア構成例を示すブロック図である。 この発明による画像処理装置の第8の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の他の実施形態を説明するための図である。 この発明による画像処理装置の他の実施形態を説明するための図である。 この発明による画像処理装置の他の実施形態における処理の流れを説明するためのフローチャートを示す図である。 この発明による画像処理装置の実施形態で用いるブロックマッチング処理の概要を説明するための図である。 この発明による画像処理装置の実施形態で用いるブロックマッチング処理の概要を説明するための図である。 この発明による画像処理装置の実施形態で用いるブロックマッチング処理の概要を説明するための図である。 この発明による画像処理装置の実施形態で用いるブロックマッチング処理の概要を説明するための図である。
以下、この発明による画像処理装置および方法の幾つかの実施形態を、図を参照しながら説明する。
この発明の実施形態を説明する前に、当該実施形態で用いる階層的な動きベクトル算出手法を用いた画像処理装置の概要を説明する。
この実施形態では、先ず、元の画像(高解像度画像)に対して縮小画像(低解像度画像)を作成し、作成した縮小画像でブロックマッチングを行い、縮小画像での動きベクトルの検出を行なう。次に、縮小画像での動きベクトルの検出結果を基に、元の高解像度画像でのブロックマッチングを行う。
図2および図3に、基準フレームおよび参照フレームの画像縮小化のイメージを示す。すなわち、この実施形態においては、例えば図2に示すように、高解像度基準フレーム120は、水平方向および垂直方向のそれぞれを、1/n(nは正の数)に縮小して、低解像度基準フレーム121とする。すなわち、例えば、水平方向および垂直方向のそれぞれの画素数を、1/nに間引くことにより、低解像度の画像情報を生成する。
動きベクトルは、前述と同様に、フレームを複数個に分割したブロック単位に検出する。高解像度基準フレーム120を複数個に分割して生成した高解像度基準ブロック122は、低解像度基準フレームでは、水平方向および垂直方向のそれぞれが1/n×1/nに縮小された低解像度基準ブロック123となる。
そして、基準フレームの画像縮小倍率1/nに合わせて、参照フレームを縮小する。すなわち、図3に示すように、高解像度参照フレーム124は、水平方向および垂直方向のそれぞれを、1/nに縮小して、低解像度参照フレーム125とする。
そして、高解像度参照フレーム124上に設定される高解像度参照ブロック126は、低解像度参照フレーム125では、1/n×1/nに縮小された低解像度参照ブロック127となる。そして、高解像度参照フレーム124上で検出される高解像度動きベクトル128は、低解像度参照フレーム125では、1/n×1/nに縮小された低解像度動きベクトル129として検出される。
図4に、低解像度参照ベクトルと高解像度参照ベクトルの関係を示す。参照フレームに設定されるサーチ範囲は、例えば基準ブロックに対応する位置の参照ブロックの中心位置に等しい動き検出原点131,132を中心に設定される。
図4(B)に示すように、1/n×1/nに画像縮小された低解像度参照フレーム125上に設定された低解像度サーチ範囲134は、高解像度参照フレーム124では、図4(A)に示すサーチ範囲133のように広い範囲となる。
この例の階層化処理においては、低解像度サーチ範囲134内において、低解像度参照フレーム125での動き検出原点132からの位置ズレを表す低解像度参照ベクトル135を設定し、それぞれの低解像度参照ベクトル135が指し示す位置にある低解像度参照ブロック127と、低解像度基準ブロック123(図2参照)との相関性を評価する。
そして、相関性を評価するための評価値が高い低解像度参照ブロック127に対応する低解像度参照ベクトルを、低解像度動きベクトル129(図3参照)として検出する。
この場合、縮小画像において、ブロックマッチングを行うので、低解像度参照フレーム125において相関値を算出すべき低解像度参照ブロック位置の数を少なくすることができる。したがって、相関値の算出回数(マッチング処理回数)が少なくすることができ、その分だけ、消費電力を削減することができる。
図5に示すように、低解像度サーチ範囲134に応じて定まる低解像度マッチング処理範囲143内に設定される複数個の低解像度参照ブロックと低解像度基準ブロックとのブロックマッチングによる相関性評価により、低解像度参照フレーム125における低解像度動きベクトル129が算出される。
検出された低解像度動きベクトル129の精度は、画像が1/n×1/nに縮小されているので、1ピクセルのn倍の低精度となっている。そこで、この算出された低解像度動きベクトル129をn倍しても、高解像度参照フレーム124において、1ピクセル精度の動きベクトルは得られない。
しかし、高解像度参照フレーム124においては、検出された低解像度動きベクトル129をn倍した動きベクトルの近傍に、1ピクセル精度の高解像度動きベクトルが存在することは明らかである。
そこで、この例では、図4(C)および図5に示すように、高解像度参照フレーム124において、低解像度動きベクトル129をn倍した動きベクトルが指し示す位置を中心として、高解像度サーチ範囲140を設定する。そして、低解像度動きベクトル129をn倍した動きベクトルが指し示す位置を高解像度参照フレーム124で検出する高解像度動きベクトルの原点とする。
高解像度サーチ範囲140は、高解像度動きベクトルが存在するであろうと考えられる狭い範囲である。この高解像度サーチ範囲140は、高解像度参照フレーム124で、階層化処理をしない場合に設定されるサーチ範囲133(図4(A)参照)に比較して、非常に狭い範囲とすることができる。そして、設定した高解像度サーチ範囲140に応じて高解像度マッチング処理範囲144が設定される。
そして、この高解像度サーチ範囲140内の位置を示すものとして、高解像度参照フレーム124における高解像度参照ベクトルを、低解像度動きベクトル129をn倍した動きベクトルが指し示す位置を原点として設定する。そして、各高解像度参照ベクトルが指し示す位置に高解像度参照ブロック142を設定して、高解像度基準フレーム120の高解像度基準ブロック122との間で前述した相関度を算出するようにする。
そして、高解像度基準ブロック122と最も相関度が高い高解像度参照ブロック142に対応する高解像度参照ベクトルを、高解像度動きベクトルとして検出する。
そして、高解像度参照フレーム124において検出された高解像度動きベクトルと、低解像度参照フレーム125において検出された低解像度動きベクトルの合成ベクトルとして、高解像度基準ブロックについての目的とするブロック毎動きベクトルを検出する。
すなわち、図6に示すように、この例の階層化処理においては、元画像の縮小画像である低解像度基準フレーム121上に、高解像度基準フレーム120に設定される高解像度基準ブロックに対応する低解像度基準ブロック123を設定する。そして、この低解像度基準ブロック123について、低解像度参照フレーム125との間でのブロックマッチング処理により、低解像度動きベクトル129を求める。
次に、高解像度参照フレーム124において、低解像度動きベクトル129をn倍した動きベクトル151が指し示す位置を原点として、サーチ範囲を定め、当該サーチ範囲内に複数個の高解像度参照ブロックを設定する。そして、設定した複数個の高解像度参照ブロックと、高解像度基準ブロック122との間での相関度を求め、最も相関度が大きい高解像度参照ブロックに対応する高解像度参照ベクトルを、高解像度動きベクトル152として検出する。
そして、低解像度動きベクトル129をn倍した動きベクトル151と、高解像度動きベクトル152との合成ベクトルとして、高解像度基準ブロック122についての目的とするブロック毎動きベクトル153を検出する。
ここで、低解像度動きベクトル129をMV1、高解像度動きベクトル152をMV2とし、目的とするブロック毎動きベクトル153をMVとすると、
MV=nMV1+MV2
として算出される。
図5に示したように、高解像度参照フレーム124で設定された高解像度サーチ範囲140および高解像度マッチング処理範囲144は、低解像度サーチ範囲134および低解像度マッチング処理範囲143を縮小率の逆数倍であるn倍したサーチ範囲134´およびマッチング処理範囲143´に比較して非常に狭い範囲となる。
階層化マッチングを行わずに、高解像度においてのみブロックマッチング処理をした場合には、サーチ範囲137´およびマッチング処理範囲143´において、複数個の参照ブロックを設定して、基準ブロックとの相関値を求める演算をする必要がある。しかし、階層化マッチング処理においては、図5のように、非常に狭い範囲においてのみマッチング処理を行えばよい。
このため、当該狭い範囲である、高解像度サーチ範囲140および高解像度マッチング処理範囲144に設定される高解像度参照ブロックの数は非常に少なくなり、マッチング処理回数(相関値演算回数)を非常に小さくすることができる。したがって、処理量がすくなくなるので、消費電力を削減することができると共に、処理を高速化することもできるという効果を得ることができる。
なお、上記の説明では、基準フレームと参照フレームとの画像縮小倍率は同じとしたが、演算量削減のため、基準フレームと参照フレームとで異なる画像縮小倍率を用い、画素補間等の処理で、両フレームの画素数を合わせて、マッチングを行うようにしてもよい。
また、水平方向および垂直方向のそれぞれの縮小倍率を同一としたが、水平方向と垂直方向とで、縮小倍率を異ならせるようにしても良い。例えば水平方向は1/nに縮小し、垂直方向は、1/m(mは正の数で、n≠m)に縮小する場合には、縮小画面は、元の画面の1/n×1/mの大きさになる。
なお、上述の階層化処理においては、低解像度動きベクトルと高解像度動きベクトルとの合成ベクトルとして目的のブロック毎動きベクトルを算出するようにした。これは、高解像度動きベクトルの原点を、低解像度動きベクトルを画像縮小倍率の逆数倍した動きベクトルが指し示す位置を高解像度参照ベクトルの原点位置としたからである。
高解像度参照ベクトルの原点位置を、高解像度基準ブロックの中心位置のままとした場合には、検出された高解像度動きベクトルは、そのまま目的のブロック毎動きベクトルとすることができる。
以上の説明では、低解像度フレームでのブロックマッチングの結果を用いて、必ず、高解像度フレームのブロックマッチングを行うようにした。
これに対して、この発明の実施形態では、高解像度の層では、高解像度フレームの高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する。そして、動きベクトルを算出しなくてもよいと判定した場合には、当該高解像度基準ブロックについての動きベクトルの算出を省略する。
そして、高解像度の層で、動きベクトルの算出しないとした高解像度基準ブロックの動きベクトルは、当該高解像度基準ブロックに対応する低解像度基準ブロックについて求められた低解像度動きベクトルを画像縮小倍率の逆数倍したもので代用するようにする。
高解像度の層で、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法については、以下に説明するように幾つかの手法がある。以下に説明する複数個の実施形態は、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法が異なるものであって、すべて、上述した階層化処理を可能とする構成を備えることを前提とするものである。
[第1の実施形態]
図1は、この発明による画像処理装置の第1の実施形態の要部の構成例のブロック図である。なお、この第1の実施形態の画像処理装置だけではなく、以下に説明する実施形態の画像装置は、例えば動画の画像信号から動きベクトルを検出する動きベクトル検出装置の構成例である。
この第1の実施形態は、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法が、低解像度層での情報のみを使用する場合の例である。この例の場合、元の画像の縮小画像である低解像画像のみについての情報を用いるため、処理サイクル数や消費電力を、より少なく抑えることができる。
図1に示すように、この例においては、動画の画像信号の各フレームの画像信号が1フレーム遅延された、時間的に1フレーム前の各フレームの画像信号は、基準フレーム信号TGとして高解像度基準フレームバッファ1に取り込まれる。
また、動画の画像信号の現在の各フレームの画像信号が、参照フレーム信号REFとして高解像度参照フレームバッファ2に取り込まれる。
高解像度基準フレームバッファ1および高解像度参照フレームバッファ2は、それぞれ別々のフレームメモリで構成されていてもよいし、複数フレーム分を格納可能な1個の画像メモリの異なるメモリ領域として構成されていてもよい。
高解像度基準フレームバッファ1に取り込まれた高解像度基準フレームの画像信号は、画像縮小部3により、前述したようにして、1/nに縮小されて低解像度基準フレームの画像信号とされた後、低解像度基準フレームバッファ5に格納される。
また、高解像度参照フレームバッファ2に取り込まれた高解像度参照フレームの画像信号は、画像縮小部4により、前述したようにして、1/nに縮小されて低解像度参照フレームの画像信号とされた後、低解像度参照フレームバッファ6に格納される。
これらの低解像度基準フレームバッファ5および低解像度参照フレームバッファ6も、それぞれ別々の縮小画面分のメモリで構成されていてもよいし、複数の縮小画面分を格納可能な1個の画像メモリの異なるメモリ領域として構成されていてもよい。
低解像度基準ブロック決定部7は、低解像度基準フレームに設定される複数個の低解像度基準ブロックの中から、低解像度動きベクトルを検出する低解像度基準ブロックを順次に決定する。そして、低解像度基準ブロック決定部7は、決定した低解像度基準ブロックの画像信号を、低解像度基準フレームバッファ5から読み出して、低解像度動きベクトル計算部9に供給する。
低解像度基準ブロック決定部7は、また、決定した低解像度基準ブロックの位置情報を、低解像度参照ブロック決定部8に通知する。
低解像度参照ブロック決定部8は、低解像度基準ブロック決定部7から受けた低解像度基準ブロックの位置情報に基づき、低解像度参照フレームにおけるサーチ範囲(マッチング処理範囲)を決定する。そして、低解像度参照ブロック決定部8は、決定したサーチ範囲の複数個の低解像度参照ブロックを、順次に、低解像度参照フレームバッファ6から読み出し、低解像度動きベクトル計算部9に供給する。
低解像度動きベクトル計算部9は、低解像度基準ブロックと、サーチ範囲内の複数個の低解像度参照ブロックのそれぞれとの間の相関度を計算する。
この例においては、相関度を示す尺度となる相関値として、例えば、低解像度基準ブロック内の各画素の輝度値と、低解像度参照ブロック内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和(図7の式(1)参照)が用いられる。この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をSAD(Sum of Absolute Difference)値と記載することとする。相関値としてSAD値が用いられる場合には、SAD値が小さいほど相関が強い(相関度が高い)ものとされる。
低解像度動きベクトル計算部9は、相関度の最も高い低解像度ブロックに対応する低解像度参照ベクトルを、低解像度基準ブロックに対する低解像度動きベクトルとして検出する。
そして、低解像度動きベクトル計算部9は、低解像度基準ブロックの低解像度基準フレームにおける位置情報と、当該低解像度基準ブロックについて検出した低解像度動きベクトルとを、低解像度動きベクトル用バッファ10に格納する。
低解像度動きベクトル用バッファ10には、低解像度基準フレームにおける全ての低解像度基準ブロックについての位置情報と、当該低解像度基準ブロックについて検出された低解像度動きベクトルとが格納される。
低解像度基準ブロック決定部7、低解像度参照ブロック決定部8および低解像度動きベクトル計算部9での処理の流れを、図8に示す。この図8は、1枚の低解像度基準フレームの全ての低解像度基準ブロックについての処理の流れを示すものである。
そして、この図8の処理の流れは、低解像度基準ブロック決定部7、低解像度参照ブロック決定部8および低解像度動きベクトル計算部9が、例えばマイクロコンピュータによるソフトウエア処理とされた場合の処理の流れに等しい。
なお、図8においては、基準ブロックおよび参照ブロック等について、低解像度の層であることを明記していないが、これは、高解像度の層においても、同様にして動きベクトルの算出がなされることを考慮したものである。
先ず、低解像度基準フレームにおいて、低解像度動きベクトルを求めようとする低解像度基準ブロックを決定する(ステップS101)。次に、決定した低解像度基準ブロックに対応するサーチ範囲を決定し、当該サーチ範囲の一つの低解像度参照ブロックを決定する(ステップS102)。
次に、ステップS102で決定した低解像度参照ブロックと、ステップS101で決定した低解像度基準ブロックとの間の相関値を求める(ステップS103)。この例では、前述したように、相関値としてSAD値を求める。
次に、求めた相関値(SAD値)と低解像度参照ブロックの低解像度参照フレームにおける位置とを対応付けて保存する(ステップS104)。
次に、サーチ範囲内の全ての低解像度参照ブロックについての相関値の計算が終了したか否か判別する(ステップS105)。
このステップS105で、全ての低解像度参照ブロックについては終了していないと判別したときには、ステップS102に戻り、サーチ範囲内において、相関値の計算が終了していない他の一つの低解像度参照ブロックを決定する。そして、ステップS102以降の処理を繰り返す。
ステップS105で、サーチ範囲内の全ての低解像度参照ブロックについての相関値の計算が終了したと判別したときには、当該サーチ範囲内の低解像度参照ブロックに中から、相関度が最も強い低解像度参照ブロックを検出する(ステップS106)。相関値がSAD値である場合には、SAD値が最小である低解像度参照ブロックを検出する。
ステップS106で、相関度が最も強い低解像度参照ブロックを検出したら、その検出した低解像度参照ブロックに対応する参照ベクトルを、低解像度動きベクトルとして検出し、低解像度動きベクトル用バッファ10に書き込む(ステップS107)。
次に、低解像度基準フレーム内の全ての低解像度基準ブロックについての低解像度動きベクトルの検出が終了したか否か判別する(ステップS108)。
そして、ステップS108で、低解像度基準フレーム内の全ての低解像度基準ブロックについての低解像度動きベクトルの検出は終了していないと判別したときには、ステップS101に戻る。そして、低解像度基準フレーム内の低解像動きベクトルを検出していない他の一つの低解像度基準ブロックを決定し、このステップS101以降の処理を繰り返す。
また、ステップS108で、低解像度基準フレーム内の全ての低解像度基準ブロックについての低解像度動きベクトルの検出は終了したと判別したときには、この処理ルーチンを終了する。
図1の高解像度の層についての構成について説明する。
高解像度基準ブロック決定部11は、高解像度基準フレームに設定される複数個の高解像度基準ブロックの中から、高解像度動きベクトルを検出する高解像度基準ブロックを順次に決定する。そして、高解像度基準ブロック決定部11は、決定した高解像度基準ブロックの画像信号を、高解像度基準フレームバッファ1から読み出して、高解像度動きベクトル計算部13に供給する。
高解像度基準ブロック決定部11は、また、決定した高解像度基準ブロックの位置情報を、高解像度参照ブロック決定部12に通知する。
高解像度参照ブロック決定部12は、高解像度基準ブロック決定部11から受けた高解像度基準ブロックの位置情報に基づき、対応する低解像度基準ブロックについての低解像度動きベクトルを、低解像度動きベクトル用バッファ10から取得する。
そして、高解像度参照ブロック決定部12は、高解像度基準ブロック決定部11から受けた高解像度基準ブロックの位置情報と、低解像度動きベクトル用バッファ10から取得した低解像度動きベクトルとに基づき、高解像度参照フレームにおけるサーチ範囲(マッチング処理範囲)を決定する。
そして、高解像度参照ブロック決定部12は、決定したサーチ範囲の複数個の高解像度参照ブロックを、順次に、高解像度参照フレームバッファ2から読み出し、高解像度動きベクトル計算部13に供給する。
高解像度動きベクトル計算部13は、低解像度基準ブロックと、サーチ範囲内の複数個の低解像度参照ブロックのそれぞれとの間の相関度を、図8に示した処理の流れと同様にして計算する。
ただし、この高解像度の層においては、ステップS102の参照ブロックの決定時のサーチ範囲の決定については、前述したように、低解像度動きベクトルをも用いる点が、低解像度の層の場合と異なる。
そして、この例では、この高解像度動きベクトル計算部13は、さらに、求めた高解像度動きベクトルと、低解像度動きベクトル用バッファ10からの対応する低解像度動きベクトルとを合成して、階層化処理後の動きベクトルを得る計算も行う。
従来の階層化処理であれば、この高解像度動きベクトル計算部13で得られた動きベクトルを、最終的な動きベクトルとして出力する。この場合に、図8のステップS107においては、検出した動きベクトルは、バッファに格納するようにしたが、この高解像度層では、バッファに格納することなく、動きベクトルを出力するようにする。
この発明の実施形態の画像処理装置における階層化処理においては、前述したように、高解像層では、設定された高解像度基準ブロック毎に、上述の動きベクトルを求める計算を実行するか否かを判定するようにする。そして、高解像度層での計算を実行すると判定したときには、高解像度動きベクトル計算部13で求められた動きベクトルを出力する。また、高解像度層での計算を実行しないと判定したときには、高解像度基準ブロックに対応する位置の低解像度基準ブロックについて求められた低解像度動きベクトルを、縮小倍率の逆数倍したものを、代替の動きベクトルとして出力する。
このため、この発明の実施形態の画像処理装置においては、高解像度層計算判定部14と、スケーリング部15と、動きベクトル切替部16とを設ける。
スケーリング部15は、低解像度動きベクトル用バッファ10からの低解像度動きベクトルを、縮小倍率の逆数倍して、動きベクトル切替部16に供給する。
動きベクトル切替部16は、高解像度動きベクトル計算部13からの動きベクトルと、スケーリング部15からの動きベクトルとの2つの動きベクトルを入力として受け、そのいずれかを選択して出力するようにする。
高解像度層計算判定部14には、高解像度基準ブロック決定部11から、決定された高解像度基準ブロックの位置情報が送られる。高解像度層計算判定部14は、受け取った位置情報から、決定された高解像度基準ブロックを認識し、当該高解像度基準ブロックについて、後述するようにして、上述の高解像層での動きベクトルを求める計算を実行するか否かを判定する。
高解像度層計算判定部14は、高解像度動きベクトル計算部13および高解像度参照ブロック決定部12に対して、計算および処理を実行させるか否かの制御信号CTLを供給する。また、この例では、高解像度層計算判定部14は、動きベクトル切替部16に対して、2つの動きベクトルのいずれを選択して出力するかの切替制御信号SWを供給する。
高解像度層計算判定部14は、高解像度層での計算を実行すると判定したときには、高解像度動きベクトル計算部13および高解像度参照ブロック決定部12に対して、制御信号CTLにより、計算および処理を実行するように制御指示する。また、高解像度層計算判定部14は、高解像度層での計算を実行すると判定したときには、動きベクトル切替部16に対して、切替制御信号SWにより、高解像度動きベクトル計算部13からの動きベクトルを選択して出力するように制御指示する。
また、高解像度層計算判定部14は、高解像度層での計算を実行しないと判定したときには、高解像度動きベクトル計算部13および高解像度参照ブロック決定部12に対して、制御信号CTLにより、計算および処理を実行しないように制御指示する。
また、高解像度層計算判定部14は、高解像度層での計算を実行しないと判定したときには、低解像度動きベクトルバッファ10に、高解像度基準ブロックの位置に対応する低解像度動きベクトルの読み出し指示を送る。すると、低解像度動きベクトルバッファ10は、指示された低解像度動きベクトルをスケーリング部15に供給する。スケーリング部15は、受け取った低解像度動きベクトルを縮小倍率の逆数倍して、動きベクトル切替部16に供給する。
そして、高解像度層計算判定部14は、高解像度層での計算を実行しないと判定したときには、動きベクトル切替部16に対して、切替制御信号SWにより、スケーリング部15からの動きベクトルを選択して出力するように制御指示する。したがって、高解像度層計算判定部14で、高解像度層での計算を実行しないと判定されたときには、動きベクトル切替部16から、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルが出力される。
<第1の実施形態における高解像度層計算判定部14における判定>
そして、この第1の実施形態においては、高解像度層計算判定部14における判定は、次のようにして行う。
高解像度層計算判定部14は、低解像度動きベクトルバッファ10から、高解像度基準ブロック決定部11で決定した高解像度基準ブロックに対応する低解像度基準ブロックについての低解像度動きベクトルを取得する。すなわち、高解像度層計算判定部14は、低解像度動きベクトルバッファ10に、高解像度基準ブロックに対応する低解像度基準ブロックについての低解像度動きベクトルの読み出し指示を送って、当該低解像度動きベクトルを取得する。
そして、この第1の実施形態においては、高解像度層計算判定部14は、取得した低解像度動きベクトルの大きさが、予め定めた閾値より大であるか否か判別し、その判別結果に応じて、高解像度層での動きベクトルの計算を実行させるかどうかを決定する。
ここで、高解像度層計算判定部14は、動きベクトル(x,y)の大きさ|V(x,y)|を、図7の(2)式に示すユークリッド距離や図7の(3)式に示すマンハッタン距離を用いて計算する。
高解像度層計算判定部14は、低解像度動きベクトルの大きさが、予め定めた閾値以上であると判別したときには、高解像度層での動きベクトルの計算を実行すると判定し、その判定結果に応じた前述の制御信号CTLおよび切替制御信号SWを出力する。また、高解像度層計算判定部14は、低解像度動きベクトルの大きさが、予め定めた閾値より小であると判別したときには、高解像度層での動きベクトルの計算を実行しないと判定し、その判定結果に応じた前述の制御信号CTLおよび切替制御信号SWを出力する。
このような判定をするのは、低解像度動きベクトルの大きさが閾値よりも小さいときには、2画面間での動きが小さく、高解像度動きベクトルを用いて得られる最終的な動きベクトルと、低解像度動きベクトルとの差が僅かであろうと考えられるからである。
したがって、前記閾値は、高解像度動きベクトルを用いて得られる最終的な動きベクトルと、低解像度動きベクトルとの差として、どの程度まで許容するかに応じて定められる。
この第1の実施形態における高解像度層での処理の流れを、図9のフローチャートを参照して説明する。
このフローチャートの処理は、高解像度基準ブロック決定部11、高解像度参照ブロック決定部12、高解像度動きベクトル計算部13および高解像度層計算判定部14の部分が、マイクロコンピュータにより構成された場合のソフトウエア処理に対応する。後述する他の実施形態についても同様である。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS111)。
次に、決定した高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトル(低解像度動きベクトル)を、低解像度動きベクトルバッファ10から取得する(ステップS112)。
取得した低解像度動きベクトルの大きさを計算し、当該低解像度動きベクトルの大きさが、閾値以上であるか否か判別する(ステップS113)。
ステップS113で、低解像度動きベクトルの大きさが、閾値以上であると判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS114)。このステップS114での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS113で、低解像度動きベクトルの大きさが、閾値よりも小さいと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS115)。
ステップS114およびステップS115の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS116)。ステップS116で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS111に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS111以降の処理を繰り返す。また、ステップS116で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
[第2の実施形態]
図10は、この第2の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図10において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
この第2の実施形態を含め、以下に説明する他の幾つかの実施形態は、高解像度層計算判定部14の入力情報と、その入力情報を用いた処理内容が異なるだけで、その他の部分の構成および処理内容は、上述した第1の実施形態と全く同様である。
この第2の実施形態も、第1の実施形態と同様に、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法が、低解像度層での情報のみを使用する場合の例である。
この第2の実施形態の高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトル(低解像度動きベクトル)に対応する相関値と、予め定めた閾値とを比較する。そして、高解像度層計算判定部14は、その比較結果から高解像度層での動きベクトル計算を実行するかどうかを判定する。
低解像度基準ブロックの低解像度動きベクトルに対応する相関値は、当該低解像度動きベクトルに対応する低解像度参照ブロックと、低解像度基準ブロックとの相関度の強さを示すものである。低解像度層で求めた低解像度動きベクトルが、相関度が相当以上に強いものであるときには、当該低解像度動きベクトルが信頼に足るものであるので、高解像度層での動きベクトルを検出する必要がないと考えられる。また、高解像度動きベクトルを用いて得られる最終的な動きベクトルと、低解像度動きベクトルとの差が僅かであろうと考えられる。
そこで、第2の実施形態では、高解像度層計算判定部14では、高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトルに対応する相関値と閾値とを比較して、前記相関度が相当以上強いか否かを判定する。
そして、高解像度層計算判定部14は、相関値と閾値との比較から、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行すると判定し、その判定結果に応じた前述の制御信号CTLおよび切替制御信号SWを出力する。また、高解像度層計算判定部14は、相関値と閾値との比較から、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しないと判定し、その判定結果に応じた前述の制御信号CTLおよび切替制御信号SWを出力する。
したがって、この第2の実施形態における前記閾値は、高解像度層での動きベクトルの計算をしないとする、低解像度層における低解像度基準ベクトルと動きベクトルが検出された低解像度参照ベクトルとの相関度の強さに応じて決定する。
この第2の実施形態においては、低解像度動きベクトル用バッファには、低解像度基準ブロックの位置情報および低解像度動きベクトルに加えて、低解像度動きベクトルに対応する相関値が記憶されている。
この相関値は、低解像度動きベクトル計算部9で、低解像度基準ブロックと、サーチ範囲内の複数の低解像度参照ブロックのそれぞれとの間で計算された相関値のうちの最も相関度の強い値である。前述したSAD値を用いる場合には、サーチ範囲内の複数の低解像度参照ブロックのそれぞれについて計算されたSAD値のうちの最小値である。
第2の実施形態における高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトル(低解像度動きベクトル)に対応する相関値を、低解像度動きベクトル用バッファ10から取得するようにする。
したがって、図10に示したこの第2の実施形態のハードウエア構成は、図1に示した第1の実施形態のブロック図と同様となっている。ただし、低解像度動きベクトル用バッファ10から取得する情報が、第1の実施形態では、低解像度動きベクトルの情報であったのに対して、この第2の実施形態では、低解像度動きベクトルに対応する相関値である点が異なる。
この第2の実施形態における高解像度層での処理の流れを、図11のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS201)。
次に、決定した高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトル(低解像度動きベクトル)に対応する相関値を、低解像度動きベクトルバッファ10から取得する(ステップS202)。
取得した相関値と閾値とを比較して、低解像度動きベクトルに対応する低解像度参照ブロックと、低解像度基準ブロックとの相関度が高いか、低いかを判別する(ステップS203)。相関値としてSAD値を用いる場合には、相関値が閾値以下である場合には、相関度が高く、相関値が閾値よりも大きいときには、相関度が低いと判別する。
ステップS203で、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS204)。このステップS204での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS203で、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS205)。
ステップS204およびステップS205の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS206)。ステップS206で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS201に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS201以降の処理を繰り返す。また、ステップS206で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
なお、上述の説明では、この第2の実施形態においては、低解像度動きベクトルバッファ10に低解像度動きベクトルに対応する相関値を記憶しておくようにした。しかし、相関値を記憶せずに、高解像度基準ブロックに対応する位置の低解像度基準ブロックについて、再度、低解像度参照ブロックとの相関演算を行って、低解像度動きベクトルに対応する相関値を算出し、高解像度計算判定部14に供給するようにしてもよい。
[第3の実施形態]
図12は、第3の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図12において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
この第3の実施形態も、第1の実施形態および第2の実施形態と同様に、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法が、低解像度層での情報のみを使用する場合の例である。
この第3の実施形態の高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックの画像情報からエッジ量を算出し、当該エッジ量に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
高解像度基準ブロックに対応する低解像度基準ブロックの画像情報中のエッジ量が多い場合には、複雑な画像内容であるので、動きベクトルの検出誤差の影響を受け易いと考えられる。また、高解像度基準ブロックに対応する低解像度基準ブロックの画像情報中のエッジ量が少ない場合には、平坦な画像であって、動きベクトルの検出誤差の影響を受け難いと考えられる。
このような考えから、この第3の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックに対応する低解像度基準ブロックの画像情報中のエッジ量が多い場合には、高解像度層での動きベクトル計算を実行すると判定する。
また、高解像度層計算判定部14は、高解像度基準ブロックに対応する低解像度基準ブロックの画像情報中のエッジ量が少ない場合には、高解像度層での動きベクトル計算を実行せずに、低解像度動きベクトルを代用すると判定する。
以上のことから、この第3の実施形態の図12のハードウエア構成例においては、高解像度層計算判定部14は、低解像度動きベクトルバッファ10からの情報は受けない。高解像度層計算判定部14は、その代わりに、低解像度基準ブロック決定部7に要求して、高解像度基準ブロック決定部11で決定された高解像度基準ブロックに対応する低解像度基準ブロックの画像情報を受ける。
その他は、上述の第1の実施形態の場合と同様である。
この第3の実施形態における高解像度層計算判定部14は、例えば、ラプラシアンフィルタなどを使用して低解像度基準ブロック内の各画素のエッジ量を求め、全エッジ量の総和を計算することで、エッジ量を求めるようにする。
なお、ラプラシアンフィルタは、ある画素(x,y)の近傍画素(x−i,y−j)の輝度値I(x−i,y−j)を、係数で重み付けした値を累積(コンボリューション)することで計算できる(図7の(4)式参照)。ラプラシアンフィルタのコンボリューション係数行列αは、行列の中心を処理画素の座標として、例えば図7の(5)式に示すような係数を用いる。
この第3の実施形態における高解像度層での処理の流れを、図13のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS301)。
次に、決定した高解像度基準ブロックに対応する位置の低解像度基準ブロックの画像情報を取得し、当該低解像度基準ブロック内の画像情報のエッジ量を計算する(ステップS302)。
計算により求めたエッジ量と、予め定められた閾値とを比較して、エッジ量が閾値以上であるか否かを判別する(ステップS303)。
ステップS303で、エッジ量が閾値以上であると判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS304)。このステップS304での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS303で、エッジ量が閾値よりも少ないと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS305)。
ステップS304およびステップS305の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS306)。ステップS306で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS301に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS301以降の処理を繰り返す。また、ステップS306で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
[第4の実施形態]
図14は、第4の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図14において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
この第4の実施形態も、第1の実施形態、第2の実施形態および第3の実施形態と同様に、高解像度基準ブロック毎に、動きベクトルを算出するかしないかを判定する手法が、低解像度層での情報のみを使用する場合の例である。
この第4の実施形態の高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が高いときには、2画面間での動きが小さく、高解像度動きベクトルを用いて得られる最終的な動きベクトルと、低解像度動きベクトルとの差が僅かであろうと考えられる。一方、低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が低いときには、2画面間での動きが大きく、高解像度動きベクトルを用いて最終的な動きベクトルを得る方がよいと考えられる。
このような考えから、この第4の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が低い場合には、高解像度層での動きベクトル計算を実行すると判定する。
また、高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が高い場合には、高解像度層での動きベクトル計算を実行せずに、低解像度動きベクトルを代用すると判定する。
高解像度基準ブロックに対応する位置の低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が高いか否かは、低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関値と閾値とを比較して、その比較結果により判定する。
この第4の実施形態の図14のハードウエア構成例においては、高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックおよび低解像度参照ブロックを、低解像度基準ブロック決定部7および低解像度参照ブロック決定部8から得るようにする。すなわち、高解像度層計算判定部14は、高解像度基準ブロック決定部11から高解像度基準ブロックの位置情報を得ている。高解像度層計算判定部14は、この位置情報に基づき、対応する位置の低解像度基準ブロックおよび低解像度参照ブロックを、低解像度基準ブロック決定部7および低解像度参照ブロック決定部8に要求して取得するようにする。
そして、高解像度層計算判定部14は、取得した低解像度基準ブロックと低解像度参照ブロックとの相関値を、例えばSAD値として求める。そして、高解像度層計算判定部14は、この求めたSAD値と、予め定められている閾値とを比較し、SAD値が閾値以下のときには、相関度が高いと判定し、SAD値が閾値よりも大きいときには、相関度が低いと判定する。
その他は、上述の第1の実施形態の場合と同様である。
なお、低解像度動きベクトル計算部9においては、低解像度基準フレームおよび低解像度参照フレームで同じ位置の低解像度基準ブロックと低解像度参照ブロックとの相関値を求める場合もある。そこで、低解像度動きベクトル計算部9に保持用バッファを設けて、同じ位置の低解像度基準ブロックと低解像度参照ブロックとの相関値を保持するようにする。そして、高解像度層計算判定部14からの位置情報を伴う要求に応じて、低解像度動きベクトル計算部9が、対応位置の相関値を高解像度層計算判定部14に提供するように構成することもできる。
ただし、動きベクトルの大きさが大きいときには、同じ位置の低解像度基準ブロックと低解像度参照ブロックとの相関値は計算されないので、低解像度動きベクトル計算部9の保持用バッファに、対応する相関値が存在しない場合がある。そこで、その場合には、高解像度層計算判定部14は、上述のようにして、同じ位置の低解像度基準ブロックと低解像度参照ブロックとを取得して、両ブロックの相関値を演算する必要がある。
この第4の実施形態における高解像度層での処理の流れを、図15のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS401)。
次に、決定した高解像度基準ブロックに対応する位置の低解像度基準ブロックの画像情報と、同じ位置の低解像度参照ブロックの画像情報とを取得して、当該低解像度基準ブロックと低解像度参照ブロックとの相関値を計算する(ステップS402)。
求めた相関値と閾値とを比較して、低解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が高いか、低いかを判別する(ステップS403)。相関値としてSAD値を用いる場合には、相関値が閾値以下である場合には、相関度が高く、相関値が閾値よりも大きいときには、相関度が低いと判別する。
ステップS403で、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS404)。このステップS404での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS403で、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS405)。
ステップS404およびステップS405の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS406)。ステップS406で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS401に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS401以降の処理を繰り返す。また、ステップS406で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
次に、高解像度層での動きベクトルの計算をするかしないかの判定を、高解像度層における情報を用いる場合の実施形態について説明する。この場合、高解像度層における情報を用いるので、高解像度層での動きベクトルの計算をするかしないかの判定を、精度良く行うことができる。
[第5の実施形態]
図16は、第5の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図16において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
第5の実施形態は、前述の第3の実施形態の考え方を、高解像度層の情報を用いる場合に適用したものである。
この第5の実施形態の高解像度層計算判定部14は、高解像度基準ブロック内の画像情報についてエッジ量を算出し、当該エッジ量に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
すなわち、この第5の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックの画像情報中のエッジ量が多い場合には、高解像度層での動きベクトル計算を実行すると判定する。
また、高解像度層計算判定部14は、高解像度基準ブロックの画像情報中のエッジ量が少ない場合には、高解像度層での動きベクトル計算を実行せずに、低解像度動きベクトルを代用すると判定する。
この第5の実施形態の図16のハードウエア構成例においては、高解像度層計算判定部14は、高解像度基準ブロック決定部11からの高解像度基準ブロックの画像情報を受ける。
その他は、上述の第1の実施形態の場合と同様である。
この第5の実施形態における高解像度層計算判定部14は、前述した第3の実施形態と同様にして、例えば、ラプラシアンフィルタなどを使用して高解像度基準ブロック内の各画素のエッジ量を求め、全エッジ量の総和を計算することで、エッジ量を求める。
この第5の実施形態における高解像度層での処理の流れを、図17のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS501)。
次に、決定した高解像度基準ブロックの画像情報を取得し、当該高解像度基準ブロック内の画像情報のエッジ量を計算する(ステップS502)。
計算により求めたエッジ量と、予め定められた閾値とを比較して、エッジ量が閾値以上であるか否かを判別する(ステップS503)。
ステップS503で、エッジ量が閾値以上であると判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS504)。このステップS504での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS503で、エッジ量が閾値よりも少ないと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS505)。
ステップS504およびステップS505の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS506)。ステップS506で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS501に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS501以降の処理を繰り返す。また、ステップS506で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
[第6の実施形態]
図18は、第5の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図18において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
第6の実施形態は、前述の第4の実施形態の考え方を、高解像度層の情報を用いる場合に適用したものである。
この第6の実施形態の高解像度層計算判定部14は、高解像度基準ブロックと、同じ位置の高解像度参照ブロックとの相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関度が高いときには、2画面間での動きが小さく、階層処理をして最終的に得られる動きベクトルと、低解像度動きベクトルとの差が僅かであろうと考えられる。
一方、高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関度が低いときには、2画面間での動きが大きく、階層処理をして、高解像度動きベクトルを検出し、最終的な動きベクトルを得る方がよいと考えられる。
このような考えから、この第6の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックと同じ位置の低解像度参照ブロックとの相関度が低い場合には、高解像度層での動きベクトル計算を実行すると判定する。
また、高解像度層計算判定部14は、高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関度が高い場合には、高解像度層での動きベクトル計算を実行せずに、低解像度動きベクトルを代用すると判定する。
高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関度が高いか否かは、高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関値と閾値とを比較して、その比較結果により判定する。
この第6の実施形態の図18のハードウエア構成例においては、高解像度層計算判定部14は、高解像度基準ブロック決定部11の出力として高解像度基準ブロックの画像情報を得るようにする。また、高解像度層計算判定部14は、高解像度基準ブロック決定部11から高解像度基準ブロックの位置情報に基づいて、高解像度参照フレームバッファ2にアクセスして、同位置の高解像度参照ブロックの画像情報を取得するようにする。
そして、高解像度層計算判定部14は、取得した高解像度基準ブロックと高解像度参照ブロックとの相関値を、取得した画像情報を用いて、例えばSAD値として求める。そして、高解像度層計算判定部14は、この求めたSAD値と、予め定められている閾値とを比較し、SAD値が閾値以下のときには、相関度が高いと判定し、SAD値が閾値よりも大きいときには、相関度が低いと判定する。
その他は、上述の第1の実施形態の場合と同様である。
この第6の実施形態における高解像度層での処理の流れを、図19のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS601)。
次に、決定した高解像度基準ブロックの画像情報と同じ位置の低解像度参照ブロックの画像情報とを取得して、当該低解像度基準ブロックと低解像度参照ブロックとの相関値を計算する(ステップS602)。
求めた相関値と閾値とを比較して、高解像度基準ブロックと同じ位置の高解像度参照ブロックとの相関度が高いか、低いかを判別する(ステップS603)。相関値としてSAD値を用いる場合には、相関値が閾値以下である場合には、相関度が高く、相関値が閾値よりも大きいときには、相関度が低いと判別する。
ステップS603で、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS604)。このステップS604での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS603で、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS605)。
ステップS604およびステップS605の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS606)。ステップS606で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS601に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS601以降の処理を繰り返す。また、ステップS606で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
次に、高解像度層での動きベクトルの計算をするかしないかの判定を、低解像度層と高解像度層との両方における情報を用いる場合の実施形態について説明する。
[第7の実施形態]
図20は、第7の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図20において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
この第7の実施形態の高解像度層計算判定部14は、高解像度基準ブロックと、当該高解像度基準ブロックに対応する位置の低解像度基準ブロックとの相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
高解像度基準ブロックと、同位置の低解像度基準ブロックとの相関度が高い場合には、元の画像と、それを縮小した画像とが相関度が高いことを意味し、それは、ブロックの画像内容が比較的平坦で変化が少ないことを意味していると考えられる。そのような場合には、階層処理をして最終的に得られる動きベクトルと、低解像度動きベクトルとの差が僅かであろうと考えられる。
このような考えから、この第7の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックと、高解像度基準ブロックに対応する位置の低解像度基準ブロックとの相関度が低い場合には、高解像度層での動きベクトル計算を実行すると判定する。
また、高解像度層計算判定部14は、高解像度基準ブロックと、高解像度基準ブロックに対応する位置の低解像度基準ブロックとの相関度が高い場合には、高解像度層での動きベクトル計算を実行せずに、低解像度動きベクトルを代用すると判定する。
高解像度基準ブロックと、この高解像度基準ブロックに対応する位置の低解像度参照ブロックとの相関度が高いか否かは、両ブロックの相関値と閾値とを比較して、その比較結果により判定する。
この第7の実施形態の図20のハードウエア構成例においては、高解像度層計算判定部14は、高解像度基準ブロック決定部11の出力として高解像度基準ブロックの画像情報を得るようにする。また、高解像度層計算判定部14は、高解像度基準ブロックに対応する位置の低解像度基準ブロックの画像情報を、低解像度基準ブロック決定部7から得るようにする。すなわち、高解像度層計算判定部14は、高解像度基準ブロック決定部11から取得した高解像度基準ブロックの位置情報に基づき、対応する位置の低解像度基準ブロックを、低解像度基準ブロック決定部7に要求して取得するようにする。
そして、高解像度層計算判定部14は、取得した高解像度基準ブロックと低解像度基準ブロックとの相関値を、例えばSAD値として求める。そして、高解像度層計算判定部14は、この求めたSAD値と、予め定められている閾値とを比較し、SAD値が閾値以下のときには、相関度が高いと判定し、SAD値が閾値よりも大きいときには、相関度が低いと判定する。
その他は、上述の第1の実施形態の場合と同様である。
この第7の実施形態における高解像度層での処理の流れを、図21のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS701)。
次に、決定した高解像度基準ブロックの画像情報と、当該高解像度基準ブロックに対応する位置の低解像度基準ブロックの画像情報とを取得して、当該高解像度基準ブロックと低解像度基準ブロックとの相関値を計算する(ステップS702)。
求めた相関値と閾値とを比較して、高解像度基準ブロックと、対応する同位置の低解像度基準ブロックとの相関度が高いか、低いかを判別する(ステップS703)。相関値としてSAD値を用いる場合には、相関値が閾値以下である場合には、相関度が高く、相関値が閾値よりも大きいときには、相関度が低いと判別する。
ステップS703で、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS704)。このステップS704での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS703で、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS705)。
ステップS704およびステップS705の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS706)。ステップS706で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS701に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS701以降の処理を繰り返す。また、ステップS706で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
[第7の実施形態の変形例]
上述の第7の実施形態では、高解像度基準ブロックと、当該高解像度基準ブロックに対応する位置の低解像度基準ブロックとの相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定した。これに対して、前述の第4の実施形態の考え方を、低解像度層および高解像度層の両方の情報を用いる場合に適用した場合には、高解像度基準ブロックと、当該高解像度基準ブロックに対応する位置の低解像度参照ブロックとの相関度を求めるようにしても良い。
すなわち、高解像度基準ブロックと、当該高解像度基準ブロックに対応する位置の低解像度参照ブロックとの相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定するようにしても良い。
[第8の実施形態]
図22は、第8の実施形態の場合の画像処理装置の要部の構成例のブロック図である。図22において、図1に示した第1の実施形態の画像処理装置と同一部分には、同一参照符号を付してある。
前述したように、高解像度参照ブロック決定部12は、低解像度動きベクトル用バッファ10から、高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトルを取得する。そして、当該低解像度動きベクトルを縮小倍率の逆数倍した動きベクトルで指し示される位置を特定し、当該位置を中心にして、高解像度参照フレームにおけるサーチ範囲を設定する。
この第8の実施形態では、高解像度層計算判定部14は、高解像度参照ブロック決定部12に要求して、低解像度基準ブロックの動きベクトルで指し示される位置を中心位置とする高解像度参照ブロックの位置の情報を取得する。この位置の高解像度参照ブロックを、以下、判定用高解像度参照ブロックと呼ぶ。
そして、高解像度層計算判定部14は、この取得した位置情報を用いて、高解像度参照フレームバッファ2から、判定用高解像度参照ブロックの画像情報を取得する。また、高解像度層計算判定部14は、高解像度基準ブロック決定部11からの高解像度基準ブロックの画像情報を取得する。
そして、この第8の実施形態においては、高解像度層計算判定部14は、高解像度基準ブロックと、判定用高解像度参照ブロックとの相関度を求め、この相関度に基づいて、高解像度層での動きベクトル計算を実行するかどうかを判定する。
すなわち、この第8の実施形態では、判定用高解像度参照ブロックと、高解像度基準ブロックとの相関度が高ければ、高解像度層での計算は不要と判定する。また、判定用高解像度参照ブロックと、高解像度基準ブロックとの相関度が低ければ、高解像度層での計算を実行すると判定する。
この第8の実施形態においても、高解像度基準ブロックと、判定用高解像度参照ブロックとの相関度が高いか否かは、高解像度基準ブロックと、判定用高解像度参照ブロックとの相関値を求め、求めた相関値と閾値とを比較して、その比較結果により判別する。そして、この例においても、相関値はSAD値を用いる。
その他は、上述の第1の実施形態の場合と同様である。
なお、この第8の実施形態では、高解像度層での計算を実行しないときでも、高解像度参照ブロック決定部12では、判定用高解像度参照ブロックを決定する処理は実行することになる。もっとも、判定用高解像度参照ブロックを決定する処理を、高解像度層計算判定部14で行う場合には、高解像度参照ブロック決定部12は、上述の実施形態と同様に、高解像度層での計算を実行しないときには動作停止とすることができる。
この第8の実施形態における高解像度層での処理の流れを、図23のフローチャートを参照して説明する。
先ず、高解像度基準フレームにおいて、高解像度動きベクトルを求めようとする高解像度基準ブロックを決定する(ステップS801)。
次に、低解像度動きベクトル用バッファ10から、決定した高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトルをロード(取得)する(ステップS802)。
次に、取得した高解像度基準ブロックに対応する位置の低解像度基準ブロックの動きベクトルを、縮小倍率の逆数倍して、高解像度画像のサイズに応じた大きさにスケーリングする(ステップS803)。
次に、高解像度参照フレームにおいて、スケーリングされた動きベクトルが指し示す高解像度参照ブロック、すなわち、判定用高解像度参照ブロックを決定する(ステップS804)。
そして、ステップS801で取得した高解像度基準ブロックの画像情報と、ステップS804で取得した判定用高解像度参照ブロックの画像情報とを用いて、当該高解像度基準ブロックと判定用高解像度参照ブロックとの相関値を計算する(ステップS805)。
求めた相関値と閾値とを比較して、高解像度基準ブロックと、判定用高解像度参照ブロックとの相関度が高いか、低いかを判別する(ステップS806)。相関値としてSAD値を用いる場合には、相関値が閾値以下である場合には、相関度が高く、相関値が閾値よりも大きいときには、相関度が低いと判別する。
ステップS806で、相関度が低いと判別したときには、高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS807)。このステップS807での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS806で、相関度が高いと判別したときには、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS808)。
ステップS807およびステップS808の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS809)。ステップS809で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS801に戻り、未処理の次の高解像度基準ブロックを設定して、このステップS801以降の処理を繰り返す。また、ステップS809で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
[その他の実施形態および変形例]
以上の実施形態では、高解像度層の計算を行わないと判定したときには、低解像度層で求めた低解像度動きベクトルを、そのまま、縮小倍率の逆数倍して出力するようにした。
しかし、前述したブロックマッチング手法では、ピクセル(画素)単位でブロックマッチングを行っているため、動きベクトルはピクセル精度でしか算出されない。このため、低解像度層で求められた低解像度動きベクトルは、低解像度画像のピクセル単位の精度しか得られない。
これに対して、次のようにして、サブピクセル精度の高精度の低解像度動きベクトルを算出することができる。このサブピクセル精度の高精度動きベクトルの算出手法について説明する。
前述した低解像度動きベクトル計算部9では、低解像度参照ブロックをサーチ範囲内において、ピクセル単位で移動させ、ブロックマッチングを行っている。低解像度動きベクトル計算部9では、ピクセル単位で異なる位置の低解像度参照ブロックに対して、基準ブロックとの相関値を求め、求めた相関値のテーブルを作成する。
そして、サーチ範囲の全ての低解像度参照ブロックについて求めた相関値のテーブルから、低解像度基準ブロックとの相関度が最も高い低解像度参照ブロックの位置を検出し、その位置に対応する低解像度参照ベクトルを、低解像度動きベクトルとして検出する。
相関値として、SAD値を用いる場合には、前記テーブルは、SADテーブルと呼ばれる。
ここでは、二次曲線を用いて、SADテーブルを補間することで、ピクセル単位でマッチング処理を行ったSADテーブルから、サブピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、3次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いることとする。
この二次曲線近似補間においては、図24に示すように、ピクセル精度の動きベクトル151が指し示すSADテーブルのSAD値の最小値Smin(図24の参照符号152参照)と、当該最小値Sminの位置の近傍位置の複数個のSAD値を使用する。
最小値Sminの位置の近傍位置の複数個のSAD値を、ここでは、近傍SAD値という。この例では、近傍SAD値としては、最小値Sminの位置のX方向およびY方向に隣接する4個の近傍SAD値Sx1、Sx2およびSy1、Sy2(図24の参照符号153,154,155,156参照)を使用する。
先ず、X方向(水平方向)についてのサブピクセル精度の演算を行う。図25に示すように、SAD値の最小値Sminと、X方向(水平方向)の近傍2点の近傍SAD値Sx1、Sx2を使って、二次の近似曲線157を当てはめる。この二次曲線157の極小を取る座標が、サブピクセル精度のSAD値の最小値SXminとなる動きベクトル(高精度動きベクトル)のX座標Vxとなる。このときの二次曲線近似補間の式を、次式(6)に示す。
SXmin=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)…式(6)
この計算式(6)で求めたサブピクセル精度のSAD値の最小値SXminがSADテーブル上で取るX座標が、サブピクセル精度のSAD値の最小値となるX座標Vxとなる。
この計算式(6)の割り算は、複数回の引き算で実現可能である。求めたいサブピクセル精度が、例えば元の画素ピッチの1/4の画素ピッチの精度であれば、僅か2回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近時曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。
同様に、SAD値の最小値Sminと、Y方向(垂直方向)の近傍2点の近傍SAD値Sy1、Sy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値SYminを取るY座標が、サブピクセル精度のSAD値の最小値となるY座標Vyとなる。このときの二次曲線近似補間の式を、次式(7)に示す。
SYmin=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)…式(7)
以上のようにして、二次曲線の近似を、X方向およびY方向の2回、行うことで、サブピクセル精度の高精度の動きベクトル(Vx、Vy)が求まる。
以上の説明では、SAD値の最小値と、そのX方向(水平方向)およびY方向(垂直方向)の近傍2点のSAD値を使用したが、各方向の近傍のSAD値は2点以上であってもよい。また、二次曲線をX方向、Y方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、X方向、Y方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。
なお、以上の実施形態では、ブロックマッチング手法を用いて動きベクトルを検出するようにしたが、勾配法を用いて、動きベクトルを検出するようにしてもよい。
勾配法は、フレーム内の空間的な輝度の変化と、フレーム間の時間的な輝度の変化から速度を予測する方法であり、例えば特許文献(特許第3617671号)に詳細に記載されている。局所領域毎の勾配法としては、Lukas & Kanadeの提案手法が良く知られている。ブロック単位毎に、勾配法の自乗誤差が最小になるように、動きベクトルを求める。
なお、前記特許文献(特許第3617671号)に記載されているように、ブロックマッチングの動きベクトルを基準として、勾配法で、動きベクトルを求めることで、少ない計算量で少数精度(サブピクセル精度)の動きベクトルを求めることができる。
上述の実施形態では、階層処理は、低解像度層の画像フレームの全ての基準ブロックについての動きベクトルを求めた後、高解像度層の画像フレームの基準ブロックについての処理を開始するようにした。
しかしながら、階層処理としては、基準ブロック毎に行うようにしてもよい。その場合の処理の流れを、図26のフローチャートに示す。
すなわち、先ず、低解像度基準ブロックを決定する(ステップS901)。次に、決定した低解像度基準ブロックについての低解像動きベクトルの計算および検出を行う(ステップS902)。
次に、高解像度基準ブロックを決定する(ステップS903)。次に、決定した高解像度基準ブロックについての動きベクトルの計算を実行するか否かの判定を行う(ステップS904)。このステップS904での判定は、高解像度層計算判定部14の動作として説明した通りである。
ステップS904で、計算をすると判定したときには、高解像度動きベクトル計算部13での高解像度層での動きベクトルの計算を実行し、求めた動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS905)。このステップS905での処理の流れの詳細は、図8において、点線で囲んだ動きベクトルの計算処理部分と同様のものとなる。
また、ステップS904で、計算しないと判定したときには、高解像度動きベクトル計算部13の処理動作を停止させ、高解像度層での動きベクトルの計算を実行しない。そして、高解像度基準ブロックに対応する位置の低解像度動きベクトルを低解像度動きベクトルバッファ10から読み出す。さらに、スケーリング部15からの低解像度動きベクトルが縮小倍率の逆数倍された動きベクトルを、動きベクトル切替部16から出力するようにする(ステップS906)。
ステップS905およびステップS906の次には、全ての高解像度基準ブロックについての処理が終了したか否か判別する(ステップS907)。ステップS907で、全ての高解像度基準ブロックについての処理は終了していないと判別したときには、ステップS901に戻り、未処理の次の低解像度基準ブロックを設定して、このステップS901以降の処理を繰り返す。また、ステップS907で、全ての高解像度基準ブロックについての処理を終了したと判別したときには、この処理ルーチンを終了する。
以上の実施形態では、階層化処理は、2階層の場合に適用したが、3階層以上の場合にも適用可能である。その場合に、中位の階層で動きベクトルの計算を実行しないと判断したときは、それよりも上位の階層でも動きベクトルを計算しないことは言うまでもない。そして、その場合には、動きベクトルの計算を実行した階層において算出した動きベクトルを、最上位の階層の画像サイズに応じてスケーリングして出力動きベクトルとするものである。
例えば4階層の場合において、2階層までは動きベクトル処理を実行したが、3階層目は実行しないと判定したときには、3階層目だけでなく、4階層目も動きベクトルの検出を中止する。そして、2階層目で算出された合成動きベクトルを、4階層目の画像サイズに合わせてスケーリングした動きベクトルを出力するようにする。
以上の実施形態は、動画の画像情報についての動きベクトルを検出する場合として説明したが、例えば、撮像装置で、複数枚の画像を重ね合わせて静止画像を得るようにする場合にも、この発明は適用可能である。また、静止画撮影時の手ぶれ補正のための動きベクトルを検出する場合にも、この発明は、適用可能である。
1…高解像度基準フレームバッファ、2…高解像度参照フレームバッファ、3,4…画像縮小部、5…低解像度基準フレームバッファ、6…低解像度参照フレームバッファ、7…低解像度基準ブロック決定部、8…低解像度参照ブロック決定部、9…低解像度動きベクトル計算部、10…低解像度動きベクトルバッファ、11…高解像度基準ブロック決定部、12…高解像度参照ブロック決定部、13…高解像度動きベクトル計算部、14…高解像度層計算判定部、15…スケーリング部、16…動きベクトル切替部

Claims (12)

  1. 高解像度の基準フレームの画像情報が格納される高解像度基準フレームバッファと、
    高解像度の参照フレームの画像情報が格納される高解像度参照フレームバッファと、
    前記高解像度の基準フレームの画像が縮小された低解像度の基準フレームの画像情報が格納される低解像度基準フレームバッファと、
    前記高解像度の参照フレームの画像が縮小された低解像度の参照フレームの画像情報が格納される低解像度参照フレームバッファと、
    前記低解像度基準フレームおよび前記低解像度参照フレームにおいて、複数の画素からなる所定の大きさの低解像度層のブロックの単位で、低解像度層の動きベクトルを算出する低解像度動きベクトル算出手段と、
    前記高解像度基準フレームおよび前記高解像度参照フレームにおいて、前記低解像度層のブロックに対応する大きさの高解像度層のブロックの単位で、前記低解像度層の動きベクトルの算出結果を用いながら、高解像度層の動きベクトルを算出する高解像度動きベクトル算出手段と、
    前記高解像度層のブロック毎に、当該高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする高解像度層計算判定手段と、
    を備え、
    前記高解像度層計算判定手段で、前記高解像度層のブロックについての動きベクトルの算出をすると判定したときには、前記高解像度動きベクトル算出手段を動作させて、前記高解像度層の動きベクトルを算出させるようにすると共に、前記高解像度層のブロックについての動きベクトルの算出をしないと判定したときには、前記高解像度動きベクトル算出手段を動作させずに、前記低解像度動きベクトル算出手段で算出された前記低解像度層の動きベクトルを、前記高解像度の層の画像サイズに合わせた大きさにしたもので代用するようにする
    画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックについての動きベクトルの算出時に用いられる前記低解像度層の情報を用いて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  3. 請求項2に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックについて算出された動きベクトルの大きさに基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  4. 請求項2に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックと、当該低解像度基準フレームのブロックについて算出された動きベクトルの参照先の前記低解像度参照フレームのブロックとの相関度に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  5. 請求項2に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロック内の画像情報のエッジ量に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  6. 請求項2に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックと、当該低解像度基準フレームのブロックと同じ位置の前記低解像度参照フレームのブロックとの相関度に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  7. 請求項1に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックついての動きベクトルの算出時に用いられる前記高解像度層の情報を用いて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  8. 請求項7に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロック内の画像情報のエッジ量に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  9. 請求項7に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックと、当該高解像度基準フレームに設定されたブロックに対応する位置の前記高解像度参照フレームのブロックとの相関度に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  10. 請求項1に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックと、当該高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックとの相関度に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  11. 請求項1に記載の画像処理装置において、
    前記高解像度層計算判定手段は、前記高解像度基準フレームに設定されたブロックと、当該高解像度基準フレームに設定されたブロックに対応する位置の前記低解像度基準フレームのブロックについて算出された動きベクトルにより定まる位置の前記高解像度参照フレームのブロックとの相関度に基づいて、前記高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする
    画像処理装置。
  12. 画像について、基準フレームと参照フレームとの間の動きベクトルを、前記基準フレームおよび参照フレームにおいて設定された複数の画素からなる所定の大きさのブロック毎に算出する画像処理装置における画像処理方法であって、
    第1の格納手段が、高解像度の基準フレームの画像情報を高解像度基準フレームバッファに格納する第1の格納工程と、
    第2の格納手段が、高解像度の参照フレームの画像情報を高解像度参照フレームバッファに格納する第2の格納工程と、
    第1の縮小手段が、前記高解像度の基準フレームの画像を縮小して、低解像度の基準フレームの画像情報を生成する第1の縮小工程と、
    第2の縮小手段が、前記高解像度の参照フレームの画像を縮小して、低解像度の参照フレームの画像情報を生成する第2の縮小工程と、
    第3の格納手段が、前記低解像度の基準フレームの画像情報を低解像度基準フレームバッファに格納する第3の格納工程と、
    第4の格納手段が、前記低解像度の参照フレームの画像情報を低解像度参照フレームバッファに格納する第4の格納工程と、
    低解像度動きベクトル算出手段が、前記低解像度基準フレームおよび前記低解像度参照フレームにおいて、複数の画素からなる所定の大きさの低解像度層のブロックの単位で、低解像度層の動きベクトルを算出する低解像度動きベクトル算出工程と、
    高解像度動きベクトル算出手段が、前記高解像度基準フレームおよび前記高解像度参照フレームにおいて、前記低解像度層のブロックに対応する大きさの高解像度層のブロックの単位で、前記低解像度層の動きベクトルの算出結果を用いながら、高解像度層の動きベクトルを算出する高解像度動きベクトル算出工程と、
    高解像度層計算判定手段が、前記高解像度層のブロック毎に、当該高解像度層のブロックについての動きベクトルの算出をするか否かの判定をする判定工程と、
    前記判定工程で、前記高解像度層のブロックについての動きベクトルの算出をすると判定したときには、前記高解像度動きベクトル算出工程を実行させて、前記高解像度層の動きベクトルを算出させるようにすると共に、前記高解像度層のブロックについての動きベクトルの算出をしないと判定したときには、前記高解像度動きベクトル算出工程を実行させずに、前記低解像度動きベクトル算出工程で算出された前記低解像度層の動きベクトルを、前記高解像度の層の画像サイズに合わせた大きさにしたもので代用するようにする
    画像処理方法。
JP2009140813A 2009-06-12 2009-06-12 画像処理装置および画像処理方法 Pending JP2010288110A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009140813A JP2010288110A (ja) 2009-06-12 2009-06-12 画像処理装置および画像処理方法
US12/793,791 US8542741B2 (en) 2009-06-12 2010-06-04 Image processing device and image processing method
CN2010101984372A CN101924873B (zh) 2009-06-12 2010-06-07 图像处理设备和图像处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009140813A JP2010288110A (ja) 2009-06-12 2009-06-12 画像処理装置および画像処理方法

Publications (1)

Publication Number Publication Date
JP2010288110A true JP2010288110A (ja) 2010-12-24

Family

ID=43306432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009140813A Pending JP2010288110A (ja) 2009-06-12 2009-06-12 画像処理装置および画像処理方法

Country Status (3)

Country Link
US (1) US8542741B2 (ja)
JP (1) JP2010288110A (ja)
CN (1) CN101924873B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199691A (ja) * 2011-03-18 2012-10-18 Ricoh Co Ltd 撮像装置、撮像方法、及び撮像プログラム
JP2014053896A (ja) * 2012-09-05 2014-03-20 Imagination Technologies Ltd ピクセルバッファリング
WO2015030226A1 (ja) * 2013-09-02 2015-03-05 三菱電機株式会社 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム
JP2015154415A (ja) * 2014-02-18 2015-08-24 富士通株式会社 動画符号化装置、動画符号化方法及び動画符号化プログラム
US9142031B2 (en) 2012-09-07 2015-09-22 Canon Kabushiki Kaisha Image processing apparatus with detection of motion vector between images, control method therefor, and storage medium storing control program therefor

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4687725B2 (ja) * 2008-02-12 2011-05-25 ソニー株式会社 画像処理装置及び画像処理方法、並びにコンピュータ・プログラム
JP2010288098A (ja) * 2009-06-12 2010-12-24 Sony Corp 画像フレーム補間装置、画像フレーム補間方法及び画像フレーム補間プログラム
JP5206782B2 (ja) * 2010-12-28 2013-06-12 ブラザー工業株式会社 画像処理装置、画像処理方法およびプログラム
CN106851306B (zh) 2011-01-12 2020-08-04 太阳专利托管公司 动态图像解码方法和动态图像解码装置
JP5853372B2 (ja) * 2011-01-26 2016-02-09 富士通株式会社 画像処理装置および画像処理方法
US10404998B2 (en) 2011-02-22 2019-09-03 Sun Patent Trust Moving picture coding method, moving picture coding apparatus, moving picture decoding method, and moving picture decoding apparatus
MX2013009864A (es) 2011-03-03 2013-10-25 Panasonic Corp Metodo de codificacion de imagenes en movimiento, metodo de decodificacion de imagenes en movimiento, aparato de codificacion de imagenes en movimiento, aparato de decodificacion de imagenes en movimiento y aparato de codificacion y decodificacion de imagenes en movimiento.
WO2013002716A2 (en) * 2011-06-30 2013-01-03 Telefonaktiebolaget L M Ericsson (Publ) A method a decoder and encoder for processing a motion vector
US9667964B2 (en) * 2011-09-29 2017-05-30 Dolby Laboratories Licensing Corporation Reduced complexity motion compensated temporal processing
US9225979B1 (en) * 2013-01-30 2015-12-29 Google Inc. Remote access encoding
US9749642B2 (en) 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US9774881B2 (en) * 2014-01-08 2017-09-26 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
GB2539241B (en) * 2015-06-11 2019-10-23 Advanced Risc Mach Ltd Video processing system
EP3171595A1 (en) * 2015-11-18 2017-05-24 Thomson Licensing Enhanced search strategies for hierarchical motion estimation

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846968A (ja) * 1994-08-03 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 階層的動ベクトル検出方法および装置
JPH08265772A (ja) * 1995-03-24 1996-10-11 Graphics Commun Lab:Kk 階層型動きベクトル検出方法及びその装置
JP2001298745A (ja) * 2000-04-17 2001-10-26 Sharp Corp 動きベクトル探索装置および方法
JP2004056305A (ja) * 2002-07-17 2004-02-19 Matsushita Electric Ind Co Ltd 動きベクトル検出方法、動きベクトル検出装置、及びプログラム
JP2004229150A (ja) * 2003-01-27 2004-08-12 Nec Corp 動きベクトル探索方法および装置
JP2008141616A (ja) * 2006-12-04 2008-06-19 Fujifilm Corp 動きベクトル算出装置、方法およびプログラム、動画像圧縮記録装置ならびに撮像装置
JP2009055410A (ja) * 2007-08-28 2009-03-12 Sony Corp 画像処理装置および画像処理方法
JP2009104284A (ja) * 2007-10-22 2009-05-14 Sony Corp 画像処理装置および画像処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4661849A (en) * 1985-06-03 1987-04-28 Pictel Corporation Method and apparatus for providing motion estimation signals for communicating image sequences
US5729691A (en) * 1995-09-29 1998-03-17 Intel Corporation Two-stage transform for video signals
US5801778A (en) * 1996-05-23 1998-09-01 C-Cube Microsystems, Inc. Video encoding with multi-stage projection motion estimation
US6005621A (en) * 1996-12-23 1999-12-21 C-Cube Microsystems, Inc. Multiple resolution video compression
US7545957B2 (en) * 2001-04-20 2009-06-09 Avid Technology, Inc. Analyzing motion of characteristics in images
KR100994768B1 (ko) * 2003-12-08 2010-11-16 삼성전자주식회사 동영상 부호화를 위한 움직임 추정 방법 및 이를 구현하기위한 프로그램이 기록된 기록 매체
KR20060059769A (ko) * 2004-11-29 2006-06-02 엘지전자 주식회사 영상신호의 엔코딩시에 베이스 레이어 픽처의 벡터를이용하기 위한 미세정보를 코딩하는 방법과 그 미세정보를이용하는 디코딩 방법
JP2008536451A (ja) * 2005-04-14 2008-09-04 トムソン ライセンシング 空間スケーラブルビデオ符号化及び復号化向けスライス適応型動きベクトル符号化のための方法及び装置
KR100763181B1 (ko) * 2005-04-19 2007-10-05 삼성전자주식회사 기초계층과 향상계층의 데이터를 바탕으로 예측 정보를코딩하여 코딩율을 향상시키는 방법 및 장치
US20080095238A1 (en) * 2006-10-18 2008-04-24 Apple Inc. Scalable video coding with filtering of lower layers

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846968A (ja) * 1994-08-03 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> 階層的動ベクトル検出方法および装置
JPH08265772A (ja) * 1995-03-24 1996-10-11 Graphics Commun Lab:Kk 階層型動きベクトル検出方法及びその装置
JP2001298745A (ja) * 2000-04-17 2001-10-26 Sharp Corp 動きベクトル探索装置および方法
JP2004056305A (ja) * 2002-07-17 2004-02-19 Matsushita Electric Ind Co Ltd 動きベクトル検出方法、動きベクトル検出装置、及びプログラム
JP2004229150A (ja) * 2003-01-27 2004-08-12 Nec Corp 動きベクトル探索方法および装置
JP2008141616A (ja) * 2006-12-04 2008-06-19 Fujifilm Corp 動きベクトル算出装置、方法およびプログラム、動画像圧縮記録装置ならびに撮像装置
JP2009055410A (ja) * 2007-08-28 2009-03-12 Sony Corp 画像処理装置および画像処理方法
JP2009104284A (ja) * 2007-10-22 2009-05-14 Sony Corp 画像処理装置および画像処理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012199691A (ja) * 2011-03-18 2012-10-18 Ricoh Co Ltd 撮像装置、撮像方法、及び撮像プログラム
JP2014053896A (ja) * 2012-09-05 2014-03-20 Imagination Technologies Ltd ピクセルバッファリング
US10109032B2 (en) 2012-09-05 2018-10-23 Imagination Technologies Limted Pixel buffering
US11587199B2 (en) 2012-09-05 2023-02-21 Imagination Technologies Limited Upscaling lower resolution image data for processing
US9142031B2 (en) 2012-09-07 2015-09-22 Canon Kabushiki Kaisha Image processing apparatus with detection of motion vector between images, control method therefor, and storage medium storing control program therefor
WO2015030226A1 (ja) * 2013-09-02 2015-03-05 三菱電機株式会社 動き探索処理装置及び画像符号化装置及び動き探索処理方法及びプログラム
JP2015154415A (ja) * 2014-02-18 2015-08-24 富士通株式会社 動画符号化装置、動画符号化方法及び動画符号化プログラム

Also Published As

Publication number Publication date
CN101924873A (zh) 2010-12-22
US20100316127A1 (en) 2010-12-16
CN101924873B (zh) 2013-01-16
US8542741B2 (en) 2013-09-24

Similar Documents

Publication Publication Date Title
JP2010288110A (ja) 画像処理装置および画像処理方法
US9055217B2 (en) Image compositing apparatus, image compositing method and program recording device
JP4882956B2 (ja) 画像処理装置および画像処理方法
JP4623111B2 (ja) 画像処理装置、画像処理方法及びプログラム
US8265160B2 (en) Parallel three-dimensional recursive search (3DRS) meandering algorithm
JP5189678B2 (ja) 動画像の手ぶれ補正装置及び方法
US20120093231A1 (en) Image processing apparatus and image processing method
US8379725B2 (en) Motion-vector searching method and motion-vector searching apparatus
JP2009105533A (ja) 画像処理装置、撮像装置、画像処理方法および撮像画像処理方法
KR20070074781A (ko) 프레임율 변환장치
JP2009055410A (ja) 画像処理装置および画像処理方法
US20120051662A1 (en) Image processing apparatus and storage medium
WO2015085922A1 (zh) 一种帧率上采样的方法和装置
JP5116602B2 (ja) 映像信号処理装置及び方法、プログラム
JP5841345B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム、及び、撮像装置
JP5533309B2 (ja) 動きベクトル検出回路、動画像符号化装置及び動きベクトル検出方法
JP2008060836A (ja) 動きベクトル探索方法及び装置
KR101012481B1 (ko) 동영상 손떨림 보정 장치 및 방법
US8305500B2 (en) Method of block-based motion estimation
JP2017022597A (ja) 画像処理装置、その制御方法、および制御プログラム
JP2014052855A (ja) 画像処理装置、その制御方法、および制御プログラム
WO2011001364A1 (en) Parallel three-dimensional recursive search (3drs) meandering algorithm
JP2006215657A (ja) 動きベクトル検出方法、動きベクトル検出装置、動きベクトル検出プログラム及びプログラム記録媒体
JP4998134B2 (ja) 画像処理装置および画像処理方法
JP2008141249A (ja) 動きベクトル検出装置およびその方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121009

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121225