(57)【要約】【課題】省メモリで高速にコンテンツデータをソート可能なカーオーディオ装置を得ること。【解決手段】コンテンツデータである音楽データ３１をＨＤＤ１７に録音するとともに、アーティスト名や曲名など、関連する情報を音楽情報データ３２として保存する。さらに、ソート用データ作成部２１は、音楽情報データの項目のいずれかをソートキーとして基数ソートを行う場合の処理手順に従って音楽情報データ３２を加工したソート用データ３３を予め作成してＨＤＤ１７に保存する。基数ソート処理部２２は、基数ソートを実行する場合に、ソート用データ３３を読み出して使用することで、ソート処理の実行中におけるＨＤＤ１７へのアクセス回数を減らし、省メモリで高速な基数ソートを実行する。【選択図】        図１
2006073063.tif 000002
【特許請求の範囲】
【請求項１】
車両の乗員に対して複数のコンテンツデータを再生出力するサービスを提供する車載オーディオ装置であって、
前記複数のコンテンツデータの各々に対し、当該コンテンツデータに関する情報であるコンテンツ情報データを記憶する記憶手段と、
前記複数のコンテンツ情報データを基数ソートによってソートするソート処理手段と、
前記基数ソートが使用する順序に従って前記コンテンツ情報データを加工してソート用データを作成するソート用データ作成手段と、を備え、
前記ソート処理手段は、前記ソート用データを読み出して前記基数ソートを実行することを特徴とする車載オーディオ装置。
【請求項２】
前記ソート用データ作成手段は、前記複数のコンテンツ情報データのそれぞれについて、ソート対象項目となるデータの下位から所定サイズ分を切り分けて前記ソート用データとすることを特徴とする請求項１に記載の車載オーディオ装置。
【請求項３】
前記所定サイズが固定の値であることを特徴とする請求項２に記載の車載オーディオ装置。
【請求項４】
前記ソート用データ作成手段は、前記コンテンツ情報データの件数と、前記ソート処理手段が使用する作業用メモリのメモリ容量とに基づいて前記所定サイズを動的に設定することを特徴とする請求項２に記載の車載オーディオ装置。
【請求項５】
前記ソート用データ作成手段は、前記複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、前記ソート処理手段が使用する作業用メモリのメモリ容量を超える場合に前記ソート用データを作成することを特徴とする請求項１〜４のいずれか一つに記載の車載オーディオ装置。
【請求項６】
前記ソート処理手段は、前記複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、前記ソート処理手段が使用する作業用メモリのメモリ容量以内である場合に、基数ソート以外のソートアルゴリズムを用いてソートすることを特徴とする請求項５に記載の車載オーディオ装置。
【請求項７】
前記ソート用データ作成手段は、前記コンテンツ情報データのうち、ソート対象となる項目のそれぞれについて前記ソート用データを作成することを特徴とする請求項１〜６のいずれか一つに記載の車載オーディオ装置。
【請求項８】
前記記憶手段は、前記ソート用データをさらに記憶することを特徴とする請求項１〜７のいずれか一つに記載の車載オーディオ装置。
【請求項９】
前記ソート用データ作成手段は、前記コンテンツデータが保存された場合に前記ソート用データの作成を実行することを特徴とする請求項１〜８のいずれか一つに記載の車載オーディオ装置。
【請求項１０】
前記ソート用データ作成手段は、演算手段の処理負荷を監視し、処理負荷が所定値以下である場合に前記ソート用データの作成を実行することを特徴とする請求項１〜９のいずれか一つに記載の車載オーディオ装置。
【請求項１１】
前記ソート用データ作成手段は、ソート処理の実行要求が発生した場合に前記ソート用データを作成し、当該ソート用データをソート処理の終了後に削除することを特徴とする請求項１〜１０のいずれか一つに記載の車載オーディオ装置。
【請求項１２】
前記ソート処理手段が使用する作業用メモリは、ソート結果の表示用メモリと共用することを特徴とする請求項１〜１１のいずれか一つに記載の車載オーディオ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、車両の乗員に対して複数のコンテンツデータを再生出力するサービスを提供する車載オーディオ装置に関し、特にコンテンツデータのソートを少ない作業用メモリで高速に実行する車載オーディオ装置に関する。
【背景技術】
【０００２】
従来、データに対して所定の処理、例えばデータを特定の順序で並び替えるソート処理などを行う場合に、その処理の高速化や処理に要する計算資源の削減を実現させるべく、様々な考案が行われてきた。この処理の高速化については、処理アルゴリズムとデータ入出力の速度が重要となる。また、計算資源の削減には、処理の実行時に必要な作業用メモリ（バッファメモリ）の削減が重要となる。
【０００３】
そこで、特許文献１が開示する整順列化装置及び整順列化方法では、整順列化処理（ソート処理）において作業用メモリを削減しており、特許文献２が開示するデータベースでは、入力データ集合を部分集合に分割して入力することで、入力を高速化していた。
【０００４】
【特許文献１】特開平９−５４６７６号公報
【特許文献２】特開２００１−３３１３５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、近年、車載のオーディオ装置にＨＤＤ（ハードディスクドライブ）などの記録媒体を持たせ、記録媒体に格納した音楽データなどのコンテンツデータを再生出力することが一般的となっている。
【０００６】
かかる車載オーディオ装置では、記録媒体の大容量化に伴って格納可能なコンテンツデータの数が増大しているので、表示などの際にソート等の処理を行う必要が高まっている。
【０００７】
ここで、コンテンツデータのソートキー（ソートに使用する情報、例えばアーティスト名や曲名のデータ）を全コンテンツデータ分加算した合計サイズがソート処理時に使用する作業用メモリの容量以内であるならば、全コンテンツデータ分のソートキーを一括して読み出してソート処理を行うことができる。
【０００８】
しかし、合計サイズが作業用メモリ容量を超える場合には、ＨＤＤから繰り返しデータを読み出すこととなり、ＨＤＤからの読み出し回数に応じてソート処理の速度が低下する。たとえば、比較的比較回数の少ないクイックソートを用いたとしても，ＮｌｏｇＮ回のＨＤＤアクセスが必要となり、高速に実行することが困難である。
【０００９】
このように、多量のデータをソートする場合、高速性と省メモリとを同時に満たすことが難しいという問題点があった。
【００１０】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、省メモリで高速なソートを実行可能な車載オーディオ装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、請求項１の発明に係る車載オーディオ装置は、車両の乗員に対して複数のコンテンツデータを再生出力するサービスを提供する車載オーディオ装置であって、前記複数のコンテンツデータの各々に対し、当該コンテンツデータに関する情報であるコンテンツ情報データを記憶する記憶手段と、前記複数のコンテンツ情報データを基数ソートによってソートするソート処理手段と、前記基数ソートが使用する順序に従って前記コンテンツ情報データを加工してソート用データを作成するソート用データ作成手段と、を備え、前記ソート処理手段は、前記ソート用データを読み出して前記基数ソートを実行することを特徴とする。
【００１２】
この請求項１の発明によれば車載オーディオ装置は、複数のコンテンツデータの各々に対し、当該コンテンツデータに関する情報であるコンテンツ情報データを記憶し、コンテンツ情報データを基数ソートする場合の処理手順に従って加工してソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００１３】
また、請求項２の発明に係る車載オーディオ装置は、請求項１の発明において、前記ソート用データ作成手段は、前記複数のコンテンツ情報データのそれぞれについて、ソート対象項目となるデータの下位から所定サイズ分を切り分けて前記ソート用データとすることを特徴とする。
【００１４】
この請求項２の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの下位から所定サイズ分を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００１５】
また、請求項３の発明に係る車載オーディオ装置は、請求項２の発明において、前記所定サイズが固定の値であることを特徴とする。
【００１６】
この請求項３の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの下位から固定された所定サイズ分を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００１７】
また、請求項４の発明に係る車載オーディオ装置は、請求項２の発明において、前記ソート用データ作成手段は、前記コンテンツ情報データの件数と、前記ソート処理手段が使用する作業用メモリのメモリ容量とに基づいて前記所定サイズを動的に設定することを特徴とする。
【００１８】
この請求項４の発明によれば車載オーディオ装置は、コンテンツ情報データの件数と、ソート処理手段が使用する作業用メモリのメモリ容量とに基づいて決定したサイズでコンテンツ情報データのソート対象項目を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００１９】
また、請求項５の発明に係る車載オーディオ装置は、請求項１〜４のいずれか一つの発明において、前記ソート用データ作成手段は、前記複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、前記ソート処理手段が使用する作業用メモリのメモリ容量を超える場合に前記ソート用データを作成することを特徴とする。
【００２０】
この請求項５の発明によれば車載オーディオ装置は、複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、ソート処理手段が使用する作業用メモリのメモリ容量を超える場合にコンテンツ情報データからソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００２１】
また、請求項６の発明に係る車載オーディオ装置は、請求項５の発明において、前記ソート処理手段は、前記複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、前記ソート処理手段が使用する作業用メモリのメモリ容量以内である場合に、基数ソート以外のソートアルゴリズムを用いてソートすることを特徴とする。
【００２２】
この請求項６の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの合計サイズが作業用メモリのメモリ容量を超える場合にはソート用データを読み出して基数ソートし、合計サイズがメモリ容量以内である場合にはコンテンツ情報データを読み出して基数ソート以外のアルゴリズムでソートする。
【００２３】
また、請求項７の発明に係る車載オーディオ装置は、請求項１〜６のいずれか一つの発明において、前記ソート用データ作成手段は、前記コンテンツ情報データのうち、ソート対象となる項目のそれぞれについて前記ソート用データを作成することを特徴とする。
【００２４】
この請求項７の発明によれば車載オーディオ装置は、コンテンツ情報データのうち、ソート対象となる項目のそれぞれについてソート用データを作成し、基数ソートの実行時には対応するソート用データを読み出して使用する。
【００２５】
また、請求項８の発明に係る車載オーディオ装置は、請求項１〜７のいずれか一つの発明において、前記記憶手段は、前記ソート用データをさらに記憶することを特徴とする。
【００２６】
この請求項８の発明によれば車載オーディオ装置は、コンテンツ情報データからソート用データを作成し、コンテンツ情報データと同一の記憶手段に記憶する。
【００２７】
また、請求項９の発明に係る車載オーディオ装置は、請求項１〜８のいずれか一つの発明において、前記ソート用データ作成手段は、前記コンテンツデータが保存された場合に前記ソート用データの作成を実行することを特徴とする。
【００２８】
この請求項９の発明によれば車載オーディオ装置は、コンテンツデータが保存された場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００２９】
また、請求項１０の発明に係る車載オーディオ装置は、請求項１〜９のいずれか一つの発明において、前記ソート用データ作成手段は、演算手段の処理負荷を監視し、処理負荷が所定値以下である場合に前記ソート用データの作成を実行することを特徴とする。
【００３０】
この請求項１０の発明によれば車載オーディオ装置は、演算手段の処理負荷が所定値以下である場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００３１】
また、請求項１１の発明に係る車載オーディオ装置は、請求項１〜１０のいずれか一つの発明において、前記ソート用データ作成手段は、ソート処理の実行要求が発生した場合に前記ソート用データを作成し、当該ソート用データをソート処理の終了後に削除することを特徴とする。
【００３２】
この請求項１１の発明によれば車載オーディオ装置は、ソート処理の実行要求が発生した場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用する。
【００３３】
また、請求項１２の発明に係る車載オーディオ装置は、請求項１〜１１の発明において、前記ソート処理手段が使用する作業用メモリは、ソート結果の表示用メモリと共用することを特徴とする。
【００３４】
この請求項１２の発明によれば車載オーディオ装置は、コンテンツ情報データからソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して表示用メモリと共用の作業用メモリに展開する。
【発明の効果】
【００３５】
請求項１の発明によれば車載オーディオ装置は、複数のコンテンツデータの各々に対し、当該コンテンツデータに関する情報であるコンテンツ情報データを記憶し、コンテンツ情報データを基数ソートする場合の処理手順に従って加工してソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、記憶手段からの読み出し回数を削減し、省メモリで高速なソートを実行可能な車載オーディオ装置を得ることができるという効果を奏する。
【００３６】
また、請求項２の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの下位から所定サイズ分を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、記憶手段からの読み出し回数を効果的に削減し、省メモリで高速なソートを実行可能な車載オーディオ装置を得ることができるという効果を奏する。
【００３７】
また、請求項３の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの下位から固定された所定サイズ分を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、記憶手段からの読み出し回数を削減し、省メモリで高速にソートを実行可能で、メンテナンス性が高い車載オーディオ装置を得ることができるという効果を奏する。
【００３８】
また、請求項４の発明によれば車載オーディオ装置は、コンテンツ情報データの件数と、ソート処理手段が使用する作業用メモリのメモリ容量とに基づいて決定したサイズでコンテンツ情報データのソート対象項目を切り分けてソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、記憶手段からの読み出し回数を削減して最適化し、ソート速度をさらに向上した車載オーディオ装置を得ることができるという効果を奏する。
【００３９】
また、請求項５の発明によれば車載オーディオ装置は、複数のコンテンツ情報データのソート対象項目となるデータの合計サイズが、ソート処理手段が使用する作業用メモリのメモリ容量を超える場合にコンテンツ情報データからソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、ソートすべきデータサイズとメモリとの状態に基づいて適切なソートを実行することのできる車載オーディオ装置を得ることができるという効果を奏する。
【００４０】
また、請求項６の発明によれば車載オーディオ装置は、コンテンツ情報データのソート対象項目となるデータの合計サイズが作業用メモリのメモリ容量を超える場合にはソート用データを読み出して基数ソートし、合計サイズがメモリ容量以内である場合にはコンテンツ情報データを読み出して基数ソート以外のアルゴリズムでソートするので、ソートすべきデータサイズとメモリとの状態に基づいてソートアルゴリズムを選択する車載オーディオ装置を得ることができるという効果を奏する。
【００４１】
また、請求項７の発明によれば車載オーディオ装置は、コンテンツ情報データのうち、ソート対象となる項目のそれぞれについてソート用データを作成し、基数ソートの実行時には対応するソート用データを読み出して使用するので、複数の項目のいずれを用いる場合であっても高速にソート可能な車載オーディオ装置を得ることができるという効果を奏する。
【００４２】
また、請求項８の発明によれば車載オーディオ装置は、コンテンツ情報データからソート用データを作成し、コンテンツ情報データと同一の記憶手段に記憶するので、省メモリで高速なソートを実行する、簡易な構成の車載オーディオ装置を得ることができるという効果を奏する。
【００４３】
また、請求項９の発明によれば車載オーディオ装置は、コンテンツデータが保存された場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、ソート用データを速やかに最新の状態に保ち、常に高速なソートを実行可能な車載オーディオ装置を得ることができるという効果を奏する。
【００４４】
また、請求項１０の発明によれば車載オーディオ装置は、演算手段の処理負荷が所定値以下である場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、省メモリで高速なソートを実行する、処理負荷の小さい車載オーディオ装置を得ることができるという効果を奏する。
【００４５】
また、請求項１１の発明によれば車載オーディオ装置は、ソート処理の実行要求が発生した場合にソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して使用するので、省メモリで高速なソートを実行可能で、記憶手段の使用量を節減した車載オーディオ装置を得ることができるという効果を奏する。
【００４６】
また、請求項１２の発明によれば車載オーディオ装置は、コンテンツ情報データからソート用データを作成し、基数ソートの実行時にはこのソート用データを読み出して表示用メモリと共用の作業用メモリに展開するので、省メモリで高速なソートを実行する、簡易な構成の車載オーディオ装置を得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００４７】
以下に添付図面を参照して、この発明に係るカーオーディオ装置の好適な実施例を詳細に説明する。
【実施例】
【００４８】
図１は、本発明の実施例であるカーオーディオ装置１の概要構成を示す概要構成図である。同図に示すように、カーオーディオ装置１は、その内部に制御部１０、操作パネル１１、スピーカ１２、ディスプレイ１３、表示処理部１４、ソート処理部１５、メモリ１６およびＨＤＤ（ハードディスクドライブ）１７を有する。
【００４９】
操作パネル１１は、ユーザからの入力を受け付ける入力インターフェースであり、スピーカ１２およびディスプレイ１３は、ユーザに対する情報提供、音楽や映像などのコンテンツの再生出力に用いる出力インターフェースである。
【００５０】
制御部１０は、カーオーディオ装置１を全体制御する制御部であり、外部からコンテンツ情報を取得してＨＤＤ１７に格納する処理や、ＨＤＤ１７に格納したコンテンツ情報を再生する処理などを行なう。
【００５１】
表示処理部１４は、ディスプレイ１３に表示する内容を作成して作業用メモリであるメモリ１６に格納した後、ディスプレイ１３に表示する処理を実行する。また、ソート処理部１５は、ＨＤＤ１７に格納したコンテンツデータのソート処理を実行する処理部である。
【００５２】
このソート処理部１５は、作業用メモリとしてメモリ１６を使用する。すなわち、メモリ１６は、表示処理部１４とソート処理部１５とで共用されることとなる。より具体的には、ソート処理の実行中は、メモリ１６をソート処理部１５が使用し、ソート処理の終了後に表示処理部１４がメモリ１６を使用する。このように、メモリ１６を排他利用することで、メモリの共用を実現し、システムに必要なメモリ搭載量を削減することができる。
【００５３】
ＨＤＤ１７は、カーオーディオ装置１が再生するコンテンツデータを記憶する記憶媒体である。本実施例では、ＨＤＤ１７は、コンテンツデータとして音楽データ３１を記憶している。
【００５４】
さらに、ＨＤＤ１７は音楽データ３１に関する情報を音楽情報データ３２として記憶している。この音楽情報データ３２の具体例を図２に示す。同図に示すように、音楽情報データ３２は、楽曲のアーティスト名、アルバム名、曲名、トラック番号、記録日付、音楽データパスなどの項目を有する。
【００５５】
項目「アーティスト名」は、その楽曲を作成もしくは演奏したアーティストの名前を示す項目であり、項目「アルバム名」は、楽曲が収録されていたアルバムの名称を示す項目である。同様に、項目「曲名」は楽曲の名称を示す項目であり、項目「トラック番号」は楽曲のアルバム内でのトラック番号を示す項目である。
【００５６】
さらに、項目「記録日付」は、対応する音楽データをＨＤＤ１７に記録した日付を示す項目であり、項目「音楽データパス」は対応する音楽データのＨＤＤ１７における保存場所を示す項目である。
【００５７】
制御部１０は、この音楽情報データ３２を用いて、ＨＤＤ１７に記憶した音楽データに関する情報をユーザに対して提供し、また、ユーザから再生する音楽データを指定された場合には項目「音楽データパス」を参照して指定された音楽データを再生する。
【００５８】
さらに、制御部１０は、複数の楽曲について情報を提供する場合に、その表示における順序をソート処理によって決定する。このソートに用いるソートキーとしては、音楽情報データのうち「アーティスト名」、「アルバム名」、「曲名」などの文字データや、「トラック番号」、「記録日付」などの数値データを用いることができる。
【００５９】
具体的には、ソート処理はソート処理部１５によって実行される。ソート処理部１５は、その内部にソート用データ作成部２１および基数ソート処理部２２を有する。基数ソート処理部２２は、基数ソートアルゴリズムによって音楽情報データを整列する。この基数ソートアルゴリズムでは、ソートキーを下位から所定サイズずつ分割し、各ソートキーのうち、対応する位置で分割された部分（部分キー）同士の比較を繰り返すことでソートを実行する。
【００６０】
そのため、基数ソートを用いる場合には、ソートキーを全楽曲分一括して使用する必要が無く、メモリ１６の容量がソートキーの全楽曲分の合計サイズに満たない場合であっても処理を実行することができる。
【００６１】
しかしながら、基数ソートの実行時に各楽曲のソートキーからそれぞれ部分キーを読み出すこととすると、ＨＤＤ１７へのアクセス回数が（ソートキーの分割数）×（楽曲数）となり、このアクセス回数の分だけソートの処理速度が低下する。
【００６２】
そこで、カーオーディオ装置１では、ソート用データ作成部２１が基数ソート処理の実行に先立って、各楽曲の対応する部分キーを纏めたソート用データ３３を作成し、ＨＤＤ１７に記憶している。
【００６３】
このソート用データについて、図３を参照してさらに説明する。同図には、音楽情報データ３２の項目「アーティスト名」を示しており、１番目の楽曲のアーティスト名は「Ａ1，Ａ2・・・Ａn」である。また、２番目の楽曲のアーティスト名は「Ｂ1，Ｂ2・・・Ｂn」、第３の楽曲のアーティスト名は「Ｃ1，Ｃ2・・・Ｃn」であり、ｍ番目の楽曲のアーティスト名が「Ｍ1，Ｍ2・・・Ｍn」である。
【００６４】
ここで、「Ａ1」〜「Ｍn」をそれぞれ２バイト文字とし、基数ソートの分割サイズが４バイトであるとすると、基数ソート処理部２２は、まず、「Ａn-1，Ａn」、「Ｂn-1，Ｂn」、「Ｃn-1，Ｃn」・・・「Ｍn-1，Ｍn」をそれぞれ部分キーとして比較し、ソートを実行する。つぎに、「Ａn-3，Ａn-2」、「Ｂn-3，Ｂn-2」、「Ｃn-3，Ｃn-2」・・・「Ｍn-3，Ｍn-2」をそれぞれ部分キーとして比較し、ソートを実行する。
【００６５】
同様に、基数ソート処理部２２は、使用する部分キーを順次シフトしてソートを実行し、「Ａ1」、「Ｂ1」、「Ｃ1」・・・「Ｍ1」を部分キーとするソートが終了した場合に処理を終了する。
【００６６】
すなわち、基数ソートでは、部分キーごとにソート処理を実行する。そこで、ソート用データ作成部２１は、対応する部分キーを纏めてソート用データ３３を作成する。たとえば図３では、「Ａn-1，Ａn」、「Ｂn-1，Ｂn」、「Ｃn-1，Ｃn」・・・「Ｍn-1，Ｍn」がソート用データブロックＤ１を形成し、「Ａn-3，Ａn-2」、「Ｂn-3，Ｂn-2」、「Ｃn-3，Ｃn-2」・・・「Ｍn-3，Ｍn-2」がソート用データブロックＤ２を形成する。
【００６７】
このように、基数ソートが使用する順序に従ってソート用データ３３を作成することで、ＨＤＤ１７へのアクセス回数をソートキーの分割数に等しい回数まで抑えることができ、ソートの処理速度を向上することができる。
【００６８】
ここで、ソートキーとして用いるデータの長さが異なる場合、たとえば名前が８文字であるアーティストと名前が１０文字であるアーティストが混在している場合などには、文字数の少ないアーティスト名の末尾に「０」データをセットして文字列の長さ（文字数）を合わせ、文字列データではなくバイナリデータとして比較することでデータの有効長の判定を不要とし、ソート処理をさらに高速化することができる。
【００６９】
また、ソート用データ３３は、ソートキーとして利用可能な各項目（「アーティスト名」、「アルバム名」、「曲名」、「トラック番号」、「記録日付」）について、それぞれ作成しておくことが望ましい。
【００７０】
つづいて、基数ソート処理部２２による処理動作について説明する。図４は、基数ソート処理部の処理動作を説明するフローチャートである。同図に示す処理フローは、ユーザからソート処理の実行を指定された場合や、カーオーディオ装置１が自律的にソート処理が必要であると判断した場合に開始される。
【００７１】
同図に示すように、まず基数ソート処理部２２は、ソート対象分割アドレスを設定する（ステップＳ１０１）。このソート対象分割アドレスは、ソート用データのうち、ソートする項目に対応するデータの開始アドレスである。
【００７２】
つぎに、基数ソート処理部２２は、ソート対象分割アドレスから所定サイズ分（ソートキーのサイズ分）のソート用データを読み込んで（ステップＳ１０２）、基数ソート処理を実行する（ステップＳ１０３）。
【００７３】
その後、基数ソート処理部２２は、ソートキーのサイズ分、ソート対象分割アドレスを増加し（ステップＳ１０４）、ソート対象分割アドレスが最上位アドレスを超えたか否かを判定する（ステップＳ１０５）。
【００７４】
その結果、ソート対象分割アドレスが最上位アドレスを超えていなければ（ステップＳ１０５，Ｎｏ）、基数ソート処理部２２は、再度ステップＳ１０２に移行する。そして、ソート対象分割アドレスが最上位アドレスを超えた場合（ステップＳ１０５，Ｙｅｓ）に、基数ソート処理部２２は処理を終了する。
【００７５】
ところで、ソート用データ３３は、ソート処理の開始前であれば、任意のタイミングで作成することができる。具体的には、ソート用データ３３を作成するタイミングとしては、１）ＨＤＤに音楽データが記録された時点、２）負荷が軽い状況下、３）ソート実行前、などを使用することができる。
【００７６】
まず、１）ＨＤＤに音楽データが記録された時点でソート用データを作成する場合について説明する。図５は、ＨＤＤに音楽データが記録された時点でソート用データを作成する場合のソート用データ作成部２１の処理動作を説明するフローチャートである。
【００７７】
同図に示すように、ソート用データ作成部２１は、ＨＤＤ１７に対する音楽データの書き込みを監視しており、音楽データの書き込みが終了した（録音が完了した）場合（ステップＳ２０１，Ｙｅｓ）、音楽情報データ３２をＨＤＤ１７に保存する（ステップＳ２０２）とともに、ソート用データ３３を作成し、ＨＤＤ１７に保存して（ステップＳ２０３）、処理を終了する。
【００７８】
このように、音楽データを録音した時点でソート用データを作成することで、ソート用データを速やかに最新の状態に保つことができる。
【００７９】
つづいて、２）負荷が軽い状況下でソート用データを作成する場合について説明する。図６は、負荷が軽い状況下でソート用データを作成する場合のソート用データ作成部２１の処理動作を説明するフローチャートである。
【００８０】
同図に示すように、ソート用データ作成部２１は、制御部１０の負荷状態を取得して（ステップＳ３０１）監視している。そして、制御部１０の負荷が所定量以下となった場合（ステップＳ３０２，Ｙｅｓ）に、音楽情報データを取得する（ステップＳ３０３）。
【００８１】
ここで、音楽情報データ３２には、ソート用データを作成済みであるか否かを示すフラグなどを持たせておく。そして、ソート用データ作成部２１は、このフラグを参照してソート用データを作成済みであるか否かを判定する（ステップＳ３０４）。
【００８２】
その結果、ソート用データが未作成である場合（ステップＳ３０４，Ｙｅｓ）、ソート用データ作成部２１は、ソート用データ３３を作成してＨＤＤ１７に保存し（ステップＳ３０５）、音楽情報データのフラグを「ソート用データ作成済み」として処理を終了する。
【００８３】
また、ソート用データ作成部２１は、ソート用データが作成済みである場合（ステップＳ３０４，Ｎｏ）、および制御部１０の負荷か所定量を超えている場合（ステップＳ３０２，Ｎｏ）、ソート用データを作成することなく処理を終了する。
【００８４】
このように、制御部１０の負荷を監視し、負荷が所定量以下である場合にソート用データを作成することで、装置全体において負荷を分散・軽減することができる。
【００８５】
つぎに、３）ソート実行前にソート用データを作成する場合について説明する。図７は、ソート実行前にソート用データを一時ファイル（テンポラリファイル）として作成し、ソートに使用した後に削除する場合のソート用データ作成部２１の処理動作を説明するフローチャートである。
【００８６】
同図に示すように、ソート用データ作成部２１は、基数ソート処理部２２に対してソート要求が発生したか否かを監視し、ソート要求が発生した場合（ステップＳ４０１，Ｙｅｓ）に音楽情報データを取得する（ステップＳ４０２）。そして、ソート用データを作成し、ＨＤＤ１７に一時ファイルとして保存する（ステップＳ４０３）。
【００８７】
その後、基数ソート処理部２２が、ソート用データを使用してソート処理を実行し（ステップＳ４０４）、ソート用データ作成部２１は、ソート処理の完了後に一時ファイルであるソート用データ３３を削除して（ステップＳ４０５）、処理を終了する。
【００８８】
このように、ソート用データを一時ファイルとして作成し、ソートに使用した後に削除することで、ソート用データの保存に費やされるＨＤＤ１７の記憶領域を節約することが可能となる。
【００８９】
つぎに、部分キーのサイズ（基数ソートの分割サイズ）についてさらに説明する。図３の説明では、部分キーが４バイトである場合を例に説明したが、この部分キーのサイズは任意に設定することができる。
【００９０】
ここで、この部分キーのサイズを固定すると、データ構造が定量的となり、メンテナンス性を確保するとともに、性能把握を容易にすることができる。一方で、この部分キーのサイズを動的に変更することで、ソートの繰り返し（ＨＤＤ１７へのアクセス）を少なくし、処理を高速化することができる。
【００９１】
具体的には、部分キーの全楽曲分の合計サイズがメモリ１６の容量を超えない範囲で部分キーをなるべく大きくとることで、ソートの繰り返し回数が最も少なくなる。そこで、
（メモリ１６のメモリ容量）／（楽曲数）を部分キーのサイズ、すなわち基数ソートの分割サイズとすることで、ソート全体を最も高速化することができる。
【００９２】
さらに、楽曲数が少ない場合や、日付などサイズの小さいソートキーを用いる場合、（メモリ１６のメモリ容量）／（楽曲数）がソートキーのサイズ以上となることがある。この場合、全楽曲分のソートキーを全てメモリ１６に展開することができるので、ソート用データを用いる必要はない。
【００９３】
また、基数ソートは、ソートキーの一部で比較することのできるソートアルゴリズムとして有用であるが、全楽曲分のソートキー全体を一括して取り扱うことが可能であるならば、基数ソートに限らず、任意のソートアルゴリズムを使用することができる。
【００９４】
そこで、ソートキーの合計サイズがメモリ容量を超えている場合にのみソート用データを用いることとしてもよい。図８は、ソートキーの合計サイズとメモリ容量とを比較して実行する処理を選択する場合のフローチャートである。
【００９５】
同図に示すように、ソート処理部１５は、ソート処理の実行前にソートキーの合計サイズとメモリ容量とを比較する（ステップＳ５０１）。そしてその結果、ソートキーの合計サイズがメモリ容量を超えている場合（ステップＳ５０１，Ｙｅｓ）は、ソート用データ３３をＨＤＤ１７から読み出し（ステップＳ５０２）、ソート用データ３３を用いて基数ソート処理を行って（ステップＳ５０３）、処理を終了する。
【００９６】
一方、ソートキーの合計サイズかメモリ容量以内である場合（ステップＳ５０４，Ｎｏ）、ソート処理部１５は、音楽情報データ３２からソートに使用する項目（ソートキー）を読み出し（ステップＳ５０４）、ソート処理を行って（ステップＳ５０５）、処理を終了する。
【００９７】
なお、ステップＳ５０５において使用するアルゴリズムは、基数ソートに限らず、クイックソートやバブルソート、シェルソートなど、任意のソートアルゴリズムを利用することが可能である。
【００９８】
上述してきたように、本実施例にかかるカーオーディオ装置１は、ソートキーとして用いる音楽情報データ３２を予め所定のサイズに分割してソート用データ３３としてＨＤＤ１７に記憶し、基数ソート処理の実行時にはこのソート用データ３３を読み出すことで、ＨＤＤ１７へのアクセス回数を削減し、省メモリで高速なソート処理を実現している。
【００９９】
また、ソートキーの分割サイズを作業用メモリ１６の容量と楽曲数とに基づいて動的に変更することで、ＨＤＤ１７へのアクセス回数をさらに削減し、ソート処理を高速化することができる。
【０１００】
なお、本実施例では、コンテンツデータの一例として音楽データを挙げて説明を行ったが、映像データなど他のコンテンツデータであっても同様に本発明を適用することができる。また、具体的な構成についても、適宜変更して実施することができる。
【産業上の利用可能性】
【０１０１】
以上のように、本発明にかかる車載オーディオ装置は、コンテンツデータのソートに有用であり、特に、省メモリで大規模なデータを高速にソートする車載オーディオ装置に適している。
【図面の簡単な説明】
【０１０２】
【図１】本発明の実施例にかかるカーオーディオ装置の概要構成を示す概要構成図である。
【図２】図１に示した音楽情報データの具体例を説明する説明図である。
【図３】図１に示したソート用データの具体例を説明する説明図である。
【図４】図１に示した基数ソート処理部の処理動作を説明するフローチャートである。
【図５】ＨＤＤに音楽データが記録された時点でのソート用データの作成について説明するフローチャートである。
【図６】負荷が軽い状況下でのソート用データの作成について説明するフローチャートである。
【図７】ソート実行前におけるソート用データの作成について説明するフローチャートである。
【図８】ソートキーの合計サイズとメモリ容量とを比較して実行する処理を選択する場合のフローチャートである。
【符号の説明】
【０１０３】
１    カーオーディオ装置
１０    制御部
１１    操作パネル
１２    スピーカ
１３    ディスプレイ
１４    表示制御部
１５    ソート処理部
１６    メモリ
１７    ＨＤＤ
２１    ソート用データ作成部
２２    基数ソート処理部
３１    音楽データ
３２    音楽情報データ
３３    ソート用データ
【図１】
2006073063.tif 000003
【図２】
2006073063.tif 000004
【図３】
2006073063.tif 000005
【図４】
2006073063.tif 000006
【図５】
2006073063.tif 000007
【図６】
2006073063.tif 000008
【図７】
2006073063.tif 000009
【図８】
2006073063.tif 000010