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