(57)【特許請求の範囲】
【請求項１】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイと、
前記ピクセルアレイに記憶された画像を回転させる際、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎまでｎサイクル実行させる手段を備えたコントローラとを有することを特徴とする画像回転装置。
【請求項２】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイと、
前記ピクセルアレイに記憶された画像を回転させる際、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎ−１までｎ−１サイクル実行させた後、前記ピクセルアレイの全画像領域の隣り合う２辺から内側に向かって距離Ｗ／２の幅を持つ２つのシフト領域を回転方向に対応する方向へシフトさせるシフト処理を前記ピクセルアレイの各ピクセルに実行させる手段を備えたコントローラとを有することを特徴とする画像回転装置。
【請求項３】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイと、
前記ピクセルアレイに記憶された画像を回転させる際、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応し、かつサイクル毎に設定されるシフト領域幅をｄｓ（ｄｓは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｄｓの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、サイクル毎に前記シフト領域幅ｄｓを設定しつつ、前記ピクセルアレイの各ピクセルに前記シフト処理をｎサイクル実行させる手段を備えたコントローラとを有することを特徴とする画像回転装置。
【請求項４】
請求項１又は２記載の画像回転装置において、
前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ）とすることを特徴とする画像回転装置。
【請求項５】
請求項１記載の画像回転装置において、
前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ＋１）とすることを特徴とする画像回転装置。
【請求項６】
請求項３記載の画像回転装置において、
前記ピクセルアレイの全画像領域の上下辺と左右辺毎に前記シフト領域幅ｄｓを個別に設定することを特徴とする画像回転装置。
【請求項７】
請求項３記載の画像回転装置において、
前記ピクセルアレイの全画像領域の各辺毎に前記シフト領域幅ｄｓを個別に設定することを特徴とする画像回転装置。
【請求項８】
請求項１、２又は３記載の画像回転装置において、
前記ピクセルアレイの各ピクセルは、
入射光又は接触物体を検出して画像化するセンサと、
このセンサの出力信号と隣接する他のピクセルの出力信号と排他的論理和出力信号とを入力とし、前記コントローラからのセレクト信号に応じて前記入力のうち何れか１つを選択して出力するセレクタと、
このセレクタの出力信号と第１のレジスタ出力信号とを入力とし、前記コントローラからの演算制御信号で指定された演算を行う演算回路と、
前記コントローラからの書込信号に応じて前記演算回路の出力信号を保持し、この保持結果を前記第１のレジスタ出力信号として出力する第１のレジスタと、
前記コントローラからの書込信号に応じて前記演算回路の出力信号を保持する第２のレジスタと、
この第２のレジスタの出力信号と前記コントローラからの出力制御信号との排他的論理和をとった結果を前記排他的論理和出力信号として前記セレクタ及び隣接する他のピクセルに出力する排他的論理和回路とを備え、
前記コントローラは、
前記最小シフト領域幅ｄ又は前記シフト領域幅ｄｓと前記最大サイクル数ｎとを予め記憶するシフト幅テーブルと、
前記最小シフト領域幅ｄ又は前記シフト領域幅ｄｓと前記最大サイクル数ｎとを基に前記ピクセルアレイの各ピクセルを制御する制御回路とを備えることを特徴とする画像回転装置。
【請求項９】
請求項８記載の画像回転装置において、
前記第１のレジスタは、少なくとも２つのレジスタからなり、
前記コントローラの制御回路は、
前記セレクタに前記センサの出力を選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタ中の一方のレジスタと前記第２のレジスタに書き込む第１の手順と、
この第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記セレクタに選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタ中の他方のレジスタに書き込む第２の手順と、
前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を前記第２のレジスタに格納する第３の手順と、
この第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の一方のレジスタとの論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第１のレジスタ中の一方のレジスタに書き込む第４の手順と、
前記第３の手順で書き込まれた前記第２のレジスタの出力を反転させた信号を前記排他的論理和回路から出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の他方のレジスタの出力との論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第５の手順と、
前記第５の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の一方のレジスタの出力との論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第６の手順とにより、前記シフト領域を回転方向に対応する方向へシフトさせることを特徴とする画像回転装置。
【請求項１０】
請求項８記載の画像回転装置において、
前記コントローラの制御回路は、
前記セレクタに前記センサの出力を選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタに書き込む第１の手順と、
前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を第２のレジスタに格納する第２の手順と、
この第２のレジスタの出力を反転させた信号を前記排他的論理和回路から出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第３の手順と、
この第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との排他的論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第１のレジスタに書き込む第４の手順と、
前記第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第５の手順とにより、前記シフト領域を回転方向に対応する方向へシフトさせることを特徴とする画像回転装置。
【請求項１１】
請求項９又は１０記載の画像回転装置において、
前記ピクセルアレイは、
Ｗ／ｍ行×Ｗ列（ｍはピクセルアレイの１辺あたりのピクセル数Ｗの約数で、２≦ｍ≦Ｗ）のピクセルに共通に接続され、この共通のピクセルに行セレクト信号を出力するｍ個の行設定回路と、
Ｗ行×Ｗ／ｍ列のピクセルに共通に接続され、この共通のピクセルに列セレクト信号を出力するｍ個の列設定回路とを備え、
前記ピクセルアレイの各ピクセルは、
前記行設定回路からの行セレクト信号と前記列設定回路からの列セレクト信号との論理演算の結果を前記セレクタに入力する論理回路を備え、
前記コントローラの制御回路は、
前記シフト領域の幅Ｓ×ｄに最も近い値がｋ×Ｗ／ｍ（ｋは自然数）であるとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｋ×Ｗ／ｍの幅を持つ第１の領域と残りの第２の領域とで値を反転させた画像を前記第２のレジスタに格納する手順と、
前記第１の領域の幅が前記シフト領域の幅Ｓ×ｄと一致するようにシフト処理を実行させる手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記マスク画像を前記第２のレジスタに格納することを特徴とする画像回転装置。
【請求項１２】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイにおいて、このピクセルアレイに記憶された画像を回転させる画像回転方法であって、
前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎまでｎサイクル実行させることを特徴とする画像回転方法。
【請求項１３】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイにおいて、このピクセルアレイに記憶された画像を回転させる画像回転方法であって、
前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎ−１までｎ−１サイクル実行させた後、前記ピクセルアレイの全画像領域の隣り合う２辺から内側に向かって距離Ｗ／２の幅を持つ２つのシフト領域を回転方向に対応する方向へシフトさせるシフト処理を前記ピクセルアレイの各ピクセルに実行させることを特徴とする画像回転方法。
【請求項１４】
入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセルをマトリクス状に複数配置したピクセルアレイにおいて、このピクセルアレイに記憶された画像を回転させる画像回転方法であって、
所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応し、かつサイクル毎に設定されるシフト領域幅をｄｓ（ｄｓは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｄｓの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、サイクル毎に前記シフト領域幅ｄｓを設定しつつ、前記ピクセルアレイの各ピクセルに前記シフト処理をｎサイクル実行させることを特徴とする画像回転方法。
【請求項１５】
請求項１２又は１３記載の画像回転方法において、
前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ）とすることを特徴とする画像回転方法。
【請求項１６】
請求項１２記載の画像回転方法において、
前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ＋１）とすることを特徴とする画像回転方法。
【請求項１７】
請求項１４記載の画像回転方法において、
前記ピクセルアレイの全画像領域の上下辺と左右辺毎に前記シフト領域幅ｄｓを個別に設定することを特徴とする画像回転方法。
【請求項１８】
請求項１４記載の画像回転方法において、
前記ピクセルアレイの全画像領域の各辺毎に前記シフト領域幅ｄｓを個別に設定することを特徴とする画像回転方法。
【請求項１９】
請求項１２、１３又は１４記載の画像回転方法において、
前記センサの出力を２つの第１のレジスタ中の一方のレジスタと第２のレジスタに書き込む第１の手順と、
この第２のレジスタの出力を隣接する他のピクセルへ出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記第１のレジスタ中の他方のレジスタに書き込む第２の手順と、
前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を前記第２のレジスタに格納する第３の手順と、
前記第１のレジスタ中の一方のレジスタの出力と前記マスク画像との論理積演算の結果を前記第１のレジスタ中の一方のレジスタに書き込む第４の手順と、
前記第１のレジスタ中の他方のレジスタの出力と前記マスク画像を反転させた画像との論理積演算の結果を前記第２のレジスタに書き込む第５の手順と、
前記第４の手順で書き込まれた前記第１のレジスタ中の一方のレジスタの出力と前記第５の手順で書き込まれた前記第２のレジスタの出力との論理和演算の結果を前記第２のレジスタに書き込む第６の手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記シフト領域を回転方向に対応する方向へシフトさせることを特徴とする画像回転方法。
【請求項２０】
請求項１２、１３又は１４記載の画像回転方法において、
前記センサの出力を第１のレジスタに書き込む第１の手順と、
前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を第２のレジスタに格納する第２の手順と、
前記第１のレジスタの出力と前記マスク画像を反転させた画像との論理積演算の結果を前記第２のレジスタに書き込む第３の手順と、
前記第１のレジスタの出力と前記第３の手順で書き込まれた前記第２のレジスタの出力との排他的論理和演算の結果を前記第１のレジスタに書き込む第４の手順と、
前記第３の手順で書き込まれた前記第２のレジスタの出力を隣接する他のピクセルへ出力させ、シフト方向と逆方向の隣接ピクセルの出力と前記第４の手順で書き込まれた前記第１のレジスタの出力との論理和演算の結果を前記第２のレジスタに書き込む第５の手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記シフト領域を回転方向に対応する方向へシフトさせることを特徴とする画像回転方法。
【請求項２１】
請求項１９又は２０記載の画像回転方法において、
前記シフト領域の幅Ｓ×ｄに最も近い値がｋ×Ｗ／ｍ（ｍはピクセルアレイの１辺あたりのピクセル数Ｗの約数で、２≦ｍ≦Ｗ、ｋは自然数）であるとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｋ×Ｗ／ｍの幅を持つ第１の領域と残りの第２の領域とで値を反転させた画像を前記第２のレジスタに格納する手順と、
前記第１の領域の幅が前記シフト領域の幅Ｓ×ｄと一致するようにシフト処理を実行させる手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記マスク画像を前記第２のレジスタに格納することを特徴とする画像回転方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入射光または接触物体を検出して画像化するセンサを搭載したピクセルをマトリクス状に複数配置したピクセルアレイにおいて、各ピクセルのセンサによって得られた画像をピクセルアレイ上で回転させる画像回転装置及び画像回転方法に関するものである。
【０００２】
【従来の技術】
現在、光や指紋の形状等を検出するセンサを搭載したピクセル１００１を図２２に示すようにマトリクス状に複数配置したピクセルアレイ１００２とこのピクセルアレイ１００２を制御するコントローラ（不図示）とからなり、画像や指紋を読みとり、各ピクセル１００１に搭載した回路により画像処理等を行うシステムが提案されている（例えば特願平１０−３７０９３４等）。
【０００３】
このようなシステムの１つである指紋認識システムでは、ピクセルアレイ１００２の各センサで読み取った指紋画像を予め登録された登録画像と照合して本人認証を行う。このとき、指紋画像と登録画像の位置や角度にずれがあると、高精度な照合ができなくなる。このため、ピクセルアレイ１００２に記憶されている画像をピクセルアレイ１００２上で任意の方向に移動させたり、回転させたりする必要がある。この画像処理により、登録画像とセンサで読みとった画像との高精度な照合が可能になる。
【０００４】
また、センサ機能とメモリ機能と演算機能とを備えたピクセル１００１を複数配置したピクセルアレイ１００２を用いることで、システムを１つの半導体チップ上に構成できるので、システムをＩＣカードや携帯機器等の小型機器に安価に搭載できるという優れた利点がある。また、ピクセルアレイ１００２の画像の移動（シフト）については、図２２に示すように隣接するピクセル１００１間を接続し、あるピクセル１００１で記憶しているデータを隣のピクセル１００１に転送することで実現できる。このようなデータ転送は各ピクセル１００１で同時に実行できるので、処理を高速に行うことが可能である。一方、画像の回転については、ピクセルアレイ１００２の画像をいったん外部に転送して処理する必要があった。
【０００５】
このような画像の回転を実現する従来の画像回転装置の構成を図２３に示す。この画像回転装置では、ピクセルアレイ１００２を制御するコントローラ１００３に、ピクセルアレイ１００２との通信を行う通信回路１００４と、画像データの回転変換に関する演算を行う演算回路１００５と、ピクセルアレイ１００２で取り込まれた画像データを保持する画像メモリ１００６と、全体の制御を行う制御回路１００７とを搭載する。
【０００６】
ピクセルアレイ１００２で取得した画像を回転させる場合、コントローラ１００３の制御回路１００７は、まず通信回路１００４を介してピクセルアレイ１００２内の画像データを全て読み出し、画像メモリ１００６に格納する。次に、演算回路１００５は、画像メモリ１００６に格納された画像データに対して三角関数等の演算を用いた座標変換を行い、回転させた画像データを作成する。制御回路１００７は、この画像データを画像メモリ１００６に書き込む。そして、制御回路１００７は、画像メモリ１００６に書き込んだ画像データを通信回路１００４を介してピクセルアレイ１００２上に戻すことで、ピクセルアレイ１００２での画像データの回転を実現する。
【０００７】
次に、従来の他の画像回転装置の例を図２４に示す。この画像回転装置では、ピクセルアレイ１００２を制御するコントローラ２００３に、ピクセルアレイ１００２との通信を行う通信回路２００４と、画像データの回転のための座標変換情報を記憶した座標変換テーブル２００５と、ピクセルアレイ１００２で取り込まれた画像データを保持する画像メモリ２００６と、全体の制御を行う制御回路２００７とを搭載する。座標変換テーブル２００５には、図２５に示すように、各回転角度毎に、回転前のピクセル番号（座標）と回転後のピクセル番号（座標）との対応が記憶されている。
【０００８】
ピクセルアレイ１００２で取得した画像を回転させる場合、コントローラ２００３の制御回路２００７は、まず通信回路２００４を介してピクセルアレイ１００２内の画像データを全て読み出し、画像メモリ２００６に格納する。次に、制御回路２００７は、座標変換テーブル２００５に格納された、所望の回転角度に対応する座標変換情報を用いて、画像メモリ２００６内の回転前の各ピクセル番号のデータを回転後のピクセル番号の位置に移動させる座標変換を行う。そして、制御回路２００７は、回転させた画像データを通信回路２００４を介してピクセルアレイ１００２上に戻すことで、ピクセルアレイ１００２での画像データの回転を実現する。
【０００９】
【発明が解決しようとする課題】
以上のような従来の画像回転装置には次のような問題点がある。従来の画像回転装置では、画像の回転のためにピクセルアレイ１００２内に記憶されている画像データを一度メモリに書き出し、回転処理後にピクセルアレイ１００２に戻す必要がある。このため、ピクセルアレイ１００２のサイズ（ピクセル数）が大きい場合（例えば、ピクセルアレイ１００２が２５６×２５６のピクセル１００１からなる場合、ピクセル数は６５５３６個となる）、この画像データの転送に多くの時間が必要となり、全体の処理時間が長くなるという問題点があった。また、この大きな画像データを保持するために、大容量の画像メモリ１００６，２００６が必要となり、画像回転装置の規模が大きくなるという問題点があった。また、変換処理自体がコントローラ１００３，２００３での逐次処理になってしまい、ピクセルアレイ１００２の画素並列処理により高速画像処理を行う前記システムの利点を損なうという問題点があった。
【００１０】
さらに、図２３を参照して説明した従来の画像回転装置では、三角関数等の演算を用いて回転のための座標変換を行うため、三角関数等の複雑な計算を行う大規模で複雑な演算回路１００５が必要になるという問題点があった。また、このような計算は一般的に多くの時間を必要とするため、画像データ全体の座標変換に多くの時間が必要となり、全体の処理時間が長くなるという問題点があった。
【００１１】
図２４を参照して説明した従来の画像回転装置では、座標変換テーブル２００５を用いて座標変換を行うため、この座標変換テーブル２００５に各回転角度毎のピクセルの変換座標を全ピクセルについて保持しておくことが必要であり、ピクセルアレイ１００２のサイズが大きい場合、座標変換テーブル２００５のサイズが莫大なものになるという問題点があった。
【００１２】
本発明は、このような課題を解決するためのものであり、センサを搭載したピクセルをマトリクス状に複数配置したピクセルアレイにおいて、大容量な画像メモリや大規模な演算回路を用いることなく、画像データを高速、かつ低電力で任意の角度に回転させることができる画像回転装置及び画像回転方法を提供することを目的としている。
【００１３】
【課題を解決するための手段】
本発明の画像回転装置は、入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセル（１）をマトリクス状に複数配置したピクセルアレイ（２）と、前記ピクセルアレイに記憶された画像を回転させる際、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎまでｎサイクル実行させる手段を備えたコントローラ（３）とを有するものである。
また、本発明の画像回転装置は、入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセル（１）をマトリクス状に複数配置したピクセルアレイ（２）と、前記ピクセルアレイに記憶された画像を回転させる際、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎ−１までｎ−１サイクル実行させた後、前記ピクセルアレイの全画像領域の隣り合う２辺から内側に向かって距離Ｗ／２の幅を持つ２つのシフト領域を回転方向に対応する方向へシフトさせるシフト処理を前記ピクセルアレイの各ピクセルに実行させる手段を備えたコントローラ（３）とを有するものである。
また、本発明の画像回転装置は、入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセル（１）をマトリクス状に複数配置したピクセルアレイ（２）と、前記ピクセルアレイに記憶された画像を回転させる際、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応し、かつサイクル毎に設定されるシフト領域幅をｄｓ（ｄｓは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｄｓの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、サイクル毎に前記シフト領域幅ｄｓを設定しつつ、前記ピクセルアレイの各ピクセルに前記シフト処理をｎサイクル実行させる手段を備えたコントローラ（３）とを有するものである。
【００１４】
また、本発明の画像回転装置の１構成例は、前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ）とするものである。
また、本発明の画像回転装置の１構成例は、前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ＋１）とするものである。
また、本発明の画像回転装置の１構成例は、前記ピクセルアレイの全画像領域の上下辺と左右辺毎に前記シフト領域幅ｄｓを個別に設定するものである。
また、本発明の画像回転装置の１構成例は、前記ピクセルアレイの全画像領域の各辺毎に前記シフト領域幅ｄｓを個別に設定するものである。
【００１５】
また、本発明の画像回転装置の１構成例において、前記ピクセルアレイの各ピクセルは、入射光又は接触物体を検出して画像化するセンサ（１１）と、このセンサの出力信号と隣接する他のピクセルの出力信号と排他的論理和出力信号とを入力とし、前記コントローラからのセレクト信号に応じて前記入力のうち何れか１つを選択して出力するセレクタ（１２）と、このセレクタの出力信号と第１のレジスタ出力信号とを入力とし、前記コントローラからの演算制御信号で指定された演算を行う演算回路（１３）と、前記コントローラからの書込信号に応じて前記演算回路の出力信号を保持し、この保持結果を前記第１のレジスタ出力信号として出力する第１のレジスタ（１４）と、前記コントローラからの書込信号に応じて前記演算回路の出力信号を保持する第２のレジスタ（１５）と、この第２のレジスタの出力信号と前記コントローラからの出力制御信号との排他的論理和をとった結果を前記排他的論理和出力信号として前記セレクタ及び隣接する他のピクセルに出力する排他的論理和回路（１６）とを備え、前記コントローラは、前記最小シフト領域幅ｄ又は前記シフト領域幅ｄｓと前記最大サイクル数ｎとを予め記憶するシフト幅テーブル（５）と、前記最小シフト領域幅ｄ又は前記シフト領域幅ｄｓと前記最大サイクル数ｎとを基に前記ピクセルアレイの各ピクセルを制御する制御回路（６）とを備えるものである。
【００１６】
また、本発明の画像回転装置の１構成例において、前記第１のレジスタは、少なくとも２つのレジスタからなり、前記コントローラの制御回路は、前記セレクタに前記センサの出力を選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタ中の一方のレジスタと前記第２のレジスタに書き込む第１の手順と、この第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記セレクタに選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタ中の他方のレジスタに書き込む第２の手順と、前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を前記第２のレジスタに格納する第３の手順と、この第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の一方のレジスタとの論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第１のレジスタ中の一方のレジスタに書き込む第４の手順と、前記第３の手順で書き込まれた前記第２のレジスタの出力を反転させた信号を前記排他的論理和回路から出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の他方のレジスタの出力との論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第５の手順と、前記第５の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタ中の一方のレジスタの出力との論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第６の手順とにより、前記シフト領域を回転方向に対応する方向へシフトさせるものである。
【００１７】
また、本発明の画像回転装置の１構成例において、前記コントローラの制御回路は、前記セレクタに前記センサの出力を選択させ、前記演算回路に前記セレクタからの入力信号をそのまま出力させ、この演算回路の出力を前記第１のレジスタに書き込む第１の手順と、前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を第２のレジスタに格納する第２の手順と、この第２のレジスタの出力を反転させた信号を前記排他的論理和回路から出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との論理積演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第３の手順と、この第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、この排他的論理和回路の出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との排他的論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第１のレジスタに書き込む第４の手順と、前記第３の手順で書き込まれた前記第２のレジスタの出力を前記排他的論理和回路からそのまま出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記セレクタに選択させ、このセレクタの出力と前記第１のレジスタの出力との論理和演算を前記演算回路に実行させ、この演算回路の出力を前記第２のレジスタに書き込む第５の手順とにより、前記シフト領域を回転方向に対応する方向へシフトさせるものである。
【００１８】
また、本発明の画像回転装置の１構成例において、前記ピクセルアレイは、Ｗ／ｍ行×Ｗ列（ｍはピクセルアレイの１辺あたりのピクセル数Ｗの約数で、２≦ｍ≦Ｗ）のピクセルに共通に接続され、この共通のピクセルに行セレクト信号を出力するｍ個の行設定回路と、Ｗ行×Ｗ／ｍ列のピクセルに共通に接続され、この共通のピクセルに列セレクト信号を出力するｍ個の列設定回路とを備え、前記ピクセルアレイの各ピクセルは、前記行設定回路からの行セレクト信号と前記列設定回路からの列セレクト信号との論理演算の結果を前記セレクタに入力する論理回路を備え、前記コントローラの制御回路は、前記シフト領域の幅Ｓ×ｄに最も近い値がｋ×Ｗ／ｍ（ｋは自然数）であるとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｋ×Ｗ／ｍの幅を持つ第１の領域と残りの第２の領域とで値を反転させた画像を前記第２のレジスタに格納する手順と、前記第１の領域の幅が前記シフト領域の幅Ｓ×ｄと一致するようにシフト処理を実行させる手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記マスク画像を前記第２のレジスタに格納するものである。
【００１９】
また、本発明は、入射光または接触物体を検出して画像化するセンサとこのセンサから出力されたデータを記憶する記憶手段と前記データに対して演算処理を行う演算手段とを備えたピクセル（１）をマトリクス状に複数配置したピクセルアレイ（２）において、このピクセルアレイに記憶された画像を回転させる画像回転方法であって、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎまでｎサイクル実行させるようにしたものである。
また、本発明の画像回転方法は、前記ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応した最小のシフト領域幅をｄ（ｄは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、前記ピクセルアレイの各ピクセルに前記シフト処理をＳ＝１からＳ＝ｎ−１までｎ−１サイクル実行させた後、前記ピクセルアレイの全画像領域の隣り合う２辺から内側に向かって距離Ｗ／２の幅を持つ２つのシフト領域を回転方向に対応する方向へシフトさせるシフト処理を前記ピクセルアレイの各ピクセルに実行させるようにしたものである。
また、本発明の画像回転方法は、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ（ｎは自然数）、前記回転角度に対応し、かつサイクル毎に設定されるシフト領域幅をｄｓ（ｄｓは自然数）としたとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｄｓの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、サイクル毎に前記シフト領域幅ｄｓを設定しつつ、前記ピクセルアレイの各ピクセルに前記シフト処理をｎサイクル実行させるようにしたものである。
【００２０】
また、本発明の画像回転方法は、前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ）とするものである。
また、本発明の画像回転方法は、前記最小シフト領域幅ｄと前記最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ＋１）とするものである。
また、本発明の画像回転方法は、前記ピクセルアレイの全画像領域の上下辺と左右辺毎に前記シフト領域幅ｄｓを個別に設定するものである。
また、本発明の画像回転方法は、前記ピクセルアレイの全画像領域の各辺毎に前記シフト領域幅ｄｓを個別に設定するものである。
【００２１】
また、本発明の画像回転方法は、前記センサの出力を２つの第１のレジスタ中の一方のレジスタと第２のレジスタに書き込む第１の手順と、この第２のレジスタの出力を隣接する他のピクセルへ出力させ、シフト方向と逆方向の隣接ピクセルの出力を前記第１のレジスタ中の他方のレジスタに書き込む第２の手順と、前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を前記第２のレジスタに格納する第３の手順と、前記第１のレジスタ中の一方のレジスタの出力と前記マスク画像との論理積演算の結果を前記第１のレジスタ中の一方のレジスタに書き込む第４の手順と、前記第１のレジスタ中の他方のレジスタの出力と前記マスク画像を反転させた画像との論理積演算の結果を前記第２のレジスタに書き込む第５の手順と、前記第４の手順で書き込まれた前記第１のレジスタ中の一方のレジスタの出力と前記第５の手順で書き込まれた前記第２のレジスタの出力との論理和演算の結果を前記第２のレジスタに書き込む第６の手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記シフト領域を回転方向に対応する方向へシフトさせるようにしたものである。
また、本発明の画像回転方法は、前記センサの出力を第１のレジスタに書き込む第１の手順と、前記ピクセルアレイの全画像領域中の前記シフト領域とシフトしない領域とで値を反転させたマスク画像を第２のレジスタに格納する第２の手順と、前記第１のレジスタの出力と前記マスク画像を反転させた画像との論理積演算の結果を前記第２のレジスタに書き込む第３の手順と、前記第１のレジスタの出力と前記第３の手順で書き込まれた前記第２のレジスタの出力との排他的論理和演算の結果を前記第１のレジスタに書き込む第４の手順と、前記第３の手順で書き込まれた前記第２のレジスタの出力を隣接する他のピクセルへ出力させ、シフト方向と逆方向の隣接ピクセルの出力と前記第４の手順で書き込まれた前記第１のレジスタの出力との論理和演算の結果を前記第２のレジスタに書き込む第５の手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記シフト領域を回転方向に対応する方向へシフトさせるようにしたものである。
【００２２】
また、本発明の画像回転方法の１構成例は、前記シフト領域の幅Ｓ×ｄに最も近い値がｋ×Ｗ／ｍ（ｍはピクセルアレイの１辺あたりのピクセル数Ｗの約数で、２≦ｍ≦Ｗ、ｋは自然数）であるとき、前記ピクセルアレイの全画像領域の各辺から内側に向かって距離ｋ×Ｗ／ｍの幅を持つ第１の領域と残りの第２の領域とで値を反転させた画像を前記第２のレジスタに格納する手順と、前記第１の領域の幅が前記シフト領域の幅Ｓ×ｄと一致するようにシフト処理を実行させる手順とを前記ピクセルアレイの各ピクセルに実行させることにより、前記マスク画像を前記第２のレジスタに格納するようにしたものである。
【００２３】
【発明の実施の形態】
［第１の実施の形態］
以下、本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の第１の実施の形態となる画像回転装置の構成を示すブロック図である。本実施の形態の画像回転装置は、入射光または接触物体（例えば人の指）を検出して画像化するセンサを搭載したピクセル１をマトリクス状に複数配置したピクセルアレイ２と、このピクセルアレイ２を制御するコントローラ３とから構成される。
【００２４】
コントローラ３は、ピクセルアレイ２の動作を制御する制御信号をピクセルアレイ２に送信する通信回路４と、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数と回転角度に対応した最小のシフト領域幅とを記憶するシフト幅テーブル５と、全体の動作を制御する制御回路６とからなる。この画像回転装置では、ピクセルアレイ２において、センサ等で検出した画像データの回転処理を、ピクセルアレイ２の全画像領域中の一部のシフト領域をシフトさせるシフト処理の組み合わせによって実現する。
【００２５】
本実施の形態における具体的な回転処理について図２に、この回転処理を実行するためのフローチャートを図３に示す。図２は画像を右回転、すなわち時計回りに回転させる場合の動作を示しており、図２（ａ）、図２（ｂ）、図２（ｃ）の各画像はピクセルアレイ２に記憶された画像全体を表している。なお、図２において、白地は画素「０」、黒地はシフト領域にある画素「１」、梨子地はシフトしない領域にある画素「１」を示す。
【００２６】
まず、制御回路６は、処理回数を示す図示しないサイクルカウンタＳを初期値１にセットする（ステップ１０１）。続いて、制御回路６は、シフト幅テーブル５から所望の回転角度に対応した最小のシフト領域幅ｄ（ｄは自然数）と所望の回転角度で画像を回転させるのに要する処理の最大サイクル数ｎ（ｎは自然数）とを読み出す（ステップ１０２）。
【００２７】
次に、制御回路６は、ピクセルアレイ２の全画像領域の上辺から内側へ距離Ｓ×ｄの幅を持つ帯状のシフト領域を回転方向に対応する方向（右回転の場合は右、左回転の場合は左）へ１ピクセル分シフトするよう、通信回路４を介してピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の上辺から距離Ｓ×ｄの幅を持つシフト領域を右方向へ１ピクセル分シフトする（ステップ１０３）。
【００２８】
続いて、制御回路６は、ピクセルアレイ２の全画像領域の左辺から内側へ距離Ｓ×ｄの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は上、左回転の場合は下）へ１ピクセル分シフトするようにピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の左辺から距離Ｓ×ｄの幅を持つシフト領域を上方向へ１ピクセル分シフトする（ステップ１０４）。
【００２９】
また、制御回路６は、ピクセルアレイ２の全画像領域の下辺から内側へ距離Ｓ×ｄの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は左、左回転の場合は右）へ１ピクセル分シフトするようピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の下辺から距離Ｓ×ｄの幅を持つシフト領域を左方向へ１ピクセル分シフトする（ステップ１０５）。
【００３０】
さらに、制御回路６は、ピクセルアレイ２の全画像領域の右辺から内側へ距離Ｓ×ｄの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は下、左回転の場合は上）へ１ピクセル分シフトするようピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の右辺から距離Ｓ×ｄの幅を持つシフト領域を下方向へ１ピクセル分シフトする（ステップ１０６）。図２（ａ）は、ステップ１０３〜１０６の処理が１サイクル終わった状態を示す。
【００３１】
次に、制御回路６は、サイクルカウンタＳが最大サイクル数ｎと等しいかどうかを判定し（ステップ１０７）、サイクルカウンタＳが最大サイクル数ｎより小さい場合は、サイクルカウンタＳを１増加させ（ステップ１０８）、ステップ１０３に戻る。
【００３２】
２サイクル目の処理においてもシフト領域の幅は、Ｓ×ｄであるが、Ｓ＝２としたので、２ｄとなる。ピクセルアレイ２は、制御回路６の指示により、全画像領域の上辺から距離２ｄの幅を持つシフト領域を右方向へ１ピクセル分シフトし（ステップ１０３）、全画像領域の左辺から距離２ｄの幅を持つシフト領域を上方向へ１ピクセル分シフトし（ステップ１０４）、全画像領域の下辺から距離２ｄの幅を持つシフト領域を左方向へ１ピクセル分シフトし（ステップ１０５）、全画像領域の右辺から距離２ｄの幅を持つシフト領域を下方向へ１ピクセル分シフトする（ステップ１０６）。図２（ｂ）はステップ１０３〜１０６の処理が２サイクル終わった状態を示す。
【００３３】
以上のようにステップ１０３〜１０８の処理をサイクルカウンタＳが最大サイクル数ｎと等しくなるまで繰り返す。制御回路６は、ステップ１０７においてサイクルカウンタＳが最大サイクル数ｎと等しくなったとき、回転処理を終了させる。図２（ｃ）は回転処理が終了し、ピクセルアレイ２での画像回転が完了した状態を示す。
なお、本実施の形態においては主として画像を右回転させる場合を例に説明したが、上記説明中、シフト領域のシフト方向について右方向と左方向および上方向と下方向をそれぞれ逆にすることで、画像を左回転すなわち反時計まわりに回転させることも可能であることはいうまでもない。
【００３４】
シフト幅テーブル５に記憶される最小シフト領域幅ｄと最大サイクル数ｎは、ピクセルアレイ２の１辺あたりのピクセル数をＷとしたとき、ｄ＝Ｗ／（２ｎ）で表され、回転角度とピクセルアレイ２のサイズ（Ｗ×Ｗ）にあわせてあらかじめ設定することが可能である。この最小シフト領域幅ｄと最大サイクル数ｎを、図４に示すように、各回転角度毎にシフト幅テーブル５にあらかじめ記憶させておく。図３に示した回転処理において、最初にシフト幅テーブル５から最小シフト領域幅ｄと最大サイクル数ｎを読み込むことで、所望の回転角度に対応する最小シフト領域幅ｄと最大サイクル数ｎを決めることができる。
【００３５】
このように、本実施の形態では、ピクセルアレイ２の全画像領域中の部分的なシフト処理を組み合わせることにより、画像の回転を実現している。この部分的なシフト処理を実現するピクセル１の構成を図５に示す。
【００３６】
各ピクセル１は、人の皮膚との間の容量、あるいは光等を検出するセンサ１１と、このセンサ１１の出力信号や隣接する他のピクセル１からの信号、後述するＸＯＲ回路１６の出力信号を入力とし、コントローラ３からのセレクト信号に応じて入力信号のうち何れか１つを選択して出力するセレクタ１２と、このセレクタ１２と後述するレジスタ１４の出力を入力とし、コントローラ３からの演算制御信号で指定された演算を行う演算回路１３と、コントローラ３からの書き込み信号に応じて演算回路１３の出力を保持するレジスタ１４と、同じく演算回路１３の出力を保持する出力レジスタ１５と、出力レジスタ１５の出力をコントローラ３からの出力反転信号に応じて反転して出力あるいはそのまま出力するＸＯＲ（排他的論理和）回路１６とからなる。
【００３７】
ＸＯＲ回路１６の出力は隣接する他のピクセル１に送信される。コントローラ３からの各制御信号は、全てのピクセル１に共通であり、全ピクセル１に送信される。また、レジスタ１４は少なくとも２つのレジスタ回路から構成される。
【００３８】
このようなピクセル１からなるピクセルアレイ２における、各シフト領域でのシフト処理（ステップ１０３，１０４，１０５または１０６）の様子を図６に示す。図６はレジスタ１４及び出力レジスタ１５が保持している画像を示しているが、図６の各画像は１つのピクセル内のレジスタ１４及び出力レジスタ１５が保持している画像ではなく、ピクセルアレイ２の全ピクセル内のレジスタ１４及び出力レジスタ１５が保持している画像をまとめてピクセルアレイ２が保持している画像として表記しているものである。
【００３９】
図６の例は、ピクセルアレイ２が保持している画像の上辺から距離Ｓ×ｄの幅を持つシフト領域を右方向へシフトする処理（図３のステップ１０３）を示している。また、図６の各画像では、レジスタ１４，１５が保持しているデータが「１」の場合は黒、「０」の場合は白で表している。
【００４０】
シフト領域のシフト処理はコントローラ３からの制御信号を変化させ、各ピクセル１で以下の動作を行うことで実現できる。シフトを行う前にまず、コントローラ３は、セレクト信号を出力して、セレクタ１２にセンサ１１の出力を選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３（センサ１１）の出力をレジスタ１４中の１つのレジスタ回路（以下、レジスタ１４−１とする）と出力レジスタ１５に書き込む。このとき、レジスタ１４−１と出力レジスタ１５に書き込まれた画像は図６（ａ）、図６（ｂ）のようになる。
【００４１】
次に、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、シフト方向と逆方向の隣接ピクセル１の出力をセレクタ１２に選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３（隣接ピクセル１）の出力をレジスタ１４中の他のレジスタ回路（以下、レジスタ１４−２とする）に書き込む。ここでは、右方向にシフトするため、左隣のピクセル１からの信号をセレクタ１２で選択して、レジスタ１４−２に書き込む。このとき、レジスタ１４−２に書き込まれた画像は図６（ｃ）のようになる。
【００４２】
次に、コントローラ３は、シフト領域の値が「０」、シフトしない領域の値が「１」のマスク画像を出力レジスタ１５に格納する（図６（ｄ））。このマスク画像の作成方法については後述する。なお、以後の演算を変更することで、シフト領域の値が「１」、シフトしない領域の値が「０」のマスク画像とすることも可能である。
【００４３】
次に、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、ＸＯＲ回路１６の出力をセレクタ１２に選択させ、演算制御信号を出力して、図６（ｅ）に示すレジスタ１４−１の出力と図６（ｆ）に示すセレクタ１２（出力レジスタ１５）の出力とのＡＮＤ（論理積）演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力をレジスタ１４−１に書き込む（図６（ｇ））。これにより、ピクセルアレイ２の全画像領域からシフトを行わない領域のみを抽出した画像がレジスタ１４−１に格納される。
【００４４】
次に、コントローラ３は、ＸＯＲ回路１６に値が「１」の出力反転信号を与えて、出力レジスタ１５の出力を反転させた信号をＸＯＲ回路１６から出力させ、セレクト信号を出力して、ＸＯＲ回路１６の出力をセレクタ１２に選択させ、演算制御信号を出力して、図６（ｈ）に示すレジスタ１４−２の出力と図６（ｉ）に示すセレクタ１２（出力レジスタ１５の論理反転）の出力とのＡＮＤ演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む（図６（ｊ））。これにより、ピクセルアレイ２の全画像領域からシフトを行う領域のみを抽出した画像が出力レジスタ１５に格納される。
【００４５】
最後に、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与え、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、ＸＯＲ回路１６の出力をセレクタ１２に選択させ、演算制御信号を出力して、図６（ｋ）に示すレジスタ１４−１の出力と図６（ｌ）に示すセレクタ１２（出力レジスタ１５）の出力とのＯＲ（論理和）演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む（図６（ｍ））。
【００４６】
このとき、演算回路１３の出力を書き込むのは、レジスタ１４−１でもよいし、レジスタ１４−２でもよい。以上で、シフト領域のシフト処理が完了する。なお、ステップ１０３のシフト処理を例に挙げて説明したが、ステップ１０４，１０５または１０６のシフト処理についても同様にして実現することができる。
【００４７】
次に、図６（ｃ）で説明したマスク画像の作成手順を図７に示す。図７は、図６と同様に、ピクセルアレイ２の全ピクセル内の出力レジスタ１５が保持している画像をまとめて表記しているものである。まず、コントローラ３は、演算制御信号を出力して、演算回路１３の出力を「１」とし、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む。これにより、全ピクセル１の出力レジスタ１５が「１」にセットされる（図７（ａ））。
【００４８】
続いて、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、シフト領域を設定する辺の方向にある隣接ピクセル１（ピクセルアレイ２の上辺にシフト領域を設定する場合には上側のピクセル１）の出力をセレクタ１２に選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３（隣接ピクセル１）の出力を出力レジスタ１５に書き込む。このような隣接ピクセル１からの取り込みをシフト領域の幅（Ｓ×ｄ）の回数分だけ繰り返す（図７（ｂ））。
【００４９】
ピクセルアレイ２の上辺に位置するピクセル１では、上側にピクセル１が存在しないため、上記のように上側の隣接ピクセル１の出力を出力レジスタ１５に書き込む処理を行うと、上辺に位置する各ピクセル１の出力レジスタ１５に「０」が書き込まれる。したがって、上側の隣接ピクセル１の出力を出力レジスタ１５に書き込むことをＳ×ｄ回繰り返すと、値「０」が下方向に順次シフトするので、結果として上辺から距離Ｓ×ｄの幅を持つシフト領域の値が「０」となるマスク画像が出力レジスタ１５に格納される（図７（ｃ））。
【００５０】
以上のようにして、本実施の形態では、センサ１１で検出した画像等の回転をピクセルアレイ２上で行うことが可能となる。本実施の形態の手法によれば、ピクセルアレイ２内の画像をコントローラ３に読み出す必要がないため、画像を記憶するための画像メモリをコントローラ３に設ける必要がなく、画像回転装置の小型化が実現できる。
【００５１】
また、ピクセルアレイ２とコントローラ３間で画像データを転送する必要がなく、ほとんどの処理をピクセルアレイ２内の画素並列処理で実行できるため、従来手法に比べ回転処理にかかる時間を大幅に削減することも可能となる。また、コントローラ３で高速、かつ複雑な処理を行う必要がないので、コントローラ３の回路や構成を簡易的なものにすることも可能であり、消費電力の低減や画像回転装置の小型化が可能となる。
【００５２】
なお、本実施の形態では、図３に示した回転処理において、シフト処理を行う順番を上辺、左辺、下辺、右辺としているが、画像の回転方向に合わせてこの順を逆にしてもよく、また任意の順番でシフト処理を行ってもよい。
【００５３】
また、画像の回転方向はシフト領域のシフト方向で決まるため、シフト幅テーブル５のデータは左右の回転で共用することができる。例えば、右に１度回転させるときと左に１度（右に−１度）回転させるときのデータ（最小シフト領域幅ｄ、最大サイクル数ｎ）は同じである。
【００５４】
本実施の形態において、制御回路６は一般的なマイクロコンピュータやマイクロプロセッサ、シフト幅テーブル５は一般的なＳＲＡＭやＥＥＰＲＯＭ、フラッシュメモリ等のメモリ、通信回路４は一般的な出力バッファ回路を用いることで実現可能である。
【００５５】
［第２の実施の形態］
次に、本発明の第２の実施の形態について説明する。本実施の形態と第１の実施の形態との違いはシフト幅テーブル５に記憶させる最小シフト領域幅ｄと最大サイクル数ｎの設定方法のみであり、図１に示した画像回転装置の構成や図３に示した回転処理の手順は第１の実施の形態と同様であるので、第１の実施の形態の符号を用いて説明する。
【００５６】
第１の実施の形態では、最小シフト領域幅ｄと最大サイクル数ｎの関係をｄ＝Ｗ／（２ｎ）としていたため、図２（ｃ）に示したＳ＝ｎのとき、シフト領域の幅がＷ／２となり、各辺のシフトではピクセルアレイ２の半面がシフトされることになる。
【００５７】
したがって、画像を右回転させる場合には、上半分のシフト領域が右方向へ１ピクセル分シフトし、左半分のシフト領域が上方向へ１ピクセル分シフトし、下半分のシフト領域が左方向へ１ピクセル分シフトし、右半分のシフト領域が下方向へ１ピクセル分シフトするので、図８に示すように、２つのシフト領域（図８の例では左半分と右半分のシフト領域）の境界では、互いに逆方向に１ピクセルずつ、すなわち全体として２ピクセル分シフトすることになり、最小シフト領域幅ｄが小さくなると、これらシフト領域の境界部分で誤差が発生する。図８は、ピクセルアレイ２の中心部を拡大したものである。
【００５８】
このような誤差を防ぐため、本実施の形態では、シフト幅テーブル５の作成時に、最小シフト領域幅ｄと最大サイクル数ｎをｄ＝Ｗ／（２ｎ＋１）の関係を満たすように設定する。本実施の形態における回転処理の様子を図９に示す。最小シフト領域幅ｄと最大サイクル数ｎの関係をｄ＝Ｗ／（２ｎ＋１）とすることにより、第１の実施の形態と同様の回転処理（図３）を実行すると、図９（ｃ）に示すように、シフト処理の最終サイクル（Ｓ＝ｎ）で、ピクセルアレイ２の中心部に１辺ｄの正方形の領域を残してシフトすることができる。
【００５９】
これにより、シフト処理の最終サイクルにおいてもシフト領域が接することがなく、第１の実施の形態のように２ピクセル分ずれることを防ぐことができる。また、図９（ｃ）に示したようにシフトしない領域は最小シフト領域幅ｄ四方の領域であるため、誤差が発生することもない。その結果、より正確な回転処理を行うことが可能となる。
なお、画像を左回転させる場合においても最小シフト領域幅ｄと最大サイクル数ｎについては同様に設定することができる。
【００６０】
［第３の実施の形態］
次に、本発明の第３の実施の形態について説明する。本実施の形態と第１の実施の形態との違いはシフト処理の手順のみであり、画像回転装置の構成は第１の実施の形態と同様であるので、第１の実施の形態の符号を用いて説明する。本実施の形態は、第２の実施の形態と同様に、第１の実施の形態においてシフト領域間が２ピクセル分ずれることを防ぐものである。
【００６１】
本実施の形態における回転処理の様子を図１０に、この回転処理を実行するためのフローチャートを図１１に示す。図１０は画像を右回転させる場合の動作を示している。最小シフト領域幅ｄと最大サイクル数ｎの関係は、第１の実施の形態と同様にｄ＝Ｗ／（２ｎ）である。図１１に示す回転処理において、ステップ１０１〜１０６の処理は第１の実施の形態と同じである。
【００６２】
次に、ステップ１０９において、制御回路６は、サイクルカウンタＳが（ｎ−１）と等しいかどうかを判定して、サイクルカウンタＳが（ｎ−１）未満の場合は、サイクルカウンタＳを１増加させ（ステップ１０８）、ステップ１０３に戻る。これにより、ステップ１０３〜１０６，１０８，１０９の処理をサイクルカウンタＳが（ｎ−１）と等しくなるまで繰り返す。
【００６３】
制御回路６は、ステップ１０９においてサイクルカウンタＳが（ｎ−１）と等しくなったとき、ピクセルアレイ２の全画像領域の上辺から距離Ｗ／２の幅を持つ上半分のシフト領域を回転方向に対応する方向へ１ピクセル分シフトするようピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の上半分のシフト領域を右方向へ１ピクセル分シフトする（ステップ１１０）。
【００６４】
さらに、制御回路６は、全画像領域の左辺から距離Ｗ／２の幅を持つ左半分のシフト領域を回転方向に対応する方向へ１ピクセル分シフトするようピクセルアレイ２を制御する。制御回路６の指示により、ピクセルアレイ２は、全画像領域の左半分のシフト領域を上方向へ１ピクセル分シフトする（ステップ１１１）。
【００６５】
以上により、シフト処理の最終サイクル（Ｓ＝ｎ−１）においても２つのシフト領域が接することがなく、第１の実施の形態のように２ピクセル分ずれることを防ぐことができる。その結果、より正確な回転処理を行うことが可能となる。なお、本実施の形態では、最終サイクルにおいて、上半分のシフト領域と左半分のシフト領域を回転方向に対応する方向へシフトさせたが、左半分と下半分のシフト領域をシフトさせてもよいし、下半分と右半分のシフト領域をシフトさせてもよいし、右半分と上半分のシフト領域をシフトさせてもよい。
なお、本実施の形態においては主として画像を右回転させる場合を例に説明したが、上記説明中、シフト領域のシフト方向について右方向と左方向および上方向と下方向をそれぞれ逆にすることで、画像を左回転すなわち反時計まわりに回転させることも可能であることはいうまでもない。
【００６６】
［第４の実施の形態］
以下、本発明の第４の実施の形態について説明する。本実施の形態と第１の実施の形態との違いは、シフト幅テーブル５に記憶させるデータの設定方法とシフト処理の手順であり、画像回転装置の構成は第１の実施の形態と同様であるので、第１の実施の形態の符号を用いて説明する。
【００６７】
第１の実施の形態では、最小シフト領域幅ｄと最大サイクル数ｎの関係をｄ＝Ｗ／（２ｎ）としていた。しかし、所望の回転角度に応じて最小シフト領域幅ｄを決めると、最大サイクル数ｎが整数にならず、最小シフト領域幅ｄと最大サイクル数ｎを設定することが不可能になってしまう場合がある。
【００６８】
例えば、ピクセルアレイ２が２５６×２５６個のピクセル１で構成されているとき、ある回転角度でｄ＝１０となった場合、ｎ＝１２．８となり、最大サイクル数ｎに端数が発生する。このとき、ｎ＝１２とすると、ピクセルアレイ２の中心部に１６×１６ピクセルのシフトしない領域ができてしまい、正確な回転でなくなってしまう。
【００６９】
このような不正確な回転を防ぐため、本実施の形態では、回転角度毎の最大サイクル数ｎをシフト幅テーブル５にあらかじめ設定すると共に、回転角度毎及びサイクル数毎のシフト領域幅ｄｓ（添字のｓはサイクルカウンタＳに対応）をシフト幅テーブル５にあらかじめ設定する。本実施の形態における具体的な回転処理について図１２に、この回転処理を実行するためのフローチャートを図１３に示す。図１２は画像を右回転させる場合の動作を示している。
【００７０】
まず、制御回路６は、内部に有するサイクルカウンタＳを初期値１にセットする（ステップ１０１）。続いて、制御回路６は、シフト幅テーブル５から所望の回転角度に対応した最大サイクル数ｎを読み出す（ステップ１１２）。次に、制御回路６は、シフト幅テーブル５から所望の回転角度とサイクルカウンタＳとに対応したシフト領域幅ｄｓを読み出す（ステップ１１３）。
【００７１】
次に、制御回路６は、ピクセルアレイ２の全画像領域の上辺から距離ｄｓの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は右、左回転の場合は左）へ１ピクセル分シフトするようピクセルアレイ２を制御する。ピクセルアレイ２は、上辺から距離ｄｓの幅を持つシフト領域を右方向へ１ピクセル分シフトする（ステップ１１４）。
【００７２】
続いて、制御回路６は、ピクセルアレイ２の全画像領域の左辺から距離ｄｓの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は上、左回転の場合は下）へ１ピクセル分シフトするようピクセルアレイ２を制御する。ピクセルアレイ２は、左辺から距離ｄｓの幅を持つシフト領域を上方向へ１ピクセル分シフトする（ステップ１１５）。
【００７３】
また、制御回路６は、ピクセルアレイ２の全画像領域の下辺から距離ｄｓの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は左、左回転の場合は右）へ１ピクセル分シフトするようピクセルアレイ２を制御する。ピクセルアレイ２は、下辺から距離ｄｓの幅を持つシフト領域を左方向へ１ピクセル分シフトする（ステップ１１６）。
【００７４】
さらに、制御回路６は、ピクセルアレイ２の全画像領域の右辺から距離ｄｓの幅を持つシフト領域を回転方向に対応する方向（右回転の場合は下、左回転の場合は上）へ１ピクセル分シフトするようピクセルアレイ２を制御する。ピクセルアレイ２は、右辺から距離ｄｓの幅を持つシフト領域を下方向へ１ピクセル分シフトする（ステップ１１７）。図１２（ａ）はステップ１１３〜１１７の処理が１サイクル終わった状態を示す。
【００７５】
次に、制御回路６は、サイクルカウンタＳが最大サイクル数ｎと等しいかどうかを判定し（ステップ１０７）、サイクルカウンタＳが最大サイクル数ｎより小さい場合は、サイクルカウンタＳを１増加させ（ステップ１０８）、ステップ１１３に戻る。２サイクル目の処理においても、制御回路６は、シフト幅テーブル５から所望の回転角度とＳ＝２に対応したシフト領域幅ｄｓを読み出し（ステップ１１３）、ステップ１１４〜１１７の処理を上記と同様に実行する。図１２（ｂ）はステップ１１３〜１１７の処理が２サイクル終わった状態を示す。
【００７６】
以上のようにステップ１１３〜１１７，１０７，１０８の処理をサイクルカウンタＳが最大サイクル数ｎと等しくなるまで繰り返す。制御回路６は、ステップ１０７においてサイクルカウンタＳが最大サイクル数ｎと等しくなったとき、回転処理を終了させる。図１２（ｃ）は回転処理が終了し、ピクセルアレイ２での画像回転が完了した状態を示す。こうして、正確な回転処理を実現することができる。
なお、本実施の形態においては主として画像を右回転させる場合を例に説明したが、上記説明中、シフト領域のシフト方向について右方向と左方向および上方向と下方向をそれぞれ逆にすることで、画像を左回転すなわち反時計まわりに回転させることも可能であることはいうまでもない。
【００７７】
シフト幅テーブル５には、図４から最小シフト領域幅の項目を除いた、回転角度と最大サイクル数ｎとを対応付けたテーブルと、図１４に示すようなサイクル数とシフト領域幅ｄｓとを対応付けた回転角度毎のテーブルとを格納する。例えば、ピクセルアレイ２が２５６×２５６個のピクセル１で構成されている場合には、ステップ１でシフト領域幅ｄｓを８、それ以降のステップ数でシフト領域幅ｄｓを１０、最大サイクル数ｎを１３と設定することで、前記端数による中心部の未シフト領域を無くすことができる。このように最大サイクル数ｎに端数が発生する場合には、その端数を調整するシフト領域幅ｄｓをステップ１に設定することで、ピクセルアレイ２の全画像領域の外周部分で端数の調整を行い、それ以外の部分の誤差を防ぐことができる。
【００７８】
また、シフト幅テーブル５のデータ量を削減するため、図１５に示すように、ステップ２以上については１つの項目にすることも可能である。さらに、図１６に示すように、各ステップに対して上下辺のシフト領域の幅と左右辺のシフト領域の幅を個別に設定することで、ピクセルアレイ２が長方形であった場合でも正確な回転処理を実現することができる。このとき、シフト領域幅を０にすることで、そのステップではシフト処理を行わないことを示すこともできる。
【００７９】
また、図１７に示すように、各ステップに対して上辺、左辺、下辺、右辺の各シフト領域の幅を個別に設定することで、画像の回転中心をピクセルアレイ２上の中心からずらし、別の点にすることも可能となる。なお、シフト処理の最終ステップについては第２、第３の実施の形態に示した方法を用いることも可能であり、より正確な回転処理を実現できる。
【００８０】
［第５の実施の形態］
次に、本発明の第５の実施の形態について説明する。本実施の形態と第１の実施の形態との違いは、各シフト領域でのシフト処理を実現する手法のみであり、図１に示した画像回転装置の構成や図３に示した回転処理の手順は第１の実施の形態と同様であるので、第１の実施の形態の符号を用いて説明する。
【００８１】
本実施の形態におけるシフト処理（ステップ１０３，１０４，１０５または１０６）の様子を図１８に示す。図１８の例は、ピクセルアレイ２が保持している全画像領域の上辺から距離Ｓ×ｄの幅を持つシフト領域を右方向へシフトする処理（ステップ１０３）を示している。図１８の表記方法は図６と同様である。
【００８２】
シフト領域のシフト処理はコントローラ３からの制御信号を変化させ、各ピクセル１で以下の動作を行うことで実現できる。シフトを行う前にまず、コントローラ３は、セレクト信号を出力して、セレクタ１２にセンサ１１の出力を選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３（センサ１１）の出力をレジスタ１４−１に書き込む（図１８（ａ））。
【００８３】
また、コントローラ３は、図７で説明した手法を用いて、シフト領域の値が「０」、シフトしない領域の値が「１」のマスク画像を出力レジスタ１５に格納する（図１８（ｂ））。
【００８４】
次に、コントローラ３は、ＸＯＲ回路１６に値が「１」の出力反転信号を与えて、出力レジスタ１５の出力を反転させた信号をＸＯＲ回路１６から出力させ、セレクト信号を出力して、ＸＯＲ回路１６の出力をセレクタ１２に選択させ、演算制御信号を出力して、図１８（ｃ）に示すレジスタ１４−１の出力と図１８（ｄ）に示すセレクタ１２（出力レジスタ１５の論理反転）の出力とのＡＮＤ演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む（図１８（ｅ））。
【００８５】
続いて、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、ＸＯＲ回路１６の出力をセレクタ１２に選択させ、演算制御信号を出力して、図１８（ｆ）に示すレジスタ１４−１の出力と図１８（ｇ）に示すセレクタ１２（出力レジスタ１５）の出力とのＸＯＲ演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力をレジスタ１４−１に書き込む（図１８（ｈ））。
【００８６】
最後に、コントローラ３は、ＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、シフト方向と逆方向の隣接ピクセル１の出力をセレクタ１２に選択させ、演算制御信号を出力して、図１８（ｉ）に示すレジスタ１４−１の出力と図１８（ｊ）に示すセレクタ１２（隣接ピクセル１）の出力とのＯＲ演算を演算回路１３に実行させ、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む（図１８（ｋ））。
【００８７】
このとき、演算回路１３の出力を書き込むのは、レジスタ１４−１でもよい。以上で、シフト領域のシフト処理が完了する。なお、ステップ１０３のシフト処理を例に挙げて説明したが、ステップ１０４，１０５または１０６のシフト処理についても同様にして実現することができる。
【００８８】
本実施の形態では、ピクセル１内の演算回路１３にＸＯＲ（排他的論理和）演算を行う機能を設けることで、各シフト領域のシフト処理に要するステップ数を削減することができ、処理時間を短縮することが可能である。また、シフト処理中に用いるレジスタは出力レジスタとレジスタ１４−１のみであり、第１の実施の形態と比べてピクセル１内のレジスタ数の削減も可能とする。
【００８９】
［第６の実施の形態］
次に、本発明の第６の実施の形態について説明する。図１９は本実施の形態のピクセルアレイ２ａの構成を示すブロック図であり、図１と同一の構成には同一の符号を付してある。本実施の形態は、第１の実施の形態〜第５の実施の形態において、ピクセルアレイ２の代わりに図１９に示したピクセルアレイ２ａを用いるものである。本実施の形態と他の実施の形態が異なる点は、ピクセルアレイ２ａの構成とマスク画像の作成方法なので、以下の説明ではこの点についてのみ説明する。
【００９０】
本実施の形態のピクセルアレイ２ａは、第１の実施の形態〜第５の実施の形態のピクセルアレイ２の内部に、Ｗ／ｍ行×Ｗ列（ｍはピクセルアレイ２ａの１辺あたりのピクセル数Ｗの約数で、２≦ｍ≦Ｗ）のピクセル１ａに共通に接続され、これら共通のピクセル１ａに行セレクト信号を出力するｍ個の行設定回路７と、Ｗ行×Ｗ／ｍ列のピクセル１ａに共通に接続され、これら共通のピクセル１ａに列セレクト信号を出力するｍ個の列設定回路８とを追加したものである。ｍ個の行設定回路７とｍ個の列設定回路８には、コントローラ３からの制御信号により任意の値（本実施の形態では「０」または「１」）をそれぞれ独立に設定することが可能である。
【００９１】
図２０は本実施の形態のピクセル１ａの構成を示すブロック図であり、図５と同一の構成には同一の符号を付してある。第１の実施の形態〜第５の実施の形態のピクセル１と異なる点は、対応する行設定回路７からの行セレクト信号と、対応する列設定回路８からの列セレクト信号とが論理和（ＯＲ）回路１７を介してセレクタ１２に入力される点である。なお、論理和（ＯＲ）回路１７の代わりに、論理積（ＡＮＤ）回路を用いてもよい。
【００９２】
次に、本実施の形態のマスク画像の作成手順を図２１に示す。図２１は、図６と同様に、ピクセルアレイ２ａの全ピクセル内の出力レジスタ１５が保持している画像をまとめて表記しているものである。なお、図２１の例では、ピクセルアレイ全体が５×５のブロックに分割されるように行設定回路７と列設定回路８の個数をｍ＝５としているが、個数ｍは任意に設定することが可能である。
【００９３】
まず、コントローラ３は、第１の実施の形態〜第５の実施の形態で説明したシフト領域の幅Ｓ×ｄに最も近い値がｋ×Ｗ／ｍ（ｋは自然数）であるとき、ピクセルアレイ２ａのシフト領域を設定する辺（図６の例では上辺）からｋ個の行設定回路７の出力を「０」に設定すると共に、残りの行設定回路７の出力を「１」に設定し、すべての列設定回路８の出力を「０」に設定する。
【００９４】
そして、コントローラ３は、セレクト信号を出力して、ＯＲ回路１７の出力をセレクタ１２に選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３の出力を出力レジスタ１５に書き込む。これにより、（ｋ×Ｗ／ｍ）行×Ｗ列のピクセル１ａの出力レジスタ１５が「０」にセットされ、残りのピクセル１ａの出力レジスタ１５が「１」にセットされる。図２１（ａ）の例では、ｋ＝２の場合について示している。
【００９５】
なお、図２１（ａ）の処理において、ピクセルアレイ２ａのシフト領域を設定する辺が右辺または左辺の場合には、このシフト領域を設定する辺からｋ個の列設定回路８の出力を「０」に設定すると共に、残りの列設定回路８の出力を「１」に設定し、すべての行設定回路７の出力を「０」に設定する。
【００９６】
次に、コントローラ３は、Ｓ×ｄ≠ｋ×Ｗ／ｍの場合、全ピクセル１ａのＸＯＲ回路１６に値が「０」の出力反転信号を与えて、出力レジスタ１５の出力をＸＯＲ回路１６からそのまま出力させ、セレクト信号を出力して、隣接ピクセル１ａの出力をセレクタ１２に選択させ、演算制御信号を出力して、演算回路１３にセレクタ１２からの入力信号をそのまま出力させ、さらに書き込み信号を出力して、演算回路１３（隣接ピクセル１ａ）の出力を出力レジスタ１５に書き込む。このような隣接ピクセル１ａからの取り込みを｜Ｓ×ｄ−ｋ×Ｗ／ｍ｜の回数分だけ繰り返す（図２１（ｂ））。
【００９７】
ピクセルアレイ２ａのシフト領域を設定する辺が上辺で、Ｓ×ｄ＞ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは上側のピクセル１ａであり、Ｓ×ｄ＜ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは下側のピクセル１ａである。また、ピクセルアレイ２ａのシフト領域を設定する辺が下辺で、Ｓ×ｄ＞ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは下側のピクセル１ａであり、Ｓ×ｄ＜ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは上側のピクセル１ａである。
【００９８】
一方、ピクセルアレイ２ａのシフト領域を設定する辺が左辺で、Ｓ×ｄ＞ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは左側のピクセル１ａであり、Ｓ×ｄ＜ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは右側のピクセル１ａである。また、ピクセルアレイ２ａのシフト領域を設定する辺が右辺で、Ｓ×ｄ＞ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは右側のピクセル１ａであり、Ｓ×ｄ＜ｋ×Ｗ／ｍの場合、上記隣接ピクセル１ａは左側のピクセル１ａである。
【００９９】
こうして、距離Ｓ×ｄの幅を持つシフト領域の値が「０」で、それ以外が「１」となるマスク画像が出力レジスタ１５に格納される（図２１（ｃ））。なお、Ｓ×ｄ＝ｋ×Ｗ／ｍの場合は、図２１（ｂ）のシフト処理を行う必要はない。
【０１００】
本実施の形態では、シフト領域を設定する辺から距離ｋ×Ｗ／ｍまでの領域を「０」にした大まかなマスク画像を最初の１ステップの処理（図２１（ａ））で作成し、その後にシフト領域の幅Ｓ×ｄとの誤差分のステップ、すなわち｜Ｓ×ｄ−ｋ×Ｗ／ｍ｜ステップだけシフトを繰り返すことで、マスク画像を作成することが可能であり、これによりシフト領域の幅が広い場合でも、短いステップ数（処理時間）でマスク画像を作成することが可能となり、回転処理全体の処理時間の短縮を実現することができる。
なお、本実施の形態では、ピクセルアレイ２ａの１辺あたりのピクセル数Ｗが縦横共に同一の場合（すなわち、ピクセルアレイ２ａが正方形の場合）について説明しているが、ピクセル数Ｗが縦横で異なる場合（ピクセルアレイ２ａが長方形の場合）にも本発明を適用することができる。
【０１０１】
【発明の効果】
以上説明したように、本発明によれば、ピクセルアレイに記憶された画像を回転させる際、ピクセルアレイの１辺あたりのピクセル数をＷ、所望の回転角度で画像を回転させるのに要する処理の最大サイクル数をｎ、回転角度に対応した最小のシフト領域幅をｄとしたとき、ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、ピクセルアレイの各ピクセルにシフト処理をＳ＝１からＳ＝ｎまでｎサイクル実行させることにより、大容量な画像メモリや大規模な演算回路を用いることなく、ピクセルアレイ上の画像を高速、かつ低電力で任意の角度に回転させることができる。
【０１０２】
また、ピクセルアレイの全画像領域の各辺から内側に向かって距離Ｓ×ｄ（Ｓは自然数）の幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、ピクセルアレイの各ピクセルにシフト処理をＳ＝１からＳ＝ｎ−１までｎ−１サイクル実行させた後、ピクセルアレイの全画像領域の隣り合う２辺から内側に向かって距離Ｗ／２の幅を持つ２つのシフト領域を回転方向に対応する方向へシフトさせるシフト処理をピクセルアレイの各ピクセルに実行させることにより、大容量な画像メモリや大規模な演算回路を用いることなく、ピクセルアレイ上の画像を高速、かつ低電力で任意の角度に回転させることができる。また、シフト処理の最終サイクルにおいて２つのシフト領域が接することがなく、シフト領域間が２ピクセル分ずれることがないので、より正確な回転処理を行うことが可能となる。
【０１０３】
また、回転角度に対応し、かつサイクル毎に設定されるシフト領域幅をｄｓ（ｄｓは自然数）としたとき、ピクセルアレイの全画像領域の各辺から内側に向かって距離ｄｓの幅を持つ各シフト領域を回転方向に対応する方向へシフトさせるシフト処理を１サイクルとして数え、サイクル毎にシフト領域幅ｄｓを設定しつつ、ピクセルアレイの各ピクセルにシフト処理をｎサイクル実行させることにより、大容量な画像メモリや大規模な演算回路を用いることなく、ピクセルアレイ上の画像を高速、かつ低電力で任意の角度に回転させることができる。また、サイクル毎のシフト領域幅ｄｓを調整することで、より正確な回転処理を行うことが可能となる。
【０１０４】
また、最小シフト領域幅ｄと最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ）とすることにより、シフト処理を実現できる。
【０１０５】
また、最小シフト領域幅ｄと最大サイクル数ｎとの関係をｄ＝Ｗ／（２ｎ＋１）とすることにより、シフト処理の最終サイクルにおいて２つのシフト領域が接することがなく、シフト領域間が２ピクセル分ずれることがないので、より正確な回転処理を行うことが可能となる。
【０１０６】
また、ピクセルアレイの全画像領域の上下辺と左右辺毎にシフト領域幅ｄｓを個別に設定することにより、ピクセルアレイが長方形であった場合でも正確な回転処理を実現することができる。
【０１０７】
また、ピクセルアレイの全画像領域の各辺毎にシフト領域幅ｄｓを個別に設定することにより、画像の回転中心をピクセルアレイ上の中心からずらし、別の点にすることが可能となる。
【０１０８】
また、ピクセルアレイの全画像領域の各辺から内側に向かって距離ｋ×Ｗ／ｍの幅を持つ第１の領域を最初の１ステップの処理で作成し、その後に第１の領域の幅がシフト領域の幅Ｓ×ｄと一致するようにシフトを繰り返すことで、マスク画像を作成するので、シフト領域の幅が広い場合でも、短時間でマスク画像を作成することが可能となり、回転処理全体の処理時間の短縮を実現することができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態となる画像回転装置の構成を示すブロック図である。
【図２】  本発明の第１の実施の形態における回転処理の概要を示す説明図である。
【図３】  本発明の第１の実施の形態における回転処理を説明するためのフローチャート図である。
【図４】  本発明の第１の実施の形態におけるシフト幅テーブルの構成を示す図である。
【図５】  本発明の第１の実施の形態におけるピクセルの構成を示すブロック図である。
【図６】  本発明の第１の実施の形態の各シフト領域におけるシフト処理を示す説明図である。
【図７】  本発明の第１の実施の形態のマスク画像作成動作を示す説明図である。
【図８】  本発明の第１の実施の形態の回転後のピクセルアレイ中心部の状態を示す説明図である。
【図９】  本発明の第２の実施の形態における回転処理の概要を示す説明図である。
【図１０】  本発明の第３の実施の形態における回転処理の概要を示す説明図である。
【図１１】  本発明の第３の実施の形態における回転処理を説明するためのフローチャート図である。
【図１２】  本発明の第４の実施の形態における回転処理の概要を示す説明図である。
【図１３】  本発明の第４の実施の形態における回転処理を説明するためのフローチャート図である。
【図１４】  本発明の第４の実施の形態におけるシフト幅テーブルの構成を示す図である。
【図１５】  本発明の第４の実施の形態における他のシフト幅テーブルの構成を示す図である。
【図１６】  本発明の第４の実施の形態における他のシフト幅テーブルの構成を示す図である。
【図１７】  本発明の第４の実施の形態における他のシフト幅テーブルの構成を示す図である。
【図１８】  本発明の第５の実施の形態の各シフト領域におけるシフト処理を示す説明図である。
【図１９】  本発明の第６の実施の形態におけるピクセルアレイの構成を示すブロック図である。
【図２０】  本発明の第６の実施の形態におけるピクセルの構成を示すブロック図である。
【図２１】  本発明の第６の実施の形態のマスク画像作成動作を示す説明図である。
【図２２】  従来のピクセルアレイの構成を示すブロック図である。
【図２３】  従来の画像回転装置の構成を示すブロック図である。
【図２４】  従来の他の画像回転装置の構成を示すブロック図である。
【図２５】  図２４の画像回転装置の座標変換テーブルの構成を示す図である。
【符号の説明】
１…ピクセル、２…ピクセルアレイ、３…コントローラ、４…通信回路、５…シフト幅テーブル、６…制御回路、７…行設定回路、８…列設定回路、１１…センサ、１２…セレクタ、１３…演算回路、１４…レジスタ、１５…出力レジスタ、１６…ＸＯＲ回路、１７…ＯＲ回路。
【図１】
0003917489.tif 000002
【図２】
0003917489.tif 000003
【図３】
0003917489.tif 000004
【図４】
0003917489.tif 000005
【図５】
0003917489.tif 000006
【図６】
0003917489.tif 000007
【図７】
0003917489.tif 000008
【図８】
0003917489.tif 000009
【図９】
0003917489.tif 000010
【図１０】
0003917489.tif 000011
【図１１】
0003917489.tif 000012
【図１２】
0003917489.tif 000013
【図１３】
0003917489.tif 000014
【図１４】
0003917489.tif 000015
【図１５】
0003917489.tif 000016
【図１６】
0003917489.tif 000017
【図１７】
0003917489.tif 000018
【図１８】
0003917489.tif 000019
【図１９】
0003917489.tif 000020
【図２０】
0003917489.tif 000021
【図２１】
0003917489.tif 000022
【図２２】
0003917489.tif 000023
【図２３】
0003917489.tif 000024
【図２４】
0003917489.tif 000025
【図２５】
0003917489.tif 000026