説明

画像処理システム

【課題】並列動作する複数の画像処理装置が共通要素のためのキャッシュメモリ等の記憶装置をそれぞれ個別に持つ構成よりも、キャッシュメモリ等の記憶装置の利用効率を向上させる。
【解決手段】印刷システム100では、PDLの印刷データをラスター画像データに変換する処理のための装置を、前段のフロントエンド装置110と後段のバックエンド装置120との2つの段階の装置に分けられている。そして、前段は複数のフロントエンド装置110による並列構成とするとともに、後段は1つのバックエンド装置120内に搭載された複数の処理回路124による並列構成としている。複数の処理回路124は、同じバックエンド装置120内にあるキャッシュメモリ123を共用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システムに関する。
【背景技術】
【0002】
印刷出力の高速化のため、複数のRIP(Raster Image Processor)により印刷データを並列処理する技術が知られている。なお、RIPとは、PostScript(登録商標)等のページ記述言語(以下、PDLという。PDLは、Page Description Languageの略)で記述されたデータを印刷や表示が可能なラスタデータに展開する装置のことである。
【0003】
また、画像処理システムの中には、複数のページ画像に共通の共通要素(例えば定型フォームなど)を最初に受け取ったときに展開してキャッシュメモリに記憶しておき、次に同じ定型情報を用いるページを処理する場合に、その記憶した共通要素の展開結果を再利用するものが知られている。
【0004】
特許文献1には、ページ単位の文書データを格納する格納手段と、該文書格納手段により格納された文書データから2つ以上の文書データを指定する文書指定手段と、該文書指定手段により指定された2つ以上の文書データを、1ページ分の画像上に重ねて出力する画像合成手段と、を有する画像形成装置が開示されている。
【0005】
特許文献2には、画像メモリを備え、該画像メモリにイメージ情報、図形情報、文字情報の内1又は複数の情報を記憶させる機能を持つ情報出力装置に於いて、少なくともオーバレイ情報を専用に格納するメモリと、前記画像メモリの記憶された情報とを読みだして合成する手段を設け、該合成手段により、該画像メモリ上に記憶された情報にオーバレイ情報を重畳させて出力するオーバレイ方式が開示されている。
【0006】
特許文献3に開示される装置は、共通の印刷データであるフォーム情報データを予め複数個記憶装置に格納しておき、上位装置から送信される可変の一般印刷データを、前記記憶装置に格納されている複数個のフォーム情報データの1つと合成して用紙に印刷するフォームオーバレイ機能を有する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−125188号公報
【特許文献2】実開昭60−042791号公報
【特許文献3】特開平07−251543号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、PDLのデータを印刷装置で使用可能な画像データに変換するRIP等の画像処理装置を複数用い、個々の装置に対してそれぞれ別々のページを割り当てて並列処理する方式では、共通要素を保持するキャッシュメモリ等の記憶装置を個々の画像処理装置にそれぞれ別々に設けることとなる。この場合、同じ共通要素がそれぞれ別々の画像処理装置の記憶装置に重複して保持される場合も生じる。
【0009】
本発明では、並列動作する複数の画像処理装置が共通要素のためのキャッシュメモリ等の記憶装置をそれぞれ個別に持つ構成よりも、キャッシュメモリ等の記憶装置の利用効率を向上させることを目的とする。
【課題を解決するための手段】
【0010】
請求項1に係る画像処理システムは、ページ記述言語で記述された文書データのうちの割り当てられたページのデータを解釈して当該ページの中間データを生成する複数の中間データ生成装置と、前記複数の中間データ生成装置が生成した前記中間データのうちの割り当てられた部分の中間データを取得し、取得した前記中間データを描画することにより当該割り当てられた部分の画素ごとの情報を含む描画データを生成する1以上の描画データ生成装置であって、取得した前記中間データ内の共通要素の中間データ、又は当該中間データから生成した前記共通要素の描画データ、を記憶する記憶装置を有し、前記割り当てられた部分内の前記共通要素の中間データ又は描画データが前記記憶装置内にあれば、前記記憶装置内の当該共通要素の中間データ又は描画データを用いて当該割り当てられた部分の描画データを生成する、1以上の描画データ生成装置と、を備え、前記描画データ生成装置の数は、前記中間データ生成装置の数よりも少ない、ことを特徴とする画像処理システムである。
【0011】
請求項2に係る発明は、前記1以上の描画データ生成装置のうち少なくとも1つは、前記中間データを描画することによりページの描画データを生成する複数の描画回路を備え、それら複数の描画回路が前記記憶装置に記憶された前記共通要素の中間データ又は描画データを共用する、ことを特徴とする請求項1に記載の画像処理システムである。
【0012】
請求項3に係る発明は、前記複数の中間データ生成装置のそれぞれは、共通要素については、当該共通要素を含むページが割り当てられた中間データ生成装置のうち予め設定された条件に従って決定される1つの中間データ生成装置が当該共通要素の中間データを代表して生成する、ことを特徴とする請求項1又は2に記載の画像処理システムである。
【0013】
請求項4に係る発明は、前記中間データは、さらに、前記共通要素と他の要素との間の画像内での上下関係を表す情報を含み、前記描画データ生成装置は、前記中間データに含まれる前記上下関係を表す情報にさらに従って前記描画データを生成する処理を行う、ことを特徴とする請求項1〜3のいずれか1項に記載の画像処理システムである。
【発明の効果】
【0014】
請求項1に係る発明によれば、並列動作する複数の画像処理装置が共通要素のためのキャッシュメモリ等の記憶装置をそれぞれ個別に持つ構成よりも、キャッシュメモリ等の記憶装置の利用効率を向上させることができる。
【0015】
請求項2に係る発明によれば、バックエンド装置が単一の描画回路しか持たない場合よりも、バックエンド装置の処理速度を向上させることができる。
【0016】
請求項3に係る発明によれば、すべての中間データ生成装置が同じ共通要素の中間データを重複して生成する構成よりも、中間データ生成装置からバックエンド装置へ送信するデータの量を削減することができる。
【0017】
請求項4に係る発明によれば、共通要素を含む文書データ内の構成要素間の上下関係を設定でき、その上下関係に従った描画データを生成することができる。
【図面の簡単な説明】
【0018】
【図1】印刷システムの一実施形態を示す機能ブロック図である。
【図2】システム全体の処理手順の例を示すフローチャートである。
【図3】フロントエンド装置とバックエンド装置とによるデータ処理の流れの一例を説明するための図である。
【図4】フロントエンド装置の処理手順の例を示すフローチャートである。
【図5】バックエンド装置の処理手順の例を示すフローチャートである。
【図6】フロントエンド装置とバックエンド装置とによるデータ処理の流れの別の例を説明するための図である。
【図7】フロントエンド装置とバックエンド装置とによるデータ処理の流れの更に別の例を説明するための図である。
【図8】変形例におけるフロントエンド装置による中間データ生成の例を説明するための図である。
【図9】変形例におけるバックエンド装置による中間データの処理の例を説明するための図である。
【図10】フロントエンド装置とバックエンド装置とによるデータ処理の流れの更に別の例を説明するための図である。
【発明を実施するための形態】
【0019】
以下、図面を参照して本発明の実施形態について説明する。
【0020】
図1に示すように、本実施形態の印刷システム100は、複数のフロントエンド装置110、1つのバックエンド装置120、印刷エンジン130、及び振り分け制御部150を備える。
【0021】
振り分け制御部150は、ページ単位の並列処理のために、複数のフロントエンド装置110に対して担当ページの振り分けを行う。より詳しくは、振り分け制御部150は、LAN(ローカルエリアネットワーク)210を介してクライアント装置200からページ記述言語(PDL)の印刷データを受け取ると、まずその印刷データを各フロントエンド装置110にそれぞれ転送する。そして、その印刷データの先頭ページから順に、各ページの処理をそれぞれ別々のフロントエンド装置110に振り分ける。この振り分けは、あらかじめ定められた固定的な順序で各フロントエンド装置110にページを振り分ける方式であってもよい。また、振り分けられたページの処理が終了するごとにフロントエンド装置110が振り分け制御部150にその旨を通知し、その通知に応じて振り分け制御部150が未処理の先頭のページを通知元のフロントエンド装置110に振り分けるという制御でもよい。なお、これらはあくまで一例に過ぎず、他の振り分け方式を用いてもよい。
【0022】
振り分け制御部150は、複数のフロントエンド装置110のいずれかに内蔵(例えばプログラムとしてインストール)されていてもよいし、それら複数のフロントエンド装置110やバックエンド装置120とは別のコンピュータ装置上に構築されていてもよい。
【0023】
フロントエンド装置110は、振り分け制御部150からPDLで記述された印刷データを含んだ印刷要求を受信し、その印刷データを中間データに変換する装置である。フロントエンド装置110は、インタプリタ112と中間データ生成部114とを備える。インタプリタ112は、PDLの印刷データを先頭から順に解釈していく。中間データ生成部114は、インタプリタ112から順に出力される印刷データの解釈結果から、中間データを生成する。中間データは、ページ単位で生成してもよいし、あらかじめ定められた走査線数のバンド単位で生成してもよい。中間データは、例えばいわゆるディスプレイリストなどである。また、中間データは、ページの画像を構成する画像要素である各オブジェクト(例えば、文字フォント、グラフィックス図形、画像データ)を、ラスター走査の走査線ごとに区切った区間データであってもよい。この区間データは、オブジェクトが1つの走査線上に占める区間を表すデータであり、例えばその区間の両端の座標の組で表され、その区間内の各画素の画素値を規定する情報を含んでいてもよい。画素値は、例えばC,M,Y,Kなどの印刷エンジン130が用いる基本色ごとの濃度値(グレーレベル)である。中間データは、ディスプレイリストや区間データ以外の、PDLとビットマップ画像(ラスター画像)との中間程度のデータ量のいずれのデータ形式であってもよい。なお、以下でいう中間データは、そのような個々のディスプレイリストや区間データを指す場合もあるし、ページ又はそれを分割したバンドなどといった描画単位を表す複数のディスプレイリストや区間データの集まりを指す場合もある。
【0024】
より詳しくは、各フロントエンド装置110のインタプリタ112は、振り分け制御部150から受け取ったページ記述言語の印刷データを先頭から順に解釈していく。この解釈処理は、自装置に振り分けられたページのみならず、先頭から全ページについて行う。これは、ページ非独立、すなわち前のページについてのコマンドによるインタプリタ112の内部状態の変化が後のページの解釈に影響を与えるタイプ、のページ記述言語を想定したものである。中間データ生成部114は、インタプリタ112の解釈結果のうち、振り分け制御部150により自装置に振り分けられたページについての解釈結果(及びそのときのインタプリタ112の内部状態)を用いて、そのページ内の各オブジェクトについてのプリミティブデータ(ディスプレイリストを構成する個々のコマンド、又は区間データなど)からなる中間データを生成する。なお、中間データは、ページ単位で生成してもよいし、あらかじめ定められた走査線数のバンド単位で生成してもよい。
【0025】
ページ記述言語の解釈も中間データへの変換も、主としてソフトウエア処理により実現される場合が多い。この例では、各フロントエンド装置110は、中間データの変換については自装置に割り当てられたページについてのみしか行わないので、その分だけ並列化のメリットが出る。
【0026】
なお、印刷データがページ独立のページ記述言語で記述されている場合には、振り分け制御部150は、その印刷データをページ単位に分割し、各フロントエンド装置110に振り分けてもよい。
【0027】
また、印刷データがページ非独立のページ記述言語で記述されている場合に、振り分け制御部150がその印刷データを解釈してページ独立のページ記述言語のデータに変換し、ページ単位に分割して各フロントエンド装置110に振り分けてもよい。
【0028】
いずれにしても、各フロントエンド装置110は、振り分け制御部150から振り分けられたページについての中間データを生成し、LAN又は通信ケーブルなどの伝送路140を介して、単一のバックエンド装置120に転送する。したがって、図1の例では、複数のフロントエンド装置110で並列して生成された複数のページの中間データが、1つのバックエンド装置120に集約されることになる。
【0029】
バックエンド装置120は、フロントエンド装置110が生成した中間データを、印刷エンジン130が取扱可能なラスター走査可能な画像データ(ラスター画像又はビットマップ画像など)へと変換し、その画像データを印刷エンジン130に供給する。一例として、バックエンド装置120は、分配部121、キャッシュメモリ123、及び複数の処理回路124を備える。分配部121は、複数のフロントエンド装置110から入力されてくる各ページの中間データを、複数の処理回路124に分配する。この分配は、例えばページ単位などのような、あらかじめ定められた単位ごとに行う。この分配の単位は、ページであってもよいし、ページをあらかじめ定めたライン数ずつ分けたバンドであってもよい。また、ページ又はバンドをそれぞれ印刷エンジン130の基本色(例えばY(イエロー)、M(マゼンタ)、C(シアン)、K(ブラック)など)ごとに分版したものを、分配の単位としてもよい。以下では、ページ単位で分配する場合を代表例として説明する。
このような分配により、複数の処理回路124が、並列的に、それぞれ分配された部分の中間データを処理する。処理回路124は、マーキング処理部125、オーバレイ処理部126及びハーフトーン処理部127を備える。マーキング処理部125は、中間データを処理して、ページバッファ又はバンドバッファなどの描画用メモリ上に画像データを形成する。オーバレイ処理部126は、印刷データ内の複数の箇所(例えば複数のページ)で共通して使用される共通要素の画像データに、共通要素以外の他の要素からなる画像データをオーバレイ又は合成する処理を実行する。共通要素は、複数のページにおいて共通のオブジェクト(図形、図表、文字、画像など)を含む場合がある。共通要素は、例えば、文書の書式を定める枠線、文書を作成した企業や団体を表す印(ロゴマークなど)、又は文書の種類や機密レベルなどを表す文字列(例えば、「重要」,「社外秘」,「機密」などの文字列)などのオブジェクトである。これらのオブジェクトは、文書中の複数のページに共通して現れることがある。また、PostScript(登録商標)では、そのような共通要素を表すフォーム等といったオブジェクトが用意されている。ハーフトーン処理部127は、マーキング処理部125が生成した画像データ、又はこの画像データを共通要素の画像データにオーバレイ又は合成して得られる画像データに対してハーフトーン処理を施す。ハーフトーン処理後の画像データが印刷エンジン130へと供給される。なお、ハーフトーン処理部127の代わりに、或いはこれに加えて、例えばガンマ補正などの他の画像処理を行う機能モジュールを処理回路124に設けてもよい。
【0030】
個々の処理回路124は、例えば、CPU(中央演算装置)、マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、又はDRP(Dynamically Reconfigurable Processor)などのプロセッサ又は集積回路である。処理回路124をASICで構成する場合、処理回路124には上述の各処理部125〜127の機能を果たす回路が内包されることになる。また、DRPは、内部の論理回路の構成を動的に(例えば1クロックの間に)変更可能なプロセッサである。処理回路124をDRPで構成する場合、そのDRPの回路構成を、例えば、上述の各処理部125〜127の機能のための回路へと順に切り換えて行くこととなる。
【0031】
また、キャッシュメモリ123には、印刷データの複数の箇所(異なる複数のページなど)で繰り返し利用される共通要素のデータが格納される。格納される共通要素のデータは、中間データであってもよいし、その中間データをマーキング処理部125で処理することにより得られるラスター画像データであってもよいし、更にそのラスター画像データをハーフトーン処理部127で処理することにより得られるハーフトーン画像データであってもよい。共通要素をいずれの形式でキャッシュメモリ123にキャッシュするかは、印刷システム100の設計としてあらかじめ固定的に定めておいてもよいし、変更可能な設定情報として設定できるようにしてもよい。
【0032】
キャッシュメモリ123は、複数の処理回路124により共用される。したがって、それらすべての処理回路124が1つのキャッシュメモリ123内の共通要素を再利用する。
【0033】
印刷エンジン130は、バックエンド装置120の各処理回路124から供給されるハーフトーン処理済みのラスター画像データを、用紙に印刷する。
【0034】
1つの例では、各フロントエンド装置110及びバックエンド装置120は、それぞれブレードサーバにおける1つのブレード(あるいはボード)として構成してもよい。フロントエンド装置110のインタプリタ112及び中間データ生成部114は、例えば、ブレード上に搭載されたCPUで実行されるプログラムとして実現してもよい。また、1つのブレード上のCPUにて、インタプリタ112及び中間データ生成部114のペアを複数、別々のプロセス又はスレッドとして実行させてもよい。この場合、1つのブレード上に複数のフロントエンド装置110が含まれることになる。また、ブレード上のCPUがマルチコア構成の場合、またはブレード上に複数のCPUが搭載されている場合は、マルチコアを構成する各コア、又は複数のCPUのそれぞれにより、それぞれ1つのフロントエンド装置110を構成してもよい。また、フロントエンド装置110の一部の機能を、ASICその他のハードウエア回路として構成してもよい。バックエンド装置120のうち各処理回路124及びキャッシュメモリ123は、ASICやDRP、半導体メモリ装置などのハードウエア回路として実現される。分配部121は、プログラムで実現してもよいし、ハードウエア回路として実現してもよい。
【0035】
以上に説明したように、図1に示す印刷システム100では、まずPDLの印刷データをラスター画像データに変換する処理のための装置を、前段のフロントエンド装置110と後段のバックエンド装置120との2つの段階の装置に分けている。そして、前段は複数のフロントエンド装置110による並列構成とするとともに、後段は1つのバックエンド装置120内に搭載された複数の処理回路124による並列構成としている。複数の処理回路124は、同じバックエンド装置120内にあるキャッシュメモリ123を共用する。
【0036】
次に、図2を参照し、図1の例のシステムにおける動作の例を説明する。図2の例の手順のステップS10及びS12は振り分け制御部150による処理であり、S14及びS16はフロントエンド装置110による処理であり、ステップS18及びS20は、バックエンド装置120による処理である。
【0037】
まず、振り分け制御部150が、クライアント装置200からの印刷ジョブ(PDLで記述された印刷データを含む印刷指示データ)を受信する(ステップS10)。
【0038】
次に、振り分け制御部150は、例えば固定的な順序で又は各フロントエンド装置110の稼動状況に応じて、ステップS10で受信した印刷ジョブに含まれるPDL中の各ページの処理を担当するフロントエンド装置110を決定する。つまり、振り分け制御部150は、各フロントエンド装置110に対してそれぞれページを割り当てる(ステップS12)。フロントエンド装置110に割り当てられた(振り分けられた)ページを、以下では担当ページとも呼ぶ。
【0039】
各フロントエンド装置110は、ステップS12で割り当てられた自身の担当ページの通知と共に処理対象のPDLを振り分け制御部150から取得する。そして、取得したPDLを解釈して自身の担当ページの部分を特定し、そのページを解釈して中間データを生成する(ステップS14)。生成する中間データは、Y,M,C,Kの各基本色に分版したものであってもよい。ステップS14では、複数のフロントエンド装置110によりページ単位での並列処理が行われる。
【0040】
各フロントエンド装置110は、生成した中間データを、バックエンド装置120に対して出力する(ステップS16)。バックエンド装置120は、受け取った各ページの中間データを、あらかじめ定めた単位ごとに、各処理回路124に分配する。
【0041】
各処理回路124は、分配部121から取得した中間データを処理して、割り当てられた部分の描画データ(ラスター画像データ)を生成する(ステップS18)。ステップS18で、処理回路124のマーキング処理部125は、例えば、取得した中間データを描画処理して印刷画像を構成する画素それぞれの値を求めることでラスター画像データを生成する。そして、生成したラスター画像データに対し、ハーフトーン処理部127においてハーフトーン処理を行う(更にガンマ補正を行ってもよい)。また、分配されたデータにフォーム等の共通要素が含まれている場合、オーバレイ処理部126によりその共通要素の画像に対して他の要素からなる画像をオーバレイ又は合成する。
【0042】
各処理回路124から出力されるハーフトーン処理後のラスター画像データは、印刷エンジン130に対して出力される(ステップS20)。なお、複数の処理回路124と印刷エンジン130との間にバッファメモリを設け、それら両者の間の処理速度の差を吸収するようにしてもよい。
【0043】
図3に、本実施形態の例において、フロントエンド装置110とバックエンド装置120によるデータの処理の一例を示す。図3は、Page1〜Page5の5ページを含む文書であって、各ページに共通要素であるフォームを含む文書のPDLを処理する場合の例である。この例では、全ページに含まれるフォームは同じものである。図3の例において、2つのフロントエンド装置110がPage1〜5を1ページずつ順に処理する。すなわち、第1のフロントエンド装置110(図3中の上側の装置)はPage1,3,5を担当し、第2のフロントエンド装置110(図3中の下側の装置)はPage2,4を担当する。各フロントエンド装置110は、PDLを解釈し、自身の担当ページ及び担当ページ中のフォームを特定する。
【0044】
ここで、図3の例では、一例として、1つのフォームの中間データ生成は、1つのフロントエンド装置110が代表して行う。例えば、各フロントエンド装置110に対し、フォームの中間データの生成を担当する場合の条件を予め保持させておき、この条件に従って各フロントエンド装置110においてフォームの中間データを生成すべきか否かを決定するようにしてもよい。ここで用いる条件は、例えば、「フォームを含むページのうち印刷データ中で最初に出現するページの処理を(自分が)担当する場合にフォームの中間データを生成する」などのように定義しておけばよい。この条件の場合、フロントエンド装置110は、PDLの印刷データを先頭から順に解釈していく中で、あるフォームを最初に検出した場合、その検出位置の属するページが自分の担当ページであれば、そのフォームの中間データの生成を担当する。印刷データの解釈を進めていく中でフォームを検出したとしても、同じフォームを前に検出したことがある場合、又はまたはその検出位置の属するページが自分の担当ページでない場合は、フロントエンド装置110はその検出したフォームの中間データは生成しない。このように初出のフォームの属するページを割り当てられたフロントエンド装置110がそのフォームの中間データを生成する方式は、PostScript(登録商標)等のページ非独立のPDLで印刷データが記述される場合に適用すればよい。
【0045】
また、フロントエンド装置110は、中間データから描画データを生成し
て、バックエンド装置120に出力してもよい。この場合、バックエンド装置
120は、描画データをキャッシュメモリ123にキャッシュする。
【0046】
また、別の例として、振り分け制御部150がフォームの中間データの生成を担当するフロントエンド装置110を決定し、その旨を担当のフロントエンド装置110に対して通知してもよい。この場合、フォームの中間データの生成を担当すべき旨を通知されたフロントエンド装置110においてフォームの中間データの生成を行い、その旨の通知を受けなかったフロントエンド装置110においてはフォームの中間データを生成しないようにする。
【0047】
この例におけるフロントエンド装置110の処理手順の例を図4に示す。この手順では、フロントエンド装置110は、振り分け制御部150から自身の担当ページの通知及び処理対象のPDLデータを取得したときに、図4の例の手順の処理を開始する。図4の手順では、まず、フロントエンド装置110のインタプリタ112は、処理対象のPDLデータを解釈して、自身の担当ページの部分を特定し、担当ページにフォームが含まれているか否かを判定する(ステップS30)。
【0048】
担当ページにフォームが含まれていれば(ステップS30でYES)、インタプリタ112は、フォームの中間データを生成するか否かを判定する(ステップS32)。ステップS32の判定は、例えば、予め定義された条件に該当するか否かに応じて行う。例えば、上述の例の条件(「フォームを含むページのうち文書中で最初に出現するページの処理を担当する場合にフォームの中間データを生成する」)が予め定義されている場合、PDLを解釈した結果から、自身の担当ページがフォームを含む最初のページであるか否かを特定する。最初のページであれば上述の例の条件を満たすため、フォームの中間データを生成することを判定し(ステップS32でYES)、中間データ生成部114が、インタプリタ112の解釈結果に基づき、フォームの中間データの生成を行う(ステップS34)。このとき、フォームについて、Y,M,C,Kの各基本色に分版した中間データを生成してもよい。一方、最初のページでなければ上述の例の条件を満たさないため、フォームの中間データを生成しないことを判定し(ステップS32でNO)、ステップS34を省略してステップS36に進む。また、例えば、振り分け制御部150がフォームの中間データの生成を担当するフロントエンド装置110を決定して通知する場合、ステップS32の判定は、この通知を振り分け制御部150から受けているか否かに応じて行えばよい。フォームの中間データの生成を担当するよう通知を受けていればステップS32でYESと判定してフォームの中間データを生成し(ステップS34)、当該通知を受けていなければステップS32でNOと判定してステップS36に進む。
【0049】
ステップS36では、インタプリタ112及び中間データ生成部114は、担当ページについての中間データ(例えばY,M,C,Kの各基本色に分版した中間データ)を生成する。ステップS36では、担当ページにフォームが含まれているか否かにかかわらず、担当ページ中のフォーム以外のオブジェクトについての中間データが生成される。また、ステップS36で生成される中間データは、当該中間データに対応するページにフォームが含まれるか否かを表す情報をさらに有する。
【0050】
担当ページの中間データが生成されると、生成した担当ページの中間データは、フロントエンド装置110からバックエンド装置120に対して出力される(ステップS38)。フロントエンド装置110において、担当ページの中間データだけでなくフォームの中間データも生成(ステップS34)していた場合、ステップS38において、フォームの中間データもバックエンド装置120に対して出力される。
【0051】
図4の例の手順によると、図3に例示するように、フォームの中間データの生成を担当するフロントエンド装置110だけがフォームの中間データと担当ページの中間データとを生成し、他のフロントエンド装置110は担当ページの中間データのみを生成する。
【0052】
以上、フロントエンド装置110の処理手順の例を説明した。再び図3を参照して説明する。
【0053】
図3の例は、Page1〜5に共通して含まれるフォームが初めて現れるPage1を担当する第1のフロントエンド装置110が、そのフォームの中間データを生成する。また、第1のフロントエンド装置110は、担当するPage1,3,5の、フォーム以外の要素(オブジェクト)についての中間データを生成する。また、第2のフロントエンド装置110は、担当するPage2,4における、フォーム以外の要素(オブジェクト)についての中間データを生成する。生成された各中間データは、伝送路140を介して、バックエンド装置120の分配部121へと集められる。
【0054】
分配部121は、受け取ったフォームの中間データをキャッシュメモリ123にキャッシュすると共に、各ページの中間データを2つの処理回路124に分配する。この例では、ページ順に交互に分配しており、第1の処理回路124(図2の上側の処理回路124)はPage1,3,5の中間データを、第2の処理回路124(図2の下側の処理回路124)はPage2,4の中間データを、受け取って処理する。より詳細には、処理回路124のマーキング処理部125は、キャッシュメモリ123からフォームの中間データを受け取り、その中間データを描画して、描画結果の画像データをバッファメモリ上に書き込む。また、マーキング処理部125は、分配されたページの中間データを描画する。マーキング処理部125によるページの描画結果は、オーバレイ処理部126により、バッファメモリ上のフォームの画像上にオーバレイ(重畳)される。オーバレイ結果の描画データは、ハーフトーン処理部127にてハーフトーン処理される。このように各処理回路124がページ順に交互に生成するフォームオーバレイ済の描画データが、バッファ等を介して印刷エンジン130へと送られ、印刷される。
【0055】
図5は、本実施形態の例における各バックエンド装置120が実行する処理の手順の例を示すフローチャートである。各バックエンド装置120は、フロントエンド装置110から出力された中間データを取得すると、図5の例の手順の処理を開始する。
【0056】
バックエンド装置120の分配部121は、取得したページの中間データが、フォームのオーバレイを行うべきか否かを判定する(ステップS40)。この例では各ページの中間データには、フォームオーバレイの要否を示す情報が含まれている。ステップS40の判定結果がYESの場合、そのページの中間データと共にフォームの中間データを受け取ったか否かを判定する(ステップS42)。
【0057】
ステップS42の判定結果がYESであれば、分配部121は受け取ったフォームの中間データをキャッシュメモリ123に保存し(ステップS44)、ステップS46に進む。フォームを受信していなければ(ステップS42でNO)、ステップS44の処理を省略してステップS46へ進む。
【0058】
ステップS44の後、又は、ステップS42でYES判定された後、分配部121は、当該ページの分配先の処理回路124に対してページの中間データを渡す。すると、その処理回路124のマーキング処理部125がそのページの中間データから描画データを生成する。また、このページには、フォームオーバレイを行う旨の指示が含まれているので、オーバレイ処理部126がキャッシュメモリ123からフォームの中間データを取得し、マーキング処理部125にその中間データからフォームの描画データを生成させ、その描画データをページの描画データにオーバレイする(ステップS46)。なお、フォームは、背景画像として印刷画像の最も下に配置してもよいし、その逆に、印刷画像の最も上に配置してもよい。その設定は、PDLに記述され、例えばフォームの中間データに含まれるようにしておけばよい。
【0059】
描画データの生成が終了すると、生成された描画データが順に印刷エンジン130に対して描画データが出力される(ステップS50)。
【0060】
なお、処理対象の中間データにフォームの中間データが含まれていなければ(ステップS40でNO)、マーキング処理部125によりページの中間データを用いた描画データの生成が行われ、更にハーフトーン処理部127による処理が行われ(ステップS48)、その結果の描画データが印刷エンジン130対して出力される(ステップS50)。
【0061】
次に、別の例を、図6を参照して説明する。図3の例ではバックエンド装置120のキャッシュメモリ123にフォームの「中間データ」を保持した。これに対し、図6では、フォームのラスタデータ(描画データ)をキャッシュメモリ123に保持する。
【0062】
このため、バックエンド装置120の分配部121は、フロントエンド装置110から受信したフォームの中間データをいずれかの処理回路124(例えば、そのフォームと共に受信したページの中間データの処理を担当する処理回路124)に分配する。フォームの中間データを受け取った処理回路124では、マーキング処理部125がその中間データについての描画処理を行い、フォームのラスターデータ(描画データ)を生成し、生成したフォームのラスタデータをキャッシュメモリ123にキャッシュする。ここで、前述したようにフロントエンド装置110でフォームの描画データを生成する場合は、バックエンド装置120は、フロントエンド装置110から受け取ったフォームの描画データを、例えばそのまま、キャッシュメモリ123にキャッシュすればよい。また、各処理回路124は、分配部121から分配されたページの中間データを処理する際、キャッシュメモリ123からフォームのラスタデータを取得してバッファメモリに書き込み、そのラスタデータに対して、当該ページの中間データから生成したラスタデータをオーバレイ処理する。そして、オーバレイ処理結果のラスタデータがハーフトーン処理部127で処理され、この処理結果が印刷エンジン130へと送信される。
【0063】
図6の例のうち、以上に説明した点以外は、図3の例の場合と同様でよい。
【0064】
なお、図6の例では、マーキング処理部125が生成したフォームのラスタデータをキャッシュメモリ123にキャッシュしたが、この代わりに、そのラスタデータをハーフトーン処理部127で処理して得られる処理結果をキャッシュメモリ123にキャッシュしてもよい。また、フォームについてのハーフトーン処理済みの描画データをフロントエン
ド装置110で生成し、これをバックエンド装置120に送ってキャッシュメモリ123にキャッシュして再利用するようにしてもよい。この場合、オーバレイ処理部126は、ページのラスタデータについてのハーフトーン処理部127による処理結果を、キャッシュメモリ123から取得したフォームのハーフトーン処理済みラスタデータにオーバレイする。
【0065】
また、同様に、キャッシュメモリ123にガンマ補正済のラスタデータをキャッシュし、ガンマ補正したページのラスタデータをキャッシュメモリ123から取得したフォームのガンマ補正済ラスタデータにオーバレイしてもよい。
【0066】
次に、図7を参照して、1つの文書に複数のフォームを用いる例を説明する。図7の例では、Page1〜5の5ページからなる文書において、フォーム1及びフォーム2の2種類のフォームが用いられている。より詳しくは、フォーム1はPage1,4,5に用いられ、フォーム2はPage2,3に用いられている。これら5ページが、2つのフロントエンド装置110に1ページずつ交互に振り分けられる。上側の第1のフロントエンド装置110にはPage1,3,5が、下側の第2のフロントエンド装置110にはPage2,4が振り分けられる。
【0067】
図7の例では、PDLデータ中でのフォーム1の初出のページであるPage1を処理する第1(上側)のフロントエンド装置110が、フォーム1の中間データを生成する。また、PDLデータ中でのフォーム2の初出のページであるPage2を処理する第2(下側)のフロントエンド装置110が、フォーム2の中間データを生成する。また、各フロントエンド装置110が生成する各ページ(のフォーム以外の部分の)中間データには、そのページが含むフォームの識別情報F1又はF2が含まれる。F1はフォーム1を指し示す識別情報であり、F2はフォーム2を指し示す識別情報である。各フロントエンド装置110が生成した各フォーム及び各ページの中間データは、バックエンド装置120の分配部121に集まる。
【0068】
分配部121は、Page1の中間データと共に受け取ったフォーム1の中間データを、第1(上側)の処理回路124に分配する。第1の処理回路124は、そのフォーム1の中間データを処理してフォーム1のラスタデータ(又はハーフトーン処理済み、又はガンマ補正済のラスタデータ)を生成してキャッシュメモリ123にキャッシュする。また、分配部121は、Page2の中間データと共に受け取ったフォーム2の中間データを、第2(下側)の処理回路124に分配する。第2の処理回路124は、そのフォーム2の中間データを処理してフォーム2のラスタデータ(又はハーフトーン処理済み、又はガンマ補正済のラスタデータ)を生成してキャッシュメモリ123にキャッシュする。
【0069】
また、各処理回路124は、分配部121から分配されたページの中間データを処理する際、その中間データに含まれるフォーム識別情報に対応するフォームのラスタデータをキャッシュメモリ123から取得してバッファメモリに書き込み、そのラスタデータに対して、当該ページの中間データから生成したラスタデータをオーバレイ処理する。そして、オーバレイ処理結果のラスタデータがハーフトーン処理部127で処理され、この処理結果が印刷エンジン130へと送信される。
【0070】
図7の例では、各フォームのラスタデータをキャッシュメモリ123にキャッシュしたが、中間データをキャッシュしてももちろんよい。
【0071】
上述の各例では、フォームに関する描画データの処理においてフォームを印刷画像の最も下側(又は最も上側)に配置する。フォームを含む文書のPDLを処理する実施形態のさらに他の例では、フォームと他のオブジェクトとの間の印刷画像における上下関係の情報をさらに含む中間データを各フロントエンド装置110において生成し、この情報が表す上下関係を再現した描画データをバックエンド装置120において生成してもよい。
【0072】
図8に、この例の場合に各フロントエンド装置110が生成する中間データの構成の一例を示す。図8の例において処理対象となるPDLは、Page1〜5の5ページを含む文書のPDLである。また、Page1,4,5の各ページにフォーム1が含まれ、Page2,3の各ページにフォーム1及びフォーム2が含まれる。本例では、各フロントエンド装置110は、担当ページ中のフォームのオブジェクト及びフォームの他のオブジェクトの描画命令を、印刷画像における配置の順(下から上へ、又は上から下へ)に記述した中間データを生成する。図8の例の第1頁の中間データ(Page1)を参照して説明すると、符号P1−1は、Page1においてフォーム1よりも下(又は上)に配置されるオブジェクトの中間データ形式の描画命令を表し、フォーム1は、フォーム1の中間データ形式の描画命令を表し、符号P1−2は、Page1においてフォーム1よりも上(又は下)に配置されるオブジェクトの中間データ形式の描画命令を表す。また同様に、中間データ2を参照して説明すると、符号P2−1、フォーム1、符号P2−2、及びフォーム2の描画命令により表されるオブジェクトは、この順番で印刷画像において上から下に(又は下から上に)配置される。中間データ3,4,5の構成は、それぞれ、中間データ1,2の構成と同様である。これらの中間データは、バックエンド装置120に対して出力される。
【0073】
このような各ページの中間データを受け取ったバックエンド装置120の分配部121は、図9に示すように、それら各ページの中間データを、2つの処理回路124に対してページ順に交互に分配する。
【0074】
この例では、上側の第1の処理回路124が、まずPage1の中間データを受け取った際、その中に含まれる各部分P1−1、フォーム1、P1−2の中間データについての描画処理を行い、描画データを生成する。この例では、フォーム1の初出がPage1なので、第1の処理回路124がフォーム1の描画処理を代表して行う。次にハーフトーン処理部127がそれら各部分の描画データ(ラスタデータ)をハーフトーン処理する。ここで、フォーム1のハーフトーン処理結果は、キャッシュメモリ123にキャッシュされる。また、マーキング処理部125は、フォーム以外の他の部分P1−1及びP1−2についての描画処理も行う。合成処理部126aは、取得した中間データに表現される各部分P1−1,フォーム1、P1−2の上下関係に従って、それら各部分のハーフトーン処理済みの描画データを順に合成していくことで、フォーム合成済且つハーフトーン処理済みの描画データを生成する。
【0075】
第2(下側)の処理回路124は、まずPage2の中間データを受け取った際、その中に含まれる各部分P2−1、P2−2、フォーム2の中間データについての描画処理を行い、描画データを生成する。この例では、フォーム2の初出がPage2なので、Page2を担当する第2の処理回路124がフォーム1の描画処理を代表して行う。フォーム1の初出はPage1であってPage2ではないので、第2の処理回路124はフォーム2の描画は行わない。次にハーフトーン処理部127がそれら各部分の描画データ(ラスタデータ)をハーフトーン処理する。ここで、フォーム2のハーフトーン処理結果は、キャッシュメモリ123にキャッシュされる。また、マーキング処理部125は、フォーム以外の他の部分P2−1及びP2−2についての描画処理も行う。合成処理部126aは、取得した中間データに表現される各部分P2−1、フォーム1、P2−2、フォーム2の上下関係に従って、それら各部分のハーフトーン処理済みの描画データを順に合成していくことで、フォーム合成済且つハーフトーン処理済みの描画データを生成する。このとき、初出でないフォーム1のハーフトーン処理済みの描画データは、キャッシュメモリ123から取得して使用する。
【0076】
また、各処理回路124は、Page3,4,又は5についての描画処理を行う場合には、フォーム1及び2のハーフトーン処理済みの描画データをキャッシュメモリ123から取得し、当該ページの中間データに表現される各部分の上限関係に従って、それらフォームとフォーム以外の他の部分の描画データとを合成する。
【0077】
図9の例では、フォームのハーフトーン処理済みの描画データをキャッシュメモリ123にキャッシュしたが、これは一例に過ぎない。キャッシュメモリ123にキャッシュするデータの形式は、中間形式、ハーフトーン処理前の描画データ、ガンマ補正済の描画データ、ハーフトーン処理済み且つガンマ補正済の描画データのいずれであってもよい。
【0078】
図8の例では、各フロントエンド装置110は、各ページに含まれるすべてのフォームについて中間データを作成したが、これは一例に過ぎない。この代わりに、個々のフォームをそれぞれ1つのフロントエンド装置110が代表して描画してもよい。この例を図10に示す。
【0079】
図10の例は、図9に例示するPDLと同様のPDLを処理対象とする。図10の例では、各フロントエンド装置110が、それぞれ自分の担当するページに、PDLデータの先頭から見て初出のフォームがあれば、そのフォームの中間データを生成する。すなわち、図示例では、上側の第1のフロントエンド装置110は、Page1に初出するフォーム1の中間データを、全フロントエンド装置110を代表して生成する。同様に、下側の第2のフロントエンド装置110は、Page2に初出するフォーム2の中間データを、全フロントエンド装置110を代表して生成する。また、各フロントエンド装置110は、それぞれ担当するページに含まれるフォーム以外の各オブジェクトの中間データを生成すると共に、それら各オブジェクトの中間データと、そのページに含まれるフォームの識別情報(F1,F2)とを含んだ、当該ページ全体の中間データを生成する。F1はフォーム1の識別情報であり、F2はフォーム2の識別情報である。このページ全体の中間データには、フォーム以外の各オブジェクトとフォームとの上下関係の情報が含まれる。このように、ページの中間データには、フォーム自体の中間データは含まれない。このようにして生成された各ページの中間データ及び各フォームの中間データは、バックエンド装置120に渡される。なお、図10における各ページのフォームと他の部分と上下関係は、図8の例と同様である。
【0080】
図示は省略したが、バックエンド装置120では、図9の場合と同様、各処理回路124がそれぞれ割り振られたフォーム1を描画処理し(また場合によってはハーフトーン処理やガンマ補正処理を施し)、その処理の結果をキャッシュメモリ123にキャッシュすする。また、各処理装置124は、各ページの中間データを処理する場合に、その中間データに含まれるフォームの識別情報を読み取り、その識別情報に対応するフォームの描画データ(ラスタデータ)を、フォーム以外の他の部分の描画データと合成する。この合成では、それらフォーム及びその他の部分を、当該中間データが表す上下関係に従った順序で合成する。
【0081】
なお、この場合も、キャッシュメモリ123にキャッシュするフォームのデータの形式は、中間形式、ハーフトーン処理前の描画データ、ハーフトーン処理済みの描画データ、ガンマ補正済の描画データ、ハーフトーン処理済み且つガンマ補正済の描画データのいずれであってもよい(これは、上に説明した他の例の場合も同様である)。
【0082】
以上で説明した各種の例は、上述の説明の態様に限定されず、更に様々な変形例が考えられる。例えば、以上の例では、中間データをバックエンド装置120内の個々の処理回路124に分配する分配部121がバックエンド装置120内にあったが、この代わりに、各フロントエンド装置110が分配部121と同様の処理機能を有してもよい。この場合、フロントエンド装置110内の分配部121は、自分の生成した各ページ及び各フォームの中間データを、あらかじめ定められた規則(例えば複数の処理回路124に対してページ順に従って順に割り振るなど)に従って各処理回路124に分配する。この場合、フロントエンド装置110内の分配部121は、例えば、バックエンド装置120に送る各フォーム及び各ページの中間データに対して、その中間データの処理を担当する処理回路124の識別情報を付加しておけばよい。そして、バックエンド装置120内の各処理回路124は、各フロントエンド装置110から送られてくる各中間データのうち、自分の識別情報を含んだ中間データを処理する。
【0083】
また、分配部121を、フロントエンド装置110及びバックエンド装置120のいずれとも異なる装置として設けてもよい。この場合、各フロントエンド装置110は、それぞれ生成した中間データを、その独立した分配部121に送る。分配部121は、受け取った中間データをそれぞれバックエンド装置120のどの処理装置124に分配するかを決定し、例えば各中間データに対してその分配先の処理回路124の識別情報を付加してバックエンド装置120に送る。バックエンド装置120内の各処理回路124は、分配部121から送られてくる各中間データのうち、自分の識別情報を含んだ中間データを処理する。
【0084】
また、以上では、バックエンド装置120が1つであったが、バックエンド装置120の数は複数であっていてもよい。ただし、並列配置するバックエンド装置120の数は、並列配置するフロントエンド装置110の数よりも少なくする。個々のバックエンド装置120は、例えばブレードサーバにおける1つのブレードとして構成される。この場合、個々のバックエンド装置120はそれぞれ個別のキャッシュメモリ123を有しており、各処理回路124は自分の属するバックエンド装置120のキャッシュメモリ123にはアクセス可能であるが、他のバックエンド装置120のキャッシュメモリにはアクセスできない。そこで、フォームの中間データを生成したフロントエンド装置110は、例えば、生成したフォームの中間データをすべてのバックエンド装置120に送り、すべてのバックエンド装置120内のキャッシュメモリ123にそのフォームのデータがキャッシュされるようにする。この場合、各ページの中間データが割り振られるバックエンド装置120の数は、それら各ページの中間データを生成するフロントエンド装置110の数よりも少ないので、個々のバックエンド装置120が担当するページの数は、個々のフロントエンド装置110が担当するページの数よりも多くなる。したがって、バックエンド装置120内のキャッシュメモリ123にキャッシュしたフォームのデータが利用される頻度は、バックエンド装置120をフロントエンド装置110と同数設ける構成や、フロントエンドとバックエンドに分けない従来のRIPを複数並列で設けてそれら各RIPにキャッシュメモリを設ける構成よりも高く、すなわちキャッシュの利用効率が高い。なお、この場合において、個々のバックエンド装置120に設けられる処理回路124の数は複数であってもよいし1つであってもよい。
【0085】
印刷システム100内に設けるバックエンド装置120の数が1つの場合、そのバックエンド装置120内のキャッシュメモリ123の利用効率は、バックエンド装置120を複数設ける場合よりもよい。バックエンド装置120が1つであっても、その中に高速処理が可能なハードウエアの処理回路124を複数設けて並列処理を行わせることで、システム全体としての描画処理の処理速度が確保される。しかも、バックエンド装置120内の各処理回路124を、バックエンド装置120内部の高速バスその他の高速な通信手段により単一のキャッシュメモリ123に接続することで、それら複数の処理回路124が1つのキャッシュメモリ123を共通利用されることとなる。
【0086】
また、以上では印刷の基本色としてY,M,C,Kの4色を用いる例を説明したが、他の色を基本色として用いても、あるいは、5色以上又は3色以下の基本色を用いても、上述の各種の実施形態の例の処理は上述と同様に実現される。
【0087】
また、以上では、マーキング処理部125が描画データとしてラスタデータを生成する旨を記載したが、ラスタデータの代わりに、ランレングスデータなどといった他の形式の印刷画像データを生成してもよい。
【0088】
また、上述の各例では、バックエンド装置120の各処理回路124にページ単位で処理を割り振ったが、ページをさらに分割したバンド単位で処理を割り振ってもよい。また、バックエンド装置120に、基本色ごとに処理回路124を設け、各フロントエンド装置110から受け取った中間データを、基本色ごとに、対応する処理回路124に分配するようにしてもよい。また、バックエンド装置120内に、基本色ごとに複数の処理回路124を設け、各基本色の中間データを、ページその他の単位ごとに当該基本色の複数の処理回路124に分配してもよい。
【符号の説明】
【0089】
100 印刷システム、110 フロントエンド装置、112 インタプリタ、114 中間データ生成部、120 バックエンド装置、121 分配部、123 キャッシュメモリ、124 処理回路、125 マーキング処理部、126 オーバレイ処理部、126a 合成処理部、127 ハーフトーン処理部、130 印刷エンジン、150 振り分け制御部、200 クライアント装置。

【特許請求の範囲】
【請求項1】
ページ記述言語で記述された文書データのうちの割り当てられたページのデータを解釈して当該ページの中間データを生成する複数の中間データ生成装置と、
前記複数の中間データ生成装置が生成した前記中間データのうちの割り当てられた部分の中間データを取得し、取得した前記中間データを描画することにより当該割り当てられた部分の画素ごとの情報を含む描画データを生成する1以上の描画データ生成装置であって、取得した前記中間データ内の共通要素の中間データ、又は当該中間データから生成した前記共通要素の描画データ、を記憶する記憶装置を有し、前記割り当てられた部分内の前記共通要素の中間データ又は描画データが前記記憶装置内にあれば、前記記憶装置内の当該共通要素の中間データ又は描画データを用いて当該割り当てられた部分の描画データを生成する、1以上の描画データ生成装置と、
を備え、
前記描画データ生成装置の数は、前記中間データ生成装置の数よりも少ない、ことを特徴とする画像処理システム。
【請求項2】
前記1以上の描画データ生成装置のうち少なくとも1つは、前記中間データを描画することによりページの描画データを生成する複数の描画回路を備え、それら複数の描画回路が前記記憶装置に記憶された前記共通要素の中間データ又は描画データを共用する、ことを特徴とする請求項1に記載の画像処理システム。
【請求項3】
前記複数の中間データ生成装置のそれぞれは、共通要素については、当該共通要素を含むページが割り当てられた中間データ生成装置のうち予め設定された条件に従って決定される1つの中間データ生成装置が当該共通要素の中間データを代表して生成する、ことを特徴とする請求項1又は2に記載の画像処理システム。
【請求項4】
前記中間データは、さらに、前記共通要素と他の要素との間の画像内での上下関係を表す情報を含み、
前記描画データ生成装置は、前記中間データに含まれる前記上下関係を表す情報にさらに従って前記描画データを生成する処理を行う、
ことを特徴とする請求項1〜3のいずれか1項に記載の画像処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−200955(P2012−200955A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−66654(P2011−66654)
【出願日】平成23年3月24日(2011.3.24)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】