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