(57)【特許請求の範囲】
【請求項１】
画像データに対して歪補正処理を行う歪補正処理部を有する画像処理装置であって、
前記画像処理装置は、さらに、前記歪補正処理部が前記歪補正処理を行うのに必要とする、歪補正前の画像における入力画像範囲を算出する歪補正範囲算出部を有し、
前記歪補正範囲算出部は、
歪補正後の画像の座標系における画素に対応する補間座標を生成する座標生成部と、
前記生成された補間座標に対して所定の歪補正式を適用して歪補正前の画像の座標系における画素の座標位置に変換する歪補正座標変換部と、
前記変換された座標位置から、前記歪補正処理を行うのに必要とする入力画像範囲を算出する補正範囲検出部と、
を有し、
前記座標生成部は、歪補正後の出力画像範囲における辺縁部の各画素に対応する座標位置のみを用いて前記補間座標を生成することを特徴とする画像処理装置。
【請求項２】
前記出力画像範囲は矩形であって、
前記座標生成部は、前記出力画像範囲の４辺の各画素に対応する座標位置のみを用いて前記補間座標を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記歪補正範囲算出部は、座標変換により生成された座標位置に対し、前記出力画像範囲の４辺の各辺に対応する画素の座標位置の最大値と最小値および前記出力画像範囲の４頂点に対応する座標位置の少なくともいずれかから前記入力画像範囲を算出することを特徴とする請求項１または２に記載の画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主に、デジタルカメラ等の電子的撮像装置に用いられる画像処理装置及び画像処理方法に関し、特に、回路規模やデータ転送量を増大させること無く、歪補正機能を実現する画像処理装置及び画像処理方法に関する。
【０００２】
【従来の技術】
デジタルカメラ，銀塩カメラを問わず、一般的にカメラの光学系においては歪曲収差が現れる。また、現在発売されているカメラでは、光学ズームが可能な機種が殆どであり、その場合、ワイド端からテレ端にかけて、歪曲収差の状態が変化する。ワイド端では樽型歪が多く、テレ端では糸巻き型歪が多い。
【０００３】
歪曲収差は、例えば格子状の被写体を撮影すると、樽型歪、糸巻き型歪として観測される。
【０００４】
図１６(a)は格子状の被写体、(b)は樽型歪を生じた撮影画像、(c)は糸巻き型歪を生じた撮影画像である。
【０００５】
ところで、デジタルカメラにおいては、ＣＣＤ等の撮像素子のデータに対し、様々な画像処理を行なった後、ＪＰＥＧ等の圧縮方式で圧縮したデータをメモリカード等の記録媒体に記録する。
【０００６】
図１７(a)は一般的なデジタルカメラで行われている画像処理手順の概念を示している。ＣＣＤにより取り込まれた撮像信号にプリプロセスで画素欠陥処理、Ａ／Ｄ変換等を行い、得られた画像データをＳＤＲＡＭ等のフレームメモリに一旦記憶する。次に、フレームメモリから読み出された画像データに対してイメージプロセスにより各種の画像処理を行い、さらにＪＰＥＧ処理で画像圧縮して記録媒体としてのメモリカード等に記録する。
【０００７】
図１７(b)は従来のデジタルカメラの画像処理装置のブロック図（例えば特開２０００−３１２３２７号公報での従来例）を示している。
【０００８】
図１７(b)において、従来の画像処理装置は、バス103にＣＰＵ104と共にプリプロセス回路102，複数のイメージプロセス回路106-1〜106-n，ＪＰＥＧ処理部107，フレームメモリ105及び記録媒体としてのメモリカード108が接続されている。そして、ＣＰＵ104の制御により、ＣＣＤ101からの撮像信号がプリプロセス回路102で画素欠陥処理やＡ／Ｄ変換等が施された後、バス103を通してフレームメモリ105に一旦記憶される。次に、フレームメモリ105から画像データを読み出し、バス103を通してイメージプロセス回路106-1に入力して所定の画像処理を行い、再びバス103を通してフレームメモリ105に書き直す。以下同様にして、バス103を介してフレームメモリ105とイメージプロセス回路106-2〜106-nとの間でデータのやり取りを順次行って、最後にＪＰＥＧ処理部107でＪＰＥＧ圧縮処理を行い、画像処理したデータをフレームメモリ105に一旦記憶し、フレームメモリ105から読み出した処理データをメモリカード等108に記録するようになっている。以上の各段のイメージプロセス及びＪＰＥＧ処理では、小領域（ブロックライン）を単位として画像処理が行われる。
【０００９】
ところで、イメージプロセス回路の少なくとも１つにおいて図１６で述べたような歪補正処理を行う方法として、下記の光学的に表現される歪補正式[式３]を用いることによって撮像画像の歪曲収差を補正することが行われる。
【００１０】
【式３】
0004772281.tif 000002
しかしながら、光学的に表現される上記の[式３]を用いて歪補正を行った場合、補正画像に過不足が生じる。
【００１１】
図１８は樽型歪，糸巻き型歪を生じた撮影画像を、上記の[式３]によって補正する動作を説明するものである。
【００１２】
図１８(a)は点線のように樽型に歪んだ元画像を[式３]にて補正した場合であって、補正された画像は画像出力範囲からはみ出して無駄になる部分を生じている。
【００１３】
図１８(b)は点線のように糸巻き型に歪んだ元画像を[式３]にて補正した場合であって、補正された画像は画像出力範囲より小さくなりデータが不足する部分が生じる。
【００１４】
このような図１８の不具合に対して、先行出願である特開平９−０９８３４０号公報では、歪補正後に、電子ズームを行うことで補正により伸長した分を縮小して元の位置まで戻して、歪補正により失われる画像情報を最小限に抑えている。
【００１５】
【特許文献１】
特開２０００−３１２３２７号公報（第３頁、図１９）
【００１６】
【特許文献２】
特開平９−０９８３４０号公報（第１−３頁、図４−図８）
【００１７】
【発明が解決しようとする課題】
しかしながら、特許文献１の従来例では、フレームメモリと各イメージプロセス回路間でデータのやり取りが多く、バスのデータ転送量が増大する。
【００１８】
また、特許文献２では、樽型歪の補正にしか言及しておらず、撮像中心に一番近い点を基準にしており、原理的に樽型歪の補正のみである。
【００１９】
糸巻き歪に対しては、補正された画像が画像出力範囲より小さくなり画像データが不足する部分が生じる。さらに、図１９に示すような陣笠型歪を補正するには、歪補正式に４次項以上が必要になるが、元画像データを最大限使うための補正倍率Ｍを解析的に求めることが困難であった。
【００２０】
そこで、本発明は上記の問題に鑑み、撮像した元データを有効に活用して歪補正処理を行い、補正した画像が画像出力範囲に対して無駄なく有効に出力でき、糸巻き型歪，樽型歪，及び陣笠型歪にも対応できる歪補正処理が可能な画像処理装置及び画像処理方法を提供することを目的とするものである。
【００２１】
【課題を解決するための手段】
本発明による第１の画像処理装置は、画像データに対して歪補正処理を行う歪補正処理部を有する画像処理装置であって、前記画像処理装置は、さらに、前記歪補正処理部が前記歪補正処理を行うのに必要とする、歪補正前の画像における入力画像範囲を算出する歪補正範囲算出部を有し、前記歪補正範囲算出部は、歪補正後の画像の座標系における画素に対応する補間座標を生成する座標生成部と、前記生成された補間座標に対して所定の歪補正式を適用して歪補正前の画像の座標系における画素の座標位置に変換する歪補正座標変換部と、前記変換された座標位置から、前記歪補正処理を行うのに必要とする入力画像範囲を算出する補正範囲検出部と、を有し、前記座標生成部は、歪補正後の出力画像範囲における辺縁部の各画素に対応する座標位置のみを用いて前記補間座標を生成することを特徴とする。
【００２２】
このように、画像データに対して歪補正処理を行う歪補正処理部と、この歪補正処理部が前記歪補正処理を行うのに必要とする入力画像範囲を算出する歪補正範囲算出部を設けることにより、歪補正処理の実行中に、次の歪補正処理を行うのに必要とする入力画像範囲の算出処理を行うことができ、歪補正処理を次のブロックラインに対して順次スムーズに行なっていくことが可能である。また、出力画像（即ち、歪補正後の画像）の出力範囲の一部または全部に相当する領域が入力画像（即ち、撮像画像）内に占める範囲を算出することで、歪補正によって得られる補正画像は出力すべき出力範囲に対して過不足なく出力することが可能となり、出力範囲に対して補正画像がはみ出したり不足したりすることのないようにできる。
補間座標を生成するとは、歪補正前の撮像画像（入力画像）の位置を求めるために、出力されるべき補正後の補正画像（出力画像）の位置を前もって生成することである。この補間座標に対して歪補正式を適用して、歪補正前の画像位置（座標）を生成（変換）出力させ、変換された補正前の座標位置から歪補正処理すべき入力画像範囲を算出するようにしている。
【００２６】
この構成では、補間座標を生成する際に、出力画像範囲における辺縁部に対応する歪補正後の画像における座標を用いて補間座標を生成する。
【００２７】
本発明による第２の画像処理装置は、第１の画像処理装置において、前記出力画像範囲は矩形であって、前記座標生成部は、前記出力画像範囲の４辺の各画素に対応する座標位置のみを用いて前記補間座標を生成することを特徴とする。
【００２８】
この構成では、矩形の出力画像範囲に対して、補間座標を生成する際に、出力画像範囲の４辺に対応する歪補正後の画像における座標を用いて補間座標を生成する。
【００２９】
本発明による第３の画像処理装置は、第１または第２の画像処理装置において、前記歪補正範囲算出部は、座標変換により生成された座標位置に対し、前記出力画像範囲の４辺の各辺に対応する画素の座標位置の最大値と最小値および前記出力画像範囲の４頂点に対応する座標位置の少なくともいずれかから前記入力画像範囲を算出することを特徴とする。この構成で、４頂点とは、歪補正後の出力画像における各辺の頂点を指している。
【００４１】
このように、歪補正処理を行うに際して、歪補正処理を行う入力画像範囲を算出することにより、歪補正処理の実行中に、次の歪補正処理を行うのに必要とする入力画像範囲の算出処理を行うことができ、歪補正処理を次のブロックラインに対して順次スムーズに行なっていくことが可能である。また、歪補正後の画像の出力範囲の一部または全部に相当する領域が入力画像内に占める範囲を算出することで、歪補正によって得られる補正画像は画像出力範囲に対して過不足なく出力することが可能となり、画像出力範囲に対して補正画像がはみ出したり不足したりすることのないようにできる。
また、前記入力画像範囲は、次の歪補正処理を行うのに必要とする入力画像範囲であり、前記歪補正処理の実行中に算出されることを特徴とする。
【００４２】
【発明の実施の形態】
発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態の画像処理装置の全体構成を示すブロック図である。
【００４３】
図１の画像処理装置においては、バス３に接続された各部の制御を行うＣＰＵ４の制御により、ＣＣＤ１からの撮像信号をプリプロセス回路２で画素欠陥処理、Ａ／Ｄ変換等を行い、得られた画像データを、バス３を介してフレームメモリ５に一旦記憶する。フレームメモリ５は、ＳＤＲＡＭ等で構成され、画像処理前のデータ及び画像処理後のデータを格納するメモリである。次いで、フレームメモリ５から読み出した画像データをバス３を介して、第１データ順序変換部６に入力する。第１データ順序変換部６は、後に図２０(A)で説明するように、ブロック単位のデータを記憶可能なメモリを複数、ここでは２つ備えている。第１データ順序変換部６は、フレームメモリ５から行方向にデータを読み出して記憶した後、列方向にデータを順に読み出し、イメージプロセス回路７に出力する。
【００４４】
イメージプロセス回路７は入力したデータに対して所定の画像処理を行って次段の歪補正手段としての歪補正処理部８に転送する。歪補正処理部８は入力したデータに対して歪補正処理を行って次段の第２データ順序変換部９へ転送する。第２データ順序変換部９は、後に図２０(B)で説明するように、ブロック単位のデータを記憶可能なメモリを複数、ここでは２つ備えている。第２データ順序変換部９は、 歪補正処理部８から列方向にデータを読み出して記憶した後、行方向にデータを順に読み出し、ＪＰＥＧ処理部１０に転送する。そして、ＪＰＥＧ処理部１０でＪＰＥＧ圧縮処理を行い、処理データをフレームメモリ５に一旦記憶し、フレームメモリ５から読み出した処理データをメモリカード等１１に記録するようになっている。
【００４５】
歪補正処理部８は、図２に示すように、歪補正後の補正画像の位置（補間位置という、Ｘ，Ｙ）とこれに対応した歪補正前の元の画像の位置（Ｘ’，Ｙ’）を生成する補間座標生成部８１と、歪補正処理部８の前段ブロックの回路からの画像データの一部を一時的に格納しておくバッファメモリ（以下、単にバッファ）としての内部メモリ部８２と、その内部メモリ部８２に対する書き込み及び読み出しの制御を行うメモリ制御部８３と、変換した歪補正前の画像位置の座標（Ｘ’，Ｙ’）に従って画像処理をしてデータの歪補正をする補間演算部８４と、を有して構成されている。
【００４６】
補間座標生成部８１は、図２に示すように、補間座標（Ｘ，Ｙ）を生成する座標生成部811と、生成された補間座標（Ｘ，Ｙ）に対して所定の歪補正式[式１]（後述する）を適用して変換した補正前の座標（Ｘ’，Ｙ’）を出力する歪補正座標変換部812と、座標生成部811からの補間座標（Ｘ，Ｙ）と歪補正座標変換部812からの変換座標（Ｘ’，Ｙ’）とを選択的に出力可能なセレクタ813と、で構成されている。歪補正処理部８における座標生成部811，歪補正座標変換部812，セレクタ813，メモリ制御部８３については、制御データを格納した制御レジスタ８５に設定された各ブロックに対する設定値に従って動作する。また、処理結果のステータスなどをＣＰＵから参照することができる。
【００４７】
歪補正処理部８には、図１に示すように、歪補正処理部８が歪補正処理を行う入力画像範囲を算出する歪補正範囲算出部１２が設けられている。歪補正範囲算出部１２は、図７で説明するように、補間座標を生成する座標生成部９１と、生成された補間座標に対して所定の歪補正式を適用して変換した座標を出力する歪補正座標変換部９２と、変換された補正前の座標位置から前記入力画像範囲を算出する補正範囲検出部９３と、を有して構成されている。
【００４８】
以上のように構成された本発明による画像処理装置においては、上記第１データ順序変換部６からＪＰＥＧ処理部１０までは、バス３を介することなく、該バス３とは異なる情報伝達経路でパイプライン処理可能なように接続されていて、画像データを、２次元的な画素配列における所定のブロック単位で転送して処理するようになっている。このようにバス３を介したデータ転送は、フレームメモリ５から第１データ順序変換部６への転送と、ＪＰＥＧ処理部１０からフレームメモリ５への転送及びフレームメモリ５からメモリカード１１への転送だけとなり、したがってフレームメモリと各イメージプロセス回路との間でデータのやりとりを行っていた従来例（図１７(b)）と比べて、バス３によるデータ転送量を大幅に低減させることができ、バス３の負荷を大幅に軽減することが可能となる。また、この図１に示す例においては、画像処理を行うイメージプロセス回路７を１つのみ設けているが、複数あっても構わない。さらに、図では、イメージプロセス回路７の後に歪補正処理部８が設けられているが、逆の構成であっても構わない。
【００４９】
初段のイメージプロセス回路７と２段目のイメージプロセス回路である歪補正処理部８で構成されるイメージプロセス回路部では、各イメージプロセス回路７，８の前段或いは内部にパイプラインレジスタとして、図示しない小容量のメモリが配置されていて、該小メモリを介して、各イメージプロセス回路７，８がパイプライン処理動作を行うように構成されている。これらの小容量のメモリは、各イメージプロセス回路７，８で空間的な画像処理を行う場合、画像処理に必要な周辺データの記憶をするために、また画像データをブロック単位で読み出して配列換えなどを行って処理する必要があるために、設けられている。
【００５０】
図３は歪補正処理部８における座標変換の概念図を示している。図３(a)は元データである撮像画像データ、同図(b)は補正画像、同図(c)は(b)の補正画像の座標位置（Ｘ，Ｙ）に対して(a)の元データの座標上に変換された座標位置Ｐでのデータの座標（Ｘ’，Ｙ’）（この座標は元データを実際に構成する複数の画素の位置には必ずしも正確には一致しない座標位置にある）を示している。そのＰ点での座標位置（Ｘ’，Ｙ’）はそのＰ点の周辺の画素１６点の座標を使って算出されると共にＰ点での画像データはその周囲の前記１６点の画素データを用いて補間演算される。補間演算部８４にて点Ｐの位置のデータをその周囲の１６点の画素値（輝度データ）から補間演算するべく処理が行われる。図２の補間位置生成部811で補間座標を生成するというのは、図３(b)の補正画像側でどこの画素位置（Ｘ，Ｙ）を指し示すか、ということである。
【００５１】
[式１]では、歪補正後の画素位置（Ｘ，Ｙ）に対する歪補正前の画素位置（Ｘ’，Ｙ’）を算出することができる。但し、歪補正前の画素位置（Ｘ’，Ｙ’）は元画像データ上の画素位置に対応した整数値になるとは限らないことは前述した通りである。
【００５２】
[式１]に従うと、図３(b)の座標（Ｘ，Ｙ）が同図(a)のように座標（Ｘ’，Ｙ’）に変換される。これにより、元データの中のどこの座標位置のデータを作成すれば、よいかを知ることができ、その位置（Ｘ’，Ｙ’）のデータを１６点補間処理を行う補間式を用いて周囲１６点の既知の画素値（図３(c) の黒丸印の入力画像データ）から算出して得ることができる。
【００５３】
【式１】
0004772281.tif 000003
[式１]におけるＺは、歪中心（Ｘd，Yｄ）から今注目している点（Ｘ，Ｙ）までの距離である。[式１]によって、補正画像の点（Ｘ，Ｙ）に対して歪んでいる元画像の方の座標（Ｘ’，Ｙ’）が算出される。[式１]について補足説明すると、Ｍは光学系のデータを用いて理論的に補正した際、補正後に画像がはみ出したり、不足したりする現象を補正するための補正倍率である。Ｓx，Ｓyは間引き取込みなど、縦横で空間的なサンプリング間隔が異なる現象の補正をするためのサンプリング比である。Ｘoff，Ｙoffは歪補正処理によって、歪補正処理後に、被写体位置が撮影時の位置とはずれてしまう現象の補正をする中心ずれの値である。
【００５４】
本発明に係る[式１]では、高次項（具体的にはＺ４、Ｚ６、…）を考慮することで、より複雑な陣笠型の歪（図１９参照）にも対応できるようにしている。また、中心が一致していても撮像素子の一部しかデータを取り込まない場合や、光軸中心と撮像素子中心がずれている場合など、歪中心（Ｘｄ，Ｙｄ）を考慮する必要がある。さらに、歪補正処理により被写体位置が撮影時の位置からずれる現象を補正するため、中心ずれ補正値（Ｘoff，Ｙoff）を考慮する必要がある。間引き取込みの場合や輝度データ（Ｙ）と色データ（Ｃb，Ｃr）からなるＹＣ画像を処理する場合は、Ｘ，Ｙで空間的なサンプリングが異なる。そこで係数としてサンプリング比（ＳＸ，Ｓｙ）を導入して、座標変換を補正するようにしている。
【００５５】
図１８(a)の樽型歪では歪補正するためにＭ＜１として少し縮むようにしておかなければならない。図１８(b)の糸巻き型歪の場合は逆に引き伸ばさなければならないので、Ｍ＞１に設定する。
【００５６】
従来例で述べた[式３]では、樽型歪・糸巻き型歪を補正することを考慮して記述されている。
【００５７】
次に、図４，図２０を参照して画像データの書き込み及び読み出しの処理及び順序について説明する。
【００５８】
図４は、本実施の形態におけるフレームメモリからの画像データの読み出し順序を説明する図である。
画像データは、通常は、ライン方向、つまり行方向にスイープさせて書き込まれていて、読み出し時は行方向に読み出されるようになっており、１ラインの画像データを全て読み出して、次に隣接するラインの画像データを全て読み出すといった動作を繰り返して行うのが普通である。
【００５９】
これに対して、本発明に係る画像処理装置は、行方向にスイープさせて書き込まれた画像データを、列方向にある一定の長さを単位に、行方向の画像データを順番にイメージプロセス部７に入力し、以降、順次隣の列をイメージプロセス部７に入力して、画像の右端まで繰り返して得られる小領域（矩形状の画像データ）をブロックライン（ＢＬ）と呼ぶ。
【００６０】
こうした画像データの読み出しを可能にするための第１データ順序変換部６と、第２データ順序変換部９との構成を、図２０を参照して説明する。図２０は、第１，第２データ順序変換部の構成を示すブロック図である。
【００６１】
第１データ順序変換部６は、図２０(A)に示すように、ブロック単位の画像データを記憶可能なメモリを複数、ここでは２つ備えており、この２つのメモリ６ａとメモリ６ｂが書き込み側，読み出し側の各スイッチにて書き込み，読み出しが交互に切り換えられるようになっている。すなわち、フレームメモリ５は、書き込み側のスイッチにて、これらメモリ６ａとメモリ６ｂとに切換可能に接続されているとともに、イメージプロセス部７も読み出し側のスイッチにてこれらのモリ６ａとメモリ６ｂとに切換可能に接続されていて、フレームメモリ５がメモリ６ａとメモリ６ｂとの一方に接続されているときには、該メモリ６ａとメモリ６ｂとの他方がイメージプロセス部７に接続されるように切り換えられる。すなわち、メモリ６ａ，６ｂは、フレームメモリ５とイメージプロセス部７との両方に同時に接続されることがないようにスイッチングされ、交互に書き込み，読み出しが行われるようになっている。
【００６２】
フレームメモリ５に記憶されているフレーム画像の一部は、ブロック単位でライン方向に読み出され、一方のメモリ、ここでは例えばメモリ６ａに記憶される。
【００６３】
これと並行して、メモリ６ｂからは、既にフレームメモリ５から読み出されて記憶されているブロック単位の画像データが、列方向（縦方向）に順に読み出されて、イメージプロセス部７へ出力される。
【００６４】
フレームメモリ５からメモリ６ａへの書き込みと、メモリ６ｂからイメージプロセス部７への読み出しが終了すると、書き込み側のスイッチおよび読み出し側のスイッチが切り換えられて、次に、フレームメモリ５からメモリ６ｂへ次のブロック単位の画像データの書き込みが開始されるとともに、メモリ６ａからイメージプロセス部７へのブロック単位の画像データの読み出しが開始される。
【００６５】
第２データ順序変換部９も、図２０(B)に示すように、上記第１データ順序変換部６とほぼ同様に構成されていて、ほぼ同様に動作するようになっている。
【００６６】
すなわち、第２データ順序変換部９は、メモリ９ａ，メモリ９ｂと、書き込み側スイッチ，読み出し側スイッチとを有して構成されている。
【００６７】
そして、該第２データ順序変換部９の動作時には、歪補正処理部８からの書き込みがメモリ９ａとメモリ９ｂとの一方に対して列方向（縦方向）に行われ、メモリ９ａとメモリ９ｂとの他方からは行方向（横方向）に読み出しが行われて、ＪＰＥＧ処理部１０へ出力されるようになっている。
図５はブロックラインと歪補正処理に必要なメモリ容量（バッファ容量）の関係を示している。点線枠上の歪曲した４本の実線は、歪補正後の出力データでは直線（縦１ライン）となるべきデータであるが元データでは歪んでいる。４本の直線のうち、画像中心から離れた左端の直線がもっとも歪曲している。黒丸印は歪補正後の出力データの画素位置に対応する歪補正前の位置を示している。前述の内部メモリ部８２では、撮像後の歪んだ入力データがブロックライン内で最大の歪量となる横方向の幅に１６点補間を考慮して左右に余裕分をとった範囲を、歪補正処理に必要なバッファ量として確保するようにする。すなわち、これだけのバッファ容量があれば、歪補正可能であるバッファ量、換言すれば歪補正したときに正しい直線形状を作成することが可能なバッファ量を示している。
【００６８】
図６は、ブロックライン幅の設定方法を示すものである。ブロックライン幅を歪補正処理の対象位置に応じて可変設定する例を示している。湾曲した点線は入力側の歪んだデータを示しており、画像中心より離れるほど、すなわち外側にいくほど歪み度合いが大きくなっている。従って、フレームメモリ上の入力データに対してブロックライン幅を設定する際には、その幅は画像中心から離れるほど大きく、中心に近いほど幅を狭くするように設定する。これにより、フレームメモリ５からバス３を介してイメージプロセス回路にデータ転送する際に、データ幅が狭くてよければそのときのバスの専有時間を減らすことができる。
【００６９】
一般的に、画像中心では歪による変形量が小さい。歪補正の処理対象の位置によって、ブロックライン幅（図示の縦方向にスイープする幅）の設定値を変更する。式１には高次項が含まれるため、ブロックライン分の処理に必要な入力範囲を解析的に求めることができない。ブロックライン幅の設定は、歪補正範囲算出部９の処理結果に基づき、また、ＣＰＵで該結果に所定の演算を施すことにより設定する。
【００７０】
図７は、歪補正範囲算出部１２の構成を示している。歪補正範囲算出部１２は、補間座標（Ｘ，Ｙ）を生成する座標生成部９１と、生成された補間座標（Ｘ，Ｙ）に対して所定の歪補正式（例えば[式１]）を適用して変換した座標（Ｘ’，Ｙ’）を出力する歪補正座標変換部９２と、変換された補正前の座標位置（Ｘ’，Ｙ’）から歪補正処理に必要な入力画像範囲を算出する補正範囲検出部９３と、を有して構成されている。このように歪補正範囲算出部１２は、座標生成部９１、歪補正座標変換部９２、補正範囲検出部９３からなり、ＣＰＵ４からは制御レジスタ９４を通じて動作を制御し、範囲算出結果も制御レジスタ９５を通して取得する。歪補正範囲算出部１２は、歪補正処理機能に対して付加したもので、歪の変形を考慮して画像データの入力範囲を算出可能とするサポート機能として働く。
【００７１】
次に図８を参照して、歪補正範囲算出部１２における、歪補正処理に必要な入力画像範囲を算出する動作を説明する。
【００７２】
補正画像内で範囲を指定し、入力画像上に座標変換する方法で行う。まず、図８(a)に示すように補正画像上の所定範囲（例えば５行分）の画素位置（格子点位置）を決め、[式１]にて図８(b)に示すように出力側の元データ上に座標変換することで、出力側データでの５行分のデータの範囲が分かる。処理の設定は、ハードウェアのレジスタ設定で行う。図８(a)の補正画像上で、例えばスタートは、点（Ｘst，Ｙst）から間隔ΔＷ，ΔＨという順番で格子点を生成していき、縦に何点、横に何点かとり、縦にＨout画素、横にWout画素となるように設定する。そして、元データ上の位置に変換した結果、補正画像の格子点に対応した交点座標が歪曲した線上に形成されるが、そのブロックラインに対応した歪曲した範囲すなわち外接する図示の太い点線が入力画像範囲として分かればよい。実際には、図８(a)，(b)で黒丸印にしてあるような矩形状の周囲４辺上の黒丸位置の座標だけ追っていけば、その位置範囲を規定する４辺について最大値と最小値から入力画像範囲が分かる。例えば、上の辺はＹTmax，ＹTminという間に、下の辺はＹBmax，ＹBminという間に収まり、左の辺はＸLmax，ＸLmin という間に、右の辺はＸRmax，ＸRminという間に収まっている、というデータを実際に検出して、結果格納用レジスタ９５に格納する。ブロックライン処理には、（ＸLmin〜ＸRmax，ＹTmin〜ＹBmax）に補間に必要な画素を加えた範囲が必要である。なお、図８(b)で、出力側の元データ上で、各頂点の変換後の位置を（Ｘ’TL，Ｙ’TL）、（Ｘ ’TR，Ｙ’TR）、（Ｘ’BL，Ｙ’BL）、（Ｘ’BR，Ｙ’BR）としている。
【００７３】
座標生成部９１は、[式２]で補正画像に必要な座標位置（Ｘ，Ｙ）を生成し、[式１]で（Ｘ’，Ｙ’）に変換する。上辺の変形範囲をＹ Tmin〜ＹTmax、下辺の変形範囲をＹBmin〜ＹBmax、左辺の変形範囲をＸLmin 〜ＸLmax、右辺の変形範囲をＸRmin〜ＸRmax、各頂点の変換後の位置を（Ｘ’TL，Ｙ’TL）、（Ｘ ’TR，Ｙ’TR）、（Ｘ’BL，Ｙ’BL）、（Ｘ’BR，Ｙ’BR）とし、これらを補正範囲検出部９３で検出し、結果格納用レジスタ９５に格納する。
【００７４】
【式２】
0004772281.tif 000004
図９は、歪補正処理の動作を説明するフローチャートである。まず、ステップＳ11で、歪補正[式１]の補正倍率Ｍを決定する。補正倍率Ｍの決定の仕方は図１０のフローチャートにて後述する。次に、ステップＳ12では、決定した補正倍率Ｍを使って、図６〜図８の説明で述べたようにブロックライン処理に必要な入力範囲を補間に必要な部分も考慮して算出し、ステップＳ13でこの算出した入力範囲と、歪補正処理に必要な設定値を設定する。そして、ステップＳ14で、ブロックライン毎の歪補正処理と次ブロックラインの入力範囲算出を同時実行する。その後、画像の最下段のブロックラインの歪補正処理が行われるまで、ブロックライン毎の歪補正処理と次ブロックラインの入力範囲算出を実行する。ステップＳ15において出力画像全体について歪補正処理が終了したか否かを判定することで、ステップＳ14を繰り返し、画像全体について歪補正処理が終わるまで続行して終了する。
【００７５】
このようにすれば、歪補正実行中に、次に歪補正を行う画像入力範囲を算出するので、１つのブロックラインの歪補正が終わったときには次の歪補正処理を行う画像入力範囲が分かっており、歪補正処理を次のブロックラインに対して遅れなく順次スムーズに行なっていくことが可能である。
【００７６】
上記のステップＳ11で、補正倍率Ｍを適切に決めてやると、図１８(a)，(b)で述べた樽型及び糸巻き型のどの歪み画像を補正処理しても画像の出力範囲にきっちりと入れることが可能である。
【００７７】
図１０は図９のステップＳ11における補正倍率Ｍの算出方法を説明するフローチャートを示している。まず、ステップＳ21で補正倍率Ｍの初期値として１.０を設定する。次にそのＭと歪補正[式１]を用いて出力画像の例えば４辺を座標変換することで歪補正範囲算出部１２にて入力画像範囲を算出し（ステップＳ22）、元画像の範囲内か否かを判定する（ステップＳ23）。ステップＳ23で図１８(a)のように出力範囲を越えるようであれば、ＭをΔＭだけ減少させた後（ステップＳ24）、ステップＳ22に戻り、入力画像範囲を算出し、再びステップＳ23の範囲内判定を行う。すなわち、少しずつＭの値を変えて、ステップＳ23で元画像の範囲内か否かを判定し、元画像の範囲内であれば、ステップＳ25へ移行する。ステップＳ25では前記の入力画像範囲が元画像の範囲内に収まる最大のＭか否かを判断する。元画像の範囲内で最大でないならば、ＭをΔＭだけ増加させた後（ステップＳ26）、ステップＳ22に戻り、ステップＳ23〜26を行う。ステップＳ25で元画像の範囲内で最大ならば、そのときのＭを補正倍率として決定する。このとき、範囲算出に用いられる領域は、補正画像の全体である。
【００７８】
なお、図１０のフローは、他の方法でも良い。例えば、補正倍率Ｍの最大及び最小Mmax、Mminを設定し、順次その範囲を２分割して最適なＭを追い込む方法を用いると、計算量が少なくて済む。
【００７９】
ところで、図９におけるステップＳ14において、歪補正処理部８の補正演算に比べて、歪補正範囲算出部９の範囲算出演算の方が演算量が少ない。そこで、補正演算の乗算器を時系列で使うことで、回路規模の削減が可能となる。
【００８０】
歪補正処理を行う際には、[式１]を見れば分かるように非常に掛算が多くてハードウェア的には回路規模が非常に大きい計算になっている。一般的に乗算器がハードウェアの回路規模を大きくしているので、出来るだけ乗算器を減らすことが好ましい。乗算器制御部を設けて乗算器制御し、タイミングを取りながら、パイプライン的に処理することで、全体の処理速度を下げずに、回路規模を縮小できる。
【００８１】
図１１は、図７の歪補正座標変換部９２の部分の具体的な構成を示している。それ以外の部分は、図７と同様である。歪補正座標変換部９２では、[式１]のような乗算の多い計算を行うが、その際の複数の乗算をタイミングを図りながら時系列で処理することで、乗算器数を減らすことができるように構成してある。
【００８２】
歪補正座標変換部９２は、座標生成部９１から補間座標（Ｘ，Ｙ）を入力し、[式１]の（２）を演算してＺ２を算出するＺ２算出部921と、Ｚ２算出部921からのＺ２と乗算器923からのγを入力し、α，βを出力する乗算器制御部922と、α，βを入力し、γを出力する乗算器923と、補正係数Ａ，Ｂ，Ｃ，…のいずれかに相当するδを出力する乗算器制御部924と、α，δを入力し、補正係数と、Ｚの整数倍との積に相当するεを出力する乗算器925と、乗算器925からのεと座標生成部９１からの補間座標（Ｘ，Ｙ）を入力し、補正前の元データの座標（Ｘ’，Ｙ’）を出力する補正座標算出部926と、を有して構成されている。
【００８３】
図１２は図１１のデータ出力のタイミングチャートを示している。まず、Ｚ２算出部921は、クロックＣＬＫが‘１’のタイミングで補間座標（Ｘ，Ｙ）を入力する。次に乗算器制御部922は、クロックＣＬＫの‘２’のタイミングでα，βとしてＺ２を出力し、乗算器制御部924は同じタイミング‘２’でδとして歪補正係数Ａを出力する。次のクロックＣＬＫの‘３’のタイミングで、乗算器923は入力されるα，βに基づいてγとしてＺ４を出力し、乗算器925は入力されるα，δに基づき同じタイミング‘３’でεとしてＡＺ２を出力する。同様に、続くクロックＣＬＫの‘４’，‘５’のタイミングでは、δ，εとしてＢ，ＢＺ４を得、クロックＣＬＫの‘６’，‘７’のタイミングでは、δ，εとしてＣ，ＣＺ６を得る。その結果として、クロックＣＬＫの‘８’のタイミングで、補正座標算出部926から補間座標（Ｘ，Ｙ）に対する元データの座標位置（Ｘ’，Ｙ’）を出力する。
【００８４】
図１１の構成では、乗算器は２つしかないが、乗算器を時系列で使うことで、実際には６つ分の計算をさせている。結果的に乗算器を１／３に減らすことが可能となる。さらに高次項を考慮する場合でも、同様の動作をさせればよい。
【００８５】
ところで、図１２のタイミングチャートを見ると、歪補正座標変換処理においてクロックごとの各変数の出力データには時間的な隙間（空き）があるのが分かる。そこで、パイプライン処理により各変数の出力データを時間的に空きのないように連続的に出力させることが考えられる。
【００８６】
図１３は、図１２の動作を改善したものであり、パイプライン処理でのデータ出力のタイミングチャートを示している。図１２の動作タイミングでは、補間座標（Ｘ，Ｙ）の入力から７クロック経過後に出力として元データの座標位置（Ｘ’，Ｙ’）が得られている、つまり、１つ結果が出るまでに７クロック分の時間を要する。これに対して、図１３では、１０サイクル目に１サイクル目と同じことが起こるので、９サイクルで３画素処理していることになる。つまり、見かけ上３サイクルで１画素処理していることになる。
【００８７】
これまでは、歪補正範囲算出部では１つのチャンネルについてしか歪補正範囲算出処理を行わない例について述べてきたが、次に前出の１チャンネル分にかかった時間と同じ時間で、３チャンネル分を１つの歪補正範囲算出部で行う方法について説明する。これには、図１４に示すように、図８の補正画像上の範囲設定において、注目領域の４辺における範囲算出用画素を例えば１／３の画素数に間引いて設定し演算処理させることで、１チャンネル分の処理時間とほぼ同じ時間で終わることができる。間引き量はレジスタ設定で行う。図１４のように間引いた座標（黒丸を付したところ）でしか演算しないため、前出の処理時間と同じ時間で複数のチャンネル分に対応でき、しかも回路規模を増大させることがない。そうすると、例えばカラー画像を扱う場合に、Ｒ，Ｇ，Ｂごとに歪補正範囲算出部を設けなくとも３チャンネル分を１つの回路部で動作させれば１つの歪補正範囲算出部で済み、回路規模を増大させることなく、同じ時間内で済ませることができる。
【００８８】
図１５は、３チャンネルの場合の歪補正処理の動作を説明するフローチャートである。図９に示した歪補正処理を３チャンネル分に適用したものである。
【００８９】
図１５におけるステップＳ31〜Ｓ33及びステップＳ35は、図９のステップＳ11〜Ｓ13及びステップＳ15と同じである。
【００９０】
ステップＳ34では、３チャンネルにおけるブロックライン毎の歪補正処理と、１チャンネル目（例えば、Ｒ）に対する次ブロックラインの入力範囲算出→２チャンネル目（例えば、Ｇ）に対する次ブロックラインの入力範囲算出→３チャンネル目（例えば、Ｂ）に対する次ブロックラインの入力範囲算出に対する入力範囲算出とを同時に実行する。
【００９１】
これにより、複数のチャンネルを扱う場合に、複数入力信号に対して同時に歪補正処理を行っている間に、複数入力信号に対してそれぞれ次の処理対象であるブロックラインにつき歪補正範囲算出を順次に繰り返して行うことで、１つの歪補正範囲算出部で複数チャンネル分の範囲算出を行わせることが可能である。また、歪補正実行中に、次に歪補正を行う画像入力範囲を算出するので、１つのブロックラインの歪補正が終わったときには次の歪補正処理を行う画像入力範囲が分かっており、歪補正処理を次のブロックラインに対して遅れなく順次スムーズに行なっていくことが可能である。
【００９２】
【発明の効果】
以上述べたように本発明によれば、歪補正処理を行う入力画像範囲を算出する歪補正範囲算出部を設けたので、歪補正によって得られる補正画像は出力すべき出力範囲に対して過不足なく出力することが可能となる。元データを有効に活用して歪補正処理を行え、糸巻き型歪，樽型歪，及び陣笠型歪にも対応できる歪補正処理が可能となる。また、ブロックライン毎の処理に必要な入力範囲を算出することができ、データ転送量を最小限にすることが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態の画像処理装置の全体構成を示すブロック図。
【図２】歪補正処理部の構成を示すブロック図。
【図３】歪補正処理部における座標変換の概念図。
【図４】画像データの読み出し順序を示す図。
【図５】ブロックラインと歪補正処理に必要なメモリ容量（バッファ容量）の関係を示す図。
【図６】ブロックライン幅の設定方法を示す図。
【図７】歪補正範囲算出部の構成を示すブロック図。
【図８】歪補正範囲算出部における、歪補正処理を行う際の入力画像範囲を算出する動作を説明する図。
【図９】歪補正処理の動作を説明するフローチャート。
【図１０】図９のステップＳ11における補正倍率Ｍの算出方法を説明するフローチャート。
【図１１】図７の歪補正範囲算出部の構成を示すブロック図。
【図１２】図１１のデータ出力のタイミングチャート。
【図１３】図１２の動作を改善したもので、パイプラインでのデータ出力のタイミングチャート。
【図１４】３チャンネル分の歪補正処理を行う際の入力画像範囲を算出する方法を説明する図。
【図１５】３チャンネルの場合の歪補正処理の動作を説明するフローチャートである。
【図１６】格子状の被写体、樽型歪を生じた撮影画像、糸巻き型歪を生じた撮影画像を示す図。
【図１７】一般的なデジタルカメラの画像処理手順の概念、及び従来のデジタルカメラの画像処理装置におけるブロック構成を示す図。
【図１８】樽型歪，糸巻き型歪を生じた撮影画像を、[式３]によって補正する動作を説明する図。
【図１９】陣笠型歪を示す図。
【図２０】（Ａ）第１データ順序変換部６におけるデータ順序変換処理、（Ｂ）第２データ順序変換部９におけるデータ順序変換処理を説明する図。
【符号の説明】
１…ＣＣＤ
３…バス
４…ＣＰＵ
５…フレームメモリ
６…第１データ順序変換部
７，８…イメージプロセス回路
８…歪補正処理部（歪補正手段）
９…第２データ順序変換部
１０…ＪＰＥＧ処理部
１１…メモリカード（記録媒体）
１２…歪補正範囲算出部
【図１】
0004772281.tif 000005
【図２】
0004772281.tif 000006
【図３】
0004772281.tif 000007
【図４】
0004772281.tif 000008
【図５】
0004772281.tif 000009
【図６】
0004772281.tif 000010
【図７】
0004772281.tif 000011
【図８】
0004772281.tif 000012
【図９】
0004772281.tif 000013
【図１０】
0004772281.tif 000014
【図１１】
0004772281.tif 000015
【図１２】
0004772281.tif 000016
【図１３】
0004772281.tif 000017
【図１４】
0004772281.tif 000018
【図１５】
0004772281.tif 000019
【図１６】
0004772281.tif 000020
【図１７】
0004772281.tif 000021
【図１８】
0004772281.tif 000022
【図１９】
0004772281.tif 000023
【図２０】
0004772281.tif 000024