JP2012148429A - 印刷データ処理装置、キャッシュ処理方法及びプログラム - Google Patents

印刷データ処理装置、キャッシュ処理方法及びプログラム Download PDF

Info

Publication number
JP2012148429A
JP2012148429A JP2011007154A JP2011007154A JP2012148429A JP 2012148429 A JP2012148429 A JP 2012148429A JP 2011007154 A JP2011007154 A JP 2011007154A JP 2011007154 A JP2011007154 A JP 2011007154A JP 2012148429 A JP2012148429 A JP 2012148429A
Authority
JP
Japan
Prior art keywords
cache
data
print data
storage medium
secondary storage
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.)
Pending
Application number
JP2011007154A
Other languages
English (en)
Inventor
Ryo Fujita
諒 藤田
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 JP2011007154A priority Critical patent/JP2012148429A/ja
Priority to US13/337,446 priority patent/US8760707B2/en
Publication of JP2012148429A publication Critical patent/JP2012148429A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/1817Buffers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/464Multimedia object, e.g. image, video
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1242Image or content composition onto a page
    • G06F3/1243Variable data printing, e.g. document forms, templates, labels, coupons, advertisements, logos, watermarks, transactional printing, fixed content versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format

Abstract

【課題】バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する。
【解決手段】バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、キャッシュデータを、キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、判定手段により、キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、決定手段により決定されたキャッシュデータを、二次記憶媒体に書き出す書き出し手段と、を有することによって課題を解決する。
【選択図】図4

Description

本発明は、印刷データ処理装置、キャッシュ処理方法及びプログラムに関する。
近年、顧客一人ひとりのニーズにあったデータを印刷するバリアブル印刷(VDP)の需要が拡大している。デジタル印刷におけるVDPには、PPML、PDF/VTといった規格(VDP言語)が策定されている。これらのVDP言語では、印刷データ中の画像を、複数回使用される再利用オブジェクトと、そうでないオブジェクトに分類できる。これによって、再利用オブジェクトに対して、画像データを何らかの形でキャッシュし、次に使われるときに再利用できるように設計されている。再利用オブジェクトのデータをキャッシュし再利用することで、印刷処理を高速化できることがVDP言語の特長である。例えばVDP言語の一つであるPPMLでは、再利用オブジェクトをリユーザブルオブジェクト、そうでないオブジェクトをバリアブルオブジェクトと分類できる。
上述したバリアブル印刷における再利用オブジェクトのキャッシュデータの保存には、通常、印刷データ処理装置に搭載されたRAM等のメモリが使われる。しかし、処理装置のメモリ容量は有限であり、キャッシュデータ量がこのメモリ容量を超えてしまう場合がある。この場合には、現在メモリ上にあるキャッシュデータを、処理装置に搭載されたハードディスク等の二次記憶媒体に書き出して退避させることが行われる。また、二次記憶媒体に退避させたキャッシュデータを利用する場合には、二次記憶媒体からメモリ上へと読み出す処理が必要な場合がある。
このような二次記憶媒体の書き出しの処理と読み出しの処理とは、一般的なスワップ処理技術を用いることで可能となる。しかし、二次記憶媒体の処理時間はメモリの処理時間に比べて低速であるため、スワップが行われる回数が多いと、印刷データ処理にかかる時間が増大する。
このため、バリアブル印刷データ処理の効率化のためには、キャッシュデータを二次記憶媒体にスワップする回数を低減するような手法が必要である。
この課題を解決するための手段として、特許文献1の先行技術がある。この先行技術では、スワップ回数やメモリ領域の圧迫を小さくするように、バリアブル印刷データのレコードの処理順序を決定する。ここで、バリアブル印刷におけるレコードとは、印刷データをまとめる単位である。例えば、顧客単位で印刷を行う場合には、1顧客分の印刷データにより1レコードが構成される。
特開2010−88104号公報
しかしながら、上述した従来の技術では、スワップ回数の低減による高速化は見込めるものの、その代償としてレコードを印刷して出力する順序が入れ替わってしまう。VDPに限らず、印刷データ処理装置に入力された印刷データの順序は、ユーザの意図どおりに出力することが望ましい場合が多い。レコードの印刷順序を保持しないと不都合が生じる例としては、印刷処理の後工程に影響がある場合が挙げられる。例えば、従業員向けの配布物に社員番号を印字したものをVDPで印刷し、配布を容易にするために社員番号順に出力したい場合に、1レコードが一人の社員に対応していれば、レコード順序を変更することはできない。また、ダイレクトメールをVDPで印刷し、後工程で検品機を用いて住所や氏名が正しく印字されているか検品したい場合、多くの場合、検品機に入力する正解データの順序と印刷された出力物の順序とが一致していることが求められる。このような場合には、レコードの順序を変更せずに出力することが求められるため、上述の先行技術を適用してバリアブル印刷を高速化することは困難である。
印刷物の出力順序を保持したまま処理を高速化するための手段として、再利用オブジェクトのキャッシュデータをスワップする順序を制御することが挙げられる。キャッシュデータのスワップ優先順位の決定方法は、印刷データ処理におけるスワップ回数に影響するため、スワップ優先順位の決定方法が適切でないと、スワップ回数が増加し、印刷データ処理にかかる時間が増大する、という課題がある。
この課題に対して、現在メモリ上にあるキャッシュデータのうち、どのデータを二次記憶媒体に書き出すか、という優先順位を決定する手段を適正化することで、処理の高速化を図ることができる。
本発明はこのような問題点に鑑みなされたもので、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することを目的とする。
そこで、本発明は、バリアブル印刷データを処理する印刷データ処理装置であって、前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、前記判定手段により、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、前記決定手段により決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出し手段と、を有することを特徴とする。
本発明によれば、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することができる。
印刷データ処理装置の一例であるプリンタ(コンピュータ)のハードウェア構成の一例を示す図である。 印刷データ処理装置のソフトウェアモジュール構成の一例を示す図である。 図1のPDLインタプリタをより詳細に記したソフトウェアモジュール構成の一例を示す図である。 PPMLデータの印刷処理の一例を示すフローチャートである。 PPMLデータ解釈処理の一例を示すフローチャートである。 再利用オブジェクトのキャッシュ処理の一例を示すフローチャートである。 スワップ優先順位の決定処理一例を示すフローチャートである。 プリンタエンジン及びコントローラユニットのCPUの処理速度からページ数を決定するための表の一例を示す図である。 実施形態1のキャッシュ制御部が取得する情報の一例を示す図である。 実施形態1の算出された無効キャッシュ量の一例を示す図(その1)である。 実施形態1の算出された無効キャッシュ量の一例を示す図(その2)である。 実施形態2のキャッシュ制御部が取得する情報の一例を示す図である。 実施形態2の算出された無効キャッシュ量の一例を示す図である。 中綴じ印刷におけるページ数算出方法の一例を説明するための図である。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、印刷データ処理装置の一例であるプリンタ(コンピュータ)100のハードウェア構成の一例を示す図である。なお、本実施形態では印刷データ処理装置単体の構成を用いて説明するが、ネットワークを介して接続させるホストコンピュータ上に多くの処理を分離実行させる構成も可能である。
コントローラユニット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は、画像データの圧縮・伸張処理を行う。
CPU1がプログラムに基づき処理を実行することによって、後述するソフトウェア構成、及びフローチャートの処理が実現される。
プリンタ100は、バリアブル印刷データを処理する。
図2Aは、印刷データ処理装置(プリンタ100)のソフトウェアモジュール構成の一例を示す図である。
データ受信部201は、ホストから送信されたプリントデータを受信する。受信したデータは、ジョブ制御部202を介してジョブデータ管理部207で保持される。ジョブ制御部202は、データ受信から印刷までのジョブ制御の全般を司る。PDLインタプリタ203は、プリントデータを解釈して、中間データであるディスプレイリストを生成する。生成されたディスプレイリストは、ジョブ制御部202を介してジョブデータ管理部207で保持される。レンダラ204は、ディスプレイリストからビットマップイメージまでを生成するモジュールであり、多くの処理は専用ハードウェアであるRIP9により実行される。生成されたビットマップイメージは、ジョブ制御部202を介してジョブデータ管理部207で保持される。プリンタドライバ205は、デバイスI/F8を介してプリンタエンジンへの印刷指示とビットマップイメージの送出を行う。ユーザインターフェース206は、操作部I/F7を介して、操作部12を制御するモジュールである。ユーザインターフェース206は、主に操作部12の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従い液晶パネルの表示を更新する。また、ユーザインターフェース206は、タッチパネルからの入力が何らかのジョブ実行指示であった場合は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部207は、プリントデータ、ディスプレイリスト、ビットマップイメージのそれぞれを一時的若しくは長期的に保持管理するデータベースである。
図2Bは、図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と連動して描画オブジェクトの再利用を行う。PPMLインタプリタ208は、ページ記述言語処理部の一例である。
次に、PPMLデータの印刷処理の概要を、図3のフローチャートを用いて説明する。図3は、PPMLデータの印刷処理の一例を示すフローチャートである。
最初に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は、生成されたビットマップイメージを画像圧伸部14により圧縮し、ジョブデータ管理部207に一時的に保持する。なお、ビットマップ化が終了したディスプレイリストは、ジョブ制御部202により、ジョブデータ管理部207から削除される。
次に、S1005でジョブ制御部202は、プリンタドライバ205にビットマップイメージのプリントエンジンへの送信を指示する。プリンタドライバ205は、プリンタエンジン13と同期を取りながらビットマップイメージを送信する。また、プリンタドライバ205は、送信する前に画像圧伸部14によりビットマップイメージの伸張処理を行う。プリンタドライバ205は、プリンタエンジン13への送信が終了したビットマップイメージをジョブデータ管理部207から削除する。なお、S1002からS1005までの処理は全ページ分のデータに対する一括処理を行うようにも、ページ毎の逐次処理を行うようにも構成することができる。ページ毎の逐次処理を行うようにした場合は、S1002からS1005までの処理はパイプライン化され、各処理は並列実行されるようになる。
次に、PPMLインタプリタ208における画像データの描画とキャッシュとに関して、図3のS1002の詳細を、図4を用いて説明する。図4は、PPMLデータ解釈処理の一例を示すフローチャートである。
まず、PPMLデータ内に画像データの描画命令がある場合、PPMLインタプリタ208は、S1101において前記画像データがリユーザブルオブジェクトであるか否かを判定する。リユーザブルオブジェクトでない場合、即ち再利用されない画像データである場合には、PPMLインタプリタ208は、S1102に進む。S1102において、PPMLインタプリタ208は、前記画像データを処理すべきPDLインタプリタに対して描画命令を解釈して部分ディスプレイリストを生成するよう命令し、何れかのインタプリタが前記処理を実行する。前記画像データを処理すべきPDLインタプリタとは、本実施形態の場合、コンテンツPDLがPS又はPDFであればPS/PDFインタプリタ209、JPEG又はTIFFであればJPEG/TIFFインタプリタ210である。ここで、部分ディスプレイリストとは、1ページ分の中間データであるディスプレイリストを構成する中間データである。部分ディスプレイリストは、印刷データ内の画像データそれぞれに対して生成される。例えば、印刷データのあるページにPSデータが一つとJPEGデータが一つ配置されている。このとき、このページのディスプレイリストは、PSデータに対応する部分ディスプレイリストとJPEGデータに対応する部分ディスプレイリストとで構成される。なお、一つの画像データに対して、部分ディスプレイリストは複数対応してもよい。
前記画像データがリユーザブルオブジェクトである場合には、PPMLインタプリタ208は、まず前記リユーザブルオブジェクトのキャッシュデータが既に生成されているかを判定する。本実施形態では、リユーザブルオブジェクトのキャッシュデータとして、上述の部分ディスプレイリストを使用するものとする。よって、前記画像データがリユーザブルオブジェクトである場合には、S1103において、PPMLインタプリタ208は、キャッシュ制御部211と連動して前記画像データの部分ディスプレイリストが既にキャッシュされているかを判定する。キャッシュ済みでない場合には、PPMLインタプリタ208は、S1104に進む。
S1104において、S1102と同様にPPMLインタプリタ208からPS/PDFインタプリタ209又はJPEG/TIFFインタプリタ210に対して部分ディスプレイリストの生成が命令され、何れかのインタプリタがこれを実行する。次に、S1105において、PPMLインタプリタ208は、キャッシュ制御部211と連動してS1104において生成された部分ディスプレイリストをキャッシュメモリに格納する。
S1103において既に前記画像データがキャッシュ済みであると判定された場合は、PPMLインタプリタ208は、S1106に進む。S1106において、PPMLインタプリタ208は、キャッシュ制御部211と連動してキャッシュデータがHDD4にスワップされているか否かを判定する。本実施形態では、ハードディスク等の二次記憶媒体上にあるデータを使用する場合は、RAM等のメモリ上に読み出す処理が必要であるとする。したがって、キャッシュデータがHDD4にスワップされている場合は、PPMLインタプリタ208は、S1107に進む。S1107において、PPMLインタプリタ208は、前記リユーザブルオブジェクトの部分ディスプレイリストをHDD4から取り出してキャッシュメモリに格納する処理を行う。
以上の制御により、何れの場合においても前記画像データの部分ディスプレイリストが生成若しくはロードできる。
S1108において、前記部分ディスプレイリストは、これを生成したPS/PDFインタプリタ209、JPEG/TIFFインタプリタ210、これを取り出したキャッシュ制御部211の何れかにより、ディスプレイリスト本体に追加される。S1109において全ての画像データの描画が終了したかをPPMLインタプリタ208が判定し、終了していない場合は繰り返し処理を続行する。
リユーザブルオブジェクトの部分ディスプレイリストのキャッシュにおけるスワップ処理について、図5を用いて説明する。このスワップ処理は、リユーザブルオブジェクトに対応した部分ディスプレイリストを生成してキャッシュメモリに格納するとき、及びHDD4にスワップされた部分ディスプレイリストを取り出してキャッシュメモリに格納するときに行われる。即ち、図4におけるS1105とS1107との処理中に随時行われる。図5は、再利用オブジェクトのキャッシュ処理の一例を示すフローチャートである。
キャッシュすべき部分ディスプレイリストを生成した後、及びスワップされた部分ディスプレイリストをキャッシュメモリにロードする際、まずS1201において、キャッシュ制御部211は、キャッシュメモリ容量に空きがあるかを判定する。即ち、キャッシュ制御部211は、キャッシュメモリの空き容量が、前記部分ディスプレイリストが使用するメモリ容量以上であるかを判定する。キャッシュメモリに空き容量が不足している場合、キャッシュ制御部211は、S1202に進む。S1202において、キャッシュ制御部211は、現在キャッシュメモリ上にある部分ディスプレイリストを1つ選び、ハードディスクへと書き出す。次にS1203において、キャッシュ制御部211は、必要な空き容量が確保されたか否かを判定し、確保されていなければハードディスクへの書き出し処理を繰り返し行う。
キャッシュ制御部211は、上記のような処理を行い、部分ディスプレイリストの格納に必要なメモリ容量が確保された後、S1204へ進む。S1204において、キャッシュ制御部211は、PPMLインタプリタ208、PS/PDFインタプリタ209、JPEG/TIFFインタプリタ210と連動して前記部分ディスプレイリストをキャッシュメモリへと格納する。前述したように、一つの画像データに対応する部分ディスプレイリストは複数あってもよい。したがって、一つのリユーザブルオブジェクトに対して、キャッシュデータとして保存する部分ディスプレイリストは複数に分かれる場合がある。このような場合に対応するため、S1205において、キャッシュ制御部211は、格納したい部分ディスプレイリストが全てキャッシュメモリへと格納されたか否かを判定し、そうでない場合、前記の処理を繰り返し行う。
次に、スワップ処理の優先順位を決定する処理について説明する。この処理は、部分ディスプレイリストをハードディスクへとスワップする処理、即ち図5のS1202において随時行われる。なお、スワップ処理の優先順位を決定するための基準量で、各部分ディスプレイリストがもつ値を、以後、無効キャッシュ量と記述する。
本実施形態では、キャッシュメモリ上にある部分ディスプレイリストに対して、そのメモリ使用量と次に利用されるまでのページ数とから無効キャッシュ量を算出し、無効キャッシュ量の大きい順に優先順位を決定する。
無効キャッシュ量の算出方法を、図6に示したフローチャートを用いてより具体的に例を挙げて説明する。図6は、スワップ優先順位の決定処理一例を示すフローチャートである。
まず、S1301及びS1302において、キャッシュ制御部211は、プリンタエンジン13の処理速度とコントローラユニット200の処理速度とを取得する。ここでは、プリンタエンジンの処理速度は1分間に印刷できるページ数を表す単位であるPPM(Pages Per Minite)で、コントローラユニットの処理速度はCPU1のクロック周波数で表すものとする。S1301及び/又はS1302の処理は、情報取得の処理の一例である。
次に、S1303において、キャッシュ制御部211は、S1301及びS1302において取得した情報を基に無効キャッシュ量の算出に用いるページ数を決定する。本実施形態では図7に示した表を基にプリンタエンジン及びコントローラユニットのCPUの処理速度からページ数を決定することとする。図7は、プリンタエンジン及びコントローラユニットのCPUの処理速度からページ数を決定するための表の一例を示す図である。ここで決定されるページ数は、各部分ディスプレイリストが次に使われるまでのページ数をキャッシュ制御部211が検索する処理(S1305)において、検索するページ数の上限値として用いられる。本実施形態でこのような上限値を設定することとした背景は次の通りである。
VDPにおいて、印刷データに多くのページが含まれる場合があり、例えば一つの印刷データに数千のページが含まれることも珍しくない。このような場合に、各部分ディスプレイリストが次に使われるまでのページ数を算出する際、印刷データの最後まで検索するような算出方法は、処理の効率の面から望ましくない。そこで本実施形態では、キャッシュデータが次に使われるまでのページ数(つまり、ページ間)を、一定ページ数先までの情報を基に算出することとする。更に、本実施形態では、この一定ページ数を、図7に示したようにプリンタエンジン及びコントローラユニットの処理速度に基づき可変とする。即ち、キャッシュ制御部211は、プリンタエンジンの処理速度が所定の速度より高速であれば一定ページ数を所定の数より小さく、コントローラユニットの処理速度が所定の速度より高速であれば一定ページ数を所定の数より大きくする。これは次のような理由による。プリンタエンジンの処理速度が所定の速度より高速であるとき、プリンタエンジンの処理にコントローラユニットの処理が追いつかれないようにするためには、コントローラユニットが各ページの処理に割ける時間は短くなる。したがって、一定ページ数を小さくすることが有効である。一方、コントローラユニットの処理速度が所定の速度より高速であるとき、同じ時間でコントローラユニットはより先のページまで情報の検索を行える。したがって、一定ページ数を大きくすることが有効である。
S1303において、検索するページ数の上限値を決定した後、キャッシュ制御部211は、S1304及びS1305において、キャッシュされた各部分ディスプレイリストの使用メモリ量と次に使われるまでのページ数とを取得する。S1304の処理は、メモリ量取得の一例である。S1305の処理は、ページ数取得の一例である。
ここでは、図8のように、キャッシュ制御部211は、現在キャッシュメモリ上にある部分ディスプレイリストに対して、キャッシュデータを識別する名称、使用しているメモリ量、次に前記部分ディスプレイリストが使用されるまでのページ数を取得する。図8は、実施形態1のキャッシュ制御部211が取得する情報の一例を示す図である。なお、次回使用されるまでのページ数が、S1303で決定したページ数の上限を超えると判明した場合には、キャッシュ制御部211は、前記部分ディスプレイリストが次回使用されるまでのページ数はS1303で決定したページ数の上限に等しいものとする。次に、S1306において、キャッシュ制御部211は、無効キャッシュ量の算出とキャッシュデータのスワップとを行う。本実施形態では、キャッシュ制御部211は、無効キャッシュ量を(使用しているメモリ量)×(次に使用されるまでのページ数)で求めるものとする。したがって、図8に示した状況における無効キャッシュ量は図9のとおりである。図9は、実施形態1の算出された無効キャッシュ量の一例を示す図(その1)である。
キャッシュ制御部211は、この無効キャッシュ量の一番大きいものから順にハードディスクへと書き出す処理を行う。即ち、スワップ優先順位はobject02、object01−01、object01−02、object03−01、object03−02、object01−03の順となる。なお、無効キャッシュ量の算出方法はこれに限らない。例えば、次に使用されるまでのページ数をそのまま無効キャッシュ量とする方法、(使用しているメモリ量)×(次に使用されるまでのページ数−1)を無効キャッシュ量とする方法等がある。これらの方法で算出された無効キャッシュ量の例を図10のA、B列にそれぞれ示す。図10は、実施形態1の算出された無効キャッシュ量の一例を示す図(その2)である。
本実施形態のように、スワップ優先順位の決定に必要な情報の検索を、可変なページ数先までにとどめることにより、キャッシュ制御の効率化と印刷データ処理装置においてコントローラユニットの処理時間を増大させないこととを両立させることができる。なお、本実施形態では簡便な例として図7のようにページ数を決定する方法を述べた。そのため、本実施形態を実施するにあたっては、プリンタエンジン及びコントローラユニットの処理速度を取得するのは、ジョブの開始時に一度だけ行うか、制御プログラム本体に直接書き込んでもよい。但し、より有効な例として、プリンタエンジン及びコントローラユニットのハードウェアスペックではなく、実際に当該印刷データを処理しているときの処理速度の実測値を用いる場合には、印刷データ処理の実行中に動的に情報を取得する必要がある。
なお、一定ページ数先までの間に再利用されない部分ディスプレイリストのページ数の代わりに印刷データの処理が終了するまでの間に再利用されない部分ディスプレイリストのページ数を用いるようにしてもよい。
また、本実施形態では、使用メモリ量×ページ数の大きい順にスワップする例を用いて説明したが、使用メモリ量の大きい順にスワップするようにしてもよいし、ページ数の大きい順にスワップするようにしてもよい。つまり、キャッシュ制御部211は、ページ数が多いキャッシュデータを優先的にスワップするようにしてもよいし、使用メモリ量(メモリ量)が大きいキャッシュデータを優先的にスワップするようにしてもよい。
<実施形態2>
本実施形態では、実施形態1とは異なる無効キャッシュ量の算出手法を説明する。
本実施形態では、キャッシュ制御部211が取得する情報は図11に挙げた項目とする。図11は、実施形態2のキャッシュ制御部211が取得する情報の一例を示す図である。即ち、キャッシュ制御部211は、キャッシュメモリ上にある各部分ディスプレイリストに対して、部分ディスプレイリストを識別する名称、使用しているメモリ量、及び、一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数を取得する。キャッシュ制御部211が取得したこれらの情報を基に、図12のような無効キャッシュ量が算出される。図12は、実施形2の算出された無効キャッシュ量の一例を示す図である。図12のA列は、一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数をそのまま無効キャッシュ量とした場合を示す。図12のB列は、各部分ディスプレイリストに対して、(使用しているメモリ量)×(一定ページ先までの間に前記部分ディスプレイリストが使用されないページ数)で無効キャッシュ量を算出した場合を示す。何れの場合も、無効キャッシュ量が大きい順に部分ディスプレイリストのスワップ優先順位を高く設定するものとする。
<実施形態3>
バリアブル印刷においては、印刷データを面付けして出力することに対するニーズがある。このような面付け処理を印刷データ処理装置内で行う場合、印刷データ処理装置に入力される印刷データにおけるページの順序と実際に処理されるページの順序とは異なる。例えば、8ページの印刷データを両面、中綴じ印刷する場合、印刷データ処理装置で処理されるページ番号の順序は、中綴じの内側で用紙の左側のページから処理する場合、4、5、6、3、2、7、8、1のようになる。このような場合、部分ディスプレイリストが使用されるまでのページ数や一定ページ先までの出現回数は、印刷データにおけるページ番号を基準にするより、実際に印刷データ処理装置で処理されるページの順序を基準に算出するほうが望ましい。本実施形態では、この算出処理について説明する。
図13のように、キャッシュメモリ上に3つの部分ディスプレイリストがキャッシュされており、各部分ディスプレイリストが出現するページ番号は図の第2列の通りであるとする。どの部分ディスプレイリストをスワップするかを、実施形態1に挙げたように次に使われるまでのページ数を基に決定する場合に関して説明する。図13は、中綴じ印刷におけるページ数算出方法の一例を説明するための図である。印刷ジョブのページ数は8ページであり、現在処理中のページ番号が6であるとする。この場合、次に使われるまでのページ数は、表の第3列の通りになる。しかしながら、この値はキャッシュデータ制御の観点から適切でない。例えば、object1は実際の処理順序にしたがうと2ページ後に再利用されるはずだが、印刷データのページ番号を基準にすると使用されないことになってしまうからである。このような場合、図13の第4列の通り、実際に処理されるページ番号順を基準にしてキャッシュデータを制御することが望ましい。本実施形態では、キャッシュ制御部211は、面付け処理等の場合には実際に処理されるページ順序にしたがってスワップ優先順位を定める。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施系他によれば、バリアブル印刷処理において、印刷データ処理中に発生するキャッシュデータのスワップ回数を少なくするように、キャッシュデータの書き出し優先順位を決定する仕組みを提供することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

Claims (8)

  1. バリアブル印刷データを処理する印刷データ処理装置であって、
    前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュ手段と、
    前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定手段と、
    前記判定手段により、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定手段と、
    前記決定手段により決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出し手段と、
    を有することを特徴とする印刷データ処理装置。
  2. 前記キャッシュメモリにキャッシュされている各キャッシュデータが次に利用されるまでのページ数を取得するページ数取得手段を更に有し、
    前記決定手段は、前記ページ数取得手段により取得されたページ数が多いキャッシュデータを優先的に前記二次記憶媒体に書き出すと決定することを特徴とする請求項1に記載の印刷データ処理装置。
  3. 前記バリアブル印刷データの処理速度に関する情報を取得する情報取得手段を更に有し、
    前記ページ数取得手段は、前記情報取得手段により取得された情報に応じて定められたページ間における、各キャッシュデータが次に利用されるまでのページ数を取得することを特徴とする請求項2に記載の印刷データ処理装置。
  4. 前記情報取得手段により取得された情報に応じて定められたページ間は、前記バリアブル印刷データの処理速度が速いほど長く、前記バリアブル印刷データの処理速度が遅いほど短いことを特徴とする請求項3に記載の印刷データ処理装置。
  5. 前記情報取得手段は、印刷を実行するプリンタエンジンの速度、及び、前記バリアブル印刷データを処理するコントローラユニットの処理速度のうち少なくとも1つを取得することを特徴とする請求項3又は4に記載の印刷データ処理装置。
  6. 前記キャッシュメモリにキャッシュされている各キャッシュデータの使用しているメモリ量を取得するメモリ量取得手段を更に有し、
    前記決定手段は、前記メモリ量取得手段により取得されたメモリ量が大きいキャッシュデータを優先的に前記二次記憶媒体に書き出すと決定することを特徴とする請求項1に記載の印刷データ処理装置。
  7. バリアブル印刷データを処理する印刷データ処理装置が実行するキャッシュ処理方法であって、
    前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュステップと、
    前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定ステップと、
    前記判定ステップにより、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定ステップと、
    前記決定ステップにより決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出しステップと、
    を含むことを特徴とするキャッシュ処理方法。
  8. バリアブル印刷データを処理するコンピュータに、
    前記バリアブル印刷データに含まれる描画命令に従って生成された画像データをキャッシュデータとしてキャッシュメモリにキャッシュするキャッシュステップと、
    前記キャッシュデータを、前記キャッシュメモリとは異なる二次記憶媒体に書き出す必要があるか否かを判定する判定ステップと、
    前記判定ステップにより、前記キャッシュデータを二次記憶媒体に書き出す必要があると判定された場合に、前記二次記憶媒体に対する書き出し及び読みたしの回数が少なくなるように、前記二次記憶媒体に書き出すキャッシュデータを決定する決定ステップと、
    前記決定ステップにより決定されたキャッシュデータを、前記二次記憶媒体に書き出す書き出しステップと、
    を実行させるプログラム。
JP2011007154A 2011-01-17 2011-01-17 印刷データ処理装置、キャッシュ処理方法及びプログラム Pending JP2012148429A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011007154A JP2012148429A (ja) 2011-01-17 2011-01-17 印刷データ処理装置、キャッシュ処理方法及びプログラム
US13/337,446 US8760707B2 (en) 2011-01-17 2011-12-27 Print data processing apparatus, cache processing method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011007154A JP2012148429A (ja) 2011-01-17 2011-01-17 印刷データ処理装置、キャッシュ処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2012148429A true JP2012148429A (ja) 2012-08-09

Family

ID=46490556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011007154A Pending JP2012148429A (ja) 2011-01-17 2011-01-17 印刷データ処理装置、キャッシュ処理方法及びプログラム

Country Status (2)

Country Link
US (1) US8760707B2 (ja)
JP (1) JP2012148429A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013071361A (ja) * 2011-09-28 2013-04-22 Canon Inc 印刷制御装置、方法及びプログラム
JP2021071811A (ja) * 2019-10-29 2021-05-06 富士ゼロックス株式会社 印刷制御装置、印刷システム、及び印刷制御プログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5688681B2 (ja) * 2011-03-28 2015-03-25 富士ゼロックス株式会社 情報処理装置および処理プログラム
JP6035154B2 (ja) * 2013-01-28 2016-11-30 株式会社Screenホールディングス 印刷システム、印刷制御装置および印刷制御プログラム
US9207986B2 (en) * 2013-04-11 2015-12-08 Facebook, Inc. Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue
US9760964B2 (en) 2013-04-11 2017-09-12 Facebook, Inc. Application-tailored object re-use and recycling
US10126903B2 (en) 2013-04-15 2018-11-13 Facebook, Inc. Application-tailored object pre-inflation

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5127232B2 (ja) * 2007-01-05 2013-01-23 キヤノン株式会社 データ処理装置、データ処理方法、及びコンピュータプログラム
JP5247603B2 (ja) 2008-09-04 2013-07-24 キヤノン株式会社 情報処理装置、制御方法、制御プログラム
JP5346626B2 (ja) * 2009-03-09 2013-11-20 キヤノン株式会社 管理装置及び管理方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013071361A (ja) * 2011-09-28 2013-04-22 Canon Inc 印刷制御装置、方法及びプログラム
JP2021071811A (ja) * 2019-10-29 2021-05-06 富士ゼロックス株式会社 印刷制御装置、印刷システム、及び印刷制御プログラム

Also Published As

Publication number Publication date
US8760707B2 (en) 2014-06-24
US20120182581A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
US9195414B2 (en) Image processing apparatus functioning as a print server changing print settings of saved job on demand from an external terminal
JP2012148429A (ja) 印刷データ処理装置、キャッシュ処理方法及びプログラム
KR101221940B1 (ko) 화상처리장치, 화상처리방법, 및 그 프로그램을 기억한 매체
US8867075B2 (en) Print data processing apparatus for consolidating print objects
US8792122B2 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium
US8928914B2 (en) Image processing apparatus, information processing method, and storage medium
US8976373B2 (en) Image processing apparatus, computer-readable storage medium storing program and image processing method
JP6447564B2 (ja) 画像形成装置、プログラム及び情報処理システム
JP4775480B2 (ja) Pdlデータ処理装置とpdlデータ処理プログラム
JP2017058926A (ja) 情報処理装置及びプログラム
CN110351448B (zh) 图像处理装置及其控制方法
EP2293180B1 (en) PDL data processing device and PDL data creating device
JP6539022B2 (ja) 印刷装置、処理方法及びプログラム
JP7086772B2 (ja) 画像形成装置、画像形成装置の制御方法、及び、プログラム
JP2011051141A (ja) 画像形成装置、画像処理方法及び制御プログラム
JP2016155280A (ja) 制御装置、制御方法およびプログラム
JP6442992B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2013123116A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2005011177A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2019136952A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2015101070A (ja) 画像処理装置
JP2015203918A (ja) 画像処理装置、画像処理方法及びプログラム
JP2008030400A (ja) 画像メモリの記憶制御方法及び画像形成装置
JP2015018337A (ja) 印刷実行制御装置、印刷システム、およびプログラム
JP2011016317A (ja) 画像処理装置、ハードウェアアクセラレータ及び画像処理方法