(57)【特許請求の範囲】
【請求項１】
光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択部と、
前記注目画素選択部により選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択部と、
前記コードタップ選択部により選択された前記コードタップの特徴量を示すコードを演算するコード演算部と、
前記注目画素選択部により選択された注目画素毎に、前記被写体までの距離を計測する距離計測部と、
前記注目画素選択部により選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測部により計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定部と、
コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶し、前記コード演算部により演算されたコードと、前記オフセット量判定部により判定された前記オフセット量と、に基づいて複数のタップ係数を出力する係数記憶部と、
前記注目画素選択部により選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択部と、
前記フィルタタップ選択部により選択された前記フィルタタップの各画素値と、前記係数記憶部から出力された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成部と、を備え、
前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数であり、
前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像であり、
前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である
画像処理装置。
【請求項２】
前記撮像部は、前記被写体の前記第１の画像を出力する第１の撮像素子と、前記被写体の第３の画像を出力する第２の撮像素子と、を有し、
前記距離計測部は、前記第１の撮像素子から出力された前記第１の画像と、前記第２の撮像素子から出力された前記第３の画像と、前記第１の撮像素子と前記第２の撮像素子の間の距離情報と、に基づいて、前記注目画素毎に、前記被写体までの距離を計測する
請求項１に記載の画像処理装置。
【請求項３】
前記撮像部は、前記被写体からの距離に応じて前記第１の画像を生成する第３の撮像素子を有し、
前記距離計測部は、前記被写体に光を照射する照射部と、前記照射部により光が照射された時点から前記第３の撮像素子により前記第１の画像が生成された時点までの時間情報に基づいて前記被写体までの距離を計測する計測部と、を有する
請求項１に記載の画像処理装置。
【請求項４】
前記生徒画像は、光学シミュレーションにより、前記教師画像から変換された画像である
請求項１から請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択ステップと、
前記注目画素選択ステップにより選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択ステップと、
前記コードタップ選択ステップにより選択された前記コードタップの特徴量を示すコードを演算するコード演算ステップと、
前記注目画素選択ステップにより選択された注目画素毎に、前記被写体までの距離を計測する距離計測ステップと、
前記注目画素選択ステップにより選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測ステップにより計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定ステップと、
コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶する係数記憶部から、前記コード演算ステップにより演算されたコードと、前記オフセット量判定ステップにより判定された前記オフセット量と、に基づく複数のタップ係数を読み出す係数読出しステップと、
前記注目画素選択ステップにより選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択ステップと、
前記フィルタタップ選択ステップにより選択された前記フィルタタップの各画素値と、前記係数読出しステップにより読み出された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成ステップと、を備え、
前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数であり、
前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像であり、
前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である
画像処理方法。
【請求項６】
コンピュータを、
光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択部、
前記注目画素選択部により選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択部、
前記コードタップ選択部により選択された前記コードタップの特徴量を示すコードを演算するコード演算部、
前記注目画素選択部により選択された注目画素毎に、前記被写体までの距離を計測する距離計測部、
前記注目画素選択部により選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測部により計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定部、
コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶し、前記コード演算部により演算されたコードと、前記オフセット量判定部により判定された前記オフセット量と、に基づいて複数のタップ係数を出力する係数記憶部、
前記注目画素選択部により選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択部、及び、
前記フィルタタップ選択部により選択された前記フィルタタップの各画素値と、前記係数記憶部から出力された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成部、として機能させるためのものであって、
前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数であり、
前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像であり、
前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である
プログラム。
【請求項７】
請求項１から請求項４のいずれか１項に記載の画像処理装置と、
前記撮像部と、
を備えた撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラム及び撮像装置に関する。
【背景技術】
【０００２】
近年、例えばビデオカメラ、電子スチルカメラ、いわゆるスマートフォン、セキュリティーカメラ、内視鏡、顕微鏡などの電子カメラの用途に、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサやＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサなどの撮像素子を用いた撮像装置が幅広く使用されている。
【０００３】
撮像装置は、一般に、画像の中心付近にある被写体にフォーカスを合わせて撮影する。このため、被写体より遠い位置にある背景や、被写体より近い位置にある物体がぼけてしまう問題がある。
【０００４】
このような問題に対して、特許文献１には、被写界深度の浅い画像に対するボケ補正を効率良く行う技術が記載されている。具体的には、特許文献１の技術は、デジタル写真画像から主要被写体領域を抽出し、主要被写体領域の画像を用いてボケを補正するための第１のパラメータを設定すると共に、デジタル写真画像全体または主要被写体領域以外の領域の画像を用いてボケを補正するための第２のパラメータを設定する。
【０００５】
次に、特許文献１の技術は、デジタル写真画像が被写界深度の浅い画像である確信度を求め、前記確信度が高いほど前記第１のパラメータの重みが大きくなるように前記第１のパラメータと前記第２のパラメータとを重付合算して前記ボケを補正するためのパラメータを取得する。そして、特許文献１の技術は、取得したパラメータを用いて前記デジタル写真画像に対して補正を行う。
【０００６】
また、特許文献２には、光学系の影響を受けて画質の劣化した画像を高精度に補正する技術が記載されている。具体的には、特許文献２の技術は、高画質画像と低画質画像とを用いたコード分類型適応フィルタの学習処理により求められたタップ係数に基づいて、光学系の影響を受けた低画質画像を高画質画像に補正する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１２２６８８号公報
【特許文献２】特許第６１６４５６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１の技術は、主要被写体領域の被写界深度に応じてデジタル写真画像全体のボケを補正するので、主要被写体領域以外の部分についてはボケを改善できない問題がある。
【０００９】
特許文献２の技術は、学習処理用の高画質画像の中に焦点距離の異なる複数の被写体が写っている場合、低画質画像を高画質画像に補正しても、一部の被写体についてはボケが十分に改善できない問題がある。
【００１０】
本発明は、上述した実情を鑑みて提案されたものであり、画像中に焦点距離の異なる複数の被写体がある場合でも高画質画像を得ることができる画像処理装置、画像処理方法、プログラム及び撮像装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る画像処理装置は、光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択部と、前記注目画素選択部により選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択部と、前記コードタップ選択部により選択された前記コードタップの特徴量を示すコードを演算するコード演算部と、前記注目画素選択部により選択された注目画素毎に、前記被写体までの距離を計測する距離計測部と、前記注目画素選択部により選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測部により計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定部と、コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶し、前記コード演算部により演算されたコードと、前記オフセット量判定部により判定された前記オフセット量と、に基づいて複数のタップ係数を出力する係数記憶部と、前記注目画素選択部により選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択部と、前記フィルタタップ選択部により選択された前記フィルタタップの各画素値と、前記係数記憶部から出力された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成部と、を備えている。前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数である。前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像である。前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である。
【００１２】
本発明に係る画像処理方法は、光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択ステップと、前記注目画素選択ステップにより選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択ステップと、前記コードタップ選択ステップにより選択された前記コードタップの特徴量を示すコードを演算するコード演算ステップと、前記注目画素選択ステップにより選択された注目画素毎に、前記被写体までの距離を計測する距離計測ステップと、前記注目画素選択ステップにより選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測ステップにより計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定ステップと、コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶する係数記憶部から、前記コード演算ステップにより演算されたコードと、前記オフセット量判定ステップにより判定された前記オフセット量と、に基づく複数のタップ係数を読み出す係数読出しステップと、前記注目画素選択ステップにより選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択ステップと、前記フィルタタップ選択ステップにより選択された前記フィルタタップの各画素値と、前記係数読出しステップにより読み出された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成ステップと、を備えている。前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数である。前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像である。前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である。
【００１３】
本発明に係るプログラムは、コンピュータを、光学系を介して被写体からの光が入射された撮像部であって当該撮像部から出力された前記被写体の第１の画像に対して、前記第１の画像の中の１つの画素を注目画素として選択する注目画素選択部、前記注目画素選択部により選択された注目画素に対して、複数の画素が第１の配列パターンで配列されたコードタップを選択するコードタップ選択部、前記コードタップ選択部により選択された前記コードタップの特徴量を示すコードを演算するコード演算部、前記注目画素選択部により選択された注目画素毎に、前記被写体までの距離を計測する距離計測部、前記注目画素選択部により選択された注目画素毎に、前記光学系の焦点距離と、前記距離計測部により計測された距離と、に基づいて、焦点距離に対する所定のずれ量であるオフセット量を判定するオフセット量判定部、コード及びオフセット量毎に、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶し、前記コード演算部により演算されたコードと、前記オフセット量判定部により判定された前記オフセット量と、に基づいて複数のタップ係数を出力する係数記憶部、前記注目画素選択部により選択された前記注目画素に対して、複数の画素が第２の配列パターンで配列されたフィルタタップを選択するフィルタタップ選択部、及び、前記フィルタタップ選択部により選択された前記フィルタタップの各画素値と、前記係数記憶部から出力された複数のタップ係数と、に基づいて、前記注目画素毎に対応する出力画素の画素値を演算することで、前記被写体の第２の画像を生成する画像生成部、として機能させるためのものである。前記タップ係数は、前記学習処理によって教師画像の各画素と生徒画像の各画素とがマッピングされた正規方程式を解くことにより算出されたタップ係数である。前記教師画像は、撮像光学系から撮像面までの距離が焦点距離に一致する状態で撮影された画像である。前記生徒画像は、前記撮像光学系から前記撮像面までの距離が前記焦点距離に対して前記オフセット量がある状態で撮影された画像である。
【００１４】
本発明に係る撮像装置は、上記の画像処理装置と、前記撮像部と、を備えたものである。
【発明の効果】
【００１５】
本発明は、画像中に焦点距離の異なる複数の被写体がある場合でも高画質画像を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係る撮像装置の構成例を示すブロック図である。
【図２】画像補正部内でＲＧＢの色成分毎に設けられた画像変換装置５０の構成例を示すブロック図である。
【図３】第１の画像上の点Ｐ（ｘ，ｙ）を示す図である。
【図４】第２の画像上の点Ｐ’（ｘ’，ｙ’）を示す図である。
【図５】ディストーションの一例を示す図である。
【図６】歪曲収差のある第１の画像の近傍にタップの張り方や画素の読み出し方を示す概念図である。
【図７】歪曲収差のある第１の画像の近傍にタップの張り方や画素の読み出し方を示す概念図である。
【図８】アドレス整列部の処理を示す概念図である。
【図９】焦点距離のオフセット量テーブルを示す図である。
【図１０】第１収差補正処理部の構成例を示すブロック図である。
【図１１】係数記憶部に記憶された２５個のタップ係数の概念図である。
【図１２】積和演算部の構成例を示す図である。
【図１３】フィルタタップ選択部で選択されるフィルタタップの構成例を示す図である。
【図１４】コードタップ選択部で選択されるコードタップの構成例を示す図である。
【図１５】コード演算部の構成例を示すブロック図である。
【図１６】１ビットＤＲ量子化の例を説明する図である。
【図１７】中心画素差分比検出部で行われる中心画素差分比を説明する図である。
【図１８】第１収差補正処理部による画像変換処理の例を説明するフローチャートである。
【図１９】第２収差補正処理部の構成例を示すブロック図である。
【図２０】フィルタタップ選択部で選択されるフィルタップの構成例を示す図である。
【図２１】コードタップ選択部で選択されるコードタップの構成例を示す図である。
【図２２】コード演算部の構成例を示すブロック図である。
【図２３】第２収差補正処理部による画像変換処理の例を説明するフローチャートである。
【図２４】画像変換装置による画像変換処理の例を説明するフォローチャートである。
【図２５】タップ係数を求めるための学習装置の構成例を示すブロック図である。
【図２６】光学系（フォーカスレンズ）と撮像素子の位置関係を示す概念図である。
【図２７】タップ係数のテーブル構造を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について説明する。
図１は、本実施形態に係る撮像装置１の構成例を示すブロック図である。撮像装置１は、いわゆるステレオカメラであり、光学系４１の設計情報を用いて静止画又は動画を撮影する。
【００１８】
撮像装置１は、光学系４１、イメージセンサ４２、記憶部４３、信号処理部４４、画像補正部４５、出力部４６、及び制御部４７を有する。なお、撮像装置１はステレオカメラであるため、イメージセンサ４２は２つ設けられ、それぞれのイメージセンサ４２に光学系４１が設けられている。よって、２つのイメージセンサ４２から出力された各々の画像（第１の画像、第４の画像）は、記憶部４３、信号処理部４４を経て、画像補正部４５に供給される。
【００１９】
光学系４１は、例えば、図示せぬズームレンズや、フォーカスレンズ、絞り、光学ローパスフィルタ等を有する。光学系４１は、外部からの光をイメージセンサ４２に入射させる。光学系４１は、焦点距離に関するフォーカス情報、位相情報などを含む撮影情報を画像補正部４５に供給する。
【００２０】
イメージセンサ４２は、例えば、ＣＭＯＳイメージセンサである。イメージセンサ４２は、光学系４１からの入射光を受光して光電変換を行って、光学系４１からの入射光に対応する電気信号としての画像を出力する。記憶部４３は、イメージセンサ４２から出力された画像を一時記憶する。
【００２１】
信号処理部４４は、記憶部４３に記憶された画像に対して、例えばホワイトバランス処理、デモザイク処理、ガンマ補正処理や、ノイズ除去処理等の信号処理を行い、信号処理済みの画像を画像補正部４５に供給する。
画像補正部４５は、光学系４１より供給された撮影情報を用いて、ＲＧＢの色成分毎に、信号処理部４４から供給された画像に対して収差補正等の画像補正処理を行う。
【００２２】
出力部４６は、画像補正部４５からの画像を様々な態様で出力する。出力部４６は、例えば、液晶等で構成されるディスプレイ、半導体メモリ・磁気ディスク・光ディスク等の記録媒体を駆動するドライバ、ネットワーク・各種ケーブル・無線等の通信経路を使った通信器に該当する。
【００２３】
出力部４６は、例えば、ディスプレイである場合は、画像補正部４５からの画像をいわゆるスルー画像として表示する。出力部４６は、例えば、記録媒体を駆動するドライバである場合は、画像補正部４５からの画像を記録媒体に記録する。出力部４６は、例えば、通信器である場合は、画像補正部４５からの画像をネットワーク等の通信経路を介して外部へ出力する。
制御部４７は、ユーザの操作等に従い、撮像装置１を構成する各ブロックを制御する。
【００２４】
以上のように構成される撮像装置１では、イメージセンサ４２が、光学系４１からの入射光を受光し、その入射光に応じて画像を出力する。
イメージセンサ４２から出力された画像は、記憶部４３に記憶される。記憶部４３に記憶された画像は、信号処理部４４及び画像補正部４５による信号処理が施される。画像補正部４５による画像補正済みの画像は、出力部４６を介して、外部に出力される。
【００２５】
＜画像変換装置５０の構成例＞
図２は、図１の画像補正部４５内でＲＧＢの色成分毎に設けられた画像変換装置５０の構成例を示すブロック図である。画像変換装置５０は、各色成分に対応するテーブルや係数を用いて、画像の収差補正処理を行う。
【００２６】
画像処理装置５０は、注目画素選択部５１、歪曲収差テーブル記憶部５２、補正アドレス記憶部５４、係数記憶部５５、位置別係数記憶部５７、フレーム記憶部５８、アドレス整列部５９を備えている。
【００２７】
さらに、画像処理装置５０は、第１収差補正処理部６０、第２収差補正処理部６１、フレーム記憶部６２、アドレス整列部６３、第１収差補正処理部６４、距離計測部６５、オフセット量選択部６６を備えている。なお、フレーム記憶部５８とフレーム記憶部６２、アドレス整列部５９とアドレス整列部６３、第１収差補正処理部６０と第１収差補正処理部６４は、それぞれ同じ処理を実行する。
【００２８】
画像変換装置５０は、光学シミュレーションによる２次元像シミュレーションの結果を用いて、収差のない理想的な第１の画像と、光学系４１を介して得られた収差のある第２の画像と、の対応関係を求める。そして、画像変換装置５０は、歪曲収差補正用テーブルと、コード分類型適応フィルタの学習処理によって求めたタップ係数と、を用いて、第２の画像に収差補正を行う。
【００２９】
ここで、歪曲収差のない理想的な第１の画像上の点Ｐ（ｘ，ｙ）と、光学系４１を介して得られた歪曲収差のある第２の画像上の点Ｐ’（ｘ’，ｙ’）と、の対応関係について説明する。歪曲収差とは、画像の中心から放射方向に画像が伸縮して画像が歪曲することをいう。但し、画像の中心は、撮像光学系の光軸とイメージセンサの撮像面との交点とする。
【００３０】
図３は、第１の画像上の点Ｐ（ｘ，ｙ）を示す図である。図４は、第２の画像上の点Ｐ’（ｘ’，ｙ’）を示す図である。
図３に示す第１の画像上の点Ｐは、光学系の影響により歪曲収差が生じると、画像の中心から放射方向に伸縮して、図４に示す第２の画像上の点Ｐ’に対応する。歪曲の度合いは、画像の中心からの距離ｒに依存する。理想的な撮像光学系における歪曲収差は、画像の中心に対して点対称である。歪曲収差のない画像と歪曲収差のある画像との対応関係は、以下の式（１）〜（３）の通りである。
【００３１】
ｒ２＝ｘ２＋ｙ２            ・・・（１）
ｒ’２＝ｘ’２＋ｙ’２      ・・・（２）
ｘ：ｙ＝ｘ’：ｙ’        ・・・（３）
【００３２】
式（１）〜（３）によれば、距離ｒと距離ｒ’の対応関係を示す関数またはテーブルがあれば、理想的な歪曲収差のない画像（ｘ，ｙ）と歪曲収差のある画像（ｘ’，ｙ’）との対応関係が求められる。
【００３３】
しかし、距離ｒと距離ｒ’の対応関係は、関数を使って高精度に近似できない。そのため、本実施の形態では、距離ｒと距離ｒ’の対応関係については、撮像光学系の光学シミュレーションまたは実測値により求められたテーブルが使用される。
【００３４】
一方、（ｘ，ｙ）と（ｘ’，ｙ’）の対応関係を直接表す２次元テーブルを使用することも可能である。但し、２次元テーブルのデータ量が膨大になってしまう問題がある。
【００３５】
そこで、本実施の形態では、式（４）に示すように、撮像光学系の光学シミュレーションまたは実測値により求められたものであって、距離ｒと距離ｒ’の対応関係を示す歪曲収差テーブルｄ（ｒ）が使用される。これにより、膨大なデータを用いることなく、（ｘ，ｙ）から（ｘ’，ｙ’）ら得られる。具体的には、（ｘ’，ｙ’）は、式（５）及び（６）により求められる。
【００３６】
ｒ’＝ｄ（ｒ）        ・・・（４）
ｘ’＝ｘ（ｒ’／ｒ）  ・・・（５）
ｙ’＝ｙ（ｒ’／ｒ）  ・・・（６）
【００３７】
画像処理装置５０は、入力された第２の画像の（ｘ’，ｙ’）の画素値を取得して、取得した（ｘ’，ｙ’）の画素値を第１の画像（ｘ，ｙ）の画素値に変換することにより、歪曲収差のない第１の画像を得る。
【００３８】
図５は、ディストーションｄ（＝（ｒ’−ｒ）／ｒ）の一例を示す図である。歪曲収差テーブルｄ（ｒ）を用いると、ｒ’は式（４）の通りである。つまり、歪曲収差テーブルｄ（ｒ）は、距離ｒを距離ｒ’に変換するテーブルを表し、距離ｒに依存して変化する。歪曲収差テーブルｄ（ｒ）は、光学系の光学シミュレーションまたは実測値により求められたものであり、図２の歪曲収差テーブル記憶部５２に記憶される。
【００３９】
注目画素選択部５１により注目画素（ｘ，ｙ）が選択されると、次の手順に従って、注目画素（ｘ，ｙ）に対応する補正アドレス（ｘ’，ｙ’）が求められる。
最初に、注目画素（ｘ，ｙ）が選択されると、注目画素（ｘ，ｙ）から中心までの距離ｒが、小数点以下所定の桁数まで計算される。
【００４０】
次に、距離ｒと歪曲収差テーブル記憶部５２に記憶された歪曲収差テーブルｄ（ｒ）とに基づいて、歪曲収差により伸縮した距離ｒ’が求められる。
最後に、距離ｒと距離ｒ’との比を用いて、式（５）及び（６）に従って、小数点以下所定の桁数の補正アドレス（ｘ’，ｙ’）が求められる。このように求められた補正アドレス（ｘ’，ｙ’）は、歪曲収差テーブル記憶部５２から読み出され、補正アドレス記憶部５３に記憶される。
【００４１】
係数記憶部５５には、コード及び撮影情報（焦点距離のオフセット量）毎に、解像度劣化を補正するための係数が記憶されている。解像度劣化とは、主に、フォーカスボケをいうが、その他、歪曲収差以外の収差、回折による絞りボケ、光学ローパスフィルタに起因するものも含まれる。また、フォーカスボケとは、画像中の１つの被写体に焦点が合っているものの、他の被写体には焦点が合っていないために、他の被写体がぼけることをいう。なお、係数は、後述する学習方法によって求められる。
【００４２】
位置別係数記憶部５７には、係数記憶部５５に記憶されている様々なオフセット量の係数のうち、現在のオフセット量に対応する係数が記憶される。
【００４３】
＜画像変換装置５０による収差補正処理＞
画像変換装置５０は、光学系４１から撮影情報が供給され、信号処理部４４から信号処理済みの画像（第１の画像、第４の画像）が供給されると、次の処理を行う。
【００４４】
信号処理部４４から出力された第１の画像はフレーム記憶部５８に記憶され、信号処理部４４から出力された第４の画像はフレーム記憶部６２に記憶される。
注目画素選択部５１は、第２の画像を構成するための画素を順次注目画素として選択し、選択した注目画素を表す情報を所定のブロックに供給する。なお、第２の画像は、これら生成しようとする画像であって、第１の画像から歪曲収差やフォーカスボケなどが除去された高画質画像である。
【００４５】
注目画素選択部５１が注目画素（ｘ，ｙ）を選択すると、補正アドレス記憶部５４から、注目画素（ｘ，ｙ）に対応する補正アドレス（ｘ’，ｙ’）が読み出される。補正アドレス（ｘ’，ｙ’）のうち、小数点以下を四捨五入した情報である整数位置情報が、フレーム記憶部５８及びフレーム記憶部６２に供給される。その整数位置情報の下位数ビットは、アドレス整列部５９及びアドレス整列部６３に供給される。また、補正アドレス（ｘ’，ｙ’）の小数点以下の情報は、第１収差補正部６０に供給される。
【００４６】
フレーム記憶部５８は、補正アドレス記憶部５４より供給された補正アドレス（ｘ’，ｙ’）の整数位置情報に従って、第１の画像の各画素の画素値をラスタースキャン順に読み出すことにより、画素単位で歪曲収差補正された第１の画像を出力する。さらに、フレーム記憶部５８は、図７に示すように、その整数位置情報の画素近傍の４画素以上の画素値を読み出す。フレーム記憶部５８は、読み出した画素値をアドレス整列部５９に供給する。なお、フレーム記憶部６２もフレーム記憶部５８と同様の処理を行う。
【００４７】
歪曲収差の影響を受けた第１の画像（図４）には、歪曲収差のない第２の画像（図３）に比べて、伸びた部分と縮小した部分が生じている。ジャギーが出ないように綺麗に第２の画像から第１の画像へ変換するためには、図６に示すように、歪曲収差のある第１の画像の画素に対してタップを張る（複数の周辺画素とリンクする）必要がある。
【００４８】
一方、フレーム記憶部５８に記憶された第１の画像から整数位置情報に従って各画素の画素値をラスタースキャン順に読み出すと、伸びた部分に相当する画素の画素値が読み飛ばされ、必要な画素値が読み出されない場合がある。その理由は、伸びた部分については、第１の画像（図４）より第２の画像（図３）の方が、情報密度が高いためである。
【００４９】
そこで、フレーム記憶部５８は、補正アドレス記憶部５４より整数位置情報が供給されると、図７に示すように、第１の画像から、当該整数位置情報及びその近傍にある例えば４画素以上の各画素の画素値を読み出して、読み出した画素値をアドレス整列部５９に供給する。これにより、必要な画素値が読み出されない問題が回避される。
【００５０】
整数位置情報の近傍の画素数は、伸縮率ｒ’／ｒが１以下の場合は１画素、伸縮率ｒ’／ｒが１を超えて２以下の場合は水平方向及び垂直方向にそれぞれ２画素ずつの合計４画素、伸縮率ｒ’／ｒが２を超える場合は４画素以上である。
【００５１】
アドレス整列部５９は、フレーム記憶部５８からラスタースキャン順に供給される画素値（第１の画像）と、補正アドレス記憶部５４から供給される下位位置情報（整数位置情報の下位数ビット）とに基づいて、図６における注目画素の近傍画素がわかるように、位置情報による整列処理を行う。
【００５２】
図８は、アドレス整列部５９の処理を示す概念図である。アドレス整列部５９は、バッファメモリ又はレジスタ等の記憶媒体を有し、フレーム記憶部５８から順次供給される画素値と、画素値にリンクすると共に補正アドレス記憶部５４から供給される下位位置情報と、を記憶する。そして、注目画素の近傍の位置情報が選択されると、アドレス整列部５９から、注目画素近傍の画素値がタップ情報として読み出される。このタップ情報は、第１収差補正処理部６０に供給される。なお、アドレス整列部６３もアドレス整列部５９と同様の処理を行う。但し、アドレス整列部６３から読み出されたタップ情報は、第１収差補正処理部６４に供給される。
【００５３】
第１収差補正処理部６０は、入力画像である第１の画像に対して、第１収差補正として位相シフト補正を行い、第１収差補正済みの第３の画像を出力する。第３の画像は、第２収差補正処理部６１に供給される。
【００５４】
第１収差補正処理部６４は、第１収差補正処理部６０と同じ処理を実行する。第１収差補正処理部６４は、入力画像である第４の画像に対して、第１収差補正として位相シフト補正を行い、第１収差補正済みの第５の画像を出力する。第５の画像は、距離計測部６５に供給される。
【００５５】
第２収差補正処理部６１は、第１収差補正処理部６０から供給される第３の画像に対して、第２収差補正として主にフォーカスボケ改善のための補正処理を行い、第２収差補正済みの第２の画像を出力する。
【００５６】
距離計測部６５は、２つのイメージセンサ４２間の距離と、第１収差補正処理部６０から出力された第３の画像と、第１収差補正処理部６４から出力された第５の画像と、に基づいて、画素毎に、撮像装置１から被写体までの距離を計測する。距離計測部６５は、画素毎の被写体までの距離（以下「計測距離」という。）をオフセット量選択部６６に供給する。
【００５７】
オフセット量選択部６６は、焦点距離のオフセット量テーブルを記憶している。オフセット量テーブルは、撮影時の焦点距離が適切か、どの程度不足又は過剰かを示している。オフセット量選択部６６は、オフセット量テーブルを参照して、画素毎に、距離計測部６５からの計測距離と、図１に示す光学系４１からの撮影情報（フォーカス情報）と、に対応するオフセット量を選択する。
【００５８】
図９は、焦点距離のオフセット量テーブルを示す図である。オフセット量は、計測距離及びフォーカス情報によって決まる。但し、演算負荷の軽減のため、計測距離及びフォーカス情報は、それぞれ３段階に分類される。具体的には、計測距離は、その値Ｌに応じて「近」、「中」、「遠」に分類される。フォーカス情報は、光学系４１の焦点距離ｆに応じて「近」、「中」、「遠」に分類される。なお、計測距離及びフォーカス情報の段階数は特に限定されるものではない。
【００５９】
例えば、計測距離の値Ｌ、閾値Ｌ１ｔｈ、閾値Ｌ２ｔｈ（＞Ｌ１ｔｈ）を用いると、計測距離は次の基準に従って分類される。
Ｌ≦Ｌ１ｔｈの場合          （被写体が近距離に存在する場合）：「近」
Ｌ１ｔｈ＜Ｌ≦Ｌ２ｔｈの場合（被写体が中距離に存在する場合）：「中」
Ｌ２ｔｈ＜Ｌの場合          （被写体が遠距離に存在する場合）：「遠」
【００６０】
また、光学系４１の焦点距離ｆ、閾値Ｆ１ｔｈ、閾値Ｆ２ｔｈ（＞Ｆ１ｔｈ）を用いると、フォーカス情報は次の基準に従って分類される。
ｆ≦Ｆ１ｔｈの場合          （焦点距離ｆが近距離撮影に適する場合）：「近」
Ｆ１ｔｈ＜ｆ≦Ｆ２ｔｈの場合（焦点距離ｆが中距離撮影に適する場合）：「中」
Ｆ２ｔｈ＜ｆの場合          （焦点距離ｆが遠距離撮影に適する場合）：「遠」
【００６１】
計測距離が「中」の場合、フォーカス情報によって次のようにオフセット量が決まる。フォーカス情報が「中」のときは、焦点距離の調整が不要であり、オフセット量は０になる。しかし、フォーカス情報が「近」のときは、焦点距離が１段階不足するため、オフセット量は−０．５になる。また、フォーカス情報が「遠」のときは、焦点距離が１段階過剰になるため、オフセット量は＋０．５になる。
【００６２】
計測距離が「小」の場合、フォーカス情報によって次のようにオフセット量が決まる。フォーカス情報が「小」のときは、焦点距離の調整が不要であり、オフセット量は０になる。しかし、フォーカス情報が「中」のときは、焦点距離が１段階過剰になるため、オフセット量は＋０．５になる。さらに、フォーカス情報が「遠」のときは、焦点距離が２段階過剰になるため、オフセット量は＋１．０になる。
【００６３】
計測距離が「大」の場合、フォーカス情報によって次のようにオフセット量が決まる。フォーカス情報が「大」のときは、焦点距離の調整が不要であり、オフセット量は０になる。しかし、フォーカス情報が「中」のときは、焦点距離が１段階不足するため、オフセット量は−０．５になる。さらに、フォーカス情報が「小」のときは、焦点距離が２段階過剰になるため、オフセット量は−１．０になる。
【００６４】
以上のように、オフセット量は、撮影時の焦点距離ｆが適切であるか、どの程度不足又は過剰であるかを示している。距離計測部６５は、上述の基準に従って計測距離及びフォーカス情報をそれぞれ分類し、オフセット量テーブルを参照してオフセット量を選択する。選択されたオフセット量は、第２収差補正処理部６１に供給される。
【００６５】
＜第１収差補正処理部６０の構成例＞
図１０は、第１収差補正処理部６０の構成例を示すブロック図である。第１収差補正処理部６０は、入力画像の微小な収差補正処理、具体的には、入力画像に発生しうるジャギーやリンギングを抑制しつつ入力画像に対して位相シフト補正を行うコード分類型適応フィルタである。
【００６６】
第１収差補正処理部６０は、注目画素選択部７１、コードタップ選択部７２、フィルタタップ選択部７３、コード演算部７４、係数記憶部７５、及び積和演算部７６を有する。
第１収差補正処理部６０に供給された入力画像（第１の画像）は、コードタップ選択部７２及びフィルタタップ選択部７３に供給される。なお、入力画像は、例えば、ＲＧＢの各色成分の画素値である。
【００６７】
注目画素選択部７１は、第１収差補正処理部６０の出力画像である第３の画像を構成するそれぞれ画素を、順次、注目画素として選択し、選択した注目画素を表す情報を所定のブロックに供給する。
フィルタタップ選択部７２は、注目画素の位置から近い位置にある第１の画像の複数の画素の画素値をフィルタタップとして選択し、選択したフィルタタップを積和演算部７６に供給する。
【００６８】
コードタップ選択部７３は、注目画素の位置から近い位置にある第１の画像を構成する複数の画素の画素値をコードタップとして選択し、選択したコードタップをコード演算部７４に供給する。
コード演算部７４は、コードタップ選択部７３からのコードタップに基づいて、例えばＤＲ量子化による量子化値、中心画素値からの差分比等を演算して、コードタップの特徴量を示すコードに分類し、当該コードを係数記憶部７５に供給する。
【００６９】
係数記憶部７５は、コード毎にタップ係数を記憶している。タップ係数は、コード分類型適応フィルタの学習処理によって予め求められたものである。
【００７０】
＜タップ係数の導出方法＞
係数記憶部７５に記憶されるタップ係数の導出方法について説明する。なお、この導出方法は、係数記憶部１１５（後述する図１９参照）に記憶されるタップ係数にも適用される。ここでは、第２の画像が高画質画像であり、第１の画像が低画質画像とする。
【００７１】
積和演算部７６によって行われる積和演算は、例えば、線形１次予測演算である。このとき、高画質画像の画素値ｙは、次の式（７）の線形一次式によって求められる。
【００７２】
【数１】
0006694626.tif 000002
式（７）において、ｘｎは、高画質画像の画素ｙについてのフィルタタップを構成するｎ番目の低画質画像の画素（低画質画素）の画素値を表す。ｗｎは、ｎ番目の低画質画素の画素値ｘｎに乗算されるｎ番目のタップ係数を表す。また、式（７）では、フィルタタップは、Ｎ個の低画質画素ｘ１、ｘ２、・・・、ｘｎで構成される。
【００７３】
ここで、高画質画素の画素値ｙは、式（７）に示した線形一次式ではなく、２次以上の高次の式によっても求められる。
第ｋサンプル（ｋ番目）の高画質画素の画素値の真値をｙｋと表し、式（７）によって得られるその真値ｙｋの予測値をｙｋ’と表す。予測値ｙｋ’の真値ｙｋに対する予測誤差ｅｋは、式（８）で表される。
【００７４】
【数２】
0006694626.tif 000003
【００７５】
式（８）の予測値ｙｋ’は、式（７）にしたがって求められる。式（８）のｙｋ’を式（７）にしたがって置き換えると、式（９）が得られる。
【００７６】
【数３】
0006694626.tif 000004
式（９）において、ｘｎ，ｋは、第ｋサンプルの高画質画素ｙｋについてのフィルタタップを構成するｎ番目の低画質画素を表す。
【００７７】
式（９）（又は式（８））の予測誤差ｅｋを０とするタップ係数ｗｎが、高画質画素ｙｋを予測するために最適なタップ係数となる。しかし、すべての高画質画素ｙｋについて最適なタップ係数ｗｎを求めることは、一般的に困難である。
【００７８】
そこで、タップ係数ｗｎが最適な値であることを表す規範として、例えば、最小自乗法を採用する。この場合、最適なタップ係数ｗｎは、式（１０）で表される自乗誤差の総和Ｅを最小にすることで求められる。
【００７９】
【数４】
0006694626.tif 000005
式（１０）において、Ｋは、高画質画素ｙｋと、その高画質画素ｙｋについてのフィルタタップを構成する低画質画素ｘ１，ｋ、ｘ２，ｋ、・・・、ｘｎ，ｋと、がセットになったサンプル数（学習用のサンプルの数）を表す。
【００８０】
式（１０）の自乗誤差の総和Ｅの最小値（極小値）は、式（１１）に示すように、総和Ｅをタップ係数ｗｎで偏微分した結果を０とするｗｎによって求められる。
【００８１】
【数５】
0006694626.tif 000006
そこで、前述の式（９）をタップ係数ｗｎで偏微分すると、式（１２）が得られる。
【００８２】
【数６】
0006694626.tif 000007
式（１１）及び（１２）から、式（１３）が得られる。
【００８３】
【数７】
0006694626.tif 000008
式（１３）のｅｋに式（９）を代入すると、式（１３）は式（１４）に示す正規方程式で表される。
【００８４】
【数８】
0006694626.tif 000009
【００８５】
式（１４）の正規方程式に例えば掃き出し法（Ｇａｕｓｓ−Ｊｏｒｄａｎの消去法）などを用いることにより、タップ係数ｗｎが導出される。また、式（１４）の正規方程式をコード毎に立式して解くことにより、最適なタップ係数（自乗誤差の総和Ｅを最小にするタップ係数）ｗｎがコード毎に求められる。なお、具体的なタップ係数を求めるための学習処理については、詳しくは後述する。
【００８６】
係数記憶部７５は、コード演算部７４からコードが供給され、図２に示す補正アドレス記憶部５４から補正アドレスの小数点以下の情報である位相情報が供給されると、供給されたコードに対応し、かつ、供給された位相情報の近傍の複数のタップ係数を読み出す。読み出された複数のタップ係数は、積和演算部７６に供給される。
【００８７】
図１１は、係数記憶部７５に記憶された２５個のタップ係数の概念図である。
係数記憶部７５には、例えば図１１に示すように、コード毎に、原点（注目画素の位置）に対して、白丸印または黒丸印に示す水平方向及び垂直方向に、それぞれ｛−２／４、−１／４、０、＋１／４、＋２／４｝の１／４位相ずつ５つ分の位相をシフトさせる合計２５個のタップ係数が記憶されている。例えば、右から１番目で上から１番目の丸印は、原点に対して、水平方向に＋２／４位相、垂直方向に＋２／４位相シフトさせるタップ係数を表す。右から２番目で上から４番目の丸印は、原点に対して、水平方向に＋１／４位相、垂直方向に−１／４位相シフトさせるタップ係数を表す。
【００８８】
そして、係数記憶部７５にコードが供給されると、供給されたコードに対応する２５個のタップ係数が特定される。次に、係数記憶部７５に位相情報が供給されると、２５個のタップ係数の中から、当該位相情報を中心とする１６個のタップ係数が選択される。
【００８９】
例えば図１１に示すように、点Ｐの画素値を生成する場合には、供給された位相情報を中心として水平方向及び垂直方向に１／４位相ずつ位相をシフトさせるもので、水平方向及び垂直方向にそれぞれ４個の合計１６個のタップ係数（黒丸印）が選択される。選択されたタップ係数は、積和演算部７６に供給される。
【００９０】
図１２は、積和演算部７６の構成例を示すブロック図である。
積和演算部７６は、１６個の積和演算器９１〜１０６を備えている。積和演算器９１〜１０６の数は、補間演算部７７の補間処理で必要とする画素数に対応していればよく、１６個に限定されるものではない。
積和演算器９１〜１０６には、フィルタタップ（例えば後述する図１３に示す１３画素の各画素値）が入力される。さらに、積和演算器９１〜１０６には、図１１に示す１６個のタップ係数がそれぞれ入力される。本実施の形態では、選択されたタップ係数の数は、積和演算器の数と同じであるが、積和演算器の数と異なる数であってもよい。
【００９１】
積和演算器９１は、係数群１（例えば図１１の１６個の黒丸印のうちの左から１番目で上から１番目の黒丸印に対応するタップ係数）と、フィルタタップ（例えば前述の１３画素の各画素値）と、を用いて積和演算を行い、画素値１を出力する。
積和演算器９２は、係数群２（例えば図１１の１６個の黒丸印のうちの左から１番目で上から２番目の黒丸印に対応するタップ係数）と、フィルタタップ（例えば前述した１３画素の各画素値）と、を用いて積和演算を行い、画素値２を出力する。
【００９２】
同様に、積和演算器９３，９４は、係数群３、４（例えば図１１の１６個の黒丸印のうちの左から１番目で上から３番目及び４番目の黒丸印にそれぞれ対応するタップ係数）と、フィルタタップ（例えば１３画素の画素値）と、を用いて積和演算を行い、画素値３，４を出力する。
【００９３】
積和演算器９５〜９８は、係数群５〜８（例えば図１１の１６個の黒丸印のうちの左から２番目で上から１〜４番目の黒丸印にそれぞれ対応するタップ係数）と、フィルタタップ（例えば前述した１３画素の各画素値）と、を用いて積和演算を行い、画素値５〜８を出力する。積和演算器９９〜１０２は、係数群９〜１２（例えば図１１の１６個の黒丸印のうちの左から３番目で上から１〜４番目の黒丸印にそれぞれ対応するタップ係数）と、フィルタタップ（例えば前述した１３画素の各画素値）と、を用いて積和演算を行い、画素値９〜１２を出力する。
【００９４】
積和演算器１０３〜１０６は、係数群１３〜１６（例えば図１１の１６個の黒丸印のうちの右から１番目で上から１〜４番目の黒丸印にそれぞれ対応するタップ係数）と、フィルタタップ（例えば前述した１３画素の各画素値）と、を用いて積和演算を行い、画素値１３〜１６を出力する。
以上のように、積和演算部７６は、注目画素の画素値について、係数記憶部７５より供給された複数のタップ係数（係数群１〜１６）をそれぞれの積和演算器９１〜１０６に供給して、複数の画素値１〜１６を得て、これら複数の画素値１〜１６を補間演算部７７に供給する。
【００９５】
補間演算部７７は、積和演算部７６より供給された複数の画素値１〜１６に対して、補正アドレス記憶部５４から供給された位相情報を用いて、線形補間またはラグランジュ補間等の補間方法で１／４位相よりも更に細かな精度の補間処理して、注目画素の画素値を演算して、補間処理により得られた第３の画像を出力する。
【００９６】
なお、演算量が増えるが、積和演算部７６と補間演算部７７は入れ替え可能である。つまり、補間演算部７７は、係数記憶部７５より供給された複数分のタップ係数を、線形補間またはラグランジュ補間等の補間方法で補間できる。このとき、積和演算部７６は、補間されたタップ係数を用いて積和演算すればよい。
【００９７】
＜第１収差補正処理部６０のフィルタタップの構成例＞
図１３は、フィルタタップ選択部７２で選択されるフィルタタップの構成例を示す図である。
【００９８】
細線の丸印は、入力画像の画素（入力画素）を表すと共に、出力画像の画素（出力画素）も表す。ドット柄の丸印は、入力画素に対して、画素位置の位相差が生じた出力画素を示す。つまり、出力画素は、入力画素から位相をシフトさせた位置に存在する。
したがって、入力画像である第１の画像は、補正アドレス記憶部５４からの位相情報に基づいて、位相シフトした第３の画像に変換される。
【００９９】
黒塗りの丸印は、注目画素、つまり出力画素を表す。太線の丸印は、フィルタタップとなる入力画素を表す。黒塗りの丸印と太線の丸印が重なっている理由は、注目画素に対応する位置にある入力画素は、フィルタタップの１つとなるからである。
【０１００】
注目画素に対するフィルタタップとなる入力画素は、例えば、注目画素に対応する入力画素の位置に最も近い入力画素を基準として、選択される。
【０１０１】
＜第１収差補正処理部６０のコードタップの構成例＞
図１４は、コードタップ選択部７３で選択されるコードタップの構成例を示す図である。太線の丸印は、コードタップとなる入力画素を表す。その他の丸印は、図１３と同じである。
【０１０２】
注目画素に対するコードタップとなる入力画素は、例えば、注目画素に対応する入力画素の位置に最も近い入力画素を基準として、選択される。なお、本実施の形態では、フィルタタップとコードタップは、図１３及び図１４に示すように同一のパターンであってもよいし、異なるパターンであってもよい。
【０１０３】
＜コード演算部７４の構成例＞
図１５は、コード演算部７４の構成例を示すブロック図である。
コード演算部７４は、量子化演算部８１、中心画素差分比検出部８２、及び変換テーブル記憶部８３を有する。
【０１０４】
量子化演算部８１は、コードタップ選択部７３から供給されるコードタップを構成する入力画素の画素値を、例えば、１ビットのＤＲ量子化を用いて量子化し、各入力画素の量子化値を所定の順番で並べ、並べられた量子化値を量子化コードとして変換テーブル記憶部８３に供給する。
【０１０５】
図１６は、１ビットＤＲ量子化の例を説明する図である。横軸は、コードタップを構成する入力画素の順番（又は位置）を表す。縦軸は、コードタップを構成する入力画素の画素値を表す。
【０１０６】
１ビットＤＲ量子化では、コードタップを構成する入力画素の画素値の中の最大画素値Ｍａｘから最小画素値Ｍｉｎが減算され、単純ダイナミックレンジＤＲが求められる。単純ダイナミックレンジＤＲを２等分するレベルが、閾値として設定される。コードタップを構成する各入力画素の画素値が、設定された閾値に基づいて２値化され、１ビットの量子化値に変換される。各画素の量子化値が所定の順に配列されたものが、量子化コードとなる。
例えば、図１４に示すコードタップの場合、コードタップを構成する１３画素が１ビットＤＲ量子化処理の対象となる。その結果、入力されたコードタップの特徴量を表す１３ビットのＤＲ量子化コードが得られる。
【０１０７】
中心画素差分比検出部８２は、コードタップ選択部７３から供給されるコードタップを構成する入力画素の画素値から後述する方法でコードを得て、図１０の係数記憶部７５に供給する。
【０１０８】
図１７は、中心画素差分比検出部８２で行われる中心画素差分比を説明する図である。横軸は、コードタップを構成する入力画素の位置を表す。縦軸は、コードタップを構成する入力画素の画素値を表す。
【０１０９】
中心画素差分比検出部８２は、次の処理を行う。
最初に、中心画素差分比検出部８２は、画素位置（横軸）方向において、注目画素（中心画素）が中心となる所定の範囲を範囲１として設定し、注目画素が中心となり、かつ、範囲１を包含する広い範囲を範囲２として設定する。
【０１１０】
次に、中心画素差分比検出部８２は、範囲１において、各画素の画素値と注目画素の画素値との差分が最大となる差分最大値を演算する。中心画素差分比検出部８２は、範囲２において、各画素の画素値と注目画素の画素値との差分が最大となる差分最大値を演算する。
【０１１１】
そして、中心画素差分比検出部８２は、２つの差分最大値の比が所定値以上の場合はコード“１”を出力し、その比が所定値未満の場合はコード“０”を出力する。この結果、１ビットのコードが得られる。なお、２つの差分最大値の比と比較される複数の異なる所定値を用意して、より細かいコード分類を行うことも可能である。
【０１１２】
以上のように、中心画素差分比検出部８２は、注目画素（中心画素）を中心とした狭範囲と広範囲のそれぞれの画素差分の比に応じて、コードタップをコード“０”又は“１”に分類する。コード“０”は、注目画素（中心画素）と遠距離タップの画素相関が高くてリンギングが発生しない状態を示す。コード“１”は、注目画素（中心画素）と遠距離タップの画素相関が低くてリンギングが発生するおそれがある状態を示す。中心画素差分比検出部８２で得られたコードは、図１０の係数記憶部７５に供給される。
【０１１３】
変換テーブル記憶部８３は、量子化演算部８１で得られた量子化コードをアドレス（新たなコード）に変換するための変換テーブルを予め記憶している。変換テーブル記憶部８３は、量子化演算部８１から量子化コードが供給されると、変換テーブルを参照して、供給された量子化コードを当該量子化コードに対応する新たなコードに変換し、変換されたコードを図１０の係数記憶部７５に供給する。
【０１１４】
＜第１収差補正処理部６０による画像変換処理＞
図１８は、第１収差補正処理部６０による画像変換処理の例を説明するフローチャートである。
ステップＳ５１では、図１０に示す注目画素選択部７１は、第１収差補正処理部６０に入力される入力画像に対する出力画像を構成する画素のうち、まだ注目されていない画素の１つを注目画素として選択する。そして、ステップＳ５２に進む。例えば、注目画素選択部７１は、例えば、出力画像を構成する画素のうち注目画素として選択されていない画素を、ラスタースキャン順で注目画素として選択する。
【０１１５】
ステップＳ５２では、コードタップ選択部７２は、入力画像から、注目画素についてのコードタップを構成する画素を選択する。フィルタタップ選択部７３は、入力画像から、注目画素についてのフィルタタップを構成する画素を選択する。コードタップはコード演算部７４に供給され、フィルタタップは積和演算部７６に供給される。そして、ステップＳ５３に進む。
【０１１６】
ステップＳ５３では、コード演算部７４は、コードタップ選択部７２から供給される注目画素についてのコードタップに基づいて、注目画素をコード演算する。コード演算部７４は、そのコード演算により得られた注目画素のコードを係数記憶部７５に供給する。そして、ステップＳ５４に進む。
【０１１７】
ステップＳ５４では、係数記憶部７５は、コード演算部７４から供給されるコードに対応するアドレスに記憶されているタップ係数であって、図２に示す補正アドレス記憶部５４から供給される位相情報に対応した近傍の複数のタップ係数を選択して出力する。積和演算部７６が、係数記憶部７５から複数のタップ係数を取得する。そして、ステップＳ５５に進む。
【０１１８】
ステップＳ５５では、積和演算部７６が、フィルタタップ選択部７２により選択されたフィルタタップと、係数記憶部７５から取得した複数のタップ係数とを用いて、所定の複数の積和演算を行う。これにより、積和演算部７６は、複数の画素値を求めて出力する。そして、ステップＳ５６に進む。
【０１１９】
ステップＳ５６では、補間演算部７７が、積和演算部７６が出力する複数の画素値と、光学系４１から供給された位相情報に基づいて、線形補間またはラグランジュ補間等の補間方法で補間する。これにより、注目画素の画素値がと求められる。そして、ステップＳ５７に進む。
【０１２０】
ステップＳ５７では、注目画素選択部７１が、出力画像の中にまだ注目画素と選択されていない画素があるか否かを判定する。肯定的な判定結果の場合は、ステップＳ５１に戻る。そして、再びステップＳ５１以降の処理が実行される。否定的な判定結果の場合は、この一連の処理が終了する。
【０１２１】
＜第２収差補正処理部６１の構成例＞
図１９は、第２収差補正処理部６１の構成例を示すブロック図である。
第２収差補正処理部６１は、コード分類型適応フィルタを利用して、第１収差補正処理部６０により歪曲収差が補正された第３の画像に対して、主にフォーカスボケ改善のための収差補正処理を行う。なお、第２収差補正処理部６１は、先鋭感改善だけでなく、収差に起因するあらゆる画像の劣化を改善させるための収差補正も行う。
【０１２２】
第２収差補正処理部６１は、出力画像を構成する画素を注目画素として選択する注目画素選択部１１１と、注目画素の位置から近い位置にある第３の画像の複数の画素の画素値をフィルタタップとして選択するフィルタタップ選択部１１２と、注目画素の位置から近い位置にある第３の画像を構成する複数の画素の画素値をコードタップとして選択するコードタップ選択部７３と、コードタップからコードを演算するコード演算部１１４と、演算されたコードに対応し、かつ、焦点距離のオフセット量に対応するタップ係数を読み出す係数記憶部１１５と、フィルタタップと複数のタップ係数とに基づく積和演算を行って画素値を得る積和演算部１１６と、得られた画素値に補間処理を行う補間演算部１１７とを備えている。
【０１２３】
第２収差補正処理部６１に供給された入力画像（第３の画像）は、コードタップ選択部１１２とフィルタタップ選択部１１３に供給される。
注目画素選択部１１１は、第２収差補正処理部６１の出力画像である第２の画像を構成するそれぞれ画素を、順次、注目画素として選択し、選択した注目画素を表す情報を所定のブロックに供給する。
【０１２４】
フィルタタップ選択部１１２は、注目画素の位置から近い位置にある第３の画像の複数の画素の画素値をフィルタタップとして選択し、選択したフィルタタップを積和演算部１１６に供給する。
コードタップ選択部１１３は、注目画素の位置から近い位置にある第３の画像を構成する複数の画素の画素値をコードタップとして選択し、選択したコードタップをコード演算部１１４に供給する。
【０１２５】
コード演算部１１４は、コードタップ選択部１１３からのコードタップに基づいて、例えばＤＲ量子化による量子化値、中心画素値からの差分比等を演算して、注目画素をコードに分類し、当該コードを係数記憶部１１５に供給する。また、図２に示すオフセット量選択部６６は、注目画素毎に、フォーカス情報及び計測距離に基づいて焦点距離のオフセット量を選択し、選択したオフセット量を係数記憶部１１５に供給する。
【０１２６】
係数記憶部１１５には、図２に示す位置別係数記憶部５７から読み出された複数のタップ係数が記憶されている。これらのタップ係数は、テーブル構造によってコード毎、オフセット量毎に分けられている（後述の図２７参照）。係数記憶部１１５は、予め記憶されている複数のタップ係数の中から、コード演算部１１４で演算されたコードに対応し、かつ、焦点距離のオフセット量に対応するタップ係数を読み出す。係数記憶部１１５から読み出された複数のタップ係数は、積和演算部１１６に供給される。
【０１２７】
積和演算部１１６は、積和演算部７６と同様に、図１２に示すように構成されている。すなわち、積和演算部１１６は、補間演算部１１７で補間に必要とする画素分の複数（本実施の形態では１６個）の積和演算器９１〜１０６を備えている。積和演算部１１６は、係数記憶部１１５より供給された複数のタップ係数を、それぞれの積和演算器９１〜１０６に供給することで複数の画素値１〜１６を演算し、補間演算部１１７に供給する。
【０１２８】
補間演算部１１７は、積和演算部１１６より供給された複数の画素値１〜１６を、注目画素選択部１１１から供給された位置情報を用いて、線形補間またはラグランジュ補間等の補間方法で補間して、出力画像（第２の画像）として出力する。
【０１２９】
なお、演算量が増えるが、積和演算部１１６と補間演算部１１７は入れ替え可能である。つまり、補間演算部１１６は、係数記憶部１１７より供給された複数のタップ係数を、線形補間またはラグランジュ補間等の補間方法で補間できる。このとき、積和演算部１１６は、補間されたタップ係数を用いて積和演算すればよい。
【０１３０】
＜第２収差補正処理部６１のフィルタタップの構成例＞
図２０は、フィルタタップ選択部１１２で選択されるフィルタタップの構成例を示す図である。細線の丸印は、入力画素を表すと共に、出力画素も表す。出力画素は、図１２と異なり、入力画素と同じ位置に変換される。
【０１３１】
黒塗りの丸印は、注目画素、つまり出力画素を表す。太線の丸印は、フィルタタップとなる入力画素を表す。黒塗りの丸印と太線の丸印が重なっている理由は、注目画素に対応する位置にある入力画素は、フィルタタップの１つとなるからである。
【０１３２】
注目画素に対するフィルタタップとなる入力画素は、例えば、注目画素に対応する入力画素の位置に最も近い入力画素を基準として、選択される。
【０１３３】
＜第２収差補正処理部６１におけるコードタップの構成例＞
図２１は、コードタップ選択部１１３で選択されるコードタップの構成例を示す図である。太線の丸印は、コードタップとなる入力画素を表す。その他の丸印は、図２０と同じである。
【０１３４】
注目画素に対するコードタップとなる入力画素は、例えば、注目画素に対応する入力画素の位置に最も近い入力画素を基準として、選択される。なお、本実施の形態では、フィルタタップとコードタップは、図２０及び図２１に示すように同一のパターンであってもよいし、異なるパターンであってもよい。
【０１３５】
＜コード演算部１１４の構成例＞
図２２は、コード演算部１１４の構成例を示すブロック図である。コード演算部１１４は、量子化演算部１２１、及び変換テーブル記憶部１２２を有する。
【０１３６】
量子化演算部１２１は、コードタップ選択部１１３から供給されるコードタップを構成する入力画素の画素値を、例えば、上述した１ビットＤＲ量子化を用いて量子化し、各入力画素の量子化値を所定の順番で並べて、並べられた量子化値を量子化コードとして変換テーブル記憶部１２２に供給する。
例えば、図２１に示すコードタップの場合、コードタップを構成する９画素が１ビットＤＲ量子化処理の対象となる。その結果、入力されたコードタップの特徴量を表す９ビットのＤＲ量子化コードが得られる。
【０１３７】
変換テーブル記憶部１２２は、量子化演算部１２１で得られた量子化コードをアドレス（新たなコード）に変換するための変換テーブルを予め記憶している。変換テーブル記憶部１２２は、量子化演算部１２１から量子化コードが供給されると、変換テーブルを参照して、供給された量子化コードを当該量子化コードに対応する新たなコードに変換し、変換されたコードを図１９の係数記憶部１１５に供給する。
【０１３８】
＜第２収差補正処理部６１による画像変換処理＞
図２３は、第２収差補正処理部６１による画像変換処理の例を説明するフローチャートである。
【０１３９】
ステップＳ７１では、注目画素選択部１１１は、第２収差補正処理部６１に入力される入力画像に対する出力画像を構成する画素のうち、まだ、注目されていない画素の１つを注目画素として選択する。そして、ステップＳ７２に進む。例えば、注目画素選択部１１１は、例えば、出力画像を構成する画素のうち注目画素として選択されていない画素を、ラスタースキャン順で注目画素として選択する。
【０１４０】
ステップＳ７２では、コードタップ選択部１１２は、入力画像から、注目画素についてのコードタップを構成する画素を選択する。フィルタタップ選択部１１３は、入力画像から、注目画素についてのフィルタタップを構成する画素を選択する。コードタップはコード演算部１１４に供給され、フィルタタップは積和演算部１１６に供給される。そして、ステップＳ７３に進む。
【０１４１】
ステップＳ７３では、コード演算部１１４は、コードタップ選択部１１２から供給される注目画素についてのコードタップに基づいて、注目画素をコード演算する。コード演算部１１４は、そのコード演算により得られた注目画素のコードを係数記憶部１１５に供給する。そして、ステップＳ７４に進む。
【０１４２】
ステップＳ７４では、図２に示すオフセット量選択部６６は、注目画素について、フォーカス情報及び計測距離に基づいて焦点距離のオフセット量を選択・取得し、取得したオフセット量を係数記憶部１１５に供給する。そして、ステップＳ７５に進む。
【０１４３】
ステップＳ７５では、係数記憶部１１５は、予め記憶しているタップ係数の中から、コード演算部１１４から供給されるコードに対応し、かつ、オフセット量選択部６６から供給されるオフセット量に対応したタップ係数を読み出す。積和演算部１１６は、係数記憶部１１５から出力された複数のタップ係数を取得する。そして、ステップＳ７６に進む。
【０１４４】
ステップＳ７６では、積和演算部１１６が、フィルタタップ選択部１１２により選択されたフィルタタップと、係数記憶部１１５から取得した複数のタップ係数とを用いて、所定の複数の積和演算を行う。これにより、積和演算部１１６は、複数の画素値を求めて出力する。そして、ステップＳ７７に進む。
【０１４５】
ステップＳ７７では、補間演算部１１７が、積和演算部１１６が出力する複数の画素値と、光学系４１から供給された位相情報とに基づいて、線形補間またはラグランジュ補間等の補間方法で補間する。これにより、注目画素の画素値が求められる。そして、ステップＳ７８に進む。
【０１４６】
ステップＳ７８では、注目画素選択部１１１が、出力画像の中にまだ注目画素と選択されていない画素があるか否かを判定する。肯定的な判定結果の場合は、ステップＳ７１に戻る。そして、再びステップＳ７１以降の処理が実行される。否定的な判定結果の場合は、この一連の処理が終了する。
【０１４７】
＜画像変換装置５０による画像変換処理＞
図２４は、図２に示す画像変換装置５０による画像変換処理の例を説明するフォローチャートである。
【０１４８】
ステップＳ９１では、補正アドレスを補正アドレス記憶部５４に読み込み、位置別係数を位置別係数記憶部５７に読み込む。
ステップＳ９２では、図７のフレーム記憶部５８に第１の画像が書き込まれる。そして、ステップＳ９３に進む。
【０１４９】
ステップＳ９３では、注目画素選択部５１は、フレーム記憶部５８に書き込まれた第１の画像に対する第２の画像を構成する画素のうち、まだ注目されていない画素の１つを注目画素として選択する。すなわち、注目画素選択部５１は、例えば、第２の画像を構成する画素のうち、ラスタースキャン順で、まだ注目画素とされていない画素を注目画素として選択する。そして、ステップＳ９４に進む。
【０１５０】
ステップＳ９４では、補正アドレス記憶部５４は、注目画素選択部５１より選択された注目画素（ｘ，ｙ）に対応する補正アドレス（ｘ’，ｙ’）を読み出す。
【０１５１】
補正アドレス（ｘ’，ｙ’）の小数点以下を四捨五入した整数位置情報は、フレーム記憶部５８に供給される。その整数位置情報の下位数ビットは、アドレス整列部５９に供給される。補正アドレス（ｘ’，ｙ’）の小数点以下の情報は、第１収差補正部６０に供給される。そして、ステップＳ９５に進む。
【０１５２】
ステップＳ９５では、フレーム記憶部５８は、補正アドレス記憶部５４より供給された整数位置情報に従って、第１の画像の各画素の画素値を例えばラスタースキャン順に読み出すことにより、画素単位で歪曲収差補正された第１の画像を出力する。
さらに、フレーム記憶部５８は、図８に示すように、その整数位置情報の画素近傍の４画素以上の画素値を読み出す。フレーム記憶部５８は、画素値をアドレス整列部５９に供給する。そして、ステップＳ９６に進む。
【０１５３】
ステップＳ９６では、アドレス整列部５９は、フレーム記憶部５８からラスタースキャン順に供給された画素値を、補正アドレス記憶部５４から供給された下位位置情報（下位数ビットの位置情報）に従って整列処理する。これにより、アドレス整列部５９は、図６における注目画素の近傍画素がわかり、注目画素近傍のタップ情報（画素値）を第１の画像として、第１収差補正処理部６０に供給する。そして、ステップＳ９７に進む。
【０１５４】
ステップＳ９７では、第１収差補正部６０は、アドレス整列部５９から供給される注目画素近傍のタップ情報と、補正アドレス記憶部５４から供給される小数点以下の位置情報と、に基づいて、歪曲収差の補正処理を行って、第３の画像を出力する。第３の画像は第２収差補正部６１に供給される。そして、ステップＳ９８に進む。
【０１５５】
ステップＳ９８では、第２収差補正処理部６１の距離計測部６５が、第３の画像と第５の画像とに基づいて、画素毎に、被写体までの距離を計測する（距離計測処理）。計測結果は、画素毎に、オフセット量選択部６６へ供給される。そして、ステップＳ９９へ進む。
【０１５６】
ステップＳ９９では、オフセット量選択部６６は、画素毎に、図１に示す光学系４１のピントの位置がフォーカスレンズ情報の「近」、「中」、「遠」のいずれに該当するかを判定する。また、オフセット量選択部６６は、画素毎に、距離計測部６５で計測された距離が距離計測の「近」、「中」、「遠」のいずれに該当するかを判定する。そして、オフセット量選択部６６は、図９に示すオフセット量テーブルを参照して、上記の２つの判定結果に基づいて、焦点距離のオフセット量を選択する。そして、ステップＳ１００へ進む。
【０１５７】
ステップＳ１００では、第２収差補正部６１は、注目画素選択部５１から供給される注目画素情報と、位置別係数記憶部５７から供給される係数と、上記の焦点距離のオフセット量と、を用いて、第１収差補正部６０より供給される第３の画像に対して、歪曲収差以外の収差補正を行って、第２の画像を出力する。そして、ステップＳ１０１に進む。
【０１５８】
ステップＳ１０１では、注目画素選択部５１が、まだ注目画素と選択されていない出力画像があるか否かを判定する。肯定的な判定結果の場合は、ステップＳ９３に戻り、ステップＳ９３以降の処理が繰り返される。否定的な判定結果の場合は、一連の処理が終了する。
【０１５９】
以上のように、本実施形態に係る撮像装置１は、イメージセンサ４２で生成された画像に歪曲収差・フォーカスボケ等の影響がある場合でも、歪曲収差・フォーカスボケ等を低減するために予め学習されたタップ係数を用いることにより、高画質画像を得ることができる。
【０１６０】
＜係数記憶部７５のタップ係数の求め方＞
図２５は、タップ係数を求めるための学習装置９０の構成例を示すブロック図である。学習用画像記憶部９１には、学習用画像として高画質画像が記憶される。
【０１６１】
教師データ生成部９２は、学習用画像記憶部９１に記憶された学習用画像をフィルタリングすること等により、後述する生徒データ（生徒画像）に対して複数の位相を変化させ、位相をシフトさせた教師データ（教師画像）を生成する。教師データ生成部９２は、生成された教師データを教師データ記憶部９３に供給する。
【０１６２】
生徒データ生成部９４は、学習用画像記憶部９１に記憶された学習用画像をフィルタリングすること等により、生徒データ（生徒画像）を生成する。生徒データ生成部９４は、生成された生徒データを生徒データ記憶部９５に供給する。
【０１６３】
学習部９６は、教師データ記憶部９３から教師データを読み出し、生徒データ記憶部９５から生徒データを読み出す。学習部９６は、読み出した教師データと生徒データとを用いて、コード毎、位相毎に、上述した式（１４）の正規方程式を立式して解くことにより、コード毎・位相毎のタップ係数を導出する。
【０１６４】
以上のように、注目画素（中心画素）を中心とした狭範囲と広範囲のそれぞれの画素差分の比に応じて、コードが分類される。この結果、注目画素（中心画素）と遠距離タップの画素相関が高くてリンギングが発生しない場合には、高域を強調するタップ係数が得られる。一方、注目画素（中心画素）と遠距離タップの画素相関が低くてリンギングが発生するおそれがある場合には、リンギングを抑制するタップ係数が得られる。
【０１６５】
＜係数記憶部１１５のタップ係数の求め方＞
記憶部１１５に記憶されるタップ係数は、図２５に示す学習装置９０により求められる。学習用画像記憶部９１には、学習用画像として、高画質画像（教師データ）が記憶される。高画質画像は、撮像装置の光学系が最適な焦点距離の場合に撮影された画像である。なお、高画質画像は、例えば、近距離撮影・中距離撮影・遠距離撮影（主たる被写体が近距離・中距離・遠距離）の場合のものが用意される。
【０１６６】
教師データ生成部９２は、学習用画像記憶部９１に記憶された高画質画像を、そのまま教師データとして教師データ記憶部９３に供給する。生徒データ生成部９４は、学習用画像記憶部９１から学習用画像である高画質画像を読み出し、読み出した高画質画像に対して、光学シミュレーションを用いてフォーカスボケがある低画質画像（生徒データ）を生成する。この低画質画像は、生徒データ記憶部９５に記憶される。
【０１６７】
図２６は、学習時の光学系（フォーカスレンズ）と撮像素子の位置関係を示す概念図である。同図（ａ）は焦点距離のオフセット量が＋１．０、同図（ｂ）は焦点距離のオフセット量が０．０、同図（ｃ）は焦点距離のオフセット量が−１．０でそれぞれ学習された場合である。
【０１６８】
高画質画像は、フォーカスレンズの主点から撮像面までの距離Ｄが焦点距離ｆに一致する場合に撮影された画像である。つまり、高画質画像は、オフセット量が０．０の場合の画像に相当する。低画質画像は、距離Ｄが焦点距離ｆに一致しない場合に撮影された画像に相当する。なお、本実施形態では、低画質画像は、光学シミュレーションにより高画質画像から変換された画像である。焦点距離ｆからのずれ量であるオフセット量ｄは、次のように定義される。
ｄ＝Ｌ−ｆ
【０１６９】
但し、演算処理の負荷軽減のため、オフセット量ｄは、数値ではなく、数値幅の範囲を表す段階数とする。本実施形態では、オフセット量ｄは、−１．０，−０．５，０，＋０．５，＋１．０の５段階とする。例えば、オフセット量ｄが＋０．５の場合、距離Ｄは焦点距離ｆよりも１段階長い。また、オフセット量ｄが−１．０の場合、距離Ｄは焦点距離ｆよりも２段階短い。
【０１７０】
生徒データ生成部９４は、５段階のそれぞれのオフセット量を設定して、光学シミュレーションを実行して、高画質画像に対してフォーカスボケのある低画質画像を生成する。なお、オフセット量は、５段階（０，±０．５，±１．０）であるが、これらの値に限定されるものではない。
【０１７１】
本実施形態では、近距離撮影の高画質画像に対して、オフセット量ｄは０，＋０．５，＋１．０にそれぞれ設定される。中距離撮影の高画質画像に対して、オフセット量ｄは−０．５，０，＋０．５にそれぞれ設定される。遠距離撮影の高画質画像に対して、オフセット量は−１．０，−０．５，０にそれぞれ設定される。
【０１７２】
学習部９６は、教師データ記憶部９３から教師データを読み出し、生徒データ記憶部９５から生徒データを読み出す。学習部９６は、読み出した教師データと生徒データとを用いて、コード毎、オフセット量毎に、上述した式（１４）の正規方程式を立式して解くことにより、コード毎・オフセット量毎のタップ係数を導出する。
【０１７３】
図２７は、タップ係数のテーブル構造を示す図である。図１５に示す係数記憶部１１５には、図２７に示すようなテーブル構造のタップ係数が記憶されている。すなわち、オフセット量が−１．０，−０．５，０，＋０．５，＋１．０のそれぞれにおいて、コード毎のタップ係数が記憶されている。
【０１７４】
学習装置９０は、上記のような学習処理を実行することにより、近距離撮影、中距離撮影、遠距離撮影時のそれぞれのフォーカスぼけを補正するタップ係数を求めることができる。
【０１７５】
＜本発明の他の構成例＞
本発明は、前述した実施の形態に限定されるものではなく、請求の範囲に記載された事項の範囲内において種々の変更が可能である。本発明は、複数のイメージセンサを備えるステレオカメラに限定されるものではなく、その他、被写体を撮影すると共に被写体までの距離を計測できる単眼カメラにも適用可能である。
【０１７６】
すなわち、本発明は、被写体に光を照射する照射部と、被写体からの光に応じて画像を生成する撮像素子と、前記照射部により光が照射された時点から前記撮像素子により画像が生成された時点までの時間に基づいて被写体までの距離を計測する距離計測部と、を備えた単眼カメラにも適用できる。
【０１７７】
また、前述した実施の形態では、画像処理の対象が、ＲＧＢの３色の色成分の画素値となっているが、本発明はこれに限定されるものではない。例えば、ホワイトやイエロー等を加えた４色以上の色成分の画素値、ＣＭＹＫの色成分の画素値、輝度信号の画素値なども対象となる。
【０１７８】
＜システムカメラの一実施の形態＞
放送局用カメラ、内視鏡、及び顕微鏡などは、リアルタイムで長時間の撮影することが多いため、カメラヘッドと画像処理装置に分かれているケースが多い。カメラヘッドと画像処理装置に分かれているシステムを、システムカメラという。本発明は、このようなシステムカメラにも適用可能である。
【０１７９】
＜レンズ交換式ディジタルカメラの一実施の形態＞
高級一眼ディジタルカメラ及び業務用カメラなどのレンズ交換式ディジタルカメラで撮影された画像は、信号処理装置で編集されることが多い。この場合、レンズ交換式ディジタルカメラは、撮影した画像や撮影情報などのデータを、メモリカードに記録する。信号処理装置は、メモリカードに記録された画像や撮影情報などのデータを読み込んで、画像を編集する。本発明は、この信号処理装置にも適用可能である。
【０１８０】
なお、レンズ交換式ディジタルカメラから信号処理装置に画像等を供給する手段は、メモリカードに限らず、磁気ディスク、光ディスク、または、ネットワークや各種ケーブル、無線などの通信手段でもよい。
【０１８１】
本発明は、ハードウェアにもソフトウェアにも適用可能である。例えば、図１に示す画像補正部４５は、ハードウェアで構成されたものでもよいし、前述した一連の処理を実行できるプログラムがインストールされたコンピュータ（プロセッサ）で構成されたものでもよい。
【符号の説明】
【０１８２】
１  撮像装置、４１  光学系、４２  イメージセンサ、６５  距離計測部、６６  オフセット量選択部、６１  第２収差補正処理部、１１１  注目画素選択部、１１２  フィルタタップ選択部、１１３  コードタップ選択部、１１４  コード演算部、１１５  係数記憶部、１１６  積和演算部
【要約】
【課題】画像中に焦点距離の異なる複数の被写体がある場合でも高画質画像を得る。
【解決手段】第２収差補正処理部６１は、注目画素を選択する注目画素選択部１１１と、コードタップを選択するコードタップ選択部１１２と、選択されたコードタップのコードを演算するコード演算部１１４と、注目画素毎に被写体までの距離を計測する距離計測部と、注目画素毎に光学系の焦点距離と計測された距離とに基づいて焦点距離のオフセット量を選択するオフセット量選択部と、コード分類型適応フィルタの学習処理によって予め求められた複数のタップ係数を記憶し、演算されたコードと判定されたオフセット量とに基づいて複数のタップ係数を出力する係数記憶部１１５と、フィルタタップの各画素値と出力された複数のタップ係数とに基づいて、注目画素毎に対応する出力画素の画素値を演算する積和演算部１１６と、を備えている。
【選択図】図１９【図１】
0006694626.tif 000010
【図２】
0006694626.tif 000011
【図３】
0006694626.tif 000012
【図４】
0006694626.tif 000013
【図５】
0006694626.tif 000014
【図６】
0006694626.tif 000015
【図７】
0006694626.tif 000016
【図８】
0006694626.tif 000017
【図９】
0006694626.tif 000018
【図１０】
0006694626.tif 000019
【図１１】
0006694626.tif 000020
【図１２】
0006694626.tif 000021
【図１３】
0006694626.tif 000022
【図１４】
0006694626.tif 000023
【図１５】
0006694626.tif 000024
【図１６】
0006694626.tif 000025
【図１７】
0006694626.tif 000026
【図１８】
0006694626.tif 000027
【図１９】
0006694626.tif 000028
【図２０】
0006694626.tif 000029
【図２１】
0006694626.tif 000030
【図２２】
0006694626.tif 000031
【図２３】
0006694626.tif 000032
【図２４】
0006694626.tif 000033
【図２５】
0006694626.tif 000034
【図２６】
0006694626.tif 000035
【図２７】
0006694626.tif 000036