(57)【特許請求の範囲】
【請求項１】
１以上の画像要素をページ記述言語で記述する印刷データから、前記画像要素ごとに、当該画像要素が各走査線上で占める区間と当該区間内の各画素の値とを規定する、走査線順に並んだ区間データの集まりを生成し、生成したそれら各画像要素に対応する区間データの集まりを前記印刷データで規定される前記各画像要素の重なり順に従って並べた中間データを生成して出力する中間データ生成装置と、
前記中間データ生成装置から出力された前記中間データをデータ通信路経由で受信し、受信した前記中間データに含まれる各区間データを当該中間データ内での並び順に描画処理することで各走査線の画像データを生成し、生成した各走査線の画像データ又は当該画像データに対してあらかじめ定められた画像処理を行った結果の画像データを、走査線の順に印刷装置に供給する画像データ生成装置と、
を備える印刷画像処理システム。
【請求項２】
前記中間データ生成装置は、画像データ又は区間データを前記画像データ生成装置の再利用データ格納部に格納する格納命令と、前記再利用データ格納部に格納された画像データ又は区間データを読み出して描画処理を行う再利用命令と、を含んだ中間データを生成する機能を備え、
前記画像データ生成装置は、前記中間データ生成装置から受信した中間データに前記格納命令が含まれる場合は、当該格納命令にて指定された画像データ又は区間データを当該画像データ生成装置の再利用データ格納部に格納し、前記中間データ生成装置から受信した中間データに前記再利用命令が含まれる場合は、当該再利用データ格納部に格納された画像データ又は区間データのうち当該再利用命令により指定された画像データ又は区間データを読み出して描画処理を行う、
ことを特徴とする請求項１記載の印刷画像処理システム。
【請求項３】
前記中間データ生成装置を複数備えると共に、前記印刷装置の用いる各基本色に対応してそれぞれ個別に前記画像データ生成装置を備え、前記複数の中間データ生成装置のそれぞれが前記複数の画像データ生成装置に対して前記データ通信路を介して接続されており、
前記複数の中間データ生成装置の各々に対し、前記印刷データ中の異なるページについての前記中間データの生成を割り当てる割当手段を更に備え、
前記複数の中間データ生成装置は、前記割当手段から割り当てられたページについて、当該ページ内の各画像要素を表す前記中間データを前記基本色ごとに生成して出力し、
前記各基本色に対応する前記画像データ生成装置は、それぞれ、前記複数の中間データ生成装置が出力した各ページの基本色ごとの中間データのうちの当該画像データ生成装置に対応する基本色の中間データをページ順に描画処理する、
ことを特徴とする請求項２記載の印刷画像処理システム。
【請求項４】
前記複数の中間データ生成装置の各々は、
ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と同じ場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データの代わりに、前記第２の走査線についての当該画像要素の区間データを描画した画像を複製することを示す命令を採用する、
ことを特徴とする請求項１〜３のいずれか１項に記載の印刷画像処理システム。
【請求項５】
前記複数の中間データ生成装置の各々は、
ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と、その区間の始点及び終点のみが異なる場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データの代わりに、前記第２の走査線についての当該画像要素の区間データを描画した画像を区間の始点と終点を変えて再利用することを示す命令を採用する、
ことを特徴とする請求項１〜４のいずれか１項に記載の印刷画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷画像処理システムに関する。
【背景技術】
【０００２】
特許文献１に開示された装置では、ページ記述言語（以下、ＰＤＬと呼ぶ。ＰＤＬはPage Description Languageの略）の描画コマンド群をランレングス形式の中間データに変換する場合に、２つのランレングスデータの差分を用いて中間データを生成することで、中間データのデータ量を削減している。
【０００３】
特許文献２には、入力されたデータからラスター情報に変換する際に、パターンによる塗りつぶし処理を行なう場合に、使用するメモリを大幅に減らすとともに、高速な処理を実現しようとする描画装置が開示される。この装置では、描画入力部に入力された入力データは、エッジリスト生成部でエッジリストが生成され、クリップ処理部でクリップ処理されて、色付け処理部に送られる。色付け処理部では、パターンメモリに蓄えられたパターンのエッジリストと入力データのエッジリストを比較して、エッジリストを作り直し、パターンによる塗りつぶし処理を行なう。作り直したエッジリストは、エッジリストマージ部で１ページ分のエッジリストにマージされ、ラスタライズ部でラスター変換されて、出力装置へ出力される。
【０００４】
特許文献３に開示された装置では、中間データ変換部が入力されたページ記述言語プログラムを解釈して該ページ記述言語プログラムを文字、写真および図形のオブジェクト単位の中間形式データに変換し、文字展開部、写真展開部および図形展開部にそれぞれ出力する。文字展開部、写真展開部および図形展開部は、それぞれ文字、写真および図形の中間形式データをもとに所定の最適イメージ展開処理を行い、合成部がそれぞれにイメージ展開処理されたイメージデータを合成し、ページ単位の処理データを出力する。
【０００５】
特許文献４には、下地図形と追加図形とのビット単位の論理演算をランレングスデータの段階で行う装置が開示されている。
【０００６】
特許文献５に開示される装置では、ＰＤＬデータに含まれる各オブジェクトを、ランレングスを表す区間データに変換し、それら区間データを走査線の順にソートしている。そして、同一走査線上の複数の区間の一方が他方に重畳している場合、それらを、互いに重ねて描画した状態を表す複数の区間データへと変換することで、互いに重なりのない区間データ群を生成し、印刷装置に出力している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３０８５１７５号明細書
【特許文献２】特許第３０８９９０６号明細書
【特許文献３】特許第３２１１４１７号明細書
【特許文献４】特許第３３７５０６９号明細書
【特許文献５】特許第３２０９３５９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ページ記述言語の印刷データを解釈する装置と印刷装置（又はこれを管理する装置）との間をネットワーク等のデータ通信路で結ぶ場合、前者から後者へと転送するデータの形式としては、ビットマップデータよりも中間データ形式の方が、データの転送量低減の観点から有利である。ところが、中間データとして、ランレングス等の区間データを用い、同一走査線上の互いに重畳している複数の区間データを、それらを互いに重ねて描画した状態を表す複数の区間データへと変換する方法を採用すると、元の画像要素（オブジェクト）の重畳関係の情報が失われてしまい、キャッシュを用いることができなくなる。
【０００９】
本発明は、印刷画像処理システムを構成する装置間で区間データからなる中間データを転送する場合において、元の画像要素同士の重畳関係を残すことを目的とする。
【課題を解決するための手段】
【００１０】
請求項１に係る発明は、１以上の画像要素をページ記述言語で記述する印刷データから、前記画像要素ごとに、当該画像要素が各走査線上で占める区間と当該区間内の各画素の値とを規定する、走査線順に並んだ区間データの集まりを生成し、生成したそれら各画像要素に対応する区間データの集まりを前記印刷データで規定される前記各画像要素の重なり順に従って並べた中間データを生成して出力する中間データ生成装置と、前記中間データ生成装置から出力された前記中間データをデータ通信路経由で受信し、受信した前記中間データに含まれる各区間データを当該中間データ内での並び順に描画処理することで各走査線の画像データを生成し、生成した各走査線の画像データ又は当該画像データに対してあらかじめ定められた画像処理を行った結果の画像データを、走査線の順に印刷装置に供給する画像データ生成装置と、を備える印刷画像処理システムである。
【００１１】
請求項２に係る発明は、前記中間データ生成装置は、画像データ又は区間データを前記画像データ生成装置の再利用データ格納部に格納する格納命令と、前記再利用データ格納部に格納された画像データ又は区間データを読み出して描画処理を行う再利用命令と、を含んだ中間データを生成する機能を備え、前記画像データ生成装置は、前記中間データ生成装置から受信した中間データに前記格納命令が含まれる場合は、当該格納命令にて指定された画像データ又は区間データを当該画像データ生成装置の再利用データ格納部に格納し、前記中間データ生成装置から受信した中間データに前記再利用命令が含まれる場合は、当該再利用データ格納部に格納された画像データ又は区間データのうち当該再利用命令により指定された画像データ又は区間データを読み出して描画処理を行う、ことを特徴とする請求項１記載の印刷画像処理システムである。
【００１２】
請求項３に係る発明は、前記中間データ生成装置を複数備えると共に、前記印刷装置の用いる各基本色に対応してそれぞれ個別に前記画像データ生成装置を備え、前記複数の中間データ生成装置のそれぞれが前記複数の画像データ生成装置に対して前記データ通信路を介して接続されており、前記複数の中間データ生成装置の各々に対し、前記印刷データ中の異なるページについての前記中間データの生成を割り当てる割当手段を更に備え、前記複数の中間データ生成装置は、前記割当手段から割り当てられたページについて、当該ページ内の各画像要素を表す前記中間データを前記基本色ごとに生成して出力し、前記各基本色に対応する前記画像データ生成装置は、それぞれ、前記複数の中間データ生成装置が出力した各ページの基本色ごとの中間データのうちの当該画像データ生成装置に対応する基本色の中間データをページ順に描画処理する、ことを特徴とする請求項２記載の印刷画像処理システムである。
【００１３】
請求項４に係る発明は、前記複数の中間データ生成装置の各々は、ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と同じ場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データの代わりに、前記第２の走査線についての当該画像要素の区間データを描画した画像を複製することを示す命令を採用する、ことを特徴とする請求項１〜３のいずれか１項に記載の印刷画像処理システムである。
【００１４】
請求項５に係る発明は、前記複数の中間データ生成装置の各々は、ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と、その区間の始点及び終点のみが異なる場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データの代わりに、前記第２の走査線についての当該画像要素の区間データを描画した画像を区間の始点と終点を変えて再利用することを示す命令を採用する、ことを特徴とする請求項１〜４のいずれか１項に記載の印刷画像処理システムである。
【発明の効果】
【００１５】
請求項１に係る発明によれば、中間データを構成する区間データ同士の間に、元の画像要素同士の重畳関係を残すことができる。
【００１６】
請求項２に係る発明によれば、再利用される画像データ又は区間データをその再利用のたびに中間データ生成装置から画像データ生成装置に送る方式よりも、転送するデータ量を低減することができる。
【００１７】
請求項３に係る発明によれば、複数の中間データ生成装置が異なるページの中間データを生成する構成において、各画像データ生成装置の再利用データ格納部に格納した画像データ又は区間データをすべてのページで再利用することができる。
【００１８】
請求項４に係る発明によれば、ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と同じ場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データを用いる場合よりも、中間データのデータ量を減らすことができる。
【００１９】
請求項５に係る発明によれば、ある画像要素が第１の走査線に占める区間が、当該第１の走査線の１つ前の第２の走査線に対し当該画像要素が占める区間と、その区間の始点及び終点のみが異なる場合に、前記第１の走査線についての当該画像要素の区間データとして、当該区間と当該区間内の各画素の値とを規定する区間データを用いる場合よりも、中間データのデータ量を減らすことができる。
【図面の簡単な説明】
【００２０】
【図１】印刷システムの一実施形態を示す機能ブロック図である。
【図２】Mark Line （線分描画）プリミティブのパケット構造を示す図である。
【図３】Mark Line プリミティブが表す描画処理を説明するための図である。
【図４】Mark Gray Line （既定濃度線分描画）プリミティブのパケット構造を示す図である。
【図５】Mark Gray Image （多階調画像描画）プリミティブのパケット構造を示す図である。
【図６】Mark Gray Imageプリミティブが表す描画処理を説明するための図である。
【図７】Data Transfer（データ転送）プリミティブのパケット構造を示す図である。
【図８】Data Transferプリミティブのパラメータpについて説明するための図である。
【図９】Mark Bitmap Image （二値画像描画）プリミティブのパケット構造を示す図である。
【図１０】Set Mask （マスク設定）プリミティブのパケット構造を示す図である。
【図１１】Window Mark（ウインドウ描画）プリミティブのパケット構造を示す図である。
【図１２】Window Markプリミティブが表す描画処理を説明するための図である。
【図１３】Set Alpha Mask（透過率マスク設定）プリミティブのパケット構造を示す図である。
【図１４】Set Alpha Maskプリミティブが表す処理を説明するための図である。
【図１５】Execute（プリミティブ実行）プリミティブのパケット構造を示す図である。
【図１６】Executeプリミティブが表す処理を説明するための図である。
【図１７】中間データ生成部が生成する中間データの例を示す図である。
【図１８】中間データ生成部が生成する中間データの別の例を示す図である。
【図１９】中間データ生成部が生成する、Execute プリミティブを含んだ中間データの別の例を示す図である。
【図２０】印刷システムの変形例を示す機能ブロック図である。
【図２１】図２０のシステムにおける各基本色の中間データ及び画像データの流れの例を説明する図である。
【発明を実施するための形態】
【００２１】
図１に示すように、本実施形態の印刷システム１００は、フロントエンド装置１１０、バックエンド装置１２０及びプリンタ１３０を備える。
【００２２】
フロントエンド装置１１０は、クライアント装置２００から、ページ記述言語で記述された印刷データを含んだ印刷要求を受信し、その印刷データを中間データに変換する装置である。すなわち、フロントエンド装置１１０は、インタプリタ１１２と中間データ生成部１１４とを備える。インタプリタ１１２は、ページ記述言語の印刷データを先頭から順に解釈していく。中間データ生成部１１４は、インタプリタ１１２から順に出力される印刷データの解釈結果から、中間データを生成する。中間データは、ページ単位で生成してもよいし、あらかじめ定められた走査線数のバンド単位で生成してもよい。
【００２３】
本実施形態では、中間データの形式として、特許文献５に開示されている区間データと同様、ページの画像を構成する画像要素である各オブジェクト（例えば、文字フォント、グラフィックス図形、画像データ）を、ラスター走査の走査線ごとに区切った区間データを用いる。言い換えれば、区間データは、オブジェクトが１つの走査線上に占める区間を表すデータである。区間データは、例えばその区間の両端の座標の組で表される。また、区間データは、その区間内の各画素の画素値を規定する情報を含む。画素値は、例えばＣ，Ｍ，Ｙ，Ｋなどのプリンタ１３０が用いる基本色ごとの濃度値（グレーレベル）である。なお、以下では、ページ又はそれを分割したバンドなどといった描画単位を表す複数の区間データの集まりを、中間データと呼ぶこととする。
【００２４】
ただし、特許文献５の装置では、オブジェクトごとに生成した区間データをソートし、同一走査線上の区間データ同士の重なりをなくすためにそれら区間データを分割していたが、本実施形態のフロントエンド装置１１０は、そのようなソート及び区間データ分割は行わない。中間データ生成部１１４が行う区間データの生成方式は、上述した区間データのソートと分割とを除き、特許文献５に示された方式と同様のものでよい。
【００２５】
すなわち、フロントエンド装置１１０は、印刷データ中のページ記述言語で記述されたオブジェクトを、印刷データにおけるそれらオブジェクトの並びの順、すなわちオブジェクトの重なり順に、オブジェクトごとに走査線順の区間データの集まりへと変換していく。これにより、フロントエンド装置１１０から出力される複数のオブジェクトについての区間データの集まりは、印刷データが規定するそれらオブジェクトの重なりの順に、すなわち下のオブジェクトについての区間データの集まりから順に、並んだものとなる。
【００２６】
また、本実施形態では、区間データの一種として、一度描画した画像を再利用するコマンドをいくつか用いる。これらについては後で詳しく説明する。
【００２７】
バックエンド装置１２０は、フロントエンド装置１１０が生成した中間データを、プリンタ１３０が取扱可能なラスター走査可能な画像データへと変換し、その画像データをプリンタ１３０に供給する。一例として、バックエンド装置１２０は、マーキング処理部１２２、ハーフトーン処理部１２４及びローカルストレージ１２６を備える。マーキング処理部１２２は、フロントエンド装置１１０から供給される中間データを処理して、ページバッファ又はバンドバッファなどの描画用メモリ上に画像データを形成する。ハーフトーン処理部１２４は、その画像データに対してハーフトーン処理を施す。ハーフトーン処理後の画像データがプリンタ１３０へと供給される。なお、ハーフトーン処理部１２４の代わりに、或いはこれに加えて、例えばガンマ補正などの他の画像処理を行う機能モジュールをバックエンド装置１２０に設けてもよい。
【００２８】
また、ローカルストレージ１２６には、フロントエンド装置１１０からの指示に基づき、再利用予定のデータが格納される。格納される再利用予定のデータは、画像データであっても、区間データ又は複数の区間データの集まり（例えばリスト）であってもよい。マーキング処理部１２２は、フロントエンド装置１１０から供給される区間データが、ローカルストレージ１２６内のデータの再利用を指示する命令である場合、その命令に従ってローカルストレージ１２６からデータを読み出し、そのデータに従って描画用メモリ上に画像データを書き込んでいく。
【００２９】
プリンタ１３０は、バックエンド装置１２０から供給される画像データを、用紙に印刷する。
【００３０】
フロントエンド装置１１０とバックエンド装置１２０とは、別々のコンピュータ装置であり、両者の間は例えばＬＡＮ（ローカル・エリア・ネットワーク）で接続される。高速印刷を行う場合、中間データのデータ量が大量になるため、フロントエンド装置１１０とバックエンド装置１２０のＬＡＮは高速なものを用いる。また、バックエンド装置１２０とプリンタ１３０との間は、高速なデータ転送ケーブルなどで接続すればよい。また、フロントエンド装置１１０は、バックエンド装置１２０との間のＬＡＮとは別の、一般的な速度のＬＡＮに接続され、このＬＡＮを介してクライアント装置２００と通信可能となっている。
【００３１】
次に、中間データ生成部１１４が生成する区間データの詳細について説明する。本実施形態では、複数種類の区間データを用いる。以下、それら各種の区間データのデータ構造について説明する。なお、以下では、区間データのことを「プリミティブ」と呼ぶ。
【００３２】
（１）Mark Line （線分描画）プリミティブ（図２）
このプリミティブは、走査線に沿った線分描画を指示する命令である。このプリミティブの形式は、以下の通りであり、図２に示すようなデータパケットを構成する。
line(int y, int xl, int xr, unsigned char g);  又は、
line(int y, int xl, int xr, unsigned short g);
この例では、x方向を主走査方向としている。図２に示すように、yは副走査方向の座標であり、走査線の位置を表す。xl及びxrは、それぞれ、線分の左端及び右端のx座標を示す。これらはint（整数）型であり、例えば３２ビット又は６４ビットなどのデータ幅の値である。gは、その線分の濃度値であり、例えばデータ型がunsigned charの場合は８ビット、unsigned shortの場合は１６ビットの値をとる。
【００３３】
なお、図２の例で分かるように、プリミティブ（区間データ）は、そのプリミティブの種類を表す「ＩＤ」を含み、更に必要に応じてそのプリミティブで用いるパラメータを含む。図２の例では、ＩＤは、Mark Lineであることを示す値である（便宜上「line」と表記する）。また、図２の例では、線分のy座標（走査線位置）と、左端及び右端のx座標と、濃度値gとがパラメータである。プリミティブの種類により、必要なパラメータの数や種類が異なる。
【００３４】
Mark Line プリミティブが入力された場合、マーキング処理部１２２は、走査線y上の点(xl, y)と点(xr,y)との間の各画素を、同一の濃度値gでマーキング（描画）する。なお、マーキングすなわち描画処理は、描画用メモリ上の当該区間データが規定する区間内の各画素に対応する各アドレスに対して当該区間データが規定する各画素の値を書き込む処理である。
【００３５】
なお、カラーの線分を描画する場合、基本色ごとにこのプリミティブが生成すればよい。各基本色のプリミティブには、その基本色についての濃度値gが指定される。このことは、以下に説明する他のプリミティブについても同様であり、言い換えれば、本実施形態の中間データ生成部１１４は、基本色ごとに分版された中間データ（区間データの集まり）を生成するということになる。
【００３６】
（２）Mark Gray Line （既定濃度線分描画）プリミティブ（図４）
このプリミティブも走査線に沿った線分の描画を指示する命令であるが、濃度値をパラメータとして持たない点が、前述のMark Line プリミティブと異なる。このプリミティブの形式は、以下の通りであり、図４に示すように図解できる。
line(int y, int xl, int xr);
パラメータy, xl, xrは前述のMark Line プリミティブの場合と同様である。このプリミティブで描画される線分の濃度値gは、後述するSet Grayプリミティブによりあらかじめ設定されている。
【００３７】
なお、上記のデータ形式の表示では、便宜上Mark Line プリミティブと同じ「line」という名前を用いたが、実際のプリミティブのパケット内のＩＤは、Mark Line プリミティブとは異なる値となる。
【００３８】
（３）Mark Gray Image （多階調画像描画）プリミティブ（図５）
このプリミティブは、ローカルストレージ１２６に格納された多階調の画像データを、走査線上の区間に描画する命令である。このプリミティブの形式は、以下の通りであり、図５に示すように図解できる。
image(int y, int xl, int xr, unsigned char *p);
image(int y, int xl, int xr, unsigned short *p);
ここで、パラメータy, xl, xrは前述のMark Line プリミティブの場合と同様である。パラメータpは、ローカルストレージ１２６内に格納された画像データへのポインタである。データ型がunsigned char *の場合は８ビット幅の濃度の画像データを指し示し、unsigned short *の場合は１６ビット幅の濃度の画像データを指し示す。
【００３９】
Mark Gray Image プリミティブが入力された場合、マーキング処理部１２２は、図６に例示するように、描画用メモリ１２３上の走査線y上の点(xl, y)と点(xr,y)との間の各画素のアドレスに対し、ローカルストレージ１２６内のアドレスpから始まる画像データを順に、例えば左から右へと書き込んでいく。
【００４０】
なお、このプリミティブで描画されるローカルストレージ１２６内の画像データは、次に説明するData Transferプリミティブを用いて、フロントエンド装置１１０からローカルストレージ１２６にあらかじめ格納されている。
【００４１】
（４）Data Transfer（データ転送）プリミティブ（図７）
このプリミティブは、再利用されるデータをバックエンド装置１２０のローカルストレージ１２６に転送するための命令である。このプリミティブの形式は、以下の通りであり、例えば図７に示すようなパケット構造を持つ。
data(void *p, int size);
ここで、パラメータpは、図８に例示するように、ローカルストレージ１２６上のデータ転送先のアドレスであり、sizeは転送するデータのサイズ（例えばバイト単位）である。図７に示すように、このプリミティブのパケットには、ＩＤ、パラメータp及びsizeの後に、転送対象のデータ（このデータのサイズがsizeパラメータに設定される）が続く。転送対象のデータは、画像データである場合もあれば、１つ又は複数の区間データである場合もある。
【００４２】
このプリミティブのパケット（パラメータの後に続くデータの量によっては複数のパケットに分かれる場合もある）を受け取ったマーキング処理部１２２は、そのプリミティブのパケットに含まれる転送対象のデータを、ローカルストレージ１２６内のそのプリミティブのパラメータpで示されるアドレスへと書き込む。
【００４３】
このプリミティブによりローカルストレージ１２６へ転送されたデータは、前述のMark Gray Imageプリミティブや、後述のいくつかのプリミティブの描画の際に再利用される。
【００４４】
（５）Mark Bitmap Image （二値画像描画）プリミティブ（図９）
このプリミティブは、ローカルストレージ１２６に格納された二値の画像データを、走査線上の区間に描画する命令である。このプリミティブの形式は、以下の通りであり、例えば図９に示すようなパケット構造を持つ。
image(int y, int xl, int xr, void *p, int bitpos);
ここで、パラメータy, xl, xr, pは前述のMark Gray Image プリミティブの場合と同様である。パラメータbitposは、Mark Gray Image プリミティブにはないパラメータであり、パラメータpが指し示すアドレスにあるワード又はバイトの中で、描画対象の二値画像が始まるビット位置を示す。多値画像の場合、画素値はワード又はバイトの単位で区切られるが、二値画像はビット単位なので、ワード又はバイトの途中から始まる場合もあり得るため、このパラメータが設けられている。
【００４５】
このプリミティブが入力された場合、マーキング処理部１２２は、描画用メモリ１２３上の走査線y上の点(xl, y)と点(xr,y)との間の各画素のアドレスに対し、ローカルストレージ１２６内のアドレスpのワード又はバイト内のbitpos番目のビットから始まる二値画像データの各ビット値を順に、例えば左から右へと書き込んでいく。
【００４６】
なお、このプリミティブで描画されるローカルストレージ１２６内の二値画像データは、Data Transferプリミティブを用いてローカルストレージ１２６にあらかじめ格納されている。
【００４７】
（６）Set Mask （マスク設定）プリミティブ
このプリミティブは、描画処理に用いるマスクをマーキング処理部１２２に設定する命令である。マスクは、他の画像を部分的に覆い隠す（マスクする）ために用いられるデータであり、二値画像と同じ１，０の二値のフォーマットで表現される。マーキング処理部１２２は、マスクの画素値（ビット）が１の場合には画像の当該画素の値を描画し、０の場合は何もしない。
【００４８】
このプリミティブによりマスクが設定された状態で、例えばMark Lineプリミティブにより線分が描画される場合、マスクの画素値が１の画素についてはその線分の濃度値が書き込まれ、マスクの画素値が０の画素についてはその線分の濃度値は書き込まれない。したがって、マスクが設定される前に、背景の画像が描画用メモリ１２３上に描画されている場合、マスクの画素値が０の画素は、その背景の画像の画素値が残ることになる。なお、Mark Gray ImageやMark Bitmap Imageなどといった他の描画プリミティブに対しても、マスクは同様に作用する。
【００４９】
このプリミティブの形式は、以下の通りであり、例えば図１０に示すようなパケット構造を持つ。
mask(int xl, void *p, int bitpos);
ここで、パラメータxlは、マスクを使用するときの左端の位置を示す。また、パラメータpは、ローカルストレージ１２６上のマスクデータへのポインタであり、パラメータbitposは、そのポインタが示すワード又はバイト内で、マスクが開始するビット位置を示す。
【００５０】
なお、パラメータpの値「０」を、設定されたマスクを解除するための特別な値として用いてもよい。この場合、マーキング処理部１２２は、pが０に設定されたSet Maskプリミティブを受け取ると、設定されていたマスクを解除する。
【００５１】
なお、マスクとして利用する二値画像は、あらかじめData Transferプリミティブを用いてローカルストレージ１２６に格納しておく。
【００５２】
（７）Duplicate Mark（複製描画）プリミティブ
このプリミティブは、当該プリミティブの１つ前の描画(Mark)プリミティブ（直前プリミティブと呼ぶ）が描画した区間の画像を、直前プリミティブが描画した走査線の次の走査線における同じ区間に複製する命令である。例えば、走査線y上の、xlからxrまでの区間の描画を指示する第１のプリミティブの次に、Duplicate Markプリミティブが続く場合、マーキング処理部１２２は、走査線y+1のxlからxrまでの区間に、第１のプリミティブにより描画された区間のデータを複製する。
【００５３】
このプリミティブの形式は以下の通りである。
duplicate(void);
このように、このプリミティブは、パラメータを持たない。
【００５４】
なお、このプリミティブの直前の描画(Mark)プリミティブが、Duplicate Markプリミティブ又は後述するWindow Markプリミティブである場合、それら直前のプリミティブにより描画された画像を複製する。
【００５５】
（８) Window Mark（ウインドウ描画）プリミティブ
このプリミティブも、Duplicate Markプリミティブと同様１つ前の描画プリミティブが描画した走査線の画像を次の走査線に複製するものであるが、複製する区間の幅を前の描画プリミティブの区間から変更する点がDuplicate Markプリミティブとは異なる。このプリミティブの形式は、以下の通りであり、例えば図１１に示すようなパケット構造を持つ。
window(int xl, int xr);
ここで、xl, xr はそれぞれ区間の左端及び右端の位置を示す。
【００５６】
なお、このプリミティブの直前の描画プリミティブが、Duplicate Markプリミティブ又はWindow Markプリミティブである場合、それら直前のプリミティブにより描画された画像を、区間幅を変えて複製する。
【００５７】
また、直前の描画プリミティブが、Mark Gray ImageやMark Bitmap Image、Set Maskなどといった、ローカルストレージ１２６内に格納されている画像データを参照する命令である場合（あるいはそのような命令に続くDuplicate MarkやWindow Markなどの複製プリミティブである場合）、マーキング処理部１２２は以下のような処理を行う。すなわち、図１２に示すように、マーキング処理部１２２は、直前のプリミティブが描画した区間の左端位置xl0と、当該Window Markプリミティブが指定する左端位置xlとの差分(xl-xl0）を計算する。そして、ローカルストレージ１２６上で直前のプリミティブが参照していたアドレス（ポインタp0）から、その差分の分だけオフセットしたアドレス乃至ビット位置からの画像乃至マスクのデータを参照して描画処理を行う。つまり、このWindow Markプリミティブは、直前のプリミティブの参照していた画像又はマスクと同じ画像又はマスクを、区間のずれの分だけ範囲をずらして使用する。なお、xl0 > xlの場合（直前のプリミティブの区間の左端の方が当該Window Markプリミティブの区間の左端よりも左側にある場合）、当該Window Markプリミティブは、直前のプリミティブが参照していたアドレスp0よりも前の画像又はマスクのデータを参照することになる。
【００５８】
Mark Gray Image等の画像やマスクを描画するプリミティブの後にWindow Markプリミティブを続けるのは、例えば画像やマスクを拡大することで走査線の数が増える場合などである。すなわち、その増える走査線の画像が、直前の走査線の画像又はマスクの複製により賄われるのである。
【００５９】
（９）Set Gray Level （濃度値設定）プリミティブ
このプリミティブは、Mark Gray Lineプリミティブのような濃度値の指定のないプリミティブの描画に用いる濃度値をマーキング処理部１２２に設定するための命令であり、次のデータ形式をとる。
setgray(unsigned char g);  又は、
setgray(unsigned short g);
ここで、gは、その線分の濃度値であり、例えばデータ型がunsigned charの場合は８ビット、unsigned shortの場合は１６ビットの値をとる。
【００６０】
このプリミティブを受信したマーキング処理部１２２は、そのプリミティブ中のパラメータgの値を記憶し、Mark Gray Lineプリミティブの描画の際などに参照する。
【００６１】
（１０）Set Alpha（透過率設定）プリミティブ
このプリミティブは、半透明処理の透過率を設定する命令である。すなわち、このプリミティブは、あるオブジェクトを既に描画済の下地の上に重畳して描画する場合に、下地の画素値を描画結果にどれだけ反映させるか（すなわちどれだけ透過させるか）を規定するパラメータを、マーキング処理部１２２に設定するのに用いる。このプリミティブは、次のデータ形式をとる。
setalpha(unsigned char ab, unsigned char as, unsigned char ar);
マーキング処理部１２２は、このプリミティブにより、透過率（寄与度）を表すパラメータab, as, ar が設定されている場合に、ある描画プリミティブを実行すると、その実行結果としての濃度値grを例えば次式で計算する。
gr = (ar/255) * ((ab/255) * gb + (as/255) * gs)    ・・・（１）
ここで、gsは当該描画プリミティブが描画しようとする濃度値（すなわち当該描画プリミティブが規定する濃度）であり、gbは当該描画プリミティブが描画しようとする画素に既に書き込まれている濃度値（すなわち下地の画素値）である。ab=0, as=255とすれば、下地画像を今回描画する画像で完全に覆ってしまう、通常の不透明描画を実現できる。
【００６２】
（１１）Set Alpha Mask（透過率マスク設定）プリミティブ
このプリミティブも、Set Alphaプリミティブと同様、半透明処理の透過率を設定するものであるが、Set Alphaプリミティブが透過率を１組の固定パラメータの組として設定するのに対し、このプリミティブはマスクを用いて画素単位で透過率パラメータを設定する。このプリミティブは、次に示すデータ形式をとり、そのパケット構造は図１３に示すようなものとなる。
setalpha(int xl, unsigned char *pab, unsigned char *pas, unsigned char *par);
ここで、パラメータxlは、図１４に示すように、透過率マスクを使用するときの左端の位置を示す。pab, pas, parは、上述の式（１）で用いた下地の寄与度ab, 当該プリミティブにより重畳される画像の寄与度as, 及び重畳結果の最終画像に対する寄与度arをそれぞれ画素ごとに規定するマスクデータへのポインタである。ここで参照されるマスクデータは、Data Transferプリミティブによりあらかじめローカルストレージ１２６に書き込まれている。
【００６３】
マーキング処理部１２２は、このプリミティブにより透過率（寄与度）を表すマスクデータを指し示すポインタpab, pas, par が設定されている場合において、ある描画プリミティブを実行する場合、次のような処理を行う。すなわち、その描画プリミティブにより描画する区間の左端から順に、画素ごとに、その画素に適用する寄与度ab, as, arの値を、ポインタpab, pas, parが指し示すローカルストレージ１２６上のアドレスから順に読み出し、上記式（１）に適用することで、最終的な画素の濃度値を計算する。
【００６４】
（１２）Set Halftone （ハーフトーン設定）プリミティブ
ハーフトーン処理部１２４で用いるハーフトーンの設定のためのプリミティブであり、次に示すデータ形式をとる。
sethalftone(int halftoneID);
パラメータhalftoneIDは、ハーフトーンの種類を示す識別情報である。
【００６５】
このプリミティブを受け取ったマーキング処理部１２２は、ハーフトーン処理部１２４に対してそのhalftoneIDを設定する。そして、そのhalftoneIDが設定されている間は、ハーフトーン処理部１２４は、マーキング処理部１２２から供給される描画結果の画像データに対してそのhalftoneIDに対応するハーフトーンを適用する。
【００６６】
（１３）Execute（プリミティブ実行）プリミティブ
このプリミティブは、ローカルストレージ１２６に格納されているプリミティブの実行を指示する命令である。すなわち、Data Transferプリミティブによりプリミティブの集まり（プリミティブセットと呼ぶ）がローカルストレージ１２６にあらかじめ転送されている場合に、このExecuteプリミティブによりそのプリミティブセットの実行をマーキング処理部１２２に指示することができる。Executeプリミティブは、文字のフォントなど、印刷データ内で繰り返し使用されるオブジェクトについてのデータ転送量を低減するのに資する。すなわち、繰り返し使用されるオブジェクトを表すプリミティブセットのデータをあらかじめローカルストレージ１２６に格納しておけば、その後そのオブジェクトを描画する場合には、そのプリミティブセットのデータそのものの代わりに、格納したデータを呼び出して実行するExecuteプリミティブをフロントエンド装置１１０からバックエンド装置１２０に対して送ればよい。
【００６７】
このプリミティブは次の形式をとり、そのパケット構造は図１５に示すようなものとなる。
execute(int y, int x, void *p, int size);
ここで、パラメータy, xは、図１６に示すように、実行するプリミティブセットを描画する基準位置の座標を示す。また、パラメータpは、実行対象のプリミティブセットが格納されているローカルストレージ１２６のアドレスを指し示す。また、パラメータsizeは、その実行対象のプリミティブセットのうち、実行する部分のサイズ（例えばバイト数）を表す。
【００６８】
このプリミティブを受け取ったマーキング処理部１２２は、パラメータpで指し示されるアドレスから始まるプリミティブセットのデータを参照し、その中の先頭のプリミティブを、パラメータy, xが示す基準位置から描画し、その後に続く各プリミティブを順に描画していく。そして、p + sizeのアドレスにあるプリミティブまで実行する。p + sizeより後のアドレスにあるプリミティブは実行しない。
【００６９】
言い換えれば、このプリミティブは、ローカルストレージ１２６内のアドレスpを先頭とするsizeの量のプリミティブ群を、Y方向及びX方向にそれぞれy及びxだけオフセットした位置に移動させて描画する命令と言える。
【００７０】
なお、Executeプリミティブを含んだプリミティブ群を、別のExecuteプリミティブにより呼び出して実行できるようにしてもよい。このようにExecuteプリミティブが入れ子構造となる場合、外側のExecuteプリミティブのオフセットを示すパラメータy, xは、内側のExecuteプリミティブの実行前にセーブし、そのExecuteプリミティブの実行終了後にリストアすればよい。
【００７１】
次に、このようなプリミティブにより具体的な画像を表現した例を説明する。
【００７２】
図１７は、紫色で塗りつぶされた台形に、黒い文字Ｔを重畳した画像３００と、それを表現する各基本色のプリミティブデータ４００Ｃ、４００Ｍ、４００Ｙ、４００Ｋを示す。この例は、基本色としてＣ（シアン：Cyan）、Ｍ（マゼンタ：Magenta）、Ｙ（イエロー：Yellow）、Ｋ（ブラック：Black）を用いる例である。
【００７３】
図示の各プリミティブデータ４００Ｃ、４００Ｍ、４００Ｙ、４００Ｋの中のData[1]〜Data[6]が、紫色で塗りつぶされた台形を表す。この例では、まず先頭のプリミティブData[1]で紫色の線分を描画し、以降の各走査線については、Duplicate及び WindowプリミティブによりData[1]の描画結果をそのまま又は区間を変えて複製する。また、Data[7]〜Data[11]は、黒い文字Ｔを表す。
【００７４】
図１８は、オフセット位置(y2, x2)から始まる黒い文字Ｔの画像３１０と、これを表す各基本色のプリミティブデータ４１０Ｃ、４１０Ｍ、４１０Ｙ、４１０Ｋを示す。
【００７５】
図１９は、紫色で塗りつぶされた台形に黒い文字Ｔが重畳すると共に、さらに右側に同じ形状及びサイズの黒い文字Ｔが配置された画像３２０と、これを表す各基本色のプリミティブデータ４２０Ｃ、４２０Ｍ、４２０Ｙ、４２０Ｋを示す。
【００７６】
図示のプリミティブデータ４２０Ｃ、４２０Ｍ、４２０Ｙ、４２０Ｋでは、まず繰り返し描画される黒い文字Ｔを表すプリミティブセットExec[1]が定義されている。この定義が、上述のData Transferプリミティブにより、バックエンド装置１２０のローカルストレージ１２６に転送される。
【００７７】
そして、その定義の後には、まずハーフトーンをグラフィック型に設定するプリミティブData[1]が続き、この後に、紫色の台形を表すプリミティブData[2]〜Data[7]が続く。そして、その次に、ハーフトーンをテキスト型に設定するプリミティブData[8]が続き、その次に紫色の台形に重なる黒い文字Ｔの描画を指示するプリミティブData[9]と、その右側に位置する同じ文字Ｔの描画を指示するプリミティブData[10]とが続く。プリミティブData[9]及びData[10]は、ローカルストレージ１２６内に格納されたデータExec[1]を呼び出して実行するExecute プリミティブである。
【００７８】
以上に説明した実施形態では、プリミティブを走査線順にソートして同一走査線上の互いに重なるプリミティブを分割するという処理をしないので、フロントエンド装置１１０とバックエンド装置１２０の間を伝送される中間データのデータ量が想定より増大することはない。また、フロントエンド装置１１０とバックエンド装置１２０の間を伝送される中間データは、区間データ（プリミティブ）の形式なので、ほとんどの場合、画像データそのものよりもデータ量が少なくなる。また、繰り返し利用される画像データやプリミティブセットを、Data Transferプリミティブにより、フロントエンド装置１１０からバックエンド装置１２０のローカルストレージ１２６へとあらかじめ転送しておき、そのローカルストレージ１２６内のデータを後で繰り返し再利用する構成をとったことで、フロントエンド装置１１０とバックエンド装置１２０との間のデータ転送量が更に低減される。
【００７９】
例えば、文字オブジェクトは、一つの印刷データ内で、同一フォント、同一サイズ、同一文字を繰り返し利用する場合が多い。このため、毎回、区間データを転送するよりも、Data Transferプリミティブにより、文字オブジェクトをあらかじめ転送しておき、そのデータを再利用することで、大幅にデータ転送量を低減することができる。
【００８０】
なお、ＰｏｓｔＳｃｒｉｐｔ（登録商標）に用意されているフォームなどといった特定の種類のオブジェクトは、繰り返し利用されることを前提としている。そこで、中間データ生成部１１４は、印刷データの解釈結果からそのような特定種類のオブジェクトの内容を設定するコマンドを見出したときに、Data Transferプリミティブを用いて、その設定コマンドにより規定されるそのオブジェクトを表す画像データ又はプリミティブセットをバックエンド装置１２０のローカルストレージ１２６に転送すればよい。また、設定したオブジェクトを描画するコマンドを見出したときに、そのオブジェクトを描画するプリミティブ(Mark Gray ImageやExecuteなど)を生成してバックエンド装置１２０に送ればよい。
【００８１】
次に、図２０を参照して変形例を説明する。この変形例の印刷システム１００は、フロントエンド装置１１０とバックエンド装置１２０とをそれぞれ複数備える。バックエンド装置１２０は、プリンタ１３０で使用される基本色の数だけ設けられる。フロントエンド装置１１０の数には特に制約条件はない。
【００８２】
それら複数のフロントエンド装置１１０と、各基準色用のバックエンド装置１２０Ｃ、１２０Ｍ、１２０Ｙ、１２０Ｋとは、共通の高速ＬＡＮ１４０（例えば１０ギガビットＬＡＮなど）に接続されている。
【００８３】
この変形例では、複数のフロントエンド装置１１０がページ単位の並列処理を行い、複数のバックエンド装置１２０が基本色ごとの並列処理を行う。
【００８４】
ページ単位の並列処理のために、印刷システム１００は、ページ単位の振り分けを行う振り分け制御部１５０を備える。振り分け制御部１５０は、ＬＡＮ２１０を介してクライアント装置２００からページ記述言語の印刷データを受け取ると、まずその印刷データを各フロントエンド装置１１０にそれぞれ転送する。そして、その印刷データの先頭ページから順に、各ページの処理をそれぞれ別々のフロントエンド装置１１０に振り分ける。この振り分けは、あらかじめ定められた固定的な順序で各フロントエンド装置１１０にページを振り分ける方式であってもよい。また、振り分けられたページの処理が終了するごとにフロントエンド装置１１０が振り分け制御部１５０にその旨を通知し、その通知に応じて振り分け制御部１５０が未処理の先頭のページを通知元のフロントエンド装置１１０に振り分けるという制御でもよい。
【００８５】
振り分け制御部１５０は、複数のフロントエンド装置１１０のいずれかに内蔵（例えばプログラムとしてインストール）されていてもよいし、それら複数のフロントエンド装置１１０やバックエンド装置１２０とは別のコンピュータ装置上に構築されていてもよい。
【００８６】
各フロントエンド装置１１０のインタプリタ１１２は、振り分け制御部１５０から受け取ったページ記述言語の印刷データを先頭から順に解釈していく。この解釈処理は、自装置に振り分けられたページのみならず、先頭から全ページについて行う。これは、ページ非独立、すなわち前のページについてのコマンドによるインタプリタ１１２の内部状態の変化が後のページの解釈に影響を与えるタイプ、のページ記述言語を想定したものである。中間データ生成部１１４は、インタプリタ１１２の解釈結果のうち、振り分け制御部１５０により自装置に振り分けられたページについての解釈結果（及びそのときのインタプリタ１１２の内部状態）を用いて、そのページ内の各オブジェクトについての区間データ（プリミティブ）からなる中間データを生成する。なお、中間データは、ページ単位で生成してもよいし、あらかじめ定められた走査線数のバンド単位で生成してもよい。
【００８７】
ページ記述言語の解釈も中間データへの変換も、主としてソフトウエア処理により実現される場合が多い。この変形例では、各フロントエンド装置１１０は、中間データの変換については自装置に割り当てられたページについてのみしか行わないので、その分だけ並列化のメリットが出る。
【００８８】
なお、印刷データがページ独立のページ記述言語で記述されている場合には、振り分け制御部１５０は、その印刷データをページ単位に分割し、各フロントエンド装置１１０に振り分けてもよい。
【００８９】
また、印刷データがページ非独立のページ記述言語で記述されている場合に、振り分け制御部１５０がその印刷データを解釈してページ独立のページ記述言語のデータに変換し、ページ単位に分割して各フロントエンド装置１１０に振り分けてもよい。
【００９０】
いずれにしても、各フロントエンド装置１１０は、振り分け制御部１５０から振り分けられたページについての中間データを生成し、ＬＡＮ１４０を介して各バックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋに転送する。
【００９１】
ここで、図２１に例示するように、各フロントエンド装置１１０ａ〜ｄが、担当したページの各基本色の中間データ１Ｃ、１Ｍ、１Ｙ、１Ｋを、それぞれ当該基本色を担当するバックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋに当てて送信するようにしてもよい。この例では、各バックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋは、それぞれ自装置が担当する基本色の中間データのみを受け取り、これらを順に処理して各ページの当該基本色の画像データ（ラスターデータ）を生成する。各バックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋが生成した各基本色の画像データは、それぞれ、プリンタ１３０が備える各基本色の画像データチャンネルに送られる。プリンタ１３０は、それら各基本色の画像データチャンネルから供給される画像データに基づき、各基本色の版を用紙に印刷していくことで、フルカラーの画像を印刷する。
【００９２】
なお、図２１の例の代わりに、各バックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋが、フロントエンド装置１１０から発せられた全ての基本色の中間データを受信し、その中から自装置の担当する基本色の中間データのみを抽出して処理するようにしてもよい。
【００９３】
また、図では省略したが、各フロントエンド装置１１０の中間データ生成部１１４の出力、または各バックエンド装置１２０の入力、のいずれかにバッファを設け、各フロントエンド装置１１０でのページの処理に要する時間の差を吸収するようにしてもよい。各フロントエンド装置１１０が早い者勝ちで振り分け制御部１５０からページを振り分けてもらう方式の場合、各ページの中間データの完成の順序が前後する場合があるが、バッファを設けておくことで、バックエンド装置１２０は、そのような順序の前後の影響を吸収し、ページ順に処理を進める。
【００９４】
この変形例では、複数のフロントエンド装置１１０によるページ単位での並列処理と、複数のバックエンド装置１２０による基本色単位の並列とを組み合わせたことにより、効率的な処理が実現される。例えば、各バックエンド装置１２０Ｃ、Ｍ、Ｙ、Ｋは、それぞれ自装置が担当する色の全てのページのデータを処理するので、ローカルストレージ１２６にキャッシュ（格納）された画像データやプリミティブセットが有効に活用される。仮に、バックエンド装置１２０もページ単位で並列化したとすると、第１のバックエンド装置１２０で描画したあるページの画像データが、第２のバックエンド装置１２０で描画されるページにも含まれている場合、第１のバックエンド装置１２０にキャッシュした画像データは第２のバックエンド装置１２０で利用できないので、第２のバックエンド装置１２０にも同じ画像データをキャッシュする必要が出てくる。
【００９５】
また、この変形例では、カラー画像オブジェクトは、フロントエンド装置１１０で分版されることになり、各バックエンド装置に転送すべき画像データは担当する色成分のみで良い。したがって、バックエンド装置もページ単位で並列化するのと比べ、転送データ量は1/4で済むことになる。また、例えば黒い文字の印刷データの場合、黒い文字オブジェクトは、それを担当するバックエンド装置１２０Ｋのみに転送することになり、他のバックエンド装置に転送する必要は無く、効率良いデータ転送となる。
【００９６】
以上に例示したフロントエンド装置１１０とバックエンド装置１２０は、例えば、汎用のコンピュータに上述の各機能モジュールの処理を表すプログラムを実行させることにより実現してもよい。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に格納され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部(例えばハーフトーン処理やガンマ補正処理などの画像処理、又はデータの圧縮・伸長、などを担う機能モジュール）を、専用ＬＳＩ(Large Scale Integration)、ＡＳＩＣ（Application Specific Integrated Circuit、特定用途向け集積回路）又はＦＰＧＡ（Field Programmable Gate Array）、ＤＲＰ(Dynamic Reconfiguration Processor)等のハードウエア回路として構成してもよい。
【符号の説明】
【００９７】
１００  印刷システム、１１０  フロントエンド装置、１１２  インタプリタ、１１４  中間データ生成部、１２０  バックエンド装置、１２２  マーキング処理部、１２４  ハーフトーン処理部、１２６  ローカルストレージ、１３０  プリンタ、２００  クライアント装置。
【図１】
0005446916.tif 000002
【図２】
0005446916.tif 000003
【図３】
0005446916.tif 000004
【図４】
0005446916.tif 000005
【図５】
0005446916.tif 000006
【図６】
0005446916.tif 000007
【図７】
0005446916.tif 000008
【図８】
0005446916.tif 000009
【図９】
0005446916.tif 000010
【図１０】
0005446916.tif 000011
【図１１】
0005446916.tif 000012
【図１２】
0005446916.tif 000013
【図１３】
0005446916.tif 000014
【図１４】
0005446916.tif 000015
【図１５】
0005446916.tif 000016
【図１６】
0005446916.tif 000017
【図１７】
0005446916.tif 000018
【図１８】
0005446916.tif 000019
【図１９】
0005446916.tif 000020
【図２０】
0005446916.tif 000021
【図２１】
0005446916.tif 000022