(57)【要約】      （修正有）【課題】マルチタッチ操作におけるユーザの意図に反した誤動作を防ぐ表示制御装置を提供する。【解決手段】デジタルカメラの制御を司るＣＰＵは、タッチパネルに対して実行されたタッチ操作による複数のタッチ点の位置を同時に検出し、検出した複数のタッチ点のそれぞれのタッチアップを検出する。タッチパネルにタッチしているタッチ点が１点になったことが検出された後は、ＣＰＵは、タッチパネルにタッチしている１点のタッチ点がタッチアップするまでのこの１点のタッチ点の動きに応じたディスプレイに表示されているオブジェクトのスクロールを抑制する。【選択図】図４
2014048694.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルに対して実行されたタッチ操作による複数のタッチ点の位置の同時検出が可能なタッチ点検出手段と、
前記タッチパネル上の１点のタッチ点の動きに応じてディスプレイに表示されているオブジェクトをスクロールさせるスクロール手段と、
前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記タッチ点検出手段でタッチダウンを検出し、タッチオフとなるまでの間にタッチ点が２点以上になっていない場合よりも、前記１点のタッチ点がタッチアップするまでの前記１点のタッチ点の移動に伴う前記スクロール手段による前記オブジェクトのスクロールを抑制する制御手段と、を備えることを特徴とする表示制御装置。
【請求項２】
前記制御手段は、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記１点のタッチ点のタッチアップまでの移動量が所定値以上であるときには慣性スクロールを行い、前記移動量が所定値以上ではないときには慣性スクロールを行わないように前記スクロール手段を制御することを特徴とする請求項１記載の表示制御装置。
【請求項３】
前記制御手段は、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記１点のタッチ点のタッチ継続時間が所定時間よりも短いときには慣性スクロールを行わず、前記タッチ継続時間が前記所定時間よりも短くないときには慣性スクロールを行うように前記スクロール手段を制御することを特徴とする請求項１記載の表示制御装置。
【請求項４】
前記制御手段は、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記１点のタッチ点のタッチアップ直前の移動速度が所定の速度以上であるときには慣性スクロールを行い、前記移動速度が前記所定の速度以上ではないときには慣性スクロールを行わないように前記スクロール手段を制御することを特徴とする請求項１記載の表示制御装置。
【請求項５】
前記制御手段は、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記１点のタッチ点の移動量が所定値以上であるときにはスクロールを行い、前記移動量が所定値以上でないときにはスクロールを行わないように前記スクロール手段を制御することを特徴とする請求項１記載の表示制御装置。
【請求項６】
前記ディスプレイに複数の項目を同時に表示すると共に、前記複数の項目の中から選択された少なくとも１つの項目を識別可能に表示するインデックス表示手段を備え、
前記制御手段は、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後に前記１点のタッチ点の移動を前記タッチ点検出手段が検出した場合、前記１点のタッチ点の移動量が所定値以上のときには、前記移動に従うスクロールを行わず、且つ、前記移動によるタッチ点の移動先に表示されている項目を他の項目に対して識別可能に表示し、前記移動量が所定値以上ではないときには、前記移動に従うスクロールを行わずに、且つ、識別可能に表示されている項目も変わらないように、前記スクロール手段と前記インデックス表示手段を制御することを特徴とする請求項１乃至５のいずれか１項に記載の表示制御装置。
【請求項７】
前記複数の項目は、複数の画像であることを特徴とする請求項６記載の表示制御装置。
【請求項８】
ディスプレイに表示されたオブジェクトをタッチパネルに対するタッチ操作により操作する表示制御装置の制御方法であって、
前記タッチパネルに対して実行されたタッチ操作による複数のタッチ点の位置を同時に検出するタッチ点検出ステップと、
前記タッチ点検出ステップで検出した複数のタッチ点のそれぞれのタッチアップを検出するタッチアップ検出ステップと、
前記タッチアップ検出ステップにより前記タッチパネルにタッチしているタッチ点が１点になったことが検出された後は、前記タッチ点検出ステップでタッチダウンを検出し、タッチオフとなるまでの間にタッチ点が２点以上になっていない場合よりも、前記タッチパネルにタッチしている１点のタッチ点がタッチアップするまでの前記１点のタッチ点の動きに応じた、前記ディスプレイに表示されているオブジェクトのスクロールを抑制させる制御ステップと、を有することを特徴とする表示制御装置の制御方法。
【請求項９】
ディスプレイに表示されたオブジェクトをタッチパネルに対するタッチ操作により操作する表示制御装置の制御方法をコンピュータに実行させるプログラムであって、前記制御方法は、
前記タッチパネルに対して実行されたタッチ操作による複数のタッチ点の位置を同時に検出するタッチ点検出ステップと、
前記タッチ点検出ステップで検出した複数のタッチ点のそれぞれのタッチアップを検出するタッチアップ検出ステップと、
前記タッチアップ検出ステップにより前記タッチパネルにタッチしているタッチ点が１点になったことが検出された後は、前記タッチ点検出ステップでタッチダウンを検出し、タッチオフとなるまでの間にタッチ点が２点以上になっていない場合よりも、前記タッチパネルにタッチしている１点のタッチ点がタッチアップするまでの前記１点のタッチ点の動きに応じた、前記ディスプレイに表示されているオブジェクトのスクロールを抑制させる制御ステップと、を有することを特徴とするプログラム。
【請求項１０】
請求項９記載のプログラムを格納したことを特徴とするコンピュータで読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネル機能を有する表示制御装置とその表示制御方法、並びに、表示制御方法を実行するためのプログラム及び記憶媒体に関する。
【背景技術】
【０００２】
近年、直感的な操作を可能としたデジタル機器として、タッチパネルを備え、タッチパネル上に表示したオブジェクトを指（指先）で操作することにより表示内容を変化させていくものが登場している。例えば、タッチパネルをタッチし、タッチした状態を維持しながら指を動かして画面を指の移動方向にスクロール移動させ、また、素早くなぞって離すことで指の移動した方向に画面を慣性スクロールさせる方法が提案されている（特許文献１参照）。なお、慣性スクロールとは、タッチした指を離した後も減速しながら画面（表示物）のスクロールを行い、最終的にスクロールを停める制御をいう。
【０００３】
また、タッチパネル上に表示したオブジェクトを、タッチパネル上の２本の指の距離を広げたり狭めたりするピンチ操作により、オブジェクトを拡大縮小する方法が提案されている（特許文献２参照）。更に、タッチパネル上でタッチした２点の中点を指示位置とし、指示位置に最も近い位置に表示されている画像データを、ピンチ操作後に指示位置又はその近傍に配置する技術が提案されている（特許文献３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−１７４１２５号公報
【特許文献２】特開２０１２−５３６２３号公報
【特許文献３】特開２００８−２９９４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ピンチ操作等の２本の指を使った操作後に２本の指をタッチアップさせるタイミングがずれてしまうと、ユーザの意図に反してスクロールが発生してしまう場合がある。特に、慣性スクロールの場合には、タッチ点の移動距離よりもスクロールの移動距離が長くなることがあるため、表示したい情報が所望の表示位置から大きくずれて表示されてしまうという問題がある。
【０００６】
本発明は、マルチタッチ操作におけるユーザの意図に反した誤動作を防ぐ表示制御技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る表示制御装置は、タッチパネルに対して実行されたタッチ操作による複数のタッチ点の位置の同時検出が可能なタッチ点検出手段と、前記タッチパネル上の１点のタッチ点の動きに応じてディスプレイに表示されているオブジェクトをスクロールさせるスクロール手段と、前記タッチ点検出手段が複数のタッチ点のタッチダウンを検出してから前記タッチパネルにタッチしているタッチ点が１点になった後は、前記タッチ点検出手段でタッチダウンを検出し、タッチオフとなるまでの間にタッチ点が２点以上になっていない場合よりも、前記１点のタッチ点がタッチアップするまでの前記１点のタッチ点の移動に伴う前記スクロール手段による前記オブジェクトのスクロールを抑制する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、マルチタッチ操作におけるユーザの意図に反した誤動作を防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るデジタルカメラの外観を背面側から見て示す斜視図、及び、デジタルカメラのハードウェア構成を示すブロック図である。
【図２】第１実施形態に係る、ディスプレイに表示された拡大画像に対してドラッグ操作によるスクロールとフリック操作による慣性スクロールが行われたときの表示画像の変化を示す図である。
【図３】第１実施形態に係る、ディスプレイに表示された画像に対してピンチ操作を行い、拡大率を変更したときの表示画像の変化を示す図である。
【図４】第１実施形態に係る、ディスプレイに拡大画像が表示されている状態でタッチ入力が行われたときの画像表示制御のフローチャートである。
【図５】図４のステップＳ４０４，Ｓ４１０で実行されるドラッグスクロール処理のフローチャートである。
【図６】図４のステップＳ４０８で実行されるマルチタッチ処理のフローチャートである。
【図７】第２実施形態に係る、ディスプレイにインデックス表示がなされているときにドラッグ操作によるスクロール及びフリック操作による慣性スクロールが行われたときの表示の変化を示す図である。
【図８】第２実施形態に係る、ディスプレイにインデックス表示がなされているときにピンチ操作による表示枚数の変更とフォーカス移動が行われたときの表示の変化を示す図である。
【図９】第２実施形態に係る、ディスプレイにインデックス表示がなされているときにタッチ入力が行われたときの画像表示制御のフローチャートである。
【図１０】図９のステップＳ９０４で実行されるドラッグスクロール処理のフローチャートである。
【図１１】図９のステップＳ９０８で実行されるマルチタッチ制御処理のフローチャートである。
【図１２】図９のステップＳ９１１で実行されるマルチタッチ制御処理のフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。ここでは、本発明に係る表示制御装置としてデジタルカメラを取り上げることとするが、本発明はこれに限定されるものではない。
【００１１】
＜デジタルカメラの概略構造＞
図１（ａ）は、本発明の実施形態に係るデジタルカメラ１００の外観を背面側から見て示す斜視図であり、図１（ｂ）はデジタルカメラ１００のハードウェア構成を示すブロック図である。図１（ａ）に示すように、デジタルカメラ１００は、ディスプレイ１０１と、電源スイッチ１０２と、シャッタボタン１０３と、モードダイアル１０４と、十字キー１０５と、コントローラホイール１０６とを備える。
【００１２】
ディスプレイ１０１は、撮影画像や操作メニュー、デジタルカメラ１００の設定情報等の各種の情報を表示する表示手段である。ディスプレイ１０１にはタッチパネル１５０が重畳されており、タッチパネル１５０に対するタッチ操作による１点の位置の検出のみならず、複数のタッチ点の位置の同時検出が可能となっている。電源スイッチ１０２は、デジタルカメラ１００のカメラシステムの電源のオン／オフを切り替えるための操作部材である。
【００１３】
シャッタボタン１０３は、被写体に対する合焦処理や撮影処理を指示する操作部材である。モードダイアル１０４は、撮影モード（オートモード、絞り優先モード、シャッタ優先モード、風景モード、夜景モード等）を切り替えるための操作部材である。十字キー１０５は、ユーザからの各種操作を受け付ける４方向ボタンであり、上方向、下方向、左方向、右方向の４方向への操作が可能な操作部材である。ここでは、十字キー１０５を単一部材としているが、４方向が指示できるものであれば、十字に配置された４つの独立したボタンであってもよい。
【００１４】
コントローラホイール１０６は、回転操作可能であり、十字キー１０５と共に選択項目の指示等に使用される操作部材である。コントローラホイール１０６が回転操作されると、操作量（回転角度や回転した回数）に応じて電気的なパルス信号が発生し、このパルス信号に基づいて、ＣＰＵ１２０（図１（ｂ）参照）がデジタルカメラ１００の各部（駆動部や処理部）の動作を制御する。なお、コントローラホイール１０６は、回転操作が検出できる操作部材であればどのようなものでもよく、例えば、ユーザの回転操作に応じてコントローラホイール１０６自体が回転してパルス信号を発生するダイヤル操作部材であってもよい。また、コントローラホイール１０６は、タッチセンサを備える操作部材であって、操作部材自体は回転せず、コントローラホイール１０６上でのユーザの指（指先）の回転動作などを検出するもの（タッチホイール）であってもよい。
【００１５】
デジタルカメラ１００では、コネクタ１１１を介して、接続ケーブル１１２とデジタルカメラ１００の本体に設けられた通信Ｉ／Ｆ１３６（図１（ｂ）参照）とを接続することができるようになっている。また、デジタルカメラ１００は、メモリカード等の記憶媒体１１６を装着する記憶媒体スロット（不図示）を備えており、記憶媒体スロットは蓋１１５により開閉自在となっている。なお、記憶媒体スロットに装着された記憶媒体１１６とＣＰＵ１２０との通信は、デジタルカメラ１００の本体に設けられた記憶媒体Ｉ／Ｆ１３５（図１（ｂ）参照）を介して可能になる。
【００１６】
図１（ｂ）に示すように、デジタルカメラ１００は、内部バス１２５と、内部バス１２５に接続されたＣＰＵ１２０と、ＲＯＭ１２１と、ＲＡＭ１２２とを備える。また、内部バス１２５には、撮像部１３１と、画像処理部１３２と、表示制御部１３３と、入力部１３４と、記憶媒体Ｉ／Ｆ１３５と、通信Ｉ／Ｆ１３６とが接続されている。内部バス１２５に接続される各部は、内部バス１２５を介して互いにデータのやりとりを行うことができる。
【００１７】
ＲＯＭ１２１には、デジタルカメラ１００の全体的動作や各駆動部の動作制御を行うためのプログラム及び画像処理等を行うためのプログラム等の各種のプログラムや、プログラムの実行に必要なデータ等が格納されている。ＲＡＭ１２２は、撮影した画像データ等を保持し、また、ＣＰＵ１２０のワークエリアとして用いられる。ＲＯＭ１２１とＲＡＭの機能の一部をハードディスク（ＨＤ）が担う構成であってもよい。ＣＰＵ１２０は、ＲＯＭ１２１に格納されたプログラムをＲＡＭ１２２のワークエリアに展開して実行する。これにより、デジタルカメラ１００の各部の動作が制御される。
【００１８】
撮像部１３１は、撮影レンズや、ＣＣＤ或いはＣＭＯＳ等の撮像素子等を有し、被写体からの反射光を光学像として結像させた後、光学像を電気信号に変換する。画像処理部１３２は、撮像部１３１により撮影された動画や静止画等の画像データに対して、画素補間、現像処理、色処理、縮小処理、符号化処理、圧縮処理等を施し、画像ファイルとして記憶媒体１１６に記憶する。また、画像処理部１３２は、記憶媒体１１６等から読み込んだ画像ファイル（画像データ）に対して、画像をディスプレイ１０１に表示するための各種処理（伸張処理、復号化処理、色処理、リサイズ等）を行う。なお、撮像部１３１で撮影された画像信号（アナログ信号）をデジタル信号に変換してＲＡＭ１２２に蓄積し、蓄積されたデジタル信号を再びアナログ変換してディスプレイ１０１に、逐次、転送して表示することにより、電子ビューファインダ機能（スルー画像表示）が実現される。
【００１９】
入力部１３４は、ユーザによる操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１２０に供給する。図１（ａ）に示したタッチパネル１５０、電源スイッチ１０２、シャッタボタン１０３、モードダイアル１０４、十字キー１０５及びコントローラホイール１０６は、入力部１３４に含まれる。ＣＰＵ１２０は、入力部１３４から供給される制御信号に基づいて、所定のプログラムに従ってデジタルカメラ１００の各部の動作を制御する。これにより、デジタルカメラ１００にユーザの操作に応じた動作を行わせることができる。
【００２０】
タッチパネル１５０は、ディスプレイ１０１と一体的に構成することができる。例えば、光の透過率がディスプレイ１０１の表示を妨げないように構成されたタッチパネル１５０をディスプレイ１０１の表示面の上層に取り付ける。そして、タッチパネル１５０における入力座標とディスプレイ１０１上の表示座標とを対応付ける。これにより、あたかも、ユーザがディスプレイ１０１上に表示されたオブジェクトを直接的に操作可能であるかのようなＧＵＩを構成することができる。
【００２１】
表示制御部１３３には、ＣＰＵ１２０がプログラムに従って生成した画像表示制御信号が供給され、表示制御部１３３は、受信した画像表示制御信号に基づいて表示信号を生成し、ディスプレイ１０１に対して出力する。これにより、ディスプレイ１０１に画像が表示される。また、表示制御部１３３は、ＣＰＵ１２０が生成する表示制御信号に基づき、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を構成するＧＵＩ画面をディスプレイ１０１に表示させる。
【００２２】
記憶媒体インタフェース（Ｉ／Ｆ）１３５は、メモリカード等の記憶媒体１１６が記憶媒体スロットに装着された状態で、ＣＰＵ１２０の制御に基づき、記憶媒体１１６からの画像データ等の読み出しや記憶媒体１１６に対する画像データ等の書き込みを行う。通信インタフェース（Ｉ／Ｆ）１３６は、ＣＰＵ１２０の制御に基づき、通信Ｉ／Ｆ１３６を介して接続された外部機器や、ＬＡＮ或いはインターネット等のネットワーク１４０に対する通信を行う。
【００２３】
＜タッチパネル１５０に対する操作＞
タッチパネル１５０に対しては、概ね、以下の（１）〜（５）の操作が可能となっている。つまり、ＣＰＵ１２０は、タッチパネル１５０に対する以下の（１）〜（５）の操作や状態を検出することができるようになっている。
【００２４】
（１）タッチパネル１５０に指（指先）やペン（ペン先）で触れたこと（以下「タッチダウン」という）
（２）タッチパネル１５０に指やペンが触れている状態であること（以下「タッチオン」という）
（３）タッチパネル１５０上を指やペンが触れたまま移動していること（以下「ムーブ」という）
（４）タッチパネル１５０に触れていた指やペンをタッチパネル１５０から離したこと（以下「タッチアップ」という）
（５）タッチパネル１５０に何も触れていない状態であること（以下「タッチオフ」という）
これらの操作によりタッチパネル１５０上で指或いはペンが触れた位置若しくは離れた位置又は触れている位置の座標は、内部バス１２５を通じてＣＰＵ１２０に通知される。ＣＰＵ１２０は、通知された情報に基づいてタッチパネル１５０上でどのような操作が行なわれたかを判定する。なお、ムーブ操作については、タッチパネル１５０上で移動する指或いはペンが触れている位置の座標の変化に基づいて、垂直成分（図１（ａ）の画面縦方向）と水平成分（図１（ａ）の画面横方向）を判定する。これにより、タッチパネル１５０上で移動する指或いはペンの移動方向を求めることができる。
【００２５】
タッチパネル１５０に対するタッチダウン操作から一定のムーブ操作を経てタッチアップ操作を行うという一連の操作を「ストローク」といい、素早くストロークを描く操作を「フリック」ということとする。つまり、フリックは、タッチパネル１５０に指を触れたままある程度の距離だけ素早く動かしてから離す操作であり、換言すれば、タッチパネル１５０の表面を指ではじくように素早くなぞる操作である。
【００２６】
本実施形態では、予め定められた所定の距離以上の距離を予め定められた所定の速度以上の速度でムーブしたことが検出され、そのままタッチアップが検出されたときに、フリック操作が行なわれたと判定することとする。また、所定の距離以上の距離を、所定速度未満の速度でムーブしたことが検出された場合には、一般的に「ドラッグ」と呼ばれる操作が行われたものと判定することとする。
【００２７】
また、タッチパネル１５０に対して２点（２カ所）に同時にタッチしている状態で、２点間の距離を狭め、その後、タッチアップを行う操作を「ピンチイン」ということとする。つまり、ピンチインは、タッチパネル１５０上の２点に指を触れたまま指同士を近づけた後に、タッチパネル１５０から指を離す操作である。換言すれば、ピンチインは、２本の指でタッチパネル１５０下に表示されている画像等のオブジェクトをつまむようにタッチパネル１５０をなぞる操作である。ピンチインとは逆に、２点を同時に指又はペンでタッチしている状態で、２点間の距離を広げ、その後、タッチアップを行う操作を「ピンチアウト」ということとする。
【００２８】
なお、タッチパネル１５０は、抵抗膜方式や静電容量方式、表面弾性波方式、赤外線方式、画像認識方式、光センサ方式等の様々な方式のタッチパネルのうち、複数のタッチ点を同時に検出することが可能であれば、いずれの方式のものを用いてもよい。
【００２９】
＜第１実施形態に係る動作内容＞
第１実施形態に係る動作内容として、ディスプレイ１０１に表示された画像を拡大表示する例について説明する。ここでは、先ず、図２及び図３を参照して、画像が変化する様子について説明する。
【００３０】
［表示画像例］
図２は、ディスプレイ１０１に表示された拡大画像に対してドラッグ操作によるスクロールと、フリック操作による慣性スクロールが行われたときの表示画像の変化を示す図である。なお、「スクロール」とは、ディスプレイ１０１上で画像全体が移動することを指し、「慣性スクロール」とは、ディスプレイ１０１上でスクロールしている画像全体が減速しながら最終的に停止することを指す。
【００３１】
図２（ａ）には、ディスプレイ１０１に拡大画像が表示されている状態、即ち、画像全体のうちの一部の領域が拡大して表示されている状態において、タッチパネル１５０の１点にタッチダウンが行われた状態が示されている。なお、タッチ点は、指先部分（概ね、爪の位置）であり、後述する図３、図７及び図８でも、タッチ点は指先部分であるとする。図２（ｂ）には、図２（ａ）の状態から右上方向にドラッグが行われ、拡大画像が左下から右上にスクロールした状態が示されている。このスクロールによって、ディスプレイ１０１に表示されている拡大画像の範囲（領域）が変化していることがわかる。
【００３２】
図２（ｃ）には、図２（ｂ）の状態でタッチしていたタッチ点でタッチアップが行われ、拡大画像が慣性スクロールしている状態が示されている。ここで、図２（ｃ）では、右上方向のフリックを検出したために、タッチアップは行われているが、左下から右上に向かって表示画像が慣性スクロールしている。図２（ｄ）には、図２（ｃ）の状態から慣性スクロールが終了して表示画像が停止した状態が示されており、タッチアップ前の図２（ｂ）と比較して、ディスプレイ１０１に表示されている拡大画像の範囲（領域）が変化していることがわかる。
【００３３】
図３は、ディスプレイ１０１に表示された画像に対してピンチ操作を行い、拡大率を変更したときの表示画像の変化を示す図である。図３（ａ）には、画像の全体がディスプレイ１０１に表示されているときに、タッチパネル１５０に対して２点でタッチダウンが行われた状態が示されている。図３（ｂ）には、図３（ａ）の状態からピンチアウトが行われたことにより、画像が拡大された状態が示されている。このピンチアウトにより、ディスプレイ１０１には、画像の全体ではなく一部の領域が拡大されて表示されている。
【００３４】
図３（ｃ）には、図３（ｂ）の状態から１点のみがタッチアップした状態が示されている。図３（ｄ）には、図３（ｃ）の状態から残った１点がドラッグ操作された状態が示されている。このドラッグ操作により表示画像はスクロールしているため、図３（ｄ）には、図３（ｃ）とは異なる領域が表示されている。図３（ｅ）には、図３（ｄ）の状態から残った１点でタッチアップが行われ、表示画像が静止した状態が示されている。
【００３５】
第１実施形態では、最後にタッチアップしたタッチ点（図３（ｄ）のタッチ点）の移動量（タッチ点が２点から１点になって残ったタッチ点の、２点から１点になったときの位置からタッチアップした位置までの距離）が短い場合には、慣性スクロールを行わない。これにより、ユーザの意図に反した慣性スクロールを抑制し、表示画像が大きく変わらないようにしている。
【００３６】
なお、図３では、ピンチアウトにより画像を拡大した例を取り上げたが、これと同様に、ピンチインにより画像を縮小する場合にも慣性スクロールの抑制が可能である。また、移動量を基準とする方法に代えて、タッチ点が２点から１点になったときの時刻から残った１点がタッチアップする時刻までの時間（タッチ継続時間）が予め定められた所定時間よりも短いときに、慣性スクロールを抑制するようにしてもよい。また、第１実施形態では、慣性スクロールのみを抑制しているが、ドラッグによるスクロールを抑制するようにしてもよい。その場合、タッチ点が２点から１点になって残ったタッチ点の移動量が予め定められた所定値よりも小さいときにはスクロールを行わないようにし、移動量が所定値以上となった場合にスクロールの抑制を解除するようにすればよい。
【００３７】
［表示制御処理フロー］
次に、図２及び図３に示した動作を実現する処理の手順について、図４〜図７のフローチャートを参照して説明する。図４〜図７のフローチャートに示す各処理は、ＣＰＵ１２０がＲＯＭ１２１に記録されたプログラムをＲＡＭ１２２のワークエリアに展開して実行することにより、デジタルカメラ１００の各部を制御することで実現される。
【００３８】
図４は、ディスプレイ１０１に拡大画像が表示されている状態でタッチパネル１５０に対してタッチ入力が行われたときの画像表示制御のフローチャートである。先ず、ステップＳ４００では、ＣＰＵ１２０は、記憶媒体１１６から画像データを読み出し、ディスプレイ１０１に画像を表示する。ここでは、１点のタッチでのムーブがドラッグと判定されて表示画像をスクロールさせる例について説明するため、便宜的にステップＳ４００において拡大画像がディスプレイ１０１に表示されたものとする。よって、ステップＳ４００により、図２（ａ）のような画像表示が行われたとする。
【００３９】
続くステップＳ４０１では、ＣＰＵ１２０は、タッチパネル１５０に対してなされたタッチ操作を検出し、タッチ点の座標を取得する（タッチ点検出ステップ）。このとき、２点タッチがなされている場合は、２点のタッチ点について座標を取得する。そして、ステップＳ４０２では、ＣＰＵ１２０はタッチ点の数がゼロ（０）、即ち、タッチオフの状態であるか否かを判定する。ＣＰＵ１２０は、タッチオフの状態である場合（Ｓ４０２でＹＥＳ）、処理をステップＳ４１５へ進め、タッチオフの状態ではない場合（Ｓ４０２でＮＯ）、処理をステップＳ４０３へ進める。
【００４０】
ステップＳ４０３では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ４０３でＹＥＳ）、処理をステップＳ４０４へ進め、タッチ点の数が１点でない場合（Ｓ４０３でＮＯ）、処理をステップＳ４０８へ進める。
【００４１】
ステップＳ４０４では、ＣＰＵ１２０は、ドラッグスクロール処理（ドラッグにより表示画像をスクロールする処理）を実行し、その後、処理をステップＳ４０５へ進める。なお、ステップＳ４０４の処理の詳細については、図５を参照して後述する。
【００４２】
ステップＳ４０５では、ＣＰＵ１２０は、タッチ点の数がゼロ（０）であるか否か、つまり、タッチアップが行われたか否かを判定する（タッチアップ検出ステップ）。ステップＳ４０５の判定は、ステップＳ４０４において取得しているタッチ点について行われる。ＣＰＵ１２０は、タッチアップが行われていない場合（Ｓ４０５でＮＯ）、処理をステップＳ４０８へ進め、タッチアップが行われた場合（Ｓ４０５でＹＥＳ）、処理をステップＳ４０６へ進める。
【００４３】
ステップＳ４０６では、ＣＰＵ１２０は、ステップＳ４０５でタッチアップしたと判定されたタッチ点のタッチアップ直前の移動速度（直前移動速度）が予め定められた所定の速度Ｓより大きいか否かを判定する。ＣＰＵ１２０は、直前移動速度が速度Ｓよりも大きい場合（Ｓ４０６でＹＥＳ）、処理をステップＳ４０７へ進め、直前移動速度が速度Ｓ以下の場合（Ｓ４０６でＮＯ）、処理をステップＳ４１５へ進める。
【００４４】
ステップＳ４０７では、ＣＰＵ１２０は、表示画像の慣性スクロール処理を行い、その後、処理をステップＳ４１５へ進める。ここで、慣性スクロールは、物理法則に従って行うため、以下の〔式１〕及び〔式２〕で移動位置を表すことができる。
【００４５】
Ｘ＝ｖｘ×ｔ＋１／（２×ａ×ｔ２）  ・・・  〔式１〕
Ｙ＝ｖｙ×ｔ＋１／（２×ａ×ｔ２）  ・・・  〔式２〕
但し、Ｘ：Ｘ軸方向の表示位置
Ｙ：Ｙ軸方向の表示位置
ｖｘ：Ｘ軸方向のフリック速度
ｖｘ：Ｙ軸方向のフリック速度
ａ：加速度（所定値（減速させるため負の値））
ｔ：タッチアップ後の経過時間
ステップＳ４０３おいてタッチ点が１点でないと判定されてステップＳ４０８へ遷移するときのタッチ点の数は２点である。また、ステップＳ４０４の処理においてタッチ点が１点の場合にはステップＳ４０４の処理を終了しないようになっているため、ステップＳ４０５からステップＳ４０８へ遷移するときのタッチ点の数は２点となる。よって、ステップＳ４０８では、ＣＰＵ１２０は、マルチタッチ処理を行う。なお、ステップＳ４０８の処理の詳細については、図６を参照して後述する。
【００４６】
ステップＳ４０８の終了後のステップＳ４０９では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ステップＳ４０９の判定は、ステップＳ４０８において取得しているタッチ点について行われる。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ４０９でＹＥＳ）、処理をステップＳ４１０へ進め、ステップＳ４１０においてドラッグスクロール処理を行い、その後、処理をステップＳ４１１へ進める。一方、ステップＳ４０８の処理においてタッチ点の数が２点の場合にはステップＳ４０８の処理を終了しないようになっているため、ステップＳ４０９でタッチ点の数が１点ではない場合のタッチ点の数はゼロ（０）であり、タッチオフの状態となる。そのため、ＣＰＵ１２０は、ステップＳ４０９でタッチ点の数が１点でない場合（Ｓ４０９でＮＯ）、処理をステップＳ４１５へ進める。
【００４７】
ステップＳ４１１では、ＣＰＵ１２０は、タッチ点の数がゼロ（０）であるか否か（つまり、タッチ点がタッチアップしたか）を判定する。ステップＳ４１１の判定は、ステップＳ４１０において取得しているタッチ点について行われる。ＣＰＵ１２０は、タッチ点の数がゼロである場合（Ｓ４１１でＹＥＳ）、処理をステップＳ４１２へ進め、タッチ点の数がゼロでない場合（Ｓ４１１でＮＯ）、処理をステップＳ４０８へ戻す。なお、ステップＳ４１０の処理においてタッチ点の数が１点でない場合にはステップＳ４１０の処理は終了しないようになっているため、ステップＳ４１１でタッチ点の数がゼロでない判定された場合のタッチ点の数は２点となる。
【００４８】
ステップＳ４１２では、ＣＰＵ１２０は、タッチ点が２点から１点になって残ったタッチ点の、２点から１点になったときの位置からタッチアップした位置までの移動量（移動距離）が予め定められた所定の距離Ｄ１以上であるか否かを判定する。ＣＰＵ１２０は、移動量が距離Ｄ１以上の場合（Ｓ４１２でＹＥＳ）、処理をステップＳ４１３へ進め、移動量が距離Ｄ１未満の場合（Ｓ４１２でＮＯ）、処理をステップＳ４１５へ進める。
【００４９】
ステップＳ４１３では、ＣＰＵ１２０は、タッチ点のタッチアップ直前の移動速度が予め定められた所定の速度Ｓより大きいか否かを判定する。ＣＰＵ１２０は、直前移動速度が速度Ｓよりも大きい場合（Ｓ４１３でＹＥＳ）、処理をステップＳ４１４へ進め、直前移動速度が速度Ｓ以下の場合（Ｓ４１３でＮＯ）、処理をステップＳ４１５へ進める。ステップＳ４１４では、ＣＰＵ１２０は、表示画像の慣性スクロール処理を行い、その後、処理をステップＳ４１５へ進める。
【００５０】
ステップＳ４１５では、ＣＰＵ１２０は、画像表示を終了させる操作（例えば、撮影モードへの移行、メニュー画面の表示指示等の他の動作モードへの移行操作、電源をＯＦＦする操作等）があったか否かを判定する。ＣＰＵ１２０は、終了操作がない場合（Ｓ４１５でＮＯ）、処理をステップＳ４０１に戻し、終了操作があった場合（Ｓ４１５でＹＥＳ）、処理を終了させる。
【００５１】
［ドラッグスクロール処理の詳細］
図５は、ステップＳ４０４，Ｓ４１０で実行されるドラッグスクロール処理のフローチャートである。先ず、ステップＳ５０１では、ＣＰＵ１２０は、スクロール制御の変数ｘ１，ｙ１をタッチ点のＸ座標，Ｙ座標としてＲＡＭ１２２に記憶する。続くステップＳ５０２では、ＣＰＵ１２０は、スクロール制御の変数ｘ２，ｙ２（現在のタッチ点を表す）をタッチ点のＸ座標，Ｙ座標としてＲＡＭ１２２に記憶する。そして、ステップＳ５０３では、ＣＰＵ１２０は、スクロール制御の変数ｓｄｘ，ｓｄｙ（Ｘ軸、Ｙ軸方向のタッチ点の差分）をそれぞれ、変数ｘ２と変数ｘ１の差分，変数ｙ２と変数ｙ１の差分（ｓｄｘ＝ｘ２−ｘ１，ｓｄｙ＝ｙ２−ｙ１）とする。
【００５２】
次に、ステップＳ５０４では、ＣＰＵ１２０は、２点（ｘ１，ｙ１）と（ｘ２，ｙ２）の距離が予め定められた所定の距離より大きいか否かを判定する。ＣＰＵ１２０は、２点間の距離が所定の距離より大きい場合（Ｓ５０４でＹＥＳ）、処理をステップＳ５０５へ進め、２点間の距離が所定の距離以下の場合（Ｓ５０４でＮＯ）、処理をステップＳ５０７へ進める。ステップＳ５０５では、ＣＰＵ１２０は、表示位置Ｘ，Ｙからそれぞれ変数ｓｄｘ，ｓｄｙを差し引き、スクロール位置の表示位置を更新する。すなわち、表示画像をＸ軸方向とＹ軸方向にスクロールする。その後、ステップＳ５０６では、ＣＰＵ１２０は、変数ｘ１を変数ｘ２に、変数ｙ１を変数ｙ２にそれぞれ変更して、処理をステップＳ５０７へ進める。
【００５３】
ステップＳ５０７では、ＣＰＵ１２０は、再度、タッチ点を取得する。続いて、ステップＳ５０８では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ５０８でＹＥＳ）、処理をステップＳ５０２へ戻し、タッチ点の数が１点ではない場合（Ｓ５０８でＮＯ）、処理を終了させる。
【００５４】
［マルチタッチ処理の詳細］
図６は、ステップＳ４０８で実行されるマルチタッチ処理のフローチャートである。先ず、ステップＳ６０１では、ＣＰＵ１２０は、２点目がタッチダウンされたか否かを判定する。ＣＰＵ１２０は、２点目がタッチダウンされた場合（Ｓ６０１でＹＥＳ）、処理をステップＳ６０２へ進め、２点目がタッチダウンされていない場合（Ｓ６０１でＮＯ）、処理をステップＳ６０３へ進める。
【００５５】
ステップＳ６０２では、ＣＰＵ１２０は、２点のタッチ点間の距離を計測してマルチタッチ制御用の変数ｍｄ１に割り当ててＲＡＭ１２２に記憶し、処理をステップＳ６０３へ進める。ステップＳ６０３では、ＣＰＵ１２０は、マルチタッチ制御用の変数ｍｄ２（現在の２点間の距離を表す）に現在の２点のタッチ点間の距離を設定してＲＡＭ１２２に記憶し、処理をステップＳ６０４へ進める。
【００５６】
ステップＳ６０４では、ＣＰＵ１２０は、変数ｍｄ２から変数ｍｄ１を差し引いた値（差分Ａ１＝ｍｄ２−ｍｄ１）が予め定められた所定値以上か否かを判定する。つまり、ステップＳ６０４において、ピンチアウト操作が行われているか否かが判定される。ＣＰＵ１２０は、差分Ａ１が所定値以上の場合（Ｓ６０４でＹＥＳ）、ピンチアウト操作が行われていると判定して処理をステップＳ６０５へ進め、一方、差分Ａ１が所定値未満の場合（Ｓ６０４でＮＯ）、処理をステップＳ６０６へ進める。
【００５７】
ステップＳ６０５では、ＣＰＵ１２０は、画像の拡大率を上げて画像の表示を更新する（拡大表示）。続くステップＳ６０６では、ＣＰＵ１２０は、変数ｍｄ１から変数ｍｄ２を差し引いた値（差分Ａ２＝ｍｄ１−ｍｄ２）が予め定められた所定値以上か否かを判定する。つまり、ステップＳ６０６において、ピンチイン操作が行われているか否かが判定される。差分Ａ２が所定値以上である場合（Ｓ６０６でＹＥＳ）、ピンチイン操作が行われていると判定して処理をステップＳ６０７へ進め、一方、差分Ａ２が所定値未満である場合（Ｓ６０６でＮＯ）、処理をステップＳ６０９へ進める。
【００５８】
ステップＳ６０７では、ＣＰＵ１２０は、画像の拡大率を下げて画像の表示を更新し（縮小表示）、処理をステップＳ６０８に進める。ステップＳ６０８では、ＣＰＵ１２０は、変数ｍｄ１を変数ｍｄ２に変更する。続くステップＳ６０９では、ＣＰＵ１２０は、再度、タッチ点を取得する。そして、ステップＳ６１０では、ＣＰＵ１２０は、タッチ点の数が２点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が２点である場合（Ｓ６１０でＹＥＳ）、タッチアップがなされていないと判定して、処理をステップＳ６０３へ戻し、タッチ点の数が２点でない場合（Ｓ６１０でＮＯ）、処理を終了させる。
【００５９】
以上に説明した図４〜図６のフローチャートに従う処理によって、図２及び図３を参照して説明したように表示画像を移動させる動作を実現することができる。
【００６０】
＜第２実施形態に係る動作の内容＞
第１実施形態では１枚の画像の拡大／縮小及びスクロール操作に伴う表示制御を取り上げたが、第２実施形態では所定の複数の項目をインデックス表示（マルチ表示）したときのタッチ操作に伴う表示制御を取り上げる。所定の項目としては、画像を取り上げることとする。なお、第１実施形態と第２実施形態は、同じ表示制御装置（つまり、その一例としてのデジタルカメラ１００）での異なる場面での表示制御である。
【００６１】
［インデックスの表示形式］
第２実施形態では、より具体的には、ディスプレイ１０１に複数の画像をインデックス表示し、ユーザがタッチパネル１５０を操作して、スクロールや表示枚数の変更、フォーカス移動を行うときの表示制御について説明する。
【００６２】
第２実施形態におけるインデックス表示では、複数の画像を行列に並べて配置するものとする。また、インデックス表示における画像の配置は、ある行の左端から右端へ、続いて次の行の左端から右端という順に、画像ファイル名順、画像番号順或いは撮影日時順等の所定の順序で配置されるものとする。全ての画像を１画面に表示しきれない場合は、画面をスクロールすることによって前又は後の行に配置される画像を表示することができるものとする。更に、スクロール停止時には、選択されている画像にフォーカス枠が重畳表示されているものとし、選択されていない画像に対して容易に識別可能となっている。
【００６３】
なお、入力部１３４に含まれるズームレバーの操作によって、フォーカス枠によって選択されている画像のシングル表示への切り換えや拡大表示が可能になっている。また、入力部１３４に含まれる削除ボタンやプロテクトボタンの押下によって、フォーカス枠によって選択されている画像の削除や保護が可能になっている。インデックス表示で表示可能な画像の枚数（行数、列数）は、ユーザの操作によって変更することができるものとし、一度に表示する画像数を増やすと、各画像の大きさは小さくなる。
【００６４】
［インデックス表示に対するタッチ操作］
図７は、ディスプレイ１０１にインデックス表示がなされているときにドラッグ操作によるスクロール及びフリック操作による慣性スクロールが行われたときの表示の変化を示す図である。図７（ａ）には、スクロール操作をする前の静止状態でのインデックス表示の表示例が示されており、画像４１にフォーカス枠が表示されている。図７（ｂ）には、図７（ａ）の状態に対して１点でタッチダウンがなされたときの状態が示されており、このタッチダウンにより、そのタッチ点を包含する画像２５にフォーカス枠が移動する。
【００６５】
図７（ｃ）には、図７（ｂ）の状態から上方向にドラッグ操作が行われて、表示画像が上の部分（番号の小さい画像）から下の部分（番号の大きい画像）に向けて変化している状態が示されている。つまり、図７（ｃ）では、図７（ｂ）と比較して、全ての画像が下から上に向けてスクロールしている。なお、スクロール中は、フォーカス枠は非表示となっている。
【００６６】
図７（ｄ）には、図７（ｃ）の状態からタッチ点がタッチアップし、慣性スクロールが行われている状態が示されている。図７（ｄ）では、上方向のフリックが検出されており、そのため、下から上に向けて慣性スクロールが行われている。よって、図７（ｄ）では、図７（ｃ）と比較して、表示されている画像群が変わっている。図７（ｅ）には、図７（ｄ）の状態から慣性スクロールが終了して停止した状態が示されている。慣性スクロールが停止すると、再びフォーカス枠が表示されるようになっており、図７（ｅ）では画像５２にフォーカス枠が表示されている。なお、図７（ｅ）での画像５２のディスプレイ１０１上の座標は、図７（ｃ）での画像２５のディスプレイ１０１上の座標と同じである。
【００６７】
図８は、ディスプレイ１０１にインデックス表示がなされているときにピンチ操作により表示枚数の変更とフォーカス移動が行われたときの表示の変化を示す図である。図８（ａ）には、図７（ａ）と同じ状態、即ち、タッチオフの状態でスクロールも停止している状態が示されている。図８（ｂ）には、図８（ａ）の状態から１点のタッチダウンが行われ、タッチダウンされた画像２５にフォーカス枠が表示された状態が示されている。図８（ｃ）には、図８（ｂ）の状態に対して更に１点でのタッチダウンが行われた状態が示されており、ここでは、２点のタッチ点の中点を包含する画像３２にフォーカス枠が移動するものとする。
【００６８】
図８（ｄ）には、図８（ｃ）の状態からピンチアウト操作が行われた状態が示されている。図８（ｅ）には、ピンチアウト操作により図８（ｄ）の状態から表示画像の数が減少した状態（７×６枚から４×３枚へ）でのインデックス表示の例が示されている。なお、フォーカス枠は、切り替える前と同じ画像（ここでは、画像３２）に重畳して表示されるものとする。図８（ｆ）には、図８（ｅ）の状態から１点（画像３０近傍のタッチ点）がタッチアップした状態が示されている。
【００６９】
図８（ｇ）には、図８（ｆ）の状態から残った１点のタッチ点で、下方向へドラッグ操作が行われた状態が示されており、ドラッグ操作の移動先であるタッチ点を包含する画像（ここでは、画像３７）にフォーカス枠が移動している。このように、インデックス表示でのピンチ操作後にタッチオフ（１点もタッチされていない状態）になることなく１点でのムーブ操作が行われた場合には、このムーブ操作に応じたスクロールは行わず、ムーブ操作に応じてフォーカス枠の移動のみを行うようにする。したがって、図８（ｇ）では、図８（ｆ）と比較して、タッチ点の位置（指の位置）は変わっているが、インデック表示されている画像群には変化はない。
【００７０】
このように、ピンチアウト操作後、タッチオフとなるまでの間は、スクロール操作を受け付けないようにすることで、所望の画像を見失わずにフォーカス枠を移動させることができる。また、ドラッグ操作の移動量が短い場合には、フォーカス枠の移動も行わないようにすることで、ユーザの意図に反した誤動作の発生を抑制することができる。なお、図８にはピンチアウトにより画像を拡大した例について説明したが、ピンチインにより画像を縮小した後についても、同様の表示制御が可能である。
【００７１】
［表示制御処理フロー］
図７及び図８に示した動作を実現する処理の手順について、図９〜図１２のフローチャートを参照して説明する。図９〜図１２のフローチャートに示す各処理は、ＣＰＵ１２０がＲＯＭ１２１に記録されたプログラムをＲＡＭ１２２のワークエリアに展開して実行し、デジタルカメラ１００の各部を制御することで実現される。
【００７２】
図９は、ディスプレイ１０１にインデックス表示がなされている状態でタッチパネル１５０に対してタッチ入力が行われたときの画像表示制御のフローチャートである。先ず、ステップＳ９００では、ＣＰＵ１２０は、記憶媒体１１６から画像を読み出し、ディスプレイ１０１にインデックス表示（マルチ表示）を行う。これにより、先に説明した図７（ａ）及び図８（ａ）のような表示が行われる。続くステップＳ９０１では、ＣＰＵ１２０は、タッチ点の座標を取得する。
【００７３】
次に、ステップＳ９０２では、ＣＰＵ１２０は、タッチ点の数がゼロ（０）、即ち、タッチオフの状態であるか否かを判定する。ＣＰＵ１２０は、タッチオフの状態である場合（Ｓ９０２でＹＥＳ）、処理をステップＳ９１３へ進め、タッチオフの状態ではない場合（Ｓ９０２でＮＯ）、処理をステップＳ９０３へ進める。ステップＳ９０３では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ９０３でＹＥＳ）、処理をステップＳ９０４へ進め、タッチ点の数が１点ではない場合（Ｓ９０３でＮＯ）、処理をステップＳ９０８へ進める。
【００７４】
ステップＳ９０４では、ＣＰＵ１２０は、ドラッグスクロール処理を実行する。なお、ステップＳ９０４のドラッグスクロール処理の詳細については、図１０を参照して後述する。続くステップＳ９０５では、ＣＰＵ１２０は、再び、タッチ点の数がゼロ（０）、即ち、タッチオフの状態であるか否かを判定する。ステップＳ９０５の判定は、ステップＳ９０４において取得しているタッチ点について行われる。ＣＰＵ１２０は、タッチオフの状態である場合（Ｓ９０５でＹＥＳ）、処理をステップＳ９０６へ進め、タッチオフの状態でない場合（Ｓ９０５でＮＯ）、処理をステップＳ９０８へ進める。
【００７５】
ステップＳ９０６では、ＣＰＵ１２０は、ステップＳ９０５でタッチオフの状態となる際にタッチアップしたタッチ点のタッチアップ直前の移動速度（直前移動速度）が所定の速度Ｓより大きいか否かを判定する。ＣＰＵ１２０は、直前移動速度が速度Ｓよりも大きい場合（Ｓ９０６でＹＥＳ）、処理をステップＳ９０７へ進め、直前移動速度が速度Ｓよりも大きくない場合（Ｓ９０６でＮＯ）、処理をステップＳ９１３へ進める。ステップＳ９０７では、ＣＰＵ１２０は、慣性スクロールを行い、その後、処理をステップＳ９１３へ進める。
【００７６】
ステップＳ９０３において判定がＮＯとなる場合には、タッチ点の数は２点である。また、ステップＳ９０４においてタッチ点が１点の場合にはステップＳ９０４の処理を終了しないようになっているため、ステップＳ９０５の判定がＮＯとなる場合も、タッチ点の数は２点となる。そのため、ステップＳ９０８では、ＣＰＵ１２０は、マルチタッチ処理を実行する。なお、ステップＳ９０８のマルチタッチ処理の詳細については、図１１を参照して後述する。
【００７７】
ステップＳ９０８の後のステップＳ９０９では、ＣＰＵ１２０は、再び、タッチ点の数が１点であるか否かを判定する。ここで、ステップＳ９０８の処理はタッチ点の数が２点の場合には終了しないようになっているため、ステップＳ９０９でタッチ点の数が１点でないと判定された場合には、タッチ点の数はゼロ（０）、即ち、タッチオフの状態となる。また、ステップＳ９０９の判定は、ステップＳ９０８において取得しているタッチ点について行われる。そのため、ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ９０９でＹＥＳ）、処理をステップＳ９１０へ進め、タッチ点の数が１点ではない場合（Ｓ９０９でＮＯ）、処理をステップＳ９１３へ進める。
【００７８】
ステップＳ９１０では、ＣＰＵ１２０は、タッチ点が２点から１点になって残ったタッチ点の移動量（移動距離）が所定の距離Ｄ４以上であるか否かを判定する。ＣＰＵ１２０は、移動量が距離Ｄ４以上の場合（Ｓ９１０でＹＥＳ）、処理をステップＳ９１１へ進め、移動量が距離Ｄ１未満の場合（Ｓ９１０でＮＯ）、処理をステップＳ９１３へ進める。ステップＳ９１１では、ＣＰＵ１２０は、フォーカス移動処理を実行する。なお、ステップＳ９１１のフォーカス移動処理の詳細については、図１２を参照して後述する。
【００７９】
ステップＳ９１１の後のステップＳ９１２では、ＣＰＵ１２０は、ステップＳ９１１において取得しているタッチ点の数がゼロ（０）であるか否かを判定する。ここで、ステップＳ９１１ではタッチ点の数が１点の場合には処理を終了しないようになっているため、ステップＳ９１２でタッチ点の数がゼロでないと判定されたときのタッチ点の数は２点となる。よって、ＣＰＵ１２０は、タッチ点の数がゼロでない場合（Ｓ９１２でＮＯ）、処理をステップＳ９０８へ戻す。一方、タッチ点の数がゼロである場合（Ｓ９１２でＹＥＳ）、処理をステップＳ９１３へ進める。
【００８０】
ステップＳ９１３では、ＣＰＵ１２０は、インデックス表示を終了させる操作（例えば、撮影モードへの移行、メニュー画面の表示指示等の他の動作モードへの移行操作や、電源をＯＦＦする操作等）があったか否かを判定する。ＣＰＵ１２０は、終了操作がなかった場合（Ｓ９１３でＮＯ）、処理をステップＳ９０１へ戻し、終了操作があった場合（Ｓ９１３でＹＥＳ）、処理を終了させる。
【００８１】
［ドラッグスクロール移動処理の詳細］
図１０は、ステップＳ９０４で実行されるドラッグスクロール処理のフローチャートである。先ず、ステップＳ１００１では、ＣＰＵ１２０は、スクロール制御の変数ｙ１にタッチ点のＹ座標を割り当ててＲＡＭ１２２に記録する。続くステップＳ１００２では、ＣＰＵ１２０は、スクロール制御の変数ｙ２（現在のタッチ点のＹ座標を表す）をタッチ点のＹ座標としてＲＡＭ１２２に記録する。
【００８２】
次に、ステップＳ１００３では、ＣＰＵ１２０は、スクロール制御の変数ｓｄｙ（Ｙ軸方向のタッチ点の差分を表す）を変数ｙ２と変数ｙ１の差分（＝ｙ２−ｙ１）とする。続いて、ステップＳ１００４では、ＣＰＵ１２０は、変数ｓｄｙの絶対値が所定値より大きいか否かを判定する。ＣＰＵ１２０は、変数ｓｄｙの絶対値が所定値以下である場合（Ｓ１００４でＮＯ）、処理をステップＳ１００７へ進め、所定値より大きい場合（Ｓ１００４ＹＥＳ）、処理をステップＳ１００５へ進める。
【００８３】
ステップＳ１００５では、ＣＰＵ１２０は、表示位置から変数ｓｄｙを差し引いてスクロール位置の表示位置を更新する。即ち、Ｙ軸方向でのスクロール処理が行われる。続くステップＳ１００６では、ＣＰＵ１２０は、変数ｙ１を変数ｙ２に変更する。その後のステップＳ１００７では、ＣＰＵ１２０は、再度、タッチ点を取得する。そして、ステップＳ１００８では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ１００８でＹＥＳ）、処理をステップＳ１００２へ戻し、タッチ点の数が１点でない場合（Ｓ１００８でＮＯ）、処理を終了させる。
【００８４】
［マルチタッチ処理の詳細］
図１１は、ステップＳ９０８で実行されるマルチタッチ制御処理のフローチャートである。先ず、ステップＳ１１０１では、ＣＰＵ１２０は、２点目がタッチダウンされたか否かを判定する。ＣＰＵ１２０は、２点目がタッチダウンされた場合（Ｓ１１０１でＹＥＳ）、処理をステップＳ１１０２へ進め、タッチダウンされていない場合（Ｓ１１０１でＮＯ）、処理をステップＳ１１０４へ進める。
【００８５】
ステップＳ１１０２では、ＣＰＵ１２０は、マルチタッチ制御用の変数ｍｄ１に現在の２点間の距離を割り当ててＲＡＭ１２２に記憶する。続くステップＳ１１０３では、ＣＰＵ１２０は、２点のタッチ点の中点に最も近い画像にフォーカス枠を移動させる。その後、ＣＰＵ１２０は、処理をステップＳ１１０４へ進める。
【００８６】
ステップＳ１１０４では、ＣＰＵ１２０は、マルチタッチ制御用の変数ｍｄ２（現在の２点間の距離を表す）に現在の２点間の距離を割り当ててＲＡＭ１２２に記憶する。ステップＳ１１０４の後のステップＳ１１０５では、ＣＰＵ１２０は、変数ｍｄ２から変数ｍｄ１を差し引いた差（差分Ｂ１＝ｍｄ２−ｍｄ１）が所定値以上か否かを判定する。即ち、ステップＳ１１０５では、ピンチアウト操作が行われているか否かが判定される。ＣＰＵ１２０は、差分Ｂ１が所定値以上である場合（Ｓ１１０４でＹＥＳ）、つまり、ピンチアウト操作が行われた場合、処理をステップＳ１１０６へ進め、一方、差分Ｂ１が所定値未満である場合（Ｓ１１０４でＮＯ）、処理をステップＳ１１０７へ進める。
【００８７】
ＣＰＵ１２０は、ステップＳ１１０６では、各々の画像の大きさを拡大し、画面に表示する画像枚数を少なくする拡大表示処理を行い、その後、処理をステップＳ１１０９へ進める。ステップＳ１１０７では、ＣＰＵ１２０は、変数ｍｄ１から変数ｍｄ２を差し引いた差（差分Ｂ２＝ｍｄ１−ｍｄ２）が所定値以上か否か、つまり、ピンチイン操作が行われているか否かを判定する。ＣＰＵ１２０は、差分Ｂ１が所定値以上である場合（Ｓ１１０７でＹＥＳ）、ピンチイン操作が行われたと判定して、処理をステップＳ１１０８へ進め、一方、差分Ｂ１が所定値未満である場合（Ｓ１１０７でＮＯ）、処理をステップＳ１１１０へ進める。ステップＳ１１０８では、ＣＰＵ１２０は、各々の画像の大きさを縮小し、画面に表示する画像枚数を多くする縮小表示処理を行う。続くステップＳ１１０９では、ＣＰＵ１２０は、変数ｍｄ１を変数ｍｄ２に変更する。その後、ＣＰＵ１２０は、処理をステップＳ１１１０へ進める。
【００８８】
ステップＳ１１１０では、ＣＰＵ１２０は、再度、タッチ点を取得する。続いて、ステップＳ１１１１では、ＣＰＵ１２０は、タッチ点の数が２点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が２点である場合（Ｓ１１１１でＹＥＳ）、処理をステップＳ１１０４へ戻し、タッチ点の数が２点でない場合（Ｓ１１１１でＮＯ）、処理を終了させる。
【００８９】
［フォーカス移動処理の詳細］
図１２は、ステップＳ９１１で実行されるフォーカス移動処理のフローチャートである。先ず、ステップＳ１２０１では、ＣＰＵ１２０は、タッチ点のＸ座標，Ｙ座標をそれぞれ変数Ｘ１，変数Ｙ１としてＲＡＭ１２２に記憶する。ステップＳ１２０１の後のステップ１２０２では、ＣＰＵ１２０はタッチ点のＸ座標、Ｙ座標をそれぞれ変数Ｘ２、変数Ｙ２とし、ＲＡＭ１２２に記憶する。
【００９０】
ステップＳ１２０２の後のステップＳ１２０３では、ＣＰＵ１２０は、２点（Ｘ１，Ｙ１），（Ｘ２，Ｙ２）間の距離が所定値以上であるか否かを判定する。即ち、ステップＳ１２０３では、ドラッグ操作が行われているか否かが判定される。ＣＰＵ１２０は、２点間距離が所定値以上である場合（Ｓ１２０３でＹＥＳ）、つまり、ドラッグ操作が行われている場合、処理をステップＳ１２０６へ進め、一方、２点間距離が所定値未満である場合（Ｓ１２０３でＮＯ）、処理をステップＳ１２０４へ進める。
【００９１】
ステップＳ１２０４では、ＣＰＵ１２０は、再度、タッチ点を取得する。続くステップＳ１２０５では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ１２０５でＹＥＳ）、処理をステップＳ１２０２へ戻し、一方、１点ではない場合（Ｓ１２０５でＮＯ）、処理を終了させる。
【００９２】
ステップＳ１２０６では、ＣＰＵ１２０は、点（Ｘ２、Ｙ２）を包含する画像が存在するか否かを判定する。ＣＰＵ１２０は、点（Ｘ２、Ｙ２）を包含する画像が存在する場合（Ｓ１２０６でＹＥＳ）、処理をステップＳ１２０７へ進め、一方、点（Ｘ２、Ｙ２）を包含する画像が存在しない場合（Ｓ１２０６でＮＯ）、処理をステップＳ１２０８へ進める。
【００９３】
ステップＳ１２０７では、ＣＰＵ１２０は、点（Ｘ２，Ｙ２）を包含する画像にフォーカス枠を移動させる。続くステップＳ１２０８では、ＣＰＵ１２０は、再度、タッチ点を取得する。次に、ステップＳ１２０９では、ＣＰＵ１２０は、タッチ点の数が１点であるか否かを判定する。ＣＰＵ１２０は、タッチ点の数が１点である場合（Ｓ１２０９でＹＥＳ）、処理をステップＳ１２１０へ進め、タッチ点の数が１点でない場合（Ｓ１２０９でＮＯ）、処理を終了させる。ステップＳ１２１０では、ＣＰＵ１２０は、タッチ点のＸ座標，Ｙ座標をそれぞれＸ２，Ｙ２として、処理をステップＳ１２０６へ戻す。
【００９４】
以上に説明した図９〜図１２のフローチャートに従う処理によって、図７及び図８を参照して説明したように表示画像を移動させる動作を実現することができる。
【００９５】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【００９６】
例えば、図４〜図６及び図９〜図１２の各フローチャートの制御は、上記実施形態では、ＣＰＵ１２０が行うとしたが、複数のハードウェア（ＣＰＵやＭＰＵ）が処理を分担することで、表示制御装置全体の制御を行ってもよい。
【００９７】
また、上記実施形態では、ディスプレイ１０１にシングル表示、拡大表示／縮小表示或いはマルチ表示（インデックス表示）された画像に対してマルチタッチ操作を行った場合について説明したが、これに限られない。即ち、本発明は、マルチタッチ操作の直後の、全点がタッチアップする前の１点タッチによる慣性スクロール又はスクロールを抑制するものであるので、マルチタッチ操作と１点タッチによるスクロール操作が可能な場面であれば適用可能である。すなわち、Ｗｅｂ画面、地図、図面、文書等のコンテンツを表示する場面に適用することができる。
【００９８】
更に、上記実施形態では、本発明をデジタルカメラに適用して説明したが、本発明は、マルチタッチ操作によりディスプレイに表示された表示画像を変形させたり移動させたりすることができる全ての機器に対して適用することができる。例えば、本発明は、マルチタッチ操作が可能なパーソナルコンピュータやＰＤＡ、携帯電話端末、携帯型画像ビューワ、デジタルフォトフレーム、ゲーム機、電子ブックリーダ、ディスプレイ付きプリンタ装置、ディスプレイ付き音楽プレーヤ等の機器に対して適用可能である。
【符号の説明】
【００９９】
１０１    ディスプレイ
１２０    ＣＰＵ
１２１    ＲＯＭ
１２２    ＲＡＭ
１３３    表示制御部
１５０    タッチパネル
【図１】
2014048694.tif 000003
【図２】
2014048694.tif 000004
【図３】
2014048694.tif 000005
【図４】
2014048694.tif 000006
【図５】
2014048694.tif 000007
【図６】
2014048694.tif 000008
【図７】
2014048694.tif 000009
【図８】
2014048694.tif 000010
【図９】
2014048694.tif 000011
【図１０】
2014048694.tif 000012
【図１１】
2014048694.tif 000013
【図１２】
2014048694.tif 000014