説明

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

【課題】動き補償誤差を適切に減少させ、回路規模や計算量を大きく増加させることなく揺れを少なくしつつノイズを除去した動画像を得る。
【解決手段】基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理装置は、前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出部(102)と、前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出部(120)であって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出部と、前記動きベクトル算出部により算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償部(106)と、前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算部(108)と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、画像処理プログラム、及び、撮像装置に関する。
【背景技術】
【0002】
従来の動画像のノイズ除去技術として、巡回型のノイズリダクション技術がある。この技術は、入力フレーム画像と処理済みの前フレーム画像との間で動き補償を行い、各画素に関する動き補償の信頼度を周辺画素の差分量から算出する。信頼度と動き量とノイズ推定量に応じて導出された加重加算比率(混合比率)で、入力フレーム画像(現フレーム画像)と前フレーム画像は、加重加算される(特許文献1、2参照)。
【0003】
近年の動画記録の高画素化・高フレームレート化により、画素毎に(画素単位で)動き検出することは、回路規模や計算時間が多大となってしまう。一方、複数の離散点での動き検出に基づいて動き補償することで回路規模や計算量が減少するが、この場合、動き検出ひいては動き補償に誤差が生じる。また、高速に動き検出できるブロックマッチング法などでは、レンズ歪みやローリングシャッター等の影響により動き検出に誤差が生じる。さらにノイズの影響によっても、動き検出に誤差が生じる。そのため、従来のノイズ除去技術は、加重加算時に残像やアーティファクトが発生しないように、動き補償の信頼度が高いほど程、前フレーム画像の加算比率を高くし、動き補償の信頼度が低いほど、前フレーム画像の加算比率を低くする。なお、動き補償の信頼度は、動き補償した画像間の差分絶対値和(SAD)などの相違度の評価値から算出でき、差分絶対値和が小さいほど信頼度は増加し、差分絶対値和が大きいほど信頼度は減少する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4321626
【特許文献2】特開2010−147986
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、画像中の低、中、高の各コントラスト部分では、同じ動き検出誤差、例えば+方向0.5ピクセルの動き量又は動きベクトルの誤差があった場合でも、画像間の差分絶対値和(SAD)の値に対する誤差の影響が著しく異なる。コントラストが高い部分ほど、誤差の影響で差分絶対値和は大きくなってしまう。そのため、異なるコントラストの部分が密接した被写体の場合、動き検出誤差があると、低中コントラスト部分は、前フレーム画像の加算比率が高くなるよう加重加算されても、高コントラスト部分は現フレームの加算比率が高くなるよう加重加算される。
【0006】
静止物体がパン/チルト撮影される場合において、一様なパンチルトの動き量が変化して、高コントラスト部分に対する低中コントラスト部分の動き検出誤差(即ち動き補償誤差)が+0.5ピクセルから−0.5ピクセルへ急激に変わることがある。この場合、巡回型のノイズリダクションでは、高コントラスト部分は、差分絶対値和(SAD)が大きいので誤差がない現フレーム画像の位置にあるために、動画像として見た際に低中コントラスト部は揺れてしまうという問題が発生する。
【0007】
本発明は、上記の問題に鑑みて、動き補償誤差を適切に減少させ、回路規模や計算量を大きく増加させることなく揺れを少なくしつつノイズを除去した動画像を得ることを目的とする。
【課題を解決するための手段】
【0008】
本発明のある態様に係る画像処理装置は、基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理装置であって、前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出部と、前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出部であって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出部と、前記動きベクトル算出部により算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償部と、前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算部と、を備える。
【0009】
本発明の別の態様に係る画像処理方法は、基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理方法であって、前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出ステップと、前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出ステップであって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出ステップと、前記動きベクトル算出ステップにより算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償ステップと、前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算ステップと、を含む。
【0010】
本発明のさらに別の態様に係る画像処理プログラムは、基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理プログラムであって、前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出手順と、前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出手順であって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出手順と、前記動きベクトル算出手順により算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償手順と、前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算手順と、をコンピュータに実行させる。
【発明の効果】
【0011】
本発明によると、コントラストに応じた算出方法で動きベクトルを算出でき、動き補償誤差をコントラストに応じて減少できる。このため、回路規模や計算量を大きく増加させることなく、揺れを少なくしつつノイズを除去した動画像を得ることができる。
【図面の簡単な説明】
【0012】
【図1】第一実施形態に係る画像処理装置を示すブロック図である。
【図2】動き補償の信頼度と加重加算比率との関係を示すグラフである。
【図3】加重加算処理を示すシーケンス図である。
【図4】(a)各動きベクトル測定領域で測定された動きベクトルを示す図である。(b)低コントラスト領域の動きベクトルを除去する様子を示す図である。(c)動きベクトルの統計処理を示す図である。
【図5】(a)現フレーム画像を例示する図である。(b)前フレーム画像を例示する図である。(c)第二動きベクトルの測定領域と探索領域を示す図である。
【図6】第二動きベクトルを使用するコントラスト値の範囲を示す図である。
【図7】第二実施形態に係る画像処理装置を示すブロック図である。
【図8】(a)第一動きベクトルが選択される場合の近隣領域のコントラスト値を示す図である。(b)第二動きベクトルが選択される場合の近隣領域のコントラスト値を示す図である。
【図9】第三実施形態に係る画像処理装置を示すブロック図である。
【図10】(a)近隣領域における第二動きベクトルを示す一例である。(b)近隣領域における第二動きベクトルを示す他の例である。(c)第二動きベクトルの方向変動量の一例を示す図である。(d)第二動きベクトルの方向変動量の他の例を示す図である。
【図11】第一実施形態に対応する画像処理プログラムを示すフローチャートである。
【図12】第二実施形態に対応する画像処理プログラムを示すフローチャートである。
【図13】第三実施形態に対応する画像処理プログラムを示すフローチャートである。
【発明を実施するための形態】
【0013】
[第一実施形態]
図1は、第一実施形態に係る画像処理装置のブロック構成図を示す。本実施形態では、画像処理装置は、撮像装置に搭載されている。撮像装置は、電子機器の一例として示すものであり、例えば、ビデオカメラ、電子スチルカメラなどである。
【0014】
撮像装置は、撮像部100と画像処理装置200とフレームメモリ300を備える。画像を撮影する撮像部100は、画像処理装置200へ画像(画像データ)を入力する画像入力部として機能する。フレームメモリ300などのメモリは、画素(対象画素)ごとの画素値を記憶して、画素値をまとめてノイズを除去した画像として外部へ出力する。
【0015】
撮像部100は、撮像光学系、撮像素子、A/D変換回路などを備える。画像処理装置200は、第一動きベクトル算出部101(第一動きベクトル算出手段)、コントラスト算出部102(コントラスト算出手段)、条件判定部103(条件判定手段)、第二動きベクトル算出部105(第二動きベクトル算出手段)、動き補償部106(動き補償手段)、信頼度算出部107(信頼度算出手段)、加重加算部108(加算比率算出手段)、制御スイッチ部104(切換え部、切換え手段)を備える。第一動きベクトル算出部101と制御スイッチ部104と第二動きベクトル算出部105は、動きベクトル算出部120を構成する。なお、画像処理装置200の上記の各部(又はこれら全体)は、ASIC、FPGAなどの論理回路から構成されてよい。或いは、画像処理装置200の上記の各部(又はこれら全体)は、データを格納するメモリ、演算プログラムを格納するメモリ、この演算プログラムを実行するCPU/DSP(中央演算処理装置/デジタルシグナルプロセッサ)等から構成されてもよい。
【0016】
フレームメモリ300は、撮像部100により撮像されフレームメモリ300に出力された現フレーム画像の画素値と、加重加算部108から出力された前フレーム画像の画素値とを画素値データ(画像データ)として保存する。
【0017】
フレームメモリ300に保存された前フレーム画像と現フレーム画像は、第一動きベクトル算出部101に入力され、それぞれ、参照画像と基準画像として使用される。ここで、「前フレーム画像」は、前回の画像処理装置200の処理で、加重加算部108から出力されフレームメモリ300に記憶された画像である。「現フレーム画像」は、今回の画像処理装置200の処理で、加重加算の対象となる撮像部100で撮像された画像(合成前の画像)である。
【0018】
第一動きベクトル算出部101は、テンプレートマッチング法により、入力された2フレームの画像間の第一動きベクトルV1を算出し、制御スイッチ部104へ出力する。フレームメモリ300に保存されている2フレームのうち、基準となる現フレーム画像(基準画像)における処理対象である対象画素の近辺の小領域は、コントラスト算出部102に入力される。この小領域は、加重加算の対象となっている対象画素を中心とし、画像全体に比較して小さな所定のサイズの領域であって、例えば、3×3ピクセル、5×5ピクセルの領域である。第二動きベクトル算出部105は、第一動きベクトル算出部101で算出された第一動きベクトルV1に基づいて、再度、第二動きベクトルV2を算出して、動き補償部106へ出力する。
【0019】
コントラスト算出部102は、対象画素のコントラストを算出し、条件判定部104へと出力する。条件判定部104は、制御スイッチ部104をコントラストの大きさに応じて制御する。
【0020】
動き補償部106は、第一動きベクトルV1又は第二動きベクトルV2に基づいて動き(位置ずれ)を補償して、参照画像としての前フレーム画像を、基準画像としての現フレーム画像に位置合わせする。さらに、動き補償部106は、現フレーム画像の小領域、及び、現フレーム画像に位置合わせして動き補償した前フレーム画像の小領域を切り出す。前フレーム画像の小領域は、現フレーム画像の小領域に対応し、これらの小領域は、それぞれ参照領域と基準領域と呼ばれることがある。これらの小領域は、加重加算の対象となっている対象画素を中心とし、画像全体に比較して小さな所定のサイズの領域であって、例えば、3×3ピクセル、5×5ピクセルの領域であるが、コントラスト算出部102に入力される小領域とサイズが異なってもよい。動き補償部106は、第一動きベクトルV1と第二動きベクトルV2のうちから選択された動きベクトルを相殺するように、この選択された動きベクトルに基づいて前フレーム画像の小領域の切り出し位置を決定する。
【0021】
信頼度算出部107は、動き補償部106によって位置合わせされ抽出された現フレーム画像の小領域と前フレーム画像の小領域との間の相違度(差分の絶対値和SADなど)を算出する。信頼度算出部107は、相違度や類似度が評価できる差の2乗和(SSD)や正規化相互相関(NCC)などを算出しても良い。さらに、信頼度算出部107は、算出された相違度から動き補償の信頼度R(即ち、動きベクトルの信頼度R)を算出して、加重加算部108へ出力する。なお、SADやSSDが相違度として使用される場合、信頼度Rは、相違度が小さいほど高くなり、相違度が大きいほど低くなるように算出される。例えば、信頼度Rは、相違度が大きいほど値が小さくなる関数を用いて計算できる。
【0022】
加重加算部108は、入力された信頼度Rに基づいて、現フレーム画像の対象画素(小領域の中心画素)とこれに位置合せにより対応する前フレーム画像の対応画素との加算比率を算出する。前フレーム画像の対応画素の加算比率をαとすると、現フレーム画像の対象画素の加算比率は(1−α)となる。加重加算部108は、算出された加算比率によってこれら対象画素と対応画素を加重加算して、フレームメモリ300に出力して保存する。加重加算として、対象画素と対応画素の加算比率を重みとして、重み付き加算又は加重平均が行われる。
【0023】
図2は、信頼度Rと加算比率との関係を表す関数を示すグラフである。図2に示すように、加重加算部108は、信頼度Rとこの関数に基づいて、前フレーム画像の対応画素の加算比率αと、現フレーム画像の対象画素の加算比率(1−α)を決定する。図2の実線のように、前フレーム画像の加算比率αは、信頼度Rが低いほど小さくなる。図2の破線のように、現フレーム画像の加算比率(1−α)は、信頼度Rが低いほど大きくなる。加重加算部108は、決定された加算比率で現フレーム画像の対象画素と前フレーム画像の対応画素とを加重加算してブレンド合成する。
【0024】
加重加算部108は、現フレーム画像の各画素に加重加算を施してフレームメモリ300に出力する。フレームメモリ300は、全画素について加重加算が施されたものを現フレーム画像の出力画像(合成画像)として保存する。この出力画像は、次のフレーム処理で使用する前フレーム画像として使用される。また、フレームメモリ300に保存された出力画像は、さらに、記録媒体(メモリカード)などに出力され記録されるか、又は、表示部(液晶モニタ等)に出力され表示されてもよい。
【0025】
図3は、第一実施形態に係る処理シーケンス図を示す。複数の画像を連続して撮像する動画撮像の際、一枚目の入力画像は、そのまま出力画像となる。2枚目の入力画像が撮像されたら、保存してある一枚目の出力画像(前フレーム画像)と2枚目の入力画像(現フレーム画像)とが、加重加算され合成画像が生成される。合成画像が2枚目の出力画像となる。図3に示すように、3枚目の入力画像以降も、2枚目の入力画像と同様に加重加算が行われる。
【0026】
コントラスト算出部102におけるコントラスの算出方法について説明する。例えば、コントラスト算出部102は、現フレーム画像の輝度のうち、対象画素を含む小領域内での輝度の平均値を求め、その平均値と小領域内の各画素の輝度との差分量(差の絶対値)を算出し、その差分量が最大のものを対象画素に関するコントラスト値CNとする。また、例えば、コントラスト算出部102は、現フレーム画像の輝度のうち、対象画素を含む小領域内で最も低い輝度と最も高い輝度との差を、対象画素に関するコントラスト値CNとしてもよい。これら二つの場合、コントラスト値CNは、0から255までの範囲の値としてよい。
【0027】
さらに、例えば、コントラスト算出部102は、現フレーム画像のうち対象画素を含む小領域において、エッジを抽出するフィルタ(微分フィルタ、ソーベルフィルタ、ラプラシアンフィルタなど)を各画素にかかるようにフィルタ処理し、小領域内の各エッジ量の合計を正規化したものを、対象画素に関するコントラスト値CNとしてもよい。この場合の正規化は、他の手法によるコントラスト値CNと同一の尺度になるように、0から255までの範囲の値になるように正規化すればよい。
【0028】
なお、前述した3つのコントラスト算出方法において、現フレーム画像の輝度が利用されるが、画素の明度を示すような量、例えば三原色RGBのうちのGの画素値などを利用してもよい。また、現フレーム画像からコントラストを算出するようにしたが、動き補償によって、現フレーム画像(基準画像)の対象画素に対して動き補償によって位置が対応する前フレーム画像の対応画素がわかるため、前フレーム画像の対応画素を含む小領域を利用してコントラストを算出してよい。
【0029】
図4(a)−(c)は、第一動きベクトル算出部101による第一動きベクトルV1の算出方法を詳細に説明する図である。第一動きベクトルV1は、複数の画素の動きから求められ、複数の画素の動きを反映した動きベクトルである。
【0030】
まず、図4(a)のように、現フレーム画像内には、動きベクトルを算出するための動きベクトル測定領域1000が離散的に設定され、離散的に配置された複数の画素に対して複数の動きベクトルが算出される。離散的な動きベクトル測定領域の設定により、動きベクトルの計算量(計算時間)や計算の回路規模が減少する。前フレーム画像には、現フレーム画像の動きベクトル測定領域1000と同一位置の周辺に探索範囲が設定される。そして、動きベクトル測定領域1000ごとに、探索範囲内でブロックマッチングなどにより動きベクトル1001が算出される。ブロックマッチングにおいて、現フレーム画像の動きベクトル測定領域1000を基準のブロックとして、前フレーム画像の探索範囲内においてこのブロックと最も類似度(例えば、誤差二乗和SSD)の高い領域(ブロック)が探索される。
【0031】
例えば、図4(b)のように、現フレーム画像のブロックとマッチングの対象となる前フレーム画像のブロックとの類似度の分布から、低コントラスト領域1002が判定できる。類似度は、前フレーム画像のブロックの位置によって変化するが、低コントラスト領域1002(図4(b)の斜線で示す)において類似度は位置に大きく依存せず類似度の分布ほぼ均一になることから、低コントラスト領域1002を判定できる。低コントラスト領域1002における動きベクトルは信頼性が無いものとして扱われ、第一動きベクトルV1の算出において無視される。
【0032】
図4(c)のように、低コントラスト領域1002以外の領域での信頼性の高い動きベクトルの統計をとることにより、高頻度の動きベクトルを第一動きベクトルV1とする。図4(c)では、動きベクトル(Vx,Vy)のうち、Vx=2且つVy=−2の動きベクトルの頻度数は22、Vx=0且つVy=−1の動きベクトルの頻度数は6、Vx=−2且つVy=−2の動きベクトルの頻度数は2、Vx=−1且つVy=1の動きベクトルの頻度数は1である。頻度割合は、頻度数を動きベクトル測定領域の数(35個)で割った値である。Vx=2且つVy=−2の動きベクトルが最大の頻度で出現し、この最大の頻度の動きベクトルが第一動きベクトルV1に設定される。この場合に、第一動きベクトルV1は、画像全体の動きを代表する動きベクトル(グローバルベクトル)となる。
【0033】
なお、ジャイロセンサーによる出力を、現フレーム画像と前フレーム画像の間の動き量に変換したものを、第一動きベクトルV1としてもよい。また、各画素に対応する第一動きベクトルV1が、低コントラスト領域を除いた領域における信頼性の高い動きベクトルを用いて、線形補間によって補間ベクトルとして生成されてもよい。
【0034】
図5(a)−(c)は、第二動きベクトル算出部105による第二動きベクトルV2の算出方法を示す。第二動きベクトルV2は、第一動きベクトルを補正することによって算出され、画素単位の動きを表す。図5(a)のように、現フレーム画像の各対象画素(ここでは、条件判定部103のコントラストに関する条件を満たすもの)に対して第二動きベクトル測定領域が設定される。図5(b)のように、現フレーム画像と前フレーム画像との間の第一動きベクトルV1を相殺するように前フレーム画像の位置をずらして現フレーム画像に位置合わせする。その後、図5(c)の点線のように、前フレーム画像において、現フレーム画像に対して設定した第二動きベクトル測定領域に対応する領域を含んだ形で、第二動きベクトル測定用の探索範囲が設定される。このような探索範囲内で、ブロックマッチングなどにより、(図4(a)のように離散的に配置された画素に対してではなく)現フレーム画像内のコントラストに関する条件を満たす各対象画素に対して動きベクトルが再探索される。
【0035】
第一動きベクトルV1に対して、再探索によって算出された動きベクトルを補正量ΔVとして加算した値が、第二動きベクトルV2として算出される(V2=V1+ΔV)。即ち、第二動きベクトルV2は、第一動きベクトルV1が補正量ΔVで補正されたベクトルであり、第一動きベクトルV1より画素単位の動きを示す動きベクトルとなっている。第二動きベクトルV2は、第一動きベクトルV1に基づく位置合せの後に画素単位で再探索により算出されるため、離散的な動きベクトル測定領域を設定して求めた第一動きベクトルV1より誤差が少なく正確な値となっている。
【0036】
図6は、条件判定部103による動きベクトル選択の条件判定を説明する図である。条件判定部103は、コントラストに関する条件を判定する。条件判定部103は、対象画素のコントラスト値CNが、図6の規定範囲内にあるか否か判定する。ここで、規定範囲は、中コントラスト(中程度のコントラスト)に対応する範囲であり、条件判定部103は、対象画素が中コントラストであるか判定することになる。コントラスト値CNが0から255までの値になる場合に、規定範囲は、例えば10から40までの範囲である。条件判定部103は、動き補償部106の動き補償で用いられる動きベクトルとして、対象画素のコントラスト値CNが規定範囲内にある場合に第二動きベクトルV2を選択し、対象画素のコントラスト値CNが規定範囲外にある場合に第一動きベクトルV1を選択する。
【0037】
制御スイッチ部104は、コントラストに関する条件が満たされる場合に、第一動きベクトル算出部101から第二動きベクトル算出部105に第一動きベクトルV1を送り、第二動きベクトル算出部105は第一動きベクトルV1に基づいて第二動きベクトルV2を算出する。制御スイッチ部104は、コントラストに関する条件が満たされない場合に、第一動きベクトル算出部101から動き補償部106に第一動きベクトルV1を送る。これにより、コントラストに関する条件が満たされる場合に、動き補償部106が使用する動きベクトルは第二動きベクトルV2に設定され、条件が満たされない場合に、動き補償部106が使用する動きベクトルは第一動きベクトルV1に設定される。従って、動き補償部106は、対象画素のコントラスト値CNが、図6に示す規定範囲内の場合には、第二動きベクトルV2を、それ以外の場合には第一動きベクトルV1を使用する。このように、制御スイッチ部104は、コントラスト算出部102により算出される対象画素のコントラスト値CNに応じて、動き補償部106で使用する動きベクトルを切り替えることになる。
【0038】
対象画素が低コントラストの場合には、再探索しても信頼性が高い動きベクトルは算出されないため、第一動きベクトルV1が使用される。第二動きベクトルV2はエッジ部で画素毎に1画素ずれて算出されることがあり、対象画素が高コントラストの場合に、画素単位で求めた第二動きベクトルV2を使用して加重加算すると、合成画像においてエッジ部にギザギザのアーティファクトが発生する。このため、対象画素が高コントラストの場合に、低コントラストの場合と同様に第一動きベクトルV1が使用される。しかし、処理対象の対象画素が中コントラストの場合には、再探索して算出した第二動きベクトルV2が使用されて、動き補償誤差が減少する。
【0039】
−作用効果−
第一実施形態によると、画像処理装置200は、基準画像と少なくとも一枚以上の参照画像とを加重加算する。画像処理装置200のコントラスト算出部102は、基準画像中の対象画素のコントラスト値を算出する。画像処理装置200の動きベクトル算出部120は、基準画像と参照画像との間の動きベクトルを算出するものであり、コントラスト値を使用して動きベクトルの算出方法を変更する。これにより、動きベクトルをコントラストに応じた算出方法で算出でき、動き補償誤差をコントラストに応じて減少できる。従って、回路規模や計算量を大きく増加させることなく、揺れを少なくしつつノイズを除去した動画像を得ることができる。
【0040】
動きベクトル算出部120の第一動きベクトル算出部101は、第一の算出方法として、複数の画素の動きから第一動きベクトルV1を算出する。動きベクトル算出部120の第二動きベクトル算出部105は、第二の算出方法として、第一動きベクトルを補正することによって画素単位の動きを表す第二動きベクトルV2を算出する。条件判定部103は、コントラスト値に関する条件に基づいて第一動きベクトルと第二ベクトルのいずれかを選択し、動き補償部106は選択された動きベクトルに基づいて動き補償する。これにより、動き補償において、複数の画素の動きから小さな計算量で概略的に計算できる第一動きベクトルV1と、第一動きベクトルを補正することによって算出され画素単位の動きを表す精密な第二動きベクトルV2とを、対象画素のコントラスト値に応じて使い分けることができる。このため、動き補償誤差を必要な程度に減少でき、回路規模や計算量を不必要に増加させることなく、揺れを少なくしつつノイズを除去した動画像を得ることができる。
【0041】
条件判定部103は、コントラスト値が規定範囲内であるか否かを判定し、コントラスト値が規定範囲内の場合に第二動きベクトルを選択し、コントラスト値が規定範囲外の場合に第一動きベクトルを選択する。これにより、動き補償において、中コントラストな対象画素に対してのみ画素単位の動きを表す精密な第二動きベクトルV2が使用され、それ以外は概略的に粗く計算された第一動きベクトルV1が使用される。従って、さらに回路規模や計算量を不必要に増加させることなく、動画像の揺れを防止するために必要な範囲で動き補償誤差を減少できる。
【0042】
第一動きベクトル算出部101は、基準画像において離散的に配置された複数の画素に対して複数の動きベクトルを算出し、複数の動きベクトルの統計量から第一動きベクトルを算出する。或いは、第一動きベクトル算出部101は、基準画像において離散的に配置された複数の画素に対して複数の動きベクトルを算出し、複数の動きベクトルの補間演算により第一動きベクトルを算出する。これにより、簡便な方法で、小さな回路規模や少ない計算量で第一動きベクトルV1を概略的に計算できる。
【0043】
[第二実施形態]
図7は、第二実施形態に係る画像処理装置のブロック構成図を示す。第二実施形態において、画像処理装置は、高コントラスト画素数算出部201と条件判定部202を備え、また、第一実施形態とは動きベクトル選択の条件判定が異なる。それ以外の構成は、第一実施形態と同様であり説明を省略する。
【0044】
コントラスト算出部102は、第一実施形態と同じ方法で、処理の対象となる対象画素のコントラスト値CNと、対象画素の周りの近隣領域内の画素のコントラスト値CNとを計算する。コントラスト算出部102は、コントラスト値CNを計算する画素を含む小領域の輝度や画素値などを利用してコントラスト値CNを計算する。高コントラスト画素数算出部201は、対象画素の周りの近隣領域内で、コントラスト値CNが第一閾値(例えば80)以上である画素の数(高コントラストの画素数と呼ぶ)を算出する。コントラスト算出部102が算出するコントラスト値CNは、高コントラスト画素数算出部201へ出力され、高コントラスト画素数算出部201が算出する高コントラストの画素数は、条件判定部202へ出力される。なお、第二実施形態において、近隣領域は、対象画素を中心とし、対象画素を除いた7×7画素の領域である。
【0045】
図8(a)(b)は、条件判定部202が実行する動きベクトル選択の条件判定の例について示す。条件判定部202は、対象画素のコントラスト値CNと高コントラストの画素数に関する条件を判定する。詳細には、条件判定部202は、対象画素のコントラスト値CNが第一実施形態と同様に規定範囲内であり、且つ、近隣領域内の高コントラストの画素数が第二閾値(例えば5)以上であるという条件が満たされるか判定する。条件判定部202は、動き補償部106の動き補償で用いられる動きベクトルとして、この条件が満たされる場合に第二動きベクトルV2を選択し、この条件が満たされない場合に第一動きベクトルV1を選択する。なお、第二閾値は、規定範囲のコントラスト値より大きいコントラスト値である。
【0046】
制御スイッチ部104は、対象画素のコントラスト値CNと高コントラストの画素数に関する条件が満たされる場合に、第一動きベクトル算出部101から第二動きベクトル算出部105に第一動きベクトルV1を送り、第二動きベクトル算出部105は第一動きベクトルV1に基づいて第二動きベクトルV2を算出する。制御スイッチ部104は、この条件が満たされない場合に、第一動きベクトル算出部101から動き補償部106に第一動きベクトルV1を送る。従って、制御スイッチ部104は、対象画素のコントラスト値CNと、対象画素の周りの近隣領域内の画素のコントラスト値CNとに応じて、動き補償部106で使用する動きベクトルを切り替えることになる。
【0047】
図8(a)のように、対象画素のコントラスト値CNが規定範囲(10〜40)内の値(20)である場合であっても、近隣領域内の高コントラスト(コントラスト80以上)の画素数が第二閾値(例えば5)未満の0画素である場合には、動き補償部106は第一ベクトルV1を使用する。図8(b)のように、対象画素のコントラスト値CNが規定範囲(10〜40)内の値(20)である場合であって、さらに、近隣領域内の高コントラスト(80以上)の画素数が第二閾値(例えば5)以上の7画素である場合には、動き補償部106は第二ベクトルV2を使用する。なお、近隣領域の高コントラストの画素数が第二閾値以上である場合に、対象画素は、高コントラスト領域(エッジ部)の近傍にあると判定できる。
【0048】
次に、第二実施形態の作用効果を説明する。計算量を抑えるため小さい第二動きベクトル測定領域で第二動きベクトルが算出されることが好ましいが、中コントラストな被写体以外のノイズのため中コントラストになっている画素が存在する。このため、小さい第二動きベクトル測定領域では、再探索して動きベクトルの補正量ΔVを求める際にノイズが乗った画素同士がマッチングして、動き補償及び加重加算後の合成画像においてノイズを強調するような第二ベクトルV2が求められる場合がある。
【0049】
しかし、第二実施形態によると、画素数算出部201は、対象画素を除いた対象画素の近隣領域内で、コントラストの値が第一閾値以上である高コントラストな画素の数を算出する。そして、条件判定部は、対象画素のコントラスト値が規定範囲内で、かつ、近隣領域内の高コントラストな画素の数が第二閾値以上の場合に、第二の動きベクトルを選択する。これにより、対象画素のコントラスト値が中コントラストで、対象画素の近隣に高コントラスト領域(エッジ部)がある場合にのみ、第二動きベクトルが選択される。
【0050】
従って、高コントラスト領域の近傍にある中コントラストな対象画素に対してのみ、画素単位で求めた精密な第二ベクトルV2が動き補償に使用される。高コントラスト領域の近傍でのみ、中コントラストな画素に対して精密に動き補償すれば揺れの少ない動画像を得ることができるため、揺れの少ない動画像を生成しつつもノイズが大きく除去できる。
【0051】
[第三実施形態]
図9は、第三実施形態に係る画像処理装置のブロック構成図を示す。第三実施形態において、画像処理装置は方向変動量算出部301と条件判定部302を備え、また、第一実施形態とは動きベクトル選択の条件判定が異なる。それ以外の構成は、第一実施形態と同様であり説明を省略する。
【0052】
図10(a)(b)のように、第二動きベクトル算出部105は、対象画素を含む近隣領域(第三実施形態では3×3画素の領域)内の各画素の第二動きベクトルを算出する。第二動きベクトル算出部105で算出される第二動きベクトルV2は、方向変動量算出部301へ出力される。方向変動量算出部301は、対象画素の近隣領域内における第二動きベクトルV2の方向の変動の程度を示す方向変動量(又は方向の分散量)を算出する。
【0053】
コントラスト算出部102で算出される対象画素のコントラスト値CNは、条件判定部302へ出力される。方向変動量算出部301で算出される方向変動量は、条件判定部302へ出力される。条件判定部302は制御スイッチ部104を制御し、動き補償部106に入力される動きベクトルを切り替える。また、第一動きベクトルV1は、第一動きベクトル算出部101から、第二動きベクトル算出部105と制御スイッチ部104へ出力される。
【0054】
図10(c)(d)を参照して、方向変動量の算出の一例を説明する。図10(c)(d)のように、対象画素の第二動きベクトルの方向は、8方向(縦横斜めの8方向)のいずれかに近似される。同様に近隣領域内の各画素の第二動きベクトルの方向は8方向に近似される。図10(c)(d)のように、対象画素の第二動きベクトルの方向から1方向離れるごとに変動量は、“1”増えるように設定され、対象画素の第二動きベクトルの方向に対する変動量の合計値が、方向変動量として算出される。図10(a)の例では、対象画素の第二動きベクトルの方向は右斜め下の方向であり、方向変動量は、17(=4+2+1+3+4+0+2+1)となる。図10(b)の例では、対象画素の第二動きベクトルの方向は右斜め上の方向であり、方向変動量は、1(=0+0+0+1+0+0+0+0+0)となる。
【0055】
条件判定部302は、対象画素のコントラスト値CNと第二ベクトルの方向変動量に関する条件を判定する。詳細には、条件判定部302は、対象画素のコントラスト値CNが第一実施形態と同様に規定範囲内であり、且つ、対象画素の近隣領域内の第二ベクトルの方向変動量が第三閾値(例えば5)未満であるという条件が満たされるか判定する。条件判定部103は、動き補償部106の動き補償で用いられる動きベクトルとして、この条件が満たされる場合に第二動きベクトルV2を選択し、この条件が満たされない場合に第一動きベクトルV1を選択する。
【0056】
制御スイッチ部104は、対象画素のコントラスト値CNと第二ベクトルの方向変動量に関する条件が満たされる場合に、第一動きベクトル算出部101から動き補償部106へ第二動きベクトルV2を送る。制御スイッチ部104は、この条件が満たされない場合に、第一動きベクトル算出部101から動き補償部106へ第一動きベクトルV1を送る。従って、制御スイッチ部104は、対象画素のコントラスト値CNと、対象画素の周りの近隣領域内の第二ベクトルの方向変動量とに応じて、動き補償部106で使用する動きベクトルを切り替えることになる。
【0057】
図10(a)のように、対象画素のコントラスト値CNが規定範囲内の値である場合であっても、3×3画素の近隣領域内の第二ベクトルの方向変動量が第三閾値(例えば5)以上の「17」である場合には、動き補償部106は第一ベクトルV1を使用する。図10(b)のように、対象画素のコントラスト値CNが規定範囲内の値である場合であって、さらに、3×3画素の近隣領域内の第二ベクトルの方向変動量が第三閾値(例えば5)未満の「1」である場合には、動き補償部106は第二ベクトルV2を使用する。
【0058】
次に、第三実施形態の作用効果を説明する。第三実施形態によると、方向変動量算出部301は、対象画素の近隣領域内で、第二動きベクトルの方向の変動の程度を表す方向変動量を算出する。そして、条件判定部302は、対象画素のコントラスト値が規定範囲内で、かつ、第二動きベクトルの方向変動量が第三閾値未満の場合に、第二動きベクトルを選択する。これにより、対象画素のコントラスト値が中コントラストで、対象画素の近隣の第二動きベクトルの方向変動量が小さい場合にのみ、第二動きベクトルが選択される。
【0059】
中コントラストな被写体の画素では近隣領域の第二動きベクトルの方向変動量が小さく、ノイズのために中コントラストになっている画素では方向変動量が大きくなる。しかし、第三実施形態では、動き補償及び加重加算後の合成画像においてノイズを強調するような第二ベクトルV2が動き補償に使用されず、揺れの少ない動画像を生成しつつもノイズが大きく除去できる。
【0060】
[その他の実施形態]
上述した各実施形態の説明では、画像処理装置が行う処理としてハードウェアによる処理を前提としていたが、このような構成に限定される必要はない。例えば、別途ソフトウェアにて処理する構成も可能である。この場合、画像処理装置は、コンピュータに相当し、CPUと、画像データを記憶するRAM等の主記憶装置と、上記の画像処理の全て或いは一部を実現させるためのプログラムが記憶されたコンピュータ読み取り可能な記憶媒体とを備えている。ここでは、このプログラムを画像処理プログラムと呼ぶ。そして、CPUが上記記憶媒体に記憶されている画像処理プログラムを読み出して、画像データの加工・演算処理を実行することにより、上述の画像処理部と同様の処理を実現させる。
【0061】
ここで、コンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、この画像処理プログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該画像処理プログラムを実行するようにしても良い。
【0062】
図11のフローチャートは、画像処理装置(コンピュータ)が実行する画像処理プログラムの一例を示し、第一実施形態の画像処理に対応する。ステップS100において、画像処理装置は、メモリカード等の記録媒体に記録された画像データ(動画の各フレーム)を読み取る。図11のステップS101―S108で行われる処理は、それぞれ、図1の各部101−108が行う処理に対応する。フローチャートにおいて、Sを付した番号はステップの番号を示す。
【0063】
図12のフローチャートは、画像処理装置(コンピュータ)が実行する画像処理プログラムの他の一例を示し、第二実施形態の画像処理に対応する。図12のステップS101、S102、S201、S202、S104−S108で行われる処理は、それぞれ、図7の各部101、102、201、202、104−108が行う処理に対応する。
【0064】
図13のフローチャートは、画像処理装置(コンピュータ)が実行する画像処理プログラムのさらなる他の一例を示し、第三実施形態の画像処理に対応する。図13のステップS101、S102、S105、S301、S302、S106−S108で行われる処理は、それぞれ、図9の各部101、102、105、301、302、106−S108が行う処理に対応する。なお、図13のS104aでは、第一動きベクトルV1を動き補償の動きベクトルに設定する処理が行われ、S104bでは、第二動きベクトルV2を動き補償の動きベクトルに設定する処理が行われる。
【0065】
本発明は上記の各実施形態に限定されずに、その技術的な思想の範囲内において種々の変更がなしうることは明白である。
【符号の説明】
【0066】
100 撮像部(画像入力部)
101 第一動きベクトル算出部
102 コントラスト算出部
103、202、302 条件判定部
104 制御スイッチ部
105 第二動きベクトル算出部
106 動き補償部
107 信頼度算出部
108 加重加算部
120 動きベクトル算出部
200 画像処理装置
201 高コントラスト画素数算出部
300 フレームメモリ
301 方向変動量算出部

【特許請求の範囲】
【請求項1】
基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理装置であって、
前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出部と、
前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出部であって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出部と、
前記動きベクトル算出部により算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償部と、
前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算部と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記動きベクトル算出部は、第一の算出方法として、複数の画素の動きから第一動きベクトルを算出する第一動きベクトル算出部と、第二の算出方法として、前記第一動きベクトルを補正することによって画素単位の動きを表す第二動きベクトルを算出する第二動きベクトル算出部と、を備え、
前記画像処理装置は、前記コントラスト値に関する条件に基づいて、前記第一動きベクトルと前記第二ベクトルのいずれかを選択する条件判定部を備え、
前記動き補償部は前記選択された動きベクトルに基づいて動き補償することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記条件判定部は、
前記コントラスト値が規定範囲内であるか否かを判定し、
前記コントラスト値が前記規定範囲内の場合に前記第二動きベクトルを選択し、前記コントラスト値が規定範囲外の場合に前記第一動きベクトルを選択することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記画像処理装置は、前記対象画素を除いた前記対象画素の近隣領域内で、コントラストの値が第一閾値以上である高コントラストな画素の数を算出する画素数算出部を備え、
前記条件判定部は、前記対象画素の前記コントラスト値が前記規定範囲内で、かつ、前記高コントラストな画素の数が第二閾値以上の場合に、前記第二の動きベクトルを選択することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記画像処理装置は、前記対象画素の近隣領域内で、前記第二動きベクトルの方向の変動の程度を表す方向変動量を算出する方向変動量算出部を備え、
前記条件判定部は、前記対象画素の前記コントラスト値が前記規定範囲内で、かつ、前記第二動きベクトルの前記方向変動量が第三閾値未満の場合に、第二動きベクトルを選択することを特徴とする請求項3に記載の画像処理装置。
【請求項6】
前記第一動きベクトル算出部は、前記基準画像において離散的に配置された前記複数の画素に対して複数の動きベクトルを算出し、前記複数の動きベクトルの統計量から第一動きベクトルを算出することを特徴とする請求項2に記載の画像処理装置。
【請求項7】
前記第一動きベクトル算出部は、前記基準画像において離散的に配置された前記複数の画素に対して複数の動きベクトルを算出し、前記複数の動きベクトルの補間演算により前記第一動きベクトルを算出することを特徴とする請求項2に記載の画像処理装置。
【請求項8】
前記画像処理装置は、前記基準画像と前記動き補償された参照画像との間で、前記対象画素に関する動き補償の信頼度を算出する信頼度算出部を備え、
前記加重加算部は、前記信頼度に応じて前記基準画像と前記参照画像の加算比率を算出し、前記加算比率に基づいて前記基準画像と前記参照画像を加重加算することを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記信頼度算出部は、前記基準画像の前記対象画素を含む基準領域と、前記動き補償された参照画像内で前記基準領域に対応する参照領域との間で相違度を算出し、前記相違度が低いほど前記信頼度を高く算出することを特徴とする請求項8に記載の画像処理装置。
【請求項10】
請求項1から請求項10のいずれか一つに記載の画像処理装置を備えることを特徴とする撮像装置。
【請求項11】
基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理方法であって、
前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出ステップと、
前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出ステップであって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出ステップと、
前記動きベクトル算出ステップにより算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償ステップと、
前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算ステップと、
を含むことを特徴とする画像処理方法。
【請求項12】
基準画像と少なくとも一枚以上の参照画像とを加重加算する画像処理プログラムであって、
前記基準画像中の対象画素のコントラスト値を算出するコントラスト算出手順と、
前記基準画像と前記参照画像との間の動きベクトルを算出する動きベクトル算出手順であって、前記コントラスト値を使用して前記動きベクトルの算出方法を変更する動きベクトル算出手順と、
前記動きベクトル算出手順により算出された動きベクトルに基づいて、前記参照画像を前記基準画像に対して動き補償する動き補償手順と、
前記基準画像と前記動き補償された参照画像とを前記対象画素ごとに加重加算する加重加算手順と、をコンピュータに実行させることを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図5】
image rotate


【公開番号】特開2012−222510(P2012−222510A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−84583(P2011−84583)
【出願日】平成23年4月6日(2011.4.6)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】