(57)【特許請求の範囲】
【請求項１】
複数の画像を、時間軸を持つ表示領域に表示する画像表示装置であって、
複数の画像を、１つ以上の画像を含むクラスタに分類する第１の分類手段と、
前記第１の分類手段により分類されたクラスタ間の撮影日時の差を計算する計算手段と、
前記第１の分類手段により分類されたクラスタを、前記計算手段により計算された撮影日時の差に基づいて１つ以上のクラスタを含むノードに分類する第２の分類手段と、
ユーザの操作に応答して、撮影日時の差を設定する設定手段と、
前記設定手段により設定された撮影日時の差に基づいて、前記第２の分類手段により分類されたノードの中から表示対象ノードを決定する決定手段と、
前記決定手段により決定された表示対象ノードに属する画像の撮影日時と前記表示領域の時間軸とに基づいて当該表示領域を分割し、前記表示対象ノードに割り当てる割り当て手段と、
前記表示対象ノードに属する画像を、前記割り当て手段により割り当てられた表示領域に配置して表示する表示手段と、
前記第２の分類手段により分類されたノードごとに前記表示領域を分割して仮想の表示領域を割り当て、割り当てられた前記表示領域に所定サイズで表示可能な画像の枚数と前記ノードに属する画像の枚数とを比較する比較手段と、を備え、
前記決定手段は、さらに、前記比較結果に基づいて、前記表示対象ノードを決定することを特徴とする画像表示装置。
【請求項２】
前記表示手段は、所定サイズ以上の表示サイズで前記表示対象ノードに属する画像を表示し、
前記表示対象ノードに属する全ての画像を前記割り当て手段により割り当てられた表示領域に表示できない場合に、ユーザに通知を行う通知手段をさらに備えることを特徴とする請求項１に記載の画像表示装置。
【請求項３】
複数の画像を、時間軸を持つ表示領域に表示する画像表示方法であって、
第１の分類手段が、複数の画像を、１つ以上の画像を含むクラスタに分類する第１の分類ステップと、
計算手段が、前記第１の分類ステップにより分類されたクラスタ間の撮影日時の差を計算する計算ステップと、
第２の分類手段が、前記第１の分類ステップにより分類されたクラスタを、前記計算ステップにより計算された撮影日時の差に基づいて１つ以上のクラスタを含むノードに分類する第２の分類ステップと、
設定手段が、ユーザの操作に応答して、撮影日時の差を設定する設定ステップと、
決定手段が、前記設定ステップにより設定された撮影日時の差に基づいて、前記第２の分類ステップにより分類されたノードの中から表示対象ノードを決定する決定ステップと、
割り当て手段が、前記決定ステップにより決定された表示対象ノードに属する画像の撮影日時と前記表示領域の時間軸とに基づいて当該表示領域を分割し、前記表示対象ノードに割り当てる割り当てステップと、
表示手段が、前記表示対象ノードに属する画像を、前記割り当て手段により割り当てられた表示領域に配置して表示する表示ステップと、
比較手段が、前記第２の分類ステップにより分類されたノードごとに前記表示領域を分割して仮想の表示領域を割り当て、割り当てられた前記表示領域に所定サイズで表示可能な画像の枚数と前記ノードに属する画像の枚数とを比較する比較ステップと、を備え、
前記決定ステップでは、さらに、前記比較結果に基づいて、前記表示対象ノードを決定することを特徴とする画像表示方法。
【請求項４】
前記表示ステップでは、所定サイズ以上の表示サイズで前記表示対象ノードに属する画像を表示し、
通知手段が、前記表示対象ノードに属する全ての画像を前記割り当てステップにより割り当てられた表示領域に表示できない場合に、ユーザに通知を行う通知ステップをさらに備えることを特徴とする請求項３に記載の画像表示方法。
【請求項５】
請求項３または４に記載の画像表示方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ファイル等をコンピュータで閲覧及び検索可能に管理する技術に関する。
【背景技術】
【０００２】
大量のファイルをユーザが見通しよく管理するために、ファイルを階層的に保持する手法が広く用いられており、コンピュータ（以下、ＰＣ）上での画像ファイル管理もこの手法で行われている。また、この手法はデジタルカメラで撮影された画像ファイルの管理にも適用される。即ち、デジタルカメラで撮影され、ＰＣに蓄積された画像ファイルは、任意の階層構造を持つフォルダに保存され、各々のフォルダにわかりやすい名前をつけることで管理される。このようなフォルダによる階層的な画像ファイル管理は、全管理対象を予め把握した上で、整然としたフォルダ命名規則に則って行われれば非常に効果的である。
【０００３】
しかしながら、デジタルカメラで撮影された画像ファイルのように管理対象のファイル数が膨大になり、また管理対象の追加が長期に亘る場合、上記のようなフォルダによる画像ファイル管理は必ずしも効率的とはいえない。例えば、長い年数が経過するうちに使用しているカメラが変わり、ＰＣにインポートするときのフォルダ名の自動生成ルールが変更されたり、年月を経るうちにユーザが画像を整理する際につけるフォルダ名称の命名傾向が変化することもある。また、現在整理した画像のフォルダ分けの階層構造が２０年後にとっても分かりやすいものである可能性は高いとはいえない。
【０００４】
そこで上記のようなフォルダ名称や階層構造に依存せずに、多数の画像ファイルを時間軸上で一元的に管理する方法が種々提案されている。
【０００５】
画像ファイルを時間軸上で管理する場合は、画面上に時間軸を描画し、その上に画像ファイルを表すサムネイルや何らかのマークをプロットする必要がある。ところが、一般的にこのような方法では、ファイルが時間軸の縮尺に対して密に存在するとファイルを表すマークが重なってしまい、ファイルの集合の概要が分かりにくくなる場合がある。この課題に対しては、いくつかの対応策が提案されている。
【０００６】
特許文献１では、時間軸上にプロットするオブジェクトをサムネイルではなく、画像の属性を色や長さで表す、縦方向（時間軸に直交する方向）線分とした。縦方向の線分は時間軸方向に領域を占有しないため、比較的重なりを小さくすることができる。
【０００７】
特許文献２でも、画像ファイルを表すサムネイルやアイコンを、時間軸上にプロットする方法が提案されている。この方法では時間的な属性値の分布の疎密を表す半透明な正弦曲線を、時間軸や、サムネイルに重ねて描画する。このことから先に挙げたような状況でサムネイルが重なっていても背後にどの位のファイルが存在するのかを把握でき、次にユーザに軸の縮尺を拡大するといったようなアクションを促すことができる。
【特許文献１】特開２００５−２９３３１３号公報
【特許文献２】特開２００６−０１９５９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記２つの画像ファイル管理方法において、特許文献１では本来２次元に広がるグラフィック情報である画像データを、線分という希薄な情報に圧縮することにより、時間軸方向の領域を確保している。また、特許文献２では視認性の高いサムネイルを時間軸上にそのまま描画する代わりに、時間軸方向の領域不足によって、隠れてしまうファイル情報を正弦曲線によって分布の疎密を表す他は放棄している。
【０００９】
このように画像ファイルを時間軸上で管理する場合においては、ディスプレイという２次元平面状に画像を効率的に配置することが困難であり、一画面でユーザが得られる情報が限定されてしまう。
【００１０】
本発明は、時間軸情報を保持しつつ表示領域を有効利用できる画像表示技術を実現するものである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の画像表示装置は、複数の画像を、時間軸を持つ表示領域に表示する画像表示装置であって、複数の画像を、１つ以上の画像を含むクラスタに分類する第１の分類手段と、前記第１の分類手段により分類されたクラスタ間の撮影日時の差を計算する計算手段と、前記第１の分類手段により分類されたクラスタを、前記計算手段により計算された撮影日時の差に基づいて１つ以上のクラスタを含むノードに分類する第２の分類手段と、ユーザの操作に応答して、撮影日時の差を設定する設定手段と、前記設定手段により設定された撮影日時の差に基づいて、前記第２の分類手段により分類されたノードの中から表示対象ノードを決定する決定手段と、前記決定手段により決定された表示対象ノードに属する画像の撮影日時と前記表示領域の時間軸とに基づいて当該表示領域を分割し、前記表示対象ノードに割り当てる割り当て手段と、前記表示対象ノードに属する画像を、前記割り当て手段により割り当てられた表示領域に配置して表示する表示手段と、前記第２の分類手段により分類されたノードごとに前記表示領域を分割して仮想の表示領域を割り当て、割り当てられた前記表示領域に所定サイズで表示可能な画像の枚数と前記ノードに属する画像の枚数とを比較する比較手段と、を備え、前記決定手段は、さらに、前記比較結果に基づいて、前記表示対象ノードを決定する。
【発明の効果】
【００１３】
本発明によれば、時間軸を有する表示画面に多数の画像を表示する場合に、時間軸の縮尺に対して画像が密に存在しても、その画像グループについてユーザに有効に提示することができる画像表示技術を実現する。
【００１４】
また、予め画像の視認性を評価し、ユーザが設定できる画像の組み合せのうち、無駄な組み合せを排除するので、ユーザによる操作負担を最小限に抑えることができる画像表示技術を実現する。
【発明を実施するための最良の形態】
【００１５】
以下に、添付図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１６】
尚、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施の形態に限定されるものではない。
【００１７】
［本発明の概要説明］
本発明に係る画像表示方法は、先ず画像に対して階層的なグループ分け（階層化）を行う。ここで階層的とは、グループの最小構成要素は個々の画像であり、それらが段階的に融合して中間的なグループを構成し、最上位では全ての画像が所属する唯一のグループを構成するような樹状構造に基づいたグループ分けを意味する。また各グループとは樹状構造における各ノードを意味する。
【００１８】
次に、樹状構造の根ノードに対応する表示領域の面積を算出する。表示領域は横軸に時間軸を有する帯状に広がる２次元領域である。
【００１９】
次に、表示領域を、樹状構造に基づき分割して、樹状構造中の各ノードに割り当てる分割領域を決定する。この分割は表示領域の時間軸において厳密に行われるため、あるノードに属する全ての画像は、対応する分割領域が持つ時間軸範囲内に必ず収まる。
【００２０】
次に、ユーザが指定した実際に画面に表示するノードに基づいて、各ノードに割り当てられた分割領域に、ノードに属する画像を最大限表示する点が、従来の手法と大きく異なる点である。グループ単位では厳密に時間軸を分割するが、割り当てられた領域内では時間軸を考慮せずに最大限の画像を描画するため、表示領域を有効利用することができる。
【００２１】
グループ単位では時間軸に対して厳密性が保証されるが、各画像においては厳密性は保証されない。ユーザが時間軸における各画像の厳密性を求める場合は、ユーザが表示するノードを選択する際に、樹状構造の葉ノード（＝画像そのもの）もしくは葉に近いノードを選択すればよい。
【００２２】
以上のように、本発明では表示領域を有効利用できる反面、ユーザが求める時間軸に応じて、その都度、表示ノードの階層を変更する必要がある。この表示ノードの階層の変更において、本発明では各ノードの視認性を評価して、予めユーザにとって有意義なノードのみが選択されるよう選択範囲を絞り込んでいる。この絞り込みにより、ユーザが表示ノードの階層を変更する手間が大幅に軽減されているのも、本発明の優位性の１つである。なお、視認性は、ノードに属する画像を、表示領域に対して全て描画できるか、全て描画できないか、或いは一部描画できるか判定することにより行う。
【００２３】
［システム構成の説明］
図１は、本発明に係る実施形態の画像ファイル管理システムの一例を示す概略構成図である。
【００２４】
ＰＣ１０１は画像ファイルをメモリ上に取り込み、本発明に係る画像ファイル管理機能を実現するプログラムを実行するパーソナルユースのコンピュータである。以降、このアプリケーションを画像ファイル管理プログラムと呼ぶ。
【００２５】
画像入力機器１０２は、イメージ情報である光学像を電気信号に変換し、その電気信号に対して所定の画像処理を施し、画像処理を施した電気信号に、内蔵する時計から得られた撮影日時情報を付加して画像ファイルとして保存、閲覧する機能を有する。画像入力機器１０２としては、例えば、被写体を撮影し、撮影した画像を静止画像ファイルとして記憶するデジタルスチルカメラが挙げられるが、撮影日時情報を付加した画像ファイルを生成できる機器であれば、デジタルビデオカメラやスキャナでも適用できる。
【００２６】
以下の説明では、画像ファイルは撮影日時情報が付加されていることを前提とする。
【００２７】
データ転送用インタフェース１０３は、画像入力機器１０２が入力した画像データをＰＣ１０１に転送するためのインタフェースである。このデータ転送用インタフェース１０３としては、例えば、USB(Universal Serial Bus)やIEEE1394に代表される有線通信用インタフェースが挙げられる。また、他にIrDA(Infrared Data Association)やBluetooth（登録商標）に代表される無線通信用インタフェースが挙げられる。
【００２８】
ＰＣ１０１は、必要に応じて画像入力機器１０２と、データ転送用インタフェース１０３を介して接続され、撮影日時情報が付加された画像ファイルを受け取ることができる。
【００２９】
ＰＣ１０１は、必要に応じて画像ファイルを、画像入力機器１０２からだけではなく、インターネット１０４上に存在する様々なリソースから取得することができる。フォトサイト１０５は画像ファイルを保持するＤＢ(Data Base)１０６を持ち、インターネット１０４上に接続された多数のユーザと画像ファイルを共有するサービスを提供するサイトである。ＰＣ１０１はフォトサイト１０５からも適宜、画像ファイルをダウンロードすることができる。
【００３０】
また、ＰＣ１０１は、インターネット１０４上に接続された、知人等の他のＰＣ１０７から電子メール等の通信手段を用いて画像ファイルを取得したり、フラッシュメモリ等の記憶媒体からネットワークを介さずに直接、画像ファイルを取得することもできる。
【００３１】
なお、本実施形態では、インターネット１０４を通信インフラとした場合を一例として示しているが、インターネット１０４の代わりに、ＬＡＮ(Local Area Network)やＷＡＮ(Wide Area Network)等を用いても良い。
【００３２】
図２は、本実施形態の画像ファイル管理プログラムを実行する情報処理装置としてのＰＣ１０１の構成を示す図である。
【００３３】
図２において、２０１はディスプレイとしてのＣＲＴ(Cathode Ray Tube)であり、その表示画面には、例えば編集中の文書、図形、画像の他、本実施形態の画像ファイル管理プログラムにより描画される矩形領域（以下、分割領域ともいう。）が表示される。
【００３４】
２０２はＶＲＡＭ(Video Random Access Memory)であり、ＣＲＴ２０１の表示画面に表示するための画像データが記憶される。このＶＲＡＭ２０２に生成された画像データは、所定の規定に従ってＣＲＴ２０１に転送され、ＣＲＴ２０１に画像データが表示される。
【００３５】
２０３はビットムーブユニット(BMU)であり、メモリ間（例えば、ＶＲＡＭ２０２と他のメモリ）のデータ転送や、メモリと各Ｉ／Ｏデバイス（例えば、ネットワークインタフェース２１１）との間のデータ転送を制御する。
【００３６】
２０４はキーボードであり、ユーザが文字列データ等の入力指示を行うための各種キーを有する。
【００３７】
２０５はポインティングデバイスであり、例えば、ユーザがＣＲＴ２０１の画面上に表示された画像ファイル管理プログラムの描画条件を設定したり、表示画像を選択するために使用される。
【００３８】
２０６はＣＰＵ（中央演算処理装置）であり、ＲＯＭ(Read Only Memory)２０７、ハードディスク又はフロッピー（登録商標）ディスクに格納された制御プログラムに基づいてＣＰＵに接続された各デバイスを制御する。
【００３９】
２０７はＲＯＭであり、各種の制御プログラム等のデータを保持する。
【００４０】
２０８はＲＡＭ(Random Access Memory)であり、ＣＰＵ２０６のワーク領域、エラー処理時のデータの退避領域、制御プログラムのロード領域等を有する。
【００４１】
２０９はハードディスク(HDD)であり、情報処理装置として実行する各制御プログラムやコンテンツを格納することができる。例えば、ＰＣ１０１のハードディスク２０９には、ＯＳ、Ｗｅｂブラウザ、画像ファイル、画像ファイル管理プログラム等が格納される。
【００４２】
２１０はフロッピー（登録商標）ディスクドライブ(FDD)であり、フロッピー（登録商標）ディスクに対するアクセスを制御する。
【００４３】
２１１はネットワークインタフェース（Net-I/F）であり、他のＰＣやプリンタ等とのインターネット１０４を介した通信を実現する。ＣＰＵバス２１２は、各デバイス間で相互に通信できるようにするためのものであり、アドレスバス、データバス及びコントロールバスを含む。
【００４４】
ここで、上述したシステムやハードウェアの構成において、ユーザが管理対象の大量の画像ファイルにアクセスできる状態で、ＰＣ１０１上のハードディスク２０９に保存されている画像ファイル管理プログラムを起動して、画像ファイルの閲覧や検索等を行う。
【００４５】
以下に、本実施形態の画像ファイル管理プログラムにより実現される機能について具体的に説明する。
【００４６】
先ず、本実施形態の画像ファイル管理プログラムにより表示されるメイン画面（ＵＩ画面）について説明する。
【００４７】
図３は、本実施形態の画像ファイル管理プログラムにより表示されるメイン画面を例示している。
【００４８】
図３において、３０１はユーザに提示する画像ファイルのサムネイルを表示する矩形領域である。矩形領域は、横軸に絶対的な時間軸を持つ帯状の仮想平面（以下、画像マップ）から、閲覧パラメータによって実際に画面に表示する部分が切り抜かれたものである。
【００４９】
切り抜かれた矩形領域の左端の、画像マップ上における時間（ミリ秒）を絶対位置と呼ぶことにする。この絶対位置と、矩形領域の縮尺値（ミリ秒／ピクセル）によって、画像マップから矩形領域を切り抜く範囲が一意的に定まる。
【００５０】
画像ファイル管理プログラムは常にこの矩形領域により、ユーザにサムネイルを提示する。また、この矩形領域上にポインタを置き、横方向にドラッグすると任意の方向に画像マップの時間軸上を移動できる（つまり、絶対位置を更新できる）。縮尺値の設定は後述の縮尺スライダバーによって行われる。
【００５１】
３０２は上記矩形領域をいくつかの領域に分割する境界線である。この境界線３０２の本数と位置は、後述する画像ファイルのクラスタリング処理の結果と、閲覧パラメータとにより決定され、境界線３０２で分割された領域には１：１に画像ファイルのグループが対応付けされる。
【００５２】
３０３は上記境界線３０２によって分割された各矩形領域に対応するグループに属する画像ファイルのサムネイルであり、後述する処理によって決定されるサイズで矩形領域に配列される。
【００５３】
３０４は後述のように決定した最小のサイズでも、矩形領域内に画像を表示しきれなかった場合に、その旨と、他に何枚、表示できなかった画像ファイルがあるかをユーザに提示するアイコンである。
【００５４】
３０５は、矩形領域の時間軸の縮尺値（ミリ秒／ピクセル）を決定する縮尺スライダバーである。縮尺スライダバーはマウスによるドラッグ操作の他、マウスのホイールの回転と連動している。矩形領域は１０年を越すような長期間の表示から、１分以下の短期間の表示まで対応するため、スライダバーの目盛りは縮尺値に対数的にマッピングされている。
【００５５】
３０６は、後述するクラスタリング処理によって得られる樹状図（樹形図、系統図、デンドログラムともいう。）を切断するための距離値（時間）を設定する距離スライダバーである。この距離値によって、実際に矩形領域に表示する画像のグループと、それに対応した境界線３０２の位置が決められる。この距離値も数年から数分まで対応できるように、距離スライダバー３０６の目盛りは距離値と対数的にマッピングされている。
【００５６】
３０７は矩形領域の画像マップ上における位置を示す目盛りである。目盛りの値は前述した矩形領域のドラッグ操作によって決定し、目盛り間隔は縮尺スライダバーが示す縮尺値によって決定される。
【００５７】
以上説明した画像ファイル管理プログラムのメイン画面は一例であり、上記内容と同等の情報や操作性を実現できるものであれば、他のデザインによる画面で代替しても、本発明を実現することが可能である。また、上述した内容は本発明を実施する必要最小限の構成であり、更に付加的な情報やＵＩ（ユーザインタフェース）を配置することで、ユーザの利便性を向上することも期待される。
【００５８】
図４は、本実施形態の画像ファイル管理プログラムによるファイル検索処理を示すフローチャートである。
【００５９】
図４において、ユーザがＰＣ１０１上で画像ファイル管理プログラムを起動し、画像の検索を開始すると、先ずＳ４０２で、ユーザは検索対象としたい画像ファイルが保存されているルートフォルダのパスを入力する。図５はルートフォルダのパスを入力するサブウインドウの一例である。画像ファイル管理プログラムは、複数の管理対象画像ファイルのパスが得られれば唯一のルートフォルダパスの設定に限定されず、検索対象の、個々のファイルのパス配列でもよいし、ファイルが保存されている複数のフォルダのパス配列でもよい。また、毎回検索を行う度に、ユーザにパス入力を促すのは煩わしいので、一度入力された値をデフォルト値としてディスク上に保存して置くことで、次回の検索からの入力を省略することも可能である。
【００６０】
Ｓ４０３では管理対象として設定された全ての画像ファイルに対して、各画像ファイルの撮影日時の差を非類似度として階層的クラスタリング処理を行う。具体的なクラスタリング処理の詳細については後述する。このクラスタリング処理の結果は、検索対象のファイルリストが同一である限り変化がないので、結果をディスクに保存しておくことで、次回からのプログラムの初期化計算コストを抑えることが可能である。
【００６１】
Ｓ４０４では、Ｓ４０５で矩形領域にサムネイルの一覧を表示するために必要な閲覧パラメータの初期値を設定する。閲覧パラメータは、図３で述べた画像マップから矩形領域３０１を切り出して表示するためにあり、絶対位置（ミリ秒）と、縮尺値（ミリ秒／ピクセル）、サムネイル表示の際に用いるグループを決定する樹状図の切断距離（ミリ秒）から構成される。
【００６２】
なお、初回のファイル検索を行う場合には、最も縮尺が大きくなるような値を初期値として設定する（例えば、絶対位置を１９７０年１月１日、０時０分０秒 ＧＭＴ［グリニッジ標準時］、縮尺値を縮尺スライダバーの最大値に設定する）。そして、２回目以降は前回のユーザが設定した最後の値をディスクに保存しておいて、その値をロードして初期値に設定する。
【００６３】
Ｓ４０５では、Ｓ４０３で得たクラスタリング結果とＳ４０４又は後述するＳ４０７で設定される閲覧パラメータ、Ｓ４０２で得た画像ファイルの情報から矩形領域の描画を行う。この描画処理の詳細については後述する。
【００６４】
Ｓ４０６では、ユーザがＳ４０５の描画結果を閲覧し、自分の所望の画像があるかどうかを判定する。
【００６５】
Ｓ４０６で、所望の画像がない場合は、ユーザが閲覧した情報に基づき再設定した閲覧パラメータを取得する（Ｓ４０７）。また、ユーザによる画像ファイル管理プログラムの使用目的が検索ではなく、閲覧である場合は、この閲覧パラメータの再設定と、矩形領域の閲覧とを繰り返すことで対象画像を閲覧する。
【００６６】
Ｓ４０６で、所望の画像があった場合は、ユーザは検索処理を終了し、そのファイルを開いたり、ファイルパスをクリップボードにコピーしたりする等、目的とする任意の処理を行う。
【００６７】
次に、Ｓ４０３のクラスタリング処理について詳述する。
【００６８】
図６はＮ枚の画像ファイルに対するクラスタリング処理を示すフローチャートである。
【００６９】
図６において、処理が開始されると、Ｓ６０２では、先ず各画像ファイルを１クラスタとして定義する。
【００７０】
Ｓ６０３では、先に定義されている全てのクラスタ要素の組み合わせについて非類似度を計算する。本実施形態では、１次元値である、撮影日時のユークリッド距離を非類似度とする。この距離が小さいほど２つの要素は類似しているとする。
【００７１】
Ｓ６０４では、Ｓ６０３で求めた非類似度を比較して、最も類似性の高いペアを融合して１つのクラスタとし、融合してできた新クラスタの撮影日時を元要素の撮影日時重心として設定する。新クラスタの情報、即ち２つの子クラスタ情報の参照、クラスタに定義される撮影日時、融合するときの結合距離をメモリ上に保存する。
【００７２】
Ｓ６０５で、現在のクラスタ数が１つであるか判定し、１つであれば終了し、複数あれば、Ｓ６０３以降をクラスタ数が１つになるまで繰り返す。
【００７３】
図８は、参考までに、図７に示す撮影日時を持つＡからＨの８個の画像ファイルのクラスタリング処理結果を示し、画像ファイルとクラスタの撮影日時とを時間軸上にプロットした状態を例示している。図９は重心計算によって求められた各クラスタに定義される撮影日時を例示し、図１０は各クラスタ間の結合距離を縦軸にとった樹状図を例示している。なお、ここでは、簡単のため、撮影日時の精度を日までとした。
【００７４】
各クラスタは、２つの子クラスタと、撮影日時と、結合距離とが定義される。例えば、図９のクラスタ｛Ａ，Ｂ，Ｃ｝では子クラスタが｛Ａ，Ｂ｝とＣ、撮影日時が２００４年２月２６日、結合距離が７０日（２００４年５月３日と２００４年２月２６日の差分）である。
【００７５】
本実施形態では、クラスタ間の非類似度の定義として、後述する樹状図の切断距離とクラスタ間の結合距離が直感的に一致しやすいという理由から重心法を採用している。しかしながら、定義法は、他に最短距離法、最長距離法、メジアン法等の様々な定義法が提案されており、いずれの手法でも本発明を実施できる。また、ユーザが定義法をその都度、変更可能としてもよいし、経験的に得たより良い手法を設定してもよい。本実施形態で採用した重心法は一例に過ぎないことを付記しておく。
【００７６】
次に、Ｓ４０５の矩形領域の描画処理について説明する。
【００７７】
画像マップは上述した通り、ウィンドウの縦幅に対応する高さを持ち、横は時間軸上に無限に広がる仮想平面である。従って、画像マップの描画とは実際のグラフィカルな描画ではなく、論理的な描画であることに注意する。画像マップは最終的にはユーザが設定した描画パラメータに基づいて実際にユーザに見せる矩形領域３０１に描画されるがその切り出し方法については後述する。以下に述べる画像マップの描画手順には、実際に矩形領域３０１への描画には必要のない処理も含まれる。プログラムの実装においてはメモリの枯渇を防ぐために、このような処理は排除する必要があるが、ここではあくまで原理を分かりやすく説明することに焦点をあて、実際の実装における技法については説明を省略する。
【００７８】
図１１は矩形領域の描画処理を示すフローチャートである。
【００７９】
図１１において、Ｓ１１０２では縮尺スライダバー３０５で設定された縮尺値から目盛り間隔を決定する。目盛り間隔は、縮尺値の範囲と目盛り間隔を対応付ける変換テーブルを予め用意しておき、このテーブルによって決定される。目盛り間隔は、ユーザが認識しやすく、区切りのよい値（１０分、１時間、３時間、１日、１ヶ月等）に設定される。
【００８０】
Ｓ１１０３では矩形領域の表示範囲内に存在する目盛り３０７を前述の目盛り間隔で描画する。
【００８１】
Ｓ１１０４では、先のクラスタリングで得られた樹状図を距離スライダバー３０６で設定された切断距離に基づいて、画面に表示するノードを決定する。なお、クラスタリングによって作成したクラスタは樹状図におけるノードと同義であるので、以降の説明ではクラスタのことをノードと呼ぶ。この表示ノードの決定処理の詳細は後述する。
【００８２】
Ｓ１１０５でのループ処理では、Ｓ１１０４で決定した各表示ノードに対応する分割領域に対して画像のサムネイル描画処理が行われる。
【００８３】
Ｓ１１０６では、画像マップ上の時間軸を分割して表示ノードに配分する時間範囲を確保する境界線３０２を描画する。境界線３０２の位置は互いのノードの隣接する相手ノードに最も近い画像ファイル同士の撮影日時の中点とする。
【００８４】
図１２は、図７に示す８個の画像ファイルをクラスタリングし、ある距離値で切断して生成された３つの表示ノード｛Ａ，Ｂ，Ｃ｝、｛Ｄ，Ｅ，Ｆ，Ｇ｝、｛Ｈ｝について、境界線の位置を定義した例を示している。
【００８５】
図１２において、１２０１はノード｛Ａ，Ｂ，Ｃ｝と｛Ｄ，Ｅ，Ｆ，Ｇ｝の境界線であり、ＣとＤの中点で定義される。１２０２はノード｛Ｄ，Ｅ，Ｆ，Ｇ｝と｛Ｈ｝の境界線であり、ＧとＨの中点で定義される。
【００８６】
なお、本実施形態では境界線の位置は左ノードの最後の画像の撮影日時と右ノードの最初の画像の撮影日時の中点としたが、これは一例に過ぎない。つまり、２つノードの重心を結ぶ線分を、要素数の比で内分する点を用いる等、本実施形態で説明した方法のみに限定されず、様々な境界線の定義方法で本発明を実施できることを付記しておく。
【００８７】
Ｓ１１０７では上記境界線によってノードに配分された各矩形領域の面積と、表示ノードが持つ画像数とからサムネイルの表示サイズを決定する。サムネイル１枚あたりの描画領域が大きい場合は、大きなサイズでサムネイルが描画され、１枚あたりの描画領域が小さい場合は、小さなサイズでサムネイルが描画される。このサムネイルサイズは、ノードに割り当てられた矩形領域の面積を上限とする最大サイズと、ユーザが目視して内容を確認できる実用的な大きさを限度とする最小サイズを定数として持つ。このサイズ決定アルゴリズム、描画枚数決定アルゴリズムの詳細については本発明とは直接関係しないので説明を省略する。
【００８８】
ここで、ノードに対応する分割領域がある程度小さいと、Ｓ１１０７で決定した最小サムネイルサイズであっても、ノードに属する画像を分割領域内に全て配置できない場合が生じる。
【００８９】
そこで、Ｓ１１０８では、最小サイズで分割領域に描画し得る、描画可能最大枚数とノードに属する画像枚数とを比較する。
【００９０】
全てのサムネイルを配置できない場合は、Ｓ１１０９で、描画しきれなかったサムネイルが存在すること、及びその枚数を示すアイコン３０４を矩形領域内に描画する。このアイコン３０４は一例であり、表示できなかった画像ファイル数に応じてサムネイル背景の明度を変える等して代用できる。本発明においては矩形領域内に描画できていない画像の存在とそれらのボリュームを提示できれば、その詳細な方法は特に重要ではなく、本例で説明したアイコンの他にも様々な方法が考えられることを付記しておく。
【００９１】
Ｓ１１１０では、ノードに属する画像を所定のレイアウトアルゴリズムに従って最大限、矩形領域に描画する。レイアウトアルゴリズムはある領域に対して所定の枚数の画像を可能な限りレイアウトするよう表示制御するものである。アルゴリズムには分割領域に配置可能な枚数がノードに属する総画像数よりも少ない場合は、表示する画像を適切に選択する機能が要求される。本発明を実施する際には、このような表示画像の選択方法自体は様々な方法を採用できるため、詳細な説明は省略する。
【００９２】
上記Ｓ１１０６〜Ｓ１１１０までの処理を、全ての表示ノードについて実行し、図１３で後述する仮想的な画像マップから矩形領域を切り抜いて表示することで描画が完了する。
【００９３】
次に、Ｓ１１０４における、距離スライダバーで設定した切断距離に基づいて、画面に表示する表示ノードを決定する処理について説明する。
【００９４】
図１３は表示ノードを決定する処理を示すフローチャートである。
【００９５】
図１３において、Ｓ１３０２では、表示ノードを決定する最初の処理として、樹状図の各ノードについて視認性を計算する。各ノードにおける視認性の詳細な計算方法は以下の手順で行う。即ち。
【００９６】
Ｓ１３０３では、ノードに属する総画像数をＮとする。
【００９７】
Ｓ１３０４では、仮に、ノードに対応する分割領域に表示する際の画像の表示枚数をｎとする。表示枚数は、Ｓ１１０６、Ｓ１１０７で述べた方法によって求まる。つまり、Ｓ１３０４では、表示ノードを決定するのに先立って、もし各ノードを表示ノードとして描画した場合、ノードに属する画像を画面上に何枚表示できるかを予め計算する。
【００９８】
Ｓ１３０５では、Ｓ１３０４で求めた表示可能枚数ｎを評価する。ｎがノードに属する総画像数Ｎに等しい場合、つまり、ノードを表示した場合に、所属画像を余すことなく表示できる場合は視認性を「良」とする（Ｓ１３０６）。ｎが０枚である場合、つまりノードを表示した場合に、対応する分割領域が小さすぎて１枚も画像を表示できない場合は視認性を「否」とする（Ｓ１３０８）。ｎが上記どちらでもない場合は視認性を「可」とする（Ｓ１３０７）。
【００９９】
なお、上記のようにして決定された視認性はユーザが縮尺値を更新しない限り不変なので、結果を保存して再利用することで計算コストを節約できる。
【０１００】
また、本例では視認性の条件を、ｎを０及びＮと比較することで「良」、「可」、「否」に評価した。しかし、この評価方法に限られず、複数枚の画像をある領域内に表示する際の視覚的特性を「良」、「可」、「否」の３種類に分類できる方法であればどのような評価方法でも本発明を実施できる。
【０１０１】
Ｓ１３０９では樹状図の構造と、各ノードに付与した視認性に基づき表示ノードを選択する。
【０１０２】
表示ノード選択方法の具体的な説明に入る前に、表示ノード選択方法の概念について説明する。
【０１０３】
視認性の結果に基づいて、管理対象画像から作成された樹状図において、実際に表示する可能性のあるノードの絞り込みを行う。この絞り込みによって、実際には表示しても、ユーザに提示する画面として非効率なものを予め排除する。ユーザに提示する画面として非効率なものを判断する基準を以下のように定義する。
【０１０４】
Ａ．分割された表示領域が小さいことによりノードに属する画像を十分に表示できない状態。
【０１０５】
Ｂ．分割された表示領域が必要以上に大きいために、ノードの特徴をとらえにくい状態。
【０１０６】
上記判断基準と、先に決定した視認性評価結果より、ノードの絞り込みを行う。表示候補から排除するノードの条件を以下のように定める。
【０１０７】
ａ．２つの子ノードの視認性がいずれも「良」
ｂ．自ノードの視認性が「否」で、かつ兄弟ノードの視認性も「否」
ａは、ある領域をそれ以上分割すると、分割によって出現する子の領域の視認性が両方とも悪くなってしまう場合である。このような場合はユーザにとって分割によるメリットはないので、分割を許可しないことにする。
【０１０８】
ｂは、ある領域を分割したときに、分割によって出現する２つの子の視認性が共に良い場合は、強制的に分割するものである。本実施形態では、あるノードに属する画像は、そのノードを区切る境界線の内部にあることが保証されているため、分割を詳細にした方が画像の時間分布は正確に分かる。そのため、分割しても視認性が損なわれない場合は、極力分割した方がよい。
【０１０９】
例えば、管理対象画像から作成した樹状図に対して、現在のユーザが設定している縮尺値において各ノードの視認性を計算した結果が図１４の場合について考える。先に述べた視認性を表すマークが白いノードは表示される可能性があるノードである。黒いノードは上記絞り込みによって、表示する候補から排除されたノードである。
【０１１０】
本実施形態では、ユーザに提示する画面において表示候補から排除されるべきノードとして上記２つの条件を使用している。ここで、本発明を実施する核となる要件は視認性の評価結果に基づいて、非効率な状態を定める基準として挙げたＡ及びＢを満たすノードの表示を排除することである。この条件に基づいて、作成した具体的な非効率な状態を定めた条件ａ及びｂはあくまで一例に過ぎない。例えば条件ａは自ノード・・・・もしくは兄弟ノードの視認性が「否」であるといった条件で置き換える等、代替の条件でも本発明を実施可能であるし、本発明を実施する際には、状況に応じて最適な条件定義が採用されることが望まれる。
【０１１１】
このように表示候補から非効率なノードを排除した樹状図において、ユーザによってある距離値（切断距離）が与えられているときの表示ノード選択例を図１５に示す。表示ノードは切断距離未満で最大の表示可能ノード（図中の白いマークで示されたノード）であり、切断距離未満に表示可能ノードがない場合は切断距離より上の最小の表示可能ノードを表示ノードとする。
【０１１２】
次に、上記概念的に説明したＳ１３０９での具体的な表示ノード選択処理を、図１６のフローチャートを参照して説明する。本処理は、先ず根ノードに対して適用される。
【０１１３】
Ｓ１６０２では、左右２つの子ノードの視認性をそれぞれＶｌ，Ｖｒとする。
【０１１４】
Ｓ１６０３では、各ノードの結合距離を切断距離と比較し、Ｓ１６０４、Ｓ１６０５では当該ノードの子ノードの視認性Ｖｌ，Ｖｒを判定する。
【０１１５】
Ｓ１６０３で結合距離が切断距離以上且ついずれかの子ノードの視認性Ｖｌ，Ｖｒが否でない場合（Ｓ１６０４でＮＯ）、当該ノードの子ノードに対して、表示ノード選択処理を再帰的に実行して得られた結果の和集合を表示ノードとする（Ｓ１６０６）。
【０１１６】
同様に、結合距離が切断距離未満で且つ両子ノードの視認性が良である場合も（Ｓ１６０５でＹＥＳ）、当該ノードの２つの子ノードに対して、表示ノード選択処理を再帰的に実行して得られた結果の和集合を表示ノードとする（Ｓ１６０６）。
【０１１７】
一方、結合距離が切断距離以上且つ両子ノードの視認性が否である場合（Ｓ１６０４でＹＥＳ）、又は結合距離が切断距離未満で且ついずれかの子ノードの視認性が良でない場合（Ｓ１６０５でＮＯ）、自ノードを表示ノードとする（Ｓ１６０７）。
【０１１８】
このようにして表示ノードが決定したら、それらのノードを所定のレイアウトアルゴリズムに従って実際に分割領域上に描画する。
【０１１９】
最後に、これまで説明してきた方法で論理的に描画された画像マップから矩形領域３０７を切り出す。
【０１２０】
図１７は矩形領域を切り出す一例である。１７０１は時間軸方向に帯状に延びる画像マップであり、１７０２は画像マップを切り抜いてメイン画面に表示する矩形領域である。矩形領域の左端１７０３の時間軸上での値は絶対位置である。矩形領域の右端の絶対時間Ｒ（１７０４）は絶対位置Ｐ、縮尺値Ｓ、矩形領域の横ピクセル数Ｗから次の式で与えられる。
【０１２１】
Ｒ＝Ｐ＋ＳＷ
１７０５，１７０６，１７０７，１７０８は画像マップの領域を各ノードに対応する領域Ａ〜Ｅに分割する境界線で、前述した方法で位置が決定されたものである。その結果、例えば画像マップ上でノードＤに配分される分割領域は境界線１７０７と１７０８に挟まれた領域１７１３となる。
【０１２２】
１７０９，１７１０，１７１１，１７１２は矩形領域上でそれぞれノードＡ、Ｂ、Ｃ、Ｄに対応付けられる分割された表示領域である。図示の例ではノードＥについては矩形領域には表示されない。また、ノードＡ、Ｄについては、境界線によって分割された全領域が矩形領域として画面に表示されるのではなく、一部が欠落して切り抜かれている。具体的には、ノードＤは画像マップ上で境界線によって割り当てられた領域１７１３の一部である、１７１２が矩形領域に表示されることになる。
【０１２３】
１７１４は上記のように描画範囲、目盛り、境界線が決定された矩形領域を実際に画面に表示した様子を例示している。
【０１２４】
［他の実施形態］
本発明は、前述した実施形態の機能を実現するコンピュータプログラムを、システムあるいは装置に直接あるいは遠隔から供給することによって達成される場合も含む。その場合、システム等のコンピュータが該コンピュータプログラムを読み出して実行することになる。
【０１２５】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるコンピュータプログラム自体も本発明を実現するものである。
【０１２６】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１２７】
プログラムを供給するための記録媒体（記憶媒体）としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク等がある。その他にも、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM、DVD-R)等がある。
【０１２８】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのものをダウンロードすることもできる。また圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するコンピュータプログラムを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【０１２９】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザが、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードすることもできる。この場合、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現する。
【０１３０】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行うことによっても実現され得る。
【０１３１】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットのメモリに書き込まれた後、該ボード等のＣＰＵ等が実際の処理の一部又は全部を行うことによっても実現される。
【図面の簡単な説明】
【０１３２】
【図１】本発明に係る実施形態の画像ファイル管理システムの一例を示す概略構成図である。
【図２】本実施形態の画像ファイル管理プログラムを実行する情報処理装置の構成を示す図である。
【図３】本実施形態の画像ファイル管理プログラムにより表示されるメイン画面を例示する図である。
【図４】本実施形態の画像ファイル管理プログラムによるファイル検索処理を示すフローチャートである。
【図５】本実施形態による管理対象ファイルを指定するための管理ルートフォルダのパスを設定するサブ画面を例示する図である。
【図６】本実施形態によるクラスタリング処理を示すフローチャートである。
【図７】本実施形態によるクラスタリング処理の具体例を説明するためのサンプル画像ファイルとその撮影日時の一覧を示す図である。
【図８】本実施形態のクラスタリング処理によって生成されるクラスタと撮影日時を時間軸上にプロットした図である。
【図９】本実施形態のクラスタリング処理によって生成されるクラスタと撮影日時の一覧である。
【図１０】本実施形態のクラスタリング処理によって生成される樹状図を例示する図である
【図１１】本実施形態の画像ファイル管理プログラムによるメイン画面に表示される矩形領域の描画処理を示すフローチャートである。
【図１２】本実施形態により矩形領域を分割する境界線の位置を示す図である。
【図１３】本実施形態のクラスタリング処理により得られた樹状図から画像マップに表示するノードを選択する処理を示すフローチャートである。
【図１４】本実施形態のクラスタリング処理により得られた樹状図と、樹状図に各ノードの視認性の計算結果を付加した場合の一例を示した図である。
【図１５】図１４において、ユーザにより設定された切断距離に基づいた表示ノードを示した図である。
【図１６】本実施形態により、ある切断距離においてノードに付与された視認性に基づいて表示ノードを決定する処理を示すフローチャートである。
【図１７】本実施形態により、画像マップから実際に表示する矩形領域を切り出す際の画像マップと矩形領域の対応関係を示した図である。
【符号の説明】
【０１３３】
１０１  ＰＣ
１０２  画像入力機器
１０３  データ転送用インタフェース
１０４  インターネット
１０５  フォトサイト
１０６  ＤＢ
１０７  他のＰＣ
２０１  ＣＲＴ
２０２  ＶＲＡＭ
２０３  ビットムーブユニット
２０４  キーボード
２０５  ポインティングデバイス
２０６  ＣＰＵ
２０７  ＲＯＭ
２０８  ＲＡＭ
２０９  ハードディスク
２１０  フロッピー（登録商標）ディスクドライブ
２１１  ネットワークインタフェース
３０１  矩形領域
３０２  境界線
３０３  サムネイル
３０４  アイコン
３０５  縮尺スライダバー
３０６  距離スライダバー
３０７  目盛り
【図１】
0005156335.tif 000002
【図２】
0005156335.tif 000003
【図４】
0005156335.tif 000004
【図５】
0005156335.tif 000005
【図６】
0005156335.tif 000006
【図７】
0005156335.tif 000007
【図８】
0005156335.tif 000008
【図９】
0005156335.tif 000009
【図１０】
0005156335.tif 000010
【図１１】
0005156335.tif 000011
【図１２】
0005156335.tif 000012
【図１３】
0005156335.tif 000013
【図１４】
0005156335.tif 000014
【図１６】
0005156335.tif 000015
【図１７】
0005156335.tif 000016
【図３】
0005156335.tif 000017
【図１５】
0005156335.tif 000018