(57)【要約】【課題】生成画像の画質を低下させることなく演算量およびメモリ使用量を低減させ、ひいてはより手軽に画像再構成を実現できる画像生成装置および画像生成方法を提供する。【解決手段】画像生成装置が、焦点ぼけ画像群のデータを入力する入力部と、３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部と、フィルタを焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算部と、を有する。第１のフィルタの第１の要素が、第１のフィルタ若しくは第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、記憶部は第１の要素のデータを記憶しておらず、かつ、演算部は第１のフィルタを使用する際に記憶部に記憶されている第２の要素のデータを基に第１のフィルタの第１の要素のデータを生成する。【選択図】図１２
2017021425.tif 000002
【特許請求の範囲】
【請求項１】
結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力する入力部と、
前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部と、
前記記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算部と、を有し、
前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算部は前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成する
ことを特徴とする画像生成装置。
【請求項２】
前記３次元ぼけ関数に基づいて前記複数のフィルタを生成し前記記憶部へ格納するフィルタ計算部をさらに有し、
前記フィルタ計算部は、前記第１のフィルタの前記第１の要素の計算を行わない
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記複数のフィルタは、前記焦点ぼけ画像群から新たなぼけを有する画像を再構成するために、前記焦点ぼけ画像群を構成する各焦点位置に対応する画像にそれぞれ適用される、複数のぼけ再構成フィルタである
ことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記第１のフィルタは、第１の焦点位置に対応する画像に適用されるフィルタであり、
前記第２のフィルタは、合焦位置に対して前記第１の焦点位置と対称な位置にある第２の焦点位置に対応する画像に適用されるフィルタであり、
前記第２の要素は、前記第２のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と同じ位置にある要素である
ことを特徴とする請求項３に記載の画像生成装置。
【請求項５】
前記３次元ぼけ関数が、合焦位置に対して点対称性を有し、かつ、合焦位置を通過する複数の光線の集合で表現される関数であり、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と点対称な位置にある要素である
ことを特徴とする請求項３又は４に記載の画像生成装置。
【請求項６】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状と前記ぼけ再構成フィルタにより再構成される画像に与えられる前記新たなぼけの形状とがともに、同じ対称軸に対する軸対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と軸対称な位置にある要素である
ことを特徴とする請求項５に記載の画像生成装置。
【請求項７】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状と前記ぼけ再構成フィルタにより再構成される画像に与えられる前記新たなぼけの形状とがともに、原点に対する点対称性を有しており、
前記フィルタ計算部は、前記複数のフィルタの要素における虚数部の計算を行わない
ことを特徴とする請求項５に記載の画像生成装置。
【請求項８】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状と前記ぼけ再構成フィルタにより再構成される画像に与えられる前記新たなぼけの形状とがともに、原点に対する点対称性を有しており、
前記記憶部は、前記複数のフィルタの要素における虚数部のデータを記憶しない
ことを特徴とする請求項５又は７に記載の画像生成装置。
【請求項９】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が互いに直交する２つの対称軸のそれぞれに対する軸対称性を有し、かつ、前記ぼけ再構成フィルタにより再構成される画像に与えられる前記新たなぼけの形状も前記２つの対称軸のそれぞれに対する軸対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と軸対称な位置にある要素である
ことを特徴とする請求項５に記載の画像生成装置。
【請求項１０】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状と前記ぼけ再構成フィルタにより再構成される画像に与えられる前記新たなぼけの形状とがともに、原点に対する回転対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において原点を中心に前記第１の要素を回転した位置にある要素である
ことを特徴とする請求項５に記載の画像生成装置。
【請求項１１】
前記複数のフィルタは、前記焦点ぼけ画像群から各視点を通る光線に関わる情報を抽出するための、複数の視点のそれぞれに対応する複数の光線分解フィルタである
ことを特徴とする請求項２に記載の画像生成装置。
【請求項１２】
前記３次元ぼけ関数が、合焦位置に対して点対称性を有し、かつ、合焦位置を通過する複数の光線の集合で表現される関数であり、
前記フィルタ計算部は、前記複数のフィルタの要素における虚数部の計算を行わない
ことを特徴とする請求項１１に記載の画像生成装置。
【請求項１３】
前記３次元ぼけ関数が、合焦位置に対して点対称性を有し、かつ、合焦位置を通過する複数の光線の集合で表現される関数であり、
前記記憶部は、前記複数のフィルタの要素における虚数部のデータを記憶しない
ことを特徴とする請求項１１又は１２に記載の画像生成装置。
【請求項１４】
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と点対称な位置にある要素である
ことを特徴とする請求項１２に記載の画像生成装置。
【請求項１５】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が原点に対する回転対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と軸対称な位置にある要素である
ことを特徴とする請求項１２又は１３に記載の画像生成装置。
【請求項１６】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が原点に対する回転対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系にお
いて原点を中心に前記第１の要素を回転した位置にある要素である
ことを特徴とする請求項１２又は１４に記載の画像生成装置。
【請求項１７】
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において原点を中心に前記第１の要素を９０度、１８０度、又は、２７０度回転した位置にある要素である
ことを特徴とする請求項１６に記載の画像生成装置。
【請求項１８】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が軸対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と軸対称な位置にある要素である
ことを特徴とする請求項１２又は１４に記載の画像生成装置。
【請求項１９】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が原点に対する点対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と原点に対し点対称な位置にある要素である
ことを特徴とする請求項１２又は１４に記載の画像生成装置。
【請求項２０】
光軸方向に垂直な面上の２次元座標系において、前記３次元ぼけ関数の形状が互いに直交する２つの対称軸のそれぞれに対する軸対称性を有しており、
前記第２の要素は、前記第１のフィルタの要素であって、かつ、フィルタの座標系において前記第１の要素と軸対称な位置にある要素である
ことを特徴とする請求項１２又は１４に記載の画像生成装置。
【請求項２１】
コンピュータが、結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力するステップと、
前記コンピュータが、前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算ステップと、を有し、
前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算ステップでは前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成する
ことを特徴とする画像生成方法。
【請求項２２】
コンピュータに、
結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力するステップと、
前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算ステップと、を実行させるプログラムであって、
前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対
称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算ステップでは前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成する
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置および画像生成方法に関する。
【背景技術】
【０００２】
近年、ライトフィールドレンダリング（Ｌｉｇｈｔ  Ｆｉｅｌｄ  Ｒｅｎｄｅｒｉｎｇ）による画像生成法が発展してきている。これは、三次元空間の多方向の光の情報を記録しておき、それらの情報と画像処理を組み合わせることで、最終的に様々な画像を生成する技術である。この技術を利用したものとしてライトフィールドカメラがある。ライトフィールドカメラでは、例えばレンズと撮像センサとの間に多数の超小型レンズアレイを配置することで、多方向の光の情報を記録する。このライトフィールドカメラには、撮像後に写真のぼけ量やピント位置をユーザーが自由に決められるという利点がある。その代わり、通常のカメラと比較して、画質の面で劣るという課題がある。
【０００３】
これに対し、例えば非特許文献１では、一般的なデジタルカメラ等を用いつつ、ライトフィールドカメラと同様の画像を生成する手法が開示されている。この手法では、１つの被写体をピント位置を変えて撮像を行うことにより焦点ぼけ画像群を取得し、これらの画像群に対して位置不変の線形フィルタ処理を施すことで、視点やぼけ量、ぼけ形状、ピント位置を変えた画像を生成することが可能となっている。この手法では、どこがどのようにぼけているかなどの複雑な判定処理を行わず、単純なフィルタ処理によって画像生成を行うため、所望の画像を安定して生成できるという特長がある。この手法では撮像光学系のぼけ特性を近似する位置不変の３次元ぼけ関数を用意する必要があるが、仮に何らかの理由により用意した３次元ぼけ関数と実際のぼけ特性の間にずれが生じたとしても、生成される画像には大きな破綻は生じないことが分かっている。このような性質により、高品質な画像を簡単かつ安定に生成することが可能となっている。以下、この最終的な生成画像のことを「再構成画像」と称する。また、再構成画像を生成する処理のことを「画像再構成」と称する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Kazuya Kodama and Akira Kubota : "Efficient Reconstruction of All-in-Focus Images Through Shifted Pinholes from Multi-Focus Images for Dense Light Field Synthesis and Rendering", IEEE Transactions on Image Processing, 22, 11, pp. 4407-4421 (2013)
【非特許文献２】Xi Ou, Takayuki Hamamoto, Akira Kubota, and Kazuya Kodama : "Efficient Free Viewpoint Image Acquisition from Multiple Differently Focused Images", Visual Communications and Image Processing 2008 (VCIP 2008), SPIE Vol.6822-73 (2008)
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１で開示される手法では、画像再構成に必要な演算量およびメモリ使用量が増大する場合があるという課題があった。このため、実行環境となる計算機の性能によっては、満足できる処理速度が得られない、または搭載メモリ量の制限により所望の画質を持つ画像が得られない場合があった。
【０００６】
本発明は、上記課題を解決するために、生成画像の画質を低下させることなく演算量およびメモリ使用量を低減させ、ひいてはより手軽に画像再構成を実現できる画像生成装置
および画像生成方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様は、結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力する入力部と、前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部と、前記記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算部と、を有し、前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算部は前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成することを特徴とする画像生成装置を提供する。
【０００８】
本発明の第２態様は、コンピュータが、結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力するステップと、前記コンピュータが、前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算ステップと、を有し、前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算ステップでは前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成することを特徴とする画像生成方法を提供する。
【０００９】
本発明の第３態様は、コンピュータに、結像光学系の光軸方向に焦点位置を変えながら被写体を複数回撮像することにより得られた複数の画像から構成される焦点ぼけ画像群のデータを入力するステップと、前記結像光学系のぼけ特性を近似する３次元ぼけ関数に基づき生成された複数のフィルタのデータを記憶する記憶部から使用するフィルタのデータを取得し、前記フィルタを前記焦点ぼけ画像群に対し作用させることで新たな画像を生成する演算ステップと、を実行させるプログラムであって、前記複数のフィルタのうちの第１のフィルタの第１の要素が、前記第１のフィルタ若しくは前記第１のフィルタとは異なる第２のフィルタに含まれる第２の要素と対称又は反対称である場合に、前記記憶部は前記第１のフィルタの前記第１の要素のデータを記憶しておらず、かつ、前記演算ステップでは前記第１のフィルタを使用する際に前記記憶部に記憶されている前記第２の要素のデータを基に前記第１のフィルタの前記第１の要素のデータを生成することを特徴とするプログラムを提供する。
【発明の効果】
【００１０】
本発明によれば、例えば非特許文献１で示される手法において、再構成画像の画質を低下させることなく、演算量およびメモリ使用量を低減させることができる。ひいては、より低スペックの計算機においても、所望の再構成画像を手軽に生成することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の画像生成システムのシステム構成図
【図２】第１実施形態の画像入力装置の内部構成図
【図３】第１実施形態の画像生成装置のハードウェア構成図
【図４】第１実施形態の画像生成装置の機能ブロック図
【図５】非特許文献１の深度制御処理の流れを示すフローチャート
【図６】非特許文献１の（ｓ，ｔ）座標系の模式図
【図７】非特許文献１のフィルタＣの生成処理の流れを示すフローチャート
【図８】非特許文献１のフィルタＨの生成処理の流れを示すフローチャート
【図９】非特許文献１の畳み込み和の計算処理の流れを示すフローチャート
【図１０】第１実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図１１】第２実施形態のフィルタＨが使用するメモリ領域の模式図
【図１２】第２実施形態のフィルタＨの計算処理の流れを示すフローチャート
【図１３】第２実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図１４】第３実施形態の画像入力装置の内部構成図
【図１５】第３実施形態のｔ軸に対して対称なぼけ形状の模式図
【図１６】第３実施形態のｓ軸かつｔ軸に対して対称なぼけ形状の模式図
【図１７】第３実施形態のフィルタＨが使用するメモリ領域の模式図
【図１８】第３実施形態のフィルタＨの計算処理の流れを示すフローチャート
【図１９】第３実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図２０】第４実施形態の（ｓ，ｔ）空間の原点に対して対称なぼけ形状の模式図
【図２１】第４実施形態のフィルタＨの計算処理の流れを示すフローチャート
【図２２】第４実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図２３】第５実施形態のフィルタＨの計算処理の流れを示すフローチャート
【図２４】第５実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図２５】第６実施形態の（ｓ，ｔ）座標系の離散化の模式図
【図２６】第６実施形態のフィルタＨのメモリ使用量削減方法の模式図
【図２７】第６実施形態のフィルタＨの計算処理の流れを示すフローチャート
【図２８】第６実施形態のフィルタＨの値の取得処理の流れを示すフローチャート
【図２９】第７実施形態のフィルタＣが使用するメモリ領域の模式図
【図３０】第７実施形態のフィルタＣの計算処理の流れを示すフローチャート
【図３１】第８実施形態のｃｏｓ関数部の模式図
【図３２】第８実施形態のフィルタＣの回転参照性を示す模式図
【図３３】第９実施形態のフィルタＣの回転参照性を示す模式図
【図３４】第９実施形態の離散点の回転参照性を示す模式図
【図３５】第９実施形態の（ｓ，ｔ）空間の極座標離散化を示す模式図
【図３６】第１０実施形態の離散点の回転参照性を示す模式図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施形態に係る画像生成装置および画像生成方法について、図面を用いて説明する。
【００１３】
＜第１実施形態＞
本発明の第１実施形態に係る画像生成システムを、図に従って説明する。本実施形態で示す手法は、図１のようなシステム構成の元で実現される。１０１は画像入力装置であり、主にカメラなど撮像素子を持った機器が該当するが、本実施形態では画像入力装置１０１として撮像装置を備えた顕微鏡システムを採用する。その詳細な内部構成は後述する。１０２は画像生成装置であり、本実施形態で示す手法を実現するための主要部分である。具体的には、画像生成装置１０２は、画像入力装置１０１で取得された画像データを受け取り、表示画像データの生成処理を行う。１０３は画像表示装置であり、画像生成装置１０２から受け取った表示画像データに基づく画像を画面に表示する。
以上で、図１の説明を終了する。
【００１４】
図２は、本実施形態における画像入力装置１０１の内部構成を示す図である。
光源２０１の光は、照明光学系２０２を通じ、光量ムラが無いように均一化され、ステージ２０３の上に設置されたスライド（プレパラートとも称す）２０４を照射する。スライド２０４は観察対象となる組織の切片や塗抹した細胞をスライドグラス上に貼り付け、封入剤とともにカバーグラスの下に固定したものであり、検体（被写体）を観察可能な状態に準備したものである。
【００１５】
結像光学系２０５は、検体の像を拡大して撮像手段である撮像部２０７に導くものである。スライド２０４を通った光は、結像光学系２０５を介して、撮像部２０７上の撮像面で結像する。結像光学系２０５の中には開口絞り２０６が存在し、開口絞り２０６を調整することで被写界深度が制御できる。
【００１６】
撮像にあたっては、光源２０１を点灯させ、スライド２０４に光を照射する。そして、照明光学系２０２、スライド２０４、結像光学系２０５を通って撮像面に結像した像を撮像部２０７のイメージセンサで受光する。モノクロ（グレースケール）撮影時には光源２０１を白色で露光し、１回撮像を行う。カラー撮影時には、ＲＧＢの３つの光源２０１で順番に露光し、３回撮像を行うことで、カラー画像を取得する。あるいは、白色の光源２０１で露光し、ダイクロイックプリズム等の光学系により波長分解し、複数のイメージセンサで異なる波長の画像を一括で取得する構成でもよい。
【００１７】
撮像面で結像した検体の像は、撮像部２０７で光電変換され、Ａ／Ｄ変換を実行した後、電気信号として画像生成装置１０２に送られる。また、本実施形態では、Ａ／Ｄ変換を実行した後のノイズ除去や色変換処理、鮮鋭化処理に代表される現像処理を画像生成装置１０２内部で行うものとする。しかし、現像処理は撮像部２０７に接続された専用の画像処理ユニット（不図示）で行い、その後画像生成装置１０２にデータを送信することも可能であり、そのような形態での実施も本発明の範疇となる。
【００１８】
画像入力装置１０１を用いて、光軸方向の焦点位置を変えながら同じ被写体を複数回撮像することによって得られる画像群（つまり、被写体のぼけが異なる複数枚の画像）を、本明細書では「焦点ぼけ画像群」又は「Ｚスタック画像」と称す。
以上で、図２の説明を終了する。
【００１９】
本実施形態において、画像生成装置１０２は、例えば図３に示されるハードウェア構成から成るコンピュータと、後述する各種機能を提供するプログラムとで、実現可能である。３０１は入力部であり、キーボードやマウス等が該当する。３０２は記憶部であり、本実施形態で示す手法を実現するためのプログラムや、処理対象データなどを格納する部分であり、ＲＡＭ等が該当する。３０３は演算部であり、記憶部３０２に格納されたデータに対し、記憶部３０２に格納されたプログラムに従って各種演算処理を行う部分であり、ＣＰＵ等のプロセッサが該当する。または、演算部３０３としてＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の高速なプロセッサを用いれば、より好ましい構成となる。３０４はＩ／Ｆ部であり、画像入力装置１０１および画像表示装置１０３とのデータ入出力を制御するインターフェース部分である。３０５は外部記憶装置（または補助記憶装置）であり、ハードディスクやフラッシュメモリ等が該当する。３０６は上記３０１〜３０５を接続するデータバスである。なお、外部記憶装置３０５にすでに焦点ぼけ画像群が格納されている場合は、画像入力装置１０１は必ずしも必要ではない。
以上で、図３の説明を終了する。
【００２０】
本実施形態における画像生成装置１０２の機能ブロック図を、図４に示す。図４に示す機能ブロック４０１〜４０６は、演算部３０３が必要なプログラムを実行することにより実現されるものである。４０１は初期化部であり、本実施形態で示す処理に必要な各種初
期化を行う。４０２は焦点ぼけ画像群入力部であり、処理対象となる焦点ぼけ画像群のデータを入力する。４０３は３次元ぼけ関数設定部であり、処理に用いる３次元ぼけ関数の形状を設定する。４０４はフーリエ変換部であり、焦点ぼけ画像群や再構成画像のフーリエ変換／逆フーリエ変換、また必要に応じて３次元ぼけ関数のフーリエ変換／逆フーリエ変換を行う。４０５はフィルタ計算部であり、処理に必要なフィルタの計算を行う。４０６は畳み込み演算部であり、周波数空間において焦点ぼけ画像群とフィルタの畳み込み演算を行う。なお本実施形態では周波数解析手法としてフーリエ変換を用いるが、他の周波数解析手法（例えば、サイン変換、コサイン変換）を用いてもよい。
以上で、図４の説明を終了する。
【００２１】
（非特許文献１の深度制御処理）
まず、本実施形態の詳細を説明する前に、その適用対象である深度制御処理について説明を行う。この深度制御処理は、非特許文献１で示されている処理であり、焦点ぼけ画像群から視点やぼけ量、ぼけ形状、およびピント位置を変えた画像を生成する画像再構成処理である。
【００２２】
図５は、非特許文献１で示される深度制御処理の流れの概要を示すフローチャートである。以下、図５に従って処理の流れを説明する。
まず、初期化部４０１が、初期設定を行う（ステップＳ５０１）。このステップでは、深度制御処理に必要な変数の定義や、メモリ領域の確保などを行う。
【００２３】
ステップＳ５０２では、焦点ぼけ画像群入力部４０２が、焦点ぼけ画像群の入力を行う。このステップにおける入力とは、処理対象となる焦点ぼけ画像群のデータを記憶部３０２に格納することを意味する。焦点ぼけ画像群入力部４０２は、画像入力装置１０１からデータを取得しても良いし、あらかじめ外部記憶装置３０５に格納されているデータを記憶部３０２に読み込んでも良い。あるいは、画像サーバやネットワークストレージ（いずれも不図示）からネットワークを通じて焦点ぼけ画像群のデータを取得してもよい。なお、本実施形態では、上記焦点ぼけ画像群はＮ枚の焦点ぼけ画像から構成され、各画像の画素数は全てＮｘ×Ｎｙピクセル（Ｎｘは横方向ピクセル数、Ｎｙは縦方向ピクセル数）であるとする。なお、ＮｘおよびＮｙは、例えば２の累乗で表される数に設定するのが好ましい。そうすれば、次のステップにおけるフーリエ変換の際にＦＦＴ（高速フーリエ変換）を適用できるため、計算の高速化が期待できる。また、画像の各画素は赤緑青の３成分から構成され、メモリ上では１画素当たり各成分に１［Ｂｙｔｅ］が割り当てられているものとする。以上より、焦点ぼけ画像群の全メモリ使用量は、Ｎｘ×Ｎｙ×３×Ｎ［Ｂｙｔｅ］と計算できる。
【００２４】
ステップＳ５０３では、フーリエ変換部４０４が、入力した焦点ぼけ画像群に対してフーリエ変換を行う。フーリエ変換部４０４は、記憶部３０２に格納されているＮ枚の焦点ぼけ画像それぞれに対し、２次元フーリエ変換を適用する。フーリエ変換の結果は、同じく記憶部３０２に格納される。よって、このステップを行った後は、焦点ぼけ画像群を構成する各画像の周波数特性を表わす配列データが、記憶部３０２にＮセット格納される。以下、この配列データをＧ（ｎ）（ｕ，ｖ）と記す。通常、このＧ（ｎ）（ｕ，ｖ）は複素数配列となるため、その全データ数はＮｘ×Ｎｙ×３×Ｎ×２となる。なお、ｕおよびｖは、それぞれ実空間座標軸であるｘとｙに対応する周波数空間座標軸である。また、特に明記しない限り、ｕの定義域は−Ｎｘ／２≦ｕ＜Ｎｘ／２、ｖの定義域は−Ｎｙ／２≦ｖ＜Ｎｙ／２とする。ｎは画像番号（焦点位置の番号）を表し、Ｎ枚の画像がある場合は例えばｎ＝０〜Ｎ−１である。
【００２５】
ステップＳ５０４では、３次元ぼけ関数設定部４０３が、３次元ぼけ関数の設定を行う。３次元ぼけ関数とは、処理対象となる焦点ぼけ画像群における３次元ぼけの情報、つま
り、この焦点ぼけ画像群の撮像に用いた結像光学系のぼけ特性（結像特性）を表す情報である。例えば、結像光学系のＰＳＦ（点拡がり関数）などで与えられる。なお、３次元ぼけ関数は、実際の撮像に用いた結像光学系の特性と厳密に一致している必要はなく、結像光学系の特性を近似的に表していればよい。また、焦点ぼけ画像群の撮像に用いられた結像光学系の特性が不明な場合は、標準的な３次元ぼけ関数で代用してもよい。
【００２６】
３次元ぼけ関数のデータは、あらかじめプログラムコードに記述されていても良いし、何らかの外部入力によってその都度形状を変更して、記憶部３０２に格納しておいても良い。例えば、３次元ぼけ関数設定部４０３が、画像入力装置１０１から３次元ぼけ関数の設定に必要なパラメータを取得したり、入力部３０１からユーザー入力を受け付け、そこからパラメータを取得して、３次元ぼけ関数の形状を変更しても良い。
【００２７】
ステップＳ５０５では、フーリエ変換部４０４が、３次元ぼけ関数を表わすデータに対してフーリエ変換を行う。このステップにおけるフーリエ変換とは、以下の式で示す通り、実空間における３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）を周波数空間データに変換し、新たな関数Ｈ（ｕ，ｖ，ｚ）を計算する処理のことを指す。なお、このフーリエ変換はｘおよびｙ方向についてのみ実行し、ｚ方向に対しては実行しないことに注意する必要がある。
【数１】
2017021425.tif 000003
【数２】
2017021425.tif 000004
【００２８】
式（１）は３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）が解析的に与えられている場合に用いる式であり、この場合は得られた解析的なＨ（ｕ，ｖ，ｚ）を配列データに変換して記憶部３０２に格納する。また、式（２）は３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）がすでに配列データとして記憶部３０２に格納されている場合に用いる式である。なお、ｉは虚数単位である。
【００２９】
ステップＳ５０４、Ｓ５０５の処理を、３次元ぼけ関数設定部４０３が予め用意された３次元ぼけ関数のフーリエ変換Ｈ（ｕ，ｖ，ｚ）のデータを取得する処理に置き換えてもよい。その場合には、使用が想定される３次元ぼけ関数のフーリエ変換Ｈ（ｕ，ｖ，ｚ）を予め式（１）にしたがって解析的に求めておき、その結果をプログラムコードに記述もしくは記憶部３０２に配列データとして格納しておくとよい。
【００３０】
ステップＳ５０６では、フィルタ計算部４０５が、３次元ぼけ関数のフーリエ変換Ｈ（ｕ，ｖ，ｚ）からフィルタＣｓ，ｔ（ｕ，ｖ）の生成を行う。具体的には、以下の式にしたがって計算を行う。
【数３】
2017021425.tif 000005
【００３１】
ここで、ｓおよびｔは、ライトフィールド中の視点ないし光線を特定するための値であり、本実施形態ではｓは開口絞り２０６の面上における横方向座標を、またｔは縦方向座標を表す。原点（ｓ，ｔ）＝（０，０）は、開口絞り２０６と結像光学系２０５の光軸と
の交点である。以下、このｓとｔで表される２次元座標系を（ｓ，ｔ）空間、もしくは（ｓ，ｔ）座標系と記す。（ｓ，ｔ）座標系は光軸方向に垂直な面となる。この（ｓ，ｔ）座標系は離散化されており、その模式図を図６に示す。６０１は（ｓ，ｔ）座標系における離散点（視点に相当する）であり、離散化が粗いときにはその数は少なくなり、細かいときには多くなる。フィルタＣｓ，ｔ（ｕ，ｖ）は離散点ごとに生成される。図６では等間隔の直交座標系に基づいて（ｓ，ｔ）空間を離散化しているが、例えば極座標系など、必要に応じて図６とは異なる離散化を行っても良い。なお、ｓおよびｔが取りうる値は、（ｓ，ｔ）空間の離散化の仕方によって変わる。例えば、（ｓ，ｔ）空間の定義域を−１≦ｓ≦１かつ−１≦ｔ≦１とし、各軸方向にそれぞれ等間隔に３分割の離散化を行うと、ｓおよびｔが取りうる値はどちらも−１，０，１の３つとなる。この時、（ｓ，ｔ）空間はこの値の組み合わせにより（ｓ，ｔ）＝（−１，−１），（０，−１），（１，−１）， （−１，０），（０，０），（１，０），（−１，１），（０，１），（１，１）の
９点に離散化されることになる。この離散化が細かくなればなるほど記憶部３０２のメモリ使用量が増えるが、同時に最終的な再構成画像の画質も向上する。
【００３２】
Ｃｓ，ｔ（ｕ，ｖ）は焦点ぼけ画像群から視点（ｓ，ｔ）を通る光線に関わる情報を抽出するためのフィルタであり、「光線分解フィルタ」とも称す。本実施形態のＣｓ，ｔ（ｕ，ｖ）は、周波数空間で適用される２次元空間周波数フィルタである。以下、説明の簡便さを重視し、必要に応じてＣｓ，ｔ（ｕ，ｖ）をフィルタＣと呼ぶ。
【００３３】
離散点（ｓ，ｔ）の総数をＭとすると、フィルタＣは、Ｍ個のフィルタから構成される。各フィルタはＮｘ×Ｎｙ個の要素を有しており、各要素は複素数のデータである。よって、フィルタＣの全メモリ使用量は、複素数の実数部および虚数部を単精度浮動小数点で表せばＮｘ×Ｎｙ×２×Ｍ×４［Ｂｙｔｅ］となり、倍精度浮動小数点で表せばＮｘ×Ｎｙ×２×Ｍ×８［Ｂｙｔｅ］となる。実用上は、単精度浮動小数点を用いても生成される再構成画像に悪影響は出ない。よって以下では、フィルタＣを格納するデータ形式として単精度浮動小数点を用いる。この構成は、例えば本実施形態をＧＰＵ等に実装する時に、より有利に働く。
【００３４】
ステップＳ５０６の処理の流れをより詳細に示したものを、図７に示す。フィルタ計算部４０５は、変数ｓ，ｔ，ｕ，ｖのそれぞれについてループ処理を行い、各離散点（ｓ，ｔ）に対応するフィルタＣの各要素（ｕ，ｖ）の値を計算する（ステップＳ７０１〜Ｓ７０９）。ステップＳ７０５では、具体的には式（３）の計算が行われる。
【００３５】
ステップＳ５０７では、フィルタ計算部４０５が、フィルタＣｓ，ｔ（ｕ，ｖ）からフィルタＨ（ｎ）（ｕ，ｖ）の生成を行う。フィルタＨ（ｎ）（ｕ，ｖ）は焦点ぼけ画像群から新たなぼけ味をもつ再構成画像を生成するためのフィルタであり、「ぼけ再構成フィルタ」とも称す。具体的には、以下の式にしたがってフィルタＨ（ｎ）（ｕ，ｖ）が計算される。
【数４】
2017021425.tif 000006
【００３６】
ここで、ｌ（ｓ，ｔ）は再構成画像に与えられる新たなぼけの形状を決定する係数であり、ユーザーが設定可能である。また、ｎｆは合焦位置（ピント位置）を示す整数であり、０≦ｎｆ≦Ｎ−１である。合焦位置ｎｆもユーザーが設定可能である。以下、説明の簡便さを重視し、必要に応じてＨ（ｎ）（ｕ，ｖ）をフィルタＨと呼ぶ（このＨは３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）のフーリエ変換Ｈ（ｕ，ｖ，ｚ）ではないことに注意）。
なお、視点の変更は、特殊な焦点ぼけと焦点合わせによって実現することができる。例えば、画像再構成後の焦点ぼけ形状を表すｌ（ｓ，ｔ）の要素数は離散点（ｓ，ｔ）の総数Ｍと同じであるが、ｌ（ｓ，ｔ）の一つの要素に１を設定し、残りのＭ−１個の要素にゼロを設定すれば、ある特定の視点から見た画像を再構成できる。さらに、別の要素だけに１を設定すれば、それに合わせて再構成画像の視点も変更することができる。
【００３７】
フィルタＨは、各焦点位置ｎに対応したＮ個の２次元空間周波数フィルタから構成される。各フィルタはＮｘ×Ｎｙ個の要素を有しており、各要素は複素数のデータである。よって、フィルタＨの全メモリ使用量は、複素数の実数部および虚数部を単精度浮動小数点で表せばＮｘ×Ｎｙ×２×Ｎ×４［Ｂｙｔｅ］となり、倍精度浮動小数点で表せばＮｘ×Ｎｙ×２×Ｎ×８［Ｂｙｔｅ］となる。実用上は、単精度浮動小数点を用いても、生成される再構成画像に悪影響は出ない。よって以下では、フィルタＣと同様に、フィルタＨを格納するデータ形式として、単精度浮動小数点を用いる。この構成は、例えば本実施形態をＧＰＵ等に実装する時に、より有利に働く。こちらもフィルタＣと同様である。
【００３８】
ステップＳ５０７の処理の流れをより詳細に示したものを、図８に示す。フィルタ計算部４０５は、変数ｎ，ｕ，ｖのそれぞれについてループ処理を行い、各焦点位置ｎに対応するフィルタＨの各要素（ｕ，ｖ）の値を計算する（ステップＳ８０１〜Ｓ８０７）。ステップＳ８０４では、具体的には式（４）の計算が行われる。
【００３９】
ここまでで、焦点ぼけ画像群と、３次元ぼけ関数を基としたフィルタに対する処理内容を述べてきたが、この両者に対する処理は順不同で問題ない。つまり、本実施形態ではステップＳ５０２およびＳ５０３の後にステップＳ５０４〜Ｓ５０７を実行したが、ステップＳ５０４〜Ｓ５０７の後にステップＳ５０２およびＳ５０３を実行しても良い。ただし、ステップＳ５０２とステップＳ５０３の処理順番、同じくステップＳ５０４〜Ｓ５０７の処理順番は順不同でない。
【００４０】
ステップＳ５０８では、畳み込み計算部４０６が、Ｇ（ｎ）（ｕ，ｖ）とフィルタＨ（ｎ）（ｕ，ｖ）の畳み込み和を計算し、周波数空間における再構成画像Ａ（ｕ，ｖ）を求める。この演算は、以下の式で表される。
【数５】
2017021425.tif 000007
【００４１】
なお、ステップＳ５０８の処理の流れをより詳細に示したものを、図９に示す。ステップＳ９０３では、変数ｓｕｍが０で初期化される。そして、ｎ番目の画像の周波数特性を表す配列データＧ（ｎ）（ｕ，ｖ）が変数ｇｔｍｐに、ｎ番目の画像にかけるフィルタＨ（ｎ）（ｕ，ｖ）が変数ｈｔｍｐにそれぞれ代入される（ステップＳ９０５、Ｓ９０６）。フィルタＨ（ｎ）（ｕ，ｖ）はステップＳ８０４で計算された結果である。そして、ｇｔｍｐとｈｔｍｐの積であるａｔｍｐがｓｕｍに累積加算される（ステップＳ９０７、Ｓ９０８）。ステップＳ９０５〜Ｓ９０８を０番目からＮ−１番目の画像について繰り返すことにより（ステップＳ９０４、Ｓ９０９）、周波数空間上の座標（ｕ，ｖ）に対応する値Ａ（ｕ，ｖ）が求まる（ステップＳ９１０）。ステップＳ９０３〜Ｓ９１０の計算を全ての座標（ｕ，ｖ）について実行することで（ステップＳ９０１、Ｓ９０２、Ｓ９１１、Ｓ９１２）、周波数空間における再構成画像が得られる。
【００４２】
最後に、フーリエ変換部４０４が、周波数空間における再構成画像Ａ（ｕ，ｖ）を逆フーリエ変換し、実空間における再構成画像ａ（ｘ，ｙ）を計算し（ステップＳ５０９）、一連の処理を終了させる。この演算は、以下の式で表される。
【数６】
2017021425.tif 000008
なお、最終的に求めた再構成画像は、そのまま画像表示装置１０３に送って表示しても良いし、画像表示装置１０３に送らずに一時的に記憶部３０２に格納し、追加の処理を適用しても良い。
【００４３】
また、新たなぼけ味ｌを変化させた画像、もしくは合焦位置を変化させた画像を連続して生成および表示したい場合は、ステップＳ５０１〜Ｓ５０６を省略してステップＳ５０７〜Ｓ５０９を繰り返すとよい。３次元ぼけ関数のフーリエ変換処理やフィルタＣの計算処理を省略することで、高速に再構成画像を生成することができる。
【００４４】
以上が、非特許文献１において提案されているアルゴリズムである。ところで、上述したように、想定される全ての視点（ｓ，ｔ）の全要素（ｕ，ｖ）についてフィルタＣを計算・格納し、全ての焦点位置ｎの全要素（ｕ，ｖ）についてフィルタＨを計算・格納すると、フィルタの演算量及びメモリ使用量が膨大となる。そこで、本発明者らはこのアルゴリズムに内在する各種の対称性に着目することで、フィルタの演算量及びメモリ使用量の削減を図る改良アルゴリズムを提案する。基本的な考え方の一つは、第１のフィルタの一部の要素（第１の要素）が、第１のフィルタの他の要素（第２の要素）と対称又は反対称である場合に、第２の要素のみ演算・記憶し、第１の要素の演算・記憶は行わない、というものである。基本的な考え方のもう一つは、第１のフィルタの一部又は全部の要素（第１の要素）が、別の第２のフィルタの他の要素（第２の要素）と対称又は反対称である場合に、第２の要素のみ演算・記憶し、第１の要素の演算・記憶は行わない、というものである。第１のフィルタを使用する際には、記憶部３０２に記憶されている第２の要素のデータを基に、第１のフィルタのデータを生成（第１の要素を補完）すればよい。ここで、第１のフィルタは、フィルタＣ、Ｈのいずれでもよい。以下に詳述する第１から第６実施形態はフィルタＨの演算量を削減する方法であり、第７から第１３実施形態はフィルタＣの演算量を削減する手法である。
【００４５】
（フィルタＨの対称性を利用した演算量の削減）
第１実施形態では、フィルタＨが合焦位置ｎｆを中心に対称性を有する性質を利用し、ステップＳ５０７におけるフィルタＨの演算量及びフィルタＨのメモリ使用量を削減する。具体的には、合焦位置ｎｆに対して第１の焦点位置と第２の焦点位置が対称な位置にある場合に、第２の焦点位置に対応する画像に適用されるフィルタＨのみ演算・記憶し、第１の焦点位置に対応する画像に適用されるフィルタＨの演算・記憶を省略する。
【００４６】
ここで、式（４）に着目すると、ｎ−ｎｆ＝ｎ’（−ｎｆ≦ｎ’≦Ｎ−１−ｎｆ）とおいた時、
【数７】
2017021425.tif 000009
が成り立つことが分かる。式（７）の右辺の上線は、複素共役を表す記号である。つまり、Ｈ（ｎ）（ｕ，ｖ）の実数部をＲｅ［Ｈ（ｎ）（ｕ，ｖ）］、虚数部をＩｍ［Ｈ（ｎ）（ｕ，ｖ）］と表すことにすると、
【数８】
2017021425.tif 000010
【数９】
2017021425.tif 000011
が成り立つ。これを利用すれば、Ｈ（ｎ’＋ｎｆ）（ｕ，ｖ）さえ計算しておけば、Ｈ（−ｎ’＋ｎｆ）（ｕ，ｖ）の実数値はＲｅ［Ｈ（ｎ’＋ｎｆ）（ｕ，ｖ）］の値をそのまま、虚数値はＩｍ［Ｈ（ｎ’＋ｎｆ）（ｕ，ｖ）］の符号を反転させれば求めることができる。
【００４７】
したがって、本実施形態では、ステップＳ５０７の処理においてフィルタＨ（−ｎ’＋ｎｆ）（ｕ，ｖ）の演算を省略し、ステップＳ５０８の演算においてフィルタＨ（ｎ’＋ｎｆ）（ｕ，ｖ）を基にフィルタＨ（−ｎ’＋ｎｆ）（ｕ，ｖ）を求める。これにより、フィルタＨの演算量およびメモリ使用量を削減することができる。削減の効率は合焦位置ｎｆの値によって変化するが、最も効率が良いのは、Ｎが奇数であればｎｆ＝（Ｎ−１）／２、Ｎが偶数であればｎｆ＝Ｎ／２の時である。この時、削減効率は約１／２となる。
【００４８】
（畳み込み和計算時のフィルタＨの参照処理）
図１０に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【００４９】
まず、畳み込み演算部４０６が、Ｈ（−ｎ’＋ｎｆ）（ｕ，ｖ）の計算処理を省略できるかどうか判断する（条件判定Ｓ１００１）。ステップＳ１００１の結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ’＋ｎｆ）（ｕ，ｖ）の複素共役を求め、その結果をｈｔｍｐに代入する。つまり、ｈｔｍｐの実数部にはＨ（ｎ’＋ｎｆ）（ｕ，ｖ）の実数部を代入し（ステップＳ１００２）、ｈｔｍｐの虚数部にはＨ（ｎ’＋ｎｆ）（ｕ，ｖ）の虚数部の符号を反転させたものを代入する（ステップＳ１００３）。その後、図１０の処理を終了する。ステップＳ１００１の結果が偽であれば、畳み込み演算部４０６は、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ１００４）、図１０の処理を終了する。
以上で、図１０の説明を終了する。
【００５０】
以上に述べたように、本実施形態によれば、非特許文献１に示される手法において、フィルタＨの形状が合焦位置ｎｆを基準として複素共役になることを利用し、その演算量およびメモリ使用量を削減することができる。その効率は合焦位置ｎｆの値によって変化するが、その最大値は約１／２となる。ひいては、この削減効果により、より低スペックな計算機においても、所望の再構成画像を手軽に生成することが可能になる。
【００５１】
＜第２実施形態＞
本発明の第２実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第１実施形態のものと同様であるが、フィルタＨの演算量削減方法が異なる。
【００５２】
（制約の導入による演算量削減）
本実施形態では、非特許文献１で示される深度制御手法を使用するに当たり、３次元ぼ
け関数ｈ（ｘ，ｙ，ｚ）について、以下の式（１０）で表される制約を課す。
【数１０】
2017021425.tif 000012
【００５３】
ここで、ｋ（ｓ，ｔ）は３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）を構成する光線群の重みを表わす係数であり、δはディラックのデルタ関数である。なお、ｋ（ｓ，ｔ）は、
【数１１】
2017021425.tif 000013
を満たすものとする。また、３次元ぼけ関数が合焦位置である原点（ｘ，ｙ，ｚ）＝（０，０，０）に対して点対称となるようｚの範囲を規定する。以上まとめると、本実施形態では、３次元ぼけ関数に対し、合焦位置に対して点対称性を有し、かつ、合焦位置を通過する複数の光線の集合で表現される関数、という制約を与える。
【００５４】
このような制約を課した場合、フィルタＣｓ，ｔ（ｕ，ｖ）の各要素の虚数部はゼロとなり、フィルタＣｓ，ｔ（ｕ，ｖ）の各要素の値は実数となる。また、以下の式（１２）に示す通り、フィルタＣｓ，ｔ（ｕ，ｖ）は、ｓおよびｔの値によらず、原点（ｕ，ｖ）＝（０，０）に対して点対称性を持つ（途中の導出過程は省略）。
【数１２】
2017021425.tif 000014
【００５５】
この式（１２）の結果を式（４）に適用すれば、
【数１３】
2017021425.tif 000015
となり、Ｒｅ［Ｈ（ｎ）（ｕ，ｖ）］については原点対称、Ｉｍ［Ｈ（ｎ）（ｕ，ｖ）］については原点反対称となることが分かる。この結果を利用すれば、例えばｎをある値に固定した時のフィルタＨ（ｎ）（ｕ，ｖ）に対して、以下のような演算量およびメモリ使用量の削減ができる。
【００５６】
今、ｕ方向とｖ方向の配列インデックスをそれぞれｐ（ｐ＝０，１，・・・，Ｎｘ−１）とｑ（ｑ＝０，１，・・・，Ｎｙ−１）とし、Ｈ（ｎ）［ｐ，ｑ］がＮｘ×Ｎｙの要素数を持つ複素数配列であるとする。ただし、ｕとｐとの関係は、０≦ｐ＜Ｎｘ／２＋１の時にｕ＝ｐ、Ｎｘ／２＋１≦ｐ≦Ｎｘ−１の時にｕ＝ｐ−Ｎｘであるとする。これと同様にｖとｑとの関係は、０≦ｑ＜Ｎｙ／２＋１の時にｖ＝ｑ、Ｎｙ／２＋１≦ｑ≦Ｎｙ−１の時にｖ＝ｑ−Ｎｙであるとする。この時、式（１３）から
【数１４】
2017021425.tif 000016
が成り立つので、Ｈ（ｎ）［ｐ，ｑ］の計算に必要な演算量と使用メモリ容量を約１／２に減らすことができる。より正確には、１／２＋１／Ｎｙに減らすことができる。その例
を図１１に示す。図１１は、Ｎｘ＝Ｎｙ＝８とした時の、フィルタＨ（ｎ）［ｐ，ｑ］が使用するメモリ領域の模式図である。実線で囲った領域１１０１は実際にメモリ上に確保される領域であり、破線で囲った領域１１０２は前記対称性を利用することで容量削減できる領域である。この例ではＮｙ＝８なので、演算量とメモリ使用量は１／２＋１／８＝５／８に減らすことができる。
【００５７】
これより、何も制約を課さない場合と比べると、フィルタＨの全メモリ使用量はＮｘ×Ｎｙ×４×２×ＮからＮｘ×（Ｎｙ／２＋１）×４×２×Ｎまで減少し（フィルタＨを単精度実数配列と想定）、約１／２となる。演算量についても同様で、約１／２まで減少する。また、本実施形態ではｑ方向に対して削減を行ったが、ｐ方向に対して同様の削減を行っても全く差し支えなく、得られる効果も全く同様である。ただし、ＧＰＵを用いた実装を行う場合は、ハードウェアの特性上ｑ方向に対して削減を行った方が好ましい場合もある。
【００５８】
図１２に、本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図８のステップＳ８０４が、ステップＳ１２０１〜Ｓ１２０７の処理に置き換わる。
以下、ｔとｓに関する２重ループ（Ｓ１２０１〜Ｓ１２０７、Ｓ１２０２〜Ｓ１２０６）の内部の処理についてのみ説明を行う。
【００５９】
まず、フィルタ計算部４０５が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ１２０３）。ステップＳ１２０３の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｖの値が０以上であるかどうかを判定する（条件判定Ｓ１２０４）。ステップＳ１２０３の判定結果が偽、もしくはステップＳ１２０４の判定結果が真であれば、フィルタ計算部４０５は、式（４）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ１２０５）、２重ループ内の処理を終わる。ステップＳ１２０４の判定結果が偽である場合は、式（１４）に基づいて演算量を削減できるため、そのまま２重ループ内の処理を終わる。
以上で、図１２の説明を終了する。
【００６０】
（畳み込み和計算時のフィルタＨの参照処理）
図１３に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【００６１】
まず、畳み込み演算部４０６が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ１３０１）。ステップＳ１３０１の結果が真であれば、引き続き畳み込み演算部４０６が、ｖの値が負であるかどうかを判定する（条件判定Ｓ１３０２）。
【００６２】
ステップＳ１３０２の判定結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（−ｕ，−ｖ）の複素共役を求め、その結果をｈｔｍｐに代入する。つまり、ｈｔｍｐの実数部にはＨ（ｎ）（−ｕ，−ｖ）の実数部を代入し（ステップＳ１３０３）、ｈｔｍｐの虚数部にはＨ（ｎ）（−ｕ，−ｖ）の虚数部の符号を反転させたものを代入する（ステップＳ１３０４）。その後、図１３の処理を終了する。
【００６３】
ステップＳ１３０１の結果もしくはステップＳ１３０２の結果が偽であれば、畳み込み演算部４０６は、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ１３０５）、図１３の処理を終了する。
以上で、図１３の説明を終了する。
【００６４】
以上に述べたように、本実施形態によれば、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して
式（１０）で表される制約を与えることで、フィルタＨ（ｎ）（ｕ，ｖ）の計算において、その演算量およびメモリ使用量を約１／２に低減させることができる。ひいては、この削減効果により、より低スペックな計算機においても、所望の再構成画像を手軽に生成することが可能になる。なお、本実施形態で述べた方法は、第１実施形態で述べた方法と完全に共存させることが可能である。この場合は、演算量およびメモリ使用量のさらなる削減が可能である。
【００６５】
＜第３実施形態＞
本発明の第３実施形態を、図に従って説明する。
画像生成システムの構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第２実施形態のものと同様である。ただし、画像入力装置の構成と、３次元ぼけ関数に対する制約条件、および再構成画像で適用されるぼけ味の指定条件が異なる。
【００６６】
（画像入力装置の内部構成）
図１４に、本実施形態における画像入力装置１０１の内部構成を示す。１４０１は被写体であり、画像入力装置１０１の外部にある。被写体１４０１から出た光はレンズ１４０２と絞り１４０３を通り、撮像部１４０４上で結像する。撮像部１４０４上で結像した被写体の像は、撮像部１４０４で光電変換され、Ａ／Ｄ変換を実行した後、電気信号として画像生成装置１０２に送られる。また、本実施形態では、Ａ／Ｄ変換を実行した後のノイズ除去や色変換処理、鮮鋭化処理に代表される現像処理を画像生成装置１０２内部で行うものとする。しかし、現像処理は撮像部１４０４に接続された専用の画像処理ユニット（不図示）で行い、その後画像生成装置１０２にデータを送信することも可能であり、そのような形態での実施も本発明の範疇となる。
以上で、図１４の説明を終了する。
【００６７】
（制約の導入による演算量削減）
本実施形態では、第２実施形態で示す制約条件に加えてさらに、３次元ぼけ関数の形状を決定するｋ（ｓ，ｔ）と、再構成画像に反映される新たなぼけ形状を決定するｌ（ｓ，ｔ）に対して、制約を与える。
【００６８】
まず、ｋ（ｓ，ｔ）に与える制約について説明を行う。
本実施形態では、ｋ（ｓ，ｔ）が少なくとも原点を通る任意の１軸に対して対称であるという制約を設定する。例えば図１５に示すように、絞り１４０３が５角形であり、ｔ軸に対して対称である場合が、本実施形態の制約に該当する。一般的なデジタルカメラでは、絞りの形状は複数枚の絞り羽根によって決まるので、絞り羽根の枚数が５枚であれば、絞り形状は５角形となる。
【００６９】
これをｋ（ｓ，ｔ）で実現するには、（ｓ，ｔ）空間の離散点１５０１の配置が少なくともｔ軸に対して対称であり、かつその上に定義される値もｔ軸に対して対称であり、さらにそれが絞り１４０３の形状を適切に表現する値になっている必要がある。値による表現方法としては、例えば絞り１４０３の内部を定数に、外部を全て０に設定する方法が考えられる。または、前述の値に対して、原点を中心とする２次元ガウス関数を掛ければ、より現実に即した表現になると考えられる。ただし、全ての（ｓ，ｔ）におけるｋ（ｓ，ｔ）の値の和が１になるなどの正規化をしておくのが好ましい。
【００７０】
ちなみにこの場合、例えばｔ軸対称である場合を例にとると、フィルタＣに対しては
【数１５】
2017021425.tif 000017
が成り立つことが分かる（途中の導出過程は省略）。
【００７１】
または、ｋ（ｓ，ｔ）が原点を通りかつ直交する任意の２軸に対して対称である場合も、本実施形態における制約に包含される。例えば、図１６に示すように、絞り１４０３が６角形であり、ｓ軸かつｔ軸に対して対称である場合が、本実施形態の制約に該当する。デジタルカメラなどでは、絞り羽根の枚数が６枚であれば、絞り形状は６角形となる。ちなみにこの場合、例えばｓ軸かつｔ軸に対して対称である場合を例にとると、フィルタＣに対しては
【数１６】
2017021425.tif 000018
が成り立つことが分かる（途中の導出過程は省略）。
【００７２】
次に、ｌ（ｓ，ｔ）に与える制約について説明を行う。
本実施形態では、ｌ（ｓ，ｔ）がｋ（ｓ，ｔ）の対称軸のうちの１軸に対して対称であるという制約を設定する。ｌ（ｓ，ｔ）の具体的な形状は、上記の１軸対称性を満たしていれば何でも良い。図１５で示すような５角形でも良いし、３角形や７角形、もしくはその他のより一般的な形状でも良い。ただし、ｋ（ｓ，ｔ）がほぼゼロになる（ｓ，ｔ）に対しては、ｌ（ｓ，ｔ）の値もゼロにしておくのが好ましい。
【００７３】
例として、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｔ軸に対して対称である場合を考えると、式（４）は、
【数１７】
2017021425.tif 000019
と計算され、これよりフィルタＨ（ｎ）（ｕ，ｖ）はｖ軸対称性を持つことが分かる。ただし、式（１７）の右辺第２式から第３式の変形は、ｌ（ｓ，ｔ）のｔ軸対称性を利用し、右辺第３式から第４式の変形は、（ｓ，ｔ）空間上の離散点のｔ軸対称性を用いた。
【００７４】
さらに、この式（１７）の結果と式（１３）を用いれば、
【数１８】
2017021425.tif 000020
が導かれ、これよりＨ（ｎ）（ｕ，ｖ）は、ｕ軸に対しては実数部が対称かつ虚数部が反対称となることが分かる。これらの結果を総合すると、フィルタＨについてはｕ≧０かつｖ≧０の領域のみメモリに保持しておけばよいことが分かる。残りの領域が必要になった場合はすでに保持されているフィルタ値をそのまま利用、もしくは符号反転して利用することができる。これにより、演算量およびメモリ使用量を約１／４に削減することが可能になる。
【００７５】
図１７は、Ｎｘ＝Ｎｙ＝８とした時の、フィルタＨ（ｎ）［ｐ，ｑ］が使用するメモリ領域の模式図である（ｐおよびｑの定義は、第２実施形態における定義をそのまま用いる
）。実線で囲った領域１７０１は実際にメモリ上に確保される領域であり、破線で囲った領域１７０２〜１７０４は前記対称性を利用することで容量削減できる領域である。より詳しくは、領域１７０２が領域１７０１の複素共役となり、領域１７０３が領域１７０１と同じ値となり、領域１７０４が領域１７０３の複素共役となる。図１７の各領域中の番号および記号は、それぞれ同じ番号および記号を持つメモリ同士が上記対応関係にあることを示す。この図１７の例では、演算量とメモリ使用量を（５×５）／（８×８）＝２５／６４≒４割に減らすことができる。ＮｘおよびＮｙの値が大きくなればそれだけ演算量およびメモリ使用量は減るが、その最小値は１／４である。
【００７６】
なお、本実施形態では、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｔ軸対称である場合について述べたが、例えば両者ともｓ軸対称である場合にも、同様の削減効果が得られる。ただしこの場合は、Ｈ（ｎ）（ｕ，ｖ）はｕ軸対称性を持ち、かつｖ軸に対しては実数部が対称かつ虚数部が反対称となる。また、ｋ（ｓ，ｔ）がｓ軸かつｔ軸に対して対称である場合、ｌ（ｓ，ｔ）についてはｓ軸対称またはｔ軸対称のどちらかの条件を満たせば、同様の削減効果が期待できる。さらに、これらの対称軸はｓ軸またはｔ軸と一致している必要はなく、原点を通れば任意の軸を取って良い。最低限必要なのは、ｋ（ｓ，ｔ）の対称軸とｌ（ｓ，ｔ）の対称軸が一致するという条件のみである。しかしその場合であっても、実用上はｋ（ｓ，ｔ）およびｌ（ｓ，ｔ）の対称軸を適切に回転させ、ｓ軸もしくはｔ軸に一致させておく方が、処理の簡便さの面からも好ましい。ちなみに、ｋ（ｓ，ｔ）が原点（ｓ，ｔ）＝（０，０）に対して回転対称性を持つ場合、ｋ（ｓ，ｔ）の対称軸は無数に存在する。したがって、この場合はｌ（ｓ，ｔ）が任意の１軸に対して対称でさえあれば、その対称軸の種類によらず本実施形態で述べた効果を得ることができる。
【００７７】
図１８に、本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図８のステップＳ８０４が、ステップＳ１８０１〜Ｓ１８０８の処理に置き換わる。
以下、ｔとｓに関する２重ループ（Ｓ１８０１〜Ｓ１８０８、Ｓ１８０２〜Ｓ１８０７）の内部の処理についてのみ説明を行う。
【００７８】
まず、フィルタ計算部４０５が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ１８０３）。ステップＳ１８０３の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｔ軸対称であるかどうかを判定する（条件判定Ｓ１８０４）。ステップＳ１８０４の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｕとｖの値がともに０以上であるかどうかを判定する（条件判定Ｓ１８０５）。ステップＳ１８０５の判定結果が偽である場合は、式（１７）および式（１８）に基づいて演算量を削減できるため、そのまま２重ループ内の処理を終わる。ステップＳ１８０３もしくはＳ１８０４の判定結果が偽、またはステップＳ１８０５の判定結果が真であれば、フィルタ計算部４０５は、式（４）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ１８０６）、２重ループ内の処理を終わる。
以上で、図１８の説明を終了する。
【００７９】
（畳み込み和計算時のフィルタＨの参照処理）
図１９に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【００８０】
まず、畳み込み演算部４０６が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ１９０１）。ステップＳ１９０１の判定結果が真であれば、引き続き畳み込み演算部４０６が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｔ軸対称であるかどうかを判定する（条件判定Ｓ１９０２）。ステップＳ１９０２の判定結果が真であれば、引き続き畳み込み演算部４０６が、ｕとｖの値の範囲を判定す
る（条件判定Ｓ１９０３〜Ｓ１９０５）。
【００８１】
ステップＳ１９０１もしくはＳ１９０２の判定結果が偽、またはステップＳ１９０３とＳ１９０４の判定結果がともに真であれば、ステップＳ１９０６へ進む。畳み込み演算部４０６が、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ１９０６）、図１９の処理を終了する。
【００８２】
ステップＳ１９０３の判定結果が真で、かつステップＳ１９０４の判定結果が偽であれば、ステップＳ１９０７へ進む。畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕ，−ｖ）の複素共役を求め、その結果をｈｔｍｐに代入し（ステップＳ１９０７）、図１９の処理を終了する。
【００８３】
ステップＳ１９０３とＳ１９０５の判定結果がともに偽であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（−ｕ，−ｖ）の複素共役を求め、その結果をｈｔｍｐに代入し（ステップＳ１９０８）、図１９の処理を終了する。
【００８４】
ステップＳ１９０３の判定結果が偽で、かつステップＳ１９０５の判定結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（−ｕ，ｖ）の値をｈｔｍｐに代入し（ステップＳ１９０９）、図１９の処理を終了する。
以上で、図１９の説明を終了する。
【００８５】
以上に述べたように、本実施形態によれば、第２実施形態における制約条件に加えて、ｋ（ｓ，ｔ）の対称軸とｌ（ｓ，ｔ）の対称軸が一致するという制約を与えることで、フィルタＨの演算量およびメモリ使用量を最大で約１／４に削減することが可能になる。ただし、このフィルタＨの値を利用する際には、フィルタＨの値に対して適切な符号反転操作を施す必要がある。この符号反転操作が必要かどうかの判断基準は、（ｕ，ｖ）の値と対称軸の種類に依存する。なお、本実施形態で述べた方法は、第１実施形態で述べた方法と完全に共存させることが可能である。この場合は、第１実施形態における削減効果に加えて、さらに本実施形態による削減効果を得ることができる。
【００８６】
＜第４実施形態＞
本発明の第４実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第３実施形態ものと同様である。ただし、３次元ぼけ関数に対する制約条件、および再構成画像で適用される新たなぼけ形状の指定条件が異なる。
【００８７】
本実施形態では、第２実施形態で示す制約条件に加えてさらに、３次元ぼけ関数の形状を決定するｋ（ｓ，ｔ）と、再構成画像に反映される新たなぼけ形状を決定するｌ（ｓ，ｔ）に対して、制約を与える。
【００８８】
まず、ｋ（ｓ，ｔ）に与える制約について説明を行う。本実施形態では、ｋ（ｓ，ｔ）が原点（ｓ，ｔ）＝（０，０）に対して点対称であるという制約を設定する。例えば図２０に示すように、絞り１４０３が平行四辺形である場合が、本実施形態の制約に該当する。この場合、フィルタＣに対しては
【数１９】
2017021425.tif 000021
が成り立つことが分かる（途中の導出過程は省略）。
【００８９】
次に、ｌ（ｓ，ｔ）に与える制約について説明を行う。本実施形態では、ｌ（ｓ，ｔ）もｋ（ｓ，ｔ）と同様に、原点に対して点対称であるという制約を設定する。ｌ（ｓ，ｔ）の具体的な形状は、上記の原点対称性を満たしていれば何でも良い。ただし、ｋ（ｓ，ｔ）がほぼゼロになる（ｓ，ｔ）に対しては、ｌ（ｓ，ｔ）の値もゼロにしておくのが好ましい。これは第３実施形態でも述べた通りである。
【００９０】
上述の通り、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらも原点対称性を持つ場合、
【数２０】
2017021425.tif 000022
とおくと、式（４）は
【数２１】
2017021425.tif 000023
と変形できる。ただし、右辺第２式から第３式の変形は、式（１９）とｌ（ｓ，ｔ）の原点対称性を用いた。
【００９１】
この式（２１）を実数部について書けば、
【数２２】
2017021425.tif 000024
となり、ｔ方向の和のループ数が１／２になるため、演算量も約１／２に削減できることが分かる。ただし、メモリ使用量については、特に削減効果はない。
【００９２】
また、式（２１）を虚数部について書けば、
【数２３】
2017021425.tif 000025
となり、全て打ち消しあってゼロになることが分かる。つまりこの場合、虚数部についてはメモリを確保しておく必要がない。
【００９３】
図２１に、本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図８のステップＳ８０４が、ステップＳ２１０１〜Ｓ２１０９の処理に置き換わる。
以下、ｔとｓに関する２重ループ（Ｓ２１０１〜Ｓ２１０９、Ｓ２１０２〜Ｓ２１０８）の内部の処理についてのみ説明を行う。
【００９４】
まず、フィルタ計算部４０５が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２１０３）。ステップＳ２１０３の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに原点対称であるかどうかを判定する（条件判定Ｓ２１０４）。ステップＳ２１０３もしくはＳ２１０４の判定結果が偽であれば、フィルタ計算部４０５は、式（４）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ２１０６）、２重ループ内の処理を終わる。
【００９５】
ステップＳ２１０４の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｓが０以上でｔが０、またはｔが正であるかどうかを判定する（条件判定Ｓ２１０５）。ステップＳ２１０５の判定結果が真である場合は、フィルタ計算部４０５は、式（２２）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ２１０７）、２重ループ内の処理を終わる。ステップＳ２１０５の判定結果が偽である場合は、式（２２）および式（２３）に基づいて演算量を削減できるため、そのまま２重ループ内の処理を終わる。
以上で、図２１の説明を終了する。
【００９６】
（畳み込み和計算時のフィルタＨの参照処理）
図２２に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【００９７】
まず、畳み込み演算部４０６が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２２０１）。ステップＳ２２０１の結果が真であれば、引き続き畳み込み演算部４０６が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに原点対称であるかどうかを判定する（条件判定Ｓ２２０２）。ステップＳ２２０１もしくはＳ２２０２の判定結果が偽であれば、畳み込み演算部４０６は、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ２２０３）、図２２の処理を終了する。ステップＳ２２０２の判定結果が真であれば、畳み込み演算部４０６が、すでに式（２２）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２２０４）。Ｓ２２０４の次は、ｈｔｍｐの虚数部にゼロを代入し（ステップＳ２２０５）、図２２の処理を終了する。
以上で、図２２の説明を終了する。
【００９８】
なお、本実施形態では、ｋ（ｓ，ｔ）が原点対称性を持つ場合について述べたが、他にも任意の直交する２軸に対する対称性や、原点に対する回転対称性を持っていれば、式（
１９）が成り立つ（導出過程は省略）ことが分かる。よって、その場合でも本実施形態で述べた演算量およびメモリ使用量削減効果が期待できる。さらに、仮にｋ（ｓ，ｔ）とｌ（ｓ，ｔ）の制約の関係が完全に逆であっても、本実施形態における効果が期待できる。
【００９９】
以上に述べたように、本実施形態によれば、第２実施形態における制約条件に加えて、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）が原点対称性を持つという制約を与えることで、フィルタＨの演算量を約１／４（実数部は約１／２、虚数部はゼロ）に削減できる。同時に、メモリ使用量についても最大で約１／２（実数部はそのまま、虚数部はゼロ）に削減できる。なお、本実施形態で述べた方法は、第１実施形態および第２実施形態で述べた方法と完全に共存させることが可能である。この場合は、第１実施形態および第２実施形態における削減効果に加えて、さらに本実施形態による削減効果を得ることができる。
【０１００】
＜第５実施形態＞
本発明の第５実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第３実施形態ものと同様である。ただし、３次元ぼけ関数に対する制約条件、および再構成画像で適用されるぼけ味の指定条件が異なる。
【０１０１】
本実施形態では、第２実施形態で示す制約条件に加えてさらに、３次元ぼけ関数の形状を決定するｋ（ｓ，ｔ）と、再構成画像に反映される新たなぼけ形状を決定するｌ（ｓ，ｔ）に対して、制約を与える。具体的には、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに、原点（ｓ，ｔ）＝（０，０）を通りかつ直交する任意の２軸に対して対称であり、かつその２軸がｋ（ｓ，ｔ）とｌ（ｓ，ｔ）で一致するという制約を与える。
【０１０２】
例として、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｓ軸とｔ軸に対して対称である場合を考えると、式（４）は、
【数２４】
2017021425.tif 000026
と計算できる。ただし、右辺第１式から第２式の変形では、ｋ（ｓ，ｔ）のｓ軸およびｔ軸対称性から導かれる式（１６）の関係と、ｌ（ｓ，ｔ）のｓ軸およびｔ軸対称性を用いた。この式（２４）より、本実施形態ではフィルタＨ（ｎ）（ｕ，ｖ）の虚数部は常にゼロとなることが分かる。
【０１０３】
また、
【数２５】
2017021425.tif 000027
【数２６】
2017021425.tif 000028
【数２７】
2017021425.tif 000029
も成り立つことが分かるため、結局は、
【数２８】
2017021425.tif 000030
となり、フィルタＨ（ｎ）（ｕ，ｖ）はｕ軸およびｖ軸に対して対称性を持つことが分かる。
【０１０４】
これらの結果を総合すると、フィルタＨの実数部についてはｕ≧０かつｖ≧０の領域の
みメモリに保持しておけばよい。残りの領域が必要になった場合はすでに保持されているフィルタ値をそのまま利用することで、演算量およびメモリ使用量を約１／４に削減することが可能になる。また、虚数部については常にゼロであると分かっているため、演算およびメモリは一切必要ない。
【０１０５】
すでに図１７において、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに同じ１軸について対称である場合の、フィルタＨが使用するメモリ領域の模式図を示した。本実施形態においても、この模式図は使用することができる。図１７の各領域中の番号および記号が示すメモリの対応関係もそのまま使用できるが、本実施形態では第３実施形態とは異なり、領域１７０２〜１７０４におけるフィルタＨの値は全て、領域１７０１の値をそのまま参照することで代用することが可能である。
【０１０６】
図２３に、本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図８のステップＳ８０４が、ステップＳ２３０１〜Ｓ２３０９の処理に置き換わる。
以下、ｔとｓに関する２重ループ（Ｓ２３０１〜Ｓ２３０９、Ｓ２３０２〜Ｓ２３０８）の内部の処理についてのみ説明を行う。
【０１０７】
まず、フィルタ計算部４０５が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２３０３）。ステップＳ２３０３の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｓ軸およびｔ軸の２軸に対して対称であるかどうかを判定する（条件判定Ｓ２３０４）。ステップＳ２３０４の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｕとｖの値がともに０以上であるかどうかを判定する（条件判定Ｓ２３０５）。
【０１０８】
ステップＳ２３０５の判定結果が真であれば、フィルタ計算部４０５が、式（４）の実数部の計算を実行し、その結果を記憶部３０２に格納する（ステップＳ２３０６）。ステップＳ２３０５の判定結果が偽である場合は、式（２４）および式（２８）に基づいて演算量を削減できるため、そのまま２重ループ内の処理を終わる。
【０１０９】
ステップＳ２３０３またはＳ２３０４の判定結果が偽であれば、フィルタ計算部４０５は、式（４）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ２３０７）、２重ループ内の処理を終わる。
以上で、図２３の説明を終了する。
【０１１０】
（畳み込み和計算時のフィルタＨの参照処理）
図２４に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【０１１１】
まず、畳み込み演算部４０６が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２４０１）。ステップＳ２４０１の結果が真であれば、引き続き畳み込み演算部４０６が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともにｓ軸対称かつｔ軸対称であるかどうかを判定する（条件判定Ｓ２４０２）。ステップＳ２４０２の判定結果が真であれば、引き続き畳み込み演算部４０６が、ｕとｖの値の範囲を判定する（条件判定Ｓ２４０３〜Ｓ２４０５）。
【０１１２】
ステップＳ２４０３とＳ２４０４の判定結果がともに真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕ，ｖ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２４０６）。ステップＳ２４０３の判定結果が真で、かつステップＳ２４０４の判定結果が偽であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕ，−ｖ）の実数部を取得し、その結
果をｈｔｍｐの実数部に代入する（ステップＳ２４０７）。ステップＳ２４０３の判定結果が偽で、かつステップＳ２４０５の判定結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（−ｕ，ｖ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２４０８）。ステップＳ２４０３とＳ２４０５の判定結果がともに偽であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（−ｕ，−ｖ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２４０９）。ステップＳ２４０６〜Ｓ２４０９の後は、ｈｔｍｐの虚数部にゼロを代入し（ステップＳ２４１０）、図２４の処理を終了する。
【０１１３】
ステップＳ２４０１もしくはＳ２４０２の判定結果が偽であれば、畳み込み演算部４０６は、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ２４１１）、図２４の処理を終了する。
以上で、図２４の説明を終了する。
【０１１４】
なお、本実施形態では、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらもｓ軸対称かつｔ軸対称である場合について述べたが、これらの対称軸はｓ軸およびｔ軸と一致している必要はなく、原点を通れば任意の直交する２軸を取って良い。最低限必要なのは、ｋ（ｓ，ｔ）の対称軸とｌ（ｓ，ｔ）の対称軸が一致するという条件のみである。しかしその場合であっても、実用上はｋ（ｓ，ｔ）およびｌ（ｓ，ｔ）の対称軸を適切に回転させ、ｓ軸およびｔ軸に一致させておく方が、処理の簡便さの面からも好ましい。ちなみに、ｋ（ｓ，ｔ）が原点（ｓ，ｔ）＝（０，０）に対して回転対称性を持つ場合、ｋ（ｓ，ｔ）の対称軸は無数に存在するので、この場合はｌ（ｓ，ｔ）が任意の直交する２軸に対して対称でさえあれば、本実施形態で述べた効果を得ることができる。また、このｋ（ｓ，ｔ）とｌ（ｓ，ｔ）の制約の関係が逆になっていても、問題なく本実施形態の効果が期待できる。
【０１１５】
以上に述べたように、本実施形態によれば、第２実施形態における制約条件に加えて、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに原点を通る直交２軸に対する対称性を持つという制約を与える。これにより、フィルタＨの演算量およびメモリ使用量を約１／８（実数部は約１／４、虚数部はゼロ）に削減できる。なお、本実施形態で述べた方法は、第１実施形態で述べた方法と完全に共存させることが可能である。この場合は、第１実施形態における削減効果に加えて、本実施形態による削減効果を得ることができる。さらに、本実施形態における制約は第４実施形態における制約を包含するため、第４実施形態による削減効果も同時に期待できる。
【０１１６】
＜第６実施形態＞
本発明の第６実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第３実施形態ものと同様である。ただし、３次元ぼけ関数に対する制約条件、および再構成画像で適用されるぼけ味の指定条件が異なる。
【０１１７】
本実施形態では、第２実施形態で示す制約条件に加えてさらに、３次元ぼけ関数の形状を決定するｋ（ｓ，ｔ）と、再構成画像に反映される新たなぼけ形状を決定するｌ（ｓ，ｔ）に対して、制約を与える。具体的には、まずｋ（ｓ，ｔ）に対しては、原点（ｓ，ｔ）＝（０，０）に対する回転対称性
【数２９】
2017021425.tif 000031
を与える。ただし、θは原点を中心とした反時計方向の回転量である。この場合、フィルタＣに対しては
【数３０】
2017021425.tif 000032
が成り立つことが分かる（途中の導出過程は省略）。
【０１１８】
また、ｌ（ｓ，ｔ）に対しても、ｋ（ｓ，ｔ）と同じ回転対称性
【数３１】
2017021425.tif 000033
を制約として与える。
【０１１９】
ただし、実際のプログラム上でこの回転対称性式（２９）〜式（３１）を成り立たせるためには、（ｓ，ｔ）空間の離散点も回転対称性を持つ必要がある。よって、本実施形態においては、（ｓ，ｔ）空間を極座標系として離散化するのが好ましい。図２５に、極座標系による離散化の模式図を示す。以降の説明では、（ｓ，ｔ）空間の離散化として図２５に基づく離散化を用いることにする。
【０１２０】
この時、ＮｘとＮｙが等しいと仮定してＮｘ＝Ｎｙ＝Ｎ０とおくと、式（４）から、
【数３２】
2017021425.tif 000034
が導かれる。つまり、フィルタＨ（ｎ）（ｕ，ｖ）も原点（ｕ，ｖ）＝（０，０）に対する回転対称性を持つことが分かる。
【０１２１】
図２６は、そのイメージを示す模式図である。２６０１は、ｎをある値に固定した時のフィルタＨ（ｎ）（ｕ，ｖ）が占める領域である。２６０２は、実際にデータをメモリに格納しておく必要がある領域である。２６０３は、２６０２をｕ軸に対して反転させることで値を参照できる領域である。２６０４は、２６０２を参照することによって、フィルタＨの値を代用可能な領域である。２６０５は、２６０３を参照することによって、ゆえに間接的に２６０２を参照することによって、フィルタＨの値を代用可能な領域である。これらの参照に際しては座標の回転処理が必要になるため、図に示す通り２６０２は、２６０１と比較してｕ方向に余分な領域を確保し、その位置におけるフィルタ値を計算しておく必要がある。また、この回転処理では座標変換演算が必要となるため、その分の演算量は増加する。
【０１２２】
このように、上記の処理を行えば、実数部については演算量およびメモリ使用量を最大でθ／４πに削減することが可能になる。また、虚数部については、第４実施形態および第５実施形態と同じく常にゼロであると分かっているため、演算およびメモリは一切必要ない。なお、仮に（ｓ，ｔ）座標系を等間隔直交座標系で離散化した場合は、θ＝π／２となるため、上記処理で得られる削減効果は第５実施形態と同じく最大で１／８（実数部）となる。
【０１２３】
図２７に、本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図８のステップＳ８０４が、ステップＳ２７０１〜Ｓ２７０９の処理に置き換わる。
以下、ｔとｓに関する２重ループ（Ｓ２７０１〜Ｓ２７０９、Ｓ２７０２〜Ｓ２７０８）の内部の処理についてのみ説明を行う。
【０１２４】
まず、フィルタ計算部４０５が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２７０３）。ステップＳ２７０３の判定結果が真であれば、引き続きフィルタ計算部４０５が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がどちらも原点に対して回転対称性を持つかどうかを判定する（条件判定Ｓ２７０４）。ステップＳ２７０４の判定結果が真であれば、引き続きフィルタ計算部４０５が、（ｕ，ｖ）が領域２６０２内に存在するかどうかを判定する（条件判定Ｓ２７０５）。
【０１２５】
ステップＳ２７０５の判定結果が真であれば、フィルタ計算部４０５が、式（４）の実数部の計算を実行し、その結果を記憶部３０２に格納する（ステップＳ２７０６）。ステップＳ２７０５の判定結果が偽である場合は、式（３２）に基づいて演算量を削減できるため、そのまま２重ループ内の処理を終わる。
【０１２６】
ステップＳ２７０３またはＳ２７０４の判定結果が偽であれば、フィルタ計算部４０５は、式（４）の計算を実行してその結果を記憶部３０２に格納し（ステップＳ２７０７）、２重ループ内の処理を終わる。
以上で、図２７の説明を終了する。
【０１２７】
（畳み込み和計算時のフィルタＨの参照処理）
図２８に、上記演算量削減処理を適用した場合の、ステップＳ９０６の詳細な計算手順を示す。
【０１２８】
まず、畳み込み演算部４０６が、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して式（１０）が成立しているかどうかを判定する（条件判定Ｓ２８０１）。ステップＳ２８０１の結果が真であれば、引き続き畳み込み演算部４０６が、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに原点に対する回転対称性を持つかどうかを判定する（条件判定Ｓ２８０２）。ステップＳ２８０２の判定結果が真であれば、引き続き畳み込み演算部４０６が、点（ｕ，ｖ）が領域２６０２もしくは２０６３内に存在するかどうかを判定する（条件判定Ｓ２８０３）。ステップＳ２８０３の判定結果が真であれば、引き続き畳み込み演算部４０６が、点（ｕ，ｖ）が領域２６０２内に存在するかどうかを判定する（条件判定Ｓ２８０４）。
【０１２９】
ステップＳ２８０４の判定結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕ，ｖ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２８０６）。ステップＳ２８０４の判定結果が偽であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕ，−ｖ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２８０７）。ステップＳ２８０３の判定結果が偽であれば、畳み込み演算部４０６が、点（ｕ，ｖ）を−θ方向に回転させた点が領域２６０２内に存在するかどうかを判定する（条件判定Ｓ２８０５）。
【０１３０】
ステップＳ２８０５の判定結果が真であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕｃｏｓｍθ＋ｖｓｉｎｍθ，−ｕｓｉｎｍθ＋ｖｃｏｓｍθ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２８０８）。なお、ここでｍは、点（ｕ，ｖ）が回転操作によって領域２６０２内に入るよう選択される整数である。図２６を例にとると、ｍ＝３である。ステップＳ２８０５の判定結果が偽であれば、畳み込み演算部４０６が、記憶部３０２にすでに格納されているＨ（ｎ）（ｕｃｏｓｍθ＋ｖｓｉｎｍθ，ｕｓｉｎｍθ−ｖｃｏｓｍθ）の実数部を取得し、その結果をｈｔｍｐの実数部に代入する（ステップＳ２８０９）。ステップＳ２８０６、Ｓ２８０７、Ｓ２８０８、およびＳ２８０９の後は、ｈｔｍｐの虚数部にゼロを代入し（ステップＳ２８１０）、図２８の処理を終了する。
【０１３１】
ステップＳ２８０１もしくはＳ２８０２の判定結果が偽であれば、畳み込み演算部４０６は、すでに式（４）に基づいて計算された結果を記憶部３０２から取得し、その結果をｈｔｍｐに代入して（ステップＳ２８１１）、図２８の処理を終了する。
以上で、図２８の説明を終了する。
【０１３２】
以上に述べたように、本実施形態によれば、第２実施形態における制約条件に加えて、ｋ（ｓ，ｔ）とｌ（ｓ，ｔ）がともに原点に対する回転対称性を持つという制約を与える。これにより、フィルタＨの演算量およびメモリ使用量を最大θ／８π（実数部は最大θ／４π、虚数部はゼロ）に削減できる。なお、本実施形態で述べた方法は、第１実施形態で述べた方法と完全に共存させることが可能である。この場合は、第１実施形態における削減効果に加えて、本実施形態による削減効果を得ることができる。さらに、本実施形態における制約は第４実施形態における制約を包含するため、第４実施形態による削減効果も同時に期待できる。
【０１３３】
＜第７実施形態＞
（制約の適用によるフィルタ演算量の削減（１））
本実施形態では、非特許文献１で示される深度制御手法を使用するに当たり、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）について、以下の式（３３）で表される制約を課す。
【数３３】
2017021425.tif 000035
【０１３４】
ここで、ｋ（ｓ，ｔ）は３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）を構成する光線群の重みを表わす係数であり、δはディラックのデルタ関数である。なお、ｋ（ｓ，ｔ）は、
【数３４】
2017021425.tif 000036
を満たすものとする。
【０１３５】
このｈ（ｘ，ｙ，ｚ）については、式（３３）より
【数３５】
2017021425.tif 000037
であることが分かるので、式（３３）の制約を課すことにより、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）は合焦位置すなわち原点（ｘ，ｙ，ｚ）＝（０，０，０）に対して点対称性を持つことが分かる。
【０１３６】
また、ｈ（ｘ，ｙ，ｚ）のフーリエ変換Ｈ（ｕ，ｖ，ｚ）に対しては、式（２）と式（
３３）を用いれば原点（ｕ，ｖ，ｚ）＝（０，０，０）に対する対称性
【数３６】
2017021425.tif 000038
が成り立つことが導かれる。加えて、Ｈ（ｕ，ｖ，ｚ）の実数部と虚数部をそれぞれＲｅ［Ｈ（ｕ，ｖ，ｚ）］，Ｉｍ［Ｈ（ｕ，ｖ，ｚ）］と表すことにすれば、
【数３７】
2017021425.tif 000039
【数３８】
2017021425.tif 000040
であることも分かる。
【０１３７】
これら式（３６）〜式（３８）を用い、かつＮが奇数でｚを−（Ｎ−１）／２≦ｚ≦（Ｎ−１）／２（ｚは整数）とする制約を課せば、ｋ（ｓ，ｔ）が原点対称であれば式（３）からＣｓ，ｔ（ｕ，ｖ）を計算する際、式中の虚数部は全て打ち消しあってゼロになるため、結局式（３）は、
【数３９】
2017021425.tif 000041
と変形できる。つまり、実数部の演算量が約半分、かつ虚数部の演算量がゼロになることで、制約を課さない場合と比較して、Ｃｓ，ｔ（ｕ，ｖ）の演算量を約１／４にすることができる。
【０１３８】
（制約の適用によるフィルタ演算量の削減（２））
さらに、式（３７）と、式（３９）のｃｏｓ関数部の性質
【数４０】
2017021425.tif 000042
を用いれば、フィルタＣｓ，ｔ（ｕ，ｖ）について、ｓおよびｔの値にかかわらずその形状に対して原点対称性
【数４１】
2017021425.tif 000043
が成り立つことが示される。
【０１３９】
これを利用すれば、例えばｓとｔをある値に固定した時のフィルタＣｓ，ｔ（ｕ，ｖ）に対して、以下のような演算量およびメモリ使用量の削減ができる。
【０１４０】
今、ｕ方向とｖ方向の配列インデックスをそれぞれｐ（ｐ＝０，１，・・・，Ｎｘ−１）とｑ（ｑ＝０，１，・・・，Ｎｙ−１）とし、Ｃｓ，ｔ［ｐ，ｑ］がＮｘ×Ｎｙの要素数を持つ実数配列（虚数部はゼロになるのでメモリ確保しなくて良い）であるとする。ただし、ｕとｐとの関係は、０≦ｐ＜Ｎｘ／２＋１の時にｕ＝ｐ、Ｎｘ／２＋１≦ｐ≦Ｎｘ
−１の時にｕ＝ｐ−Ｎｘであるとする。これと同様にｖとｑとの関係は、０≦ｑ＜Ｎｙ／２＋１の時にｖ＝ｑ、Ｎｙ／２＋１≦ｑ≦Ｎｙ−１の時にｖ＝ｑ−Ｎｙであるとする。この時、式（４１）から
【数４２】
2017021425.tif 000044
が成り立つので、Ｃｓ，ｔ［ｐ，ｑ］の計算に必要な演算量と使用メモリ容量を約１／２に減らすことができる。より正確には、１／２＋１／Ｎｙに減らすことができる。その例を図２９に示す。図２９は、Ｎｘ＝Ｎｙ＝８とした時の、フィルタＣｓ，ｔ［ｐ，ｑ］が使用するメモリ領域の模式図である。実線で囲った領域２９０１は実際にメモリ上に確保される領域であり、破線で囲った領域２９０２は前記対称性を利用することで容量削減できる領域である。この例ではＮｙ＝８なので、演算量とメモリ使用量は１／２＋１／８＝５／８に減らすことができる。
【０１４１】
なお、この削減効果はｓやｔの値によらない。よって、仮に（ｓ，ｔ）座標系をｓ方向にＮｓ分割、ｔ方向にＮｔ分割した場合、何も制約を課さない場合と比べると、フィルタＣの全メモリ使用量はＮｘ×Ｎｙ×４×２×Ｎｓ×ＮｔからＮｘ×（Ｎｙ／２＋１）×４×Ｎｓ×Ｎｔまで減少し、約１／４となる。ただし、フィルタＣを単精度実数配列と想定した。演算量についても同様で、約１／４まで減少する。また、本実施形態ではｑ方向に対して削減を行ったが、ｐ方向に対して同様の削減を行っても全く差し支えなく、得られる効果も全く同様である。ただし、ＧＰＵに対して実装を行う場合は、ハードウェアの特性上ｑ方向に対して削減を行った方が好ましい場合もある。
【０１４２】
（フィルタ演算量削減処理のまとめ）
図３０に、ここまで説明した本実施形態におけるフィルタ演算量削減処理の流れを示す。本実施形態では、図７のステップＳ７０５が、ステップＳ３００１〜Ｓ３００３の処理に置き換わる。
【０１４３】
まず、フィルタ計算部４０５が３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に対して、原点すなわち合焦位置に対する対称性があるかどうかを判定する（条件判定Ｓ３００１）。ステップＳ３００１の判定結果が真であれば、フィルタ計算部４０５が、引き続きｖの値が０以上であるかどうかを判定する（条件判定Ｓ３００２）。ステップＳ３００２の判定結果が真であれば、フィルタ計算部４０５は、式（３９）の計算を実行する（ステップＳ３００３）。ステップＳ３００２の判定結果が偽である場合は、式（４２）に基づいて演算量を削減できるため、そのまま図３０の処理を終わる。なお、ステップＳ３００１の判定結果が偽であれば、フィルタ計算部４０５は、式（３）の計算を行い（ステップＳ３００４）、図３０の処理を終わる。
以上で、図３０の説明を終了する。
【０１４４】
以上に述べたように、本実施形態によれば、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）に合焦位置すなわち原点に対する対称性を持つような制約を与える。これにより、フィルタＣｓ，ｔ（ｕ，ｖ）の計算において、その演算量を約１／４（実数部１／２、虚数部ゼロ）、メモリ使用量を約１／２に低減させることができる。さらに、Ｃｓ，ｔ（ｕ，ｖ）の実数部が原点（ｕ，ｖ）＝（０，０）に対して対称性を持つことを利用することで、さらにその演算量およびメモリ使用量を約１／２に低減させることができる。最終的には、制約を与えない場合と比較して、フィルタＣの演算量を約１／８、メモリ使用量を約１／４まで削減させることができる。ひいては、この削減効果により、より低スペックな計算機においても、所望の再構成画像を手軽に生成することが可能になる。
【０１４５】
＜第８実施形態＞
本発明の第８実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第７実施形態ものと同様であるが、３次元ぼけ関数に対する制約条件が異なる。
【０１４６】
本実施形態では、第７実施形態で示す制約条件に加えてさらに、ｋ（ｓ，ｔ）が以下の式で表される２次元ガウス関数
【数４３】
2017021425.tif 000045
であるとする。この時のｋ（ｓ，ｔ）は、明らかに原点（ｓ，ｔ）＝（０，０）に対する回転対称性を持つ。この制約を与えることにより、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）は
【数４４】
2017021425.tif 000046
と表わされ、任意のｘｙ面において原点を中心とする回転対称性を持つことになる。また、そのフーリエ変換Ｈ（ｕ，ｖ，ｚ）も、任意のｕｖ面において原点を中心とする回転対称性を持つことになる。
【０１４７】
さらに、式（３９）のｃｏｓ関数部に着目する。このｃｏｓ関数部は、ｔａｎθ＝ｔ／ｓとすると、ｃｏｓ（２πｒｚ）を原点に対して反時計回りにθだけ回転させたものと等しい。ただし、ｒは原点から＋ｕ方向に進むベクトルの大きさであるとし、ｒ＝（ｕ／Ｎｘ）ｃｏｓθ＋（ｖ／Ｎｙ）ｓｉｎθを満たすものとする。この模式図を、図３１Ａ、図３１Ｂに示す。図３１Ａが回転させる前のｃｏｓ（２πｒｚ）の図であり、図３１Ｂが図３１Ａを反時計回りにθだけ回転させた図である。このｃｏｓ（２πｒｚ）は、図３１Ａからも分かる通り、明らかにｕｖ両軸に対して対称であり、Ｐ１，Ｐ２，Ｐ３，Ｐ４におけるｃｏｓ関数の値は全て等しい。また、これを反時計回りにθだけ回転させると、Ｐ１はＰ１’に、Ｐ２はＰ２’に、Ｐ３はＰ３’に、Ｐ４はＰ４’に、それぞれ移動する。よって、図３１ＢにおいてはこれらＰ１’〜Ｐ４ ’におけるｃｏｓ関数部分の値は等しく
なる。より詳しく言い表すと、式（３９）のｃｏｓ関数部分は、（ｕ，ｖ）空間において直線ｖ＝（ｔ／ｓ）ｕとそれに直交する直線ｖ＝−（ｓ／ｔ）ｕの２軸に対して対称となる。
【０１４８】
これらを総合すると、ｋ（ｓ，ｔ）が式（４３）で与えられる時、Ｃｓ，ｔ（ｕ，ｖ）の形状も、式（３９）のｃｏｓ関数部と同じく（ｕ，ｖ）空間において直線ｖ＝（ｔ／ｓ）ｕとそれに直交する直線ｖ＝−（ｓ／ｔ）ｕの２軸に対して対称となる。これを利用すれば、フィルタＣｓ，ｔ（ｕ，ｖ）を求める際、実際の計算は例えばｖ＞（ｔ／ｓ）ｕかつｖ＞−（ｓ／ｔ）ｕの領域（以下、この領域を領域１と記す）のみに限定することが可能になる。それ以外の領域におけるフィルタの値は、随時現在の（ｕ，ｖ）に対応する領域１内の点の値を参照すれば良い。なお、この参照の際、現在の（ｕ，ｖ）に対応する点が領域１内にそもそも存在しない可能性がある。その一例を、図３２に示す。３２０１は、計算をせずに領域１における値を利用してフィルタ値を求めたい点である。それに対して３２０２は、３２０１と軸対称の関係にあるがフィルタ値が計算されていない点である。このような状況を避けるためには、領域１の計算時に通常よりも広い領域について、余分に計算を行っておく必要がある。図３２で言えば、破線で囲った領域３２０３がその余分な領域に相当する。
【０１４９】
以上に述べたように、本実施形態によれば、第７実施形態における制約条件に加えて、ｋ（ｓ，ｔ）に対して回転対称性を持つような制約を与える。これにより、フィルタＣの形状に対称性を生じさせ、それによりフィルタの計算量を削減することができる。具体的には、例えばｖ＞（ｔ／ｓ）ｕかつｖ＞−（ｓ／ｔ）ｕの領域のフィルタ値のみ計算をしておき、残りの領域の値については上記領域の値を参照するようにすれば、Ｃｓ，ｔ（ｕ，ｖ）の実数部について演算量を最大１／４まで削減することが可能になる。つまり、第７実施形態に比べ演算量がさらに１／２になる。
【０１５０】
＜第９実施形態＞
本発明の第９実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズム、および３次元ぼけ関数に対する制約条件は第８実施形態と同様であるが、フィルタ計算量の削減方法が異なる。
【０１５１】
第８実施形態では、例えばｓとｔをある値に固定した時の、フィルタＣｓ，ｔ（ｕ，ｖ）の計算領域を最大１／４まで削減する方法について説明した。それに対して本実施形態では、ある（ｓ，ｔ）におけるフィルタＣｓ，ｔ（ｕ，ｖ）の値全てを、別の（ｓ’，ｔ’）におけるフィルタＣｓ’，ｔ’（ｕ，ｖ）から参照することで、計算量を削減する手法について説明する。
【０１５２】
本実施形態では、ｓ＞＝０かつｔ＝０となるいくつかの離散点（ｓ，ｔ）についてフィルタＣをあらかじめ計算して記憶部３０２に格納しておく。そして、他の点（ｓ，ｔ）に対応するフィルタが必要になった場合は、記憶部３０２に記憶されたフィルタＣの値を回転させることで求める。例えば（ｓ，ｔ）＝｛（ｓ１，０），（ｓ２，０），（ｓ３，０）｝に対応するフィルタＣｓ１，０（ｕ，ｖ），Ｃｓ２，０（ｕ，ｖ），Ｃｓ３，０（ｕ，ｖ）をあらかじめ記憶部３０２に用意する。そして、例えば（ｓ，ｔ）＝（ｓ１ｃｏｓθ，ｓ１ｓｉｎθ）となる（ｓ，ｔ）に対しては、フィルタＣｓ１ｃｏｓθ，ｓ１ｓｉｎθ（ｕ，ｖ）の値を、Ｃｓ１，０（ｕ，ｖ）を反時計回りにθだけ回転させることで得る。このような操作を行えば、ｓ＞＝０かつｔ＝０の時のフィルタＣだけをメモリに格納しておけばよいので、特に３次元ぼけ関数に制約を与えない場合に比べて、メモリ使用量を大幅に削減できる。
【０１５３】
ただし実際には、（ｕ，ｖ）の値によっては、ただ回転操作を行っただけでは所望のフィルタ値を参照できないことが起こり得る。その例を図３３に示す。３３０１は、参照元となるフィルタ値である。それに対し３３０２は、実際の計算を省略して、参照元の回転操作のみで値を求めたいフィルタの領域である。図３３で示す例では、３３０１は３３０２が必要とする領域を完全にはカバーできていない。よってこの場合は、３３０１の領域を広げて、３３０２を完全にカバーできるようにしておく必要がある。
【０１５４】
また、（ｓ，ｔ）空間の離散化の仕方によっては、そもそも（ｓ，ｔ）の値が（ｓ，ｔ）＝（ｓ１ｃｏｓθ，ｓ１ｓｉｎθ）という関係にならない場合もある。その例を図３４に示す。図３４では（ｓ，ｔ）空間を４９個の点で離散化している。そして、図の黒丸が参照元としてフィルタの実データを用意している点であり、白丸がフィルタの実データを持たず、離散点の参照によって実データを代用する点である。離散点３４０１は、原点（ｓ，ｔ）＝（０，０）を中心に−９０度回転を行うことで、離散点３４０２と一致させることができる。よってこの場合は、離散点３４０１に対応するフィルタデータとして、すでに用意してある離散点３４０２のフィルタデータを利用することができる。しかし、離散点３４０３については、回転操作を行ってもｓ軸上に対応する離散点が存在しないので、あらかじめ用意しておいたフィルタデータを参照することができない。この場合は、例
えば離散点３４０２に対応するフィルタデータと離散点３４０４に対応するフィルタデータを用いて、全ての（ｕ，ｖ）において両者から補間処理を行い、それを離散点３４０３に対応するフィルタデータとするなどの処理が必要となる。しかしこの場合は、補間処理によって誤差が発生するため、その誤差を最小限に留めるように数多くのフィルタデータを用意しておく必要がある。
【０１５５】
もしくは、（ｓ，ｔ）空間を極座標系で離散化しておくとよい。図３５に示すように、原点を中心とする同心円上に等角度で離散点を配置すると、上記のような参照する離散点が存在しないという問題が発生しない。例えば離散点３５０２に対応するフィルタデータとして、離散点３５０１のフィルタデータを利用することができる。図３５の例では、原点からの距離が同じ離散点は全て、回転操作によりｓ軸上の黒丸で示す離散点に一致させることができる。この場合、フィルタ計算のための演算量とメモリ使用量は、最大で約１／１６になる。ただし、フィルタデータを参照するための座標回転演算が新たに必要となるため、実際の演算量はもう少し増加する。
【０１５６】
以上に述べたように、本実施形態によれば、第７実施形態における制約条件に加えて、ｋ（ｓ，ｔ）に対して回転対称性を持つような制約を与える。これにより、フィルタＣの生成数を減らし、それによりフィルタの計算量とメモリ使用量を削減することができる。具体的には、例えば（ｓ，ｔ）がｓ＞＝０かつｔ＝０である場合はフィルタデータを生成してメモリに格納しておき、それ以外の（ｓ，ｔ）については、メモリに格納してあるフィルタデータを回転させたものをフィルタとして使用する。本実施形態を用いる場合は、図３５で説明したように（ｓ，ｔ）空間を極座標系として離散化するのが好ましい。この場合、回転方向の分割単位がθ［ｒａｄ］であれば、その演算量およびメモリ削減効果は最大でθ／２πとなる。
【０１５７】
＜第１０実施形態＞
本発明の第１０実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズム、および３次元ぼけ関数に対する制約条件は第９実施形態と同様であるが、フィルタ計算量の削減方法が異なる。
【０１５８】
第９実施形態では、限られた（ｓ，ｔ）についてのみフィルタＣｓ，ｔ（ｕ，ｖ）を計算しておき、それ以外の（ｓ，ｔ）については、すでに計算しておいたフィルタＣｓ，ｔ（ｕ，ｖ）を回転させて用いる方法について述べた。しかし、すでに述べた通り、（ｓ，ｔ）空間を等間隔の直交座標系で離散化した場合は、この方法をうまく適用することができない。また、ＧＰＵ等の高速なプロセッサへの実装を考慮した場合、アーキテクチャの制約によって、計算速度が大きく低下する可能性がある。このような状況を鑑み、本実施形態では、（ｓ，ｔ）空間を等間隔の直交座標系で離散化した場合でも問題なく演算量およびメモリ使用量を削減でき、かつＧＰＵとの親和性も高い手法について述べる。
【０１５９】
本実施形態の概念を、図３６に示す。黒丸で示す離散点３６０１は、図３４〜図３５と同じく、フィルタデータを用意している点であり、白丸で示す離散点３６０２は、フィルタデータを用意していない点である。領域３６０３は、他の領域から必ず参照される領域である。例えば、領域３６０４に属している離散点は、それぞれを原点（ｓ，ｔ）＝（０，０）に対して−９０度回転させれば、全て領域３６０３に属する離散点のどれかに一致する。すなわち、領域３６０４に属する（ｓ，ｔ）については、領域３６０３に属する離散点に対応するフィルタデータを（ｕ，ｖ）空間で９０度回転させれば、領域３６０４に属する離散点において求めるべきフィルタＣの形状と完全に一致する。同様に、領域３６０５に属する（ｓ，ｔ）については、領域３６０３に属する離散点に対応するフィルタデータを（ｕ，ｖ）空間で１８０度回転させれば良い。また、領域３６０６に属する（ｓ，
ｔ）については、フィルタデータを（ｕ，ｖ）空間で２７０度回転させれば良い。さらに、第７実施形態の説明で述べたＣｓ，ｔ（ｕ，ｖ）の原点対称性式（３７）を考慮すれば、領域３６０５に属する（ｓ，ｔ）については、回転操作も行わなくて良い。ちなみにこの関係性は、領域３６０４と領域３６０６についても成立する。
【０１６０】
以上で述べた方法を用いれば、全てのフィルタＣｓ，ｔ（ｕ，ｖ）の演算量およびメモリ使用量を、約１／４まで削減することが可能になる。
【０１６１】
なお、本実施形態をＧＰＵに実装する場合は、上記９０度回転の処理がボトルネックになる可能性がある。よって、ＧＰＵの高速計算性能を担保したい場合は、領域３６０３に加えて領域３６０４についても、フィルタＣの実データを用意するのが好ましい。そうすれば、領域３６０５については回転操作を行わず領域３６０３のフィルタデータを利用することができるし、また領域３６０６についても回転操作を行わず領域３６０４のフィルタデータを利用することができる。これにより、フィルタデータの回転操作を一切行わなくて良くなる。その代わり、この場合の演算量およびメモリ使用量の削減効果は、約１／２に留まる。
【０１６２】
以上に述べたように、本実施形態によれば、（ｓ，ｔ）空間を等間隔直交座標系で離散化する場合でも、フィルタＣｓ，ｔ（ｕ，ｖ）の生成数を減らし、それによりフィルタの計算量とメモリ使用量を削減することができる。具体的には、例えば（ｓ，ｔ）が領域３６０３に属している場合はフィルタデータを生成してメモリに格納しておき、それ以外の（ｓ，ｔ）についてはメモリに格納してあるフィルタデータを回転させたものをフィルタとして使用する。これにより、フィルタＣの演算量およびメモリ使用量を約１／４にすることができる。また、ＧＰＵによって高速な計算を行う場合は、例えば（ｓ，ｔ）が領域３６０３および領域３６０４に属している場合のみフィルタデータを生成してメモリに格納しておくのが好ましい。ただし、この場合の演算量およびメモリ使用量の削減効果は、約１／２となる。なお、本実施形態で述べた方法は、第７実施形態で述べた方法と完全に共存させることが可能である。この場合は、演算量およびメモリ使用量のさらなる削減が可能である。
【０１６３】
＜第１１実施形態＞
本発明の第１１実施形態を、図に従って説明する。
画像生成システムの構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第７実施形態と同様であるが、画像入力装置の構成と、３次元ぼけ関数に対する制約条件が異なる。
本実施形態では、図１４に示される構成の画像入力装置１０１を用いる。この画像入力装置１０１の構成については第３実施形態ですでに説明したので、ここでは説明を省略する。
【０１６４】
本実施形態では、第７実施形態で示す制約条件に加えてさらに、ｋ（ｓ，ｔ）が任意の軸に対して対称であるという制約を設定する。例えば図１５に示すように、絞り１４０３が５角形であり、ｔ軸に対して対称である場合が、本実施形態の制約に該当する。一般的なデジタルカメラでは、絞りの形状は複数枚の絞り羽根によって決まるので、絞り羽根の枚数が５枚であれば、絞り形状は５角形となる。
【０１６５】
これをｋ（ｓ，ｔ）で実現するには、（ｓ，ｔ）空間の離散点１５０１の配置が少なくともｔ軸に対して対称であり、かつその上に定義される値もｔ軸に対して対称であり、さらにそれが絞り１４０３の形状を適切に表現する値になっている必要がある。値による表現方法としては、例えば絞り１４０３の内部を定数に、外部を全て０に設定する方法が考えられる。または、前述の値に対して、原点を中心とする２次元ガウス関数を掛ければ、
より現実に即した表現になると考えられる。ただし、全ての（ｓ，ｔ）におけるｋ（ｓ，ｔ）の値の和が１になるなどの正規化をしておくのが好ましい。
【０１６６】
上述のように、例えばｔ軸に対して対称なｋ（ｓ，ｔ）を用いれば、
【数４５】
2017021425.tif 000047
であるから、この式（４５）と式（３３）から、
【数４６】
2017021425.tif 000048
となり、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）もｙ軸に対して対称になることが分かる。この時、式（２）から
【数４７】
2017021425.tif 000049
が成り立つことが分かるので、結局、これと式（３９）を用いれば
【数４８】
2017021425.tif 000050
が成り立つことが分かる。これを用いれば、あるｓ’（ｓ’＞＝０）およびｔ’におけるフィルタＣｓ’，ｔ’（ｕ，ｖ）を保持しておけば、負のｓ座標に対応するフィルタデータは、このフィルタＣｓ’，ｔ’（ｕ，ｖ）のｕ座標を反転するだけで得られることになる。つまり、フィルタＣの演算量とメモリ使用量を最大で約１／２に削減することが可能になる。
【０１６７】
なお、上記の例ではｋ（ｓ，ｔ）がｔ軸対称であるとしたが、ｋ（ｓ，ｔ）がｓ軸対称の時には、フィルタＣのｖ座標を反転すれば同様の削減効果が得られる。また、ｓ軸やｔ軸に限らず、原理的にはｋ（ｓ，ｔ）が原点を通る任意の１軸に対して対称であれば、（ｕ，ｖ）に関して適切な座標反転をすることで、同様に演算量およびメモリ使用量を削減することが可能である。しかし、その場合でも実用上は座標軸を適切に回転させ、ｓ軸対称もしくはｔ軸対称となるようにする方が、処理の簡便さの面からも好ましい。
【０１６８】
以上に述べたように、本実施形態によれば、第７実施形態における制約条件に加えて、ｋ（ｓ，ｔ）が原点を通る任意の軸に対して対称性を持つ制約を与える。これにより、フィルタＣの演算量およびメモリ使用量を最大で約１／２に削減することが可能になる。ただしその際は、適切な（ｕ，ｖ）座標の反転操作を行う必要がある。なお、本実施形態で述べた方法は、第７実施形態で述べた方法と完全に共存させることが可能である。この場合は、第７実施形態における削減効果に加えて、さらに本実施形態による削減効果を得ることができる。
【０１６９】
＜第１２実施形態＞
本発明の第１２実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第１１実施形態と同様であるが、３次元ぼけ関数に対する制約条件が異なる。
【０１７０】
本実施形態では、第１１実施形態における制約条件の代わりに、ｋ（ｓ，ｔ）の形状が原点対称であるという制約を設定する。例えば図２０に示すように、絞り１４０３が平行四辺形である場合が、本実施形態の制約に該当する。これを式で表せば、
【数４９】
2017021425.tif 000051
である。ただし、第１１実施形態と同様に、（ｓ，ｔ）空間の離散化も原点に対して対称であり、かつその上に定義される値も原点に対して対称である必要がある。この時、
【数５０】
2017021425.tif 000052
となり、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）も任意のｘｙ面に対して原点対称になることが分かる。この時、式（２）から
【数５１】
2017021425.tif 000053
が成り立つことが分かるので、結局、これと式（３９）を用いれば
【数５２】
2017021425.tif 000054
が成り立つことが分かる。ただし、フィルタＣの形状は原点対称性（式（４１））を持つので、結局は、
【数５３】
2017021425.tif 000055
となる。これを用いれば、あるｓ’ （ｓ’＞＝０）およびｔ’におけるフィルタＣｓ’
，ｔ’（ｕ，ｖ）を保持しておけば、負のｓ座標に対応するフィルタデータは、フィルタＣｓ’，ｔ’（ｕ，ｖ）をそのまま参照するだけで得られることになる。つまり、フィルタＣの演算量とメモリ使用量を最大で約１／２に削減することが可能になる。この際は、第１１実施形態のような座標反転処理等は必要ない。
【０１７１】
以上に述べたように、本実施形態によれば、第７実施形態における制約条件に加えて、ｋ（ｓ，ｔ）が原点対称性を持つ制約を与えることで、フィルタＣｓ，ｔ（ｕ，ｖ）の演算量およびメモリ使用量を最大で約１／２に削減することが可能になる。なお、本実施形態で述べた方法は、第７実施形態で述べた方法と完全に共存させることが可能である。この場合は、第７実施形態における削減効果に加えて、さらに本実施形態による削減効果を得ることができる。
【０１７２】
＜第１３実施形態＞
本発明の第１３実施形態を、図に従って説明する。
画像生成システムの構成、画像入力装置の構成、画像生成装置のハードウェア構成および機能ブロック、深度制御処理のアルゴリズムは第１１実施形態と同様であるが、３次元ぼけ関数に対する制約条件が異なる。
【０１７３】
本実施形態では、第１１実施形態における制約条件の代わりに、ｋ（ｓ，ｔ）が任意の２軸に対して対称であるという制約を設定する。例えば図１６に示すように、絞り１４０３が６角形であり、ｓ軸およびｔ軸に対して対称である場合が、本実施形態の制約に該当する。一般的なデジタルカメラでは、絞り羽根の枚数が６枚であれば、絞り形状は６角形となる。
【０１７４】
上述のように、ｓ軸およびｔ軸に対して対称なｋ（ｓ，ｔ）を用いれば、
【数５４】
2017021425.tif 000056
である。ただし、第１１実施形態と同様に、（ｓ，ｔ）空間の離散点１６０１もｓ軸およびｔ軸に対して対称であり、かつその上に定義される値もｓ軸およびｔ軸に対して対称である必要がある。この式（５４）と式（３３）を用いれば、
【数５５】
2017021425.tif 000057
となり、３次元ぼけ関数ｈ（ｘ，ｙ，ｚ）もｘ軸およびｙ軸に対して対称となることが分かる。この時、式（２）から、
【数５６】
2017021425.tif 000058
が成り立つことが分かるので、結局、これと式（３９）を用いれば、
【数５７】
2017021425.tif 000059
が成り立つことが分かる。この性質を利用すれば、あるｓ’およびｔ’（ｓ’＞＝０，ｔ’＞＝０）におけるフィルタＣｓ’，ｔ’（ｕ，ｖ）を保持しておけばよい。ｓ座標が正かつｔ座標が負、またはｓ座標が負でｔ座標が正に対応するフィルタデータは、フィルタＣｓ’，ｔ’（ｕ，ｖ）のｕ座標またはｖ座標を反転するだけで得られる。また、負のｓ座標かつ負のｔ座標に対応するフィルタデータは、フィルタＣｓ’，ｔ’（ｕ，ｖ）をそのまま参照することで得られる。つまり、フィルタＣの演算量とメモリ使用量を最大で約１／４に削減することが可能になる。
【０１７５】
なお、上記の例ではｋ（ｓ，ｔ）がｓ軸およびｔ軸対称であるとしたが、原理的にはｋ（ｓ，ｔ）が原点を通る任意の２軸に対して対称であれば、（ｕ，ｖ）に関して適切な座標反転をすることで、同様に演算量およびメモリ使用量を削減することが可能である。しかし、その場合でも実用上は座標軸を適切に回転させ、ｓ軸およびｔ軸対称となるようにする方が、処理の簡便さの面からも好ましい。
【０１７６】
以上に述べたように、本実施形態によれば、第７実施形態における制約条件に加えて、ｋ（ｓ，ｔ）が原点を通る任意の２軸に対して対称性を持つ制約を与えることで、フィルタＣの演算量およびメモリ使用量を最大で約１／４に削減できる。ただしその際は、適切な（ｕ，ｖ）座標の反転操作を行う必要がある。なお、本実施形態で述べた方法は、第７実施形態で述べた方法と完全に共存させることが可能である。この場合は、第７実施形態における削減効果に加えて、さらに本実施形態による削減効果を得ることができる。
【０１７７】
＜他の実施形態＞
以上述べた実施例は本発明の一具体例を示したものにすぎず、本発明の範囲をそれらの具体例に限定する趣旨のものではない。
【０１７８】
例えば、第１から第６実施形態で示したフィルタＨの演算量削減方法と、第７から第１３実施形態で示したフィルタＣの演算量削減方法とを適宜組み合わせることもできる。また、技術的・数学的な矛盾がない限り、第１から第６実施形態で示したフィルタＨの演算量削減方法同士を組み合わせたり、第７から第１３実施形態で示したフィルタＣの演算量削減方法同士を組み合わせてもよい。複数の方法を組み合わせることで、より大きな削減効果を得ることができる。
【０１７９】
上記各実施形態では、非特許文献１のアルゴリズムに本発明を適用したが、本発明は、結像光学系の３次元ぼけ関数に基づく空間周波数フィルタを利用するアルゴリズムであれば、他のアルゴリズムにも好ましく適用できる。例えば、非特許文献２に開示されたアルゴリズムでは、フーリエ変換された焦点ぼけ画像群に対し光線分解フィルタＣを作用させることで、所望の光線（視点方向）に関わる視点画像を得ている。この光線分解フィルタＣを生成する処理に対し、例えば、第７から第１３実施形態で示した方法を適用することで、同様の作用効果を得ることができる。
【０１８０】
上述した画像処理装置の具体的な実装は、ソフトウェア（プログラム）による実装と、ハードウェアによる実装のいずれも可能である。例えば、画像処理装置に内蔵されたコンピュータ（マイコン、ＣＰＵ、ＭＰＵ、ＦＰＧＡ等）のメモリにコンピュータプログラムを格納し、当該コンピュータプログラムをコンピュータに実行させて、各処理を実現させてもよい。また、本発明の全部または一部の処理を論理回路により実現するＡＳＩＣ等の専用プロセッサを設けることも好ましい。また、本発明は、クラウド環境におけるサーバーにも適用可能である。
【０１８１】
また、例えば、記憶装置に記録されたプログラムを読み込み実行することで前述した実施形態の機能を実現するシステムや装置のコンピュータによって実行されるステップからなる方法によっても、本発明を実施することができる。この目的のために、上記プログラムは、例えば、ネットワークを通じて、又は、上記記憶装置となり得る様々なタイプの記録媒体（つまり、非一時的にデータを保持するコンピュータ読取可能な記録媒体）から、上記コンピュータに提供される。よって、上記コンピュータ（ＣＰＵ、ＭＰＵ等のデバイスを含む）、上記方法、上記プログラム（プログラムコード、プログラムプロダクトを含む）、上記プログラムを非一時的に保持するコンピュータ読取可能な記録媒体は、いずれも本発明の範疇に含まれる。
【符号の説明】
【０１８２】
１０２：画像生成装置、２０５：結像光学系、４０２：焦点ぼけ画像群入力部、４０５：フィルタ計算部、４０６：畳み込み演算部
【図１】
2017021425.tif 000060
【図２】
2017021425.tif 000061
【図３】
2017021425.tif 000062
【図４】
2017021425.tif 000063
【図５】
2017021425.tif 000064
【図６】
2017021425.tif 000065
【図７】
2017021425.tif 000066
【図８】
2017021425.tif 000067
【図９】
2017021425.tif 000068
【図１０】
2017021425.tif 000069
【図１１】
2017021425.tif 000070
【図１２】
2017021425.tif 000071
【図１３】
2017021425.tif 000072
【図１４】
2017021425.tif 000073
【図１５】
2017021425.tif 000074
【図１６】
2017021425.tif 000075
【図１７】
2017021425.tif 000076
【図１８】
2017021425.tif 000077
【図１９】
2017021425.tif 000078
【図２０】
2017021425.tif 000079
【図２１】
2017021425.tif 000080
【図２２】
2017021425.tif 000081
【図２３】
2017021425.tif 000082
【図２４】
2017021425.tif 000083
【図２５】
2017021425.tif 000084
【図２６】
2017021425.tif 000085
【図２７】
2017021425.tif 000086
【図２８】
2017021425.tif 000087
【図２９】
2017021425.tif 000088
【図３０】
2017021425.tif 000089
【図３１】
2017021425.tif 000090
【図３２】
2017021425.tif 000091
【図３３】
2017021425.tif 000092
【図３４】
2017021425.tif 000093
【図３５】
2017021425.tif 000094
【図３６】
2017021425.tif 000095