(57)【要約】      （修正有）【課題】複数のページに共通する画像データが含まれる印刷出力を効率よく行うこと。【解決手段】画像情報を含む画像形成出力の命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記画像情報に含まれる単位画像である複数の画像情報オブジェクトを比較して、内容が同一の重複画像情報オブジェクトを検知し、同一内容・別識別ＩＤの画像情報オブジェクトを参照していたオブジェクトの内容をそれらのオブジェクトが同一識別ＩＤの画像情報オブジェクトを参照するように書き換え、同一内容・別識別ＩＤの画像情報オブジェクトに対してオブジェクトキャッシング処理を行い、同一内容・別識別ＩＤの画像オブジェクトに対する描画回数を低減させる。【選択図】図２２
2018058297.tif 000002
【特許請求の範囲】
【請求項１】
画像形成出力対象の画像を出力する命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記命令情報を構成する単位画像である複数のオブジェクトに含まれる画像情報を比較し、前記オブジェクトを識別する識別情報がそれぞれ異なる複数の前記オブジェクトにおいて、前記画像情報が重複する重複画像情報オブジェクトを検知する重複画像情報検知部と、
画像形成装置が画像形成出力に際して参照する描画情報を前記命令情報に基づいて描画情報生成部に生成させる描画情報生成制御部と、
前記画像情報が描画された結果である描画結果情報を記憶する描画結果記憶部と、
を含み、
前記描画情報生成制御部は、
検知された前記重複画像情報オブジェクトに含まれる画像情報の描画結果情報を用い、前記描画情報生成部に前記描画情報を生成させることを特徴とする画像形成出力制御装置。
【請求項２】
複数の前記重複画像情報オブジェクトの識別情報がそれぞれ異なる場合に、複数の前記重複画像情報オブジェクトの識別情報を共通のものに書き換える識別情報書換部を含むことを特徴とする請求項１に記載の画像形成出力制御装置。
【請求項３】
検知された前記重複画像情報オブジェクトを参照しているオブジェクトである重複画像情報参照オブジェクトを検索する重複画像情報検索部
を含み、
前記識別情報書換部は、
前記重複画像情報参照オブジェクトの識別情報を、前記重複画像情報参照オブジェクトが参照している前記重複画像情報オブジェクトの識別情報と共通のものに書き換えることを特徴とする請求項２に記載の画像形成出力制御装置。
【請求項４】
前記描画情報生成制御部は、
複数の前記重複画像情報オブジェクトのうち、一の前記重複画像情報オブジェクトに含まれる画像情報に基づいて、前記描画情報生成部に前記描画情報を生成させることを特徴とする請求項１ないし請求項３のいずれか一項に記載の画像形成出力制御装置。
【請求項５】
画像形成出力対象の画像を出力する命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記命令情報を構成する単位画像を描画情報生成部に描画させる複数のオブジェクトに含まれる描画指示情報を比較し、前記オブジェクトを識別する識別情報がそれぞれ異なる複数の前記オブジェクトにおいて、前記描画指示情報が重複する重複描画指示情報オブジェクトを検知する重複描画指示情報検知部と、
画像形成装置が画像形成出力に際して参照する描画情報を前記命令情報に基づいて前記描画情報生成部に生成させる描画情報生成制御部と、
前記描画指示情報が描画された結果である描画結果情報を記憶する描画結果記憶部と、
を含み、
前記描画情報生成制御部は、
検知された前記重複描画指示情報オブジェクトに含まれる描画指示情報の描画結果情報を用い、前記描画情報生成部に前記描画情報を生成させることを特徴とする画像形成出力制御装置。
【請求項６】
複数の前記重複描画指示情報オブジェクトの識別情報がそれぞれ異なる場合に、複数の前記重複描画指示情報オブジェクトの識別情報を共通のものに書き換える識別情報書換部を含むことを特徴とする請求項５に記載の画像形成出力制御装置。
【請求項７】
検知された前記重複描画指示情報オブジェクトを参照しているオブジェクトである重複描画指示情報参照オブジェクトを検索する重複描画指示情報検索部
を含み、
前記識別情報書換部は、
前記重複描画指示情報参照オブジェクトの識別情報を、前記重複描画指示情報参照オブジェクトが参照している前記重複描画指示情報オブジェクトの識別情報と共通のものに書き換えることを特徴とする請求項６に記載の画像形成出力制御装置。
【請求項８】
前記描画情報生成制御部は、
複数の前記重複描画指示情報オブジェクトのうち、一の前記重複描画指示情報オブジェクトに含まれる画像情報に基づいて、前記描画情報生成部に前記描画情報を生成させることを特徴とする請求項５ないし請求項７のいずれか一項に記載の画像形成出力制御装置。
【請求項９】
画像形成出力対象の画像を出力する命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記命令情報を構成する単位画像である複数のオブジェクトに含まれる画像情報を比較し、前記オブジェクトを識別する識別情報がそれぞれ異なる複数の前記オブジェクトにおいて、前記画像情報が重複する重複画像情報オブジェクトを検知するステップと、
画像形成装置が画像形成出力に際して参照する描画情報を生成する描画情報生成部に、前記命令情報に基づいて前記描画情報を生成させるステップと、
前記画像情報が描画された結果である描画結果情報を記憶するステップと、
を実行させ、
前記描画情報生成部に前記描画情報を生成させるステップにおいて、検知された前記重複画像情報オブジェクトに含まれる画像情報の描画結果情報を用い、前記描画情報生成部に前記描画情報を生成させることを特徴とする画像形成出力制御プログラム。
【請求項１０】
画像形成出力対象の画像を出力する命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記命令情報を構成する単位画像を描画情報生成部に描画させる複数のオブジェクトに含まれる描画指示情報を比較し、前記オブジェクトを識別する識別情報がそれぞれ異なる複数の前記オブジェクトにおいて、前記描画指示情報が重複する重複描画指示情報オブジェクトを検知するステップと、
前記命令情報に基づいて前記描画情報生成部に画像形成装置が画像形成出力に際して参照する描画情報を生成させるステップと、
前記描画指示情報が描画された結果である描画結果情報を記憶するステップと、
を含み、
前記描画情報生成部に前記描画情報を生成させるステップにおいて、検知された前記重複描画指示情報オブジェクトに含まれる描画指示情報の描画結果情報を用い、前記描画情報生成部に前記描画情報を生成させることを特徴とする画像形成出力制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成出力制御装置、画像形成出力制御プログラムに関する。
【背景技術】
【０００２】
オンデマンド印刷などで使用されるプロダクション市場向けのプリンタは、一般的に、プリンタエンジン本体とＤＦＥ（Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ）とを組み合わせて構成される。ＤＦＥには、プリンタエンジン側での印刷出力時に最終的に参照されるデータである印刷出力用データ（以降、ラスターデータと呼ぶ）を入稿データに基づいて生成するＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理（または「レンダリング処理」ともいう）を行うための専用ソフトウェアが搭載されている。
【０００３】
ＲＩＰ処理時に参照される入稿データは、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ファイル形式での利用が一般的となっている。また、ラスターデータは、ＤＦＥからプリントエンジンに転送され、印刷出力される。ＰＤＦファイルには、オブジェクトという単位の画像情報で、画像データ、描画コマンド、テキストデータ、フォントデータが収められている。
【０００４】
このようなオブジェクトのうち、画像データを格納するための画像情報オブジェクトである「Ｉｍａｇｅ  ＸＯｂｊｅｃｔ」や、描画コマンドが格納される描画情報オブジェクトである「Ｆｏｒｍ  ＸＯｂｊｅｃｔ」については、ＰＤＦファイル内の複数のページから同一のオブジェクトを参照することが許容されている。あるＰＤＦファイルにおいて、複数のページから参照されている画像情報オブジェクトや描画情報オブジェクトのことを、再利用オブジェクトと呼ぶ。
【０００５】
また、このようなプリンタでは、一枚毎に個人情報などの内容が変更されている変動情報部分と企業ロゴなどの内容が変更されない固定情報部分とを印刷する、いわゆるバリアブル印刷が行われることがある。バリアブル印刷を行う際には、各ページに共通の画像データをＩｍａｇｅ  ＸＯｂｊｅｃｔとして格納し、印刷する各ページの内容を定義するためのオブジェクトからＩｍａｇｅ  ＸＯｂｊｅｃｔを参照する形式でＰＤＦファイルを作成することができる。このようにすると、ＰＤＦファイルのファイルサイズを小さくする効果やＤＦＥにおけるＲＩＰ処理の効率を高めるといった効果を得ることが可能である。
【０００６】
また、複数のページに共通する画像データから得られたラスターデータをＤＦＥ内部の記憶媒体に保存（キャッシュ）することで、別ページのＲＩＰ処理を高速化する、いわゆるオブジェクトキャッシング技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１には、ＲＩＰ処理においてオブジェクトキャッシングを行う技術が開示されている。例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上で、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅなどのオフィスアプリケーションプログラムを使用して文書を作成・編集し、Ｗｏｒｄ文書をＰＤＦファイルに変換する場合、Ａｄｏｂｅ  ＡｃｒｏｂａｔやＣｕｂｅＰＤＦのようなＰＤＦ生成プログラムが使用される。
【０００８】
上述したようなアプリケーションプログラム上で、ＰＤＦファイルに変換したい文書を印刷するだけでＰＤＦファイルを生成することが可能な、いわゆるプリンタドライバタイプのＰＤＦ生成プログラムを使用して生成されたＰＤＦファイルにおいては、同一の画像データであっても、オブジェクトを識別する識別情報が異なるオブジェクトが存在しているＰＤＦファイルが生成されてしまいがちである。
【０００９】
このような同一の画像データであってもオブジェクトの識別情報が異なる場合には、その画像データのオブジェクトに対してはオブジェクトキャッシングを適用できないため、ＲＩＰ処理を効率よく行うことができない。
【００１０】
本発明は、このような課題を解決するためになされたものであり、複数のページに共通する画像データが含まれる印刷出力を効率よく行うことを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様は、画像形成出力対象の画像を出力する命令情報を画像形成出力処理の実行を制御する処理実行制御装置から受信し、前記命令情報を構成する単位画像である複数のオブジェクトに含まれる画像情報を比較し、前記オブジェクトを識別する識別情報がそれぞれ異なる複数の前記オブジェクトにおいて、前記画像情報が重複する重複画像情報オブジェクトを検知する重複画像情報検知部と、画像形成装置が画像形成出力に際して参照する描画情報を前記命令情報に基づいて描画情報生成部に生成させる描画情報生成制御部と、前記画像情報が描画された結果である描画結果情報を記憶する描画結果記憶部と、を含み、前記描画情報生成制御部は、検知された前記重複画像情報オブジェクトに含まれる画像情報の描画結果情報を用い、前記描画情報生成部に前記描画情報を生成させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、複数のページに共通する画像データが含まれる印刷出力を効率よく行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るシステムの運用形態を示す図。
【図２】本発明の実施形態に係る情報処理装置のハードウェア構成を示すブロック図。
【図３】本発明の実施形態に係るＤＦＥの機能構成を示すブロック図。
【図４】本発明の実施形態に係るＲＩＰエンジンの機能構成を示すブロック図。
【図５】本発明の実施形態に係るプリフライト処理部およびレンダリング処理部の機能構成を示す図。
【図６】本発明の実施形態に係るオブジェクト記憶部の機能構成を示すブロック図。
【図７】本発明の実施形態に係るＰＤＦファイル情報構成を示す図。
【図８】本発明の実施形態に係るＰＤＦファイルの本体部分の情報構成を示す図。
【図９】本発明の実施形態に係るＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルの情報構成を示す図。
【図１０】本発明の実施形態に係るＦｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルの情報構成を示す図。
【図１１】本発明の実施形態に係るシステムの全体動作を示すシーケンス図。
【図１２】本発明の実施形態に係るＲＩＰ処理の流れを示すフローチャート。
【図１３】本発明の実施形態に係る重複画像データを検知する処理の流れを示すフローチャート。
【図１４】本発明の実施形態に係る重複画像データを検知する処理の流れを示すフローチャート。
【図１５】本発明の実施形態に係る重複画像データを検知する処理の流れを示すフローチャート。
【図１６】本発明の実施形態に係る重複画像データを削除する処理の流れを示すフローチャート。
【図１７】本発明の実施形態に係る重複描画コマンドを検知する処理の流れを示すフローチャート。
【図１８】本発明の実施形態に係る重複描画コマンドを検知する処理の流れを示すフローチャート。
【図１９】本発明の実施形態に係る重複描画コマンドを検知する処理の流れを示すフローチャート。
【図２０】本発明の実施形態に係る重複描画コマンドを削除する処理の流れを示すフローチャート。
【図２１】本発明の実施形態に係るＰＤＦ形式のファイルを例示した図。
【図２２】本発明の実施形態に係るプリフライト処理部の他の構成を示す図。
【図２３】オフィスアプリケーションプログラムを用いて作成された文書ファイルを例示した図。
【図２４】文書ファイルをＰＤＦファイルに変換する処理の流れを示すシーケンス図。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態について説明する。本実施形態においては、印刷ジョブを生成するクライアント端末２と、受信した印刷ジョブに基づいて画像形成出力を実行する画像形成装置１を含む画像処理システム３を例に説明を行う。
【００１５】
このような構成において、例えば、ＰＣ上で、オフィスアプリケーションプログラムを使用して作成した文書を印刷出力する際に、作成された文書からＰＤＦファイルが生成されることがある。図２３は、同一の内容であって、オブジェクトの識別情報が異なるオブジェクトが存在しているＷｏｒｄ文書を例示した図である。図２３の（Ａ）および（Ｂ）においては、それぞれ、同一の画像データである企業ロゴＰが含まれている。
【００１６】
図２３に示すようなＷｏｒｄ文書は、図２４に示す処理に従ってＰＤＦファイルに変換される。図２４は、オフィスアプリケーションプログラムを使用して作成された文書をプリンタドライバタイプのＰＤＦ生成プログラムを使用してＰＤＦファイルに変換する処理を示すシーケンス図である。なお、図２４においては、Ｗｏｒｄ文書からＰＤＦファイルに変換することを「印刷」と定義している。
【００１７】
図２４に示すように、オフィスアプリケーションプログラムは、ＰＣのユーザによって行われる印刷指示操作を受け付ける（Ｓ２４０１）と、文書の印刷を開始し（Ｓ２４０２）、１ページ目から印刷を開始する（Ｓ２４０３）命令情報をＰＤＦ生成プログラムに受け渡す。
【００１８】
この命令情報には、企業ロゴＰの画像を印刷する指示（Ｓ２４０５）、本文Ａ１を印刷する指示（Ｓ２４０７）が含まれる。ＰＤＦ生成プログラムは、命令情報に基づいて順次、Ｐａｇｅオブジェクト（Ｓ２４０４）、企業ロゴＰの画像からＩｍａｇｅ  ＸＯｂｊｅｃｔ（Ｓ２４０６）、本文Ａ１からＦｏｒｍ  ＸＯｂｊｅｃｔ（Ｓ２４０８）を生成する。
【００１９】
１ページ目の印刷が終了する（Ｓ２４０９）と、オフィスアプリケーションプログラムは、１ページ目の印刷を開始する（Ｓ２４１０）命令情報をＰＤＦ生成プログラムに受け渡す。
【００２０】
この命令情報には、企業ロゴＰの画像を印刷する指示（Ｓ２４１２）、本文Ｂ１を印刷する指示（Ｓ２４１４）が含まれる。ＰＤＦ生成プログラムは、命令情報に基づいて順次、Ｐａｇｅオブジェクト（Ｓ２４１１）、企業ロゴＰの画像からＩｍａｇｅ  ＸＯｂｊｅｃｔ（Ｓ２４１３）、本文Ａ１からＦｏｒｍ  ＸＯｂｊｅｃｔ（Ｓ２４１５）を生成する。
【００２１】
２ページ目の印刷が終了する（Ｓ２４１６）と、オフィスアプリケーションプログラムは、印刷を終了させ（Ｓ２４１７）、印刷終了を通知する（Ｓ２４１８）。図２４において説明したように、プリンタドライバタイプのＰＤＦ生成プログラムにおいては、Ｓ２４０６およびＳ２４１１のそれぞれの処理において、Ｉｍａｇｅ  ＸＯｂｊｅｃｔを生成するために、オフィスアプリケーションプログラムから受け取る印刷対象の画像データが同一であるか否かを判断する処理は、一般的には行われない。
【００２２】
したがって、このような処理を経た場合、企業ロゴＰの画像データのように、同一の内容であって、オブジェクトの識別情報が異なるオブジェクトが存在している場合には、それぞれの画像データが独立したオブジェクトとしてＰＤＦファイルに埋め込まれてしまう。このように、同一の内容であって、オブジェクトの識別情報が異なるオブジェクトが存在しているＰＤＦファイルであっても、印刷出力を効率よく行うことが本発明の要旨である。
【００２３】
図１は、本実施形態に係る画像処理システム３の運用形態を示す図である。図１に示すように、画像処理システム３は、画像形成装置１、クライアント端末２がネットワークを介して接続されて構成されている。
【００２４】
画像形成装置１は、電子写真方式やインクジェット方式等によって印刷出力動作を行うプリンタであり、ＤＦＥ１００およびプリントエンジン１５０を含む。ＤＦＥ１００は、プリントエンジン１５０にデジタル画像形成出力を実行させるための制御部である画像形成出力制御装置として機能する。また、プリントエンジン１５０は感光体や、現像ユニット、搬送機構等の画像形成部を備えており、画像形成出力装置として機能する。そのため、ＤＦＥ１００は、プリントエンジン１５０が印刷出力を実行する際に参照する画像データであるラスターデータを生成するためにＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）処理を実行する。ラスターデータが描画情報である。
【００２５】
画像形成装置１によって印刷出力を行う場合、クライアント端末２からＤＦＥ１００にデータを送信する。ＤＦＥ１００は、上述したようにＲＩＰ処理を行い、ＲＩＰ処理によって生成されたラスターデータをプリントエンジン１５０に送信する。プリントエンジン１５０は、受信したラスターデータに基づいて印刷出力を実行する。したがって、ＲＩＰ処理前の印刷データをＤＦＥ１００に送信することによって、画像形成装置１に印刷出力を実行させることが可能である。
【００２６】
クライアント端末２は、システムを使用するオペレータが操作する情報処理端末であり、一般的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等によって実現される。オペレータは、クライアント端末２を操作してＤＦＥ１００にデータを送信する。
【００２７】
次に、本実施形態に係るＤＦＥ１００、クライアント端末２などの情報処理装置のハードウェア構成について図２を参照して説明する。図２に示すように、ＤＦＥ１００、クライアント端末２は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等と同様の構成を含む。即ち、ＤＦＥ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０およびＩ／Ｆ５０がバス８０を介して接続されている。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０および操作部７０が接続されている。
【００２８】
ＣＰＵ１０は演算手段であり、情報処理装置全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ブートローダやＢＩＯＳ等のプログラムが格納されている。ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。
【００２９】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、ユーザが情報処理装置の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボードやマウス等、ユーザが情報処理装置に情報を入力するためのユーザインタフェースである。なお、ＤＦＥ１００においては、ＬＣＤ６０や操作部７０等のユーザインタフェースは省略可能である。
【００３０】
このようなハードウェア構成において、ＲＯＭ３０に格納されたプログラムや、ＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体からＲＡＭ２０にロードされたプログラムに従ってＣＰＵ１０が演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係るＤＦＥ１００およびクライアント端末２の機能を実現する機能ブロックが構成される。
【００３１】
次に、本実施形態に係るＤＦＥ１００の機能構成について図３を参照して説明する。図３に示すように、ＤＦＥ１００は、ＤＦＥコントローラ１１０、ネットワークＩ／Ｆ１０１およびディスプレイ１０２を含む。ネットワークＩ／Ｆ１０１は、ＤＦＥ１００がネットワークを介して他の機器と情報をやり取りするためのインタフェースである。また、ＤＦＥコントローラ１１０は、デジタル印刷出力されるデータの取得、印刷ジョブの実行等を実行する。ＤＦＥコントローラ１１０は、専用のソフトウェアが情報処理装置にインストールされることによって構成される。
【００３２】
ＤＦＥ１００は、クライアント端末２から印刷出力の命令情報であるジョブデータを受信し、受信したジョブの制御、ＲＩＰ処理の実行制御およびプリントエンジン１５０の制御を行う。クライアント端末２は、ＤＦＥ１００にジョブデータを送信することにより、プリントエンジン１５０に印刷出力を実行させる。即ち、ＤＦＥ１００は、クライアント端末２に対してデジタルプリント機能を提供するためのサーバとして機能する。
【００３３】
ＤＦＥ１００が提供するジョブの制御機能とは、ジョブデータの受け付け、ジョブデータの解析、ラスターデータの作成およびプリントエンジン１５０による印刷出力等の一連の動作の制御機能である。また、ＲＩＰ処理の実行制御とは、ジョブデータの解析によって生成された情報に基づいてＲＩＰエンジン１２０にＲＩＰ処理を実行させる制御である。
【００３４】
ジョブデータの解析によって生成される情報とは、ＲＩＰ処理に用いられる情報がＤＦＥ１００において解読可能な形式に変換された情報である。ＲＩＰエンジン１２０は、ＤＦＥ１００において解読可能な形式に変換された情報を参照し、ＲＩＰ処理を実行することにより、中間データ、ラスターデータを作成する描画情報生成部である。
【００３５】
プリントエンジン１５０の制御機能とは、プリントエンジン１５０にラスターデータを送信して印刷出力を実行させる機能である。これらの機能は、図３に示す各ブロックによって実現される。図３に示す各ブロックは、図２において説明したように、ＲＡＭ２０にロードされたプログラムやＲＯＭ３０に格納されたプログラムに従ってＣＰＵ１０が演算処理を行い、他のハードウェアを動作させることにより実現される。
【００３６】
また、ＤＦＥ１００が、内部に複数のＲＩＰエンジン１２０を搭載する構成であってもよい。これは、ＤＦＥ１００にジョブを送信する可能性のある他のデバイスにＲＩＰエンジンが搭載されている場合に、これらの他のデバイスとの印刷出力の差異を低減するためである。
【００３７】
なお、ＤＦＥ１００へのジョブデータの入力は、クライアント端末２からネットワークを介した入力の他、ＵＳＢメモリ等の可搬型記憶媒体を介して入力することも可能である。ＤＦＥ１００へジョブデータを入力する情報処理装置は、画像形成出力処理の実行を制御する処理実行制御装置として機能する。
【００３８】
主制御部１１３は、入出力制御部１１１が受信したジョブデータを画像処理部１１４に受け渡す描画情報生成制御部として機能する。なお、ＤＦＥ１００においてジョブデータを格納する設定がされている場合、主制御部１１３はジョブデータをＲＡＭ２０やＨＤＤ４０によって実現される記憶領域に格納する構成であってもよい。この記憶領域は、ＤＦＥ１００にＵＳＢインタフェース等を介して接続された記憶装置や、ネットワークを介して接続された記憶装置であっても良い。
【００３９】
また、例えばＤＦＥ１００において印刷内容のプレビューを行うなどの目的で、ジョブデータを記憶領域に格納するか否かがジョブデータ中に記述されている場合、主制御部１１３はその記述に従う。この場合、主制御部１１３は、ジョブデータに含まれる印刷対象のデータを記憶領域から取得してプレビューデータを画像処理部１１４に生成させ、ＵＩ制御部１１２に受け渡す。これにより、ＵＩ制御部１１２は、印刷内容のプレビューをディスプレイ１０２に表示させる。
【００４０】
また、ＤＦＥ１００においてオペレータが印刷設定の変更を行う場合も、記憶領域にジョブデータが格納される。この場合、主制御部１１３は、ジョブデータを記憶領域から取得してＵＩ制御部１１２に受け渡す。これにより、ディスプレイ１０２にジョブデータにおいて指定された印刷設定を変更するためのＵＩが表示され、オペレータが操作によって変更することが可能となる。
【００４１】
オペレータがＤＦＥ１００を操作して印刷設定を変更した場合、ＵＩ制御部１１２は変更内容を受け付けて主制御部１１３に通知する。主制御部１１３は、受け付けた変更内容を対象のジョブデータに反映して更新し、更新後のジョブデータを記憶領域に記憶させる。
【００４２】
そして、主制御部１１３は、ジョブ実行の指示を受け付けると、記憶領域に格納されたジョブデータを画像処理部１１４もしくはプリンタ制御部１１５に受け渡す。ジョブ実行の指示は、クライアント端末２からネットワークを介して入力される場合や、ＤＦＥ１００に対するオペレータの操作によって入力される。また、例えば、ジョブデータにおいてジョブの実行時刻が設定されている場合、主制御部１１３は、設定時刻になると記憶領域に格納されたジョブデータを画像処理部１１４もしくはプリンタ制御部１１５に受け渡す。
【００４３】
ＵＩ制御部１１２は、上述したようにディスプレイ１０２への情報の表示や、ＤＦＥ１００に対するオペレータの操作を受け付ける。上述した印刷設定の編集操作において、ＵＩ制御部１１２はジョブデータに含まれるＪＤＦ（Ｊｏｂ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｏｒｍａｔ）情報などの印刷設定情報を解釈してディスプレイ１０２に印刷ジョブの内容を表示する。
【００４４】
主制御部１１３は、ジョブの実行指示に基づいてジョブの実行に係る制御を行う。具体的に、主制御部１１３は、印刷設定情報の解析処理、画像処理部１１４によるＲＩＰ処理、プリンタ制御部１１５によるプリントエンジン１５０の制御処理である。主制御部１１３は、ジョブの実行指示を受けると、ジョブデータに含まれる印刷設定情報を画像処理部１１４において認識可能な形式に変換する。
【００４５】
主制御部１１３は、画像処理部１１４において認識可能な形式に変換された印刷設定情報を画像処理部１１４に受け渡し、ＲＩＰ処理を実行させる。画像処理部１１４は、複数のＲＩＰエンジン１２０にＲＩＰ内部処理を実行させてラスターデータを生成する。
【００４６】
画像格納部１１６は、ＲＩＰエンジン１２０によって生成されたラスターデータを記憶する記憶部である。画像格納部１１６は、図２において説明したＨＤＤ４０等によって実現される。この他、ＤＦＥ１００にＵＳＢインタフェース等を介して接続された記憶装置や、ネットワークを介して接続された記憶装置であっても良い。
【００４７】
プリンタ制御部１１５は、プリントエンジン１５０と接続されており、画像格納部１１６に格納されたラスターデータを読み出してプリントエンジン１５０に送信することによって印刷出力を実行させる。また、主制御部１１３からジョブデータに含まれるフィニッシング情報を取得することにより、仕上げ処理のための制御を行う。画像形成装置１がコート加工を行うことができる構成である場合には、プリンタ制御部１１５によって、コート加工の実行が制御される。
【００４８】
プリンタ制御部１１５は、プリントエンジン１５０との間で情報をやり取りすることにより、プリントエンジン１５０自身の情報を取得することができる。例えばＣＩＰ４規格の場合、印刷設定情報の規格としてデバイス仕様情報をプリンタと送受信するＤｅｖＣａｐｓという規格が定められている。また、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）という通信プロトコルとＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）というデータベースとを利用したプリンタの情報の収集方法も知られている。
【００４９】
入出力制御部１１１は、ＭＩＢやＪＭＦ（Ｊｏｂ  Ｍｅｓｓａｇｉｎｇ  Ｆｏｒｍａｔ）などの仕様に合わせた形で、ネットワークＩ／Ｆ１０１を介してクライアント端末２との間でデバイスに関する情報のやり取りを行う。その結果、クライアント端末２に表示されたＧＵＩにおいて、ＤＦＥ１００に含まれるＲＩＰエンジン１２０の情報や、入出力制御部１１１の情報が反映されることとなる。
【００５０】
主制御部１１３は、プリンタ制御部１１５によってプリントエンジン１５０が制御されて印刷出力が完了すると、ネットワークＩ／Ｆ１０１を介して印刷ジョブの完了通知をクライアント端末２に通知する。
【００５１】
次に、本実施形態に係るＲＩＰエンジン１２０の機能構成について説明する。図４は、本実施形態に係るＲＩＰエンジン１２０の機能構成を示す図である。上述したように、ＲＩＰエンジン１２０はジョブデータに基づいてＲＩＰ内部処理を実行してラスターデータを生成するソフトウェアモジュールである。ＲＩＰエンジン１２０には、例えばアドビ・システムズによって提供されるＰＤＦプリンティングエンジンであるＡＰＰＥ（Ａｄｏｂｅ  ＰＤＦ  Ｐｒｉｎｔ  Ｅｎｇｉｎｅ）などをベースとして用いることができる。
【００５２】
図４に示すように、ＲＩＰエンジン１２０は、制御部２０１と他の部分とによって構成される。制御部２０１以外の部分が、ベンダーによって拡張可能な拡張部である。制御部２０１は、拡張部として含まれる様々な機能を利用することによりＲＩＰ処理を実行する。
【００５３】
入力部２０２は、初期化要求やＲＩＰ処理の実行要求を受け付け、その要求を制御部２０１に通知する。制御部２０１は、ＲＩＰ処理においてＲＩＰエンジン１２０に含まれるそれぞれの拡張部を動作させる順番を決定する。また、制御部２０１は、それらの処理の結果生成されるデータの形式（例えば、ラスタイメージ、プレビューイメージ、ＰＤＦ、中間データなど）を決定する。
【００５４】
また、制御部２０１は、入力部２０２からＲＩＰ処理の実行要求を受け付けると、初期化要求を受け付けた際に決定した処理順に従って拡張部の各部を動作させる。プリフライト処理部２０４は、入力されたジョブデータの内容の妥当性の確認を行う。そしてプリフライト処理部２０４は、入力されたジョブデータの内容において不正なジョブ属性を発見した場合、その旨を制御部２０１に通知する。この通知を受けた制御部２０１は、出力部２１３を介して画像処理部１１４や主制御部１１３等の外部モジュールに不正なジョブ属性の発見に関する情報などを通知する。
【００５５】
プリフライト処理によって、例えば非対応のフォントが指定されていないか否か、ジョブデータに含まれる画像データに重複するものがあるか否か、画像データに基づいてラスターデータを生成するための描画コマンドに重複するものがあるか否かなどを判定する処理が行われる。この処理の結果、確認された性の情報に基づいて、ＲＩＰ処理が実行される。またプリフライト処理として、ＲＩＰエンジン１２０に含まれる他のモジュールによる処理が不可能になる事態が発生し得る情報があるか否か判定される。
【００５６】
図５は、本実施形態に係るプリフライト処理部２０４およびレンダリング処理部２１８の機能構成を示すブロック図である。図５に示すように、本実施形態に係るプリフライト処理部２０４は、重複画像データ検知部２１９、重複画像データ削除部２２０、重複描画コマンド検知部２２１、重複描画コマンド削除部２２２、ＰＤＦ構造解析部２２３を含む。
【００５７】
重複画像データ検知部２１９は、ＰＤＦファイル３０１の中に存在する画像情報オブジェクトであるＩｍａｇｅ  ＸＯｂｊｅｃｔの内容を比較し、他のＩｍａｇｅ  ＸＯｂｊｅｃｔに同一の内容のＩｍａｇｅ  ＸＯｂｊｅｃｔがあるか否かを検知する重複画像情報検知部として機能する。重複画像データ検知部２１９によって検知された同一の内容の他のＩｍａｇｅ  ＸＯｂｊｅｃｔが、重複画像情報オブジェクトに相当する。
【００５８】
重複画像データ削除部２２０は、検知された同一の内容を持つ他のＩｍａｇｅ  ＸＯｂｊｅｃｔを削除する重複画像情報処理制御部として機能する。重複画像データ検知部２１９による検知結果と重複画像データ削除部２２０による処理の結果は、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルに反映される。
【００５９】
重複描画コマンド検知部２２１は、ＰＤＦファイル３０１の中に存在する描画指示情報のオブジェクトであるＦｏｒｍ  ＸＯｂｊｅｃｔの内容を比較し、他のＦｏｒｍ  ＸＯｂｊｅｃｔに同一の内容のＦｏｒｍ  ＸＯｂｊｅｃｔがあるか否かを検知する重複描画情報検知部として機能する。重複描画コマンド検知部２２１によって検知された同一の内容の他のＦｏｒｍ  ＸＯｂｊｅｃｔが、重複描画指示情報オブジェクトに相当する。
【００６０】
重複描画コマンド削除部２２２は、検知された同一の内容を持つ他のＦｏｒｍ  ＸＯｂｊｅｃｔを削除する重複描画情報処理制御部として機能する。重複描画コマンド検知部２２１による検知結果と重複描画コマンド削除部２２２による処理の結果は、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルに反映される。
【００６１】
Ｉｍａｇｅ  ＸＯｂｊｅｃｔとは、ＰＤＦ形式のファイルにおいて、自然画などのフルカラー画像やバーコードなどの白黒画像が収められているオブジェクトである。また、ＰＤＦ形式のファイルでは、ＪＰＥＧなどの画像圧縮アルゴリズムを利用して得られたエンコードデータをＩｍａｇｅ  ＸＯｂｊｅｃｔが持つストリームデータとして格納することができる。また、Ｆｏｒｍ  ＸＯｂｊｅｃｔとは、ベクター図形やフォント、イメージなどを描画する手順が記載された描画コマンドが収められているオブジェクトである。
【００６２】
ＰＤＦ構造解析部２２３は、ジョブデータに含まれるＰＤＦ形式のファイルを解析し、各オブジェクトの開始位置やバイト数の情報を取得する。
【００６３】
再度図４に戻り、ＲＩＰエンジン１２０の各拡張部の機能の説明を続ける。ノーマライズ処理部２０５は、入力されたジョブデータがＰＤＦではなくＰｏｓｔＳｃｒｉｐｔである場合にＰＤＦに変換する。マーク処理部２０６は、指定されたマークのグラフィック情報を展開し、印刷対象の画像において指定された位置に重畳する。
【００６４】
フォント処理部２０７は、フォントデータを取り出し、フォントの埋め込み処理やアウトライン化を行う。ＣＭＭ（Ｃｏｌｏｒ  Ｍａｎａｇｅｍｅｎｔ  Ｍｏｄｕｌｅ）処理部２０９は、ＩＣＣ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｌｏｒ  Ｃｏｎｓｏｒｔｉｕｍ）プロファイルに記述された色変換テーブル等に基づいて、入力画像の色空間をＣＭＹＫ（Ｃｙａｎ，Ｍａｇｅｎｔａ，Ｙｅｌｌｏｗ，ｂｌａｃＫ）へ変換する。ＩＣＣプロファイルとは、カラーＩＣＣ情報、デバイスＩＣＣ情報である。
【００６５】
Ｔｒａｐｐｉｎｇ処理部２１０は、トラッピング処理を行う。トラッピング処理とは、境界を接して隣接している異なる色の領域について位置ずれが生じた場合に境界部分に隙間が生じることを防ぐため、それぞれの色の領域を拡張して隙間が埋まるようにする処理である。
【００６６】
Ｃａｌｉｂｒａｔｉｏｎ処理部２１１は、ＣＭＭ処理部２０９による色変換の精度を高めるため、出力デバイスの経時変動や個体差による発色バランスのばらつきの調節作業を実施する。なお、Ｃａｌｉｂｒａｔｉｏｎ処理部２１１による処理は、ＲＩＰエンジン１２０の外部において実行される場合もあり得る。
【００６７】
Ｓｃｒｅｅｎｉｎｇ処理部２１２は、最終出力を意識した網点の生成処理を実施する。なお、Ｓｃｒｅｅｎｉｎｇ処理部２１２による処理は、Ｃａｌｉｂｒａｔｉｏｎ処理部２１１による処理と同様に、ＲＩＰエンジン１２０の外部において実行される場合もあり得る。出力部２１３は、外部にＲＩＰ結果を送信する。ＲＩＰ結果は、初期化時に決定したラスタイメージ、プレビューイメージ、ＰＤＦ、中間データのいずれかの形式のデータである。
【００６８】
レンダリング処理部２１８は、入力データに基づいてラスターデータを生成するレンダリング処理を行い、図５に示すように、オブジェクト描画部２２４、オブジェクト記憶部２２５を含んで構成される。また、レンダリング処理部２１８は、キャッシュされたＩｍａｇｅ  ＸＯｂｊｅｃｔ、Ｆｏｒｍ  ＸＯｂｊｅｃｔを各オブジェクトの開始位置やバイト数の情報に基づいて参照し、レンダリング処理を実行する。
【００６９】
オブジェクト記憶部２２５には、印刷対象のＰＤＦファイルに対してＲＩＰ処理を行う過程において、あるＩｍａｇｅ  ＸＯｂｊｅｃｔ、Ｆｏｒｍ  ＸＯｂｊｅｃｔに対して初めてＲＩＰ処理を行うことによって得られたラスターデータが、オブジェクトの識別情報（例えば、オブジェクトＩＤなど）と共にキャッシュデータとして保存されている。
【００７０】
オブジェクト記憶部２２５は、図６に示すように、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ記憶部２２６、Ｆｏｒｍ  ＸＯｂｊｅｃｔ記憶部２２７を含む。Ｉｍａｇｅ  ＸＯｂｊｅｃｔ記憶部２２６、Ｆｏｒｍ  ＸＯｂｊｅｃｔ記憶部２２７は、それぞれ描画結果記憶部として機能する。
【００７１】
オブジェクト描画部２２４は、オブジェクト記憶部２２５に記憶されているキャッシュデータを参照することにより、同一のＰＤＦファイル中で再利用されたオブジェクトに関してはＲＩＰ処理を行わずに、キャッシュデータをコピーしてラスターデータを生成する処理のみを実行する。
【００７２】
Ｉｍａｇｅ  ＸＯｂｊｅｃｔ記憶部２２６は、あるＩｍａｇｅ  ＸＯｂｊｅｃｔを識別する識別情報であるオブジェクトＩＤとそのオブジェクトがレンダリングされた結果生成されたイメージ画像とを対応付けてＩｍａｇｅ  ＸＯｂｊｅｃｔの描画結果を記憶する。Ｆｏｒｍ  ＸＯｂｊｅｃｔ記憶部２２７は、あるＦｏｒｍ  ＸＯｂｊｅｃｔを識別する識別情報であるオブジェクトＩＤとそのオブジェクトがレンダリングされた結果、生成されたイメージ画像とを対応付けてＦｏｒｍ  ＸＯｂｊｅｃｔの描画結果を記憶する。
【００７３】
なお、図４に示す各処理部のうち、マーク処理部２０６、フォント処理部２０７による処理は、レンダリング処理部２１８における処理と同時に実行される場合もある。
【００７４】
図７に示すように、ＰＤＦ形式のファイルは、ヘッダ、本体、相互参照テーブル、トレーラを含み構成される。ヘッダは、ＰＤＦ形式のファイルであることが定義されている情報である。本体は、例えば、図８（ａ）に示すＩｍａｇｅ  ＸＯｂｊｅｃｔや図８（ｂ）に示すＦｏｒｍ  ＸＯｂｊｅｃｔなどを含むＰＤＦ形式のファイルの本体部分である。
【００７５】
相互参照テーブルは、ＰＤＦ形式のファイルの本体部分にランダムアクセスするための情報であり、オブジェクトの位置情報が含まれる。トレーラは、ＰＤＦ形式のファイルのファイルサイズ、カタログ情報、暗号辞書などが含まれる情報である。
【００７６】
なお、本実施形態に係る重複画像データ検知部２１９は、図８（ａ）に示すような情報構成によってＩｍａｇｅ  ＸＯｂｊｅｃｔを管理するＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルを有している。図９は、本実施形態に係るＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルの情報構成を示す図である。
【００７７】
Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルは、「ＲｅｃｏｒｄＮｏ」、「Ｏｂｊｅｃｔ−ＩＤ」、「Ｈｅｉｇｈｔ」、「Ｗｉｄｔｈ」、「Ｌｅｎｇｔｈ」、「ＣｏｌｏｒＳｐａｃｅ」、「Ｆｉｌｔｅｒ」、「ＳｔｒｅａｍＨａｓｈ」、「ＳａｍｅＯｂｊＬｉｓｔ」を含む。
【００７８】
「ＲｅｃｏｒｄＮｏ」は、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルにおけるレコード番号を示す情報である。「Ｏｂｊｅｃｔ−ＩＤ」は、ＰＤＦ形式のファイルにふくまれる単位画像であるオブジェクトを識別するためのオブジェクトＩＤなどの識別情報である。
【００７９】
「Ｈｅｉｇｈｔ」は、オブジェクトの縦方向の長さを示す値であり、「Ｗｉｄｔｈ」は、オブジェクトの横方向の長さを示す値であり、「Ｌｅｎｇｔｈ」は、圧縮されたオブジェクトのストリームデータのバイト列の長さを示す値である。「ＣｏｌｏｒＳｐａｃｅ」は、色空間を示す値であり、「Ｆｉｌｔｅｒ」は、バイト列に適用されるフィルタの種類を示す値である。
【００８０】
また、「ＳｔｒｅａｍＨａｓｈ」は、オブジェクトに含まれる画像のストリームデータから所定の計算手順によって算出された規則性のない固定長の値である。「ＳａｍｅＯｂｊＬｉｓｔ」は、同一の画像データであるオブジェクトのＯｂｊｅｃｔ−ＩＤを示す情報である。
【００８１】
また、本実施形態に係る重複描画コマンド検知部２２１は、図８（ｂ）に示すような情報構成によってＦｏｒｍ  ＸＯｂｊｅｃｔを管理するＦｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルを有している。図１０は、本実施形態に係るＦｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルの情報構成を示す図である。
【００８２】
Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルは、「ＲｅｃｏｒｄＮｏ」、「Ｏｂｊｅｃｔ−ＩＤ」、「Ｆｏｒｍ  Ｔｙｐｅ」、「ＢＢｏｘ」、「Ｍａｔｒｉｘ」、「ＲｅｓｏｕｒｃｅｓＨａｓｈ」、「ＳｔｒｅａｍＨａｓｈ」、「ＳａｍｅＯｂｊＬｉｓｔ」を含む。
【００８３】
「ＲｅｃｏｒｄＮｏ」は、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルにおけるレコード番号を示す情報である。「Ｏｂｊｅｃｔ−ＩＤ」は、ＰＤＦ形式のファイルにふくまれるオブジェクトを識別するためのオブジェクトＩＤなどの識別情報である。
【００８４】
「ＦｏｒｍＴｙｐｅ」は、オブジェクトのフォーマット形式を定義する情報であり、「ＢＢｏｘ」は、オブジェクトの描画領域を示す情報である。「Ｍａｔｒｉｘ」は、フォームを変換するための行列式を示す値である。
【００８５】
「ＲｅｓｏｕｒｃｅｓＨａｓｈ」は、レンダリングを行うためにオブジェクトに含まれるリソースデータのｓｔｒｅａｍデータから所定の計算手順によって算出された規則性のない固定長の値である。「ＳｔｒｅａｍＨａｓｈ」は、オブジェクトに含まれる描画コマンドのｓｔｒｅａｍデータから所定の計算手順によって算出された規則性のない固定長の値である。「ＳａｍｅＯｂｊＬｉｓｔ」は、同一の画像データであるオブジェクトのＯｂｊｅｃｔ−ＩＤを示す情報である。
【００８６】
このように、重複画像データ検知部２１９は、オブジェクトのデータをキャッシュする際に、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルに基づいてＩｍａｇｅ  ＸＯｂｊｅｃｔの内容の比較をおこなう。そして、重複画像データ検知部２１９は、比較結果に基づいて、他のＩｍａｇｅ  ＸＯｂｊｅｃｔに内容が共通している、すなわち、同一の画像データのＩｍａｇｅ  ＸＯｂｊｅｃｔがあるか否かを検知する。
【００８７】
また、レンダリング処理部２１８は、同一の内容のＩｍａｇｅ  ＸＯｂｊｅｃｔの検知結果に基づいて、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ記憶部２２６に記憶されているＩｍａｇｅ  ＸＯｂｊｅｃｔを管理する。
【００８８】
重複描画コマンド検知部２２１は、オブジェクトのデータをキャッシュする際に、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルに基づいて、Ｆｏｒｍ  ＸＯｂｊｅｃｔの内容の比較をおこなう。そして、重複描画コマンド検知部２２１は、比較結果に基づいて、他のＦｏｒｍ  ＸＯｂｊｅｃｔに内容が共通している、すなわち、同一の描画コマンドのＦｏｒｍ  ＸＯｂｊｅｃｔがあるか否かを検知する。
【００８９】
また、レンダリング処理部２１８は、同一の内容のＦｏｒｍ  ＸＯｂｊｅｃｔの検知結果に基づいて、Ｆｏｒｍ  ＸＯｂｊｅｃｔ記憶部２２７に記憶されているＦｏｒｍ  ＸＯｂｊｅｃｔを管理する。
【００９０】
次に、本実施形態に係るシステムの動作について、図１１を参照して説明する。図１１は、本実施形態に係るワークフローシステムの動作を示すシーケンス図である。クライアント端末２は、システムのＧＵＩに対するオペレータの操作により、ＤＦＥ１００に印刷出力の実行要求であるジョブデータを送信する（Ｓ１１０１）。
【００９１】
ＤＦＥ１００はジョブデータを受信すると、ＤＦＥ内処理としてＲＩＰ処理（Ｓ１１０２）を実行し、生成されたラスターデータをプリントエンジン１５０に送信する（Ｓ１１０３）。そして、プリントエンジン１５０は、ラスターデータを印刷出力する（Ｓ１１０４）。
【００９２】
次に、図１１のＳ１１０２におけるＤＦＥ内処理で実行されるＲＩＰ処理について図１２のフローチャートを参照して説明する。図１２に示すように、まずは入力部２０２に対する初期化要求に基づいて制御部２０１が初期化処理を実行する（Ｓ１２０１）。Ｓ１２０１においては、ＲＩＰエンジン１２０に含まれるそれぞれの拡張部のうち処理を実行させる拡張部や、その順番を決定する。また、処理の結果生成されるデータの形式を決定する。
【００９３】
プリフライト処理部２０４は、ジョブデータに含まれるＰＤＦファイル３０１に対して、上述したように、例えば非対応のフォントが指定されていないか否か、ジョブデータに含まれる画像データに重複するものがあるか否か、画像データに基づいてラスターデータを生成するための描画コマンドに重複するものがあるか否かなどを判定するプリフライト処理を実行する（Ｓ１２０２）。Ｓ１２０２の処理の態様については、後述する。
【００９４】
プリフライト処理が完了した後（Ｓ１２０３／ＹＥＳ）、Ｓ１２０１において決定された処理順に従って処理が要求され、最終的にはレンダリング処理部２１８においてオブジェクト描画処理が実行される（Ｓ１２０４）。なお、レンダリング処理部２１８は、同一のオブジェクトＩＤをもつＩｍａｇｅ  ＸＯｂｊｅｃｔもしくは同一のオブジェクトＩＤをもつＦｏｒｍ  ＸＯｂｊｅｃｔに対しては、後述する処理においてオブジェクトキャッシングされたラスタライズ結果を参照してラスターデータを生成する。
【００９５】
このとき、オブジェクトキャッシングされたラスタライズ結果を参照してラスターデータが生成されるＩｍａｇｅ  ＸＯｂｊｅｃｔが重複画像情報参照オブジェクトであり、オブジェクトキャッシングされたラスタライズ結果を参照してラスターデータが生成されるＦｏｒｍ  ＸＯｂｊｅｃｔが重複描画指示情報参照オブジェクトである。また、レンダリング処理部２１８によって、オブジェクトキャッシングに使用されるラスタライズ結果が描画結果情報である。
【００９６】
そのようにして拡張部により処理が実行されてラスターデータが生成されると、出力部２１３が処理結果を出力する（Ｓ１２０５）。このような処理により、ＲＩＰエンジン１２０におけるＲＩＰ処理が完了する。
【００９７】
なお、Ｓ１２０２においては、ＰＤＦファイル内の複数のページから参照されている画像データや描画コマンドのラスタライズ結果を保存する、いわゆるオブジェクトキャッシング処理が実行される。以下、本実施形態に係るＰＤＦファイルを最適化する処理について説明する。
【００９８】
まず、重複画像データを検知する処理について説明する。図１３ないし図１５は、本実施形態に係る重複画像データを検知する処理の流れを示すフローチャートである。ＰＤＦファイル３０１には、上述したように、ランダムアクセスに対応するために、ＰＤＦファイル３０１に含まれるオブジェクトの位置を示す相互参照テーブルが含まれる。重複画像データ検知部２１９は、ＰＤＦファイル３０１から、相互参照テーブルを取得する（Ｓ１３０１）。
【００９９】
重複画像データ検知部２１９は、相互参照テーブルからオブジェクトのＯｂｊｅｃｔ−ＩＤを取得し（Ｓ１３０２）、比較元のオブジェクトのＯｂｊｅｃｔ−ＩＤを示すｃｕｒｒｅｎｔＯｂｊＩｄにセットする（Ｓ１３０３）。なお、初回の重複画像の検知処理時において、重複画像データ検知部２１９は、ＲｅｃｏｒｄＮｏが０、すなわち、ｃｕｒｒｅｎｔＯｂｊＩｄにセットされるＯｂｊｅｃｔ−ＩＤには、ダミーもしくは無効化されるものを割り当てる。
【０１００】
次に重複画像データ検知部２１９は、Ｓ１３０３の処理においてｃｕｒｒｅｎｔＯｂｊＩｄにセットしたＯｂｊｅｃｔ−ＩＤのオブジェクトの位置情報であるバイトオフセットを相互参照テーブルから取得する（Ｓ１３０４）。そして、重複画像データ検知部２１９は、ＰＤＦファイル３０１からＯｂｊｅｃｔ−ＩＤのオブジェクトの位置にあるオブジェクトを抽出し（Ｓ１３０５）、抽出したオブジェクトを比較先のオブジェクトを示す情報としてｎｅｗＯｂｊにセットする（Ｓ１３０６）。
【０１０１】
次に、重複画像データ検知部２１９は、ｎｅｗＯｂｊの情報を確認する。具体的には、ｎｅｗＯｂｊのＴｙｐｅ＝“ＸＯｂｊｅｃｔ”であるか否か（Ｓ１３０７）、Ｓｕｂｔｙｐｅ＝“Ｉｍａｇｅ”であるか否か（Ｓ１３０８）を確認する。これらの処理によって、重複画像データ検知部２１９は、Ｓ１３０５にて抽出したオブジェクトが、「Ｉｍａｇｅ  ＸＯｂｊｅｃｔ」であるか否かを判定する。
【０１０２】
Ｓ１３０７もしくはＳ１３０７のいずれかでＮＯの場合、重複画像データ検知部２１９は、Ｓ１３０２の処理から再度実行する。したがって、初回の重複画像の検知処理時において、重複画像データ検知部２１９は、ダミーもしくは無効化されたＯｂｊｅｃｔ−ＩＤのオブジェクトのバイトオフセットからダミーもしくは無効化されたオブジェクトを抽出する。そのため、初回の重複画像の検知処理時においては、Ｓ１３０２の処理から再度実行する。
【０１０３】
Ｓ１３０７でＹＥＳかつＳ１３０８でＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊはＩｍａｇｅ  ＸＯｂｊｅｃｔであると判定する。重複画像データ検知部２１９は、ｎｅｗＯｂｊのオブジェクトとｃｕｒｒｅｎｔＯｂｊＩｄにセットしたＯｂｊｅｃｔ−ＩＤのオブジェクトとにおいて、同一画像検索処理を実行する（Ｂ、図１４）。
【０１０４】
同一画像検索処理を行うにあたり、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄは、初期値として１以外の値も取り得る。ここでは、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの初期値を１（Ｓ１４０１）として、以後の処理の説明を行う。なお、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの初期値が１以外の自然数であっても、同様の処理が実行される。重複画像データ検知部２１９は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄに対応するＲｅｃｏｒｄＮｏのレコード内容をＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルから取得し（Ｓ１４０２）、ｃｕｒｒｅｎｔＯｂｊにセットする（Ｓ１４０３）。
【０１０５】
次に、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとの内容を比較する（Ｓ１４０４）。重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＨｅｉｇｈｔの値が一致するか否か判定する（Ｓ１４０５）。Ｓ１４０５がＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＷｉｄｔｈの値が一致するか否か判定する（Ｓ１４０６）。
【０１０６】
Ｓ１４０６がＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＬｅｎｇｔｈの値が一致するか否か判定する（Ｓ１４０７）。Ｓ１４０７がＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＢｉｔｓＰｅｒＣｏｎｐｏｎｅｎｔの値が一致するか否か判定する（Ｓ１４０８）。
【０１０７】
Ｓ１４０８がＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＣｏｌｏｒＳｐａｃｅの値が一致するか否か判定する（Ｓ１４０９）。Ｓ１４０９がＹＥＳの場合、重複画像データ検知部２１９は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＦｉｌｔｅｒの値が一致するか否か判定する（Ｓ１４１０）。Ｓ１４１０がＹＥＳの場合、重複画像データ検知部２１９は、ＳｔｒｅａｍＨａｓｈが一致するか否かを判定する（Ｓ１４１１）。
【０１０８】
なお、ハッシュ値は、元のデータの長さによらず一定の長さであり、同じデータからは必ず同じハッシュ値が得られる一方で、少しでも異なるデータからは、全く異なるハッシュ値が得られるという特性がある。また、ハッシュ値は、情報量の欠損を含む不可逆な計算過程を得て算出されるため、ハッシュ値から元のデータを得ることはできない。
【０１０９】
重複画像データ検知部２１９は、Ｓ１４１１がＹＥＳの場合、Ｓｔｒｅａｍデータが一致するか否かを判定する（Ｓ１４１２）。なお、異なるＳｔｒｅａｍデータから同じハッシュ値が得られることは非常にまれであるため、同一画像検索処理を高速化させるためにＳ１４１２の処理を省略することも可能である。
【０１１０】
Ｓ１４１２（もしくはＳ１４１１）でＹＥＳの場合、重複画像データ検知部２１９は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの値を返す（Ｓ１４１３）。他方、Ｓ１４０５からＳ１４１２のいずれかの処理においてＮＯの場合、重複画像データ検知部２１９は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントし（Ｓ１４１４）、次のオブジェクトがある場合（Ｓ１４１５／ＹＥＳ）には、Ｓ１４０２から再度処理を行う。次のオブジェクトがない場合、重複画像データ検知部２１９は、同一画像検索処理の結果として、同一の画像データがないことを示す「０」を返す（Ｓ１４１６）。
【０１１１】
Ｓ１４１２（もしくはＳ１４１１）でＹＥＳの場合、同一画像検索処理の結果として、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの値を返している（Ｓ１４１３）。これは、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＲｅｃｏｒｄＮｏに対応するＯｂｊｅｃｔ−ＩＤと同一の画像データが存在することを示している（Ｓ１５０１／ＹＥＳ）。
【０１１２】
この時、重複画像データ検知部２１９は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＯｂｊｅｃｔ−ＩＤをｆｏｕｎｄＯｂｊＩｄにセットし（Ｓ１５０３）、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブル内のＯｂｊｅｃｔ−ＩＤ＝ｃｕｒｒｅｎｔＯｂｊＩｄのレコードにおいて、同じ画像データを含むオブジェクトを示すＳａｍｅＯｂｊＬｉｓｔ［］フィールドにｆｏｕｎｄＯｂｊＩｄの値を追加する（Ｓ１５０４）。
【０１１３】
次のオブジェクトがある場合（Ｓ１５０５／ＹＥＳ）、重複画像データ検知部２１９は、Ｓ１３０２から再度同じ処理を実行する。次のオブジェクトがない場合（Ｓ１５０５／ＮＯ）、重複画像データ検知部２１９は、本処理を終了させる。
【０１１４】
Ｓ１５０１でＮＯの場合、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＲｅｃｏｒｄＮｏに対応するＯｂｊｅｃｔ−ＩＤが示すオブジェクトとは異なる画像データを含むオブジェクトが存在することを示している。このとき、重複画像データ検知部２１９は、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルに新規のオブジェクトを追加する（Ｓ１５０２）。
【０１１５】
そして、次のオブジェクトがある場合（Ｓ１５０５／ＹＥＳ）、重複画像データ検知部２１９は、Ｓ１３０２から再度同じ処理を実行する。他方、次のオブジェクトがない場合（Ｓ１５０５／ＮＯ）、重複画像データ検知部２１９は、本処理を終了させる。
【０１１６】
次に、重複画像データを削除する処理について説明する。図１６は、本実施形態に係る重複画像データを削除する処理の流れを示すフローチャートである。重複画像データを削除するにあたり、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄは、初期値として１以外の値も取り得る。ここでは、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの初期値が１である（Ｓ１６０１）として、以後の処理の説明を行う。なお、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの初期値が１以外の自然数であっても、同様の処理が実行される。
【０１１７】
重複画像データ削除部２２０は、Ｉｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルからＲｅｃｏｒｄＮｏ＝ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのレコードの内容を取得し、ｃｕｒｒｅｎｔＯｂｊにセットする（Ｓ１６０２）。重複画像データ削除部２２０は、ｃｕｒｒｅｎｔＯｂｊの情報リストのうち、ＳａｍｅＯｂｊＬｉｓｔ［］が空の場合（Ｓ１６０３／ＹＥＳ）、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントする（Ｓ１６１２）。
【０１１８】
そして、重複画像データ削除部２２０は、次のオブジェクトが存在する場合には（Ｓ１６１３／ＹＥＳ）、Ｓ１６０２から再度同じ処理を実行し、次のオブジェクトが存在しない場合には（Ｓ１６１３／ＮＯ）、本処理を終了させる。
【０１１９】
ｃｕｒｒｅｎｔＯｂｊの情報リストにおいてＳａｍｅＯｂｊＬｉｓｔ［］が空ではない場合（Ｓ１６０３／ＮＯ）、重複画像データ削除部２２０は、オブジェクトの参照先を書き換えるための情報であるｒｅｗｒｉｔｅＯｂｊＩｄにｃｕｒｒｅｎｔＯｂｊのＯｂｊｅｃｔ−ＩＤの値をコピーする（Ｓ１６０４）。次に、重複画像データ削除部２２０は、オブジェクトを削除するための情報であるｄｅｌｅｔｅＯｂｊＬｉｓｔ［］のフィールドにｃｕｒｒｅｎｔＯｂｊのＳａｍｅＯｂｊＬｉｓｔ［］の内容をコピーする（Ｓ１６０５）。
【０１２０】
次に、重複画像データ削除部２２０は、ｄｅｌｅｔｅＯｂｊＩｄにｄｅｌｅｔｅＯｂｊＬｉｓｔ［］の先頭の値をコピーする（Ｓ１６０６）。そして、重複画像データ削除部２２０は、ＰＤＦファイル３０１からＯｂｊｅｃｔ−ＩＤの値がｄｅｌｅｔｅＯｂｊＩｄの値と同じであるオブジェクトを削除し（Ｓ１６０７）、さらにＰＤＦファイル全体をスキャンし、ｄｅｌｅｔｅＯｂｊＩｄを参照しているオブジェクトを検索する（Ｓ１６０８）。したがって、重複画像データ削除部２２０は、重複画像情報検索部として機能する。
【０１２１】
重複画像データ削除部２２０は、検索して見つけたオブジェクトの参照先をｒｅｗｒｉｔｅＯｂｊＩｄに書き換え（Ｓ１６０９）、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］の先頭の値を削除する（Ｓ１６１０）。したがって、重複画像データ削除部２２０は、識別情報書換部としても機能する。
【０１２２】
重複画像データ削除部２２０は、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］が空ではない場合、すなわち、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］に何らかの値が記載されている場合（Ｓ１６１１／ＮＯ）、Ｓ１６０７から再度同様の処理を実行する。
【０１２３】
重複画像データ削除部２２０は、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］が空の場合（Ｓ１６１１／ＹＥＳ）、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントする（Ｓ１６１２）。検索して見つけたオブジェクトの参照先をｒｅｗｒｉｔｅＯｂｊＩｄに書き換えることで、ｃｕｒｒｅｎｔＯｂｊのＯｂｊｅｃｔ−ＩＤ、すなわち、一つの画像データを使用可能にする。以後は、Ｓ１６１３と同様の処理を行う。
【０１２４】
以上説明したように、本実施形態に係るプリフライト処理部２０４は、オブジェクトを識別するための情報が異なる場合であっても、ＰＤＦファイル中において重複する同一の画像データを検知することができる。そのため、プリフライト処理部２０４において、重複する画像データであると判断された画像データは、レンダリング処理部２１８において、オブジェクトキャッシングの対象として取り扱われる。このようにすることにより、画像データの再利用オブジェクトに対してレンダリング処理を効率よく実行可能になる。
【０１２５】
次に、重複描画コマンドを検知する処理について説明する。図１７ないし図１９は、本実施形態に係る重複画像データを検知する処理の流れを示すフローチャートである。ＰＤＦファイル３０１には、上述したように、ランダムアクセスに対応するために、ＰＤＦファイル３０１に含まれるオブジェクトの位置を示す相互参照テーブルが含まれる。重複描画指示情報検知部として機能する重複描画コマンド検知部２２１は、ＰＤＦファイル３０１から、相互参照テーブルを取得する（Ｓ１７０１）。
【０１２６】
重複描画コマンド検知部２２１は、相互参照テーブルからオブジェクトのＯｂｊｅｃｔ−ＩＤを取得し（Ｓ１７０２）、ｃｕｒｒｅｎｔＯｂｊＩｄにセットする（Ｓ１７０３）。なお、初回の重複描画コマンドの検知処理時において、重複描画コマンド検知部２２１は、Ｒｅｃｏｒｄ  Ｎｏが０、すなわち、ｃｕｒｒｅｎｔＯｂｊＩｄにセットされるＯｂｊｅｃｔ−ＩＤには、ダミーもしくは無効化されるものを割り当てる。
【０１２７】
次に重複描画コマンド検知部２２１は、Ｓ１７０３の処理においてｃｕｒｒｅｎｔＯｂｊＩｄにセットしたＯｂｊｅｃｔ−ＩＤのオブジェクトの位置情報であるバイトオフセットを相互参照テーブルから取得する（Ｓ１７０４）。そして、ＰＤＦファイル３０１からＯｂｊｅｃｔ−ＩＤのオブジェクトの位置にあるオブジェクトを抽出し（Ｓ１７０５）、抽出したオブジェクトを比較先のオブジェクトを示す情報としてｎｅｗＯｂｊにセットする（Ｓ１７０６）。
【０１２８】
重複描画コマンド検知部２２１は、ｎｅｗＯｂｊの情報を確認する。具体的には、ｎｅｗＯｂｊのＴｙｐｅ＝“ＸＯｂｊｅｃｔ”であるか否か（Ｓ１７０７）、Ｓｕｂｔｙｐｅ＝“Ｆｏｒｍ”であるか否か（Ｓ１７０８）を確認する。これらの処理によって、重複描画コマンド検知部２２１は、Ｓ１７０５にて抽出したオブジェクトが、「Ｆｏｒｍ  ＸＯｂｊｅｃｔ」であるか否かを判定する。
【０１２９】
Ｓ１７０７もしくはＳ１７０８のいずれかの処理でＮＯの場合、重複描画コマンド検知部２２１は、Ｓ１７０２の処理から再度実行する。したがって、初回の重複描画コマンドの検知処理時において、重複描画コマンド検知部２２１は、ダミーもしくは無効化されたＯｂｊｅｃｔ−ＩＤのオブジェクトのバイトオフセットからダミーもしくは無効化されたオブジェクトを抽出する。そのため、初回の重複描画コマンドの検知処理時においては、Ｓ１７０２の処理から再度実行する。
【０１３０】
Ｓ１７０７でＹＥＳかつＳ１７０８でＹＥＳの場合、ｎｅｗＯｂｊはＩｍａｇｅ  ＸＯｂｊｅｃｔである。重複描画コマンド検知部２２１は、ｎｅｗＯｂｊのオブジェクトとｃｕｒｒｅｎｔＯｂｊＩｄにセットしたＯｂｊｅｃｔ−ＩＤのオブジェクトとにおいて、同一描画コマンド検索処理を実行する（Ｄ、図１８）。
【０１３１】
同一描画コマンド検索処理を行うにあたり、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄが１である（Ｓ１８０１）として、以後の処理の説明を行う。重複描画コマンド検知部２２１は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄに対応するＲｅｃｏｒｄＮｏのレコード内容をＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブルから取得し（Ｓ１８０２）、ｃｕｒｒｅｎｔＯｂｊにセットする（Ｓ１８０３）。
【０１３２】
次に、重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとの内容を比較する（Ｓ１８０４）。重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＦｏｒｍ  Ｔｙｐｅが一致するか否か判定する（Ｓ１８０５）。Ｓ１８０５がＹＥＳの場合、重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＢＢｏｘの値が一致するか否か判定する（Ｓ１８０６）。
【０１３３】
Ｓ１８０６がＹＥＳの場合、重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＭａｔｒｉｘの値が一致するか否か判定する（Ｓ１８０７）。Ｓ１８０７がＹＥＳの場合、重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＲｅｓｏｕｒｃｅｓＨａｓｈの値が一致するか否か判定する（Ｓ１８０８）。Ｓ１８０８がＹＥＳの場合、重複描画コマンド検知部２２１は、ＳｔｒｅａｍＨａｓｈが一致するか否かを判定する（Ｓ１８０９）。
【０１３４】
「Ｒｅｓｏｕｒｃｅ辞書データ」は、フォームに含まれるフォントを描画するための字形や特性などを示す情報である。Ｓ１８０９がＹＥＳの場合、重複描画コマンド検知部２２１は、ｎｅｗＯｂｊとｃｕｒｒｅｎｔＯｂｊとにおいてＲｅｓｏｕｒｃｅ辞書データ全体が一致するか否か判定する（Ｓ１８１０）。なお、異なるＳｔｒｅａｍデータから同じハッシュ値が得られることは非常にまれであるため、Ｓ１８０８がＹＥＳの場合には、同一描画コマンド検索処理を高速化させるために、Ｓ１８１０の処理を省略することも可能である。
【０１３５】
「Ｓｔｒｅａｍデータ」は、オブジェクトに含まれる描画コマンドのｓｔｒｅａｍデータである。重複描画コマンド検知部２２１は、Ｓ１８１０がＹＥＳの場合、Ｓｔｒｅａｍデータが一致するか否かを判定する（Ｓ１８１１）。なお、異なるＳｔｒｅａｍデータから同じハッシュ値が得られることは非常にまれであるため、Ｓ１８０９がＹＥＳの場合には、同一描画コマンド検索処理を高速化させるために、Ｓ１８１１の処理を省略することも可能である。
【０１３６】
Ｓ１８１１（もしくはＳ１８０９）でＹＥＳの場合、重複描画コマンド検知部２２１は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの値を返す（Ｓ１８１２）。他方、Ｓ１８０５からＳ１８１１のいずれかの処理でＮＯの場合、重複描画コマンド検知部２２１は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントし（Ｓ１８１３）、次のオブジェクトがある場合（Ｓ１８１４／ＹＥＳ）には、Ｓ１８０２から再度処理を行う。次のオブジェクトがない場合、重複描画コマンド検知部２２１は、同一描画コマンド検索処理の結果として、同一の描画コマンドがないことを示す「０」を返す（Ｓ１８１５）。
【０１３７】
Ｓ１８１１（もしくはＳ１８０９）でＹＥＳの場合、同一描画コマンド検索処理の結果として、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄの値を返している（Ｓ１８１２）。これは、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＲｅｃｏｒｄＮｏに対応するＯｂｊｅｃｔ−ＩＤと同一の描画コマンドが存在することを示している（Ｓ１９０１／ＹＥＳ）。
【０１３８】
この時、重複描画コマンド検知部２２１は、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＯｂｊｅｃｔ−ＩＤをｆｏｕｎｄＯｂｊＩｄにセットし（Ｓ１９０３）、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブル内のＯｂｊｅｃｔ−ＩＤ＝ｃｕｒｒｅｎｔＯｂｊＩｄのレコードにおいて、同じ描画コマンドを含むオブジェクトを示すＳａｍｅＯｂｊＬｉｓｔ［］フィールドにｆｏｕｎｄＯｂｊＩｄの値を追加する（Ｓ１９０４）。
【０１３９】
次のオブジェクトがある場合（Ｓ１９０５／ＹＥＳ）、重複描画コマンド検知部２２１は、Ｓ１７０２から再度同じ処理を実行する。次のオブジェクトがない場合（Ｓ１９０５／ＮＯ）、重複描画コマンド検知部２２１は、本処理を終了させる。
【０１４０】
Ｓ１９０１でＮＯの場合、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのＲｅｃｏｒｄＮｏに対応するＯｂｊｅｃｔ−ＩＤが示すオブジェクトとは異なる描画コマンドを含むオブジェクトが存在することを示している。この時、重複描画コマンド検知部２２１は、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルに新規のオブジェクトを追加する（Ｓ１９０２）。
【０１４１】
そして、次のオブジェクトがある場合（Ｓ１９０５／ＹＥＳ）、重複描画コマンド検知部２２１は、Ｓ１７０２から再度同じ処理を実行する。他方、次のオブジェクトがない場合（Ｓ１９０５／ＮＯ）、重複描画コマンド検知部２２１は、本処理を終了させる。
【０１４２】
次に、重複描画コマンドを削除する処理について説明する。図２０は、本実施形態に係る重複描画コマンドを削除する処理の流れを示すフローチャートである。重複描画コマンドを削除するにあたり、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄが１である（Ｓ２００１）として、以後の処理の説明を行う。
【０１４３】
重複描画コマンド削除部２２２は、Ｆｏｒｍ  ＸＯｂｊｅｃｔ管理テーブルからＲｅｃｏｒｄＮｏ＝ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄのレコードの内容を取得し、ｃｕｒｒｅｎｔＯｂｊにセットする（Ｓ２００２）。重複描画コマンド削除部２２２は、ｃｕｒｒｅｎｔＯｂｊの情報リストのうち、ＳａｍｅＯｂｊＬｉｓｔ［］が空の場合（Ｓ２００３／ＹＥＳ）、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントする（Ｓ２０１２）。
【０１４４】
そして、重複描画コマンド削除部２２２は、次のオブジェクトが存在する場合には（Ｓ２０１３／ＹＥＳ）、Ｓ２００２から再度同じ処理を実行し、次のオブジェクトが存在しない場合には（Ｓ２０１３／ＮＯ）、本処理を終了させる。
【０１４５】
ｃｕｒｒｅｎｔＯｂｊの情報リストにおいてＳａｍｅＯｂｊＬｉｓｔ［］が空ではない場合（Ｓ２００３／ＮＯ）、重複描画コマンド削除部２２２は、オブジェクトの参照先を書き換えるための情報であるｒｅｗｒｉｔｅＯｂｊＩｄにｃｕｒｒｅｎｔＯｂｊのＯｂｊｅｃｔ−ＩＤの値をコピーする（Ｓ２００４）。次に、重複描画コマンド削除部２２２は、オブジェクトを削除するための情報であるｄｅｌｅｔｅＯｂｊＬｉｓｔ［］のフィールドにｃｕｒｒｅｎｔＯｂｊのＳａｍｅＯｂｊＬｉｓｔ［］の内容をコピーする（Ｓ２００５）。
【０１４６】
次に、重複描画コマンド削除部２２２は、ｄｅｌｅｔｅＯｂｊＩｄにｄｅｌｅｔｅＯｂｊＬｉｓｔ［］の先頭の値をコピーする（Ｓ２００６）。そして、重複描画コマンド削除部２２２は、ＰＤＦファイル３０１からＯｂｊｅｃｔ−ＩＤの値がｄｅｌｅｔｅＯｂｊＩｄの値と同じであるオブジェクトを削除し（Ｓ２００７）、さらにＰＤＦファイル全体をスキャンし、ｄｅｌｅｔｅＯｂｊＩｄを参照しているオブジェクトを検索する（Ｓ２００８）。したがって、重複描画コマンド削除部２２２は、重複描画指示情報検索部として機能する。
【０１４７】
重複描画コマンド削除部２２２は、検索して見つけたオブジェクトの参照先をｒｅｗｒｉｔｅＯｂｊＩｄに書き換え（Ｓ２００９）、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］の先頭の値を削除する（Ｓ２０１０）。したがって、重複描画コマンド削除部２２２は、識別情報書換部として機能する。
【０１４８】
重複描画コマンド削除部２２２は、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］が空ではない場合、すなわち、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］に何らかの値が記載されている場合（Ｓ２０１１／ＮＯ）、Ｓ２００７から再度同様の処理を実行する。
【０１４９】
重複描画コマンド削除部２２２は、ｄｅｌｅｔｅＯｂｊＬｉｓｔ［］が空の場合（Ｓ２０１１／ＹＥＳ）、ｃｕｒｒｅｎｔＲｅｃｏｒｄＩｄを１インクリメントする（Ｓ２０１２）。検索して見つけたオブジェクトの参照先をｒｅｗｒｉｔｅＯｂｊＩｄに書き換えることで、ｃｕｒｒｅｎｔＯｂｊのＯｂｊｅｃｔ−ＩＤ、すなわち、一つの描画コマンドを使用可能にする。以後は、Ｓ２０１３と同様の処理を行う。
【０１５０】
以上説明したように、本実施形態に係るプリフライト処理部２０４は、オブジェクトを識別するための情報が異なる場合であっても、ＰＤＦファイル中において重複する同一の描画コマンドを検知することができる。そのため、プリフライト処理部２０４において、重複する描画コマンドであると判断された描画コマンドは、レンダリング処理部２１８において、オブジェクトキャッシングの対象として取り扱われる。このようにすることによって、描画コマンドの再利用オブジェクトに対してレンダリング処理を効率よく実行可能になる。
【０１５１】
図２１は、同一内容であってかつ異なるＯｂｊｅｃｔ−ＩＤであるＩｍａｇｅ  ＸＯｂｊｅｃｔ、Ｆｏｒｍ  ＸＯｂｊｅｃｔを含むＰＤＦファイル３０１の構造を例示したものである。ｐ１およびｐ２は、Ｏｂｊｅｃｔ−ＩＤは異なるものの、（ａ）および（ｂ）に示すように、同一のＦｏｒｍ  ＸＯｂｊｅｃｔを含んで構成される。
【０１５２】
この時、重複描画コマンド削除部２２２は、（ｂ）のＦｏｒｍ  ＸＯｂｊｅｃｔを削除し、（ａ）のＦｏｒｍ  ＸＯｂｊｅｃｔのＦｏｒｍ  ＸＯｂｊｅｃｔ管理テーブル内のＳａｍｅＯｂｊＬｉｓｔ［］フィールドに、（ｂ）のＦｏｒｍ  ＸＯｂｊｅｃｔのＯｂｊｅｃｔ−ＩＤを追加する。このようにすることで、ｐ２を効率よくレンダリング処理することができる。
【０１５３】
さらに、ｐ１およびｐ２は、Ｏｂｊｅｃｔ−ＩＤは異なるものの、（ｃ）および（ｄ）に示すように、同一のＩｍａｇｅ  ＸＯｂｊｅｃｔを含んで構成される。この時、重複画像データ削除部２２０は、（ｄ）のＩｍａｇｅ  ＸＯｂｊｅｃｔを削除し、（ｃ）のＩｍａｇｅ  ＸＯｂｊｅｃｔのＩｍａｇｅ  ＸＯｂｊｅｃｔ管理テーブル内のＳａｍｅＯｂｊＬｉｓｔ［］フィールドに、（ｄ）のＩｍａｇｅ  ＸＯｂｊｅｃｔのＯｂｊｅｃｔ−ＩＤを追加する。このようにすることで、ｐ２をさらに効率よくレンダリング処理することができる。
【０１５４】
以上説明したように、本実施形態においては、ＰＤＦ形式のファイルに、同一の画像データや描画コマンドが検知された場合に、それらの画像データや描画コマンドから一つを選択したオブジェクトを残す。このようにすると、ＰＤＦファイル中の再利用オブジェクトの個数を増やすことにより、オブジェクトキャッシングの効果をより高めることが可能となるため、結果的にＤＦＥでのレンダリング処理を効率よく実行することができる。
【０１５５】
また、ＰＤＦ形式のファイルにおいては、同一の画像データや描画コマンドであっても、オブジェクトの識別情報が異なる場合には従来のＤＦＥではオブジェクトキャッシングを行うことが不可能であった。しかし、本実施例においてはそのような識別情報が異なるオブジェクトに対してもオブジェクトキャッシングを行うことができる。そのため、より効率のよいレンダリング処理を実行することができる。
【０１５６】
なお、プリフライト処理部２０４の構成を図２２に示すように拡張し、入稿されたＰＤＦファイル３０１に含まれる冗長な画像データを削除し、データサイズを小さくしたＰＤＦファイル３０２を出力する構成であってもよい。このような構成の場合、レンダリング結果には影響を与えることなくＰＤＦファイル３０１のデータサイズを小さくしたＰＤＦファイル３０２を出力することができる。
【０１５７】
また、図２２に示すような構成のプリフライト処理部２０４を既存のＤＦＥに組み込むことにより、本発明と同様に、同一の画像データや描画コマンドであって、オブジェクトの識別情報が異なる場合にオブジェクトキャッシングを行うことができる。したがって、本実施形態に係るプリフライト処理部２０４を備えたＤＦＥ１００は、画像情報編集装置としても機能する。
【符号の説明】
【０１５８】
１  画像形成装置
２  クライアント端末
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  ＬＣＤ
７０  操作部
８０  バス
１００  ＤＦＥ
１０１  ネットワークＩ／Ｆ
１０２  ディスプレイ
１１０  ＤＦＥコントローラ
１１１  入出力制御部
１１２  ＵＩ制御部
１１３  主制御部
１１４  画像処理部
１１５  プリンタ制御部
１１６  画像格納部
１２０  ＲＩＰエンジン
１５０  プリントエンジン
２０１  制御部
２０２  入力部
２０４  プリフライト処理部
２０５  ノーマライズ処理部
２０６  マーク処理部
２０７  フォント処理部
２０９  ＣＭＭ処理部
２１０  Ｔｒａｐｐｉｎｇ処理部
２１１  Ｃａｌｉｂｒａｔｉｏｎ処理部
２１２  Ｓｃｒｅｅｎｉｎｇ処理部
２１３  出力部
２１８  レンダリング処理部
２１９  重複画像データ検知部
２２０  重複画像データ削除部
２２１  重複描画コマンド検知部
２２２  重複描画コマンド削除部
２２３  ＰＤＦ構造解析部
２２４  オブジェクト描画部
２２５  オブジェクト記憶部
【先行技術文献】
【特許文献】
【０１５９】
【特許文献１】特開２０１３−２０５８８６号公報
【図１】
2018058297.tif 000003
【図２】
2018058297.tif 000004
【図３】
2018058297.tif 000005
【図４】
2018058297.tif 000006
【図５】
2018058297.tif 000007
【図６】
2018058297.tif 000008
【図７】
2018058297.tif 000009
【図８】
2018058297.tif 000010
【図９】
2018058297.tif 000011
【図１０】
2018058297.tif 000012
【図１１】
2018058297.tif 000013
【図１２】
2018058297.tif 000014
【図１３】
2018058297.tif 000015
【図１４】
2018058297.tif 000016
【図１５】
2018058297.tif 000017
【図１６】
2018058297.tif 000018
【図１７】
2018058297.tif 000019
【図１８】
2018058297.tif 000020
【図１９】
2018058297.tif 000021
【図２０】
2018058297.tif 000022
【図２１】
2018058297.tif 000023
【図２２】
2018058297.tif 000024
【図２３】
2018058297.tif 000025
【図２４】
2018058297.tif 000026