【0001】
【発明の属する技術分野】
本発明は、画像処理方法および画像処理装置に関し、パーソナルコンピュータなどの情報処理システムにおけるプリンタの印刷処理方法に関するものである。
【0002】
【従来の技術】
従来、高機能プリンタに対するプリンタドライバの印刷処理は、OSから描画命令が渡されるとそれに対応するプリンタ記述言語(Page Description Language:以下PDL)の描画コマンドに置き換えてプリンタにデータの転送を行っている(以下:PDLモード)。これはPDLを持たずに入力はビットマップのみ(ダムプリンタ方式、ビデオプリンタ方式)という低機能プリンタと比較すると、コンピュータ上でビットマップに展開してからプリンタにデータを転送するよりも通常データ量が少なくなり、高速に処理が行えるという特徴を持つ。
【0003】
しかしながら近年のパーソナルコンピュータの高速化、アプリケーションの高機能化などにより、豊かな表現がなされたプレゼンテーション資料などが作成される機会が増え、PDLモードではデータ量が莫大になり、高機能プリンタでありながら低機能プリンタと比較して、却って遅くなるといった例が増えてきている。
【0004】
遅くなる具体的な例としては、OSから渡される描画命令で指定されるオブジェクトの大きさが極小で、数が膨大だった場合等である。この場合、PDL描画コマンドに展開するよりも、ビットマップに展開した方がデータ量が小さくなる。
【0005】
これに対し、プリンタドライバではページ全体をビットマップに展開してプリンタに転送するモード(以下、ラスターモード)を用意したり、といった対応が取られている。
【0006】
【発明が解決しようとする課題】
しかしながら、前記ラスターモードを用意し、ユーザにプリンタドライバで設定してもらうという対応では、ユーザからはPDL描画コマンドによるデータ量が莫大になるかどうかは認識出来ず、結果的に低速なPDLモードで印刷処理してしまうことが常である。また仮に、プリンタドライバ内部でページ毎にどちらのモードで処理した方が高速なのかを予測して、自動的にモードを切り替えたとしても、ラスターモードが選択された場合、PDL描画コマンドで転送した方が高速な描画命令に対してさえもビットマップ展開することになり、最適、最速な処理が行われているとは言えない。
【0007】
これに対し本発明においては、PDLモードでありながら、局所的にデータ量が莫大になってしまう個所のみをビットマップに展開しビットマップコマンドを、それ以外をPDL描画コマンドとしてプリンタに転送することにより、全てのデータにおいて最適、かつ高速に処理を行うことが出来る印刷制御装置と画像処理方法、ならびに印刷システムに係る画像処理方法および画像処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために本発明の画像処理方法および画像処理装置は、以下(1)〜(20)の構成を備える。
【0009】
(1)コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム(以下、OS)からプリンタ装置を制御するためのソフトウエア(以下、ドライバ)に描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語(Page Description Language:以下PDL)の描画コマンド(以下PDL描画コマンド)に変換する手段と、そのPDL描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのPDL描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのPDL描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のPDL描画コマンドに変換する手段を有する画像処理方法。
【0010】
(2)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記(1)記載の画像処理方法。
【0011】
(3)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをOR処理で描画するというコマンドの複数である上記(1)記載の画像処理方法。
【0012】
(4)前記、ビットマップコマンドとは、PDL描画コマンドのビットマップ処理に関するものでも成立する上記(1)記載の画像処理方法。
【0013】
(5)前記、OSから渡される描画命令に対し、PDL描画コマンドに変換する手段とは、必ずしもPDL描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにOSから渡される描画命令としても成立する上記(1)記載の画像処理方法。
【0014】
(6)コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム(以下、OS)からプリンタ装置を制御するためのソフトウエア(以下、ドライバ)に描画命令が送られてきたとき、その複数の描画命令に対し、それぞれPDL描画コマンドに変換する手段と、それらのPDL描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたPDL描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなPDL描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するPDL描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらPDL描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のPDL描画コマンドに変換する手段を有する画像処理方法。
【0015】
(7)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記(6)記載の画像処理方法。
【0016】
(8)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをOR処理で描画するというコマンドの複数である上記(6)記載の画像処理方法。
【0017】
(9)前記、ビットマップコマンドとは、PDL描画コマンドのビットマップ処理に関するものでも成立する上記(6)記載の画像処理方法。
【0018】
(10)前記、OSから渡される複数の描画命令に対し、それぞれPDL描画コマンドに変換する手段、それらのPDL描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもPDL描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにOSから渡される描画命令とし、メモリバッファにスプールしても成立する上記(6)記載の画像処理方法。
【0019】
(11)コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム(以下、OS)からプリンタ装置を制御するためのソフトウエア(以下、ドライバ)に描画命令が送られてきたとき、その描画命令に対し、プリンタ記述言語(Page Description Language:以下PDL)の描画コマンド(以下PDL描画コマンド)に変換する手段と、そのPDL描画コマンドをビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、ビットマップに展開した方が高速に処理出来る場合は、そのPDL描画コマンドに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、そのPDL描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを変換する前のPDL描画コマンドに変換する手段を有する画像処理装置。
【0020】
(12)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記(11)記載の画像処理装置。
【0021】
(13)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをOR処理で描画するというコマンドの複数上記(11)記載の画像処理装置。
【0022】
(14)前記、ビットマップコマンドとは、PDL描画コマンドのビットマップ処理に関するものでも成立する上記(11)記載の画像処理装置。
【0023】
(15)前記、OSから渡される描画命令に対し、PDL描画コマンドに変換する手段とは、必ずしもPDL描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにOSから渡される描画命令としても成立する上記(11)記載の画像処理装置。
【0024】
(16)コンピュータに接続されたプリンタ装置で、そのコンピュータを司るオペレーティングシステム(以下、OS)からプリンタ装置を制御するためのソフトウエア(以下、ドライバ)に描画命令が送られてきたとき、その複数の描画命令に対し、それぞれPDL描画コマンドに変換する手段と、それらのPDL描画コマンドを予め確保しておいたメモリバッファにスプールする手段と、スプールしたPDL描画コマンドを解析し、ビットマップに展開した方が高速に印刷処理が出来るかを判断する手段と、そのようなPDL描画コマンドが複数存在する場合は隣接するか判断する手段と、隣接する場合はその隣接するPDL描画コマンド全てに対する外接矩形を求める手段と、外接矩形分のビットマップ、マスクパターンのメモリ領域を確保する手段と、それらPDL描画コマンドをビットマップに展開する手段と、さらにマスクパターンに展開する手段と、そのビットマップとマスクパターンを用いて、新たな一つ、あるいは複数のビットマップコマンドを作成する手段と、新たに出来上がったビットマップコマンドを前の複数のPDL描画コマンドに変換する手段を有する画像処理装置。
【0025】
(17)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、ビットマップに対し、マスクパターンのマスクされている個所を描画するというコマンドである上記(16)記載の画像処理装置。
【0026】
(18)前記、ビットマップとマスクパターンによって作成されるビットマップコマンドは、マスクパターンのマスクされている個所をクリアするというコマンドと、マスクパターンのマスクされていない個所をクリアされたビットマップをOR処理で描画するというコマンドの複数である上記(16)記載の画像処理装置。
【0027】
(19)前記、ビットマップコマンドとは、PDL描画コマンドのビットマップ処理に関するものでも成立する上記(16)記載の画像処理装置。
【0028】
(20)前記、OSから渡される複数の描画命令に対し、それぞれPDL描画コマンドに変換する手段、それらのPDL描画コマンドを予め確保しておいたメモリバッファにスプールする手段とは、必ずしもPDL描画コマンドである必要はなく、例えばデバイス非依存の描画コマンド、あるいは変換せずにOSから渡される描画命令とし、メモリバッファにスプールしても成立する上記(16)記載の画像処理装置。
【0029】
この発明による作用として、高機能プリンタに対し如何なるデータを印刷する際においても、OSから渡されてくる描画命令に対し、速度的に最適な印刷処理がおこなえ、結果として高速に印刷することが出来るようになる。
【0030】
【発明の実施の形態】
以下図面を参照して本発明に係る一実施例を詳細に説明する。
【0031】
〔実施例〕
図1、図2、図3は本発明である画像処理印刷方法が適用される情報処理システムの構成の一例を示すブロック図である。
【0032】
図1において、1は中央処理装置で、上記プログラムおよび関連データが記憶されているFD,CD−ROM,ICメモリカード等の記憶媒体をシステムに接続された媒体読取装置6から読み込み、補助記憶装置3から主記憶装置2にロードされたシステムプログラム、アプリケーションプログラムによって、入力装置4から入力される情報を処理して、出力装置5やプリンタ7に出力する。なお、本実施例では、出力装置5はディスプレイなどの表示装置とし、本来出力装置に含まれるプリンタ7と区別する。また、入力装置4はキーボード、ポインティングデバイス等で構成されているものとする。さらに補助記憶装置3は、ハードディスク、光磁気ディスクで構成されるものであってもいいし、これらの組み合わせで構成されるものであってもよい。また、それぞれの装置がネットワークを介して接続されていようとも、この発明を制約するものではない。
【0033】
図2は媒体読取装置記憶装置に格納されていた画像処理方法制御プログラムと関連するデータが中央処理演算装置に読み込まれ、入力装置から印刷命令が入力されて、プリンタへデータを送り印刷するまでの概念図をあらわす。アプリケーション、ドライバともOSの制御下で機能する。
【0034】
図3は、図2の概念図のプリンタドライバ部分の処理を詳しく記したものである。OSから描画命令が渡されると、描画命令を該当するPDL描画コマンドに変換する。その後変換されたPDL描画コマンドをメモリバッファに格納する。そのようにして次々とOSからの描画命令をPDL描画コマンドに変換し、メモリバッファに格納していく。途中、メモリバッファが一杯になった場合は、そのメモリバッファのPDL描画コマンドの群をプリンタへ転送し、メモリバッファをクリアし、再度OSからの描画命令に対する処理を行う。OSからの描画命令に対する処理がすべて完了すると、メモリバッファ内のPDL描画コマンド群をプリンタへ転送し、プリンタドライバの印刷処理が完了する。
【0035】
図4から図7までは、図1、図2、図3で示された情報処理システム上で本実施例の説明をしたものである。
【0036】
図4はPDL描画コマンド展開とビットマップ展開したデータに関して、PDL描画コマンドの方が大きくなる例を示したものである。
【0037】
アプリケーションにおいて作成したグラデーションを描画する際、OSからプリンタドライバに渡される描画命令は、高さ1の矩形描画命令を複数回に展開される場合がある。具体的には仮に高さが8ピクセルであった場合、8個の色指定の異なった矩形描画命令に展開されてドライバに渡される。
【0038】
これをPDL描画コマンドに変換する場合、PDL描画コマンドを構成する各要素を4BYTEとすると、192バイト。ビットマップコマンドに変換する場合、そのビットマップを二値化されたものとすると、55バイトで済み、この例の場合、ビットマップ展開した方が、プリンタへ転送する転送量が少なくてすむことを意味する。
【0039】
このグラデーション描画のように、描画命令により指定されるオブジェクトのX軸幅やY軸幅が小さく、そして多くの描画命令によりある図形を描き出すような場合に、ビットマップ展開した方がデータ量を抑えられるという状況が発生する。
【0040】
図5は、図4で示したような、ビットマップ展開した方がデータ量が少なくなるようなPDL描画コマンド群に対し、どのようにビットマップ展開するかを示したものである。
【0041】
OSから渡された描画命令をPDL描画コマンドに展開した際、図4で示した状況(ビットマップ展開した方が、データ量が減らせる)であった場合、該当するPDL描画コマンドの示すオブジェクトの外接矩形の大きさのメモリ領域に、ビットマップ展開、および1ビットで示されるマスクパターンに展開を行う。
【0042】
マスクパターンを作成する理由は、ビットマップは矩形で表され、そのうちのどの部分をプリンタで処理する必要があるかを示すためである。
【0043】
ここで、ビットマップとは、デバイスに依存したビットマップ(DeviceDependent Bitmap)でもいいし、デバイスに非依存のビットマップ(Device Independent Bitmap)でもいい。ビットマップコマンドがサポートしているフォーマットや、図形に使用される色数などを考慮して効率のいいものを指定することが出来る。
【0044】
図6は、ビットマップ展開したビットマップ、マスクパターンをいかにビットマップコマンドとしてプリンタに転送するかを示したものである。
【0045】
ここでは転送方法をわかりやすくするため、PDL描画コマンドでプリンタに転送した方がよい描画命令が下地となり、上にビットマップ展開してからプリンタに転送した方がよい描画命令が重なった場合として説明する。
【0046】
まず、PDL描画コマンドで転送した方がデータ量が小さくなる描画命令に関しては、PDL描画コマンドを用いてプリンタに転送する。その後、ビットマップ展開した方がデータ量が小さくなる描画命令に関してはビットマップコマンドにてマスクパターンとビットマップをプリンタに転送する。
【0047】
ここでビットマップコマンドが、ビットマップの内、マスクパターンのマスクされた個所のみ描画するという機能を持つ場合は、一度のビットマップコマンドで処理が可能である。この場合は図示していない。
【0048】
ここで図示しているのは、ビットマップコマンドが前記機能を持たない場合である。この場合は二つのビットマップコマンドが必要である。
【0049】
一つ目はマスクパターンを使用して該当個所を切り抜くようなビットマップコマンドである。仮にマスクパターンのある個所が1、ない個所が0である場合、論理演算処理としてはORを指定すればこのオペレートが可能である。(プリンタ内部において、1が白とした場合)
二つ目は、ビットマップを使用して、切り抜かれた該当個所にビットマップの該当個所を貼り付けるようなビットマップコマンドである。仮にビットマップの該当個所以外を1(白)とした場合、論理演算処理としてはANDを指定すればこのオペレートが可能である(プリンタ内部において、1が白とした場合)。
【0050】
このようなビットマップコマンドを使用してビットマップ転送を行えば、下地の有無に関わらず、ビットマップ展開前のPDL描画コマンドがどのような形なのかにも関わらず、正確な描画処理を行うことが出来る。
【0051】
なお、ビットマップコマンドは、PDL描画コマンドでビットマップを処理するものがあるのであれば、そのPDL描画コマンドを使用することも可能である。
【0052】
図7は、複数のビットマップ展開した方がいいPDL描画コマンドが存在した場合を示したものである。
【0053】
図7に示すように、両者のPDL描画コマンドを結合させる方法と、それぞれ分割して処理する方法がありうる。いずれを選択しても、出力結果は同じになるため、ビットマップ展開後のデータ量に依存して選択すればよい。
【0054】
画像処理方法は図8に示される画像処理方法のフローチャートに基づいてプログラム化されたものである。以下、図8のフローチャートを参照しながら本発明に係る画像印刷処理方法について説明する。
【0055】
まず、図1の入力装置4から印刷を実行するように命令が入力されると、補助記憶装置3から主記憶装置2上に読み込まれたOS、ドライバやアプリケーション(図2)のうち、OSがそのメッセージを受け取る。OSは現在アクティブであるアプリケーションに印刷実行メッセージを送る。
【0056】
アプリケーションは、そのメッセージをOSが認識できるコマンドに変換して印刷するデータやコマンドのメッセージを送る。OSはドライバの認識できるコマンドに変換して、メッセージを送る。
【0057】
ドライバに初期化用のメッセージが送られてきたら、PDL描画コマンドを格納するメモリバッファをアロケートして、内容をクリアしておく(8−1)。
【0058】
ドライバはOSから送られてくる描画命令をPDL描画コマンドに変換する(8−2)。次にそのPDL描画コマンドをメモリバッファに格納する(8−3)。これを繰り返し、全描画命令に対して行う(8−5)。
【0059】
全ての描画命令のPDL描画コマンドへの変換が終わる、あるいはメモリバッファが一杯になる(8−5)と、メモリバッファ内のPDL描画コマンドを解析する(8−6)、(8−9)。
【0060】
ここで、ビットマップ展開すると小さくなるPDL描画コマンド(図4)が存在しなかった場合はそのままメモリバッファ内のPDL描画コマンドをプリンタへ転送する(8−8)、(8−11)のだが、存在した場合は、本発明の主要な要素であるビットマップ展開処理を行う(▲2▼)。
【0061】
ビットマップ展開処理においては、ビットマップ展開すると小さくなる(対象となる)PDL描画コマンドの外接矩形を求める(8−13)。8−14において他にも対象となるPDL描画コマンドが存在する場合は、それまでに求めた外接矩形に対応したPDL描画コマンド群に追加し、あらたに外接矩形を更新するか、新規にそのPDL描画コマンドに対する外接矩形を作成するかを判断する(8−15)、(図7)。
【0062】
これを対象となる全PDL描画コマンドに対して行う。
【0063】
その後、ここまでで求まった外接矩形に応じたビットマップ展開領域(8−16)、マスクパターン展開領域(8−17)を確保し、その外接矩形に該当するPDL描画コマンドをビットマップ展開(8−18)、マスクパターン展開(8−19)を行う(図5)。また、8−20で他に求めた外接矩形が存在すれば、同じくそれに該当するPDL描画コマンドに対するビットマップ展開、マスクパターン展開を行う。
【0064】
8−21では、出来上がったビットマップ、マスクパターンを用いて、新規にビットマップコマンドを作成する(図6)。そのビットマップコマンドをメモリバッファ内の該当するPDL描画コマンドに置き換える(8−22)。
【0065】
これを他に外接矩形が存在すれば、それらに対しても処理を行う(8−23)。
【0066】
すべての対象となるPDL描画コマンドに対する処理が終わると、ビットマップ展開処理(▲2▼)が終了し、確保したビットマップ、マスクパターン領域を開放する(8−24)。
【0067】
後はメモリバッファの内容をプリンタに転送することにより、プリンタドライバでの処理が終了する。
【0068】
今回は主にビットマップ展開の対象となる描画命令として、数多くの細かいグラフィクスを用いて説明してきたが、例えばPDL描画コマンドでは正常に処理できない描画命令や転送データ量が大きくなってしまう高解像度イメージデータ等に対しても効果がある。
【0069】
【発明の効果】
PDLをプリンタコマンドとして持つ高機能プリンタに対し、従来高速に処理が出来るようなデータに関してはそのままの速度で、PDLでは印刷処理に時間がかかってしまうといわれていたデータに関しても高速に処理を行えるようになる。
【図面の簡単な説明】
【図1】本実施例の画像処理印刷方法が適用される情報処理システムの構成の一例を示すブロック図
【図2】画像処理方法制御プログラムと関連するデータが、媒体読取装置記憶装置に格納されていたデータが中央処理演算装置に読み込まれ、入力装置から印刷命令が入力されて、プリンタへデータを送り印刷するまでの概念図
【図3】図2のドライバ部分を処理内容を中心に詳しく記した図
【図4】PDL描画コマンドをビットマップに展開した方がデータ量が小さくなるような描画命令の例を示した図
【図5】ビットマップに展開する場合、どのように行うかを示した図
【図6】図5で展開したビットマップとマスクパターンを用いて、どのようにビットマップコマンドを作成するかを示した図
【図7】図4で示したような描画命令が複数存在した場合、どのように扱えばいいかを示した図
【図8】本発明に係る画像処理装置の画像処理方法の一実施例をあらわすフローチャート
【符号の説明】
1 中央処理装置
2 主記憶装置
3 補助記憶装置
4 入力装置
5 出力装置
6 媒体読取装置
7 プリンタ
8 ROM[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an image processing method and an image processing apparatus, and more particularly to a print processing method of a printer in an information processing system such as a personal computer.
[0002]
[Prior art]
2. Description of the Related Art Conventionally, in a printing process of a printer driver for a high-performance printer, when a drawing command is passed from an OS, the data is transferred to a printer by replacing the drawing command with a drawing command of a printer description language (Page Description Language: PDL) corresponding thereto. (Hereinafter: PDL mode). Compared to a low-function printer that does not have a PDL and inputs only bitmaps (dumb printer system, video printer system), the amount of normal data is smaller than that of developing a bitmap on a computer and then transferring data to the printer. And that high-speed processing can be performed.
[0003]
However, with the recent increase in the speed of personal computers and the sophistication of applications, the number of opportunities to create presentation materials with rich expressions has increased. In PDL mode, the amount of data has become enormous. More and more examples are becoming slower than low-function printers.
[0004]
A specific example of the delay is when the size of the object specified by the drawing command passed from the OS is extremely small and the number is large. In this case, the data amount is smaller when the data is developed into a bitmap than when the data is developed into a PDL drawing command.
[0005]
On the other hand, the printer driver prepares a mode in which the entire page is developed into a bitmap and transferred to the printer (hereinafter, a raster mode).
[0006]
[Problems to be solved by the invention]
However, if the raster mode is prepared and the user sets it with the printer driver, it is impossible for the user to recognize whether the amount of data by the PDL drawing command becomes enormous, and as a result, in the slow PDL mode. It is common to print. Also, even if the printer driver predicts which mode should be processed faster for each page in the printer driver and automatically switches the mode, if the raster mode is selected, it is transferred using the PDL drawing command. In this case, bitmap expansion is performed even for a higher-speed drawing command, and it cannot be said that the optimum and fastest processing is performed.
[0007]
On the other hand, in the present invention, only the portion where the data amount becomes enormous locally in the PDL mode is developed into a bitmap, and the bitmap command is transferred to the printer as a PDL drawing command for the other portions. Accordingly, an object of the present invention is to provide a print control device and an image processing method capable of performing optimum and high-speed processing on all data, and an image processing method and an image processing device related to a printing system.
[0008]
[Means for Solving the Problems]
In order to achieve the above object, an image processing method and an image processing apparatus according to the present invention have the following configurations (1) to (20).
[0009]
(1) When a drawing command is sent from a printer device connected to a computer to software (hereinafter, a driver) for controlling the printer device from an operating system (hereinafter, an OS) that controls the computer, the drawing is performed. A means for converting a command into a drawing command (hereinafter referred to as a PDL drawing command) of a printer description language (Page Description Language: hereinafter PDL) and whether or not the PDL drawing command is expanded into a bitmap for faster printing processing A means for determining, a method for obtaining a circumscribing rectangle for the PDL drawing command if the processing can be performed at a higher speed by developing the data into a bitmap, a means for securing a memory area for a bitmap and a mask pattern for the circumscribing rectangle, Expand PDL drawing command to bitmap Means for further developing a mask pattern, means for creating one or more new bitmap commands using the bitmap and the mask pattern, and before converting the newly completed bitmap command. An image processing method comprising means for converting a command into a PDL drawing command.
[0010]
(2) The image processing method according to (1), wherein the bitmap command created by the bitmap and the mask pattern is a command to draw a masked portion of the mask pattern on the bitmap.
[0011]
(3) The bitmap command created by the bitmap and the mask pattern is a combination of a command for clearing a masked portion of the mask pattern and a bitmap for clearing a non-masked portion of the mask pattern. The image processing method according to the above (1), wherein the image processing method includes a plurality of commands for drawing by processing.
[0012]
(4) The image processing method according to the above (1), wherein the bitmap command also relates to a bitmap process of a PDL drawing command.
[0013]
(5) The means for converting a drawing command passed from the OS into a PDL drawing command does not necessarily need to be a PDL drawing command. For example, a device-independent drawing command or a command passed from the OS without conversion. The image processing method according to the above (1), wherein the image processing method is also established as a rendering command.
[0014]
(6) When a drawing command is sent from a printer device connected to a computer to software (hereinafter, a driver) for controlling the printer device from an operating system (hereinafter, an OS) that controls the computer, a plurality of drawing commands are sent. Means for converting the drawing commands into PDL drawing commands, means for spooling the PDL drawing commands in a previously secured memory buffer, and analysis of the spooled PDL drawing commands into bitmaps. Means for determining whether printing can be performed at a higher speed, means for judging whether there is a plurality of such PDL drawing commands, and means for judging whether the PDL drawing commands are adjacent. The means to determine and the bitmap for the circumscribed rectangle and the memory area for the mask pattern Means for expanding the PDL drawing command into a bitmap, further expanding the pattern into a mask pattern, and creating one or more new bitmap commands using the bitmap and the mask pattern. And a means for converting a newly created bitmap command into a plurality of previous PDL drawing commands.
[0015]
(7) The image processing method according to (6), wherein the bitmap command created by the bitmap and the mask pattern is a command for drawing a masked portion of the mask pattern on the bitmap.
[0016]
(8) The bitmap command created by the bitmap and the mask pattern is obtained by ORing a command for clearing a masked portion of the mask pattern with a bitmap for clearing a non-masked portion of the mask pattern. The image processing method according to the above (6), wherein a plurality of commands for drawing by processing are provided.
[0017]
(9) The image processing method according to the above (6), wherein the bitmap command is also valid for a bitmap process of a PDL drawing command.
[0018]
(10) The means for converting a plurality of drawing commands passed from the OS into PDL drawing commands and the means for spooling the PDL drawing commands in a previously secured memory buffer are not necessarily PDL drawing commands. The image processing method according to the above (6), which does not need to be performed, and is established, for example, as a device-independent drawing command or a drawing command passed from the OS without conversion and spooled in a memory buffer.
[0019]
(11) When a drawing command is sent from a printer device connected to a computer to software (hereinafter, a driver) for controlling the printer device from an operating system (hereinafter, an OS) controlling the computer, the drawing is performed. A means for converting a command into a drawing command (hereinafter referred to as a PDL drawing command) of a printer description language (Page Description Language: hereinafter PDL) and whether or not the PDL drawing command is expanded into a bitmap for faster printing processing A means for determining, a method for obtaining a circumscribing rectangle for the PDL drawing command if the processing can be performed at a higher speed by developing the data into a bitmap, a means for securing a memory area for a bitmap and a mask pattern for the circumscribing rectangle, Expand PDL drawing command to bitmap Means for further developing into a mask pattern, means for creating one or more new bitmap commands using the bitmap and the mask pattern, and converting the newly completed bitmap command. An image processing apparatus having means for converting a previous PDL drawing command.
[0020]
(12) The image processing apparatus according to (11), wherein the bitmap command created by the bitmap and the mask pattern is a command to draw a masked portion of the mask pattern on the bitmap.
[0021]
(13) The bitmap command created by the bitmap and the mask pattern is obtained by ORing the command for clearing the masked portion of the mask pattern with the bitmap for clearing the unmasked portion of the mask pattern. The image processing apparatus according to (11), wherein a plurality of commands for drawing by processing are provided.
[0022]
(14) The image processing apparatus according to the above (11), wherein the bitmap command is also valid for a bitmap process of a PDL drawing command.
[0023]
(15) The means for converting a drawing command passed from the OS into a PDL drawing command does not necessarily need to be a PDL drawing command. For example, a device-independent drawing command or a command passed from the OS without conversion. The image processing apparatus according to the above (11), wherein the image processing apparatus is also established as a rendering command.
[0024]
(16) When a drawing command is sent from a printer device connected to a computer to software (hereinafter, a driver) for controlling the printer device from an operating system (hereinafter, an OS) that controls the computer, a plurality of drawing commands are sent. Means for converting the drawing commands into PDL drawing commands, means for spooling these PDL drawing commands in a memory buffer reserved in advance, and analysis of the spooled PDL drawing commands into bitmaps. Means for determining whether printing can be performed at a higher speed, means for judging whether there is a plurality of such PDL drawing commands, and means for judging whether the PDL drawing commands are adjacent. Finding means and memory area of bitmap and mask pattern for circumscribed rectangle Means for securing, means for developing these PDL drawing commands into bitmaps, means for developing further into mask patterns, and creation of one or more new bitmap commands using the bitmaps and mask patterns And a means for converting a newly created bitmap command into a plurality of previous PDL drawing commands.
[0025]
(17) The image processing apparatus according to (16), wherein the bitmap command created by the bitmap and the mask pattern is a command to draw a masked portion of the mask pattern on the bitmap.
[0026]
(18) The bitmap command created by the bitmap and the mask pattern is obtained by ORing a command for clearing a masked portion of the mask pattern with a bitmap for clearing a non-masked portion of the mask pattern. The image processing apparatus according to (16), wherein the image processing apparatus includes a plurality of commands for drawing in processing.
[0027]
(19) The image processing device according to the above (16), wherein the bitmap command is also valid for a bitmap process of a PDL drawing command.
[0028]
(20) The means for converting a plurality of drawing commands passed from the OS into PDL drawing commands and the means for spooling the PDL drawing commands in a previously secured memory buffer are not necessarily PDL drawing commands. The image processing apparatus according to (16), wherein the image processing apparatus does not need to be, for example, a device-independent drawing command or a drawing command passed from the OS without conversion, and is spooled in a memory buffer.
[0029]
As an effect of the present invention, when printing any data on a high-performance printer, print processing optimal in speed can be performed in response to a drawing command passed from the OS, and as a result, printing can be performed at high speed. Become like
[0030]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0031]
〔Example〕
FIGS. 1, 2 and 3 are block diagrams showing an example of the configuration of an information processing system to which the image processing and printing method according to the present invention is applied.
[0032]
In FIG. 1, reference numeral 1 denotes a central processing unit, which reads a storage medium, such as an FD, a CD-ROM, an IC memory card, or the like in which the program and related data are stored from a medium reading device 6 connected to the system, and The information processing unit 3 processes information input from the input device 4 by a system program and an application program loaded into the main storage device 2 from the storage device 3 and outputs the processed information to the output device 5 and the printer 7. In this embodiment, the output device 5 is a display device such as a display, and is distinguished from the printer 7 originally included in the output device. It is assumed that the input device 4 is configured by a keyboard, a pointing device, and the like. Further, the auxiliary storage device 3 may be configured by a hard disk or a magneto-optical disk, or may be configured by a combination thereof. Further, the present invention is not limited even if each device is connected via a network.
[0033]
FIG. 2 shows an image processing method control program stored in the medium reading device storage device and the data related to the program are read by the central processing unit, a print command is input from the input device, and the data is sent to the printer and printed. It shows a conceptual diagram. Both the application and the driver function under the control of the OS.
[0034]
FIG. 3 shows details of the processing of the printer driver in the conceptual diagram of FIG. When a drawing command is passed from the OS, the OS converts the drawing command into a corresponding PDL drawing command. After that, the converted PDL drawing command is stored in the memory buffer. In this way, the drawing commands from the OS are successively converted into PDL drawing commands and stored in the memory buffer. If the memory buffer becomes full in the middle, the group of PDL drawing commands in the memory buffer is transferred to the printer, the memory buffer is cleared, and the process for the drawing command from the OS is performed again. When all the processes for the drawing command from the OS are completed, the PDL drawing commands in the memory buffer are transferred to the printer, and the printing process of the printer driver is completed.
[0035]
FIGS. 4 to 7 illustrate the present embodiment on the information processing system shown in FIGS. 1, 2, and 3. FIG.
[0036]
FIG. 4 shows an example in which the PDL drawing command is larger than the PDL drawing command expansion data and the bitmap expansion data.
[0037]
When drawing a gradation created by an application, the drawing command passed from the OS to the printer driver may be developed a rectangular drawing command with a height of 1 a plurality of times. Specifically, if the height is 8 pixels, it is expanded into eight different rectangle drawing commands with different color designations and passed to the driver.
[0038]
When converting this into a PDL drawing command, if each element constituting the PDL drawing command is 4 bytes, 192 bytes. When converting to a bitmap command, assuming that the bitmap is binarized, only 55 bytes are required. In this example, the bitmap expansion reduces the amount of transfer to the printer. means.
[0039]
In the case where the X-axis width and Y-axis width of the object specified by the drawing command are small and a certain figure is drawn by many drawing commands as in the gradation drawing, the data amount can be reduced by expanding the bitmap. Situation occurs.
[0040]
FIG. 5 shows how a bit map is developed for a PDL drawing command group in which the data amount becomes smaller when the bit map is developed as shown in FIG.
[0041]
When the drawing command passed from the OS is expanded into a PDL drawing command, if the situation shown in FIG. 4 (the data amount can be reduced by bitmap expansion), the object indicated by the corresponding PDL drawing command is displayed. A bit map is developed in a memory area having a size of a circumscribed rectangle, and a mask pattern represented by 1 bit is developed.
[0042]
The reason for creating the mask pattern is that the bitmap is represented by a rectangle and indicates which part of the bitmap needs to be processed by the printer.
[0043]
Here, the bitmap may be a device-dependent bitmap (Device Dependent Bitmap) or a device-independent bitmap (Device Independent Bitmap). Efficient ones can be specified in consideration of the format supported by the bitmap command and the number of colors used for the figure.
[0044]
FIG. 6 shows how a bitmap and a mask pattern developed into a bitmap are transferred to the printer as a bitmap command.
[0045]
Here, in order to make it easy to understand the transfer method, a description will be given assuming that a drawing command that should be transferred to the printer using a PDL drawing command is a base, and a drawing command that should be transferred to the printer after bitmap development has been overlapped. I do.
[0046]
First, a drawing command whose data amount is smaller when transferred by the PDL drawing command is transferred to the printer using the PDL drawing command. After that, the mask pattern and the bitmap are transferred to the printer by the bitmap command for the drawing command in which the data amount becomes smaller when the bitmap is developed.
[0047]
If the bitmap command has a function of drawing only the masked portion of the mask pattern in the bitmap, the processing can be performed with a single bitmap command. In this case, it is not shown.
[0048]
What is shown here is a case where the bitmap command does not have the above function. In this case, two bitmap commands are required.
[0049]
The first is a bitmap command that cuts out a relevant part using a mask pattern. If the location of the mask pattern is 1 and the location of the mask pattern is 0, this operation can be performed by specifying OR as the logical operation process. (When 1 is white inside the printer)
The second is a bitmap command that uses the bitmap to paste the corresponding portion of the bitmap at the corresponding cutout portion. If it is assumed that 1 (white) is set to a portion other than the corresponding portion of the bitmap, this operation can be performed by specifying AND as a logical operation process (when 1 is white in the printer).
[0050]
If bitmap transfer is performed using such a bitmap command, accurate drawing processing is performed regardless of the form of the PDL drawing command before bitmap development, regardless of the presence or absence of a base. I can do it.
[0051]
If a bitmap command is used to process a bitmap with a PDL drawing command, the PDL drawing command can also be used.
[0052]
FIG. 7 shows a case where there is a PDL drawing command which should be developed into a plurality of bitmaps.
[0053]
As shown in FIG. 7, there are a method of combining both PDL drawing commands and a method of dividing and processing each of them. Regardless of which is selected, the output result is the same, so the selection may be made depending on the data amount after bitmap development.
[0054]
The image processing method is programmed based on the flowchart of the image processing method shown in FIG. Hereinafter, the image print processing method according to the present invention will be described with reference to the flowchart of FIG.
[0055]
First, when an instruction to execute printing is input from the input device 4 in FIG. 1, the OS among the OS, drivers and applications (FIG. 2) read from the auxiliary storage device 3 onto the main storage device 2 Receive that message. The OS sends a print execution message to the currently active application.
[0056]
The application converts the message into a command recognizable by the OS and sends a data or command message to be printed. The OS converts the command into a command recognizable by the driver and sends the message.
[0057]
When a message for initialization is sent to the driver, the memory buffer for storing the PDL drawing command is allocated and the contents are cleared (8-1).
[0058]
The driver converts the drawing command sent from the OS into a PDL drawing command (8-2). Next, the PDL drawing command is stored in the memory buffer (8-3). This is repeated for all drawing commands (8-5).
[0059]
When the conversion of all drawing commands into PDL drawing commands is completed or the memory buffer is full (8-5), the PDL drawing commands in the memory buffer are analyzed (8-6) and (8-9).
[0060]
Here, if there is no PDL drawing command (FIG. 4) that becomes smaller by bitmap development, the PDL drawing command in the memory buffer is transferred to the printer as it is (8-8), but (8-11). If there is, a bitmap expansion process, which is a main element of the present invention, is performed ((2)).
[0061]
In the bitmap development process, a circumscribed rectangle of the PDL drawing command which becomes smaller (target) by bitmap development is obtained (8-13). If another target PDL drawing command exists in 8-14, the target PDL drawing command is added to the PDL drawing command group corresponding to the circumscribed rectangle obtained so far, and the circumscribed rectangle is newly updated or the PDL is newly added. It is determined whether to create a circumscribed rectangle for the drawing command (8-15), (FIG. 7).
[0062]
This is performed for all target PDL drawing commands.
[0063]
After that, a bitmap development area (8-16) and a mask pattern development area (8-17) corresponding to the circumscribed rectangle obtained up to this point are secured, and the PDL drawing command corresponding to the circumscribed rectangle is bitmap-expanded (8 -18), mask pattern development (8-19) is performed (FIG. 5). If there is another circumscribed rectangle obtained in step 8-20, bitmap development and mask pattern development for the corresponding PDL drawing command are also performed.
[0064]
In step 8-21, a new bitmap command is created using the completed bitmap and mask pattern (FIG. 6). The bitmap command is replaced with the corresponding PDL drawing command in the memory buffer (8-22).
[0065]
If there are other circumscribed rectangles, the process is performed on them (8-23).
[0066]
When the processing for all the target PDL drawing commands is completed, the bitmap development processing ((2)) is completed, and the secured bitmap and mask pattern areas are released (8-24).
[0067]
Thereafter, by transferring the contents of the memory buffer to the printer, the processing by the printer driver ends.
[0068]
This time, a lot of fine graphics have been described as the drawing commands to be bitmap expanded. However, for example, a drawing command that cannot be processed normally with a PDL drawing command or a high-resolution image that increases the amount of transferred data becomes large. It is also effective for data and the like.
[0069]
【The invention's effect】
For a high-performance printer that has PDL as a printer command, data that can be processed at high speed in the past can be processed at the same speed, and data that is said to take a long time for print processing in PDL can be processed at high speed. Become like
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating an example of the configuration of an information processing system to which an image processing and printing method according to an embodiment is applied. FIG. 2 is a diagram illustrating data related to an image processing method control program stored in a medium reading device storage device. FIG. 3 is a conceptual diagram from when the data that has been read is read into the central processing unit, when a print command is input from the input device, and when the data is sent to the printer and printed. FIG. 4 is a diagram showing an example of a drawing command in which the data amount becomes smaller when a PDL drawing command is developed into a bitmap. FIG. 5 shows how to perform the processing when the PDL drawing command is developed into a bitmap. FIG. 6 is a diagram showing how a bitmap command is created using the bitmap and the mask pattern developed in FIG. 5; FIG. 7 is a diagram showing a plurality of drawing commands as shown in FIG. If present, flowcharts [EXPLANATION OF SYMBOLS] showing an embodiment of an image processing method for an image processing apparatus according to how FIG 8 shows how we can do the invention
DESCRIPTION OF SYMBOLS 1 Central processing unit 2 Main storage device 3 Auxiliary storage device 4 Input device 5 Output device 6 Medium reading device 7 Printer 8 ROM