(57)【要約】【課題】収差検出部の複雑度を低減し、回路規模を小さくすることができる画像処理装置を提供することを課題とする。【解決手段】画像処理装置は、画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部（１２５）と、前記収差を検出する複数の方向を少なくとも１個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部（１１７〜１１９）と、前記収差検出部により検出された収差を基に前記画像を補正する画像処理部（１０７）とを有し、前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも１個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出する。【選択図】図１
2016122929.tif 000002
【特許請求の範囲】
【請求項１】
画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部と、
前記収差を検出する複数の方向を少なくとも１個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部と、
前記収差検出部により検出された収差を基に前記画像を補正する画像処理部とを有し、
前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも１個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出することを特徴とする画像処理装置。
【請求項２】
前記領域制御部は、
緑色領域の画像を方向変換する緑色領域制御部と、
赤色領域の画像を方向変換する赤色領域制御部と、
青色領域の画像を方向変換する青色領域制御部とを有することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記領域制御部は、画像を左右反転、上下反転又は回転することにより前記方向変換することを特徴とする請求項１又は２記載の画像処理装置。
【請求項４】
前記収差検出部は、０度、４５度、９０度、１３５度、１８０度、２２５度、２７０度及び３１５度の８個の方向の収差を検出することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記領域制御部は、０度、９０度、１８０度及び２７０度の方向を１個の方向に集約し、４５度、１３５度、２２５度及び３１５度の方向を他の１個の方向に集約することを特徴とする請求項４記載の画像処理装置。
【請求項６】
前記領域制御部は、前記８個の方向を１個の方向に集約することを特徴とする請求項４記載の画像処理装置。
【請求項７】
前記領域制御部は、
０度の方向の領域の画像を上下反転することにより方向変換し、
４５度の方向の領域の画像を上下反転することにより方向変換し、
９０度の方向の領域の画像を右９０度回転することにより方向変換し、
１３５度の方向の領域の画像を方向変換せず、
１８０度の方向の領域の画像を方向変換せず、
２２５度の方向の領域の画像を左右反転することにより方向変換し、
２７０度の方向の領域の画像を右９０度回転及び上下反転することにより方向変換し、
３１５度の方向の領域の画像を左右反転及び上下反転することにより方向変換し、
前記領域制御部は、０度、９０度、１８０度及び２７０度の方向を１８０度の方向に集約し、４５度、１３５度、２２５度及び３１５度の方向を１３５度の方向に集約することを特徴とする請求項５記載の画像処理装置。
【請求項８】
前記領域制御部は、
０度の方向の領域の画像を上下反転することにより方向変換し、
４５度の方向の領域の画像を上下反転及び右４５度ベクトル回転することにより方向変換し、
９０度の方向の領域の画像を右９０度回転することにより方向変換し、
１３５度の方向の領域の画像を右４５度ベクトル回転することにより方向変換し、
１８０度の方向の領域の画像を方向変換せず、
２２５度の方向の領域の画像を左右反転及び右４５度ベクトル回転することにより方向変換し、
２７０度の方向の領域の画像を右９０度回転及び上下反転することにより方向変換し、
３１５度の方向の領域の画像を左右反転、上下反転及び右４５度ベクトル回転することにより方向変換し、
前記領域制御部は、前記８個の方向を１８０度の方向に集約することを特徴とする請求項６記載の画像処理装置。
【請求項９】
画像の所定の画素を中心として、放射状に複数の方向の収差を検出する画像処理方法であって、
領域制御部により、前記収差を検出する複数の方向を少なくとも１個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換するステップと、
収差検出部により、前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも１個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出するステップと、
画像処理部により、前記検出された収差を基に前記画像を補正するステップと
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
画像処理装置において、補正中心から像高方向に広がる収差の検出の為に、撮影画像の収差を像高方向に検出する技術がある。例えば、特許文献１では、撮影画像を補正中心から複数の分割領域に分けて、像高方向に収差の検出をする技術が開示されている。
【０００３】
また、画像処理装置において、画像処理を簡略化する為の技術がある。例えば、特許文献２では、撮影画像を画像処理する際に、画像データの回転、拡大、縮小を行って、画像メモリに格納する事で後段の画像処理を簡素化できる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２０２７５号公報
【特許文献２】特開平５−３４８３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述の特許文献１に開示された技術では、収差検出回路が複雑になったり、収差検出回路の回路規模が増大してしまう。また、特許文献２に開示された技術では、画像データの補正中心から像高方向に広がるような収差の検出に関して、具体的な説明がなされていない。
【０００６】
本発明の目的は、収差検出部の複雑度を低減し、回路規模を小さくすることができる画像処理装置及び画像処理方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部と、前記収差を検出する複数の方向を少なくとも１個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部と、前記収差検出部により検出された収差を基に前記画像を補正する画像処理部とを有し、前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも１個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、収差検出部の複雑度を低減し、回路規模を小さくすることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る画像処理装置の構成を示す図である。
【図２】第１の実施形態に係る画像データの方向判定を説明する為の図である。
【図３】第１の実施形態に係る画像領域を示す図である。
【図４】第１の実施形態に係る画像領域を示す図である。
【図５】第１の実施形態に係る収差検出領域の制御を示す図である。
【図６】第１の実施形態に係る収差検出領域の制御を示す図である。
【図７】第１の実施形態に係る収差検出領域の制御を示す図である。
【図８】第１の実施形態に係る収差検出領域の制御を示す図である。
【図９】第１の実施形態に係る収差検出領域の制御を示す図である。
【図１０】第１の実施形態に係る収差検出領域の制御を示す図である。
【図１１】第１の実施形態に係る収差検出領域の制御を示す図である。
【図１２】第１の実施形態に係る収差検出領域の制御を示す図である。
【図１３】第１の実施形態に係るフローチャートである。
【図１４】第２の実施形態に係る画像処理装置の構成を示す図である。
【図１５】第２の実施形態に係る画像領域を示す図である。
【図１６】第２の実施形態に係る画像領域を示す図である。
【図１７】第２の実施形態に係る画像領域を示す図である。
【図１８】第２の実施形態に係る収差検出領域の制御を示す図である。
【図１９】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２０】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２１】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２２】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２３】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２４】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２５】第２の実施形態に係る収差検出領域の制御を示す図である。
【図２６】第２の実施形態に係るフローチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態に係る画像処理装置１００の構成例を示す図である。ＣＰＵ１０１は、画像処理装置１００内のバスマスタであり、ＲＯＭ部１０３に格納された画像処理装置１００のプログラムを実行したり、画像処理装置１００内のモジュールの制御を行う。ＲＯＭ制御部１０２は、システムバス部１１１のバススレーブであり、システムバス部１１１のバスマスタからのデータ転送コマンドを受け取り、ＲＯＭ部１０３にデータのリード及びライトを行う。
【００１１】
ＲＯＭ部１０３には、画像処理装置１００が動作する為のプログラムが格納されている。記録媒体制御部１０４は、システムバス部１１１のバススレーブであり、システムバス部１１１のバスマスタからのデータ転送コマンドを受け取り、画像処理装置１００にて撮影された静止画像や動画像を記録媒体部１０５に記録するための制御を行う。また、記録媒体制御部１０４は、記録媒体部１０５から静止画像や動画像を読み出すための制御を行う。記録媒体部１０５は、画像処理装置１００にて撮影された画像データを格納する為の着脱可能な記録媒体である。撮像部１０６は、システムバス部１１１のバススレーブであり、被写体の画像を撮影し、ＲＡＷ画像信号を画像処理部１０７に出力する。
【００１２】
画像処理部１０７は、システムバス部１１１のバススレーブであり、撮像部１０６から受け取ったＲＡＷ画像をＲ（赤色）画素領域、Ｇ（緑色）画素領域、Ｂ（青色）画素領域にデモザイクしてメモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納する。また、画像処理部１０７は、撮像部１０６から受け取ったＲＡＷ画像をＪＰＥＧ圧縮又はＭＰＥＧ圧縮する。ＤＭＡ部１０８は、複数のＤＭＡ部１１４〜１１６及び１２６を有する。ＤＭＡ部１０８は、画像処理部１０７からの画像データをシステムバス部１１１を介してＤＲＡＭ部１１０へのアクセスを行ったり、ＲＯＭ部１０３に格納されているアプリケーションプログラムをＲＯＭ制御部１０２を介してＤＲＡＭ部１１０へ転送する。また、ＤＭＡ部１０８は、ＤＲＡＭ部１１０上の静止画像や動画像を記録媒体制御部１０４を介して記録媒体部１０５へ転送する。
【００１３】
メモリコントローラ部１０９は、システムバス部１１１のバススレーブであり、システムバス部１１１のバスマスタからのデータ転送コマンドを受け取り、ＤＲＡＭ部１１０にデータのリード及びライトを行う。ＤＲＡＭ部１１０は、画像処理装置１００の主記憶である。システムバス部１１１は、ＣＰＵ１０１及びＤＭＡ部１０８等のバスマスタと、メモリコントローラ部１０９、ＲＯＭ制御部１０２、記録媒体制御部１０４、画像処理部１０７、撮像部１０６、ＤＭＡ部１０９のレジスタ部、等のバススレーブを接続する。例えば、画像処理装置１００は、ユーザからの指示により起動し、ＣＰＵ１０１からのコマンドにより、ＲＯＭ部１０３内にあるブートプログラムによりブートアップする。
【００１４】
次に、ＲＯＭ部１０３内のプログラムは、ＲＯＭ制御部１０２、及び、メモリコントローラ部１０９を介して、ＤＲＡＭ部１１０に展開され、画像処理装置１００が撮影可能な状態になる。次に、ユーザにより動画或いは静止画の記録を指示するための撮影操作が行われると、撮像部１０６は、撮影画像をＲＡＷ画像として画像処理部１０７に出力する。次に、そのＲＡＷ画像は、画像処理部１０７により、Ｒ画素、Ｇ画素、Ｂ画素の画像領域にデモザイクされ、ＤＭＡ部１０９により、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に後述する図３（Ａ）、図４（Ａ）、図４（Ｂ）のように格納される。次に、ＤＭＡ部１１４、ＤＭＡ部１１５、ＤＭＡ部１１６は、後述するＤＲＡＭ部１１０内のサーチ領域ＡＡ〜ＨＬと、収差検出領域Ｉ０〜Ｐ１１と、収差検出領域Ｑ０〜Ｘ１１に記憶された画像データをラスタ走査の順に読み出し、収差検出回路部１１２に出力する。収差検出回路部１１２は、順次、収差の検出をする。収差検出結果は、ＤＭＡ部１２６の制御により、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納される。
【００１５】
次に、ＤＭＡ部１０８は、ＤＲＡＭ部１１０に格納されている撮影画像及び収差検出結果を画像処理部１０７に出力する。画像処理部１０７は、収差検出結果を基に、撮影画像に対して、収差の補正を行う。次に、画像処理部１０７は、収差の補正がされた撮影画像を、ＪＰＥＧ圧縮する。ＤＭＡ部１０８は、ＪＰＥＧ圧縮された撮影画像を、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納する。次に、記録媒体制御部１０４は、ＤＲＡＭ部１１０に格納されている圧縮された撮影画像を記録媒体部１０５に格納する。
【００１６】
図２は、撮像部１０６により得られる１画面の画像データを示す図である。図２に示すように、１画面の画像データにおいて、複数の収差検出領域２０１は、ＣＰＵ１０１により設定される補正中心座標（ＯＸ，ＯＹ）を基準として、８つの検出方向毎に、８つの象限Ａ〜Ｈに分割される。方向判別部１１３は、複数の収差検出領域２０１の各々の中心座標（ＯＸＳ，ＯＹＳ）がどの象限に属するかを判別して収差の検出方向を判別する。その詳細は、後述する。ＤＭＡ部１１４は、後述するサーチ領域ＡＡ〜ＨＬを、サーチ領域毎にラスタ読み出しをする。ＤＭＡ部１１５は、後述する収差検出領域Ｉ０〜Ｐ１１を、収差検出領域毎にラスタ読み出しをする。ＤＭＡ部１１６は、後述する収差検出領域Ｑ０〜Ｈ１１を、収差検出領域毎にラスタ読み出しをする。
【００１７】
Ｇ領域制御部（緑色領域制御部）１１７は、方向判別部１１３からの方向判別結果を基に、ＤＭＡ部１１４により読み出された後述するサーチ領域ＡＡ〜ＨＬを回転及び反転処理し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部（赤色領域制御部）１１８は、方向判別部１１３からの方向判別結果を基に、ＤＭＡ部１１５により読み出された後述する収差検出領域Ｉ０〜Ｐ１１を回転及び反転処理し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部（青色領域制御部）１１９は、方向判別部１１３からの方向判別結果を基に、ＤＭＡ部１１６により読み出された後述する収差検出領域Ｑ０〜Ｈ１１を回転及び反転処理し、Ｂ画素用バッファ部１２２に書き込む。
【００１８】
Ｇ画素用バッファ部１２０は、ＳＲＡＭ等から構成され、Ｇ領域制御部１１７により回転及び反転の制御がされたサーチ領域ＡＡ〜ＨＬをバッファリングする。Ｒ画素用バッファ部１２１は、ＳＲＡＭ等から構成され、Ｒ領域制御部１１８により回転及び反転の制御がされた収差検出領域Ｉ０〜Ｐ１１をバッファリングする。Ｂ画素用バッファ部１２２は、ＳＲＡＭ等から構成され、Ｂ領域制御部１１９により回転及び反転の制御がされた収差検出領域Ｑ０〜Ｈ１１をバッファリングする。
【００１９】
エッジ検出部１２３は、Ｇ画素用バッファ部１２０からサーチ領域ＡＡ〜ＨＬ内の収差検出領域Ａ０〜Ｈ１１を、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｈ１１を読み出す。そして、エッジ検出部１２３は、輝度生成等を行い、収差検出領域内のエッジを検出し、エッジ領域をエッジ領域バッファ部１２４に書き込む。エッジ検出部１２３は、方向判別部１１３からの方向情報に従って、エッジ検出方向を変更する。
【００２０】
例えば、エッジ検出部１２３は、方向判別部１１３からの方向情報が、象限Ａ（０度）、象限Ｃ（９０度）、象限Ｅ（１８０度）、象限Ｇ（２７０度）、の時は、象限Ｅ（１８０度）の方向でエッジの検出を行う。また、エッジ検出部１２３は、方向判別部１１３からの方向情報が、象限Ｂ（４５度）、象限Ｄ（１３５度）、象限Ｆ（２２５度）、象限Ｈ（３１５度）、の時は、象限Ｄ（１３５度）の方向でエッジの検出を行う。
【００２１】
エッジ領域バッファ部１２４は、ＳＲＡＭ等から構成され、エッジ検出部１２３により検出されたエッジ領域をバッファリングする。収差検出部１２５は、Ｇ画素用バッファ部１２０からサーチ領域ＡＡ〜ＨＬを、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｈ１１を、エッジ領域バッファ部１２４からエッジ情報を読み出す。そして、収差検出部１２５は、後述する相関演算を行い、収差検出を行う。
【００２２】
収差検出部１２５は、方向判別部１１３からの方向情報に従って、エッジ検出方向を変更する。例えば、収差検出部１２５は、方向判別部１１３からの方向情報が、象限Ａ（０度）、象限Ｃ（９０度）、象限Ｅ（１８０度）、象限Ｇ（２７０度）、の時は、象限Ｅ（１８０度）の方向で収差の検出を行う。また、収差検出部１２５は、方向判別部１１３からの方向情報が、象限Ｂ（４５度）、象限Ｄ（１３５度）、象限Ｆ（２２５度）、象限Ｈ（３１５度）、の時は、象限Ｄ（１３５度）の方向で収差の検出を行う。
【００２３】
ＤＭＡ部１２６は、収差検出部１２５により検出された収差検出情報をメモリコントローラ部１０９を介してＤＲＡＭ部１１０に書き込む。例えば、初めに、ＤＭＡ部１１４、ＤＭＡ部１１５、ＤＭＡ部１１６は、ＤＲＡＭ部１１０内のサーチ領域ＡＡと、収差検出領域Ｉ０と、収差検出領域Ｑ０とを読み出す。この時、方向判別部１１３は、収差の検出方向を判別して、後述する象限Ｈ（収差検方向３１５度）と判定する。Ｇ領域制御部１１７は、サーチ領域ＡＡを左右反転、上下反転して、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ０を左右反転、上下反転して、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ０を左右反転、上下反転して、Ｂ画素用バッファ部１２２に書き込む。
【００２４】
次に、エッジ検出部１２３は、Ｇ画素用バッファ部１２０からサーチ領域ＡＡ内の収差検出領域Ａ０、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０を読み出す。そして、エッジ検出部１２３は、輝度生成した後に、エッジ検出バッファ部１２４にエッジ情報を書き込む。この時、エッジの検出方向は、象限Ｄ（１３５度）と同様の処理となる。
【００２５】
次に、収差検出部１２５は、Ｇ画素用バッファ部１２０から収差検出領域Ａ０を含むサーチ領域ＡＡ内の相関演算用領域、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０を読み出す。さらに、収差検出部１２５は、エッジ検出バッファ部１２４からエッジ情報を読み出して、相関演算し、収差の検出を行う。この時、収差の検出方向は、象限Ｄ（収差検方向１３５度）と同様の処理となる。
【００２６】
次に、収差検出部１２５により検出された収差情報は、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納され、収差検出領域Ａ０と、収差検出領域Ｉ０と、収差検出領域Ｑ０との収差の検出が終了する。こうする事で、エッジ検出部１２３、及び、収差検出部１２５の処理は、象限Ｄ（収差検方向１３５度）の処理と同様になる。次に、収差検出領域Ａ１〜収差検出領域Ｈ１１を含む個々のサーチ領域ＡＡ〜ＨＬと、収差検出領域Ｉ１〜収差検出領域Ｐ１１と、収差検出領域Ｑ１〜収差検出領域Ｘ１１をラスタ読み出ししながら順次、収差の検出を行っていく。
【００２７】
方向判別部１１３による方向判別結果が、象限Ａの場合、図５に示すように、例えば、サーチ領域ＡＦは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＡＦを上下反転して、Ｇ画素バッファ部１２０に書き込む。図５に示すように、例えば、収差検出領域Ｉ５は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｉ５を上下反転して、Ｒ画素バッファ部１２１に書き込む。図５に示すように、例えば、収差検出領域Ｑ５は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｑ５を上下反転して、Ｂ画素バッファ部１２２に書き込む。
【００２８】
方向判別部１１３による方向判別結果が、象限Ｂの場合、図６に示すように、例えば、サーチ領域ＡＬは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＡＬを上下反転して、Ｇ画素バッファ部１２０に書き込む。図６に示すように、例えば、収差検出領域Ｉ１１は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｉ１１を上下反転して、Ｒ画素バッファ部１２１に書き込む。図６に示すように、例えば、収差検出領域Ｑ１１は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｑ１１を上下反転して、Ｂ画素バッファ部１２２に書き込む。
【００２９】
方向判別部１１３による方向判別結果が、象限Ｃの場合、図７に示すように、例えば、サーチ領域ＣＬは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＣＬを右９０度回転して、Ｇ画素バッファ部１２０に書き込む。図７に示すように、例えば、収差検出領域Ｋ１１は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｋ１１を右９０度回転して、Ｒ画素バッファ部１２１に書き込む。図７に示すように、例えば、収差検出領域Ｓ１１は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｓ１１を右９０度回転して、Ｂ画素バッファ部１２２に書き込む。
【００３０】
方向判別部１１３による方向判別結果が、象限Ｄの場合、図８に示すように、例えば、サーチ領域ＧＫは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＧＫをそのままＧ画素バッファ部１２０に書き込む。図８に示すように、例えば、収差検出領域Ｏ１０は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｏ１０をそのままＲ画素バッファ部１２１に書き込む。図８に示すように、例えば、収差検出領域Ｗ１０は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｗ１０をそのままＢ画素バッファ部１２２に書き込む。
【００３１】
方向判別部１１３による方向判別結果が、象限Ｅの場合、図９に示すように、例えば、サーチ領域ＧＧは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＧＧをそのままＧ画素バッファ部１２０に書き込む。図９に示すように、例えば、収差検出領域Ｏ６は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｏ６をそのままＲ画素バッファ部１２１に書き込む。図９に示すように、例えば、収差検出領域Ｗ６は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｗ６をそのままＢ画素バッファ部１２２に書き込む。
【００３２】
方向判別部１１３による方向判別結果が、象限Ｆの場合、図１０に示すように、例えば、サーチ領域ＨＡは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＨＡを左右反転して、Ｇ画素バッファ部１２０に書き込む。図１０に示すように、例えば、収差検出領域Ｐ０は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｐ０を左右反転して、Ｒ画素バッファ部１２１に書き込む。図１０に示すように、例えば、収差検出領域Ｘ０は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｘ０を左右反転して、Ｂ画素バッファ部１２２に書き込む。
【００３３】
方向判別部１１３による方向判別結果が、象限Ｇの場合、図１１に示すように、例えば、サーチ領域ＤＢは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＤＢを右９０度回転した後、上下反転して、Ｇ画素バッファ部１２０に書き込む。図１１に示すように、例えば、収差検出領域Ｌ１は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｌ１を右９０度回転した後、上下反転して、Ｒ画素バッファ部１２１に書き込む。図１１に示すように、例えば、収差検出領域Ｔ１は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｔ１を右９０度回転した後、上下反転して、Ｂ画素バッファ部１２２に書き込む。
【００３４】
方向判別部１１３による方向判別結果が、Ｈ象限の場合、図１２に示すように、例えば、サーチ領域ＡＡは、ＤＭＡ部１１４の制御により読み出される。Ｇ領域制御部１１７は、サーチ領域ＡＡを左右反転した後、上下反転して、Ｇ画素バッファ部１２０に書き込む。図１２に示すように、例えば、収差検出領域Ｉ０は、ＤＭＡ部１１５の制御により読み出される。Ｒ領域制御部１１８は、収差検出領域Ｉ０を左右反転した後、上下反転して、Ｒ画素バッファ部１２１に書き込む。図１２に示すように、例えば、収差検出領域Ｑ０は、ＤＭＡ部１１６の制御により読み出される。Ｂ領域制御部１１９は、収差検出領域Ｑ０を左右反転した後、上下反転して、Ｂ画素バッファ部１２２に書き込む。
【００３５】
このように象限Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ，Ｇ、Ｈによって、Ｇ画素バッファ部１２０、Ｒ画素バッファ部１２１、Ｂ画素バッファ部１２２への書き込み制御を変更する。これにより、エッジ検出部１２３、及び、収差検出部１２５の処理は、象限Ｄ、及び、象限Ｅの方向の２つのみの収差の検出の処理に集約される。こうする事で、象限Ａ、Ｃ、Ｇの処理は、象限Ｅの収差検出方向に集約され、象限Ｂ、Ｆ、Ｈの処理は、象限Ｄの検出方向に集約されるので、エッジ検出部１２３、及び、収差検出部１２５の処理回路の複雑度を低減し、回路規模をより小さくする事ができる。
【００３６】
次に、図２を用いて、方向判別部１１３における方向判別の方法の一例について説明する。撮影画像２００は、収差検出領域２０１及び余分画素領域２０２を有する。収差検出領域２０１は、収差の検出を行う領域群である。余分画素領域２０２は、後述する収差検出の際の相関演算に用いる為の画素領域である。座標ＯＸは、ＣＰＵ１０１から方向判別部１１３に設定される、撮影画像２００の水平方向の補正中心座標である。座標ＯＹは、ＣＰＵ１０１から方向判別部１１３に設定される、撮影画像２００の垂直方向の補正中心座標である。座標ＯＳＸは、ＣＰＵ１０１から方向判別部１１３に設定される、収差検出領域２０１をラスタ走査の順に読み出す際の収差検出領域２０１の水平方向の中心座標である。座標ＯＳＹは、ＣＰＵ１０１から方向判別部１１３に設定される、収差検出領域２０１をラスタ走査の順に読み出す際の初めの収差検出領域２０１の水平方向の中心座標である。
【００３７】
象限Ａは、収差の検出方向が０度方向の象限である。象限Ｂは、収差の検出方向が４５度方向の象限である。象限Ｃは、収差の検出方向が９０度方向の象限である。象限Ｄは、収差の検出方向が１３５度方向の象限である。象限Ｅは、収差の検出方向が１８０度方向の象限である。象限Ｆは、収差の検出方向が２２５度方向の象限である。象限Ｇは、収差の検出方向が２７０度方向の象限である。象限Ｈは、収差の検出方向が３１５度方向の象限である。例えば、象限Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈは、座標（ＯＸ、ＯＹ）を中心として、以下の式（１）、（２）、（３）、（４）の分割線により分割される。
【００３８】
Ｙ＝２×（Ｘ−ＯＸ）＋ＯＹ  …（１）
Ｙ＝（１／２）×（Ｘ−ＯＸ）＋ＯＹ  …（２）
Ｙ＝−２×（Ｘ−ＯＸ）＋ＯＹ  …（３）
Ｙ＝−（１／２）×（Ｘ−ＯＸ）＋ＯＹ  …（４）
【００３９】
方向判別部１１３は、座標（ＯＳＸ、ＯＳＹ）が、式（１）から（４）の分割線により象限Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈに分割されるどの位置に存在するかを判別して収差検出の方向判別を行う。収差検出領域２０１はラスタ走査の順に読み出される。以降の収差検出領域２０１の中心画像は、座標（ＯＳＸ、ＯＳＹ）に対して、ラスタ走査の順に、収差検出領域２０１の水平画素数、及び、収差検出領域２０１の垂直画素数を加算する事により算出される。
【００４０】
方向判別部１１３は、算出した収差検出領域２０１の中心座標（ＯＳＸ、ＯＳＹ）が、式（１）から（４）の分割線により象限Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ，Ｇ，Ｈに分割されるどの位置に存在するかを判別して収差検出の方向判別を行う。次に、図３（Ａ）、（Ｂ）及び図４（Ａ）、（Ｂ）を用いて収差検出の一例を説明する。
【００４１】
画像３００は、撮影画像のＧ画素である水平１０４画素、垂直７２画素からなる撮影画像Ｇ画素データである。図３（Ａ）に示す収差検出領域Ａ０〜Ｈ１１は、それぞれ、水平８画素、垂直８画素の収差検出対象であるＧ画素の収差検出領域である。また、収差検出領域Ａ０〜Ｈ１１は、後述する相関演算用領域ともなる。図３（Ｂ）に示すサーチ領域ＡＡ〜ＨＬは、それぞれ、相関演算する為の相関演算領域を含む水平１６画素、垂直１６画素が格子状に配置されている領域である。
【００４２】
各サーチ領域ＡＡ〜ＨＬの水平、垂直の画素数は、相関演算用の領域の個数により決定される。例えば、収差検出領域Ａ０〜Ｈ１１、収差検出領域Ｉ０〜Ｐ１１、収差検出領域Ｑ０〜Ｘ１１の各々を中心として、水平方向にプラス４画素、マイナス４画素の範囲、かつ、垂直方向にプラス４画素、マイナス４画素の範囲で相関演算をする場合を説明する。その場合、サーチ領域は水平１６画素、垂直１６画素からなる。
【００４３】
図４（Ａ）に示す画像３０１は、撮影画像のＲ画素である水平１０８画素、垂直７６画素のからなる撮影画像Ｒ画素データである。収差検出領域Ｉ０〜Ｐ１１は、水平８画素、垂直８画素の収差検出対象であるＲ画素の収差検出領域である。図４（Ｂ）に示す画像３０２は、撮影画像のＢ画素である水平１０８画素、垂直７６画素のからなる撮影画像Ｂ画素データである。収差検出領域Ｑ０〜Ｘ１１は、水平８画素、垂直８画素の収差検出対象であるＢ画素の収差検出領域である。
【００４４】
図３（Ａ）の領域３０３は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０４は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０５は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０６は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０７は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０８は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３０９は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。領域３１０は、収差の検出をする為に、図４（Ａ）の収差検出領域Ｋ９、図４（Ｂ）の収差検出領域Ｓ９と相関演算する為の水平８画素、垂直８画素の相関演算用領域である。
【００４５】
例えば、方向判別部１２３により象限Ｂ（検出方向４５度）と判定されている水平８画素、垂直８画素の収差検出領域Ｃ９、収差検出領域Ｋ９、収差検出領域Ｓ９における収差検出について説明する。
【００４６】
まず、ＤＭＡ部１１４は、サーチ領域ＣＪを読み出す。ＤＭＡ部１１５は、収差検出領域Ｋ９を読み出す。ＤＭＡ部１１６は、収差検出領域Ｓ９を読み出す。次に、Ｇ領域制御部１１７は、サーチ領域ＣＪを上下反転して、Ｇ画素用バッファ部１２０に相関演算用領域３０３〜３１０、及び、Ｃ９を書き込む。Ｒ領域制御部１１８は、収差検出領域Ｋ９を上下反転して、Ｒ画素用バッファ部１２１に収差検出領域Ｋ９を書き込む。Ｂ領域制御部１１９は、収差検出領域Ｓ９を上下反転して、Ｂ画素用バッファ部１２２に収差検出領域Ｓ９を書き込む。
【００４７】
次に、エッジ検出部１２３は、収差検出領域Ｃ９と、収差検出領域Ｋ９と、収差検出領域Ｓ９とから輝度を生成した後、収差検出方向にエッジの検出を行い、エッジ情報をエッジ検出バッファ部１２４に書き込む。次に、収差検出部１２５は、エッジ検出バッファ部１２４内のエッジ情報を使用して、収差検出領域Ｋ９と、収差検出領域Ｓ９と、相関演算用領域３０３〜３１０とを相関演算する。そして、収差検出部１２５は、収差検出領域Ｃ９と、収差検出領域Ｋ９と、収差検出領域Ｓ９とにおける、収差検出方向に収差の検出を行う。
【００４８】
このように、収差検出領域Ｃ９と、収差検出領域Ｋ９と、収差検出領域Ｓ９にて輝度生成した後、エッジ検出する。そして、エッジ検出情報を基に、相関演算用領域３０３〜３１０のように、サーチ領域ＣＪ内の収差検出方向に水平、垂直に相関演算用領域を１画素ずつずらした領域を、相関演算を行う領域として、相関演算する事で収差の検出を行う。この時、エッジ検出部１２３、及び、収差検出部１２５でエッジ検出及び収差検出を行う処理は、象限Ｄ（検出方向１３５度）と同様になる。
【００４９】
収差検出部１２５は、撮影した画像の所定の画素を補正中心として、放射状に複数の方向（例えば８個の方向）の収差を検出する。本実施形態によれば、収差検出回路部１１２の複雑度を低減し、回路規模をより小さくする事ができる。その動作の一例を、水平１０４画素、垂直７２画素からなり、収差の検出領域が水平８画素、垂直８画素で、検出方向が図２に示すように８つの方向の象限に分割された画像を例に、図１３のフローチャートを参照しながら、画像処理方法を説明する。
【００５０】
ステップＳ１０００では、ユーザの操作により画像処理装置１００の電源がオンする。ステップＳ１００１では、ユーザからの操作により撮影指示があると、撮像部１０６は、撮影画像をＲＡＷ画像として画像処理部１０７に出力する。画像処理部１０７は、入力したＲＡＷ画像をＲ画素、Ｇ画素、Ｂ画素の画像領域毎にデモザイクする。ＤＭＡ部１０８は、そのＲ画素、Ｇ画素、Ｂ画素のＲＡＷ画像を、それぞれ、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に図３（Ａ）、図４（Ａ）、図４（Ｂ）のように格納する。
【００５１】
ステップＳ１００２では、ＤＭＡ部１１４〜１１６は、図３（Ｂ）のサーチ領域ＡＡ〜ＨＬと、図４（Ａ）の収差検出領域Ｉ０〜Ｐ１１と、図４（Ｂ）の収差検出領域Ｑ０〜Ｘ１１とをラスタ読み出しをして、収差検出回路部１１２に出力する。ステップＳ１００３では、方向判別部１１３は、収差の検出方向を判別して、象限Ａ〜Ｈを判定し、ステップＳ１００４〜Ｓ１０１１に進む。
【００５２】
ステップＳ１００４は、方向判別部１１３により、象限Ａと判定された場合の処理である。ステップＳ１００４では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを上下反転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を上下反転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を上下反転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１２に進む。
【００５３】
ステップＳ１００５は、方向判別部１１３により、象限Ｂと判定された場合の処理である。ステップＳ１００５では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを上下反転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を上下反転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を上下反転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１４に進む。
【００５４】
ステップＳ１００６は、方向判別部１１３により、象限Ｃと判定された場合の処理である。ステップＳ１００６では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを右９０度回転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を右９０度回転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を右９０度回転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１２に進む。
【００５５】
ステップＳ１００７は、方向判別部１１３により、象限Ｄと判定された場合の処理である。ステップＳ１００７では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬをそのままＧ画素用バッファ部１２０に書き込み、方向変換しない。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１をそのままＲ画素用バッファ部１２１に書き込み、方向変換しない。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１をそのままＢ画素用バッファ部１２２に書き込み、方向変換しない。その後、ステップＳ１０１４に進む。
【００５６】
ステップＳ１００８は、方向判別部１１３により、象限Ｅと判定された場合の処理である。ステップＳ１００８では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬをそのままＧ画素用バッファ部１２０に書き込み、方向変換しない。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１をそのままＲ画素用バッファ部１２１に書き込み、方向変換しない。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１をそのままＢ画素用バッファ部１２２に書き込み、方向変換しない。その後、ステップＳ１０１２に進む。
【００５７】
ステップＳ１００９は、方向判別部１１３により、象限Ｆと判定された場合の処理である。ステップＳ１００９では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを左右反転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を左右反転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を左右反転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１４に進む。
【００５８】
ステップＳ１０１０は、方向判別部１１３により、象限Ｇと判定された場合の処理である。ステップＳ１０１０では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを右９０度回転及び上下反転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を右９０度回転及び上下反転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を右９０度回転及び上下反転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１２に進む。
【００５９】
ステップＳ１０１１は、方向判別部１１３により、象限Ｈと判定された場合の処理である。ステップＳ１０１１では、Ｇ領域制御部１１７は、サーチ領域ＡＢ〜ＨＬを左右反転及び上下反転することにより方向変換し、Ｇ画素用バッファ部１２０に書き込む。Ｒ領域制御部１１８は、収差検出領域Ｉ１〜Ｐ１１を左右反転及び上下反転することにより方向変換し、Ｒ画素用バッファ部１２１に書き込む。Ｂ領域制御部１１９は、収差検出領域Ｑ１〜Ｘ１１を左右反転及び上下反転することにより方向変換し、Ｂ画素用バッファ部１２２に書き込む。その後、ステップＳ１０１４に進む。
【００６０】
ステップＳ１０１２は、方向判別部１１３により、象限Ａ，Ｃ，Ｅ，Ｇと判定された場合の処理である。ステップＳ１０１２では、エッジ検出部１２３は、象限Ｅの検出方向１８０度の方向で、Ｇ画素用バッファ部１２０からサーチ領域ＡＡ〜ＡＨ内の収差検出領域Ａ０〜Ｈ１１を読み出し、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を読み出す。さらに、エッジ検出部１２３は、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｘ１１を読み出し、輝度生成した後に、エッジを検出し、エッジ検出バッファ部１２４にエッジ情報を書き込む。その後、ステップＳ１０１３に進む。
【００６１】
ステップＳ１０１３では、収差検出部１２５は、Ｇ画素用バッファ部１２０から収差検出領域Ａ０〜Ｈ１１を含むサーチ領域ＡＡ〜ＨＬ内の相関演算用領域を読み出し、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を読み出す。さらに、収差検出部１２５は、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｘ１１を読み出し、エッジ検出バッファ部１２４からエッジ情報を読み出し、象限Ｅの検出方向１８０度の方向で相関演算し、収差の検出を行う。その後、ステップＳ１０１６に進む。
【００６２】
ステップＳ１０１４は、方向判別部１１３により、象限Ｂ，Ｄ，Ｆ，Ｈと判定された場合の処理である。ステップＳ１０１４では、エッジ検出部１２３は、象限Ｄの検出方向１３５度の方向で、Ｇ画素用バッファ部１２０からサーチ領域ＡＡ〜ＡＨ内の収差検出領域Ａ０〜Ｈ１１を読み出し、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を読み出す。さらに、エッジ検出部１２３は、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｘ１１を読み出し、輝度生成した後に、エッジを検出し、エッジ検出バッファ部１２４にエッジ情報を書き込む。その後、ステップＳ１０１５に進む。
【００６３】
ステップＳ１０１５では、収差検出部１２５は、Ｇ画素用バッファ部１２０から収差検出領域Ａ０〜Ｈ１１を含むサーチ領域ＡＡ〜ＨＬ内の相関演算用領域を読み出し、Ｒ画素用バッファ部１２１から収差検出領域Ｉ０〜Ｐ１１を読み出す。さらに、収差検出部１２５は、Ｂ画素用バッファ部１２２から収差検出領域Ｑ０〜Ｘ１１を読み出し、エッジ検出バッファ部１２４からエッジ情報を読み出し、象限Ｄの検出方向１３５度の方向で相関演算し、収差の検出を行う。その後、ステップＳ１０１６に進む。
【００６４】
ステップＳ１０１６では、画像処理装置１００は、収差検出領域Ｈ１１と、収差検出領域Ｐ１１と、収差検出領域Ｘ１１の収差検出が終了したか判定する。終了していない場合、ステップＳ１００３に戻り、収差検出領域Ａ０〜Ｈ１１と、収差検出領域Ｉ０〜Ｐ１１と、収差検出領域Ｑ０〜Ｘ１１とをラスタ読み出ししながら順次、収差の検出を行う。
【００６５】
収差検出領域Ｈ１１と、収差検出領域Ｐ１１と、収差検出領域Ｘ１１の収差検出が終了した場合、最後の収差検出領域であった場合、ステップＳ１０１７に進む。ステップＳ１０１７では、ＤＭＡ部１０８は、ＤＲＡＭ部１１０上に格納されている撮影画像と、収差検出結果を画像処理部１０７に転送する。画像処理部１０７は、収差検出結果を基に、撮影画像を補正する。
【００６６】
その後、ステップＳ１０１８では、画像処理部１０７は、収差補正後の撮影画像をＪＰＥＧ圧縮する。ＤＭＡ部１０８は、ＪＰＥＧ圧縮された撮影画像をメモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納する。記録媒体制御部１０４は、ＤＲＡＭ部１１０に格納されているＪＰＷＧ圧縮された撮影画像を記録媒体部１０５に格納する。ステップＳ１０１９では、ユーザの操作により画像処理装置１００の電源がオフする。
【００６７】
本実施形態によれば、Ｇ領域制御部１１７、Ｒ領域制御部１１８及びＢ領域制御部１１９は、収差を検出する８個の象限Ａ〜Ｈの方向を２個の象限Ｄ及びＥの方向に集約するように、８個の象限Ａ〜Ｈの方向の領域の画像をそれぞれ方向変換する。具体的には、４個の象限Ａ、Ｃ、Ｅ、Ｇの方向は１個の象限Ｅの方向に集約され、４個の象限Ｂ、Ｄ、Ｆ、Ｈの方向は他の１個の象限Ｄの方向に集約される。Ｇ領域制御部１１７は緑色領域の画像を方向変換し、Ｒ領域制御部１１８は赤色領域の画像を方向変換し、Ｂ領域制御部１１９は青色領域の画像を方向変換する。収差検出部１２５は、その方向変換された８個の象限Ａ〜Ｈの方向の領域の画像について、それぞれ、集約された２個の象限Ｄ及びＥの方向のうちのいずれかの方向で収差を検出することにより、８個の象限Ａ〜Ｈの方向の収差を検出する。画像処理部１０７は、収差検出部１２５により検出された収差を基に画像を補正する。
【００６８】
本実施形態によれば、収差検出回路部１１２を収差の検出方向に関係なく象限Ｄ及びＥの処理に集約できる為、収差検出回路部１１２の複雑度を低減し、回路規模をより小さくするができる。
【００６９】
（第２の実施形態）
本発明の第２の実施形態に係る画像処理装置を図１４〜図２６を用いて説明する。なお、以下において、同一構成要素には同じ符号を付し、その説明を省略する。図１４は、本発明の第２の実施形態に係る画像処理装置の構成を示す図である。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００７０】
ユーザからの指示により撮影操作が行われると、撮像部１０６は、撮影画像をＲＡＷ画像として画像処理部１０７に出力する。画像処理部１０７は、そのＲＡＷ画像をＲ画素、Ｇ画素、Ｂ画素の画像領域にデモザイクする。ＤＭＡ部１０８は、Ｒ画素、Ｇ画素、Ｂ画素の画像領域を、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に後述する図１５（Ａ）、図１６（Ａ）、図１７（Ａ）のように格納する。次に、ＤＭＡ部６１４、ＤＭＡ部６１５、ＤＭＡ部６１６は、ＤＲＡＭ部１１０内のサーチ領域ＡＡ〜ＨＬと、収差検出拡大領域ＩＡ〜ＰＬと、収差検出拡大領域ＱＡ〜ＸＬとをラスタ読み出しし、収差検出回路部６１２に出力する。収差検出回路部６１２は、収差の検出をして、収差検出結果を出力する。ＤＭＡ部１２６は、収差検出結果をメモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納する。
【００７１】
次に、ＤＭＡ部１０８は、ＤＲＡＭ部１１０上に格納されている撮影画像及び収差検出結果を、画像処理部１０７に転送する。画像処理部１０７は、収差検出結果を基に、撮影画像に対して、収差の補正を行う。次に、画像処理部１０７は、収差の補正がされた撮影画像を、ＪＰＥＧ圧縮する。ＤＭＡ部１０８は、ＪＰＥＧ圧縮された撮影画像を、メモリコントローラ部１０９を介してＤＲＡＭ部１１０に格納する。次に、記録媒体制御部１０４は、ＤＲＡＭ部１１０に格納されているＪＰＷＧ圧縮された撮影画像を記録媒体部１０５に格納する。
【００７２】
ＤＭＡ部６１４、ＤＭＡ部６１５、ＤＭＡ部６１６は、ＤＲＡＭ部１１０内のサーチ領域ＡＡ〜ＨＬと、収差検出拡大領域ＩＡ〜ＰＬと、収差検出拡大領域ＱＡ〜ＸＨとをラスタ読み出しし、収差検出回路部６１２に転送する。収差検出回路部６１２は、収差の検出をし、収差検出結果を出力する。複数の収差検出領域２０１は、ＣＰＵ１０１により設定される補正中心座標（ＯＸ，ＯＹ）を基準として、８つの検出方向毎に、８つの象限Ａ〜Ｈに分割される。方向判別部６１３は、複数の収差検出領域２０１の各々の中心座標（ＯＸＳ，ＯＹＳ）がどの象限に属するかを判別して収差の検出方向を判別する。
【００７３】
ＤＭＡ部６１４は、後述する拡大サーチ領域ＡＡ０〜ＨＬ０を、サーチ領域毎にラスタ読み出しする。ＤＭＡ部６１５は、後述する収差検出拡大領域ＩＡ〜ＰＬを、収差検出拡大領域毎にラスタ読み出しする。ＤＭＡ部６１６は、後述する収差検出拡大領域ＱＡ〜ＨＬを、収差検出拡大領域毎にラスタ読み出しする。
【００７４】
Ｇ領域制御部６１７は、方向判別部６１３からの方向判別結果を基に、ＤＭＡ部６１４から読み出された後述する拡大サーチ領域ＡＡ０〜ＨＬ０を回転、反転処理、ベクトル回転し、サーチ領域ＡＡ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、方向判別部６１３からの方向判別結果を基に、ＤＭＡ部６１５から読み出された後述する収差検出拡大領域ＩＡ〜ＰＬを回転、反転処理、ベクトル回転し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｒ領域制御部６１９は、方向判別部６１３からの方向判別結果を基に、ＤＭＡ部６１６から読み出された後述する収差検出拡大領域ＱＡ〜ＨＬを回転、反転処理、ベクトル回転し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【００７５】
ベクトル回転は、以下の式（５）により回転動作を行う。
【００７６】
【数１】
2016122929.tif 000003
【００７７】
例えば、４５度の右方向のベクトル回転を行う時は、以下の式（６）によりベクトル回転を行う。
【００７８】
【数２】
2016122929.tif 000004
【００７９】
Ｇ画素用バッファ部６２０は、ＳＲＡＭ等から構成され、Ｇ領域制御部６１７により回転、反転、ベクトル回転の制御がされたサーチ領域ＡＡ〜ＨＬをバッファリングする。Ｒ画素用バッファ部６２１は、ＳＲＡＭ等から構成され、Ｒ領域制御部６１８により回転、反転、ベクトル回転の制御がされた収差検出領域Ｉ２０〜Ｐ３１をバッファリングする。Ｂ画素用バッファ部６２２は、ＳＲＡＭ等から構成され、Ｂ領域制御部６１９により回転、反転、ベクトル回転の制御がされた収差検出領域Ｑ２０〜Ｘ３１をバッファリングする。
【００８０】
エッジ検出部６２３は、Ｇ画素用バッファ部６２０からサーチ領域ＡＡ〜ＨＬ内の収差検出領域Ａ２０〜Ｈ３１を読み出し、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０〜Ｐ３１を読み出す。さらに、エッジ検出部６２３は、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０〜Ｘ３１を読み出し、輝度生成等を行い、収差検出領域内のエッジを検出してエッジ領域をエッジ領域バッファ部６２４に書き込む。エッジ検出部６２３は、方向判別部６１３からの方向情報によらず常に同一の方向にエッジの検出を行う。方向判別部６１３からの方向情報が、象限Ａ（０度）、象限Ｂ（４５度）、象限Ｃ（９０度）、象限Ｄ（１３５度）、象限Ｅ（１８０度）、象限Ｆ（２２５度）、象限Ｇ（２７０度）、象限Ｈ（３１５度）の全てで、象限Ｅ（１８０度）の方向でエッジの検出を行う。
【００８１】
エッジ領域バッファ部６２４は、ＳＲＡＭ等から構成され、エッジ検出部６２３により検出されたエッジ領域をバッファリングする。収差検出部６２５は、Ｇ画素用バッファ部６２０からサーチ領域ＡＡ〜ＨＬを読み出し、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０〜Ｐ３１を読み出し、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０〜Ｘ３１を読み出す。さらに、収差検出部６２５は、エッジ領域バッファ部６２４からエッジ情報を読み出し、後述する相関演算をして、収差検出を行う。
【００８２】
収差検出部６２５は、方向判別部６１３の方向情報が象限Ａ（０度）、象限Ｂ（４５度）、象限Ｃ（９０度）、象限Ｄ（１３５度）、象限Ｅ（１８０度）、象限Ｆ（２２５度）、象限Ｇ（２７０度）、象限Ｈ（３１５度）の全てで、象限Ｅの方向で収差検出を行う。例えば、初めに、ＤＭＡ部６１４、ＤＭＡ部６１５、ＤＭＡ部６１６は、拡大サーチ領域ＡＡ０と、収差検出拡大領域ＩＡと、収差検出拡大領域ＱＡとを読み出す。この時、方向判別部６１３は、収差の検出方向を判別して、後述する象限Ｈ（収差検方向３１５度）と判定する。
【００８３】
Ｇ領域制御部６１７は、図２５のように、拡大サーチ領域ＡＡ０を左右反転、上下反転して、４５度右にベクトル回転して、サーチ領域ＡＡをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、図２５のように、収差検出拡大領域ＩＡを左右反転、上下反転して、４５度右にベクトル回転して、収差検出領域Ｉ２０をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、図２５のように、収差検出領域ＱＡを左右反転、上下反転して、４５度右にベクトル回転して、収差検出領域Ｑ２０をＢ画素用バッファ部６２２に書き込む。
【００８４】
次に、エッジ検出部６２３は、Ｇ画素用バッファ部６２０からサーチ領域ＡＡ内の収差検出領域Ａ０を読み出し、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０を読み出し、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０を読み出す。さらに、エッジ検出部６２３は、輝度生成した後に、エッジ領域バッファ部６２４にエッジ情報を書き込む。この時、エッジの検出方向は、象限Ｅ（１８０度）と同様の処理となる。
【００８５】
次に、収差検出部６２５は、Ｇ画素用バッファ部６２０から収差検出領域Ａ２０を含むサーチ領域ＡＡ内の相関演算用領域を読み出し、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０を読み出し、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０を読み出す。さらに、収差検出部６２５は、エッジ検出バッファ部６２４からエッジ情報を読み出し、相関演算して収差の検出を行う。この時、収差の検出方向は、象限Ｅ（収差検方向１８０度）と同様の処理となる。こうする事で、エッジ検出部６２３、及び、収差検出部６２５の処理は、象限Ｅ（収差検方向１８０度）の処理と同様になる。
【００８６】
次に、図１５〜図１７において、収差検出領域Ａ２１〜Ｈ３１を含む個々のサーチ領域ＡＡ〜ＨＬと、収差検出領域Ｉ２１〜Ｐ３１を含む収差検出拡大領域ＩＡ〜ＰＬと、収差検出領域Ｑ２１〜Ｘ３１を含む収差検出拡大領域ＱＡ〜ＸＬをラスタ読み出しする。そして、収差の検出を行う。
【００８７】
方向判別部６１３による方向判別結果が、象限Ａの場合、図１８に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＡＦ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＡＦ０を上下反転して、サーチ領域ＡＦを、Ｇ画素バッファ部６２０に書き込む。図１８に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＩＦを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＩＦを上下反転して、収差検出領域Ｉ２５をＲ画素バッファ部６２１に書き込む。図１８に示すように、例えば、ＤＭＡ部６１６は、収差検出領域ＧＦを読み出す。Ｂ領域制御部６１９は、収差検出領域ＧＦを上下反転して、収差検出領域Ｇ２５をＢ画素バッファ部６２２に書き込む。
【００８８】
方向判別部６１３による方向判別結果が、象限Ｂの場合、図１９に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＡＬ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＡＬ０を上下反転して右４５度にベクトル回転して、サーチ領域ＡＬをＧ画素バッファ部６２０に書き込む。図１９に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＩＬを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＩＬを上下反転して右４５度にベクトル回転して、収差検出領域Ｉ２１をＲ画素バッファ部６２１に書き込む。図１９に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＱＬを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＱＬを上下反転して右４５度にベクトル回転して、収差検出領域Ｑ２１をＢ画素バッファ部６２２に書き込む。
【００８９】
方向判別部６１３による方向判別結果が、象限Ｃの場合、図２０に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＣＬ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＣＬ０を右９０度回転して、サーチ領域ＣＬをＧ画素バッファ部６２０に書き込む。図２０に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＫＬを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＫＬを右９０度回転して、収差検出領域Ｋ２１をＲ画素バッファ部６２１に書き込む。図２０に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＳＬを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＳＬを右９０度回転して、収差検出領域Ｓ２１をＢ画素バッファ部６２２に書き込む。
【００９０】
方向判別部６１３による方向判別結果が、象限Ｄの場合、図２１に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＧＫ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＧＫ０を右４５度にベクトル回転して、サーチ領域ＧＫをＧ画素バッファ部６２０に書き込む。図２１に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＯＫを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＯＫを右４５度にベクトル回転して、収差検出領域Ｏ２０をＲ画素バッファ部６２１に書き込む。図２１に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＷＫを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＷＫを右４５度にベクトル回転して、収差検出領域Ｗ２０をＢ画素バッファ部６２２に書き込む。
【００９１】
方向判別部６１３による方向判別結果が、象限Ｅの場合、図２２に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＧＧ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＧＧ０内のサーチ領域ＧＧをそのままＧ画素バッファ部６２０に書き込む。図２２に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＯＧを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＯＧ内の収差検領域Ｏ２６をそのままＲ画素バッファ部６２１に書き込む。図２２に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＷＧを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＷＧ内の収差検出領域Ｗ２６をそのままＢ画素バッファ部６２２に書き込む。
【００９２】
方向判別部６１３による方向判別結果が、象限Ｆの場合、図２３に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＨＡ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＨＡ０を左右反転して、右４５度にベクトル回転して、サーチ領域ＨＡをＧ画素バッファ部６２０に書き込む。図２３に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＰＡを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＰＡを左右反転して、右４５度にベクトル回転して、収差検出領域Ｐ２０をＲ画素バッファ部６２１に書き込む。図２３に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＸＡを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＸＡを左右反転して、右４５度にベクトル回転して、収差検出領域Ｘ２０をＢ画素バッファ部１２２に書き込む。
【００９３】
方向判別部６１３による方向判別結果が、象限Ｇの場合、図２４に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＤＢ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＤＢ０を右９０度回転した後、上下反転して、サーチ領域ＤＢをＧ画素バッファ部６２０に書き込む。図２４に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＬＢを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＬＢを右９０度回転した後、上下反転して、収差検出領域Ｌ２１をＲ画素バッファ部６２１に書き込む。図２４に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＴＢを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＴＢを右９０度回転した後、上下反転して、収差検出領域Ｔ２１をＢ画素バッファ部６２２に書き込む。
【００９４】
方向判別部６１３による方向判別結果が、象限Ｈの場合、図２５に示すように、例えば、ＤＭＡ部６１４は、拡大サーチ領域ＡＡ０を読み出す。Ｇ領域制御部６１７は、拡大サーチ領域ＡＡ０を左右反転した後、上下反転して、右４５度にベクトル回転して、サーチ領域ＡＡをＧ画素バッファ部６２０に書き込む。図２５に示すように、例えば、ＤＭＡ部６１５は、収差検出拡大領域ＩＡを読み出す。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡを左右反転した後、上下反転して、右４５度にベクトル回転して、収差検出領域Ｉ２０をＲ画素バッファ部６２１に書き込む。図２５に示すように、例えば、ＤＭＡ部６１６は、収差検出拡大領域ＱＡを読み出す。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡを左右反転した後、上下反転して、右４５度にベクトル回転して、収差検出領域Ｑ２０をＢ画素バッファ部６２２に書き込む。
【００９５】
このように象限Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈによって、Ｇ画素バッファ部６２０、Ｒ画素バッファ部６２１、Ｂ画素バッファ部６２２への書き込み制御を変更する。これにより、エッジ検出部６２３、及び、収差検出部６２５の処理は、象限Ｅの方向の１つのみの処理に集約されるので、エッジ検出部６２３、及び、収差検出部６２５の処理回路の複雑度を低減し、回路規模をより小さくする事ができる。方向判別部６１３における方向判別の方法の一例については第１の実施形態と同様である。
【００９６】
次に、図１５〜図１７を用いて、本発明の第２の実施形態に係る収差検出の一例を説明する。画像７００は、撮影画像のＧ画素である水平１０８画素、垂直７６画素からなる撮影画像Ｇ画素データである。左右の６画素、及び、上下の６画素は後述する相関演算をする為の余分画素である。図１５（Ａ）に示す収差検出領域Ａ２０〜Ｈ３１は、ベクトル回転して、水平８画素、垂直８画素の収差検出対象であるＧ画素の収差検出領域である。また、収差検出領域Ａ２０〜Ｈ３１は、後述する相関演算用領域ともなる。図１５（Ｂ）に示す拡大サーチ領域ＡＡ０〜ＨＬ０は、相関演算する為の相関演算領域を含む水平２０画素、垂直２０画素が格子状に配置されている拡大サーチ領域である。
【００９７】
図１６（Ａ）に示す画像７０１は、撮影画像のＲ画素である水平１０８画素、垂直７６画素のからなる撮影画像Ｒ画素データである。図１６（Ａ）に示す収差検出領域Ｉ２０〜Ｐ３１は、ベクトル回転して、水平８画素、垂直８画素の収差検出対象であるＲ画素の収差検出領域である。図１６（Ｂ）に示す収差検出拡大領域ＩＡ〜ＰＬは、ベクトル回転して、水平８画素、垂直８画素の収差検出領域Ｉ２０〜Ｐ３１として確保できる為の、格子状に配置されている水平１２画素、垂直１２画素の収差検出拡大領域である。
【００９８】
図１７（Ａ）に示す画像７０２は、撮影画像のＢ画素である水平１０８画素、垂直７６画素のからなる撮影画像Ｂ画素である。図１７（Ａ）に示す収差検出領域Ｑ２０〜Ｘ３１は、ベクトル回転して、水平８画素、垂直８画素の収差検出対象であるＢ画素の収差検出領域である。図１７（Ｂ）に示す収差検出拡大領域Ｑ２０〜Ｘ３１は、ベクトル回転して、水平８画素、垂直８画素の収差検出領域Ｑ２０〜Ｘ３１が確保できる為の、格子状に配置されている水平１２画素、垂直１２画素の収差検出拡大領域である。
【００９９】
図１５（Ａ）の領域７０３は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０４は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０５は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０６は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０７は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０８は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７０９は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。領域７１０は、収差の検出をする為に、収差検出領域Ｋ２９、収差検出領域Ｓ２９と相関演算する為の相関演算用領域である。例えば、方向判別部６２３により象限Ｂ（検出方向４５度）と判定されている収差検出領域Ｃ２９、収差検出領域Ｋ２９、収差検出領域Ｓ２９における収差検出について説明する。
【０１００】
まず、ＤＭＡ部６１４は、拡大サーチ領域ＣＪ０を読み出す。ＤＭＡ部６１５は、収差検出拡大領域ＫＪを読み出す。ＤＭＡ部６１６は、収差検出拡大領域ＳＪを読み出す。次に、Ｇ領域制御部６１７は、拡大サーチ領域ＣＪ０を上下反転、右４５度のベクトル回転し、相関演算用領域７０３〜７１０、及び、収差検出領域Ｃ２９を含むサーチ領域ＣＪをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＫＪを上下反転、右４５度のベクトル回転し、Ｒ画素用バッファ部６２１に収差検出領域Ｋ２９を書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＳＪを上下反転、右４５度のベクトル回転し、Ｂ画素用バッファ部６２２に収差検出領域Ｓ２９を書き込む。
【０１０１】
次に、エッジ検出部６２３は、収差検出領域Ｃ２９と、収差検出領域Ｋ２９と、収差検出領域Ｓ２９とから輝度を生成した後、収差検出方向にエッジの検出を行い、エッジ情報をエッジ検出バッファ６２４に書き込む。
【０１０２】
次に、収差検出部６２５は、エッジ検出バッファ６２４内のエッジ情報を使用して、収差検出領域Ｋ２９と、収差検出領域Ｓ２９と、相関演算用領域７０３〜７１０とを相関演算する。そして、収差検出部６２５は、収差検出領域Ｃ２９と、収差検出領域Ｋ２９と、収差検出領域Ｓ２９とにおける、収差検出方向に収差の検出を行う。このように、収差検出領域Ｃ２９と、収差検出領域Ｋ２９と、収差検出領域Ｓ２９にて輝度生成した後、エッジ検出する。そして、エッジ検出情報を基に、相関演算用領域７０３〜７１０のように、サーチ領域ＣＪ内の収差検出方向に水平、垂直に相関演算用領域を１画素ずつずらした領域を、相関演算を行う領域として、相関演算する事で収差の検出を行う。
【０１０３】
収差検出部６２５は、撮影した画像の所定の画素を補正中心として、放射状に複数の方向（例えば８個の方向）の収差を検出する。本実施形態によれば、収差検出回路部６１２の複雑度を低減し、回路規模をより小さくする事ができる。その動作の一例を、水平１０８画素、垂直７６画素のからなり、収差の検出領域が水平８画素、垂直８画素で、検出方向が図２に示すように８つの方向の象限に分割された撮影画像を例に、図２６のフローチャートを参照しながら、画像処理方法を説明する。ステップＳ１０００〜Ｓ１００３は、第１の実施形態（図１３）と同様である。ステップＳ１００３の後、象限Ａ〜Ｈに応じて、ステップＳ９００４〜Ｓ９０１１に進む。
【０１０４】
ステップＳ９００４は、方向判別部６１３により、象限Ａと判定された場合の処理である。ステップＳ９００４では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を上下反転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを上下反転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを上下反転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１０５】
ステップＳ９００５は、方向判別部６１３により、象限Ｂと判定された場合の処理である。ステップＳ９００５では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を上下反転及び右４５度ベクトル回転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを上下反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを上下反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１０６】
ステップＳ９００６は、方向判別部６１３により、象限Ｃと判定された場合の処理である。ステップＳ９００６では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を右９０度回転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを右９０度回転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを右９０度回転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書込む。
【０１０７】
ステップＳ９００７は、方向判別部６１３により、象限Ｄと判定された場合の処理である。ステップＳ９００７では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を右４５度ベクトル回転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを右４５度ベクトル回転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを右４５度ベクトル回転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１０８】
ステップＳ９００８は、方向判別部６１３により、象限Ｅと判定された場合の処理である。ステップＳ９００８では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０内のサーチ領域ＡＢ〜ＨＬをそのままＧ画素用バッファ部６２０に書き込み、方向変換しない。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬ内の収差検出領域Ｉ２０〜Ｐ３１をそのままＲ画素用バッファ部６２１に書き込み、方向変換しない。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬ内の収差検出領域Ｑ２０〜Ｘ３１をそのままＢ画素用バッファ部６２２に書き込み、方向変換しない。
【０１０９】
ステップＳ９００９は、方向判別部６１３により、象限Ｆと判定された場合の処理である。ステップＳ９００９では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を左右反転及び右４５度ベクトル回転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを左右反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを左右反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１１０】
ステップＳ９０１０は、方向判別部６１３により、象限Ｇと判定された場合の処理である。ステップＳ９０１０では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を右９０度回転及び上下反転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを右９０度回転及び上下反転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを右９０度回転及び上下反転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１１１】
ステップＳ９０１１は、方向判別部６１３により、象限Ｈと判定された場合の処理である。ステップＳ９０１１では、Ｇ領域制御部６１７は、拡大サーチ領域ＡＢ０〜ＨＬ０を左右反転、上下反転及び右４５度ベクトル回転することにより方向変換し、サーチ領域ＡＢ〜ＨＬをＧ画素用バッファ部６２０に書き込む。Ｒ領域制御部６１８は、収差検出拡大領域ＩＡ〜ＰＬを左右反転、上下反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｉ２０〜Ｐ３１をＲ画素用バッファ部６２１に書き込む。Ｂ領域制御部６１９は、収差検出拡大領域ＱＡ〜ＸＬを左右反転、上下反転及び右４５度ベクトル回転することにより方向変換し、収差検出領域Ｑ２０〜Ｘ３１をＢ画素用バッファ部６２２に書き込む。
【０１１２】
次に、ステップＳ９０１２では、エッジ検出部６２３は、象限Ｅの検出方向１８０度の方向で、Ｇ画素用バッファ部６２０からサーチ領域ＡＡ〜ＡＨ内の収差検出領域Ａ２０〜Ｈ３１を読み出す。さらにエッジ検出部６２３は、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０〜Ｐ３１を読み出し、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０〜Ｘ３１を読み出し、輝度を生成し、エッジを検出し、エッジ領域バッファ部６２４にエッジ情報を書き込む。
【０１１３】
次に、ステップＳ９０１３では、収差検出部６２５は、Ｇ画素用バッファ部６２０から収差検出領域Ａ２０〜Ｈ３１を含むサーチ領域ＡＡ〜ＨＬ内の相関演算用領域を読み出し、Ｒ画素用バッファ部６２１から収差検出領域Ｉ２０〜Ｐ３１を読み出す。さらに、収差検出部６２５は、Ｂ画素用バッファ部６２２から収差検出領域Ｑ２０〜Ｘ３１を読み出し、エッジ検出バッファ部６２４からエッジ情報を読み出し、象限Ｅの検出方向１８０度の方向で相関演算して収差の検出を行う。
【０１１４】
次に、ステップＳ９０１４では、画像処理装置１００は、収差検出領域Ｈ３１と、収差検出領域Ｐ３１と、収差検出領域Ｘ３１の収差検出が終了したかを判定する。終了していない場合、ステップＳ１００３に戻り、収差検出領域Ａ２０〜Ｈ３１と、収差検出領域Ｉ２０〜Ｐ３１と、収差検出領域Ｑ２０〜Ｘ３１とをラスタ読出ししながら順次、収差の検出を行う。
【０１１５】
収差検出領域Ｈ３１と、収差検出領域Ｐ２１と、収差検出領域Ｘ３１の収差検出が終了した場合、ステップＳ９０１５に進む。ステップＳ９０１５では、ＤＭＡ部１０８は、ＤＲＡＭ部１１０上に格納されている撮影画像と収差検出結果を画像処理部１０７に転送する。画像処理部１０７は、収差検出結果を基に、撮影画像の収差を補正する。ステップＳ１０１８〜Ｓ１０１９では、第１の実施形態と同様の処理を行う。
【０１１６】
本実施形態によれば、Ｇ領域制御部６１７、Ｒ領域制御部６１８及びＢ領域制御部６１９は、収差を検出する８個の象限Ａ〜Ｈの方向を１個の象限Ｅの方向に集約するように、８個の象限Ａ〜Ｈの方向の領域の画像をそれぞれ方向変換する。収差検出部６２５は、その方向変換された８個の象限Ａ〜Ｈの方向の領域の画像について、それぞれ、集約された１個の象限Ｅの方向で収差を検出することにより、８個の象限Ａ〜Ｈの方向の収差を検出する。画像処理部１０７は、収差検出部６２５により検出された収差を基に画像を補正する。
【０１１７】
本実施形態では、収差検出部６２５は収差の検出方向に関係なく一つの処理に集約できる為、収差検出回路部６１２の複雑度を低減し、回路規模をより小さくするができる。以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【０１１８】
第１及び第２の実施形態によれば、画像処理装置１００が提供される。Ｇ領域制御部１１７，６１７、Ｒ領域制御部１１８，６１８及びＢ領域制御部１１９，６１９は、収差を検出する複数の方向（例えば８個の方向）を少なくとも１個の方向に集約するように、その複数の方向の領域の画像をそれぞれ方向変換する。収差検出部１２５，６２５は、その方向変換された複数の方向の領域の画像について、それぞれ、集約された少なくとも１個の方向のうちのいずれかの方向で収差を検出することにより、複数の方向（例えば８個の方向）の収差を検出する。画像処理部１０７は、収差検出部１２５，６２５により検出された収差を基に画像を補正する。
【０１１９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１２０】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１２１】
１０７  画像処理部、１１７  Ｇ領域制御部、１１８  Ｒ領域制御部、１１９  Ｂ領域制御部、１２５  収差検出部
【図１】
2016122929.tif 000005
【図２】
2016122929.tif 000006
【図３】
2016122929.tif 000007
【図４】
2016122929.tif 000008
【図５】
2016122929.tif 000009
【図６】
2016122929.tif 000010
【図７】
2016122929.tif 000011
【図８】
2016122929.tif 000012
【図９】
2016122929.tif 000013
【図１０】
2016122929.tif 000014
【図１１】
2016122929.tif 000015
【図１２】
2016122929.tif 000016
【図１３】
2016122929.tif 000017
【図１４】
2016122929.tif 000018
【図１５】
2016122929.tif 000019
【図１６】
2016122929.tif 000020
【図１７】
2016122929.tif 000021
【図１８】
2016122929.tif 000022
【図１９】
2016122929.tif 000023
【図２０】
2016122929.tif 000024
【図２１】
2016122929.tif 000025
【図２２】
2016122929.tif 000026
【図２３】
2016122929.tif 000027
【図２４】
2016122929.tif 000028
【図２５】
2016122929.tif 000029
【図２６】
2016122929.tif 000030