(57)【特許請求の範囲】
【請求項１】
ドキュメント間の差分を抽出する画像処理装置であって、
対象とする対象ドキュメントのベクタデータと、前記画像処理装置に既に保存されている保存済みドキュメントのベクタデータとを比較する比較手段と、
前記比較手段による比較の結果、異なっている場合に、前記対象ドキュメントのベクタデータ及び前記保存済みドキュメントのベクタデータをテキストデータに変換し、変換されたそれぞれのテキストデータの差分を抽出することによって、テキスト形式の差分データを生成し保存する差分データ生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記差分データ生成手段によって生成された差分データを前記保存済みドキュメントにリンクするリンク手段を更に備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記比較手段による比較の結果、異なっている場合に、前記対象ドキュメントのベクタデータからディスプレイリストを生成するディスプレイリスト生成手段と、
前記ディスプレイリスト生成手段によって生成された前記ディスプレイリストを前記保存済みドキュメントに付加し保存する付加手段とを更に備え、
前記ディスプレイリスト生成手段によって生成された前記ディスプレイリストを用いて印刷することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記保存済みドキュメントのベクタデータをテキストデータに変換し、該テキストデータを前記差分データ生成手段によって生成された差分データと合成する合成手段を更に備え、
前記合成手段によって合成されたテキストデータをベクタデータに変換し、該ベクタデータから生成されたディスプレイリストを用いて印刷することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記ベクタデータは、ドキュメントを記述するページ記述言語から生成されたことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
ドキュメント間の差分を抽出する画像処理装置において実行される画像処理方法であって、
前記画像処理装置の比較手段が、対象とする対象ドキュメントのベクタデータと、前記画像処理装置に既に保存されている保存済みドキュメントのベクタデータとを比較する比較工程と、
前記画像処理装置の差分データ生成手段が、前記比較工程における比較の結果、異なっている場合に、前記対象ドキュメントのベクタデータ及び前記保存済みドキュメントのベクタデータをテキストデータに変換し、変換されたそれぞれのテキストデータの差分を抽出することによって、テキスト形式の差分データを生成し保存する差分データ生成工程と
を備えることを特徴とする画像処理方法。
【請求項７】
ドキュメント間の差分を抽出するための画像処理プログラムであって、
対象とする対象ドキュメントのベクタデータと、画像処理装置に既に保存されている保存済みドキュメントのベクタデータとを比較する比較手段と、
前記比較手段による比較の結果、異なっている場合に、前記対象ドキュメントのベクタデータ及び前記保存済みドキュメントのベクタデータをテキストデータに変換し、変換されたそれぞれのテキストデータの差分を抽出することによって、テキスト形式の差分データを生成し保存する差分データ生成手段と
してコンピュータを機能させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ドキュメントを処理する画像処理装置に関する。
【背景技術】
【０００２】
従来、画像処理装置内に保存されたドキュメントを用いて、編集や印刷等の画像処理を行うことが広く行われている。例えば、図１２に示すように、画像処理装置内に「仕様書Ａ」というドキュメントが保存されているとする。ここで、ユーザＡが、「仕様書Ａ」を取り出し、編集を行い、「仕様書Ａ’」として画像処理装置内に再度保存する場合を考える。更に、ユーザＡが「仕様書Ａ’」を取り出し、編集を行い、「仕様書Ａ’’」として画像処理装置内に再度保存すると、画像処理装置内には、「仕様書Ａ」、「仕様書Ａ’」、「仕様書Ａ’’」の類似するドキュメントが存在することになる。一般的に、あるドキュメントは、多数のユーザ（図１２に示すユーザＢ〜Ｄ）によってアクセスされることが多い。そのような場合に、多数のユーザがそれぞれの名称で保存すると、類似の名称のドキュメントが多数存在してしまう。そのような類似の名称のドキュメントは、元となるドキュメントを編集しているので、印刷処理において用いられるディスプレイリストやベクタデータを重複して有している。そのようなデータの重複は、画像処理装置内の記憶装置（ＨＤＤ等）の記憶容量を圧迫する一因となる。
【０００３】
また、一方では、それら類似の名称のドキュメント間における差分関係が不明となってしまうので、ユーザの利便性を大きく低下させてしまう。例えば、名称付与のルールを統一したとしても、ドキュメント間の差分が不明であれば、ユーザが、多数存在するドキュメントの内、どのドキュメントを印刷すべきかが分からなくなってしまう。ここで、一般的にファイルのバージョン管理システムとして知られているＣＶＳ（Concurrent Versions System）がある。しかしながら、そのような機能を用いたとしても、ファイル間の差分データのみをユーザが認識できる形式で表示することができず、上述の課題を解決することができない。また、ドキュメントのベクタデータはバイナリデータであるので、差分を抽出することが難しく、結果として、データを重複して保存しておく必要が発生してしまう。
【０００４】
従って、ユーザが対象としているドキュメントを処理する場合には、他のドキュメントとの差分が他のユーザから見て明確となることが望ましい。かつ、その際には、画像処理装置内での保存容量の増加を低減できることが望ましい。
【０００５】
ドキュメントを比較し差分を抽出することについて、様々な技術が開発されている。特許文献１には、入力されたイメージに基づいてオリジナル電子データを検索し、その検索されたオリジナル電子データと入力されたイメージとを比較して差分情報を抽出する技術が記載されている。更に、特許文献１によると、抽出された差分情報をベクトルデータ化し、オリジナル電子データと合成する画像処理方法が記載されている。また、その画像処理方法によると、オリジナルには存在しない差分情報を再利用して編集可能性を高めることができると記載されている。ビットマップデータにおけるドキュメント同士の比較には、ピクセル単位での色値の差分を取得することができるという利点がある。
【特許文献１】特開２００４−２４６５７７号公報（段落０１６４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、ビットマップデータの場合には、ピクセル単位での差分を抽出することはできるが、テキストの詳細な差分について抽出することはできない。例えば、ユーザが、文字列（文字コード）がどのように変化したのか、何の文字列が追加されたのか、線の太さのポイントがどのように変化したのか等の情報を取得することができない。
【０００７】
そこで、上記の点に鑑み、本発明は、ドキュメント間の差分を抽出し、ユーザの利便性を向上することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、ドキュメント間の差分を抽出する画像処理装置であって、対象とする対象ドキュメントのベクタデータと、画像処理装置に既に保存されている保存済みドキュメントのベクタデータとを比較する比較手段と、比較手段による比較の結果、異なっている場合に、対象ドキュメントのベクタデータ及び保存済みドキュメントのベクタデータをテキストデータに変換し、変換されたそれぞれのテキストデータの差分を抽出することによって、テキスト形式の差分データを生成し保存する差分データ生成手段とを備える。
【発明の効果】
【０００９】
本発明によれば、ドキュメント間の差分を抽出し、ユーザの利便性を向上することができる。
【発明を実施するための最良の形態】
【００１０】
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
＜画像処理装置の構成＞
図１は、本実施形態における画像処理装置の全体構成を示す図である。以下、本実施形態に適用するに好適な１Ｄカラー系ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：多機能周辺機器）の構成について、図１を用いて説明する。１Ｄカラー系ＭＦＰは、スキャナ部、レーザ露光部、感光ドラム、作像部、定着部、給紙／搬送部及び、これらを制御する不図示のプリンタ制御部を含んで構成される。
【００１２】
スキャナ部は、原稿台に置かれた原稿に対して照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する。レーザ露光部は、作成された画像データに応じて変調されたレーザ光などの光線を、等角速度で回転する回転多面鏡（ポリゴンミラー）に入射させ、反射走査光として感光ドラムに照射させる。
【００１３】
作像部は、感光ドラムを回転駆動し帯電器によって帯電させ、レーザ露光部によって感光ドラム上に形成された潜像をトナーによって現像化し、そのトナー像をシートに転写する。その際に転写されずに感光ドラム上に残った微小トナーは、回収される。作像部は、以上の一連の電子写真プロセスを実行して作像する。シートが転写ベルトの所定位置に巻きついて４回転する間に、マゼンタ（Ｍ）、シアン（Ｃ）、イエロー（Ｙ）、ブラック（Ｋ）のトナーを持つそれぞれの現像ユニット（現像ステーション）が入れ替わりで順次、電子写真プロセスを繰り返して実行する。４回転した後に、４色のフルカラートナー像を転写されたシートは、転写ドラムを離れ、定着部に搬送される。
【００１４】
定着部は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵しており、作像部によってトナー像が転写されたシート上のトナーを、熱と圧力によって溶解し定着させる。給紙／搬送部は、シートカセットやペーパーデッキに代表されるシート収納庫を１つ以上持っており、プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から１枚を分離し、作像部、定着部に搬送する。シートは作像部の転写ドラムに巻きつけられ、４回転した後に定着部に搬送される。ここで、４回転する間に、ＹＭＣＫ各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合には、定着部を通過したシートを再度作像部に搬送する搬送経路を通るように制御する。
【００１５】
プリンタ制御部は、ＭＦＰ全体を制御するＭＦＰ制御部と通信して、その指示に応じて制御を実行すると共に、スキャナ部、レーザ露光部、作像部、定着部、給紙／搬送部の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。
【００１６】
＜コントローラユニットの構成＞
図２は、本実施形態におけるＭＦＰのコントロールユニット（コントローラ）の構成の一例を示すブロック図である。図２に示すコントロールユニット２００は、画像入力デバイスであるスキャナ２０１や画像出力デバイスであるプリンタエンジン２０２と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット２００は、ＬＡＮ等のネットワーク２０３や公衆回線２０４と接続し、画像情報やデバイス情報を入出力することができる。
【００１７】
ＣＰＵ２０５は、ＭＦＰ全体を制御するための中央処理装置である。ＲＡＭ２０６は、ＣＰＵ２０５が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリとしても機能する。更に、ＲＯＭ２０７は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２０８は、ハードディスクドライブであり、各種処理のためのシステムソフトウェア又は入力された画像データ等が格納される。
【００１８】
操作部Ｉ／Ｆ２０９は、画像データ等を表示可能な表示画面を有する操作部２１０に対するインタフェースであり、操作部２１０に対して操作画面データを出力する。また、操作部Ｉ／Ｆ２０９は、操作部２１０から操作者が入力した情報をＣＰＵ２０５に伝える役割をもつ。ネットワークＩ／Ｆ２１１は、例えば、ＬＡＮカードで実現され、ネットワーク２０３に接続して外部装置との間で情報の入出力を行う。また、モデム２１２は、公衆回線２０４に接続して外部装置との間で情報の入出力を行う。以上のユニットがシステムバス２１３上に配置されている。
【００１９】
イメージバスＩ／Ｆ２１４は、システムバス２１３と、画像データを高速で転送する画像バス２１５とを接続するためのインタフェースであり、データ構造を変換するバスブリッジとして機能する。画像バス２１５上には、ラスタイメージプロセッサであるＲＩＰ２１６、デバイスＩ／Ｆ２１７、スキャナ画像処理部２１８、プリンタ画像処理部２１９、画像編集用画像処理部２２０、カラーマネージメントモジュールであるＣＭＭ２３０が接続される。
【００２０】
ＲＩＰ２１６は、ページ記述言語（ＰＤＬ）コードや後述するベクタデータをイメージに展開する。デバイスＩ／Ｆ２１７は、スキャナ２０１やプリンタエンジン２０２とコントロールユニット２００とを接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２１８は、スキャナ２０１から入力した画像データに対して、補正、加工、編集等の各種処理を行う。プリンタ画像処理部２１９は、プリント出力する画像データに対して、プリンタエンジンに応じた補正、解像度変換等の処理を行う。画像編集用画像処理部２２０は、画像データの回転や圧縮伸長処理等の各種画像処理を行う。
【００２１】
ＣＭＭ２３０は、画像データに対して、プロファイルやキャリブレーションデータに基づいた色変換処理（色空間変換処理ともいう）を施す専用ハードウェアモジュールである。ここで、プロファイルとは、機器に依存した色空間で表現したカラー画像データを機器に依存しない色空間（例えば、Ｌａｂ）に変換するための関数等の情報のことである。また、キャリブレーションデータとは、カラー複合機におけるスキャナ２０１やプリンタエンジン２０２の色再現特性を修正するためのデータのことである。
【００２２】
＜システム構成＞
図３は、本実施形態における画像処理装置を含む画像処理システムの全体構成を示すブロック図である。図３に示すように、画像処理システムは、互いにネットワーク２０３を介して接続されたＭＦＰ１、ＭＦＰ２、ＭＦＰ３を含んで構成されている。
【００２３】
各ＭＦＰはそれぞれＨＤＤ３０１、３０２、３０３を備えている。ＭＦＰに搭載されているプリンタエンジン（以下、エンジンともいう）の解像度はＭＦＰ毎に異なっており、ＭＦＰ１とＭＦＰ３は６００ｄｐｉ、ＭＦＰ２は１２００ｄｐｉである。また、ＭＦＰに搭載されているレンダラ（ラスタライザ）の種類もＭＦＰ毎に異なっており、ＭＦＰ１とＭＦＰ２のレンダラは同種（「Ｒａ」と図示）である。また、ＭＦＰ３だけ異なる種類のレンダラ（「Ｒｂ」と図示）を有する。一般的に、レンダラは、ＡＳＩＣ等のハードウェアで構成されるので、異なる種類のレンダラは、異なった種類の描画命令群を処理することができない。ここで、描画命令群は、一般的に、ディスプレイリストと言われる。ディスプレイリストは、ハードウェアで処理可能なインストラクションであり、複雑な描画記述を持つベクタデータからソフトウェアで生成される解像度依存のデータである。一般的に、ベクタデータには、該当するページに描画されている情報、例えば、文字等の輪郭などが記述されている。
【００２４】
ＭＦＰ１、ＭＦＰ２、ＭＦＰ３はネットワークプロトコルを用いて互いに通信することができる。なお、ネットワーク２０３上に接続されるＭＦＰ１〜３は、図３に示すような物理的な配置に限定されなくても良い。また、ネットワーク２０３上には、ＭＦＰ以外の機器（例えば、ＰＣ、各種サーバ、プリンタ）が接続されていても良い。
【００２５】
＜コントローラソフトウェア構成＞
図４は、ＭＦＰの動作を制御するコントローラ・ソフトウェアの構成を示すブロック図である。コントローラ・ソフトウエアは、例えば、ＨＤＤ２０８に格納されて、ＣＰＵ２０５から必要に応じて呼び出されて実行される。
【００２６】
プリンタＩ／Ｆ４０１は、外部のネットワークと接続され、データを入出力する。プロトコル制御部４０２は、外部との通信に用いられるネットワークプロトコルを解析する。ベクタデータ生成部４０３は、ビットマップイメージから解像度に依存しない描画記述であるベクタデータを生成（ベクタライズ）する。メタデータ生成部４０４は、ベクタライズの過程で得られる副次情報をメタデータとして生成する。ここで、メタデータとは、検索用の付加的なデータであり、描画処理に特に必要とされない。
【００２７】
ＰＤＬ解析部４０５は、ＰＤＬデータを解析し、より処理し易い形式の中間コード（ディスプレイリスト）に変換する。ＰＤＬ解析部４０５において生成された中間コードは、データ描画部４０６に渡されて処理される。データ描画部４０６は、中間コードをビットマップデータに展開する。展開されたビットマップデータは、ページメモリ４０７に逐次描画される。
【００２８】
ページメモリ４０７は、揮発性のメモリであって、レンダラによって展開されたビットマップデータを一次的に保持する。パネル入出力制御部４０８は、操作パネルからの入出力を制御する。ドキュメント記憶部４０９は、ハードディスク等で構成される二次記憶装置であって、入力文書のジョブ単位にベクタデータ、ディスプレイリスト、メタデータを包含するデータファイルを記憶する。なお、本実施形態においては、そのデータファイルを「ドキュメント」という。
【００２９】
スキャン制御部４１０は、スキャナから入力した画像データに対して、補正、加工、編集などの各種処理を行う。印刷制御部４１１は、ページメモリ４０７の内容をビデオ信号に変換し、プリンタエンジン部４１２に画像転送する。プリンタエンジン部４１２は、受信したビデオ信号を記録紙に永久可視画像形成する印刷機構部である。
【００３０】
＜コントローラユニットのデータ処理＞
次に、本実施形態において、ドキュメントを画像処理する際のデータフローについて説明する。以下、ドキュメントの画像処理の一例として、印刷処理を説明する。
【００３１】
図５は、本実施形態におけるドキュメントを画像処理する際に生成されたデータのフローを示す図である。図５は、ドキュメントのＰＤＬデータをプリント又は保存を行う場合のデータフローを示している。ここで、ドキュメントとは、画像処理装置とネットワークで接続されたＰＣ上のアプリケーション・ソフトウェアにおいて印刷を指示され、ＰＣ上のプリンタドライバによってページ記述言語（ＰＤＬデータ）で記述されたドキュメントである。以下の説明においては、どのドキュメントを「対象ドキュメント」という。画像処理装置は、対象ドキュメントを受信し、プリント出力する。一般的に、そのようなプリンタ動作は、「ＰＤＬデータプリント」として知られている。
【００３２】
まず、ＰＤＬデータ解析処理（ステップＳ５０１）において、受信したＰＤＬデータが解析され、ページ数分のベクタデータが生成される。図５においては、３ページで構成されたドキュメントが示されている。次に、元ドキュメント選択処理（ステップＳ５０２）において、印刷装置内に既に存在する元ドキュメント（以下、「保存済みドキュメント」ともいう）から１つの元ドキュメントが選択される。この選択処理については後述する。
【００３３】
次に、ベクタデータ比較処理（ステップＳ５０３）において、選択された元ドキュメント内のベクタデータと、ステップＳ５０１において生成されたベクタデータとが、ページ毎に比較される。比較された結果、同じである場合には、ディスプレイリスト抽出処理（ステップＳ５０４）において、選択された元ドキュメントから、現在対象としているベクタデータに対応するディスプレイリストを抽出する。一方、異なる場合には、ディスプレイリスト生成処理（ステップＳ５０５）において、ステップＳ５０１において生成されたベクタデータから、現在対象としているベクタデータに対応するディスプレイリストが生成される。ステップＳ５０４又はＳ５０５は、全てのページについて行われる。
【００３４】
次に、マージ処理（ステップＳ５０６）において、ステップＳ５０４及びＳ５０５において抽出又は生成されたディスプレイリストをマージする。次に、レンダリング処理（ステップＳ５０７）において、生成されたディスプレイリストがレンダリングされて、ビットマップデータが生成される。印刷処理（ステップＳ５０８）において、生成されたビットマップデータが印刷処理される。ステップＳ５０６の処理は、本実施形態における合成手段の一例である。
【００３５】
再び、ステップＳ５０３を説明する。ここで、比較された結果、ベクタデータが異なっている場合には、変換処理（ステップＳ５０９）において、それぞれのベクタデータをテキスト形式に変換する。差分抽出処理（ステップＳ５１０）において、生成されたそれぞれのテキストデータを比較し、差分を抽出し、テキスト形式の差分データを生成する。
【００３６】
次に、関連付け処理（ステップＳ５１２）において、ステップＳ５１０において生成された差分データと、元ドキュメントとを関連付ける。本実施形態においては、例えば、生成された差分データを参照するように、ステップＳ５０２において印刷装置内で選択された元ドキュメントのメタデータにリンク情報を記述する。
【００３７】
ドキュメント生成処理（ステップＳ５１１）において、ステップＳ５０５において生成されたディスプレイリストを元ドキュメントに付加する。ステップＳ５１２においては、その生成されたディスプレイリストを参照するように、ステップＳ５０２において印刷装置内で選択された元ドキュメントのメタデータにリンク情報を記述する。
【００３８】
以上のように、本実施形態においては、ドキュメントのＰＤＬデータを受信すると、ベクタデータに変換し、変換されたベクタデータと印刷装置内に存在する元ドキュメントのベクタデータとの比較を行う。その結果、同じである場合には、そのベクタデータに対応する元ドキュメントのディスプレイリストを用いてレンダリングを行い印刷処理する。また、異なっている場合には、それぞれのベクタデータの差分をテキスト形式で差分データとして生成して保存し、更に、元ドキュメントから参照できるように、メタデータにリンク情報が記述される。
【００３９】
図６は、図５におけるドキュメントの印刷処理の手順を示すフローチャートである。図６は、ユーザが、外部のＰＣのアプリケーション等でドキュメントの印刷及び保存を指定した場合について示している。
【００４０】
印刷及び保存処理を開始すると、まず、ステップＳ６０１において、印刷及び保存の対象となるドキュメントのＰＤＬデータを取得する。以下、そのデータを入力データという。ステップＳ６０２において、ＰＤＬ解析部４０５において入力データを解釈してベクタデータを生成する。次にステップＳ６０３において、入力データを画像処理装置内のメモリ等の記憶領域に保存するか否かを判定する。ここで、保存すると判定された場合に、ステップＳ６０４において、元データ（保存済みドキュメント）の検索を行う。ステップＳ６０３の判定は、例えば、受信した入力データに添付されている情報を参照して、ユーザが保存を指定したか否かを判定しても良い。
【００４１】
ここで、入力データから画像処理装置内に保存されている元データを検索する方法として、入力したユーザが保存されているデータを指定する方法が最も望ましい。例えば、ユーザが、図６に示す手順の前に画像処理装置に保存された元データを自身のＰＣ上で編集し、その編集されたドキュメントを図６に示す手順に従って処理しようとしている場合に、ユーザが元データを指定する。また、元データの検索精度や、検索速度が劣る点を許容して、入力データのファイル名と画像処理装置内に保存されているファイル名とを比較して、元データのファイル名に最も近いデータを元データとみなしても良い。また、入力データに含まれるメタデータと画像処理装置内に保存されているデータに含まれるメタデータとで文字列を比較して、一致するキーワードが最も多いデータを元データとみなしても良い。また、入力データと画像処理装置内に保存されているデータとでファイルサイズやページ数に最も近いデータを元データとみなしても良い。
【００４２】
ステップＳ６０４の検索の結果、ステップＳ６０５において元データが画像処理装置に存在しているか否かを判定する。ここで、元データが保存装置に存在すると判定された場合には、印刷対象の入力データ全てのページについて、ステップＳ６０６〜Ｓ６１２又はＳ６１３の処理を繰り返す。ステップＳ６０７において、入力データと元データとで、バイナリ形式のベクタデータでの比較を行う。
【００４３】
図１１は、ステップＳ６０７における変換処理の結果の一例を示す図である。図１１に示すデータ１１０１は、入力データから生成されたベクタデータの一例を示し、データ１１０２は、画像処理装置内に既に保存されている元データに含まれるベクタデータの一例を示す。図１１に示すように、データ１１０１及び１１０２は、０と１から示されるバイナリ形式のデータである。
【００４４】
ステップＳ６０８において、比較の結果、差分が発生したか否かを判定する。ここで、差分が発生していないと判定された場合には、ステップＳ６０９において、画像処理装置内の元データにディスプレイリストが含まれているか否かを判定する。一方、差分が発生していると判定された場合には、ステップＳ６１０において、それぞれのバイナリ形式のベクタデータをテキスト形式に変換し、ステップＳ６１１において、テキスト形式の差分データを生成（差分データ生成）して、ステップＳ６１２に進む。
【００４５】
再度、図１１を参照する。図１１に示すデータ１１０３は、ステップＳ６０７において比較が行われた結果、差分が発生した場合に示されるデータの一例である。データ１１０３に示すように、比較する各ベクタデータのサイズと、差分の発生率と、差分箇所（アドレス示されている）とが示されている。データ１１０４は、ベクタデータであるデータ１１０１をテキスト形式に変換したテキストデータであり、データ１１０５は、データ１１０２をテキスト形式に変換したテキストデータである。データ１１０４又は１１０５には、例えば、「pixel_placement=」の記述によって、オブジェクトのエッジ情報に関係するピクセルの塗布情報が表されている。また、「OperatorType=」や「Operator=」の記述によって、ＲＯＰ演算の処理ルールが表されている。即ち、データ１１０１とデータ１１０４は、バイナリとテキストのように、表現形式は異なっているが、記述内容は同じである。同様に、データ１１０２とデータ１１０５も、表現形式は異なっているが、記述内容は同じである。
【００４６】
データ１１０６は、ステップＳ６１１において生成された差分データの一例であり、データ１１０４とデータ１１０５と異なっている部分のみが表示されている。また、データ１１０４〜１１０６は、ＸＭＬ形式で表示されているが、ユーザに認識できる形式であれば、他の形式が用いられても良い。
【００４７】
図１１に示すように、データ１１０３は、差分情報がバイナリ形式で表示されるので、ユーザによる解読が極めて困難である。しかしながら、本実施形態において生成されたデータ１１０６で示される差分データは、テキスト形式で表示されるので、ユーザによって容易に解読される。ステップＳ６１１において生成された差分データは、画像処理装置のメモリ等の記憶領域に保存される。
【００４８】
ステップＳ６０９において、画像処理装置内の元データにディスプレイリストが含まれていると判定された場合には、ステップＳ６１３において、そのディスプレイリストを選択する。一方、画像処理装置内の元データにディスプレイリストが含まれていないと判定された場合には、ステップＳ６１２に進む。
【００４９】
ここで、ステップＳ６０９において、ディスプレイリストが含まれていると判定された場合においても、例えば、そのディスプレイリストを用いるか否かをユーザが選択できるユーザインタフェース画面を表示するようにしても良い。その場合に、ユーザが否を選択すると、ステップＳ６１２に進み、新規にディスプレイリストを生成する。
【００５０】
ステップＳ６１２において、ステップＳ６０８における比較の結果、差分が発生したと判定されたベクタデータ（データ１１０１）からディスプレイリストを生成する。
【００５１】
以上のステップＳ６０７〜Ｓ６１２又はＳ６１３の処理が、入力データの全てのページについて行われると、ステップＳ５６１４に進む。
【００５２】
ここで、本実施形態においては、入力データの全てについて行う他に、ユーザによって指定されたページ（例えば、ユーザが、変更を行ったページを指定する）についてのみ、ステップＳ６０７〜Ｓ６１２又はＳ６１３の処理を行うようにしても良い。
【００５３】
ステップＳ６１４において、ステップＳ６１２及びＳ６１３で生成又は選択された各ページのディスプレイリストをマージし、入力データのディスプレイリストを生成する。ステップＳ６１５において、ステップＳ６１４において生成されたディスプレイリストを用いてレンダリング処理を行ってビットマップデータを生成し、ステップＳ６１６において印刷処理を行う。
【００５４】
次に、ステップＳ６１７において、ステップＳ６１２において新規に生成されたディスプレイリストがあるか否かを判定する。ここで、無しと判定された場合には、本処理を終了する。一方、有りと判定された場合には、ステップＳ６１８において、新規に生成されたディスプレイリストを元データに付加して、画像処理装置に保存する。更に、ステップＳ６１９において、ステップＳ６１１で生成された差分データへのリンク情報と、ステップＳ６１２において生成されたディスプレイリストへのリンク情報とを元データのメタデータに記述し、本処理を終了する。
【００５５】
再び、ステップＳ６０３を説明する。ステップＳ６０３において、入力データを画像処理装置内に保存しないと判定された場合には、ステップＳ６２１において、入力データに含まれるページ数分、ディスプレイリストを生成する。ステップＳ６２２において、生成されたディスプレイリストをレンダリングして印刷処理を行い、本処理を終了する。
【００５６】
再び、ステップＳ６０５を説明する。ステップＳ６０５において、元データが画像処理装置内に存在しないと判定された場合に、ステップＳ６２３において、ディスプレイリストを含むドキュメントを生成し、ステップＳ６２４において、生成されたディスプレイリストを元に印刷する。次に、ステップＳ６２５において、生成されたドキュメントを保存装置に保存し、本処理を終了する。
【００５７】
以上のように、本実施形態においては、入力された対象ドキュメントと画像処理装置内に既に保存されている保存済みドキュメントとをベクタデータにおいて比較する。その結果、ベクタデータが異なっている場合に、それらの差分をテキスト形式で、差分データとして生成し保存する。その結果、ユーザは、ドキュメント間のバージョン管理を行うことができる。また、差分情報がテキスト形式であるので、ユーザは、フォントサイズや文字列等の差分を容易に認識することができ、利便性を向上することができる。
【００５８】
更に、ユーザにより編集され入力されたドキュメントを印刷処理する場合において、画像処理装置内に既に保存されている保存済みドキュメントのディスプレイリストを用い、差分データに対応するページについてのみ新規のディスプレイリストを用いる。その結果、差分データに対応しないページ（即ち、変更のないページ）についてのディスプレイリストを生成する工数が不要であるので、印刷処理が高速化される。また、差分データに対応しないページについてのベクタデータ及びディスプレイリストを保存する必要がないので、保存の際のファイル容量を低減することができる。
【００５９】
＜ドキュメントデータ構造＞
次に、図５及び図６の処理が行われた後のドキュメントの構造について説明する。図７は、本実施形態において、図５及び図６の処理が行われた後のドキュメントのデータ構造を示す図である。ドキュメントは、複数ページからなるデータであって、図７に示すように、大きく、ベクタデータと、メタデータと、ディスプレイリストとで構成されている。またドキュメントは、ドキュメントヘッダ７０１を先頭とする階層構造とされている。
【００６０】
ベクタデータは、更に、ページヘッダ７０２、サマリ情報７０３、オブジェクト７０４で構成されており、メタデータは、更に、ページヘッダ７０５と詳細情報７０６で構成されている。ディスプレイリストは、更に、ページヘッダ７０７、描画展開用のインストラクション７０８から構成されている。
【００６１】
ドキュメントヘッダ７０１には、ベクタデータの格納場所とディスプレイリストの格納場所とが記述されているので、ベクタデータとディスプレイリストとはドキュメントヘッダ７０１によって関連付けられている。
【００６２】
ベクタデータは、解像度非依存な描画データである。ページヘッダ７０２には、ページの大きさや向きなどのレイアウト情報が記述されている。オブジェクト７０４には、ライン、多角形、ベジェ曲線などの描画データが１つずつリンクされており、複数のオブジェクトがまとめてサマリ情報７０３に関連付けられている。サマリ情報７０３は、複数のオブジェクトの特徴をまとめて表現するものであり、分割領域の属性情報などが記述されている。
【００６３】
メタデータは、描画処理には関係しない検索用の付加情報である。ページヘッダ７０５には、例えば、メタデータがビットマップデータから生成されたものなのか、ＰＤＬデータデータから生成されたものなのか等ページについての情報が記述されている。また、詳細情報７０６には、ＯＣＲ情報や画像情報として生成された文字列（文字コード列）が記述される。また、ベクタデータのサマリ情報７０３からメタデータの詳細情報７０６を参照することができる。
【００６４】
ディスプレイリストは、レンダラがビットマップ展開するための中間コードである。ページヘッダ７０７には、ページ内の描画情報（インストラクション７０８）の管理テーブルなどが記述されており、インストラクション７０８は、解像度依存の描画情報で構成されている。
【００６５】
ここで、図５及び図６において説明したように、入力されたドキュメントから取得されたベクタデータと保存済みドキュメントのベクタデータとが異なる場合には、新たに生成されたディスプレイリスト７１０が、保存済みドキュメントに付加される。更に、メタデータには、保存済みドキュメントと別に保存された差分データと新たに生成されたディスプレイリスト７１０へのリンク情報が記述されたデータ７１１が付加される。
【００６６】
図８は、図７に示すデータ構造のメモリ上における配置と、ファイルとして構成された一例を示す図である。図８の（ａ）に示すように、本ドキュメントにおいて、ヘッダ領域８０１はメモリ領域の先頭に配置されるが、ベクタデータ領域８０２とメタデータ領域８０３とディスプレイリスト領域８０４は、メモリ上の任意のアドレスに配置されている。また、図８の（ａ）に示すように、ベクタデータからメタデータへの参照と、メタデータから新たに生成されたディスプレイリストへの参照は、ポインタによって行われている。
【００６７】
図８の（ｂ）に示すように、本実施形態においては、ヘッダ領域８０１とベクタデータ領域８０２とメタデータ領域８０３とディスプレイリスト領域８０４がシリアライズされて、１つのファイルとされている。また、図８の（ｂ）に示すように、ベクタデータからメタデータへの参照と、メタデータから新たに生成されたディスプレイリストへの参照は、オフセットによって行われている。
【００６８】
＜コントローラユニットのデータ処理＞
図９は、過去のバージョンをリストアして印刷する場合のデータフローを示す図である。ユーザが差分データを参照して、所望のバージョンの印刷処理を行うとする。その場合に、ユーザは、差分データを検索条件として、データを検索し、印刷を所望するバージョンを決定することができる。まず、変換処理（ステップＳ９０１）において、差分データを含むドキュメントのベクタデータがテキスト形式に変換される。次に、マージ処理（ステップＳ９０２）において、テキスト形式に変換されたベクタデータと差分データとがマージされ、マージ後のベクタデータが生成される。
【００６９】
次に、ディスプレイリスト生成処理（ステップＳ９０３）において、ディスプレイリストが生成される。次に、レンダリング処理（ステップＳ９０４）において、ディスプレイリストがレンダリングされてビットマップが生成される。最後に、印刷処理（ステップＳ９０５）において、印刷物が生成される。
【００７０】
図１０は、過去のバージョンをリストアして印刷する処理の手順を示すフローチャートである。例えば、ユーザが外部のＰＣのアプリケーション上で、差分データを参照して、前バージョンのリストア及び印刷処理を開始する。まず、ステップＳ１００１において、元データとの差分を示す差分データと、その差分データを含むドキュメントのベクタデータとを入力し、ベクタデータをテキスト形式に変換する。ステップＳ１００２において、テキスト形式のベクタデータに差分データをテキスト形式でマージする。
【００７１】
次に、ステップＳ１００３において、マージされたテキスト形式のベクタデータは、再度、バイナリ形式に変換される。ステップＳ１００４において、バイナリ形式のベクタデータはディスプレイリストに変換される。ステップＳ１００５において、ディスプレイリストがレンダリングされて、ビットマップデータが生成される。最後に、ステップＳ１００６において、生成されたビットマップデータが用いられて印刷処理が行われる。
【００７２】
以上のようなリストア処理が行われる場合において、差分データへのリンク情報がメタデータに記述されているので、ユーザは、その差分データの情報を条件としてデータ検索を行うことができる。
【００７３】
本発明は、複数の機器から構成されるシステムに適用しても良いし、また、１つの機器から構成される装置に適用しても良い。例えば、スキャナ、プリンタ、ＰＣ、複写機、複合機及びファクシミリ装置が挙げられる。本発明は、前述した実施形態の各機能を実現するソフトウェア・プログラムを、システム又は装置に対して直接又は遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００７４】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の１つである。その場合に、プログラムの機能を有しているのであれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００７５】
プログラムを供給するための記録媒体として、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体として、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ）などがある。
【００７６】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネット／イントラネットのウェブサイトからダウンロードするようにしても良い。即ち、該ウェブサイトから本発明のコンピュータプログラム自体、若しくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードするようにしても良い。
【００７７】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるウェブサイトからダウンロードすることによっても本実施形態は実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００７８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。その場合に、例えば、所定条件をクリアしたユーザにのみ、インターネット／イントラネットを介してウェブサイトから暗号化を解く鍵情報をダウンロードさせ、鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールする。
【００７９】
また、コンピュータが、読み出したプログラム（画像処理プログラム）を実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全てを行っても良い。その場合も、前述した実施形態の機能が実現され得る。更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全てを行っても良い。このようにして、前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【００８０】
【図１】本実施形態における画像処理装置の全体構成を示す図である。
【図２】本実施形態におけるＭＦＰのコントロールユニットの構成の一例を示すブロック図である。
【図３】本実施形態における画像処理装置を含む画像処理システムの全体構成を示すブロック図である。
【図４】ＭＦＰの動作を制御するコントローラ・ソフトウェアの構成を示すブロック図である。
【図５】本実施形態におけるドキュメントを画像処理する際に生成されたデータのフローを示す図である。
【図６】本実施形態におけるドキュメント印刷と保存処理の手順を示すフローチャートである。
【図７】図５及び図６の処理が行われた後のドキュメントのデータ構造を示す図である。
【図８】図７に示すデータ構造のメモリ上における配置と、ファイルとして構成された一例を示す図である。
【図９】過去のバージョンをリストアして印刷する場合のデータフローを示す図である。
【図１０】過去のバージョンをリストアして印刷する処理の手順を示すフローチャートである。
【図１１】ステップＳ６０７における変換処理の結果の一例を示す図である。
【図１２】画像処理装置に複数のドキュメントが保存されている様子を示す図である。
【符号の説明】
【００８１】
２０３  ネットワーク
２０４  公衆回線
１１０１、１１０２、１１０３、１１０４、１１０５、１１０６  データ
【図１】
0005036636.tif 000002
【図２】
0005036636.tif 000003
【図３】
0005036636.tif 000004
【図４】
0005036636.tif 000005
【図５】
0005036636.tif 000006
【図６】
0005036636.tif 000007
【図７】
0005036636.tif 000008
【図８】
0005036636.tif 000009
【図９】
0005036636.tif 000010
【図１０】
0005036636.tif 000011
【図１２】
0005036636.tif 000012
【図１１】
0005036636.tif 000013