説明

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

【課題】印刷データ中に同一のリソースが重複して記述されていた場合、印刷データ処理も重複して行われ、処理時間が増大する。
【解決手段】印刷データ処理装置が、印刷データ中に同一のリソースが重複して記述されているかを検知する。重複して記述されていた場合に、重複したリソースで2番目以降に記述されているものを削除して印刷オブジェクトを連結する手段と、重複したリソースを個別リソースに分解して複数の印刷オブジェクトから共通で参照できる形式で登録する手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データの処理を行う印刷データ処理装置及び印刷データ処理方法、並びに、当該印刷データ処理方法をコンピュータに実行させるためのプログラムに関するものである。
【背景技術】
【0002】
近年、顧客一人ひとりのニーズにあったデータを印刷するバリアブル印刷(Variable Data Printing、以後、VDPと略記する)の需要が拡大している。VDPでは、顧客一人分の印刷データを表す単位をレコードと呼ぶ。レコードはページの集合であり、VDPにはレコードごとに顧客に合わせた内容で印刷を行うことで印刷物の付加価値を高めるといった特徴がある。デジタル印刷におけるVDPでは、ページ記述言語(以後、PDLと略記する)としてPPML、PDF/VTといった規格(VDP言語)が策定されている。これらのVDP言語では、印刷データ中の画像を、複数回使用される再利用オブジェクトとそうでないオブジェクトに分類できる。これによって、再利用オブジェクトの画像データをキャッシュし、次に同じオブジェクトが描画されるときにキャッシュされた画像データを再利用できるように設計されている。再利用オブジェクトの画像データをキャッシュし再利用することで、印刷処理を高速化できることがVDP言語の特長である。例えば、VDP言語のひとつであるPPMLでは、再利用オブジェクトをリユーザブルオブジェクト、そうでないオブジェクトをバリアブルオブジェクトと分類でき、それぞれに応じた印刷データ処理ができるように設計されている。
【0003】
しかし、印刷データの構造によっては、VDP言語を用いて記述された印刷データを印刷する場合に、VDP言語ではないPDLで印刷データを記述して印刷するよりも処理時間が大きくなってしまうことがある。このような問題は、印刷データが、データ中に含まれる複数の印刷オブジェクトで同一のリソースファイルを重複して処理する構造になっている場合に起こりうる。一例として、VDP言語としてPPMLを用いる図12を挙げて説明する。PPMLでは、複数の異なるPDLで記述された印刷オブジェクトを印刷データ中にコンテンツとして含めることができる。図12では、コンテンツにPostScript(登録商標。以後、PSと略記する)を用いる場合を例にとり説明する。PSでは印刷オブジェクトがリソースを使用することが可能である。PSリソースにはフォント、コマンド定義の集合であるProcSet、フォーム、カラープロファイル設定を表すカラーレンダリングなどの種類がある。PPML印刷データ中に4つのPSオブジェクトがあり、それぞれのPSオブジェクトに同一のPSフォントファイル1が重複して独立に記述されているとする。この場合、PPML印刷データを処理する際に、PSフォントファイル1が記述された4回処理されてしまう。これに対して、同じ内容をPPMLではなくPS印刷データとして記述した場合の例を図13に示す。
【0004】
図13では、PSフォントファイル1は初めに使用される1回のみ記述し、処理すればよい。このため、PPMLを使用する場合のほうがPSフォントファイル1を処理する回数が多くなり、処理時間が長くかかってしまう。VDP言語で記述された印刷データは短い処理時間で処理できるように設計されていることが特徴であるが、このような印刷データではVDP言語を用いるほうがかえって処理時間が長くかかってしまう。
【0005】
この課題を解決するための手段として、特許文献1の先行技術がある。この特許文献には、異なるデジタル文書を結合する際、共通のリソースを削除してから結合することで結合後のファイルサイズを小さく抑える文書結合方法が記載されている。この先行技術を印刷データ処理に適用すると、結合後のファイルサイズを小さく抑えるだけでなく、印刷データの処理時間を短縮することが可能である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−271098号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来の技術は、同一のリソースを使用する印刷オブジェクトが印刷データ中で連続して記述されている場合にしか適用できない。処理時間を短縮する対象の印刷オブジェクトが印刷データ中で連続して記述されているとは限らないため、印刷データ処理のさらなる効率化のためには、より広範囲に適用可能な方法が望ましい。
【0008】
本発明は、上述の課題を解決するためになされたものである。本発明の目的は、複数の印刷オブジェクトに同一のリソースが重複して記述されている印刷データの処理において、重複したリソースの処理を軽減し、印刷データ処理時間が短くなる仕組みを提供することである。
【課題を解決するための手段】
【0009】
上記目的を達成するために本発明は以下の構成を備える。すなわち印刷データ処理装置であって、
印刷データに記述された第1の印刷オブジェクトと第2の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
を備える。
【発明の効果】
【0010】
本発明によれば、複数の印刷オブジェクトに同一のリソースが重複して記述されている印刷データの処理を行う際に、その処理装置の動作性能の低下を防ぎ、印刷データ処理にかかる時間を短くすることができる。その際、同一のリソースが重複して記述された印刷オブジェクトの記述順序によらず、処理時間の短縮を図ることが可能である。
【図面の簡単な説明】
【0011】
【図1】本発明の一実施例を説明するハードウェアブロック図
【図2】(A)本発明の一実施例を説明するソフトウェアブロック図、(B)PDLインタプリタの詳細を説明するソフトウェアブロック図
【図3】PPMLデータの印刷処理のフローチャート
【図4】実施例1におけるリソース処理時間短縮方法のフローチャート
【図5】実施例2におけるリソース処理時間短縮方法のフローチャート
【図6】実施例3における、リソース処理時間短縮方法の使い分けを示すフローチャート
【図7】実施例4における、リソース処理時間短縮方法の使い分けを示すフローチャート
【図8】印刷データ中の印刷オブジェクトの配置例を示す図
【図9】(A)実施例1におけるPSオブジェクト1の構成を例示する図、(B)実施例1におけるPSオブジェクト2の構成を例示する図、(C)実施例1でPSオブジェクト1と2が連結された状態を例示する図
【図10】印刷データの記述例を示す図
【図11】印刷データの記述が改変された状態の一例を示す図
【図12】PPMLデータの一例を示す図
【図13】PSデータの一例を示す図
【発明を実施するための形態】
【0012】
[実施形態1]
以下、本発明を実施するための最良の形態について図面を用いて説明する。図1は本実施例に適用される印刷データ処理装置であるプリンタ100の構成を説明するハードウェアブロック図である。なお、本実施例では印刷データ処理装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
【0013】
図1において、200はコントローラユニットで、画像信号やデバイス情報の入出力を制御する。CPU1はROM3あるいはHDD4に記憶されたプログラムをRAM2に読み出し、実行する。さらに、システムバス5に接続される各デバイスをCPU1が統括的に制御する。RAM2は、CPU1の主メモリ、ワークメモリとして機能する。ROM3には電源ON時に実行されるブートプログラムが格納され、HDD4にはオペレーティングシステムと本装置の制御プログラム本体が格納される。また、HDD4は画像データや印刷データ等の大容量データを一時的あるいは長期的に保持する目的でも使用される。Network6はローカルエリアネットワーク11に接続し、プリンタ外部との印刷データやデバイス情報の入出力を担う。操作部I/F7は操作部12とのインターフェース部で、操作部12に表示する画像データを操作部12に対して出力する。また、操作部I/F7は操作部12から本装置の使用者が入力した情報を、CPU1に伝える役割をする。操作部12は、出力器として液晶パネルと音源を備え、入力器としてタッチパネルとハードキーを備えるものである。コントローラユニット200はデバイスI/F8を介して、プリンタエンジン13に接続される。デバイスI/F8はCPU1の指示に基づき、画像信号の送出、デバイス動作指示、デバイス情報の受信を行う。プリンタエンジン13はコントローラユニット200からの画像信号を媒体上に出力する出力機であり、電子写真方式、インクジェット方式の何れでも構わない。Raster Image Processor(RIP)9は中間プリントデータをラスタイメージに展開する専用ハードウェアである。RIP9はCPU1によりRAM2上に生成された中間プリントデータを高速かつ、CPU1の実行と並列に、処理するものである。プリンタ画像処理部10は、プリント出力画像データに対して、画像補正、ハーフトーニング等を行う。画像圧伸部14は、画像データの圧縮・伸張処理を行う。
【0014】
<印刷データ処理装置のソフトウェア構成>
図2(A)は印刷データ処理装置(プリンタ100)のソフトウェアモジュール構成図である。図2(A)に記載した各ソフトウェアモジュールは、プログラムとしてHDD4に格納され、RAM2にロードされCPU1により実行されるものである。データ受信部201はホストから送信された印刷データを受信する。受信した印刷データはジョブ制御部202を介してジョブデータ管理部207で保持される。ジョブ制御部202はデータ受信から印刷までのジョブ制御の全般を司る。PDLインタプリタ203は印刷データを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストはジョブ制御部202を介してジョブデータ管理部207で保持される。レンダラ204はディスプレイリストからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。生成されたビットマップイメージはジョブ制御部202を介してジョブデータ管理部207で保持される。プリンタドライバ205はデバイスI/F8を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース206は操作部I/F7を介して、操作部14を制御するモジュールである。ユーザインターフェース206は主に操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部207は印刷データ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的もしくは長期的に保持管理するデータベースである。
【0015】
<PDLインタプリタの構成>
図2(B)は図1のPDLインタプリタ203をより詳細に記したソフトウェアモジュール構成図である。なお、本実施形態では印刷データに含まれるページ記述言語(PDL)はPPMLであるとして説明するが、PDF/VTなど他のVDP言語のインタプリタを備える構成も可能である。また、本実施形態ではPPMLデータのコンテンツPDLとしてPostScript(登録商標。以後、PSと略記する)、PDF、JPEG、TIFFの4種類であるとして説明するが、コンテンツPDLの組み合わせはこれ以外を用いることも可能である。PPMLインタプリタ208はPPMLデータの解釈を行う。PS/PDFインタプリタ209はPSデータおよびPDFデータの解釈を行う。JPEG/TIFFインタプリタ210はJPEGデータおよびTIFFデータの解釈を行う。また、PS/PDFインタプリタ209とJPEG/TIFFインタプリタ210はDLビルダ212により中間データであるディスプレイリストを出力する。キャッシュ制御部211は描画オブジェクトをビットマップイメージ、もしくはディスプレイリストの形式でキャッシュする。PPMLデータで描画オブジェクトの再利用が指示された場合は、PPMLインタプリタ208はキャッシュ制御部211と連動して描画オブジェクトの再利用を行う。
【0016】
<PPMLデータの印刷処理>
次に、PPMLデータの印刷処理の概要を、図3のフローチャートを用いて説明する。なお、本説明では図2(A)および(B)の各ソフトウェアモジュールによって実行されるように記述する。また、本フローチャートはHDD4に記憶された図2(A)および(B)の各ソフトウェアモジュール内の各プログラムがRAM2に読み出され、CPU1により実行されることにより実現される。
【0017】
最初にS1001において、データ受信部201がホストコンピュータよりネットワークを介して送信されたPPMLデータを受信し、ジョブ制御部202に対してジョブ投入通知を行う。そして、ジョブ制御部202は受信したPPMLデータをジョブデータ管理部207にスプールする。次にS1002で、ジョブ制御部202はPPMLインタプリタ208に対してPPMLデータの解釈を指示する。PPMLインタプリタ208は、PPMLデータを解釈し、PS/PDFインタプリタ209、JPEG/TIFFインタプリタ210、DLビルダ212、キャッシュ制御部211と協調して中間データであるディスプレイリストを生成する。ジョブ制御部202は生成されたディスプレイリストをジョブデータ管理部207に一時的に保持する。次にS1003にて、ジョブ制御部202は該ディスプレイリストをビットマップ化するようにレンダラ204に指示する。レンダラ204は、RIP9を用いて該ディスプレイリストをビットマップイメージ化する。次にS1004で、ジョブ制御部202は生成されたビットマップイメージを画像圧伸11により圧縮し、ジョブデータ管理部207に一時的に保持する。なお、ビットマップ化が終了したディスプレイリストはジョブ制御部207により、ジョブデータ管理部207から削除される。次に、S1005でジョブ制御部202はプリンタドライバ205にビットマップイメージのプリントエンジンへの送信を指示する。プリンタドライバ205はプリンタエンジン15と同期を取りながらビットマップイメージを送信する。また、プリンタドライバ205は、送信する前に画像圧伸11によりビットマップイメージの伸張処理を行う。プリンタドライバ205は、プリンタエンジン15への送信が終了したビットマップイメージをジョブデータ管理部207から削除する。なお、S1002からS1005までの処理は全ページ分のデータに対する一括処理を行うようにも、ページ毎の逐次処理を行うようにも構成可能である。ページ毎の逐次処理を行うようにした場合は、S1002からS1005の処理はパイプライン化され、各処理は並列実行されるようになる。
【0018】
<オブジェクトの連結処理>
本実施例におけるリソース処理時間の短縮方法について、図4を用いて説明する。この処理はPPML印刷データを解釈する処理中、すなわち図3のS1002の中で行われる。なお、本実施例ではリソース処理時間を短縮する対象はPPML印刷データ中のPSオブジェクトであるとして説明するが、これ以外のPDLで記述された印刷データおよび印刷オブジェクトを対象に処理の高速化を図ることも可能である。
【0019】
まず、印刷データの中に同一のリソースを使用する印刷オブジェクトが複数あるかどうかを、S1101においてPPMLインタプリタ208がプレパースにより検知する。プレパースとは、印刷データの描画処理を開始する前に、印刷データのページ数やオブジェクトの配置など、印刷データ処理に必要な情報を収集する処理を指す。プレパースの結果、同一のリソースを使用する印刷オブジェクトが複数存在しない場合には、S1109に進み、印刷データに変更を加えることなく図3を用いて説明した描画処理を続行する。
【0020】
次に、同一のリソースを使用する印刷オブジェクトが複数あった場合の処理について説明する。まず、着目したオブジェクトと同一のリソースファイルを使用するオブジェクトがあれば、それら着目オブジェクト群について、印刷オブジェクトが印刷データ中で連続して記述されているかどうかをPPMLインタプリタ208がS1103において判定する。連続して記述されていた場合、重複したリソースを削除してから印刷オブジェクトを連結する処理に進む。一例として、印刷データ中に図8のようなページ301がある場合を用いて説明する。図8のページ301には3つの印刷オブジェクトとして、PSオブジェクト302(例えば第1の印刷オブジェクトと呼ぶ)、PSオブジェクト303(例えば第2の印刷オブジェクトと呼ぶ)、JPEGオブジェクト304がこの順に記述されているとする。さらに、PSオブジェクト302とPSオブジェクト303に同一のリソースファイルであるPSリソースファイルAが定義されているとする。図9(A)にPSオブジェクト302の内容を例示する。本実施例では、PSオブジェクト302には2つのPSデータであるPSリソースファイル401とPSコマンドファイル402とが含まれているとする。PSリソースファイル401にはPSオブジェクト302の描画に必要なフォントやProcSetが記述されている。PSコマンドファイル402にはPSリソースファイル401に定義されたリソースを用いてPSオブジェクト302の描画処理を行うためのPSコマンドが格納されている。図9(B)におけるPSオブジェクト303も同様にPSリソースファイル401とPSコマンドファイル403とを含んでいる。
【0021】
図9に示したオブジェクトの例を用いて、S1103においてPPMLインタプリタ208がPSオブジェクト302とPSオブジェクト303とが連続して記述されていると判定した場合の処理を述べる。まず、PPMLインタプリタ208がS1106においてPSオブジェクト303の内容からPSリソースファイル401を削除し、次に、S1107においてPPMLインタプリタ208がPSオブジェクト302とPSオブジェクト303とを連結する。S1106およびS1107の処理によって連結されたPSオブジェクト302およびPSオブジェクト303の状態を図9(C)に例示する。このように連結すれば、図9(C)におけるPSコマンドファイル402とPSコマンドファイル403とはともにPSリソースファイル401を参照することができる。したがって、図9(A)および(B)のように別の印刷オブジェクトとして記述されていた場合と同じ描画内容を保ちながら、PSリソースファイル401の処理回数を1回低減することができる。
【0022】
対象の印刷オブジェクトが連続して記述されていなかった場合、処理S1104に進む。一例として、図8のページにある3つのオブジェクトの記述順序がPSオブジェクト302、JPEGオブジェクト304、PSオブジェクト303の順であるとする。この場合、PSオブジェクト302とPSオブジェクト303には同一のPSリソースファイル401が定義されているが、印刷データ中で連続して記述されておらず、間にJPEGオブジェクト304が記述されているために連結して処理することができない。このような場合、処理S1104において、他の印刷オブジェクトと描画順序を入れ替えることで対象の印刷オブジェクトの記述を連続にできるかをPPMLインタプリタ208が判定する。図8に図示したように、JPEGオブジェクト304とPSオブジェクト303の描画範囲は重複していないため、この2つの印刷オブジェクトの描画順序を入れ替えても最終的な描画結果に影響を与えない。加えて、この2つの印刷オブジェクトの描画順序を入れ替えてPSオブジェクト302、PSオブジェクト303、JPEGオブジェクト304の順にすれば、対象のPSオブジェクト302とPSオブジェクト303が連続して記述される。なお、JPEGオブジェクト304は、例えば第3の印刷オブジェクトとする。この場合、S1105に進み、JPEGオブジェクト302とPSオブジェクト303の順序を入れ替えるように印刷データを変更する。次に、すでに述べた処理S1106、S1107に進んでリソースファイルの削除と印刷オブジェクトの連結を行う。なおオブジェクトの描画順序(すなわちオブジェクトの記述順序)の入れ替えが可能であることを、オブジェクトの重複で判定するのは、オブジェクトが重複している場合、先に描画するオブジェクトを後に描画するオブジェクトで上書きすることがあるからである。重複部分の処理は、上になるオブジェクトの不透明度や重複部分の色の論理演算などにより様々であり、オブジェクトが重複していることのみをもってそれらを交換できないとはいえない。しかしながら、少なくとも重複していないオブジェクトであればその交換は可能であるから、処理の簡単化のために重複の有無を交換の可否の判定に用いることは有用である。
【0023】
S1107において着目した同一のリソースファイルを使用する印刷オブジェクトの連結が終了するか、S1104において他の印刷オブジェクトと描画順序を入れ替えても連結したい印刷オブジェクトを連続して記述できないと判定された場合、S1108に進む。すなわち、これらの印刷オブジェクトに対してリソース処理時間の短縮化処理が完了したか、これらの印刷オブジェクトは連結することができないと判断された後、現在の着目オブジェクト群をプレパースの対象から外す。その後、プレパースの対象として残っている他の印刷オブジェクトで連結可能なものがないかを再度S1102において探索する。
【0024】
S1103からS1108までの一連の処理を、S1102でPPMLインタプリタ208が同一のリソースファイルを使用する印刷オブジェクトがあると判定した回数だけ繰り返す。同一のリソースファイルを使用する印刷オブジェクトで連結可能なオブジェクトがなくなったら、S1109に進む。すなわち、本発明で提案する処理時間短縮のための手段を終了し、図3で説明した通常のPPML印刷処理を行う。
【0025】
以上の手順により、共通のリソースファイルを使用する印刷オブジェクトのうち、連結により印刷結果に影響を及ぼさないものは連結される。
【0026】
本実施例で説明した発明の効果を述べる。本実施例で説明した発明を実施することで、S1106において削除したリソースファイルの処理時間が不要になり、印刷データの処理時間が短縮できる。また、S1104およびS1105の処理が実行できた場合に、先行技術が適用できなかった印刷データ中で連続して記述されていない印刷オブジェクトに対しても処理時間の短縮を図ることができる。
【0027】
[実施形態2]
本実施形態では、実施形態1とは異なるリソース処理時間の短縮方法を説明する。本実施例でも、実施形態1と同じくPPMLで記述された印刷データに対してPSリソースファイルの処理時間を短縮する場合を例にとり説明する。本実施形態で説明するリソース処理時間の短縮方法の概要を図5に示す。ここで、S1201とS1202はそれぞれ図4におけるS1101とS1102と同様であるから説明を省略する。
【0028】
S1202において同一のリソースファイルを使用する印刷オブジェクトが複数存在すると判定された場合、S1203に進む。具体的には、リソースファイルのファイル名称を使って同一のファイル名称の有無を判定することによりS1202が実現される。ここでは実施形態1と同様、印刷データ中に図8のページ301があり、PSオブジェクト302とPSオブジェクト303に同一のPSリソースファイル401が定義されていた場合を例にとり説明する。S1203において、PPMLインタプリタ208とPS/PDFインタプリタ209とが連動してPSリソースファイル401を解釈し、単一のリソースを抽出する。本実施形態では抽出されたリソースを個別リソースと呼ぶ。PSリソースファイル401から個別リソースとして抽出されるのは単一のフォント、ProcSet、フォームなど複数の個別リソースである。リソースファイルの中には単一のリソースのみが記述されているとは限らないため、抽出される個別リソースは複数となってもよい。ここではPSリソースファイル401から個別リソースとしてフォントA、フォントB、ProcSet1の3つが抽出されたとして説明する。
【0029】
次に、PPMLインタプリタ208がS1204でこれらの個別リソースを登録するスコープを決定する。スコープとは、VDPにおいて再利用オブジェクトやリソースが持つ情報で、各再利用オブジェクトやリソースが有効である範囲を指す。PPMLで記述された印刷データでは、スコープをジョブ全体、特定のレコード、特定のページなどから選択することができる。例えば、あるリソースAのスコープが5ページ目となっている場合、5ページ目に配置された全ての印刷オブジェクトがリソースAを参照可能であり、5ページ目以外に配置された印刷オブジェクトからはリソースAを参照することができない。なお、スコープは、リソースファイルが取り出された印刷オブジェクトに基づいて決定される。例えば、ページ301に配置される印刷オブジェクト302と303からリソースファイルが取り出された場合、そのリソースファイルのスコープはページ301のみとなる。また、第1レコードとして処理される第1ページに配置される印刷オブジェクト302と第2ページに配置される印刷オブジェクト303とからリソースファイルが取り出された場合、そのリソースファイルのスコープは第1レコードとなる。また、第1レコードとして処理される第1ページの印刷オブジェクト302と第2レコードとして処理される第2ページの印刷オブジェクト303とからリソースファイルが取り出された場合、そのリソースファイルのスコープは印刷ジョブ全体となる。つまり、ひとつのリソースを共通に利用する複数のオブジェクトが描画されるページを、当該リソースのスコープと決定する。なお、ここでは、ページ301に配置される印刷オブジェクト302と303からリソースファイルが取り出された場合を想定しているので、PPMLインタプリタ208が3つの個別リソースを登録するスコープをすべてページ301と決定したとする。
【0030】
スコープの決定がなされた後、S1205において、PPMLインタプリタ208がS1203で抽出した個別リソースをS1204で決定したスコープに登録する。なお、リソースの登録は、PPMLインタプリタ208が印刷データを改変することで実行する。続いて、S1206において、PPMLインタプリタ208がS1202で検出された印刷オブジェクトからS1203で解釈されたリソースファイルを削除する。PPMLで記述された印刷データの改変方法を図10および図11を用いて説明する。まず、図8におけるページ301のPPML印刷データ中の記述例を図10に示す。図10のPSオブジェクト501、PSオブジェクト502、JPEGオブジェクト503がそれぞれ図8のPSオブジェクト302、PSオブジェクト303、JPEGオブジェクト304の記述に対応する。PSオブジェクト501および502に記載したように、PSオブジェクト302とPSオブジェクト303とには同一のPSリソースファイル401(PSリソースA)が含まれている。次に、S1205およびS1206で個別リソースの登録とリソースファイルの削除が行われた後の印刷データの記述例を図11に示す。ここで、601が登録された個別リソースの記述である。個別リソースとして抽出されたフォントA、フォントB、ProcSet1の3つが、PSオブジェクト401とPSオブジェクト402から参照できる形式で登録されている。なお、S1204において個別リソースを登録するスコープはページ301であると決定されたため、個別リソースはこのページ301のタグ内の先頭に記述されている。また、PSオブジェクト602およびPSオブジェクト603は、それぞれPSオブジェクト501,502からリソースファイル401を削除した後のPSオブジェクトに対応する。JPEGオブジェクト503は操作されずにそのまま残っている。
【0031】
このようにリソースファイルを個別リソースに分解して登録しなおすことで、印刷オブジェクトが実際に個別リソースを使用する段になってはじめて処理を行うことが可能になる。例えば、抽出された個別リソースであるフォントA、フォントB、ProcSet1のうち、PSオブジェクト1ではフォントAとフォントBが、PSオブジェクト2ではフォントBとProcSet1が使用されていたとする。この場合、本実施例で説明した手段を適用しなければ、PSオブジェクト1およびPSオブジェクト2の処理において3つの個別リソースの処理がそれぞれのオブジェクトについて行われる。一方、本実施形態を適用すると、PSオブジェクト1の処理ではフォントAとフォントBのみを、PSオブジェクト2の処理ではフォントBとProcSet1のみを処理すればよくなる。すなわち、PSオブジェクト1の処理において不要なProcset1の解釈が実行されず、PSオブジェクト2の処理において不要なフォントAの解釈が実行されない。その結果、本実施例で説明した手段を適用しない場合と比較してフォントAとProcSetの処理が1回ずつ軽減され、処理時間が短縮できる。
【0032】
本実施例で説明した発明の効果は次の通りである。本実施例で説明した手段を実施すると、印刷オブジェクトが個別リソースを使用する際にのみリソースの処理を行うことが可能になり、印刷オブジェクトが使用しない個別リソースの処理時間を短縮することができる。また、実施形態1で説明した手段では印刷オブジェクトの連結ができない場合があり、その場合には処理時間の短縮効果がなかったが、本実施形態で説明した発明にはそのような制限がない。すなわち、本実施形態で説明した発明は、実施形態1で説明した発明よりも広範囲に適用可能である。
【0033】
[実施形態3]
本実施例では、実施形態1および2で説明したリソース処理時間の短縮方法を組み合わせて用いる方法を説明する。
【0034】
実施形態1で説明したリソース処理の短縮化処理は、リソースファイルの処理そのものを省略できるという長所があったが、オブジェクトの連結ができない場合には適用できないという制限があった。一方、実施形態2で説明したリソース処理の短縮化処理は任意のオブジェクトに適用可能であるという長所があるが、個別リソースの抽出処理にかかる時間を省略できないという制限がある。したがって、実施形態1および2で説明した手段のいずれか一方のみを用いるより、これらの手段を組み合わせて用いたほうがより高い効果が見込める場合がある。
【0035】
本実施形態では、実施形態1と実施形態2それぞれにおけるリソース処理の短縮化処理の組み合わせ、その例を、図6のフローチャートに沿って説明する。図6においてS1301およびS1302は実施形態1で述べた処理と同じであるため、説明を省略する。次に、オブジェクト連結処理P01に進む。この処理は、図4のP01、すなわちS1103、S1104、S1105、S1106、S1107を実行する処理に等しい。つまり本方法では、リソース処理時間を短縮したい印刷オブジェクトに対して、実施例1で説明した手段を優先して適用する。ただし、S1104で「No」と判定された場合にはオブジェクトを連結できなかった旨を記憶しておき、P01の処理を抜ける。また、S1107でオブジェクトを連結した場合には、オブジェクトを連結できた旨を記憶しておき、P01の処理を抜ける。次に、S1303においてPPMLインタプリタ208がP01でオブジェクトを連結できたかどうか、すなわち、図4における処理S1107が実行されたか、それともS1104の判定の結果、オブジェクトを連結できないと判断されたかを判定する。オブジェクトを連結できた場合、S1304、S1302と進み、他の印刷オブジェクトでリソース処理を短縮できないか探索を行う。この部分も実施例1で既に記述されているため説明を省略する。
【0036】
S1303でオブジェクトが連結されていないと判定された場合、S1302で見つかった印刷オブジェクトに対してはまだリソース処理時間の短縮ができていない。そのため、P02に進み、実施形態2において説明した図5の処理P02(S1203、S1204、S1205、S1206を指す)を実行することで処理時間の短縮を図る。
【0037】
このような処理構成を備えれば、適用範囲が狭いが高い効果が見込める実施形態1の手段を先に実行し、適用できなかった場合に実施形態2の手段を実行することができる。その結果、実施形態1および2で説明したリソース処理時間の短縮化処理のいずれか一方のみを実施するより高い効果を見込める。
【0038】
[実施形態4]
本実施例では、実施形態3と同様、実施形態1および2で説明したリソース処理時間の短縮方法を組み合わせて用いる方法を説明する。
【0039】
本実施例で説明する方法の概略を表すフローチャートを図7に示す。実施形態3で説明した方法との差異は、S1403において、S1402で見つかったオブジェクトがすべて再利用しないオブジェクトであるかをPPMLインタプリタ208が判定する処理が追加されている点である。
【0040】
このS1403の定処理により、リソース処理時間の短縮方法は次のように使い分けられる。すなわち、S1402で見つかったオブジェクトがすべて再利用しないオブジェクトであれば、P01でオブジェクトの連結処理を実行する。P01でオブジェクトが連結できなかった場合、およびS1402で見つかったオブジェクトの中に再利用オブジェクトがあった場合には、P02のリソース登録処理を適用する。
【0041】
本実施例で説明した処理構成による効果は以下の通りである。印刷データ処理装置100がバリアブル印刷データを処理する際、再利用オブジェクトに対しては画像データをRAM2やHDD4にキャッシュし、該当オブジェクトが2回目以降に描画される際に再利用することで処理の高速化を図る場合がある。このとき、再利用オブジェクトに他の印刷オブジェクトが連結されていると、キャッシュする画像データに余分なデータが含まれるなどの不都合が生じることがある。本実施例ではこのような場合を鑑み、再利用オブジェクトに対しては実施形態1で述べたオブジェクト連結処理を行わない。これにより、従来の再利用オブジェクトに対するキャッシュデータの作成と再利用に影響を与えずにリソース処理時間の短縮を図ることができる。
【0042】
[その他の実施例]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
印刷データに記述された第1の印刷オブジェクトと第2の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
を備えることを特徴とする印刷データ処理装置。
【請求項2】
前記オブジェクト連結手段は、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが印刷データ中に連続して記述されているかを判定する手段を有し、
前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されていると判定された場合に、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項1に記載の印刷データ処理装置。
【請求項3】
前記オブジェクト連結手段はさらに、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されていないと判定された場合に、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトが連続して記述されるかを判定する手段と、
前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されると判定した場合に、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトと前記第3の印刷オブジェクトの描画順序を入れ替える入れ替え手段とを有し、
前記入れ替え手段により描画順序を入れ替えた場合にも、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項2に記載の印刷データ処理装置。
【請求項4】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定された場合に、同一のリソースから個別リソースを抽出する抽出手段と、
抽出した前記個別リソースを前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第1の印刷オブジェクトおよび前記第2の印刷オブジェクトから削除するリソース登録手段と
を有することを特徴とする請求項1に記載の印刷データ処理装置。
【請求項5】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定され、かつ、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されると判定されなかった場合には、前記同一のリソースから個別リソースを抽出する抽出手段と、
抽出した前記個別リソースを前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第1の印刷オブジェクトおよび前記第2の印刷オブジェクトから削除するリソース登録手段と
をさらに有することを特徴とする請求項3に記載の印刷データ処理装置。
【請求項6】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されている場合、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかが再利用されるオブジェクトであると判定された場合には、前記抽出手段により個別リソースを抽出し、前記リソース登録手段により個別リソースの登録及び削除を行うことを特徴とする請求項5に記載の印刷データ処理装置。
【請求項7】
印刷データに記述された第1の印刷オブジェクトと第2の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定手段と、
前記判定手段により同一のリソースが重複して記述されていると判定された場合に、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除するオブジェクト連結手段と
してコンピュータを機能させるためのプログラム。
【請求項8】
前記オブジェクト連結手段は、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが印刷データ中に連続して記述されているかを判定し、
前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されていると判定された場合に、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項7に記載のプログラム。
【請求項9】
前記オブジェクト連結手段はさらに、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されていないと判定された場合に、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトが連続して記述されるかを判定し、
前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されると判定した場合に、前記第1または第2の印刷オブジェクトと前記第3の印刷オブジェクトの描画順序を入れ替え、
前記描画順序を入れ替えた場合にも、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除することを特徴とする請求項8に記載のプログラム。
【請求項10】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定された場合に、同一のリソースから個別リソースを抽出し、
抽出した前記個別リソースを前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第1の印刷オブジェクトおよび前記第1の印刷オブジェクトから削除することを特徴とする請求項7に記載のプログラム。
【請求項11】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されていると判定され、かつ、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかの描画順序を第3の印刷オブジェクトと入れ替えることで前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとが連続して記述されると判定されなかった場合には、前記同一のリソースから個別リソースを抽出し、
抽出した前記個別リソースを前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとから参照可能な形式で前記印刷データ中に登録し、登録した前記個別リソースを、前記第1の印刷オブジェクトおよび前記第1の印刷オブジェクトから削除することを特徴とする請求項9に記載のプログラム。
【請求項12】
前記オブジェクト連結手段は、前記判定手段により同一のリソースが重複して記述されている場合、前記第1の印刷オブジェクトまたは前記第2の印刷オブジェクトのいずれかが再利用されるオブジェクトであると判定された場合には、個別リソースを抽出し、前記個別リソースの登録及び削除を行うことを特徴とする請求項11に記載のプログラム。
【請求項13】
印刷データ処理装置の判定手段が、印刷データに記述された第1の印刷オブジェクトと第2の印刷オブジェクトとに同一のリソースが重複して記述されているかを判定する判定工程と、
前記判定工程により同一のリソースが重複して記述されていると判定された場合に、印刷データ処理装置のオブジェクト連結手段が、前記第1の印刷オブジェクトと前記第2の印刷オブジェクトとを連結し、前記第2の印刷オブジェクトから同一のリソースを削除するオブジェクト連結工程と
を有することを特徴とする印刷データ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−240344(P2012−240344A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−114108(P2011−114108)
【出願日】平成23年5月20日(2011.5.20)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】