(57)【要約】【課題】印刷データに対するフィルタパイプライン処理の少なくとも一部の取り消しを適切に実行することのできる印刷データ処理装置、印刷データ処理方法、及びプログラムの提供を目的とする。【解決手段】印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置であって、前記フィルタによる処理後の印刷データと処理前の印刷データとに基づいて、前記処理後の印刷データを前記処理前の印刷データに復元するための復元情報を抽出し、該復元情報を前記処理後の印刷データに含める復元情報埋め込み手段と、前記処理後の印刷データを表示装置に表示させる表示制御手段と、ユーザによる指示入力に応じ、前記処理後の印刷データに含まれている前記復元情報に基づいて前記処理前の印刷データを復元する復元手段とを有することにより上記課題を解決する。【選択図】図３
2010055302.tif 000002
【特許請求の範囲】
【請求項１】
印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置であって、
前記フィルタによる処理後の印刷データと処理前の印刷データとに基づいて、前記処理後の印刷データを前記処理前の印刷データに復元するための復元情報を抽出し、該復元情報を前記処理後の印刷データに含める復元情報埋め込み手段と、
前記処理後の印刷データを表示装置に表示させる表示制御手段と、
ユーザによる指示入力に応じ、前記処理後の印刷データに含まれている前記復元情報に基づいて前記処理前の印刷データを復元する復元手段とを有することを特徴とする印刷データ処理装置。
【請求項２】
前記復元情報は、前記処理前の印刷データに含まれる画像データと前記処理後の印刷データに含まれる画像データとの差分を含むことを特徴とする請求項１記載の印刷データ処理装置。
【請求項３】
前記フィルタは、前記画像データに対して不可逆変換を実行することを特徴とする請求項２記載の印刷データ処理装置。
【請求項４】
前記復元情報を埋め込む回数の上限値の入力を受け付ける上限値受け付け手段を有することを特徴とする請求項１乃至３いずれか一項記載の印刷データ処理装置。
【請求項５】
前記印刷データを前記プリンタに送信する前に、該印刷データに含まれている前記復元情報を削除する復元情報削除手段を有することを特徴とする請求項１乃至４いずれか一項記載の印刷データ処理装置。
【請求項６】
印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置が実行する印刷データ処理方法であって、
前記フィルタによる処理後の印刷データと処理前の印刷データとに基づいて、前記処理後の印刷データを前記処理前の印刷データに復元するための復元情報を抽出し、該復元情報を前記処理後の印刷データに含める復元情報埋め込み手順と、
前記処理後の印刷データを表示装置に表示させる表示制御手順と、
ユーザによる指示入力に応じ、前記処理後の印刷データに含まれている前記復元情報に基づいて前記処理前の印刷データを復元する復元手順とを有することを特徴とする印刷データ処理方法。
【請求項７】
前記復元情報は、前記処理前の印刷データに含まれる画像データと前記処理後の印刷データに含まれる画像データとの差分を含むことを特徴とする請求項６記載の印刷データ処理方法。
【請求項８】
前記フィルタは、前記画像データに対して不可逆変換を実行することを特徴とする請求項７記載の印刷データ処理方法。
【請求項９】
前記復元情報を埋め込む回数の上限値の入力を受け付ける上限値受け付け手順を有することを特徴とする請求項６乃至８いずれか一項記載の印刷データ処理方法。
【請求項１０】
前記印刷データを前記プリンタに送信する前に、該印刷データに含まれている前記復元情報を削除する復元情報削除手順を有することを特徴とする請求項６乃至９いずれか一項記載の印刷データ処理方法。
【請求項１１】
印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置に、
前記フィルタによる処理後の印刷データと処理前の印刷データとに基づいて、前記処理後の印刷データを前記処理前の印刷データに復元するための復元情報を抽出し、該復元情報を前記処理後の印刷データに含める復元情報埋め込み手順と、
前記処理後の印刷データを表示装置に表示させる表示制御手順と、
ユーザによる指示入力に応じ、前記処理後の印刷データに含まれている前記復元情報に基づいて前記処理前の印刷データを復元する復元手順とを実行させるためのプログラム。
【請求項１２】
前記復元情報は、前記処理前の印刷データに含まれる画像データと前記処理後の印刷データに含まれる画像データとの差分を含むことを特徴とする請求項１１記載のプログラム。
【請求項１３】
前記フィルタは、前記画像データに対して不可逆変換を実行することを特徴とする請求項１２記載のプログラム。
【請求項１４】
前記復元情報を埋め込む回数の上限値の入力を受け付ける上限値受け付け手順を有することを特徴とする請求項１１乃至１３いずれか一項記載のプログラム。
【請求項１５】
前記印刷データを前記プリンタに送信する前に、該印刷データに含まれている前記復元情報を削除する復元情報削除手順を有することを特徴とする請求項１１乃至１４いずれか一項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ処理装置、印刷データ処理方法、及びプログラムに関し、特に印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置、印刷データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、Ｗｉｎｄｏｗ（登録商標）系のＯＳでは、印刷データを生成するための各種の画像処理機能がプリンタドライバに固定的に組み込まれていた。一方、Ｗｉｎｄｏｗｓ（登録商標）Ｖｉｓｔａでは、Ｌｉｎｕｘ（登録商標）等と同様に、フィルタによるパイプライン処理が採用されている。フィルタによるパイプライン処理では、それぞれ独立した画像処理モジュールである複数のフィルタが、印刷設定時に設定された順番で処理を実行することにより目的とする印刷データが生成される。
【特許文献１】特開２００６−２０９５４３号公報
【特許文献２】特開２００６−０５３６９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のフィルタパイプライン処理では、各フィルタの処理前のデータは当該フィルタの処理後に破棄されていた。したがって、プレビュー表示等を行う場合、一部のフィルタ処理を単純に元に戻す（取り消す）ことはできず、当該フィルタを利用対象から除いて改めて最初からパイプライン処理を実行する必要があった。
【０００４】
本発明は、上記の点に鑑みてなされたものであって、印刷データに対するフィルタパイプライン処理の少なくとも一部の取り消しを適切に実行することのできる印刷データ処理装置、印刷データ処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００５】
そこで上記課題を解決するため、本発明は、印刷データに対してフィルタのパイプライン処理を実行する印刷データ処理装置であって、前記フィルタによる処理後の印刷データと処理前の印刷データとに基づいて、前記処理後の印刷データを前記処理前の印刷データに復元するための復元情報を抽出し、該復元情報を前記処理後の印刷データに含める復元情報埋め込み手段と、前記処理後の印刷データを表示装置に表示させる表示制御手段と、ユーザによる指示入力に応じ、前記処理後の印刷データに含まれている前記復元情報に基づいて前記処理前の印刷データを復元する復元手段とを有することを特徴とする。
【０００６】
このような印刷データ処理装置では、印刷データに対するフィルタパイプライン処理の少なくとも一部の取り消しを適切に実行することができる。
【発明の効果】
【０００７】
本発明によれば、印刷データに対するフィルタパイプライン処理の少なくとも一部の取り消しを適切に実行することのできる印刷データ処理装置、印刷データ処理方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における印刷システムの構成例を示す図である。同図において、ホストコンピュータ１０及び印刷装置２０は、ＬＡＮ（Local Area Network）等のネットワーク（有線又は無線の別は問わない。）を介して接続されている。
【０００９】
ホストコンピュータ１０は、ユーザによる指示入力に応じ、印刷装置２０に対して印刷ジョブを投入する（印刷データを送信する）コンピュータである。同図において、ホストコンピュータ１０は、プリンタドライバ１、フィルタ７−１〜７−ｎ（総称する場合「フィルタ７」という。）、アプリケーション２、及び送信モジュール９等のソフトウェアを有する。なお、ホストコンピュータ１０は、本実施の形態において印刷データ処理装置の一例である。
【００１０】
プリンタドライバ１は、アプリケーション２において印刷対象とされたデータの印刷データ（印刷装置２０が解釈可能なデータ）を生成するプログラムであり、ＵＩモジュール３、描画処理モジュール４、フィルタマネージャ５、及びプレビューモジュール６等を含む。
【００１１】
ＵＩモジュール３は、印刷条件の設定を行わせるための画面（ダイアログ）等を表示装置に表示したり、当該画面を介して入力される設定情報をメモリに記録したりする。描画処理モジュール４は、印刷条件に応じた印刷データ（描画データ）を生成するための処理を実行する。フィルタマネージャ５は、描画処理モジュール４による処理において使用される各種のフィルタ７のパイプライン処理（直列的な処理）を制御する。プレビューモジュール６は、描画処理モジュール４によって生成される印刷データのプレビュー表示を行う。
【００１２】
各フィルタ７は、印刷データに対してそれぞれに固有の処理（画像処理等）を実行する。なお、プリンタドライバ１は、ホストコンピュータ１０内に実装されているフィルタ７のみならず、他のコンピュータに実装されているフィルタをもネットワークを介して呼び出す（利用する）ことができる。送信モジュール９は、印刷データを印刷装置２０に送信する。
【００１３】
なお、矢印１１は、アプリケーション２からＵＩモジュール３に対して指定された印刷条件の流れを示す。矢印１２はアプリケーション２から描画処理モジュール４に対して入力される印刷対象のデータの流れを示す。矢印１３は、ＵＩモジュール３から描画処理モジュール４に渡される印刷条件や使用するフィルタの一覧情報の流れを示す。矢印１４は、描画処理モジュール４とフィルタマネージャ５との間でやり取りされるフィルタ情報や印刷データの流れを示す。矢印１６、１７、及び１８は、フィルタマネージャ５と各フィルタ７間でやり取りされる印刷データの流れを示す。矢印１９はＵＩモジュール３からプレビューモジュール６に出力されるプレビュー要求を示す。矢印２０及び２１はプレビューモジュール６が描画処理モジュール４又はフィルタマネージャ５から取得する印刷データの流れを示す。矢印２２は、描画処理モジュール４が送信モジュール９に出力する印刷データの流れを示す。矢印２３は、送信モジュール９が印刷装置２０に対して送信する印刷データの流れを示す。
【００１４】
印刷装置２０は、いわゆるプリンタであり、ホストコンピュータ１０より送信される印刷データを印刷用紙に印字する。
【００１５】
図２は、本発明の実施の形態におけるホストコンピュータのハードウェア構成例を示す図である。図２のホストコンピュータ１０は、それぞれバスＢで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有するように構成される。
【００１６】
ホストコンピュータ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってホストコンピュータ１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００１８】
以下、図１のホストコンピュータ１０の処理手順について説明する。図３は、ホストコンピュータによる処理手順を説明するためのフローチャートである。
【００１９】
ステップＳ１０１及びステップＳ１０２では、ＵＩモジュール３によって表示装置１０６に表示されている印刷条件設定画面を介してユーザによって印刷条件の設定、及び利用するフィルタの選択等が行われる。なお、ＵＩモジュール３は、ユーザによる指示入力に応じたアプリケーション２からの印刷要求に応じて印刷条件設定画面を表示させる。
【００２０】
図４は、印刷条件設定画面の表示例を示す図である。同図において印刷条件設定画面５１０は、印刷条件設定領域５１１、フィルタ選択ボタン５１２、プレビューボタン５１３、及び取り消し上限入力領域５１４等を有する。
【００２１】
印刷条件設定領域５１１は、印刷条件を設定させるための領域であり、同図では、印刷条件の設定項目として用紙、向き、及び色が例示されている。ステップＳ１０１では、印刷条件設定画面５１１において印刷条件が設定される。ＵＩモジュール３は、設定された印刷条件をメモリ装置１０３に記録する。
【００２２】
フィルタ選択ボタン５１２が押下されると、ＵＩモジュール３は、フィルタ一覧ダイアログを表示させる。図５は、フィルタ一覧ダイアログの表示例を示す図である。
【００２３】
フィルタ一覧ダイアログ５２０は、リストボックス５２１を有する。リストボックス５２１には選択されたフィルタが実行順に表示される。同図では、既に二つのフィルタ（色補正を実行するフィルタ（色補正フィルタ）、及び集約を実行するフィルタ（２ｉｎ１フィルタ）が選択された状態が示されている。新たなフィルタの選択（追加）は、追加ボタン５２２の押下に応じてＵＩモジュール３が表示させるフィルタ選択ダイアログを介して行われる。
【００２４】
図６は、フィルタ選択ダイアログの表示例を示す図である。同図のフィルタ選択ダイアログ５３０にはコンボボックス５３１が配置されている。コンボボックス５３１には選択可能なフィルタの名前（フィルタ名）一覧が選択肢として表示される。当該一覧は、ＵＩモジュール３が、補助記憶装置１０２に保存されているフィルタ７やネットワークを介して接続されているコンピュータに保存されているフィルタ７を検索し、生成したものである。コンボボックス５３１においてフィルタが選択され、フィルタ選択ダイアログ５３０における非図示のＯＫボタンが押下されると、ＵＩモジュール３は、選択されたフィルタをフィルタ一覧ダイアログ５２０のリストボックス５２１の末尾に追加する。
【００２５】
ステップＳ１０２では、以上のような操作により利用するフィルタとフィルタの実行順が設定される。また、印刷条件設定ダイアログ５１０の取り消し上限入力領域５１４には、フィルタ処理の取り消し（Ｕｎｄｏ）を最大で何回行うか（取り消し上限回数）が入力される。ＵＩモジュール３は、利用するフィルタとフィルタの実行順を示すリスト（以下、「フィルタ実行順リスト」という。）と取り消し上限回数とをメモリ装置１０３に記録する。
【００２６】
なお、本実施の形態では、図７に示されるような画像データが印刷対象とされた場合を例とする。図７は、印刷対象とされた画像データの例を示す図である。同図において、画像データ４００は、例えば、デジタルカメラによって文書を撮像することにより得られた画像データである。
【００２７】
続いて、印刷条件設定ダイアログ５１０においてプレビューボタン５１３が押下されると、描画モジュール４は、アプリケーション２より画像データ４００を取得する（Ｓ１０３）。
【００２８】
続いて、描画処理モジュール４は、アプリケーション２より取得した画像データ４００を印刷装置２０が解釈可能なＲＡＷデータ（ＰＤＬ（Page Description Language）データ）に変換し、ＲＡＷデータを含む印刷データをフィルタマネージャ５に出力する（Ｓ１０４）。フィルタマネージャ５は、当該印刷データを補助記憶装置１０２に保存する（Ｓ１０５）。
【００２９】
図８は、フィルタ処理前の印刷データの例を示す図である。同図の印刷データ６１０は、ＸＭＬ（eXtensible Markup Language）形式によって記述されており、ｉｍｇ要素６１１、ｉｍａｇｅｌｉｓｔ要素６１２、及びｄｒａｗ要素６１３を含む。ｉｍｇ要素６１１のｓｒｃ属性の値は、ＲＡＷデータをエンコードしたものである。
【００３０】
ｉｍａｇｅｌｉｓｔ要素６１２は、ＲＡＷデータ（ｉｍｇ要素６１１）ごとの書誌情報である。すなわち、ｉｍａｇｅｌｉｓｔ要素６１２は、ＲＡＷデータごとに当該ＲＡＷデータの書誌情報を値とするｉｍａｇｅ要素を子要素として有する。同図では、ＲＡＷデータは一つであるため（印刷対象は１ページ文の画像データであるため）、一つのｉｍａｇｅ要素６１２１が含まれている。ｉｍａｇｅ要素６１２１とｉｍｇ要素６１１との関連付けは、ｉｍａｇｅ要素６１２１のｓｒｃ属性の値によってなされている。すなわち、当該ｓｒｃ属性の値は、ｉｍｇ要素６１１のｓｒｃ属性の冒頭部分（「ｄａｔａ：ｉｍａｇｅ／ＲＡＷ：ｂａｓｅ６４」）と一致する。
【００３１】
ｉｍａｇｅ要素６１２１は、ｎａｍｅ要素、ｈｉｓｔｏｒｙ要素、及びＦｉｌｔｅｒＣｏｎｔ要素を子要素として含む。ｎａｍｅ要素の値は、補助記憶装置１０２に記憶された当該印刷データ６１０のファイル名を示す。ｈｉｓｔｏｒｙ要素の値は、ＲＡＷデータに対して実行されたフィルタ処理の種類を示す。この段階ではまだフィルタ処理は実行されていないため、そのことを示す「ＮＯＮ」が記述されている。ＦｉｌｔｅｒＣｏｕｎｔ要素の値は、フィルタ処理の回数又は順番を示す。この段階ではまだフィルタ処理は実行されていないため、「０」が記述されている。
【００３２】
ｄｒａｗ要素は、ＲＡＷデータに関する描画命令であり、描画位置及びサイズがｄｒａｗ要素の属性として含まれている。
【００３３】
続いて、フィルタマネージャ５は、メモリ装置１０３に記録されているフィルタ実行順リストの中で一番目のフィルタ７を呼び出す。呼び出されたフィルタ７（以下、「カレントフィルタ」という。）は、印刷データ６１０に対して当該フィルタ７に固有のフィルタ処理を実行し、実行結果の印刷データをメモリ装置１０３に出力（記録）する（Ｓ１０６）。なお、本実施の形態では、色補正フィルタ→２ｉｎ１フィルタの順でフィルタ実行順リストに含まれていることとする。したがって、ここでは、色補正フィルタによってＲＡＷデータに対して色補正処理が実行され、その結果として出力される印刷データがメモリ装置１０３に記録される。
【００３４】
図９は、色補正フィルタより出力される印刷データの例を示す図である。同図の印刷データ６２０は、図８の印刷データ６１０と同様の構成を有する。
【００３５】
すなわち、ｉｍｇ要素６２１のｓｒｃ属性の値は、ＲＡＷデータに対して色補正が実行されることにより出力されたデータ（色補正データ）がエンコードされたものである。
【００３６】
また、ｉｍａｇｅｌｉｓｔ要素６２２は、色補正データ（ｉｍｇ要素６２１）の書誌情報である。ｉｍａｇｅｌｉｓｔ要素６２２の構成は、図１０において説明した通りである。すなわち、ｉｍａｇｅ要素６２２１の子要素であるｈｉｓｔｏｒｙ要素の値は、色補正フィルタによって実行されたフィルタ処理を示す。また、色補正フィルタは、１つ目（１番目）のフィルタ処理を実行したためＦｉｌｔｅｒＣｏｕｎｔ要素の値は、「１」とされている。
【００３７】
続いて、フィルタマネージャ５は、カレントフィルタがセキュリティフィルタであるか否かを判定する（Ｓ１０７）。ここで、セキュリティフィルタとは、例えば、コピー禁止目的やセキュリティトレース目的のウォーターマーク又は地紋等のセキュリティ情報を画像データに対して合成する処理を実行するフィルタをいう。なお、各フィルタがセキュリティフィルタであるか否かの判断は、各フィルタに問い合わせてもよいし、フィルタごとにセキュリティフィルタか否かを判断するための情報を補助記憶装置１０３に保存しておき、当該情報に基づいて判断してもよい。前者の場合、各フィルタは、当該問い合わせに対するインタフェースを備えている必要がある。
【００３８】
カレントフィルタがセキュリティフィルタでない場合、フィルタマネージャ５は、フィルタ処理の実行回数（当該印刷ジョブにおける累積実行回数）が取り消し上限回数以下であるか否かを判定する（Ｓ１０８）。
【００３９】
続いて、フィルタマネージャ５は、印刷データ６２０と印刷データ６１０との差分情報を抽出する（Ｓ１０９）。続いて、カレントフィルタは、抽出された差分情報を印刷データ６２０に埋め込む（書き込む）（Ｓ１１０）。
【００４０】
例えば、図１０は、色補正処理による差分情報が埋め込まれた印刷データの例を示す図である。図１０中、図９又は図７と同一部分には同一符号を付し、その説明は省略する。
【００４１】
図１０に示される印刷データ６２０ａは、印刷データ６２０に対して印刷データ６１０との差分情報が追加された印刷データである。ここで、ｉｍｇ要素６１１ａ及びｉｍａｇｅｌｉｓｔ要素６１２ａが差分情報を構成する。
【００４２】
すなわち、ｉｍｇ要素６１１ａのｓｒｃ属性の値は、図８のｉｍｇ要素６１１のｓｒｃ属性の値が書き換えられたものであり、色補正データに対するＲＡＷデータの差分を示すデータ（以下「差分データ」という。）がエンコードされたものである。また、ｉｍａｇｅｌｉｓｔ要素６１２ａの子要素であるｉｍａｇｅ要素６１２１ａは、図８のｉｍａｇｅ要素６１２１に対して新たにＰｏｓｉｔｉｏｎ要素６１２１ａ−１が追加されている。Ｐｏｓｉｔｉｏｎ要素６１２１ａ−１は、色補正フィルタによる処理を取り消す際に色補正データに対して差分データを適用する位置（範囲）情報である。
【００４３】
ここで、差分データは、例えば、色補正データとＲＡＷデータとの画素値の差分によって構成されるデータである。但し、差分データは、フィルタの種類によって画素値の差分に限定されない。すなわち、フィルタ処理前の状態を復元するために必要なデータであればどのようなものでもよい。例えば、不可逆変換を実行するフィルタの場合、当該不可逆変換によって欠落してしまうデータであってもよい。
【００４４】
なお、コメント６２５、６２６、６２７、及び６２８は、当該コメントの直下の記述の意味を後述の処理において識別するためにフィルタマネージャ５が付加する文字列である。例えば、コメント６２５及びコメント６２７は、色補正データに対するＲＡＷデータの差分情報であることを示す。また、コメント６２６及びコメント６２８は、色補正データ又は色補正データの書誌情報であることを示す。
【００４５】
続いて、フィルタマネージャ５は、ステップＳ１０５において保存しておいた印刷データ１１０を削除する（Ｓ１１１）。したがって、ＲＡＷデータに関しては差分データのみが印刷データ６２０ａ内に保持されることになる。
【００４６】
上記ステップＳ１０５〜Ｓ１１１は、フィルタ実行順リストに含まれる全てのフィルタ７についてフィルタ実行順リストの順番で実行される。本実施の形態の場合、続けて２ｉｎ１フィルタについてステップＳ１０５〜Ｓ１１１が実行される。この際、ステップＳ１０５では、印刷データ１２０が差分情報を抽出するために保存される。ステップＳ１０６では、２ｉｎ１フィルタによって集約（２ｉｎ１）処理が実行され新たな印刷データが生成される。続いて、ステップＳ１０９では、集約処理の結果生成された印刷データと保存されている印刷データ６２０との差分情報が抽出される。続いて、ステップＳ１１０では、新たな印刷データに対して当該差分情報が埋め込まれる。
【００４７】
図１１は、２ｉｎ１処理による差分情報が埋め込まれた印刷データの例を示す図である。図１１中、図１０と同一部分には同一符号を付し、その説明は省略する。また、ｉｍｇ要素６１１ａ及びｉｍｇ要素６２１の内容（記述）は、便宜上、図示を省略している。
【００４８】
印刷データ６３０は、印刷データ６２０ａに対してコメント６３１及びｄａｔａｃｏｎｖｅｒｔ要素６３２が追加されたものである。
【００４９】
ｄａｔａｃｏｎｖｅｒｔ要素６３２は、２ｉｎ１フィルタによって付加される情報であり、２ｉｎ１フィルタによる処理内容を示す。すなわち、ｄａｔａｃｏｎｖｅｒｔ要素の子要素であるｄａｔａ要素は、ｚｏｏｍ要素、ｐｏｓｉｔｉｏｎ要素、ｈｉｓｔｏｒｙ要素、及びＦｉｌｔｅｒＣｏｕｎｔ要素を含む。ｚｏｏｍ要素の値は、集約の倍率（％）を示す。ｐｏｓｉｔｉｏｎ要素の値は、集約の方向（左から右へ（ＬＥＦＴ）又は右から左へ（ＲＩＧＨＴ）を示す。ｈｉｓｉｔｏｒｙ要素及びＦｉｌｔｅｒＣｏｕｎｔ要素は、既に説明したｉｍａｇｅｌｉｓｔ要素内のｈｉｓｉｔｏｒｙ要素及びＦｉｌｔｅｒＣｏｕｎｔ要素と同義である。
【００５０】
コメント６３１は、フィルタマネージャ５によって差分情報として付加される情報であり、ｄａｔａｃｏｎｖｅｒｔ要素６３２が２番目のフィルタである２ｉｎ１フィルタによる処理内容を示すものであることを示す。
【００５１】
ところで、印刷データ６３０には、集約処理の実行結果としての画像データは含まれていない。これは、集約処理は、画像データの座標変換に過ぎず、画像データそのもの（画像データの各画画素値等）は変化しないからである。したがって、集約結果に対する色補正データ（集約処理前のデータ）の差分データも印刷データ６３０には含まれていない。より一般化していえば、フィルタ処理が可逆変換である場合、必ずしも差分データを印刷データ内に記録しておく必要はない。当該可逆変換に関するパラメータ（本実施の形態におけるｄａｔａｃｏｎｖｅｒｔ要素６３２）のみが保持されていればよい。可逆変換であれば、当該パラメータに基づいてフィルタ処理前の印刷データを復元できるからである。
【００５２】
また、ｄａｔａｃｏｎｖｅｒｔ要素は、印刷データを出力（表示や印刷等）する手段（プレビューモジュール６や印刷装置２０等）が実行すべき変換処理であることを示す。すなわち、本実施の形態における２ｉｎ１フィルタは、集約処理結果の画像データを生成するフィルタではなく、集約結果を得るためのパラメータ（ｄａｔａｃｏｎｖｅｒｔ要素）を集約処理前の印刷データに対して付加するフィルタ７である。但し、２ｉｎ１フィルタを集約処理の結果としての画像データを生成するように構成した場合、当該集約処理の結果としての画像データ（集約データ）と共に、当該集約データに対する色補正処理データの差分が色補正データそのものの代わりに印刷データ６３０に含まれる。また＜ｄａｔａｃｏｎｖｅｒｔ＞タグは、＜ｉｍａｇｅｌｉｓｅｔ＞となり、＜ｄａｔａ＞タグは、＜ｉｍａｇｅ＞タグとなる。
【００５３】
なお、カレントフィルタがセキュリティフィルタである場合（Ｓ１０７でＹＥＳ）、又はフィルタ処理の回数が取り消し上限回数を超える場合（Ｓ１０８でＮＯ）、差分情報の抽出（Ｓ１０９）及び差分情報の埋め込み（Ｓ１１０）は実行されない。カレントフィルタがセキュリティフィルタである場合に差分情報が印刷データに埋め込まれないのは、プリンタドライバ１によって生成される印刷データがそのまま補助記憶装置１０２内に保存され管理される場合を想定しているからである。この場合、仮に、セキュリティフィルタについても差分情報が印刷データに埋め込まれているとすると、当該差分情報に基づいてウォーターマーク等が付加されていることが認識されてしまい、ウォーターマーク等が付加される前の印刷データが比較的容易に復元されてしまうからである。そこで、斯かる事態の発生を防止するため、本実施の形態ではセキュリティフィルタに関しては差分情報の埋め込みは実行しないようにしている。
【００５４】
また、フィルタ処理の回数が取り消し上限関数を超えた場合に差分情報が埋め込まれないのは。差分情報の蓄積による印刷データの肥大化を抑止するためのである。差分情報を保持することは、フィルタ処理前のデータ全部を保持する場合に比べて保持されるためのデータ量を著しく削減することができる。しかし、差分情報であっても、蓄積量が増加すればメモリの消費量等が増大してしまうからである。
【００５５】
フィルタ実行順リストに含まれている全てのフィルタ７について処理が完了すると（Ｓ１１３）、処理の制御はＵＩモジュール３に戻り、ＵＩモジュール３によってプレビューモジュール６が呼び出される（Ｓ１１４）。続いて、プレビューモジュール６は、フィルタ処理において最後に出力された印刷データ（本実施の形態では、印刷データ６３０）に基づいてプレビュー用の画像データ（プレビュー画像）を生成し（Ｓ１１５）、当該プレビュー画像を含むプレビュー画面を表示装置１０６に表示させる（Ｓ１１６）。なお、プレビュー画像の生成において、プレビューモジュール６は、フィルタ処理による最終的な画像データ（ｉｍｇ要素６２１における色補正データ）に対して、ｄａｔａｃｏｎｖｅｒｔ要素６３２に記述された処理（集約処理のための座標変換）を実行する。なお、ｉｍｇ要素６２１が最終的な画像データであることは、ＦｉｌｔｅｒＣｏｕｎｔの値が最も大きいｉｍａｇｅ要素６２２１におけるｓｒｃ属性の値に基づいて判定される。
【００５６】
図１２は、プレビュー画面の表示例を示す図である。同図において、プレビュー画面５４０は、プレビュー表示領域５４１、フィルタ実行順リスト表示領域５４２、印刷ボタン５４３、取り消しボタン５４４、やり直しボタン５４５、追加ボタン５４６、及び削除ボタン５４７等を有する。
【００５７】
プレビュー表示領域５４１には、プレビュー画像が表示される。同図では、印刷データ６３０に基づく、色補正処理及び集約処理が行われた画像データが表示されている。フィルタ実行順リスト表示領域５４２には、フィルタ実行順リストに含まれているフィルタ７のフィルタ名の一覧が表示される。印刷ボタン５４３は印刷指示を受け付けるためのボタンである。取り消しボタン５４４は、フィルタ処理の取り消し指示を受け付けるためのボタンである。追加ボタン５４６及び削除ボタン５４７は、フィルタ実行順リスト表示領域５４２への新たなフィルタ７の追加指示又は既存のフィルタ７の削除指示を受け付けるためのボタンである。やり直しボタン５４５は、新たなフィルタ７の追加又は既存のフィルタ７の削除が行われた場合に、プレビュー表示のやり直し指示を受け付けるためのボタンである。
【００５８】
例えば、プレビュー画像を確認したユーザが、フィルタ実行順リスト表示領域５４２における末尾のフィルタ（２ｉｎ１フィルタ）による処理は不要であると判断し、当該フィルタを選択し、取り消しボタン５４４を押下したとする。
【００５９】
取り消しボタン５４４が押下されると（Ｓ１１７でＹＥＳ）、フィルタマネージャ５は、コメント６３１に基づいて、ｄａｔａｃｏｎｖｅｒｔ要素６３２が２ｉｎ１フィルタに関する記述であることを判定し、印刷データ６３０よりコメント６３１及びｄａｔａｃｏｎｖｅｒｔ要素６３２を削除することにより印刷データ６２０ａを復元する（Ｓ１１８）。
【００６０】
続いて、プレビューモジュール６は、復元された印刷データ６２０ａに基づいてプレビュー画像を生成し、プレビュー画面５４０を表示させる（Ｓ１１４〜Ｓ１１６）。プレビュー画面５４０において、色補正フィルタが選択され、取り消しボタン５４４が再度押下されると（Ｓ１１７でＹＥＳ）、フィルタマネージャ５は、印刷データ６２０ａに含まれている差分情報等に基づいて印刷データ６１０を復元する（Ｓ１１８）。
【００６１】
より詳しくは、フィルタマネージャ５は、コメント６２５及びコメント６２７に基づいて、ｉｍｇ要素６１１ａ及びｉｍａｇｅｌｉｓｔ要素６１２ａが差分情報であることを識別する。また、コメント６２６及びコメント６２８に基づいて、ｉｍｇ要素６２１及びｉｍａｇｅｌｉｓｔ要素６２２が色補正フィルタによって付加（生成）された情報（すなわち、色補正データに関する情報）であることを識別する。そこで、まず、フィルタマネージャ５は、ｉｍｇ要素６２１のｓｒｃ属性の値（すなわち、色補正データ）に対してｉｍｇ要素６１１ａのｓｒｃ属性の値（すなわち、差分データ）をＰｏｓｉｔｉｏｎ要素６１２１ａ―１の位置情報に基づいて合成する。これにより、ＲＡＷデータが復元される。続いて、当該ＲＡＷデータと、印刷データ６２０ａにおいて色補正フィルタが付加した情報以外の情報（すなわち、ｉｍａｇｅｌｉｓｅｔ要素６１２ａ（但し、Ｐｏｓｉｔｉｏｎ要素６１２１ａ−１は除く）及びｄｒａｗ要素６１２）とに基づいて印刷データ６１０を復元する。
【００６２】
続いて、プレビューモジュール６は、復元された印刷データ６１０に基づいてプレビュー画像を生成し、プレビュー画面５４０を表示させる（Ｓ１１４〜Ｓ１１６）。
【００６３】
なお、プレビュー画面５４０を確認したユーザが、いずれかのフィルタ処理の取り消し後、又は取り消しを行うまでもなく所望の印刷結果が得られると判断した場合、印刷ボタン５４３が押下される。
【００６４】
印刷ボタン５４３の押下に応じ、描画モジュール４は、その時点でプレビュー対象とされている印刷データより、印刷に不要な差分情報等の削除を行う（Ｓ１１９）。例えば、プレビュー対象が印刷データ６２０ａ又は６３０であれば、ｉｍｇ要素６１１ａ、ｉｍａｇｅｌｉｓｔ６１２ａ、コメント６２５、コメント６２６、コメント６２７、コメント６２８、及びコメント６３１（コメント６３１に関しては印刷データ６３０についてのみ）等が削除される。また、プレビュー対象が印刷データ６１０であれば、削除される部分は無い。
【００６５】
続いて、送信モジュール９が印刷データを印刷装置２０に送信すると（Ｓ１２０）、印刷装置２０は、印刷データの印刷を実行する（Ｓ１２１）。
【００６６】
なお、プレビュー画面５４０において、追加ボタン５４６又は削除ボタン５４７の操作によりフィルタ７の追加又は削除が行われた後、やり直しボタン５４５が押下されると、ステップＳ１０３以降の処理が実行される。
【００６７】
上述したように、本実施の形態におけるホストコンピュータ１０によれば、フィルタ処理前の印刷データを復元するための差分情報（復元情報）をフィルタ処理後の印刷データに含めておくため、当該差分情報に基づいてフィルタ処理の取り消しを適切に実行することができる。
【００６８】
また、印刷データ内に保持されるのは、フィルタ処理前の全データではなくフィルタ処理の前後の差分であるため、印刷データのデータ量の肥大化及び記憶装置の消費量を抑制することができる。
【００６９】
また、差分情報は印刷データ内に保持されるため、印刷データのポータビリティを向上させることができる。すなわち、印刷データを他のコンピュータ等において利用する場合、当該印刷データのみを他のコンピュータに送信すればよい。
【００７０】
また、フィルタ処理の取り消しは、フィルタマネージャ５によって実行されるため、フィルタごとに取り消し機能を持つ必要が無く、汎用のフィルタが利用される場合であっても取り消し機能を実現することができる。
【００７１】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態における印刷システムの構成例を示す図である。
【図２】本発明の実施の形態におけるホストコンピュータのハードウェア構成例を示す図である。
【図３】ホストコンピュータによる処理手順を説明するためのフローチャートである。
【図４】印刷条件設定画面の表示例を示す図である。
【図５】フィルタ一覧ダイアログの表示例を示す図である。
【図６】フィルタ選択ダイアログの表示例を示す図である。
【図７】印刷対象とされた画像データの例を示す図である。
【図８】フィルタ処理前の印刷データの例を示す図である。
【図９】色補正フィルタより出力される印刷データの例を示す図である。
【図１０】色補正処理による差分情報が埋め込まれた印刷データの例を示す図である。
【図１１】２ｉｎ１処理による差分情報が埋め込まれた印刷データの例を示す図である。
【図１２】プレビュー画面の表示例を示す図である。
【符号の説明】
【００７３】
１            プリンタドライバ
２            アプリケーション
３            ＵＩモジュール
４            描画処理モジュール
５            フィルタマネージャ
６            プレビューモジュール
７            フィルタ
９            送信モジュール
１０          ホストコンピュータ
２０          印刷装置
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
Ｂ            バス
【図１】
2010055302.tif 000003
【図２】
2010055302.tif 000004
【図３】
2010055302.tif 000005
【図４】
2010055302.tif 000006
【図５】
2010055302.tif 000007
【図６】
2010055302.tif 000008
【図７】
2010055302.tif 000009
【図８】
2010055302.tif 000010
【図９】
2010055302.tif 000011
【図１０】
2010055302.tif 000012
【図１１】
2010055302.tif 000013
【図１２】
2010055302.tif 000014