(57)【特許請求の範囲】
【請求項１】
所定のフィルタを分割して構成された複数の分割フィルタを取得する取得手段と、
入力画像のどの領域をフィルタ演算の対象にするかを、前記所定のフィルタの中心画素位置に基づき、前記複数の分割フィルタごとに決定する決定手段と、
前記入力画像に対して、前記決定手段により決定された前記複数の分割フィルタごとの演算対象の領域にフィルタ処理を施し、前記複数の分割フィルタごとに中間画像を生成するフィルタ処理手段と、
前記所定のフィルタの着目画素の位置に合うように前記複数の分割フィルタごとに生成されたそれぞれの中間画像の位置をずらして加算し、出力画像を生成する加算手段と、
を有し、
前記決定手段は、前記複数の分割フィルタごとに演算を行う領域を異ならせることを特徴とする画像処理装置。
【請求項２】
前記フィルタ処理手段は、前記分割フィルタに少なくとも前記入力画像の一部が含まれるような範囲で演算して前記中間画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記フィルタ処理手段は、前記分割フィルタに少なくとも前記入力画像の中の１つの画素が含まれるような範囲で演算して前記中間画像を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記フィルタ処理手段は、前記分割フィルタに少なくとも前記入力画像の一部が含まれ、かつ前記所定のフィルタの着目画素が前記入力画像に含まれる範囲で演算して前記中間画像を生成することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
所定のフィルタを分割して構成された複数の分割フィルタを取得する取得工程と、
入力画像のどの領域をフィルタ演算の対象にするかを、前記所定のフィルタの中心画素位置に基づき、前記複数の分割フィルタごとに決定する決定工程と、
前記入力画像に対して、前記決定工程において決定された前記複数の分割フィルタごとの演算対象の領域にフィルタ処理を施し、前記複数の分割フィルタごとに中間画像を生成するフィルタ処理工程と、
前記所定のフィルタの着目画素の位置に合うように前記複数の分割フィルタごとに生成されたそれぞれの中間画像の位置をずらして加算し、出力画像を生成する加算工程と、
を有し、
前記決定工程においては、前記複数の分割フィルタごとに演算を行う領域を異ならせることを特徴とする画像処理方法。
【請求項６】
所定のフィルタを分割して構成された複数の分割フィルタを取得する取得工程と、
入力画像のどの領域をフィルタ演算の対象にするかを、前記所定のフィルタの中心画素位置に基づき、前記複数の分割フィルタごとに決定する決定工程と、
前記入力画像に対して、前記決定工程において決定された前記複数の分割フィルタごとの演算対象の領域にフィルタ処理を施し、前記複数の分割フィルタごとに中間画像を生成するフィルタ処理工程と、
前記所定のフィルタの着目画素の位置に合うように前記複数の分割フィルタごとに生成されたそれぞれの中間画像の位置をずらして加算し、出力画像を生成する加算工程と、
をコンピュータに実行させ、
前記決定工程においては、前記複数の分割フィルタごとに演算を行う領域を異ならせることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、フィルタ処理を行うために用いて好適な画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
一般に、コンパクトデジタルカメラによる撮影では、一眼レフカメラで撮影する場合と比べて相対的に広い距離範囲に対して焦点が合ってしまうため、一眼レフカメラのように背景を大きくぼかしたような撮影を行うことが困難である。このため、従来のコンパクトデジタルカメラでは、大きなぼかし効果を得るために、デジタルフィルタ処理で一眼レフカメラに相当する大きさのボケを撮影画像に付与していた。
【０００３】
例えば、特許文献１には、縮小した画像に小さいサイズのフィルタ処理を施した後に元のサイズに拡大することによって、小さいサイズのフィルタ処理で大きなボケを画像に付与する技術が開示されている。また、特許文献２には、大きなサイズのフィルタを小さなサイズのフィルタに分割し、小さなサイズのフィルタリング結果を加算することにより、回路規模を抑えつつ、大きなサイズのフィルタによるフィルタリングと同じ結果を得る技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１０２９０４号公報
【特許文献２】特開２００４−１４５６１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された従来技術では、フィルタサイズが小さいため、一眼レフカメラのような背景ボケを忠実に再現することができない。例えば一眼レフカメラで背景の点光源を大きく丸くぼかすような撮影手法があるが、上述の特許文献１に開示されている小さいサイズのフィルタ処理では、丸ボケの形状のディテールが十分に表現できない。また、特許文献２に記載の方法では、フィルタ処理にかかる演算量が多くなってしまうという問題点がある。
【０００６】
本発明は前述の問題点に鑑み、フィルタ処理の回路規模を抑えるとともに、フィルタ処理の演算量を抑えて、ぼかしを忠実に再現できるようにすることを目的としている。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、所定のフィルタを分割して構成された複数の分割フィルタを取得する取得手段と、入力画像のどの領域をフィルタ演算の対象にするかを、前記所定のフィルタの中心画素位置に基づき、前記複数の分割フィルタごとに決定する決定手段と、前記入力画像に対して、前記決定手段により決定された前記複数の分割フィルタごとの演算対象の領域にフィルタ処理を施し、前記複数の分割フィルタごとに中間画像を生成するフィルタ処理手段と、前記所定のフィルタの着目画素の位置に合うように前記複数の分割フィルタごとに生成されたそれぞれの中間画像の位置をずらして加算し、出力画像を生成する加算手段と、を有し、前記決定手段は、前記複数の分割フィルタごとに演算を行う領域を異ならせることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、フィルタ処理の回路規模を抑えるとともに、フィルタ処理の演算量を抑えて、ぼかしを忠実に再現することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係るデジタルカメラの構成例を示すブロック図である。
【図２】画像処理部の具体的な構成の一例を示すブロック図である。
【図３】画像処理部の処理内容を説明するためのフローチャートである。
【図４】２次元フィルタの一例を示す図である。
【図５】分割していないフィルタを入力画像に適用する様子を説明するための図である。
【図６】分割フィルタを入力画像に適用する様子を説明するための図である。
【図７】実施形態において、分割フィルタｆ１を入力画像に適用する様子を説明するための図である。
【図８】実施形態において、分割フィルタｆ２を入力画像に適用する様子を説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の好適な一実施形態について、図面を参照して詳細に説明する。なお、以下に説明する実施形態は、画像処理装置の一例としてのデジタルカメラに本発明を適用した例であるが、本発明は以下の実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【００１１】
図１は、本実施形態に係るデジタルカメラ１０１の構成例を示すブロック図である。
図１において、制御部１０２は、例えばＣＰＵであり、デジタルカメラ１０１が備える各ブロックの動作プログラムをＲＯＭ１０３より読み出し、ＲＡＭ１０４に展開して実行することによりデジタルカメラ１０１が備える各ブロックの動作を制御する。ＲＯＭ１０３は、書き換え可能な不揮発性メモリであり、デジタルカメラ１０１が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。ＲＡＭ１０４は、書き換え可能な揮発性メモリであり、デジタルカメラ１０１が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。
【００１２】
光学系１０５は、被写体像を撮像部１０６に結像する。撮像部１０６は、例えばＣＣＤやＣＭＯＳセンサ等の撮像素子であり、光学系１０５により撮像素子に結像された光学像を光電変換し、得られたアナログ画像信号をＡ／Ｄ変換部１０７に出力する。Ａ／Ｄ変換部１０７は、入力されたアナログ画像信号にＡ／Ｄ変換処理を適用し、得られたデジタル画像データをＲＡＭ１０４に出力して記憶させる。
【００１３】
画像処理部１０８は、ＲＡＭ１０４に記憶されている画像データに対してフィルタ処理等を行うことにより、撮影画像に所望のボケを付与する。記録媒体１０９は着脱可能なメモリカード等であり、ＲＡＭ１０４に記憶されている画像処理部１０８で処理された画像データやＡ／Ｄ変換部１０７でＡ／Ｄ変換された画像データなどが、記録画像として記録される。
【００１４】
図２は、図１の画像処理部１０８の具体的な構成の一例を示すブロック図である。また、図３は、画像処理部１０８の処理内容を説明するためのフローチャートである。以下、図３のフローチャートに沿って説明を行う。
まず、Ｓ３０１において、分割処理部２０１は、撮影画像に施す目標のフィルタを複数に分割して分割フィルタを取得する。例えば、ユーザ操作あるいは画像解析結果による設定で決められた所定のタップ数、フィルタ係数の目標のフィルタに対して、フィルタ処理部２０２のスペックに応じて分割数を決定し、複数の分割フィルタを設定する。ここで、分割処理部２０１は、演算結果が入力画像に対して施す目標のフィルタとなるように構成された複数の分割フィルタを取得すればよい。すなわち、例えば予め目標のフィルタが複数パターン用意され、それぞれのための分割フィルタが用意されメモリ（ＲＯＭ１０３）に記憶されているものを読み出して取得してもよい。図４（ａ）は、分割対象の２次元フィルタの一例を示す図である。図４（ａ）に示すように、分割前の２次元フィルタは円柱形のフィルタ形状となっており、撮影画像にフィルタ処理を適用することにより一眼レフカメラのような丸ボケを表現することができる。また、図４（ｂ）は、分割処理後のフィルタを説明するための図である。図４（ｂ）において、ｆ１、ｆ２、・・・ｆ９は、サイズが（９タップ）×（９タップ）の２次元の分割フィルタであり、２次元フィルタが縦３ブロック、横３ブロックに分割されている。
【００１５】
次に、Ｓ３０２において、フィルタ処理部２０２は、撮影された入力画像とフィルタ係数のコンボリュージョン処理を行う。ここで、一般的なコンボリュージョン処理について説明する。
【００１６】
図５は、図４（ａ）の分割していないフィルタを入力画像に適用する様子を説明するための図である。図５において、５０１は撮影された入力画像である。コンボリュージョン処理は、以下の式（１）を用いて入力画像Ｉｎ（ｘ，ｙ）に対してフィルタ係数ｋ（ｉｘ，ｉｙ）を適用し、出力画像Ｏｕｔ（ｘ，ｙ）を得る。
【００１７】
【数１】
0006468751.tif 000002
【００１８】
式（１）中、入力画像Ｉｎ（ｘ，ｙ）におけるｘ、ｙは、着目画素の座標値（水平座標ｘ、垂直座標ｙ）を示す。また、フィルタ係数ｋ（ｉｘ，ｉｙ）におけるｉｘ、ｉｙは、フィルタ係数の位置（水平座標ｉｘ、垂直座標ｉｙ）を示し、ｆｓはフィルタサイズを示す。
【００１９】
図５に示す入力画像５０１左上の頂点の座標（ｘ，ｙ）＝（０，０）に着目すると、入力画像の外側にフィルタ係数が存在している。このように入力画像からフィルタがはみ出す場合、一般の画像処理では、はみ出た領域に対しては入力画像の最外周またはその近傍をコピーして入力画像としたり、その領域のフィルタ係数の値を「０」として式（１）の計算を行ったりする。いずれの方法であっても入力画像より外側の座標（ｘ，ｙ）＝（−１３，−１３）からコンボリュージョン演算を行っている。同様に入力画像５０１の右下の頂点について着目すると、入力画像のサイズをｍ×ｎとすると、（ｘ，ｙ）＝（ｍ−１＋１３，ｎ−１＋１３）までコンボリュージョン演算を行うことになる。図５の点線で記した領域５０２は、左上の頂点の座標（ｘ，ｙ）＝（−１３，−１３）から右下の頂点の座標（ｍ−１＋１３，ｎ−１＋１３）までコンボリュージョン演算を行う場合の演算領域を示している。例えば入力画像５０１のサイズを１００×１００とすると、コンボリュージョン演算の回数は、２７×２７×１００×１００＝７２９００００回となる。
【００２０】
次に、図４（ｂ）に示すように分割処理したフィルタを入力画像に適用する場合について説明する。図６は、コンボリュージョン演算を行う領域を、分割していない場合のフィルタの演算領域５０２から変えずに、図４（ｂ）の分割フィルタｆ１を適用した場合を説明するための図である。図６の領域６０１は、演算領域５０２に対して分割フィルタｆ１を適用した場合に出力される中間画像ｐ１である。この場合のコンボリュージョン演算の回数は、９×９×１１８×１１８＝１１２７８４４回となる。ここで、１１８×１１８が中間画像ｐ１のサイズとなる。
【００２１】
同様にして、分割フィルタｆ２〜ｆ９を演算領域５０２に対して適用し、中間画像ｐ２〜ｐ９まで算出すると、コンボリュージョン演算の回数の合計は、１１２７８４４×９＝１０１５０５９６回となる。
【００２２】
続いて、中間画像ｐ１〜ｐ９において、入力画像のサイズと同じ１００×１００画素分だけ所望の領域それぞれ読み出して加算する。そして、分割していない状態のフィルタ係数の合計値で正規化することにより、フィルタを分割していない場合と同じ効果の画像を得ることができる。図４（ａ）に示すフィルタ係数の合計は５２９であるので、中間画像ｐ１〜ｐ９を加算した画像を５２９で正規化する。
【００２３】
このようにフィルタを分割することによって、フィルタ処理にかかる回路規模を抑えながら、分割していないフィルタと同じの効果を再現することができる。しかしながら、コンボリュージョン演算の回数は、フィルタを分割しない場合よりも多くなってしまう。
【００２４】
そこで本実施形態では、分割したフィルタごとにコンボリュージョン演算を行う領域を変更することにより、コンボリュージョン演算の回数を少なくなるようにする。以下、入力画像よりも外側にフィルタ係数が存在しているときに、その領域のフィルタ係数の値を「０」として式（１）の計算を行って、コンボリュージョン演算の回数を少なくする方法について説明する。
【００２５】
入力画像５０１の左上において、分割フィルタｆ１に着目すると、フィルタ係数が０ではない値で演算する場合は、ｆ１（８，８）及び入力画像Ｉｎ（０，０）の画素をコンボリュージョン演算する場合である。ここで、（９タップ）×（９タップ）のｆ１（ｉｘ，ｉｙ）は（ｉｘ，ｉｙ）＝（０，０）〜（８，８）であるものとする。つまり、分割フィルタｆ１の着目画素として入力画像Ｉｎ（ｘ，ｙ）＝（−４，−４）からコンボリュージョン演算を開始することになる。その様子を図７に示す。図７には、分割フィルタｆ１と分割していないフィルタの着目画素を含む分割フィルタｆ５とを併せて示している。なお、入力画像５０１のサイズは１００×１００とする。
【００２６】
また、図７に示すように、入力画像５０１の右上では、入力画像Ｉｎ（ｘ，ｙ）＝（ｍ−１−９，−４）＝（９０、−４）までのコンボリュージョン演算結果が必要となる。同様に入力画像５０１の左下では、入力画像Ｉｎ（ｘ，ｙ）＝（−４，ｎ−１−９）＝（−４，９０）からコンボリュージョン演算を開始する。そして、入力画像５０１の右下では入力画像Ｉｎ（ｘ，ｙ）＝（ｍ−１−９，ｎ−１−９）＝（９０，９０）までコンボリュージョン演算を行う。図７の領域７０１は、コンボリュージョン演算を行って出力される分割フィルタｆ１の中間画像ｐ１である。この場合、分割フィルタｆ１のコンボリュージョン演算の回数は、９×９×９５×９５＝７３１０２５回である。分割フィルタｆ３、ｆ７、ｆ９についてもコンボリュージョン演算の回数は同じである。
【００２７】
次に、分割フィルタｆ２についてコンボリュージョン演算を行う様子を図８に示す。図８には、分割フィルタｆ２と分割していないフィルタの着目画素を含む分割フィルタｆ５とを併せて示している。分割フィルタｆ２の場合は分割フィルタｆ２の一部が含まれるように以下の範囲でコンボリュージョン演算を行い、領域８０１が示す中間画像ｐ２を出力する。
入力画像の左上  Ｉｎ（ｘ，ｙ）＝（０，−４）
入力画像の右上  Ｉｎ（ｘ，ｙ）＝（ｍ−１，−４）＝（９９，−４）
入力画像の左下  Ｉｎ（ｘ，ｙ）＝（０，ｎ−１−９）＝（０，９０）
入力画像の右下  Ｉｎ（ｘ，ｙ）＝（ｍ−１，ｎ−１−９）＝（９９，９０）
【００２８】
また、分割フィルタｆ２のコンボリュージョン演算の回数は、９×９×１００×９５＝７６９５００回となる。分割フィルタｆ４、ｆ６、ｆ８についてもコンボリュージョン演算の回数は同じである。また、分割フィルタｆ５のコンボリュージョン演算の回数は、９×９×１００×１００＝８１００００回となる。
【００２９】
このように、フィルタ形状の対称性を考慮すると、分割フィルタｆ１〜ｆ９までコンボリュージョン演算を行った場合の演算回数の総和は、７３１０２５×４＋７６９５００×４＋８１００００＝６８１２１００回となる。そのため、フィルタを分割していない場合のコンボリュージョン演算の回数よりも、４７７９００回の演算を減らすことができる。
【００３０】
図３の説明に戻り、次のＳ３０３において、画像加算部２０３は、Ｓ３０２で出力した中間画像ｐ１〜ｐ９の位置をずらしながら加算して、１つの画像を生成する。Ｓ３０３で生成される画像は入力画像と同じサイズである。中間画像ｐ１〜ｐ９を加算していく画像をベース画像とすると、各分割フィルタの着目画素からみた、分割していない状態でのフィルタの着目画素とのズレ量分だけ各中間画像をずらし、ベース画像に加算していく。具体的には分割フィルタｆ１と、分割していない状態でのフィルタの着目画素（分割フィルタｆ５の着目画素と同じ）とのズレ量は（９，９）である。そこで、中間画像ｐ１の位置を（９，９）だけずらしてからベース画像に加算する。ここで、各分割フィルタのズレ量を記述すると以下のようになる。
ｆ１＝（９，９）
ｆ２＝（０，９）
ｆ３＝（−９，９）
ｆ４＝（９，０）
ｆ５＝（０，０）
ｆ６＝（−９，０）
ｆ７＝（９，−９）
ｆ８＝（０，−９）
ｆ９＝（−９，−９）
【００３１】
次に、Ｓ３０４において、画像除算部２０４は、Ｓ３０３において中間画像ｐ１〜ｐ９を加算したベース画像において、画素ごとにフィルタ係数の合計値で除算して正規化する。このとき、入力画像よりも外側にフィルタ係数が存在している場合は、その領域のフィルタ係数の値は「０」として計算される。
【００３２】
以上のように本実施形態のデジタルカメラによれば、９タップのような小さいサイズの２次元フィルタ処理で、２７タップの２次元フィルタ処理で得られるようなぼけを、ディテールを損なうことなく撮影画像に付与することができる。その際、分割したフィルタごとにコンボリュージョン演算を行う領域を変更することにより、コンボリュージョン演算の回数が少なくなるようにしている。つまり、フィルタ処理の回路規模を抑え、かつ画像データの端領域をフィルタ処理する際の演算量を抑え、一眼レフカメラのような大きな背景ぼかしを忠実に再現することを可能にした画像処理装置を提供することができる。
【００３３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３４】
１０２  制御部
１０８  画像処理部
【図１】
0006468751.tif 000003
【図２】
0006468751.tif 000004
【図３】
0006468751.tif 000005
【図４】
0006468751.tif 000006
【図５】
0006468751.tif 000007
【図６】
0006468751.tif 000008
【図７】
0006468751.tif 000009
【図８】
0006468751.tif 000010