(57)【要約】【課題】  画像形成装置が効率よく処理できるバリアブル印刷データを作成することである。【解決手段】  ホスト側では、Ｓ１４１０１で、ホストコンピュータのＣＰＵは、アプリケーションを実行して、バリアブル印刷データを作成する。そして、Ｓ１４１０２で、ホストコンピュータのＣＰＵはアプリケーションを実行することで、作成したバリアブル印刷データの最適化処理を行う。そして、Ｓ１４１０３で、ホストコンピュータのＣＰＵはデバイスドライバを実行することで、最適化されたバリアブル印刷データを画像形成装置側に送信することを特徴とする。【選択図】  図１１Ａ
2010088104.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像データを使用することを示す複数のレコードとレイアウトデータとを含むバリアブル印刷データを処理する情報処理装置であって、
複数の画像データから選択された画像データを最初に使用するレコードと最後に使用するレコードとの間のレコードの中で当該画像データを使用しないレコードの数を特定する特定手段と、
前記特定手段により特定されたレコードの数と前記画像データのデータ量とに基づいて、最初に使用するレコードと最後に使用するレコードとの間のレコードの中で使用されない画像データが保存されることで生じる無効キャッシュサイズを導出する導出手段と、
前記複数のレコードの処理順序の複数の組み合わせに対して、無効キャッシュサイズが最小となるレコードの処理順序を決定する決定手段を備えることを特徴とする情報処理装置。
【請求項２】
複数の画像データを使用することを示す複数のレコードとレイアウトデータとを含むバリアブル印刷データを処理する制御方法であって、
複数の画像データから選択された画像データを最初に使用するレコードと最後に使用するレコードとの間のレコードの中で当該画像データを使用しないレコードの数を特定する特定工程と、
前記特定工程により特定されたレコードの数と前記画像データのデータ量とに基づいて、最初に使用するレコードと最後に使用するレコードとの間のレコードの中で使用されない画像データが保存されることで生じる無効キャッシュサイズを導出する導出工程と、
前記複数のレコードの処理順序の複数の組み合わせに対して、無効キャッシュサイズが最小となるレコードの処理順序を決定する決定工程を備えることを特徴とする制御方法。
【請求項３】
複数の画像データを使用することを示す複数のレコードとレイアウトデータとを含むバリアブル印刷データを処理するコンピュータが読み取り可能なプログラムであって、
複数の画像データから選択された画像データを最初に使用するレコードと最後に使用するレコードとの間のレコードの中で当該画像データを使用しないレコードの数を特定する特定工程と、
前記特定工程により特定されたレコードの数と前記画像データのデータ量とに基づいて、最初に使用するレコードと最後に使用するレコードとの間のレコードの中で使用されない画像データが保存されることで生じる無効キャッシュサイズを導出する導出工程と、
前記複数のレコードの処理順序の複数の組み合わせに対して、無効キャッシュサイズが最小となるレコードの処理順序を決定する決定工程をコンピュータに実行させるための前記コンピュータが読み取り可能な制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に出力するバリアブル印刷データを作成する情報処理装置に関するものである。
【背景技術】
【０００２】
使用回数の多いデータ（マスタデータ）を画像形成装置に登録しておき、後から可変のデータ（バリアブルデータ）を画像形成装置に送信する。そして、マスタデータとバリアブルデータとがマージされて印刷される機能を備える画像形成システムが下記特許文献１に記載されている。
この印刷機能は、マスタデータと呼ばれる背景にあたる画像と、バリアブルデータと呼ばれるデータ（飾り文字、写真画像等）を組み合わせて印刷する機能である。これらマスタデータとバリアブルデータを合わせて画像リソースと称する。
実際には、データベース内のレコードに含まれる複数の画像リソースを配置することで、各レコードの内容に基づいて異なった画像が形成される。
【０００３】
この際、画像リソースは画像形成システムに搭載されているメモリ上にキャッシュされ高速に処理できることが望ましい。しかしながら、現実的にはキャッシュに用いることのできるメモリサイズにはハードウエアあるいはコスト上の観点により制約がある。
このため、メモリキャッシュ上に画像リソースを保持できない場合には、ハードディスクなどの二次記憶媒体上に保持するのが一般的である。
しかしながら、そのためには作成したデータを二次記憶媒体へ書き出す処理と、二次記憶媒体からメモリ上に読み出す処理が発生し、その処理時間は小さくない。
このキャッシュの有効利用に関しては、基準としたレコードに対する重複の程度の高いレコード順にデータを分割し、複数のデバイスで印刷を行うことが下記特許文献２に記載されている。これにより特定のデバイスで同じ画像リソースを用いるレコードを連続的に処理することで効率性を求めている。その前提としては、バリアブル印刷において、印刷順序は重要視される場合とそうでない場合がある。印刷順序が重要視される場合としては、例えばコンサートのチケットではナンバリングがされている場合が考えられる。
しかしながら、ダイレクトメールのための印刷ではその印刷順が変更されても、郵送順序が変わるだけで大きな影響は無い。特許文献２の先行技術は、後者の場合に対して有効である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３４２０３９号公報
【特許文献２】特開２００７−２２６４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の技術では基準レコードの選択方法及び分割数が処理の効率化に大きな影響を与える。
そのため先行技術の基準レコードに対する類似性に基づいたバリアブル印刷データの最適化手段では必ずしも良い結果が得られるとは限らなかった。
【０００６】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、バリアブル印刷処理において、画像形成装置がバリアブルデータを効率よく処理できるバリアブル印刷データを作成できる仕組みを提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
複数の画像データを使用することを示す複数のレコードとレイアウトデータとを含むバリアブル印刷データを処理する情報処理装置であって、複数の画像データから選択された画像データを最初に使用するレコードと最後に使用するレコードとの間のレコードの中で当該画像データを使用しないレコードの数を特定する特定手段と、前記特定手段により特定されたレコードの数と前記画像データのデータ量とに基づいて、最初に使用するレコードと最後に使用するレコードとの間のレコードの中で使用されない画像データが保存されることで生じる無効キャッシュサイズを導出する導出手段と、前記複数のレコードの処理順序の複数の組み合わせに対して、無効キャッシュサイズが最小となるレコードの処理順序を決定する決定手段を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、画像形成装置が効率よく処理できるバリアブル印刷データを作成できる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態を示す印刷システムの一例を示す図である。
【図２Ａ】ホストコンピュータ３００の構成の一例を示す図である。
【図２Ｂ】画像形成装置の構成を説明するブロック図である。
【図３】図２Ｂに示したＲＩＰ部２００６の構成を説明するブロック図である。
【図４】画像形成装置で処理されるバリアブル印刷データの一例を示す図である。
【図５】画像形成装置におけるデータ処理手順の一例を示すフローチャートである。
【図６】一般的に利用される遺伝的アルゴリズムを説明するフローチャートである。
【図７】遺伝的アルゴリズムに基づく種々の操作を説明する図である。
【図８】本実施形態を示すデータ処理手順の一例を示すフローチャートである。
【図９Ａ】無効キャッシュサイズ算出結果の一例を示す図である。
【図９Ｂ】無効キャッシュサイズ算出結果の一例を示す図である。
【図１０】データ処理手順の一例を示すフローチャートである。
【図１１Ａ】バリアブル印刷のためのワークフローを説明するフローチャートである。
【図１１Ｂ】バリアブル印刷のためのワークフローを説明するフローチャートである。
【図１２】データ処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す情報処理装置、画像形成装置を含む印刷システムの一例を示す図である。本例は、一つまたは複数のエンドユーザ環境と、インターネットを介して接続されているＰＯＤ(Print On Demand)サイト環境から成っている。なお、本実施形態は、情報処理装置側で作成されるバリアブル印刷データに後述する最適化処理を実行することで、送信先の画像形成装置のＰＰＭＬインタプリタがＰＰＭＬデータを解釈可能な印刷システム例である。ここで、ＰＰＭＬはPersonalized Print Markup Languageの略であり、詳細は後述するが、バリアブル印刷データに対応したデータ構造を備える。
【００１１】
図１において、エンドユーザ環境１００６は、プリントの発注依頼を行う発注者が存在する。発注者は、それぞれのエンドユーザ環境（エンドユーザ環境Ａ及びＢ）からクライアントＰＣを利用して、プリントジョブの依頼、ジョブのステータスを確認できる。
一方、ＰＯＤサイト環境１０００は、工程管理部１００１、プリプレス部１００２、ディジタルプリント部１００３、そしてポストプレス部１００４を備える。
工程管理部１００１は、プリプレス部１００２、ディジタルプリント部１００３、ポストプレス部１００４に対して作業を指示し、ワークフローを一元管理する。
【００１２】
また、工程管理部１００１は、前述のエンドユーザからジョブを受信したり、エンドユーザからのジョブを保管したりする。
また、工程管理部１００１は、エンドユーザからのジョブの指定に基づいて各工程における作業をワークフローとして組み立てたり、効率よく処理するためのスケジュールを生成したりする。
プリプレス部１００２は、工程管理部１００１より受信したプリプレスジョブの作業指示に基づいて、スキャナ／ＭＦＰ等のスキャンデバイスを用いてエンドユーザから受け取った紙原稿をスキャンする。次に、プリプレス部１００２は、スキャン処理により得られたスキャン画像ファイルを取り込む。
【００１３】
さらに、プリプレス部１００２は、画像補正やファイルのマージやページの挿入／削除や各種ページレイアウト編集や面付け処理を実行する。さらに、プリプレス部１００２は、必要に応じて最終成果物のレイアウトや色味を確認するためのプルーフ出力を実行する。
ディジタルプリント部１００３は、工程管理部１００１あるいはプリプレス部１００２より受信したプリントジョブの作業指示に従って、白黒ＭＦＰやカラーＭＦＰ等を用いて紙原稿をコピーする。
さらに、ディジタルプリント部１００３は、クライアントＰＣからプリンタドライバやホットフォルダを経由して、エンドユーザから受信した文書／画像ファイルを白黒ＭＦＰやカラーＭＦＰ等を用いて印刷する。
【００１４】
ポストプレス部１００４は、工程管理部１００１あるいはプリプレス部１００２あるいはディジタルプリント部１００３より受信したポストプレスジョブの作業指示に従って、後処理デバイスを制御する。ここで、後処理デバイスとは、紙折り機、中綴じ製本機、くるみ製本機、断裁機、封入機、帳合機等が含まれる。
さらに、ポストプレス部１００４は、ディジタルプリント部１００３より出力された記録紙に対して、紙折り、中綴じ製本、くるみ製本、断裁、封入、帳合等の仕上げ処理を実行する。
［印刷システムの構成］
【００１５】
図２Ａは、本実施形態を示す情報処理装置と画像形成装置とが通信可能な印刷システムの構成を示すブロック図である。本実施形態は、ホストコンピュータで作成されたバリアブル印刷データを双方向に通信可能な複合機に転送して出力する情報処理システムの例を示す。
図２Ａにおいて、ホストコンピュータ３００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備える。なお、ＲＯＭには本願を実行するための制御プログラムも記憶されている。
更に、システムバス４に接続される各デバイスをＣＰＵ１が総括的に制御する。また、このＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下ＯＳ）等を記憶する。
【００１６】
ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等を記憶する。ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データを記憶する。
２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。５はキーボードＩ／Ｆで、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。 
６はディスプレイＩ／Ｆで、ディスプレイ１０の表示を制御する。７は外部メモリＩ／Ｆで、ハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。外部メモリ１１にはブートプログラム、各種アプリケーション、フォントデータ、ユーザファイル、編集ファイル、後述する図２Ｂに示すモジュールを備えるプリンタドライバ等が記憶される。
８はプリンタＩ／Ｆで、所定の双方向性のインタフェース２２を介して複合機１５０に接続されて、複合機１５０との通信制御処理を実行する。
【００１７】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧを可能としている。
また、ＣＰＵ１は、ディスプレイ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザはアプリケーションで作成した情報を印刷する際、当該情報に対する設定を行うためのユーザインタフェースをディスプレイ１０上で開き、複合機１５０の設定や、印刷モードの選択を行う。この際、ユーザは、プリンタドライバが提供するユーザインタフェースを介して、各種の印刷処理方法の設定を行えるように構成されている。
【００１８】
複合機１５０において、１２はプリンタＣＰＵ（ＣＰＵ）である。ＣＰＵ１２は、ＲＯＭ１４のプログラム用ＲＯＭあるいは外部メモリ２１に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部Ｉ／Ｆ１７を介して印刷部（プリンタエンジン）１９に出力情報としての画像信号を出力する。
また、このＲＯＭ１４のプログラムＲＯＭにはＣＰＵ１２の制御プログラム等を記憶する。ＲＯＭ１４のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶する。
さらに、ＲＯＭ１４のデータ用ＲＯＭには、ハードディスク等の外部メモリ２１を備えていないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶する。
【００１９】
ＣＰＵ１２は、入力部１６を介してホストコンピュータ３００との通信処理が双方向に可能となっており、複合機１５０内の情報等をホストコンピュータ３００に通知可能に構成されている。ここで、情報には、プリンタエンジンのステータスや、ネットワーク設定情報や、デバイス名、リソース名等が含まれる。
ＲＡＭ１３は、ＣＰＵ１２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。
なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、外部メモリＩ／Ｆ１８によりアクセスが制御される。
【００２０】
外部メモリ２１は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
なお、外部メモリ２１は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
さらに、図示しないＮＶＲＡＭを有し、操作部２０からのプリンタモード設定情報を記憶するようにしてもよい。ＲＡＭ１３もしくは外部メモリ２１には、ホストコンピュータ３００から送信されたフォームデータを格納することが可能であり、オーバレイ印刷の場合には印刷設定で指定されたフォームデータを取り出して、重ねて印刷する。操作部２０は、操作のためのスイッチおよびＬＥＤ表示器等が配されている。
【００２１】
なお、本実施形態に示す情報処理装置は、後述するようにＰＰＭＬのデータを作成するアプリケーションを実行して、複合機１５０がバリアブル印刷データを効率よく処理するためのレコードの順序を入れ替える処理を行う。また、複合機１５０でバリアブル印刷データを処理するために使用するメモリ使用量を計算する処理を行う。そして、レコードの順序を入れ替えられた印刷データがＯＳによってＲＡＭ２にロードされたシステムスプーラ２０４を経て、図１に示したインタフェース２２を介して複合機１５０へ、例えばＸＭＬ形式の印刷データとして出力される仕組みとなっている。
［ＭＦＰの構成］
【００２２】
次に、図２Ｂを用いて画像形成装置の構成について説明する。本実施形態では、画像形成装置が、図２Ａに示す複合機１５０で構成される場合を示す。
図２Ｂは、本実施形態を示す画像形成装置の構成を説明するブロック図である。本例は、ＭＦＰ（Multi Function Peripheral：マルチファンクション周辺機器）の構成例である。なお、後述するＭＦＰ制御部２００１は、図２Ａに示したＣＰＵ１２、ＲＯＭ１４、ＲＡＭ１３等のハードウエア資源を備え、ＲＡＭにモジュールをロードして実行することで各種の処理を制御する。ここで、モジュールには、図３に示すインタプリタ部、レンダリング部として機能させるモジュールが含まれる。
図２Ｂにおいて、入力画像処理部２００２は、紙原稿などをスキャナなどの画像読み取り装置で読み取り、読み取られた画像データを画像処理する。
【００２３】
ＮＩＣ（Network Interface Card）部２００３は、ネットワークを利用して入力された画像データ（主に、ＰＤＬデータ）をＲＩＰ部２００６に渡す。また、ＮＩＣ部２００３は、ＭＦＰ内部の画像データや装置情報をネットワーク経由で外部に送信する。
ＲＩＰ部２００６は、入力されたＰＤＬ（Page Description Language）データを解読し、ＲＩＰ（Raster Image Processor）展開する。
次に、入力された画像データは、ＭＦＰ制御部２００１に送られる。ＭＦＰ制御部２００１は、入力されるデータや出力するデータを制御する。また、ＭＦＰ制御部２００１に入力された画像データは、一旦メモリ部２００５に格納される。そして、メモリ部２００５に格納された画像データは、必要に応じて呼び出されて出力画像処理部２００７に出力される。
【００２４】
出力画像処理部２００７は、プリントするための画像処理を実行する。プリンタ部２００８では、シートを給紙し、出力画像処理部２００７で作られた画像データをそのシート上に順次印字する。プリントアウトされたシートは後処理部２００９へ送り込まれ、シートの仕分け処理やシートの仕上げ処理が行われる。
更に、操作部２００４は、上記の様々なフローや機能を選択したり操作指示したりするためのものである。
このように、ＭＦＰには様々な機能と利用方法があり、以下にその例を示す。
第１の機能は複写機能であり、入力画像処理部２００２→出力画像処理部２００７→プリンタ部２００８とデータが処理されることで、紙原稿の複写処理が実現される。
【００２５】
第２の機能は、ネットワークスキャン機能であり、入力画像処理部２００２→ＮＩＣ部２００３とデータが処理されることで、ネットワークスキャン処理が実現される。
第３の機能は、ネットワークプリント機能であり、ＮＩＣ部２００３→ＲＩＰ部２００６→出力画像処理部２００７→プリンタ部２００８とデータが処理されることで、ネットワークプリント処理が実現される。
第４の機能は、ボックススキャン機能であり、入力画像処理部２００２→出力画像処理部２００７→メモリ部２００５とデータが処理されることで、ボックススキャン処理が実現される。
【００２６】
第５の機能は、ボックスプリント機能であり、メモリ部２００５→プリンタ部２００８とデータが処理されることで、ボックスプリント処理が実現される。
第６の機能は、ボックス受信機能であり、ＮＩＣ部２００３→ＲＩＰ部２００６→出力画像処理部２００７→メモリ部２００５とデータが処理されることで、ボックス受信処理が実現される。
第７の機能は、ボックス送信機能であり、メモリ部２００５→ＮＩＣ部２００３とデータが処理されることで、ボックス送信処理が実現される。
第８の機能は、プレビュー機能であり、メモリ部２００５→操作部２００４とデータが処理されることで、プレビュー処理が実現される。
［ＲＩＰの構成］
【００２７】
図３は、図２Ｂに示したＲＩＰ部２００６の構成を説明するブロック図である。
なお、ここで、ＲＩＰ（Raster Image Processor）とは、オブジェクト情報を画像形成装置が備えるメモリ上にビットマップ（ラスタイメージ）展開するプロセッサである。より具体的には、ＲＩＰは、ＰＤＬ（Page Description Language）で記述された文字、線画、図形などのベクトル情報又は、色、パターン、写真等の画像走査線情報などをページ上に再現する処理を行う。
従来、ＲＩＰ部２００６は、ハードウエアとして画像形成装置側に搭載されていたが、現在では、ＣＰＵの高速化によりＲＡＭにロードされるソフトウエア（モジュール）を実行することでも実現可能となっている。本発明においてはどちらの形態で実現しても良い。
【００２８】
図３において、ＲＩＰ部２００６は、一般に、インタプリタ部３１００とレンダリング部３２００の２つの部分から成り立っている。ここで、インタプリタ部３１００は、ＰＤＬの翻訳を行うＰＤＬ解釈部３１０２と、解釈したＰＤＬデータからディスプレイリストと呼ばれる中間ファイルを生成するＤＬ(Display List)生成部３１０３とで構成されている。また、インタプリタ部３１００には、後述するデータ構造のＰＰＭＬデータを解釈するＰＰＭＬ解釈部３１０１を備える。
一方、レンダリング部３２００は、ディスプレイリストに対してカラーマッチングを行うＣＭＭ(Color Matching Module)部３２０１と、ＤＬをビットマップ（ラスタイメージ）に展開するＤＬ展開部３２０４とで構成されている。
【００２９】
ＰＤＬ解釈部３１０２は、入力されてきた様々な種類のＰＤＬデータを解析する。ここで、ＰＤＬデータの入力フォーマットとしては、Ａｄｏｂｅ社のPostScript（登録商標）言語やＨＰ（Hewlett-Packard）社のＰＣＬ（Printer Control Language）言語などが有名である。これらは、ページ単位の画像を作成するためのプリンタ制御コードで記載されており、単純な文字コードのほか、図形描画のコードや写真画像のコードなども含まれている。
また、ＰＤＦ（Portable Document Format）というＡｄｏｂｅ社の開発した電子文書ファイルも処理対象としている。そのほか、ＪＰＥＧ（Joint Photographic Experts Group）やＴＩＦＦ（Tagged Image File Format）と呼ばれる画像の圧縮フォーマットなどにも対応している。
【００３０】
なお、情報処理装置で作成された印刷データが、ＰＰＭＬ等のＶＤＰ（Variable Data Print）向けフォーマット、即ちバリアブル印刷データの場合には、他のＰＤＬと異なる処理方法が取られる。ＰＰＭＬとは、Personalized Print Markup Languageの略語である。ここで、ＰＰＭＬデータはデータベース、画像リソース（ＰＤＬデータ）、レイアウトデータの３つの要素で構成される。このため、ＲＩＰ部２００６のインタプリタ部には、ＰＰＭＬ解釈部３１０１を備える。
ここで、ＰＰＭＬ解釈部３１０１では、まずレイアウトデータを解析し、画像リソースを配置する位置情報を決定する。次に、データベース内の各レコードから使用する画像リソースを選択する。選択された画像リソースはＰＤＬ解釈部３１０２で翻訳してＤＬ生成部３１０３に通知されることで、選択されたＰＤＬデータに対するＤＬが生成される。さらに、レイアウト情報を元にこれらのＤＬを結合するＤＬ結合部３１０４によって、最終的なＤＬが生成される。
【００３１】
また、ＣＭＭ部３２０１では、グレースケール、ＲＧＢ、ＣＭＹＫなど様々な画像データを入力できる。さらに、ＣＭＭ部３２０１は、その他の色空間の場合、一度ＣＲＤ（Color Rendering Dictionary）にてＣＭＹＫ空間に変換した後、カラーマッチングを施す。 
ＣＭＭ部３２０１において、ＩＣＣプロファイルによる色調整が行われる。ＩＣＣプロファイルは、ソースプロファイル３２０２とプリンタプロファイル３２０３とがある。ここで、ソースプロファイル３２０２は、ＲＧＢ（またはＣＭＹＫ）データを一度規格化されたＬ＊ａ＊ｂ＊空間に変換し、このＬ＊ａ＊ｂ＊データを再度ターゲットとなるプリンタに適したＣＭＹＫ空間に変換する。
【００３２】
このとき、ソースプロファイル（SourceProfile）３２０２は、ＲＧＢプロファイルとＣＭＹＫプロファイルからなっている。ここで、入力画像がＲＧＢ系画像（Ｍｉｃｒｏｓｏｆｔ社のアプリケーションソフトやＪＰＥＧ、ＴＩＦＦ画像等）の場合は、ＲＧＢプロファイルが選択される。また、入力画像がＣＭＹＫ系画像（Ａｄｏｂｅ社のＰｈｏｔｏｓｈｏｐやＩｌｌｕｓｔｒａｔｏｒの一部データなど）の場合にはＣＭＹＫプロファイルが選択される。
次に、プリンタプロファイル（PrinterProfile）３２０３は、各プリンタの色特性に合わせて作られている。ここで、プリンタプロファイルがＲＧＢ系画像の場合は、Perceptual（色味優先）やSaturation（鮮やかさ優先）を選択するのが好ましい。また、プリンタプロファイルがＣＭＹＫ系画像の場合は、Colorimetric（色差最小）を選んで最適画像を出力することが多い。
【００３３】
また、ＩＣＣプロファイルは、一般にルックアップテーブル形式で作られている。ソースプロファイル(SourceProfile)３２０２では、ＲＧＢ（またはＣＭＹＫ）データが入力されると、一意にＬ＊ａ＊ｂ＊データに変換される。逆に、プリンタプロファイル３２０３では、Ｌ＊ａ＊ｂ＊データからプリンタにマッチしたＣＭＹＫデータに変換される。
なお、カラーマッチングを必要としないＲＧＢデータは、デフォルトの色変換によりＣＭＹＫデータに変換されて出力され、カラーマッチングを必要としないＣＭＹＫデータに対しては、そのまま出力される。
【００３４】
［バリアブル印刷データの例］
図４は、本実施形態を示す画像形成装置で処理されるバリアブル印刷データの一例を示す図である。本例は、情報処理装置で作成されたバリアブル印刷データ６０００がレイアウトデータ６１００、データベース６２００、画像リソース６３００とで構成される例である。
なお、レイアウトデータ６１００は、バリアブル印刷を行う際にどのように画像リソースを配置するのかを示すレイアウト枠の情報を有する。このレイアウト枠には、属性の異なる枠情報が含まれる。レイアウト枠は、データベース６２００内の全てのレコードにおいて共通なマスタデータが割り当てられるマスタデータ枠と、データベース６２００内の各レコードで異なるバリアブルデータが割り当てられるバリアブルデータ枠とがある。
【００３５】
この例の場合では、レイアウトデータ６１００には、マスタデータ枠６１０１とバリアブルデータ枠６１０２〜６１０４が含まれる。更にバリアブルデータ枠にはそれぞれＩｍａｇｅ１〜４という名称を付与しておく。
データベース６２００は、少なくとも１つ以上のレコードを保持し、それぞれのレコードが１部の印刷を意味する。各レコードには使用する画像リソースの組み合わせの情報が含まれる。
この例の場合では、データベース６２００には８つのレコードが含まれる。レコード１については、Ｉｍａｇｅ１という名称のバリアブルデータ枠６１０２に対してＳｅａ．ｔｉｆを使用することが定義されている。同様に、Ｉｍａｇｅ２のバリアブルデータ枠６１０３にはＣａｔ２．ｔｉｆを、Ｉｍａｇｅ３のバリアブルデータ枠６１０４にはＣａｔＣ．ｔｉｆを使用することが定義されている。以下、他のレコードについても同様である。またここではバリアブルデータ枠の情報のみを保持している。このように本願では、複数のデータによって構成されるデータ群をレコードと呼ぶ。
【００３６】
画像リソース６３００はマスタデータ枠及びバリアブルデータ枠に組み込まれるデータを含む。狭義の画像データであるＴＩＦＦやＪＰＥＧだけではなく、広義の画像データとしてＰＳやＰＤＦなどの電子文書フォーマットを利用しても良い。
【００３７】
この例の場合では、画像リソース６３００には、画像６３０１〜６３０９が含まれる。それぞれのファイル名称とそのサイズ（データ量）はそれぞれの画像ファイルに数値MB（メガバイト）で示す。例えば画像６３０１は、ファイル名称がＴｉｔｌｅ．ｔｉｆであり、そのデータサイズは１．０ＭＢである。他の画像も同様である。
【００３８】
［バリアブル印刷の流れ］
図５は、本実施形態を示す画像形成装置におけるデータ処理手順の一例を示すフローチャートである。本例は、情報処理装置で作成されたバリアブル印刷データ６０００に基づくＰＰＭＬ印刷処理例である。なお、Ｓ〜で記述された箇所は各ステップを示す。また、ＭＦＰ制御部２００１内のＣＰＵ１２がＲＡＭ１３にモジュールをロードして実行することで各ステップの処理が実現される。
なお、本実施形態では、画像形成装置が備えるＣＰＵが実行するモジュール（図３のインタプリタ部に示す３１０１〜３１０３）として構成される場合を説明する。各モジュールは、ＣＰＵにより実行されるが、説明上、３１０１〜３１０３を用いて説明を行う。
【００３９】
まず、Ｓ７００１で、ＰＰＭＬ解釈部３１０１がレイアウトデータ６１００を解析し、レイアウト枠の情報を取得する。ここでいうレイアウト枠の情報とは、レイアウト枠の名称、幅、高さ、合成条件などである。
そして、Ｓ７００２で、ＰＰＭＬ解釈部３１０１がデータベース６２００を解析し、処理するべきレコードを選択する。ここでは、レコード１が選択されたものとする。
次に、Ｓ７００３で、ＰＰＭＬ解釈部３１０１がＳ７００１において得られたレイアウト枠情報の中から処理対象とするレイアウト枠を選択する。ここでは、データベース６２００のＩｍａｇｅ１、即ち、バリアブルデータ枠６１０２が選択されたものとする。
【００４０】
そして、Ｓ７００４で、Ｓ７００２で得られたレコード番号と、Ｓ７００３で選択されたレイアウト枠とに基づいてＰＰＭＬ解釈部３１０１が使用する画像をデータベース６２００から選択する。この例では、レコード１のＳｅａ．ｔｉｆが選択される。
次に、Ｓ７００５で、Ｉｍａｇｅ１で使用する画像に対するＤＬがＲＡＭ１３のキャッシュ上に保持されているかをＰＰＭＬ解釈部３１０１が判断する。ここで、ＰＰＭＬ解釈部３１０１が保持されていると判断した場合には、Ｓ７００６で、ＰＰＭＬ解釈部３１０１がそのＤＬを上記キャッシュから取得する。
【００４１】
一方、Ｓ７００５で、対象画像に対するＤＬが上記のキャッシュ上に保持されていないとＰＰＭＬ解釈部３１０１が判断した場合は、以下のＳ７１０１〜Ｓ７１０５の処理によってＤＬを生成し、キャッシュ上に保持する。
具体的には、Ｓ７１０１で、ＰＰＭＬ解釈部３１０１が対象画像を解釈する。そして、Ｓ７１０２で、ＤＬ生成部３１０３がＳ７１０１におけるＰＤＬ解釈結果を元に、ＤＬに変換する。そして、Ｓ７１０３で、Ｓ７１０２において生成したＤＬをキャッシュ上に保持できるかをＰＰＭＬ解釈部３１０１が判断する。ここで、ＰＰＭＬ解釈部３１０１が生成したＤＬをキャッシュ上に保持できないと判断した場合は、Ｓ７１０４で、ＰＰＭＬ解釈部３１０１がキャッシュ上の使用頻度の低いＤＬを破棄する。
【００４２】
一方、Ｓ７１０３で、ＰＰＭＬ解釈部３１０１がキャッシュ上に保持可能な領域が出来ると判断した場合は、Ｓ１７０５で、ＰＰＭＬ解釈部３１０１が生成されたＤＬをキャッシュに保存する。
次に、Ｓ７００７で、以上の１レコード分の処理を、レイアウトデータ上の全てのレイアウト枠に対して繰り返したかどうかをＰＰＭＬ解釈部３１０１が判断する。ここで、ＰＰＭＬ解釈部３１０１が以上の１レコード分の処理を、レイアウトデータ上の全てのレイアウト枠に対して繰り返していないと判断した場合は、Ｓ７００３へ戻る。
【００４３】
一方、Ｓ７００７で、以上の１レコード分の処理を、レイアウトデータ上の全てのレイアウト枠に対して繰り返しているとＰＰＭＬ解釈部３１０１が判断した場合は、次に画像生成処理を行うため、Ｓ７２０１へ進む。
そして、Ｓ７２０１で、ＤＬ生成部３１０３がＳ７１０２において作成したＤＬ若しくは、Ｓ７００６でキャッシュから取得したＤＬを元に、１ページ分のＤＬを生成する。
【００４４】
そして、Ｓ７２０２で、ＣＭＭ部３２０１が生成されたＤＬに対してＣＭＭ処理を行い、色味の調整をする。次に、Ｓ７２０３で、Ｓ７２０２において修正されたＤＬを元に１ページ分の画像データに展開し、Ｓ７２０４で、プリンタ部２００８に印刷対象データとして送ることで印刷が実行される。
次に、Ｓ７００８で、以上の処理を全レコードに対して繰り返し行っているかどうかをＰＰＭＬ解釈部３１０１が判断する。ここで、以上の処理を全レコードに対して繰り返し行っているとＰＰＭＬ解釈部３１０１が判断した場合は、本処理を終了する。
一方、Ｓ７００８で、以上の処理を全レコードに対して繰り返し行っていないとＰＰＭＬ解釈部３１０１が判断した場合は、Ｓ７００２へ戻り、同様の処理を繰り返す。これにより、バリアブル印刷データ６０００に対するバリアブル印刷が実行される。
【００４５】
図１１Ａ、図１１Ｂは、本実施形態を示す印刷システムにおけるバリアブル印刷のためのワークフローを説明するフローチャートである。なお、図１１の（Ａ）はホスト側のデータ処理を示し、図１１の（Ｂ）はデバイス側のデータ処理を示す。また、Ｓ１４１０１〜Ｓ１４１０３はステップを示し、各ステップは、ホスト側の情報処理装置が備えるＣＰＵ１がＲＡＭ２にＰＰＭＬに対応するアプリケーションをロードして実行することで実現される。さらに、また、Ｓ１４２０１〜Ｓ１４２０３はステップを示し、各ステップは、デバイス側のＭＦＰが備えるＣＰＵがＲＡＭにモジュールをロードして実行することで実現される。
【００４６】
まず、Ｓ１４１０１で、ホストコンピュータ３００のＣＰＵ１は、アプリケーションを実行して、バリアブル印刷データを作成する。そして、Ｓ１４１０２で、本発明を適用し、ホストコンピュータ３００のＣＰＵ１は作成したバリアブル印刷データの最適化処理を行う。そして、Ｓ１４１０３で、ホストコンピュータ３００のＣＰＵ１は、最適化されたバリアブル印刷データをデバイス側に送信して、本処理を終了する。なお、最適化処理は、図６〜図１０を使って後述する。
一方、画像形成装置は、ホスト側から送信されたバリアブル印刷データを、図２に示したＮＩＣ部２００３を介して受け取り（Ｓ１４２０１）、受信したバリアブル印刷データから画像を形成し（Ｓ１４２０２）、用紙上に印刷（Ｓ１４２０３）する。
【００４７】
ここで、ホスト側におけるバリアブル印刷データの作成処理の詳細について説明する。 
ホスト側において、バリアブル印刷データを生成するアプリケーションは大きく分けて３つの機能を有する。１つ目は、レイアウトをデザインする機能である。具体的にはページ上にマスタデータ枠とバリアブルデータ枠を設置し、それぞれの大きさあるいは位置を調整する機能である。
２つ目は、画像リソースを登録する機能である。これはレイアウト上に配置する画像データを指定する機能である。必要に応じて予めバリアブル印刷データから画像形成するデバイスに対して望ましい形式に変換しても良い。
例えばテキストで表示する部分を画像に変換する、非対応の画像形式を対応している形式に変換することができる。
【００４８】
３つ目は、データベースを作成する機能である。これは印刷するそれぞれの印刷物に対して、使用する画像データを指定する機能である。画像リソース登録機能と連携しても良い。
その他、画像形成装置にバリアブル印刷データを送信する付加的機能を有している場合もある。
【００４９】
図１２は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。本例は、バリアブル印刷データを作成する処理例である。
Ｓ１５００１で、情報処理装置は、バリアブル印刷データで使用する画像データを、画像リソースとしてＲＡＭ２、或いは外部メモリ１１上に登録する。
次に、Ｓ１５００２で、情報処理装置は、ユーザの指示に従いレイアウトをデザインする。この処理により図４のレイアウトデータ６１００が生成される。
【００５０】
更に、Ｓ１５００３で、情報処理装置は、図４に示したデータベース６２００上にレコードを作成し、それぞれのレイアウト枠に割り当てる画像を登録していく。例えば、レコード１では、「Ｓｅａ．ｔｉｆ」をレイアウトデータ６１００のＩｍａｇｅ１枠に割り当てることが登録されている。
全てのレコードが作成された場合、Ｓ１５００４で、情報処理装置は、画像リソース、レイアウトデータおよびデータベースをアーカイブし、バリアブル印刷データとする。
なお、Ｓ１５００１〜Ｓ１５００４に示すこれらの処理は、それぞれ並行に行っても良いし、途中で前の手順に戻っても良い。例えばレイアウトをデザインしている際に画像が不足していると感じたら画像リソース上に画像データを追加しても良い。また、データベース内の各レコードを作製中にレイアウト上に無理が生じたら、その時点でレイアウトを変更しても良い。
【００５１】
本実施形態ではＳ１５００３で、データベース６２００上に各レコードを作製するの最中、あるいはその直後に、データベース６２００の最適化処理を実行する場合について説明した。これは最適化した結果をユーザが確認できるためである。なお、最終的にバリアブル印刷データとしてアーカイブする際に、Ｓ１４１０２に対応する最適化処理としても良い。
［レコード順序を最適化する処理］
続いて、図１１Ａにおいて上述したバリアブル印刷データの最適化処理について説明する。本実施例では、図６に示す遺伝的アルゴリズムを用いたレコード順序最適化手段の一例を以下に示す。
遺伝的アルゴリズムでは、与えられた問題に対する仮説を「遺伝子」と呼び、遺伝子を持つ１単位を「個体」と呼ぶ。また、この問題に対する個体の定量的な評価を「適応度」と呼ぶ。遺伝子の形式（フォーマット）は問題に応じて変更される。また遺伝的アルゴリズムは指定された回数だけ繰り返し処理を行うが、この繰り返し回数を「世代」と呼ぶ。 
【００５２】
遺伝的アルゴリズムでは、まず、Ｓ８００１で、情報処理装置は、初期集合の生成を行う。その後、Ｓ８００２で、情報処理装置は、各個体の適応度を算出する。なお、適応度の算出方法は、図８、図１０を用いて詳細に説明する。次に、Ｓ８００３で、情報処理装置は、生殖・淘汰を行う。この処理は適応度の低い個体を削除し代わりに適応度の高い個体を増やすことで、集団全体の適応度を高める処理である。Ｓ８００４で、情報処理装置は個体の交叉を行う。交叉（組み換え）とは、生物が交配によって子孫を残すことをモデル化したもので、個体の遺伝子の一部を入れ替える操作である。交叉はその性質上、最も重要な遺伝的操作である。Ｓ８００５で、情報処理装置は、個体に突然変異を行う。突然変異とは、遺伝子の一部を有る割合で変化させる処理である。これにより、今まで存在しなかった組み合わせのパターンを創造する事が出来る。そして、Ｓ８００６で、情報処理装置は、各処理を定められた世代数だけ繰り返す。
このようなアルゴリズムで適応度の高い個体が生殖によって残り、低い個体が淘汰されることで、仮説が優良な解に近づく。また、交叉や突然変異によってそれまで存在していなかった個体を生み出し、局所解になることを防ぐ。
【００５３】
図７は、遺伝的アルゴリズムに基づく種々の操作を説明する図である。
例えば「１３４２５６７８」であれば、レコード１、レコード３、レコード４…という順序に処理することを意味する。また、重複する要素は存在してはならない。「１１２３４５６７」では、レコード１が重複して処理される一方、処理しなければならないレコード８が処理されていない。こうした個体は低い適応度として扱われる。以下、図６に示す処理に当てはめてレコード最適化処理を説明する。
初期個体の生成において、最初に「１２３４５６７８」のように順序とレコード番号が一致した個体を初期値として生成する。その中で２つの要素を選択し、交換することを繰り返すことで新しい個体を生成する。例えば２番目と４番目の要素を交換すれば「１４３２５６７８」という個体が生まれる。これを個体数だけ繰り返すことで、同じレコードを２度以上処理する個体を防ぐことが可能である。
【００５４】
ここで、生殖・淘汰とは、遺伝的アルゴリズムでは一般的に使われるルーレットルールとエリート戦略の組み合わせで処理する事が可能である。また、ルーレットルールとは、各個体の適応度の相対的な大小に基づき、次世代に残すか否かを決定する。
例えばＡからＥまでの５つの個体の適応度がそれぞれ｛Ａ，Ｂ，Ｃ，Ｄ，Ｅ｝＝｛１０，１０，１０，１０，６０｝であった場合を考える。適応度の総和は（１０＋１０＋１０＋１０＋６０＝１００）である。よって、それぞれの個体が次世代に残る生存確率はＰ（Ａ）＝Ｐ（Ｂ）＝Ｐ（Ｃ）＝Ｐ（Ｄ）＝１０％，Ｐ（Ｅ）＝６０％となる。ただし、この場合でも最も適応度の高い個体Ｅが必ず次世代に残るとは限らない。
【００５５】
また、エリート戦略とは、適応度の高い個体をエリートと位置付け、必ず残す規則である。例えば個体数の上限１／３、もしくは全個体の平均適応度以上の個体を残すという戦略を用いることが出来る。これにより適応度の低い個体を除外することが可能である。
さらに、交叉とは、２つ以上の個体の性質に基づきそれらの特徴を引き継いだ新しい個体を生み出す処理である。しかしながら前述どおり同じレコードを二度以上使用してはならないため、従来の数列を直接合成する事は困難である。そこで、その代わりに２つ以上の要素を選択し、それらの大小関係を交換することで、新しい個体を生み出す。
【００５６】
例えば、図７に示すように「５２７１６４３８」と「４２５７１８３６」という個体があり、交叉対象として１、４、７が選択された場合を考える。前者の１，４，７となっている要素の順番は７→１→４である。一方、後者の１，４，７となっている要素の順番は４→７→１である。それぞれ、該当部分に着目し、順番を入れ替えることで図７に示すように「５２４７６１３８」と「７２５１４８３６」が得られる。この処理によって、特定要素間の相対的な位置関係を交換することが出来る。
また、突然変異とは、ある個体の遺伝子を強制的に変更する処理である。交叉と同じく、単純に数列の値を変更することは困難である。本例においては、数列内の１要素をランダムな位置に移動することで実現する。
【００５７】
例えば、図７に示すように「５２７１６４３８」という個体があり、突然変異対象として４、位置として３番目が選択された場合、「５２４７１６３８」が得られる。この処理によって、従来は無かった前後関係を生成することが可能である。
次に、適応度の算出方法について図８、図９Ａ、図９Ｂ、図１０を用いて説明する。
【００５８】
図１０は、本実施形態を示す情報処理装置におけるデータ処理手順の一例を示すフローチャートである。
まず、Ｓ１１００１で、情報処理装置は、無効キャッシュサイズを算出する。なお、Ｓ１１００１の処理は、図８を用いて詳細に説明する。
次に、情報処理装置は、キャッシュメモリサイズとレコード数を乗じ、そこから無効キャッシュサイズを減算する（Ｓ１１００２）。
【００５９】
図８は、図１０のＳ１１００１の処理を詳細に説明するためのフローチャートである。
まず、Ｓ１０００１で、情報処理装置は、ＲＡＭ上に確保される無効キャッシュサイズを「０」に初期化し、処理順序を図９Ａの左上に位置する処理順序行列の各列にマッピングする。この例では「１２３４５６７８」というレコード順序に処理をしているため、処理順番とレコード番号が一致している例である。
【００６０】
次に、Ｓ１０００３で、情報処理装置が対象となる画像を図４に示す画像リソース６３００の中から選択する。ここでは、図４に示す画像リソース６３００の中でＳｅａ．ｔｉｆが選択されたものとする。なお、どの画像から選択しても構わない。
Ｓ１０００４で、情報処理装置は、Ｓ１０００３で選択された画像を最初に使用するレコードに「Ｓ」を入力し、最後に使用するレコードに「Ｅ」を入力する。具体例を挙げれば、Ｓｅａ．ｔｉｆは、図４に示したようにレコード１で最初に使用され、レコード８で最後に使用されている。よって、Ｓ１０００４の処理により、Ｓｅａ．ｔｉｆのレコード１には「Ｓ」を、レコード８には「Ｅ」を付与することにより図９Ａの１行目の結果が得られる。
【００６１】
次に、Ｓ１０００５で、情報処理装置は、Ｓ１０００３において選択された画像についてＳとＥの間で使用しているレコードと使用していないレコードを判別する。具体例を挙げれば、Ｓｅａ．ｔｉｆは図４に示したようにレコード３、６、７にて使用され、レコード２、４、５で使用されていないため、図９Ａの１行目のような結果が得られる。
Ｓ１０００５までで、Ｓ１０００３において選択された対象画像に対して、キャッシュ上に記憶するが使用していないレコードの数を算出することができる。具体例を挙げれば、Ｓｅａ．ｔｉｆは３つのレコードで使用されないことが算出される。
そして、Ｓ１０００６で、情報処理装置は、Ｎとなったレコード数とＳ１０００４において選択された画像のサイズとを乗算することにより無効キャッシュサイズを算出する。
【００６２】
さらに、ＰＰＭＬインタプリタによっては画像リソースを展開した形で保持する場合がある。この場合には、情報処理装置において、当該、画像リソースの内容が写真画像であるかイラスト画像であるかを判断できる場合にはこの圧縮率を係数として付与しても良い。
例えば不可逆圧縮を用いると、写真画像では約75%、イラスト画像では5-15%まで圧縮することができる場合がある。これを踏まえて想定している圧縮率を重みとして考慮することで、実際にデータを展開せずとも無効キャッシュサイズの概算を求めることが出来る。 
【００６３】
また、一方で、一度のみしか使われない画像リソースについては無効キャッシュサイズ計算から除外し、かつそれについてはキャッシング（保存）しないようにバリアブル印刷データに処理しても良い。例えばダイレクトメールの場合には、送信先の住所や氏名などといった情報は頻繁に内容が変わるものであり、キャッシュによる処理時間短縮が望めない。
そして、Ｓ１０００７で、情報処理装置が、全ての画像に対してＳ１０００３からＳ１０００６の処理を実行したか否かを判断し、繰り返していないと判断した場合は、Ｓ１０００３へ戻る。
一方、Ｓ１０００７で、以上の処理を全画像に対して繰り返していると情報処理装置が判断した場合は、本処理を終了する。
以上の図１０、図８の処理を図６の遺伝的アルゴリズムのフローにより生成される個体に対して実行することで、全ての組み合わせの処理順番に対する無効キャッシュサイズを算出することが出来る。
【００６４】
図９Ａは、本発明を適用せずにレコード順に処理した場合、即ち遺伝子「１２３４５６７８」を持つ個体に対する無効キャッシュサイズを算出した結果である。この場合には、１レコードでしか使用されていないＣａｔＡ．ｔｉｆを除き、全ての画像でキャッシュが有用に利用されていないケースがある。具体的には、ＣａｔＣ．ｔｉｆは、レコード１で使用された後、レコード２から５では使用されないが、レコード６で使用するため、レコード２から５でもＣａｔＣ．ｔｉｆをキャッシュしておく必要がある。使わない画像データを記憶しているサイズが無効キャッシュサイズである。これを全画像について合計すると、図９Ａの処理順序では、３７．５ＭＢの無効キャッシュサイズが発生する。
【００６５】
これに対し、最適化処理を用いた場合での無効キャッシュサイズ算出結果が図９Ｂに示す例である。図９Ｂは、本実施例の最適化処理を行うことで、「４５２８３６７１」が得られた例である。この場合、合計無効キャッシュサイズは８．２Ｍとなり、最適化処理を行わない場合に比べて約１／４に抑えることができている。
本実施例では情報処理装置が最適化処理を実行することで決定されたレコード処理順序で印刷が実行されるようにバリアブル印刷データを生成して、画像形成装置へ送信する。
【００６６】
その結果、画像形成装置では、使わない画像データを記憶する期間を短縮することができ、無効キャッシュサイズを最小化することが可能となる。なお、遺伝的アルゴリズムを用いた場合は、初期集団や操作に対するパラメータによって結果が一意に決まらない場合がある。そのため、無効キャッシュサイズが最小とならない結果が解として導出される場合もある。この場合でも最適化処理をまったく行わない場合に比べて効率的な結果となっているため、この解を用いても良い。
なお、本実施例では、以上の処理を情報処理装置にて行う場合について説明したが、画像形成装置にて最適化処理を行っても良い。
【００６７】
また、上記実施形態では、画像形成装置の性能を考慮せずに、データに対してのみ注目して評価する方法を説明してきた。しかしながら、印刷を行う１つ以上のデバイス側の性能を取得し、それに基づいて最適化処理を行っても良い。例えば、画像形成装置側が使用可能なキャッシュサイズ、若しくは画像データを再利用可能な状態で保持している場合の形式などが有用な情報となる。画像形成装置側が使用可能なキャッシュサイズを考慮し、実際に使用されるメモリ使用量の推移をシミュレーションすることで、キャッシュヒット率を向上するような印刷順序を決定することも可能である。
【００６８】
また、先行技術においては印刷順序が変更されることが前提であった。しかし、画像形成装置側の印刷順序補正機能の有無を把握することによりこの問題を解決することが出来る。
具体的には、ホスト側で画像形成装置の性能を取得する処理を実行することにより印刷順序の補正が可能かを確認する。ここで、ホスト側が画像形成装置側で印刷順序の補正が可能であると判断した場合、レコードの印刷順序を示すヒント情報を生成されたバリアブル印刷データに付与する。そして、画像形成装置側では画像形成後に、バリアブル印刷データに付与されているヒント情報を元に印刷する際に順序が正しくなるように並び替えを行う。
さらに、予めデータベースを２つ以上の任意数に分割してから最適化処理を行っても良い。これは前述した印刷順序の補正機能を実施する際、データベース内のレコード数が多すぎると、一時的に保持するべきデータサイズが増えてしまうことに由来する。そのため予め処理可能なページ単位に分割し、それぞれで最適化処理を行うことが可能である。
また、上述した最適化の処理を実行した後、データベースを複数に分割し、２つ以上のデバイスで処理する構成としても良い。つまり、全体として最適化を行ったデータは部分的に見ても好適であることは言うまでも無い。
【００６９】
よって、分割したデータベースを複数のデバイスで処理しても、本発明によって得られる有効性は保持される。
本実施形態では、ＭＦＰを含む画像形成装置と通信可能な情報処理装置を含む印刷システムで、ＰＰＭＬに従うバリアブル印刷データを処理する例を説明した。しかしながら、レコード順序の評価結果を図示しないユーザインタフェースを介してデータ処理装置のユーザに通知するように構成してもよい。
また、最適化処理を実行するタイミングは、バリアブル印刷データを入出力するタイミングとしても良い。さらに、これらを実現するプログラムは記憶媒体によって実現可能である。また、上記プログラムをサーバ装置からデータ処理装置にダウンロードして実現する形態としてもよい。
【００７０】
以上に示すように、バリアブル印刷データを作成する際に、レコード順序を最適化することが可能である。この場合には画像形成装置側の負荷が軽減されるだけではなく、本発明を適用しないデバイスであっても望ましいレコード順序に予めしてあるため、印刷システム全体のデータ処理を高速化することが可能となる。
さらに、画像形成装置が、セキュリティ保護のために印刷画像を記憶装置に保持する場合、前画像と現在処理している画像とが類似であることを利用して、画像の差分のみを効率的に保持することもできる。
なお、上記例では全ての組み合わせパターンから最小となるパターンを選択することを記載したが、ランダムに選択された複数の組み合わせパターンの中で最小となるパターンを選択しても良い。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述の実施形態の機能を実現するソフトウエア（プログラム）を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００７１】
２００１  ＭＦＰ制御部
２００２  入力画像処理部
２００３  ＮＩＣ部
【図１】
2010088104.tif 000003
【図２Ａ】
2010088104.tif 000004
【図２Ｂ】
2010088104.tif 000005
【図３】
2010088104.tif 000006
【図４】
2010088104.tif 000007
【図５】
2010088104.tif 000008
【図６】
2010088104.tif 000009
【図７】
2010088104.tif 000010
【図８】
2010088104.tif 000011
【図９Ａ】
2010088104.tif 000012
【図９Ｂ】
2010088104.tif 000013
【図１０】
2010088104.tif 000014
【図１１Ａ】
2010088104.tif 000015
【図１１Ｂ】
2010088104.tif 000016
【図１２】
2010088104.tif 000017