以下に、本発明を実施するための形態について詳細に説明する。尚、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。また、後述する各実施形態の一部を適宜組み合わせて構成しても良い。
[実施形態1]以下、本発明の画像表示装置を、例えば、デジタルカメラ等の撮像装置から転送された画像データを表示するパーソナルコンピュータ(PC)等の情報処理装置に適用した実施形態について説明する。
<装置構成>図1を参照して、本発明に係る実施形態の情報処理装置の構成及び機能の概略について説明する。
本実施形態の情報処理装置は、例えば、ネットワークを介してサーバと通信するクライアントPCであり、PC上で動作する画像表示処理のアプリケーションが撮像装置やサーバから取り込んだ画像データを、ユーザが指定した分類条件とソート条件に応じてグルーピングを行うか否かを切り替えることにより一覧表示する。
図1において、101は装置全体の制御を司るCPUである。102はCPU101の動作処理手順(例えば、コンピュータの立ち上げ処理や基本入出力処理等のプログラム)を記憶しているROMである。103はRAMであり、CPU101のメインメモリとして機能する。RAM103には、CPU101が実行する後述する各種処理を実現するための制御プログラム等が不揮発性メモリ等から読み出される。また、RAM103はCPU101が各種処理を実行する際のワークエリアを提供する。
105はハードディスクドライブ(以下、HDD)、106はDVDドライブ(以下、DVDD)を示し、それぞれはアプリケーションプログラムやデータ、ライブラリなどの保存及び読み込み用に使用される。また、DVDDの代わりに、あるいは追加してCD−ROM、MO等の光(磁気)ディスクドライブや、テープストリーマ、DDSなどの磁気テープドライブ等を設けてもよい。
107はキーボードやポインティングデバイス等のユーザ操作を受け付ける入力装置である。104はディスプレイであり、CPU101により表示が制御されて後述する各種の情報を出力する。
108はメモリカード等の記憶媒体が着脱可能なメディアドライブであり、撮像装置で撮影・記憶された動画や静止画等の画像データを読み出すことが可能である。109は通信インターフェース(I/F)であり、有線または無線の通信回線111を介してインターネット等のコンピュータネットワーク112と接続可能である。本実施形態の情報処理装置は、ネットワークI/F109及び通信回線111によりコンピュータネットワーク112を介して通信可能な外部機器から画像データ等を送受信する。110は上述した各ブロック間を接続するシステムバス(アドレスバス、データバスおよび制御バスからなる)である。
なお、本実施形態の表示処理対象である画像データは、HDD105に保存されているものとする。
[処理対象データ]本実施形態で表示処理対象とするデータは、撮像装置から取り込んだ静止画データや動画データである。
静止画データおよび動画データは、ファイルのヘッダもしくは関連付けられたファイルに属性情報と一覧表示用の縮小画像データ(サムネイルデータ)を保持する。属性情報とは、撮影日時や撮影場所その他の撮影条件に関する情報や画像データの読み出しや再生に必要な情報である。
静止画データの属性情報とは、撮影日時、撮影場所、レーティング、ファイル種別、撮影装置の識別子、撮影装置の機種情報、撮影装置の所有者名などである。本実施形態においては、撮影場所はGPSを用いて撮像装置が緯度経度の情報を取得し、サーバと通信して地名の情報へと変換したものとする。レーティングとは、ユーザの評価を番号で表現したものであり、画像データ毎に評価値が付与される。例えば、撮像装置により撮影された画像データの場合にはレーティングを記憶する領域に0という値が記録される。レーティングが0の場合には、未評価という意味でレーティングなしという扱いとする。
動画データにおける属性情報とは、前記静止画データの属性情報に加え、記録時間、記録開始時刻、記録終了時刻、1秒間あたりに記録したフレーム数、1秒間あたりに再生するフレーム数、音声に関する情報、などである。
以下の説明において、静止画データや動画データを画像または画像データと総称して使用するものとする。
本実施形態において、ファイル種別には、画像データの特性を示す情報が記録されているものとする。
本実施形態の情報処理装置は、CPU101が、記憶媒体上の画像データの所在をフォルダやファイル名といったファイル情報を用いて管理している。
本実施形態では、前述の属性情報やファイル情報を用いて、CPU101が後述する画像表示処理を実行する。
[データベース]図2を参照して、本実施形態の情報処理装置が画像データの管理のために使用するデータベースの構成について説明する。
本実施形態において、CPU101は初回起動時にHDD105内に保存されている全ての画像データを読み込み、画像データと属性情報およびファイル情報を関連付けて、図2に示すデータベース(以下、DB)を生成する。そして、CPU101は、HDD105に上記DBを保存する。後述する検索処理やソート処理はCPU101が図2に示すDBを使用することにより実現する。
201は、DB内のデータを一意に特定するためのINDEXを記憶する列である。CPU101がDBへデータを登録する際に画像データ毎に1からインクリメントした値を記憶する。
202はファイル名、203はフォルダパス、204はファイル拡張子を記憶する列である。いずれも各画像データのファイル情報からCPU101が読み込み記憶する。
205は撮影日時、206はレーティング、207は撮影場所、208はファイル種別、の情報を記憶する列である。
撮影日時205、撮影場所207、ファイル種別208は、各画像データの属性情報からCPU101が読み込み、後述する処理のために階層構造を示す情報へと変換して記憶する。本実施形態において、情報の包含関係が変化する階層の変わり目を、¥という文字を用いて示す。撮影日時205は、CPU101が属性情報から取得した撮影日時の情報を、年、月、日、時、秒という階層構造に分解して階層別に¥で区切って記憶する。
撮影場所207は、CPU101が属性情報から取得した撮影場所を、国、県、市、区という階層構造に分解して階層別に¥で区切って記憶する。
ファイル種別208は、CPU101が属性情報から取得したファイルの特性を、階層構造に分解して階層別に¥で区切って記憶する。JPEG圧縮された画像である場合には、静止画¥JPEG画像とする。ファイル特性がMOVフォーマットで、1秒間あたりに記録したフレーム数と1秒間あたりに再生するフレーム数、が同数の場合には、動画¥通常動画とする。ファイル特性がMOVフォーマットで、1秒間あたりに記録したフレーム数が、1秒間あたりに再生するフレーム数、よりも多い場合には、動画¥ハイスピード動画とする。ハイスピード動画とは、人の目では知覚できないほど瞬間的な事象を高いフレームレートで記録し、人の目で知覚できるほどゆっくりと再生する動画のことである。風船の割れる様子を記録する場合などに良く利用される。ファイル特性がMOVフォーマットで、1秒間あたりに記録したフレーム数が、1秒間あたりに再生するフレーム数よりも少ない場合には、動画¥インターバル動画とする。人の目では知覚できないほどゆっくりと変化する事象を低いフレームレートで記録し、変化が知覚できるように現実の時間よりも速いスピードで再生する動画のことである。植物の成長を記録する場合などによく利用される。
レーティング206は、各画像データの属性情報からCPU101が読み込み、その値を記憶する。
209は縮小画像データであり、一覧表示用の画像のバイナリデータを記憶する列である。いずれも各画像データの縮小画像データをCPU101が読み込み記憶する。
211、212、213は、それぞれ、1つの画像データに対応付けられた情報を記憶する行の一例である。
[UI画面]図3を参照して、本実施形態の画像表示処理のアプリケーションがディスプレイ104に表示するUI画面の構成及び機能について説明する。
UI画面は、大まかに、フォルダや年月日を階層的にツリーで表示するエリア301と画像一覧表示用のエリア302で構成されている。以下では、301をツリービューエリア、302をサムネイルエリアと称する。
図3において、ツリービューエリア301は、フォルダツリー303と撮影年月日ツリー304で構成される。フォルダツリー303では、フォルダを階層的なツリーの形にして表示する。
ここで、階層的なツリーの形にする方法について説明する。CPU101が、DB内のフォルダパス203の情報を用いて、画像データが存在するフォルダを文字列順に重複がないように列挙する。図2のDBのフォルダパス情報を列挙した結果は、以下となる。
C:¥Picture¥家
C:¥Picture¥保育園
C:¥Picture¥友達
本実施形態において、¥が階層の区切りなので、第1階層は、C:である。第2階層は、Pictureである。第3階層は、家、保育園、もしくは、友達となる。このようにして、階層的なツリーの形にする。
撮影年月日ツリー304もフォルダツリー303と同様の方法で、撮影年月日を階層的なツリーの形にして表示する。
311は、フォルダツリー303の表示・非表示を切り替えるフォルダツリートグルボタンである。ユーザがフォルダツリートグルボタン311を押下すると、CPU101は、ユーザがフォルダツリーの表示・非表示を切り替える操作をしたと判定する。そして、フォルダツリー303が表示されている場合には、右向きの矢印に変更し非表示状態にする。フォルダツリー303が非表示の場合には、下向きの矢印に変更し表示状態にする。
312は、撮影年月日ツリー304の表示・非表示を切り替える撮影年月日ツリートグルボタンである。撮影年月日ツリートグルボタン312は、フォルダツリートグルボタン311と同様の動作をし、撮影年月日ツリー304の表示・非表示を切り替える。
305は、フォーカス枠である。フォルダツリー303もしくは撮影年月日ツリー304内のいずれかのフォルダ名か年月日の文字列の上でユーザがマウスの左ボタンを押下した場合、CPU101は、ユーザが選択したと判定し、フォルダ名もしくは年月日を囲むフォーカス枠305を表示する。以下では、ツリービューエリア301でユーザが選択したフォルダや撮影年月日の情報を、分類条件と称する。
310は、下位の階層を表示するか否かを切り替える矢印トグルボタンである。ユーザが矢印トグルボタン310上でマウスの左ボタンを押下すると、CPU101は、ユーザが下位の階層を表示するか否かの切り替えを指示したと判定する。そして、下位の階層が非表示の状態で左ボタンが押下されると、下向きの矢印に変更し、下位の階層を表示する。下位の階層が表示されている状態で、左ボタンが押下されると、右向きの矢印に変更し、下位の階層を非表示にする。
307は、個々の画像データに対応した画像のコマである。画像のコマに、個々の画像データに対応した縮小画像データ、撮影日時、ファイル名を、CPU101がDBから読み込み表示する。
サムネイルエリア302は、ユーザがツリービューエリア301で選択したフォルダもしくは撮影年月日に合致する画像データのコマ307を表示する領域である。CPU101がDBから合致する画像データを読み込み表示する。更に、後述するグルーピングするか否かの判定結果に応じて、画像データをグルーピングして表示する。
314は、分類条件を示す分類条件表示バーである。フォーカス枠305内の文字列をバーの上に表示する。
308は、グループの境界を示すグループ境界バーである。画像データをグルーピングした際のグループ名となる文字列をバーの上に表示する。
306は、垂直方向のスクロールバーであり、表示領域を垂直方向に移動する操作部材である。分類条件に合致する画像データがサムネイルエリア302に表示しきれない場合、表示している割合をツマミで示す。そのつまみをポインティングデバイスなどでユーザがドラッグして移動させると、CPU101はサムネイルエリア302内の表示領域の移動操作があったと判定し、垂直方向に移動する。
313は、画像データの並び順を指定する並び順リストボックスである。並び順リストボックス313の下矢印ボタンをユーザが押下すると、CPU101はユーザから並び順の変更指示があったものと判定し、リストボックス313に並び順の選択候補を表示する。本実施形態においては、ファイル名順と撮影年月日順が列挙されるものとする。ユーザがファイル名順を押下した場合には、CPU101は、ファイル名順が選択されたと判定し、画像データをファイル名順に並び替えて、サムネイルエリア302に表示する。ユーザが撮影日順を押下した場合には、CPU101は、撮影日時順が選択されたと判定し、画像データを撮影日時順に並び替えて、サムネイルエリア302に表示する。以下では、並び順に関しての条件をソート条件と称する。
309は、終了ボタンである。ユーザがポインティングデバイス等で、終了ボタン309を押下した場合、CPU101は、ユーザが終了指示をしたものとして、後述する画像表示処理を終了する。
[分類条件とソート条件に応じたグルーピングの切り替え]図4乃至図7を参照して、本実施形態の画像表示処理について説明する。
まず、図5を参照して、本実施形態の画像表示処理における分類条件の種類とソート条件との対応関係について説明する。図5に例示するデータテーブルは、CPU101が作成し、HDD105に記憶される。以下では、図5のデータテーブルを分類条件ソート条件対応テーブルと称する。
501は、分類条件の種類を記憶する列である。
502は、分類条件の種類に対応したソート条件を記憶する列である。
503から507までは、各分類条件種類と対応するソート条件を示す行である。503、504の行の情報の使用方法については後述する。505から507までの行の情報の使用方法については、実施形態2にて後述する。
次に、図7を参照して、本実施形態の画像表示処理における分類条件とグルーピング情報との対応関係について説明する。図7に例示するデータテーブルは、CPU101が作成し、HDD105に記憶する。以下では、図7のデータテーブルを分類条件グルーピング情報対応テーブルと称する。
701は、分類条件の詳細情報を記憶する列である。
702は、分類条件の情報に対応したグルーピング情報を記憶する列である。
703から710までは、各分類条件と対応するグルーピング情報を示す行である。703から706までの行の情報の使用方法については、後述する。707から710までの行の情報の使用方法については、実施形態2にて後述する。
ここで、図4と図5と図7を参照して、本実施形態の画像表示処理において分類条件とソート条件に応じてグルーピングを行うか否かを切り替える処理について説明する。なお、図4の処理はCPU101がROM102に格納されたアプリケーションプログラムをRAM103のワークエリアに展開して実行することにより実現される。
図4において、S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザの操作とは、ツリービューエリア301における分類条件の選択の切り替えや、並び順リストボックス313におけるソート条件の変更である。ユーザ操作があったと判定した場合にはS401へ進み、ユーザ操作がないと判定した場合にはS400に戻る。なお、ここで判定されるユーザ操作には、表示すべき画像を特定するために、ユーザがフォルダツリー303の任意のフォルダを選択したり、撮影年月日ツリー304の任意の撮影年月日を選択したりする操作も含まれる。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの終了指示とは、終了ボタン309の押下である。終了指示であると判定した場合には、本処理を終了し、終了指示ではない場合にはS402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザがツリービューエリア301においてフォルダツリー303の任意のフォルダを選択している場合には、分類条件の種類がフォルダであると判定する。ここで選択されていたフォルダに格納されている複数の画像が、サムネイルエリア302へ表示される対象として特定される。また、ユーザがツリービューエリア301において撮影年月日ツリー304の任意の撮影年月日を選択している場合には、CPU101は分類条件の種類が年月日であると判定する。ここで選択されていた撮影年月日よりも下位の階層に分類されている複数の画像が、サムネイルエリア302へ表示される対象として特定される。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルからRAM103へ読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313にて指定されたソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。判定の結果、一致した場合にはS405へ進み、一致していない場合にはS408へ進む。
S405では、CPU101は、分類条件の詳細情報を判定し、判定した結果をRAM103に記憶する。ユーザがツリービューエリア301においてフォルダツリー303の任意のフォルダを選択している場合には、CPU101は分類条件の詳細情報はフォルダと判定する。ユーザがツリービューエリア301において撮影年月日ツリー304の任意の年を選択している場合には、CPU101は分類条件の詳細情報は年月日の年と判定する。ユーザが撮影年月日ツリー304の任意の月を選択している場合には、CPU101は分類条件の詳細情報は年月日の月と判定する。ユーザが撮影年月日ツリー304の任意の日を選択している場合には、CPU101は分類条件の詳細情報は年月日の日と判定する。
S406では、CPU101は、S405にて記憶した分類条件が、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルに存在するか否か判定する。判定の結果、存在する場合にはS407へ進み、存在しない場合にはS408へ進む。
S407では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングして表示する。グルーピングして表示する方法については、図6にて後述する。
S408では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングせずに表示する。グルーピングせずに表示する方法については、図8にて後述する。
[グルーピングして表示する方法]図6及び図7を参照して、図4のS407のグルーピングして表示する方法について説明する。
図6において、S601では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して、取得する。例えば、ユーザが表示すべき画像を特定するために、C:¥Picturesフォルダを選択した場合には、DBのフォルダパス203に記憶された情報について、C:¥Pictures¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。例えば、ユーザが表示すべき画像を特定するために、2009年12月を選択した場合には、DBの撮影日時に記憶された情報について、2009¥12¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S602では、CPU101は、S405にてRAM103に記憶した分類条件の詳細情報に対応するグルーピング情報をHDD105に記憶された図7の分類条件グルーピング情報対応テーブルから読み込む。
S603では、CPU101は、S601でRAM103に保持した画像データに対して、グルーピング情報に基づいてさらにグルーピングを行う。グルーピング情報が月の場合には、撮影月が同じ画像データが同じグループになるように、グルーピングする。グルーピング情報が表示対象となる画像ファイルを直下に含むフォルダである場合には、画像データのファイルパスが同じ画像データが同じグループになるように、グルーピングする。そして、表示対象となる画像データについてグループと関連付けてRAM103に保持する。
S604では、CPU101は、S603にて保持した複数のグループについて、ソート条件に応じた並び替えを行う。ソート条件が撮影日時で、撮影月のグループが複数存在する場合には、古い月から新しい月になるように並び替えを行う。ソート条件がファイル名で、フォルダのグループが複数存在する場合には、フォルダパスが文字列順になるように並び替えを行う。
S605では、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。分類条件の文字列とはフォーカス枠305内の文字列と同じである。
S606では、CPU101は、カウンタiに0を代入する。カウンタiは対象となる個々のグループについて後述するS607からS614までの一連の処理をCPU101が実行するためのカウンタである。
S607では、CPU101は、カウンタiが対象とするグループの数より少ないか否かを判定する。
S607では、CPU101がカウンタiが対象となるグループ数よりも少ないと判定した場合にはS608へ進む。
S607では、CPU101がカウンタiが対象となるグループ数以上と判定した場合には、対象となるグループに対しての一連の処理が完了したものと判定して処理を終了する。
S608では、CPU101は、i番目のグループに含まれる画像データについて、ソート条件に応じた並び替えを行う。ソート条件が撮影日時だった場合には、撮影日時が古い画像データから新しい画像データになるように並び替えを行う。ソート条件がファイル名だった場合には、画像データのファイル名が文字列順になるように並び替えを行う。もし、S608では、ソート条件に応じた並び替えを行う場合に、順番が決められない画像データが複数存在する場合には、前述の複数の画像データに対してのみ撮影日時順とする。具体的には、ソート条件がファイル名順で、同じファイル名の画像データが複数存在する場合には、同じファイル名の画像データの撮影日時を比較し、古い撮影日時の方を先に表示する。撮影日時が、秒まで一致することはほとんどないからである。もし、撮影日時も一致してしまった場合には、HDD105に記録されている順番通りに表示するものとする。
S609では、CPU101は、i番目のグループ名を、図3のグループ境界バー308上に表示する。グループ名は、グルーピング情報に対応したDB内の情報を用いる。グルーピング情報が月の場合には、撮影月をグループ名として表示する。グルーピング情報が対象となる画像ファイルを直下に含むフォルダである場合には、画像ファイルが含まれるフォルダの名前をグループ名として表示する。グルーピング情報が日の場合、時の場合、も同様である。時とは、時分秒の時を示す。
S610では、CPU101は、カウンタkに0を代入する。カウンタkは対象となる個々の画像データについて後述するS611からS613までの一連の処理をCPU101が実行するためのカウンタである。
S611では、CPU101は、カウンタkが対象とする画像データの数より少ないか否かを判定する。
S611では、CPU101は、カウンタkが対象となる画像データ数よりも少ないと判定した場合には、S612へ進む。
S611では、CPU101は、カウンタkが対象となる画像データ数以上と判定した場合には、対象となる画像データに対しての一連の処理が完了したものと判定してS614へ進む。
S612では、CPU101は、i番目のグループのk番目の画像データに対応する縮小画像を表示する。前述の縮小画像データは、S601にて画像データに関連付けて読み込んだ縮小画像データ209である。
S613では、CPU101は、カウンタkをインクリメントし、S611へと戻る。
S614では、CPU101は、カウンタiをインクリメントし、S607へと戻る。
[グルーピングせずに表示する方法]図8を参照して、図4のS408のグルーピングせずに表示する方法について説明する。なお、図8の説明において、図6と同様の処理には、図6と同一の符号を付して説明を省略する。
図8において、S801では、CPU101は、図6のS601と同様に、HDD105に記憶されたDBから、ユーザが表示すべき画像を特定するための操作に基づき、表示対象の複数の画像データを検索して取得する。
S802では、CPU101は、図6のS606と同様に、分類条件表示バー314に分類条件の文字列を表示する。
S803では、CPU101は、図6のS608と同様に、S801にて取得した画像データについて、ソート条件に応じた並び替えを行う。
S804では、CPU101は、画像データに対応する縮小画像を表示する。前述の縮小画像データは、S801にて画像データに関連付けて読み込んだ縮小画像データ209である。
[分類条件がフォルダ/ソート条件がファイル名の場合にグルーピングして表示する方法]
ユーザが指定した分類条件が任意のフォルダで、ソート条件がファイル名の場合の画像表示方法について、図2、図4、図6、図7を参照して説明する。説明に際して、ユーザがフォルダツリー301において、Picturesフォルダを選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザがPicturesフォルダを選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は分類条件の選択なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザがフォルダツリー303のPicturesフォルダを選択しているので、CPU101は分類条件の種類はフォルダと判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルから読み込む。分類条件の種類はフォルダなので、503の行を参照して、ファイル名をソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。ユーザが指定したソート条件はファイル名なので、一致したと判定して、S405へ進む。
S405では、CPU101は、分類条件の詳細情報を判定し、判定した結果をRAM103に記憶する。ユーザがフォルダツリー303のPicturesフォルダを選択しているので、CPU101は分類条件の詳細情報はフォルダと判定する。
S406では、CPU101は、S405にて記憶した分類条件がHDD105に記憶された図7の分類条件グルーピング情報対応テーブルに存在するか否か判定する。分類条件グルーピング情報対応テーブルの分類条件にフォルダは存在するので、S407へ進む。
S407では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングして表示する。S407の処理の詳細を図6を参照して説明する。
S601では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件がC:¥Picturesフォルダなので、DBのフォルダパス203に記憶された情報について、C:¥Pictures¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S602では、CPU101は、S405にて記憶した分類条件の詳細情報に対応するグルーピング情報を、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルから読み込む。S405にて記憶した分類条件の詳細情報はフォルダなので、706の行を参照して、グルーピング情報を読み込む。グルーピング情報は、対象となる画像ファイルを直下に含むフォルダとなる。
S603では、CPU101は、S601でRAM103に保持した画像データに対して、グルーピング情報に基づいてグルーピングを行う。グルーピング情報は、対象となる画像ファイルを直下に含むフォルダなので、画像データのファイルパスが同じ画像データが同じグループになるように、グルーピングする。そして、対象となる画像データについてグループと関連付けてRAM103に保持する。本実施形態においては、グループ数は3つで、1つ目と2つ目のグループに含まれる画像データは4枚、3つ目のグループに含まれる画像データは7枚、とする。
S604では、CPU101は、S603にて保持した複数のグループについて、ソート条件に応じた並び替えを行う。ソート条件はファイル名なので、フォルダパスが文字列順になるように並び替えを行う。
S605では、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。分類条件の文字列とはフォーカス枠305内の文字列と同じである。ユーザが選択した分類条件はPicturesフォルダなので、Picturesを表示する。
S606では、CPU101は、カウンタiに0を代入する。
S607では、CPU101は、カウンタiが対象とするグループの数より少ないか否かを判定する。カウンタは0で、グループ数は3なので、グループ数よりも少ないと判定し、S608へ進む。
S608では、CPU101は、0番目のグループに含まれる画像データについて、ソート条件に応じた並び替えを行う。ソート条件はファイル名なので、画像データのファイル名が文字列順になるように並び替えを行う。
S609では、CPU101は、0番目のグループ名をグループ境界バー308上に表示する。グループ名は、グルーピング情報に対応したDB内の情報を用いる。グルーピング情報は対象となる画像ファイルを直下に含むフォルダなので、画像ファイルが含まれるフォルダの名前をグループ名として表示する。対象となるデータが図2の211に示すデータである場合には、AAA_043.jpgが含まれるフォルダは家なので、グループ名は家となる。
S610では、CPU101は、カウンタkに0を代入する。
S611では、CPU101は、カウンタkが対象とする画像データの数より少ないか否かを判定する。カウンタkは0で、1番目のグループの画像データ数は4なので、対象となる画像データ数よりも少ないと判定した場合にはS612へ進む。
S612では、CPU101は、0番目のグループの0番目の画像データに対応する縮小画像を表示する。
S613では、CPU101は、カウンタkをインクリメントし、S611へと戻る。
S614では、CPU101は、カウンタiをインクリメントし、S607へと戻る。
前述のグループ毎の処理を対象のグループ数分、前述の画像データ毎の処理を対象の画像数分、繰り返し、表示処理を終了する。
図3は、ユーザが表示すべき画像を特定するために、フォルダツリー303のPicturesを選択した場合の表示処理結果のUI画面を例示している。
[分類条件がフォルダ/ソート条件が撮影日時の場合にグルーピングせずに表示する方法]
ユーザが任意のフォルダの中で、所望の撮影年月日の画像データを探す場合、任意のフォルダを選択して、並び替えを撮影日時に変更するという操作を一般的によく行う。検索機能がある情報処理装置では、特定のフォルダと撮影年月日といった条件をそれぞれ入力して、アンド検索するという操作が行われることもある。しかし、複数の条件を、キーボードなどの入力装置から入力するのは、手間であるため、前述の通り、フォルダの選択と並び替えの変更ということが一般的によく行われる。
ユーザが任意のフォルダを選択して、並び替えを撮影日時順に変更した際の画像表示方法について、図4及び図8を参照して説明する。説明に際して、ユーザがフォルダツリー301において、Picturesフォルダを選択した状態で、並び順リストボックス313において、撮影日時順を選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザが撮影日時順を選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は、ソート条件の変更なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザがフォルダツリー303のPicturesフォルダを選択しているので、CPU101は分類条件の種類はフォルダと判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルからRAM103へ読み込む。分類条件の種類はフォルダなので、503の行を参照して、ファイル名をソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。並び順リストボックス313で指定したソート条件は撮影日時順、S403にて読み込んだソート条件はファイル名なので、一致していないと判定し、S408へ進む。
S408では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングせずに表示する。S408の処理の詳細を図8を参照して説明する。
S801では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件がC:¥Picturesフォルダなので、DBのフォルダパス203に記憶された情報について、C:¥Pictures¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S802では、CPU101は、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。ユーザが選択した分類条件はPicturesフォルダなので、Picturesを表示する。
S803では、CPU101は、S801にて取得した画像データについて、ソート条件に応じた並び替えを行う。ソート条件は撮影日時なので、撮影日時が古い画像データから新しい画像データになるように並び替えを行う。
S804では、CPU101は、画像データに対応する縮小画像を表示する。
図9は、ユーザが表示すべき画像を特定するために、フォルダツリーのPicturesを選択した場合の表示処理結果のUI画面を例示している。
[分類条件が撮影年/ソート条件が撮影日時の場合にグルーピングして表示する方法]
ユーザが指定した分類条件が任意の撮影年で、ソート条件が撮影日時の場合の画像表示方法について、図2、図4、図6、図7を参照して説明する。説明に際して、ユーザが撮影年月日ツリー304において、2009年を選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザが2009年を選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は分類条件の選択なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザが撮影年月日ツリー304の2009年を選択しているので、CPU101は分類条件の種類は撮影年月日と判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルから読み込む。分類条件の種類は撮影年月日なので、504の行を参照して、撮影日時をソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。ユーザが指定したソート条件は撮影日時なので、一致したと判定して、S405へ進む。
S405では、CPU101は、分類条件の詳細情報を判定し、判定した結果をRAM103に記憶する。ユーザが撮影年月日ツリー304の2009年を選択しているので、CPU101は分類条件の詳細情報は年月日の年と判定する。
S406では、CPU101は、S405にて記憶した分類条件がHDD105に記憶された図7の分類条件グルーピング情報対応テーブルに存在するか否か判定する。分類条件グルーピング情報対応テーブルの分類条件に年月日の年は存在するので、S407へ進む。
S407では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングして表示する。S407の処理の詳細を図6を参照して説明する。
S601では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件が2009年なので、DBの撮影日時205に記憶された情報について、2009¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S602では、CPU101は、S405にて記憶した分類条件の詳細情報に対応するグルーピング情報を、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルから読み込む。S405にて記憶した分類条件の詳細情報は年月日の年なので、703の行を参照して、グルーピング情報を読み込む。グルーピング情報は、月となる。
S603では、CPU101は、S601でRAM103に保持した画像データに対して、グルーピング情報に基づいてグルーピングを行う。グルーピング情報は、月なので、画像データの撮影月が同じ画像データが同じグループになるように、グルーピングする。そして、対象となる画像データについてグループと関連付けてRAM103に保持する。本実施形態においては、グループ数は4つで、1つ目のグループに含まれる画像データは3枚、2つ目、3つ目、4つ目のグループに含まれる画像データは各グループ1枚、とする。
S604では、CPU101は、S603にて保持した複数のグループについて、ソート条件に応じた並び替えを行う。ソート条件が撮影日時なので、古い月から新しい月になるように並び替えを行う。
S605では、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。分類条件の文字列とはフォーカス枠305内の文字列と同じである。ユーザが選択した分類条件は2009年なので、2009年を表示する。
S606では、CPU101は、カウンタiに0を代入する。
S607では、CPU101は、カウンタiが対象とするグループの数より少ないか否かを判定する。カウンタは0で、グループ数は4なので、グループ数よりも少ないと判定し、S608へ進む。
S608では、CPU101は、0番目のグループに含まれる画像データについて、ソート条件に応じた並び替えを行う。ソート条件は撮影日時なので、撮影日時が古い画像データから新しい画像データになるように並び替えを行う。
S609では、CPU101は、0番目のグループ名を図3のグループ境界バー308上に表示する。グループ名は、グルーピング情報に対応したDB内の情報を用いる。グルーピング情報は月なので、撮影月をグループ名として表示する。対象となるデータが図2の211に示したデータである場合には、撮影月は、12月なので、グループ名は12月となる。
S610では、CPU101は、カウンタkに0を代入する。
S611では、CPU101は、カウンタkが対象とする画像データの数より少ないか否かを判定する。カウンタkは0で、1番目のグループの画像データ数は3なので、対象となる画像データ数よりも少ないと判定し、S612へ進む。
S612では、CPU101は、0番目のグループの0番目の画像データに対応する縮小画像を表示する。
S613では、CPU101は、カウンタkをインクリメントし、S611へと戻る。
S614では、CPU101は、カウンタiをインクリメントし、S607へと戻る。
前述のグループ毎の処理を対象のグループ数分、前述の画像データ毎の処理を対象の画像数分、繰り返し、表示処理を終了する。
図10は、ユーザが表示すべき画像を特定するために、撮影日ツリーの2009年を選択した場合の表示処理結果のUI画面を例示している。
[分類条件が撮影年/ソート条件がファイル名の場合にグルーピングぜずに表示する方法]
ユーザが任意の撮影年の中で、所望のファイル名の画像データを探す場合、任意の撮影年を選択して、並び替えをファイル名に変更するという操作を一般的によく行う。根拠は分類条件がフォルダでソート条件が撮影日時の場合と同様である。
ユーザが任意の撮影年を選択して、並び替えをファイル名順に変更した際の画像表示方法について、図4及び図8を参照して説明する。説明に際して、ユーザが撮影年月日ツリー304において、2009年を選択した状態で、並び順リストボックス313において、ファイル名順を選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザがファイル名順を選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は、ソート条件の変更なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザが撮影年月日ツリー304の2009年を選択しているので、CPU101は分類条件の種類は撮影年月日と判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルからRAM103へ読み込む。分類条件の種類は撮影年月日なので、504の行を参照して、撮影日時をソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。並び順リストボックス313で指定したソート条件はファイル名順、S403にて読み込んだソート条件は撮影日時なので、一致していないと判定し、S408へ進む。
S408では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングせずに表示する。S408の処理の詳細を図8を参照して説明する。
S801では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件が2009年なので、DBの撮影日時205に記憶された情報について、2009¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S802では、CPU101は、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。ユーザが選択した分類条件は2009年なので、2009年を表示する。
S803では、CPU101は、S801にて取得した画像データについて、ソート条件に応じた並び替えを行う。ソート条件はファイル名なので、画像データのファイル名が文字列順になるように並び替えを行う。
S804では、CPU101は、画像データに対応する縮小画像を表示する。
図11は、ユーザが表示すべき画像を特定するために、撮影日ツリーの2009年を選択した場合の表示処理結果のUI画面を例示している。
[分類条件が撮影月/ソート条件が撮影日時の場合にグルーピングして表示する方法]
ユーザが指定した分類条件が任意の撮影月で、ソート条件が撮影日時の場合の画像表示方法について、図2、図4、図6、図7を参照して説明する。説明に際して、ユーザが撮影年月日ツリー304において、2012年10月を選択した直後の状態とする。
なお、分類条件が撮影年で、ソート条件が撮影日時の場合と全く同じ処理になるステップについては、撮影年の場合と同様であるので説明を省略する。
S400、S401における処理は、撮影年の場合と同様である。
S402では、CPU101は、分類条件の種類を判定する。ユーザが撮影年月日ツリー304の2012年10月を選択しているので、CPU101は分類条件の種類は撮影年月日と判定する。
S403における処理は、撮影年の場合と同様である。
S405では、CPU101は、分類条件の詳細情報を判定し、判定した結果をRAM103に記憶する。ユーザが撮影年月日ツリー304の2012年10月を選択しているので、CPU101は分類条件の詳細情報は年月日の月と判定する。
S406では、CPU101は、S405にて記憶した分類条件が、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルに存在するか否か判定する。分類条件グルーピング情報対応テーブルの分類条件に年月日の月は存在するので、S407へ進む。
S407では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングして表示する。S407の処理の詳細を図6を参照して説明する。
S601では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件が2012年10月なので、DBの撮影日時205に記憶された情報について、2012¥10¥の前方一致検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S602では、CPU101は、S405にて記憶した分類条件の詳細情報に対応するグルーピング情報を、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルから読み込む。S405にて記憶した分類条件の詳細情報は年月日の月なので、704の行を参照して、グルーピング情報を読み込む。グルーピング情報は、日となる。
S603では、CPU101は、S601でRAM103に保持した画像データに対して、グルーピング情報に基づいてグルーピングを行う。グルーピング情報は、日なので、画像データの撮影日が同じ画像データが同じグループになるように、グルーピングする。そして、対象となる画像データについてグループと関連付けてRAM103に保持する。本実施形態においては、グループ数は2つで、1つ目のグループに含まれる画像データは1枚、2つ目のグループに含まれる画像データは2枚、とする。
S604では、CPU101は、S603にて保持した複数のグループについて、ソート条件に応じた並び替えを行う。ソート条件が撮影日時なので、古い日から新しい日になるように並び替えを行う。
S605では、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。分類条件の文字列とはフォーカス枠305内の文字列と同じである。ユーザが選択した分類条件は2012年10月なので、10月を表示する。
S606では、CPU101は、カウンタiに0を代入する。
S607では、CPU101は、カウンタiが対象とするグループの数より少ないか否かを判定する。カウンタは0で、グループ数は2なので、グループ数よりも少ないと判定し、S608へ進む。
S608では、CPU101は、0番目のグループに含まれる画像データについて、ソート条件に応じた並び替えを行う。ソート条件は撮影日時なので、撮影日時が古い画像データから新しい画像データになるように並び替えを行う。
S609では、CPU101は、0番目のグループ名をグループ境界バー308上に表示する。グループ名は、グルーピング情報に対応したDB内の情報を用いる。グルーピング情報は日なので、撮影日をグループ名として表示する。対象となるデータが図2の213に示したデータである場合には、撮影月は、23日なので、グループ名は23日となる。
S610では、CPU101は、カウンタkに0を代入する。
S611では、CPU101は、カウンタkが対象とする画像データの数より少ないか否かを判定する。カウンタkは0で、1番目のグループの画像データ数は1なので、対象となる画像データ数よりも少ないと判定し、S612へ進む。
S612、S613、S614における処理は、撮影年の場合と同様である。
前述のグループ毎の処理を対象のグループ数分、前述の画像データ毎の処理を対象の画像数分、繰り返し、表示処理を終了する。
図12は、ユーザが表示すべき画像を特定するために、撮影日ツリーの2012年10月を選択した場合の表示処理結果のUI画面を例示している。
なお、本実施形態では、S602にてグルーピングする単位を決定するために、図7の分類条件グルーピング情報対応テーブルを用いたが、ユーザが選択した分類条件の1階層下の情報でグルーピングしても良い。この場合、S406では一番下の階層か否かで、判定を行う。一番下の階層である場合には、S408へ進む。一番下の階層でない場合には、S407へ進む。このようにすれば、グルーピング情報対応テーブルは不要になる。
また、本実施形態では、分類条件がフォルダの場合、図7の分類条件グルーピング情報対応テーブルにおいて、対象となる画像ファイルを直下に含むフォルダとしたが、分類条件で指定されたフォルダの直下のサブフォルダでグルーピングしても良い。この場合には、ユーザはファイルの大体の所在を把握することができる。
また、本実施形態では、ソート条件に対して、全て昇順で画像データの並び替えを行う例を説明したが、降順で行っても良い。更に、昇順か降順かをユーザがラジオボタンなどの操作部材で選択できてもよい。ユーザが昇順か降順かを選択できるようにする場合には、CPU101はユーザが操作部材により選択した情報をHDD105に記憶し、その情報に応じてS608及びS803にて昇順か降順かを切り替える。
また、本実施形態では、S608及びS803にて、順番が決められない画像データが複数存在する場合には、撮影日時順とするとしたが、ファイルパス順としても良い。通常、ファイルパスが重複することはないからである。
また、本実施形態では、フォルダ毎にグルーピングする際に、グルーピングの名をフォルダ名としたが、フォルダパスを表示しても良い。フォルダ名だと、同じフォルダ名が複数存在する場合があるが、フォルダパスであれば、重複しないからである。
上述したように、本実施形態によれば、ユーザが任意のフォルダ内の中で、所望の撮影日時の画像を探す場合、ソート条件を撮影日時にすれば、グルーピングが解除されて、撮影日時順に並ぶ。よって、前後の画像から、どの辺りにあるのか推測しやすい上に固まって表示されるため、所望の撮影日時の画像を見つけやすくなる。一方で、任意のフォルダ内で、ファイル名順に画像を閲覧する場合は、フォルダ毎にグループに分かれて表示されるので、従来の使いやすさも実現できる。
また、本実施形態によれば、ユーザが任意の撮影年の中で、所望のファイル名の画像を探す場合、ソート条件をファイル名にすれば、グルーピングが解除されて、ファイル名順に並ぶ。よって、前後の画像から、どの辺りにあるのか推測しやすい上に固まって表示されるため、所望のファイル名の画像を見つけやすくなる。一方で、任意の撮影年内で、撮影日時順に画像を閲覧する場合は、月毎にグループに分かれて表示されるので、月の区切れが分かりやすく、従来の使いやすさも実現できる。
更に、本実施形態によれば、ユーザが所望の撮影年月日を選択した際に、ソート条件が撮影日時順の場合、階層に応じて、グループの粒度が変わるため、一目で画像データの撮影年月日が把握できる。
[実施形態2]実施形態1では、分類条件が撮影年月日かフォルダ、ソート条件がファイル名順か撮影日時順の場合を例に説明した。これに対して、実施形態2は、分類条件がレーティング、ファイル種別、撮影場所、ソート条件がレーティング、拡張子、地名である場合である。
なお、本実施形態の情報処理装置の構成は、実施形態1と同様であるので説明を省略する。
まず、図13を参照して、本実施形態の画像表示処理のアプリケーションがディスプレイ104に表示するUI画面の構成及び機能について説明する。なお、図13において、図3と異なる操作部材についてのみ説明を行い、同じ操作部材についての説明は省略する。
図13において、1302は、レーティングツリーである。レーティングツリー1302には、レーティングを階層的なツリーの形にして表示する。CPU101がDBのレーティング206の情報を読み込み、レーティングの有無を判定する。レーティングの値が0だった場合には、レーティングは無いと判定する。レーティングの値が1以上の場合には、レーティングが有ると判定する。そして、レーティングの有無をレーティングツリー1302の第1の階層とし、1以上の数字を第2の階層として表示する。
1304は、ファイル種別ツリーである。ファイル種別ツリー1304には、ファイルの種別を階層的なツリーの形にして表示する。
1306は、撮影場所ツリーである。撮影場所ツリー1306には、撮影場所である地名を階層的なツリーの形にして、表示する。撮影場所は、国、県、市といった地名で階層的に表示する。
ファイル種別ツリー1304、撮影場所ツリー1306、の表示におけるツリー構造の作成方法は、図3のフォルダツリー303について説明した方法と同様である。
1301は、レーティングツリー1302の表示・非表示を切り替えるレーティングツリートグルボタンである。
1303は、ファイル種別ツリー1304の表示・非表示を切り替えるファイル種別ツリートグルボタンである。
1305は、撮影場所ツリー1306の表示・非表示を切り替える撮影場所ツリートグルボタンである。
レーティングツリートグルボタン1301、ファイル種別ツリートグルボタン1303、撮影場所ツリートグルボタン1305はいずれも、ユーザ操作により図3のフォルダツリートグルボタン311と同様に動作する操作部材である。
1307は、画像データの並び順を指定する並び順リストボックスである。ユーザが操作した時の動作は、図3の並び順リストボックス313と同様である。並び順リストボックス313と異なる点は、選択候補として列挙する並び順に、レーティング順、ファイル拡張子順、地名順が追加される点である。ユーザがレーティング順を押下した場合には、CPU101は、レーティング順が選択されたと判定し、画像データをレーティング順に並び替えて、サムネイルエリア1308に表示する。ファイル拡張子順、地名順の場合も同様である。
[分類条件がレーティング/ソート条件がレーティング順の場合にグルーピングして表示する方法]
ユーザが指定した分類条件がレーティングありで、ソート条件がレーティング順の場合の画像表示方法について、図2、図4、図6、図7を参照して説明する。説明に際して、ユーザがレーティングツリー1302において、レーティングありを選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザがレーティングありを選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は分類条件の選択なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザがレーティングツリー1302において、レーティングありを選択しているので、CPU101は分類条件の種類はレーティングと判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルから読み込む。分類条件の種類はレーティングなので、505の行を参照して、レーティングをソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。ユーザが指定したソート条件はレーティング順なので、一致したと判定して、S405へ進む。
S405では、CPU101は、分類条件の詳細情報を判定し、判定した結果をRAM103に記憶する。ユーザがレーティングツリー1302において、レーティングありを選択しているので、CPU101は分類条件の詳細情報はレーティングのレーティングありと判定する。
S406では、CPU101は、S405にて記憶した分類条件がHDD105に記憶された図7の分類条件グルーピング情報対応テーブルに存在するか否か判定する。分類条件グルーピング情報対応テーブルの分類条件にレーティングありは存在するので、S407へ進む。
S407では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングして表示する。S407の処理の詳細を図6を参照して説明する。
S601では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件がレーティングありなので、DBのレーティング206に記憶された情報について、1以上の値のデータを検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S602では、CPU101は、S405にて記憶した分類条件の詳細情報に対応するグルーピング情報を、HDD105に記憶された図7の分類条件グルーピング情報対応テーブルから読み込む。S405にて記憶した分類条件の詳細情報はレーティングありなので、707の行を参照して、グルーピング情報を読み込む。グルーピング情報は、レーティングの値となる。
S603では、CPU101は、S601でRAM103に保持した画像データに対して、グルーピング情報に基づいてグルーピングを行う。グルーピング情報は、対象となるレーティングの値なので、画像データのレーティングが同じ画像データが同じグループになるように、グルーピングする。そして、対象となる画像データについてグループと関連付けてRAM103に保持する。本実施形態においては、グループ数は3つで、1つ目のグループに含まれる画像データは3枚、2つ目と3つ目のグループに含まれる画像データは各4枚、とする。
S604では、CPU101は、S603にて保持した複数のグループについて、ソート条件に応じた並び替えを行う。ソート条件がレーティングなので、レーティングの小さい値から大きい値になるように並び替えを行う。
S605では、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。分類条件の文字列とはフォーカス枠305内の文字列と同じである。ユーザが選択した分類条件はレーティングありなので、レーティングありを表示する。
S606では、CPU101は、カウンタiに0を代入する。
S607では、CPU101は、カウンタiが対象とするグループの数より少ないか否かを判定する。カウンタは0で、グループ数は3なので、グループ数よりも少ないと判定し、S608へ進む。
S608では、CPU101は、0番目のグループに含まれる画像データについて、ソート条件に応じた並び替えを行う。ソート条件はレーティングなので、画像データのレーティングが小さい値から大きい値になるように並び替えを行う。ただし、既にレーティングの値毎にグルーピングしているので、複数の画像データについて、並び順が一意に決めることができない。その場合には、実施形態1で説明した通り、撮影日時順に並び替えを行う。
S609では、CPU101は、0番目のグループ名をグループ境界バー308上に表示する。グループ名は、グルーピング情報に対応したDB内の情報を用いる。グルーピング情報はレーティングの値なので、レーティングの値をグループ名として表示する。対象となるデータが図2の211に示したデータである場合には、レーティング206は2なので、グループ名はレーティング2となる。
S610では、CPU101は、カウンタkに0を代入する。
S611では、CPU101は、カウンタkが対象とする画像データの数より少ないか否かを判定する。カウンタkは0で、1番目のグループの画像データ数は3なので、対象となる画像データ数よりも少ないと判定した場合には、S612へ進む。
S612では、CPU101は、0番目のグループの0番目の画像データに対応する縮小画像を表示する。
S613では、CPU101は、カウンタkをインクリメントし、S611へと戻る。
S614では、CPU101は、カウンタiをインクリメントし、S607へと戻る。
前述のグループ毎の処理を対象のグループ数分、前述の画像データ毎の処理を対象の画像数分、繰り返し、表示処理を終了する。
図13は、ユーザが表示すべき画像を特定するために、レーティングツリー1302のレーティングありを選択した場合の表示処理結果のUI画面を例示している。
[分類条件がレーティング/ソート条件が撮影日時順の場合にグルーピングせずに表示する方法]
ユーザがレーティングを付けた画像の中で、所望の撮影日時の画像データを探す場合、レーティングありを選択して、並び替えを撮影日時順に変更するという操作を一般的によく行う。根拠は分類条件がフォルダでソート条件が撮影日時の場合と同様である。
ユーザがレーティングありを選択して、並び替えを撮影日時順に変更した際の画像表示方法について、図4及び図8を参照して説明する。説明に際して、ユーザがレーティングツリー1302において、レーティングありを選択した状態で、並び順リストボックス1307において、撮影日時順を選択した直後の状態とする。
S400では、CPU101は、ユーザの操作があるか否かの判定を行う。ユーザが撮影日時順を選択した直後なので、ユーザの操作があったと判定し、S401へ進む。
S401では、CPU101は、ユーザの操作が終了指示か否かの判定を行う。ユーザの操作は、ソート条件の変更なので、終了指示ではないと判定し、S402へ進む。
S402では、CPU101は、分類条件の種類を判定する。ユーザがレーティングツリー1302のレーティングありを選択しているので、CPU101は分類条件の種類はレーティングと判定する。
S403では、CPU101は、S402にて判定した分類条件の種類に対応するソート条件を、HDD105に記憶された図5の分類条件ソート条件対応テーブルからRAM103へ読み込む。分類条件の種類はレーティングなので、505の行を参照して、レーティングをソート条件として読み込む。
S404では、CPU101は、ユーザが並び順リストボックス313において指定したソート条件がS403にて読み込んだソート条件と一致するか否かの判定を行う。並び順リストボックス1307で指定したソート条件は撮影日時順、S403にて読み込んだソート条件はレーティングなので、一致していないと判定し、S408へ進む。
S408では、CPU101は、分類条件に対応する画像データの縮小画像をグルーピングせずに表示する。S408の処理の詳細を図8を参照して説明する。
S801では、CPU101は、HDD105に記憶されたDBからユーザが指定した分類条件に合致する画像データを検索して取得する。分類条件がレーティングありなので、DBのレーティング206に記憶された情報について、1以上の値のデータを検索をして、合致する画像データと各画像データに関連付けられた情報を取得する。そして、RAM103に保持する。
S802では、CPU101は、CPU101は、分類条件表示バー314に分類条件の文字列を表示する。ユーザが選択した分類条件はレーティングありなので、レーティングありを表示する。
S803では、CPU101は、S801にて取得した画像データについて、ソート条件に応じた並び替えを行う。ソート条件は撮影日時順なので、撮影日時が古い画像データから新しい画像データになるように並び替えを行う。
S804では、CPU101は、画像データに対応する縮小画像を表示する。
図14は、ユーザが表示すべき画像を特定するために、レーティングツリー1302のレーティングありを選択した場合の表示処理結果のUI画面を例示している。
分類条件が、ファイル種別、場所の場合も、ソート条件が、拡張子、地名の場合も、同様の方法で、グルーピングするか否かを切り替えて画像データを表示する。
上述したように、本実施形態によれば、ユーザが任意のレーティングの画像の中で、所望の撮影日時の画像を探す場合、ソート条件を撮影日時にすれば、グルーピングが解除されて、撮影日時順に並ぶ。よって、前後の画像から、どの辺りにあるのか推測しやすい上に固まって表示されるため、所望の撮影日時の画像を見つけやすくなる。所望のファイル名、拡張子、地名を探す場合も同様で、ソート条件を変更すればグルーピングが解除されて所望の順番に並ぶため、見つけやすくなる。
また、本実施形態によれば、ユーザが任意のファイル種別の中で、所望の撮影日時の画像を探す場合、ソート条件を撮影日時にすれば、グルーピングが解除されて、撮影日時順に並ぶ。よって、前後の画像から、どの辺りにあるのか推測しやすい上に固まって表示されるため、所望の撮影日時の画像を見つけやすくなる。所望のファイル名、レーティング、地名を探す場合も同様で、ソート条件を変更すればグルーピングが解除されて所望の順番に並ぶため、見つけやすくなる。一方で、拡張子順に画像を閲覧する場合は、ファイル種別毎にグループに分かれて表示されるので、従来の使いやすさも実現できる。
また、本実施形態によれば、ユーザが任意の撮影場所の中で、所望のレーティングの画像を探す場合、ソート条件をレーティングにすれば、グルーピングが解除されて、レーティング順に並ぶ。よって、前後の画像から、どの辺りにあるのか推測しやすい上に固まって表示されるため、所望のレーティングの画像を見つけやすくなる。所望のファイル名、撮影日時、拡張子の画像データを探す場合も同様で、ソート条件を変更すればグルーピングが解除されて所望の順番に並ぶため、見つけやすくなる。一方で、地名順に画像を閲覧する場合は、一階層下の場所の単位毎にグループに分かれて表示されるので、従来の使いやすさも実現できる。
また、本実施形態によれば、分類条件とソート条件に応じて、グルーピングするか否かを選択するため、様々なケースでユーザは所望の画像を見つけやすくなる。
なお、本実施形態では、本発明の画像表示装置を、ネットワークを介してサーバと通信するクライアントPCにより実現した例を説明したが、ネットワーク上で画像管理を行うオンラインアルバムサイトその他のデータサービスサイトのサーバコンピュータに適用しても良い。
[他の実施形態]本発明は、以下の処理を実行することによっても実現される。即ち、上記実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。