JP2006146331A - データ処理装置、データ処理方法、プログラムおよび再生装置 - Google Patents
データ処理装置、データ処理方法、プログラムおよび再生装置 Download PDFInfo
- Publication number
- JP2006146331A JP2006146331A JP2004332010A JP2004332010A JP2006146331A JP 2006146331 A JP2006146331 A JP 2006146331A JP 2004332010 A JP2004332010 A JP 2004332010A JP 2004332010 A JP2004332010 A JP 2004332010A JP 2006146331 A JP2006146331 A JP 2006146331A
- Authority
- JP
- Japan
- Prior art keywords
- data
- track
- name
- system controller
- rank
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
【課題】 マージソートを従来に比べて短時間で行うことができるデータ処理装置を提供する。
【解決手段】 マージソートで最初のマージを行う際に隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断し、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理する。その後、隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行う。
【選択図】 図16
【解決手段】 マージソートで最初のマージを行う際に隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断し、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理する。その後、隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行う。
【選択図】 図16
Description
本発明は、マージソートを行うデータ処理装置、データ処理方法、プログラムおよび再生装置に関する。
例えば、CD(Compact Disc)、MD(Mini Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blue-Ray Disc)など、各種のディスクメディアが開発され、オーディオデータやビデオデータなどの各種データを記録再生するシステムで利用されている。
このようなシステムは、例えばオーディオデータ(楽曲等)を記録する場合、単に再生出力するオーディオデータだけでなく、曲名、アーティスト名などの文字データを付加的に記録している。
例えばMDシステムでは、オーディオデータがトラック単位で記録され、また各トラックが管理情報で管理されるが、その管理情報において、各トラックに対応させて曲名等の文字データが記録される。そして例えばトラックの再生中に、そのトラックの曲名が表示されるなどして、記録された文字データが利用されている。
なお、ここで言うトラックとは例えば音楽等の1曲としての単位に相当するものであり、コンテンツ又はプログラムなどと呼ばれることもある単位である。
このようなシステムは、例えばオーディオデータ(楽曲等)を記録する場合、単に再生出力するオーディオデータだけでなく、曲名、アーティスト名などの文字データを付加的に記録している。
例えばMDシステムでは、オーディオデータがトラック単位で記録され、また各トラックが管理情報で管理されるが、その管理情報において、各トラックに対応させて曲名等の文字データが記録される。そして例えばトラックの再生中に、そのトラックの曲名が表示されるなどして、記録された文字データが利用されている。
なお、ここで言うトラックとは例えば音楽等の1曲としての単位に相当するものであり、コンテンツ又はプログラムなどと呼ばれることもある単位である。
ところで、近年の記録媒体の大容量化やデータ圧縮技術の向上により、例えばオーディオデータ等のトラックとしても、1枚のディスクに非常に多数のトラックが収録可能である。
例えばMDでは、74分のオーディオデータが記録可能であり、その管理情報形態により最大255曲のトラックを収録可能であったが、Hi−MDでは、収録可能時間も大幅に長時間化され、またトラック数としては最大2047トラックが管理可能である。
もちろんその場合、2047トラックのそれぞれに対して曲名、アーティスト名、アルバム名等を対応させて管理できるものとされる。
例えばMDでは、74分のオーディオデータが記録可能であり、その管理情報形態により最大255曲のトラックを収録可能であったが、Hi−MDでは、収録可能時間も大幅に長時間化され、またトラック数としては最大2047トラックが管理可能である。
もちろんその場合、2047トラックのそれぞれに対して曲名、アーティスト名、アルバム名等を対応させて管理できるものとされる。
このように大量のトラックが1枚のディスクに収録可能な状況を考えると、再生装置はトラックネームを例えば名前順でソートして一覧表示させ、表示上で聞きたい曲をユーザに選択させることが望ましい。このようなソートしては、例えば、マージソートが用いられる。
しかしながら、従来のマージソートを用いたシステムでは、ユーザが一覧表示指示を出してから、トラックネームを名前順でマージソートした一覧を表示させるまでに要する時間が長く、応答性が悪いという問題がある。
同様の問題は、マージソートを採用する他のシステムにおいても生じる。
しかしながら、従来のマージソートを用いたシステムでは、ユーザが一覧表示指示を出してから、トラックネームを名前順でマージソートした一覧を表示させるまでに要する時間が長く、応答性が悪いという問題がある。
同様の問題は、マージソートを採用する他のシステムにおいても生じる。
本発明は上述した従来技術の問題点に鑑みてなされ、マージソートを従来に比べて短時間で行うことができるデータ処理装置、データ処理方法およびプログラムを提供することを目的とする。
また、本発明は、コンテンツデータの識別データを、当該識別データに対応付けられた名前データを基に従来に比べて短時間でマージソートできる再生装置を提供することを目的とする。
また、本発明は、コンテンツデータの識別データを、当該識別データに対応付けられた名前データを基に従来に比べて短時間でマージソートできる再生装置を提供することを目的とする。
上述した従来技術の問題点を解決し、上述した目的を達成するため、第1の観点の発明は、第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理装置であって、前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断し、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成し、前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す処理回路を有する。
第1の観点の発明のデータ処理装置の作用は以下のようになる。
先ず、処理回路が、第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する。
次に、前記処理回路が、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する。
次に、前記処理回路が、前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す。
先ず、処理回路が、第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する。
次に、前記処理回路が、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する。
次に、前記処理回路が、前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す。
第2の観点の発明は、第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理方法であって、前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する第1の工程と、前記第1の工程において前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する第2の工程と、前記第2の工程で生成した前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す第3の工程とを有する。
第3の観点の発明は、第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理装置が実行するプログラムであって、前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する第1の手順と、前記第1の手順において前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する第2の手順と、前記第2の手順で生成した前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す第3の手順とを前記データ処理装置に実行させる。
第4の観点の発明の再生装置は、コンテンツデータの識別データと当該コンテンツデータの名前を示す名前データとを対応付けて記憶し、複数の前記識別データを順に配置して構成される第1のデータを記憶するメモリと、前記コンテンツデータを記録する記録媒体と、表示手段と、前記メモリに記憶された前記第1のデータ内の隣接した2つの識別データに対応付けられた前記名前データを読み出して比較し、当該2つの識別データが所定の基準に従って配置されていないと判断した場合に前記メモリに記憶された前記2つの識別データをスワップ処理した第2のデータに前記第1のデータを書き換え、前記第2のデータ内の前記隣接する2つの要素データを組とし、前記メモリに隣接する2つの組の前記要素データを前記所定の基準に従って配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返し、指示に応じてメモリに記憶された前記第1のデータ内に配置される前記識別データの順に従って当該識別データに対応する前記名前データを前記表示手段に表示する処理回路と、前記表示手段の表示を基に指定された前記名前データに対応した前記コンテンツデータを前記記録媒体から読み出して再生する再生手段とを有する。
本発明によれば、マージソートを従来に比べて短時間で行うことができるデータ処理装置、データ処理方法およびプログラムを提供することができる。
また、本発明によれば、コンテンツデータの識別データを、当該識別データに対応付けられた名前データを基に従来に比べて短時間でマージソートできる再生装置を提供することができる。
また、本発明によれば、コンテンツデータの識別データを、当該識別データに対応付けられた名前データを基に従来に比べて短時間でマージソートできる再生装置を提供することができる。
以下、本発明のデータ処理装置、データ処理方法、プログラムおよび再生装置が適用された記録再生装置について説明する。
<第1実施形態>
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
記録再生装置1が本発明のデータ処理装置あるいは再生装置に対応している。
図1に示すRAM11が本発明のメモリに対応し、システムコントローラ8が本発明の処理回路に対応している。
また、図1に示す記録媒体DISKが本発明の記録媒体に対応し、入出力処理部5が本発明の再生手段に対応し、表示部6が本発明の表示手段に対応している。
また、本実施形態のトラック番号TNOが本発明の要素データに対応し、トラックネームTN、アーティストネームARN、アルバムネームALNおよびグループネームGNの各々が本発明の属性データに対応している。
また、ソート対象のトラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アルバムネームランクテーブルALNRTおよびグループネームランクテーブルGNRTが本発明の第1のデータに対応している。
また、ソート後のトラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アルバムネームランクテーブルALNRTおよびグループネームランクテーブルGNRTが本発明の第2のデータに対応している。
なお、本実施形態では、属性データが示す属性が所定の基準に従って配置されていることを本発明の所定の基準として用いるが、上記要素データ自体が例えば名前を示しこれが所定の名前順で配置されていることを上記所定の基準として用いてもよい。
また、本実施形態のトラックデータが本発明のコンテンツデータに対応している。
また、図16および図24に示す処理が本発明のスワップ処理に対応し、図17〜図23および図25,図26に示す処理が本発明の併合処理に対応している。
また、図5に示すテーブル記憶領域TABLEが本発明の第1の記憶領域に対応し、ワーク領域WORKが本発明の第2の記憶領域に対応している。
<第1実施形態>
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
記録再生装置1が本発明のデータ処理装置あるいは再生装置に対応している。
図1に示すRAM11が本発明のメモリに対応し、システムコントローラ8が本発明の処理回路に対応している。
また、図1に示す記録媒体DISKが本発明の記録媒体に対応し、入出力処理部5が本発明の再生手段に対応し、表示部6が本発明の表示手段に対応している。
また、本実施形態のトラック番号TNOが本発明の要素データに対応し、トラックネームTN、アーティストネームARN、アルバムネームALNおよびグループネームGNの各々が本発明の属性データに対応している。
また、ソート対象のトラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アルバムネームランクテーブルALNRTおよびグループネームランクテーブルGNRTが本発明の第1のデータに対応している。
また、ソート後のトラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アルバムネームランクテーブルALNRTおよびグループネームランクテーブルGNRTが本発明の第2のデータに対応している。
なお、本実施形態では、属性データが示す属性が所定の基準に従って配置されていることを本発明の所定の基準として用いるが、上記要素データ自体が例えば名前を示しこれが所定の名前順で配置されていることを上記所定の基準として用いてもよい。
また、本実施形態のトラックデータが本発明のコンテンツデータに対応している。
また、図16および図24に示す処理が本発明のスワップ処理に対応し、図17〜図23および図25,図26に示す処理が本発明の併合処理に対応している。
また、図5に示すテーブル記憶領域TABLEが本発明の第1の記憶領域に対応し、ワーク領域WORKが本発明の第2の記憶領域に対応している。
また、図24に示すステップST73,ST74が第2の観点の発明の第1の工程に対応し、ステップST75が第2の発明の第2の工程に対応し、図25および図26が第2の発明の第3の工程に対応している。
また、図1に示すプログラムPRGが第3の観点の発明のプログラムに対応している。
また、図1に示すプログラムPRGが第3の観点の発明のプログラムに対応している。
図1は、本発明の実施形態に係わる記録再生装置1の全体構成図である。
図1に示すように、記録再生装置1は、例えば、ストレージ部2、キャッシュメモリ3、インタフェース4、入出力処理部5、表示部6、操作部7、システムコントローラ8、ROM(Read Only Memory)10およびRAM(Random Access Memory)11を有する。
ストレージ部2は、記録媒体DISKに対してデータの書き込みおよび読み出しなどのアクセスを行う。
本実施形態では、記録媒体DISKとして、例えば、MDやHi−MDなどの光磁気ディスクが用いられる。本実施形態では、記録媒体DISKとしてHi−MDを用いた場合を例示する。
本実施形態では、上記記録媒体DISKは、複数のトラックデータを記憶し、各トラックデータには、図2に示すように、トラック番号TNOが割り当てられている。
本実施形態では、トラックデータは、例えば、オーディオの楽曲データを含む。
また、各トラックデータには、図2に示すように、ユーザによって規定されたトラックネームTN、アーティストネームARN、アルバムネームALNおよびグループネームGNが含まれる。これらのデータは、記録媒体DISKに記憶されると共に、RAM11にも読み込まれる。
トラックネームTNは、例えば、トラックデータ内の楽曲データのタイトルを示している。
アーティストネームARNは、例えば、トラックデータ内の楽曲データの作曲者や演奏者の名前を示している。
アルバムネームALNは、例えば、トラックデータ内の楽曲データが属するアルバムの名前を示している。
グループネームGNは、トラックデータが属するグループの名前を示している。
当該グループは、例えば、ユーザによって規定される。
図1に示すように、記録再生装置1は、例えば、ストレージ部2、キャッシュメモリ3、インタフェース4、入出力処理部5、表示部6、操作部7、システムコントローラ8、ROM(Read Only Memory)10およびRAM(Random Access Memory)11を有する。
ストレージ部2は、記録媒体DISKに対してデータの書き込みおよび読み出しなどのアクセスを行う。
本実施形態では、記録媒体DISKとして、例えば、MDやHi−MDなどの光磁気ディスクが用いられる。本実施形態では、記録媒体DISKとしてHi−MDを用いた場合を例示する。
本実施形態では、上記記録媒体DISKは、複数のトラックデータを記憶し、各トラックデータには、図2に示すように、トラック番号TNOが割り当てられている。
本実施形態では、トラックデータは、例えば、オーディオの楽曲データを含む。
また、各トラックデータには、図2に示すように、ユーザによって規定されたトラックネームTN、アーティストネームARN、アルバムネームALNおよびグループネームGNが含まれる。これらのデータは、記録媒体DISKに記憶されると共に、RAM11にも読み込まれる。
トラックネームTNは、例えば、トラックデータ内の楽曲データのタイトルを示している。
アーティストネームARNは、例えば、トラックデータ内の楽曲データの作曲者や演奏者の名前を示している。
アルバムネームALNは、例えば、トラックデータ内の楽曲データが属するアルバムの名前を示している。
グループネームGNは、トラックデータが属するグループの名前を示している。
当該グループは、例えば、ユーザによって規定される。
キャッシュメモリ3は、ストレージ部2が記録媒体DISKに記録するデータ、並びにストレージ部2が上記記録媒体DISKから読み出したデータをバッファリングする。
キャッシュメモリ3は、例えば、DRAMより構成される。
キャッシュメモリ3へのデータの書込/読出は、システムコントローラ8によって制御される。
インタフェース4は、例えばパーソナルコンピュータ20とUSBケーブルとしての伝送路で接続された際のデータ伝送のための処理を行う。
キャッシュメモリ3は、例えば、DRAMより構成される。
キャッシュメモリ3へのデータの書込/読出は、システムコントローラ8によって制御される。
インタフェース4は、例えばパーソナルコンピュータ20とUSBケーブルとしての伝送路で接続された際のデータ伝送のための処理を行う。
入出力処理部5は、例えば記録再生装置1が単体でオーディオ機器として機能する場合に記録再生データの入出力のための処理を行う。
この入出力処理部5は、例えば入力系として、ライン入力回路/マイクロホン入力回路等のアナログ音声信号入力部、A/D変換器や、デジタルオーディオデータ入力部を備える。またATRAC(Adaptive Transform Acoustic Coding)圧縮エンコーダ/デコーダを備える。ATRAC圧縮エンコーダ/デコーダは、ATRAC方式によるオーディオデータの圧縮/伸長処理を実行するための回路である。なお、本実施の形態の記録再生装置としては、例えばMP3などの他のフォーマットによる圧縮オーディオデータが記録再生可能な構成を採ってもよく、この場合には、これらの圧縮オーディオデータのフォーマットに対応したエンコーダ/デコーダを備えればよい。
また、本実施の形態としては、ビデオデータに関しては特に記録再生可能なフォーマットの限定は行わないが、例えばMPEG4などが考えられる。そして、入出力処理部5としては、このようなフォーマットに対応したエンコーダ/デコーダを備えればよい。
さらに入出力処理部5は、出力系として、デジタルオーディオデータ出力部や、D/A変換器及びライン出力回路/ヘッドホン出力回路等のアナログ音声信号出力部を備える。
この入出力処理部5は、例えば入力系として、ライン入力回路/マイクロホン入力回路等のアナログ音声信号入力部、A/D変換器や、デジタルオーディオデータ入力部を備える。またATRAC(Adaptive Transform Acoustic Coding)圧縮エンコーダ/デコーダを備える。ATRAC圧縮エンコーダ/デコーダは、ATRAC方式によるオーディオデータの圧縮/伸長処理を実行するための回路である。なお、本実施の形態の記録再生装置としては、例えばMP3などの他のフォーマットによる圧縮オーディオデータが記録再生可能な構成を採ってもよく、この場合には、これらの圧縮オーディオデータのフォーマットに対応したエンコーダ/デコーダを備えればよい。
また、本実施の形態としては、ビデオデータに関しては特に記録再生可能なフォーマットの限定は行わないが、例えばMPEG4などが考えられる。そして、入出力処理部5としては、このようなフォーマットに対応したエンコーダ/デコーダを備えればよい。
さらに入出力処理部5は、出力系として、デジタルオーディオデータ出力部や、D/A変換器及びライン出力回路/ヘッドホン出力回路等のアナログ音声信号出力部を備える。
そして、この場合の入出力処理部5内には、暗号処理部(図示せず)が備えられる。暗号処理部においては、例えば記録媒体DISKに記録すべきAVデータについて、所定のアルゴリズムによる暗号化処理を施すようにされる。また、例えば記録媒体DISKから読み出されたAVデータについて暗号化が施されている場合には、必要に応じて暗号解読のための復号処理を実行するようにもされている。
入出力処理部5を介した処理として、記録媒体DISKにオーディオデータが記録されるのは、例えば入力TINとして入出力処理部5にデジタルオーディオデータ(又はアナログ音声信号)が入力される場合である。入力されたリニアPCMデジタルオーディオデータ、或いはアナログ音声信号で入力されA/D変換器で変換されて得られたリニアPCMオーディオデータは、必要に応じてATRAC圧縮エンコードされてキャッシュメモリ3に蓄積される。そして所定タイミング(ADIPクラスタ相当のデータ単位)でキャッシュメモリ3から読み出されてストレージ部2に転送される。ストレージ部2では、転送されてくる圧縮データを所定の変調方式で変調して記録媒体DISKに記録する。
記録媒体DISKからミニディスク方式のオーディオデータが再生される場合は、ストレージ部2は再生データをATRAC圧縮データ状態に復調してキャッシュメモリ3に転送する。
そしてキャッシュメモリ3から読み出されて入出力処理部5に転送される。入出力処理部5は、供給されてくる圧縮オーディオデータに対してATRAC圧縮デコードを行ってリニアPCMオーディオデータとし、デジタルオーディオデータ出力部から出力する。或いはD/A変換器によりアナログ音声信号としてライン出力/ヘッドホン出力を行う。
そしてキャッシュメモリ3から読み出されて入出力処理部5に転送される。入出力処理部5は、供給されてくる圧縮オーディオデータに対してATRAC圧縮デコードを行ってリニアPCMオーディオデータとし、デジタルオーディオデータ出力部から出力する。或いはD/A変換器によりアナログ音声信号としてライン出力/ヘッドホン出力を行う。
システムコントローラ8は、記録再生装置1内の全体の制御を行うと共に、接続されたパーソナルコンピュータ20との間の通信制御を行う。
ROM10には、システムコントローラ8の動作を規定したプログラムPRG、並びに各種データが記憶される。
当該プログラムPRGは、例えば、後述するように、記録媒体DISKに記録されたトラックデータのソートの処理を規定している。
当該プログラムPRGは、例えば、後述するように、記録媒体DISKに記録されたトラックデータのソートの処理を規定している。
RAM11は、システムコントローラ8によるワーク領域として用いられ、また各種必要なデータを記憶する。
RAM11は、例えば、後述するように、記録媒体DISKに記録されたトラックデータのソートの処理に用いられる各種テーブルデータなどを記憶する。
当該テーブルデータは、システムコントローラ8によって生成され、RAM11に書き込まれる。
RAM11は、例えば、後述するように、記録媒体DISKに記録されたトラックデータのソートの処理に用いられる各種テーブルデータなどを記憶する。
当該テーブルデータは、システムコントローラ8によって生成され、RAM11に書き込まれる。
キャッシュ管理メモリ9は、例えばS−RAMで構成され、キャッシュメモリ3の状態を管理する情報が格納される。システムコントローラ8はキャッシュ管理メモリ9を参照しながらデータキャッシュ処理の制御を行う。
表示部6は、システムコントローラ8の制御に基づいて、ユーザに対して提示すべき各種情報の表示を行う。例えば動作状態、モード状態、楽曲等の名称などの文字データ、トラックナンバー、時間情報、その他の情報表示を行う。
操作部7には、ユーザの操作のための各種操作子として、各種操作ボタンやジョグダイヤルなどが形成される。ユーザは、この操作部7に対する操作により記録再生装置1に対する所定の動作指示を行う。システムコントローラ8は操作部7によって入力された操作指示に基づいて所定の制御処理を行う。
なお、これまでに説明した記録再生装置1の構成はあくまでも一例であり、例えば入出力処理部5は、オーディオデータだけでなく、ビデオデータに対応する入出力処理系を備えるようにしてもよい。
システムコントローラ8は、ROM10から読み出したプログラムPRGに基づいて、本実施形態で規定した以下に示す各種の処理を行う。
以下、図1に示すシステムコントローラ8が、ユーザによる操作部7の操作に応じて行われた選曲処理について説明する。
図1に示す操作部7をユーザが操作して表示部6に図3に示す選曲画面DISP1を表示させる。
選曲画面DISP1には、「ノーマル」、「グループ」、「アーティスト」、「アルバム」、「ブックマーク」および「プログラム」が選択項目として表示されている。
選曲画面DISP1上でユーザが「ノーマル」を選択すると、収録曲順にトラックネームTNが表示される。
選曲画面DISP1上でユーザが「グループ」を選択すると、収録曲順にグループネームGNが表示される。
そして、ユーザがグループを選択すると、当該グループに属するトラックデータのトラックネームTNが収録曲順に表示される。
選曲画面DISP1上でユーザが「アーティスト」を選択すると、アーティスト名がソートされて表示される。
そして、ユーザがアーティストを選択すると、当該アーティストに属するトラックデータのトラックネームTNが収録曲順に表示される。
選曲画面DISP1上でユーザが「アルバム」を選択すると、アルバ名がソートされて表示される。
そして、ユーザがアルバム名を選択すると、当該アルバムに属するトラックデータのトラックネームTNが収録曲順に表示される。
以下、図1に示すシステムコントローラ8が、ユーザによる操作部7の操作に応じて行われた選曲処理について説明する。
図1に示す操作部7をユーザが操作して表示部6に図3に示す選曲画面DISP1を表示させる。
選曲画面DISP1には、「ノーマル」、「グループ」、「アーティスト」、「アルバム」、「ブックマーク」および「プログラム」が選択項目として表示されている。
選曲画面DISP1上でユーザが「ノーマル」を選択すると、収録曲順にトラックネームTNが表示される。
選曲画面DISP1上でユーザが「グループ」を選択すると、収録曲順にグループネームGNが表示される。
そして、ユーザがグループを選択すると、当該グループに属するトラックデータのトラックネームTNが収録曲順に表示される。
選曲画面DISP1上でユーザが「アーティスト」を選択すると、アーティスト名がソートされて表示される。
そして、ユーザがアーティストを選択すると、当該アーティストに属するトラックデータのトラックネームTNが収録曲順に表示される。
選曲画面DISP1上でユーザが「アルバム」を選択すると、アルバ名がソートされて表示される。
そして、ユーザがアルバム名を選択すると、当該アルバムに属するトラックデータのトラックネームTNが収録曲順に表示される。
選曲画面DISP1上でユーザが「プログラム」(トラックプログラム)を選択すると、「トラック」、「グループ」、「アーティスト」および「アルバム」が選択項目として表示される。そして、ユーザが、「トラック」を選択するとトラックネームTNがソートされて表示される。また、ユーザが、「グループ」を選択するとグループネームGNがソートされて表示される。また、ユーザが、「アーティスト」を選択するとアーティストネームARNがソートされて表示される。また、ユーザが、「アルバム」を選択するとアルバムネームALNがソートされて表示される。
選曲画面DISP1上でユーザが「プログラム」(グループプログラム)を選択すると、グループプログラムがソートされて表示される。
選曲画面DISP1上でユーザが「プログラム」(グループプログラム)を選択すると、グループプログラムがソートされて表示される。
また、図1に示す操作部7をユーザが操作して表示部6に図4に示す検索画面DISP2を表示させる。
検索画面DISP2には、「by トラック」、「by グループ」、「by アーティスト」、「by アルバム」および「by トラック番号」が選択項目として表示されている。
そして、ユーザが、「by トラック」を選択するとトラックネームTNがソートされて表示される。また、ユーザが、「by グループ」を選択するとグループネームGNがソートされて表示される。また、ユーザが、「by アーティスト」を選択するとアーティストネームARNがソートされて表示される。また、ユーザが、「by アルバム」を選択するとアルバムネームALNがソートされて表示される。また、ユーザが、「by トラック番号」を選択するとトラック番号順にトラックネームTNがソートされて表示される。
検索画面DISP2には、「by トラック」、「by グループ」、「by アーティスト」、「by アルバム」および「by トラック番号」が選択項目として表示されている。
そして、ユーザが、「by トラック」を選択するとトラックネームTNがソートされて表示される。また、ユーザが、「by グループ」を選択するとグループネームGNがソートされて表示される。また、ユーザが、「by アーティスト」を選択するとアーティストネームARNがソートされて表示される。また、ユーザが、「by アルバム」を選択するとアルバムネームALNがソートされて表示される。また、ユーザが、「by トラック番号」を選択するとトラック番号順にトラックネームTNがソートされて表示される。
システムコントローラ8は、上述したトラックネームTN、グループネームGN、アーティストネームARN、アルバムネームALNのソートを行う。
システムコントローラ8は、ソート指示を受けると、動作周波数を通常動作周波数からそれより高いソート時動作周波数に切り換えて、以下に示す手順により、図5に示すトラック番号テーブルTNOT、トラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アーティストネームリストテーブルARNLT、アーティストネームインデックステーブルARNIT、アルバムネームランクテーブルALNRT、アルバムネームリストテーブルALNLT、アルバムネームインデックステーブルALNITおよびグループネームランクテーブルGNRTを生成し、これをRAM11内のテーブル記憶領域TABLEに書き込む。
システムコントローラ8は、上述したテーブル生成動作を終了後、その動作周波数を通常動作周波数に切り換える。
記録再生装置1では、このようなテーブルを生成してRAM11に書き込むことで、ソート指示や、ソートに関連する所定の指示を受けた場合に、後述するように、RAM11から当該テーブルを読み出してソートに関連した処理結果を出力することができ、ソートに関連する指示を受けてからその結果を得るまでの時間を従来に比べて短縮できる。また、当該テーブルは、以下のような構成を有し、比較的データ量が小さく、RAM11は従来に比べて大規模な記憶容量を必要としない。
なお、システムコントローラ8は、ソート指示を受けたとき以外に、処理負荷が所定の基準以下のときに、テーブル生成処理を行う。
システムコントローラ8は、ソート指示を受けると、動作周波数を通常動作周波数からそれより高いソート時動作周波数に切り換えて、以下に示す手順により、図5に示すトラック番号テーブルTNOT、トラックネームランクテーブルTNRT、アーティストネームランクテーブルARNRT、アーティストネームリストテーブルARNLT、アーティストネームインデックステーブルARNIT、アルバムネームランクテーブルALNRT、アルバムネームリストテーブルALNLT、アルバムネームインデックステーブルALNITおよびグループネームランクテーブルGNRTを生成し、これをRAM11内のテーブル記憶領域TABLEに書き込む。
システムコントローラ8は、上述したテーブル生成動作を終了後、その動作周波数を通常動作周波数に切り換える。
記録再生装置1では、このようなテーブルを生成してRAM11に書き込むことで、ソート指示や、ソートに関連する所定の指示を受けた場合に、後述するように、RAM11から当該テーブルを読み出してソートに関連した処理結果を出力することができ、ソートに関連する指示を受けてからその結果を得るまでの時間を従来に比べて短縮できる。また、当該テーブルは、以下のような構成を有し、比較的データ量が小さく、RAM11は従来に比べて大規模な記憶容量を必要としない。
なお、システムコントローラ8は、ソート指示を受けたとき以外に、処理負荷が所定の基準以下のときに、テーブル生成処理を行う。
記録再生装置1による後述する名前順のソートは、後述する比較値変換テーブルTRANが規定する比較値を基に、例えば、以下の順で優先順位で行われる。
本実施形態では、後述するように、ソート対象のトラックネームTNを構成する文字には、優先順位が高くなるに従って大きい比較値(後述)が割り当てられる。
具体的には、SPACE、記号 (Music外字の絵文字なども含む)、数字 (丸付き,ローマ数字なども含む)、アルファベット (欧州文字,UnicodeのISO 8859-1領域を含む)、ひらがな、カタカナ、ギリシア文字、キリール文字、罫線素片、漢字、外字、UnicodeのISO 8859-1領域以外の順で高い優先順位がつけられる。
文字コードについては、ASCII(MD1)、ISO 8859-1 (Hi-MD)、Shift JISの1バイト文字(Hi-MD)、Music Shift JIS(MD1)、Shift JISの2バイト文字 (Hi-MD)、Unicode (Hi-MD)の順で高い優先順位がつけられる。
また、半角と全角では半角に高い優先順位がつけられる。
ASCII(半角扱い)、ISO 8859-1 (半角扱い)、Shift JISの1バイト文字(半角扱い)、Music外字の半角(半角扱い)、Music Shift JISの全角(全角扱い)、Shift JISの2バイト文字(全角扱い)、Music外字の全角(全角扱い)、Unicode (全角扱い)の順とする。
また、数字自体は、「数」ではなくてコード順とする。
アルファベットはアルファベット順で,大文字には小文字に比べて高い優先順位を付ける。
仮名は50音順で,ひらがなをカタカナより高い優先順位とする。例えば、小さいひらがな、小さいカタカナ、ひらがな、 カタカナ、ひらがな(濁音)、カタカナ(濁音)、ひらがな(半濁音)、カタカナ(半濁音)の順で高い優先順位を付ける。
同順位はトラック番号順で、ソートする。トラックネームTNが無いトラックデータは最も低い優先順位とする。
本実施形態では、後述するように、ソート対象のトラックネームTNを構成する文字には、優先順位が高くなるに従って大きい比較値(後述)が割り当てられる。
具体的には、SPACE、記号 (Music外字の絵文字なども含む)、数字 (丸付き,ローマ数字なども含む)、アルファベット (欧州文字,UnicodeのISO 8859-1領域を含む)、ひらがな、カタカナ、ギリシア文字、キリール文字、罫線素片、漢字、外字、UnicodeのISO 8859-1領域以外の順で高い優先順位がつけられる。
文字コードについては、ASCII(MD1)、ISO 8859-1 (Hi-MD)、Shift JISの1バイト文字(Hi-MD)、Music Shift JIS(MD1)、Shift JISの2バイト文字 (Hi-MD)、Unicode (Hi-MD)の順で高い優先順位がつけられる。
また、半角と全角では半角に高い優先順位がつけられる。
ASCII(半角扱い)、ISO 8859-1 (半角扱い)、Shift JISの1バイト文字(半角扱い)、Music外字の半角(半角扱い)、Music Shift JISの全角(全角扱い)、Shift JISの2バイト文字(全角扱い)、Music外字の全角(全角扱い)、Unicode (全角扱い)の順とする。
また、数字自体は、「数」ではなくてコード順とする。
アルファベットはアルファベット順で,大文字には小文字に比べて高い優先順位を付ける。
仮名は50音順で,ひらがなをカタカナより高い優先順位とする。例えば、小さいひらがな、小さいカタカナ、ひらがな、 カタカナ、ひらがな(濁音)、カタカナ(濁音)、ひらがな(半濁音)、カタカナ(半濁音)の順で高い優先順位を付ける。
同順位はトラック番号順で、ソートする。トラックネームTNが無いトラックデータは最も低い優先順位とする。
システムコントローラ8は、トラックネームTNのソートにおいて、同じトラック名のトラックデータはトラック番号順に並べる。
また、システムコントローラ8は、トラックネームTNの無いトラックデータは、上記ソート対象のトラックデータに対して低い優先順位を付けて、トラック番号TNO順で並べる。
また、システムコントローラ8は、トラックネームTNの無いトラックデータと未対応の文字コードをトラックネームTNに用いたトラックデータとは区別せずに、トラック番号順に並べる。
また、システムコントローラ8は、トラックネームTNの無いトラックデータは、上記ソート対象のトラックデータに対して低い優先順位を付けて、トラック番号TNO順で並べる。
また、システムコントローラ8は、トラックネームTNの無いトラックデータと未対応の文字コードをトラックネームTNに用いたトラックデータとは区別せずに、トラック番号順に並べる。
システムコントローラ8は、グループネームGNのソートを、基本的に、上述したトラックネームTNと同様の手法で行う。
また、システムコントローラ8は、アーティストネームARNのソートにおいて、同じアーティストネームARNのトラックデータはトラック番号TNO順に並べる。
また、システムコントローラ8は、アーティストネームARNのソートにおいて、アーティストネームARNの無いトラックデータ、並びに対応していない文字コードを用いたアーティストネームARNを用いない。
また、システムコントローラ8は、アルバムネームALNのソートにおいて、同じアルバムネームALNはトラック番号TNO順に並べ、アーティストネームARNについては判断しない。
また、システムコントローラ8は、アルバムネームALNのソートにおいて、アルバムネームALNの無いトラックデータ、並びに対応していない文字コードを用いたアーティストネームARNを用いない。
また、システムコントローラ8は、アーティストネームARNのソートにおいて、同じアーティストネームARNのトラックデータはトラック番号TNO順に並べる。
また、システムコントローラ8は、アーティストネームARNのソートにおいて、アーティストネームARNの無いトラックデータ、並びに対応していない文字コードを用いたアーティストネームARNを用いない。
また、システムコントローラ8は、アルバムネームALNのソートにおいて、同じアルバムネームALNはトラック番号TNO順に並べ、アーティストネームARNについては判断しない。
また、システムコントローラ8は、アルバムネームALNのソートにおいて、アルバムネームALNの無いトラックデータ、並びに対応していない文字コードを用いたアーティストネームARNを用いない。
以下、システムコントローラ8において生成され、RAM11に記憶される上記各種テーブルについて説明する。
トラックネームランクテーブルTNRTは、図6に示すように、記録媒体DISKに記録された楽曲データの総曲数と、ソートされた順序で並べられた複数のトラックネーム(トラック名)とを示し、これらがRAM11内のアドレスに順に記憶されている。
アーティストネームリストテーブルARNLTは、図6に示すように、重複を除いた総アーティスト数と、重複を除いたアーティスト名をアーティスト名でソートした結果の順序で並べられた各アーティスト名についての最初のアーティスト名からの総曲数の累積値とを示し、これらがRAM11内のアドレスに順に記憶されている。本実施形態において、重複を除いたとは、同じアーティスト名を重複して総数に入れないこと、並びにソートの対象としないことを示している。
アーティストネームランクテーブルARNRTは、図6に示すように、記録媒体DISKに記録された楽曲データの総曲数と、アーティスト名順でソートされた順序で並べられた複数のトラックデータのトラック番号TNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
アルバムネームリストテーブルALNLTは、図7に示すように、重複を除いた総アルバム数と、重複を除いたアルバム名をアルバム名でソートした結果の順序で並べられた各アルバム名についての最初のアルバム名からの総曲数の累積値とを示し、これらがRAM11内のアドレスに順に記憶されている。アルバムネームランクテーブルALNRTは、図7に示すように、記録媒体DISKに記録された楽曲データの総曲数と、アルバム名順でソートされた順序で並べられた複数のトラックデータのトラック番号TNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
グループネームランクテーブルGNRTは、図7に示すように、記録媒体DISKに記録された楽曲データに対して規定されたグループ名の総数と、グループ名順でソートされた順序で並べられた複数のグループのグループ番号GNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
トラックネームランクテーブルTNRTは、図6に示すように、記録媒体DISKに記録された楽曲データの総曲数と、ソートされた順序で並べられた複数のトラックネーム(トラック名)とを示し、これらがRAM11内のアドレスに順に記憶されている。
アーティストネームリストテーブルARNLTは、図6に示すように、重複を除いた総アーティスト数と、重複を除いたアーティスト名をアーティスト名でソートした結果の順序で並べられた各アーティスト名についての最初のアーティスト名からの総曲数の累積値とを示し、これらがRAM11内のアドレスに順に記憶されている。本実施形態において、重複を除いたとは、同じアーティスト名を重複して総数に入れないこと、並びにソートの対象としないことを示している。
アーティストネームランクテーブルARNRTは、図6に示すように、記録媒体DISKに記録された楽曲データの総曲数と、アーティスト名順でソートされた順序で並べられた複数のトラックデータのトラック番号TNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
アルバムネームリストテーブルALNLTは、図7に示すように、重複を除いた総アルバム数と、重複を除いたアルバム名をアルバム名でソートした結果の順序で並べられた各アルバム名についての最初のアルバム名からの総曲数の累積値とを示し、これらがRAM11内のアドレスに順に記憶されている。アルバムネームランクテーブルALNRTは、図7に示すように、記録媒体DISKに記録された楽曲データの総曲数と、アルバム名順でソートされた順序で並べられた複数のトラックデータのトラック番号TNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
グループネームランクテーブルGNRTは、図7に示すように、記録媒体DISKに記録された楽曲データに対して規定されたグループ名の総数と、グループ名順でソートされた順序で並べられた複数のグループのグループ番号GNOとを示し、これらがRAM11内のアドレスに順に記憶されている。
アーティストネームインデックステーブルARNITは、図8に示すように、トラックデータの各々について、重複しないアーティスト名をアーティスト名を基にソートした結果における当該トラックデータのアーティスト名の順位をx(xは2以上の整数値で、例えば、8)で除算した値の整数値をトラック番号順に示し、RAM11内のアドレスに順に記憶されている。
アルバムネームインデックステーブルALNITは、図8に示すように、トラックデータの各々について、重複しないアルバム名をアルバム名を基にソートした結果における当該トラックデータのアルバム名の順位をx(xは2以上の整数値で、例えば、8)で除算した値の整数値をトラック番号順に示し、RAM11内のアドレスに順に記憶されている。
アルバムネームインデックステーブルALNITは、図8に示すように、トラックデータの各々について、重複しないアルバム名をアルバム名を基にソートした結果における当該トラックデータのアルバム名の順位をx(xは2以上の整数値で、例えば、8)で除算した値の整数値をトラック番号順に示し、RAM11内のアドレスに順に記憶されている。
図9および図10は、システムコントローラ8による図5に示す各種テーブルの生成処理を説明するためのフローチャートである。
なお、システムコントローラ8は、以下に示す処理を行う過程で、RAM11に記憶された上述した各種のデータを書き換える場合に、書き換え前のデータをRAM11から読み出す処理、並びに書き換え後のデータをRAM11に書き込む処理を行う。
ステップST11:
システムコントローラ8は、所定の条件を満たすと、動作周波数を、通常動作周波数から、その通常動作周波数より高いソート時動作周波数に切り換えて動作する。
これにより、システムコントローラ8は、ソート処理に要する時間を短縮できる。
ステップST12:
システムコントローラ8は、所定の初期化処理を行う。
なお、システムコントローラ8は、以下に示す処理を行う過程で、RAM11に記憶された上述した各種のデータを書き換える場合に、書き換え前のデータをRAM11から読み出す処理、並びに書き換え後のデータをRAM11に書き込む処理を行う。
ステップST11:
システムコントローラ8は、所定の条件を満たすと、動作周波数を、通常動作周波数から、その通常動作周波数より高いソート時動作周波数に切り換えて動作する。
これにより、システムコントローラ8は、ソート処理に要する時間を短縮できる。
ステップST12:
システムコントローラ8は、所定の初期化処理を行う。
ステップST13:
システムコントローラ8は、図6に示すトラックネームランクテーブルTNRTの初期化処理を行う。
ステップST14:
システムコントローラ8は、ステップST13で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
システムコントローラ8は、図6に示すトラックネームランクテーブルTNRTの初期化処理を行う。
ステップST14:
システムコントローラ8は、ステップST13で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
ステップST15:
システムコントローラ8は、図7に示すアーティストネームランクテーブルARNRTの初期化処理を行う。
ステップST16:
システムコントローラ8は、ステップST15で初期化したアーティストネームランクテーブルARNRTを、アーティストネーム順にソートして更新する。
ステップST17:
システムコントローラ8は、図7に示すアーティストネームリストテーブルARNLTを生成する。
ステップST18:
システムコントローラ8は、図8に示すアーティストネームインデックステーブルARNITを生成する。
システムコントローラ8は、図7に示すアーティストネームランクテーブルARNRTの初期化処理を行う。
ステップST16:
システムコントローラ8は、ステップST15で初期化したアーティストネームランクテーブルARNRTを、アーティストネーム順にソートして更新する。
ステップST17:
システムコントローラ8は、図7に示すアーティストネームリストテーブルARNLTを生成する。
ステップST18:
システムコントローラ8は、図8に示すアーティストネームインデックステーブルARNITを生成する。
ステップST19:
システムコントローラ8は、図7に示すアルバムネームランクテーブルALNRTの初期化処理を行う。
ステップST20:
システムコントローラ8は、ステップST19で初期化したアルバムネームランクテーブルALNRTを、アルバムネーム順にソートして更新する。
ステップST21:
システムコントローラ8は、図7に示すアルバムネームリストテーブルALNLTを生成する。
ステップST22:
システムコントローラ8は、図8に示すアルバムネームインデックステーブルALNITを生成する。
システムコントローラ8は、図7に示すアルバムネームランクテーブルALNRTの初期化処理を行う。
ステップST20:
システムコントローラ8は、ステップST19で初期化したアルバムネームランクテーブルALNRTを、アルバムネーム順にソートして更新する。
ステップST21:
システムコントローラ8は、図7に示すアルバムネームリストテーブルALNLTを生成する。
ステップST22:
システムコントローラ8は、図8に示すアルバムネームインデックステーブルALNITを生成する。
ステップST23:
システムコントローラ8は、グループネームランクテーブルGNRTの初期化処理を行う。
ステップST24:
システムコントローラ8は、ステップST23で初期化したグループネームランクテーブルGNRTを、グループネーム順にソートして更新する。
ステップST25:
システムコントローラ8は、動作周波数を、ソート時動作周波数から通常動作周波数に切り換えて動作する。
システムコントローラ8は、グループネームランクテーブルGNRTの初期化処理を行う。
ステップST24:
システムコントローラ8は、ステップST23で初期化したグループネームランクテーブルGNRTを、グループネーム順にソートして更新する。
ステップST25:
システムコントローラ8は、動作周波数を、ソート時動作周波数から通常動作周波数に切り換えて動作する。
[ステップST13(トラックネームランクテーブルTNRTの初期化処理)]
以下、図9に示すトラックネームランクテーブルTNRTの初期化処理(ステップST13)について説明する。
図11は、図9に示すステップST13の処理を説明するためのフローチャートである。
ステップST31:
システムコントローラ8は、予め規定した所定の変数nに初期値「1」を代入し、変数totalに初期値として記録媒体DISKの総曲数(記録媒体DISKに記憶されたトラックデータの数)を代入する。
ステップST32:
システムコントローラ8は、所定の変数topに初期値「1」を代入し、変数endに上記変数totalの値を代入する。
以下、図9に示すトラックネームランクテーブルTNRTの初期化処理(ステップST13)について説明する。
図11は、図9に示すステップST13の処理を説明するためのフローチャートである。
ステップST31:
システムコントローラ8は、予め規定した所定の変数nに初期値「1」を代入し、変数totalに初期値として記録媒体DISKの総曲数(記録媒体DISKに記憶されたトラックデータの数)を代入する。
ステップST32:
システムコントローラ8は、所定の変数topに初期値「1」を代入し、変数endに上記変数totalの値を代入する。
ステップST33:
システムコントローラ8は、トラック番号TNOが「n」のトラックデータのトラックネームTNが存在するか否かを判断し、存在すると判断するとステップST34に進み、存在しないと判断するとステップST35に進む。
ステップST34:
システムコントローラ8は、トラックネームランクテーブルTNRTの配列データrank_table[top]に変数nの値を代入する。
また、システムコントローラ8は、変数topを1インクリメントする。
ステップST35:
システムコントローラ8は、トラックネームランクテーブルTNRTの配列データrank_table[end]に変数nの値を代入する。
また、システムコントローラ8は、変数endを1デクリメントする。
ステップST36:
システムコントローラ8は、変数nを1インクリメントする。
ステップST37:
システムコントローラ8は、変数nの値が変数totalの値以下であるか否かを判断し、以下であると判断した場合にはステップST33に戻り、そうでない場合にはステップST38に進む。
システムコントローラ8は、トラック番号TNOが「n」のトラックデータのトラックネームTNが存在するか否かを判断し、存在すると判断するとステップST34に進み、存在しないと判断するとステップST35に進む。
ステップST34:
システムコントローラ8は、トラックネームランクテーブルTNRTの配列データrank_table[top]に変数nの値を代入する。
また、システムコントローラ8は、変数topを1インクリメントする。
ステップST35:
システムコントローラ8は、トラックネームランクテーブルTNRTの配列データrank_table[end]に変数nの値を代入する。
また、システムコントローラ8は、変数endを1デクリメントする。
ステップST36:
システムコントローラ8は、変数nを1インクリメントする。
ステップST37:
システムコントローラ8は、変数nの値が変数totalの値以下であるか否かを判断し、以下であると判断した場合にはステップST33に戻り、そうでない場合にはステップST38に進む。
ステップST38:
システムコントローラ8は、変数nに「(total−end)/2」を代入する。
システムコントローラ8は、変数topに、「end+1」を代入する。
システムコントローラ8は、変数endに、変数totalの値を代入する。
ステップST39:
システムコントローラ8は、トラックネームランクテーブルTNRTにおいて配列データrank_table[top]と配列データrank_table[end]とを入れ換える(スワップする)。
ステップST40:
システムコントローラ8は、変数nを1だけデクリメントする。
ステップST41:
システムコントローラ8は、変数nの値が「0」より大きいか否かを判断し、大きいと判断するとステップST39に戻り、そうでない場合には処理を終了する。
システムコントローラ8は、変数nに「(total−end)/2」を代入する。
システムコントローラ8は、変数topに、「end+1」を代入する。
システムコントローラ8は、変数endに、変数totalの値を代入する。
ステップST39:
システムコントローラ8は、トラックネームランクテーブルTNRTにおいて配列データrank_table[top]と配列データrank_table[end]とを入れ換える(スワップする)。
ステップST40:
システムコントローラ8は、変数nを1だけデクリメントする。
ステップST41:
システムコントローラ8は、変数nの値が「0」より大きいか否かを判断し、大きいと判断するとステップST39に戻り、そうでない場合には処理を終了する。
図11に示すステップST31〜ST37による処理PR1は、例えば、図12に示すように、トラック番号テーブルTNOTを基に、トラックネームTNが存在するトラックデータのトラック番号TNOをトラックネームランクテーブルTNRTの配列番号が小さい位置から順に割り当て、トラックネームTNが存在しないトラックデータのトラック番号TNOを配列番号が大きい位置から順に割り当てる処理である。
ここで、処理PR1の終了後は、トラックネームTNが存在しないトラックデータは、トラック番号TNOが降順(大きいものから順)に並べられている。
図11に示すステップST38〜ST41による処理PR2は、例えば、図13に示すように、トラックネームランクテーブルTNRTの配列番号の大きい側に割り当てられたトラックネームTNが存在しないトラックデータを、トラック番号TNOが昇順(小さいものから順)になるように並べ替える。
上述したトラックネームランクテーブルTNRTの初期化処理が完了すると、例えば、図14(A)に示すように、トラックネームランクテーブルTNRTの配列データrank_table[0]には配列データの数「14」が格納され、配列データrank_table[1]〜[11]にはトラックネームTNが有るトラックデータのトラック番号TNOが格納され、配列データrank_table[12]〜[14]にはトラックネームTNが無いトラックデータのトラック番号TNOが格納される。
ここで、処理PR1の終了後は、トラックネームTNが存在しないトラックデータは、トラック番号TNOが降順(大きいものから順)に並べられている。
図11に示すステップST38〜ST41による処理PR2は、例えば、図13に示すように、トラックネームランクテーブルTNRTの配列番号の大きい側に割り当てられたトラックネームTNが存在しないトラックデータを、トラック番号TNOが昇順(小さいものから順)になるように並べ替える。
上述したトラックネームランクテーブルTNRTの初期化処理が完了すると、例えば、図14(A)に示すように、トラックネームランクテーブルTNRTの配列データrank_table[0]には配列データの数「14」が格納され、配列データrank_table[1]〜[11]にはトラックネームTNが有るトラックデータのトラック番号TNOが格納され、配列データrank_table[12]〜[14]にはトラックネームTNが無いトラックデータのトラック番号TNOが格納される。
なお、図9に示すアーティストネームランクテーブルARNRTの初期化処理(ステップST15)、アルバムネームランクテーブルALNRTの初期化処理(ステップST19)は、トラックネームランクテーブルTNRTについて行われた図11の処理を、それぞれアーティストネームランクテーブルARNRTおよびアルバムネームランクテーブルALNRTについて行う点を除いて同様である。
[ステップST14(トラックネームランクテーブルTNRTのソート)]
システムコントローラ8は、ステップST14において、ステップST13で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
システムコントローラ8は、例えば、上記ソートとして、マージソートを行う。
マージソートは、例えば、図15に示すように、ソート対象の配列を要素データに分割し、隣接した2つの要素データからなる複数の組の各々についてソートを行い、続いて、ソートが完了した隣接した2つの組の要素データをソートして新たな1つの組を生成する併合処理を行い、当該併合処理を最終的に組が1つになるまで繰り返す手法である。
システムコントローラ8は、ステップST14において、ステップST13で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
システムコントローラ8は、例えば、上記ソートとして、マージソートを行う。
マージソートは、例えば、図15に示すように、ソート対象の配列を要素データに分割し、隣接した2つの要素データからなる複数の組の各々についてソートを行い、続いて、ソートが完了した隣接した2つの組の要素データをソートして新たな1つの組を生成する併合処理を行い、当該併合処理を最終的に組が1つになるまで繰り返す手法である。
以下、図16〜図23は、トラックネームランクテーブルTNRTのソート処理の一例を説明するための図である。
図16〜図23において、配列データに対応して示される矩形内の数字は、比較値を示している。
システムコントローラ8は、例えば、図16に示すように、先ず、例えば図1および図5に示すRAM11内のテーブル記憶領域TABLEに記憶されたトラックネームランクテーブルTNRTの隣接する配列データrank_table[1]と[2]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[2]の比較値が配列データrank_table[1]の比較値より大きい(高位な)ので、配列データrank_table[1]と[2]でトラック番号TNOをスワップする(入れ換える)。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[3]と[4]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[4]の比較値が配列データrank_table[3]の比較値より大きいので、配列データrank_table[3]と[4]とでトラック番号TNOをスワップする。
図16〜図23において、配列データに対応して示される矩形内の数字は、比較値を示している。
システムコントローラ8は、例えば、図16に示すように、先ず、例えば図1および図5に示すRAM11内のテーブル記憶領域TABLEに記憶されたトラックネームランクテーブルTNRTの隣接する配列データrank_table[1]と[2]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[2]の比較値が配列データrank_table[1]の比較値より大きい(高位な)ので、配列データrank_table[1]と[2]でトラック番号TNOをスワップする(入れ換える)。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[3]と[4]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[4]の比較値が配列データrank_table[3]の比較値より大きいので、配列データrank_table[3]と[4]とでトラック番号TNOをスワップする。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[5]と[6]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[6]の比較値が配列データrank_table[5]の比較値より大きいので、配列データrank_table[5]と[6]とでトラック番号TNOをスワップする。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[7]と[8]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[8]の比較値が配列データrank_table[7]の比較値より大きいので、配列データrank_table[7]と[8]とでトラック番号TNOをスワップする。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[9]と[10]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[10]の比較値が配列データrank_table[9]の比較値より大きいので、配列データrank_table[9]と[10]とでトラック番号TNOをスワップする。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[7]と[8]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[8]の比較値が配列データrank_table[7]の比較値より大きいので、配列データrank_table[7]と[8]とでトラック番号TNOをスワップする。
また、システムコントローラ8は、例えば、図16に示すように、隣接する配列データrank_table[9]と[10]とに格納されたトラック番号TNOに対応するトラックネームTNの比較値を比較して、配列データrank_table[10]の比較値が配列データrank_table[9]の比較値より大きいので、配列データrank_table[9]と[10]とでトラック番号TNOをスワップする。
次に、システムコントローラ8は、図17に示すように、配列データrank_table[1]と[2]を要素とする組に属するトラック番号TNOを、例えば、図5に示すRAM11のワーク領域WORKにワーク配列データ[0],[1]に退避する(書き込む)。
次に、システムコントローラ8は、上記退避した配列データrank_table[1]と[2]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[3]と[4]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「4」)の配列データrank_table[3]に格納されているトラック番号TNOを配列データrank_table[1]に格納し、次に比較値が大きい配列データrank_table[4]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に格納されたトラック番号TNOを、配列データrank_table[3],[4]にそれぞれ書き込む。
次に、システムコントローラ8は、上記退避した配列データrank_table[1]と[2]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[3]と[4]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「4」)の配列データrank_table[3]に格納されているトラック番号TNOを配列データrank_table[1]に格納し、次に比較値が大きい配列データrank_table[4]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に格納されたトラック番号TNOを、配列データrank_table[3],[4]にそれぞれ書き込む。
また、システムコントローラ8は、図18に示すように、配列データrank_table[5]と[6]を要素とする組に属するトラック番号TNOを、例えば、図5に示すRAM11のワーク領域WORKにワーク配列データ[0],[1]に退避する(書き込む)。
次に、システムコントローラ8は、上記退避した配列データrank_table[5]と[6]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[7]と[8]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「8」)の配列データrank_table[7]に格納されているトラック番号TNOを配列データrank_table[5]に格納し、次に比較値が大きい配列データrank_table[8]に格納されているトラック番号TNOを配列データrank_table[6]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に格納されたトラック番号TNOを、配列データrank_table[7],[8]にそれぞれ書き込む。
次に、システムコントローラ8は、上記退避した配列データrank_table[5]と[6]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[7]と[8]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「8」)の配列データrank_table[7]に格納されているトラック番号TNOを配列データrank_table[5]に格納し、次に比較値が大きい配列データrank_table[8]に格納されているトラック番号TNOを配列データrank_table[6]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に格納されたトラック番号TNOを、配列データrank_table[7],[8]にそれぞれ書き込む。
また、システムコントローラ8は、図19に示すように、配列データrank_table[9]と[10]を要素とする組に属するトラック番号TNOを、例えば、図5に示すRAM11のワーク領域WORKにワーク配列データ[0],[1]に退避する(書き込む)。
次に、システムコントローラ8は、上記退避した配列データrank_table[9]と[10]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[11]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。なお、図19に示す配列データrank_table[11]が属する組は、図14(A)に示すようにトラックネームランクテーブルTNRTトラックデータ内のソート対象となる最後の組であり、この場合は、その要素は1つである。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「11」)の配列データrank_table[11]に格納されているトラック番号TNOを配列データrank_table[9]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に退避されたトラック番号TNOを、配列データrank_table[10],[11]にそれぞれ書き込む。
上述した図17〜図19を用いて説明した併合処理により、その内部の要素がソート済みの3つの組が得られる。
次に、システムコントローラ8は、上記退避した配列データrank_table[9]と[10]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[11]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。なお、図19に示す配列データrank_table[11]が属する組は、図14(A)に示すようにトラックネームランクテーブルTNRTトラックデータ内のソート対象となる最後の組であり、この場合は、その要素は1つである。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「11」)の配列データrank_table[11]に格納されているトラック番号TNOを配列データrank_table[9]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1]に退避されたトラック番号TNOを、配列データrank_table[10],[11]にそれぞれ書き込む。
上述した図17〜図19を用いて説明した併合処理により、その内部の要素がソート済みの3つの組が得られる。
次に、システムコントローラ8は、図20に示すように、配列データrank_table[1],[2],[3],[4]を要素とする組に属するトラック番号TNOを、例えば、図5に示すRAM11のワーク領域WORKにワーク配列データ[0],[1],[2],[3]に退避する(書き込む)。
次に、システムコントローラ8は、上記退避した配列データrank_table[1],[2],[3],[4]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[5],[6],[7],[8]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「8」)の配列データrank_table[5]に格納されているトラック番号TNOを配列データrank_table[1]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「7」)配列データrank_table[6]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「6」)配列データrank_table[7]に格納されているトラック番号TNOを配列データrank_table[3]に格納する。
また、システムコントローラ8は、図21に示すように、次に比較値が大きい(「5」)配列データrank_table[8]に格納されているトラック番号TNOを配列データrank_table[4]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1],[2],[3]に格納されたトラック番号TNOを、配列データrank_table[5],[6],[7],[8]にそれぞれ書き込む。
次に、システムコントローラ8は、上記退避した配列データrank_table[1],[2],[3],[4]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[5],[6],[7],[8]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「8」)の配列データrank_table[5]に格納されているトラック番号TNOを配列データrank_table[1]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「7」)配列データrank_table[6]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「6」)配列データrank_table[7]に格納されているトラック番号TNOを配列データrank_table[3]に格納する。
また、システムコントローラ8は、図21に示すように、次に比較値が大きい(「5」)配列データrank_table[8]に格納されているトラック番号TNOを配列データrank_table[4]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1],[2],[3]に格納されたトラック番号TNOを、配列データrank_table[5],[6],[7],[8]にそれぞれ書き込む。
次に、システムコントローラ8は、図22に示すように、配列データrank_table[1],[2],[3],[4],[5],[6],[7],[8]を要素とする組に属するトラック番号TNOを、例えば、図5に示すRAM11のワーク領域WORKにワーク配列データ[0],[1],[2],[3],[4],[5],[6],[7]に退避する(書き込む)。
次に、システムコントローラ8は、上記退避した配列データrank_table[1],[2],[3],[4],[5],[6],[7],[8]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[9],[10],[11]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「11」)の配列データrank_table[9]に格納されているトラック番号TNOを配列データrank_table[1]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「10」)配列データrank_table[10]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
また、システムコントローラ8は、図23に示すように次に比較値が大きい(「9」)配列データrank_table[11]に格納されているトラック番号TNOを配列データrank_table[3]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1],[2],[3],[4],[5],[6],[7],[8]に格納されたトラック番号TNOを、配列データrank_table[4],[5],[6],[7],[8],[9],[10],[11]にそれぞれ書き込む。
これにより、図14(B)に示すようにトラックネームTN内のトラックネームTNが有る要素が全てソートされる。
次に、システムコントローラ8は、上記退避した配列データrank_table[1],[2],[3],[4],[5],[6],[7],[8]に格納されていたトラック番号TNOと、その組に対して配列番号が大きい側に隣接して位置する組の要素である配列データrank_table[9],[10],[11]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
そして、システムコントローラ8は、上記比較の結果を基に、比較値が最大(「11」)の配列データrank_table[9]に格納されているトラック番号TNOを配列データrank_table[1]に格納する。
また、システムコントローラ8は、次に比較値が大きい(「10」)配列データrank_table[10]に格納されているトラック番号TNOを配列データrank_table[2]に格納する。
また、システムコントローラ8は、図23に示すように次に比較値が大きい(「9」)配列データrank_table[11]に格納されているトラック番号TNOを配列データrank_table[3]に格納する。
続いて、システムコントローラ8は、ワーク配列データ[0],[1],[2],[3],[4],[5],[6],[7],[8]に格納されたトラック番号TNOを、配列データrank_table[4],[5],[6],[7],[8],[9],[10],[11]にそれぞれ書き込む。
これにより、図14(B)に示すようにトラックネームTN内のトラックネームTNが有る要素が全てソートされる。
図24〜図26は、システムコントローラ8による上述したステップST14(トラックネームランクテーブルTNRTのソート)の処理のフローチャートである。
以下に示す処理は、システムコントローラ8が、プログラムPRGに従って、RAM11に記憶されたデータを用いて、RAM11をワーク領域として使用して行われる。
ステップST71:
システムコントローラ8は、変数iに「1」を代入する。
また、システムコントローラ8は、図9に示すステップST13において初期化によって得られたトラックネームTNが有るトラックデータの数を、変数nに代入する。
ステップST72:
システムコントローラ8は、変数iの値が変数nの値より小さいか否かを判断し、小さいと判断するとステップST77に進み、そうでない場合にはステップST73に進む。
ステップST73:
システムコントローラ8は、トラックネームランクテーブルTNRT内の配列データrank_table[i]と[i+1]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
ステップST74:
システムコントローラ8は、ステップST73の比較において、配列データrank_table[i+1]のトラックネームTNの比較値が大きいと判断すると、ステップST75に進み、そうでない場合にステップST76に進む。
以下に示す処理は、システムコントローラ8が、プログラムPRGに従って、RAM11に記憶されたデータを用いて、RAM11をワーク領域として使用して行われる。
ステップST71:
システムコントローラ8は、変数iに「1」を代入する。
また、システムコントローラ8は、図9に示すステップST13において初期化によって得られたトラックネームTNが有るトラックデータの数を、変数nに代入する。
ステップST72:
システムコントローラ8は、変数iの値が変数nの値より小さいか否かを判断し、小さいと判断するとステップST77に進み、そうでない場合にはステップST73に進む。
ステップST73:
システムコントローラ8は、トラックネームランクテーブルTNRT内の配列データrank_table[i]と[i+1]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
ステップST74:
システムコントローラ8は、ステップST73の比較において、配列データrank_table[i+1]のトラックネームTNの比較値が大きいと判断すると、ステップST75に進み、そうでない場合にステップST76に進む。
ステップST75:
システムコントローラ8は、配列データrank_table[i]と[i+1]でトラック番号TNOをスワップする(入れ換える)。
ステップST76:
システムコントローラ8は、変数iの値を「2」インクリメントする。
システムコントローラ8は、配列データrank_table[i]と[i+1]でトラック番号TNOをスワップする(入れ換える)。
ステップST76:
システムコントローラ8は、変数iの値を「2」インクリメントする。
ステップST77:
システムコントローラ8は、変数lenに「2」を代入する。
ステップST78:
システムコントローラ8は、変数lenの値が変数nの値より小さいか否かを判断し、小さいと判断するとステップST79に進み、そうでない場合には処理を終了する。
ステップST79:
システムコントローラ8は、変数lowに「1」を代入する。
ステップST80:
システムコントローラ8は、変数lowの値が、変数nの値から変数lenの値を減じた値以下であるか否かを判断し、そうであると判断するとステップST81に進み、そうでないと判断するとステップST98に進む。
システムコントローラ8は、変数lenに「2」を代入する。
ステップST78:
システムコントローラ8は、変数lenの値が変数nの値より小さいか否かを判断し、小さいと判断するとステップST79に進み、そうでない場合には処理を終了する。
ステップST79:
システムコントローラ8は、変数lowに「1」を代入する。
ステップST80:
システムコントローラ8は、変数lowの値が、変数nの値から変数lenの値を減じた値以下であるか否かを判断し、そうであると判断するとステップST81に進み、そうでないと判断するとステップST98に進む。
ステップST81:
システムコントローラ8は、変数lowの値に変数lenの値を加算した値を、変数midに代入する。
また、システムコントローラ8は、変数midの値に変数lenの値を加算した値を、変数highに代入する。
ステップST82:
システムコントローラ8は、変数highから「1」を減じた値が、変数nの値より大きいか否かを判断し、大きいと判断するとステップST83に進み、そうでない場合にはステップST84に進む。
ステップST83:
システムコントローラ8は、変数nの値に「1」を加算した値を、変数highに代入する。
システムコントローラ8は、変数lowの値に変数lenの値を加算した値を、変数midに代入する。
また、システムコントローラ8は、変数midの値に変数lenの値を加算した値を、変数highに代入する。
ステップST82:
システムコントローラ8は、変数highから「1」を減じた値が、変数nの値より大きいか否かを判断し、大きいと判断するとステップST83に進み、そうでない場合にはステップST84に進む。
ステップST83:
システムコントローラ8は、変数nの値に「1」を加算した値を、変数highに代入する。
ステップST84:
システムコントローラ8は、変数pに「0」を代入する。
ステップST85:
システムコントローラ8は、変数iに変数lowの値を代入する。
ステップST86:
システムコントローラ8は、変数iの値が、変数midの値より小さいか否かを判断し、小さいと判断するとステップST87に進み、そうでない場合にはステップST88に進む。
ステップST87:
システムコントローラ8は、配列データrank_table[i]の値を、RAM11のワーク領域WORKに記憶されたワーク配列データwork[p]に格納する。
システムコントローラ8は、変数pの値を「1」だけインクリメントする。
システムコントローラ8は、変数iの値を「1」だけインクリメントする。
ステップST88:
システムコントローラ8は、変数midの値を変数iに代入する。
また、システムコントローラ8は、変数jに「0」を代入する。
また、システムコントローラ8は、変数kに、変数lowの値を代入する。
システムコントローラ8は、変数pに「0」を代入する。
ステップST85:
システムコントローラ8は、変数iに変数lowの値を代入する。
ステップST86:
システムコントローラ8は、変数iの値が、変数midの値より小さいか否かを判断し、小さいと判断するとステップST87に進み、そうでない場合にはステップST88に進む。
ステップST87:
システムコントローラ8は、配列データrank_table[i]の値を、RAM11のワーク領域WORKに記憶されたワーク配列データwork[p]に格納する。
システムコントローラ8は、変数pの値を「1」だけインクリメントする。
システムコントローラ8は、変数iの値を「1」だけインクリメントする。
ステップST88:
システムコントローラ8は、変数midの値を変数iに代入する。
また、システムコントローラ8は、変数jに「0」を代入する。
また、システムコントローラ8は、変数kに、変数lowの値を代入する。
ステップST89:
システムコントローラ8は、変数iの値が、変数highの値より小さいか否かを判断し、小さいと判断するとステップST90に進み、そうでない場合にはステップST95に進む。
ステップST90:
システムコントローラ8は、変数jの値が、変数pの値より小さいか否かを判断し、小さいと判断するとステップST91に進み、そうでない場合にはステップST95に進む。
ステップST91:
システムコントローラ8は、ワーク配列データwork[j]および配列データrank_table[i]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
ステップST92:
システムコントローラ8は、ステップST73の比較において、ワーク配列データwork[j]のトラックネームTNの比較値が大きいと判断すると、ステップST93に進み、そうでない場合にステップST94に進む。
システムコントローラ8は、変数iの値が、変数highの値より小さいか否かを判断し、小さいと判断するとステップST90に進み、そうでない場合にはステップST95に進む。
ステップST90:
システムコントローラ8は、変数jの値が、変数pの値より小さいか否かを判断し、小さいと判断するとステップST91に進み、そうでない場合にはステップST95に進む。
ステップST91:
システムコントローラ8は、ワーク配列データwork[j]および配列データrank_table[i]に格納されているトラック番号TNOについて、当該トラック番号TNOに対応するトラックネームTNの比較値を比較する。
ステップST92:
システムコントローラ8は、ステップST73の比較において、ワーク配列データwork[j]のトラックネームTNの比較値が大きいと判断すると、ステップST93に進み、そうでない場合にステップST94に進む。
ステップST93:
システムコントローラ8は、ワーク配列データwork[j]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
ステップST94:
システムコントローラ8は、配列データrank_table[i]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
システムコントローラ8は、ワーク配列データwork[j]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
ステップST94:
システムコントローラ8は、配列データrank_table[i]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
ステップST95:
システムコントローラ8は、変数jの値が変数pの値より小さいか否かを判断し、小さいと判断するとステップST96に進み、そうでない場合にはステップST97に進む。
ステップST96:
システムコントローラ8は、ワーク配列データwork[j]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
ステップST97:
システムコントローラ8は、変数highの値を変数lowに代入する。
ステップST98:
システムコントローラ8は、変数lenに「2」を乗じた値を変数lenに代入する。
システムコントローラ8は、変数jの値が変数pの値より小さいか否かを判断し、小さいと判断するとステップST96に進み、そうでない場合にはステップST97に進む。
ステップST96:
システムコントローラ8は、ワーク配列データwork[j]に格納されたトラック番号TNOを、配列データrank_table[k]に格納する。
また、システムコントローラ8は、変数k、iの値を「1」だけインクリメントする。
ステップST97:
システムコントローラ8は、変数highの値を変数lowに代入する。
ステップST98:
システムコントローラ8は、変数lenに「2」を乗じた値を変数lenに代入する。
上述したソート処理におけるトラックネームTNの比較処理について説明する。
当該比較処理は、例えば、図24に示すステップST73、図26に示すステップST91で行われる。
以下、トラック番号TNOが「i」のトラックデータとトラック番号TNOが「j」のトラックデータとでのトラックネームTNの比較処理を行う場合を例示する。
図27は、当該処理を説明するためのフローチャートである。
ステップST111:
システムコントローラ8は、比較文字位置を示すカウンタ変数xに初期値「0」を設定する。
ステップST112:
システムコントローラ8は、トラック番号TNOが「i」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST113:
システムコントローラ8は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
当該比較処理は、例えば、図24に示すステップST73、図26に示すステップST91で行われる。
以下、トラック番号TNOが「i」のトラックデータとトラック番号TNOが「j」のトラックデータとでのトラックネームTNの比較処理を行う場合を例示する。
図27は、当該処理を説明するためのフローチャートである。
ステップST111:
システムコントローラ8は、比較文字位置を示すカウンタ変数xに初期値「0」を設定する。
ステップST112:
システムコントローラ8は、トラック番号TNOが「i」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST113:
システムコントローラ8は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
ステップST114:
システムコントローラ8は、ROM10あるいはRAM11に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANは、各文字に対応する比較値を示し、名前順のソートにおいて高い優先順位を付ける文字に、それより低い優先順位を付ける文字に比べて大きな比較値を規定している。
当該比較値変換テーブルTRANについては、後に詳細に説明する。
ステップST115:
システムコントローラ8は、上記比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
システムコントローラ8は、ROM10あるいはRAM11に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANは、各文字に対応する比較値を示し、名前順のソートにおいて高い優先順位を付ける文字に、それより低い優先順位を付ける文字に比べて大きな比較値を規定している。
当該比較値変換テーブルTRANについては、後に詳細に説明する。
ステップST115:
システムコントローラ8は、上記比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
ステップST116:
システムコントローラ8は、ステップST114で変数cc1に格納された比較値と、ステップST115で変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が大きい場合に、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記比較において変数cc2に格納した比較値の方が大きくないと判断するとステップST117に進む。
ステップST117:
システムコントローラ8は、ステップST114で変数cc1に格納された比較値と、ステップST115で変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が小さい場合に、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記比較において変数cc2に格納した比較値の方が小さくないと判断するとステップST118に進む。
システムコントローラ8は、ステップST114で変数cc1に格納された比較値と、ステップST115で変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が大きい場合に、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記比較において変数cc2に格納した比較値の方が大きくないと判断するとステップST117に進む。
ステップST117:
システムコントローラ8は、ステップST114で変数cc1に格納された比較値と、ステップST115で変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が小さい場合に、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記比較において変数cc2に格納した比較値の方が小さくないと判断するとステップST118に進む。
ステップST118:
システムコントローラ8は、変数xを「1」だけインクリメントする。
ステップST119:
システムコントローラ8は、変数xが示す文字数が最大文字数以下であるか否かを判断し、最大文字数以下であると判断するとステップST112に戻り、そうでない場合にはステップST120に進む。
ステップST120:
システムコントローラ8は、変数iの値が変数jの値より小さいか否かを判断し、小さいと判断すると、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記判断で上記小さくないと判断すると、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
システムコントローラ8は、変数xを「1」だけインクリメントする。
ステップST119:
システムコントローラ8は、変数xが示す文字数が最大文字数以下であるか否かを判断し、最大文字数以下であると判断するとステップST112に戻り、そうでない場合にはステップST120に進む。
ステップST120:
システムコントローラ8は、変数iの値が変数jの値より小さいか否かを判断し、小さいと判断すると、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記判断で上記小さくないと判断すると、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
[比較値変換テーブルTRAN]
以下、上述した図27に示すステップST114,ST115で用いる比較値変換テーブルTRANについて説明する。
図28は、比較値変換テーブルTRANを説明するための図である。
図28に示すように、比較値変換テーブルTRANは、ASCII、ISO 8859-1、Music Shift JIS 、Shift JIS、Unicodeの各々についての変換テーブルを有する。
また、比較値変換テーブルTRANは、各文字に、名前順のソートにおける優先順位が高くなるに従って大きい比較値を割り当てている。
具体的には、SPACE、記号 (Music外字の絵文字なども含む)、数字 (丸付き,ローマ数字なども含む)、アルファベット (欧州文字,UnicodeのISO 8859-1領域を含む)、ひらがな、カタカナ、ギリシア文字、キリール文字、罫線素片、漢字、外字、UnicodeのISO 8859-1領域以外。 文字コードについては、ASCII(MD1)、ISO 8859-1 (Hi-MD)、Shift JISの1バイト文字(Hi-MD)、Music Shift JIS(MD1)、Shift JISの2バイト文字 (Hi-MD)、Unicode (Hi-MD)の順で高い優先順位がつけられる。
また、半角と全角では半角に高い優先順位がつけられる。
ASCII(半角扱い)、ISO 8859-1 (半角扱い)、Shift JISの1バイト文字(半角扱い)、Music外字の半角(半角扱い)、Music Shift JISの全角(全角扱い)、Shift JISの2バイト文字(全角扱い)、Music外字の全角(全角扱い)、Unicode (全角扱い)の順とする。
また、数字自体は、「数」ではなくてコード順とする。
アルファベットはアルファベット順で,大文字に小文字に比べて高い優先順位を付ける。
仮名は50音順で,ひらがなをカタカナより高い優先順位とする。例えば、小さいひらがな、小さいカタカナ、ひらがな、 カタカナ、ひらがな(濁音)、カタカナ(濁音)、ひらがな(半濁音)、カタカナ(半濁音)の順で高い優先順位を付ける。
以下、上述した図27に示すステップST114,ST115で用いる比較値変換テーブルTRANについて説明する。
図28は、比較値変換テーブルTRANを説明するための図である。
図28に示すように、比較値変換テーブルTRANは、ASCII、ISO 8859-1、Music Shift JIS 、Shift JIS、Unicodeの各々についての変換テーブルを有する。
また、比較値変換テーブルTRANは、各文字に、名前順のソートにおける優先順位が高くなるに従って大きい比較値を割り当てている。
具体的には、SPACE、記号 (Music外字の絵文字なども含む)、数字 (丸付き,ローマ数字なども含む)、アルファベット (欧州文字,UnicodeのISO 8859-1領域を含む)、ひらがな、カタカナ、ギリシア文字、キリール文字、罫線素片、漢字、外字、UnicodeのISO 8859-1領域以外。 文字コードについては、ASCII(MD1)、ISO 8859-1 (Hi-MD)、Shift JISの1バイト文字(Hi-MD)、Music Shift JIS(MD1)、Shift JISの2バイト文字 (Hi-MD)、Unicode (Hi-MD)の順で高い優先順位がつけられる。
また、半角と全角では半角に高い優先順位がつけられる。
ASCII(半角扱い)、ISO 8859-1 (半角扱い)、Shift JISの1バイト文字(半角扱い)、Music外字の半角(半角扱い)、Music Shift JISの全角(全角扱い)、Shift JISの2バイト文字(全角扱い)、Music外字の全角(全角扱い)、Unicode (全角扱い)の順とする。
また、数字自体は、「数」ではなくてコード順とする。
アルファベットはアルファベット順で,大文字に小文字に比べて高い優先順位を付ける。
仮名は50音順で,ひらがなをカタカナより高い優先順位とする。例えば、小さいひらがな、小さいカタカナ、ひらがな、 カタカナ、ひらがな(濁音)、カタカナ(濁音)、ひらがな(半濁音)、カタカナ(半濁音)の順で高い優先順位を付ける。
また、比較値変換テーブルTRANは、例えば、Music Shift JISのギリシャ文字、キリール文字、罫線素片、漢字については変換テーブルを有さない。システムコントローラ8は、これらの文字については、そのMusic Shift JISのコードをそのまま比較値とする。
また、比較値変換テーブルTRANは、Shift JISのギリシャ文字、キリール文字、罫線素片、漢字については変換テーブルを有さない。システムコントローラ8は、これらの文字については、そのShift JISのコードをそのまま比較値とする。
また、比較値変換テーブルTRANは、Unicode のBMP面等についても、変換テーブルを有さない。システムコントローラ8は、これらの文字については、そのコードに「10000h」を加算した値を比較値とする。
記録再生装置1によれば、このように、上述した所定の文字について変換テーブルを用いずに、そのコードや当該コードに所定の値を加算した値をその比較値とすることで、比較値変換テーブルTRANのデータ量を削減でき、RAM11あるいはROM10の記憶容量を効率的に利用できる。
また、比較値変換テーブルTRANは、Shift JISのギリシャ文字、キリール文字、罫線素片、漢字については変換テーブルを有さない。システムコントローラ8は、これらの文字については、そのShift JISのコードをそのまま比較値とする。
また、比較値変換テーブルTRANは、Unicode のBMP面等についても、変換テーブルを有さない。システムコントローラ8は、これらの文字については、そのコードに「10000h」を加算した値を比較値とする。
記録再生装置1によれば、このように、上述した所定の文字について変換テーブルを用いずに、そのコードや当該コードに所定の値を加算した値をその比較値とすることで、比較値変換テーブルTRANのデータ量を削減でき、RAM11あるいはROM10の記憶容量を効率的に利用できる。
なお、本実施形態では、Hi−MDシステムを想定しているため、比較値変換テーブルTRANとして、図28に示す各種変換テーブルのうち、ISO 8859-1、Shift JIS、Unicodeの変換テーブルを含み、それ以外の変換テーブルを含まないものが用いられる。
上述した例では、システムコントローラ8が、図11〜図28を用いて説明したようにトラックネームランクテーブルTNRTを生成する場合を例示したが、システムコントローラ8は、アーティストネームランクテーブルARNRT、アルバムネームランクテーブルALNRTについても、それぞれアーティストネームおよびアルバムネームについて処理を行う点を除いて、図11〜図28に示すのと同じ処理で生成する。
以下、図10に示すグループネームランクテーブルGNRTの初期化処理(ステップST23)について説明する。
図29は、図10に示すステップST23の処理を説明するためのフローチャートである。
図29においてステップST131,ST132,ST134〜ST141は、それぞれ図11に示すステップST31,ST32,ST34〜ST41と同じである。
グループネームランクテーブルGNRTの初期化処理は、図29に示すステップST133において、システムコントローラ8は、グループ番号GNOが「n」のグループネームGNが存在するか否かを判断し、存在すると判断するとステップST134に進み、存在しないと判断するとステップST135に進む。
図29は、図10に示すステップST23の処理を説明するためのフローチャートである。
図29においてステップST131,ST132,ST134〜ST141は、それぞれ図11に示すステップST31,ST32,ST34〜ST41と同じである。
グループネームランクテーブルGNRTの初期化処理は、図29に示すステップST133において、システムコントローラ8は、グループ番号GNOが「n」のグループネームGNが存在するか否かを判断し、存在すると判断するとステップST134に進み、存在しないと判断するとステップST135に進む。
図29に示すステップST131〜ST137による処理PR3は、例えば、図30に示すように、グループ番号テーブルGNOTを基に、グループネームGNが存在するグループのグループ番号GNOをグループネームランクテーブルGNRTの配列番号が小さい位置から順に割り当て、グループネームGNが存在しないグループのグループ番号GNOを配列番号が大きい位置から順に割り当てる処理である。
ここで、処理PR3の終了後は、グループネームGNが存在しないグループデータは、グループ番号GNOが降順(大きいものから順)に並べられている。
図29に示すステップST138〜ST141による処理PR4は、例えば、図31に示すように、グループネームランクテーブルGNRTの配列番号の大きい側に割り当てられたグループネームGNが存在しないグループを、グループ番号GNOが昇順(小さいものから順)になるように並べ替える。
なお、システムコントローラ8は、グループネームランクテーブルGNRTの生成処理においても、図14〜図28で説明した手順でグループネームのソート処理を行う。
ここで、処理PR3の終了後は、グループネームGNが存在しないグループデータは、グループ番号GNOが降順(大きいものから順)に並べられている。
図29に示すステップST138〜ST141による処理PR4は、例えば、図31に示すように、グループネームランクテーブルGNRTの配列番号の大きい側に割り当てられたグループネームGNが存在しないグループを、グループ番号GNOが昇順(小さいものから順)になるように並べ替える。
なお、システムコントローラ8は、グループネームランクテーブルGNRTの生成処理においても、図14〜図28で説明した手順でグループネームのソート処理を行う。
以下、図1に示す記録再生装置1による各種テーブルを利用した表示(出力)処理について説明する。
図32は、当該処理を説明するためのフローチャートである。
ステップST161:
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、トラックネームTNのソート結果の表示要求を受けるとステップST162に進み、そうでない場合にはステップST163に進む。
ステップST162:
システムコントローラ8は、図9に示すステップST14のソート処理を経てRAM11に記憶されたトラックネームランクテーブルTNRTを基に、記録ディスクDISKに記憶されたトラックデータのトラックネームTNを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
本実施形態において、システムコントローラ8は、選曲操作に応じてトラックデータが指定されると、ストレージ部2を制御して、当該指定されたトラックデータを記録媒体DISKから読み出し、これを入出力処理部5に出力して再生させる。
図32は、当該処理を説明するためのフローチャートである。
ステップST161:
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、トラックネームTNのソート結果の表示要求を受けるとステップST162に進み、そうでない場合にはステップST163に進む。
ステップST162:
システムコントローラ8は、図9に示すステップST14のソート処理を経てRAM11に記憶されたトラックネームランクテーブルTNRTを基に、記録ディスクDISKに記憶されたトラックデータのトラックネームTNを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
本実施形態において、システムコントローラ8は、選曲操作に応じてトラックデータが指定されると、ストレージ部2を制御して、当該指定されたトラックデータを記録媒体DISKから読み出し、これを入出力処理部5に出力して再生させる。
ステップST163:
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、アーティストネームのソート結果の表示要求を受けるとステップST164に進み、そうでない場合にはステップST165に進む。
ステップST164:
システムコントローラ8は、図9に示すステップST16のソート処理を経てRAM11に記憶されたアーティストネームランクテーブルARNRTを基に、記録ディスクDISKに記憶されたトラックデータのアーティストネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、アーティストネームのソート結果の表示要求を受けるとステップST164に進み、そうでない場合にはステップST165に進む。
ステップST164:
システムコントローラ8は、図9に示すステップST16のソート処理を経てRAM11に記憶されたアーティストネームランクテーブルARNRTを基に、記録ディスクDISKに記憶されたトラックデータのアーティストネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
ステップST165:
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、アルバムネームのソート結果の表示要求を受けるとステップST166に進み、そうでない場合にはステップST167に進む。
ステップST166:
システムコントローラ8は、図10に示すステップST20のソート処理を経てRAM11に記憶されたアルバムネームランクテーブルALNRTを基に、記録ディスクDISKに記憶されたトラックデータのアルバムネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、アルバムネームのソート結果の表示要求を受けるとステップST166に進み、そうでない場合にはステップST167に進む。
ステップST166:
システムコントローラ8は、図10に示すステップST20のソート処理を経てRAM11に記憶されたアルバムネームランクテーブルALNRTを基に、記録ディスクDISKに記憶されたトラックデータのアルバムネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
ステップST167:
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、グループネームのソート結果の表示要求を受けるとステップST168に進み、そうでない場合にはステップST161に戻る。
ステップST168:
システムコントローラ8は、図10に示すステップST24のソート処理を経てRAM11に記憶されたグループネームランクテーブルGNRTを基に、記録ディスクDISKに記憶されたトラックデータのグループネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
なお、図9に示すステップST16、図10に示すST20、ST22、ST24においても、前述したステップST14と同様にソート処理が行われる。
図1に示すシステムコントローラ8は、図3および図4を用いて説明した選曲画面を表示部6に表示中に、ユーザによる操作部7の操作に応じて、グループネームのソート結果の表示要求を受けるとステップST168に進み、そうでない場合にはステップST161に戻る。
ステップST168:
システムコントローラ8は、図10に示すステップST24のソート処理を経てRAM11に記憶されたグループネームランクテーブルGNRTを基に、記録ディスクDISKに記憶されたトラックデータのグループネームを、名前順に表示部6に表示する。ユーザは、表示部6の表示を基に、選曲操作を行う。
なお、図9に示すステップST16、図10に示すST20、ST22、ST24においても、前述したステップST14と同様にソート処理が行われる。
以上説明したように、記録再生装置1によれば、システムコントローラ8が、ソート処理の過程で、図16および図24に示すように、ソート対象のトラックネームランクテーブルTNRTをそれぞれ単数の配列データrank_table[]から構成される組に分割し、各組について、当該組と隣接する組の配列データrank_table[]を対象としてソートを行い、2つの配列データrank_table[]から構成される新たな組を生成する際に、図25〜図26を用いて説明した処理ではなく、図24を用いて説明したスワップ処理を行うことで、当該ソート時間を従来に比べて短縮できる。
また、記録再生装置1によれば、図28を用いて説明したように、例えば、ギリシャ文字、キリール文字、罫線素片、漢字、並びにUnicode のBMP面等については、比較値変換テーブルTRANにおいて比較値との対応関係を規定しない。そのため、記録再生装置1によれば、従来に比べて比較値変換テーブルTRANのデータ量を削減でき、RAM11あるいはROM10の記憶容量を効率的に利用できる。
また、記録再生装置1によれば、システムコントローラ8は、上記比較値変換テーブルTRANに比較値との対応関係を規定しない文字について、そのコードや当該コードに所定の値を加算した値をその比較値として生成する。これにより、図28に示すように、これらの文字についての優先順位を反映させた比較値を生成することができ、所望のソート結果を得ることができる。
また、記録再生装置1によれば、システムコントローラ8は、上記比較値変換テーブルTRANに比較値との対応関係を規定しない文字について、そのコードや当該コードに所定の値を加算した値をその比較値として生成する。これにより、図28に示すように、これらの文字についての優先順位を反映させた比較値を生成することができ、所望のソート結果を得ることができる。
<第2実施形態>
上述した第1実施形態では、図1に示す記録媒体DISKとしてHi−MDを用いた場合を例示したが、本実施形態では、記録媒体DISKとしてMDを用いた場合を例示する。
図33は、本発明の実施形態に係わる記録再生装置101の全体構成図である。
図33に示すように、記録再生装置101は、例えば、ストレージ部102、キャッシュメモリ3、インタフェース4、入出力処理部5、表示部6、操作部7、システムコントローラ108、キャッシュ管理メモリ9、ROM110およびRAM111を有する。
図33において、図1と同じ符号を付した構成要素は、第1実施形態で説明したものと同じである。
ストレージ部102は、記録媒体DISKaに対してデータの書き込みおよび読み出しなどのアクセスを行う。
本実施形態では、記録媒体DISKaとして、MDを用いた場合を例示する。
本実施形態では、上記記録媒体DISKaは、複数のトラックデータを記憶し、各トラックデータには、図34に示すように、トラック番号TNOが割り当てられている。
本実施形態では、トラックデータは、例えば、オーディオの楽曲データを含む。
また、各トラックデータには、図34に示すように、ユーザによって規定されたトラックネームTNおよびグループネームGNが含まれる。これらのデータは、記録媒体DISKaに記憶されると共に、RAM111にも読み込まれる。
トラックネームTNは、例えば、トラックデータ内の楽曲データのタイトルを示している。
グループネームGNは、トラックデータが属するグループの名前を示している。
当該グループは、例えば、ユーザによって規定される。
上述した第1実施形態では、図1に示す記録媒体DISKとしてHi−MDを用いた場合を例示したが、本実施形態では、記録媒体DISKとしてMDを用いた場合を例示する。
図33は、本発明の実施形態に係わる記録再生装置101の全体構成図である。
図33に示すように、記録再生装置101は、例えば、ストレージ部102、キャッシュメモリ3、インタフェース4、入出力処理部5、表示部6、操作部7、システムコントローラ108、キャッシュ管理メモリ9、ROM110およびRAM111を有する。
図33において、図1と同じ符号を付した構成要素は、第1実施形態で説明したものと同じである。
ストレージ部102は、記録媒体DISKaに対してデータの書き込みおよび読み出しなどのアクセスを行う。
本実施形態では、記録媒体DISKaとして、MDを用いた場合を例示する。
本実施形態では、上記記録媒体DISKaは、複数のトラックデータを記憶し、各トラックデータには、図34に示すように、トラック番号TNOが割り当てられている。
本実施形態では、トラックデータは、例えば、オーディオの楽曲データを含む。
また、各トラックデータには、図34に示すように、ユーザによって規定されたトラックネームTNおよびグループネームGNが含まれる。これらのデータは、記録媒体DISKaに記憶されると共に、RAM111にも読み込まれる。
トラックネームTNは、例えば、トラックデータ内の楽曲データのタイトルを示している。
グループネームGNは、トラックデータが属するグループの名前を示している。
当該グループは、例えば、ユーザによって規定される。
システムコントローラ108は、記録再生装置101の全体の制御を行うと共に、接続されたパーソナルコンピュータ20との間の通信制御を行う。
ROM110には、システムコントローラ108の動作を規定したプログラムPRGa、並びに各種データが記憶される。
当該プログラムPRGaは、例えば、後述するように、記録媒体DISKaに記録されたトラックデータのソートの処理を規定している。
当該プログラムPRGaは、例えば、後述するように、記録媒体DISKaに記録されたトラックデータのソートの処理を規定している。
RAM111は、システムコントローラ108によるワーク領域として用いられ、また各種必要なデータを記憶する。
RAM111は、例えば、後述するように、記録媒体DISKaに記録されたトラックデータのソートの処理に用いられる各種テーブルデータなどを記憶する。
当該テーブルデータは、システムコントローラ108によって生成され、RAM111に書き込まれる。
RAM111は、例えば、後述するように、記録媒体DISKaに記録されたトラックデータのソートの処理に用いられる各種テーブルデータなどを記憶する。
当該テーブルデータは、システムコントローラ108によって生成され、RAM111に書き込まれる。
システムコントローラ108は、ROM110から読み出したプログラムPRGaに基づいて、本実施形態で規定した以下に示す各種の処理を行う。
システムコントローラ108は、上述したトラックネームTNおよびグループネームGNのソートを行う。
システムコントローラ108は、ソート指示を受けると、動作周波数を通常動作周波数からそれより高いソート時動作周波数に切り換えて、以下に示す手順により、図35に示すトラック番号テーブルTNOT、トラックネームランクテーブルTNRT、グループネームランクテーブルGNRT、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJTを生成し、これをRAM111内のテーブル記憶領域TABLEに書き込む。
システムコントローラ108は、上述したテーブル生成動作を終了後、その動作周波数を通常動作周波数に切り換える。
記録再生装置101では、このようなテーブルを生成してRAM111に書き込むことで、ソート指示や、ソートに関連する所定の指示を受けた場合に、後述するように、RAM11から当該テーブルを読み出してソートに関連した処理結果を出力することができ、ソートに関連する指示を受けてからその結果を得るまでの時間を従来に比べて短縮できる。また、当該テーブルは、以下のような構成を有し、比較的データ量が小さく、RAM111は従来に比べて大規模な記憶容量を必要としない。
なお、システムコントローラ108は、ソート指示を受けたとき以外に、処理負荷が所定の基準以下のときに、テーブル生成処理を行う。
システムコントローラ108は、上述したトラックネームTNおよびグループネームGNのソートを行う。
システムコントローラ108は、ソート指示を受けると、動作周波数を通常動作周波数からそれより高いソート時動作周波数に切り換えて、以下に示す手順により、図35に示すトラック番号テーブルTNOT、トラックネームランクテーブルTNRT、グループネームランクテーブルGNRT、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJTを生成し、これをRAM111内のテーブル記憶領域TABLEに書き込む。
システムコントローラ108は、上述したテーブル生成動作を終了後、その動作周波数を通常動作周波数に切り換える。
記録再生装置101では、このようなテーブルを生成してRAM111に書き込むことで、ソート指示や、ソートに関連する所定の指示を受けた場合に、後述するように、RAM11から当該テーブルを読み出してソートに関連した処理結果を出力することができ、ソートに関連する指示を受けてからその結果を得るまでの時間を従来に比べて短縮できる。また、当該テーブルは、以下のような構成を有し、比較的データ量が小さく、RAM111は従来に比べて大規模な記憶容量を必要としない。
なお、システムコントローラ108は、ソート指示を受けたとき以外に、処理負荷が所定の基準以下のときに、テーブル生成処理を行う。
記録再生装置101による後述する名前順のソートは、前述した比較値変換テーブルTRANが規定する比較値を基に行われる。
本実施形態では、システムコントローラ108は、図28を用いて第1実施形態で説明した優先順位でソートを行う。
このとき、文字コートとしては、ASCIIおよびMusic Shift JISが用いられる。
ところで、文字コードASCIIは、カタカナにコードが直接的に割り当てられていない。従って、文字コードASCIIでは、カタカナをローマ字入力した場合のアルファベットの文字列の前後に「^」が付けてカタカナを表現している。例えば、カタカナの「アイウ」は、ASCIIにおいて、「^AIU^」と表現される。
従来では、ASCIIで表現されたカタカナをソートする場合に、「^(カタカナ)^」をカタカナに変換した後に、比較値変換テーブルを基に比較値を取得している。
本実施形態では、システムコントローラ108は、トラックネームTNが、ASCIIで表現されたカタカナである場合に、それをカタカナとして直接表現したデータとトラック番号TNOとを対応付けて示すたテーブルを作成し、ソート時に当該テーブルを基に比較値を取得する。これにより、ASCIIで表現されたカタカナのネームの比較値を短時間で得ることができる。
本実施形態では、システムコントローラ108は、図28を用いて第1実施形態で説明した優先順位でソートを行う。
このとき、文字コートとしては、ASCIIおよびMusic Shift JISが用いられる。
ところで、文字コードASCIIは、カタカナにコードが直接的に割り当てられていない。従って、文字コードASCIIでは、カタカナをローマ字入力した場合のアルファベットの文字列の前後に「^」が付けてカタカナを表現している。例えば、カタカナの「アイウ」は、ASCIIにおいて、「^AIU^」と表現される。
従来では、ASCIIで表現されたカタカナをソートする場合に、「^(カタカナ)^」をカタカナに変換した後に、比較値変換テーブルを基に比較値を取得している。
本実施形態では、システムコントローラ108は、トラックネームTNが、ASCIIで表現されたカタカナである場合に、それをカタカナとして直接表現したデータとトラック番号TNOとを対応付けて示すたテーブルを作成し、ソート時に当該テーブルを基に比較値を取得する。これにより、ASCIIで表現されたカタカナのネームの比較値を短時間で得ることができる。
システムコントローラ108は、トラックネームTNのソートにおいて、同じトラック名のトラックデータはトラック番号順に並べる。
また、システムコントローラ108は、トラックネームTNの無いトラックデータは、上記ソート対象のトラックデータに対して低い優先順位を付けて、トラック番号TNO順で並べる。
また、システムコントローラ108は、トラックネームTNの無いトラックデータと未対応の文字コードをトラックネームTNに用いたトラックデータとは区別せずに、トラック番号順に並べる。
また、システムコントローラ108は、トラックネームTNの無いトラックデータは、上記ソート対象のトラックデータに対して低い優先順位を付けて、トラック番号TNO順で並べる。
また、システムコントローラ108は、トラックネームTNの無いトラックデータと未対応の文字コードをトラックネームTNに用いたトラックデータとは区別せずに、トラック番号順に並べる。
システムコントローラ108は、グループネームGNのソートを、基本的に、上述したトラックネームTNと同様の手法で行う。
以下、システムコントローラ108において生成され、RAM111に記憶される上記各種テーブルについて説明する。
トラックネームランクテーブルTNRTは、図36に示すように、記録媒体DISKaに記録された楽曲データの総曲数と、ソートされた順序で並べられた複数のトラックネーム(トラック名)とを示し、これらがRAM111内のアドレスに順に記憶されている。
グループネームランクテーブルGNRTは、図36に示すように、記録媒体DISKaに記録された楽曲データに対して規定されたグループ名の総数と、グループ名順でソートされた順序で並べられた複数のグループのグループ番号GNOとを示し、これらがRAM111内のアドレスに順に記憶されている。
トラックネームランクテーブルTNRTは、図36に示すように、記録媒体DISKaに記録された楽曲データの総曲数と、ソートされた順序で並べられた複数のトラックネーム(トラック名)とを示し、これらがRAM111内のアドレスに順に記憶されている。
グループネームランクテーブルGNRTは、図36に示すように、記録媒体DISKaに記録された楽曲データに対して規定されたグループ名の総数と、グループ名順でソートされた順序で並べられた複数のグループのグループ番号GNOとを示し、これらがRAM111内のアドレスに順に記憶されている。
ネームバッファインデックステーブルNBITは、図37に示すように、「1」〜「255」のトラック番号TNOのトラックデータのトラックネームTNが格納されたネームバッファテーブルNBTの先頭のスロット番号を順に示している。
ネームバッファテーブルNBTは、図37に示すように、「1」〜「255」のスロット番号が付されたスロットに、トラックネームTNを格納している。
ミュージックシフトJISテーブルMSJTは、トラックネームランクテーブルTNRTにおいてソート対象とされたトラック番号、並びにグループネームランクテーブルGNRTにおいてソート対象とされたグループ番号の各々に対応するビットを備えている。
ミュージックシフトJISテーブルMSJTは、文字コートとしてMusic Shift JISが用いられたトラックネームTNおよびグループネームGNに対応付けられたトラック番号およびグループ番号に対応するビットに第1の論理値(例えば「1」)が設定され、それ以外のビットに第2の論理値(例えば「0」)が設定される。
ネームバッファテーブルNBTは、図37に示すように、「1」〜「255」のスロット番号が付されたスロットに、トラックネームTNを格納している。
ミュージックシフトJISテーブルMSJTは、トラックネームランクテーブルTNRTにおいてソート対象とされたトラック番号、並びにグループネームランクテーブルGNRTにおいてソート対象とされたグループ番号の各々に対応するビットを備えている。
ミュージックシフトJISテーブルMSJTは、文字コートとしてMusic Shift JISが用いられたトラックネームTNおよびグループネームGNに対応付けられたトラック番号およびグループ番号に対応するビットに第1の論理値(例えば「1」)が設定され、それ以外のビットに第2の論理値(例えば「0」)が設定される。
図39は、システムコントローラ108による図35に示す各種テーブルの生成処理を説明するためのフローチャートである。
ステップST201:
システムコントローラ108は、所定の条件を満たすと、動作周波数を、通常動作周波数から、その通常動作周波数より高いソート時動作周波数に切り換えて動作する。
これにより、システムコントローラ108は、ソート処理に要する時間を短縮できる。
ステップST202:
システムコントローラ108は、所定の初期化処理を行う。
ステップST201:
システムコントローラ108は、所定の条件を満たすと、動作周波数を、通常動作周波数から、その通常動作周波数より高いソート時動作周波数に切り換えて動作する。
これにより、システムコントローラ108は、ソート処理に要する時間を短縮できる。
ステップST202:
システムコントローラ108は、所定の初期化処理を行う。
ステップST203:
システムコントローラ108は、図36に示すトラックネームランクテーブルTNRTの初期化処理を行う。
また、システムコントローラ108は、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のトラックネームTNに関する項目の生成処理を行う。
ステップST204:
システムコントローラ108は、ステップST203で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
システムコントローラ108は、図36に示すトラックネームランクテーブルTNRTの初期化処理を行う。
また、システムコントローラ108は、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のトラックネームTNに関する項目の生成処理を行う。
ステップST204:
システムコントローラ108は、ステップST203で初期化したトラックネームランクテーブルTNRTを、トラックネーム順にソートして更新する。
ステップST205:
システムコントローラ108は、グループネームランクテーブルGNRTの初期化処理を行う。
また、システムコントローラ108は、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のグループネームGNに関する項目の生成処理を行う。
ステップST206:
システムコントローラ108は、ステップST205で初期化したグループネームランクテーブルGNRTを、グループネーム順にソートして更新する。
ステップST207:
システムコントローラ108は、動作周波数を、ソート時動作周波数から通常動作周波数に切り換えて動作する。
システムコントローラ108は、グループネームランクテーブルGNRTの初期化処理を行う。
また、システムコントローラ108は、ネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のグループネームGNに関する項目の生成処理を行う。
ステップST206:
システムコントローラ108は、ステップST205で初期化したグループネームランクテーブルGNRTを、グループネーム順にソートして更新する。
ステップST207:
システムコントローラ108は、動作周波数を、ソート時動作周波数から通常動作周波数に切り換えて動作する。
[ステップST203(トラックネームランクテーブルTNRTの初期化処理等)]
以下、図39に示すトラックネームランクテーブルTNRTの初期化処理、並びにネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のトラックネームTNに関する項目の生成処理を説明する。
図40および図41は、図39に示すステップST203の処理を説明するためのフローチャートである。
ステップST221:
システムコントローラ108は、予め規定した所定の変数nに初期値「1」を代入し、変数totalに初期値として記録媒体DISKaの総曲数(記録媒体DISKaに記憶されたトラックデータの数)を代入する。
ステップST222:
システムコントローラ108は、所定の変数topに初期値「1」を代入し、変数endに上記変数totalの値を代入する。
ステップST223:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTN内に、文字コートとしてMusic Shift JISが含まれているか否かを判断し、含まれていると判断するとステップST234に進み、そうでない場合にはステップST225に進む。
以下、図39に示すトラックネームランクテーブルTNRTの初期化処理、並びにネームバッファインデックステーブルNBIT、ネームバッファテーブルNBTおよびミュージックシフトJISテーブルMSJT内のトラックネームTNに関する項目の生成処理を説明する。
図40および図41は、図39に示すステップST203の処理を説明するためのフローチャートである。
ステップST221:
システムコントローラ108は、予め規定した所定の変数nに初期値「1」を代入し、変数totalに初期値として記録媒体DISKaの総曲数(記録媒体DISKaに記憶されたトラックデータの数)を代入する。
ステップST222:
システムコントローラ108は、所定の変数topに初期値「1」を代入し、変数endに上記変数totalの値を代入する。
ステップST223:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTN内に、文字コートとしてMusic Shift JISが含まれているか否かを判断し、含まれていると判断するとステップST234に進み、そうでない場合にはステップST225に進む。
ステップST224:
システムコントローラ108は、図38に示すミュージックシフトJISテーブルMSJT内のトラック番号TNOに対応するビットに第1の論理値を設定する。
ステップST225:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTN内に、文字コートとしてASCIIが含まれているか否かを判断し、含まれていると判断するとステップST226に進み、そうでない場合にはステップST228に進む。
ステップST226:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTNを、ネームバッファテーブルNBT内の空スロットに書き込む。
また、システムコントローラ108は、上記書き込んだ空スロットのトラック番号TNOを、ネームバッファインデックステーブルNBIT内のトラック番号TNOが「n」に対応した領域に書き込む。
システムコントローラ108は、図38に示すミュージックシフトJISテーブルMSJT内のトラック番号TNOに対応するビットに第1の論理値を設定する。
ステップST225:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTN内に、文字コートとしてASCIIが含まれているか否かを判断し、含まれていると判断するとステップST226に進み、そうでない場合にはステップST228に進む。
ステップST226:
システムコントローラ108は、トラック番号TNOが「n」のトラックデータのトラックネームTNを、ネームバッファテーブルNBT内の空スロットに書き込む。
また、システムコントローラ108は、上記書き込んだ空スロットのトラック番号TNOを、ネームバッファインデックステーブルNBIT内のトラック番号TNOが「n」に対応した領域に書き込む。
ステップST227:
システムコントローラ108は、トラックネームランクテーブルTNRTの配列データrank_table[top]に変数nの値を代入する。
また、システムコントローラ108は、変数topを1インクリメントする。
ステップST228:
システムコントローラ108は、トラックネームランクテーブルTNRTの配列データrank_table[end]に変数nの値を代入する。
また、システムコントローラ108は、変数endを1デクリメントする。
ステップST229:
システムコントローラ108は、変数nを1インクリメントする。
ステップST230:
システムコントローラ108は、変数nの値が変数totalの値以下であるか否かを判断し、以下であると判断した場合にはステップST223に戻り、そうでない場合には図41に示すステップST231に進む。
システムコントローラ108は、トラックネームランクテーブルTNRTの配列データrank_table[top]に変数nの値を代入する。
また、システムコントローラ108は、変数topを1インクリメントする。
ステップST228:
システムコントローラ108は、トラックネームランクテーブルTNRTの配列データrank_table[end]に変数nの値を代入する。
また、システムコントローラ108は、変数endを1デクリメントする。
ステップST229:
システムコントローラ108は、変数nを1インクリメントする。
ステップST230:
システムコントローラ108は、変数nの値が変数totalの値以下であるか否かを判断し、以下であると判断した場合にはステップST223に戻り、そうでない場合には図41に示すステップST231に進む。
ステップST231:
システムコントローラ108は、変数nに「(total−end)/2」を代入する。
システムコントローラ108は、変数topに、「end+1」を代入する。
システムコントローラ108は、変数endに、変数totalの値を代入する。
ステップST232:
システムコントローラ108は、トラックネームランクテーブルTNRTにおいて配列データrank_table[top]と配列データrank_table[end]とを入れ換える(スワップする)。
ステップST233:
システムコントローラ108は、変数nを1だけデクリメントする。
ステップST234:
システムコントローラ108は、変数nの値が「0」より大きいか否かを判断し、大きいと判断するとステップST232に戻り、そうでない場合には処理を終了する。
システムコントローラ108は、変数nに「(total−end)/2」を代入する。
システムコントローラ108は、変数topに、「end+1」を代入する。
システムコントローラ108は、変数endに、変数totalの値を代入する。
ステップST232:
システムコントローラ108は、トラックネームランクテーブルTNRTにおいて配列データrank_table[top]と配列データrank_table[end]とを入れ換える(スワップする)。
ステップST233:
システムコントローラ108は、変数nを1だけデクリメントする。
ステップST234:
システムコントローラ108は、変数nの値が「0」より大きいか否かを判断し、大きいと判断するとステップST232に戻り、そうでない場合には処理を終了する。
図40に示すステップST221〜ST230による処理PR31は、例えば、図42に示すように、トラック番号テーブルTNOTを基に、トラックネームTNが存在するトラックデータのトラック番号TNOをトラックネームランクテーブルTNRTの配列番号が小さい位置から順に割り当て、トラックネームTNが存在しないトラックデータのトラック番号TNOを配列番号が大きい位置から順に割り当てる処理である。
また、処理PR31は、図42に示すように、ミュージックシフトJISテーブルMSJT内の各ビットを設定する処理である。
また、処理PR31は、図43に示すように、ネームバッファテーブルNBTおよびネームバッファインデックステーブルNBITを設定する処理である。
ここで、処理PR31の終了後は、トラックネームTNが存在しないトラックデータは、トラック番号TNOが降順(大きいものから順)に並べられている。
図41に示すステップST231〜ST234による処理PR32は、例えば、図44に示すように、トラックネームランクテーブルTNRTの配列番号の大きい側に割り当てられたトラックネームTNが存在しないトラックデータを、トラック番号TNOが昇順(小さいものから順)になるように並べ替える。
また、処理PR31は、図42に示すように、ミュージックシフトJISテーブルMSJT内の各ビットを設定する処理である。
また、処理PR31は、図43に示すように、ネームバッファテーブルNBTおよびネームバッファインデックステーブルNBITを設定する処理である。
ここで、処理PR31の終了後は、トラックネームTNが存在しないトラックデータは、トラック番号TNOが降順(大きいものから順)に並べられている。
図41に示すステップST231〜ST234による処理PR32は、例えば、図44に示すように、トラックネームランクテーブルTNRTの配列番号の大きい側に割り当てられたトラックネームTNが存在しないトラックデータを、トラック番号TNOが昇順(小さいものから順)になるように並べ替える。
システムコントローラ108は、図39に示すステップST204のソート処理を、例えば、図24、図25および図26を用いて第1実施形態で説明した処理と同様の処理で行う。
この場合に、システムコントローラ108は、当該ソート処理におけるトラックネームTNの比較処理を、例えば、図45〜図47に示すように行う。
当該比較処理は、例えば、図24に示すステップST73、図26に示すステップST91と同様に行われる。
以下、トラック番号TNOが「i」のトラックデータとトラック番号TNOが「j」のトラックデータとでのトラックネームTNの比較処理を行う場合を例示する。
図45〜47は、当該処理を説明するためのフローチャートである。
ステップST251:
システムコントローラ108は、比較文字位置を示すカウンタ変数xに初期値「0」を設定する。
ステップST252:
システムコントローラ108は、トラック番号TNOが「i」のトラックデータに対応したトラックネームTN内に文字コートとしてMusic Shift JISが含まれているか否かを判断し、含まれていると判断するとステップST253に進み、そうでない場合にはステップST255に進む。
この場合に、システムコントローラ108は、当該ソート処理におけるトラックネームTNの比較処理を、例えば、図45〜図47に示すように行う。
当該比較処理は、例えば、図24に示すステップST73、図26に示すステップST91と同様に行われる。
以下、トラック番号TNOが「i」のトラックデータとトラック番号TNOが「j」のトラックデータとでのトラックネームTNの比較処理を行う場合を例示する。
図45〜47は、当該処理を説明するためのフローチャートである。
ステップST251:
システムコントローラ108は、比較文字位置を示すカウンタ変数xに初期値「0」を設定する。
ステップST252:
システムコントローラ108は、トラック番号TNOが「i」のトラックデータに対応したトラックネームTN内に文字コートとしてMusic Shift JISが含まれているか否かを判断し、含まれていると判断するとステップST253に進み、そうでない場合にはステップST255に進む。
ステップST253:
システムコントローラ108は、トラック番号TNOが「i」のトラックデータのMusic Shift JISのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST254:
システムコントローラ108は、ROM110あるいはRAM111に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANとしては、Music Shift JISに関する図28を用いて説明したものが用いられる。
システムコントローラ108は、トラック番号TNOが「i」のトラックデータのMusic Shift JISのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST254:
システムコントローラ108は、ROM110あるいはRAM111に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANとしては、Music Shift JISに関する図28を用いて説明したものが用いられる。
ステップST255:
システムコントローラ108は、トラック番号TNOが「i」のトラックデータのASCIIのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST256:
システムコントローラ108は、ROM110あるいはRAM111に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANとしては、ASCIIに関する図28を用いて説明したものが用いられる。
システムコントローラ108は、トラック番号TNOが「i」のトラックデータのASCIIのトラックネームTNの先頭からx文字目を、変数cc1に格納する。
ステップST256:
システムコントローラ108は、ROM110あるいはRAM111に記憶されている比較値変換テーブルTRANを基に、変数cc1に格納した文字を比較値に変換し、これを変数cc1に格納する。比較値変換テーブルTRANとしては、ASCIIに関する図28を用いて説明したものが用いられる。
ステップST257:
システムコントローラ108は、ミュージックシフトJISテーブルMSJTを基に、トラック番号TNOが「j」のトラックデータのASCIIのトラックネームTNの文字コードがMusic Shift JISであるか否かを判断し、Music Shift JISであると判断するとステップST258に進み、そうでない場合にはステップST260に進む。
ステップST258:
ステップST255:
システムコントローラ108は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
ステップST259:
システムコントローラ108は、ROM110あるいはRAM111に記憶されているMusic Shift JISの比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
システムコントローラ108は、ミュージックシフトJISテーブルMSJTを基に、トラック番号TNOが「j」のトラックデータのASCIIのトラックネームTNの文字コードがMusic Shift JISであるか否かを判断し、Music Shift JISであると判断するとステップST258に進み、そうでない場合にはステップST260に進む。
ステップST258:
ステップST255:
システムコントローラ108は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
ステップST259:
システムコントローラ108は、ROM110あるいはRAM111に記憶されているMusic Shift JISの比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
ステップST260:
システムコントローラ108は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
ステップST261:
システムコントローラ108は、ROM110あるいはRAM111に記憶されているASCIIの比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
システムコントローラ108は、トラック番号TNOが「j」のトラックデータのトラックネームTNの先頭からx文字目を、変数cc2に格納する。
ステップST261:
システムコントローラ108は、ROM110あるいはRAM111に記憶されているASCIIの比較値変換テーブルTRANを基に、変数cc2に格納した文字を比較値に変換し、これを変数cc2に格納する。
ステップST262:
システムコントローラ108は、変数cc1に格納された比較値と、変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が大きい場合に、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ108は、上記比較において変数cc2に格納した比較値の方が大きくないと判断するとステップST263に進む。
ステップST263:
システムコントローラ108は、変数cc1に格納された比較値と、変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が小さい場合に、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ108は、上記比較において変数cc2に格納した比較値の方が小さくないと判断するとステップST264に進む。
システムコントローラ108は、変数cc1に格納された比較値と、変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が大きい場合に、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ108は、上記比較において変数cc2に格納した比較値の方が大きくないと判断するとステップST263に進む。
ステップST263:
システムコントローラ108は、変数cc1に格納された比較値と、変数cc2に格納された比較値とを比較し、変数cc2に格納した比較値が小さい場合に、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ108は、上記比較において変数cc2に格納した比較値の方が小さくないと判断するとステップST264に進む。
ステップST264:
システムコントローラ108は、変数xを「1」だけインクリメントする。
ステップST265:
システムコントローラ108は、変数xが示す文字数が最大文字数以下であるか否かを判断し、最大文字数以下であると判断するとステップST252に戻り、そうでない場合にはステップST266に進む。
ステップST266:
システムコントローラ108は、変数iの値が変数jの値より小さいか否かを判断し、小さいと判断すると、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記判断で上記小さくないと判断すると、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
システムコントローラ108は、変数xを「1」だけインクリメントする。
ステップST265:
システムコントローラ108は、変数xが示す文字数が最大文字数以下であるか否かを判断し、最大文字数以下であると判断するとステップST252に戻り、そうでない場合にはステップST266に進む。
ステップST266:
システムコントローラ108は、変数iの値が変数jの値より小さいか否かを判断し、小さいと判断すると、トラック番号TNOが「i」のトラックデータのトラックネームTNを、トラック番号TNOが「j」のトラックデータのトラックネームTNに比べて昇側にソートする。
一方、システムコントローラ8は、上記判断で上記小さくないと判断すると、トラック番号TNOが「j」のトラックデータのトラックネームTNを、トラック番号TNOが「i」のトラックデータのトラックネームTNに比べて昇側にソートする。
また、図39に示すステップST206においても、ステップST204と同様の手法でソート処理が行われる。
記録再生装置101によっても第1実施形態の記録再生装置1と同様の効果が得られる。
本発明は上述した実施形態には限定されない。
上述した実施形態では、本発明の主データとしてオーディオデータを例示したが、静止画あるいは動画などのイメージデータや、プログラムデータであってもよい。
上述した実施形態では、本発明の主データとしてオーディオデータを例示したが、静止画あるいは動画などのイメージデータや、プログラムデータであってもよい。
本発明は、ソートを行うシステムに適用可能である。
1、101…記録再生装置、2、102…ストレージ部、3…キャッシュメモリ、4…インタフェース、5…入出力処理部、6…表示部、7…操作部、8、108…システムコントローラ、10、110…ROM、11、111…RAM、20…パーソナルコンピュータ
Claims (11)
- 第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理装置であって、
前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断し、前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成し、前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す処理回路
を有するデータ処理装置。 - 前記要素データは、コンテンツデータの識別データであり、
前記属性データは、前記コンテンツデータの名前を示す名前データであり、
前記処理回路は、前記識別データに対応付けられた前記名前データが示す名前が名前順であることを前記所定の基準として用いる
請求項1に記載のデータ処理装置。 - 前記第1のデータおよび前記属性データを記憶するメモリ
をさらに有し、
前記処理回路は、前記メモリに記憶された前記第1のデータ内の前記隣接した2つの要素データに対応する前記属性データを前記メモリから読み出して前記2つの要素データが前記所定の基準に従って配置されているか否かを判断し、前記所定の基準に従って配置されていないと判断した場合に、前記メモリに記憶された前記2つの要素データをスワップ処理して前記第2のデータを生成し、隣接する2つの組の前記要素データを前記メモリから読み出して前記所定の基準に従って再配置して当該2つの組を併合した新たな組として前記メモリに書き込む前記併合処理を行う
請求項1に記載のデータ処理装置。 - 前記第2のデータを記憶する第1の記憶領域と、前記第1の記憶領域に記憶された前記第2のデータの前記要素データを退避する第2の記憶領域とを有するメモリ
をさらに有し、
前記処理回路は、
前記メモリの前記第1の記憶領域に記憶された前記第2のデータ内の前記隣接する2つの前記組のうち、一方の組の前記要素データを前記メモリの前記第2の記憶領域に退避する退避処理と、前記2つの組の要素データを前記所定の基準に従って、前記第1の記憶領域のうち前記一方の組が記憶されていた記憶領域から順に書き込んで前記第1のデータ内の前記2つの組の要素データを再配置する再配置処理とを有する前記併合処理を行う
請求項1に記載のデータ処理装置。 - 前記処理回路は、前記属性データを構成する文字データを前記所定の基準に応じて規定された比較値に変換し、前記2つの組の要素データの間で前記比較値を比較して、前記再配置処理を行う
請求項1に記載のデータ処理装置。 - 前記文字データを表現する複数の文字コードを採用している場合に、
前記処理回路は、前記文字データを、当該文字データが採用している前記文字コードに応じた前記比較値に変換する
請求項5に記載のデータ処理装置。 - 前記文字コードがサポートしている文字データと制御文字データとを組み合わせて当該文字コードがサポートしていない文字データを表現し、前記属性データが前記サポートしていない文字データを表現している場合に、
前記処理回路は、前記属性データを前記サポートしていない文字データに予め変換し、当該変換した属性データと前記識別データとを対応付けて示す管理データを生成し、前記管理データを参照して前記比較値への変換を行う
請求項6に記載のデータ処理装置。 - 前記処理回路は、所定の条件を満たすと、動作周波数を第1の動作周波数から当該第1の動作周波数より高い第2の動作周波数に変更し、当該第2の動作周波数で動作して、前記スワップ処理および併合処理を行い、前記スワップ処理および併合処理を終了後に前記動作周波数を前記第2の動作周波数から前記第1の動作周波数に切り換える
請求項1に記載のデータ処理装置。 - 第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理方法であって、
前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する第1の工程と、
前記第1の工程において前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する第2の工程と、
前記第2の工程で生成した前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す第3の工程と
を有するデータ処理方法。 - 第1のデータ内に順に配置された複数の要素データを、前記要素データあるいは当該要素データに対応付けられた属性データが示す属性を所定の基準に従って再配置して第2のデータを生成するデータ処理装置が実行するプログラムであって、
前記第1のデータ内の隣接した2つの要素データが前記所定の基準に従って配置されているか否かを判断する第1の手順と、
前記第1の手順において前記所定の基準に従って配置されていないと判断した場合に前記2つの要素データをスワップ処理した第2のデータを生成する第2の手順と、
前記第2の手順で生成した前記第2のデータ内の前記隣接する2つの要素データを組とし、隣接する2つの組の前記要素データを前記所定の基準に従って再配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返す第3の手順と
を前記データ処理装置に実行させるプログラム。 - コンテンツデータの識別データと当該コンテンツデータの名前を示す名前データとを対応付けて記憶し、複数の前記識別データを順に配置して構成される第1のデータを記憶するメモリと、
前記コンテンツデータを記録する記録媒体と、
表示手段と、
前記メモリに記憶された前記第1のデータ内の隣接した2つの識別データに対応付けられた前記名前データを読み出して比較し、当該2つの識別データが所定の基準に従って配置されていないと判断した場合に前記メモリに記憶された前記2つの識別データをスワップ処理した第2のデータに前記第1のデータを書き換え、前記第2のデータ内の前記隣接する2つの要素データを組とし、前記メモリに隣接する2つの組の前記要素データを前記所定の基準に従って配置して当該2つの組を併合した新たな組を生成する併合処理を行い、前記併合処理を前記組が1つになるまで繰り返し、指示に応じてメモリに記憶された前記第1のデータ内に配置される前記識別データの順に従って当該識別データに対応する前記名前データを前記表示手段に表示する処理回路と、
前記表示手段の表示を基に指定された前記名前データに対応した前記コンテンツデータを前記記録媒体から読み出して再生する再生手段と
を有する再生装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004332010A JP2006146331A (ja) | 2004-11-16 | 2004-11-16 | データ処理装置、データ処理方法、プログラムおよび再生装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004332010A JP2006146331A (ja) | 2004-11-16 | 2004-11-16 | データ処理装置、データ処理方法、プログラムおよび再生装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006146331A true JP2006146331A (ja) | 2006-06-08 |
Family
ID=36625968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004332010A Pending JP2006146331A (ja) | 2004-11-16 | 2004-11-16 | データ処理装置、データ処理方法、プログラムおよび再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006146331A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105374379A (zh) * | 2014-08-19 | 2016-03-02 | 阿尔派株式会社 | 音频装置 |
-
2004
- 2004-11-16 JP JP2004332010A patent/JP2006146331A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105374379A (zh) * | 2014-08-19 | 2016-03-02 | 阿尔派株式会社 | 音频装置 |
JP2016042400A (ja) * | 2014-08-19 | 2016-03-31 | アルパイン株式会社 | オーディオ装置及びコンピュータプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960010328B1 (ko) | 데이타 기록 및 재생 장치 | |
US6748161B2 (en) | Storage medium storing catalog information and corresponding audio data | |
US20080124047A1 (en) | Apparatus for recording and/or playing back catalog information | |
JP2006146331A (ja) | データ処理装置、データ処理方法、プログラムおよび再生装置 | |
JP2002281450A (ja) | 情報記録円盤の再生装置 | |
US6907189B2 (en) | Apparatus for recording and/or playing back catalog information | |
JP2006085846A (ja) | データ処理装置、データ処理方法、プログラムおよび再生装置 | |
TW472231B (en) | Storage medium for the accompaniment play of songs and the selection method of songs | |
JP3870641B2 (ja) | チェンジャー装置 | |
JP2001176205A (ja) | 記録媒体およびそれを取り扱う再生装置 | |
KR970050918A (ko) | 비디오디스크의 영상가요데이터 소팅제어방법 | |
JP2001176174A (ja) | 記録装置 | |
JP2001357612A (ja) | 記録再生装置 | |
JP2001176176A (ja) | チェンジャー装置およびその記録媒体収納方法 | |
JPH0756785A (ja) | ディジタル信号記録再生用メモリ | |
JP2001176178A (ja) | チェンジャー装置 | |
JP2001176177A (ja) | 再生装置およびチェンジャー装置 | |
JPH11316593A (ja) | カラオケの歌詞表示制御装置 | |
JP2001143378A (ja) | ディスク記録装置 | |
JPH01272262A (ja) | 画像フアイルシステム | |
JP2002133829A (ja) | 文字情報付加装置及び方法 | |
JPH02140800A (ja) | 音声録音再生装置 |