(57)【特許請求の範囲】
【請求項１】
出力画像における所定画素に対する、入力画像上での対応位置を取得する取得手段と、
前記対応位置の位置情報を記憶する第１記憶手段と、
前記入力画像における入力画素の画素値を順次に読み出させる読出制御手段と、
前記読出制御手段によって読み出された前記入力画素の画素値を入力とし、入力された前記入力画素の中から、入力画素による格子点の組を編成する編成手段と、
前記位置情報に基づいて、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出された否かを判定することによって、前記所定画素の画素値の算出に用いる前記対応位置周辺の周辺画素の画素値が読み出されたか否かを判定する判定手段と、
前記判定手段が、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出されたと判定することによって、前記周辺画素の画素値が読み出されたと判定した場合に、当該格子点の組を構成する画素の画素値を、前記所定画素に関する周辺画素の画素値として記憶する第２記憶手段と、
前記第２記憶手段に記憶された前記周辺画素の画素値を用いた補間によって、前記所定画素の画素値を算出する算出手段と、
を備え、
前記第２記憶手段には、複数の前記所定画素に関する周辺画素の画素値が、前記出力画像におけるラスター順に記憶され、
前記算出手段は、前記第２記憶手段における記憶順序に基づいて前記所定画素ごとに入力される前記周辺画素の画素値を用いて、前記所定画素の画素値を順次に算出し、算出した前記所定画素の画素値を前記ラスター順に出力する画像処理装置。
【請求項２】
前記読出制御手段は、前記入力画素の画素値をラスター順に読み出させる請求項１に記載の画像処理装置。
【請求項３】
前記第１記憶手段と前記判定手段とは、連想メモリを用いて実現される請求項１または請求項２のいずれかに記載の画像処理装置。
【請求項４】
前記取得手段は、前記出力画像を分割して得られる所定ブロックに含まれる前記所定画素に関する前記対応位置を取得するとともに、前記所定ブロックに対する、前記入力画像上での対応ブロックを含む参照領域を設定し、
前記読出制御手段は、前記参照領域に含まれる前記入力画素の画素値を順次に読み出させる請求項１から請求項３のいずれかに記載の画像処理装置。
【請求項５】
ａ）出力画像における所定画素に対する、入力画像上での対応位置を取得する工程と、
ｂ）前記対応位置の位置情報を記憶する工程と、
ｃ）前記入力画像における入力画素の画素値を順次に読み出させる工程と、
ｄ）前記ｃ）工程において読み出された前記入力画素の中から、入力画素による格子点の組を編成する工程と、
ｅ）前記位置情報に基づいて、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出された否かを判定することによって、前記所定画素の画素値の算出に用いる前記対応位置周辺の周辺画素の画素値が読み出されたか否かを判定する工程と、
ｆ）前記ｅ）工程において、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出されたと判定されることによって、前記周辺画素の画素値が読み出されたと判定された場合に、当該格子点の組を構成する画素の画素値を、前記所定画素に関する周辺画素の画素値として記憶する工程と、
ｇ）前記ｆ）工程において記憶された前記周辺画素の画素値を用いた補間によって、前記所定画素の画素値を算出する工程と、
を備え、
前記ｆ）工程では、複数の前記所定画素に関する周辺画素の画素値が、前記出力画像におけるラスター順に記憶され、
前記ｇ）工程では、前記ｆ）工程における記憶順序に基づいて前記所定画素ごとに入力される前記周辺画素の画素値が用いられて、前記所定画素の画素値が順次に算出され、算出された前記所定画素の画素値が前記ラスター順に出力される画像処理装置の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関する。
【背景技術】
【０００２】
一般に、撮像装置等に用いられる撮像レンズは、球面収差、歪曲収差等の様々な収差を有している。このため、撮像レンズを作成する際には、これらの収差を抑えたレンズ設計が行われる。
【０００３】
しかし、レンズ設計のみでこれらの収差を取り除くことは困難であるため、被写体像を撮像素子によって画像データとして取得可能な場合は、レンズの収差に起因して生じた画像の歪みをデータ上の画像処理によって補正する技術が提案されている。
【０００４】
例えば、特許文献１には、撮像レンズを介して得られた撮像画像に歪み補正処理を施して出力画像を取得する技術が記載されている。具体的には、特許文献１の技術では、出力画像における所定画素についての撮影画像上の対応位置がルックアップテーブルを用いて取得され、撮影画像上の対応位置における画素の画素値が出力画像における所定画素の画素値として用いられている。また、ルックアップテーブルに存在しない所定画素以外の画素については、第１の補間処理によって対応位置を取得するとともに、取得された対応位置に基づいた第２の補間処理により、所定画素以外の画素に関する画素値が取得されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１０７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、出力画像における画素の画素値を算出するに際して、撮影画像を記憶した記憶部から撮影画像の画像データが、例えばバスを介して転送されることになるが、当該画像データの転送によってランダムアクセスが頻発すると、バスの利用効率が低下する。
【０００７】
このような、画像データの過剰な転送による不具合は、バスを用いた場合に限定されるものではなく、バス以外の他の転送手段を用いた場合においても発生しうる。
【０００８】
そこで、本発明は、画像データの転送によって生じる不具合を軽減させることが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、出力画像における所定画素に対する、入力画像上での対応位置を取得する取得手段と、前記対応位置の位置情報を記憶する第１記憶手段と、前記入力画像における入力画素の画素値を順次に読み出させる読出制御手段と、前記読出制御手段によって読み出された前記入力画素の画素値を入力とし、入力された前記入力画素の中から、入力画素による格子点の組を編成する編成手段と、前記位置情報に基づいて、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出された否かを判定することによって、前記所定画素の画素値の算出に用いる前記対応位置周辺の周辺画素の画素値が読み出されたか否かを判定する判定手段と、前記判定手段が、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出されたと判定することによって、前記周辺画素の画素値が読み出されたと判定した場合に、当該格子点の組を構成する画素の画素値を、前記所定画素に関する周辺画素の画素値として記憶する第２記憶手段と、前記第２記憶手段に記憶された前記周辺画素の画素値を用いた補間によって、前記所定画素の画素値を算出する算出手段とを備え、前記第２記憶手段には、複数の前記所定画素に関する周辺画素の画素値が、前記出力画像におけるラスター順に記憶され、前記算出手段は、前記第２記憶手段における記憶順序に基づいて前記所定画素ごとに入力される前記周辺画素の画素値を用いて、前記所定画素の画素値を順次に算出し、算出した前記所定画素の画素値を前記ラスター順に出力する。
【００１０】
また、本発明に係る画像処理装置の一態様では、前記読出制御手段は、前記入力画素の画素値をラスター順に読み出させる。
【００１２】
また、本発明に係る画像処理装置の一態様では、前記第１記憶手段と前記判定手段とは、連想メモリを用いて実現される。
【００１３】
また、本発明に係る画像処理装置の一態様では、前記取得手段は、前記出力画像を分割して得られる所定ブロックに含まれる前記所定画素に関する前記対応位置を取得するとともに、前記所定ブロックに対する、前記入力画像上での対応ブロックを含む参照領域を設定し、前記読出制御手段は、前記参照領域に含まれる前記入力画素の画素値を順次に読み出させる。
【００１４】
また、本発明に係る画像処理装置の動作方法は、ａ）出力画像における所定画素に対する、入力画像上での対応位置を取得する工程と、ｂ）前記対応位置の位置情報を記憶する工程と、ｃ）前記入力画像における入力画素の画素値を順次に読み出させる工程と、ｄ）前記ｃ）工程において読み出された前記入力画素の中から、入力画素による格子点の組を編成する工程と、ｅ）前記位置情報に基づいて、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出された否かを判定することによって、前記所定画素の画素値の算出に用いる前記対応位置周辺の周辺画素の画素値が読み出されたか否かを判定する工程と、ｆ）前記ｅ）工程において、前記対応位置を内包する前記格子点の組を構成する画素の画素値が読み出されたと判定されることによって、前記周辺画素の画素値が読み出されたと判定された場合に、当該格子点の組を構成する画素の画素値を、前記所定画素に関する周辺画素の画素値として記憶する工程と、ｇ）前記ｆ）工程において記憶された前記周辺画素の画素値を用いた補間によって、前記所定画素の画素値を算出する工程とを備え、前記ｆ）工程では、複数の前記所定画素に関する周辺画素の画素値が、前記出力画像におけるラスター順に記憶され、前記ｇ）工程では、前記ｆ）工程における記憶順序に基づいて前記所定画素ごとに入力される前記周辺画素の画素値が用いられて、前記所定画素の画素値が順次に算出され、算出された前記所定画素の画素値が前記ラスター順に出力される。
【発明の効果】
【００１５】
本発明によれば、画像データの転送によって生じる不具合を軽減させることが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係る画像処理装置の構成を示す概略図である。
【図２】歪み補正処理の様子を示す図である。
【図３】画像処理装置における歪み補正部の詳細構成を示す図である。
【図４】画素値記憶部の詳細構成を示す図である。
【図５】歪み補正処理の処理工程と歪み補正部の構成との対応関係を示す図である。
【図６】実行対象ブロックと、入力画像において当該実行対象ブロックに対応する対応ブロックとの関係を示す図である。
【図７】オフセット処理と参照領域設定処理とを説明するための図である。
【図８】相対座標算出処理を説明するための図である。
【図９】参照領域に含まれる各対応相対位置と連想メモリの記憶状態との関係を示す図である。
【図１０】参照領域の一部を示す図である。
【図１１】入力画像上に参照領域を重畳して表示した図である。
【図１２】参照領域に含まれる各対応相対位置と連想メモリの記憶状態との関係を示す図である。
【図１３】ローカルメモリの記憶状態を示す図である。
【図１４】ローカルメモリの記憶状態を示す図である。
【図１５】出力画素値の算出の様子を示す図である。
【図１６】変形例に係る画像処理装置の構成を示す概略図である。
【図１７】変形例に係る画像処理装置の構成を示す図である。
【図１８】変形例に係る画像処理装置の構成を示す図である。
【図１９】画像データの出力順序を示す図である。
【図２０】実行対象ブロックと、入力画像において実行対象ブロックに対応する対応ブロックとの関係を示す図である。
【図２１】実行対象ブロックと、入力画像において実行対象ブロックに対応する対応ブロックとの関係を示す図である。
【図２２】出力画像におけるブロックと、入力画像における対応ブロックとの関係を示す図である。
【図２３】変形例に係る撮像装置を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について図面を参照して説明する。
【００１８】
＜１．実施形態＞
［１−１．構成概要］
図１は、本発明の実施形態に係る画像処理装置１Ａの構成を示す概略図である。当該画像処理装置１Ａは、例えば、パーソナルコンピュータ（ＰＣ）、携帯情報端末機等において実現される。
【００１９】
図１に示されるように、画像処理装置１Ａは、いずれも基板上に集積回路として構成された、第１処理回路２および第２処理回路３を備えている。
【００２０】
第１処理回路２は、レンズデータ記憶部２１と画像データ記憶部２２とを有している。画像データ記憶部２２は、複数の画像データを記憶可能な容量を有する画像メモリ（例えば、ＤＲＡＭ）であり、画像処理装置１Ａに入力された入力画像の画像データＧＤを記憶する。レンズデータ記憶部２１には、入力された画像データＧＤを撮像した撮像装置のレンズに関するレンズデータが記憶されている。レンズデータとしては、例えば、レンズの収差に起因した画像の歪みに関する情報（「歪み情報」とも称する）が記憶されている。歪み情報についての詳細は、後述する。
【００２１】
第２処理回路３は、画像処理回路として構成され、画像データ記憶部２２に保存された画像データＧＤに対して、各種の画像処理を施す。特に、本実施形態の第２処理回路３は、入力された画像データＧＤに対して、画像の歪みを補正する処理（「歪み補正処理」とも称する）を施す歪み補正部３０を有している。
【００２２】
ここで、歪み補正処理の概略について説明する。図２は、歪み補正処理の様子を示す図であり、図２には、樽型の歪曲収差を有する入力画像ＩＧと、歪み補正処理後の出力画像ＵＧとが示されている。なお、入力画像ＩＧには、歪曲収差による被写体の歪みが破線によって示されている。
【００２３】
図２に示されるように、画像処理装置１Ａで実行される歪み補正処理は、出力画像ＵＧを複数の領域に分割して得られるブロック（「画素ブロック」とも称する）ＢＫごとに行われる。例えば、ブロックＢＫ１が歪み補正処理の実行対象のブロック（「実行対象ブロック」とも称する）ＢＲ（図２中のハッチング領域）であるときは、入力画像ＩＧにおいて当該ブロックＢＫ１に対応する対応ブロックＴＢ１付近の画素の画素値（「画素データ」とも称する）を用いて、ブロックＢＫ１の各画素の画素値が算出される。歪み補正処理では、このようなブロックＢＫ単位の歪み補正が、出力画像ＵＧを構成する各ブロックＢＫについて順次実行され、最終的に被写体の歪みが補正された出力画像ＵＧが取得される。
【００２４】
なお、ブロックＢＫの大きさは、画像処理装置１Ａによって自動で設定される態様としてもよく、ユーザによって指定可能な態様としてもよい。以下では、縦８画素、横８画素で規定されるブロック、すなわち８×８の画素を有するブロックＢＫごとに歪み補正処理を実行する場合について例示する。
【００２５】
図１の説明に戻って、第２処理回路３は、メモリ間のデータ転送を制御するＤＭＡＣ（ダイレクトメモリアクセスコントローラ）３５をさらに有している。ＤＭＡＣ３５を有する画像処理装置１Ａでは、第１処理回路２と第２処理回路３との間のバスを介したデータ転送は、ＣＰＵの代わりに当該ＤＭＡＣ３５からの制御信号に応じて行われる。
【００２６】
［１−２．歪み補正処理］
ここで、画像処理装置１Ａで実行される、画像の歪み補正処理について説明する。図３は、画像処理装置１Ａにおける歪み補正部３０の詳細構成を示す図である。図４は、画素値記憶部３０５の詳細構成を示す図である。図５は、歪み補正処理の処理工程と歪み補正部３０の構成との対応関係を示す図である。図６は、実行対象ブロックＢＲと、入力画像ＩＧにおいて当該実行対象ブロックＢＲに対応する対応ブロックＴＢ１との関係を示す図である。図７は、オフセット処理と参照領域設定処理とを説明するための図である。図８は、相対座標算出処理を説明するための図である。図９は、参照領域ＦＲに含まれる各対応相対位置と連想メモリ３０２の記憶状態との関係を示す図である。
【００２７】
図３に示されるように、歪み補正部３０は、相対座標取得部３０１と、連想メモリ３０２（ＣＡＭ：Content Addressable Memory）と、読出制御部３０３と、読出位置カウンター３０４と、画素値記憶部３０５と、画素値算出部３０６とを有している。
【００２８】
相対座標取得部３０１は、出力画像ＵＧの一部である実行対象ブロックＢＲに含まれる各画素の入力画像ＩＧ上での対応位置を取得する機能を有している。
【００２９】
連想メモリ３０２は、情報を記憶する記憶機能（第１記憶手段）と、記憶した全情報の中から、指定された情報と一致する情報を検索し、指定された情報と一致する情報を発見した場合は、当該一致する情報を記憶する番地（アドレス）を出力する検索機能とを有している。
【００３０】
読出制御部３０３は、ＤＭＡＣ３５を介して、レンズデータ記憶部２１または画像データ記憶部２２に記憶された情報の読出を制御する。
【００３１】
読出位置カウンター３０４は、画像データ記憶部２２から読み出された画素の読出位置を読出制御部３０３からの情報に基づいてカウントする機能を有している。
【００３２】
画素値記憶部３０５は、図４に示されるように、所定画素分の画素値を記憶可能なラインメモリ３５１と、画素値を一時的に記憶可能なレジスタＲＧ１，ＲＧ２と、第１メモリＬＭ１、第２メモリＬＭ２、第３メモリＬＭ３および第４メモリＬＭ４で構成されるローカルメモリＬＭとを有している。このような構成を有する画素値記憶部３０５は、画像データ記憶部２２から読み出された画素の画素値の中から、歪み補正に用いる画素の画素値を記憶する機能を有している。
【００３３】
図５に示されるように、歪み補正処理は、歪み補正部３０における上記各構成要素３０１〜３０６の協働により、ブロックＢＫごとに、相対座標取得段階ＳＴ１、画素値読込段階ＳＴ２、および出力画素値算出段階ＳＴ３の３つの処理段階を経て実行される。なお、以下では、図２のように、ブロックＢＫ１が歪み補正処理の実行対象ブロックＢＲである場合を例にして説明する。
【００３４】
最初の処理段階である相対座標取得段階ＳＴ１では、対応位置特定処理と、オフセット処理と、参照領域設定処理と、相対座標算出処理と、相対座標記憶処理とがこの順序で実行される。図５に示されるように、対応位置特定処理、オフセット処理、参照領域設定処理、および相対座標算出処理は、相対座標取得部３０１によって行われ、相対座標記憶処理は、連想メモリ３０２によって行われる。
【００３５】
具体的には、対応位置特定処理では、実行対象ブロックＢＲの頂点に位置する画素（頂点画素）のうちの１の頂点画素、および他の頂点画素に隣接する画素（頂点隣接画素）の入力画像ＩＧ上での対応位置がそれぞれ特定される。
【００３６】
より詳細には、本実施形態では、実行対象ブロックＢＲにおける左上の頂点画素が１の頂点画素として設定される。例えば、図６に示されるように、ブロックＢＫ１が実行対象ブロックＢＲである場合は、実行対象ブロックＢＲの左上の頂点画素ＶＡが１の頂点画素となる。そして、当該頂点画素ＶＡ、および他の頂点画素ＶＢ，ＶＣ，ＶＤに隣接する頂点隣接画素ＮＢ，ＮＣ，ＮＤの入力画像ＩＧ上での対応位置ＰＡ，ＰＢ，ＰＣ，ＰＤがそれぞれ特定される。
【００３７】
１の頂点画素および頂点隣接画素の入力画像ＩＧ上での対応位置を特定する際には、レンズデータ記憶部２１に記憶された歪み情報が用いられる。
【００３８】
具体的には、歪み情報は、出力画像ＵＧにおいて実行対象ブロックの頂点画素となり得る複数の主要画素の入力画像ＩＧ上での対応位置に関する情報であり、レンズデータ記憶部２１に予め記憶されている。歪み情報として記憶された入力画像ＩＧ上での対応位置は、入力画像ＩＧの左上の画素を原点ＧＰとしたときの座標として与えられている。対応位置特定処理では、レンズデータ記憶部２１に記憶された歪み情報が取得され、当該歪み情報に基づいて１の頂点画素および頂点隣接画素の入力画像ＩＧ上での対応位置がそれぞれ特定される。
【００３９】
特定された対応位置は、入力画像ＩＧの左上の画素を原点ＧＰとしたときの座標（「対応座標」とも称する）として与えられる。例えば、図６に示されるように、対応位置ＰＡ，ＰＢ，ＰＣ，ＰＤの座標は、それぞれ（４，３＋１２８／２５６）、（１１＋８０／２５６，２＋９６／２５６）、（２＋８０／２５６，１０＋２０８／２５６）、（１０＋４８／２５６，９＋１７６／２５６）と与えられる。
【００４０】
なお、図６に示されるように、頂点隣接画素ＮＢ，ＮＣ，ＮＤは、いずれも他のブロックＢＫの左上の画素であることから、各ブロックＢＫの１の頂点画素の入力画像ＩＧ上での対応位置に関する情報が、歪み情報として記録されていればよい。
【００４１】
次のオフセット処理では、４つの対応位置の座標が、基準点からの相対座標に変換される。
【００４２】
具体的には、４つの対応位置の座標の中から、最小のｘ座標と、最小のｙ座標とが抽出され、最小のｘ座標以下の最大の整数（第１整数）と、最小のｙ座標以下の最大の整数（第２整数）とが特定される。そして、４つの対応座標それぞれのｘ座標から第１整数を差し引くとともに、４つの対応座標それぞれのｙ座標から第２整数を差し引くことによって、各対応位置の座標を変更する。このように変更された各対応位置の座標は、第１整数をｘ座標とし第２整数をｙ座標とする基準点ＫＰを原点としたときの相対座標となる。
【００４３】
例えば、図７では、４つの対応座標における最小のｘ座標は「２＋８０／２５６」であり、最小のｙ座標は「２＋９６／２５６」であることから、第１整数および第２整数は、いずれも「２」となる。そして、対応位置ＰＡのｘ座標から第１整数「２」を差し引くとともに、対応位置ＰＡのｙ座標から第２整数「２」を差し引くことによって、相対位置（「対応相対位置」とも称する）ＲＡ（２，１＋１２８／２５６）が算出される。また、対応位置ＰＢ，ＰＣ，ＰＤについても第１整数および第２整数を用いた同様の演算が行われて、相対位置ＲＢ，ＲＣ，ＲＤがそれぞれ取得される。なお、基準点ＫＰ（２，２）は、相対位置を規定する座標の原点となることから仮想原点ＶＰとも称される。
【００４４】
参照領域設定処理では、４つの対応相対位置を含む最小の矩形領域が参照領域ＦＲとして設定される（図７参照）。
【００４５】
参照領域ＦＲの設定は、４つの対応相対位置の相対座標を用いて行われる。具体的には、４つの相対座標の中から、最大のｘ座標と、最大のｙ座標とが抽出され、最大のｘ座標以上の最小の整数（第３整数）と、最大のｙ座標以上の最小の整数（第４整数）とが特定される。そして、第３整数をｘ座標とし第４整数をｙ座標とする点、第３整数をｘ座標とし「０」をｙ座標とする点、「０」をｘ座標とし第４整数をｙ座標とする点、および仮想原点ＶＰ（０，０）それぞれを頂点とする矩形領域が参照領域ＦＲとして設定される。
【００４６】
例えば、図７では、４つの相対座標における最大のｘ座標は「９＋８０／２５６」であり、最大のｙ座標は「８＋２０８／２５６」であることから、第３整数および第４整数は、それぞれ「１０」、「９」となる。すなわち、図７では、点ＶＰ（０，０）、点ＮＰ１（１０，０）、点ＮＰ２（０，９）、点ＮＰ３（１０，９）を頂点とする矩形領域が参照領域ＦＲとして設定されることになる。
【００４７】
相対座標算出処理では、図８に示されるように、実行対象ブロックＢＲを構成する各画素（出力画素）の入力画像ＩＧ上での対応相対位置ＰＵの相対座標がそれぞれ算出される。各出力画素の対応相対位置ＰＵは、１の頂点画素および頂点隣接画素の入力画像ＩＧ上での対応相対位置の相対座標を用いて、補間によって算出される。補間により算出される対応相対位置ＰＵの数は、実行対象ブロックＢＲの大きさ、すなわち実行対象ブロックＢＲに含まれる画素数に応じて異なり、本実施形態では、８×８画素の対応相対位置が算出されることになる。各対応相対位置ＰＵの算出は、１の頂点画素および頂点隣接画素の入力画像ＩＧ上での各対応相対位置間の距離を「８」で除算することにより、算出される。このような相対座標算出処理によって、１の頂点画素以外の出力画素の対応相対位置ＰＵが算出されると、既得の１の頂点画素の対応相対位置を含めると実行対象ブロックＢＲを構成する全ての出力画素の入力画像ＩＧ上での対応相対位置が算出されたことになる。
【００４８】
なお、１の頂点画素以外の出力画素の対応相対位置ＰＵを、２の累乗である「８」の除算により算出することによれば、ビットシフトによって対応相対位置の算出を実現できるので、演算を高速化することが可能になる。すなわち、本実施形態では、ブロックＢＫに含まれる画素の数を２の累乗となるように設定することが好ましい。
【００４９】
相対座標記憶処理では、実行対象ブロックＢＲを構成する全出力画素の入力画像ＩＧ上での対応相対位置の位置情報が、連想メモリ３０２に書き込まれる。連想メモリ３０２への書き込みは、対応相対位置ごとに保存先の番地（アドレス）を指定して行われ、１の番地に１の出力画素についての相対座標の整数部分が、対応相対位置の位置情報として記憶される。
【００５０】
例えば、図９に示される参照領域ＦＲでは、参照領域ＦＲに含まれる各対応相対位置のうち、左上の対応相対位置ＲＡの相対座標の整数部分（２，１）が連想メモリ３０２の０番地に書き込まれる。次に、同一行において隣接する対応相対位置ＰＵ１の相対座標の整数部分（３，１）が、連想メモリ３０２の１番地に書き込まれる。以後、同一行における各対応相対位置の相対座標の整数部分が、連想メモリ３０２の所定番地（「２」〜「７」）に順次に書き込まれる。そして、同一行の対応相対位置の書き込みが終了すると、次の行に移行して対応相対位置の書き込みが行われる。すなわち、対応相対位置ＰＵ８の相対座標の整数部分（１，２）が、連想メモリ３０２の８番地に書き込まれ、以後、対応相対位置ＰＵ８から始まる同一行における各対応相対位置の相対座標の整数部分が、連想メモリ３０２に書き込まれる。このような対応相対位置の位置情報の連想メモリ３０２への書き込みは、行単位で進み、参照領域ＦＲに含まれる最後の対応相対位置の位置情報が、連想メモリ３０２の６３番地に書き込まれた時点で終了する。
【００５１】
このように、参照領域に含まれる対応相対位置の位置情報の記憶処理は、参照領域の左上の対応相対位置を始点として一定の行方向に沿って順次に行われる。
【００５２】
なお、各対応相対位置の指定された保存先の番地は、参照領域内の各対応相対位置に関する通し番号であるともみることができる。また、本実施形態では、画像（または所定領域）上の始点画素から一定の行方向に沿って順次に画素（または位置）を読み出す際の画素等の順序づけをラスター順とも称する。
【００５３】
図５に示されるように、相対座標取得段階ＳＴ１が終了すると、歪み補正処理は、画素値読込段階ＳＴ２へと移行する。画素値読込段階ＳＴ２では、画素値読出処理と、座標検索処理と、特定画素値記憶処理とが実行される。図１０は、参照領域ＦＲの一部を示す図である。
【００５４】
具体的には、画素値読出処理では、読出制御部３０３の制御によって、入力画像ＩＧを構成する画素のうち、参照領域に含まれる入力画素の画素値が、画像データ記憶部２２からラスター順で読み出され、画素値記憶部３０５に順次に入力される。
【００５５】
図４に示されるように、画素値記憶部３０５では、画像データ記憶部２２から入力された画素の画素値が、ラインメモリ３５１に入力される。
【００５６】
ラインメモリ３５１は、参照領域における１行分（１ライン分）の画素の画素値を記憶可能な容量を有するとともに、いわゆるＦＩＦＯ方式でデータを処理する機能を有している。すなわち、ラインメモリ３５１は、参照領域における１ライン分の画素値が記憶された状態で、新たな画素の画素値が入力されると、最初に記憶されていた画素値を出力する。
【００５７】
当該ラインメモリ３５１から出力された１画素分の画素値は、ローカルメモリＬＭ中の第１メモリＬＭ１に直接入力されるとともに、１画素分の画素値を保持可能なレジスタＲＧ１を一旦介してローカルメモリＬＭ中の第２メモリＬＭ２に入力される。
【００５８】
このような構成を有する画素値記憶部３０５では、第２メモリＬＭ２には、第１メモリＬＭ１に入力される画素の画素値よりも、１画素前に出力された画素の画素値が入力されることになる。詳細には、ラインメモリ３５１から出力された第１所定画素の画素値が第１メモリＬＭ１に入力される場合は、第２メモリＬＭ２には、上記第１所定画素よりも１つ前に出力された画素の画素値（１画素分前の画素の画素値）が入力されることになる。
【００５９】
また、画素値記憶部３０５では、画像データ記憶部２２から入力された画素の画素値は、ラインメモリ３５１の他に、ローカルメモリＬＭ中の第３メモリＬＭ３に直接入力されるとともに、１画素分の画素値を保持可能なレジスタＲＧ２を介してローカルメモリＬＭ中の第４メモリＬＭ４にも入力される。
【００６０】
これにより、第４メモリＬＭ４には、第３メモリＬＭ３に入力される画素の画素値よりも、１画素前に画素値記憶部３０５に入力された画素の画素値が入力されることになる。詳細には、画素値記憶部３０５に入力された第２所定画素の画素値が第３メモリＬＭ３に記憶される場合は、第４メモリＬＭ４には、上記第２所定画素よりも１つ前に入力された画素の画素値（１画素分前の画素の画素値）が入力されることになる。
【００６１】
ここで、画素値記憶部３０５における画素の記憶状態について詳述する。
【００６２】
例えば、図１０に示される参照領域ＦＲでは、画素値読出処理によって、参照領域ＦＲに含まれる入力画素が、仮想原点ＶＰに位置する画素ＰＥ０からラスター順で画素値記憶部３０５に入力される。すなわち、画素値読出処理では、参照領域ＦＲにおける第１行目ＬＮ１の画素ＰＥ０から画素値の読み出しが開始され、第１行目ＬＮ１の画素ＰＥ１０まで画素値の読み出しが終了すると、画素ＰＥ１１から第２行目ＬＮ２の画素値の読み出しが開始される。以後、参照領域ＦＲに含まれる全ての入力画素の画素値が読み出されるまで、画素値の読み出しが順次に行われる。
【００６３】
このような画素値読出処理によって、ラインメモリ３５１には、参照領域における１ライン分の画素の画素値が記憶されることになる。例えば、画像データ記憶部２２から第２行目ＬＮ２の画素ＰＥ１８の画素値が読み出され、画素値記憶部３０５に入力される場合を想定する。
【００６４】
このとき、ラインメモリ３５１には、画素ＰＥ１８直前の１ライン分の画素、すなわち第１行目ＬＮ１の画素ＰＥ７から第２行目ＬＮ２の画素ＰＥ１７までの１１個の画素ＰＥ７〜ＰＥ１８に関する各画素値が記憶されていることになる。またこのとき、レジスタＲＧ１には、ラインメモリ３５１から前回出力された第１行目ＬＮ１の画素ＰＥ６の画素値が保持され、レジスタＲＧ２には、画素値記憶部３０５に前回入力された第２行目ＬＮ２の画素ＰＥ１７の画素値が保持されていることになる。
【００６５】
このような状態において、上記想定どおり画素値記憶部３０５に画素ＰＥ１８の画素値が入力されると、第１メモリＬＭ１には、ラインメモリ３５１から出力された画素ＰＥ７の画素値が記憶されることになる。第２メモリＬＭ２には、レジスタＲＧ１に保持されていた画素ＰＥ６の画素値が記憶されることになる。第３メモリＬＭ３には、入力された当該画素ＰＥ１８の画素値がそのまま記憶されることになる。第４メモリＬＭ４には、レジスタＲＧ２に保持されていた画素ＰＥ１７の画素値が記憶されることになる。
【００６６】
ここで、ローカルメモリＬＭに記憶されている各画素値の位置をみると、ローカルメモリＬＭには、参照領域ＦＲに設定された整数の相対座標によって規定される格子（空間格子）の各格子点に位置する画素（「格子画素」とも称する）の画素値が記憶されていることが分かる。例えば、第２行目ＬＮ２の画素ＰＥ１８の画素値が画素値記憶部３０５に入力される上記想定では、格子ＫＣ１（図１０の斜線ハッチング領域を参照）の格子点に位置する画素ＰＥ６，ＰＥ７，ＰＥ１７，ＰＥ１８の各画素値がローカルメモリＬＭに記憶されている。
【００６７】
そして、ローカルメモリＬＭに記憶される画素値は、画像データ記憶部２２から新たな画素の画素値が入力される度に、記憶対象とする格子の位置を変更しつつ、更新されることになる。例えば、上記想定からさらに進展して、次の画素ＰＥ１９（すなわち、画素ＰＥ１８に隣接する画素ＰＥ１９）の画素値が画素値記憶部３０５に入力されると、ローカルメモリＬＭには、格子ＫＣ２の格子点に位置する画素ＰＥ７，ＰＥ８，ＰＥ１８，ＰＥ１９の各画素値がローカルメモリＬＭに記憶されることになる。
【００６８】
このように画素値記憶部３０５は、入力された画素の中から、画素を組み替えて所定の格子を構成する格子点の組を編成する編成機能（編成手段）を有し、当該編成機能によって編成された格子画素の画素値を、ローカルメモリＬＭに入力させる。
【００６９】
なお、画像データ記憶部２２からの入力画素の読み出しにおいては、入力画像ＩＧ上の基準点からの画素値を読み出すことにより、参照領域分だけの読み込みを実現している。図１１は、入力画像ＩＧ上に参照領域ＦＲを重畳して表示した図である。例えば、図１１に示される参照領域ＦＲでは、基準点ＫＰ（２，２）に位置する画素から画素値の読み出しが開始され、終点ＥＰ（１２，１１）に位置する画素まで画素値の読み出しが行われることになる。このように、本実施形態では、参照領域を設定して、参照領域内に存在する画素の画素データが読み出されるので、入力画像ＩＧにおける全画素の画素データを読み出す場合に比べて、読み出しに要する時間を短縮することができる。また、読み出された画素データを記憶するためのメモリの容量を小さく設定することができ、回路規模の縮小化を図ることが可能になる。
【００７０】
図５に戻って、画素値読込段階ＳＴ２における座標検索処理では、連想メモリ３０２と読出位置カウンター３０４との協働により、連想メモリ３０２に記憶された対応相対位置の位置情報の中から、画像データ記憶部２２から画素値記憶部３０５に入力された画素の読み出し位置に関連した位置情報を検索する処理が行われる。図１２は、参照領域ＦＲに含まれる各対応相対位置と連想メモリ３０２の記憶状態との関係を示す図である。
【００７１】
具体的には、画像データ記憶部２２から参照領域に含まれる入力画素の読み出しが開始されると、読出制御部３０３の制御に応じて、読出位置カウンター３０４では、読み出された画素の読出位置がカウントされる。読出位置のカウントは、入力画素の読み出しに応じて、参照領域における読出位置を示す座標を更新することによって行われる。そして、読出位置が更新されると、更新された読出位置は、連想メモリ３０２に出力される。
【００７２】
連想メモリ３０２では、連想メモリ３０２に記憶された対応相対位置の位置情報の中に、入力された読出位置の座標よりもｘ座標およびｙ座標の値がいずれも「１」ずつ小さい座標の位置情報が検索される。当該検索によって、連想メモリ３０２に記憶された対応相対位置の位置情報の中から、入力された読出位置の座標よりも（１，１）分小さい位置情報が発見された場合は、連想メモリ３０２は、当該対応相対位置の位置情報を記憶する番地、換言すれば当該対応相対位置の通し番号を含む信号を画素値記憶部３０５に対して出力する。
【００７３】
例えば、図１２に示されるように、画像データ記憶部２２から画素ＰＥ１８の画素値が読み出された場合は、参照領域ＦＲにおける画素ＰＥ１８の座標（７，１）が、読出位置カウンター３０４から連想メモリ３０２に入力される。連想メモリ３０２では、連想メモリ３０２に記憶された対応相対位置の位置情報の中から、入力された読出位置の座標（７，１）よりも（１，１）分小さい座標（６，０）を有する位置情報の検索が行われる。図１２に示されるように、連想メモリ３０２には、「５」番地に座標（６，０）の対応相対位置の位置情報が記憶されていることから、連想メモリ３０２は、通し番号「５」を画素値記憶部３０５に出力することになる。
【００７４】
このような座標検索処理は、上記画素値読出処理と並行して行われ、次の特定画素値記憶処理（図５参照）では、座標検索処理の処理結果と画素値読出処理の処理結果とを反映した処理が行われる。図１３は、ローカルメモリＬＭの記憶状態を示す図である。図１４は、参照領域ＦＲの一部を示す図である。
【００７５】
具体的には、特定画素値記憶処理では、連想メモリ３０２からの信号入力に応じて、ローカルメモリＬＭに記憶されている各画素値の記憶処理が行われる。より詳細には、特定画素値記憶処理では、連想メモリ３０２から信号入力があると、当該信号の入力時点においてローカルメモリＬＭに一時的に記憶されている各画素値が、当該信号に含まれる通し番号によって指定される番地に特定画素値として記憶される。
【００７６】
例えば、画像データ記憶部２２から画素ＰＥ１８の画素値が読み出される上記想定では、画素値読出処理によって、画素ＰＥ６，ＰＥ７，ＰＥ１７，ＰＥ１８の各画素値がローカルメモリＬＭに一時的に記憶された状態になるとともに、座標検索処理によって、通し番号「５」を含む信号が画素値記憶部３０５に出力されることになる。このような状態で特定画素値記憶処理が実行されると、図１３に示されるように、ローカルメモリＬＭに一時的に記憶されている画素ＰＥ６の画素値ＰＶ（６，０）、画素ＰＥ７の画素値ＰＶ（７，０）、画素ＰＥ１７の画素値ＰＶ（６，１）、および画素ＰＥ１８の画素値ＰＶ（７，１）が、ローカルメモリＬＭ内の通し番号「５」によって指定される番地「５」に記憶されることになる。より詳細には、ローカルメモリＬＭ内の第１メモリＬＭ１、第２メモリＬＭ２、第３メモリＬＭ３および第４メモリＬＭ４それぞれにおいて一時的に記憶されていた各画素値が、第１メモリＬＭ１、第２メモリＬＭ２、第３メモリＬＭ３および第４メモリＬＭ４それぞれの「５」番地に記憶される。
【００７７】
ここで、上述のように、ローカルメモリＬＭの「５」番地に記憶された各画素値は、通し番号「５」番の対応相対位置ＰＵ５を内包する格子ＫＣ１の各格子点に位置する画素ＰＥ６，ＰＥ７，ＰＥ１７，ＰＥ１８の画素値となる（図１４参照）。すなわち、画像データ記憶部２２から画素ＰＥ１８の画素値が読み出された場合は、対応相対位置ＰＵ５を内包する格子画素ＰＥ６，ＰＥ７，ＰＥ１７，ＰＥ１８の画素値がローカルメモリＬＭに記憶される。
【００７８】
このような対応相対位置を内包する格子画素（「内包格子画素」とも称する）の画素値を記憶する処理は、参照領域における全ての対応相対位置について行われる。すなわち、特定画素値記憶処理では、参照領域に含まれる対応相対位置それぞれに関する、４つの内包格子画素の画素値が特定画素値としてローカルメモリＬＭの所定番地に記憶されることになる。
【００７９】
このように、画素値読込段階ＳＴ２では、画像データ記憶部２２から参照領域に含まれる入力画素が読み出される度に、対応相対位置を内包する内包格子画素が読み出されたか否かが判定される。そして、或る対応相対位置を内包する内包格子画素が読み出されたと判定された場合は、当該内包格子画素の画素値が、当該或る対応相対位置の識別番号（ここでは、通し番号）と関連付けて記憶される。
【００８０】
なお、内包格子画素が読み出されたか否かの判定は、連想メモリ３０２の検索機能によって実現されるため、連想メモリ３０２は、内包格子画素が読み出されたか否かの判定手段として機能するとも表現される。また、内包格子画素は、後述の画素値算出処理による対応相対位置に対応した出力画素の画素値の算出のために用いられる対応相対位置周辺の画素（「周辺画素」とも称する）となる。
【００８１】
図５に示されるように、画素値読込段階ＳＴ２が終了すると、歪み補正処理は、出力画素値算出段階ＳＴ３へと移行する。出力画素値算出段階ＳＴ３では、相対座標取得処理と、画素値算出処理とが実行される。図１５は、出力画素値の算出の様子を示す図である。
【００８２】
相対座標取得処理は、相対座標取得部３０１によって実行され、実行対象ブロックＢＲを構成する全ての出力画素の入力画像ＩＧ上での対応相対位置の相対座標が取得される。対応相対位置の相対座標は、上述の対応位置特定処理とオフセット処理と参照領域設定処理と相対座標算出処理とを再度実行することによって取得できる。或いは、相対座標取得段階ＳＴ１において、算出された対応相対位置の相対座標を一旦記憶し、記憶しておいた対応相対位置の相対座標を用いる態様としてもよい。
【００８３】
画素値算出処理は、画素値算出部３０６によって実行され、対応相対位置の相対座標と当該対応相対位置についての内包格子画素の画素値とを用いたバイリニア補間によって、当該対応相対位置における画素値が算出される。
【００８４】
例えば、図１５に示されるように、通し番号「２」番の対応相対位置ＰＵ２における画素値を算出する場合は、ローカルメモリＬＭの「２」番地に格納された内包格子画素の画素値が読み出され、対応相対位置ＰＵ２の相対座標と４つの内包格子画素ＰＥ１４，ＰＥ１５，ＰＥ２５，ＰＥ２６の画素値ＰＶ（３，１），ＰＶ（４，１）ＰＶ（３，２），ＰＶ（４，２）とを用いたバイリニア補間によって、対応相対位置ＰＵ２の画素値が算出される。そして、当該画素値算出処理によって算出された対応相対位置ＰＵ２の画素値は、出力画像ＵＧの実行対象ブロックＢＲにおいて対応する出力画素ＰＴ２の画素値として出力されることになる。
【００８５】
このような対応相対位置における画素値の算出処理は、ローカルメモリＬＭに記憶された４つの内包格子画素の画素値を番地ごとに順次に読み出して行われるため、画素値算出部３０６からは、出力画素の画素値が、出力画像ＵＧの実行対象ブロックＢＲにおけるラスター順に出力されることになる。
【００８６】
具体的には、ローカルメモリＬＭには、各出力画素の画素値の算出に用いる４つの内包格子画素の画素値が、出力画像ＵＧにおけるラスター順で記憶されている。
【００８７】
このため、画素値算出部３０６が、ローカルメモリＬＭの記憶番地によって示される記憶順序に基づいて入力される内包格子画素の画素値を用いて対応相対位置の画素値を算出し、算出した画素値を出力画素の画素値として順次に出力すると、画素値算出部３０６からは、出力画素の画素値が、出力画像ＵＧの実行対象ブロックＢＲにおけるラスター順に出力されることになる。なお、画素値算出部３０６から出力された出力画素の画素値は、画像データ記憶部２２に転送され、画像データ記憶部２２の出力画像記憶領域に順次に記憶される。
【００８８】
以上のように、画像処理装置１Ａは、出力画像ＵＧにおける出力画素に対する、入力画像上での対応位置を取得する相対座標取得部３０１と、対応位置の位置情報を記憶する第１記憶手段と、入力画像ＩＧにおける入力画素の画素値を順次に読み出させる読出制御部３０３と、読出制御部３０３によって読み出された入力画素の画素値を入力とし、入力された入力画素の中から、入力画素による格子点の組を編成する編成手段と、第１記憶手段に記憶された位置情報に基づいて、出力画素の画素値の算出に用いる対応位置周辺の周辺画素の画素値が読み出されたか否かを判定する判定手段と、判定手段によって周辺画素が読み出されたと判定された場合に、格子点の組を構成する画素の画素値を、所定画素に関する周辺画素の画素値として記憶するローカルメモリＬＭと、ローカルメモリＬＭに記憶された周辺画素の画素値を用いた補間によって、所定画素の画素値を算出する画素値算出部３０６と備える。
【００８９】
このような画像処理装置１Ａによれば、入力画素の画素値を順次に読み出しつつ、入力画素の画素値に基づいた出力画素の画素値の算出を実現することができるので、入力画像の画像データの転送によって生じるバスの利用効率の低下を抑制すること、すなわち画像データの転送によって生じる不具合を軽減させることが可能になる。
【００９０】
＜２．変形例＞
以上、この発明の実施の形態について説明したが、この発明は、上記に説明した内容に限定されるものではない。
【００９１】
例えば、上記実施形態では、歪み補正部３０を一つ有する構成としていたが、これに限定されず、歪み補正部を複数個有する構成としてもよい。図１６は、変形例に係る画像処理装置１Ｂの構成を示す概略図である。
【００９２】
具体的には、図１６に示される画像処理装置１Ｂでは、第２処理回路３において、複数の歪み補正部３０Ａ〜３０Ｃが設けられている。当該画像処理装置１Ｂでは、各歪み補正部３０Ａ〜３０Ｃにおいて、同一の出力画像ＵＧにおける異なるブロックＢＫについての歪み補正処理が並行して行われる。このように、複数の歪み補正部３０Ａ〜３０Ｃを設けて、歪み補正処理を並行して行うことによれば、スループットの向上および歪み補正処理の高速化を実現することができる。
【００９３】
なお、歪み補正処理を並行して実行する場合、各歪み補正部３０Ａ〜３０Ｃにおける歪み補正処理は、歪み補正処理の処理段階ＳＴ１〜ＳＴ３をずらして実行してもよい。例えば、歪み補正部３０Ａにおいて実行される歪み補正処理の処理段階が、相対座標取得段階ＳＴ１であった場合は、歪み補正部３０Ｂでは画素値読込段階ＳＴ２、歪み補正部３０Ｃでは出力画素値算出段階ＳＴ３となるように歪み補正処理の実行タイミングがずらされる。このように各歪み補正部３０Ａ〜３０Ｃにおいて、歪み補正処理の実行タイミングをずらすことによれば、歪み補正処理によるバスの利用を分散することができるので、バスの利用効率を高めることができる。
【００９４】
また、上記実施形態の画像処理装置１Ａにおいて、歪み補正部３０の後段に圧縮処理部３６をさらに設けてもよい。図１７は、変形例に係る画像処理装置１Ｃの構成を示す図である。図１８は、変形例に係る画像処理装置１Ｄの構成を示す図である。図１９は、画像データの出力順序を示す図である。
【００９５】
具体的には、図１７の画像処理装置１Ｃは、第２処理回路３において圧縮処理部３６を有し、圧縮処理部３６は、画素値算出部３０６から入力された画像データに対して、例えばＪＰＥＧ方式で圧縮処理を施す。ここで、画像の圧縮処理は、画像を所定サイズ（例えば８×８画素）のブロックに分割して、ブロック単位で行われるため、歪み補正部３０の後段に圧縮処理部３６を設けることが、回路上、好適な配置となる。
【００９６】
具体的には、歪み補正部３０による歪み補正処理は、ブロックごとに行われ、歪み補正部３０からは、歪み補正処理の施された画像データがブロック単位で出力される。このため、歪み補正部３０の後段に圧縮処理部３６を設けると、圧縮処理部３６には、ブロック単位の画像データが入力されることになり、圧縮処理部３６では、入力されたブロック単位の画像データに対してそのまま圧縮処理を施すことが可能になる。このように、歪み補正部３０の後段に圧縮処理部３６を設けることによれば、画像データを一時記憶するための記憶部（例えばレジスタ）を設けることなく、歪み補正処理と圧縮処理とを連続して行うことができ、回路構成の単純化を図ることが可能になる。
【００９７】
また、図１８に示されるように、歪み補正部３０において画素値算出部３０６の後段にレジスタ３０７を設けることによって、歪み補正部３０からの画像データの出力形式を変更することもできる。具体的には、１６×１６画素のブロック単位で画像データを出力する場合は、図１９に示されるように、画素値算出部３０６から出力された、８×８画素のブロックＢＫごとの画像データがレジスタ３０７に一旦記憶される。そして、１６×１６画素のブロック単位の出力が可能となり次第、矢印で示される順序で画像データの出力が行われる。例えば、ブロックＢＫ１およびブロックＢＫ２の画像データがレジスタ３０７に記憶されると、矢印ＹＪ１で示される画像データの出力が行われ、ブロックＢＫ１１およびブロックＢＫ１２の画像データがレジスタ３０７に記憶されると、矢印ＹＪ２で示される画像データの出力が行われる。
【００９８】
また、上記実施形態では、実行対象ブロックＢＲの大きさが８×８画素である場合を例示したが、これに限定されず、実行対象ブロックＢＲの大きさを３２×３２画素、または１２８×１２８画素としてもよい。図２０は、実行対象ブロックＢＲ１０と、入力画像ＩＧにおいて実行対象ブロックＢＲ１０に対応する対応ブロックＴＢ１０との関係を示す図である。図２１は、実行対象ブロックＢＲ２０と、入力画像ＩＧにおいて実行対象ブロックＢＲ２０に対応する対応ブロックＴＢ２０との関係を示す図である。
【００９９】
例えば、実行対象ブロックＢＲの大きさを３２×３２画素とする場合、図２０に示されるように、４×４のブロックＢＫを１グループとして連結することによって、３２×３２画素の実行対象ブロックＢＲ１０が構成される。
【０１００】
当該実行対象ブロックＢＲ１０に対する歪み補正処理では、実行対象ブロックＢＲ１０の１の頂点画素ＶＡ１０および頂点隣接画素ＮＢ１０，ＮＣ１０，ＮＤ１０の入力画像ＩＧ上での対応位置ＰＡ１０，ＰＢ１０，ＰＣ１０，ＰＤ１０が、歪み情報を用いて特定される。また、実行対象ブロックＢＲ１０を構成する各出力画素の入力画像ＩＧ上での対応位置が補間によりそれぞれ算出される。
【０１０１】
そして、これ以降の歪み補正処理は、入力画像ＩＧにおける小ブロックＳＢ１０ごとに行われる。すなわち、小ブロックＳＢ１０単位で図５に示される参照領域設定処理から画素値算出処理までの各処理が実行され、出力画素の画素値が取得される。
【０１０２】
また、実行対象ブロックＢＲの大きさを１２８×１２８画素とする場合、図２１に示されるように、１６×１６のブロックＢＫを１グループとして連結することによって、１２８×１２８画素の実行対象ブロックＢＲ２０が構成される。
【０１０３】
当該実行対象ブロックＢＲ２０に対する歪み補正処理では、実行対象ブロックＢＲ２０の１の頂点画素ＶＡ２０および頂点隣接画素ＮＢ２０，ＮＣ２０，ＮＤ２０の入力画像ＩＧ上での対応位置ＰＡ２０，ＰＢ２０，ＰＣ２０，ＰＤ２０が、歪み情報を用いて特定される。また、実行対象ブロックＢＲ２０を構成する各出力画素の入力画像ＩＧ上での対応位置が補間によりそれぞれ算出される。
【０１０４】
そして、これ以降の歪み補正処理は、入力画像ＩＧにおける小ブロックＳＢ２０ごとに行われる。すなわち、小ブロックＳＢ２０単位で図５に示される参照領域設定処理から画素値算出処理までの各処理が実行され、出力画素の画素値が取得される。
【０１０５】
このように、実行対象ブロックＢＲを大きくして、歪み補正処理を行うことによれば、歪み情報を用いて、１の頂点画素および頂点隣接画素の入力画像ＩＧ上での対応位置を算出する回数を減らすことができるので、レンズデータ記憶部２１に記憶する歪み情報の情報量を削減することが可能になる。
【０１０６】
また、出力画像ＵＧにおけるブロックＢＫの１の頂点画素および３つの頂点隣接画素の入力画像ＩＧ上での対応位置の位置関係は問わない。すなわち、ブロックＢＫに関する１の頂点画素および３つの頂点隣接画素の位置関係と、ブロックＢＫの１の頂点画素および３つの頂点隣接画素の入力画像ＩＧ上での対応位置の位置関係とは、異なっていてもよい。図２２は、出力画像におけるブロックＢＫ１，ＢＫ２と、入力画像ＩＧにおける対応ブロックＴＢ１，ＴＢ２との関係を示す図である。
【０１０７】
例えば、図２２では、出力画像ＵＧにおけるブロックＢＫ１の１の頂点画素ＶＡ０および３つの頂点隣接画素ＮＢ０，ＮＣ０，ＮＤ０の位置関係と、入力画像ＩＧ上での対応位置ＰＡ０，ＰＢ０，ＰＣ０，ＰＤ０の位置関係とが異なる場合が例示されている。
【０１０８】
また、出力画像ＵＧにおけるブロックＢＫが連続している場合であっても、入力画像ＩＧにおいて当該ブロックＢＫに対応する対応ブロックＴＢは、連続していなくてもよい。例えば、図２２では、出力画像ＵＧにおいて、２つのブロックＢＫ１，ＢＫ２が連続しているときに、入力画像ＩＧにおいて当該ブロックＢＫ１，ＢＫ２に対応する対応ブロックＴＢ１，ＴＢ２が不連続となっている場合が例示されている。
【０１０９】
このように、出力画像ＵＧにおいて連続した領域についての歪み補正処理は、入力画像ＩＧにおいて不連続な領域の画像データに基づいて行ってもよい。
【０１１０】
なお、対応ブロックＴＢを含む参照領域の大きさは、連想メモリ３０２の各番地に記憶可能なビット幅によって制限される。例えば、連想メモリ３０２の各番地に記憶可能なビット幅が５ビットであった場合は、参照領域の大きさが縦３２画素未満（図２２中の矢印ＹＶ）、横３２画素未満（矢印ＹＨ）の領域となるように、ブロックＢＫの大きさが調整される。
【０１１１】
また、上記実施形態では、画像処理装置１Ａにおいて歪み補正処理を実現していたが、これに限定されない。図２３は、変形例に係る撮像装置１００を示す図である。
【０１１２】
図２３に示されるように、撮像装置１００は、例えば、ＣＯＭＳセンサまたはＣＣＤセンサなどの撮像素子１０１を有して構成され、被写体像を形成する光（被写体光）を受光して、被写体像に関する画像信号を生成する機能を有している。
【０１１３】
撮像素子１０１で取得された撮影画像の画像データは、第１処理回路２の画像データ記憶部２２に記憶される。そして、撮像装置１００では、当該画像データに対して、第２処理回路３の歪み補正部３０によって上述の歪み補正処理が施される。
【符号の説明】
【０１１４】
１Ａ，１Ｂ，１Ｃ，１Ｄ  画像処理装置
２  第１処理回路
３  第２処理回路
２１  レンズデータ記憶部
２２  画像データ記憶部
３０，３０Ａ，３０Ｂ，３０Ｃ  歪み補正部
３０１  相対座標取得部
３０２  連想メモリ
３０３  読出制御部
３０４  読出位置カウンター
３０５  画素値記憶部
３０６  画素値算出部
３０７  レジスタ
３５  ＤＭＡＣ
ＬＭ  ローカルメモリ
３５１  ラインメモリ
ＲＧ１，ＲＧ２  レジスタ
ＩＧ  入力画像
ＵＧ  出力画像
ＢＫ，ＢＫ１，ＢＫ２，ＢＫ１１，ＢＫ１２  ブロック
ＢＲ，ＢＲ１０，ＢＲ２０  実行対象ブロック
ＴＢ，ＴＢ１，ＴＢ２，ＴＢ１０，ＴＢ２０  対応ブロック
ＦＲ  参照領域
【図１】
0005593060.tif 000002
【図２】
0005593060.tif 000003
【図３】
0005593060.tif 000004
【図４】
0005593060.tif 000005
【図５】
0005593060.tif 000006
【図６】
0005593060.tif 000007
【図７】
0005593060.tif 000008
【図８】
0005593060.tif 000009
【図９】
0005593060.tif 000010
【図１０】
0005593060.tif 000011
【図１１】
0005593060.tif 000012
【図１２】
0005593060.tif 000013
【図１３】
0005593060.tif 000014
【図１４】
0005593060.tif 000015
【図１５】
0005593060.tif 000016
【図１６】
0005593060.tif 000017
【図１７】
0005593060.tif 000018
【図１８】
0005593060.tif 000019
【図１９】
0005593060.tif 000020
【図２０】
0005593060.tif 000021
【図２１】
0005593060.tif 000022
【図２２】
0005593060.tif 000023
【図２３】
0005593060.tif 000024