(57)【特許請求の範囲】
【請求項１】
コンピュータシステムからプリンタへグラフィックオブジェクトを送信する方法において、
前記グラフィックオブジェクトはコンピュータメモリ内に格納されている別のグラフィックオブジェクトとの比較に使用する少なくとも１個の第一要素と前記第一要素以外の要素で上書き可能な少なくとも１個の第二要素とを有しており、
プリンタドライバがアプリケーションプログラムから第一グラフィックオブジェクトを受取り、
前記プリンタドライバが前記第一グラフィックオブジェクトをコンピュータシステムに結合されておりプリンタと共用されていないコンピュータメモリ内に格納し、
前記プリンタドライバが前記アプリケーションプログラムから第二グラフィックオブジェクトを受取り、
前記プリンタドライバが前記第二グラフィックオブジェックトを前記第一グラフィックオブジェクトと比較し、
前記プリンタドライバが前記第一グラフィックオブジェクトを前記プリンタへ送信し、
前記第二グラフィックオブジェクトが前記第一グラフィックオブジェクトと一致する場合に、前記プリンタドライバが、前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素と前記第二グラフィックオブジェクトの前記少なくとも１個の第二要素とを比較し、且つ前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素と異なる前記第二グラフィックオブジェクトの前記少なくとも１個の第二要素であって前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素を上書きするための上書き要素と前記第一グラフィックオブジェクトを識別する識別子とを前記プリンタへ送信し、一方、一致しない場合には前記第二グラフィックオブジェクトを前記コンピュータメモリ内に格納し且つ前記第二グラフィックオブジェクトを前記プリンタへ送信する、
ことを特徴とする方法。
【請求項２】
請求項１において、前記コンピュータメモリがローカルエリアネットワークを介して前記コンピュータシステムへ結合されているディスク格納装置であることを特徴とする方法。
【請求項３】
請求項１において、前記第二グラフィックオブジェクトが格納された場合に前記第一グラフィックオブジェクトを前記コンピュータメモリから削除することを特徴とする方法。
【請求項４】
請求項１において、更に、前記第二グラフィックオブジェクトが前記第一グラフィックオブジェクトと一致しない場合には、
前記プリンタドライバが前記第一グラフィックオブジェクトに加えて前記第二グラフィックオブジェクトを前記コンピュータメモリ内に格納し、
前記プリンタドライバが前記アプリケーションプログラムから第三グラフィックオブジェクトを受取り、
前記プリンタドライバが前記第二グラフィックオブジェクトを前記プリンタへ送信し、且つ前記第三グラフィックオブジェクトが前記コンピュータメモリ内に格納されているグラフィックオブジェクトのいずれとも一致しない場合には前記第三グラフィックオブジェクトを前記コンピュータメモリ内に格納し、一方、前記第三グラフィックオブジェクトが前記コンピュータメモリ内に格納されているグラフィックオブジェクトのうちの１つと一致する場合には前記一致するグラフィックオブジェクトを識別する識別子を前記プリンタへ送信する、
ことを特徴とする方法。
【請求項５】
請求項４において、請求項４の各ステップを１頁内の各グラフィックオブジェクトに対して繰返し行うことを特徴とする方法。
【請求項６】
請求項１において、グラフィックオブジェクトが１個又はそれ以上のビットを有している場合に、前記第一グラフィックオブジェクトの各ビットを前記第二グラフィックオブジェクトの対応するビットと比較して前記第一グラフィックオブジェクトが前記第二グラフィックオブジェクトと一致するか否かを決定することを特徴とする方法。
【請求項７】
請求項１において、グラフィックオブジェクトがその形状を画定する１個又はそれ以上の点を有している場合に、前記第一グラフィックオブジェクトの各点を前記第二グラフィックオブジェクトの対応する点と比較して前記第一グラフィックオブジェクトが前記第二グラフィックオブジェクトと一致するか否かを決定することを特徴とする方法。
【請求項８】
請求項１において、２つのグラフィックオブジェクトがアフィン変換の下で同一である場合に２つのグラフィックオブジェクトが一致することを特徴とする方法。
【請求項９】
請求項１において、グラフィックオブジェクトがタイプを有している場合に、
前記プリンタドライバが前記第二グラフィックオブジェクトのタイプを認識し、
前記プリンタドライバが前記第二グラフィックオブジェクトのタイプに従って前記第二グラフィックオブジェクトを前記第一グラフィックオブジェクトと比較するための複数個の比較プロセスのうちの１つを選択し、
前記プリンタドライバが前記選択した比較プロセスを適用して前記第一グラフィックオブジェクトと前記第二グラフィックオブジェクトとが同一のタイプである場合に前記第一グラフィックオブジェクトと前記第二グラフィックオブジェクトとを比較する、
ことを特徴とする方法。
【請求項１０】
請求項９において、グラフィックオブジェクトがデータ寸法と少なくとも１個のビットとを有しており、且つ前記複数個の比較プロセスのうちの１つにおいて、
前記プリンタドライバが前記第一グラフィックオブジェクトのデータ寸法を前記第二グラフィックオブジェクトのデータ寸法と比較し、
前記プリンタドライバが前記第一グラフィックオブジェクトの各ビットを前記第二グラフィックオブジェクトの対応するビットと比較する、
ことを特徴とする方法。
【請求項１１】
請求項９において、グラフィックオブジェクトがデータ寸法と、カラー深さと、少なくとも１個のピクセルと、少なくとも１個のビットとを有しており、且つ前記複数個の比較プロセスのうちの１つにおいて、
前記プリンタドライバが前記第一グラフィックオブジェクトのデータ寸法を前記第二グラフィックオブジェクトのデータ寸法と比較し、
前記プリンタドライバが前記第一グラフィックオブジェクトのカラー深さを前記第二グラフィックオブジェクトのカラー深さと比較し、
前記プリンタドライバが前記第一グラフィックオブジェクトの各ピクセルを前記第二グラフィックオブジェクトの対応するピクセルと比較し、
前記プリンタドライバが前記第一グラフィックオブジェクトの各ビットを前記第二グラフィックオブジェクトの対応するビットと比較する、
ことを特徴とする方法。
【請求項１２】
請求項９において、前記複数個の比較プロセスのうちの１つにおいて、前記第一グラフィックオブジェクトのベクトル定義を前記第二グラフィックオブジェクトのベクトル定義と比較することを特徴とする方法。
【請求項１３】
請求項９において、グラフィックオブジェクトがその形状を画定する１個又はそれ以上の点を有しており、且つ１つの比較プロセスが前記第一グラフィックオブジェクトの各点を前記第二グラフィックオブジェクトの対応する点と比較する、ことを特徴とする方法。
【請求項１４】
請求項１において、更に、
前記プリンタドライバが前記コンピュータシステムにおいてプリンタメモリがどのようにして使用されるかを予測し、
前記プリンタドライバが前記予測が前記プリンタメモリから前記プリンタが対応するグラフィックオブジェクトを削除することを示す場合に前記コンピュータメモリからグラフィックオブジェクトを削除する、
ことを特徴とする方法。
【請求項１５】
請求項１において、１頁の終わりが前記プリンタへ送信される場合に前記コンピュータメモリからグラフィックオブジェクトを削除することを特徴とする方法。
【請求項１６】
請求項１において、前記識別子が前記コンピュータシステムによって発生されることを特徴とする方法。
【請求項１７】
請求項１において、前記識別子が前記プリンタによって発生されることを特徴とする方法。
【請求項１８】
請求項１において、更に、前記第二グラフィックオブジェクトが前記第一グラフィックオブジェクトと一致する場合に前記プリンタドライバが前記プリンタへ繰返しコマンドを送信することを特徴とする方法。
【請求項１９】
請求項１において、前記上書き要素が位置要素を包含していることを特徴とする方法。
【請求項２０】
請求項１において、前記上書き要素がカラー要素を包含していることを特徴とする方法。
【請求項２１】
請求項１において、前記上書き要素がスケール要素を包含していることを特徴とする方法。
【請求項２２】
請求項１において、前記上書き要素が変換要素を包含していることを特徴とする方法。
【請求項２３】
請求項１において、前記上書き要素がクリッピングパス要素を有していることを特徴とする方法。
【請求項２４】
請求項１において、各グラフィックオブジェクトがオペレーティングシステムを介して前記アプリケーションプログラムから受取られ且つ前記オペレーティングシステムが各グラフィックオブジェクトに対して識別子を割当てることを特徴とする方法。
【請求項２５】
請求項１において、グラフィックオブジェクトがクリッピングパスを画定することを特徴とする方法。
【請求項２６】
請求項１において、グラフィックオブジェクトが寄せ集めたクリッピングパスを画定することを特徴とする方法。
【請求項２７】
請求項１において、請求項１の各ステップが前記アプリケーションプログラムの外部であり、それと独立しているプリンタドライバによって実施されることを特徴とする方法。
【請求項２８】
請求項１において、請求項１の各ステップが前記アプリケーションプログラムの外部であり且つそれに従属する従属性プリンタドライバによって実施されることを特徴とする方法。
【請求項２９】
請求項１において、請求項１の各ステップが前記アプリケーションプログラムの内部であり且つそれに従属する内部プリンタドライバによって実施されることを特徴とする方法。
【請求項３０】
コンピュータシステムからプリンタへグラフィックオブジェクトを送信する装置において、前記グラフィックオブジェクトはコンピュータメモリ内に格納されている別のグラフィックオブジェクトとの比較に使用する少なくとも１個の第一要素と前記第一要素以外の要素で上書き可能な少なくとも１個の第二要素とを有しており、プログラム可能なプロセサをして、
アプリケーションプログラムから第一グラフィックオブジェクトを受取らせ、
前記第一グラフィックオブジェクトを前記コンピュータシステムへ結合されており前記プリンタと共用されていないコンピュータメモリ内に格納させ、
前記アプケーションプログラムから第二グラフィックオブジェクトを受取らせ、
前記第一グラフィックオブジェクトに対して前記第二グラフィックオブジェクトを比較させ、
前記第一グラフィックオブジェクトを前記プリンタへ送信させ、
前記第二グラフィックオブジェクトが前記第一グラフィックオブジェクトと一致する場合には、前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素と前記第二グラフィックオブジェクトの前記少なくとも１個の第二要素とを比較させ且つ前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素と異なる前記第二グラフィックオブジェクトの前記少なくとも１個の第二要素であって前記第一グラフィックオブジェクトの前記少なくとも１個の第二要素を上書きするための上書き要素と前記第一グラフィックオブジェクトを識別する識別子とを前記プリンタへ送信させ、一方、一致しない場合には、前記第二グラフィックオブジェクトを前記コンピュータメモリ内に格納させ且つ前記第二グラフィックオブジェクトを前記プリンタへ送信させる、
上記各プログラム命令を格納するコンピュータによって読取可能な格納媒体が設けられていることを特徴とする装置。
【請求項３１】
請求項３０において、前記プログラム命令がプリンタドライバ内に設けられていることを特徴とする装置。
【請求項３２】
請求項３０において、更に、プログラム可能なプロセサをして、前記第二グラフィックオブジェクトが前記第一グラフィックオブジェクトと一致しない場合には、
前記第一グラフィックオブジェクトに加えて前記第二グラフィックオブジェクトを前記コンピュータメモリ内に格納させ、
前記アプケーションプログラムから第三グラフィックオブジェクトを受取らせ、
前記第二グラフィックオブジェクトを前記プリンタへ送信させ且つ前記第三グラフィックオブジェクトが前記コンピュータメモリ内に格納されているグラフィックオブジェクトのいずれとも一致しない場合には前記第三グラフィックオブジェクトを前記コンピュータメモリ内に格納させ、一方、前記第三グラフィックオブジェクトが前記コンピュータメモリ内に格納されているグラフィックオブジェクトのうちの１つと一致する場合には前記プリンタに対して一致するグラフィックオブジェクトを識別する識別子を送信させる、
べく動作可能なプログラム命令が前記格納媒体上に格納されていることを特徴とする装置。
【請求項３３】
請求項３２において、請求項３２の各プログラム命令が１頁内の各グラフィックオブジェクトに対して繰返し実行されることを特徴とする装置。
【請求項３４】
請求項３０において、グラフィックオブジェクトがタイプを有しており、且つプログラム可能なプロセサをして、
前記第二グラフィックオブジェクトのタイプを認識させ、
前記第二グラフィックオブジェクトのタイプに従って前記第二グラフィックオブジェクトを前記第一グラフィックオブジェクトと比較するための複数個の比較プロセスのうちの１つを選択させ、
前記選択した比較プロセスを適用して前記第一グラフィックオブジェクトと前記第二グラフィックオブジェクトとが同一のタイプである場合には前記第一グラフィックオブジェクトと前記第二グラフィックオブジェクトとを比較させる、
べく動作可能な各プログラム命令が前記格納媒体上に格納されていることを特徴とする装置。
【請求項３５】
請求項３０において、更に、プログラム可能なプロセサをして、
前記コンピュータシステムにおいてプリンタメモリがどのようにして使用されるかを予測させ、
前記予測が前記プリンタが前記プリンタメモリから対応するグラフィックオブジェクトを削除することを表わす場合に前記コンピュータメモリからグラフィックオブジェクトを削除させる、
べく動作可能な上記各プログラム命令が前記格納媒体上に格納されていることを特徴とする装置。
【請求項３６】
請求項３０において、１頁の終わりが前記プリンタへ送信される場合に前記コンピュータメモリから前記グラフィックオブジェクトを削除することを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プリンタに対して繰返されているグラフィックオブジェクトを送信する技術に関するものである。
【０００２】
【従来の技術】
電子文書は、しばしば、同一のグラフィックオブジェクトの複数個のコピーを包含している。一般的な例はフォントである。例えばマイクロソフト（商標）ウインドウズ９５等の従来のオペレーティングシステム及びプリンタドライバは、典型的に、キャラクタの送信を最適化するための定義されたプロセスを有している。然しながら、電子文書は、又、しばしばその他のラスター又はベクトルオブジェクトの複数個のコピーを包含している。従来のプリンタドライバは、典型的に、これらのグラフィックオブジェクトに対して送信の最適化を実施するものではない。
【０００３】
プリンタをして繰返しグラフィックオブジェクトを描画させるために、アプリケーションプログラムは、典型的に、オペレーティングシステムに対して繰返される「描画用」コールを行う。各繰返される描画コールは異なる座標又はその他の属性を有する場合がある。オペレーティングシステムは各コールをプリンタドライバへ送信し、該プリンタドライバは該グラフィックオブジェクトを例えば用紙等の媒体上にレンダリングするための要求をプリンタへ送信する。従って、プリンタドライバは同一のグラフィックオブジェクトをプリンタに対して繰返し送信する。
【０００４】
従来のプリンタは、典型的に、グラフィックオブジェクトが受取られるとそれを格納する。プリンタドライバが同一のグラフィックオブジェクトをこのようなプリンタへ繰返し送信する場合には、プリンタは、典型的に、同一のグラフィックオブジェクトの複数個のコピーを格納する。これらのコピーを格納することが可能であるためには、プリンタは非常に長いメモリを必要とする。
【０００５】
更に、プリンタへの各送信は、典型的に、送信されるデータの量に比例する時間を必要とする。プリンタドライバがプリンタに対して大きなグラフィックオブジェクトを繰返し送信する場合には、大量の時間が消費される場合がある。
【０００６】
【発明が解決しようとする課題】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、グラフィックオブジェクトをプリンタへ送信する改良した技術を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、グラフィックオブジェクトをプリンタへ送信する技術を実現する装置及び方法を提供している。一般的に、１つの側面においては、本発明によれば、アプリケーションプログラムから第一グラフィックオブジェクトを受取り、該第一グラフィックオブジェクトをコンピュータシステムへ結合されておりプリンタと共用されていないコンピュータメモリ内に格納し、該アプリケーションプログラムから第二グラフィックオブジェクトを受取り、該第二グラフィックオブジェクトを該第一グラフィックオブジェクトと比較し、該第一グラフィックオブジェクトをプリンタへ送信し、且つ該第二グラフィックオブジェクトが該第一グラフィックオブジェクトと一致する場合には該第一グラフィックオブジェクトを識別する識別子をプリンタへ送信し且つそうでない場合には該第二グラフィックオブジェクトを該コンピュータメモリ内に格納し且つ該第二グラフィックオブジェクトをプリンタへ送信することを特徴としている。
【０００８】
本発明を実施することによって得られる利点としては以下のようなものがある。プリンタ上のメモリの回避可能な使用が取除かれている。同一のオブジェクトが繰返し発生する文書を迅速にプリンタへ送信することが可能である。本発明の１つ又はそれ以上の実施例の詳細については添付の図面を参考に以下に説明する。
【０００９】
【発明の実施の形態】
本発明は、各繰返しの発生と共にグラフィックオブジェクト全体を送ることなしにグラフィックオブジェクトが繰返し発生する度に印刷装置へ送信する方法及び装置を提供している。図１に示したように、コンピュータシステム１００上で稼動するプログラムがプリンタ１２０上でプリント即ち印刷すべき頁を送る。該コンピュータシステムは例示的なアプリケーションプログラム１０５、オペレーティングシステム１１０、プリンタドライバ１１５を稼動させるコンピュータを有している。コンピュータ１０２は該コンピュータ上で稼動するアプリケーションプログラム及びプリンタドライバを包含するプログラムによってデータを格納するために使用することの可能な種々の種類のメモリ装置を有することが可能である。このようなメモリ装置としては、ランダムアクセスメモリ（ＲＡＭ）、局所的に接続されている磁気ディスクドライブ、例えば１０Ｂａｓｅ−Ｔ又は１００Ｂａｓｅ−Ｔイーサネット接続等の高速リンクによってコンピュータへ接続されているサーバー上の磁気ディスクドライブ等がある。コンピュータ１０２上で稼動するプログラムによって局所的格納部として使用することの可能なこのようなメモリ装置又はメモリサブシステムは、一般的に、コンピュータメモリ１１７として言及する。
【００１０】
動作について説明すると、アプリケーションプログラム１０５がプリンタ１２０用のグラフィックオブジェクトを発生する。グラフィックオブジェクトをプリント即ち印刷するために、アプリケーションプログラム１０５はグラフィックオブジェクトを包含する出力を該オブジェクトをプリントするための要求と共にオペレーティングシステム１１０へパスする。オペレーティングシステム１１０はそのプリント要求を受取り且つそのグラフィックオブジェクトをプリンタドライバ１１５へパスする。プリンタドライバ１１５はアプリケーションプログラム１０５の外部であり且つそれと独立した汎用ドライバである。換言すると、該プリンタドライバはアプリケーションプログラム内部のものではなく、又例えばアプケーションプログラム１０５と関連するライブラリにおけるサブルーチンのような特定のアプケーションプログラムと共に動作し且つそれをサポートするように設計されているアプケーションに特定のドライバでもない。
【００１１】
プリンタドライバ１１５は、以下に説明する如く、受取ったグラフィックオブジェクトをコンピュータメモリ１１７内に格納されているいずれかのグラフィックオブジェクトと比較する。プリンタドライバ１１５はグラフィックオブジェクト又はそのグラフィックオブジェクトを識別する識別子と共にプリント要求をプリンタ１２０へ送る。
【００１２】
図２に示したように、プリンタへグラフィックオブジェクトを送信するプロセス２００において、プリンタドライバはアプケーションプログラムからグラフィックオブジェクトを受取る（ステップ２０５）。該グラフィックオブジェクトは例えばラスターオブジェクト（例えば、ビットマップ）、ベクトルオブジェクト、又はクリッピングパスを画定するクリッピングオブジェクト等のタイプに従って定義されている。プリンタドライバは、図１に示した如く、直接的に又はオペレーティングシステムを介してアプケーションプログラムから該グラフィックオブジェクトを受取ることが可能である。プリンタドライバは受取ったグラフィックオブジェクトをプリンタドライバによってコンピュータメモリ内に格納されている各グラフィックオブジェクトと比較する（ステップ２１０）。
【００１３】
グラフィックオブジェクトは１個又はそれ以上の要素を有している。１つの要素は該オブジェクトのタイプを定義する。オブジェクトの異なるタイプは異なる要素を有することが可能である。ラスターオブジェクトの要素はデータ寸法、カラー深さ、１個又はそれ以上のビットの深さの１個又はそれ以上のピクセルを有することが可能である。ベクトルオブジェクトの要素はデータ寸法及び該オブジェクトの形状を画定する１個又はそれ以上の点を有することが可能である。要素の付加的な例としては、位置、カラー、スケールがある。オブジェクトのビットはビットごとの比較のための要素として使用することが可能である。プリンタドライバはオブジェクトの各タイプに対して比較を行うためにどの要素が必要とされるかを表わすテーブルへアクセスする。テーブルを定義する場合に、再送を回避することによって節約が得られるのに充分に大きなものである要素を選択することが効果的である。プリンタドライバが２つのオブジェクトを比較する場合には、プリンタドライバは所要の要素を比較してそれらのオブジェクトが一致するか否かを決定する。オブジェクトの残りの要素は上書き要素である。プリンタドライバはオブジェクトが一致するか否かを決定するために上書き要素を比較することはない。オブジェクトの上書き要素はそのオブジェクトがメモリ内に前に格納されている別のオブジェクトと一致する場合にプリンタへ識別子と共に送られる。オブジェクトのマッチングを行う比較プロセスを図３を参照して後に説明する。
【００１４】
受取ったグラフィックオブジェクトがコンピュータメモリ内に格納されているグラフィックオブジェクトと一致する場合には、プリンタドライバはその受取ったグラフィックオブジェクトに対して識別子を割当て且つその識別子をプリンタへ送信する（ステップ２２０）。プリンタドライバは該識別子と共にその受取ったグラフィックオブジェクトの上書き要素を送信する。一方、プリンタドライバはその受取ったグラフィックオブジェクトの上書き要素をマッチングする格納されているグラフィックオブジェクトの上書き要素と比較し且つマッチングする格納されているグラフィックオブジェクトの上書き要素と異なる該受取ったグラフィックオブジェクトの上書き要素のみを送信する。送信された上書き要素はプリタメモリ内に格納されている識別されたグラフィックオブジェクトの対応する要素を上書きする。
【００１５】
簡単な例を上げると、メモリ内に格納されているグラフィックオブジェクトは第一位置に位置している円である場合があり且つ受取ったグラフィックオブジェクトは第二位置に位置している円である場合がある。プリンタドライバは受取ったグラフィックオブジェクトと格納されているグラフィックオブジェクトとが一致することを認識し、即ちそれらの所要の要素が同一であることを認識するが、オブジェクトの位置を示す要素は異なっている。プリンタドライバは受取ったグラフィックオブジェクトの位置を表わす上書き要素と共に、格納されているグラフィックオブジェクト、即ち第一位置における円に対する識別子を送信する。それに応答して、プリンタは第二位置において円をプリント即ち印刷する。
【００１６】
プリンタドライバによって送られる識別子はプリンタドライバによって発生させることが可能である。一方、識別子はコンピュータシステム内の他の場所で発生させ且つプリンタドライバへパスし次いでプリンタへパスさせることが可能である。更に別の方法においては、識別子はプリンタによって発生させ且つプリンタドライバへ送信することが可能である。
【００１７】
受取ったグラフィックオブジェクトがプリンタドライバによって格納されているいずれのグラフィックオブジェクトとも一致しない場合には、プリンタドライバはその受取ったグラフィックオブジェクトをコンピュータメモリ内に格納する（ステップ２２５）。プリンタドライバは受取ったグラフィックオブジェクトをプリンタへ送信し、その場合にオブジェクトの要素全てが包含される（ステップ２３０）。グラフィックオブジェクトと共に、プリンタドライバはプリンタをして該受取ったグラフィックオブジェクトをプリンタのメモリ内に格納させるための命令を送信する（ステップ２３５）。
【００１８】
プリンタドライバはどのようにしてプリンタメモリが使用されるかを予測するためにプリンタの動作及びプリンタメモリのモデルを維持する。プリンタドライバはプリンタ内の使用可能なメモリを管理するために該モデルをアップデート即ち更新する。グラフィックオブジェクトがコンピュータメモリ内に格納され且つプリンタのメモリ内に格納されると、プリンタドライバはプリンタメモリ内の残りのメモリをモニタする。プリンタメモリが該受取ったグラフィックオブジェクトを格納するため（又は別のグラフィックオブジェクトを格納するため）に充分な残りの空間を有するものでない場合には、プリンタはプリンタメモリからオブジェクトを削除する。該モデルが、プリンタメモリが満杯であり且プリンタがプリンタメモリから１個又はそれ以上のグラフィックオブジェクトを削除することを示す場合には、プリンタドライバはコンピュータシステムのコンピュータメモリから対応するオブジェクトを削除する（ステップ２４０）。一方、プリンタドライバはプリンタをしてプリンタメモリから１個又はそれ以上のグラフィックオブジェクトを削除させるためにプリンタへ命令を送り且つコンピュータメモリから対応するグラフィックオブジェクトを削除する。更に別法においては、プリンタが頁毎にオブジェクトを格納し、且つ削除し、且つ該モデルは頁の終わり及びプリンタメモリからのオブジェクトの削除を表わす。プリンタメモリからの削除の表示に応答して、プリンタドライバはコンピュータメモリから対応するグラフィックオブジェクトを削除する。
【００１９】
図３に示したように、比較プロセス２１０において、プリンタドライバは受取ったグラフィックオブジェクトのタイプを認識する（ステップ３０５）。プリンタドライバは該受取ったグラフィックオブジェクトのタイプに対応する比較プロセスを選択する（ステップ３１０）。上述した如く、プリンタドライバは該受取ったグラフィックオブジェクトのタイプに対応する比較プロセスに対して必要とされる要素を表わすテーブルへアクセスする。次いで、プリンタドライバは該選択された比較プロセスを繰返し適用して、該受取ったグラフィックオブジェクトが格納されているグラフィックオブジェクトのいずれかと一致するか否かを決定する（ステップ３１５）。
【００２０】
図４に示したように、受取ったグラフィックオブジェクトがラスターオブジェクトである場合の比較プロセス３１５の適用例において、プリンタドライバは、最初に、受取ったグラフィックオブジェクトのタイプ要素とコンピュータメモリ内に格納されているオブジェクトのタイプ要素とを比較する（ステップ４０２）。これらのタイプ要素が同一でない場合には、それらのオブジェクトは同一のタイプではなく且つ一致することはない（ステップ４０４）。上述した如く、プリンタドライバはオブジェクトの所要の要素を比較する。オブジェクトの上書き要素はオブジェクトが一致するか否かを決定するために比較されることはない。従って、プリンタドライバはラスターオブジェクトに対する所要の要求の各々を比較する。プリンタドライバは受取ったグラフィックオブジェクトのデータ寸法要素を格納されているオブジェクトのデータ寸法要素と比較する（ステップ４０５）。それらが同一でない場合には、プリンタドライバは、それらのオブジェクトが一致するものでないことを認識する（ステップ４０４）。それらが同一である場合には、プリンタドライバは受取ったグラフィックオブジェクトのカラー深さ要素を格納されているグラフィックオブジェクトのカラー深さ要素と比較する（ステップ４１０）。それらのカラー深さが同一である場合には、プリンタドライバはそれら２つのオブジェクトの各ピクセルを比較する（ステップ４１５）。いずれかのピクセルが異なるものである場合には、それらのオブジェクトは一致するものではない（ステップ４０４）。それらのオブジェクトのピクセルが同一である場合には、プリンタドライバは受取ったグラフィックオブジェクトの所要の要素の各ビットを格納されているグラフィックオブジェクトの所要の要素の対応するビットと比較する（ステップ４２０）。それらのビットが同一である場合には、プリンタドライバは、それらのオブジェクトが一致することを認識する（ステップ４２５）。該ビットのいずれかが異なるものである場合には、プリンタドライバは、それらのオブジェクトが一致するものではないことを認識する（ステップ４０４）。
【００２１】
別の実施形態においては、ラスターオブジェクトの比較は、図４に示したステップのシーケンスのサブセットを包含することが可能であり、多分、異なる順番のものとすることが可能である。例えば、別の実施例においては、プリンタドライバは、最初に、オブジェクトのデータ寸法要素を比較する。それらのデータ寸法が同一である場合には、プリンタドライバはそれらのオブジェクトの所要の要素の各ビットを比較する。この場合において、その比較プロセスは図４に示したステップ４１０及び４１５を包含するものではない。別の実施例においては、ラスターオブジェクト用の比較プロセスは図４に示したものと異なるステップを包含するものであり、例えば各オブジェクトにおけるピクセル数又は境界要素の比較を行う。
【００２２】
図５に示したように、ベクトルオブジェクトに対する比較プロセス３１５の適用例において、プリンタドライバはベクトルオブジェクトのタイプを比較する（ステップ５０２）。それらのタイプが同一でない場合には、ベクトルオブジェクトが一致することはない（ステップ５０４）。それらのベクトルオブジェクトのタイプが同一である場合には、プリンタドライバはベクトルオブジェクトを画定する点を比較する（ステップ５０５）。それらの点が同一である場合には、プリンタドライバは、それらのオブジェクトが一致することを認識する（ステップ５１０）。それらの点が同一でない場合には、プリンタドライバは、それらのオブジェクトが一致するものでないことを認識する（ステップ５０４）。
【００２３】
別の実施例においては、ベクトルオブジェクトは変換要素である上書き要素を有している。この変換要素は、オブジェクトが所要の要素によって定義される形状のアフィン変換であることを表わす。従って、アフィン変換によって同一の形状を有する２つのオブジェクトは一致する。何故ならば、その形状は所要の要素によって定義され且つ該変換要素は上書き要素だからである。簡単な例においては、第一オブジェクトが半径が５である円であり且つ第二オブジェクトが半径が１０である円である場合に、プリンタドライバは、それらのオブジェクトがスケールのアフィン変換が行われた場合に一致することを認識する。第二オブジェクトの変換要素は上書き要素としてプリンタへパスされる。
【００２４】
別の実施例においては、プリンタドライバは単一比較プロセスを概略的に全てのオブジェクトに対して適用する。プリンタドライバは単一のタイプのオブジェクトのみの送信を最適化し、従って、単一比較プロセスを全てのオブジェクトに対して適用するように構成されている。この場合においては、タイプ要素は必要ではない。１実施例においては、プリンタドライバはオブジェクトのデータ寸法要素を比較し、次いで、オブジェクトのビットを比較する。この比較は、又、共通の所要の要素を有するオブジェクトの複数個のタイプに対して効果的である。更に別の実施例においては、プリンタドライバはオブジェクトの各点を比較して一致を決定する。このことは、全てのグラフィックオブジェクトがベクトルオブジェクトである場合のシステムに対して効果的である。別の実施例においては、プリンタドライバは上述した如くアフィン変換が行われるオブジェクトを比較する。
【００２５】
上述した如く、変形実施例における比較プロセスは複雑性が異なる。図４に示した比較プロセスは４つの比較を包含しており、一方図５に示した比較プロセスは１個の比較を包含している。比較プロセスはオブジェクトのマッチングの最適化させた認識に対して複雑な手順とすることが可能であり、又はプリンタドライバのプログラムコードにおける簡単なインラインステートメントとすることが可能である。
【００２６】
図６に示したように、付加的な変形実施例は、グラフィックオブジェクトを図１に示したようなコンピュータシステムにおけるプリンタへ送信するためのリニアプロセス６００を使用する。プリンタドライバはアプリケーションプログラムから第一オブジェクトを受取る（ステップ６０５）。プリンタドライバはその第一オブジェクトをコンピュータメモリ内に格納する（ステップ６１０）。プリンタドライバは第一グラフィックオブジェクトをプリンタへ送信することを繰り延べる。プリンタドライバは第二グラフィックオブジェクトを受取る（ステップ６１５）。次いで、プリンタドライバはメモリ内に格納されている第一グラフィックオブジェクトを第二グラフィックオブジェクトと比較する（ステップ６２０）。適応される比較プロセスは、上述したプロセスのうちの１つとすることが可能である。
【００２７】
第一グラフィックオブジェクト及び第二グラフィックオブジェクトが一致する場合には（ステップ６２５）、プリンタは第一グラフィックオブジェクトをプリタへ送信する（ステップ６３０）。次いで、プリンタドライバはストアコマンドをプリンタへ送信する（ステップ６３５）。ストアコマンドはプリンタをして第一オブジェクトをプリンタのメモリ内に格納させる。第一オブジェクト及びストアコマンドは単一データシーケンスとして一緒に送るか又は直列的に送ることが可能である。一方、プリンタはオブジェクトが受取られる場合にそれを格納し、従って、プリンタドライバはストアコマンドをプリンタへ送ることはない。次いで、プリンタドライバは第一オブジェクトの要素と異なる第二オブジェクトの要素と共にリピート（繰返し）コマンドを送信する（ステップ６４０）。一方、プリンタドライバは第二オブジェクトの全ての上書き要素をプリンタへ送信する。リピートコマンドは、プリンタをして、最後に受取ったオブジェクトを再度プリントさせる。一方、プリンタドライバは第一グラフィックオブジェクトに対して識別子を割当て且つ上述した如くリピートコマンドの代わりにその識別子を送信する。リピートコマンドに付随する任意の要素はプリンタによって受取られた最後のオブジェクトの要素を上書きする。従って、プリンタは送信された要素に従って第一オブジェクトを再度プリント即ち印刷する。このプロセス６００は、該グラフィックオブジェクトの各相次ぐ繰返しに対してリピートコマンドと対応する要素とがプリンタへ送信される場合に繰返すことが可能である。
【００２８】
第一オブジェクトと第二オブジェクトとが一致しない場合には（ステップ６２５）、プリンタドライバは第一オブジェクトをプリンタへ送信する（ステップ６４５）。プリンタドライバは第二オブジェクトをコンピュータメモリ内に格納する（ステップ６５０）。このプロセス６００は、上述したプロセスにおいて第二オブジェクトが第一オブジェクトを置換する後のオブジェクトに対して繰返すことが可能である。プロセス６００において、単一オブジェクトがコンピュータメモリ及びプリンタのメモリ内に任意の与えられた時間において格納される。従って、１頁又はより大きな非連続的なオブジェクトのシーケンスにわたって繰返す場合のオブジェクトに対して、連続して繰返すオブジェクトに対してメモリ及び送信効率における節約が得られる。別の実施例においては、プリンタドライバは、第一及び第二グラフィックオブジェクトを比較する前に、第一グラフィックオブジェクトをプリンタへ送信する。
【００２９】
別の実施例においては、プリンタドライバによって比較され且つ送信されたグラフィックオブジェクトは寄せ集められたクリッピングパスである。アプリケーションプログラムがクリッピングパスの断片をプリンタドライバへ送り且つプリンタドライバはそれらの断片を寄せ集めて単一のクリッピングパスとさせる。この実施例においては、寄せ集められたクリッピングパスはグラフィックオブジェクトが上述したように取扱われるのと同一の態様で取扱われる。プリンタドライバは、少なくともクリッピングパスの全ての断片が受取られるまで、第一の寄せ集めたクリッピングパスグラフィックオブジェクトを送信することを繰り延べる。プリンタドライバは、第一及び第二の寄せ集めたクリッピングパスを比較する後まで、第一の寄せ集めたクリッピングパスを送信することを繰り延べる。別法として、上述した如く、プリンタドライバは、第一の寄せ集めたクリッピングパスを送信することを繰り延べることはない。
【００３０】
図７はコンピュータシステム１００の１実施例を示している。コンピュータ１０２はモニタと、処理要素と、格納要素と、ユーザ入力要素とを有するワークステーションとすることが可能である。コンピュータ１０２は、ケーブル７１５によってプリンタ１２０へ接続することが可能である。プリンタ１２０は、それが少なくとも１個のグラフィックオブジェクトを格納することの可能なプリンタメモリを有する限りに、多種類の従来のプリンタのうちのいずれかとすることが可能である。一方、該プリンタメモリをプリンタ１２０へ接続することが可能であるが、物理的にプリンタ１２０の外部とすることが可能である。コンピュータ１０２とプリンタ１２０との間のデータリンクは単一方向又は双方向とすることが可能である。
【００３１】
本発明は、デジタル電子回路において、又はコンピュータハードウエア、ファームウエア、ソフトウエア、又はそれらの組合わせで実現することが可能である。本発明装置は、プログラム可能なプロセサによって実行するために機械読取可能な格納装置に格納させたコンピュータプログラム製品の形で実現することが可能であり、且つ本発明の方法ステップは、入力データに関して動作を行い且つ出力を発生することによって、本発明の機能を実行する命令からなるプログラムを実行するプログラム可能なプロセサによって実行することが可能である。本発明は、データ格納システムからデータ及び命令を受取り且つそれへデータ及び命令を送信すべく結合されている少なくとも１個のプログラム可能なプロセサと、少なくとも１個の入力装置と、少なくとも１個の出力装置とを具備するプログラム可能なシステム上で実行可能な１つ又はそれ以上のコンピュータプログラムの形態で実現することが可能である。各コンピュータプログラムは、ハイレベル手順又はオブジェクト指向型プログラミング言語で実現することが可能であり、又は所望により、アッセンブリ言語又はマシン言語で実現することが可能であり、且つ、いずれの場合においても、言語はコンパイル型又はインタプリタ型の言語とすることが可能である。適宜のプロセサとしては、例えば、汎用及び特別目的マイクロプロセサの両方を包含している。一般的に、プロセサはリードオンリメモリ及び／又はランダムアクセスメモリから命令とデータとを受取る。コンピュータプログラム命令及びデータを格納するのに適した格納（記憶）装置としては、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ装置等の半導体メモリ装置を包含する全ての形態の非揮発性メモリ、内蔵ハードディスク及び着脱自在ディスク等の磁気ディスク、ＭＯディスク、ＣＤ−ＲＯＭディスク等がある。前述したもののいずれかがＡＳＩＣ（応用特定集積回路）によって補充されるか又はその中に組込むことが可能である。
【００３２】
ユーザとの対話を与えるために、本発明は、ユーザに対して情報を表示するためのモニタ又はＬＣＤスクリーン等のディスプレイ装置と、ユーザがコンピュータシステムに対して入力を与えることが可能なキーボード及びマウス又はトラックボール等のポインティング装置とを具備するコンピュータシステム上で実現することが可能である。該コンピュータシステムは、それを介してコンピュータプログラムがユーザと対話するグラフィカルユーザインターフェースを提供すべくプログラムすることが可能である。
【００３３】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。例えば、プリンタは、図２に示したようにケーブルを介して直接的に又はネットワークを介してコンピュータシステムへ接続することが可能である。本発明技術は、アプリケーションプログラム内部又はそれと特別に関連するプリンタドライバにおいて実現することが可能である。更に、本発明技術は、プリンタ用のプリンタドライバの代わりにディスプレイアダプタ用のディスプレイドライバにおいて実現することが可能である。
【図面の簡単な説明】
【図１】  本発明に基づくプリンタドライバとプリンタとを有するコンピュータシステムを示した概略ブロック図。
【図２】  プリンタドライバの動作を示したフローチャート。
【図３】  オブジェクトを比較するプロセスを示したフローチャート。
【図４】  ラスターオブジェクトを比較するプロセスを示したフローチャート。
【図５】  ベクトルオブジェクトを比較するプロセスを示したフローチャート。
【図６】  別のプリンタドライバのリニアプロセスを示したフローチャート。
【図７】  プリンタへ接続されているコンピュータシステムを示した概略図。
【符号の説明】
１００  コンピュータシステム
１０２  コンピュータ
１０５  アプリケーションプログラム
１１０  オペレーティングシステム
１１５  プリンタドライバ
１２０  プリンタ
【図１】
0004469036.tif 000002
【図２】
0004469036.tif 000003
【図３】
0004469036.tif 000004
【図４】
0004469036.tif 000005
【図５】
0004469036.tif 000006
【図６】
0004469036.tif 000007
【図７】
0004469036.tif 000008