(57)【要約】【課題】画像メモリに対して無駄なアクセスをできるだけ省略し、効率の良いアクセスを行うことができ、画像処理速度の向上を図る。【解決手段】ＳＩＭＤプロセッサを用いて画像データに対して走査ライン方向で画像回転処理を繰り返し行う画像処理装置において、画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する。【選択図】図６
2012059186.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサを用いて画像データに対して走査ライン方向で画像回転処理を繰り返し行う画像処理装置において、
画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する制御手段を備えたことを特徴とする画像処理装置。
【請求項２】
上記制御手段は、上記画像回転処理を実行するときに、上記回転角度に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行することを特徴とする請求項１記載の画像処理装置。
【請求項３】
上記制御手段は、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする請求項２記載の画像処理装置。
【請求項４】
上記制御手段は、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に画像回転処理を繰り返し行うことを特徴とする請求項１〜３のうちのいずれか１つに記載の画像処理装置。
【請求項５】
ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサを用いて画像データに対して走査ライン方向で歪み補正処理を繰り返し行う画像処理装置において、
画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する制御手段を備えたことを特徴とする画像処理装置。
【請求項６】
上記制御手段は、上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行することを特徴とする請求項５記載の画像処理装置。
【請求項７】
上記制御手段は、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする請求項６記載の画像処理装置。
【請求項８】
上記制御手段は、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理を繰り返し行うことを特徴とする請求項５〜７のうちのいずれか１つに記載の画像処理装置。
【請求項９】
ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサを用いて画像データに対して走査ライン方向で画像回転処理を繰り返し行う画像処理方法において、
画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する制御ステップを含むことを特徴とする画像処理方法。
【請求項１０】
上記制御ステップは、上記画像回転処理を実行するときに、上記回転角度に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行することを特徴とする請求項９記載の画像処理方法。
【請求項１１】
上記制御ステップは、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする請求項１０記載の画像処理方法。
【請求項１２】
上記制御ステップは、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に画像回転処理を繰り返し行うことを特徴とする請求項９〜１１のうちのいずれか１つに記載の画像処理方法。
【請求項１３】
ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プロセッサを用いて画像データに対して走査ライン方向で歪み補正処理を繰り返し行う画像処理方法において、
画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する制御ステップを含むことを特徴とする画像処理方法。
【請求項１４】
上記制御ステップは、上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行することを特徴とする請求項１３記載の画像処理方法。
【請求項１５】
上記制御ステップは、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする請求項１４記載の画像処理方法。
【請求項１６】
上記制御ステップは、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理を繰り返し行うことを特徴とする請求項１３〜１５のうちのいずれか１つに記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）命令を実行可能なプロセッサを用いて、画像回転処理や画像歪み補正処理などの画像変換処理などを実行する画像処理装置及び方法に関する。
【背景技術】
【０００２】
入力画像に対して回転や歪み補正などの所定の画像処理を実行する画像処理方法としては、例えば特許文献１〜５に記載の処理方法が用いられている。
【０００３】
例えば、特許文献１では、メモリ上に展開されている画像データに対し、主走査方向及び副走査方向に分割した矩形領域を設定するメモリ領域制御ユニットとその領域にアクセスするためのアドレス情報生成部を有し、その領域設定したものにアクセスしてデータを読み出し別メモリに転送するＤＭＡ制御部で構成された画像情報処理装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の画像情報処理装置では、主走査方向にＤＭＡを使用したバーストアクセスを行うものであり、副走査方向にアクセスする場合には無駄なアクセスを多数行わなければならず非常に効率が悪くなるという問題があった。
【０００５】
また、特許文献２では、並列処理を行うプロセッサで複数画素を同時に処理をする場合、１つのラインデータを並列処理するのに必要な画像データをすべてメモリに保持しなければならないという問題があった。
【０００６】
本発明の目的は以上の問題点を解決し、画像メモリに対して無駄なアクセスをできるだけ省略し、効率の良いアクセスを行うことができ、画像処理速度の向上を図ることができる画像処理装置及び方法を提供することにある。
【課題を解決するための手段】
【０００７】
第１の発明に係る画像処理装置は、ＳＩＭＤプロセッサを用いて画像データに対して走査ライン方向で画像回転処理を繰り返し行う画像処理装置において、
画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する制御手段を備えたことを特徴とする。
【０００８】
上記画像処理装置において、上記制御手段は、上記画像回転処理を実行するときに、上記回転角度に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行することを特徴とする。
【０００９】
また、上記画像処理装置において、上記制御手段は、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする。
【００１０】
さらに、上記画像処理装置において、上記制御手段は、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に画像回転処理を繰り返し行うことを特徴とする。
【００１１】
第２の発明に係る画像処理装置は、ＳＩＭＤプロセッサを用いて画像データに対して走査ライン方向で歪み補正処理を繰り返し行う画像処理装置において、
画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する制御手段を備えたことを特徴とする。
【００１２】
上記画像処理装置において、上記制御手段は、上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行することを特徴とする。
【００１３】
また、上記画像処理装置において、上記制御手段は、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする。
【００１４】
さらに、上記画像処理装置において、上記制御手段は、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理を繰り返し行うことを特徴とする。
【００１５】
第３の発明に係る画像処理方法は、ＳＩＭＤプロセッサを用いて画像データに対して走査ライン方向で画像回転処理を繰り返し行う画像処理方法において、
画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する制御ステップを含むことを特徴とする。
【００１６】
上記画像処理方法において、上記制御ステップは、上記画像回転処理を実行するときに、上記回転角度に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行することを特徴とする。
【００１７】
また、上記画像処理方法において、上記制御ステップは、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする。
【００１８】
さらに、上記画像処理方法において、上記制御ステップは、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に画像回転処理を繰り返し行うことを特徴とする。
【００１９】
第４の発明に係る画像処理方法は、ＳＩＭＤプロセッサを用いて画像データに対して走査ライン方向で歪み補正処理を繰り返し行う画像処理方法において、
画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する制御ステップを含むことを特徴とする。
【００２０】
上記画像処理方法において、上記制御ステップは、上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行することを特徴とする。
【００２１】
また、上記画像処理方法において、上記制御ステップは、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新することを特徴とする。
【００２２】
さらに、上記画像処理方法において、上記制御ステップは、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理を繰り返し行うことを特徴とする。
【発明の効果】
【００２３】
本発明に係る画像処理装置及び方法によれば、画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する。従って、対象とする画像回転処理を実現する場合、不要な画像データを保持しないため少ないメモリ領域で処理が可能となる。
【００２４】
また、本発明に係る画像処理装置及び方法によれば、画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する。従って、対象とする画像回転処理を実現する場合、不要な画像データを保持しないため少ないメモリ領域で処理が可能となる。
【００２５】
さらに、本発明に係る画像処理装置及び方法によれば、上記画像回転処理又は上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して上記処理を実行する。従って、対象とする処理を実現する場合、外部メモリからの読み出し回数が削減され処理速度を向上できる。
【００２６】
またさらに、本発明に係る画像処理装置及び方法によれば、上記処理において、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新する。従って、必要な領域全体の画像データを毎回読み込みすることがなくなるために、データの転送（入れ替え）処理回数が削減され処理速度を向上できる。
【００２７】
またさらに、本発明に係る画像処理装置及び方法によれば、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理又は画像回転処理を繰り返し行う。従って、対象とする処理を副走査方向に処理することで、主走査方向に処理する場合と比べ、メモリの使用量を削減することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態に係る、例えばデジタル複写機である画像処理装置の構成を示すブロック図である。
【図２】本実施形態において画像処理として画像処理がなされる画像の構成を示す説明図である。
【図３】図２のＳＩＭＤ単位を示す説明図である。
【図４】図２に示された画像と図３のＳＩＭＤ単位との関係を示す説明図である。
【図５】図１の画像処理装置のＳＩＭＤ処理部５により実行される画像処理を示すフローチャートである。
【図６】第１の実施形態に係る、画像に対して回転角度θで回転する回転処理において必要なメモリの構成を示す図である。
【図７】比較例に係るＳＩＭＤ単位で外部メモリ１１に格納保持する場合を示す図である。
【図８】第１の実施形態に係る外部メモリ１１から画像処理に必要なＳＩＭＤデータを内部メモリ６に読み出す方法（４ラインで３ＳＩＭＤまで）を示す図である。
【図９】従来例に係る内部メモリ６におけるＳＩＭＤ単位でのデータ更新を示す図である。
【図１０】第１の実施形態に係る、内部メモリ６において最新のＳＩＭＤ単位データを最古のＳＩＭＤ単位データで上書きする方法を示す図である。
【図１１】従来例に係る主走査方向にＳＩＭＤ単位で画像処理を実行する方法を示す画像の図である。
【図１２】第１の実施形態に係る副走査方向にＳＩＭＤ単位で画像処理を実行する方法を示す画像の図である。
【図１３】第２の実施形態に係る画像処理装置としてのＳＩＭＤ型マイクロプロセッサのブロック図である。
【図１４】図１に示した画像の一部分の拡大図である。
【図１５】第２の実施形態においてＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。
【図１６】変換位置情報を予め算出してメモリ等に保存した場合の図１５の詳細フローチャートである。
【図１７】変換位置情報をＰＥ命令とＧＰ命令の切り替え判断時に画素毎に算出した場合の図１５の詳細フローチャートである。
【図１８】第３の実施形態に係るＳＩＭＤ単位で処理を実行する場合の説明図である。
【図１９】変換位置情報をＳＩＭＤ単位で予め算出してメモリ等に保存した場合のＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。
【図２０】変換位置情報をＰＥ命令とＧＰ命令の切り替え判断時にＳＩＭＤ単位毎に算出した場合のＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。
【図２１】第４の実施形態に係る、ＧＰ命令を用いて歪み補正処理を行った場合の例を示す説明図である。
【図２２】第４の実施形態に係る、ＰＥ命令を用いて歪み補正処理を行った場合の例を示す説明図である。
【図２３】第４の実施形態に係る、ＧＰ命令とＰＥ命令の組み合わせパターンを示したフローチャートである。
【図２４】従来例に係るレンズ歪みを持った画像とその補正例を示す説明図である。
【発明を実施するための形態】
【００２９】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。以下の実施形態においては、画像回転処理や画像歪み補正処理などの画像処理について以下に説明する。
【００３０】
第１の実施形態．
図１は本発明の第１の実施形態に係る、例えばデジタル複写機である画像処理装置の構成を示すブロック図である。
【００３１】
図１において、当該画像処理装置は、所定のプログラムに従って、この装置の全体を制御するＣＰＵ１と、そのプログラムや固定データなどが書き込まれているＲＯＭ２と、原稿上の画像を読み取る画像読み取り部３と、画像読み取り部３を制御して読み取られた画像データを取り込む読み取りインタフェース（Ｉ／Ｆ）部４と、取り込まれた画像データに対して後述するＳＩＭＤ単位の処理を施すＳＩＭＤ処理部５と、読み取りＩ／Ｆ部４又はＳＩＭＤ処理部５から出力された画像データなど各種データを記憶する例えばＲＡＭにてなる内部メモリ６と、内部メモリ６に取り込まれた画像データを用いて記録紙上に画像を形成する画像形成部７と、画像形成部７を制御する画像形成インタフェース（Ｉ／Ｆ）部８と、表示装置や操作キーを有して利用者が装置側に指示情報を入力したりする操作部９と、例えばＤＤＲ−ＲＡＭなどにてなる外部メモリ１１に接続される外部メモリインターフェース１０などとを備えて構成される。本発明に係る各実施形態においては、所定の画像処理を効率的に行うための、内部メモリ６と外部メモリ１１との間のデータ転送方法に関する。
【００３２】
なお、ＳＩＭＤ処理部５は専用のプロセッサ及びバッファメモリなどを有し、例えば傾斜角度を算出する処理や、形状補正処理などを実行する。以下の実施形態において、ＳＩＭＤ処理部５によりＳＩＭＤ単位で画像処理を実行しているが、本発明はこれに限らず、複数行の単位でＣＰＵ１により画像処理を実行してもよい。
【００３３】
図２は本実施形態において画像処理として、画像回転処理や画像歪み補正処理がなされる画像の構成を示す説明図である。図２において、主走査方向に２１１２画素、副走査方向にＮラインの画像を示している。主走査方向の２１１２画素は３５２画素×６を意味し、これはＳＩＭＤ単位６つ分を示している。
【００３４】
図３は図２のＳＩＭＤ単位を示す説明図である。ＳＩＭＤ単位とは、後述するＳＩＭＤ型マイクロプロセッサにおいてＰＥ命令実行時に一度に処理可能な画素数（データ数）を意味し、本実施形態に用いるＳＩＭＤ型マイクロプロセッサでは図３に示すように３５２画素を一度に処理可能である。
【００３５】
図４は図２に示された画像と図３のＳＩＭＤ単位との関係を示す説明図である。図４に示すように１ラインをＳＩＭＤ単位で処理を行うことで、１画素単位で処理を行うよりも処理回数を削減することができ、一定時間内ではより多くの画素の処理を行うことができる。
【００３６】
図５は図１の画像処理装置のＳＩＭＤ処理部５により実行される画像処理を示すフローチャートである。図５の処理では、画像回転処理を実行する場合について以下説明する。
【００３７】
図１の操作部９内のコピースタートキーが押下され、原稿読み取りが始まると、ＳＩＭＤ処理部５のプロセッサはまず、フレーム単位処理を行う（ステップＳ１）。例えばこの時点ではこれから処理しようとするラインの番号として「１」をＳＩＭＤ処理部５内メモリの所定アドレスＡに設定する。
【００３８】
次いで、ＳＩＭＤ処理部５のプロセッサはライン単位処理を行う（ステップＳ２）。例えばこの時点ではこれから処理しようとするＳＩＭＤの番号として「１」をＳＩＭＤ処理部５内メモリの所定アドレスＢに設定する。そして、読み取りＩ／Ｆ部４を介してＳＩＭＤ処理部５内のバッファメモリに第１ラインの画像データが入ってくると、ＳＩＭＤ１のＳＩＭＤ単位処理が行われる（ステップＳ３）。専用回路を用いて例えば３５２個の画素データを並行して所定の値と比較する処理を行うわけである。また、その結果、所定の画素位置（例えば３画素目）の画素データの値が所定の値を超えていたならば変化点と判定し、所定アドレスＡに設定されているライン番号をそのときのＳＩＭＤ番号に対応付けてＳＩＭＤ処理部５内メモリの所定アドレスＣに記録する。但し、同一ＳＩＭＤですでに記録が行われているならば所定の値を超えていても変化点ではないので記録しない。
【００３９】
こうして、そのＳＩＭＤの処理が終了すると（ステップＳ４でＹＥＳ）、ＳＩＭＤ処理部５のプロセッサはＳＩＭＤ処理部５内メモリの所定アドレスＧに設定されている１ラインのＳＩＭＤ数と所定アドレスＢに設定されているＳＩＭＤ番号を比較することによりそのときのラインの処理がすべて終了したか否かを判定する（ステップＳ５）。そして、終了していないと判定されたならば（ステップＳ５でＮＯ）、ステップＳ２に戻り、ＳＩＭＤ番号の値を１だけ増やし（ステップＳ２）、次のステップＳ３へ進む。
【００４０】
このような繰り返しの後、そのときのラインのすべてのＳＩＭＤ単位処理が終了したと判定されたならば（ステップＳ５でＹＥＳ）、ＳＩＭＤ処理部５はＳＩＭＤ処理部５内メモリの所定アドレスＨに設定されている１フレームのライン数と所定アドレスＡに設定されているライン番号を比較することにより、フレーム単位処理が終了か否かを判定する（ステップＳ６）。そして、終了でないならば（ステップＳ６でＮＯ）、ステップＳ１に戻り、ライン番号の値を１だけ増やして（ステップＳ１）、以降の処理を繰り返す。こうして、フレーム単位処理が終了したならば（ステップＳ６でＹＥＳ）、ＳＩＭＤ処理部５のプロセッサは所定の画像回転処理を実行する（ステップＳ７）。
【００４１】
以上説明したように、ＳＩＭＤプロセッサを用いて走査ライン方向に繰り返し処理を行い、ここで、複数のラインを副走査方向に配置し、１つのフレームを構成し、ＳＩＭＤ単位で画像処理を実行することで、画素単位で処理に比べてＳＩＭＤ処理では、主走査方向の実行回数を削減することができ一定時間内で多くの画像処理を実行することができる。
【００４２】
次いで、図６を参照して画像に対して回転角度θで回転する画像回転処理について以下に説明する。図６は本発明の第１の実施形態に係る、画像に対して回転角度θで回転する画像回転処理において必要なメモリの構成を示す図である。なお、図６以降の図面において、第１番目のライン上の第１のＳＩＭＤの画像データを「１Ｌ１Ｓ」と図示し、明細書においても画像データ「１Ｌ１Ｓ」と表示する。
【００４３】
画像回転処理を実行する場合、回転対象のエリアを図１の内部メモリ６に保持し処理しなければならない。図６では、主走査サイズ（６ＳＩＭＤで構成）、回転角度θ度の場合を示す。図１の内部メモリ６での保持メモリ量は、回転対象の全エリアを保持する必要がなく回転に必要なエリア（全エリアの一部）を保持することでメモリ容量を削減することが可能である。必要なエリア内のデータ保持メモリ量は、例えば次式（１）を用いて、主走査サイズと回転角度より必要な量（ｔａｎθ）を計算することにより、必要な副走査ライン数が算出される。
【００４４】
［数１］
必要な副走査ライン数
＝（１画素の主走査サイズ）×（主走査方向の画素数）×ｔａｎ（θ）／（１画素の副走査サイズ）
＝（画像の主走査方向のサイズ）×ｔａｎ（θ）／（１画素の副走査サイズ）
（１）
【００４５】
図６の一例では、当該画像回転処理のためには、画像の主走査方向のサイズ×４ライン（６ＳＩＭＤ×４ライン）が最低必要なメモリ量である。
【００４６】
以上説明したように、図６の処理方法によれば、対象とする画像回転処理を実現する場合、不要な画像データを保持しないため少ないメモリ領域で画像処理が可能となるという特有の作用効果を有する。ここで、図６の処理方法については、詳細後述する第２乃至第４の実施形態に係る歪み補正処理においても適用できる。すなわち、歪み補正するための各データの変換位置情報としてのオフセット値（補正値又は補正位置）に基づいて、当該オフセット値に基づいて歪み補正処理を実行するために必要であるＳＩＭＤ単位の必要なライン数（当該オフセット値を含むすべてのライン数をいう。）を算出して、当該ライン数に対応する画像データを内部メモリ６に保持して歪み補正処理を実行してもよい。
【００４７】
図７は比較例に係るＳＩＭＤ単位で外部メモリ１１に格納保持する場合を示す図である。画像回転処理を実行する場合、回転対象のエリアのデータを内部メモリ６に保持し処理しなければならない。図７では、画像データをＳＩＭＤ単位でかつ副走査１ライン毎に外部メモリ１１に保存していることを示す。画像データにおいて、画像の主走査方向のサイズが大きく、回転角度が大きい場合には、保持すべきデータ量が多くなるために、内部メモリ６に保存できない場合には、外部メモリ１１に保存する場合が想定される。
【００４８】
図８は第１の実施形態に係る外部メモリ１１から画像処理に必要なＳＩＭＤデータを内部メモリ６に読み出す方法（４ラインで３ＳＩＭＤまで）を示す図である。図８では、先に計算された最低必要なメモリ量に基づいて、ＳＩＭＤ単位でのアクセスを一定のずらし量（例えば、副走査方向の１ライン分に対応するシフト量）を基にして外部メモリ１１より必要最低限データにアクセスする（第３のＳＩＭＤ目まで４ライン分を保持する）ことを示している。当該画像処理は、ＳＩＭＤ単位処理のために、処理に必要な最低メモリ量は１ＳＩＭＤ×４ライン分のメモリ量が必要である。必要な同一の１ＳＩＭＤの複数ライン分の画像データを外部メモリ１１から一定のオフセットを伴って参照しながら読み出すことを特徴としている。
【００４９】
図８において、ＣＰＵ１のアドレスポインタにより指定される外部メモリ１１のアドレスは、図８に示すように「Ａ」→「Ｂ」→「Ｃ」と移動すること（図８の例では、６ＳＩＭＤ＝６アドレスのずらし量（又はシフト量）を加算すること）で同一のＳＩＭＤの４ラインを参照して読み出して内部メモリ６に格納保持した後、次のＳＩＭＤ参照のために「Ｄ」を参照アドレスを設定し、この参照方法を繰り返し実行する。さらに、外部メモリ１１のアドレスを図８に示すように「Ｄ」→「Ｅ」→「Ｆ」→「Ｇ」→「Ｈ」→…と移動することを特徴としている。
【００５０】
以上説明したように、図８の処理方法によれば、所定の画像データに対して対象とする画像回転処理を実現する場合、外部メモリ１１からの読み出し回数が削減され処理速度を向上できるという特有の作用効果を有する。ここで、図８の処理方法については、詳細後述する第２乃至第４の実施形態に係る歪み補正処理においても適用できる。すなわち、歪み補正処理を実行するときに、歪み補正するための各データの変換位置情報としてのオフセット値（補正値又は補正位置）に基づいて算出した一定のずらし量（又はシフト量）だけアドレスをずらしながら外部メモリ１１にアクセスして対象の画像データを読み出して取得して内部メモリ６に転送してもよい。
【００５１】
図９は従来例に係る内部メモリ６におけるＳＩＭＤ単位でのデータ更新を示す図である。図９においては、４ライン分のＳＩＭＤ単位データを保持して、それら全部を更新する処理例を示している。すなわち、図９では、同一のＳＩＭＤ単位で画像データを、全ラインの画像データを更新しながら所定の画像処理を実行する。
【００５２】
図１０は第１の実施形態に係る、内部メモリ６において最新のＳＩＭＤ単位データを最古のＳＩＭＤ単位データで上書きする方法を示す図である。すなわち、図１０は、中間データを保持し再利用する場合の保存方法を説明した図であって、ＳＩＭＤ単位に画像データを読み出して、書き込みを実行することで可能となる。
【００５３】
図１０の例では、内部メモリ６内の書き込みアドレスを以下のように決定して画像データをＳＩＭＤ単位で更新（上書き格納）することを特徴としている。図１０において、最古ＳＩＭＤの画像データ「１Ｌ１Ｓ」を読み出し、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする（図１０のＡ参照）。このように読み出すことで最古ラインデータは不要となる。次いで、次に最古のＳＩＭＤの画像データ「２Ｌ１Ｓ」を読み出し、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする。さらに、次に最古のＳＩＭＤの画像データ「３Ｌ１Ｓ」を読み出し、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする。またさらに、次に最古のＳＩＭＤの画像データ「４Ｌ１Ｓ」を読み出し、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする。ここで、内部メモリ６内の必要なライン数を参照完了したので、内部メモリ６の先頭アドレスに、書き込みアドレスを戻す（図１０のＢ参照）。さらに、最古のＳＩＭＤの画像データは読み込み済みのため不要になり、「１Ｌ１Ｓ」のアドレスであった最新ＳＩＭＤの画像データ「５Ｌ１Ｓ」を上書きして、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする。次いで、「２Ｌ１Ｓ」のアドレスであった最新ＳＩＭＤの画像データ「６Ｌ１Ｓ」を上書きして、当該読み出しアドレスに１を加算したアドレスを次の書き込みアドレスとする（図１０のＣ参照）。この処理を繰り返し実行することで、画像データの転送（入れ替え）処理回数が削減される。
【００５４】
以上説明したように、図１０の処理方法によれば、必要な領域全体の画像データを毎回読み出すことがなくなるために、画像データの転送（入れ替え）処理回数が削減され処理速度を向上できるという特有の作用効果を有する。図１０の処理方法については、詳細後述する第２乃至第４の実施形態に係る歪み補正処理においても適用できる。すなわち、歪み補正処理を実行するときに、図８の処理方法で取得した処理対象のＳＩＭＤデータを毎回全て更新せずに、更新時に最古ＳＩＭＤデータ上に最新ＳＩＭＤデータを上書きすることで中間ＳＩＭＤデータを保持しデータを再利用して最小限のＳＩＭＤデータの更新で処理してもよい。
【００５５】
図１１は従来例に係る主走査方向にＳＩＭＤ単位で画像処理を実行する方法を示す画像の図である。すなわち、図１１は、１フレームにおける処理単位の処理方向を説明したものであって、必要ライン数を４ライン（１ＳＩＭＤ×４ラインを１ブロックの画像データとし、１ラインは６ＳＩＭＤの画像データで構成する）として図示している。図１１の例では、１つのブロックの画像データを主走査方向に順次処理してゆき、１ラインの終端のＳＩＭＤの画像データまで処理が完了した場合、次のラインへ移行する例を示している。
【００５６】
図１２は第１の実施形態に係る副走査方向にＳＩＭＤ単位で画像処理を実行する方法を示す画像の図である。図１２の処理方法では、１つのブロックの画像データを副走査方向に順次処理してゆき、１フレームの最終ラインまで所定の画像処理が完了した場合、次のＳＩＭＤの画像データへ移行することを特徴としている。この処理方法によれば、対象とする画像回転処理を副走査方向に処理することで、画像データを主走査方向に処理する場合と比べ、メモリの使用量を削減することができるという特有の作用効果を有する。
【００５７】
図１２の処理方法については、詳細後述する第２乃至第４の実施形態に係る歪み補正処理においても適用できる。すなわち、歪み補正処理において、１つのブロックの画像データを副走査方向に順次処理してゆき、１フレームの最終ラインまで当該処理が完了した場合、次のＳＩＭＤの画像データへ移行するように処理してもよい。この処理方法によれば、対象とする歪み補正処理を副走査方向に処理することで、画像データを主走査方向に処理する場合と比べ、メモリの使用量を削減することができるという特有の作用効果を有する。
【００５８】
第２の実施形態．
図２４は従来例に係るレンズ歪みを持った画像とその補正例を示す説明図である。例えば、図２４に示すような歪みを持った画像を補正する場合では、画素の移動距離が近い場合（図２４の場合画像の中央）と遠い場合（図２４の場合画像の左右端）とで処理の内容を変えなければならないという問題があった。当該問題を解決するために、第２の実施形態以降の実施形態について以下に説明する。
【００５９】
図１３は第２の実施形態（以降の実施形態でも使用する）に係る画像処理装置としてのＳＩＭＤ型マイクロプロセッサのブロック図である。図１３において、ＳＩＭＤ型マイクロプロセッサは、グローバルプロセッサ３０と、プロセッサエレメントブロック４０とを備えて構成される。
【００６０】
グローバルプロセッサ３０は、図１３に示すように、グローバルプロセッサ３０にて実行するプログラム格納用のプログラムＲＡＭと演算データ格納用のデータＲＡＭが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ１５レジスタ、レジスタ退避及び復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）、同じくＩＲＱ（割り込み）時とＮＭＩ（マスク不可割り込み）時の分岐元アドレスを保持するＬＩ、ＬＮレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）が内蔵されている。これらのレジスタと図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用してグローバルプロセッサ命令（ＧＰ命令）の実行が行われる。プロセッサエレメント命令（ＰＥ命令）実行時は命令デコーダ、図示していないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、後述するレジスタファイルアレイ７０の制御と演算アレイ８０の制御を行う。即ち、ＧＰ命令とはグローバルプロセッサ３０内の演算回路等を用いて実行される命令、ＰＥ命令とはプロセッサエレメントブロック４０を用いて実行される命令である。
【００６１】
また、プロセッサエレメントブロック４０は、レジスタファイルアレイ７０と、演算アレイ８０とを備えて構成される。
【００６２】
ここで、レジスタファイルアレイ７０は、プロセッサエレメント数分のレジスタファイル７１から構成されている。レジスタファイル７１は、１６ビットのレジスタが３２本内蔵されており、レジスタはＰＥ毎にＲ０〜Ｒ３１と呼ぶこととする。それぞれのレジスタは演算アレイ８０に対してポートを備えており、１６ビットのリード／ライト兼用のバス（以下レジスタバス）で演算アレイ８０からアクセスできる。図示しているレジスタは、紙面の関係で各ＰＥで６本としている。
【００６３】
演算アレイ８０は、プロセッサエレメント数分の演算部８１から構成されている。演算部８１は、レジスタファイル７１との接続に１６ビット幅の７ｔｏ１のマルチプレクサ（７ｔｏ１ＭＵＸ）８１ａを備えており、ＰＥ方向で左に１、２及び３つ離れたＰＥのレジスタバス、右に１、２及び３つ離れたＰＥのレジスタバス、自ＰＥのレジスタバスに接続し、演算対象として７つのレジスタバスから選択することが可能である。選択の制御はグローバルプロセッサ３０により行われる。
【００６４】
７ｔｏ１のマルチプレクサ８１ａの後段にはシフタ（Shift Expand）８１ｂを設けており、レジスタファイル７１から読み出されたデータのビットシフトとビット拡張を行う。シフトの制御はグローバルプロセッサ３０により行われる。
【００６５】
シフタ８１ｂの後段には、上位用１６ビットＡＬＵ８１ｆ、上位用１６ビットＡレジスタ８１ｇ、上位用Ｆレジスタ８１ｈ、下位用１６ビットＡＬＵ８１ｃ、上位用１６ビットＡレジスタ８１ｄ、上位用Ｆレジスタ８１ｅを設けている。ＰＥ命令による演算は基本的にレジスタファイル７１から読み出されたデータを、例えば上位であれば上位用１６ビットＡＬＵ８１ｆの片側の入力として、もう片側には上位用１６ビットＡレジスタ８１ｇの内容を入力として、結果を上位用Ａレジスタ８１ｇに格納する。したがって、上位用Ａレジスタ８１ｇとＲ０〜Ｒ３１レジスタとの演算が行われることとなる。下位用１６ビットＡＬＵ８１ｃも同様である。
【００６６】
上位用１６ビットＡＬＵ８１ｆと下位用１６ビットＡＬＵ８１ｃは、それぞれ独立して１６ビットの演算が可能であり、また、上位用１６ビットＡＬＵ８１ｆと下位用１６ビットＡＬＵ８１ｃは連動して動作し、合わせて３２ビットの演算も可能である。それぞれの動作はグローバルプロセッサ３０からの制御による。上位用１６ビットＡＬＵ８１ｆと下位用１６ビットＡＬＵ８１ｃが連動する場合のため、両ＡＬＵ間にキャリーなどの情報伝達経路を備えている。
【００６７】
つまり、上述したレジスタファイル７１と、演算部８１と、でプロセッサエレメント（以降ＰＥ）を構成している。即ち、本実施形態のＳＩＭＤ型マイクロプロセッサは、レジスタファイル７１と演算部８１の組を３５２組備えている。
【００６８】
次に、上述した構成のＳＩＭＤ型マイクロプロセッサを用いて画像処理として歪み補正処理を行う場合におけるＧＰ命令とＰＥ命令の使い分け（切り替え）の処理方法について説明する。
【００６９】
図１４は図１に示した画像の一部分の拡大図である。ここで、補正をかける注目データ（画素）として、Ｓ００（ｘ，ｙ）、Ｓ１０（ｘ＋１，ｙ）、Ｓ２０（ｘ＋２，ｙ）、Ｓ３０（ｘ＋３，ｙ）、Ｓ４０（ｘ＋４，ｙ）の５点を例に説明する。この５点について補正する際に、各データの変換位置情報としてのオフセット値を、それぞれＳ００は（０，０）、Ｓ１０は（０，１）、Ｓ２０は（０，３）、Ｓ３０は（０，４）、Ｓ４０は（０，５）とする。このオフセット値は各画素毎に予めレンズの収差値から求めておく。
【００７０】
図１４の場合、このオフセット値が補正処理を行うために参照する画素の距離となり、Ｓ００は副走査方向に距離が０画素分、Ｓ１０は副走査方向に距離が１画素分、Ｓ２０は副走査方向に距離が２画素分、Ｓ３０は副走査方向に距離が３画素分、Ｓ４０は副走査方向に距離が５画素分あることになる。
【００７１】
図１３に示したＳＩＭＤ型マイクロプロセッサの場合は、７ｔｏ１のマルチプレクサ８１ａが、上述したように、自身の前後３ＰＥ分のデータしか一度にアクセスできないので、一度にアクセスできる距離であるＳ３０まではＰＥ命令で実行し、Ｓ４０はＧＰ命令で実行することで効率良く歪み補正処理を行うことができる。つまり、Ｓ３０まではＰＥ命令で実行しＳ４０はＧＰ命令で実行することで歪み補正処理にかかるステップ数や演算数を減らすことができ、処理時間を短くすることができる。
【００７２】
図１５は第２の実施形態においてＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。なお、図２５のフローチャートはＳＩＭＤ型マイクロプロセッサのグローパルプロセッサ３０において実行される。まず、ステップＳ１１において、１画素入力し、ステップＳ１２において、その画素の変換位置情報（オフセット値）によりＧＰ命令とＰＥ命令との切り替えを判断して、ＰＥ命令に切り替えられた場合はステップＳ１３において、ＰＥ命令にて処理を行い、ステップＳ１２においてＧＰ命令に切り替えられた場合はステップＳ１４において、ＧＰ命令にて処理を行い、ステップＳ１５において処理後のデータが１画素出力される。即ち、変換位置情報に基づいて、ＧＰ命令とＰＥ命令とのうちいずれか処理時間が短い命令に切り替えて実行している。
【００７３】
なお、オフセット値（変換位置情報）は、予め算出してメモリ等に保存して、ＰＥ命令とＧＰ命令の切り替え判断時に読み出してもよいし、ＰＥ命令とＧＰ命令の切り替え判断時に画素毎に算出してもよい。
【００７４】
図１６は変換位置情報を予め算出してメモリ等に保存した場合の図１５の詳細フローチャートである。なお、図１６のフローチャートはＳＩＭＤ型マイクロプロセッサのグローパルプロセッサ３０において実行される。
【００７５】
図１６のフローチャートは、ステップＳ２１において、処理前に変換位置情報（ＰＥ命令とＧＰ命令との切り替え条件）を画素毎に算出してメモリに保存し、ステップＳ２２において、１画素入力し、ステップＳ２３において、メモリに保存した画素毎の変換位置情報を参照してＰＥ命令とＧＰ命令の切り替えの判断を行い、ＰＥ命令に切り替えられた場合はステップＳ２４において、ＰＥ命令にて処理を行い、ステップＳ２３においてＧＰ命令に切り替えられた場合はステップＳ２５において、ＧＰ命令にて処理を行い、ステップＳ２６において全画素の処理が完了した場合は終了し、そうでない場合はステップＳ２３に戻る。
【００７６】
図１７は変換位置情報をＰＥ命令とＧＰ命令の切り替え判断時に画素毎に算出した場合の図１５の詳細フローチャートである。なお、図１７のフローチャートはＳＩＭＤ型マイクロプロセッサのグローパルプロセッサ３０において実行される。
【００７７】
図１７のフローチャートは、ステップＳ３１において、１画素入力し、ステップＳ３２において、入力した画素において変換位置情報（ＰＥ命令とＧＰ命令との切り替え条件）を算出し、ステップＳ３３において、算出した変換位置情報によりＰＥ命令とＧＰ命令の切り替えの判断を行い、ＰＥ命令に切り替えられた場合はステップＳ３４において、ＰＥ命令にて処理を行い、ステップＳ３３においてＧＰ命令に切り替えられた場合はステップＳ３５において、ＧＰ命令にて処理を行い、ステップＳ３６において全画素の処理が完了した場合は終了し、そうでない場合はステップＳ３１に戻る。
【００７８】
本実施形態によれば、ＳＩＭＤ型マイクロプロセッサを用いて歪み補正処理を行う際に、補正を行う画素のオフセット値によって、ＰＥ命令により処理を行うか、ＧＰ命令により処理を行うかを切り替えているので、適した命令に切り替えて短い時間で処理を行うことができ、処理速度を向上することができる。
【００７９】
また、オフセット値を予め画素毎に算出してメモリに保存し、ＰＥ命令とＧＰ命令の切り替え判断時にそのオフセット値を参照しているので、画素毎に効率の良い方の命令を選択実行することで処理速度を向上することができる。
【００８０】
さらに、オフセット値をＰＥ命令とＧＰ命令の切り替え判断時にその都度算出しているので、メモリの使用量を抑えながら、画素毎に効率の良い方の命令を選択実行することで処理速度を向上することができる。
【００８１】
なお、上述した実施形態では、変換位置情報としてオフセット値を用いたが、画素固有の歪み率などある座標に移動するためのパラメータであればよい。
【００８２】
第３の実施形態．
図１８はＳＩＭＤ単位で処理を実行する場合の説明図である。第１の実施形態では画素毎にＰＥ命令とＧＰ命令とを切り替えていたが、本実施形態ではＳＩＭＤ単位毎に変換位置情報を算出しＰＥ命令とＧＰ命令とを切り替える。例えば、図１８の場合、図中央のＳＩＭＤ単位は変換位置情報（オフセット値）が７以下なのでＰＥ命令で処理するようにした方が処理時間を短くすることができる。即ち、ＰＥ命令で一度に処理を行える複数画素毎に、ＧＰ命令とＰＥ命令とを切り替えている。
【００８３】
図１９は変換位置情報をＳＩＭＤ単位で予め算出してメモリ等に保存した場合のＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。なお、図１９のフローチャートはＳＩＭＤ型マイクロプロセッサのグローパルプロセッサ３０において実行される。
【００８４】
図１９において、まず、ステップＳ４１で、処理前に変換位置情報（ＰＥ命令とＧＰ命令との切り替え条件）をＳＩＭＤ単位毎に算出してメモリに保存し、ステップＳ４２において、１ＳＩＭＤ単位の画素を入力し、ステップＳ４３において、メモリに保存したＳＩＭＤ単位毎の変換位置情報を参照してＰＥ命令とＧＰ命令の切り替えの判断を行い、ＰＥ命令に切り替えられた場合はステップＳ４４において、ＰＥ命令にて処理を行い、ステップＳ４３においてＧＰ命令に切り替えられた場合はステップＳ４５において、ＧＰ命令にて処理を行い、ステップＳ４６において全画素の処理が完了した場合は終了し、そうでない場合はステップＳ４３に戻る。
【００８５】
図２０は変換位置情報をＰＥ命令とＧＰ命令の切り替え判断時にＳＩＭＤ単位毎に算出した場合のＧＰ命令とＰＥ命令との選択動作を示すフローチャートである。なお、図２０のフローチャートはＳＩＭＤ型マイクロプロセッサのグローパルプロセッサ３０において実行される。
【００８６】
図２０において、まず、ステップＳ５１で、１ＳＩＭＤ単位の画素を入力し、ステップＳ５２において、入力したＳＩＭＤ単位において変換位置情報（ＰＥ命令とＧＰ命令との切り替え条件）を算出し、ステップＳ５３において、算出した変換位置情報によりＰＥ命令とＧＰ命令の切り替えの判断を行い、ＰＥ命令に切り替えられた場合はステップＳ５４において、ＰＥ命令にて処理を行い、ステップＳ５３においてＧＰ命令に切り替えられた場合はステップＳ５５において、ＧＰ命令にて処理を行い、ステップＳ５６において全画素の処理が完了した場合は終了し、そうでない場合はステップＳ５１に戻る。
【００８７】
本実施形態によれば、ＳＩＭＤ単位毎に変換位置情報を算出しＰＥ命令とＧＰ命令とを切り替えているので、ＰＥ命令とＧＰ命令の判定処理の頻度が削減され処理速度を向上することができる。また、ＰＥ命令で一度に処理を行える複数画素毎にその処理に合った適切な命令を選択することができる。
【００８８】
また、オフセット値を予めＳＩＭＤ単位毎に算出してメモリに保存し、ＰＥ命令とＧＰ命令の切り替え判断時にそのオフセット値を参照しているので、ＳＩＭＤ単位毎に効率の良い方の命令を選択実行することで処理速度を向上することができる。
【００８９】
さらに、オフセット値をＰＥ命令とＧＰ命令の切り替え判断時にその都度算出しているので、メモリの使用量を抑えながら、画素毎に効率の良い方の命令を選択実行することで処理速度を向上することができる。
【００９０】
第４の実施形態．
図２１はＧＰ命令を用いて歪み補正処理を行った場合の例を示す説明図である。図２１のＧＰ命令を用いた場合、注目画素（ｘ＋Ｍ，ｙ＋Ｎ）では、予め各画素毎に算出したオフセット値が（３，３）であった場合は、処理後の画素位置（ｘ＋Ｍ＋３，ｙ＋Ｎ＋３）の画素値を参照して処理後の注目画素（ｘ＋Ｍ，ｙ＋Ｎ）の画素値を決定していく。
【００９１】
図２２はＰＥ命令を用いて歪み補正処理を行った場合の例を示す説明図である。図２２のＰＥ命令を用いた場合、注目画素（ｘ＋Ｍ，ｙ＋Ｎ）を中心とするｍ×ｎのマトリクス内で探索することで処理後の画素位置を参照して処理後の注目画素（ｘ＋Ｍ，ｙ＋Ｎ）の画素値を決定していく。つまり、図４に示したＳＩＭＤ型マイクロプロセッサを用いる場合は最大７×７の範囲について探索することができる。
【００９２】
上記図２２のアルゴリズムの場合、例えば１画素を移動するために１０命令かかり、ＰＥ命令では図４に示したＳＩＭＤ型マイクロプロセッサが３５２ＰＥであったとすると、７×７範囲の場合、４９×１０命令＝４９０回で１ＳＩＭＤ単位分（３５２画素）の処理を完了することが出来るのに対して、ＧＰ命令では１画素単位処理のために、１ＳＩＭＤ単位分３５２画素を処理するためには、４９０×３５２＝１７２４８０回必要になる。
【００９３】
また、図２１のＧＰ命令を用いた場合のアルゴリズムと、図２２のＰＥ命令を用いた場合のアルゴリズムは、それぞれ異なるが、同じ入力画像であれば同じ結果を得ることができる。
【００９４】
図２３はＧＰ命令とＰＥ命令の組み合わせパターンを示したフローチャートである。図２３に示すように複数の処理を連続して行う際に、ＰＥ命令とＧＰ命令とを組み合わせることができる。つまり、図２３の処理パターン１では、ＧＰ命令で補間処理を行った後にＧＰ命令で補正処理を行っている。処理パターン２では、ＧＰ命令で補間処理を行った後にＰＥ命令で補正処理を行っている。処理パターン３では、ＰＥ命令で補間処理を行った後にＰＥ命令で補正処理を行っている。処理パターン４では、ＰＥ命令で補間処理を行った後にＧＰ命令で補正処理を行っている。このような組み合わせを入力画像の画素やＳＩＭＤ単位毎に組み合わせて行うことで、演算時間の短縮が図れる。
【００９５】
本実施形態によれば、ＧＰ命令とＰＥ命令とで、同じ結果が得られるがそれぞれ異なるアルゴリズムを用いて処理を行っているので、入力画像の特徴、つまり変換位置情報によって適切な処理を選択することができる。
【００９６】
なお、上述した実施形態は、図１３に示したＳＩＭＤ型マイクロプロセッサを用いた場合であって、他のＳＩＭＤ型マイクロプロセッサなどＰＥ命令とＧＰ命令を実行可能なマイクロプロセッサであれば用いることができる。勿論その際は、ＰＥ命令とＧＰ命令との切り替え条件（４画素以上の距離や７×７の範囲等）もそのマイクロプロセッサに応じて変更すればよい。
【００９７】
また、本発明を適用する画像処理も歪み補正処理に限らず、画像の回転処理などの処理に用いてもよい。さらに、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実行することができる。
【産業上の利用可能性】
【００９８】
以上詳述したように、本発明に係る画像処理装置及び方法によれば、画像データに対して所定の回転角度だけ回転させるときに、上記回転角度に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して画像回転処理を実行する。従って、対象とする画像回転処理を実現する場合、不要な画像データを保持しないため少ないメモリ領域で処理が可能となる。
【００９９】
また、本発明に係る画像処理装置及び方法によれば、画像データに対して所定のオフセット量だけ補正して補正位置に歪み補正するときに、上記オフセット量に基づいてＳＩＭＤ単位の必要ライン数を算出して、当該ＳＩＭＤ単位の必要ライン数の画像データを外部メモリから内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して歪み補正処理を実行する。従って、対象とする画像回転処理を実現する場合、不要な画像データを保持しないため少ないメモリ領域で処理が可能となる。
【０１００】
さらに、本発明に係る画像処理装置及び方法によれば、上記画像回転処理又は上記歪み補正処理を実行するときに、上記オフセット量に基づいて算出した一定のずらし量だけ外部メモリのアドレスをずらしながら外部メモリにアクセスして画像データをＳＩＭＤ単位で読み出して内部メモリに転送して保持して、当該内部メモリに保持された画像データに対して上記処理を実行する。従って、対象とする処理を実現する場合、外部メモリからの読み出し回数が削減され処理速度を向上できる。
【０１０１】
またさらに、本発明に係る画像処理装置及び方法によれば、上記処理において、上記内部メモリに保持したＳＩＭＤ単位の複数の画像データのうち、最古のＳＩＭＤ単位の画像データ上に、内部メモリに対して書き込むべき最新のＳＩＭＤ単位の画像データを上書き保存するように更新する。従って、必要な領域全体の画像データを毎回読み込みすることがなくなるために、データの転送（入れ替え）処理回数が削減され処理速度を向上できる。
【０１０２】
またさらに、本発明に係る画像処理装置及び方法によれば、上記外部メモリに保持した画像データに対して、ＳＩＭＤ単位で画像の副走査ライン方向に歪み補正処理又は画像回転処理を繰り返し行う。従って、対象とする処理を副走査方向に処理することで、主走査方向に処理する場合と比べ、メモリの使用量を削減することができる。
【符号の説明】
【０１０３】
１…ＣＰＵ、
２…ＲＯＭ、
３…画像読み取り部、
４…読み取りインタフェース部、
５…ＳＩＭＤ処理部、
６…内部メモリ（ＲＡＭ）、
７…画像形成部、
８…画像形成インタフェース部、
９…操作部、
１０…外部メモリインターフェース、
１１…外部メモリ（ＤＤＲ−ＤＲＡＭ）、
３０…グローバルプロセッサ、
４０…プロセッサエレメントブロック、
７０…レジスタファイルアレイ、
７１…レジスタアレイ、
８０…演算アレイ、
８１…演算部、
Ｓ１２…ＧＰ命令とＰＥ命令との切り替え判断、
Ｓ１３…ＰＥ命令による処理、
Ｓ１４…ＧＰ命令による処理。
【先行技術文献】
【特許文献】
【０１０４】
【特許文献１】特開２００４−２２０５８４号公報
【特許文献２】特開２００６−２９５３７９号公報
【特許文献３】特開２００９−１８７２４０号公報
【特許文献４】特開２００９−２２３７５８号公報
【特許文献５】特開２０１０−１５２４５６号公報
【図１】
2012059186.tif 000003
【図２】
2012059186.tif 000004
【図３】
2012059186.tif 000005
【図４】
2012059186.tif 000006
【図５】
2012059186.tif 000007
【図６】
2012059186.tif 000008
【図７】
2012059186.tif 000009
【図８】
2012059186.tif 000010
【図９】
2012059186.tif 000011
【図１０】
2012059186.tif 000012
【図１１】
2012059186.tif 000013
【図１２】
2012059186.tif 000014
【図１３】
2012059186.tif 000015
【図１４】
2012059186.tif 000016
【図１５】
2012059186.tif 000017
【図１６】
2012059186.tif 000018
【図１７】
2012059186.tif 000019
【図１８】
2012059186.tif 000020
【図１９】
2012059186.tif 000021
【図２０】
2012059186.tif 000022
【図２１】
2012059186.tif 000023
【図２２】
2012059186.tif 000024
【図２３】
2012059186.tif 000025
【図２４】
2012059186.tif 000026