(57)【特許請求の範囲】
【請求項１】
光学レンズを介して撮影した被写体像を示し、且つ複数の画素がライン方向に配列された画素列が前記ライン方向と直交する方向に複数配列されて構成されたデジタル画像データが記憶された画像データ記憶手段との間でデータ転送を行って、前記デジタル画像データに含まれる光学歪みを補正する補正装置に適用される光学歪みの補正方法であって、
前記光学歪みを多項式で近似して、補正後の各画素を補正前のデジタル画像データにより補間して、前記光学歪みを補正する際に、
前記光学レンズの中心に対応する位置を基点とした前記ライン方向の軸及び前記ライン方向と直交する方向の軸により４事象に分割し、且つ各事象内を前記ライン方向と直交する複数のラインにより複数の短冊領域に分割し、前記短冊領域毎に、前記ライン方向の軸に近い画素列又は前記ライン方向の軸から遠い画素列から順に前記光学歪みを補正し、
当該補正順序に従って、前記画像データ記憶手段との間で、前記ライン方向に連続した画素ごとに前記データ転送を行う、
ことを特徴とする光学歪みの補正方法。
【請求項２】
光学レンズを介して被写体像を撮影し、前記被写体像を示す複数の画素がライン方向に配列された画素列が前記ライン方向と直交する方向に複数配列されて構成されたデジタル画像データを画像データ記憶手段に記憶する撮像装置に用いられ、前記デジタル画像データに含まれる光学歪みを補正する補正装置であって、
前記光学歪みを多項式で近似して、補正後の各画素を補正前のデジタル画像データにより補間して、前記光学歪みを補正すると共に、前記光学レンズの中心に対応する位置を基点とした前記ライン方向の軸及び前記ライン方向と直交する方向の軸により４事象に分割し、且つ各事象内を前記ライン方向と直交する複数のラインにより複数の短冊領域に分割し、前記短冊領域毎に、前記ライン方向の軸に近い画素列又は前記ライン方向の軸から遠い画素列から順に前記光学歪みを補正する補正手段と、
少なくとも前記短冊領域内の１画素列分の補正に必要とされる補正前の前記デジタル画像データの一部を記憶する補正前データ内部記憶手段と、
前記補正手段による補正順序に従って、前記画像データ記憶手段から前記第１の内部記憶手段へ、補正前の前記デジタル画像データを前記ライン方向に連続した画素ごとにＤＭＡ転送する補正前データ転送手段と、
を有することを特徴とする補正装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、光学歪みの補正方法及び補正装置に係わり、特に、光学レンズを介して撮影した被写体像を示し、且つ複数の画素がライン方向に配列された画素列が前記ライン方向と直交する方向に複数配列されて構成されたデジタル画像データが記憶された画像データ記憶手段との間でデータ転送を行って、前記デジタル画像データに含まれる光学歪みを補正する補正装置に適用される光学歪みの補正方法及び補正装置に関する。
【０００２】
【従来の技術】
銀塩カメラやデジタルカメラなどの光学レンズを通して被写体像を撮像して、被写体像を表す画像を取得する撮像装置では、レンズの屈折により取得した画像の周辺に歪みが生じてしまう。この歪みは、一般に光学歪み（ディストーション）と称され、撮像装置に用いられるレンズは、この光学歪みを打ち消すように構成されるが、ズームレンズの場合、同一のレンズ構成でテレ端及びワイド端を共に補正することは難しく、大きな光学歪みが発生し易い。また、単焦点のレンズにおいても、補正するために高価な素材レンズ或いはレンズ構成を増やすことが必要とされ、薄くて安価なレンズ構成とするのは難しく、やはり光学歪みが残ってしまう。
【０００３】
銀塩カメラのように取得された画像がフイルムに記録される場合は、記録後の画像の補正は不可能であり、レンズ性能によって光学歪みが決まってしまう。一方、デジタルカメラのようにデジタルデータで画像が取得されて記録メディアに記録される場合は、記録後でも演算処理によって画像を補正することが可能である。このため、デジタルカメラの分野では、従来より、光学歪み補正に関する技術が提案されている。
【０００４】
ここで、光学歪みは、図１（Ａ）に示すように、画像の角部が外側に伸びる「糸巻き型」と、図１（Ｂ）に示すように、逆に角部が縮む「たる型」の２種類に分けられ、何れも光学中心からの距離によって歪み量（変位量）が決まることが一般に知られている。すなわち、変位量が線形であれば、単に縮小或いは拡大されるだけであるが、実際には、図１（Ｃ）に示すように非線形であり、正の変位量の場合は、各画素は本来の位置から中心より遠ざかる位置にずれるので「糸巻き型」となり、負の変位量の場合は、各画素は本来の位置から中心へ近づく位置になるので「たる型」となる。
【０００５】
このような光学歪みを補正する技術として、特開平６−２９２２０７号公報及び特開平１０−２７１４９０号公報に記載されているように、画像の各座標で補正量を求め、それをテーブルとしてメモリに格納して補正する方法がある。しかしながら、この技術では、補正量のテーブルを格納するメモリには画像データの大きさに応じた記憶容量が必要とされ、画像サイズが大きくなるとこのメモリに必要とされる記憶容量も大きくなるので、ワーク領域の減少や価格が高くなってしまう。
【０００６】
これを解消するために考えられた技術が、特開平１１−２５２４３１号公報に記載されているような、補正量を近似式で表して補正する方法である。すなわち、図１（Ｃ）で示したような光学的歪みの変位量は、多項式で近似表現可能であることが一般に知られており、その逆数を補正式として用いるものである。この技術では、各座標の補正量をテーブルで保持する必要がなく、メモリにはパラメータ（多項式の係数）のみを記憶しておけば、演算により全ての補正前後の画像の座標を対応付けることができる。このような場合、補正前の画像が格納されているメモリから必要な座標の画素データを適宜読み出して、補正後の画像の各画素データを生成するのが一般的であるが、ＣＰＵによるメモリへのアクセス及び補正処理には、１画素分の処理だけでも多大な時間を必要とし、画像全体となるとかなりの時間を要する。
【０００７】
このため、特開２００１−１０１３９６号公報に記載されているように、補正前の画像が格納されているメモリからＤＭＡ転送により補正のために必要なデータを内部メモリに記憶させることで、高速化を図ることが考えられる。
【０００８】
【発明が解決しようとする課題】
しかしながら、特開２００１−１０１３９６号公報の技術では、補正のためにＤＭＡ転送情報、補正係数、補正前データの座標を予め作成しておく必要があり、且つこれらの情報もＤＭＡ転送する必要があるため、大きなメモリ容量が必要になるという問題があった。
【０００９】
また、光学歪みは光学中心から離れるほど変位量が大きくなるため、補正を行う位置によって、１ラインの補正を行うために必要とされる補正前の画像の画素データのライン数が異なり、ライン毎にＤＭＡ転送のアドレッシングを設定しなければならず、処理が複雑になってしまうという問題があった。
【００１０】
本発明は上記問題点を解消するためになされたもので、光学レンズを介して撮影された被写体像を示すデジタル画像データの光学歪みを簡単に補正し、且つこの補正に必要とされるメモリ容量を削減することができる光学歪みの補正方法及び補正装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載の発明は、光学レンズを介して撮影した被写体像を示し、且つ複数の画素がライン方向に配列された画素列が前記ライン方向と直交する方向に複数配列されて構成されたデジタル画像データが記憶された画像データ記憶手段との間でデータ転送を行って、前記デジタル画像データに含まれる光学歪みを補正する補正装置に適用される光学歪みの補正方法であって、前記光学歪みを多項式で近似して、補正後の各画素を補正前のデジタル画像データにより補間して、前記光学歪みを補正する際に、前記光学レンズの中心に対応する位置を基点とした前記ライン方向の軸及び前記ライン方向と直交する方向の軸により４事象に分割し、且つ各事象内を前記ライン方向と直交する複数のラインにより複数の短冊領域に分割し、前記短冊領域毎に、前記ライン方向の軸に近い画素列又は前記ライン方向の軸から遠い画素列から順に前記光学歪みを補正し、当該補正順序に従って、前記画像データ記憶手段との間で、前記ライン方向に連続した画素ごとに前記データ転送を行う、ことを特徴としている。
【００１２】
請求項１に記載の発明によれば、光学歪みを多項式で近似して、補正後の各が素を補正前のデジタル画像データにより補間することにより、デジタル画像データに含まれる光学歪みが補正され、この光学歪みの補正は以下の順序で行われる。すなわち、画像を光学レンズの中心に対応する位置を基点としたライン方向の軸及びライン方向に直交する方向の軸とにより４事象に分割し、且つ各事象を短冊状に区切って、複数の短冊領域に分割する。そして、分割された各短冊領域毎に、ライン方向の軸に近い画素列又はライン方向の軸から遠い画素列から順にから補正が行われる。このような順序で補正を行うことにより、短冊領域内の１画素列分の補正に必要な画素のデータを得るためなどに画像データ記憶手段とデータ転送する際に、画像データ記憶手段のアクセスする１番最初のアドレスと、１回の転送（所定の画素数分のライン方向に連続したデータの転送）後に移動するアドレス移動幅だけを指定するだけでよく、データ転送の制御が簡単である。
【００１３】
なお、上記の補正方法においては、前記光学歪みが糸巻き型の場合は、短冊領域毎に、前記ライン方向の軸に近い画素列から遠い画素列へと順に補正し、前記光学歪みがたる型の場合は、短冊領域毎に、前記ライン方向の軸から遠い画素列から近い画素列へと順に補正することが好ましい。また、この場合、前記短冊領域内の各画素列内では、前記中心に近い画素から順に補正することが好ましい。
【００１４】
また、上記の補正方法においては、各前記事象内では、前記光学歪みが糸巻き型の場合は、前記中心に近い短冊領域から順に補正し、前記光学歪みがたる型の場合は、前記中心から遠い短冊領域から順に補正することが好ましい。
【００１５】
また、上記の補正方法においては、前記光学歪みを近似する多項式として、奇数項を含まない多項式（すなわち偶数項及び定数項のみで構成された多項式）を用いるとよい。
【００１６】
また、上記の補正方法においては、補間方法として、例えば、最近傍補間法、線形補間法、及び３次たたみ込み補間法の何れか１つを用いることができる。また、補正のパターンとしては、例えば、光学中心に相当する位置を固定して、周辺部を移動させるように補正するもの、及び、中心と周辺部との中間部或いは周辺部を固定し、中心部を移動させるように補正するものの何れかを用いることができる。
【００１７】
請求項２に記載の発明は、光学レンズを介して被写体像を撮影し、前記被写体像を示す複数の画素がライン方向に配列された画素列が前記ライン方向と直交する方向に複数配列されて構成されたデジタル画像データを画像データ記憶手段に記憶する撮像装置に用いられ、前記デジタル画像データに含まれる光学歪みを補正する補正装置であって、前記光学歪みを多項式で近似して、補正後の各画素を補正前のデジタル画像データにより補間して、前記光学歪みを補正すると共に、前記光学レンズの中心に対応する位置を基点とした前記ライン方向の軸及び前記ライン方向と直交する方向の軸により４事象に分割し、且つ各事象内を前記ライン方向と直交する複数のラインにより複数の短冊領域に分割し、前記短冊領域毎に、前記ライン方向の軸に近い画素列又は前記ライン方向の軸から遠い画素列から順に前記光学歪みを補正する補正手段と、少なくとも前記短冊領域内の１画素列分の補正に必要とされる補正前の前記デジタル画像データの一部を記憶する補正前データ内部記憶手段と、前記補正手段による補正順序に従って、前記画像データ記憶手段から前記補正前データ内部記憶手段へ、補正前の前記デジタル画像データを前記ライン方向に連続した画素ごとにＤＭＡ転送する補正前データ転送手段と、を有することを特徴としている。
【００１８】
請求項２に記載の発明によれば、補正手段では、画像を光学レンズの中心に対応する位置を基点としたライン方向の軸及びライン方向に直交する方向の軸とにより４事象に分割し、且つ各事象を短冊状に区切り、各短冊領域毎に、ライン方向の軸に近い画素列又はライン方向の軸から遠い画素列から順に補正を行う。補正前データ転送手段では、この補正手段の補正順序に従って、ライン方向に連続した画素ごとに補正前データ内部記憶手段にＤＭＡ転送し、補正前データ内部記憶手段には、補正前のデジタル画像データの一部である、少なくとも短冊領域内の１画素列分の補正に必要とされる補正前の画素のデータが格納される。補正手段は、補正前データ内部記憶手段から各画素の補正に必要なデータを適宜読み出して、短冊領域内の１画素列分の補正を行うことができる。
【００１９】
このように、短冊領域内の１画素列分の補正に必要な画素のデータは、ライン方向に連続した画素毎にＤＭＡ転送されるので効率的であると共に、画像データ記憶手段から補正前データ内部記憶手段へのＤＭＡ転送は、アクセスする画像データ記憶手段の１番最初のアドレスと、１回のＤＭＡ転送（すなわち短冊領域内の１画素列分を補正するのに必要とする所定の画素数分のライン方向に連続したデータの転送）後に移動するアドレス移動幅だけを指定するだけでよく、ＤＭＡ制御処理が簡単である。したがって、従来技術のように、補正のためにＤＭＡ転送情報、補正係数、補正前データの座標を転送する必要がなく、メモリ容量も削減できる。
【００２０】
なお、補正後のデジタル画像データを最終的に補正前のデジタル画像データが記憶されていた画像データ記憶手段に記憶させる場合には、以下のような態様が考えられる。すなわち、上記の補正装置においては、少なくとも前記短冊領域内の１画素列分に相当する前記ライン方向に連続した所定の画素数分の前記補正手段による補正後のデジタル画像データの一部を記憶する補正後データ内部記憶手段と、前記補正後データ内部記憶手段から前記画像データ記憶手段へ、補正後のデジタル画像データを前記ライン方向に連続した画素ごとにＤＭＡ転送する補正後データ転送手段と、を更に有するようにするとよい。
【００２１】
すなわち、短冊領域内の１画素列分に相当する前記ライン方向に連続した所定の画素数分の補正が終わったら、当該ライン方向に連続した所定の画素数分の補正後のデジタル画像データがまとめて画像データ記憶手段へＤＭＡ転送されるので効率的であると共に、補正後データ内部記憶手段から画像データ記憶手段へのＤＭＡ転送は、アクセスする画像データ記憶手段の１番最初のアドレスと、１回のＤＭＡ転送（すなわち短冊領域内の１画素列分のデータ転送）後に移動するアドレス移動幅だけを指定するだけでよく、ＤＭＡ制御処理が簡単である。
【００２２】
また、上記の補正装置においては、前記光学歪みが糸巻き型の場合は、短冊領域毎に、前記ライン方向の軸に近い画素列から遠い画素列へと順に補正し、前記光学歪みがたる型の場合は、短冊領域毎に、前記ライン方向の軸から遠い画素列から近い画素列へと順に補正することが好ましい。また、この場合、前記短冊領域内の各画素列内では、前記中心に近い画素から順に補正することが好ましい。
【００２３】
また、上記の補正装置においては、前記補正手段は、前記事象内では、前記光学歪みが糸巻き型の場合は、前記中心に近い短冊領域から順に補正し、前記光学歪みがたる型の場合は、前記中心から遠い短冊領域から順に補正することが好ましい。
【００２４】
また、上記の補正装置においては、光学歪みを近似する多項式として、奇数項を含まない多項式（すなわち偶数項及び定数項のみで構成された多項式）を用いるとよい。
【００２５】
また、上記の補正装置においては、前記補正手段に適用される補間方法として、例えば、最近傍補間法、線形補間法、及び３次たたみ込み補間法の何れか１つを補間方法として用いることができる。また、前記補正手段は、補正パターンとして、例えば、光学中心に相当する位置を固定して、周辺部を移動させるように補正するもの、及び、中心と周辺部との中間部或いは周辺部を固定し、中心部を移動させるように補正するものの何れかを用いることができる。
【００２６】
【発明の実施の形態】
まず、本発明に係る実施形態の説明に先立ち、本発明の実施の形態に適用される光学歪みの補正原理について説明する。
【００２７】
図１で示したように、光学歪みによる変位量を示す光学ディストーションカーブは、画像中心からの距離の多次元関数で近似表現することができ、以下では、一例として、次式（１）で示す４次関数で表わす。
【００２８】
Ｆ（ｄ）＝α×ｄ4＋β×ｄ2＋γ      …（１）
ただし、ｄ：光学中心からの距離、α、β、γ：係数、である。
【００２９】
なお、上記式（１）において奇数次の項を省略したのは、光学歪みが無い状態、すなわち補正後の画像における画素の座標を（ｘ、ｙ）とした場合に（ｘ、ｙは整数）、これに対応する補正前の画像の座標（Ｘ，Ｙ）は、以下の式（２）で表される。
【００３０】
0003897247.tif 000002
式（２）からも分かるように、奇数次の項が含まれると光学中心からの距離ｄの演算に平方根の計算が必要となり、ハード構成が複雑になるためである。すなわち、奇数次の項を省略して偶数次の項のみの関数でこのように光学歪みを表わすことで、平方根の計算を回避し、回路構成の簡素化を図ることができる。
【００３１】
一方、光学歪みを補正するの補正曲線は、光学ディストーションカーブと逆のカーブを描けばよく、大きく分けて３つのパターンが考えられる。例えば、糸巻き型の光学歪みの補正曲線は、光学ディストーションカーブとは逆に、必ず右下がりになるような（微分値が常に負）カーブを描き、図２に示す如く３種類の補正パターンが考えられる。
【００３２】
すなわち、図２（Ａ）に示されているのように、光学中心を固定し、周辺部を中心方向に引き寄せるように補正する補正パターン（補正パターン１）と、図２（Ｂ）、（Ｃ）に示されているように、例えば周辺部近傍などの中心と周辺部の中間部、或いは周辺部を固定し、中心部を移動させるように補正する補正パターン（補正パターン２、３）とがある。
【００３３】
このような補正パターンの種類については、前述した式（１）における係数γの値により定まり、すなわち、前述した式（１）における係数α、βは、実際の光学歪みに基づいて設定されるが、γについては、採用した補正パターンに応じて設定される。補正パターン１はγ＝０、補正パターン２、３は、γ＞０の場合である。
【００３４】
光学歪みの補正は、補正後の画像の座標（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ、Ｙ）を求めたら、該補正前の画像における座標（Ｘ、Ｙ）にある画素データＰを補正後の画像の座標（ｘ、ｙ）に移動することで行うことができるが、通常、上記式（２）により求めた補正前の画像の座標（Ｘ、Ｙ）は整数値にならず、補正前の画像には対応する画素データが存在しない。
【００３５】
このため、求めた補正前の画像の座標（Ｘ、Ｙ）に対応する画素データＰを、当該補正前の画像の座標（Ｘ、Ｙ）近傍の実在する画素データから内挿によって求めて補間する必要がある。
【００３６】
この場合の補間方法（内挿方法）としては、最近傍補間法（nearest neighbor interpolation）、線形補間法（bi-linear interpolation）を挙げることができる。
【００３７】
線形補間法とは、図３に示すように、補正前の画像の座標（Ｘ、Ｙ）に対応する画素データＰを、当該補正前の画像において、座標（Ｘ、Ｙ）の周囲にある近傍の４画素のデータＤ１、Ｄ２、Ｄ３、Ｄ４により内挿するものであり、当該補正前の画像の座標からの距離に応じて重みを決定して、この近傍の４画素の画素データＤ１、Ｄ２、Ｄ３、Ｄ４の重み付け平均を求める。
【００３８】
すなわち、前述の式（２）により求められる、補正後の画像の座標（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ、Ｙ）の整数部を（intＸ、intＹ）とし、小数部を（Δｘ、Δｙ）とすると、当該補正前の画像の座標の周囲にある近傍の４画素のデータＤ1、Ｄ2、Ｄ3、Ｄ4の座標は、（intＸ、intＹ）、（intＸ、intＹ＋１）、（intＸ＋１、intＹ）、（intＸ＋１、intＹ＋１）となり、それぞれの画素データＤ1、Ｄ2、Ｄ3、Ｄ4に対する重みは、（１−Δｘ）×（１−Δｙ）、（１−Δｘ）×Δｙ、Δｘ×（１−Δｙ）、Δｘ×Δｙとなる。求める画素データＰは、補正前の画像における近傍４画素の画素データの値をＤ1、Ｄ2、Ｄ3、Ｄ4として、次の式（２）のようになる。
0003897247.tif 000003
また、最近傍補間法とは、補正後の画像の座標の画素データＰを、当該補正前の画像の座標に最も近い位置にある画素のデータにより内挿するものである。
【００３９】
すなわち、前述の式（２）により、補正後の画像の座標（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）＝（ｘ×Ｆ（ｄ）、ｙ×Ｆ（ｄ））を求め、この補正前の画像の座標（Ｘ、Ｙ）の小数部を四捨五入して整数値の座標にし、この整数値の座標の位置にある補正前の画像の画素データを、補正前の画像の座標（Ｘ，Ｙ）の画素データＰとする。
【００４０】
また、高速演算処理可能であれば、演算がより複雑になるがその分より高画質の画像を得ることができる３次たたみ込み補間法（cubic convolution interpolation）により補間するようにしてもよい。
【００４１】
何れの補間方法であっても、補正後の画像における座標（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）を演算により求め、該求めた座標（Ｘ，Ｙ）近傍の補正前の画像の画素データを用いて、当該補間方法に従って、画素データＰを求める。そして、この求めた画素データＰを補正後の画像における座標（ｘ、ｙ）の画素データとすることで、光学歪みを補正することができる。
【００４２】
以下、本発明の実施の形態として、本発明をデジタルカメラに適用した場合について説明する。
【００４３】
＜第１の実施の形態＞
第１の実施の形態では、補正パターン１により光学歪みを補正し、補間方法に線形補間法を採用した場合について説明する。
【００４４】
（全体構成）
まず、図４を参照して、本実施の形態に係るデジタルカメラ１０の構成を説明する。
【００４５】
図４に示すように、本実施の形態に係るデジタルカメラ１０は、被写体像を結像させるための光学ユニット１２と、光学ユニット１２の光軸後方に配設されたＣＣＤ（Charge Coupled Device）１４と、アナログ信号をデジタル信号に変換するＡ／Ｄコンバータ１６と、デジタルカメラ１０の撮影によって得られた画像や各種情報を表示するためのＬＣＤ（液晶ディスプレイ）１８と、レリーズボタン、モード切替スイッチ、電源スイッチなど撮影者によって操作される操作手段２０と、を備えている。
【００４６】
また、デジタルカメラ１０は、入力されたデジタル信号に対して所定の処理を施してデジタル画像データを生成する信号処理プロセッサ２２と、デジタル画像データの光学歪みを補正する本発明の補正装置としてのディストーション補正部２４と、ＬＣＤ１８に対する表示を制御するＬＣＤ制御部２６と、スマートメディア、ＩＣカード、ＣＤ−Ｒ、ＣＤ−ＲＷ等の外部記録メディア２８に対する各種情報の読み書きを制御するメディア制御部３０と、光学ユニット１２の光学ズーム倍率及び焦点を調整するＡ／Ｆ制御回路３２と、操作手段２０とのＩ／Ｆ（インタフェース）部３４と、デジタルカメラ１０の全体の制御を司るＣＰＵ（中央演算処理装置）３６と、主としてＣＣＤ１４による撮像によって得られたデジタル画像データを記憶する本発明の画像データ記憶手段としてのメインメモリ３８と、各種プログラム、パラメータなどが予め記憶されたＲＯＭ４０と、を備えており、これら信号処理プロセッサ２２、ディストーション補正部２４、ＬＣＤ制御部２６、メディア制御部３０、Ａ／Ｆ制御回路３２、Ｉ／Ｆ部３４、ＣＰＵ３６、メインメモリ３８、及びＲＯＭ４０は、バス４２を介して相互に接続されている。
【００４７】
光学ユニット１２は、図示しないズームレンズ群及びフォーカスレンズを有し、且つそれぞれを光軸方向に移動させるレンズ移動機構を備え、焦点距離の変更（変倍）が可能なズームレンズとして構成されている。光学ユニット１２は、Ａ／Ｆ制御回路３２と接続されており、Ａ／Ｆ制御回路３２の制御により、所望のズーム倍率になるようにズームレンズ群が光軸方向に移動され（焦点距離可変レンズ）、レンズを通過した被写体像を示す入射光がＣＣＤ１４の受光面上に結像するように、フォーカスレンズが光軸方向に移動される（オートフォーカス（ＡＦ）機構）ようになっている。これにより、ＣＣＤ１４では、光学ユニット１２のレンズを通過した被写体像を示す入射光に基づき被写体を撮像して被写体像を示すアナログ画像信号を出力する。
【００４８】
このＣＣＤ１４の出力端は、Ａ／Ｄコンバータ１６と接続されている。すなわち、Ａ／Ｄコンバータ１６は、ＣＣＤ１４により出力された被写体像を示すアナログ画像信号をデジタル画像信号に変換する。
【００４９】
Ａ／Ｄコンバータ１６の出力端は、信号処理プロセッサ２２に接続されている。すなわち、信号処理プロセッサ２２には、撮影時にＣＣＤ１４によって得られた被写体像を示す画像信号が、アナログ信号からデジタル信号に変換された後、入力され、デジタル画像データとして取り扱われる。具体的には、信号処理プロセッサ２２では、入力されたデジタル画像データに対して、ホワイトバランス調整、ガンマ補正、シャープネス補正等の各種補正処理、及びＲＧＢデータをＹＣ信号に変換するＹＣ変換処理といった所定のデジタル信号処理を施す。信号処理プロセッサ２２によりＹＣ変換されたデジタル画像データは、補正前の画像データとして、バス４２を介してメインメモリ３８に一旦格納される。
【００５０】
メインメモリ３８には、例えばＳＲＡＭやＳＤＲＡＭといった大容量のメモリを一般に用いることができる。なお、このようなメモリは、ライン方向への連続したアクセスは早いが、不連続なアドレスへのアクセスは遅いという特徴を有する。
【００５１】
ディストーション補正部２４は、メインメモリ３８に格納された補正前の画像データの光学歪みを補正するためのものであり、詳細は後述するが、補正前の画像データをメインメモリ３８から読み出して、光学歪みを補正し、補正後の画像データのメインメモリ３８に書き込むようになっている。
【００５２】
デジタルカメラ１０では、この補正後の画像データを、図示しない圧縮伸長回路により所定の圧縮形式（例えばＪＰＥＧ）により圧縮した後、メディア制御部３０を介して、外部記録メディア２８に記憶することができる。
【００５３】
一方、ＬＣＤ制御部２６には、前述のＬＣＤ１８が接続されており、ＬＣＤ１８はＬＣＤ制御部２６の制御下で作動するようになっている。撮影時には、ＬＣＤ制御部２６は、バス４２を介してメインメモリ３８から補正後の画像データを読出して、ＬＣＤ１８に表示させる。また、画像再生時には、外部記録メディア２８に記憶された再生対象とするデジタル画像データが読み出されて、図示しない圧縮伸長回路により伸長された後、ＬＣＤ制御部２６の制御によりＬＣＤ１８に表示される。
【００５４】
また、Ｉ／Ｆ部３４には撮影者によって操作される各種スイッチ乃至ボタンなどの操作手段２０が接続されており、ＣＰＵ３６では、Ｉ／Ｆ部３４を介して撮影者による操作手段２０の操作状況を常時把握可能であり、把握した操作状況に応じて、上記各部の動作を制御する。
【００５５】
（ディストーション補正部の詳細）
次に、ディストーション補正部２４について詳細に説明する。
【００５６】
ディストーション補正部２４は、図４に示すように、メインメモリ３８との間で読み書きするデータを記憶するための内部メモリ５０、５２と、補正手段として、演算により画像の光学歪みを補正する演算プロセッサ５４と、メインメモリ３８と内部メモリ５０との間のＤＭＡ（Direct Memory Access）転送を司るＤＭＡコントローラ５６と、メインメモリ３８と内部メモリ５２との間のＤＭＡ転送を司るＤＭＡコントローラ５８と、を備えて構成されている。なお、図４では、内部メモリ５０、５２を物理的に異なる部材として示しているが、同一のメモリ（装置）内の互いに異なるメモリ領域を内部メモリ５０、５２として用いるようにしてもよい。
【００５７】
内部メモリ５０は、ＤＭＡコントローラ５６と接続されており、ＤＭＡコントローラ５６は、バス４２と接続されており、ＤＭＡコントローラ５６の制御の下で、バス４２を介してメインメモリ３８にアクセスし、メインメモリ３８から内部メモリ５０へ補正前の画像データを構成する一部の画素のデータ（画素データ）がデータ転送（ＤＭＡ転送）される。すなわち、内部メモリ５０は、メインメモリ３８から転送（入力）された補正前の画像データの一部を記憶するためのものであり、補正前データ内部記憶手段に対応し、ＤＭＡコントローラ５６が補正前データ転送手段に対応する。
【００５８】
この内部メモリ５０は、ライン方向（Ｘ方向）に連続した所定画素数分の画素データ（１ラインの一部のデータ）を各々格納するための３つのラインメモリＡ〜Ｃにより構成されており、各ラインメモリＡ〜Ｃには、補正前の画像データの互いに異なるラインの一部のデータが格納される。
【００５９】
演算プロセッサ５４は、内部メモリ５０及び内部メモリ５２と接続され、且つバス４２とも接続されている。演算プロセッサ５４は、内部メモリ５０から必要な画素データを読み出して、演算により、光学歪みを補正した画像データ（補正後の画像データ）を構成する一部の画素のデータ(画素データ)を生成して内部メモリ５２に格納するようになっている。
【００６０】
内部メモリ５２は、ＤＭＡコントローラ５８と接続されており、ＤＭＡコントローラ５８は、バス４２と接続されており、ＤＭＡコントローラ５８の制御の下で、バス４２を介してメインメモリ３８にアクセスし、内部メモリ５２からメインメモリ３８へ補正後の画像データの一部（画素データ）がデータ転送（ＤＭＡ転送）される。すなわち、内部メモリ５２は、メインメモリ３８へ転送（出力）する補正後の画像データの一部を格納するためのものであり、補正後データ内部記憶手段に対応し、ＤＭＡコントローラ５８は補正後データ転送手段に対応する。
【００６１】
この内部メモリ５２は、ライン方向（Ｘ方向）に連続した所定画素数分の画素データ（１ラインの一部のデータ）を各々格納するための２つのラインメモリＭ、Ｎにより構成されており、各ラインメモリＭ、Ｎには、補正後の画像データの互いに異なるラインの一部のデータが格納される。
【００６２】
また、演算プロセッサ５４は、バス４２を介してＤＭＡコントローラ５６、Ｂに対して制御信号を送出し、ＤＭＡコントローラ５６、５８によるＤＭＡ転送処理を司っている。制御信号としては、メインメモリ３８のアクセスするアドレス位置などを指定するアクセス位置指定信号や、メインメモリ３８へのデータの読み書きを指示する転送指示信号などを送信するようになっている。
【００６３】
演算プロセッサ５４は、ディストーション補正部２４全体の動作を司る役目を担っており、ディストーション補正部２４において以下の如く処理が行われるようになっている。
【００６４】
ディストーション補正部２４では、補正後の画像における座標（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）を演算により求め、該求めた座標（Ｘ，Ｙ）近傍の補正前の画像の画素データをメインメモリ３８から読み取って、当該読み取った画素データを用いた演算により画素データＰを、補正後の画像における座標（ｘ、ｙ）の画素データとすることで、光学歪みを補正する。そして、この求めた画素データＰを、補正後の画像における座標（ｘ、ｙ）の画素データとして、メインメモリ３８に順次書き込んでいくことで、メインメモリ３８に補正後の画像データが記憶される。
【００６５】
ところで、前述したように、メインメモリ３８は、ライン方向（Ｘ方向）への連続したアクセスは早いが、不連続なアドレスへのアクセスは遅い。このため、一般に、ディストーション補正部２４によるメインメモリ３８からの補正前の画像の画素データの読取りや、補正後の画像の画素データＰのメインメモリ３８への書き込みの際のデータ転送（ＤＭＡ転送）は、処理の高速化のために、ライン方向に並んだいくつかの画素データをまとめて行われる。
【００６６】
しかしながら、光学歪みは中心からの距離によって歪み量（変位量）が変化し、Ｘ軸に近い程、Ｙ軸方向（ライン方向と直交する方向）に対する変位は小さく、Ｘ軸から離れる程、変位が大きくなる。このため、上記で説明した何れの補正パターン、及び何れの補間方法により補正するにしろ、Ｘ軸近辺であれば、１ライン中のどの部分でも補正に必要とされる補正前画像のライン数は少なくて済むが、Ｘ軸から離れると必要とするライン数が増え、１ラインを処理するのに多数ラインが必要となる。すなわち、ライン毎にＤＭＡ転送のアドレッシングを設定しなければならず、ＤＭＡ転送制御が複雑になってしまう。
【００６７】
このため、本実施の形態のディストーション補正部２４では、図５に示すように、補正後の画像データを、光学中心に対応する位置を原点（基点）としてＸ軸Ｙ軸により４つの事象７０Ａ〜Ｄに分割し、且つ各事象７０Ａ〜Ｄ内を、Ｘ軸方向の幅が所定の処理画素数となるように短冊状に区切って複数の短冊領域７２に分割し、短冊領域７２毎に、当該短冊領域７２内の１ライン（以下、画像全体での１ラインと区別するために、「小ライン」と称す）７４単位で補正が行われるようになっている。また、各短冊領域７２内での小ライン７４の補正順序は、図５に矢印で示すように、Ｘ軸に近い小ライン７４から開始し、順に、Ｘ軸から離れる方向へと向うようになっている。
【００６８】
また、短冊領域７２（小ライン７４）の幅寸法に相当する処理画素数は、当該小ライン７４の位置に係わらず、当該ラインを補正するために必要とする補正前の画像のライン切り替え（すなわち、ディストーション補正部２４への入力ラインの切り替え）が１回までになるような値が予め設定されている。また、この処理画素数に基づいて、メインメモリ３８からＤＭＡ転送して、ディストーション補正部２４に入力される入力画素数も予め設定されている。
【００６９】
このように画像を４事象に分割し、且つ各事象を短冊状に区切って、各短冊領域７２毎に、Ｘ軸に近い小ライン７４から順に補正を行うことにより、メインメモリ３８から内部メモリ５０へのＤＭＡ転送は、一番最初のアドレスと、１回のＤＭＡ転送後にジャンプするアドレス移動幅だけを指定するだけでよく、ＤＭＡ制御処理を簡便化することができる。また、従来技術のように、補正のためにＤＭＡ転送情報、補正係数、補正前データの座標を転送する必要がなく、メモリ容量も削減できる。
【００７０】
また、補正後の画素データについては、内部メモリ５２に１小ライン７４分格納されたら、ＤＭＡコントローラ５８によりメインメモリ３８へＤＭＡ転送する。これにより、内部メモリ５２からメインメモリ３８へのＤＭＡ転送も、一番最初のアドレスと、１回のＤＭＡ転送後にジャンプするアドレス移動幅だけを指定するだけでよく、ＤＭＡ制御処理を簡便化することができる。
【００７１】
次に、光学歪みの種類毎に、補正処理順序についてさらに詳細に説明する。
糸巻き型の光学歪みは、図１で示したように、光学ディストーションカーブが０％（光学中心）を基点に必ず右上がりになるような（微分値が常に正）カーブとなるため、ある１ラインを補正しようとすると、中心から放射線上にある周辺部側に位置する補正前の画像の画素が必要となる。さらに、同一の１ライン中においても、画素毎に、中心からの距離に差があるため、図６に示すように、当該１ラインを補正するために必要とする補正前の画像の画素の位置は、右上がりのカーブを描く。
【００７２】
なお、図６では、糸巻き型の光学歪みの場合に、補正パターン１で１ラインの一部分を補正処理する際に、補正により生成しようとする画素（すなわち補正後の画像の画素）を丸印、補正前の画像の画素を×印、丸印の補正後の画像の画素に対応する補正前の画像における位置を四角印で示している。また、同図において、座標（０，０）は、画像の中心を示している。なお、以降で説明する図もこれに従う。
【００７３】
図６から分かるように、Ｘ軸近傍のラインでは、Ｙ軸方向への変位が小さいので、どの部分でも補正に必要なライン数は少なくて済むが、Ｘ軸から離れるほど、Ｙ軸方向への変位が大きくなり、補正に必要なライン数も増える。線形補間法では、１画素の補正のために、補正前の画像データの異なる２ライン上にある画素が必要となるので、本実施の形態では、Ｘ軸からの距離に係わらず、どのラインにおいても入力３ライン（２ラインの組を２回）までで補間できる処理画素数が制限され、具体的には、Ｘ軸から最も距離が離れたラインにおいて、入力３ラインまでで補間できるように設定すればよい。
【００７４】
また、図６から分かるように、補正パターン１で糸巻き型の光学歪みを補正する場合は、１ラインの一部分（例えば５画素分）を補正処理しようとすると、少なくとも周辺方向（Ｘ軸方向）に当該画素以上（５画素以上、例えば１０画素）の補正前の画像の画素データが必要とされる。すなわち、入力画素数は、処理画素数よりも多くなるように設定される。
【００７５】
また、図５に矢印で示すように、糸巻き型の光学歪みの場合は、小ライン７４内では、中心に近い画素から周辺方向へと補正処理を行うようになっている。
【００７６】
これは、糸巻き型の光学歪みの場合は、同一ライン内では補正に必要な座標位置は前述のように右上がりのカーブを描き、且つ同一短冊領域７２内での隣合う小ライン７４の補正に必要な座標位置のＹ軸方向のステップ幅は、補正前画像の１ラインの幅よりも大きいためである。すなわち、小ライン７４内での補正処理順序を、中心に近い画素から周辺方向へ向うようにすることにより、同一の小ライン７４の補正処理中に次のラインの補正前の画像のデータが必要になることはあっても、そのときに不要となったラインのデータが次の小ライン７４で必要になることはない。
【００７７】
したがって、ディストーション補正部２４では、１小ライン７４の補正中に、次のラインのデータが必要になり入力ラインの切り替え、必要になった次のラインのデータをメインメモリ３８から読み出してＤＭＡ転送したら、不要になったラインのデータ上に上書きすることができる。これにより、メインメモリ３８から読み取った補正前の画像の画素データを格納するためのディストーション補正部２４のメモリ（内部メモリ５０のメモリ）容量を削減することができる。
【００７８】
なお、短冊領域７２間の補正処理順序については、糸巻き型の光学歪みの場合は、画像中心側の短冊領域７２から周辺の短冊領域７２へと補正処理を行うことが好ましい。
【００７９】
詳しくは、図７に、補正後の画像の短冊領域７２を実線で示し、各短冊領域７２の補正処理に必要とされる補正前の画像の領域を点線で示すように、１短冊領域７２の補正処理に必要とされる補正前の画像の領域は、補正後の画像の当該短冊領域７２よりも画像中心から外側の領域となる。したがって、画像中心側の短冊領域７２から周辺の短冊領域７２へと補正処理を行えば、ディストーション補正部による補正後の画素データをメインメモリ３８のＤＭＡ入力元（補正前の画像データ）に上書きすることができる。すなわち、各事象内での短冊領域７２の補正処理順序を、画像中心側の短冊領域７２から周辺の短冊領域７２へ向うようにすることにより、メインメモリ３８の容量を削減することができる。
【００８０】
なお、各事象内での短冊領域７２の補正処理順序は、周辺の短冊領域７２から画像中心側の短冊領域７２へと向うようにしてもよいが、この場合は、補正後の画素データをメインメモリ３８のＤＭＡ入力元に上書きすることはできない。
【００８１】
また、同一短冊領域７２内での小ライン７４の補正処理順序は、Ｘ軸から遠い小ライン７４からＸ軸に近い方向へ向うようにしてもよい。この場合は、１小ライン７４内での各画素の補正処理順序は、糸巻き型の光学歪みの場合は、周辺の画素から中心に近づく方向へ向うようにする。ただし、この場合も、補正後の画素データをメインメモリ３８のＤＭＡ入力元に上書きすることはできない。
【００８２】
一方、たる型の光学歪みの場合は、図１で示したように、光学ディストーションカーブが０％（光学中心）を基点に必ず右下がりになるような（微分値が常に負）カーブとなり、図８に示すように、補正に必要な補正前の画像の画素は、補正後の画像の画素よりも画像の中心方向にあり、中心から遠いほど変位が大きくなるため、補正後の画像のライン方向に並んだ画素に対応する補正前の画像の座標位置は、右下がりのカーブを描く。この場合、１小ライン７４の補正のために補正前の画像の画素データを転送する際の余分な画素は、中心方向に取るようにする。
【００８３】
また、補正処理順序は、Ｘ軸に遠い小ライン７４から補正を開始し、小ライン７４内では、中心から近い周辺の画素から周辺方向へと補正処理を行う。これにより、ディストーション補正部２４に必要とされるメモリ容量を削減することができる。
【００８４】
また、各事象内での短冊領域７２の補正処理順序については、周辺の短冊領域７２から画像中心側の短冊領域７２へと行うようにすれば、補正後の画素データをメインメモリ３８のＤＭＡ入力元（補正前の画像データ）に上書きするとこができ、メインメモリ３８のメモリ容量を削減可能である。
【００８５】
なお、画像中心側の短冊領域７２から周辺の短冊領域７２へ向うようにしてもよいが、この場合は、補正後の画素データをＤＭＡ入力元に上書きすることはできない。
【００８６】
また、１短冊領域７２内での補正処理順序は、Ｘ軸に近い小ライン７４からＸ軸と離れる方向へとしてもよく、この場合、１小ライン７４内での各画素の補正処理順序は、中心から遠い画素から中心に近づく方向へ向うようにすればよい。ただし、この場合も、補正後の画素データをメインメモリ３８のＤＭＡ入力元に上書きすることはできない。
【００８７】
＜作用＞
次に、本実施の形態の作用を説明する。本実施の形態に係わるデジタルカメラ１０では、ＣＣＤ１４により、光学ユニット１２のレンズを通過した被写体像を示す入射光に基づいく被写体が撮像されて、被写体像を示すアナログ画像信号が取得される。このアナログ画像信号は、Ａ／Ｄコンバータ１６によりデジタル画像信号に変換され、信号処理プロセッサ２２により、ＹＣ信号に変換されて、補正前の画像データとして、メインメモリ３８に一旦格納される。
【００８８】
そして、ディストーション補正部２４により、メインメモリ３８から補正前の画像データを読み出して光学歪みが補正された後、メインメモリ３８に再度格納され（詳細後述）、この補正後の画像データがＬＣＤ制御部２６を通じてＬＣＤ１８に表示されたり、メディア制御部３０を通じて、外部記録メディア２８に記録されたりする。なお、ＬＣＤ１８への表示の際には補正前の画像データを用い、撮像した被写体像が直ちに表示されるようにしてもよい。
【００８９】
（光学歪み補正処理）
次に、図９を参照して、演算プロセッサ５４で行われる光学歪み補正処理について説明する。図９には、短冊領域７２毎に演算プロセッサ５４で実行される光学歪み補正処理が示されている。
【００９０】
図９に示すように、演算プロセッサ５４は、まず、ステップ１００において、補正対象の短冊領域７２に応じて、ＤＭＡコントローラ５６、５８においてＤＭＡ転送を行うための設定、すなわちアクセスするメインメモリ３８のアドレス位置の設定を行う。
【００９１】
具体的には、ＤＭＡコントローラ５６に対しては、当該短冊領域７２において、一番最初に補正処理を行う小ライン７４を補正するために必要とする補正前画像の画素データが格納されている一番最初のアドレスと、当該小ライン７４を処理後にジャンプするするアドレス移動幅とを示す信号をアクセス位置指定信号として送信する。また、ＤＭＡコントローラ５８に対しては、当該短冊領域７２において、一番最初に処理した小ライン７４の画素データを格納する一番最初のアドレスと、当該小ライン７４の格納後にジャンプするアドレス移動幅とを示す信号をアクセス位置指定信号として送信する。なお、処理順序については、上記光学歪み補正処理で述べた如く予め設定されている。
【００９２】
次のステップ１０２では、ＤＭＡコントローラ５６へＤＭＡ転送実行を指示する。この指示を受けて、ＤＭＡコントローラ５６は、前述のステップ１００で設定されたメインメモリ３８のアドレス位置にアクセスして、当該アドレス位置から予め設定された入力画素数分（１入力ライン）だけ補正前の画像の画素データをメインメモリ３８から読み込んで内部メモリ５０に書き込む（ＤＭＡ転送）。１入力ラインのＤＭＡ転送が終わったら、前述のステップ１００で設定されたアドレス移動幅だけメインメモリ３８のアクセス位置をジャンプして次の入力ラインをＤＭＡ転送することを繰返し、格納可能な個数分（内部メモリ５０が備えているラインメモリの個数分）の入力ラインを内部メモリ５０に書き込む。
【００９３】
以下、このようにしてＤＭＡ転送されて内部メモリ５０に書き込まれた各入力ラインを、ＤＭＡ転送の順序により、１番目の入力ライン、２番目の入力ライン、…とすると、線形補間法では、２入力ラインのデータを用いて１つの画素の補間処理がなされるため、演算プロセッサ５４では、１番目と２番目の入力ラインが最初の小ライン７４の補正処理に用いるデータとされる。なお、最近傍補間法の場合は、１入力ラインのデータを用いて１つの画素の補間処理がなされるため、１番目の入力ラインが補正処理に用いるデータとされる。
【００９４】
次のステップ１０４では、少なくとも補間処理に必要な個数分だけ入力ラインが内部メモリ５０に書き込まれたら、短冊領域７２内の補正順序に従って、最初の小ライン７４の補正が開始され、当該小ライン７４内の補正順序に従って、最初の補正したい画素（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）を前述の式（２）の演算により求める。
【００９５】
次のステップ１０６では、現在補正処理に用いるデータとされている入力ラインの画素データで、求めた座標（Ｘ，Ｙ）の画素データを補間可能か否かを判定する。
【００９６】
補間可能であれば、ステップ１０６から次のステップ１０８に進み、最近傍補間法や線形補間法などの補間方法に従って補間処理が行われる。すなわち、内部メモリ５０から座標（Ｘ，Ｙ）近傍の画素データを読取り、当該読み取った画素データから座標（Ｘ，Ｙ）の画素データＰを求め、その結果を補正後の画像の座標（ｘ、ｙ）の画素データとして内部メモリ５２に書き込む。これにより、補正後の画像の座標（ｘ、ｙ）の画素が補正処理されたことになる。
【００９７】
そして、１小ライン７４分の補正後の画素データが揃うまでは、次のステップ１１０で否定されて、ステップ１０４に戻り、小ライン７４内の補正順序に従って、次の画素に対応する補正前の画像の座標を求め、以下同様の処理を繰り返すが、現在補正処理に用いるデータとされている入力ラインの画素データでは、求めた座標（Ｘ，Ｙ）の画素データＰを補間不能になった場合は、ステップ１０６からステップ１１２に進み、補正処理に用いる入力ラインを切り替える（メモリチェンジ）。
【００９８】
なお、本実施の形態では、メモリチェンジの際には、ＤＭＡコントローラ５６に次の入力ラインの転送を指示するようになっており、ＤＭＡコントローラ５６は、この指示を受けて、前述のステップ１００で設定されたアドレス移動幅だけメインメモリ３８のアクセス位置をジャンプして次の入力ラインをＤＭＡ転送して、最も古い入力ラインのデータに上書きする。
【００９９】
補正処理に用いる入力ラインを切り替えたら、ステップ１１４に進み、前述のステップ１０８と同様の補間処理が行われ、補正後の画素データが内部メモリ５２に書き込まれる。
【０１００】
なお、前述したように、入力ラインの切替えが１回までになるように１小ライン７４の処理画素数が定められているので、当該１小ライン７４内の残りの全画素の補正処理は、ステップ１１２での切替後の入力ラインにより必ず行うことができる。
【０１０１】
したがって、その後は、１小ライン７４分の画素データが揃うまでは、次のステップ１１６で否定されて、ステップ１１８に進み、小ライン７４内の補正順序に従って、次の画素（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）を求め、次のステップ１２０で前述のステップ１０８と同様の補間処理が行われて、補正後の画素データが内部メモリ５２に書き込まれる。
【０１０２】
内部メモリ５２に補正後の画素データが１小ライン７４分書き込まれたら、ステップ１１０或いはステップ１１６で肯定判定されて、ステップ１２２に進み、当該１小ライン分の補正後の画素データのＤＭＡ転送実行をＤＭＡコントローラ５８に指示する。この指示を受けて、ＤＭＡコントローラ５８は、内部メモリ５２に格納されている１小ライン７４分の補正後の画素データを読出し、前述のステップ１００で設定されたメインメモリ３８のアドレス位置にアクセスして、当該アドレス位置から１小ライン７４分の補正後の画素データを書き込む。なお、ＤＭＡコントローラ５８は、メインメモリ３８への２回目以降のアクセスの場合は、前述のステップ１００で設定されたアドレス移動幅だけ前回のメインメモリ３８のアクセス位置をジャンプしてから、１小ライン７４分の補正後の画素データを書き込む。
【０１０３】
次のステップ１２４では、１短冊領域７２内の全小ライン７４について処理が終了したか否かを判断し、未処理の小ライン７４が残っている場合は、次の小ライン７４の補正処理を行うために、ステップ１２６に移行し、当該小ライン７４内の補正順序に従って、最初の補正したい画素（ｘ、ｙ）に対応する補正前の画像の座標（Ｘ，Ｙ）を前述の式（２）の演算により求める。そして、現在補正処理に用いるデータとされている入力ラインの画素データで、求めた座標（Ｘ，Ｙ）の画素データを補間可能であれば、次のステップ１２８からステップ１０８に戻り、求めた座標（Ｘ，Ｙ）の画素データを補間不能の場合は、次のステップ１２８からステップ１３０に移行して、補正処理に用いる入力ラインを切り替えた（メモリチェンジ）後、ステップ１０８に戻って、次の小ライン７４について、上記と同様に処理が行われる。
【０１０４】
その後、１短冊領域７２内の全小ライン７４について処理が終了したら、ステップ１２４で肯定判定されて、当該短冊領域７２に対する補正処理は終了する。
【０１０５】
図１０に、このような光学歪み補正処理を行った場合のディストーション補正部２４の各部の動作を示す。なお、図１０は、演算プロセッサ５４により、ＤＭＡコントローラ５６、５８に対して、ＤＭＡ転送を行うための設定が行われた後の動作を示している。
【０１０６】
図１０に示すように、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ１０）。
【０１０７】
ラインメモリＡへの転送が終了したら、ＤＭＡコントローラ５６により、同様に、次の入力ラインをラインメモリＢにＤＭＡ転送して書き込み（期間Ｔ１１）、この転送が終了したら、さらに次の入力ラインをラインメモリＣにＤＭＡ転送して書き込む（期間Ｔ１２）。これにより、ラインメモリＡ〜Ｃには、ライン番号が互いに１つずつ異なる入力ラインデータが書き込まれる。
【０１０８】
線形補間法の場合は、２入力ライン分の画素データがあれば、１つの画素の補間処理可能であるため、ディストーション補正部２４では、最初の２入力ライン分の画素データがラインメモリに蓄積されたら、演算プロセッサ５４により１番目の小ライン７４の光学歪みの補正演算処理が開始される（期間Ｔ１３）。なお、ここで言う補正演算処理とは、補正前画像の座標演算と補間処理のことである。
【０１０９】
すなわち、演算プロセッサ５４では、前述の光学歪みの補正原理で説明したように、作成したい画像（補正後の画像）の座標に対応する補正前の画像の座標を演算し、この演算により求めた座標の周囲近傍の４画素の座標を求めて、この４画素の座標に相当するラインメモリの４点のアドレスをそれぞれ算出する。詳しくは、４画素の座標を（Ｘ、Ｙ）、（Ｘ、Ｙ＋１）、（Ｘ＋１、Ｙ）、（Ｘ＋１、Ｙ＋１）とすると、Ｘ座標が各ラインメモリ内のアドレスに変換され、Ｙ座標がライン番号、すなわちラインメモリを指定する情報に変換される。なお、１番目の小ライン７４の補正では、読み込み元のラインメモリとして、ライン番号が小さい方からラインメモリＡ、Ｂの組が指定されるようになっている。そして、ラインメモリＡ、Ｂから算出された当該アドレスに格納されている画素データを読み出して、前述の式（２）の演算により画素データＰを算出し、その結果をラインメモリＭに書き込む。
【０１１０】
そして、ラインメモリＭに所定の処理画素数分だけ式（３）の演算により算出された画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ１４）、ＤＭＡコントローラ５６により、メインメモリ３８からラインメモリＡに次のラインを新たにＤＭＡ転送されて上書きされる（期間Ｔ１５）。
【０１１１】
また、この間も、演算プロセッサ５４の補正演算処理は継続して行われ、ラインメモリＤに書き込まれたデータが所定の処理画素数分に達した後は、ライン番号がそれぞれ１つ繰り上げるように読み込み元のラインメモリの組を切替える（メモリチェンジ）と共に（ここでは、ラインメモリＢ、Ｃに切り替える）、書き込み先についてももう一方のラインメモリ（ここでは、ラインメモリＮ）に切り替えて、同様に２番目の小ライン７４の補正が行われている（期間Ｔ１６ａ）。
【０１１２】
ここで、演算された座標に相当するアドレスが、読み込み元としてアクセス中のラインメモリの組（ここでは、ラインメモリＢ、Ｃ）になくなった場合、演算プロセッサ５４では、読み込み元としてアクセスするラインメモリを、当該アクセス中のラインメモリのうち古いライン番号に対応する方（具体的には、ラインメモリＢ）を非アクセス中の別のラインメモリ（具体的には、ラインメモリＡ）に切替える（メモリチェンジ）。
【０１１３】
演算プロセッサ５４では、このメモリチェンジが終了するまで待機し（期間Ｔ１６ｂ）、メモリチェンジが終了したら、新しいラインメモリの組（具体的には、ラインメモリＣ、Ａ）から、式（２）により演算された座標に相当するアドレスに格納されているデータを読み出して、式（３）の演算処理を行ない、その結果算出された画素データＰについては引き続き同一のラインメモリ（ここでは、ラインメモリＮ）に書き込む（期間Ｔ１６ｃ）。すなわち、２番目の小ライン７４の補正は、期間Ｔ１６(＝Ｔ１６ａ＋Ｔ１６ｂ＋Ｔ１６ｃ)に行われる。
【０１１４】
また、メモリチェンジと同時に、当該メモリチェンジによって、アクセス対象でなくなったラインメモリ（具体的には、ラインメモリＢ）には、ＤＭＡコントローラ５６により、メインメモリ３８から次のラインが新たにＤＭＡ転送されて上書きされる（期間Ｔ１７）。
【０１１５】
その後、ラインメモリＮに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＮの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ１８）、同様にして３番目の小ライン７４の補正演算処理が開始される。以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１１６】
なお、上記では、上記のディストーション補正部２４では、入出力のＤＭＡ転送をダブルバッファにより高速化を図っているが、ラインメモリＣ、ラインメモリＮを省略して、図１１に示す如く、シングルバッファによりＤＭＡ転送を行うことも可能である。
【０１１７】
すなわち、図１１に示すように、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ２０）。
【０１１８】
ラインメモリＡへの転送が終了したら、ＤＭＡコントローラ５６により、同様に、次のラインをラインメモリＢにＤＭＡ転送して書き込む（期間Ｔ２１）。これにより、ラインメモリＡ、Ｂには、ライン番号が互いに１つずつ異なるラインデータが書き込まれる。
【０１１９】
このようにして２ライン分の画素データがラインメモリに蓄積されたら、演算プロセッサ５４により１番目の小ライン７４の光学歪みの補正演算処理が開始され、前述のダブルバッファの場合と同様に、ラインメモリＭにその結果を書き込んでいく（期間Ｔ２２）。
【０１２０】
そして、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ２３）、ＤＭＡコントローラ５６により、メインメモリ３８からラインメモリＡに次のラインが新たにＤＭＡ転送されて上書きされる（メモリチェンジ、期間Ｔ２４）。
【０１２１】
次に、ラインメモリＡへのＤＭＡ転送が終了したら、演算プロセッサ５４により２番目の小ライン７４の光学歪みの補正演算処理が開始され、その結果を同様にラインメモリＭに書き込んでいく（期間Ｔ２５ａ）。
【０１２２】
なお、補正演算処理中のメモリチェンジについては、ダブルバッファの場合と同様に適宜行われ（期間Ｔ２６）、演算プロセッサ５４では、このメモリチェンジが終了するまで待機する（期間Ｔ２５ｂ）。そして、メモリチェンジが終了したら、演算プロセッサ５４では、引き続き補正演算処理を行なって、その結果をラインメモリＭに書き込んでいく（期間Ｔ２５ｃ）。すなわち、２番目の小ライン７４の補正は、期間Ｔ２５(＝Ｔ２５ａ＋Ｔ２５ｂ＋Ｔ２５ｃ)に行われる。
【０１２３】
その後、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に、同様にして３番目の小ライン７４の補正演算処理が開始される。以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１２４】
このように、シングルバッファでもダブルバッファの場合と同様に光学歪みを補正した画像データを得ることができる。ただし、シングルバッファの場合は、ダブルバッファの場合に比べて、内部メモリのラインメモリ、すなわちメモリ容量を削減できる代りに、処理速度が遅くなる。
【０１２５】
＜第２の実施の形態＞
第２の実施の形態では、補間方法に最近傍補間法を採用し、補正パターン１により光学歪みを補正する場合について説明する。図１２に、この場合のディストーション補正部２４の詳細構成を示す。なお、図１２では、第１の実施の形態と同一の部材については、同一の符号を付与しており、ここでは第１の実施の形態と異なる部分のみ詳細に説明する。
【０１２６】
図１２に示されているように、ディストーション補正部２４の内部メモリ５０は、２つのラインメモリＡ、Ｂから構成され、内部メモリ５２は、２つのラインメモリＭ、Ｎから構成されている。
【０１２７】
ＤＭＡコントローラ５６は、第１の実施の形態と同様に、メインメモリ３８から補正前の画像の画素データをＤＭＡ転送し、ラインメモリＡ、ＢにＹ方向の座標（ライン番号）が互いに１つずつ異なる入力ラインが格納されるように、入力ライン毎にラインメモリを切り替えて、ラインメモリＡ、Ｂに書き込む。
【０１２８】
演算プロセッサ５４は、ラインメモリＡ、Ｂに格納されているデータを補正前の画像のデータとし、最近傍補間法により、補正後の画素データを求める。
【０１２９】
ＤＭＡコントローラ５８は、第１の実施の形態と同様にラインメモリＭ又はＮに格納された画素データをＤＭＡ転送してメインメモリ３８に書き込む。
【０１３０】
最近傍補間法では、１画素の補正のために必要な補正前の画像データの画素は、１つのみ、すなわち１ライン上の画素でよいので、本実施の形態では、Ｘ軸からの距離に係わらず、どのラインにおいても入力２ライン（１ラインが２回）までで補間できる処理画素数が制限され、具体的には、Ｘ軸から最も距離が離れたラインにおいて、入力２ラインまでで補間できるように設定すればよい。入力画素数については、この処理画素数に応じて設定されている。また、補正処理順序については、第１の実施の形態と同様である（図５参照）。
【０１３１】
次に、このように構成されたディストーション補正部２４の動作を説明する。なお、演算プロセッサの処理は、補間方法を変えるだけで、基本的に図９と同じであるため、ここでは、図１３を参照して、ディストーション補正部２４の各部の動作を説明する。なお、図１３は、演算プロセッサ５４により、ＤＭＡコントローラ５６、５８に対して、ＤＭＡ転送を行うための設定が行われた後の動作を示している。
【０１３２】
図１３に示すように、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ３０）。
【０１３３】
ラインメモリＡへの転送が終了したら、ＤＭＡコントローラ５６により、同様に、次のラインをラインメモリＢにＤＭＡ転送して書き込む（期間Ｔ３１）。これにより、ラインメモリＡ、Ｂには、ライン番号が互いに１つずつ異なるラインデータが書き込まれる。
【０１３４】
最近傍補間法の場合は、１入力ライン分の画素データがあれば、１つの画素の補間処理可能であるため、ディストーション補正部２４では、最初の１ライン分の画素データがラインメモリに蓄積されたら、演算プロセッサ５４により１番目の小ライン７４の光学歪みの補正演算処理が開始される（期間Ｔ３２）。
【０１３５】
すなわち、演算プロセッサ５４では、式（２）により作成したい画像（補正後の画像）の座標に対応する補正前の画像の座標を演算し、この演算により求めた座標に最も近い画素の座標を求めて、この画素の座標に相当するラインメモリのアドレスをそれぞれ算出する。なお、１番目の小ライン７４の補正演算処理では、読み込み元のラインメモリとして、ライン番号が小さい方のラインメモリＡが指定されるようになっている。そして、ラインメモリＡから算出された当該アドレスに格納されている画素データを読み出して、これをそのまま画素データＰとして、ラインメモリＭに書き込む。
【０１３６】
そして、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ３３）、ＤＭＡコントローラ５６により、メインメモリ３８からラインメモリＡに次のラインを新たにＤＭＡ転送されて上書きされる（期間Ｔ３４）。
【０１３７】
また、この間も、演算プロセッサ５４の演算処理は継続して行われ、ラインメモリＤに書き込まれたデータが所定の処理画素数分に達した後は、ライン番号がそれぞれ１つ繰り上げるように読み込み元のラインメモリを切替える（メモリチェンジ）と共に（ここでは、ラインメモリＢに切り替える）、書き込み先についてももう一方のラインメモリ（ここでは、ラインメモリＮ）に切り替えて、同様に２番目の小ライン７４の補正演算処理が行われている（期間Ｔ３５ａ）。
【０１３８】
ここで、演算された座標に相当するアドレスが、読み込み元としてアクセス中のラインメモリ（ここでは、ラインメモリＢ）になくなった場合、演算プロセッサ５４では、読み込み元としてアクセスするラインメモリを、非アクセス中の別のラインメモリ（具体的には、ラインメモリＡ）に切替える（メモリチェンジ）。
【０１３９】
演算プロセッサ５４では、このメモリチェンジが終了するまで待機し（期間Ｔ３５ｂ）、メモリチェンジが終了したら、新しいラインメモリ（ここでは、ラインメモリＡ）から、演算された座標に相当するアドレスに格納されているデータを読み出して、画素データＰとし、引き続き同一のラインメモリ（ここでは、ラインメモリＮ）に書き込む（期間Ｔ３５ｃ）。すなわち、２番目の小ライン７４の補正は、期間Ｔ３５(＝Ｔ３５ａ＋Ｔ３５ｂ＋Ｔ３５ｃ)に行われる。
【０１４０】
また、メモリチェンジと同時に、当該メモリチェンジによって、アクセス対象でなくなったラインメモリ（具体的には、ラインメモリＢ）には、ＤＭＡコントローラ５６により、メインメモリ３８から次のラインが新たにＤＭＡ転送されて上書きされる（期間Ｔ３６）。
【０１４１】
その後、ラインメモリＮに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＮの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ３７）、同様にして３番目の小ライン７４の補正演算処理が開始される。以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正処理が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１４２】
なお、上記のディストーション補正部２４では、入出力のＤＭＡ転送をダブルバッファにより高速化を図っているが、ラインメモリＢ、ラインメモリＮを省略して、図１４に示す如く、シングルバッファによりＤＭＡ転送を行うことも可能である。
【０１４３】
すなわち、図１４では、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ４０）。
【０１４４】
ラインメモリＡへの転送が終了したら、演算プロセッサ５４により１番目の小ライン７４の光学歪みの補正演算演算が開始され、前述のダブルバッファの場合と同様に、その結果をラインメモリＭに書き込んでいく（期間Ｔ４１）。
【０１４５】
そして、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ４３）、ＤＭＡコントローラ５６により、メインメモリ３８からラインメモリＡに次のラインが新たにＤＭＡ転送されて上書きされる（メモリチェンジ、期間Ｔ４４）。
【０１４６】
次に、ラインメモリＡへのＤＭＡ転送が終了したら、演算プロセッサ５４により２番目の小ライン７４の光学歪みの補正演算処理が開始され、同様に、その結果をラインメモリＭに書き込んでいく（期間Ｔ４５ａ）。
【０１４７】
なお、補正演算処理中のメモリチェンジについては、ダブルバッファの場合と同様に適宜行われ（期間Ｔ４６）、演算プロセッサ５４では、このメモリチェンジが終了するまで待機する（期間Ｔ４５ｂ）。そして、メモリチェンジが終了したら、演算プロセッサ５４では、引き続き補正演算処理を行なって、その結果をラインメモリＭに書き込んでいく（期間Ｔ４５ｃ）。すなわち、２番目の小ライン７４の補正は、期間Ｔ４５(＝Ｔ４５ａ＋Ｔ４５ｂ＋Ｔ４５ｃ)に行われる。
【０１４８】
その後、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に、同様にして３番目の小ライン７４の補正演算処理が開始される。以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正処理が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１４９】
このように、シングルバッファでもダブルバッファの場合と同様に光学歪みを補正した画像データを得ることができる。ただし、シングルバッファの場合は、ダブルバッファの場合に比べて、内部メモリのラインメモリ、すなわちメモリ容量を削減できる代りに、処理速度が遅くなる。
【０１５０】
＜第３の実施の形態＞
第３の実施の形態では、補間方法を線形補間法を採用し、補正パターン２又は３により光学歪みを補正する場合について説明する。図１５に、この場合のディストーション補正部２４の詳細構成を示す。なお、図１５では、第１の実施の形態と同一の部材については、同一の符号を付与しており、ここでは第１の実施の形態と異なる部分のみ詳細に説明する。
【０１５１】
図１５に示されているように、ディストーション補正部２４の内部メモリ５０は、４つのラインメモリＡ〜Ｄから構成され、内部メモリ５２は、２つのラインメモリＭ、Ｎから構成されている。
【０１５２】
ＤＭＡコントローラ５６は、第１の実施の形態と同様に、メインメモリ３８から補正前の画像の画素データをＤＭＡ転送し、ラインメモリＡ〜Ｄにｙ方向の座標（ライン番号）が互いに１つずつ異なる入力ラインが格納されるように、入力ライン毎にラインメモリを切り替えて、ラインメモリＡ〜Ｄに書き込む。
【０１５３】
演算プロセッサ５４は、ラインメモリＡ〜Ｄに格納されているデータを補正前の画像のデータとし、線形補間法により、補正後の画素データを求める。線形補間法については、第１の実施の形態と同様である。
【０１５４】
ＤＭＡコントローラ５８は、第１の実施の形態と同様にラインメモリＭ又はＮに格納された画素データをＤＭＡ転送してメインメモリ３８に書き込む。
【０１５５】
また、処理画素数、入力画素数、補正処理順序については、第１の実施の形態と同様である。
【０１５６】
次に、このように構成されたディストーション補正部２４の動作を説明する。なお、演算プロセッサの処理は、補間方法を変えるだけで、基本的に図９と同じであるため、ここでは、図１６を参照して、ディストーション補正部２４の各部の動作を説明する。なお、予め、ＤＭＡコントローラ５６、５８には、ＤＭＡ転送を行うための設定が演算プロセッサ５４により行われているものとする。
【０１５７】
図１６に示すように、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ５０）。
【０１５８】
ラインメモリＡへの転送が終了したら、ＤＭＡコントローラ５６により、同様に、次のラインをラインメモリＢにＤＭＡ転送して書き込み（期間Ｔ５１）、この転送が終了したら、さらに次のラインをラインメモリＣにＤＭＡ転送して書き込み（期間Ｔ５２）、さらに次のラインをラインメモリＤにＤＭＡ転送して書き込む（期間Ｔ５３）。これにより、ラインメモリＡ〜Ｄには、ライン番号が互いに１つずつ異なるラインデータが書き込まれる。
【０１５９】
また、ディストーション補正部２４では、最初の３ライン分の画素データがラインメモリに蓄積されたら、演算プロセッサ５４により１番目の小ライン７４の光学歪みの補正演算処理が開始される（期間Ｔ５４）。なお、補正演算処理は、第１の実施の形態と同様であるため、詳細な説明は省略する。
【０１６０】
そして、１番目の小ライン７４の各画素の補正演算処理結果が、ラインメモリＭに順次書き込まれていき、ラインメモリＭに所定の処理画素数分だけ式（３）の演算により算出された画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送される（期間Ｔ５５）。
【０１６１】
また、この間も、演算プロセッサ５４の補正演算処理は継続して行われ、ラインメモリＤに書き込まれたデータが所定の処理画素数分に達した後は、書き込み先のラインメモリをもう一方のラインメモリ（ここでは、ラインメモリＮ）に切り替えて、同様に２番目の小ライン７４の補正が行われている（期間Ｔ５６ａ）。
【０１６２】
ここで、同一の小ライン７４の補正演算中に、演算された座標に相当するアドレスが、読み込み元としてアクセス中のラインメモリの組（ここでは、ラインメモリＡ、Ｂ）になくなった場合、演算プロセッサ５４では、読み込み元としてアクセスするラインメモリを、当該アクセス中のラインメモリのうち古いライン番号に対応する方（具体的には、ラインメモリＡ）を非アクセスの中で次のライン番号にラインメモリ（具体的には、ラインメモリＣ）に切替えて、引き続き２番目の小ライン７４の補正を行う（期間Ｔ５６ｂ）。
【０１６３】
ただし、補正パターン２又は３の場合は、図１７（Ａ）に示すように、１小ライン中の各画素の変位量（補正量）が最大値を有するパターンとなり、（Ｂ）に示すように糸巻き型の光学歪みの場合も、（Ｃ）に示すようにたる型の光学歪みの場合も、アクセス中から非アクセスに切り替えられたライン番号の入力ラインのデータも、同一の小ライン７４を引き続き補正している間に、再度必要になることがある。すなわち、補正パターン２又は３で光学歪みを補正する場合は、１つの小ライン７４を処理している間は、３入力ライン分のデータを常に保持しておく必要がある。このため、本実施の形態では、同一の小ライン７４を処理している間は、メモリチェンジが行われても、ＤＭＡコントローラ５６へは次の入力ラインの転送を指示しないようになっている。
【０１６４】
その後、演算された座標に相当するアドレスが、前に読み込み元としてアクセスしていたラインメモリの組に戻った場合は、演算プロセッサ５４では、読み込み元としてアクセスするラインメモリを当該元のラインメモリの組に戻し、引き続き２番目の小ライン７４の補正を行う（期間Ｔ５６ｃ）。すなわち、２番目の小ライン７４の補正は、期間Ｔ５６(＝Ｔ５６ａ＋Ｔ５６ｂ＋Ｔ５６ｃ)に行われる。
【０１６５】
その後、ラインメモリＮに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＮの画素データが読み出されて、メインメモリ３８へＤＭＡ転送されると共に（期間Ｔ５７）、同様にして３番目の小ライン７４の補正演算処理が開始される（期間Ｔ５８）。
【０１６６】
また、次の小ライン７４（ここでは、３番目の小ライン）の補正演算処理を開始したときに、最初の画素の補正のために演算された座標に相当するアドレスが、読み込み元としてそれまでアクセスしていたラインメモリの組（ここでは、ラインメモリＡ、Ｂ）になくなった場合、演算プロセッサ５４では、読み込み元としてアクセスするラインメモリを、当該アクセス中のラインメモリのうち古いライン番号に対応する方（具体的には、ラインメモリＡ）を非アクセスの中で次のライン番号にラインメモリ（具体的には、ラインメモリＣ）に切替える（メモリチェンジ）。
【０１６７】
また、このメモリチェンジと同時に、当該メモリチェンジによって、アクセス対象でなくなったラインメモリ（具体的には、ラインメモリＡ）には、ＤＭＡコントローラ５６により、メインメモリ３８から次のラインが新たにＤＭＡ転送されて上書きされる（期間Ｔ５９）。
【０１６８】
以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１６９】
なお、上記では、上記のディストーション補正部２４では、入出力のＤＭＡ転送をダブルバッファにより高速化を図っているが、ラインメモリＤ、ラインメモリＮを省略して、図１８に示す如く、シングルバッファによりＤＭＡ転送を行うことも可能である。
【０１７０】
すなわち、図１８では、まず、ＤＭＡコントローラ５６により、メインメモリ３８上の補正前の画像データの一部を連続アドレスで所定画素数分だけ読出し、ラインメモリＡにＤＭＡ転送して書き込む（期間Ｔ６０）。
【０１７１】
ラインメモリＡへの転送が終了したら、ＤＭＡコントローラ５６により、同様に、次のラインをラインメモリＢにＤＭＡ転送して書き込み（期間Ｔ６１）、この転送が終了したら、さらに次のラインをラインメモリＣにＤＭＡ転送して書き込む（期間Ｔ６２）。これにより、ラインメモリＡ〜Ｃには、ライン番号が互いに１つずつ異なるラインデータが書き込まれる。
【０１７２】
このようにして、３ライン分の画素データがラインメモリに蓄積されたら、演算プロセッサ５４により、１番目の小ライン７４の光学歪みの補正演算処理が開始され、前述のダブルバッファの場合と同様に、ラインメモリＭにその結果を書き込んでいく（期間Ｔ６３）。
【０１７３】
そして、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、１番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送される（期間Ｔ６４）。
【０１７４】
メインメモリ３８へのＤＭＡ転送が終了したら、演算プロセッサ５４により２番目の小ライン７４の光学歪みの補正演算処理が開始され、その結果を同様にラインメモリＭに書き込んでいく（期間Ｔ６５）。なお、補正演算処理中のメモリチェンジについては、ダブルバッファの場合と同様に適宜行われる。
【０１７５】
その後、ラインメモリＭに所定の処理画素数分だけ画素データＰが書き込まれたら、２番目の小ライン７４の補正が終了したとして、ＤＭＡコントローラ５８によりラインメモリＭの画素データが読み出されて、メインメモリ３８へＤＭＡ転送される（期間Ｔ６６）。その後、次の小ライン７４、すなわち３番目の小ライン７４の補正演算処理が開始される。
【０１７６】
なお、次の小ライン７４（３ライン目）の最初の画素の補正演算処理において、メモリチェンジが行われる場合には、前の小ライン７４の補正演算処理終了後に、ＤＭＡコントローラ５６により、メインメモリ３８から次のラインを新たにＤＭＡ転送して、当該メモリチェンジによってアクセス対象でなくなるラインメモリ（具体的には、ラインメモリＡ）に上書きする（期間Ｔ６７）。
【０１７７】
以降、３番目の小ライン７４、４番目の小ライン７４、…、と上記と同様の処理が繰り返されて、１短冊領域７２分の補正が行われる。このような処理を全ての短冊領域７２に対して行えば、光学歪みが補正された補正後の画像データがメインメモリ３８に記憶される。
【０１７８】
このように、シングルバッファでもダブルバッファの場合と同様に光学歪みを補正した画像データを得ることができる。ただし、シングルバッファの場合は、ダブルバッファの場合に比べて、内部メモリのラインメモリ、すなわちメモリ容量を削減できる代りに、処理速度が遅くなる。
【０１７９】
上記第１〜第３の実施の形態で示したように、画像を４つの事象７０Ａ〜Ｄに分割し、更に各事象７０内を短冊状に分割し、各短冊領域７２内において、中心から近い小ライン７４から順に補正処理を行うことにより、補正パターンの種類や補間方法の種類に寄らずに、光学歪みを簡単に補正することができ、且つ従来よりも必要とされる内部メモリの容量も削減することができる。
【０１８０】
なお、第１及び第２の実施の形態の比較により分かるように、線形補間法を採用した場合は、最近傍補間法を採用した場合よりも、式（３）で示したように演算が複雑なため、補正処理に必要とされる処理時間が長く、また、内部メモリ５０に必要とされるラインメモリの個数、すなわち内部メモリ５０のメモリ容量も多くなるため生産コストが高くなるが、その反面、線形補間法は、最近傍補間法よりも高画質な画像（補正後の画像）が得られることが一般に知られている。
【０１８１】
一方、最近傍補間法を採用した場合は、補正処理に要する処理時間が短くて済み、内部メモリ５０のメモリ容量も少なくてよいが、補正後の画像が低画質になってしまう。また、上記では説明を省略したが、補間方法に３次たたみ込み補間法を採用した場合は、線形補間法よりもさらに演算が複雑になり、処理時間が多くなるが、補正後の画像はより高画質となる。
【０１８２】
このように、補間方法によって、補正後の画質と、処理時間及び生産コストとはトレードオフの関係にあるため、実現したい補正後の画質と処理時間及び生産コストとに応じて、補間方法を適宜選択すればよい。
【０１８３】
また、補正パターン１により光学歪みを補正する場合は、周辺部を中心方向に引き寄せるように補正を行うため、補正前の画像データにない画素データを必要とし、結果として補正処理により画角が変化し、補正後の画像の画質が低下してしまう欠点があるが、その反面、第１及び第３の実施の形態の比較により分かるように、１小ライン７４の処理に必要な入力ライン数が３ラインではなく２ラインでよく、すなわち、同じ補間方法（線形補間法）を採用した場合に、補正パターン２又は３により光学歪みを補正する場合よりも、内部メモリ５０のメモリ容量が削減でき、低コスト化を図ることができる。
【０１８４】
一方、補正パターン２又は３により光学歪みを補正する場合は、周辺部を固定して補正を行うため、補正前の画像データ以外の画素データを必要とせず（或いは必要としても画素数は少ない）、画角の変化はほとんどないが、１小ライン７４の処理に必要な入力ライン数が３ラインになることがあり、必要とする内部メモリ５０のメモリ容量が多く、生産コストが高くなる。
【０１８５】
このように、補正パターンによっても、補正後の画像の画質と生産コストとは、トレードオフの関係があるため、実現したい補正後の画像の画質と生産コストとに応じて、補正パターンを適宜選択すればよい。
【０１８６】
なお、上記第１〜第３の実施の形態では、短冊領域７２（小ライン７４）の幅寸法の幅に相当する処理画素数を、当該短冊領域内の小ライン７４の位置（中心からの距離）に係わらず、入力ラインの切替が１回までになるように設定した場合を例に説明したが、本発明は、これに限定されるものではない。ただし、許容する入力ラインの切替回数が増えるほど、内部メモリ５０に必要とされるラインメモリ数が増えるため、上記のように切替回数を１回までとするのが最も好ましい。
【０１８７】
【発明の効果】
上記に示したように、本発明は、光学レンズを介して撮影された被写体像を示すデジタル画像データの光学歪みを簡単に補正し、且つこの補正に必要とされるメモリ容量を削減することができるという優れた効果を有する。
【図面の簡単な説明】
【図１】  （Ａ）は糸巻き型の光学歪みの形状、（Ｂ）はたる型の光学歪みの形状を示し、（Ｃ）は、糸巻き型及びたる型の各々の光学歪みの変位量（光学ディストーション）を示す図である。
【図２】  （Ａ）〜（Ｃ）は、補正パターンの種類を示す図である。
【図３】  線形補間法を説明するための概念図である。
【図４】  第１の実施の形態に係わるデジタルカメラの構成を示すブロック図である。
【図５】  第１の実施の形態に係わる光学歪みの補正方法及び補正順序を示す概念図である。
【図６】  補正パターン１を採用した場合の、糸巻き型の光学歪みの補正前後の画像における画素位置の対応関係を示す概念図である。
【図７】  第１の実施の形態に係わる糸巻き型の光学歪みの短冊領域毎に光学歪みを補正した場合の、補正後の短冊領域と、当該短冊領域の補正に必要な補正前の画像の領域との位置関係を示す概念図である。
【図８】  補正パターン１を採用した場合の、たる型の光学歪みの補正前後の画像における画素位置の対応関係を示す概念図である。
【図９】  第１の実施の形態に係わる演算プロセッサで短冊領域毎に実行される制御処理を示すフローチャートである。
【図１０】  第１の実施の形態のディストーション補正部の各部の動作を示すタイミングチャートである。
【図１１】  第１の実施の形態の変形例（シングルバッファ）のディストーション補正部の各部の動作を示すタイミングチャートである。
【図１２】  第２の実施の形態に係わるデジタルカメラの構成を示すブロック図である。
【図１３】  第２の実施の形態のディストーション補正部の各部の動作を示すタイミングチャートである。
【図１４】  第２の実施の形態の変形例（シングルバッファの場合）のディストーション補正部の各部の動作を示すタイミングチャートである。
【図１５】  第３の実施の形態に係わるデジタルカメラの構成を示すブロック図である。
【図１６】  第３の実施の形態のディストーション補正部の各部の動作を示すタイミングチャートである。
【図１７】  補正パターン２又は３を採用した場合の、（Ａ）は光学中心からの距離に対する変位量、（Ｂ）は糸巻き型の光学歪みの補正前後の画像における画素位置の対応関係、（Ｃ）はたる型の光学歪みの補正前後の画像における画素位置の対応関係を示す概念図である。
【図１８】  第３の実施の形態の変形例（シングルバッファの場合）のディストーション補正部の各部の動作を示すタイミングチャートである。
【符号の説明】
１０ デジタルカメラ
２４ ディストーション補正部
３８ メインメモリ
４２ バス
５０ 内部メモリ
５２ 内部メモリ
５４ 演算プロセッサ
５６ ＤＭＡコントローラ
５８ ＤＭＡコントローラ
７２ 短冊領域
７４ 小ライン
【図１】
0003897247.tif 000004
【図２】
0003897247.tif 000005
【図３】
0003897247.tif 000006
【図４】
0003897247.tif 000007
【図５】
0003897247.tif 000008
【図６】
0003897247.tif 000009
【図７】
0003897247.tif 000010
【図８】
0003897247.tif 000011
【図９】
0003897247.tif 000012
【図１０】
0003897247.tif 000013
【図１１】
0003897247.tif 000014
【図１２】
0003897247.tif 000015
【図１３】
0003897247.tif 000016
【図１４】
0003897247.tif 000017
【図１５】
0003897247.tif 000018
【図１６】
0003897247.tif 000019
【図１７】
0003897247.tif 000020
【図１８】
0003897247.tif 000021