[go: up one dir, main page]

JP4623111B2 - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP4623111B2
JP4623111B2 JP2008063560A JP2008063560A JP4623111B2 JP 4623111 B2 JP4623111 B2 JP 4623111B2 JP 2008063560 A JP2008063560 A JP 2008063560A JP 2008063560 A JP2008063560 A JP 2008063560A JP 4623111 B2 JP4623111 B2 JP 4623111B2
Authority
JP
Japan
Prior art keywords
motion vector
value
target
target block
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008063560A
Other languages
English (en)
Other versions
JP2009219082A (ja
Inventor
徹 倉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2008063560A priority Critical patent/JP4623111B2/ja
Priority to EP20090003533 priority patent/EP2101486B1/en
Priority to US12/401,961 priority patent/US8611424B2/en
Priority to CN2009101271283A priority patent/CN101534447B/zh
Publication of JP2009219082A publication Critical patent/JP2009219082A/ja
Application granted granted Critical
Publication of JP4623111B2 publication Critical patent/JP4623111B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • 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
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/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/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting 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/527Global motion vector estimation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • 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

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)
  • Image Analysis (AREA)
  • Studio Devices (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

この発明は、2画面間の動きベクトルを検出すると共に、検出した動きベクトルの信頼性を算出する画像処理装置および方法に関する。
2つの画面間の動きベクトルを、画像情報自身から求めるブロックマッチング手法は、歴史の古い技術である。
このブロックマッチング手法は、注目画面である参照画面と、当該参照画面の動きの元となる元画面(ターゲット画面と称する)との間の2画面間の動きベクトルを、所定の大きさの矩形領域のブロック(ターゲットブロックと参照ブロック)について、参照画面とターゲット画面との間での相関を算出することにより算出する方法である。ターゲット画面が時間的に参照画面よりも前の画面とされる場合(例えば、MPEG(Moving Picture Experts Group)における動き検出の場合)と、参照画面が時間的にターゲット画面よりも前の画面とされる場合(例えば、後述する画像フレームの重ね合わせによるノイズ低減の場合)の両方がある。
なお、この明細書で、画面とは、1フレームまたは1フィールドの画像データからなる画像を意味しているが、この明細書における以下の説明の便宜上、画面は1フレームからなるものとして、画面をフレームと称することとする。したがって、参照画面は参照フレーム、ターゲット画面はターゲットフレームと称することとする。
このブロックマッチングによる動きベクトル検出手法は、テレビジョンカメラのパン・チルト検出や被写体追尾、MPEG(Moving Picture Experts Group)方式の動画符号化などを中心に開発が進み、90年代に入ってからは、画像の重ね合わせによるセンサレス手ブレ補正や低照度撮影時のノイズ除去(Noise Reduction:以降、NRと表記する)など多岐に渡って応用が進められている。
また、ブロックマッチングによる動きベクトル検出手法は、画像認識や手ぶれ補正用途に留まらず、撮像装置のシャッター速度の自動調整や、液晶テレビの倍速フレームレート変換のように、新たな広がりを呈している。
そして、いずれの場合においても、検出された動きベクトルの信頼性は重要である。すなわち、検出された動きベクトルが正確であれば、複数枚の画像の精度の高い位置合わせが可能となり、被写体追尾や高精度の手ぶれ補正などが期待できるが、信頼性の低い動きベクトルを用いて処理を実行した場合、かえって、誤った方向に補正などがなされてしまうため、アプリケーション依存の後処理工程の精度も低くなってしまう事態を生じる。
そこで、信頼性の高い動きベクトルを抽出するために、MPEG方式の符号化におけるDCT(Discrete Cosine Transform;離散コサイン変換)結果のAC成分およびDC成分の比較を行ったり、画像のエッジとの比較を行うなどを行ったりして、特徴的な画像部分からの動きベクトルを、より信頼性の高い動きベクトルとして検出するようにすることが行われている(例えば特許文献1(特開2006−318345号公報)参照)。
また、ベクトル算出の前に、エッジ検出やコーナーディテクタによって、画像内の特徴点(特異点)を予め抽出しておき、それらに対して動きベクトルを求める方法などもある。
さらに、特許文献2(特開2005−301984号公報)には、画像の特徴量を表わすアクティビティから、動きベクトルの信頼性の指標を得るようにすることが記載されている。
上記の特許文献は、次の通りである。
特開2006−318345号公報 特開2005−301984号公報
しかしながら、上述した従来の動きベクトルの信頼性に関する技術は、いずれも、画像の特徴点や特徴量を抽出する処理を必要としており、動きベクトルの検出処理のほかに、当該特徴点や特徴量を抽出する手段を設けなければならず、構成が複雑になると共に、コストアップの原因となるという問題があった。
また、上述の特徴点や特徴量を用いる技術は、いずれも基本的に低ノイズ画像を対象としたものであり、高ノイズの画像については、正常に機能しないという問題がある。さらに、特徴点抽出の方法は、ノイズのみではなく、繰り返しパターンにも弱いという問題がある。
この発明は、以上の点にかんがみ、簡単な構成により、また、高ノイズや繰り返しパターンの画像であっても、動きベクトルの信頼性を評価することができるようにした画像処理装置および方法を提供することを目的とする。
上記の課題を解決するために、第1の発明の画像処理装置は、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、を有し、前記グローバル動きベクトル算出部は、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、前記条件を満たした場合のグローバル動きベクトルを出力する。
第2の発明の画像処理方法は、相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の工程と、ローカル動きベクトル検出手段が、前記第1の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の工程と、前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の工程と、前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の工程と、を有し、前記第4の工程は、前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の工程と、前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の工程と、前記グローバル動きベクトル検出手段が、前記第6の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の工程と、前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックにおける、前記第2の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の工程と、前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の工程と、前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第10の工程と、を有する
第3の発明のプログラムは、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の手順と、前記第1の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の手順と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の手順と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の手順と、を有し、前記第4の手順は、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の手順と、前記第5の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の手順と、前記第6の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の手順と、前記第5の手順において選定したターゲットブロックにおける、前記第2の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の手順と、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の手順と、前記条件を満たした場合のグローバル動きベクトルを出力する第10の手順と、を画像処理装置が有するコンピュータに実行させる。
第4の発明の画像処理装置は、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、を有し、前記グローバル動きベクトル算出部は、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、前記条件を満たした場合のグローバル動きベクトルを出力する
第5の発明の画像処理方法は、相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の工程と、ローカル動きベクトル検出手段が、前記第1の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の工程と、前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の工程と、前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の工程と、を有し、前記第4の工程は、前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の工程と、前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の工程と、前記グローバル動きベクトル検出手段が、前記第6の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の工程と、前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックにおける、前記第2の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の工程と、前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の工程と、前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第10の工程と、を有する
第6の発明のプログラムは、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の手順と、前記第1の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の手順と、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の手順と、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の手順と、を有し、前記第4の手順は、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の手順と、前記第5の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の手順と、前記第6の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の手順と、前記第5の手順において選定したターゲットブロックにおける、前記第2の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の手順と、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の手順と、前記条件を満たした場合のグローバル動きベクトルを出力する第10の手順と、を画像処理装置が有するコンピュータに実行させる。
この発明によれば、画像の特徴点や特徴量を用いることなく、ターゲットブロックと参照ブロックとの相関値のみを用いて、動きベクトルの信頼性を表わす指標を得ることができる。このため、この発明によれば、高ノイズの画像や繰り返しパターンについても、確度の高い動きベクトルの信頼性の指標を得ることができる。
以下、この発明による画像処理装置および画像処理方法の実施形態を、撮像装置に適用した場合について、図を参照しながら説明する。
[第1の実施形態]
この第1の実施形態の撮像装置は、撮像素子(イメージャ)によって撮像された複数枚の静止画像を、位置合わせしながら重ね合わせて、画像のノイズ低減を行うようにするものである。
撮像装置を手で保持して撮影する環境は、手ぶれが生じ易い環境である。このような撮像装置の手持ち撮影時において、静止画を連写撮影した場合の、例えば1枚目をターゲットフレーム、2枚目以降を参照フレームとする。参照フレーム全体に、平行移動、回転、拡大縮小を伴う変形処理を施すことにより、ターゲットフレームの位置に、参照フレームを位置合わせすることができる場合、この参照フレーム全体に加わっている変形処理をグローバルモーションと称する。手ぶれは、参照フレームが、ターゲットフレームに対して、前記平行移動、回転、拡大縮小を伴う変形処理を施すことにより、当該ターゲットフレームと位置合わせすることができる分だけ、ターゲットフレームに対して、グローバルモーションが生じたことを意味する。
この実施形態では、説明の簡単のため、撮影した静止画の1枚目を基準(ターゲットフレーム)とするが、これは本質ではない。任意のn枚目をターゲットフレームとし、任意のm(n≠m)枚目を参照フレームとして、グローバルモーションを定義し直しても良い。また、動画中の時間的に異なる2枚のフレーム画像間を対象にして、グローバルモーションを定義してもよい。また、撮像画像の1フレームのうちの有効画枠全てを対象とせず、1フレームの画像の一部分のみに関して、グローバルモーションの処理を適用しても良い。
グローバルモーションは、ターゲットフレームと参照フレームとの間の画面単位の動きベクトル(これを以下グローバル動きベクトルという)に対応したものとなる。したがって、グローバル動きベクトルを正確に求めることができれば、グローバルモーションを正しく導出することができ、手ぶれを良好に補正することができる。
以下の説明において、動きベクトル検出および動き補償(動きベクトルにより、2フレームの画像を位置合わせすること)を用いて複数枚の画像を重ね合わせて、ノイズを低減することをNR(Noise Reduction)と呼び、NRによりノイズ低減された画像をNR画像と称することとする。
この実施形態では、動きベクトルは、上述したブロックマッチング手法により検出する。そして、この実施形態では、1画面を多数個のブロックに分割して、そのブロック単位の動きベクトル(ローカル動きベクトルという)を、ブロックマッチング手法により検出すると共に、当該ローカル動きベクトルの信頼性の指標を、ブロックマッチング手法における相関値を用いて、後述するようにして検出する。そして、検出したローカル動きベクトルのうちの、信頼性の高いもののみから、1画面単位の動きベクトルとしてのグローバル動きベクトルを検出するようにする。
[ブロックマッチングの概要]
図2〜図7は、ブロックマッチング手法の概要を説明するための図である。ここで説明するブロックマッチング手法においては、例えば、図2(A)に示すように、ターゲットフレーム100に、それぞれ水平方向の複数画素および垂直方向の複数ライン分からなる所定の大きさの矩形領域のブロック(ターゲットブロック)102を想定する。
ブロックマッチングにおいては、ターゲットブロック102と相関性の高いブロックを、参照フレーム101の中から検索する。この検索の結果、相関性が最も高いとして参照フレーム101内に検出された参照ブロック103(図51(B)参照)を、動き補償ブロックと呼ぶ。また、ターゲットブロック102と動き補償ブロック103(相関性が最も高い参照ブロック)との間の位置ずれ量を、動きベクトル(図2(B)の符号104参照)と称する。
ターゲットブロック102と動き補償ブロック103との間の位置ずれ(位置ずれ量と位置ずれ方向を含む)に対応する動きベクトル104は、参照フレーム101において、ターゲットフレーム100の各ターゲットブロック102の位置と同じ位置に、ターゲットブロック102の射影イメージブロック109を想定したとき、このターゲットブロックの射影イメージブロック109の位置(例えば中心位置)と、動き補償ブロック103の位置(例えば中心位置)との間の位置ずれに相当し、位置ずれ量と位置ずれの方向成分も有するものである。
ブロックマッチング処理の概要を説明する。図3において点線で示すように、参照フレーム101において、ターゲットフレーム100のターゲットブロック102の位置と同じ位置にターゲットブロックの射影イメージブロック109を想定し、このターゲットブロックの射影イメージブロック109の中心の座標を、動き検出の原点105とする。そして、動きベクトル104が、動き検出の原点105から或る範囲内に存在すると仮定し、この動き検出の原点105を中心した所定の範囲をサーチ範囲106(図3の一点鎖線参照)と設定する。
次に、ターゲットブロック102と同じ大きさのブロック(参照ブロックという)108を参照画面において設定する。そして、この参照ブロック108の位置を、サーチ範囲106内において、例えば水平方向および垂直方向に、1画素または複数画素単位で移動させるようにする。したがって、サーチ範囲106においては、複数個の参照ブロック108が設定されることになる。
ここで、参照ブロック108を、サーチ範囲106内を移動させるというのは、この例では、動き検出原点105がターゲットブロックの中心位置であるので、参照ブロック108の中心位置を、サーチ範囲106内を移動させることを意味し、参照ブロック108を構成する画素は、サーチ範囲106よりもはみ出すことがある。
そして、サーチ範囲において、設定される各参照ブロック108に対して、当該各参照ブロック108とターゲットブロック102との位置ずれ量および位置ずれ方向を表すベクトル(参照ベクトルという)107(図3参照)を設定し、それぞれの参照ベクトル107が指し示す位置にある参照ブロック108の画像内容と、ターゲットブロック102の画像内容との相関性を評価する。
参照ベクトル107は、図4に示すように、参照ブロック108の水平方向(X方向)の位置ずれ量Vxとし、垂直方向(Y方向)の位置ずれ量をVyとしたとき、ベクトル(Vx,Vy)と表すことができ、参照ブロック108の位置座標(例えば中心位置座標)とターゲットブロック102の位置座標(例えば中心位置座標)とが同じときには、参照ベクトル107は、ベクトル(0,0)と表す。
例えば、参照ブロック108が、ターゲットブロック102の位置から、X方向に1画素ずれた位置にある場合、参照ベクトル107はベクトル(1,0)となる。また、図5に示すように、参照ブロック108が、ターゲットブロック102の位置から、X方向に3画素、Y方向に2画素ずれた位置にある場合には、参照ベクトル107はベクトル(3,2)となる。
つまり、参照ベクトル107は、図5の例に示すように、ターゲットブロック102および参照ブロック108の位置を、それぞれのブロックの中心位置とした場合、各参照ベクトル108は、対応する各参照ブロック108の中心位置とターゲットブロック102の中心位置との位置ずれ(位置ずれ量と位置ずれの方向を含むベクトルとなる)を意味する。
参照ブロック108は、サーチ範囲106において移動するものとなるが、その場合に、参照ブロック108の中心位置がサーチ範囲106内を移動する。前述もしたように、参照ブロック108は、水平方向および垂直方向の複数画素からなるので、ターゲットブロック102とブロックマッチング処理される対象となる参照ブロック108が移動する最大範囲は、図5に示すように、サーチ範囲106よりも広いマッチング処理範囲110となる。
そして、ターゲットブロック102の画像内容との相関が最も強いとして検出された参照ブロック108の位置を、ターゲットフレーム100のターゲットブロック102の、参照フレーム101における位置(動いた後の位置)として検出し、検出した参照ブロックを、前述した動き補償ブロック103とする。そして、その検出した動き補償ブロック103の位置と、ターゲットブロック102の位置との間の位置ずれ量を、方向成分を含む量としての動きベクトル104として検出するようにする(図2(B)参照)。
ここで、ターゲットブロック102と、サーチ範囲106において移動する参照ブロック108との相関の強さを表す相関値は、基本的にはターゲットブロック102と参照ブロック108との対応する画素値を用いて算出されるが、その算出方法は、自乗平均を用いる方法やその他種々の方法が提案されている。
そのうち、動きベクトルを算出する際に一般的に用いられる相関値としては、例えば、ターゲットブロック102内の各画素の輝度値と、参照ブロック106内の対応する各画素の輝度値との差分の絶対値の、ブロック内の全画素についての総和(この差分の絶対値の総和を差分絶対値和と呼ぶ。以下、この差分絶対値和をSAD(Sum of Absolute Difference)と記載することとする)が用いられる(図6参照)。
相関値としてSAD値が用いられる場合には、SAD値が小さいほど相関が強いものとされる。したがって、サーチ範囲106において移動する参照ブロック108のうち、SAD値が最小となる位置の参照ブロック108が最も相関が強い最強相関参照ブロックとなり、この最強相関参照ブロックが、動き補償ブロック103として検出され、その検出された動き補償ブロック103のターゲットブロック102の位置に対する位置ずれ量が動きベクトルとして検出される。
前述したように、ブロックマッチングでは、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれの、ターゲットブロック102の位置に対する位置ずれ量は、方向成分を含む量としての参照ベクトル107で表現される。各参照ブロック108の参照ベクトル107は、参照ブロック108の参照フレーム102上の位置に応じた値となる。前述したように、ブロックマッチングでは、相関値であるSAD値が最小値となる参照ブロック108の参照ベクトルを、動きベクトル104として検出する。
そこで、ブロックマッチングでは、一般に、図7に示すように、サーチ範囲106において設定される複数個の参照ブロック108のそれぞれとターゲットブロック102との間におけるSAD値(以下、説明の簡単のため参照ブロック108についてのSAD値という)を、それぞれの参照ブロック108の位置に応じた参照ベクトル107(以下、説明の簡単のため、参照ブロック106の位置に応じた参照ベクトル107を参照ブロック108の参照ベクトル107という)のそれぞれに対応させて、メモリに記憶しておき、そのメモリに記憶された全ての参照ブロック108についてのSAD値の中から、最小のSAD値の参照ブロック108を検出することで、動きベクトル104を検出するようにしている。
サーチ範囲106において設定された複数個の参照ブロック108の位置に応じた参照ベクトル107のそれぞれに対応させて、それぞれの参照ブロック108についての相関値(この例では、SAD値)を記憶したものを相関値テーブルと呼ぶ。この例では、相関値として差分絶対値和であるSAD値を用いるので、この相関値テーブルを、差分絶対値和テーブル(以下SADテーブルという)と呼ぶことにする。
図7のSADテーブルTBLが、これを示しており、このSADテーブルTBLにおいて、それぞれの参照ブロック108についての相関値(この例ではSAD値)を相関値テーブル要素という。図7の例では、符号111で指し示すSAD値は、参照ベクトルがベクトル(0,0)のときのSAD値である。そして、図7の例では、SAD値の最小値は、参照ベクトルがベクトル(3,2)のときの「7」であるので、求める動きベクトル104は、当該(3,2)となる。
なお、上述の説明において、ターゲットブロック102および参照ブロック108の位置とは、それらのブロックの任意の特定の位置、例えば中心位置を意味するものであり、参照ベクトル107は、参照フレーム102におけるターゲットブロック102の射影イメージブロック109の位置と、参照ブロック108の位置との間のずれ量(方向を含む)を示すものである。
そして、各参照ブロック108に対応する参照ベクトル107は、参照フレーム101上において、ターゲットブロック102に対応する射影イメージブロック109の位置からの、各参照ブロック108の位置ずれとなっているので、参照ブロック108の位置が特定されると、その位置に対応して参照ベクトルの値も特定される。したがって、SADテーブル110のメモリにおける参照ブロックの相関値テーブル要素のアドレスが特定されると、対応する参照ベクトルは特定されることになる。
なお、SAD値は、同時に、2つ以上のターゲットブロックについて並列に計算するようにしてもよい。同時に処理するターゲットブロックが増加すると、処理は高速化する。しかし、SAD値を計算するハードウエアの規模が増大するので、処理の高速化と、回路規模の増大のトレードオフになる。
[実施形態のブロックマッチング]
以上のブロックマッチングの説明は、1つのターゲットブロックについての動きベクトルの算出についての説明である。このターゲットブロックのターゲットフレームの全体に占める割合は、通常、小さいので、これをそのままグローバル動きベクトルとすることは一般的には困難である。
この実施形態では、図8に示すように、ターゲットフレーム100を、例えば64画素×64ラインのような大きさのターゲットブロック102の複数個に分割し、この複数個のターゲットブロックのそれぞれについての動きベクトル(ローカル動きベクトル)104Bを先ず求める。このとき、この実施形態では、求めたそれぞれのローカル動きベクトルの信頼性を示す指標を、併せて算出するようにする。
そして、ローカル動きベクトルの信頼性の指標から、ターゲットフレームについて求めた複数個のローカル動きベクトルの中から、信頼性の高いローカル動きベクトルのみを抽出する。抽出した信頼性の高いローカル動きベクトルのみから、グローバル動きベクトルを算出する。そして、算出したグローバル動きベクトルを用いて、ターゲットフレームに対して、参照フレームを位置合わせを行い、位置合わせした両フレームを重ね合わせてNR画像を生成するようにする。
そして、この実施の形態の撮像装置において、静止画撮影においては、図9に示すように、高速で複数枚の静止画像の撮影を行い、1枚目の静止画撮影画像をターゲットフレーム100とし、2枚目以降、所定枚数の静止画撮影画像を参照フレーム101として、重ね合わせを行い、その重ね合わせたものを静止画撮影画像として記録するようにする。すなわち、撮影者が撮像装置のシャッターボタンを押下操作すると、高速で前記所定枚数の静止画像が撮影され、その1枚目に撮影した静止画像(フレーム)に対して、時間的に後で撮影された複数枚の静止画像(フレーム)が、重ね合わされて、記録されることになる。
なお、この実施形態では対象としないが、動画撮影時は、図10のように、撮像素子から出力されている現フレームの画像をターゲットフレーム100の画像とし、その前フレームの過去の画像を参照フレーム101の画像とする。つまり、動画撮影時には、現フレームの画像のノイズ低減を行うために、現フレームの前フレームの画像を現フレームに重ね合わせるということになる。
[撮像装置のハードウエア構成例]
図1は、この発明の画像処理装置の実施形態としての撮像装置の一例のブロック図を示すものである。
この図1に示すように、この実施形態の撮像装置は、システムバス2にCPU(Central Processing Unit)1が接続されると共に、システムバス2に、撮像信号処理系10や、ユーザ操作入力部3、画像メモリ部4、記録再生装置部5などが接続されて構成されている。なお、この明細書においては、CPU1は、図示は省略するが、種々のソフトウエア処理を行なうプログラムを記憶するROM(Read Only Memory)やワークエリア用RAM(Random Access Memory)などを含むものとしている。
ユーザ操作入力部3を通じた撮像記録開始操作を受けて、図1の撮像装置の撮像信号処理系は、後述するような撮像画像データの記録処理を行なう。また、ユーザ操作入力部3を通じた撮像記録画像の再生開始操作を受けて、図1の撮像装置の撮像信号処理系10は、記録再生装置部5の記録媒体に記録された撮像画像データの再生処理を行なう。
図1に示すように、撮像信号処理系10においては、撮像レンズ10Lを備えるカメラ光学系(図示は省略)を通じた被写体からの入射光は、撮像素子11に照射されて撮像される。この例では、撮像素子11は、CCD(Charge Coupled Device)イメージャで構成されている。なお、撮像素子11は、CMOS(Complementary Metal Oxide Semiconductor)イメージャで構成してもよい。
この例の撮像装置においては、撮像記録開始操作がなされると、レンズ10Lを通じて入力された映像が、撮像素子11により撮像画像信号に変換され、タイミング信号発生部12からのタイミング信号に同期した信号として、赤(R)、緑(G)、青(B)の3原色から構成されるベイヤー配列のRAW信号(生の信号)であるアナログ撮像信号が出力される。出力されたアナログ撮像信号は、前処理部13に供給され、欠陥補正やγ補正等の前処理が施され、データ変換部14に供給される。
データ変換部14は、これに入力されたRAW信号であるアナログ撮像信号を、輝度信号成分Yと、色差信号成分Cb/Crとにより構成されるデジタル撮像信号(YCデータ)に変換する。データ変換部14からのデジタル撮像信号は、ユーザ操作入力部3を通じた撮影指示に基づいて、画像メモリ部4に、書き込まれる。
すなわち、ユーザ操作入力部3を通じた撮影指示として、シャッターボタンの押下による静止画撮影指示であると、データ変換部14からのデジタル撮像信号は、重ね合わせるべき前述した複数フレーム分が画像メモリ部4の第1〜第N(Nは、重ね合わせる静止画の枚数)のフレームメモリ41〜4Nに書き込まれる。
この例においては、シャッターボタンの押下の1枚目のフレームの画像データは、ターゲットフレームの画像データとして第1のフレームメモリ41に書き込まれ。そして、2枚目以降のフレーム画像のデータは、参照フレームの画像データとして、それぞれ第2〜第Nのフレームメモリ42〜4Nに順次に書き込まれる。
そして、複数フレーム分の画像が画像メモリ部4に書き込まれた後、ターゲットフレームの画像データと参照フレームの画像データが、グローバル動きベクトル算出部15によって読み込まれ、後述するようなこの実施形態におけるブロックマッチング処理がなされて、ローカル動きベクトルLMVの検出、ローカル動きベクトルLMVの信頼性の算出およびグローバル動きベクトルGMVの算出処理がなされる。
この実施形態では、グローバル動きベクトル算出部15からは、グローバル動きベクトルGVMの情報と、ターゲットフレームの画像データTGvと、参照フレームの画像データREFvとが出力される。
そして、グローバル動きベクトル算出部15からのグローバル動きベクトルGVMの情報と、参照フレームの画像データREFvとは動き補償画生成部16に供給される。動き補償画生成部16では、参照フレームの画像データREFvに対して、グローバル動きベクトルGVMによりグローバルモーションに対応する処理、つまり、平行移動、回転、拡大縮小を伴う変形処理を施して、動き補償画像を生成する。
そして、グローバル動きベクトル算出部15からのターゲットフレームの画像データTGvが加算部17に供給されると共に、動き補償画生成部16からの動き補償画像の画像データMCvが加算部17に供給される。加算部17では、両画像データTGvおよびMCvの対応する位置の画素が加算されることにより、画像の重ね合わせ処理がなされ、その加算画像(NR画像である)の画像データMIXvが出力される。
加算部17からの加算画像の画像データMIXvは、画像メモリ部4の第1のフレームメモリ41に、ターゲットフレームの画像データとして、その前のターゲットフレームの画像データに重ね書き(上書き)される。
すなわち、第1のフレームメモリ41のターゲットフレームの画像データは、最初は、シャッターボタンが押下された直後の1枚目のフレームの画像データとなるが、2枚目の参照フレームの動き補償画の画像データMCvとターゲットフレームとが加算されると、その加算結果の加算画像の画像データMIXvに書き換えられる。そして、その加算画像の画像データMIXvが、3枚目の参照フレームの画像データに対するターゲットフレームの画像データとなり、上述と同様にして、グローバル動きベクトル算出部15でグローバル動きベクトルGVMが算出され、加算部17で画像の重ね合わせ処理がなされる。そして、その加算結果の加算画像の画像データMIXvが画像メモリ部4の第1のフレームメモリ41に、ターゲットフレームの画像データとして、その前のターゲットフレームの画像データに重ね書き(上書き)される。以下、4枚目以降の参照フレームに対しても同様の処理動作がなされる。
したがって、N枚目の参照フレームまでについての画像の重ね合わせ処理がなされた後には、画像メモリ部4の第1のフレームメモリ41には、重ね合わせるべきN枚の全てのフレームが重ね合わされたNR画像が書き込まれていることになる。
そして、この画像メモリ部4の第1フレームメモリ41に格納された重ね合わせ結果のNR画像である加算画像の画像データMIXvは、システムバス2を通じて静止画コーデック部18に供給されてコーデック変換され、記録再生装置部5の例えばDVD(Digital Versatile Disc)やハードディスクなどの記録媒体に記録される。この実施形態では、静止画コーデック部18では、JPEG(Joint Photographic Experts Group)方式の静止画についての画像圧縮符号化処理が行われる。
また、この静止画撮影モード時、シャッターボタンが押下操作される前においては、データ変換部14からの画像データは、画像メモリ部4の第1のフレームメモリ41を通じて、解像度変換部19に供給されて、所定の解像度に変換された後、NTSC(National Television System Committee)エンコーダ20に供給され、このNTSCエンコーダ20によりNTSC方式の標準カラー映像信号に変換され、例えばLCD(Liquid Crystal Display;液晶ディスプレイ)からなるモニターディスプレイ6に供給され、静止画撮影モード時のモニター画像がその表示画面にモニター表示される。
この記録再生装置部5の記録媒体に記録された静止画の画像データは、ユーザ操作入力部3を通じた再生開始操作に応じて読み出され、静止画コーデック部18に供給されて、再生デコードされる。そして、再生デコードされた静止画の画像データは、画像メモリ部4のバッファメモリ(図示は省略)を通じてNTSCエンコーダ20に供給されて、NTSC方式の標準カラー映像信号に変換され、モニターディスプレイ6に供給され、再生画像がその表示画面に表示される。
なお、図1では、図示を省略したが、NTSCエンコーダ20からの出力映像信号は、映像出力端子を通じて外部に導出することが可能とされている。
なお、この実施形態では、静止画コーデック部18により画像データを圧縮して記録するようにしたが、静止画コーデック部18を省略して、画像データを圧縮せずに記録するようにしても良い。
また、上述したグローバル動きベクトル算出部15および動き補償画生成部16は、ハードウエアにより構成することできるし、また、DSP(Digital Signal Processor)を用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。
同様に、加算部17も、ハードウエアにより構成することできるし、また、DSPを用いて構成することもできる。さらには、CPU1によりソフトウエア処理とすることもできる。また、静止画コーデック部18も、同様である。
[グローバル動きベクトル算出部15の説明]
グローバル動きベクトル算出部15では、この実施の形態では、基本的には、図2〜図7を用いて説明した、SAD値を用いてブロックマッチング処理を行うことで、ローカル動きベクトル検出を行うようにする。ただし、この実施の形態では、グローバル動きベクトル算出部15は、後述するようなハードウエアで構成され、ローカル動きベクトルは、階層化ブロックマッチング処理および補間処理により、算出するようにする。また、前述したように、この実施形態のグローバル動きベクトル算出部15では、ローカル動きベクトルのそれぞれの信頼性の指標も算出するようにする。
<階層化ブロックマッチング処理>
一般的な従来のブロックマッチングにおける動きベクトル検出処理は、サーチ範囲内を、ピクセル単位(1ピクセル単位または複数ピクセル単位)で参照ブロックを移動させて、各移動位置における参照ブロックについてのSAD値を算出し、その算出したSAD値の中から最小値を示すSAD値を検出し、当該最小SAD値を呈する参照ブロック位置に基づいて動きベクトルを検出するようにする。
そして、この実施形態では、1フレームが多数のブロックに分割されるので、以上のブロックマッチング処理をターゲットブロックおよび参照ブロックを順次切り替えながら、全画面において処理を行って、ターゲットフレーム内の全てのターゲットブロックについてのローカル動きベクトルLMVの算出を行う。
しかし、このような従来の動きベクトル検出処理では、サーチ範囲内をピクセル単位で参照ブロックを移動させるようにするので、検索するサーチ範囲に比例して、SAD値を算出するマッチング処理回数が多くなって、マッチング処理時間が大きくなると共に、SADテーブルの容量も大きくなるという問題があった。特に、静止画像の高画素化、並びに動画像のHD(High Definition)化が進み、1枚の画像サイズが非常に大きくなってきていることを考慮すると、この問題は大きい。また、システムバス2を介して画像メモリをアクセスする回数も多くなり、バス帯域を大きくしなければならなくなるという問題もある。
以上のことを考慮して、この実施の形態では、先ず、ターゲット画像(ターゲットフレーム)および参照画像(参照フレーム)を縮小した縮小画像と中間画像を用意し、縮小画像、中間画像、原画画像の順に、ブロックマッチングによる動きベクトルサーチを、前段階でのブロックマッチングの結果を次段階におけるサーチに反映させて行うという階層化ブロックマッチングを行う。この階層化ブロックマッチングを行うことで、演算量や処理時間を少なく、効率の良いローカル動きベクトルの算出を行うようにする。ここで、縮小画像のことを縮小面、中間画像のことを中間面、縮小化をしていない元の画像のことを基底面と呼ぶことにする。
図11は、この階層化ブロックマッチングを説明するための図である。すなわち、図11の例においては、基底面ターゲットフレーム201および基底面参照フレーム301を、1/a・1/b(1/a、1/bは、縮小倍率であって、a>1、b>1である)に縮小して、縮小面ターゲットフレーム211および縮小面参照フレーム311を生成すると共に、基底面ターゲットフレーム201および基底面参照フレーム301を、1/bに縮小して、中間面ターゲットフレーム221および中間面参照フレーム321を生成しておく。
縮小面や中間面の基底面に対する倍率は任意であるが、1/2〜1/8倍(画素数換算で1/4〜1/64倍)の範囲が適当である。なお、図11の例では、中間面に対する縮小面の縮小倍率は1/4(すなわち、a=4)、また、基底面に対する中間面の縮小倍率は1/4(すなわち、b=4)の場合として示している。
縮小面や中間面の作成にあたっても、その方法は任意である。しかし、単に、原画像の画素を、縮小倍率に応じて間引くだけで縮小面や中間面を作成する方法では、折り返し成分が発生し、1階層目(縮小面)で検出される動きベクトルが、正しいものから外れやすくなるため、通常、縮小倍率に応じたカットオフ周波数帯域を持つローパスフィルタを原画に対して施したのち、縮小倍率に応じたサブサンプリングを行う。
この実施形態では、倍率に応じたサブサンプリングにより消失する画素を含んだ、輝度平均値を生成し、それを縮小面画素や中間面画素としている。つまり、1/a縮小なら、a×a画素の正方領域の輝度平均値を算出し、これを縮小面画素や中間面画素の輝度値とする。この手法の場合、まず中間面を生成しておいてから、中間面から縮小面を生成しても、原画から直接縮小面を生成する場合と同じ結果が得られるため、より効率的である。
なお、縮小画像を得るに当たっては、水平方向の縮小率と垂直方向の縮小率は、上記のように同じであってよいし、また、異ならせても良い。
以上のようにして、縮小面および中間面を作成したら、先ず、縮小面ターゲットフレーム211に縮小面ターゲットブロック212を設定すると共に、縮小面参照フレーム311に縮小面サーチ範囲313を設定し、当該縮小面サーチ範囲313内の複数個の縮小面参照ブロック312について、縮小面の動きベクトル検出装置401で、上述したブロックマッチング処理を行い、最小SAD値を呈する縮小面参照ブロック位置を検出することにより、縮小面動きベクトルMVsを検出する。
この例では、動きベクトル検出装置401は、縮小面ターゲットブロック212の大きさ(水平方向の画素数×垂直方向のライン数)のブロックをブロックマッチング処理単位として処理を実行するものである。
縮小面動きベクトルMVsの算出が終了したら、次に、縮小面ターゲットフレーム211をa倍したものに等しい中間面ターゲットフレーム221において、中間面ターゲットブロック222を設定する。
図11の例では、中間面の動きベクトル検出装置402は、縮小面の動きベクトル検出装置401におけるブロックマッチング処理単位と同じ大きさのブロック(同じピクセル数=同じ水平方向の画素数×同じ垂直方向のライン数)を中間面ターゲットブロックとしてブロックマッチング処理を行うようにしている。
この例の場合、縮小面は中間面の1/aであるので、縮小面ターゲットブロック212に対応する中間面ターゲットフレームにおける領域には、中間面ターゲットブロック222が、a個含まれることなり、その全てが中間面の動きベクトル検出装置402におけるブロックマッチング処理対象として設定される。
そして、縮小面参照フレーム311をa倍したものに等しい中間面参照フレーム321において、縮小面動きベクトルMVsを中心とした中間面サーチ範囲323を設定し、当該中間面サーチ範囲323内の複数個の中間面参照ブロック322について、動きベクトル検出装置402で、上述したブロックマッチング処理を行い、最小SAD値を呈する中間面参照ブロック位置を検出することにより、中間面動きベクトルMVmを検出する。
中間面の動きベクトル検出装置402では、a個の中間面ターゲットブロックのそれぞれについて、中間面サーチ範囲323内に設定したそれぞれの当該中間面ターゲットブロック用のサーチ範囲において、ブロックマッチング処理を実行して、それぞれの中間面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のSAD値を呈する動きベクトルを、中間面における動きベクトル(中間面動きベクトル)MVmとして検出する。
縮小面動きベクトルMVsの算出が終了したら、次に、中間面ターゲットフレーム221をb倍したものに等しい基底面ターゲットフレーム201において、基底面ターゲットブロック202を設定する。
図11の例では、基底面の動きベクトル検出装置403も、動きベクトル検出装置401および402と同じ大きさ(同じピクセル数=同じ水平方向の画素数×同じ垂直方向のライン数)のブロックを処理単位ブロックとしてブロックマッチング処理を行うようにしている。
そして、前述したように、中間面動きベクトルMVmは、処理単位ブロックの単位で得られるので、動きベクトル検出装置403で対象となる基底面ターゲットフレーム201における基底面ターゲットブロック202は、図11において、斜線を付して示すように、縮小面ターゲットブロックと同じ大きさのブロック(処理単位ブロック)のb倍の個数からなるものとして設定される。
一方、中間面参照フレーム321をb倍したものに等しい基底面参照フレーム301において、縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルを中心とした基底面サーチ範囲303を設定する。当該基底面サーチ範囲303内の複数個の基底面参照ブロック302について、動きベクトル検出装置403で、上述したブロックマッチング処理を行い、最小SAD値を呈する基底面参照ブロック位置を検出することにより、基底面動きベクトルMVbを検出する。
縮小面動きベクトルMVsおよび中間面動きベクトルMVmは、同じ大きさの処理単位ブロックの単位で得られるので、縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルを中心とした設定された基底面サーチ範囲303は、b個の基底面ターゲットブロック202を含む領域よりも若干広い領域とされる。
動きベクトル検出装置403では、b個の基底面ターゲットブロック202について、基底面サーチ範囲303内に設定したそれぞれの基底面ターゲットブロックについてのサーチ範囲において、ブロックマッチング処理を実行して、それぞれの基底面ターゲットブロックについての動きベクトルの検出を行う。そして、それら複数個の動きベクトルのうち、最小のSAD値を呈する動きベクトルを、基底面における動きベクトル(基底面動きベクトル)MVbとして検出する。
そして、以上のようにして求められた縮小面動きベクトルMVsと、中間面動きベクトルVMmと、基底面動きベクトルVMbとの合成ベクトルとして、基底面ターゲットフレーム201と基底面参照フレーム301との間における基底面ターゲットブロックについてのローカル動きベクトルLMVが検出される。
以上のような階層化ブロックマッチング処理を、ターゲットブロックおよび参照ブロックを順次切り替えながら、ターゲットフレームおよび参照フレームの全領域において、実行することで、ターゲットフレーム内に設定した複数個のターゲットブロック単位の複数個のローカル動きベクトルLMVの全てが算出される。
図11の例で、動きベクトル検出装置401,402および403は、実際的には、1つの装置であって、画像メモリ部4から読み出されて入力されるターゲットブロックと、サーチ範囲から読み出される参照ブロックとが異なるのみである。
なお、ターゲットブロックの切り替えは、基底面ターゲットフレーム201において、全ての基底面ターゲットブロック202についてのローカル動きベクトルLMVを得るようにする場合には、縮小面において、縮小面ターゲットブロックを、水平方向には、縮小倍率1/aおよび1/bに応じた水平方向の画素数分ずつ、ずらして設定し、また、垂直方向には、縮小倍率1/aおよび1/bに応じた垂直方向のライン数分ずつ、ずらして設定するようにすれば良い。
しかし、グローバル動きベクトルGVMを複数個のローカル動きベクトルLMVから求めるという目的からすると、基底面ターゲットフレーム201における飛び飛びの位置の基底面ターゲットブロックについてのローカル動きベクトルLMVを得るように、縮小面ターゲットブロックを、水平方向および垂直方向に、順次にずらして設定するようにしてもよい。
なお、上述した階層化ブロックマッチングは、中間面を省略し、縮小面と基底面のみの2階層で行っても良いし、逆に、中間面の階層が複数存在しても構わない。ただし、縮小倍率が大き過ぎて、動被写体と背景が同じ単位ブロックに含まれてしまう場合、本来は異なる動きベクトルとして検出されるべきものが、1つの動きベクトルとして扱われてしまい、以降の階層ではリカバリが効かないため、縮小倍率の選定は慎重に行われる必要がある。
[ローカル動きベクトルLMVの信頼性の算出]
比較的ノイズの多い画像がターゲット画像の場合、SAD値がノイズの影響を受け、正しいベクトルが得られないケースが多い。図12は、夜景を撮影したもので、比較的ノイズの多い画像である。この図12の画像に対して、僅かに回転を伴いながら左方向に手ぶれして撮影された画像を参照画像として、両画像間の動きベクトルを図示すると、図13に示すような結果が得られる。この図13は、原画を1/8に縮小した縮小画像における縮小面動きベクトルを描画したものである。
この図13を見て分かるように、特にテクスチャのはっきりしない、夜空の動きベクトルが、全くバラバラの動きとして得られている。階層化ブロックマッチングにおいては、前述の通り、縮小画像の生成の際にはローパスフィルタが施されるため、比較的ノイズ耐性が高いが、この図13に示すように、ノイズの影響を受ける。基底面のローカル動きベクトルLMVは、縮小面動きベクトルの周辺をサーチして得られるため、縮小面動きベクトルが、正しいものから外れている場合には、リカバリが効かず、ノイズの影響をまともに受け、さらに乱れることになる。
仮に、ノイズが全く無い撮像画像が対象であった場合でも、テクスチャがはっきりしない画像の場合は、連写撮影時の僅かな外光の変化や露光時間の差違によるグラデーョンの変化の方が大きく、検出された動きベクトルが、正しいものから外れるケースが多い。また、多数の木やビル等の人口建築物には、テクスチャの繰り返しパターンが多いが、そのようなテクスチャの繰り返しパターンの場合でも、検出された動きベクトルが、正しいものから外れ易くなる。
こうしたケースを想定して、前述したように、従来から、信頼性の高い動きベクトルのみを用いて、グローバルモーションを算出する試みが行われて来た。例えば、ターゲット画像において、エッジ検出を行い、エッジのはっきりしたブロックの動きベクトルは、信頼性が高いものとしたり、ターゲット画像のIDCT(Inverse Discreet Cosine Transform)結果のDC成分、AC成分を使って信頼性を算出する提案がなされている。
また、予め、フィルタの一種であるコーナーディテクタを用いて、ターゲット画像上の特徴点を検出し、それらの動きベクトルは信頼性が高いものとしたり、複数の特徴点の位置関係が、参照画像上でも維持されるという前提から、複数点の動きベクトルの組み合わせから信頼性の高い動きベクトルを抽出する手法も、提案されている。
しかしながら、これらの従来の手法は、いずれも高ノイズの画像を前提としておらず、ノイズが非常に大きいレベルの画像においては、どの手法も破綻してしまうことが明らかである。
この実施形態では、上記の実情に鑑み、高ノイズ環境の画像においても有効に、動きベクトルの信頼性を評価できる信頼性指標値を得るようにしている。
この実施形態では、ターゲットブロックと参照ブロックとの間の相関値の第1極大値と、第2極大値との差または比を、動きベクトルの信頼性の指標値とする。この実施形態では、ターゲットブロックと参照ブロックとの間の相関値は、SAD値として検出するので、相関値の第1極大値および第2極大値は、SAD値の第1極小値および第2極小値となる。
図14は、1つのターゲットブロックについてのSADテーブルにおける各SAD値を、模式的に示した図である。この図14では、サーチ範囲を、画像の水平方向(x方向)と垂直方向(y方向)との2次元で表わし、高さ方向(x方向およびy方向に直交する方向)にSAD値を取って、SADテーブルを3次曲面で表わしている。
通常のブロックマッチング処理の場合、動きベクトルを検出するためにはSADテーブルにおけるSAD値の最小値のみが検出対象とされるが、このSAD値の最小値は、SADテーブルにおけるSAD値の第1極小値であり、図14においては、点501で示す位置となっている。図14では、動き原点(x=0、y=0)から、この点501で示すSAD値の最小値位置との間のベクトルとして、動きベクトルMVが検出される。
ノイズが存在しない理想的な状態を考えれば、サーチ範囲内の複数の参照ブロックとターゲットブロックとの相関値を求めたとき、3次曲面で表わされるSADテーブルは、一様に下に凸となり、SAD値の極小値は、1つのみ存在する状態となる。しかし、実際の撮影状況においては、光量変化や、動き物体の動きなどの影響のほか、種々のノイズのため、3次曲面で表わされるSADテーブルは、一様に下に凸となることは殆どなく、複数個のSAD値の極小値が存在するのが一般的である。
そこで、この実施形態では、SAD値の最小値に等しい第1極小値を呈する参照ブロックの位置に基づいて動きベクトルMVを検出するが、このSAD値の第1極小値を除くSAD値のうちの極小値、すなわち、SAD値の第2極小値を、信頼性の指標を生成するために検出するようにする。図14においては、点501で示す位置が第1極小値を示し、点502で示す位置が第2極小値を示している。
ノイズ等の影響が少なければ、SAD値の第1極小値と、SAD値の第2極小値との差は大きく、SAD値の第1極小値、すなわち、SAD値の最小値から検出される動きベクトルMVの信頼性は高くなる。一方、ノイズ等が多い環境においては、SAD値の第1極小値と、SAD値の第2極小値との差が小さく、いずれが動きベクトルMVに正しく対応しているか分からない状況になるので、信頼性が低いことになる。
以上のことから、この実施形態では、SAD値の第1極小値(SAD値の最小値)と、SAD値の第2極小値との差を、検出した動きベクトルの信頼性の指標とする。図14のサーチ範囲を1次元軸上で表わし直したSADテーブルを、図15に示す。この実施形態では、この図15において、第2極小値と第1極小値(SAD値の最小値)との差の値を、動きベクトルMVの指標値Ftとする。
なお、SAD値の第1極小値しか得られず、第2極小値が得られない場合には、この実施形態では、SAD値の理論上の最大値またはSADテーブル内のSAD値の最大値を、その動きベクトルMVの信頼性指標値とするようにする。したがって、そのようなブロックの動きベクトルは信頼性の高いものとされるが、このようなブロックは殆ど存在しないので、SAD値の第1極小値しか得られず、第2極小値が得られないようなブロックの動きベクトルは、信頼性の評価から外すようにしても良い。
なお、SAD値の第1極小値(SAD値の最小値)と、SAD値の第2極小値との差の代わりに、SAD値の第1極小値(SAD値の最小値)と、SAD値の第2極小値との比を、動きベクトルMVの信頼性の指標値Ftとすることもできる。しかし、以下の説明においては、動きベクトルの信頼性の指標値Itとしては、SAD値の第1極小値(SAD値の最小値)と、SAD値の第2極小値との差を用いるものとする。
この実施形態の動きベクトルの信頼性指標によれば、従来のような画像のエッジや特徴などの画像成分を用いるものではなく、ターゲットフレームと参照フレームとの間の相関値のみを用いているので、ノイズに対してロバスト性が高い。すなわち、画像のノイズに影響されること無く、精度の高い動きベクトルの信頼性指標が得られる。
また、この実施形態では、相関値の第1極大値(SAD値の第1極小値)と、相関値の第2極大値(SAD値の第2極小値)との差、または、比を用いていることも、この実施形態の動きベクトルの信頼性指標が、ノイズに対してロバスト性が高い理由となっている。
すなわち、一般に、ノイズレベルが高くなって来ると、正しい動きベクトルであったとしても、そのSAD値は値が上昇してしまう。このため、信頼性の高い動きベクトルを抽出する目的で、動きベクトルの信頼性指標値Ftに対して閾値を設定し、当該閾値との比較処理を行う場合には、その閾値自体もノイズレベルに応じて変化させる必要がある。
これに対して、この実施形態による動きベクトルの信頼性指標値Ftの場合、ノイズレベルが高くなると、相関値の第1極大値(SAD値の第1極小値)と、相関値の第2極大値(SAD値の第2極小値)の両方が、ノイズレベルに応じて、値が上昇するため、両者の差に関しては、ノイズの影響が相殺されることになる。つまり、ノイズレベルに依らない一定値の閾値処理が可能となる。相関値の第1極大値(SAD値の第1極小値)と、相関値の第2極大値(SAD値の第2極小値)との比を、動きベクトルの信頼性指標値Ftとして用いる場合も同様のことが言える。
ところで、ブロックマッチングを行う対象ブロックの画像のコントラストが低い場合、SAD値の第2極小値と、SAD値の最小値の差は縮まる傾向にある。このため、同一フレーム内にコントラストの高い領域と低い領域があるとき、同一の閾値でベクトル信頼性の評価値Ixを評価すると、コントラストの高い領域が優先的に抽出され易い。
これは、動きベクトルの信頼性という観点では正しい結果ではあるが、コントラストの低い領域をある程度救済する目的で、この実施形態では、動きベクトルの信頼性の指標値を求める演算式に、コントラストの影響を軽減する項を追加する。すなわち、ターゲットフレームの画像の最大輝度の値と最小輝度の値との差を求め、当該輝度の差を動きベクトルの信頼性の指標値に反映させるようにする。なお、ノイズによる悪影響を避けるため、ターゲットフレームの画像データに対してローパスフィルタを施してから、最大輝度と最小輝度の抽出を行う。
以上のことを踏まえたこの実施形態における動きベクトルの信頼性指標値Ftの算出式は、
Ft=(Btm2SAD−MinSAD)−(MaxTAR−MinTAR)×Co
・・・(式1)
ただし、
Ft;動きベクトルの信頼性指標値
Btm2SAD;SAD値の第2極小値
MinSAD;SAD値の最小値(第1極小値)
MaxTAR;ターゲットブロックの最大輝度値
MinTAR;ターゲットブロックの最小輝度値
Co;重み係数(≦1)
となる。
なお、動きベクトル信頼性指標値として、相関値の第1極大値と相関値の第2極大値との比を用いる場合にも、信頼性指標値算出式において、上述の(式1)と全く同様に、コントラストの影響を軽減する項を追加するようにすれば良い。もっとも、動きベクトルの信頼性指標値Ftの算出に当たって、コントラストの影響を軽減する項を追加することは必須ではなく、この項を省略してもよい。
上述の説明では、基底面動きベクトルMVbについての動きベクトル信頼性指標値のみを求めるようにしたが、縮小面動きベクトルMVsや中間面動きベクトルMVmについても、同様にして、動きベクトル信頼性指標値を求めることができることは、言うまでもない。
[グローバル動きベクトルGVMの算出]
従来は、上述のような動きベクトルの信頼性指標値はなかったので、ターゲットフレームについて求められた複数個のローカル動きベクトルLMVのすべてを、同じ重みで用いてグローバル動きベクトルGVMを算出するようにしている。
これに対して、この実施形態では、以上のようにして、ターゲットフレームについての複数個のローカル動きベクトルLMVのそれぞれの信頼性指標値Ftを得ることができる。
そこで、求められた複数個のローカル動きベクトルLMVの信頼性指標値を正規化して、例えば0以上、1以下の重み係数を、それぞれのローカル動きベクトルLMVに対して設定することができる。そして、グローバル動きベクトルGVMの算出演算において、各ローカル動きベクトルLMVは同じ重みではなく、それぞれの重み係数に応じた重みで、グローバル動きベクトルGVMを算出するようにすることができる。
しかし、グローバル動きベクトルGVMの演算処理を簡単にして、演算負荷を軽くするため、この実施形態では、ローカル動きベクトルLMVについての重み係数Wを、0と、1に2値化するようにする。
このため、この実施形態では、動きベクトルの信頼性指標値Ftに対する閾値thを設定し、
Ft>thであるときには、W=1
Ft≦thであるときには、W=0
・・・(式2)
なる演算式により、各グローバル動きベクトルGVMについての重み係数Wを、それぞれの動きベクトルの信頼性指標値Ftを用いて算出するようにする。
これは、動きベクトル信頼性指標値Ftを用いて、複数個のローカル動きベクトルLMVのそれぞれの信頼性を判定し、複数個のローカル動きベクトルLMVから、信頼性の高いローカル動きベクトルLMVのみを抽出し、当該抽出した信頼性の高いローカル動きベクトルLMVのみを用いてグローバル動きベクトルGVMを算出することに等しい。この実施形態では、ターゲットフレームにおけるターゲットブロック数が比較的多いことから、この例のように、信頼性の高いローカル動きベクトルLMVのみを抽出する方法であっても精度のよいグローバル動きベクトルGVMの算出が可能である。
なお、複数個のローカル動きベクトルLMVから、グローバル動きベクトルGVMを算出する具体的な処理例は、後述する。
前述の図12のノイズの多い画像については、図13に示したようなローカル動きベクトルが得られるが、この図13の画像上に示したローカル動きベクトルに対して、この実施形態による動きベクトルの信頼性指標値を用いて信頼性の判定をした上で、閾値以上の信頼性が得られたもののみを抽出し、そのブロックと動きベクトルを描画すると、図16のようになる。この図16に示した、これらのブロックについては、ノイズの影響を受けず、ほぼ正しいローカル動きベクトルが得られていると言える。
[グローバル動きベクトル検出部15のハードウエア構成例]
グローバル動きベクトル検出部15は、以上説明したように、ターゲットブロック毎のローカル動きベクトルLMVの検出、検出したローカル動きベクトルLMVの信頼性指標値の算出、およびグローバル動きベクトルGVMの算出などの処理を行う。
このグローバル動きベクトル検出部15のハードウエア構成例を図17に示す。この例では、グローバル動きベクトル検出部15は、ターゲットブロック102の画素データを保持するターゲットブロックバッファ部151と、参照ブロック108の画素データを保持する参照ブロックバッファ部152と、ターゲットブロック102と参照ブロック108とで対応する画素についてのSAD値を計算するマッチング処理部153と、マッチング処理部153から出力されるSAD値情報からローカル動きベクトルを算出するローカル動きベクトル算出部154と、コントロール部155と、動きベクトル信頼性指標値算出部156と、グローバル動きベクトル演算部157と、コントラスト算出部158と、を備える。
コントラスト算出部158は、ローパスフィルタ1581と、最大輝度値検出部1582と、最小輝度値検出部1583とからなる。
そして、この例では、図示は省略するが、画像メモリ部4には、原画のターゲットフレームや参照フレームの画像データから生成された、ターゲットフレームおよび参照フレームについての縮小面の画像データおよび中間面の画像データが、記憶保持されている。
コントロール部155は、このグローバル動きベクトル算出部15における処理シーケンスを制御するもので、図示のように各部に制御信号を供給するようにする。
ターゲットブロックバッファ部151は、このコントロール部155の制御を受けて、画像メモリ部4の縮小面、中間面あるいは基底面のターゲットフレームの画像データから、指示されたターゲットブロックの画像データを読み込んで、マッチング処理部153に供給する。
参照ブロックバッファ部152は、コントロール部155の制御を受けて、画像メモリ部4の縮小面、中間面あるいは基底面の参照フレームの画像データから、指示されたマッチング処理範囲の画像データを読み込み、そのマッチング処理範囲の画像データの中から、参照ブロックの画像データを順次にマッチング処理部153に供給するようにする。
マッチング処理部153は、ターゲットブロックバッファ部151からのターゲットブロックの画像データと、参照ブロックバッファ部152からの参照ブロックの画像データを受けて、縮小面、中間面および基底面におけるブロックマッチング処理を、コントロール部155の制御にしたがって行う。そして、マッチング処理部153は、参照ベクトル(参照ブロックの位置情報)と、ブロックマッチング処理結果のSAD値とを、ローカル動きベクトル算出部154に供給する。
ローカル動きベクトル算出部154は、SAD値の第1極小値保持部1541と、SAD値の第2極小値保持部1542とを備え、マッチング処理部153からのSAD値から、SAD値の第1極小値と、SAD値の第2極小値とを検出する処理を行う。
そして、ローカル動きベクトル算出部154は、SAD値の第1極小値保持部1541のSAD値の第1極小値およびその位置情報(参照ベクトル)と、SAD値の第2極小値保持部1542のSAD値の第2極小値およびその位置情報(参照ベクトル)とを更新してゆき、マッチング処理範囲の全ての参照ブロックについてのブロックマッチング処理が終了したときには、そのときのターゲットブロックについてのSAD値の第1極小値およびその位置情報(参照ベクトル)と、SAD値の第2極小値およびその位置情報(参照ベクトル)とが、SAD値の第1極小値保持部1541と、SAD値の第2極小値保持部1542とに保持されるように処理動作を実行する。
そして、ローカル動きベクトル算出部154は、マッチング処理範囲の全ての参照ブロックについてのブロックマッチング処理が終了したときにSAD値の第1極小値保持部1541に保持されている参照ベクトルの情報(位置情報)を、縮小面、中間面および基底面のそれぞれにおける動きベクトルとして検出する。このローカル動きベクトル算出部154の処理動作については、後で詳述する。
このローカル動きベクトル算出部154からは、この実施形態では、縮小面マッチング処理時には、縮小面動きベクトルMVsが、ローカル動きベクトルLMVとしてコントロール部155に供給される。
コントロール部155は、この縮小面動きベクトルMVsの情報から、中間面におけるサーチ範囲を決定し、ターゲットブロックバッファ部151、参照ブロックバッファ部152およびマッチング処理部153に制御信号を供給して、中間面におけるブロックマッチングを行なうように制御する。
次に、中間面のマッチング処理が終了したときには、ローカル動きベクトル算出部154からは、この実施形態では、縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルの情報が、ローカル動きベクトルLMVとしてコントロール部155に供給される。
コントロール部155は、この縮小面動きベクトルMVsと中間面動きベクトルMVmとの合成ベクトルの情報から、基底面におけるサーチ範囲を決定し、基底面におけるブロックマッチングを行なうように、ターゲットブロックバッファ部151、参照ブロックバッファ部152およびマッチング処理部153に制御信号を供給する。
基底面のマッチング処理が終了したときには、ローカル動きベクトル算出部154からは、縮小面動きベクトルMVsと中間面動きベクトルMVmと基底面動きベクトルMVbとの合成ベクトルの情報が、ローカル動きベクトルLMVとしてグローバル動きベクトル演算部157に供給され、一時保持される。
また、基底面のマッチング処理が終了したときには、動きベクトル信頼性指標値算出部156がコントロール部155によりイネーブルとされ、ローカル動きベクトル算出部154からは、第1極小値保持部1541のSAD値の最小値MinSADと、第2極小値保持部1542のSAD値の第2極小値Btm2SADとが、動きベクトル信頼性指標値算出部156に供給される。
また、このとき、ターゲットブロックバッファ部151からのターゲットブロックの画像データがローパスフィルタ1581を通じて最大輝度値検出部1582および最小輝度値検出部1583に供給される。そして、最大輝度値検出部1582および最小輝度値検出部1583のそれぞれで検出された最大輝度値MaxTARおよび最小輝度値MinTARが、動きベクトル信頼性指標値算出部156に供給される。
動きベクトル信頼性指標値算出部156では、これに供給される情報を用いて、前述した(式1)にしたがって、動きベクトルの信頼性指標値Ftを算出する。そして、動きベクトル信頼性指標値算出部156は、算出した動きベクトルの信頼性指標値Ftを、グローバル動きベクトル演算部157に供給する。グローバル動きベクトル演算部157では、そのときに供給されているローカル動きベクトルLMVに対応付けて、入力されてきた動きベクトルの信頼性指標値Ftを、一時保持する。
以上の処理が、ターゲットフレームの全てのターゲットブロックについて終了すると、コントロール部155は、グローバル動きベクトル演算部157に、グローバル動きベクトルGVMの演算処理を開始するようにする制御指示信号を供給する。
この実施形態では、グローバル動きベクトル演算部157は、この制御指示信号を受けて、先ず、保持している複数個のローカル動きベクトルLMVについて、対応して保持されている動きベクトル信頼性指標値Ftを用いて、前述した(式2)により、信頼性の判定を行い、信頼性の高いローカル動きベクトルLMVのみを抽出する。
そして、抽出した信頼性の高いローカル動きベクトルLMVのみを用いてグローバル動きベクトルGVMを算出する演算処理を実行し、得られたグローバル動きベクトルGVMを、動き補償画生成部16に供給する。
前述したように、動き補償画生成部16では、グローバル動きベクトル算出部15を通じて送られてくる参照フレームの画像データREFvに対して、グローバル動きベクトルGVMによりグローバルモーションに対応する変形処理が施されて、動き補償画像が生成される。そして、生成された動き補償画像が加算部17でターゲットフレームの画像データと重ね合わされる。
この実施形態におけるグローバル動きベクトルGVMは、信頼性の高いローカル動きベクトルLMVから生成されたものであるので、確度の高い動きベクトルであり、画像重ね合わせにより得られたNR画像は、良好なものとなる。
[ローカル動きベクトル算出部154での処理動作]
この実施形態のローカル動きベクトル算出部154では、SAD値についての極小値を検出するため、図18において、点線で囲んで示すように、位置Poを判定対象点として、当該判定対象点位置PoのSAD値と、当該判定対象点位置Poの周囲近傍の8個のSAD値とを比較する。そして、判定対象点のSAD値が、点線で囲んで示す領域の9個のSAD値の中で最小値(ローカルミニマムという)であるか否か判断する。
そして、ローカルミニマムであると判断されたときには、それまで保持されていたSAD値の極小値と比較して、保持されていたSAD値の極小値よりも小さいと判断されると、保持するSAD値の極小値を、新たに検出されたローカルミニマムのSAD値に更新してゆく。
上述したようなローカルミニマムのSAD値を検出するために、ローカル動きベクトル算出部154は、参照ブロックを、1ピクセル単位でサーチする場合には、SAD値を保持しておくSADテーブルのバッファメモリとして、その規模を小さくするために、図18に示すように、ターゲットブロックの水平方向のサイズの2ライン分+3個分のSAD値の保持が可能なものを用意する。
図18から分かるように、ターゲットブロックの水平方向のサイズの2ライン分+3個分のSAD値が、バッファメモリに書き込まれると、判定対象点位置Poでのローカルミニマムの判定が可能となる。
バッファメモリのサイズを最小にするために、ここでは、図18に示すように、極小値評価(ローカルミニマム検出)で使われなくなったSAD値が記憶されていたメモリ位置Paには、新規に入力されるSAD値が上書きされる。すなわち、新規に入力されるSAD値は、順番として図18のメモリ位置Pbに書き込まれるのであるが、このメモリ位置Pbではなく、使われなくなったメモリ位置Paを再利用することで、メモリのハードウエア規模の増大を抑えるようにしている。
なお、ローカル動きベクトル算出部154は、ローカルミニマムを検出するためのバッファの他に、前述した第1極小値保持部1541と、第2極小値保持部1542とを備えるものである。
以上の処理が基本的な処理であり、この基本的な処理を、第1極小値と第2極小値とに適用することにより、SAD値の最小値およびSAD値の第2極小値を検出するようにする。
この実施形態では、ローカル動きベクトル算出部154では、縮小面と、中間面と、基底面とで、同じ動作をするものであるが、この実施形態では、基底面で、ローカル動きベクトルLMVを検出するようにすると共に、その信頼性指標値を算出するようにしている。したがって、SAD値の第2極小値が必要になるのは、この例では、基底面のみでよく、縮小面および中間面では、SAD値の第2極小値の算出保持は、省略するようにしてもよい。
図19は、このローカル動きベクトル算出部154における第1極小値および第2極小値の検出処理動作の流れを示すフローチャートである。
先ず、マッチング処理部153からのSAD値を取り込む(ステップS101)。そして、判定対象点位置PoのSAD値と、その周囲8個のSAD値との比較をする(ステップS102)。その比較の結果、判定対象点位置PoのSAD値は、ローカルミニマムであるか否か判別する(ステップS103)。
ステップS103で、判定対象点位置PoのSAD値は、ローカルミニマムではないと判別したときには、ステップS101に戻り、次のSAD値の取り込みを行う。
ステップS103で、判定対象点位置PoのSAD値は、ローカルミニマムであると判別したときには、保持しているSAD値の第1極小値および第2極小値と、判定対象点位置PoのSAD値とを比較する(ステップS104)。
そして、判定対象点位置PoのSAD値が、保持しているSAD値の第1極小値よりも小さいか否か判別し、小さいと判別したときには、第1極小値保持部1541に保持しているSAD値を、第2極小値保持部1542に保持するように更新すると共に、判定対象点位置PoのSAD値を第1極小値保持部1541に保持するようにする(ステップS106)。
そして、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したか否か判別し(ステップS109)、完了してはいないと判別したときには、ステップS101に戻って、次のSAD値を取り込む。また、ステップS109で、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
また、ステップS105で、判定対象点位置PoのSAD値が、保持しているSAD値の第1極小値より大きいと判別したときには、判定対象点位置PoのSAD値が、保持しているSAD値の第2極小値より小さいか否か判別し(ステップS107)、小さいと判別したときには、第2極小値保持部1542に保持するSAD値を、判定対象点位置PoのSAD値に更新するようにする(ステップS108)。
そして、ステップS108の次には、ステップS109に進み、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したか否か判別し、完了してはいないと判別したときには、ステップS101に戻って、次のSAD値を取り込む。また、ステップS109で、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
また、ステップS107で、判定対象点位置PoのSAD値が、保持しているSAD値の第2極小値より小さくはないと判別したときにもステップS109に進み、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したか否か判別し、完了してはいないと判別したときには、ステップS101に戻って、次のSAD値を取り込む。また、ステップS109で、ターゲットブロックに対して、全ての参照ブロックとの間のSAD値についての算出処理が完了したと判別したときには、この処理ルーチンを終了する。
この図19の処理フローチャートは、縮小面、中間面および基底面で同様とすることができ、縮小面および中間面では、第1極小値保持部1541に最終的に保持されたSAD値を、SAD値の最小値MinSADとして検出し、それに対応する参照ベクトルを、縮小面動きベクトルMVsおよび中間面動きベクトルMVmとして検出して、出力することができる。
また、基底面では、第1極小値保持部1541に最終的に保持されたSAD値を、SAD値の最小値MinSADとして検出し、それに対応する参照ベクトルを、基底面動きベクトルMVbとして検出して出力することができる。また、基底面では、第1極小値保持部1541に最終的に保持されたSAD値(最小値MinSAD)と、第2極小値保持部1542に最終的に保持されたSAD値(SAD値の第2極小値)とを、動きベクトル信頼性指標値算出部156に供給するようにする。
[グローバル動きベクトル算出部157での処理動作]
この実施形態では、多数個のローカル動きベクトルLMVから、グローバル動きベクトルGVMを算出(グローバルモーションを推定)する場合において、グローバルモーションをアフィン変換で表現する方法を用いる。
図20に、アフィン変換の一般式を、(式3)として示す。この(式3)において、vは、ターゲットブロックの動きベクトルの水平成分、wはターゲットブロックの動きベクトルの垂直成分を示し、a,b,c,d,e,fは、アフィンパラメータを示している。そして、x,yは、ターゲットブロックの中心座標の水平成分、垂直成分を示している。
アフィン変換を、この実施形態に適用した場合、各ターゲットブロックの中心の座標、及び各ターゲットブロックで観測された動きベクトルから、アフィン変換から求められる理想的なベクトルと、観測された動きベクトルのエラーの総和εは、図21の(式4)のように表される。
グローバルモーションを導出するという命題は、上記のエラーの総和εを最小化するアフィンパラメータa〜fの推定であり、これは、最小自乗法によって解くことが可能である。図22〜図24の(式5)〜(式7)には、アフィンパラメータa〜fの導出過程と、その結果を示す。
このように、アフィン変換のパラメータは比較的容易に算出されるが、その効果は大きい。アフィン変換は、平行移動、回転、拡大縮小の他、ある程度の変形にも対応できるため、大抵の手ブレ即ちカメラワークの微少な補正をカバーする。
不特定多数のベクトルから、最も好適なグローバルモーションを導出する手法として、この実施形態では、図25および図26のフローチャートに示す方法を用いる。この方法は、信頼性の高いブロックの中から、動被写体等の、グローバルモーションに適合しにくいブロックを徐々に排除しながら、グローバルモーションのパラメータの収束を図る方法である。
先ず、グローバル動きベクトル算出部157は、保持している複数個のローカル動きベクトルLMVについて、それぞれの動きベクトル信頼性指標値Ftと、予め定めた閾値とを比較して、信頼性の高いローカル動きベクトルLMVのターゲットブロック(以下、説明の簡単のためブロックと記載)のみを選定する(ステップS201)。この処理は、前述の(式2)を用いて説明したように、重み係数Wとして、1と0との2値を用いる場合に相当する。
次に、選定した複数のブロックのローカル動きベクトルLMVのみを用いてグローバル動きベクトルGVMを導出(推定)する(ステップS202)。つまり、グローバル動きベクトルGVMのアフィンパラメータa〜fを算出する。
次に、導出したグローバル動きベクトルGVMに基づいて、ステップS201で選定したブロックのそれぞれの理論上のローカル動きベクトルLMVsを計算する(ステップS203)。
次に、選定した複数のブロックのそれぞれにおいて、ブロックマッチング処理により求めたローカル動きベクトルLMVと、ステップS203で求めた理論上のローカル動きベクトルLMVsとの誤差Enを計算する(ステップS204)。
このブロックマッチングで求めた動きベクトルと理論上の動きベクトルとの誤差計算は、演算の精度を重視するなら、三平方の定理から正しく距離計算を行えば良いが、演算の精度よりも軽さを重要視するなら、水平及び垂直の両者の距離をそれぞれ求め、それらの和を、近似的な距離として用いても良い。
次に、選定した複数のブロックのそれぞれについて求めた誤差Enの全てを用いて、それら全ての誤差の平均値Eaveと、最大値Emaxとを算出する(ステップS205)。そして、平均値Eaveが、それに対して予め定められた閾値θaよりも小さく、且つ、最大値Emaxが、それに対して予め定められた閾値θbよりも小さいか否か判別する(ステップS206)。
ステップS206での判別の結果、条件を満足してはいないと判別したときには、ステップS204で求めた各ブロックの誤差Enの中から、誤差En=Emaxとなるブロックを、グローバル動きベクトルGVMを導出する複数のブロックから排除する、または、誤差En≧θbとなるブロックを検出し、検出したブロックの全てを、グローバル動きベクトルGVMを導出する複数のブロックから排除する(ステップS208)。
次に、ステップS208でのブロック排除の結果、残存するブロックの数が予め定めた数の閾値θcよりも少ないか否か判別し(ステップS209)、残存するブロックの数が閾値θcよりも少なくはないと判別したときには、ステップS202に戻り、残存するブロックを選定したブロックとして、上述したステップS202以降の処理を繰り返す。また、ステップS209で、残存するブロックの数が閾値θcよりも少ないと判別したときには、適切なグローバル動きベクトルGVMが得られないので、対象となっている参照フレームの画像は使用しないとして、当該参照フレームについてのその後を全て行わないようにスキップする(ステップS210)。
そして、図25のステップS206で、平均値Eaveが閾値θaよりも小さく、且つ、最大値Emaxが閾値θbよりも小さいと判別したときには、演算は収束したとして、グローバル動きベクトルGVMをそのときのもので確定し(ステップS207)、この処理ルーチンを終了する。
なお、ステップS208で、誤差Enが最大エラーEmaxのブロックのみを排除するか、誤差Enが閾値θb以上のブロックをまとめて排除するかは、グローバル動きベクトルGVMを求める際の収束の早さと精度のバランスで決めれば良い。精度を優先するなら前者の方式を採用し、エラーブロックを1つずつ排除して行けば良く、収束の早さを優先するなら後者を選択しても構わない。
なお、動き補償画生成部16には、上述のようにして求められたグローバルモーションについてのアフィン変換のパラメータa,b,c,d,e,fが用いられて、図20の(式3)により算出される各ターゲットブロック毎の動きベクトル(理論上のローカル動きベクトルLMVsに相当)が、グローバル動きベクトル算出部15から、グローバル動きベクトルGVMとして供給される。
そして、動き補償画生成部16では、その各ターゲットブロック毎の動きベクトルを用いて、ターゲットブロック毎の動き補償画を生成し、生成したブロック毎の動き補償画を加算部17に供給する。
この実施形態において、前述の図12のノイズの多い画像について求めた各ターゲットブロック毎のグローバル動きベクトルを、図27に示す。
[第2の実施形態]
上述の実施形態では、ローカル動きベクトル算出部154では、階層化ブロックマッチングを行って、基底面におけるローカル動きベクトルLMVを算出した。そして、動きベクトル信頼性指標値算出部156では、当該基底面のローカル動きベクトルLMVの信頼性指標Ftを算出し、グローバル動きベクトル算出部157では、この基底面のローカル動きベクトルLMVについて、その信頼性指標値Ftを用いて信頼性の高いローカル動きベクトルLMVを抽出し、当該信頼性の高いローカル動きベクトルLMVを用いてグローバル動きベクトルGVMを算出するようにした。
ところで、縮小面動きベクトルMVsや中間面動きベクトルMVmを、基底面に対する画像縮小倍率の逆数倍することで、基底面基底面動きベクトルMVbを得ることができる。そこで、グローバル動きベクトルGVMを算出するためには、基底面動きベクトルMVbを求めなくても、縮小面動きベクトルMVsや中間面動きベクトルMVmから、グローバル動きベクトルGVMを求めるようにすることもできる。
例えば、縮小面動きベクトルMVsからグローバル動きベクトルGVMを求める場合には、ローカル動きベクトル算出部154で算出した縮小面におけるローカル動きベクトルLMV(縮小面動きベクトルMVs)について、動きベクトル信頼性指標値算出部156で、当該縮小面のローカル動きベクトルLMV(縮小面動きベクトルMVs)の信頼性指標Ftを算出し、グローバル動きベクトル算出部157で、この縮小面のローカル動きベクトルLMVについて、その信頼性指標値Ftを用いて信頼性の高いローカル動きベクトルLMVを抽出し、当該信頼性の高いローカル動きベクトルLMVを用いてグローバル動きベクトルGVMを算出するようにするようにする。
このように縮小面や中間面のローカル動きベクトルを用いてグローバル動きベクトルGVMを求めるメリットは、次の通りある。
1つは、先に述べたように縮小面や中間面は、その生成にあたってローパスフィルタが施されるため、ノイズが除去され、結果として、得られたローカル動きベクトルがノイズの影響を受けにくい点である。
他の1つは、縮小面や中間面では、ターゲットブロックの数が少なくなるので、ローカル動きベクトルの数は少なくなり、演算コストが小さくなると共に、処理に要する時間や小さいので、処理の高速化が可能であることである。上述の例のように、通常、ハードウェアの制約から、縮小面、中間面、基底面のマッチング処理ブロック単位は同じサイズとなるため、画サイズの小さい縮小面のターゲットブロックの数(=ローカルベクトルの数)は、基底面のみでブロックマッチングを行う場合に較べて相対的に少なくなるからである。
そして、縮小面動きベクトルからグローバル動きベクトルGVMを求める場合には、中間面および基底面での動きベクトル検出処理は省略することができ、この点でも処理の高速化が図れる。
したがって、特に、縮小面動きベクトルを用いてグローバル動きベクトルGVMを求めるようにした場合には、そのメリットは、大きい。
しかし、この縮小面動きベクトルや中間面動きベクトルの精度は、基底面の画像が縮小されているから生成されたものであるので、低精度となっている点を考慮する必要がある。
そこで、この実施形態では、縮小面動きベクトルあるいは中間面動きベクトルを用いる場合には、縮小面あるいは中間面でブロックマッチングをした後、算出された縮小面動きベクトルあるいは中間面動きベクトルで指し示される縮小面参照ブロック位置あるいは中間面参照ブロック位置の近傍の縮小面参照ブロックあるいは中間面参照ブロックのSAD値およびその位置情報を用いて、補間処理を行い、ピクセル精度の縮小面動きベクトルあるいは中間面動きベクトルの検出を行うようにする。縮小面について、以下にこの補間処理を説明する。
例えば、縦および横、ともに1/4に縮小された縮小面でブロックマッチングを行った場合、縮小面動きベクトルは、4ピクセル精度の動きベクトルである。しかし、基底面参照フレームにおいては、縮小面動きベクトルMVsをn倍した動きベクトルの近傍に、1ピクセル精度の基底面動きベクトルMVbが存在することは明らかである。
したがって、図28に示すように、縮小面での最小SAD値601が求まった場合、その近傍の複数個、例えば上下左右に隣接する4個のSAD値602,603,604,605を用いて補間処理を行い、ピクセル精度の動きベクトルの検出をすることを考えることができる。この場合、補間倍率は4倍必要ということになる。
例えば、二次曲線を用いて、SADテーブルを補間することで、例えばnピクセル単位でマッチング処理を行った縮小面SADテーブルから、ピクセル精度の動きベクトルを算出することを考える。この場合において、二次曲線近似補間ではなく、線形補間や、3次以上の高次の近似曲線補間を用いても良いが、精度とハードウエア化との兼ね合いから、この例では、二次曲線近似補間を用いている。
この二次曲線近似補間においては、図28に示すように、nピクセル精度の縮小面動きベクトルが指し示す縮小面SADテーブルのSAD値の最小値Sminと、当該最小値Sminの位置の近傍位置の複数個のSAD値(近傍縮小面SAD値という)、この例では、縮小面において、最小値Sminの位置のX方向(水平方向)およびY方向(垂直方向)に隣接する4個の近傍SAD値Sx1、Sx2およびSy1、Sy2を使用する。
図29に示すように、縮小面SAD値の最小値Sminと、X方向(水平方向)の近傍2点の近傍縮小面SAD値Sx1、Sx2を使って、二次の近似曲線700を当てはめ、この二次曲線700の極小を取る座標が、ピクセル精度のSAD値の最小値SXminとなる縮小面動きベクトル(高精度縮小面動きベクトル)のX座標Vxとなる。このときの二次曲線近似補間の式を、次式の(式8)に示す。
SXmin=1/2×(Sx2−Sx1)/(Sx2−2Smin+Sx1)…(式8)
この計算式(式8)で求めたピクセル精度のSAD値の最小値SXminがSADテーブル上で取るX座標が、ピクセル精度の縮小面SAD値の最小値となるX座標Vxとなる。
この計算式(式8)の割り算は、複数回の引き算で実現可能である。求めたいピクセル精度が、例えば、縮小面における画素ピッチの1/4の画素ピッチの精度であれば、僅か2回の引き算でも求められるため、回路規模、演算時間、共に小さく、二次の近似曲線補間よりもかなり複雑な三次曲線補間と殆ど変わらない性能が実現できる。
同様に、縮小面SAD値の最小値Sminと、Y方向(垂直方向)の近傍2点の近傍縮小面SAD値Sy1、Sy2を使って、二次の近似曲線を当て嵌め、この二次曲線の極小値SYminを取るY座標が、ピクセル精度のSAD値の最小値となるY座標Vyとなる。このときの二次曲線近似補間の式を、次式の(式9)に示す。
SYmin=1/2×(Sy2−Sy1)/(Sy2−2Smin+Sy1)…(式9)
以上のようにして、二次曲線の近似を、X方向およびY方向の2回、行うことで、ピクセル精度の高精度の縮小面動きベクトル(Vx、Vy)が求まる。
以上の説明では、縮小面SAD値の最小値と、そのX方向(水平方向)およびY方向(垂直方向)の近傍2点の縮小面SAD値を使用したが、各方向の近傍の縮小面SAD値は2点以上であってもよい。また、二次曲線をX方向、Y方向に代えて、例えば、斜め方向に近似曲線を当て嵌めてもかまわない。さらに、X方向、Y方向に、斜め方向を加えて近似曲線を当て嵌めてもかまわない。
以上のような手段、手順を用いることにより、nピクセル単位の精度のSADテーブルの値から、ピクセル精度のベクトル検出結果が得られることを図30に示す。図30の横軸は、補間倍率であり、1次元方向に分解能を何倍にするかを表している。SADテーブルは2次元のため、テーブル面積は、この2乗の割合で削減されるのに対し、補間による誤差は、線形程度にしか増加しないことから、上述の補間手法の有用性が分かる。
[他の実施形態および変形例]
上述の実施形態においては、この発明を、静止画撮影時において検出される動きベクトルの信頼性を判定する場合に適用したが、この発明は、動画撮影時において検出される動きベクトルの信頼性を判定する場合にも、勿論適用できる。
また、上述の実施形態では、相関値としては、SAD値を検出するようにしたが、相関値はSAD値に限定されるものではないことは言うまでもない。
また、上述の実施形態では、静止画像についての動き検出処理および画像の重ね合わせ処理は、画像メモリ部4に、複数枚の撮像画像を取り込み、当該取り込んだ複数枚の撮像画像について、上述のような動き検出および画像重ね合わせ処理を行うようにしたが、処理対象の複数枚の画像を、動画撮影時と同様に、リアルタイムで処理するようにすることもできる。
なお、動きベクトルの検出対象となる画像情報は、撮像画像情報に限られるものではないことは言うまでもない。
また、上述の実施形態では、動きベクトルの信頼性の判定を、動きベクトル信頼性指標値に基づいて行うようにしたが、相関値の第1極大値と相関値の第2極大値の差や比のみではなく、当該相関値の第1極大値を取る参照ベクトルと、相関値の第2極大値を取る参照ベクトルとの位置的な異なりをさらに用いて信頼性の判定をしたり、相関値の第3極大値、さらには、それよりもより順位の高位の極大値の値や当該極大値を取る参照ベクトルの位置分布をさらに参照して、信頼性の判定をしたりするようにしてもよい。
また、動きベクトルの信頼性指標値を用いて処理を行う対象としては、ローカル動きベクトルから、グローバル動きベクトルを算出する場合について説明したが、これに限定されるものではない。
例えば、この実施形態で算出された動きベクトルの信頼性指標値が、信頼性が高いことを示しているときには、動きベクトルが精度良く検出できる絵柄、すなわち、特徴的な絵柄となっていることを意味すると考えることができる。したがって、この実施形態で算出された動きベクトルの信頼性指標値を、画像内容として特徴部分を抽出する用途に適用することができる。
もしも、画像内容として特徴部分を抽出する処理対象の画像情報が、上述した例の撮像画像のように、連写により取り込まれた複数枚の画像情報である場合には、異なるフレームの画像の1つをターゲット画像(ターゲットフレーム)、他の一つを参照画像(参照フレーム)とすればよい。
また、1枚の静止画像を処理対象とする場合には、図31に示すようにすれば良い。すなわち、処理対象の画像801を、ターゲット画像802とすると共に、参照画像803とする。そして、前述と同様にして、それらターゲット画像802と参照画像803について、ターゲットブロック単位のマッチング処理を、マッチング処理部804で実行する。ここで、ターゲットブロックの大きさは、特徴部分として抽出したい画像部分の大きさに設定する。
そして、マッチング処理部804からの評価値出力、例えばSAD値を、前述の実施形態と同様にローカル動きベクトル検出部805に供給する。ローカル動きベクトル検出部805では、前述と同様にして、ローカル動きベクトルLMVを検出し、それを特徴ブロック算出部807に供給する。また、ローカル動きベクトル検出部805は、SAD値の最小値MinSADおよび第2極小値Btm2SADを、動きベクトル信頼性指標値算出部806に供給する。
動きベクトル信頼性指標値算出部806は、前述と同様にして、ターゲットブロック単位のローカル動きベクトルLMVの信頼性の指標値Ftを算出し、特徴ブロック算出部807に供給する。
特徴ブロック算出部807は、各ターゲットブロック毎のローカル動きベクトルLMVについて、その信頼性の指標値Ftに基づいて、信頼性を評価する。そして、ローカル動きベクトルLMVの信頼性の高いターゲットブロックを、特徴ブロックであるとする特徴ブロック算出結果を出力する。
なお、マッチング処理部804、ローカル動きベクトル算出部805および動きベクトル信頼性指標値算出部806は、前述の実施形態のマッチング処理部153、ローカル動きベクトル算出部154および動きベクトル信頼性指標値算出部156と、全く同様に構成することができるものである。
したがって、この例の場合においても、ローカル動きベクトルLMVを算出するためのマッチング処理は、縮小面でのみ行っても良いし、中間面あるいは基底面まで処理を行っても良い。
この発明による画像処理装置の実施形態が適用される撮像装置の構成例を示すブロック図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するために用いる図である。 この発明による画像処理装置の実施形態におけるブロックマッチング処理を説明するためのブロック図である。 この発明による画像処理装置の実施形態が適用される撮像画像の例を示す図である。 この発明による画像処理装置の実施形態において検出されたローカル動きベクトルを、画像上に対応付けて示した図である。 この発明による画像処理装置の実施形態の要部を説明するために用いる図である。 この発明による画像処理装置の実施形態の要部を説明するために用いる図である。 この発明による画像処理装置の実施形態において、信頼性が高いとされたローカル動きベクトルを、画像上に対応付けて示した図である。 この発明による画像処理装置の実施形態の要部の構成例を説明するためのブロック図である。 図17の構成例を説明するために用いる図である。 この発明による画像処理装置の実施形態の要部の構成例による処理例を説明するためのフローチャートである。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するために用いる式を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するためのフローチャートの一部を示す図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルからグローバル動きベクトルを求める処理例を説明するためのフローチャートの一部を示す図である。 この発明による画像処理装置の実施形態において、算出されたグローバルモーションから求められたブロック単位の動きベクトルを、画像上に対応付けて示した図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。 この発明による画像処理装置の実施形態において、ローカル動きベクトルを求める処理の他の例を説明するための図である。 この発明による画像処理装置の他の実施形態の要部を説明するためのブロック図である。
符号の説明
15…グローバル動きベクトル検出部、153…マッチング処理部、154…ローカル動きベクトル算出部、156…動きベクトル信頼性指標値算出部、157…グローバル動きベクトル演算部

Claims (11)

  1. ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、
    前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、
    前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、
    前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、
    を有し、
    前記グローバル動きベクトル算出部は、
    前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、
    前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、
    前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、
    前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、
    全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、
    前記条件を満たした場合のグローバル動きベクトルを出力する
    画像処理装置。
  2. 前記グローバル動きベクトル算出部は、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合に、誤差値が前記第3のしきい値より大きい動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す
    請求項1に記載の画像処理装置。
  3. 前記動きベクトルの信頼性の指標としての前記差の値に、前記ターゲット画面の画像のコントラスト分を加味する
    請求項1に記載の画像処理装置。
  4. 前記ローカル動きベクトル検出手段は
    元の画像である基底面予め決定された第1の倍率で縮小した画像である中間面、及び、当該中間面を予め決定された第2の倍率で縮小した画像である縮小面を前記ターゲット画面とし、
    縮小面におけるターゲット画面において縮小面ターゲットブロックを設定すると共に縮小面における参照画面において縮小面参照ブロックを設定し、前記縮小面ターゲットブロックと前記縮小面参照ブロックとを基に縮小面動きベクトルを検出した後、
    中間面におけるターゲット画面における、前記縮小面ターゲットブロックに対応する領域に中間面ターゲットブロックを設定すると共に、中間面における参照画面において、前記縮小面動きベクトルを中心とした中間面サーチ範囲を設定し、当該中間面サーチ範囲内に中間面参照ブロックを設定して、前記中間面ターゲットブロックと前記中間面参照ブロックとを基に中間面動きベクトルを検出し、
    さらに、基底面におけるターゲット画面における、前記中間面ターゲットブロックに対応する領域に基底面ターゲットブロックを設定すると共に、基底面における参照画面において、前記中間面動きベクトルを中心とした基底面サーチ範囲を設定し、当該基底面サーチ範囲内に基底面参照ブロックを設定して、前記基底面ターゲットブロックと前記基底面参照ブロックとを基に基底面動きベクトルを検出し、
    前記縮小面動きベクトルと、前記中間面動きベクトルと、前機器底面動きベクトルとの合成ベクトルを、前記基底面におけるローカルベクトルとして検出する
    請求項1に記載の画像処理装置。
  5. 前記動きベクトル検出手段においては、前記相関値の最大値と、前記相関値の最大値のブロックの近傍の参照ブロックについて求められた相関値とを用いて補間処理を行い、その補間処理結果に基づいて前記動きベクトルを検出する
    請求項に記載の画像処理装置。
  6. 前記相関値算出手段では、1枚の処理対象画面を、前記ターゲット画面および前記参照画面として、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める処理を行う
    請求項1に記載の画像処理装置。
  7. 相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、
    前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の工程と、
    ローカル動きベクトル検出手段が、前記第1の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の工程と、
    前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の工程と、
    前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の工程と、
    を有し、
    前記第4の工程は、
    前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の工程と、
    前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の工程と、
    前記グローバル動きベクトル検出手段が、前記第6の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の工程と、
    前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックにおける、前記第2の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の工程と、
    前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の工程と、
    前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第10の工程と、
    を有する画像処理方法。
  8. ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の手順と、
    前記第1の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の手順と、
    前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の手順と、
    前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の手順と、
    を有し、
    前記第4の手順は、
    前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の手順と、
    前記第5の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の手順と、
    前記第6の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の手順と、
    前記第5の手順において選定したターゲットブロックにおける、前記第2の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の手順と、
    全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値の最大値を有するローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の手順と、
    前記条件を満たした場合のグローバル動きベクトルを出力する第10の手順と、
    を画像処理装置が有するコンピュータに実行させるプログラム。
  9. ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める相関値算出手段と、
    前記相関値算出手段で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出するローカル動きベクトル検出手段と、
    前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記ローカル動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する信頼性指標値算出手段と、
    前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出するグローバル動きベクトル算出部と、
    を有し、
    前記グローバル動きベクトル算出部は、
    前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定し、
    前記選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出し、
    前記導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出し、
    前記選定したターゲットブロックにおいて、前記ローカル動きベクトル検出手段が検出したローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出し、
    全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返し、
    前記条件を満たした場合のグローバル動きベクトルを出力する
    画像処理装置。
  10. 相関値算出手段と、ローカル動きベクトル検出手段と、信頼性指標値算出手段と、グローバル動きベクトル検出手段と、を有する画像処理装置の画像処理方法であって、
    前記相関値算出手段が、ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の工程と、
    ローカル動きベクトル検出手段が、前記第1の工程で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の工程と、
    前記信頼性指標値算出手段が、前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の工程と、
    前記グローバル動きベクトル検出手段が、前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の工程と、
    を有し、
    前記第4の工程は、
    前記グローバル動きベクトル検出手段が、前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の工程と、
    前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の工程と、
    前記グローバル動きベクトル検出手段が、前記第6の工程において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の工程と、
    前記グローバル動きベクトル検出手段が、前記第5の工程において選定したターゲットブロックにおける、前記第2の工程において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の工程と、
    前記グローバル動きベクトル検出手段が、全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の工程と、
    前記グローバル動きベクトル検出手段が、前記条件を満たした場合のグローバル動きベクトルを出力する第10の工程と、
    を有する画像処理方法。
  11. ターゲット画面中において前記ターゲット画面を水平方向および垂直方向に複数個に分割した、複数の画素からなるターゲットブロックと同じ大きさの参照ブロックを、前記ターゲット画面とは異なる参照画面において設定したサーチ範囲において複数個設定し、前記ターゲットブロックと前記複数個の参照ブロックとの相関値を求める第1の手順と、
    前記第1の手順で算出された相関値の最大値と、前記最大値を除く相関値のうちの極大値とを求め、前記相関値の最大値が算出された前記参照ブロックの前記ターゲットブロックに対するずれとして前記ターゲットブロックの動きベクトルであるローカル動きベクトルを検出する第2の手順と、
    前記相関値の最大値と、前記最大値を除く相関値のうちの極大値との差または比を、前記動きベクトル検出手段で検出した前記動きベクトルの信頼性の指標として算出する第3の手順と、
    前記複数個のターゲットブロックのそれぞれの動きベクトルの信頼性を、前記信頼性の指標を用いて判定し、信頼性の高いベクトル前記ローカル動きベクトルのみを用いて、前記ターゲット画面全体に対する動きベクトルであるグローバル動きベクトルを算出する第4の手順と、
    を有し、
    前記第4の手順は、
    前記信頼性の指標が予め決定された第1のしきい値よりも大きいローカル動きベクトルのターゲットブロックを、信頼性が高いローカル動きベクトルのターゲットブロックとして選定する第5の手順と、
    前記第5の手順において選定したターゲットブロックのローカル動きベクトルのみを用いてグローバル動きベクトルを導出する第6の手順と、
    前記第6の手順において導出したグローバル動きベクトルを基に、アフィン変換行列により理論上のローカル動きベクトルを算出する第7の手順と、
    前記第5の手順において選定したターゲットブロックにおける、前記第2の手順において検出されたローカル動きベクトルと、前記理論上のローカル動きベクトルとの誤差値を算出する第8の手順と、
    全ての前記選定したターゲットブロックにおける前記誤差値の平均値と、最大値を算出し、前記誤差値の平均値が予め決定された第2のしきい値より小さく、かつ、前記誤差値の最大値が予め決定された第3のしきい値より小さいという条件を満たすか否かを判定し、当該条件を満たさないと判定した場合には、前記誤差値が前記第3のしきい値より大きい全てのローカル動きベクトルのターゲットブロックを排除して前記条件を満たすまで上記処理を繰り返す第9の手順と、
    前記条件を満たした場合のグローバル動きベクトルを出力する第10の手順と、
    を画像処理装置が有するコンピュータに実行させるプログラム。
JP2008063560A 2008-03-13 2008-03-13 画像処理装置、画像処理方法及びプログラム Expired - Fee Related JP4623111B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008063560A JP4623111B2 (ja) 2008-03-13 2008-03-13 画像処理装置、画像処理方法及びプログラム
EP20090003533 EP2101486B1 (en) 2008-03-13 2009-03-11 Image processing apparatus and image processing method
US12/401,961 US8611424B2 (en) 2008-03-13 2009-03-11 Image processing apparatus and image processing method
CN2009101271283A CN101534447B (zh) 2008-03-13 2009-03-12 图像处理装置和图像处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008063560A JP4623111B2 (ja) 2008-03-13 2008-03-13 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009219082A JP2009219082A (ja) 2009-09-24
JP4623111B2 true JP4623111B2 (ja) 2011-02-02

Family

ID=40718643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008063560A Expired - Fee Related JP4623111B2 (ja) 2008-03-13 2008-03-13 画像処理装置、画像処理方法及びプログラム

Country Status (4)

Country Link
US (1) US8611424B2 (ja)
EP (1) EP2101486B1 (ja)
JP (1) JP4623111B2 (ja)
CN (1) CN101534447B (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4964937B2 (ja) * 2009-10-06 2012-07-04 株式会社ナナオ 動きベクトル検出装置、フレーム補間処理装置およびそれらの方法
CN102656876A (zh) * 2009-10-14 2012-09-05 Csr技术公司 用于图像稳定的方法和装置
US8694985B2 (en) * 2009-10-30 2014-04-08 Apple Inc. Managing digital content in hierarchies
JP5740844B2 (ja) * 2009-11-24 2015-07-01 株式会社リコー 撮像装置、画像処理方法、及び、コンピュータプログラム
US8594199B2 (en) * 2010-03-08 2013-11-26 Qualcomm Incorporated Apparatus and method for motion vector filtering based on local image segmentation and lattice maps
US9131155B1 (en) 2010-04-07 2015-09-08 Qualcomm Technologies, Inc. Digital video stabilization for multi-view systems
JP5441803B2 (ja) * 2010-04-12 2014-03-12 キヤノン株式会社 動きベクトル決定装置及び動きベクトル決定方法、コンピュータプログラム
JP5091994B2 (ja) * 2010-09-02 2012-12-05 株式会社東芝 動きベクトル検出装置
JP2012151796A (ja) 2011-01-21 2012-08-09 Sony Corp 画像処理装置と画像処理方法およびプログラム
JP2012186593A (ja) * 2011-03-04 2012-09-27 Sony Corp 画像処理装置、および画像処理方法、並びにプログラム
JP5470529B2 (ja) * 2011-03-22 2014-04-16 株式会社モルフォ 動き検出装置、動き検出方法及び動き検出プログラム
US8989448B2 (en) 2011-03-22 2015-03-24 Morpho, Inc. Moving object detecting device, moving object detecting method, moving object detection program, moving object tracking device, moving object tracking method, and moving object tracking program
JP5687553B2 (ja) * 2011-04-25 2015-03-18 オリンパス株式会社 画像合成装置、画像合成方法及び画像合成プログラム
JP2013041387A (ja) * 2011-08-15 2013-02-28 Sony Corp 画像処理装置、画像処理方法、撮像装置、電子機器、及び、プログラム
JP6144878B2 (ja) * 2012-04-27 2017-06-07 キヤノン株式会社 画像処理装置およびそれを備える撮像装置、ならびに画像処理方法およびそのプログラム
JP6074198B2 (ja) * 2012-09-12 2017-02-01 キヤノン株式会社 画像処理装置及び画像処理方法
JP2014143530A (ja) * 2013-01-23 2014-08-07 Sony Corp 情報処理装置と情報処理方法および撮像装置
US9213901B2 (en) * 2013-09-04 2015-12-15 Xerox Corporation Robust and computationally efficient video-based object tracking in regularized motion environments
JP5968379B2 (ja) 2013-10-29 2016-08-10 キヤノン株式会社 画像処理装置およびその制御方法
US9426365B2 (en) * 2013-11-01 2016-08-23 The Lightco Inc. Image stabilization related methods and apparatus
US10021396B1 (en) * 2014-12-30 2018-07-10 Ambarella, Inc. Motion detection based on observing several pictures
JP6433389B2 (ja) * 2015-08-04 2018-12-05 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP2017130794A (ja) * 2016-01-20 2017-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、評価用チャート、評価システム、および性能評価方法
EP3255607B1 (en) * 2016-06-08 2020-05-13 Esaote S.p.A. Method and system for estimating motion between images, particularly in ultrasound spatial compounding
CN109328454B (zh) * 2017-05-30 2020-06-12 奥林巴斯株式会社 图像处理装置
CN109672818B (zh) * 2017-10-16 2020-12-22 华为技术有限公司 一种调整图像质量的方法及装置
JP7009252B2 (ja) * 2018-02-20 2022-01-25 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP7009253B2 (ja) * 2018-02-20 2022-01-25 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
US11006122B2 (en) 2018-03-11 2021-05-11 Google Llc Static video recognition
WO2019191867A1 (zh) 2018-04-02 2019-10-10 华为技术有限公司 一种视频编解码方法和装置
FR3090969B1 (fr) * 2018-12-21 2022-06-03 Naval Group Dispositif et procédé d’estimation de mouvement d’un capteur d’images entre deux images, programme d’ordinateur associé
JP6771674B1 (ja) * 2019-01-09 2020-10-21 三菱電機株式会社 制御装置および制御方法
KR20210153128A (ko) * 2019-04-25 2021-12-16 오피 솔루션즈, 엘엘씨 인터 예측에서의 병합 모드 후보들에 대한 글로벌 모션
CN111047614B (zh) * 2019-10-10 2023-09-29 南昌市微轲联信息技术有限公司 一种基于特征提取的复杂场景图像的目标角点提取方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229795A (ja) * 1990-07-24 1992-08-19 Sony Corp 動きを補正した映像方式変換装置
JPH06203164A (ja) * 1992-12-28 1994-07-22 Canon Inc 動きベクトル検出装置
JP2002016836A (ja) * 2000-06-29 2002-01-18 Toshiba Corp 撮像装置の揺れ補正装置及び方法
JP2003078807A (ja) * 2001-08-31 2003-03-14 Sony Corp 動きベクトル検出装置および方法、手振れ補正装置および方法、並びに撮像装置
JP2005057694A (ja) * 2003-08-07 2005-03-03 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および方法並びにコンピュータプログラムおよびその記録媒体
JP2007043651A (ja) * 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07250328A (ja) * 1994-01-21 1995-09-26 Mitsubishi Electric Corp 動きベクトル検出装置
JPH0865681A (ja) * 1994-08-25 1996-03-08 Sony Corp 動きベクトル検出装置およびそれを使用した動き補償予測符号化システム
JP4356140B2 (ja) * 1999-05-20 2009-11-04 富士通株式会社 画像の動きベクトル計測方法及び装置
US6532264B1 (en) * 2000-03-27 2003-03-11 Teranex, Inc. Processing sequential video images to detect image motion among interlaced video fields or progressive video images
JP4617883B2 (ja) 2004-01-06 2011-01-26 ソニー株式会社 画像処理装置および方法、プログラム並びに記録媒体
JP4626158B2 (ja) * 2004-03-01 2011-02-02 ソニー株式会社 動きベクトル検出装置、および動きベクトル検出方法、並びにコンピュータ・プログラム
JP4687994B2 (ja) * 2004-04-09 2011-05-25 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US7649549B2 (en) * 2004-09-27 2010-01-19 Texas Instruments Incorporated Motion stabilization in video frames using motion vectors and reliability blocks
US20060065631A1 (en) 2004-09-27 2006-03-30 Chia-Cheng Cheng Methods and apparatus for monitoring a process in a plasma processing system by measuring impedance
JP2006318345A (ja) 2005-05-16 2006-11-24 Sony Corp 物体追跡方法、物体追跡方法のプログラム、物体追跡方法のプログラムを記録した記録媒体及び物体追跡装置
KR20070055212A (ko) * 2005-11-25 2007-05-30 삼성전자주식회사 프레임 보간장치, 프레임 보간방법 및 움직임 신뢰성평가장치
JP4304528B2 (ja) * 2005-12-01 2009-07-29 ソニー株式会社 画像処理装置および画像処理方法
US8068543B2 (en) * 2006-06-14 2011-11-29 Samsung Electronics Co., Ltd. Method and system for determining the reliability of estimated motion vectors
US7877690B2 (en) 2006-09-20 2011-01-25 Adobe Systems Incorporated Media system with integrated clip views

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229795A (ja) * 1990-07-24 1992-08-19 Sony Corp 動きを補正した映像方式変換装置
JPH06203164A (ja) * 1992-12-28 1994-07-22 Canon Inc 動きベクトル検出装置
JP2002016836A (ja) * 2000-06-29 2002-01-18 Toshiba Corp 撮像装置の揺れ補正装置及び方法
JP2003078807A (ja) * 2001-08-31 2003-03-14 Sony Corp 動きベクトル検出装置および方法、手振れ補正装置および方法、並びに撮像装置
JP2005057694A (ja) * 2003-08-07 2005-03-03 Matsushita Electric Ind Co Ltd 動きベクトル検出装置および方法並びにコンピュータプログラムおよびその記録媒体
JP2007043651A (ja) * 2005-07-05 2007-02-15 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法、動画像符号化プログラム、動画像復号装置、動画像復号方法及び動画像復号プログラム

Also Published As

Publication number Publication date
US8611424B2 (en) 2013-12-17
EP2101486A3 (en) 2010-04-14
CN101534447A (zh) 2009-09-16
US20090232216A1 (en) 2009-09-17
EP2101486A2 (en) 2009-09-16
EP2101486B1 (en) 2011-06-08
JP2009219082A (ja) 2009-09-24
CN101534447B (zh) 2012-06-06

Similar Documents

Publication Publication Date Title
JP4623111B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP4544334B2 (ja) 画像処理装置および画像処理方法
JP4506875B2 (ja) 画像処理装置および画像処理方法
JP4645746B2 (ja) 画像処理装置、画像処理方法および撮像装置
JP2009290827A (ja) 画像処理装置および画像処理方法
JP4760923B2 (ja) 画像処理装置、画像処理方法および撮像装置
JP4882956B2 (ja) 画像処理装置および画像処理方法
US7646891B2 (en) Image processor
JP5359783B2 (ja) 画像処理装置および方法、並びにプログラム
JP4893758B2 (ja) 画像処理装置、画像処理方法および撮像装置
RU2433563C1 (ru) Устройство и способ для оценки перемещения вследствие дрожания рук и использующее их устройство получения изображений
JP5569357B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
WO2011129249A1 (ja) 画像処理装置、撮像装置、プログラム及び画像処理方法
US20100209009A1 (en) Image capturing device, image capturing method, and storage medium having stored therein image capturing program
CN110969575B (zh) 自适应图像拼接的方法及图像处理装置
JP2009105533A (ja) 画像処理装置、撮像装置、画像処理方法および撮像画像処理方法
JP2010187348A (ja) 画像処理装置、画像処理方法、画像処理プログラム
US20120057747A1 (en) Image processing system and image processing method
JP2010016580A (ja) 画像処理装置および画像処理方法
JP4998134B2 (ja) 画像処理装置および画像処理方法
KR20090109504A (ko) 화상 처리 장치 및 화상 처리 방법

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090807

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100419

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101018

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

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees