(57)【要約】【課題】バンクコンフリクトせずに、バーストアクセスでメモリアクセス効率を向上させ、シリアルスキャン時のリアルタイム性を確保する。【解決手段】入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段を有する。【選択図】　　　　図１
2004072600.tif 000002
【特許請求の範囲】
【請求項１】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む手段と、
前記受信メモリから該データを読出して前記データバッファに書込む手段と、
前記データバッファから該データを切出して画像回転を行う手段と、
画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、
前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段を有することを特徴とする画像回転システム。
【請求項２】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む手段と、
前記受信メモリから該データを読出して前記データバッファに書込む手段と、
前記データバッファから該データを切出して画像回転を行う手段と、
画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、
前記データバッファに格納したデータを読み出す手段を有し、
画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う手段を有することを特徴とする画像回転システム。
【請求項３】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む手段と、
前記受信メモリから該データを読出して前記データバッファに書込む手段と、
前記データバッファから該データを切出して画像回転を行う手段と、
画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、
前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う手段を有することを特徴とする画像回転システム。
【請求項４】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む手段と、
前記受信メモリから該データを読出して前記データバッファに書込む手段と、
前記データバッファから該データを切出して画像回転を行う手段と、
画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、
前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段と、画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う手段を有することを特徴とする画像回転システム。
【請求項５】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む手段と、
前記受信メモリから該データを読出して前記データバッファに書込む手段と、
前記データバッファから該データを切出して画像回転を行う手段と、
画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、
前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段と、前記データバッファに格納されたデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う手段を有することを特徴とする画像回転システム。
【請求項６】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む工程と、
前記受信メモリから該データを読出して前記データバッファに書込む工程と、
前記データバッファから該データを切出して画像回転を行う工程と、
画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、
前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程を有することを特徴とする画像回転方法。
【請求項７】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む工程と、
前記受信メモリから該データを読出して前記データバッファに書込む工程と、
前記データバッファから該データを切出して画像回転を行う工程と、
画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、
前記データバッファに格納されたデータを読み出す工程を有し、
画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う工程を有することを特徴とする画像回転方法。
【請求項８】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む工程と、
前記受信メモリから該データを読出して前記データバッファに書込む工程と、
前記データバッファから該データを切出して画像回転を行う工程と、
画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、
前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う工程を有することを特徴とする画像回転方法。
【請求項９】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む工程と、
前記受信メモリから該データを読出して前記データバッファに書込む工程と、
前記データバッファから該データを切出して画像回転を行う工程と、
画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、
前記データバッファに格納されたデータを読み出す工程を有し、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、
前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程を有し、
画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う工程を有することを特徴とする画像回転方法。
【請求項１０】
入力されるデータを受信し、格納する受信メモリと、
該データを一時的に蓄積するデータバッファとを有し、
前記受信メモリに該データを書込む工程と、
前記受信メモリから該データを読出して前記データバッファに書込む工程と、
前記データバッファから該データを切出して画像回転を行う工程と、
画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、
前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、
前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程と、
前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う工程を有することを特徴とする画像回転方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、レーザプリンタ、インクジェットプリンタ、複合機を含む画像形成装置の画像データの画像回転システム及び画像回転方法に関する。
【０００２】
【従来の技術】
従来、プリンタなどの画像形成装置において、画像データを編集する処理が必要となっており、例えば画像データを回転させる機能も求められている。画像データを用紙の向きに合わせるためや、縦方向のインク吐出孔を配置してシリアルスキャンを行うインクジェットプリンタなどで、特に重要視されている。
【０００３】
画像データの回転、特にラスターカラム変換を行う画像形成装置は、何らかの手法で描画されたラスターデータをカラムごとに切出す際に、まず、ラスターデータをある程度のバンド分だけ溜め、ＣＰＵに割り込みを出して通知し、ＣＰＵはラスターカラム変換を行う諸設定を行い、変換回路を起動する。その後、横ｈドット、縦ｖドット分のバッファにラスターバンドデータの一部をあて、データを縦方向に切出して、メモリに格納することを繰り返し、すべてのラスターバンドデータ分を処理するとＣＰＵに割り込みを出して通知する順番で処理を行っている。
【０００４】
【発明が解決しようとする課題】
しかし、このラスターカラム変換を高速に処理するにあたって、以下の問題が発生する。図９は、従来のラスター順次に連続アドレスでメモリに格納した場合の用紙とアドレスとの関係とバッファ格納図を示す図である。受信データのフォーマットとしては、主にラスター順次である場合が多く、図９のようなイメージで入力される。この場合、入力されるラスターデータは連続してくるため、順に連続アドレスにライトすると、不連続なアドレスからデータをリードし、バッファにライトしなければならない。これは、バンク構成をもつメモリを使用した場合、シングルアクセスとなり、メモリアクセス効率が非常に悪くなる。
【０００５】
それでは、バッファにリードする際に連続アドレスとなるようにする。図１０は、従来のラスター順次に不連続アドレスでメモリに格納した場合の用紙とアドレスの関係とバッファ格納図を示す図である。この場合、バッファに詰める段階で連続したアドレス順になる。これはバーストアクセスをした場合、メモリのレイテンシの分だけアクセスが遅くなる、すなわちリードが遅くなるという点から、リードだけはなんとかバーストアクセスをして、少しでもアクセス効率を上げようという意図で行うものも知られている。しかしながら、始めの入力が不連続アドレス、すなわちシングルアクセスとなるので、どうしてもアクセス効率は悪くなってしまう。しかし、不連続アドレスのメモリアクセスでは、ライトの方が若干早いために（レイテンシの分）この方法を採用するケースがある。
【０００６】
また、バッファから縦方向に切出してメモリに順に格納する場合、シリアルスキャンなどを行う記録装置の性質上、不連続アドレスでライトしなければならない。図１１は、従来のバッファ切出し後のアドレスイメージを示す図である。図１１のように縦方向の連続性を意識せず順番にライトすると、いざインクジェットプリンタのヘッドが動作してデータをリードするときに不連続アドレスでリードしなければならず、リアルタイム性を確保する上で問題となる。シリアルスキャンなどを行う記録装置は、縦方向に吐出孔が年々増えており、とてもバッファの縦ｖドット分に収まりきれなくなったからである。
【０００７】
さらに、記録装置がシリアルスキャンを行い、カラム生成されたデータを順にリードする際は、要求されるリード時間が限られるため連続アドレスでリードしなければならない。わざわざ不連続アドレスでライトする工夫によるものであるが、連続アドレスであるがゆえにバンクコンフリクトが発生し、メモリアクセス効率が悪くなる。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、バンクコンフリクトせずに、バーストアクセスでメモリアクセス効率を向上させ、シリアルスキャン時のリアルタイム性を確保することを目的とする。
【０００９】
【課題を解決するための手段】
かかる目的を達成するために、請求項１記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段を有することを特徴としている。
【００１０】
請求項２記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記データバッファに格納したデータを読み出す手段を有し、画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う手段を有することを特徴としている。
【００１１】
請求項３記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う手段を有することを特徴としている。
【００１２】
請求項４記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段と、画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う手段を有することを特徴としている。
【００１３】
請求項５記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む手段と、前記受信メモリから該データを読出して前記データバッファに書込む手段と、前記データバッファから該データを切出して画像回転を行う手段と、画像回転後の結果をメモリに書込む手段とを有する画像回転システムにおいて、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える手段を有し、前記受信メモリから読出し、前記データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う手段と、前記データバッファに格納されたデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う手段を有することを特徴としている。
【００１４】
請求項６記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む工程と、前記受信メモリから該データを読出して前記データバッファに書込む工程と、前記データバッファから該データを切出して画像回転を行う工程と、画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程を有することを特徴としている。
【００１５】
請求項７記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む工程と、前記受信メモリから該データを読出して前記データバッファに書込む工程と、前記データバッファから該データを切出して画像回転を行う工程と、画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、前記データバッファに格納されたデータを読み出す工程を有し、画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う工程を有することを特徴としている。
【００１６】
請求項８記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む工程と、前記受信メモリから該データを読出して前記データバッファに書込む工程と、前記データバッファから該データを切出して画像回転を行う工程と、画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う工程を有することを特徴としている。
【００１７】
請求項９記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む工程と、前記受信メモリから該データを読出して前記データバッファに書込む工程と、前記データバッファから該データを切出して画像回転を行う工程と、画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、前記データバッファに格納されたデータを読み出す工程を有し、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程を有し、画像回転後の結果を書込む際は、バンドごとにバンクを切替えてメモリにライトアクセスし、データ配置を行う工程を有することを特徴としている。
【００１８】
請求項１０記載の発明は、入力されるデータを受信し、格納する受信メモリと、該データを一時的に蓄積するデータバッファとを有し、前記受信メモリに該データを書込む工程と、前記受信メモリから該データを読出して前記データバッファに書込む工程と、前記データバッファから該データを切出して画像回転を行う工程と、画像回転後の結果をメモリに書込む工程とを有する画像回転方法において、前記受信メモリにデータを格納する際は、連続するアドレスでバーストライトアクセスし、ラインごとにバンクを切替える工程を有し、前記受信メモリから読出し、該データバッファに書込みを行う際は、ラインごとにバンクを切替えてバーストリードアクセスし、データ配置を行う工程と、前記データバッファに格納したデータを読出して画像回転後の結果を書込む際は、バンドごとにバンクを切替えて複数のアドレス先へ分割してライトアクセスし、データ配置を行う工程を有することを特徴としている。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を添付図面を参照しながら詳細に説明する。
【００２０】
［実施例１］
図１は、本発明の画像回転システムの一実施例を示すブロック図である。本発明のシステムは、メモリアービターＡ１と、メモリコントローラＡ２と、外部メモリＡ３と、ＤＭＡブロックＡ４と、データ受信部Ａ５と、データソース部Ａ６と、データ変換器Ａ７と、データ出力ブロックＡ８と、データディスティネーション部Ａ９と、ＣＰＵＡ１０と、ＲＯＭＡ１１とを有し構成されている。
【００２１】
メモリアービターＡ１は、各機能ブロックとのメモリアクセス要求に対する処理を行う。メモリコントローラＡ２は、外部メモリＡ３とのインターフェースを司る。ＤＭＡブロックＡ４は、各機能ブロックとメモリアービターＡ１とのインターフェースを司る。データ受信部Ａ５は、データソース部Ａ６から何かしらの入力を受けて、転送先の外部メモリＡ３に対してのアドレスを適切に切替えて、ＤＭＡブロックＡ４に渡す。データ変換器Ａ７は、外部メモリＡ３に格納されたデータを、ＤＭＡブロックＡ４を介して、回転処理を行い、転送先の外部メモリＡ３に対してのアドレスを適切に切替えて、ＤＭＡブロックＡ４に渡す。データ出力ブロックＡ８は、転送元の外部メモリＡ３に対してのアドレスを適切に切替えて、ＤＭＡブロックＡ４を介してリードし、何かしらのデータディスティネーション部Ａ９に出力する。ＣＰＵＡ１０は、本システムを制御するＣＰＵである。ＲＯＭＡ１１は、プログラムなどが格納されるＲＯＭである。
【００２２】
図１のブロック図は、入力された画像データを回転し、出力するという簡単な構成の一例を挙げている。まず、データソース部Ａ６で入力されたデータをデータ受信部Ａ５が受信し、ＤＭＡブロックＡ４、メモリアービタＡ１、メモリコントローラＡ２を介しメモリＡ３にデータを書込む。
【００２３】
次に、メモリＡ３からメモリコントローラＡ２、メモリアービタＡ１、ＤＭＡブロックを介し、データ変換器Ａ７にデータが入力され、回転処理が行われる（バッファライト）。データ変換器Ａ７（バッファリード）からＤＭＡブロックＡ４、メモリアービタＡ１、メモリコントローラＡ２を介し、メモリＡ３に回転処理後のデータを書込む。回転対象のエリアを横にずらし、データ変換器Ａ７へのデータ送信、メモリＡ３への書込みを繰返し、回転対象の全エリアを行う。
【００２４】
回転対象の全エリア終了後、回転されたデータを、メモリＡ３からリードし、メモリコントローラＡ２、メモリアービタＡ１、ＤＭＡブロックＡ４を介し、データディスティネーション部Ａ９へ書込むみ、回転処理後のデータを本処理外へ渡す。
【００２５】
図２は、ラスター順次に連続アドレスでラスタごとにバンクを切替えてメモリに格納した場合の用紙とアドレスの関係とバッファ格納図を示す図である。図２は、ラスター順次にデータ受信部Ａ５に入力されるデータをメモリＡ３にどう配置したかを表している。メモリＡ３に対しては連続アドレスでかつ、単位を従来よりも増やした（図２では３２ｂｉｔ→１２８ｂｉｔ）ので、バースト単位で格納する。ラスターごとにバンクを切替えてデータ受信部Ａ５に入力されるデータをメモリＡ３にライトする。
【００２６】
図３は、受信メモリへのバーストライトを示す図である。バッファに詰めるときは、不連続アドレス順に、バンク０のアドレス０からバーストリード、バンク１のアドレス０からバーストリード、バンク２のアドレス０からバーストリードという感じでアクセスし、図２のように詰めていく。従ってバンクコンフリクトなくバーストリードできる。図４は、バッファ格納時のバーストリードを示す図である。従って、本実施例によって、データ受信でメモリにライトするシングルアクセスと、バッファ内へ書込むためのリードでバンクコンフリクトを回避することができ、飛躍的にアクセス効率が向上できる。
【００２７】
データ受信部Ａ５からメモリＡ３にデータをライトする動作のフローチャートを図５に示す。まず、引数の初期化を行い（ステップＳ５０１）、受信ラスター長Ｈと、格納先頭アドレスＫＡを設定する（ステップＳ５０２）。受信ラスター長Ｈは、１２８ｂｉｔ単位を一つとしたユニットが横に何個入力されるかという意味を持つ。格納先頭アドレスＫＡは、３２ラスターデータの先頭データをどこのアドレスに入れるかという意味を持つ。この２つが予め分かっていれば、ハードウエアは、次々入力されるデータに対し、アドレス先を計算して格納することが可能となる。
【００２８】
１２８ｂｉｔのデータが溜まったら（ステップＳ５０３でＹｅｓ）、メモリに格納し（ステップＳ５０４）、１６バイト先（１６＊ＲＨＴ）にアドレスを足す（ステップＳ５０７）。これを受信ラスター長Ｈ＝ＲＨＴ、すなわち１ラスターの入力が終了するまで（ステップＳ５０５でＹｅｓ）繰り返していく。（ＰＨＴは、受信１２８ｂｉｔ単位の個数）次のバンクに切替えて同様に繰り返す。仮に４バンク構成のメモリを使用した場合、４ラスターごとにバンクが繰り返される。４ラスターごとに（ステップＳ５０８でＹｅｓ）、アドレスオフセット分の計算をし（ステップＳ５０９）、これを足しこむ（ステップＳ５１０）。このようにして３２ラスター分の受信を行っている。
【００２９】
また、メモリＡ３からデータをリードして、データ変換器Ａ７内バッファに格納する動作のフローチャートを図６に示す。まず、１２８ｂｉｔの４ラスタ単位にアドレスが増分するＯＦＦＳＥＴ、１２８ｂｉｔの３２ラスタ単位にアドレスが増分するＯＦＦＳＥＴ２、１２８ｂｉｔ＊３２ラスタ分のリード及びバッファライト及びカラム方向の切出しの一通り処理が終わると増分するＨＶ、１２８ｂｉｔリード後にバッファへライトするアドレスＢＦＡを初期化する（ステップＳ６０１）。次に、読出し先頭アドレスＲＡを設定し、読出しラスタ長ＲＨを参照する（ステップＳ６０２）。現在読出ししているアドレスを計算し（ステップＳ６０３）１２８ｂｉｔ単位でリードし、ＢＦＡアドレスにライトし（ステップＳ６１０）、ＢＦＡ、Ｒを１増加する（ステップＳ６１１、Ｓ６１２）。これは、バンクが変わるだけのアクセスとなる。
【００３０】
Ｒが４の倍数、つまり１２８ｂｉｔ＊４ラスタ単位のリードが終了したら（ステップＳ６０８でＹｅｓ）、１６＊（ＲＨ＋１）＊（Ｒ／４）をＯＦＦＳＥＴとして足しこみ（ステップＳ６０９）、ＢＦＡアドレスにライトする処理を行う（ステップＳ６１０）。次の１２８ｂｉｔ単位の４ラスタリードでは、ＯＦＦＳＥＴ分のアドレスが足しこまれて、バンクが切替わる。
【００３１】
Ｒ＝３２つまり１２８ｂｉｔ＊３２ラスタ単位のリードが終了したら（ステップＳ６０４でＹｅｓ）、Ｒ、ＯＦＦＳＥＴ、ＢＦＡを初期化し（ステップＳ６０５）、データをカラム方向から順に切出し（ステップＳ６０６）、ＨＶを１増加する（ステップＳ６１３）。ポイントは、あくまでバッファに書込むまでのシステムであるから、これについては特定した方法まで言及しない。そして、１６＊ＨＶをＯＦＦＳＥＴ２としてリードアドレスのオフセット分として足しこむ（ステップＳ６１４）。ＲＨ＝ＨＶとなれば（ステップＳ６０７でＹｅｓ）、対象領域が終了したことになるので、処理を終了する。
【００３２】
［実施例２］
本実施例も図１から図６の構成を用いる。ここまではバッファに格納されたデータをカラム方向に切出してメモリに戻す以外の内容であり、実施例１の通りであるので説明を省略する。ところで本実施例でのポイントは、あくまでバッファからメモリにライトするシステムについてであるから、バッファに書込むまでのシステムを指定した実施例１は一つの例であり、特に特定しなくとも良い。
【００３３】
実施例２では、このバッファに格納されたデータをカラム方向に切出してメモリに戻す方法について記述する。実施例１と分けて記述した理由は、実施例１と実施例２は独立として使用しても良いし、併せて使用しても良いからである。
【００３４】
図７は、実施例１のシステムで格納されたバッファ内のデータの様子と、縦に切出した順を示した切出しイメージと切出し後のアドレスイメージを示す図である。Ｆ０、Ｆ１、Ｆ２・・・Ｆ１２７の順に切出すことができる。縦方向のバッファのビット幅は、実施例１では３２ｂｉｔで記述したが、本実施例ではより高速性を高めるため、バーストアクセスを考慮して、例えば１２８ｂｉｔとする。まずこの構成に替えることで縦に切出したデータを格納するときのスループットを上げる。
【００３５】
ところでこの縦に切出したＦ０、Ｆ１、Ｆ２、・・・Ｆ１２７の順のデータをどのようなアドレス順でメモリＡ３にライトするかが問題である。例えば縦方向のインク吐出孔を配置してシリアルスキャンを行うインクジェットプリンタなどの場合、たいていは問題が生じる。縦方向のノズル列を増やし、高速に動作させるため、縦方向に連続アドレスかつバンクコンフリクトないようにするためにＦ０、Ｆ１、Ｆ２、・・・Ｆ１２７のアドレスはこれを考慮して不連続なアドレスかつバーストアクセスで格納しなければならない。このようにすれば高速にシリアルスキャンして縦の画像データを連続アドレスかつバンクコンフリクトなくリードすることで、高速化を図りリアルタイム性を確保することができるからである。
【００３６】
図７の下図は縦に切出したデータをどのようなアドレスに配置したかという図である。Ｆ０からＦ１のアドレスオフセット分は縦方向分にいくつ必要かで変わってくるが、図７では３２のオフセットで不連続順にバーストライトしている。このようにおくことで、例えばインクジェットプリンタのヘッドが動いて、ある縦方向のデータを連続かつバンクコンフリクトなし（例では、バンク０のアドレス０番地から１２８ｂｉｔ、バンク１のアドレス０番地から１２８ｂｉｔ、バンク２のアドレス０番地から１２８ｂｉｔ、バンク３のアドレス０番地から１２８ｂｉｔ、バンク０のアドレス１６番地から１２８ｂｉｔ、・・・。バンク３のアドレス１６番地から１２８ｂｉｔ）に順にリードさせることができる。
【００３７】
［実施例３］
本実施例も図１から図６の構成を用いる。ここまではバッファに格納されたデータをカラム方向に切出してメモリに戻す以外の内容であり、実施例１の通りであるので説明を省略する。ところで本実施例でのポイントは、あくまでバッファからメモリにライトするシステムについてであるから、バッファに書込むまでのシステムを指定した実施例１は一つの例であり、特に特定しなくとも良い。
【００３８】
実施例３では、このバッファに格納されたデータをカラム方向に切出してメモリに戻す方法について記述する。実施例１と分けて記述した理由は、実施例１と実施例３は独立として使用しても良いし、併せて使用しても良いからである。これらを鑑み、本実施例では、以下のように行う。ポイントは、データ変換器Ａ７バッファに格納されたデータを偶数孔と奇数孔に分けて縦に切出して、あとは実施例２と同じような概念でメモリライトする。なお、実施例３のみ行ってもアクセス効率の向上は見込める。また、実施例１と組み合わせても良い。
【００３９】
図８は、実施例１のシステムで格納されたバッファ内のデータの様子と、縦に切出した順を示したバッファ切出しイメージ図とバッファ切出し後のＥＶＥＮ側アドレスイメージを示す図である。Ｅ０、Ｅ１、Ｅ２・・・Ｅ１２７、Ｏ０、Ｏ１、Ｏ２・・・Ｏ１２７の順に切出す。縦方向のバッファのビット幅は、実施例１では３２ｂｉｔで記述したが、本実施例ではより高速性を高めるため、バーストアクセスを考慮して、例えば２５６ｂｉｔとする。まずこの構成に替えることで縦に切出したデータを格納するときのスループットを上げる。
【００４０】
ところでこの縦に切出したＥ０、Ｅ１、Ｅ２・・・Ｅ１２７、Ｏ０、Ｏ１、Ｏ２・・・Ｏ１２７の順のデータをどのようなアドレス順でメモリＡ３にライトするかが問題である。例えば縦方向のインク吐出孔を配置してシリアルスキャンを行うインクジェットプリンタなどの場合、たいていは問題が生じる。縦方向のノズル列を増やし、高速に動作させるため、縦方向に連続アドレスかつバンクコンフリクトないようにするためにＥ０、Ｅ１、Ｅ２・・・Ｅ１２７、Ｏ０、Ｏ１、Ｏ２・・・Ｏ１２７のアドレスはこれを考慮して不連続なアドレスで格納しなければならない。
【００４１】
図８の下図は縦に切出したデータをどのようなアドレスに配置したかという図である。Ｅ０からＥ１やＯ０からＯ１のアドレスオフセット分は縦方向分にいくつ必要かで変わってくるが、図では３２のオフセットで不連続順にバーストライトしている。ＯＤＤ側の図は省略したが、ＥＶＥＮ側と同じように配置すれば良い。ただし、全く同じのところに置くともちろん初めに書かれたデータは消えてしまうので、異なるスタートアドレスにしておく。
【００４２】
このようにおくことで、例えばインクジェットプリンタのヘッドが動きながら、ある縦方向のデータを連続かつバンクコンフリクトなし（例では、バンク０のアドレス０番地から１２８ｂｉｔ、バンク１のアドレス０番地から１２８ｂｉｔ、バンク２のアドレス０番地から１２８ｂｉｔ、バンク３のアドレス０番地から１２８ｂｉｔ、バンク０のアドレス１６番地から１２８ｂｉｔ、・・・、バンク３のアドレス１６番地から１２８ｂｉｔ）に順にＥＶＥＮ側データをリードし、次に例えばバンク０のアドレスｎ番地から１２８ｂｉｔ、バンク１のアドレスｎ番地から１２８ｂｉｔ、バンク２のアドレスｎ番地から１２８ｂｉｔ、バンク３のアドレスｎ番地から１２８ｂｉｔ、バンク０のアドレスｎ＋１６番地から１２８ｂｉｔ、・・・、バンク３のアドレスｎ＋１６番地から１２８ｂｉｔの順にＯＤＤ側をリードすることができる。
【００４３】
【発明の効果】
以上の説明から明らかなように、本発明によれば、入力されたラスタデータをメモリに格納するためのライトは、バーストライトで格納し、バッファに格納するためのリードは、バンクコンフクトなくバーストリードでバッファに格納できるため、高速にメモリアクセスを行うことができる。
【００４４】
また、本発明によれば、バッファから縦のデータに切出してメモリに格納する際は、縦方向のバッファを増やしてバーストライトし、バンドごとにバンクを切替えるため、例えばインクジェットのヘッドデータの読出しなどリアルタイム性が要求されるケースでバーストリードかつバンクコンフリクトなしにアクセスできるため、高速にメモリアクセスを行うことができる。
【図面の簡単な説明】
【図１】本発明の画像回転システムの一実施例を示すブロック図である。
【図２】ラスター順次に連続アドレスでラスタごとにバンクを切替えてメモリに格納した場合の用紙とアドレスの関係とバッファ格納図を示す図である。
【図３】受信メモリへのバーストライトを示す図である。
【図４】バッファ格納時のバーストリードを示す図である。
【図５】データ受信部Ａ５からメモリＡ３にデータをライトする動作のフローチャートである。
【図６】メモリＡ３からデータをリードして、データ変換器Ａ７内バッファに格納する動作のフローチャートである。
【図７】実施例１のシステムで格納されたバッファ内のデータの様子と、縦に切出した順を示した切出しイメージと切出し後のアドレスイメージを示す図である。
【図８】実施例１のシステムで格納されたバッファ内のデータの様子と、縦に切出した順を示したバッファ切出しイメージ図とバッファ切出し後のＥＶＥＮ側アドレスイメージを示す図である。
【図９】従来のラスター順次に連続アドレスでメモリに格納した場合の用紙とアドレスとの関係とバッファ格納図を示す図である。
【図１０】従来のラスター順次に不連続アドレスでメモリに格納した場合の用紙とアドレスの関係とバッファ格納図を示す図である。
【図１１】従来のバッファ切出し後のアドレスイメージを示す図である。
【符号の説明】
Ａ１　メモリアービタ
Ａ２　メモリコントローラ
Ａ３　外部メモリ
Ａ４　ＤＭＡブロック
Ａ５　データ受信部
Ａ６　データソース部
Ａ７　データ変換器
Ａ８　データ出力ブロック
Ａ９　データディスティネーション部
Ａ１０　ＣＰＵ
Ａ１１　ＲＯＭ
【図１】
2004072600.tif 000003
【図２】
2004072600.tif 000004
【図３】
2004072600.tif 000005
【図４】
2004072600.tif 000006
【図５】
2004072600.tif 000007
【図６】
2004072600.tif 000008
【図７】
2004072600.tif 000009
【図８】
2004072600.tif 000010
【図９】
2004072600.tif 000011
【図１０】
2004072600.tif 000012
【図１１】
2004072600.tif 000013