(57)【要約】      （修正有）【課題】入力画像フレーム内の複数の矩形エリアを一つずつ順番に歪み補正する際に、隣接する複数の矩形エリア同士が互いに部分的に重複する重複領域内に含まれる同じデータを画像フレーム・メモリからバスを介して繰り返し読み出す無駄を省く。【解決手段】外部メモリからエリアの各々を順番に読み込んで互いに重複しない対応する出力画像ブロックへと変形処理する任意変形回路によって、互いに部分的に重複するエリア４２０−１と４２０−２を読み込む際に、エリア４２０−１を読み込んだ後に、エリア毎の座標データに基づいてエリア４２０−１と４２０−２との間の重複領域を幾何学的論理積により算出し、エリア４２０−２から当該重複領域を除いた部分を読み込む。【選択図】図６
2017017672.tif 000002
【特許請求の範囲】
【請求項１】
複数のエリアに領域分割された入力画像フレームをエリア毎に処理する画像処理装置であって、
前記画像フレームとエリア毎の座標データが格納される外部メモリと、
内部メモリを含み、バスを介して外部メモリと接続された任意変形回路であって、前記複数のエリアの各々を前記外部メモリから前記内部メモリに順番に参照しながら読み込む読込処理と、互いに重複しない対応する出力画像ブロックへと変形する変形処理と、をする任意変形回路と、を備え、
前記任意変形回路は、前記エリア毎の座標データに基づいて、以前に読み込んだ一つ以上のエリアと現在読み込み中のエリアとの重複領域を幾何学的論理積により算出し、該算出結果を用いて前記読込処理をする、画像処理装置。
【請求項２】
前記任意変形回路は、前記現在読み込み中のエリアから前記重複領域を除いた部分を読み込む、請求項１記載の画像処理装置。
【請求項３】
前記任意変形回路は、入力画像フレームを撮像した撮像装置から読み込んだレンズ・パラメータに基づいて、前記以前に読み込んだ一つ以上のエリアと前記現在読み込み中のエリアに関する前記エリア毎の座標データを算出する動作をさらに実行し、
前記任意変形回路は、前記算出した座標データに基づく幾何学的演算として前記幾何学的論理積を実行し、
前記レンズ・パラメータは、前記入力画像フレームを撮像するための光学系に関する光学条件を記述するパラメータである、請求項２記載の画像処理装置。
【請求項４】
前記内部メモリは、２つの画素データ格納用メモリと２つのパラメータ格納用メモリを備え、
前記任意変形回路は、
前記エリアの各々の読み込みが完了する毎に、
前記２つの画素データ格納用メモリの一方に現在読み込み中のエリアに含まれる画素データを格納し、前記２つのパラメータ格納用メモリの一方に現在読み込み中のエリアに関する前記エリア毎の座標データを格納し、
前記２つの画素データ格納用メモリの他方に、前回までに参照した一つ以上のエリアに含まれる画素データを格納し、前記２つのパラメータ格納用メモリの他方に前回までに参照した一つ以上のエリアに関する前記エリア毎の座標データを格納する、請求項３記載の画像処理装置。
【請求項５】
前記任意変形回路は、現在実行中の前記変形処理の対象として前記画像フレーム内で現在参照中のエリアを参照画像データとして選択し、
前記画像フレーム内における前記参照画像データの主走査方向と副走査方向それぞれの最小座標値と最大座標値によって特定される外接長方形を現在参照中の矩形エリアとして前記画像フレーム内から領域分割する、請求項１記載の画像処理装置。
【請求項６】
前記任意変形回路は、
前記エリア毎の座標データに基づいて、以前に読み込んだ一つ以上のエリアと現在読み込み中のエリアとのが幾何学的論理和を算出し、該幾何学的論理和で示される領域における主走査方向と副走査方向それぞれの最小座標値と最大座標値によって特定される外接長方形において、幾何学的否定論理和で示される領域を算出し、
該幾何学的否定論理和で示される領域と、前記重複領域と、を比較し、比較結果に応じた前記読込処理をする、請求項１記載の画像処理装置。
【請求項７】
前記比較結果において、
前記幾何学的否定論理和で示される領域が、前記重複領域より大きい場合、２以上のエリアを含む前記外接長方形で示される領域単位で前記読込処理をし、
前記幾何学的否定論理和で示される領域が、前記重複領域より小さい場合、前記エリア毎に、前記読込処理をする、請求項６記載の画像処理装置。
【請求項８】
請求項１乃至請求項７の中のいずれか一項に記載された画像処理装置であって、
前記バスを介して前記画像フレームの全体を撮像装置から前記外部メモリに読み込むための入力インターフェースと、
前記任意変形回路による変形処理の結果出力される出力画像ブロックに対して後続の画像処理を行うための一つ以上の画像処理回路と、
前記後続の画像処理がされた前記出力画像ブロックを画面表示フレーム単位で画像表示装置に出力するための出力インターフェースと、
をさらに具備する画像処理装置。
【請求項９】
バスを介して接続された外部メモリ内において複数のエリアに領域分割される形で格納された画像フレームをエリア毎に処理する画像処理方法であって、
前記画像処理方法は、前記外部メモリから前記エリアの各々を順番に読み込んで互いに重複しない対応する出力画像ブロックへと変形処理する任意変形回路によって実行され、互いに部分的に重複する第１と第２のエリアを前記読み込む際に、
前記第１のエリアを読み込んだ後に、エリア毎の座標データに基づいて前記第１と第２のエリアの重複領域を幾何学的論理積により算出する第１ステップと、
該算出結果を用いて前記読み込みをする第２ステップと、
を備える、画像処理方法。
【請求項１０】
バスを介して外部メモリと接続されたＣＰＵによって前記外部メモリから読み出され、一連の命令コードとして実行されるプログラムであって、
前記プログラムは、前記外部メモリ内において複数のエリアに領域分割される形で格納された画像フレームから前記エリアの各々を前記内部メモリに順番に読み込んで互いに重複しない対応する出力画像ブロックへと変形する変形処理の一部として起動され、互いに部分的に重複する第１と第２のエリアを前記読み込む際に、
前記第１のエリアを読み込んだ後に、エリア毎の座標データに基づいて前記第１と第２のエリアの重複領域を幾何学的論理積により算出する第１の命令コードと、
該算出結果を用いて前記読み込みをする第２の命令コードと、
を備える、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
デジタルカメラなどのレンズ機器で撮影された入力画像フレームはレンズ収差によって歪んでいる。特に広角レンズや魚眼レンズで撮影した画像は入力画像フレームの歪みが一段と強い。そのような歪んだ画像データを矩形の画像データに変換するために、画像処理装置による歪み補正処理が必要となる。
【０００３】
そのような歪み補正処理の実現手段の一例として、アフィン変換などの２次元写像変換を入力画像フレームに適用することによって歪み補正を行う任意変形回路が既に知られている。歪み補正前の入力画像フレームが矩形エリア１，２，３，・・・，Ｎ，Ｎ＋１，・・・，Ｎ＋Ｍに領域分割されている場合、任意変形回路は、矩形エリア１から矩形エリアＮ＋Ｍまでの各矩形エリアを一つずつ順番に歪み補正して出力画像フレーム内の対応するブロック位置に格納する。具体的には、任意変形回路は、矩形エリア１から矩形エリアＮ＋Ｍに至るまで、各矩形エリアを入力画像フレームから現時点の参照画像データとして一つずつ順番に読み出す。続いて、任意変形回路は、現時点の参照画像データに歪み補正処理を適用し、歪み補正された参照画像データを出力画像フレーム内の対応するブロック位置に出力する。
【０００４】
以下の特許文献１には、レンズ収差等による歪み補正を実現する目的で、メモリから読み出した画像データに対しアフィン変換を行う技術が開示されている。具体的には、特許文献１においては、レンズ収差等による画像データの歪みを補正する歪み補正処理は、画像データの拡大処理、縮小処理、平行移動処理、回転処理、及びせん断処理の５つの処理によって行われる。特許文献１が開示するアフィン変換は、これらの補正処理を、行列計算を用いて行う画像データの幾何学的変換として定式化したものである。
【０００５】
また、以下の特許文献２は、全画角１８０度を超える魚眼レンズや広角レンズを用いた撮像光学系を２つ以上使用して全方位を一度に撮像する全天球撮像システムを開示している。特許文献２記載の全天球撮像システムは、各々の撮像光学系が撮像した画像データに対して、ホワイトバランス調整処理に加えて、レンズ収差等を補正するための歪み補正処理を適用している。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、歪み補正後の出力画像フレームは、互いに重複していない複数の矩形エリアに領域分割されている一方で、歪み補正前の入力画像フレームにおいて対応する複数の矩形エリアは隣接する矩形エリアとの間で部分的に重複してしまうのが一般的である。従って、従来の任意変形回路において、歪み補正前の入力画像フレームが矩形エリア１，２，３，・・・，Ｎ，Ｎ＋１，・・・，Ｎ＋Ｍに領域分割され、矩形エリア１から矩形エリアＮ＋Ｍに至るまで、各矩形エリアを一つずつ順番に歪み補正処理する場合、以下の問題が生じる。
【０００７】
矩形エリアＮを現時点の参照画像データとして画像フレーム・メモリから読み出して歪み補正する際に、直前に歪み補正した矩形エリアＮ−１やそれ以前に歪み補正した矩形Ｎ−Ｘ（１≦Ｘ＜Ｎ）が矩形エリアＮと部分的に重複している場合がある。その場合、任意変形回路は、矩形エリアＮが矩形エリアＮ−１や矩形エリアＮ−Ｘと部分的に重複する重複領域の同じデータを少なくとも２回以上読み出してしまっている。つまり、任意変形回路は、入力画像フレーム内の複数の矩形エリアを一つずつ順番に歪み補正する際に、隣接する複数の矩形エリアが互いに部分的に重複する領域内に含まれる同じデータを画像フレーム・メモリからバスを介して無駄に繰り返し読み出していることとなる。
【０００８】
特許文献１記載の発明は、歪み補正前の入力画像フレームに含まれる各矩形エリアを歪み補正する仕組みを開示しているが、入力画像フレームにおいて隣接する矩形エリア間の重複領域に含まれる画像データを無駄に繰り返し読み出さなくてはならないという問題を解決する仕組みを持たない。また、特許文献２記載の発明は、全天球撮像画像の生成のために光学条件の異なる魚眼レンズで撮影した２つ以上の画像データの外縁部を互いに重複させて結合する際、当該重複する領域の画素データに対してホワイトバランス調整を行う。これにより、特許文献２記載の発明は、異なる魚眼レンズで撮影した複数の画像データ間において輝度に関連した色味の不連続性による視覚的違和感を抑制可能であるが、当該重複する領域内の同じデータを画像メモリから繰り返し読み出さなくてはならない無駄を省く仕組みを持たない。
【０００９】
従って、静止画のみならず、動画像を歪み補正して出力するにあたり、参照画像データとして参照中の各矩形エリアに含まれる重複領域を任意変形回路が画像フレーム・メモリからバスを介して複数回転送するのは転送効率が悪いだけでなく、バス帯域を無駄に使用することとなる。また、今後画像の高解像度化が進むにあたり、任意変形回路と画像フレーム・メモリ間の画像データ転送経路であるバスの帯域を充分に確保することは必須である。
【００１０】
上記問題点に鑑み、本発明は、参照画像データのバス帯域を確保することが可能な画像処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、本発明の画像処理装置は、複数のエリアに領域分割された入力画像フレームをエリア毎に処理する画像処理装置であって、前記画像フレームとエリア毎の座標データが格納される外部メモリと、内部メモリを含み、バスを介して外部メモリと接続された任意変形回路であって、前記複数のエリアの各々を前記外部メモリから前記内部メモリに順番に参照しながら読み込む読込処理と、互いに重複しない対応する出力画像ブロックへと変形する変形処理と、をする任意変形回路と、を備え、前記任意変形回路は、前記エリア毎の座標データに基づいて、以前に読み込んだ一つ以上のエリアと現在読み込み中のエリアとの重複領域を幾何学的論理積により算出し、該算出結果を用いて前記読込処理をすることを特徴とする。
【発明の効果】
【００１２】
本発明は、参照画像データのバス帯域を確保することが可能な画像処理装置を得ることができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係る画像処理装置の全体構成を示す図
【図２】本発明の一実施形態において、歪み補正後の出力画像フレームにおける矩形エリアの並び順と走査順序を示す図
【図３】本発明の一実施形態において、歪み補正前の入力画像フレームに含まれる複数の矩形エリアと歪み補正後の出力画像フレームにおいてそれぞれ対応する矩形エリアのとの間の対応関係を示す図
【図４】本発明の一実施形態に従い、入力画像フレーム内において、レンズ・パラメータから得られた任意形状の矩形エリアに外接する外接長方形を矩形エリアとして求める様子を示す図
【図５】本発明の一実施形態に係る画像処理装置に含まれる任意変形回路の構成図
【図６】本発明の一実施形態において、歪み補正前の入力画像フレーム内において隣接する矩形エリア同士が部分的に重複している状態を示す図
【図７】入力画像フレーム内において隣接する矩形エリア同士の間の重複領域を外部メモリから繰り返し読み出す際の問題点を例示するバス・クロックのタイミング・チャート
【図８】本発明の一実施形態において、任意変形回路と外部メモリとの間で行われる画像データのやり取りを示す図
【図９】本発明の一実施形態において、現在参照中の矩形エリアと後続の矩形エリアとの間における重複領域の画素データを後続の矩形エリアの歪み補正のためにコピーする処理を示す図
【図１０】本発明の一実施形態において、任意変形回路により実行される一連の動作の流れを示すフローチャート
【図１１】本発明の一実施形態に従い、入力画像フレーム内において隣接する矩形エリア同士の間の重複領域を外部メモリから一回だけ読み出すようにした場合のバス・クロックのタイミング・チャート
【図１２】本発明の一実施形態に従い、外接長方形として求めた矩形エリアＮ＋１と現在の参照中の矩形エリアＮとが重複している重複領域の座標を算出する幾何学的論理積を示す図
【図１３】入力画像フレーム内において、互いに重複する２つの矩形エリア、矩形エリア間の重複領域およびフレーム走査方向との間の関係を示す図
【図１４】２つの矩形エリア間における重複状態のバリエーションを示す図
【図１５】２つの矩形エリア間における重複状態のバリエーションに応じて定まる重複領域形態のバリエーションを示す図
【図１６】２つの矩形エリア間における重複状態のバリエーションに応じて定まる外接長方形のバリエーションを示す図
【図１７】互いに重複する２つの矩形エリア、矩形エリア間の重複領域およびフレーム走査方向との間の関係を示す図
【図１８】本発明の一実施形態において、任意変形回路と外部メモリとの間で行われる画像データのやり取りを示す図
【図１９】本発明の一実施形態において、任意変形回路と外部メモリとの間で行われる画像データのやり取りを示す図
【発明を実施するための形態】
【００１４】
［第１の実施形態］
本明細書の以下の記述においては、まず、本実施の形態が実施される画像処理装置のハードウェア構成および歪み補正処理の前後において本実施の形態が処理対象とする画像データのデータ構造について図１乃至図６を参照しながら説明する。続いて、本実施の形態が解決しようとする従来の問題点と当該問題点が本実施の形態によりどのように解決されるかについて、図７乃至図１１を参照しながら説明する。最後に、当該問題点を解決するために本実施の形態が実行する一連の処理のうち、矩形エリア同士が重複する重複領域の座標を算出する処理を図１２乃至図１５を用いて説明する。
【００１５】
＜本実施の形態に係る画像処理装置の構成と画像データのデータ構造＞
まず、本実施の形態が実施される画像処理装置のハードウェア構成について述べる。図１は、本実施の形態に係る画像処理装置１０の全体の回路構成を示している。画像処理装置１０は、制御プロセッサ１００、任意変形回路２００、画像処理回路３００、外部メモリ４００、入力インターフェース５００および出力インターフェース６００を備える。画像処理装置１０において、制御プロセッサ１００、任意変形回路２００、画像処理回路３００、外部メモリ４００、入力インターフェース５００および出力インターフェース６００は、バス７００によって相互に接続され、バス７００を介して相互にデータと制御信号をやり取りする。
【００１６】
図１において、制御プロセッサ１００は、任意変形回路２００および画像処理回路３００に対して各種処理動作の実行開始を指示したり、任意変形回路２００と画像処理回路３００との間において処理動作の同期や調整を行ったりする等して画像処理装置１０全体の制御を行う。また、制御プロセッサ１００は、外部メモリ４００から所定の制御プログラムを読み出し、当該制御プログラムを実行することによって画像処理装置１０全体の制御を実行することも可能である。
【００１７】
外部メモリ４００は、例えば、ＤＤＲ  ＤＲＡＭ等のメモリ素子を使用して実装され、入力インターフェース５００を介して外部の撮像装置（図示せず）から入力画像フレーム４１０を読み込んで格納する。また、外部メモリ４００は、出力インターフェース６００を介して外部の画像表示装置（図示せず）に出力するための出力画像フレーム４３０を格納する。出力画像フレーム４３０は、任意変形回路２００が入力画像フレーム４１０を歪み補正することによって生成すべき1フレーム分の出力画像データに相当する。外部メモリ４００内において、入力画像フレーム４１０は、複数の矩形エリア４２０に領域分割され、出力画像フレーム４３０は、複数の出力画像ブロック４４０に領域分割されている。出力画像フレーム４３０内の複数の出力画像ブロック４４０は、入力画像フレーム４１０内の複数の矩形エリア４２０と一対一に対応している。
【００１８】
入力画像フレーム４１０には、レンズ収差に起因した歪みを補正する歪み補正処理が適用される前の画像データが複数の矩形エリア４２０に領域分割されて格納されている。他方、入力画像フレーム４１０内の複数の矩形エリア４２０の各々に歪み補正処理を適用して得られた画像データは、入力画像フレーム４１０内の対応する出力画像ブロック４４０に格納されている。また、外部メモリ４００は、図１においてパラメータ格納領域４５０として示される記憶領域を含んでおり、パラメータ格納領域４５０には複数の矩形エリア４２０の座標データを矩形エリア毎に記述する複数のエリア座標パラメータが格納されている。入力画像フレーム４１０、出力画像フレーム４３０、パラメータ格納領域４５０を外部メモリ４００に格納することで、画像処理装置１０の小型化を図ることができる。
【００１９】
図２乃至図５は、複数の矩形エリア４２０に領域分割された入力画像フレーム４１０および複数の出力画像ブロック４４０に領域分割された出力画像フレーム４３０のデータ構造を詳細に説明する図である。図３に示すとおり、出力画像フレーム４３０は、複数の出力画像ブロック４４０−１，４４０−２，…，４４０−Ｎ，４４０−Ｎ＋１，…，４４０−２Ｎ，…，４４０−ＭＮにより構成されている。出力画像フレーム４３０内において、出力画像ブロック４４０−１，４４０−２，…，４４０−Ｎ，４４０−Ｎ＋１，…，４４０−２Ｎ，…，４４０−ＭＮは、図２の矢印で示す順序で並んでいる。すなわち、図１における任意変形回路２００によって歪み補正処理がされて出力される画像データは出力画像フレーム４３０内において図３に示すように出力画像ブロック４４０−１乃至４４０−ＭＮに分割され、出力画像フレーム４３０の主走査方向に１〜Ｎ個出力され、副走査方向にはＭ個出力される。
【００２０】
図３は、入力画像フレーム４１０内に含まれる複数の矩形エリア４２０と出力画像フレーム４３０を構成する複数の出力画像ブロック４４０の間の対応関係を示す図である。より具体的には、図３において、入力画像フレーム４１０内に含まれる複数の矩形エリア４２０−１，４２０−２，…，４２０−Ｎ，４２０−Ｎ＋１，…，４２０−２Ｎ，…，４２０−ＭＮが、出力画像フレーム４３０を構成する出力画像ブロック４４０−１，４４０−２，…，４４０−Ｎ，４４０−Ｎ＋１，…，４４０−２Ｎ，…，４４０−ＭＮと一対一に対応している様子が示されている。
【００２１】
図３においては、入力画像フレーム４１０内における複数の矩形エリア４２０−１乃至４２０−ＭＮの配置順序が、出力画像フレーム４３０内においてそれぞれ対応する複数の出力画像ブロック４４０−１乃至４４０−ＭＮと同じ配置順序となっている様子が示されている。しかしながら、図３を参照すると、出力画像フレーム４３０内において、複数の出力画像ブロック４４０−１乃至４４０−ＭＮは互いに重複していないにもかかわらず、複数の出力画像ブロック４４０−１乃至４４０−ＭＮとそれぞれ対応する複数の矩形エリア４２０−１乃至４２０−ＭＮは、入力画像フレーム４１０内において互いに部分的に重複していることが分かる。
【００２２】
出力画像フレーム４３０内において隣接する出力画像ブロック４４０同士が重複しないにもかかわらず、入力画像フレーム４１０内において対応する矩形エリア４２０同士が互いに部分的に重複してしまう理由は以下のとおりである。レンズ収差に起因する歪みを補正する歪み補正処理を矩形エリア４２０−ｋに対して施した場合、矩形エリア４２０−ｋに対して歪み補正処理を施した結果得られる画像データは、矩形エリア４２０−ｋと対応する出力画像ブロック４４０−ｋに格納されている。入力画像フレーム４１０をキャプチャするための撮像装置において、レンズの画角が同じであったとしても、レンズ収差が有る場合とレンズ収差が無い場合とでは、各矩形エリア４２０を結像するための結像領域の高さと幅に相違が生じる。従って、レンズ収差によって結像領域の高さと幅が拡大した分だけ、入力画像フレーム４１０内において各矩形エリア４２０の高さと幅を本来のサイズより大きくとらなくてはならない。その結果、レンズ収差によって結像領域の高さと幅が拡大した分だけ、矩形エリア４２０−ｋの高さと幅を出力画像ブロック４４０−ｋと比べて大きくとる必要がある。
【００２３】
続いて、外部の撮像装置から画像処理装置１０に原画像のデータを入力した場合、図３に示す入力画像フレーム４１０を領域分割する複数の矩形エリア４２０−１〜４２０−ＭＮの各々が、当該撮像装置が備えるレンズ等の光学特性に基づいてどのように得られるのかを説明する。図３に示す入力画像フレーム４１０を領域分割する複数の矩形エリア４２０−１〜４２０−ＭＮの各々は、以下において後述するように、入力画像フレーム４１０を領域分割する複数の入力画像エリア４２−１〜４２−ＭＮの各々に外接する外接長方形によって規定される矩形領域として得られる。つまり、入力画像フレーム４１０内において、複数の矩形エリア４２０−１〜４２０−ＭＮは、入力画像エリア４２−１〜４２−ＭＮと一対一に対応し、個々の矩形エリアは、対応する個々の入力画像エリアの外接長方形として得られる。
【００２４】
画像処理装置１０のように画像フレーム全体の歪み補正処理を行う装置は、レンズ収差などにより歪んだ入力画像フレーム４１０内の複数の入力画像エリアの各々を、順方向の２次元写像変換により変形処理することにより、歪み補正を行う。その結果、当該変形処理された各入力画像エリアは、出力画像フレーム４３０内の該当するブロック位置において互いに重複しない矩形形状の出力画像ブロック４４０として出力される。逆に、出力画像フレーム４３０内において互いに重複しない矩形形状の出力画像ブロック４４０の各々は、外部の撮像装置から画像処理装置１０に入力された入力画像フレーム４１０上において、逆方向の２次元写像変換により、不定形の四角形状の入力画像エリアに逆マッピングされる。
【００２５】
例えば、出力画像フレーム４３０内において矩形形状を有する一つの出力画像ブロック４４０が、アフィン変換などの様な２次元写像変換により、図４に示す平行四辺形形状の入力画像エリア４２にマッピングされる。上述した２次元写像変換は、入力画像エリア単位での光学系特有の画像歪み効果に対応し、当該画像歪み効果は、原画像を撮影した撮像装置が備える光学系におけるレンズ収差などの光学特性に起因する。一般には、出力画像フレーム４３０内の一つの出力画像ブロック４４０が、逆方向の２次元写像変換により、入力画像フレーム４１０上にマッピングされて得られる入力画像エリア４２は、図４に示す入力画像エリア４２のように平行四辺形であるとは限らず、台形や菱形の形状を採る場合もある。
【００２６】
図４に示すとおり、一つの出力画像ブロック４４０が、逆方向の２次元写像変換により入力画像フレーム４１０上にマッピングされて得られる一つの入力画像エリア４２は、平行四辺形の４つの頂点を規定する２次元のＸＹ座標（Ｘ１，Ｙ１）、（Ｘ２，Ｙ２）、（Ｘ３，Ｙ３）および（Ｘ４，Ｙ４）によって表現されている。このとき、Ｘ軸は、画像フレームの主走査方向（水平走査方向）に沿っており、Ｙ軸は、画像フレームの副走査方向（垂直走査方向）に沿っている。平行四辺形または不定形の任意の四角形状を有する入力画像エリア４２を外部メモリ４００上の入力画像フレーム４１０内において画像データとして格納する場合には、入力画像エリア４２に外接する外接長方形を求め、当該外接長方形に含まれる画素データを個々の矩形エリア４２０として外部メモリ４００上の入力画像フレーム４１０内に格納することが好適である。何故なら、外部メモリ４００上の入力画像フレーム４１０を領域分割する個々のエリアは、矩形エリア４２０のように長方形形状であった方が、ＤＤＲ  ＤＲＡＭ等で実現された外部メモリ４００上での個々の画素データのアドレス指定の単純さおよびデータ処理やデータ・アクセスの効率性の観点から都合がよいからである。
【００２７】
そこで、図４に示す例においては、入力画像エリア４２によって規定される平行四辺形形状の領域の２次元座標のうち、Ｘ軸方向に沿った最小座標と最大座標ＸｍｉｎおよびＸｍａｘを求め、Ｙ軸方向に沿った最小座標と最大座標ＹｍｉｎおよびＹｍａｘを求める。続いて、２次元座標（Ｘｍｉｎ，Ｙｍｉｎ）および（Ｘｍａｘ，Ｙｍａｘ）でそれぞれあらわされる２つの点を結ぶ線分を対角線とする長方形を求めると、入力画像エリア４２に外接する外接長方形が矩形エリア４２０として得られる。また、このとき、Ｘ軸方向に沿った最小座標と最大座標ＸｍｉｎおよびＸｍａｘは、入力画像エリア４２の平行四辺形形状を規定する座標Ｘ３およびＸ２とそれぞれ等しい。また、Ｙ軸方向に沿った最小座標と最大座標ＹｍｉｎおよびＹｍａｘは、入力画像エリア４２の平行四辺形形状を規定する座標Ｙ１＝Ｙ２およびＹ３＝Ｙ４とそれぞれ等しい。
【００２８】
図５を用いた以下の説明で後述するように、個々の矩形エリア４２０は、任意変形回路２００内において歪み補正処理の対象となる。しかしこの場合、任意変形回路２００は、矩形エリア４２０に含まれる画素データのうち、矩形エリア４２０を外接長方形とし、当該外接長方形に内接する入力画像エリア４２に含まれる画素データだけを、矩形形状の出力画像ブロック４４０へと変形する。このとき、矩形エリア４２０に内接する入力画像エリア４２を対応する出力画像ブロック４４０に変形する処理は、上述した順方向の２次元写像変換に基づいて実行される。また、上述した２次元写像変換は、原画像を撮影するのに使用した光学系のレンズ・パラメータから得ることができ、当該レンズ・パラメータは、原画像を撮影するのに使用した光学系が備えるレンズの画角、光軸長およびレンズ収差等を含む光学条件や光学特性をパラメータ値の形で規定している。レンズ・パラメータに基づいて矩形エリア４２０の座標データを算出することで、熱などによるレンズ形状の変化に対応することが可能となっている。
【００２９】
上述した入力画像エリア４２から出力画像ブロック４４０への変形処理を順方向の２次元写像変換に基づいて行うことにより、任意変形回路２００は、入力画像フレーム４１０を領域分割するエリア単位での歪み補正処理を実行する。なお、個々の入力画像エリア４２を矩形形状の出力画像ブロック４４０に写像するための２次元写像変換としては、アフィン変換以外の任意の２次元写像変換を使用することも可能である。例えば、入力画像フレーム４１０を複素平面と見立てた場合には、個々の入力画像エリア４２を矩形形状の出力画像ブロック４４０に写像するための２次元写像変換として、複素関数に基づく２次元写像を使用することも可能である。
【００３０】
入力画像フレーム４１０が入力インターフェース５００によって外部メモリ４００上に読み込まれるのと同時に、任意変形回路２００は、入力画像フレーム４１０内に含まれる複数の入力画像エリア４２の各々に外接する外接長方形を図４において例示したような方法で求める。このようにして、任意変形回路によって入力画像フレーム４１０内において入力画像エリア毎に得られた個々の外接長方形が、入力画像フレーム４１０を領域分割する個々の矩形エリア４２０として記憶される。
【００３１】
再び図１を参照すると、任意変形回路２００は、外部メモリ４００上において図３に示すように格納された入力画像フレーム４１０に含まれる複数の矩形エリア４２０−１乃至矩形エリア４２０−ＭＮを一つずつ順番に参照し、現在参照中の矩形エリア４２０ｎを参照画像データとして選択する。続いて、任意変形回路２００は、参照画像データとして選択された現在参照中の矩形エリア４２０ｎを読み出して歪み補正処理を実行する。任意変形回路２００はさらに、現在参照中の矩形エリア４２０ｎを歪み補正処理して得られた画像ブロックを外部メモリ４００に格納された出力画像フレーム４３０内の対応するブロック位置にある出力画像ブロック４４０ｎに書き込む。
【００３２】
画像処理回路３００は、任意変形回路２００が入力画像フレーム４１０内の矩形エリア４２０ｎを歪み補正処理して画像表示フレーム・データ４３０内に出力画像ブロック４４０ｎとして格納した後に、出力画像ブロック４４０ｎに対して追加の画像処理を施すための回路である。具体的には、任意変形回路２００が現在参照中の矩形エリア４２０ｎを歪み補正処理して得られた結果を出力画像フレーム４３０内の出力画像ブロック４４０ｎに書き込んだ後に、画像処理回路３００は、以下の処理を行う。まず、画像処理回路３００は、出力画像フレーム４３０から出力画像ブロック４４０ｎを読み出し、読み出した出力画像ブロック４４０ｎに対して後続の画像処理としてホワイトバランス調整処理等の一つ以上の画像処理を施す。続いて、画像処理回路３００は、出力画像ブロック４４０ｎに対してホワイトバランス調整処理等の後続の画像処理を施すことにより得られた画像ブロックを、出力画像フレーム４３０内の同じ出力画像ブロック４４０ｎに再度書き込む。
【００３３】
次に、図５を参照しながら任意変形回路２００の内部構成について説明する。図５を参照すると、任意変形回路２００は、メモリアクセス制御回路２１０、参照画像判定回路２２０、歪み補正処理回路２３０および内部メモリ２４０を備えている。
【００３４】
メモリアクセス制御回路２１０は、任意変形回路２００が外部メモリ４００にアクセスする動作を制御する回路であり、以下のような制御動作を行う。例えば、メモリアクセス制御回路２１０は、任意変形回路２００からのバス７００へのアクセス権を画像処理回路３００との間で調停する。また、メモリアクセス制御回路２１０は、バス７００のクロック・タイミングに同期してバス７００の上でデータ信号、アドレス信号および制御信号をやり取りするシーケンスを制御する。また、メモリアクセス制御回路２１０は、外部メモリ４００から読み出した画像データや画像データを内部メモリ２４０に一時保存したり、内部メモリ２４０の上に一時保存された画像データが歪み補正処理された後に当該画像データを外部メモリ４００に書き戻したりする動作も行う。
【００３５】
なお、内部メモリ２４０は、矩形エリア４２０の画素データを外部メモリ４００から読み込んで歪み補正処理するための一時記憶として使用される画素データ格納用メモリ２４１−Ａおよび２４１−Ｂを備えている。画素データ格納用メモリ２４１−Ａおよび２４１−Ｂは、例えば、任意変形回路２００上において実装されるＳＲＡＭ素子として実現することが可能である。従って、図５において、画素データ格納用メモリ２４１−Ａおよび２４１−Ｂは、Ｒ＿ＳＲＡＭ（１）およびＲ＿ＳＲＡＭ（２）と表記されている。加えて、内部メモリ２４０は、外部メモリ４００から読み込んだエリア座標パラメータを一時的に記憶するためのパラメータ格納用メモリ２４２−Ａおよび２４２−Ｂを備えている。パラメータ格納用メモリ２４２−Ａおよび２４２−Ｂは、例えば、任意変形回路２００上において実装されるＳＲＡＭ素子として実現することが可能である。従って、図５において、パラメータ格納用メモリ２４２−Ａおよび２４２−Ｂは、Ｐ＿ＳＲＡＭ（１）およびＰ＿ＳＲＡＭ（２）と表記されている。なお、以下の説明では、歪み補正のために以前に参照していた一つ以上の矩形エリアを矩形エリア４２０ａ〜４２０ｎ−１と表記し、参照画像データとして現在参照中の矩形エリアを矩形エリア４２０ｎと表記することにする。
【００３６】
参照画像判定回路２２０は、本明細書中において上述した課題を解決するための仕組みを任意変形回路２００内において実現する回路の一実施例である。参照画像判定回路２２０は、本実施の形態に特有の仕組みを実現するために、エリア座標パラメータが記述する矩形エリア毎の座標データに基づいて、以下において後述する参照画像判定処理を実行する。続いて、参照画像判定処理の結果に応じて、参照画像判定回路２２０は、現在参照中の矩形エリア４２０ｎに含まれる画素データの一部または全部を、外部メモリ４００上の入力画像フレーム４１０から内部メモリ２４０に読み込むようにメモリアクセス制御回路２１０に指示する。最後に、参照画像判定回路２２０は、メモリアクセス制御回路２１０によって内部メモリ２４０に読み込まれた当該画素データを使用して現在参照中の矩形エリア４２０ｎ全体の画素データを内部メモリ２４０上に準備する。
【００３７】
歪み補正処理回路２３０は、参照画像判定回路２２０によって内部メモリ２４０上に準備された現在参照中の矩形エリア４２０ｎ全体の画素データに対してレンズ収差によって生じる歪みを補正するための歪み補正処理を施し、歪み補正後の画像データを内部メモリ２４０に一時保存する。具体的には、歪み補正処理回路２３０は、矩形エリア４２０ｎを外接長方形とする入力画像エリア４２ｎを２次元写像変換に基づいて変形し、出力画像ブロック４４０ｎとして出力する処理を行う。その際、当該２次元写像変換は、入力画像フレーム４１０の原画像フレームを撮像するために使用する撮像装置の光学系（レンズ等）に関する光学条件（画角、光軸長、レンズ収差など）を記述するレンズ・パラメータに応じて決定される。続いて、歪み補正処理回路２３０は、当該一時保存した画像データを、外部メモリ４００上の出力画像フレーム４３０内において現在参照中の矩形エリア４２０ｎに対応するブロック位置の出力画像ブロック４４０ｎに書き込むようにメモリアクセス制御回路２１０に指示する。
【００３８】
矩形エリア４２０毎の歪み補正処理が１回終わるごとに、参照画像判定回路２２０は、内部メモリ２４０内において歪み補正処理が終わった直後の矩形エリア４２０の画素データを、画素データ格納用メモリ２４１−Ａから取り出して画素データ格納用メモリ２４１−Ｂに蓄積してゆく。つまり、矩形エリア４２０毎の歪み補正処理が１回終わるごとに、以前の歪み補正処理のために前回までに参照された矩形エリア４２０ａ〜矩形エリア４２０ｎ−１の画素データは、画素データ格納用メモリ２４１−Ｂ内に累積的に記憶されてゆく。同時に、参照画像判定回路２２０は、歪み補正処理が終わった直後の矩形エリア４２０に対応するエリア座標パラメータをパラメータ格納用メモリ２４２−Ａから取り出してパラメータ格納用メモリ２４２−Ｂに蓄積してゆく。
【００３９】
その結果、現在参照中の矩形エリア４２０ｎの歪み補正処理に先立って、以前の歪み補正処理のために既に外部メモリ４００から内部メモリ２４０に読み込まれた矩形エリア４２０ａ〜矩形エリア４２０ｎ−１は、内部メモリ２４０が備える画素データ格納用メモリ２４１−Ｂに蓄積されている。同様に、現在参照中の矩形エリア４２０ｎの歪み補正処理に先立って、以前の歪み補正処理のために既に外部メモリ４００から読み込まれた矩形エリア４２０ａ〜矩形エリア４２０ｎ−１に対応するエリア座標パラメータは、内部メモリ２４０が備えるパラメータ格納用メモリ２４２−Ｂに蓄積されている。
【００４０】
＜本実施の形態が解決すべき課題と課題解決のための基本原理＞
次に、図１乃至図５を用いて上述した画像処理装置１０の回路構成と画像データのデータ構造を前提として、本実施の形態が解決しようとする従来の課題について図６および図７を参照しながら説明する。図６は、入力画像フレーム４１０内において、矩形エリア４２０−１と矩形エリア４２０−２とが互いに重複する重複領域Ａおよび矩形エリア４２０−２と矩形エリア４２０−３とが互いに重複する重複領域Ｂを図示している。図７は、入力画像フレーム４１０内において隣接する矩形エリア４２０同士の間の重複領域を、以下において後述するシナリオに沿って外部メモリ４００から繰り返し読み出す際にバス７００上で観測されるバス・クロックのタイミング・チャートである。
【００４１】
図３に示したように、任意変形回路２００が入力画像フレーム４１０を歪み補正することによって生成すべき１フレーム分の出力画像フレーム４３０は、複数の出力画像ブロック４４０が主走査方向にN個、副走査方向にM個並んだ状態で領域分割されている。出力画像フレームを１フレーム生成するために、任意変形回路２００内のメモリアクセス制御回路２１０が入力画像フレーム４１０への最初のアクセスを開始しようとする。すると、バス７００上において図７に示すフレームトリガー信号（図７のｔｒ０）の発生により１フレーム分の出力画像を生成する処理が開始される。この時、任意変形回路２００内のメモリアクセス制御回路２１０が、図６に示す３つの矩形エリア４２０−１、４２０−２および４２０−３を順番に外部メモリ４００上の入力画像フレーム４１０から読み出すシナリオを仮定する。また、矩形エリア４２０−１、４２０−２および４２０−３は、出力画像フレーム４３０内の出力画像ブロック４４０−１、４４０−２および４４０−３にそれぞれ対応しているとする。
【００４２】
フレームトリガー信号により出力画像フレーム生成処理が開始された後、バス７００上で矩形エリアトリガー信号（図７のｔｒ１）が発生するごとに、３つの矩形エリア４２０−１、４２０−２および４２０−３の画素データが順番に参照画外部メモリ４００上の入力画像フレーム４１０から取得される。再び図６を参照すると、入力画像フレーム４１０内において矩形エリア４２０−１と矩形エリア４２０−２とは重複領域Ａにおいて互いに重複している。出力画像ブロック４４０−１を生成するのに必要な矩形エリア４２０−１がメモリアクセス制御回路２１０によって外部メモリ４００から読み出された際には重複領域Ａも含めて読み出されている（図７の区間６１と６２）。にもかかわらず、出力画像ブロック４４０−２を生成するのに必要な矩形エリア４２０−２を外部メモリ４００から読み出す際にも、矩形エリア４２０−１と重複する重複領域Ａを再び読み出している（図７の区間６３）。
【００４３】
また、出力画像ブロック４４０−２を生成するのに必要な矩形エリア４２０−２がメモリアクセス制御回路２１０によって外部メモリ４００から読み出された際には重複領域Ｂも含めて読み出されている（図７の区間６４と６５）。にもかかわらず、出力画像ブロック４４０−２を生成するのに必要な矩形エリア４２０−３を外部メモリ４００から読み出す際にも、矩形エリア４２０−２と重複する重複領域Ｂを後続の区間で再び読み出すことになる。このように、任意変形回路２００内のメモリアクセス制御回路２１０は、矩形エリア４２０−１と矩形エリア４２０−２の両者に共通する重複領域Ａに含まれる同じ画素データを繰り返し読み込んでいる。また、任意変形回路２００内のメモリアクセス制御回路２１０は、矩形エリア４２０−２と矩形エリア４２０−３の両者に共通する重複領域Ｂに含まれる同じ画素データを繰り返し読み込んでいる。その結果、画像処理装置１０内において、バス７００の帯域が無駄に浪費されている。
【００４４】
次に、図８を参照しながら、図５に示す任意変形回路２００内において本実施の形態に特有の処理を実現するために参照画像判定回路２２０が実行する参照画像判定処理について説明する。図６の例で説明するならば、参照画像判定処理は、本実施の形態が解決しようとする上述した課題を以下のようにして解決することができる。参照画像判定処理が参照画像判定回路２２０によって実行されると、矩形エリア４２０−１と矩形エリア４２０−２との間で幾何学的論理積（以下、単に論理積ともいう）をとることにより、２つの矩形エリアの重複領域Ａを規定する２次元座標が得られる。その結果、参照画像判定回路２２０は、重複領域Ａを規定する当該２次元座標を使用して重複領域Ａに含まれる画素データを外部メモリ４００から再度読み出さないようにメモリアクセス制御回路２１０に指示する。これにより、図６に示す重複領域Ａが複数回にわたってバス７００上で転送されることを防ぎ、バス帯域を効率的に使用することが可能となる。
【００４５】
参照画像判定処理とは、本実施の形態が解決すべき課題を上記のようにして解決するために、参照画像データとして現在参照中の矩形エリア４２０ｎのうち、一つ以上の近隣の矩形エリア４２０と重複する重複領域を除いた残りの矩形エリアを規定する座標データを取得する処理である。図８を参照すると、まず、参照画像判定回路２２０は、入力画像フレーム４１０内に含まれる全ての矩形エリア４２０の各々を現時点での歪み補正処理の対象として一つずつ順番に参照する過程において、現在参照中の一つの矩形エリア４２０ｎを参照画像データとして選択する。続いて、参照画像判定回路２２０は、外部メモリ４００内のパラメータ格納領域４５０から参照画像データとして現在参照中の矩形エリア４２０ｎの座標データを記述したエリア座標パラメータを読み出す（図７の矢印Ａ１）。参照画像判定回路２２０は、当該読み出したエリア座標パラメータを一時記憶のために内部メモリ２４０内のパラメータ格納用メモリ２４２−Ａに保存する。
【００４６】
当該エリア座標パラメータには、現在参照中の矩形エリア４２０ｎを規定する長方形の４つの頂点の２次元座標が記述されており、当該２次元座標は、入力画像フレーム４１０が規定する画像フレームの横方向と縦方向に沿ったＸ軸とＹ軸の上のＸ座標とＹ座標の組で表される。このようにして、参照画像判定回路２２０は、参照画像データとして現在参照中の矩形エリア４２０ｎの４隅の２次元座標を取得する動作を、入力画像フレーム４１０内の全ての矩形エリア４２０−１〜４２０−ＭＮについて矩形エリア毎に順番に実行する。
【００４７】
続いて、参照画像判定回路２２０は、参照画像データとして現在参照中の矩形エリア４２０ｎと一つ以上の近隣の矩形エリア４２０との間の重複領域の有無と重複領域の形状を判定するための処理を以下のとおりに実行する。なお、以下の説明では、参照画像判定回路２２０が歪み補正のために以前に参照していた一つ以上の矩形エリアを矩形エリア４２０ａ〜４２０ｎ−１と表記し、参照画像データとして現在参照中の矩形エリアを矩形エリア４２０ｎと表記することにする。
【００４８】
まず、参照画像判定回路２２０は、矩形エリア４２０ａ〜４２０ｎ−１に対応するｎ−１個のエリア座標パラメータを内部メモリ２４０から読み出し、矩形エリア４２０ａ〜４２０ｎ−１のそれぞれの４隅の２次元座標に関する座標データを抽出する。続いて、参照画像判定回路２２０は、矩形エリア４２０ｎの４隅の２次元座標と矩形エリア４２０ａ〜４２０ｎ−１に関して抽出した座標データとから矩形エリア４２０ａ〜４２０ｎ−１と矩形エリア４２０ｎとの間の重複領域を規定する２次元座標を計算する。具体的には、矩形エリア４２０ａ〜４２０ｎ−１と矩形エリア４２０ｎとの間の重複領域の形状を規定する２次元座標を求めるために、参照画像判定回路２２０は、これらの矩形エリアの各々を規定する長方形の４隅の２次元座標に基づいて、矩形エリア間の幾何学的論理積と呼ばれる演算を実行する。参照画像判定回路２２０が実行する矩形エリア間の幾何学的論理積の詳細については以下において後述する。
【００４９】
上述した幾何学的論理積により矩形エリア４２０ａ〜４２０ｎ−１と矩形エリア４２０ｎとの間の重複領域を規定する２次元座標が得られると、参照画像判定回路２２０は、矩形エリア４２０ｎから当該重複領域を除いた残りの矩形エリアに含まれる画素データを外部メモリ４００から読み出す。具体的には、参照画像判定回路２２０は、当該重複領域を規定する２次元座標と矩形エリア４２０ｎの４隅の座標を使用して、矩形エリア４２０ｎから当該重複領域を除いた残りの矩形エリア（以下、単に「当該残りの矩形エリア」と表記する）を規定する２次元座標を算出する。続いて、参照画像判定回路２２０は、メモリアクセス制御回路２１０に対して、当該残りの矩形エリアを規定する２次元座標を渡した上で、外部メモリ４００上の入力画像フレーム４１０の中から当該残りの矩形エリアに含まれる画素データを内部メモリ２４０に読み込むように指示する（図８の矢印Ａ２）。
【００５０】
続いて、メモリアクセス制御回路２１０は、当該残りの矩形エリアを規定する２次元座標から当該残りの矩形エリアに含まれる画素データを外部メモリ４００上の入力画像フレーム４１０から読み出すための一連のメモリ・アドレス指定情報を生成する。続いて、メモリアクセス制御回路２１０は、当該メモリ・アドレス指定情報に基づいてバス７００のクロックに同期して、ＤＭＡ（Direct Memory Access）機能により当該残りの矩形エリアに含まれる画素データを外部メモリ４００から読み出す（図７の矢印Ａ３）。最後に、メモリアクセス制御回路２１０は、当該読み出した画素データを内部メモリ２４０が備える画素データ格納用メモリ２４１−Ａ（図５）に格納する。
【００５１】
ただし、当該読み出した当該残りの矩形エリアに含まれる画素データは、隣接する矩形エリアとの間の重複領域に含まれる画素データを含んでいないため、矩形エリア４２０ｎ全体に含まれる全ての画素データが揃っていない。そこで、当該残りの矩形エリアのみならず矩形エリア４２０ｎ全体に含まれる全ての画素データを揃えてから、歪み補正処理回路２３０に矩形エリア４２０ｎの全ての画素データを渡して歪み補正処理をさせるために、以下において後述する矩形エリア合成処理が必要となる。
【００５２】
矩形エリア合成処理により得られた矩形エリア４２０ｎの全ての画素データを参照画像判定回路２２０が歪み補正処理回路２３０に渡すと、歪み補正処理回路２３０は、矩形エリア４２０ｎの歪み補正処理を行う。続いて、歪み補正処理回路２３０は、当該歪み補正処理の結果得られた画素データを、外部メモリ４００上の出力画像フレーム４３０に書き込むようにメモリアクセス制御回路２１０に指示する。最後に、当該指示を受けたメモリアクセス制御回路２１０は、当該歪み補正後の画素データを出力画像フレーム４３０内において矩形エリア４２０ｎに対応する出力画像ブロック４４０ｎの中に書き込むために、当該歪み補正後の画素データをバス７００を介して外部メモリ４００に転送する（図８の矢印Ａ４）。
【００５３】
次に、図９を参照しながら、矩形エリア合成処理について具体的に説明する。参照画像判定回路２２０の指示により、現在参照中の矩形エリア４２０ｎに関して外部メモリ４００から読み込んだ当該残りのエリアは、矩形エリア４２０ｎと隣接する矩形エリア４２０’との間の重複領域を欠いている。そのため、矩形エリア合成処理は、当該残りのエリアに含まれる画素データと当該重複領域に含まれる画素データをマージすることにより、現在参照中の矩形エリア４２０ｎ全体の画素データを内部メモリ２４０内の画素データ格納用メモリ２４１−Ａに準備する処理である。この矩形エリア合成処理により、歪み補正処理回路２３０は、現在参照中の矩形エリア４２０ｎ全体の画素データに対して歪み補正処理を実行できるようになる。
【００５４】
図９の左側には、前回の歪み補正処理のために外部メモリ４００から前回読み出された矩形エリア４２０ｎ−１が、内部メモリ２４０内の画素データ格納用メモリ２４１−Ｂ（図５のＲ＿ＳＲＡＭ（２））の中に格納されている様子が示されている。また、図９の右側には、今から歪み補正処理がされようとしている現在参照中の矩形エリア４２０ｎの画素データうち、矩形エリア４２０ｎ−１との重複領域を除く当該残りのエリアに含まれる画素データが、内部メモリ２４０内の画素データ格納用メモリ２４１−Ａ（図５のＲ＿ＳＲＡＭ（１））の中に格納されている。
【００５５】
矩形エリア合成処理を開始すると、参照画像判定回路２２０は、画素データ格納用メモリ２４１−Ｂ（図５のＲ＿ＳＲＡＭ（２））の中に格納されている矩形エリア４２０ｎ−１の画素データのうち、矩形エリア４２０ｎとの重複領域に含まれる画素データを画素データ格納用メモリ２４１−Ａ（図５のＲ＿ＳＲＡＭ（１））上にコピーする（図９の矢印ＣＰＹ）。続いて、参照画像判定回路２２０は、画素データ格納用メモリ２４１−Ａ（図５のＲ＿ＳＲＡＭ（１））上において、現在参照中の矩形エリア４２０ｎの当該残りのエリアに含まれる画素データに対して、当該コピーした当該重複領域の画素データをマージする。これにより、参照画像判定回路２２０は、画素データ格納用メモリ２４１−Ａ上において、現在参照中の矩形エリア４２０ｎ全体の画素データを準備し、矩形エリア４２０ｎ全体の画素データを歪み補正処理のために歪み補正処理回路２３０に渡すことが可能となる。
【００５６】
＜本実施の形態の動作の流れ＞
次に、図１０のフローチャートを参照しながら、本実施の形態に係る任意変形回路２００が画像フレーム単位で実行する歪み補正処理の動作の流れを説明する。まず最初に、画像処理装置１０内の制御プロセッサ１００は、入力インターフェース５００を介して一枚の画像フレームを外部メモリ４００上に読み込んで、入力画像フレーム４１０として外部メモリ４００上に記憶させる。続いて、制御プロセッサ１００は、任意変形回路２００に対して画像フレーム単位での歪み補正処理を開始するように指示するために、バス７００を介して任意変形回路２００に制御信号を送信する。
【００５７】
当該制御信号を制御プロセッサ１００から受け取った任意変形回路２００は、入力画像フレーム４１０内を領域分割している複数の入力画像エリア４２の各々にそれぞれ外接する複数の外接長方形を、図４を用いて例示した方法により求める。続いて、任意変形回路２００は、このようにして求めた複数の外接長方形を、入力画像フレーム４１０内の複数の矩形エリア４２０として外部メモリ４００上でそれぞれ記憶する。続いて、任意変形回路２００は、図３に示す入力画像フレーム４１０内に含まれる全ての矩形エリア４２０−１〜矩形エリア４２０−ＭＮの各々について、矩形エリア毎の歪み補正処理を順番に実行する。具体的には、任意変形回路２００は、矩形エリア４２０−１から始まって矩形エリア４２０−ＭＮに至るまで、各矩形エリアを一つずつ順番に参照してゆく。その過程において、図１０のフローチャートに示す矩形エリア毎の歪み補正処理を現在参照中の矩形エリア４２０について実行する。その結果、任意変形回路２００は、入力画像フレーム４１０内に含まれる矩形エリアの個数分だけを図１０のフローチャートに示す処理を繰り返し実行する。
【００５８】
任意変形回路２００が、図３に示す入力画像フレーム４１０全体の歪み補正処理を開始すると、入力画像フレーム４１０内の複数の矩形エリア４２０の各々について、図１０のフローチャートのステップＳ１から始まる一連の処理を、任意変形回路２００内の参照画像判定回路２２が以下のとおりに実行する。図１０のフローチャートは、まずステップＳ１から始まり、ステップＳ１において、参照画像判定回路２２０は、入力画像フレーム４１０内において次に歪み補正処理の対象とすべき矩形エリアを現在参照中の矩形エリア４２０ｎとして選択する。続いて、処理はステップＳ２に進み、参照画像判定回路２２０は、現在参照中の矩形エリア４２０ｎが入力画像フレーム４１０内において最初の矩形エリア４２０−１であるか否かを判定する。現在参照中の矩形エリア４２０ｎが入力画像フレーム４１０内において最初の矩形エリア４２０−１であるならば（ステップＳ２の判定結果がＹＥＳ）、図１０のフローチャートの処理はステップＳ７に進み、そうでなければ（ステップＳ２の判定結果がＮＯ）、処理はステップＳ３に進む。
【００５９】
ステップＳ３において、参照画像判定回路２２０は、現在参照中の矩形エリア４２０ｎについてエリア座標パラメータを外部メモリ４００上のパラメータ格納領域４５０から内部メモリ２４０に読み込むように、メモリアクセス制御回路２１０に指示する。当該指示を受けたメモリアクセス制御回路２１０は、外部メモリ４００上のパラメータ格納領域４５０からバス７００を介して現在参照中の矩形エリア４２０ｎについてのエリア座標パラメータを読み出し、内部メモリ２４０内のパラメータ格納用メモリ２４２−Ａに保存する。続いて、ステップＳ４において、参照画像判定回路２２０は、以前の歪み補正処理のために前回までに参照した矩形エリアａ〜矩形エリアｎ−１の四隅の頂点を規定する２次元座標データを内部メモリ２４０内のパラメータ格納用メモリ２４２−Ｂから取得する。
【００６０】
続いて、図１０のフローチャートの処理はステップＳ５に進み、ステップＳ５においては、参照画像判定回路２２０は、図８を用いて上述した参照画像判定処理を実行する。ステップＳ５において実行される参照画像判定処理は、後述するサブステップＳ５１乃至サブステップＳ５４を参照画像判定回路２２０が順番に実行してゆくことによって実現される。
【００６１】
まず、サブステップＳ５１において、以前の歪み補正処理のために前回までに参照した矩形エリアａ〜矩形エリアｎ−１の中から現在参照中の矩形エリア４２０ｎと重複する矩形エリア４２０ｊ乃至矩形エリア４２０ｋを一つずつ識別する。続いて、サブステップＳ５２において、現在参照中の矩形エリア４２０ｎとステップ５１で識別された一つ以上の矩形エリア４２０ｊ乃至矩形エリア４２０ｋとの間の重複領域の座標データを幾何学的論理積により算出する。当該重複領域の座標データとは、２つ以上の矩形エリア同士が重複することによって形成される重複領域の輪郭形状を頂点座標によって規定する２次元座標データである。
【００６２】
続いて、サブステップＳ５３において、幾何学的論理積により上記のとおり算出された重複領域の座標データと現在参照中の矩形エリア４２０ｎの座標データとから矩形エリア４２０ｎのうち重複領域を除いた残りのエリアの座標データを計算する。このとき、現在参照中の矩形エリア４２０ｎから重複領域を除いた残りのエリアとは、現在参照中の矩形エリア４２０ｎが他のいずれの矩形エリアとも重複していない領域である。また、当該残りのエリアの座標データとは、当該残りのエリアの輪郭形状を頂点座標によって規定する２次元座標データである。続いて、サブステップＳ５４において、矩形エリア４２０ｎから重複領域を除いた残りのエリアについてサブステップＳ５３で計算した座標データを使用して、当該残りのエリアに含まれる画素データを外部メモリ４００から読み出すようにメモリアクセス制御回路２１０に指示する。当該指示を受けたメモリアクセス制御回路２１０は、バス７００を介して、当該残りのエリアに含まれる画素データを外部メモリ４００上の入力画像フレーム４１０における矩形エリア４２０ｎに対応するメモリ・アドレス領域から読み出す。続いて、メモリアクセス制御回路２１０は、当該読み出した画素データを、内部メモリ２４０上の画素データ格納用メモリ２４１−Ａに保存する。
【００６３】
続いて、図１０のフローチャートの処理はステップＳ６に進み、ステップＳ６においては、参照画像判定回路２２０は、図９を用いて上述したエリア合成処理を実行する。ステップＳ６において実行されるエリア合成処理は、後述するサブステップＳ６１およびサブステップＳ６２を参照画像判定回路２２０が順番に実行することによって実現される。
【００６４】
まず、サブステップＳ６１において、現在参照中の矩形エリア４２０ｎと重複していると識別された一つ以上の矩形エリア４２０ｊ乃至４２０ｋの画像データを画素データ格納用メモリ２４１−Ｂから取得する。続いて、画素データ格納用メモリ２４１−Ｂから上記のように取得した画像データの中から現在参照中の矩形エリア４２０ｎと重複する重複領域の画素データを複製する。続いて、サブステップＳ６２において、現在参照中の矩形エリア４２０ｎから重複領域を除いた残りのエリアの画素データとサブステップ６１で上記のように複製された重複領域の画素データとをマージして矩形エリア４２０ｎ全体の画像データを作成する。最後に、当該作成した矩形エリア４２０ｎ全体の画像データを内部メモリ２４０の画素データ格納用メモリ２４１−Ａに格納する。
【００６５】
続いて、図１０のフローチャートの処理はステップＳ７に進む。ステップＳ７においては、参照画像判定回路２２０は、現在参照中の矩形エリア４２０ｎの全体を歪み補正処理回路２３０に渡し、矩形エリア４２０ｎの歪み補正処理を実行するように歪み補正処理回路２３０に指示する。続いて、ステップＳ８においては、歪み補正処理回路２３０は、現在参照中の矩形エリア４２０ｎを歪み補正処理して得られた画像データを外部メモリ４００に書き込むようにメモリアクセス制御回路２１０に指示する。当該指示を受けたメモリアクセス制御回路２１０は、当該歪み補正処理して得られた画像データを外部メモリ４００上の出力画像フレーム４３０内における該当する出力画像ブロック４４０ｎに書き込む。
【００６６】
続いて、図１０のフローチャートの処理はステップＳ９に進む。ステップＳ９においては、参照画像判定回路２２０は、画素データ格納用メモリ２４１−Ａ上において、現在参照中の矩形エリア４２０ｎの座標データと画素データを複製し、当該複製した座標データと画素データとを画素データ格納用メモリ２４１−Ｂに蓄積する。続いて、図１０のフローチャートの処理はステップＳ１０に進み、ステップＳ１０においては、任意変形回路２００は、後続の歪み補正処理のために次に参照すべき矩形エリア４２０ｎ＋１を新たに現在参照中の矩形エリアとして選択してフローチャート全体の処理を終える。
【００６７】
なお、本実施の形態に係る上記具体例においては、最初に、任意変形回路２００は、入力画像エリア４２について外接長方形を求め、矩形エリア４２０に変換する処理を、入力画像フレーム４１０内の全ての入力画像エリアについて一括して行う。その後に、任意変形回路２００は、矩形エリア４２０−１から矩形エリア４２０−ＭＮまでの参照画像判定処理を一エリアずつ順次行っている。しかしながら、本実施の形態に係る変形例においては、任意変形回路２００による画像フレーム単位の歪み補正処理を以下のように実施することも可能である。
【００６８】
任意変形回路２００は、入力画像フレーム４１０内の入力画像エリア４２−１から入力画像エリア４２−ＭＮまでの各エリアを一エリアずつ順次参照してゆく過程において、現在参照中の入力画像エリア４２ｎを外部メモリ４００から内部メモリ２４０に読み込む。続いて、任意変形回路２００は、現在参照中の入力画像エリア４２ｎの外接長方形を求め、矩形エリア４２０ｎに変換する。最後に、任意変形回路２００は、以前に歪み補正処理を行った矩形エリアのうち、矩形エリア４２０ｎと重複する一つ以上の矩形エリア４２０‘を取得し、矩形エリア４２０ｎ」と矩形エリア４２０’との間で参照画像判定処理を行う。従って、この変形例においては、現在参照中の入力画像エリア４２ｎが参照画像データとして選択され、入力画像フレーム４１０内における入力画像エリア４２ｎの主走査方向と副走査方向それぞれの最小座標値と最大座標値によって特定される外接長方形を現在参照中の矩形エリア４２０ｎとして入力画像フレーム４１０内から領域分割する。
【００６９】
以上のように、本実施の形態によれば、任意変形回路２００は、外部メモリ４００上の入力画像フレーム４１０内から複数の矩形エリア４２０を一つずつ順番に歪み補正する際に、以下のようにしてバス７００上での無駄なデータ転送と無駄なアクセス時間を省くことが出来る。すなわち、任意変形回路２００は、隣接する複数の矩形エリア４２０−１と４２０−２が互いに重複する重複領域Ａ内に含まれる画素データを外部メモリ４００から一回しか読み出さないようにすることが出来る。その結果、矩形エリア４２０−１と４２０−２が互いに重複する重複領域Ａ内に含まれる同じデータを入力画像フレーム４１０からバス７００を介して無駄に繰り返し読み出している従来方式よりもバス７００上でのデータ転送量とアクセス時間を節約することが可能となる。本実施の形態が奏する上記効果を、バス・クロックに関して図７に示したタイミング・チャートとの対比に基づいて、図１１に示すタイミング・チャートを参照しながら以下のとおりに説明する。
【００７０】
図１１は、入力画像フレーム内において隣接する矩形エリア同士の間の重複領域を外部メモリから一回だけ読み出すようにした場合のバス７００のクロックのタイミング・チャートである。図１１に示す区間６１乃至区間７１は、従来方式に関して図７に示したバス・クロックのタイミング・チャート上での画像データの転送区間と同様であり、区間６２と区間６３において、矩形エリア同士の間の重複領域Ａに含まれる同じ画素データが２回繰り返し転送されている様子を示している。同様に、図１１の区間６５と区間６６は、矩形エリア同士の間の重複領域Ｂに含まれる同じ画素データが２回繰り返し転送されている様子を示し、区間６８と区間６９もまた、重複領域Ｃに含まれる同じ画素データが２回繰り返し転送される様子を示す。これに対して、図１１に示す区間８１乃至区間８８は、本実施の形態に従い、隣接する複数の矩形エリア同士が互いに重複する重複領域内に含まれる画素データを外部メモリ４００から一回しか読み出さないようにした場合の画像データの転送区間を示す。図１１の下段に示すとおり、隣接する矩形エリア同士が重複する重複領域Ａ、重複領域Ｂおよび重複領域Ｃに含まれる画素データは、区間８２、８４、８６においてそれぞれ一回だけ転送されている。
【００７１】
＜幾何学的論理積による重複領域の座標データの計算＞
以下、本実施の形態に係る任意変形回路２００が実行する一連の処理のうち、矩形エリア同士が重複する重複領域の輪郭形状を頂点の座標により規定する座標データを幾何学的論理積の演算に基づいて算出する処理を図１２乃至図１５を用いて説明する。以下に述べる例は、説明を簡単にするために、直前に歪み補正処理を終えた矩形エリア４２０−Ｎのみが現在参照中の矩形エリア４２０−Ｎ＋１と重複していると仮定する。
【００７２】
まず、図１２を参照すると、直前に歪み補正処理を終えた矩形エリア４２０−Ｎの四隅の頂点のうち、対角線方向に向かい合う２つの頂点のＸＹ座標が（Ｘｍｉｎ，Ｙｍｉｎ）および（Ｘｍａｘ，Ｙｍａｘ）と表される様子が示されている。また、図１２を参照すると、台形形状の入力画像エリア４２−Ｎ＋１に外接する外接長方形を求めることにより、現在参照中の矩形エリア４２０−Ｎ＋１が得られる様子が示されている。このとき、入力画像エリア４２−Ｎ＋１の台形形状を規定する４つの頂点のＸＹ座標が（Ｘ’１，Ｙ’１）、（Ｘ’２，Ｙ’２）、（Ｘ’３，Ｙ’３）および（Ｘ’４，Ｙ’４）であることが図１２に示されている。図４を用いて例示した方法に従うならば、ＸＹ座標（Ｘ’１，Ｙ’１）、（Ｘ’２，Ｙ’２）、（Ｘ’３，Ｙ’３）および（Ｘ’４，Ｙ’４）の中で、Ｘ方向の最小座標と最大座標を求めると、それぞれ、Ｘ’ｍｉｎ＝Ｘ’３＝Ｘ’１およびＸ’ｍａｘ＝Ｘ’２＝Ｘ’４となる。また、ＸＹ座標（Ｘ’１，Ｙ’１）、（Ｘ’２，Ｙ’２）、（Ｘ’３，Ｙ’３）および（Ｘ’４，Ｙ’４）の中で、Ｙ方向の最小座標と最大座標を求めると、それぞれ、Ｙ’ｍｉｎ＝Ｙ’２およびＹ’ｍａｘ＝Ｙ’３＝Ｙ’４となる。その結果、台形形状の入力画像エリア４２−Ｎ＋１に外接する現在参照中の矩形エリア４２０−Ｎ＋１の４つの頂点のうち、対角線方向に向かいあう２つの頂点のＸＹ座標が（Ｘ’ｍｉｎ，Ｙ’ｍｉｎ）および（Ｘ’ｍａｘ，Ｙ’ｍａｘ）と得られる。
【００７３】
従って、直前に歪み補正処理を終えた矩形エリア４２０−Ｎと現在参照中の矩形エリア４２０−Ｎ＋１とが重複する重複領域Ａを計算する方法は以下のとおりとなる。図１２において、矩形エリア４２０−Ｎと矩形エリア４２０−Ｎ＋１とが重複する重複領域Ａは長方形形状である。図１２において、重複領域Ａを規定する長方形において対角線方向に向かいあう２つの頂点のＸＹ座標は、以下のようにして得られる。矩形エリア４２０−ＮのＸ軸方向の最大値がＸ’ｍｉｎであり、矩形エリア４２０−Ｎ＋１のＸ軸方向の最小値がＸｍａｘであり、しかも、Ｘｍａｘ＞Ｘ’ｍｉｎである。従って、重複領域Ａを規定する長方形領域のＸ軸方向の最小値がＸｍａｘとなり、最大値がＸ’ｍｉｎとなる。同様に、矩形エリア４２０−ＮのＸ軸方向の最小値がＹ’ｍｉｎであり、矩形エリア４２０−Ｎ＋１のＸ軸方向の最大値がＹｍａｘであり、しかも、Ｙｍａｘ＜Ｙ’ｍｉｎである。従って、重複領域Ａを規定する長方形領域のＹ軸方向の最小値がＹ’ｍｉｎとなり、最大値がＹｍａｘとなる。以上より、重複領域Ａを規定する長方形領域において対角線方向に向かいあう２つの頂点のＸＹ座標は、（Ｘ’ｍｉｎ，Ｙ’ｍｉｎ）および（Ｘｍａｘ，Ｙｍａｘ）となる。
【００７４】
また、Ｘ軸は、画像フレームの主走査方向（水平走査方向）に沿っており、Ｙ軸は、画像フレームの副走査方向（垂直走査方向）に沿っている。従って、入力画像フレーム４１０内において、互いに重複する２つの矩形エリア４２０−Ｎおよび４２０−Ｎ＋１、矩形エリア間の重複領域Ａおよびフレーム走査方向との間の関係を示すと図１３のとおりとなる。２つの矩形エリア４２０−Ｎおよび４２０−Ｎ＋１の両者間における重複状態について、３種類のバリエーションを示すと図１４のとおりとなる。２つの矩形エリア４２０−Ｎおよび４２０−Ｎ＋１の両者間における重複状態について図１４に示した３種類のバリエーションに応じて定まる重複領域形態の３種類のバリエーションを示すと図１５のとおりとなる。
【００７５】
以上のように、本実施の形態は、レンズ収差に起因する画像歪みを補正する画像処理システムにおいて実施することにより、外部メモリ４００上の画像データのアクセスに必要なバス帯域幅や動作クロック数を節約することが可能となる。しかしながら、本実施の形態は、出力画像フレーム４３０上において矩形領域分割された各エリアを２次元領域変換により入力画像フレーム４１０上へと逆方向に写像した場合に、逆方向写像後の隣接エリア同士が部分的に重複する画像処理システムであれば、どのような画像処理システムに対しても適用可能であることが当業者であれば理解できよう。
【００７６】
＜本実施の形態の効果＞
本実施の形態によれば、任意変形回路２００は、外部メモリ４００上の入力画像フレーム４１０内から複数の矩形エリア４２０を一つずつ順番に歪み補正する際に、以下のようにしてバス７００上での無駄なデータ転送と無駄なアクセス時間を省くことが出来る。すなわち、任意変形回路２００は、隣接する複数の矩形エリア４２０−１と４２０−２が互いに重複する重複領域Ａ内に含まれる画素データを外部メモリ４００から一回しか読み出さないようにすることが出来る。その結果、矩形エリア４２０−１と４２０−２が互いに重複する重複領域Ａ内に含まれる同じデータを入力画像フレーム４１０からバス７００を介して無駄に繰り返し読み出している従来方式よりもバス７００上でのデータ転送量とアクセス時間を節約することが可能となる。
【００７７】
また、任意変形回路２００は、入力画像フレーム４１０を撮像した撮像装置から読み込んだレンズ・パラメータに基づいて、入力画像エリア４２の各々を個々の矩形エリア４２０に変換し、個々の矩形エリア４２０の座標データを算出する動作をさらに実行する。その上で、任意変形回路２００は、当該算出した座標データに基づく幾何学的演算として当該幾何学的論理積を実行する。その際、当該レンズ・パラメータは、入力画像フレーム４１０を撮像するための光学系に関する光学条件を記述するパラメータである。従って、本実施の形態によれば、入力画像フレーム４１０を撮像するための光学系に関する光学条件に応じて入力画像フレーム４１０の複数のエリアへの領域分割を適応的に実行することが可能となる。その上で、本実施の形態は、入力画像フレーム４１０を領域分割するエリア同士の間の重複状態に応じて、エリア間の重複領域の検出と検出された重複領域のバス７００上での反復転送の回避を実現することが出来る。
【００７８】
また、任意変形回路２００は、入力画像フレーム４１０内における現在参照中の入力画像エリア４２ｎの主走査方向と副走査方向それぞれの最小座標値と最大座標値によって特定される外接長方形を現在参照中の矩形エリア４２０ｎとして入力画像フレーム４１０内から領域分割する。従って、本実施の形態によれば、ＤＤＲ  ＤＲＡＭ等として実装された外部メモリ４００上で各エリアをアクセスする際のメモリ・アドレス指定を簡単化し、データ処理やデータ・アクセスの効率性を向上させることが出来る。
【００７９】
［第２の実施形態］
以下、本発明に係る画像処理装置の他の実施形態について説明する。なお、上記実施形態と同様の点についての説明は適宜省略する。
【００８０】
第１の実施形態では、任意変形回路２００は、参照画像データの幾何学的論理積により重複領域を算出し、重複領域内に含まれる同じデータが、バス７００を介して繰り返し読み出されることを防止することで、参照画像データのバス帯域を削減する例を説明した。
【００８１】
ここで、参照画像データのバス帯域を削減するために、外部メモリ４００から読み出す参照画像データの幾何学的論理和（以下、単に論理和ともいう）を算出することが考えられる。
【００８２】
具体的には、外部メモリ４００の出力画像フレーム４３０にＮ番目の領域の出力画像ブロック４４０を生成する際に、任意変形回路２００は、外部メモリ４００の入力画像フレーム４１０にある画像データ（矩形エリア４２０）を参照し、参照画像データ（矩形エリア４２０の画素データ）を、画素データ格納用メモリ２４１に一時記憶する。
【００８３】
このとき、任意変形回路２００は、画素データ格納用メモリ２４１に格納可能な範囲で、Ｍ個の隣あう領域の参照画像データ（Ｎ〜Ｍ番目の参照画像データ）の論理和を取ることで、Ｎ番目〜Ｎ＋Ｍ番目までの出力画像ブロック４４０を形成するのに必要な参照画像データを一度に転送することが可能となる。そして、Ｎ番目からＮ＋Ｍ番目までの分割された出力画像ブロック４４０を生成するのに必要な参照画像データを一度に転送することで、Ｎ番目からＮ＋Ｍ番目までの分割された出力画像を一度に生成することが可能となる。
【００８４】
しかしながら、このようにＮ〜Ｎ＋Ｍ番目の参照画像データの論理和を取ることによる場合、重複部が少ない場合（詳細は後述する）には余計な転送が増えることとなり、参照画像データのバス帯域を削減できず、効率化を図ることができないという問題がある。
【００８５】
そこで、第２の実施形態に係る画像処理装置１０は、第１の実施形態において述べたように、Ｎ〜Ｎ＋Ｍ番目の参照画像データの論理積（重複領域）を算出するとともに、Ｎ〜Ｍ番目までの参照画像データの論理和を算出した際に、該論理和で示される領域における主走査方向と副走査方向それぞれの最小座標値と最大座標値によって特定される外接長方形において、幾何学的否定論理和（以下、単に否定論理和とも呼ぶ）で示される領域を算出し、該否定論理和で示される領域と、重複領域と、を比較し、比較結果に応じて異なる処理をするようにしている。以下に詳細を説明する。
【００８６】
図１４に示したように、直前に歪み補正処理を終えた矩形エリア４２０−Ｎと、現在参照中の矩形エリア４２０−Ｎ＋１の両者間における重複状態は、３種類のバリエーション（ａ）〜（ｃ）が存在する。（ａ）はＸ軸方向およびＹ軸方向の双方でいずれも重複しない領域（斜線部）を有している。（ｂ）はＹ軸方向では一致し、Ｘ軸方向で重複しない領域を有している。（ｃ）はＸ軸方向では一致し、Ｙ軸方向で重複しない領域を有している例を示している。なお、図１４（ａ）〜（ｃ）は一例であって、その他の全ての重複の組み合わせについても同様である。
【００８７】
次いで、図１４に示した３種類のバリエーションの重複状態について、論理和を取り、論理和を取った際の主走査方向と副走査方向の最大最小座標をもとに外接長方形を考えると、図１６（ａ）〜（ｃ）のとおりとなる。これにより、２つの参照画像データを１つの参照画像データとみなすことが可能となる。したがって、２つの隣り合う矩形エリア４２０を１回のデータ転送で出力可能となる。
【００８８】
図１６の例では、２つの矩形エリア４２０−Ｎ，４２０−Ｎ＋１について論理和を取るとともに、これに基づいて外接長方形を算出する例を説明したが、論理和の生成は、２エリアであることに限られるものではなく、画素データ格納用メモリ２４１に格納可能な範囲で、Ｍ個の隣あう領域の参照画像データ（Ｎ〜Ｎ＋Ｍ番目の参照画像データ）の論理和を取るものであればよい。したがって、Ｍエリア分の矩形エリアについての参照画像データを１回のデータ転送で出力可能である。
【００８９】
しかしながら、論理和を取る場合において、重複領域Ａが少ない場合には、外接長方形が大きくなるため転送量が増えることとなる。
【００９０】
図１３に示した矩形エリア４２０−Ｎおよび４２０−Ｎ＋１のように、２つの矩形エリア４２０からなる外接長方形は、図中の点線で示される領域となり、参照画像の参照画素数は、次式で示される。
（参照画素数）＝（Ｘ’ｍａｘ−Ｘｍｉｎ）×（Ｙ’ｍａｘ−Ｙｍｉｎ）
【００９１】
図１７は、図１３において、２つの矩形エリア４２０−Ｎ，４２０−Ｎ＋１からなる外接長方形において、この外接長方形において矩形エリア４２０−Ｎおよび矩形エリア４２０−Ｎ＋１のいずれにも含まれない２箇所の領域（以下、不要領域Ｄ１，Ｄ２と呼び、区別しない場合は、不要領域Ｄと呼ぶ）を示したものである。この不要領域Ｄは、外接長方形において、矩形エリア４２０−Ｎおよび矩形エリア４２０−Ｎ＋１の幾何学的否定論理和として示される。
【００９２】
不要領域Ｄは、参照画像データにおいて、Ｎ番目とＮ＋１番目の参照画像データにおいて、メモリアクセスの効率化のためにあわせて転送される領域であり、図１７の例では、不要領域Ｄ１は、４つの頂点（Ｘｍｉｎ，Ｙｍａｘ），（Ｘ’ｍｉｎ，Ｙｍａｘ），（Ｘｍｉｎ，Ｙ’ｍａｘ），（Ｘ’ｍｉｎ，Ｙ’ｍａｘ）により示され、不要領域Ｄ２は、４つの頂点（Ｘｍａｘ，Ｙｍｉｎ），（Ｘ’ｍａｘ，Ｙｍｉｎ），（Ｘｍａｘ，Ｙ’ｍｉｎ），（Ｘ’ｍａｘ，Ｙ’ｍｉｎ）により示される。
【００９３】
そして、本実施形態では、２つの矩形エリア４２０−Ｎ，４２０−Ｎ＋１の論理積で示される重複領域Ａと、不要領域Ｄのサイズを比較判断し、判断結果に応じた変形処理を実行する。
【００９４】
ここで、本実施形態では、図１４（ａ）に示すように、Ｘ軸方向およびＹ軸方向の双方でいずれも重複しない領域で不要領域Ｄの転送が発生する場合に、重複領域Ａと不要領域Ｄのサイズの比較判断を行う例を説明するが、これに限られるものではなく、図１４（ｂ）（ｃ）に示すように、Ｘ軸方向またはＹ軸方向の一方で不要領域Ｄの転送が発生する場合に同様の処理を行うものであってもよい。
【００９５】
比較の結果、重複領域Ａが不要領域Ｄ以上（または、不要領域Ｄを超える）の場合、論理和をとった２つの矩形エリア４２０からなる領域（外接長方形）を参照画像データとして１回のデータ転送で出力する。これに対し、重複領域Ａが不要領域Ｄ未満（または、不要領域Ｄ以下）の場合、外接長方形のサイズが大きくなるため、２つの矩形エリア４２０の参照画像データを個別にデータ転送する。これにより、参照画像データの転送量を減らすことが可能となっている。
【００９６】
また、すでに述べたように、画素データ格納用メモリ２４１に格納可能な範囲で、Ｍ個の隣あう領域の参照画像データ（Ｎ〜Ｍ番目の参照画像データ）の論理和を取るものであるため、重複領域Ａが不要領域Ｄ以上の場合には、次いで、Ｎ＋２番目からＭ番目までの参照画像データ（矩形エリア４２０−Ｎ＋２〜Ｍ）に対し、同様にサイズの比較判断を行う。
【００９７】
また、本実施形態では、重複領域Ａと不要領域Ｄのサイズをそのまま比較し大小関係で判断したが、重複領域Ａと不要領域Ｄのサイズの少なくとも一方に所定の係数を加減乗除した値を用いて比較を行うようにしてもよい。
【００９８】
以上説明した本実施形態に係る画像処理装置１０でのデータのやりとりについて、図１８および図１９を参照して説明する。本実施形態では、任意変形回路２００は、パラメータ補正回路２５０および参照画素数判定回路２６０を備え、外部メモリ４００には、論理和座標データ格納領域４６０が設けられている。
【００９９】
先ず、矢印Ａ１で示すように、パラメータ格納領域４５０から、矩形エリア毎の座標データを記述したエリア座標パラメータを読み出し、これをパラメータ補正回路２５０に転送する。パラメータ補正回路２５０内では、エリア座標パラメータに基づいて、新たな参照画像データの座標データを算出する。
【０１００】
パラメータ補正回路２５０において算出された参照画像データの座標データは、矢印Ａ２で示すように、参照画素数判定回路２６０に転送される。参照画素数判定回路２６０は、算出された座標データに基づいて、参照画像データの論理和を取り、参照画像データのサイズが画素データ格納用メモリ２４１に格納可能であるかを判定する。
【０１０１】
さらに、参照画素数判定回路２６０において、上述のように重複領域Ａと不要領域Ｄのサイズを判定し、重複領域Ａが大きい場合には、参照画像データのサイズが画素データ格納用メモリ２４１に格納可能な範囲で論理和を参照画素数判定回路２６０内で取り続け、格納不可になったとき、矢印Ａ３に示すように、１つ前の論理和を取った座標データを論理和座標データ格納領域４６０に転送する。
【０１０２】
論理和を取った座標データが論理和座標データ格納領域４６０に転送されると、論理和座標データ格納領域４６０にはＮ番目の領域からＮ＋Ｘ−１番目までの参照画像データが格納されている。そして図１９の矢印Ａ４で示すように、座標データを元に外部メモリ４００から参照画像データを読み出し、画素データ格納用メモリ２４１に転送する。
【０１０３】
以上説明した第２の実施形態に係る画像処理装置１０によれば、第１の実施形態と同様に、参照画像データの転送量を減らして、参照画像データのバス帯域を確保することが可能となる。
【０１０４】
尚、上述の各実施形態は本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。
【符号の説明】
【０１０５】
１０  画像処理装置
１００  制御プロセッサ
２００  任意変形回路
２１０  メモリアクセス制御回路
２２０  参照画像判定回路
２３０  歪み補正処理回路
２４０  内部メモリ
２４１  画素データ格納用メモリ
２４２  パラメータ格納用メモリ
２５０  パラメータ補正回路
２６０  参照画素数判定回路
３００  画像処理回路
４００  外部メモリ
４１０  入力画像フレーム
４２０  矩形エリア
４３０  出力画像フレーム
４４０  出力画像ブロック
４５０  パラメータ格納領域
４６０  論理和座標データ格納領域
５００  入力インターフェース
６００  出力インターフェース
７００  バス
【先行技術文献】
【特許文献】
【０１０６】
【特許文献１】特開２０１３−２２８８６６号公報
【特許文献２】特開２０１４−  ７８９２６号公報
【図１】
2017017672.tif 000003
【図２】
2017017672.tif 000004
【図３】
2017017672.tif 000005
【図４】
2017017672.tif 000006
【図５】
2017017672.tif 000007
【図８】
2017017672.tif 000008
【図１０】
2017017672.tif 000009
【図１２】
2017017672.tif 000010
【図１３】
2017017672.tif 000011
【図１８】
2017017672.tif 000012
【図１９】
2017017672.tif 000013
【図６】
2017017672.tif 000014
【図７】
2017017672.tif 000015
【図９】
2017017672.tif 000016
【図１１】
2017017672.tif 000017
【図１４】
2017017672.tif 000018
【図１５】
2017017672.tif 000019
【図１６】
2017017672.tif 000020
【図１７】
2017017672.tif 000021