(57)【要約】【課題】  回転画像を形成するために１ページ分のページメモリを設ける必要の無い、例えば１ブロックライン分のメモリによって０度、９０度、１８０度、２７０度の回転処理を比較的安価に可能とする画像処理装置を提供する。【解決手段】  ページメモリ108に（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、回転用メモリ104,105に転送しA1、回転用メモリ上ｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を回転角度に応じて変更可能に構成し、回転用メモリへ書き込む前の画像データと読み出される画像データをブロック単位で回転し、回転用メモリから、回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する出力用メモリ109に転送し、出力用メモリから、ラスター状に画像データを順次読み出す。【選択図】      図１
2005109856.tif 000002
【特許請求の範囲】
【請求項１】
画像を回転する画像回転手段を含む画像処理装置において、
前記画像回転手段が、
第１のメモリに（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、第２のメモリに転送する第１のブロック転送手段と、
前記第２のメモリ上の少なくとも１つのｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を前記回転角度に応じて変更可能に構成し、前記第２のメモリへ書き込む前の画像データと前記第２のメモリから読み出される画像データをブロック単位で回転するブロック回転手段と、
前記第２のメモリから、前記ブロック回転手段で回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する第３のメモリに転送する第２のブロック転送手段と、
前記第３のメモリから、ラスター状に画像データを順次読み出す読出手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記第１のブロック転送手段は、前記第１のメモリの画像データが主走査方向へｐブロック、副走査方向へｑブロックの場合に、ブロック状に配置された前記第１のメモリ上の画像データを、前記回転操作を行う角度分だけ回転されたものとして擬似的に配置される主走査、副走査方向のブロック順に従って読み出すことを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記第２のメモリは２つのｎ×ｎ画素の画像ブロックを保持し、一方の回転処理された画像ブロックからの読み出しと並行して、他方に回転処理前の画像ブロックを書き込むことを特徴とする請求項１記載の画像処理装置。
【請求項４】
前記第３のメモリは２つの（ｘ画素とｙ画素の大きい画素×ｎ画素）の前記画素ブロックを保持し、一方の画素ブロックからの読み出しに並行して、他方に回転処理された画像ブロックを書き込むことを特徴とする請求項１記載の画像処理装置。
【請求項５】
画像データを９０度右回転する場合の前記第２のメモリへの書き込みアドレス順と読み出しアドレス順は、
ｎ×ｎ画素の１画像ブロックを、
(1,1)(1,2)…(1,n-1)(1,n)
(2,1)(2,2)…(2,n-1)(2,n) 
…
(n-1,1)(n-1,2)…(n-1,n-1)(n-1,n)
(n,1)(n,2)…(n,n-1)(n,n)
とすると、
１ライン毎に１画素シフトして書き込むアドレス順は、
(1,1)(1,2)…(1,n-1)(1,n)
(2,n) (2,1)…(2,n-2)(2,n-1) 
…
(n-1,3)(n-1,4) … (n-1,1)(n-1,2)
(n,2)(n,3)…(n,n)(n,1)
であり、
対角状に読み出すアドレス順は、
(n,1)(n-1,1)…(2,1)(1,1)
(n,2) (n-1,2)…(2,2)(1,2) 
…
(n,n-1)(n-1,n-1) … (2,n-1)(1,n-1)
(n,n)(n-1,n)…(2,n)(1,n)
であることを特徴とする請求項１又は２記載の画像処理装置。
【請求項６】
画像データを１８０度回転する場合の第２のメモリへの書き込みアドレス順と読み出しアドレス順は、
ｎ×ｎ画素の１ブロックを、
(1,1)(1,2)…(1,n-1)(1,n)
(2,1)(2,2)…(2,n-1)(2,n) 
…
(n-1,1)(n-1,2)…(n-1,n-1)(n-1,n)
(n,1)(n,2)…(n,n-1)(n,n)
としすると、
同一の順序で書き込むアドレス順は、
(1,1)(1,2)…(1,n-1)(1,n)
(2,1)(2,2)…(2,n-1)(2,n) 
…
(n-1,1)(n-1,2)…(n-1,n-1)(n-1,n)
(n,1)(n,2)…(n,n-1)(n,n)
であり、
逆順に読み出すアドレス順は、
(n,ｎ)(n-1,1)…(ｎ,２)(ｎ,1)
(n-1,n) (n-1,n-1)…(n-1,2)(n-1,1) 
…
(2,n)(2,n-1) … (2,2)(2,1)
(1,n)(1,n-1)…(1,2)(1,1)
であることを特徴とする請求項１又は２記載の画像処理装置。
【請求項７】
画像データを２７０度右回転する場合の前記第２のメモリへの書き込みアドレス順と読み出しアドレス順は、
ｎ×ｎ画素の１ブロックを、
(1,1)(1,2)…(1,n-1)(1,n)
(2,1)(2,2)…(2,n-1)(2,n) 
…
(n-1,1)(n-1,2)…(n-1,n-1)(n-1,n)
(n,1)(n,2)…(n,n-1)(n,n)
とすると、
１ライン毎に１画素シフトして書き込むアドレス順は、
(1,1)(1,2)…(1,n-1)(1,n)
(2,n) (2,1)…(2,n-2)(2,n-1) 
…
(n-1,3)(n-1,4) … (n-1,1)(n-1,2)
(n,2)(n,3)…(n,n)(n,1)
であり、
対角状に読み出すアドレス順は、
(1,n)(2,n)…(n-1,n)(n,n)
(1,n-1) (2,n-1)…(n-1,n-1)(n,n-1) 
…
(1,2)(2,2) … (n-1,2)(n,2)
(1,1)(2,1)…(n-1,1)(n,1)
であることを特徴とする請求項１又は２記載の画像処理装置。
【請求項８】
画像を回転する画像回転回路であって、
第１のメモリに（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、第２のメモリに転送する第１のブロック転送手段と、
前記第２のメモリ上の少なくとも１つのｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を前記回転角度に応じて変更可能に構成し、前記第２のメモリへ書き込む前の画像データと前記第２のメモリから読み出される画像データをブロック単位で回転するブロック回転手段と、
前記第２のメモリから、前記ブロック回転手段で回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する第３のメモリに転送する第２のブロック転送手段と、
前記第３のメモリから、ラスター状に画像データを順次読み出す読出手段とを備えることを特徴とする画像回転回路。
【請求項９】
前記第１のブロック転送手段は、前記第１のメモリの画像データが主走査方向へｐブロック、副走査方向へｑブロックの場合に、ブロック状に配置された前記第１のメモリ上の画像データを、前記回転操作を行う角度分だけ回転されたものとして擬似的に配置される主走査、副走査方向のブロック順に従って読み出すことを特徴とする請求項８記載の画像回転回路。
【請求項１０】
前記第２のメモリは２つのｎ×ｎ画素の画像ブロックを保持し、一方の回転処理された画像ブロックからの読み出しと並行して、他方に回転処理前の画像ブロックを書き込むことを特徴とする請求項８記載の画像回転回路。
【請求項１１】
前記第３のメモリは２つの（ｘ画素とｙ画素の大きい画素×ｎ画素）の前記画素ブロックを保持し、一方の画素ブロックからの読み出しに並行して、他方に回転処理された画像ブロックを書き込むことを特徴とする請求項８記載の画像回転回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像回転回路及びそれを有する画像処理装置、特に画像データの０度、９０度、１８０度、２７０度の回転処理を行う画像回転回路及びそれを有する画像処理装置に関するものである。
【背景技術】
【０００２】
画像データを回転処理、例えば０度、９０度、１８０度、２７０度に回転処理する方法に関しては、すでにいくつかの提案が開示されている。
【０００３】
たとえば、ラインメモリを複数個持ち、この複数のラインメモリの中から１つを選択し画像データを書き込み、各ラインメモリに書き込まれた画像データを複数のラインメモリからパラレルに読み出して配列し、配列した画像データをページメモリに書き込むためのアドレスを計算して、該配列した画像データを算出したページメモリのアドレスに書き込むことにより回転処理を実現する回転処理装置が開示されている（特許文献１参照）。
【特許文献１】特開平５−３１４２４９号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来例では、回転画像を形成するために１ページ分のページメモリを設ける必要があるので、比較的高価な構成となる。
【０００５】
本発明は、上記課題を解決し、回転画像を形成するために１ページ分のページメモリを設ける必要の無い、例えば１ブロックライン分のメモリによって０度、９０度、１８０度、２７０度の回転処理を比較的安価に可能とする画像処理装置を提供する。
【課題を解決するための手段】
【０００６】
この課題を解決するために、本発明の画像処理装置は、画像を回転する画像回転手段を含む画像処理装置において、前記画像回転手段が、第１のメモリに（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、第２のメモリに転送する第１のブロック転送手段と、前記第２のメモリ上の少なくとも１つのｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を前記回転角度に応じて変更可能に構成し、前記第２のメモリへ書き込む前の画像データと前記第２のメモリから読み出される画像データをブロック単位で回転するブロック回転手段と、前記第２のメモリから、前記ブロック回転手段で回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する第３のメモリに転送する第２のブロック転送手段と、前記第３のメモリから、ラスター状に画像データを順次読み出す読出手段とを備えることを特徴とする。
【０００７】
ここで、前記第１のブロック転送手段は、前記第１のメモリの画像データが主走査方向へｐブロック、副走査方向へｑブロックの場合に、ブロック状に配置された前記第１のメモリ上の画像データを、前記回転操作を行う角度分だけ回転されたものとして擬似的に配置される主走査、副走査方向のブロック順に従って読み出す。また、前記第２のメモリは２つのｎ×ｎ画素の画像ブロックを保持し、一方の回転処理された画像ブロックからの読み出しと並行して、他方に回転処理前の画像ブロックを書き込む。また、前記第３のメモリは２つの（ｘ画素とｙ画素の大きい画素×ｎ画素）の前記画素ブロックを保持し、一方の画素ブロックからの読み出しに並行して、他方に回転処理された画像ブロックを書き込む。
【０００８】
又、本発明の画像回転回路は、画像を回転する画像回転回路であって、第１のメモリに（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、第２のメモリに転送する第１のブロック転送手段と、前記第２のメモリ上の少なくとも１つのｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を前記回転角度に応じて変更可能に構成し、前記第２のメモリへ書き込む前の画像データと前記第２のメモリから読み出される画像データをブロック単位で回転するブロック回転手段と、前記第２のメモリから、前記ブロック回転手段で回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する第３のメモリに転送する第２のブロック転送手段と、前記第３のメモリから、ラスター状に画像データを順次読み出す読出手段とを備えることを特徴とする。
【０００９】
ここで、前記第１のブロック転送手段は、前記第１のメモリの画像データが主走査方向へｐブロック、副走査方向へｑブロックの場合に、ブロック状に配置された前記第１のメモリ上の画像データを、前記回転操作を行う角度分だけ回転されたものとして擬似的に配置される主走査、副走査方向のブロック順に従って読み出す。また、前記第２のメモリは２つのｎ×ｎ画素の画像ブロックを保持し、一方の回転処理された画像ブロックからの読み出しと並行して、他方に回転処理前の画像ブロックを書き込む。また、前記第３のメモリは２つの（ｘ画素とｙ画素の大きい画素×ｎ画素）の前記画素ブロックを保持し、一方の画素ブロックからの読み出しに並行して、他方に回転処理された画像ブロックを書き込む。
【発明の効果】
【００１０】
以上説明したように、本発明により、回転画像を形成するために１ページ分のページメモリを設ける必要の無い、例えば１ブロックライン分のメモリによって０度、９０度、１８０度、２７０度の回転処理を比較的安価に可能とする画像処理装置を提供できる。
【００１１】
すなわち、第１のメモリに（ｘ画素×ｙ画素）のラスター画像状に保持された画像データの、ｎ×ｎ画素（ｎ≦ｘ，ｙ）を１単位とする画像ブロックを回転角度に応じたブロック順に読み出して、第２のメモリに転送する第１のブロック転送手段と、前記第２のメモリ上の少なくとも１つのｎ×ｎ画素の画像ブロックがｎ×ｎ個のアドレスに振り分け、ブロックの書き込みアドレス順と読み出しアドレス順を前記回転角度に応じて変更可能に構成し、前記第２のメモリへ書き込む前の画像データと前記第２のメモリから読み出される画像データをブロック単位で回転するブロック回転手段と、前記第２のメモリから、前記ブロック回転手段で回転処理された前記画像ブロックを、少なくとも（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックを有する第３のメモリに転送する第２のブロック転送手段と、前記第３のメモリから、ラスター状に画像データを順次読み出す読出手段とを備えることで、第２のメモリが最少１ブロック分で構成でき、また、第３のメモリが最少１ラインブロック分、（ｘ画素とｙ画素の大きい画素×ｎ画素）の画素ブロックで構成できるので、メモリが少なくて良く、安価に、０度、９０度、１８０度、２７０度の回転処理を行う画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施形態例を説明する。
【００１３】
＜本発明の画像回転処理の概要＞
（機能ブロックによる構成例）
詳細な説明をする前に、まず本発明の概要について、図１の機能ブロック図を用いて説明する。
【００１４】
図１において、１０８は第１のメモリであるところのページメモリであり、表画像データ、裏画像データを記憶する。但し、本実施例をもって第１のメモリをページメモリに限定するものではない。１０９は第３のメモリであるところの出力用メモリであり、回転画像データを一時保管する。書き込み制御手段１０７はページメモリ１０８、出力用メモリ１０９への画像データ書き込み制御を行う。また、読み出し制御手段１０６はページメモリ１０８、出力用メモリ１０９からの画像データ読み出し制御を行う。  
回転処理を行う場合に関して説明する。回転処理は回転処理手段１００が行う。回転処理手段１００はブロック単位カウンタ１０１、ブロック制御手段１０２、アドレス制御手段１０３、第２のメモリであるところの回転用メモリ１（１０４）、回転用メモリ２（１０５）で構成される。画像データはブロック単位に分割され、分割されたブロック単位で回転処理を行う。以降、ブロック単位に分割された画像データを、画像回転ブロックと称する。画像回転ブロックの縦横の画素数は等しいサイズとする。ブロック単位カウンタ手段１０１は回転処理する画像データのサイズを画像回転ブロック単位でカウントする。ブロック制御手段１０２は回転すべき角度により読み出すブロック順を制御する。
【００１５】
ページメモリ１０８から画像回転ブロック単位で読み出された画像データは、図１の第１のブロック転送手段Ａ１を経由して、回転用メモリ１（１０４）に記憶される。アドレス制御手段１０３は回転用メモリ１（１０４）への書き込みアドレスと読み出しアドレスを制御する。回転用メモリ１（１０４）への書き込みアドレスと読み出しアドレスを制御することにより、回転用メモリ１（１０４）からの読み出し時にブロック単位で画像データを９０度単位で回転させる。
【００１６】
回転処理された画像データは、図１の第２のブロック転送手段Ａ２を経由して出力用メモリ１０９に書き込まれる。回転用メモリ１（１０４）から画像データを読み出すと同時に、回転用メモリ２（１０５）に次の画像回転ブロックの画像データを書き込む動作を繰り返すこともできる。回転用メモリは少なくとも１つあれば回転処理は可能である。ここでは、回転用メモリが２つの場合で説明をした。
【００１７】
出力用メモリ１０９に記憶された画像データは図１の第３のブロック転送手段Ａ３を経由して画像データ出力部１１１に出力される。回転処理を行わない場合はデータ選択手段１１０によりデータが選択され、図１のＢ１を経由して画像データ出力部１１１に出力される。
【００１８】
（９０度右回転例）
次に、ブロック制御手段１０２で回転角度により読み出すブロック順の制御方法と、出力用メモリ１０９から画像データを読み出す方法に関して図２を用いて説明する。
【００１９】
図２は、９０度右回転する場合を示している。画像１２１はページメモリ１０８に書き込まれている回転前の画像。１２２は出力用メモリであり、少なくとも１ラインブロック設ければよい。ここでは、２ラインブロック設けたとして説明する。
【００２０】
９０度右回転させる場合、画像回転ブロック１２０の個所から順に読み出す。回転処理手段１００にて画像回転ブロック単位で９０度の回転処理を行い、回転処理後の画像回転ブロックをラインブロックの左上に書き込む。回転前の画像１２１に示す破線矢印の順に画像回転ブロック単位で画像データを読み出し、回転処理後、出力用メモリの画像１２２に示す破線矢印の順に画像データを書き込む。第１ラインブロックに書き込み終了後、第２ラインブロックに書き込む。第２ラインブロックに書き込む間に、第１ラインブロックから読み出す。第２行ラインブロックに書き込み終了後、及び、第１ラインブロックから読み出し終了後に、再び第１ラインブロックへ書き込む。以上を繰り返すことにより、画像データは９０度右回転処理される。
【００２１】
図２に示す座標を使って説明すると、
回転処理前の画像データにおいて
主走査方向（Ｘ軸）ブロック数：p
副走査方向（Ｙ軸）ブロック数：q
左上ブロック座標：（Ｘ，Ｙ）＝（１、１）
左下ブロック座標：（Ｘ，Ｙ）＝（１、q）
右上ブロック座標：（Ｘ，Ｙ）＝（p、１）
右下ブロック座標：（Ｘ，Ｙ）＝（p、q）
として、
９０度右回転の場合、
前記ブロック制御手段におけるブロック読み出し順は、
(1,q)(1,q-1)…(1,2) (1,1)
(2,q)(2,q-1)…(2,2)(2,1) 
(3,q)(3,q-1)…(3,2)(3,1)
…
(p-1,q)(p-1,q-1)…(p-1,2)(p-1,1)
(p,q)(p,q-1)…(p,2)(p,1)
であり
前記書き込み手段により出力用メモリに書き込む際は、
出力用メモリとして２ラインブロック分の容量を設けた場合、
第１ラインブロックに(1,q)(1,q-1)…(1,2) (1,1)の順に書き込み、
第２ラインブロックに(2,q)(2,q-1)…(2,2)(2,1)の順に書き込み、
第２ラインブロックに書き込む間に、第１ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
第１ラインブロックの画像データを全て読み出し後、
第１ラインブロックに(3,q)(3,q-1)…(3,2)(3,1)を書き込み、
第１ラインブロックに書き込む間に、第２ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
(p,q)(p,q-1)…(p,2)(p,1)まで同様の手順を繰り返す。
【００２２】
（１８０度回転例）
図３は、１８０度回転の場合を示す。この場合、画像回転ブロック１２３から読み出す。
【００２３】
図３に示す座標を使って説明すると、
前記回転処理前の画像データにおいて
主走査方向（Ｘ軸）ブロック数：p
副走査方向（Ｙ軸）ブロック数：q
左上ブロック座標：（Ｘ，Ｙ）＝（１、１）
左下ブロック座標：（Ｘ，Ｙ）＝（１、q）
右上ブロック座標：（Ｘ，Ｙ）＝（p、１）
右下ブロック座標：（Ｘ，Ｙ）＝（p、q）
として、
１８０度回転の場合、
前記ブロック制御手段におけるブロック読み出し順は、
(p,q)(p-1,q)…(2,q)(1,q) 
(p,q-1)(p-1,q-1)…(2,q-1)(1,q-1) 
(p,q-1)(p-1,q-1)…(2,q-1)(1,q-1) 
…
(p,2)(p-1,2)…(2,2)(1,2) 
(p,1)(p-1,1)…(2,1)(1,1)
であり、
前記書き込み手段により出力用メモリに書き込む際は、
出力用メモリとして２ラインブロック分の容量を設けた場合、
第１ラインブロックに(p,q)(p-1,q)…(2,q)(1,q)の順に書き込み、
第２ラインブロックに(p,q-1)(p-1,q-1)…(2,q-1)(1,q-1)の順に書き込み、
第２ラインブロックに書き込む間に、第１ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
第１ラインブロックの画像データを全て読み出し後、
第１ラインブロックに(p,q-1)(p-1,q-1)…(2,q-1)(1,q-1)を書き込み、
第１ラインブロックに書き込む間に、第２ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
(p,1)(p-1,1)…(2,1)(1,1)まで同様の手順を繰り返す。
【００２４】
（２７０度右回転例）
図４は、２７０度右回転の場合を示す。この場合、画像回転ブロック１２４から読み出す。
【００２５】
図４に示す座標を使って説明すると、
前記回転処理前の画像データにおいて
主走査方向（Ｘ軸）ブロック数：p
副走査方向（Ｙ軸）ブロック数：q
左上ブロック座標：（Ｘ，Ｙ）＝（１、１）
左下ブロック座標：（Ｘ，Ｙ）＝（１、q）
右上ブロック座標：（Ｘ，Ｙ）＝（p、１）
右下ブロック座標：（Ｘ，Ｙ）＝（p、q）
として、
２７０度右回転の場合、
前記ブロック制御手段におけるブロック読み出し順は、
(p,1)(p,2)…(p,q-1)(p,q)
(p-1,1)(p-1,2)…(p-1,q-1)(p-1,q) 
(p-2,1)(p-2,2)…(p-2,q-1)(p-2,q)
…
(2,1)(2,2)…(2,q-1)(2,q)
(1,1)(1,2)…(1,q-1)(1,q)
であり、
前記書き込み手段により出力用メモリに書き込む際は、
出力用メモリとして２ラインブロック分の容量を設けた場合、
第１ラインブロックに(p,1)(p,2)…(p,q-1)(p,q)の順に書き込み、
第２ラインブロックに(p-1,1)(p-1,2)…(p-1,q-1)(p-1,q)の順に書き込み、
第２ラインブロックに書き込む間に、第１ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
第１ラインブロックの画像データを全て読み出し後、
第１ラインブロックに(p-2,1)(p-2,2)…(p-2,q-1)(p-2,q)を書き込み、
第１ラインブロックに書き込む間に、第２ラインブロックの画像データを１ライン毎、１ブロック分読み出し、
(1,1)(1,2)…(1,q-1)(1,q)まで同様の手順を繰り返す。
【００２６】
＜本実施形態の画像処理装置の全体のブロック構成及び動作例＞
次に、上記画像回転処理を含む画像処理装置の構成例を詳細を説明する。
【００２７】
図６により装置全体の概略を説明する。
【００２８】
１は画像の画像処理装置、２は画像処理装置内部を制御するCPU、３はラインセンサー等による画像データ取り込み部、４は画像データ入力I/F部、５は画像データ処理部、６は画像データを蓄積するページメモリ、７はページメモリ６への画像データ入出力を制御するページメモリI/F部であり、回転処理の機能を有する。８は画像データ処理部である。９は画像処理装置外部との画像データ出力I/F部であり、PCなどへ画像データを出力する。
【００２９】
＜ページメモリI/F部（回転処理部）７のブロック構成及び動作例＞
図５を用いて、ページメモリI/F部（回転処理部）７に関して説明する。ページメモリI/F部（回転処理部）７は以下の構成となっている。
【００３０】
２００は画像データ入力部、３００はページメモリコントロール部であり、ページメモリ６への書き込み、読み出し及び、ページメモリI/F部（回転処理部）７全体を制御する。４００はページメモリデータ入力部であり、ページメモリ６から出力されたデータを処理する。５００は回転処理部、６００は画像データ出力部、７００はページメモリ６へのI/Oである。ページメモリ６はリングメモリとなっている。
【００３１】
かかる構成において画像データの流れは次のようになっている。
【００３２】
１． 回転処理を行わない場合
画像データ処理部５からページメモリコントロール部３００を経由し、ページメモリ６に書き込み
→ページメモリ６からページメモリデータ入力部４００、画像データ出力部６００を経由し、画像データ処理部８へ読み出し。
【００３３】
２．回転処理を行う場合
画像データ処理部５からページメモリコントロール部３００を経由し、ページメモリ６に書き込み
→ページメモリ６からページメモリデータ入力部４００、回転処理部５００、ページメモリコントロール部３００、を経由し、ページメモリ６へ書き込み
→ページメモリ６からページメモリデータ入力部４００、画像データ出力部６００を経由し、画像データ処理部８へ読み出し。
【００３４】
全体の画像回転処理としては、ページメモリの表画像用リングメモリ、あるいは裏画像用リングメモリから１画像回転ブロック分を読み出し、１画像回転ブロック分の回転処理を行い、出力用メモリに書き込む。１ラインブロック分以上の回転処理が終了後、出力用メモリから画像データを読み出す。
【００３５】
（画像回転ブロック）
画像回転ブロックに関して例を用いて説明する。
【００３６】
図１０では、画像回転ブロックを９６画素×９６画素で構成されるブロック、グレースケール８bitの画像として説明する。但し、画像回転ブロックの構成を限定するものではない。グレースケール８bitの場合、１バーストを９６bitとすると、１バーストで１２画素となる。８バーストで９６画素となる。副走査方向にも９６画素とすることで、主走査方向、副走査方向で画素数が一致する。これらの画素を入れ替えて９０度、１８０度、２７０度回転するように処理を行う。
【００３７】
図１１は、カラー２４bit、３２画素×３２画素で構成される画像回転ブロックの例である。この場合、１バーストで４画素、８バーストで３２画素となる。副走査方向にも３２画素とすることで、主走査方向、副走査方向で画素数が一致する。これらの画素を入れ替えて９０度、１８０度、２７０度回転するように処理を行う。
【００３８】
次に画像全体の回転処理に関して説明する。
【００３９】
図１２は、画像を９０度右回転処理する場合の例である。表画像用リングメモリ、あるいは裏画像用リングメモリから、図１２の左側に示す図のように読み出す。
【００４０】
つまり、
A：start_point
リード/ライト開始ポインタ
(1)：line_offset
回転ブロック内での主走査方向移動時のオフセット
(2)：lblk_offset
回転ブロックの主走査方向移動時のオフセット
(3)：pblk_offset
回転ブロックの副走査方向移動時のオフセット
として読み出し、図１２の右側に示す図のように回転画像用リングメモリに書き込む。
【００４１】
図１３は画像を１８０度回転処理する場合の例。図１４は画像を２７０度右回転処理する場合の例であるが、図１２の説明から容易に理解できるのでここでは詳説しない。。
【００４２】
（リングメモリ）
次にリングメモリ空間に関して図１６で説明する。
【００４３】
図１６の（ａ）は表画像用、裏画像用、出力用の全てを設けた場合の構成例である。それぞれのスタートアドレス、エンドアドレスはレジスタにより設定される。画像データが書き込まれ、エンドアドレスまで達したら、ポインタはスタートアドレスへもどり、続けて画像データを書き込みできる。リングメモリ空間は図１６の（ａ）に限らず、図１６の（ｂ）〜（ｅ）のようにしてもよいし、出力用メモリを先頭に配置してもよい。出力用メモリは少なくとも１ラインブロック分以上設ける。
【００４４】
＜ページメモリI/F部（回転処理部）７の各ブロックの構成及び動作例＞
次に、ページメモリI/F部（回転処理部）の各ブロックの詳細を説明する。
【００４５】
（画像データ入力部２００）
図５の構成で、画像データ処理部５からの画像データは画像データ入力部２００に入る。画像データ入力部２００の詳細を図７で説明する。
【００４６】
画像データ入力部２００では、入力される画像データのバス幅をページメモリのバス幅に合わせる処理を行う。例えば、入力される画像データのバス幅を２４bitとし、ページメモリのバス幅を９６bitとする。画像データ入力制御部は９６bitのレジスタと、カウンタを備える。カウンタの値により、９６bitのレジスタに対し、入力される画像データV_DATA_IN[23:0]をロードする。
【００４７】
つまり、
カウンタ値１・・・buf [95:72]=V_DATA_IN[23:0]
カウンタ値２・・・buf [71:48]=V_DATA_IN[23:0]
カウンタ値３・・・buf [47:24]=V_DATA_IN[23:0]
カウンタ値４・・・buf [23:0] =V_DATA_IN[23:0]、
として、ページメモリのバス幅に合わせる処理を行う。
【００４８】
図７では画像データに表画像と裏画像がある場合を示している。ページメモリのバス幅に合わせる処理は表画像データ入力制御部２１０及び、裏画像データ入力制御部２４０で行われる。前段の画像データ処理部５から画像データの有効領域を示す信号PAGE0_IN、HAVA0_IN、 PAGE1_IN、HAVA1_IN、が入力される。裏画像データはレジスタREG_PODに設定された条件により選択され、裏画像データ入力制御部２４０に入力される。書き込み許可がレジスタREG_WE_F、REG_WE_Bに設定されることで、以上の動作が開始される。画像データがバス幅に対し不足する場合は、バス幅に合わせ、データをパッキングする。ページメモリのバス幅に合った画像データはF_RAP[95:0]バスから、RAP２２０に記録される。高速化にはRAP２２０をデュアルポートRAPにするのがよい。RAP２２０のF_B[95:0]バスから出力される画像データはページメモリコントロール部３００に入力される。裏画像データも同様に、B_RAP[95:0]バスから、RAP２５０に記録され、B_B[95:0]バスから出力される画像データはページメモリコントロール部３００に入力される。  （ページメモリコントロール部３００）
次に、ページメモリコントロール部３００に関して説明する。説明においてページメモリをSDRAPとして説明するが、ページメモリをＳＤＲＡPに限定するものではない。
【００４９】
ページメモリコントロール部３００は多くの機能を有する。ページメモリのパワーアップシーケンス、モードレジスタセット、オートリフレッシュ、画像データ書き込み、画像データ読み出し、回転用画像読み出し、回転用画像書き込み、パワーダウン制御、及び、これらの要求に対する優先判定、ページメモリ空き容量検知等の機能を有する。ここでは本発明に係る部分、画像データの書き込み、読み出し、及び回転処理に関して説明する。
【００５０】
ページメモリコントロール部３００のブロック図を図８及び図９に示す。
【００５１】
図８は、データセレクト部に関する。このブロックでページメモリへの画像データを制御する。ページメモリライトデータセレクト部３１０は、レジスタREG_SDW_DTに設定される選択条件により、画像データ入力部２００からのF_B[95:0]、 B_B[95:0]、及び回転処理部５００からのR_DATA[95:0]、のいずれかを選択する。選択された画像データはDATA[95:0]としてパッキングマスク制御部３２０に出力される。パッキングマスク制御部３２０はレジスタREG_PACKに設定されるパッキング条件に従い画像データをパッキングする。
【００５２】
パッキングの様子を図２８の画像回転０度に示す。回転処理は画像回転ブロック単位で行う。
【００５３】
図２８において１画像回転ブロックは１マスである。画像データを主走査方向、副走査方向に画像回転ブロック単位で分割する。画像データが画像回転ブロックの整数倍に一致しない場合、画像回転ブロックとしての不足部分をパッキングする。回転処理を行わない場合、画像回転ブロックとしての不足部分をパッキングする必要はない。ただし、画像データ１ページの最後と、ページメモリへの書き込みバーストサイズが一致しない分に関しては、ここでバーストサイズにパッキングする。回転処理を行わない場合でも、画像回転ブロックとしての不足部分をパッキングしてもかまわない。パッキングするデータはレジスタREG_PDATAに設定される。このようにして、パッキングマスク制御部３２０でパッキングされた画像データはバスSD_DATA_OUT[95:0]へ出力される。
【００５４】
図９は、ページメモリコントロール部３００のアドレスセレクト部のブロック図である。このブロックでページメモリのアドレスを制御する。
【００５５】
図９において、３３０は表画像ライトポインタが設定されるレジスタ、３４０は裏画像ライトポインタが設定されるレジスタ、３５０は出力用メモリのライトポインタが設定されるレジスタ、３６０は画像リードポインタが設定されるレジスタ、３７０はページメモリアドレスセレクト部である。表画像ライトポインタ３３０はレジスタREG_WP_Fで設定され、REG_SP_FからREG_EP_Fに設定されるアドレスの範囲に設定する。裏画像ライトポインタ３４０、出力用ライトポインタ３５０も同様である。画像リードポインタは表画像、裏画像、出力用メモリのすべての範囲で設定可能である。ページメモリアドレスセレクト部３７０にはページメモリの容量を示すREG_PEPORY_CAP、ページメモリのモードを設定するREG_PR、バースト長を設定するREG_BL、読み出しデータ（表画像、裏画像、出力用メモリのどれか）を設定するREG_RSELを入力すると、各設定値に合わせたアドレスが選択され、CS（チップセレクト）、BA（バンクアドレス）、ADRRESS（アドレス）として出力される。
【００５６】
さらに、図１５で回転画像リード・ライトポインタの詳細を説明する。
【００５７】
３７１は回転画像リードライトアドレス生成部であり、回転角度を設定するレジスタREG_RT、読み出し画像（カラー、グレー、２値）を設定するレジスタREG_RCPOD、回転画像１ページ分のライン方向の画像回転ブロック数を設定するレジスタREG_LBLK、回転画像１ページ分の副走査方向の画像回転ブロック数を設定するレジスタREG_PBLK、が入力される。これらの設定値により、図８に示すスタートポイント、オフセットを出力し、画像回転ブロック数分の処理を行う。Rotationは回転角度、レジスタREG_BLはバースト長の設定である。このようにして、回転読み出し時は回転リードポインタ３７３で設定されるアドレスから読み出され、回転書き込み時は回転ライトポインタ３７２で設定されるアドレスに書き込まれる。
【００５８】
（ページメモリデータ入力部４００）
次に、図１７を用いてページメモリデータ入力部４００に関して説明する。
【００５９】
４１０は回転リードアドレスカウンタ、４３０は画像リードアドレスカウンタ、４２０、４４０はRAPである。画像回転時はR_RD_EN信号で読み出しが許可されることにより、回転リードアドレスカウンタ４１０でアドレスカウンタがスタートする。ページメモリ６から読み出された画像データは、I/O ７００を経由し、SD_DATA_IN[95:0]として、RAP  ４２０  に書き込まれ、R_DT_1[95:0]として回転処理部５００に転送される。回転処理を行わない場合は、V_RD_EN信号で読み出しが許可されることにより、画像リードアドレスカウンタ４３０でアドレスカウンタがスタートする。ページメモリ６から読み出された画像データは、I/O ７００を経由し、SD_DATA_IN[95:0]として、RAP  ４４０  に書き込まれ、V_DT_OUT[95:0]として画像データ出力部６００に転送される。
【００６０】
（回転処理部５００）
次に、図１８を用いて回転処理部５００に関して説明する。ここでは画像回転ブロックの回転処理を行う。５１０は回転制御部、５２０はデータセレクト部、５３０はアクセス制御部、５４０は回転用メモリである。
【００６１】
この構成で、ページメモリデータ入力部４００からの回転画像データがR_DT_1[95:0]としてデータセレクト部５２０に入力される。データセレクト部５２０ではR_DT_1[95:0]とR_DT_２[95:0]の回転画像データをセレクトする。まず、R_DT_1[95:0]側の回転画像データがセレクトされ、R_DATA[95:0]から出力される。回転画像データは回転用メモリ５４０に書き込まれる。続いて、R_DT_２[95:0]として回転用メモリ５４０から読み出され、データセレクト部５２０に入力される。今度はデータセレクト部５２０でR_DT_２[95:0]がセレクトされR_DATA[95:0]としてページメモリコントロール部３００に入力される。回転角度を設定するレジスタREG_RT、読み出し画像（カラー、グレー、２値）を設定するレジスタREG_RCPOD、回転画像１ページ分の主走査方向の画像回転ブロック数を設定するレジスタREG_LBLK、回転画像１ページ分の副走査方向の画像回転ブロック数を設定するレジスタREG_PBLK、が入力されることで、回転制御部５１０、アクセス制御部５３０が設定される。回転用メモリ５４０のアドレスはアクセス制御部からのADRによって制御される。
【００６２】
次に、画像回転ブロックの画像データ回転処理方法に関して図２２、図２３、図２４を用いて説明する。
【００６３】
図２２は、回転用メモリ５４０に書き込む前の画像回転ブロックである。番号の付けられた格子１つは１画素を意味する。画像回転ブロックの右上に位置する格子００９５は副走査方向の１画素目、副走査方向の９６画素目を意味する。１バーストは９６bitとすると、グレー８bitデータの場合、１２画素分である。８バーストで９６画素となる。これを副走査方向に９６回繰り返せば１回転画像ブロック分が転送される。
【００６４】
図２３に、回転用メモリ５４０への書き込み方法と、読み出し方法を示す。図２３に示す回転画像ブロックの１番上のラインには、図２２に示す回転画像ブロックの１番上のラインと同じデータが書き込まれる。図２３に示す回転画像ブロックの２番目のラインには、図２２に示す回転画像ブロックの２番目のラインデータを右に１画素分シフトして書き込む。第２３図に示す画像回転ブロックの３番目のラインには、図２２に示す画像回転ブロックの３番目のラインデータを右に２画素分シフトして書き込む。これを繰り返し、９６ライン分を回転用メモリ５４０に書き込む。読み出し時は(1)、(2)、(3)…の順に矢印→の方向に読み出す。(2)は左下の格子９５０１、右下の９４０１の順に読み出す。
【００６５】
これを繰り返せば、読み出し後の回転画像データは、図２４に示すように９０度右回転した画像データとなる。２７０度右回転の場合は図２３の矢印の方向を逆にした方向に読み出す。１８０度回転時は回転用メモリ５４０に書き込む際にラインデータをシフトしないで書き込み、１番下のラインの右から左に読み出し、１番上のラインまで繰り返す。カラー２４bit（R:8bit、G:8bit、B;8bit）データの場合は1バーストを９６bitとすると、４画素分である。８バーストで３２画素となる。これを副走査方向に３２回繰り返せば１画像回転ブロック分が転送される。２４bitを１つの格子単位として、グレー８bitの場合と同様の処理を行うことで、９０度、１８０度、２７０度の回転画像が得られる。
【００６６】
（回転処理部５００の各ブロックの構成及び動作例）
次に、回転処理部５００の各ブロックの詳細を説明する。
【００６７】
図１９を用いて回転制御部５１０の詳細を説明する。
【００６８】
読み出し画像（カラー、グレー、２値）を設定するレジスタREG_RCPODの設定値により、書き込みカウンタ５１１、カウンタ５１２、読み出しカウンタ５１４のカウント値がセットされる。回転許可を示すROT_TRG信号に従い、各カウンタがカウント動作する。書き込みカウンタ５１１により、書き込みライントリガWLINE_TRGを出力し、書き込みライン数をカウントする。読み出しカウンタ５１４により、読み出しライントリガRLINE_TRGを出力し、読み出しライン数をカウントする。書き込み開始時にはトリガWR_TRGが出力され読み出し時にはトリガRD_TRGが出力される。
【００６９】
回転処理が終了すると次の回転処理を行うリクエスト信号REQをページメモリコントロール部３００へ出力する。次の回転処理が可能となるとROT_TRG信号が入力され、回転処理を行う。また、主走査方向ブロックカウンタ５１５で回転画像の１ライン分のブロック数をカウントする。回転画像の１ライン分のブロックをページメモリに書き込み完了でRT_WLINEが出力される。副走査方向ブロックカウンタ５１６で回転画像の副走査方向のブロック数をカウントする。回転画像の全ブロックをページメモリに書き込み完了でRT_WENDが出力される。
【００７０】
次に、図２０を用いてデータセレクト部５２０を説明する。
【００７１】
データセレクト部５２０ではページメモリデータ入力部４００からのR_DT_1[95:0]と、回転用メモリ５４０からのR_DT_2[95:0]を選択し、R_DATA[95:0]としてページメモリコントロール部３００に出力する。ページメモリデータ入力部４００からのR_DT_1[95:0]と、回転用メモリ５４０からのR_DT_2[95:0]はセレクタ５２１に入力される。セレクタ５２１には回転用メモリ５４０への書き込みを示すWR_TRGと、読み出しを示すRD_TRGが入力され、書き込み時はR_DT_1[95:0]を選択し、読み出し時はR_DT_2[95:0]を選択する。セレクタ５２１で選択された画像データはDT_IN[95:0]としてバイトセレクト部５２２に入力される。バイトセレクト部５２２では図２３で説明した順序となるように画像データを選択する。
【００７２】
バイトセレクト部の詳細を図２１に示す。
【００７３】
セレクト信号生成部にはすでに説明済みのWLINE_TRG、RLINE_TRG、REG_ROT、WR_TRG、RD_TRG、REG_RCPODが入力される。５２３はセレクト部であり、セレクト信号生成部で生成されたセレクト信号により、バイトセレクトを行い、R_DATA[7:0]として出力する。他のバイトセレクト部も同様である。このようにして選択された画像データはR_DATA[95:0]として、ページメモリコントロール部３００に入力される。
【００７４】
次に、アクセス制御部５３０に関して、図２５を用いて説明する。
【００７５】
アクセス制御部５３０では、回転用メモリ５４０のアクセス制御を行う。アクセス制御部５３０にはすでに説明済みのWR_TRG、RD_TRG、RLINE_TRG、REG_ROT、REG_RCPODが入力される。ライト制御部５３１と、リード制御部５３３では、すでに図２３で説明した順序となるようにアドレスを出力する。セレクタ５３２はWR_TRG、RD_TRGにより、書き込み時のアドレスWR_AD、読み出し時のアドレスRD_ADを切り替え、ADR０〜ADR11として出力し、回転用メモリ５４０のアクセス制御を行う。
【００７６】
（画像データ出力部６００）
次に、画像データ出力部６００に関して、図２６を用いて説明する。
【００７７】
画像データ出力部６００では後段の画像データ処理部８での処理に合わせ、出力処理を行う。画像データ出力部６２０では例えば９６bitから２４bitへの変換を行う。ページメモリ読み出し制御部６１０からの制御によりページメモリデータ入力部からのV_DT_OUT[95:0]は画像データ入力部２００で行ったのと逆の処理でVDATA_OUT[23:0]として画像データ処理部８に出力される。
【００７８】
また、パッキング処理を行って回転処理を行った画像データには図２８に示すように、無効区間と有効区間が存在する。無効区間と有効区間を明確にするため、図２７に示すビデオ信号を後段の画像データ処理部８に対して出力する。主走査方向と副走査方向に対して有効区間、無効区間が明確になるようにレジスタREG_1〜REG8を設定する。
【００７９】
このようにして、画像データ処理部５から入力された画像データは、回転処理後、画像データ処理部８に出力される。
【００８０】
尚、本実施形態では、主にハードウエア構成の例で各構成要素を例示したが、これらはプログラムに従って動作するコンピュータが実行するソフトウエア構成での代替が可能であり、これらも当然本発明に含まれる。その場合は、本実施形態で示した構成要素がプログラムの各ステップとなる。
【００８１】
また、本発明は、複数の機器(例えばホストコンピュータ、インタフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（複写機、プリンタ、ファクシミリ装置など）に適用してもよい。
【００８２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００８３】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【００８４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００８５】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００８６】
【図１】本実施形態の画像回転処理の機能ブロックを示す図である。
【図２】本実施形態の画像の９０度右回転処理を説明する図である。
【図３】本実施形態の画像の１８０度回転処理を説明する図である。
【図４】本実施形態の画像の２７０度右回転処理を説明する図である。
【図５】ページメモリI/F部（回転処理部）の構成例を示すブロック図である。
【図６】本実施形態の画像処理装置の全体を示す概略図である。
【図７】、  画像データ入力部の構成例を示すブロック図である。
【図８】ページメモリコントロール部のデータセレクト部の構成例を示すブロック図である。
【図９】ページメモリコントロール部のアドレスセレクト部の構成例を示すブロック図である。
【図１０】画像回転ブロック（グレー8bit）の例を示す図である。
【図１１】画像回転ブロック（カラー24bit）の例を示す図である。
【図１２】本実施形態の９０度右回転を説明する図である。
【図１３】本実施形態の１８０度回転を説明する図である。
【図１４】本実施形態の２７０度右回転を説明する図である。
【図１５】回転画像リード・ライトポインタの詳細例を示す図である。
【図１６】本実施形態のリングメモリ空間を示す図である。
【図１７】ページメモリデータ入力部の構成例を示すブロック図である。
【図１８】回転処理部の構成例を示すブロック図である。
【図１９】回転制御部の構成例を示すブロック図である。
【図２０】データセレクト部の構成例を示すブロック図である。
【図２１】データセレクト部のバイトセレクト部の構成例を示すブロック図である。
【図２２】画像回転前の回転用メモリへの書き込みと読み出しを説明する図である。
【図２３】９０度右回転時の回転用メモリへの書き込みと読み出しを説明する図である。
【図２４】９０度回転後の回転用メモリへの書き込みと読み出しを説明する図である。
【図２５】アクセス制御部の構成例を示すブロック図である。
【図２６】画像データ出力部の構成例を示すブロック図である。
【図２７】ビデオ信号出力の例を示すタイミングチャートである。
【図２８】本実施形態のパッキングの例を説明する図である。
【図１】
2005109856.tif 000003
【図２】
2005109856.tif 000004
【図３】
2005109856.tif 000005
【図４】
2005109856.tif 000006
【図５】
2005109856.tif 000007
【図６】
2005109856.tif 000008
【図７】
2005109856.tif 000009
【図８】
2005109856.tif 000010
【図９】
2005109856.tif 000011
【図１０】
2005109856.tif 000012
【図１１】
2005109856.tif 000013
【図１２】
2005109856.tif 000014
【図１３】
2005109856.tif 000015
【図１４】
2005109856.tif 000016
【図１５】
2005109856.tif 000017
【図１６】
2005109856.tif 000018
【図１７】
2005109856.tif 000019
【図１８】
2005109856.tif 000020
【図１９】
2005109856.tif 000021
【図２０】
2005109856.tif 000022
【図２１】
2005109856.tif 000023
【図２２】
2005109856.tif 000024
【図２３】
2005109856.tif 000025
【図２４】
2005109856.tif 000026
【図２５】
2005109856.tif 000027
【図２６】
2005109856.tif 000028
【図２７】
2005109856.tif 000029
【図２８】
2005109856.tif 000030
【手続補正書】
【提出日】平成15年11月12日(2003.11.12)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
図７では画像データに表画像と裏画像がある場合を示している。ページメモリのバス幅に合わせる処理は表画像データ入力制御部２１０及び、裏画像データ入力制御部２４０で行われる。前段の画像データ処理部５から画像データの有効領域を示す信号PAGE0_IN、HAVA0_IN、 PAGE1_IN、HAVA1_IN、が入力される。裏画像データはレジスタREG_MODに設定された条件により選択され、裏画像データ入力制御部２４０に入力される。書き込み許可がレジスタREG_WE_F、REG_WE_Bに設定されることで、以上の動作が開始される。画像データがバス幅に対し不足する場合は、バス幅に合わせ、データをパッキングする。ページメモリのバス幅に合った画像データはF_RAM[95:0]バスから、RAM２２０に記録される。高速化にはRAM２２０をデュアルポートRAMにするのがよい。RAM２２０のF_B[95:0]バスから出力される画像データはページメモリコントロール部３００に入力される。裏画像データも同様に、B_RAM[95:0]バスから、RAM２５０に記録され、B_B[95:0]バスから出力される画像データはページメモリコントロール部３００に入力される。  （ページメモリコントロール部３００）
次に、ページメモリコントロール部３００に関して説明する。説明においてページメモリをSDRAMとして説明するが、ページメモリをＳＤＲＡＭに限定するものではない。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
図９において、３３０は表画像ライトポインタが設定されるレジスタ、３４０は裏画像ライトポインタが設定されるレジスタ、３５０は出力用メモリのライトポインタが設定されるレジスタ、３６０は画像リードポインタが設定されるレジスタ、３７０はページメモリアドレスセレクト部である。表画像ライトポインタ３３０はレジスタREG_WP_Fで設定され、REG_SP_FからREG_EP_Fに設定されるアドレスの範囲に設定する。裏画像ライトポインタ３４０、出力用ライトポインタ３５０も同様である。画像リードポインタは表画像、裏画像、出力用メモリのすべての範囲で設定可能である。ページメモリアドレスセレクト部３７０にはページメモリの容量を示すREG_MEMORY_CAP、ページメモリのモードを設定するREG_MR、バースト長を設定するREG_BL、読み出しデータ（表画像、裏画像、出力用メモリのどれか）を設定するREG_RSELを入力すると、各設定値に合わせたアドレスが選択され、CS（チップセレクト）、BA（バンクアドレス）、ADDRESS（アドレス）として出力される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
３７１は回転画像リードライトアドレス生成部であり、回転角度を設定するレジスタREG_RT、読み出し画像（カラー、グレー、２値）を設定するレジスタREG_RCMOD、回転画像１ページ分のライン方向の画像回転ブロック数を設定するレジスタREG_LBLK、回転画像１ページ分の副走査方向の画像回転ブロック数を設定するレジスタREG_PBLK、が入力される。これらの設定値により、図８に示すスタートポイント、オフセットを出力し、画像回転ブロック数分の処理を行う。Rotationは回転角度、レジスタREG_BLはバースト長の設定である。このようにして、回転読み出し時は回転リードポインタ３７３で設定されるアドレスから読み出され、回転書き込み時は回転ライトポインタ３７２で設定されるアドレスに書き込まれる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
４１０は回転リードアドレスカウンタ、４３０は画像リードアドレスカウンタ、４２０、４４０はRAMである。画像回転時はR_RD_EN信号で読み出しが許可されることにより、回転リードアドレスカウンタ４１０でアドレスカウンタがスタートする。ページメモリ６から読み出された画像データは、I/O ７００を経由し、SD_DATA_IN[95:0]として、RAM  ４２０  に書き込まれ、R_DT_1[95:0]として回転処理部５００に転送される。回転処理を行わない場合は、V_RD_EN信号で読み出しが許可されることにより、画像リードアドレスカウンタ４３０でアドレスカウンタがスタートする。ページメモリ６から読み出された画像データは、I/O ７００を経由し、SD_DATA_IN[95:0]として、RAM  ４４０  に書き込まれ、V_DT_OUT[95:0]として画像データ出力部６００に転送される。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
セレクト信号生成部にはすでに説明済みのWLINE_TRG、RLINE_TRG、REG_ROT、WR_TRG、RD_TRG、REG_RCMODが入力される。５２３はセレクト部であり、セレクト信号生成部で生成されたセレクト信号により、バイトセレクトを行い、R_DATA[7:0]として出力する。他のバイトセレクト部も同様である。このようにして選択された画像データはR_DATA[95:0]として、ページメモリコントロール部３００に入力される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
アクセス制御部５３０では、回転用メモリ５４０のアクセス制御を行う。アクセス制御部５３０にはすでに説明済みのWR_TRG、RD_TRG、RLINE_TRG、REG_ROT、REG_RCMODが入力される。ライト制御部５３１と、リード制御部５３３では、すでに図２３で説明した順序となるようにアドレスを出力する。セレクタ５３２はWR_TRG、RD_TRGにより、書き込み時のアドレスWR_AD、読み出し時のアドレスRD_ADを切り替え、ADR０〜ADR11として出力し、回転用メモリ５４０のアクセス制御を行う。