画像補正装置および画像補正方法
【課題】メインメモリ量やキャッシュメモリ量を節約しつつ光学歪み補正機能を実現する技術を提供する。
【解決手段】ラインメモリ10は、光学レンズを介して撮像した画像データを記憶する。歪み補正値記憶部3は、前記光学レンズが有する歪曲収差によって前記画像データに生じた光学歪みの補正に用いる歪み補正値を記憶する。画像データ制御部8は、ラインメモリ10に記憶された画像データの各画素を、前記光学歪みを補正するための補正対象画素とするとともに、補正対象画素の位置と、歪み補正値記憶部3から取得した歪み補正値とをもとに、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定してラインメモリ10から読み出す。歪曲補正部11は、前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とをもとに、前記補正対象画素の画素値を決定する。
【解決手段】ラインメモリ10は、光学レンズを介して撮像した画像データを記憶する。歪み補正値記憶部3は、前記光学レンズが有する歪曲収差によって前記画像データに生じた光学歪みの補正に用いる歪み補正値を記憶する。画像データ制御部8は、ラインメモリ10に記憶された画像データの各画素を、前記光学歪みを補正するための補正対象画素とするとともに、補正対象画素の位置と、歪み補正値記憶部3から取得した歪み補正値とをもとに、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定してラインメモリ10から読み出す。歪曲補正部11は、前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とをもとに、前記補正対象画素の画素値を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光学レンズを介して被写体像を撮影し、前記被写体像を示す画像データを記録する画像補正装置に関する。
【背景技術】
【0002】
光学レンズは、通常、製造時のバラつきなどによって生じる各光学レンズ固有の歪曲収差を有している。これらの光学レンズを介して被写体像を撮影すると、上述の歪曲収差によって撮影画像が歪む光学歪みという現象が発生する。この光学歪みは、撮像時のレンズズーム値に応じて歪み量が変化することが知られている。撮像装置におけるこの光学歪みの補正に関する技術は種々提案されており、それらの中には光学歪みの補正時におけるメモリ領域の使用を効率化する技術が存在する(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−222827号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、光学歪みを補正するには光学歪みが生じている画像データを格納するメインメモリと、メインメモリから読み出した画像データを一時保存するキャッシュメモリとを必要とする。これらのメモリは高価であり、またメモリアクセスには計算コストがかかるため、撮像装置に搭載するメモリの量を抑えつつより効率的にメモリアクセスをするための技術が望まれている。
【0005】
本発明はこうした状況に鑑みなされたものであり、その目的は、メインメモリ量やキャッシュメモリ量を節約しつつ光学歪み補正機能を実現する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明のある態様は画像補正装置である。この装置は、光学レンズを介して撮像して得た画像データを順次記憶する所定ライン数のラインメモリと、予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部と、前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出す画像データ制御部と、前記画像データ制御部が読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定する歪曲補正部とを含む。
【0007】
本発明の別の態様は画像補正方法である。この方法は、光学レンズを介して撮像して得た画像データを、所定ライン数のラインメモリに順次記憶するステップと、予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部から歪み補正値を取得するステップと、前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出すステップと、読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定するステップとをプロセッサに実行させる。
【0008】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0009】
本発明によれば、メインメモリ量やキャッシュメモリ量を節約しつつ光学歪み補正機能を実現する技術を提供することができる。
【図面の簡単な説明】
【0010】
【図1】実施の形態1に係る画像補正装置の内部構造を模式的に示す図である。
【図2】光学レンズを通して撮像した場合の像の光学歪みとその歪曲率とを説明する図である。
【図3】光学歪みの程度と補正に必要な画像データ領域との関係を模式的に示す図である。
【図4】補正制御部が光学歪みの補正のために読み出す固定サイズの補正用画像データを模式的に示す図である。
【図5】補正部における画素補間を説明する図である。
【図6】補正部における画素補間の終端処理を説明する図である。
【図7A】実施の形態1に係る画像補正装置の処理の流れを説明するフローチャートの前半部である。
【図7B】実施の形態1に係る画像補正装置の処理の流れを説明するフローチャートの後半部である。
【図8】実施の形態2に係る画像補正装置の内部構造を模式的に示す図である。
【図9】実施の形態2に係るラインメモリ最大使用量取得部の処理の流れを説明するフローチャートである。
【図10】実施の形態3に係る画像データ制御部の内部構造を模式的に示す図である。
【図11】光学歪みとその光学歪みを補正するために必要な垂直ライン数との関係を説明する図である。
【図12】実施の形態3に係る画像補正装置の処理の流れを説明するフローチャートである。
【図13】実施の形態4に係る画像補正装置の内部構造を模式的に示す図である。
【図14A】実施の形態4に係る画像補正装置の処理の流れを説明するフローチャートの前半部である。
【図14B】実施の形態4に係る画像補正装置の処理の流れを説明するフローチャートの後半部である。
【発明を実施するための形態】
【0011】
(実施の形態1)
実施の形態1の概要を述べる。実施の形態1に係る画像補正装置100は、画像データの光学歪みを画像補間技術を用いて補正する際、補正に用いる補正用画像データを固定サイズのブロック単位でラインメモリからキャッシュメモリに読み込んで補正処理を実行する。
【0012】
図1は、実施の形態1に係る画像補正装置100の内部構造を模式的に示す図である。画像補正装置100は、光学系1、光学制御部2、歪み補正値記憶部3、撮像素子4、歪み補正値取得部5、画像前処理部6、画像補正部7、ラインメモリ10、画像後処理部12、記録部13、記録媒体14、および出力部15を含む。
【0013】
光学系1はズームレンズ等の複数枚のレンズを含み、被写体からの光情報を結像して取得する。撮像素子4は、光学系1から送信された光情報を電気情報に変換する。撮像素子4は、例えばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサやCCD(Charge Coupled Devices)イメージセンサなどを用いて実現できる。
【0014】
画像前処理部6は、撮像素子4が変換した電気情報をRGB各色の信号に変換する。ラインメモリ10は、画像前処理部6が変換したRGB信号を、画像素子を平面に見立て水平方向を画素、垂直方向をラインとしたときの複数ライン分の全画素RGB信号を記録する。ただしラインメモリ10は1枚の画像データにおけるRGB信号すべてを記録するだけの容量はなく、画像データの一部を部分画像データとして記憶する。このため、ラインメモリ10が一杯となった場合、上位のラインから順に消去して新しいラインにデータを記録する。
【0015】
光学制御部2は、光学系1のレンズを制御する。光学制御部2はまた、撮像時における光学系1のズーム値を出力する。歪み補正値記憶部3は、光学系1のズーム値についての複数のサンプル値と、その時に撮像される像の歪みを補正するための「歪み補正値」(詳細は後述する)とを紐づけて記憶する。歪み補正値取得部5は、光学制御部2から取得した光学系1における撮像時のズーム値をもとに、歪み補正値記憶部3を参照して歪み補正値を取得する。歪み補正値記憶部3に撮像時のズーム値が格納されていない場合には、歪み補正値取得部5は、歪み補正値を補間計算により取得する。
【0016】
画像補正部7は、ラインメモリ10から取得した複数ライン分の全画素RGB信号と歪み補正値取得部5から取得した歪み補正値とをもとに、光学歪みを補正したRGB信号を作成する。そのため、画像補正部7はさらに、画像データ制御部8、キャッシュメモリ9、および歪曲補正部11を含む。
【0017】
画像データ制御部8は、画像前処理部6からRGB信号を取得してラインメモリ10に記録する。画像データ制御部8はまた、歪み補正に必要なラインメモリ10のRGB信号領域を算出し、その領域を補正用画像データとして読み出してキャッシュメモリ9に格納する。ここで画像データ制御部8は、補正用画像データとして固定サイズのブロック単位でRGB信号領域を算出する。具体的には、画像データ制御部8は、水平方向を前記画像データ1ライン分の画素数の1/N(Nは2以上の正の整数)、垂直方向を前記画像データ垂直ライン数の1/M(Mは2以上の正の整数)からなるブロック単位でRGB信号領域を補正用画像データとして算出する。
【0018】
歪曲補正部11は、画像データ制御部8を介して歪み補正値取得部5から取得した歪み補正値をもとに、キャッシュメモリ9に読み出した補正用画像データの光学歪みを補正する。光学歪みの補正に際してキャッシュメモリ9に読み出す補正用画像データのサイズが固定されているため、メモリの割り当て等のメモリアクセス時の処理が抑制でき、計算コストを削減できる。また、キャッシュメモリ9のサイズも固定できることから、製造コストを抑制しうる点で有利である。
【0019】
画像後処理部12は、画像補正部7が歪み補正処理をしたRGB信号を記録媒体14に記録するための画像信号に変換する。記録部13は、画像後処理部12で変換された画像信号を記録媒体14に記録する。出力部15は、記録媒体14に記録した画像信号を読み出し図示しない表示部に出力する。
【0020】
図2は光学レンズを通して撮像した場合の像の光学歪みとその歪曲率とを説明する図である。光学レンズを通して被写体像を撮影し、その被写体像を示す画像データを記録する場合、光学レンズが有する固有の歪曲収差に起因して、撮像画像の周辺に歪みが生じる。この歪みは、一般に光学歪みと称され、画像の角部が外側に伸びる「糸巻き型」と、逆に角部が縮む「たる型」との2種類に分けられ、何れの歪みも光学中心からの距離によって歪み量が決まることが一般的に知られている。
【0021】
図2(a)は「たる型」の歪みを例示する図である。図2(a)においては、本来点Aに撮像されるべき点が、歪みによって点A’に撮像されている。点Aおよび点A’の画像の中心からの距離をそれぞれL1、L2とするとき、点Aにおける歪曲率Dは以下の式で定義され、その単位は[%]である。
歪曲率D[%]=100×(L2−L1)/L1 (1)
ここで画像の中心は、光学系の中心軸と一致しているものとする。
【0022】
図2(a)に示すような樽型の歪みの場合、歪曲率Dは負の値となる。反対に、糸巻き型歪みの場合、歪曲率Dは正の値となる。ここで式(1)をL2について解くと、以下の式(2)を得る。
L2=(100+D)/100×L1 (2)
【0023】
式(2)より、歪曲率Dを用いることで、中心からの距離がL1となる点Aに本来存在すべき画素が、歪みの生じている画像上においてどの位置に存在するかを求めることができる。具体的には、中心からの距離L1に、歪曲率Dを用いて計算される係数を乗じた距離であるL2が、本来点Aに存在すべき画素が存在する位置である。式(2)を用いて求めた位置に存在する画素を点Aの位置に戻す画像処理を施すことにより、歪みの生じた画像を補正することができる。したがって、以下、歪曲率Dと歪み補正値とを同じ意味で用いる。
【0024】
図2(b)は、ある固定されたズーム値において、dst0〜dst4までの5点における歪み補正値を求める場合のそのサンプリング点を例示する図である。図2(c)は、図2(b)のサンプリング点dst3の位置における、ズーム値と歪み補正値との関係を模式的に示す図である。歪み補正値記憶部3には、各サンプリング点におけるズーム値と歪み補正値とが紐づけられて格納されている。図2(c)に示すように、ズーム値と歪み補正値とは複数点が記憶されている。歪み補正値取得部5は、歪み補正値記憶部3に撮像時のズーム値が格納されていない場合には、歪み補正値を補間計算により取得する。補間計算は、例えば公知のスプライン補間を用いることで実現できる。図2(b)および図2(c)においてサンプリング数をいくつにするかは、正確性とデータ量とのトレードオフの関係になるため、コスト等を鑑みて実験により定めればよく、例えば20点程度である。
【0025】
図3は、光学歪みの程度と補正に必要な画像データ領域との関係を模式的に示す図である。図3(a)は、撮像する被写体における1ラインを表す。図3(b)および図3(c)はそれぞれ、図3(a)に示す被写体を光学レンズを通して撮像した結果、その光学レンズの歪曲収差によって光学歪みの生じた画像の例を示す。図3(b)に示す例よりも図3(c)に示す例の方が、光学歪みが大きくなっている。図3(b)および図3(c)における斜線領域は、それぞれ光学歪みを補正するために必要な画像データ領域を示す。図3(b)および図3(c)を対比すると分かるように、一般に光学歪みが生じている画像中のある1ラインを補正するために必要な画像領域は、光学歪みが大きな画像ほど大きい。
【0026】
光学系1に含まれるレンズが決まれば、そのレンズが有する固有の歪曲収差によって生じる光学歪みの範囲が一意に定まる。この範囲を計算によって求めるか、あるいはズーム値等を変化させて実験によりレンズ毎にあらかじめ求めておく。この範囲が求まれば、光学歪みを補正するために必要な画像データサイズの全有効ラインにおける最大値も求まる。そこで、ラインメモリ10のデータサイズは、少なくとも、光学系1に含まれるレンズを通した場合に生成される光学歪みが生じている画像を補正するために必要な画像データサイズの全有効ラインにおける最大値とする。撮像素子4が生成する画像データの画素数を全て記憶するだけのメモリ量は不要なため、回路規模や製造コストの点で有利となる。
【0027】
図4は、画像データ制御部8が補正のために読み出す固定サイズの補正用画像データを模式的に示す図である。図4において、破線16は補正の対象となる画像上の1ラインを示す。また曲線17は、破線16で示したライン上に本来存在すべき画素の位置を示す。斜線で示す領域は、ラインメモリ10が記録可能な部分画像データ18を示す。曲線17は、破線16と歪曲率Dとを上述の式(2)に代入して求めることができる。また図4において、複数の格子模様を付した矩形領域が、それぞれ画像データ制御部8が補正のために読み出す固定サイズの補正用画像データを示す。各ブロックはそれぞれ曲線17を含むように配置される。
【0028】
画像データ制御部8は、光学系1に含まれる光学レンズの歪曲収差によって生ずる光学歪みを補正するための画像歪み補正値、前述の補正用画像データのサイズおよび形状、および補正対象位置をもとに、補正の対象となる破線16上に本来存在すべき画素が存在する曲線17を含むように、読み出す補正用画像データの各位置を決定してキャッシュメモリ9に読み込む。歪曲補正部11は、キャッシュメモリ9に読み込まれた補正用画像データについて画素補間処理を行い、歪み補正処理した結果のRGB信号を算出して、画像後処理部12に送信する。画素補間処理は、スプライン補間や線型補間等、既知の補間処理を用いて実現できる。
【0029】
図5は、歪曲補正部11における画素補間を説明するための図である。図5(a)は、キャッシュメモリ9に読み込まれた補正用画像データ19の一例を示す図である。図5(a)において黒色で塗りつぶされた画素は、直線が光学歪によって歪められた様子を示す。図5(b)は、歪曲補正部11が補正対象とする1ラインを示す図である。歪曲補正部11は、補正対象とする1ラインを構成する画素を順番に求める。図5(b)において黒色で塗りつぶされた画素は補正の終了した画素を表し、斜線で示す画素は歪曲補正部11が現在補正計算の対象としている画素を示す。
【0030】
歪曲補正部11は、図5(b)に示す補正計算の対象としている画素が、図5(a)に示すキャッシュメモリ9に読み込まれた補正用画像データ19のどの位置になるかを、上述の式(2)をもとに計算する。計算の結果、図5(a)に示す画像の特定の画素と一致すれば、歪曲補正部11はその画素の値を補正後の画素として取得するが、式(2)をもとに計算した位置が、図5(a)に示す画像の特定の画素とちょうど重なるとは限らない。例えば図5(a)において斜線で示す画素は、式(2)をもとに計算した図5(b)における斜線で示す画素が存在する位置であり、図5(a)に示す画像の特定の画素と重なる位置ではない。
【0031】
歪曲補正部11は、式(2)をもとに計算した位置が、図5(a)に示す画像の特定の画素とちょうど重ならない場合、式(2)をもとに計算した位置における画素の値を補間計算により求める。図5(a)に示すように、歪曲補正部11は式(2)をもとに計算した位置の周辺領域の画素値(例えば縦4画素×横4画素の領域)をもとにスプライン補間をして、補正用の画素値を求める。
【0032】
図6は、歪曲補正部11における画素補間の終端処理を説明する図である。図6(a)は、歪曲補正部11が式(2)をもとに計算した補正対象の画素が存在する位置を示す。図5に示す場合と同様に斜線で示す画素が補正対象の画素であるが、式(2)をもとに計算した結果、キャッシュメモリ9に読み込まれた補正用画像データ19の外側に存在する場合の例を示す。この場合、図6(b)に示す補正用画像データ19’のごとく、補間用の周辺領域を含む領域が補正用画像データとして本来必要である。実際にはラインメモリ10の容量の制限により、そのような領域を用意することができない。
【0033】
そこで、図6(c)の領域21に示すごとく、補間用の周辺領域が1つの同じキャッシュメモリ9内部に存在しない場合は、複数あるキャッシュメモリ9の別キャッシュメモリ内部に目的とする補間用の周辺領域が存在するかを確認し、他のキャッシュメモリ9内に存在する場合そこから取得して利用する。また、補間用の周辺領域がキャッシュメモリ9内部に存在しない場合、キャッシュメモリ9内部の信号20で代用する。
【0034】
図7Aは、実施の形態1に係る画像補正装置100の処理の流れを説明するフローチャートの前半部である。
【0035】
撮像素子4は、被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。ここでRGB信号は、左上を先頭にしてラインごとに順々に右下に至るまで、画像補正部7に出力される。この時点では光学歪み補正処理を行っていないため、画像データには光学歪みが発生している。
【0036】
画像補正部7の画像データ制御部8は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信して書き込む(S4)。ラインメモリ本数の節約のため、画像データ制御部8は、ラインメモリ10が一杯である場合、上位のライン、すなわち信号を記録されたタイミングが最も過去のラインから順に消去して新しいラインを記録する。
【0037】
歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値を参照して、光学制御部2における撮像時のズーム値と同値またはもっとも近いサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値の差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。画像補正部7の画像データ制御部8は、歪み補正値取得部5が算出した撮像時のズーム値における歪み補正値をもとに、1ライン分の歪み補正処理に必要な水平画素位置、垂直ラインを計算し、ラインメモリ10に記録した複数ライン分の全画素RGB信号から補正用画像データを、水平方向を8画素、垂直方向を8ラインからなるブロック単位で読み出す領域を決定する(S8)。
【0038】
画像補正部7の画像データ制御部8は、ステップS8の結果をもとに、補正用画像データを、水平方向を8画素、垂直方向を8ラインからなるブロック単位で読み出して複数あるキャッシュメモリ9の1つに保持する(S10)。画像補正部7の歪曲補正部11は、キャッシュメモリ9に保持した歪み補正処理に必要な水平画素位置、垂直ラインのRGB信号、及び、その周辺画素位置、ライン位置におけるRGB信号を取り出して画素補間処理を行い、1点の画素位置における歪み補正処理した結果のRGB信号を算出する(S12)。
【0039】
1ライン分の補正処理が終了していない場合(S14のN)、ステップS10の処理に戻って1ライン分の補正処理を継続する。なお、全てのキャッシュメモリ9が一杯である場合、古いキャッシュメモリ9のRGB信号を破棄し、新しいRGB信号を保持する。1ライン分の補正処理が終了した場合(S14のY)で、かつ全ラインの補正が終了していない場合(S16のN)、ステップS8に戻って、次のラインの補正処理を開始する。全ラインの補正が終すると(S16のY)、本フローチャートにおける処理は終了する。
【0040】
図7Bは、実施の形態1に係る画像補正装置100の処理の流れを説明するフローチャートの後半部である。
【0041】
画像後処理部12は、補正されたRGB信号を記録媒体14に記録する際の信号仕様の変換や圧縮処理等の信号変換を行う(S18)。記録部13は、画像後処理部12より取得した画像信号を記録媒体14に記録する(S20)。出力部15は、記録媒体14に記録した画像信号を図示しない表示部で表示するための仕様にあわせて表示する(S22)。
【0042】
以上の構成による動作は以下のとおりである。ユーザが実施の形態1に係る画像補正装置100で画像を撮像すると、歪み補正値取得部5は撮像時のズーム値と、歪み補正値記憶部3から取得したズーム値のサンプル値及びこのサンプル値に対応する歪み補正値とに基づいて、実際の歪み補正値を補間計算によって取得する。画像データ制御部8はその歪み補正値をもとに光学歪みを補正するために必要な固定サイズの補正用画像データを決定する。このように、補正するために必要な領域のサイズを固定し、その領域を格納できるだけのラインメモリやキャッシュメモリレジスタを用意することで、それらの容量を必要最低限に抑えることができる。
【0043】
以上説明したように、実施の形態1に係る画像補正装置100によれば、ラインメモリ本数やキャッシュメモリレジスタ量を節約しつつ光学歪み補正機能を実現することができる。
【0044】
(実施の形態2)
実施の形態2の概要を述べる。実施の形態2に係る画像補正装置101は、レンズを通して撮像された画像データの光学歪みを画像補間技術を用いて補正するのに先立って、そのレンズによる光学歪みを補正するために必要なデータ量の最大値を計算により取得し、そのデータ量を画像補正装置101が搭載するメモリ量と共に通知する。以下、実施の形態1に係る画像補正装置100と重複する説明は適宜省略または簡略化して記載する。
【0045】
図8は、実施の形態2に係る画像補正装置101の内部構造を模式的に示す図である。画像補正装置101は、光学系1、光学制御部2、歪み補正値記憶部3、撮像素子4、歪み補正値取得部5、ラインメモリ最大使用量取得部22、画像前処理部6、画像補正部7、ラインメモリ10、画像後処理部12、記録部13、記録媒体14、出力部15、およびラインメモリ使用量表示部23を含む。
【0046】
画像補正装置101において、被写体からの光情報を結像して取得する光学系1は、ズームレンズ等の複数枚のレンズを含み、これらのレンズは取替え可能である。ラインメモリ最大使用量取得部22は、光学系1の撮像時のズーム値における歪み補正処理に必要なラインメモリ最大使用量を算出する。具体的には、ラインメモリ最大使用量取得部22は、光学レンズの取り得るすべてのズーム値において補正に要するラインメモリの量を算出して取得し、その最大値をラインメモリ最大使用量として出力する。ラインメモリ使用量表示部23は、ラインメモリ最大使用量取得部22から取得した、歪み補正処理に必要なラインメモリ最大使用量を表示する。
【0047】
ここでラインメモリ最大使用量取得部22は、取得したラインメモリ最大使用量がラインメモリ10の容量よりも大きい場合は、ラインメモリ最大使用量にラインメモリの不足を表す信号を追加して、ラインメモリ使用量表示部23に送信する。光学歪みを補正するために必要なメモリが不足するため、正しい歪み補正処理が行えないからである。ユーザは、歪み補正処理に必要なラインメモリ最大使用量が画像補正装置101に搭載されているメモリ容量を上回るか否か、すなわち適切な補正処理を実行できるか否かを確認できるため、必要に応じて光学系1のレンズを、正確に歪み補正処理ができる程度の歪曲収差のレンズに変更することができる。
【0048】
図9は、実施の形態2に係るラインメモリ最大使用量取得部22の処理の流れを説明するフローチャートである。
【0049】
ラインメモリ最大使用量取得部22は、光学制御部2を介して光学系1で使用されているレンズの種類を取得し、そのレンズが取り得る範囲のズーム値を設定する(S24)。ラインメモリ最大使用量取得部22は、光学系1で使用されているレンズの種類と設定したズーム値とをもとに、歪み補正値記憶部3から歪み補正値を取得する(S26)。歪み補正値記憶部3には、レンズの種類に応じてズーム値と歪み補正値とのサンプル値が紐づけられて格納されている。そこで、ラインメモリ最大使用量取得部22は、設定されたズーム値が格納されていない場合には、歪み補正値を補間計算により取得する。
【0050】
続いて、ラインメモリ最大使用量取得部22は、取得した歪み補正値をもとに、光学系1で使用されているレンズにおける設定されたズーム値で生ずる光学歪みを補正するために必要なラインメモリの使用ライン数を計算して取得する(S28)。光学系1で使用されているレンズが取り得る全てのズーム値において、その光学歪みを補正するために必要なラインメモリの使用ライン数を計算して取得した場合(S30のY)、ラインメモリ使用量表示部23は、光学系1で使用されているレンズで生ずる光学歪みを補正するために必要なラインメモリの使用ライン数の最大値を取得して表示する(S32)。
【0051】
光学系1で使用されているレンズが取り得る全てのズーム値を設定していない場合(S30のN)、ラインメモリ最大使用量取得部22は、ステップS24に戻って新たなズーム値を設定し、ラインメモリの使用量の計算処理を継続する。ラインメモリ使用量表示部23が、光学歪みを補正するために必要なラインメモリの使用ライン数の最大値を表示すると処理は終了する。
【0052】
以上説明したように、実施の形態2に係る画像補正装置101によれば、ラインメモリ本数やキャッシュメモリレジスタ量を節約しつつ光学歪み補正機能を実現することができる。加えて、画像補正装置101に内蔵されるラインメモリ10のメモリ量では歪み補正処理をしきれない歪曲量を持つ光学レンズを判別して通知するため、ユーザは正確に歪み補正処理ができる程度の歪曲収差のレンズに変更することができる。
【0053】
(実施の形態3)
実施の形態3の概要を述べる。実施の形態3に係る画像補正装置102は、レンズを通して撮像された画像データの光学歪みを補正するために必要なデータ量の最大値がラインメモリの利用可能な垂直ライン数の最大値を超える場合、ラインメモリの利用可能な範囲内となるまで光学歪みの補正値を調整し、調整した光学歪みの補正値をもとに光学歪みを補正する。以下、実施の形態1に係る画像補正装置100または実施の形態2に係る画像補正装置101と重複する説明は適宜省略または簡略化して記載する。
【0054】
図10は、実施の形態3に係る画像データ制御部8の内部構造を模式的に示す図である。実施の形態3に係る画像データ制御部8は、画像データ書き込み制御部24と画像データ読み出し制御部25とを含む。
【0055】
画像データ書き込み制御部24は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する。ラインメモリ本数の節約のため、画像データ書き込み制御部24は、ラインメモリ10が一杯である場合、上位のラインから順に消去して新しいラインを記録する。画像データ読み出し制御部25は、歪み補正値取得部5より取得した撮像時のズーム値における歪み補正値から、1ラインの歪み補正処理に必要な垂直ライン数を計算して取得し、垂直ライン数がラインメモリの最大ライン数を超える場合、歪み補正値をラインメモリの最大ライン数で補正できる値に変更する。
【0056】
図11は、光学歪みとその光学歪みを補正するために必要な垂直ライン数との関係を説明する図である。図11(a)において、曲線17は、ある1ライン分の光学歪み補正するために歪曲補正部11が参照する位置を表す。ここで曲線17は上述の式(2)を用いて計算することができる。曲線17は、ラインメモリ10で記憶可能な部分画像データ18を超えて存在する。このため、図11(c)に示す円形領域26に存在する光学歪みを補正することができない。補間のために必要な画像データが存在しないからである。
【0057】
そこで画像データ読み出し制御部25は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値を計算して取得する。図11(b)における曲線17’は、画像データ読み出し制御部25が計算した補正可能な光学歪みにおいて、歪曲補正部11が参照する位置を表す。ラインメモリ10で記憶可能な部分画像データ18のサイズは固定されているから、画像データ読み出し制御部25は、その範囲内において歪曲補正部11が参照可能な曲線17’を設定することができる。曲線17’が設定できれば、式(1)におけるL2が取得できる。また補正対象である1ラインは定まっているため、式(1)におけるL1も取得できる。したがって、式(1)を用いることで、画像データ読み出し制御部25は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値を計算することができる。
【0058】
図11(d)における曲線27は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値をもとに歪曲補正部11が補正した結果を示す。また、図11(d)における線分27’は、本来の歪み補正値をもとに補正した場合の補正結果を示す。図11(d)に示すごとく、本来であれば補正によって直線状となるべき画像が、不十分な補正のため曲線のままとなる。しかしながら、図11(c)に示すような補正不可能な領域は存在せず、かつ図11(b)と比較すると光学歪みが補正された画像を得ることができる。
【0059】
なお、式(2)から明らかなように、光学歪み補を補正するために歪曲補正部11が参照する位置と画像の中心との距離L2は、歪曲度Dが小さくなるほど長くなり、その結果部分画像データ18は小さくなる。そこで画像データ読み出し制御部25は、歪み補正値取得部5から取得した歪曲度Dに、1未満の正の実数である歪み補正値の補正量N(0<N<1)を乗じることで、歪み補正値を調整する。
【0060】
図12は、実施の形態3に係る画像補正装置102の処理の流れを説明するフローチャートである。
【0061】
撮像素子4は、被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。画像データ制御部8内の画像データ書き込み制御部24は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する(S4)。歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値を参照して、光学制御部2における撮像時のズーム値と同値または最も近いサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値の差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。
【0062】
画像データ読み出し制御部25は、歪み補正値取得部5から取得した歪み補正値の調整が必要か否かを判断し、調整が必要な場合(S34のY)、歪み補正値をラインメモリ10で記録可能な最大ライン数で補正できる値に調整する(S36)。歪み補正値の調整が必要ない場合(S34のN)、画像データ読み出し制御部25は歪み補正値の調整をしない。以後の処理は、図7AにおけるステップS8以降の処理と同様である。
【0063】
以上説明したように、実施の形態3に係る画像補正装置102によれば、ラインメモリ本数やキャッシュメモリレジスタ量を固定量としつつ、光学歪みの補正機能を実現することができる。
【0064】
(実施の形態4)
実施の形態4の概要を述べる。実施の形態4に係る画像補正装置103は、レンズを通して撮像された画像データの光学歪みを補正するために使用する作業領域と、光学歪みが補正された画像データに追加の画像処理を実行するために使用する作業領域とが共通であり、光学歪みの補正処理と追加の画像処理との優先度に応じて、光学歪みの補正処理が使用することのできる作業領域のデータ量を変更する。以下、実施の形態1に係る画像補正装置100、実施の形態2に係る画像補正装置101、または実施の形態3に係る画像補正装置102と重複する説明は適宜省略または簡略化して記載する。
【0065】
図13は、実施の形態4に係る画像補正装置103の内部構造を模式的に示す図である。実施の形態4に係る画像補正装置103は、実施の形態1に係る画像補正装置100と比較して、画像サイズ変更部28、メモリ割り当て取得部33、およびメモリ割り当て制御部34をさらに含む。
【0066】
画像サイズ変更部28は、歪曲補正部11が補正した画像データに対して拡縮処理を実行する。このため画像サイズ変更部28は、補正画像データ書き込み制御部29、補正画像データ読み込み制御部30、拡縮用キャッシュメモリ31、および拡縮部32をさらに含む。
【0067】
補正画像データ書き込み制御部29は、歪曲補正部11から取得した補正された画像データを、ラインメモリ10において補正画像データ書き込み制御部29用に割り当てられた領域に書き込む。補正画像データ読み込み制御部30は、画像サイズ変更に必要な拡縮用の画像データを順次ラインメモリ10から読み出し拡縮用キャッシュメモリ31に保持する。拡縮部32は、拡縮用キャッシュメモリ31に読み出された補正用画像データを縮小または拡大する。これにより、画像サイズ変更部28は、歪曲補正部11が補正した画像データを1枚の画像データとしてサイズ変更することができる。
【0068】
ここで画像補正部7と画像サイズ変更部28とは、その作業領域としてラインメモリ10を共有する。前述したように、大きな光学歪みを有する画像データほどその補正に必要なラインメモリ10の垂直ライン数は大きくなる。一方で、画像のサイズ変更時における拡縮率が1から離れるほど、サイズ変更のために必要なラインメモリ10の垂直ライン数は大きくなる。例えば、画像を縮小して小さくしようとすればするほど、その処理に要するラインメモリ10の垂直ライン数が大きくなる。したがって、補正可能な光学歪みの度合いと画像データのサイズ変更の度合いとはトレードオフの関係となる。
【0069】
そこでメモリ割り当て制御部34は、歪曲補正部11が行う光学歪みの補正処理と画像サイズ変更部28が行う拡縮処理との優先度に応じて、歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値を変更する。具体的には、メモリ割り当て制御部34は、ラインメモリ10に記録可能な垂直ライン数のうち、画像データ制御部8が使用できるライン数と補正用画像データ書き込み制御部29が使用できるライン数とを振り分ける。歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値は、光学歪みの補正処理の優先度として、メモリ割り当て取得部33がユーザから取得する。
【0070】
図14Aは、実施の形態4に係る画像補正装置103の処理の流れを説明するフローチャートの前半部である。
【0071】
撮像素子4は、被写体から被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。メモリ割り当て制御部34は、メモリ割り当て取得部33から取得した歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値をもとに、ラインメモリ10の使用領域を割り当てる(S3)。
【0072】
画像補正部7の画像データ制御部8は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する(S4)。ラインメモリ本数の節約のため、画像データ制御部8は、ラインメモリ10が一杯である場合、上位のライン、すなわち信号を記録されたタイミングが最も過去のラインから順に消去して新しいラインを記録する。
【0073】
歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値との差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。以下、図7AにおけるステップS8からステップS16までの処理を、図7Aに示す実施の形態1に係る画像補正装置100の処理と同様に実行する。
【0074】
図14Bは、実施の形態4に係る画像補正装置103の処理の流れを説明するフローチャートの後半部である。
【0075】
補正画像データ書き込み制御部29は、歪曲補正部11から取得した光学歪みの補正された画像データを、ラインメモリ10において補正画像データ書き込み制御部29用に割り当てられた領域に書き込む(S38)。補正画像データ読み込み制御部30は、画像サイズ変更に必要な拡縮用の画像データを順次ラインメモリ10から読み出し拡縮用キャッシュメモリ31に読み込む(S40)。拡縮部32は、拡縮用キャッシュメモリ31に読み出された補正用画像データを縮小または拡大する(S42)。全ラインの拡縮処理が終了していない場合(S44のN)、ステップS38に戻って上述の処理を繰り返す。全ラインの拡縮処理が終了すると(S44のY)、画像後処理部12は、拡縮補正されたRGB信号を記録媒体14に記録する際の信号仕様の変換や圧縮処理等の信号変換を行う(S46)。記録部13は、画像後処理部12より取得した画像信号を記録媒体14に記録する(S48)。出力部15は、記録媒体14に記録した画像信号を表示部で表示するための仕様にあわせて表示する(S50)。
【0076】
以上説明したように、実施の形態4に係る画像補正装置103によれば、ラインメモリ本数やキャッシュメモリレジスタ量を固定量としつつ、光学歪みの補正機能を実現することができる。加えて、ラインメモリを複数の機能で共有化しそのメモリ量をそれぞれの機能に割り当てることにより、複数機能回路の同時実装を低コストで実現できる。
【0077】
以上、いくつかの実施の形態を説明した。これらの実施の形態の任意の組み合わせもまた本発明の実施の形態として有用である。例えば実施の形態2と4とを組み合わせ、ラインメモリ最大使用量取得部22とメモリ割り当て制御部34とを併設した場合、それらの形態の効果の和に加え、さらにラインメモリ10のデータ容量の限度において光学歪みを補正するために必要なラインメモリ使用量を動的に割り当てることができる。
【0078】
そのほか、実施の形態3と4とを組み合わせたり、実施の形態2と3と4とを組み合わせたりすることができる。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態それぞれの効果を合わせ持つ。
【0079】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0080】
1 光学系、 2 光学制御部、 3 補正値記憶部、 4 撮像素子、 5 歪み補正値取得部、 6 画像前処理部、 7 画像補正部、 8 画像データ制御部、 9 キャッシュメモリ、 10 ラインメモリ、 11 歪曲補正部、 12 画像後処理部、 13 記録部、 14 記録媒体、 15 出力部、 22 ラインメモリ最大使用量取得部、 23 ラインメモリ使用量表示部、 24 画像データ書き込み制御部、 25 画像データ読み込み制御部、 28 画像サイズ変更部、 29 補正用画像データ書き込み制御部、 30 補正用画像データ読み込み制御部、 31 拡縮用キャッシュメモリ、 32 拡縮部、 33 メモリ割り当て取得部、 34 メモリ割り当て制御部、 100、101、102、103 画像補正装置。
【技術分野】
【0001】
本発明は、光学レンズを介して被写体像を撮影し、前記被写体像を示す画像データを記録する画像補正装置に関する。
【背景技術】
【0002】
光学レンズは、通常、製造時のバラつきなどによって生じる各光学レンズ固有の歪曲収差を有している。これらの光学レンズを介して被写体像を撮影すると、上述の歪曲収差によって撮影画像が歪む光学歪みという現象が発生する。この光学歪みは、撮像時のレンズズーム値に応じて歪み量が変化することが知られている。撮像装置におけるこの光学歪みの補正に関する技術は種々提案されており、それらの中には光学歪みの補正時におけるメモリ領域の使用を効率化する技術が存在する(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−222827号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般に、光学歪みを補正するには光学歪みが生じている画像データを格納するメインメモリと、メインメモリから読み出した画像データを一時保存するキャッシュメモリとを必要とする。これらのメモリは高価であり、またメモリアクセスには計算コストがかかるため、撮像装置に搭載するメモリの量を抑えつつより効率的にメモリアクセスをするための技術が望まれている。
【0005】
本発明はこうした状況に鑑みなされたものであり、その目的は、メインメモリ量やキャッシュメモリ量を節約しつつ光学歪み補正機能を実現する技術を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明のある態様は画像補正装置である。この装置は、光学レンズを介して撮像して得た画像データを順次記憶する所定ライン数のラインメモリと、予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部と、前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出す画像データ制御部と、前記画像データ制御部が読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定する歪曲補正部とを含む。
【0007】
本発明の別の態様は画像補正方法である。この方法は、光学レンズを介して撮像して得た画像データを、所定ライン数のラインメモリに順次記憶するステップと、予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部から歪み補正値を取得するステップと、前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出すステップと、読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定するステップとをプロセッサに実行させる。
【0008】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0009】
本発明によれば、メインメモリ量やキャッシュメモリ量を節約しつつ光学歪み補正機能を実現する技術を提供することができる。
【図面の簡単な説明】
【0010】
【図1】実施の形態1に係る画像補正装置の内部構造を模式的に示す図である。
【図2】光学レンズを通して撮像した場合の像の光学歪みとその歪曲率とを説明する図である。
【図3】光学歪みの程度と補正に必要な画像データ領域との関係を模式的に示す図である。
【図4】補正制御部が光学歪みの補正のために読み出す固定サイズの補正用画像データを模式的に示す図である。
【図5】補正部における画素補間を説明する図である。
【図6】補正部における画素補間の終端処理を説明する図である。
【図7A】実施の形態1に係る画像補正装置の処理の流れを説明するフローチャートの前半部である。
【図7B】実施の形態1に係る画像補正装置の処理の流れを説明するフローチャートの後半部である。
【図8】実施の形態2に係る画像補正装置の内部構造を模式的に示す図である。
【図9】実施の形態2に係るラインメモリ最大使用量取得部の処理の流れを説明するフローチャートである。
【図10】実施の形態3に係る画像データ制御部の内部構造を模式的に示す図である。
【図11】光学歪みとその光学歪みを補正するために必要な垂直ライン数との関係を説明する図である。
【図12】実施の形態3に係る画像補正装置の処理の流れを説明するフローチャートである。
【図13】実施の形態4に係る画像補正装置の内部構造を模式的に示す図である。
【図14A】実施の形態4に係る画像補正装置の処理の流れを説明するフローチャートの前半部である。
【図14B】実施の形態4に係る画像補正装置の処理の流れを説明するフローチャートの後半部である。
【発明を実施するための形態】
【0011】
(実施の形態1)
実施の形態1の概要を述べる。実施の形態1に係る画像補正装置100は、画像データの光学歪みを画像補間技術を用いて補正する際、補正に用いる補正用画像データを固定サイズのブロック単位でラインメモリからキャッシュメモリに読み込んで補正処理を実行する。
【0012】
図1は、実施の形態1に係る画像補正装置100の内部構造を模式的に示す図である。画像補正装置100は、光学系1、光学制御部2、歪み補正値記憶部3、撮像素子4、歪み補正値取得部5、画像前処理部6、画像補正部7、ラインメモリ10、画像後処理部12、記録部13、記録媒体14、および出力部15を含む。
【0013】
光学系1はズームレンズ等の複数枚のレンズを含み、被写体からの光情報を結像して取得する。撮像素子4は、光学系1から送信された光情報を電気情報に変換する。撮像素子4は、例えばCMOS(Complementary Metal Oxide Semiconductor)イメージセンサやCCD(Charge Coupled Devices)イメージセンサなどを用いて実現できる。
【0014】
画像前処理部6は、撮像素子4が変換した電気情報をRGB各色の信号に変換する。ラインメモリ10は、画像前処理部6が変換したRGB信号を、画像素子を平面に見立て水平方向を画素、垂直方向をラインとしたときの複数ライン分の全画素RGB信号を記録する。ただしラインメモリ10は1枚の画像データにおけるRGB信号すべてを記録するだけの容量はなく、画像データの一部を部分画像データとして記憶する。このため、ラインメモリ10が一杯となった場合、上位のラインから順に消去して新しいラインにデータを記録する。
【0015】
光学制御部2は、光学系1のレンズを制御する。光学制御部2はまた、撮像時における光学系1のズーム値を出力する。歪み補正値記憶部3は、光学系1のズーム値についての複数のサンプル値と、その時に撮像される像の歪みを補正するための「歪み補正値」(詳細は後述する)とを紐づけて記憶する。歪み補正値取得部5は、光学制御部2から取得した光学系1における撮像時のズーム値をもとに、歪み補正値記憶部3を参照して歪み補正値を取得する。歪み補正値記憶部3に撮像時のズーム値が格納されていない場合には、歪み補正値取得部5は、歪み補正値を補間計算により取得する。
【0016】
画像補正部7は、ラインメモリ10から取得した複数ライン分の全画素RGB信号と歪み補正値取得部5から取得した歪み補正値とをもとに、光学歪みを補正したRGB信号を作成する。そのため、画像補正部7はさらに、画像データ制御部8、キャッシュメモリ9、および歪曲補正部11を含む。
【0017】
画像データ制御部8は、画像前処理部6からRGB信号を取得してラインメモリ10に記録する。画像データ制御部8はまた、歪み補正に必要なラインメモリ10のRGB信号領域を算出し、その領域を補正用画像データとして読み出してキャッシュメモリ9に格納する。ここで画像データ制御部8は、補正用画像データとして固定サイズのブロック単位でRGB信号領域を算出する。具体的には、画像データ制御部8は、水平方向を前記画像データ1ライン分の画素数の1/N(Nは2以上の正の整数)、垂直方向を前記画像データ垂直ライン数の1/M(Mは2以上の正の整数)からなるブロック単位でRGB信号領域を補正用画像データとして算出する。
【0018】
歪曲補正部11は、画像データ制御部8を介して歪み補正値取得部5から取得した歪み補正値をもとに、キャッシュメモリ9に読み出した補正用画像データの光学歪みを補正する。光学歪みの補正に際してキャッシュメモリ9に読み出す補正用画像データのサイズが固定されているため、メモリの割り当て等のメモリアクセス時の処理が抑制でき、計算コストを削減できる。また、キャッシュメモリ9のサイズも固定できることから、製造コストを抑制しうる点で有利である。
【0019】
画像後処理部12は、画像補正部7が歪み補正処理をしたRGB信号を記録媒体14に記録するための画像信号に変換する。記録部13は、画像後処理部12で変換された画像信号を記録媒体14に記録する。出力部15は、記録媒体14に記録した画像信号を読み出し図示しない表示部に出力する。
【0020】
図2は光学レンズを通して撮像した場合の像の光学歪みとその歪曲率とを説明する図である。光学レンズを通して被写体像を撮影し、その被写体像を示す画像データを記録する場合、光学レンズが有する固有の歪曲収差に起因して、撮像画像の周辺に歪みが生じる。この歪みは、一般に光学歪みと称され、画像の角部が外側に伸びる「糸巻き型」と、逆に角部が縮む「たる型」との2種類に分けられ、何れの歪みも光学中心からの距離によって歪み量が決まることが一般的に知られている。
【0021】
図2(a)は「たる型」の歪みを例示する図である。図2(a)においては、本来点Aに撮像されるべき点が、歪みによって点A’に撮像されている。点Aおよび点A’の画像の中心からの距離をそれぞれL1、L2とするとき、点Aにおける歪曲率Dは以下の式で定義され、その単位は[%]である。
歪曲率D[%]=100×(L2−L1)/L1 (1)
ここで画像の中心は、光学系の中心軸と一致しているものとする。
【0022】
図2(a)に示すような樽型の歪みの場合、歪曲率Dは負の値となる。反対に、糸巻き型歪みの場合、歪曲率Dは正の値となる。ここで式(1)をL2について解くと、以下の式(2)を得る。
L2=(100+D)/100×L1 (2)
【0023】
式(2)より、歪曲率Dを用いることで、中心からの距離がL1となる点Aに本来存在すべき画素が、歪みの生じている画像上においてどの位置に存在するかを求めることができる。具体的には、中心からの距離L1に、歪曲率Dを用いて計算される係数を乗じた距離であるL2が、本来点Aに存在すべき画素が存在する位置である。式(2)を用いて求めた位置に存在する画素を点Aの位置に戻す画像処理を施すことにより、歪みの生じた画像を補正することができる。したがって、以下、歪曲率Dと歪み補正値とを同じ意味で用いる。
【0024】
図2(b)は、ある固定されたズーム値において、dst0〜dst4までの5点における歪み補正値を求める場合のそのサンプリング点を例示する図である。図2(c)は、図2(b)のサンプリング点dst3の位置における、ズーム値と歪み補正値との関係を模式的に示す図である。歪み補正値記憶部3には、各サンプリング点におけるズーム値と歪み補正値とが紐づけられて格納されている。図2(c)に示すように、ズーム値と歪み補正値とは複数点が記憶されている。歪み補正値取得部5は、歪み補正値記憶部3に撮像時のズーム値が格納されていない場合には、歪み補正値を補間計算により取得する。補間計算は、例えば公知のスプライン補間を用いることで実現できる。図2(b)および図2(c)においてサンプリング数をいくつにするかは、正確性とデータ量とのトレードオフの関係になるため、コスト等を鑑みて実験により定めればよく、例えば20点程度である。
【0025】
図3は、光学歪みの程度と補正に必要な画像データ領域との関係を模式的に示す図である。図3(a)は、撮像する被写体における1ラインを表す。図3(b)および図3(c)はそれぞれ、図3(a)に示す被写体を光学レンズを通して撮像した結果、その光学レンズの歪曲収差によって光学歪みの生じた画像の例を示す。図3(b)に示す例よりも図3(c)に示す例の方が、光学歪みが大きくなっている。図3(b)および図3(c)における斜線領域は、それぞれ光学歪みを補正するために必要な画像データ領域を示す。図3(b)および図3(c)を対比すると分かるように、一般に光学歪みが生じている画像中のある1ラインを補正するために必要な画像領域は、光学歪みが大きな画像ほど大きい。
【0026】
光学系1に含まれるレンズが決まれば、そのレンズが有する固有の歪曲収差によって生じる光学歪みの範囲が一意に定まる。この範囲を計算によって求めるか、あるいはズーム値等を変化させて実験によりレンズ毎にあらかじめ求めておく。この範囲が求まれば、光学歪みを補正するために必要な画像データサイズの全有効ラインにおける最大値も求まる。そこで、ラインメモリ10のデータサイズは、少なくとも、光学系1に含まれるレンズを通した場合に生成される光学歪みが生じている画像を補正するために必要な画像データサイズの全有効ラインにおける最大値とする。撮像素子4が生成する画像データの画素数を全て記憶するだけのメモリ量は不要なため、回路規模や製造コストの点で有利となる。
【0027】
図4は、画像データ制御部8が補正のために読み出す固定サイズの補正用画像データを模式的に示す図である。図4において、破線16は補正の対象となる画像上の1ラインを示す。また曲線17は、破線16で示したライン上に本来存在すべき画素の位置を示す。斜線で示す領域は、ラインメモリ10が記録可能な部分画像データ18を示す。曲線17は、破線16と歪曲率Dとを上述の式(2)に代入して求めることができる。また図4において、複数の格子模様を付した矩形領域が、それぞれ画像データ制御部8が補正のために読み出す固定サイズの補正用画像データを示す。各ブロックはそれぞれ曲線17を含むように配置される。
【0028】
画像データ制御部8は、光学系1に含まれる光学レンズの歪曲収差によって生ずる光学歪みを補正するための画像歪み補正値、前述の補正用画像データのサイズおよび形状、および補正対象位置をもとに、補正の対象となる破線16上に本来存在すべき画素が存在する曲線17を含むように、読み出す補正用画像データの各位置を決定してキャッシュメモリ9に読み込む。歪曲補正部11は、キャッシュメモリ9に読み込まれた補正用画像データについて画素補間処理を行い、歪み補正処理した結果のRGB信号を算出して、画像後処理部12に送信する。画素補間処理は、スプライン補間や線型補間等、既知の補間処理を用いて実現できる。
【0029】
図5は、歪曲補正部11における画素補間を説明するための図である。図5(a)は、キャッシュメモリ9に読み込まれた補正用画像データ19の一例を示す図である。図5(a)において黒色で塗りつぶされた画素は、直線が光学歪によって歪められた様子を示す。図5(b)は、歪曲補正部11が補正対象とする1ラインを示す図である。歪曲補正部11は、補正対象とする1ラインを構成する画素を順番に求める。図5(b)において黒色で塗りつぶされた画素は補正の終了した画素を表し、斜線で示す画素は歪曲補正部11が現在補正計算の対象としている画素を示す。
【0030】
歪曲補正部11は、図5(b)に示す補正計算の対象としている画素が、図5(a)に示すキャッシュメモリ9に読み込まれた補正用画像データ19のどの位置になるかを、上述の式(2)をもとに計算する。計算の結果、図5(a)に示す画像の特定の画素と一致すれば、歪曲補正部11はその画素の値を補正後の画素として取得するが、式(2)をもとに計算した位置が、図5(a)に示す画像の特定の画素とちょうど重なるとは限らない。例えば図5(a)において斜線で示す画素は、式(2)をもとに計算した図5(b)における斜線で示す画素が存在する位置であり、図5(a)に示す画像の特定の画素と重なる位置ではない。
【0031】
歪曲補正部11は、式(2)をもとに計算した位置が、図5(a)に示す画像の特定の画素とちょうど重ならない場合、式(2)をもとに計算した位置における画素の値を補間計算により求める。図5(a)に示すように、歪曲補正部11は式(2)をもとに計算した位置の周辺領域の画素値(例えば縦4画素×横4画素の領域)をもとにスプライン補間をして、補正用の画素値を求める。
【0032】
図6は、歪曲補正部11における画素補間の終端処理を説明する図である。図6(a)は、歪曲補正部11が式(2)をもとに計算した補正対象の画素が存在する位置を示す。図5に示す場合と同様に斜線で示す画素が補正対象の画素であるが、式(2)をもとに計算した結果、キャッシュメモリ9に読み込まれた補正用画像データ19の外側に存在する場合の例を示す。この場合、図6(b)に示す補正用画像データ19’のごとく、補間用の周辺領域を含む領域が補正用画像データとして本来必要である。実際にはラインメモリ10の容量の制限により、そのような領域を用意することができない。
【0033】
そこで、図6(c)の領域21に示すごとく、補間用の周辺領域が1つの同じキャッシュメモリ9内部に存在しない場合は、複数あるキャッシュメモリ9の別キャッシュメモリ内部に目的とする補間用の周辺領域が存在するかを確認し、他のキャッシュメモリ9内に存在する場合そこから取得して利用する。また、補間用の周辺領域がキャッシュメモリ9内部に存在しない場合、キャッシュメモリ9内部の信号20で代用する。
【0034】
図7Aは、実施の形態1に係る画像補正装置100の処理の流れを説明するフローチャートの前半部である。
【0035】
撮像素子4は、被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。ここでRGB信号は、左上を先頭にしてラインごとに順々に右下に至るまで、画像補正部7に出力される。この時点では光学歪み補正処理を行っていないため、画像データには光学歪みが発生している。
【0036】
画像補正部7の画像データ制御部8は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信して書き込む(S4)。ラインメモリ本数の節約のため、画像データ制御部8は、ラインメモリ10が一杯である場合、上位のライン、すなわち信号を記録されたタイミングが最も過去のラインから順に消去して新しいラインを記録する。
【0037】
歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値を参照して、光学制御部2における撮像時のズーム値と同値またはもっとも近いサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値の差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。画像補正部7の画像データ制御部8は、歪み補正値取得部5が算出した撮像時のズーム値における歪み補正値をもとに、1ライン分の歪み補正処理に必要な水平画素位置、垂直ラインを計算し、ラインメモリ10に記録した複数ライン分の全画素RGB信号から補正用画像データを、水平方向を8画素、垂直方向を8ラインからなるブロック単位で読み出す領域を決定する(S8)。
【0038】
画像補正部7の画像データ制御部8は、ステップS8の結果をもとに、補正用画像データを、水平方向を8画素、垂直方向を8ラインからなるブロック単位で読み出して複数あるキャッシュメモリ9の1つに保持する(S10)。画像補正部7の歪曲補正部11は、キャッシュメモリ9に保持した歪み補正処理に必要な水平画素位置、垂直ラインのRGB信号、及び、その周辺画素位置、ライン位置におけるRGB信号を取り出して画素補間処理を行い、1点の画素位置における歪み補正処理した結果のRGB信号を算出する(S12)。
【0039】
1ライン分の補正処理が終了していない場合(S14のN)、ステップS10の処理に戻って1ライン分の補正処理を継続する。なお、全てのキャッシュメモリ9が一杯である場合、古いキャッシュメモリ9のRGB信号を破棄し、新しいRGB信号を保持する。1ライン分の補正処理が終了した場合(S14のY)で、かつ全ラインの補正が終了していない場合(S16のN)、ステップS8に戻って、次のラインの補正処理を開始する。全ラインの補正が終すると(S16のY)、本フローチャートにおける処理は終了する。
【0040】
図7Bは、実施の形態1に係る画像補正装置100の処理の流れを説明するフローチャートの後半部である。
【0041】
画像後処理部12は、補正されたRGB信号を記録媒体14に記録する際の信号仕様の変換や圧縮処理等の信号変換を行う(S18)。記録部13は、画像後処理部12より取得した画像信号を記録媒体14に記録する(S20)。出力部15は、記録媒体14に記録した画像信号を図示しない表示部で表示するための仕様にあわせて表示する(S22)。
【0042】
以上の構成による動作は以下のとおりである。ユーザが実施の形態1に係る画像補正装置100で画像を撮像すると、歪み補正値取得部5は撮像時のズーム値と、歪み補正値記憶部3から取得したズーム値のサンプル値及びこのサンプル値に対応する歪み補正値とに基づいて、実際の歪み補正値を補間計算によって取得する。画像データ制御部8はその歪み補正値をもとに光学歪みを補正するために必要な固定サイズの補正用画像データを決定する。このように、補正するために必要な領域のサイズを固定し、その領域を格納できるだけのラインメモリやキャッシュメモリレジスタを用意することで、それらの容量を必要最低限に抑えることができる。
【0043】
以上説明したように、実施の形態1に係る画像補正装置100によれば、ラインメモリ本数やキャッシュメモリレジスタ量を節約しつつ光学歪み補正機能を実現することができる。
【0044】
(実施の形態2)
実施の形態2の概要を述べる。実施の形態2に係る画像補正装置101は、レンズを通して撮像された画像データの光学歪みを画像補間技術を用いて補正するのに先立って、そのレンズによる光学歪みを補正するために必要なデータ量の最大値を計算により取得し、そのデータ量を画像補正装置101が搭載するメモリ量と共に通知する。以下、実施の形態1に係る画像補正装置100と重複する説明は適宜省略または簡略化して記載する。
【0045】
図8は、実施の形態2に係る画像補正装置101の内部構造を模式的に示す図である。画像補正装置101は、光学系1、光学制御部2、歪み補正値記憶部3、撮像素子4、歪み補正値取得部5、ラインメモリ最大使用量取得部22、画像前処理部6、画像補正部7、ラインメモリ10、画像後処理部12、記録部13、記録媒体14、出力部15、およびラインメモリ使用量表示部23を含む。
【0046】
画像補正装置101において、被写体からの光情報を結像して取得する光学系1は、ズームレンズ等の複数枚のレンズを含み、これらのレンズは取替え可能である。ラインメモリ最大使用量取得部22は、光学系1の撮像時のズーム値における歪み補正処理に必要なラインメモリ最大使用量を算出する。具体的には、ラインメモリ最大使用量取得部22は、光学レンズの取り得るすべてのズーム値において補正に要するラインメモリの量を算出して取得し、その最大値をラインメモリ最大使用量として出力する。ラインメモリ使用量表示部23は、ラインメモリ最大使用量取得部22から取得した、歪み補正処理に必要なラインメモリ最大使用量を表示する。
【0047】
ここでラインメモリ最大使用量取得部22は、取得したラインメモリ最大使用量がラインメモリ10の容量よりも大きい場合は、ラインメモリ最大使用量にラインメモリの不足を表す信号を追加して、ラインメモリ使用量表示部23に送信する。光学歪みを補正するために必要なメモリが不足するため、正しい歪み補正処理が行えないからである。ユーザは、歪み補正処理に必要なラインメモリ最大使用量が画像補正装置101に搭載されているメモリ容量を上回るか否か、すなわち適切な補正処理を実行できるか否かを確認できるため、必要に応じて光学系1のレンズを、正確に歪み補正処理ができる程度の歪曲収差のレンズに変更することができる。
【0048】
図9は、実施の形態2に係るラインメモリ最大使用量取得部22の処理の流れを説明するフローチャートである。
【0049】
ラインメモリ最大使用量取得部22は、光学制御部2を介して光学系1で使用されているレンズの種類を取得し、そのレンズが取り得る範囲のズーム値を設定する(S24)。ラインメモリ最大使用量取得部22は、光学系1で使用されているレンズの種類と設定したズーム値とをもとに、歪み補正値記憶部3から歪み補正値を取得する(S26)。歪み補正値記憶部3には、レンズの種類に応じてズーム値と歪み補正値とのサンプル値が紐づけられて格納されている。そこで、ラインメモリ最大使用量取得部22は、設定されたズーム値が格納されていない場合には、歪み補正値を補間計算により取得する。
【0050】
続いて、ラインメモリ最大使用量取得部22は、取得した歪み補正値をもとに、光学系1で使用されているレンズにおける設定されたズーム値で生ずる光学歪みを補正するために必要なラインメモリの使用ライン数を計算して取得する(S28)。光学系1で使用されているレンズが取り得る全てのズーム値において、その光学歪みを補正するために必要なラインメモリの使用ライン数を計算して取得した場合(S30のY)、ラインメモリ使用量表示部23は、光学系1で使用されているレンズで生ずる光学歪みを補正するために必要なラインメモリの使用ライン数の最大値を取得して表示する(S32)。
【0051】
光学系1で使用されているレンズが取り得る全てのズーム値を設定していない場合(S30のN)、ラインメモリ最大使用量取得部22は、ステップS24に戻って新たなズーム値を設定し、ラインメモリの使用量の計算処理を継続する。ラインメモリ使用量表示部23が、光学歪みを補正するために必要なラインメモリの使用ライン数の最大値を表示すると処理は終了する。
【0052】
以上説明したように、実施の形態2に係る画像補正装置101によれば、ラインメモリ本数やキャッシュメモリレジスタ量を節約しつつ光学歪み補正機能を実現することができる。加えて、画像補正装置101に内蔵されるラインメモリ10のメモリ量では歪み補正処理をしきれない歪曲量を持つ光学レンズを判別して通知するため、ユーザは正確に歪み補正処理ができる程度の歪曲収差のレンズに変更することができる。
【0053】
(実施の形態3)
実施の形態3の概要を述べる。実施の形態3に係る画像補正装置102は、レンズを通して撮像された画像データの光学歪みを補正するために必要なデータ量の最大値がラインメモリの利用可能な垂直ライン数の最大値を超える場合、ラインメモリの利用可能な範囲内となるまで光学歪みの補正値を調整し、調整した光学歪みの補正値をもとに光学歪みを補正する。以下、実施の形態1に係る画像補正装置100または実施の形態2に係る画像補正装置101と重複する説明は適宜省略または簡略化して記載する。
【0054】
図10は、実施の形態3に係る画像データ制御部8の内部構造を模式的に示す図である。実施の形態3に係る画像データ制御部8は、画像データ書き込み制御部24と画像データ読み出し制御部25とを含む。
【0055】
画像データ書き込み制御部24は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する。ラインメモリ本数の節約のため、画像データ書き込み制御部24は、ラインメモリ10が一杯である場合、上位のラインから順に消去して新しいラインを記録する。画像データ読み出し制御部25は、歪み補正値取得部5より取得した撮像時のズーム値における歪み補正値から、1ラインの歪み補正処理に必要な垂直ライン数を計算して取得し、垂直ライン数がラインメモリの最大ライン数を超える場合、歪み補正値をラインメモリの最大ライン数で補正できる値に変更する。
【0056】
図11は、光学歪みとその光学歪みを補正するために必要な垂直ライン数との関係を説明する図である。図11(a)において、曲線17は、ある1ライン分の光学歪み補正するために歪曲補正部11が参照する位置を表す。ここで曲線17は上述の式(2)を用いて計算することができる。曲線17は、ラインメモリ10で記憶可能な部分画像データ18を超えて存在する。このため、図11(c)に示す円形領域26に存在する光学歪みを補正することができない。補間のために必要な画像データが存在しないからである。
【0057】
そこで画像データ読み出し制御部25は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値を計算して取得する。図11(b)における曲線17’は、画像データ読み出し制御部25が計算した補正可能な光学歪みにおいて、歪曲補正部11が参照する位置を表す。ラインメモリ10で記憶可能な部分画像データ18のサイズは固定されているから、画像データ読み出し制御部25は、その範囲内において歪曲補正部11が参照可能な曲線17’を設定することができる。曲線17’が設定できれば、式(1)におけるL2が取得できる。また補正対象である1ラインは定まっているため、式(1)におけるL1も取得できる。したがって、式(1)を用いることで、画像データ読み出し制御部25は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値を計算することができる。
【0058】
図11(d)における曲線27は、ラインメモリ10で記憶可能な部分画像データ18を最大限利用する場合に補正可能な光学歪みの歪み補正値をもとに歪曲補正部11が補正した結果を示す。また、図11(d)における線分27’は、本来の歪み補正値をもとに補正した場合の補正結果を示す。図11(d)に示すごとく、本来であれば補正によって直線状となるべき画像が、不十分な補正のため曲線のままとなる。しかしながら、図11(c)に示すような補正不可能な領域は存在せず、かつ図11(b)と比較すると光学歪みが補正された画像を得ることができる。
【0059】
なお、式(2)から明らかなように、光学歪み補を補正するために歪曲補正部11が参照する位置と画像の中心との距離L2は、歪曲度Dが小さくなるほど長くなり、その結果部分画像データ18は小さくなる。そこで画像データ読み出し制御部25は、歪み補正値取得部5から取得した歪曲度Dに、1未満の正の実数である歪み補正値の補正量N(0<N<1)を乗じることで、歪み補正値を調整する。
【0060】
図12は、実施の形態3に係る画像補正装置102の処理の流れを説明するフローチャートである。
【0061】
撮像素子4は、被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。画像データ制御部8内の画像データ書き込み制御部24は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する(S4)。歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値を参照して、光学制御部2における撮像時のズーム値と同値または最も近いサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値の差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。
【0062】
画像データ読み出し制御部25は、歪み補正値取得部5から取得した歪み補正値の調整が必要か否かを判断し、調整が必要な場合(S34のY)、歪み補正値をラインメモリ10で記録可能な最大ライン数で補正できる値に調整する(S36)。歪み補正値の調整が必要ない場合(S34のN)、画像データ読み出し制御部25は歪み補正値の調整をしない。以後の処理は、図7AにおけるステップS8以降の処理と同様である。
【0063】
以上説明したように、実施の形態3に係る画像補正装置102によれば、ラインメモリ本数やキャッシュメモリレジスタ量を固定量としつつ、光学歪みの補正機能を実現することができる。
【0064】
(実施の形態4)
実施の形態4の概要を述べる。実施の形態4に係る画像補正装置103は、レンズを通して撮像された画像データの光学歪みを補正するために使用する作業領域と、光学歪みが補正された画像データに追加の画像処理を実行するために使用する作業領域とが共通であり、光学歪みの補正処理と追加の画像処理との優先度に応じて、光学歪みの補正処理が使用することのできる作業領域のデータ量を変更する。以下、実施の形態1に係る画像補正装置100、実施の形態2に係る画像補正装置101、または実施の形態3に係る画像補正装置102と重複する説明は適宜省略または簡略化して記載する。
【0065】
図13は、実施の形態4に係る画像補正装置103の内部構造を模式的に示す図である。実施の形態4に係る画像補正装置103は、実施の形態1に係る画像補正装置100と比較して、画像サイズ変更部28、メモリ割り当て取得部33、およびメモリ割り当て制御部34をさらに含む。
【0066】
画像サイズ変更部28は、歪曲補正部11が補正した画像データに対して拡縮処理を実行する。このため画像サイズ変更部28は、補正画像データ書き込み制御部29、補正画像データ読み込み制御部30、拡縮用キャッシュメモリ31、および拡縮部32をさらに含む。
【0067】
補正画像データ書き込み制御部29は、歪曲補正部11から取得した補正された画像データを、ラインメモリ10において補正画像データ書き込み制御部29用に割り当てられた領域に書き込む。補正画像データ読み込み制御部30は、画像サイズ変更に必要な拡縮用の画像データを順次ラインメモリ10から読み出し拡縮用キャッシュメモリ31に保持する。拡縮部32は、拡縮用キャッシュメモリ31に読み出された補正用画像データを縮小または拡大する。これにより、画像サイズ変更部28は、歪曲補正部11が補正した画像データを1枚の画像データとしてサイズ変更することができる。
【0068】
ここで画像補正部7と画像サイズ変更部28とは、その作業領域としてラインメモリ10を共有する。前述したように、大きな光学歪みを有する画像データほどその補正に必要なラインメモリ10の垂直ライン数は大きくなる。一方で、画像のサイズ変更時における拡縮率が1から離れるほど、サイズ変更のために必要なラインメモリ10の垂直ライン数は大きくなる。例えば、画像を縮小して小さくしようとすればするほど、その処理に要するラインメモリ10の垂直ライン数が大きくなる。したがって、補正可能な光学歪みの度合いと画像データのサイズ変更の度合いとはトレードオフの関係となる。
【0069】
そこでメモリ割り当て制御部34は、歪曲補正部11が行う光学歪みの補正処理と画像サイズ変更部28が行う拡縮処理との優先度に応じて、歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値を変更する。具体的には、メモリ割り当て制御部34は、ラインメモリ10に記録可能な垂直ライン数のうち、画像データ制御部8が使用できるライン数と補正用画像データ書き込み制御部29が使用できるライン数とを振り分ける。歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値は、光学歪みの補正処理の優先度として、メモリ割り当て取得部33がユーザから取得する。
【0070】
図14Aは、実施の形態4に係る画像補正装置103の処理の流れを説明するフローチャートの前半部である。
【0071】
撮像素子4は、被写体から被写体から放出され光学制御部2によってズーム値の制御を受けた光学系1で集光された光信号を電気信号に変換する(S0)。画像前処理部6は、撮像素子4が変換した電気信号をRGB信号に変換する(S2)。メモリ割り当て制御部34は、メモリ割り当て取得部33から取得した歪曲補正部11が利用可能なラインメモリ10における部分画像データの垂直ライン数の最大値をもとに、ラインメモリ10の使用領域を割り当てる(S3)。
【0072】
画像補正部7の画像データ制御部8は、画像前処理部6より取得したRGB信号を順次ラインメモリ10に送信し記録する(S4)。ラインメモリ本数の節約のため、画像データ制御部8は、ラインメモリ10が一杯である場合、上位のライン、すなわち信号を記録されたタイミングが最も過去のラインから順に消去して新しいラインを記録する。
【0073】
歪み補正値取得部5は、歪み補正値記憶部3に記憶したズーム値についての複数のサンプル値、及びこのサンプル値に対応する歪み補正値を抽出するとともに、撮像時のズーム値とサンプル値との差に応じた補間計算によって、実際の歪み補正値を算出する(S6)。以下、図7AにおけるステップS8からステップS16までの処理を、図7Aに示す実施の形態1に係る画像補正装置100の処理と同様に実行する。
【0074】
図14Bは、実施の形態4に係る画像補正装置103の処理の流れを説明するフローチャートの後半部である。
【0075】
補正画像データ書き込み制御部29は、歪曲補正部11から取得した光学歪みの補正された画像データを、ラインメモリ10において補正画像データ書き込み制御部29用に割り当てられた領域に書き込む(S38)。補正画像データ読み込み制御部30は、画像サイズ変更に必要な拡縮用の画像データを順次ラインメモリ10から読み出し拡縮用キャッシュメモリ31に読み込む(S40)。拡縮部32は、拡縮用キャッシュメモリ31に読み出された補正用画像データを縮小または拡大する(S42)。全ラインの拡縮処理が終了していない場合(S44のN)、ステップS38に戻って上述の処理を繰り返す。全ラインの拡縮処理が終了すると(S44のY)、画像後処理部12は、拡縮補正されたRGB信号を記録媒体14に記録する際の信号仕様の変換や圧縮処理等の信号変換を行う(S46)。記録部13は、画像後処理部12より取得した画像信号を記録媒体14に記録する(S48)。出力部15は、記録媒体14に記録した画像信号を表示部で表示するための仕様にあわせて表示する(S50)。
【0076】
以上説明したように、実施の形態4に係る画像補正装置103によれば、ラインメモリ本数やキャッシュメモリレジスタ量を固定量としつつ、光学歪みの補正機能を実現することができる。加えて、ラインメモリを複数の機能で共有化しそのメモリ量をそれぞれの機能に割り当てることにより、複数機能回路の同時実装を低コストで実現できる。
【0077】
以上、いくつかの実施の形態を説明した。これらの実施の形態の任意の組み合わせもまた本発明の実施の形態として有用である。例えば実施の形態2と4とを組み合わせ、ラインメモリ最大使用量取得部22とメモリ割り当て制御部34とを併設した場合、それらの形態の効果の和に加え、さらにラインメモリ10のデータ容量の限度において光学歪みを補正するために必要なラインメモリ使用量を動的に割り当てることができる。
【0078】
そのほか、実施の形態3と4とを組み合わせたり、実施の形態2と3と4とを組み合わせたりすることができる。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態それぞれの効果を合わせ持つ。
【0079】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0080】
1 光学系、 2 光学制御部、 3 補正値記憶部、 4 撮像素子、 5 歪み補正値取得部、 6 画像前処理部、 7 画像補正部、 8 画像データ制御部、 9 キャッシュメモリ、 10 ラインメモリ、 11 歪曲補正部、 12 画像後処理部、 13 記録部、 14 記録媒体、 15 出力部、 22 ラインメモリ最大使用量取得部、 23 ラインメモリ使用量表示部、 24 画像データ書き込み制御部、 25 画像データ読み込み制御部、 28 画像サイズ変更部、 29 補正用画像データ書き込み制御部、 30 補正用画像データ読み込み制御部、 31 拡縮用キャッシュメモリ、 32 拡縮部、 33 メモリ割り当て取得部、 34 メモリ割り当て制御部、 100、101、102、103 画像補正装置。
【特許請求の範囲】
【請求項1】
光学レンズを介して撮像して得た画像データを順次記憶する所定ライン数のラインメモリと、
予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部と、
前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出す画像データ制御部と、
前記画像データ制御部が読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定する歪曲補正部とを含むことを特徴とする画像補正装置。
【請求項2】
前記光学レンズはズーム機能を有し、
前記歪み補正値記憶部は、前記光学レンズの各ズーム値と、これら各ズーム値に対応してそれぞれ決定される歪み補正値とを記憶し、
前記画像データ制御部は、前記光学レンズのズーム値を取得し、取得したズーム値と等しい値、または、前記取得したズーム値に最も近い値の前記歪み補正記憶部に記憶されたズーム値を選択し、この選択したズーム値に対応する歪み補正値と前記補正対象画素の位置とに基づいて前記補正用領域を決定し、
前記歪曲補正部は、前記補正用画素と、前記選択したズーム値に対応する歪み補正値とに基づいて、前記補正対象画素の画素値を決定することを特徴とする請求項1に記載の画像補正装置。
【請求項3】
前記ラインメモリの所定ライン数は、前記画像データに生じる光学歪みのうち最大の光学歪みを補正するために必要な画像データが得られるライン数以上とすることを特徴とする請求項1または2に記載の画像補正装置。
【請求項4】
前記画像データ制御部は、
前記画像データに生じる光学歪みの大きさが、前記所定ライン数のラインメモリから得られる画像データを用いて補正できる最大値を超える場合、前記歪曲補正部が補正する光学歪みの補正量を、前記ラインメモリから得られる画像データを用いて補正できる範囲内に抑えるように、前記歪み補正値記憶部から取得した歪み補正値を調整することを特徴とする請求項1または2に記載の画像補正装置。
【請求項5】
前記歪曲補正部が補正した画像データに対して、前記ラインメモリの一部を使用して光学歪みの補正処理とは異なる画像処理を実行する処理部と、
前記歪曲補正部が実行する光学歪みの補正処理と前記処理部が実行する追加の画像処理との優先度に応じて、前記歪曲補正部が利用可能な前記ラインメモリにおけるライン数の最大値を変更するメモリ割り当て制御部をさらに含むことを特徴とする請求項1から4のいずれかに記載の画像補正装置。
【請求項6】
前記歪曲補正部が利用可能な前記ラインメモリにおけるライン数の最大値の入力を受け付けるメモリ割り当て取得部をさらに含むことを特徴とする請求項5に記載の画像補正装置。
【請求項7】
光学レンズを介して撮像して得た画像データを、所定ライン数のラインメモリに順次記憶するステップと、
予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部から歪み補正値を取得するステップと、
前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出すステップと、
読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定するステップとをプロセッサに実行させることを特徴とする画像補正方法。
【請求項1】
光学レンズを介して撮像して得た画像データを順次記憶する所定ライン数のラインメモリと、
予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部と、
前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出す画像データ制御部と、
前記画像データ制御部が読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定する歪曲補正部とを含むことを特徴とする画像補正装置。
【請求項2】
前記光学レンズはズーム機能を有し、
前記歪み補正値記憶部は、前記光学レンズの各ズーム値と、これら各ズーム値に対応してそれぞれ決定される歪み補正値とを記憶し、
前記画像データ制御部は、前記光学レンズのズーム値を取得し、取得したズーム値と等しい値、または、前記取得したズーム値に最も近い値の前記歪み補正記憶部に記憶されたズーム値を選択し、この選択したズーム値に対応する歪み補正値と前記補正対象画素の位置とに基づいて前記補正用領域を決定し、
前記歪曲補正部は、前記補正用画素と、前記選択したズーム値に対応する歪み補正値とに基づいて、前記補正対象画素の画素値を決定することを特徴とする請求項1に記載の画像補正装置。
【請求項3】
前記ラインメモリの所定ライン数は、前記画像データに生じる光学歪みのうち最大の光学歪みを補正するために必要な画像データが得られるライン数以上とすることを特徴とする請求項1または2に記載の画像補正装置。
【請求項4】
前記画像データ制御部は、
前記画像データに生じる光学歪みの大きさが、前記所定ライン数のラインメモリから得られる画像データを用いて補正できる最大値を超える場合、前記歪曲補正部が補正する光学歪みの補正量を、前記ラインメモリから得られる画像データを用いて補正できる範囲内に抑えるように、前記歪み補正値記憶部から取得した歪み補正値を調整することを特徴とする請求項1または2に記載の画像補正装置。
【請求項5】
前記歪曲補正部が補正した画像データに対して、前記ラインメモリの一部を使用して光学歪みの補正処理とは異なる画像処理を実行する処理部と、
前記歪曲補正部が実行する光学歪みの補正処理と前記処理部が実行する追加の画像処理との優先度に応じて、前記歪曲補正部が利用可能な前記ラインメモリにおけるライン数の最大値を変更するメモリ割り当て制御部をさらに含むことを特徴とする請求項1から4のいずれかに記載の画像補正装置。
【請求項6】
前記歪曲補正部が利用可能な前記ラインメモリにおけるライン数の最大値の入力を受け付けるメモリ割り当て取得部をさらに含むことを特徴とする請求項5に記載の画像補正装置。
【請求項7】
光学レンズを介して撮像して得た画像データを、所定ライン数のラインメモリに順次記憶するステップと、
予め決定された値であり、前記光学レンズが有する歪曲収差によって前記画像データに生ずる光学歪みの補正に用いる値である歪み補正値を記憶する歪み補正値記憶部から歪み補正値を取得するステップと、
前記ラインメモリに記憶された画像データの各画素を、それぞれ前記光学歪みを補正するための補正対象画素とするとともに、この補正対象画素の位置と、前記歪み補正値記憶部から取得した歪み補正値とに基づいて、前記補正対象画素を補正するための複数の補正用画素を含む領域であり、かつ、水平画素数、垂直ライン数が固定された補正用領域を決定するとともに、前記ラインメモリから、前記補正用領域内の画像データを読み出すステップと、
読み出した前記補正用領域内の画像データに含まれる前記補正用画素と前記歪み補正値とに基づいて、前記補正対象画素の画素値を決定するステップとをプロセッサに実行させることを特徴とする画像補正方法。
【図1】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図12】
【図13】
【図14A】
【図14B】
【図2】
【図3】
【図4】
【図11】
【図5】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図12】
【図13】
【図14A】
【図14B】
【図2】
【図3】
【図4】
【図11】
【公開番号】特開2012−44530(P2012−44530A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−185189(P2010−185189)
【出願日】平成22年8月20日(2010.8.20)
【出願人】(308036402)株式会社JVCケンウッド (1,152)
【Fターム(参考)】
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願日】平成22年8月20日(2010.8.20)
【出願人】(308036402)株式会社JVCケンウッド (1,152)
【Fターム(参考)】
[ Back to top ]