(57)【要約】【課題】本発明は、ラスタ画像を任意角度に回転する画像回転装置に関し、画像の任意角度の回転処理において、任意角度に対応するパラメータを回転角度指定レジスタにセットすると、パラメータをもとにジェネレータでセレクトパターンを自動生成し、自動生成したセレクトパターンともとの画像を格納したレジスタとのライン毎などに論理演算を行って回転後の画像を自動抽出して回転画像を生成し、任意角度に対応するパラメータをセットするのみでハードウェアにより画像を任意角度に高速回転することを目的とする。【解決手段】ラスタ画像を記憶する回転画像記憶レジスタと、任意の回転角度指定パラメータをセットする回転角度指定レジスタと、回転角度指定レジスタにセットされた回転角度指定パラメータをもとに回転画像記憶レジスタから抽出するセレクトパターンを発生するジェネレータと、ジェネレータで発生されたセレクトパターンと回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタとを備える画像回転装置である。【選択図】  図１
2004171448.tif 000002
【特許請求の範囲】
【請求項１】
ラスタ画像を任意角度に回転する画像回転装置において、
ラスタ画像を記憶する回転画像記憶レジスタと、
任意の回転角度指定パラメータをセットする回転角度指定レジスタと、
前記回転角度指定レジスタにセットされた回転角度指定パラメータをもとに前記回転画像記憶レジスタから抽出するセレクトパターンを発生するジェネレータと、
前記ジェネレータで発生されたセレクトパターンと前記回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタと
を備えたことを特徴とする画像回転装置。
【請求項２】
前記ジェネレータで発生された画像から抽出するライン毎のセレクトパターンと前記回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタを備えたことを特徴とする請求項１記載の画像回転装置。
【請求項３】
前記ジェネレータの（０，０）の位置に１および他のビットを全て０にセットした後、前記回転角度指定レジスタにセットされている回転角度指定パラメータが０のときに横方向、１のときに斜め下あるいは上方向にビット１をセットすることを繰り返して１ライン分のセレクトパターンを生成し、当該生成したセレクトパターンと前記回転画像記憶レジスタとのビット対応の論理演算を行ってその結果を前記出力レジスタに設定することを、全ライン分繰り返すことを特徴とする請求項１あるいは請求項２記載の画像回転装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ラスタ画像を任意角度に回転する画像回転装置に関するものである。
【０００２】
【従来の技術】
画像回転処理は、一般的に９０°、１８０°、２７０°の３通りである場合が多い。スキャナなどで取り込んだ画像では、傾きの補正などのために、任意角度の回転処理が必要となる。
【０００３】
従来、任意角度の回転処理は、画像（例えば文字画像）がベクトルやアウトラインフォントで構成されている場合には、ソフトウェアにて座標の回転変換処理を行うことにより、比較的に容易に行うことができる。
【０００４】
しかし、画像がラスタで構成されている場合、図１０の（ａ）から（ｂ）あるいは（ｃ）に示すように任意角度の回転を行うとき、一般的には画素単位に回転処理を行う必要があり、これをソフトウェアで行うと１画素ごとにビット操作（ビットごとに回転処理というビット操作）を繰り返し、回転処理を行っていた。
【０００５】
また、ラスタ画像を任意角度回転処理を行う場合、画像パターンを直行する２方向の１方向で、まず、斜体変換を行い、その後に他の１方向で、再び斜体変換を行うことで、画像の回転を行うようにしていた（特許文献１参照）。
【０００６】
【特許文献１】
特開昭６３−６１３７９号公報の第２頁左下欄第２行目から第３頁左上欄第７行目。
【０００７】
【発明が解決しようとする課題】
このため、前者では、１画素ごとにビット操作を繰り返す必要があり、ＣＰＵの処理負荷が高く、高速に処理できないという問題があった。
【０００８】
また、後者では、画像パターンを直行する２方向でそれぞれ斜体変換を行う必要があり、高速に処理できないという問題があった。
【０００９】
本発明は、これらの問題を解決するため、画像の任意角度の回転処理において、任意角度に対応するパラメータを回転角度指定レジスタにセットすると、パラメータをもとにジェネレータでセレクトパターンを自動生成し、自動生成したセレクトパターンと元の画像を格納したレジスタとのライン毎などに論理演算を行って回転後の画像を自動抽出して回転画像を生成し、任意角度に対応するパラメータをセットするのみでハードウェアにより画像を任意角度に高速回転することを目的とする。
【００１０】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
【００１１】
図１において、回転画像記憶レジスタ１は、回転対象のラスタ画像を記憶するレジスタである。
【００１２】
回転角度指定レジスタ２は、任意の回転角度の回転角度指定パラメータをセットするものである。
【００１３】
マトリックス・セレクトパターンジェネレータ３は、回転角度指定レジスタ２にセットされた回転角度指定パラメータをもとにセレクトパターンを生成するものである。
【００１４】
マトリックス・ラインセレクタ４は、回転画像記憶レジスタ１に記憶されている元の画像中から、セレクトパターンに対応する元の画像のデータを抽出して設定するものである。
【００１５】
出力レジスタ５は、マトリックス・ラインセレクタ４に抽出されたデータを設定して回転後の画像を生成するものである。
【００１６】
制御部６は、全体を統括制御するものである。
次に、動作を説明する。
【００１７】
制御部６が回転前の画像を回転画像記憶レジスタ１に記憶および任意回転角度に対応する回転角度指定パラメータを回転角度指定レジスタ２にセットし、当該回転角度指定レジスタ２にセットされた回転角度指定パラメータをもとに元画像からセレクトするセレクトパターンをマトリックス・セレクトパターンジェネレータ３上に生成させ、当該セレクトパターンに対応する回転画像記憶レジスタ１に記憶された画像から該当ビットのデータを抽出してマトリックス・ラインセレクタ４に格納し、当該格納した１ライン分の抽出した元の画像のデータを出力レジスタ５の該当位置に格納することを繰り返し、元画像を任意指定角度に回転するようにしている。
【００１８】
この際、マトリックス・セレクトパターンジェネレータ３で発生された画像から抽出するライン毎のセレクトパターンと回転画像記憶レジスタ１とをビット対応の論理演算を行って抽出した画像を出力レジスタ５に格納するようにしている。
【００１９】
また、マトリックス・セレクトパターンジェネレータ３の（０，０）の位置に１および他のビットを全て０にセットした後、回転角度指定レジスタ２にセットされている回転角度指定パラメータが０のときに横方向、１のときに斜め下あるいは上方向にビット１をセットすることを繰り返して１ライン分のセレクトパターンを生成し、生成したセレクトパターンと回転画像記憶レジスタ１とのビット対応の論理演算を行ってその結果を出力レジスタ５に設定することを、全ライン分繰り返すようにしている。
【００２０】
また、マトリックス・セレクトパターンジェネレータ３で生成された１ライン分のセレクトパターンのうち任意の１ビットのみを有意および他のビットを全て０にした第２の１ライン分のセレクトパターンを抽出し、第２の１ライン分のセレクトパターンと回転画像記憶レジスタ１とのビット対応の論理積演算を行った後に１ライン分の各ビットの論理和演算を行い、その結果を任意の１ビットに対応する出力レジスタ５のビット位置に格納することを１ライン分繰り返し、１ライン分の回転処理を行うようにしている。
【００２１】
従って、画像の任意角度の回転処理において、任意角度に対応するパラメータを回転角度指定レジスタ２にセットすると、パラメータをもとにジェネレータ３でセレクトパターンを自動生成し、自動生成したセレクトパターンと元の画像を格納したレジスタ１とのライン毎などに論理演算を行って回転後の画像を自動抽出して回転画像を生成することにより、任意角度に対応するパラメータをセットするのみでハードウェアにより画像を任意角度に高速回転することが可能となる。
【００２２】
【発明の実施の形態】
次に、図１から図９を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００２３】
図１は、本発明のシステム構成図を示す。ここで、図１は、後述する図３の１回目、図４の２回目と同様の回転処理を行った１６回目の様子を示し、回転対象の元の画像を説明を簡単にするために１６画素×１６画素の画像としたものである。
【００２４】
図１において、回転画像記憶レジスタ１は、回転対象のラスタ画像（１６画素×１６画素）を記憶するレジスタである。ここでは、漢字の「白」のラスタ画像（ドットパターン画像）を記憶させた様子を示す。
【００２５】
回転角度指定レジスタ２は、任意の回転角度の回転角度指定パラメータをセットするものである。ここでは、後述する図７の（ａ−１）に示す角度αだけ時計方向に回転させるときの、回転角度指定パラメータ「０１０１０１０１０１０１０１０１」（合計１６ビット）を設定した様子を示す。
【００２６】
マトリックス・セレクトパターンジェネレータ３は、回転角度指定レジスタ２にセットされた回転角度指定パラメータをもとにセレクトパターンを生成するものである。ここで、１回目は図３のマトリックス・セレクトパターンジェネレータ３に示すように、ラインセレクト位置００にセットし、（０，０）の位置に１（●）を設定し、回転角度指定パラメータが０のときに右側、１のときに右下に１（●）を設定することを繰り返して１ライン分のセレクトパターンを発生する（同様に、２回目、１６回目は後述する図４、図１のマトリックス・セレクトパターンジェネレータ３の●のセレクトパターン参照）。
【００２７】
マトリックス・ラインセレクタ４は、回転画像記憶レジスタ１に記憶されている元の画像中から、マトリックス・セレクトパターンジェネレータ３に設定されているセレクトパターンに対応する元の画像の１ライン分の各画素のデータを抽出して設定するものである（詳細は、図５から図９を用いて後述する）。
【００２８】
出力レジスタ５は、マトリックス・ラインセレクタ４に抽出された１ライン分の画素のデータを設定して回転後の画像を生成するものである（詳細は、図５から図９を用いて後述する）。
【００２９】
制御部６は、全体を統括制御するものである（図２から図９を用いて後述する）。
【００３０】
以上のように、回転画像記憶レジスタ１に回転対象の画像を記憶させ、回転角度指定レジスタ２に任意回転に対応する回転角度指定パラメータ（図７参照）を設定すると、制御部６が自動的に１ライン毎にマトリックス・セレクトパターンジェネレータ３に回転角度指定レジスタ２に設定された回転角度指定パラメータをもとに回転画像記憶レジスタ１から抽出する１ライン分の位置をセレクトパターンとして自動発生し、当該セレクトパターンに対応する位置のデータを回転画像記憶レジスタ１から１ライン分抽出してマトリックス・ラインセレクタ４に設定し、当該マトリックス・ラインセレクタ４に設定された回転後の１ライン分の画像のデータを出力レジスタ５の該当位置に格納することをライン毎に繰り返して回転後の画像をハードウェアにより生成することが可能となる。以下順次詳細に説明する。
【００３１】
図２は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、元画像から１６×１６画素分を回転画像記憶レジスタ１に格納する。これは、元画像が大きい場合には、分割してここでは、１６×１６画素分を図１の回転画像記憶レジスタ１に格納する。
【００３２】
Ｓ２は、回転角度指定レジスタ２にパラメータを設定する。これは、図１の回転角度指定レジスタ２に、例えば後述する図７の（ａ−１）に示す角度αだけ時計方向に回転させる場合には当該角度αに対応する方向を表す回転角度指定パラメータ、ここでは、「０１０１０１０１０１０１０１０１」（１６ビット）を設定する。
【００３３】
以上のＳ１、Ｓ２で設定を終了し、回転処理開始を指示すると後述する図５から図９の手順およびハードウェアにより、自動的に図２のＳ３からＳ１２の処理を高速実行して回転画像を生成することが可能となる。
【００３４】
Ｓ３は、マトリックス・セレクトパターンジェネレータ３の００の位置に１を立てたセレクトパターンを発生する（１回目）。これは、後述する図３の（ｃ）のマトリックス・セレクトパターンジェネレータ３に示すように、ラインセレクト位置００（１回目）に１（●）を設定し、回転角度指定レジスタ２にセットされた回転角度指定パターン例えば「０１０１０１０１０１０１０１０１」のビットが０のときに右側、１のときに右上に１（●）を設定することを繰り返した図３の（ｃ）のマトリックス・セレクトパターンジェネレータ３に示すセレクトパターンを発生する（１回目）。
【００３５】
Ｓ４は、生成されたセレクトパターンに相当する回転画像記憶レジスタ１のｂｉｔを抽出し、マトリックス・ラインレジスタ４に格納する。これは、後述する図３の（ｃ）のマトリックス・セレクトパターンジェネレータ３に生成されたセレクトパターンに対応する、図３の（ａ）の回転画像記憶レジスタ１のビット位置から画像データを抽出し、マトリックス・ラインレジスタ４に図示のように設定する（□（内部が黒）が１、□（内部が白）が０を表す）。
【００３６】
Ｓ５は、ラインレジスタのＤＬを、出力レジスタ５の座標（０，０）に格納する。これは、後述する図３の（ｄ）のマトリックス・ラインレジスタ４のＤＬを、図３の（ｅ）の出力レジスタ５の座標（０，０）の位置から図示のように格納する。
【００３７】
Ｓ６は、マトリックス・ラインレジスタ４のいＮＬを、ＤＬに対し、
・Ｘ方向にオフセット＝−８
・Ｙ方向にオフセット＝１６
をつけ、出力レジスタ５に格納する。これは、後述する図３の（ｄ）のマトリックス・ラインレジスタ４のＮＬのデータを、図３の（ｅ）のマトリックス・セレクトパターンジェネレータ３の、Ｘ方向にオフセット＝−８、Ｙ方向にオフセット＝１６の位置を先頭に図示のように格納する。ここで、”−８”は、右下に記載したように、回転角度指定パラメータ中のｂ’１’が立っている個数に従う。
【００３８】
Ｓ７は、最終ラインか判別する。ＹＥＳの場合には、全ラインについて回転処理を終了したので、Ｓ１２で出力レジスタ５の内容（回転後の画像）を出力メモリに書き込み、終了する。一方、ＮＯの場合には、Ｓ８からＳ１１で２回目（２ライン目）以降の処理を繰り返し、ここでは、１６回目まで繰り返す。
【００３９】
Ｓ８は、２回目として、マトリックス・セレクトパターンジェネレータ３の０１の位置に１を立ててセレクトパタンを発生する。これは、Ｓ３と同様に、図４の（ｃ）のマトリックス・セレクトパターンジェネレータ３に示すように、ラインセレクト位置０１に１（●）を立て、回転角度指定レジスタ２に設定されている回転角度指定パラメータが０のとき右、１のとき右上に●を発生することを繰り返してセレクトパターンを図示のように発生する。そして、Ｓ９からＳ１１で、既述したＳ４からＳ６と同様にして、図４の（ｅ）の出力レジスタ５に示すように２回目のラインの回転後の画像を設定する。ここで、Ｓ１０のときに右下に記載したように、Ｘ方向オフセットは、１つ手前の回転角度指定レジスタ２のｂｉｔ値を見て、ｂ’０’の時はオフセット０、ｂ’１’の時はオフセットー１をつける。そして、同様に、３回目から１６回目まで繰り返すと、既述した図１の（ｅ）の出力レジスタ５に示すように回転後の画像を格納する。
【００４０】
以上のように、元画像を回転画像記憶レジスタ１に格納および任意回転に対応する回転角度指定パラメータを回転角度指定レジスタ２にセットし、回転処理開始すると、後述する図５から図９のハードウェアにより自動的に回転後の画像を出力レジスタ５にライン毎に順次格納し、回転処理を終了すると、図示外の出力メモリに出力することが可能となる。
【００４１】
図３は、本発明の説明図（１回目）を示す。これは、既述した図２のフローチャートのＳ３からＳ６の１回目の回転処理の例を示す。ここで、図３の（ａ）の回転画像記憶レジスタ１、図３の（ｂ）の回転角度指定レジスタ２、図３の（ｃ）のマトリックス・セレクトパターンジェネレータ３、図３の（ｄ）のマトリックス・ラインレジスタ４、図３の（ｅ）の出力レジスタ５、および制御部６は、図１の同一番号のものと同一である。
【００４２】
図３の（ａ）は、漢字”白”の画像を格納した回転画像記憶レジスタ１の例を示す。
【００４３】
図３の（ｂ）は、図７の（ａ−１）の角度αの回転角度指定パラメータを回転角度指定レジスタ２に設定した例を示す。
【００４４】
図３の（ｃ）は、ラインセレクト位置００に１（●）を設定して生成したセレクトパターンの例を示す。ここでは、ラインセレクト位置００に１（●）を設定し、当該１（●）を回転角度指定レジスタ２に設定された回転角度指定パラメータ「０１０１０１０１０１０１０１０１」の０のときに右、１のときに右下に１（●）を設定することを繰り返して自動生成したセレクトパターンの例を示す。
【００４５】
図３の（ｄ）は、マトリックス・ラインレジスタ４の例を示す。ここでは、図示のマトリックス・ラインレジスタ４には、図３の（ａ）の回転画像記憶レジスタ１に設定されている画像から、図３の（ｃ）のマトリックス・セレクトパターンジェネレータ３に設定されているセレクトパターンに対応する画素のデータを抽出して１ライン分を設定したものである。
【００４６】
図３の（ｅ）は、出力レジスタ５の例を示す。ここでは、図３の（ｄ）のマトリックス・ラインレジスタ４のＤＬを図３の（ｅ）の出力レジスタ５の座標（０，０）の位置から設定およびＤＬに対してＮＬを、Ｘ方向オフセットー８、Ｙ方向オフセット１６の位置から設定したものである。
【００４７】
以上のハードウェア構成により、画像を回転画像記憶レジスタ１に設定および角度α（図７の（ａ−１）参照）に対応する角度指定パラメータ「０１０１０１０１０１０１０１０１」を設定し、回転処理開始を指示すると、出力レジスタ５に図示の回転後の画像がハードウェアにより設定されて出力されることとなる。
【００４８】
図４は、本発明の説明図（２回目）を示す。これは、既述した図２のフローチャートのＳ８からＳ１１の２回目の回転処理の例を示す。ここでは、図３の（ａ）から（ｅ）で説明した当該図４と同一の図示のハードウェア構成において、図３で回転画像記憶レジスタ１および回転角度指定レジスタ２に設定した状態で、２回目の処理、即ち、ラインセレクト位置０１に１（●）を設定し、当該１（●）を回転角度指定レジスタ２に設定された回転角度指定パラメータ「０１０１０１０１０１０１０１０１」の０のときに右、１のときに右上に１（●）を設定することを繰り返してセレクトパターンを自動生成し、当該セレクトパターンにより回転画像レジスタ１から該当する位置の画像データをマトリックス・ラインレジスタ４に設定し、更に、マトリックス・ラインレジスタ４のＤＬを図４の（ｅ）の出力レジスタ５の座標（０，１）の位置から設定およびＤＬに対してＮＬを、Ｘ方向オフセットー８、Ｙ方向オフセット１６の位置から設定して図示の２回目の回転処理結果を生成する。
【００４９】
同様に、３回目・・・１６回目を繰り返すと、既述した図１の出力レジスタ５の回転処理後の画像を生成することが可能となる。
【００５０】
次に、図５から図９を用いてハードウェア回路による処理手順を詳細に説明する。
【００５１】
図５は、本発明の動作説明フローチャート（ハードウェア）を示す。
図５において、Ｓ２１は、マトリックス・セレクトパターンジェネレータ３のラインセレクト入力にｂ’１’＋ａｌｌ’０’（ビット１が’１’、他のビットの全てが’０’）のパターンを入力し、セレクトパターンを生成する。これにより、
・１回目は既述した図３の（ｃ）に示すセレクトパターン（●）が生成される）。
【００５２】
・２回目以降は、１の立つビットをシフトしていき、図４の（ｃ）のセレクトパターン（●）、同様に、１６回目に図１の（ｃ）のセレクトパターン（●）が生成される）。
【００５３】
Ｓ２２は、回転画像記憶レジスタ１からＰＩＣ（０，０）〜ＰＩＣ（１５，１５）を出力する。これは、図１の回転画像記憶レジスタ１から１６ビット×１６ビットの元の画像の全ビットを常に出力する。
【００５４】
Ｓ２３は、マトリックス・セレクトパターンジェネレータ３より、ＳＥＬ（０，０）〜ＳＥＬ（１５，１５）を出力する。
【００５５】
Ｓ２４は、ＡＮＤ・ＯＲ演算する。
Ｓ２５は、境界越え（ＣＬＭ０〜ＣＬＭ１５にｂ’１’が立つ）を判定し、境界越えが起こる前のビットをマトリックス・ラインレジスタ４のＤＬに、境界越えた起こった後のビットをマトリックス・ラインレジスタ４のＮＬに格納する。これらＳ２４、Ｓ２５は、Ｓ２２で回転画像記憶レジスタ１から出力される元の画像の全ビットであるＰＩＣ（０，０）〜ＰＩＣ（１５，１５）と、Ｓ２３でマトリックス・セレクトパターンジェネレータ３から出力されるセレクトパターンのビット位置のみ１、他は全て０であるセレクト（０，０）〜ＳＥＬ（１５，１５）からの出力とのビット対応のＡＮＤ演算（論理積演算）し、そのＡＮＤ演算結果についてライン方向の各ビット毎に当該ライン方向と直行方向の全ビット（例えば（０，０）から（１５，０））のＯＲ演算（論理和演算）を行い、結果として元の画像中からセレクトパターンが１（黒）のビットの画像データ（１あるいは０）を抽出してマトリックス・ラインレジスタ４に設定する。この際、後述する図８の４ビット×４ビットのマトリックス・セレクトパターンジェネレータ３の回路例に示すように、境界越えを表すＣＬＭ０〜３（１６ビットのときはＣＬＭ０〜ＣＬＭ１５）にｂ’１’が立ったときに当該境界越えが起こる前のビットをマトリックス・ラインレジスタ４のＤＬに設定し、境界越えが起こった後のビットをマトリックス・ラインレジスタ４のＮＬに設定する。
【００５６】
Ｓ２６は、ＤＬとＮＬの値を出力レジスタ５に書き込む（既述した図２のＳ５、Ｓ６（１回目）、Ｓ１０、Ｓ１１（２回目以降）参照）。
【００５７】
Ｓ２７は、最終ラインか判別する。ＹＥＳの場合には、最終ラインまで出力レジスタ５に書き込んだので終了し、Ｓ２８で出力レジスタ５の内容を出力メモリに転送し、終了する。一方、ＮＯの場合には、次のラインについて、２回目以降の回転処理として、Ｓ２１からＳ２６を繰り返す。
【００５８】
以上の手順により、画像を回転角度指定レジスタ１および回転角度に対応する回転角度指定パラメータを回転角度指定レジスタ２にセットして処理開始し、ハードウェア回路により高速に任意角度回転させた画像を生成することが可能となる。以下ハードウェア回路例（４ビット×４ビット構成）を図６から図９に示す。
【００５９】
図６は、本発明の回転画像記憶レジスタ例を示す。図示の回転画像記憶レジスタ１は、４ビット×４ビットの画像を記憶するレジスタの例を示し、４×４個のＤ−フリップフロップ回路から構成されるものである。ここで、
・ＣＬＫは同期用のクロック信号
・ＷＥ０〜ＷＥ３は書き込み用信号
・ＰＩＣ３：０〜ＰＩＣ３：３は出力信号
である。ここでは、４行×４列の配列の画像データについて、クロックに同期して列（ここでは１列、４行）単位にＰＩＣ３：０〜ＰＩＣ３：３から順次出力し、後述する図８のマトリックス・セレクトパターンジェネレータ３のＳＥＬ０：３〜ＳＥＬ３：３から順次出力するデータとを論理積演算し、その結果を更に論理和演算した結果をマトリックス・ラインセレクタ４の該当ビット（列に対応するビット）に順次書き込み、回転後の画像の該当ラインの各ビットのデータを順次抽出して当該マトリックス・ラインセレクタ４に設定するようにしている。
【００６０】
図７は、本発明の回転角度指定パラメータ例を示す。
図７の（ａ）は、横方向に２、縦方向に１の直線の角度αに対応する回転角度指定パラメータ「０１０１０１・・・」の例を示す。回転角度指定パラメータは、任意の傾斜比率をＤＤＡ（デジタル微分解析）の手法にてパラメータを指定するものであり、図示のように、傾斜比率２：１の場合、０１０１０１０１・・・・と表す。傾斜比率が整数比でない場合は、切り上げ、切捨て、四捨五入などの手法にてビットの丸め込みを行ので、必ずしも整数比でなくてもよい。
【００６１】
図７の（ｂ）は、横方向に３、縦方向に１の直線の角度α’に対応する回転角度指定パラメータ「００１００１００１・・・」の例を示す。
【００６２】
図７の（ｃ）は、横方向に４、縦方向に１の直線の角度α’’に対応する回転角度指定パラメータ「０００１０００１０００１・・・」の例を示す。
【００６３】
図８は、本発明のマトリックス・セレクトパターンジェネレータ例を示す。マトリックス・セレクトパターンジェネレータ３は、図７のいずれかの回転角度指定パラメータを入力することにより、回転画像記憶レジスタ１中のビット抽出位置に対応するセレクトパターンを生成するものである。図示のマトリックス・セレクトパターンジェネレータ３は、４ビット×４ビットの回路構成例を示し、
・ＲＰ０〜ＲＰ３は回転角度指定パラメータの入力
・ＣＬＭＯ〜ＣＬＭ３は境界越え信号
・ＳＥＬ０：０〜ＳＥＬ３：３はセレクトパターン（２次元配列）
・Ｌ０〜Ｌ３はラインセレクト入力
をそれぞれ表す。
【００６４】
図示の構成で、回転角度指定レジスタ２から出力される回転角度パラメータをＲＰ０〜ＲＰ３に入力、および既述したように、１回目にラインセレクトト位置００に１、他を全て０とした信号をＬ０〜Ｌ３に入力、２回目にラインセレクト位置０１に１、他を全て０とした信号をＬ０〜Ｌ３に入力することを繰り返してセレクトパターンを発生させる。この際、ＣＬＭ０〜ＣＬＭ３はマトリックスのセレクトラインが右方に達する前に上方から出力されたことを検出し、検出されたときは再度、下方から入力する。
【００６５】
図９は、本発明のマトリックス・ラインレジスタ例を示す。図示のマトリックス・ラインレジスタ４は、図８のマトリックス・セレクトパターンジェネレータ３から出力されるセレクトパターンに従い、図６の回転画像記憶レジスタ１の該当画素を選択してライン出力する（図９の（ａ）のＡＮＤ回路で論理積演算した結果を、更に、ＯＲ回路で論理和演算してマトリックス・セレクトパターンの該当ビットにそれぞれ格納する）ことで、マトリックス・セレクトパターンジェネレータ３から出力されたセレクトパターンに対応する回転画像記憶レジスタ１の画像中からビットをそれぞれ抽出して１ライン分をマトリックス・ラインレジスタ４に格納することが可能となる。
【００６６】
図９の（ａ）は、マトリックス・ラインレジスタの回路例を示す。図示の回路により、回転画像記憶レジスタ１から出力された１列分の画像ＰＩＣ０：０〜ＰＩＣ０：３と、マトリックス・セレクトパターンジェネレータ３から出力された１列分のセレクトパターンの信号ＳＥＬ０：０〜ＳＥＬ０：３とのビット対応のＡＮＤ（論理積演算）し、その結果を更に列の各ビットの全行ビットのＯＲ（論理和演算）し、マトリックス・ラインレジスタ４の該当ビットに格納することを全ラインについて実行することにより、回転画像記憶レジスタ１中の画像からセレクトパターンで指定された位置の画素を順次抽出してマトリックス・ラインレジスタ４に格納することが可能となる。この際、図９の（ｂ）の回路のＮＳ０〜ＮＳ３で境界越えを判別し、ラインレジスタのＤＬ（境界越えする前のデータを格納）あるいはＮＬ（境界越えした後のデータを格納）のどちらにパターンを格納するかを決定する。
【００６７】
以上のようにして、画像からセレクトパターンで抽出した１ライン分のデータをＤＬあるいはＮＬに格納し、これらＤＬ，ＮＬの内容を既述した図２のＳ６、Ｓ１１に従い出力レジスタ５に格納し、次のラインについて同様に繰り返し、回転処理後の画像を出力レジスタ５に生成する。
【００６８】
（付記１）
ラスタ画像を任意角度に回転する画像回転装置において、
ラスタ画像を記憶する回転画像記憶レジスタと、
任意の回転角度指定パラメータをセットする回転角度指定レジスタと、
前記回転角度指定レジスタにセットされた回転角度指定パラメータをもとに前記回転画像記憶レジスタから抽出するセレクトパターンを発生するジェネレータと、
前記ジェネレータで発生されたセレクトパターンと前記回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタと
を備えたことを特徴とする画像回転装置。
【００６９】
（付記２）
前記ジェネレータで発生された画像から抽出するライン毎のセレクトパターンと前記回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタを備えたことを特徴とする付記１記載の画像回転装置。
【００７０】
（付記３）
前記ジェネレータの（０，０）の位置に１および他のビットを全て０にセットした後、前記回転角度指定レジスタにセットされている回転角度指定パラメータが０のときに横方向、１のときに斜め下あるいは上方向にビット１をセットすることを繰り返して１ライン分のセレクトパターンを生成し、当該生成したセレクトパターンと前記回転画像記憶レジスタとのビット対応の論理演算を行ってその結果を前記出力レジスタに設定することを、全ライン分繰り返すことを特徴とする付記１あるいは付記２記載の画像回転装置。
【００７１】
（付記４）
前記ジェネレータで生成された１ライン分のセレクトパターンのうち任意の１ビットのみを有意および他のビットを全て０にした第２の１ライン分のセレクトパターンを抽出し、当該第２の１ライン分のセレクトパターンと前記回転画像記憶レジスタとのビット対応の論理積演算を行った後に１ライン分の各ビットの論理和演算を行い、その結果を前記任意の１ビットに対応する前記出力レジスタのビット位置に格納することを１ライン分繰り返し、１ライン分の回転処理を行うことを特徴とする付記３記載の画像回転装置。
【００７２】
（付記５）
ラスタ画像を任意角度に回転する画像回転方法において、
ラスタ画像を記憶する回転画像記憶レジスタと、
任意の回転角度指定パラメータをセットする回転角度指定レジスタと、
前記回転角度指定レジスタにセットされた回転角度指定パラメータをもとに前記回転画像記憶レジスタから抽出するセレクトパターンを発生するジェネレータと、
前記ジェネレータで発生されたセレクトパターンと前記回転画像記憶レジスタとをビット対応の論理演算を行って抽出した画像を格納する出力レジスタと
を設け、
ラスタ画像を回転させる任意角度の指定に対応して、当該指定された任意角度に対応した回転角度指定パラメータを前記回転角度指定レジスタにセットして処理開始し、処理終了したときに前記出力レジスタから任意角度回転させたラスタ画像を取り出すステップを備えたことを特徴とする画像回転方法。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、画像の任意角度の回転処理において、任意角度に対応するパラメータを回転角度指定レジスタ２にセットすると、パラメータをもとにジェネレータ３でセレクトパターンを自動生成し、自動生成したセレクトパターンと、元の画像を格納したレジスタ１とのライン毎などに論理演算を行って回転後の画像を自動抽出して回転画像を生成する構成を採用しているため、任意角度に対応するパラメータをセットするのみでハードウェアにより画像を任意角度に高速回転することが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャートである。
【図３】本発明の説明図（１回目）である。
【図４】本発明の説明図（２回目）である。
【図５】本発明の動作説明フローチャート（ハードウェア）である。
【図６】本発明の回転画像記憶レジスタ例である。
【図７】本発明の回転角度指定パラメータ例である。
【図８】本発明のマトリックス・セレクトパターンジェネレータ例である。
【図９】本発明のマトリックス・ラインレジスタ例である。
【図１０】従来技術の説明図である。
【符号の説明】
１：回転画像記憶レジスタ
２：回転角度指定レジスタ
３：マトリックス・セレクトパターンジェネレータ
４：マトリックス・ラインレジスタ
５：出力レジスタ
６：制御部
【図１】
2004171448.tif 000003
【図２】
2004171448.tif 000004
【図３】
2004171448.tif 000005
【図４】
2004171448.tif 000006
【図５】
2004171448.tif 000007
【図６】
2004171448.tif 000008
【図７】
2004171448.tif 000009
【図８】
2004171448.tif 000010
【図９】
2004171448.tif 000011
【図１０】
2004171448.tif 000012