(57)【特許請求の範囲】
【請求項１】
データベースからコンテンツツリーを生成し前記コンテンツツリーからリストを生成する第１モードと、前記コンテンツツリーを生成せずに前記データベースから直接前記リストを生成する第２モードとを有し、
コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が、前記コンテンツツリーを生成する際に要する時間が許容時間を超えるコンテンツ数である限界コンテンツ数を超えているか否かを判断する手段と、
前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が、前記コンテンツツリーから前記リストを生成する際に要する時間が前記データベースから直接前記リストを生成する際に要する時間を超えるコンテンツ情報数である限界コンテンツ情報数を超えているか否かを判断する手段と、
前記コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が前記限界コンテンツ数以下であると判断され、かつ、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数以下であると判断された場合に、前記第１モードを使用して前記リストを生成し、前記コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が前記限界コンテンツ数を超えていると判断された場合、又は、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数を超えていると判断された場合に、前記第２モードを使用して前記リストを生成するリスト生成手段とを備える、リスト生成装置。
【請求項２】
前記許容時間を設定し、前記コンテンツ記憶部に仮想的なコンテンツを記録した上で、前記リストを生成する際に要する時間を測定し、測定した時間と設定された前記許容時間とを比較することによって、前記限界コンテンツ数を決定する手段をさらに備える、請求項１に記載のリスト生成装置。
【請求項３】
データベースからコンテンツツリーを生成し前記コンテンツツリーからリストを生成する第１モードと、前記コンテンツツリーを生成せずに前記データベースから直接前記リストを生成する第２モードとを有し、
前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が、前記コンテンツツリーから前記リストを生成する際に要する時間が前記データベースから直接前記リストを生成する際に要する時間を超えるコンテンツ情報数である限界コンテンツ情報数を超えているか否かを判断する手段と、
前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数以下であると判断された場合に、前記第１モードを使用して前記リストを生成し、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数を超えていると判断された場合に、前記第２モードを使用して前記リストを生成するリスト生成手段とを備える、リスト生成装置。
【請求項４】
前記コンテンツ記憶部に仮想的なコンテンツを記録した上で、前記コンテンツツリーから前記リストを生成する際に要する時間と、前記データベースから直接前記リストを生成する際に要する時間とを測定し、これらの時間を比較することによって、前記限界コンテンツ情報数を決定する手段をさらに備える、請求項１または３に記載のリスト生成装置。
【請求項５】
請求項１〜４のいずれかに記載のリスト生成装置の各手段をコンピュータに実行させる、リスト生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツリストを生成するリスト生成装置に関する。
【背景技術】
【０００２】
ＨＤＤやフラッシュメモリ等の記憶媒体に多数のコンテンツ（例えば曲ファイル）が記録されており、ＨＤＤから曲ファイルを読み出して再生するコンテンツ再生装置が提供されている。コンテンツ再生装置には、再生モードとしてアーティストモード、アルバムモード、トラックモード等が存在する（例えば下記特許文献１参照）。アーティストモードは、最初にアーティストリスト（五十音順及び／又はアルファベット順のアーティスト名の一覧）が表示され、アーティストリストの中から１つのアーティスト名を選択し、次に、選択されたアーティスト名で特定されるアルバムリストの中から１つのアルバム名を選択し、次に、選択されたアルバム名で特定されるトラックリストの中から１つのトラック名を選択する再生モードである。アルバムモードは、最初にアルバムリスト（五十音順及び／又はアルファベット順のアルバム名の一覧）が表示され、アルバムリストからアルバム名を選択し、次に、選択されたアルバム名で特定されるトラックリストからトラック名を選択する再生モードである。トラックモードは、最初にトラックリスト（五十音順及び／又はアルファベット順のトラック名の一覧）が表示され、トラックリストから１つのトラック名を選択する再生モードである。
【０００３】
上記の各モードにおいて、コンテンツリスト（アーティストリスト、アルバムリスト、トラックリスト等）を生成する処理を迅速化するための技術が提案されている。1つは、ユーザ操作によるリスト表示指示、又は、ＣＰＵが発行する検索指示のたびに、ＲＤＢ等のデータベースにアクセスしてコンテンツリストを生成する方法である。もう一つは、コンテンツ再生装置を電源オン状態にする際や、ＨＤＤに記録するコンテンツの更新時にのみ、ＲＤＢにアクセスしてコンテンツツリーを生成し、以後コンテンツツリーを使用してコンテンツリストを生成する方法である。
【０００４】
上記各方法にはそれぞれ以下の利点および欠点が存在する。まず、１つ目のＲＤＢにアクセスしてコンテンツリストを生成する方法では、コンテンツツリーを生成する必要がないことが利点である。コンテンツツリーは、アーティストツリー、アルバムツリー、トラックツリー等の各カテゴリのツリーが必要であり、その生成処理の負荷が非常に大きい。従って、コンテンツツリーを生成しないことにより、ユーザへの待ち時間を短縮できる。一方、欠点としては、ＲＤＢＭＳのSELECTの結果抽出されるROW（行）セットを、Application用のメモリへコピーする必要があり、その作業に時間が掛かることがある。また、例えば「アーティストＡのアルバムの数を取得」又は「アーティストＡのアルバムの総再生時間を取得」のような指示に対して、ＲＤＢの全ての行を検索し、数える必要があり、実行に時間が掛かる。
【０００５】
次に、コンテンツツリーを利用する方法においては、例えば「アーティストＡのアルバムの数を取得」又は「アーティストＡのアルバムの総再生時間を取得」のような指示に対して、アーティストツリーのアルバムノード数を数える、又は、アーティストツリーの生成時に事前に数え、オブジェクトのメンバとして保持しておき、それを返すことにより、高速に処理できる。一方、欠点としては、ＨＤＤに記録されているコンテンツ数が多くなると、コンテンツツリーの生成に膨大な時間を要する。編集やＨＤＤへのコンテンツ記録を行うたびに、コンテンツツリーの再生成が必要であるので、その待ち時間が非常に長くなる。また、メモリにコンテンツツリーを大量に保持するので、メモリ利用率が高くなる。また、ＲＤＢＭＳとメモリ上のツリーの整合性があるかというチェック処理も煩雑である。
【０００６】
上記の通り、上記いずれの方法においても、全ての状況において処理を高速化、簡易化することはできない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−９７６７８  号公報
【特許文献２】特開２０１０−２５７３６８号公報
【特許文献３】特開２０００−８２００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は上記従来の課題を解決するためになされたものであり、その目的は、コンテンツ記憶部に記録されているコンテンツ数によらず、リスト生成処理をより迅速に実行できるリスト生成装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の別の好ましい実施形態によるリスト生成装置は、データベースからコンテンツツリーを生成し前記コンテンツツリーからリストを生成する第１モードと、前記コンテンツツリーを生成せずに前記データベースから直接前記リストを生成する第２モードとを有し、コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が、前記コンテンツツリーを生成する際に要する時間が許容時間を超えるコンテンツ数である限界コンテンツ数を超えているか否かを判断する手段と、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が、前記コンテンツツリーから前記リストを生成する際に要する時間が前記データベースから直接前記リストを生成する際に要する時間を超えるコンテンツ情報数である限界コンテンツ情報数を超えているか否かを判断する手段と、前記コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が前記限界コンテンツ数以下であると判断され、かつ、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数以下であると判断された場合に、前記第１モードを使用して前記リストを生成し、前記コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が前記限界コンテンツ数を超えていると判断された場合、又は、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数を超えていると判断された場合に、前記第２モードを使用して前記リストを生成するリスト生成手段とを備える。
【００１２】
コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が限界コンテンツ数以下である場合、データベースからコンテンツツリーを生成するのに要する時間は許容時間以下であり、コンテンツツリーは比較的迅速に生成することができる。また、コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数以下である場合、コンテンツツリーからリストを生成する際に要する時間はデータベースからリストを生成する際に要する時間以下である。従って、コンテンツツリーを生成し、コンテンツツリーからコンテンツリストを生成することで、全体の処理を迅速化できる。
【００１３】
一方、コンテンツ記憶部に記録されているコンテンツのコンテンツ総数が限界コンテンツ数を超えている場合、データベースからコンテンツツリーを生成するのに要する時間は許容時間を超え、待ち時間が長くなる。また、コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数を超えている場合、コンテンツツリーからリストを生成する際に要する時間はデータベースからリストを生成する際に要する時間を超えている。従って、コンテンツツリーを生成せず、データベースから直接コンテンツリストを生成することで、全体の処理を迅速化できる。
【００１４】
好ましい実施形態においては、前記許容時間を設定し、前記コンテンツ記憶部に仮想的なコンテンツを記録した上で、前記リストを生成する際に要する時間を測定し、測定した時間と設定された前記許容時間とを比較することによって、前記限界コンテンツ数を決定する手段をさらに備える。
【００１５】
この場合、許容時間を変更することによって、限界コンテンツ数を変更することができるので、ユーザが所望の許容時間に適宜変更することができる。
【００１６】
本発明の別の好ましい実施形態によるリスト生成装置は、データベースからコンテンツツリーを生成し前記コンテンツツリーからリストを生成する第１モードと、前記コンテンツツリーを生成せずに前記データベースから直接前記リストを生成する第２モードとを有し、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が、前記コンテンツツリーから前記リストを生成する際に要する時間が前記データベースから直接前記リストを生成する際に要する時間を超えるコンテンツ情報数である限界コンテンツ情報数を超えているか否かを判断する手段と、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数以下であると判断された場合に、前記第１モードを使用して前記リストを生成し、前記コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が前記限界コンテンツ情報数を超えていると判断された場合に、前記第２モードを使用して前記リストを生成するリスト生成手段とを備える。
【００１７】
コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数以下である場合、コンテンツツリーからリストを生成する際に要する時間はデータベースからリストを生成する際に要する時間以下である。従って、コンテンツツリーを生成し、コンテンツツリーからコンテンツリストを生成することで、全体の処理を迅速化できる。一方、コンテンツ記憶部に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数を超えている場合、コンテンツツリーからリストを生成する際に要する時間はデータベースからリストを生成する際に要する時間を超えている。従って、コンテンツツリーを生成せず、データベースから直接コンテンツリストを生成することで、全体の処理を迅速化できる。
【００１８】
好ましい実施形態においては、前記コンテンツ記憶部に仮想的なコンテンツを記録した上で、前記コンテンツツリーから前記リストを生成する際に要する時間と、前記データベースから直接前記リストを生成する際に要する時間とを測定し、これらの時間を比較することによって、前記限界コンテンツ情報数を決定する手段をさらに備える。
【発明の効果】
【００１９】
本発明は上記構成を有することによって、コンテンツ記憶部に記録されているコンテンツ数によらず、リスト生成処理をより迅速に実行できるリスト生成装置を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の好ましい実施形態によるコンテンツ再生装置１００を示すブロック図である。
【図２】コンテンツツリー（アーティストツリー）の一例を示す図である。
【図３】ソフトウェアの構造を示す模式図である。
【図４】ＣＰＵ１の処理を示すフローチャートである。
【図５】許容時間と限界コンテンツ数との関係を示すイメージ図である。
【図６】ＣＰＵ１の処理を示すフローチャートである。
【図７】ＣＰＵ１の処理を示すフローチャートである。
【図８】ＣＰＵ１の処理を示すフローチャートである。
【図９】ＣＰＵ１の処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の好ましい実施形態について、図面を参照して具体的に説明するが、本発明はこれらの実施形態には限定されない。
【００２２】
図１は、本発明の好ましい実施形態によるコンテンツ再生装置（以下、再生装置という。）１００を示す概略ブロック図である。再生装置１００は、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、ＨＤＤやフラッシュメモリ等のコンテンツ記憶部４、再生部５、表示部６、及び、操作部７を備える。これらは、バスを介して互いに接続されている。また、再生部５には、図示しないスピーカーが接続されている。コンテンツは、映像（画像）データ、及び／又は、音声（音楽、曲）データの総称であるが、本例では、曲ファイル（以下、トラックともいう。）である。
【００２３】
ＨＤＤ４には複数の曲ファイルが記録されている。ＨＤＤ４に記録されている曲ファイルは、ＣＰＵ１の指示によって読み出され、再生部５によって再生処理（例えば、デコード処理、Ｄ／Ａ変換、増幅処理等）が実行される。再生部５によって再生された音声信号はスピーカーに供給され、音声が出力される。
【００２４】
ＨＤＤ４には、コンテンツ情報データベースが格納されている。コンテンツ情報ＤＢには、ＨＤＤ４に記録されている全曲ファイルに関して、複数カテゴリのコンテンツ情報が格納されている。複数カテゴリのコンテンツ情報には、アーティスト名、アルバム名、トラック名（曲名）等のメタデータ、及び、ｄＢＩＤ等が含まれる。ｄＢＩＤは、曲ファイルを示す識別情報であり、曲ファイルがＨＤＤ４に記録される際に付与される。
【００２５】
コンテンツ情報データベースとしては、本例では、リレーショナルデータベース（以下、ＲＤＢという。）が採用される。ＲＤＢは、１件のデータを複数の項目(フィールド)の集合として表現し、データの集合をテーブルと呼ばれる表で表す方式で、ＩＤ番号や名前などのキーとなるデータを利用して、データの結合や抽出を容易に行うことができる。ＲＤＢを管理するソフトウェアをＲＤＢＭＳ（Relational DataBase Management System）という。
【００２６】
表示部６は、曲ファイルのコンテンツ情報（アーティスト名、アルバム名、トラック名等）の一覧であるコンテンツリスト（アーティストリスト、アルバムリスト、トラックリスト）を表示するものであり、ＬＣＤ（液晶ディスプレイ）やＦＬ管等である。操作部７は、ユーザ操作を受け付けるものであり、操作ボタンやリモコン送受信機等である。ユーザが操作部７を操作して表示部６に表示された曲リストを参照し再生すべき曲ファイルを選択することにより、再生部５は選択された曲ファイルを再生する。また、再生部５は、選択された曲ファイルを再生し終えると、曲リストにおける次の曲ファイルを選択して再生する。
【００２７】
ＣＰＵ１は、再生装置１００全体を制御するものであり、ＲＯＭ３またはＨＤＤ４に格納されたプログラム（例えば、リスト生成プログラム等）をＲＡＭ２内に読み出して実行することにより、後述する各処理を実行する。
【００２８】
再生装置１００には、複数の再生モードが設けられている。再生モードは、曲ファイルを選択する際に、複数カテゴリのコンテンツ情報の内、最初にどのカテゴリのコンテンツ情報を使って曲ファイルを選択するかを示すものである。例えば、再生モードには、アーティストモード、アルバムモード、トラックモード等が含まれる。
【００２９】
アーティストモードは、最初にアーティストリスト（五十音順及び／又はアルファベット順のアーティスト名の一覧）が表示され、アーティストリストの中から１つのアーティスト名を選択し、次に、選択されたアーティスト名で特定されるアルバムリストの中から１つのアルバム名を選択し、次に、選択されたアルバム名で特定されるトラックリストの中から１つのトラック名を選択する再生モードである。アルバムモードは、最初にアルバムリスト（五十音順及び／又はアルファベット順のアルバム名の一覧）が表示され、アルバムリストからアルバム名を選択し、次に、選択されたアルバム名で特定されるトラックリストからトラック名を選択する再生モードである。トラックモードは、最初にトラックリスト（五十音順及び／又はアルファベット順のトラック名の一覧）が表示され、トラックリストから１つのトラック名を選択する再生モードである。
【００３０】
図２は、コンテンツツリーの一例としてアーティストツリーを示す模式図である。アーティストツリーは、４階層で構成される。最上位の階層はルートノードであり、コンテンツツリーがどのタイプのツリーであるかを決定するものである。例えば、このルートノードのrootKindId=3の場合、アーティストツリーであることを示す。また、ＲＤＢを検索してアーティストツリーを生成するので、ルートノードには、ＨＤＤ４内に記録されているコンテンツの全アーティスト数、全再生時間等の情報を格納することができる。
【００３１】
次の階層は、アーティスト階層である。アーティスト階層の各ノードには、アーティストを特定するartistId、アーティスト名、アーティストノードが保持するアルバムの総数、アーティストの全コンテンツを再生したときの総再生時間等が格納される。これらの情報も、ＲＤＢの検索時に取得され、各ノードに格納される。
【００３２】
次の階層は、アルバム階層である。アルバム階層の各ノードには、アルバムを特定するalbumId、アルバム名、アルバムノードが保持するトラック総数、アルバムの全コンテンツを再生したときの総再生時間等が格納されている。
【００３３】
最下段の階層は、トラック階層である。トラック階層の各ノードは、トラックを特定するtrackId、トラック名、トラックの再生時間等が格納されている。コンテンツツリーを生成しＲＡＭ２に記憶しておくことによって、あるアルバム内のトラックの情報を取得するといった検索処理は、ＩＤを上位階層のノードから順に指定し、そのノードに格納されている情報（トラック名等）を返すだけの処理でよい。
【００３４】
図３は、再生装置１００におけるソフトウェア階層図を示す。上からアプリケーション層、中間層、デバイス制御部（ドライバ）、ツリーオブジェクト、オーディオデバイス、ＲＤＢＭＳが存在する。アプリケーション層は、表示部６へのリストやコンテンツ情報の表示、ユーザ操作によるキーの受付、ステータスの表示等を実行する。中間層は、上位レイヤーと下位レイヤーとを仲介するための層である。デバイス制御部は、主にハードウェア（オーディオデバイス）を制御するための層である。ツリーオブジェクトは、アーティストツリー、アルバムツリー、トラックツリー等を生成する。オーディオデバイスは、ＤＳＰ等の再生デバイスである。
【００３５】
再生装置１００は、リスト（アーティストリスト、アルバムリスト、トラックリスト）を生成する際のモードとして、データベース（ＲＤＢ）からコンテンツツリーを生成し、コンテンツツリーからコンテンツリストを生成する第１モードと、コンテンツツリーを生成せずにＲＤＢから直接コンテンツリストを生成する第２モードとを有する。
【００３６】
ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツのコンテンツ総数が、コンテンツツリーを生成する際に要する時間が許容時間を超えるコンテンツ数である限界コンテンツ数を超えているか否かを判断する。また、ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツの所定カテゴリのコンテンツ情報（例えばアーティスト）の総数が、コンテンツツリーからコンテンツリストを生成する際に要する時間がＲＤＢから直接コンテンツリストを生成する際に要する時間を超えるコンテンツ情報数である限界コンテンツ情報数を超えているか否かを判断する。
【００３７】
ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツのコンテンツ総数が限界コンテンツ数以下であると判断し、かつ、ＨＤＤ４に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数以下であると判断した場合に、第１モードを使用してリストを生成する。一方、ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツのコンテンツ総数が限界コンテンツ数を超えていると判断した場合、又は、ＨＤＤ４に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数を超えていると判断された場合に、第２モードを使用してリストを生成する。
【００３８】
あるいは、ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツのコンテンツ総数が限界コンテンツ数以下であると判断した場合に、第１モードを使用してリストを生成し、ＨＤＤ４に記録されているコンテンツのコンテンツ総数が限界コンテンツ数を超えていると判断した場合に、第２モードを使用してリストを生成するようにしてもよい。あるいは、ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数以下であると判断した場合に、第１モードを使用してリストを生成し、ＨＤＤ４に記録されているコンテンツの所定カテゴリのコンテンツ情報の総数が限界コンテンツ情報数を超えていると判断した場合に、第２モードを使用してリストを生成するようにしてもよい。
【００３９】
ＣＰＵ１は、上記処理において、許容時間を設定し、ＨＤＤ４に仮想的なコンテンツを記録した上で、リストを生成する際に要する時間を測定し、測定した時間と設定された許容時間とを比較することによって、限界コンテンツ数を決定する。また、ＣＰＵ１は、上記処理において、ＨＤＤ４に仮想的なコンテンツを記録した上で、コンテンツツリーからリストを生成する際に要する時間と、ＲＤＢから直接リストを生成する際に要する時間とを測定し、これらの時間を比較することによって、限界コンテンツ情報数を決定する。
【００４０】
コンテンツツリーが生成されＲＡＭ２に記憶されると、アプリケーション層からの情報取得はコンテンツツリーを利用することで高速に実行することができる。しかし、コンテンツツリーの生成処理に要する時間がＨＤＤ４に記録されているコンテンツ数の増加に伴い長くなる。従って、上記の通り、ＨＤＤ４に記録されているコンテンツ数に応じて、第１モードと第２モードとを切換えることで、迅速な方のモードでコンテンツリストを生成することができる。さらに、コンテンツツリーの上位層から下位層に向かってノードを辿りコンテンツ情報を取得する際に要する時間は、コンテンツ数が少ない場合は、ノードを辿る時間が少なくて済むので、ＲＤＢへ直接アクセスするよりも高速であるが、ノード数が増える（つまりコンテンツ数が増える）と、このノードを探索する時間が増えるので、ＲＤＢにアクセスする方が高速になる。従って、所定カテゴリのコンテンツ情報の総数（つまりノードの数）に応じて、第１モードと第２モードとを切換えることで、迅速な方のモードでリストを生成することができる。
【００４１】
以下、本例の動作を説明する。図４は、限界コンテンツ数を決定するＣＰＵ１の処理を示すフローチャートである。まず、ＣＰＵ１は、コンテンツツリーを生成する際にユーザが待つことが可能な時間である許容時間をt_maxとして設定する（Ｓ４０１）。許容時間は、ユーザ操作によって設定されてもよく、再生装置１００の製造者によって予め設定されてもよい。許容時間t_maxは、例えば３０秒に設定される。
【００４２】
ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツ数を０に初期化する（Ｓ４０２）。つまり、ＨＤＤ４内に記録されているコンテンツがあれば一旦全て削除する。次に、ＣＰＵ１は、現在、ＨＤＤ４またはＲＡＭ２にツリーオブジェクトが記憶されていれば、それを削除する（Ｓ４０３）。次に、ＣＰＵ１は、ループ処理を開始する（Ｓ４０４〜Ｓ４１２）。ループ処理によって、許容時間t_maxに収まるコンテンツ数が判断される。
【００４３】
まず、ＣＰＵ１は、同一アーティスト名のアルバムを３つ生成し、各アルバムにはトラックを１０曲含めた状態にて、曲ファイルをＨＤＤ４に記録する（Ｓ４０５）。すなわち、ＣＰＵ１は、ＨＤＤ４の内部に、仮想的に３０曲分の曲ファイルを生成し、記録する。なお、同一アーティスト名のアルバム３つ、各アルバム内のトラックが１０曲ずつという状況は、一般的なユーザの利用形態を模擬するためのものである。そして、アーティスト名をループのたびに（つまり、Ｓ４１２でＮＯと判断された結果、Ｓ４０４に戻った際に）、変更することによって、アーティストツリー、アルバムツリーが偏らない状態にできる。なお、ループのたびにアルバム名、トラック名の頭文字も、ランダムに設定される必要がある。毎回同一であると、ツリーオブジェクトが偏った態様になっていまい、適切にツリー生成時間の測定を実行できなくなるからである。
【００４４】
ＣＰＵ１は、ＨＤＤ４内の総トラック数（ＲＡＭ２上で管理している変数）を３０加算する（Ｓ４０６）。これは、Ｓ４０５において、トラックをＨＤＤに３０曲記録したからである。続いて、ＣＰＵ１は、アーティストツリーを生成開始し、その開始時刻t=0に設定し、タイマーカウントを開始する（Ｓ４０７）。ＣＰＵ１は、アーティストツリーの生成を終了すると（Ｓ４０８）、続いてアルバムツリーおよびトラックツリーを生成する（Ｓ４０９、Ｓ４１０）。ＣＰＵ１は、全てのツリーを生成し終えると、タイマーカウントを終了し、カウント時間ｔの値を確定する（Ｓ４１１）。
【００４５】
ＣＰＵ１は、Ｓ４１１で確定したカウント時間ｔが、t > t_maxであるか否かを判断する（Ｓ４１２）。すなわち、現在ＨＤＤ４に仮想的に記録したコンテンツ数において、全コンテンツツリーを生成するために要した時間が、許容時間をt_maxを超えているか否かが判断される。未だt が t_max以下である場合（Ｓ４１２でＮＯ）、ＣＰＵ１は、処理をＳ４０４に戻し、さらに３０曲の曲ファイルをＨＤＤ４に仮想的に記録し、コンテンツツリーを生成するのに要する時間を再度計測する。
【００４６】
Ｓ４１２において、t > t_maxであると判断された場合（Ｓ４１２でＹＥＳ）、ループ処理を終了する。ＣＰＵ１は、コンテンツツリーを生成するか否かの判断材料となる限界コンテンツ数として、現在ＲＡＭ２で管理しているＨＤＤに仮想的に記録した総トラック数を、変数max_contentsNumに保持する（Ｓ４１３）。
【００４７】
図５は、限界コンテンツ数を説明するイメージ図である。図５においては、横軸にＨＤＤ４内に記録されている総トラック数を示し、縦軸に全てのコンテンツツリーを生成するために要する時間を示している。許容時間t_maxに対応するコンテンツ数が、限界コンテンツ数max_ContentsNumとして決定されている。ＣＰＵ１は、後述する処理によって、ＨＤＤ４に記録されているコンテンツ数が限界コンテンツ数Max_ContentsNum以下である場合は、第１モードにてコンテンツツリーを生成しコンテンツリストを生成し、ＨＤＤ４に記録されているコンテンツ数が限界コンテンツ数Max_ContentsNumより大である場合は、第２モードにてコンテンツツリーを生成せずに、ＲＤＢに直接アクセスしてコンテンツリストを生成する。
【００４８】
図６は、コンテンツリスト生成に要する時間を測定し、限界コンテンツ情報数を決定する処理を示すフローチャートである。ＣＰＵ１は、ＨＤＤ４内に記録されているコンテンツを全て消去する（Ｓ６０１）。ＣＰＵ１は、ＲＡＭ２に記憶されているツリーオブジェクトをすべて破棄する（Ｓ６０２）。ＣＰＵ１は、各カテゴリのコンテンツ情報の変数を初期化する（Ｓ６０３）。この変数は、ＨＤＤ４内に記録されているコンテンツのアーティスト総数artNum、アルバム総数albNum、および、トラック総数trkNumである。
【００４９】
ＣＰＵ１は、Ｓ６０４から、ループ処理（Ｓ６０４〜Ｓ６１８）を開始する。このループ処理は、各カテゴリのコンテンツ情報毎に、限界コンテンツ情報数を決定する処理である。まず、ＣＰＵ１は、同一アーティスト名のアルバムを３つ生成し、各アルバムにはトラックを１０曲ずつ含めた状態で、曲ファイルを生成し、ＨＤＤ４に記録する（Ｓ６０５）。すなわち、ＣＰＵ１は、ＨＤＤ４の内部に仮想的に３０曲分の曲ファイルを生成し、記録する。
【００５０】
ＣＰＵ１は、ＲＡＭ２上で管理しているアーティスト総数artNumに１を加算し、アルバム総数albNumに３を加算し、トラック総数trkNumに３０を加算する（Ｓ６０６）。続いて、ＣＰＵ１は、ＲＤＢにアクセスして、アーティストツリーを生成する（Ｓ６０７）。そして、ＣＰＵ１は、アーティストツリーのツリーオブジェクトに対して、アーティストリスト生成指示を与える。ＣＰＵ１は、アーティストツリーを使ってアーティストリストを生成するために要した時間を計測する。ＣＰＵ１は、計測した時間を、変数tree_GetType1_timeとしてＲＡＭ２に保存する（Ｓ６０８）。続いて、ＣＰＵ１は、ＲＤＢＭＳに対して、アーティストリスト取得指示を与える。ＣＰＵ１は、コンテンツツリーの代わりにＲＤＢを使用してアーティストリストを生成するために要した時間を計測する。ＣＰＵ１は、計測した時間を、db_GetType1_timeとしてＲＡＭ２に保存する（Ｓ６０９）。
【００５１】
次に、ＣＰＵ１は、ツリーオブジェクトに対して、アーティストリストのカーソルダウン処理の指示を与える。ＣＰＵ１は、アーティストツリーを使って、アーティストリストを１行分カーソルダウンする（すなわち、１行分のコンテンツ情報を新たに生成する）ために要した時間を計測する。ＣＰＵ１は、計測した時間を、変数tree_GetType2_timeとしてＲＡＭに保存する（Ｓ６１０）。続いて、ＣＰＵ１は、ＲＤＢＭＳに対して、アーティストリストのカーソルダウン処理の指示を与える。ＣＰＵ１は、アーティストツリーの代わりにＲＤＢを使って、アーティストリストを１行分カーソルダウンする（すなわち、１行分のコンテンツ情報を新たに生成する）ために要した時間を計測する。ＣＰＵ１は、計測した時間を、変数db_GetType2_timeとしてＲＡＭ２に保存する（Ｓ６１０）。
【００５２】
次に、ＣＰＵ１は、ツリーオブジェクトに対して、アーティスト階層からアルバム階層へ移行する指示を与える。ＣＰＵ１は、コンテンツツリーを使用して、アーティストリストが表示されている状態からアーティストが選択されアルバムリストが表示される際のアルバムリスト生成に要する時間を測定する。ＣＰＵ１は、測定した時間を、tree_GetType3_timeとしてＲＡＭ２に保存する（Ｓ６１１）。続いて、ＣＰＵ１は、ＲＤＢＭＳに対して、アーティスト階層からアルバム階層へ移行する指示を与える。ＣＰＵ１は、ＲＤＢを使用して、アーティストリストが表示されている状態からアーティストが選択されアルバムリストが表示される際のアルバムリスト生成に要する時間を測定する。ＣＰＵ１は、測定した時間を、db_GetType3_timeとしてＲＡＭ２に保存する（Ｓ６１１）。
【００５３】
次に、ＣＰＵ１は、ツリーオブジェクトに対して、アルバム階層からトラック階層へ移行する指示を与える。ＣＰＵ１は、コンテンツツリーを使用して、アルバムリストが表示されている状態からアルバムが選択されトラックリストが表示される際のトラックリスト生成に要する時間を測定する。ＣＰＵ１は、測定した時間を、tree_GetType4_timeとしてＲＡＭ２に保存する（Ｓ６１２）。続いて、ＣＰＵ１は、ＲＤＢＭＳに対して、アルバム階層からトラック階層へ移行する指示を与える。ＣＰＵ１は、ＲＤＢを使用して、アルバムリストが表示されている状態からアルバムが選択されトラックリストが表示される際のトラックリスト生成に要する時間を測定する。ＣＰＵ１は、測定した時間を、db_GetType4_timeとしてＲＡＭ２に保存する（Ｓ６１２）。
【００５４】
次に、ＣＰＵ１は、Ｎ＝１、２、３、４の少なくとも１つについて、tree_GetTypeN_time > db_GetTypeN_timeの関係を満足するか否かを判断する（Ｓ６１３）。すなわち、コンテンツツリーを使用してコンテンツリストを生成する処理の方が、ＲＤＢに直接アクセスしてコンテンツリストを生成する処理よりも時間がかかる処理が存在するか否かが判断される。全てのNについて、tree_GetTypeN_time が db_GetTypeN_time以下である場合（Ｓ６１３でＮＯ）、Ｓ６０４に戻り、ＨＤＤ４に仮想的に曲ファイルをさらに３０曲記録して、Ｓ６０５〜Ｓ６１２の処理を繰り返す。
【００５５】
いずれかのＮについて、tree_GetTypeN_time
> db_GetTypeN_timeの関係を満足する場合（Ｓ６１３でＹＥＳ）、ＣＰＵ１は、どのＮについて、tree_GetTypeN_time > db_GetTypeN_timeの関係を満足するかを特定する（Ｓ６１４）。ここで、Ｎ＝１又は２について上記関係を満足する場合にはＳ６１５を実行し、Ｎ＝３について上記関係を満足する場合にはＳ６１６を実行し、Ｎ＝４について上記関係を満足する場合にはＳ６１７を実行する。
【００５６】
Ｓ６１５では、現在のアーティスト総数artNumをアーティストの限界コンテンツ情報数としてＲＡＭ２に保存する。Ｓ６１６では、現在のアルバム総数albNumをアルバムの限界コンテンツ情報数としてＲＡＭ２に保存する。Ｓ６１７では、現在のトラック総数trkNumをトラックの限界コンテンツ情報数としてＲＡＭ２に保存する。ＣＰＵ１は、全てのＮについて、tree_GetTypeN_time > db_GetTypeN_timeの関係を満足しているか否かを判断する（Ｓ６１８）。未だ、全てのＮについて、tree_GetTypeN_time
> db_GetTypeN_timeの関係を満足していない場合（Ｓ６１８でＮＯ）、ＣＰＵ１は、Ｓ６０４に戻り、ＨＤＤ４に仮想的に曲ファイルをさらに３０曲記録して、Ｓ６０５〜Ｓ６１７の処理を繰り返す。但し、アーティスト総数artNum、アルバム総数albNum、トラック総数trkNumのうち、既にＳ６１５〜Ｓ６１７において限界コンテンツ情報数を決定し、ＲＡＭ２に保存しているコンテンツ情報については、再度更新しない。全てのＮについて、tree_GetTypeN_time > db_GetTypeN_timeの関係を満足した場合（Ｓ６１８でＹＥＳ）、本処理を終了する。
【００５７】
図７は、第１モードと第２モードとのどちらを使用するかを切換えるＣＰＵ１の処理を示すフローチャートである。ＣＰＵ１は、再生装置１００を電源オン状態にする際（初回起動時）、又は、ＨＤＤ４に新たなコンテンツを記録、分割、結合又は削除等してＲＤＢの内容が更新される（又はＲＤＢに登録されているコンテンツ情報がユーザ操作によって書き換えられる）際に（Ｓ７０１）、現在ＨＤＤ４に記録されている曲ファイルの総数を取得し、コンテンツ総数が限界コンテンツ数max_ContentsNumを超えているか否かを判断する（Ｓ７０２）。この判断処理は、以下の各判断処理より先に実行される。
【００５８】
コンテンツ総数が限界コンテンツ数max_ContentsNumを超えている場合（Ｓ７０２でＹＥＳ）、コンテンツツリーを生成するのに要する時間が許容時間を超えているので、ＣＰＵ１は、第２モード、つまり、コンテンツツリーを生成せずにＲＤＢに直接アクセスしてコンテンツリストを生成する方法に決定する（Ｓ７０６）。一方、コンテンツ総数が限界コンテンツ数max_ContentsNum以下である場合（Ｓ７０２でＮＯ）、コンテンツツリーを生成するのに要する時間は許容時間以下である。
【００５９】
従って、ＣＰＵ１は、ＨＤＤ４に記録されているコンテンツの全アーティスト数がアーティストの限界コンテンツ情報数artNumを超えているか否かを判断する（Ｓ７０３）。全アーティスト数がアーティストの限界コンテンツ情報数artNumを超えている場合（Ｓ７０３でＹＥＳ）、コンテンツツリーを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間が、ＲＤＢを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間よりも長いので、ＣＰＵ１は、第２モードに決定する（Ｓ７０６）。
【００６０】
全アーティスト数がアーティストの限界コンテンツ情報数artNum以下である場合（Ｓ７０３でＮＯ）、ＣＰＵ１は、次に、ＨＤＤ４に記録されているコンテンツの全アルバム数がアルバムの限界コンテンツ情報数albNumを超えているか否かを判断する（Ｓ７０４）。全アルバム数がアルバムの限界コンテンツ情報数albNumを超えている場合（Ｓ７０４でＹＥＳ）、コンテンツツリーを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間が、ＲＤＢを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間よりも長いので、ＣＰＵ１は、第２モードに決定する（Ｓ７０６）。
【００６１】
全アルバム数がアルバムの限界コンテンツ情報数albNum以下である場合（Ｓ７０４でＮＯ）、ＣＰＵ１は、次に、ＨＤＤ４に記録されているコンテンツの全トラック数がトラックの限界コンテンツ情報数trkNumを超えているか否かを判断する（Ｓ７０５）。全トラック数がトラックの限界コンテンツ情報数trkNumを超えている場合（Ｓ７０５でＹＥＳ）、コンテンツツリーを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間が、ＲＤＢを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間よりも長いので、ＣＰＵ１は、第２モードに決定する（Ｓ７０６）。
【００６２】
一方、全トラック数がトラックの限界コンテンツ情報数trkNum以下である場合（Ｓ７０５でＮＯ）、コンテンツツリーを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間が、ＲＤＢを使用してコンテンツリストを生成する又はコンテンツリストをスクロールする処理に要する時間以下であるので、ＣＰＵ１は、コンテンツツリーを生成し、コンテンツツリーからコンテンツリストを生成する第１モードに決定する（Ｓ７０７）。以上の処理によって、初回起動時およびＲＤＢ更新時の待ち時間を短くすることができ、かつ、コンテンツリスト生成やリストスクロール処理も待ち時間を短く実行することができる。
【００６３】
なお、図７の処理に代えて図８の処理が実行されてもよい。図８では、Ｓ７０３〜Ｓ７０５が省略されている。また、図７の処理に代えて図９の処理が実行されてもよい。図９ではＳ７０２が省略されている。
【００６４】
以上、本発明の好ましい実施形態を説明したが、本発明はこれらの実施形態には限定されない。アーティスト、アルバム、トラック以外のカテゴリのコンテンツ情報についてのリスト（例えばジャンルリスト）を生成する場合も同様である。本発明のリスト生成装置を動作させるためのコンピュータプログラムまたはそのコンピュータプログラムを記録した記録媒体という形態で提供されてもよい。
【産業上の利用可能性】
【００６５】
本発明はＨＤＤ等の記憶媒体を備えたコンテンツ再生装置やＰＣ等に好適に適用され得る。
【符号の説明】
【００６６】
１００      コンテンツ再生装置
１          ＣＰＵ
２          ＲＡＭ
３          ＲＯＭ
４          ＨＤＤ
５          再生部
６          表示部
７          操作部
【図１】
0005573744.tif 000002
【図２】
0005573744.tif 000003
【図３】
0005573744.tif 000004
【図４】
0005573744.tif 000005
【図５】
0005573744.tif 000006
【図６】
0005573744.tif 000007
【図７】
0005573744.tif 000008
【図８】
0005573744.tif 000009
【図９】
0005573744.tif 000010