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