以下、図面を参照して、実施形態について詳細に説明する。
[第1の実施形態]
第1の実施形態において、図1に示すように、情報処理装置10、端末装置12a、12b、12c、及び印刷装置14が、通信手段16を介して接続されている。なお、通信手段16は、公衆回線であってもよいし、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークであってもよい。また、通信手段を、無線の通信手段としてもよいし、有線の通信手段としてもよい。
端末装置12a、12b、12cは、アプリケーション等により作成されたデータを印刷するための、ページ記述言語(PDL:Page Description Language)で記述した印刷データ(以下、PDLデータと呼称する)を作成して、情報処理装置10に送信する。PDLデータは、例えば、HPGL形式或いはPDF形式のデータであってもよいし、ポストスクリプト等であってもよい。なお、端末装置12a、12b、12cは、それぞれコンピュータにより構成され、それぞれPDLデータの作成環境が異なっているものとする。ここで、PDLデータの作成環境(以下、単に環境という)とは、OS(オペレーティングシステム)のバージョンや種類、PDLデータを作成したソフトウエア(プリンタドライバ)のバージョン等をいう。OSのバージョンや種類が異なると、インストールされているフォント(文字の形状を示す書体)が異なる場合があり、また、プリンタドライバのバージョンが異なるとPDLデータの作成において使用されるフォントが異なる場合がある。
情報処理装置10は、端末装置12a、12b、12cから受信したPDLデータを印刷装置14に転送する。
印刷装置14は、印刷画像を用紙等の記録媒体に印刷する印刷手段を有する。印刷装置14は、情報処理装置10から受信したPDLデータをビットマップの画像データに変換し、印刷手段により印刷する。なお、PDLデータをビットマップの画像データに変換する処理を情報処理装置10が行なうようにしてもよい。また、印刷装置14は、端末装置12a、12b、12cから直接PDLデータを受信し、該受信したPDLデータに基づいて、印刷画像を用紙等の記録媒体に印刷する場合もある。更にまた、印刷装置14には、原稿の画像を読み取る読取手段も設けられており、読取手段により原稿を読み取って得られたビットマップの画像データ(以下、読取画像データと呼称する)は、情報処理装置10に送信され、情報処理装置10で保持される。以下、PDLデータから変換(展開)されたビットマップの画像データをPDL展開画像データと呼称する。
なお、情報処理装置10は、PDL展開画像データが表わす画像と読取画像データが表わす画像とで、互いに異なる部分(以下、異なる部分を「差分」という)を抽出する差分抽出機能も備えている。例えば、端末装置12a、12b、12cのいずれかを操作する利用者が、アプリケーション等によりデータを作成し、該データをPDLデータに変換して印刷装置14により印刷させた後、該印刷物に、手書きによる追加や修正ペン等による削除等の変更を加え、該変更を加えた印刷物を印刷装置14により読み取らせたりする場合がある。情報処理装置10は、差分抽出機能により、例えば、上記印刷装置14により読み取って得られた読取画像データが表わす画像と、元々のPDL展開画像データが表わす画像との差分を抽出する。
なお、PDLデータを生成する端末装置の環境によっては、例えばアプリケーションで指定されたフォントが端末装置にインストールされておらず、該指定されたフォントとは異なるフォントを指定したPDLデータが作成されてしまう場合がある。更にはこれを印刷すると、フォントが異なる印刷結果が出力されてしまう。すなわち、同じデータから生成したPDLデータであっても、PDLデータを生成する環境によっては、フォントが異なるPDLデータが生成され、フォントが異なる印刷物が印刷されてしまう可能性がある。このフォントが異なる印刷物に対し更に手書き等で変更を加えた場合、従来の手法で差分抽出を行なうと、手書き部分だけでなく。本来差分として抽出すべきでない文字部分も差分として抽出されてしまう可能性がある。このため、本実施形態では後述するように差分抽出を行なう。
図2は、第1の実施形態に係る情報処理装置10の構成を機能的に示した機能構成図である。情報処理装置10は、データ取得部20、PDLデータ展開部22、フォント情報記憶部24、フォント置換部26、差分抽出部28、制御部29、差分画像生成部30、及び差分表示部32を備えている。
データ取得部20は、差分を抽出する対象となるPDLデータと読取画像データとを取得する。
PDLデータ展開部22は、データ取得部20で取得されたPDLデータを解析し、ビットマップの画像データに変換する。すなわち、PDLデータ展開部22は、PDLデータの解釈処理において、PDLデータから命令を1つずつ抽出し、展開処理において上記抽出した命令を実行することで、ビットマップの画像データ(PDL展開画像データ)を生成する。PDLデータには、文字、図形、或いはイメージ等のオブジェクトを描画するための命令が含まれる。例えば、文字コード等が指定され文字オブジェクト(以下、単に文字という)を描画する文字描画命令、該描画する文字のフォントを指定するフォント指定命令、図形オブジェクト(以下、単に図形という)を描画する図形描画命令、イメージオブジェクト(以下、単にイメージという)を描画するイメージ描画命令等が含まれている。フォント指定命令は、文字描画命令に先んじて実行され、その後、文字描画命令により、フォント指定命令で指定されたフォントで文字列が描画される。なお、PDLデータには、PDLデータが作成された環境を示す情報等も含まれている。PDLデータ展開部22により生成されたPDL展開画像データは、差分抽出部28に供給される。
また、PDLデータ展開部22は、PDL展開画像データを差分抽出部28に供給した後、制御部29からフォント置換指示を受け取った場合には、PDLデータに含まれるフォント指定命令を変更して、再度PDLデータを展開する。具体的には、PDLデータ展開部22は、PDLデータに含まれるフォント指定命令により指定されたフォント(指定フォント)を、フォント置換部26により提供された代替フォントに置換えて再展開する。
フォント情報記憶部24には、フォント指定命令により指定されたフォントを代替する代替フォントの情報が記憶されている。
フォント置換部26は、PDLデータ展開部22から置換対象のフォントの情報を受け取ると、該フォントを代替する代替フォントをフォント情報記憶部24から読み出し、PDLデータ展開部22に提供する。
差分抽出部28は、PDLデータ展開部22からPDL展開画像データを取得すると共に、データ取得部20から読取画像データを取得する。差分抽出部28は、取得したPDL展開画像データと読取画像データとの差分を抽出する。例えば、PDL展開画像データと読取画像データとで同一位置の画素同士を比較し、画素値が閾値以上異なる部分を「差分」として抽出するようにしてもよい。
制御部29は、差分抽出部28により抽出された差分を取得し、該差分の大きさ(面積、或いは画素数)に応じて、フォント指定命令の指定フォントを代替フォントに置換えるか否かを判断し、置換えると判断した場合には、PDLデータ展開部22に対して、フォント置換指示を出力する。本実施形態では、制御部29によりフォント指定命令の指定フォントを置換えないと判断されるまで、差分抽出、判断、及びフォント置換え、及び再展開が繰り返されるが、フォントの置換え回数に上限値を設定してもよい。
差分抽出部28は、制御部29がフォント指定命令の指定フォントを置換えないと判断したときの差分を示す差分情報を差分画像生成部30に供給する。なお、差分情報は、例えば、上記異なる部分の位置、大きさ、両者がどのように異なるのか等を示す情報としてもよい。或いは、PDL展開画像データの中から上記異なる部分に対応する画像データを抽出すると共に、読取画像データの中から上記異なる部分に対応する画像データを抽出し、該抽出した画像データの各々及び該画像データの位置情報を差分情報としてもよい。
差分画像生成部30は、差分抽出部28から受け取った差分情報に基づいて、PDL展開画像データが表わす画像と読取画像データが表わす画像とで差分が明示された差分画像の差分画像データを生成する。
差分表示部32は、差分画像生成部30で生成された差分画像データに基づいて、差分画像を表示する。
なお、情報処理装置10のハードウェア構成例を図3に示す。情報処理装置10は、図3に示すコンピュータ98がプログラムを実行することにより実現することができる。
コンピュータ98は、CPU(Central Processing Unit)80、ROM(Read Only Memory)82、RAM(Random Access Memory)84、HDD(Hard Disk Drive)86、操作部88、表示部90、及び通信IF(Interface)92がバス94を介して接続されて構成されている。
CPU80は、ROM82やHDD86に記憶されているプログラムを実行し、自装置全体の動作を制御する。ROM82には、CPU80が実行するプログラム(後述する画像処理のプログラム等を含む)やCPU80の処理に必要な情報等が記憶されている。CPU80が該プログラムを実行することによって、図2を用いて説明した情報処理装置10を実現する。RAM84は、ワークメモリ等として使用される。
HDD86には、CPU80が実行するプログラム、様々な設定情報やデータが記憶されている。外部から受信した読取画像データやPDLデータもHDD86に記憶される。また、様々なフォント情報を記憶した記憶領域も設けられている。この記憶領域が上記フォント情報記憶部24に対応する。更にまた、端末装置12a〜12cまでの各端末装置にインストールされているフォントのデータも、HDD86に記憶されているものとする。
なお、CPU80が実行するプログラムを記憶するための記憶媒体は、HDD86やROM82に限定されない。例えば、フレキシブルディスクやDVDディスク、光磁気ディスクやUSBメモリ(ユニバーサルシリアルバスメモリ)等(不図示)であってもよいし、通信手段16に接続された他の装置の記憶装置であってもよい。
操作部88は、例えば、キーボードやマウス等により構成され、利用者が操作部88を操作することより各種情報が指定される。表示部90は、例えば、液晶ディスプレイ、ELディスプレイ等により構成され、CPU80の制御により各種画像やメッセージ、或いは後述する差分画像等を表示する。
通信IF92は、通信手段を介して他の装置と通信を行なうためのインタフェースである。
次に、第1の実施形態における作用を図4及び図5を用いて説明する。
図4は、情報処理装置10で実行される画像処理(差分抽出処理を含む)の流れを示すフローチャートである。
ステップ100において、データ取得部20は、差分抽出対象であるPDLデータと読取画像データとを取得する。例えば、事前に、差分抽出対象として、端末装置12a、12b、12cのいずれかから受信したPDLデータと、印刷装置14で読み取られた読取画像データとがHDD86等の記憶部に記憶されている場合には、該記憶部から取得すればよいし、この差分抽出処理を開始する際に、端末装置12a、12b、12cのいずれかからPDLデータを取得し、印刷装置14から読取画像データを取得するようにしてもよい。また、読取画像データは、印刷装置14以外の他の読取装置で読み取られた読取画像データであってもよい。
ステップ102において、PDLデータ展開部22は、データ取得部20により取得されたPDLデータを解析し、該PDLデータをビットマップの画像データ(PDL展開画像データ)に展開する。
ステップ104において、差分抽出部28は、PDL展開画像データと、読取画像データとを比較して差分を抽出する。
ステップ106において、制御部29は、上記比較結果に基づいて、PDL展開画像データの元となったPDLデータに含まれるフォント指定命令で指定された指定フォントを代替フォントに置換えて再展開するか否かを判断する。フォントが異なるだけでも、全体の差分は大きくなるため、ここでは、PDL展開画像データと読取画像データとで画素値が予め定められた値以上異なる画素の数をカウントし、該カウント値が予め定められた閾値より大きければ、代替フォントに置換えると判断するようにしてもよい。
なお、元々のPDLデータから、文字領域の面積はおおよそ把握できるため、文字領域の面積に応じて閾値を異ならせてもよい(例えば、文字領域の面積が大きいほど閾値を大きくする等)。また、文字領域が予め定められた面積以上であるにも関わらす、差分が小さい場合には、差分の中にフォントの違いによる差分は含まれていないと判断するようにしてもよい。
更にまた、元々のPDLデータにより、文字領域が特定されるため、該特定された文字領域において上記カウント値が予め定められた閾値以上となった場合に、代替フォントに置換えて再展開すると判断するようにしてもよい。
また、利用者に対して、PDL展開画像データの画像と読取画像データの画像とを表示して目視で確認させ、フォントを代替フォントに置換えるか否かを判断させるようにしてもよい。判断結果は、例えば、利用者に操作部88を介して入力させ、制御部29は、該利用者の判断結果に従って、ステップ106の判断を行なうようにしてもよい。利用者による目視の判断は、代替フォントに置換えて再展開すると判断した後に、最終確認として行なうようにしてもよい。これにより、代替フォントに置換えて再展開すると判断した場合にでも、利用者によりフォントの置換え及び再展開が中止される場合がある。
制御部29は、ステップ106において、指定フォントを代替フォントに置換えると判断した場合には、ステップ108において、PDLデータ展開部22に対してフォント置換指示を出力して、PDLデータに含まれるフォント指示命令による指定フォントを代替フォントに置換えさせて、再度展開させる。
PDLデータ展開部22は、フォント置換指示に従い、現在のフォント指令命令により指定されているフォントの情報をフォント置換部26に渡す。
フォント置換部26は、該フォントの情報に基づいて、フォント情報記憶部24から代替フォントを読み出し、代替フォントの情報をPDLデータ展開部22に渡す。フォント情報記憶部24には、各フォントに対して代替フォントが対応付けられて記憶されている。従って、フォント置換部26は、フォント情報記憶部24から、指定フォントに対応付けられている代替フォント(複数の代替フォントが対応付けられている場合には、複数のうちから選択した1つの代替フォント)の情報を読み出す。
PDLデータ展開部22は、PDLデータのフォント指定命令による指定フォントを、フォント置換部26から受け取った情報が示す代替フォントに置換えて、再度展開処理を行なって、PDL展開画像データを生成し、差分抽出部28に供給する。
差分抽出部28は、ステップ104に戻って、新たに生成されたPDL展開画像データと、読取画像データとを比較して差分を抽出する。その後、ステップ106において、肯定判断された場合には、別の代替フォントに置換えられるように、再度ステップ108の処理を繰り返す。すなわち、ステップ106で否定判断されるまで、ステップ104〜108の処理が繰り返される。ステップ106において否定判断された場合には、ステップ110に進む。
ステップ110において、差分抽出部28は、制御部29によりフォントを置換えないと判断したときに抽出した差分を示す情報(差分情報)を差分画像生成部30に供給する。なお、差分抽出部28は、フォントを複数回置換えた場合には、最も差分が小さくなったときの差分情報を選択して、差分画像生成部30に供給するようにしてもよい。差分画像生成部30は、差分情報に基づいて、差分を表わす画像(差分画像)の差分画像データを生成する。
ステップ112においては、差分表示部32は、差分画像生成部30で生成された差分画像データに基づいて、差分画像を表示する。なお、差分画像は、利用者が差分を把握することができれば、どのような画像であってもよく、例えば、PDL展開画像データと読取画像データとで異なる部分については、それぞれの部分画像を重畳して配置し、それ以外の部分(差分として抽出されなかった部分)については、重畳せずに、PDL展開画像データ及び読取画像データのいずれか一方が表わす画像を配置した差分画像としてもよい。
図5に一例を示す。図5(A)は、PDLデータが表わす画像であり、図5(B)は、読取画像データが表わす画像であるものとする。差分画像については、2つの画像の異なる部分について、それぞれの部分画像を重畳し、該重畳部分に破線等により表現された枠画像を更に重畳した画像を差分画像として生成するものとする。仮に、フォントの置換えが行なわれない場合には、図5(C)に示すように、文字領域の部分も差分として抽出され、表示されてしまうが、上記のようにフォントの置換えが行なわれる場合には、図5(D)に示すように、文字領域は差分として抽出されにくくなる。
なお、ここでは、異なる部分の各部分画像を重畳して配置し破線で囲むことにより異なる部分を表示する例について説明したが、部分画像の各々の色を異ならせて重畳して配置することにより、異なる部分を表示するようにしてもよい。或いは、異なる部分を点滅表示する等の表示方法を採用してもよい。更には、PDL展開画像データの画像と、読取画像データの画像とを並べて表示し、互いに異なる部分に対して破線などにより表現された枠画像を重畳するようにしてもよい。
なお、フォント置換部26は、例えば、図6に示されるフォント類推テーブルを使用して、フォント毎に代替される可能性の高いフォントを類推して、代替フォントを決定するようにしてもよい。
予め、フォント情報記憶部24に、フォント類推テーブルを記憶しておく。フォント類推テーブルは、フォント指定命令で指定された指定フォントが、PDLデータの作成時にどのフォントから置換えられたのかを類推するためのテーブルである。ここでは、各端末装置12a、12b、12cの各々には、種類は同じであるが、バージョンが異なるOSが搭載されているものとして説明する。
図6(A)は、OSのバージョンとフォント類推テーブルのアドレスとを対応付けたメインテーブルの一例である。このメインテーブルにより、バージョン1.0のフォント類推テーブルは、アドレスadd_r1に記憶されており、バージョン2.0のフォント類推テーブルは、アドレスadd_r2に記憶されていることがわかる。
図6(B)には、OSのバージョンが1.0のフォント類推テーブルの一例が示されている。また、図6(C)には、OSのバージョンが2.0のフォント類推テーブルの一例が示されている。各フォント類推テーブルには、代替フォントが優先度順に登録された代替テーブルを記憶した記憶領域のアドレスがフォントファミリ毎に登録されている。ここで、フォントファミリとは、デザインが類似するフォント(書体)をひとまとめにしたフォントの集まりを表わす。例えば、線の太さや斜体など文字のスタイル属性が異なるフォントを含むフォントの集まりをいう。
図6(B)及び図6(C)の各々において、フォントファミリとして、ゴシック(Gothic)と、明朝(Mincho)が登録されており、各々に代替テーブルのアドレスが対応付けられて登録されている。図6(B)により、OSのバージョン1.0のゴシックの代替テーブルは、アドレスadd_1に記憶されており、OSのバージョン1.0の明朝の代替テーブルは、アドレスadd_2に記憶されていることがわかる。また、図6(C)により、OSのバージョン2.0のゴシックの代替テーブルは、アドレスadd_5に記憶されており、OSのバージョン2.0の明朝の代替テーブルは、アドレスadd_6に記憶されていることがわかる。
各アドレスが示す記憶領域に記憶されている代替テーブルを、図6(D)、(E)、(F)、(G)に示す。
例えば、図6(D)には、フォントファミリがゴシックの代替テーブルの一例が示されている。この例では、優先度が高い順に、OldGothic、Gothic-A、LegacyGothicの3つのフォントが登録されている。
ここで、例えば、オリジナルのアプリケーションデータでは、Gothic-Aというフォントを使用していたが、PDLデータを生成したときのOSの環境において、Gothic-Aがインストールされていないとすると、Gothic-Aとは異なるフォントがフォント指定命令で指定されてしまう。ここで、例えば、フォント指定命令で指定するフォントがOldGothicに置換えられた場合には、上記ステップ108において、フォント置換部26は、上記類推テーブルを使用して以下のように類推し、指定フォントを代替フォントに置換えて再展開処理を行なう。
まず、フォント置換部26は、フォント指定命令により元々指定されていた指定フォントOldGothicのフォントファミリを調べる。すると、Gothicが得られる。フォント名からフォントファミリを調べる方法は特に限定されないが、例えば、フォントファミリ名とフォント名とを対応付けたテーブルをフォント情報記憶部24に記憶しておき、該テーブルから検索するようにしてもよい。
次に、フォント置換部26は、PDLデータが作成されたコンピュータの動作環境を示す情報等を、PDLデータから抽出する。これにより、OSのバージョンがわかるため、フォント置換部26は、図6(A)に示すメインテーブルからOSのバージョンに対応付けられたフォント類推テーブルのアドレスを検索する。ここで、PDLデータを作成した端末装置にインストールされたOSのバージョンは1.0であるとすると、アドレスadd_r1に記憶されたフォント類推テーブルを参照すればよいことがわかる。
そこで、フォント置換部26は、図6(B)に示すフォント類推テーブルのフォントファミリ「ゴシック」に対応付けられた代替テーブル(図6(D))を調べる。図6(D)に示す代替テーブルには、優先度が高い順にOldGothic、Gothic-A、LegacyGothicというフォントが登録されている。フォント置換部26は、この代替テーブルに登録されているフォントのいずれかが、元々のアプリケーションデータで指定されたフォントである可能性が高いと判断する。従って、フォント置換部26は、現在PDLデータでフォント指定命令により指定されているフォントOldGothicを除くフォントのうち、優先度が最も高いフォントGothic-Aを代替フォントとして選択し、PDLデータ展開部22に提供する。
PDLデータ展開部22は、フォント指定命令で指定されたフォントをOldGothicからGothic-Aに置換えて展開する。
なお、仮に元々のアプリケーションデータで指定されたフォントがGothic-Aでない場合には、ステップ106において再度代替フォントに置換えると判断される可能性がある。この場合には、ステップ108で上記と同様にフォント類推テーブルから判断し、OldGothic以外でGothic-Aの次に優先度の高いLegacyGothicを選択して、PDLデータ展開部22に提供することとなる。
なお、ここでは、バージョンが異なるOS毎にフォント類推テーブルを設けて、代替フォントを選択する例について説明したが、種類が異なるOS毎にフォント類推テーブルを設けて、代替フォントを選択するようにしてもよいし、OSの種類及びバージョン毎にフォント類推テーブルを設けて、代替フォントを選択するようにしてもよい。
また、フォントを置換える毎に、置換えたフォントに対応させて差分抽出結果を保存しておき、該保存した差分抽出結果のうち、差分が小さい差分抽出結果が得られた代替フォントほど優先度が高くなるように、代替フォントテーブル内の優先度を変更してもよい。
また、ここでは、フォントファミリ毎に代替フォントテーブルを設けた例について説明したが、異なるフォントファミリのフォントがフォント指定命令のフォントとして使用される場合を想定し、フォントファミリで区切らずに、OSの環境毎に、優先度順にフォントを登録した代替フォントテーブルを設けてもよい。
[第2の実施形態]
第1の実施形態においては、PDL展開画像データと読取画像データとを比較して差分を抽出する例について説明したが、第2の実施形態においては、PDLデータ同士を比較して差分を抽出する例について説明する。なお、第2の実施形態の情報処理装置のハードウェア構成は、第1の実施形態と同様とされるが、機能構成は、第1の実施形態と異なるため、第2の実施形態の情報処理装置の符号を10aとして、第1の実施形態の情報処理装置10と区別して説明する。
図7は、第2の実施形態に係る情報処理装置10aの構成を機能的に示した機能構成図である。情報処理装置10aは、データ取得部34、PDLデータ解析部36、文字展開差分抽出部38、図形・イメージ展開差分抽出部40、差分画像生成部42、及び差分表示部44を備えている。
データ取得部34は、差分を抽出する対象となる2つのPDLデータ(以下、第1PDLデータ及び第2PDLデータと呼称する)を取得する。
PDLデータ解析部36は、データ取得部34で取得された第1PDLデータを解析し、フォント指定命令及び文字描画命令を抽出して、文字展開差分抽出部38に供給する。第1PDLデータから抽出されたフォント指定命令及び文字描画命令を、それぞれ第1フォント指定命令及び第1文字描画命令と呼称する。
また、PDLデータ解析部36は、データ取得部34で取得された第2PDLデータを解析し、フォント指定命令及び文字描画命令を抽出して、文字展開差分抽出部38に供給する。第2PDLデータから抽出されたフォント指定命令及び文字描画命令を、それぞれ第2フォント指定命令及び第2文字描画命令と呼称する。
更に、PDLデータ解析部36は、第1PDLデータを解析し、第1PDLデータに含まれる命令の中から第1フォント指定命令及び第1文字描画命令以外の命令(ここでは、図形描画命令及びイメージ描画命令)を図形・イメージ展開部52に供給すると共に、第2PDLデータを解析し、第2PDLデータに含まれるに含まれる命令の中から第2フォント指定命令及び第2文字描画命令以外の命令(ここでは、図形描画命令及びイメージ描画命令)を図形・イメージ展開部52に供給する。ここでは、第1PDLデータに含まれる図形描画命令及びイメージ描画命令を、それぞれ第1図形描画命令及び第1イメージ描画命令と呼称する。また、ここでは、第2PDLデータに含まれる図形描画命令及びイメージ描画命令を、それぞれ第2図形描画命令及び第2イメージ描画命令と呼称する。
なお、第1PDLデータに含まれる第1フォント指定命令、第1文字描画命令、第1図形描画命令、及び第1イメージ描画命令は、各々1つの場合もあれば複数の場合もある。同様に、第2PDLデータに含まれる第2フォント指定命令、第2文字描画命令、第2図形描画命令、及び第2イメージ描画命令は、各々1つの場合もあれば複数の場合もある。
なお、PDLデータ解析部36は、上記各命令の他に、展開に必要な各種データがある場合には、該各種データをPDLデータから抽出して文字展開差分抽出部38及び図形・イメージ展開差分抽出部40に供給するものとする。
文字展開差分抽出部38は、判断部46、文字展開部48、及び文字差分抽出部50を備えている。
判断部46は、第1文字描画命令及び該第1文字描画命令により描画する文字のフォントを指定する第1フォント指定命令の各々と、該第1文字描画命令と描画位置が同一の第2文字描画命令及び該第2文字描画命令により描画する文字のフォントを指定する第2フォント指定命令の各々とを比較する。このように、ここでは、描画位置が同じ文字同士が比較されるように、各命令を比較する。判断部46は、比較することにより、第1フォント指定命令及び第2フォント指定命令の少なくとも一方により指定された指定フォントを他のフォントに代替するか否かを判断する。
文字展開部48は、判断部46により代替すると判断された場合には、第1フォント指定命令及び第2フォント指定命令の各々により指定される指定フォントの各々が同一となるように第1フォント指定命令及び第2フォント指定命令の少なくとも一方を変更し、変更後の命令を実行して展開する。また、文字展開部48は、判断部46により代替しないと判断された場合には、第1フォント指定命令及び第2フォント指定命令のいずれも変更せずに実行して展開する。ここで、第1PDLデータから抽出された命令と第2PDLデータから抽出された命令は別々に実行し、実行結果である画像データの各々も、各々異なる記憶領域に記憶されるものとする。以下、第1PDLデータから抽出された命令を実行して展開されたビットマップの文字の画像データを第1文字画像データと呼称し、第2PDLデータから抽出された命令を実行して展開されたビットマップの文字の画像データを第2文字画像データと呼称する。
文字差分抽出部50は、文字展開部48で展開して得られた第1文字画像データ及び第2文字画像データの差分を示す文字差分情報を差分画像生成部42に供給する。
図形・イメージ展開差分抽出部40は、図形・イメージ展開部52及び図形・イメージ差分抽出部54を備えている。
一方、図形・イメージ展開部52は、PDLデータ解析部36から供給された、第1図形描画命令及び第1イメージ描画命令を展開してビットマップの画像データ(第1図形・イメージ画像データ)を生成する。また、PDLデータ解析部36から供給された、第2図形描画命令及び第2イメージ描画命令を展開してビットマップの画像データ(第2図形・イメージ画像データ)を生成する。
図形・イメージ差分抽出部54は、第1図形・イメージ画像データと、第2図形・イメージ画像データとを比較し、第1図形・イメージ画像データが表わす画像、及び第2図形・イメージ画像データが表わす画像の差分を示す図形・イメージ差分情報を生成する。
差分画像生成部42は、文字差分画像情報と図形・イメージ差分画像情報とに基づいて、差分画像を表わす差分画像データを生成する。
差分表示部44は、差分画像生成部42で生成された差分画像データに基づいて、差分画像を表示する。
次に、第2の実施形態における作用を図8、図9、及び図10を用いて説明する。
図8は、情報処理装置10aで実行される画像処理(差分抽出処理を含む)の流れを示すフローチャートである。
ステップ200において、データ取得部34は、差分抽出対象である2つのPDLデータ(第1PDLデータ及び第2PDLデータ)を取得する。
ステップ202において、PDLデータ解析部36は、データ取得部34により取得された第1PDLデータ及び第2PDLデータを解析する。そして、PDLデータ解析部36は、第1PDLデータから第1フォント指定命令及び第1文字描画命令を抽出し、第2PDLデータから第2フォント指定命令及び第2文字描画命令を抽出して、それぞれ文字展開差分抽出部38に供給する。また、PDLデータ解析部36は、第1PDLデータから第1図形描画命令及び第1イメージ描画命令を抽出し、第2PDLデータから第2図形描画命令及び第2イメージ描画命令を抽出して、それぞれ図形・イメージ展開差分抽出部40に供給する。
文字展開差分抽出部38は、ステップ204において、第1PDLデータの第1フォント指定命令及び第1文字描画命令と、第2PDLデータの第2フォント指定命令及び第2文字描画命令とに基づいて、文字処理を行なう。
図形・イメージ展開差分抽出部40は、ステップ206において、第1PDLデータの第1図形描画命令及び第1イメージ描画命令と、第2PDLデータの第2図形描画命令及び第2イメージ描画命令とに基づいて、図形・イメージ処理を行なう。
図9は、文字処理の流れを示すフローチャートである。
ステップ220において、文字展開差分抽出部38の判断部46は、第1文字描画命令で指定されている文字コードと第2文字描画命令で指定されている文字コードとを比較する。ここで、比較されるのは、前述したように、共に同じ位置に描画される文字についての文字描画命令で指定されている文字コードである。ここで、文字コードとは、コンピュータ上で文字を取り扱うために文字の各々に対して付与された識別情報をいう。
なお、文字展開差分抽出部38は、第1文字描画命令で指定されている文字コードのエンコードと第2文字描画命令で指定されている文字コードのエンコードとが異なる場合には、両者の文字コードをいずれか一方のエンコードに対応する文字コードに統一した後に比較する。エンコードは、例えばShift-JISやJIS等の文字コード体系をいう。
ステップ220において、判断部46が、第1文字描画命令の文字コードと第2文字描画命令の文字コードとが異なると判断した場合には、その判断結果を文字展開部48に供給する。
その後、ステップ222において、文字展開部48は、第1フォント指定命令及び第1文字描画命令に基づいてビットマップの文字画像データを生成し、これとは別に、第2フォント指定命令及び第2文字描画命令に基づいてビットマップの文字画像データを生成する。すなわち、第1PDLデータの命令と第2PDLデータの命令とを個別に実行して展開し、各々個別に文字画像データを生成する。なお、第1PDLデータの命令を実行して展開した画像データは、HDD86の第1記憶領域に記憶され、第2PDLデータの命令を実行して展開した画像データは、HDD86の第2記憶領域に記憶される。
一方、ステップ220において、判断部46は、判断部46が、第1文字描画命令の文字コードと第2文字描画命令の文字コードとが同じであると判断した場合には、ステップ224において、判断部46は、第1フォント指定命令の指定フォントと第2フォント指定命令の指定フォントとが同じであるか否かを判断する。
ステップ224において、判断部46は、両者の指定フォントが異なると判断した場合には、その判断結果を文字展開部48に供給する。
その後、ステップ226において、文字展開部48は、第1フォント指定命令の指定フォント、及び第2フォント指定命令の指定フォントの少なくとも一方を変更して、両者のフォントを共通のフォントにする。これにより、第1フォント指定命令及び第1文字描画命令と、第2フォント指定命令及び第2文字描画命令とにより描画される各文字画像は、同一の文字画像となる。文字展開部48は、第1フォント指定命令及び第1文字描画命令に基づいてビットマップの文字画像データを生成して、第1記憶領域及び第2記憶領域の双方に記憶する。
一方、ステップ224において、判断部46は、両者の指定フォントが同じと判断した場合には、第1フォント指定命令及び第1文字描画命令と、第2フォント指定命令及び第2文字描画命令とにより描画される各文字画像は、同一の文字画像となる。従って、ステップ228において、文字展開部48は、指定フォントを変更することなく、第1フォント指定命令及び第1文字描画命令に基づいてビットマップの文字画像データを生成して、第1記憶領域及び第2記憶領域の双方に記憶する。
なお、ステップ226及びステップ228では、第1フォント指定命令及び第1文字描画命令に基づいてビットマップの文字画像データを生成する例について説明したが、第2フォント指定命令及び第2文字描画命令に基づいて文字画像データを生成するようにしてもよい。どちらの命令を実行しても、同一の文字画像データを生成することができるためである。
ステップ230において、文字展開部48は、PDLデータ解析部36から供給されたフォント指定命令及び文字描画命令の全ての命令の実行が終了したか否かを判断する。ステップ230で否定判断された場合には、ステップ220に戻り、未実行の第1フォント指定命令、第1文字描画命令、第2フォント指定命令及び第2文字描画命令について上記処理が繰り返される。これにより、文字に関する命令の1つ1つが確実に実行され、最終的に頁全体の文字画像データが生成される。
また、ステップ230で肯定判断された場合には、ステップ232に進む。
ステップ232においては、文字差分抽出部50は、第1記憶領域に記憶された各文字画像データを並べて合成して、1つの文字画像データ(第1文字画像データ)を生成する。また、文字差分抽出部50は、第2記憶領域に記憶された各文字画像データを並べて合成して、1つの文字画像データ(第2文字画像データ)を生成する。そして、文字差分抽出部50は、第1文字画像データと第2文字画像データとを比較し、差分(異なる部分)を抽出する。そして、該差分を示す情報(以下、文字差分情報)を差分画像生成部42に供給する。なお、ここでは、ページ全体で比較処理する例について説明したが、前述したように、ステップ220において文字コードが等しいと判断した場合には、その部分の文字画像は、フォントが異なっていてもその後の処理によりフォントが統一され、同一の文字描画命令及びフォント指定命令により展開された文字画像となるため、差分として抽出されることはない。従って、文字コードが異なると判断された部分の画像データだけを比較して、差分を抽出するようにしてもよい。
なお、文字差分情報は、例えば、互いに異なる部分の位置、大きさ、両者がどのように異なるのか等を示す情報としてもよい。或いは、第1文字画像データの中から上記異なる部分に対応する画像データを抽出すると共に、第2文字画像データの中から上記異なる部分に対応する画像データを抽出し、該抽出した画像データの各々及び該画像データの位置情報を文字差分情報としてもよい。或いは、第1の実施形態で、差分画像を表わす差分画像データを生成したように、文字のみについて差分画像データ(文字差分画像データ)を生成して、これを文字差分情報としてもよい。
なお、ステップ220では、第1文字描画命令と第2文字描画命令の文字コードが異なる場合に、ステップ222で第1文字描画命令と第2文字描画命令とを個別に実行して2つの文字画像データを生成する例について説明したが、文字の大きさが異なる場合にも、ステップ222で同様に各命令を個別に実行して2つの文字画像データを生成するようにしてもよい。
なお、ここでは説明を省略したが、例えば、第1PDLデータ及び第2PDLデータとで、同一位置において、一方では文字が描画されるが他方では文字が描画されない等の場合もある。このような場合にも、該文字画像が差分として抽出されるように、文字コードやフォントを比較することなく、該文字に関するフォント指定命令及び文字描画命令を実行して展開し、該展開した画像データを第1記憶領域及び第2記憶領域のうち上記実行した命令に対応する記憶領域に記憶する。
また、ここでは、文字コードが異なる場合には、フォントを統一せずに展開する例について説明したが、文字コードの違いを判定せず、フォントの違いのみを判定して、フォントが異なる場合には、第1フォント指定命令及び第2フォント指定命令の少なくとも一方を変更してフォントを統一し、第1文字描画命令及び第2文字描画命令を個別に実行して第1文字画像データ及び第2文字画像データを生成して、差分を抽出するようにしてもよい。描画位置が同一の文字のフォントを統一すれば、フォントの違いによる差分が抽出されることが抑制される。
次に、図形・イメージ展開差分抽出部40により行なわれる図形・イメージ処理について説明する。図10は、図形・イメージ処理の流れを示すフローチャートである。
ステップ240において、図形・イメージ展開部52は、第1PDLデータの第1図形描画命令及び第1イメージ描画命令を実行して展開し、ビットマップの画像データ(第1図形・イメージ画像データ)を生成する。
ステップ242において、図形・イメージ展開部52は、第2PDLデータの第2図形描画命令及び第2イメージ描画命令を実行して展開し、ビットマップの画像データ(第2図形・イメージ画像データ)を生成する。
ステップ244において、図形・イメージ差分抽出部54は、展開して得られた2つの画像データ(第1図形・イメージ画像データと第2図形・イメージ画像データ)の各々を比較する。
ステップ246において、図形・イメージ差分抽出部54は、第1図形・イメージ画像データと第2図形・イメージ画像データの差分(異なる部分)を抽出する。そして、該差分を示す情報(以下、図形・イメージ差分情報)を差分画像生成部42に供給する。
なお、図形・イメージ差分情報は、例えば、互いに異なる部分の位置、大きさ、両者がどのように異なるのか等を示す情報としてもよい。或いは、第1図形・イメージ画像データの中から上記異なる部分に対応する画像データを抽出すると共に、第2図形・イメージ画像データの中から上記異なる部分に対応する画像データを抽出し、該抽出した画像データの各々及び該画像データの位置情報を図形・イメージ差分情報としてもよい。或いは、第1の実施形態で、差分画像を表わす差分画像データを生成したように、図形及びイメージついての差分画像データ(図形・イメージ差分画像データ)を生成して、これを図形・イメージ差分情報としてもよい。
図8のステップ204の文字処理及びステップ206の図形・イメージ処理が終了した後は、ステップ208において、差分画像生成部42は、文字差分情報及び図形・イメージ差分情報に基づいて、全体の差分を示す差分画像を表わす差分画像データを生成する。例えば、文字差分情報が上記説明した文字差分画像データであって、図形・イメージ差分情報が上記説明した図形・イメージ差分画像データである場合には、差分画像生成部42は、文字差分画像データと図形・イメージ差分画像データとを重畳して合成し、差分が明示された差分画像を表わす差分画像データを生成する。これにより、例えば、第1の実施形態で図5(D)を参照して例示した差分画像を示す差分画像データが生成される。
ステップ210において、差分表示部44は、差分画像生成部42により生成された差分画像データに基づいて、差分画像を表示する。
以上説明したように、第1PDLデータと第2PDLデータとで、フォントが異なる命令が含まれている場合には、フォントを統一して展開するようにしたため、フォントのみが異なる文字が差分として抽出されることが抑制される。
なお、第1PDLデータに、第1フォント指定命令、第1文字描画命令、第1図形描画命令、及び第1イメージ描画命令の各種類の命令が含まれているとは限らない。この場合には、含まれている命令を抽出して供給先に供給すればよい。第2PDLデータも同様である。ただし、文字展開差分抽出部38に、第1PDLデータ及び第2PDLデータの一方のみのフォント指定命令及び文字描画命令が供給された場合には、判断部46及び文字差分抽出部50の処理は行なわれず、文字展開部48による展開処理のみが行なわれ、展開された文字画像データが文字差分情報として、差分画像生成部42に供給されるようにしてもよい。また、同様に、図形・イメージ展開差分抽出部40に対して第1PDLデータ及び第2PDLデータの一方のみの図形描画命令及びイメージ描画命令が供給された場合には、図形・イメージ展開差分抽出部40においては、図形・イメージ差分抽出部54による差分抽出は行なわず、図形・イメージ展開部52により展開された図形・イメージ画像データを図形・イメージ差分情報として差分画像生成部42に供給されるようにしてもよい。
また、本実施形態では、文字描画命令及びフォント指定命令と、文字描画命令及びフォント指定命令以外の命令(ここでは、イメージ・図形描画命令)とを別々に処理する例について説明したが、これに限定されない。例えば、第1PDLデータに含まれるフォント指定命令及び第2PDLデータに含まれるフォント指定命令の少なくとも一方を、予め同一位置に描画する文字のフォントが同一となるように変更した上で、第1PDLデータ全体及び第2PDLデータ全体の各々を個別に展開し、展開して得られた2つの画像データを比較して差分を抽出するようにしてもよい。
[第3の実施形態]
第3の実施形態では、差分抽出対象の2つのデータが表わす画像の各々を複数の部分領域に分割し、対応する部分領域毎に差分抽出処理を行なう例について説明する。ただし、ここでは、2つのデータ間で対応する部分領域の一方にオブジェクトが存在しない場合には、画素毎に画素値を比較する差分抽出処理を実行せずに、他方の部分領域の画像そのものを、差分を表わす画像として扱い処理するものとする。
なお、第3の実施形態の情報処理装置のハードウェア構成は、第1の実施形態と同様とされるが、機能構成は、第1の実施形態と異なるため、第3の実施形態の情報処理装置の符号を10bとして、第1の実施形態の情報処理装置10と区別して説明する。
図11は、第3の実施形態に係る情報処理装置10bの構成を機能的に示した機能構成図である。情報処理装置10bは、データ取得部56、PDLデータ解析部58、領域抽出部60、差分抽出実行判定部62、PDLデータ展開部64、差分抽出部66、差分画像生成部68、及び差分表示部69を備えている。
データ取得部56は、差分を抽出する対象となるPDLデータと読取画像データとを取得する。
PDLデータ解析部58は、データ取得部56で取得されたPDLデータを解析し、該PDLデータが表わす画像を複数の部分領域に分割したときの部分領域毎に、オブジェクトを描画する命令をPDLデータから抽出し、抽出した命令を部分領域情報として差分抽出実行判定部62に供給する。ただし、PDLデータ解析部58は、オブジェクトが描画されない部分領域については、オブジェクトが描画されない旨を示す情報を部分領域情報として差分抽出実行判定部62に供給する。
領域抽出部60は、読取画像データが表わす画像内の、PDLデータ解析部58により作成された部分領域情報に対応する部分領域の画像データ(部分読取画像データ)を抽出し、該抽出した部分読取画像データを差分抽出実行判定部62に供給する。
差分抽出実行判定部62は、部分領域情報に基づいて、該部分領域情報に対応する部分領域にオブジェクトが描画されるか否かを判定する。差分抽出実行判定部62は、部分領域情報が、オブジェクトが描画されない旨を示す情報である場合には、該部分領域にオブジェクトが描画されないと判定し、部分領域情報にPDLデータの命令が含まれている場合には、該部分領域にオブジェクトが描画されると判定する。
差分抽出実行判定部62は、オブジェクトが描画されると判定した場合には、該部分領域については差分抽出部66で差分抽出処理が行なわれるように、部分領域情報をPDLデータ展開部64に供給すると共に、該部分領域情報に対応する部分領域の部分読取画像データを差分抽出部66に供給する。また、差分抽出実行判定部62は、オブジェクトが描画されないと判定した場合には、該部分領域については差分抽出部66による差分抽出処理が行なわれないように、該部分領域情報に対応する部分領域の部分読取画像データを差分画像生成部68に供給する。差分画像生成部68では、該部分読取画像データが差分を示す情報として処理される。
PDLデータ展開部64は、差分抽出実行判定部62から供給された部分領域情報に含まれるPDLデータの命令(部分PDLデータ)に基づいて展開処理を実行する。展開処理して得られた部分領域のビットマップの画像データ(部分PDL展開画像データ)は、差分抽出部66に供給される。
差分抽出部66は、PDLデータ展開部64から供給された部分PDL展開画像データと、差分抽出実行判定部62から供給された部分読取画像データとを比較して差分を抽出する。該抽出した差分を示す情報(部分差分情報)は差分画像生成部68に供給される。差分抽出部66の処理は、比較する対象が部分PDL展開画像データと部分読取画像データであるということ以外は、第1の実施形態の差分抽出部28での処理と同様に行なわれる。
差分画像生成部68は、差分抽出部66から供給された部分差分情報、及び差分抽出実行判定部62から供給された部分読取画像データに基づいて、部分領域毎の差分画像を表わす画像データを生成し、該部分領域毎の画像データを合成して、頁全体の差分画像を表わす差分画像データを生成する。
差分表示部69は、差分画像生成部30で生成された差分画像データに基づいて、差分画像を表示する。
次に、第3の実施形態における作用を、図12を用いて説明する。
図12は、情報処理装置10bで実行される画像処理(差分抽出処理を含む)の流れを示すフローチャートである。
ステップ300において、データ取得部56は、第1の実施形態のデータ取得部20と同様に、差分抽出対象であるPDLデータと読取画像データとを取得する。データ取得部56は、取得したPDLデータをPDLデータ解析部58に供給し、読取画像データを領域抽出部60に供給する。
ステップ302において、PDLデータ解析部58は、データ取得部56から供給されたPDLデータを解析し、部分領域情報を生成して、差分抽出実行判定部62に供給する。具体的には、前述したように、PDLデータ解析部58は、該PDLデータが表わす画像を複数の部分領域に分割したときの部分領域毎に、オブジェクトを描画する命令をPDLデータから抽出し、抽出した命令を部分領域情報として差分抽出実行判定部62に供給する。ただし、PDLデータ解析部58は、オブジェクトが描画されない部分領域については、オブジェクトが描画されない旨を示す情報を部分領域情報として差分抽出実行判定部62に供給する(図13(A)も参照)。
ステップ304において、領域抽出部60は、データ取得部56から供給された読取画像データから、PDLデータ解析部58により作成された部分領域情報に対応する部分領域の画像データ(部分読取画像データ)を抽出し、該抽出した部分読取画像データを差分抽出実行判定部62に供給する。
ステップ306において、差分抽出実行判定部62は、PDLデータ解析部58から供給された部分領域情報に基づいて、該部分領域情報に対応する部分領域にオブジェクトが描画されるか否かを判定する。差分抽出実行判定部62は、部分領域情報が、オブジェクトが描画されない旨を示す情報である場合には、該部分領域にオブジェクトは描画されないと判定し、部分領域情報にPDLデータの命令が含まれている場合には、該部分領域には何らかのオブジェクトが描画されると判定する。
差分抽出実行判定部62は、ステップ306において、上記部分領域にオブジェクトが描画されないと判定した場合には、該部分領域情報に対応する部分領域の部分読取画像データが差分として処理されるように、該部分読取画像データを差分画像生成部68に供給する。例えば、図13(A)及び(B)に示すように、PDLデータにおいてオブジェクトが描画されない空の領域があり、読取画像データの該空の領域に対応する領域には何らかの画像が描画されている場合には、読取画像データの該描画されている画像は全て差分として抽出できる。従って、該部分領域に対応する部分読取画像データを差分として用いれば、差分抽出部66において特別な差分抽出処理を行なわずともよいため、ここでは、差分抽出実行判定部62は、部分読取画像データを差分画像生成部68に供給するようにしている。
ステップ308において、差分画像生成部68は、差分抽出実行判定部62から供給された部分読取画像データを、PDLデータと読取画像データの上記部分領域における差分を示す差分画像の画像データとして、予め定められた記憶領域に保存する。
一方、差分抽出実行判定部62は、ステップ306において、上記部分領域にオブジェクトが描画されると判定した場合には、部分領域情報をPDLデータ展開部64に供給すると共に、該部分領域情報に対応する部分領域の部分読取画像データを差分抽出部66に供給する。
ステップ310において、PDLデータ展開部64は、差分抽出実行判定部62から供給された部分領域情報に含まれるPDLデータの命令(部分PDLデータ)に基づいて展開処理を実行する。PDLデータ展開部64は、展開処理して得られた部分領域のビットマップの画像データ(部分PDL展開画像データ)を、差分抽出部66に供給する。
ステップ312において、差分抽出部66は、PDLデータ展開部64から供給された部分PDL展開画像データと、差分抽出実行判定部62から供給された部分読取画像データとを比較して差分を抽出する。差分抽出部66は、該抽出した差分を示す情報(部分差分情報)を差分画像生成部68に供給する。
ステップ314において、差分画像生成部68は、差分抽出部66から供給された部分差分情報を、予め定められた記憶領域に保存する。
ステップ308或いはステップ314の後は、ステップ316の処理が行なわれる。ステップ316においては、差分抽出部66は、上記PDLデータが表わす画像を複数の部分領域に分割したときの部分領域の中で未処理の領域があるか否かを判断する。ステップ316において否定判断された場合には、ステップ302に戻り、他の部分領域について上記処理が繰り返される。また、ステップ316において肯定判断された場合には、未処理の領域はない、すなわち、全ての部分領域の処理が終了したため、ステップ318に進む。
ステップ318において、差分画像生成部68は、記憶領域に保存されている部分差分情報と部分読取画像データとに基づいて、差分画像データを生成する。具体的には、差分画像生成部68は、部分差分情報に基づいて、部分領域毎の差分画像(部分差分画像)を表わす部分差分画像データを生成する。差分抽出実行判定部62から供給された部分読取画像データは、対応する部分領域の差分を表わす部分差分画像データそのものであるため、差分画像生成部68は、部分読取画像データ及び部分差分画像データの各々を、該当する部分領域の位置に並べて合成し、頁全体の差分画像データを生成する。なお、差分抽出部66により、部分差分情報として部分差分画像データが生成された場合には、これがそのまま差分画像データの生成に用られる。
ステップ320において、差分表示部69は、差分画像生成部68で生成された差分画像データに基づいて、差分画像を表示する。差分画像は、例えば異なる部分については色を変更する等、利用者に差分が明示されるように表現された画像とすることができ、第1の実施形態で例示したように、様々な表示形態が採用されうる。
なお、上記では説明を省略したが、部分読取画像データが表わす部分画像も、空の画像(オブジェクトが何も描画されていない画像)となる場合があるが、この場合には、差分画像生成部68は、第1の実施形態で例示した差分を明示するための画像処理(枠画像を重畳する、或いは色を変更する等)を施すことなく空白の画像データをそのまま合成して差分画像データを生成すればよい。
このように、差分抽出実行判定部62により部分領域毎にオブジェクトが描画されるか否かを判定し、描画されないと判定した場合には、差分抽出部66による差分抽出処理が行なわれないように制御されるため、画像処理が効率化される。
差分抽出実行判定部62による判定を第1の実施形態で例示した情報処理装置10に適用して処理してもよい。なお、この場合には、機能構成は、第1の実施形態と異なるため、情報処理装置の符号を10cとして、第1の実施形態の情報処理装置10と区別して説明する。情報処理装置10cのハードウェア構成は、第1の実施形態と同様とする。
図14に、情報処理装置10cの機能構成図を示す。情報処理装置10cは、データ取得部20、PDLデータ解析部58、領域抽出部60、差分抽出実行判定部62、PDLデータ展開部22、フォント情報記憶部24、フォント置換部26、差分抽出部28、制御部29、差分画像生成部68、及び差分表示部69を備えている。ここで、第1の実施形態において図2を用いて説明した情報処理装置10、第3の実施形態において図11を用いて説明した情報処理装置10bと同様の構成には同一の符号を付し、ここでは簡単な説明のみを記載し、詳細な説明を省略する。
データ取得部56は、差分を抽出する対象となるPDLデータと読取画像データとを取得する。PDLデータ解析部58は、上記説明したように、PDLデータを解析して、部分領域毎に部分領域情報を生成し、差分抽出実行判定部62に供給する。領域抽出部60は、読取画像データから部分読取画像データを抽出して差分抽出実行判定部62に供給する。
差分抽出実行判定部62は、PDLデータ解析部58から供給された部分領域情報に対応する部分領域にオブジェクトが描画されるか否かを判定し、オブジェクトが描画されると判定した場合には、部分領域情報をPDLデータ展開部22に供給すると共に、該部分領域情報に対応する部分領域の部分読取画像データを差分画像生成部68に供給する。また、差分抽出実行判定部62は、オブジェクトが描画されないと判定した場合には、該部分領域情報に対応する部分領域の部分読取画像データを差分画像生成部68に供給する。
PDLデータ展開部22は、第1の実施形態と異なり、頁全体のPDLデータを展開するのではなく、部分領域情報に含まれる部分PDLデータを展開して部分PDL展開画像データを生成する。展開方法は、第1の実施形態で説明した通りである。また、PDLデータ展開部22は、制御部29からフォント置換指示を受け取った場合には、第1の実施形態で説明したように、PDLデータに含まれるフォント指定命令を変更して、再度部分PDLデータを展開する。
フォント情報記憶部24及びフォント置換部26の作用は、第1の実施形態で説明した通りである。
差分抽出部28には、PDLデータ展開部22から部分PDL展開画像データを取得すると共に、差分抽出実行判定部62から部分読取画像データを取得する。差分抽出部28は、取得した部分PDL展開画像データと部分読取画像データとの差分(異なる部分)を抽出する。制御部29は、差分の大きさ(面積、或いは画素数)に応じて、フォント指定命令の指定フォントを代替フォントに置換えるか否かを判断し、置換えると判断した場合には、PDLデータ展開部22に対して、フォント置換指示を出力する。フォント指定命令の指定フォントを置換えないと判断されるまで、差分抽出、判断、及びフォント置換え、及び再展開が繰り返される。また、差分抽出部28は、制御部29によりフォント指定命令の指定フォントを置換えないと判断したときの差分を示す部分差分情報を差分画像生成部68に供給する。
差分画像生成部68は、差分抽出部28から供給された部分差分情報、及び差分抽出実行判定部62から供給された部分読取画像データに基づいて、部分領域毎の差分画像を表わす画像データを生成し、該部分領域毎の画像データを合成して、頁全体の差分画像を表わす差分画像データを生成する。
差分表示部69は、差分画像生成部30で生成された差分画像データに基づいて、差分画像を表示する。
図15は、情報処理装置10cで実行される画像処理(差分抽出処理を含む)の流れを示すフローチャートである。
ステップ400からステップ412までの処理は、部分PDLデータを展開するのがPDLデータ展開部22であること以外は、上記図12を用いて説明したステップ300からステップ312までの処理と同じであるため、説明を省略する。
ステップ414では、制御部29は、ステップ412の比較結果に基づいて、部分PDL展開画像データの元となった部分PDLデータに含まれるフォント指定命令で指定された指定フォントを代替フォントに置換えて再展開するか否かを判断する。判断方法の具体例は、全体領域ではなく部分領域毎に判断すること以外は、第1の実施形態で説明した通りであるため、ここでは説明を省略する。
制御部29は、ステップ414において、指定フォントを代替フォントに置換えると判断した場合には、ステップ416において、PDLデータ展開部22に対してフォント置換指示を出力して、部分PDLデータに含まれるフォント指示命令による指定フォントを代替フォントに置換えさせて、再度展開させる。
PDLデータ展開部22は、フォント置換指示に従い、現在のフォント指令命令により指定されているフォントの情報をフォント置換部26に渡す。フォント置換部26は、該フォントの情報に基づいて、フォント情報記憶部24から代替フォントを読み出し、代替フォントの情報をPDLデータ展開部22に渡す。PDLデータ展開部22は、PDLデータのフォント指定命令による指定フォントを、フォント置換部26から受け取った情報が示す代替フォントに置換えて、再度展開処理を行なって、部分PDL展開画像データを生成し、差分抽出部28に供給する。
差分抽出部28は、ステップ412に戻って、新たに生成された部分PDL展開画像データと、読取画像データとを比較して差分を抽出する。これにより、ステップ414において、肯定判断された場合には、別の代替フォントに置換えられるように、再度ステップ416の処理を繰り返す。一方、ステップ414において、制御部29は、フォントを置換えないと判断した場合には、ステップ418において、差分抽出部28は、制御部29によりフォントを置換えないと判断したときの差分を示す情報(部分差分情報)を差分画像生成部68に供給し、差分画像生成部68は、該部分差分情報を予め定められた記憶領域に保存する。
なお、差分抽出部28は、フォントを複数回置換え、最も差分が小さくなったときの部分差分情報を選択して、差分画像生成部68に供給するようにしてもよい。
ステップ416の処理の後、或いは、ステップ406において、部分領域にオブジェクトが描画されないと判定され、ステップ408において、差分画像生成部68により差分抽出実行判定部62から供給された部分読取画像データが、予め定められた記憶領域に保存された後は、ステップ420に進む。ステップ420からステップ424までの処理は、上記図12を用いて説明したステップ316からステップ320までの処理と同じであるため、説明を省略する。
ところで、差分抽出実行判定部62による判定を第2の実施形態で例示した情報処理装置10aに適用して処理してもよい。なお、この場合には、機能構成は、第2の実施形態と異なるため、情報処理装置の符号を10dとして、第2の実施形態の情報処理装置10と区別して説明する。情報処理装置10dのハードウェア構成は、第1の実施形態と同様とする。
図16に、情報処理装置10dの機能構成図を示す。情報処理装置10dは、データ取得部34、PDLデータ解析部70、差分抽出実行判定部72、文字展開差分抽出部38、図形・イメージ展開差分抽出部40、PDLデータ展開部74、差分画像生成部76、及び差分表示部44を備えている。ここで、第2の実施形態において図7を用いて説明した情報処理装置10aと同様の構成には同一の符号を付し、ここでは簡単な説明のみを記載し、詳細な説明を省略する。
PDLデータ解析部70は、データ取得部34で取得された第1PDLデータ及び第2PDLデータを解析し、第1PDLデータが表わす画像を複数の部分領域に分割したときの部分領域毎に、オブジェクトを描画する命令を第1PDLデータから抽出し、抽出した命令を第1部分領域情報として差分抽出実行判定部72に供給すると共に、第2PDLデータが表わす画像を複数の部分領域に分割(分割方法は第1PDLデータと同様とする)したときの部分領域毎に、オブジェクトを描画する命令を第2PDLデータから抽出し、抽出した命令を第2部分領域情報として差分抽出実行判定部72に供給する。
なお、ここでは、第1PDLデータ及び第2PDLデータ間で対応する(同じ位置の)部分領域についての第1部分領域情報と第2部分領域情報とが対応付けられて差分抽出実行判定部72に供給されるようにする。
また、PDLデータ解析部70は、オブジェクトが描画されない部分領域については、オブジェクトが描画されない旨を示す情報を第1部分領域情報或いは第2部分領域情報として差分抽出実行判定部72に供給する。
差分抽出実行判定部72は、第2の実施形態のPDLデータ解析部36、及び第3の実施形態の図11に図示した差分抽出実行判定部62の機能を有する。
具体的には、差分抽出実行判定部72は、PDLデータ解析部70から供給された第1部分領域情報及び第2部分領域情報のいずれか一方が、オブジェクトが描画されない旨を示す情報である場合には、オブジェクトが描画される方の部分領域情報をPDLデータ展開部74に供給する。
また、差分抽出実行判定部72は、第1部分領域情報及び第2部分領域情報の両方にPDLデータの命令が含まれている場合には、第1部分領域情報からフォント指定命令(以下、第1フォント指定命令という)及び文字描画命令(以下、第1文字描画命令という)を抽出し、文字展開差分抽出部38に供給すると共に、第1部分領域情報からそれ以外の命令、例えば、図形描画命令(以下、第1図形描画命令という)及びイメージ描画命令(以下、第1イメージ描画命令という)を抽出し、図形・イメージ展開差分抽出部40に供給する。更に、差分抽出実行判定部72は、第2部分領域情報からフォント指定命令(以下、第2フォント指定命令という)及び文字描画命令(以下、第2文字描画命令という)を抽出して、文字展開差分抽出部38に供給すると共に、第2部分領域情報からそれ以外の命令、例えば、図形描画命令(以下、第2図形描画命令という)及びイメージ描画命令(以下、第2イメージ描画命令という)を抽出して、図形・イメージ展開差分抽出部40に供給する。
文字展開差分抽出部38及び図形・イメージ展開差分抽出部40の処理は、第2の実施形態で説明した通りであるため、説明を省略する。ただし、文字展開差分抽出部38で生成される差分情報は、部分領域毎の差分情報であるため、該差分情報を文字部分差分情報と呼称する。同様に、図形・イメージ展開差分抽出部40で生成される差分情報は、部分領域毎の差分情報であるため、該差分情報を図形・イメージ部分差分情報と呼称する。
PDLデータ展開部74には、第1部分領域情報又は第2部分領域情報が供給される。PDLデータ展開部74は供給された部分領域情報に含まれるPDLデータの命令(部分PDLデータ)に基づいて、展開処理を実行する。展開処理して得られた部分領域のビットマップの画像データ(部分PDL展開画像データ)は、差分画像生成部76に供給される。
差分画像生成部76は、文字展開差分抽出部38から供給された文字部分差分情報、及び図形・イメージ展開差分抽出部40から供給された図形・イメージ部分差分情報に基づいて、部分領域毎の差分画像を表わす画像データを生成し、該生成した部分領域毎の画像データと、PDLデータ展開部74から供給された部分PDL展開画像データとを合成して、頁全体の差分画像を表わす差分画像データを生成する。
差分表示部44は、差分画像生成部76で生成された差分画像データに基づいて、差分画像を表示する。
図17は、情報処理装置10dで実行される画像処理(差分抽出処理を含む)の流れを示すフローチャートである。
ステップ500において、データ取得部34は、差分抽出対象である2つのPDLデータ(第1PDLデータ及び第2PDLデータ)を取得する。
ステップ502において、PDLデータ解析部70は、データ取得部34により取得された第1PDLデータ及び第2PDLデータを解析し、前述したように第1部分領域情報及び第2部分領域情報を生成して、差分抽出実行判定部72に供給する。
ステップ504において、差分抽出実行判定部72は、第1部分領域情報に基づいて、該第1部分領域情報に対応する部分領域にオブジェクトが描画されるか否かを判定すると共に、第2部分領域情報に基づいて、該第2部分領域情報に対応する部分領域にオブジェクトが描画されるか否かを判定する。そして、差分抽出実行判定部72は、2つの部分領域のうちいずれか一方の部分領域にのみ、オブジェクトが描画され、他方の部分領域にはオブジェクトが描画されないと判定した場合には、ステップ504において肯定判定する。また、差分抽出実行判定部72は、2つの部分領域のうち双方の部分領域にオブジェクトが描画されると判定した場合には、ステップ504において否定判定する。
差分抽出実行判定部72は、ステップ504において、肯定判定した場合には、ステップ514において、第1部分領域情報及び第2部分領域情報のうち、オブジェクトが描画されると判定された方の部分領域情報をPDLデータ展開部74に供給する。PDLデータ展開部74は、供給された部分領域情報に含まれるPDLデータの命令(部分PDLデータ)に基づいて、展開処理を実行する。PDLデータ展開部74は、展開処理して得られた部分領域のビットマップの画像データ(部分PDL展開画像データ)を、差分画像生成部76に供給する。
一方、差分抽出実行判定部72は、ステップ504において否定判定した場合には、ステップ506において第1部分領域情報及び第2部分領域情報を解析する。差分抽出実行判定部72は、第1部分領域情報に含まれるPDLデータの命令から第1フォント指定命令及び第1文字描画命令を抽出し、第2部分領域情報に含まれるPDLデータの命令から第2フォント指定命令及び第2文字描画命令を抽出して、それぞれ文字展開差分抽出部38に供給する。また、差分抽出実行判定部72は、第1部分領域情報に含まれるPDLデータの命令から第1図形描画命令及び第1イメージ描画命令を抽出し、第2部分領域情報に含まれるPDLデータの命令から第2図形描画命令及び第2イメージ描画命令を抽出して、それぞれ図形・イメージ展開差分抽出部40に供給する。
その後、ステップ508において、文字展開差分抽出部38は、第2の実施形態において図9を用いて説明した文字処理を行ない、図形・イメージ展開差分抽出部40は、第2の実施形態において図10を用いて説明した図形・イメージ処理を行なう。なお、この文字処理及び図形・イメージ処理の流れは、頁単位ではなく部分領域単位で実行するということ以外は、第2の実施形態で説明した通りであるため、説明を省略する。
なお、前述したように、文字展開差分抽出部38で生成される文字差分情報は部分領域毎の文字部分差分情報であり、図形・イメージ展開差分抽出部40で生成される図形・イメージ差分情報も部分領域毎の図形・イメージ部分差分情報であるため、差分画像生成部76は、後述するステップ516で未処理の領域がないと判定され、ステップ518で差分画像データが生成されるまで、これら部分領域毎の差分情報を予め定められた記憶領域に保存しておくものとする。また、PDLデータ展開部74により生成された部分PDL展開画像データについても、同様に該記憶領域に保存しておくものとする。
ステップ508及びステップ510の処理後、或いはステップ514の処理後は、ステップ516において、PDLデータ解析部70は、上記第1PDLデータが表わす画像及び第2PDLデータが表わす画像を複数の部分領域に分割したときの部分領域の全てが処理されたか(未処理の領域があるか)否かを判断する。ステップ516において否定判断された場合には、ステップ302に戻り、他の部分領域について上記処理が繰り返される。また、ステップ516において肯定判断された場合には、未処理の領域はない、すなわち、全ての部分領域の処理が終了したため、ステップ518に進む。
ステップ518において、差分画像生成部76は、記憶領域に保存されている文字部分差分情報、図形・イメージ部分差分情報、及び部分PDL展開画像データに基づいて、頁全体の差分画像を表わす差分画像データを生成する。具体的には、文字部分差分情報に基づいて部分領域毎の文字についての差分画像を表わす文字部分差分画像データを生成し、図形・イメージ部分差分情報に基づいて部分領域毎の図形及びイメージについての図形・イメージ部分差分画像を表わす部分差分画像データを生成し、対応する部分領域の文字部分差分画像データと図形・イメージ部分差分画像データとを重畳して合成し、部分差分画像データを生成する。なお、文字展開差分抽出部38により、文字部分差分情報として文字部分差分画像データが生成された場合には、これがそのまま部分差分画像データの生成に用られ、図形・イメージ展開差分抽出部40により、図形・イメージ部分差分情報として図形・イメージ部分差分画像データが生成された場合には、これがそのまま部分差分画像データの生成に用いられる。
そして、差分画像生成部76は、上記生成した部分領域毎の部分差分画像データ、及びPDLデータ展開部74から供給された部分PDL展開画像データの各々を、該当する部分領域の位置に並べて合成し、頁全体の差分画像データを生成する。
ステップ520において、差分表示部44は、差分画像生成部76で生成された差分画像データに基づいて、差分画像を表示する。
なお、第1部分領域情報に、第1フォント指定命令、第1文字描画命令、第1図形描画命令、及び第1イメージ描画命令の各種類の命令が含まれているとは限らない。この場合には、含まれている命令を抽出して供給先に供給すればよい。第2部分領域情報も同様である。ただし、文字展開差分抽出部38に、第1部分領域情報及び第2部分領域情報の一方のみのフォント指定命令及び文字描画命令が供給された場合には、判断部46及び文字差分抽出部50の処理は行なわれず、文字展開部48による展開処理のみが行なわれ、展開された文字画像データが文字部分差分情報として、差分画像生成部76に供給されるようにしてもよい。また、同様に、図形・イメージ展開差分抽出部40に対して第1部分領域情報及び第2部分領域情報の一方のみの図形描画命令及びイメージ描画命令が供給された場合には、図形・イメージ展開差分抽出部40においては、図形・イメージ差分抽出部54による差分抽出は行なわず、図形・イメージ展開部52により展開された図形・イメージ部分画像データを図形・イメージ部分差分情報として差分画像生成部76に供給されるようにしてもよい。
また、上記では説明を省略したが、第1部分領域情報及び第2部分領域情報の各々がオブジェクトを描画しない旨の情報を示す場合があるが、この場合には、差分は抽出せず、空白の画像を表わす部分領域の画像データを生成して、差分画像生成部76にて合成すればよい。
なお、第3の実施形態において、頁全体の画像を複数の部分領域に分割するときの分割領域の大きさを、利用者が設定可能に構成してもよい。また、例えば、情報処理装置10b、10cにおいて、PDLデータに含まれるオブジェクトの描画命令の数を事前にカウントし、該カウント値が予め定められた値以上であれば、オブジェクトが描画されない領域は小さい(少ない)と判断して、差分抽出実行判定部62による部分領域毎の判定を行なわずに、第1の実施形態で説明した差分抽出部28による差分抽出を行なって処理するようにしてもよい。更に又、情報処理装置10dにおいて、2つのPDLデータの各々に含まれるオブジェクトの描画命令の数を各々事前にカウントし、該2つのカウント値の双方が予め定められた値以上であれば、オブジェクトが描画されない領域は小さい(少ない)と判断して、差分抽出実行判定部72による部分領域毎の判定を行なわずに、第2の実施形態で説明したように差分抽出を行なって処理するようにしてもよい。
更に又、情報処理装置10b、10cにおいて、比較対象のPDLデータと読取画像データの各々が表わす画像の縦横比を確認し、該2つの画像の向きが異なる場合には、差分抽出実行判定部62による部分領域毎の判定を行なわずに、第1の実施形態で説明した差分抽出部28による差分抽出を行なって処理するようにしてもよい。情報処理装置10dにおいても、同様に比較対象の2つのPDLデータの各々が表わす画像の縦横比を確認し、該2つの画像の向きが異なる場合には、差分抽出実行判定部72による部分領域毎の判定を行なわずに、第2の実施形態で説明したように差分抽出を行なって処理するようにしてもよい。或いは、向きが異なる場合には、向きを変更して向きが同じになるように画像処理してから処理するようにしてもよい。第1及び第2の実施形態でも同様である。
また、第1から第3の実施形態において、比較対象の2つのデータが表わす画像の大きさが異なる場合には、サイズが小さい方のデータを拡大する等により、サイズを統一して処理するようにしてもよい。
また、第1から第3の実施形態においては、コンピュータ98がプログラムを実行することにより情報処理装置10、10a、10b、10c、10dを実現する例について説明したが、例えば半導体集積回路、ASIC(Application Specific Integrated Circuit)等で実現することも可能であり、情報処理装置10、10a、10b、10c、10dの各機能部を、例えば電子回路等で実現することも可能である。