JP5424778B2 - 印刷データ処理装置、印刷データ処理方法、プログラム - Google Patents

印刷データ処理装置、印刷データ処理方法、プログラム Download PDF

Info

Publication number
JP5424778B2
JP5424778B2 JP2009192237A JP2009192237A JP5424778B2 JP 5424778 B2 JP5424778 B2 JP 5424778B2 JP 2009192237 A JP2009192237 A JP 2009192237A JP 2009192237 A JP2009192237 A JP 2009192237A JP 5424778 B2 JP5424778 B2 JP 5424778B2
Authority
JP
Japan
Prior art keywords
print data
processor
page
data
resource
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
Application number
JP2009192237A
Other languages
English (en)
Other versions
JP2011044028A (ja
Inventor
賢太 松井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009192237A priority Critical patent/JP5424778B2/ja
Priority to US12/856,117 priority patent/US8526052B2/en
Publication of JP2011044028A publication Critical patent/JP2011044028A/ja
Application granted granted Critical
Publication of JP5424778B2 publication Critical patent/JP5424778B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1857Generation of the printable image characterized by its workflow involving parallel processing in the same printing apparatus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • G06K15/1823Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K15/1861Generation of the printable image characterized by its workflow taking account of a limited available memory space or rasterization time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Record Information Processing For Printing (AREA)

Description

本発明は、印刷データ処理装置、印刷データ処理方法、プログラムに関するものである。
従来の画像形成装置には、入力された印刷データを分割し、複数のプロセッサで処理することで、画像形成を高速に行うものがある。(例えば、特許文献1参照)
ところで、印刷データの種類によっては、各ページから参照して利用できるフォントやイメージを、リソースとしてページ途中で生成することができる印刷データがある。
特開2007−152623
しかしながら、上述の印刷データを複数のプロセッサで処理する場合、リソースの生成と参照のタイミングが合わないと、一部のプロセッサはリソースが展開されるのを待つことが多くなる。
本発明の一実施形態に係る装置は、印刷データの描画命令は実行せず、印刷データのリソースの展開命令に従いリソースを展開する第1のプロセッサと、前記第1のプロセッサが展開したリソースを、前記第1のプロセッサ以外のプロセッサが印刷データを中間データへ変換する際に参照できるように管理する管理手段と、印刷データのリソースの展開命令は実行せず、前記管理手段により管理されているリソースを参照して印刷データを中間データへ変換する第2のプロセッサとを有し、印刷データを中間データへ変換する処理の際に使用するメモリのサイズを確認し、確認したメモリのサイズが閾値以上の場合、前記第1のプロセッサは、印刷データの描画命令は実行せず、印刷データのリソースの展開命令に従いリソースを展開し、前記第2のプロセッサは、印刷データのリソースの展開命令は実行せず、前記管理手段により管理されているリソースを参照して印刷データを中間データへ変換し、確認したメモリのサイズが閾値未満の場合、前記第1のプロセッサは、前記第1のプロセッサに振り分けられたページの印刷データのリソースを展開し、展開されたリソースを利用して印刷データを中間データへ変換し、前記第2のプロセッサは、前記第2のプロセッサに振り分けられたページの印刷データのリソースを展開し、展開されたリソースを利用して印刷データを中間データへ変換することを特徴とする。
1つのプロセッサが他のプロセッサのリソース展開を待つ状態を少なく抑えることができる。これによって印刷データをより効率的に中間データへ変換することが可能になる。
実施例1におけるハードウェア構成図。 実施例1で解析するPDLの構成図。 実施例1における印刷データを中間データへ変換する処理を実行するソフトウェアモジュールの構成図。 一般的なPDLのデータ構成図。 実施例1におけるPDL解析プログラムの印刷データ処理手順を示すフローチャート。 実施例2におけるPDL解析プログラムの印刷データ処理手順を示すフローチャート。 実施例3におけるPDL解析プログラムの印刷データ処理手順を示すフローチャート。 各実施例における効果を示す図。 リソース管理プログラムの処理手順を示すフローチャート。 読み飛ばしたインストラクションの位置を示す図。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
実施例1について詳細に説明する。
図1は、実施例1におけるMFP(Multi Function Peripheral)のハードウェアの構成を示すブロック図である。
プロセッサ1 100およびプロセッサ2 101は、印刷データであるPDL(Page Description Language)を解析する。そして、後述のハードウェアであるRIP(Raster Image Processor)部102が印刷データを描画できるよう、PDL(印刷データ)に基づき中間データを生成する。なお、プロセッサ1 101およびプロセッサ2 101は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等により実現される。
RIP部102は、前記中間データをラスタ画像に展開する。なお、ラスタ画像データはページメモリ103に逐次記憶される。
ページメモリ103は、RIP部102が展開するラスタ画像を、一次的に保持する。また、後述する解析プログラム301、ページ振分プログラム300、リソース管理プログラム302、リソーステーブル303も保持する。これらのプログラムを印刷データ処理プログラムと呼ぶ。なお、ページメモリ103は、RAM(Random Access Memory)によって実現される。
パネル入出力制御部104は、操作パネルからの入出力を制御する。
記憶部105は、前述のPDLを保持する。なお、記憶部105は、ハードディスク等の二次記憶装置によって実現される。記憶部105にPDLを保持しておけば、ユーザが好きな時間に取り出して繰り返し出力することができる。
印刷制御部106は、ページメモリ103の内容をビデオ信号に変換処理し、プリンタエンジン部107へ画像を転送する。
プリンタエンジン部107は受け取ったビデオ信号を記録紙に印刷する箇所である。図3は、実施例1における、印刷データを中間データへ変換する処理を実行するソフトウェアモジュールを示す図である。
ページ振分プログラム300は、PDLの各ページの処理を、複数の解析プログラムにどう振り分けるかを決定する。なお、ページ振分プログラム300は、複数のプロセッサの内、どのプロセッサで動作させても良い。即ち、プロセッサ1 100またはプロセッサ2 101でも良いし、それ以外の第3のプロセッサに動作させても良いということである。
解析プログラムは、印刷データで定義されている印刷命令を読み込み、印刷命令に従って印刷データを中間データへ変換する処理をプロセッサによって実行される。なお、この処理を解析と呼ぶ。また、解析プログラム301aは、第1のプロセッサに相当するプロセッサ1 100で動作し、解析プログラム301bは、第2のプロセッサに相当するプロセッサ2 101で動作する。
リソース管理プログラム302は、各CPUがリソースを共有できるよう、PDLに含まれる全リソースをユニークなリソースIDで一元管理する。リソースにユニークなIDを割り当てることで、リソース同士のリソースIDは重複しない。なお、リソース管理プログラム302は、複数のプロセッサの内、どのプロセッサで動作させても良い。即ち、プロセッサ1 100またはプロセッサ2 101でも良いし、それ以外の第3のプロセッサに動作させても良いということである。なお、リソースとは、複数のページで構成されるPDLを中間データへ変換する際に、繰り返し利用される一度展開されたデータのことである。
リソーステーブル303は、インデックス(304)と、リソースの付加情報示であるリソース情報(305a、305b)と、PDLの各ページから利用される展開後のリソースであるリソースオブジェクト(306a、306b)で構成される。
インデックス(304)は、リソースIDをインデックスとする構造体である。リソース情報(305a、305b)は、例えばフォントの幅や高さなど、リソースの付加情報を格納する構造体である。リソースオブジェクト(306a、306b)は、例えばフォントの形を示すビットマップで、リソースの本体データである。
リソーステーブル303に示すように、リソースIDとリソースオブジェクトは、リンクによって関連付けられる。図3では、インデックス304、リソース情報305a、リソースオブジェクト306aがリンクされていて、リソースID=0のリソースは306aであることがわかる。同様に、リソースID=1のリソースは306bである。
次に、リソース管理プログラム302によるリソースの管理処理について、図9のフローチャートを用いて説明する。
ステップS1001において、リソース管理プログラム302は、解析プログラム(301a、301b)からリソースの有無について問い合わせを受ける。
ステップS1002において、リソース管理プログラム302は、解析プログラムが指定するリソースIDでリソーステーブル303のインデックス304を参照する。
ステップS1003において、リソース管理プログラム302は、インデックスの参照がNULLかどうか確認する。NULLの場合はステップS1004へ進む。NULLでない場合はステップS1006へ進む。なお、インデックスの参照がNULLである場合、展開されたリソースはないということである。
ステップS1004において、リソース管理プログラム302は、リソースの有無を問い合わせてきた解析プログラム(例えば、301a)に対し、リソースが未登録であること伝える。
ステップS1005において、リソース管理プログラム302は、リソースの有無を問い合わせてきた解析プログラムが指定したリソースIDとリソースを、インデックス304、リソース情報305、リソースオブジェクト306で関連付ける。そして、リソーステーブルに登録する。
ステップS1006において、リソース管理プログラム302は、解析プログラム(301a)が指定したリソースIDからインデックス304を参照し、リソースIDに該当するリソース情報とリソースオブジェクトを解析プログラムに渡す。
リソース管理プログラム302がこのように動作しリソースを管理することで、解析プログラム301a、301bでリソースを共有することができる。
次に、PDLの構成について図4を用いて説明する。PDLは、ページの開始/終了を示す命令、描画の指示を示す命令、リソースの展開/利用を示す命令等を含むインストラクション(印刷命令)と、各インストラクションに付随するデータで構成される。
PDL解析プログラム301は、インストラクションを読み込み、インストラクションに従ってデータを加工し、中間データを生成する。なお、この一連の処理を実施例1では解析と呼ぶ。
また、実施例1において、PDL解析プログラム301が解析するPDLは、PDLにアクセスする仕様として、インストラクションをランダムに読み込む(ランダムアクセス)ことを許可しない。PDL解析プログラム301が解析するPDLは、シーケンシャルに読み込む(シーケンシャルアクセス)ことだけを許可するものである。シーケンシャルアクセスしかできないPDLは、1ページ目を飛ばして2ページ目(402)にアクセスしたくとも、1ページ目(401)の先頭データからアクセスを開始しなくてはいけない。
シーケンシャルアクセスしかできないPDLで、目的のページにより早くアクセスするため、インストラクションを読み込んでも実際には実行しなかったり、中身を確認すべきデータを読み捨てたりする技術がある。このように目的のページ、あるいはインストラクションに早くアクセスするための技術を、実施例1では「読み飛ばし」と呼ぶことにする。
図2は、実施例1において、解析プログラム101が解析するPDLの構成を示す図である。
PDL200は、ページ201、ページ202、ページ303の3ページで構成される。ページ201には、各ページで利用できるリソースR0が圧縮された形で格納されている(ここでは、図示しない)。また、そのリソースを各ページで利用できるようにするための展開命令(201a)が含まれる。図2に示すPDLにおいて、展開されたリソースR0は、ページ201とページ202で利用される(201b、202a)。なお、展開とは、JPEG(Joint Photographic Experts Group)形式等の圧縮されたイメージデータをBitmapのイメージデータへ変換することや、文字コードを文字パターンへ変換することである。
同様に、ページ202には、リソースR1が圧縮された形で格納されていて(ここでは、図示しない)、リソースR1の展開命令(202b)が含まれる。展開されたリソースR1は、ページ202とページ203で利用される(202c、203a)。
この場合、PDL解析プログラム301がリソースR0やリソースR1を利用する時には、それぞれのリソースが既に展開されている必要がある。しかし、PDL解析プログラム301が複数のプロセッサで動作していて、複数のプロセッサ間でリソースを共有する場合、リソースの展開処理が間に合わないことがある。
例えば、複数のプロセッサの内、第1のプロセッサがページ201を、第2のプロセッサがページ202を解析すると考える。このとき、第2のプロセッサがリソースR0を利用したい場合に、第1のプロセッサがリソースR0の展開処理を終えていない状態がリソースの展開処理が間に合わないということである。
なお、PDL解析プログラム301は、インストラクションを読み込んだときに展開するデータが複数のページで共有するリソースであるとわかる。なぜなら、インストラクションの中に、読み込んだインストラクションに付随するデータはリソースである、ということを示す情報が含まれているからである。
次に、実施例1における解析プログラムによる印刷データ処理手順を、図5に示すフローチャートを用いて説明する。
ステップS501において、PDL解析プログラム301は、解析プログラム自身が管理、使用しているメモリのサイズを確認する。メモリサイズが予め規定された閾値以上の場合(例えば、300MB以上の場合)は、PDLに含まれるリソースを展開して保持するためのメモリが豊富であると判断して、ステップS502へ進む。逆に、メモリサイズが閾値未満の場合(例えば、300MB未満の場合)は、リソースを保持するためのメモリ容量が足りないと判断してステップS509へ進む。このように、メモリサイズに応じて解析プログラムのリソースの処理方法を変更することで、1つの解析プログラムが他の解析プログラムのリソース展開を待つ時間を少なく抑えることができる。これによってPDLをより効率的に解析することが可能になる。
ステップS502において、ページ振分プログラム300は、夫々の解析プログラムが担当する処理の役割を決める。実施例1では、解析プログラム301aには先行してリソースの展開処理を、解析プログラム301bにはページ1から印刷命令を解析させ、印刷データを中間データへ変換する処理を任せている。
ステップS503において、解析プログラム301aは、解析プログラム301bより先行して印刷データの印刷命令(例えば、描画命令)を実行せずにPDLのリソース展開処理を行う。この際、前述した読み飛ばしの技術を利用するためリソース展開処理は、全ての印刷命令を解析して実行する処理よりも高速に行うことができる。なお、解析プログラム301aは、解析プログラム301bが参照できるように、展開したリソースをリソーステーブルに登録しておく。
ステップS504において、解析プログラム301bは、解析プログラム301aがリソースの先行処理を終えたページの解析処理を順次開始する。解析プログラム301bは、PDLのリソースの展開命令は実行せず、解析プログラム301aが展開を行ったリソースを参照してPDLを中間データへ変換する処理を行う。なお、万が一、解析プログラム301bが解析処理するページが、解析プログラム301aがリソースを先行処理するページに追い付いた場合には次のように処理を行う。解析プログラム301aが該当ページのリソースの先行処理を終了してから、解析プログラム301bが該当ページの解析処理を開始するという処理である。
ステップS505において、ページ振分プログラム300は、解析プログラム301aのリソース処理が終了したかどうかを確認する。終了していればステップS506へ進み、終了していなければステップS503の処理を繰り返す。即ち、解析プログラム301aは、リソースの展開処理を実行する。
ステップS506において、ページ振分プログラム300は、解析プログラム301aに次ページ(解析プログラム301bが解析しているページの次のページ)の解析処理を担当させる。なお、リソース展開処理が終了した解析プロ部ラム301aは、解析プログラム301bが解析しているページの中で、解析プログラム301bにまだ解析されていない印刷命令を実行しても良い。
ステップS507において、解析プログラム301aと解析プログラム301bは、それぞれが担当しているページの解析処理を行う。
ステップS508において、ページ振分プログラム300は、解析プログラム301aと解析プログラム301bが全ページの解析処理を終了したかを判断する。終了していない場合は、ステップS510へ進む。
ステップS510において、ページ振分プログラム300は、解析プログラム301aと解析プログラム301bの解析状況を確認し、解析が終了した解析プログラムに次に解析が必要なページの解析を担当させる。
ステップS509において、ページ振分プログラム300は、解析プログラムの担当を決める。ここでは、解析プログラム301aにはページ1の解析処理を、解析プログラム301bにはページ2の解析処理を任せている。
図8(a)は、実施例1の効果を表すため、従来パフォーマンス(801)と実施例1のパフォーマンス(802)を示した図である。
図2に示した3ページ分のPDLで、1ページ分のPDLに含まれる全インストラクション、全データの処理を実行するのに必要な時間が10秒とする。そのうちリソースの展開/利用命令など、リソースの処理が全体の3割(3秒)を占め、それ以外が7割(7秒)である。また、インストラクションやデータを読み飛ばす処理は、読み飛ばさない処理の2割の時間で済むとする。
この時、各ページのリソースだけを処理する時間は、リソースの処理(3秒)とリソース以外の処理(7秒)を読み飛ばす処理(7×20%=約1.4秒)の合計(4.4秒)となる。結果として、従来パフォーマンス801T1(30秒)>実施例1のパフォーマンス802T2(20.2秒)となり、実施例1がPDL解析を効率的に行えることが確認できる。
実施例2におけるPDL解析プログラム301の印刷データ処理手順を、図6に示すフローチャートを用いて説明する。なお、ハードウェアの構成、印刷データに基づいて中間データへ変換するソフトウェアの構成については、実施例1と同じなので説明を省く。
ステップS601において、PDL解析プログラム101は、解析するPDLにおけるリソースの位置を把握する。リソースの位置というのは、リソースの展開命令を含むインストラクションに付随するデータのことである。確認の結果、解析開始時にリソースの位置を把握できるPDLであると確認された場合、処理はステップS602へ進み、そうでなければステップS610へ進む。なお、解析開始時にリソースの位置を把握できる具体的なPDLの例としては、一般の電子文書フォーマットであるXPS(XML Paper Specification)が挙げられる。XPSに含まれるリソースは、リソース専用のフォルダ「Resources」内に格納されている。
解析するPDLの特徴に応じて解析プログラムのリソースの処理方法を変更することで、1つの解析プログラムが他の解析プログラムのリソース展開を待つ時間を少なく抑えることができる。(実施例2のパフォーマンスについては、実施例1と同じなので省略)これによってPDLをより効率的に解析することが可能になる。
ステップS602において、ページ振分プログラム300は、夫々の解析プログラムが担当する処理の役割を決める。ここでは、解析プログラム301aには先行してリソースを展開する処理を、解析プログラム301bにはページ1から印刷命令を解析させ、印刷データを中間データへ変換する処理を任せている。
ステップS603において、解析プログラム301aは、解析プログラム301bより先行してPDLのリソース展開処理を行う。この際、前述した読み飛ばしの技術を利用するためリソース展開処理は、全ての印刷命令を解析して実行する処理よりも高速に行うことができる。
ステップS604において、解析プログラム301aがページ1のリソースの先行処理を終えると、解析プログラム301bがページ1の解析処理を開始する。以降、解析プログラム301bは、解析プログラム301aがリソースの先行処理を終えたページの解析処理を順次行う。また、万が一、解析プログラム301bが解析処理するページが、解析プログラム301aがリソースを先行処理するページに追い付いた場合には次のように処理を行う。解析プログラム301aが該当ページのリソースの先行処理を終了してから、解析プログラム301bが該当ページの解析処理を開始するという処理である。
ステップS605において、ページ振分プログラム300は、解析プログラム301aのリソース処理が終了したかどうかを確認する。終了していればステップS606へ進み、終了していなければステップS605の処理を繰り返す。即ち、解析プログラム301aは、リソースの展開処理を実行する。
ステップS606において、ページ振分プログラム300は、解析プログラム301aに次ページ(解析プログラム301bが解析しているページの次のページ)の解析処理を担当させる。なお、リソース展開処理が終了した解析プロ部ラム301aは、解析プログラム301bが解析しているページの中で、解析プログラム301bにまだ解析されていない印刷命令を実行しても良い。
ステップS607において、解析プログラム301aと解析プログラム301bは、それぞれが担当しているページの解析処理を行う。
ステップS608において、ページ振分プログラム300は、解析プログラム301aと解析プログラム301bが全ページの解析処理を終了したかを判断する。終了していない場合は、ステップS609へ進む。
ステップS609において、ページ振分部300は、解析部301aと解析部301bの解析状況を確認し、解析が終了した解析部に、次に解析が必要なページの解析を担当させる。
ステップS610において、PDL解析プログラム101は、解析するPDLを確認し、PDL解析中に各リソースの再利用の有無が判断できるPDLの場合はステップS602へ進み、そうでなければステップS611へ進む。
なお、リソースの再利用の有無が判断できるPDLとしては、言語的に再利用を示すタグが導入されているPPML(Personalized Print Markup Language)が挙げられる。
ステップS611において、PDL解析プログラム101は、解析するPDLを確認し、解析開始時にリソースのライフサイクルを把握できるPDLの場合はステップS612へ進み、そうでなければステップS613へ進む。
リソースのライフサイクルとは、展開したリソースが利用される範囲を示す。展開されたページ内だけで利用されるリソースの場合、そのライフサイクルはページ単位であり、展開されたページ以外でも利用されるリソースの場合、そのライフサイクルはジョブ単位となる。
PCなどのドライバを通して生成するPDLには、このようなライフサイクルの情報を任意に含めることが可能である。
ステップS612において、PDL解析プログラム101は、PDLに含まれるリソースのライフサイクルを確認し、ライフサイクルがページならステップS613へ、そうでなければステップS602へ進む。リソースのライフサイクルがページであるPDLの場合、解析プログラムが他の解析プログラムのリソース処理を気にする必要がなく、各ページを順次解析することが可能である。
ステップS613において、ページ振分プログラム300は、解析プログラムの担当を決める。ここでは、解析プログラム301aにはページ1の解析処理を、解析プログラム301bにはページ2の解析処理を任せている。
実施例3では、解析するPDLのページのデータ量が極端に多い場合に、PDL解析プログラム301が行うリソースの処理方法について、図7のフローチャートを用いて説明する。なお、ハードウェアの構成、印刷データに基づいて中間データへ変換するソフトウェアの構成については、実施例1、2と同じなので説明を省く。
解析プログラム301aがmページ目を、解析プログラム301bがnページ目を担当する。なお、nページ目はmページ目よりも後ろのページである。また、図7は、印刷データのnページ目のデータ量が規定のデータ量より多い場合の解析プログラム301aおよび解析プログラム301bの処理である。
ステップS701において、mページ目の解析を終えた解析プログラム301aは、mページ目よりも後ろの次の担当ページにアクセスする。解析プログラム301aは、解析プログラム301bが解析をしているnページ目のインストラクションやデータの読み飛ばしを行う。
ステップS702において、解析プログラム301aは、ステップS701で読み飛ばしたnページ目のインストラクションとデータから、そのインストラクションとデータを中間データへ変換するために必要とする処理時間を予想する。解析プログラム301aは、予想した時間を加算していきnページ目の予想処理時間を予想する。予想した予想処理時間が、読み飛ばしたnページ目の印刷データを中間データへ変換するために必要とする時間である。なお、ステップS703において、解析プログラム301aは、予め決めた一定の予想処理時間毎に読み飛ばしたインストラクションの位置を記録する。
図10は、予想処理時間10秒毎に読み飛ばしたインストラクションの位置を記録した様子を図示化したものである。★印1101、1102、1103、1104は、それぞれ予想処理時間10秒、20秒、30秒、40秒の時に読み飛ばしたインストラクションである。またインストラクション1111、1112、1113、1114は、リソースの展開命令を示すインストラクションで、続く黒い部分はそのインストラクションに対するデータ部分である。
ステップS704において、解析プログラム301aは、予想処理時間と読み飛ばしたインストラクションを確認し、予想処理時間が規定時間以上であり、かつ、読み飛ばしたページがリソースを含むインストラクションなら、ステップS705へ進む。そうでなければステップS706へ進む。ステップS705において、解析プログラム301bは、読み飛ばす際に読み込んだ印刷命令の中で、リソースを含むインストラクションを確認し、リソースを含むインストラクションの位置を記録する。ステップS706において、解析プログラム301bは、mページの読み飛ばしが終了したか確認し、終了した場合はステップS707へ進む。終了してない場合は、ステップS701からステップS706の処理を繰り返す。
ステップS707において、解析プログラム301aは、nページ目の予想処理時間が規定時間以上、かつ、nページ目に複数のページで共有するリソースがあるかどうかを確認する。予想処理時間が規定時間以上(例えば、予想処理時間が30秒以上の場合)、かつ、リソースがある場合、解析プログラム301aはnページ目のリソース処理を肩代わりするためステップS708へ進む。そうでなければ解析プログラム301aは、nページ目の読み飛ばしを終了し、ページ2の解析処理に移ることになる。
ステップS708において、解析プログラム301aは、ステップS702で算出した予想処理時間と、ステップS703、S705で記録したインストラクションの位置記録から次の位置をきめる。次の位置とは、解析プログラム301bが展開を行っていないnページ目のリソースの位置である。
図10の例では、規定時間(30秒)を超えるインストラクションであるインストラクション1113の位置から、リソースの展開処理を開始する。
ステップS709において、解析プログラム301aは、決定された開始位置におけるインストラクション(実施例3で言えば、インストラクション1113)を読み込む。
ステップS710において、解析プログラム301aは、インストラクションに含まれるリソースがリソース管理プログラム302に登録されてないことを確認する。登録されていなければステップS711へ進む。登録されている場合は、既に解析プログラム301bが登録したことを示すので、解析プログラム301aによるnページ目のリソース処理は終了する。
ステップS711において、解析プログラム301aは、インストラクションに含まれるリソースを展開し、展開したリソースをリソース管理プログラムに登録する。
図8(b)は、実施例3の効果を表すため、従来パフォーマンス(901)と実施例3のパフォーマンス(902)を示した図である。なお、P1はnページ目であり、P2はmページ目を解析した解析プログラム301aが次に解析を担当するページである。
2ページで構成されるPDLを想定し、ページの開始/終了命令、描画の指示命令、リソースの展開/利用命令など、PDLに含まれる全インストラクション、全データの処理を実行するのに必要な時間が、nページ目は40秒、mページ目は5秒とする。
nページ目のリソースの展開/利用命令の処理は全体の3割(12秒)を占め、それ以外が7割(28秒)とする。また、インストラクションやデータを読み飛ばす処理は、読み飛ばさない処理の2割の時間で済むとする。
この時、解析プログラム1の処理としては、まずnページ目の読み飛ばし(10×80%=8秒)と処理時間の予想(ここでは2秒と仮定)がある。次にページ目の途中までの解析(ここでは4秒と仮定)と1ページ目の後半のリソースを処理する時間(6秒)。そして、最後に2ページ目の処理(5秒)がある。
結果として、従来パフォーマンス901T3(45秒)>実施例3パフォーマンス902T4(39秒)となり、実施例3がPDL解析を効率的に行えることが確認できる。
実施例3で示したように、解析するページに応じて解析プログラムのリソースの処理方法を変更することで、1つの解析プログラムが他の解析プログラムのリソース展開を待つ時間を少なく抑えることができる。これによってPDLをより効率的に解析することが可能になる。
なお、実施例3の解析プログラム301aはmページ目の解析を終了している状態であった。しかし、解析プログラム301aが2ページ目の解析を担当するために、解析プログラム301bが解析をしている1ページ目を読み飛ばす状況においては次のようになる。解析プログラム301aはどのページの印刷データも解析していない状態でnページ目のリソース展開を行う。
なお、以上説明した各実施例では、解析プログラムを2つ実行したが、それ以上実行しても良い。その場合、第1のプロセッサと第2のプロセッサ以外の第3のプロセッサが必要となる。
また、以上説明した各実施例では、CPUを2つ用いて解析プログラムを2つ実行したが、マルチコアプロセッサのCPUを1つ用いて解析プログラムを2つ実行しても良い。この場合、夫々の解析プログラムは、コアプロセッサを1つずつ用いて実行される。なお、コアプロセッサとは、プロセッサの中にある命令発行器や演算器などを組み合わせて動作する集合体のことであり、マルチコアプロセッサとは、コアプロセッサを複数有するプロセッサのことである。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100、101 プロセッサ
300 ページ振分プログラム
301a、301b 解析プログラム
302 リソース管理プログラム
303 リソース管理テーブル

Claims (5)

  1. 印刷データの描画命令は実行せず、印刷データのリソースの展開命令に従いリソースを展開する第1のプロセッサと、
    前記第1のプロセッサが展開したリソースを、前記第1のプロセッサ以外のプロセッサが印刷データを中間データへ変換する際に参照できるように管理する管理手段と、
    印刷データのリソースの展開命令は実行せず、前記管理手段により管理されているリソースを参照して印刷データを中間データへ変換する第2のプロセッサとを有し、
    印刷データを中間データへ変換する処理の際に使用するメモリのサイズを確認し、確認したメモリのサイズが閾値以上の場合、前記第1のプロセッサは、印刷データの描画命令は実行せず、印刷データのリソースの展開命令に従いリソースを展開し、前記第2のプロセッサは、印刷データのリソースの展開命令は実行せず、前記管理手段により管理されているリソースを参照して印刷データを中間データへ変換し、確認したメモリのサイズが閾値未満の場合、前記第1のプロセッサは、前記第1のプロセッサに振り分けられたページの印刷データのリソースを展開し、展開されたリソースを利用して印刷データを中間データへ変換し、前記第2のプロセッサは、前記第2のプロセッサに振り分けられたページの印刷データのリソースを展開し、展開されたリソースを利用して印刷データを中間データへ変換することを特徴とする印刷データ処理装置。
  2. 前記第1のプロセッサによる印刷データのリソースの展開が終了した後に、前記第2のプロセッサが中間データへ変換が終了していないページの印刷データを、前記第1のプロセッサが中間データへ変換することを特徴とする請求項1に記載の印刷データ処理装置。
  3. 印刷データをページ単位で中間データへ変換する第1のプロセッサと
    前記第1のプロセッサが中間データへ変換している印刷データのページよりも後ろのページの印刷データを中間データへ変換する第2のプロセッサとを有し、
    印刷データのmページ目の中間データへの変換が終了した前記第1のプロセッサは、前記第2のプロセッサが中間データへ変換している印刷データのnページ目よりも後ろのページの印刷データを中間データへ変換するためにnページ目の印刷データを読み飛ばす際、前記第2のプロセッサがnページ目の印刷データを中間データへ変換するために必要とする時間を予想し、予想した時間が規定時間以上の場合、前記第1のプロセッサは、前記第2のプロセッサにより展開が行われていないnページ目の印刷データのリソースの展開処理を行うことを特徴とする印刷データ処理装置。
  4. 第1のプロセッサは、印刷データをページ単位で中間データへ変換し、
    第2のプロセッサは、前記第1のプロセッサが中間データへ変換している印刷データのページよりも後ろのページの印刷データを中間データへ変換し、
    印刷データのmページ目の中間データへの変換が終了した前記第1のプロセッサは、前記第2のプロセッサが中間データへ変換している印刷データのnページ目よりも後ろのページの印刷データを中間データへ変換するためにnページ目の印刷データを読み飛ばす際、前記第2のプロセッサがnページ目の印刷データを中間データへ変換するために必要とする時間を予想し、予想した時間が規定時間以上の場合、前記第1のプロセッサは、前記第2のプロセッサにより展開が行われていないnページ目の印刷データのリソースの展開処理を行うことを特徴とする印刷データ処理方法。
  5. 第1のプロセッサに、印刷データをページ単位で中間データへ変換する処理を実行させ、
    第2のプロセッサに、前記第1のプロセッサが中間データへ変換している印刷データのページよりも後ろのページの印刷データを中間データへ変換する処理を実行させ、
    印刷データのmページ目の中間データへの変換が終了した前記第1のプロセッサに、前記第2のプロセッサが中間データへ変換している印刷データのnページ目よりも後ろのページの印刷データを中間データへ変換するためにnページ目の印刷データを読み飛ばす際、前記第2のプロセッサがnページ目の印刷データを中間データへ変換するために必要とする時間を予想させ、予想した時間が規定時間以上の場合、前記第1のプロセッサに、前記第2のプロセッサにより展開が行われていないnページ目の印刷データのリソースの展開処理を行う処理を実行させることを特徴とする印刷データ処理プログラム。
JP2009192237A 2009-08-21 2009-08-21 印刷データ処理装置、印刷データ処理方法、プログラム Expired - Fee Related JP5424778B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009192237A JP5424778B2 (ja) 2009-08-21 2009-08-21 印刷データ処理装置、印刷データ処理方法、プログラム
US12/856,117 US8526052B2 (en) 2009-08-21 2010-08-13 Print data processing apparatus, control method for print data processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009192237A JP5424778B2 (ja) 2009-08-21 2009-08-21 印刷データ処理装置、印刷データ処理方法、プログラム

Publications (2)

Publication Number Publication Date
JP2011044028A JP2011044028A (ja) 2011-03-03
JP5424778B2 true JP5424778B2 (ja) 2014-02-26

Family

ID=43605157

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009192237A Expired - Fee Related JP5424778B2 (ja) 2009-08-21 2009-08-21 印刷データ処理装置、印刷データ処理方法、プログラム

Country Status (2)

Country Link
US (1) US8526052B2 (ja)
JP (1) JP5424778B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5853537B2 (ja) * 2011-09-27 2016-02-09 ブラザー工業株式会社 印刷のための制御装置
JP6659099B2 (ja) * 2015-08-05 2020-03-04 キヤノン株式会社 印刷装置とその制御方法、及びプログラム
US9633289B1 (en) 2015-12-04 2017-04-25 International Business Machines Corporation Power consumption in laser printing

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469533A (en) * 1992-07-10 1995-11-21 Microsoft Corporation Resource-oriented printer system and method of operation
EP0733965B1 (en) * 1995-03-23 2001-12-05 Agfa-Gevaert N.V. Parallel processing of page description language data stream
EP0825550A3 (en) * 1996-07-31 1999-11-10 Texas Instruments Incorporated Printing system and method using multiple processors
US7339687B2 (en) * 2002-09-30 2008-03-04 Sharp Laboratories Of America Load-balancing distributed raster image processing
US6816276B2 (en) * 2001-03-08 2004-11-09 Electronics For Imaging, Inc. Efficiently scheduled multiple raster image processors
US20040095596A1 (en) * 2002-11-14 2004-05-20 International Business Machines Corporation Apparatus, method and program product for controlling printing
US7861156B2 (en) * 2003-05-29 2010-12-28 Electronics For Imaging, Inc. Methods and apparatus for parallel processing page description language data
JP2007152623A (ja) 2005-12-01 2007-06-21 Canon Inc 描画制御装置、描画制御方法、記憶媒体およびプログラム
JP2007221604A (ja) * 2006-02-17 2007-08-30 Canon Inc 画像形成装置
JP4715654B2 (ja) * 2006-07-03 2011-07-06 富士ゼロックス株式会社 画像データ生成装置および画像形成装置
JP5212886B2 (ja) * 2006-12-28 2013-06-19 富士ゼロックス株式会社 画像形成システム、及び、画像形成プログラム
US7986419B2 (en) * 2007-09-12 2011-07-26 Xerox Corporation Performance optimization method for network printers
US20090080025A1 (en) * 2007-09-20 2009-03-26 Boris Aronshtam Parallel processing of page description language
US8077330B2 (en) * 2007-12-20 2011-12-13 Xerox Corporation Parallel RIP with preamble caching
US8064084B2 (en) * 2008-04-02 2011-11-22 Eastman Kodak Company Distributed processing of print jobs
US20100231952A1 (en) * 2009-03-12 2010-09-16 Fabio Giannetti Printing system and method
US8593668B2 (en) * 2009-05-04 2013-11-26 Xerox Corporation Parallel printing system

Also Published As

Publication number Publication date
US20110043859A1 (en) 2011-02-24
JP2011044028A (ja) 2011-03-03
US8526052B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
KR101221940B1 (ko) 화상처리장치, 화상처리방법, 및 그 프로그램을 기억한 매체
US8867081B2 (en) Printing method and apparatus for dividing each of the two or more print jobs into a plurality of sub-print jobs
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
US8189221B2 (en) Image forming device for executing a designated process with priority without canceling a previously accepted process
JP5594470B2 (ja) 印刷制御装置、印刷システムおよびプログラム
JP2008262543A (ja) Pdfダイレクトプリントのためのpdfデータの不連続伝送
JP5655392B2 (ja) 印刷画像処理装置及びプログラム
JP5097796B2 (ja) 画像形成装置
US20120212782A1 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium
JP5482238B2 (ja) 画像処理装置、画像形成装置、画像処理方法、画像形成方法及びプログラム
JP5424778B2 (ja) 印刷データ処理装置、印刷データ処理方法、プログラム
CN102681800B (zh) 图像处理装置及信息处理方法
US9286012B2 (en) System and method for efficiently imposing a print job in a print production workflow
JPH10289066A (ja) 画像処理装置及びその方法
JP5244770B2 (ja) 画像形成装置
JPH10154050A (ja) 印刷処理装置及び方法
JP6471660B2 (ja) 情報処理装置及びプログラム
JP2006344184A (ja) 画像形成装置
US20170052746A1 (en) Image forming apparatus, image forming method, and non-transitory computer readable medium
JP2010173206A (ja) プリンタコントローラ
JP3787907B2 (ja) 電子印刷装置
JP2001075759A (ja) 情報処理装置および情報処理方法
JP2003039747A (ja) 画像形成装置およびその制御方法
JP2006130776A (ja) 画像処理装置および方法
JP2013052568A (ja) 画像形成装置、制御方法及び制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

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: 20131029

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131126

R151 Written notification of patent or utility model registration

Ref document number: 5424778

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees