(57)【特許請求の範囲】
【請求項１】
画像形成装置におけるメタデータ決定方法であって、
抽出手段が、印刷データに含まれる文字データを抽出する抽出工程と、
ラスタライズ手段が、前記印刷データをラスタライズし、ラスタ画像を得るラスタライズ工程と、
領域分割手段が、前記ラスタ画像を文字領域と非文字領域とに分割する領域分割工程と、
決定手段が、前記文字領域のラスタ画像と、当該文字領域とほぼ同じ位置に描画される前記抽出工程で抽出された文字データとに基づいて、メタデータに用いる文字データを決定する決定工程と、
を有することを特徴とするメタデータ決定方法。
【請求項２】
前記決定工程では、前記文字領域のラスタ画像から切り出される文字画像とほぼ同じ位置に描画される前記抽出工程で抽出された複数の文字データが存在する場合、当該文字画像と当該複数の文字データとをパターンマッチングすることによって、前記メタデータに用いる文字データを決定することを特徴とする請求項１に記載のメタデータ決定方法。
【請求項３】
前記決定工程では、前記文字領域のラスタ画像から切り出される文字画像とほぼ同じ位置に描画される前記抽出工程で抽出された文字データが１つ存在する場合、当該文字データを前記メタデータとして用いることを特徴とする請求項１又は２に記載のメタデータ決定方法。
【請求項４】
前記決定工程では、前記パターンマッチングによって前記文字画像にマッチする文字データを決定し、当該決定された文字データを含む前記抽出工程で抽出された文字データの全体を前記メタデータに用いることを特徴とする請求項２に記載のメタデータ決定方法。
【請求項５】
更に、選択手段が、画像優先モードと印刷データ優先モードのいずれかを予めユーザに選択させる選択工程を更に有し、
前記決定工程では、前記画像優先モードが選択されている場合、前記文字画像にマッチする文字データを前記メタデータとして用い、一方、前記印刷データ優先モードが選択されている場合、前記文字画像にマッチする文字データを含む前記抽出工程で抽出された文字データの全体を前記メタデータに用いることを特徴とする請求項２に記載のメタデータ決定方法。
【請求項６】
更に、選択手段が、画像優先モードと印刷データ優先モードのいずれかを予めユーザに選択させる選択工程を更に有し、
前記決定工程では、前記文字領域のラスタ画像から切り出される文字画像とほぼ同じ位置に描画される前記抽出工程で抽出された文字データが１つ存在し、前記画像優先モードが選択されている場合、前記文字画像とほぼ同じ位置に描画される文字データを前記メタデータとして用い、一方、前記印刷データ優先モードが選択されている場合、前記文字画像とほぼ同じ位置に描画される文字データを含む前記抽出工程で抽出された文字データの全体を前記メタデータに用いることを特徴とする請求項３に記載のメタデータ決定方法。
【請求項７】
前記印刷データはＰＤＬデータであることを特徴とする請求項１乃至６のいずれか１項に記載のメタデータ決定方法。
【請求項８】
前記ラスタライズ工程では、前記印刷データをラスタライズし、前記ラスタ画像と当該ラスタ画像を構成する各画素の属性情報とを得て、
前記領域分割工程では、前記属性情報に基づいて、前記文字領域と前記非文字領域とに分割することを特徴とする請求項１に記載のメタデータ決定方法。
【請求項９】
追加手段が、前記非文字領域に対して文字認識処理を実行することにより、メタデータに追加する追加工程を、更に有することを特徴とする請求項１に記載のメタデータ決定方法。
【請求項１０】
検索手段が、指定された検索キーワードと前記メタデータとを用いて検索処理を実行する検索工程を、更に有することを特徴とする請求項１乃至９のいずれか１項に記載のメタデータ決定方法。
【請求項１１】
印刷データに含まれる文字データを抽出する抽出手段と、
前記印刷データをラスタライズし、ラスタ画像を得るラスタライズ手段と、
前記ラスタ画像を文字領域と非文字領域とに分割する領域分割手段と、
前記文字領域のラスタ画像と、当該文字領域とほぼ同じ位置に描画される前記抽出手段で抽出された文字データとに基づいて、メタデータに用いる文字データを決定する決定手段と、
を有することを特徴とする画像形成装置。
【請求項１２】
コンピュータに、請求項１乃至１０のいずれか１項に記載のメタデータ決定方法の各工程を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データからメタデータを決定する技術に関する。
【背景技術】
【０００２】
近年、デジタル複合機はコピー機能、プリンタ機能、ＦＡＸ機能、スキャン機能などに加え、大容量記憶装置を搭載することにより、入力画像を蓄積し再利用を可能とする画像蓄積サーバとしての機能も搭載されている。
【０００３】
従来、画像を蓄積する際に特定のメールＢＯＸやディレクトリへ保存することにより、再利用時にはメールＢＯＸやディレクトリ指定及びそのファイル名により利用する画像を特定することが可能である。
【０００４】
しかしながら、デジタル複合機に搭載される大容量記憶装置の容量は増大し、蓄積可能な画像の量も増大してきている。蓄積可能な画像量が増えることにより、メールＢＯＸやディレクトリ指定による蓄積画像の特定には限界が来ている。
【０００５】
また、画像蓄積サーバに蓄積されている画像から、所望の画像を特定する方法として、蓄積画像と共にテキストデータをメタデータとして保存し、メタデータを検索に利用するという方法がある。
【０００６】
メタデータは、入力画像に対して文字認識処理を施し、画像に含まれる文字情報として抽出することが可能である（例えば、特許文献１、２参照）。
【０００７】
ＰＣなどから印刷データがＰＤＬ（ページ記述言語）データとして通知される場合は、ＰＤＬデータをラスタライズしてラスタ画像とした後、ラスタ画像に文字認識処理を施し文字列情報を抽出する。
【０００８】
一方、ＰＤＬデータには、文字認識をするまでもなく、文字情報（文字コード）が含まれており、その文字情報を抽出してメタデータとするという方法もある（例えば、特許文献２参照）。
【特許文献１】特開2004-215067号公報
【特許文献２】特開平08-147446号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、文字認識処理の認識率は１００％ではなく誤った認識をする場合があり、認識精度の問題がある。また、文字認識処理そのもの演算コストがかかり、パフォーマンス的な問題もある。
【００１０】
一方、ＰＤＬデータに含まれる文字列情報を抽出し、メタデータとする場合も、以下のような問題がある。
（１）ＰＤＬデータには、文字データが１文字毎に独立したデータとして含まれる場合があり、一連の文字列として扱うことが難しい。
（２）文字画像が他の描画オブジェクトの背面となることにより、最終的なラスタ画像に表れない文字情報を抽出してしまう。
（３）ＰＤＬデータ中に文字としてではなく、グラフィックスやイメージ画像として文字が描画される場合があり、最終的なラスタ画像に表れる文字情報を抽出できない。
【００１１】
本発明は、印刷データをラスタライズしたラスタ画像の文字領域又は非文字領域にそれぞれ含まれる文字列を抽出することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、画像形成装置におけるメタデータ決定方法であって、抽出手段が、印刷データに含まれる文字データを抽出する抽出工程と、ラスタライズ手段が、前記印刷データをラスタライズし、ラスタ画像を得るラスタライズ工程と、領域分割手段が、前記ラスタ画像を文字領域と非文字領域とに分割する領域分割工程と、決定手段が、前記文字領域のラスタ画像と、当該文字領域とほぼ同じ位置に描画される前記抽出工程で抽出された文字データとに基づいて、メタデータに用いる文字データを決定する決定工程と、を有することを特徴とする。
【００１３】
また、本発明の画像形成装置は、印刷データに含まれる文字データを抽出する抽出手段と、前記印刷データをラスタライズし、ラスタ画像を得るラスタライズ手段と、前記ラスタ画像を文字領域と非文字領域とに分割する領域分割手段と、前記文字領域のラスタ画像と、当該文字領域とほぼ同じ位置に描画される前記抽出手段で抽出された文字データとに基づいて、メタデータに用いる文字データを決定する決定手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、印刷データをラスタライズしたラスタ画像の文字領域と、印刷データから抽出した文字データとを用いて、メタデータに用いる文字データを決定するので、より正確なメタデータを決定することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００１６】
＜画像形成装置の構成＞
まず、カラー複合機のハードウェア構成について、図１を用いて説明する。尚、本発明は、カラー複合機に限定されるものではなく、他のモノクロ複合機やプリンタ単体機など、他の画像形成装置にも適用できることは言うまでもない。
【００１７】
図１は、本実施形態におけるカラー複合機１００のハードウェア構成の一例を示す図である。カラー複合機１００は、スキャナ部１０１、レーザ露光部１０２、作像部１０３、定着部１０４、給紙／搬送部１０５で構成される。これらは、不図示のプリンタ制御部によって制御される。
【００１８】
スキャナ部１０１は、原稿台に置かれた原稿に対して照明を当て、原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する。レーザ露光部１０２は、画像データに応じて変調されたレーザ光などの光線を等角速度で回転する回転多面鏡（ポリゴンミラー）に入射させ、反射走査光として感光ドラムに照射する。
【００１９】
作像部１０３は、感光ドラムを回転駆動し、帯電器によって帯電させると共に、レーザ露光部１０２によって感光ドラム上に形成された潜像をトナーによって現像化する。そして、トナー像をシートに転写し、転写されずに感光ドラム上に残った微小トナーを回収する。この一連の電子写真プロセスを実行して作像する際に、シートが転写ベルトの所定位置に巻きつき、４回転する間に、現像ユニット（現像ステーション）が入れ替わりで順次この電子写真プロセスを繰り返し実行する。ここで、現像ユニットは、マゼンタ（Ｍ）、シアン（Ｃ）、イエロー（Ｙ）、ブラック（Ｋ）のトナーを持つ。そして、４回転の後、４色のフルカラートナー像が転写されたシートは転写ドラムを離れ、定着部１０４へ搬送される。
【００２０】
定着部１０４は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、作像部１０３によってトナー像が転写されたシート上のトナーを、熱と圧力によって溶解、定着させる。
【００２１】
給紙／搬送部１０５は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上備え、プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚を分離し、作像部１０３、定着部１０４へ搬送する。シートは作像部１０３の転写ドラムに巻きつけられ、４回転した後に定着部１０４へ搬送される。４回転する間に上述したＹＭＣＫ各色のトナー像がシートに転写される。また、シートの両面に画像形成する場合は、定着部１０４を通過したシートを再度作像部１０３へ搬送する両面搬送経路を通るように制御する。
【００２２】
プリンタ制御部は、複合機全体を制御するコントロールユニットと通信し、その指示に応じて制御を実行する。また、上述したスキャナ部１０１、レーザ露光部１０２、作像部１０３、定着部１０４、給紙／搬送部１０５の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。
【００２３】
＜コントロールユニットの構成＞
図２は、カラー複合機１００におけるコントロールユニット（コントローラ）の構成の一例を示すブロック図である。コントロールユニット２００は、画像入力デバイスであるスキャナ２０１や画像出力デバイスであるプリンタエンジン２０２と接続し、画像データの読み取りやプリント出力のための制御を行う。また、コントロールユニット２００は、ＬＡＮ１０や公衆回線２０４と接続することで、画像情報やデバイス情報をネットワーク経由で入出力するためのユニットでもある。
【００２４】
コントロールユニット２００において、ＣＰＵ２０５は、システム全体を制御するための中央処理装置である。ＲＡＭ２０６は、ＣＰＵ２０５が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。ＲＯＭ２０７は、ブートＲＯＭであり、システムのブートプログラムが格納されている。ＨＤＤ２０８は、ハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データや後述するドキュメントデータなどを格納する。
【００２５】
操作部Ｉ／Ｆ２０９は、画像データなどを表示可能な表示画面を有する操作部２１０に対するインタフェースであり、操作部２１０に対して画像データを出力する。また、操作部Ｉ／Ｆ２０９は、操作部２１０から操作者（即ち、カラー複合機の使用者）が入力した情報をＣＰＵ２０５に伝える役割をする。更に、ネットワークＩ／Ｆ２１１は、例えば、ＬＡＮカードで実現され、ＬＡＮ１０に接続して外部装置との間で情報の入出力を行う。また、モデム２１２は公衆回線２０４に接続し、外部装置との間で情報の入出力を行う。
【００２６】
以上の各デバイスがコントロールユニット２００のシステムバス２１３上に配置されている。
【００２７】
次に、イメージバスＩ／Ｆ２１４は、システムバス２１３と後述する画像バス２１５とを接続するインタフェースであり、データ構造を変換するバスブリッジである。画像バス２１５は、画像データを高速に転送するバスであり、ＰＣＩバス又はＩＥＥＥ１３９４で構成される。この画像バス２１５上には、後述するＲＩＰ２１６、デバイスＩ／Ｆ２１７、スキャナ画像処理２１８、プリンタ画像処理２１９、画像編集用画像処理部２２０、ＣＭＭ２３０といったデバイスが接続される。
【００２８】
ＲＩＰ（ラスタイメージプロセッサ）２１６は、ディスプレイリスト（ＤＬ）を解釈し、ラスタ画像（ラスタイメージ）及びその各ピクセルに対応する属性情報（属性ビット）を作成（レンダリング）する。デバイスＩ／Ｆ２１７は、スキャナ２０１及びプリンタエンジン２０２とコントロールユニット２００とを接続し、画像データの同期系／非同期系の変換を行う。
【００２９】
また、スキャナ画像処理２１８は、入力画像データに対して、補正、加工、編集などの各種処理を行う。プリンタ画像処理２１９は、プリント出力画像データに対して、プリンタの補正、解像度変換等の処理を行う。画像編集用画像処理部２２０は、画像データの回転や画像データの圧縮伸長処理、ＲＩＰ２１６の生成した属性ビットに基づく各種画像処理を行う。ＣＭＭ（カラーマネージメントモジュール）２３０は、画像データに対して、プロファイルやキャリブレーションデータに基づく色変換処理を施す専用ハードウェアモジュールである。
【００３０】
＜コントローラソフトウェア構成＞
図３は、カラー複合機１００のコントロールユニット２００上で動作するコントローラソフトウェアのモジュール構成の一例を示すブロック図である。尚、このソフトウェアは、ＲＯＭ２０７に格納されており、ＣＰＵ２０５によって実行される。
【００３１】
ジョブコントロール処理３０１は、図示／不図示の各ソフトウェアモジュールを統括・制御し、カラー複合機１００内で発生する全てのジョブの制御を行う。ネットワーク処理３０２は、主にネットワークＩ／Ｆ２１１を介して外界との通信を制御するモジュールであり、ＬＡＮ１０の各機器との通信制御を行う。ネットワーク処理３０２は、ＬＡＮ１０の各機器からの制御コマンドやデータを受信すると、その内容をジョブコントロール処理３０１へ通知する。また、ジョブコントロール処理３０１からの指示に基づいて、ＬＡＮ１０の各機器へ制御コマンドやデータの送信を行う。
【００３２】
ＵＩ処理３０３は、主に操作部２１０に係る制御を行う。操作者が操作部２１０を操作した内容を、ジョブコントロール処理３０１へ通知すると共に、ジョブコントロール処理３０１からの指示に基づいて、操作部２１０上の表示画面の表示内容を制御する。ＦＡＸ処理３０４は、ＦＡＸ機能の制御を行う。ＦＡＸ処理３０４は、モデム２１２を介してＦＡＸ受信を行い、ＦＡＸ画像特有の画像処理を施した後、受信画像をジョブコントロール処理３０１へ通知する。また、ジョブコントロール処理３０１からの指定される画像を、指定通知先へＦＡＸ送信を行う。
【００３３】
ＰＤＬ解析処理３０５は、ジョブコントロール処理３０１の指示に基づいてＰＤＬデータを解析し、ＲＩＰ処理３１１で処理可能なＤＬ及び後述するＰＤＬ文字情報を生成し、ジョブコントロール処理３０１生成へ通知する。色変換処理３０９は、ジョブコントロール処理３０１の指示に基づいて指示画像に対して色変換処理を行い、色変換処理後の画像をジョブコントロール処理３０１へ通知する。ジョブコントロール処理３０１は、色変換処理３０９に対して入力色空間情報、出力色空間情報及び色変換を適用する画像を通知する。
【００３４】
ＲＩＰ処理３１１は、ＰＤＬ解析処理３０５で生成したＤＬを、ＲＩＰ２１６を制御してレンダリングすることで、ラスタ画像（ラスタイメージ）及びその各ピクセルに対応する属性ビットを作成し、ジョブコントロール処理３０１へ通知する。生成される各属性ビットは、対応するピクセルの属性を示すデータであり、１ｂｉｔのカラービット、１ｂｉｔの細線／小文字ビット及び２ｂｉｔのオブジェクト種ビットの３つのビットフィールド計４ｂｉｔで構成されている。
【００３５】
カラービットは対応するピクセルがカラーオブジェクトを構成するピクセルであるか、白黒オブジェクトを構成するピクセルであるかを表す。このビットが“０”である時にはカラーオブジェクトを構成するピクセルであり、“１”である時には白黒オブジェクトを構成するピクセルであることを示す。
【００３６】
細線／小文字ビットは対応するピクセルが細線又は小文字を構成するピクセルであるか否かを表す。このビットが“１”である時には細線又は小文字を構成するピクセルであることを示し、“０”である時にはそれ以外を構成するピクセルであることを示す。
【００３７】
オブジェクト種ビットは対応するピクセルがどのような種類の描画オブジェクトを構成しているかを表す。このビットが“０１”の時には文字オブジェクトを、“１０”の時にはグラフィックスオブジェクトを、“１１”の時にはイメージオブジェクトを、“００”の時には、ラインオブジェクトを、構成するピクセルであることを示す。
【００３８】
また、細線／小文字ビットが“１”で、オブジェクト種ビットが文字オブジェクトであることを示す“０１”の時には、そのピクセルは小文字を構成するピクセルである。また、ラインオブジェクトであることを示す“００”の時には、そのピクセルは細線を構成するピクセルであることを示す。
【００３９】
プリント処理３０７は、ジョブコントロール処理３０１の指示に基づいて画像編集用画像処理部２２０、プリンタ画像処理２１９及びプリンタエンジン２０２を制御し、指定画像の印刷処理を行う。プリント処理３０７は、ジョブコントロール処理３０１より、画像データ、画像情報（画像データのサイズ、カラーモード、解像度）、レイアウト情報（オフセット、拡大縮小、面付け）及び出力用紙情報（サイズ、印字方向）の情報を受け付ける。続いて、画像編集用画像処理部２２０及びプリンタ画像処理２１９を制御して、画像データに対して適切な画像処理を施し、プリンタエンジン２０２を制御して指定用紙への印刷を行う。
【００４０】
スキャン処理３１０は、ジョブコントロール処理３０１の指示に基づいてスキャナ２０１及びスキャナ画像処理２１８を制御して、スキャナ２０１上にある原稿の読み込みを行う。ジョブコントロール処理３０１の指示には、カラーモードが含まれており、スキャン処理３１０ではカラーモードに応じた処理が行われる。即ち、カラーモードがカラーであれば、原稿をカラー画像として入力し、カラーモードがモノクロであれば、原稿をモノクロ画像として入力する。また、カラーモードがオートである場合には、プレスキャンにより原稿のカラー／モノクロ判定を行った後、判定結果に基づいた画像として入力する。
【００４１】
また、スキャン処理３１０は、スキャナ２０１の原稿台にある原稿のスキャンを実行し、デジタルデータとして画像の入力を行う。入力した画像のカラー情報は、ジョブコントロール処理３０１へ通知される。更に、スキャン処理３１０は入力画像に対してスキャナ画像処理２１８を制御して、画像の圧縮など、適切な画像処理を施した後、ジョブコントロール処理３０１へ画像処理済みの入力画像を通知する。
【００４２】
ドキュメント管理処理３０８は、ジョブコントロール処理３０１の指示に基づいて「ドキュメントデータ」を生成し、ＨＤＤ２０８へ格納する。また、ドキュメント管理処理３０８は、ジョブコントロール処理３０１が指定するドキュメントデータをＨＤＤ２０８から検索し、ジョブコントロール処理３０１へ通知する。
【００４３】
メタデータ生成処理３０６は、ジョブコントロール処理３０１の指示に基づいて、後述するメタデータの生成を行う。
【００４４】
［第１の実施形態］
以上の構成において、ＦＡＸ受信やスキャンによる入力画像や外部のコンピュータより受信したＰＤＬデータからメタデータを生成し、ドキュメントデータを生成する、第１の実施形態での処理を説明する。特に、本発明に係る、ＰＤＬデータから文字列を抽出してメタデータを決定するメタデータ決定方法について詳しく説明する。
【００４５】
＜ドキュメントデータ生成処理＞
まず、ドキュメントデータ生成処理のデータフローを、図４及び図５に示すデータフロー図を参照して説明する。ドキュメントデータは、ユーザの操作部２１０の操作やリモート端末からの指示によりカラー複合機１００が画像蓄積モードに設定されている場合に生成される。
【００４６】
図４は、ＦＡＸ受信時及び画像スキャンにおけるメタデータ生成処理及びドキュメントデータ生成処理のデータフローを示す図である。カラー複合機１００がＦＡＸ受信を行うと、ＦＡＸ処理３０４を起動し、ＦＡＸ受信データより入力画像を生成する（ｄ１）。また、カラー複合機１００がユーザの操作によりスキャンを指示されると、スキャン処理３１０を起動し、スキャン画像に適切な画像処理を施して入力画像を生成する（ｄ２）。
【００４７】
次に、メタデータ生成ｄ３では、ＦＡＸ受信ｄ１又はスキャンｄ２の生成した入力画像が入力されると、メタデータ生成処理３０６を起動し、ＯＣＲ処理等を行ってメタデータを生成する。ドキュメントデータ生成ｄ４では、ドキュメント管理処理３０８を起動し、入力画像及びメタデータを用いてドキュメントデータを生成してＨＤＤ２０８へ格納する。
【００４８】
図５は、ＰＤＬデータ受信時におけるメタデータ生成処理及びドキュメントデータ生成処理のデータフローを示す図である。カラー複合機１００が外部のコンピュータからＰＤＬデータを受信すると、ＰＤＬ解析処理３０５を起動し、ディスプレイリスト（ＤＬ）及びＰＤＬ文字データを生成する（ｄ５）。ＰＤＬ文字データについては、更に後述する。
【００４９】
レンダリングｄ６では、ＲＩＰ処理３１１を起動し、ＰＤＬデータ解析ｄ５の生成したＤＬを用いてラスタイメージ及び属性ビットを生成する。次に、ＰＤＬデータ受信時のメタデータ生成ｄ３では、メタデータ生成処理３０６を起動し、ＰＤＬデータ解析ｄ５の生成したＰＤＬ文字データと、レンダリングｄ６の生成したラスタイメージ及び属性ビットとを用いてメタデータを生成する。
【００５０】
ＰＤＬデータ受信時のドキュメントデータ生成ｄ４では、ドキュメント管理処理３０８を起動し、上述したラスタイメージ及びメタデータを用いてドキュメントデータを生成してＨＤＤ２０８へ格納する。
【００５１】
＜ＰＤＬ解析処理＞
ここで、ＰＤＬデータからＤＬ及びＰＤＬ文字データを生成する処理を、図６を用いて説明する。
【００５２】
図６は、第１の実施形態でのＰＤＬ解析処理を示すフローチャートである。外部ネットワークＬＡＮ１０を介してカラー複合機１００へ送信されたＰＤＬデータは、ネットワーク処理３０２を介してジョブコントロール処理３０１へ通知される。ジョブコントロール処理３０１は、ＰＤＬデータを解析させるために、ＰＤＬ解析処理３０５を起動する。
【００５３】
ＰＤＬ解析処理３０５は、送られてきたＰＤＬデータの解析処理を順次行い（Ｓ６０１）、解析処理結果に応じてＰＤＬデータ内の各データに対する処理の分岐を以下のように行う（Ｓ６０２）。解析処理の結果、ページ開始処理のデータであると判断した場合はＳ６０３へ進み、新たなページ開始処理としてＤＬのオープン処理を行い、Ｓ６０８へ進む。また、ページ終了処理のデータであると判断した場合はＳ６０４へ進み、ページ終了処理として、ＲＩＰ処理３１１で解釈可能な形式にＤＬを整形し、ＤＬのクローズ処理を行った後、Ｓ６０８へ進む。
【００５４】
また、解析処理の結果、描画オブジェクトのデータであると判断した場合は、Ｓ６０５へ進む。Ｓ６０５では、描画オブジェクトの種類を判断し、描画オブジェクトの種類が文字又は文字列である場合はＳ６０６へ進み、ＰＤＬデータから文字及び文字列の描画オブジェクトの情報を抽出して、ＰＤＬ文字データを生成する。文字及び文字列の描画オブジェクトには、描画すべき文字の文字コード、サイズ、描画位置情報が含まれている。これらの情報を用いて、文字列全体のテキスト情報、文字列全体のバウンディングボックス、文字列に含まれる各文字のテキスト情報及び各文字のバウンディングボックス情報を、ＰＤＬ文字データとして生成し、Ｓ６０７へ進む。
【００５５】
一方、描画オブジェクトがグラフィックス又はイメージである場合はＳ６０７へ進む。Ｓ６０７では、描画オブジェクトをＲＩＰ処理３１１でレンダリングするためのＤＬを生成する。ＤＬには、各オブジェクトの形状や色、論理描画指定、オブジェクトの種類の情報などが含まれる。
【００５６】
次に、Ｓ６０８で、解析すべきＰＤＬデータが残っているか否かを判断し、残っている場合はＳ６０１に戻り、ＰＤＬ解析処理を継続し、上述した処理を繰り返す。また、通知されたＰＤＬデータを全て解析済みであれば、この処理を終了する。
【００５７】
尚、上述のＰＤＬには、ＬＩＰＳ（商標）やＰＳ（商標）など様々な種類が存在するが、Ｓ６０１でＰＤＬ解析処理３０５のロジックをそれぞれの言語に適したＰＤＬ解析処理を適用すればよい。ここで、ＬＩＰＳ（商標）はLBP Image Processing Systemの略であり、またＰＳ（商標）はPostScriptの略である。
【００５８】
また、ジョブコントロール処理３０１は、予めＰＤＬの種別を判定し、ＰＤＬ解析処理３０５が実行される際に適切なロジックが適用されるように制御する。
【００５９】
＜ＰＤＬ文字データ＞
ここで、ＰＤＬ解析処理３０５がＰＤＬデータを解析し、文字列部分の情報を抽出して生成したＰＤＬ文字データについて、図７〜図９を用いて説明する。アプリケーションの種類やプリントドライバの種類に応じて出力されるＰＤＬデータは異なる場合がある。即ち、同じテキスト文字列であっても、アプリケーションやドライバの種類によっては、ＰＤＬデータ内の文字列は異なる記述になることがある。例えば、アプリケーションがドライバに対して複数の文字を１つの文字列のまとまりとして出力して、該ドライバがＰＤＬデータを作成する場合、該テキスト部分は１つの文字列単位で記述されることがある。一方、ドライバに対して複数の文字をバラバラに出力するようなアプリケーションの場合、該ドライバは１文字ずつバラバラの状態でＰＤＬデータにするので、１文字ずつの記述になったり、各文字の出現順が変わってしまったりすることがある。
【００６０】
図７は、ＰＤＬデータに文字列の「Ｈｅｌｌｏ」を含む描画オブジェクトの描画結果を示す図である。図８は、まとまった状態で文字列部分が記述されているＰＤＬデータから、該文字列部分が抽出されて生成されたＰＤＬ文字データを示す例である。図９は、一文字ずつの状態で文字列部分が記述されているＰＤＬデータから、各文字列部分が抽出されて生成されたＰＤＬ文字データを示す例である。
【００６１】
図８及び図９において、＜Ｓｔｒｉｎｇｓ＞タグは、ＰＤＬデータに記述されていた文字列の情報を含んでいる。また、＜Ｓｔｒｉｎｇｓ＞タグと＜／Ｓｔｒｉｎｇｓ＞タグの間には、描画される各文字の情報を記述するための１つ以上の＜Ｃｈａｒ＞タグが含まれている。この＜Ｃｈａｒ＞タグと＜／Ｃｈａｒ＞タグの間には、描画される文字列に関する各文字の情報の詳細が＜Ｂｂｏｘ＞タグや＜Ｔｅｘｔ＞タグを用いて記述される。
【００６２】
＜Ｓｔｒｉｎｇｓ＞タグ内のＳｔｒｉｎｇ−Ｂｂｏｘ属性は、文字列のバウンディングボックス（文字列が描画される外接矩形領域）を表している。図８に示す例では、文字列「Ｈｅｌｌｏ」全体が左上座標（７．５、９．０）と右下座標（３７．１、１６．９）とで指定される矩形領域内に描画されることを示している。
【００６３】
＜Ｓｔｒｉｎｇｓ＞タグ内のＳｔｒｉｎｇｓ−ｔｅｘｔ属性は、文字列として指定されているテキスト情報（文字コード）を含む。図８に示す例では、文字列のテキスト情報は“Ｈｅｌｌｏ”である。図９に示す例では、１文字ずつ別々の＜Ｓｔｒｉｎｇｓ＞タグ内に記述されており、最初の文字列のテキスト情報は“Ｈ”であることを示している。
【００６４】
＜Ｓｔｒｉｎｇｓ＞タグ内のＳｔｒｉｎｇｓ−ＩＤ属性は、メタデータ中の＜Ｓｔｒｉｎｇｓ＞タグのブロックを一意に識別可能なＩＤ情報を含む。
【００６５】
＜Ｃｈａｒ＞タグと＜／Ｃｈａｒ＞タグの間には、描画される文字列に関する各文字の情報が記述されており、＜Ｂｂｏｘ＞タグには、当該＜Ｃｈａｒ＞タグで示される１文字が描画される領域（バウンディングボックス）を示している。図８に示す例では、文字列「Ｈｅｌｌｏ」に含まれる文字「Ｈ」は左上座標（７．５、９．０）と右下座標（１５．４、１６．９）とで指定される矩形領域内にあることを示している。
【００６６】
尚、図９に示すように、文字列が一文字ずつバラバラで記述されている場合、Ｓｔｒｉｎｇ−Ｂｂｏｘ属性の示すバウンディングボックスと、＜Ｃｈａｒ＞タグの下にある＜Ｂｂｏｘ＞タグが示すバウンディングボックスとは一致する。
【００６７】
また、＜Ｃｈａｒ＞タグ下の＜Ｔｅｘｔ＞タグは、当該＜Ｃｈａｒ＞タグに対応する各文字のテキスト情報（文字コード）を示す。
【００６８】
＜メタデータ生成処理＞
ここで、メタデータ生成処理３０６がメタデータを生成する処理を、図１０〜図１３を用いて説明する。
【００６９】
図１０は、メタデータ生成処理３０６の処理を示すフローチャートである。まず、Ｓ１００１で、入力されてきたデータ（スキャン画像やＦＡＸ画像やＰＤＬデータ）に対応付ける基本メタデータを生成する。この基本メタデータには、入力種別（スキャン、ＦＡＸ、ＰＤＬ）、ページ番号、作成日時、操作者情報、カラー・モノクロ情報、アプリケーション種別、送信元情報が含まれる。アプリケーション種別は、ＰＤＬデータ受信時のみ含まれ、送信元情報はＰＤＬデータ受信時及びＦＡＸ受信時のみ含まれる。
【００７０】
尚、基本メタデータ情報として含まれる情報は上述のものに限られるものでなく、他の情報が含まれても良いことは言うまでもない。
【００７１】
次に、Ｓ１００２で、入力データ種別を判定する。ここで、入力データ種別がＰＤＬデータであればＳ１００３へ進み、入力データ種別がＦＡＸ受信した画像データ又はスキャンして得た画像データであればＳ１００９へ進む。Ｓ１００３では、ＲＩＰ処理３１１においてＰＤＬデータを解釈してレンダリングしたときに生成した属性ビットを利用して、文字領域と非文字領域（グラフィックス領域、イメージ領域）とに領域分割（領域識別）する。そして、その文字領域あるいは非文字領域として識別された各領域に対してＳ１００５〜Ｓ１００８の処理を繰り返す（Ｓ１００４）。
【００７２】
図１３において、（Ａ）はＲＩＰ処理３１１が生成するラスタイメージデータを示す図である。（Ｂ）は対応する属性ビットを可視的に表した図である。（Ｃ）は属性ビットを利用した領域分割の一例を示す図である。
【００７３】
図１３に示す（Ｂ）を見ると、ラスタイメージ上の各ピクセルにどのような種類の描画オブジェクトが描画されているかがわかる。この属性ビットの情報から、（Ｃ）の破線で囲まれたそれぞれの矩形領域に分割する。図１３に示す例では、１つのグラフィック領域と、２つのイメージ領域と、１つの文字領域とに分割されている。
【００７４】
次に、Ｓ１００５で、処理対象の領域の種別を判別し、Ｓ１００６へ進むかＳ１００７に進むか、処理を切り替える。ここで、処理対象の領域が文字領域である場合はＳ１００６へ進み、グラフィックス又はイメージ領域である場合はＳ１００７へ進む。
【００７５】
Ｓ１００６及びＳ１００７では、それぞれ後述する文字認識処理が行われ、処理対象の領域に含まれる文字列情報が抽出され、Ｓ１００８へ進む。Ｓ１００８では、Ｓ１００６又はＳ１００７で抽出された文字列情報をメタデータに追加する。
【００７６】
一方、入力データ種別がＦＡＸ受信画像又はスキャン画像の場合、Ｓ１００９において、入力画像全体に対してＳ１００７と同様の文字認識処理を行い、入力画像に含まれる文字列情報を抽出する。そして、Ｓ１０１０において、Ｓ１００９で抽出された文字列情報を、メタデータに追加して終了する。
【００７７】
図１１は、Ｓ１００６のＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。Ｓ１１０１で、処理対象の文字領域から各文字の切り出しを行う。文字の切り出しでは、まず該当領域に対して横書き、縦書きの判定を行い、それぞれ対応する方向に行を切り出し、その後、文字を切り出す。
【００７８】
横書き、縦書きの判定は、該当領域内の属性ビットから文字オブジェクトを示すビットに対する水平／垂直の射影（もしくはヒストグラム）を取り、その分布に基づいて横書き、縦書きの判定を行う。例えば、水平射影の分散が大きい場合は横書き領域と判定し、垂直射影の分散が大きい場合は縦書き領域と判定する。また、文字への分解は、横書きの場合は水平方向の射影を利用して行を切り出し、更に切り出された行に対する垂直方向の射影から文字を切り出す。一方、縦書きの文字領域に対しては、水平方向と垂直方向を逆にすれば良い。
【００７９】
次に、Ｓ１１０２〜Ｓ１１０６の処理は切り出した文字毎に順次行う。処理する順番は、当該領域が横書きであれば左上の文字から右方向に沿って進め、縦書きであれば右上の文字から下方向に沿って進める。
【００８０】
Ｓ１１０３では、切り出した処理対象の文字のバウンディングボックス（文字に外接する矩形領域）を求め、ＰＤＬ文字データ内にある各文字のバウンディングボックス情報と比較し、一致する文字を検索する。尚、ＰＤＬ文字データ（ＰＤＬデータ）に関しては、アプリケーションにおいてデータを作成した際に複数の文字オブジェクトを重ねて配置（上書き）していた場合など、複数の文字のバウンディングボックスが同じ位置に存在する可能性がある。そこで、Ｓ１１０３での検索の結果、一致する文字が２つ以上あるかどうか判断し、ある場合にはＳ１１０４へ進み、１つのみの場合にはＳ１１０６へ進む。ここで、バウンディングボックス情報の一致は、完全一致である必要は無く、例えば処理対象の文字のバウンディングボックスと、ＰＤＬ文字データ内にある文字のバウンディングボックスとが９５％重なっていたら一致することにすれば良い。
【００８１】
Ｓ１１０４では、ＰＤＬ文字データ内にあるバウンディングボックスが一致した複数の文字を候補にして、処理対象の文字のビットマップとパターンマッチング（ＯＣＲ処理）を行う。そして、Ｓ１１０５で、複数の文字の候補のうち、一番近い候補のテキスト情報を処理対象文字の認識結果として採用する。
【００８２】
一方、Ｓ１１０６では、処理対象の文字のバウンディングボックスと一致した、ＰＤＬ文字データ内の文字のテキスト情報を処理対象文字の認識結果として採用する。
【００８３】
尚、ＰＤＬ文字データを利用した文字認識処理の結果として抽出される文字列は、認識結果の各テキスト情報を認識した順番（処理対象の文字領域から切り出した各文字の認識順）に並べたものとする。即ち、ＰＤＬ文字データの出現順ではなく、ラスタイメージにしたときの出現順である。
【００８４】
図１２は、Ｓ１００７及びＳ１００９の文字認識処理の詳細を示すフローチャートである。Ｓ１２０１で、処理対象の画像に対して領域分割を行い、文字領域を切り出す。この領域分割の一実施形態を以下に説明する。
【００８５】
まず、処理対象画像を白黒に２値化し、当該２値化処理で得た２値画像に対して黒画素の輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。そして、面積の大きい黒画素の塊については、黒画素塊内部にある白画素に対して白画素の輪郭線追跡を行って白画素の塊を抽出する。更に、当該抽出された白画素塊のうち一定面積以上となった白画素の塊の内部からも再帰的に黒画素の塊を抽出する。
【００８６】
尚、ここでの処理は、白地に黒字等で記載されている画像の場合の処理であって、それ以外の場合は背景に相当する色を「白」、オブジェクトに相当する色を「黒」とすることにより同様に処理することができる。
【００８７】
このようにして得られた黒画素の塊を、大きさ及び形状等で分類し、異なる属性を持つ領域へ分類する。例えば、縦横比が１に近く、大きさが一定範囲のものを文字相当の画素塊とし、更に近接する文字が整列良くグループ化可能な部分を文字領域とする。
【００８８】
また、扁平な画素塊を線領域、一定の大きさ以上で、かつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域、不定形の画素塊が散在している領域をイメージ領域、それ以外の任意形状の画素塊をグラフィック領域等とする。
【００８９】
次に、Ｓ１２０３〜Ｓ１２０５の処理は、Ｓ１２０１で切り出した全文字領域に対して順次適用する（Ｓ１２０２）。
【００９０】
Ｓ１２０３で、処理対象の文字領域から各文字の切り出し処理を行う。文字の切り出し処理では、まず該当領域の２値画像に対して横書き、縦書きの判定を行い、各々対応する方向に行を切り出し、その後文字を切り出して文字画像を得る。横書き、縦書きの判定は、該当領域内で画素値に対する水平／垂直の射影（又はヒストグラム）を取り、その分布に基づいて横書き、縦書きの判定を行う。例えば、水平射影の分散が大きい場合は横書き領域と判定し、垂直射影の分散が大きい場合は縦書き領域と判定すれば良い。
【００９１】
また、文字列及び文字への分解は、横書きの場合は水平方向の射影を利用して行を切り出し、更に切り出された行に対する垂直方向の射影から、文字を切り出す。一方、縦書きの文字領域に対しては、水平と垂直を逆にすれば良い。
【００９２】
Ｓ１２０３で切り出した各文字画像に対して、Ｓ１２０５の文字コード認識処理を順次適用する。ここで処理する順番は、当該領域が横書きであれば左上の文字から右方向に沿って進め、縦書きであれば右上の文字から行に沿って進める。
【００９３】
ここで、文字コード認識処理の一例について説明する。文字コード認識では、文字単位で切り出された画像に対し、パターンマッチングの一手法を用いて認識を行い、対応する文字コード（＝テキスト情報）を得るものとする。この認識処理は、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルと、予め字種毎に求められている辞書特徴ベクトルと比較し、最も距離の近い字種を認識結果とする処理である。
【００９４】
尚、特徴ベクトルの抽出には種々の公知手法があり、例えば文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴とする方法を用いることができる。
【００９５】
Ｓ１２０３で切り出した全文字について、文字コード認識処理が終了後、文字認識処理を終了する。
【００９６】
尚、文字認識処理の結果として抽出される文字列は、認識結果のテキスト情報を認識した順番に並べたものとする。
【００９７】
＜メタデータ＞
図１４は、メタデータ生成処理３０６で生成されるメタデータの一例を示す図である。＜Ｍｅｔａｄａｔａ＞タグのブロック内にある、Ｋｉｎｄ属性は入力種別の情報を含み、この例ではＰＤＬデータであることを示している。ＰａｇｅＮｏ属性はページ番号の情報を含み、この例ではＰＤＬデータから生成された１ページ目のラスタイメージに対応するメタデータであることを示している。Ｄａｔｅ属性は、作成日時の情報を含み、この例ではメタデータが２００６年１月１日の０時に作成されたことを示している。
【００９８】
また、Ｕｓｅｒ属性は操作者情報を含み、この例では「ＡＡＡ」というユーザがＰＤＬデータをカラー複合機１００へ通知したことを示している。Ｃｏｌｏｒ属性はカラー・モノクロ情報を含み、この例ではＲＩＰ処理３１１が生成したラスタイメージがモノクロ画像であることを示している。
【００９９】
また、Ａｐｐｌｉｃａｔｉｏｎ属性はアプリケーション種別の情報を含み、この例では通知されたＰＤＬデータが「ＭＥＭＯ」というアプリケーションで作成されたことを示している。Ｆｒｏｍ属性は送信元情報を含み、この例ではＰＤＬデータが「１９２．１６８．１．０」のＩＰアドレスのＰＣから通知されたことを示している。
【０１００】
以上の属性は、Ｓ１００１で作成され、メタデータに追加される。
【０１０１】
＜Ｍｅｔａｄａｔａ＞タグのブロック内にある＜ＴＥＸＴ＞タグのブロックは、Ｓ１００８又はＳ１０１０で追加された文字列情報である。この例では、ＲＩＰ処理３１１が生成したラスタイメージに「昨日の天気は雨でした。」と「今日の天気は晴れでしょう。」という文字列が描画されていることを示している。
【０１０２】
＜ドキュメント管理処理＞
ここで、ドキュメント管理処理３０８で行われるドキュメントデータ生成・格納処理を、図１５及び図１６を用いて説明する。
【０１０３】
図１５は、ドキュメントデータ生成・格納処理を示すフローチャートである。ドキュメント管理処理３０８は、ジョブコントロール処理３０１からドキュメントデータ生成通知を受けると、ドキュメント構造体を構築する（Ｓ１５０１）。図１６はドキュメント構造体の一例を示す図である。ドキュメント構造体は、ドキュメントデータに含まれるページ数、各ページの画像ファイルのパス、各ページのメタデータファイルへのパスを保持する。ドキュメント構造体を構築時には、ページ数は０で、各ファイルへのパスはない。
【０１０４】
ジョブコントロール処理３０１から、ＲＩＰ処理３１１が生成したラスタイメージ又はＦＡＸ処理３０４が生成した入力画像、或いはスキャン処理３１０が生成した入力画像を通知される。ドキュメント管理処理３０８は通知された画像を画像ファイルとしてＨＤＤ２０８へ格納する（Ｓ１５０２）。このように、本実施形態では、ラスタイメージ（ＰＤＬをＲＩＰ処理して得たイメージ、ＦＡＸ画像、スキャン画像）を画像ファイル（画像データ）として格納するものとした。尚、このラスタイメージにベクトル化処理を行うことによって得たベクトルデータを、一緒に格納するようにしても構わない。ベクトルデータにして格納しておけば、再利用の際に拡大等を行う必要がある場合でも、ベクトルデータを使うことにより高画質に再現できるようになる。
【０１０５】
次に、ジョブコントロール処理３０１から、メタデータ生成処理３０６で生成したメタデータを通知されると、通知されたメタデータをメタデータファイルとしてＨＤＤ２０８へ格納する（Ｓ１５０３）。
【０１０６】
Ｓ１５０４では、Ｓ１５０２で格納した画像ファイルへのパスとＳ１５０３で格納したメタデータファイルへのパスをドキュメント構造体に追加し、ドキュメント構造体のページ数をインクリメントする。
【０１０７】
ジョブコントロール処理３０１から、ドキュメント終了通知があるまで、Ｓ１５０２〜Ｓ１５０４を繰り返す（Ｓ１５０５）。ドキュメント終了通知があるとＳ１５０６へ進み、ドキュメント構造体をドキュメントデータファイルとして、ＨＤＤ２０８格納して終了する。
【０１０８】
＜印刷処理＞
続いて、カラー複合機１００に蓄積された画像ファイルの印刷処理を、図１７を用いて説明する。図１７は、画像ファイルの印刷処理を示すフローチャートである。
【０１０９】
まず、ユーザが操作部２１０やＬＡＮ１０上に接続されたリモートＵＩから操作を行い、検索キーワードを指定し、印刷したい画像ファイルの検索処理を指示する（Ｓ１７０１）。検索時のキーワードしては、入力種別（スキャン、ＦＡＸ、ＰＤＬ）、ページ番号、作成日時、操作者情報、カラー・モノクロ情報、アプリケーション種別や画像に含まれる文字列を指定する。また、複数のキーワードを指定し、各キーワードのアンド条件やオア条件などを指定しても良い。
【０１１０】
検索指示が行われると、ジョブコントロール処理３０１は、指定された検索条件をドキュメント管理処理３０８へ通知し、ＨＤＤ２０８に保存されているドキュメントデータの検索を指示する（Ｓ１７０２）。ドキュメントデータの検索を指示されたドキュメント管理処理３０８は、ＨＤＤ２０８に格納されている、各ドキュメントデータファイルを読み出す。更に、ドキュメントデータファイルに記載されているメタデータファイルのパスからメタデータファイルを順次読み出し、指定された検索条件に一致するメタデータを抽出する。抽出されたメタデータを含むドキュメントデータファイルと抽出されたメタデータのページ番号を、ジョブコントロール処理３０１へ通知する。
【０１１１】
検索結果の通知を受けたジョブコントロール処理３０１は、検索結果の一覧を検索指示の行われた操作部２１０やリモートＵＩ上に表示する（Ｓ１７０３）。検索結果の一覧として、ドキュメントデータファイルのファイル名、更新時間、検索条件の一致したページ番号を表示する。
【０１１２】
尚、一覧に表示される情報はこの限りではなく、詳細情報として基本メタデータに格納されている情報を表示しても良いし、プレビュー画像を表示しても良い。
【０１１３】
ユーザは表示された検索結果の一覧から印刷したい画像ファイルを指定して印刷指示を行う（Ｓ１７０４）。印刷指示では、ドキュメントデータに含まれる全ページを印刷指示しても良いし、ドキュメントデータ内の特定のページのみを印刷指示しても良い。
【０１１４】
ジョブコントロール処理３０１は、印刷指示を受けたドキュメントデータと印刷すべきページをドキュメント管理処理３０８へ通知し、画像ファイルを読み出す。画像ファイルから読み出した画像データは、プリント処理３０７へ通知され、画像データの印刷処理が行われる（Ｓ１７０５）。
【０１１５】
第１の実施形態によれば、ＰＤＬデータから抽出した文字情報及びラスタライズで生成される属性ビットに基づいてテキスト情報を高精度、かつ、高パフォーマンスで抽出することができる。
【０１１６】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。第２の実施形態は、ＰＤＬデータに文字列として指定されている描画オブジェクトの一部でも、出力画像上に描画される場合、その文字列全体をメタデータに追加するものである。この処理は、第１の実施形態で説明した図１１に示す処理に対応する処理である。
【０１１７】
図１８は、第２の実施形態でのＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。Ｓ１８０１で、処理対象の文字領域から各文字の切り出しを行う。文字の切り出しでは、まず該当領域に対して横書き、縦書きの判定を行い、それぞれ対応する方向に行を切り出し、その後、文字を切り出す。
【０１１８】
横書き、縦書きの判定は、該当領域内の属性ビットから文字オブジェクトを示すビットに対する水平／垂直の射影（又はヒストグラム）を取り、その分布に基づいて横書き、縦書きの判定を行う。例えば、水平射影の分散が大きい場合は横書き領域と判定し、垂直射影の分散が大きい場合は縦書き領域と判定する。また、文字への分解は、横書きの場合は水平方向の射影を利用して行を切り出し、更に切り出された行に対する垂直方向の射影から文字を切り出す。一方、縦書きの文字領域に対しては、水平方向と垂直方向を逆にすれば良い。
【０１１９】
次に、Ｓ１８０２〜Ｓ１８０６の処理は切り出した文字毎に順次行う。処理する順番は、当該領域が横書きであれば左上の文字から右方向に沿って進め、縦書きであれば右上の文字から下方向に沿って進める。
【０１２０】
Ｓ１８０３では、切り出した処理対象の文字のバウンディングボックスを求め、ＰＤＬ文字データ内にある各文字のバウンディングボックス情報と比較し、一致する文字を検索する。検索の結果、一致する文字が２つ以上ある場合にはＳ１８０４へ進み、１つのみの場合にはＳ１８０６へ進む。ここで、バウンディングボックス情報の一致は、完全一致である必要は無く、例えば処理対象の文字のバウンディングボックスと、ＰＤＬ文字データ内にある文字のバウンディングボックスとが９５％重なっていたら一致することにすれば良い。
【０１２１】
Ｓ１８０４では、ＰＤＬ文字データ内にあるバウンディングボックスが一致した複数の文字を候補にして、処理対象の文字のビットマップとパターンマッチングを行う。そして、Ｓ１８０５で、複数の文字の候補のうち、一番近い候補のテキスト情報を含む文字列のテキスト情報を全て採用し、認識処理の結果として追加する。
【０１２２】
但し、一度、採用した文字列のＳｔｒｉｎｇｓ−ＩＤ情報をＲＡＭ２０６に記憶しておき、採用する文字列のＳｔｒｉｎｇｓ−ＩＤ情報が既に記憶済みの場合には認識処理結果として追加しない。
【０１２３】
一方、Ｓ１８０６では、処理対象の文字のバウンディングボックスと一致した、ＰＤＬ文字データ内の文字を含む文字列を採用し、認識処理の結果として追加する。ここでも、一度、採用した文字列のＳｔｒｉｎｇｓ−ＩＤ情報をＲＡＭ２０６に記憶しておき、採用する文字列のＳｔｒｉｎｇｓ−ＩＤ情報が既に記憶済みの場合には認識処理結果として追加しない
尚、ＰＤＬ文字データを利用した文字認識処理の結果として抽出される文字列は、認識結果の各テキスト情報を認識した順番に並べたものとする。
【０１２４】
第２の実施形態によれば、第１の実施形態の効果に加え、ＰＤＬデータに文字列として指定されている描画オブジェクトの一部でも、出力画像上に描画される場合、その文字列全体をメタデータに追加することができる。
【０１２５】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態を詳細に説明する。第３の実施形態は、メタデータを生成する際に、ユーザが検索対象を出力画像に含まれる文字のみとするか、文字列全体とするかを選択可能とするものである。
【０１２６】
図１９は、第３の実施形態でのＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。Ｓ１９０１で、処理対象の文字領域から各文字の切り出しを行う。文字の切り出しでは、まず該当領域に対して横書き、縦書きの判定を行い、それぞれ対応する方向に行を切り出し、その後、文字を切り出す。
【０１２７】
横書き、縦書きの判定は、該当領域内の属性ビットから文字オブジェクトを示すビットに対する水平／垂直の射影（又はヒストグラム）を取り、その分布に基づいて横書き、縦書きの判定を行う。例えば、水平射影の分散が大きい場合は横書き領域と判定し、垂直射影の分散が大きい場合は縦書き領域と判定する。また、文字への分解は、横書きの場合は水平方向の射影を利用して行を切り出し、更に切り出された行に対する垂直方向の射影から文字を切り出す。一方、縦書きの文字領域に対しては、水平方向と垂直方向を逆にすれば良い。
【０１２８】
次に、Ｓ１９０２〜Ｓ１９１０の処理は切り出した文字毎に順次行う。処理する順番は、当該領域が横書きであれば左上の文字から右方向に沿って進め、縦書きであれば右上の文字から下方向に沿って進める。
【０１２９】
Ｓ１９０３では、切り出した処理対象の文字のバウンディングボックスを求め、ＰＤＬ文字データ内にある各文字のバウンディングボックス情報と比較し、一致する文字を検索する。検索の結果、一致する文字が２つ以上ある場合にはＳ１９０４へ進み、１つのみの場合にはＳ１９０８へ進む。ここで、バウンディングボックス情報の一致は、完全一致である必要は無く、例えば処理対象の文字のバウンディングボックスと、ＰＤＬ文字データ内にある文字のバウンディングボックスとが９５％重なっていたら一致することにすれば良い。
【０１３０】
Ｓ１９０４では、ＰＤＬ文字データ内にあるバウンディングボックスが一致した複数の文字を候補にして、処理対象の文字のビットマップとパターンマッチングを行う。次に、Ｓ１９０５で、予めユーザが指定しているユーザモードにより処理を切り替える。ここで、ユーザモードには、画像優先モードと印刷データ優先モードとがあり、ユーザモードが「画像優先」であればＳ１９０６へ進み、また「ＰＤＬデータ優先」であればＳ１９０７へ進む。
【０１３１】
Ｓ１９０６では、Ｓ１９０４で最も近い候補のテキスト情報を、処理対象文字の認識結果として採用し、認識処理の結果として追加する。また、Ｓ１９０７では、Ｓ１９０４で最も近い候補のテキスト情報を含む文字列全体を採用し、認識処理の結果として追加する。
【０１３２】
但し、一度、採用した文字列のＳｔｒｉｎｇｓ−ＩＤ情報をＲＡＭ２０６に記憶しておき、採用する文字列のＳｔｒｉｎｇｓ−ＩＤ情報が既に記憶済みの場合には認識処理結果として追加しない。
【０１３３】
一方、Ｓ１９０８では、上述のＳ１９０５と同様に、予めユーザが指定しているユーザモードにより処理を切り替える。ユーザモードが「画像優先」であればＳ１９０９へ進み、ユーザモードが「ＰＤＬデータ優先」であればＳ１９１０へ進む
Ｓ１９０９では、処理対象の文字のバウンディングボックスと一致した、ＰＤＬ文字データ内の文字のテキスト情報を処理対象文字の認識結果として採用し、認識処理結果に追加する。また、Ｓ１９１０では、処理対象の文字のバウンディングボックスと一致した、ＰＤＬ文字データ内の文字を含む文字列全体を採用し、認識処理の結果として追加する。ここでも、一度、採用した文字列のＳｔｒｉｎｇｓ−ＩＤ情報をＲＡＭ２０６に記憶しておき、採用する文字列のＳｔｒｉｎｇｓ−ＩＤ情報が既に記憶済みの場合には認識処理結果として追加しない
尚、ＰＤＬ文字データを利用した文字認識処理の結果として抽出される文字列は、認識結果の各テキスト情報を認識した順番に並べたものとする。
【０１３４】
第３の実施形態によれば、ユーザが検索に使用されるメタデータ生成条件を変更可能である。即ち、ユーザが出力画像に含まれる文字のみ検索対象にした場合には「画像優先」モードを選択する。また、ＰＤＬデータに文字列として指定されている描画オブジェクトの一部でも、出力画像上に描画される場合も、文字列全体を検索対象としたい場合には、「ＰＤＬデータ優先」モードを選択する。
【０１３５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【０１３６】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【０１３７】
この場合、コンピュータ読み取り可能な記録媒体（記憶媒体）から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１３８】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１３９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【０１４０】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４１】
【図１】本実施形態におけるカラー複合機１００のハードウェア構成の一例を示す図である。
【図２】カラー複合機１００におけるコントロールユニット（コントローラ）の構成の一例を示すブロック図である。
【図３】カラー複合機１００のコントロールユニット２００上で動作するコントローラソフトウェアのモジュール構成の一例を示すブロック図である。
【図４】ＦＡＸ受信時及び画像スキャンにおけるドキュメントデータ生成処理のデータフローを示す図である。
【図５】ＰＤＬデータ受信時におけるドキュメントデータ生成処理のデータフローを示す図である。
【図６】第１の実施形態でのＰＤＬ解析処理を示すフローチャートである。
【図７】ＰＤＬデータに文字列の「Ｈｅｌｌｏ」を含む描画オブジェクトの描画結果を示す図である。
【図８】文字列が含まれるＰＤＬデータから生成されるＰＤＬ文字データを示す図である。
【図９】一文字の文字が含まれるＰＤＬデータから生成されるＰＤＬ文字データを示す図である。
【図１０】メタデータ生成処理３０６の処理を示すフローチャートである。
【図１１】Ｓ１００６のＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。
【図１２】Ｓ１００７及びＳ１００９の文字認識処理の詳細を示すフローチャートである。
【図１３】（Ａ）はＲＩＰ処理３１１が生成するラスタデータを示す図、（Ｂ）は対応する属性ビットを可視的に表す図、（Ｃ）は属性ビットを利用した領域分割の一例を示す図である。
【図１４】メタデータ生成処理３０６で生成されるメタデータの一例を示す図である。
【図１５】ドキュメントデータ生成・格納処理を示すフローチャートである。
【図１６】ドキュメント構造体の一例を示す図である。
【図１７】画像ファイルの印刷処理を示すフローチャートである。
【図１８】第２の実施形態でのＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。
【図１９】第３の実施形態でのＰＤＬ文字データを利用した文字認識処理の詳細を示すフローチャートである。
【符号の説明】
【０１４２】
１００  １Ｄカラー複合機
１０１  スキャナ部
１０２  レーザ露光部
１０３  作像部
１０４  定着部
１０５  給紙／搬送部
２００  コントロールユニット
２０１  スキャナ
２０２  プリンタエンジン
２０５  ＣＰＵ
２０６  ＲＡＭ
２０７  ＲＯＭ
２０８  ＨＤＤ
２０９  操作部Ｉ／Ｆ
２１０  操作部
２１１  ネットワークＩ／Ｆ
２１２  モデム
２１３  システムバス
２１４  イメージバスＩ／Ｆ
２１５  画像バス
２１６  ＲＩＰ
２１７  デバイスＩ／Ｆ
２１８  スキャナ画像処理
２１９  プリンタ画像処理
２２０  画像編集用画像処理部
３０１  ジョブコントロール処理
３０２  ネットワーク処理
３０３  ＵＩ処理
３０４  ＦＡＸ処理
３０５  ＰＤＬ解析処理
３０６  メタデータ生成処理
３０７  プリント処理
３０８  ドキュメント管理処理
３０９  色変換処理
３１０  スキャン処理
３１１  ＲＩＰ処理
【図１】
0005247394.tif 000002
【図２】
0005247394.tif 000003
【図３】
0005247394.tif 000004
【図４】
0005247394.tif 000005
【図５】
0005247394.tif 000006
【図６】
0005247394.tif 000007
【図７】
0005247394.tif 000008
【図８】
0005247394.tif 000009
【図９】
0005247394.tif 000010
【図１０】
0005247394.tif 000011
【図１１】
0005247394.tif 000012
【図１２】
0005247394.tif 000013
【図１３】
0005247394.tif 000014
【図１４】
0005247394.tif 000015
【図１５】
0005247394.tif 000016
【図１６】
0005247394.tif 000017
【図１７】
0005247394.tif 000018
【図１８】
0005247394.tif 000019
【図１９】
0005247394.tif 000020