(57)【要約】【課題】  順方向に格納されたリングバッファ仕様のビットマップデータに対して、パラメータ設定のみで左右スキャン及び表裏面印刷の何れの場合にも簡易に対応することができるＤＭＡ制御装置及びその方法を提供する。【解決手段】  １ライン内で継続してＤＭＡ処理を行う場合に、順方向のリングバッファ仕様の画像データを格納したリングバッファにおける先頭アドレス及び終了アドレスの跨ぎの発生の有無を判別する。また、前ライン処理終了後で次ライン処理に至るまでの間にＤＭＡアドレスの更新を行う場合に、リングバッファの先頭アドレス及び終了アドレスの跨ぎの発生の有無を判別する。そして、そのアドレス飛び越しがリングバッファの終了アドレスから先頭アドレスへの跨ぎか、その逆かを判別する。そして、現在のＤＭＡアドレスから、リングバッファの終了アドレス及び先頭アドレスの設定値までの残容量を検出する。【選択図】  図２
2007034488.tif 000002
【特許請求の範囲】
【請求項１】
リングバッファに格納された画像データの周辺装置へのデータ転送をＤＭＡ方式で行うＤＭＡ制御装置であって、
１ライン内で継続してＤＭＡ処理を行う場合に、順方向のリングバッファ仕様の画像データを格納した前記リングバッファにおける先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第１の判別手段と、
前ライン処理終了後で次ライン処理に至るまでの間にＤＭＡアドレスの更新を行う場合に、前記リングバッファの先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第２の判別手段と、
前記第１及び第２の判別手段によってアドレス飛び越しが発生したと判別された場合、該アドレス飛び越しが前記リングバッファの終了アドレスから先頭アドレスへの跨ぎか、先頭アドレスから終了アドレスへの跨ぎかを判別する第３の判別手段と、
現在のＤＭＡアドレスに基づいて、前記リングバッファの終了アドレス及び先頭アドレスの設定値までの該リングバッファの残容量を検出する検出手段と
を備えることを特徴とするＤＭＡ制御装置。
【請求項２】
前記第２の判別手段によってアドレス飛び越しが発生したと判別された場合、前記検出手段によって検出された前記リングバッファの残容量を次ライン処理のためのアドレス更新量から減算した容量をアドレス飛び越し先からさらに減算する補正手段をさらに備えることを特徴とする請求項１に記載のＤＭＡ制御装置。
【請求項３】
前記リングバッファに格納された前記画像データに対する出力設定に基づいて、前記第１、第２及び第３の判別手段、前記検出手段、及び前記補正手段の動作を切り替える切替手段をさらに備えることを特徴とする請求項２に記載のＤＭＡ制御装置。
【請求項４】
前記画像データの記録紙に対する記録方向を指定する第１の指定手段と、
前記画像データの前記記録紙の記録処理が該記録紙の表面への記録処理であるか裏面への記録処理であるかを指定する第２の指定手段とをさらに備え、
前記切替手段は、前記第１及び第２の指定手段による指定に基づく前記出力設定に基づいて切替処理を行うことを特徴とする請求項３に記載のＤＭＡ制御装置。
【請求項５】
リングバッファに格納された画像データの周辺装置へのデータ転送をＤＭＡ方式で行うＤＭＡ制御方法であって、
１ライン内で継続してＤＭＡ処理を行う場合に、順方向のリングバッファ仕様の画像データを格納した前記リングバッファにおける先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第１の判別工程と、
前ライン処理終了後で次ライン処理に至るまでの間にＤＭＡアドレスの更新を行う場合に、前記リングバッファの先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第２の判別工程と、
前記第１及び第２の判別工程によってアドレス飛び越しが発生したと判別された場合、該アドレス飛び越しが前記リングバッファの終了アドレスから先頭アドレスへの跨ぎか、先頭アドレスから終了アドレスへの跨ぎかを判別する第３の判別工程と、
現在のＤＭＡアドレスに基づいて、前記リングバッファの終了アドレス及び先頭アドレスの設定値までの該リングバッファの残容量を検出する検出工程と
を有することを特徴とするＤＭＡ制御方法。
【請求項６】
リングバッファに格納された画像データの周辺装置へのデータ転送をＤＭＡ方式で行わせるコンピュータに、
１ライン内で継続してＤＭＡ処理を行う場合に、順方向のリングバッファ仕様の画像データを格納した前記リングバッファにおける先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第１の判別手順と、
前ライン処理終了後で次ライン処理に至るまでの間にＤＭＡアドレスの更新を行う場合に、前記リングバッファの先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第２の判別手順と、
前記第１及び第２の判別手順によってアドレス飛び越しが発生したと判別された場合、該アドレス飛び越しが前記リングバッファの終了アドレスから先頭アドレスへの跨ぎか、先頭アドレスから終了アドレスへの跨ぎかを判別する第３の判別手順と、
現在のＤＭＡアドレスに基づいて、前記リングバッファの終了アドレス及び先頭アドレスの設定値までの該リングバッファの残容量を検出する検出手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリと周辺装置との間のデータ転送をＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）方式で行うＤＭＡ制御装置及びその方法に関する。
【背景技術】
【０００２】
従来から、メモリと周辺装置との間のデータ転送を、ＣＰＵを介さずにＤＭＡ方式で行うことは、例えば印字制御装置においてよく行われている。また、使用するメモリ領域の削減、及びアドレスの非連続性から来る画像データの再格納をさせないためのバッファメモリとして、リングバッファ形式を用いることも一般的である。
【０００３】
さらに、近年の印字制御装置の低コスト化に伴い、レーザー光路上にあるミラーの個数を減らしてスキャン方向を通常の逆方向、すなわち、記録紙の右側から左側へスキャンする構成の印字制御装置も市場に提供され始めている。
【０００４】
図４は、従来のＤＭＡ制御装置を用いた印刷制御装置の構成を示すブロック図である。図４を用いて、従来のＤＭＡ制御装置において、右スキャン対応の印字制御装置を使用する場合について説明する。図４では、プリントエンジン部１０３に出力するビデオ信号のベースとなるビットマップデータは、描画制御部１１１にて定義されている方向（すなわち、左スキャン方向）に格納されている。
【０００５】
そのため、一構成例としては、外部の記憶装置（例えば、ＭＲＡＭ１１５及びＢＲＡＭ１１６）内のビットマップデータをライン単位に分割する。そして、そのＳｔａｒｔＰｏｉｎｔ（左側）とＥｎｄＰｏｉｎｔ（右側）を入れ替えたデータに書き替えて、圧縮／伸長制御部１１０及びビデオＩ／Ｆ制御部１１３に出力する。或いは、別の構成例としては、ラインバッファ部１１８のような回路ブロックを圧縮／伸長制御部１１０とビデオＩ／Ｆ制御部１１３の間に追加する。そして、圧縮／伸長制御部１１０の出力するビットマップデータを一旦ライン単位でラインバッファ部１１８に格納する。そして、ラインバッファのＳｔａｒｔＰｏｉｎｔとＥｎｄＰｏｉｎｔを入れ替えてビデオ制御部１１３に出力する。
【０００６】
次に、印字制御装置に対して両面印刷が指定された場合について説明する。裏面印刷時には、プリントエンジン部１０３に出力するビデオ信号のベースとなるビットマップデータは描画制御部１１１にて定義されている方向（すなわち、表面印刷に対して上→下の方向）にページ単位で格納されている。そこで、外部の記憶装置内のビットマップデータをライン単位に分割し、そのラインデータ毎、上下入れ替えたデータに書き替える。そして、圧縮／伸長制御部１１０及びビデオ制御部１１３、若しくはラインバッファ部１１８に出力する。
【特許文献１】特開平９−１９０３０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来例では、ラインバッファ部１１８を追加することで、その前後に位置する回路ブロックとのＩ／Ｆをとらなければならない。また、ＡＳＩＣ１０４の回路規模が増えるため、回路構成が複雑になるという欠点があった。
【０００８】
また、右スキャン対応の印字制御装置を使用する場合の、外部の記憶装置に対するビットマップデータの左右入れ替え処理の１ページ処理時間中に占める割合が大きかった。また、裏面印刷時の、ページ単位のビットマップデータの上下入れ替え処理の１ページ処理時間中に占める割合が大きかった。そのために、印字制御装置全体のパフォーマンス劣化につながるという欠点があった。
【０００９】
さらに、外部の記憶装置について前述のリングバッファ形式を用いた場合には、従来のＤＭＡ制御装置の構成では、ビットマップデータの入れ替え処理が更に複雑になるという欠点があった。
【００１０】
本発明は、このような事情を考慮してなされたものであり、以下に示すようなＤＭＡ制御装置及びその方法を提供することを目的とする。すなわち、順方向に格納されたリングバッファ仕様のビットマップデータに対して、パラメータ設定のみで左右スキャン及び表裏面印刷の何れの場合にも簡易に対応することができるようにする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明は、リングバッファに格納された画像データの周辺装置へのデータ転送をＤＭＡ方式で行うＤＭＡ制御装置であって、
１ライン内で継続してＤＭＡ処理を行う場合に、順方向のリングバッファ仕様の画像データを格納した前記リングバッファにおける先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第１の判別手段と、
前ライン処理終了後で次ライン処理に至るまでの間にＤＭＡアドレスの更新を行う場合に、前記リングバッファの先頭アドレス及び終了アドレスの跨ぎであるアドレス飛び越しが発生するか否かを判別する第２の判別手段と、
前記第１及び第２の判別手段によってアドレス飛び越しが発生したと判別された場合、該アドレス飛び越しが前記リングバッファの終了アドレスから先頭アドレスへの跨ぎか、先頭アドレスから終了アドレスへの跨ぎかを判別する第３の判別手段と、
現在のＤＭＡアドレスに基づいて、前記リングバッファの終了アドレス及び先頭アドレスの設定値までの該リングバッファの残容量を検出する検出手段と
を備えることを特徴とする。
【００１２】
また、本発明に係る上記ＤＭＡ制御装置は、前記第２の判別手段によってアドレス飛び越しが発生したと判別された場合、前記検出手段によって検出された前記リングバッファの残容量を次ライン処理のためのアドレス更新量から減算した容量をアドレス飛び越し先からさらに減算する補正手段をさらに備えることを特徴とする。
【００１３】
さらに、本発明に係る上記ＤＭＡ制御装置は、前記リングバッファに格納された前記画像データに対する出力設定に基づいて、前記第１、第２及び第３の判別手段、前記検出手段、及び前記補正手段の動作を切り替える切替手段をさらに備えることを特徴とする。
【００１４】
さらにまた、本発明に係る上記ＤＭＡ制御装置は、
前記画像データの記録紙に対する記録方向を指定する第１の指定手段と、
前記画像データの前記記録紙の記録処理が該記録紙の表面への記録処理であるか裏面への記録処理であるかを指定する第２の指定手段とをさらに備え、
前記切替手段は、前記第１及び第２の指定手段による指定に基づく前記出力設定に基づいて切替処理を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、順方向に格納されたリングバッファ仕様のビットマップデータに対して、パラメータ設定のみで左右スキャン及び表裏面印刷の何れの場合にも簡易に対応することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の一実施形態に係るＤＭＡ制御装置の構成及び動作について詳細に説明する。
【００１７】
図１は、本発明の一実施形態に係るＤＭＡ制御装置を用いた印字制御装置の構成を示すブロック図である。図１において、１０１は、外部装置１０２から供給される各種入力情報（ＰＤＬ・イメージ）を処理し、プリントエンジン部１０３にビデオ信号を出力するプリントコントロール部である。外部装置１０２は、ＩＥＥＥ１２８４、ＵＳＢ等所定の外部インターフェースを介してプリントコントロール部１０１と接続され、各種アプリケーションの記録情報を送出する。尚、外部インターフェースとしては、ＬＡＮ等のネットワークを介する処理であっても有効であることは言うまでもない。プリントエンジン部１０３は、プリントコントロール部１０１からの出力ビデオ信号をもとに、記録媒体となる記録紙に画像形成する。
【００１８】
次に、プリントコントロール部１０１内の構成について説明する。１０４は、外部装置１０２、プリントエンジン部１０３及び外部素子に対するアクセス制御全般を行い、且つ画像処理機能も含む高集積回路であるＡＳＩＣである。また、１０５は、ＣＰＵ１１４と各種デバイス間のアクセスを制御するＣＰＵ制御部である。さらに、１０６は、ＭＲＡＭ１１５へのアクセス全般を制御し、且つ各種デバイスからのＤＭＡアクセスの調停機能をもつＭＲＡＭ制御部である。さらにまた、１０７は、ＲＯＭ１１７へのアクセス全般を制御するＲＯＭ制御部である。さらにまた、１０８は、外部装置１０２との通信制御、及び入力情報から描画処理可能な形式に変換を行うホストＩ／Ｆ制御部である。
【００１９】
また、１０９は、ＢＲＡＭ１１６へのアクセス全般を制御し、且つ各種デバイスからのＤＭＡアクセスの調停機能をもつＢＲＡＭ制御部である。さらに、１１０は、圧縮／伸長制御部であり、ＭＲＡＭ１１５及びＢＲＡＭ１１６の容量増加を回避するために、印字出力情報をＪＢＩＧ等のアルゴリズムで圧縮して一旦格納する。そして、圧縮／伸長制御部は、それを伸長して後段のビデオＩ／Ｆ制御部１１３に送出する。
【００２０】
さらに、１１１は、ＭＲＡＭ１１５上に構成された描画コマンドリストから各種ビットマップデータを作成して、それを指定位置および指定論理でＢＲＡＭ１１６上に描画するための制御全般を行う描画制御部である。さらにまた、１１２は、ＶＨ回転器であり、描画制御部１１１の作成したＢＲＡＭ１１６上のバンドレベルのビットマップデータを基本となるブロック単位に分割する。そして、ＶＨ回転器１１２は、それを更に複数の回転単位に分割して、その回転単位毎に縦横変換をかけ、９０度、１８０度若しくは２７０度回転した新たなビットマップデータを生成する。
【００２１】
さらにまた、１１３は、本発明の一実施形態に係るＤＭＡ制御装置を含むビデオＩ／Ｆ制御部である。ビデオＩ／Ｆ制御部１１３は、プリントエンジン部１０３と通信制御を行い、同期信号をやり取りする。これにより、ビデオＩ／Ｆ制御部１１３は、外部の記憶装置上のビットマップデータから、若しくは圧縮／伸長制御部１１０の伸長データからシリアルなビデオ信号を出力する。尚、ビデオＩ／Ｆ制御部１１３の詳細な構成図は図２に示す。
【００２２】
さらにまた、１１４は、ＲＯＭ１１７上の制御プログラムに基づき、内部メインバスに接続される各種デバイスのアクセスを総括的に制御するＣＰＵである。さらにまた、１１５は、ＣＰＵ１１４の主メモリとして機能し、且つ描画処理に係るワーク領域や印字出力情報の展開領域に使用される読み書き可能な記憶装置であるＭＲＡＭである。さらにまた、１１６は、描画制御部１１１で解析／処理し、その結果作成されるバンドレベルのビットマップデータの展開領域として使用される読み書き可能な記憶装置であるＢＲＡＭである。さらにまた、１１７は、ＣＰＵ１１４の制御プログラムや、印字出力情報生成の際に使用されるフォントデータを格納する読み出し可能な記憶装置であるＲＯＭである。
【００２３】
図２は、本発明の一実施形態に係るＤＭＡ制御装置を含む特徴的なビデオＩ／Ｆ制御部１１３の細部構成を示すブロック図である。以下、図２を用いて、ビデオＩ／Ｆ制御部１１３の細部について説明する。２０１は、ＭＲＡＭ制御部１０６若しくはＢＲＡＭ制御部１０９とＤＭＡでデータの受け渡しを行い、ＳＨＩＰＰＩＮＧ制御部２０２と同期をとりながら内部のＦＩＦＯを経由してデータを送信するＳＨＩＰ＿ＤＭＡ制御部である。２０２は、プリントエンジン部１０３と通信制御を行い、同期信号をやり取りする一方、印字領域に関する各種パラメータをセットして記録紙上に印字するビデオ信号を生成するＳＨＩＰＰＩＮＧ制御部である。
【００２４】
また、図２において、２０３は、ＣＰＵ制御部１０６との間でビデオＩ／Ｆ制御部１１３用のＩＯレジスタを制御するＳＨＩＰレジスタ部である。さらに、２０４は、ＳＨＩＰ＿ＤＭＡ制御部２０１全体の動作の起動・クリアを管理するＤＭＡ起動／クリア部である。さらに、２０５は、ＭＲＡＭ制御部１０６若しくはＢＲＡＭ制御部１０９とＤＭＡリクエスト及びＤＭＡアクノリッジをやり取りしハンドシェークを行うＤＭＡリクエストハンドシェーク部である。ＤＭＡリクエストハンドシェーク部２０５は、さらに、ＦＩＦＯ部２０８の書き込みアドレス管理、ＤＭＡアドレス制御部２０７とＤＭＡアドレスパラメータのやり取りを行う。
【００２５】
さらに、２０６は、ＳＨＩＰ＿ＤＭＡ制御部２０１全体の動作シーケンスを管理し、ＳＨＩＰＰＩＮＧ制御部２０２とタイミングをとりながら各ブロックにイネーブル情報を出力するＤＭＡシーケンス部である。２０７は、ＤＭＡアドレス制御部であり、ＤＭＡ起動信号をトリガにして、ＤＭＡリクエストに相当するＤＭＡアドレスを生成する。且つ、ＤＭＡアドレス制御部２０７は、Ｖｉｄｅｏ生成部２１０にＬｉｎｅ先頭ロード信号及びＬｉｎｅ先頭カットデータ幅を出力する。さらに、ＤＭＡアドレス制御部２０７は、リングバッファのアドレス空間管理及び次ライン処理のためのアドレス更新量の管理を行う。
【００２６】
さらにまた、２０８は、ＭＲＡＭ制御部１０６若しくはＢＲＡＭ制御部１０９からＤＭＡデータを受け取り、ＤＭＡリクエストハンドシェーク部２０５が管理するアドレスパラメータに基づき書き込みを行うＦＩＦＯ部である。さらにまた、２０９は、記録紙上の縦横座標を管理し、ライン終了及びバンド終了信号をＳＨＩＰ＿ＤＭＡ制御部２０１内の各ブロックに出力するＰａｒａｍｅｔｅｒ制御部である。さらにまた、２１０は、Ｐａｒａｍｅｔｅｒ制御部２０９からの情報に基づき、ＦＩＦＯ部２０８のデータを取り込み、パラレルシリアル変換を行いＶｉｄｅｏ信号を生成するＶｉｄｅｏ生成部である。
【００２７】
図３は、ＤＭＡアドレス制御部２０７の細部構成を示すブロック図である。図３において、３０１はアドレスセレクト部である。アドレスセレクト部３０１によって選択されるＤＭＡアドレスには次のようなものがある。ＳＨＩＰレジスタ部２０３で設定されるバンドレベルでのＤＭＡスタートアドレス。Ｎｅｘｔアクセス制御部３０５が発生する、次アクセス用に更新したＤＭＡアドレス。オフセット制御部３０４が発生する、次ライン用にアドレス更新量（オフセット量）を更新したＤＭＡアドレス。そして、アドレスセレクト部３０１は、これらのＤＭＡアドレスの何れかを選択する。
【００２８】
また、３０２は、アドレスセレクト部３０１で選択されたＤＭＡアドレスをセットしてＤＭＡアクセス用のアドレスを生成するアドレスセット部である。さらに、３０３は、アドレスセット部３０２で生成されたＤＭＡアドレスからスタートアドレス情報を生成するスタートアドレス制御部である。スタートアドレス制御部３０２での当該処理は、ＤＭＡアドレス制御部２０７とＤＭＡリクエストハンドシェーク部２０５間で規定されたアドレスパラメータに合致させるために行われる。さらにまた、３０４は、リングバッファの先頭アドレス及び終了アドレスの跨ぎが発生するか否かを判別して、次ライン用にアドレス更新量（オフセット量）を更新したＤＭＡアドレスを発生するオフセット制御部である。この処理は、アドレスセット部３０２で生成されたＤＭＡアドレスから、前ライン処理終了後、次ライン処理に至るまでにＤＭＡアドレスの更新を行う場合に行われる。
【００２９】
さらに、３０５は、リングバッファの先頭アドレス及び終了アドレスの跨ぎが発生するか否かを判別して、次アクセス用に更新したＤＭＡアドレスを発生するＮｅｘｔアクセス制御部である。この処理は、アドレスセット部３０２で生成されたＤＭＡアドレスから、１ライン内で継続してＤＭＡ処理を行う場合に行われる。さらにまた、３０６は、ＳＨＩＰレジスタ部２０３からのバンドサイズ情報を基に、アドレスセット部３０２で生成されたＤＭＡアドレスからエンドアドレス情報を生成するエンドアドレス制御部である。この処理は、ＤＭＡアドレス制御部２０７とＤＭＡリクエストハンドシェーク部２０５間で規定されたアドレスパラメータに合致させるために行われる。
【００３０】
さらにまた、３０７は、アドレス生成部である。アドレス制御部３０７は、スタートアドレス制御部３０３及びエンドアドレス制御部３０６が生成するＤＭＡアクセス用のスタート／エンドアドレスから、ＤＭＡリクエストハンドシェーク部２０５にＤＭＡアドレスパラメータを送信する。そして、アドレス制御部３０７は、Ｖｉｄｅｏ生成部２１０にＬｉｎｅ先頭ロード信号及びＬｉｎｅ先頭カットデータ幅を出力する。
【００３１】
次に、上記構成に基づいて、本発明の一実施形態に係るＤＭＡ制御装置の動作例について図５及び図６Ａ、Ｂを用いて説明する。図５は、リングバッファ上の画像データとＤＭＡアドレス進行方向の相関を示す図である。また、図６Ａ、Ｂは、本発明の一実施形態に係るＤＭＡ制御装置の動作を説明するためのフローチャートである。
【００３２】
＜実施例１＞
まず、本実施形態に係るＤＭＡ制御装置を含む印字制御装置を動作させる。そのために、現在接続されているプリントエンジン部１０３固有の記録紙に対する画像データのスキャン方向、及び記録紙の表面／裏面のどちらに印字するかを指定する印刷面指定をＳＨＩＰレジスタ部２０３により設定する（Ｓ６０１）。また、外部の記憶装置であるＭＲＡＭ１１５若しくはＢＲＡＭ１１６がリングバッファ形式になっているので、そのスタートアドレス及びエンドアドレスをＳＨＩＰレジスタ部２０３により設定する（Ｓ６０２）。すなわち、印字出力情報の展開領域として、スタートアドレスとエンドアドレスの間のメモリ空間を循環する構成となる。
【００３３】
そして、ＳＨＩＰ＿ＤＭＡ制御部２０１のＤＭＡリクエストハンドシェーク部２０５に、記録紙に印字出力する１バンドあたりのデータ量すなわちＳＨＩＰ＿ＤＭＡの回数を設定する（Ｓ６０３）。次に、ＤＭＡアドレス制御部２０７にＳＨＩＰ＿ＤＭＡスタートアドレスを設定する。さらに、ＳＨＩＰＰＩＮＧに必要な各種パラメータをＰａｒａｍｅｔｅｒ制御部２０９に設定する（Ｓ６０４）。
【００３４】
本実施例では、前述したスキャン方向指定及び印刷面指定により、プリントエンジン部１０３のスキャン方向が左スキャンで且つ表面印刷の場合について説明する（図５における（１））。これは、図６ＡのＳ６０５でＹｅｓ、Ｓ６０８でＹｅｓの場合である。尚、これは、プリントエンジン部１０３のスキャン方向が右スキャンで且つ裏面印刷の場合と同様である（図５における（４））。これは、図６ＡのＳ６０５でＮｏ、Ｓ６０７でＮｏの場合である。
【００３５】
プリントエンジン部１０３が右スキャンの場合、ＳＨＩＰＰＩＮＧパラメータ中の横幅設定（印字領域の横幅に相当）とは別に、ＳＨＩＰ＿ＤＭＡのライン間オフセット数をオフセット制御部３０４に対して行う（Ｓ６０６）。具体的には、図５に示すように、ＳＨＩＰＰＩＮＧパラメータ中の横幅設定の２倍（印字領域の２ライン分）をセットする。
【００３６】
そして、毎ラインの先頭でＦＩＦＯ部２０８のどのアドレスに格納されているデータからパラレルシリアル変換を行うかを指定する、Ｌｉｎｅ先頭カットデータ幅及びＬｉｎｅ先頭ロード信号をＶｉｄｅｏ生成部２１０にセットする。
【００３７】
以上のように、各ブロックに必要なパラメータがセットされた上で印刷を開始すると、ＤＭＡ起動／クリア部２０４は、起動信号を各ブロックに出力しＳＨＩＰ＿ＤＭＡが開始される。一方、ＳＨＩＰＰＩＮＧ制御部２０２は、プリントエンジン部１０３と通信制御を行って同期信号をやり取りすることで、印字領域と出力用紙の整合をとる。
【００３８】
ＳＨＩＰ＿ＤＭＡが開始されると、ＭＲＡＭ制御部１０６若しくはＢＲＡＭ制御部１０９経由でＤＭＡデータを取り込みＦＩＦＯ部２０８に格納する。そして、Ｖｉｄｅｏ生成部２１０は、そのデータをＬｉｎｅ先頭カットデータ幅に相当するアドレスからＬｉｎｅ先頭ロード信号でロードして取り込み印字出力（ＳＨＩＰＰＩＮＧ）する（Ｓ６１０）。
【００３９】
上記ＳＨＩＰ＿ＤＭＡにあたり、上述した場合には、１ラインＳＨＩＰＰＩＮＧ中には、記録紙の左側から右側への遷移、すなわち描画制御部１１１で定義されている方向と同一方向に遷移する。これは、図６Ａにおいて、Ｓ６１１でＹｅｓかつＳ６１４でＹｅｓの場合、或いは、Ｓ６１１でＮｏかつＳ６１２でＮｏの場合である。そのため、Ｎｅｘｔアクセス制御部３０５で生成する次アクセス用のＤＭＡアドレスは、インクリメント動作をする（Ｓ６１５）。尚、上述した場合とは、プリントエンジン部１０３のスキャン方向が左スキャンで且つ表面印刷の場合（図５における（１））、及びプリントエンジン部１０３のスキャン方向が右スキャンで且つ裏面印刷の場合（図５における（４））である。
【００４０】
ここで、先に設定したリングバッファのエンドアドレスを次アクセス用のＤＭＡアドレスが跨いだ場合について説明する。これは、図６Ａにおいて、Ｓ６１８でＹｅｓでＳ６１７で処理した場合である。この場合は、Ｎｅｘｔアクセス制御部３０５内の第１のアドレス飛び越し判別手段により、直ちに次アクセス用のＤＭＡアドレスをリングバッファのスタートアドレスに更新するよう動作する。
【００４１】
そして、上記動作を１ライン分継続した時点で、１バンドのＳＨＩＰＰＩＮＧが終了していない場合に次ラインの処理に入る。その際、プリントエンジン部１０３が右スキャンの場合、すなわち図５の（４）の場合には、ライン間オフセット演算処理に入る（Ｓ６２６）。具体的には、オフセット制御部３０４にて、先述した印字領域の２ライン分に相当するオフセットデータを、アドレスセット部３０２が生成するＤＭＡアドレスに対して減算する。これは、図５の（４）の場合には、主走査方向にはインクリメントするが、副走査方向は、描画制御部１１１で定義されている方向とは逆であるためである。
【００４２】
ここで、図５の（４）の場合に、オフセット演算時にリングバッファのスタートアドレスを跨いだ場合について説明する（Ｓ６２４）。この場合、オフセット制御部３０４内の第２のアドレス飛び越し判別手段により、リングバッファの総数とアドレスセット部３０２が生成するＤＭＡアドレスのポインタから、リングバッファの容量がどのくらい残っているかを検出する。尚、リングバッファの総数とは、スタートアドレスからエンドアドレスまでである。
【００４３】
そして、第２のアドレス飛び越しが発生したと判断した場合には、オフセットデータから前述のリングバッファ残量数を減算する。そして、アドレス飛び越し先（本実施例では、リングバッファのエンドアドレス）から先述の結果をさらに減算して、次ライン用の新たなＤＭＡアドレスに更新するよう動作する。
【００４４】
上述した１ライン中処理及びライン間処理を、当該バンド中のライン数分だけ繰り返して、先にセットした、ＳＨＩＰＰＩＮＧする１バンドあたりのデータ量すなわちＳＨＩＰ＿ＤＭＡの回数分だけ処理する。これにより、当該バンドの処理が終了し、本ＤＭＡ制御装置は次バンドの処理に移る。もちろん、次バンド処理についても、前記同様の処理を行うこととなる。
【００４５】
以上説明したように、本実施例によれば、描画制御部１１１で一旦順方向（主走査方向：左→右、副走査方向：上→下）にリングバッファ仕様のビットマップデータが格納される。そして、当該データに対して、ＳＨＩＰレジスタ部２０３へのパラメータ設定のみで、ＤＭＡアドレス処理がインクリメント動作する。この場合において、１ライン中処理及び１ライン間処理の何れかでリングバッファの端部を跨いだ時にハードウェアで簡易に対応可能である。
【００４６】
＜実施例２＞
上記実施例１においては、図５における（１）、（４）の場合を説明した。次に、スキャン方向及び印刷面の残りの組み合わせについて説明する。すなわち、実施例２では、プリントエンジン部１０３のスキャン方向が左スキャンで且つ裏面印刷の場合（図５における（２））について説明する。尚、プリントエンジン部１０３のスキャン方向が右スキャンで且つ表面印刷の場合（図５における（３））についても同様である。以下に、実施例２における動作について説明する。
【００４７】
まず、本ＤＭＡ制御装置を含む印字制御装置を動作させる。このために、現在接続されているプリントエンジン部１０３固有となる記録紙に対する画像データのスキャン方向、及び記録紙の表面／裏面のどちらに印字するかを指定する印刷面指定をＳＨＩＰレジスタ部２０３により設定する。また、外部の記憶装置であるＭＲＡＭ１１５若しくはＢＲＡＭ１１６が、リングバッファ形式になっているので、そのスタートアドレス及びエンドアドレスをＳＨＩＰレジスタ部２０３により設定する。すなわち、印字出力情報の展開領域として、スタートアドレスとエンドアドレスの間のメモリ空間を循環する構成となる。
【００４８】
そして、ＳＨＩＰ＿ＤＭＡ制御部２０１のＤＭＡリクエストハンドシェーク部２０５に、記録紙に印字出力する１バンドあたりのデータ量、すなわちＳＨＩＰ＿ＤＭＡの回数を設定する。次に、ＤＭＡアドレス制御部２０７にＳＨＩＰ＿ＤＭＡスタートアドレスを設定する。さらに、ＳＨＩＰＰＩＮＧに必要な各種パラメータをＰａｒａｍｅｔｅｒ制御部２０９に設定する。
【００４９】
プリントエンジン部１０３が右スキャンの場合には、ＳＨＩＰＰＩＮＧパラメータ中の横幅設定（印字領域の横幅に相当）とは別に、ＳＨＩＰ＿ＤＭＡのライン間オフセット数をオフセット制御部３０４に対して行う。具体的には、図５に示したように、ＳＨＩＰＰＩＮＧパラメータ中の横幅設定の２倍（印字領域の２ライン分）をセットする。
【００５０】
そして、毎ラインの先頭でＦＩＦＯ部２０８のどのアドレスに格納されているデータからパラレルシリアル変換を行うかを指定する、Ｌｉｎｅ先頭カットデータ幅及びＬｉｎｅ先頭ロード信号をＶｉｄｅｏ生成部２１０にセットする。
【００５１】
以上までは、前述した実施例１と全く同様の動作である。本実施例では、その後に、ＳＨＩＰ＿ＤＭＡスタートアドレス及びリングバッファのスタートアドレス／エンドアドレスをビット反転してＤＭＡアドレス制御部２０７の各部にセットする。これにより、実施例１での回路構成を多少変更するだけで、本実施例の動作にも対応可能となる。
【００５２】
以上のように各ブロックに必要なパラメータがセットされた上で印刷を開始すると、ＤＭＡ起動／クリア部２０４は、起動信号を各ブロックに出力し、ＳＨＩＰ＿ＤＭＡが開始される。一方、ＳＨＩＰＰＩＮＧ制御部２０２は、プリントエンジン部１０３と通信制御を行い同期信号をやり取りすることで、印字領域と出力用紙の整合をとる。
【００５３】
ＳＨＩＰ＿ＤＭＡが開始されると、ＭＲＡＭ制御部１０６若しくはＢＲＡＭ制御部１０９経由でＤＭＡデータを取り込み、ＦＩＦＯ部２０８に格納する。Ｖｉｄｅｏ生成部２１０は、そのデータをＬｉｎｅ先頭カットデータ幅に相当するアドレスからＬｉｎｅ先頭ロード信号でロードして取り込み印字出力（ＳＨＩＰＰＩＮＧ）する。
【００５４】
上記ＳＨＩＰ＿ＤＭＡにあたり、プリントエンジン部１０３のスキャン方向が左スキャンで且つ裏面印刷の場合（図５における（２））について説明する。尚、この場合は、プリントエンジン部１０３のスキャン方向が右スキャンで且つ表面印刷の場合（図５における（３））の場合と同様である。すなわち、図５に示したように、１ラインＳＨＩＰＰＩＮＧ中には記録紙の右側から左側への遷移、すなわち描画制御部１１１にて定義されている方向と逆方向に遷移する。したがって、Ｎｅｘｔアクセス制御部３０５で生成する次アクセス用のＤＭＡアドレスは、デクリメント動作をする。
【００５５】
ただし、ＳＨＩＰ＿ＤＭＡスタートアドレスは、ビット反転してＤＭＡアドレス制御部２０７の各部にセットされているので、Ｎｅｘｔアクセス制御部３０５内のカウンタ動作は実施例１と共通である。
【００５６】
ここで、Ｎｅｘｔアクセス制御部３０５内の第１のアドレス飛び越し判別手段により、先に設定したリングバッファのスタートアドレスを次アクセス用のＤＭＡアドレスが跨いだ場合について説明する。この場合は、直ちに次アクセス用のＤＭＡアドレスをリングバッファのエンドアドレスに更新するよう動作する。ＳＨＩＰ＿ＤＭＡスタートアドレスは、ビット反転してＤＭＡアドレス制御部２０７の各部にセットされている。そのため、Ｎｅｘｔアクセス制御部３０５内でのアドレス比較のために、リングバッファのスタートアドレス／エンドアドレスもビット反転してセットしていることは言うまでもない。
【００５７】
そして、上記動作を１ライン分継続した時点で、１バンドのＳＨＩＰＰＩＮＧが終了していない場合に次ラインの処理に入る。その際、プリントエンジン部１０３が右スキャンの場合、すなわち図５の（３）の場合には、ライン間オフセット演算処理に入る。
【００５８】
具体的には、オフセット制御部３０４で、先述した印字領域の２ライン分に相当するオフセットデータを、アドレスセット部３０２が生成するＤＭＡアドレスに対して加算する。但し、アドレスセット部３０２が生成するＤＭＡアドレスもビット反転しているので、実際にはオフセットデータを減算することで実現でき、実施例１と同様の回路構成で構わない。図５に示したとおり、（２）の場合は主走査方向／副走査方向の両方向で完全にアドレスデクリメント動作をしているため、SHIP_DMAスタートアドレスをビット反転する事で対応可能である。しかし、（３）の場合には、主走査方向にはデクリメントして、副走査方向は描画制御部１１１にて定義されている方向と同じであるためである。
【００５９】
ここで（３）の場合に、オフセット演算時にリングバッファのエンドアドレスを跨いだ時について説明する。この場合、オフセット制御部３０４内の第２のアドレス飛び越し判別手段により、リングバッファの総数とアドレスセット部３０２が生成するＤＭＡアドレスのポインタから、リングバッファの容量がどのくらい残っているかを検出する。尚、リングバッファの総数とは、スタートアドレスからエンドアドレスまでをいう。そして、第２のアドレス飛び越しが発生したと判断した場合には、オフセットデータから前述のリングバッファ残量数を減算する。そして、アドレス飛び越し先（本実施例では、リングバッファのスタートアドレス）に先述の結果を加算して、次ライン用の新たなＤＭＡアドレスに更新するよう動作する。
【００６０】
但し、上述のリングバッファのスタートアドレスはビット反転しているので、実際には、オフセットデータから前述のリングバッファ残量数を減算した結果を、さらに減算する事で実現できる。すなわち、実施例１と同様の回路構成で構わない。
【００６１】
上記１ライン中処理及びライン間処理を、当該バンド中のライン数分だけ繰り返して、先にセットした、ＳＨＩＰＰＩＮＧする１バンドあたりのデータ量すなわちＳＨＩＰ＿ＤＭＡの回数分だけ処理する。これにより当該バンドの処理が終了し、本ＤＭＡ制御装置は、次バンドの処理に移る。もちろん、次バンド処理についても、前記同様の処理である。
【００６２】
以上説明したように、本実施例によれば、描画制御部１１１にて一旦順方向（主走査方向：左→右、副走査方向：上→下）に格納されたリングバッファ仕様のビットマップデータに対して以下の設定を行う。すなわち、ＳＨＩＰレジスタ部２０３へのパラメータ設定、及びＳＨＩＰ＿ＤＭＡスタートアドレス及びリングバッファのスタートアドレス／エンドアドレスをビット反転してＤＭＡアドレス制御部２０７の各部にセットする。これにより、ＤＭＡアドレス処理がデクリメント動作をした場合においても、実施例１と同様の回路構成で、１ライン中処理及び１ライン間処理の何れかでリングバッファの端部を跨いだ時にハードウェアにて簡易に対応可能である。
【００６３】
＜その他の実施形態＞
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体（記録媒体）等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００６４】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００６５】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００６７】
プログラムを供給するための記録媒体としては、例えば、以下のようなものがある。フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）。
【００６８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。すなわち、ホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６９】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００７０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他にも、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００７１】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後にも前述した実施形態の機能が実現される。すなわち、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係るＤＭＡ制御装置を用いた印字制御装置の構成を示すブロック図である。
【図２】本発明の一実施形態に係るＤＭＡ制御装置を含む特徴的なビデオＩ／Ｆ制御部１１３の細部構成を示すブロック図である。
【図３】ＤＭＡアドレス制御部２０７の細部構成を示すブロック図である。
【図４】従来のＤＭＡ制御装置を用いた印刷制御装置の構成を示すブロック図である。
【図５】リングバッファ上の画像データとＤＭＡアドレス進行方向の相関を示す図である。
【図６Ａ】、
【図６Ｂ】本発明の一実施形態に係るＤＭＡ制御装置の動作を説明するためのフローチャートである。
【符号の説明】
【００７３】
１０１  プリントコントロール部
１０２  外部装置
１０３  プリントエンジン部
１０４  ＡＳＩＣ
１０５  ＣＰＵ制御部
１０６  ＭＲＡＭ制御部
１０７  ＲＯＭ制御部
１０８  ホストＩ／Ｆ制御部
１０９  ＢＲＡＭ制御部
１１０  圧縮/伸張制御部
１１１  描画制御部
１１２  ＶＨ回転器
１１３  ビデオＩ／Ｆ制御部
１１４  ＣＰＵ
１１５  ＭＲＡＭ
１１６  ＢＲＡＭ
１１７  ＲＯＭ
２０１  ＳＨＩＰ＿ＤＭＡ制御部
２０２  ＳＨＩＰＰＩＮＧ制御部
２０３  ＳＨＩＰレジスタ部
２０４  ＤＭＡ起動／クリア部
２０５  ＤＭＡリクエストハンドシェータ部
２０６  ＤＭＡシーケンサ部
２０７  ＤＭＡアドレス制御部
２０８  ＦＩＦＯ部
２０９  Ｐａｒａｍｅｔｅｒ制御部
２１０  Ｖｉｄｅｏ生成部
【図１】
2007034488.tif 000003
【図２】
2007034488.tif 000004
【図３】
2007034488.tif 000005
【図４】
2007034488.tif 000006
【図５】
2007034488.tif 000007
【図６Ａ】
2007034488.tif 000008
【図６Ｂ】
2007034488.tif 000009