(57)【要約】【課題】メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータに対しても、高速な回転処理を実現する画像回転処理装置を提供する。【解決手段】９１はメモリアービターＩ／Ｆであり、画像回転処理装置の画像読み込み処理と、デイザデータの読み込み処理と処理後画像の書き込み処理のメモリアービターへの要求の調停を行い、９２の画像回転処理装置へ画像データを、転送し、処理後の画像をメモリアービターへ転送する。９２は画像回転処理装置であり、９１のメモリアービターＩ／Ｆから画像データを受け取り、９０度単位の回転処理を行い、処理結果を９１のメモリアービターＩ／Ｆへ転送する。９３はパラメータ格納装置であり、９２の画像回転処理装置が必要とするパラメータを格納する。【選択図】      図３
2004242212.tif 000002
【特許請求の範囲】
【請求項１】
メモリのワードデータをワード単位に読み込む固定長データ読み込み手段と、
１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算手段と、
前記固定長データ読み込み手段により読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出し手段と、
該画素切り出し手段により切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶手段と、
前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出し手段と、
回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算手段と、
該データタイプ演算手段により演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換手段と、
回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理手段と、
回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込み手段と、を備えたことを特徴とする画像回転処理装置。
【請求項２】
ソース画像の水平方向、垂直方向の画像サイズから、使用する水平及び垂直方向のＮ×Ｍ画素からなるブロックのブロック数を求めるブロック数生成手段と、
該ブロック数生成手段から受け取ったブロック数を基準として、現在読み込まれている画像データの水平及び垂直ブロック番号をカウントするブロックカウント手段と、
水平及び垂直方向のブロック数と、前記ソース画像の水平方向及び垂直方向の画像サイズと、処理中の水平及び垂直のブロック番号とから処理中のブロックの水平及び垂直方向の先端アドレスと終端アドレスを求める読み込みアドレス生成手段と、
メモリのワードデータをワード単位に読み込む固定長データ読み込み手段と、
１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算手段と、
前記固定長データ読み込み手段により読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出し手段と、
該画素切り出し手段により切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶手段と、
前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出し手段と、
回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算手段と、
該データタイプ演算手段により演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換手段と、
回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理手段と、
回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込み手段と、を備えたことを特徴とする画像回転処理装置。
【請求項３】
前記合成処理手段において、書き込むメモリワードのデータタイプから、書き込むメモリワードの先端ワードと終端ワードのマスクデータを生成するマスクデータ生成手段を備えることを特徴とする請求項１に記載の画像回転処理装置。
【請求項４】
前記合成処理手段において、書き込むメモリワードのデータタイプと処理中のブロックの水平、垂直方向の先端アドレスと終端アドレスから、書き込むメモリワードの先端ワードと終端ワードのマスクデータを生成するマスクデータ生成手段を備えることを特徴とする請求項２に記載の画像回転処理装置。
【請求項５】
メモリのワードデータをワード単位に読み込む固定長データ読み込みステップと、
１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算ステップと、
前記固定長データ読み込みステップにより読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出しステップと、
該画素切り出しステップにより切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶ステップと、
前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出しステップと、
回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算ステップと、
該データタイプ演算ステップにより演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換ステップと、
回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理ステップと、
回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込みステップと、を備えたことを特徴とする画像回転処理方法。
【請求項６】
ソース画像の水平方向、垂直方向の画像サイズから、使用する水平及び垂直方向のＮ×Ｍ画素からなるブロックのブロック数を求めるブロック数生成ステップと、
該ブロック数生成ステップから受け取ったブロック数を基準として、現在読み込まれている画像データの水平及び垂直ブロック番号をカウントするブロックカウントステップと、
水平及び垂直方向のブロック数と、前記ソース画像の水平方向及び垂直方向の画像サイズと、処理中の水平及び垂直のブロック番号とから処理中のブロックの水平及び垂直方向の先端アドレスと終端アドレスを求める読み込みアドレス生成ステップと、
メモリのワードデータをワード単位に読み込む固定長データ読み込みステップと、
１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算ステップと、
前記固定長データ読み込みステップにより読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出しステップと、
該画素切り出しステップにより切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶ステップと、
前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出しステップと、
回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算ステップと、
該データタイプ演算ステップにより演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換ステップと、
回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理ステップと、
回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込みステップと、を備えたことを特徴とする画像回転処理方法。
【請求項７】
請求項５又は６に記載の回転処理方法のプログラムコードが格納されたことを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像回転処理装置に関し、さらに詳しくは、１画素のデータ長がメモリの１ワードのデータ長の整数倍でないデータの場合でも、高速に回転処理可能な画像回転処理装置に関するものである。
【０００２】
【従来の技術】
従来から、画像を所定の角度に回転させて出力させる画像回転処理装置が提案されている。例えば、特開平２−２３５１８１号公報には、９０度単位の角度での回転処理をリアルタイムで行い、ページメモリに格納する装置について開示されている。これによると、入力された画像データが配置されるべきビットを含むページメモリの番地から１ワードを読み出し、前記のワード内のビット位置を指定し、このビット位置のデータを前記入力された画像データで書き換えて再びページメモリの同じ番地に書き込むことにより、最終的に１ページ分の回転画像が得られるようにしている。
これに対して特開平５−１０８８１２号公報には、９０度単位の角度での画像回転処理を高速で実行可能な装置について開示されている。これによると、この装置は回転処理を施した後の画像データを出力するために、２つのバッファーメモリを有している。この装置に順次入力される画像データは、１画素の階調数を示す１画素あたりのビット数（以下、画像構造とよぶＮとページメモリの１ワードのビット幅Ｍとの比率がＭ／Ｎライン分のデータより１つのブロックを構成し、このブロック単位で、２つのバッファーメモリに交互に書き込まれるようになっている。
また、この装置では、バッファメモリに書き込まれた１ブロック分の画像データを、回転角度に応じてバッファメモリ読み出し制御で生成される読み出しアドレスから、順次読み出し、読み出したデータを並び替えて、指定された角度で回転処理されたページメモリの１ワード分に対応したデータを生成する。そして生成された１ワードのデータを、指定された回転角度に応じて算出されたページメモリのアドレスに書込むことによって、順次入力された画像データに対して指定された回転処理を施し、ページメモリ上に展開することができるとしている。
一方、特開平７−１２１６９３号公報には、前記同様に９０度単位の高速回転処理を、画像構造が異なる画像データに対して対応できるような装置について開示されている。これによると、画像構造を設定する画像構造レジスタを有し、このレジスタに設定された画像構造に応じてバッファメモリ書込み制御部及びバッファメモリ読み出し制御部の処理と、バッファメモリから読み出したデータのワード合成部での処理とを制御することにより、複数種類の画像構造に対応できるとしている。
【特許文献１】特開平２−２３５１８１号公報
【特許文献２】特開平５−１０８８１２号公報
【特許文献３】特開平７−１２１６９３号公報
【０００３】
【発明が解決しようとする課題】
しかし、特許文献１は画像データが入力するたびに１ワードの書き換え処理を行わなければならいため、画像データの入力速度はこの読み込み処理と書込み処理を行う際のページメモリのアクセス速度を超えることができず、高速化処理を行うことができないといった問題がある。
また、上記の特許文献１〜３では、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍である必要があった。そのため、例えば、ＲＧＢ画像を２４ＢＩＴで持つ場合、２４ＢＩＴの整数である例えば２４ＢＩＴ、４８ＢＩＴなどのようなＢＩＴ数であるか、ＣＰＵによりＲ、もしくはＧ、もしくはＢの単独のプレーン情報に変換後に回転処理させる必要があった。
しかし、回転処理させるために、ＣＰＵでデータ変換させる場合、処理効率が低下する。
また、２４ＢＩＴ、４８ＢＩＴのデータ幅のメモリはあまり存在せず、やはり、ＣＰＵ、メモリ、バスのことを考え、３２ＢＩＴ、６４ＢＩＴなどのデータ幅メモリが望ましい。
本発明は上記の従来の問題点に鑑み、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータに対しても、高速な回転処理を実現する画像回転処理装置を提供することを目的する。
【０００４】
【課題を解決するための手段】
本発明はかかる課題を解決するために、請求項１は、メモリのワードデータをワード単位に読み込む固定長データ読み込み手段と、１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算手段と前記固定長データ読み込み手段により読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出し手段と、該画素切り出し手段により切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶手段と、前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出し手段と、回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算手段と、該データタイプ演算手段により演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換手段と、回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理手段と、回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込み手段と、を備えたことを特徴とする。
【０００５】
固定長データ読み込み手段は、メモリアービターＩ／Ｆから受け取ったメモリのワードデータを、処理するＮ×Ｍ画素のブロックの水平方向の画素を全て含む複数のワードデータを読み込み、画素切り出し手段へ転送する。画素切り出し手段は、固定長データ読み込み手段からソース画像のブロックごとの水平方向の画素データを全て含む複数のメモリのワードデータを受け取り、読み込みアドレス生成手段から、入力された複数のメモリのワードデータがどのデータタイプかを示す信号を受け取り、固定長データ読み込み手段からの複数のメモリのワードデータからブロックの水平方向の画素をすべて切り出し、画素記憶手段へ転送する。画素記憶手段は、画素切り出し手段から切り出されたブロックの水平方向の全ての画素データを順次受け取り、１ブロックを形成するＮ×Ｍの画素を記憶し、固定長データ生成手段へ指定された９０度単位の回転方向に基づき、回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てを順次転送する。固定長データ生成手段は、画素記憶手段からの回転後の書き込むメモリの複数のワード方向が水平方向になるように、ブロックの水平方向の画素を全てと、書き込みアドレス生成手段から出力される複数のメモリのワードデータがどのデータタイプかを示すタイプデータを受け取り、画素記憶手段からの画素データを前記タイプデータにもとずき、書き込むメモリアドレスの複数のワードデータを生成する。データ合成処理手段は、固定長データ生成手段からの書き込むメモリアドレスの複数のワードデータと、書き込みアドレス生成手段から出力される複数のメモリのワードデータがどのデータタイプかを示すタイプデータと、固定長データ読み込み手段からの書き込むメモリアドレスのデータを読み込み、先頭と終端にある余白データに書き込むメモリアドレスの書込み前にあるデータを合成し、固定長データ書込み手段へ転送する。固定長データ書込み手段は、データ合成処理手段からの合成されたデータを受け取り、メモリアービターＩ／Ｆへ転送する。
かかる発明によれば、このような手段構成により、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータに対しても、高速に（複数の画素を並列に処理するため）回転処理が可能である。
【０００６】
請求項２は、ソース画像の水平方向、垂直方向の画像サイズから、使用する水平及び垂直方向のＮ×Ｍ画素からなるブロックのブロック数を求めるブロック数生成手段と、該ブロック数生成手段から受け取ったブロック数を基準として、現在読み込まれている画像データの水平及び垂直ブロック番号をカウントするブロックカウント手段と、水平及び垂直方向のブロック数と、前記ソース画像の水平方向及び垂直方向の画像サイズと、処理中の水平及び垂直のブロック番号とから処理中のブロックの水平及び垂直方向の先端アドレスと終端アドレスを求める読み込みアドレス生成手段と、メモリのワードデータをワード単位に読み込む固定長データ読み込み手段と、１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算手段と前記固定長データ読み込み手段により読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出し手段と、該画素切り出し手段により切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶手段と、前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出し手段と、回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算手段と、該データタイプ演算手段により演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換手段と、回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理手段と、回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込み手段と、を備えたことを特徴とする。
本発明は請求項１と比較して、更にブロック数生成手段、ブロックカウント手段及び読み込みアドレス生成手段を備えたものである。そしてブロック数生成手段は、パラメータ格納装置から受け取ったソース画像のＸ幅、Ｙ幅からＮ×Ｍ画素のブロックがＸ、Ｙ方向に何個あるか（ブロック数を求め、ブロックカウント手段と、余りＸ、Ｙ値生成手段へ送る。ブロックカウント手段は、ブロック数生成手段から受け取ったＸ、Ｙ方向のブロック数を基準とし、メモリアービターＩ／Ｆからの読み込む画像データを管理し、現在読み込まれた画像データがＸ、Ｙ方向に何番目のブロックであるかカウントしていく。また読み込みアドレス生成手段は、パラメータ格納装置からソース画像データのスタートアドレスと、ソース画像のＸ幅、Ｙ幅とブロックカウント手段からの処理するブロックのＸ、Ｙの番号とから、読み込むソース画像のブロックのアドレスを生成する。
かかる発明によれば、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータで、且つソース画像がＬ×Ｋブロックにちょうど収まらない画像に対しても高速に回転処理が可能である。
【０００７】
請求項３は、前記合成処理手段において、書き込むメモリワードのデータタイプから、書き込むメモリワードの先端ワードと終端ワードのマスクデータを生成するマスクデータ生成手段を備えることを特徴とする。
合成処理手段はマスクデータ生成手段と合成処理手段から構成され、マスクデータ生成手段は、書き込むメモリアドレスのデータタイプにより、書き込まれる前のデータと回転後データを合成するための、回転後の有効データの範囲をマスクする有効データのスタートアドレスと終端アドレスを生成する。また合成処理は、書き込まれる前のデータと回転後のデータとマスク生成手段からのマスク情報から書き込むデータを生成する。
かかる発明によれば、請求項１と同様の作用効果を奏する。
請求項４は、前記合成処理手段において、書き込むメモリワードのデータタイプと処理中のブロックの水平、垂直方向の先端アドレスと終端アドレスから、書き込むメモリワードの先端ワードと終端ワードのマスクデータを生成するマスクデータ生成手段を備えることを特徴とする。
かかる発明によれば、請求項２と同様の作用効果を奏する。
【０００８】
請求項５は、メモリのワードデータをワード単位に読み込む固定長データ読み込みステップと、１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算ステップと、前記固定長データ読み込みステップにより読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出しステップと、該画素切り出しステップにより切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶ステップと、前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出しステップと、回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算ステップと、該データタイプ演算ステップにより演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換ステップと、回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理ステップと、回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込みステップと、を備えたことを特徴とする。
かかる発明によれば、請求項１と同様の作用効果を奏する。
請求項６は、ソース画像の水平方向、垂直方向の画像サイズから、使用する水平及び垂直方向のＮ×Ｍ画素からなるブロックのブロック数を求めるブロック数生成ステップと、該ブロック数生成ステップから受け取ったブロック数を基準として、現在読み込まれている画像データの水平及び垂直ブロック番号をカウントするブロックカウントステップと、水平及び垂直方向のブロック数と、前記ソース画像の水平方向及び垂直方向の画像サイズと、処理中の水平及び垂直のブロック番号とから処理中のブロックの水平及び垂直方向の先端アドレスと終端アドレスを求める読み込みアドレス生成ステップと、メモリのワードデータをワード単位に読み込む固定長データ読み込みステップと、１画素のサイズと前記ワードデータのサイズの関係から読み込むメモリのワードデータ中の画素データタイプを演算する読み込みデータタイプ演算ステップと、前記固定長データ読み込みステップにより読み込まれたメモリのワード単位のデータと、該データ中に埋め込まれる画素のデータタイプを使用して、複数の画素を切り出す画素切り出しステップと、該画素切り出しステップにより切り出された画素を１ブロックを形成するＮ×Ｍ画素単位で記憶する画素記憶ステップと、前記１ブロックの画素を回転処理後に水平方向となる方向に順次読み出す水平方向読み出しステップと、回転処理後の水平方向の複数の画素データを書き込むメモリのワードデータ中の画素データタイプを演算する書き込みデータタイプ演算ステップと、該データタイプ演算ステップにより演算されたデータタイプを使用して、メモリワードへ変換するメモリワード変換ステップと、回転処理後の変換された複数のメモリのワードデータの有効領域を演算し、書込み前データと合成処理を行う合成処理ステップと、回転処理後の変換された複数のメモリのワードデータをメモリに書き込む書き込みステップと、を備えたことを特徴とする。
かかる発明によれば、請求項２と同様の作用効果を奏する。
【０００９】
請求項７は、請求項５又は６に記載の回転処理方法のプログラムコードが格納されたことを特徴とする。
本発明の目的はソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵが記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
かかる発明によれば、記憶媒体から読出されたプログラムコード自体が実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することができる。
【００１０】
【発明の実施の形態】
以下、本発明を図に示した実施形態を用いて詳細に説明する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
図１は、本発明を実施した多色画像形成装置の機構部の構成例を示す図である。この多色画像形成装置において、１は像担持体であるベルト状の感光体であり、その感光体１は回転ローラ２、３により回動可能に支持され、その各回転ローラ２、３の駆動により矢示Ａ方向に回動される。感光体１の外周部には、帯電手段である帯電装置４、除電ランプＬ、感光体１用のクリーニングブレード１５Ａが配置されている。帯電装置４の下流位置には、光書込手段であるレーザ書き込みユニット５より発せられるレーザ光が照射される光書き込み部がある。
光書き込み部より下流位置には、複数の現像ユニット（現像手段が切り換え自在に支持された多色現像装置６が配置されている。多色現像装置６は、収容するトナーの色毎に、イエロー現像ユニット、マゼンダ現像ユニット、シアン現像ユニットを備えている。多色現像装置６の上部には、黒色トナーを収容したブラック現像ユニット７が備えられている。
これらの各現像ユニットのいずれか１つが対応する色の現像タイミングに同期し、現像可能な位置に移動する。多色現像装置６は、円周上１２０度の回転によっていずれかの現像ユニットを選択する機能を有している。そして、これらの現像ユニットが稼動するときには、ブラック現像ユニット７は感光体１より離間した位置に移動する。その移動は、カム４５の回転により行なわれる。
レーザ書き込みユニット５は、図示しないレーザ光源から複数色の画像形成信号（書き込み情報に応じたレーザ光を順次発生させ、ポリゴンモータ５Ａによって回転されるポリゴンミラー５Ｂを用いてそのレーザ光を周期的に偏向させ、ｆθレンズ５Ｃ及びミラー５Ｄなどを経て、帯電された感光体１の表面を走査してその表面に静電潜像を形成させる。
【００１１】
感光体１の表面に形成される静電潜像は、対応する現像ユニットからのトナーによって現像され、トナー画像が形成・保持される。中間転写ベルト１０は、感光体１に隣接しており、回転ローラ１１、１２により矢示Ｂ方向に回動可能に支持されている。感光体１上のトナー画像は、中間転写ベルト１０の裏側にある転写ブラシ（第１の転写手段１３により、その中間転写ベルト１０の表面に転写される。
感光体１の表面は１色毎にクリーニングブレード１５Ａによりクリーニングされ、その表面に所定色のトナー画像が形成される。そして、その都度中間転写ベルト１０の１回動毎にその表面の同じ位置に感光体１上のトナー画像が転写されて、中間転写ベルト１０上に複数色のトナー画像が重ね合わせられて保持される。その後、そのトナー画像は用紙やプラスチック等の記録媒体に転写される。
用紙への転写に際しては、給紙装置（給紙カセット１７に収納されている用紙が給紙ローラ１８によって繰り出されて搬送ローラ１９により搬送され、レジストローラ対２０に付き当てられた状態で一旦停止された後、トナー画像の転写位置が正規のものとなるようにタイミングがとられて中間転写ベルト１０と転写ローラ（第２の転写手段１４のニップに再搬送される。そして、その用紙は転写ローラ１４の作用により中間転写ベルト１０上の複数色のトナー画像が一括転写された後、定着装置５０に送られ、そこでトナー像が定着された後、排紙ローラ対５１により本体フレーム９の上部の排紙スタック部５２に排出される。
中間転写ベルト１０には、回転ローラ１１の部位に中間転写ベルト１０用のクリーニング装置１６が設けられ、クリーニングブレード１６Ａがクリーニングブレード接離用アーム１６Ｃを介して接離自在の構成となっている。このクリーニングブレード１６Ａは、感光体１からトナー画像を受け取る工程では、中間転写ベルト１０から離れ、中間転写ベルト１０より用紙にトナー画像が転写された後に接触するようになっていて、用紙にトナー画像が転写された後の残留トナーをかきとる。
クリーニングブレードは、すでに記したように、感光体１用と中間転写ベルト１０用がある。これらブレードがかきとった廃トナーは、回収容器１５に収納する。その回収容器１５は適宜交換される。中間転写ベルト１０用のクリーニング装置１６の内部に設けられたオーガ１６Ｂが、クリーニングブレード１６Ａでかきとられた廃トナーを搬送し、図示しない搬送手段で回収容器１５に送るようになっている。
３１はユニット化されたプロセスカートリッジで、感光体１、帯電装置４、中間転写ベルト１０、クリーニング装置１６、用紙搬送路を形成する搬送ガイド３０などを一体に組み込み、寿命到来時に交換できるように構成されている。プロセスカートリッジ３１の交換のほかに、多色現像装置６、ブラック現像ユニット７なども寿命到来時に交換するが、その交換性やジャム紙の処理を容易にするため、本体の一部の前フレーム８は支軸９Ａを中心に開閉可能に回動できる構造にしてある。また図１の左側には、電装・制御装置６０が収納されている。その上方には、ファン５８が備えられており、機内の温度過昇防止のために排風する。図の右側には、比較的小規模な別の給紙装置５９が備えられている。なお、この実施形態では、中間転写体として中間転写ベルト１０を使用したが、中間転写ドラムを使用することもできる。
【００１２】
図２は図１の電装・制御装置６０のブロック図である。７１は主に画像メモリ７９を操作をする画像メモリアクセラレータであり、ＣＰＵ７７にコントロールされ、ネットワーク通してホストコンピュータから画像データを受け取り、メモリ７９へ転送し、また、その画像データをエンジンコントローラ８３へ転送しプリントアウトなどを行う。この時に、各ホストとの通信や、画像メモリ７９のコントロールや、パネル８６から操作された情報を得る為や、プリンタエンジンコントローラ８３などの周辺とのバスコントロールなどを行う。
７２バスコントローラであり、バス８７とつながる各周辺コントローラとのバスの調停を行う。７３はメモリアービターであり、７９のメモリと各種のコントローラ間の調停を行う。７４はローカルＩ／Ｆであり、７５のＲＯＭなどのインタフェースであり、７３のメモリアービターを介して、７９のメモリや、７７のＣＰＵと接続されている。７５はＲＯＭであり、各種のプログラムや、文字などのフォント情報を格納している。７６はＣＰＵ  Ｉ／Ｆであり、７７のＣＰＵのインタフェースであり、７３のメモリアービターを介して、メモリや各種コントローラと接続されている。７７はＣＰＵであり、プリンタ  装置全体の制御を行う。７８はメモリコントローラであり、７９のメモリをコントロールし、７３のメモリアービターを介して、各種コントローラやＣＰＵと接続されている。
７９はメモリであり、画像データや、その符号データや、ＣＰＵのプログラムなどを格納している。８０は通信コントローラであり、ネットワークに接続されており、ネットワークから各種データやコマンドなどを受け取り、７３のメモリアービターを介して各種のコントローラに接続されている。８２は本発明の回転処理装置であり、７７のＣＰＵからの命令により７９のメモリより、画像を読み込み回転処理後に７９のメモリへ回転処理後の画像を書き込む。
８３はエンジンコントローラであり、８７のバスと接続されており、８４のプリンタエンジンをコントロールする。８４はプリンタエンジンである。８５はパネルコントローラであり、８６のパネルをコントロールしている。８６はパネルであり、ユーザーからの操作をプリンタ装置へ知らせる。８７はバスであり、７１の画像メモリアクセラレータと各種周辺コントローラとを接続する。８１はＤＭＡであり、７８のメモリコントローラと８７のバスに接続されたエンジンコントローラ間のダイレクトメモリアクセスを行う。
【００１３】
図３は本発明の回転処理装置の概念図である。９１はメモリアービターＩ／Ｆであり、画像回転処理装置の画像読み込み処理と、デイザデータの読み込み処理と処理後画像の書き込み処理のメモリアービターへの要求の調停を行い、９２の画像回転処理装置へ画像データを、転送し、処理後の画像をメモリアービターへ転送する。
９２は画像回転処理装置であり、９１のメモリアービターＩ／Ｆから画像データを受け取り、９０度単位の回転処理を行い、処理結果を９１のメモリアービターＩ／Ｆへ転送する。９３はパラメータ格納装置であり、９２の画像回転処理装置が必要とするパラメータを格納する。図１６にブロック図を示す。
図４は回転処理例を示す図であり、このように９０度単位に０度、９０度、１８０度、２７０度の回転処理を行う。
図５の回転処理の例を示す。本方式は指定されたメモリ領域のソース画像をＮ×Ｍのブロックに分割し、Ｎ×Ｍのブロック単位でデータを読み込み、回転処理後に指定されたメモリ領域に書き込みを行い、最終的に全画像の回転処理を終了する。
図８にメモリのワードサイズと１画素のサイズの関係を示す。この例では、画素はＲＧＢデータの２４ＢＩＴであり、ワードサイズは３２ＢＩＴである。この場合、この図のように３つのＴＹＰＥが交互に並んでいく。
図６に４×４のブロックの回転処理を示す。タイミングチャートは、メモリのリード／ライトを示す。まず４×４のソース画像を読み込む、回転処理後に、書込み前のメモリ領域から、水平方向にデータを読み込み（これは、画素のデータサイズとメモリのワードサイズが整数倍でないために、図９のように、複数の組み合わせが存在し、先端のワードと、終端ワードに余白が存在する。基本的には、書込み時にその余白は、以前のデータを必要とするか否かを判断すべきであるが、ここでは、判断せず、常に書込み前データを読み込む場合について説明する。合成処理後に回転処理後画像を書き込む。
図７の例は、ソース画像がＮ×Ｍのブロックサイズにちょうど収まらなかった場合の例である。このように回転前の右端のブロックには、ブロック全てにデータが入っているわけではない。この回転前に右端のブロックは９０度回転後、底辺のブロックとなり、Ｙ方向に終端アドレスが変化する。また、回転前に底辺のブロックは９０度回転後、左端のブロックとなり、Ｘ方向の先端のアドレスが変化する。本方式は、回転後の左端のブロックから順次アドレス書込みアドレスを計算し、メモリに書き込むので、このようにＮ×Ｍのブロックにちょうど収まらない画像であっても、回転処理することが可能である。
【００１４】
図１６に図３の９２の画像回転処理装置のブロック図を示す。１０１はブロック数生成装置であり、図３の９３のパラメータ格納装置から受け取ったソース画像のＸ幅、Ｙ幅から、Ｎ×Ｍ画素のブロックが、Ｘ、Ｙ方向に何個あるかブロック数を求め、１０２のブロックカウント装置と、余りＸ、Ｙ値生成装置１０４へ送る。図２６に処理フローを示す。
１０２はブロックカウント装置であり、１０１のブロック数生成装置から受け取ったＸ、Ｙ方向のブロック数（ＢＬＫＸＳ、ＢＬＫＹＳを基準とし、図３の９１のメモリアービターＩ／Ｆからの読み込む画像データを管理し、現在読み込まれた画像データがＸ、Ｙ方向に何番目のブロックであるかカウントしていく。図２７に処理フローを示す。
１０３は読み込みアドレス生成装置であり、図３の９３のパラメータ格納装置からソース画像データのスタートアドレスＲＳＡＤＤと、ソース画像のＸ幅、Ｙ幅と１０２のブロックカウント装置からの処理するブロックのＸ、Ｙの番号ＢＬＫＸ、ＢＬＫＹとから、読み込むソース画像のブロックのアドレスを生成する。
【００１５】
図２８にブロック図を示す。また図１１に読み込みアドレスの計算式を示す。１０４は余りＸ、Ｙ値生成装置であり、図３の９３のパラメータ格納装置からソース画像のＸ幅、Ｙ幅と２のブロックカウント装置からの処理するブロックのＸ、Ｙの番号ＢＬＫＸ、ＢＬＫＹと１０１のブロック数生成装置から処理する画像のＸ方向のブロック数とＹ方向のブロック数ＢＬＫＹＳを受け取り、回転処理後に発生する各ブロックのＸ方向のスタート画素値ＲＸＳ０〜Ｎの値と終端画素値ＲＸＥＮ〜０の値とＹ方向のスタート画素値ＲＹＳ０〜Ｍの値と終端画素値ＲＹＥＭ〜０の値を求め、１１１の書込みアドレス生成装置と１０９のデータ合成装置へ送る。図３１に処理フローを示す。
１０５は固定長データ読み込み装置であり、図３の９１のメモリアービターＩ／Ｆから受け取ったメモリのワードデータを、処理するＮ×Ｍ画素のブロックの水平方向の画素を全て含む複数のワードデータを読み込み、１０６の画素切り出し装置へ転送する。図９にＮが４であり、１画素が２４ＢＩＴであり、メモリの１ワードが３２ＢＩＴである場合の水平方向に全ての画素を読み込む場合の組み合わせを示す、このように４つの組み合わせがあり、ＭＡＸのワード数は４ワードである。もし、これらのデータタイプを読み込み時に管理しない場合は、常に４ワードを読み込む必要がある。
１０６は画素切り出し装置であり、１０５の固定長データ読み込み装置からソース画像のブロックごとの水平方向の画素データを全て含む複数のメモリのワードデータを受け取り、１０３の読み込みアドレス生成装置から図９のように入力された複数のメモリのワードデータがどのデータタイプかを示すＩＤＡＴＡＴＹＰＥを受け取り、１０５の固定長データ読み込み装置からの複数のメモリのワードデータからブロックの水平方向の画素をすべて切り出し、１０７のＮ×Ｍ画素記憶装置へ転送する。図１８に処理フローを示す。
【００１６】
１０７はＮ×Ｍ画素記憶装置であり、１０６の画素切り出し装置から、切り出されたブロックの水平方向の全ての画素データを順次受け取り、１ブロックを形成するＮ×Ｍの画素を記憶し、１０８の固定長データ生成装置へ指定された９０度単位の回転方向にもとずき、回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てを順次転送する。図１９にブロック図を示す。
１０８は固定長データ生成装置であり、１０７のＮ×Ｍ画素記憶装置からの回転後の書き込むメモリの複数のワード方向が水平方向になるようにブロックの水平方向の画素を全てと、１１１の書き込みアドレス生成装置から図９のように出力される複数のメモリのワードデータがどのデータタイプかを示すＯＤＡＴＡＴＹＰＥを受け取り、１０７のＮ×Ｍ画素記憶装置からの画素データをＯＤＡＴＡＴＹＰＥにもとずき、書き込むメモリアドレスの複数のワードデータを生成する。図２５に処理フローを示す。
１０９はデータ合成処理装置であり、１０８の固定長データ生成装置からの書き込むメモリアドレスの複数のワードデータと１１１の書き込みアドレス生成装置から図９のように出力される複数のメモリのワードデータがどのデータタイプかを示すＯＤＡＴＡＴＹＰＥと、１０５の固定長データ読み込み装置からの書き込むメモリアドレスのデータを読み込み、図９のように、先頭と、終端にある、余白データに書き込むメモリアドレスの書込み前にあるデータを合成し、１１０の固定長データ書込み装置へ転送する。
また、データがきれいにＸ、Ｙ方向の画像の幅がＮ×Ｍブロックの整数倍のなっていないことがあるため、４の余りＸ、Ｙ値生成装置から、各ブロックごとのＸ方向の画素数ＲＸＥＳを受け取り、図９のようなブロックの水平方向のサイズと同じではなく、ブロックの水平、もしくは、垂直サイズより小さいデータに対しても、上記のデータ合成処理を行うようにする。図３２にデータ合成装置のブロック図を示す。
【００１７】
１１０は固定長データ書込み装置であり、１０９のデータ合成処理装置からの合成されたデータを受け取り、図３の９１のメモリアービターＩ／Ｆへ転送する。
１１１は書き込みアドレス生成装置であり、図３の９３のパラメータ格納装置からデイステイネーション画像データのスタートアドレスＲＤＡＤＤと、ソース画像のＸ幅、Ｙ幅と９０度単位の回転角度と２のブロックカウント装置からの処理するブロックのＸ、Ｙの番号ＢＬＫＸ、ＢＬＫＹと１０４の余りＸ、Ｙ値生成装置からの各ブロックごとのＸ方向のスタート画素値ＲＸＳを受け取ることにより、書き込むデイステイネーション画像のブロックのアドレスを生成する。図１０に各回転角度ごとのデータの書込み順序を示す。このように水平方向にデータがつながる方向にアドレスを生成し、データを書き込んでいく。図３０にブロック図を示す。また図１２、１３、１４、１５に各回転方向の書き込みアドレスの計算式を示す。
１１２はコントローラであり、画像回転処理装置  全体をコントロールする。
【００１８】
図１７は図１６で説明された図３の９２の画像回転処理装置のＮ×Ｍ画素のブロックが４×４のブロックであった場合の例である。以後の具体例は、図１７の４×４画素を１ブロックとし、図９のように画素が２４ＢＩＴであり、メモリワードが３２ＢＩＴの場合の例で説明する。図２６にブロック数生成装置の処理フローを示す。ここで、記述されているＲＳＸＷＩＤＴＨ［１５：２］の記述は、ハードウエア記述言語であるＶｅｒｉｌｏｇでの表記であり、ＲＳＸＷＩＤＴＨの１５ＢＩＴ〜２ＢＩＴのデータを表現している。
Ｓ１９１はソース画像のＸ幅であるＲＳＸＷＩＤＴＨの下位２ＢＩＴが０であるかを判定することにブロックサイズのＸ方向が４の場合に、ソース画像を４×４のブロックで区切るとき、に余りがあるかを判定している。余りがある場合はＳ１９３の処理へいく。
Ｓ１０２はＳ１９１の判定で、余りがないことが判明したため、Ｘ方向のブロック数はこのようにソース画像のＸ幅をブロックサイズのＸ方向で割った値（この場合、ブロックサイズが４であるため、２ＢＩＴシフトして実現している。となる。
Ｓ１９３は、１の判定で余りがあることが判明したためＸ方向のブロック数はこのようにソース画像のＸ幅をブロックサイズのＸ方向で割った値に＋１した値となる。
Ｓ１９４はソース画像のＹ幅であるＲＳＹＷＩＤＴＨの下位２ＢＩＴが０であるかを判定することにブロックサイズのＹ方向が４の場合に、ソース画像を４×４のブロックで区切るとき、に余りがあるかを判定している。余りがある場合は６の処理へいく。
Ｓ１９５はＳ１９４の判定で、余りがないことが判明したため、Ｙ方向のブロック数はこのようにソース画像のＹ幅をブロックサイズのＹ方向で割った値（この場合、ブロックサイズが４であるため、２ＢＩＴシフトして実現している。となる。
Ｓ１９６は、Ｓ１９１の判定で  余りがあることが判明したためＹ方向のブロック数はこのようにソース画像のＹ幅をブロックサイズのＹ方向で割った値に＋１した値となる。
【００１９】
図２７にブロックカウント装置の処理フローを示す。
Ｓ２０１はリセット信号が来たとき、Ｓ２０２の処理へ
Ｓ２０２は処理しているブロック中のライン数であるＩＹＣＮＴを図１７の１０４の余りＸ、Ｙ値生成装置のＹ方向の余り数で初期化する。
Ｓ２０３は処理しているブロック中のライン数であるＩＹＣＮＴが今のブロックのＹサイズと同じであるかを判断し、同じであれば、Ｓ２０４の処理へ
Ｓ２０４は処理しているブロック中のライン数であるＩＹＣＮＴを図１７の１０４の余りＸ、Ｙ値生成装置のＹ方向の余り数で初期化する。
Ｓ２０５は図１７の１１２コントローラから、ラインの処理が終了したフラグＬＩＮＥ＿ＥＮＤＦＬが来た場合、Ｓ２０６の処理へ
Ｓ２０６は処理しているブロック中のライン数であるＩＹＣＮＴをカウントＵＰする。
Ｓ２０７はリセット信号が来たとき、Ｓ２０８の処理へ
Ｓ２０８は現在、処理中のＸ方向のブロック番号を初期化する。
Ｓ２０９は処理中のＸ方向のブロック番号が最終番号でかつ、ブロック中のライン数が最終ラインであった場合、Ｓ２１０の処理へ
Ｓ２１０は現在、処理中のＸ方向のブロック番号を初期化する。
Ｓ２１１は図１７の１１２コントローラから、ブロックの処理が終了したフラグＮＥＸＴＸＦＬが来た場合、Ｓ１１２の処理へ
Ｓ２１２は処理中のＸ方向のブロック番号をカウントＵＰ
Ｓ２１３はリセット信号が来たとき、Ｓ２１４の処理へ
Ｓ２１４は現在、処理中のＹ方向のブロック番号を初期化する。
Ｓ２１５は処理中のＹ方向のブロック番号が最終番号でかつ、ＮＥＸＴＸＦＬが来た場合、Ｓ２１６の処理へ
Ｓ２１６は現在、処理中のＹ方向のブロック番号を初期化する。
Ｓ２１７は処理中のＸ方向のブロック番号が最終番号でかつ、ブロック中のライン数が最終ラインであった場合、Ｓ２１８の処理へ
Ｓ２１８は処理中のＹ方向のブロック番号をカウントＵＰ
【００２０】
図２８に読み込みアドレス生成装置のブロック図を示す。この読み込みアドレス生成装置は、図１１のように読み込みアドレスを生成する。ここで、記述されている｛ＢＬＫＹ、２’ｈ０｝の記述は、ハードウエア記述言語であるＶｅｒｉｌｏｇでの表記であり、ＢＬＫＹを左に２ＢＩＴシフトしたデータを表現している。
３０１は加算器であり、（垂直ブロック番号×垂直ブロックサイズ＋ブロック中のライン数を実現している。
３０２は乗算器であり、３０１の結果に画像の水平画素数を乗算している。
３０３は加算器であり、３０２の結果に（水平ブロック番号×水平ブロックサイズを加算している。
３０４は３０３で求めた論理アドレスをメモリのアドレスへ変換する処理であり、図９のように画素のサイズとメモリワードサイズが３／４の関係にあるため、アドレスも３／４倍する。図２９にメモリアドレス変換装置のブロック図を示す。３０５は加算器であり、３０４で求めたメモリアドレスにソース画像のスタートアドレスを加算し、最終的な読み込むメモリアドレスを求める。
３０６は上位ＢＩＴマスク装置であり、３で求めた論理アドレスの下位２ＢＩＴを切り出し、図９のどのタイプかをしめすＩＤＡＴＡＴＹＰＥを求める。
【００２１】
図２９にメモリアドレス変換装置を示す。
３１１は加算器であり、図２８の３０３で求めた論理アドレスを３倍している。
３１２は２ＢＩＴ右シフト装置であり、１で求めた３倍値を４で割り、３／４処理を行う。
図３１に余りＸ、Ｙ値生成装置を示す。
Ｓ２２１はＸ方向ブロック数×Ｘ方向ブロックサイズからソース画像のＸ幅を減算し、Ｘ方向の余りを求め、Ｙ方向ブロック数×Ｙ方向ブロックサイズからソース画像のＹ幅を減算し、Ｙ方向の余りを求めている。
Ｓ２２２〜Ｓ２２４は現在の処理中のＸ方向のＢＬＫが最終ブロックであり、Ｘ方向にあまりが存在する場合はＣＨＫＸＦＬを“１”にし、条件を満たさない場合は“０”にする。
Ｓ２２５〜Ｓ２２７は現在の処理中のＹ方向のＢＬＫが最終ブロックであり、Ｙ方向にあまりが存在する場合はＣＨＫＹＦＬを“１”にし、条件を満たさない場合は“０”にする。
Ｓ２２８〜Ｓ２３２は書込みブロック中のＸ方向の終端アドレスＲＸＥを求めている。ＲＯＴＦＬは回転角度であり、Ｓ２２８〜Ｓ２２９は回転角度が０度の場合にＣＨＫＸＦＬが“１”であれば、Ｓ２２１で求めたＸ方向の余り値ＡＭＡＲＩＸをセットする。Ｓ２３０〜Ｓ２３１は回転角度が２７０度の場合にＣＨＫＹＦＬが“１”であれば、で求めたＹ方向の余り値ＡＭＡＲＩＹをセットする。Ｓ２３２はそれ以外は、ＭＡＸのサイズをセットする。（終端が欠けない）
Ｓ２３３〜Ｓ２３７は書込みブロック中のＸ方向の先端アドレス（ＲＸＳを求めている。Ｓ２３３〜Ｓ２３４は回転角度が９０度の場合にＣＨＫＸＦＬが“１”であれば、Ｘ方向のブロックサイズから１で求めたＸ方向の余り値ＡＭＡＲＩＸを減算した値をセットする。Ｓ２３５〜Ｓ２３６は回転角度が１８０度の場合にＣＨＫＹＦＬが“１”であれば、Ｙ方向のブロックサイズからＳ２２１で求めたＹ方向の余り値ＡＭＡＲＩＹを減算した値をセットする。Ｓ２３７はそれ以外は、“０“をセットする。（先端が欠けない）
【００２２】
Ｓ２３８〜Ｓ２４２は書込みブロック中のＹ方向の終端アドレスＲＹＥを求めている。ＲＯＴＦＬは回転角度であり、Ｓ２３８〜Ｓ２３９は回転角度が０度の場合にＣＨＫＹＦＬが“１”であれば、Ｓ２２１で求めたＹ方向の余り値ＡＭＡＲＩＹをセットする。Ｓ２４０〜Ｓ２４１は回転角度が９０度の場合にＣＨＫＸＦＬが“１”であれば、Ｓ２２１で求めたＸ方向の余り値ＡＭＡＲＩＸをセットする。Ｓ２４２はそれ以外は、ＭＡＸのサイズをセットする。（終端が欠けない）
Ｓ２４３〜Ｓ２４７は書込みブロック中のＹ方向の先端アドレス（ＲＹＳを求めている。Ｓ２４３〜Ｓ２４４は回転角度が１８０度の場合にＣＨＫＹＦＬが“１”であれば、Ｙ方向のブロックサイズからＳ２２１で求めたＹ方向の余り値（ＡＭＡＲＩＹを減算した値をセットする。Ｓ２４５〜Ｓ２４６は回転角度が１８０度の場合にＣＨＫＸＦＬが“１”であれば、Ｘ方向のブロックサイズからＳ２２１で求めたＸ方向の余り値ＡＭＡＲＩＸを減算した値をセットする。Ｓ２４７それ以外は、“０“をセットする。（先端が欠けない）
Ｓ２４８はＸ方向のデータサイズＲＸＳＥを求める。
【００２３】
図１８に画素切り出し装置のフローを示す。
Ｓ１は図１７の１０３の読み出しアドレス生成装置により求めた読み込んだデータの図９のようなデータタイプＩＤＡＴＡＴＹＰＥを受け取り、ＩＤＡＴＡＴＹＰＥが０であれば、Ｓ２へ
Ｓ２はＳ１で読み込んだデータが図９のＴＹＰＥ０と判断されたため、図９のＴＹＰＥ０のように画素データを切り出す。
Ｓ３はＩＤＡＴＡＴＹＰＥが１であれば、Ｓ４へ
Ｓ４はＳ３で読み込んだデータが図９のＴＹＰＥ１と判断されたため図９のＴＹＰＥ１のように画素データを切り出す。
Ｓ５はＩＤＡＴＡＴＹＰＥが２であれば、Ｓ６へ
Ｓ６はＳ５で読み込んだデータが図９のＴＹＰＥ２と判断されたため図９のＴＹＰＥ２のように画素データを切り出す。
Ｓ７はＩＤＡＴＡＴＹＰＥがＳ３であれば、Ｓ８へ
Ｓ８は７で読み込んだデータが図９のＴＹＰＥ３と判断されたため図９のＴＹＰＥ３のように画素データを切り出す。
図１９は４×４画素記憶装置のブロック図であり、２０１〜２１６はレジスタであり、入力されたブロックの画素データを格納し、ブロックの水平方向の画素を一度に書き込むことができる。２１７はデータ分配装置であり、回転角度により、２０１〜２１６のレジスタのデータを水平もしくは、垂直方向に１度に読みだし、順次転送する。２１８はコントローラであり、４×４画素記憶装置を制御する。
【００２４】
図２０に４×４画素記憶装置の画素格納フローを示す。図１９の２１８の制御装置からのタイミングにより、順次水平方向にデータが格納されていくことがわかる。
図２１、２２、２３、２４は図１９の２１７のデータ分配装置のフローである。回転後のメモリワード上で水平方向になるブロックの４画素を１度に読み出す。
図２１はデータの０番目の選択するフローであり、図２２はデータの１番目の選択するフローであり、図２３はデータの２番目の選択するフローであり、図２４はデータの３番目の選択するフローであり、フロー中のＲＯＴＦＬは回転角度をあり、０は０度、１は９０度、２は１８０度、３は２７０度である。フロー中のタイミングは図１９の２１８のコントローラにより発生された回転処理のタイミングであり、０から３へ遷移する。フロー中のデータ００から３３は図１９の１〜１６の各レジスタを示す。
【００２５】
図２５に固定長データ生成装置のフローを示す。
Ｓ１８１は図１７の７のＮ×Ｍ画素記憶装置により出力された複数の回転後水平画素を図１７の１１書込み画素生成装置で求めた図９のようなデータタイプＯＤＡＴＡＴＹＰＥを受け取り、ＩＤＡＴＡＴＹＰＥが０であれば、Ｓ１８２へ
Ｓ１８２はＳ１８１でメモリへ書き込むデータが図９のＴＹＰＥ０と判断されたため、図９のＴＹＰＥ０のように変換する。
Ｓ１８３はＯＤＡＴＡＴＹＰＥが１であれば、Ｓ１８４へ
Ｓ１８４はＳ１８１でメモリへ書き込むデータが図９のＴＹＰＥ１と判断されたため、図９のＴＹＰＥ１のように変換する。
Ｓ１８５はＯＤＡＴＡＴＹＰＥが２であれば、Ｓ１８６へ
Ｓ１８６はＳ１８１でメモリへ書き込むデータが図９のＴＹＰＥ２と判断されたため、図９のＴＹＰＥ２のように変換する。
Ｓ１８７はＯＤＡＴＡＴＹＰＥが３であれば、Ｓ１８８へ
Ｓ１８８は１でメモリへ書き込むデータが図９のＴＹＰＥ３と判断されたため、図９のＴＹＰＥ３のように変換する。
【００２６】
図３２にデータ合成処理装置のブロック図を示す。
３５１はマスク生成装置であり、図９のような書き込むメモリアドレスのデータタイプにより、書き込まれる前のデータと回転後データを合成するための、回転後の有効データの範囲をマスクする有効データのスタートアドレスＭＡＳＫＦと終端アドレスＭＡＳＫＬを生成する。図３３に処理フローを示す。
３５２は合成処理装置であり、書き込まれる前のデータＲＤＡＴＡ０〜３と回転後のデータＤＡＴＡ０Ｉ〜３Ｉと１のマスク生成装置からのマスク情報ＭＡＳＫＦ、ＭＡＳＫＬから書き込むデータＤＡＴＡ０Ｏ〜ＤＡＴＡ３Ｏを生成する。
図３４に処理フローを示す。
図３３にマスク生成装置の処理フローを示す。
Ｓ２５１〜Ｓ２６１は図９のデータＴＹＰＥ０の処理でありＲＸＥＳは図１７の１０４の余りＸ、Ｙ値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
Ｓ２６２〜Ｓ２７２は図９のデータＴＹＰＥ１の処理でありＲＸＥＳは図１７の１０４の余りＸ、Ｙ値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
Ｓ２７３〜Ｓ２８３は図９のデータＴＹＰＥ２の処理でありＲＸＥＳは図１７の１０４の余りＸ、Ｙ値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
Ｓ２８４〜Ｓ２９４は図９のデータＴＹＰＥ３の処理でありＲＸＥＳは図１７の１０４の余りＸ、Ｙ値生成装置からの有効データサイズであり、マスクの終端情報はそのデータのサイズにより、異なる。
【００２７】
図３４〜３６に図３２の２の合成装置のフローを示す。
Ｓ３０１〜Ｓ３３２は図３２の３５１のマスク生成装置からの終端マスク値ＭＡＳＫＬと書き込まれる前のデータＲＤＡＴＡ０〜３と回転後のデータＤＡＴＡ０Ｉ〜３Ｉから終端のマスク処理を行う。ここで、記述されているＤＡＴＡ３Ｉ［３１：８］の記述は、ハードウエア記述言語であるＶｅｒｉｌｏｇでの表記であり、ＤＡＴＡ３Ｉの３１ＢＩＴ〜８ＢＩＴのデータを表現している。
Ｓ３０３はＭＡＳＫＬが１であった場合の合成処理であり、４番目の回転後のデータの下位８ＢＩＴはデータがない為に、書き込まれる前のデータに以前に回転処理したデータがある可能性があるため、下位８ＢＩＴに書き込まれる前のデータの４番目のデータＲＤＡＴＡ３Ｏの下位８ＢＩＴを合成している。
Ｓ３３３〜Ｓ３４０は図３２の３５１のマスク生成装置からのスタートマスク値ＭＡＳＫＦと書き込まれる前のデータＲＤＡＴＡ０と１〜３２で処理された回転後のデータＷＤＡＴＡ０から先端のマスク処理を行う。
図３０に書き込みアドレス生成装置のブロック図を示す。フロー中のＲＯＰＦＬは回転角度であり、ＩＹＣＮＴはブロック中の処理しているライン数、ＢＬＫＸは処理しているＸ方向のブロック番号、ＢＬＫＹは処理しているＹ方向のブロック番号であり、ＲＳＸＷＩＤＴＨはソース画像のＸ幅、ＲＳＹＷＩＤＴＨはソース画像のＹ幅、ＲＤＡＤＤはデイステイネーション画像データのスタートアドレスである。
３２１〜３２３は回転角度０度での論理アドレスを生成している。３２４〜３２８は回転角度９０度での論理アドレスを生成している。３２９〜３３４は回転角度１８０度での論理アドレスを生成している。３３５〜３３８は回転角度２７０度での論理アドレスを生成している。３２９は回転角度により生成されたアドレスを選択するＭＵＸであ。３４０は３２９で求めた論理アドレスをメモリのアドレスへ変換する処理であり、図９のように画素のサイズとメモリワードサイズが３／４の関係にあるため、アドレスも３／４倍する。図２９にメモリアドレス変換装置のブロック図を示す。
３０５は加算器であり、３０４で求めたメモリアドレスにデイステイネーション画像データのスタートアドレスを加算し、最終的な書き込むメモリアドレスを求める。
３０６は上位ＢＩＴマスク装置であり、３０３で求めた論理アドレスの下位２ＢＩＴを切り出し、図９のどのタイプかを示すＯＤＡＴＡＴＹＰＥを求める。
【００２８】
【発明の効果】
以上記載のごとく請求項１、３、５の発明によれば、このような手段構成により、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータに対しても、高速に（複数の画素を並列に処理するため回転処理が可能である。
また請求項２、４、６では、メモリのワードのＢＩＴ幅Ｍと画素のＢＩＴ幅ＮがＭ／Ｎの整数倍でないデータで、且つソース画像がＬ×Ｋブロックにちょうど収まらない画像に対しても高速に回転処理が可能である。
また請求項７では、記憶媒体から読出されたプログラムコード自体が実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る多色画像形成装置の機構部の構成例を示す図である。
【図２】本発明の図１の電装・制御装置６０のブロック図である。
【図３】本発明の回転処理装置の概念図である。
【図４】本発明の回転処理例を示す図である。
【図５】本発明の回転処理の例を示す図である。
【図６】本発明の４×４のブロックの回転処理を示す図である。
【図７】本発明のソース画像がＮ×Ｍのブロックサイズにちょうど収まらなかった場合の例を示す図である。
【図８】本発明のメモリのワードサイズと１画素のサイズの関係を示す図である。
【図９】本発明の複数のメモリのワードデータがどのデータタイプかを示す図である。
【図１０】本発明の各回転角度ごとのデータの書込み順序を示す図である。
【図１１】本発明の読み込みアドレスの計算式を示す図である。
【図１２】各回転方向の書き込みアドレスの計算式を示す図である。
【図１３】各回転方向の書き込みアドレスの計算式を示す図である。
【図１４】各回転方向の書き込みアドレスの計算式を示す図である。
【図１５】各回転方向の書き込みアドレスの計算式を示す図である。
【図１６】本発明の画像回転処理装置のブロック図である。
【図１７】本発明の図３の９２の画像回転処理装置のＮ×Ｍ画素のブロックが４×４のブロックであった場合のブロック図である。
【図１８】本発明の画素切り出し装置の処理フロー図である。
【図１９】本発明の画素記憶装置のブロック図である。
【図２０】本発明の画素記憶装置の画素格納フロー図である。
【図２１】本発明のデータ分配装置の動作フロー図である（その１）。
【図２２】本発明のデータ分配装置の動作フロー図である（その２）。
【図２３】本発明のデータ分配装置の動作フロー図である（その３）。
【図２４】本発明のデータ分配装置のデータの３番目の選択するフロー図である。
【図２５】本発明の固定長データ生成装置の動作フロー図である。
【図２６】本発明のブロック数生成装置の動作フロー図である。
【図２７】本発明のブロックカウント装置の動作フロー図である。
【図２８】本発明の読み込みアドレス生成装置のブロック図である。
【図２９】本発明のメモリアドレス変換装置のブロック図である。
【図３０】本発明の読み込みアドレス生成装置のブロック図である。
【図３１】本発明の余りＸ、Ｙ値生成装置のブロック図である。
【図３２】本発明のデータ合成装置のブロック図である。
【図３３】本発明のマスク生成装置の動作フロー図である。
【図３４】本発明のデータ合成装置の動作フロー図である（その１）。
【図３５】本発明のデータ合成装置の動作フロー図である（その２）。
【図３６】本発明のデータ合成装置の動作フロー図である（その３）。
【符号の説明】
９１  メモリアービターＩ／Ｆ、９２  画像回転処理装置、９３  パラメータ格納装置
【図１】
2004242212.tif 000003
【図２】
2004242212.tif 000004
【図３】
2004242212.tif 000005
【図４】
2004242212.tif 000006
【図５】
2004242212.tif 000007
【図６】
2004242212.tif 000008
【図７】
2004242212.tif 000009
【図８】
2004242212.tif 000010
【図９】
2004242212.tif 000011
【図１０】
2004242212.tif 000012
【図１１】
2004242212.tif 000013
【図１２】
2004242212.tif 000014
【図１３】
2004242212.tif 000015
【図１４】
2004242212.tif 000016
【図１５】
2004242212.tif 000017
【図１６】
2004242212.tif 000018
【図１７】
2004242212.tif 000019
【図１８】
2004242212.tif 000020
【図１９】
2004242212.tif 000021
【図２０】
2004242212.tif 000022
【図２１】
2004242212.tif 000023
【図２２】
2004242212.tif 000024
【図２３】
2004242212.tif 000025
【図２４】
2004242212.tif 000026
【図２５】
2004242212.tif 000027
【図２６】
2004242212.tif 000028
【図２７】
2004242212.tif 000029
【図２８】
2004242212.tif 000030
【図２９】
2004242212.tif 000031
【図３０】
2004242212.tif 000032
【図３１】
2004242212.tif 000033
【図３２】
2004242212.tif 000034
【図３３】
2004242212.tif 000035
【図３４】
2004242212.tif 000036
【図３５】
2004242212.tif 000037
【図３６】
2004242212.tif 000038