(57)【要約】【課題】文章をオブジェクト単位に読み進めていく際、文章全体がどの様に構造認識されたかや、文章の中のどの位置を読んでいるのかを把握できなかった。【解決手段】画像処理装置は、画像を表示する表示手段と、表示倍率と表示位置を設定する設定手段と、設定手段で設定された表示倍率と表示位置に基づいて、画像中の１つのオブジェクトを表示する様に表示手段を制御する第１の表示制御手段と、第１の表示制御手段により表示中のオブジェクトと、当該オブジェクトの前後のオブジェクトと、それ以外のオブジェクトとを互いに識別可能な形式にて表示する様に表示手段を制御する第２の表示制御手段と、第１の表示制御手段による表示中に受け付けるユーザの指示に応じて、第１の表示制御手段による表示から第２の表示制御手段による表示に切り替え、その表示が終了した後に第１の表示制御手段による表示に切り替える切替手段を備える。【選択図】図３０
2015052827.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトを含む画像を表示する表示手段と、
前記表示手段により前記画像に含まれる各オブジェクトを表示するための表示倍率と表示位置を設定する設定手段と、
前記設定手段で設定された前記表示倍率と前記表示位置に基づいて、前記複数のオブジェクトのうちの１つのオブジェクトを表示する様に前記表示手段を制御する第１の表示制御手段と、
前記第１の表示制御手段により表示中のオブジェクトと、当該オブジェクトの前後のオブジェクトと、それ以外のオブジェクトとを互いに識別可能な形式にて表示する様に前記表示手段を制御する第２の表示制御手段と、
前記第１の表示制御手段による表示中に受け付けるユーザの指示に応じて、前記第１の表示制御手段による表示から前記第２の表示制御手段による表示に切り替え、前記第２の表示制御手段による表示が終了した後に前記第１の表示制御手段による表示に切り替える切替手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記指示は、前記第１の表示制御手段により表示中のオブジェクトからその前又は後のオブジェクトへ遷移させる指示であり、
前記切替手段は、前記遷移させる指示が所定時間以上継続されれば、前記第２の表示制御手段による表示に切り替え、当該指示が終了した場合に、前記第１の表示制御手段による前記前又は後のオブジェクトの表示に切り替えることを特徴とする、請求項１に記載の画像処理装置。
【請求項３】
前記指示は、画像を縮小して表示するための縮小表示指示であり、
前記切替手段は、前記縮小表示指示の間に前記第２の表示制御手段による表示に切り替え、当該指示が終了した場合に、前記第１の表示制御手段による表示中のオブジェクトの表示に切り替えることを特徴とする、請求項１に記載の画像処理装置。
【請求項４】
画像に含まれる複数のオブジェクトのそれぞれを表示するための表示倍率と表示位置を設定する設定ステップと、
前記設定された前記表示倍率と前記表示位置に基づいて、前記複数のオブジェクトのうちの１つのオブジェクトを表示する様に制御する第１の表示制御ステップと、
前記第１の表示制御ステップにより表示中のオブジェクトと、当該オブジェクトの前後のオブジェクトと、それ以外のオブジェクトとを互いに識別可能な形式にて表示する様に制御する第２の表示制御ステップと、
前記第１の表示制御ステップによる表示中に受け付けるユーザの指示に応じて、前記第１の表示制御ステップによる表示から前記第２の表示制御ステップによる表示に切り替え、前記第２の表示制御ステップによる表示が終了した後に前記第１の表示制御ステップによる表示に切り替える切替ステップとを備えることを特徴とする、プロセッサにより実行される画像処理方法。
【請求項５】
前記指示は、前記第１の表示制御ステップにより表示中のオブジェクトからその前又は後のオブジェクトへ遷移させる指示であり、
前記切替ステップは、前記遷移させる指示が所定時間以上継続されれば、前記第２の表示制御ステップによる表示に切り替え、当該指示が終了した場合に、前記第１の表示制御ステップによる前記前又は後のオブジェクトの表示に切り替えることを特徴とする、請求項４に記載の画像処理方法。
【請求項６】
前記指示は、画像を縮小して表示するための縮小表示指示であり、
前記切替ステップは、前記縮小表示指示の間に前記第２の表示制御ステップによる表示に切り替え、当該指示が終了した場合に、前記第１の表示制御ステップによる表示中のオブジェクトの表示に切り替えることを特徴とする、請求項４に記載の画像処理方法。
【請求項７】
請求項４乃至６のいずれか一項に記載の画像処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを格納した、コンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は構造化された画像データを小さな画面で閲覧することに適した画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
文章表示手段において、スマートフォンやＰＤＡなどの限られた画面サイズで文書を分かり易く表示するために、文章構造を自動認識し、構造認識されたオブジェクト毎に適切な解像度で順に表示する手段が開示されている（例えば、特許文献１参照）。この様な文書表示手段を用いると、文書画像を解析し読み順を決定することができ、一元的なスクロール操作だけで文章を順番に拡大表示しながら読み進めることができる。例えば、特許文献１では、表示文章に行末が含まれ、かつ、次文字の表示指示を受付けた場合に、一旦文書の縮小表示を行った後に、直前の解像度に戻して次行の行頭から表示することが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４０９４５１２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の文書表示手段では、文書構造を自動認識された文章をオブジェクト単位に読み進めていく最中に、文書の構造がどのように自動認識されたか把握する手段や、文書の中のどの位置を読んでいるのかを把握できる手段が無かった。結果的に、ユーザが文書を読み進める最中に迷ってしまう課題があった。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明の画像処理装置は、複数のオブジェクトを含む画像を表示する表示手段と、表示手段により画像に含まれる各オブジェクトを表示するための表示倍率と表示位置を設定する設定手段と、設定手段で設定された表示倍率と表示位置に基づいて、複数のオブジェクトのうちの１つのオブジェクトを表示する様に表示手段を制御する第１の表示制御手段と、第１の表示制御手段により表示中のオブジェクトと、当該オブジェクトの前後のオブジェクトと、それ以外のオブジェクトとを互いに識別可能な形式にて表示する様に表示手段を制御する第２の表示制御手段と、第１の表示制御手段による表示中に受け付けるユーザの指示に応じて、第１の表示制御手段による表示から第２の表示制御手段による表示に切り替え、第２の表示制御手段による表示が終了した後に第１の表示制御手段による表示に切り替える切替手段とを備える。
【発明の効果】
【０００６】
本発明によれば、文書表示手段において、文章構造を自動認識された文章をオブジェクト単位に読み進める際、適切なタイミングでページ全体がどのように構造化されているのかを表示することができる。さらに、現在表示中のオブジェクトを、全体における位置関係や読み順を含め、識別可能な形式で表示することができる。特に、文章を読み進める際に頻繁に使用する操作（次へ進む、前へ戻る、ピンチイン）に対して、現在表示中のオブジェクトと、その周辺のオブジェクトと、ページ全体に含まれる各オブジェクトとを、適切なタイミングで識別可能な形式で表示可能とする。これにより、ユーザはオブジェクト単位に文章を読み進める最中に、どこを読んでいるのか分からなくなった場合にも、簡単な操作にて解決することが可能となる。
【図面の簡単な説明】
【０００７】
【図１】本発明に係る画像処理システムを示すブロック図である。
【図２】図１におけるＭＦＰを示すブロック図である。
【図３】第１の実施例で説明する第１のデータ処理フローである。
【図４】第１の実施例で説明するスキャナからの読み込みを示すフローである。
【図５】第１の実施例で説明するＰＣからのデータをビットマップにするフローである。
【図６】第１の実施例で説明するメタ情報を付加する処理フローである。
【図７】オブジェクト分割した結果の一例である。
【図８】オブジェクト分割時の各属性のブロック情報および入力ファイル情報である。
【図９】第１の実施例に係るベクトル化処理のフロー図である。
【図１０】ベクトル化の処理における角抽出の処理を示す図である。
【図１１】ベクトル化の処理における輪郭線まとめの処理を示す図である。
【図１２】輪郭に基づいてベクトル化を行う処理を示すフローチャートである。
【図１３】第１の実施例に係るベクトル化処理結果のデータを示すマップである。
【図１４】アプリケーション画像データ変換の処理を示すフローチャートである。
【図１５】文書構造ツリー生成の処理を示すフローチャートである。
【図１６】文書構造ツリー生成処理の対象となる文書を示す図である。
【図１７】図１６の処理によって生成される文書構造ツリーを示す図である。
【図１８】本実施例で説明するＳＶＧ（Scalable Vector Graphics）形式の一例である。
【図１９】携帯情報端末の構成を示すブロック図である。
【図２０】携帯情報端末のソフトウェアモジュールの構成を示すブロック図である。
【図２１】ジェスチャイベント名の一覧と、各イベント発生時に送信する情報である。
【図２２】携帯情報端末がアプリケーション画像データを受信するフローチャートである
【図２３】携帯情報端末のタッチＵＩの画面表示例である。
【図２４】アプリケーション画像データの操作制御に係わるソフトウェアモジュールの構成を示すブロック図である。
【図２５】第１の実施例で説明する表示モード切替処理のフローチャートである。
【図２６】携帯情報端末のタッチＵＩの画面表示例である。
【図２７】第１の実施例で説明する部分領域表示範囲決定処理のフローチャートである。
【図２８】第１の実施例で説明する次選択処理のフローチャートである。
【図２９】第１の実施例で説明する前選択処理のフローチャートである。
【図３０】第１の実施例で説明する現在位置表示処理のフローチャートである。
【図３１】第１の実施例で説明する縮小表示処理のフローチャートである。
【図３２】携帯情報端末のタッチＵＩの画面表示例（次選択処理）である。
【図３３】携帯情報端末のタッチＵＩの画面表示例（前選択処理）である。
【図３４】携帯情報端末のタッチＵＩの画面表示例（縮小表示処理）である。
【発明を実施するための形態】
【０００８】
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は、本実施形態に係る画像処理システムの構成を示すブロック図である。図１において、オフィス内に構築されたＬＡＮ１０２には、複数種類の機能（複写機能、印刷機能、送信機能等）を実現する複合機であるＭＦＰ１００と、クライアントＰＣ１０１が接続されている。また、ＬＡＮ１０２には、プロキシサーバ１０３と、文書管理サーバ１０６、文書管理サーバ１０６のためのデータベース１０５、携帯情報端末１０７が、無線または有線で接続されている。ＬＡＮ１０２は、プロキシサーバ１０３を介してネットワーク１０４に接続されている。
【０００９】
クライアントＰＣ１０１、プロキシサーバ１０３の各種端末はそれぞれ、汎用コンピュータに搭載される標準的な構成要素（例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、ネットワークＩ／Ｆ、ディスプレイ、キーボード、マウス等）を有している。例えば、クライアントＰＣ１０１は、印刷データをＭＦＰ１００へ送信することで、その印刷データに基づく印刷物をＭＦＰ１００で印刷することが可能である。なお、図１の構成は一例であり、同様の構成要素を有する複数のオフィスがネットワーク１０４上に接続されていても良い。
【００１０】
ネットワーク１０４は、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかで実現されている。もちろん、それらの組み合わせにより実現されるいわゆる通信ネットワークであっても良いことは言うまでもなく、データの送受信が可能であれば良い。
【００１１】
図２は、図１におけるＭＦＰ１００の機能構成を示すブロック図である。図２において、ＭＦＰ１００は、画像読み取り部１１０、記憶装置（以下、「ＢＯＸ」と記す）１１１、記録装置１１２、データ処理装置１１５、入力装置１１３、表示装置１１６、ネットワークＩ／Ｆ１１４で構成される。
【００１２】
画像読み取り部１１０は、Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ（以下、「ＡＤＦ」と記す、不図示）を有し、束状の或いは１枚の原稿の画像を光源で照射し、反射画像をレンズで固体撮像素子上に結像する。固体撮像素子は所定解像度（例えば６００ｄｐｉ）および所定輝度レベル（例えば８ビット）の画像読み取り信号を生成し、画像読み取り信号からラスターデータよりなる画像データが構成される。
【００１３】
通常の複写機能を実行する際には、画像読み取り部１１０で得たビットマップ画像データをデータ処理装置１１５によって、後述するスキャン画像処理して記録信号に変換し、記録装置１１２で画像形成（印刷出力）する。複数枚複写の場合には、１頁分の記録信号を一旦ＢＯＸ１１１に記憶保持した後、記録装置１１２に順次出力して、記録紙上に記録画像を形成する。
【００１４】
ＭＦＰ１００は、ＰＣ１０２もしくは不図示の汎用ＰＣからドライバを利用して出力されてくるＰＤＬデータを、ＬＡＮ１０２とネットワークＩ／Ｆ１１４を介して受信し、当該受信したＰＤＬデータに基づく画像を、記録装置１１２によって記録し得る。すなわち、ＰＣ１０２からドライバを経由して出力されるＰＤＬデータは、ＬＡＮ１０２からネットワークＩ／Ｆ１１４を経てデータ処理装置１１５に入力される。そこで言語を解釈・処理することで記録可能な記録信号に変換された後、ＭＦＰ１００において、記録紙上に記録画像として記録される。
【００１５】
ＢＯＸ１１１は、画像読み取り部１１０からのデータやＰＣ１０２からドライバを経由して出力されるＰＤＬデータをレンダリングしたデータを保存できる機能を有している。また、ＭＦＰ１００は、ＭＦＰ１００に設けられたキー操作部（入力装置１１３）を通じて操作され、操作入力の状態を表示装置１１６によって表示し得る。
【００１６】
〔第１の実施例〕
図３を用いて、本発明の第１の実施例におけるアプリケーション画像データの生成フローを説明する。図３は、ビットマップ画像データから、携帯情報端末１０７で表示するための所定のフォーマットのデータ（以下、「アプリケーション画像データ」）と呼ぶ）を生成するためのフローチャートである。ビットマップ画像データは、ＭＦＰ１００の画像読み取り部１１０により取得、または、ＰＣ１０２上においてアプリケーションソフトで作成されたドキュメントをＭＦＰ１００内部でレンダリングして生成される。
【００１７】
まず、ステップＳ３０１において、データ処理装置１１５は、ビットマップ画像データを属性毎のオブジェクトに分割するオブジェクト分割処理を行う。オブジェクト分割後のオブジェクトの属性種類は、文字、写真、グラフィック（図面、線画、表、ライン）、背景を指す。
【００１８】
ステップＳ３０２において、分割された各々のオブジェクトに対して、オブジェクトの種類（文字、写真、グラフィック、背景）を判定する。写真または背景と判定されたオブジェクトについては、ステップＳ３０３において、当該オブジェクトのビットマップ画像をＪＰＥＧ圧縮する。一方、文字またはグラフィックと判定されたオブジェクトについては、ステップＳ３０４において、ベクトル化処理を行って、パス化されたデータ（ベクトルデータ）に変換する。
【００１９】
次に、ステップＳ３０５において、該オブジェクトが文字かどうかを判定し、文字の場合には、更にステップＳ３０８において、ＯＣＲ処理を施し、文字コード化されたデータ（ＯＣＲ結果の文字コードデータ）も取得する。Ｓ３０３及びＳ３０４で得た各オブジェクトのデータ（ＪＰＥＧデータ、ベクトルデータ）と、Ｓ３０８で得た文字コードデータとを一つのファイルにまとめた後、ステップＳ３０６において、各オブジェクトに対して、最適なメタデータを付与する。
【００２０】
メタデータが付与された各々のオブジェクトは、ステップＳ３０７において、携帯情報端末１０７が表示可能なアプリケーション画像データに生成される。最後に、ステップＳ３０９において、データ処理装置１１５は、生成したアプリケーション画像データを携帯情報端末１０７に送信する。
【００２１】
＜ビットマップ画像データ作成＞
図４と図５を用いて、本実施例におけるビットマップ画像データ（文書画像データ）の作成について説明する。図４は、ＭＦＰ１００の画像読み取り部１１０を使用した場合のビットマップ画像データ作成のフローチャート、図５は、ＰＣ１０２上のアプリケーションを使用した場合のフローチャートである。図４または図５で生成されたビットマップ画像データに対して、上述した図３の処理が実行される。
【００２２】
ＭＦＰ１００の画像読み取り部１１０を使用した場合には、図４のステップＳ４０１において画像を読み込む。読み込まれた画像は、既にビットマップ画像データである。ステップＳ４０２において、そのビットマップ画像データに対して、画像読み取り部１１０に依存するスキャナ画像処理を行う。ここで言うスキャナ画像処理とは、例えば、色処理やフィルタ処理を指す。
【００２３】
ＰＣ１０２上のアプリケーションを使用した場合には、まず、図５のステップＳ５０１において、ＰＣ１０２上のアプリケーションを使用して作成したデータが、ＰＣ１０２上にあるプリントドライバを介してプリントデータに変換され、ＭＦＰ１００に送信される。ここで言うプリントデータとは、ＰＤＬを意味し、例えば、ＬＩＰＳ（商標）、Ｐｏｓｔｓｃｒｉｐｔ（商標）等のページ記述言語を指す。次にステップＳ５０２において、ＭＦＰ１００内部に存在するインタープリタを介して、ディスプレイリストが生成される。そのディスプレイリストをステップＳ５０３において、レンダリングすることにより、ビットマップ画像データが生成される。
【００２４】
＜メタデータ付与（Ｓ３０６）＞
図６のフローチャートを用いて、図３のステップＳ３０６に示すメタデータの付与処理の詳細について説明する。まず、ステップＳ６０１において、Ｓ３０１で分割されたオブジェクトのそれぞれについて、各オブジェクトの周囲で一番近くに存在する文字オブジェクトを選択する。次に、ステップＳ６０２において、選択された文字オブジェクトに対して、形態素解析を行う。次に、ステップＳ６０３において、ステップＳ６０２で形態素解析結果により抽出された単語をメタデータとして各オブジェクトに付加する。なお、メタデータは、形態素解析だけではなく、画像特徴量抽出、構文解析等によっても作成できる。さらに、ＭＦＰ１００に内蔵されたＢＯＸ、およびデータベース１０５に既に保存されている文書、および、それに含まれるオブジェクトを対象に類似画像検索を行って、類似度の高い類似画像のオブジェクトとの関連付けを行っても良い。
【００２５】
＜オブジェクト分割（Ｓ３０１）＞
図７と図８を用いて、ステップＳ３０１のオブジェクト分割について、詳細に説明する。図７は、オブジェクト分割処理によって、ビットマップ画像データを複数のオブジェクトに分割した結果の一例である。図８は、オブジェクト分割したときの各オブジェクトのブロック情報および入力ファイル情報を表す。
【００２６】
ステップＳ３０１において、入力画像（図７の左）に対してオブジェクト分割処理を行うことにより、属性ごとに矩形ブロックに分割する（図７の右）。前述のように、矩形ブロックの属性としては、文字、写真、グラフィック（図面、線画、表、ライン）がある。
【００２７】
オブジェクト分割処理には、例えば以下のような手法がある。まず、ＭＦＰ１００内のＲＡＭ（不図示）に格納されたイメージデータを白黒に２値化し、黒画素輪郭で囲まれる画素塊を抽出する。さらに、このように抽出された黒画素塊の大きさを評価し、大きさが所定値以上の黒画素塊の内部にある白画素塊に対する輪郭追跡を行う。白画素塊に対する大きさ評価、内部黒画素塊の追跡というように、内部の画素塊が所定値以上である限り、再帰的に内部画素塊の抽出、輪郭追跡を行う。画素塊の大きさは、例えば画素塊の面積によって評価される。このようにして得られた画素塊に外接する矩形ブロックを生成し、矩形ブロックの大きさ、形状に基づき属性を判定する。例えば、縦横比が１に近く、大きさが一定の範囲の矩形ブロックは文字領域矩形ブロックの可能性がある文字相当ブロックとする。また、近接する文字相当ブロックが規則正しく整列しているときに、これら文字相当ブロックを纏めた新たな矩形ブロックを生成し、新たな矩形ブロックを文字領域矩形ブロックとする。また扁平な画素塊、もしくは、一定大きさ以上でかつ四角形の白画素塊を整列よく内包する黒画素塊をグラフィック領域矩形ブロック、それ以外の不定形の画素塊を写真領域矩形ブロックとする。
【００２８】
ステップＳ３０１では、このようにして生成された矩形ブロックのそれぞれについて、図８に示す、属性等のブロック情報および入力ファイル情報を生成する。図８において、ブロック情報には各ブロックの属性、位置の座標Ｘ、座標Ｙ、幅Ｗ、高さＨ、ＯＣＲ情報が含まれる。属性は１〜３の数値で与えられ、１は文字領域矩形ブロック、２は写真領域矩形ブロック、３はグラフィック領域矩形ブロックを示す。
【００２９】
座標Ｘ、Ｙは入力画像における各矩形ブロックの始点のＸ、Ｙ座標（左上角の座標）である。幅Ｗ、高さＨは矩形ブロックのＸ座標方向の幅、Ｙ座標方向の高さである。ＯＣＲ情報は、前記ステップＳ３０８のＯＣＲ処理で文字コード化されたデータへのポインタ情報の有無を示す。さらに入力ファイル情報として矩形ブロックの個数を示すブロック総数Ｎも保存しておく。
【００３０】
これらの矩形ブロックごとのブロック情報は、特定領域でのベクトル化に利用される。またブロック情報によって、特定領域とその他の領域を合成する際の相対位置関係を特定でき、入力画像のレイアウトを損なわずにベクトル化された領域とビットマップのままの領域を合成することが可能となる。
【００３１】
＜ベクトル化（Ｓ３０４）＞
図９のフローチャートを用いて、図３のステップＳ３０４のベクトル化処理について詳細に説明する。まず、ステップＳ９０１において、データ処理装置１１５は、特定領域が文字領域矩形ブロックであるか否か判断し、文字領域の矩形ブロックであればステップＳ９０２以下のステップに進む。一方、特定領域が文字領域矩形ブロックでないときは、ステップＳ９１２に移行する。
【００３２】
ステップＳ９０２〜Ｓ９０７では、パターンマッチング等の手法を用いて文字認識処理を行い、対応する文字コードを得る。例えば、ステップＳ９０２において、データ処理装置１１５は、特定領域に対し横書き、縦書きの判定（組み方向判定）を行うために、特定領域内で画素値に対する水平・垂直の射影を取る。次に、ステップＳ９０３において、ステップＳ９０２の射影の分散を評価する。水平射影の分散が大きい場合は横書き、垂直射影の分散が大きい場合は縦書きと判断する。ステップＳ９０４において、ステップＳ９０３の評価結果に基づき、組み方向を判定し、行の切り出しを行い、その後文字を切り出して文字画像を得る。文字列および文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、切り出された行に対する垂直方向の射影から、文字を切り出す。縦書きの文字領域に対しては、水平と垂直について逆の処理を行う。行、文字切り出しに際して、文字のサイズも検出し得る。
【００３３】
次に、ステップＳ９０５において、ステップＳ９０４で切り出された各文字について、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルを生成する。特徴ベクトルの抽出には種々の公知手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴ベクトルとする方法がある。ステップＳ９０６において、ステップＳ９０５で得られた観測特徴ベクトルと、あらかじめフォントの種類ごとに求められている辞書特徴ベクトルとを比較し、観測特徴ベクトルと辞書特徴ベクトルとの距離を算出する。ステップＳ９０７において、ステップＳ９０６で算出された距離を評価し、最も距離の近いフォントの種類を認識結果とする。
【００３４】
次に、ステップＳ９０８において、ステップＳ９０７における距離評価の最短距離が所定値よりも大きいか否かにより、類似度を判断する。最短距離が所定値以上の場合（類似度が低い場合）は、辞書特徴ベクトルにおいて、形状が類似する他の文字に誤認識している可能性が高い。そこで最短距離が所定値以上の場合（類似度が低い場合）は、ステップＳ９０７の認識結果を採用せず、ステップＳ９１１の処置に進む。最短距離が所定値より小さいとき（類似度が高い場合）は、ステップＳ９０７の認識結果を採用し、ステップ９０９に進む。
【００３５】
ステップＳ９０９では、文字フォントの種類を認識する。文字認識の際に用いる、フォントの種類数分の辞書特徴ベクトルを、文字形状種すなわちフォント種に対して複数用意しておく。これを、パターンマッチングの際に、文字コードとともにフォント種を出力することで、文字フォントを認識し得る。次に、ステップＳ９１０において、文字認識およびフォント認識よって得られた文字コードおよびフォント情報を用いて、各々あらかじめ用意されたアウトラインデータを用いて、各文字をベクトルデータに変換する。なお、入力画像がカラーの場合は、カラー画像から各文字の色を抽出してベクトルデータとともに記録する。
【００３６】
一方、ステップＳ９１１では、文字をグラフィックと同様に扱い、該文字をアウトライン化する。すなわち誤認識を起こす可能性の高い文字については、見かけ上ビットマップに忠実なアウトラインのベクトルデータを生成する。また、ステップＳ９１２では、特定領域が文字領域矩形ブロックでないとき（すなわちグラフィック領域矩形ブロックのとき）、画像の輪郭に基づいてベクトル化の処理を実行する。以上の処理により、文字領域矩形ブロックおよびグラフィック領域矩形ブロックに属するイメージ情報をベクトルデータに変換出来る。
【００３７】
＜グラフィック領域矩形ブロックのベクトル化（Ｓ９１２）＞
図１０、図１１、図１２を用いて、ステップＳ９１２のグラフィック領域矩形ブロックのベクトル化処理について詳細に説明する。グラフィック領域矩形ブロックのベクトル化処理は、該領域内で抽出された黒画素塊の輪郭に基づいてベクトル化を行う。図１０は、ベクトル化処理における角抽出の処理を示す図、図１１は、ベクトル化処理における輪郭線まとめの処理を示す図である。図１２は、グラフィック領域のベクトル化処理の詳細フローチャートである。
【００３８】
図１２のステップＳ１２０１において、データ処理装置１１５は、線画等を直線および／または曲線の組み合わせとして表現するために、曲線を複数の区間（画素列）に区切る「角」を検出する。角とは曲率が極大となる点であり、図１０に示すように、曲線上の画素Ｐｉが角か否かの判断は以下のように行う。すなわち、Ｐｉを起点とし、曲線に沿ってＰｉから両方向に所定画素（ｋ個とする）ずつ離れた画素Ｐｉ−ｋ、Ｐｉ＋ｋを線分Ｌで結ぶ。画素Ｐｉ−ｋ、Ｐｉ＋ｋ間の距離をｄ１、線分Ｌと画素Ｐｉとの距離をｄ２、曲線の画素Ｐｉ−ｋ 、Ｐｉ＋ｋ間の弧の長さをＡとする。ｄ２が極大となるとき、あるいは比（ｄ１／Ａ）が閾値以下となるときに画素Ｐｉを角と判断する。角によって分割された画素列を、直線あるいは曲線で近似する。直線への近似は最小二乗法等により実行し、曲線への近似は３次スプライン関数などを用いる。画素列を分割する角の画素は近似直線あるいは近似直線における、始端または終端となる。さらにベクトル化された輪郭内に白画素塊の内輪郭が存在するか否かを判断し、内輪郭が存在するときはその輪郭をベクトル化し、内輪郭の内輪郭というように、再帰的に反転画素の内輪郭をベクトル化する。以上のように、輪郭の区分線近似を用いれば、任意形状の図形のアウトラインをベクトル化することができる。元原稿がカラーの場合は、カラー画像から図形の色を抽出してベクトルデータとともに記録する。
【００３９】
ステップＳ１２０２では、ステップＳ１２０１で求めた輪郭線が近接している場合はそれらをまとめて太さを持った線とする処理を行う。図１１に示すように、ある注目区間で外輪郭ＰＲｊと、内輪郭ＰＲｊ＋１あるいは別の外輪郭が近接している場合、２個あるいは複数の輪郭線をひとまとめにし、太さを持った線として表現することができる。例えば、輪郭ＰＲｊ＋１の各画素Ｐｉから輪郭ＰＲｊ上で最短距離となる画素Ｑｉまでの距離ＰｉＱｉを算出し、ＰｉＱｉのばらつきが僅かである場合には、注目区間を画素Ｐｉ、Ｑｉの中点Ｍｉの点列に沿った直線または曲線で近似し得る。近似直線、近似曲線の太さは、例えば距離ＰｉＱｉの平均値とする。線や線の集合体である表罫線は、太さを持つ線の集合とすることにより、効率よくベクトル表現することができる。
【００４０】
ステップＳ１２０３において、各ベクトルデータの始点、終点を算出する。ステップＳ１２０４において、ステップＳ１２０３で求められた始点、終点情報を用いて、図形要素を検出する。図形要素とは、区分線が構成している閉図形であり、検出に際しては、始点、終端となっている共通の角の画素においてベクトルを連結する。すなわち、閉形状を構成する各ベクトルはその両端にそれぞれ連結するベクトルを有しているという原理を応用する。
【００４１】
ステップＳ１２０５において、ベクトルデータより両端に連結していない不要なベクトルを除去し、閉図形を構成するベクトルを抽出する。ステップＳ１２０６において、閉図形を構成するベクトルについて、いずれかのベクトルの端点（始点または終点）を開始点とし、一定方向、例えば時計回りに、順にベクトルを探索する。すなわち、他端点において他のベクトルの端点を探索し、所定距離内の最近接端点を連結ベクトルの端点とする。閉図形を構成するベクトルを１まわりして開始点に戻ったとき、通過したベクトルを全て一つの図形要素を構成する閉図形としてグループ化する。また、閉図形内部にある閉図形構成ベクトルも全てグループ化する。さらにまだグループ化されていないベクトルの始点を開始点とし、同様の処理を繰り返す。
【００４２】
ステップＳ１２０７において、ステップＳ１２０５で除去された不要ベクトルのうち、ステップＳ１２０６で閉図形としてグループ化されたベクトルに端点が近接しているベクトルを検出し、一つの図形要素としてグループ化する。これによって、図形要素内に存在する他の図形要素、もしくは区分線をグループ化し、一つの図形オブジェクトとすることが出来る。また、図形要素内に他の図形要素、区分線が存在しない場合は図形要素を図形オブジェクトとする。
【００４３】
以上の処理によってグラフィック領域矩形ブロックを、ベクトル化された一つのオブジェクトに変換することが出来る。
【００４４】
＜アプリケーション画像データ生成（Ｓ３０７）＞
図１３と図１４を用いて、ステップＳ３０７のアプリケーション画像データ生成について詳細に説明する。図１３は、本実施例に係るベクトル化処理結果のデータ構成を示すマップである。図１４は、アプリケーション画像データ生成処理の詳細を示すフローチャートである。
【００４５】
まず、ステップＳ１４０１において、ステップＳ３０４のベクトル化で生成された中間データを取得する。本実施形態において、中間データは、以下のようなドキュメント・アナリシス・アウトプット・フォーマット（以下、「ＤＡＯＦ」）と呼ぶ形式で保存されているものとする。
【００４６】
図１３に示すように、ＤＡＯＦは、ヘッダ１３０１、レイアウト記述データ部１３０２、文字認識記述データ部１３０３、表記述データ部１３０４、画像記述データ部１３０５よりなる。ヘッダ１３０１には、処理対象の入力画像に関する情報が保持される。レイアウト記述データ部１３０２には、入力画像中の矩形ブロックの属性である文字、グラフィック（線画、図面 、表、ライン）、写真等の情報と、これら属性が認識された各矩形ブロックの位置情報が保持される。文字認識記述データ部１３０３には、文字領域矩形ブロックのうち、文字認識して得られる文字認識結果が保持される。表記述データ部１３０４には、表の属性を持つグラフィック領域矩形ブロックの表構造の詳細が格納される。画像記述データ部１３０５には、ベクトル化の処理が指示された特定領域においては、ベクトル化処理により得られたブロックの内部構造や、画像の形状や文字コード等あらわすデータの集合が保持される。一方、ベクトル化処理の対象ではない特定領域以外の矩形ブロックでは、オブジェクトに分割されたビットマップ画像データそのものが保持される。
【００４７】
次に、ステップＳ１４０２において、後述する文書構造ツリー生成を行う。ステップＳ１４０３において、文書構造ツリーを元に、ＤＡＯＦ内の実データを取得し、後述するアプリケーション画像データを生成する。
【００４８】
＜文書構造ツリー生成（Ｓ１４０２）＞
図１５、図１６、図１７を用いて、ステップＳ１４０２の文書構造ツリー生成について説明する。図１５は、文書構造ツリー生成の処理を示すフローチャートである。図１６は、文書構造ツリー生成処理の対象となる文書の例を示す図で、図１７は、文書構造ツリー生成の処理によって生成される文書構造ツリーを示す図である。
【００４９】
図１５に示す文書構造ツリー生成の処理における全体制御の基本ルールとして、処理の流れはミクロブロック（単一矩形ブロック）からマクロブロック（矩形ブロックの集合体）へ移行する。以後「矩形ブロック」は、ミクロブロックおよびマクロブロック両者を意味するものとする。
【００５０】
まず、ステップＳ１５０１において、データ処理装置１１５は矩形ブロック単位で、縦方向の関連性に基づき、矩形ブロックを再グループ化する。ここで、関連性とは、距離が近い、ブロック幅（横方向の場合は高さ）がほぼ同一であることなどの特徴によって定義される。また、距離、幅、高さなどの情報はＤＡＯＦを参照し、抽出する。なお、図１５の処理は繰り返し実行されることがあるが、処理開始直後はミクロブロック単位での判定となる。
【００５１】
例えば、図１６の文書では、最上部に矩形ブロックＴ１、Ｔ２が横方向に並列されている。矩形ブロックＴ１、Ｔ２の下には矩形Ｔ３、Ｔ４、Ｔ５、Ｔ６が存在し、更にその下には横方向セパレータU１が存在し、横方向セパレータU１の下に矩形ブロックＴ７、Ｔ８、Ｔ９、Ｔ１０が存在する。矩形ブロックＴ３、Ｔ４は、最上部の矩形ブロックＴ１とＴ２の下側の領域における左半部において上下の縦方向に配列され、矩形ブロックＴ５とＴ６は右半部において上下に配列されている。ステップＳ１５０１の縦方向の関連性に基づくグルーピングの処理を実行すると、矩形ブロックＴ３とＴ４が１個のグループ（矩形ブロック）Ｓ１にまとめられ、矩形ブロックＴ５とＴ６が１個のグループ（矩形ブロック）Ｓ２にまとめられる。グループＳ１、Ｓ２は同一階層となる。矩形ブロックＳ３、Ｓ４はセパレータＵ1の下に存在し、ステップ１５０１の縦方向の関連性に基づくグルーピング処理を実行すると、矩形ブロックＳ３とＳ４が１個のグループ（矩形ブロック）Ｗ３にまとめられる。
【００５２】
次に、ステップＳ１５０２において、縦方向のセパレータの有無をチェックする。セパレータは、ＤＡＯＦ中でライン属性を持つオブジェクトであり、明示的にブロックを分割する機能をもつ。セパレータを検出すると処理対象の階層において、セパレータを境界として入力画像の領域を左右に分割する。図１６では縦方向のセパレータは存在しない。
【００５３】
次に、ステップＳ１５０３において、縦方向のグループ高さの合計が入力画像の高さに等しくなったか否か判断する。すなわち縦方向（例えば上から下）に処理対象の領域を移動しながら、横方向のグルーピングを行うとき、入力画像全体の処理が終了したときには、グループ高さ合計が入力画像高さになることを利用し、処理の終了判断を行う。グルーピングが終了したときはそのまま処理終了し、グルーピングが終了していなかったときはステップＳ１５０４に進む。
【００５４】
次に、ステップＳ１５０４において、横方向の関連性に基づくグルーピングの処理を実行する。これによって、例えば図１６の矩形ブロックＴ１とＴ２が１個のグループ（矩形ブロック）Ｗ１にまとめられ、矩形ブロックＳ３とＳ４が１個のグループ（矩形ブロック）Ｗ２にまとめられる。Ｔ７とＴ８が１個のグループ（矩形ブロック）Ｓ３にまとめられ、Ｔ９とＴ１０が１個のグループ（矩形ブロック）Ｓ４にまとめられる。グループＳ３とＳ４は同一階層、グループＷ１とＷ２とＷ３は同一階層となる。ここでも、処理開始直後はミクロブロック単位での判定となる。
【００５５】
次に、ステップＳ１５０５において、横方向のセパレータの有無をチェックする。セパレータを検出すると、処理対象の階層において、入力画像の領域を、セパレータを境界として上下に分割する。図１６では横方向のセパレータU１が存在する。以上の処理結果は図１７のツリーとして登録される。
【００５６】
図１７において、入力された１ページのビットマップ画像データＶ１は、最上位階層にグループＷ１、Ｗ２、Ｗ３、セパレータＵ１を有する。グループＷ１には第２階層の矩形ブロックＴ１、Ｔ２が属する。グループＷ２には、第２階層のグループＳ１とＳ２が属し、グループＳ１には、第３階層の矩形ブロックＴ３とＴ４が属し、グループＳ２には、第３階層の矩形ブロックＴ５とＴ６が属する。グループＷ３には、第２階層のグループＳ３とＳ４が属し、グループＳ３には、第３階層の矩形ブロックＴ７とＴ８が属し、グループＳ４には、第３階層の矩形ブロックＴ９とＴ１０が属する。本実施例において、Ｖ１はページを表し、Ｖ１の下位階層にあるものがオブジェクトとなる。
【００５７】
最後に、ステップＳ１５０６において、横方向のグループ長合計が入力画像の幅に等しくなったか否か判断する。これによって横方向のグルーピングに関する終了判断を行う。横方向のグループ長がページ幅となっている場合は、文書構造ツリー生成の処理を終了する。横方向のグループ長がページ幅となっていないときは、ステップＳ１５０１に戻り、再びもう一段上の階層で、縦方向の関連性チェックから繰り返す。
【００５８】
図１８に本実施例におけるアプリケーション画像データのフォーマットの一例を示す。本実施例では、アプリケーション画像データのフォーマットとして、Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ（以下、「ＳＶＧ」）形式を用いて説明する。なお、本実施例ではアプリケーション画像データをＳＶＧ形式で表記しているが、文書の意味や構造を記述・保持できる画像フォーマットであれば良く、これに限定されるものではない。
【００５９】
図１８では説明のため、各オブジェクトの表記を枠１８０１と１８０２、及び１８０４で囲い示す。各オブジェクトは、オブジェクトの領域を示す領域情報と、ＤＡＯＦ内の実データから取得する描画要素を持つ。また、領域情報のみで描画要素を持たないオブジェクト（例えば図１７のＶ１、Ｖ２など）を持つことも可能である。１８０１は写真属性を示し、そこには写真オブジェクトの領域の示す領域情報と、描画要素としてビットマップ情報が示されている。１８０２は文字属性を示し、文字オブジェクトのベクトルデータと、１８０３にステップＳ３０８のＯＣＲ処理で得られる文字コードデータ及びステップＳ３０４のベクトル化処理で得られる文字サイズが示される。また、前記ステップＳ３０４のベクトル化処理で得られる文字領域の組み方向（縦書き、もしくは横書き）についても記すことが可能である。続く１８０４は、線画などのグラフィックオブジェクトを表す。
【００６０】
＜携帯情報端末のハードウェア構成＞
図１９は、本実施例における携帯情報端末１０７の構成例を示すブロック図である。携帯情報端末１０７は、メインボード１９００、ＬＣＤ１９０１、タッチパネル１９０２、ボタンデバイス１９０３から構成される。また、ＬＣＤ１９０１とタッチパネル１９０２をまとめてタッチＵＩ１９０４と呼ぶこととする。
【００６１】
メインボード１９００の主な構成要素は以下の通りである。ＣＰＵ１９０５、無線ＬＡＮモジュール１９０６、電源コントローラ１９０７、ディスプレイコントローラ（ＤＩＳＰＣ）１９０８、パネルコントローラ（ＰＡＮＥＬＣ）１９０９、ＲＯＭ１９１０、ＲＡＭ１９１１、二次電池１９１２、タイマー１９１３。それぞれのモジュール１９０５〜１９１３は、バス（不図示）によって接続されている。
【００６２】
ＣＰＵ１９０５は、バスに接続される各デバイスを制御すると共に、ＲＯＭ１９１０に記憶された後述のソフトウェアモジュール２０００を、ＲＡＭ１９１１に展開して実行するプロセッサである。ＲＡＭ１９１１は、ＣＰＵ１９０５のメインメモリ、ワークエリア、ＬＣＤ１９０１に表示するビデオイメージ用エリア、およびＭＦＰ１００から送信されるアプリケーション画像データの保存領域として機能する。
【００６３】
ディスプレイコントローラ１９０８は、ＣＰＵ１９０５の要求に応じて、ＲＡＭ１９１１に展開されたビデオイメージ出力を高速に切り替えるとともに、ＬＣＤ１９０１に同期信号を出力する。結果として、ＲＡＭ１９１１のビデオイメージが、ＤＩＳＰＣ１９０８の同期信号に同期してＬＣＤ１９０１に出力され、ＬＣＤ１９０１上にイメージが表示される。
【００６４】
パネルコントローラ１９０９は、ＣＰＵ１９０５の要求に応じて、タッチパネル１９０２およびボタンデバイス１９０３を制御する。その制御によって、タッチパネル１９０２上の指又はスタイラスペンなどの指示物の押下位置や、ボタンデバイス１９０３上の押下されたキーコードなどが、ＣＰＵ１９０５に通知される。押下位置情報は、タッチパネル１９０２の横方向の絶対位置を示す座標値（以下Ｘ座標）と、縦方向の絶対位置を示す座標値（以下Ｙ座標）から成る。タッチパネル１９０２は複数ポイントの押下を検知することが可能で、その場合ＣＰＵ１９０５には押下点数分の押下位置情報が通知される。
【００６５】
電源コントローラ１９０７は、外部電源（不図示）と接続され電力の供給を受ける。これによって、電源コントローラ１９０７に接続された二次電池１９１２を充電しながら、且つ、携帯情報端末１０７全体に電力を供給する。外部電源から電力が供給されないときは、二次電池１９１２からの電力を携帯情報端末１０７全体に供給する。
【００６６】
無線ＬＡＮモジュール１９０６は、ＣＰＵ１９０５の制御に基づいて、前記ＬＡＮ１０２に接続された無線アクセスポイント（不図示）上の無線ＬＡＮモジュールとの無線通信を確立し、携帯情報端末１０７との通信を仲介する。無線ＬＡＮモジュール１９０６には、例えばＩＥＥＥ８０２．１１ｂなどがある。
【００６７】
タイマー１９１３は、ＣＰＵ１９０５の制御に基づいて、図２０のジェスチャイベント発生部２００１へのタイマー割込を発生させる。ジェスチャイベント発生部２００１については後述する。また、携帯情報端末１０７には地磁気センサ（不図示）や加速度センサ（不図示）がバス（不図示）に接続されている。タイマー１９１３は、ＣＰＵ１９０５の制御に基づいて、携帯情報端末１０７の傾きを検知し、携帯情報端末１０７が所定以上の傾きを得ると、携帯情報端末１０７の向きを変更し、描画部２００３にＬＣＤ１９０１への描画の指示を送る。ＣＰＵ１９０５は、前記携帯情報端末１０７の向きが変更されるとき、ＬＣＤ１９０１の幅および高さを入れ替えて、以降の処理を行う。
【００６８】
＜携帯情報端末のソフトウェア構成＞
図２０は、携帯情報端末１０７のＣＰＵ１９０５で実行処理されるソフトウェアモジュール２０００の構成を示すブロック図である。ソフトウェアモジュール２０００を構成する各モジュールについて説明する。
【００６９】
ジェスチャイベント発生部２００１は、ユーザのタッチ入力を受けて、後述する各種ジェスチャイベントを発生させる。ジェスチャイベント発生部２００１は、発生したジェスチャイベントを、ジェスチャイベント処理部２００２へ送信する。ジェスチャイベント処理部２００２は、ジェスチャイベント発生部２００１で発生したジェスチャイベントを受信して、各ジェスチャイベントと、前記アプリケーション画像データに記述された文書構造に応じた処理を実行する。描画部２００３は、ジェスチャイベント処理部２００２の実行結果に応じて、ＭＦＰ１００から送信される前記アプリケーション画像データをＬＣＤ１９０１へ描画する。アプリケーション画像データの表示の方法については後述する。
【００７０】
＜ジェスチャイベント＞
図２１を用いて、ジェスチャイベント発生部２００１で発生するジェスチャイベント名の一覧と、各イベントが発生したときに、ジェスチャイベント処理部２２００へ送信する情報について説明する。なお、以下では、ユーザのタッチ入力の例として指を使った場合を示すが、タッチ入力はスタイラスペンなどによる入力でも良い。
【００７１】
図２１（ａ）は、タッチ押下イベントであり、最新のタッチ座標の座標値とタッチ座標数が送信される。タッチ座標とは、タッチパネル１９０２にユーザの指が触れている１点の座標のことで、Ｘ座標とＹ座標で表される１組の座標値を持つ。また、タッチ座標数とは、タッチパネル１９０２にユーザの指が接触したタッチ座標の数を示している。なお、タッチ座標は、タッチパネル１９０２へユーザの指が触れたとき、指が移動したとき、指が離れたとき、タイマー１９１３からの割り込みが発生したときに更新される。
【００７２】
図２１（ｂ）は、スワイプイベントであり、最新のタッチ座標の座標値と、最新と直前の座標値の差分から計算した移動距離が送信される。ここで、スワイプとは、指先をタッチパネル１９０２に接触させたまま、１方向に移動（滑らすような）動作のことをいう。
【００７３】
図２１（ｃ）は、ピンチインイベントであり、最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の縮小距離から計算したピンチインの縮小率が送信される。ここで、ピンチインとは、２つの指先をタッチパネル１９０２に接触させたまま、互いに近づける（つまむような）動作のことをいう。図２１（ｄ）は、ピンチアウトイベントであり、最新の２点のタッチ座標の中心座標値、及び、２点のタッチ座標を結ぶ直線の拡大距離から計算したピンチアウトの拡大率が送信される。ここで、ピンチアウトとは、２つの指先をタッチパネル１９０２に接触させたまま、互いに遠ざける（指を広げるような）動作のことをいう。
【００７４】
図２１（ｅ）は、２点スワイプイベントであり、最新の２点のタッチ座標の座標値、及び、２点のタッチ座標の最新と直前の座標値の差分から計算した移動距離が送信される。２点スワイプイベントは、２点のタッチ座標が同じ方向に移動している場合に発生する。図２１（ｆ）は、ローテートイベントであり、最新の２点のタッチ座標の座標値から計算した回転の中心座標値、及び、２点のタッチ座標の最新と直前の座標値から計算した回転角度が送信される。ここでローテートとは、２つの指先をタッチパネル１９０２に接触させたまま、２つの指先をタッチパネル１９０２に対して回転させる動作のことを言う。
【００７５】
図２１（ｇ）は、フリックイベントであり、最新のタッチ座標の座標値、及び、最新と直前の座標値から計算した指の移動速度が送信される。ここでフリックとは、スワイプ中に指を離す（指をはじくような）動作のことをいう。図２１（ｈ）は、タッチ解除イベントであり、タッチパネル１９０２からユーザの指が離れたときの最新のタッチ座標の座標値、及び、座標数が送信される。
【００７６】
図２１（ｉ）は、ダブルタップイベントであり、最新のタッチ座標の座標値が送信される。ここでダブルタップとは、所定の時間内に後述のシングルタップイベントが発生したことを言う。図２１（ｊ）は、シングルタップイベントであり、最新のタッチ座標の座標値が送信される。ここでシングルタップとは、前述のタッチ押下イベントの後、所定の時間内にタッチ解除イベントが発生したことを言う。
【００７７】
図２１（ｋ）は、ロングタップイベントであり、最新のタッチ座標の座標値が送信される。ここでロングタップとは、前述のタッチ押下イベントの後、所定の時間以上経過してからタッチ解除イベントが発生したことを言う。図２１（ｌ）は、タッチアンドホールドイベントであり、最新のタッチ座標の座標値が送信される。ここで、タッチアンドホールドイベントとは、タッチパネル１９０２にユーザの指が触れてから一度も移動することなく所定の時間以上経過したことを言う。
【００７８】
＜携帯情報端末におけるアプリケーション画像データ受信＞
図２２と図２３を用いて、本実施例における携帯情報端末１０７のアプリケーション画像データ受信時の処理について説明する。図２２は、携帯情報端末１０７がアプリケーション画像データを受信した際のフローチャートである。図２３は、本実施例における携帯情報端末１０７のタッチＵＩ１９０４の画面表示例である。
【００７９】
まず、ステップＳ２２００において、携帯情報端末１０７は、無線ＬＡＮモジュール１９０６を介してＭＦＰ１００からアプリケーション画像データを受信すると、ＲＡＭ１９１１に受信したアプリケーション画像データを保存する。次に、ステップＳ２２０１において、ＲＡＭ１９１１に保存したアプリケーション画像データの構文を解析し、先頭ページと、それに含まれるオブジェクトを読み込む。次に、ステップＳ２２０２において、描画部２００３は読み込んだ先頭ページに含まれる背景、文字、写真、グラフィックの全てのオブジェクトを、オブジェクトの始点の座標と幅、高さに応じてレンダリングしてタッチＵＩ１９０４の表示状態を更新する。
【００８０】
このとき、先頭ページは、図２３のページ２３００に示すように、タッチＵＩ１９０４の幅に合わせて表示倍率が制御される。また、前記表示倍率に縮小したときのページの高さがタッチＵＩ１９０４よりも小さい場合は、タッチＵＩ１９０４の中央に表示されるように、タッチＵＩ１９０４上の座標において、ページ２３００の始点が制御される。また、前記表示倍率に縮小したときのページ２３００の高さがタッチＵＩ１９０４よりも大きい場合は、タッチＵＩ１９０４上の座標において、ページ２３００の始点がタッチＵＩ１９０４の始点（例えば画面の左上）に合うように制御される。このように、タッチＵＩ１９０４においてページ全体を表示する表示制御方法を、本実施例では「ページ表示モード」と呼ぶ。なお、本実施例のアプリケーション画像データにおいて、文字オブジェクトは、図１８の１８０２に示した通り、ベクトルデータと共に１８０３の文字コードデータを保持している。本実施例の描画部２００３は、ページ内に文字オブジェクトがある場合、ページ２３００のレンダリングにベクトルデータのみを用い、一方で、後述する文字折り返し画像のレンダリングに文字コードデータを用いる。
【００８１】
＜アプリケーション画像データの操作に係るソフトウェアモジュール＞
図２３と図２４を用いて、本実施例における携帯情報端末１０７のアプリケーション画像データの操作制御に係わるソフトウェアモジュールについて説明する。図２４は、ジェスチャイベント処理部２００２において、アプリケーション画像データの操作制御に係わるソフトウェアモジュールの構成を示すブロック図である。
【００８２】
ジェスチャイベント処理部２００２は、ジェスチャイベント発生部２００１から、図２１に示すジェスチャイベントを受信する。表示変更イベント処理部２４００は、ジェスチャイベント処理部２００２が受信するジェスチャイベントの内、シングルタップイベント（図２１（ｊ））に対する処理を行う。表示変更イベント処理部２４００は、シングルタップイベントを受信すると、シングルタップイベントのタッチ座標の座標値が、図２３のモード切替ボタン２３０１、次へボタン２３０２、前へボタン２３０３の何れの上にあるかを判定する。そして、シングルタップイベントのタッチ座標がモード切替ボタン２３０１上である場合は、後述するモード切替処理を行う。また、前記タッチ座標が次へボタン２３０２上である場合は、後述する次選択処理（次へボタン選択処理）を行い、前記タッチ座標が前へボタン２３０３上である場合は、後述する前選択処理（前へボタン選択処理）を行う。次選択処理と前選択処理は、表示変更イベント処理部２４００内の表示順番制御部２４０２と表示範囲制御部２４０３において行われる。
【００８３】
スワイプイベント処理部２４０１は、図２１（ｂ）のスワイプイベントに対する処理を行う。ジェスチャイベント処理部２００２がスワイプイベントを受信すると、スワイプイベントの移動距離に応じて、タッチＵＩ１９０４上の座標において、ページ２３００および後述する文字折り返し画像の始点を移動させる。そして、その上でタッチＵＩ１９０４の表示状態を更新する。また、スワイプイベント処理部２４０１内の移動範囲制限部２４０４において、後述する移動範囲制限処理を行って、タッチＵＩ１９０４に表示されるページ２３００の移動範囲を制限する。
【００８４】
拡大・縮小イベント処理部２４０５は、図２１（ｃ）のピンチインイベントと、図２１（ｄ）のピンチアウトイベントに対する処理を行う。ジェスチャイベント処理部２００２は、ピンチインイベントやピンチアウトイベントを受信すると、前記二つのイベントの縮小率もしくは拡大率に応じてページ２３００および後述する文字折り返し画像のレンダリング時の文字サイズを変化させる。その上でタッチＵＩ１９０４の表示状態を更新する。また、拡大・縮小イベント処理部２４０５内の縮小時表示モード切替部２４０６において、後述する縮小時表示モード切替処理を、拡大時表示モード切替部２４０７において、後述する拡大時表示モード切替処理を行う。
【００８５】
オブジェクト選択処理部２４０８は、図２１（ｉ）のダブルタップイベントに対する処理を行う。ジェスチャイベント処理部２００２がダブルタップイベントを受信すると、ダブルタップイベントのタッチ座標の座標値を用いて後述するオブジェクト選択処理を行う。なお、前記オブジェクト選択処理は、前記ページ表示モードでのみ動作するようオブジェクト選択イベント処理部２４０８によって制御される。
【００８６】
＜表示モード切替＞
図２３と図２５、図２６、図３３を用いて、表示変更イベント処理部２４００において行われるモード切替処理について説明する。図２５は、モード切替処理のフローチャートであり、モード切替ボタン２３０１がユーザによりタップ指示されるのに応じて実行される。図２６と図３３は、本実施例における携帯情報端末１０７のタッチＵＩ１９０４の画面表示例である。
【００８７】
まず、ステップＳ２５００において、表示変更イベント処理部２４００は、モード切替ボタンが指示された時点で、携帯情報端末１０７に設定中の表示モードを取得する。表示モードとは、携帯情報端末１０７がアプリケーション画像データをタッチＵＩ１９０４に表示する方法を示し、本実施例の携帯情報端末１０７は次の３つの表示モードを有する。第一に、ページ全体を表示するのに適したページ表示モードである。第二に、図２６に示すようにページ内の一部の領域（すなわちページ画像内の各オブジェクト）を拡大表示するのに適した部分領域表示モードである。第三に、図３３に示すように文字オブジェクトの文字を読むのに適した折り返し表示モードである。
【００８８】
前述した通り、アプリケーション画像データを携帯情報端末１０７が受信した直後はページ表示モードが設定されている。部分領域表示モードは、図２６に示す通り、ページ２３００内の各オブジェクトが大きく表示されるようにページ２３００の表示倍率と始点を制御する表示モードである。文字オブジェクト２６０１を拡大表示対象のオブジェクトとして選択したときに表示される画面を図２６（ｂ）に示す。なお、図２６（ａ）のオブジェクト２６０１を囲む破線は、説明をわかり易くするために描いたもので、ページ２３００上には存在しない。また、本実施例では、図２６（ｂ）に示すように、拡大表示対象のオブジェクト２６０１の領域が透明で且つそれ以外の領域が半透明グレーである半透明マスク２６００を、ページ２３００の上に重ねて表示する。こうすることによって、対象のオブジェクトだけが見やすくなる。このような半透明マスクを重ねて表示することにより、対象のオブジェクト以外が暗く表示されるので、対象のオブジェクトが強調表示され、ユーザは表示対象になっているオブジェクトの領域を特定しやすくなる。
【００８９】
表示変更イベント処理部２４００は、モード切替ボタン２３０１が指示されたときに設定中の表示モードが、部分領域表示モードもしくは折り返し表示モードである場合にはステップＳ２５０１に、ページ表示モードである場合にはステップＳ２５０４を実行する。折り返し表示モードは、図３３に示す通り、文字オブジェクトが持つ前記文字コードデータを、タッチＵＩ１９０４に合わせてレンダリングする表示モードである。折り返し表示モードへは、部分領域表示モードによって文字コードデータを持つ文字オブジェクトが強調表示されている場合に遷移できる。折り返し表示モードの詳細は後述する。
【００９０】
ステップＳ２５０１において、表示変更イベント処理部２４００は、図２６の半透明マスク２６００を非表示設定（半透明マスクＯＦＦ）にして、ページ表示モードへの切り替えを行う。ステップＳ２５０２において、表示変更イベント処理部２４００は、前述した通り、タッチＵＩ１９０４の幅に合わせてページ２３００の表示倍率を制御すると共に、ページ２３００の始点を制御して、ページの表示範囲を決定する。ステップＳ２５０３において、表示変更イベント処理部２４００は、当該決定されたページの表示範囲に基づいて、タッチＵＩ１９０４の表示状態を更新する。
【００９１】
また、モード切替ボタン２３０１が指示されたときに設定中の表示モードがページ表示モードであった場合には、ステップＳ２５０４において、表示変更イベント処理部２４００は、表示モードを部分領域表示モードへ切り替える。そして、半透明マスク２６００を表示する設定（半透明マスクＯＮ）に変更する。次に、ステップＳ２５０５において、表示変更イベント処理部２４００は、ページ２３００内の先頭オブジェクトを読み込み、先頭オブジェクトの始点、幅、高さを取得する。ここで先頭オブジェクトとは、アプリケーション画像データの文書構造ツリーにおいて、最初に読み込まれるオブジェクトである。
【００９２】
表示変更イベント処理部２４００内の表示範囲制御部２４０３は、ステップＳ２５０６において、後述する部分領域表示範囲決定処理を行った後、ステップＳ２５０３で、当該決定された表示範囲に基づいてタッチＵＩ１９０４の表示状態を更新する。なお、Ｓ２５０６の部分領域表示範囲決定処理では、ステップＳ２５０５で読み込んだオブジェクトの属性に応じて、ページの表示倍率や始点を制御し、タッチＵＩ１９０４に表示する部分領域の表示範囲を決定する。また、このとき表示対象となっているオブジェクトの部分領域以外の領域にはグレーの半透明マスクがかけられるので、ユーザは、表示対象となっているオブジェクトを識別しやすくなる。
【００９３】
＜部分領域表示範囲決定（Ｓ２５０６）＞（第１の表示制御）
表示範囲制御部２４０３で行われるステップＳ２５０６の部分領域表示範囲決定処理の詳細について、図２７のフローチャートを用いて説明する。まず、ステップＳ２７００において、表示範囲制御部２４０３は、読み込んだオブジェクトの属性を判定する。属性が文字の場合はステップＳ２７０１に進み、属性が表である場合はステップＳ２７１１に進み、それ以外の属性である場合はステップＳ２７１２に進む。
【００９４】
ステップＳ２７０１において、表示範囲制御部２４０３は、文字属性である当該表示対象のオブジェクトが、箇条書きであるかどうかを判定する。ここでいう箇条書きのオブジェクトとは、各文字列もしくは行の先頭に点や数字といった行頭文字が存在するオブジェクトを指すものとする。なお、前記行頭文字は、ＯＣＲ結果から取得することができる。オブジェクトが箇条書きでなく、通常の文字列であった場合にはステップＳ２７０２に進み、箇条書きであった場合にはステップＳ２７１２に進む。
【００９５】
ステップＳ２７０２において、表示範囲制御部２４０３は、オブジェクトの文字の組み方向を取得する。オブジェクトの組み方向は、ステップＳ３０４のベクトル化の過程で得られている。ステップＳ２７０３において、表示範囲制御部２４０３は、文字の組み方向を判定し、組み方向が縦書きである場合にはステップＳ２７０４に進み、横書きである場合にはステップＳ２７０５に進む。文字の組み方向が縦書きの場合、ステップＳ２７０４において、表示範囲制御部２４０３は、当該オブジェクトの高さがタッチＵＩ１９０４の高さに入るようにページの表示倍率を設定する。また、文字の組み方向が横書きの場合、ステップＳ２７０５において、表示範囲制御部２４０３は、当該オブジェクトの幅がタッチＵＩ１９０４の幅に入るようにページの表示倍率を設定する。
【００９６】
次に、ステップＳ２７０６において、ステップＳ２７０４またはステップＳ２７０５で設定した表示倍率に拡縮したオブジェクトの全体がタッチＵＩ１９０４に表示できるかどうかを判断する。オブジェクト全体がタッチＵＩ１９０４よりも大きく、全体を表示できない場合にはステップＳ２７０７に進み、一方、オブジェクト全体がタッチＵＩ１９０４よりも小さく、全体を表示できる場合にはステップＳ２７１０に進む。
【００９７】
ステップＳ２７０７において当該オブジェクトにおける文字の組み方向を判定し、縦書きであると判定した場合はステップＳ２７０８に進み、横書きであると判定した場合はステップＳ２７０９に進む。ステップＳ２７０８において、表示範囲制御部２４０３は、オブジェクト全体がタッチＵＩ１９０４に表示できない縦書きの文字領域を表示するので、当該オブジェクトの右上端がタッチＵＩ１９０４の右上端に合うように、前記ページ２３００の始点位置を設定する。すなわち、縦書きの場合の先頭行が表示されるように表示位置を設定する。ステップＳ２７０９において、表示範囲制御部２４０３は、オブジェクト全体がタッチＵＩ１９０４に表示できない横書きの文字領域を表示するので、当該オブジェクトの左上端がタッチＵＩ１９０４の左上端に合うように、前記ページ２３００の始点を設定する。すなわち、横書きの場合の先頭行が表示されるように表示位置を設定する。また、ステップＳ２７１０において、オブジェクト全体がタッチＵＩ１９０４の画面内に収まるので、表示範囲制御部２４０３は、当該オブジェクトの中央がタッチＵＩ１９０４の中央に合うようにページ２３００の始点を設定する。
【００９８】
なお、ステップＳ２７００でオブジェクトの属性が表であると判定した場合には、ステップＳ２７１１において、表示範囲制御部２４０３は、表のヘッダ位置を検出する。ヘッダの位置は、例えば、先頭行（一番上の行）と先頭列（一番左の列）の文字のフォント種がボールドであるか否か、ベクトル化した際のベクトルデータの近似曲線の太さ、表罫線の太さ、表の各セルの背景色などによって判断することができる。ステップＳ２７１１で検出した表のヘッダ位置が先頭行である場合には、ステップＳ２７０３からステップＳ２７０５に進む。また、表のヘッダ位置が先頭列である場合には、ステップＳ２７０３からステップＳ２７０４に進む。また、ステップＳ２７０７では、表のヘッダは一番上の行か一番左の列に存在することが一般的であるため、ステップＳ２７０９に進み、オブジェクトの左上端がタッチＵＩの左上端に合うようにページの始点を設定する。このようにすることで、表のヘッダが表示されるように表示位置が設定されることになる。
【００９９】
また、ステップＳ２７００でオブジェクトの属性がその他の属性（文字・表以外の属性）と判定された場合、ステップＳ２７１２において、表示範囲制御部２４０３は、当該オブジェクト全体がタッチＵＩ１９０４に入るように、ページの表示倍率を設定する。ステップＳ２７０１で箇条書きであると判断された場合も同様である。そして、ステップＳ２７１０において、オブジェクトの中央がタッチＵＩ１９０４の中央に合うようにページ２３００の始点を設定する。
【０１００】
＜次へボタン選択処理＞
次へボタン２３０２がユーザによりタップされたときに実行される次選択処理（次へボタン選択処理）について、図２８のフローチャートと図３０のフローチャートと図３２を用いて説明する。まず、ステップＳ２８００において、表示変更イベント処理部２４００は、次へボタン２３０２がタップされたときに携帯情報端末１０７に設定されている表示モードを取得する。取得した表示モードが部分領域表示モードである場合には、ステップＳ２８０１に進み、ページ表示モードである場合にはステップＳ２８０５に進む。
【０１０１】
ステップＳ２８０１において、表示順番制御部２４０２は、現在読み込んでいるページの全オブジェクトから、文書構造ツリーに基づいて次に表示すべきオブジェクトを選択し、そのオブジェクトを読み込む。本実施例において、文書ツリー構造上の表示順番は、文書ツリー構造において、先頭の上位階層のオブジェクト、そのオブジェクトの下位階層に属するオブジェクトの順である。更に、その下位階層のオブジェクトの表示が全て終わった後に、次の上位階層のオブジェクト、その下位階層のオブジェクト、という順序で表示する。
【０１０２】
例えば、図１７の文書構造ツリーにおいて、Ｖ１はページを表し、最初に読み込まれるオブジェクトはＷ１である。Ｗ１のオブジェクトが部分領域表示モードでタッチＵＩ１９０４に表示されている状態で、次選択処理が行われると、Ｗ１は下位階層を持つため、Ｔ１のオブジェクトが読み込まれる。さらに、Ｔ１のオブジェクトが表示されている状態で次選択処理が行われると、Ｔ１は下位階層を持たず、同階層にＴ２が存在するため、Ｔ２が読み込まれる。Ｔ２のオブジェクトが表示されている状態で次選択処理が行われると、Ｔ２は下位階層を持たず、同階層に次のオブジェクトは存在しないため、次の上位階層のＷ２が読み込まれる。なお、本実施例において、描画要素を持たないＷ１を選択して読み込むとしているが、描画要素を持つＴ１やＴ２だけを選択するようにしても良いことは言うまでもない。また例えば、文字属性のオブジェクトのみなど、特定の属性を持つオブジェクトのみの選択や、特定の属性のみを除外して選択することも可能である。さらに、Ｗ１やＳ１といったそれ単体では描画要素を持たず、下位下層に描画要素を持つオブジェクトのみを選択することも可能である。
【０１０３】
ステップＳ２８０２において、表示順番制御部２４０２は、ステップＳ２８０１で当該ページにおける次のオブジェクトを読み込めたか否かを判定する。ステップＳ２８０１で次のオブジェクトが読み込めた場合（選択可能なオブジェクトがあった場合）は、当該読み込んだオブジェクトを処理対象としてステップＳ２５０６に進む。ステップＳ２８０２において、次のオブジェクトが読み込めなかった場合（次に選択可能なオブジェクトが無かった場合）は、既にページ内の最終オブジェクトが読み込まれている状態である。この場合、ステップＳ２８０２で当該ページの全てのオブジェクトの表示処理が終了したと判断し、ステップＳ２８１０に進み、次ページＶ２を読み込む。ステップＳ２８１１にて表示したページが最終ページであった場合は、ステップＳ２８１２に進み、先頭ページＶ１を読み込む。
【０１０４】
ステップＳ２８１０にて次ページのオブジェクトを読み込めた場合は、ステップＳ２８１３に進み、ユーザより指示された次へボタン２３０２のタップ時間を計測し、所定時間以上ロングタップされたかどうかを判断する。ロングタップが所定時間以上継続された場合、ステップＳ２８１４に進み、現在位置表示モードに遷移し、現在位置及び全体のオブジェク分割結果の表示を行う。この処理の詳細は図３０のフローチャートにて説明する。
【０１０５】
ステップＳ２８１３にてロングタップが所定時間以上行われず、タップ指示が終了した場合には、ステップＳ２５０６に進む。なお、ステップＳ２５０６の部分領域表示範囲決定処理は図２７と同様であるため、ここでの説明は省く。そして、ステップＳ２８０３において、当該読み込まれたオブジェクトの属性および始点と幅、高さに基づいて制御されたページの表示倍率と始点を用いて、タッチＵＩ１９０４の表示状態を更新する。
【０１０６】
ステップＳ２８０５においては、表示モードがページ表示モードであるので、ＲＡＭ１９１１に保存したアプリケーション画像データの構文を解析し、次のページと、それに含まれるオブジェクトを読み込む。ステップＳ２８０６において、表示順番制御部２４０２は、ステップＳ２８０５で次のページが読み込めた場合はステップＳ２８０７に進む。一方、既にＲＡＭ１９１１に保存したアプリケーション画像データの最終ページが読み込まれている状態であり、Ｓ２８０５で次に読み込み可能なページが無かった場合は、ステップＳ２８０８に進む。
【０１０７】
ステップＳ２８０８では、ＲＡＭ１９１１に保存したアプリケーション画像データの構文を解析し、先頭ページと、それに含まれるオブジェクトを読み込む。次に、ステップＳ２８０７において、表示範囲制御部２４０３は、前述した通り、タッチＵＩ１９０４の幅に合わせてページの表示倍率を制御すると共に、ページの始点を制御して、ページの表示範囲を決定する。そして、ステップＳ２８０３では、当該決定されたページ表示範囲に基づいてタッチＵＩ１９０４の表示状態を更新する。
【０１０８】
＜前へボタン選択処理＞
前へボタン２３０２がユーザによりタップされたときに実行される前選択処理（前へボタン選択処理）について、図２９のフローチャートを用いて説明する。前選択処理は、次選択処理とほぼ同じ構成であるため、ここでは異なるステップＳ２９０１、Ｓ２９０５、Ｓ２９１０についてのみ説明する。
【０１０９】
ステップＳ２９０１において、表示順番制御部２４０２は、現在読み込んでいるページの全オブジェクトから、文書構造ツリーに基づいて次に表示すべきオブジェクトを選択し、そのオブジェクトを読み込む。本実施例において、前へボタン２３０２が指定されたときの文書ツリー構造上の表示順番は、文書ツリー構造において末尾の下位階層のオブジェクト、そのオブジェクトの上位階層のオブジェクトというように、下位階層から上位階層への順番であるとする。すなわち、下位階層のオブジェクトの表示が全て終わった後、その上位階層における他のオブジェクトの表示へと移るものとする。
【０１１０】
例えば、図１７において、最初に読み込まれるオブジェクトは末尾の下位階層オブジェクトであるＴ１０である。部分領域表示モードで、Ｔ１０のオブジェクトがタッチＵＩ１９０４に表示されている状態で、前選択処理が行われると、同じ階層にＴ９が存在するため、Ｔ９のオブジェクトが読み込まれる。さらに、Ｔ９のオブジェクトが表示されている状態で前選択処理が行われると、同じ階層にその他のオブジェクトが存在しないため、その上位階層であるＳ４が読み込まれる。Ｓ４のオブジェクトが表示されている状態で前選択処理が行われると、Ｓ４は同じ階層にＳ３を持ち、更にＳ３は下位階層にオブジェクトを持つため、Ｓ３の下位階層の末尾にあるＴ８のオブジェクトが読み込まれる。なお、前選択処理においても、次選択処理と同様に、描画要素を持つオブジェクトだけを選択するようにしても良く、また、特定の属性を持つオブジェクトのみの選択や、特定の属性のみを除外して選択することも可能である。さらに、Ｓ４やＷ３といったそれ単体では描画要素を持たず、下位下層に描画要素を持つオブジェクトのみを選択することも可能である。
【０１１１】
ステップＳ２９１０にて次ページのオブジェクトを読み込めた場合は、ステップＳ２８１３に進み、ユーザより指示された前へボタン２３０３のタップ時間を計測し、所定時間以上タップされたロングタップであるかどうかを判断する。ロングタップが所定時間以上継続された場合は、ステップＳ２８１４に進み、現在位置表示モードに遷移し、現在位置及び全体のオブジェク分割結果の表示を行う。この処理の詳細は図３０のフローチャートにて説明する。ステップＳ２８１３にてロングタップが所定時間以上行われず、タップ指示が終了した場合には、ステップＳ２５０６に進む。なお、ステップＳ２５０６の部分領域表示範囲決定処理は図２７と同様であるため、ここでの説明は省く。
【０１１２】
ステップＳ２９０５においては、表示モードがページ表示モードであるので、ＲＡＭ１９１１に保存したアプリケーション画像データの構文を解析し、前のページと、それに含まれるオブジェクトを読み込む。そして、ステップＳ２８０６に進む。
【０１１３】
＜現在位置表示と分割結果の表示＞（第２の表示制御）
現在位置表示処理部２４０９で行われるステップＳ２８１４の現在位置表示と全体のオブジェクト分割結果の表示処理の詳細について、図３０のフローチャートと、図３２、図３３を用いて説明する。
【０１１４】
ステップＳ３０００において、現在位置表示処理部２４０９は、選択指示を受け付けた時の携帯情報端末１０７に設定されている表示モードを取得し、部分領域表示モードかページ表示モードであるかどうかを判定する。表示モードが部分領域表示モードである場合には、ステップＳ３００１に進み、ページ表示モードである場合には何も行わずに処理を終了する。
【０１１５】
現在位置表示処理部２４０９は、ステップ３００１において現在表示中のオブジェクトを取得し、ステップ３００２において現在のオブジェクトが含まれるページの全オブジェクトの情報を取得する。ここでのオブジェクト情報とは、図８と図１７にて説明したブロック情報と文章構造ツリーである。ステップ３００３にて、現在位置表示処理部２４０９は、取得したオブジェクト情報に基づいて、当該ページの全オブジェクトが含まれる様に縮小表示を行う。続いて、ステップ３００４にて、現在位置表示処理部２４０９は、取得したオブジェクト情報の文章構造ツリーより、各オブジェクトの表示順序を取得する。文書構造ツリーにおける順序の説明は図１７にて説明したため省略する。各オブジェクトの表示順序を取得後にステップＳ３００５に進む。
【０１１６】
ステップＳ３００５にて、現在位置表示処理部２４０９は、受信したジェスチャイベントの種類を判定し、その結果に依り、強調表示するオブジェクトを切り替える。受信したイベントが次へボタン２３０２又は前へボタン２３０３に対する所定時間以上のロングタップであった場合はステップＳ３００６に進む。ステップＳ３００６にて、現在位置表示処理部２４０９は、次に表示するオブジェクトと、現在表示中のオブジェクトと、それ以外のオブジェクトに関して、全体における分割位置や順序を識別可能な形式で表示する。
【０１１７】
図３２を用いて、次へボタン２３０２を所定時間以上ロングタップされた場合の表示例を説明する。ここでは、図１７の順序を示す文書構造ツリー図を参照しつつ説明する。図３２（Ａ）は文章を読み進めている途中に表示されるオブジェクトである。ここでは、図３２（Ａ）に表示されるオブジェクトが、図１７の文書構造ツリー上のオブジェクトＴ６に相当する。現在位置表示処理部２４０９は、次へボタン２３０２の所定時間以上のロングタップのイベントを受信した場合、Ｔ６を含むページＶ１（図１７）が全体表示される様に縮小表示する。つまり、ページＶ１にて描画要素を持つ全オブジェクトＴ１〜Ｔ１０に相当する、各矩形ブロック３２１１〜３２２０を図３２（Ｂ）の様に表示する。
【０１１８】
更に、次に表示するオブジェクトＴ７と、現在のオブジェクトＴ６と、その当該ページに含まれるその他の描画要素を持つオブジェクトＴ１〜Ｔ５とＴ８〜Ｔ１０とを、表示順序とそのフォント色に依って識別可能な形式で、図３２（Ｂ）の様に表示する。ここで、オブジェクトＴ７に相当する矩形ブロックは３２１７、オブジェクトＴ６に相当する矩形ブロックは３２１６、オブジェクトＴ１〜Ｔ５とＴ８〜Ｔ１０に相当する矩形ブロックは３２１１〜３２１５と３２１８〜３２２０である。フォント色の例は、次に表示するオブジェクトＴ７（３２１７）の表示順序が赤字、現在のオブジェクトＴ６（３２１６）の表示順序が青字、それ以外の各オブジェクト（３２１１〜３２１５と３２１８〜３２２０）の表示順序が黒字である。強調表示する順序としては、次オブジェクト、現在オブジェクト、その他のオブジェクトである。また、順序の表示位置は、各オブジェクトの中心とする。そして、図２８のステップＳ２８１５にて説明した様に、ロングタップが所定時間以上継続した場合は、ステップＳ２８１４にて図３２（Ｂ）を表示する。また、タップ終了した（ユーザの指がＵＩ画面から離れた）場合は、図３２（Ｃ）の様に次オブジェクトＴ７に相当する矩形ブロック３２３１を部分領域表示する。
【０１１９】
次に、前へボタン２３０３を所定時間以上ロングタップされた場合の表示例を図３３にて、図１７の順序を示す文書構造ツリー図を参照しつつ説明する。図３３（Ｃ）は文章を読み進めている途中に表示されるオブジェクトである。ここでは、図３３（Ｃ）に表示されるオブジェクトが、図１７の文書構造ツリー上のオブジェクトＴ５に相当する。現在位置表示処理部２４０９は、前へボタン２３０３の所定時間以上のロングタップのイベントを受信した場合、Ｔ５を含むページＶ１（図１７）の全体が表示される様に縮小表示する。つまり、ページＶ１にて描画要素を持つ全オブジェクトＴ１〜Ｔ１０に相当する、各矩形ブロック３３１１〜３３２０を図３３（Ｂ）の様に表示する。
【０１２０】
更に、次に表示するオブジェクトＴ４と、現在のオブジェクトＴ５と、その当該ページに含まれるその他の描画要素を持つオブジェクトＴ１〜Ｔ３とＴ６〜Ｔ１０とを、表示順序とそのフォント色に依って識別可能な形式で図３３（Ｂ）の様に表示する。オブジェクトＴ４に相当する矩形ブロックは３３１４、オブジェクトＴ５に相当する矩形ブロックは３３１５と、オブジェクトＴ１〜Ｔ３とＴ６〜Ｔ１０に相当する矩形ブロックは３３１１〜３３１３と３３１６〜３３２０である。フォント色の例は、次に表示するオブジェクトＴ４（３３１４）の表示順序が赤字、現在のオブジェクトＴ５（３３１５）の表示順序が青字、それ以外の各オブジェクト（３３１１〜３３１３と３３１６〜３３２０）の表示順序が黒字である。強調表示する順序としては、次オブジェクト、現在オブジェクト、その他のオブジェクトである。また、順序の表示位置は、各オブジェクトの中心とする。そして、図２９のステップＳ２８１５にて説明した様に、ロングタップが所定時間以上継続した場合はステップＳ２８１４にて図３３（Ｂ）を表示する。また、タップ終了した（ユーザの指がＵＩ画面から離れた）場合は図３３（Ａ）の様に、次オブジェクトＴ４に相当する矩形ブロック３３００を部分領域表示する。
【０１２１】
ユーザが次へボタン２３０２、前へボタン２３０３を押下しながら、オブジェクト分割された文章を読み進めている最中に、どの位置を読んでいるのか不明になったり、ページ全体がどの様に構造認識されているかを知りたい場合がある。このような場合、本実施例によれば、現在表示中のオブジェクトのページ全体における位置及び順序を容易に把握することが可能となる。ユーザは、現在位置及び全体の構造認識結果を見ることで、構造化された文章を余計な負荷を覚えることなく快適に読み進めることが可能となる。
【０１２２】
＜縮小時表示モード切替＞
ピンチイン操作等の縮小表示指示を受け付けた時に、縮小時表示モード切替部２４０６で行われる縮小時表示モード切替処理について、図３１のフローチャートと図３４を用いて説明する。まず、ステップＳ３１００において、縮小時表示モード切替部２４０６は、ユーザにより操作が行われたときの携帯情報端末１０７に設定されている表示モードを取得する。取得した表示モードが部分領域表示モードである場合にはステップＳ３１０１に進み、ページ表示モードである場合にはステップＳ３１０７に進む。
【０１２３】
ステップＳ３１０１において、縮小時表示モード切替部２４０６は、現在のページの表示倍率で表示したときの現在読み込まれているオブジェクトの幅が、タッチＵＩ１９０４の画面の幅より小さいか否かを判定する。オブジェクトの幅がタッチＵＩの画面幅よりも小さい場合には、ステップＳ３１０２に進み、そうでない場合には何も行わずに処理を終了する。ステップＳ３１０２において、縮小時表示モード切替部２４０６は、現在のページの表示倍率で表示したときの現在読み込まれているオブジェクトの高さが、タッチＵＩ１９０４の画面の高さより小さいか否かを判定する。このとき、前記オブジェクトの高さがタッチＵＩの画面高さよりも小さい場合には、ステップＳ３１０３に進み、そうでない場合には何も行わずに処理を終了する。
【０１２４】
ステップＳ３１０３において、該オブジェクトを含むページの表示倍率が更に縮小されようとしているのかどうかを判断する。すなわち、縮小時表示モード切替部２４０６が受信したイベントがピンチインイベントであるか否かを判定する。ここで、ページがさらに縮小されようとしていると判断した場合には、ステップＳ３１０４に進み、そうでない場合には何も行わずに処理を終了する。
【０１２５】
ステップＳ３１０４において、縮小時表示モード切替部２４０６は、現在位置表示モードに切り替えて、現在位置表示モードに遷移し、現在位置及び全体のオブジェク分割結果の表示を行う。この処理の詳細は図３０にて説明した通りである。補足として、このときの画面遷移を図３４にて説明する。図３４（Ａ）は、部分領域表示モードにて、あるオブジェクトを表示中とする。この画面において、ピンチイン操作が継続された場合に（Ｓ３１０３）、図３４（Ｂ）を表示する。更にピンチイン操作が継続された場合に、図３４（Ｃ）を表示する。図３４（Ｃ）は各オブジェクト（３４１１〜３４２０）と、現在のオブジェクト（３４１６）と、前後のオブジェクト（３４１５、３４１７）とを、識別可能な形式で表示する。図３４（Ｃ）の例では、現在のオブジェクト（３４１６）の表示順序を赤字、その前後のオブジェクト（３４１５、３４１７）の表示順序を青字、それ以外の各オブジェクト（３４１１〜３４１４、３４１８〜３４２０）の表示順序を黒字で、順に強調表示している。表示順序の表示位置は、各オブジェクトの中心とする。
【０１２６】
ステップＳ３１０５にて、縮小時表示モード切替部２４０６はピンチインイベントが終了（指がＵＩ画面から離れピンチイン操作が終了）したかどうかを判断し、ピンチイン操作が終了した場合には、ステップＳ３１０６に進む。ステップＳ３１０６において、縮小時表示モード切替部２４０６は部分領域表示モードに遷移し、縮小操作開始前の部分領域表示に戻る。
【０１２７】
ユーザがオブジェクト分割された単位に文章を読み進めている最中に、どの位置を読んでいるのか不明になったり、ページ全体がどの様に構造認識されているかを知りたい場合がある。このような場合、本実施例によれば、ピンチインなどの縮小操作指示において、現在表示中のオブジェクトのページ全体における位置及び順序を容易に把握することが可能となる。ユーザは、現在位置及び全体の構造認識結果を見ることで、構造化された文章を余計な負荷を覚えることなく快適に読み進めることが可能となる。
【０１２８】
なお、本実施例において、ＭＦＰ１００は携帯情報端末１０７に表示用のアプリケーション画像データを送付し、携帯情報端末１０７は受信したアプリケーション画像データを表示する構成としている。しかしながら、例えば、ＭＦＰ１００において、アプリケーション画像データを内部に保持する携帯情報端末１０７で実行可能なアプリケーションを生成し、携帯情報端末１０７に配信するような構成にしても良いことは言うまでもない。なお、そのときの携帯情報端末１０７で実行可能なアプリケーションは、本実施例で説明したソフトウェアモジュールであるジェスチャイベント処理部２００２を内部に持って、アプリケーション画像データを制御する。
【０１２９】
また、ＭＦＰ１００は、生成したアプリケーション画像データを文書管理サーバ１０６に送信すると共に、携帯情報端末１０７にそのアプリケーション画像データの場所を示すアドレスを送付するようにしても良い。この場合、携帯情報端末１０７はアプリケーション画像データの実体データは持たず、ＬＡＮ１０２を通して、文書管理サーバ１０６のデータが保持されるデータベース１０５から随時ページやオブジェクトの情報を取得・表示する。
【０１３０】
以上に説明した様に、本実施例によれば、文書表示手段において、文章構造を自動認識された文章をオブジェクト単位に読み進める最中に、ページ全体がどのように構造化されているのかを表示することが出来る。同時に、現在表示中のオブジェクトの全体に対する位置や読み順を、前後のオブジェクトと合わせて表示することが可能となる。スマートフォンなどの携帯情報端末にて文章を読み進める最中に、頻繁に行う操作である、次へ進む、前へ戻る、ピンチイン操作指示に応じた適切なタイミングで、これらを表示することが可能となる。ユーザは本実施例における文書表示手段を用いることで、文書構造を自動認識された文章を、より快適に読み進めることが可能となる。
【０１３１】
〔その他の実施例〕
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施例の機能を実現するプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体およびプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３２】
また、本発明には、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。さらに、コンピュータ可読の記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される。
【０１３３】
また、上述した実施形態では、コンピュータがプログラムを実行することにより、各処理部として機能するものとしたが、処理の一部または全部を専用の電子回路（ハードウェア）で構成するようにしても構わない。
【０１３４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３５】
１０７    携帯情報端末
１９００  メインボード
１９０１  LCD
１９０５  CPU
【図１】
2015052827.tif 000003
【図２】
2015052827.tif 000004
【図３】
2015052827.tif 000005
【図４】
2015052827.tif 000006
【図５】
2015052827.tif 000007
【図６】
2015052827.tif 000008
【図７】
2015052827.tif 000009
【図８】
2015052827.tif 000010
【図９】
2015052827.tif 000011
【図１０】
2015052827.tif 000012
【図１１】
2015052827.tif 000013
【図１２】
2015052827.tif 000014
【図１３】
2015052827.tif 000015
【図１４】
2015052827.tif 000016
【図１５】
2015052827.tif 000017
【図１６】
2015052827.tif 000018
【図１７】
2015052827.tif 000019
【図１８】
2015052827.tif 000020
【図１９】
2015052827.tif 000021
【図２０】
2015052827.tif 000022
【図２１】
2015052827.tif 000023
【図２２】
2015052827.tif 000024
【図２３】
2015052827.tif 000025
【図２４】
2015052827.tif 000026
【図２５】
2015052827.tif 000027
【図２６】
2015052827.tif 000028
【図２７】
2015052827.tif 000029
【図２８】
2015052827.tif 000030
【図２９】
2015052827.tif 000031
【図３０】
2015052827.tif 000032
【図３１】
2015052827.tif 000033
【図３２】
2015052827.tif 000034
【図３３】
2015052827.tif 000035
【図３４】
2015052827.tif 000036