(57)【特許請求の範囲】
【請求項１】
光学レンズを介して撮像された画像データを取得する画像取得部と、
前記画像取得部が取得した画像データを複数の小領域に分割し、分割した各小領域に含まれる画素の像高によって定まる光学歪みをもとに、当該小領域の画像データを圧縮するか否かを決定する画像データ制御部と、
前記小領域を圧縮することが決定された場合、当該小領域の画像データを圧縮してメモリに格納する画像データ圧縮部とを含み、
前記画像データ圧縮部は、圧縮率の異なる複数の圧縮アルゴリズムを有し、
前記画像データ制御部は、前記画像データ圧縮部に画像データを圧縮させる場合、前記光学歪みをもとに圧縮アルゴリズムを選択することを特徴とする画像処理装置。
【請求項２】
前記画像データ制御部は、分割した各小領域に含まれる画素の像高によって定まる光学歪みと所定のしきい値との大小関係から、前記画像データ圧縮部に当該小領域の画像データを圧縮させるか否かを決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像データ圧縮部が圧縮して前記メモリに格納された画像データを伸張してキャッシュメモリに格納する画像データ伸張部と、
前記キャッシュメモリに格納された画像データに生じている光学歪みを補正する歪曲補正部と、
予め決定される値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部とをさらに含み、
前記歪曲補正部は、前記画像データ伸張部が伸張した画像データの各画素を、それぞれ補正対象画素とするとともに、当該補正対象画素の位置と、前記歪み補正記憶部から取得した歪み補正値とをもとに、前記補正対象画素を補正するための補正用画素位置を算出し、この補正用画素位置に基づいて前記補正対象画素を補正することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
光学レンズを介して撮像された画像データを取得するステップと、
画像データを複数の小領域に分割し、分割した各小領域に含まれる画素の像高によって定まる光学歪みをもとに、当該領域を圧縮するか否かを決定するステップと、
前記領域を圧縮する場合、圧縮率の異なる複数の圧縮アルゴリズムから、前記光学歪みをもとに圧縮アルゴリズムを選択し、当該領域の画像データを圧縮してメモリに格納するステップとを含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置に関し、特に光学レンズを介して撮像された被写体像を示す画像データを補正する画像処理装置に関する。
【背景技術】
【０００２】
光学レンズは、通常、製造時のバラつきなどによって生じる各光学レンズ固有の歪曲収差を有している。これらの光学レンズを介して被写体像を撮影すると、歪曲収差によって撮影画像が歪む「光学歪み」という現象が発生する。この光学歪みは光軸中心から対象性があり、撮影時の光学レンズのズーム値（焦点距離の値）によって大きく変動する。撮像装置におけるこの光学歪みの補正に関する技術は種々提案されており、それらの中には光学レンズの撮像時のズーム値から光学歪みの補正に必要な補正係数を算出し補正を行う技術が存在する（特許文献１参照）。
【０００３】
また、光学歪みの補正においては、画像データを一時的に記憶するメモリが必要となる。しかし、一般にメモリは容量が大きければ大きいほど高額となり、またメモリのアクセス速度が高速であればあるほど高額となる。上述した種々提案されている光学歪みに関する技術の中には、光学歪みの補正時におけるメモリ領域の使用を効率化する技術も存在する（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−２１９２４６号公報
【特許文献２】特開２００６−２２２８２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、光学歪みを補正するには光学歪みが生じている画像データを格納するメモリを必要とする。これらのメモリは高価であるため、限られたメモリ容量の範囲内で光学歪み補正の補正率を高める技術が望まれている。
【０００６】
本発明はこうした状況に鑑みなされたものであり、その目的は、光学歪み補正の補正率を高める技術を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明のある態様は画像処理装置である。この装置は、光学レンズを介して撮像された画像データを取得する画像取得部と、前記画像取得部が取得した画像データを複数の小領域に分割し、分割した各小領域に含まれる画素の像高によって定まる光学歪みをもとに、当該小領域の画像データを圧縮するか否かを決定する画像データ制御部と、前記小領域を圧縮することが決定された場合、当該小領域の画像データを圧縮してメモリに格納する画像データ圧縮部とを含む。前記画像データ圧縮部は、圧縮率の異なる複数の圧縮アルゴリズムを有し、前記画像データ制御部は、前記画像データ圧縮部に画像データを圧縮させる場合、前記光学歪みをもとに圧縮アルゴリズムを選択する。
本発明の別の態様は画像補正方法である。この方法は、光学レンズを介して撮像された画像データを取得するステップと、画像データを複数の小領域に分割し、分割した各小領域に含まれる画素の像高によって定まる光学歪みをもとに、当該領域を圧縮するか否かを決定するステップと、前記領域を圧縮する場合、圧縮率の異なる複数の圧縮アルゴリズムから、前記光学歪みをもとに圧縮アルゴリズムを選択し、当該領域の画像データを圧縮してメモリに格納するステップとを含む。本方法は、例えばコンピュータのプロセッサが実行してもよい。
【０００８】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、光学歪み補正の補正率を高める技術を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施の形態に係る画像処理装置の内部構造を模式的に示す図である。
【図２】光学レンズを通して撮像した像の光学歪みとその歪曲率を説明する図である。
【図３】図３（ａ）は、画像データを所定のブロック領域とした場合の画素ブロック区分を示す図である。図３（ｂ）は光学歪みを有する画像データにおいて、所定のしきい値を超える歪曲率の画素を１画素以上有する画素ブロックを示す図である。
【図４】ズーム値と歪曲率との関係を示す図である。
【図５】図５（ａ）−（ｃ）は、撮像時のズーム値がＭの場合における光学歪みと圧縮する画像ブロックとの関係を説明する図である。
【図６】図６（ａ）−（ｃ）は、撮像時のズーム値がＮの場合における光学歪みと圧縮する画像ブロックとの関係を説明する図である。
【図７】実施の形態１に係る画像処理装置の処理の流れを説明するフローチャートの前半部である。
【図８】実施の形態１に係る画像処理装置の処理の流れを説明するフローチャートの後半部である。
【図９】画像位置の光軸からの距離と補正量の関係、及び、しきい値によって分割される領域の一例を示す図である。
【図１０】実施の形態２に係る画像処理装置の処理の流れを説明するフローチャートの前半部である。
【図１１】本発明の第２の実施の形態に係る画像処理装置の歪み補正処理の流れを説明するフローチャートの後半部である。
【発明を実施するための形態】
【００１１】
（実施の形態１）
実施の形態１の概要を述べる。実施の形態１に係る画像処理装置は、光学レンズを介して撮像した画像を複数の小領域であるブロック画像に分割し、各ブロック画像に含まれる画素の像高から定まる光学歪み量が一定値を上回る画像ブロックについては、メモリに順次格納する画像データを圧縮し、メモリから読み出すときに圧縮された画像データを伸張する。光学歪み量が一定値以下の画像ブロックについては圧縮処理および伸張処理をしない。
【００１２】
図１は、実施の形態１に係る画像処理装置１００の内部構造を模式的に示す図である。画像処理装置１００は、光学系１と撮像素子４と画像前処理部６と備える画像取得部１８、光学制御部２、歪み補正値記憶部３、歪み補正値取得部５、画像補正部７、メインメモリ１０、画像後処理部１４、記録部１５、記録媒体１６、および出力部１７を含む。
【００１３】
光学系１はズーム機能を有したレンズである。光学系１は複数枚のレンズを含み、被写体からの光情報を結像して取得する。撮像素子４は、光学系１から取得した光情報を電気情報に変換する。撮像素子４は、例えばＣＭＯＳ（Complementary metal Oxide Semiconductor）イメージセンサや、ＣＣＤ（Charge Coupled Devices）イメージセンサなどを用いて実現できる。画像前処理部６は、撮像素子４が変換した電気情報をＲＧＢ各色の信号に変換する。画像前処理部６が変換する信号はＲＧＢ信号に限られず、例えばＹＵＶ信号であってもよい。
【００１４】
光学制御部２は、光学系１のレンズを制御する。光学制御部２はまた、撮像時における光学系１のズーム値を出力する。歪み補正値記憶部３は、光学系１のズーム値についての複数のサンプル値と、その時に撮像される像の歪みを補正するための「歪み補正値」（詳細は後述する）とを紐づけて記憶する。歪み補正値取得部５は、光学制御部２から取得した光学系１における撮像時のズーム値をもとに、歪み補正値記憶部３を参照して歪み補正値を取得する。歪み補正値記憶部３に撮像時のズーム値が格納されていない場合には、歪み補正値取得部５は、歪み補正値を補間計算により取得する。
【００１５】
画像補正部７は、画像前処理部６から取得した複数ライン分の画素の画像データと、歪み補正値取得部５から取得した歪み補正値とをもとに、光学歪みを補正した画像データを作成する。詳細は後述するが、画像補正部７は、画像前処理部６から取得した画像データをメインメモリ１０に格納し、次いで歪み補正を実行する領域の画像（画素）をメインメモリ１０から読み出して歪み補正を実行する。これらを実現するために、画像補正部７は、画像データ制御部８、画像データ圧縮部９、画像データ伸張部１３、キャッシュメモリ１２、および歪曲補正部１１をさらに含む。
【００１６】
画像データ制御部８は、画像補正部７の各部を統括的に制御する。画像データ制御部８は、画像データ圧縮部９に画像データを圧縮させたり、画像データ伸張部に圧縮された画像データを伸張させたり、あるいは歪曲補正部１１に画像データの歪み補正を実行させたりする。より具体的に、画像データ制御部８は、画像取得部１８が取得した画像データを、画像データよりも小さな領域である複数のブロック領域に分割し、分割した各ブロック領域に含まれる画素の像高によって定まる光学歪みをもとに、そのブロック領域の画像データを圧縮するか否かを決定する。
【００１７】
ここで、「画素の像高」とは、画像データの画素の位置と、画像データにおける光学中心である光軸位置との距離である。通常、光軸位置は画像データの中心と一致するように設計されている。この場合、ある画素の像高は、その画素と画像中心との距離に対応する。しかしながら、例えば手ぶれ補正機能を用いて撮像した場合には、光軸位置と画素データの中心位置とが異なる場合も起こり得る。このような場合、ある画素の像高は、その画素と、画像データにおける光軸位置との距離となる。
【００１８】
詳細は後述するが、一般に画像上のある点における像高が定まれば、その点における光学歪みも一意に定まる。光学歪みが定まれば、その光学歪みを補正するための歪み補正値も定まる。画像データ制御部８は、ブロック領域における各画素位置と画像データにおける画素の像高とから定まる光学歪み補正量を求め、所定のしきい値Ｔを超える光学歪み補正量が１画素でも存在するか、１画素も存在しないか、を判定し、判定結果に基づいて、当該ブロック領域に対して後述するＲＧＢ信号の圧縮処理を実行するか否かを決定する。ここで「所定のしきい値」とは、あるブロック領域を圧縮するか否かを判断するための基準補正量であり、ブロック領域中の画素の像高から求まる光学歪みの補正量がこの基準補正量よりも大きい場合、その画素を含むブロック領域を圧縮する。「所定のしきい値」は、メインメモリ１０の容量等を考慮してその初期値を実験により定めればよく、変更可能とすることが好ましい。
【００１９】
画像データ圧縮部９は、画像データ制御部８が圧縮することを決定したブロック領域の画像データを圧縮してメモリに格納して、圧縮画像データとしてメインメモリ１０に格納する。画像データ圧縮部９は、画像データを圧縮しなくてもメインメモリ１０に格納できるのであれば、画像データ圧縮部９は画像データを圧縮しないこともあり得る。したがって、本明細書において「画像データを圧縮する」とは、圧縮率が１００％の場合、すなわち圧縮しない場合も含む。なお、本明細書において「圧縮率」とは、圧縮前のデータサイズに対する圧縮後のデータサイズの割合を百分率で表したものとする。
【００２０】
画像データ圧縮部９がブロック領域の画像データを圧縮してメインメモリ１０に格納した場合、画像データ伸張部１３は、圧縮画像データを伸張して、キャッシュメモリ１２に格納する。より具体的には、画像データ制御部８が、画像データ圧縮部９にブロック領域の画像データを圧縮させてメインメモリ１０に格納させた場合、メインメモリ１０から読み出す補正用画素を画像データ伸張部１３に伸張させる。
【００２１】
歪曲補正部１１は、画像データ制御部８を介して歪み補正値取得部５から取得した歪み補正値をもとに、キャッシュメモリ１２に格納された補正用画像データに含まれる光学歪みを補正する。補正用画像データに含まれる光学歪みの具体的な補正方法については後述する。
【００２２】
画像後処理部１４は、画像補正部７が歪み補正処理をした画像データを記録媒体１６に記録するための画像信号に変換する。記録部１５は、画像後処理部１４で変換された画像信号を記録媒体１６に記録する。出力部１７は、記録媒体１６に記録した画像信号を読み出し図示しない表示部に出力する。
【００２３】
以下、歪曲補正部１１による光学歪みの補正について説明する。
【００２４】
図２は光学レンズを通して撮像した場合の像の光学歪みとその歪曲率とを説明する図である。光学レンズを通して被写体像を撮影し、その被写体像を示す画像データを記録する場合、光学レンズが有する固有の歪曲収差に起因して、撮像画像の周辺に歪みが生じる。この歪みは、一般に光学歪みと称され、画像の角部が外側に伸びる「糸巻き型」と、逆に角部が縮む「たる型」との２種類に分けられる。何れの歪みも光学中心からの距離、すなわち像高によって歪み量が決まることが一般的に知られている。
【００２５】
図２（ａ）は「たる型」の歪みを例示する図である。図２（ａ）は、本来点Ａに撮像されるべき点が、歪みによって点Ａ’に撮像されていることを図示している。点Ａおよび点Ａ’の画像の中心からの距離をそれぞれＬ１、Ｌ２とするとき、点Ａにおける歪曲率Ｄは以下の式（１）で定義され、その単位は［％］である。
歪曲率Ｄ［％］＝１００×（Ｌ２−Ｌ１）／Ｌ１    （１）
ここで画像の中心は、光学系の中心軸と一致しているものとする。
【００２６】
図２（ａ）に示すようなたる型の歪みの場合、歪曲率Ｄは負の値となる。反対に、糸巻き型歪みの場合、歪曲率Ｄは正の値となる。ここで式（１）をＬ２について解くと、以下の式（２）を得る。
Ｌ２＝（１００＋Ｄ）／１００×Ｌ１    （２）
【００２７】
式（２）より、歪曲率Ｄを用いることで、中心からの距離がＬ１となる点Ａに本来存在すべき画素が、歪みの生じている画像上においてどの位置に存在するかを求めることができる。具体的には、中心からの距離Ｌ１に、歪曲率Ｄを用いて計算される係数を乗じた距離であるＬ２が、本来点Ａに存在すべき画素が存在する位置である。式（２）を用いて求めた位置に存在する画素を点Ａの位置に戻す画像処理を施すことにより、歪みの生じた画像を補正することができる。したがって、以下、歪曲率Ｄと歪み補正値とを同じ意味で用いる。
【００２８】
図２（ｂ）は、ある固定されたズーム値において、ｄｓｔ０〜ｄｓｔ４までの５点における歪み補正値を求める場合のそのサンプリング点を例示する図である。図２（ｃ）は、図２（ｂ）のサンプリング点ｄｓｔ４の位置における、ズーム値と歪み補正値との関係を模式的に示す図である。歪み補正値記憶部３には、各サンプリング点におけるズーム値と歪み補正値とが紐づけられて格納されている。図２（ｃ）に示すように、ズーム値と歪み補正値とは複数点が記憶されている。歪み補正値取得部５は、歪み補正値記憶部３に撮像時のズーム値が格納されていない場合には、歪み補正値を補間計算により取得する。補間計算は、例えば公知のスプライン補間を用いることで実現できる。図２（ｂ）および図２（ｃ）においてサンプリング数をいくつにするかは、正確性とデータ量とのトレードオフの関係になるため、コスト等を鑑みて実験により定めればよく、例えば２０点程度である。
【００２９】
図３、図４、図５、および図６は、ズーム値がそれぞれＭとＮとの場合における光学歪みと光学歪みの補正に必要な画像データの関係を説明する図である。以下本明細書において、ズーム値Ｍはズーム値Ｎよりも大きな値であるとする。
【００３０】
図３（ａ）は、画像データを所定のブロック領域とした場合の画素ブロック区分を示す図である。ブロック領域は、所定の画素数×所定のライン数を１ブロックのサイズとして区画される。ブロック領域のサイズはメインメモリ１０の容量や圧縮の効率等を考慮して実験により定めればよいが、例えば１６画素×８ラインや、３２画素×１６ライン等である。また、各ブロック領域の大きさは等しくなくてもよく、異なる大きさのブロック領域で画像データを区分けしてもよい。
【００３１】
「たる型」の歪曲あるいは「糸巻き型」の歪曲のどちらの場合であっても、一般に歪曲率は像高、すなわち画素位置と光軸位置との距離の二乗に比例する曲線に近似でき、画素位置が光軸位置から遠ければ遠いほど、歪曲率は大きくなる。歪曲率が大きい領域は画像の劣化が大きい領域であり、補正に使用する画像領域が歪曲率の大きい領域である場合、歪曲補正後の画像についてもその領域の劣化は大きい。しかしながら、このような領域は補正前の画像データの時点ですでに劣化が大きい領域であるため、後述する不可逆圧縮処理において画質劣化が発生したとしても、歪曲率が小さい領域に不可逆圧縮処理を適応することに比較すれば、画質の劣化は目立ちにくい。
【００３２】
上述したように、光軸位置は画像データの中心と一致することが多く、仮に一致していないとしても画像データの中心付近に位置することが多い。したがって、歪曲率が大きい領域は画像データの中心から離れた周辺領域となる。一般に、画像データ中の主要被写体は画像データの中心付近に来ることが多いと考えられるため、画像データの周辺領域の画質がより劣化したとしても、中心付近の領域が劣化する場合と比較して、その許容範囲は広い。特に、画像データが動画像データである場合には、画像データの劣化は静止画像データの劣化よりも目立ちにくいため、許容範囲はさらに広くなると考えられる。
【００３３】
図３（ｂ）は光学歪みを有する画像データにおいて、所定のしきい値Ｔを超える歪曲率の画素を１画素以上有する画素ブロックを示す図である。
【００３４】
図４は、ズーム値と歪曲率との関係を示す図である。図４に示すように、ズーム値Ｍ＞ズーム値Ｎを前提として、ズーム値Ｍにおける最大の歪曲率をＤｍ、ズーム値Ｎにおける最大歪曲率をＤｎとする。Ｄｍ、Ｄｎとも「たる型」の歪曲率を示す負の歪曲率であるため、Ｄｎ＜Ｄｍとなる。以下、歪曲率の大小関係を比較するときは、その絶対値をとることにする。すなわち、｜Ｄｍ｜＜｜Ｄｎ｜であるから、Ｄｎの方がＤｍに対してより高い歪曲率を有すものとする。なお、同じズーム値で撮像された画像データであっても、その画像データを構成する画素の像高によって歪曲率は異なる。そこで、あるズーム値において撮像した画像データ中の最大の歪曲率を用いてそのズーム値における歪曲率を表すこととする。
【００３５】
図５は、撮像時のズーム値がＭの場合における光学歪みと圧縮する画像ブロックとの関係を説明する図である。図５（ａ）は、撮像時のズーム値がＭの画像データにおける「たる型」の歪みを示す図である。図５（ａ）の光学歪みを補正するために必要なメインメモリ１０のライン数は、上述の式（２）を用いてすべてのラインにおけるすべての画素についての点Ａと点Ａ’との関係を求めることで算出することができる。図５（ｂ）は、光学歪みを補正するために必要なメインメモリ１０の容量を示す図である。図５（ｂ）においては、網点で示す領域が、光学歪みを補正するために必要なメインメモリ１０の容量である。メインメモリ１０への書き込みは図３に示す画素ブロック単位で行うことから、撮像時のズーム値がＭの画像データにおける歪曲率Ｄｍの光学歪みを補正するために必要なメインメモリ１０の容量は、図５(ｃ)で示す灰色の画素ブロック領域に該当し、その容量をＱＭとすると
ＱＭ＝ＲＧＢ信号データ量  ×  ｗ  ×  ｍ  ×  ２    （３）
となる。
ここでｗはメインメモリの幅を示し、ｍはブロック領域の高さ（ライン数）を示す。
【００３６】
図６は、撮像時のズーム値がＮの場合における光学歪みと圧縮する画像ブロックとの関係を説明する図である。図６（ａ）は、撮像時のズーム値がＮの画像データにおける「たる型」の歪みを示す図である。上述の説明と同様にして図６（ａ）の光学歪みを補正するために必要なメインメモリ１０の容量は、図６（ｂ）の網点で示す領域となる。この領域が、ズーム値がＮの場合の光学歪みを補正するために必要なメインメモリ１０の容量となる。具体的には、図６（ｃ）で示すように、そのライン数はｍ×３となる。したがって、撮像時のズーム値がＮの画像データにおける歪曲率Ｄｎの光学歪みを補正するために必要なメインメモリ１０容量ＱＮは、
ＱＮ＝ＲＧＢ信号データ量  ×  ｗ  ×  ｍ  ×  ３    （４）
となる。
【００３７】
歪曲率の絶対値が大きければ大きいほど光学歪みの補正に必要なメインメモリ１０の容量は大きくなる。仮にメインメモリ１０容量が前記式（３）と同値である場合、歪曲率Ｄｍの光学歪み補正は実行することができるが、Ｄｍより高い歪曲率の補正はメインメモリ１０の容量不足により実行できず、したがって歪曲率Ｄｎの光学歪み補正は実行できない。
【００３８】
メインメモリ１０容量が前記式（３）と同値であっても、歪曲率Ｄｎの光学歪みを補正するために、画像データ制御部８は、画像データ圧縮部９に画像データを圧縮させる。画像データ圧縮部９が圧縮すべき画像データ量の圧縮率の最大値をＣとしたとき、
Ｃ  ×  Ｌ  ＋（ｗ  ×  ３  −  Ｌ）  ≦  ｗ  ×  ２    （５）
で表される式（５）を満たす圧縮処理を実行できれば、歪曲率Ｄｎにおいて光学歪み補正を実行できる。ここで、Ｌは圧縮処理を行う画素ブロック数を示す。
【００３９】
ここで、Ｃは圧縮アルゴリズムによって固有の固定値である。したがって、撮像時のズーム値がＮの場合、所定のしきい値Ｔを超える歪曲率の画素を１画素以上有する画素ブロックの数Ｌが、上記（５）式を満たすように、所定のしきい値Ｔを設定することにより、ズーム値がＮの画像データにおける歪曲率Ｄｎの光学歪みを補正することができる。これは例えば画像データ制御部８が、式（５）を評価しながら所定のしきい値Ｔを徐々に変更し、式（５）を満たすしきい値Ｔを探索して見つけることで実現できる。
【００４０】
画像データ量の圧縮率ＣはＲＧＢ信号データ量をＲＧＢ各８ｂｉｔの２４ｂｉｔとすると、２４ｂｉｔを１８ｂｉｔに圧縮した場合はＣ＝０．７５となり、２４ｂｉｔを１２ｂｉｔに圧縮した場合はＣ＝０．５となる。画像データ圧縮部９は、圧縮伸張処理は公知であるゼロ圧縮やハフマンコードを利用した圧縮など、種々の圧縮伸張アルゴリズムが利用できるが、圧縮後のビット幅が一定とならない可変長データ圧縮伸張回路の実装は計算コストの増大から回路規模が大きくなるため、固定長データ圧縮伸張回路の実装が好ましい。
【００４１】
圧縮率Ｃの値がより低くなる圧縮伸張アルゴリズムを使用することで、メインメモリ１０容量に制限がある場合であっても、より高い歪曲率の光学歪み補正が可能となる。しかしながら、より圧縮率Ｃが低くデータの可逆性がない圧縮伸張アルゴリズムを使用した場合、補正後の画像データは正しい数値より外れた数値となり、最終的には出力画像の画質劣化の要因ともなりうる。しかしながら、上述したように、高い歪曲率となるのは画像データの周辺領域である。したがって、仮に可逆性がない圧縮伸張アルゴリズムを使用して画像データが劣化したとしても、画像の中央部が劣化した場合と比較して目立ちにくいと考えられる。
【００４２】
図７は、実施の形態１に係る画像処理装置１００の処理の流れを説明するフローチャートの前半部である。本フローチャートにおける処理は、例えば画像処理装置１００が起動したときに開始する。
【００４３】
画像取得部１８中の撮像素子４は、被写体から放出され光学制御部２によってズーム値の制御を受けた光学系１で集光された光信号を電気信号に変換する（Ｓ０）。画像前処理部６は、撮像素子４が変換した電気信号を画像データに変換する（Ｓ１）。ここで画像前処理部６は、撮像素子４が変換したが総データの左上を先頭としてラインごとに順次に右下に至るまで、画像データを画像補正部７に出力する。この時点では光学歪み補正処理を行っていないため、画像データには光学歪みが発生している。
【００４４】
歪み補正値取得部５は、歪み補正値記憶部３に記憶したズーム値についての複数のサンプル値を参照して、光学制御部２における撮像時のズーム値と同値、または最も近いサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値の差に応じた補間計算によって、実際の歪み補正値を取得する（Ｓ２）。
【００４５】
画像データ制御部８は、歪み補正値取得部５が取得した歪み補正値から画像データの各画素位置の歪み補正量を算出し、算出した歪み補正量に対応する光学歪みと所定のしきい値Ｔとを比較して、ブロック領域単位で圧縮処理が必要であるかを判定する（Ｓ３）。
【００４６】
画像データ制御部８が画像データ圧縮部９にブロック領域の圧縮処理をさせる必要があると判断した場合（Ｓ３のＹ）、画像データ圧縮部９はそのブロック領域における画像データの圧縮処理を行う（Ｓ４）。
【００４７】
画像データ制御部８が画像データ圧縮部９にブロック領域の圧縮処理をさせる必要がないと判断した場合（Ｓ３のＮ）、画像データ圧縮部９は圧縮処理をしない。
【００４８】
画像データ圧縮部９は、画像データを、ブロック領域単位でラインメモリであるメインメモリ１０に書き込む（Ｓ５）。メインメモリ１０は容量に上限があるため、画像データ制御部８は、メインメモリ１０がいっぱいである場合、上位のライン、すなわち画像データを記録したタイミングが最も過去のラインから順に消去して新しいラインを記録する。
【００４９】
図８は、実施の形態１に係る画像処理装置１００の処理の流れを説明するフローチャートの後半部である。
【００５０】
画像補正部７の画像データ制御部８は、光学制御部２から取得した撮影時のズーム値における歪み補正値をもとに、１ライン分の歪み補正処理に必要な水平画素位置、垂直ラインを計算し、メインメモリ１０に記録した複数ライン分の全画素画像データから補正用画像データを読み出すブロック領域の位置を決定する（Ｓ６）。
【００５１】
画像補正部７の画像データ制御部８は、ステップＳ６の結果をもとに、メインメモリ１０から補正用画像データを含む画素ブロックを画像データ伸張部１３に読み出させる（Ｓ７）。
【００５２】
画像補正部７の画像データ伸張部１３は、ステップＳ７の処理において読み出した補正用画像データを含む画素ブロックに対して、ステップＳ４の処理において圧縮処理が実行されているかを判定する（Ｓ８）。
【００５３】
画像データ圧縮部９が画像データを圧縮した場合（Ｓ８のＹ）、画像データ制御部８は、画像データ伸張部１３に、画像データ圧縮部９がした圧縮処理に対応した伸張処理を実行させるとともに、伸張したブロック領域に含まれる補正用画像データをキャッシュメモリ１２に格納させる（Ｓ９）。
【００５４】
画像データ圧縮部９が画像データを圧縮していない場合（Ｓ８のＮ）、画像データ制御部８は、画像データ伸張部１３に伸張処理を実行させずに、ブロック領域に含まれる補正用画像データをキャッシュメモリ１２に格納させる。
【００５５】
画像補正部７の歪曲補正部１１は、画像データ制御部８の制御の下、キャッシュメモリ１２に保持した歪み補正処理に必要な水平画素位置、垂直ラインの画像データ、及び、その周辺画素位置、ライン位置における画像データを取り出して画素補間処理を行い、１点の画素位置における歪み補正処理した結果の画像データを算出する（Ｓ１０）。なお、キャッシュメモリ１２の空き容量が不足する場合、画像データ伸張部１３は、キャッシュメモリ１２に格納されている古い画像データに新しい画像データを上書きする。
【００５６】
１ライン分の処理が終了した場合、画像データ制御部８は、全ラインの補正が終了しているかどうかを判定し（Ｓ１１）、全入力ラインの補正が終了していない場合（Ｓ１１のＮ）、ステップＳ６に戻る。
【００５７】
全ラインの補正が終了している場合（Ｓ１１のＹ）、画像後処理部１４は、補正された画像データを記録媒体１６に記録する際の信号仕様の変換や圧縮処理等の信号変換を行う（Ｓ１２）。記録部１５は、画像後処理部１４より取得した画像信号を記録媒体１６に記録する（Ｓ１３）。出力部１７は、記録媒体１６に記録した画像信号を図示しない表示部で表示するための仕様にあわせて表示する（Ｓ１４）。記録媒体１６に記録した画像信号が表示されると、本フローチャートにおける処理は終了する。
【００５８】
以上の構成による動作は以下のとおりである。ユーザが実施の形態１に係る画像処理装置１００を用いて画像を撮像すると、歪み補正値取得部５は撮像時のズーム値と、歪み補正値記憶部３から取得したズーム値のサンプル値、及び、このサンプル値に対応する歪み補正値とに基づいて、撮像時のズーム値に対応する歪み補正値を補間計算によって取得する。画像データ制御部８は、画像データに設けられた各ブロック領域における画素の像高によって定まる光学歪みをもとに、そのブロック領域の画像データを圧縮するか否かを決定する。画像データ圧縮部９は、画像データ制御部８が圧縮すべきと決定したブロック領域の画像データを圧縮してメインメモリ１０に記録する。画像データ圧縮部９は、画像データ制御部８が圧縮しないと決定したブロック領域の画像データは圧縮せずにメインメモリ１０に記録する。
【００５９】
画像データ制御部８は歪み補正値をもとに光学歪みを補正するために必要な補正用画像データ位置を決定する。画像データ制御部８はまた、補正用画像データ位置を含むブロック領域を特定し、画像データ伸張部１３にブロック領域単位でメインメモリ１０から読み出させる。画像データ伸張部１３は読み出した補正用画像データを含むブロック領域を伸張する。
【００６０】
このように、各ブロック領域に含まれる画素の像高から定まる光学歪みと所定のしきい値Ｔとの比較判定結果に基づいて、画像データの画素ブロック単位における圧縮伸張処理をするか否かを決定することで、メインメモリ１０容量の不足により高い補正率の光学歪み補正処理が実行できない場合には、画像データを圧縮することでメインメモリ１０に格納し、光学歪み補正処理を実行することが可能となる。画像データを圧縮する場合、圧縮伸張処理によって画質劣化を伴うことにもなりうるが、画像データを圧縮しなくてもメインメモリ１０の容量が不足しない場合には、従来と同等の画質性能を保ちつつ補正率の光学歪み補正処理が実現できる。
【００６１】
画像データの中心と光軸位置とが常に一致する場合には、光学歪みの度合いは画像データの中心に対して対称に分布する。このような場合、画像データの画素ブロック単位ではなく、ライン単位で圧縮伸張処理をするか否かを決定すれば足りる。しかしながら、上述のとおり画像データの中心と光軸位置とがずれる場合も生じうる。このような場合、画像データを画素ブロック単位に分割し、小領域毎に圧縮伸張処理をするか否かを決定することにより、きめ細かな処理が可能となり、メインメモリ１０の使用効率を高めることが可能となる。
【００６２】
以上説明したように、実施の形態１に係る画像処理装置１００によれば、光学歪みの量が高いために一定量のメモリでは補正できない画像データの入力に対して、画質劣化を抑えながら光学歪み補正を実現できる。
【００６３】
（実施の形態２）
実施の形態２の概要を述べる。実施の形態２に係る画像処理装置１０１は、２つのしきい値ＰとＱ（ただし、Ｐ＜Ｑ）を用意し、各ブロック領域の画素の像高から定まる光学歪み量を補正するための補正値が、以下の３つのケースのいずれに該当するかを判定する。
ケース１：しきい値Ｐ未満の場合
ケース２：しきい値Ｐ以上しきい、かつ値Ｑ未満の場合
ケース３：しきい値Ｑ以上の場合
【００６４】
判定の結果、ブロック領域に含まれる画素の像高から定まる光学歪み量が分類されるケースが最も多いケースを、そのブロック領域の該当ケースとし、３つのケースそれぞれに用意されている圧縮伸張アルゴリズムを用いてそのブロック領域の画像データを圧縮処理する。さらに、メインメモリ１０から読み出す該当ブロック領域に対しては、適用した圧縮アルゴリズムと一対一の関係となる伸張アルゴリズムを適用して伸張する。これにより、圧縮伸張処理なしではメモリ量の不足により補正処理を実行できない大きさの光学歪み量を有する画像データに対して補正処理を実行できる。また、それぞれ異なる複数の圧縮率の圧縮伸張アルゴリズムを適宜使用することで、圧縮伸張による画質劣化を極力抑えた補正処理を実行できる。
【００６５】
実施の形態２に係る画像処理装置１０１は、実施の形態１に係る画像処理装置１００と内部構造は同等であるため、画像処理装置１０１の内部構造を示す図として図１を流用して説明する。以下、実施の形態１に係る画像処理装置１００と重複する説明は適宜省略または簡略化して記載する。
【００６６】
以下、図１を実施の形態２に係る画像処理装置１０１の内部構造を模式的に示す図として以下を説明する。画像処理装置１０１は、光学系１と撮像素子４と画像前処理部６と備える画像取得部１８、光学制御部２、歪み補正値記憶部３、歪み補正値取得部５、画像補正部７、メインメモリ１０、画像後処理部１４、記録部１５、記録媒体１６、および出力部１７を含む。
【００６７】
画像処理装置１０１において、画像データ圧縮部９は、圧縮率の異なる複数の圧縮アルゴリズムを有する。これらのアルゴリズムは、上述した３つのケースに対応付けられている。画像データ制御部８は、各ブロック領域に含まれる画素の像高から定まる光学歪みが、２つのしきい値ＰおよびＱによって分割される３つのケースのうちどのケースに該当するかを調べる。その結果、最も多く該当したケースに対応付けられている圧縮アルゴリズムを、そのブロック領域における画像データの圧縮処理として採用する。以下、説明の便宜上、圧縮アルゴリズムの数を３つとし、それぞれが上述した３つのケースのいずれかに対応する場合について説明するが、圧縮アルゴリズムの数やケースの数は３に限られず、増減することができることは当業者には容易に理解されることである。
【００６８】
画像データ制御部８は、画像データ圧縮部９において選択された圧縮アルゴリズムに対応する伸張アルゴリズムを使用して画像データ伸張部１３に補正用画像データを伸張させる。
【００６９】
図９は、画像位置の光軸からの距離と補正量の関係、及び、しきい値によって分割される領域の一例を示す図である。図９において、光軸からの距離がＯからＮまでを領域Ｆａ、光軸からの距離がＮからＭまでを領域Ｆｂ、光軸からの距離がＭ以上の領域をＦｃとする。領域Ｆａにおける補正量の絶対値は最も大きく、領域Ｆｃにおける補正量の絶対値が最も小さい。
【００７０】
画像データ制御部８は、各ブロック領域に含まれる各画素について、光軸からの距離である像高を求める。求めた像高がＦａの範囲内である画素位置をもっとも多く含むブロック領域には、圧縮率Ｃの値が最も低く画質劣化が最も激しい不可逆圧縮アルゴリズムＡを選択する。画像データ制御部８は、求めた像高が領域Ｆｃの範囲内となる画素位置をもっとも多く含むブロック領域には、圧縮率Ｃの値が最も高く画質劣化の生じない可逆圧縮アルゴリズムＣを選択する。同様に、画像データ制御部８は、求めた像高が領域Ｆｂの範囲内である画素位置をもっとも多く含むブロック領域には両者の中間的な性質を持つ圧縮アルゴリズムＢを選択する。画像データ圧縮部９は、画像データ制御部８が選択した圧縮アルゴリズムを用いて、ブロック領域の画像データを圧縮する。
【００７１】
画像データ伸張部１３は、画像データ圧縮部９が圧縮に用いたアルゴリズムに対応する伸張アルゴリズムを用いてブロック領域の画像データを伸張する。具体的には、画像データ圧縮部９が圧縮アルゴリズムＡを用いて圧縮したブロック領域には、対応する伸張アルゴリズムＡを用いて伸張する。同様に画像データ伸張部１３は、画像データ圧縮部９が圧縮アルゴリズムＢを用いて圧縮したブロック領域には伸張アルゴリズムＢを用い、圧縮アルゴリズムＣを用いて圧縮したブロック領域には伸張アルゴリズムＣを用いて伸張処理を行う。
【００７２】
図１０は、実施の形態２に係る画像処理装置１０１の処理の流れを説明するフローチャートの前半部である。本フローチャートにおいて、ステップＳ２０からステップＳ２２までの各処理は、それぞれ図７におけるステップＳ０からステップＳ２までの各処理と同様である。
【００７３】
画像データ制御部８は、歪み補正値取得部５が取得した歪み補正値から画像データの各画素位置の歪み補正量を算出し、算出した歪み補正量に対応する光学歪みと所定のしきい値Ｔとを比較して、ブロック領域単位で圧縮処理が必要であるかを判定する（Ｓ２３）。
【００７４】
画像データ制御部８が、ブロック領域の圧縮処理が必要であると判断した場合（Ｓ２３のＹ）、画像データ制御部８はさらに、対象ブロック領域に含まれる画素の像高がＦａ、Ｆｂ、Ｆｃのいずれに該当するか判定し、いずれの領域に該当する画素位置がもっとも多いか算出した結果から画像データの圧縮処理に使用する圧縮アルゴリズムを選択する（Ｓ２４）。
【００７５】
画像データ圧縮部９は、画像データ制御部８が選択した圧縮アルゴリズムを使用して、ブロック領域の画像データを圧縮する（Ｓ２５）。
【００７６】
画像データ制御部８が圧縮処理の必要はないと判断した場合（Ｓ２３のＮ）、画像データ制御部８は画像データ圧縮部９に特段の処理をさせない。
【００７７】
ステップＳ２６の処理は、図７におけるステップＳ５の処理と同様である。
【００７８】
図１１は、実施の形態２に係る画像処理装置１０１の処理の流れを説明するフローチャートの後半部である。
【００７９】
ステップＳ２７からステップＳ２９までの各処理は、それぞれ図８におけるステップＳ６からステップＳ８までの各処理と同様である。
【００８０】
画像データ圧縮部９が画像データを圧縮した場合（Ｓ２９のＹ）、画像データ伸張部１３は、ステップＳ２４において選択実行した圧縮アルゴリズムに対応した伸張アルゴリズムを選択する（Ｓ３０）。
【００８１】
画像データ制御部８は、ステップＳ３０において選択した伸張アルゴリズムを使用して補正用画像データを含むブロック領域を伸張させるとともに、伸張した画素ブロックから補正用画像データ取り出しキャッシュメモリ１２に格納させる（Ｓ３１）。
【００８２】
画像データ圧縮部９が画像データを圧縮していない場合（Ｓ２９のＮ）、画像データ制御部８は、画像データ伸張部１３に特段の処理をさせない。ステップ３２からステップ３６までの各処理は、それぞれ図８におけるステップＳ１０からステップＳ３６までの各処理と同様である。
【００８３】
以上の構成による動作は以下のとおりである。ユーザが実施の形態２に係る画像処理装置１０１で画像を撮像すると、歪み補正値取得部５は撮像時のズーム値と、歪み補正値記憶部３から取得したズーム値のサンプル値、及び、このサンプル値に対応する歪み補正値とに基づいて、実際の歪み補正値を補間計算によって取得する。画像データ制御部８は、画像データの画素の像高から定まる光学歪みを補正するための歪曲補正量と、所定のしきい値との比較判定結果に基づいて画像データに設定されたブロック領域単位で圧縮アルゴリズムを選択する。画像データ圧縮部９は、画像データ制御部８が選択した圧縮アルゴリズムを使用してブロック領域の画像データを圧縮し、メインメモリ１０に記録する。
【００８４】
画像データ制御部８は、歪み補正値をもとに光学歪みを補正するために必要な補正用画像データ位置を決定するとともに、補正用画像データ位置を含むブロック領域を特定する。画像データ伸張部１３は、画像データ制御部が特定したしブロック領域をメインメモリ１０が読み出すとともに、画像データ圧縮部９において選択実行された圧縮アルゴリズムに対応した伸張アルゴリズムを使用して補正用画像データを伸張する。
【００８５】
画像データ制御部８は、画像データに設定されたブロック領域を単位として、そのブロック領域に含まれる画素の像高から定まる光学歪みを補正するための歪み補正量と、所定のしきい値との比較判定結果に基づいてそのブロック領域に適用する圧縮伸張アルゴリズムを選択することになる。各圧縮アルゴリズムは圧縮率が異なるため、歪み補正量に応じて適切なアルゴリズムを選択して圧縮伸張処理をすることが可能となる。メインメモリ１０の容量に上限があり、メインメモリ１０容量の不足により高い補正率の光学歪み補正処理が実行できない場合には、圧縮伸張処理をすることで光学歪み補正が可能となる。圧縮伸張処理による画質劣化を伴う場合があるものの、複数の圧縮伸張アルゴリズムを適宜使い分けることにより、画質劣化を歪曲率に応じて段階的に制御できる。
【００８６】
以上説明したように、実施の形態２に係る画像処理装置１０１によれば、特定のズーム値区間において歪曲率が高く、一定量のメモリでは補正できない画像データの入力に対して、画質劣化を段階的に調整しながら光学歪み補正を実現できる。
【００８７】
特に、光学歪みの大きいブロック領域においては高い圧縮率の圧縮アルゴリズムを用いて圧縮することで、光学歪みの補正を実現することができる。特に、画像データの圧縮アルゴリズムにおいて、圧縮率・伸張率を不可逆の領域に高めることで、画質劣化を伴う場合があるものの、光学歪み補正することが可能な歪曲率の範囲を広げることが可能となる。光学歪みが小さく、圧縮処理や伸張処理をしなくてもメインメモリの量が十分である場合には、不可逆の圧縮処理・伸張処理を用いず、画質劣化のない光学歪み補正を実現することも可能となる。
【００８８】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８９】
（変形例１）
上述した実施の形態２においては、画素の像高の取り得る範囲を複数の小領域に分割し、分割したそれぞれの領域に対して個別の圧縮伸張アルゴリズムを用意する場合、すなわち、圧縮率を離散的に用意する場合について説明した。画像データ圧縮部９は、圧縮率を連続的に変更可能なアルゴリズムを用いてもよい。これにより、メインメモリ１０に画像データを格納する際に圧縮処理が必要な場合に、圧縮後の画像データがメインメモリ１０にちょうど収まるように圧縮率を設定することができる。一般に、圧縮率の高い圧縮が施された画像データは、圧縮率が低い圧縮が施された画像データよりも、画像の劣化が抑制できる。メインメモリ１０の利用限度まで圧縮率を高めることにより、画像劣化を抑えつつ、画像補正を実行できるようになる点で有利である。
【００９０】
（変形例２）
上述した実施の形態２においては、画像データ制御部８が、複数のアルゴリズムのうちいずれの圧縮アルゴリズムおよび伸張アルゴリズムを選択する場合について説明したが、アルゴリズムを選択する主体は画像データ制御部８には限られない。例えば、画像データ圧縮部９が圧縮アルゴリズムを選択してもよい。また、例えば画像データ伸張部１３が、圧縮アルゴリズムを選択した画像データ圧縮部９から選択したアルゴリズムの通知を受け取ってもよい。
【符号の説明】
【００９１】
１  光学系、  ２  光学制御部、  ３  補正値記憶部、  ４  撮像素子、  ５  補正値取得部、  ６  画像前処理部、  ７  画像補正部、  ８  画像データ制御部、  ９  画像データ圧縮部、  １０  メインメモリ、  １１  歪曲補正部、  １２  キャッシュメモリ、  １３  画像データ伸張部、  １４  画像後処理部、  １５  記録部、  １６  記録媒体、  １７  出力部、  １８  画像取得部、  １００、１０１  画像処理装置。
【図１】
0005811879.tif 000002
【図２】
0005811879.tif 000003
【図３】
0005811879.tif 000004
【図４】
0005811879.tif 000005
【図５】
0005811879.tif 000006
【図６】
0005811879.tif 000007
【図７】
0005811879.tif 000008
【図８】
0005811879.tif 000009
【図９】
0005811879.tif 000010
【図１０】
0005811879.tif 000011
【図１１】
0005811879.tif 000012