JP5344075B1 - 印刷画像処理システムおよびプログラム - Google Patents
印刷画像処理システムおよびプログラム Download PDFInfo
- Publication number
- JP5344075B1 JP5344075B1 JP2012225810A JP2012225810A JP5344075B1 JP 5344075 B1 JP5344075 B1 JP 5344075B1 JP 2012225810 A JP2012225810 A JP 2012225810A JP 2012225810 A JP2012225810 A JP 2012225810A JP 5344075 B1 JP5344075 B1 JP 5344075B1
- Authority
- JP
- Japan
- Prior art keywords
- cache
- interpretation
- page
- logical page
- data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/1285—Remote printer device, e.g. being remote from client or server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】複数の解釈手段のうちの少なくとも1つを、論理ページ内のキャッシュ対象要素を解釈してその解釈結果をキャッシュする手段として固定的に用いる場合よりも、印刷データの最初の方のページ群を早く処理できるようにする。
【解決手段】印刷データの最初の方を処理する段階では、2つの論理ページ解釈部36−p及び両用解釈部36−fは、割り当てられたページを解釈する。あらかじめ定めたページ数の処理が終わった後は、両用解釈部36−fは、各論理ページ中のキャッシュ対象のフォームを解釈して中間データを生成し、共通のルールに従って生成したキャッシュIDと対応づけてフォームキャッシュ48に登録する。2つの論理ページ解釈部36−pは、担当する論理ページを解釈する際、キャッシュ対象のフォームについては、共通のルールに従ってそのフォームのデータから生成したキャッシュIDを参照するコマンドを論理ページの中間データに組み込む。
【選択図】図3
【解決手段】印刷データの最初の方を処理する段階では、2つの論理ページ解釈部36−p及び両用解釈部36−fは、割り当てられたページを解釈する。あらかじめ定めたページ数の処理が終わった後は、両用解釈部36−fは、各論理ページ中のキャッシュ対象のフォームを解釈して中間データを生成し、共通のルールに従って生成したキャッシュIDと対応づけてフォームキャッシュ48に登録する。2つの論理ページ解釈部36−pは、担当する論理ページを解釈する際、キャッシュ対象のフォームについては、共通のルールに従ってそのフォームのデータから生成したキャッシュIDを参照するコマンドを論理ページの中間データに組み込む。
【選択図】図3
Description
本発明は、印刷画像処理システムおよびプログラムに関する。
一般に、パーソナルコンピュータから印刷装置に送られる印刷文書データは、PostScript(登録商標)やPDF( Portable Data Format: ISO 32000-1) などのページ記述言語(以下、PDLと呼ぶ。PDLはPage Description Languageの略)で記述されている。印刷装置では、RIP( Raster Image Processor)と呼ばれるデータ処理装置により印刷文書データをビットマップ形式(ラスター形式とも呼ばれる)の画像データに変換し、その画像データをプリントエンジンにより印刷する。また、PDLデータを直接ラスター画像に変換する方式の他に、PDLデータをPDLコマンドよりは粒度の小さいディスプレイリスト等の中間言語形式のデータに変換してバッファし、バッファした中間言語形式のデータをビットマップ形式に変換するという2段階の変換を行う印刷装置もよく知られている。
従来、PDLデータからビットマップ形式又は中間言語形式の画像データへの変換を、ページ単位などのあらかじめ定められた単位ごとに、複数のデータ処理装置で並列的に実行するシステムも知られている。
また、従来、あるデータ処理装置が印刷データ中のPDLで記述された文書要素(オブジェクト)をビットマップ形式又は中間言語形式へ変換した場合に、その変換結果のデータを文書要素の識別情報と対応づけてキャッシュメモリにキャッシュし、後で同じ又は異なるデータ処理装置が同じ文書要素を変換する必要が生じた場合には、キャッシュされたデータを使用することで、変換処理を省略することも行われている。
特許文献1には、PDLデータの中間データへの変換を複数の解釈部によりページ単位で並列実行するシステムが開示されている。各解釈部が生成した各ページの中間データは、バックエンド装置でラスター画像データに変換され、印刷装置に供給される。この文献には、フォーム(複数のページで繰り返し利用される画像要素)の画像データをキャッシュし、キャッシュ済みのフォームについてはキャッシュした画像データを再利用するシステム構成も開示されている。このシステムでは、各解釈部が、論理ページのPDLデータを中間データに変換する際、そのページに含まれるフォームの中間データも併せて生成する。
特許文献2には、複数のRIP処理部がページ単位で並列的にRIP処理を行う装置が開示される。この装置は、キャッシュメモリを有しており、各RIP処理部が生成したフォームのラスター画像データをそのキャッシュメモリに保存して再利用する。この装置は、同じフォームについてのRIP処理が重複して行われることがないように制御するRIP処理判定部を備えている。RIP処理判別部は、RIP処理部に割り当てたページデータにフォームデータが含まれるか否かを判別する。フォームデータが含まれる場合には、そのフォームデータがそれ以前にRIP処理部の何れかで既にRIP処理したフォームデータ、または現在、他のRIP処理部でRIP処理の実行中であるフォームデータと一致するか否かを、フォームIDに基づき判別する。一致しない場合には、そのフォームデータのフォームIDを記憶し、そのページデータをRIP処理するRIP処理部に対し、そのフォームデータに関するラスタイメージデータをキャッシュメモリに記憶することを指示する。一方、そのフォームデータが、それ以前にRIP処理部の何れかで既にRIP処理したフォームデータと一致する場合には、RIP処理判別部は、そのページデータをRIP処理するRIP処理部に対し、フォームデータ以外の画像データに関するRIP処理を行い、フォームデータに関しては、キャッシュメモリに記憶されたそのフォームデータに関するラスタイメージデータを取得して使用することを指示する。また、そのフォームデータが、現在他のRIP処理部にてRIP処理を実行中であるフォームデータと一致する場合には、RIP処理判定部は、そのページデータをRIP処理するRIP処理部に対し、フォームデータ以外の画像データに関するRIP処理を行い、他のRIP処理部にてRIP処理が完了するまで待機することを指示する。そして、RIP処理判別部は、他のRIP処理部にてRIP処理が完了した後に、キャッシュメモリに記憶されたフォームデータに関するラスタイメージデータを取得して使用することを指示する。
本発明は、印刷データの最初から、複数の解釈手段のうちの少なくとも1つを、論理ページ内のキャッシュ対象要素を解釈してその解釈結果をキャッシュする手段として用いる場合よりも、印刷データの最初の方の論理ページ群を早く処理できるようにすることを目的とする。
請求項1に係る発明は、入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段と、前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段と、キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段と、前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段と、前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段と、を有し、前記2以上の論理ページ解釈手段は、それぞれ、前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、を有し、前記両用解釈手段は、前記第1のページ処理モードと、前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、を有し、前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、印刷画像処理システムである。
請求項2に係る発明は、前記両用解釈手段は、更に前記第2のページ処理モードを有し、前記両用解釈手段が前記キャッシュモードにて前記印刷データの最後の論理ページの処理を終えた場合に、前記両用解釈手段の動作モードを前記キャッシュモードから前記第2のページ処理モードに切り換える手段、を更に備える請求項1に記載の印刷画像処理システムである。
請求項3に係る発明は、前記第1のページ処理モードでは、前記論理ページ解釈手段および前記両用解釈手段は、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈して解釈結果を当該論理ページの解釈結果に組み込むと共に、そのキャッシュ対象要素が前記キャッシュ記憶手段に解釈結果が記憶されていない場合には、そのキャッシュ対象要素の解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させる、請求項1又は2に記載の印刷画像処理システムである。
請求項4に係る発明は、前記キャッシュ記憶手段に記憶される前記キャッシュ対象要素の解釈結果についての管理情報を管理するキャッシュ管理手段と、前記キャッシュ記憶手段の空き容量を監視し、前記2以上の論理ページ解釈手段が前記第2のページ処理モードで動作しているときに、前記キャッシュ記憶手段の空き容量があらかじめ定められた閾値を下回った場合には、前記2以上の論理ページ解釈手段の動作モードを第3のページ処理モードに切り換える手段と、前記第3のページ処理モードでは、前記2以上の論理ページ解釈手段は、前記処理対象の論理ページに含まれるキャッシュ対象要素について、当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されているか否かを問い合わせる問合せ通信を前記キャッシュ管理手段に対して行い、この問合せ通信の結果当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていることが判った場合は、当該キャッシュ対象要素のデータから前記生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込み、前記問合せ通信の結果当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていないことが判った場合は、当該キャッシュ対象要素を解釈して解釈結果を当該論理ページの解釈結果に組み込む、請求項1〜3のいずれか1項に記載の印刷画像処理システムである。
請求項5に係る発明は、前記2以上の論理ページ解釈手段による前記問合せ通信に対して当該問合せ通信に係るキャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていた割合を表す前記キャッシュ記憶手段のヒット率、および、前記キャッシュ記憶手段に記憶されている各キャッシュ対象要素の中間データの利用状況を監視し、前記2以上の論理ページ解釈手段が前記第3のページ処理モードで動作しているときに、前記ヒット率があらかじめ定められた判定閾値を下回った場合には、前記利用状況から中間データの最近の利用度合いがあらかじめ定めた閾値を下回るキャッシュ対象要素群を特定し、特定したキャッシュ対象要素群の中間データを前記キャッシュ記憶手段から一括して削除する一括削除手段、を更に備える、請求項4に記載の印刷画像処理システムである。
請求項6に係る発明は、前記一括削除手段による削除に応じて、前記2以上の論理ページ解釈手段の動作モードを前記第3のページ処理モードから前記第2のページ処理モードに切り換える手段、を更に備える、請求項5に記載の印刷画像処理システムである。
請求項7に係る発明は、前記2以上の論理ページ解釈手段および前記両用解釈手段は、それぞれ、前記割り当て手段から割り当てられた最初の論理ページを解釈している間は前記第1のページ処理モードで動作し、前記割り当て手段から割り当てられた2番目以降の論理ページを解釈している間、前記2以上の論理ページ解釈手段はそれぞれ前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、請求項1〜6のいずれか1項に記載の印刷画像処理システムである。
請求項8に係る発明は、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モード、前記第2のページ処理モード、および前記キャッシュモードを有する同一の解釈手段として構成され、それら解釈手段の中から選択された1以上の解釈手段が前記両用解釈手段として用いられ、残りが前記2以上の論理ページ解釈手段として用いられる、ことを特徴とする請求項1〜7のいずれか1項に記載の印刷画像処理システムである。
請求項9に係る発明は、コンピュータシステムを、入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段、前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段、キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段、前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段、前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段、として機能させるためのプログラムであって、前記2以上の論理ページ解釈手段は、それぞれ、前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、を有し、前記両用解釈手段は、前記第1のページ処理モードと、前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、を有し、前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、ことを特徴とするプログラムである。
請求項10に係る発明は、コンピュータシステムを、入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段、前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段、キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段、前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段、として機能させるためのプログラムであって、前記コンピュータシステムは、前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段、と協働し、前記2以上の論理ページ解釈手段は、それぞれ、前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、を有し、前記両用解釈手段は、前記第1のページ処理モードと、前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、を有し、前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、ことを特徴とするプログラムである。
請求項1、9または10に係る発明によれば、印刷データの最初から、複数の解釈手段のうちの少なくとも1つを、論理ページ内のキャッシュ対象要素を解釈してその解釈結果をキャッシュする手段として用いる場合よりも、印刷データの最初の方の論理ページ群を早く処理できる。
請求項2に係る発明によれば、印刷データの最後の論理ページの処理が終わった後両用解釈手段をキャッシュモードのまま維持するよりも、処理速度が向上する。
請求項3に係る発明によれば、第1のページ処理モードにおいてキャッシュ対象要素の解釈結果をキャッシュ記憶手段に記憶させない場合よりも、印刷データの解釈の進捗量が閾値を超えた後、キャッシュ対象要素の解釈結果がキャッシュ記憶手段から早く利用可能となる。
請求項4に係る発明によれば、キャッシュ手段の空き容量が少なくなった場合に、キャッシュ手段内の既存のデータを削除しても、各論理ページの解釈および描画が正しく行われるようにすることができる。
請求項5に係る発明によれば、キャッシュ手段のヒット率が低くなった場合に、キャッシュ手段内のあまり利用されていないキャッシュ対象要素の中間データを一括削除し、利用が増えてきたキャッシュ対象要素の中間データがキャッシュ手段に記憶されやすくすることができる。
請求項6に係る発明によれば、キャッシュ手段内のあまり利用されていないキャッシュ対象要素の中間データを一括削除してキャッシュ手段の空き容量を増やした段階で、第2のページ処理モードに切り換えることで処理を高速化することができる。
請求項7に係る発明によれば、この発明を用いない場合よりも、印刷データの最初の「論理ページ解釈手段および両用解釈手段の数」の論理ページの処理速度が向上する。
請求項8に係る発明によれば、論理ページ解釈手段と両用解釈手段とを別々の手段として構築する場合よりも、印刷画像処理システムの構成を単純化できる。
<システムのハードウエア構成>
図1は、画像処理システムの構成の一例を示すブロック図である。以下で説明する本発明の各種の実施形態の例による画像処理システムは、いずれも、図1に例示する構成を備えるものとする。図1の例のシステムは、端末装置10、印刷コントローラ20、および印刷装置50を備える。印刷コントローラ20は、フロントエンド装置30およびバックエンド装置40を有している。端末装置10は、通信手段60を介してフロントエンド装置30に接続されており、ユーザの指示に従い、文書の印刷命令を含む印刷ジョブをフロントエンド装置30に対して送信する。フロントエンド装置30は、通信手段62を介してバックエンド装置40に接続され、バックエンド装置40は、通信手段64を介して印刷装置50に接続される。
図1は、画像処理システムの構成の一例を示すブロック図である。以下で説明する本発明の各種の実施形態の例による画像処理システムは、いずれも、図1に例示する構成を備えるものとする。図1の例のシステムは、端末装置10、印刷コントローラ20、および印刷装置50を備える。印刷コントローラ20は、フロントエンド装置30およびバックエンド装置40を有している。端末装置10は、通信手段60を介してフロントエンド装置30に接続されており、ユーザの指示に従い、文書の印刷命令を含む印刷ジョブをフロントエンド装置30に対して送信する。フロントエンド装置30は、通信手段62を介してバックエンド装置40に接続され、バックエンド装置40は、通信手段64を介して印刷装置50に接続される。
通信手段60,62,64は、例えば、LAN(Local Area Network)等のネットワークであってよい。通信手段60,62,64は、互いに共通の通信手段であってもよいし、それぞれ異なる通信手段であってもよい。例えば、端末装置10とフロントエンド装置30との間の通信手段60としてLANを用い、フロントエンド装置30とバックエンド装置40との間の通信手段62およびバックエンド装置40と印刷装置50との間の通信手段64として、それぞれ、LANと異なる専用の通信手段を用いてもよい。
図1の例のシステムでは、端末装置10から送信された印刷ジョブをフロントエンド装置30において処理し、この処理結果のデータがバックエンド装置40に渡され、バックエンド装置40において生成された描画データ(ラスターデータとも言う)に従って印刷装置50による印刷が行われる。
図1の例の端末装置10、フロントエンド装置30、およびバックエンド装置40は、例えば汎用のコンピュータによって実現され得る。コンピュータは、ハードウエアとして、CPU(中央演算装置)、メモリ(一次記憶)、各種I/O(入出力)インタフェース、通信インタフェースなどがバスを介して接続された回路構成を有する。コンピュータは、通信インタフェースを介して、他の装置との間でデータの授受を行う。また、バスに対し、例えばI/Oインタフェース経由で、キーボードやマウスなどの入力装置、および、CRT(Cathode Ray Tube)や液晶ディスプレイなどの表示装置が接続される。また、バスには、I/Oインタフェースを介して、HDD(ハードディスクドライブ)や、CD、DVD、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブが接続される。このようなドライブ,は、メモリに対する外部記憶装置として機能する。後述の各実施形態の処理内容が記述されたプログラムがCDやDVDなどの記録媒体を経由して、またはネットワーク経由で、HDDなどの固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリに読み出されCPUにより実行されることにより、後述の各実施形態の処理が実現される。
なお、後述の各実施形態の例において、バックエンド装置40の機能の一部は、プログラムの実行によるソフトウエア処理ではなく、ハードウエア処理により実現してよい。ハードウエア処理は、例えば、動的再構成可能プロセッサ(Dynamic Reconfigurable Processor,DRP)と呼ばれる、処理の実行の途中で動的に回路を再構成できるプロセッサを用いて行ってもよい。あるいは、ASIC(Application Specific Integrated Circuit)等の回路を用いてハードウエア処理を行ってもよい。例えば、バックエンド装置40の機能の一部を実行する、DRPやASIC等のハードウエア要素を予め構成しておき、このようなハードウエア要素を汎用コンピュータのバスに対して接続することで、バックエンド装置40を実現すればよい。
フロントエンド装置30およびバックエンド装置40を実現するハードウエアの1つの具体例として、それぞれがサーバとして機能する複数の情報処理装置を1つの筐体内に搭載したブレードサーバを用いることが考えられる。ブレードサーバは、CPUやメモリを備える汎用のコンピュータを1枚の基板(ブレード)に実装し、複数のブレードを筐体内に搭載したサーバ装置である。例えば、ブレードサーバに搭載された1つのブレードをフロントエンド装置30として機能させ、他の1つのブレードをバックエンド装置40として機能させてもよい。あるいは、例えば、フロントエンド装置30およびバックエンド装置40のそれぞれを、ブレードサーバに搭載された複数のブレードにより実現してもよい。
印刷装置50は、紙等の媒体に印刷を行う装置であり、例えば、連続紙プリンタであってよい。以下では、印刷装置50として連続紙プリンタを用いる場合を例に取り、各実施形態の例を説明する。なお、印刷装置50は、電子写真、インクジェット、またはその他の方式の印刷エンジンにより印刷を行うものとする。
<実施形態>
図2に、印刷コントローラ20が備えるフロントエンド装置30およびバックエンド装置40の機能構成の例を示す。フロントエンド装置30は、印刷ジョブ受信部32、ページ配信部34、および、複数の解釈部36を備える。バックエンド装置40は、中間データバッファ42、描画部44および出力バッファ46を備える。
図2に、印刷コントローラ20が備えるフロントエンド装置30およびバックエンド装置40の機能構成の例を示す。フロントエンド装置30は、印刷ジョブ受信部32、ページ配信部34、および、複数の解釈部36を備える。バックエンド装置40は、中間データバッファ42、描画部44および出力バッファ46を備える。
フロントエンド装置30の印刷ジョブ受信部32は、端末装置10から印刷ジョブを受信する。本実施形態の例において、印刷ジョブは、文書を印刷する旨の命令と、印刷対象の文書をページ記述言語で記述したデータと、を含む。ページ記述言語(PDLと略す:PDLはPage Description Language の略)は、ディスプレイ表示処理、印刷処理等を情報処理機器に実行させるためのコンピュータプログラミング言語である。ページ記述言語の例としては、PostScript(登録商標)やPDF(Portable Document Format)等がある。ページ記述言語で記述されたデータは、印刷対象の文書を構成する文字や図形、イメージ(ビットマップ画像)などのオブジェクトの位置情報、書式情報および色情報などを含む。以下の説明では、印刷対象の文書をページ記述言語で記述したデータを「PDLデータ」と呼ぶ。印刷ジョブ受信部32は、受信した印刷ジョブに含まれるPDLデータをページ配信部34に渡す。
ページ配信部34は、印刷ジョブ受信部32から取得したPDLデータに含まれるページのうち、どのページをどの解釈部36に処理させるかを決定する。ここでいう「ページ」は、PDLデータにおいて規定されているページ、すなわち論理ページである。用紙の1つの面、すなわち1つの物理ページには、印刷設定に応じて、1つ又は複数の論理ページが印刷されることになる。なお、以下では、文脈上明らかなように、特に断りのない場合は、「ページ」という用語は、論理ページを指すものとする。
ページ配信部34は、各解釈部36の稼動状態に基づいて、各解釈部36に対してページを割り当てる。例えば、処理を実行中でない解釈部36、または他の解釈部36よりも負荷の低い処理を実行中の解釈部36を優先して、PDL中の先頭ページから順に担当ページを割り当てる。ページ配信部34は、各解釈部36に対し、割り当てた担当ページを通知すると共に、印刷ジョブ受信部32から取得したPDLデータを渡す。この例では、各解釈部36に対し、PDLデータにおける担当ページの部分だけでなく、PDLデータの全体を渡すものとする。これは、例えばページ非独立のPDL(すなわち、ページの画像の生成が、そのページ以前のPDLデータの解釈結果に依存するタイプのPDL)を用いている場合の例である。別の例として、ページ独立のPDL(ページごとのPDLデータのみで当該ページの画像を正しく生成できるタイプのPDL)を用いる場合は、ページ配信部34は、各解釈部36に対してPDLデータのページごとの割り当てを行い、この割り当てに基づいて、ページごとに分割したPDLデータを担当の各解釈部36に渡してもよい。
解釈部36は、ページ配信部34から取得したPDLデータを解釈し、ページ配信部34から通知された担当ページについて、描画データの生成の手順を表す命令を含む中間データを生成し、出力する。
より詳しくは、解釈部36は、PDLデータを解釈し、自身の担当ページについて、中間データを生成する。中間データは、最終的に印刷装置50に出力されるデータに変換される前段階のデータである。中間データの例として、ディスプレイリストや区間データ形式(例えば本出願人による特開2011−150535号公報参照)等があげられる。ここで、解釈部36は、印刷装置50による印刷で用いられる基本色(例えばイエロー(Y,Yellow)、マゼンタ(M,Magenta)、シアン(C,Cyan)、ブラック(K,Black)の4色)ごとに分版された中間データを生成するようにしてもよい。ただし、これはあくまで一例に過ぎない。
中間データは、印刷対象の文書の構成要素であるオブジェクトのそれぞれについて、当該文書の印刷画像において当該オブジェクトを描画する手順を表す描画命令を含む。この描画命令を記述する言語としては、ページ記述言語と比較してより詳細な手順を表現する言語が用いられる。例えば、ページ記述言語において、あるオブジェクトの印刷画像上の位置、形状、および大きさを表す情報が定義される場合、中間データにおける当該オブジェクトの描画命令では、印刷画像における走査線単位で当該オブジェクトの描画の手順を記述したものであり得る。中間データに従って、後述のバックエンド装置40において、印刷装置50に対して出力される描画データが生成される。
以下に区間データ形式(「ランリスト」形式とも呼ぶ)において用いるコマンドの例を示す。
(1)line, ym, xl, xr, c
y座標ymの走査線において、x座標xlからxr - 1まで、階調cで描画する
(2)duplicate
直前に描画した走査線と同一の態様(x座標,階調)で描画する
(3)window, xl, xr
直前に描画した走査線と同一の階調でx座標xlからxr - 1まで描画する
(1)line, ym, xl, xr, c
y座標ymの走査線において、x座標xlからxr - 1まで、階調cで描画する
(2)duplicate
直前に描画した走査線と同一の態様(x座標,階調)で描画する
(3)window, xl, xr
直前に描画した走査線と同一の階調でx座標xlからxr - 1まで描画する
あるページの中間データは、当該ページを構成する各オブジェクトの描画手順を表す命令の集合であると捉えられる。1つのページを表す中間データのデータ量は、当該ページを構成する各画素の値を含むラスタデータと比較して少ない。
なお、区間データ形式は中間データの形式のあくまで一例に過ぎない。本実施形態は、どのような中間データ形式を使用する場合にも適用可能である。バックエンド装置において、ハードウエア処理により描画データを生成する場合には、中間データの形式は、ハードウエア処理による描画データの生成を可能とする描画手順を表す形式であればよく、上に例示した区間データ形式と異なる形式のものでもよい。
解釈部36が生成した中間データは、バックエンド装置40に対して出力される。出力された中間データは、バックエンド装置40の中間データバッファ42に書き込まれる。描画部44は、中間データバッファ42に記憶された各ページの中間データを読み出し、読み出したページの中間データに従って描画データ(ラスターデータ)を生成する。生成された各ページの描画データは出力バッファ46に格納され、印刷装置50から順次読み出される。印刷装置50は、出力バッファ46から読み出した各ページの描画データを、用紙に対して印刷する。
次に、図3及び図4を参照して、実施形態の印刷コントローラ20の構成を説明する。本実施形態では、印刷コントローラ20、特にフロントエンド装置30が、「初期」と「通常期」で内部の動作モードを変化させる。図3は「初期」の構成を示し、図4は「通常期」の構成を示す。なお、図3と図4の構成は、機能的な相違があるのみであり、ハードウエア構成としては両者に相違はない。なお、「初期」とは、印刷ジョブの開始時点から、フロントエンド装置30があらかじめ定められた量(例えばあらかじめ定められたページ数)のPDLデータを処理し終わるまでの期間であり、「通常期」とは、「初期」の後の期間である。「初期」及び「通常期」については、後で更に詳しく説明する。
図2に例示した構成では、フロントエンド装置30は複数の解釈部36を備え、それら複数の解釈部36が、それぞれ割り当てられたページについての解釈および中間データの生成処理を、並列的に実行した。これに対し、図3及び図4に例示する実施形態の構成では、フロントエンド装置30は、2つの論理ページ解釈部36−p1および36−p2(以下、特に区別する必要がない場合は「論理ページ解釈部36−p」と総称する)と、1つの両用解釈部36−fを有する。論理ページ解釈部36−pは、図2の解釈部36と同様の、ページ(論理ページ)の解釈及び中間データ生成を担当する。両用解釈部36−fは、論理ページの解釈及び中間データ生成を行う動作モード(後述する「ページ処理モード1」)と、論理ページ中のフォームのみについての解釈及び中間データ生成を行う動作モード(後述する「キャッシュモード」)とを有し、状況に応じた動作モードで動作する。なお、図3の例は、論理ページ解釈部36−pを2つ用いる例であるが、3つ以上用いる構成も考えられる。
「フォーム」とは、複数のページで繰り返し使用されることが想定された画像のことである。フォームは1以上のオブジェクトから構成される。一般に、PDLデータ中では、フォームに対して、当該フォームをPDLデータ中で一意に識別する識別情報(「フォームID」と呼ぶ)が付与されている。PDLデータ中に同じフォームIDを指定したコマンドがある場合、それらコマンドは、同じフォームを用いた画像を表す。
本実施形態では、一度生成したフォームの中間データをキャッシュし、再利用する枠組み(フォームキャッシュ48)を提供することで、同じフォームの中間データが何度も生成されるといった非効率を避ける。フォームキャッシュ48は、キャッシュ対象のフォームの中間データを一時的に記憶するキャッシュである。
各論理ページ解釈部36−p1および36−p2は、それぞれページ配信部34から割り当てられたページのPDLデータを解釈し、中間データを生成する。ここで、各論理ページ解釈部36−pは、「ページ処理モード1」と「ページ処理モード2」という2つの動作モードを有する。ページ処理モード1は、割り当てられたページ内のオブジェクトを、フォームであるか否かによらずすべて解釈し、当該ページの中間データを生成するモードである。一方、ページ処理モード2は、割り当てられたページ中の、フォーム以外のオブジェクトのみを解釈するモードである。ページ処理モード2では、ページ中に含まれるフォームは、そのフォームを構成するPDLコマンド(オブジェクト)群を中間データ形式に変換したものを代えて、フォームキャッシュ48にキャッシュされた当該フォームの中間データを指し示す識別情報(「キャッシュID」と呼ぶ)を参照する中間データコマンドに置き換える。各論理ページ解釈部36−pが生成した各ページの中間データは、バックエンド装置40の中間データバッファ42に送られる。
論理ページ解釈部36−pは、「初期」はページ処理モード1で動作し(図3)、「通常期」に移行するとページ処理モード2に切り換えられる(図4)。
一方、両用解釈部36−fは、「初期」では論理ページ解釈部36−pと同様、ページ処理モード1で動作し、割り当てられたページの中間データを作成するのに対し、「通常期」に移行するとキャッシュモードに移行し、フォームの中間データを作成する。キャッシュモードでは、PDLデータ中のフォームのPDLコマンド群を解釈し、当該フォームを表す中間データを生成する。そして、生成したフォームの中間データをバックエンド装置40のフォームキャッシュ48に登録する。ここで、両用解釈部36−fは、フォームキャッシュ48に対して登録するフォームを表す中間データに対して、少なくとも当該印刷ジョブ中で一意なキャッシュIDを付与し、このキャッシュIDに対応づけてその中間データをフォームキャッシュ48に登録する。
論理ページ解釈部36−pは、ページ処理モード1でもページ処理モード2でも、印刷ジョブのPDLデータのうち、ページ配信部34により割り当てられたページのみを処理(すなわち解釈および中間データの生成)する。一方、両用解釈部36−fは、ページ処理モード1では、論理ページ解釈部36−pと同様、ページ配信部34により割り当てられたページのみを処理し、キャッシュモードでは、印刷ジョブのPDLデータの全ページ(ただし「初期」にて既に処理済みのページは除く)を処理する。ただし、キャッシュモードの両用解釈部36−fが処理するのは、ページ中のフォームのみであり、フォームに含まれない一般のオブジェクトについては処理しない。
論理ページ解釈部36−p1、36−p2および両用解釈部36−fは、典型的には、CPU上で実行されるプロセスとして実現される。例えば、マルチコアCPUを用いたシステム構成において、個々のコアでそれぞれ1つずつ解釈部36のプロセスを実行するという構成が考えられる。なお、以下では、論理ページ解釈部36−p1、36−p2および両用解釈部36−fを解釈部36と総称する。
キャッシュ管理部38は、フォームキャッシュ48に保持されるキャッシュデータ(すなわちフォームの中間データ)の管理情報を保持する。キャッシュ管理部38には、キャッシュデータごとに、キャッシュIDと、そのキャッシュデータのフォームキャッシュ48の記憶空間内での記憶場所を示す情報(例えば先頭アドレスと、そのデータのサイズとの組合せ)とが記憶される。両用解釈部36−fは、キャッシュモードにおいてPDLデータ中のフォームを処理する際、そのフォームのキャッシュデータがフォームキャッシュ48に登録されているかどうかをキャッシュ管理部38から求め、登録されている場合にはそのフォームのキャッシュデータの生成は行わず、登録されていない場合にのみキャッシュデータの生成を行う。
バックエンド装置40の描画部44は、中間データバッファ42内にある各ページの中間データを例えばページ順に読み出し、読み出したページの中間データのコマンドに従って描画データを生成していく。ここで、読み出したページの中間データ内に、キャッシュIDを参照する旨のコマンドが含まれる場合は、フォームキャッシュ48からそのキャッシュIDに対応する中間データ(すなわちフォームの中間データ)を読み出し、読み出した中間データを処理することで、フォームの描画データを生成し、ページの描画データに対して合成する。
以上では、説明を簡潔にするために、「通常期」すなわち「キャッシュモード」の両用解釈部36−fは、フォームならばすべてキャッシュするとして説明したが、実際の装置では、すべてのフォームをキャッシュするとは限らない。キャッシュを用いるためには、キャッシュへの登録や必要なキャッシュデータの有無の問合せ等の処理のオーバーヘッドが生じる。非常に小さい又は構造が簡単なフォームの場合、中間データの生成処理に要する時間が非常に短くて済むので、そのような処理オーバーヘッドを考慮すると、キャッシュを利用しない方が処理が早いことも多い。そこで、本実施形態では、フォームのうちキャッシュした方が処理効率がよいもののみを、キャッシュすることとする。このために、本実施形態では、キャッシュした方が処理効率がよい(すなわちキャッシュ対象とする)フォームと、そうでないフォームとを判定するためのルールを定めている。この判定ルールの例を以下に示す。
(ルール1)当該フォームのバウンディングボックス(物理ページ上で当該フォームを囲むことができる最小の長方形)の画素数が、予め決められた数(「画素数閾値」と呼ぶ)より多い場合は、当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
(ルール2)当該フォームに含まれるオブジェクトの数が予め決められた数(「オブジェクト数閾値」と呼ぶ)より多い場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
(ルール3)当該フォームに予め決められた大きさ(「イメージサイズ閾値」と呼ぶ)より大きいイメージ(ビットマップ)がある場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
(ルール1)当該フォームのバウンディングボックス(物理ページ上で当該フォームを囲むことができる最小の長方形)の画素数が、予め決められた数(「画素数閾値」と呼ぶ)より多い場合は、当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
(ルール2)当該フォームに含まれるオブジェクトの数が予め決められた数(「オブジェクト数閾値」と呼ぶ)より多い場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
(ルール3)当該フォームに予め決められた大きさ(「イメージサイズ閾値」と呼ぶ)より大きいイメージ(ビットマップ)がある場合は当該フォームをキャッシュ対象とし、そうでない場合はキャッシュ対象としない。
例えば、以上に例示したルール1〜3のいずれか1つを用いて判定を行ってもよいし、2以上を組み合わせて判定を行ってもよい。2以上を組み合わせる場合は、少なくとも1つのルールで「キャッシュ対象」と判定されれば、他のルールによる判定結果によらず、当該フォームはキャッシュ対象とする。
なお、上述の画素数閾値、オブジェクト数閾値およびイメージサイズ閾値は、フロントエンド装置30やバックエンド装置40のシステム構成や性能に応じた値であり、実験やシミュレーション等で定めておけばよい。
本実施形態では、論理ページ解釈部36−p1、36−p2および両用解釈部36−fが、統一された共通の判定ルールを用いて、フォームをキャッシュ対象とするかどうかを判定する。したがって、例えば論理ページ解釈部36−p1がキャッシュ対象と判定したフォームは、論理ページ解釈部36−p2でも両用解釈部36−fでもキャッシュ対象と判定される。
また、本実施形態では、論理ページ解釈部36−p1、36−p2および両用解釈部36−fは、統一された共通のID付与ルールを用いて、フォームのキャッシュデータ(中間データ)に対してキャッシュIDを付与する。この共通のID付与ルールでは、PDLデータ中でフォームに対して付与されているフォームIDに加え、そのフォームの最終的な描画結果の画像の状態を規定する各種のパラメータを考慮して、そのフォームのキャッシュデータに付与するキャッシュIDを決定する。同じフォームIDのフォームを用いる場合でも、そのフォームを描画・印刷する際のパラメータが異なれば、最終的に印刷物上に現れるフォームの画像も異なってくるので、パラメータが異なれば別のキャッシュデータとして取り扱うのである。キャッシュIDを規定する描画等のパラメータとしては、座標変換行列(座標の回転角や拡大縮小率を表す行列)、描画属性情報(例えば線幅、ラインキャップ、ラインジョイン、マイタ―リミット、線の形状、ストローク調整、描画方式、論理演算モード、パターン情報)、クリップ情報、カラー情報等がある。1つの例では、フォームIDとそれらパラメータとを結合したものをバイナリデータとして表現し、MD5ハッシュ関数(rfc1321で定義)等のハッシュ関数を用いて、そのバイナリデータからキャッシュIDを生成する。なお、キャッシュIDの材料として用いたフォームIDおよび上述パラメータ群を、「キーデータ(Key Data)」と呼ぶ。
なお、厳密には、ハッシュ関数には衝突があるため、上述の方式では異なるキャッシュデータのキャッシュID(ハッシュ値)が同じ値となる可能性がある。ハッシュの衝突を避けるために、キーデータそのものをキャッシュIDとして用いてもよい。
ただし、キーデータはかなり長いデータとなるため、利用可能なキャッシュデータが有るか無いかを調べる際、キーデータ同士の照合にある程度の時間を要する。キャッシュ管理部38内のすべてのキャッシュエントリに対してキーデータの照合を行うにはかなりの時間がかかってしまう。そこで、以下の例では、キーデータと、そのキーデータのハッシュ値と、の組合せをキャッシュIDとして用いる。この例では、利用可能なキャッシュデータの有無を調べる際、まずハッシュ値で絞り込みを行うことで、キーデータの照合を行うキャッシュエントリの数を少なくする。
以上のように、本実施形態では、論理ページ解釈部36−p1、36−p2および両用解釈部36−fは、共通のID付与ルールを用いる。したがって、例えば論理ページ解釈部36−p1があるフォームに対してあるキャッシュIDを生成した場合(ここで論理ページ解釈部36−p1はそのフォームの中間データは生成しない)、両用解釈部36−fは同じキャッシュIDを生成し、生成したそのフォームの中間データをそのキャッシュIDに対応づけてフォームキャッシュ48に登録する。
図3に示した「初期」の段階では、両用解釈部36−fが論理ページ解釈部36−p1,36−p2と共にページの解釈を並列処理し、その解釈結果を中間データバッファ42へと出力する。この段階では、両用解釈部36−fはフォームの中間データをフォームキャッシュ48に登録しないので、フォームキャッシュ48は使用されない。描画部44は、中間データバッファ42にある各ページの中間データ(フォームの中間データもフォーム以外のオブジェクトの中間データも含んでいる)を処理し、それら各ページの中間データを生成する。
図4に示した「通常期」の段階では、論理ページ解釈部36−p1,36−p2がページの解釈を並列処理する。この段階では、両用解釈部36−fは、ページの解釈には参加せず、フォームの処理のみを行い、その結果生成したフォームの中間データをフォームキャッシュ48に登録する。描画部44は、中間データバッファ42にある各ページの中間データを処理する際、キャッシュを参照するコマンドを見つけると、そのコマンドが指し示すキャッシュデータをフォームキャッシュ48から取得して使用する。
次に、「初期」から「通常期」への移行について更に詳しく説明する。前述したように「初期」とは、印刷ジョブの開始時点から、フロントエンド装置30があらかじめ定められた量のPDLデータを処理し終わるまでの期間である。「初期」から「通常期」への移行の条件となる閾値すなわち前述の「あらかじめ定めた量」は、例えば論理ページの数として定めておく。例えば、印刷ジョブの先頭からnページ(nはあらかじめ定めた2以上の整数)までは「初期」とし、nページまでの処理(解釈)が完了した以降は「通常期」とする。
ここで、例えばn=「論理ページ解釈部36−p及び両用解釈部36−fの数」と定めてもよい。これは、印刷ジョブの最初の「論理ページ解釈部36−p及び両用解釈部36−fの数」のページを処理している期間は、両用解釈部36−fを図4に示すようにフォームのキャッシュデータ作成専用に用いるよりも、図3に示すようにページの並列的な解釈処理に参加させた方が、処理効率がよいからである。
例えば、論理ページ解釈部36−pの数が3であり、両用解釈部36−fを最初からフォームのキャッシュデータの生成専用に用いたとする。この場合、印刷ジョブの最初では、3つの論理ページ解釈部36−pにより第1ページから第3ページまでの3ページが並列的に処理されることになる。仮にそれら3ページの処理負荷が同等であれば、それら3ページの中間データはほぼ同時に完成し、バックエンド装置40に送られることになる。一方、1台しかない両用解釈部36−fを、印刷ジョブの最初からフォームのキャッシュデータの作成に用いたとすると、両用解釈部36−fは、第1ページから順にフォームのキャッシュデータを生成していくので、第3ページに初めて現れるフォームがあったとすると、そのフォームのキャッシュデータが完成してバックエンド装置40に送られるのは、印刷ジョブの処理開始からある程度の時間が経ってからのこととなる。このため、描画部44が、それら並列処理される3ページのうちの最後の方のページを処理しようとする際に、それらのページ(特に第3ページ)で用いるフォームのキャッシュデータの生成が追いつかない場合が出てくる。特に状況が厳しいのは、第3ページである。
これに対し、印刷ジョブの最初で、3つの論理ページ解釈部36−pと両用解釈部36−fにページを並列処理させ、それら各解釈部36がフォームのキャッシュデータを利用しない中間データを生成するようにすれば、上述した第3ページのフォームのキャッシュデータの生成の遅れの問題が生じない。
また、印刷ジョブの最初から両用解釈部36−fをフォームの処理専用にすると、折角4つある解釈部36のうちの3つしかページの並列処理に参加しないこととなる。この場合、第4ページは、3つの論理ページ解釈部36−pのうち、最初に割り当てられたページを最初に処理し終えた論理ページ解釈部36−pが処理することになるが、この論理ページ解釈部36−pの処理は2巡目であり、第4ページの処理が完了するのはかなり遅くなる。
これに対し、図6に示すように、印刷ジョブの最初で両用解釈部36−fをページの並列処理に参加させれば、第4ページは両用解釈部36−fにより、他の3つの論理ページ解釈部36−pで処理される第1〜第3ページと同時に処理されることとなる。この結果、印刷ジョブの最初から両用解釈部36−fをフォームの処理専用にするよりも、第4ページの解釈結果が早く得られることになる。
また、図6に例示するように、描画部44は、第1ページの中間データが完成して始めて処理を開始することができ、その後描画部44が第1〜第4ページを処理するのにある程度の時間を要する(図6最下段の「描画部のビデオ出力」)。描画部44が第4頁までの処理を終えるまでの間に各論理ページ解釈部36−pが2巡目のページの処理を進めることができるので、両用解釈部36−fがページの並列処理から外れてフォームのキャッシュデータの生成を担当しても、1巡目のような顕著な処理速度の低下は生じない。
このようなことから、本実施形態では、印刷ジョブの先頭からn(=「論理ページ解釈部36−p及び両用解釈部36−fの数」)ページまでの「初期」の期間は、それら論理ページ解釈部36−p及び両用解釈部36−fをページ処理モード1で動作させ、ページを並列処理させる。そして、フロントエンド装置30での印刷ジョブの解釈の進捗が第(n+1)ページに達した以降は、両用解釈部36−fをキャッシュデータ生成専用とすることで、各論理ページ解釈部36−pがフォームキャッシュ48の状況を確認せずに処理を進めても、同じフォームが重複して解釈されることがないようにしつつ、高速に処理を進める。
以上では、「初期」と「通常期」を分けるページ数の閾値nの代表例として、フロントエンド装置30が備える解釈部36の総数を挙げたが、nの値はこれに限られるものではない。この他にも例えばnの値を実験等に基づいて定めるようにしてもよい。
次に、図6を参照して、ページ配信部34の処理手順の例を説明する。この例では、印刷ジョブの処理が開始されると、ページ配信部34は、各解釈部36(すなわち論理ページ解釈部36−p及び両用解釈部36−f)をページ処理モード1で起動する(S1002)。すなわち、印刷ジョブの開始時点では、まだフロントエンド装置30は「初期」段階であり、論理ページ解釈部36−p及び両用解釈部36−fが、ページ処理モード1で動作し、それぞれ異なるページを処理する(並列処理)。次に、通常期への移行条件(例えば「nページまでの処理が完了」)が満たされたかどうかを判定する(S1004)。印刷ジョブの開始時点では、この判定の結果は否定(N)であり、処理はS1010に進む。
S1010では、各解釈部36に対してページの割り当てを行う。S1010では、まず、空いている解釈部36(すなわちページを処理していない解釈部36)があるかどうかを判定する(S1012)。そして、空いている解釈部36が見つかれば、見つかった解釈部36に対して、印刷データ中の未処理の先頭のページの処理を依頼する(S1014)。なお、「初期」段階では、S1014では論理ページ解釈部36−p及び両用解釈部36−fに対して、順に、異なるページを割り当て、それら異なるページを並列処理させる。一方、「通常期」段階では、S1014では、論理ページ解釈部36−pには順に異なるページを割り当てて並列処理させるが、両用解釈部36−fには、印刷データのうち「初期」段階で処理し終えたページを除くすべてのページを、1ページの処理が終わるごとに順に割り当てていく。
1つのページを空いている解釈部36に割り当てると、ページ配信部34は、印刷ジョブの全ページの解釈が完了したかどうかを判定する(S1020)。この判定の結果が否定(N)の場合、ページ配信部34はS1004にもどる。
例えば、S1010を印刷ジョブの先頭からnページ(nは「初期」から「通常期」への移行の閾値)繰り返すと、S1004の判定結果が肯定(Y)となる。この場合、ページ配信部34は、既に「通常期」に移行済みかどうかを判定し(S1006)、移行済みでなければ、各解釈部36に対し、「通常期」のモードへの切換を指示する(S1008)。すなわち、論理ページ解釈部36−pはページ処理モード2へ、両用解釈部36−fはキャッシュモードへと、それぞれ切り換える。これにより、両用解釈部36−fはフォームのキャッシュデータの作成専門となり、ページの処理は2つの論理ページ解釈部36−pに担われることとなる。そして、S1010に進む。S1006の判定結果が肯定(Y:移行済み)の場合は、S1008はスキップし、S1010に進む。
次に、図7〜図10を参照して、論理ページ解釈部36−pおよび両用解釈部36−fが実行する処理の手順を例示する。
図7は、論理ページ解釈部36−pおよび両用解釈部36−fの共通の処理手順である。この例は、ページ非独立のPDLで記述されたPDLデータを処理する場合の例である。図7の説明では、論理ページ解釈部36−pおよび両用解釈部36−fを解釈部36と総称する。これら各解釈部36は、互いに独立して、非同期的に動作する。
この手順では、解釈部36は、印刷ジョブ受信部32から、印刷ジョブのPDLデータ全体を取得する(S10)。次に、そのページ配信部34から、処理対象とするページの割り当てを受ける(S12)。解釈部36は、割り当てられたページのPDLデータを解釈する(S14)。そして、そのページの解釈が終了すると、解釈部36は、印刷ジョブ全体の解釈が完了したか否かを判定し(S16)、未完了と判定した場合は、S12に戻り、ページ配信部34にページの解釈の終了を通知し、次の担当ページの割り当てを受ける。以上の処理を、印刷ジョブ全体の解釈が完了するまで繰り返す。
ページの解釈処理(S14)では、解釈部36は、当該ページの先頭から順に、PDLデータのコマンドを1つずつ抽出し(S20)、抽出したコマンドを解釈して中間データのオブジェクトを生成する(S22)。これらS20およびS22の処理を、当該ページの最後のコマンドの処理が終了するまで繰り返す(S24)。
なお、ページ非独立のPDLデータを処理する場合には、各論理ページ解釈部36−pは、自分が担当するページか否かによらず、すべてのページのコマンドを解釈し、自分の内部状態をその解釈の結果に応じて遷移させる。そして、担当するページについては、解釈のみならず、中間データの生成も行う。これにより、先頭ページからの解釈の結果を反映した正しい中間データが生成されることになる。同様に、両用解釈部36−fは、フォーム以外のオブジェクトの描画コマンドも含むPDLデータのすべてのコマンドを解釈し、キャッシュモードでフォームのキャッシュデータを生成する際には、そのフォームの描画コマンドについては中間データの生成も行う。
中間データの生成処理(S22)の内容は、各解釈部36の動作モードによって異なる。
図8は、ページ処理モード1である場合の、論理ページ解釈部36−pおよび両用解釈部36−fのS22の詳細な処理手順の例である。この例では、各解釈部36は、割り当てられたページの各コマンドを、フォーム以外のオブジェクトの描画コマンドかフォームの描画コマンドであるかを問わずすべてを解釈し、それらすべてのコマンドの解釈の結果を表す中間データを生成する(S32)。そして、その中間データを当該ページの中間データとして出力する(S34)。したがって、ページ処理モード1で各解釈部36が生成するページの中間データには、そのページに含まれるフォームの画像を表す中間データも含まれることになる。
図9は、ページ処理モード2の論理ページ解釈部36−pによる中間データの生成処理(S22)の処理手順の一例を示す。この例では、論理ページ解釈部36−pは、処理対象のコマンド(S20で抽出したもの)がフォームオブジェクトの生成を指示する描画コマンドか否かを判定する(S30)。例えば、PostScript(登録商標)の場合、処理対象のコマンドのコマンド名が”form”であれば、そのコマンドは、フォームオブジェクトの生成を指示するコマンドである。フォームの生成を指示するコマンドには、フォームIDがパラメータとして付随する。
S30の判定結果が否定(N:フォーム生成以外のコマンド)である場合は、論理ページ解釈部36−pは、そのコマンドを解釈して中間データを生成し(S32)、その中間データを当該ページの中間データとして出力する(S34)。
S30の判定結果が肯定(Y:フォーム生成のコマンド)である場合、論理ページ解釈部36−pは、次にそのコマンドに対応するフォームの中間データがキャッシュ対象であるかどうかを、前述した統一の判定ルールに従って判定する(S36)。
S36で、そのコマンドがキャッシュ対象でないと判定した場合(S36の判定結果がN)、論理ページ解釈部36−pは、そのコマンドに付随するフォームIDを抽出し、そのフォームIDに対応するフォームのPDLデータを取得してメモリ上に展開する(S38)。例えば、PDLデータ中の2回目以降のフォームの使用箇所では、フォームIDが示されるのみで、フォームの実体を表すPDLデータが記述されない場合もある。このような場合でも、論理ページ解釈部36−pは印刷ジョブのPDLデータ中でそのフォームがはじめて使用された場所から読み取った当該フォームのPDLデータをフォームIDと対応づけて管理しているので、2回目以降の使用箇所では、その管理しているPDLデータを読み出して利用するのである。フォームのPDLデータの展開の後、論理ページ解釈部36−pは、展開したPDLデータを解釈し、中間データを生成し(S32)、その中間データを出力する(S34)。
S36で、判定対象のコマンドがキャッシュ対象であると判定した場合(S36の判定結果がY)、論理ページ解釈部36−pは、前述した統一的なID付与ルールに従い、そのコマンドに対応するキャッシュIDを生成する(S40)。S40では、そのコマンドに付随するフォームID等のパラメータ群、および論理ページ解釈部36−p自身の内部状態の情報から、キーデータを構成する各項目の値を抽出し、それら抽出した値を結合してキーデータを生成し、そのキーデータのハッシュ値を計算する。そして、そのハッシュ値とキーデータのペアを、キャッシュIDとする。
そして、論理ページ解釈部36−pは、そのキャッシュIDで示されるキャッシュデータを参照するよう指示する中間データコマンド(キャッシュ参照コマンド)を生成し、生成した中間データコマンドを出力する(S32)。このように、論理ページ解釈部36−pは、キャッシュされるフォームについては、そのフォームの実体(画像)を表す中間データを生成する代わりに、キャッシュデータを参照するコマンドを生成する。
図10は、キャッシュモードの両用解釈部36−fによる中間データの生成処理(S22)の処理手順の一例を示す。この例では、両用解釈部36−fは、処理対象のコマンド(S20で抽出したもの)がフォームオブジェクトの生成を指示するコマンドか否かを、S30と同様の方法で、判定する(S50)。S50の判定結果が否定(N)である場合、両用解釈部36−fは、そのコマンドについては何も処理を行わずに、図10の処理を終了する。
S50の判定結果が肯定(Y)である場合、両用解釈部36−fは、次にそのコマンドに対応するフォームの中間データがキャッシュ対象であるかどうかを、S36と同様、前述した統一の判定ルールに従って判定する(S52)。
S52で、そのコマンドがキャッシュ対象でないと判定した場合(S52の判定結果がN)、両用解釈部36−fは、そのコマンドについては何も処理を行わずに、図10の処理を終了する。
S52で、判定対象のコマンドがキャッシュ対象であると判定した場合(S52の判定結果がY)、両用解釈部36−fは、S40と同様の方法で、前述した統一的なID付与ルールに従い、そのコマンドに対応するキャッシュIDを生成する(S54)。そして、そのコマンドを解釈してキャッシュデータ(フォームの中間データ)を生成し(S56)、生成したキャッシュデータをそのキャッシュIDと対応づけて出力する(S58)。出力されたキャッシュIDおよびキャッシュデータのペアは、フォームキャッシュ48に登録される。
なお、S56およびS58では、同じキャッシュデータの重複した生成および登録を避けるようにしてもよい。このためには、両用解釈部36−fは、キャッシュデータを生成する前に、S54で生成したキャッシュIDに対応するキャッシュデータがフォームキャッシュ48内に存在するかどうかをキャッシュ管理部38に問い合わせ、存在しないとの回答を得た場合にのみキャッシュデータを生成するようにすればよい。キャッシュデータを生成してフォームキャッシュ48に登録した場合は、両用解釈部36−fは、そのキャッシュデータのキャッシュIDをキャッシュ管理部38に登録することで、そのキャッシュデータが登録済みであることを記録する。
なお、両用モード36−fのページ処理モード1での動作は、図8に示したものと同じである。
次に、図11および図12を参照して、バックエンド装置40の描画部44の処理手順の例を説明する。
図11に示すように、この手順では、描画部44は、まず処理対象の印刷ジョブの指定を受ける(S100)。次に、その印刷ジョブの例えば先頭ページから順に1ページずつ、ページの中間データを中間データバッファ42から取得し(S102)、取得したページの中間データを解釈する(S104)。これらS102およびS104の処理を、印刷ジョブの末尾まで、1ページずつ、繰り返し実行する(S106)。
ページの中間データの解釈処理(S104)では、は、当該ページの先頭から順に、中間データのコマンドを1つずつ抽出し(S110)、抽出したコマンドを解釈して、そのコマンドが示すラスター画像をメモリ上に描画する(S112)。これらS110およびS112の処理を、当該ページの最後の中間データコマンドの処理が終了するまで繰り返す(S114)。
ページの中間データの解釈処理(S112)では、描画部44は、図12に示すように、ページの中間データを先頭から順にコマンドを読み出し、読み出したコマンドがキャッシュデータの参照を指示するコマンド(キャッシュ参照コマンドと呼ぶ)であるかどうかを判定する(S120)。
S120の判定結果が肯定(Y)の場合、描画部44は、そのキャッシュ参照コマンドからキャッシュIDを抽出し(S122)、そのキャッシュIDに対応するキャッシュデータ(中間データ)をフォームキャッシュ48から取り出し(S124)、取り出したキャッシュデータを解釈してラスター画像を描画する(すなわち「ラスタライズ」する)(S126)。
S120の判定結果が否定(N)の場合、描画部44は、そのコマンドを解釈してラスタライズする(S126)。
以上、印刷コントローラ20の一実施形態を説明した。以上に説明したように、この実施形態では、印刷ジョブの「初期」には、フロントエンド装置30が備える解釈部36がすべてページ処理モード1で動作し、異なるページを並列的に処理するので、最初から1つの解釈部36をフォームの処理専用に用いる場合よりも、印刷ジョブの最初のページ群が高速に処理される。
また、「通常期」には、論理ページ解釈部36−pと両用解釈部36−fが、統一したID付与ルールを用い、同じ材料(すなわちフォームIDおよびフォームの印刷結果の画像を規定するその他のパラメータ)からキャッシュIDを付与する。したがって、それら解釈部36は、互いに通信することなく、同じキャッシュデータには同じキャッシュIDを付すことができる。したがって、論理ページ解釈部36−p1、36−p2が生成したページの中間データに含まれるキャッシュ参照コマンドのキャッシュIDが指し示すキャッシュデータは、両用解釈部36−fにより遅かれ早かれ必ず生成され、同じキャッシュIDに対応づけてフォームキャッシュ48に登録される。仮に、描画部44がページ中のキャッシュ参照コマンドを処理しようとした時点で、そのコマンドが指し示すキャッシュデータがフォームキャッシュ48にない場合でも、しばらく待機すれば、描画部44はそのキャッシュデータをフォームキャッシュ48から取得可能となる。ここで、本実施形態では、「初期」における各両用解釈部36−fも含む解釈部36群の解釈結果の中間データを描画部44が処理するのに要する時間だけ余裕がある。この余裕の間に、両用解釈部36−fがフォーム専用として動き始めてから、並列動作する各論理ページ解釈部36−pの解釈結果が参照するフォームのキャッシュデータの生成がかなり進む。このため、印刷ジョブの最初から両用解釈部36−fをフォーム専用として動かす場合ほどは、描画部44は各論理ページの処理に必要なキャッシュデータが生成されるのを待つ必要がなく、そのような待ち時間がほとんど生じないケースも多い。
以上に説明したように、「通常期」では論理ページ解釈部36−p1、36−p、および両用解釈部36−fがプロセス間通信を行わずに互いに独立して非同期的に動作しても、フォームの中間データをキャッシュし、再利用することが可能となる。この実施形態は、プロセス間通信のためのオーバーヘッドがない分だけ、プロセス間通信を行うシステムよりも処理が高速である。
<変形例1>
上記実施形態では、ページ処理モード1では、各解釈部36は、単に各ページの中間データを生成するのみであり、その生成の際にできるフォームの中間データをフォームキャッシュ48に登録することはしなかった。これに対し、この変形例1では、ページ処理モード1の各解釈部36が、生成したフォームの中間データをフォームキャッシュ48に登録する。
上記実施形態では、ページ処理モード1では、各解釈部36は、単に各ページの中間データを生成するのみであり、その生成の際にできるフォームの中間データをフォームキャッシュ48に登録することはしなかった。これに対し、この変形例1では、ページ処理モード1の各解釈部36が、生成したフォームの中間データをフォームキャッシュ48に登録する。
この変形例1のページ処理モード1の手順の例を、図13に示す。図13に例示する手順は、図9に例示したページ処理モード2の手順に幾分似ている。図13において、図9に示したステップと同様の処理を行うステップには、図9の場合と同様の符号を付す。
図13に示すように、ページ処理モード1の各解釈部36は、まず処理対象のコマンド(S20で抽出したもの)がフォームオブジェクトの生成を指示する描画コマンドか否かを判定する(S30)。S30の判定結果が否定(N:フォーム生成以外のコマンド)である場合は、解釈部36は、そのコマンドを解釈して中間データを生成し(S32)、その中間データを当該ページの中間データとして出力する(S34)。
S30の判定結果が肯定(Y:フォーム生成のコマンド)である場合、解釈部36は、次にそのコマンドに対応するフォームの中間データがキャッシュ対象であるかどうかを、前述した統一の判定ルールに従って判定する(S36)。
S36で、そのコマンドがキャッシュ対象でないと判定した場合(S36の判定結果がN)、論理ページ解釈部36−pは、そのコマンドに付随するフォームIDを抽出し、そのフォームIDに対応するフォームのPDLデータを取得してメモリ上に展開する(S38)。そして、解釈部36は、展開したPDLデータを解釈し、中間データを生成し(S32)、その中間データを出力する(S34)。
S36で、判定対象のコマンドがキャッシュ対象であると判定した場合(S36の判定結果がY)、解釈部36は、前述した統一的なID付与ルールに従い、そのコマンドに対応するキャッシュIDを生成する(S40)。また、各解釈部36は、当該フォームのPDLデータを展開して解釈することで、そのフォームの中間データを生成し(S46)、生成した中間データをS40で生成したキャッシュIDと対応づけてフォームキャッシュ48に登録する(S47)。そして、解釈部36は、S46で生成したフォームの中間データを論理ページの解釈結果の一部として中間データバッファ42に出力する(S48)
このように、この変形例では、「通常期」に移行した時点でフォームキャッシュ48内にある程度のフォームの中間データ(キャッシュデータ)が蓄積されていることになるので、「通常期」での描画部44のキャッシュデータの生成完了待ちが低減される。
図13の手順において、解釈部36がキャッシュ管理部38に対し、S40で生成したキャッシュIDに対応するキャッシュデータがフォームキャッシュ48に登録済み(あるいは既に他の解釈部36が作成中)であるか否かを問い合わせるようにしてもよい(プロセス間通信)。この問合せの結果、登録済み(又は作成中)であることが分かった場合、解釈部36は、S46〜S48に代えて、ページ処理モード2(図9)のS42の処理を行う。これにより、キャッシュデータの重複作成、重複登録が防止される。一方、その問合せで、キャッシュIDに対応するキャッシュデータがまだ作成されていないことが判った場合、解釈部36が、キャッシュ管理部38に対してそのキャッシュIDに対応するキャッシュデータを作成する旨を通知する。この通知に応じ、キャッシュ管理部38が、そのキャッシュIDに対応するキャッシュIDが作成中であることを記録し、他の解釈部36からの問合せに対してその記録に基づいて回答を行う。
<変形例2>
変形例2は、ページ配信部36の処理手順(図6)に関する変形例である。この変形例2では、図6の手順のS1006の判定結果が肯定(Y:「通常期」に移行済み)の場合、ページ配信部34は、更に、両用解釈部36−fが印刷ジョブの最後のページまで処理を終えたか否かを判定する(S1030)。この判定の結果が肯定(Y)の場合、両用解釈部36−fの現在の動作モードがキャッシュモードであるか否かを判定し(S1032)、この判定の結果が肯定(Y)の場合、両用解釈部36−fの動作モードをページ処理モード2(図9)に切り換え(S1034)、図6のS1010に進む。S1030又はS1032の判定結果が否定(N)の場合、S1034はスキップし、S1010に進む(両用解釈部36−fはキャッシュモードに維持)。
変形例2は、ページ配信部36の処理手順(図6)に関する変形例である。この変形例2では、図6の手順のS1006の判定結果が肯定(Y:「通常期」に移行済み)の場合、ページ配信部34は、更に、両用解釈部36−fが印刷ジョブの最後のページまで処理を終えたか否かを判定する(S1030)。この判定の結果が肯定(Y)の場合、両用解釈部36−fの現在の動作モードがキャッシュモードであるか否かを判定し(S1032)、この判定の結果が肯定(Y)の場合、両用解釈部36−fの動作モードをページ処理モード2(図9)に切り換え(S1034)、図6のS1010に進む。S1030又はS1032の判定結果が否定(N)の場合、S1034はスキップし、S1010に進む(両用解釈部36−fはキャッシュモードに維持)。
変形例2によれば、印刷ジョブで用いられるすべてのキャッシュデータの生成が終わった後、両用解釈部36−fが再びページの並列処理に参加することになり、処理速度の向上が見込まれる。
<変形例3>
上記実施形態のフロントエンド装置30では、通常期の間、論理ページ解釈部36−p1、36−p2、および両用解釈部36−fはキャッシュのためのプロセス間通信を行わなかった。これに対し、この変形例3のフロントエンド装置30は、通常期において、上記実施形態のようにプロセス間通信を行わないモード(「非プロセス間通信モード」と呼ぶ)と、論理ページ解釈部36−p1、36−p2、および両用解釈部36−fがキャッシュのためのプロセス間通信を行うモード(「プロセス間通信モード」と呼ぶ)と、いう2つの動作モードを有する。そして、状況に応じて動作モードを切り換えることで、より的確なキャッシュ制御を実現する。なお、「通常期」にある論理ページ解釈部36−pでは、「非プロセス間通信モード」とは前述の「ページ処理モード2」(図9参照)のことである。
上記実施形態のフロントエンド装置30では、通常期の間、論理ページ解釈部36−p1、36−p2、および両用解釈部36−fはキャッシュのためのプロセス間通信を行わなかった。これに対し、この変形例3のフロントエンド装置30は、通常期において、上記実施形態のようにプロセス間通信を行わないモード(「非プロセス間通信モード」と呼ぶ)と、論理ページ解釈部36−p1、36−p2、および両用解釈部36−fがキャッシュのためのプロセス間通信を行うモード(「プロセス間通信モード」と呼ぶ)と、いう2つの動作モードを有する。そして、状況に応じて動作モードを切り換えることで、より的確なキャッシュ制御を実現する。なお、「通常期」にある論理ページ解釈部36−pでは、「非プロセス間通信モード」とは前述の「ページ処理モード2」(図9参照)のことである。
図15に、この変形例の印刷コントローラ20の構成例を示す。図15において、図3に例示した要素と同様の要素には同じ符号を付す。
図15の例は、論理ページ解釈部36−p1、36−p2がプロセス間通信モードでキャッシュ管理部38と通信する点(およびその通信に応じて処理手順を切り換える点)が、図4の構成と異なる。
図15の変形例におけるキャッシュ管理部38の内部構成の例を図16に示す。このキャッシュ管理部38は、両用解釈部36−fの一部であってもよいし、両用解釈部36−fとは別のプロセスであってもよい。以下では、一例として、キャッシュ管理部38は、両用解釈部36−fの一部である場合を例にとって説明する。
この例では、キャッシュ管理部38は、通信制御部382、キャッシュ制御部384およびキャッシュテーブル386を有する。通信制御部382は、複数の解釈部36との通信を制御し、それら解釈部36からのキャッシュ問合せ等の要求を受信し、それら要求を調停してキャッシュ制御部384に要求を渡す。キャッシュ制御部384は、通信制御部382を介して受け取った要求に応じてキャッシュテーブル386の操作を行う。キャッシュテーブル386は、フォームキャッシュ48内に登録したキャッシュデータの管理情報を保持するテーブルである。
キャッシュテーブル386には、個々のキャッシュデータごとに、図17に示すように、キャッシュID(ここでは前述したキーデータのハッシュ値)、キーデータ、フォームキャッシュ48内でのキャッシュデータの実体の格納場所の情報が登録されている。図示の例は、キャッシュデータをメモリ上に格納する場合の例であり、格納場所の情報は、その格納場所の先頭アドレスとサイズにより表されている。このようにキャッシュデータをメモリ上に格納する代わりに、ファイルとして保存し管理してもよく、この場合には、「格納場所」には、アドレスとサイズの組ではなく、キャッシュデータを格納するファイルのファイル名を記録すればよい。
この例では、フォームキャッシュ48からキャッシュデータの実体を削除した場合、キャッシュテーブル386内のそのキャッシュデータの格納場所の値が、あらかじめ定めた無効なアドレスおよびサイズ(例えばヌル値)に変更される。したがって、キャッシュID(ハッシュ値およびキーデータの組)に対応するエントリがキャッシュテーブル386に存在し、且つそのエントリにおける格納場所が無効でない値である場合に、そのキャッシュIDに対応する実体データ(キャッシュデータ)がフォームキャッシュ48内に存在することになる。
また、図17の例では、キャッシュテーブル386には、キャッシュエントリごとに、キャッシュ管理のための数値情報として、アクセスカウント値および参照カウント値が記録される。
アクセスカウント値は、当該エントリのキャッシュデータの累計の使用頻度を表す値であり、解釈部36から当該エントリのキャッシュIDへの参照がある度に1ずつ加算される。ここで、「参照がある」とは、そのキャッシュIDに対する参照を示すキャッシュ参照コマンドが中間データに組み込まれることを意味する。したがって、仮に、論理ページ解釈部36−pが、フォームの処理に当たってキャッシュIDに対する問合せを行った結果、キャッシュ参照コマンドではなく、そのフォームの実体を表す中間データを作成した場合には、そのキャッシュIDに対するアクセスカウント値はインクリメントされない。アクセスカウント値が大きいキャッシュデータほど、印刷ジョブのこれまでの処理において多く使用され(すなわち数多く印刷され)ており、キャッシュ利用による処理速度向上への貢献が大きい。
参照カウント値は、中間データバッファ42中のページ群の中間データ(すなわち描画部44によりまだ処理されていない中間データ)の中に、当該エントリのキャッシュデータへの参照がいくつ含まれているかを表す値である。この値は、解釈部36から当該エントリのキャッシュIDへの参照がある度に1ずつ加算され、描画部44から当該エントリのキャッシュIDへ参照がある(すなわちそのエントリのキャッシュデータが描画される)度に1ずつ減算される。あるエントリの参照カウント値が1以上であれば、中間データバッファ42中に、そのエントリのキャッシュデータを参照しているページが存在するので、そのキャッシュデータをフォームキャッシュ48から削除することはできない。逆にあるエントリの参照カウント値が0であれば、そのエントリのキャッシュデータは現時点では削除して構わないことになる。
アクセスカウント値および参照カウント値は、プロセス間通信モードでは、論理ページ解釈部36−pからの参照に応じてインクリメント(1増加)され、両用解釈部36−fからの参照ではインクリメントされない。論理ページ解釈部36−p群は印刷ジョブのページ群を分担して処理し、両用解釈部36−fはその印刷ジョブの全ページを処理するので、それら両者からの参照の両方をカウントすると、二重カウントになる。そこで、ここでは、論理ページ解釈部36−p群からの参照のみをカウントする。両用解釈部36−fではなく、論理ページ解釈部36−p群からの参照をカウントするのは、その方が実際に論理ページの印刷画像を生成する際のキャッシュデータの参照回数をより直接的に示しているからである。ただし、これは一例に過ぎず、プロセス間通信モードでも、両用解釈部36−fからの参照の方をカウントするようにしてもよい。
一方、非プロセス間通信モードでは、アクセスカウント値および参照カウント値は、両用解釈部36−fからの参照によりインクリメント(1増加)される。これは、非プロセス間通信モードでは、論理ページ解釈部36−pからの参照が行われないからである。
キャッシュ制御部384は、キャッシュテーブル386(ひいてはフォームキャッシュ48)に対してどのようなサイズのキャッシュデータを登録又は削除したかを監視しており、この監視処理に基づいて、フォームキャッシュ48の空き容量(すなわち「フォームキャッシュ48の容量」−「フォームキャッシュ48内のキャッシュデータの合計サイズ」)を更新し管理している。
解釈部36からキャッシュ制御部384への要求には、例えば、問合せ要求、領域確保要求、および登録要求がある。
問合せ要求は、キャッシュデータがフォームキャッシュ48内に存在するか否かを問い合わせるための要求であり、そのキャッシュデータを特定するキャッシュID(ハッシュ値およびキーデータの組)を引数とする。問合せ要求を受けた場合、キャッシュ制御部384は、その要求の引数のキャッシュIDに対応するエントリをキャッシュテーブル386から探し、そのようなエントリが見つかり且つそのエントリ内の格納場所の値が有効である場合は「該当するキャッシュデータがある」と判定し、そうでない場合は「該当するキャッシュデータがない」と判定する。そして、その判定の結果を通信制御部382経由で要求元の解釈部36に回答する。
領域確保要求は、解釈部36が生成したキャッシュデータを格納するための容量の確保を依頼するための要求であり、例えば、そのキャッシュデータを特定するキャッシュID(ハッシュ値およびキーデータの組)と、そのキャッシュデータのサイズを引数とする。領域確保要求を受けた場合、キャッシュ制御部384は、その引数のキャッシュデータのサイズがフォームキャッシュ48の空き容量以下か否かを判定する。そして、そのサイズが空き容量以下であれば、そのサイズ分の格納場所を確保し、その格納場所を表す情報(例えば先頭アドレスとサイズ)を含んだ「領域確保済み」の回答を返す。引数のキャッシュデータのサイズがフォームキャッシュ48の空き容量を超える場合は、フォームキャッシュ48内にあるキャッシュデータを削除することで、そのサイズに応じた領域が確保できるかどうか調べる。ここでは、参照カウント値が0であるエントリをキャッシュテーブル386から探し、見つけたエントリ群の実データを削除することで、新たに登録したいキャッシュデータのサイズを収容できるだけの空き容量が確保できるかどうかを判定すればよい。ここで、参照カウント値が0であるキャッシュデータをすべて削除する必要はなく、登録したいキャッシュデータのサイズを収容できるだけの空き容量を確保するための最小限のキャッシュデータのみを削除するようにしてもよい。この場合、アクセスカウント値が少ない(つまり利用頻度が少ない)キャッシュデータから優先的に削除対象に選んでいくようにすればよい。
このようにして、参照カウント値が0のキャッシュデータ群を削除することで領域確保要求を満たすための空き容量が得られた場合には、キャッシュ制御部384は、削除対象に選んだ各キャッシュデータをフォームキャッシュ48から削除し、その空き容量の中から、その要求に応じたサイズの格納場所を確保する。そして、キャッシュIDと確保した格納場所を表す情報(例えば先頭アドレスとサイズの組)とを含んだ、「領域確保成功」を示す応答を、要求元の解釈部36に返す。また、このときキャッシュ制御部384は、キャッシュテーブル386内のそのキャッシュのエントリの「格納場所」のデータを、無効を示すあらかじめ定めた値に書き換える。「領域確保成功」を示す応答を受けた解釈部36は、キャッシュ管理部38に対してキャッシュデータの登録要求を送る。
一方、参照カウント値が0のキャッシュデータをすべて削除しても領域確保要求を満たすための空き容量が得られない場合は、キャッシュ制御部384は、「領域確保失敗」を示す応答を、要求元の解釈部36に返す。「領域確保失敗」の応答を受けた解釈部36は、生成したキャッシュデータをキャッシュに登録せずに破棄する。
なお、この例では、フォームのキャッシュデータを作成するのは両用解釈部36−fであり、論理ページ解釈部36−pはキャッシュデータを作成しない(すなわち、フォームの中間データを作成することはあるものの、それをキャッシュすることはしない)ので、領域確保要求および登録要求を発するのは両用解釈部36−fのみである。
次に、非プロセス間通信モード及びプロセス間通信モードの特徴について説明する。
非プロセス間通信モードは、通信のためのオーバーヘッドがない分だけ処理が高速である。しかし、論理ページ解釈部36−pが生成したキャッシュ参照コマンドは、必ず解決される(すなわち、すぐでなくてもよいが、いずれ必ずそのキャッシュ参照コマンドが指し示すキャッシュデータがフォームキャッシュ48に存在することになる)必要があるため、フォームキャッシュ48からキャッシュデータを削除することができない。なぜなら、フォームキャッシュ48からキャッシュデータを削除してしまうと、その削除を知らずに論理ページ解釈部36−pが生成したキャッシュ参照コマンドが解決できなくなるケースが出てくるからである。
一方、プロセス間通信モードは、通信のためのオーバーヘッドがあるため、処理速度は非プロセス間通信モードよりも遅い。しかし、フォームキャッシュ48からキャッシュデータを削除しても、キャッシュ利用のシステムが破綻しないようにすることができる。すなわち、論理ページ解釈部36−pは、参照したいフォームのキャッシュデータがフォームキャッシュ48に存在するかどうかをプロセス間通信により確認し、もし存在しなければそのフォームの中間データを自ら生成するという対処をとることが可能となる。
フロントエンド装置30の動作モードの切換には、(a)プロセス間通信モードから非プロセス間通信モードへの切換と、(b)非プロセス間通信モードからプロセス間通信モードへの切換という2つの方向がある。以下、それぞれの方向について説明する。
(a)プロセス間通信モードから非プロセス間通信モードへの切換
これは、プロセス間通信モードで動作している状態から、ある条件が満たされると非プロセス間通信モードに移行するという方向である。この方向の切換は、例えば、「通常期」の最初の方で行う。すなわち、この例では、通常期の開始時点では、フロントエンド装置30をプロセス間通信モードで動作させる。そして、フロントエンド装置30が通常期に移行した後印刷ジョブをあらかじめ定めた量(例えばあらかじめ定めたページ数)だけ処理し終わると、動作モードを非プロセス間通信モードに切り換える。
これは、プロセス間通信モードで動作している状態から、ある条件が満たされると非プロセス間通信モードに移行するという方向である。この方向の切換は、例えば、「通常期」の最初の方で行う。すなわち、この例では、通常期の開始時点では、フロントエンド装置30をプロセス間通信モードで動作させる。そして、フロントエンド装置30が通常期に移行した後印刷ジョブをあらかじめ定めた量(例えばあらかじめ定めたページ数)だけ処理し終わると、動作モードを非プロセス間通信モードに切り換える。
なお、図5を参照して既に説明した通り、実施形態の構成では、通常期の最初から各論理ページ解釈部36−pを非プロセス間通信モード(すなわちページ処理モード2)で動作させても、描画部44のキャッシュデータ生成待ちは起こりにくい。したがって、通常期の最初はプロセス間通信モードとし、その後非プロセス間通信モードに切り換えるという制御は行わなくてもよい。
(b)非プロセス間通信モードからプロセス間通信モードへの切換
これは、非プロセス間通信モードで動作している状態から、ある条件が満たされるとプロセス間通信モードに移行するという方向である。この方向の切換は、例えば、フォームキャッシュ48内のキャッシュデータの総量がフォームキャッシュ48の容量に近づいた(すなわちキャッシュが満杯に近づいた)段階で行う。
これは、非プロセス間通信モードで動作している状態から、ある条件が満たされるとプロセス間通信モードに移行するという方向である。この方向の切換は、例えば、フォームキャッシュ48内のキャッシュデータの総量がフォームキャッシュ48の容量に近づいた(すなわちキャッシュが満杯に近づいた)段階で行う。
キャッシュデータの総量がフォームキャッシュ48の容量に近づくと、新たなキャッシュデータを登録しようとする際にフォームキャッシュ48の空き容量が足りなくなる場合が出てくる。そのような場合、フォームキャッシュ48内の既存のキャッシュデータを削除することで空き容量を増やし、新たフォームキャッシュ48が登録できるようにする必要がある。ところが、非プロセス間通信モード時にフォームキャッシュ48からいずれかのキャッシュデータを削除すると、前述したように、そのキャッシュデータが存在することを前提としているページの描画が不可能になってしまう。一方、プロセス間通信モードでは、各論理ページ解釈部36−pは、必要とするフォームのキャッシュデータが入手可能か否かを常に確認し、入手可能な場合にはキャッシュデータを参照する中間データコマンドを生成し、入手不可の場合はそのフォームの実体を表す中間データを生成する。このため、あてにしていたキャッシュデータがないため描画が不可能になる、という事態は生じない。
これとは逆に、フォームキャッシュ48内のキャッシュデータの総量がそれほど多くなく、新たに生成されるキャッシュデータを収容できる空き容量が十分に確保できている状況では、処理速度が速い非プロセス間通信モードを採用した方が、処理効率がよい。
このようなことから、キャッシュデータの総量がフォームキャッシュ48の容量に近づくまでは非プロセス間通信モードを採用し、近づくとプロセス間通信モードに切り換えるという制御が考えられる。
なお、「キャッシュデータの総量がフォームキャッシュ48の容量に近づいた」か否かは、例えば、フォームキャッシュ48内のキャッシュデータの総量を閾値と比較することにより判定すればよい。この例では、例えばフォームキャッシュ48に割り当てられたメモリ容量(=キャッシュデータの総量の上限値)をもとに(例えばそのメモリ容量の90%を閾値とするなどの方法で)閾値を定め、フォームキャッシュ48内のキャッシュデータの総量がその閾値に達すると、「キャッシュデータの総量がフォームキャッシュ48の容量に近づいた」と判定する。
次に、この変形例における動作モードの切換制御の手順の例を説明する。この切換制御の手順は、図6に示したページ配信部34の処理手順の一部として実行される。
ある例では、ページ配信部34は、通常期に移行すると、図18に示すように、フォームキャッシュ48の空き容量を監視(空き容量はキャッシュ管理部38に問合せることで分かる)し、その空き容量があらかじめ定めた閾値以上であれば(S1040の判定結果が否定(N))、非プロセス間通信モード(論理ページ解釈部36−pはページ処理モード2)を維持する。一方、フォームキャッシュ48の空き容量が閾値を下回ると(S1040の判定結果が肯定(Y))、論理ページ解釈部36−pがページ処理モード2(すなわち非プロセス間通信モード)であるかどうかを判定する(S1042)。そして、S1042の判定結果が肯定(Y)の場合、論理ページ解釈部36−pおよび両用解釈部36−fの動作モードをプロセス間通信モードに切り換え(S1044)、S1010(図6)に進む。S1040又はS1042の判定結果が否定(N)の場合、S1044はスキップし、S1010に進む。この場合、論理ページ解釈部36−pはページ処理モード2を維持し、両用解釈部36−fはキャッシュモードに維持する。
S1044でプロセス間通信モードに切り換えることにより、フォームキャッシュ48内の既存のキャッシュデータを削除し、新たに必要になったキャッシュデータを登録することが可能となる。この手順は、フォームキャッシュ48の容量が印刷ジョブで用いられるキャッシュ対象のフォームの中間データの総量より少ない場合でも適切に機能する。
次に、図18の手順の変形例を、図19を参照して説明する。図19において、図18に示したステップと同じステップには同じ符号を付して説明を省略する。
この処理の前提として、キャッシュ管理部38は、フォームキャッシュ48のヒット率を管理しているものとする。例えば、キャッシュ管理部38は、論理ページ解釈部36−p群から受けたキャッシュデータの有無の問合せ要求の総数と、その総数のうち「該当するキャッシュデータあり」(すなわち「キャッシュヒット」)の回答を返した数とを記録しており、それらの数値から常に最新のヒット率(ヒット数÷問合せ総数)を求めて保持している。
図19の手順では、S1042の判定結果が否定(N)となった場合(すなわち論理ページ解釈部36−pがプロセス間通信モードである)、ページ配信部34は、キャッシュ管理部38に対してヒット率を問い合わせる(S1046)。そのヒット率があらかじめ定めた閾値以上(S1048の判定結果が否定(N))であれば、プロセス間通信モードを維持する。すなわち、ヒット率が閾値以上であれば、フォームキャッシュ48が有効利用されているとみなし、現在の状態を維持するのである。
これに対し、ヒット率がその閾値を下回った場合(S1048の判定結果が肯定(Y))、それはフォームキャッシュ48に格納されているキャッシュデータ群があまり利用されなくなってきているということを意味する。例えば、印刷ジョブの途中で使用するフォームががらりと入れ替わると、このようなことが生じる。すなわち、入れ替わりの前にフォームキャッシュ48に格納されたキャッシュデータは入れ替わり後にはあまり利用さなくなる一方、入れ替わり後の新たなフォームは空き容量の不足からあまりフォームキャッシュ48に登録され難くなり、ヒット率の低下が生じるのである。このような場合、ページ配信部34は、キャッシュ管理部38に対し、有効利用されていないキャッシュデータをフォームキャッシュ48から一括削除するよう指示する(S1050)。
この指示を受けて、キャッシュ管理部38は、キャッシュテーブル386の情報から、現在有効利用されていないキャッシュデータを特定する。例えば、キャッシュデータごとに、利用度合いの指標値、すなわち「アクセスカウント値÷現在割り当て済みの総ページ数」を計算し、その指標値があらかじめ定めた閾値以上であればそのキャッシュデータは「現在有効利用されている」と判定し、その指標値が下回った場合に、そのキャッシュデータは「現在有効利用されていない」と判定すればよい。そして、このように特定した「現在有効利用されていない」キャッシュデータのうち、参照カウント値が0(すなわち現在参照されていないもの)をフォームキャッシュ48から一括削除する。
なお、「アクセスカウント値÷現在割り当て済みの総ページ数」の値は、例えばジョブの最初の方では利用されていたがその後利用されなくなったキャッシュデータの場合も、最近のページになって利用され始めてきたキャッシュデータの場合も共に低い値になる。しかし、後者のキャッシュデータの場合は最近利用されているので、参照カウント値が1以上である可能性が高く、一括削除の対象になりにくい。
また、図20に例示するように、キャッシュテーブル386にて、累計のアクセスカウント値の他に、最近のアクセスカウント値を管理し、S1050では、最近のアクセスカウント値が少ないもの(例えばあらかじめ定めた閾値を下回るもの)を一括削除するようにしてもよい。なお、「最近のアクセスカウント値」としては、例えば、現在時点から見て直近のあらかじめ定めたページ数のページ群におけるアクセスカウント値の合計、等を用いればよい。
S1050の後、ページ配信部34は、各解釈部36を非プロセス間通信モードに切り換える(S1052)。すなわち、論理ページ解釈部36−pをページ処理モード2(図9)に切り換え、両用解釈部36−fをキャッシュモード(図10)に切り換える。そして、図6のS1010に進む。
図21に、この変形例3における、両用解釈部36−fの全体的な処理手順を示す。この手順は、図7に例示した論理ページ解釈部36−pおよび両用解釈部36−fの全体的な処理手順に対し、動作モード切換時の処理であるS17およびS18を追加したものである。
すなわち、図21の手順では、両用解釈部36−fは、ページ配信部34から新たなページの割り当てを受けると(S12)、動作モード切換中か否かを判定する(S14)。「動作モード切換中」でなければ、S14に進む。これにより、図7と同じ処理が行われる。一方、「動作モード切換中」であれば、ページ同期処理を行う(S18)。
「動作モード切換中」という状態は、フロントエンド装置30が、プロセス間通信モードから非プロセス間通信モードへ、または非プロセス間通信モードからプロセス間通信モードへと移行する途中(遷移段階)の状態である。この状態では、フロントエンド装置30内の両用解釈部36−fおよび論理ページ解釈部36−pは、以下に説明するページ同期処理を行う。ページ同期処理を行っている間は、両用解釈部36−fと、論理ページ解釈部36−p群とのいずれか一方は処理を中断して待機状態となり、もう一方が処理を進めることで、両者の処理するページを同期させる。「動作モード切換中」の段階ではまだ動作モードの切換は行わず、「動作モード切換中」が解除されて初めて動作モードの切換を行う。
この例では、プロセス間通信モードから非プロセス間通信モードへ、または非プロセス間通信モードからプロセス間通信モードへ動作モードを切り換える指示を受けるとフロントエンド装置30は「動作モード切換中」となる。この状態は、動作モードの切換のための準備を行う状態であり、ただし、この段階では、まだ動作モードの切換は行わない。その後、ページ同期処理が完了するまで「動作モード切換中」の状態が続き、ページ同期処理が完了すると「動作モード切換中」の状態は解除され、動作モードが切り換えられる。この例では、ページ配信部34が、各論理ページ解釈部36−pおよび両用解釈部36−fに対して何ページ目までのページを割り当てたかという情報と、キャッシュ管理部38が管理している現在キャッシュ中のキャッシュデータの総量の情報と、に基づき、前述の(a)および(b)の各方向の動作モードの切換が必要になったかどうかを判定する。そして、切換が必要になった場合には、動作モードの切換を両用解釈部36−fに指示する。この指示に応じて、両用解釈部36−fは「動作モード切換中」状態となり、ページ同期処理(S18)を実行する。
ページ同期処理とは、並列動作する論理ページ解釈部36−p群と、両用解釈部36−fと、の間で、ページ処理の進捗を合わせる(すなわち、両者が処理しているページの番号が同じになるようにする)処理である。
図22に、ページ同期処理(S18)の処理手順の一例を示す。この例では、両用解釈部36−fは、両用解釈部36−fが現在処理しているページの番号Nfと、複数の論理ページ解釈部36−pが現在処理しているページの番号のうち最も大きな番号Npと、が同じであるかどうかを判定する(S130)。NfおよびNpの値は、ページ配信部34に問い合わせればよい。NfとNpが同じ値でない場合、フォームの処理と論理ページの処理とが同期していないことになる。この場合、更に、NfとNpを比較し、Nfの方がNpよりも大きいか否かを判定する(S132)。
この判定結果が否定(N)の場合、論理ページの解釈処理の方が、フォームの解釈処理よりも先に進んでいるということなので、両用解釈部36−fは、各論理ページ解釈部36−pに対して処理中断を指示する(S134)。この指示を受けた各論理ページ解釈部36−pは、例えば現在処理中のページについての中間データの生成が完了し次第、中断状態となり、ページ配信部34に対する次のページの配信要求を行わずに待機する。この中断状態は、処理再開指示を受けるまで続く。S134の後、両用解釈部36−fはS14(図21)に進み、当該ページのフォームの解釈および中間データ生成の処理を行う。そして、両用解釈部36−fが次のページの割り当てを受けると(図21のS12)、まだ「動作モード切換中」なので、図22のページ同期処理が行われることになる。このようにして、両用解釈部36−fの処理が処理中断中の論理ページ解釈部36−pの進捗に追いつくまで、S130→S132→S134→S14→S12→S17→S130の処理ループが繰り返される。
このようにして、両用解釈部36−fの処理進捗が、論理ページ解釈部36−pの処理進捗に追いつくと、S130の判定結果が肯定(Y)となる。この場合、両用解釈部36−fは、「動作モード切換中」の状態から抜け出し、自身の動作モードを切り換える。また、両用解釈部36−fは、論理ページ解釈部36−pに対して処理中断指示を発しているかどうかを判定し(S136)、発している場合は、論理ページ解釈部36−pに対して処理再開指示を発する(S138)。処理再開指示を受けた各論理ページ解釈部36−pは、自身の動作モードを切り換え、処理を再開する。
S132の判定結果が肯定(Y)の場合、両用解釈部36−fは、S12で割り当てられたページの処理は行わずに待機し(S133)、S130に戻る。このようにして、論理ページ解釈部36−pの処理が待機中の両用解釈部36−fの進捗に追いつくまで、S130→S132→S133→S12→S17→S130の処理ループが繰り返される。そして、論理ページ解釈部36−pの処理進捗が、両用解釈部36−fの処理進捗に追いつくと、S130の判定結果が肯定(Y)となる。すると、両用解釈部36−fは自身の動作モードを切り換えるとともに、各論理ページ解釈部36−pに対して動作モードの切換を指示する。
以上、ページ同期処理の例を説明した。動作モードを切り換える際にページ同期処理を行うことで、切換後の動作モードでの処理を、両用解釈部36−fと論理ページ解釈部36−pの処理進捗状況が一致した状態から開始することが可能となる。
例えば、非プロセス間通信モードで論理ページ解釈部36−pが両用解釈部36−fよりも先のページを処理している時点を考える。この時点では、未作成のキャッシュデータを参照するキャッシュ参照コマンドを含んだページの中間データが中間データバッファ42内に存在する可能性がある。この時点で、仮に、キャッシュデータの総量がフォームキャッシュ48の容量に近づいたため、動作モードを非プロセス間通信モードからプロセス間通信モードに切り換えたとする。この場合、プロセス間通信モードへの切換に応じて、新たに生成されるキャッシュデータをフォームキャッシュ48に格納するために、フォームキャッシュ48からの既存のキャッシュデータを削除することが可能になる。これにより、中間データバッファ42内のまだ描画部44で処理されていないページが参照しているキャッシュデータが、フォームキャッシュ48から削除されてしまい、そのページの画像が生成できなくなってしまう可能性が出てくる。
また、プロセス間通信モードで論理ページ解釈部36−pが両用解釈部36−fよりも先のページを処理している状況を考える。この状況で、いずれかの論理ページ解釈部36−pが新たに出現したフォームのキャッシュデータの有無を問い合わせると、キャッシュ管理部38は「キャッシュデータ無し」の旨の回答を返し、その論理ページ解釈部36−pはキャッシュを参照しない中間データ(そのフォームの中間データを含んでいる)を作成する。その後、両用解釈部36−fがそのフォームを処理する時点で、そのフォームのキャッシュデータをフォームキャッシュ48に登録する可能性があるが、この登録したキャッシュデータが後のページで使用されるかどうかは分からない。このように、参照される可能性のないキャッシュデータを登録してしまう可能性がある。
以上に例示したような不具合は、動作モード切換時にページ同期処理を行うことで、解消される。
なお、図22の例では、ページ同期において、論理ページ解釈部36−p群と両用解釈部36−fとが処理しているページ番号が同じになるようにしたが、これは一例に過ぎない。この代わりに、両用解釈部36−fが論理ページ解釈部36−p群に対して少し進んだページ番号を処理している状態となるように、同期をとってもよい。すなわち、両用解釈部36−fの方が論理ページ解釈部36−p群よりも少し先を処理している状態であれば、非プロセス間通信モードでもプロセス間通信モードでも、論理ページ解釈部36−pが処理するページに含まれるフォームのキャッシュデータはほぼ必ずフォームキャッシュ48に存在する。このため、並列処理とキャッシュ利用の効果を最大限に利用して高速な処理が可能となる。これに対し、両用解釈部36−fの処理が論理ページ解釈部36−p群よりも遙かに先を処理していると、両用解釈部36−fが作成したキャッシュデータが、論理ページの描画の際に必要とされる前にキャッシュ空き容量の逼迫等により削除されてしまう可能性が高くなる。このような不具合は、動作モード切換時に、両用解釈部36−fが論理ページ解釈部36−p群に対して少し進んだ進捗状態となるように同期することで解消され、高速な処理が可能となる。
また、両用解釈部36−fが論理ページ解釈部36−p群に対して同じページ番号乃至少し進んだページ番号を処理している状態となるよう、ある幅を持った範囲でページ同期をとるようにしてもよい。
図21および図22の例では、両用解釈部36−fがページ同期処理を実行したが、この代わりにページ配信部34がページ同期処理を行ったり、ページ同期処理専用の機能モジュールを設けたりしてもよい。
なお、プロセス間通信モードから非プロセス間通信モードへ切り換えた際、フォームキャッシュ48およびキャッシュ管理部38をリセット(すなわちクリア)する必要はない。切換後に、両用解釈部36−fがPDLデータからキャッシュ対象のフォームを見つけるごとに、そのフォームに対応するキャッシュエントリの有無をキャッシュ管理部38に問い合わせればよい。
また、プロセス間通信モードから非プロセス間通信モードへ切り換えた際、各キャッシュエントリのアクセスカウント値をリセットするようにしてもよい。特に、図19の動作モード切換方式を用いる場合に、S232でのキャッシュのヒット率低下検知に応じてS224で非プロセス間通信モードに切り換える場合に、アクセスカウント値をリセットすれば、過去のアクセスの回数の情報がクリアされるので、アクセスカウント値はより新しいキャッシュ利用状況を反映したものとなり、キャッシュの利用効率を向上させることが可能となる。
また、非プロセス間通信モードからプロセス間通信モードへ切り換えた際、フォームキャッシュ48およびキャッシュ管理部38をリセット(すなわちクリア)する必要はない。切換後、両用解釈部36−fが、フォームの中間データをキャッシュするか否かをキャッシュ管理部38に通知すればよい。
以上、図21および図22を参照して、両用解釈部36−fの全体的な処理手順の例を説明した。一方、変形例3における論理ページ解釈部36−pの全体的な処理手順は、図7の手順と同様でよい。
次に、図23を参照して、変形例3における論理ページ解釈部36−pのコマンドごとの処理手順(図7のS22の詳細な手順)の例を説明する。図23の手順は、図9に例示した実施形態の手順に対して、S41およびS44を追加したものである。
すなわち、図23の手順では、論理ページ解釈部36−pは、フォームに対応するキャッシュIDを生成(S40)した後、現在の動作モードがプロセス間通信モードか否かを判定する(S41)。
プロセス間通信モードである場合は、プロセス間通信を行い、キャッシュ管理部38に対してそのキャッシュIDを引数とする問合せ要求を送ることで、そのキャッシュIDに対応するキャッシュデータがフォームキャッシュ48内に存在しているかどうかを問い合わせる(S44)。この問合せに対して、キャッシュ管理部38から「該当するキャッシュデータあり」の旨の回答があった場合(S44の判定結果がY)、論理ページ解釈部36−pは、S42に進み、そのキャッシュIDを参照する参照コマンドを生成し、出力する。問合せに対する回答が「該当するキャッシュデータなし」であれば、論理ページ解釈部36−pは、当該フォームのPDLデータをメモリに展開し(S38)、そのPDLデータを解釈してフォームの中間データを生成し(S32)、生成した中間データを出力する(S34)。このように、プロセス間通信モードでは、キャッシュデータがフォームキャッシュ48にあるかどうかを確認し、あると確認できた場合にのみ、そのキャッシュデータを参照するコマンドを作成する。
一方、現在の動作モードが非プロセス間通信モードの場合(S41の判定結果がN)、論理ページ解釈部36−pは、S42に進み、そのキャッシュIDを参照する参照コマンドを生成し、出力する。非プロセス間通信モードでは、必要なキャッシュデータが入手できることが保証されているので、キャッシュ管理部38への問合せをせずに、キャッシュデータを参照するコマンドを作成するのである。これは、図9に示した上記実施形態での処理と同じである。
次に、図24を参照して、両用解釈部36−fのコマンドごとの処理手順(図21のS22の詳細な手順)の例を説明する。図24の手順は、図10に例示した実施形態の手順に対して、S55、S57およびS60〜S66を追加したものである。
図24の手順では、両用解釈部36−fは、フォームに対応するキャッシュIDを生成(S54)した後、現在の動作モードがプロセス間通信モードか否かを判定する(S55)。
現在の動作モードが非プロセス間通信モードの場合(S55の判定結果がN)、両用解釈部36−fは、そのフォームの中間データを生成し(S56)、キャッシュ管理部38に対して、その中間データをキャッシュデータとしてフォームキャッシュ48に登録する登録要求を行う(S57)。これに応じ、キャッシュ管理部38が、そのキャッシュデータの情報をキャッシュ管理部38に登録する。そして、作成した中間データをそのキャッシュIDと対応づけてフォームキャッシュ48に送ることで、キャッシュデータの登録を行う(S58)。なお、S57およびS58では、上記実施形態の場合と同様、既にそのフォームのキャッシュデータが登録済みかどうかをキャッシュ管理部38に問合せ、登録済みであれば重複登録をしないようにする。このように、非プロセス間通信モードでの処理は、図10に示した上記実施形態での処理と基本的に同じである。
一方、現在の動作モードがプロセス間通信モードである場合(S55の判定結果がY)は、キャッシュ管理部38に対してそのキャッシュIDを引数とする問合せ要求を送ることで、そのキャッシュIDに対応するキャッシュデータがフォームキャッシュ48内に存在しているかどうかを問い合わせる(S60)。この問合せに対して、キャッシュ管理部38から「該当するキャッシュデータあり」の旨の回答があった場合(S60の判定結果がY)、両用解釈部36−fは、処理を終了する。同じキャッシュデータを重複して生成・登録する必要がないからである。
一方、S60の問合せに対するキャッシュ管理部38からの回答が「該当するキャッシュデータなし」であれば、両用解釈部36−fは、そのフォームの中間データを生成し(S62)、生成した中間データのサイズとキャッシュIDとを含んだ領域確保要求をキャッシュ管理部38に送り、この要求に対して「領域確保成功」の回答があった場合には、その中間データを登録するための登録要求をキャッシュ管理部38に送る(S64)。この場合は、作成したフォームの中間データをフォームキャッシュに登録できる(S66の判定結果がY)ので、両用解釈部36−fは、その中間データをそのキャッシュIDと対応づけてフォームキャッシュ48に送る(S58)。一方、領域確保要求に対してキャッシュ管理部38から「領域確保失敗」の回答があった場合は、S66の判定結果が否定(N)となり、生成したフォームの中間データをキャッシュ管理部38およびフォームキャッシュ48に登録せずに、処理を終了する。
以上、この変形例におけるフロントエンド装置30の処理手順の例を説明した。この変形例のバックエンド装置40(特に描画部44)の処理手順は、上記実施形態と同様(図11および図12参照)である。
以上、本発明の実施形態および変形例について説明した。上述した実施形態および変形例は、あくまで本発明を説明するための例に過ぎず、本発明の範囲が上記実施形態および変形例に限られるわけではない。例えば、上記実施形態および変形例ではフォームキャッシュ48をバックエンド装置40内に設けたが、これは一例に過ぎない。フォームキャッシュ48は、各解釈部36および描画部44からアクセス可能な場所であれば、どのような場所に配置されてもよい。また、上記実施形態および変形例では、描画部44の数は1つであったが、複数存在してももちろんよい。
また、上記実施形態及び変形例では、フロントエンド装置30が、論理ページ解釈部36−pと両用解釈部36−fという2種類の解釈部36を持つ例を説明したが、これは一例に過ぎない。この代わりに、ページ処理モード1、ページ処理モード2、キャッシュモード(および変形例では更に、論理ページ解釈部36−p、両用解釈部36−fそれぞれのプロセス間通信モード(図23,図24))のすべてのモードを有する共通の解釈部36を複数起動し、それら解釈部36のうち1以上を両用解釈部36−fとし、残りを論理ページ解釈部36−pとして用いるようにしてもよい。
10 端末装置、20 印刷コントローラ、30 フロントエンド装置、32 印刷ジョブ受信部、34 ページ配信部、36−f 両用解釈部、36−p1,36−p2 論理ページ解釈部、38 キャッシュ管理部、40 バックエンド装置、42 中間データバッファ、44 描画部、46 出力バッファ、48 フォームキャッシュ、50 印刷装置、60,62,64 通信手段、382 通信制御部、384 キャッシュ制御部、386 キャッシュテーブル。
Claims (10)
- 入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段と、
前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段と、
キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段と、
前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段と、
前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段と、
を有し、
前記2以上の論理ページ解釈手段は、それぞれ、
前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、
前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、
を有し、
前記両用解釈手段は、
前記第1のページ処理モードと、
前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、
を有し、
前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、
前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、
印刷画像処理システム。 - 前記両用解釈手段は、更に前記第2のページ処理モードを有し、
前記両用解釈手段が前記キャッシュモードにて前記印刷データの最後の論理ページの処理を終えた場合に、前記両用解釈手段の動作モードを前記キャッシュモードから前記第2のページ処理モードに切り換える手段、
を更に備える請求項1に記載の印刷画像処理システム。 - 前記第1のページ処理モードでは、前記論理ページ解釈手段および前記両用解釈手段は、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈して解釈結果を当該論理ページの解釈結果に組み込むと共に、そのキャッシュ対象要素が前記キャッシュ記憶手段に解釈結果が記憶されていない場合には、そのキャッシュ対象要素の解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させる、請求項1又は2に記載の印刷画像処理システム。
- 前記キャッシュ記憶手段に記憶される前記キャッシュ対象要素の解釈結果についての管理情報を管理するキャッシュ管理手段と、
前記キャッシュ記憶手段の空き容量を監視し、前記2以上の論理ページ解釈手段が前記第2のページ処理モードで動作しているときに、前記キャッシュ記憶手段の空き容量があらかじめ定められた閾値を下回った場合には、前記2以上の論理ページ解釈手段の動作モードを第3のページ処理モードに切り換える手段と、
を更に有し、
前記第3のページ処理モードでは、前記2以上の論理ページ解釈手段は、前記処理対象の論理ページに含まれるキャッシュ対象要素について、当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されているか否かを問い合わせる問合せ通信を前記キャッシュ管理手段に対して行い、この問合せ通信の結果当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていることが判った場合は、当該キャッシュ対象要素のデータから前記生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込み、前記問合せ通信の結果当該キャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていないことが判った場合は、当該キャッシュ対象要素を解釈して解釈結果を当該論理ページの解釈結果に組み込む、
請求項1〜3のいずれか1項に記載の印刷画像処理システム。 - 前記2以上の論理ページ解釈手段による前記問合せ通信に対して当該問合せ通信に係るキャッシュ対象要素の解釈結果が前記キャッシュ記憶手段に記憶されていた割合を表す前記キャッシュ記憶手段のヒット率、および、前記キャッシュ記憶手段に記憶されている各キャッシュ対象要素の中間データの利用状況を監視し、前記2以上の論理ページ解釈手段が前記第3のページ処理モードで動作しているときに、前記ヒット率があらかじめ定められた判定閾値を下回った場合には、前記利用状況から中間データの最近の利用度合いがあらかじめ定めた閾値を下回るキャッシュ対象要素群を特定し、特定したキャッシュ対象要素群の中間データを前記キャッシュ記憶手段から一括して削除する一括削除手段、を更に備える、請求項4に記載の印刷画像処理システム。
- 前記一括削除手段による削除に応じて、前記2以上の論理ページ解釈手段の動作モードを前記第3のページ処理モードから前記第2のページ処理モードに切り換える手段、を更に備える、請求項5に記載の印刷画像処理システム。
- 前記2以上の論理ページ解釈手段および前記両用解釈手段は、それぞれ、前記割り当て手段から割り当てられた最初の論理ページを解釈している間は前記第1のページ処理モードで動作し、
前記割り当て手段から割り当てられた2番目以降の論理ページを解釈している間、前記2以上の論理ページ解釈手段はそれぞれ前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、
請求項1〜6のいずれか1項に記載の印刷画像処理システム。 - 前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モード、前記第2のページ処理モード、および前記キャッシュモードを有する同一の解釈手段として構成され、それら解釈手段の中から選択された1以上の解釈手段が前記両用解釈手段として用いられ、残りが前記2以上の論理ページ解釈手段として用いられる、ことを特徴とする請求項1〜7のいずれか1項に記載の印刷画像処理システム。
- コンピュータシステムを、
入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段、
前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段、
キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段、
前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段、
前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段、
として機能させるためのプログラムであって、
前記2以上の論理ページ解釈手段は、それぞれ、
前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、
前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、
を有し、
前記両用解釈手段は、
前記第1のページ処理モードと、
前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、
を有し、
前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、
前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、
ことを特徴とするプログラム。 - コンピュータシステムを、
入力された印刷データの中から割り当てられた処理対象の論理ページの解釈を並列して実行する2以上の論理ページ解釈手段、
前記印刷データの中から割り当てられた処理対象の論理ページの解釈、または論理ページ中のキャッシュ用要素の解釈を実行する両用解釈手段、
キャッシュ対象要素の解釈結果を記憶するキャッシュ記憶手段、
前記各論理ページ解釈手段および前記両用解釈手段に対して、処理対象の論理ページを割り当てる割り当て手段、
として機能させるためのプログラムであって、
前記コンピュータシステムは、
前記各論理ページ解釈手段又は前記両用解釈手段から出力された各論理ページの解釈結果と、前記キャッシュ記憶手段に記憶された前記キャッシュ対象要素の解釈結果とを用いて、前記各論理ページの印刷画像データを生成し、生成した印刷画像データを印刷装置に供給する印刷画像データ生成手段、
と協働し、
前記2以上の論理ページ解釈手段は、それぞれ、
前記処理対象の論理ページを解釈して解釈結果を出力する第1のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素も解釈して解釈結果を当該論理ページの解釈結果に組み込む第1のページ処理モードと、
前記処理対象の論理ページを解釈して解釈結果を出力する第2のページ処理モードであって、前記処理対象の論理ページにキャッシュ対象要素が含まれる場合に、そのキャッシュ対象要素を解釈する代わりに、当該キャッシュ対象要素のデータからあらかじめ定められた生成規則に従って生成したキャッシュ識別情報を含むキャッシュ参照コマンドを生成し、生成したキャッシュ参照コマンドを当該キャッシュ対象要素の解釈結果として当該論理ページの解釈結果に組み込む第2のページ処理モードと、
を有し、
前記両用解釈手段は、
前記第1のページ処理モードと、
前記印刷データの各論理ページから、前記キャッシュ記憶手段に解釈結果が記憶されていないキャッシュ対象要素を前記印刷データから見つけると、見つけたキャッシュ対象要素を解釈し、その解釈結果を、前記生成規則に従って当該キャッシュ対象要素のデータから生成したキャッシュ識別情報と対応づけて前記キャッシュ記憶手段に記憶させるキャッシュモードと、
を有し、
前記印刷データの解釈の進捗量があらかじめ定めた閾値以下の場合には、前記2以上の論理ページ解釈手段および前記両用解釈手段は、前記第1のページ処理モードで動作し、
前記印刷データの解釈の進捗量が前記閾値を超えた場合には、前記2以上の論理ページ解釈手段は前記第2のページ処理モードで動作し、前記両用解釈手段は前記キャッシュモードで動作する、
ことを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012225810A JP5344075B1 (ja) | 2012-10-11 | 2012-10-11 | 印刷画像処理システムおよびプログラム |
US14/019,181 US8861011B2 (en) | 2012-10-11 | 2013-09-05 | Print image processing system and non-transitory computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012225810A JP5344075B1 (ja) | 2012-10-11 | 2012-10-11 | 印刷画像処理システムおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5344075B1 true JP5344075B1 (ja) | 2013-11-20 |
JP2014078153A JP2014078153A (ja) | 2014-05-01 |
Family
ID=49764838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012225810A Expired - Fee Related JP5344075B1 (ja) | 2012-10-11 | 2012-10-11 | 印刷画像処理システムおよびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8861011B2 (ja) |
JP (1) | JP5344075B1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015182228A (ja) * | 2014-03-20 | 2015-10-22 | 富士ゼロックス株式会社 | 画像処理装置及び画像形成装置、画像処理プログラム |
US11835487B2 (en) * | 2018-03-09 | 2023-12-05 | Teijin Limited | Ultrasonic inspection of extents of voids or the like in heated material using fluid blowing |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5408323B1 (ja) * | 2012-10-11 | 2014-02-05 | 富士ゼロックス株式会社 | 印刷画像処理システムおよびプログラム |
US9378127B2 (en) * | 2013-06-21 | 2016-06-28 | Intel Corporation | Dynamic memory page policy |
JP6330481B2 (ja) * | 2014-05-26 | 2018-05-30 | 富士ゼロックス株式会社 | 画像処理装置、印刷情報生成装置、画像形成装置、画像形成システムおよびプログラム |
JP6507932B2 (ja) * | 2015-08-20 | 2019-05-08 | 富士ゼロックス株式会社 | 画像形成装置及びプログラム |
WO2018085755A1 (en) * | 2016-11-04 | 2018-05-11 | The Johns Hopkins University | Risk stratification for ventricular arrhythmia in patients with repaired tetralogy of fallot (tof) via image-based computational simulations |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000335022A (ja) * | 1999-05-31 | 2000-12-05 | Toshiba Corp | プリンタ制御装置 |
JP2010088104A (ja) * | 2008-09-04 | 2010-04-15 | Canon Inc | 情報処理装置、制御方法、制御プログラム |
JP2010109967A (ja) * | 2008-10-01 | 2010-05-13 | Canon Inc | 画像処理装置、方法、及び、プログラム |
JP2011025422A (ja) * | 2009-07-22 | 2011-02-10 | Fuji Xerox Co Ltd | 画像処理装置、画像処理システムおよび画像処理プログラム |
JP2011070337A (ja) * | 2009-09-25 | 2011-04-07 | Fuji Xerox Co Ltd | 画像処理システム及び画像処理プログラム |
JP2011230470A (ja) * | 2010-04-30 | 2011-11-17 | Fuji Xerox Co Ltd | 印刷文書変換装置およびプログラム |
JP4905604B1 (ja) * | 2011-09-26 | 2012-03-28 | 富士ゼロックス株式会社 | 印刷データ処理システム及びプログラム |
JP2012118746A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP2012118738A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム |
JP2012116078A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置及びプログラム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010146351A (ja) | 2008-12-19 | 2010-07-01 | Canon Software Inc | 情報処理装置、情報処理システム、情報処理装置の制御方法、プログラムおよび記録媒体 |
JP5370044B2 (ja) | 2009-09-24 | 2013-12-18 | 富士ゼロックス株式会社 | 画像処理装置、画像形成装置、およびプログラム |
JP5446916B2 (ja) | 2010-01-21 | 2014-03-19 | 富士ゼロックス株式会社 | 印刷画像処理システム |
JP5408323B1 (ja) * | 2012-10-11 | 2014-02-05 | 富士ゼロックス株式会社 | 印刷画像処理システムおよびプログラム |
JP5288039B1 (ja) * | 2012-11-06 | 2013-09-11 | 富士ゼロックス株式会社 | 印刷画像処理システムおよびプログラム |
-
2012
- 2012-10-11 JP JP2012225810A patent/JP5344075B1/ja not_active Expired - Fee Related
-
2013
- 2013-09-05 US US14/019,181 patent/US8861011B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000335022A (ja) * | 1999-05-31 | 2000-12-05 | Toshiba Corp | プリンタ制御装置 |
JP2010088104A (ja) * | 2008-09-04 | 2010-04-15 | Canon Inc | 情報処理装置、制御方法、制御プログラム |
JP2010109967A (ja) * | 2008-10-01 | 2010-05-13 | Canon Inc | 画像処理装置、方法、及び、プログラム |
JP2011025422A (ja) * | 2009-07-22 | 2011-02-10 | Fuji Xerox Co Ltd | 画像処理装置、画像処理システムおよび画像処理プログラム |
JP2011070337A (ja) * | 2009-09-25 | 2011-04-07 | Fuji Xerox Co Ltd | 画像処理システム及び画像処理プログラム |
JP2011230470A (ja) * | 2010-04-30 | 2011-11-17 | Fuji Xerox Co Ltd | 印刷文書変換装置およびプログラム |
JP2012118746A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP2012118738A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム |
JP2012116078A (ja) * | 2010-11-30 | 2012-06-21 | Fuji Xerox Co Ltd | 印刷文書処理システム、キャッシュ装置及びプログラム |
JP4905604B1 (ja) * | 2011-09-26 | 2012-03-28 | 富士ゼロックス株式会社 | 印刷データ処理システム及びプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015182228A (ja) * | 2014-03-20 | 2015-10-22 | 富士ゼロックス株式会社 | 画像処理装置及び画像形成装置、画像処理プログラム |
US11835487B2 (en) * | 2018-03-09 | 2023-12-05 | Teijin Limited | Ultrasonic inspection of extents of voids or the like in heated material using fluid blowing |
Also Published As
Publication number | Publication date |
---|---|
JP2014078153A (ja) | 2014-05-01 |
US20140104644A1 (en) | 2014-04-17 |
US8861011B2 (en) | 2014-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5288039B1 (ja) | 印刷画像処理システムおよびプログラム | |
JP5344075B1 (ja) | 印刷画像処理システムおよびプログラム | |
JP5747489B2 (ja) | 印刷文書処理システム、キャッシュ装置及びプログラム | |
JP5691448B2 (ja) | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム | |
JP5663941B2 (ja) | 印刷文書変換装置およびプログラム | |
JP5475307B2 (ja) | ラスタ化のためのメモリマネージメント方法、コンピュータ可読媒体及び装置 | |
EP2362309A2 (en) | Printing system, cloud computing system, printing system control method, and program | |
JP5408323B1 (ja) | 印刷画像処理システムおよびプログラム | |
JP5648449B2 (ja) | 印刷文書処理システム、キャッシュ装置及びプログラム | |
JP2012081626A (ja) | 画像形成装置、画像処理方法、プログラム | |
JP2011167857A (ja) | 画像形成装置、画像形成方法、および画像形成プログラム | |
JP2004005545A (ja) | ジョブ管理装置、ジョブ管理方法、制御プログラム、及びジョブ管理システム | |
JP5614266B2 (ja) | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム | |
US8934121B2 (en) | Coordinated, distributed, reusable document component respository | |
JP2009181344A (ja) | 情報処理装置、描画命令生成装置、情報処理システム、情報処理装置の制御方法、描画命令生成装置の制御方法及びプログラム | |
JP2010111099A (ja) | 画像処理装置およびその制御方法 | |
JP6605077B2 (ja) | 情報処理装置、情報処理装置の制御方法およびそのプログラム | |
JP4006068B2 (ja) | 情報処理装置および情報処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2012008838A (ja) | 印刷文書変換装置およびプログラム | |
JP4194173B2 (ja) | 管理サーバおよびデータ処理装置および出力装置およびデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP2015001882A (ja) | 印刷画像処理システムおよびプログラム | |
JP2012081711A (ja) | 画像形成装置、画像処理方法 | |
JP2003072164A (ja) | データ処理装置、データ処理システム、データ処理方法、記憶媒体、及びプログラム | |
CN110572527A (zh) | 图像处理装置、其控制方法及计算机可读存储介质 | |
JP2001147789A (ja) | 情報処理装置および印刷制御装置およびジョブ処理方法および記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130716 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5344075 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |