JPH0798636A - 分解能を自動的に低下させる装置及び方法 - Google Patents
分解能を自動的に低下させる装置及び方法Info
- Publication number
- JPH0798636A JPH0798636A JP22202293A JP22202293A JPH0798636A JP H0798636 A JPH0798636 A JP H0798636A JP 22202293 A JP22202293 A JP 22202293A JP 22202293 A JP22202293 A JP 22202293A JP H0798636 A JPH0798636 A JP H0798636A
- Authority
- JP
- Japan
- Prior art keywords
- data file
- printer
- bitmap data
- resource
- primitives
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1296—Printer job scheduling or printer resource handling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1211—Improving printing performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1247—Job translation or job parsing, e.g. page banding by conversion to printer ready format
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1801—Input data handling means
- G06K15/1822—Analysing the received data before processing
- G06K15/1823—Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1859—Generation of the printable image characterized by its workflow involving data processing distributed amongst different data processing apparatus
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1848—Generation of the printable image
- G06K15/1856—Generation of the printable image characterized by its workflow
- G06K15/1861—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time
- G06K15/1865—Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time by compressing the rasterized print data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/40—Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
- G06K15/4005—Sharing resources or data with other data processing systems; Preparing such data
- G06K15/402—Sharing data concerning the arrangement's configuration or current state
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0005—Accepting output data; Preparing data for the controlling system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K2215/00—Arrangements for producing a permanent visual presentation of the output data
- G06K2215/0002—Handling the output data
- G06K2215/0062—Handling the output data combining generic and host data, e.g. filling a raster
- G06K2215/0065—Page or partial page composition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Record Information Processing For Printing (AREA)
- Image Generation (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 ホストコンピュータとプリンタ間の通信を実
効的なものとして、リソースの利用度を最大にする。 【構成】 ホストコンピュータ202とプリンター21
8が情報とデータ処理デューティを共有している。ホス
トコンピュータは、プリンタがリアル時間でドロープリ
ミティブをレンダリングし得るかどうかを判断でき、リ
ソースアセンブラは、個々のドロープリミティブを実行
するためのコストをバンド内に計算し、そのバンドが、
プリンタにとってリアル時間でレンダリングするのに複
雑すぎる場合は、プリンタ又は、ホストコンピュータが
レンダリングして、そのビットマップをプリンタに送信
する。ホストコンピュータは、プリンタがそのデータフ
ァイルを記憶できない場合には、ファイルは圧縮され
る。これを記憶できない場合は、ホストコンピュータ
は、必要ならば、記憶できるまで、2つのステージで分
解能を減少させ、減少されたことをユーザに通知するメ
ッセージを表示する。
効的なものとして、リソースの利用度を最大にする。 【構成】 ホストコンピュータ202とプリンター21
8が情報とデータ処理デューティを共有している。ホス
トコンピュータは、プリンタがリアル時間でドロープリ
ミティブをレンダリングし得るかどうかを判断でき、リ
ソースアセンブラは、個々のドロープリミティブを実行
するためのコストをバンド内に計算し、そのバンドが、
プリンタにとってリアル時間でレンダリングするのに複
雑すぎる場合は、プリンタ又は、ホストコンピュータが
レンダリングして、そのビットマップをプリンタに送信
する。ホストコンピュータは、プリンタがそのデータフ
ァイルを記憶できない場合には、ファイルは圧縮され
る。これを記憶できない場合は、ホストコンピュータ
は、必要ならば、記憶できるまで、2つのステージで分
解能を減少させ、減少されたことをユーザに通知するメ
ッセージを表示する。
Description
【産業上の利用分野】本発明はコンピュータシステムを
用いて印刷する装置及び方法に関する。
用いて印刷する装置及び方法に関する。
【従来の技術】コンピュータシステムは大量のデータを
コンパイルし、処理するために高度に有用である。近代
的なコンピュータシステムは図形画像を表示及び印刷可
能ならしめるグラフィックス能力を含むことが多い。本
文のページ及び図形画像の両者または何れか一方を印刷
するには、データをホストコンピュータが使用している
フォーマットから選択された特定のプリンタが使用して
いるフォーマットへ変換する必要がある。典型的には、
コンピュータデータはビットマップデータファイルに変
換され、このビットマップにおいては各ビットは印刷さ
れるページ上の1つのドットを表す。通常ビットマップ
はホストコンピュータ内で発生され、圧縮されたデータ
フォーマットでプリンタへ転送される。圧縮されたビッ
トマップはプリンタ内で復元されて印刷エンジンと、印
刷プロセスを制御する電子回路とに転送される。印刷エ
ンジンは、用紙の運動、トーナ、及び用紙を移動させる
機械的な駆動システムを制御するプリンタの一部であ
る。印刷エンジンはビットマップデータを受信し、それ
を適切な電圧に変換して印刷画像を作成する。印刷ペー
ジは絵素と呼ばれる個々のドットからなる。典型的なレ
ーザプリンタでは、インチ当たり300、600または
それ以上の絵素が存在することができる。通常各絵素
は、プリンタメモリ内の単一のデータビットによって表
される。レーザ印刷エンジンがある線を走査するにつれ
てその線に対応するデータビットが読出され、そのメモ
リ位置内に記憶されているデータビットの論理レベルに
依存してレーザビームはオン/オフされる。解像力が3
00 絵素/インチである場合、あるページ全部のビッ
トマップデータファイルを記憶するにはプリンタは約1
メガバイトのメモリを必要とする。若干のレーザプリン
タは大きいメモリを含んでおり、ページモードで作動す
る。これはプリンタがページ全体のデータをビットマッ
プ形状で記憶できることを意味する。ページ全体をビッ
トマップ形状で記憶するのに必要なメモリは大容量にな
るから、必要なメモリの量を減少させるために若干のプ
リンタはバンディング(banding)モードを使用
している。バンディングモード能力を有するプリンタ
は、印刷ページをバンドと称する複数の水平セグメント
に細分する。プリンタは一時に1つのバンドに関するビ
ットマップデータだけを受け入れるので、メモリに対す
る要求は低減される。プリンタは第1のバンドに関する
データを処理した後に限って第2のバンドに関するデー
タを受け入れることができる、等々のようになってい
る。例えば、もし印刷ページを4つのバンドに細分すれ
ば、プリンタはそのページの全ビットマップデータの1
/4 だけを記憶すればよいのでメモリに対する要求も
1/4 に低減される。従来のホストコンピュータプリ
ンタシステムは、そのプリントエンジンが始動すると、
実時間でデータのページを処理することができない。あ
る従来のシステムは、できるだけ多くのデータ帯域を処
理しようとし、別のページにおけるデータの次の帯域を
プリントしている。その他のプリンタは、なにもプリン
トせず、そのページに対するデータを変更しまたはその
プリンタによって使用される解像度を変更するのにユー
ザが手動的に介在する必要がある。コンピュータ・プリ
ンタシステムの設計は、2つの基本的な目的の達成を含
んでいる。第1の目的は装置独立性である。特定のホス
トコンピュータのシステム制約からプリンタを独立させ
るために、製造業者及びプログラマはプリンタ駆動装置
が汎用になるように設計を重ねてきた。もし真の装置独
立性が得られれば、ホストコンピュータはプリンタイン
タフェースにどの型のプリンタが接続されているのかを
知る必要はない。典型的にはホストコンピュータは、直
列I/O ポートまたは並列I/O ポートのようなハ
ードウエアインタフェースを通してプリンタシステムに
データを伝送する。従来のコンピュータ・プリンタシス
テムでは、接続された特定のプリンタに対するホストの
知識を最小にし、それに代えてかなり要約されたデータ
ストリームに頼ることによって装置独立性を達成するこ
とを企図している。その結果、データストリームの転送
及び処理が不十分なペースまで低速になり、処理能力が
損なわれがちである。例えば、ホストコンピュータはあ
る文書の数ページのために必要な第1の文字フォントを
ダウンロードすることができる。特定の印刷タスクにお
いて数文字だけしか必要としない場合であっても、典型
的には従来のコンピュータシステムは全フォントをダウ
ンロードしている。第2のフォント集合(または第2の
フォント集合の一部)を必要とする場合には、ホストコ
ンピュータは第2の文字フォント全体をダウンロードす
る。第1のフォント集合を必要とする爾後のページを印
刷する時に使用される第1のフォント集合を維持する余
裕がプリンタメモリ内に存在している場合でも、その第
1のフォント集合が占めているメモリ空間内に第2のフ
ォント集合が書込まれる。プリンタ資源の現状をホスト
コンピュータに助言するためのプリンタからホストコン
ピュータへの通信は存在していない。第2の目的は、印
刷プロセスの性能の最適化である。レーザプリンタは、
単一のコンピュータに接続され一時に1または2ページ
の用紙を処理するような簡易なスタンドアローンプリン
タから、多重紙トレイとコンピュータ回路網に結合され
ている複雑な紙経路とを有し、複数のユーザのために多
くのページを同時に処理するような精緻なプリンタまで
多岐にわたっている。コンピュータシステムはどの型の
プリンタとも効率的に動作できるものでなければならな
い。不幸にも、これらの第1及び第2の目的は相反的で
ある。汎用両立性を得るための妥協の結果、コンピュー
タ・プリンタシステムのデータ処理は極めて低速である
ことが多い。更にホストコンピュータはそれに接続され
ているプリンタに関する若干の知識を有している。皮肉
にも、これら2つの目的を追求したために現在のコンピ
ュータ・プリンタシステムは両目的を達成し損なってい
るのである。ホストコンピュータは、それに接続されて
いるプリンタの型を知っており、しかも“汎用”プリン
タ駆動装置方式は低速で、非効率的なシステムをもたら
し、コンピュータ及びプリンタは有用なタスクを遂行す
ることなくページ誤り回復のような発生しないかも知れ
ない競合を解決するために貴重な計算時間を消費するこ
とが屡々である。例えば従来のコンピュータ・プリンタ
システムは、ある印刷ページがレーザプリンタ上の最後
のジャム(jam)センサを通過するまでそのページ全
体のビットマップデータファイルを保持する。ページジ
ャムが生じた場合でもデータは使用可能でありページは
迅速に再印刷することができる。しかしながら印刷プロ
セス中に用紙ジャムが発生することは比較的少ない。一
旦印刷エンジンがあるページの印刷を開始すると、その
ページが最後のジャムセンサを通過するためには約10
秒を要する。プリンタメモリからのビットマップデータ
ファイルがクリアされ、次のページを処理するまで、各
ページが最後のジャムセンサを通過するための余分な1
0秒を待機することによって、総合印刷プロセスはかな
り低速になる。従来のシステムはページ記述中の任意時
点に用紙サイズの選択を行うために、ページ全体が記述
されてしまうまで印刷エンジンへの紙送りをも遅延させ
る。例えばホストコンピュータはページ全体の記述を転
送することができ、最終記述ラインは欧字サイズの用紙
を選択することができる。もしユーザがページ記述の始
めに用紙サイズを選択することを要求すれば紙送りを遅
延させる必要はない。もしあれば、僅かな印刷タスクは
この要求によって阻害される。一般的にユーザは印刷プ
ロセスが開始される前に用紙サイズ及び印刷モード(即
ち、一方向または双方向)を知っている。従って、従来
のシステムは不要なオプションを提供することによって
貴重な時間を消費していたことになる。現在使用されて
いるプリンタ言語は、ドットマトリクスプリンタで使用
されるプリンタ言語から開発されたものである。ドット
マトリクスプリンタは未だに使用されてはいるが、レー
ザプリンタが広範に使用され始め、成長しつつある。し
かも、低速のドットマトリクスプリンタ向きのプリンタ
言語に僅かな変更を施すことによって、プリンタ言語を
増加しつつあるレーザプリンタの使用に対処するように
企図されてきた。この進展的な方策は、レーザプリンタ
において利用できる潜在的な計算能力の長所を採り入れ
てはいない。プリンタハードウエアが単純な“無言(d
umb)”プリンタからマイクロプロセッサによって制
御される精緻なレーザプリンタまで進展したにも拘わら
ず、従来のコンピュータ・プリンタシステムのシステム
アーキテクチャは殆ど変化していない。図1に示す典型
的な従来のコンピュータ・レーザプリンタシステムは、
プリンタ内にパーザとして知られる装置を有している。
パーザはホストコンピュータからデータのバイトを受
け、これらのデータのバイトを字句単位(トークン)に
編成する。これらの字句単位は有意味の語い文脈内に組
合わされたデータのストリームである。例えばあるデー
タストリームは、圧縮されたデータフォーマットで伝送
される2進ビットマップであることができる。通常2進
データは、如何にデータを処理するかをパーザに指令す
る見出し及び後書きを伴う。見出し/後書きはASCI
I バイトで伝送され、これらの各バイトはパーザによ
って処理されなければならない。パーザは全てのASC
II バイトを、一時に1バイトずつ受け入れ、処理し
なければならない。その結果、パーザはコンピュータ・
プリンタシステムにおける効率的なデータ流れに対する
隘路になっている。パーザはプリンタが受信したデータ
の全てのバイトを処理し、プリンタ内のメモリ内に表示
リストを作成する。表示リストは、その対象がページ上
の何処に位置しているかによって分類される。表示リス
ト内のビットマップは一般に非圧縮フォーマットで記憶
される。本文のような他の対象はかなり短命である。従
ってそのページの周囲を巡って走る単一の、単純な矩形
は一般的に1メガバイトの記憶容量を必要とする。イメ
ージャは表示リストを印刷エンジンに適するビットマッ
プデータファイルに変換する。このビットマップデータ
ファイルはフレームバッファ内に記憶され、印刷エンジ
ンへ伝送される。従来のコンピュータ・プリンタシステ
ムが非効率的である別の領域は、ページを非効率的な順
序で処理することである。もしプリンタが双方向モード
(ページの両側に印刷)で動作していれば、プリンタ内
のページが辿る紙経路は、ページの側1の前にページの
側2を印刷することを要求する。しかしながら、従来の
コンピュータ・プリンタシステムはページの側1を側2
の前に処理することを要求している。これは、ページの
側1を完全に処理し、ビットマップデータファイルとし
てプリンタメモリ内に記憶させることを意味する。次い
で、ページの側2が完全に処理されて印刷エンジンへ送
られる。これらの従来のシステムのフィロソフィは、最
初に側1が処理されるものとユーザが予測していること
である。しかしながら、実際にはユーザは、文書が完全
に印刷された時にページが適切な順序でプリンタトレイ
内に現れるであろうことを期待しているに過ぎない。ペ
ージがプリンタによって実際に印刷される順序以外の任
意の順序でホストコンピュータがページを処理すべきで
あるとする実質的な理由は存在しない。前述したよう
に、従来のシステムは近代的なレーザプリンタの利用可
能な潜在的計算能力を使用することにも失敗している。
古い設計の無言プリンタはデータバッファ及び印刷エン
ジンの域を殆ど出ていなかった。データ処理は全てホス
トコンピュータによって行われ、プリンタはドットマト
リクスデータを印刷していた。近代的なレーザプリンタ
はマイクロプロセッサ制御であり、ホストコンピュータ
に匹敵するような計算能力を有している。未だに従来の
システムは、プリンタがデータ処理を遂行する何等の能
力をも持たない無言プリンタとしてプリンタを取り扱う
傾向にある。これは、部分的には、前述したように装置
独立性を達成しようとする企図に起因する。他の従来の
システムは、実質的に全てのデータ処理に関する責をプ
リンタに負わせている。結果的には、ホストコンピュー
タとプリンタの混合された計算能力は効率的に使用され
てはおらず、総合印刷プロセスは非効率的なペースまで
低速化されている。ホストコンピュータとプリンタとの
間には殆ど通信がなされないので、ホストコンピュータ
及びプリンタはデータ処理のタスクを効率的に分担する
ことができない。一般的に従来のホストコンピュータは
実質的に全てのデータ処理を遂行するか、または実質的
に全くデータ処理を行わない。装置独立性を達成し、全
ての型のプリンタとの汎用動作を達成する試みは、ホス
トコンピュータとプリンタとが互いに効率的に通信しな
いために、潜在的な計算能力が活用されず、資源が浪費
されることから非効率的な印刷プロセスをもたらしただ
けである。従って、ホストコンピュータとプリンタとの
間に効率的な通信を許容し、資源の利用を最大にするよ
うなコンピュータ・プリンタシステムに対する大きい要
望が存在していることが理解されよう。
コンパイルし、処理するために高度に有用である。近代
的なコンピュータシステムは図形画像を表示及び印刷可
能ならしめるグラフィックス能力を含むことが多い。本
文のページ及び図形画像の両者または何れか一方を印刷
するには、データをホストコンピュータが使用している
フォーマットから選択された特定のプリンタが使用して
いるフォーマットへ変換する必要がある。典型的には、
コンピュータデータはビットマップデータファイルに変
換され、このビットマップにおいては各ビットは印刷さ
れるページ上の1つのドットを表す。通常ビットマップ
はホストコンピュータ内で発生され、圧縮されたデータ
フォーマットでプリンタへ転送される。圧縮されたビッ
トマップはプリンタ内で復元されて印刷エンジンと、印
刷プロセスを制御する電子回路とに転送される。印刷エ
ンジンは、用紙の運動、トーナ、及び用紙を移動させる
機械的な駆動システムを制御するプリンタの一部であ
る。印刷エンジンはビットマップデータを受信し、それ
を適切な電圧に変換して印刷画像を作成する。印刷ペー
ジは絵素と呼ばれる個々のドットからなる。典型的なレ
ーザプリンタでは、インチ当たり300、600または
それ以上の絵素が存在することができる。通常各絵素
は、プリンタメモリ内の単一のデータビットによって表
される。レーザ印刷エンジンがある線を走査するにつれ
てその線に対応するデータビットが読出され、そのメモ
リ位置内に記憶されているデータビットの論理レベルに
依存してレーザビームはオン/オフされる。解像力が3
00 絵素/インチである場合、あるページ全部のビッ
トマップデータファイルを記憶するにはプリンタは約1
メガバイトのメモリを必要とする。若干のレーザプリン
タは大きいメモリを含んでおり、ページモードで作動す
る。これはプリンタがページ全体のデータをビットマッ
プ形状で記憶できることを意味する。ページ全体をビッ
トマップ形状で記憶するのに必要なメモリは大容量にな
るから、必要なメモリの量を減少させるために若干のプ
リンタはバンディング(banding)モードを使用
している。バンディングモード能力を有するプリンタ
は、印刷ページをバンドと称する複数の水平セグメント
に細分する。プリンタは一時に1つのバンドに関するビ
ットマップデータだけを受け入れるので、メモリに対す
る要求は低減される。プリンタは第1のバンドに関する
データを処理した後に限って第2のバンドに関するデー
タを受け入れることができる、等々のようになってい
る。例えば、もし印刷ページを4つのバンドに細分すれ
ば、プリンタはそのページの全ビットマップデータの1
/4 だけを記憶すればよいのでメモリに対する要求も
1/4 に低減される。従来のホストコンピュータプリ
ンタシステムは、そのプリントエンジンが始動すると、
実時間でデータのページを処理することができない。あ
る従来のシステムは、できるだけ多くのデータ帯域を処
理しようとし、別のページにおけるデータの次の帯域を
プリントしている。その他のプリンタは、なにもプリン
トせず、そのページに対するデータを変更しまたはその
プリンタによって使用される解像度を変更するのにユー
ザが手動的に介在する必要がある。コンピュータ・プリ
ンタシステムの設計は、2つの基本的な目的の達成を含
んでいる。第1の目的は装置独立性である。特定のホス
トコンピュータのシステム制約からプリンタを独立させ
るために、製造業者及びプログラマはプリンタ駆動装置
が汎用になるように設計を重ねてきた。もし真の装置独
立性が得られれば、ホストコンピュータはプリンタイン
タフェースにどの型のプリンタが接続されているのかを
知る必要はない。典型的にはホストコンピュータは、直
列I/O ポートまたは並列I/O ポートのようなハ
ードウエアインタフェースを通してプリンタシステムに
データを伝送する。従来のコンピュータ・プリンタシス
テムでは、接続された特定のプリンタに対するホストの
知識を最小にし、それに代えてかなり要約されたデータ
ストリームに頼ることによって装置独立性を達成するこ
とを企図している。その結果、データストリームの転送
及び処理が不十分なペースまで低速になり、処理能力が
損なわれがちである。例えば、ホストコンピュータはあ
る文書の数ページのために必要な第1の文字フォントを
ダウンロードすることができる。特定の印刷タスクにお
いて数文字だけしか必要としない場合であっても、典型
的には従来のコンピュータシステムは全フォントをダウ
ンロードしている。第2のフォント集合(または第2の
フォント集合の一部)を必要とする場合には、ホストコ
ンピュータは第2の文字フォント全体をダウンロードす
る。第1のフォント集合を必要とする爾後のページを印
刷する時に使用される第1のフォント集合を維持する余
裕がプリンタメモリ内に存在している場合でも、その第
1のフォント集合が占めているメモリ空間内に第2のフ
ォント集合が書込まれる。プリンタ資源の現状をホスト
コンピュータに助言するためのプリンタからホストコン
ピュータへの通信は存在していない。第2の目的は、印
刷プロセスの性能の最適化である。レーザプリンタは、
単一のコンピュータに接続され一時に1または2ページ
の用紙を処理するような簡易なスタンドアローンプリン
タから、多重紙トレイとコンピュータ回路網に結合され
ている複雑な紙経路とを有し、複数のユーザのために多
くのページを同時に処理するような精緻なプリンタまで
多岐にわたっている。コンピュータシステムはどの型の
プリンタとも効率的に動作できるものでなければならな
い。不幸にも、これらの第1及び第2の目的は相反的で
ある。汎用両立性を得るための妥協の結果、コンピュー
タ・プリンタシステムのデータ処理は極めて低速である
ことが多い。更にホストコンピュータはそれに接続され
ているプリンタに関する若干の知識を有している。皮肉
にも、これら2つの目的を追求したために現在のコンピ
ュータ・プリンタシステムは両目的を達成し損なってい
るのである。ホストコンピュータは、それに接続されて
いるプリンタの型を知っており、しかも“汎用”プリン
タ駆動装置方式は低速で、非効率的なシステムをもたら
し、コンピュータ及びプリンタは有用なタスクを遂行す
ることなくページ誤り回復のような発生しないかも知れ
ない競合を解決するために貴重な計算時間を消費するこ
とが屡々である。例えば従来のコンピュータ・プリンタ
システムは、ある印刷ページがレーザプリンタ上の最後
のジャム(jam)センサを通過するまでそのページ全
体のビットマップデータファイルを保持する。ページジ
ャムが生じた場合でもデータは使用可能でありページは
迅速に再印刷することができる。しかしながら印刷プロ
セス中に用紙ジャムが発生することは比較的少ない。一
旦印刷エンジンがあるページの印刷を開始すると、その
ページが最後のジャムセンサを通過するためには約10
秒を要する。プリンタメモリからのビットマップデータ
ファイルがクリアされ、次のページを処理するまで、各
ページが最後のジャムセンサを通過するための余分な1
0秒を待機することによって、総合印刷プロセスはかな
り低速になる。従来のシステムはページ記述中の任意時
点に用紙サイズの選択を行うために、ページ全体が記述
されてしまうまで印刷エンジンへの紙送りをも遅延させ
る。例えばホストコンピュータはページ全体の記述を転
送することができ、最終記述ラインは欧字サイズの用紙
を選択することができる。もしユーザがページ記述の始
めに用紙サイズを選択することを要求すれば紙送りを遅
延させる必要はない。もしあれば、僅かな印刷タスクは
この要求によって阻害される。一般的にユーザは印刷プ
ロセスが開始される前に用紙サイズ及び印刷モード(即
ち、一方向または双方向)を知っている。従って、従来
のシステムは不要なオプションを提供することによって
貴重な時間を消費していたことになる。現在使用されて
いるプリンタ言語は、ドットマトリクスプリンタで使用
されるプリンタ言語から開発されたものである。ドット
マトリクスプリンタは未だに使用されてはいるが、レー
ザプリンタが広範に使用され始め、成長しつつある。し
かも、低速のドットマトリクスプリンタ向きのプリンタ
言語に僅かな変更を施すことによって、プリンタ言語を
増加しつつあるレーザプリンタの使用に対処するように
企図されてきた。この進展的な方策は、レーザプリンタ
において利用できる潜在的な計算能力の長所を採り入れ
てはいない。プリンタハードウエアが単純な“無言(d
umb)”プリンタからマイクロプロセッサによって制
御される精緻なレーザプリンタまで進展したにも拘わら
ず、従来のコンピュータ・プリンタシステムのシステム
アーキテクチャは殆ど変化していない。図1に示す典型
的な従来のコンピュータ・レーザプリンタシステムは、
プリンタ内にパーザとして知られる装置を有している。
パーザはホストコンピュータからデータのバイトを受
け、これらのデータのバイトを字句単位(トークン)に
編成する。これらの字句単位は有意味の語い文脈内に組
合わされたデータのストリームである。例えばあるデー
タストリームは、圧縮されたデータフォーマットで伝送
される2進ビットマップであることができる。通常2進
データは、如何にデータを処理するかをパーザに指令す
る見出し及び後書きを伴う。見出し/後書きはASCI
I バイトで伝送され、これらの各バイトはパーザによ
って処理されなければならない。パーザは全てのASC
II バイトを、一時に1バイトずつ受け入れ、処理し
なければならない。その結果、パーザはコンピュータ・
プリンタシステムにおける効率的なデータ流れに対する
隘路になっている。パーザはプリンタが受信したデータ
の全てのバイトを処理し、プリンタ内のメモリ内に表示
リストを作成する。表示リストは、その対象がページ上
の何処に位置しているかによって分類される。表示リス
ト内のビットマップは一般に非圧縮フォーマットで記憶
される。本文のような他の対象はかなり短命である。従
ってそのページの周囲を巡って走る単一の、単純な矩形
は一般的に1メガバイトの記憶容量を必要とする。イメ
ージャは表示リストを印刷エンジンに適するビットマッ
プデータファイルに変換する。このビットマップデータ
ファイルはフレームバッファ内に記憶され、印刷エンジ
ンへ伝送される。従来のコンピュータ・プリンタシステ
ムが非効率的である別の領域は、ページを非効率的な順
序で処理することである。もしプリンタが双方向モード
(ページの両側に印刷)で動作していれば、プリンタ内
のページが辿る紙経路は、ページの側1の前にページの
側2を印刷することを要求する。しかしながら、従来の
コンピュータ・プリンタシステムはページの側1を側2
の前に処理することを要求している。これは、ページの
側1を完全に処理し、ビットマップデータファイルとし
てプリンタメモリ内に記憶させることを意味する。次い
で、ページの側2が完全に処理されて印刷エンジンへ送
られる。これらの従来のシステムのフィロソフィは、最
初に側1が処理されるものとユーザが予測していること
である。しかしながら、実際にはユーザは、文書が完全
に印刷された時にページが適切な順序でプリンタトレイ
内に現れるであろうことを期待しているに過ぎない。ペ
ージがプリンタによって実際に印刷される順序以外の任
意の順序でホストコンピュータがページを処理すべきで
あるとする実質的な理由は存在しない。前述したよう
に、従来のシステムは近代的なレーザプリンタの利用可
能な潜在的計算能力を使用することにも失敗している。
古い設計の無言プリンタはデータバッファ及び印刷エン
ジンの域を殆ど出ていなかった。データ処理は全てホス
トコンピュータによって行われ、プリンタはドットマト
リクスデータを印刷していた。近代的なレーザプリンタ
はマイクロプロセッサ制御であり、ホストコンピュータ
に匹敵するような計算能力を有している。未だに従来の
システムは、プリンタがデータ処理を遂行する何等の能
力をも持たない無言プリンタとしてプリンタを取り扱う
傾向にある。これは、部分的には、前述したように装置
独立性を達成しようとする企図に起因する。他の従来の
システムは、実質的に全てのデータ処理に関する責をプ
リンタに負わせている。結果的には、ホストコンピュー
タとプリンタの混合された計算能力は効率的に使用され
てはおらず、総合印刷プロセスは非効率的なペースまで
低速化されている。ホストコンピュータとプリンタとの
間には殆ど通信がなされないので、ホストコンピュータ
及びプリンタはデータ処理のタスクを効率的に分担する
ことができない。一般的に従来のホストコンピュータは
実質的に全てのデータ処理を遂行するか、または実質的
に全くデータ処理を行わない。装置独立性を達成し、全
ての型のプリンタとの汎用動作を達成する試みは、ホス
トコンピュータとプリンタとが互いに効率的に通信しな
いために、潜在的な計算能力が活用されず、資源が浪費
されることから非効率的な印刷プロセスをもたらしただ
けである。従って、ホストコンピュータとプリンタとの
間に効率的な通信を許容し、資源の利用を最大にするよ
うなコンピュータ・プリンタシステムに対する大きい要
望が存在していることが理解されよう。
【発明の概要】本発明のシステムは、資源アセンブラが
データファイルを一組のドロープリミティブへと変換
し、その組のドロープリミティブをレンダリングするプ
リンタに関連したコストを決定するようなホストコンピ
ュータ・プリンタシステム内に実現される。資源アセン
ブラは、プリンタに送信されるべきデータの形に関して
一連の決定をなす。資源アセンブラは、その組のドロー
プリミティブがプリンタ資源ストア内に適合するかどう
かを決定する。もし、その組のドロープリミティブがそ
のプリンタ資源ストア内に適合しうるならば、資源アセ
ンブラは、そのプリンタが実時間でその組のドロープリ
ミティブを処理できるか、または、その組のドロープリ
ミティブを所定の時間期間より短い時間でプリレンダリ
ングできるかを決定する。資源アセンブラは、そのプリ
ンタがその組のドロープリミティブをレンダリングでき
ないし、その組のドロープリミティブを所定の時間期間
より短い時間にてレンダリングできない場合には、その
組のドロープリミティブをレンダリングする。その資源
アセンぶラは、そのプリンタ内に充分な解像度を維持し
ながら、そのプリンタへそのレンダリングされた組のド
ロープリミティブを送信するのに必要ならば、データ圧
縮を使用する。必要ならば、資源アセンブラは、データ
圧縮を使用し、その結果、そのプリンタが常にあるペー
ジをプリントするようにプリンタの解像度が自動的に減
少されることになる。もし、解像度が減少されるなら
ば、ホストコンピュータは、メッセージを表示して、ユ
ーザにその解像度が減少されたことを知らせる。
データファイルを一組のドロープリミティブへと変換
し、その組のドロープリミティブをレンダリングするプ
リンタに関連したコストを決定するようなホストコンピ
ュータ・プリンタシステム内に実現される。資源アセン
ブラは、プリンタに送信されるべきデータの形に関して
一連の決定をなす。資源アセンブラは、その組のドロー
プリミティブがプリンタ資源ストア内に適合するかどう
かを決定する。もし、その組のドロープリミティブがそ
のプリンタ資源ストア内に適合しうるならば、資源アセ
ンブラは、そのプリンタが実時間でその組のドロープリ
ミティブを処理できるか、または、その組のドロープリ
ミティブを所定の時間期間より短い時間でプリレンダリ
ングできるかを決定する。資源アセンブラは、そのプリ
ンタがその組のドロープリミティブをレンダリングでき
ないし、その組のドロープリミティブを所定の時間期間
より短い時間にてレンダリングできない場合には、その
組のドロープリミティブをレンダリングする。その資源
アセンぶラは、そのプリンタ内に充分な解像度を維持し
ながら、そのプリンタへそのレンダリングされた組のド
ロープリミティブを送信するのに必要ならば、データ圧
縮を使用する。必要ならば、資源アセンブラは、データ
圧縮を使用し、その結果、そのプリンタが常にあるペー
ジをプリントするようにプリンタの解像度が自動的に減
少されることになる。もし、解像度が減少されるなら
ば、ホストコンピュータは、メッセージを表示して、ユ
ーザにその解像度が減少されたことを知らせる。
【発明の概要】本発明はホストコンピュータ・プリンタ
対話に対して革命的な方策を取っている。本発明は、印
刷プロセスの印刷速度を劇的に増大させ、応用(アプリ
ケーション)時間を減少させるために、ホストコンピュ
ータとプリンタとの共働努力を許容する。応用時間への
戻りは、ホストコンピュータが印刷ジョブの処理を要求
し、そして印刷を開始させた応用プログラムへ戻る時間
である。多くの従来のコンピュータ・プリンタシステム
は、印刷ページではなくコンピュータコードを実行する
ように設計されている。つまり、プリンタはコードを受
信し、変換し、そして実行し、ページはコード実行の副
産物として印刷されるのである。従来の多くのシステム
は単一のページを印刷するために大量のコードを実行し
ている。前述したように、従来のシステムはホストコン
ピュータとプリンタとの間に実効的な対話を有していな
い。従って近代的なプリンタの精緻な計算能力は利用さ
れていない。それに対して本発明はプリンタの計算能力
の利点を活用し、ホストコンピュータとプリンタとの間
の自由な通信を許容するように設計されている。本発明
は、文書をより効率的に印刷するために互いに共働する
ことができる同一“システム”の2つの部分としてホス
トコンピュータ及びプリンタを見ている。ある文書を印
刷するために2つの文字フォント集合を必要とする上例
では、本発明のホストコンピュータは、プリンタが第1
のフォント集合を保持でき、従ってプリンタメモリ内に
第1のフォント集合を維持していることを知っている。
更に従来のホストコンピュータは典型的に処理中の現ペ
ージだけを見ており、将来第1のフォント集合を必要と
するか否か、またプリンタメモリ内に保持すべきか否か
を決定するために先見することがない。その結果従来の
ホストコンピュータはもし数ページを印刷するために必
要ならば、第1のフォント集合を繰り返してダウンロー
ドしなければならない(及びプロセス中に第2のフォン
ト集合を削除するかも知れない)。若干の従来のシステ
ムは粗雑な先見能力を有してはいるが、それは極めて制
限されたものでありメモリを効率的に利用するものでは
ないことを理解されたい。従来のホストコンピュータ
は、どれ程多くのプリンタメモリが使用可能であるかを
常に確実に知っている訳ではなく、従ってプリンタメモ
リの使用に関して極めて保守的にならざるを得ない。そ
れに対して本発明のシステムは、印刷タスクにおける先
見によって第1のフォント集合(または任意の他の資
源)をプリンタメモリ内に保持すべきか否かを決定し、
また第1のフォント集合が最早必要ではなくプリンタメ
モリから解放乃至は削除できる時点を決定する。更に本
発明のシステムは、あるフォント集合の一部分だけを必
要とする場合に文字フォントの部分集合を構成し、利用
可能な資源の使用を最大にする。以上のように本発明は
印刷に際して資源向きの方策を取るのである。以下の説
明はレーザプリンタの動作の詳細に関するものである
が、本発明のシステム及び方法はレーザ、感熱、インパ
クト、昇華、インクジェット等々のような何等かのマー
キング技術にも適用可能である。資源とは、コンピュー
タ・プリンタシステム内にあってメモリを占有する何等
かのものであり、文書を印刷するために必要なものであ
る。文書は資源を使用して完全に記述される。資源なる
語の詳細に関しては後述する。本発明の原理によれば、
目的は文書を迅速に印刷すること、及びホストコンピュ
ータが最短時間で応用プログラムに戻ることを許容する
ことである。これは、システムの各部分及び使用可能な
資源がタスクを達成するための要求をシステムの他の部
分が容易に知ることができるように、ホストコンピュー
タとプリンタとの間に通信を開くことを許容することに
よって達成される。ホストコンピュータ及びプリンタの
計算能力及び使用可能なメモリを活用するので、全印刷
プロセスは、部分的に、従来のコンピュータ・プリンタ
システムよりも高速である。本発明は、一方向通信能力
だけを有し且つプリンタが使用中であることを指示する
ためにプリンタからホストコンピュータまでのステータ
スラインを使用するコンピュータ・プリンタシステムと
共に使用することができる。他のコンピュータまたはプ
リンタは双方向通信を有しているが、本発明が要求する
ようなデータ転送速度では完全な双方向通信を支持する
ことはできないか、またはそれらが方向を十分迅速に切
り換えることができないために完全な双方向通信が阻害
されるようなものであってよい。本発明は双方向通信を
確立することを企図するものであるが、完全な双方向通
信を効率的に支持することができない程長い待ち時間の
ためにコンピュータまたはプリンタの何れかが双方向通
信を支持できなければ一方向通信に頼ることになろう。
しかし、多くのコンピュータ・プリンタシステムはホス
トコンピュータとプリンタとの間に完全な双方向通信を
有している。もしコンピュータ・プリンタシステムが双
方向能力を有していれば、本発明は誤り回復能力が向上
し、特定の印刷タスクに依存してプリンタとホストコン
ピュータとの間で若干の機能を行き来させる能力を有す
ることになる。この“負荷平衡化”は、コンピュータ・
プリンタシステムの中で印刷タスクを最も効率的に遂行
できる部分によってタスクを処理させることを許容する
ので印刷速度をかなり早めることができる。前述したよ
うに、資源とは文書を印刷するために必要な実質的に何
等かのものである。これには、文字フォント集合、絵文
字(glyph)集合、点テーブル、ブラシ、ユーザが
定義した図形画像、及びページ自体を記述するデータが
含まれる。“フォント集合”はタイムズ・ローマン、ヘ
ルベティカ、クーリエ等々のような特定の文字書体を限
定するASCII 文字の集合であり、通常はビットマ
ップとして記憶される。若干のプリンタはプリンタ内の
読出し専用メモリ(ROM)集積回路内に記憶されてい
るフォント集合を有しており、他のコンピュータ・プリ
ンタシステムはホストコンピュータ内にビットマップデ
ータファイルとして記憶され必要に応じてプリンタのラ
ンダムアクセスメモリ(RAM)へダウンロードされる
“ソフトフォント”を使用している。ソフトフォント
は、フォントが一般的にホストコンピュータ内のディス
クに頼り、従ってプリンタ内のメモリ空間を恒久的に占
めることがないからプリンタに大きい柔軟性を与える。
更に他のコンピュータ・プリンタシステムはトゥルータ
イプ(True Type)フォントのようなフォント
基準化技術を使用しており、これらのフォントはビット
マップデータファイルとして記憶されることはない。そ
の代わりとして、これらのフォントは各フォント型毎の
文字の線及び曲線を定義する方程式の集合によって記述
される。ホストコンピュータまたはプリンタはこれらの
方程式を使用して任意のポイントサイズの特定フォント
文字を構成する。フォント基準化技術の利点は、方程式
の単一の集合を使用して全てのポイントサイズのための
フォント型を記述できることであり、一方ビットマップ
として記憶されるフォントは単一のポイントサイズのた
めだけにしか使用できない。例えば、タイムズ・ローマ
ン4、タイムズ・ローマン4、タイムズ・ローマン8、
及びタイムズ・ローマン10は4つの分離したフォント
と見做され、各々は特定のフォントを記述するのに分離
したビットマップデータファイルを必要とする。これに
対してフォント基準化技術は全てのポイントサイズのタ
イムズ・ローマン文字を記述する方程式の単一の集合を
有している。ホストコンピュータまたはプリンタは方程
式を適用し、方程式を選択されたポイントサイズに対し
て基準化するのでビットマップデータファイルの複数の
集合を必要としない。本発明はROM に記憶されてい
るフォント、ソフトフォント、またはフォント基準化技
術の何れかと共に働く。“絵文字集合”は、ホストコン
ピュータ内に記憶されている所定の文字からなることが
ソフトフォントに類似している。しかし、これらの所定
の文字は必ずしも完全な文字フォント集合である必要は
なく、またユーザが定義した文字、図形記号、または種
々の文字フォント集合からの異なる書体の組合せを含む
ことができる点がフォント集合とは異なっている。例え
ば、絵文字集合は幾つかの異なるフォント集合からの数
字及び数学的記号、並びに若干のユーザが定義した図形
記号を含む方程式であることができる。特定の絵文字集
合は完全な文字集合を含む程度に十分に大きくてよく、
または単一の文字程度に小さくてもよい。絵文字集合の
別の例は、文書内に使用することができる所得申告また
はデータエントリ形状のような形状である。本発明はこ
の形状を作成することができ、またそれを絵文字集合と
して記憶する。もしこの形状を文書内に再度使用するの
であれば、その形状全部を絵文字集合として使用するこ
とができる。絵文字集合がある形状を実現するための唯
一の方法ではないことを理解されたい。例えば、形状を
実現する別の方法はその形状を表すために描写プリミテ
ィブリスト(render primitive li
st:RPL)を使用することである。RPLは形状の
片に関して絵文字集合を使用することができるが、RP
Lは全てを組合わせる。若干の従来のシステムは絵文字
集合を制限された手法で使用している。従来のホストコ
ンピュータは、プリンタへダウンロードするために文字
フォントの部分集合をアセンブルすることができる。も
し新しい文字が必要であれば従来のホストコンピュータ
は必要とされる新しい文字だけをインクリメント的にダ
ウンロードし、それを既にダウンロードされている絵文
字集合に追加することができる。しかし、従来のシステ
ムは絵文字集合資源を能動的に管理することはない。従
来のシステムは一般的に、絵文字集合が将来必要とされ
ることには構わずに、新しいページの開始時に絵文字集
合をクリアする。これは、新しいページが絵文字集合を
必要とする場合には、従来のホストコンピュータに新し
い絵文字集合を構成させることになる。新たに構成され
た絵文字集合は先行絵文字集合とは同一ではないかも知
れず、絵文字集合の周期的な再構成及びダウンロードは
印刷プロセスに余分な時間を消費させる。更に従来のシ
ステムは、どの文字が絵文字集合内に存在しているかを
指示するために大量のデータを絵文字集合に付随させる
ことを要求する。これとは対照的に、本発明は使用可能
な資源から絵文字集合を構成し、絵文字集合を単一の資
源として能動的に管理する。本明細書において使用して
いる“絵文字集合”という語は、フォントのような他の
資源の部分を構成している資源のことを言う。簡略化の
ために、絵文字集合を資源と呼ぶことがある。本発明は
絵文字集合が所定のサイズに達するまで絵文字集合をア
センブルするが、その絵文字集合を直ちにプリンタへ転
送することはない。アセンブルされた絵文字集合は必要
に応じてプリンタへ転送されるユニットとして取り扱わ
れ、最早必要としなくなった時にはユニットとしてプリ
ンタから削除される。従来のシステムで行われているよ
うに新しいページの開始時にプリンタメモリをクリアす
る方策は採らず、絵文字集合は、将来その絵文字集合が
必要であることに基づいて能動的に管理され、プリンタ
資源内の使用可能な空間内に記憶される。本発明の絵文
字集合は、どの文字が絵文字集合内にあるかを指示する
“内容のテーブル”として見出しをも含むが、一旦構成
された絵文字集合は変化することがないので、この見出
しのサイズは従来の見出しよりも遥かに小さい。“点テ
ーブル”は図形対象を定義するために使用される座標点
のテーブルである。例えば、矩形のような図形対象は4
つの角の座標によって定義することができる。同様に、
三次ベジェ(Bezier)曲線は4つの制御点によっ
て定義される。点テーブルはこれらの制御点の座標を記
憶する。ベジェ曲線を描写する場合にレーザプリンタで
より滑らかな曲線を印刷するために、プリンタの実際の
解像力を超える高解像力を使用して曲線描写プロセスを
遂行することが多い。曲線を描写するために計算された
線は、対象がプリンタで実際に印刷される時に分割され
るので、より滑らかに見える像が作成される。もし高解
像力計算が遂行されれば、点テーブルはベジェ曲線を描
写するために使用される全ての線セグメントの座標を含
む。点テーブルは、マウスまたは他の位置決め装置を使
用して描き、ディジタル化テーブル等を使用して座標を
入力することによってユーザが応用プログラム内に作成
することもできる。“ブラシ”は、矩形または円のよう
な図形対象の内部を埋めるのに典型的に使用される図形
パターンである。ブラシは図形対象の内部全体を埋める
ために繰り返される最小の繰り返しパターンである。例
えば円のような対象を作成する場合、ドロープリミティ
ブ(draw primitive)はプリンタに命令
して円を作成させ、特定の図形パターンを有する内部を
埋める。例えばクロスハッチパターンは一連の小さい
“x”形状で構成し、対象全体内を埋めるためにそれを
繰り返せばよい。本発明のシステムはプリンタ内に広く
使用されているブラシを記憶しており、ホストコンピュ
ータを使用して付加的な種々のブラシを作成する。印刷
ページを記述するデータは資源とも見做される。ホスト
コンピュータは、ワードプロセッサ、スプレッドシート
(spread sheet)、データベース等々のよ
うな応用プログラムによって作成することができるペー
ジの記述を含む。本発明はこのべージ記述をドロープリ
ミティブに変換し、これらのドロープリミティブを文書
を印刷するために必要な他の資源と相互に関連付ける。
変換プロセスの詳細に関しては後述する。
対話に対して革命的な方策を取っている。本発明は、印
刷プロセスの印刷速度を劇的に増大させ、応用(アプリ
ケーション)時間を減少させるために、ホストコンピュ
ータとプリンタとの共働努力を許容する。応用時間への
戻りは、ホストコンピュータが印刷ジョブの処理を要求
し、そして印刷を開始させた応用プログラムへ戻る時間
である。多くの従来のコンピュータ・プリンタシステム
は、印刷ページではなくコンピュータコードを実行する
ように設計されている。つまり、プリンタはコードを受
信し、変換し、そして実行し、ページはコード実行の副
産物として印刷されるのである。従来の多くのシステム
は単一のページを印刷するために大量のコードを実行し
ている。前述したように、従来のシステムはホストコン
ピュータとプリンタとの間に実効的な対話を有していな
い。従って近代的なプリンタの精緻な計算能力は利用さ
れていない。それに対して本発明はプリンタの計算能力
の利点を活用し、ホストコンピュータとプリンタとの間
の自由な通信を許容するように設計されている。本発明
は、文書をより効率的に印刷するために互いに共働する
ことができる同一“システム”の2つの部分としてホス
トコンピュータ及びプリンタを見ている。ある文書を印
刷するために2つの文字フォント集合を必要とする上例
では、本発明のホストコンピュータは、プリンタが第1
のフォント集合を保持でき、従ってプリンタメモリ内に
第1のフォント集合を維持していることを知っている。
更に従来のホストコンピュータは典型的に処理中の現ペ
ージだけを見ており、将来第1のフォント集合を必要と
するか否か、またプリンタメモリ内に保持すべきか否か
を決定するために先見することがない。その結果従来の
ホストコンピュータはもし数ページを印刷するために必
要ならば、第1のフォント集合を繰り返してダウンロー
ドしなければならない(及びプロセス中に第2のフォン
ト集合を削除するかも知れない)。若干の従来のシステ
ムは粗雑な先見能力を有してはいるが、それは極めて制
限されたものでありメモリを効率的に利用するものでは
ないことを理解されたい。従来のホストコンピュータ
は、どれ程多くのプリンタメモリが使用可能であるかを
常に確実に知っている訳ではなく、従ってプリンタメモ
リの使用に関して極めて保守的にならざるを得ない。そ
れに対して本発明のシステムは、印刷タスクにおける先
見によって第1のフォント集合(または任意の他の資
源)をプリンタメモリ内に保持すべきか否かを決定し、
また第1のフォント集合が最早必要ではなくプリンタメ
モリから解放乃至は削除できる時点を決定する。更に本
発明のシステムは、あるフォント集合の一部分だけを必
要とする場合に文字フォントの部分集合を構成し、利用
可能な資源の使用を最大にする。以上のように本発明は
印刷に際して資源向きの方策を取るのである。以下の説
明はレーザプリンタの動作の詳細に関するものである
が、本発明のシステム及び方法はレーザ、感熱、インパ
クト、昇華、インクジェット等々のような何等かのマー
キング技術にも適用可能である。資源とは、コンピュー
タ・プリンタシステム内にあってメモリを占有する何等
かのものであり、文書を印刷するために必要なものであ
る。文書は資源を使用して完全に記述される。資源なる
語の詳細に関しては後述する。本発明の原理によれば、
目的は文書を迅速に印刷すること、及びホストコンピュ
ータが最短時間で応用プログラムに戻ることを許容する
ことである。これは、システムの各部分及び使用可能な
資源がタスクを達成するための要求をシステムの他の部
分が容易に知ることができるように、ホストコンピュー
タとプリンタとの間に通信を開くことを許容することに
よって達成される。ホストコンピュータ及びプリンタの
計算能力及び使用可能なメモリを活用するので、全印刷
プロセスは、部分的に、従来のコンピュータ・プリンタ
システムよりも高速である。本発明は、一方向通信能力
だけを有し且つプリンタが使用中であることを指示する
ためにプリンタからホストコンピュータまでのステータ
スラインを使用するコンピュータ・プリンタシステムと
共に使用することができる。他のコンピュータまたはプ
リンタは双方向通信を有しているが、本発明が要求する
ようなデータ転送速度では完全な双方向通信を支持する
ことはできないか、またはそれらが方向を十分迅速に切
り換えることができないために完全な双方向通信が阻害
されるようなものであってよい。本発明は双方向通信を
確立することを企図するものであるが、完全な双方向通
信を効率的に支持することができない程長い待ち時間の
ためにコンピュータまたはプリンタの何れかが双方向通
信を支持できなければ一方向通信に頼ることになろう。
しかし、多くのコンピュータ・プリンタシステムはホス
トコンピュータとプリンタとの間に完全な双方向通信を
有している。もしコンピュータ・プリンタシステムが双
方向能力を有していれば、本発明は誤り回復能力が向上
し、特定の印刷タスクに依存してプリンタとホストコン
ピュータとの間で若干の機能を行き来させる能力を有す
ることになる。この“負荷平衡化”は、コンピュータ・
プリンタシステムの中で印刷タスクを最も効率的に遂行
できる部分によってタスクを処理させることを許容する
ので印刷速度をかなり早めることができる。前述したよ
うに、資源とは文書を印刷するために必要な実質的に何
等かのものである。これには、文字フォント集合、絵文
字(glyph)集合、点テーブル、ブラシ、ユーザが
定義した図形画像、及びページ自体を記述するデータが
含まれる。“フォント集合”はタイムズ・ローマン、ヘ
ルベティカ、クーリエ等々のような特定の文字書体を限
定するASCII 文字の集合であり、通常はビットマ
ップとして記憶される。若干のプリンタはプリンタ内の
読出し専用メモリ(ROM)集積回路内に記憶されてい
るフォント集合を有しており、他のコンピュータ・プリ
ンタシステムはホストコンピュータ内にビットマップデ
ータファイルとして記憶され必要に応じてプリンタのラ
ンダムアクセスメモリ(RAM)へダウンロードされる
“ソフトフォント”を使用している。ソフトフォント
は、フォントが一般的にホストコンピュータ内のディス
クに頼り、従ってプリンタ内のメモリ空間を恒久的に占
めることがないからプリンタに大きい柔軟性を与える。
更に他のコンピュータ・プリンタシステムはトゥルータ
イプ(True Type)フォントのようなフォント
基準化技術を使用しており、これらのフォントはビット
マップデータファイルとして記憶されることはない。そ
の代わりとして、これらのフォントは各フォント型毎の
文字の線及び曲線を定義する方程式の集合によって記述
される。ホストコンピュータまたはプリンタはこれらの
方程式を使用して任意のポイントサイズの特定フォント
文字を構成する。フォント基準化技術の利点は、方程式
の単一の集合を使用して全てのポイントサイズのための
フォント型を記述できることであり、一方ビットマップ
として記憶されるフォントは単一のポイントサイズのた
めだけにしか使用できない。例えば、タイムズ・ローマ
ン4、タイムズ・ローマン4、タイムズ・ローマン8、
及びタイムズ・ローマン10は4つの分離したフォント
と見做され、各々は特定のフォントを記述するのに分離
したビットマップデータファイルを必要とする。これに
対してフォント基準化技術は全てのポイントサイズのタ
イムズ・ローマン文字を記述する方程式の単一の集合を
有している。ホストコンピュータまたはプリンタは方程
式を適用し、方程式を選択されたポイントサイズに対し
て基準化するのでビットマップデータファイルの複数の
集合を必要としない。本発明はROM に記憶されてい
るフォント、ソフトフォント、またはフォント基準化技
術の何れかと共に働く。“絵文字集合”は、ホストコン
ピュータ内に記憶されている所定の文字からなることが
ソフトフォントに類似している。しかし、これらの所定
の文字は必ずしも完全な文字フォント集合である必要は
なく、またユーザが定義した文字、図形記号、または種
々の文字フォント集合からの異なる書体の組合せを含む
ことができる点がフォント集合とは異なっている。例え
ば、絵文字集合は幾つかの異なるフォント集合からの数
字及び数学的記号、並びに若干のユーザが定義した図形
記号を含む方程式であることができる。特定の絵文字集
合は完全な文字集合を含む程度に十分に大きくてよく、
または単一の文字程度に小さくてもよい。絵文字集合の
別の例は、文書内に使用することができる所得申告また
はデータエントリ形状のような形状である。本発明はこ
の形状を作成することができ、またそれを絵文字集合と
して記憶する。もしこの形状を文書内に再度使用するの
であれば、その形状全部を絵文字集合として使用するこ
とができる。絵文字集合がある形状を実現するための唯
一の方法ではないことを理解されたい。例えば、形状を
実現する別の方法はその形状を表すために描写プリミテ
ィブリスト(render primitive li
st:RPL)を使用することである。RPLは形状の
片に関して絵文字集合を使用することができるが、RP
Lは全てを組合わせる。若干の従来のシステムは絵文字
集合を制限された手法で使用している。従来のホストコ
ンピュータは、プリンタへダウンロードするために文字
フォントの部分集合をアセンブルすることができる。も
し新しい文字が必要であれば従来のホストコンピュータ
は必要とされる新しい文字だけをインクリメント的にダ
ウンロードし、それを既にダウンロードされている絵文
字集合に追加することができる。しかし、従来のシステ
ムは絵文字集合資源を能動的に管理することはない。従
来のシステムは一般的に、絵文字集合が将来必要とされ
ることには構わずに、新しいページの開始時に絵文字集
合をクリアする。これは、新しいページが絵文字集合を
必要とする場合には、従来のホストコンピュータに新し
い絵文字集合を構成させることになる。新たに構成され
た絵文字集合は先行絵文字集合とは同一ではないかも知
れず、絵文字集合の周期的な再構成及びダウンロードは
印刷プロセスに余分な時間を消費させる。更に従来のシ
ステムは、どの文字が絵文字集合内に存在しているかを
指示するために大量のデータを絵文字集合に付随させる
ことを要求する。これとは対照的に、本発明は使用可能
な資源から絵文字集合を構成し、絵文字集合を単一の資
源として能動的に管理する。本明細書において使用して
いる“絵文字集合”という語は、フォントのような他の
資源の部分を構成している資源のことを言う。簡略化の
ために、絵文字集合を資源と呼ぶことがある。本発明は
絵文字集合が所定のサイズに達するまで絵文字集合をア
センブルするが、その絵文字集合を直ちにプリンタへ転
送することはない。アセンブルされた絵文字集合は必要
に応じてプリンタへ転送されるユニットとして取り扱わ
れ、最早必要としなくなった時にはユニットとしてプリ
ンタから削除される。従来のシステムで行われているよ
うに新しいページの開始時にプリンタメモリをクリアす
る方策は採らず、絵文字集合は、将来その絵文字集合が
必要であることに基づいて能動的に管理され、プリンタ
資源内の使用可能な空間内に記憶される。本発明の絵文
字集合は、どの文字が絵文字集合内にあるかを指示する
“内容のテーブル”として見出しをも含むが、一旦構成
された絵文字集合は変化することがないので、この見出
しのサイズは従来の見出しよりも遥かに小さい。“点テ
ーブル”は図形対象を定義するために使用される座標点
のテーブルである。例えば、矩形のような図形対象は4
つの角の座標によって定義することができる。同様に、
三次ベジェ(Bezier)曲線は4つの制御点によっ
て定義される。点テーブルはこれらの制御点の座標を記
憶する。ベジェ曲線を描写する場合にレーザプリンタで
より滑らかな曲線を印刷するために、プリンタの実際の
解像力を超える高解像力を使用して曲線描写プロセスを
遂行することが多い。曲線を描写するために計算された
線は、対象がプリンタで実際に印刷される時に分割され
るので、より滑らかに見える像が作成される。もし高解
像力計算が遂行されれば、点テーブルはベジェ曲線を描
写するために使用される全ての線セグメントの座標を含
む。点テーブルは、マウスまたは他の位置決め装置を使
用して描き、ディジタル化テーブル等を使用して座標を
入力することによってユーザが応用プログラム内に作成
することもできる。“ブラシ”は、矩形または円のよう
な図形対象の内部を埋めるのに典型的に使用される図形
パターンである。ブラシは図形対象の内部全体を埋める
ために繰り返される最小の繰り返しパターンである。例
えば円のような対象を作成する場合、ドロープリミティ
ブ(draw primitive)はプリンタに命令
して円を作成させ、特定の図形パターンを有する内部を
埋める。例えばクロスハッチパターンは一連の小さい
“x”形状で構成し、対象全体内を埋めるためにそれを
繰り返せばよい。本発明のシステムはプリンタ内に広く
使用されているブラシを記憶しており、ホストコンピュ
ータを使用して付加的な種々のブラシを作成する。印刷
ページを記述するデータは資源とも見做される。ホスト
コンピュータは、ワードプロセッサ、スプレッドシート
(spread sheet)、データベース等々のよ
うな応用プログラムによって作成することができるペー
ジの記述を含む。本発明はこのべージ記述をドロープリ
ミティブに変換し、これらのドロープリミティブを文書
を印刷するために必要な他の資源と相互に関連付ける。
変換プロセスの詳細に関しては後述する。
【実施例】例示の目的から図2に機能ブロック線図で示
すように、本発明はコンピュータ・プリンタシステム2
00内に実現されている。従来技術のように、ホストコ
ンピュータ202は印刷すべき文書を含む応用プログラ
ム204を実行する。前述したように、資源は、ハード
ディスクメモリを含むことができるホストコンピュータ
メモリ212のようなホストコンピュータ202の種々
の領域内に記憶されている。種々の記憶領域は、総称的
に資源記憶領域206と呼ばれる。ホストコンピュータ
202は、文書を印刷するために使用可能な実質的に全
ての資源を含んでいる。ROM内に記憶されている若干
のフォント及び共通的に使用される資源は印刷タスクを
通してプリンタ内に記憶させることができる。資源アセ
ンブラ208は文書を調べて、その文書を印刷するため
に必要なのはどの資源かを決定する。文書を調べるにつ
れて資源アセンブラ208はその文書を印刷するために
必要な資源を選択し、その文書を印刷ページを記述する
ドロープリミティブの集合に変換する。選択された資源
及びドロープリミティブはホスト資源記憶装置210内
に記憶される。ホスト資源記憶装置210はホストコン
ピュータメモリ212の一部であっても、または任意の
他の適当な記憶位置であってもよい。資源アセンブラ2
08は、文書と、特定の文書を印刷するために必要な資
源の部分集合との間の従属性を定義する。資源アセンブ
ラ208はこの従属性情報を、ホストコンピュータ20
2に接続されているプリンタ218へ通信する。また資
源アセンブラ208は、その文書を印刷するために最も
効率的なシーケンスに関する情報と、プリンタ218内
に現在どの資源が存在しているかに関するステータス情
報とをプリンタ218から受信する。プリンタ218
は、ホスト資源記憶装置210からダウンロードされた
限定された数の資源を記憶する容量を有しているプリン
タ資源記憶装置220を含んでいる。プリンタ資源記憶
装置220はプリンタメモリ222の一部であっても、
または任意の他の適当な記憶位置であってもよい。図2
にホストコンピュータ202の一部として示してある資
源ローダ214は、資源アセンブラ208が作成した従
属性を使用してドロープリミティブを含む資源がプリン
タ資源記憶装置220へ転送される順序を決定する。ま
た資源ローダ214は新しい資源のための余地を作るた
めに資源をプリンタ資源記憶装置220から解放でき
る、または解放しなければならない順序をも決定する。
資源ローダ214によって転送されたドロープリミティ
ブは、指定された資源を使用すること、図形記号を作成
すること、図形対象を描くこと、英数字を印刷すること
等々をプリンタ218に命令する。プリンタ218内に
配置されているように示されている資源スケジューラ2
16は、代替としてホストコンピュータ202内に配置
してもよい。資源スケジューラ216は、プリンタ動作
のタイミング及び資源転送の実際のタイミングを制御す
る。また資源スケジューラ216は、プリンタ資源記憶
装置220からの資源の削除のタイミング、及びホスト
資源記憶装置210から特定の資源を転送することを要
求するタイミングをも制御する。文書の特定ページに必
要な全ての資源はプリンタ資源記憶装置220内に存在
すると、資源スケジューラ216は要求された資源の部
分集合がそのページを印刷するために使用可能であるこ
とを指示する実行信号を生成する。資源スケジューラ2
16から実行信号を受信すると資源実行装置224はド
ロープリミティブの命令に従って、プリンタ資源記憶装
置220からの資源を使用して現在処理中の文書ページ
のビットマップデータファイルを作成する。資源実行装
置224はこのビットマップデータファイルを印刷エン
ジン226へ転送し、印刷エンジン226は文書ページ
を印刷させる。上述した多くの資源ブロックの物理位置
は、本発明の動作にとって微妙(または臨界的)なもの
ではない。もしコンピュータ・プリンタシステム200
においてプリンタ218が多量の計算能力を有するレー
ザプリンタであれば、上述した全ての資源ブロックをプ
リンタ内に配置することが可能であり、それでも上述し
た本発明の諸面を利用することができる。例えば、資源
スケジューラ216は、上述したようにホストコンピュ
ータ202内にでも、またはプリンタ218内にでも配
置することができる。同様に、プリンタ資源記憶装置2
20を代替としてホストコンピュータ202内に配置し
て差し支えない。もしホストコンピュータ202がウイ
ンドウズ(Windows;商品名)のような環境内で
動作中であれば、プリンタ資源記憶装置220を背景内
で動作するデスプーラ(despooler)機能の一
部とし、応用プログラムを前景内で動作させることがで
きる。それでも、プリンタ資源記憶装置220は未だに
サイズが制限されており、またプリンタ資源記憶装置2
20がプリンタ218内に配置されているのと同一の手
法で動作するから本発明の原理が適用される。背景動作
は応用プログラムのパースペクティブから透明である。
従って、プリンタ資源記憶装置220の実際の位置は微
妙ではないのである。実際には、一般にホストコンピュ
ータ202はプリンタ218よりも大きい計算能力を有
している。従って上述した資源ブロックは、ホストコン
ピュータ202及びプリンタ218の各々の相対的な計
算能力と、ホストコンピュータとプリンタとの間の双方
向通信チャネルの利用率とに依存して、ホストコンピュ
ータ202またはプリンタ218に割当てられる。ホス
トコンピュータ202は、資源をホストコンピュータ2
02内の種々の位置またはプリンタ218内(ROM
に記憶されている文字フォントの場合)に記憶させる。
例えば、絵文字集合は資源アセンブラ208によってア
センブルされ、ビットマップデータファイルとしてホス
ト資源記憶装置210内に記憶される。コンピュータ・
プリンタシステム200は、ホスト資源記憶装置210
内の種々の図形対象を表す点テーブルをも記憶する。点
テーブルは資源アセンブラ208によってホスト資源記
憶装置210内へロードされ、また資源アセンブラ20
8は点テーブルを本発明が使用するデータフォーマット
へ変換する。他の場合には図形対象を記述するデータは
応用プログラムによって点テーブル以外のフォーマット
で記憶させることができる。資源アセンブラ208は適
切なデータフォーマットで点テーブルを作成し、作成し
た点テーブルをホスト資源記憶装置210内に記憶させ
る。これに対してソフトフォント集合は、典型的にはデ
ータファイルとしてハードディスク(図示してない)上
に記憶される。もし特定のソフトフォント文字または絵
筆が必要であると資源アセンブラ208が決定すれば、
その資源はホスト資源記憶装置210内へロードされ
る。従来の、及び本発明のコンピュータ・プリンタシス
テム200では、応用プログラム204はホストコンピ
ュータメモリ212、またはハードディスク(図示して
ない)のような何等かの他の適当な記憶位置に存在する
ことができる文書記述を発生する。応用プログラムは、
1つの応用プログラムから別の応用プログラムへ変化す
ることができるページ記述言語(PDL)を使用して文
書を記憶する。従来のシステムでは、ホストコンピュー
タ内のアセンブラが、PDLを、描写プリミティブ(R
P)と総称することができるドロープリミティブの集合
に変換する。RPは英数字、図形対象、または両者の組
合せを含むことができる。若干の従来のシステムでは、
ホストコンピュータはRPをプリミティブリストの描写
と称されるプロセスで文書ページのビットマップデータ
ファイルに翻訳する。従来のホストコンピュータがプリ
ンタへ転送するのがビットマップデータである。従来の
他のホストコンピュータはRPをポストスクリプト(商
品名)またはPCL(商品名)のような中間レベル言語
に変換する。従来の若干のシステムは、資源アセンブラ
と類似の手法で機能するシステムの一部を実際に有して
いる。この従来のアセンブラはホストコンピュータ内に
あって、PDLをRPL に変換する。前述したパーザ
は従来のシステムの第2の資源アセンブラとして動作
し、RPLを受信して中間データ構造を構成する。この
中間データ構造は中間レベル言語を対応するビットマッ
プに翻訳することが要求されよう。パーザはコードを処
理するように設計されており、印刷ページを生成するよ
うには特別に設計されていない。対照的に本発明のコン
ピュータ・プリンタシステム200は、典型的にはホス
トコンピュータ202内に配置されている単一の資源ア
センブラ208だけを使用している。資源アセンブラ2
08は印刷ページを生成することだけに関与し、資源ア
センブラが作成したコードは文書を効率的に印刷するよ
うに設計されている。資源アセンブラ208は文書を調
べてPDLをRPL に変換し、文書を印刷するために
はどの資源が必要かを決定する。資源アセンブラ208
は選択された資源を集め、それらを関連RPL と共に
ホスト資源記憶装置210内に配置する。本発明は資源
及びRPL を、特定のRPL を有する資源に関連付
ける特定のフォーマットでホスト資源記憶装置内に配置
する必要をなくしている。それどころか実際のデータ構
造及びフォーマットは、本発明の使用にとって重要なも
のではない。本発明を適切に動作させるために当業者に
は公知の多くの異なるフォーマットを受け入れることが
できる。資源とRPL との従属性及び位置を述べるリ
ストが必要な全てである。このリストは資源と関連RP
L とを記憶した位置を指示する一連のポインタの形状
を取ることができる。後述するように、このリストは所
定のRPL 実行シーケンスによって暗示することさえ
もできる。資源をホスト資源記憶装置210内に記憶さ
せる時に、資源及びRPL を含むデータファイルのサ
イズには何等の制約も存在せず、または資源及びRPL
が記憶されるシーケンスにも何等の制約も存在しないか
らそれらは無制約であるものと考えられる。例えば、あ
る文書をユーザが作成し、文書の始めの付近に図形チャ
ートを含むように爾後に編集することができる。この図
形チャートを挿入するために応用プログラムが文書ファ
イル全部を再作成することはない。そうではなく、応用
プログラムは文書の終わりに図形チャートを配置し、文
書内の図形チャートを挿入すべき点にポインタを挿入す
る。ポインタは図形チャートの位置を指し示す。この普
通の技術は逆方向ポインティングを使用する。即ち、文
書内の挿入点は、図形チャートが記憶されている文書フ
ァイル内の後方の位置を逆方向に指し示す。この技術を
図3に図式的に示す。図3に示す文書300はNページ
を有している。番号302で示す文書のページ2はフォ
ント1 304を要求し、一方文書300のページ3
306はビットマップ308で表されている図形チャー
トを要求している。フォント1 304及びビットマッ
プ308は、それぞれフォント及びビットマップを要求
している文書300内のページ2 302及びページ3
306上の位置の後に記憶されるものであることに注
目されたい。データポインタ310及び312はそれぞ
れ、資源を要求している位置304及び308を指し示
している。文書は無制約であるからコンピュータは文書
全体へのアクセスを有しており、上述した手法でポイン
タを使用することができる。しかしながら、文書を印刷
する時にプリンタはファイル全体への同時アクセスを有
していないであろう。従って、文書はプリンタ資源記憶
装置220のサイズ制約及び文書を記憶するシーケンス
の両者によって制約を受けているものと見做される。必
要な資源は、それらを実際に必要とする前にプリンタ内
に存在していなければならず、さもないとプリンタは遅
延させられるか、または遂には特定のページを印刷する
ことができなくなるかも知れない。同じ文書300を制
約された文書として示してある図4に示してあるよう
に、文書は制約された形態にアセンブルしなければなら
ない。要求されたフォント316及びビットマップ31
8はページ2 320及びページ3 322が実際に要
求する前に文書内に現れている。ポインタ324及び3
26は、文書300内の資源が記憶されている位置を指
し示す順方向ポインティングである。このようにする
と、文書の印刷が要求される前に資源は常に存在するこ
とになる。資源は必ずしも文書の始めに位置する必要が
ないことに注意されたい。特定の資源を要求している文
書内の位置の前に資源が配置されていることだけが必要
なのである。例えば、図5に制約された形態で示す文書
300では、フォント1 316は資源を必要としてい
る位置320の直前に配置されている。ポインタ324
は要求された資源の位置を指し示している。同様にビッ
トマップ318はそれを要求している位置322の直前
に位置しており、ポインタ326は資源が要求されてい
る位置を指示している。一般的にホストコンピュータ2
02はプリンタ218よりも多くのメモリを有している
が、ホスト資源記憶装置210に割当てることができる
ホストコンピュータメモリ212の量には制限が存在す
ることに注意されたい。従って、ホスト資源記憶装置2
10はコンピュータ上に記憶されている全ての考え得る
資源を含んではいない。そうではなく、ホスト資源記憶
装置は特定の文書を印刷するために必要な資源及びその
文書を記述するRPL だけを含むのである。文書の特
定の部分が印刷されてしまうと、文書のその特定の部分
に必要であった資源はホスト資源記憶装置210から削
除される。若干の資源はある文書に1回だけしか使用さ
れず、文書のその部分の印刷が完了すると直ちに削除さ
れよう。屡々使用される絵文字集合のような他の資源
は、それが文書に必要でなくなるまでホスト資源記憶装
置210内に記憶される。ホストコンピュータ202は
典型的にはプリンタ218よりも多くのメモリを有して
いるので、ホストコンピュータはホスト資源記憶装置2
10が使用するためにより多くのホストコンピュータメ
モリ212を割当てることができる。少ないメモリを有
しているプリンタ218は、対応する小さいプリンタ資
源記憶装置220を有している。プリンタ資源記憶装置
220は、ホスト資源記憶装置210が含んでいる資源
の集合全体を保持するには不十分な大きさである。従っ
てプリンタ218が資源を必要とする場合には、ホスト
資源記憶装置210からプリンタ資源記憶装置220へ
ダウンロードしなければならない。プリンタ218はプ
リンタ資源記憶装置220内において資源を効率的に使
用し、不必要になった資源を削除し、またはホスト資源
記憶装置210から迅速に再ロードできるようにしなけ
ればならない。以上のように、ホスト資源記憶装置21
0は文書を印刷するために必要な資源を1回だけロード
されるのに対して、プリンタ資源記憶装置220は文書
印刷中に多数回資源をダウンロードされ、解放する。資
源の最も効率的な使用を決定するために、本発明のコン
ピュータ・プリンタシステム200は文書全体を調べ
て、如何にして資源を最も効率的な手法で割当てるかを
決定する。再度図2を参照してコンピュータ・プリンタ
システム200の動作の詳細を説明する。資源アセンブ
ラ208はPDL をRPL の集合に変換し、その印
刷タスクにとってどの資源が必要かを決定する。印刷タ
スクが開始されると、資源アセンブラ208は印刷され
る表面を記述するデータの第1のバンド(もしプリンタ
218がバンディングモードで動作中であれば)、また
はページ(もしプリンタ218がページモードで動作中
であれば)を調べ始める。この応用の目的のために、処
理中の文書のユニットサイズ、即ちバンドかページかを
データブロックと呼ぶ。資源アセンブラ208は、資源
記憶領域206から文書を印刷するために必要であろう
資源を選択する。また資源アセンブラ208は、特定の
データブロックに対するこれらの資源の従属性をも決定
する。例えば資源アセンブラ208は、第1ページ上の
数式に関しては特定のフォント型が必要であり、残余の
ページに関しては別のフォント型が必要であることを決
定することができる。更に点テーブル及び絵筆のような
若干の図形資源を必要とするグラフをそのページ上に印
刷することもできる。資源アセンブラ208は、従属性
と、これらの資源を要求しているデータブロックとを明
示的に述べるリストを作成する。このリストは、リスト
の形状である必要がないことに注目されたい。前述した
ように、このリストはメモリ位置を指し示すポインタの
形状であっても、または資源アセンブラ208がRPL
を作成するシーケンスによって暗示的に定義されるも
のであってさえよい。例えば、もしプログラマが第1の
RPL を作成し、直ちに実行するプログラムを書くも
のとすれば、ホスト資源記憶装置210内で作成され、
記憶される表現されたリストは存在しない。しかしなが
ら、RPL内でタスクが作成される順序によって指定さ
れる暗示リストが存在する。本発明の効率的な動作のた
めに重要なものは、資源アセンブラ208が従属性を決
定し、他の資源ブロックにこれらの従属性を知らせるこ
とである。資源アセンブラ208が指定する従属性には
2つの異なる型がある。第1の型の従属性は、上述した
ように要求された資源を特定のデータブロックに関係付
けるオペランド従属性である。第2の型の従属性は、R
PLを処理するシーケンスを指定する実行従属性であ
る。若干の従来システムは、それらが文書を印刷する時
に実行従属性を満足させることができない。例えば若干
の従来システムは、本文を図形から分離し、両者を独立
的に処理する。従って印刷ページは、ユーザが表示画面
上で見ているものではないかも知れない。従って従来シ
ステムは、必ずしも“貴方が見ているものは貴方が入手
しているものである”(WYSIWYG)をもたらすと
は限らない。これに対してコンピュータ・プリンタシス
テム200は、システムがデータブロックを本文部分と
図形部分とに分割するのではなくデータブロック全体を
処理するから、上述したように、たとえそれらがRPL
のシーケンス内に暗示されているとしても常に実行従属
性を満足する。もしプリンタ218とホストコンピュー
タ202との間に双方向通信が存在していれば、若干の
実行従属性をプリンタ218によって指定することがで
きる。詳細を後述するようにプリンタ218は、印刷プ
ロセスの効率を最大にするためにデータのページまたは
バンドを処理すべき順序を指定することができる。もし
実行従属性がプリンタ218によって指定されれば、資
源アセンブラ208がこれらの従属性をコンパイルす
る。もしデータブロック内に維持しなければならない特
定の描き順序が存在すれば、資源アセンブラ208はそ
れ自体の実行従属性を生成することもできる。例えばプ
リンタ218は、最初に文書のページ2を処理し、ペー
ジ2を下から上へ処理することを資源アセンブラ208
に命令することができる。これはプリンタ218によっ
て指定される実行従属性である。しかしもしページ2上
に重なり合った図形対象が存在すれば、印刷ページに意
図したように重なった対象が現れるようにこれらの対象
の描き順序を指定しなければならない。以上のように、
資源アセンブラ208はオペランド従属性及び全ての実
行従属性(資源アセンブラ208によって指定されてい
ようとも、またはプリンタ218によって指定されてい
ようとも)の両者を述べるリストを作成する。前述した
ように、若干の従属性に関するリストはバンドまたはペ
ージ内のドロープリミティブのシーケンス内に暗示する
ことができる。例えばコンピュータ・プリンタシステム
200は常に第1RPL を先ず実行することによって
明示的に述べてはならない実行従属性を作成する。特
に、精緻なプリンタ及び双方向通信を使用して最大の効
率を得るために、コンピュータ・プリンタシステム20
0の現在では好ましい実施例は暗示従属性を使用しな
い。それはこれらがタスクのシーケンスの効率を低下さ
せるように、実行を不要に制限し得るからである。暗示
従属性を使用する上例は、本発明の広い原理を使用すれ
ばコンピュータ・プリンタシステム200の全ての発明
的な面の使用を必要とせずに印刷プロセスの総合効率を
改善できることを示すために説明したに過ぎない。現在
では好ましい実施例では資源アセンブラ208は、資源
ローダ214、資源スケジューラ216、及びプリンタ
218を含むシステムの他の成分へ従属性を明示的に通
信する。もしコンピュータ・プリンタシステム200が
双方向通信能力を有していればプリンタ218はプリン
タ資源記憶装置220の現ステータスに関する情報を資
源アセンブラ208へ送ることができる。このステータ
ス情報は、どの資源がプリンタ資源記憶装置220内に
既に存在しているか、及びプリンタ資源記憶装置220
内にどれ程多くの使用可能な空間が存在しているかを含
む。更に、プリンタは文書を印刷するために最も効率的
なシーケンスに関して資源アセンブラ208に命令す
る。これは、双方向化能力を有し、且つ複数の用紙トレ
イから印刷することができる大きい精緻なレーザプリン
タにおける重要なプロセスである。これらのプリンタで
は、10シート程度の用紙が同時に印刷エンジンを通っ
て移動することができる。紙シートの両側に印刷される
(双方向モード)ページは用紙の一方の側では上から下
へ、そして用紙の他方の側では下から上へ処理される。
ページサイズが異なれば印刷エンジンの時間長は異な
る。ランドスケープ(landscape)モードのよ
うなモードは他のモードより長い印刷エンジン処理時間
を必要としよう。精緻なレーザプリンタの印刷エンジン
の内部では複数のページを互いに実際に移動させること
ができる。その結果、ページを処理するための最も効率
的なシーケンスはページの数字順(即ち、ページ1、
2、3、・・・)ではないかも知れない。本発明のコン
ピュータ・プリンタシステム200は、プリンタ218
が文書を印刷するための最も効率的なシーケンスを決定
すること、及びその情報を資源アセンブラ208へ通信
することを許容する。一方向通信だけを有するシステム
では、プリンタ218はステータス情報または印刷シー
ケンス命令を通信することはできない。しかしそれでも
資源アセンブラ208は明示従属性をプリンタ218へ
通信するので、プリンタ218はプリンタ資源記憶装置
220から資源を削除できる時点を知る。もし一方向通
信だけしか使用できなくてもホストコンピュータ202
が一方向モードでプリンタメモリ222を管理するので
資源アセンブラ208はプリンタ資源記憶装置220の
ステータスを知ることができる。以上のように資源アセ
ンブラ208は、印刷タスクの開始時にどの資源が既に
プリンタ資源記憶装置220内に存在しているかを知
る。前述したように、資源実行装置224は典型的にR
PL を、印刷エンジン226によって印刷されるビッ
トマップデータに変換する。一旦印刷エンジン226が
始動するとそれはそのページの印刷を停止することがで
きず、停止させれば誤りが発生しよう。従って一旦印刷
エンジンに委託してしまうと、RPLを実時間でビット
マップデータに変換するか、または予めビットマップデ
ータに変換しておかなければならない。勿論、ドットマ
トリクスプリンタ及びインクジェットプリンタのような
若干のプリンタは誤りを発生することなくページの途中
で停止させることができる。プリンタ資源記憶装置22
0の現ステータス及びプリンタ218の総合処理能力を
知って資源アセンブラ208は各データブロックを調
べ、印刷エンジン226が走っている間にプリンタ21
8がそのデータブロックに関するRPL を実時間でビ
ットマップデータに変換できるか否かを決定する。もし
プリンタ218がそのデータブロックに関するRPL
を実時間でビットマップデータに変換することができな
ければ、資源アセンブラ208はホストコンピュータ2
02に命令してRPL をビットマップに処理させ、そ
のビットマップをプリンタ218へ転送させる。代替と
して、もしプリンタメモリ222がそのページ全体に関
するビットマップデータファイルを記憶するのに十分な
容量を有していれば、資源アセンブラ208はプリンタ
218に命令してRPL をビットマップデータファイ
ルに変換させ、印刷エンジン226に委託するまでその
ビットマップをプリンタメモリ222内に記憶させる。
コンピュータ・プリンタシステム200のどの部分がR
PLをビットマップに変換するかに関する決定は、変換
タスクの相対的な複雑さと、システムの各部内のプロセ
ッサの相対的な処理能力とに依存する。現在好ましい実
施例では、資源アセンブラ208はコンピュータ・プリ
ンタシステム200のどの部分がデータを処理するのか
を決定する上で3つの要因を考慮する。これらの要因と
は、 1.ホストコンピュータ202がRPL をビットマッ
プデータに処理するのに要する時間長、 2.プリンタ218がRPL をビットマップデータに
処理するのに要する時間長、及び 3.通信チャネルがRPL またはビットマップデータ
を転送するために要する時間長 である。換言すれば、資源アセンブラ208は特定のデ
ータブロックに関するRPLをビットマップデータファ
イルに処理するのに要する時間+通信チャネルがビット
マップデータファイルをプリンタ218へ転送するのに
要する時間長を計算し、それと通信チャネルがRPL
をプリンタ218へ転送するのに要する時間長+プリン
タ218がRPL をビットマップデータに処理するの
に要する時間長とを比較する。データブロックを処理さ
せるためにホストコンピュータ202を選択するか、ま
たはプリンタ218を選択するかは、詳細を後述するコ
ストメトリクスによって決定される。コンピュータ・プ
リンタシステム200は、データ処理をホストコンピュ
ータ202とプリンタ218との間で行き来するように
移動させることによって負荷の平衡化をも遂行する。資
源アセンブラ208は、システムのどの部分がデータブ
ロックを最も効率的に処理できるかに依存して、データ
ブロックの処理のためにホストコンピュータ202また
はプリンタ218を選択する。例えば、もし特定のタス
クがページ上に多数の線を描くことを要求し、ホストコ
ンピュータのプロセッサがプリンタのプロセッサの2倍
の速さであれば、多分ホストコンピュータ202がデー
タを処理することを命令されよう。一方、もし変換が比
較的簡単であり、プリンタ218がビットマップを記憶
するメモリ容量を有していればプリンタのプロセッサが
データの処理を命令され、ホストコンピュータのプロセ
ッサは次のデータブロックを自由に処理できる。この計
算はデータブロック毎に変化できる動的なプロセスであ
ることに注目されたい。総合的な目的は、最も効率的な
手法で文書を生成することである。本発明のコンピュー
タ・プリンタシステム200は、ホストコンピュータ2
02及びプリンタ218の両方の潜在的な計算能力を使
用することによってこれを許容する。負荷の平衡化はホ
ストコンピュータ202及びプリンタ218の相対的な
計算能力、データ通信チャネルの速度、ホスト資源記憶
装置210及びプリンタ資源記憶装置220の相対的な
サイズ、印刷タスクの複雑さ、及びホストコンピュータ
202及びプリンタ218が現在遂行中のタスクのよう
な種々のパラメタに基づいている。前述したように負荷
平衡化は動的プロセスであって、資源アセンブラ208
は上述したパラメタに基づいて文書の若干のページをホ
ストコンピュータ202に割当て、他のページをプリン
タ218に割当てて処理させるることができる。負荷平
衡化は、単一のページ内でデータ処理責務をホストコン
ピュータ202とプリンタ218との間で移動させるこ
とさえも可能である。同一ページを処理するコンピュー
タ・プリンタシステム200の異なる部分の例は、文書
の特定のページが2つの重なり合った円のような図形対
象を含む場合に生じ得る。プリンタが現在印刷していな
ければ、資源アセンブラ208は第1の円のPDL 記
述をプリンタ218へ送ることができる。従ってプリン
タ218はPDL を第1の円に翻訳するために時間を
使う。ホストコンピュータ202はプリンタ218より
も大きい計算能力を有しており、またプリンタは第1の
円を翻訳するために既に多忙であるので、ホストコンピ
ュータ202は第2の円に関するPDL を翻訳するこ
とができる。以上のように、資源アセンブラ208はデ
ータ処理責務をホストコンピュータ202とプリンタ2
18との間で負荷平衡させるために使用される。前述し
たように文書の特定のデータブロックのために必要な資
源は、その特定のデータブロックのための特定の資源に
関するコンピュータ・プリンタシステム200内の従属
性を作成する。これらの従属性はデータブロック毎に変
化することができる。資源アセンブラ208はこれらの
従属性を明示的に述べて、どの資源が特定のデータブロ
ックのために必要であるかをプリンタ218に知らせ
る。従ってプリンタは必要な資源を各データブロックに
関係付ける一種の資源の“メニュー”を有している。デ
ータブロックと資源との間の明示従属性が得られている
ために、双方向通信を使用してプリンタ218はそれ自
体のメモリを管理することができる。プリンタ218は
明示従属性のメニューを使用し、プリンタ資源記憶装置
220の効率を最大にするような手法で、ホスト資源記
憶装置210に資源を要求する。例えば、明示従属性は
1つのデータブロックが特定のフォント集合と特定の絵
文字集合とを要求していること、及び次のデータブロッ
クが同一のフォント集合ではあるが異なる絵文字集合を
要求していることを述べることができる。プリンタ21
8は一時にこれら3つの資源(フォント集合及び2つの
絵文字集合)の全てをプリンタ資源記憶装置220内に
保持することができるかも知れない。従ってプリンタ2
18はこれら3つの資源の全てを要求する。資源管理の
より困難な面は、どの資源をプリンタ資源記憶装置22
0から削除すべきかを決定することである。もし特定の
データブロックを印刷するためにプリンタ資源記憶装置
220から他の資源を削除しなければならない程大きい
資源を必要とすれば、プリンタ218はどの資源(1ま
たは複数)をプリンタ資源記憶装置220から削除する
か、また要求された資源を将来のデータブロックのため
にホストコンピュータ202から何時戻すかを決定する
ことができる。更に、もし誤り復元が要求されていれ
ば、プリンタ218は失われたページを復元するために
はどの資源が必要であるかを知り、もし必要な資源が既
にプリンタ資源記憶装置220から削除されていればそ
の必要な資源をホストコンピュータ202に要求するこ
とができる。以上の説明は、ホストコンピュータ202
とプリンタ218との間に双方向通信が存在している場
合に適用できる。もし一方向通信だけしか使用できなけ
ればプリンタメモリ222はホストコンピュータ202
によって管理される。この場合ホストコンピュータ20
2は、資源がプリンタ資源記憶装置220内へロードさ
れる、またはプリンタ資源記憶装置220から削除され
るシーケンス、及び資源をロード及び削除する時点を決
定する。たとえ一方向通信でプリンタ218がそれ自体
のメモリを管理できないとしても、パーザを排除し、資
源アセンブラ208及びホスト及びプリンタ資源記憶装
置210及び220のようなコンピュータ・プリンタシ
ステム200の部分が付加されているので、本発明は従
来技術に対して性能の改造を提供する。本発明のコンピ
ュータ・プリンタシステム200では、資源は文書全体
の印刷途中に複数回プリンタ資源記憶装置へロードし、
該装置から解放することができる。どの資源がプリンタ
資源記憶装置220内にあるべきかを決定するジョブは
資源ローダ214によって遂行され、詳細に関しては後
述する。資源アセンブラ208は資源ローダ214の数
データブロック前方の文書を調べて将来データブロック
のための資源を生成する。これは資源ローダ214が先
見して資源の最も効率的な割当てを決定することを許容
する。若干の資源は文書を通して多くのデータブロック
が使用でき、従って文書を通して従属性を有している。
プリンタ資源記憶装置220内の使用可能な空間に依存
して、印刷プロセスを通してこれらの資源をプリンタ2
18内に保持することがより効率的であるかも知れな
い。例えば第2の資源は文書の中間で1回だけ必要であ
るかも知れない。この場合、後刻プリンタ218が若干
の他の資源を必要としなくなる時点まで第2の資源はロ
ードされず、プリンタ資源記憶装置220内のより多く
のメモリが使用可能である。第2の資源は一旦使用され
るとプリンタ資源記憶装置220から削除されて他の資
源のための余地が作られる。どれ程遠くを先見するかの
決定は動的なプロセスである。例えば文書の開始時にお
ける目的は、印刷エンジン226を始動させることであ
る。従って、できるだけ速やかにプリンタ218へ資源
を転送するために資源アセンブラ208の先見動作は制
限される。しかし、プリンタ218が第1のデータブロ
ックを処理している間は、資源アセンブラ208は将来
データブロックを先見し、ホスト資源記憶装置210の
ために資源を選択し、そして将来ページのためにRPL
を構成することができる。理想的には、資源アセンブ
ラ208は何等かの印刷が開始される前に文書全体を調
べるために先見することができる。しかしながら、印刷
エンジン226を始動させるという要望が、初期先見能
力を制限する。他の応用プログラムが走ることができる
ようにホストコンピュータメモリ212の使用を最小に
する要望も、資源アセンブラ208が先見する能力を制
限する。目的は印刷エンジン226をできる限り効率的
に動き続けさせることである。資源アセンブラ208が
先見する実際のページ数は、文書の合計長、印刷エンジ
ン226が処理中の文書の現ページ、及び文書の複雑さ
のような要因に依存する。資源アセンブラ208の先見
能力は、プリンタ資源記憶装置220への資源の流れを
制御する資源ローダ214の能力を向上させる。資源ア
センブラ208の動作の例として、本文の特定のページ
が5つの異なるフォント集合とページを印刷するための
点テーブル(ベジェ曲線を描くための)を必要とするも
とのとする。資源アセンブラ208はページを調べて明
示従属性のリストを作成する。前述したように資源アセ
ンブラ208は、これらの従属性をコンピュータ・プリ
ンタシステム200の他の部分へ通信する。同時に資源
アセンブラ208は、必要な資源及びそのページを記述
するRPL を含むであろうホスト資源記憶装置210
をアセンブルし始める。双方向モードでは、資源アセン
ブラ208はデータブロックが処理されるシーケンスに
関する情報をプリンタ218から受信することに注意さ
れたい。簡易化のために、資源アセンブラ208がその
ページのデータブロックを上から下へ処理するものとす
る。もしプリンタ218がページモードで動作していれ
ば単一のRPL が存在し、もしプリンタ218がバン
ディングモードで動作していれば各バンド毎に異なるR
PLが存在するであろう。RPLは、そのページ上の特
定点における文字の特定シーケンスを印刷することをプ
リンタ218に告げるフォーマットでデータブロック
(ページまたはバンド)を記述する。コンピュータ・プ
リンタシステム200はこの情報を使用して文字シーケ
ンスの記述を構成し、この記述をホスト資源記憶装置2
10内に記憶する。“記述を構成する”の範囲は、ホス
トコンピュータ202内の記憶位置からの文字シーケン
スのビットマップをロードすることから、フォント基準
化技術を使用して方程式の集合から文字シーケンスのビ
ットマップを構成するまでにわたっている。もしフォン
ト集合全体を転送する方がより効率的である程多くのあ
るフォントからの文字が必要であれば、資源アセンブラ
208はあるフォント全体を記憶することができる。一
方、もし制限された数の文字だけが必要であれば、資源
アセンブラ208は必要な文字だけを記憶するために絵
文字集合を開くことができる。本例では、第1のフォン
ト集合の全体を転送することができる。第2のフォント
集合から必要とされる文字は方程式のための数字と数学
記号だけであることができる。資源アセンブラ208は
方程式のための文字を記憶するために絵文字集合を開
く。ページの次の部分が制限された数のイタリック文字
(フォント番号3)を必要とするならば、絵文字集合は
開かれたままになる。絵文字集合のサイズは動的に可変
であることに注目されたい。例えば、印刷動作の始めに
おける目的はできる限り迅速に印刷エンジン226を働
かせることである。この目的のために、資源アセンブラ
208は文書の第1のデータブロックのために小さい絵
文字集合を使用することができるので、絵文字集合はで
きるだけ速やかにプリンタ資源記憶装置220へ転送す
ることができる。これは、働き続けさせる何かを印刷エ
ンジン226に与えながら、資源アセンブラ208に爾
後のデータブロックのための資源をアセンブルさせる。
爾後の絵文字集合のサイズは一般に、プリンタ資源記憶
装置220のサイズ、及びホストコンピュータ202と
プリンタ218との間のデータ転送速度のようなパラメ
タによって決定される。資源アセンブラ208は、絵文
字集合が所定のサイズになるまで絵文字集合を開き続け
る。前述したように、絵文字集合は異なるフォント集合
からの文字を含むことができる。反対に、同一のフォン
ト集合からの文字は、従属性故に異なる絵文字集合内に
記憶することができる。例えば上述した数式内に使用さ
れる文字の若干は爾後のデータブロックにおいて印刷さ
れる第2の方程式に使用することができる。第2の方程
式は第2のフォント集合からの付加的な文字と、第4及
び第5のフォント集合からの文字とをも使用するかも知
れない。資源アセンブラ208は、第2の方程式に必要
な付加的な文字だけを含む第2の絵文字集合を構成する
ことができる。資源実行装置224がRPL 及び資源
をビットマップデータファイル内へ処理する時に、資源
実行装置224は両絵文字集合からの文字を使用して第
2の方程式のためのビットマップを構成する。絵文字集
合を配置するためのRPLは、印刷ページ上の特定の位
置にどの絵文字集合及びどの文字を配置しつつあるかを
識別するフォーマットである。第2の方程式のためのR
PL の例は以下のようなシーケンスを有することがで
きる。絵文字集合1、文字1、絵文字集合1、文字2、
絵文字集合1、文字3、絵文字集合1、文字12、絵文
字集合2、文字1、絵文字集合2、文字2、絵文字集合
1、文字17、絵文字集合2、文字3、絵文字集合2、
文字4、絵文字集合2、文字4、絵文字集合2、文字
5、絵文字集合2、文字6、及び絵文字集合2、文字
7、単一のRPL 内に両絵文字集合を使用すると、プ
リンタ資源記憶装置220内に同時に両絵文字集合が得
られることに注目されたい。もし第1の絵文字集合がプ
リンタ資源記憶装置220から削除されていれば、資源
ローダ214は第1の絵文字集合をホスト資源記憶装置
210から再ロードしなければならないことを決定す
る。資源スケジューラ216は、プリンタ資源記憶装置
220がオーバフローしないように、またプリンタ資源
記憶装置ないの資源がタイムリーな手法で使用可能とな
るように、要求のタイミングを制御する。従来のシステ
ムはフォント全体をダウンロードし、プリンタメモリを
管理することを企図していない。これはメモリのオーバ
フローをもたらし得るが、このようになると印刷タスク
を完了させることはできない。上述したようにインクリ
メント的なダウンロードを遂行できるシステムでさえ、
ダウンロードされたフォントを周期的にクリアすること
を除いて、プリンタメモリを管理することを企図してい
ない。対照的に、本発明のコンピュータ・プリンタシス
テム200は、上述したように必要な文字だけをプリン
タ資源記憶装置220へ転送し、絵文字集合資源を能動
的に管理するので、文字を絵文字集合内へアセンブルす
ることによって時間及びプリンタメモリを節約する。従
って、印刷プロセスの総合効率が向上する。資源アセン
ブラ208の動作を要約すれば、資源アセンブラ208
は資源従属性を決定し、その情報をコンピュータ・プリ
ンタシステム200の他の部分へ通信し、そして文書記
述を最も効率的な手法で処理する。資源アセンブラ20
8はデータブロックを記述するRPL をも作成し、R
PL及び資源をホスト資源記憶装置210内に記憶す
る。資源ローダ214は、資源がプリンタ資源記憶装置
220内へロードされ、それから解放されるシーケンス
を決定する責を負う。資源ローダ214は、資源アセン
ブラ208が決定したシステム従属性へのアクセスを常
に有しているので、最も効率的な資源のローディング及
び再ローディングのシーケンスを決定することができ
る。資源ローダ214は、コンピュータ・プリンタシス
テム200の通信能力に依存してホストコンピュータ2
02内に配置しても、またはプリンタ218内に配置し
てもよい。もしホストコンピュータ202からプリンタ
218までの一方向通信だけしか存在しなければ、資源
ローダ214は常にホストコンピュータ202に頼るこ
とになる。従ってプリンタメモリ222はホストコンピ
ュータ202によって管理される。しかしながら、もし
双方向通信能力が存在していれば、資源ローダ214を
プリンタ218内に存在させることができ、プリンタは
それ自体のメモリを管理できるようになる。資源ローダ
214はRPL 及び資源の両者のプリンタ218への
転送を制御する。前述したようにホスト資源記憶装置2
10は、資源アセンブラ208がアセンブルした資源を
1回だけホスト資源記憶装置210内へロードするのに
十分に大きいサイズである。ホスト資源記憶装置210
は資源のサイズにも、またはプリンタ資源記憶装置22
0のサイズによって賦課される制約にも関係していな
い。一方、プリンタ資源記憶装置220はサイズに制限
があり、資源はサイズ制限によって制約される。プリン
タ資源記憶装置220を効率的に管理するために、資源
ローダ214は既にプリンタ資源記憶装置220内にあ
る各資源のサイズ及び資源従属性(資源アセンブラ20
8によって先に決定されている)を調べ、資源をプリン
タ内へロードする及びプリンタから解放する順序を決定
するので、プリンタ資源記憶装置220が空間を使い果
たすことはない。以上のように資源ローダ214は印刷
タスクの途中で特定の資源を多数回ロードし、解放する
ことができる。資源ローダ214は、特定の資源が不要
になった時にそれを解放できることに注目されたい。特
定の資源はプリンタ218内でまだ必要であるかも知れ
ないので、プリンタ218はその資源を直ちに削除する
ことはできない。ホストコンピュータ202とプリンタ
218とは非同期的に動作するから、資源ローダ214
による資源の解放が直ちにプリンタ資源記憶装置220
からの資源の削除をもたらすことはない。従って資源を
“解放”及び“削除”するという語は、同期していな
い。資源をプリンタ資源記憶装置220から排除すべき
であると資源ローダ214が決定すると、資源が解放さ
れる。資源ローダ214の観点から、資源は最早プリン
タ218内に存在しない。次いで資源ローダ214は次
の資源のロードまたは解放を指定する。プリンタ218
がその中で最早資源を必要としなくなると資源は削除さ
れ、実際にプリンタ資源記憶装置220から資源を削除
する。資源ローダ214は、各資源のサイズと、効率的
な観点から、プリンタ資源記憶装置220内に存在させ
る特定の資源のためにそれが意味をなしているか否かだ
けに関心がある。資源ローダ214はプリンタ資源記憶
装置220のサイズ、その中の使用可能な空間、及びプ
リンタ資源記憶装置220の現状(即ち、どの資源がプ
リンタ資源記憶装置内に存在しているか)を追跡し、ど
の資源を保持するか、または解放するかを決定する。資
源ローダ214は現RPL 及び 将来RPLの両者に
関する明示従属性を調べる。資源ローダ214は資源を
ロード及び解放すべき順序だけに関心があり、資源変化
の実際のタイミングには無関係であることに注目された
い。プリンタ資源記憶装置220に対する変化のタイミ
ングは資源スケジューラ216によって制御される。前
述したように、明示的に述べられた従属性によって資源
ローダ214は、資源をプリンタ資源記憶装置220内
へローディングするシーケンスを決定するのが容易にな
る。より困難なタスクは、新しい資源のために余地を作
るために資源をプリンタ資源記憶装置220から何時解
放するかを決定することである。再び使用されることが
ない資源は無関係に削除できることは明白である。しか
しながら、もしある資源を近い将来再度使用するのであ
れば、資源ローダ214はどの資源を解放して新しい資
源のために余地を作るかを決定しなければならない。従
来の多くのキャッシング(caching)システムに
おける一般的方策は、最も古く使用された項目を削除
(即ち、最も長い時間前に使用された資源を削除)する
ことである。この方策は、将来必要とされることが少な
い資源を予測するためには効率的ではない。コンピュー
タ・プリンタシステム200は、明示従属性の故に、資
源の洞察的キャッシングを遂行して文書の将来のデータ
ブロックのための資源の最も効率的な記憶を予測するこ
とができる。資源は、資源が使用される順序、資源を記
憶するために必要な空間の量、及びもし資源をプリンタ
資源記憶装置220から解放しなければならなければ資
源を再ロードするために必要な時間に基づいて管理され
る。資源ローダ214は明示従属性を使用して、現在プ
リンタ資源記憶装置220内にある資源を資源ローダが
調べてどの資源が最も遅い時間に使用されるかを決定す
るような“時間線”を確立する。しかし前述したよう
に、資源ローダ214は削除される資源のサイズ及び資
源を将来再ロードするために必要な時間をも考慮する。
洞察的キャッシングの例としてプリンタ資源記憶装置2
20が既に10資源(この例のために一般的に1乃至1
0のラベルを付す)を含み、特定のデータブロックのた
めにプリンタ218が番号11の資源を必要としている
ものとする。資源ローダ214は時間線を調べ、例えば
資源番号8が最も遅い時間に使用されることを決定する
ことができる。しかしもし資源番号8のサイズが小さけ
れば、プリンタ資源記憶装置220から資源番号8を解
放した後でも必要な資源番号11をロードための十分な
空間がないことが考えられる。従って、資源ローダ21
4は再度時間線を調べ、資源番号8の次に最も遅い時間
に使用される資源を決定する。例えば資源番号2が解放
できるものとする。しかしながら、番号2の資源をプリ
ンタ資源記憶装置220から解放した場合に必要以上の
自由空間がプリンタ資源記憶装置220内に生じ、また
近い将来番号2の資源を再ロードするには極めて長い時
間を消費するようであれば、資源ローダ214は再度時
間線を調べて1またはそれ以上の他の資源を代わりに解
放する。この例では、要求された資源番号11のための
余地をプリンタ資源記憶装置220内に作るために、資
源ローダ214は資源願望2及び8の代わりに資源番号
7及び5を解放することができる。以上は、資源ローダ
214がプリンタ資源記憶装置220を管理することを
考慮する際の種々のパラメタの例として説明したに過ぎ
ない。資源ローダ214は資源をプリンタ資源記憶装置
220内へロードし、該装置から解放する順序を決定す
るが、資源管理の実際のタイミングは資源スケジューラ
216によって遂行される。資源スケジューラ216は
プリンタ作動のシステムと見做すことができる。しかし
ながら前述したように、資源スケジューラ216を物理
的にプリンタ218内に配置する必要はない。一方向通
信だけを有するコンピュータ・プリンタシステム200
では、資源スケジューラ216をホストコンピュータ2
02内に配置してホストコンピュータ202からプリン
タメモリ222を管理することができる。もしコンピュ
ータ・プリンタシステム200が双方向通信を有してい
れば、資源スケジューラ216をプリンタ218内に配
置してプリンタにそれ自体のプリンタメモリ222を管
理させることができる。ホストコンピュータ202、プ
リンタ218、及びプリンタ内の印刷エンジン216は
全て非同期で動作するから、これら3つの非同期部分間
に競合が発生しないように資源スケジューラ216は全
てのタイミングを制御しなければならない。資源スケジ
ューラ216は全てのプリンタタイミングを初期化して
制御し、印刷エンジン226に動作を同期させ、特定の
資源をプリンタ資源記憶装置220内へ受け入れる時点
を決定する。資源スケジューラ216は、特定の資源を
プリンタ資源記憶装置220から削除する時点をも決定
する。前述したように、資源のローディング及び解放の
シーケンスを指定することが資源スケジューラ216の
タスクである。資源スケジューラ216は先に資源ロー
ダ214によって解放された特定の資源が将来必要では
なくなる時点を決定する。資源ローダ214と同様に、
資源スケジューラ216も資源アセンブラ208によっ
て作成された明示従属性へのアクセスを有している。資
源ローダ214とは異なり、資源スケジューラ216は
現ページのために必要な資源がプリンタ資源記憶装置2
20内に存在しているか否かだけに関心がある。現ペー
ジのための全ての従属性が満たされると(即ち、全ての
必要資源がプリンタ資源記憶装置220内に存在してい
ると)、資源スケジューラ216は印刷エンジン226
にページを印刷することを委託する実行信号を生成す
る。詳細を後述するように、印刷エンジンはページの途
中では停止させることができないから、一旦あるページ
またはそのページを印刷するように印刷エンジンに委託
した後は印刷エンジンにはビットマップデータを実時間
で供給しなければならない。さもないと適切な印刷がな
されなくなる。双方向プリンタはページの各側毎に実行
信号を必要とする(即ち、印刷プロセスは用紙の側と側
との間で停止させることができる)ことに注意された
い。資源スケジューラ216は、印刷エンジンへの実時
間委託を行うことができる時点を決定し、印刷エンジン
にページの印刷を委託する実行信号を生成する。資源ス
ケジューラ216は、一方向及び双方向の両通信におい
て同じような機能を遂行する。一方向システムでは資源
スケジューラ216は、ホストコンピュータ202へプ
リンタステータスを指示するハードウエア内に話中(B
USY)フラグを生成する。また資源スケジューラ21
6は、プリンタ資源記憶装置220から資源が実際に削
除される時点をも決定する。双方向システムでは資源ロ
ーダ214がプリンタ218からプリンタメモリ222
を管理し、特定の資源に対する特定の要求をホストコン
ピュータ202に対して行う。更に資源スケジューラ2
16は印刷プロセスを監視して、ページが印刷エンジン
226内の最終用紙ジャム(jam)センサを通過した
時点をホストコンピュータ202へ通知する。従ってホ
ストコンピュータ202は、誤り復元を提供するために
そのページに関連する資源を最早保持している必要がな
くなったことを知る。資源スケジューラ216は印刷タ
スクのための用紙経路をも計画することができる。これ
は、多数の用紙貯蔵器、複数の用紙サイズ及び経路を有
する大型プリンタには特に重要である。最適用紙経路を
計画すると印刷タスクの総合効率が改善される。資源実
行装置224は資源スケジューラ216から実行信号を
受け、RPLを印刷エンジン226がページを実際に印
刷するために使用することができるビットマップに変換
する。他の資源は、ビットマップ形状でプリンタ資源記
憶装置220内に既に存在していよう。資源実行装置2
24は、現在プリンタ資源記憶装置220内で使用可能
な資源を使用してビットマップを生成する。本発明のコ
ンピュータ・プリンタシステム200は、バンディング
モードまたはページモードで動作するプリンタと共に働
く。もしバンディングモードが使用されていれば、資源
実行装置224は実時間動作に拘束される。即ち、一旦
印刷エンジン226に対して実時間委託がなされると、
資源実行装置224は全てのRPL を一時に1バンド
ずつ実時間でビットマップに変換しなければならず、そ
うでないと誤りが発生しよう。もしプリンタ218が
(バンディングモードに対抗して)ページモードで動作
していれば、実時間委託は存在しない。資源実行装置2
24は、ビットマップを印刷エンジンへ転送する前にペ
ージ全体をビットマップに変換することができる。本発
明のコンピュータ・プリンタシステム200は、ページ
モードでも、またはバンディングモードでも動作するこ
とができる。RPLをビットマップデータファイルに実
際に変換するのは当業者には公知であり、その説明は省
略する。印刷エンジン226は資源実行装置224から
ビットマップデータを受け、このビットマップデータを
ページ上に印刷させる。印刷エンジン226の使用は当
業者には公知であり、その説明は省略する。文書の1つ
のページに関するビットマップデータが印刷エンジン2
26によって処理されるにつれて、用紙はプリンタ21
8を通って移動する。印刷エンジン226を通して、用
紙のジャムまたは低トーナ状態のような誤りを検出する
ための複数のセンサが存在している。従来のシステム
は、ページが最終用紙ジャムセンサを通過するまでプリ
ンタメモリ内にビットマップデータを保持する。もし用
紙のジャム誤りが発生すれば、従来のシステムはジャム
を生じたページを再印刷するために既にビットマップ形
状にあるデータを有している。しかしもしコンピュータ
・プリンタシステム200が双方向通信能力を有してい
れば、ビットマップデータはプリンタ218内に維持さ
れておらず、ホストコンピュータ202内に誤り回復デ
ータを生成する。ビットマップデータが既にプリンタメ
モリ内にあってページがジャムを発生すれば再印刷しよ
うと待機している従来システムの方が本発明よりも誤り
回復が速いように見える。しかし通常の印刷プロセスで
はページジャム誤りは滅多に発生するものではないか
ら、将来のページのためにデータの処理を継続し、誤り
回復のための最も効率的な技術に関して心配しない方が
総合印刷プロセスとしてはより効率的である。従って本
発明のコンピュータ・プリンタシステム200は文書全
体を印刷するための最も効率的な技術に関心を寄せてい
るのである。従来のシステムは、ページが最終用紙ジャ
ムセンサを通過してしまうまでプリンタメモリがビット
マップデータを保持させられているので、次のページの
ためのデータを直ちに処理することはできない。紙シー
トを取り、用紙上に像を発生させ、用紙を用紙トレイ内
へ落とすのに、典型的な印刷エンジンは約10秒を要す
る。本発明は、用紙がジャムしないことを見越して、文
書内の将来のページのためのデータの処理を継続する。
従来のシステムが印刷された用紙が最終用紙ジャムセン
サを通過するのを待機している時間中に、本発明のコン
ピュータ・プリンタシステム200は若干のページのた
めに資源をアセンブルし、PDLをRPLに翻訳し、そ
してプリンタ資源記憶装置220内の資源の流れを管理
している。用紙ジャムが発生しそうにもない場合には、
ホストコンピュータ202はそのページを始めから再処
理する。もし用紙ジャムが発生すれば、ジャムを生じた
1または複数のページを物理的に除去するために操作員
が関与しなければならないから、時間的な実コストは存
在しない。操作員がジャムを生じたページを除去してい
る間に、資源ローダ214はどのページが誤り回復を必
要としているかを決定し、必要な資源及びRPL をプ
リンタ218内へ再ロードし始める。どの資源が誤り復
元プロセスのために必要かを決定するために資源ローダ
214が明示従属性を調べているので、明示従属性は誤
り復元プロセスを簡易化する。例えばプリンタ218
は、2ページから5ページまでの用紙をジャムし、2及
び3ページを双方向とし、4及び5ページを一方向とす
ることができる。もしプリンタ218が印刷順序を3ペ
ージ(下から上へ)、2ページ(上から下へ)、4ペー
ジ(上から下へ)、5ページ(上から下へ)のように予
め指定されていれば、資源ローダ214は明示従属性を
使用して最も効率的な手法でRPL を要求し、誤り回
復を遂行する。これらの活動は、操作員がジャムを生じ
た用紙を除去している間に行われる。従って、コンピュ
ータ・プリンタシステム200は従来のシステムと対比
した時に誤り回復に関して時間を失ってはいない。更
に、印刷プロセスの効率は、ページが通常はジャムしな
いものとすれば、極めて向上している。以上のように、
コンピュータ・プリンタシステム200は従来のシステ
ムよりも遥かに短い時間で文書を処理できるのである。
前述したように、本発明のコンピュータ・プリンタシス
テム200はホストコンピュータ202からプリンタ2
18までの一方向通信と共に動作することも、またはホ
ストコンピュータ202とプリンタ218との間の完全
双方向通信チャ資源アセンブラ208はホストコンピュ
ータ202またはプリンタ218があるデータブロック
のためのRPL を最も効率的に変換できるか否かを決
定する。通常はプリンタ218が遂行する作業の中にホ
ストコンピュータ202が参入してくる場合には、ホス
トコンピュータ202はプリンタ218がRPL を処
理するのにどれ程の時間を要するかを前以て知らなけれ
ばならない。プリンタ218へ送るものは何かを決定す
る際に、プリンタが失敗しないように若干のプリンタ動
作のために必要な時間を考慮しなければならない。本発
明は、コストメトリクスと呼ばれる統計的解析を使用す
ることによって、印刷するのにどれ程長い時間を要する
かを知る問題を解決している。コストメトリクスを使用
するとホストコンピュータ202及びプリンタ218
は、資源の処理を両者間で分担してデータの処理能力を
最大にすることができる。この場合、プリンタが全ての
作業を行う代わりに、プリンタが用紙を送る前にホスト
コンピュータ202が処理能力を提供し、総合印刷時間
をかなり改善することができる。コストとはデータのペ
ージまたはバンドのための印刷時間のことである。コス
トメトリクスは、実時間制約がより優勢であるようなバ
ンディングプリンタにおいて特に有用である。ビットマ
ップデータのページ全体を記憶するのに十分なメモリを
有しているプリンタは実時間制約を有していない。しか
しながら、ホストコンピュータ202がページを記述す
るRPL の部分をも処理できるので本発明はページモ
ードにも有用である。もしプリンタがコンピュータ回路
網に接続されていれば、コストメトリクスはある印刷タ
スク全体の完了時間を予測するのに有用である。以下に
印刷技術に伴う動作の詳細に関して説明するが、本発明
のコストメトリクスのシステム及び方法は、実時間プロ
セスのスケジューリングのようなコストモデル化が有用
な他の領域にも適用可能である。実時間で動作する若干
のシステムは実時間活動のコストを含むデータのスケジ
ューリングを必要とする。コストメトリクスは、全ての
考え得る入力パラメタのためのコストモデルを構成する
ためにコードのモジュールをプロファイルするのにも有
用である。コンパイラも、それらの最適化戦略を駆動す
るためにコストメトリクスを使用することができる。印
刷技術は実時間制約を有しているが、コストメトリクス
は実時間制約を有していない領域にも適用できる。例え
ば実行時間が入力データに依資源アセンブラ208はホ
ストコンピュータ202またはプリンタ218があるデ
ータブロックのためのRPL を最も効率的に変換でき
るか否かを決定する。通常はプリンタ218が遂行する
作業の中にホストコンピュータ202が参入してくる場
合には、ホストコンピュータ202はプリンタ218が
RPL を処理するのにどれ程の時間を要するかを前以
て知らなければならない。プリンタ218へ送るものは
何かを決定する際に、プリンタが失敗しないように若干
のプリンタ動作のために必要な時間を考慮しなければな
らない。本発明は、コストメトリクスと呼ばれる統計的
解析を使用することによって、印刷するのにどれ程長い
時間を要するかを知る問題を解決している。コストメト
リクスを使用するとホストコンピュータ202及びプリ
ンタ218は、資源の処理を両者間で分担してデータの
処理能力を最大にすることができる。この場合、プリン
タが全ての作業を行う代わりに、プリンタが用紙を送る
前にホストコンピュータ202が処理能力を提供し、総
合印刷時間をかなり改善することができる。コストとは
データのページまたはバンドのための印刷時間のことで
ある。コストメトリクスは、実時間制約がより優勢であ
るようなバンディングプリンタにおいて特に有用であ
る。ビットマップデータのページ全体を記憶するのに十
分なメモリを有しているプリンタは実時間制約を有して
いない。しかしながら、ホストコンピュータ202がペ
ージを記述するRPL の部分をも処理できるので本発
明はページモードにも有用である。もしプリンタがコン
ピュータ回路網に接続されていれば、コストメトリクス
はある印刷タスク全体の完了時間を予測するのに有用で
ある。以下に印刷技術に伴う動作の詳細に関して説明す
るが、本発明のコストメトリクスのシステム及び方法
は、実時間プロセスのスケジューリングのようなコスト
モデル化が有用な他の領域にも適用可能である。実時間
で動作する若干のシステムは実時間活動のコストを含む
データのスケジューリングを必要とする。コストメトリ
クスは、全ての考え得る入力パラメタのためのコストモ
デルを構成するためにコードのモジュールをプロファイ
ルするのにも有用である。コンパイラも、それらの最適
化戦略を駆動するためにコストメトリクスを使用するこ
とができる。印刷技術は実時間制約を有しているが、コ
ストメトリクスは実時間制約を有していない領域にも適
用できる。例えば実行時間が入力データに依存するプロ
グラムでは、従来のシステムは入力データを供給してそ
の特定の入力データに関するコストを決定するだけであ
った。これに対して、コストメトリクスは考え得る全て
の入力データのためのプログラムをモデル化するのに使
用することができる。印刷技術におけるコストメトリク
スへのキーは、ページ全体を記述するデータをより小さ
い部分に分割し、これらの部分をできるだけ速く、しか
しプリンタ218が処理できるデータ転送速度の範囲内
でプリンタ218へ送ることをホストコンピュータ20
2に許容するか、またはある部分がプリンタ218へ送
られる前に、ホストコンピュータ202を使用してそれ
をビットマップデータに処理することである。換言すれ
ば、ホストコンピュータ202はページを記述するデー
タの部分を描写し、描写されたデータをプリンタ218
へ送ることができるのである。たとえ部分が処理のため
にプリンタへ送られても、データは処理を簡易化する形
状であるので、本発明は従来のシステムよりも高速であ
る。本発明は、また、あるページが印刷されるようにす
るために、プリンタ218の分解能を自動的に減少させ
る能力も有する。自動分解能減少については、以下で詳
細に説明する。コストメトリクスは任意のRPL また
はバンドのための各ドロープリミティブのコストを供給
する。このコストは、RPLをプリンタへ直接送るか否
かを決定するために、実時間委託が行われる前にRPL
をプリンタ218へ送って事前描写させるために、及
びビットマップをプリンタ218へ送るために資源アセ
ンブラ208によって使用される。これら3つのオプシ
ョンにより、プリンタ218がページを実際に印刷して
いない時間中に(例えば用紙送り動作中に)データの処
理が可能になる。その結果、総合印刷時間が大幅に短縮
される。ページをより小さい部分に分割するには、バン
ディングを伴うことができる。前述したように、バンデ
ィングは印刷ページをバンドと呼ぶ複数の水平セグメン
トに分割することを含む。バンディングを行わないと、
ページ全体をビットマップ形状で記憶するための膨大な
量のメモリを必要とする。バンディングを行った場合、
もしプリンタが十分なメモリを有していればプリンタは
1バンドより多くを記憶することになるが、プリンタは
単一のバンドのためのビットマップを記憶するだけでよ
い。図6は、データのバンドをプリンタへ送るための考
え得る若干のオプションを示す。図6のAは、PRL
の形状の任意の数のドロープリミティブを使用して記述
されたデータのバンドを表す。データのBは、そのバン
ドを記述するビットマップデータファイルを表す。ビッ
トマップはホストコンピュータ202またはプリンタ2
18の何れかにおいて作成できることに注意されたい。
若干の場合には、Cによって表されているように、ホス
トコンピュータはビットマップデータファイルを圧縮す
ることができる。図6に示されているように、データ処
理のオプション1は、ホストコンピュータ202がRP
L(A)をビットマップデータファイル(B)に描写
し、データファイルを圧縮する(C)ことを許容する。
資源アセンブラ208はRPL をビットマップデータ
ファイルに描写するためのホスト資源実行装置(HR
E)として働く。圧縮されたデータファイル(C)はプ
リンタ218へ伝送され、プリンタ218内において圧
縮解除されてビットマップ(B)に戻される。代替とし
てのオプション2では、ホストコンピュータ202はR
PL(A)を直接プリンタ218へ伝送する。プリンタ
218はRPL(A)を描写してプリンタ218内にビ
ットマップデータファイル(B)を作成する。第3の代
替として、ホストコンピュータ202はRPL(A)を
ビットマップデータファイル(B)に描写し、データを
圧縮することなくこのビットマップデータファイルをプ
リンタ218へ伝送する。プリンタ218はこのビット
マップデータファイル(B)を受信するが、印刷の進行
を除いて付加的な処理は必要としない。オプション1乃
至3はホストコンピュータ202による描写を含む。あ
るバンドを描写するのに使用できる時間は、プリンタ速
度及びプリンタメモリ222に依存する。各バンドは制
限された量の時間だけを有し、この時間中にプリンタ2
18による描写が行われなければならない。もしバンド
をこの許容された時間長の間に描写することができない
と資源アセンブラ208が決定すれば、ホストコンピュ
ータ202がそのバンドをビットマップデータファイル
に描写する。代替として、ホストコンピュータ202が
RPL をプリンタ218へ送って、何等かの実時間委
託が行われる前にRPL を事前描写することができ
る。プリンタ218がバンドを事前描写する能力は、プ
リンタ218の計算能力と、ビットマップデータのバン
ドを記憶するために使用可能なプリンタメモリ222の
容量とに依存する。プリンタ218が描写するのに時間
がかかり過ぎるバンドを複雑なバンドと呼ぶ。複雑なバ
ンドは許容された印刷時間を超えるが、これは実時間制
約を満たすのに十分に高速でそのバンドを印刷すること
ができないことを意味する。もしあるバンドが複雑であ
れば、ホストコンピュータは図6に示すオプション1ま
たは3を使用してそのバンドを描写する。実際には、用
紙がプリンタ218を通って移動している間にバンドを
描写するのに使用できる余分な時間が存在するという事
実によってプロセスは複雑化される。もし用紙を移動指
せる時間を考慮に入れれば、バンドを実時間で実効的に
描写することができる時間が存在し得る。本発明は、プ
リンタがバンドを実時間で描写できるか否かを決定する
中にこの要因を含む。これは、ホストコンピュータ20
2が何等かのバンドを描写する実時間であるページ上の
“多過ぎる”バンドを描写することができない場合だけ
である。バンドがどれ程多ければ“多過ぎる”のかを決
定するのに、多くの要因が入力される。例えば、プリン
タ218の計算能力、印刷エンジン226(図2)の速
度、及び使用可能なプリンタメモリ222の量である。
現在では好ましい実施例においては、あるページ上の各
バンドは208 本の走査線を有している。従ってある
ページ上のバンドの数は、ページの長さに依存する。し
かし、この実施例において選択されているバンドサイズ
は制限要因ではなく、任意に選択しても、またはバンド
毎に変化させてさえよいことを理解されたい。しかしな
がら決定されるバンドサイズは、バンドが単純か複雑か
を決定するために前以て知らなければならない。ホスト
コンピュータ202は、オプション1または3の実効に
要する時間+データをプリンタ218へ転送するための
時間を決定し、この合計時間と、オプション2の実効に
要する時間+データをプリンタ218へ転送するための
時間とを比較することによってバンドの複雑さを解析す
る。ホストコンピュータ202は最小合計時間を有する
オプションを選択する。ホストコンピュータ202がペ
ージ全体を単純に描写する前にページ上に発生すること
ができる複雑なバンドの数には上限がある。明らかに、
この限界はホストコンピュータ202及びプリンタ21
8の相対計算能力と、使用可能なプリンタメモリ222
の量に依存して変化する。もしこの限界に到達すること
がなければホストコンピュータは、プリンタ218が実
時間で描写できないバンドだけを描写する。バンドを単
純または複雑の何れに分類するかを決定するためにコス
トメトリクスが使用される。上述したように、コンピュ
ータプリンタシステム200は、特定のRPL、バンド
又はページをそのプリンタ218の全解像力でリアルタ
イムでプリントできない場合にはプリンタの解像力を自
動的に小さくすることができる。従来のシステムは複雑
なページをプリントするよう試みているが、そのページ
をプリントすることができない場合には解像力を自動的
に小さくすることはできない。実際、通常の従来のシス
テムは特定のページを全解像力でプリントできるかどう
かをリアルタイムで判断できない。従って、従来のシス
テムは、ページをプリントできるとの仮定でページを処
理し始める。実際、ページをリアルタイムでプリントで
きなければ、従来のシステムはただ何もプリントしな
い。ユーザは特定のページをプリントすべき解像力を手
操作で選択しなければならない。他の従来のシステムで
は、何もプリントしない代わりにバンドのようなページ
の一部分をプリントする場合もある。後続のページに後
続のバンドをプリントしてもよい。例えば、ページの最
初の1/3が1ページにプリントされ、ページの第2の
1/3が次のページにプリントされる。ページの最後の
1/3がさらに別のページにプリントされる。このシス
テムは全ページを全解像力で処理できないのでこのよう
になり、ページを全解像力でリアルタイムでプリントで
きないというプライオリ(priori)をシステムが
知らないので解像力を小さくできない。シャープなコン
トラストでは、コストメトリクス(metrics)に
より発明力のあるコンピュータプリンタシステム200
がページをリアルタイムでプリントできるかどうかとい
うプライオリを判断できる。コストメトリクスの詳細に
ついては以下に説明する。プリンタ218がページを全
解像力でリアルタイムで処理できない場合には、ホスト
コンピュータ202がページを処理する最良の方法につ
いて自動的に幾つかの決定を行う。ホストコンピュータ
202は別の処理技術を用いて全解像力でページを処理
するよう試みて、別の技術が全く働かない場合には解像
力を小さくするしかないだろう。資源アセンブラ208
(図2参照)はデータ部分において各ドロープリミティ
ブ(draw primitive)を実行するコスト
を判断する。データ部分は単一のRPL、データバンド
又はRPLのフォームのデータのページでもよい。プリ
ンタ218はデータ部分をAのフォームでリアルタイム
に処理できる場合には、RPLがプリンタに転送され
る。これが図6にオプション2として図示されている。
プリンタ218がRPLをリアルタイムで処理できない
場合には、ホストコンピュータ202はリアルタイムの
コミットメントがプリンタエンジン226に対してなさ
れる前にデータ部分のAフォームをプリレンダリングで
きるかどうかを判断する。プリンタ218がデータ部分
をプリレンダリングできない場合には、データが図6の
オプション2で示されているようにAフォームでプリン
タに転送される。コンピュータプリンタシステム200
では、任意のデータ部分を30秒以内に処理できる。プ
リンタ218がRPLをリアルタイムでレンダリングで
きないか、プリントエンジン226に対してリアルタイ
ムコミットメントがなされる前にRPLをプリレンダリ
ングするか又はRPLを30秒以内にレンダリングする
場合には、ホストコンピュータ202がデータをプリレ
ンダリングしてプリンタにビットマップを転送する。こ
れらの可能なデータ処理技術が図6においてオプション
1及び3として図示されている。オプション3では、ホ
ストコンピュータ202がRPLをプリレンダリングし
てビットマップデータファイルをプリンタ218へ転送
する。これとは別に、図6のオプション1として図示さ
れているように、ホストコンピュータ202がRPLを
レンダリングし、ビットマップデータファイルを圧縮
し、圧縮されたビットマップデータファイルをプリンタ
218に転送してもよい。上述した3つのオプションの
うち、図6のオプション1のみが解像力の低減を含んで
もよい。ホストコンピュータ202は解像力を犠牲にす
ることなくリアルタイムでデータを処理しようと試みる
だろう。プリンタ218がRPL(Aフォーム)をリア
ルタイムで処理できず、かつ、プリンタがRPLプリン
タエンジン226に対してリアルタイムコミットメント
がなされる前にRPL(Aフォーム)をプリレンダリン
グできず、ホストコンピュータ202がRPLをレンダ
リングしてビットマップデータファイルをプリンタにリ
アルタイムで転送できず又はホストコンピュータがRP
Lをレンダリングし、データを圧縮し圧縮されたデータ
をプリンタにリアルタイムで転送できないいずれの場合
にも、ホストコンピュータ202が解像力を小さくする
であろう。ホストコンピュータ202がRPLをビット
マップデータファイルにレンダリングする場合にはプリ
ンタ218により行われるべき処理は何もないことに注
目されたい。唯一関心があるのは、ホストコンピュータ
202によりレンダリングされるビットマップデータフ
ァイルがプリンタ資源ストア(図2参照)に適合するか
どうかである。資源ローダ214はビットマップデータ
ファイル(資源とみなされる)がプリンタ資源ストア2
20内に適合されるかどうかを判断する。ホストコンピ
ュータ202によりレンダリングされるビットデータフ
ァイルがプリンタ資源ストア内に適合されない場合に
は、資源アセンブラ208はビットマップデータファイ
ルを圧縮するだろう。資源アセンブラ208は、圧縮さ
れたビットマップデータファイルを実際に作成するまで
に必要な圧縮量を判断できる。ビットデータファイルの
単なる圧縮はデータの損失を含まない。現在好ましい実
施例では、ホストコンピュータ202はランレングスエ
ンコーディング(RLE)圧縮と呼ばれている周知の圧
縮技術を使用している。RLE圧縮ではホストコンピュ
ータ202がデータキャラクタを繰り返さないことによ
りプリンタに218に転送されたデータの量を小さくす
る。例えば、特定のデータキャラクタが多数の時間を転
送する場合には、ホストコンピュータ202は特定のキ
ャラクタが繰り返されるべき時間数を表す数を転送し、
その後データキャラクタ自身を転送する。例えば、ボッ
クスを形成するラインを表すデータキャラクタが25回
繰り返される。ホストコンピュータ202は次のデータ
キャラクタが25回繰り返されるべきことを表す数25
を転送する。その後、ホストコンピュータ202はデー
タキャラクタ自身を転送する。このような周知の形式の
データ圧縮は、ホストコンピュータ202からプリンタ
218に多くのデータを転送する際にデータを圧縮する
状況では使用されない。RLE圧縮では、すべてのデー
タがプリンタに転送されるので解像力の損失はない。R
LE圧縮によっても、プリンタリソース記憶220(図
2参照)に適合するビットマップファイルが生じない場
合には、ホストコンピュータ202は、幾つかのデータ
が失われる損失的な圧縮に依存する。これによって、プ
リンタ218の分解能を有効に減少させる。損失的圧縮
が必要とされる場合、ホストコンピュータ202はリソ
ースアセンブラ208によってレンダリングされたビッ
トマップデータファイル内の水平ラインを1行おき毎に
ドロップし、垂直方向の分解能を50%減少させ、ホス
トコンピュータ202からプリンタ218へ転送される
データ量の50%の減少を達成する。これにより、代表
的な300dpiプリンタでは、150dpiの垂直方
向の分解能となる。これほど大きくない分解能の減少が
利用されてもよいことは勿論である。例えば、ホストコ
ンピュータ202は、300dpi×300dpiの分
解能から299dpi×285dpiの分解能に減少さ
せることもできる。上記の分解能の減少の例は、本発明
を限定させるものではない。これとは別に、当業界で周
知の、損失的圧縮の他の形式のものが、プリンタの分解
能を減少させることなく、使用されうる。例えば、損失
的圧縮の1つの形態はグレイスケールにおけるデータビ
ットの数を減少させることである。サイズが50%減少
したビットマップデータファイルが未だプリンタリソー
ス記憶220内に適合しない場合、ホストコンピュータ
202は水平ラインを1行おきにドロップするのに加え
て、垂直ラインを1行おきにドロップして、分解能を7
5%減少させ、ホストコンピュータ202からプリンタ
218へ転送されるデータ量の75%の減少を達成す
る。極端ではあるが、この分解能の減少は、ビットマッ
プデータファイルがプリンタリソース記憶220内に適
合するのを保証する。この極端な分解能の減少は一般的
には滅多に起きないであろう。分解能の減少がある場
合、ホストコンピュータ202は、そのコンピュータス
クリーン(図示せず)にメッセージを表示して、ユーザ
に、分解能の減少が生じたことを指示する。従って、ユ
ーザは、プリントしたページと、そのページが減少した
分解能でプリントされたことを指示するメッセージとを
得る。上記の種々の決定を成すための鍵は、上記した3
種の技術を用いて、データを処理するのに必要とする時
間を、高度の精確さをもって、決定するホストコンピュ
ータ202の能力にある。ホストコンピュータ202
は、分解能を減少させることなく、最も有効な方法でデ
ータを処理しようと試みる。必要な場合であって且つデ
ータのリアルタイム処理を成すのに必要な範囲に限っ
て、ホストコンピュータ202は分解能を減少させるだ
けである。リソースアセンブラ208は、プリンタ21
8の処理パワーとプリンタリソース記憶220またはプ
リンタメモリ222に受入れられ得るメモリの量とデー
タを処理するのに有効な時間の量とに基づいて一連の決
定を成す。一連の決定ゲートが図7〜図9のフローチャ
ートに図示され、このフローチャートは、リソースアセ
ンブラ208によってなされる決定方法を示している。
第1の決定ブロック502において、リソースローダ2
14(図2参照)はデータのAフォームがプリンタリソ
ース記憶220に適合するかどうかを決定する。決定ブ
ロック502の結果がYESなら、リソースアセンブラ
208は、決定ブロック504においてプリンタ218
がAフォームをリアルタイム処理できるかどうかを決定
する。プリンタ218がAフォームをリアルタイム処理
できる場合には、決定ブロック504の結果はYESで
ある。その場合、リソースアセンブラ208は、決定ブ
ロック506において、プリンタ218がデータのAフ
ォームを30秒未満でリアルタイム処理できるかどうか
を決定する。プリンタ218が、データのAフォームを
30秒未満でリアルタイム処理できる場合、決定ブロッ
ク506の結果はYESである。その場合、ホストコン
ピュータ202はデータのAフォームをステップ508
においてプリンタリソース記憶220に送る。データの
Aフォーム部分がプリンタリソース記憶220に適合し
ない場合、決定ブロック502の結果はNOである。そ
の場合にはホストコンピュータ202は、図8のステッ
プ510においてビットマップデータファイルにRPL
をレンダリングする。同様に、プリンタが、Aフォーム
をリアルタイムで処理できない場合や、Aフォームを3
0秒未満でリアルタイム処理できない場合には、決定ブ
ロック504、506の結果はそれぞれNOである。こ
の決定ブロック504、506の結果がNOである場
合、ホストコンピュータ202は、図8のステップ51
0においてビットマップデータファイルにRPLをレン
ダリングする。ホストコンピュータ202がビットマッ
プデータファイルにRPLをレンダリングすると、ホス
トコンピュータ202は、ビットマップデータファイル
がプリンタリアルタイム記憶220に適合するかどうか
を決定ブロック512で決定する。ビットマップデータ
ファイルがプリンタリアルタイム記憶220に適合する
場合、決定ブロック512の結果はYESであり、ステ
ップ514において、ホストコンピュータ202は、ビ
ットマップデータファイルをプリンタリアルタイム記憶
220に転送する。もし、ビットマップデータがプリン
タ資源ストア220内に適合しないならば、決定ブロッ
ク512の結果は否定(NO)であり、ホストコンピュ
ータ202は、図9に示されるように、決定ブロック5
16において、圧縮されたビットマップデータファイル
がプリンタ資源ストア220内に適合するかを決定す
る。もし、圧縮されたビットマップデータファイルがプ
リンタ資源ストア220内に適合するならば、決定ブロ
ック516の結果は肯定(YES)であり、ステップ5
18にて、ホストコンピュータ202は、ビットマップ
データファイルを圧縮する。ステップ520において、
ホストコンピュータ202は、その圧縮されたビットマ
ップデータファイルをプリンタ資源ストア220へ転送
する。ここで注目すべき点は、この点までに行われたス
テップのいずれにおいてもデータの損失はないというこ
とである。もし、圧縮されたビットマップデータファイ
ルがプリンタ資源ストア220内に適合しえないなら
ば、決定ブロック516の結果は、否定であり、ホスト
コンピュータ202は、プリンタ218へ送られるデー
タの分解能を減少せねばならない。この分解能の減少
は、データの損失を伴う。資源アセンブラ202は、5
0パーセントだけ減少させたビットマップデータファイ
ルが、図10に示されるように、決定ブロック522に
てプリンタ資源ストア220に適合するかを決定する。
もし、ハーフサイズビットマップデータファイルがプリ
ンタ資源ストア220内に適合するならば、決定ブロッ
ク522の結果は、肯定であり、ステップ524にて、
ホストコンピュータ202は、ハーフサイズビットマッ
プデータファイルを与えるように、そのビットマップデ
ータファイルの分解能を50パーセントだけ減少する。
ステップ526において、ホストコンピュータ202
は、そのハーフサイズビットマップデータファイルをプ
リンタ資源ストア220へ転送する。ステップ527に
て、ホストコンピュータ202は、そのコンピュータデ
ィスプレイスクリーン(図示していない)にメッセージ
を表示して、ユーザに、分解能の減少がなされたことを
知らせる。もし、ハーフサイズビットマップデータファ
イルがプリンタ資源ストア220内に適合しないなら
ば、決定ブロック522の結果は、否定であり、ステッ
プ528にて、ホストコンピュータ202は、元のビッ
トマップデータファイルを75パーセントだけ減少させ
る。このようなビットマップデータファイルのサイズの
75パーセントの減少により、そのファイルがそのプリ
ンタ資源ストア220に適合することが本質的に保証さ
れる。ステップ530において、その75パーセント減
少されたビットマップデータファイルは、ホストコンピ
ュータ202からプリンタ資源ストア220へ転送され
る。ステップ532において、ホストコンピュータ20
2は、そのコンピュータディスプレイスクリーン(図示
していない)にメッセージを表示して、ユーザに、分解
能の減少がなされたことを知らせる。前述したように、
損失のある圧縮のその他の形態が、プリンタ218の分
解能を減少させることなく、使用されうる。前述した説
明は資源ベースプリンティングについてなされている
が、本発明の原理は、PostScript(商標名)
またはPCL(商標名)の如き任意のプリンタシステム
に同様に適用しうるものである。イメージが実時間にて
レンダリングされ得ないような、または、分解能が大き
過ぎるような、プリンティングシステムにおいて、本発
明の原理は、複雑なページでも印刷できるようにその分
解能を自動的に減少させるために、同様に適用されるも
のである。また、本発明は、プリンタ以外の周辺装置に
も適用できる。例えば、グラフィックスディスプレイユ
ニット(図示していない)は、ホストコンピュータ20
2内に含まれたデータファイルを処理しうる。資源アセ
ンブラ208は、そのデータファイルをビットマップデ
ータファイルへ処理し、前述したようにそのビットマッ
プデータファイルを圧縮する。図7に示すようにコスト
メトリクスシステムは、種々のラスタ演算コード(RO
P)を使用して種々のドロープリミティブの実行時間を
確立する。ドロープリミティブは試験命令集合250と
して記憶されている。試験命令集合は考え得る全てのド
ロープリミティブからなっていても、または考え得る全
てのドロープリミティブの部分集合であってもよい。R
OPは、原始コードビットマップ内のビットをブラシビ
ットマップ内のビット及び宛先ビットマップ内のビット
と組合わせる方法を定義する関数の集合である。本発明
のこの実施例では8データビットによって表される25
6 の異なるROPが存在する。ROPは、受信される
引き数の数に依存して3つの型にグループ化することが
できる。ROPの型を以下の表1に示す。 表1.ROPの型 ROPの型 使用される引き数 2 宛先、パターン 3 宛先、パターン、原始ビットマップ 4 宛先、パターン、原始ビットマップ、マスク プリンタ218がコンピュータ202上に設置された時
点にコンピュータ・プリンタシステム200は、種々の
ドロープリミティブの一連の実行時間を計算する。代替
として、コストメトリクスを予め決定し、特定のプリン
タのためのコスト情報を実行時2進(ランタイムバイナ
リ)ファイルとして資源アセンブラ208へ供給しても
よい。本発明のシステムは、プリンタの性能をベンチマ
ークするために使用することもできる。種々のドロープ
リミティブの実行時間を測定するためにタイマ252が
使用される。試験命令集合250のための実行時間を測
定することによって、評価器モジュール254は特定の
プリンタ218を表すプリンタモデル256を確立す
る。プリンタモデル256は、特定のホストコンピュー
タ202及びプリンタ218組合せのためのコストメト
リクスデータを含むログファイル260を構成するため
に使用される。コストメトリクスデータを簡略化するた
めに、データはコストテーブル262に集群され、記憶
される。コストテーブル262はドロープリミティブの
若干の分類のためのコストメトリクスデータを含む。こ
れは、考え得る全てのドロープリミティブのための完全
コストメトリクスデータを含むデータファイルよりも遥
かに少ないメモリで済む。マップテーブル264はコス
トテーブル262内のコストデータへアクセスする簡単
な手段となっている。コストテーブル262及びマップ
テーブル264は、資源アセンブラ208へ接続されて
いる。資源アセンブラ208はコストデータを使用し
て、文書が印刷される時点における各RPL のコスト
を決定する。以上のように、予め決定されるコストメト
リクスデータは、データ処理責務をホストコンピュータ
202とプリンタ218との間に動的に分担させるのに
使用することができる。タイマ252は試験命令集合の
実行のコストを決定するために使用される。本実施例で
は、タイマ252は典型的なコンピュータ上で容易に使
用可能な能力を維持する内部時間を使用している。図8
に示すように典型的なコンピュータは約1,193,1
80Hzの周波数の発振器400を使用する。この周波
数の周期は838.0965ナノ秒である。この応用の
目的のためにクロックの律動を838.0965ナノ秒
と定義する。16 ビットのカウンタを含むプログラム
可能な内部カウンタ(PIC)402は2クロック律動
毎にデクレメントする。PIC402はコンピュータ作
動システムによって65535 から0まで連続的にカ
ウンドダウンするようにプログラムされており、0にな
るとCPU 406への割込み線404をトグルさせ
る。CPU406は割込み線404の立ち上がり縁のみ
に応答する。しかしPIC 402は2クロック律動毎
にデクレメントするから、PIC402による割込みは
約 55 ミリ秒毎に発生する。この割込みに応答して
CPU 406はクロック記憶領域408の値をインク
リメントさせる。PIC402及びクロック記憶領域4
08内の組合わされたカウンタを使用することによっ
て、838.0965ナノ秒の分解能を有する48ビッ
トのカウンタを得ることができる。本発明は、所定の時
間410の間、同一のドロープリミティブを繰り返し実
行し、ドロープリミティブを実行した回数を計数する。
除算器412は、コンピュータの内部時間維持回路が測
定した経過時間を、実行されたドロープリミティブの数
で除すことによってドロープリミティブ当たりのコスト
を決定する。ホストコンピュータ202(図2)上で時
間を測定する最も容易な方法はDOS内の日付/時間機
能を呼び出すことである。これは一般に使用されている
方策である。別の方法は0時以降に発生した55ミリ秒
のクロック律動の数を見出すためにBIOS関数を呼び
出すことである。この方法に伴う問題は、もしプログラ
ムが一晩中走っていれば0時事象が失われ、日付/時間
が1日遅れることである。本発明のシステムは55ミリ
秒よりも細かい分解能を要求するから、ドロープリミテ
ィブを描写するのに使用される時間長を復号するために
ホストコンピュータ202上のハードウエアタイマ25
2(図7)を使用しているのである。詳述すれば、プロ
グラム可能な内部カウンタ(PIC)402(図8)
は、上述したBIOS関数を使用して時間を測定してい
る駆動装置を照合する。これにより、システムは遥かに
細かい分解能を有するタイマを得ている。ハードウエア
タイマは16ビットのタイマであり、(55ミリ秒)/
65536は838 ナノ秒であるから、55ミリ秒の
代わりに約838ナノ秒の理論的分解能を達成すること
ができる。しかしプリンタとの通信リンクはあるでたら
めさ(randomness)を有しており、実際には
10 ミリ秒の分解能を達成できただけである。上述し
た数字は全て丸めた数である。タイマ252は、上記丸
めた数よりも遥かに精密である。本発明はBIOSカウ
ンタとPIC との組合せを使用してドロープリミティ
ブの実行時間を測定するために使用されるタイマ252
を得ている。PIC402は、一定のレートでクロック
される3つのカウントダウンタイマ(図示してない)を
有している。PICチップカウンタは65536 の値
を使用し、カウントダウンする。PIC上のこれらのカ
ウンタが0に達すると、それらはプロセスを開始する。
タイマ0は、割込み(Vector 8H.20−23
H)が発生することを意味する。最初の値がカウンタ内
にロードされ、プロセスが続行される。BIOS は位
置40H:6CH においてULONG カウントをイ
ンクリメントする。このカウンタは最後の0時事象(真
夜中の12時)以降に発生した(または発生すべきであ
った)律動の数を表している。このBIOSカウンタ
は、実時間時計の(ブートアップ(bootup)にお
ける)タイマ律動によって、また0時に実時間時計が変
化するとMS−DOS“TIME”コマンドによって更
新される。BIOSカウンタは“ロールオーバー”し、
再び0から始動する。24 時間中には1,573,0
40 のタイマ律動が存在する。BIOSカウンタは0
乃至1,573,039 の値を含むことができる。こ
のカウンタを得るためのBIOS呼び出しが存在する
が、もし“0時(ミッドナイト)事象”が発生するとこ
の状態を呼び出し者へ戻してそれを無視するのでこの応
用では使用することはできない。“0時事象”の取り扱
いは本発明が回避を選択した困難なプロセスである。通
常、オーバーフロー状態はMS−DOSによって処理さ
れる。もし BIOS呼び出しが使用され、オーバーフ
ロー状態が発生すれば、日付を1日だけ進めるようにセ
ットすることを除いて、この事象をMS−DOS内へ集
める方法はない。これに関する論理は複雑過ぎる。その
代わりとして、タイマ252は単にBIOS領域を調べ
て4バイト律動カウンタを読出すが、律動カウンタは0
時になると0にリセットされることに注意されたい。少
なくとも24時間毎にこのBIOS呼び出しを行わせる
ことを要求する何かを処理するためにMS−DOSに依
頼することが重要である。この例はファイルへの書き込
みである(何故ならばMS−DOSはファイルの変更時
間を更新する必要があるからである)。コストを測定す
るためにホストコンピュータ202をタイマ252と同
期させるのは、そのPIC402のタイマ0(図示して
ない)の使用を含む。タイマ0はシステムクロックを駆
動する。タイマ0はモード3(即ち方形波レート発生
器)で動作するようにプログラムされている。これは出
力が、カウントの半分が完了するまで(偶数の間)は高
を維持し(第1の相)、カウントの他の半分の間は低に
なる(第2の相)ことを意味する。もしカウントが奇数
であり、出力が高であれば、第1のクロックパルス(そ
のカウントがロードされた後の)はカウントを1だけデ
クレメントさせる。爾後のクロックパルスはクロックを
2だけデクレメントさせる。タイムアウトすると出力は
低になり、全カウントが再ロードされる。第1のクロッ
クパルス(再ロードに続く)はカウンタを3だけデクレ
メントさせる。爾後のクロックパルスはタイムアウトす
るまでにカウントを2だけデクレメントさせる。次いで
全プロセスが繰り返される。このようにして、もしカウ
ントが奇数であれば出力は(N+1)/2カウントの間
は高であり、(N−1)/2カウントの間は低である。
PIC−LATCHITを使用してカウンタをラッチ
し、次いで値を読むことによってカウントを読むことが
できるが、単に値を読むだけではタイマ0がサイクルの
第1の相にあるのか、または第2の相にあるのかは分か
らない。これを見分ける唯一の方法は、カウンタがロー
ルオーバーするのを待ってクロック律動が発生したか否
かを見ることである。方形波レート発生器(タイマ0)
は割込みベクトル8H(ベクトルアドレス20−23
H)へ接続される。通常これはBIOSを指し、BIO
Sもまた1CH(ベクトルアドレス70−73H)にお
ける別のタイマ律動割込みベクトルを呼び出す。通常は
1CHはDUMMY−RETURNを指す。もしベクト
ル8Hが単純に置き換えられればシステムクロックは適
切に機能しない。ベクトル8Hは18.2ミリ秒毎に呼
び出されなければならない。合計3つのUSHORTの
ためにBIOS領域内には2つの16ビット値が存在
し、またPIC チップ内には1つの16ビット値が存
在する。各USHORTフェッチ(取り出し)はアトミ
ックであるが、割込みは任意のこれらのフェッチ間で発
生することができるので、これらの点だけを使用してき
れいな48 ビットアトミックアクセスを構成する方法
はない。例えば、もし割込みが第1のフェッチと第2の
フェッチとの間で発生すれば、より正しい000AFF
FFまたは000B0000の代わりに000BFFF
Fを読むことができる。前の2つは何れも許容されるも
のではあるが、最初の方は離れて(wayoff)お
り、勿論不適切なタイミングをもたらすことになろう。
タイマ割込みは18.2ミリ秒毎に1回だけ発生するか
ら、BIOS領域を2回容易に読みとって繰り返される
値をもどすことができる(また割込みを不能にするか、
または386 または486 レジスタを使用して32
ビットアクセスを行うこともできるが、割込みを不能に
してもPIC カウンタは停止しない)。この問題を解
決するために、先ずBIOS領域のための安全な32ビ
ット数のアクセスを構成する。BIOS領域は18.2
ミリ秒毎にだけ更新されるから、BIOS領域を2回読
み取ることは簡単であり、それが変化しないようにする
ことができる。BIOSから読み取った値はulBIO
Sl 及びulBIOS2である。PICカウンタから
ラッチされた値はusPic1及びusPic2等であ
る。PIC402をアクセスする手順は、先ずPIC−
CONTROL−PORTへ意図を書き込み次いで適切
なTIMERxポート(PIC 上にある)へ1または
2バイトを読み取るかまたは書き込むことである。この
応用では、開始と停止との間の差を正確に測定すること
が重要である。試験の前または後に数ミリ秒を浪費する
か否かは極めて重要ではない。これを達成するために、
応用に戻る前にタイマが“ロールオーバー”するまで待
機する。次いで、タイマ停止呼び出しが行われる時に、
間の差をより正確に測定する。PICは2ずつデクレメ
ントされるから最下位ビットは常に0であり、従って無
意味である。PIC402が0に到達した時にOUTO
がトグルされ、PICは再ロードされる。割込みは他の
0UTO遷移毎にしか発生しない。従って、PICの1
5の最高ビットだけが重要である。使用不能な別のビッ
ト(OUTO)が存在し、検出作業を通して導出しなけ
ればならない。この隠れたビットを観測する唯一の方法
は、15ビットのPIC カウンタがロールオーバーす
るのを待ってからBIOSメモリ内の32ビットのカウ
ンタが変化したか否かを調べることである。即ち、もし
隠れたビットが‘1’であれば桁上げが伝播し、そうで
ない場合には桁上げは伝播しない。15ビットのPIC
カウンタはハードウエアカウンタであるので特別な注意
を払わなければならない。このカウンタは停止させるこ
とができず、プログラムとは非同期で走る。このカウン
タがもたらす如何なる割込みもCPU によって直ちに
処理されることがない。そこには遅延が存在し、この遅
延は予測できないものである。タイマ252は、コード
実行時間を測定するためのコストメトリクスの他の面を
用いることなく使用することもできる。これは実行時間
を測定するためにコードをプロファイルするような応用
に特に有用である。評価器モジュール254はタイマ情
報を使用してコストメトリクスを求める。評価器モジュ
ール254の目的は、単一のドロープリミティブのコス
トを決定することである。前述したように、典型的なタ
イマの分解能は本発明の目的には不十分である。プリン
タへの通信チャネル上のタイミング分解能は約10マイ
クロ秒の繰り返し可能な分解能を有しているが、要求さ
れる分解能は1ナノ秒以下である。必要な分解能を達成
するためにプリンタ218は複数のドロープリミティブ
を実行することを依頼される。プリミティブの数は1
0,000を超えることができる。評価器モジュール2
54は、プリンタ218が数ドロープリミティブを遂行
することを要求することから開始する。同一のパラメ
タ、ROP、形状及びブラシを有する同一のドロープリ
ミティブが使用されることに注目されたい。実行される
プリミティブの数は、所定の時間410が経過してしま
うまで増加される。評価器モジュール254は、特定の
ROP、形状及び特定のブラシを使用してその特定のド
ロープリミティブを実行するのに要する時間長を計算す
るために、所定の時間中に実行されるドロープリミティ
ブの数を評価する。換言すれば評価器モジュール254
は、その型の単一のドロープリミティブを実行するのに
どの程度の時間がかかるのかを決定するためには、所定
の時間中にどれ程多くのドロープリミティブを実行する
のかを決定する。特定のドロープリミティブに対するこ
の手順をサンプルと呼ぶ。評価器モジュール254は、
種々の型のドロープリミティブについてサンプルを決定
する。現在では好ましい実施例においては、評価器モジ
ュール254のために選択された所定の時間は約300
ミリ秒である。タイマ精度が10マイクロ秒である
と、最大誤差は約0.0033%になる。サンプルを決
定するために要する時間は比較的一定である。もしドロ
ープリミティブが単純であれば、評価器モジュール25
4は所定の時間の間に更に数ドロープリミティブを送ら
なければならない。もしドロープリミティブが比較的複
雑であれば評価器モジュール254は所定の時間の間に
送るドロープリミティブは少なくてよい。即ち、唯一の
変数は所定の時間の間に送るドロープリミティブの数で
ある。容易に理解できるように所定の時間410を変え
ることによって実質的にどのような分解能も達成するこ
とができる。例えば試験期間を約3,000 ミリ秒
(3秒)にすれば、0.00033%の分解能が得られ
る。現在では好ましい実施例においては約300 ミリ
秒の所定の時間を選択して、試験命令集合250を実行
するのに必要な時間を最小にしている。プリンタモデル
256は、試験命令集合250からどのドロープリミテ
ィブをプリンタ218へ送るかに関して評価器モジュー
ル254に命令する。プリンタモデル256はサンプル
データを使用して、ホストコンピュータ202上に設置
された特定のプリンタ218をモデル化する。特定のプ
リンタ218のモデルは種々の機能を遂行するためのコ
ストを決定することによって作成される。種々の機能の
コストを決定するためには1、5、10 またはそれ以
上のサンプルを必要としよう。プリンタモデル256
は、若干のコスト曲線の勾配またはインタセプト(in
tercept)を見出すために最小線形自乗回帰(L
LSR)統計量を使用することができる。この技術は当
業者には公知であり、詳細な説明は省略する。概述すれ
ばLLSR は一連の点に適合する“最良”の線を選択
する統計的方法である。この線はこれらの点のモデルで
ある。もしモデルが“良”であれば、これらの点はこの
線に極めて近接している。本発明は種々の方法でLLS
Rを使用している。例えば評価器モジュール254は、
ドロープリミティブ当たりのコストを見出すためにLL
SR を使用している。プリンタモデル256は全て
の、しかし1つの可変定数を維持することによって、デ
ータをドロープリミティブのモデルに適合させるために
LLSRを使用する。これによりプリンタモデル256
は、その変数の効果を他から分離することができる。プ
リンタモデル256へのLLSRの適用に関しては後述
する。一般にプリンタ218が遂行する何等かのものに
関連してコストが存在する。例えばプリミティブを特定
のバンドのためのビットマップデータで描写するコスト
が存在する。更に、ページ上に特定のドットをマークす
るコスト、及びページ上のある行を充填するためのコス
トも存在する。プリミティブを描写するためのコストを
Pと呼び、一方ドット及び行のためのコストをそれぞれ
D及びRと呼ぶことにする。プリンタモデル256は異
なる次元の種々の線引き(ドロー)を実行するためにコ
スト情報を決定する。0次元プリミティブは、特徴付け
るコストを1つだけゆうしている。他のプリミティブは
1またはそれ以上の次元と、特徴付けるのに必要な1ま
たはそれ以上のコストとを有している。以下の表2はド
ロープリミティブ及びそれらの関連コストを示すもので
ある。 0次元プリミティブは、ROP、ブラシ、描き位置、ま
たはペンスタイルには無関係に、同一の実行時間を有し
ている。0次元プリミティブの例は、SetRowAb
solute(SetRowAbs)、またはSetC
olumnAbsolute(SetColAbs)の
ようなカーソル運動コマンドである。SetRopAn
dBrushも0次元プリミティブであるが、考え得る
4つのブラシ及び考え得る256 のROPが存在する
から、1,024回(4×256=1,024)列挙す
る必要があるので、これは特殊な場合である。1次元プ
リミティブは、幅または長さのような単一の変数に依存
する。前述したように、プリンタモデル256はLLS
Rを使用して最良適合線を決定し、そのプリミティブに
関連するパラメタを特徴付ける。1次元プリミティブは
一般に5サンプルを取って最良適合を決定する。1次元
プリミティブの例は、線を引くためのプリミティブであ
るLineAbsolute(LineAbsS)であ
る。2次元プリミティブは、幅及び高さのような2つの
変数に依存する。2次元プリミティブは一般に10サン
プルを取ってこれらのプリミティブを適切に特徴付け
る。2次元ドロープリミティブの例は、矩形を描くRe
ctangle(Rect)である。唯一の3次元プリ
ミティブ(GlyphBDN)が存在する。このプリミ
ティブは一般に15サンプルを取ってそれを十分に特徴
付ける。GlyphBDNプリミティブは高さ、幅、及
び副絵文字の数の3つの変数に依存する。副絵文字はG
lyphBDN描きプリミティブ内に含まれる絵文字で
ある。GlyphBDNは単一のプリミティブと見做さ
れるが、各々が自身の幅及び高さを有する多くの副絵文
字を有することができる。GlyphBDNプリミティ
ブを描くコストは、それが1つの絵文字を描くのに使用
されるのか、または多くの絵文字を描くのに使用される
のかに依存して変化する。現在では好ましい実施例は、
特定のプリンタの動作に関して幾つかの仮定を行ってい
る。これらの仮定は種々のプリミティブのために必要な
モデルの数を減少させる。詳述すれば、本発明は任意の
プリンタに関して、特定のプリミティブを描写するため
のコスト(P)、ドットコスト(D)、及び行コスト
(R)が一定であると仮定している。これによって、プ
リミティブの種々の次元を以下の表3に示す方程式によ
って特徴付けることができる。 表3.種々の次元のプリミティブのための実行モデルの表 次元 実行モデル 0 t=P 1 t=P+wR 2 t=P+wR+whD 3 t=P+nN+Σn i=1(wiR+wihiD) ここに、tは必要な合計時間、Pはプリミティブを実行
するのに要する時間、hは対象の高さ、Rは行コスト、
wは対象の幅、Dはドットに触れるのに要する時間、n
はプリミティブの副プリミティブの数、そしてNは副プ
リミティブの処理コストである。プリミティブのコスト
を決定するために、システムは描写するプリミティブの
次元に対応するモデルの1つを選択する。例えば、2次
元プリミティブのコストを決定するために、システムは
2つの相の計算を使用する。相1では、パラメタDを分
離することが望まれる。これを行うために、LLSRを
使用し、wを一定に保ことができる。hだけを変えるこ
とによってパラメタDを分離することができる。表3の
2次元のための方程式を使用する。ドロープリミティブ
のための合計コストは方程式 t=P+wR+whD によって与えられている。 K1=P+wR, K2=wD とすれば、 t=K”+K2h となる。種々のhの5つのサンプルを取り、LLSRを
使用することによって、システムは2つの定数を求める
ことができる。wの値は既知であるから、Dを決定する
ことができる。相2では、パラメタRを分離することが
望まれる。これを行うためにはhを一定に保ち、wを変
える必要がある。方程式は t=P+wR+whD と与えられている。ここでwを変化させる。wだけと共
に変化するサンプルの集合を作成するためにwhD項を
全サンプルから減算する必要がある。即ち、 tllsr=tsample−whD ここにtllsrはLLSR解析によって使用される時
間であり、tsampleは評価器モジュール254に
よって決定されたサンプル時間である。これによりLL
SR解析内のデータを適合させるのが容易な単一の式が
得られる。Dが相1から既知であり、w及びhもサンプ
ル毎に既知であるから、このようにすることが可能なの
である。 K1=P, K2=R とすれば、 t=K1+K2w となる。種々のwの5つのサンプルを取り、LLSRを
使用することによって2つの定数が求まる。2つの定数
はP及びRである。以上のように、2つの相によってパ
ラメタP、D、及びRを決定することが可能である。こ
れらから、任意の幅及び高さに対するプリミティブのた
めのコストが決定できる。描写プリミティブの次元の数
はサンプルにおける試験の数、及びサンプル当たりの必
要合計試験時間に影響する。全ての描写プリミティブの
ための実行コストを計算するために、システムは相1及
び2の間に高さ及び幅に関して1、5、10または15
の試験点を使用する。選択された値は、評価される試験
点の数に依存して、実行時間に300 乃至1500ミ
リ秒の増加をもたらす。表4は次元と試験時間との間の
関係を示す。試験時間を最小にするために、各試験点毎
に複数の小さいドロープリミティブが評価器モジュール
254によってプリンタ218へ送られ、約300 ミ
リ秒の印刷時間に到達するまで徐々にサイズが増加す
る。300ミリ秒の印刷時間に到達すると試験点が記録
され、試験は次の試験点へ進む。このプロセスは全ての
試験点が試験されてしまうまで繰り返される。 プリンタモデル256が上述のようにしてコストデータ
を作成すると、このコストデータはログファイル260
内に記憶される。データ検索プロセスを簡易化するため
に、ログファイル260内のコストデータは分類されて
コストテーブル262内に記憶される。この分類プロセ
スによって、コストデータを記憶する為に必要なデータ
構造が簡略される。本実施例は、分類プロセスを簡易化
する幾つかの仮定を行う。多くの場合、プリンタ内の同
一コードを使用して異なるプリミティブを描くことが知
られている。例えばBitmapHRドロープリミティ
ブを描くのに、GlyphBlドロープリミティブを描
くコードと同一のコードが使用される。コードのこの冗
長度のために、システムは1つのプリミティブのための
コストデータだけを記憶すればよい。GlyphBlの
ような資源アセンブラ208が使用しない若干のドロー
プリミティブは測定する必要はない。ドットコストの解
析も、特定のROP 及びブラシに対するドットコスト
がどのドロープリミティブに関しても同一であることを
示している。即ち、ドロープリミティブRect.RO
PO黒ブラシのためのドット当たりのコストはGlyp
h.ROPO黒ブラシのためのドット当たりのコストと
同一である。従って、各ドロープリミティブ毎には異な
るドットコストは存在しないが、各ROP 及びブラシ
組合せ毎に存在する。4つのブラシと256 のROP
では1,024 の考え得るドットコストが存在す
る。分類を簡略化するために、本システムはプリミティ
ブを分類するための集群計画を使用する。集群(クラン
ピング)は、類似コストを有するドロープリミティブを
グループ化または集群させることによって、データエン
トリの数を減少させるプロセスである。本発明のこの実
施例は、全てのドロープリミティブのためのプリミティ
ブパラメタP、D、及びRのコストを計算し、それらを
より広いカテゴリ内にグループ化する。Select
L、SelectB、及びSelectS のような類
似ドロープリミティブの群が3つの異なるコストを有し
ている場合に必要なことは、3つの中の最も高いコスト
を含ませることである。これらのコマンドが使用される
ことは比較的少ないから、偏差は左程重大ではない。あ
るプリミティブに異なる形状が存在する場合には、最も
高い形状を分類してそのコストを他の形状に使用するだ
けでよい。全ての場合、プリンタが描写することができ
ないバンドを発見するだけのために、プリンタがバンド
を実時間で描写すると仮定することによってプリンタ誤
りが発生しないようにするためにコストテーブル262
により高いコストを含ませるのである。この分類計画
は、ログファイルのために必要なメモリを減少させる手
段として説明したに過ぎないことを理解されたい。考え
得る全てのプリミティブのための実際のコストを含ませ
ることは可能であるが、実際的ではない。ログファイル
260は各ドロープリミティブ毎の全てのパラメタのた
めのコストメトリクスデータを含む。集群プロセスの例
として、ドロープリミティブの群がパラメタDのための
コストとして1、2、2、2、5、5、6、9、10、
10を有しているものとする。10データエントリを有
する代わりに、システムは2、6、及び10の3つの集
群を作成できる。最初の4つのドロープリミティブはコ
スト2を有する第1の集群に割当てられ、次の3つのド
ロープリミティブはコスト6を有する第2の集群に割当
てられ、そして最後の3つのドロープリミティブはコス
ト10を有する第3の集群に割当てられる。若干のドロ
ープリミティブの実際のコストは、それらが割当てられ
た集群コストよりも小さいから、これは若干の不正確さ
をもたらすことに注目されたい。しかしながら、集群の
数は可変せあり、誤差の量が最小になるように選択され
る。また、ドロープリミティブが実際のコストより小さ
く評価されることはないことにも注目されたい。実際の
コストを過少評価すると、実際のコストを過少評価した
ことによってもし資源アセンブラ208がRPL を実
時間で描写することができると決定するようなことがあ
ればプリンタ誤りがもたらされる。実際の経験から、ド
ットコストのために1,024 コストデータエントリ
がある場合には、僅か40の集群されたドットコストデ
ータエントリによってこれらを表すことができることが
分かった。集群のプロセスは最低コストから最高コスト
まで配列された行内にあるパラメタのための全てのコス
トを配列することによって遂行される。各コストデータ
エントリを、その隣から差し引き、差をアレイ内に記憶
する。各アレイエントリ毎のオフセット値が実際のコス
トを追跡する。次いで差アレイを最大コストから最小コ
ストまで分類する。分類されたアレイ内の最初のエント
リは1つの集群のための集群データコストである。もし
2つの集群が使用されていれば、分類されたアレイ内の
第2のエントリは集群コストである。もし3つの集群が
使用されていれば、分類されたアレイ内の第3のエント
リは集群コストである等々である。集群プロセスの例と
して、パラメタDのコストが1、2、2、2、5、5、
6、9、10、10 であるものとする。各コストをそ
の隣から差し引けば次のアレイが求まる。1(2−
1)、0(2−2)、0(2−2)、3(5−2)、0
(5−2)、1(5−5)、1(6−5)、3(9−
6)、1(10−9)、及び0(10−10)。次いで
このアレイを最大から最小への順次順序で配列する。も
し2つの数が同一であれば、最高コストに関連する差数
を最初にリストする。上例では順次に配列された差アレ
イは、3、3、1、1、1、0、0、0、0である。差
アレイ内の最初の数字3は9と6のコスト差に対応する
ものであり、2番目の数字3は5と2のコスト差に対応
するものである。従って、もし2つのコスト差集群が存
在していれば、これらの集群は順次差アレイ内の最初の
数字に対応するコスト差によって分割される。この例で
は2つの集群は第1の数字3に対応するコスト数6とコ
スト数9との間で分割される。従って一方の集群は9−
10 からのコストを含み、第2の集群は1−6間のコ
ストを含む。同様にもし3つのコスト集群を使用するの
であれば、第2及び第3の集群は第2の数字3に対応し
てコスト数2と5との間で分割される。従ってコスト集
群は9−10、5−6、及び1−2となる。この原理は
どのような数の集群にも拡張できる。代替として、ヒス
トグラム解析のような統計的プロセスを使用して最も適
切な集群コストを決定することもできる。集群されたデ
ータエントリはコストテーブル262内に記憶される。
コストテーブルへのアクセスを簡易化するために対応す
るマップテーブル264が使用される。例えば、40
のドットコストデータエントリは0から39までの相対
位置を有するコストテーブル内に記憶される。実際に
は、コストテーブルはホストコンピュータ202内のど
のような便宜な位置に配置しても差し支えないことを理
解されたい。ドットコストマップテーブルは1,024
のエントリ(4×256)を含み、これらは各々0か
ら39までの数を含んでいる。マップテーブル264内
のエントリは、コストテーブル262の一部であるドッ
トコストテーブル内のエントリに対応している。資源ア
センブラ208はマップテーブル264及びコストテー
ブル262を使用して各ドロープリミティブのコストを
決定する。一手順では、資源アセンブラ208はドロー
プリミティブ演算がドットコストを含む度毎にドットコ
ストテーブルにアクセスすることができる。合計コスト
を累積することができる。合計時間はコストテーブル内
のコストデータエントリにその特定の型のドットの数を
乗じたものである。しかしながら、この手法で合計コス
トを計算するにはバンド内のドロープリミティブ毎に多
くの演算が必要である。当業者には公知のように、多く
の演算は時間を消費する。従って、現在では好ましい実
施例は、各バンド毎に40のドットカウンタ(各40集
群ドットコスト毎に1つのカウンタ)を使用している。
演算にドットが含まれると、資源アセンブラ208は4
0のドットカウンタの対応する1つに追加する。バンド
の終わりに、資源アセンブラ208は40 のドットカ
ウンタの各々内のドット合計を、その対応するドットの
ためのコストテーブル262内のコストデータエントリ
に乗ずる。次いで40の乗算された値を合計してそのバ
ンドのための合計ドットコストを求める。この手順で遂
行される乗算は上記第1の手順よりも遥かに少ない。任
意のバンドにおいては、40のドットカウンタの若干は
値0を有しているかも知れず、これは乗算演算を実行す
る前に検査することができる。これは、合計ドットコス
トを計算する際に付加的な時間を節約する。同様にし
て、ドロープリミティブのための他のコストが計算され
てバンドのための合計コストが求められる。資源アセン
ブラ208はバンドのための合計コストを決定し、この
合計コストとプリンタ218においてそのバンドを描写
するのに使用可能な時間とを比較する。もしプリンタが
そのバンドを描写するのに十分な時間を有していれば、
そのバンドのためのRPL データはホストコンピュー
タ202によって描写されることはない。もしあるバン
ドが実時間描写するには複雑過ぎると、そのバンドはプ
リンタ218によって事前描写される考え得る候補とし
てマークされる。ページ全体のためのコストが上述した
コストメトリクス手順を使用して資源アセンブラ208
によって計算される時、これらの複雑なバンドの数が所
定の数を超えているか否かを見るために、バンドが調べ
られる。前述したように、“多過ぎる”とみなされる複
雑なバンドの数は、プリンタの計算能力、印刷エンジン
の速度、プリンタのオーバヘッドコスト、及びバンドデ
ータを記憶するために使用可能なプリンタメモリ222
(図2)の量のような多くの要因に依存する。もし任意
のページ上の複雑なバンドが比較的少なければ、これら
の複雑なバンドは事前描写のためにプリンタ218へ送
られる。このようにして、プリンタが印刷エンジン22
6へ実時間委託を行う前に全ての複雑なバンドは事前描
写される。資源アセンブラ208は複雑なバンドの若干
を描写してこれらのバンドのためのビットマップデータ
をプリンタ218へ送ることもできる。もし多過ぎる複
雑なバンドが存在すれば、資源アセンブラ208がペー
ジ全体を描写することになろう。コスト計算プロセスの
例として、ROP0及び黒ブラシを使用してページの特
定位置に矩形を描くことを望んでいるものとする。この
矩形は、幅wが10、高さhが10である。このような
矩形を作成するためには以下のドロープリミティブの集
合を使用できる。即ち、SetRowAb
s(...)、SetColAbs(...)、Set
ExtAbs(...)、SetRopAndBrus
h(...)、及びRect(w,h)である。簡易化
のために、殆どのドロープリミティブのための引き数の
値は含まれていない。このRPL のための合計コスト
を得るために、以下の諸段階が使用される。 1.集群テーブルへ進入して指定されたパラメタのため
の値P、R、及びDを入手することによって最初の3つ
の描写プリミティブのためのコストメトリクスを見出
す。これらのプリミティブのための値は以下の通り。S
etRowAbsS(...)=123.647マイク
ロ秒、SetColAbsS(...)=23.665
マイクロ秒、SetExtAbsS(...)=23.
664マイクロ秒。 2.SetRopAndBrush(...)組合せ
(ROP番号41)によって指定されたROPのための
コストメトリクスを見出す。Pの値は224.633
マイクロ秒、Rの値は11.292 マイクロ秒、Dの
値は0.04マイクロ秒。ROP及びブラシ組合せの合
計コストは341.6マイクロ秒(341.6 マイク
ロ秒後、矩形のためのビットはフレームバッファ内にあ
って印刷の準備が整う)。BIDテーブル内で探索され
たROP 及びブラシ組合せを駆動装置が追跡している
ことに注目。もしこの組合せのための値を再度探索しな
ければ、先に使用されたか否か。 3.ROP及びブラシ組合せのコストをRPL リスト
内の全ての描写プリミティブに加算。341.6+12
3.647+23.665+23.664=512.5
76マイクロ秒。これはRPL の合計コストである。
データを印刷するために資源を使用するので、コストメ
トリクスは印刷技術に特に有用である。ホストコンピュ
ータ202は資源、及び資源の従属性を作成する。資源
をドロープリミティブに翻訳することによって、各ドロ
ープリミティブの実行のコストをホストコンピュータ2
02が計算することができる。以上に説明したシステム
は、資源アセンブラ208がランタイムでコストデータ
へ容易にアクセスすることを許容する。プリンタ218
による事前描写に使用可能な時間はコストメトリックデ
ータ内へ算入される。資源アセンブラ208はコストメ
トリックデータを使用して、ホストコンピュータ・プリ
ンタシステム200のどの部分がデータを処理すべきか
を決定する。コストメトリクスを使用すると、従来は可
能ではなかった手法でデータ処理責務をホストコンピュ
ータ202及びプリンタ218が分担できるようにな
る。 以上にプリンタの動作を解析する本発明のシステム及び
方法の応用を詳細に説明した。この同じ技術は印刷に関
係しているコンピュータの動作の解析にも使用すること
ができる。前述したように、本発明のシステム及び方法
は印刷以外の応用にも有用である。本発明の種々の実施
例及び利点を説明したが、この説明は例示に過ぎず、本
発明はその原理から逸脱することなく多くの変更を施し
得ることを理解されたい。従って、本発明は特許請求の
範囲によってのみ制限されるのである。
すように、本発明はコンピュータ・プリンタシステム2
00内に実現されている。従来技術のように、ホストコ
ンピュータ202は印刷すべき文書を含む応用プログラ
ム204を実行する。前述したように、資源は、ハード
ディスクメモリを含むことができるホストコンピュータ
メモリ212のようなホストコンピュータ202の種々
の領域内に記憶されている。種々の記憶領域は、総称的
に資源記憶領域206と呼ばれる。ホストコンピュータ
202は、文書を印刷するために使用可能な実質的に全
ての資源を含んでいる。ROM内に記憶されている若干
のフォント及び共通的に使用される資源は印刷タスクを
通してプリンタ内に記憶させることができる。資源アセ
ンブラ208は文書を調べて、その文書を印刷するため
に必要なのはどの資源かを決定する。文書を調べるにつ
れて資源アセンブラ208はその文書を印刷するために
必要な資源を選択し、その文書を印刷ページを記述する
ドロープリミティブの集合に変換する。選択された資源
及びドロープリミティブはホスト資源記憶装置210内
に記憶される。ホスト資源記憶装置210はホストコン
ピュータメモリ212の一部であっても、または任意の
他の適当な記憶位置であってもよい。資源アセンブラ2
08は、文書と、特定の文書を印刷するために必要な資
源の部分集合との間の従属性を定義する。資源アセンブ
ラ208はこの従属性情報を、ホストコンピュータ20
2に接続されているプリンタ218へ通信する。また資
源アセンブラ208は、その文書を印刷するために最も
効率的なシーケンスに関する情報と、プリンタ218内
に現在どの資源が存在しているかに関するステータス情
報とをプリンタ218から受信する。プリンタ218
は、ホスト資源記憶装置210からダウンロードされた
限定された数の資源を記憶する容量を有しているプリン
タ資源記憶装置220を含んでいる。プリンタ資源記憶
装置220はプリンタメモリ222の一部であっても、
または任意の他の適当な記憶位置であってもよい。図2
にホストコンピュータ202の一部として示してある資
源ローダ214は、資源アセンブラ208が作成した従
属性を使用してドロープリミティブを含む資源がプリン
タ資源記憶装置220へ転送される順序を決定する。ま
た資源ローダ214は新しい資源のための余地を作るた
めに資源をプリンタ資源記憶装置220から解放でき
る、または解放しなければならない順序をも決定する。
資源ローダ214によって転送されたドロープリミティ
ブは、指定された資源を使用すること、図形記号を作成
すること、図形対象を描くこと、英数字を印刷すること
等々をプリンタ218に命令する。プリンタ218内に
配置されているように示されている資源スケジューラ2
16は、代替としてホストコンピュータ202内に配置
してもよい。資源スケジューラ216は、プリンタ動作
のタイミング及び資源転送の実際のタイミングを制御す
る。また資源スケジューラ216は、プリンタ資源記憶
装置220からの資源の削除のタイミング、及びホスト
資源記憶装置210から特定の資源を転送することを要
求するタイミングをも制御する。文書の特定ページに必
要な全ての資源はプリンタ資源記憶装置220内に存在
すると、資源スケジューラ216は要求された資源の部
分集合がそのページを印刷するために使用可能であるこ
とを指示する実行信号を生成する。資源スケジューラ2
16から実行信号を受信すると資源実行装置224はド
ロープリミティブの命令に従って、プリンタ資源記憶装
置220からの資源を使用して現在処理中の文書ページ
のビットマップデータファイルを作成する。資源実行装
置224はこのビットマップデータファイルを印刷エン
ジン226へ転送し、印刷エンジン226は文書ページ
を印刷させる。上述した多くの資源ブロックの物理位置
は、本発明の動作にとって微妙(または臨界的)なもの
ではない。もしコンピュータ・プリンタシステム200
においてプリンタ218が多量の計算能力を有するレー
ザプリンタであれば、上述した全ての資源ブロックをプ
リンタ内に配置することが可能であり、それでも上述し
た本発明の諸面を利用することができる。例えば、資源
スケジューラ216は、上述したようにホストコンピュ
ータ202内にでも、またはプリンタ218内にでも配
置することができる。同様に、プリンタ資源記憶装置2
20を代替としてホストコンピュータ202内に配置し
て差し支えない。もしホストコンピュータ202がウイ
ンドウズ(Windows;商品名)のような環境内で
動作中であれば、プリンタ資源記憶装置220を背景内
で動作するデスプーラ(despooler)機能の一
部とし、応用プログラムを前景内で動作させることがで
きる。それでも、プリンタ資源記憶装置220は未だに
サイズが制限されており、またプリンタ資源記憶装置2
20がプリンタ218内に配置されているのと同一の手
法で動作するから本発明の原理が適用される。背景動作
は応用プログラムのパースペクティブから透明である。
従って、プリンタ資源記憶装置220の実際の位置は微
妙ではないのである。実際には、一般にホストコンピュ
ータ202はプリンタ218よりも大きい計算能力を有
している。従って上述した資源ブロックは、ホストコン
ピュータ202及びプリンタ218の各々の相対的な計
算能力と、ホストコンピュータとプリンタとの間の双方
向通信チャネルの利用率とに依存して、ホストコンピュ
ータ202またはプリンタ218に割当てられる。ホス
トコンピュータ202は、資源をホストコンピュータ2
02内の種々の位置またはプリンタ218内(ROM
に記憶されている文字フォントの場合)に記憶させる。
例えば、絵文字集合は資源アセンブラ208によってア
センブルされ、ビットマップデータファイルとしてホス
ト資源記憶装置210内に記憶される。コンピュータ・
プリンタシステム200は、ホスト資源記憶装置210
内の種々の図形対象を表す点テーブルをも記憶する。点
テーブルは資源アセンブラ208によってホスト資源記
憶装置210内へロードされ、また資源アセンブラ20
8は点テーブルを本発明が使用するデータフォーマット
へ変換する。他の場合には図形対象を記述するデータは
応用プログラムによって点テーブル以外のフォーマット
で記憶させることができる。資源アセンブラ208は適
切なデータフォーマットで点テーブルを作成し、作成し
た点テーブルをホスト資源記憶装置210内に記憶させ
る。これに対してソフトフォント集合は、典型的にはデ
ータファイルとしてハードディスク(図示してない)上
に記憶される。もし特定のソフトフォント文字または絵
筆が必要であると資源アセンブラ208が決定すれば、
その資源はホスト資源記憶装置210内へロードされ
る。従来の、及び本発明のコンピュータ・プリンタシス
テム200では、応用プログラム204はホストコンピ
ュータメモリ212、またはハードディスク(図示して
ない)のような何等かの他の適当な記憶位置に存在する
ことができる文書記述を発生する。応用プログラムは、
1つの応用プログラムから別の応用プログラムへ変化す
ることができるページ記述言語(PDL)を使用して文
書を記憶する。従来のシステムでは、ホストコンピュー
タ内のアセンブラが、PDLを、描写プリミティブ(R
P)と総称することができるドロープリミティブの集合
に変換する。RPは英数字、図形対象、または両者の組
合せを含むことができる。若干の従来のシステムでは、
ホストコンピュータはRPをプリミティブリストの描写
と称されるプロセスで文書ページのビットマップデータ
ファイルに翻訳する。従来のホストコンピュータがプリ
ンタへ転送するのがビットマップデータである。従来の
他のホストコンピュータはRPをポストスクリプト(商
品名)またはPCL(商品名)のような中間レベル言語
に変換する。従来の若干のシステムは、資源アセンブラ
と類似の手法で機能するシステムの一部を実際に有して
いる。この従来のアセンブラはホストコンピュータ内に
あって、PDLをRPL に変換する。前述したパーザ
は従来のシステムの第2の資源アセンブラとして動作
し、RPLを受信して中間データ構造を構成する。この
中間データ構造は中間レベル言語を対応するビットマッ
プに翻訳することが要求されよう。パーザはコードを処
理するように設計されており、印刷ページを生成するよ
うには特別に設計されていない。対照的に本発明のコン
ピュータ・プリンタシステム200は、典型的にはホス
トコンピュータ202内に配置されている単一の資源ア
センブラ208だけを使用している。資源アセンブラ2
08は印刷ページを生成することだけに関与し、資源ア
センブラが作成したコードは文書を効率的に印刷するよ
うに設計されている。資源アセンブラ208は文書を調
べてPDLをRPL に変換し、文書を印刷するために
はどの資源が必要かを決定する。資源アセンブラ208
は選択された資源を集め、それらを関連RPL と共に
ホスト資源記憶装置210内に配置する。本発明は資源
及びRPL を、特定のRPL を有する資源に関連付
ける特定のフォーマットでホスト資源記憶装置内に配置
する必要をなくしている。それどころか実際のデータ構
造及びフォーマットは、本発明の使用にとって重要なも
のではない。本発明を適切に動作させるために当業者に
は公知の多くの異なるフォーマットを受け入れることが
できる。資源とRPL との従属性及び位置を述べるリ
ストが必要な全てである。このリストは資源と関連RP
L とを記憶した位置を指示する一連のポインタの形状
を取ることができる。後述するように、このリストは所
定のRPL 実行シーケンスによって暗示することさえ
もできる。資源をホスト資源記憶装置210内に記憶さ
せる時に、資源及びRPL を含むデータファイルのサ
イズには何等の制約も存在せず、または資源及びRPL
が記憶されるシーケンスにも何等の制約も存在しないか
らそれらは無制約であるものと考えられる。例えば、あ
る文書をユーザが作成し、文書の始めの付近に図形チャ
ートを含むように爾後に編集することができる。この図
形チャートを挿入するために応用プログラムが文書ファ
イル全部を再作成することはない。そうではなく、応用
プログラムは文書の終わりに図形チャートを配置し、文
書内の図形チャートを挿入すべき点にポインタを挿入す
る。ポインタは図形チャートの位置を指し示す。この普
通の技術は逆方向ポインティングを使用する。即ち、文
書内の挿入点は、図形チャートが記憶されている文書フ
ァイル内の後方の位置を逆方向に指し示す。この技術を
図3に図式的に示す。図3に示す文書300はNページ
を有している。番号302で示す文書のページ2はフォ
ント1 304を要求し、一方文書300のページ3
306はビットマップ308で表されている図形チャー
トを要求している。フォント1 304及びビットマッ
プ308は、それぞれフォント及びビットマップを要求
している文書300内のページ2 302及びページ3
306上の位置の後に記憶されるものであることに注
目されたい。データポインタ310及び312はそれぞ
れ、資源を要求している位置304及び308を指し示
している。文書は無制約であるからコンピュータは文書
全体へのアクセスを有しており、上述した手法でポイン
タを使用することができる。しかしながら、文書を印刷
する時にプリンタはファイル全体への同時アクセスを有
していないであろう。従って、文書はプリンタ資源記憶
装置220のサイズ制約及び文書を記憶するシーケンス
の両者によって制約を受けているものと見做される。必
要な資源は、それらを実際に必要とする前にプリンタ内
に存在していなければならず、さもないとプリンタは遅
延させられるか、または遂には特定のページを印刷する
ことができなくなるかも知れない。同じ文書300を制
約された文書として示してある図4に示してあるよう
に、文書は制約された形態にアセンブルしなければなら
ない。要求されたフォント316及びビットマップ31
8はページ2 320及びページ3 322が実際に要
求する前に文書内に現れている。ポインタ324及び3
26は、文書300内の資源が記憶されている位置を指
し示す順方向ポインティングである。このようにする
と、文書の印刷が要求される前に資源は常に存在するこ
とになる。資源は必ずしも文書の始めに位置する必要が
ないことに注意されたい。特定の資源を要求している文
書内の位置の前に資源が配置されていることだけが必要
なのである。例えば、図5に制約された形態で示す文書
300では、フォント1 316は資源を必要としてい
る位置320の直前に配置されている。ポインタ324
は要求された資源の位置を指し示している。同様にビッ
トマップ318はそれを要求している位置322の直前
に位置しており、ポインタ326は資源が要求されてい
る位置を指示している。一般的にホストコンピュータ2
02はプリンタ218よりも多くのメモリを有している
が、ホスト資源記憶装置210に割当てることができる
ホストコンピュータメモリ212の量には制限が存在す
ることに注意されたい。従って、ホスト資源記憶装置2
10はコンピュータ上に記憶されている全ての考え得る
資源を含んではいない。そうではなく、ホスト資源記憶
装置は特定の文書を印刷するために必要な資源及びその
文書を記述するRPL だけを含むのである。文書の特
定の部分が印刷されてしまうと、文書のその特定の部分
に必要であった資源はホスト資源記憶装置210から削
除される。若干の資源はある文書に1回だけしか使用さ
れず、文書のその部分の印刷が完了すると直ちに削除さ
れよう。屡々使用される絵文字集合のような他の資源
は、それが文書に必要でなくなるまでホスト資源記憶装
置210内に記憶される。ホストコンピュータ202は
典型的にはプリンタ218よりも多くのメモリを有して
いるので、ホストコンピュータはホスト資源記憶装置2
10が使用するためにより多くのホストコンピュータメ
モリ212を割当てることができる。少ないメモリを有
しているプリンタ218は、対応する小さいプリンタ資
源記憶装置220を有している。プリンタ資源記憶装置
220は、ホスト資源記憶装置210が含んでいる資源
の集合全体を保持するには不十分な大きさである。従っ
てプリンタ218が資源を必要とする場合には、ホスト
資源記憶装置210からプリンタ資源記憶装置220へ
ダウンロードしなければならない。プリンタ218はプ
リンタ資源記憶装置220内において資源を効率的に使
用し、不必要になった資源を削除し、またはホスト資源
記憶装置210から迅速に再ロードできるようにしなけ
ればならない。以上のように、ホスト資源記憶装置21
0は文書を印刷するために必要な資源を1回だけロード
されるのに対して、プリンタ資源記憶装置220は文書
印刷中に多数回資源をダウンロードされ、解放する。資
源の最も効率的な使用を決定するために、本発明のコン
ピュータ・プリンタシステム200は文書全体を調べ
て、如何にして資源を最も効率的な手法で割当てるかを
決定する。再度図2を参照してコンピュータ・プリンタ
システム200の動作の詳細を説明する。資源アセンブ
ラ208はPDL をRPL の集合に変換し、その印
刷タスクにとってどの資源が必要かを決定する。印刷タ
スクが開始されると、資源アセンブラ208は印刷され
る表面を記述するデータの第1のバンド(もしプリンタ
218がバンディングモードで動作中であれば)、また
はページ(もしプリンタ218がページモードで動作中
であれば)を調べ始める。この応用の目的のために、処
理中の文書のユニットサイズ、即ちバンドかページかを
データブロックと呼ぶ。資源アセンブラ208は、資源
記憶領域206から文書を印刷するために必要であろう
資源を選択する。また資源アセンブラ208は、特定の
データブロックに対するこれらの資源の従属性をも決定
する。例えば資源アセンブラ208は、第1ページ上の
数式に関しては特定のフォント型が必要であり、残余の
ページに関しては別のフォント型が必要であることを決
定することができる。更に点テーブル及び絵筆のような
若干の図形資源を必要とするグラフをそのページ上に印
刷することもできる。資源アセンブラ208は、従属性
と、これらの資源を要求しているデータブロックとを明
示的に述べるリストを作成する。このリストは、リスト
の形状である必要がないことに注目されたい。前述した
ように、このリストはメモリ位置を指し示すポインタの
形状であっても、または資源アセンブラ208がRPL
を作成するシーケンスによって暗示的に定義されるも
のであってさえよい。例えば、もしプログラマが第1の
RPL を作成し、直ちに実行するプログラムを書くも
のとすれば、ホスト資源記憶装置210内で作成され、
記憶される表現されたリストは存在しない。しかしなが
ら、RPL内でタスクが作成される順序によって指定さ
れる暗示リストが存在する。本発明の効率的な動作のた
めに重要なものは、資源アセンブラ208が従属性を決
定し、他の資源ブロックにこれらの従属性を知らせるこ
とである。資源アセンブラ208が指定する従属性には
2つの異なる型がある。第1の型の従属性は、上述した
ように要求された資源を特定のデータブロックに関係付
けるオペランド従属性である。第2の型の従属性は、R
PLを処理するシーケンスを指定する実行従属性であ
る。若干の従来システムは、それらが文書を印刷する時
に実行従属性を満足させることができない。例えば若干
の従来システムは、本文を図形から分離し、両者を独立
的に処理する。従って印刷ページは、ユーザが表示画面
上で見ているものではないかも知れない。従って従来シ
ステムは、必ずしも“貴方が見ているものは貴方が入手
しているものである”(WYSIWYG)をもたらすと
は限らない。これに対してコンピュータ・プリンタシス
テム200は、システムがデータブロックを本文部分と
図形部分とに分割するのではなくデータブロック全体を
処理するから、上述したように、たとえそれらがRPL
のシーケンス内に暗示されているとしても常に実行従属
性を満足する。もしプリンタ218とホストコンピュー
タ202との間に双方向通信が存在していれば、若干の
実行従属性をプリンタ218によって指定することがで
きる。詳細を後述するようにプリンタ218は、印刷プ
ロセスの効率を最大にするためにデータのページまたは
バンドを処理すべき順序を指定することができる。もし
実行従属性がプリンタ218によって指定されれば、資
源アセンブラ208がこれらの従属性をコンパイルす
る。もしデータブロック内に維持しなければならない特
定の描き順序が存在すれば、資源アセンブラ208はそ
れ自体の実行従属性を生成することもできる。例えばプ
リンタ218は、最初に文書のページ2を処理し、ペー
ジ2を下から上へ処理することを資源アセンブラ208
に命令することができる。これはプリンタ218によっ
て指定される実行従属性である。しかしもしページ2上
に重なり合った図形対象が存在すれば、印刷ページに意
図したように重なった対象が現れるようにこれらの対象
の描き順序を指定しなければならない。以上のように、
資源アセンブラ208はオペランド従属性及び全ての実
行従属性(資源アセンブラ208によって指定されてい
ようとも、またはプリンタ218によって指定されてい
ようとも)の両者を述べるリストを作成する。前述した
ように、若干の従属性に関するリストはバンドまたはペ
ージ内のドロープリミティブのシーケンス内に暗示する
ことができる。例えばコンピュータ・プリンタシステム
200は常に第1RPL を先ず実行することによって
明示的に述べてはならない実行従属性を作成する。特
に、精緻なプリンタ及び双方向通信を使用して最大の効
率を得るために、コンピュータ・プリンタシステム20
0の現在では好ましい実施例は暗示従属性を使用しな
い。それはこれらがタスクのシーケンスの効率を低下さ
せるように、実行を不要に制限し得るからである。暗示
従属性を使用する上例は、本発明の広い原理を使用すれ
ばコンピュータ・プリンタシステム200の全ての発明
的な面の使用を必要とせずに印刷プロセスの総合効率を
改善できることを示すために説明したに過ぎない。現在
では好ましい実施例では資源アセンブラ208は、資源
ローダ214、資源スケジューラ216、及びプリンタ
218を含むシステムの他の成分へ従属性を明示的に通
信する。もしコンピュータ・プリンタシステム200が
双方向通信能力を有していればプリンタ218はプリン
タ資源記憶装置220の現ステータスに関する情報を資
源アセンブラ208へ送ることができる。このステータ
ス情報は、どの資源がプリンタ資源記憶装置220内に
既に存在しているか、及びプリンタ資源記憶装置220
内にどれ程多くの使用可能な空間が存在しているかを含
む。更に、プリンタは文書を印刷するために最も効率的
なシーケンスに関して資源アセンブラ208に命令す
る。これは、双方向化能力を有し、且つ複数の用紙トレ
イから印刷することができる大きい精緻なレーザプリン
タにおける重要なプロセスである。これらのプリンタで
は、10シート程度の用紙が同時に印刷エンジンを通っ
て移動することができる。紙シートの両側に印刷される
(双方向モード)ページは用紙の一方の側では上から下
へ、そして用紙の他方の側では下から上へ処理される。
ページサイズが異なれば印刷エンジンの時間長は異な
る。ランドスケープ(landscape)モードのよ
うなモードは他のモードより長い印刷エンジン処理時間
を必要としよう。精緻なレーザプリンタの印刷エンジン
の内部では複数のページを互いに実際に移動させること
ができる。その結果、ページを処理するための最も効率
的なシーケンスはページの数字順(即ち、ページ1、
2、3、・・・)ではないかも知れない。本発明のコン
ピュータ・プリンタシステム200は、プリンタ218
が文書を印刷するための最も効率的なシーケンスを決定
すること、及びその情報を資源アセンブラ208へ通信
することを許容する。一方向通信だけを有するシステム
では、プリンタ218はステータス情報または印刷シー
ケンス命令を通信することはできない。しかしそれでも
資源アセンブラ208は明示従属性をプリンタ218へ
通信するので、プリンタ218はプリンタ資源記憶装置
220から資源を削除できる時点を知る。もし一方向通
信だけしか使用できなくてもホストコンピュータ202
が一方向モードでプリンタメモリ222を管理するので
資源アセンブラ208はプリンタ資源記憶装置220の
ステータスを知ることができる。以上のように資源アセ
ンブラ208は、印刷タスクの開始時にどの資源が既に
プリンタ資源記憶装置220内に存在しているかを知
る。前述したように、資源実行装置224は典型的にR
PL を、印刷エンジン226によって印刷されるビッ
トマップデータに変換する。一旦印刷エンジン226が
始動するとそれはそのページの印刷を停止することがで
きず、停止させれば誤りが発生しよう。従って一旦印刷
エンジンに委託してしまうと、RPLを実時間でビット
マップデータに変換するか、または予めビットマップデ
ータに変換しておかなければならない。勿論、ドットマ
トリクスプリンタ及びインクジェットプリンタのような
若干のプリンタは誤りを発生することなくページの途中
で停止させることができる。プリンタ資源記憶装置22
0の現ステータス及びプリンタ218の総合処理能力を
知って資源アセンブラ208は各データブロックを調
べ、印刷エンジン226が走っている間にプリンタ21
8がそのデータブロックに関するRPL を実時間でビ
ットマップデータに変換できるか否かを決定する。もし
プリンタ218がそのデータブロックに関するRPL
を実時間でビットマップデータに変換することができな
ければ、資源アセンブラ208はホストコンピュータ2
02に命令してRPL をビットマップに処理させ、そ
のビットマップをプリンタ218へ転送させる。代替と
して、もしプリンタメモリ222がそのページ全体に関
するビットマップデータファイルを記憶するのに十分な
容量を有していれば、資源アセンブラ208はプリンタ
218に命令してRPL をビットマップデータファイ
ルに変換させ、印刷エンジン226に委託するまでその
ビットマップをプリンタメモリ222内に記憶させる。
コンピュータ・プリンタシステム200のどの部分がR
PLをビットマップに変換するかに関する決定は、変換
タスクの相対的な複雑さと、システムの各部内のプロセ
ッサの相対的な処理能力とに依存する。現在好ましい実
施例では、資源アセンブラ208はコンピュータ・プリ
ンタシステム200のどの部分がデータを処理するのか
を決定する上で3つの要因を考慮する。これらの要因と
は、 1.ホストコンピュータ202がRPL をビットマッ
プデータに処理するのに要する時間長、 2.プリンタ218がRPL をビットマップデータに
処理するのに要する時間長、及び 3.通信チャネルがRPL またはビットマップデータ
を転送するために要する時間長 である。換言すれば、資源アセンブラ208は特定のデ
ータブロックに関するRPLをビットマップデータファ
イルに処理するのに要する時間+通信チャネルがビット
マップデータファイルをプリンタ218へ転送するのに
要する時間長を計算し、それと通信チャネルがRPL
をプリンタ218へ転送するのに要する時間長+プリン
タ218がRPL をビットマップデータに処理するの
に要する時間長とを比較する。データブロックを処理さ
せるためにホストコンピュータ202を選択するか、ま
たはプリンタ218を選択するかは、詳細を後述するコ
ストメトリクスによって決定される。コンピュータ・プ
リンタシステム200は、データ処理をホストコンピュ
ータ202とプリンタ218との間で行き来するように
移動させることによって負荷の平衡化をも遂行する。資
源アセンブラ208は、システムのどの部分がデータブ
ロックを最も効率的に処理できるかに依存して、データ
ブロックの処理のためにホストコンピュータ202また
はプリンタ218を選択する。例えば、もし特定のタス
クがページ上に多数の線を描くことを要求し、ホストコ
ンピュータのプロセッサがプリンタのプロセッサの2倍
の速さであれば、多分ホストコンピュータ202がデー
タを処理することを命令されよう。一方、もし変換が比
較的簡単であり、プリンタ218がビットマップを記憶
するメモリ容量を有していればプリンタのプロセッサが
データの処理を命令され、ホストコンピュータのプロセ
ッサは次のデータブロックを自由に処理できる。この計
算はデータブロック毎に変化できる動的なプロセスであ
ることに注目されたい。総合的な目的は、最も効率的な
手法で文書を生成することである。本発明のコンピュー
タ・プリンタシステム200は、ホストコンピュータ2
02及びプリンタ218の両方の潜在的な計算能力を使
用することによってこれを許容する。負荷の平衡化はホ
ストコンピュータ202及びプリンタ218の相対的な
計算能力、データ通信チャネルの速度、ホスト資源記憶
装置210及びプリンタ資源記憶装置220の相対的な
サイズ、印刷タスクの複雑さ、及びホストコンピュータ
202及びプリンタ218が現在遂行中のタスクのよう
な種々のパラメタに基づいている。前述したように負荷
平衡化は動的プロセスであって、資源アセンブラ208
は上述したパラメタに基づいて文書の若干のページをホ
ストコンピュータ202に割当て、他のページをプリン
タ218に割当てて処理させるることができる。負荷平
衡化は、単一のページ内でデータ処理責務をホストコン
ピュータ202とプリンタ218との間で移動させるこ
とさえも可能である。同一ページを処理するコンピュー
タ・プリンタシステム200の異なる部分の例は、文書
の特定のページが2つの重なり合った円のような図形対
象を含む場合に生じ得る。プリンタが現在印刷していな
ければ、資源アセンブラ208は第1の円のPDL 記
述をプリンタ218へ送ることができる。従ってプリン
タ218はPDL を第1の円に翻訳するために時間を
使う。ホストコンピュータ202はプリンタ218より
も大きい計算能力を有しており、またプリンタは第1の
円を翻訳するために既に多忙であるので、ホストコンピ
ュータ202は第2の円に関するPDL を翻訳するこ
とができる。以上のように、資源アセンブラ208はデ
ータ処理責務をホストコンピュータ202とプリンタ2
18との間で負荷平衡させるために使用される。前述し
たように文書の特定のデータブロックのために必要な資
源は、その特定のデータブロックのための特定の資源に
関するコンピュータ・プリンタシステム200内の従属
性を作成する。これらの従属性はデータブロック毎に変
化することができる。資源アセンブラ208はこれらの
従属性を明示的に述べて、どの資源が特定のデータブロ
ックのために必要であるかをプリンタ218に知らせ
る。従ってプリンタは必要な資源を各データブロックに
関係付ける一種の資源の“メニュー”を有している。デ
ータブロックと資源との間の明示従属性が得られている
ために、双方向通信を使用してプリンタ218はそれ自
体のメモリを管理することができる。プリンタ218は
明示従属性のメニューを使用し、プリンタ資源記憶装置
220の効率を最大にするような手法で、ホスト資源記
憶装置210に資源を要求する。例えば、明示従属性は
1つのデータブロックが特定のフォント集合と特定の絵
文字集合とを要求していること、及び次のデータブロッ
クが同一のフォント集合ではあるが異なる絵文字集合を
要求していることを述べることができる。プリンタ21
8は一時にこれら3つの資源(フォント集合及び2つの
絵文字集合)の全てをプリンタ資源記憶装置220内に
保持することができるかも知れない。従ってプリンタ2
18はこれら3つの資源の全てを要求する。資源管理の
より困難な面は、どの資源をプリンタ資源記憶装置22
0から削除すべきかを決定することである。もし特定の
データブロックを印刷するためにプリンタ資源記憶装置
220から他の資源を削除しなければならない程大きい
資源を必要とすれば、プリンタ218はどの資源(1ま
たは複数)をプリンタ資源記憶装置220から削除する
か、また要求された資源を将来のデータブロックのため
にホストコンピュータ202から何時戻すかを決定する
ことができる。更に、もし誤り復元が要求されていれ
ば、プリンタ218は失われたページを復元するために
はどの資源が必要であるかを知り、もし必要な資源が既
にプリンタ資源記憶装置220から削除されていればそ
の必要な資源をホストコンピュータ202に要求するこ
とができる。以上の説明は、ホストコンピュータ202
とプリンタ218との間に双方向通信が存在している場
合に適用できる。もし一方向通信だけしか使用できなけ
ればプリンタメモリ222はホストコンピュータ202
によって管理される。この場合ホストコンピュータ20
2は、資源がプリンタ資源記憶装置220内へロードさ
れる、またはプリンタ資源記憶装置220から削除され
るシーケンス、及び資源をロード及び削除する時点を決
定する。たとえ一方向通信でプリンタ218がそれ自体
のメモリを管理できないとしても、パーザを排除し、資
源アセンブラ208及びホスト及びプリンタ資源記憶装
置210及び220のようなコンピュータ・プリンタシ
ステム200の部分が付加されているので、本発明は従
来技術に対して性能の改造を提供する。本発明のコンピ
ュータ・プリンタシステム200では、資源は文書全体
の印刷途中に複数回プリンタ資源記憶装置へロードし、
該装置から解放することができる。どの資源がプリンタ
資源記憶装置220内にあるべきかを決定するジョブは
資源ローダ214によって遂行され、詳細に関しては後
述する。資源アセンブラ208は資源ローダ214の数
データブロック前方の文書を調べて将来データブロック
のための資源を生成する。これは資源ローダ214が先
見して資源の最も効率的な割当てを決定することを許容
する。若干の資源は文書を通して多くのデータブロック
が使用でき、従って文書を通して従属性を有している。
プリンタ資源記憶装置220内の使用可能な空間に依存
して、印刷プロセスを通してこれらの資源をプリンタ2
18内に保持することがより効率的であるかも知れな
い。例えば第2の資源は文書の中間で1回だけ必要であ
るかも知れない。この場合、後刻プリンタ218が若干
の他の資源を必要としなくなる時点まで第2の資源はロ
ードされず、プリンタ資源記憶装置220内のより多く
のメモリが使用可能である。第2の資源は一旦使用され
るとプリンタ資源記憶装置220から削除されて他の資
源のための余地が作られる。どれ程遠くを先見するかの
決定は動的なプロセスである。例えば文書の開始時にお
ける目的は、印刷エンジン226を始動させることであ
る。従って、できるだけ速やかにプリンタ218へ資源
を転送するために資源アセンブラ208の先見動作は制
限される。しかし、プリンタ218が第1のデータブロ
ックを処理している間は、資源アセンブラ208は将来
データブロックを先見し、ホスト資源記憶装置210の
ために資源を選択し、そして将来ページのためにRPL
を構成することができる。理想的には、資源アセンブ
ラ208は何等かの印刷が開始される前に文書全体を調
べるために先見することができる。しかしながら、印刷
エンジン226を始動させるという要望が、初期先見能
力を制限する。他の応用プログラムが走ることができる
ようにホストコンピュータメモリ212の使用を最小に
する要望も、資源アセンブラ208が先見する能力を制
限する。目的は印刷エンジン226をできる限り効率的
に動き続けさせることである。資源アセンブラ208が
先見する実際のページ数は、文書の合計長、印刷エンジ
ン226が処理中の文書の現ページ、及び文書の複雑さ
のような要因に依存する。資源アセンブラ208の先見
能力は、プリンタ資源記憶装置220への資源の流れを
制御する資源ローダ214の能力を向上させる。資源ア
センブラ208の動作の例として、本文の特定のページ
が5つの異なるフォント集合とページを印刷するための
点テーブル(ベジェ曲線を描くための)を必要とするも
とのとする。資源アセンブラ208はページを調べて明
示従属性のリストを作成する。前述したように資源アセ
ンブラ208は、これらの従属性をコンピュータ・プリ
ンタシステム200の他の部分へ通信する。同時に資源
アセンブラ208は、必要な資源及びそのページを記述
するRPL を含むであろうホスト資源記憶装置210
をアセンブルし始める。双方向モードでは、資源アセン
ブラ208はデータブロックが処理されるシーケンスに
関する情報をプリンタ218から受信することに注意さ
れたい。簡易化のために、資源アセンブラ208がその
ページのデータブロックを上から下へ処理するものとす
る。もしプリンタ218がページモードで動作していれ
ば単一のRPL が存在し、もしプリンタ218がバン
ディングモードで動作していれば各バンド毎に異なるR
PLが存在するであろう。RPLは、そのページ上の特
定点における文字の特定シーケンスを印刷することをプ
リンタ218に告げるフォーマットでデータブロック
(ページまたはバンド)を記述する。コンピュータ・プ
リンタシステム200はこの情報を使用して文字シーケ
ンスの記述を構成し、この記述をホスト資源記憶装置2
10内に記憶する。“記述を構成する”の範囲は、ホス
トコンピュータ202内の記憶位置からの文字シーケン
スのビットマップをロードすることから、フォント基準
化技術を使用して方程式の集合から文字シーケンスのビ
ットマップを構成するまでにわたっている。もしフォン
ト集合全体を転送する方がより効率的である程多くのあ
るフォントからの文字が必要であれば、資源アセンブラ
208はあるフォント全体を記憶することができる。一
方、もし制限された数の文字だけが必要であれば、資源
アセンブラ208は必要な文字だけを記憶するために絵
文字集合を開くことができる。本例では、第1のフォン
ト集合の全体を転送することができる。第2のフォント
集合から必要とされる文字は方程式のための数字と数学
記号だけであることができる。資源アセンブラ208は
方程式のための文字を記憶するために絵文字集合を開
く。ページの次の部分が制限された数のイタリック文字
(フォント番号3)を必要とするならば、絵文字集合は
開かれたままになる。絵文字集合のサイズは動的に可変
であることに注目されたい。例えば、印刷動作の始めに
おける目的はできる限り迅速に印刷エンジン226を働
かせることである。この目的のために、資源アセンブラ
208は文書の第1のデータブロックのために小さい絵
文字集合を使用することができるので、絵文字集合はで
きるだけ速やかにプリンタ資源記憶装置220へ転送す
ることができる。これは、働き続けさせる何かを印刷エ
ンジン226に与えながら、資源アセンブラ208に爾
後のデータブロックのための資源をアセンブルさせる。
爾後の絵文字集合のサイズは一般に、プリンタ資源記憶
装置220のサイズ、及びホストコンピュータ202と
プリンタ218との間のデータ転送速度のようなパラメ
タによって決定される。資源アセンブラ208は、絵文
字集合が所定のサイズになるまで絵文字集合を開き続け
る。前述したように、絵文字集合は異なるフォント集合
からの文字を含むことができる。反対に、同一のフォン
ト集合からの文字は、従属性故に異なる絵文字集合内に
記憶することができる。例えば上述した数式内に使用さ
れる文字の若干は爾後のデータブロックにおいて印刷さ
れる第2の方程式に使用することができる。第2の方程
式は第2のフォント集合からの付加的な文字と、第4及
び第5のフォント集合からの文字とをも使用するかも知
れない。資源アセンブラ208は、第2の方程式に必要
な付加的な文字だけを含む第2の絵文字集合を構成する
ことができる。資源実行装置224がRPL 及び資源
をビットマップデータファイル内へ処理する時に、資源
実行装置224は両絵文字集合からの文字を使用して第
2の方程式のためのビットマップを構成する。絵文字集
合を配置するためのRPLは、印刷ページ上の特定の位
置にどの絵文字集合及びどの文字を配置しつつあるかを
識別するフォーマットである。第2の方程式のためのR
PL の例は以下のようなシーケンスを有することがで
きる。絵文字集合1、文字1、絵文字集合1、文字2、
絵文字集合1、文字3、絵文字集合1、文字12、絵文
字集合2、文字1、絵文字集合2、文字2、絵文字集合
1、文字17、絵文字集合2、文字3、絵文字集合2、
文字4、絵文字集合2、文字4、絵文字集合2、文字
5、絵文字集合2、文字6、及び絵文字集合2、文字
7、単一のRPL 内に両絵文字集合を使用すると、プ
リンタ資源記憶装置220内に同時に両絵文字集合が得
られることに注目されたい。もし第1の絵文字集合がプ
リンタ資源記憶装置220から削除されていれば、資源
ローダ214は第1の絵文字集合をホスト資源記憶装置
210から再ロードしなければならないことを決定す
る。資源スケジューラ216は、プリンタ資源記憶装置
220がオーバフローしないように、またプリンタ資源
記憶装置ないの資源がタイムリーな手法で使用可能とな
るように、要求のタイミングを制御する。従来のシステ
ムはフォント全体をダウンロードし、プリンタメモリを
管理することを企図していない。これはメモリのオーバ
フローをもたらし得るが、このようになると印刷タスク
を完了させることはできない。上述したようにインクリ
メント的なダウンロードを遂行できるシステムでさえ、
ダウンロードされたフォントを周期的にクリアすること
を除いて、プリンタメモリを管理することを企図してい
ない。対照的に、本発明のコンピュータ・プリンタシス
テム200は、上述したように必要な文字だけをプリン
タ資源記憶装置220へ転送し、絵文字集合資源を能動
的に管理するので、文字を絵文字集合内へアセンブルす
ることによって時間及びプリンタメモリを節約する。従
って、印刷プロセスの総合効率が向上する。資源アセン
ブラ208の動作を要約すれば、資源アセンブラ208
は資源従属性を決定し、その情報をコンピュータ・プリ
ンタシステム200の他の部分へ通信し、そして文書記
述を最も効率的な手法で処理する。資源アセンブラ20
8はデータブロックを記述するRPL をも作成し、R
PL及び資源をホスト資源記憶装置210内に記憶す
る。資源ローダ214は、資源がプリンタ資源記憶装置
220内へロードされ、それから解放されるシーケンス
を決定する責を負う。資源ローダ214は、資源アセン
ブラ208が決定したシステム従属性へのアクセスを常
に有しているので、最も効率的な資源のローディング及
び再ローディングのシーケンスを決定することができ
る。資源ローダ214は、コンピュータ・プリンタシス
テム200の通信能力に依存してホストコンピュータ2
02内に配置しても、またはプリンタ218内に配置し
てもよい。もしホストコンピュータ202からプリンタ
218までの一方向通信だけしか存在しなければ、資源
ローダ214は常にホストコンピュータ202に頼るこ
とになる。従ってプリンタメモリ222はホストコンピ
ュータ202によって管理される。しかしながら、もし
双方向通信能力が存在していれば、資源ローダ214を
プリンタ218内に存在させることができ、プリンタは
それ自体のメモリを管理できるようになる。資源ローダ
214はRPL 及び資源の両者のプリンタ218への
転送を制御する。前述したようにホスト資源記憶装置2
10は、資源アセンブラ208がアセンブルした資源を
1回だけホスト資源記憶装置210内へロードするのに
十分に大きいサイズである。ホスト資源記憶装置210
は資源のサイズにも、またはプリンタ資源記憶装置22
0のサイズによって賦課される制約にも関係していな
い。一方、プリンタ資源記憶装置220はサイズに制限
があり、資源はサイズ制限によって制約される。プリン
タ資源記憶装置220を効率的に管理するために、資源
ローダ214は既にプリンタ資源記憶装置220内にあ
る各資源のサイズ及び資源従属性(資源アセンブラ20
8によって先に決定されている)を調べ、資源をプリン
タ内へロードする及びプリンタから解放する順序を決定
するので、プリンタ資源記憶装置220が空間を使い果
たすことはない。以上のように資源ローダ214は印刷
タスクの途中で特定の資源を多数回ロードし、解放する
ことができる。資源ローダ214は、特定の資源が不要
になった時にそれを解放できることに注目されたい。特
定の資源はプリンタ218内でまだ必要であるかも知れ
ないので、プリンタ218はその資源を直ちに削除する
ことはできない。ホストコンピュータ202とプリンタ
218とは非同期的に動作するから、資源ローダ214
による資源の解放が直ちにプリンタ資源記憶装置220
からの資源の削除をもたらすことはない。従って資源を
“解放”及び“削除”するという語は、同期していな
い。資源をプリンタ資源記憶装置220から排除すべき
であると資源ローダ214が決定すると、資源が解放さ
れる。資源ローダ214の観点から、資源は最早プリン
タ218内に存在しない。次いで資源ローダ214は次
の資源のロードまたは解放を指定する。プリンタ218
がその中で最早資源を必要としなくなると資源は削除さ
れ、実際にプリンタ資源記憶装置220から資源を削除
する。資源ローダ214は、各資源のサイズと、効率的
な観点から、プリンタ資源記憶装置220内に存在させ
る特定の資源のためにそれが意味をなしているか否かだ
けに関心がある。資源ローダ214はプリンタ資源記憶
装置220のサイズ、その中の使用可能な空間、及びプ
リンタ資源記憶装置220の現状(即ち、どの資源がプ
リンタ資源記憶装置内に存在しているか)を追跡し、ど
の資源を保持するか、または解放するかを決定する。資
源ローダ214は現RPL 及び 将来RPLの両者に
関する明示従属性を調べる。資源ローダ214は資源を
ロード及び解放すべき順序だけに関心があり、資源変化
の実際のタイミングには無関係であることに注目された
い。プリンタ資源記憶装置220に対する変化のタイミ
ングは資源スケジューラ216によって制御される。前
述したように、明示的に述べられた従属性によって資源
ローダ214は、資源をプリンタ資源記憶装置220内
へローディングするシーケンスを決定するのが容易にな
る。より困難なタスクは、新しい資源のために余地を作
るために資源をプリンタ資源記憶装置220から何時解
放するかを決定することである。再び使用されることが
ない資源は無関係に削除できることは明白である。しか
しながら、もしある資源を近い将来再度使用するのであ
れば、資源ローダ214はどの資源を解放して新しい資
源のために余地を作るかを決定しなければならない。従
来の多くのキャッシング(caching)システムに
おける一般的方策は、最も古く使用された項目を削除
(即ち、最も長い時間前に使用された資源を削除)する
ことである。この方策は、将来必要とされることが少な
い資源を予測するためには効率的ではない。コンピュー
タ・プリンタシステム200は、明示従属性の故に、資
源の洞察的キャッシングを遂行して文書の将来のデータ
ブロックのための資源の最も効率的な記憶を予測するこ
とができる。資源は、資源が使用される順序、資源を記
憶するために必要な空間の量、及びもし資源をプリンタ
資源記憶装置220から解放しなければならなければ資
源を再ロードするために必要な時間に基づいて管理され
る。資源ローダ214は明示従属性を使用して、現在プ
リンタ資源記憶装置220内にある資源を資源ローダが
調べてどの資源が最も遅い時間に使用されるかを決定す
るような“時間線”を確立する。しかし前述したよう
に、資源ローダ214は削除される資源のサイズ及び資
源を将来再ロードするために必要な時間をも考慮する。
洞察的キャッシングの例としてプリンタ資源記憶装置2
20が既に10資源(この例のために一般的に1乃至1
0のラベルを付す)を含み、特定のデータブロックのた
めにプリンタ218が番号11の資源を必要としている
ものとする。資源ローダ214は時間線を調べ、例えば
資源番号8が最も遅い時間に使用されることを決定する
ことができる。しかしもし資源番号8のサイズが小さけ
れば、プリンタ資源記憶装置220から資源番号8を解
放した後でも必要な資源番号11をロードための十分な
空間がないことが考えられる。従って、資源ローダ21
4は再度時間線を調べ、資源番号8の次に最も遅い時間
に使用される資源を決定する。例えば資源番号2が解放
できるものとする。しかしながら、番号2の資源をプリ
ンタ資源記憶装置220から解放した場合に必要以上の
自由空間がプリンタ資源記憶装置220内に生じ、また
近い将来番号2の資源を再ロードするには極めて長い時
間を消費するようであれば、資源ローダ214は再度時
間線を調べて1またはそれ以上の他の資源を代わりに解
放する。この例では、要求された資源番号11のための
余地をプリンタ資源記憶装置220内に作るために、資
源ローダ214は資源願望2及び8の代わりに資源番号
7及び5を解放することができる。以上は、資源ローダ
214がプリンタ資源記憶装置220を管理することを
考慮する際の種々のパラメタの例として説明したに過ぎ
ない。資源ローダ214は資源をプリンタ資源記憶装置
220内へロードし、該装置から解放する順序を決定す
るが、資源管理の実際のタイミングは資源スケジューラ
216によって遂行される。資源スケジューラ216は
プリンタ作動のシステムと見做すことができる。しかし
ながら前述したように、資源スケジューラ216を物理
的にプリンタ218内に配置する必要はない。一方向通
信だけを有するコンピュータ・プリンタシステム200
では、資源スケジューラ216をホストコンピュータ2
02内に配置してホストコンピュータ202からプリン
タメモリ222を管理することができる。もしコンピュ
ータ・プリンタシステム200が双方向通信を有してい
れば、資源スケジューラ216をプリンタ218内に配
置してプリンタにそれ自体のプリンタメモリ222を管
理させることができる。ホストコンピュータ202、プ
リンタ218、及びプリンタ内の印刷エンジン216は
全て非同期で動作するから、これら3つの非同期部分間
に競合が発生しないように資源スケジューラ216は全
てのタイミングを制御しなければならない。資源スケジ
ューラ216は全てのプリンタタイミングを初期化して
制御し、印刷エンジン226に動作を同期させ、特定の
資源をプリンタ資源記憶装置220内へ受け入れる時点
を決定する。資源スケジューラ216は、特定の資源を
プリンタ資源記憶装置220から削除する時点をも決定
する。前述したように、資源のローディング及び解放の
シーケンスを指定することが資源スケジューラ216の
タスクである。資源スケジューラ216は先に資源ロー
ダ214によって解放された特定の資源が将来必要では
なくなる時点を決定する。資源ローダ214と同様に、
資源スケジューラ216も資源アセンブラ208によっ
て作成された明示従属性へのアクセスを有している。資
源ローダ214とは異なり、資源スケジューラ216は
現ページのために必要な資源がプリンタ資源記憶装置2
20内に存在しているか否かだけに関心がある。現ペー
ジのための全ての従属性が満たされると(即ち、全ての
必要資源がプリンタ資源記憶装置220内に存在してい
ると)、資源スケジューラ216は印刷エンジン226
にページを印刷することを委託する実行信号を生成す
る。詳細を後述するように、印刷エンジンはページの途
中では停止させることができないから、一旦あるページ
またはそのページを印刷するように印刷エンジンに委託
した後は印刷エンジンにはビットマップデータを実時間
で供給しなければならない。さもないと適切な印刷がな
されなくなる。双方向プリンタはページの各側毎に実行
信号を必要とする(即ち、印刷プロセスは用紙の側と側
との間で停止させることができる)ことに注意された
い。資源スケジューラ216は、印刷エンジンへの実時
間委託を行うことができる時点を決定し、印刷エンジン
にページの印刷を委託する実行信号を生成する。資源ス
ケジューラ216は、一方向及び双方向の両通信におい
て同じような機能を遂行する。一方向システムでは資源
スケジューラ216は、ホストコンピュータ202へプ
リンタステータスを指示するハードウエア内に話中(B
USY)フラグを生成する。また資源スケジューラ21
6は、プリンタ資源記憶装置220から資源が実際に削
除される時点をも決定する。双方向システムでは資源ロ
ーダ214がプリンタ218からプリンタメモリ222
を管理し、特定の資源に対する特定の要求をホストコン
ピュータ202に対して行う。更に資源スケジューラ2
16は印刷プロセスを監視して、ページが印刷エンジン
226内の最終用紙ジャム(jam)センサを通過した
時点をホストコンピュータ202へ通知する。従ってホ
ストコンピュータ202は、誤り復元を提供するために
そのページに関連する資源を最早保持している必要がな
くなったことを知る。資源スケジューラ216は印刷タ
スクのための用紙経路をも計画することができる。これ
は、多数の用紙貯蔵器、複数の用紙サイズ及び経路を有
する大型プリンタには特に重要である。最適用紙経路を
計画すると印刷タスクの総合効率が改善される。資源実
行装置224は資源スケジューラ216から実行信号を
受け、RPLを印刷エンジン226がページを実際に印
刷するために使用することができるビットマップに変換
する。他の資源は、ビットマップ形状でプリンタ資源記
憶装置220内に既に存在していよう。資源実行装置2
24は、現在プリンタ資源記憶装置220内で使用可能
な資源を使用してビットマップを生成する。本発明のコ
ンピュータ・プリンタシステム200は、バンディング
モードまたはページモードで動作するプリンタと共に働
く。もしバンディングモードが使用されていれば、資源
実行装置224は実時間動作に拘束される。即ち、一旦
印刷エンジン226に対して実時間委託がなされると、
資源実行装置224は全てのRPL を一時に1バンド
ずつ実時間でビットマップに変換しなければならず、そ
うでないと誤りが発生しよう。もしプリンタ218が
(バンディングモードに対抗して)ページモードで動作
していれば、実時間委託は存在しない。資源実行装置2
24は、ビットマップを印刷エンジンへ転送する前にペ
ージ全体をビットマップに変換することができる。本発
明のコンピュータ・プリンタシステム200は、ページ
モードでも、またはバンディングモードでも動作するこ
とができる。RPLをビットマップデータファイルに実
際に変換するのは当業者には公知であり、その説明は省
略する。印刷エンジン226は資源実行装置224から
ビットマップデータを受け、このビットマップデータを
ページ上に印刷させる。印刷エンジン226の使用は当
業者には公知であり、その説明は省略する。文書の1つ
のページに関するビットマップデータが印刷エンジン2
26によって処理されるにつれて、用紙はプリンタ21
8を通って移動する。印刷エンジン226を通して、用
紙のジャムまたは低トーナ状態のような誤りを検出する
ための複数のセンサが存在している。従来のシステム
は、ページが最終用紙ジャムセンサを通過するまでプリ
ンタメモリ内にビットマップデータを保持する。もし用
紙のジャム誤りが発生すれば、従来のシステムはジャム
を生じたページを再印刷するために既にビットマップ形
状にあるデータを有している。しかしもしコンピュータ
・プリンタシステム200が双方向通信能力を有してい
れば、ビットマップデータはプリンタ218内に維持さ
れておらず、ホストコンピュータ202内に誤り回復デ
ータを生成する。ビットマップデータが既にプリンタメ
モリ内にあってページがジャムを発生すれば再印刷しよ
うと待機している従来システムの方が本発明よりも誤り
回復が速いように見える。しかし通常の印刷プロセスで
はページジャム誤りは滅多に発生するものではないか
ら、将来のページのためにデータの処理を継続し、誤り
回復のための最も効率的な技術に関して心配しない方が
総合印刷プロセスとしてはより効率的である。従って本
発明のコンピュータ・プリンタシステム200は文書全
体を印刷するための最も効率的な技術に関心を寄せてい
るのである。従来のシステムは、ページが最終用紙ジャ
ムセンサを通過してしまうまでプリンタメモリがビット
マップデータを保持させられているので、次のページの
ためのデータを直ちに処理することはできない。紙シー
トを取り、用紙上に像を発生させ、用紙を用紙トレイ内
へ落とすのに、典型的な印刷エンジンは約10秒を要す
る。本発明は、用紙がジャムしないことを見越して、文
書内の将来のページのためのデータの処理を継続する。
従来のシステムが印刷された用紙が最終用紙ジャムセン
サを通過するのを待機している時間中に、本発明のコン
ピュータ・プリンタシステム200は若干のページのた
めに資源をアセンブルし、PDLをRPLに翻訳し、そ
してプリンタ資源記憶装置220内の資源の流れを管理
している。用紙ジャムが発生しそうにもない場合には、
ホストコンピュータ202はそのページを始めから再処
理する。もし用紙ジャムが発生すれば、ジャムを生じた
1または複数のページを物理的に除去するために操作員
が関与しなければならないから、時間的な実コストは存
在しない。操作員がジャムを生じたページを除去してい
る間に、資源ローダ214はどのページが誤り回復を必
要としているかを決定し、必要な資源及びRPL をプ
リンタ218内へ再ロードし始める。どの資源が誤り復
元プロセスのために必要かを決定するために資源ローダ
214が明示従属性を調べているので、明示従属性は誤
り復元プロセスを簡易化する。例えばプリンタ218
は、2ページから5ページまでの用紙をジャムし、2及
び3ページを双方向とし、4及び5ページを一方向とす
ることができる。もしプリンタ218が印刷順序を3ペ
ージ(下から上へ)、2ページ(上から下へ)、4ペー
ジ(上から下へ)、5ページ(上から下へ)のように予
め指定されていれば、資源ローダ214は明示従属性を
使用して最も効率的な手法でRPL を要求し、誤り回
復を遂行する。これらの活動は、操作員がジャムを生じ
た用紙を除去している間に行われる。従って、コンピュ
ータ・プリンタシステム200は従来のシステムと対比
した時に誤り回復に関して時間を失ってはいない。更
に、印刷プロセスの効率は、ページが通常はジャムしな
いものとすれば、極めて向上している。以上のように、
コンピュータ・プリンタシステム200は従来のシステ
ムよりも遥かに短い時間で文書を処理できるのである。
前述したように、本発明のコンピュータ・プリンタシス
テム200はホストコンピュータ202からプリンタ2
18までの一方向通信と共に動作することも、またはホ
ストコンピュータ202とプリンタ218との間の完全
双方向通信チャ資源アセンブラ208はホストコンピュ
ータ202またはプリンタ218があるデータブロック
のためのRPL を最も効率的に変換できるか否かを決
定する。通常はプリンタ218が遂行する作業の中にホ
ストコンピュータ202が参入してくる場合には、ホス
トコンピュータ202はプリンタ218がRPL を処
理するのにどれ程の時間を要するかを前以て知らなけれ
ばならない。プリンタ218へ送るものは何かを決定す
る際に、プリンタが失敗しないように若干のプリンタ動
作のために必要な時間を考慮しなければならない。本発
明は、コストメトリクスと呼ばれる統計的解析を使用す
ることによって、印刷するのにどれ程長い時間を要する
かを知る問題を解決している。コストメトリクスを使用
するとホストコンピュータ202及びプリンタ218
は、資源の処理を両者間で分担してデータの処理能力を
最大にすることができる。この場合、プリンタが全ての
作業を行う代わりに、プリンタが用紙を送る前にホスト
コンピュータ202が処理能力を提供し、総合印刷時間
をかなり改善することができる。コストとはデータのペ
ージまたはバンドのための印刷時間のことである。コス
トメトリクスは、実時間制約がより優勢であるようなバ
ンディングプリンタにおいて特に有用である。ビットマ
ップデータのページ全体を記憶するのに十分なメモリを
有しているプリンタは実時間制約を有していない。しか
しながら、ホストコンピュータ202がページを記述す
るRPL の部分をも処理できるので本発明はページモ
ードにも有用である。もしプリンタがコンピュータ回路
網に接続されていれば、コストメトリクスはある印刷タ
スク全体の完了時間を予測するのに有用である。以下に
印刷技術に伴う動作の詳細に関して説明するが、本発明
のコストメトリクスのシステム及び方法は、実時間プロ
セスのスケジューリングのようなコストモデル化が有用
な他の領域にも適用可能である。実時間で動作する若干
のシステムは実時間活動のコストを含むデータのスケジ
ューリングを必要とする。コストメトリクスは、全ての
考え得る入力パラメタのためのコストモデルを構成する
ためにコードのモジュールをプロファイルするのにも有
用である。コンパイラも、それらの最適化戦略を駆動す
るためにコストメトリクスを使用することができる。印
刷技術は実時間制約を有しているが、コストメトリクス
は実時間制約を有していない領域にも適用できる。例え
ば実行時間が入力データに依資源アセンブラ208はホ
ストコンピュータ202またはプリンタ218があるデ
ータブロックのためのRPL を最も効率的に変換でき
るか否かを決定する。通常はプリンタ218が遂行する
作業の中にホストコンピュータ202が参入してくる場
合には、ホストコンピュータ202はプリンタ218が
RPL を処理するのにどれ程の時間を要するかを前以
て知らなければならない。プリンタ218へ送るものは
何かを決定する際に、プリンタが失敗しないように若干
のプリンタ動作のために必要な時間を考慮しなければな
らない。本発明は、コストメトリクスと呼ばれる統計的
解析を使用することによって、印刷するのにどれ程長い
時間を要するかを知る問題を解決している。コストメト
リクスを使用するとホストコンピュータ202及びプリ
ンタ218は、資源の処理を両者間で分担してデータの
処理能力を最大にすることができる。この場合、プリン
タが全ての作業を行う代わりに、プリンタが用紙を送る
前にホストコンピュータ202が処理能力を提供し、総
合印刷時間をかなり改善することができる。コストとは
データのページまたはバンドのための印刷時間のことで
ある。コストメトリクスは、実時間制約がより優勢であ
るようなバンディングプリンタにおいて特に有用であ
る。ビットマップデータのページ全体を記憶するのに十
分なメモリを有しているプリンタは実時間制約を有して
いない。しかしながら、ホストコンピュータ202がペ
ージを記述するRPL の部分をも処理できるので本発
明はページモードにも有用である。もしプリンタがコン
ピュータ回路網に接続されていれば、コストメトリクス
はある印刷タスク全体の完了時間を予測するのに有用で
ある。以下に印刷技術に伴う動作の詳細に関して説明す
るが、本発明のコストメトリクスのシステム及び方法
は、実時間プロセスのスケジューリングのようなコスト
モデル化が有用な他の領域にも適用可能である。実時間
で動作する若干のシステムは実時間活動のコストを含む
データのスケジューリングを必要とする。コストメトリ
クスは、全ての考え得る入力パラメタのためのコストモ
デルを構成するためにコードのモジュールをプロファイ
ルするのにも有用である。コンパイラも、それらの最適
化戦略を駆動するためにコストメトリクスを使用するこ
とができる。印刷技術は実時間制約を有しているが、コ
ストメトリクスは実時間制約を有していない領域にも適
用できる。例えば実行時間が入力データに依存するプロ
グラムでは、従来のシステムは入力データを供給してそ
の特定の入力データに関するコストを決定するだけであ
った。これに対して、コストメトリクスは考え得る全て
の入力データのためのプログラムをモデル化するのに使
用することができる。印刷技術におけるコストメトリク
スへのキーは、ページ全体を記述するデータをより小さ
い部分に分割し、これらの部分をできるだけ速く、しか
しプリンタ218が処理できるデータ転送速度の範囲内
でプリンタ218へ送ることをホストコンピュータ20
2に許容するか、またはある部分がプリンタ218へ送
られる前に、ホストコンピュータ202を使用してそれ
をビットマップデータに処理することである。換言すれ
ば、ホストコンピュータ202はページを記述するデー
タの部分を描写し、描写されたデータをプリンタ218
へ送ることができるのである。たとえ部分が処理のため
にプリンタへ送られても、データは処理を簡易化する形
状であるので、本発明は従来のシステムよりも高速であ
る。本発明は、また、あるページが印刷されるようにす
るために、プリンタ218の分解能を自動的に減少させ
る能力も有する。自動分解能減少については、以下で詳
細に説明する。コストメトリクスは任意のRPL また
はバンドのための各ドロープリミティブのコストを供給
する。このコストは、RPLをプリンタへ直接送るか否
かを決定するために、実時間委託が行われる前にRPL
をプリンタ218へ送って事前描写させるために、及
びビットマップをプリンタ218へ送るために資源アセ
ンブラ208によって使用される。これら3つのオプシ
ョンにより、プリンタ218がページを実際に印刷して
いない時間中に(例えば用紙送り動作中に)データの処
理が可能になる。その結果、総合印刷時間が大幅に短縮
される。ページをより小さい部分に分割するには、バン
ディングを伴うことができる。前述したように、バンデ
ィングは印刷ページをバンドと呼ぶ複数の水平セグメン
トに分割することを含む。バンディングを行わないと、
ページ全体をビットマップ形状で記憶するための膨大な
量のメモリを必要とする。バンディングを行った場合、
もしプリンタが十分なメモリを有していればプリンタは
1バンドより多くを記憶することになるが、プリンタは
単一のバンドのためのビットマップを記憶するだけでよ
い。図6は、データのバンドをプリンタへ送るための考
え得る若干のオプションを示す。図6のAは、PRL
の形状の任意の数のドロープリミティブを使用して記述
されたデータのバンドを表す。データのBは、そのバン
ドを記述するビットマップデータファイルを表す。ビッ
トマップはホストコンピュータ202またはプリンタ2
18の何れかにおいて作成できることに注意されたい。
若干の場合には、Cによって表されているように、ホス
トコンピュータはビットマップデータファイルを圧縮す
ることができる。図6に示されているように、データ処
理のオプション1は、ホストコンピュータ202がRP
L(A)をビットマップデータファイル(B)に描写
し、データファイルを圧縮する(C)ことを許容する。
資源アセンブラ208はRPL をビットマップデータ
ファイルに描写するためのホスト資源実行装置(HR
E)として働く。圧縮されたデータファイル(C)はプ
リンタ218へ伝送され、プリンタ218内において圧
縮解除されてビットマップ(B)に戻される。代替とし
てのオプション2では、ホストコンピュータ202はR
PL(A)を直接プリンタ218へ伝送する。プリンタ
218はRPL(A)を描写してプリンタ218内にビ
ットマップデータファイル(B)を作成する。第3の代
替として、ホストコンピュータ202はRPL(A)を
ビットマップデータファイル(B)に描写し、データを
圧縮することなくこのビットマップデータファイルをプ
リンタ218へ伝送する。プリンタ218はこのビット
マップデータファイル(B)を受信するが、印刷の進行
を除いて付加的な処理は必要としない。オプション1乃
至3はホストコンピュータ202による描写を含む。あ
るバンドを描写するのに使用できる時間は、プリンタ速
度及びプリンタメモリ222に依存する。各バンドは制
限された量の時間だけを有し、この時間中にプリンタ2
18による描写が行われなければならない。もしバンド
をこの許容された時間長の間に描写することができない
と資源アセンブラ208が決定すれば、ホストコンピュ
ータ202がそのバンドをビットマップデータファイル
に描写する。代替として、ホストコンピュータ202が
RPL をプリンタ218へ送って、何等かの実時間委
託が行われる前にRPL を事前描写することができ
る。プリンタ218がバンドを事前描写する能力は、プ
リンタ218の計算能力と、ビットマップデータのバン
ドを記憶するために使用可能なプリンタメモリ222の
容量とに依存する。プリンタ218が描写するのに時間
がかかり過ぎるバンドを複雑なバンドと呼ぶ。複雑なバ
ンドは許容された印刷時間を超えるが、これは実時間制
約を満たすのに十分に高速でそのバンドを印刷すること
ができないことを意味する。もしあるバンドが複雑であ
れば、ホストコンピュータは図6に示すオプション1ま
たは3を使用してそのバンドを描写する。実際には、用
紙がプリンタ218を通って移動している間にバンドを
描写するのに使用できる余分な時間が存在するという事
実によってプロセスは複雑化される。もし用紙を移動指
せる時間を考慮に入れれば、バンドを実時間で実効的に
描写することができる時間が存在し得る。本発明は、プ
リンタがバンドを実時間で描写できるか否かを決定する
中にこの要因を含む。これは、ホストコンピュータ20
2が何等かのバンドを描写する実時間であるページ上の
“多過ぎる”バンドを描写することができない場合だけ
である。バンドがどれ程多ければ“多過ぎる”のかを決
定するのに、多くの要因が入力される。例えば、プリン
タ218の計算能力、印刷エンジン226(図2)の速
度、及び使用可能なプリンタメモリ222の量である。
現在では好ましい実施例においては、あるページ上の各
バンドは208 本の走査線を有している。従ってある
ページ上のバンドの数は、ページの長さに依存する。し
かし、この実施例において選択されているバンドサイズ
は制限要因ではなく、任意に選択しても、またはバンド
毎に変化させてさえよいことを理解されたい。しかしな
がら決定されるバンドサイズは、バンドが単純か複雑か
を決定するために前以て知らなければならない。ホスト
コンピュータ202は、オプション1または3の実効に
要する時間+データをプリンタ218へ転送するための
時間を決定し、この合計時間と、オプション2の実効に
要する時間+データをプリンタ218へ転送するための
時間とを比較することによってバンドの複雑さを解析す
る。ホストコンピュータ202は最小合計時間を有する
オプションを選択する。ホストコンピュータ202がペ
ージ全体を単純に描写する前にページ上に発生すること
ができる複雑なバンドの数には上限がある。明らかに、
この限界はホストコンピュータ202及びプリンタ21
8の相対計算能力と、使用可能なプリンタメモリ222
の量に依存して変化する。もしこの限界に到達すること
がなければホストコンピュータは、プリンタ218が実
時間で描写できないバンドだけを描写する。バンドを単
純または複雑の何れに分類するかを決定するためにコス
トメトリクスが使用される。上述したように、コンピュ
ータプリンタシステム200は、特定のRPL、バンド
又はページをそのプリンタ218の全解像力でリアルタ
イムでプリントできない場合にはプリンタの解像力を自
動的に小さくすることができる。従来のシステムは複雑
なページをプリントするよう試みているが、そのページ
をプリントすることができない場合には解像力を自動的
に小さくすることはできない。実際、通常の従来のシス
テムは特定のページを全解像力でプリントできるかどう
かをリアルタイムで判断できない。従って、従来のシス
テムは、ページをプリントできるとの仮定でページを処
理し始める。実際、ページをリアルタイムでプリントで
きなければ、従来のシステムはただ何もプリントしな
い。ユーザは特定のページをプリントすべき解像力を手
操作で選択しなければならない。他の従来のシステムで
は、何もプリントしない代わりにバンドのようなページ
の一部分をプリントする場合もある。後続のページに後
続のバンドをプリントしてもよい。例えば、ページの最
初の1/3が1ページにプリントされ、ページの第2の
1/3が次のページにプリントされる。ページの最後の
1/3がさらに別のページにプリントされる。このシス
テムは全ページを全解像力で処理できないのでこのよう
になり、ページを全解像力でリアルタイムでプリントで
きないというプライオリ(priori)をシステムが
知らないので解像力を小さくできない。シャープなコン
トラストでは、コストメトリクス(metrics)に
より発明力のあるコンピュータプリンタシステム200
がページをリアルタイムでプリントできるかどうかとい
うプライオリを判断できる。コストメトリクスの詳細に
ついては以下に説明する。プリンタ218がページを全
解像力でリアルタイムで処理できない場合には、ホスト
コンピュータ202がページを処理する最良の方法につ
いて自動的に幾つかの決定を行う。ホストコンピュータ
202は別の処理技術を用いて全解像力でページを処理
するよう試みて、別の技術が全く働かない場合には解像
力を小さくするしかないだろう。資源アセンブラ208
(図2参照)はデータ部分において各ドロープリミティ
ブ(draw primitive)を実行するコスト
を判断する。データ部分は単一のRPL、データバンド
又はRPLのフォームのデータのページでもよい。プリ
ンタ218はデータ部分をAのフォームでリアルタイム
に処理できる場合には、RPLがプリンタに転送され
る。これが図6にオプション2として図示されている。
プリンタ218がRPLをリアルタイムで処理できない
場合には、ホストコンピュータ202はリアルタイムの
コミットメントがプリンタエンジン226に対してなさ
れる前にデータ部分のAフォームをプリレンダリングで
きるかどうかを判断する。プリンタ218がデータ部分
をプリレンダリングできない場合には、データが図6の
オプション2で示されているようにAフォームでプリン
タに転送される。コンピュータプリンタシステム200
では、任意のデータ部分を30秒以内に処理できる。プ
リンタ218がRPLをリアルタイムでレンダリングで
きないか、プリントエンジン226に対してリアルタイ
ムコミットメントがなされる前にRPLをプリレンダリ
ングするか又はRPLを30秒以内にレンダリングする
場合には、ホストコンピュータ202がデータをプリレ
ンダリングしてプリンタにビットマップを転送する。こ
れらの可能なデータ処理技術が図6においてオプション
1及び3として図示されている。オプション3では、ホ
ストコンピュータ202がRPLをプリレンダリングし
てビットマップデータファイルをプリンタ218へ転送
する。これとは別に、図6のオプション1として図示さ
れているように、ホストコンピュータ202がRPLを
レンダリングし、ビットマップデータファイルを圧縮
し、圧縮されたビットマップデータファイルをプリンタ
218に転送してもよい。上述した3つのオプションの
うち、図6のオプション1のみが解像力の低減を含んで
もよい。ホストコンピュータ202は解像力を犠牲にす
ることなくリアルタイムでデータを処理しようと試みる
だろう。プリンタ218がRPL(Aフォーム)をリア
ルタイムで処理できず、かつ、プリンタがRPLプリン
タエンジン226に対してリアルタイムコミットメント
がなされる前にRPL(Aフォーム)をプリレンダリン
グできず、ホストコンピュータ202がRPLをレンダ
リングしてビットマップデータファイルをプリンタにリ
アルタイムで転送できず又はホストコンピュータがRP
Lをレンダリングし、データを圧縮し圧縮されたデータ
をプリンタにリアルタイムで転送できないいずれの場合
にも、ホストコンピュータ202が解像力を小さくする
であろう。ホストコンピュータ202がRPLをビット
マップデータファイルにレンダリングする場合にはプリ
ンタ218により行われるべき処理は何もないことに注
目されたい。唯一関心があるのは、ホストコンピュータ
202によりレンダリングされるビットマップデータフ
ァイルがプリンタ資源ストア(図2参照)に適合するか
どうかである。資源ローダ214はビットマップデータ
ファイル(資源とみなされる)がプリンタ資源ストア2
20内に適合されるかどうかを判断する。ホストコンピ
ュータ202によりレンダリングされるビットデータフ
ァイルがプリンタ資源ストア内に適合されない場合に
は、資源アセンブラ208はビットマップデータファイ
ルを圧縮するだろう。資源アセンブラ208は、圧縮さ
れたビットマップデータファイルを実際に作成するまで
に必要な圧縮量を判断できる。ビットデータファイルの
単なる圧縮はデータの損失を含まない。現在好ましい実
施例では、ホストコンピュータ202はランレングスエ
ンコーディング(RLE)圧縮と呼ばれている周知の圧
縮技術を使用している。RLE圧縮ではホストコンピュ
ータ202がデータキャラクタを繰り返さないことによ
りプリンタに218に転送されたデータの量を小さくす
る。例えば、特定のデータキャラクタが多数の時間を転
送する場合には、ホストコンピュータ202は特定のキ
ャラクタが繰り返されるべき時間数を表す数を転送し、
その後データキャラクタ自身を転送する。例えば、ボッ
クスを形成するラインを表すデータキャラクタが25回
繰り返される。ホストコンピュータ202は次のデータ
キャラクタが25回繰り返されるべきことを表す数25
を転送する。その後、ホストコンピュータ202はデー
タキャラクタ自身を転送する。このような周知の形式の
データ圧縮は、ホストコンピュータ202からプリンタ
218に多くのデータを転送する際にデータを圧縮する
状況では使用されない。RLE圧縮では、すべてのデー
タがプリンタに転送されるので解像力の損失はない。R
LE圧縮によっても、プリンタリソース記憶220(図
2参照)に適合するビットマップファイルが生じない場
合には、ホストコンピュータ202は、幾つかのデータ
が失われる損失的な圧縮に依存する。これによって、プ
リンタ218の分解能を有効に減少させる。損失的圧縮
が必要とされる場合、ホストコンピュータ202はリソ
ースアセンブラ208によってレンダリングされたビッ
トマップデータファイル内の水平ラインを1行おき毎に
ドロップし、垂直方向の分解能を50%減少させ、ホス
トコンピュータ202からプリンタ218へ転送される
データ量の50%の減少を達成する。これにより、代表
的な300dpiプリンタでは、150dpiの垂直方
向の分解能となる。これほど大きくない分解能の減少が
利用されてもよいことは勿論である。例えば、ホストコ
ンピュータ202は、300dpi×300dpiの分
解能から299dpi×285dpiの分解能に減少さ
せることもできる。上記の分解能の減少の例は、本発明
を限定させるものではない。これとは別に、当業界で周
知の、損失的圧縮の他の形式のものが、プリンタの分解
能を減少させることなく、使用されうる。例えば、損失
的圧縮の1つの形態はグレイスケールにおけるデータビ
ットの数を減少させることである。サイズが50%減少
したビットマップデータファイルが未だプリンタリソー
ス記憶220内に適合しない場合、ホストコンピュータ
202は水平ラインを1行おきにドロップするのに加え
て、垂直ラインを1行おきにドロップして、分解能を7
5%減少させ、ホストコンピュータ202からプリンタ
218へ転送されるデータ量の75%の減少を達成す
る。極端ではあるが、この分解能の減少は、ビットマッ
プデータファイルがプリンタリソース記憶220内に適
合するのを保証する。この極端な分解能の減少は一般的
には滅多に起きないであろう。分解能の減少がある場
合、ホストコンピュータ202は、そのコンピュータス
クリーン(図示せず)にメッセージを表示して、ユーザ
に、分解能の減少が生じたことを指示する。従って、ユ
ーザは、プリントしたページと、そのページが減少した
分解能でプリントされたことを指示するメッセージとを
得る。上記の種々の決定を成すための鍵は、上記した3
種の技術を用いて、データを処理するのに必要とする時
間を、高度の精確さをもって、決定するホストコンピュ
ータ202の能力にある。ホストコンピュータ202
は、分解能を減少させることなく、最も有効な方法でデ
ータを処理しようと試みる。必要な場合であって且つデ
ータのリアルタイム処理を成すのに必要な範囲に限っ
て、ホストコンピュータ202は分解能を減少させるだ
けである。リソースアセンブラ208は、プリンタ21
8の処理パワーとプリンタリソース記憶220またはプ
リンタメモリ222に受入れられ得るメモリの量とデー
タを処理するのに有効な時間の量とに基づいて一連の決
定を成す。一連の決定ゲートが図7〜図9のフローチャ
ートに図示され、このフローチャートは、リソースアセ
ンブラ208によってなされる決定方法を示している。
第1の決定ブロック502において、リソースローダ2
14(図2参照)はデータのAフォームがプリンタリソ
ース記憶220に適合するかどうかを決定する。決定ブ
ロック502の結果がYESなら、リソースアセンブラ
208は、決定ブロック504においてプリンタ218
がAフォームをリアルタイム処理できるかどうかを決定
する。プリンタ218がAフォームをリアルタイム処理
できる場合には、決定ブロック504の結果はYESで
ある。その場合、リソースアセンブラ208は、決定ブ
ロック506において、プリンタ218がデータのAフ
ォームを30秒未満でリアルタイム処理できるかどうか
を決定する。プリンタ218が、データのAフォームを
30秒未満でリアルタイム処理できる場合、決定ブロッ
ク506の結果はYESである。その場合、ホストコン
ピュータ202はデータのAフォームをステップ508
においてプリンタリソース記憶220に送る。データの
Aフォーム部分がプリンタリソース記憶220に適合し
ない場合、決定ブロック502の結果はNOである。そ
の場合にはホストコンピュータ202は、図8のステッ
プ510においてビットマップデータファイルにRPL
をレンダリングする。同様に、プリンタが、Aフォーム
をリアルタイムで処理できない場合や、Aフォームを3
0秒未満でリアルタイム処理できない場合には、決定ブ
ロック504、506の結果はそれぞれNOである。こ
の決定ブロック504、506の結果がNOである場
合、ホストコンピュータ202は、図8のステップ51
0においてビットマップデータファイルにRPLをレン
ダリングする。ホストコンピュータ202がビットマッ
プデータファイルにRPLをレンダリングすると、ホス
トコンピュータ202は、ビットマップデータファイル
がプリンタリアルタイム記憶220に適合するかどうか
を決定ブロック512で決定する。ビットマップデータ
ファイルがプリンタリアルタイム記憶220に適合する
場合、決定ブロック512の結果はYESであり、ステ
ップ514において、ホストコンピュータ202は、ビ
ットマップデータファイルをプリンタリアルタイム記憶
220に転送する。もし、ビットマップデータがプリン
タ資源ストア220内に適合しないならば、決定ブロッ
ク512の結果は否定(NO)であり、ホストコンピュ
ータ202は、図9に示されるように、決定ブロック5
16において、圧縮されたビットマップデータファイル
がプリンタ資源ストア220内に適合するかを決定す
る。もし、圧縮されたビットマップデータファイルがプ
リンタ資源ストア220内に適合するならば、決定ブロ
ック516の結果は肯定(YES)であり、ステップ5
18にて、ホストコンピュータ202は、ビットマップ
データファイルを圧縮する。ステップ520において、
ホストコンピュータ202は、その圧縮されたビットマ
ップデータファイルをプリンタ資源ストア220へ転送
する。ここで注目すべき点は、この点までに行われたス
テップのいずれにおいてもデータの損失はないというこ
とである。もし、圧縮されたビットマップデータファイ
ルがプリンタ資源ストア220内に適合しえないなら
ば、決定ブロック516の結果は、否定であり、ホスト
コンピュータ202は、プリンタ218へ送られるデー
タの分解能を減少せねばならない。この分解能の減少
は、データの損失を伴う。資源アセンブラ202は、5
0パーセントだけ減少させたビットマップデータファイ
ルが、図10に示されるように、決定ブロック522に
てプリンタ資源ストア220に適合するかを決定する。
もし、ハーフサイズビットマップデータファイルがプリ
ンタ資源ストア220内に適合するならば、決定ブロッ
ク522の結果は、肯定であり、ステップ524にて、
ホストコンピュータ202は、ハーフサイズビットマッ
プデータファイルを与えるように、そのビットマップデ
ータファイルの分解能を50パーセントだけ減少する。
ステップ526において、ホストコンピュータ202
は、そのハーフサイズビットマップデータファイルをプ
リンタ資源ストア220へ転送する。ステップ527に
て、ホストコンピュータ202は、そのコンピュータデ
ィスプレイスクリーン(図示していない)にメッセージ
を表示して、ユーザに、分解能の減少がなされたことを
知らせる。もし、ハーフサイズビットマップデータファ
イルがプリンタ資源ストア220内に適合しないなら
ば、決定ブロック522の結果は、否定であり、ステッ
プ528にて、ホストコンピュータ202は、元のビッ
トマップデータファイルを75パーセントだけ減少させ
る。このようなビットマップデータファイルのサイズの
75パーセントの減少により、そのファイルがそのプリ
ンタ資源ストア220に適合することが本質的に保証さ
れる。ステップ530において、その75パーセント減
少されたビットマップデータファイルは、ホストコンピ
ュータ202からプリンタ資源ストア220へ転送され
る。ステップ532において、ホストコンピュータ20
2は、そのコンピュータディスプレイスクリーン(図示
していない)にメッセージを表示して、ユーザに、分解
能の減少がなされたことを知らせる。前述したように、
損失のある圧縮のその他の形態が、プリンタ218の分
解能を減少させることなく、使用されうる。前述した説
明は資源ベースプリンティングについてなされている
が、本発明の原理は、PostScript(商標名)
またはPCL(商標名)の如き任意のプリンタシステム
に同様に適用しうるものである。イメージが実時間にて
レンダリングされ得ないような、または、分解能が大き
過ぎるような、プリンティングシステムにおいて、本発
明の原理は、複雑なページでも印刷できるようにその分
解能を自動的に減少させるために、同様に適用されるも
のである。また、本発明は、プリンタ以外の周辺装置に
も適用できる。例えば、グラフィックスディスプレイユ
ニット(図示していない)は、ホストコンピュータ20
2内に含まれたデータファイルを処理しうる。資源アセ
ンブラ208は、そのデータファイルをビットマップデ
ータファイルへ処理し、前述したようにそのビットマッ
プデータファイルを圧縮する。図7に示すようにコスト
メトリクスシステムは、種々のラスタ演算コード(RO
P)を使用して種々のドロープリミティブの実行時間を
確立する。ドロープリミティブは試験命令集合250と
して記憶されている。試験命令集合は考え得る全てのド
ロープリミティブからなっていても、または考え得る全
てのドロープリミティブの部分集合であってもよい。R
OPは、原始コードビットマップ内のビットをブラシビ
ットマップ内のビット及び宛先ビットマップ内のビット
と組合わせる方法を定義する関数の集合である。本発明
のこの実施例では8データビットによって表される25
6 の異なるROPが存在する。ROPは、受信される
引き数の数に依存して3つの型にグループ化することが
できる。ROPの型を以下の表1に示す。 表1.ROPの型 ROPの型 使用される引き数 2 宛先、パターン 3 宛先、パターン、原始ビットマップ 4 宛先、パターン、原始ビットマップ、マスク プリンタ218がコンピュータ202上に設置された時
点にコンピュータ・プリンタシステム200は、種々の
ドロープリミティブの一連の実行時間を計算する。代替
として、コストメトリクスを予め決定し、特定のプリン
タのためのコスト情報を実行時2進(ランタイムバイナ
リ)ファイルとして資源アセンブラ208へ供給しても
よい。本発明のシステムは、プリンタの性能をベンチマ
ークするために使用することもできる。種々のドロープ
リミティブの実行時間を測定するためにタイマ252が
使用される。試験命令集合250のための実行時間を測
定することによって、評価器モジュール254は特定の
プリンタ218を表すプリンタモデル256を確立す
る。プリンタモデル256は、特定のホストコンピュー
タ202及びプリンタ218組合せのためのコストメト
リクスデータを含むログファイル260を構成するため
に使用される。コストメトリクスデータを簡略化するた
めに、データはコストテーブル262に集群され、記憶
される。コストテーブル262はドロープリミティブの
若干の分類のためのコストメトリクスデータを含む。こ
れは、考え得る全てのドロープリミティブのための完全
コストメトリクスデータを含むデータファイルよりも遥
かに少ないメモリで済む。マップテーブル264はコス
トテーブル262内のコストデータへアクセスする簡単
な手段となっている。コストテーブル262及びマップ
テーブル264は、資源アセンブラ208へ接続されて
いる。資源アセンブラ208はコストデータを使用し
て、文書が印刷される時点における各RPL のコスト
を決定する。以上のように、予め決定されるコストメト
リクスデータは、データ処理責務をホストコンピュータ
202とプリンタ218との間に動的に分担させるのに
使用することができる。タイマ252は試験命令集合の
実行のコストを決定するために使用される。本実施例で
は、タイマ252は典型的なコンピュータ上で容易に使
用可能な能力を維持する内部時間を使用している。図8
に示すように典型的なコンピュータは約1,193,1
80Hzの周波数の発振器400を使用する。この周波
数の周期は838.0965ナノ秒である。この応用の
目的のためにクロックの律動を838.0965ナノ秒
と定義する。16 ビットのカウンタを含むプログラム
可能な内部カウンタ(PIC)402は2クロック律動
毎にデクレメントする。PIC402はコンピュータ作
動システムによって65535 から0まで連続的にカ
ウンドダウンするようにプログラムされており、0にな
るとCPU 406への割込み線404をトグルさせ
る。CPU406は割込み線404の立ち上がり縁のみ
に応答する。しかしPIC 402は2クロック律動毎
にデクレメントするから、PIC402による割込みは
約 55 ミリ秒毎に発生する。この割込みに応答して
CPU 406はクロック記憶領域408の値をインク
リメントさせる。PIC402及びクロック記憶領域4
08内の組合わされたカウンタを使用することによっ
て、838.0965ナノ秒の分解能を有する48ビッ
トのカウンタを得ることができる。本発明は、所定の時
間410の間、同一のドロープリミティブを繰り返し実
行し、ドロープリミティブを実行した回数を計数する。
除算器412は、コンピュータの内部時間維持回路が測
定した経過時間を、実行されたドロープリミティブの数
で除すことによってドロープリミティブ当たりのコスト
を決定する。ホストコンピュータ202(図2)上で時
間を測定する最も容易な方法はDOS内の日付/時間機
能を呼び出すことである。これは一般に使用されている
方策である。別の方法は0時以降に発生した55ミリ秒
のクロック律動の数を見出すためにBIOS関数を呼び
出すことである。この方法に伴う問題は、もしプログラ
ムが一晩中走っていれば0時事象が失われ、日付/時間
が1日遅れることである。本発明のシステムは55ミリ
秒よりも細かい分解能を要求するから、ドロープリミテ
ィブを描写するのに使用される時間長を復号するために
ホストコンピュータ202上のハードウエアタイマ25
2(図7)を使用しているのである。詳述すれば、プロ
グラム可能な内部カウンタ(PIC)402(図8)
は、上述したBIOS関数を使用して時間を測定してい
る駆動装置を照合する。これにより、システムは遥かに
細かい分解能を有するタイマを得ている。ハードウエア
タイマは16ビットのタイマであり、(55ミリ秒)/
65536は838 ナノ秒であるから、55ミリ秒の
代わりに約838ナノ秒の理論的分解能を達成すること
ができる。しかしプリンタとの通信リンクはあるでたら
めさ(randomness)を有しており、実際には
10 ミリ秒の分解能を達成できただけである。上述し
た数字は全て丸めた数である。タイマ252は、上記丸
めた数よりも遥かに精密である。本発明はBIOSカウ
ンタとPIC との組合せを使用してドロープリミティ
ブの実行時間を測定するために使用されるタイマ252
を得ている。PIC402は、一定のレートでクロック
される3つのカウントダウンタイマ(図示してない)を
有している。PICチップカウンタは65536 の値
を使用し、カウントダウンする。PIC上のこれらのカ
ウンタが0に達すると、それらはプロセスを開始する。
タイマ0は、割込み(Vector 8H.20−23
H)が発生することを意味する。最初の値がカウンタ内
にロードされ、プロセスが続行される。BIOS は位
置40H:6CH においてULONG カウントをイ
ンクリメントする。このカウンタは最後の0時事象(真
夜中の12時)以降に発生した(または発生すべきであ
った)律動の数を表している。このBIOSカウンタ
は、実時間時計の(ブートアップ(bootup)にお
ける)タイマ律動によって、また0時に実時間時計が変
化するとMS−DOS“TIME”コマンドによって更
新される。BIOSカウンタは“ロールオーバー”し、
再び0から始動する。24 時間中には1,573,0
40 のタイマ律動が存在する。BIOSカウンタは0
乃至1,573,039 の値を含むことができる。こ
のカウンタを得るためのBIOS呼び出しが存在する
が、もし“0時(ミッドナイト)事象”が発生するとこ
の状態を呼び出し者へ戻してそれを無視するのでこの応
用では使用することはできない。“0時事象”の取り扱
いは本発明が回避を選択した困難なプロセスである。通
常、オーバーフロー状態はMS−DOSによって処理さ
れる。もし BIOS呼び出しが使用され、オーバーフ
ロー状態が発生すれば、日付を1日だけ進めるようにセ
ットすることを除いて、この事象をMS−DOS内へ集
める方法はない。これに関する論理は複雑過ぎる。その
代わりとして、タイマ252は単にBIOS領域を調べ
て4バイト律動カウンタを読出すが、律動カウンタは0
時になると0にリセットされることに注意されたい。少
なくとも24時間毎にこのBIOS呼び出しを行わせる
ことを要求する何かを処理するためにMS−DOSに依
頼することが重要である。この例はファイルへの書き込
みである(何故ならばMS−DOSはファイルの変更時
間を更新する必要があるからである)。コストを測定す
るためにホストコンピュータ202をタイマ252と同
期させるのは、そのPIC402のタイマ0(図示して
ない)の使用を含む。タイマ0はシステムクロックを駆
動する。タイマ0はモード3(即ち方形波レート発生
器)で動作するようにプログラムされている。これは出
力が、カウントの半分が完了するまで(偶数の間)は高
を維持し(第1の相)、カウントの他の半分の間は低に
なる(第2の相)ことを意味する。もしカウントが奇数
であり、出力が高であれば、第1のクロックパルス(そ
のカウントがロードされた後の)はカウントを1だけデ
クレメントさせる。爾後のクロックパルスはクロックを
2だけデクレメントさせる。タイムアウトすると出力は
低になり、全カウントが再ロードされる。第1のクロッ
クパルス(再ロードに続く)はカウンタを3だけデクレ
メントさせる。爾後のクロックパルスはタイムアウトす
るまでにカウントを2だけデクレメントさせる。次いで
全プロセスが繰り返される。このようにして、もしカウ
ントが奇数であれば出力は(N+1)/2カウントの間
は高であり、(N−1)/2カウントの間は低である。
PIC−LATCHITを使用してカウンタをラッチ
し、次いで値を読むことによってカウントを読むことが
できるが、単に値を読むだけではタイマ0がサイクルの
第1の相にあるのか、または第2の相にあるのかは分か
らない。これを見分ける唯一の方法は、カウンタがロー
ルオーバーするのを待ってクロック律動が発生したか否
かを見ることである。方形波レート発生器(タイマ0)
は割込みベクトル8H(ベクトルアドレス20−23
H)へ接続される。通常これはBIOSを指し、BIO
Sもまた1CH(ベクトルアドレス70−73H)にお
ける別のタイマ律動割込みベクトルを呼び出す。通常は
1CHはDUMMY−RETURNを指す。もしベクト
ル8Hが単純に置き換えられればシステムクロックは適
切に機能しない。ベクトル8Hは18.2ミリ秒毎に呼
び出されなければならない。合計3つのUSHORTの
ためにBIOS領域内には2つの16ビット値が存在
し、またPIC チップ内には1つの16ビット値が存
在する。各USHORTフェッチ(取り出し)はアトミ
ックであるが、割込みは任意のこれらのフェッチ間で発
生することができるので、これらの点だけを使用してき
れいな48 ビットアトミックアクセスを構成する方法
はない。例えば、もし割込みが第1のフェッチと第2の
フェッチとの間で発生すれば、より正しい000AFF
FFまたは000B0000の代わりに000BFFF
Fを読むことができる。前の2つは何れも許容されるも
のではあるが、最初の方は離れて(wayoff)お
り、勿論不適切なタイミングをもたらすことになろう。
タイマ割込みは18.2ミリ秒毎に1回だけ発生するか
ら、BIOS領域を2回容易に読みとって繰り返される
値をもどすことができる(また割込みを不能にするか、
または386 または486 レジスタを使用して32
ビットアクセスを行うこともできるが、割込みを不能に
してもPIC カウンタは停止しない)。この問題を解
決するために、先ずBIOS領域のための安全な32ビ
ット数のアクセスを構成する。BIOS領域は18.2
ミリ秒毎にだけ更新されるから、BIOS領域を2回読
み取ることは簡単であり、それが変化しないようにする
ことができる。BIOSから読み取った値はulBIO
Sl 及びulBIOS2である。PICカウンタから
ラッチされた値はusPic1及びusPic2等であ
る。PIC402をアクセスする手順は、先ずPIC−
CONTROL−PORTへ意図を書き込み次いで適切
なTIMERxポート(PIC 上にある)へ1または
2バイトを読み取るかまたは書き込むことである。この
応用では、開始と停止との間の差を正確に測定すること
が重要である。試験の前または後に数ミリ秒を浪費する
か否かは極めて重要ではない。これを達成するために、
応用に戻る前にタイマが“ロールオーバー”するまで待
機する。次いで、タイマ停止呼び出しが行われる時に、
間の差をより正確に測定する。PICは2ずつデクレメ
ントされるから最下位ビットは常に0であり、従って無
意味である。PIC402が0に到達した時にOUTO
がトグルされ、PICは再ロードされる。割込みは他の
0UTO遷移毎にしか発生しない。従って、PICの1
5の最高ビットだけが重要である。使用不能な別のビッ
ト(OUTO)が存在し、検出作業を通して導出しなけ
ればならない。この隠れたビットを観測する唯一の方法
は、15ビットのPIC カウンタがロールオーバーす
るのを待ってからBIOSメモリ内の32ビットのカウ
ンタが変化したか否かを調べることである。即ち、もし
隠れたビットが‘1’であれば桁上げが伝播し、そうで
ない場合には桁上げは伝播しない。15ビットのPIC
カウンタはハードウエアカウンタであるので特別な注意
を払わなければならない。このカウンタは停止させるこ
とができず、プログラムとは非同期で走る。このカウン
タがもたらす如何なる割込みもCPU によって直ちに
処理されることがない。そこには遅延が存在し、この遅
延は予測できないものである。タイマ252は、コード
実行時間を測定するためのコストメトリクスの他の面を
用いることなく使用することもできる。これは実行時間
を測定するためにコードをプロファイルするような応用
に特に有用である。評価器モジュール254はタイマ情
報を使用してコストメトリクスを求める。評価器モジュ
ール254の目的は、単一のドロープリミティブのコス
トを決定することである。前述したように、典型的なタ
イマの分解能は本発明の目的には不十分である。プリン
タへの通信チャネル上のタイミング分解能は約10マイ
クロ秒の繰り返し可能な分解能を有しているが、要求さ
れる分解能は1ナノ秒以下である。必要な分解能を達成
するためにプリンタ218は複数のドロープリミティブ
を実行することを依頼される。プリミティブの数は1
0,000を超えることができる。評価器モジュール2
54は、プリンタ218が数ドロープリミティブを遂行
することを要求することから開始する。同一のパラメ
タ、ROP、形状及びブラシを有する同一のドロープリ
ミティブが使用されることに注目されたい。実行される
プリミティブの数は、所定の時間410が経過してしま
うまで増加される。評価器モジュール254は、特定の
ROP、形状及び特定のブラシを使用してその特定のド
ロープリミティブを実行するのに要する時間長を計算す
るために、所定の時間中に実行されるドロープリミティ
ブの数を評価する。換言すれば評価器モジュール254
は、その型の単一のドロープリミティブを実行するのに
どの程度の時間がかかるのかを決定するためには、所定
の時間中にどれ程多くのドロープリミティブを実行する
のかを決定する。特定のドロープリミティブに対するこ
の手順をサンプルと呼ぶ。評価器モジュール254は、
種々の型のドロープリミティブについてサンプルを決定
する。現在では好ましい実施例においては、評価器モジ
ュール254のために選択された所定の時間は約300
ミリ秒である。タイマ精度が10マイクロ秒である
と、最大誤差は約0.0033%になる。サンプルを決
定するために要する時間は比較的一定である。もしドロ
ープリミティブが単純であれば、評価器モジュール25
4は所定の時間の間に更に数ドロープリミティブを送ら
なければならない。もしドロープリミティブが比較的複
雑であれば評価器モジュール254は所定の時間の間に
送るドロープリミティブは少なくてよい。即ち、唯一の
変数は所定の時間の間に送るドロープリミティブの数で
ある。容易に理解できるように所定の時間410を変え
ることによって実質的にどのような分解能も達成するこ
とができる。例えば試験期間を約3,000 ミリ秒
(3秒)にすれば、0.00033%の分解能が得られ
る。現在では好ましい実施例においては約300 ミリ
秒の所定の時間を選択して、試験命令集合250を実行
するのに必要な時間を最小にしている。プリンタモデル
256は、試験命令集合250からどのドロープリミテ
ィブをプリンタ218へ送るかに関して評価器モジュー
ル254に命令する。プリンタモデル256はサンプル
データを使用して、ホストコンピュータ202上に設置
された特定のプリンタ218をモデル化する。特定のプ
リンタ218のモデルは種々の機能を遂行するためのコ
ストを決定することによって作成される。種々の機能の
コストを決定するためには1、5、10 またはそれ以
上のサンプルを必要としよう。プリンタモデル256
は、若干のコスト曲線の勾配またはインタセプト(in
tercept)を見出すために最小線形自乗回帰(L
LSR)統計量を使用することができる。この技術は当
業者には公知であり、詳細な説明は省略する。概述すれ
ばLLSR は一連の点に適合する“最良”の線を選択
する統計的方法である。この線はこれらの点のモデルで
ある。もしモデルが“良”であれば、これらの点はこの
線に極めて近接している。本発明は種々の方法でLLS
Rを使用している。例えば評価器モジュール254は、
ドロープリミティブ当たりのコストを見出すためにLL
SR を使用している。プリンタモデル256は全て
の、しかし1つの可変定数を維持することによって、デ
ータをドロープリミティブのモデルに適合させるために
LLSRを使用する。これによりプリンタモデル256
は、その変数の効果を他から分離することができる。プ
リンタモデル256へのLLSRの適用に関しては後述
する。一般にプリンタ218が遂行する何等かのものに
関連してコストが存在する。例えばプリミティブを特定
のバンドのためのビットマップデータで描写するコスト
が存在する。更に、ページ上に特定のドットをマークす
るコスト、及びページ上のある行を充填するためのコス
トも存在する。プリミティブを描写するためのコストを
Pと呼び、一方ドット及び行のためのコストをそれぞれ
D及びRと呼ぶことにする。プリンタモデル256は異
なる次元の種々の線引き(ドロー)を実行するためにコ
スト情報を決定する。0次元プリミティブは、特徴付け
るコストを1つだけゆうしている。他のプリミティブは
1またはそれ以上の次元と、特徴付けるのに必要な1ま
たはそれ以上のコストとを有している。以下の表2はド
ロープリミティブ及びそれらの関連コストを示すもので
ある。 0次元プリミティブは、ROP、ブラシ、描き位置、ま
たはペンスタイルには無関係に、同一の実行時間を有し
ている。0次元プリミティブの例は、SetRowAb
solute(SetRowAbs)、またはSetC
olumnAbsolute(SetColAbs)の
ようなカーソル運動コマンドである。SetRopAn
dBrushも0次元プリミティブであるが、考え得る
4つのブラシ及び考え得る256 のROPが存在する
から、1,024回(4×256=1,024)列挙す
る必要があるので、これは特殊な場合である。1次元プ
リミティブは、幅または長さのような単一の変数に依存
する。前述したように、プリンタモデル256はLLS
Rを使用して最良適合線を決定し、そのプリミティブに
関連するパラメタを特徴付ける。1次元プリミティブは
一般に5サンプルを取って最良適合を決定する。1次元
プリミティブの例は、線を引くためのプリミティブであ
るLineAbsolute(LineAbsS)であ
る。2次元プリミティブは、幅及び高さのような2つの
変数に依存する。2次元プリミティブは一般に10サン
プルを取ってこれらのプリミティブを適切に特徴付け
る。2次元ドロープリミティブの例は、矩形を描くRe
ctangle(Rect)である。唯一の3次元プリ
ミティブ(GlyphBDN)が存在する。このプリミ
ティブは一般に15サンプルを取ってそれを十分に特徴
付ける。GlyphBDNプリミティブは高さ、幅、及
び副絵文字の数の3つの変数に依存する。副絵文字はG
lyphBDN描きプリミティブ内に含まれる絵文字で
ある。GlyphBDNは単一のプリミティブと見做さ
れるが、各々が自身の幅及び高さを有する多くの副絵文
字を有することができる。GlyphBDNプリミティ
ブを描くコストは、それが1つの絵文字を描くのに使用
されるのか、または多くの絵文字を描くのに使用される
のかに依存して変化する。現在では好ましい実施例は、
特定のプリンタの動作に関して幾つかの仮定を行ってい
る。これらの仮定は種々のプリミティブのために必要な
モデルの数を減少させる。詳述すれば、本発明は任意の
プリンタに関して、特定のプリミティブを描写するため
のコスト(P)、ドットコスト(D)、及び行コスト
(R)が一定であると仮定している。これによって、プ
リミティブの種々の次元を以下の表3に示す方程式によ
って特徴付けることができる。 表3.種々の次元のプリミティブのための実行モデルの表 次元 実行モデル 0 t=P 1 t=P+wR 2 t=P+wR+whD 3 t=P+nN+Σn i=1(wiR+wihiD) ここに、tは必要な合計時間、Pはプリミティブを実行
するのに要する時間、hは対象の高さ、Rは行コスト、
wは対象の幅、Dはドットに触れるのに要する時間、n
はプリミティブの副プリミティブの数、そしてNは副プ
リミティブの処理コストである。プリミティブのコスト
を決定するために、システムは描写するプリミティブの
次元に対応するモデルの1つを選択する。例えば、2次
元プリミティブのコストを決定するために、システムは
2つの相の計算を使用する。相1では、パラメタDを分
離することが望まれる。これを行うために、LLSRを
使用し、wを一定に保ことができる。hだけを変えるこ
とによってパラメタDを分離することができる。表3の
2次元のための方程式を使用する。ドロープリミティブ
のための合計コストは方程式 t=P+wR+whD によって与えられている。 K1=P+wR, K2=wD とすれば、 t=K”+K2h となる。種々のhの5つのサンプルを取り、LLSRを
使用することによって、システムは2つの定数を求める
ことができる。wの値は既知であるから、Dを決定する
ことができる。相2では、パラメタRを分離することが
望まれる。これを行うためにはhを一定に保ち、wを変
える必要がある。方程式は t=P+wR+whD と与えられている。ここでwを変化させる。wだけと共
に変化するサンプルの集合を作成するためにwhD項を
全サンプルから減算する必要がある。即ち、 tllsr=tsample−whD ここにtllsrはLLSR解析によって使用される時
間であり、tsampleは評価器モジュール254に
よって決定されたサンプル時間である。これによりLL
SR解析内のデータを適合させるのが容易な単一の式が
得られる。Dが相1から既知であり、w及びhもサンプ
ル毎に既知であるから、このようにすることが可能なの
である。 K1=P, K2=R とすれば、 t=K1+K2w となる。種々のwの5つのサンプルを取り、LLSRを
使用することによって2つの定数が求まる。2つの定数
はP及びRである。以上のように、2つの相によってパ
ラメタP、D、及びRを決定することが可能である。こ
れらから、任意の幅及び高さに対するプリミティブのた
めのコストが決定できる。描写プリミティブの次元の数
はサンプルにおける試験の数、及びサンプル当たりの必
要合計試験時間に影響する。全ての描写プリミティブの
ための実行コストを計算するために、システムは相1及
び2の間に高さ及び幅に関して1、5、10または15
の試験点を使用する。選択された値は、評価される試験
点の数に依存して、実行時間に300 乃至1500ミ
リ秒の増加をもたらす。表4は次元と試験時間との間の
関係を示す。試験時間を最小にするために、各試験点毎
に複数の小さいドロープリミティブが評価器モジュール
254によってプリンタ218へ送られ、約300 ミ
リ秒の印刷時間に到達するまで徐々にサイズが増加す
る。300ミリ秒の印刷時間に到達すると試験点が記録
され、試験は次の試験点へ進む。このプロセスは全ての
試験点が試験されてしまうまで繰り返される。 プリンタモデル256が上述のようにしてコストデータ
を作成すると、このコストデータはログファイル260
内に記憶される。データ検索プロセスを簡易化するため
に、ログファイル260内のコストデータは分類されて
コストテーブル262内に記憶される。この分類プロセ
スによって、コストデータを記憶する為に必要なデータ
構造が簡略される。本実施例は、分類プロセスを簡易化
する幾つかの仮定を行う。多くの場合、プリンタ内の同
一コードを使用して異なるプリミティブを描くことが知
られている。例えばBitmapHRドロープリミティ
ブを描くのに、GlyphBlドロープリミティブを描
くコードと同一のコードが使用される。コードのこの冗
長度のために、システムは1つのプリミティブのための
コストデータだけを記憶すればよい。GlyphBlの
ような資源アセンブラ208が使用しない若干のドロー
プリミティブは測定する必要はない。ドットコストの解
析も、特定のROP 及びブラシに対するドットコスト
がどのドロープリミティブに関しても同一であることを
示している。即ち、ドロープリミティブRect.RO
PO黒ブラシのためのドット当たりのコストはGlyp
h.ROPO黒ブラシのためのドット当たりのコストと
同一である。従って、各ドロープリミティブ毎には異な
るドットコストは存在しないが、各ROP 及びブラシ
組合せ毎に存在する。4つのブラシと256 のROP
では1,024 の考え得るドットコストが存在す
る。分類を簡略化するために、本システムはプリミティ
ブを分類するための集群計画を使用する。集群(クラン
ピング)は、類似コストを有するドロープリミティブを
グループ化または集群させることによって、データエン
トリの数を減少させるプロセスである。本発明のこの実
施例は、全てのドロープリミティブのためのプリミティ
ブパラメタP、D、及びRのコストを計算し、それらを
より広いカテゴリ内にグループ化する。Select
L、SelectB、及びSelectS のような類
似ドロープリミティブの群が3つの異なるコストを有し
ている場合に必要なことは、3つの中の最も高いコスト
を含ませることである。これらのコマンドが使用される
ことは比較的少ないから、偏差は左程重大ではない。あ
るプリミティブに異なる形状が存在する場合には、最も
高い形状を分類してそのコストを他の形状に使用するだ
けでよい。全ての場合、プリンタが描写することができ
ないバンドを発見するだけのために、プリンタがバンド
を実時間で描写すると仮定することによってプリンタ誤
りが発生しないようにするためにコストテーブル262
により高いコストを含ませるのである。この分類計画
は、ログファイルのために必要なメモリを減少させる手
段として説明したに過ぎないことを理解されたい。考え
得る全てのプリミティブのための実際のコストを含ませ
ることは可能であるが、実際的ではない。ログファイル
260は各ドロープリミティブ毎の全てのパラメタのた
めのコストメトリクスデータを含む。集群プロセスの例
として、ドロープリミティブの群がパラメタDのための
コストとして1、2、2、2、5、5、6、9、10、
10を有しているものとする。10データエントリを有
する代わりに、システムは2、6、及び10の3つの集
群を作成できる。最初の4つのドロープリミティブはコ
スト2を有する第1の集群に割当てられ、次の3つのド
ロープリミティブはコスト6を有する第2の集群に割当
てられ、そして最後の3つのドロープリミティブはコス
ト10を有する第3の集群に割当てられる。若干のドロ
ープリミティブの実際のコストは、それらが割当てられ
た集群コストよりも小さいから、これは若干の不正確さ
をもたらすことに注目されたい。しかしながら、集群の
数は可変せあり、誤差の量が最小になるように選択され
る。また、ドロープリミティブが実際のコストより小さ
く評価されることはないことにも注目されたい。実際の
コストを過少評価すると、実際のコストを過少評価した
ことによってもし資源アセンブラ208がRPL を実
時間で描写することができると決定するようなことがあ
ればプリンタ誤りがもたらされる。実際の経験から、ド
ットコストのために1,024 コストデータエントリ
がある場合には、僅か40の集群されたドットコストデ
ータエントリによってこれらを表すことができることが
分かった。集群のプロセスは最低コストから最高コスト
まで配列された行内にあるパラメタのための全てのコス
トを配列することによって遂行される。各コストデータ
エントリを、その隣から差し引き、差をアレイ内に記憶
する。各アレイエントリ毎のオフセット値が実際のコス
トを追跡する。次いで差アレイを最大コストから最小コ
ストまで分類する。分類されたアレイ内の最初のエント
リは1つの集群のための集群データコストである。もし
2つの集群が使用されていれば、分類されたアレイ内の
第2のエントリは集群コストである。もし3つの集群が
使用されていれば、分類されたアレイ内の第3のエント
リは集群コストである等々である。集群プロセスの例と
して、パラメタDのコストが1、2、2、2、5、5、
6、9、10、10 であるものとする。各コストをそ
の隣から差し引けば次のアレイが求まる。1(2−
1)、0(2−2)、0(2−2)、3(5−2)、0
(5−2)、1(5−5)、1(6−5)、3(9−
6)、1(10−9)、及び0(10−10)。次いで
このアレイを最大から最小への順次順序で配列する。も
し2つの数が同一であれば、最高コストに関連する差数
を最初にリストする。上例では順次に配列された差アレ
イは、3、3、1、1、1、0、0、0、0である。差
アレイ内の最初の数字3は9と6のコスト差に対応する
ものであり、2番目の数字3は5と2のコスト差に対応
するものである。従って、もし2つのコスト差集群が存
在していれば、これらの集群は順次差アレイ内の最初の
数字に対応するコスト差によって分割される。この例で
は2つの集群は第1の数字3に対応するコスト数6とコ
スト数9との間で分割される。従って一方の集群は9−
10 からのコストを含み、第2の集群は1−6間のコ
ストを含む。同様にもし3つのコスト集群を使用するの
であれば、第2及び第3の集群は第2の数字3に対応し
てコスト数2と5との間で分割される。従ってコスト集
群は9−10、5−6、及び1−2となる。この原理は
どのような数の集群にも拡張できる。代替として、ヒス
トグラム解析のような統計的プロセスを使用して最も適
切な集群コストを決定することもできる。集群されたデ
ータエントリはコストテーブル262内に記憶される。
コストテーブルへのアクセスを簡易化するために対応す
るマップテーブル264が使用される。例えば、40
のドットコストデータエントリは0から39までの相対
位置を有するコストテーブル内に記憶される。実際に
は、コストテーブルはホストコンピュータ202内のど
のような便宜な位置に配置しても差し支えないことを理
解されたい。ドットコストマップテーブルは1,024
のエントリ(4×256)を含み、これらは各々0か
ら39までの数を含んでいる。マップテーブル264内
のエントリは、コストテーブル262の一部であるドッ
トコストテーブル内のエントリに対応している。資源ア
センブラ208はマップテーブル264及びコストテー
ブル262を使用して各ドロープリミティブのコストを
決定する。一手順では、資源アセンブラ208はドロー
プリミティブ演算がドットコストを含む度毎にドットコ
ストテーブルにアクセスすることができる。合計コスト
を累積することができる。合計時間はコストテーブル内
のコストデータエントリにその特定の型のドットの数を
乗じたものである。しかしながら、この手法で合計コス
トを計算するにはバンド内のドロープリミティブ毎に多
くの演算が必要である。当業者には公知のように、多く
の演算は時間を消費する。従って、現在では好ましい実
施例は、各バンド毎に40のドットカウンタ(各40集
群ドットコスト毎に1つのカウンタ)を使用している。
演算にドットが含まれると、資源アセンブラ208は4
0のドットカウンタの対応する1つに追加する。バンド
の終わりに、資源アセンブラ208は40 のドットカ
ウンタの各々内のドット合計を、その対応するドットの
ためのコストテーブル262内のコストデータエントリ
に乗ずる。次いで40の乗算された値を合計してそのバ
ンドのための合計ドットコストを求める。この手順で遂
行される乗算は上記第1の手順よりも遥かに少ない。任
意のバンドにおいては、40のドットカウンタの若干は
値0を有しているかも知れず、これは乗算演算を実行す
る前に検査することができる。これは、合計ドットコス
トを計算する際に付加的な時間を節約する。同様にし
て、ドロープリミティブのための他のコストが計算され
てバンドのための合計コストが求められる。資源アセン
ブラ208はバンドのための合計コストを決定し、この
合計コストとプリンタ218においてそのバンドを描写
するのに使用可能な時間とを比較する。もしプリンタが
そのバンドを描写するのに十分な時間を有していれば、
そのバンドのためのRPL データはホストコンピュー
タ202によって描写されることはない。もしあるバン
ドが実時間描写するには複雑過ぎると、そのバンドはプ
リンタ218によって事前描写される考え得る候補とし
てマークされる。ページ全体のためのコストが上述した
コストメトリクス手順を使用して資源アセンブラ208
によって計算される時、これらの複雑なバンドの数が所
定の数を超えているか否かを見るために、バンドが調べ
られる。前述したように、“多過ぎる”とみなされる複
雑なバンドの数は、プリンタの計算能力、印刷エンジン
の速度、プリンタのオーバヘッドコスト、及びバンドデ
ータを記憶するために使用可能なプリンタメモリ222
(図2)の量のような多くの要因に依存する。もし任意
のページ上の複雑なバンドが比較的少なければ、これら
の複雑なバンドは事前描写のためにプリンタ218へ送
られる。このようにして、プリンタが印刷エンジン22
6へ実時間委託を行う前に全ての複雑なバンドは事前描
写される。資源アセンブラ208は複雑なバンドの若干
を描写してこれらのバンドのためのビットマップデータ
をプリンタ218へ送ることもできる。もし多過ぎる複
雑なバンドが存在すれば、資源アセンブラ208がペー
ジ全体を描写することになろう。コスト計算プロセスの
例として、ROP0及び黒ブラシを使用してページの特
定位置に矩形を描くことを望んでいるものとする。この
矩形は、幅wが10、高さhが10である。このような
矩形を作成するためには以下のドロープリミティブの集
合を使用できる。即ち、SetRowAb
s(...)、SetColAbs(...)、Set
ExtAbs(...)、SetRopAndBrus
h(...)、及びRect(w,h)である。簡易化
のために、殆どのドロープリミティブのための引き数の
値は含まれていない。このRPL のための合計コスト
を得るために、以下の諸段階が使用される。 1.集群テーブルへ進入して指定されたパラメタのため
の値P、R、及びDを入手することによって最初の3つ
の描写プリミティブのためのコストメトリクスを見出
す。これらのプリミティブのための値は以下の通り。S
etRowAbsS(...)=123.647マイク
ロ秒、SetColAbsS(...)=23.665
マイクロ秒、SetExtAbsS(...)=23.
664マイクロ秒。 2.SetRopAndBrush(...)組合せ
(ROP番号41)によって指定されたROPのための
コストメトリクスを見出す。Pの値は224.633
マイクロ秒、Rの値は11.292 マイクロ秒、Dの
値は0.04マイクロ秒。ROP及びブラシ組合せの合
計コストは341.6マイクロ秒(341.6 マイク
ロ秒後、矩形のためのビットはフレームバッファ内にあ
って印刷の準備が整う)。BIDテーブル内で探索され
たROP 及びブラシ組合せを駆動装置が追跡している
ことに注目。もしこの組合せのための値を再度探索しな
ければ、先に使用されたか否か。 3.ROP及びブラシ組合せのコストをRPL リスト
内の全ての描写プリミティブに加算。341.6+12
3.647+23.665+23.664=512.5
76マイクロ秒。これはRPL の合計コストである。
データを印刷するために資源を使用するので、コストメ
トリクスは印刷技術に特に有用である。ホストコンピュ
ータ202は資源、及び資源の従属性を作成する。資源
をドロープリミティブに翻訳することによって、各ドロ
ープリミティブの実行のコストをホストコンピュータ2
02が計算することができる。以上に説明したシステム
は、資源アセンブラ208がランタイムでコストデータ
へ容易にアクセスすることを許容する。プリンタ218
による事前描写に使用可能な時間はコストメトリックデ
ータ内へ算入される。資源アセンブラ208はコストメ
トリックデータを使用して、ホストコンピュータ・プリ
ンタシステム200のどの部分がデータを処理すべきか
を決定する。コストメトリクスを使用すると、従来は可
能ではなかった手法でデータ処理責務をホストコンピュ
ータ202及びプリンタ218が分担できるようにな
る。 以上にプリンタの動作を解析する本発明のシステム及び
方法の応用を詳細に説明した。この同じ技術は印刷に関
係しているコンピュータの動作の解析にも使用すること
ができる。前述したように、本発明のシステム及び方法
は印刷以外の応用にも有用である。本発明の種々の実施
例及び利点を説明したが、この説明は例示に過ぎず、本
発明はその原理から逸脱することなく多くの変更を施し
得ることを理解されたい。従って、本発明は特許請求の
範囲によってのみ制限されるのである。
【図1】典型的な従来技術のコンピュータ・レーザプリ
ンタシステムを示す図。
ンタシステムを示す図。
【図2】本発明のコンピュータ・プリンタシステムの機
能ブロック線図。
能ブロック線図。
【図3】無制約文書を表すことができる手法を示す図。
【図4】図3の無制約文書を制約された形態で表すこと
ができる手法を示す図。
ができる手法を示す図。
【図5】図4の制約された文書の代替構成を示す図。
【図6】本発明の種々の負荷平衡化オプションの若干を
示す図。
示す図。
【図7】本発明のコストメトリクスシステムの機能ブロ
ック線図。
ック線図。
【図8】本発明のコストメトリクスシステムの機能ブロ
ック線図。
ック線図。
【図9】本発明のコストメトリクスシステムの機能ブロ
ック線図。
ック線図。
【図10】本発明のコストメトリクスシステムの機能ブ
ロック線図。
ロック線図。
【図11】本発明のコストメトリクスの機能ブロック線
図。
図。
【図12】本発明が使用しているタイマの機能ブロック
線図。
線図。
200 コンピュータ・プリンタシステム 202 ホストコンピュータ 204 応用プログラム 206 資源記憶領域 208 資源アセンブラ 210 ホスト資源記憶装置 212 ホストコンピュータメモリ 214 資源ローダ 216 資源スケジューラ 218 プリンタ 220 プリンタ資源記憶装置 222 プリンタメモリ 224 資源実行装置 226 印刷エンジン 250 試験命令集合 252 タイマ 254 評価器モジュール 256 プリンタモデル 260 ログファイル 262 コストテーブル 264 マップテーブル 300 文書 302、320 ページ2 304、316 フォント1 306、322 ページ3 308、318 ビットマップ 310、312、324、326 ポインタ 400 発振器 402 プログラム可能な内部カウンタ(PIC) 404 割込み線 406 CPU 408 クロック記憶領域 410 所定の時間 412 除算器
───────────────────────────────────────────────────── フロントページの続き (72)発明者 スティーヴ シャイマン アメリカ合衆国 ワシントン州 98105− 5104 シアトル ノースイースト フォー ティサード ストリート 4334 (72)発明者 ウィリアム ビー マコーミック アメリカ合衆国 ワシントン州 98007 ベルヴィュー ノースイースト トゥエン ティース ストリート 144−14150 (72)発明者 ロバート シー フラッグ アメリカ合衆国 ワシントン州 98052 レッドモンド ワンハンドレッドアンドフ ォース ウェイ ノースイースト 17711 (72)発明者 ポール エイ シュスター アメリカ合衆国 ワシントン州 98052 レッドモンド ノースイースト トゥエン ティナインス ストリート 17610
Claims (29)
- 【請求項1】 プリンタと、プリンタ上の文書を制御し
印刷させるためのホストコンピュータとを含み、上記ホ
ストコンピュータが資源を記憶するための資源記憶領域
と、資源記憶領域内に記憶されている複数の資源と、印
刷される複数の対象を記述するデータを含む文書のため
のデータファイルとを有し、上記プリンタが印刷エンジ
ンを含むコンピュータ・プリンタ装置であって、 文書を印刷するために必要な複数の資源からなる資源の
選択された集合を記憶するホスト資源記憶装置と、 ホストコンピュータ内に配置され、データファイルを調
べ、資源記憶領域から資源の若干を選択して文書を印刷
するために必要な上記資源の選択された集合を形成し、
上記資源の選択された集合を上記ホスト資源記憶装置内
へロードし、データファイルを文書の特定部分内の複数
の対象に対応するプリミティブの集合に翻訳し、文書の
上記特定部分を印刷するために上記ホスト資源記憶装置
から要求された上記選択された資源の部分集合を決定
し、上記プリミティブの集合と上記要求された資源の部
分集合との相互従属性を定義し、上記選択された資源の
部分集合と上記プリミティブの集合とがプリンタ内に適
合するか否かを決定し、プリンタが上記プリミティブの
集合を実時間でビットマップデータファイルに処理する
ことができるか否かを、もしくは印刷エンジンが付勢さ
れる前にプリンタが上記プリミティブの集合をビットマ
ップデータファイルに処理することができるか否かを決
定し、もしプリンタが上記選択された資源の部分集合及
び上記プリミティブの集合を記憶することができない
か、もしくはプリンタが上記プリミティブの集合を実時
間でビットマップデータファイルに処理することも、ま
たは印刷エンジンが付勢される前にプリンタが上記プリ
ミティブの集合をビットマップデータファイルに処理す
ることもできなければ自身で上記プリミティブの集合を
ビットマップデータファイルに処理する資源アセンブラ
と、 プリンタ内に配置され、上記選択された資源の部分集合
及び上記プリミティブの集合、または上記ビットマップ
データファイルを上記ホスト資源記憶装置から受信し、
上記選択された資源の部分集合及び上記プリミティブの
集合、または上記ビットマップデータファイルを記憶す
るプリンタ資源記憶装置と、 ホストコンピュータ内に配置され、上記定義された相互
従属性を使用して、上記要求された資源の部分集合と上
記プリミティブの集合とが上記プリンタ資源記憶装置へ
送られる、または上記プリンタ資源記憶装置から解放さ
れるローディング及び解放シーケンスを決定する資源ロ
ーダと、 プリンタ内に配置され、上記要求された資源の部分集合
と上記プリミティブの集合の上記プリンタ資源記憶装置
または上記ビットマップデータファイルへの転送を制御
する資源スケジューラと、 プリンタ内に配置され、上記要求された資源の部分集合
と上記プリミティブの集合とに対応するビットマップデ
ータファイルを作成し、上記ビットマップデータファイ
ルを印刷エンジンへ転送して印刷させる資源実行装置
と、を具備することを特徴とする装置。 - 【請求項2】 プリンタにおける分解能を自動的に低下
させる装置であって、装置はプリンタ上の文書を制御し
印刷させるためのホストコンピュータを含み、上記ホス
トコンピュータが印刷される複数の対象を記述するデー
タを含む文書のためのデータファイルを有し、上記プリ
ンタが印刷エンジンを含み、装置が、 ホストコンピュータ内に配置され、データファイルを調
べ、資源記憶領域から資源の若干を選択して文書を印刷
するために必要な資源の選択された集合を形成し、デー
タファイルを文書の特定部分内の複数の対象に対応する
プリミティブの集合に翻訳し、上記選択された資源の部
分集合と上記プリミティブの集合とがプリンタ内に適合
するか否かを決定し、そしてプリンタが上記プリミティ
ブの集合を実時間でビットマップデータファイルに処理
することができるか否かを、もしくは印刷エンジンが付
勢される前にプリンタが上記プリミティブの集合をビッ
トマップデータファイルに処理することができるか否か
を決定し、もしプリンタが上記選択された資源の部分集
合及び上記プリミティブの集合を記憶することができな
いか、もしくはプリンタが上記プリミティブの集合を実
時間でビットマップデータファイルに処理することも、
または印刷エンジンが付勢される前にプリンタが上記プ
リミティブの集合をビットマップデータファイルに処理
することもできなければ自身で上記プリミティブの集合
をビットマップデータファイルに処理する資源アセンブ
ラと、 プリンタ内に配置され、上記選択された資源の部分集合
及び上記プリミティブの集合、または上記ビットマップ
データファイルを上記ホストコンピュータから受信し、
上記選択された資源の部分集合及び上記プリミティブの
集合、または上記ビットマップデータファイルを記憶す
るプリンタ資源記憶装置と、 プリンタ内に配置され、上記要求された資源の部分集合
と上記プリミティブの集合とに対応するビットマップデ
ータファイルを作成し、上記ビットマップデータファイ
ルを印刷エンジンへ転送して印刷させる資源実行装置
と、を具備することを特徴とする装置。 - 【請求項3】 周辺装置によって処理されたデータを自
動的に圧縮する装置であって、ホストコンピュータと、
データファイルを受信する周辺装置メモリを有する周辺
装置とを有し、上記装置が、 ホストコンピュータ内に配置され、データファイルを記
憶するホスト資源記憶装置と、 ホストコンピュータ内に配置され、データファイルを調
べ、データファイルが周辺装置メモリ内に適合するか否
かを決定し、そして周辺装置がデータファイルを実時間
でビットマップデータファイルに処理することができる
か否かを決定し、もし周辺装置メモリがデータファイル
を記憶することができないか、もしくはもし周辺装置が
データファイルを実時間でビットマップデータファイル
に処理することができなければ自身でデータファイルを
ビットマップデータファイルに処理する資源アセンブラ
と、を具備することを特徴とする装置。 - 【請求項4】 プリンタにおける分解能を自動的に低下
させる装置であって、装置はプリンタ上の文書を制御し
印刷させるためのホストコンピュータを含み、上記ホス
トコンピュータは印刷される複数の対象を記述するデー
タを含む文書のためのデータファイルを有し、上記プリ
ンタはホストコンピュータからデータを受信して記憶す
るプリンタ内に配置されているプリンタ資源記憶装置
と、プリンタ内に配置されプリンタ資源記憶装置内に記
憶されているデータに対応するビットマップデータファ
イルを作成する資源実行装置と、印刷エンジンを含み、
装置が、 ホストコンピュータ内に配置され、データファイルを調
べ、資源記憶領域から資源の若干を選択して文書を印刷
するために必要な資源の選択された集合を形成し、上記
資源の選択された集合を上記ホスト資源記憶装置内へロ
ードし、データファイルを文書の特定部分内の複数の対
象に対応するプリミティブの集合に翻訳し、上記選択さ
れた資源の部分集合と上記プリミティブの集合とがプリ
ンタ資源記憶装置内に適合するか否かを決定し、そして
プリンタが上記プリミティブの集合を実時間でビットマ
ップデータファイルに処理することができるか否かを、
もしくは印刷エンジンが付勢される前にプリンタが上記
プリミティブの集合をビットマップデータファイルに処
理することができるか否かを決定し、もしプリンタ資源
記憶装置が上記選択された資源の部分集合及び上記プリ
ミティブの集合を記憶することができないか、もしくは
プリンタが上記プリミティブの集合を実時間でビットマ
ップデータファイルに処理することも、または印刷エン
ジンが付勢される前にプリンタが上記プリミティブの集
合をビットマップデータファイルに処理することもでき
なければ自身で上記プリミティブの集合をビットマップ
データファイルに処理する資源アセンブラと、を具備す
ることを特徴とする装置。 - 【請求項5】 もし上記資源アセンブラが上記プリミテ
ィブの集合を上記ビットマップデータファイルに処理
し、上記資源アセンブラが上記ビットマップデータファ
イルを上記プリンタ資源記憶装置内に記憶することがで
きないと決定すれば、上記資源アセンブラは上記プリン
タ資源記憶装置内の記憶空間が上記ビットマップデータ
ファイルよりも少なくてよい第1の圧縮されたビットマ
ップデータファイルを上記プリンタ資源記憶装置内に記
憶することができるか否かを決定し、もし記憶すること
ができれば上記第1の圧縮されたビットマップデータフ
ァイルを作成する請求項1、2、及び4の何れかに記載
の装置。 - 【請求項6】 もし上記資源アセンブラが上記プリミテ
ィブの集合を上記ビットマップデータファイルに処理
し、上記資源アセンブラが上記第1の圧縮されたビット
マップデータファイルを上記プリンタ資源記憶装置内に
記憶することができないと決定すれば、上記資源アセン
ブラは上記プリンタ資源記憶装置内の記憶空間が上記第
1の圧縮されたビットマップデータファイルよりも少な
くてよい第2の圧縮されたビットマップデータファイル
を上記プリンタ資源記憶装置内に記憶することができる
か否かを決定し、もし記憶することができれば上記第2
の圧縮されたビットマップデータファイルを作成する請
求項5に記載の装置。 - 【請求項7】 上記資源アセンブラは、上記ビットマッ
プデータファイルの第1の次元内のデータ線を一本置き
に抜くことによって上記第2の圧縮されたビットマップ
データファイルを作成し、上記第2の圧縮されたビット
マップデータファイルは第2の次元に低下した分解能を
有している請求項6に記載の装置。 - 【請求項8】 もし上記資源アセンブラが上記プリミテ
ィブの集合を上記ビットマップデータファイルに処理
し、上記資源アセンブラが上記第2の圧縮されたピット
マップデータファイルを上記プリンタ資源記憶装置内に
記憶することができないと決定すれば、上記資源アセン
ブラは上記プリンタ資源記憶装置内の記憶空間が上記第
2の圧縮されたビットマップデータファイルよりも少な
くてよい第3の圧縮されたビットマップデータファイル
を上記プリンタ資源記憶装置内に記憶することができる
か否かを決定し、もし記憶することができれば上記第3
の圧縮されたビットマップデータファイルを作成する請
求項6に記載の装置。 - 【請求項9】 上記資源アセンブラは、上記ビットマッ
プデータファイルの第1の次元及び第2の次元内のデー
タ線を一本置きに抜くことによって上記第3の圧縮され
たビットマップデータファイルを作成し、上記第3の圧
縮されたビットマップデータファイルは上記第1及び第
2の次元に低下した分解能を有している請求項8に記載
の装置。 - 【請求項10】 上記資源アセンブラ内に配置され、上
記資源実行装置または上記資源アセンブラの何れかが上
記プリミティブの集合を上記ビットマップデータファイ
ルに変換することを決定する決定手段をも含む請求項1
及び2の何れかに記載の装置。 - 【請求項11】 上記決定手段は、上記資源実行装置が
上記プリミティブの集合を上記ビットマップデータファ
イルに変換するために要する時間の長さと、上記資源ア
センブラが上記プリミティブの集合を上記ビットマップ
データファイルに変換するために要する時間の長さを決
定の基準にしている請求項10に記載の装置。 - 【請求項12】 上記決定手段は、上記資源実行装置が
30秒以下で上記プリミティブの集合を上記ビットマッ
プデータファイルに変換することができるか否かを決定
の基準にしており、もし上記資源実行装置が30秒以下
で上記プリミティブの集合を上記ビットマップデータフ
ァイルに変換することができなければ、上記資源アセン
ブラが上記プリミティブの集合を上記ビットマップデー
タファイルに変換する請求項10に記載の装置。 - 【請求項13】 もしプリンタがバンデイングモードで
動作中であれば、上記資源アセンブラは上記特定部分を
サイズ的にプリンタバンドに対応するバンドとして選択
する請求項1及び2の何れかに記載の装置。 - 【請求項14】 もし上記資源アセンブラが上記プリミ
ティブの集合を上記ビットマップデータファイルに処理
し、上記資源アセンブラが上記ビットマップデータファ
イルを上記プリンタ資源記憶装置内に記憶することがで
きないことを決定すれば、上記資源アセンブラは上記ビ
ットマップデータファイルを圧縮して圧縮されたビット
マップデータファイルを作成し、上記圧縮されたビット
マップデータファイルを上記プリンタ資源記憶装置内に
記憶することができるようになるまで上記ビットマップ
データファイルを圧縮して行く請求項1、2、及び4の
何れかに記載の装置。 - 【請求項15】 もし上記資源アセンブラが上記データ
ファイルを上記ビットマップデータファイルに処理し、
上記資源アセンブラが上記ビットマップデータファイル
を上記周辺装置メモリ内に記憶することができないこと
を決定すれば、上記資源アセンブラは上記周辺装置メモ
リ内の記憶空間が上記ビットマップデータファイルより
も少なくてよい第1の圧縮されたビットマップデータフ
ァイルを上記周辺装置メモリ内に記憶することができる
か否かを決定し、もし記憶することができれば上記ビッ
トマップデータファイル内の全てのデータを保持してい
る上記第1の圧縮されたビットマップデータファイルを
作成する請求項3に記載の装置。 - 【請求項16】 もし上記資源アセンブラが上記データ
ファイルを上記ビットマップデータファイルに処理し、
上記資源アセンブラが上記第1の圧縮されたビットマッ
プデータファイルを上記周辺装置メモリ内に記憶するこ
とができないことを決定すれば、上記資源アセンブラは
上記周辺装置メモリ内の記憶空間が上記第1の圧縮され
たビットマップデータファイルよりも少なくてよい第2
の圧縮されたビットマップデータファイルを上記周辺装
置メモリ内に記憶することができるか否かを決定し、も
し記憶することができれば上記第2の圧縮されたビット
マップデータファイルを作成する請求項15に記載の装
置。 - 【請求項17】 上記第2の圧縮されたビットマップデ
ータファイルは、データの損失がないように上記ビット
マップデータファイルを圧縮することによって形成され
る請求項16に記載の装置。 - 【請求項18】 もし上記資源アセンブラが上記プリミ
ティブの集合を上記ビットマップデータファイルに処理
し、上記資源アセンブラが上記ビットマップデータファ
イルを上記プリンタ資源記憶装置内に記憶することがで
きないことを決定すれば、上記資源アセンブラは上記ビ
ットマップデータファイルを圧縮して圧縮されたビット
マップデータファイルを作成し、上記圧縮されたビット
マップデータファイルを上記プリンタ資源記憶装置内に
記憶することができるようになるまで上記ビットマップ
データファイルを圧縮して行く請求項4に記載の装置。 - 【請求項19】 プリンタに接続されているホストコン
ピュータの分解能を自動的に調整する方法であって、 (a)描写プリミティブリストをプリンタ内のメモリ内
に適合させることができるか否かを決定する段階と、 (b)もし描写プリミティブリストをプリンタ内のメモ
リ内に適合させることができれば、プリンタによる描写
プリミティブリストの実時間実行のための実行コストを
計算し、プリンタが上記描写プリミティブリストを実時
間で実行できるか否かを決定する段階と、 (c)もし上記描写プリミティブリストが上記メモリ内
に適合させることができないか、またはもしプリンタが
上記描写プリミティブリストを実時間で実行できなけれ
ば、上記描写プリミティブリストをホストコンピュータ
において実行させる段階と、を具備することを特徴とす
る方法。 - 【請求項20】 (a)上記ビットマップデータファイ
ルがプリンタ内に適合するか否かを決定する段階と、 (b)もし上記ビットマップデータファイルがプリンタ
内に適合しなければ、第1の圧縮されたビットマップデ
ータファイルがプリンタ内に適合するか否かを決定する
手段と、 (c)もし上記第1の圧縮されたビットマップデータフ
ァイルがプリンタ内に適合すれば、上記ビットマップデ
ータファイルを圧縮してプリンタ内の全分解能を維持し
ている上記描写プリミティブリストの第1の圧縮された
ビットマップデータファイルを作成する段階と、 (d)もし上記第1の圧縮されたビットマップデータフ
ァイルがプリンタ内に適合しなければ、プリンタ内の分
解能を低下させる第2の圧縮されたビットマップデータ
ファイルがプリンタ内に適合するか否かを決定する手段
と、 (e)もし上記第1の圧縮されたビットマップデータフ
ァイルがプリンタ内に適合すれば、ホストコンピュータ
内の上記第1の圧縮されたビットマップデータファイル
の分解能を低下させてビットマップデータファイルの第
2の圧縮されたビットマップデータファイルを作成する
段階と、 (f)もし上記第2の圧縮されたビットマップデータフ
ァイルがプリンタ内に適合しなければ、上記第2の圧縮
されたビットマップデータファイルからの低下した分解
能を使用して、上記ビットマップデータファイルの第3
の圧縮されたビットマップデータファイルを作成する段
階と、を具備し、それによってホストコンピュータは自
動的にデータの分解能を低下させ、もし必要ならば、上
記描写プリミティブリスト、上記ビットマップデータフ
ァイル、上記第1の圧縮されたビットマップデータファ
イル、上記第2の圧縮されたビットマップデータファイ
ル、または上記第3の圧縮されたビットマップデータフ
ァイル内のデータを実行するようにしたことを特徴とす
る方法。 - 【請求項21】 上記第1の圧縮されたビットマップデ
ータファイルがランレングスエンコーディングデータ圧
縮を使用する請求項20に記載の方法。 - 【請求項22】 上記第2の圧縮されたビットマップデ
ータファイルは上記ビットマップデータファイルの第1
の次元内のデータ線を一本置きに削除することによって
形成され、上記第2の圧縮されたビットマップデータフ
ァイルは第2の次元の分解能が低下している請求項20
に記載の方法。 - 【請求項23】 上記第3の圧縮されたビットマップデ
ータファイルは上記ビットマップデータファイルの第1
の次元及び第2の次元内のデータ線を一本置きに削除す
ることによって形成され、上記第3の圧縮されたビット
マップデータファイルは第1及び第2の両次元の分解能
が低下している請求項20に記載の方法。 - 【請求項24】 プリンタに接続されているホストコン
ピュータの分解能を自動的に調整する方法であって、 (a)プリンタによる描写プリミティブリストの実時間
実行のための実行コストを計算し、プリンタが上記描写
プリミティブリストを実時間で実行できるか否かを決定
する段階と、 (b)もしプリンタが上記描写プリミティブリストを実
時間で実行できなければ、上記描写プリミティブリスト
をホストコンピュータ内で実行し、上記描写プリミティ
ブリストの完全分解能ビットマップデータファイルを作
成する段階と、 (c)上記完全分解能ビットマップデータファイルがプ
リンタ内に適合するか否かを決定する段階と、 (d)もし上記完全分解能ビットマップデータファイル
がプリンタ内に適合しなければ、圧縮されたビットマッ
プデータファイルがプリンタ内に適合するまで上記完全
分解能ビットマップデータファイルをホストコンピュー
タ内で圧縮する段階と、を具備することを特徴とする方
法。 - 【請求項25】 圧縮段階(d)が、 (1)もし上記完全分解能ビットマップデータファイル
がプリンタ内に適合しなければ、圧縮された完全分解能
ビットマップデータファイルがプリンタ内に適合するか
否かを決定する段階と、 (2)もし上記圧縮された完全分解能ビットマップデー
タファイルがプリンタ内に適合すれば、上記ビットマッ
プデータファイルを圧縮して上記圧縮された完全分解能
ビットマップデータファイルを作成する段階と、 (3)もし上記完全分解能ビットマップデータファイル
がプリンタ内に適合しなければ、分解能を低下させたビ
ットマップデータファイルを形成することによって上記
全分解能ビットマップデータファイルを圧縮して上記分
解能を低下させたビットマップデータファイルがプリン
タ内に適合するまで分解能を低下させる段階と、からな
る請求項24に記載の方法。 - 【請求項26】 プリンタに接続されているホストコン
ピュータの分解能を自動的に調整する方法であって、 (a)完全分解能ビットマップデータファイルがプリン
タ内に適合するか否かを決定する段階と、 (b)もし完全分解能ビットマップデータファイルがプ
リンタ内に適合しなければ、圧縮されたビットマップデ
ータファイルがプリンタ内に適合するまで上記完全分解
能ビットマップデータファイルを連続的に圧縮して圧縮
されたビットマップデータファイルを得る段階と、を具
備することを特徴とする方法。 - 【請求項27】 ホストコンピュータに接続されている
周辺装置によって処理されるデータを自動的に圧縮する
方法であって、周辺装置は周辺装置メモリを有していて
データファイルを受信し、上記方法が、 (a)データファイルが周辺装置メモリ内に適合するか
否かを決定する段階と (b)もしデータファイルが周辺装置メモリ内に適合す
れば、周辺装置がデータファイルを実時間でビットマッ
プデータファイルに処理できるか否かを決定する段階
と、 (c)もし周辺装置メモリがデータファイルを記憶する
ことができないか、もしくは周辺装置がデータファイル
を実時間でビットマップデータファイルに処理できなけ
れば、ホストコンピュータ内でデータファイルを上記ビ
ットマップデータファイルに変換する段階と、を具備す
ることを特徴とする方法。 - 【請求項28】 もしホストコンピュータがデータファ
イルを上記ビットマップデータファイルに処理するので
あれば、更に、 (d)上記ビットマップデータファイルを周辺装置メモ
リが記憶できるか否かを決定する段階と、 (e)もし段階(d)が上記ビットマップデータファイ
ルを周辺装置メモリが記憶できないと決定すれば、上記
ビットマップデータファイルよりも周辺装置メモリの記
憶空間が少なくて済む第1の圧縮されたビットマップデ
ータファイルを周辺装置メモリが記憶できるか否かを決
定する段階と、 (f)もし段階(e)が上記第1の圧縮されたビットマ
ップデータファイルを周辺装置メモリが記憶できると決
定すれば、上記ビットマップデータファイル内の全ての
データを維持する上記第1の圧縮されたビットマップデ
ータファイルを作成する段階と、をも含む請求項27に
記載の方法。 - 【請求項29】 もしホストコンピュータがデータファ
イルを上記ビットマップデータファイルに処理するので
あれば、更に、 (g)上記第1の圧縮されたビットマップデータファイ
ルよりも周辺装置メモリの記憶空間が少なくて済む第2
の圧縮されたビットマップデータファイルを周辺装置メ
モリが記憶できるか否かを決定する段階と、 (h)もし段階(g)が上記第1の圧縮されたビットマ
ップデータファイルを周辺装置メモリが記憶できると決
定すれば、上記ビットマップデータファイルから若干の
データが失われる第2の圧縮されたビットマップデータ
ファイルを作成する段階と、をも含む請求項28に記載
の方法。
Applications Claiming Priority (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/912,098 US5337258A (en) | 1992-07-10 | 1992-07-10 | Cost metrics |
| US07/911,767 US5469533A (en) | 1992-07-10 | 1992-07-10 | Resource-oriented printer system and method of operation |
| US07/911767 | 1992-07-10 | ||
| US07/976,348 US5471563A (en) | 1992-07-10 | 1992-11-16 | System and method for automatic resolution reduction |
| US07/912098 | 1992-11-16 | ||
| US07/976348 | 1992-11-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0798636A true JPH0798636A (ja) | 1995-04-11 |
Family
ID=27420624
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22202293A Pending JPH0798636A (ja) | 1992-07-10 | 1993-07-12 | 分解能を自動的に低下させる装置及び方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5471563A (ja) |
| EP (1) | EP0578263A1 (ja) |
| JP (1) | JPH0798636A (ja) |
| KR (1) | KR940006036A (ja) |
| CA (1) | CA2100239A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6614544B2 (en) | 1995-11-28 | 2003-09-02 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, memory medium storing program readable by information processing apparatus, and print control system |
Families Citing this family (70)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5933580A (en) * | 1991-09-04 | 1999-08-03 | Canon Kabushiki Kaisha | Scanner printer server |
| US5835122A (en) * | 1993-11-12 | 1998-11-10 | Canon Kabushiki Kaisha | Printing apparatus and method capable of selectively printing with a plurality of resolutions |
| US5617517A (en) * | 1994-09-20 | 1997-04-01 | Seiko Epson Corporation | Two-dimensional method and system for compressing bi-level images |
| US5802257A (en) * | 1994-11-25 | 1998-09-01 | Canon Kabushiki Kaisha | Information processing apparatus, method and memory medium that control a bold process in accordance with the setting of a facsimile mode |
| US5805781A (en) * | 1994-12-07 | 1998-09-08 | Hewlett-Packard Company | Printer method and apparatus for combining sub-images to eliminate image artifacts |
| US5613051A (en) * | 1994-12-21 | 1997-03-18 | Harris Corp. | Remote image exploitation display system and method |
| US5704020A (en) | 1995-03-08 | 1997-12-30 | Ricoh Company, Ltd. | Page printer resolution converting method, and variable-length reversible compression process |
| US7027187B1 (en) * | 1995-08-07 | 2006-04-11 | Electronics For Imaging, Inc. | Real time calibration of a marking engine in a print system |
| US6657741B1 (en) | 1995-08-07 | 2003-12-02 | Tr Systems, Inc. | Multiple print engine system with selectively distributed ripped pages |
| US7046391B1 (en) * | 1995-08-07 | 2006-05-16 | Electronics For Imaging, Inc. | Method and apparatus for providing a color-balanced multiple print engine |
| US6977752B1 (en) | 1995-08-07 | 2005-12-20 | Electronics For Imaging, Inc. | Method and apparatus for determining toner level in electrophotographic print engines |
| US5717499A (en) * | 1995-08-25 | 1998-02-10 | Lexmark International, Inc. | Continued printing by resolution reduction |
| JPH09167242A (ja) * | 1995-12-19 | 1997-06-24 | Fuji Xerox Co Ltd | 描画処理装置および方法 |
| JP3610142B2 (ja) * | 1996-01-11 | 2005-01-12 | キヤノン株式会社 | 印刷制御装置および印刷制御方法 |
| KR100205009B1 (ko) | 1996-04-17 | 1999-06-15 | 윤종용 | 비디오신호 변환장치 및 그 장치를 구비한 표시장치 |
| US6172765B1 (en) * | 1996-06-12 | 2001-01-09 | Canon Kabushiki Kaisha | Printing system |
| US5920659A (en) * | 1996-06-24 | 1999-07-06 | Intel Corporation | Method and apparatus for scaling image data having associated transparency data |
| KR100228793B1 (ko) * | 1996-06-30 | 1999-11-01 | 윤종용 | 프린트 데이타 처리방법 |
| US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
| US6304893B1 (en) | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
| US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
| US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
| US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
| US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
| US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
| US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
| US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
| KR100204334B1 (ko) * | 1996-07-05 | 1999-06-15 | 윤종용 | 표시모드 변환기능을 갖는 비디오신호 변환장치 및 그 장치를 구비한 표시장치 |
| US6665081B1 (en) | 1996-07-19 | 2003-12-16 | Seiko Epson Corporation | Print system printer driver and printer |
| KR100283574B1 (ko) * | 1996-08-27 | 2001-03-02 | 윤종용 | 모니터 화면 사이즈 제어 회로 및 그 제어방법 |
| US5995724A (en) * | 1996-11-01 | 1999-11-30 | Mikkelsen; Carl | Image process system and process using personalization techniques |
| US6269190B1 (en) | 1996-09-24 | 2001-07-31 | Electronics For Imaging, Inc. | Computer system for processing images using a virtual frame buffer |
| US6870633B1 (en) | 1996-09-30 | 2005-03-22 | Brother Kogyo Kabushiki Kaisha | Printing device |
| US5983243A (en) * | 1996-10-31 | 1999-11-09 | International Business Machines Corporation | Data processing system and method for Preparing a presentation-ready document that produces separate images of fixed and variable data and a bookticket specifying an arrangement of such images |
| JPH10147017A (ja) * | 1996-11-18 | 1998-06-02 | Canon Inc | 印刷装置及びデータ制御方法 |
| JPH10147018A (ja) * | 1996-11-18 | 1998-06-02 | Canon Inc | 印刷装置及びメモリ管理方式 |
| US6320667B1 (en) * | 1996-12-27 | 2001-11-20 | Canon Kabushiki Kaisha | Information processing apparatus and method for transmitting printing information, and recording medium readable by a computer storing a program for transmitting printing information |
| US5971518A (en) * | 1997-01-28 | 1999-10-26 | Lexmark International, Inc. | Method of printing with an ink jet printer to inhibit the formation of a print artifact |
| JPH10260798A (ja) * | 1997-03-21 | 1998-09-29 | Canon Inc | 情報処理装置及び方法、出力制御装置及び方法、情報処理システム |
| KR19980084093A (ko) * | 1997-05-21 | 1998-12-05 | 윤종용 | 스캐너의 설정환경 자동변환방법 |
| JP3198985B2 (ja) * | 1997-06-12 | 2001-08-13 | 日本電気株式会社 | 印刷制御方式 |
| JP3548396B2 (ja) * | 1997-09-24 | 2004-07-28 | キヤノン株式会社 | 描画処理装置、描画処理方法、及び記憶媒体 |
| US6160559A (en) * | 1997-09-30 | 2000-12-12 | Intel Corporation | Method and apparatus for providing frame-time feedback to graphics application programs |
| JP3417305B2 (ja) * | 1998-07-27 | 2003-06-16 | セイコーエプソン株式会社 | プリンタ、プリンタ制御装置および画像入出力装置 |
| US20020093669A1 (en) * | 1998-08-28 | 2002-07-18 | Russell Campbell | Complexity extensions for band management in a printer page pipe |
| US20030158786A1 (en) | 1999-02-26 | 2003-08-21 | Skyline Software Systems, Inc. | Sending three-dimensional images over a network |
| US7437483B1 (en) * | 1999-03-24 | 2008-10-14 | Microsoft Corporation | System and method for transferring a compressed data file to a peripheral device |
| JP4323618B2 (ja) * | 1999-05-31 | 2009-09-02 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
| US7054015B1 (en) * | 1999-07-02 | 2006-05-30 | Electronics For Imaging, Inc. | Printer description file format generator |
| US6490696B1 (en) | 1999-12-15 | 2002-12-03 | Electronics For Imaging, Inc. | System and method for printer output regression testing using display lists |
| US6771386B1 (en) * | 2000-09-14 | 2004-08-03 | Kabushiki Kaisha Toshiba | Image forming system |
| US6774919B2 (en) | 2000-12-06 | 2004-08-10 | Microsoft Corporation | Interface and related methods for reducing source accesses in a development system |
| US7447754B2 (en) | 2000-12-06 | 2008-11-04 | Microsoft Corporation | Methods and systems for processing multi-media editing projects |
| US6959438B2 (en) * | 2000-12-06 | 2005-10-25 | Microsoft Corporation | Interface and related methods for dynamically generating a filter graph in a development system |
| US6768499B2 (en) | 2000-12-06 | 2004-07-27 | Microsoft Corporation | Methods and systems for processing media content |
| US6983466B2 (en) * | 2000-12-06 | 2006-01-03 | Microsoft Corporation | Multimedia project processing systems and multimedia project processing matrix systems |
| US7114162B2 (en) * | 2000-12-06 | 2006-09-26 | Microsoft Corporation | System and methods for generating and managing filter strings in a filter graph |
| US7287226B2 (en) * | 2000-12-06 | 2007-10-23 | Microsoft Corporation | Methods and systems for effecting video transitions represented by bitmaps |
| JP3826038B2 (ja) | 2002-01-17 | 2006-09-27 | キヤノン株式会社 | 印刷システム及びその印刷方法並びに印刷装置 |
| US6621586B1 (en) * | 2002-04-10 | 2003-09-16 | Texas Instruments Incorporated | Accurately scheduling rendering of bands in a printer |
| US20040024844A1 (en) * | 2002-08-01 | 2004-02-05 | Stanley Bruce Holmstead | Downloading data for printers |
| US8045215B2 (en) * | 2002-10-18 | 2011-10-25 | Hewlett-Packard Development Company, L.P. | Printer object list resolutions |
| JP2004171515A (ja) * | 2002-10-29 | 2004-06-17 | Ricoh Co Ltd | 画像形成装置、画像データ転送方法 |
| KR100611189B1 (ko) * | 2004-01-31 | 2006-08-10 | 삼성전자주식회사 | 드라이버정보의 사전 전송을 통해 프린팅 오동작을예측하는 인쇄시스템 및 그 방법 |
| US7180531B2 (en) * | 2004-02-27 | 2007-02-20 | Microsoft Corporation | Method and apparatus for enabling application program compatibility with display devices having improved pixel density |
| JP4641459B2 (ja) * | 2005-07-08 | 2011-03-02 | キヤノン株式会社 | 情報処理装置及びプリンタドライバ |
| US20070216685A1 (en) * | 2006-03-15 | 2007-09-20 | Microsoft Corporation | Scene write-once vector and triangle rasterization |
| JP2008018545A (ja) * | 2006-07-10 | 2008-01-31 | Ricoh Co Ltd | 画像形成装置 |
| US7944572B2 (en) * | 2007-01-26 | 2011-05-17 | Xerox Corporation | Protocol allowing a document management system to communicate inter-attribute constraints to its clients |
| JP5210913B2 (ja) * | 2009-02-05 | 2013-06-12 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置及び画像形成方法 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS62204955A (ja) * | 1986-03-05 | 1987-09-09 | Minolta Camera Co Ltd | 文字画像発生回路 |
| US5220674A (en) * | 1987-07-17 | 1993-06-15 | Digital Equipment Corporation | Local area print server for requesting and storing required resource data and forwarding printer status message to selected destination |
| JP2997005B2 (ja) * | 1990-04-12 | 2000-01-11 | キヤノン株式会社 | 出力装置 |
| JP3105903B2 (ja) * | 1990-07-13 | 2000-11-06 | キヤノン株式会社 | 印刷制御装置及び印刷装置 |
| DE69117112T2 (de) * | 1990-08-08 | 1996-06-27 | Peerless Group | Verfahren und Vorrichtung zur Bildwiedergabe |
| JP2562514B2 (ja) * | 1990-09-03 | 1996-12-11 | キヤノン株式会社 | 印刷制御装置及びイメージデータ描画方法 |
| US5142667A (en) * | 1990-09-28 | 1992-08-25 | Xerox Corporation | Resource and memory management algorithms for electric printing and electronic reprographic systems |
| US5175679A (en) * | 1990-09-28 | 1992-12-29 | Xerox Corporation | Control for electronic image processing systems |
| CA2041140A1 (en) * | 1990-10-12 | 1992-04-13 | Richard L. Kochis | Pcl vertical graphics scaling using macros |
| US5208676A (en) * | 1990-12-04 | 1993-05-04 | Fuji Xerox Co., Ltd. | Image processing apparatus with data storage region management, memory space allocation in accordance with detected compression ratio of data |
| US5150454A (en) * | 1991-10-16 | 1992-09-22 | Patrick Wood | Printing system and method |
-
1992
- 1992-11-16 US US07/976,348 patent/US5471563A/en not_active Expired - Lifetime
-
1993
- 1993-07-09 EP EP93111049A patent/EP0578263A1/en not_active Withdrawn
- 1993-07-09 CA CA002100239A patent/CA2100239A1/en not_active Abandoned
- 1993-07-10 KR KR1019930012976A patent/KR940006036A/ko not_active Withdrawn
- 1993-07-12 JP JP22202293A patent/JPH0798636A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6614544B2 (en) | 1995-11-28 | 2003-09-02 | Canon Kabushiki Kaisha | Information processing apparatus, information processing method, memory medium storing program readable by information processing apparatus, and print control system |
Also Published As
| Publication number | Publication date |
|---|---|
| KR940006036A (ko) | 1994-03-23 |
| CA2100239A1 (en) | 1994-01-11 |
| EP0578263A1 (en) | 1994-01-12 |
| US5471563A (en) | 1995-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0798636A (ja) | 分解能を自動的に低下させる装置及び方法 | |
| JP3947233B2 (ja) | プリンタシステムおよびその制御方法 | |
| JPH06202823A (ja) | タイマを動的にタイムアウトさせる装置及び方法 | |
| EP0578258B1 (en) | Resource-oriented printer system and method of operation | |
| JP4417153B2 (ja) | 並行印刷システム | |
| US9015722B2 (en) | Efficient cache reuse through application determined scheduling | |
| US6651082B1 (en) | Method for dynamically changing load balance and computer | |
| US5993088A (en) | Method for improving print performance and quality by accumulating, storing and using resource accounting information with a print job | |
| US6313920B1 (en) | System and method for remote printing using incremental font subsetting | |
| JPH08503318A (ja) | フォント・ラッピング・プリンタ・データに対するシステム及び方法 | |
| JPH06202972A (ja) | モード切換え装置及び方法 | |
| US20080276252A1 (en) | Kernel event visualization | |
| JPH09114611A (ja) | 印刷処理装置および方法 | |
| CN105426259A (zh) | 用于传递api中的依赖关系的技术 | |
| US11397615B2 (en) | Methods and apparatuses for coalescing function calls for ray-tracing | |
| JP6766598B2 (ja) | 画像処理装置、画像処理方法および制御プログラム | |
| US12277223B2 (en) | System and method utilizing machine learning and natural language processing to identify malware DNA | |
| JP4469036B2 (ja) | ホストとプリンタとの間での繰返しオブジェクトの単一パス送信 | |
| US20040012797A1 (en) | Load balancing in image generation | |
| US20190392101A1 (en) | Information processing device, information processing method, and recording medium | |
| Dinari et al. | Cpu-and gpu-based distributed sampling in dirichlet process mixtures for large-scale analysis | |
| Robroek | Resourceful Learning: Training More Models with Fewer Re | |
| Hargreaves et al. | Efficient Parameter Inference for Lévy State Space Models Through GPU-Accelerated Particle MCMC | |
| Thibault et al. | Developing a Software Tool for Precise Kernel Measurements | |
| JP2005149316A (ja) | 情報処理装置、情報処理方法、プログラム、記録媒体及び印刷装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20021209 |