(57)【要約】【課題】  スクロールの最中に、より多くの画像を表示することが可能な表示制御装置を提供する事を目的とする。【解決手段】  画像を表示手段に表示するための処理を行う処理手段（１２１）と、前記処理手段によって処理された複数の画像を前記表示手段に表示するように制御する表示制御手段（１０４）と、  前記表示手段に表示された複数の画像をスクロールして他の複数の画像を前記表示手段への表示対象とするスクロール制御手段（Ｓ７０７，Ｓ７０８）と、  前記スクロールによって新たに前記表示対象となった前記他の複数の画像のうち、前記スクロールによる画像の移動方向において下流側に配置される画像よりも上流側に配置される画像に対する前記処理を先に行うように前記処理手段を制御する制御手段（Ｓ６１４，Ｓ６１５）と、  を有することを特徴とする。【選択図】  図３
2011164129.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示手段に表示するための処理を行う処理手段と、
前記処理手段によって処理された複数の画像を前記表示手段に表示するように制御する表示制御手段と、
前記表示手段に表示された複数の画像をスクロールして他の複数の画像を前記表示手段への表示対象とするスクロール制御手段と、
前記スクロールによって新たに前記表示対象となった前記他の複数の画像のうち、前記スクロールによる画像の移動方向において下流側に配置される画像よりも上流側に配置される画像に対する前記処理を先に行うように前記処理手段を制御する制御手段と、
を有することを特徴とする表示制御装置。
【請求項２】
前記処理手段が行う前記処理は、記憶媒体からの画像の読み込み、圧縮された画像のデコード、表示用のサイズへのリサイズ、表示に用いるメモリへの展開のうちの少なくとも１つであることを特徴とする請求項１に記載の表示制御装置。
【請求項３】
前記表示制御手段は、前記処理手段によって処理された複数の画像を、所定の順序で行列に並べて前記表示手段に表示するように制御し、
前記制御手段は、前記行列のうち、前記スクロールによる画像の前記移動方向において最も上流側に配置される前記表示対象の画像に対する前記処理を先に行うように前記処理手段を制御することを特徴とする請求項１または２に記載の表示制御装置。
【請求項４】
前記制御手段は、前記行列のうち、前記スクロールによる画像の前記移動方向において最も上流側に配置される前記表示対象の画像のうち、前記所定の順序において、前記スクロールの前に表示されていた画像から最も遠い画像に対する前記処理を先に行うように前記処理手段を制御することを特徴とする請求項３に記載の表示制御装置。
【請求項５】
前記処理手段が処理した画像を、前記表示対象となっている画像よりも多く格納するバッファメモリと、
前記バッファメモリに格納された複数の画像のうち、前記表示対象となっている画像をコピーして格納する表示用メモリとを更に有し、
前記スクロール制御手段は、前記表示用メモリへコピーする前記バッファメモリ上の範囲を変更することで前記スクロールを行うことを特徴とする請求項１乃至４のいずれか１項に記載の表示制御装置。
【請求項６】
前記バッファメモリは、前記処理手段によって前記処理をされた画像を、少なくとも前記表示対象である間は格納することを特徴とする請求項５に記載の表示制御装置。
【請求項７】
前記バッファメモリは、前記表示対象となっている画像よりも前に配置される画像と、後に配置される画像とを格納することができ、
前記制御手段は、前記前に配置される画像と前記後に配置される画像のうち、前記スクロールによる画像の移動方向において下流側に配置される画像よりも上流側に配置される画像に対する前記処理を先に行うように前記処理手段を制御することを特徴とする請求項５または６に記載の表示制御装置。
【請求項８】
処理手段によって、画像を表示手段に表示するための処理を行う処理ステップと、
前記処理ステップによって処理された複数の画像を前記表示手段に表示するように制御する表示制御ステップと、
前記表示手段に表示された複数の画像をスクロールして他の複数の画像を前記表示手段への表示対象とするスクロール制御ステップと、
前記スクロールによって新たに前記表示対象となった前記他の複数の画像のうち、前記スクロールによる画像の移動方向において下流側に配置される画像よりも上流側に配置される画像に対する前記処理を先に行うように前記処理手段を制御する制御ステップと、
を有することを特徴とする表示制御装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載された表示制御装置の各手段として機能させるプログラム。
【請求項１０】
コンピュータを、請求項１乃至７のいずれか１項に記載された表示制御装置の各手段として機能させるプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像を表示するための表示制御装置とその制御方法に関する。
【背景技術】
【０００２】
近年、写真等の画像を一画面に複数枚表示を行うインデックス表示可能なデジタル機器が存在する。このような機器に於いて、表示画面の大型化や高精細化、制御装置の処理能力向上、記録媒体の大容量化等に伴い、一度により多くの画像を表示可能なものが増えて来ている。
【０００３】
また、ボタンやレバー、回転式のダイヤル、タッチパネル等の操作部材への操作によって一度に複数の画像が表示されたインデックス表示を任意の方向へスクロールさせる事も行われている。
【０００４】
一方、画像の表示を行う為には、記録媒体からの画像データの読み出し、画像データのデコード（圧縮されている場合は解凍処理を含む）、表示を行う大きさへのリサイズ、ＶＲＡＭへの展開等、物理的な処理時間が必要となる。複数枚のインデックス表示を行う場合、これら一連の処理はその表示画像枚数分必要であり、一画面全ての画像表示を完了するまでにユーザーはある程度の時間待たされる事となる。
【０００５】
そこで、例えば特許文献１では、インデックス画面において表示を行う順番を、条件に応じて変更し、ユーザーがこれまで閲覧していた画像を最初に表示すると共に、そこに隣接する画像から優先的に表示する方法が開示されている。それによりユーザーはこれまで閲覧していた画像を、インデックス表示に移行した後も見失わずに判別可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−２３１００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら従来は、インデックス表示においてスクロールを行うと、画像を表示するための処理にかかる処理時間が間に合わないために、スクロールの最中において表示されるべき画像が表示されないことがあった。これはスクロール速度が増す程、また、一度に表示される画像の数が増す程発生する可能性が高く、場合によってはスクロール中に画像が殆ど表示されないという事態が発生する。画像が殆ど表示されない場合、スクロールによりどの画像に切り替わっているかがわかりづらく、スクロールの操作をしているユーザーはどこでスクロールを終了させるべきかの判断がしにくい。またスクロール停止後も表示されていない画像を表示する処理の時間だけ待つこととなる。
【０００８】
特許文献１でスクロールを行った場合、それまで表示されていた画像に隣接する画像、すなわちスクロールにより消え行く方向（画像が移動する方向）の画像を優先的に表示する事となる。しかし、それまで表示されていた画像に隣接する画像は、スクロール中に新たに表示対象となった他の画像よりも早く表示対象ではなくなるため、表示対象であるうちに表示をするための処理が完了する可能性が他の画像に比べて低い。新たに表示対象となった他の画像を表示するための処理も、それまで表示されていた画像に隣接する画像の後に行われる分だけ遅くなる。したがって特許文献１においても、上述のようにスクロール中に表示されるべき画像の多くが表示されないという事態が発生する可能性がある。
【０００９】
本発明は上述の課題に鑑み、スクロールの最中に、より多くの画像を表示することが可能な表示制御装置を提供する事を目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明の表示制御装置は、
画像を表示手段に表示するための処理を行う処理手段と、
前記処理手段によって処理された複数の画像を前記表示手段に表示するように制御する表示制御手段と、
前記表示手段に表示された複数の画像をスクロールして他の複数の画像を前記表示手段への表示対象とするスクロール制御手段と、
前記スクロールによって新たに前記表示対象となった前記他の複数の画像のうち、前記スクロールによる画像の移動方向において下流側に配置される画像よりも上流側に配置される画像に対する前記処理を先に行うように前記処理手段を制御する制御手段と、
を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、スクロールの最中に、より多くの画像を表示することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】デジタルカメラ１００のハードウェア構成である。
【図２】インデックス表示においてスクロールを行った場合の表示用ＶＲＡＭとバッファメモリの関係の模式図である。
【図３】インデックス表示においてスクロールを行った場合の表示用ＶＲＡＭとバッファメモリの関係の模式図である。
【図４】インデックス表示においてスクロールを行った場合の表示用ＶＲＡＭとバッファメモリの関係の模式図。
【図５】インデックス表示の処理フローチャートである。
【図６】スクロール制御処理のフローチャートである。
【図７】スムーズスクロール処理のフローチャートである。
【図８】処理対象列制御処理のフローチャートである。
【図９】予備の格納領域を設けたバッファメモリの模式図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１４】
＜ハードウェアの説明＞
図１に、本発明の各実施形態を適用可能な表示制御装置の一例として、デジタルカメラ１００の構成を示す。図１（ａ）はデジタルカメラの構成例を示すブロック図、図１（ｂ）は外観図である。
【００１５】
図１において、内部バス１１１に対してＣＰＵ１０１、不揮発性メモリ１０２、メモリ１０３、表示制御部１０４、入力部１０５、ドライブ装置１０６、通信Ｉ／Ｆ１０７、画像処理部１２１、撮像部１２２が接続される。内部バス１１１に接続される各部は、内部バス１１１を介して互いにデータのやりとりを行うことができるようにされている。
【００１６】
不揮発性メモリ１０２は、ＣＰＵ１０１が動作するための定数や各種プログラムなどが格納される。メモリ１０３は、例えばＲＡＭからなる。ＣＰＵ１０１は、例えば不揮発性メモリ１０２に格納されるプログラムに従い、メモリ１０３をワークメモリとして用いて、このデジタルカメラ１００の各部を制御する。入力部１０５は、ユーザー操作を受け付け、操作に応じた制御信号を生成し、ＣＰＵ１０１に供給する。入力部１０５は、ユーザー操作を受け付ける操作部材として、ボタン（十字に配置された方向ボタン１０５−１を含む）、回転ホイール１０５−２、ポインティングデバイスとしてのタッチパネル１０５−３などを有する。なお、タッチパネルは、例えば平面的に構成された入力部に対して接触された位置に応じた座標情報が出力されるようにした入力デバイスである。ポインティングデバイスとしてはタッチパネルの変わりにマウスやトラックボールを用いることとしてもよい。ＣＰＵ１０１は、入力デバイスに対してなされたユーザー操作に応じて入力部１０５で生成され供給される制御信号に基づき、プログラムに従いこのデジタルカメラ１００の各部を制御する。これにより、デジタルカメラ１００に対し、ユーザー操作に応じた動作を行わせることができる。
【００１７】
入力部１０５としてタッチパネルを用いる場合、入力部１０５とディスプレイ１１０とを一体的に構成することができる。例えば、タッチパネルを光の透過率がディスプレイ１１０の表示を妨げないように構成し、ディスプレイ１１０の表示面の上層に取り付ける。そして、タッチパネルにおける入力座標と、ディスプレイ１１０上の表示座標とを対応付ける。これにより、恰もユーザーがディスプレイ１１０上に表示された画面を直接的に操作可能であるかのようなＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を構成することができる。
【００１８】
表示制御部１０４は、ディスプレイ１１０に対して画像を表示させるための表示信号を出力する。例えば、表示制御部１０４に対して、ＣＰＵ１０１がプログラムに従い生成した表示制御信号が供給される。表示制御部１０４は、この表示制御信号に基づき表示信号を生成してディスプレイ１１０に対して出力する。例えば、表示制御部１０４は、ＣＰＵ１０１が生成する表示制御信号に基づき、ＧＵＩを構成するＧＵＩ画面をディスプレイ１１０に対して表示させる。
【００１９】
ドライブ装置１０６は、メモリーカード等の外部記憶媒体１０８が装着可能とされ、ＣＰＵ１０１の制御に基づき、装着された外部記憶媒体１０８からのデータの読み出しや、当該外部記憶媒体１０８に対するデータの書き込みを行う。なお、ドライブ装置１０６が装着可能な外部記憶媒体１０８は、メモリーカードのような半導体メモリに限らず、ＣＤやＤＶＤ、ハードディスクといったディスク記録媒体をドライブ装置１０６に装着するものとしてもよい。２０２は外部記録媒体１０８を格納するスロットの蓋である。通信インターフェイス（Ｉ／Ｆ）１０７は、ＣＰＵ１０１の制御に基づき、ＬＡＮやインターネットといったネットワーク１２０に対する通信を行う。図１（ｂ）には有線の例を図示しているが、無線通信であっても良い。
【００２０】
撮像部１２２は、フォーカスレンズを含む撮影レンズ、絞り機能を備えるシャッター、光学像を電気信号に変換するＣＣＤやＣＭＯＳ素子等の撮像素子、Ａ／Ｄ変換器等で構成される。画像処理部１２１は、撮像部からの画像データ、又は、外部記憶媒体１０８等から読み込んだ画像データに対し、デコード、エンコード、所定の画素補間、拡大や縮小といったリサイズ処理や色変換処理を行う。
【００２１】
＜動作説明＞
以下、図２〜図４を参照して、本実施形態の動作を模式的に説明する。
【００２２】
本実施形態では、ディスプレイ１１０に複数の画像をインデックス表示して上下方向にスクロールを行う際に、新たに表示される画像のうち、スクロール前に表示されていた画像から遠い位置に配置される画像の表示処理を優先して行う例を説明する。本実施形態におけるインデックス表示では、複数の画像を行列に並べて配置するものとする。インデックス表示中での画像の配置される位置は、ある行の左端から右端、続いて次の行の左端から右端という順に、画像ファイル名順、画像番号順、撮影日時順等の所定の順序で配置されるものとする。すべての画像を１画面に表示しきれない場合は、画面をスクロールすることによって更に前、あるいは更に後の行に配置される画像を表示することができる。なお、本発明においては、画像の配置順（並び順）は、後述するとおり、時間的な表示順番とは必ずしも一致しない。
【００２３】
まず、表示用ＶＲＡＭ（表示用メモリ）とバッファメモリについて説明する。メモリ１０３は、表示用ＶＲＡＭ領域とバッファメモリ領域を有している。ディスプレイ１１０に画像を表示する際には、外部記憶媒体１０８等から表示すべき画像を読み込み、画像処理部１２１で画像のデコード（圧縮されている場合は解凍処理を含む）、表示用サイズへのリサイズを行い、バッファメモリに展開（格納）する。以下、これらの処理のうち少なくとも１つの処理を総称して表示準備処理と称する。バッファメモリに展開された画像のうち、ディスプレイ１１０に表示する画像を含む１画面分の表示データが表示用ＶＲＡＭにコピーして格納される。表示用ＶＲＡＭに格納された表示データは、表示制御部１０４を介してディスプレイ１１０に表示される。
【００２４】
図２に、インデックス表示においてスクロールを行った場合の表示用ＶＲＡＭとバッファメモリの関係の模式図を示す。図２（ａ）は、スクロールする前の静止した状態の表示用ＶＲＡＭとバッファメモリの状態を図示したものである。本実施形態では、インデックス表示の際には、１画面に６行７列の４２枚の画像が表示されるものとする。なお、以下では、Ｙ行目のＸ列目に表示される画像を便宜的に画像Ｙ：Ｘと表記する。この場合、図２（ａ）に示すように、バッファメモリには、１画面分で表示される画像（表示用ＶＲＡＭに格納される画像）よりも前後１行分多い、０列目１行目の画像（画像０：１）〜７列目７行目の画像（画像７：７）の５６枚の画像が格納される。また、図２（ａ）に示すように、表示用ＶＲＡＭには、バッファメモリに格納された画像のうち、１画面に表示する分の画像１：１〜画像６：７の４２枚の画像がコピーされる。表示用ＶＲＡＭにコピーされた画像は、図２の表示用ＶＲＡＭに図示したとおりに、ディスプレイ１１０に表示される。なお、図示した表示用ＶＲＡＭの画像に加えて他のアイコンや情報表示等と重畳して表示してもよい。
【００２５】
図２（ｂ）に、図２（ａ）の状態から、下から上にスクロールした際の表示用ＶＲＡＭとバッファメモリの状態を図示する。図２（ｂ）における表示用ＶＲＡＭ（すなわち、ディスプレイ１１０での表示内容）では、図２（ａ）に比べてすべての画像が下から上に移動している。以下では、この場合のスクロール方向を上と表記する（すなわち、スクロールにおける画像の移動方向をスクロール方向とする。）。図２（ｂ）では、スクロール前の１行目の画像が一部表示されており、スクロールの移動量は１行未満である。このようにスクロール量がバッファメモリに余分に用意した行数（本実施の形態では前後１行）未満である場合は、バッファメモリは更新せず、バッファメモリから表示用ＶＲＡＭにコピーする領域の位置をずらすことで、表示位置の移動を実現する。図２（ｂ）に破線で示したコピー範囲は、図２（ａ）に示すスクロール前のコピー範囲（破線の範囲）より、表示画像が上に移動した分だけ下に移動している。
【００２６】
図２（ｃ）に、図２（ａ）の状態から図２（ｂ）の状態を経て、ちょうど１行分上にスクロールした際の表示用ＶＲＡＭとバッファメモリの状態を示す。図２（ｂ）の状態からさらに上方向へのスクロールが進み、表示用ＶＲＡＭへのコピー範囲（ディスプレイ１１０に表示される範囲）がちょうど２行目から７行目までとなると、さらにスクロールが進めばもう１行先の８行目の画像を表示しなければならない。そのため、この時点でバッファメモリの画像を１行繰り下げるように更新し、今まで０行目を格納していた領域は１行目の画像で上書きし、１行目〜８行目の画像を格納する。８行目の画像は今までバッファメモリには格納されていなかった画像であるため、外部記憶媒体１０８等から読み込み、画像処理部１２１で圧縮画像のデコード、表示用サイズへのリサイズ等の表示準備処理が必要である。そのため即時にバッファメモリに格納されるわけではなく、表示準備処理にかかる時間だけ遅れて格納される。図２（ｃ）のバッファメモリでは、スクロールが丁度１行分進んだ瞬間の状態を表しているため、まだ８行目の画像８：１〜画像８：７が格納されていない状態を示している。以下、バッファメモリに黒塗りで示した箇所は、格納される予定の画像がまだ格納されていない状態であることを示すものとする。
【００２７】
図３（ａ）に、図２（ａ）〜（ｃ）の状態を経て更に上にスクロールした際の表示用ＶＲＡＭとバッファメモリの状態を示す。図２（ａ）のスクロール開始前の１行目から数えて８行目の画像にまで表示用ＶＲＡＭへのコピー範囲が及んで、図中に破線で示したコピー範囲が２行目の終わり〜８行目の途中となっている。しかし、８行目の画像８：１〜画像８：５の表示準備処理が終わるよりも早くスクロールが進んだために、表示用ＶＲＡＭには画像８：１〜画像８：５がコピーされていない。従ってこの状態ではディスプレイ１１０には画像８：１〜８：５は表示されない。なお、本実施形態では、同一行内ではスクロール前に表示されていた画像から画像の配置順が遠い画像から先に表示準備処理が行われるものとする。従ってここで説明している図３（ａ）では、図２（ａ）で表示されていた画像１：１〜画像６：７から画像の配置順が画像８：１よりも遠い、画像８：７から降順に表示準備処理が行われる。
【００２８】
図３（ｂ）に、図２（ａ）〜（ｃ）、図３（ａ）の状態を経て更に上にスクロールした際の表示用ＶＲＡＭとバッファメモリの状態を示す。図２（ａ）のスクロール開始前の１行目から数えて９行目の画像にまで表示用ＶＲＡＭへのコピー範囲が及んで、図中に破線で示したコピー範囲が３行目の途中〜９行目の途中となっている。しかし、８行目の画像８：１〜画像８：５、９行目の画像９：１〜画像９：６の表示準備処理が終わるよりも速くスクロールが進んだために、表示用ＶＲＡＭには画像８：１〜画像８：５と画像９：１〜画像９：６がコピーされていない。このように、本実施形態では、同一行内の全ての画像の表示準備処理が終了するより前にスクロールが先に進んだ場合は、新たに表示される行の画像の表示準備処理を、前の行でまだ表示準備処理の済んでいない画像よりも優先して先に行う。図示の例では８行目内の全ての画像の表示準備処理が終了する前にスクロールが進んだ場合は、新たに表示される９行目の画像の表示準備処理を８行目でまだ表示準備処理の済んでいない画像よりも優先して先に行う。このようにすることで、スクロールの速さに対して表示準備処理が追いつかないことで１行分全く画像が表示されなくなる可能性を低減し、スクロールがどの行まで進んだかを識別しやすいようにしている。
【００２９】
図３（ｃ）に、図２（ａ）〜（ｃ）、図３（ａ）、（ｂ）の状態を経て更に上にスクロールした際の表示用ＶＲＡＭとバッファメモリの状態を示す。図２（ａ）のスクロール開始前の１行目から数えて１１行目の画像にまで表示用ＶＲＡＭへのコピー範囲が及んで、図中に破線で示したコピー範囲が５行目と６行目の境目〜１１行目の途中となっている。この例では、８行目の画像８：１〜画像８：５、９行目の画像９：１〜９：６、更に１０行目で１枚分の画像の表示準備処理が終わるよりも速くスクロールが進み、１１行目に達している。この場合、１枚も表示準備処理が終了していない１０行目よりも、新たに表示対象となった１１行目の画像の表示準備処理を優先し、画像１１：７の表示準備処理を行っている。このように、本実施の形態では、スクロール前に表示されていた画像に配置順が近い画像（図で例えば１０行目の画像）よりも、スクロールによって新たに表示されることになった画像（図では１１行目の画像）の表示準備処理を時間的に先に行う。言い換えると、スクロール方向（スクロールにおいて画像が移動する方向）と逆側に配置される画像の表示準備処理を、スクロール方向側に配置される画像よりも時間的に先に行う。スクロール方向と逆側とは、さらに言い換えればスクロールで画像が移動する方向に対して上流側である。一旦表示準備処理を終えてバッファメモリに格納された画像は、スクロールが行われても、少なくとも表示用ＶＲＡＭへのコピー範囲にあるうちはバッファメモリに格納され続ける。そして、同一の時点でスクロール方向と逆側寄り（画像の移動方向と逆側。上流側。）に配置される画像よりもスクロール方向寄り（画像の移動方向側。下流側。）に配置される画像の方が、スクロールによる移動によって早く表示対象ではなくなる。ここで表示対象でなくなるとは、表示用ＶＲＡＭへのコピー範囲に含まれなくなることである。すなわち、同一の時点でバッファメモリに格納されている画像の中では、スクロール方向と最も逆側寄り（最も上流側）の行に配置されている画像が、表示対象である期間が最も長い。従って表示対象であるうちに（表示用ＶＲＡＭへのコピー範囲に含まれているうちに）表示準備処理が終了する可能性が最も高い。逆に言うと、表示準備処理を始めたものの、その処理が終了する前に表示用ＶＲＡＭへのコピー範囲に含まれなくなり、ディスプレイ１１０に表示されずにスクロールが先に進んでしまうといったことが起こる可能性が最も低い。このように本実施の形態では、表示用ＶＲＡＭへのコピー範囲に含まれる画像で表示準備処理が済んでいない画像のうち、スクロール方向と最も逆側寄り（画像の移動方向と最も逆側。最上流側。）の行に配置される画像を他の画像に比べて優先的に処理する。これによって、スクロール速度が上がっても１画面に１枚も画像が表示されていないという状況になる可能性を低減することができる。
【００３０】
なお、図２、図３では上方向にスクロールした例を説明したが、下方向にスクロールすることも可能であることはいうまでもない。図４に、下方向にスクロールした際の表示用ＶＲＡＭとバッファメモリの関係の模式図を示す。
【００３１】
＜処理手順＞
次に、上述した動作を実現する処理の手順を、図５〜図８のフローチャートを用いて詳細に説明する。図５〜図８のフローチャートは、ＣＰＵ１０１が不揮発性メモリ１０２に記録されたプログラムをメモリ１０３のワークメモリ領域に展開して実行し、デジタルカメラ１００の各部を制御することで実現する。
【００３２】
まず、図５〜図８のフローチャートの説明に用いる用語の意味を記す。
【００３３】
表示順：表示準備処理を施す時間的な優先順序を、ディスプレイ１１０に表示される行列の上の行から下の行という順序にするか、下の行から上の行という順序にするかを示す変数。スクロールの方向によって変わる変数であり、メモリ１０３に記憶される。
【００３４】
処理対象行（処理対象列）：ある時点において表示準備処理を施してバッファメモリに追加すべき画像の配置位置の行（列）を示す変数。画像の配置は画像ファイル名やファイル番号、撮影日時等の情報によって一意に定まっているので、インデックス表示における配置位置がわかれば画像の配置順と照らし合わせることで一意に画像を特定できる。メモリ１０３に記憶される。
【００３５】
行Ｏｆｆｓｅｔ：スクロールを１行単位よりも細かい滑らかなアニメーションとするため、バッファメモリから表示用ＲＡＭへコピーする範囲を１行以下でずらす位置を示すための変数（整数値）。メモリ１０３に記憶される。
【００３６】
行Ｏｆｆｓｅｔの規定値：丁度１行分のスクロールを行う間にアニメーションのために表示を更新する回数を示す定数。言い換えると、丁度１行分ずらした際の行Ｏｆｆｓｅｔの値を示す定数。不揮発性メモリ１０２に予め記憶されている。この行Ｏｆｆｓｅｔの規定値が大きければアニメーションはより細くなり、規定値が小さければアニメーションはより粗くなる。以下の式を満たす。
［アニメーションにおける１回の表示更新での表示画像の表示画面上での移動量］＝［１行分表示するのに必要な表示用ＶＲＡＭ及びバッファメモリの縦方向ライン数］／［行Ｏｆｆｓｅｔの規定値］
スクロールカウンター：ある時点において更にスクロールすべき行数を示す変数。画面のスクロールを指示するユーザーからの操作に応じて加算あるいは減算される。実際にスクロールが行われるとスクロールされた行数分を加算または減算する。
【００３７】
アニメーションタイマー：スクロールにおいて表示を１回更新するまでの周期をカウントするタイマー。一般的にはこの逆数を以てフレームレートを表す。この値が小さくなる程アニメーションのフレームレートは上がるが、システムの負荷も高くなる。（この周期は定数。数１０ｍｓｅｃ程度）
＜インデックス表示処理（図５）＞
図５は、インデックス表示の全体フローチャートである。ユーザーの操作などに基づいて、画像を表示するモードがインデックス表示モードに切り替えられると、インデックス表示を開始する。
【００３８】
Ｓ５０１ではまず、ＣＰＵ１０１は変数を初期化し、表示順＝上から下へ、処理対象行＝表示用ＶＲＡＭへのコピー範囲のうちの上端、処理対象列＝同一行内での左端、行Ｏｆｆｓｅｔ＝０にセットし、メモリ１０３に記憶する。
【００３９】
Ｓ５０２では、ＣＰＵ１０１はインデックス表示を終了するか否かを判定する。デジタルカメラ１００の電源が切られたり、インデックス表示以外の他のモードに切り替える操作などを受け付けるとインデックス表示を終了すると判定され、インデックス表示を終了して図５の処理を終了する。特にインデックス表示を終了すべき指示を受け付けていない場合、インデックス表示を終了しないと判定してＳ５０３へ進む。
【００４０】
Ｓ５０３では、ＣＰＵ１０１はスクロール制御処理を行う。この処理の詳細は図６、図７を用いて後述する。この処理には、スクロールすべき行数を決める処理、画像の表示順を決める処理、実際にスクロールを行う処理、スクロールの進み具合と表示準備処理の進み具合とから処理対象行（列）を決める処理等が含まれる。
【００４１】
Ｓ５０４では、ＣＰＵ１０１は現在表示対象となっている１画面に含まれる画像を全て表示したか否かを判定する。これはすなわち、表示用ＶＲＡＭにコピーすべき全ての画像の表示準備処理が終了したか否かの判定である。全て表示したと判定した場合はＳ５０２に処理を戻し、全て表示していないと判定した場合はＳ５０５へ進む。
【００４２】
Ｓ５０５では、ＣＰＵ１０１は表示準備処理を開始していた画像の表示準備処理が終了したか否かを判定する。表示準備処理が終了していないと判定した場合はＳ５０２に処理を戻し、表示準備処理が終了したと判定した場合はＳ５０６へ進む。
【００４３】
Ｓ５０６では、ＣＰＵ１０１は表示準備処理が終了した画像をバッファメモリに追加する。これにより、後述する図７のＳ７０８、Ｓ７０９で表示用ＶＲＡＭを更新した際にディスプレイ１１０に新たな画像が表示される。なお、スクロールが停止してアニメーションタイマーが稼動しなくなった場合は、未格納だった画像の表示準備処理が終了してバッファメモリに追加される度、アニメーションタイマーに関わらずバッファメモリから表示用ＶＲＡＭへのコピーを行うものとする。これにより、スクロール停止後に表示準備処理を終えて追加された画像は、順次ディスプレイ１１０に表示される。
【００４４】
Ｓ５０７では、ＣＰＵ１０１は、現時点での処理対象行、処理対象列の位置に配置すべき画像の表示準備処理を開始する。表示準備処理は画像処理部１２１等と協働して行われ、Ｓ５０７以降の処理と並行して行われる。すなわち、表示準備処理を終了していなくとも処理はＳ５０８へ進む。
【００４５】
Ｓ５０８では、ＣＰＵ１０１は新たな処理対象列を決定する処理対象列制御処理を行う。処理対象列制御処理の詳細については図８を用いて後述する。
【００４６】
＜スクロール制御処理（図６）＞
次に、図６に示すフローチャートを用いてスクロール制御処理の詳細を説明する。図６のスクロール制御処理は、前述した図５のＳ５０３の処理の詳細である。
【００４７】
Ｓ６０１では、ＣＰＵ１０１は、ユーザーからのスクロール指示の入力を受け付けたか否かを判定する。本実施の形態では、スクロールの指示の仕方に応じて上方向か下方向の任意の方向にスクロールを行うことができる。例えば入力部１０５に含まれる十字に配置された方向ボタンのうち上ボタンが押下されると、下方向へのスクロール（表示した画像の位置を下に移動するスクロール。現在表示している画像より上に配置された画像を閲覧するためのスクロールである）の指示を受けたものとする。逆に、下ボタンが押下されると、上方向へのスクロール（表示した画像の位置を上に移動するスクロール。現在表示している画像よりも下に配置された画像を閲覧するためのスクロールである）の指示を受けたものとする。タッチパネルでスクロール指示を行えるものであれば、タッチパネルを下から上になぞる操作で上方向へのスクロール、上から下になぞる操作で下方向へのスクロールの指示を受けたものとする。回転ホイールを回転する操作で、回転方向に応じたスクロールの指示を受け付けたものとしても良い。スクロール指示の入力を受け付けたと判定するとＳ６０２に進み、スクロール指示の入力を受け付けていないと判定するとＳ６１０に進む。
【００４８】
Ｓ６０２では、ＣＰＵ１０１は、Ｓ６０１で受け付けたスクロール指示が、下方向へのスクロールを指示したものか否かを判定する。下方向へのスクロールを指示したものであればＳ６０３へ進み、そうでない場合は上方向へのスクロールを指示したものであるのでＳ６０４へ進む。
【００４９】
Ｓ６０３では、ＣＰＵ１０１はＳ６０１で受け付けたスクロール指示が行われた操作の操作量に応じた分だけスクロールカウンターの値を減らす。たとえば、方向ボタンのうち上ボタンが一度押下された操作であればスクロールカウンターの値を１つ減らす。タッチパネルを上から下になぞる操作であれば、なぞられた距離に応じた数だけスクロールカウンターの値を減らす。これによりスクロールカウンターが負の値になると、後述の処理によりスクロールカウンターの絶対値が示す行数だけ下にスクロールする（表示されていた画像が下に移動し、スクロール前に画面上方に隠れて表示されていなかった行の画像が表示される）。Ｓ６０４では、ＣＰＵ１０１はＳ６０１で受け付けたスクロール指示が行われた操作の操作量に応じた分だけスクロールカウンターの値を増やす。これは、Ｓ６０３と上下逆の処理である。これによりスクロールカウンターが正の値になると、後述の処理によりスクロールカウンターが示す行数だけ上にスクロールする。（表示されていた画像が上に移動し、スクロール前に画面下方に隠れて表示されていなかった行の画像が表示される）。
【００５０】
Ｓ６０５では、ＣＰＵ１０１はスクロールカウンターの値がゼロ以下であるか否かを判定する。スクロールカウンターの値が負の値であればスクロール方向は下方向である。逆に、スクロールカウンターの値が正の値であればスクロール方向は上方向である。スクロールカウンターの値がゼロ以下であると判定すると、Ｓ６０６へ進み、スクロールカウンターの値が正の値であるとＳ６０７へ進む。
【００５１】
Ｓ６０６では、ＣＰＵ１０１は表示準備処理を施す優先順序である表示順を、ディスプレイ１１０に表示される行列の上の行から下の行という順序に設定し、メモリ１０３に記憶する。ここでは、下スクロールによって画像が移動する方向である下方向とは逆の方向である上の行の優先順序を高くしている。
【００５２】
Ｓ６０７では、ＣＰＵ１０１はＳ６０６とは逆に、表示順をディスプレイ１１０に表示される行列の下の行から上の行という順序に設定し、メモリ１０３に記憶する。ここでは、上スクロールによって画像が移動する方向である上方向とは逆の方向である下の行の優先順序を高くしている。
【００５３】
Ｓ６０８では、ＣＰＵ１０１はアニメーションタイマーが稼動中か否かを判定する。すなわち、スクロールの最中であるか否かの判定である。アニメーションタイマーが稼動中でない（スクロールの最中ではない）と判定した場合は、Ｓ６０９に進み、Ｓ６０１で受け付けたスクロール指示に従ったスクロールを実行すべくアニメーションタイマーをスタートさせ、図６の処理を抜けて図５のＳ５０４へ進む。一方、アニメーションタイマーが稼動中である（スクロールの最中である）と判定するとＳ６１０に進む。
【００５４】
Ｓ６１０では、ＣＰＵ１０１はスムーズスクロール処理を行う。スムーズスクロール処理は、アニメーションタイマーがタイムアウトするごとに行Ｏｆｆｓｅｔの分だけバッファメモリから表示用ＶＲＡＭに読み込む部分をずらすことで、滑らかなアニメーションのスクロールを実行する処理である。スムーズスクロール処理の詳細は図７を用いて後述する。
【００５５】
Ｓ６１１では、ＣＰＵ１０１は行Ｏｆｆｓｅｔがゼロであるか否かを判定する。行Ｏｆｆｓｅｔがゼロであると判定した場合はＳ６１２に進む。行Ｏｆｆｓｅｔがゼロである場合とは、インデックス表示で表示される画像群が、整数行分丁度と規定された位置に表示されている状態である。一方、行Ｏｆｆｓｅｔがゼロでないと判定した場合は図６の処理を抜けて図５のＳ５０４へ進む。行Ｏｆｆｓｅｔがゼロでない場合とは、インデックス表示で表示される画像群が、整数行分丁度の位置から行Ｏｆｆｓｅｔの分だけずれた位置に表示されている状態である。スクロールの途中の状態であり、アニメーションタイマーが稼動している。
【００５６】
Ｓ６１２では、ＣＰＵ１０１はスクロールカウンターがゼロであるか否かを判定する。これは、インデックス表示で表示される画像群の表示位置が整数分丁度の位置である場合に、さらにスクロールを行うべきか否かの判定である。スクロールカウンターがゼロであると判定した場合は、これ以上スクロールを行う必要がないので、図６の処理を抜けてＳ５０４へ進む。スクロールカウンターがゼロでないと判定した場合はＳ６１３へ進み、さらにもう１行スクロールするための処理を行う。
【００５７】
Ｓ６１３では、ＣＰＵ１０１はメモリ１０３に記憶された表示順が上の行から下の行という順序に設定されているか否かの判定を行う。上の行から下の行という順序に設定されている場合はＳ６１４へ進み、そうでない場合、すなわち下の行から上の行という順序に設定されている場合はＳ６１５へ進む。
【００５８】
Ｓ６１４では、下方向スクロールをもう一行分行うのに伴い、その時点で表示準備処理を行っていた行よりも、新たにスクロールで進入してくる行の表示準備処理を優先させるため、処理対象行と処理対象列を更新し、スクロールカウンターの値を１つ消費する。ＣＰＵ１０１は処理対象行をディスプレイ１１０に表示される画像のうち上端の行、すなわちバッファメモリから表示用ＶＲＡＭへのコピー範囲に含まれる画像のうち上端の行に設定し、メモリ１０３に記憶する。また、処理対象列を、行内で画像が表示されていない最も左の列に設定してメモリ１０３に記憶する。そして、スクロールカウンターを１つ消費すべく、スクロールカウンターの値を１増やす。
【００５９】
Ｓ６１５では、上方向スクロールをもう一行分行うのに伴い、その時点で表示準備処理を行っていた行よりも、新たにスクロールで進入してくる行の表示準備処理を優先させるため、処理対象行と処理対象列を更新し、スクロールカウンターの値を１つ消費する。ＣＰＵ１０１は処理対象行をディスプレイ１１０に表示される画像のうち下端の行、すなわちバッファメモリから表示用ＶＲＡＭへのコピー範囲に含まれる画像のうち下端の行に設定し、メモリ１０３に記憶する。また、処理対象列を、行内で画像が表示されていない最も右の列に設定してメモリ１０３に記憶する。そして、スクロールカウンターを１つ消費すべく、スクロールカウンターの値を１減らす。
【００６０】
Ｓ６１４あるいはＳ６１５の処理を終えると、図６の処理を抜け、図５のＳ５０４へ進む。
【００６１】
＜スムーズスクロール処理（図７）＞
次に、図７に示すフローチャートを用いてスムーズスクロール処理の詳細を説明する。図７のスムーズスクロール処理は、前述した図６のＳ６１０の処理の詳細である。
【００６２】
Ｓ７０１では、ＣＰＵ１０１はアニメーションタイマーが稼動中か否かを判定する。アニメーションタイマーが稼動中でないと判定すると、スクロールのアニメーション表示を行う必要がないので図７の処理を抜け、図６のＳ６１１へ進む。アニメーションタイマーが稼動中であると判定するとＳ７０２に進む。
【００６３】
Ｓ７０２では、ＣＰＵ１０１はアニメーションタイマーがタイムアウトしたか否かを判定する。アニメーションタイマーがタイムアウトしていないと判定した場合は、まだ表示を更新する必要がないので図７の処理を抜け、図６のＳ６１１に進む。アニメーションタイマーがタイムアウトしたと判定した場合は表示を更新する必要があるのでＳ７０３へ進む。
【００６４】
Ｓ７０３では、ＣＰＵ１０１は行Ｏｆｆｓｅｔがゼロであるか否かを判定する。行Ｏｆｆｓｅｔがゼロでない場合は、インデックス表示で表示される画像群が、整数行分丁度の位置から行Ｏｆｆｓｅｔの分だけずれた位置に表示されている状態であり、スクロールの途中の状態である。したがって行Ｏｆｆｓｅｔがゼロでないと判定した場合は、Ｓ７０５に進み、次の表示更新までの時間を計るためにアニメーションタイマーをリスタートする。一方、行Ｏｆｆｓｅｔがゼロである場合はＳ７０４へ進む。
【００６５】
Ｓ７０４では、ＣＰＵ１０１はスクロールカウンターがゼロであるか否かを判定する。行Ｏｆｆｓｅｔがゼロでスクロールカウンターもゼロである場合は、画像群は整数行分丁度の位置に表示されており、それ以上の行をスクロールする必要もないので、アニメーションのための表示更新は行わず、図７の処理を抜け、図６のＳ６１１に進む。一方、スクロールカウンターがゼロでない場合は、さらにスクロールをする必要があるので、Ｓ７０５へ進む。
【００６６】
Ｓ７０５では、ＣＰＵ１０１はアニメーションのために次に表示を更新するまでの時間を計るためにアニメーションタイマーをリスタートする。
【００６７】
Ｓ７０６では、ＣＰＵ１０１はメモリ１０３に記憶された表示順が上の行から下の行という順序に設定されているか否かの判定を行う。上の行から下の行という順序に設定されている場合はＳ７０７へ進み、そうでない場合、すなわち下の行から上の行という順序に設定されている場合はＳ７０８へ進む。なおここでの判定は、行Ｏｆｆｓｅｔをずらす方向をスクロール方向に合った方向とするために、スクロール方向を判定するためのステップである。したがって表示順の判定ではなく、スクロールカウンターがゼロ以下であるか否かの判定としてもよい。
【００６８】
Ｓ７０７では、下方向へのスクロールのアニメーションとして表示された画像群を一段階下へ移動するように、ＣＰＵ１０１は行Ｏｆｆｓｅｔを１つ減らす。そして、更新した行Ｏｆｆｓｅｔの値の分だけバッファメモリから表示用ＶＲＡＭへのコピー範囲をずらして表示用ＶＲＡＭを更新する。ここでは、上の行の方向へ一段階コピー範囲をずらす。１段階のずらし量は前述したとおり、［アニメーションにおける１回の表示更新での表示画像の表示画面上での移動量（ライン数）］＝［１行分表示するのに必要な表示用ＶＲＡＭ及びバッファメモリの縦ライン数］／［行Ｏｆｆｓｅｔの規定値］である。この処理により、ディスプレイ１１０における表示が更新される。
【００６９】
Ｓ７０８では、Ｓ７０７とは逆に、上方向へのスクロールのアニメーションとして表示された画像群を一段階上へ移動するように、ＣＰＵ１０１は行Ｏｆｆｓｅｔを１つ増やす。そして、更新した行Ｏｆｆｓｅｔの値の分だけバッファメモリから表示用ＶＲＡＭへのコピー範囲をずらして表示用ＶＲＡＭを更新する。ここでは、下の行の方向へ一段階コピー範囲をずらす。この処理により、ディスプレイ１１０における表示が更新される。
【００７０】
Ｓ７０９では、ＣＰＵ１０１は行Ｏｆｆｓｅｔの絶対値が規定値に達したか否かを判定する。規定値に達したと判定した場合はＳ７１０に進む。規定値に達した場合とは、丁度１行分のスクロールが行われた場合である。規定値に達していない場合は図７の処理を抜けて図６のＳ６１１に進む。
【００７１】
Ｓ７１０では、ＣＰＵ１０１は行Ｏｆｆｓｅｔをゼロに設定し、バッファメモリから表示用ＶＲＡＭへのコピー範囲のずらし量をゼロとする。同時にバッファメモリの画像をスクロール方向に合わせて１行繰り下げるか１行繰り上げるようにように更新する。ただし、図２（ｃ）で説明したとおり、更新に伴い新たにバッファメモリに取り込むべき画像は表示準備処理に時間を要するため、即時格納されるわけではなく、表示準備処理が終わったものから順次格納される。
【００７２】
Ｓ７１０の処理を終えると図７の処理を抜け図６のＳ６１１に進む。
【００７３】
＜処理対象列制御処理（図８）＞
次に、図８に示すフローチャートを用いて処理対象列制御処理の詳細を説明する。図８の処理対象列制御処理は、前述した図５のＳ５０８の処理の詳細である。
【００７４】
Ｓ８０１では、ＣＰＵ１０１はメモリ１０３に記憶された表示順が上の行から下の行という順序に設定されているか否かの判定を行う。上の行から下の行という順序に設定されている場合はＳ８０２へ進み、そうでない場合、すなわち下の行から上の行という順序に設定されている場合はＳ８０７へ進む。
【００７５】
Ｓ８０２では、ＣＰＵ１０１はメモリ１０３に記憶された処理対象列が右端となっているか否かを判定する。右端となっている場合はＳ８０５へ進み、そうでない場合はＳ８０３へ進む。
【００７６】
Ｓ８０３では、ＣＰＵ１０１は処理対象列を現在設定されている列から一つ右の列に設定し、メモリ１０３に記憶する。次にＳ８０４では、ＣＰＵ１０１は設定された処理対象列の位置にすでに画像が表示されているかを判定する。具体的には、設定された処理対象列のバッファメモリ上での位置に、既に表示準備処理を終えた画像が格納されているか否かを判定する。既に画像が表示されていると判定した場合はＳ８０５に進み、画像が表示されていないと判定した場合は、図８の処理を抜け図５のＳ５０２に進む。画像が表示されていないと判定した場合は、Ｓ８０３で設定した処理対象列がそのまま次回表示準備処理を行うべき列となる（ただしスクロールが先に進まなかった場合）。
【００７７】
Ｓ８０５は、Ｓ８０２で処理対象列が右端と判定された場合、あるいはＳ８０４で処理対象列に既に画像が表示されていると判定された場合のいずれかの場合に行う処理である。つまりその時点の処理対象行の画像についてすべて表示準備処理が終了しているため、処理対象行を更新するための処理を行う。Ｓ８０５では、ＣＰＵ１０１はメモリ１０３に記憶された処理対象行が表示用ＶＲＡＭへのコピー範囲のうちの下端となっているか否かを判定する。下端となっている場合は現在の画面の画像はすべて表示準備処理が終わっているため、スクロールが進むまではこれ以上表示準備処理を行うべき画像はない。そのため図８の処理を抜け、図５のＳ５０２に進む。下端となっていないと判定した場合はＳ８０６に進み、ＣＰＵ１０１は処理対象行を現在の処理対象行より１行下に設定してメモリ１０３に記憶する。そして処理対象列を処理対象行内で画像が表示されていない最も左の列に設定してメモリ１０３に記憶する。その後、図８の処理を抜け、図５のＳ５０２に進む。
【００７８】
一方、Ｓ８０７〜Ｓ８１１の処理は、Ｓ８０２〜８０６の処理とはスクロール方向が逆の場合の処理である。
【００７９】
Ｓ８０７では、ＣＰＵ１０１はメモリ１０３に記憶された処理対象列が左端となっているか否かを判定する。左端となっている場合はＳ８１０へ進み、そうでない場合はＳ８０８へ進む。
【００８０】
Ｓ８０８では、ＣＰＵ１０１は処理対象列を現在設定されている列から一つ左の列に設定し、メモリ１０３に記憶する。次にＳ８０９では、ＣＰＵ１０１は設定された処理対象列の位置にすでに画像が表示されているかを判定する。具体的には、設定された処理対象列のバッファメモリ上での位置に、既に表示準備処理を終えた画像が格納されているか否かを判定する。既に画像が表示されていると判定した場合はＳ８１０に進み、画像が表示されていないと判定した場合は、図８の処理を抜け図５のＳ５０２に進む。画像が表示されていないと判定した場合は、Ｓ８０８で設定した処理対象列がそのまま次回表示準備処理を行うべき列となる（ただしスクロールが先に進まなかった場合）。
【００８１】
Ｓ８１０は、Ｓ８０７で処理対象列が左端と判定された場合、あるいはＳ８０９で処理対象列に既に画像が表示されていると判定された場合のいずれかの場合に行う処理である。つまりその時点の処理対象行の画像についてすべて表示準備処理が終了しているため、処理対象行を更新するための処理を行う。Ｓ８１０では、ＣＰＵ１０１はメモリ１０３に記憶された処理対象行が表示用ＶＲＡＭへのコピー範囲のうちの上端となっているか否かを判定する。上端となっている場合は現在の画面の画像はすべて表示準備処理が終わっているため、スクロールが進むまではこれ以上表示準備処理を行うべき画像はない。そのため図８の処理を抜け、図５のＳ５０２に進む。上端となっていないと判定した場合はＳ８１１に進み、ＣＰＵ１０１は処理対象行を現在の処理対象行より１行上に設定してメモリ１０３に記憶する。そして処理対象列を処理対象行内で画像が表示されていない最も右の列に設定してメモリ１０３に記憶する。その後、図８の処理を抜け、図５のＳ５０２に進む。
【００８２】
なお、上述の各フローチャートには図示していないが、入力部１０５を介してユーザーからのスクロールの停止指示を受け付けてもよい。たとえば図６のＳ６０１の前に、ユーザーからのスクロール停止指示を受け付けたか否かの判定ステップを設ける。スクロール停止指示を受け付けていない場合にはＳ６０１に進み、スクロール停止指示を受け付けた場合にはスクロールカウンターをゼロにセットしてからＳ６０１に進む。このようにすることで、ユーザーはスクロール中に表示されている画像を見て任意のタイミングでスクロールを停止させることができる。
【００８３】
また、上述の各フローチャートでは１行未満の移動量で表示を更新するスムーズなアニメーションによってスクロールを実現する例を説明したが、これほどスムーズにすることは必須ではなく、一行単位のスクロールとしても構わない。その場合、行Ｏｆｆｓｅｔの規定値を１とすれば良い。
【００８４】
以上説明した図５〜図８の処理によって、図２〜図４を用いて説明した動作を実現する。図５〜図８の処理によれば、図２〜図４でも説明したとおり、ある時点である行に配置される画像の表示準備処理を行っている途中で、スクロールによって新たな行が表示される場合は、新たな行の画像の表示準備処理を優先して行う。これによって、スクロール速度が上がっても１画面に１枚も画像が表示されていないという状況になる可能性を低減し、スクロール中にもより多くの画像を表示することができる。また、同一の行内であれば、スクロール方向に応じて、スクロール前に表示されていた画像からより配置順の遠い画像を優先して表示準備処理を行う。これによって、スクロール中に現在どの範囲の画像までが表示画面に表示されるのかをユーザーがすばやく確認することが可能となる。したがってスクロールの指示操作を行っているユーザーにとってはどこでスクロールを停止させるべきかの判断をしやすい。また、スクロールの最中により多くの画像を表示できる分、まだ表示されていない画像の数が少ない。したがってスクロールを停止してからまだ表示していない画像をすべて表示するまでの処理時間が少なくなる。すなわち、スクロール停止後に全画像が表示されるまでにユーザーが待つ時間が少なくなる。
【００８５】
また、上記では上下方向へのスクロールを行う例を説明したが、もちろん左右方向へのスクロールを行うものにも適用可能である。さらに、斜め方向を含む任意の方向にスクロール可能な場合であっても適用可能である。この場合、スクロールによる表示範囲の変更前に表示範囲に含まれていた画像よりも、スクロールにより表示範囲に新たに含まれる画像を優先して表示するように処理を行うことにより上述の実施の形態と同様の効果を奏する。
【００８６】
なお、上述のバッファメモリにはディスプレイ１１０に表示される行数よりも上下に１行分多い格納領域を用意したが、さらに多くの行の予備格納領域を設けても良い。その場合、上述の図５ステップＳ５０４にて、ＣＰＵ１０１が全画像の表示を完了したと判断した後、引き続き予備の領域に格納する分の画像の表示準備処理を継続する。バッファメモリに、ディスプレイ１１０に表示される行数よりも上下に３行分多い格納領域を用意した例を図９に示す。行Ｏｆｆｓｅｔがゼロの場合に表示用ＶＲＡＭ上にコピーされる範囲を可視格納領域、それよりも上に３行予備に用意した格納領域を上部予備格納領域、下に３行予備に用意した格納領域を下部予備格納領域と称する。可視格納領域に格納する画像については、図５〜図８で説明した順番で表示準備処理を行って画像を格納する。その後、そのまま同じ方向へスクロールした場合に新たに表示されることになる行の画像を優先して、表示準備処理を行って予備格納領域に格納する。たとえば、上方向へのスクロールを行っていた場合にはディスプレイ１１０上では下方向から画像が進入してくるアニメーションとなり、すなわち下の行の画像が新たに表示されることになる。そのため、可視格納領域に表示準備処理を終えた画像を格納し終えた後は、上部予備格納領域に格納される画像よりも先に、まず下部予備格納領域に対して画像を追加する。逆に、下方向へのスクロールを行っていた場合には、下部予備格納領域よりも先に、上部予備格納領域に対して画像を追加する。この事により、スクロール開始した直後の画像表示の戸切れを更に軽減する事が可能となる。ここでは予備格納領域のサイズを便宜的に可視格納領域の半分としたが、システムのメモリ状況に合わせ、そのサイズは問わない。
【００８７】
なお、インデックス表示で表示された複数の画像を、スクロールを伴わずに切り替える機能を追加してもよい。例えば、１画面に表示されていた１行目から６行目の画像を、スクロールを伴わずに７行目から１２行目の画像に切り替えられる機能があっても良い。その場合、スクロール時とは異なる順で表示準備処理を行っても良い。例えば、スクロールを伴わない画像切り替え時は、切り替え前に表示していた画像に配置順が近い画像を優先して表示準備処理を行うことにすれば、切り替えがその方向に行われたかを判別しやすくなる。例えば、１行目から６行目の画像を、スクロールを伴わずに７行目から１２行目の画像に切り替えた際には７行目から表示準備処理を開始する。また、１行目から６行目の画像を、−５行目から０行目の画像に切り替えた際には０行目から表示準備処理を開始する。一方、インデックス表示で表示された複数の画像を、スクロールを伴わずに切り替えた場合にも、スクロール時と同様に、それまで表示されていた画像から配置順が遠い画像から先に表示準備処理を行うものとしてもよい。このようにすれば、切り替えた後の画像がどの範囲の画像までを含むのかをすばやく確認することが可能となり、さらに切り替えを行うべきかの判断をしやすくなる。
【００８８】
また、インデックス表示における表示枚数は上述の例に限らない。一度に表示する枚数を切り替えられるようにしてもよい。例えば図２〜図４の例では６行７列を表示するものとしたが、３行３列や、１０行１０列といった他の枚数に切り替えられるようにしても良い。他の枚数への切り替えの際は、スクロール時とは異なる順で表示準備処理を行っても良い。例えば、枚数切り替え時は、それまでに選択していた画像に配置順が近い画像を優先して表示準備処理を行うことにすれば、切り替え前に選択していた画像を切り替え後も見失わずに判別することができる。
【００８９】
さらに、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。上述の各フローチャートの処理はＣＰＵ１０１が行うものとして説明したが、それに限らず、複数のハードウェアが処理を分担することで行っても良い。
【００９０】
また、上述した実施形態においては、本発明をデジタルカメラに適用した場合を例にして説明したが、これはこの例に限定されない。すなわち、本発明はパーソナルコンピュータやＰＤＡ、携帯電話端末や携帯型画像ビューワ、ディスプレイ付きプリンタ装置、デジタルフォトフレーム、ゲーム機、音楽プレーヤーなど、複数の画像をスクロール可能な表示制御装置であれば適用可能である。
【００９１】
（他の実施形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2011164129.tif 000003
【図２】
2011164129.tif 000004
【図３】
2011164129.tif 000005
【図４】
2011164129.tif 000006
【図５】
2011164129.tif 000007
【図６】
2011164129.tif 000008
【図７】
2011164129.tif 000009
【図８】
2011164129.tif 000010
【図９】
2011164129.tif 000011