(57)【要約】【課題】  データベースに再利用可能に登録される電子データの登録数が増加すれば、それら電子データを管理するサーバの記憶量の増加が問題となる。再利用したいデータは、必ずしも登録された全データでなはく、その一部しか再利用性がないものもある。【解決手段】  アプリケーションデータのデータベース登録を設定する場合、メニュー1001からデータベースに登録するオブジェクトタイプを選択する。例えば、写真モードを選択すると、アプリケーションデータをベクトル化したデータの内、写真オブジェクトを登録情報としてデータベースに登録し、他のオブジェクトはNULLとして位置情報だけをデータベースに登録する。【選択図】  図10
2006268352.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションデータの印刷を指示する印刷指示手段と、
データベースへ前記アプリケーションデータを登録するか否かを設定する登録設定手段と、
前記登録設定手段により登録が設定された場合、前記データベースに登録する前記アプリケーションデータの属性を選択する属性選択手段と、
前記属性選択手段の選択に応じて、前記アプリケーションデータを他のデータフォーマットの登録用データに変換する変換手段と、
前記印刷指示手段の指示に従い、前記アプリケーションデータを印刷データに変換して出力するとともに、前記登録設定手段により登録が設定された場合は前記登録用データを出力する出力手段とを有することを特徴とする画像処理装置。
【請求項２】
前記アプリケーションデータの属性はオブジェクトのタイプであることを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記登録データは、前記アプリケーションデータを含むことを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
さらに、前記登録用データを前記データベースに登録する期間を設定する期間設定手段を有し、
前記出力手段は、前記期間設定手段により設定された登録期間を示すデータを前記登録用データに含めることを特徴とする請求項1から請求項3の何れかに記載された画像処理装置。
【請求項５】
前記期間設定手段は、前記属性ごとに前記登録期間を設定することを特徴とする請求項4に記載された画像処理装置。
【請求項６】
前記登録期間を過ぎた前記属性に対応するオブジェクトの実体は、前記データベースに登録された前記登録用データから削除されることを特徴とする請求項5に記載された画像処理装置。
【請求項７】
さらに、前記データベースから前記登録用データを削除するアクセス頻度を設定する頻度設定手段を有し、
前記出力手段は、前記頻度設定手段により設定されたアクセス頻度を示すデータを前記登録用データに含めることを特徴とする請求項1から請求項3の何れかに記載された画像処理装置。
【請求項８】
前記アクセス頻度に達しない前記登録用データは前記データベースから削除されることを特徴とする請求項7に記載された画像処理装置。
【請求項９】
前記頻度設定手段は、前記属性ごとに前記アクセス頻度を設定することを特徴とする請求項7に記載された画像処理装置。
【請求項１０】
アプリケーションデータの印刷を指示する印刷指示手段を有する画像処理装置の画像処理方法であって、
データベースへ前記アプリケーションデータを登録するか否かを設定し、
前記登録が設定された場合、前記データベースに登録する前記アプリケーションデータの属性を選択し、
前記選択に応じて、前記アプリケーションデータを他のデータフォーマットの登録用データに変換し、
前記印刷指示手段の指示に従い、前記アプリケーションデータを印刷データに変換して出力するとともに、前記登録が設定された場合は前記登録用データを出力することを特徴とする画像処理方法。
【請求項１１】
画像処理装置を制御して、請求項10に記載された画像処理を実現することを特徴とするプログラム。
【請求項１２】
請求項11に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその方法に関し、例えば、文書等の電子データを再利用可能にデータベースに登録する画像処理に関する。
【背景技術】
【０００２】
近年、環境問題が叫ばれる中、オフィスでのペーパレス化が急速に進んでいる。
【０００３】
ペーパレス化の第一の方法は、例えば、バインダなどで蓄積された文書をスキャナなどで読み取り、文書画像のラスタデータまたはその符号データ（以下、これらを総称して「画像データ」という）として、ポータブルドキュメントフォーマット(PDF)などのコンパクトなファイルに変換し、記憶装置に格納する（例えば、特開2001-358863公報参照）。
【０００４】
第二の方法は、機能が拡張された記録装置、マルチファンクション複合機(MFP)を用いて記憶装置に文書や画像のオリジナルデータファイルを格納しておき、オリジナルデータファイルを印刷する際に、オリジナルデータファイルが存在する記憶装置の記憶領域へのポインタ情報を、印刷文書の表紙や印刷情報中に付加情報として記録する（例えば、特開平10-285378号公報参照）。ポインタ情報により、直ちにオリジナルデータファイルにアクセスすることができ、そのオリジナルデータファイルを入力画像データとして扱うことにより、オリジナルデータファイルの編集、印刷などの再利用が可能であり、印刷文書（紙）の保有量を削減することができる。
【０００５】
また、記憶装置に格納されたオリジナルデータファイルを他のネットワークドメインから利用するために、オリジナルデータファイルのみならず、再利用可能な情報として加工したデータを検索用としてデータベースなどに登録する。なお、この再利用可能な情報に加工したデータは、印刷文書からオリジナルデータファイルを検索するためのインデックス情報としても利用可能である。
【０００６】
このように、印刷文書のドキュメント情報からオリジナルの電子情報（オリジナルデータファイルなど）へのデータアクセスを可能にするシステムが実用化されようとしている。このようなシステムは、印刷文書をキーとして、オリジナルの電子情報をサーバ経由で（または記憶装置から）ハンドリングすることができる利便性がある。しかし、オリジナルの電子情報の登録数が増加すれば、それら電子情報を管理するサーバの記憶量の増加が問題となる。編集や再利用したい情報は、必ずしも登録された全情報でなはく、登録情報によってはその一部しか編集や再利用性がないものもある。つまり、登録情報の利用状況は、登録者としての作成者に大きく依存する。
【０００７】
【特許文献１】特開2001−358863公報
【特許文献２】特開平10-285378号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、データベースに再利用可能に登録する電子データのデータ量を効果的に削減可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１０】
本発明は、アプリケーションデータの印刷を指示する印刷指示手段を有する画像処理装置において、データベースへ前記アプリケーションデータを登録するか否かを設定し、前記登録が設定された場合、前記データベースに登録する前記アプリケーションデータの属性を選択し、前記選択に応じて、前記アプリケーションデータを他のデータフォーマットの登録用データに変換し、前記印刷指示手段の指示に従い、前記アプリケーションデータを印刷データに変換して出力するとともに、前記登録が設定された場合は前記登録用データを出力することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、データベースに再利用可能に登録する電子データのデータ量を効果的に削減可能にすることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１３】
［画像処理システム］
図1は実施例1の画像処理システムの構成例を示すブロック図である。
【００１４】
この画像処理システムは、オフィス（のような複数の区分）10と20がインターネットのようなWAN 104で接続された環境で実現される。
【００１５】
オフィス10内に構築されたLAN 107には、複合機(MFP: Multi-Function Processor) 100、MFP 100を制御するマネージメントPC 101、クライアントPC 102、文書管理サーバ106、文書管理サーバによって管理されるデータベースサーバ105などが接続されている。オフィス20はオフイス10とほぼ同様の構成を有するが、オフィス20内に構築されたLAN 108には、少なくとも文書管理サーバ106、文書管理サーバによって管理されるデータベースサーバ105などが接続されている。オフィス10のLAN 107とオフィス20のLAN 108は、LAN 107に接続されたプロキシサーバ103、WAN 104、および、LAN 108に接続されたプロキシサーバ103を介して、相互に接続されている。
【００１６】
MFP 100は、文書画像を読み取り、読み取った画像を処理する画像処理の一部を担当する。MFP 100から出力される画像信号は、通信線109を介してマネージメントPC 101に入力される。マネージメントPC 101は、通常のパーソナルコンピュータ(PC)で、画像記憶するハードディスクなどのメモリ、ハードウェアまたはソフトウェアで構成される画像処理部、CRTやLCDなどのモニタ、マウスやキーボードなどの入力部を有するが、その一部はMFP 100に一体化して構成されている。また、MFP 100は、クライアントPC 102もしくは図示しない汎用PCから受信したページ記述言語(PDL)フォーマットの印刷データ（以下「PDLデータ」と呼ぶ）を解釈して、記録紙に画像を印刷するプリンタとして機能する。なお、以下では、マネージメントPC 101において、下記の検索処理などを実行する例を説明するが、マネージメントPC 101が行う処理をMFP 100で実行するようにしても構わない。
【００１７】
［MFP］
図2はMFP 100の構成例を示すブロック図である。
【００１８】
オートドキュメントフィーダ(ADF)を含む画像読取部110は、一枚または重ねられた複数の原稿それぞれの画像を、光源で照射し、原稿からの反射像をレンズで固体撮像素子上に結像し、固体撮像素子からラスタ順の画像読取信号（例えば600dpi、8ビット）を得る。原稿を複写する場合は、この画像読取信号をデータ処理部115で記録信号へ変換し、複数枚の記録紙に複写する場合は、一旦、記憶部111に一頁分の記録信号を記憶した後、記録信号を繰り返し記録部112に出力することで、複数の記録紙に画像を形成する。
【００１９】
一方、クライアントPC 102から出力されるPDLデータは、LAN 107を介してネットワークインタフェイス(I/F)114へ入力され、データ処理部装置115によって記録可能なラスタデータに変換された後、記録部112によって記録紙上に画像として形成される。
【００２０】
MFP 100に対する操作者の指示は、MFP 100に装備されたキー操作部とマネージメントPC 101のキーボードやマウスからなる入力部113によって行われる。操作入力の表示および画像処理状態の表示などは表示部116によって行われる。
【００２１】
上記のMFP 100の動作は、データ処理部115内の、例えばワンチップマイクロコントローラで構成される制御部115aで制御される。
【００２２】
なお、記憶部111は、マネージメントPC 101からも制御可能である。MFP 100とマネージメントPC 101と間のデータの授受および制御は、ネットワークI/F 117および両者を直結する信号線109を介して行われる。
【００２３】
なお、MFP 100は、ディジタルカメラやディジタルビデオなどの撮像装置、ポータブルデータアシスタント(PDA)などの形態端末装置、ファクシミリなどから画像データを入手するインタフェイスを入力部113の一部として備えていてもよい。
【００２４】
［クライアントPC］
●処理モジュールの構成
図3はクライアントPC 102上で動作する、アプリケーションデータを印刷処理際の処理モジュールの概略構成を説明する図である。
【００２５】
この処理モジュールは、プリンタドライバ303により印刷を実行する際に、そのアプリケーションデータを検索または再利用可能なアプリケーションデータとしてMFP 100に登録する。なお、図3に示す、アプリケーション301、グラフィックエンジン302、プリンタドライバ303およびシステムスプーラ304は、クライアントPC 102内のメモリ（不図示）に保持されたファイルとして存在し、実行される場合は、オペレーティグシステム(OS)や、当該モジュールを利用するモジュールによって実行されるプログラムモジュール（データ処理モジュール）である。また、アプリケーション301およびプリンタドライバ303は、クライアントPC 102の外部から例えばCD-ROMなどのメディアやLAN 107を介してクライアントPC 102内のハードディスクなどの記憶装置にインストールすることが可能である。
【００２６】
アプリケーション301から印刷処理を指示されたグラフィックエンジン302は、MFP 100ごとに、または、記録部112ごとに用意されているプリンタドライバ303を起動し、アプリケーション301の出力をプリンタドライバ303に供給する。つまり、アプリケーション301から受信したGDI (Graphic Device Interface)関数をDDI (Device Driver Interface)関数に変換し、DDI関数をプリンタドライバ303へ供給する。
【００２７】
プリンタドライバ303は、グラフィックエンジン302から受信したDDI関数を、MFP 100のデータ処理部115が認識可能な制御コマンド（例えばPDL形式）に変換してPDLデータを作成する。PDLデータは、OSの管理下にあるシステムスプーラ304に一旦保持された後、LAN 107を経由してMFP 100のデータ処理部115へ送られ、印刷が実行される。
【００２８】
図4は、図3に示した処理モジュールの詳細構成を示すブロック図で、グラフィックエンジン302からプリンタドライバ303へ印刷命令を送る際に、一旦、中間コードからなるスプールファイル403を生成する構成を示している。なお、図4に示す処理モジュールは、スプールファイル403の内容を加工することが可能で、これによりアプリケーション301から出力される印刷データに対して、変倍（拡大または縮小）や、複数頁を一頁にレイアウトして縮小印刷するNアップ印刷など、アプリケーション301がもたない機能を実現する。言い換えれば、図4に示す処理モジュールの構成は、中間コードデータをスプールするように拡張されている。
【００２９】
図4において、ディスパッチャ401は、グラフィックエンジン302から印刷命令を受け取り、受け取った印刷命令がアプリケーション301からグラフィックエンジン302へ発行された印刷命令の場合は、ハードディスク（不図示）などに格納されているスプーラ402をRAM（不図示）にロードし、プリンタドライバ303ではなくスプーラ402へ印刷命令を送信する。
【００３０】
スプーラ402は、受信した印刷命令を頁単位に中間コードに変換し、ハードディスク（またはRAM）に割り当てられたスプールファイル403に出力するとともに、プリンタドライバ303に設定されている印刷・登録データに関する諸設定を取得してスプールファイル403に保存する。さらに、スプーラ402は、ハードディスクなどに格納されているスプールファイルマネージャ404をRAMにロードし、スプールファイルマネージャ404にスプールファイル403の生成状況を通知する。
【００３１】
その後、スプールファイルマネージャ404は、スプールファイル403に保存された設定内容に従い印刷・登録が可能か否かを判断し、グラフィックエンジン302を利用して印刷・登録が可能と判断した場合は、ハードディスクなどに格納されているデスプーラ405をRAMにロードし、デスプーラ405にスプールファイル403に記述された中間コードの印刷処理、並びに、オリジナルデータおよびそのデータを再利用可能なアプリケーションデータの送信を指示する。
【００３２】
デスプーラ405は、スプールファイル403に保存された中間コードを、スプールファイル403に保存された設定内容に従い加工し、再度、グラフィックエンジン302へ供給する。
【００３３】
ディスパッチャ401は、受け取った印刷命令がデスプーラ405からグラフィックエンジン302へ発行された印刷命令の場合は、スプーラ402ではなくプリンタドライバ303に印刷命令を送信する。プリンタドライバ303は、上述したようにPDLデータを生成し、システムスプーラ304を経由してMFP 100に出力する。
【００３４】
図5は印刷・登録の設定を行うユーザインタフェイス（ダイアログ）の一例を示す図である。
【００３５】
アプリケーション301は、ユーザから印刷を指示されるとプリンタドライバ303を起動する。プリンタドライバ303は、図6に示すような印刷・登録の設定を入力するダイアログをクライアントPC 102のモニタ表示し、このダイアログを使用してユーザが入力した印刷・登録の設定内容がプリンタドライバ303からスプーラ402に渡される。
【００３６】
図5において、タグ602のRCP（リッチコンテンツプリント）タグを選択すると、領域601に印刷画像のプレビュー画像が表示される。なお、RCPは、電子データを印刷すると同時に、オリジナルの電子データもしくはそのデータを再利用可能なアプリケーションデータ（例えばオリジナルの電子データをベクトル化したデータ）をサーバに登録する動作を指す。ラジオボタン603は、RCPを行うか否かを設定するためのボタンである。また、ボタン605は、電子データを登録する際のより詳細な設定を行うためのボタンである。なお、オリジナルの電子データを登録する詳細については後述する。
【００３７】
●スプーラの処理
図6はスプーラ402の処理例を示すフローチャートである。
【００３８】
スプーラ402は、ディスパッチャ401から印刷命令を受信すると(S501)、受信した印刷命令がジョブの開始要求か否かを判定する(S502)。ジョブの開始要求と判定した場合は、中間データを一時的に保存するためのスプールファイル403を作成し(S503)、スプールファイルマネージャ404へ印刷処理の開始を通知し(S504)、RAMなどに割り当てたページカウンタを「1」に初期化し(S505)、処理をステップS501に戻す。
【００３９】
一方、ステップS502において、ジョブ開始要求ではないと判定した場合は、受信した印刷命令がジョブの終了要求か否かの判定(S506)、改頁か否かの判定(S507)を行う。ジョブの終了要求ではなく改頁と判定した場合は、スプールファイルマネージャ404へ改頁を通知するとともに、ページカウンタをインクリメントし(S508)、処理をステップS501へ戻す。また、ジョブの終了要求でも改頁でもないと判定した場合は、中間コードおよびオリジナルのアプリケーションデータをベクトル化したデータ（以下「ベクトル化データ」と呼ぶ）の格納を準備し(S509)、受信した印刷命令に含まれる印刷データを中間コードに変換し(S510)、中間コードをスプールファイル403へ書き込み(S511)、処理をステップS501に戻す。
【００４０】
スプーラ402は、以上の処理を、ジョブの終了要求を受信するまで繰り返す。
【００４１】
他方、ステップS506において、受信した印刷命令がジョブの終了要求であると判定した場合は、スプーラ402は、電子データの登録が設定されているか否かを判定する(S512)。登録が設定されている場合（図5に示すラジオボタン603の「する」が選択された場合）は、ベクトル化アプリケーションを起動し、スプールファイル403に格納され中間コードを一旦ラスタライズしてベクトル化データに変換し(S513)、ベクトル化データをオリジナルのアプリケーションデータに関連付けし、ベクトル化データをスプールファイル403に格納する(S514)。その後、スプールファイルマネージャ404へ印刷処理の終了（および、登録が設定されている場合は登録処理）を通知し(S515)、処理を終了する。なお、ベクトル化の方法や登録の詳細は後述する。
【００４２】
●スプールファイルマネージャの処理
図7はスプールファイルマネージャ404の処理例を示すフローチャートである。
【００４３】
スプールファイルマネージャ404は、スプーラ402またはデスプーラ405から進捗通知を受信すると(S701)、当該通知がステップS504でスプーラ402が発行する印刷処理の開始通知か否か(S702)、ステップS508でスプーラ402が発行する改頁通知か否か(S703)、ステップS515でスプーラ402が発行する印刷処理の終了通知か否か(S704)、デスプーラ405からの物理頁の印刷終了通知か否か(S705)の判定を行う。
【００４４】
そして、印刷処理の開始通知であればスプールファイル403から設定内容を読み込み、ジョブ管理を開始して(S706)、処理をステップS701へ戻す。
【００４５】
また、一頁の論理頁の印刷処理が終了したことに相当する改頁通知であれば、当該論理頁に対する頁情報をスプールファイル403に格納し(S707)、デスプーラ405に印刷要求が可能か否かを判定する(S709)。また、印刷処理の終了通知または物理頁の印刷終了通知であれば、デスプーラ405に印刷要求が可能か否かを判定する(S709)。
【００４６】
また、上記の何れの通知でもなければ、その他の処理を行い(S708)、処理をステップS701に戻す。
【００４７】
印刷要求が可能か否かの判定(S709)は、その時点でスプールが完了したN頁（Nは1以上の整数）の論理頁で、記録紙一枚分の印刷が開始できるか否かを判定する。例えば物理頁に四頁分の論理頁を配置するようなレイアウトが設定されている場合、第四頁の論理頁がスプールされた時点で第一頁の物理頁が印刷可能になり、第八頁の論理頁がスプールされた時点で第二頁の物理頁が印刷可能になる。また、デスプーラ405が同時に印刷処理が可能な物理頁数にも制限があり、たとえ物理頁が印刷可能な論理頁数がスプールされていたとしても、デスプーラ405の処理状況によって印刷要求を行えない場合がある。つまり、ステップS708において、デスプーラ405に印刷を要求できる状況にあるか否かを判定する。
【００４８】
なお、本実施例では、デスプーラ405が同時に印刷処理可能な物理頁数を一頁と想定している。また、スプールされた論理頁の頁番号が物理頁にレイアウトする論理頁数の倍数に達しなくても、スプーラ402が発行する印刷処理の終了通知によって、物理頁の印刷が可能と判定することは言うまでもない。
【００４９】
ステップS709において、印刷要求が可能と判定した場合は、一枚の記録紙に割り付ける論理頁数から物理頁を計算し(S710)、図8に示すような形式の印刷可能な物理頁を構成する論理頁と、その物理頁番号などの情報を含む印刷要求をデスプーラ405に通知し(S711)、処理をステップS701に戻す。また、印刷要求が不可能と判定した場合は、印刷が終了（つまり最後の論理頁まで印刷済み）か否かを判定し(S712)、未了であれば処理をステップS701に戻し、終了であればデスプーラ405に印刷終了を通知し(S713)、スプールファイル403を削除して(S714)、処理を終了する。
【００５０】
なお、図8はスプールファイルマネージャ404からデスプーラ405に通知される情報の一例を示す図である。
【００５１】
一方、デスプーラ405は、スプールファイルマネージャ404の印刷要求に応じて、スプールファイル403から必要な情報を読み出し、印刷データの生成と、RCPが指定されている場合は登録用データ（オリジナルのアプリケーションデータおよびベクトル化データ）の送信準備を行い、印刷データ（および、RCPが指定されている場合は登録用データ）をMFP 100へ送信する。MFP 100は、受信した印刷データにより文書を印刷するとともに、登録用データを受信した場合は登録用データをデータベースサーバ105へ登録する。なお、登録用データは、クライアントPC 102からデータベースサーバ105へ直接送信して登録することもできる。
【００５２】
OSによって名称や機能的な枠組みに若干の相違があるが、上記の技術的手段を実現することができるモジュールであれば、それらの名称や枠組みの違いは実質的な差ではない。例えば、スプーラやスプールファイルは、OSによってはプリントキューと呼ぶモジュールに処理を組み込むことで実現可能である。なお、一般に、これら各機能モジュールを実行するホストコンピュータはCPU、ROM、RAM、ハードディスクドライブ(HDD)、各種入出力制御部(I/O)などのハードウェアで構成され、OS（基本ソフト）と呼ばれるソフトウェアがそれらの制御を司り、OSの下で、各アプリケーションソフトウェア、サブシステムプロセスが機能モジュールとして動作する。
【００５３】
［登録の設定］
図5に示す印刷設定ダイアログにおいてRCPを非設定（ラジオボタン603の「しない」を選択）にすれば、通常の印刷処理が行われ、上述した処理によりアプリケーション301が出力する印刷データがMFP 100によって印刷される。また、RCPを設定（ラジオボタン603の「する」を選択）すれば、通常の印刷処理に加えて、アプリケーション301によって作成された（または開かれた）オリジナルの電子データに、後述するベクトル化処理が施され、複数のドメインでオブジェクト単位に再利用可能なフォーマットに加工されたベクトル化データがデータベースサーバ105に登録される。なお、ベクトル化データは、オリジナルの電子データを検索するためのインデックス情報としても利用できる。
【００５４】
図5に示す印刷設定ダイアログにおいてRCPが設定されると、詳細設定ボタン605がアクティブになり、さらに、ベクトル化の設定を変更することができる。図9、図10は詳細設定ボタン605を押した場合に表示される印刷設定ダイアログの一例を示す図である。
【００５５】
ボックス901には、デフォルトまたは現在設定されている登録方法が示され、プルダウンアロー902を押すと、図10に示すように、登録方法として設定可能な内容がブルダウンメニュー1001に表示される。また、OKボタン903を押せばボックス901に表示された登録方法が確定し、キャンセルボタン904を押せば登録方法の変更がキャンセルされ、現在設定されている登録方法が有効のまま、図5の表示に戻る。
【００５６】
登録方法として設定可能なモードには、例えば「全登録モード」「写真モード」「表モード」「文字モード」「文字・写真モード」の五つのモードがある。例えば、文字モードが選択されると、ボックス901には「文字モード」が表示され、その状態でOKボタン903が押されればRCPの設定内容に文字モードが設定され、図8に示す登録用電子データの設定情報801に「文字モード」が記録される。各設定モードの機能は次のとおりである。
────────┬─────────────────────────
モード      │
────────┼─────────────────────────
全登録モード  │オリジナル電子データをベクトル化し、すべての情報を
│登録情報としてデータベースに送信する
────────┼─────────────────────────
写真モード    │ベクトル化データの内、写真オブジェクト（ビットマッ
│プ化されたオブジェクト）を登録情報としてデータベー
│スに送信する。他のオブジェクトはNULL（空白の情報）
│として、位置情報をデータベースに送信する
────────┼─────────────────────────
文字モード    │ベクトル化データの内、テキストオブジェクトを登録情
│報としてデータベースに送信する。他のオブジェクトは
│NULLとして、位置情報をデータベースに送信する
────────┼─────────────────────────
文字・写真モード│ベクトル化データの内、テキストオブジェクトおよび写
│真オブジェクト（ビットマップ化されたオブジェクト）
│を登録情報としてデータベースに送信する。他のオブ
│ジェクトはNULLとして、位置情報をデータベースに送信
│する
────────┴─────────────────────────
【００５７】
図11、図12は全登録モードが設定された場合のベクトル化データの一例を示す図である。なお、図11、図12にはSVG (Scalable Vector Graphics)形式で記述された例を示すが、これに限定されるものではない。また、図11では説明のためにオブジェクトの記述を枠で囲う。
【００５８】
枠2401に囲まれた記述はイメージ属性を示し、当該部分にはイメージオブジェクトの領域を示す領域情報とビットマップ情報が記述されている。枠2402に囲まれた記述はテキスト属性を示し、枠2403に囲まれた記述は、枠2402内の内容をベクタオブジェクトとして表現している。枠2404に囲まれた記述は表オブジェクトなどのラインアート属性を示す。
【００５９】
文字モードが選択された場合は、図24に示すベクトル化データのうち枠2402に囲まれたオブジェクトのみが図12に枠2502で示すように残り、枠2401、2403、2404に囲まれた他のオブジェクトは図12に枠2501、2503、2504で示すようにオブジェクトの位置情報のみ残して、具体的な中身はNULLになる。これにより、データ量が削減され、データベースサーバ105が記憶する情報量の低減、異なるドメイン間でデータを送受する際の通信量の削減が可能になる。写真モードや文字・写真モードが選択された場合も、同様の方法でデータ量が削減され、ベクトル化データとしてオリジナルのアプリケーションデータとともにデータベースサーバ105に登録される。
【００６０】
図13はベクトル化データとオリジナルのアプリケーションデータを組み合わせたファイル形式を示す図で、ヘッダ2601、ベクトル化データがベクトル化データ部2602、オリジナルのアプリケーションデータが組み込まれるアプリケーションデータ部2603から構成される。ヘッダ2601には、データベースサーバ105に登録されるデータのフォーマット形式に準拠する情報が記述され、ベクトル化データのサイズ、オリジナルのアプリケーションデータのサイズ、RCPの設定内容などの情報が記述される。
【００６１】
以上、五つのモードを説明したが、この五つのモードに限定されるわけではなく、様々な種類のオブジェクト情報を組み合わせた新たなモードも設定可能である。
【００６２】
［ベクトル化］
図14は、図6に示した、スプーラ402によるベクトル化処理(S513)の詳細を示す図である。
【００６３】
スプーラ402は、RIP (Raster Image Processing)のコアアプリケーションを利用して、スプールファイル403に格納した中間コードを、一旦、ラスタデータに変換する(S1101)。この処理は、MFP 100内で中間データをレンダリングする処理と同様である。ラスタデータは、一頁単位の画像データとして、クライアントPC 102にRAMまたはハードディスクに保存される。
【００６４】
次に、スプーラ402は、ブロックセレクション(BS)処理(S1102)を行い、RAMまたはハードディスクに格納した画像データを、文字または線画を含む文字・線画領域、ハーフトーンの写真領域、不定形の画像領域、その他の領域に分割する。さらに、文字・線画領域については、主に文字を含む文字領域、主に表、図形などを含む線画領域を分離し、線画領域は表領域および図形領域に分離する。なお、本実施例では連結画素を検知し、連結画素の外接矩形領域の形状、サイズ、画素密度などを用いて、属性ごとの領域に分割するが、その他の領域分割手法を用いても構わない。
【００６５】
文字領域は、段落などの塊をブロックとして矩形ブロック（文字領域矩形ブロック）にセグメント化する。線画領域は、表、図形などの個々のオブジェクト（表領域矩形ブロック、線画領域矩形ブロック）ごとに、矩形ブロックにセグメント化する。また、ハーフトーンで表現される写真領域は、画像領域矩形ブロック、背景領域矩形ブロックなどの矩形ブロックにセグメント化する。なお、これら矩形ブロックの情報を「領域分割情報」という。
【００６６】
スプーラ402は、BS処理によって得られた領域分割情報と、入力画像を合成して、図15に一例を示すように、クライアントPC 102のモニタの操作画面上に表示する。操作画面の左側には入力画像そのものが表示され、右側に領域分割情報が矩形ブロックとして表示される。なお、図15には、矩形ブロックの理解を容易にするため、各ブロックに、その属性を示す文字列TEXT、PICTURE、LINE、TABLEなどを示すが、実際の操作画面には属性情報は表示されず、矩形ブロックが枠線として表示される。属性情報TEXTは文字属性を、PICTUREは図画属性を、PHOTOは写真属性を、LINEは線画属性を、TABLEは表属性をそれぞれ表す。勿論、図15のように入力画像と領域分割情報とを左右に並置表示する以外に、これらを重ね合わせて入力画像上に矩形ブロックを表示するなど、多様な表示形態が可能である。また、この他の属性を定義すれば、さらに様々な種類の矩形領域として分割することが可能である。
【００６７】
次に、スプーラ402は、ベクトル化処理(S1103)により画像データをベクトルデータに変換する。ベクトル化方法は後述する。
【００６８】
次に、スプーラ402は、ベクトル化処理で得たベクトルデータを使用して、再利用可能なアプリケーションデータ形式のデータ（ベクトル化データ）に生成し、ベクトル化データをスプールファイル403に格納する(S1104)。
【００６９】
通常、データ形式は使用するアプリケーションに依存するため、目的に応じたファイル形式に変換する必要がある。例えば、代表的なアプリケーションソフトウェアのワードプロセッサソフトウェアや表計算ソフトウェアなどでは、それぞれ目的に応じたファイル形式が定義され、その形式でデータファイルを生成し保存する必要がある。
【００７０】
より汎用的なファイル形式としては、例えばMicrosoft(R)が策定したRich Text Format (RTF)形式や、近年使用されるようになった、World Wide Web Consortium (W3C)が提唱するScalable Vector Graphics (SVG)形式、あるいは、単純にテキストデータのみを扱うプレーンテキスト形式などがあり、これらのデータ形式はアプリケーションソフトウェアにおいて共通に使用できる可能が高い。
【００７１】
以上の処理により、編集等の再利用が容易なデータとしてベクトル化データが生成され、ベクトル化データはオリジナルのアプリケーションデータとともに管理され、スプールファイル403に格納される。
【００７２】
以下では、図11に示した主要なステップの処理について詳細に説明する。
【００７３】
［ブロックセレクション(S1102)］
ブロックセレクションは、図15に示す一頁の画像をオブジェクトの集合体と認識して、各オブジェクトの属性を文字(TEXT)、図画(PICTURE)、写真(PHOTO)、線画(LINE)、表(TABLE)に判別し、異なる属性を持つセグメント（ブロック）に分割する処理である。次に、ブロックセレクションの具体例を説明する。
【００７４】
先ず、処理すべき画像を白黒画像に二値化して、輪郭線追跡によって黒画素で囲まれる画素の塊を抽出する。所定面積以上の黒画素の塊については、その内部の白画素について輪郭線追跡を行い白画素の塊を抽出する。さらに、所定面積以上の白画素の塊の内部の黒画素の塊を抽出するというように、黒画素および白画素の塊の抽出を再帰的に繰り返す。
【００７５】
このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさおよび形状に基づき属性を判定する。例えば、縦横比が1に近く、大きさが所定範囲の画素塊を文字属性の画素塊とし、さらに、近接する文字属性の画素塊が整列していてグループ化が可能な場合はそれらを文字領域とする。また、縦横比が小さい扁平な画素塊を線画領域に、所定以上の大きさで、かつ、矩形に近い形状を有し、整列した白画素塊を内包する黒画素塊が占める範囲を表領域に、不定形の画素塊が散在する領域を写真領域、その他の任意形状の画素塊を図画領域に、のようにそれぞれ分類する。
【００７６】
図16はブロックセレクションの結果の一例を示す図で、図16(a)は抽出された各矩形ブロックのブロック情報を示す。ブロック情報には、各ブロックの属性、位置の座標X、Y、幅W、高さH、OCR情報などが含まれる。属性は1〜5の数値で与えられ、「1」は文字属性、「2」は図面属性、「3」は表属性、「4」は線画属性、「5」は写真属性を表す。また、座標X、Yは入力画像における各矩形ブロックの始点のXY座標（左上角の座標）を、幅W、高さHは矩形ブロックのX座標方向の幅、Y座標方向の高さを、ポインタ情報の有無をそれぞれ表す。
【００７７】
また、図16(b)は入力ファイル情報で、ブロックセレクションによって抽出された矩形ブロックの総数を示す。
【００７８】
これら矩形ブロックごとのブロック情報は特定領域のベクトル化に利用される。また、ブロック情報によって、ベクトル化された特定領域とラスタデータの相対位置関係を特定することができ、入力画像のレイアウトを損わずにベクトル化領域とラスタデータ領域を合成することが可能になる。
【００７９】
［ベクトル化処理(S1103)］
まず、ベクトル化方法には、次の手法が存在する。
【００８０】
（a）文字属性の領域の場合は、OCR処理により文字画像を文字コードに変換する、または、文字のサイズ、スタイル、字体を認識して視覚的に忠実なフォントデータに変換する。
【００８１】
（b）線画または文字属性の領域で、OCR処理による文字認識が不可能な場合は、線画または文字の輪郭を追跡し、輪郭情報（アウトライン）を線分のつながりとして表現する形式に変換する。
【００８２】
（c）図形属性の領域の場合は、図形オブジェクトの輪郭を追跡し、輪郭情報を線分のつながりとして表現する形式に変換する。
【００８３】
（d）上記(b)または(c)の手法で得られた線分形式のアウトライン情報をベジェ関数などでフィッティングして関数情報に変換する。
【００８４】
（e）上記(c)の手法で得られた図形オブジェクトの輪郭情報から、図形の形状を認識し、円、矩形、多角形などの図形定義情報に変換する。
【００８５】
（f）表属性の領域の場合、罫線や枠線を認識し、所定のフォーマットの帳票フォーマット情報に変換する。
【００８６】
以上の手法のほかにも、画像データをコード情報、図形情報、関数情報などのコマンド定義形の情報に置き替える種々のベクトル化処理が考えられる。
【００８７】
［文字領域のベクトル化］
図17はベクトル化処理(S1103)の詳細を示すフローチャートである。
【００８８】
まず、ブロック情報を参照して文字属性のセグメントか否か判断し(S901)、文字属性のセグメントであればステップS902に進んでパターンマッチングの一手法を用いて文字認識を行い、対応する文字コードを得る。
【００８９】
また、文字属性のセグメント以外の場合は、詳細は後述するが、画像の輪郭に基づくベクトル化を実行する(S912)。
【００９０】
文字属性のセグメントの場合は、横書き、縦書きの判定（組み方向の判定）を行うために、画素値に対する水平、垂直の射影をとり(S902)、射影の分散を評価し(S903)、水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判定して、その判定結果に基づき、行の切り出した後、文字を切り出して文字画像を得る(S904)。
【００９１】
文字列および文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、切り出した行に対する垂直方向の射影から文字を切り出す。縦書きの文字領域に対しては、水平と垂直について逆の処理を行えばよい。なお、行、文字の切り出しに際して、文字のサイズも検出し得る。
【００９２】
次に、切り出した各文字について、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルを生成する(S905)。特徴ベクトルの抽出には種々の公知手法があるが、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。
【００９３】
次に、観測特徴ベクトルと、予め字種ごとに求めてある辞書特徴ベクトルとを比較して、観測特徴ベクトルと辞書特徴ベクトルの距離を算出し(S906)、算出した距離を評価して、最も距離の近い字種を認識結果とする(S907)。さらに、距離の評価結果から最短距離と閾値を比較して、最短距離が閾値未満であれば類似度が高いと判定し、最短距離が閾値以上であれば類似度が低いと判定する(S908)。最短距離が閾値以上の場合（類似度が低い場合）は、形状が類似する他の文字と誤認識している可能性が高いので、ステップS907の認識結果を採用せず、文字画像を線画と同様に扱い、文字画像のアウトラインをベクトル化する(S911)。言い換えれば、誤認識の可能性が高い文字画像は、視覚的に忠実なアウトラインのベクトルデータを生成する。
【００９４】
一方、類似度が高い場合は、ステップS907の認識結果を採用するとともに、文字認識に用いる字種数分の辞書特徴ベクトルを、文字形状種すなわちフォント種に対して複数用意しておき、パターンマッチングの際に、文字コードとともにフォント種を出力することで文字フォントを認識する(S909)。続いて、文字認識およびフォント認識よって得られた文字コードおよびフォント情報を参照し、文字コードおよびフォント情報それぞれに対応して予め用意されたアウトラインデータを用いて、各文字をベクトルデータに変換する(S910)。なお、カラー画像データの場合は、文字の色を抽出してベクトルデータとともに記録する。
【００９５】
以上の処理により、文字属性のセグメントに含まれる文字画像をほぼ形状、大きさ、色が忠実なベクトルデータに変換することができる。
【００９６】
［文字領域以外のベクトル化(S912)］
文字属性のセグメント以外、すなわち図形属性、線画属性、表属性と判定されるセグメントは、黒画素塊を抽出し、その輪郭をベクトルデータに変換する。なお、写真属性のセグメントは、ベクトル化せず画像データのままにする。
【００９７】
文字領域以外のベクトル化は、まず、線画などを直線および/または曲線の組み合わせとして表現するために、曲線を複数の区間（画素列）に区切る「角」を検出する。図18はベクトル化における角抽出処理を説明する図で、角は曲率が極大になる点で、図18の曲線上の画素Piが角か否かは以下のように判定する。
【００９８】
画素Piを起点とし、線画曲線に沿って画素Piから両方向に所定画素数kずつ離れた画素Pi-k、Pi+kを線分Lで結ぶ。画素Pi-k、Pi+k間の距離をd1、画素Piから線分Lに直交するように下した線分の長さ（画素piと線分Lの距離）をd2が極大になる場合、あるいは、画素Pi-k、Pi+k間の弧の長さをAと距離d1の比d1/Aが所定の閾値以下になる場合、画素Piを角と判定する。
【００９９】
角を検出後、角によって分割された線画曲線の画素列を直線あるいは曲線で近似する。直線への近似は最小二乗法などにより実行し、曲線への近似は三次スプライン関数などを用いる。画素列を分割する角の画素は近似直線あるいは近似曲線における始端または終端になる。
【０１００】
さらに、ベクトル化された輪郭内に白画素塊の内輪郭が存在するか否かを判定し、内輪郭が存在する場合はその輪郭をベクトル化し、内輪郭の内輪郭というように、再帰的に黒画素塊および白画素塊の内輪郭をベクトル化する。
【０１０１】
以上のように、輪郭の区分線を直線または曲線で近似する方法を用いれば、任意形状の図形のアウトラインをベクトル化することができる。また、入力画像がカラーの場合は、カラー画像から図形の色を抽出してベクトルデータとともに記録する。
【０１０２】
図19はベクトル化において輪郭線をまとめる処理を説明する図である。
【０１０３】
輪郭線の注目区間で外輪郭PRjと、内輪郭PRj+1または他の外輪郭が近接している場合、二つまたは三つ以上の輪郭線をひとまとめにして、太さをもつ線として表現することができる。例えば、輪郭PRj+1上の画素Pと、画素Piと最短距離の輪郭PRj上の画素Q間の距離PQを算出し、複数の画素間の距離PQiのばらつきが僅かである場合は、輪郭PRjおよびPRj+1を注目区間を線分PQの中点Mの点列に沿う直線または曲線で近似する。そして、中点Mの点列に沿う近似直線または近似曲線の太さは、例えば、距離PQiの平均値とすればよい。
【０１０４】
線や線の集合体である表罫線は、太さをもつ線の集合として表すことにより、効率よくベクトル表現することができる。
【０１０５】
［図形の認識］
以上で線図形などのアウトラインをベクトル化した後、ベクトル化された区分線を図形オブジェクトごとにグループ化する。
【０１０６】
図20はベクトル化で生成したベクトルデータのグループ化処理を示すフローチャートで、ベクトルデータを図形オブジェクトごとにグループ化する処理を示している。
【０１０７】
まず、各ベクトルデータの始点および終点を算出し(S1401)、始点および終点の情報を用いて、図形要素を検出する(S1402)。図形要素とは、区分線によって構成される閉図形であり、検出に際しては、始点、終点になっている共通の角の画素においてベクトルを連結する。すなわち、閉形状を構成するベクトル群はそれぞれ、その両端に連結するベクトルを有するという原理を応用する。
【０１０８】
次に、図形要素内に他の図形要素もしくは区分線が存在するか否かを判定し(S1403)、存在すれば、ステップS1401およびS1402を再帰的に繰り返して、それらをグループ化して一つの図形オブジェクトとし(S1404)、存在しなければ、その図形要素を図形オブジェクトとする(S1405)。
【０１０９】
なお、図20には一つの図形オブジェクト分の処理しか示さないが、他の図形オブジェクトが存在すれば、その分、図20の処理を繰り返す。
【０１１０】
●図形要素の検出(S1402)
図21は図形要素の検出処理を示すフローチャートである。
【０１１１】
まず、ベクトルデータより、両端に連結するベクトルを有しないベクトルを除去して、閉図形を構成するベクトルを抽出する(S1501)。
【０１１２】
次に、閉図形を構成するベクトルについて、ベクトルの何れかの端点（始点または終点）を開始点として、一定方向（例えば時計回り）に順にベクトルを探索する。すなわち、他端点において他のベクトルの端点を探索し、所定距離内の最近接端点を連結ベクトルの端点とする。閉図形を構成するベクトルを一回りして開始点に戻ると、通過したベクトルすべてを一つの図形要素を構成する閉図形としてグループ化する(S1502)。また、閉図形内部にある閉図形を構成するベクトルもすべて再帰的にグループ化する。さらに、グループ化されていないベクトルの始点を開始点とし、上記と同様の処理を繰り返す。
【０１１３】
そして、除去したベクトルのうち、閉図形としてグループ化したベクトルに端点が近接しているベクトル（閉図形に連結するベクトル）を検出し、検出したベクトルをそのグループにグループ化する(S1503)。
【０１１４】
以上の処理によって図形ブロックを、再利用可能な個別の図形オブジェクトとして扱うことが可能になる。
【０１１５】
［アプリケーションデータ形式への変換(S1104)］
図22はベクトル化処理の結果を示す中間データの形式を示す図で、中間データはいわゆるドキュメントアナリシスアウトプットフォーマット(DAOF)と呼ばれる形式で保存される。
【０１１６】
DAOFは、ヘッダ1601、レイアウト記述データ部1602、文字認識記述データ部1603、表記述データ部1604および画像記述データ部1605からなり、ヘッダ1601は処理対象の入力画像に関する情報を保持する。
【０１１７】
レイアウト記述データ部1602は、入力画像中の矩形セグメントの属性を示すTEXT（文字）、TITLE（タイトル）、CAPTION（キャプション）、LINE（線画）、PICTURE（図面） 、FRAME（枠）、TABLE（表）、PHOTO（写真）などの情報と、それら矩形セグメントの位置情報を保持する。
【０１１８】
文字認識記述データ部1603は、TEXT、TITLE、CAPTIONなどの文字属性の矩形セグメントのうち、ユーザにより指定された領域について、文字認識して得た文字認識結果を保持する。
【０１１９】
表記述データ部1604は表属性の矩形セグメントの表構造の詳細を保持し、画像記述データ部1605は、図面属性や線画属性の矩形セグメントにおける、入力画像データから切り出した画像データを保持する。
【０１２０】
ベクトル化した特定領域の画像記述データ部1605には、ベクトル化処理により得られたセグメントの内部構造や、画像の形状や文字コード等を表すデータの集合が保持される。一方、ベクトル化しない特定領域以外のセグメントに対しては、入力画像データそのものが保持される。
【０１２１】
図23はアプリケーションデータ形式への変換処理を示すフローチャートである。
【０１２２】
まず、DAOF形式のデータを入力し(S1701)、アプリケーションデータの基になる文書構造ツリーを生成し(S1702)、文書構造ツリーに基づき、DAOF内の実データを取得してアプリケーションデータを生成する(S1703)。
【０１２３】
図24は文書構造ツリーの生成処理(S1703)の詳細を示すフローチャートである。なお、この処理における、全体制御の基本ルールとして、処理の流れはミクロブロック（単一矩形ブロック）からマクロブロック（矩形ブロックの集合体）へ移行する。以後「矩形ブロック」は、ミクロブロックおよびマクロブロック両者を意味するものとする。
【０１２４】
まず、矩形ブロック単位に、縦方向の関連性に基づき矩形ブロックをグループ化する(S1801)。なお、図24に示す処理は繰り返し実行されることがあるが、処理開始直後はミクロブロック単位の判定になる。ここで、関連性とは、距離が近い、ブロック幅（横方向の場合は高さ）がほぼ同一である、などの特徴によって定義される。また、距離、幅、高さなどの情報はDAOFを参照する。
【０１２５】
例えば、図25に示す入力画像の場合、その最上部で矩形ブロックT1、T2が横方向に並置されている。矩形ブロックT1、T2の下には横方向セパレータS1が存在し、横方向セパレータS1の下に矩形ブロックT3、T4、T5、T6、T7が存在する。矩形ブロックT3、T4、T5は、横方向セパレータS1の下側領域の左半部に、上から下に縦方向に配置され、矩形ブロックT6、T7は、横方向セパレータS1の下側領域の右半部に、上下に配置されている。
【０１２６】
ステップS1801で、縦方向の関連性に基づくグルーピングを実行すると、矩形ブロックT3、T4、T5が一つのグループ（矩形ブロックV1）にまとめられ、矩形ブロックT6、T7が一つのグループ（矩形ブロックV2）にまとめられる。グループV1、V2は同一階層になる。
【０１２７】
次に、縦方向のセパレータの有無をチェックする(S1802)。セパレータは、DAOF中で線画属性をもつオブジェクトであり、アプリケーションソフトウェア中では、明示的にブロックを分割する機能をもつ。セパレータを検出すると、処理対象の階層において、入力画像の領域をセパレータを境界として左右に分割する。図25の例には、縦方向のセパレータは存在しない。
【０１２８】
次に、縦方向のグループの高さの合計が、入力画像の高さに等しいか否かを判定する(S1803)。すなわち、縦方向（例えば上から下）に処理対象の領域を移動しながら、横方向のグルーピングを行えば、入力画像全体の処理が終了した場合は、グループの高さの合計が入力画像の高さになることを利用して、処理の終了を判断する。
【０１２９】
グルーピングが未了の場合は、横方向の関連位に基づき矩形ブロックをグループ化する(S1804)。これによって、図25に示す矩形ブロックT1、T2が一つのグループ（矩形ブロックH1）にまとめられ、矩形ブロックV1、V2が一つのグループ（矩形ブロックH2）にまとめられる。グループH1、H2は同一階層になる。ここでも、処理開始直後はミクロブロック単位での判定になる。
【０１３０】
次に、横方向のセパレータの有無をチェックする(S1805)。セパレータを検出すると、処理対象の階層において、入力画像の領域をセパレータを境界として上下に分割する。なお、図25には、横方向のセパレータS1が存在する。
【０１３１】
次に、横方向のグループの幅の合計が、入力画像の幅に等しいか否かを判定する(S1806)。これによって横方向のグルーピングに関する終了を判定する。横方向のグループの幅の合計が入力画像の幅（頁幅）になった場合は、文書構造ツリーの生成処理を終了する。横方向のグループの幅の合計が頁幅未満であれば、処理をステップS1801に戻し、もう一段上の階層で縦方向の関連性チェックから繰り返す。
【０１３２】
図26は、図25に示す画像V0から得られる文書構造ツリーを示す図である。
【０１３３】
画像V0は、最上位階層にグループH1、H2、セパレータS1を有し、グループH1には第二階層の矩形ブロックT1、T2が属する。また、グループH2には、第二階層のグループV1、V2が属し、グループV1には、第三階層の矩形ブロックT3、T4、T5が属し、グループV2には、第三階層の矩形ブロックT6、T7が属する。
【０１３４】
図26に示すツリーに達した段階で、横方向のグループの幅の合計がページ幅になるので、処理を終了し、最後にページ全体を表す最上位階層のV0を文書構造ツリーに付加する。そして、文書構造ツリーが完成した後、その情報に基づきアプリケーションデータを生成する。
【０１３５】
まず、グループH1が横方向に二つの矩形ブロックT1、T2を有するので2カラムとして、T1のDAOFを参照し、その内部情報（文字認識結果の文章、画像等）を一つ目のカラム（左カラム）に出力する。その後、二つ目のカラム（右カラム）に移動して、T2の内部情報を出力し、その儀、セパレータS1を出力する。
【０１３６】
次に、グループH2に移り、グループH2は横方向に二個の矩形ブロックV1、V2を有するので2カラムとして、グループV1の矩形ブロックT3、T4、T5の順にその内部情報を一つ目のカラム（左カラム）出力し、その後、二つ目のカラム（右カラム）に移動して、V2の矩形ブロックT6、T7の順にその内部情報を出力する。
【０１３７】
以上の処理により、アプリケーションデータ形式のベクトル化データへの変換処理が実行される。
【０１３８】
このように、印刷文書のドキュメント情報からオリジナルの電子データを検索する、または、電子データを再利用する画像処理システムにおいて、電子データを登録する側でオブジェクトの種類に応じて選択的に登録する、言い換えれば登録オブジェクトを制御することができる。例えば、全オブジェクトを登録する、あるいは、写真オブジェクト、表オブジェクト、文字オブジェクトまたは文字と写真オブジェクトを登録し、他のオブジェクトはその位置情報だけを登録するなど、ドキュメントの作成者（または登録者）が再利用可能に残しておきたいオブジェクトを選択的に登録する制御が可能である。従って、上記画像処理システムにおいて問題になる、登録データ量の増大を改善することができる。
【０１３９】
また、言い換えれば、画像処理システムにデータそのものを登録せずに、登録するオブジェクトの属性を選択することで、不必要な属性のオブジェクトを削除して、画像処理システムに登録することができる。従って、登録する電子データのデータ量を削減することが可能になる。
【実施例２】
【０１４０】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１４１】
実施例1では、プリンタドライバ303が提供するユーザインタフェイス（印刷・登録設定ダイアログ）においてRCPが設定された場合、登録データ（オリジナルのアプリケーションデータとベクトル化データ）をデータベースサーバ105に登録する形態を説明した。実施例2では、データベースサーバ105に登録するデータ量をさらに軽減するため、登録するデータをベクトル化データに限定する。
【０１４２】
実施例2においては、デスプーラ405は、スプールファイルマネージャ404の印刷要求に応じて、スプールファイル403から必要な情報を読み出し、印刷データの生成と、RCPが指定されている場合は登録用データ（ベクトル化データ）の送信準備を行い、印刷データ（および、RCPが指定されている場合は登録用データ）をMFP 100へ送信する。MFP 100は、受信した印刷データにより文書を印刷するとともに、登録用データを受信した場合は登録用データをデータベースサーバ105へ登録する。なお、登録用データは、クライアントPC 102からデータベースサーバ105へ直接送信して登録することもできる。
【０１４３】
図27は実施例2のベクトル化データのファイル形式を示す図で、ヘッダ2601、ベクトル化データがベクトル化データ部2602から構成される。ヘッダ2601には、データベースサーバ105に登録されるデータのフォーマット形式に準拠する情報が記述され、ベクトル化データのサイズ、オリジナルのアプリケーションデータのサイズ、RCPの設定内容などの情報が記述される。
【実施例３】
【０１４４】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１４５】
実施例1では、プリンタドライバ303が提供するユーザインタフェイス（印刷・登録設定ダイアログ）においてRCPが設定された場合、登録データ（オリジナルのアプリケーションデータとベクトル化データ）をデータベースサーバ105に登録する形態を説明した。実施例3では、上記ユーザインタフェイスにより登録データをデータベースサーバ105に登録する期間を設定し、登録期間が過ぎた登録データは、その実体をデータベースサーバ105から削除して、登録データ量を削減する一例を説明する。
【０１４６】
前述したように、図5に示す印刷設定ダイアログにおいてRCPが設定されると、詳細設定ボタン605がアクティブになり、さらに、ベクトル化の設定を変更することができる。図28から図30は、実施例3において、詳細設定ボタン605を押した場合に表示される印刷設定ダイアログの一例を示す図である。
【０１４７】
図28に示すユーザインタフェイスの期間設定ボタン2905を押すと、図29に示すユーザインタフェイスが表示され、ボックス3001にはデフォルトまたは現在設定されている期間が示され、プルダウンアロー3002を押すと、図30に示すように、期間として設定可能な内容がブルダウンメニュー3101に表示される。
【０１４８】
設定可能な期間には、例えば「無期限」「1年」「6ヶ月」「3ヶ月」「1ヶ月」「1週間」の六つの期間がある。例えば、期間「1ヶ月」が選択されると、ボックス3001には「1ヶ月」が表示され、その状態でOKボタン903が押されればRCPの設定内容に登録期間一月が設定され、図8に示す登録用電子データの設定情報801に「登録期間一月」が記録される。なお、登録期間は、上記に限定されず、例えばキーボードyy:mm:dd形式で期間を入力したり、期間の末日を指定してもよい。
【０１４９】
図31は登録期間が指定されたベクトル化データの一例を示す図である。実施例1と同様に、SVG形式で表記するが、これに限定されるものではない。
【０１５０】
図31に示す記述は、図24に示した記述とほぼ同じだが、枠3201で囲んだ部分に示す登録期間を示すタグが追加されている。本実施例では、期間を表すtermタグ内に、登録日および時を表すdateタグおよびtimeタグが設定される。勿論、図31に示す表記に限らず、登録情報の登録期間を表現できれば他の表記を利用しても構わない。
【０１５１】
図32はデータベースサーバ105による登録期間の管理を説明するフローチャートである。
【０１５２】
まず、登録データを開き(S3301)、当該データに登録期間が設定されている否かを調べ(S3302)、登録期間が設定されていなければ当該データを閉じ(S3303)、ステップS3301へ戻って次の登録データを開く。図31の例であれば、termタグがあるか否かで登録期間が設定されているか否かを判定する。
【０１５３】
登録期間が設定されている場合は、当該データから登録期間を示すデータ（図33の例ではtermタグ、dateタグのパラメータ）を取得し(S3304)、データベースサーバ105の内蔵タイマから現在の年月日を取得して(S3305)、当該データの登録が登録期間を過ぎていないか否かを判定し(S3306)、登録期間を過ぎていなければ当該データを閉じ(S3303)、ステップS3301へ戻って次の登録データを開く。もし、登録期間を過ぎている場合は当該データを削除し(S3307)、ステップS3301へ戻って次の登録データを開く。
【０１５４】
なお、図32に示す登録期間の管理は、例えば、データベースサーバ105が管理する登録日時を参照して登録日時が古い順に登録データを検査するのが好ましい。また、登録期間が設定されていない登録データにはフラグをセットするなどして、再検査を行わないようにすると効率的である。また、登録期間の計算方法を下式に示す。
endtime = date(date) + date(term)
today() ＜ endtime  ならば消去しない      …(1)
today() ≧ endtime  ならば消去する
ここで、date()は日付文字列を日付数値に変換する関数
today()は現在の日付数値を取得する関数
【０１５５】
上記のような単純な日付の比較演算に限らず、数値を代用できるインデックスを利用するなど、他の比較方法を用いても構わない。
【実施例４】
【０１５６】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1、2、3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１５７】
実施例3では、登録期間が過ぎると登録データを削除する例を説明したが、実施例4では、登録するオブジェクトごとに登録期間を設定して、登録期間が過ぎるとオブジェクトの実体を消去して、登録データ量を削減する例を説明する。
【０１５８】
前述したように、図5に示す印刷設定ダイアログにおいてRCPが設定されると、詳細設定ボタン605がアクティブになり、さらに、ベクトル化の設定を変更することができる。図33、図34は、実施例4において、詳細設定ボタン605を押した場合に表示される印刷設定ダイアログの一例を示す図である。
【０１５９】
図33に示すユーザインタフェイスのオブジェクトボタン3405を押すと、図34に示すユーザインタフェイスが表示され、ボックス3501にはデフォルトまたは現在設定されているオブジェクトタイプが示され、プルダウンアロー3502を押すと、図34に示すように、設定可能なオブジェクトタイプがブルダウンメニュー3503に表示される。
【０１６０】
設定可能なオブジェクトタイプには、例えば「全オブジェクトタイプ」「写真オブジェクト」「テキストオブジェクト」「図形・線画オブジェクト」「表オブジェクト」の五つのタイプがある。例えば、期間「写真オブジェクト」が選択されると、ボックス3501には「写真オブジェクト」が表示され、その状態でOKボタン903が押されればRCPの設定内容に、例えば写真オブジェクト登録期間一月が設定され、図8に示す登録用電子データの設定情報801に「写真オブジェクト登録期間一月」が記録される。なお、登録期間は、図34に示す期間設定ボタン2905を押すことで、ボックス3501に表示されたオブジェクトタイプごとに設定することができる。また、登録期間が設定されないオブジェクトタイプの登録期間はデフォルト（例えば無期限）に設定される。もし全オブジェクトタイプを選択し、登録期間を設定すれば、実施例3と同様の設定になる。なお、登録期間の設定は実施例3と同じであるから、その詳細説明を省略する。
【０１６１】
図35は写真オブジェクトの登録期間が指定されたベクトル化データの一例を示す図である。実施例1と同様に、SVG形式で表記するが、これに限定されるものではない。
【０１６２】
図35に示す記述は、図24に示した記述とほぼ同じだが、枠3601で囲んだ部分に示すオブジェクトタイプとその登録期間を示すタグが追加されている。図35の例では、写真オブジェクトタイプを示すimageタグ内に、実施例3と同様にtermタグが設定される。勿論、図35に示す表記に限らず、オブジェクトタイプごとの登録期間を表現できれば他の表記を利用しても構わない。
【０１６３】
図36はデータベースサーバ105による登録期間の管理を説明するフローチャートである。
【０１６４】
まず、登録データを開き(S3701)、該当データにオブジェクトタイプごとの登録期間が設定されている否かを調べ(S3702)、設定されていなければ当該データを閉じ(S3703)、ステップS3701へ戻って次の登録データを開く。図31の例であれば、termタグを含むimageタグがあるか否かでオブジェクトタイプごとに登録期間が設定されているか否かを判定する。
【０１６５】
オブジェクトタイプごとに登録期間が設定されている場合は、当該データに当該オブジェクトタイプのオブジェクトの実体があるか否かを判定し(S3704)、実体がなければ当該データを閉じ(S3703)、ステップS3701へ戻って次の登録データを開く。
【０１６６】
当該オブジェクトタイプのオブジェクトの実体がある場合は、その登録期間を示すデータ（図35の例ではtermタグ、dateタグのパラメータ）を取得し(S3705)、データベースサーバ105の内蔵タイマから現在の年月日を取得して(S3706)、登録期間を過ぎていないか否かを判定し(S3707)、登録期間を過ぎていなければ当該データを閉じ(S3303)、ステップS3301へ戻って次の登録データを開く。もし、登録期間を過ぎている場合は当該データから当該オブジェクトタイプのオブジェクトを削除し(S3708)、当該データを閉じ(S3303)、ステップS3301へ戻って次の登録データを開く。
【０１６７】
なお、オブジェクトの実体があるとはNULL属性になっていないことである。つまり、実施例1で説明したように、領域情報だけが記載されているNULL状態は実体がないと判定する。従って、ステップS3708におけるオブジェクトを削除するとは、図37に枠3801で一例を示すようにNULL状態にすることである。
【実施例５】
【０１６８】
以下、本発明にかかる実施例5の画像処理を説明する。なお、実施例5において、実施例1、2、3、4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１６９】
上記実施例3、4で説明した登録データまたはオブジェクトを削除する概念に登録データへのアクセス頻度を組み込み、データベースサーバ105に記録されたアクセス頻度に応じて登録データまたはオブジェクトを削除することで、登録データ量を削減する方法も採用することができる。
【０１７０】
図38は、図34に示す実施例4の印刷設定ダイアログにおいて、期間設定ボタン2905の代わりに頻度設定ボタン2905aを設けた例である。
【０１７１】
図38に示すユーザインタフェイスの頻度設定ボタン2905aを押すと、ボックス4002にはデフォルトまたは現在設定されているアクセス頻度（単位は例えばアクセス/月）が示され、プルダウンアロー4003を押すと、アクセス頻度として設定可能な内容がブルダウンメニュー4001に表示される。
【０１７２】
設定可能なアクセス頻度には、例えば「無制限」「10000」「1000」「100」「10」「3」の六つの頻度がある。例えば、期間「100」が選択されると、ボックス4002には「100」が表示され、その状態でOKボタン903が押されればRCPの設定内容にアクセス頻度100が設定され、図8に示す登録用電子データの設定情報801に「アクセス頻度100」が記録される。なお、アクセス頻度は、上記に限定されず、例えばキーボードから入力してもよい。
【０１７３】
図39は写真オブジェクトのアクセス頻度が指定されたベクトル化データの一例を示す図である。実施例1と同様に、SVG形式で表記するが、これに限定されるものではない。
【０１７４】
図39に示す記述は、図24に示した記述とほぼ同じだが、枠3901で囲んだ部分に示すオブジェクトタイプとそのアクセス頻度を示すタグが追加されている。図39の例では、写真オブジェクトタイプを示すimageタグ内に、アクセス頻度を示すfreqタグが設定される。勿論、図39に示す表記に限らず、オブジェクトタイプごとのアクセス頻度を表現できれば他の表記を利用しても構わない。
【０１７５】
図39に示す記述は、図24に示した記述とほぼ同じだが、枠3901で囲んだ部分に示す登録期間を示すタグが追加されている。本実施例では、期間を表すtermタグ内に、登録日および時を表すdateタグおよびtimeタグが設定される。勿論、図31に示す表記に限らず、登録情報の登録期間を表現できれば他の表記を利用しても構わない。
【０１７６】
また、オブジェクトタイプごとにアクセス頻度を設定せずに、実施例3と同様に、登録データにアクセス頻度を設定しても構わない。
【０１７７】
図40はデータベースサーバ105による登録管理を説明するフローチャートである。
【０１７８】
まず、登録データを開き(S4001)、当該データにアクセス頻度が設定されている否かを調べ(S4002)、アクセス頻度が設定されていなければ当該データを閉じ(S4003)、ステップS4001へ戻って次の登録データを開く。図39の例であれば、freqタグがあるか否かでアクセス頻度が設定されているか否かを判定する。
【０１７９】
アクセス頻度が設定されている場合は、当該データからアクセス頻度を示すデータ（図39の例ではfreqタグのパラメータ）を取得し(S4004)、また当該データの実測アクセス頻度を例えばRAMから取得して(S4005)、実測アクセス頻度とアクセス頻度を比較し(S4006)、実測アクセス頻度≧アクセス頻度であれば当該データを閉じ(S4003)、ステップS4001へ戻って次の登録データを開く。もし、実測アクセス頻度＜アクセス頻度の場合は当該データを削除し(S4007)、ステップS4001へ戻って次の登録データを開く。
【０１８０】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１８１】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【０１８２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【０１８３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１８４】
【図１】実施例1の画像処理システムの構成例を示すブロック図、
【図２】MFPの構成例を示すブロック図、
【図３】クライアントPC上で動作する、アプリケーションデータを印刷処理際の処理モジュールの概略構成を説明する図、
【図４】図3に示した処理モジュールの詳細構成を示すブロック図、
【図５】印刷・登録の設定を行うユーザインタフェイス（ダイアログ）の一例を示す図、
【図６】スプーラの処理例を示すフローチャート、
【図７】スプールファイルマネージャの処理例を示すフローチャート、
【図８】スプールファイルマネージャからデスプーラに通知される情報の一例を示す図、
【図９】詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図１０】詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図１１】全登録モードが設定された場合のベクトル化データの一例を示す図、
【図１２】全登録モードが設定された場合のベクトル化データの一例を示す図、
【図１３】ベクトル化データとオリジナルのアプリケーションデータを組み合わせたファイル形式を示す図、
【図１４】図6に示した、スプーラによるベクトル化処理の詳細を示す図、
【図１５】BS処理によって得られた領域分割情報と、入力画像を合成した操作画面の一例を示す図、
【図１６】ブロックセレクションの結果の一例を示す図、
【図１７】ベクトル化処理の詳細を示すフローチャート、
【図１８】ベクトル化における角抽出処理を説明する図、
【図１９】ベクトル化において輪郭線をまとめる処理を説明する図、
【図２０】ベクトル化で生成したベクトルデータのグループ化処理を示すフローチャート、
【図２１】図形要素の検出処理を示すフローチャート、
【図２２】ベクトル化処理の結果を示す中間データの形式を示す図、
【図２３】アプリケーションデータ形式への変換処理を示すフローチャート、
【図２４】文書構造ツリーの生成処理の詳細を示すフローチャート、
【図２５】入力画像の一例を示す図、
【図２６】図25に示す画像から得られる文書構造ツリーを示す図、
【図２７】実施例2のベクトル化データのファイル形式を示す図、
【図２８】実施例3において、詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図２９】実施例3において、詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図３０】実施例3において、詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図３１】登録期間が指定されたベクトル化データの一例を示す図、
【図３２】データベースサーバによる登録期間の管理を説明するフローチャート、
【図３３】実施例4において、詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図３４】実施例4において、詳細設定ボタンを押した場合に表示される印刷設定ダイアログの一例を示す図、
【図３５】写真オブジェクトの登録期間が指定されたベクトル化データの一例を示す図、
【図３６】データベースサーバによる登録期間の管理を説明するフローチャート、
【図３７】NULL状態の写真オブジェクトを説明する図、
【図３８】図34に示す印刷設定ダイアログにおいて、期間設定ボタンの代わりに頻度設定ボタンを設けた例を示す図、
【図３９】写真オブジェクトのアクセス頻度が指定されたベクトル化データの一例を示す図、
【図４０】データベースサーバによる登録管理を説明するフローチャートである。
【図１】
2006268352.tif 000003
【図２】
2006268352.tif 000004
【図３】
2006268352.tif 000005
【図４】
2006268352.tif 000006
【図５】
2006268352.tif 000007
【図６】
2006268352.tif 000008
【図７】
2006268352.tif 000009
【図８】
2006268352.tif 000010
【図９】
2006268352.tif 000011
【図１０】
2006268352.tif 000012
【図１１】
2006268352.tif 000013
【図１２】
2006268352.tif 000014
【図１３】
2006268352.tif 000015
【図１４】
2006268352.tif 000016
【図１５】
2006268352.tif 000017
【図１６】
2006268352.tif 000018
【図１７】
2006268352.tif 000019
【図１８】
2006268352.tif 000020
【図１９】
2006268352.tif 000021
【図２０】
2006268352.tif 000022
【図２１】
2006268352.tif 000023
【図２２】
2006268352.tif 000024
【図２３】
2006268352.tif 000025
【図２４】
2006268352.tif 000026
【図２５】
2006268352.tif 000027
【図２６】
2006268352.tif 000028
【図２７】
2006268352.tif 000029
【図２８】
2006268352.tif 000030
【図２９】
2006268352.tif 000031
【図３０】
2006268352.tif 000032
【図３１】
2006268352.tif 000033
【図３２】
2006268352.tif 000034
【図３３】
2006268352.tif 000035
【図３４】
2006268352.tif 000036
【図３５】
2006268352.tif 000037
【図３６】
2006268352.tif 000038
【図３７】
2006268352.tif 000039
【図３８】
2006268352.tif 000040
【図３９】
2006268352.tif 000041
【図４０】
2006268352.tif 000042