JP2016122929A - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP2016122929A
JP2016122929A JP2014261319A JP2014261319A JP2016122929A JP 2016122929 A JP2016122929 A JP 2016122929A JP 2014261319 A JP2014261319 A JP 2014261319A JP 2014261319 A JP2014261319 A JP 2014261319A JP 2016122929 A JP2016122929 A JP 2016122929A
Authority
JP
Japan
Prior art keywords
unit
degrees
aberration detection
image
aberration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014261319A
Other languages
English (en)
Inventor
隆幸 安田
Takayuki Yasuda
隆幸 安田
谷口 浩之
Hiroyuki Taniguchi
浩之 谷口
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2014261319A priority Critical patent/JP2016122929A/ja
Publication of JP2016122929A publication Critical patent/JP2016122929A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Color Television Image Signal Generators (AREA)
  • Studio Devices (AREA)

Abstract

【課題】収差検出部の複雑度を低減し、回路規模を小さくすることができる画像処理装置を提供することを課題とする。
【解決手段】画像処理装置は、画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部(125)と、前記収差を検出する複数の方向を少なくとも1個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部(117〜119)と、前記収差検出部により検出された収差を基に前記画像を補正する画像処理部(107)とを有し、前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも1個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出する。
【選択図】図1

Description

本発明は、画像処理装置及び画像処理方法に関する。
画像処理装置において、補正中心から像高方向に広がる収差の検出の為に、撮影画像の収差を像高方向に検出する技術がある。例えば、特許文献1では、撮影画像を補正中心から複数の分割領域に分けて、像高方向に収差の検出をする技術が開示されている。
また、画像処理装置において、画像処理を簡略化する為の技術がある。例えば、特許文献2では、撮影画像を画像処理する際に、画像データの回転、拡大、縮小を行って、画像メモリに格納する事で後段の画像処理を簡素化できる技術が開示されている。
特開2006−20275号公報 特開平5−34835号公報
しかしながら、上述の特許文献1に開示された技術では、収差検出回路が複雑になったり、収差検出回路の回路規模が増大してしまう。また、特許文献2に開示された技術では、画像データの補正中心から像高方向に広がるような収差の検出に関して、具体的な説明がなされていない。
本発明の目的は、収差検出部の複雑度を低減し、回路規模を小さくすることができる画像処理装置及び画像処理方法を提供することである。
本発明の画像処理装置は、画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部と、前記収差を検出する複数の方向を少なくとも1個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部と、前記収差検出部により検出された収差を基に前記画像を補正する画像処理部とを有し、前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも1個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出することを特徴とする。
本発明によれば、収差検出部の複雑度を低減し、回路規模を小さくすることができる。
第1の実施形態に係る画像処理装置の構成を示す図である。 第1の実施形態に係る画像データの方向判定を説明する為の図である。 第1の実施形態に係る画像領域を示す図である。 第1の実施形態に係る画像領域を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係る収差検出領域の制御を示す図である。 第1の実施形態に係るフローチャートである。 第2の実施形態に係る画像処理装置の構成を示す図である。 第2の実施形態に係る画像領域を示す図である。 第2の実施形態に係る画像領域を示す図である。 第2の実施形態に係る画像領域を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係る収差検出領域の制御を示す図である。 第2の実施形態に係るフローチャートである。
(第1の実施形態)
図1は、本発明の第1の実施形態に係る画像処理装置100の構成例を示す図である。CPU101は、画像処理装置100内のバスマスタであり、ROM部103に格納された画像処理装置100のプログラムを実行したり、画像処理装置100内のモジュールの制御を行う。ROM制御部102は、システムバス部111のバススレーブであり、システムバス部111のバスマスタからのデータ転送コマンドを受け取り、ROM部103にデータのリード及びライトを行う。
ROM部103には、画像処理装置100が動作する為のプログラムが格納されている。記録媒体制御部104は、システムバス部111のバススレーブであり、システムバス部111のバスマスタからのデータ転送コマンドを受け取り、画像処理装置100にて撮影された静止画像や動画像を記録媒体部105に記録するための制御を行う。また、記録媒体制御部104は、記録媒体部105から静止画像や動画像を読み出すための制御を行う。記録媒体部105は、画像処理装置100にて撮影された画像データを格納する為の着脱可能な記録媒体である。撮像部106は、システムバス部111のバススレーブであり、被写体の画像を撮影し、RAW画像信号を画像処理部107に出力する。
画像処理部107は、システムバス部111のバススレーブであり、撮像部106から受け取ったRAW画像をR(赤色)画素領域、G(緑色)画素領域、B(青色)画素領域にデモザイクしてメモリコントローラ部109を介してDRAM部110に格納する。また、画像処理部107は、撮像部106から受け取ったRAW画像をJPEG圧縮又はMPEG圧縮する。DMA部108は、複数のDMA部114〜116及び126を有する。DMA部108は、画像処理部107からの画像データをシステムバス部111を介してDRAM部110へのアクセスを行ったり、ROM部103に格納されているアプリケーションプログラムをROM制御部102を介してDRAM部110へ転送する。また、DMA部108は、DRAM部110上の静止画像や動画像を記録媒体制御部104を介して記録媒体部105へ転送する。
メモリコントローラ部109は、システムバス部111のバススレーブであり、システムバス部111のバスマスタからのデータ転送コマンドを受け取り、DRAM部110にデータのリード及びライトを行う。DRAM部110は、画像処理装置100の主記憶である。システムバス部111は、CPU101及びDMA部108等のバスマスタと、メモリコントローラ部109、ROM制御部102、記録媒体制御部104、画像処理部107、撮像部106、DMA部109のレジスタ部、等のバススレーブを接続する。例えば、画像処理装置100は、ユーザからの指示により起動し、CPU101からのコマンドにより、ROM部103内にあるブートプログラムによりブートアップする。
次に、ROM部103内のプログラムは、ROM制御部102、及び、メモリコントローラ部109を介して、DRAM部110に展開され、画像処理装置100が撮影可能な状態になる。次に、ユーザにより動画或いは静止画の記録を指示するための撮影操作が行われると、撮像部106は、撮影画像をRAW画像として画像処理部107に出力する。次に、そのRAW画像は、画像処理部107により、R画素、G画素、B画素の画像領域にデモザイクされ、DMA部109により、メモリコントローラ部109を介してDRAM部110に後述する図3(A)、図4(A)、図4(B)のように格納される。次に、DMA部114、DMA部115、DMA部116は、後述するDRAM部110内のサーチ領域AA〜HLと、収差検出領域I0〜P11と、収差検出領域Q0〜X11に記憶された画像データをラスタ走査の順に読み出し、収差検出回路部112に出力する。収差検出回路部112は、順次、収差の検出をする。収差検出結果は、DMA部126の制御により、メモリコントローラ部109を介してDRAM部110に格納される。
次に、DMA部108は、DRAM部110に格納されている撮影画像及び収差検出結果を画像処理部107に出力する。画像処理部107は、収差検出結果を基に、撮影画像に対して、収差の補正を行う。次に、画像処理部107は、収差の補正がされた撮影画像を、JPEG圧縮する。DMA部108は、JPEG圧縮された撮影画像を、メモリコントローラ部109を介してDRAM部110に格納する。次に、記録媒体制御部104は、DRAM部110に格納されている圧縮された撮影画像を記録媒体部105に格納する。
図2は、撮像部106により得られる1画面の画像データを示す図である。図2に示すように、1画面の画像データにおいて、複数の収差検出領域201は、CPU101により設定される補正中心座標(OX,OY)を基準として、8つの検出方向毎に、8つの象限A〜Hに分割される。方向判別部113は、複数の収差検出領域201の各々の中心座標(OXS,OYS)がどの象限に属するかを判別して収差の検出方向を判別する。その詳細は、後述する。DMA部114は、後述するサーチ領域AA〜HLを、サーチ領域毎にラスタ読み出しをする。DMA部115は、後述する収差検出領域I0〜P11を、収差検出領域毎にラスタ読み出しをする。DMA部116は、後述する収差検出領域Q0〜H11を、収差検出領域毎にラスタ読み出しをする。
G領域制御部(緑色領域制御部)117は、方向判別部113からの方向判別結果を基に、DMA部114により読み出された後述するサーチ領域AA〜HLを回転及び反転処理し、G画素用バッファ部120に書き込む。R領域制御部(赤色領域制御部)118は、方向判別部113からの方向判別結果を基に、DMA部115により読み出された後述する収差検出領域I0〜P11を回転及び反転処理し、R画素用バッファ部121に書き込む。B領域制御部(青色領域制御部)119は、方向判別部113からの方向判別結果を基に、DMA部116により読み出された後述する収差検出領域Q0〜H11を回転及び反転処理し、B画素用バッファ部122に書き込む。
G画素用バッファ部120は、SRAM等から構成され、G領域制御部117により回転及び反転の制御がされたサーチ領域AA〜HLをバッファリングする。R画素用バッファ部121は、SRAM等から構成され、R領域制御部118により回転及び反転の制御がされた収差検出領域I0〜P11をバッファリングする。B画素用バッファ部122は、SRAM等から構成され、B領域制御部119により回転及び反転の制御がされた収差検出領域Q0〜H11をバッファリングする。
エッジ検出部123は、G画素用バッファ部120からサーチ領域AA〜HL内の収差検出領域A0〜H11を、R画素用バッファ部121から収差検出領域I0〜P11を、B画素用バッファ部122から収差検出領域Q0〜H11を読み出す。そして、エッジ検出部123は、輝度生成等を行い、収差検出領域内のエッジを検出し、エッジ領域をエッジ領域バッファ部124に書き込む。エッジ検出部123は、方向判別部113からの方向情報に従って、エッジ検出方向を変更する。
例えば、エッジ検出部123は、方向判別部113からの方向情報が、象限A(0度)、象限C(90度)、象限E(180度)、象限G(270度)、の時は、象限E(180度)の方向でエッジの検出を行う。また、エッジ検出部123は、方向判別部113からの方向情報が、象限B(45度)、象限D(135度)、象限F(225度)、象限H(315度)、の時は、象限D(135度)の方向でエッジの検出を行う。
エッジ領域バッファ部124は、SRAM等から構成され、エッジ検出部123により検出されたエッジ領域をバッファリングする。収差検出部125は、G画素用バッファ部120からサーチ領域AA〜HLを、R画素用バッファ部121から収差検出領域I0〜P11を、B画素用バッファ部122から収差検出領域Q0〜H11を、エッジ領域バッファ部124からエッジ情報を読み出す。そして、収差検出部125は、後述する相関演算を行い、収差検出を行う。
収差検出部125は、方向判別部113からの方向情報に従って、エッジ検出方向を変更する。例えば、収差検出部125は、方向判別部113からの方向情報が、象限A(0度)、象限C(90度)、象限E(180度)、象限G(270度)、の時は、象限E(180度)の方向で収差の検出を行う。また、収差検出部125は、方向判別部113からの方向情報が、象限B(45度)、象限D(135度)、象限F(225度)、象限H(315度)、の時は、象限D(135度)の方向で収差の検出を行う。
DMA部126は、収差検出部125により検出された収差検出情報をメモリコントローラ部109を介してDRAM部110に書き込む。例えば、初めに、DMA部114、DMA部115、DMA部116は、DRAM部110内のサーチ領域AAと、収差検出領域I0と、収差検出領域Q0とを読み出す。この時、方向判別部113は、収差の検出方向を判別して、後述する象限H(収差検方向315度)と判定する。G領域制御部117は、サーチ領域AAを左右反転、上下反転して、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I0を左右反転、上下反転して、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q0を左右反転、上下反転して、B画素用バッファ部122に書き込む。
次に、エッジ検出部123は、G画素用バッファ部120からサーチ領域AA内の収差検出領域A0、R画素用バッファ部121から収差検出領域I0、B画素用バッファ部122から収差検出領域Q0を読み出す。そして、エッジ検出部123は、輝度生成した後に、エッジ検出バッファ部124にエッジ情報を書き込む。この時、エッジの検出方向は、象限D(135度)と同様の処理となる。
次に、収差検出部125は、G画素用バッファ部120から収差検出領域A0を含むサーチ領域AA内の相関演算用領域、R画素用バッファ部121から収差検出領域I0、B画素用バッファ部122から収差検出領域Q0を読み出す。さらに、収差検出部125は、エッジ検出バッファ部124からエッジ情報を読み出して、相関演算し、収差の検出を行う。この時、収差の検出方向は、象限D(収差検方向135度)と同様の処理となる。
次に、収差検出部125により検出された収差情報は、メモリコントローラ部109を介してDRAM部110に格納され、収差検出領域A0と、収差検出領域I0と、収差検出領域Q0との収差の検出が終了する。こうする事で、エッジ検出部123、及び、収差検出部125の処理は、象限D(収差検方向135度)の処理と同様になる。次に、収差検出領域A1〜収差検出領域H11を含む個々のサーチ領域AA〜HLと、収差検出領域I1〜収差検出領域P11と、収差検出領域Q1〜収差検出領域X11をラスタ読み出ししながら順次、収差の検出を行っていく。
方向判別部113による方向判別結果が、象限Aの場合、図5に示すように、例えば、サーチ領域AFは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域AFを上下反転して、G画素バッファ部120に書き込む。図5に示すように、例えば、収差検出領域I5は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域I5を上下反転して、R画素バッファ部121に書き込む。図5に示すように、例えば、収差検出領域Q5は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域Q5を上下反転して、B画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Bの場合、図6に示すように、例えば、サーチ領域ALは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域ALを上下反転して、G画素バッファ部120に書き込む。図6に示すように、例えば、収差検出領域I11は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域I11を上下反転して、R画素バッファ部121に書き込む。図6に示すように、例えば、収差検出領域Q11は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域Q11を上下反転して、B画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Cの場合、図7に示すように、例えば、サーチ領域CLは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域CLを右90度回転して、G画素バッファ部120に書き込む。図7に示すように、例えば、収差検出領域K11は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域K11を右90度回転して、R画素バッファ部121に書き込む。図7に示すように、例えば、収差検出領域S11は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域S11を右90度回転して、B画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Dの場合、図8に示すように、例えば、サーチ領域GKは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域GKをそのままG画素バッファ部120に書き込む。図8に示すように、例えば、収差検出領域O10は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域O10をそのままR画素バッファ部121に書き込む。図8に示すように、例えば、収差検出領域W10は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域W10をそのままB画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Eの場合、図9に示すように、例えば、サーチ領域GGは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域GGをそのままG画素バッファ部120に書き込む。図9に示すように、例えば、収差検出領域O6は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域O6をそのままR画素バッファ部121に書き込む。図9に示すように、例えば、収差検出領域W6は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域W6をそのままB画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Fの場合、図10に示すように、例えば、サーチ領域HAは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域HAを左右反転して、G画素バッファ部120に書き込む。図10に示すように、例えば、収差検出領域P0は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域P0を左右反転して、R画素バッファ部121に書き込む。図10に示すように、例えば、収差検出領域X0は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域X0を左右反転して、B画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、象限Gの場合、図11に示すように、例えば、サーチ領域DBは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域DBを右90度回転した後、上下反転して、G画素バッファ部120に書き込む。図11に示すように、例えば、収差検出領域L1は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域L1を右90度回転した後、上下反転して、R画素バッファ部121に書き込む。図11に示すように、例えば、収差検出領域T1は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域T1を右90度回転した後、上下反転して、B画素バッファ部122に書き込む。
方向判別部113による方向判別結果が、H象限の場合、図12に示すように、例えば、サーチ領域AAは、DMA部114の制御により読み出される。G領域制御部117は、サーチ領域AAを左右反転した後、上下反転して、G画素バッファ部120に書き込む。図12に示すように、例えば、収差検出領域I0は、DMA部115の制御により読み出される。R領域制御部118は、収差検出領域I0を左右反転した後、上下反転して、R画素バッファ部121に書き込む。図12に示すように、例えば、収差検出領域Q0は、DMA部116の制御により読み出される。B領域制御部119は、収差検出領域Q0を左右反転した後、上下反転して、B画素バッファ部122に書き込む。
このように象限A、B、C、D、E、F,G、Hによって、G画素バッファ部120、R画素バッファ部121、B画素バッファ部122への書き込み制御を変更する。これにより、エッジ検出部123、及び、収差検出部125の処理は、象限D、及び、象限Eの方向の2つのみの収差の検出の処理に集約される。こうする事で、象限A、C、Gの処理は、象限Eの収差検出方向に集約され、象限B、F、Hの処理は、象限Dの検出方向に集約されるので、エッジ検出部123、及び、収差検出部125の処理回路の複雑度を低減し、回路規模をより小さくする事ができる。
次に、図2を用いて、方向判別部113における方向判別の方法の一例について説明する。撮影画像200は、収差検出領域201及び余分画素領域202を有する。収差検出領域201は、収差の検出を行う領域群である。余分画素領域202は、後述する収差検出の際の相関演算に用いる為の画素領域である。座標OXは、CPU101から方向判別部113に設定される、撮影画像200の水平方向の補正中心座標である。座標OYは、CPU101から方向判別部113に設定される、撮影画像200の垂直方向の補正中心座標である。座標OSXは、CPU101から方向判別部113に設定される、収差検出領域201をラスタ走査の順に読み出す際の収差検出領域201の水平方向の中心座標である。座標OSYは、CPU101から方向判別部113に設定される、収差検出領域201をラスタ走査の順に読み出す際の初めの収差検出領域201の水平方向の中心座標である。
象限Aは、収差の検出方向が0度方向の象限である。象限Bは、収差の検出方向が45度方向の象限である。象限Cは、収差の検出方向が90度方向の象限である。象限Dは、収差の検出方向が135度方向の象限である。象限Eは、収差の検出方向が180度方向の象限である。象限Fは、収差の検出方向が225度方向の象限である。象限Gは、収差の検出方向が270度方向の象限である。象限Hは、収差の検出方向が315度方向の象限である。例えば、象限A,B,C,D,E,F,G,Hは、座標(OX、OY)を中心として、以下の式(1)、(2)、(3)、(4)の分割線により分割される。
Y=2×(X−OX)+OY …(1)
Y=(1/2)×(X−OX)+OY …(2)
Y=−2×(X−OX)+OY …(3)
Y=−(1/2)×(X−OX)+OY …(4)
方向判別部113は、座標(OSX、OSY)が、式(1)から(4)の分割線により象限A,B,C,D,E,F,G,Hに分割されるどの位置に存在するかを判別して収差検出の方向判別を行う。収差検出領域201はラスタ走査の順に読み出される。以降の収差検出領域201の中心画像は、座標(OSX、OSY)に対して、ラスタ走査の順に、収差検出領域201の水平画素数、及び、収差検出領域201の垂直画素数を加算する事により算出される。
方向判別部113は、算出した収差検出領域201の中心座標(OSX、OSY)が、式(1)から(4)の分割線により象限A,B,C,D,E,F,G,Hに分割されるどの位置に存在するかを判別して収差検出の方向判別を行う。次に、図3(A)、(B)及び図4(A)、(B)を用いて収差検出の一例を説明する。
画像300は、撮影画像のG画素である水平104画素、垂直72画素からなる撮影画像G画素データである。図3(A)に示す収差検出領域A0〜H11は、それぞれ、水平8画素、垂直8画素の収差検出対象であるG画素の収差検出領域である。また、収差検出領域A0〜H11は、後述する相関演算用領域ともなる。図3(B)に示すサーチ領域AA〜HLは、それぞれ、相関演算する為の相関演算領域を含む水平16画素、垂直16画素が格子状に配置されている領域である。
各サーチ領域AA〜HLの水平、垂直の画素数は、相関演算用の領域の個数により決定される。例えば、収差検出領域A0〜H11、収差検出領域I0〜P11、収差検出領域Q0〜X11の各々を中心として、水平方向にプラス4画素、マイナス4画素の範囲、かつ、垂直方向にプラス4画素、マイナス4画素の範囲で相関演算をする場合を説明する。その場合、サーチ領域は水平16画素、垂直16画素からなる。
図4(A)に示す画像301は、撮影画像のR画素である水平108画素、垂直76画素のからなる撮影画像R画素データである。収差検出領域I0〜P11は、水平8画素、垂直8画素の収差検出対象であるR画素の収差検出領域である。図4(B)に示す画像302は、撮影画像のB画素である水平108画素、垂直76画素のからなる撮影画像B画素データである。収差検出領域Q0〜X11は、水平8画素、垂直8画素の収差検出対象であるB画素の収差検出領域である。
図3(A)の領域303は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域304は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域305は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域306は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域307は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域308は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域309は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。領域310は、収差の検出をする為に、図4(A)の収差検出領域K9、図4(B)の収差検出領域S9と相関演算する為の水平8画素、垂直8画素の相関演算用領域である。
例えば、方向判別部123により象限B(検出方向45度)と判定されている水平8画素、垂直8画素の収差検出領域C9、収差検出領域K9、収差検出領域S9における収差検出について説明する。
まず、DMA部114は、サーチ領域CJを読み出す。DMA部115は、収差検出領域K9を読み出す。DMA部116は、収差検出領域S9を読み出す。次に、G領域制御部117は、サーチ領域CJを上下反転して、G画素用バッファ部120に相関演算用領域303〜310、及び、C9を書き込む。R領域制御部118は、収差検出領域K9を上下反転して、R画素用バッファ部121に収差検出領域K9を書き込む。B領域制御部119は、収差検出領域S9を上下反転して、B画素用バッファ部122に収差検出領域S9を書き込む。
次に、エッジ検出部123は、収差検出領域C9と、収差検出領域K9と、収差検出領域S9とから輝度を生成した後、収差検出方向にエッジの検出を行い、エッジ情報をエッジ検出バッファ部124に書き込む。次に、収差検出部125は、エッジ検出バッファ部124内のエッジ情報を使用して、収差検出領域K9と、収差検出領域S9と、相関演算用領域303〜310とを相関演算する。そして、収差検出部125は、収差検出領域C9と、収差検出領域K9と、収差検出領域S9とにおける、収差検出方向に収差の検出を行う。
このように、収差検出領域C9と、収差検出領域K9と、収差検出領域S9にて輝度生成した後、エッジ検出する。そして、エッジ検出情報を基に、相関演算用領域303〜310のように、サーチ領域CJ内の収差検出方向に水平、垂直に相関演算用領域を1画素ずつずらした領域を、相関演算を行う領域として、相関演算する事で収差の検出を行う。この時、エッジ検出部123、及び、収差検出部125でエッジ検出及び収差検出を行う処理は、象限D(検出方向135度)と同様になる。
収差検出部125は、撮影した画像の所定の画素を補正中心として、放射状に複数の方向(例えば8個の方向)の収差を検出する。本実施形態によれば、収差検出回路部112の複雑度を低減し、回路規模をより小さくする事ができる。その動作の一例を、水平104画素、垂直72画素からなり、収差の検出領域が水平8画素、垂直8画素で、検出方向が図2に示すように8つの方向の象限に分割された画像を例に、図13のフローチャートを参照しながら、画像処理方法を説明する。
ステップS1000では、ユーザの操作により画像処理装置100の電源がオンする。ステップS1001では、ユーザからの操作により撮影指示があると、撮像部106は、撮影画像をRAW画像として画像処理部107に出力する。画像処理部107は、入力したRAW画像をR画素、G画素、B画素の画像領域毎にデモザイクする。DMA部108は、そのR画素、G画素、B画素のRAW画像を、それぞれ、メモリコントローラ部109を介してDRAM部110に図3(A)、図4(A)、図4(B)のように格納する。
ステップS1002では、DMA部114〜116は、図3(B)のサーチ領域AA〜HLと、図4(A)の収差検出領域I0〜P11と、図4(B)の収差検出領域Q0〜X11とをラスタ読み出しをして、収差検出回路部112に出力する。ステップS1003では、方向判別部113は、収差の検出方向を判別して、象限A〜Hを判定し、ステップS1004〜S1011に進む。
ステップS1004は、方向判別部113により、象限Aと判定された場合の処理である。ステップS1004では、G領域制御部117は、サーチ領域AB〜HLを上下反転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を上下反転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を上下反転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1012に進む。
ステップS1005は、方向判別部113により、象限Bと判定された場合の処理である。ステップS1005では、G領域制御部117は、サーチ領域AB〜HLを上下反転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を上下反転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を上下反転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1014に進む。
ステップS1006は、方向判別部113により、象限Cと判定された場合の処理である。ステップS1006では、G領域制御部117は、サーチ領域AB〜HLを右90度回転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を右90度回転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を右90度回転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1012に進む。
ステップS1007は、方向判別部113により、象限Dと判定された場合の処理である。ステップS1007では、G領域制御部117は、サーチ領域AB〜HLをそのままG画素用バッファ部120に書き込み、方向変換しない。R領域制御部118は、収差検出領域I1〜P11をそのままR画素用バッファ部121に書き込み、方向変換しない。B領域制御部119は、収差検出領域Q1〜X11をそのままB画素用バッファ部122に書き込み、方向変換しない。その後、ステップS1014に進む。
ステップS1008は、方向判別部113により、象限Eと判定された場合の処理である。ステップS1008では、G領域制御部117は、サーチ領域AB〜HLをそのままG画素用バッファ部120に書き込み、方向変換しない。R領域制御部118は、収差検出領域I1〜P11をそのままR画素用バッファ部121に書き込み、方向変換しない。B領域制御部119は、収差検出領域Q1〜X11をそのままB画素用バッファ部122に書き込み、方向変換しない。その後、ステップS1012に進む。
ステップS1009は、方向判別部113により、象限Fと判定された場合の処理である。ステップS1009では、G領域制御部117は、サーチ領域AB〜HLを左右反転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を左右反転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を左右反転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1014に進む。
ステップS1010は、方向判別部113により、象限Gと判定された場合の処理である。ステップS1010では、G領域制御部117は、サーチ領域AB〜HLを右90度回転及び上下反転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を右90度回転及び上下反転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を右90度回転及び上下反転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1012に進む。
ステップS1011は、方向判別部113により、象限Hと判定された場合の処理である。ステップS1011では、G領域制御部117は、サーチ領域AB〜HLを左右反転及び上下反転することにより方向変換し、G画素用バッファ部120に書き込む。R領域制御部118は、収差検出領域I1〜P11を左右反転及び上下反転することにより方向変換し、R画素用バッファ部121に書き込む。B領域制御部119は、収差検出領域Q1〜X11を左右反転及び上下反転することにより方向変換し、B画素用バッファ部122に書き込む。その後、ステップS1014に進む。
ステップS1012は、方向判別部113により、象限A,C,E,Gと判定された場合の処理である。ステップS1012では、エッジ検出部123は、象限Eの検出方向180度の方向で、G画素用バッファ部120からサーチ領域AA〜AH内の収差検出領域A0〜H11を読み出し、R画素用バッファ部121から収差検出領域I0〜P11を読み出す。さらに、エッジ検出部123は、B画素用バッファ部122から収差検出領域Q0〜X11を読み出し、輝度生成した後に、エッジを検出し、エッジ検出バッファ部124にエッジ情報を書き込む。その後、ステップS1013に進む。
ステップS1013では、収差検出部125は、G画素用バッファ部120から収差検出領域A0〜H11を含むサーチ領域AA〜HL内の相関演算用領域を読み出し、R画素用バッファ部121から収差検出領域I0〜P11を読み出す。さらに、収差検出部125は、B画素用バッファ部122から収差検出領域Q0〜X11を読み出し、エッジ検出バッファ部124からエッジ情報を読み出し、象限Eの検出方向180度の方向で相関演算し、収差の検出を行う。その後、ステップS1016に進む。
ステップS1014は、方向判別部113により、象限B,D,F,Hと判定された場合の処理である。ステップS1014では、エッジ検出部123は、象限Dの検出方向135度の方向で、G画素用バッファ部120からサーチ領域AA〜AH内の収差検出領域A0〜H11を読み出し、R画素用バッファ部121から収差検出領域I0〜P11を読み出す。さらに、エッジ検出部123は、B画素用バッファ部122から収差検出領域Q0〜X11を読み出し、輝度生成した後に、エッジを検出し、エッジ検出バッファ部124にエッジ情報を書き込む。その後、ステップS1015に進む。
ステップS1015では、収差検出部125は、G画素用バッファ部120から収差検出領域A0〜H11を含むサーチ領域AA〜HL内の相関演算用領域を読み出し、R画素用バッファ部121から収差検出領域I0〜P11を読み出す。さらに、収差検出部125は、B画素用バッファ部122から収差検出領域Q0〜X11を読み出し、エッジ検出バッファ部124からエッジ情報を読み出し、象限Dの検出方向135度の方向で相関演算し、収差の検出を行う。その後、ステップS1016に進む。
ステップS1016では、画像処理装置100は、収差検出領域H11と、収差検出領域P11と、収差検出領域X11の収差検出が終了したか判定する。終了していない場合、ステップS1003に戻り、収差検出領域A0〜H11と、収差検出領域I0〜P11と、収差検出領域Q0〜X11とをラスタ読み出ししながら順次、収差の検出を行う。
収差検出領域H11と、収差検出領域P11と、収差検出領域X11の収差検出が終了した場合、最後の収差検出領域であった場合、ステップS1017に進む。ステップS1017では、DMA部108は、DRAM部110上に格納されている撮影画像と、収差検出結果を画像処理部107に転送する。画像処理部107は、収差検出結果を基に、撮影画像を補正する。
その後、ステップS1018では、画像処理部107は、収差補正後の撮影画像をJPEG圧縮する。DMA部108は、JPEG圧縮された撮影画像をメモリコントローラ部109を介してDRAM部110に格納する。記録媒体制御部104は、DRAM部110に格納されているJPWG圧縮された撮影画像を記録媒体部105に格納する。ステップS1019では、ユーザの操作により画像処理装置100の電源がオフする。
本実施形態によれば、G領域制御部117、R領域制御部118及びB領域制御部119は、収差を検出する8個の象限A〜Hの方向を2個の象限D及びEの方向に集約するように、8個の象限A〜Hの方向の領域の画像をそれぞれ方向変換する。具体的には、4個の象限A、C、E、Gの方向は1個の象限Eの方向に集約され、4個の象限B、D、F、Hの方向は他の1個の象限Dの方向に集約される。G領域制御部117は緑色領域の画像を方向変換し、R領域制御部118は赤色領域の画像を方向変換し、B領域制御部119は青色領域の画像を方向変換する。収差検出部125は、その方向変換された8個の象限A〜Hの方向の領域の画像について、それぞれ、集約された2個の象限D及びEの方向のうちのいずれかの方向で収差を検出することにより、8個の象限A〜Hの方向の収差を検出する。画像処理部107は、収差検出部125により検出された収差を基に画像を補正する。
本実施形態によれば、収差検出回路部112を収差の検出方向に関係なく象限D及びEの処理に集約できる為、収差検出回路部112の複雑度を低減し、回路規模をより小さくするができる。
(第2の実施形態)
本発明の第2の実施形態に係る画像処理装置を図14〜図26を用いて説明する。なお、以下において、同一構成要素には同じ符号を付し、その説明を省略する。図14は、本発明の第2の実施形態に係る画像処理装置の構成を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。
ユーザからの指示により撮影操作が行われると、撮像部106は、撮影画像をRAW画像として画像処理部107に出力する。画像処理部107は、そのRAW画像をR画素、G画素、B画素の画像領域にデモザイクする。DMA部108は、R画素、G画素、B画素の画像領域を、メモリコントローラ部109を介してDRAM部110に後述する図15(A)、図16(A)、図17(A)のように格納する。次に、DMA部614、DMA部615、DMA部616は、DRAM部110内のサーチ領域AA〜HLと、収差検出拡大領域IA〜PLと、収差検出拡大領域QA〜XLとをラスタ読み出しし、収差検出回路部612に出力する。収差検出回路部612は、収差の検出をして、収差検出結果を出力する。DMA部126は、収差検出結果をメモリコントローラ部109を介してDRAM部110に格納する。
次に、DMA部108は、DRAM部110上に格納されている撮影画像及び収差検出結果を、画像処理部107に転送する。画像処理部107は、収差検出結果を基に、撮影画像に対して、収差の補正を行う。次に、画像処理部107は、収差の補正がされた撮影画像を、JPEG圧縮する。DMA部108は、JPEG圧縮された撮影画像を、メモリコントローラ部109を介してDRAM部110に格納する。次に、記録媒体制御部104は、DRAM部110に格納されているJPWG圧縮された撮影画像を記録媒体部105に格納する。
DMA部614、DMA部615、DMA部616は、DRAM部110内のサーチ領域AA〜HLと、収差検出拡大領域IA〜PLと、収差検出拡大領域QA〜XHとをラスタ読み出しし、収差検出回路部612に転送する。収差検出回路部612は、収差の検出をし、収差検出結果を出力する。複数の収差検出領域201は、CPU101により設定される補正中心座標(OX,OY)を基準として、8つの検出方向毎に、8つの象限A〜Hに分割される。方向判別部613は、複数の収差検出領域201の各々の中心座標(OXS,OYS)がどの象限に属するかを判別して収差の検出方向を判別する。
DMA部614は、後述する拡大サーチ領域AA0〜HL0を、サーチ領域毎にラスタ読み出しする。DMA部615は、後述する収差検出拡大領域IA〜PLを、収差検出拡大領域毎にラスタ読み出しする。DMA部616は、後述する収差検出拡大領域QA〜HLを、収差検出拡大領域毎にラスタ読み出しする。
G領域制御部617は、方向判別部613からの方向判別結果を基に、DMA部614から読み出された後述する拡大サーチ領域AA0〜HL0を回転、反転処理、ベクトル回転し、サーチ領域AA〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、方向判別部613からの方向判別結果を基に、DMA部615から読み出された後述する収差検出拡大領域IA〜PLを回転、反転処理、ベクトル回転し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。R領域制御部619は、方向判別部613からの方向判別結果を基に、DMA部616から読み出された後述する収差検出拡大領域QA〜HLを回転、反転処理、ベクトル回転し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ベクトル回転は、以下の式(5)により回転動作を行う。
Figure 2016122929
例えば、45度の右方向のベクトル回転を行う時は、以下の式(6)によりベクトル回転を行う。
Figure 2016122929
G画素用バッファ部620は、SRAM等から構成され、G領域制御部617により回転、反転、ベクトル回転の制御がされたサーチ領域AA〜HLをバッファリングする。R画素用バッファ部621は、SRAM等から構成され、R領域制御部618により回転、反転、ベクトル回転の制御がされた収差検出領域I20〜P31をバッファリングする。B画素用バッファ部622は、SRAM等から構成され、B領域制御部619により回転、反転、ベクトル回転の制御がされた収差検出領域Q20〜X31をバッファリングする。
エッジ検出部623は、G画素用バッファ部620からサーチ領域AA〜HL内の収差検出領域A20〜H31を読み出し、R画素用バッファ部621から収差検出領域I20〜P31を読み出す。さらに、エッジ検出部623は、B画素用バッファ部622から収差検出領域Q20〜X31を読み出し、輝度生成等を行い、収差検出領域内のエッジを検出してエッジ領域をエッジ領域バッファ部624に書き込む。エッジ検出部623は、方向判別部613からの方向情報によらず常に同一の方向にエッジの検出を行う。方向判別部613からの方向情報が、象限A(0度)、象限B(45度)、象限C(90度)、象限D(135度)、象限E(180度)、象限F(225度)、象限G(270度)、象限H(315度)の全てで、象限E(180度)の方向でエッジの検出を行う。
エッジ領域バッファ部624は、SRAM等から構成され、エッジ検出部623により検出されたエッジ領域をバッファリングする。収差検出部625は、G画素用バッファ部620からサーチ領域AA〜HLを読み出し、R画素用バッファ部621から収差検出領域I20〜P31を読み出し、B画素用バッファ部622から収差検出領域Q20〜X31を読み出す。さらに、収差検出部625は、エッジ領域バッファ部624からエッジ情報を読み出し、後述する相関演算をして、収差検出を行う。
収差検出部625は、方向判別部613の方向情報が象限A(0度)、象限B(45度)、象限C(90度)、象限D(135度)、象限E(180度)、象限F(225度)、象限G(270度)、象限H(315度)の全てで、象限Eの方向で収差検出を行う。例えば、初めに、DMA部614、DMA部615、DMA部616は、拡大サーチ領域AA0と、収差検出拡大領域IAと、収差検出拡大領域QAとを読み出す。この時、方向判別部613は、収差の検出方向を判別して、後述する象限H(収差検方向315度)と判定する。
G領域制御部617は、図25のように、拡大サーチ領域AA0を左右反転、上下反転して、45度右にベクトル回転して、サーチ領域AAをG画素用バッファ部620に書き込む。R領域制御部618は、図25のように、収差検出拡大領域IAを左右反転、上下反転して、45度右にベクトル回転して、収差検出領域I20をR画素用バッファ部621に書き込む。B領域制御部619は、図25のように、収差検出領域QAを左右反転、上下反転して、45度右にベクトル回転して、収差検出領域Q20をB画素用バッファ部622に書き込む。
次に、エッジ検出部623は、G画素用バッファ部620からサーチ領域AA内の収差検出領域A0を読み出し、R画素用バッファ部621から収差検出領域I20を読み出し、B画素用バッファ部622から収差検出領域Q20を読み出す。さらに、エッジ検出部623は、輝度生成した後に、エッジ領域バッファ部624にエッジ情報を書き込む。この時、エッジの検出方向は、象限E(180度)と同様の処理となる。
次に、収差検出部625は、G画素用バッファ部620から収差検出領域A20を含むサーチ領域AA内の相関演算用領域を読み出し、R画素用バッファ部621から収差検出領域I20を読み出し、B画素用バッファ部622から収差検出領域Q20を読み出す。さらに、収差検出部625は、エッジ検出バッファ部624からエッジ情報を読み出し、相関演算して収差の検出を行う。この時、収差の検出方向は、象限E(収差検方向180度)と同様の処理となる。こうする事で、エッジ検出部623、及び、収差検出部625の処理は、象限E(収差検方向180度)の処理と同様になる。
次に、図15〜図17において、収差検出領域A21〜H31を含む個々のサーチ領域AA〜HLと、収差検出領域I21〜P31を含む収差検出拡大領域IA〜PLと、収差検出領域Q21〜X31を含む収差検出拡大領域QA〜XLをラスタ読み出しする。そして、収差の検出を行う。
方向判別部613による方向判別結果が、象限Aの場合、図18に示すように、例えば、DMA部614は、拡大サーチ領域AF0を読み出す。G領域制御部617は、拡大サーチ領域AF0を上下反転して、サーチ領域AFを、G画素バッファ部620に書き込む。図18に示すように、例えば、DMA部615は、収差検出拡大領域IFを読み出す。R領域制御部618は、収差検出拡大領域IFを上下反転して、収差検出領域I25をR画素バッファ部621に書き込む。図18に示すように、例えば、DMA部616は、収差検出領域GFを読み出す。B領域制御部619は、収差検出領域GFを上下反転して、収差検出領域G25をB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Bの場合、図19に示すように、例えば、DMA部614は、拡大サーチ領域AL0を読み出す。G領域制御部617は、拡大サーチ領域AL0を上下反転して右45度にベクトル回転して、サーチ領域ALをG画素バッファ部620に書き込む。図19に示すように、例えば、DMA部615は、収差検出拡大領域ILを読み出す。R領域制御部618は、収差検出拡大領域ILを上下反転して右45度にベクトル回転して、収差検出領域I21をR画素バッファ部621に書き込む。図19に示すように、例えば、DMA部616は、収差検出拡大領域QLを読み出す。B領域制御部619は、収差検出拡大領域QLを上下反転して右45度にベクトル回転して、収差検出領域Q21をB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Cの場合、図20に示すように、例えば、DMA部614は、拡大サーチ領域CL0を読み出す。G領域制御部617は、拡大サーチ領域CL0を右90度回転して、サーチ領域CLをG画素バッファ部620に書き込む。図20に示すように、例えば、DMA部615は、収差検出拡大領域KLを読み出す。R領域制御部618は、収差検出拡大領域KLを右90度回転して、収差検出領域K21をR画素バッファ部621に書き込む。図20に示すように、例えば、DMA部616は、収差検出拡大領域SLを読み出す。B領域制御部619は、収差検出拡大領域SLを右90度回転して、収差検出領域S21をB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Dの場合、図21に示すように、例えば、DMA部614は、拡大サーチ領域GK0を読み出す。G領域制御部617は、拡大サーチ領域GK0を右45度にベクトル回転して、サーチ領域GKをG画素バッファ部620に書き込む。図21に示すように、例えば、DMA部615は、収差検出拡大領域OKを読み出す。R領域制御部618は、収差検出拡大領域OKを右45度にベクトル回転して、収差検出領域O20をR画素バッファ部621に書き込む。図21に示すように、例えば、DMA部616は、収差検出拡大領域WKを読み出す。B領域制御部619は、収差検出拡大領域WKを右45度にベクトル回転して、収差検出領域W20をB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Eの場合、図22に示すように、例えば、DMA部614は、拡大サーチ領域GG0を読み出す。G領域制御部617は、拡大サーチ領域GG0内のサーチ領域GGをそのままG画素バッファ部620に書き込む。図22に示すように、例えば、DMA部615は、収差検出拡大領域OGを読み出す。R領域制御部618は、収差検出拡大領域OG内の収差検領域O26をそのままR画素バッファ部621に書き込む。図22に示すように、例えば、DMA部616は、収差検出拡大領域WGを読み出す。B領域制御部619は、収差検出拡大領域WG内の収差検出領域W26をそのままB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Fの場合、図23に示すように、例えば、DMA部614は、拡大サーチ領域HA0を読み出す。G領域制御部617は、拡大サーチ領域HA0を左右反転して、右45度にベクトル回転して、サーチ領域HAをG画素バッファ部620に書き込む。図23に示すように、例えば、DMA部615は、収差検出拡大領域PAを読み出す。R領域制御部618は、収差検出拡大領域PAを左右反転して、右45度にベクトル回転して、収差検出領域P20をR画素バッファ部621に書き込む。図23に示すように、例えば、DMA部616は、収差検出拡大領域XAを読み出す。B領域制御部619は、収差検出拡大領域XAを左右反転して、右45度にベクトル回転して、収差検出領域X20をB画素バッファ部122に書き込む。
方向判別部613による方向判別結果が、象限Gの場合、図24に示すように、例えば、DMA部614は、拡大サーチ領域DB0を読み出す。G領域制御部617は、拡大サーチ領域DB0を右90度回転した後、上下反転して、サーチ領域DBをG画素バッファ部620に書き込む。図24に示すように、例えば、DMA部615は、収差検出拡大領域LBを読み出す。R領域制御部618は、収差検出拡大領域LBを右90度回転した後、上下反転して、収差検出領域L21をR画素バッファ部621に書き込む。図24に示すように、例えば、DMA部616は、収差検出拡大領域TBを読み出す。B領域制御部619は、収差検出拡大領域TBを右90度回転した後、上下反転して、収差検出領域T21をB画素バッファ部622に書き込む。
方向判別部613による方向判別結果が、象限Hの場合、図25に示すように、例えば、DMA部614は、拡大サーチ領域AA0を読み出す。G領域制御部617は、拡大サーチ領域AA0を左右反転した後、上下反転して、右45度にベクトル回転して、サーチ領域AAをG画素バッファ部620に書き込む。図25に示すように、例えば、DMA部615は、収差検出拡大領域IAを読み出す。R領域制御部618は、収差検出拡大領域IAを左右反転した後、上下反転して、右45度にベクトル回転して、収差検出領域I20をR画素バッファ部621に書き込む。図25に示すように、例えば、DMA部616は、収差検出拡大領域QAを読み出す。B領域制御部619は、収差検出拡大領域QAを左右反転した後、上下反転して、右45度にベクトル回転して、収差検出領域Q20をB画素バッファ部622に書き込む。
このように象限A、B、C、D、E、F、G、Hによって、G画素バッファ部620、R画素バッファ部621、B画素バッファ部622への書き込み制御を変更する。これにより、エッジ検出部623、及び、収差検出部625の処理は、象限Eの方向の1つのみの処理に集約されるので、エッジ検出部623、及び、収差検出部625の処理回路の複雑度を低減し、回路規模をより小さくする事ができる。方向判別部613における方向判別の方法の一例については第1の実施形態と同様である。
次に、図15〜図17を用いて、本発明の第2の実施形態に係る収差検出の一例を説明する。画像700は、撮影画像のG画素である水平108画素、垂直76画素からなる撮影画像G画素データである。左右の6画素、及び、上下の6画素は後述する相関演算をする為の余分画素である。図15(A)に示す収差検出領域A20〜H31は、ベクトル回転して、水平8画素、垂直8画素の収差検出対象であるG画素の収差検出領域である。また、収差検出領域A20〜H31は、後述する相関演算用領域ともなる。図15(B)に示す拡大サーチ領域AA0〜HL0は、相関演算する為の相関演算領域を含む水平20画素、垂直20画素が格子状に配置されている拡大サーチ領域である。
図16(A)に示す画像701は、撮影画像のR画素である水平108画素、垂直76画素のからなる撮影画像R画素データである。図16(A)に示す収差検出領域I20〜P31は、ベクトル回転して、水平8画素、垂直8画素の収差検出対象であるR画素の収差検出領域である。図16(B)に示す収差検出拡大領域IA〜PLは、ベクトル回転して、水平8画素、垂直8画素の収差検出領域I20〜P31として確保できる為の、格子状に配置されている水平12画素、垂直12画素の収差検出拡大領域である。
図17(A)に示す画像702は、撮影画像のB画素である水平108画素、垂直76画素のからなる撮影画像B画素である。図17(A)に示す収差検出領域Q20〜X31は、ベクトル回転して、水平8画素、垂直8画素の収差検出対象であるB画素の収差検出領域である。図17(B)に示す収差検出拡大領域Q20〜X31は、ベクトル回転して、水平8画素、垂直8画素の収差検出領域Q20〜X31が確保できる為の、格子状に配置されている水平12画素、垂直12画素の収差検出拡大領域である。
図15(A)の領域703は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域704は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域705は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域706は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域707は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域708は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域709は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。領域710は、収差の検出をする為に、収差検出領域K29、収差検出領域S29と相関演算する為の相関演算用領域である。例えば、方向判別部623により象限B(検出方向45度)と判定されている収差検出領域C29、収差検出領域K29、収差検出領域S29における収差検出について説明する。
まず、DMA部614は、拡大サーチ領域CJ0を読み出す。DMA部615は、収差検出拡大領域KJを読み出す。DMA部616は、収差検出拡大領域SJを読み出す。次に、G領域制御部617は、拡大サーチ領域CJ0を上下反転、右45度のベクトル回転し、相関演算用領域703〜710、及び、収差検出領域C29を含むサーチ領域CJをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域KJを上下反転、右45度のベクトル回転し、R画素用バッファ部621に収差検出領域K29を書き込む。B領域制御部619は、収差検出拡大領域SJを上下反転、右45度のベクトル回転し、B画素用バッファ部622に収差検出領域S29を書き込む。
次に、エッジ検出部623は、収差検出領域C29と、収差検出領域K29と、収差検出領域S29とから輝度を生成した後、収差検出方向にエッジの検出を行い、エッジ情報をエッジ検出バッファ624に書き込む。
次に、収差検出部625は、エッジ検出バッファ624内のエッジ情報を使用して、収差検出領域K29と、収差検出領域S29と、相関演算用領域703〜710とを相関演算する。そして、収差検出部625は、収差検出領域C29と、収差検出領域K29と、収差検出領域S29とにおける、収差検出方向に収差の検出を行う。このように、収差検出領域C29と、収差検出領域K29と、収差検出領域S29にて輝度生成した後、エッジ検出する。そして、エッジ検出情報を基に、相関演算用領域703〜710のように、サーチ領域CJ内の収差検出方向に水平、垂直に相関演算用領域を1画素ずつずらした領域を、相関演算を行う領域として、相関演算する事で収差の検出を行う。
収差検出部625は、撮影した画像の所定の画素を補正中心として、放射状に複数の方向(例えば8個の方向)の収差を検出する。本実施形態によれば、収差検出回路部612の複雑度を低減し、回路規模をより小さくする事ができる。その動作の一例を、水平108画素、垂直76画素のからなり、収差の検出領域が水平8画素、垂直8画素で、検出方向が図2に示すように8つの方向の象限に分割された撮影画像を例に、図26のフローチャートを参照しながら、画像処理方法を説明する。ステップS1000〜S1003は、第1の実施形態(図13)と同様である。ステップS1003の後、象限A〜Hに応じて、ステップS9004〜S9011に進む。
ステップS9004は、方向判別部613により、象限Aと判定された場合の処理である。ステップS9004では、G領域制御部617は、拡大サーチ領域AB0〜HL0を上下反転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを上下反転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを上下反転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ステップS9005は、方向判別部613により、象限Bと判定された場合の処理である。ステップS9005では、G領域制御部617は、拡大サーチ領域AB0〜HL0を上下反転及び右45度ベクトル回転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを上下反転及び右45度ベクトル回転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを上下反転及び右45度ベクトル回転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ステップS9006は、方向判別部613により、象限Cと判定された場合の処理である。ステップS9006では、G領域制御部617は、拡大サーチ領域AB0〜HL0を右90度回転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを右90度回転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書込む。B領域制御部619は、収差検出拡大領域QA〜XLを右90度回転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書込む。
ステップS9007は、方向判別部613により、象限Dと判定された場合の処理である。ステップS9007では、G領域制御部617は、拡大サーチ領域AB0〜HL0を右45度ベクトル回転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを右45度ベクトル回転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを右45度ベクトル回転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ステップS9008は、方向判別部613により、象限Eと判定された場合の処理である。ステップS9008では、G領域制御部617は、拡大サーチ領域AB0〜HL0内のサーチ領域AB〜HLをそのままG画素用バッファ部620に書き込み、方向変換しない。R領域制御部618は、収差検出拡大領域IA〜PL内の収差検出領域I20〜P31をそのままR画素用バッファ部621に書き込み、方向変換しない。B領域制御部619は、収差検出拡大領域QA〜XL内の収差検出領域Q20〜X31をそのままB画素用バッファ部622に書き込み、方向変換しない。
ステップS9009は、方向判別部613により、象限Fと判定された場合の処理である。ステップS9009では、G領域制御部617は、拡大サーチ領域AB0〜HL0を左右反転及び右45度ベクトル回転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを左右反転及び右45度ベクトル回転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを左右反転及び右45度ベクトル回転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ステップS9010は、方向判別部613により、象限Gと判定された場合の処理である。ステップS9010では、G領域制御部617は、拡大サーチ領域AB0〜HL0を右90度回転及び上下反転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを右90度回転及び上下反転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを右90度回転及び上下反転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
ステップS9011は、方向判別部613により、象限Hと判定された場合の処理である。ステップS9011では、G領域制御部617は、拡大サーチ領域AB0〜HL0を左右反転、上下反転及び右45度ベクトル回転することにより方向変換し、サーチ領域AB〜HLをG画素用バッファ部620に書き込む。R領域制御部618は、収差検出拡大領域IA〜PLを左右反転、上下反転及び右45度ベクトル回転することにより方向変換し、収差検出領域I20〜P31をR画素用バッファ部621に書き込む。B領域制御部619は、収差検出拡大領域QA〜XLを左右反転、上下反転及び右45度ベクトル回転することにより方向変換し、収差検出領域Q20〜X31をB画素用バッファ部622に書き込む。
次に、ステップS9012では、エッジ検出部623は、象限Eの検出方向180度の方向で、G画素用バッファ部620からサーチ領域AA〜AH内の収差検出領域A20〜H31を読み出す。さらにエッジ検出部623は、R画素用バッファ部621から収差検出領域I20〜P31を読み出し、B画素用バッファ部622から収差検出領域Q20〜X31を読み出し、輝度を生成し、エッジを検出し、エッジ領域バッファ部624にエッジ情報を書き込む。
次に、ステップS9013では、収差検出部625は、G画素用バッファ部620から収差検出領域A20〜H31を含むサーチ領域AA〜HL内の相関演算用領域を読み出し、R画素用バッファ部621から収差検出領域I20〜P31を読み出す。さらに、収差検出部625は、B画素用バッファ部622から収差検出領域Q20〜X31を読み出し、エッジ検出バッファ部624からエッジ情報を読み出し、象限Eの検出方向180度の方向で相関演算して収差の検出を行う。
次に、ステップS9014では、画像処理装置100は、収差検出領域H31と、収差検出領域P31と、収差検出領域X31の収差検出が終了したかを判定する。終了していない場合、ステップS1003に戻り、収差検出領域A20〜H31と、収差検出領域I20〜P31と、収差検出領域Q20〜X31とをラスタ読出ししながら順次、収差の検出を行う。
収差検出領域H31と、収差検出領域P21と、収差検出領域X31の収差検出が終了した場合、ステップS9015に進む。ステップS9015では、DMA部108は、DRAM部110上に格納されている撮影画像と収差検出結果を画像処理部107に転送する。画像処理部107は、収差検出結果を基に、撮影画像の収差を補正する。ステップS1018〜S1019では、第1の実施形態と同様の処理を行う。
本実施形態によれば、G領域制御部617、R領域制御部618及びB領域制御部619は、収差を検出する8個の象限A〜Hの方向を1個の象限Eの方向に集約するように、8個の象限A〜Hの方向の領域の画像をそれぞれ方向変換する。収差検出部625は、その方向変換された8個の象限A〜Hの方向の領域の画像について、それぞれ、集約された1個の象限Eの方向で収差を検出することにより、8個の象限A〜Hの方向の収差を検出する。画像処理部107は、収差検出部625により検出された収差を基に画像を補正する。
本実施形態では、収差検出部625は収差の検出方向に関係なく一つの処理に集約できる為、収差検出回路部612の複雑度を低減し、回路規模をより小さくするができる。以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
第1及び第2の実施形態によれば、画像処理装置100が提供される。G領域制御部117,617、R領域制御部118,618及びB領域制御部119,619は、収差を検出する複数の方向(例えば8個の方向)を少なくとも1個の方向に集約するように、その複数の方向の領域の画像をそれぞれ方向変換する。収差検出部125,625は、その方向変換された複数の方向の領域の画像について、それぞれ、集約された少なくとも1個の方向のうちのいずれかの方向で収差を検出することにより、複数の方向(例えば8個の方向)の収差を検出する。画像処理部107は、収差検出部125,625により検出された収差を基に画像を補正する。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
107 画像処理部、117 G領域制御部、118 R領域制御部、119 B領域制御部、125 収差検出部

Claims (9)

  1. 画像の所定の画素を中心として、放射状に複数の方向の収差を検出する収差検出部と、
    前記収差を検出する複数の方向を少なくとも1個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換する領域制御部と、
    前記収差検出部により検出された収差を基に前記画像を補正する画像処理部とを有し、
    前記収差検出部は、前記領域制御部により前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも1個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出することを特徴とする画像処理装置。
  2. 前記領域制御部は、
    緑色領域の画像を方向変換する緑色領域制御部と、
    赤色領域の画像を方向変換する赤色領域制御部と、
    青色領域の画像を方向変換する青色領域制御部とを有することを特徴とする請求項1記載の画像処理装置。
  3. 前記領域制御部は、画像を左右反転、上下反転又は回転することにより前記方向変換することを特徴とする請求項1又は2記載の画像処理装置。
  4. 前記収差検出部は、0度、45度、90度、135度、180度、225度、270度及び315度の8個の方向の収差を検出することを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記領域制御部は、0度、90度、180度及び270度の方向を1個の方向に集約し、45度、135度、225度及び315度の方向を他の1個の方向に集約することを特徴とする請求項4記載の画像処理装置。
  6. 前記領域制御部は、前記8個の方向を1個の方向に集約することを特徴とする請求項4記載の画像処理装置。
  7. 前記領域制御部は、
    0度の方向の領域の画像を上下反転することにより方向変換し、
    45度の方向の領域の画像を上下反転することにより方向変換し、
    90度の方向の領域の画像を右90度回転することにより方向変換し、
    135度の方向の領域の画像を方向変換せず、
    180度の方向の領域の画像を方向変換せず、
    225度の方向の領域の画像を左右反転することにより方向変換し、
    270度の方向の領域の画像を右90度回転及び上下反転することにより方向変換し、
    315度の方向の領域の画像を左右反転及び上下反転することにより方向変換し、
    前記領域制御部は、0度、90度、180度及び270度の方向を180度の方向に集約し、45度、135度、225度及び315度の方向を135度の方向に集約することを特徴とする請求項5記載の画像処理装置。
  8. 前記領域制御部は、
    0度の方向の領域の画像を上下反転することにより方向変換し、
    45度の方向の領域の画像を上下反転及び右45度ベクトル回転することにより方向変換し、
    90度の方向の領域の画像を右90度回転することにより方向変換し、
    135度の方向の領域の画像を右45度ベクトル回転することにより方向変換し、
    180度の方向の領域の画像を方向変換せず、
    225度の方向の領域の画像を左右反転及び右45度ベクトル回転することにより方向変換し、
    270度の方向の領域の画像を右90度回転及び上下反転することにより方向変換し、
    315度の方向の領域の画像を左右反転、上下反転及び右45度ベクトル回転することにより方向変換し、
    前記領域制御部は、前記8個の方向を180度の方向に集約することを特徴とする請求項6記載の画像処理装置。
  9. 画像の所定の画素を中心として、放射状に複数の方向の収差を検出する画像処理方法であって、
    領域制御部により、前記収差を検出する複数の方向を少なくとも1個の方向に集約するように、前記複数の方向の領域の画像をそれぞれ方向変換するステップと、
    収差検出部により、前記方向変換された前記複数の方向の領域の画像について、それぞれ、前記集約された少なくとも1個の方向のうちのいずれかの方向で収差を検出することにより、前記複数の方向の収差を検出するステップと、
    画像処理部により、前記検出された収差を基に前記画像を補正するステップと
    を有することを特徴とする画像処理方法。
JP2014261319A 2014-12-24 2014-12-24 画像処理装置及び画像処理方法 Pending JP2016122929A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014261319A JP2016122929A (ja) 2014-12-24 2014-12-24 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014261319A JP2016122929A (ja) 2014-12-24 2014-12-24 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
JP2016122929A true JP2016122929A (ja) 2016-07-07

Family

ID=56328974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014261319A Pending JP2016122929A (ja) 2014-12-24 2014-12-24 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP2016122929A (ja)

Similar Documents

Publication Publication Date Title
JP2021533507A (ja) 画像繋ぎ合わせ方法及び装置、車載画像処理装置、電子機器、記憶媒体
RU2623806C1 (ru) Способ и устройство обработки стереоизображений
WO2017149591A1 (ja) 画像処理装置
JP2011244220A5 (ja) 投影装置及び投影方法
JP6845173B2 (ja) 画像処理装置及び画像処理方法
JP5195592B2 (ja) 映像処理装置
JP2011113234A (ja) 画像処理装置、および画像処理装置の動作方法
JP7205332B2 (ja) 診断処理装置、診断システム、診断処理方法、及びプログラム
JP5602532B2 (ja) 画像処理装置および画像処理方法
JP6031819B2 (ja) 画像処理装置、画像処理方法
JP5893445B2 (ja) 画像処理装置、および画像処理装置の動作方法
JP5735227B2 (ja) 画像変換装置及び画像変換システム
US20180253823A1 (en) Image processing device, image processing method and computer readable medium
US10713757B2 (en) Image processing apparatus, control method thereof, and storage medium
JP6722278B2 (ja) 画像処理装置
JP2010176547A (ja) 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP2016122929A (ja) 画像処理装置及び画像処理方法
JP5327482B2 (ja) 画像処理装置及び画像処理方法
JP6910622B2 (ja) 画像処理システム
CN109391788B (zh) 用于处理图像信号的系统
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP5959684B2 (ja) 画像変換システム
JP6762775B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
JP7091734B2 (ja) 入力装置、診断システム、入力方法、及びプログラム
US20180068477A1 (en) Display method, display device, and non-transitory computer-readable recording medium