JP3655457B2 - プリンタ制御装置 - Google Patents
プリンタ制御装置 Download PDFInfo
- Publication number
- JP3655457B2 JP3655457B2 JP00917298A JP917298A JP3655457B2 JP 3655457 B2 JP3655457 B2 JP 3655457B2 JP 00917298 A JP00917298 A JP 00917298A JP 917298 A JP917298 A JP 917298A JP 3655457 B2 JP3655457 B2 JP 3655457B2
- Authority
- JP
- Japan
- Prior art keywords
- image data
- image
- band
- printer
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
Description
【発明の属する技術分野】
この発明は、ホストコンピュータ上にて作成される画像データを展開してレーザビームプリンタ等のプリンタエンジンへ送って印刷を実行させるプリンタ制御装置(一般に「プリンタコントローラ」と称する)に関する。
【0002】
【従来の技術】
プリンタコントローラにて画像を展開する際には、通常、印刷する領域をバンドに区切って行うようにしている。
従来のプリンタコントローラにおいて、印刷するページを副走査方向のバンドに区切って任意RAMアドレス上にイメージ展開し、パーシャルビットマップ方式で処理する技術として、例えば特開平5−96794号公報に見られるものがある。また、印刷する画像をバンドに分けて描画および展開を行ない、空白の領域に対しては空白データを生成して出力する方式のものが、例えば特開平8−258378号公報に見られる。そこで、これらの技術の説明を行う。
【0003】
ホストコンピュータにより使用者は印刷したい画像を作成し、印刷を行うプリンタを指定して、作成した画像の印刷命令を出す。印刷命令が出されると、ホストコンピュータでは、接続されたプリンタにあったプリンタドライバ・ソフトにより、プリンタコントローラ側にて解釈が可能な命令コードの体系に画像データを変換し、その変換した画像データを接続先のプリンタのインタフェースに出力する。
【0004】
プリンタコントローラでは、ホストインタフェースによって印刷する画像データの受信が開始されると、送られてきた画像データをプリンタコントローラ内部に持つCPUがRAM上にイメージ描画して展開する。
プリンタコントローラで画像データを描画して展開する方式としては、1ページの印刷イメージをそのまま記憶するフルビットマップ方式と、印刷イメージをバンドに区切って記憶するパーシャルビットマップ方式とがある。
【0005】
例えば、図8に示すような画像をRAMに記憶する際には、フルビットマップ方式の場合、図9に示すアドレスマップのように、描画開始アドレスから描画終了アドレスまで、1ページ分のイメージデータをそのまま記憶させる。ただし、実際のアドレスマップは1バイトずつのコードデータとなっており、画像の先頭番地からシリアルに画像データが並ぶ構成となっている。
【0006】
また、パーシャルビットマップ方式の場合には、印刷する画像を図10に示すように副走査方向に同じ幅のバンドに区切り(この例では8バンドに区切っているがバンド数はいくつでもよい)、そのバンド毎に図11に示すように、ワークRAM上のバンドが入りきる空いている領域をそのバンドに割り当てて画像の描画を行なう。
【0007】
このように、パーシャルビットマップ方式を用いることにより、ワークRAM上に必ずしも1ページ分の連続した空き領域を確保できなくても、イメージ展開が行えることになる。
次に、CPUにてRAMへのイメージ展開がされた後、プリンタエンジンに印刷起動命令を出して印刷を開始するとともに、イメージ展開した画像データをプリンタエンジンに出力して印刷を実行させる。
【0008】
ただし、通常、プリンタエンジンに画像データを出力する(ビデオ出力)場合には、膨大な量のデータを短期間で転送しなければならないため、ビデオDMAコントローラにてDMA処理を行なって高速化を図っている。また、パーシャルビットマップ方式の場合には、ビデオDMAコントローラに、印刷を行うバンドのDMAの開始アドレスと転送回数を指定して、設定した転送回数分のDMA動作を行う。
【0009】
さらに、ビデオDMAコントローラは、DMA転送が終了するとCPUにビデオDMA終了のインタラプトを発行して終了を知らせる。するとCPUは、次に続くバンドのDMAパラメータを再びビデオDMAコントローラに設定し、ビデオDMAコントローラが同様なビデオDMA動作を行うことを繰り返すことにより、プリンタエンジンへの画像データの出力を完了する。
【0010】
また、画像データのイメージ展開が終了した時点では、展開したイメージデータで印刷する画像が最後に出てくる部分を探し出す。図10に示した例では、バンド6の画像が最後のデータであると判別する。そして、それ以降の領域は全て空白(白)であるから、ビデオDMA動作は行わず、強制的に白データをプリンタエンジンに対して出力するか、または空白領域描画命令を出すことにより、CPUは次のページの画像データのイメージ展開をすることが可能になり、処理の効率化および高速化を図っている。
【0011】
なお、プリンタエンジンにおいて用紙ジャムなどのエラーが発生せずに印刷が完了した時点で、CPUはイメージ展開した画像のRAM領域を全て白データに書き換え、RAMクリアを行うことにより、次回以降の処理のための再利用ができる。
このような処理・操作を行うことにより、使用者が作成した画像データをバンドに区切って印刷することが可能になり、画像の後端部の空白部分のビデオDMAを行わずに印刷が可能になる。
【0012】
【発明が解決しようとする課題】
近年のレーザプリンタエンジンの発達に伴い、高速で高解像度の画像を扱うマシンが増え、さらにカラーのレーザプリンタも開発されている現状から、プリンタコントローラには大容量のRAMが必要となってきている。それに伴い、圧縮技術を用いてより少ないRAMでプリンタコントローラを構成する必要が出てきている。
【0013】
しかしながら、上述した従来のパーシャルビットマップ方式のプリンタコントローラでは、次ページの印刷画像のイメージ展開の効率化を行って、印刷時にプリントアンダーランを極力避けることを主眼としている。そのため、印刷する1ページの画像データの内の最後の画像データがどこにあるかを検出して、検出した場所以降の印刷部分のみを空白領域として、ビデオDMA動作を行わずに強制的に白データを出力することにより、RAMが接続されているバスのトラフィックを低下させて、次ページの画像データ受信およびイメージ展開の高速化を図っている。
【0014】
したがって、最後の画像データよりも前に空白のバンドが存在している場合は、その空白領域に対しても白画像を出力するためのビデオDMA動作を行わなくてはならず、無駄な処理時間を費やしてしまうという不具合があった。
また、最後の画像データ以前に空白のバンドが存在している場合であっても、その空白部分のイメージ画像を記憶させておくのに必要なRAMの記憶領域(メモリ容量)を確保しておかなくてはならなくなり、その分だけコストが高くなってしまうという不具合もあった。
【0015】
さらに、この空白部分を記憶させるRAM領域に対しても、次のページの印刷のためのメモリクリア処理を行わなくてはならず、メモリクリアの処理速度を落してしまうという不具合もあった。
【0016】
また、通常のプリンタコントローラでは、イメージ展開した画像データを圧縮して記憶させておき、ビデオDMA動作によってプリンタエンジンへ出力する際に、イメージデータの伸張処理をして出力するのが一般的であるが、空白領域のバンドであるにもかかわらず、RAMから圧縮処理がされた画像データを読み出し、伸張処理を施した後に出力しなくてはならないため、圧縮効率が悪いばかりか、RAMが接続されているバスのトラフィック量が増加してさらに処理速度を落してしまうという不具合もあった。
【0017】
さらに、ホストコンピュータからプリンタコントローラへの画像転送の際にイメージ転送して印刷する方式の場合においても、空白の画像データを転送しなくてはならず、画像転送量が増してしまい、処理速度を落してしまうだけでなく、ネットワーク環境に接続して動作させる場合などには、ネットワーク全体のトラフィック量を増加させてしまうという不具合もあった。
【0018】
この発明は、パーシャルビットマップ方式のプリンタ制御装置において、上述のような不具合を解消して、RAMの記憶領域の一層の効率的な利用を図り、必要なRAM容量を低減して低コスト化すると共に、画像データの展開および転送処理を高速化して印刷に要する時間を短縮することを目的とする。
【0019】
【課題を解決するための手段】
この発明は、ホストコンピュータ上にて作成され、1ページの画像データがプリンタエンジンでの副走査方向の複数のバンドに区切って送られて来る画像データを展開してプリンタエンジンに送り、印刷を実行させるプリンタ制御装置において、上記の目的を達成するため、次の各手段を設けたものである。
【0020】
すなわち、上記ホストコンピュータから前記画像データを受信すると同時にバンド単位で印刷する画像データが含まれているか否かの判別を開始する判別手段と、該判別手段が印刷する画像データが含まれていると判別したバンドの画像データをRAM上にイメージ展開する展開処理手段と、そのイメージ展開した画像データを上記プリンタエンジンに出力する際に、上記RAMに直接アクセスして高速に出力させるビデオDMAコントローラと、上記判別手段によって印刷する画像データが含まれていない(ホワイトバンド)と判別されたバンドについては、上記ビデオDMAコントローラにRAMの画像データ読み出させることなく、白データを発生して出力させる空白データ出力手段とを設けたものである。
【0021】
このように構成することにより、中間のホワイトバンドのイメージデータ出力時にも、バストラフィックを低減させて、処理を高速化することができる。
さらに、上記展開処理手段は、連続する複数ページの印刷を行う際には、上記判別手段により印刷する画像データが含まれていないと判断されたバンドに対してビデオDMAコントローラが白データを出力中であっても、次ページの印刷データのイメージ展開を行う手段を有するようにすれば、画像データのイメージ展開処理を高速化することが可能になる。
【0022】
【0023】
なお、画像データをRAMにイメージ展開する際に、印刷する画像データが存在するバンドのみにRAM領域を割り当てるようにすれば、冗長な白画像をRAMに記憶させる必要がなくなるので、RAMの記憶容量が少なくて済むためコストを低減させることが可能になる。
【0024】
上記各プリンタ制御装置において、展開処理手段が、画像データをイメージ展開するバンドの幅を任意に設定する手段を有するとよい。
それによって、白画像の幅にあったバンド幅を設定できるため、例えば、複数行に亘るテキストデータを印刷する場合などに、行間をホワイトバンドと指定することができ、RAMを効率よく利用することが可能になる。
【0025】
また、上記展開処理手段は、展開処理が必要なバンドにRAMの割り当てを行う際にのみ、該RAMの割り当てた領域に白データを書き込むRAMクリア処理を行なう手段を有するとよい。
すなわち、この発明によるプリンタ制御装置は、ホワイトバンドを印刷する際には自動的に白データを出力できるため、印刷終了後に通常行ってきたメモリクリア処理を行わず、イメージ展開の際に画像データが存在すると検知した時点でそのバンド領域のメモリクリア処理を行うことにより、不要な領域のメモリクリア処理を行う必要はなくなり、処理を高速化させることが可能になる。
【0026】
さらにまた、展開処理手段が、複数のバンドに区切ってRAM上にイメージ展開した画像データを圧縮してRAMに記憶させるようにし、その圧縮されたイメージ画像を伸張してビデオDMAコントローラに出力すると共に、そのビデオDMAコントローラが白データを発生して出力している際には、次のバンドの圧縮されたイメージ画像の伸張処理を予め行う伸張手段を設けるようにするとよい。
このようにすることにより、RAMの記憶領域を一層効率よく利用できる。
なお、この場合に、上記伸張手段によって伸張処理した画像データを一時的に記憶するメモリ(バンドバッファ)を設けるのが望ましい。
【0027】
さらに、上記伸張手段が伸張処理を予め行う場合には、ホストコンピュータからの画像データの受信、および上記展開処理手段による画像データのイメージ展開と圧縮処理を優先的に行わせる手段を設けるとよい。
それによって、次ページ以降の画像データのイメージ展開や、ホストコンピュータから次ページ以降の画像データの受信等が行われていないときのように、バスアービトレーションの優先順位を落して、バスが空いている期間中に圧縮されたイメージデータの伸張処理を行うことができ、処理の効率化と高速化が可能になる。
【0028】
また、ホストコンピュータ上にて作成され、プリンタドライバによってプリンタエンジンでの副走査方向の複数のバンドに分けてプリンタ制御装置で解釈できるコード系に変換されて送られ、画像データの無いバンドはブランクバンド(前記ホワイトバンドに相当する)であると指定されて送られる画像データを展開してプリンタエンジンに送り、印刷を実行させるプリンタ制御装置においても、次の各手段を設けることによって前述の目的を達成することができる。
【0029】
すなわち、上記コード系に変換されて送られた画像データを複数のバンドに区切ってRAM上にイメージ展開する展開処理手段と、そのイメージ展開した画像データをプリンタエンジンに出力する際にRAMに直接アクセスして高速に出力させるビデオDMAコントローラと、上記プリンタドライバによってブランクバンドであると指定されたバンドについては、上記ビデオDMAコントローラにRAMの画像データ読み出させることなく、白データを発生して出力させる空白データ出力手段とを設ける。
【0030】
これらのいずれのプリンタ制御装置においても、上記展開処理手段が、複数の色を重ね合わせて印刷するための画像データを展開処理する手段である場合には、その印刷する各色毎に画像データをイメージ展開するバンドを個別に管理する手段を有するのが望ましい。
それによって、ホワイトバンド(ブランクバンド)の発生頻度を上げることができるので、RAMのメモリ容量を抑えて安価なカラープリンタ制御装置を提供することが可能になる。
【0031】
【発明の実施の形態】
以下、この発明の実施の形態を図面に基づいて具体的に説明する。
まず、この発明の第1の実施形態について説明する。図3はこの発明の第1の実施形態のプリンタ制御装置であるプリンタコントローラを用いたプリンタシステムのブロック構成図である。
【0032】
このプリンタシステムは、ホストコンピュータ1とプリンタコントローラ2とプリンタエンジン3とによって構成されており、プリンタコントローラ2とプリンタエンジン3とが一体となってプリンタを構成しているものも含む。
【0033】
プリンタコントローラ2は、ホスト・インタフェース(以下「ホストI/F」と略称する)12,中央処理装置であるCPU13,プログラムメモリであるROM10,およびデータメモリであるRAM4とがシステムバス5によって相互に接続され、マイクロコンピュータを構成している。
【0034】
さらに、そのシステムバスに接続されたビデオDMAコントローラ(以下「VDMAC」と略称する)6と、伸張器9,セレクタ7,およびエンジン・インタフェース(「エンジンI/F」と略称する)8とを備えている。
そして、ホストI/F12にホストコンピュータ1が接続され、エンジンI/F8にプリンタエンジン3が接続される。
【0035】
このプリンタシステムにおいて、使用者は、ホストコンピュータ1上でアプリケーションソフトウェアを利用して、印刷を行いたい画像データを作成する。
この時、使用者によって作成される画像データは、複数ページに渡っているものやカラーデータとして作成されるもの等、各種の画像データが存在する。
そして、画像データの作成が完了した時点で、使用者はホストコンピュータ1に接続されて印刷が可能なプリンタのうち、印刷を行いたいプリンタを選択して、印刷命令を発行する。
【0036】
その際の使用者からの印刷命令には、印刷部数の指定、カラーかモノクロかの指定、拡大あるいは縮小率の指定、用紙サイズの指定、1枚の用紙に複数のページをまとめて印刷する集約印刷を行なうか否かの指定など、各種の印刷モードが指定される。
【0037】
使用者により印刷命令が発行されると、使用者から指定された各種モードを満足するように、ホストコンピュータ1の内部に記憶されているプリンタドライバと呼ばれるソフトウェアによって、接続されているプリンタコントローラ2が解読できるコードに変換して、その変換した画像データのコードをプリンタコントローラ2に出力する。
【0038】
プリンタコントローラ2では、ネットワークや各種インタフェースで構成されるホストI/F12によって、ホストコンピュータ1からの画像データの受信が始まると、CPU13に対してインタラプトを発生させて印刷命令が発行されたことを知らせ、受信した画像データをRAM4にバッファリングして一時的に記憶させる。
【0039】
CPU13は、受信してバッファリングした画像データをプリンタエンジン3によって印刷が可能なデータにするために、RAM4にイメージ展開して、コード情報として受信された画像をビットマップ情報に変換して記憶させていく。
その際、CPU13は、RAM4の画像データをイメージ展開する部分は仮想的に副走査方向のバンドに区切ってイメージ展開させるとともに、それぞれ各バンドに印刷すべき画像データが存在するかどうかを参照するための図2に示すようなテーブルをRAM4内のイメージ展開をする場所とは違う領域に作成する。
【0040】
また、バンドに区切る際には予め1ページ分のフレームメモリを確保する必要はなく、イメージ展開する必要のあるバンドのみRAM4に順次割り当てて展開する構成にすることにより、メモリ領域を効率的に利用することができる。さらに、バンドを割り当てるときにのみメモリクリアを行なうことにより、多重のメモリクリア処理を行なわなくて良くなり、一層効率的な処理が可能になる。
【0041】
カラープリンタコントローラの場合には、通常CMYKの4色のイメージ展開をするため、例えばイメージ展開する色が赤の場合には、M(マゼンタ)とY(イエロー)のみを展開すれば良いため、各色毎にバンドに区切って処理を施すことにより、冗長なRAM領域を確保する必要がなくなる。
【0042】
このRAM4へのイメージ展開と同時に、必要に応じてRAM4に記憶されたイメージデータを圧縮(高能率符号化)して再びRAM4に格納し直すことができる。画像データの圧縮技術については公知技術を利用すればよいので、その説明は省略する。
【0043】
ただし、プリンタコントローラ2は必ずしも圧縮が行えなくてもよい。また、圧縮が可能な環境であっても、RAM4の容量が多くて充分記憶できる場合などは、圧縮を行わずにイメージデータのまま記憶させておく場合もあり、その方が圧縮・伸張処理を行わない分だけ処理速度が速くなる。
また、圧縮を行う場合には、専用の圧縮器を用いて行う場合とCPU13によって行う場合とがある。
【0044】
CPU13によって受信された画像データのうち、1ページ分のイメージ展開(圧縮)が全て完了すると、CPU13はVDMAC6にビデオDMAを行わせるために、各種パラメータをセットしてビデオDMAの開始を司令する。
なお、設定するパラメータとしては、印刷を行うバンドについて図2に示したテーブルを参照した結果が、ホワイトバンド(データなし)か画像データが存在している(データあり)かの指定や、画像データが存在している時には、DMA動作を行うRAM4上の開始アドレスやDMA転送する際の転送回数の指定、ビデオDMAを行なうイメージデータが圧縮されているか否かの指定などを設定する。
【0045】
このように、転送回数を任意に変更可能な構成にすることにより、任意のバンド幅を指定できるようになり、ホワイトバンド(データなし)をできるだけ多く作成することが可能になり、メモリをより効率的に利用できるだけではなく、より高速に処理が可能になる。
【0046】
VDMAC6では、各パラメータが指定されてDMAの起動がかかると、RAM4の指定されたアドレスを読み出し、圧縮されていない展開された画像データ(イメージデータ)の場合にはセレクタ7をVDMAC6からの入力を有効なように切り替えて、エンジンI/F8を通してプリンタエンジン3にそのイメージデータを出力する。
【0047】
また、RAM4の指定されたイメージデータが圧縮されている場合には、伸張器9にそのイメージデータを送って、伸張器9によって伸張されたイメージデータをエンジンI/F8に出力するようにセレクタ7を切り替えて、そのイメージデータをエンジンI/F8からプリンタエンジン3に出力する。
【0048】
伸張器9では、VDMAC6からイメージデータが送られてきた場合には、圧縮した方式の逆の方式を使用して伸張して出力することとなる。一般的に、プリンタエンジン3で出力する画像データはイメージデータとして扱い、短時間に大容量のデータを転送しなければならず、伸張処理をCPU3にて行なっているとプリントオーバーランが発生してしまうため、ビデオDMAを行う際には、専用の伸張器を用いることになる。
【0049】
また、CPU13によって指定されたモードが、ホワイトバンドの場合には、VDMAC6が白画像を強制的に生成してセレクタ7に出力する。この場合にはRAM4からイメージデータを読み出すことはせずに、設定された転送回数分の白データを出力することになる。
一般的に「白」は、カラーのCMYK又はモノクロで印刷する場合には、画像データはなしということで“0”が出力される。ただし、インタフェース上の取り決めで“1”を出力する場合もある。
【0050】
また、伸張後のデータやVDMAC6からの出力データを一旦バッファリングして記憶可能な構成にしておくことにより、ホワイトバンド出力の際にはホストI/F12からの画像データ入力等が行なわれていない間のバスが空いている時間に伸張処理を行うことができる。そのために、FIFOメモリ等のバッフア用のメモリを設けておくとよい。
【0051】
エンジンI/F8では、プリンタエンジン3にて印刷が可能な解像度および速度に合わせて画像データを出力する。また、プリンタエンジン3では送られてきたビットマップデータの印刷を実行して印刷を完了する。
【0052】
以上の操作を1ページ分のうちの全てのバンドについて行うことにより、1ページ分の画像の印刷が完了する。ただし、印刷が複数ページに亘る場合には、前のページのイメージ展開が終了して、ビデオDMA動作にて印刷処理を行うと同時に、バスが空いている時間を利用して次のページのイメージ展開を行う並列処理をする。このようにして、全てのページの印刷が終了した時点で処理を完了する。
【0053】
また、プリンタコントローラ2にて解読できるエミュレーションが、例えばGDIプリンタ方式のようにプリンタドライバソフトから直接バンドに区切って転送されてくるような場合には、プリンタドライバにて転送する時点で、ブランクバンド(前述のホワイトバンドに相当する)を指定する。
【0054】
なお、ROM10には、CPU13を動作させるためのプログラムコードや、テキスト画像のイメージ展開に使用するフォント情報等が記憶されている。
またこの発明における展開処理手段(RAMの割り当て手段,バンド幅設定手段,RAMクリア処理手段,圧縮手段等を含む)、判別手段、および空白データ出力手段などの機能は、CPU13がROM10に書き込まれたプログラムに従って動作することによって実現される。
【0055】
次に、この発明の第2の実施形態について説明する。図3は、この発明の第2の実施形態のプリンタ制御装置であるプリンタコントローラを用いたカラープリンタシステムのブロック構成図である。
この第2の実施形態のプリンタコントローラ2′はカラープリンタコントローラであり、ホストコンピュータ1およびプリンタエンジン3とによってカラープリンタシステムを構成している。
【0056】
このプリンタコントローラ2′において、図1に示したプリンタコントローラ2と相違する主な点は、セレクタ7に代えてバンドバッファ11を設けた点である。このバンドバッファ11は、伸張器9によって予め伸張したイメージデータおよびVDMAC6によってRAM4から読み出したイメージデータを一時的に記憶するバッファ用のメモリである。
【0057】
使用者によってホストコンピュータ1上で作成された画像データは、ホストコンピュータ1からプリンタコントローラ2′の内部のホストI/F12に送られる。その際、ホストコンピュータ1の内部ではプリンタドライバによって、画像データを接続されるプリンタコントローラが解釈可能な言語形式に変換して出力する。また、画像データの出力時には、図10に示したように、1ページの画像データをプリンタエンジン3の副走査方向に複数のバンドに分けて出力する。
【0058】
その際には、図10のバンド2のようにバンド領域に全く画像データの無いバンドは、ブランクバンドとしてプリンタコントローラに指定する。また、バンド3と4のように、1つの文字が複数のバンドにまたがっている場合には、Cという文字を2つに分解してイメージ展開する。画像データがカラーの場合には、ホストコンピュータ1で扱われる画像は通常RBGで表現されているが、印刷を行う場合にはCMYKで表されるため、CMYKの各色成分に分割してさらにバンドに分けて処理を行う。
【0059】
ただし、RBG→CMYKの変換は、必ずしもプリンタドライバで行わなくてはならないわけではなく、RBGデータで転送して、プリンタコントローラ2′においてCMYKデータに変換しても構わない。
【0060】
次に、図6のフロー図を参照して、このプリンタコントローラ2′側でのイメージ展開に関わる処理の説明を行う。
ステップS1で、ホストI/F12で受信した画像データを一旦RAM4に記憶させる。受信と同時にCPU13にインタラプトを発生させて、受信を知らせるとともに、CPU13ではイメージの展開を開始する。イメージ展開の際には、プリンタドライバから予めバンド単位にソートされて画像データが入力されてきているため、バンド0からイメージ展開していく。
【0061】
その入力される画像データが図10に示したようにバンド分けされているとすると、ステップS2のチェックにおいて、バンド0でのプリンタドライバからの画像データには印刷する画像データが含まれているため、ステップS3で1バンド分が入りきる容量のあるRAM空間を割り当てて、ステップS4で割り当てた空間のRAMクリア(0を書き込む)を行う。
この際、RAM空間は1バンド分が連続している領域であれば、どのアドレスを割り当ててもよい。
【0062】
次に、ステップS5で「バンド0の領域にはデータがありバンドを割り当てた」ことを記憶しておくために、図4に示すようなバンドテーブルを発行し、バンド番号毎に、データの有無、およびデータがある場合の開始アドレスと終了アドレスを記憶させておく。そして、ステップS6で受け取った画像データをイメージ展開し、ステップS7で圧縮してRAM領域に書き込む。
【0063】
バンド0の画像データを全て展開し終わると、次のバンド1も画像データが存在しているため、同様にしてRAM空間を割り当て、そのRAM空間をクリアしてイメージ展開し、バンドテーブルに登録する。
次に、バンド2の領域では印刷する画像データは存在していないため、RAM空間の割り当ては行わず、ステップS10でバンドテーブルにのみブランクバンド(データなし)として登録する。
【0064】
ステップS8において最後のバンドとなるまで、すなわち最後のバンドの画像データを展開し終わるまでこのような操作を繰り返して行い、1ページ分の全てのバンドについてイメージ展開を行う。
そして、全てのページに対して展開が終ったら、ステップS9の判断で「次ページはなし」になるので処理を終える。
【0065】
また、図5に示すように、一般的なテキスト文書は複数行にわたって記述されており、一定のピッチで行間が空けられている。従って、行間にあたる空白部分が1バンドとなるようにバンド幅を設定することにより、空白部分をイメージデータとしてRAMに記憶する必要はなくなる。
【0066】
さらに、カラーでの印刷の際には、CMYKのそれぞれの色についてバンド幅を別々に管理する。これは、例えば、赤を印刷する場合には、MとYのインクだけ足し合わせて行えばよいため、画像データのイメージ展開もまた、MとYのみを行って記憶しておけばよく、CとKの成分は空白となるので、場合によっては、ブランクバンド領域を増やすことが可能になるためである。また、イメージ展開する際には、RAM容量と展開時間を考慮して、必要であれば圧縮させて記憶させておく。
【0067】
次に、印刷時の処理を図7のフロー図を参照して説明する。
1ページのイメージ展開が終了した時点で、図7の処理を開始し、まずステップS11でプリンタエンジン3のステータスをチェックして、プリンタエンジン3が印刷ジャムなどがなく印刷可能な状態(レディ)ならば、プリンタエンジン3に印刷起動命令を出して印刷を開始させる。
【0068】
それと同時に、CPU13はステップ12以降の処理を行う。すなわち、ステップS12でVDMAC6にビデオパラメータをセットする。これは、図4に示したバンドテーブルにしたがって、バンド0から印刷するバンドがブランクであるか否かの指定、RAM4の開始アドレスの指定、転送回数の指定、イメージデータが圧縮されているか否かの指定をVDMAC6に設定することである。
【0069】
ステップS12でビデオパラメータをセットすると、次にステップS13でVDMAC6を起動させてDMA動作を開始させる。
VDMAC6は、指定されたバンドがブランクバンドであるか否かを見て、ブランクバンドでない場合にはRAM4上の開始アドレスから順次データを読み出し、読み出したイメージデータが圧縮されている場合には、読み出してきたイメージデータを伸張器9に出力する。
【0070】
伸張器9では圧縮したデータの伸張作業を行い、バンドバッファ11に一時的に記憶させておく。また、読み出したイメージデータが圧縮されていない場合には、VDMAC6が読み出したイメージデータをそのままバンドバッファ11に書き込む。また更に、VDMAC6に設定されたパラメータがブランクバンドの場合には、RAM4からイメージデータを読み込むことはせずに、VDMAC6にて強制的に“0”をバンドバッファ11に書き込む。
【0071】
エンジンI/F8では、プリンタエンジン3の印刷スピードに合わせて、バンドバッファ11から印刷データを読み出してプリンタエンジン3へ出力を行い、印刷を実行させる。1つのバンドのDMA転送が完了した時点で、VDMAC6はCPU13にインタラプトを発生してDMAの転送終了を伝える。
【0072】
CPU13は、ステップS14にてインタラプトの発生を検知すると、ステップS15で最後のバンドでなければステップS11へ戻り、ステップS12で次のバンドのパラメータをVDMAC6に再設定し、ステップS13でVDMAC6を起動する。
それ以降同様の処理を行って、最終のバンドの処理を終え、ステップS15でYESになるまで印刷を行う。
【0073】
また、VDMAC6にてホワイトバンドを出力している際には、システムバス5を利用しているものは、ホストI/F12にて画像データの受信を行ってRAM4にバッファリングしている場合と、CPU13によって後に印刷するバンドのイメージ展開を行っている場合である。
【0074】
このとき、ビデオDMA動作でのバスの利用はされていないため、比較的トラフィックは多くない。そのため、印刷しているバンドよりも次のバンド以降の伸張処理を、ホストI/F12からの受信とイメージ展開の空いた時間を利用して、RAM4からイメージデータを読み出し、伸張器9に出力することにより予め行ってしまうことができる。これにより、プリントオーバランの発生を防止しやすくなる。
【0075】
以上の操作を行うことにより、ブランクバンドでのイメージ転送を行なわずに印刷が可能になる。また、一連のジョブを完了する際には、メモリクリアは行わずに終了して構わない。
この図6及び図7のフロー図によって説明した処理は、図1に示したプリンタコントローラ2による処理の場合にも、ほとんど同様にあてはまる。
【0076】
【発明の効果】
以上説明してきたように、この発明によるプリンタ制御装置(プリンタコントローラ)を使用することにより、画像データをRAM上にイメージ展開する際に副走査方向のバンドに区切って処理し、そのイメージ展開した画像データをビデオDMA動作によってRAMから読み出してプリンタエンジンへ送出する際に、印刷する画像が存在しないホワイトバンドである場合には、ビデオDMA動作を行わずに自動的に白データを生成してプリンタエンジンに出力するため、1ページの中間のホワイトバンド出力時にも、バスのトラフィックを低減させて処理を高速化することが可能になる。
【0077】
また、請求項2以降の各発明によれば、上記に加えて次のような効果が得られる。
請求項2の発明によれば、ホワイトバンドに対する白データの出力時には、バスのトラフィックが低減するため、複数ページの印刷を行う際にRAM容量に余裕がある場合には、次ページ以降の画像データを展開することにより、展開処理を速めることができる。
【0078】
また、画像データを複数のバンドに区切って展開処理をする際に、RAM上に1ページ分の各バンドの領域を設けることなく、イメージ展開する際に、展開が必要なバンドすなわち印刷する画像データが存在するバンドのみにRAM領域を割り当てることにより、冗長な白画像をRAMに記憶させる必要がなくなり、RAMの容量を節約してコストを低減させることが可能になる。
【0079】
請求項3の発明によれば、画像データをイメージ展開するバンド幅を可変にすることにより、印刷する画像中の白画像の幅にあったバンド幅を設定できるため、例えば複数行に亘るテキストデータを印刷する場合などに、行間の幅に合わせてホワイトバンドの幅を設定することができ、それによってRAMを一層効率よく利用することが可能になる。
【0080】
なお、ホワイトバンドを印刷する際には自動的に白画像を出力できるため、印刷終了後に通常行ってきたメモリクリア処理を行わず、イメージ展開の際に画像データが存在すると検知した時点で、そのバンド領域のメモリクリア処理を行うことにより、不要な領域のメモリクリア処理を行う必要がなくなり、処理を高速化させることが可能になる。
【0081】
請求項4の発明によれば、複数のバンドに区切ってイメージ展開したデータを圧縮してRAMに記憶させることにより、RAMの利用効率をさらに高めることができる。そして、ホワイトバンドを印刷している期間には、バスのトラフィックが低減されるため、次ページ以降のイメージ展開やホストコンピュータから次ページ以降の画像データの受信などと同時に、並行して次に印刷処理を行うバンドの圧縮されたイメージデータの伸張処理も行うことにより、伸張処理の効率化を図ることが可能になる。
【0082】
請求項5の発明によれば、上記伸張処理によって予め伸張した画像データをメモリに一時的に記憶させておき、印刷時にはそのメモリから伸張した画像データ(イメージデータ)を出力することができ、プリンタエンジンへの画像データの出力処理の効率化を図ることが可能になる。
【0083】
請求項6の発明によれば、圧縮されたイメージデータの伸張処理を行なう場合に、次ページ以降の画像データのイメージ展開や、ホストコンピュータから次ページ以降の画像データの受信等が行なわれていないときのように、バスアービトレレーションの優先順位を落して、バスが空いている期間中に行なうことにより、処理の効率化が可能になる。
【0084】
請求項7の発明によれば、例えばイメージプリンタやGDIプリンタのように、ホストコンピュータ側でイメージ展開や各種画像処理を行う場合には、プリンタドライバから画像データをプリンタコントローラに出力する際に、バンドに区切って処理を行ない、ブランクバンド(ホワイトバンド)が存在する場合にはブランクバンドであるという情報のみを出力するようにした場合にも、上述の各プリンタ制御装置と同様に、RAM容量の低減と画像データ処理の高速化を可能にする。
【0085】
そして、請求項8の発明によれば、カラープリントを行なうためのプリンタ制御装置の場合に、印刷する各色毎に画像データをイメージ展開するバンドを個別に管理することによって、ホワイトバンド(ブランクバンド)の発生頻度を上げることができ、プリンタ制御装置におけるRAMの容量を節減して、カラープリンタの低コスト化を可能にする。
【図面の簡単な説明】
【図1】 この発明の第1の実施形態のプリンタ制御装置であるプリンタコントローラを用いたプリンタシステムのブロック構成図である。
【図2】 図1に示すプリンタコントローラのRAM上に作成する各バンドのデータの有無を記録するバンドテーブルの一例を示す図である。
【図3】 この発明の第2の実施形態のプリンタ制御装置であるプリンタコントローラを用いたカラープリンタシステムのブロック構成図である。
【図4】 図3に示したプリンタコントローラで作成するバンドテーブルの一例を示す図である。
【図5】 テキスト文書とその行間の一例を示す説明図である。
【図6】 図3に示したプリンタコントローラ側でのイメージ展開に関わる処理のフロー図である。
【図7】 同じくその印刷時の処理のフロー図である。
【図8】 1ページの画像の例をその主走査方向および副走査方向と共に示す説明図であ
る。
【図9】 図8に示した画像のイメージデータをフルビットマップ方式でRAMに記憶する場合のアドレスマップの説明図である。
【図10】 図8に示した画像のイメージデータをパーシャルビットマッブ方式でRAMに記憶する場合のバンド構成例を示す説明図である。
【図11】 図10に示した複数のバンドのワークRAM上でのアドレスマップの一例を示す説明図である。
【符号の説明】
1:ホストコンピュータ 2,2′:プリンタコントローラ 3:プリンタエンジン 4:RAM 6:ビデオDMAコントローラ(VDMAC)
7:セレクタ 8:エンジンインタフェース 9:伸張器 10:ROM
11:バンドバッファ 12:ホストインタフェース 13:CPU
Claims (8)
- ホストコンピュータ上にて作成され、1ページの画像データがプリンタエンジンでの副走査方向の複数のバンドに区切って送られて来る画像データを展開してプリンタエンジンに送り、印刷を実行させるプリンタ制御装置において、
前記ホストコンピュータから前記画像データを受信すると同時に前記バンド単位で印刷する画像データが含まれているか否かの判別を開始する判別手段と、
該判別手段が印刷する画像データが含まれていると判別したバンドの画像データをRAM上にイメージ展開する展開処理手段と、
そのイメージ展開した画像データを前記プリンタエンジンに出力する際に、前記RAMに直接アクセスして高速に出力させるビデオDMAコントローラと、
前記判別手段によって印刷する画像データが含まれていないと判別されたバンドについては、前記ビデオDMAコントローラに前記RAMの画像データを読み出させることなく、白データを発生して出力させる空白データ出力手段と
を有することを特徴とするプリンタ制御装置。 - 請求項1記載のプリンタ制御装置において、
前記展開処理手段は、連続する複数ページの印刷を行う際には、前記判別手段により印刷する画像データが含まれていないと判断されたバンドに対して前記ビデオDMAコントローラが白データを出力中であっても、次ページの印刷データのイメージ展開を行う手段を有することを特徴とするプリンタ制御装置。 - 請求項1又は2に記載のプリンタ制御装置において、
前記展開処理手段が、画像データをイメージ展開するバンドの幅を任意に設定する手段を有することを特徴とするプリンタ制御装置。 - 請求項1記載のプリンタ制御装置において、
前記展開手段は前記イメージ展開したデータを圧縮して前記RAMに記憶させ、
該展開処理手段によって圧縮されたイメージ画像を伸張して前記ビデオDMAコントローラに出力すると共に、前記ビデオDMAコントローラが白データを発生して出力している際には、次のバンドの圧縮されたイメージ画像の伸張処理を予め行う伸張手段を設けた
ことを特徴とするプリンタ制御装置。 - 請求項4記載のプリンタ制御装置において、
前記伸張手段によって伸張処理した画像データを一時的に記憶するメモリを設けたことを特徴とするプリンタ制御装置。 - 請求項4記載のプリンタ制御装置において、
前記伸張手段が伸張処理を予め行う場合には、ホストコンピュータからの画像データの受信、および前記展開処理手段による画像データのイメージ展開と圧縮処理を優先的に行わせる手段を設けたことを特徴とするプリンタ制御装置。 - ホストコンピュータ上にて作成され、プリンタドライバによってプリンタエンジンでの副走査方向の複数のバンドに分けてプリンタ制御装置で解釈できるコード系に変換され、画像データの無いバンドはブランクバンドであると指定されて送られる画像データを展開してプリンタエンジンに送り、印刷を実行させるプリンタ制御装置において、
前記コード系に変換されて送られた画像データを前記複数のバンドに区切ってRAM上にイメージ展開する展開処理手段と、
そのイメージ展開した画像データを前記プリンタエンジンに出力する際に前記RAMに直接アクセスして高速に出力させるビデオDMAコントローラと、
前記プリンタドライバによってブランクバンドであると指定されたバンドについては、前記ビデオDMAコントローラに前記RAMの画像データを読み出させることなく、白データを発生して出力させる空白データ出力手段と
を有することを特徴とするプリンタ制御装置。 - 請求項1乃至7のいずれか一項に記載のプリンタ制御装置において、
前記展開処理手段が、複数の色を重ね合わせて印刷するための画像データを展開処理する手段であり、その印刷する各色毎に画像データをイメージ展開するバンドを個別に管理する手段を有することを特徴とするプリンタ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00917298A JP3655457B2 (ja) | 1998-01-20 | 1998-01-20 | プリンタ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00917298A JP3655457B2 (ja) | 1998-01-20 | 1998-01-20 | プリンタ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11203070A JPH11203070A (ja) | 1999-07-30 |
JP3655457B2 true JP3655457B2 (ja) | 2005-06-02 |
Family
ID=11713175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00917298A Expired - Lifetime JP3655457B2 (ja) | 1998-01-20 | 1998-01-20 | プリンタ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3655457B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4449530B2 (ja) | 2004-03-29 | 2010-04-14 | セイコーエプソン株式会社 | ドライバプログラム及びデータ転送方法 |
JP2008030277A (ja) * | 2006-07-27 | 2008-02-14 | Noritsu Koki Co Ltd | インクジェット式プリント装置用画像データ処理装置 |
JP5262993B2 (ja) * | 2009-05-22 | 2013-08-14 | コニカミノルタビジネステクノロジーズ株式会社 | プリンタ用メモリの初期化方法および初期化装置 |
JP6040690B2 (ja) * | 2012-10-01 | 2016-12-07 | コニカミノルタ株式会社 | 描画処理装置、画像形成装置、コンピュータープログラムおよび描画処理方法 |
JP5892956B2 (ja) * | 2013-01-29 | 2016-03-23 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置 |
JP6264757B2 (ja) * | 2013-06-20 | 2018-01-24 | コニカミノルタ株式会社 | 画像形成装置、画像形成システム、画像形成装置の制御方法、及び画像形成装置の制御プログラム |
-
1998
- 1998-01-20 JP JP00917298A patent/JP3655457B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11203070A (ja) | 1999-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8422046B2 (en) | Print setting based reprinting | |
US6914697B2 (en) | Printing method and apparatus for separately processing a plurality of print data | |
JP4543340B2 (ja) | 画像処理装置および画像形成システムとプログラム | |
JPH10147018A (ja) | 印刷装置及びメモリ管理方式 | |
US6860203B2 (en) | Method and apparatus for printing computer generated images | |
JPH10147017A (ja) | 印刷装置及びデータ制御方法 | |
US6226095B1 (en) | Image processing apparatus, method, and system | |
EP0870277B1 (en) | Image rendering for page printers | |
JP3655457B2 (ja) | プリンタ制御装置 | |
JPH08278862A (ja) | 画像出力装置および画像処理方法 | |
US6310693B1 (en) | Printing control apparatus and method, and printing system for reducing processing overhead | |
JPH10202962A (ja) | 印字データ処理装置及び入力データ作成装置 | |
JPH11203071A (ja) | 画像処理装置 | |
JP3204136B2 (ja) | 画像処理装置及び圧縮処理方法 | |
JP2000225735A (ja) | 画像印刷装置 | |
JP4345055B2 (ja) | 画像処理装置及びその方法、プリンタシステム | |
JP4389199B2 (ja) | プリンタシステム | |
JPH11187261A (ja) | 画像処理装置 | |
JP3663853B2 (ja) | 画像処理装置 | |
JP3606985B2 (ja) | ページプリンタにおけるデータ圧縮・伸長方法及びページプリンタ | |
JPH08307695A (ja) | ページプリンタ及びそのデータ処理方法 | |
JP2002211052A (ja) | 印刷制御装置、印刷制御方法及び該方法を実行するためのプログラムを格納したコンピュータ読み取り可能な記憶媒体 | |
JP3232679B2 (ja) | プリントシステムおよびプリントサーバ | |
JPH09269875A (ja) | ページプリンタにおけるデータ圧縮・伸長方法 | |
JP2000047976A (ja) | プリンタ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040827 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041108 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050303 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090311 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100311 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110311 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120311 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130311 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140311 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |