(57)【要約】【課題】ＭＳやＰＤとの間のチェックインとチェックアウトを一括して指示する。【解決手段】ステップＳ４６１で、ＭＳのチェックイン可能なコンテンツデータが識別され、ステップＳ４６２で、１コンテンツデータずつ、チェックイン処理が行われる。ステップＳ４６３で、ＭＳのチェックイン可能なコンテンツデータを全てチェックインしたか判定される。ステップＳ４６４で、チェックアウトするアルバムが決定される。ステップＳ４６５で、１トラック（すなわち、コンテンツデータ）が選択され、ステップＳ４６６で、チェックアウト可能であるか判定され、ステップＳ４６７で、ＭＳの容量が確認され、ステップＳ４６８で、コンテンツデータがチェックアウトされる。ステップＳ４６９で、チェックアウトするアルバムに含まれる全てのトラックを選択したか判定される。【選択図】図９４
2006185589.tif 000002
【特許請求の範囲】
【請求項１】
１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と、前記第１の記録媒体とは異なる第２の記録媒体との間でオーディオデータの転送を行うデータ転送システムにおいて、
前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体と、
前記第２の集合体によって指示されたオーディオデータを前記第２の記録媒体へ転送する場合に、前記第２の集合体に指示されたオーディオデータが含まれる第１の集合体に含まれるすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送する制御部と
を備えるデータ転送システム。
【請求項２】
前記第２の記録媒体は、着脱可能な記録媒体である
請求項１に記載のデータ転送システム。
【請求項３】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項１に記載のデータ転送システム。
【請求項４】
前記識別情報と前記第１の集合体とが関連づけられている
請求項３に記載のデータ転送システム。
【請求項５】
１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と第２の記録媒体との間でオーディオデータの転送を行うデータ転送方法において、
前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体に指定されたオーディオデータを前記第１の記録媒体から前記第２の記録媒体へ転送する指示を受信し、
前記第２の集合体によって指示されたオーディオデータが含まれる第１の集合体を検索し、
前記第２の集合体によって指示されたオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第１の集合体に含まれる他のすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送する
データ転送方法。
【請求項６】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項５に記載のデータ転送方法。
【請求項７】
前記識別情報と前記第１の集合体とが関連づけられている
請求項６に記載のデータ転送方法。
【請求項８】
１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と第２の記録媒体との間でオーディオデータの転送を行うデータ転送プログラムにおいて、
前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体に指定されたオーディオデータを前記第１の記録媒体から前記第２の記録媒体へ転送する指示を受信し、
前記第２の集合体によって指示されたオーディオデータが含まれる第１の集合体を検索し、
前記第２の集合体によって指示されたオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第１の集合体に含まれる他のすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送する
データ転送プログラム。
【請求項９】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項８に記載のデータ転送プログラム。
【請求項１０】
前記識別情報と前記第１の集合体とが関連づけられている
請求項８に記載のデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送システム、データ転送方法、およびデータ転送プログラムに関し、例えば、音楽ＣＤに記録されているPCM(Pulse Code Modulation)データを符号化してハードディスクに蓄積し、蓄積した符号化データを、半導体メモリやポータブルデバイスに供給する場合に用いて好適なデータ転送システム、データ転送方法、およびデータ転送プログラムに関する。
【背景技術】
【０００２】
従来、ＣＤプレーヤに接続したネットワークウォークマン（商標）などのポータブルデバイス（以下、ＰＤと記述する）により、音楽ＣＤを録音することが可能である。すなわち、音楽ＣＤのPCMデータを、ATRAC(Adaptive Transform Acoustic Coding)３方式などに従ってエンコードし、得られる符号化データを、メモリースティック（商標）（以下、ＭＳと記述する）などの半導体メモリや、ＰＤが内蔵するメモリに記録することが可能である。
【０００３】
しかしながら、ＣＤプレーヤとＰＤを接続して、音楽ＣＤを録音する方法では、複数の音楽ＣＤの中から気に入った曲だけを選択して記録するような編集の作業が面倒である。
【０００４】
なお、パーソナルコンピュータを用いれば、音楽ＣＤのPCMデータを圧縮符号化してハードディスクドライブに蓄積することができるとともに、蓄積した符号化データのコピーを、パーソナルコンピュータに接続したＭＳやＰＤなどに一時的に作成することができる。この処理をチェックアウトと称する。また、チェックアウトにより、ＭＳやＰＤなどに作成された符号化データのコピーを消去する処理をチェックインと称する。チェックアウトおよびチェックインの詳細については後述する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ハードディスクドライブに蓄積した符号化データを、ＭＳやＰＤなどにチェックアウトする際、ＭＳやＰＤの記憶容量が既に一杯である場合、ユーザは、ＭＳやＰＤに記録されている符号化データのコピーをチェックインさせる操作をした後、希望する曲の符号化データをチェックアウトさせる操作を行う必要があるので、操作が面倒である課題があった。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、ＭＳやＰＤとの間のチェックインとチェックアウトを一括して指示できるようにして、音楽コンテンツの転送作業を簡易化し、且つアルバム、プレイリストなどの音楽コンテンツのデータ構造の概念を壊すことなく音楽コンテンツを転送できるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面は、１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と、前記第１の記録媒体とは異なる第２の記録媒体との間でオーディオデータの転送を行うデータ転送システムにおいて、前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体と、前記第２の集合体によって指示されたオーディオデータを前記第２の記録媒体へ転送する場合に、前記第２の集合体に指示されたオーディオデータが含まれる第１の集合体に含まれるすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送する制御部とを備えるデータ転送システムである。
【０００８】
前記第２の記録媒体は、着脱可能な記録媒体であるようにすることができる。
【０００９】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
【００１０】
前記識別情報と前記第１の集合体とが関連づけられているようにすることができる。
【００１１】
また、本発明の一側面は、１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と第２の記録媒体との間でオーディオデータの転送を行うデータ転送方法において、前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体に指定されたオーディオデータを前記第１の記録媒体から前記第２の記録媒体へ転送する指示を受信し、前記第２の集合体によって指示されたオーディオデータが含まれる第１の集合体を検索し、前記第２の集合体によって指示されたオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第１の集合体に含まれる他のすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するデータ転送方法である。
【００１２】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
【００１３】
前記識別情報と前記第１の集合体とが関連づけられているようにすることができる。
【００１４】
さらに本発明の一側面は、１以上のオーディオデータの実体から形成される第１の集合体が複数記録された第１の記録媒体と第２の記録媒体との間でオーディオデータの転送を行うデータ転送プログラムにおいて、前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体に指定されたオーディオデータを前記第１の記録媒体から前記第２の記録媒体へ転送する指示を受信し、前記第２の集合体によって指示されたオーディオデータが含まれる第１の集合体を検索し、前記第２の集合体によって指示されたオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第１の集合体に含まれる他のすべてのオーディオデータの実体を前記第１の記録媒体から前記第２の記録媒体へ転送するデータ転送プログラムである。
【００１５】
前記第２の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
【００１６】
前記識別情報と前記第１の集合体とが関連づけられているようにすることができる。
【００１７】
本発明の一側面においては、前記第１の記録媒体に記録された、１以上の前記第１の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第１の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第２の集合体に指定されたオーディオデータを前記第１の記録媒体から前記第２の記録媒体へ転送する指示が受信され、前記第２の集合体によって指示されたオーディオデータが含まれる第１の集合体が検索され、前記第２の集合体によって指示されたオーディオデータの実体が前記第１の記録媒体から前記第２の記録媒体へ転送されるとともに、前記転送されるオーディオデータが含まれる第１の集合体に含まれる他のすべてのオーディオデータの実体が前記第１の記録媒体から前記第２の記録媒体へ転送される。
【発明の効果】
【００１８】
本発明の一側面によれば、ＭＳやＰＤとの間のチェックインとチェックアウトを一括して指示することができ、音楽コンテンツの転送作業を簡易化し、且つアルバム、プレイリストなどの音楽コンテンツのデータ構造の概念を壊すことなく音楽コンテンツを転送することが可能となる。
【発明を実施するための最良の形態】
【００１９】
本発明の一実施の形態であるオーディオサーバの概要について、図１を参照して説明する。このオーディオサーバ１は、音楽ＣＤ３に記録されているPCM(Pulse Code Modulation)データを読み出し、ATRAC(Adaptive Transform Acoustic Coding)３方式によってエンコードし、得られる符号化データをハードディスクドライブ５８（図６）に記録し、記録した符号化データを、上層側からフォルダリスト、フォルダ、アルバム、およびトラックなどの階層構造をなすオブジェクトに対応付けて管理する。
【００２０】
フォルダリストには、１段下の階層に位置する複数のフォルダを含めることができる。フォルダには、１段下の階層に位置する複数のアルバムを含めることができる。アルバムには、１段下の階層に位置する複数のトラックを含めることができる。階層構造の最下層に位置するトラックは、１曲分の符号化データと１対１に対応する。
【００２１】
以下、符号化データをコンテンツデータとも記述する。フォルダリスト、フォルダ、アルバム、およびトラックをオブジェクトとも記述する。ユーザは、オブジェクトを指定して各種のコマンドを指令する。なお、オブジェクトの階層構造の詳細については、図３８を参照して後述する。
【００２２】
また、オーディオサーバ１は、音楽ＣＤ３を再生したり、ハードディスクドライブ（以下、HDDと記述する）５８に記録されている符号化データをデコードしたりして、得られる音声信号をスピーカ２から出力する。
【００２３】
さらに、オーディオサーバ１は、ＭＳスロット４５（図５）に挿入されたマジックゲート（商標）に対応するメモリースティック（商標）（以下、ＭＳと記述する）４や、コネクタ４３（図５）に接続されるネットワークウォークマン（商標）などのポータブルデバイス（以下、ＰＤと記述する）５に対して、HDD５８に記録されている符号化データを、チェックアウト処理またはムーブアウト処理によって記録するとともに、ＭＳ４やＰＤ５に記録されている符号化データを、チェックイン処理、ムーブイン処理、またはインポート処理によってHDD５８に記録する。
【００２４】
ここで、マジックゲートとは、マジックゲートに対応するＭＳ４に記録するデータの暗号化と、ＭＳ４を挿入して使用するオーディオサーバ１の相互認証との２つの技術によりデータの著作権を保護するための技術であり、ディジタルオーディオデータの不正なコピー、再生、改ざんを防止することが可能である。マジックゲートは、SDMI(Secure Digital Music Initiative)規格に準拠している。
【００２５】
なお、オーディオサーバ１と、ＭＳ４またはＰＤ５との間のチェックアウト処理、チェックイン処理、ムーブアウト処理、ムーブイン処理、およびインポート処理については後述する。
【００２６】
符号化データが記録されたＭＳ４は、オーディオサーバ１から取り出され、例えば、パーソナルコンピュータ６に装着されて、記録されている符号化データが読み出されてデコードされる。
【００２７】
符号化データが記録されたＰＤ５は、符号化データをデコードし、得られる音声信号をヘッドホンから出力する。
【００２８】
リモートコントローラ７は、ユーザからの操作を受け付けて、対応する制御信号をオーディオサーバ１に送信する。
【００２９】
次に、オーディオサーバ１の外観について、図２乃至図５を参照して説明する。図２は、オーディオサーバ１の正面上方からの外観図である。図３は、オーディオサーバ１の上面図である。図４は、オーディオサーバ１の背面図である。図５は、正面図である。
【００３０】
オーディオサーバ１の上面には、ＣＤを装着するＣＤトレイ（不図示）の蓋４０が設けられており、蓋４０には、図３に示すように、パワーボタン１１などのボタン類の他、各種の情報を表示するディスプレイ１５が配置されている。パワー(POWER)ボタン１１は、オーディオサーバ１の電源をオン・オフさせるときに操作される。ファンクション(FUNCTION)ボタン１２は、音源として、音楽ＣＤ３、HDD５８、AUXイン端子３１、ＭＳ４、およびＰＤ５のうちの１つを選択するときに操作される。
【００３１】
プレイモード(PLAY MODE)ボタン１３は、再生モードを、再生エリアに含まれる全てのトラックを順次１回ずつ再生するノーマル再生、再生エリアに含まれる全てのトラックを順次再生することを繰り返す全曲リピート、１トラックだけを繰り返し再生する１曲リピート、再生エリアに含まれる全てのトラックのなかからランダムに選択して再生することを繰り返すランダムリピート、または、HDD全体に含まれる全てのトラックのなかからランダムに選択する様子のアニメーションを表示するとともに選択したトラックを再生することを繰り返すスロットマシン再生に切り替えるときに操作される。なお、再生エリアについては、図７１を参照して後述する。
【００３２】
ディスプレイ(DISPLAY)ボタン１４は、ディスプレイ１５の表示内容を切り替えるときに操作される。LCD(Liquid Crystal Display)などよりなるディスプレイ１５は、動作状況やオーディオデータに関わる情報を表示する。
【００３３】
音量(VOLUME)ボタン１６は、出力する音量を増減させるときに操作される。カーソルボタン１７は、ディスプレイ１５に表示されるカーソルを移動させるときに操作される。セレクト(SELECT)ボタン１８は、ディスプレイ１５のカーソルで示されているオブジェクトなどを選択するときや、検索時の昇順、降順を切り替えるときに操作される。イレーズ(ELASE)ボタン１９は、トラックなどのオブジェクトを消去するときに操作される。エンタ(ENTER)ボタン２０は、表示されているメニューや、選択されているトラックなどのオブジェクトを決定するときに操作される。メニュー／キャンセル(MENU/CANCEL)ボタン２１は、階層的に設けられている各種の操作メニューを表示させるとき、またはキャンセルするときに操作される。エクスチェンジ(EXCHANGE)ボタン２２は、ＭＳ４、またはＰＤ５に対して、自動的にチェックイン処理およびチェックアウト処理を施すときに操作される。
【００３４】
レコード(RECORD)ボタン２３は、音楽ＣＤ３のオーディオデータを再生しながらHDD５８に録音するときに操作される。ハイスピードレコード(HI SPEED RECORD)ボタン２４は、音楽ＣＤ３のオーディオデータをHDD５８に高速録音するときに操作される。なお、この際にも録音されるオーディオデータの音声がスピーカ２などから出力される。停止ボタン２５は、実行中の再生や録音を中止するときに操作される。再生／一時停止ボタン２６は、再生の開始、再生ポーズ、再生ポーズの解除を指示するときに操作される。頭出しボタン２７は、現在のトラックまたは前のトラックの頭出し、あるいは、巻き戻し再生を指示するときに操作される。頭出しボタン２８は、次のトラックの頭出し、または早送り再生を指示するときに操作される。
【００３５】
なお、図示は省略するが、リモートコントローラ７には、蓋４０に配置されているパワーボタン１１などのボタン類と同等の機能を有するボタンが配置されている。
【００３６】
オーディオサーバ１の背面には、図４に示すように、AUXイン端子３１、ラインアウト端子３２、サブウーファ端子３３、スピーカ（L,R）端子３４、リセットボタン３５、およびＤＣイン端子３６が配置されている。
【００３７】
AUXイン端子３１は、オーディオ出力機器（不図示）を接続することができ、接続したオーディオ出力機器からのディジタルオーディオデータ、またはアナログの音声信号を入力することができる。ラインアウト端子３２は、増幅機器（不図示）などを接続することができ、接続した増幅機器にアナログ音声信号を出力することができる。サブウーファ端子３３は、サブウーファ（不図示）を接続することができ、サブウーファに再生した音声信号の低周波成分を出力することができる。スピーカ（L,R）端子３４は、スピーカ２を接続し、接続したスピーカ２に再生した音声信号を出力することができる。リセットボタン３５は、オーディオサーバ１をリセットするときに操作される。ＤＣイン端子３６には、ＡＣパワーアダプタ（不図示）からのＤＣ電力が供給される。
【００３８】
オーディオサーバ１の正面には、図５に示すように、オープンレバー４１、受光部４２、コネクタ４３、アクセスランプ４４、ＭＳスロット４５、取り出しレバー４６、およびヘッドホン端子４７が配置されている。オープンレバー４１は、蓋４０を開けるときにスライドされる。受光部４２は、リモートコントローラ７から送信される制御信号を受信する。コネクタ４３には、USB(Universal Serial Bus)端子が設けられており、USBケーブルを介して、ＰＤ５、外付けHDD、キーボードなどを接続することができる。
【００３９】
なお、コネクタ４３に、IEEE１３９４端子を設けるようにし、IEEE１３９４ケーブルを介してＰＤ５などを接続するようにしてもよい。または、いわゆるBluetooth（商標）、あるいは、IEEE８０２．１１ｂ（いわゆる無線ＬＡＮ）用の端子を設けて、無線通信によってＰＤ５などを接続するようにしてもよい。
【００４０】
アクセスランプ４４は、ＭＳスロット４５に挿入されているＭＳ４、またはコネクタ４３に接続されているＰＤ５などに対してデータの読み書きが実行されている時に点滅する。ＭＳスロット４５には、ＭＳ４が挿入される。取り出しレバー４６は、ＭＳスロット４５に挿入されているＭＳ４を取り出すときに操作される。ヘッドホン端子４７は、ヘッドホンを接続することができ、接続したヘッドホンに再生した音声信号を出力することができる。
【００４１】
次に、オーディオサーバ１のハードウェア的な構成例について、図６を参照して説明する。オーディオサーバ１は、オーディオサーバ１の全体を制御するメインCPU(Central Processing Unit)５１を内蔵している。メインCPU５１には、バス６６を介して、フラッシュROM５２、SDRAM５３、USBホストコントローラ５４、DMAコントローラ５５、信号処理部６０、イーサネット（登録商標）コントローラ／コネクタ６７、およびPCMCIAコントローラ６８が接続されている。
【００４２】
フラッシュROM５２には、電源がオンとされると直ちにメインCPU５１によって起動が完了されるRTOS(Real Time Operating System)７１（図７）、各種の機能を実現するためにRTOS７１上で実行されるファームウェア（Firmware、図７を参照して後述する）の他、機器ＩＤ、暗号キーなどが記憶されている。SDRAM(Synchronous Dynamic Random Access Memory)５３は、メインCPU５１が各種の処理を実行する際、所定のデータやプログラムを一時的に記憶する。USBホストコントローラ５４は、コネクタ４３を介して接続されるＰＤ５などとのデータ通信を制御する。
【００４３】
DMA(Direct Memory Access)コントローラ５５は、バッファ５６、CD-ROMドライブ５７、HDD５８、およびエンコーダ／デコーダ５９の間のデータ転送を制御する。SDRAMなどよりなるバッファ５６は、DMAコントローラ５５が転送を制御するデータを一時的にバッファリングする。CD-ROMドライブ５７は、CAV８倍速で音楽ＣＤ３に記録されているオーディオデータを読み出す。HDD５８は、エンコーダ／デコーダ５９が生成した符号化データなどを記憶する。
【００４４】
エンコーダ／デコーダ５９は、CD-ROMドライブ５７が読み出したPCMデータや、AUXイン端子３１から入力されたオーディオデータを、１３２Kbpsモード、１０５Kbpsモード、または６６KbpsモードのATRAC３方式を用い、最大８倍速、平均５倍速でエンコードして符号化データを生成する。また、エンコーダ／デコーダ５９は、HDD５８が記憶する符号化データをデコードする。さらに、エンコーダ／デコーダ５９は、DES(Data Encryption Standard)エンジンを有しており、符号化データを、オーディオサーバ１を構成する所定の部品の機器ＩＤと時刻と似基づいて生成する暗号キーを用いて暗号化する。
【００４５】
例えば、HDD５８が９ギガバイトの容量を有し、エンコーダ／デコーダ５９が１０５KbpsモードのATRAC３方式でエンコードする場合、HDD５８には、約１００枚分の音楽ＣＤ３（６０分／枚）を録音することができる。
【００４６】
信号処理部６０は、マジックゲートメモリースティックインタフェース（以下、MGMS I/Fと記述する）６０−１、ウォータマークスクリーン（以下、ＷＭスクリーンと記述する）６０−２、オーディオＩ／Ｆ６０−３、およびサンプリングレートコンバータ（以下、SRCと記述する）６０−４からなる。
【００４７】
MGMS I/F６０−１は、ＭＳコネクタ６１を介し、ＭＳスロット４５に挿入されるＭＳ４に対して相互認証を行い、その結果に基づいてデータの暗号化、および暗号化されたデータの復号を実行する。ＷＭスクリーン６０−２は、信号処理部６０を通過するオーディオデータに埋め込まれているSDMI規格のウォータマーク（電子すかし、コピーの可否などを示す情報など）を検出する。
【００４８】
オーディオＩ／Ｆ６０−３は、AUXイン端子３１を介してディジタルオーディオデータを取得し、SRC６０−４に供給する。また、オーディオインタフェース６０−３は、バッファ５６などから転送されたディジタルオーディオデータを、内蔵するバッファ２５１（図６２）に適宜バッファリングした後、ＡＤ／ＤＡ６２に出力する。
【００４９】
SRC６０−４は、オーディオＩ／Ｆ６０−３からのディジタルオーディオデータのサンプリングレートを、４４．１KHzに変換してエンコーダ／デコーダ５９に出力する。
【００５０】
なお、図示は省略するが、さらに、信号処理部６０は、１倍速で動作するATRAC３方式のエンコーダ／デコーダを内蔵している。
【００５１】
ＭＳコネクタ６１は、挿入されるＭＳ４とMGMS I/F６０−１とのデータ通信を中継する。ＡＤ／ＤＡ６２は、信号処理部６０のオーディオＩ／Ｆ６０−３から入力されるディジタルオーディオデータをアナログの音声信号に変換して、ラインアウト端子３２、スピーカ端子３４、またはヘッドホン端子４７に出力する。また、ＡＤ／ＤＡ６２は、AUXイン端子３１から入力されるアナログの音声信号をディジタル化してエンコーダ／デコーダ５９に出力する。
【００５２】
イーサネット（登録商標）コントローラ／コネクタ６７は、イーサネット（登録商標）を介する他の電子機器とのデータ通信を制御する。PCMCIA(Personal Computer Memory Card International Association)コントローラ６８は、PCMCIA規格のＩＣカードインタフェースを装備している.
【００５３】
メインCPU５１には、ディスプレイドライバ６３、およびサブCPU６４が接続されている。ディスプレイドライバ６３は、ディスプレイ１５の表示を制御する。サブCPU６４は、特に、電源がオフであるときにおいて、電源部６５の制御、本体のリセット制御、内蔵時計のカウント、パワーボタン１１などに対する操作の検知、受光部４２の制御、ＡＤ／ＤＡ６２の制御などを実行する。電源部６５は、ＤＣイン端子３６から供給されるＤＣ電圧を所定の電圧に変換し、オーディオサーバ１の全体に供給する。
【００５４】
次に、以下に挙げるオーディオサーバ１の機能を実際に行うためにメインCPU５１がフラッシュROM５２から読み出して実行するファームウェアについて、図７を参照して説明する。なお、オーディオサーバ１の機能は、ＣＤリッピング、ＣＤレコーディング、ＨＤレコーディング（ディジタル入力）、ＨＤレコーディング（アナログ入力）、ＨＤプレイ、ＣＤプレイ、ＭＳプレイ、チェックアウト／チェックイン、インポート、ムーブアウト／ムーブインなどであるが、その詳細とファームウェアとの対応については、図４７乃至図５６を参照して後述する。
【００５５】
ファームウェアは、４つのレイヤ、すなわち、アプリケーションレイヤ(APP)７２、アッパーミドルウェアレイヤ(UMW)７３、ロワーミドルウェアレイヤ(LMW)７４、およびデバイスドライバレイヤ(DD)７５をなしている。
【００５６】
アプリケーションレイヤ７２には、メインアプリケーション（以下、メインAPPと記述する）７６、ハードディスクアプリケーション（以下、HD APPと記述する）７７、ＣＤアプリケーション（以下、CD APPと記述する）７８、メモリースティックアプリケーション（以下、MS APPと記述する）７９、ポータブルデバイスアプリケーション（以下、PD APPと記述する）８０、および仮名漢字変換アプリケーション（以下、FEP(Front End Processor)と記述する）８１の各モジュールが含まれる。
【００５７】
アプリケーションレイヤ７２の各モジュールは、オーディオサーバ１が実行可能な機能に関わるユーザの操作に対応して、アッパーミドルウェアレイヤ７３の対応するモジュールに処理を要求し、処理の状況の表示を制御することによってユーザインタフェースを提供する。
【００５８】
メインAPP７６は、アプリケーションレイヤ７２の各モジュールを統制する。例えば、起動時において、起動画面を作成し、各モジュールを起動する。インプットミドルウェア９７から通知されるユーザの操作を受け付けて、対応するモジュールに通知する。各モジュールからの表示データをディスプレイデバイスドライバ１０５に供給する。各モジュールの切替を実行する。ユーザからの音量変更の操作に対応して、オーディオＩＯミドルウェア(AIO)９４に通知する。ユーザからのセットアップ操作に対応して、各モジュールに設定値を通知する。各モジュールで共通の設定情報（プレイモードなど）を保持する。パワーオフの操作に対応して各モジュールを終了させ、システムコントロールミドルウェア(SYSTEM)９８にパワーオフを要求する。
【００５９】
HD APP７７は、HDD５８を駆動させる操作を受け付けて、ハードディスクミドルウェア８２に通知し、ハードディスクミドルウェア８２の動作状態を取得して表示データを生成する。
【００６０】
CD APP７８は、CD-ROMドライブ５７を駆動させる操作を受け付けて、ＣＤミドルウェア８８に通知し、ＣＤミドルウェア８８の動作状態を取得して表示データを生成する。
【００６１】
MS APP７９は、ＭＳスロット４５に挿入されたＭＳ４に関わる操作を受け付けて、ＭＳミドルウェア８９に通知し、ＭＳミドルウェア８９の動作状態を取得して表示データを生成する。
【００６２】
PD APP８０は、コネクタ４３に接続されたＰＤ５に関わる操作を受け付けて、ＰＤミドルウェア９０に通知し、ＰＤミドルウェア９０の動作状態を取得して表示データを生成する。
【００６３】
FEP８１は、録音する音楽ＣＤ３のタイトルなどを入力する際の仮名漢字変換を実行する。
【００６４】
アッパーミドルウェアレイヤ７３には、オーディオサーバ１の各機能をモデル化して実装した以下のモジュールから構成される。すなわち、ハードディスクミドルウェア（以下、HD MWと記述する）８２、ＣＤミドルウェア（以下、CD MWと記述する）８８、ＭＳミドルウェア（以下、MS MWと記述する）８９、およびＰＤミドルウェア（以下、PD MWと記述する）９０の各モジュールが含まれる。
【００６５】
HD MW８２は、HDD５８に記憶されている符号化データを管理するHDCC８３、CD MW８８と連携して音楽ＣＤ３のオーディオデータを圧縮し、暗号化してHDD５８に記録するCD RIPPING８４、オーディオＩＯミドルウェア９４と連携してHDD５８に記録されている符号化データを復号し、伸張するHD PLAY８５、オーディオＩＯミドルウェア９４と連携してAUXイン端子３１から入力されるオーディオデータを圧縮し、暗号化してHDD５８に記録するHD REC８６、MS MW８９またはPD MW９０と連携して、ＭＳ４またはＰＤ５とのチェックイン、チェックアウトを制御するC IN/C OUT８７から構成される。
【００６６】
CD MW８８は、ＣＤデバイスドライバ１０２にCD-ROMドライブ５７を制御させることによってＣＤプレーヤとしての機能を実現する。MD MW８９は、オーディオＩＯミドルウェア９４、およびＭＳファイルシステムミドルウェア９５と連携してＭＳプレーヤとしての機能を実現する。PD MW９０は、USBホストミドルウェア９６およびUSBホストデバイスドライバ１０４と連携することによってＰＤ５を制御する。
【００６７】
ロワーミドルウェアレイヤ７４には、アッパーミドルレイヤ７３の各モジュールが共用できる機能をモデル化して実装した以下のモジュール、すなわち、ハードディスクオブジェクトデータベースミドルウェア（以下、HD DBと記述する）９１、ハードディスクファイルシステムミドルウェア（以下、HD FSと記述する）９２、ＭＧＲミドルウェア(MGR)９３、オーディオＩＯミドルウェア(AIO)９４、メモリースティックファイルシステムミドルウェア(MS FS)９５、USBホストミドルウェア(USB)９６、インプットハンドルミドルウェア(INPUT)９７、およびシステムコントロールミドルウェア(SYSTEM)９８が含まれる。ロワーミドルウェアレイヤ７４に含まれる各モジュールは、アッパーミドルレイヤ７３を構成する各モジュールから呼び出される。
【００６８】
デバイスドライバレイヤ(DD)７５には、各ハードウェアデバイスをモデル化した以下のモジュール、すなわち、ハードディスクデバイスドライバ９９、デコーダ／エンコーダデバイスドライバ１００、DMAデバイスドライバ１０１、ＣＤデバイスドライバ１０２、信号処理部デバイスドライバ１０３、USBホストデバイスドライバ１０４、ディスプレイデバイスドライバ１０５、オーディオデバイスドライバ１０６、キーデバイスドライバ１０７、パワーデバイスドライバ１０８、およびクロックデバイスドライバ１０９が含まれる。なお、図７において、破線で囲まれたオーディオデバイスドライバ１０６乃至クロックデバイスドライバ１０９は、サブCPU６４によって実行される。各モジュールは、主に、ライブラリで構成されており、アッパーミドルウェアレイヤ７３またはロワーミドルウェア７４に含まれるモジュールから、そのAPI(Application Program Interface)が呼び出される。
【００６９】
次に、HDD５８に適用されるFAT(File Allocation Table)型ファイルシステム（データフォーマット）について、図８乃至図２０を参照して説明する。図８に示すように、HDD５８には、符号化データ（コンテンツデータ）をファイルとして記録するためのファイル記録領域１２１と、ファイル記録領域１２１に記録されたコンテンツデータが記録された位置を特定するための情報を含むオブジェクトが記録されるオブジェクト記録領域１２２が設けられる。
【００７０】
ファイル管理部１２３は、ファイルの作成、新規に作成するファイルに対するＩＤの発行、ファイル記録領域１２１に対する書き込み、読み出し、削除などのファイルに関わる一切の処理を実行する。ファイル管理部１２３は、ロワーミドルウェアレイヤ７４に含まれるHD FS９２に相当する。
【００７１】
オブジェクト管理部１２４は、オブジェクト記録領域１２２におけるオブジェクトの物理位置を認識し、オブジェクトの書き込み、読み出し、削除などを実行する。オブジェクト管理部１２４は、ロワーミドルウェアレイヤ７４に含まれるHD DB９１に相当する。なお、オブジェクトのデータベースによる管理については、図２１乃至図３７を参照して後述する。
【００７２】
図９は、ファイル記録領域１２１の論理構造を示している。ファイル記録領域１２１は、ファイル記録領域１２１における書き込み、読み出しの最小単位である所定の容量のセクタに区画されている。全てのセクタには、シリアルなセクタ番号が付与されている。ファイル記録領域１２１は、所定の数のセクタによって構成されるFATエリア、システムエリア、複数のクラスタによって構成される。各クラスタには、固定長のクラスタ番号が付与されている。ファイル記録領域１２１に記録されるファイルは、複数のクラスタが結合されて構成される。
【００７３】
複数のクラスタの結合状態は、FAT１４１（図１０）と称されるテーブルに記録されている。FAT１４１は、ファイル記録領域１２１のFATエリアに記録されているが、ファイル管理部１２３が動作する際にはSDRAM５３にも転送される。
【００７４】
図１０は、FAT１４１の構造を示している。FAT１４１は、FATヘッダ１４２と、各クラスタにそれぞれ対応する複数のFATエントリ１４４から構成される。ヘッダ１４２には、空きクラスタリスト開始番号記録領域１４３が含まれている。空きクラスタリスト開始番号記録領域１４３には、データが記録されていない一連の空きクラスタの先頭のクラスタ番号が記録される。空きクラスタが存在しない場合、空きクラスタリスト開始番号記録領域１４３には、−１＝0xFFFFFFFFが記録される。
【００７５】
FATエントリ１４４には、対応するクラスタに付与されているクラスタ番号と同一のエントリ番号が付与されている。例えば、クラスタ番号１に対応するFATエントリには、エントリ番号１が付与されている。以下、エントリ番号１のFATエントリを、FATエントリＥ（１）とも記述する。FATエントリ１４４は、Ｐ欄１４５とＮ欄１４６に区分けられている。
【００７６】
FATエントリ１４４のＰ欄１４５には、対応するクラスタの前方に連結されるクラスタに付与されているクラスタ番号が記録される。前方に連結されるクラスタが存在しない場合、すなわち、対応するクラスタがファイルの先頭である場合、Ｐ欄１４６には、0xFFFFFFFFが記録される。
【００７７】
FATエントリ１４４のＮ欄１４６には、対応するクラスタの後方に連結されるクラスタに付与されているクラスタ番号が記録される。後方に連結されるクラスタが存在しない場合、すなわち、対応するクラスタがファイルの末尾である場合、Ｎ欄１４６には、0xFFFFFFFFが記録される。
【００７８】
例えば、ファイル記録領域１２１に１つのファイルだけが、クラスタ番号１，５，６，８，１２が付与されている５つのクラスタに記録されている場合、図１１に示すように、エントリ番号１（0x00000001）のFATエントリＥ（１）のＰ欄には、前方に連結されるクラスタが存在しないことを示す0xFFFFFFFFが記録され、Ｎ欄には、後方に連結されるクラスタに付与されているクラスタ番号５（0xFFFFFFFF）が記録される。
【００７９】
エントリ番号５（0x00000005）のFATエントリＥ（５）のＰ欄には、前方に連結されるクラスタに付与されているクラスタ番号１（0x00000001）が記録され、Ｎ欄には、後方に連結されるクラスタに付与されているクラスタ番号６（0x00000006）が記録される。
【００８０】
エントリ番号６，８のFATエントリＥ（６），Ｅ（８）にも、同様に記録がなされる。
【００８１】
エントリ番号１２（0x0000000C）のFATエントリＥ（１２）のＰ欄には、前方に連結されるクラスタに付与されているクラスタ番号８（0x00000008）が記録され、Ｎ欄には、後方に連結されるクラスタが存在しないことを示す0xFFFFFFFFが記録される。
【００８２】
空きクラスタリスト開始番号記録領域１４３には、いまの場合、クラスタ番号（0x00000002）のクラスタから、クラスタ番号（0x00000014）までの一連のクラスタが空きクラスタであるので、その先頭を示すクラスタ番号（0x00000002）が記録される。
【００８３】
図１２は、クラスタ番号１，５，６，８，１２が付与されている５つのクラスタに１つのファイルが記録される様子を示している。ファイルの先頭のクラスタ（いまの場合、クラスタ１）には、ファイルのサイズの関わる情報を記録するサイズ記録領域１５１が設けられる。ファイルのデータは、２番目のクラスタ（いまの場合、クラスタ５）以降に記録される。なお、サイズ記録領域１５１をファイルの最後尾のクラスタ（いまの場合、クラスタ１２）に設けるようにしてもよい。
【００８４】
図１３は、サイズ記録領域１５１の構成例を示している。サイズ記録領域１５１には、有効サイズ記録領域１５２、最終クラスタ番号記録領域１５３、および占有クラスタ数記録領域１５４が設けられている。有効サイズ記録領域１５２には、最後尾のクラスタ（いまの場合、クラスタ１２）の有効バイト数が記録される。通常、その値は、１以上であり、クラスタサイズ以下の値が記録される。最終クラスタ番号記録領域１５３には、最後尾のクラスタ（いまの場合、クラスタ１２）のクラスタ番号（いまの場合、0x0000000C）が記録される。占有クラスタ数記録領域１５４には、ファイルのデータ記録部分を構成するクラスタの数（いまの場合、４）が記録される。
【００８５】
次に、FATを利用するファイルの作成処理（すなわち、コンテンツデータの記録処理）、ファイルの読み出し処理、およびファイルの逆読み出し（すなわち、コンテンツデータの逆方向からの読み出し処理）について、図１４乃至図２０のフローチャートを参照して説明する。なお、これらの処理は、ファイル管理部１２３、すなわち、ファームウェアのロワーミドルウェアレイヤ７４に属するHD FS９２によって制御される。
【００８６】
始めに、ファイルの作成処理について、図１４のフローチャートを参照して説明する。ステップＳ１において、HD FS９２は、HDD５８に記録するコンテンツデータを、クラスタサイズ毎にCM-ROMドライブ５７などからバッファ５６に転送させる（転送されたデータ量をＳバイトとする）。ステップＳ２において、HD FS９２は、ファイル記録領域１２１の空きクラスタを検索して取得（確保）する。
【００８７】
この空きクラスタ取得処理について、図１５のフローチャートを参照して説明する。ステップＳ２１において、HD FS９２は、FATヘッダ１４１に記録されている空きクラスタリスト開始番号記録領域１４３に記録されている値Ｑを読み取る。ステップＳ２２において、HD FS９２は、値Ｑが−１であるか、すなわち、空きクラスタが存在しないか否かを判定する。値Ｑが−１ではない、すなわち、空きクラスタが存在すると判定された場合、処理はステップＳ２３に進む。ステップＳ２３において、HD FS９２は、値Ｑ（空きクラスタのクラスタ番号）に対応するFATエントリＥ（Ｑ）を読み取る。
【００８８】
FATエントリＥ（Ｑ）を読み出す処理に関連し、任意のクラスタ番号Ｘに対応するFATエントリＥ（Ｘ）を読み取る処理について、図１６のフローチャートを参照して説明する。ステップＳ４１において、HD FS９２は、既知のFATエントリ開始アドレスに既知のFATヘッダサイズを加算し、その和に、値Ｘから１を減算した値（Ｘ−１）に、既知のエントリサイズを乗算した積を加算して、アドレスＡを算出する。ステップＳ４２において、HD FS９２は、アドレスＡを先頭として、１エントリサイズ分だけデータを読み出す。以上、任意のクラスタ番号Ｘに対応するFATエントリＥ（Ｘ）を読み取る処理の説明を終了する。
【００８９】
図１５に戻り、ステップＳ２４において、HD FS９２は、FATエントリＥ（Ｑ）のＮ欄の値が−１(0xFFFFFFFF)であるか否かを判定する。FATエントリＥ（Ｑ）のＮ欄の値が−１ではないと判定された場合、処理はステップＳ２５に進む。
【００９０】
ステップＳ２５において、HD FS９２は、変数ＭにFATエントリＥ（Ｑ）のＮ欄の値を代入する。ステップＳ２６において、HD FS９２は、クラスタ番号Ｍに対応するFATエントリＥ（Ｍ）を読み取る。ステップＳ２７において、HD FS９２は、FATエントリＥ（Ｍ）のＰ欄に−１(0xFFFFFFFF)を記録する。
【００９１】
ステップＳ２８において、HD FS９２は、FATエントリＥ（Ｑ）のＮ欄に−１(0xFFFFFFFF)を記録し、FATエントリＥ（Ｑ）のＰ欄に−１(0xFFFFFFFF)を記録する。ステップＳ２９において、HD FS９２は、クラスタ番号Ｑの空きクラスタが存在するとして、図１４にリターンする。以上、空きクラスタ取得処理の説明を終了する。
【００９２】
なお、ステップＳ２４において、FATエントリＥ（Ｑ）のＮ欄の値が−１であると判定された場合、ステップＳ２５乃至ステップＳ２７の処理はスキップされる。
【００９３】
また、ステップＳ２２において、空きクラスタリスト開始番号記録領域１４３に記録されている値Ｑが−１であると判定された場合、処理はステップＳ３０に進む。ステップＳ３０において、HD FS９２は、空きクラスタが存在しないとして図１４にリターンする。ただし、空きクラスタが存在しない場合、HDD５８が一杯であるとして、図１４のファイル作成処理は終了される。
【００９４】
以下、取得したクラスタ番号Ｑの空きクラスタを、クラスタ番号Ｖの空きクラスタと読み替えて説明を継続する。ステップＳ３において、HD FS９２は、変数Ｘと変数Ａに空きクラスタのクラスタ番号Ｖを代入する。ステップＳ４において、HD FS９２は、占有クラスタ数Ｔに０を代入する。ステップＳ５において、HD FS９２は、上述したステップＳ２の処理と同様に、新たに空きクラスタを取得する。取得した空きクラスタのクラスタ番号をＶとする。ここで、新たに空きクラスタが取得できない場合、このファイル作成処理は終了される。
【００９５】
ステップＳ６において、HD FS９２は、変数Ｂに値Ｖを代入する。ステップＳ７において、HD FS９２は、占有クラスタ数Ｔを１だけインクリメントする。ステップＳ８において、HD FS９２は、クラスタ番号Ｂをセクタ番号に変換する（例えば、図９に示すようにセクタとクラスタが対応付けられている場合、クラスタ番号２はセクタ番号２８乃至３５に変換される）。クラスタ番号Ｂに対応するセクタ番号を判別する）。ステップＳ９において、HD FS９２は、ステップＳ１でバッファリングしたコンテンツデータを、ファイル記録領域１２１の変換したセクタ番号に記録させる。
【００９６】
バッファリングしたコンテンツデータの記録が終了した後、ステップＳ１０において、HD FS９２は、クラスタ番号Ａのクラスタ（この時では空きクラスタである）に、クラスタ番号Ｂのクラスタを連結する。この連結処理について、図１７のフローチャートを参照して説明する。
【００９７】
図１６を参照して上述した処理と同様、HD FS９２は、ステップＳ５１において、クラスタ番号Ａに対応するFATエントリＥ（Ａ）を読み取り、ステップＳ５２において、クラスタ番号Ｂに対応するFATエントリＥ（Ｂ）を読み取る。ステップＳ５３において、HD FS９２は、FATエントリＥ（Ａ）のＮ欄にクラスタ番号Ｂを記録し、FATエントリＥ（Ｂ）のＰ欄にクラスタ番号Ａを記録する。なお、ステップＳ５３の処理は、SDRAM５３に展開しているFAT１４１に対して実行する。以上、クラスタ番号Ａのクラスタと、クラスタ番号Ｂのクラスタの連結処理の説明を終了する。
【００９８】
図１４に戻り、ステップＳ１１において、HD FS９２は、ステップＳ９で記録したコンテンツのデータ量Ｓがクラスタサイズに等しいか否かを判定する。ステップＳ９で記録したコンテンツのデータ量Ｓがクラスタサイズに等しいと判定された場合、記録すべきコンテンツデータの記録が完了していないので、処理はステップＳ１２に進む。
【００９９】
ステップＳ１２において、先程記録したコンテンツデータの続きを、クラスタサイズ分だけ、バッファ５６に転送させる。ステップＳ１３において、変数Ａにクラスタ番号Ｂを代入する。ステップＳ１４において、HD FS９２は、上述したステップＳ２の処理と同様に、新たに空きクラスタを取得する。取得した空きクラスタのクラスタ番号をＶとする。なお、ステップＳ１４で、新たに空きクラスタが取得できなかった場合には、処理はステップＳ１７に進む。ステップＳ１５において、HD FS９２は、変数Ｂに値Ｖを代入する。ステップＳ１６において、HD FS９２は、占有クラスタ数Ｔを１だけインクリメントする。
【０１００】
この後、処理はステップＳ８に戻り、以降の処理が繰り返される。そして、ステップＳ１１において、ステップＳ９で記録したコンテンツのデータ量Ｓがクラスタサイズに等しくないと判定された場合、記録すべきコンテンツデータの記録が完了したので、処理はステップＳ１７に進む。
【０１０１】
ステップＳ１７において、HD FS９２は、ステップＳ２で取得したクラスタ番号Ｘの空きクラスタにサイズ記録領域１５１を設け、その有効サイズ記録領域１５２に最後尾のクラスタに記録したデータ量Ｓを記録し、最終クラスタ番号記録領域１５３に変数Ｂの値を記録し、占有クラスタ数記録領域１５４に変数Ｔの値を記録する。
【０１０２】
ステップＳ１８において、ステップＳ１０の処理で書き換えたFAT１４１で、ファイル記録領域１２１のFATエリアに記録されているFAT１４１を更新する。以上説明したようにして、新たにファイルが作成される。なお、作成されたファイルには、コンテンツデータが記録された一連のクラスタの先頭のクラスタ番号と同じ値のファイル識別子が発行される。
【０１０３】
次に、ファイル識別子がＸであるファイル（以下、ファイルＸと記述する）の読み出し処理について、図１８のフローチャートを参照して説明する。ステップＳ６１において、HD FS９２は、ファイルＸが存在するか否かを判別するための検索処理を実行する。
【０１０４】
ファイルＸの検索処理について、図１９のフローチャートを参照して説明する。ステップＳ８１において、HD FS９２は、エントリ番号Ｘに対応するFATエントリＥ（Ｘ）を取得する。ステップＳ８２において、HD FS９２は、FATエントリＥ（Ｘ）のＰ欄の値が−１(0xFFFFFFFF)であるか否かを判定する。FATエントリＥ（Ｘ）のＰ欄の値が−１であると判定された場合、処理はステップＳ８３に進む。ステップＳ８３において、HD FS９２は、エントリ番号Ｘ（＝クラスタ番号Ｘ）のクラスタは、ファイルが記録されている一連のクラスタのうちの先頭のクラスタであるので、ファイルＸは存在すると判断して、図１８のファイル読み出し処理に戻る。
【０１０５】
反対に、ステップＳ８２において、FATエントリＥ（Ｘ）のＰ欄の値が−１ではないと判定された場合、処理はステップＳ８４に進む。ステップＳ８４において、HD FS９２は、エントリ番Ｘ（＝クラスタ番号Ｘ）のクラスタは、ファイルが記録されている一連のクラスタのうちの先頭のクラスタではないので、ファイルＸは存在しないと判断して、図１８のファイル読み出し処理に戻る。以上、ファイルＸの検索処理の説明を終了する。
【０１０６】
以下、ファイル検索処理において、ファイルＸが存在すると判断されたとして、説明を継続する。ステップＳ６２において、HD FS９２は、FATエントリＥ（Ｘ）のＮ欄の値が−１(0xFFFFFFFF)であるか否かを判定する。FATエントリＥ（Ｘ）のＮ欄の値が−１であると判定された場合、ファイルＸにはデータが存在しないので、読み出し処理を終了する。
【０１０７】
ステップＳ６２において、FATエントリＥ（Ｘ）のＮ欄の値が−１ではない処理はステップＳ６３に進む。ステップＳ６３において、HD FS９２は、クラスタ番号Ｘ（先頭のクラスタ）をセクタ番号に変換する。ステップＳ６４において、HD FS９２は、DMAコントローラ５５を制御して、変換したセクタ番号に記録されているサイズ記録領域１５１を読み出してバッファ５６にバッファリングさせる。ステップＳ６４において、HD FS９２は、ステップＳ６３でバッファリンクしたサイズ記録領域１５１の有効サイズ記録領域１５２に記録されている有効サイズＳ（ファイルＸが記録されている一連のクラスタのうちの最後尾のクラスタに記録されているデータ量）を読み取る。
【０１０８】
ステップＳ６６において、HD FS９２は、変数ＣにFATエントリＥ（Ｘ）のＮ欄の値を代入する。ステップＳ６７において、HD FS９２は、図１６を参照して上述した処理と同様に、クラスタ番号Ｃに対応する、すなわち、２番目のクラスタに対応するFATエントリＥ（Ｃ）を読み取る。ステップＳ６８において、HD FS９２は、クラスタ番号Ｃをセクタ番号に変換する。ステップＳ６９において、HD FS９２は、DMAコントローラ５５を制御して、変換したセクタ番号のセクタに記録されている１クラスタ分のコンテンツデータを読み出し、バッファ５６にバッファリングさせる。
【０１０９】
ステップＳ７０において、HD FS９２は、FATエントリＥ（Ｃ）のＮ欄の値が−１(0xFFFFFFFF)であるか否かを判定する。FATエントリＥ（Ｃ）のＮ欄の値が−１ではないと判定された場合、処理はステップＳ７１に進む。ステップＳ７１において、HD FS９２は、DMAコントローラ５５を制御して、バッファ５６がバッファリングしているデータの全てを、エンコーダ／デコーダ５９などに出力させる。ファイルＸのコンテンツデータの全てはまだ読み出されていないので、処理はステップＳ７２に進む。ステップＳ７２において、HD FS９２は、変数ＣにFATエントリＥ（Ｃ）のＮ欄の値を代入する。処理はステップＳ６７に戻り、以降の処理が繰り返される。
【０１１０】
その後、ステップＳ７０において、FATエントリＥ（Ｃ）のＮ欄の値が−１であると判定された場合、ファイルＸのコンテンツデータが記録されている最後尾のクラスタからの読み出しが完了したので、処理はステップＳ７３に進む。ステップＳ７３において、HD FS９２は、DMAコントローラ５５を制御して、バッファ５６がバッファリングしている、コンテンツデータの最後尾である有効データサイズＳ分のデータを、エンコーダ／デコーダ５９などに出力させる。
【０１１１】
なお、ステップＳ６１のファイル検索処理において、ファイルＸが存在しないと判断された場合、処理はステップＳ７４に進み、エラー判定がなされて、ファイルＸのファイル読み出し処理は終了となる。以上、ファイルＸの読み出し処理の説明を終了する。
【０１１２】
次に、ファイルＸの逆読み出し処理について、図２０のフローチャートを参照して説明する。ここで、逆読み出し処理とは、例えば、再生時間が１００秒間であるコンテンツデータを、９０秒目から１００ミリ秒程度だけ再生した後、８０秒目から１００ミリ秒程度だけ再生し、次に、７０秒目から１００ミリ秒程度だけ再生するように、数秒間ごとに遡って再生させる場合に用いることができる処理である。
【０１１３】
ステップＳ９１において、HD FS９２は、ファイルＸのファイル識別子（＝Ｘ、以下、ＩＤ（Ｘ）と記述する）を、セクタ番号に変換する。ただし、ＩＤ（Ｘ）は、ファイルＸが記録されている一連のクラスタのうち、先頭のクラスタのクラスタ番号と同一である。
【０１１４】
ステップＳ９２において、クラスタＸに対応するFATエントリＥ（Ｘ）を読み取る。ステップＳ９３において、HD FS９２は、DMAコントローラ５５を制御して、ステップＳ９１で変換したセクタ番号のセクタに記録されているサイズ記録領域１５１を読み出してバッファ５６にバッファリングさせる。ステップＳ９４において、HD FS９２は、ステップＳ９３でバッファリンクしたサイズ記録領域１５１の有効サイズ記録領域１５２から有効サイズＳを、最終クラスタ番号記録領域１５３から最終クラスタ番号Ｚを読み取る。
【０１１５】
ステップＳ９５において、HD FS９２は、最終クラスタ番号ＺとＩＤ（Ｘ）が同一であるか否かを判定する。最終クラスタ番号ＺとＩＤ（Ｘ）が同一であると判定された場合、ファイルＸにコンテンツデータは存在しないので、逆読み出し処理を終了する。
【０１１６】
最終クラスタ番号ＺとＩＤ（Ｘ）が同一ではないと判定された場合、処理はステップＳ９６に進む。ステップＳ９６において、HD FS９２は、最終クラスタ番号Ｚをセクタ番号に変換する。ステップＳ９７において、HD FS９２は、DMAコントローラ５５を制御して、ステップＳ９６で変換したセクタ番号に記録されているコンテンツデータの最後尾の部分を含むデータを読み出し、バッファ５６にバッファリングさせる。ステップＳ９８において、HD FS９２は、DMAコントローラ５５を制御して、バッファ５６でバッファリングされているデータのうちのＳバイト分、すなわち、コンテンツデータの最後尾の部分だけを、エンコーダ／デコーダ５９などに出力させる。
【０１１７】
ステップＳ９９において、HD FS９２は、最終クラスタ番号Ｚに対応するFATエントリＥ（Ｚ）を読み取る。ステップＳ１００において、HD FS９２は、FATエントリＥ（Ｚ）のＰ欄の値がＩＤ（Ｘ）と同一であるか否かを判定する。FATエントリＥ（Ｚ）のＰ欄の値がＩＤ（Ｘ）と同一であると判定された場合、ファイルＸのコンテンツデータは最後尾の１クラスタだけに記録されていたことになるので、逆読み出し処理を終了する。
【０１１８】
FATエントリＥ（Ｚ）のＰ欄の値がＩＤ（Ｘ）と同一ではないと判定された場合、最後尾側から１クラスタ分だけ遡って読み出すために、処理はステップＳ１０１に進む。ステップＳ１０１において、HD FS９２は、変数ＣにFATエントリＥ（Ｚ）のＰ欄の値を代入する。
【０１１９】
ステップＳ１０２において、HD FS９２は、クラスタ番号Ｃに対応するFATエントリＥ（Ｃ）を読み取る。ステップＳ１０３において、HD FS９２は、クラスタ番号Ｃをセクタ番号に変換する。ステップＳ１０４において、HD FS９２は、DMAコントローラ５５を制御して、ステップＳ１０３で変換したセクタ番号に記録されているコンテンツデータを読み出し、バッファ５６にバッファリングさせる。ステップＳ１０５において、HD FS９２は、DMAコントローラ５５を制御して、バッファ５６でバッファリングされている１クラスタ分のコンテンツデータを、エンコーダ／デコーダ５９などに出力させる。
【０１２０】
ステップＳ１０６において、HD FS９２は、クラスタ番号Ｃに対応するFATエントリＥ（Ｃ）のＰ欄の値がＩＤ（Ｘ）と同一であるか否かを判定する。FATエントリＥ（Ｃ）のＰ欄の値がＩＤ（Ｘ）と同一ではないと判定された場合、ファイルＸの全てを読み出していないことになるので、１クラスタ分だけ遡って読み出すために、処理はステップＳ１０７に進む。ステップＳ１０７において、HD FS９２は、変数ＣにFATエントリＥ（Ｃ）のＰ欄の値を代入する。処理はステップＳ１０２に戻り、其れ以降の処理が繰り替えされる。
【０１２１】
その後、ステップＳ１０６において、FATエントリＥ（Ｃ）のＰ欄の値がＩＤ（Ｘ）と同一であると判定された場合、ファイルＸを先頭まで全て読み出したことになるので、逆読み出し処理を終了する。以上、ファイルＸの逆読み出し処理の説明を終了する。
【０１２２】
以上説明したように、オーディオサーバ１のHD FS９２によれば、ファイルを特定するためのファイル識別子として、固定長の値である、そのファイルが記録される領域の先頭クラスタのクラスタ番号を付与するようにしたので、ファイルの記録位置を簡単に特定することができる。よって、ファイル名が固定長ではない場合に較べて、ファイルの検索時間を大幅に減らすことができる。
【０１２３】
また、ファイル識別子が固定長であることにより、ファイルの検索に要する時間を均一化することができる。
【０１２４】
また、オーディオサーバ１のHD FS９２によれば、記録するファイルのサイズに制限がないので、オーディオデータだけでなく、ビデオデータのようなより大きなサイズのデータをファイルとして記録することができる。
【０１２５】
また、オーディオサーバ１のHD FS９２によれば、１つのファイルを区負数のクラスタに亘って記録する場合、順方向にクラスタを利用するので、記録時や再生時には、シークが一定方向となる。よって、記録時の記録漏れや再生時の音飛びの発生が抑止される。
【０１２６】
次に、フォルダ、アルバム、またはトラックに対応するオブジェクトについて、図２１乃至図２７を参照して説明する。図２１は、オブジェクトが記録されるオブジェクト記録領域１２２の論理構造を示している。オブジェクト記録領域１２２は、システムエリア１６１と、所定の容量に区画された複数のチャンクから構成される。オブジェクトは、チャンクに記録される。
【０１２７】
システムエリア１６１には、ヘッダ１６２、オブジェクト型記録領域１６３、および領域情報記録領域１６４が設けられている。複数のチャンクには、その先頭から順番に１以降のシリアルな番号が付与されている、以下、例えば、番号１が付与されているチャンクをチャンク１、番号２が付与されているチャンクをチャンク２などと記述する。
【０１２８】
チャンクは、さらに所定の容量のページに区画されている。チャンクを構成するページには、その先頭から順番に０以降のシリアルな番号が付与されている、以下、例えば、番号０が付与されているページをページ０、番号１が付与されているページをページ０などと記述する。
【０１２９】
図２２は、システムエリア１６１のオブジェクト型記録領域１６３の構造を示している。ヘッダ１６５とＴ個のエントリから構成される。Ｔは予め設定されている定数である。ヘッダ１６５には、エントリ数記録領域１６６が設けられている。エントリ数記録領域１６６には、現在登録されているエントリの数（最大値はＴである）が記録される。
【０１３０】
オブジェクト型記録領域１６３の各エントリには、サイズ記録領域１６７、基本オブジェクト型番号記録領域１６８、およびパラメータ記録領域１６９が設けられている。例えば、エントリｔには、オブジェクト型番号ｔに関する情報が記録される。すなわち、エントリｔのサイズ記録領域１６７には、オブジェクト型番号ｔのオブジェクトのサイズが記録される。エントリｔの基本オブジェクト型番号記録領域１６８には、オブジェクト型番号ｔのオブジェクトが属する基本オブジェクト型を示す基本オブジェクト型番号が記録される。エントリｔのパラメータ記録領域１６９には、オブジェクト型番号ｔのオブジェクトのサイズが可変長である場合のサイズに関する情報が記録される。
【０１３１】
図２３は、システムエリア１６１の領域情報記録領域１６４を示している。領域情報記録領域１６４は、オブジェクト記録領域１２２のページ総数（チャンクの総数に１チャンクを構成するページ数を乗算した値）のビット列で構成される。ただし、図２３は、説明の便宜上、領域情報記録領域１６４を、（チャンクの総数）列×（１チャンクを構成するページ数）行のマトリクスを用いて示している。例えば、図２３において、ｑ列ｐ行の”○”で示すビットは、チャンクｑのページｐに対応しており、チャンクｑのページｐが使用中である場合、”○”で示すビットには１が記録される。反対に、チャンクｑのページｐが使用中ではない場合、”○”で示すビットには０が記録される。
【０１３２】
図２４は、ロワーミドルウェアレイヤ７４に含まれるHD DB９１に相当するオブジェクト管理部１２４の構成例を示している。オブジェクト管理部１２４は、オブジェクト型登録部１７１、記憶領域管理部１７２、セッション管理部１７３、およびキャッシュ管理部１７４から構成される。
【０１３３】
オブジェクト型登録部１７１は、オブジェクト型の登録（オブジェクト型記録領域１６３への書き込み）を行う。また、オブジェクト型登録部１７１は、オブジェクト型の問い合わせに対する応答（オブジェクト型記録領域１６３からの読み出し）を行う。
【０１３４】
記憶領域管理部１７２は、領域情報記録領域１６４の所定のビットを反転させる。また、記憶領域管理部１７２は、領域情報記録領域１６４のビットを読み出すことにより、所定のページ数の連続未使用領域を検索する。さらに、記憶領域管理部１７２は、各オブジェクトに対して識別子を発行する。
【０１３５】
セッション管理部１７３は、現在実行中のセッションに対してセッション番号を発行するとともに、セッション管理情報１８１（図２５）を管理する。ここで、セッションとは、データの書き込み、読み出しなどを制御する処理を示す用語である。
【０１３６】
図２５は、セッション管理情報１８１の構成例を示している。セッション管理情報１８１は、現在開かれているセッションの数（以下、カレントセッション数と記述する）が格納されるカレントセッション数格納領域１８２と、各オブジェクトに対応し、そのアクセス権を保有しているセッションの情報が記録されているＳ個のエントリから構成される。カレントセッション数の最大値と値Ｓは、予め設定されている。
【０１３７】
セッション管理情報１８１のエントリには、オブジェクト識別子格納領域１８３、リードライトセッション番号格納領域１８４、リードオンリセッション番号格納領域１８５乃至１８８、オブジェクト状態格納領域１８９、リードキャッシュアドレス格納領域１９０、ライトキャッシュアドレス格納領域１９１、およびアクセス時刻格納領域１９２が設けられている。
【０１３８】
オブジェクト識別子格納領域１８３には、対応するオブジェクトのオブジェクト識別子（図２７）が格納される。リードライトセッション番号格納領域１８４には、対応するオブジェクトに対して書き込み権を有するセッションのセッション番号が格納される。リードオンリセッション番号格納領域１８５乃至１８８には、対応するオブジェクトに対して読み出し権を有するセッションのセッション番号が格納される。なお、オブジェクトに対して読み出し権を有する複数のセッションが同時に存在してもよく、図２５は、４つまでの読み出し権を有すると、１つだけの書き込みおよび読み出し権を有する場合を示している。
【０１３９】
オブジェクト状態格納領域１８９には、対応するオブジェクトの状態を示す情報（作成を示す”CREATE”、更新を示す”UPDATE”、または削除を示す”REMOVE”）が格納される。リードキャッシュアドレス格納領域１９０には、読み出すオブジェクトを一時的に記憶させるリードキャッシュのアドレスが格納される。ライトキャッシュアドレス格納領域１９１には、書き込むオブジェクトを一時的に記憶させるライトキャッシュのアドレスが格納される。アクセス時刻格納領域１９２には、対応するオブジェクトに対する最終アクセス時刻が格納される。
【０１４０】
なお、オブジェクト識別子格納領域１８３乃至アクセス時刻格納領域１９２に格納すべき情報が存在しない場合、０を格納する。
【０１４１】
図２６は、チャンクに記録されるオブジェクトの２種類の基本オブジェクト型である基本オブジェクト第１型と基本オブジェクト第２型の構成例を示している。
【０１４２】
基本オブジェクト第１型は、図２６（Ａ）に示すように、自己のオブジェクト識別子が記録されるオブジェクト識別子記録領域２０１、および任意のデータ（例えば、ユーザが設定するオブジェクトの名前などのデータ）が記録される任意データ記録領域２０２から構成される。基本オブジェクト第１型には、フォルダリスト、フォルダ、およびアルバムのオブジェクトが含まれる。
【０１４３】
基本オブジェクト第２型は、図２６（Ｂ）に示すように、自己のオブジェクト識別子が記録されるオブジェクト識別子記録領域２０１、任意のデータが記録される任意データ記録領域２０２、および自己（オブジェクト）に対応するファイルのファイル識別子が記録されるファイル識別子記録領域２０３から構成される。基本オブジェクト第２型には、トラックのオブジェクトが含まれる。
【０１４４】
オブジェクト識別子記録領域２０１に記録されるオブジェクト識別子は、図２７に示すように、対応するオブジェクトが格納されている一連のページの先頭を示す、チャンク番号とそのページ番号、型番号から構成される。型番号は、対応するオブジェクトが属する基本オブジェクト型番号（基本オブジェクト第１型、または基本オブジェクト第２型の一方）と、対応するオブジェクトの型が登録されているオブジェクト型記録領域１６３のエントリ番号から構成される。
【０１４５】
次に、オブジェクトの作成処理、オブジェクトの検索処理、オブジェクトの更新処理、ストリームオブジェクトの作成処理、およびストリームオブジェクトの検索処理について、図２８乃至図３７のフローチャートを参照して説明する。ここで、ストリームオブジェクトとは、特に、ファイル記録領域１２１に記録されたコンテンツデータと１対１に対応するオブジェクト、すなわち、トラックを指す用語である。ストリームオブジェクトは、基本オブジェクト第２型（図２６（Ｂ））に属する。したがって、ストリームオブジェクトではないオブジェクトは、フォルダまたはアルバムのオブジェクトであり、基本オブジェクト第１型に属する。
【０１４６】
なお、これらの処理は、オブジェクト管理部１２４、すなわち、ファームウェアのロワーミドルウェアレイヤ７４に属するHD DB９１によって制御される。
【０１４７】
始めに、ストリームオブジェクトではないオブジェクトの作成処理について、オブジェクト型番号ｔのオブジェクトを作成する場合を例に、図２８のフローチャートを参照して説明する。なお、オブジェクト型番号ｔには、図２７に示したように、基本型番号（いまの場合、基本オブジェクト第１型）とエントリ番号が含まれている。
【０１４８】
ステップＳ１２１において、HD DB９１は、ライトセッションを開設する。ライトセッションを開設する処理について、図２９のフローチャートを参照して説明する。ステップＳ１４１において、HD DB９１は、セッション管理情報１８１のカレントセッション数格納領域１８２に格納されているカレントセッション数を読み出し、読み出したカレントセッション数が予め設定されている最大値よりも小さいか否かを判定する。カレントセッション数が予め設定されている最大値よりも小さいと判定された場合、処理はステップＳ１４２に進む。
【０１４９】
ステップＳ１４２において、HD DB９１は、セッション管理情報１８１のカレントセッション数格納領域１８２に格納されているカレントセッション数を１だけインクリメントする。ステップＳ１４３において、HD DB９１は、ライトセッションを開設し、例えば、乱数などによってセッション番号Ｚを発行する。処理は図２８に戻る。
【０１５０】
なお、ステップＳ１４１において、カレントセッション数が予め設定されている最大値よりも小さくないと判定された場合、さらにセッションを開設することができないので、処理はステップＳ１４４に進み、ステップＳ１４４において、HD DB９１は、エラーと判断する。セッション開設処理は終了され、図２８のオブジェクト作成処理は中断される。
【０１５１】
図２８のステップＳ１２２において、HD DB９１は、オブジェクト型番号ｔのオブジェクトを記録するチャンクのページを確保するために、オブジェクト型記録領域１６３のエントリｔのサイズ記録領域１６７から、オブジェクト型番号ｔのオブジェクトのサイズを読み出し、そのサイズに相当するチャンクのページ数を算出する。算出したページ数をｇとする。
【０１５２】
ステップＳ１２３において、HD DB９１は、セッション管理情報１８１を構成する複数のエントリのうちの空きエントリを確保する。空きエントリを確保する処理について、図３０のフローチャートを参照して説明する。
【０１５３】
ステップＳ１５１において、HD DB９１は、変数Ｍを１に初期化する。ステップＳ１５２において、HD DB９１は、変数Ｍがセッション管理情報１８１を構成するエントリの数Ｓ以下であるか否かを判定する。変数Ｍがエントリの数Ｓ以下であると判定された場合、処理はステップＳ１５３に進む。ステップＳ１５３において、HD DB９１は、セッション管理情報１８１を構成するエントリＭのオブジェクト識別子格納領域１８３の値を読み出す。ステップＳ１５４において、HD DB９１は、読み出したエントリＭのオブジェクト識別子格納領域１８３の値が０であるか否かを判定する。エントリＭのオブジェクト識別子格納領域１８３の値が０であると判定された場合、エントリＭは空きエントリであると判断できるので、エントリＭを確保して図２８に戻る。
【０１５４】
ステップＳ１５４において、エントリＭのオブジェクト識別子格納領域１８３の値が０ではないと判定された場合、処理はステップＳ１５５に進む。ステップＳ１５５において、HD DB９１は、変数Ｍを１だけインクリメントする。処理はステップＳ１５２に戻り、以降の処理が繰り返される。その後、ステップＳ１５４において、エントリＭのオブジェクト識別子格納領域１８３の値が０であると判定されることなく、ステップＳ１５２において、変数Ｍがエントリの数Ｓ以下ではないと判定された場合、現状では空きエントリが存在しないので、空きエントリを作り出すために、処理はステップＳ１５６に進む。
【０１５５】
ステップＳ１５６において、HD DB９１は、セッション管理情報１８１を構成するエントリのうち、リードライトセッション番号格納部１８４およびリードオンリセッション番号格納部１８５乃至１８８の値の値が全て０であるエントリが存在するか否かを判定する。そのようなエントリが存在すると判定された場合、処理はステップＳ１５７に進む。ステップＳ１５７において、HD DB９１は、リードライトセッション番号格納部１８４およびリードオンリセッション番号格納部１８５乃至１８８の値の値が全て０であるエントリのうち、アクセス時刻格納領域１９２の値が最も小さいエントリ（すなわち、最も古いアクセス時刻のエントリ）を抽出する。
【０１５６】
ステップＳ１５８において、HD DB９１は、抽出したエントリのオブジェクト識別子格納領域１８２乃至アクセス時刻格納領域１９２の値を０にクリアし、そのエントリを空きエントリＭとして確保する。処理は図２８に戻る。
【０１５７】
なお、ステップＳ１５６において、セッション管理情報１８１を構成するエントリのうち、リードライトセッション番号格納部１８４およびリードオンリセッション番号格納部１８５乃至１８８の値の値が全て０であるエントリが存在しないと判定された場合、空きエントリは確保できないので、ステップＳ１５９に進む。ステップＳ１５９において、HD DB９１は、エラーと判断する。空きエントリ確保処理は終了され、図２８のオブジェクト作成処理は中断される。
【０１５８】
図２８に戻り、ステップＳ１２４において、HD DB９１は、領域情報記録領域１６４のビット列のうち、ｇビット連続して０が記録されているビット列を検索する。検索したｇビット連続して０が記録されているビット列の先頭の位置をｑ列ｐ行とする。ステップＳ１２５において、HD DB９１は、確保したエントリＭのオブジェクト識別子格納領域１８３に、図２７に示したように、チャンク番号ｑ、ページ番号ｐ、オブジェクト型番号ｔからなるオブジェクト識別子OID(q,p,t)を格納する。また、HD DB９１は、セッション管理情報１８１のエントリＭのリードライトセッション番号格納領域１８４にセッション番号Ｚを格納し、さらに、オブジェクト状態格納領域１８９に作成を示す”CREATE”を記録する。
【０１５９】
ステップＳ１２６において、HD DB９１は、オブジェクトのサイズであるページ数ｇに等しいライトキャッシュ領域ｄをバッファ５６に確保する。ステップＳ１２７において、HD DB９１は、セッション管理情報１８１のエントリＭのライトキャッシュアドレス格納領域１９１に、確保したバッファ５６におけるライトキャッシュ領域ｄのアドレスを格納する。
【０１６０】
ステップＳ１２８において、HD DB９１は、バッファ５６に確保したライトキャッシュ領域ｄに、図２６（Ａ）に示したオブジェクト基本第１型のオブジェクトＸの記録を開始するが、その始めとして、ライトキャッシュ領域ｄのオブジェクト識別子記録領域２０１に、オブジェクト識別子OID(q,p,t)を記録する。ステップＳ１２９において、HD DB９１は、作成するオブジェクトの任意のデータ（例えば、作成するオブジェクトの名称など）を、ライトキャッシュ領域ｄの任意データ記録領域２０２に記録する。
【０１６１】
ステップＳ１３０において、HD DB９１は、ユーザの操作に対応する信号Ｉの入力を待つ。ステップＳ１３１において、HD DB９１は、信号Iがcommit、すなわち、セッション作成を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップＳ１３２に進み、ライトセッションＺが確定される。反対に、信号Iがcommitではないと判定された場合、処理はステップＳ１３３に進み、ライトセッションＺが破棄される。
【０１６２】
ステップＳ１３２のライトセッションを確定する処理について、図３１のフローチャートを参照して説明する。なお、セッションを確定するとは、当該セッションが開設された後に行われたオブジェクトの作成、更新、移動などに、オブジェクト記録領域１２２の記録を反映し、確定することである。
【０１６３】
ステップＳ１７１において、HD DB９１は、変数Ｍを１に初期化する。ステップＳ１７２において、HD DB９１は、変数Ｍがセッション管理情報１８１を構成するエントリの数Ｓ以下であるか否かを判定する。変数Ｍがエントリの数Ｓ以下であると判定された場合、処理はステップＳ１７３に進む。ステップＳ１７３において、HD DB９１は、セッション管理情報１８１を構成するエントリＭのリードライトセッション番号格納領域１８４の値を読み出し、セッション番号Ｚと一致するか否かを判定する。エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致しないと判定された場合、エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致するエントリを検索するために、処理はステップＳ１７４に進む。
【０１６４】
ステップＳ１７４において、HD DB９１は、変数Ｍを１だけインクリメントする。処理はステップＳ１７２に戻り、以降の処理が繰り返される。ステップＳ１７３において、エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致すると判定された場合、処理はステップＳ１７５に進む。すなわち、リードライトセッション番号格納領域１８４にセッション番号Ｚが格納されているエントリだけが抽出されて、ステップＳ１７５以降の処理が施される。
【０１６５】
ステップＳ１７５において、HD DB９１は、リードライトセッション番号格納領域１８４にセッション番号Ｚが格納されているエントリＭのオブジェクト識別子格納領域１８３からオブジェクト識別子を読み出す。ステップＳ１７６において、HD DB９１は、リードライトセッション番号格納領域１８４にセッション番号Ｚが格納されているエントリＭのオブジェクト状態格納領域１８９からオブジェクト状態を示す情報Ｊを読み出す。ステップＳ１７６において、HD DB９１は、オブジェクト状態を示す情報Ｊが”CREATE”，”UPTATE”、または”REMOVE”の何れであるかを判定する。
【０１６６】
ステップＳ１７７において、オブジェクト状態を示す情報Ｊが”CREATE”であると判定された場合、処理はステップＳ１７８に進む。ステップＳ１７８において、HD DB９１は、バッファ５６に確保したライトキャッシュ領域ｄに記録されているオブジェクトを、オブジェクト記録領域１２２のチャンクｐのページｑ以降に記録する。ステップＳ１７９において、HD DB９１は、領域情報記録領域１６４のｑ列ｐ行以降のｇビットに１を記録する。
【０１６７】
ステップＳ１８０において、HD DB９１は、エントリＭのライトキャッシュアドレス格納領域１９１の値を、リードキャッシュアドレス格納領域１９０にコピーする。このとき、リードキャッシュアドレス格納領域１９０に０以外の値が格納されていたならば、その値が示すバッファ５６の設けられるリードキャッシュ領域を解放する。
【０１６８】
ステップＳ１８１において、HD DB９１は、エントリＭのリードライトセッション番号格納領域１８４、およびライトキャッシュアドレス格納領域１９１に０を格納する。ステップＳ１８２において、HD DB９１は、エントリＭのアクセス時刻格納領域１９２の値を現在の時刻で更新する。
【０１６９】
ステップＳ１７７において、オブジェクト状態を示す情報Ｊが”UPDATE”であると判定された場合、処理はステップＳ１８３に進む。ステップＳ１８３において、HD DB９１は、バッファ５６に確保したライトキャッシュ領域ｄに記録されているオブジェクトを、オブジェクト記録領域１２２のチャンクｐのページｑ以降に記録する。処理はステップＳ１８０に進む。
【０１７０】
ステップＳ１７７において、オブジェクト状態を示す情報Ｊが”REMOVE”であると判定された場合、処理はステップＳ１８４に進む。ステップＳ１８４において、HD DB９１は、領域情報記録領域１６４のｑ列ｐ行以降のｇビットに０を記録する。ステップＳ１８５において、HD DB９１は、エントリＭがバッファ５６に確保しているライトキャッシュとリードキャッシュを解放する。ステップＳ１８６において、HD DB９１は、エントリＭのオブジェクト識別子格納領域１８３乃至アクセス時刻格納領域１９２に０を格納する。処理はステップＳ１７４に進む。
【０１７１】
その後、ステップＳ１７２において、変数Ｍがエントリの数Ｓ以下ではないと判定されるまで、以降の処理が繰り返される。変数Ｍがエントリの数Ｓ以下ではないと判定された場合、ライトセッションを確定する処理が完了される。
【０１７２】
図２８のステップＳ１３３の処理、すなわち、ライトセッションを破棄する処理について、図３２のフローチャートを参照して説明する。ステップＳ１９１において、HD DB９１は、変数Ｍを１に初期化する。ステップＳ１９２において、HD DB９１は、変数Ｍがセッション管理情報１８１を構成するエントリの数Ｓ以下であるか否かを判定する。変数Ｍがエントリの数Ｓ以下であると判定された場合、処理はステップＳ１９３に進む。
【０１７３】
ステップＳ１９３において、HD DB９１は、セッション管理情報１８１を構成するエントリＭのリードライトセッション番号格納領域１８４の値を読み出し、セッション番号Ｚと一致するか否かを判定する。エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致しないと判定された場合、エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致するエントリを検索するために、処理はステップＳ１９４に進む。ステップＳ１９４において、HD DB９１は、変数Ｍを１だけインクリメントする。処理はステップＳ１９２に戻り、以降の処理が繰り返される。
【０１７４】
ステップＳ１９３において、エントリＭのリードライトセッション番号格納領域１８４の値とセッション番号Ｚが一致すると判定された場合、処理はステップＳ１９５に進む。すなわち、リードライトセッション番号格納領域１８４にセッション番号Ｚが格納されているエントリだけが抽出されて、ステップＳ１９５以降の処理が施される。
【０１７５】
ステップＳ１９５において、HD DB９１は、エントリＭがバッファ５６に確保しているライトキャッシュ領域を解放する。ステップＳ１９６において、HD DB９１は、エントリＭのオブジェクト状態格納領域１８９に格納されているオブジェクト状態が”CREATE”であるか否かを判定し、オブジェクト状態が”CREATE”であるはないと判定した場合、ステップＳ１９７に進む。
【０１７６】
ステップＳ１９７において、HD DB９１は、エントリＭのリードライトセッション番号格納領域１８４、およびライトキャッシュアドレス格納領域１９１に０を格納する。ステップＳ１９８において、HD DB９１は、エントリＭのアクセス時刻格納領域１９２の値を現在の時刻で更新する。処理はステップＳ１９４に進む。
【０１７７】
なお、ステップＳ１９６において、エントリＭのオブジェクト状態格納領域１８９に格納されているオブジェクト状態が”CREATE”であると判定された場合、処理はステップＳ１９９に進む。ステップＳ１９９において、HD DB９１は、エントリＭのリードライトセッション番号格納領域１８４、およびライトキャッシュアドレス格納領域１９１以外、すなわち、オブジェクト識別子格納領域１８３、リードオンリセッション番号格納領域１８５乃至１８８、オブジェクト状態格納領域１８９、リードキャッシュアドレス格納領域１９０、およびアクセス時刻格納領域１９２に０を格納する。処理はステップＳ１９４に進む。
【０１７８】
その後、ステップＳ１９２において、変数Ｍがエントリの数Ｓ以下ではないと判定されるまで、以降の処理が繰り返される。変数Ｍがエントリの数Ｓ以下ではないと判定された場合、ライトセッションを破棄する処理が完了される。
【０１７９】
次に、オブジェクトの検索処理について、オブジェクト識別子OID＝Ｘであるオブジェクト（以下、オブジェクトＸと記述する）を検索する場合を例として、図３３のフローチャートを参照して説明する。なお、セッションは既に開設されているものとする。
【０１８０】
ステップＳ２０１において、HD DB９１は、オブジェクトＸに対応するエントリＭを取得する。オブジェクトＸに対応するエントリを取得する処理について、図３４のフローチャートを参照して説明する。
【０１８１】
ステップＳ２１１において、HD DB９１は、変数Ｍを１に初期化する。ステップＳ２１２において、HD DB９１は、変数Ｍがセッション管理情報１８１を構成するエントリの数Ｓ以下であるか否かを判定する。変数Ｍがエントリの数Ｓ以下であると判定された場合、処理はステップＳ２１３に進む。
【０１８２】
ステップＳ２１３において、HD DB９１は、セッション管理情報１８１を構成するエントリＭのオブジェクト識別子格納領域１８３の値を読み出し、オブジェクトＸのオブジェクト識別子OID＝Ｘと一致するか否かを判定する。エントリＭのオブジェクト識別子格納領域１８３の値と、オブジェクトＸのオブジェクト識別子OID＝Ｘが一致しないと判定された場合、オブジェクト識別子格納領域１８３の値と、オブジェクトＸのオブジェクト識別子OID＝Ｘが一致するエントリを検索するために、処理はステップＳ２１４に進む。
【０１８３】
ステップＳ２１４において、HD DB９１は、変数Ｍを１だけインクリメントする。処理はステップＳ２１２に戻り、以降の処理が繰り返される。ステップＳ２１３において、エントリＭのオブジェクト識別子格納領域１８３の値と、オブジェクトＸのオブジェクト識別子OID＝Ｘが一致すると判定された場合、オブジェクトＸに対応するエントリＭを取得することができたので、この処理が終了され、処理は図３３に戻る。
【０１８４】
なお、ステップＳ２１３において、エントリＭのオブジェクト識別子格納領域１８３の値と、オブジェクトＸのオブジェクト識別子OID＝Ｘが一致しないと判定される場合が続き、ステップＳ２１２において、変数Ｍがエントリの数Ｓ以下ではないと判定された場合、処理はステップＳ２１５に進む。ステップＳ２１５において、HD DB９１は、エラーである、すなわち、オブジェクトＸに対応するエントリＭを取得することができなかったと判断して、この処理を終了する。処理は図３３に戻る。
【０１８５】
図３３に戻り、ステップＳ２０１の処理でオブジェクトＸに対応するエントリＭを取得できた場合、処理はステップＳ２０２に進む。ステップＳ２０２において、HD DB９１は、オブジェクトＸに対応するエントリＭを取得できたので、オブジェクトＸはバッファ５６に存在すると判断して、処理を終了する。
【０１８６】
反対に、ステップＳ２０１の処理でオブジェクトＸに対応するエントリＭを取得できなかった場合、処理はステップＳ２０３に進み。ステップＳ２０３において、HD DB９１は、オブジェクトＸのオブジェクト識別子OID＝Ｘを分解して、オブジェクトが記録されているオブジェクト記録領域１２２のチャンク番号、ページ番号、オブジェクトＸの型番号ｔを取得する。
【０１８７】
ステップＳ２０４において、HD DB９１は、オブジェクト型記録領域１６３から、型番号ｔに対応するエントリのサイズ記録領域１６７の値を読み出し、その値に基づいてオブジェクトＸを記録するために必要なページ数ｇを算出する。
【０１８８】
ステップＳ２０５において、HD DB９１は、領域情報記憶領域１６４を参照し、ｑ行ｐ列以降のｇビットが１であるか否かを判定する。領域情報記憶領域１６４のｑ行ｐ列以降のｇビットが１であると判定された場合、処理はステップＳ２０６に進む。ステップＳ２０６において、HD DB９１は、ページ数ｇに相当するリードキャッシュ領域ｃをバッファ５６に設定する。ステップＳ２０７において、HD DB９１は、オブジェクト記録領域１２２のチャンクｑのページｐ以降のページ数ｇに記録されているデータを、バッファ５６のリードキャッシュ領域ｃにコピーする。
【０１８９】
ステップＳ２０８において、HD DB９１は、リードキャッシュ領域ｃにコピーしたデータのオブジェクト識別子記録領域２０１に相当する部分に記録されているオブジェクト識別子と、オブジェクト識別子Ｘが一致するか否かを判定する。一致すると判定された場合、リードキャッシュ領域ｃにキャッシュされているデータがオブジェクトＸであるので、処理はステップＳ２０２に進む。
【０１９０】
ステップＳ２０８において、リードキャッシュ領域ｃにコピーしたデータのオブジェクト識別子記録領域２０１に相当する部分に記録されているオブジェクト識別子と、オブジェクト識別子Ｘが一致しないと判定された場合、処理はステップＳ２０９に進む。ステップＳ２０９において、HD DB９１は、オブジェクト記録領域１２２にもオブジェクトＸは存在していないと断定して処理を終了する。
【０１９１】
次に、オブジェクトＸの更新処理について、図３５のフローチャートを参照して説明する。ここで、オブジェクトＸの更新処理とは、オブジェクトＸの任意データを書き換える処理である。
【０１９２】
ステップＳ２２１において、HD DB９１は、図２９を参照して上述したステップＳ１２１の処理と同様に、ライトセッションＺを開設する。ステップＳ２２２において、HD DB９１は、図３４を参照して上述したステップＳ２０１の処理と同様に、オブジェクトＸに対するエントリＭを取得する。
【０１９３】
ステップＳ２２２の処理でオブジェクトＸに対応するエントリＭを取得できた場合、オブジェクトＸはバッファ５６に設定されているリードキャッシュ領域ｃにキャッシュされていると判断して、処理はステップＳ２２３に進む。ステップＳ２２３において、HD DB９１は、エントリＭのリードライトセッション番号格納領域１８４の値が０であるか否かを判定する。エントリＭのリードライトセッション番号格納領域１８４の値が０であると判定された場合、処理はステップＳ２２４に進む。
【０１９４】
ステップＳ２２４にいて、HD DB９１は、エントリＭのリードライトセッション番号格納領域１８４に、ステップＳ２２１で開設したライトセッションのセッション番号Ｚを格納する。ステップＳ２２５において、HD DB９１は、オブジェクトＸのオブジェクト識別子OID＝Ｘを分解して、オブジェクトが記録されているオブジェクト記録領域１２２のチャンク番号、ページ番号、オブジェクトＸの型番号ｔを取得する。
【０１９５】
ステップＳ２２６において、HD DB９１は、オブジェクト型記録領域１６３から、型番号ｔに対応するエントリのサイズ記録領域１６７の値を読み出し、その値に基づいてオブジェクトＸを記録するために必要なページ数ｇを算出する。ステップＳ２２７において、HD DB９１は、ページ数ｇに相当するライトキャッシュ領域ｄをバッファ５６に設定する。ステップＳ２２８において、HD DB９１は、エントリＭのライトキャッシュアドレス格納領域１９１に、ライトキャッシュ領域ｄのアドレスを格納する。
【０１９６】
ステップＳ２２９において、HD DB９１は、バッファ５６のリードキャッシュ領域ｃのデータを、ライトキャッシュ領域ｄにコピーする。ステップＳ２３０において、HD DB９１は、オブジェクトＸの更新する任意データを、ライトキャッシュ領域ｄにコピーされたオブジェクトＸの任意データ記録領域２０２に記録する。ステップＳ２３１において、HD DB９１は、エントリＭのオブジェクト状態格納領域１８９に更新を示す情報”UPDATE”を格納する。
【０１９７】
ステップＳ２３２において、HD DB９１は、ユーザの操作に対応する信号Ｉの入力を待つ。ステップＳ２３３において、HD DB９１は、信号Iがcommit、すなわち、セッション更新を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップＳ２３４に進む。ステップＳ２３４において、HD DB９１は、図３１を参照して上述したステップＳ１３２の処理と同様に、ライトセッションＺを確定する。反対に、信号Iがcommitではないと判定された場合、処理はステップＳ２３５に進む。ステップＳ２３５において、HD DB９１は、図３２を参照して上述したステップＳ１３３の処理と同様に、ライトセッションＺを破棄する。
【０１９８】
なお、ステップＳ２２３において、エントリＭのリードライトセッション番号格納領域１８４の値が０ではないと判定された場合、オブジェクトＸはセッションＺ以外の他のセッションによって更新中であると判断できるので、処理はステップＳ２３５に進む。
【０１９９】
また、ステップＳ２２２の処理において、オブジェクトＸに対応するエントリＭを取得できなかった場合、処理はステップＳ２３６に進み。ステップＳ２３６において、HD DB９１は、図３０を参照して上述したステップＳ１２３の処理と同様に、空きエントリＭを確保する。
【０２００】
ステップＳ２３７において、HD DB９１は、オブジェクトＸのオブジェクト識別子OID＝Ｘを分解して、オブジェクトが記録されているオブジェクト記録領域１２２のチャンク番号、ページ番号、オブジェクトＸの型番号ｔを取得する。ステップＳ２３８において、HD DB９１は、オブジェクト型記録領域１６３から、型番号ｔに対応するエントリのサイズ記録領域１６７の値を読み出し、その値に基づいてオブジェクトＸを記録するために必要なページ数ｇを算出する。ステップＳ２３９において、HD DB９１は、ページ数ｇに相当するリードキャッシュ領域ｃとライトキャッシュ領域ｄをバッファ５６に設定する。
【０２０１】
ステップＳ２４０において、HD DB９１は、エントリＭのリードキャッシュアドレス格納領域１９０にリードキャッシュ領域ｃのアドレスを格納し、エントリＭのライトキャッシュアドレス格納領域１９１にライトキャッシュ領域ｄのアドレスを格納し、エントリＭのオブジェクト識別子格納領域１８３にオブジェクトＸのオブジェクト識別子IOD＝Ｘを格納する。
【０２０２】
ステップＳ２４１において、HD DB９１は、オブジェクト記録領域１２２のチャンクｑのページｐ以降のページ数ｇまでに記録されているオブジェクトＸのデータを、バッファ５６のリードキャッシュ領域ｃにコピーする。処理はステップＳ２２９に進む。
【０２０３】
以上説明したように、ファイルＸの更新処理では、リードキャッシュ領域ｃからライトキャッシュ領域ｄにファイルＸのデータがコピーされ、ライトキャッシュ領域ｄにキャッシュされているファイルＸのデータが書き換えられ、書き換えられた結果が、セッションを確定する処理により、オブジェクト記録領域１２２に記録される。
【０２０４】
次に、ファイル記録領域１２１に記録されるコンテンツデータと１対１に対応するトラックのオブジェクト、すなわち、オブジェクト型番号ｔ'のストリームオブジェクトを作成する処理について、図３６のフローチャートを参照して説明する。なお、オブジェクト型番号ｔ'には、図２７に示したように、基本型番号（いまの場合、基本オブジェクト第２型）とエントリ番号が含まれている。
【０２０５】
ステップＳ２５１において、HD DB９１は、図２９のフローチャートを参照して上述したステップＳ１２１の処理と同様に、ライトセッションを開設する。ステップＳ２５２において、HD DB９１は、オブジェクト型番号ｔ'のストリームオブジェクトを記録するチャンクのページを確保するために、オブジェクト型記録領域１６３のエントリｔ'のサイズ記録領域１６７から、オブジェクト型番号ｔ'のオブジェクトのサイズを読み出し、そのサイズに相当するチャンクのページ数を算出する。算出したページ数をｇとする。
【０２０６】
ステップＳ２５３において、HD DB９１は、図３０のフローチャートを参照して上述したステップＳ１２３の処理と同様に、セッション管理情報１８１を構成する複数のエントリのうちの空きエントリＭを確保する。ステップＳ２５４において、HD DB９１は、領域情報記録領域１６４のビット列のうち、ｇビット連続して０が記録されているビット列を検索する。検索したｇビット連続して０が記録されているビット列の先頭の位置をｑ列ｐ行とする。ステップＳ２５５において、HD DB９１は、確保したエントリＭのオブジェクト識別子格納領域１８３に、図２７に示したように、チャンク番号ｑ、ページ番号ｐ、オブジェクト型番号ｔ'からなるオブジェクト識別子OID(q,p,t')を格納する。また、HD DB９１は、セッション管理情報１８１のエントリＭのリードライトセッション番号格納領域１８４にセッション番号Ｚを格納し、さらに、オブジェクト状態格納領域１８９に作成を示す”CREATE”を記録する。
【０２０７】
ステップＳ２５６において、HD DB９１は、ストリームオブジェクトのサイズであるページ数ｇに等しいライトキャッシュ領域ｄをバッファ５６に確保する。ステップＳ２５７において、HD DB９１は、セッション管理情報１８１のエントリＭのライトキャッシュアドレス格納領域１９１に、確保したバッファ５６におけるライトキャッシュ領域ｄのアドレスを格納する。
【０２０８】
ステップＳ２５８において、HD DB９１は、バッファ５６に確保したライトキャッシュ領域ｄに、図２６（Ｂ）に示したオブジェクト基本第２型のストリームオブジェクトＸの記録を開始するが、その始めとして、ライトキャッシュ領域ｄのオブジェクト識別子記録領域２０１に、オブジェクト識別子OID(q,p,t')を記録する。ステップＳ２５９において、HD DB９１は、ストリームオブジェクトに対応する、HD FS９２によって作成されるコンテンツデータのファイル識別子Ｆ（このコンテンツデータが記録された一連のクラスタの先頭のクラスタ番号と同じ値）を取得する。ステップＳ２６０において、HD DB９１は、ライトキャッシュ領域ｄのファイル識別子記録領域１０３にファイル識別子Ｆを記録する。
【０２０９】
ステップＳ２６１において、HD DB９１は、作成するストリームオブジェクトの任意データ（例えば、作成するストリームオブジェクトの名称など）の取得を開始する。ステップＳ２６２において、HD DB９１は、任意データの取得が完了するまで待機する。なお、ステップＳ２６１およびＳ２６２の処理の間に、HD FS９２により、当該ストリームオブジェクトに対応するファイル識別子Ｆのコンテンツデータのファイルが作成されてファイル記録領域１２１に記録される。
【０２１０】
ステップＳ２６３において、HD DB９１は、ライトキャッシュ領域ｄの任意データ記録領域２０２に、取得した任意データを記録する。
【０２１１】
ステップＳ２６４において、HD DB９１は、ユーザの操作に対応する信号Ｉの入力を待つ。ステップＳ２６５において、HD DB９１は、信号Iがcommit、すなわち、セッション作成を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップＳ２６６に進む。ステップＳ２６６において、HD DB９１は、図３１を参照して上述したステップＳ１３２に処理と同様に、ライトセッションＺを確定する。
【０２１２】
反対に、ステップＳ２６５において、信号Iがcommitではないと判定された場合、処理はステップＳ２６７に進む。ステップＳ２６７において、HD DB９１は、図３２を参照して上述したステップＳ１３３に処理と同様に、ライトセッションＺを破棄する。ステップＳ２６８において、HD DB９１は、HD FS９２にファイルＦの削除を依頼する。以上、ストリームオブジェクトの作成処理の説明を終了する。
【０２１３】
次に、オブジェクト識別子OID＝Ｘであるストリームオブジェクト（以下、ストリームオブジェクトＸと記述する）を検索する処理について、図３７のフローチャートを参照して説明する。なお、セッションは既に開設されているものとする。
【０２１４】
ステップＳ２７１において、HD DB９１は、図３３を参照して上述したオブジェクトＸの検索処理と同様の処理を実行する。ステップＳ２７２において、ステップＳ２７１の処理で検索されたオブジェクトＸのオブジェクト識別子OID＝Ｘに含まれるオブジェクト型番号を取得する。取得したオブジェクト型番号をｔとする。さらに、HD DB９１は、オブジェクト型番号ｔに含まれるオブジェクト基本型番号を取得する。
【０２１５】
ステップＳ２７３において、HD DB９１は、検索されたオブジェクトＸの基本オブジェクト型番号が、基本オブジェクト第２型であるか否かを判定する。検索されたオブジェクトＸの基本オブジェクト型番号が基本オブジェクト第２型であると判定された場合、検索されたオブジェクトＸがストリームオブジェクトであるので、処理はステップＳ２７４に進む。ステップＳ２７４において、HD DB９１は、検索されたストリームオブジェクトＸのファイル識別子記録領域２０３からファイル識別子を読み取りHD FS９２に供給する。
【０２１６】
なお、ステップＳ２７１において、オブジェクト識別子OID＝Ｘのオブジェクトを検索できなかった場合、処理はステップＳ２７５に進む。また、ステップＳ２７３において、検索されたオブジェクトＸの基本オブジェクト型番号が基本オブジェクト第２型ではないと判定された場合も、処理はステップＳ２７５に進む。ステップＳ２７５において、HD DB９１は、エラー、すなわち、ストリームオブジェクトＸは存在しないと判断してストリームオブジェクト検索処理を終了する。
【０２１７】
次に、図３８は、オブジェクト記録領域１２２に記録されるオブジェクトのディレクトリ構造を示している。オブジェクト記録領域１２２には、ルート２１１の下、フォルダリストオブジェクト２１２、フォルダオブジェクト２１３、アルバムオブジェクト２１４、およびトラックオブジェクト２１５が階層構造をなしている。
【０２１８】
HD DB９１は、フォルダリストオブジェクト２１２の下に、複数のフォルダオブジェクト２１３を生成することができる。フォルダオブジェクト２１３の下には、複数のアルバムオブジェクト２１４を生成することができる。アルバムオブジェクト２１４の下には、複数のトラックオブジェクト２１５を生成することができる。トラックオブジェクト２１５は、１曲分のコンテンツデータに対応している。
【０２１９】
フォルダオブジェクト２１３、アルバムオブジェクト２１４、およびトラックオブジェクト２１５は、再生する楽曲を選択する際などにユーザに提示されるオブジェクトである。HD DB９１は、ユーザに提示されるオブジェクトではない他の情報のオブジェクト（ＣＣ(Content Control)オブジェクト２１６など）を、ルート２１１、フォルダリストオブジェクト２１２、またはフォルダオブジェクト２１３の下に生成することができる。
【０２２０】
さらに、HD DB９１は、フォルダリストオブジェクト２１２の下にフォルダオブジェクト２１３を生成した場合、同じフォルダリストオブジェクト２１２の下にフォルダオブジェクト２１３以外の他のオブジェクトを禁止する。また、フォルダオブジェクト２１３の下にアルバムオブジェクト２１４を生成した場合、同じフォルダオブジェクト２１３の下にアルバムオブジェクト２１４以外のオブジェクトを生成することを禁止する。また、アルバムオブジェクト２１４の下には、トラックオブジェクト２１５以外のオブジェクトを生成することを禁止する。
【０２２１】
各オブジェクトは、上述した規則に従って記録されるので、オブジェクト記録領域１２２には、フォルダ群２１７、アルバム群２１８、およびトラック群２１９が構築される。
【０２２２】
次に、各オブジェクトのデータフォーマットについて説明する。
【０２２３】
図３９は、フォルダリストオブジェクト２１２のデータフォーマットを示している。フォルダリストオブジェクト２１２は、図２６（Ａ）に示した基本オブジェクト第１型に属するので、オブジェクト識別子記録領域２０１、および任意データ記録領域２０２から構成される。フォルダリストオブジェクト２１２のオブジェクト識別子記録領域２０１には、４バイトのオブジェクト識別子OIDが記録される。
【０２２４】
フォルダリストオブジェクト２１２の任意データ記録領域２０２には、当該フォルダリストオブジェクト２１２の下に作成可能なフォルダオブジェクト２１３の最大値MAX（４バイト）、当該フォルダリストオブジェクト２１２の下に作成されているフォルダオブジェクト２１３の数Ｎ（４バイト）、および、当該フォルダリストオブジェクト２１２の下に作成されているフォルダオブジェクト２１３のＩＤの並びを示す４×１００バイトのFolderが記録される。フォルダリストオブジェクト２１２の任意データ記録領域２０２には、６１２バイトのリザーブが設けられている。
【０２２５】
図４０は、フォルダオブジェクト２１３のデータフォーマットを示している。フォルダオブジェクト２１３は、図２６（Ａ）に示した基本オブジェクト第１型に属するので、オブジェクト識別子記録領域２０１、および任意データ記録領域２０２から構成される。フォルダオブジェクト２１３のオブジェクト識別子記録領域２０１には、４バイトのオブジェクト識別子OIDが記録される。
【０２２６】
フォルダオブジェクト２１３の任意データ記録領域２０２には、当該フォルダオブジェクト２１３の下に作成可能なアルバムオブジェクト２１４の最大値MAX（４バイト）、当該フォルダオブジェクト２１３の下に作成されているアルバムオブジェクト２１４の数Ｎ（４バイト）、当該フォルダオブジェクト２１３の下に作成されているアルバムオブジェクト２１４のＩＤの並びを示す４×２００バイトのAlbum、および当該フォルダオブジェクト２１３のフォルダ名を示す３６バイトのTitleが記録される。フォルダオブジェクト２１３の任意データ記録領域２０２には、１７６バイトのリザーブが設けられている。
【０２２７】
図４１は、アルバムオブジェクト２１４のデータフォーマットを示している。アルバムオブジェクト２１４は、図２６（Ａ）に示した基本オブジェクト第１型に属するので、オブジェクト識別子記録領域２０１、および任意データ記録領域２０２から構成される。アルバムオブジェクト２１４のオブジェクト識別子記録領域２０１には、４バイトのオブジェクト識別子OIDが記録される。
【０２２８】
アルバムオブジェクト２１４の任意データ記録領域２０２には、当該アルバムオブジェクト２１４の下に作成可能なトラックオブジェクト２１５の最大値MAX（４バイト）、当該アルバムオブジェクト２１４の下に作成されているトラックオブジェクト２１５の数Ｎ（４バイト）、当該アルバムオブジェクト２１４の下に作成されているトラックオブジェクト２１５のＩＤの並びを示す４×４００バイトのTrack、当該アルバムオブジェクト２１４のタイトル名を示す５１６バイトのTitle、当該アルバムオブジェクト２１４のアーティスト名を示す２６０バイトのArtist、当該アルバムオブジェクト２１４の生成日時を示す８バイトのCreation Date、および当該アルバムオブジェクト２１４の元である音楽ＣＤ３のメディアキーを示す３２バイトのメディアキーが記録される。アルバムオブジェクト２１４の任意データ記録領域２０２には、１６６０バイトのリザーブが設けられている。
【０２２９】
図４２は、トラックオブジェクト２１５のデータフォーマットを示している。トラックオブジェクト２１５は、図２６（Ｂ）に示した基本オブジェクト第２型に属するので、オブジェクト識別子記録領域２０１、任意データ記録領域２０２、およびファイル識別子記録領域２０３から構成される。トラックオブジェクト２１５のオブジェクト識別子記録領域２０１には、４バイトのオブジェクト識別子OIDが記録される。トラックオブジェクト２１５のファイル識別子記録領域２０３には、１対１に対応するコンテンツデータ（ファイル記録領域１２１に記録されている）のファイル識別子を示す４バイトのSOIDが記録される。
【０２３０】
トラックオブジェクト２１５の任意データ記録領域２０２には、当該トラックオブジェクト２１５の曲名を示す５１６バイトのTitle、当該トラックオブジェクト２１５のアーティスト名を示す２６０バイトのArtist、当該アルバムオブジェクト２１４の再生時間を示す８バイトのTime、当該トラックオブジェクト２１５に対して最後にアクセスした日時を示す８バイトのLast Access Date、および当該トラックオブジェクト２１５の再生回数を示す４バイトのプレイカウンタ（ＰＣ）、当該トラックオブジェクト２１５の制作日時を示す８バイトのCreation Date、および当該トラックオブジェクト２１５に対応するコンテンツデータの曲属性と再生制御情報（著作権保護のための情報）を示す１２５４４バイトのＡＣが記録される。トラックオブジェクト２１５の任意データ記録領域２０２には、９８０バイトのリザーブが設けられている。
【０２３１】
図４３は、トラックオブジェクト２１５の任意データ記録領域２０２に記録される１２５５バイトのＡＣの詳細を示している。ＡＣには、コンテンツキ−を示す８バイトのCkey、コーデック識別値を示す１バイトのCodec、コーデック属性を示す１バイトのCodec Attr、再生制限情報を示す１バイトのＬＴ、正当性チェック用フラグを示す１バイトのVLD、チェックアウト先の個数を示す１バイトのLCMLOGNUM、コーデック依存情報を示す１６バイトのCDI、コンテンツシリアル番号を示す２０バイトのCID、再生許可開始日時を示す８バイトのPBS、再生許可終了日時を示す８バイトのPBE、拡張ＣＣを示す１バイトのXCC、再生回数の残りを示す１バイトのＣＴ、コンテンツ制御情報を示す１バイトのＣＣ、チェックアウト残り回数を示す１バイトのＣＮ、ソース情報を示す４０バイトのSRC、およびチェックアウト先の機器ＩＤとフラグを含む情報を示す４８×２５６バイトのLCMLOGが記録される。
【０２３２】
特に、コンテンツ制御情報を示す１バイトのＣＣは、MSB(Most Significant Bit)側からの１ビット目は、著作権の有無を示す（０：有、１：無）。MSB側からの２ビット目は、世代を示す（０：オリジナル、１：オリジナル以外）MSB側からの３，４ビット目は、不使用である。
【０２３３】
ＣＣのMSB側からの５乃至７ビット目が示す情報は、以下のとおりである。すなわち、ＣＣのMSB側からの５乃至７ビット目に０１０が記録されている場合、チェックアウト許可（エディットは許可）を示す。ＣＣのMSB側からの５乃至７ビット目に０１１が記録されている場合、ムーブ許可（ＰＤ５でのエディットは禁止）を示す。ＣＣのMSB側からの５乃至７ビット目に１００が記録されている場合、インポート許可（ＰＤ５でのエディットは許可）を示す。ＣＣのMSB側からの５乃至７ビット目に１１０が記録されている場合、インポート許可（ＰＤ５でのエディットは禁止）を示す。
【０２３４】
図４４は、トラックオブジェクト２１５と１対１で対応するコンテンツデータのデータフォーマットを示している。コンテンツデータは、ATRAC３ヘッダを示す１６キロバイトのAT3H、ATRAC３パーツを示す１６キロバイトのPRT、およびサウンドユニット列を示す各１６キロバイトのAT3SU-1乃至AT3SU-Nから構成される。
【０２３５】
図４５は、ＣＣオブジェクト２１６のデータフォーマットを示している。ＣＣオブジェクト２１６は、図２６（Ｂ）に示した基本オブジェクト第２型に属する。よって、ＣＣオブジェクト２１６は、オブジェクト識別子記録領域２０１、および任意データ記録領域２０２から構成される。ＣＣオブジェクト２１６のオブジェクト識別子記録領域２０１には、４バイトのオブジェクト識別子OIDが記録される。
【０２３６】
ＣＣオブジェクト２１６の任意データ記録領域２０２には、１６バイトのリザーブが設けられている。ＣＣオブジェクト２１６のファイル識別子記録領域２０３には、対応するＣＣデータ（ファイル記録領域１２１に記録される）のファイル識別子を示す４バイトのSOIDが記録される。
【０２３７】
図４６は、ファイル記録領域１２１に記録されるＣＣデータのフォーマットを示している。ＣＣデータには、１０キロバイトのCat Folder、２００キロバイトのCat Album、および６００キロバイトのCat Trackが含まれる。Cat Folderは、ユーザが選択するフォルダに対応するフォルダオブジェクト２１３のオブジェクト識別子OIDを示す情報が記録されている。Cat Albumには、ユーザが選択するアルバムに対応するアルバムオブジェクト２１４のオブジェクト識別子OIDを示す情報が記録されている。Cat Trackには、ユーザが選択するトラックに対応するトラックオブジェクト２１５のオブジェクト識別子OIDを示す情報が記録されている。
【０２３８】
したがって、例えば、再生時に、ユーザが再生させるトラックを選択すると、ＣＣデータのCat Trackに基づいて、選択されたトラックに対応するトラックオブジェクト２１５のオブジェクト識別子OIDが判明し、判明したトラックオブジェクト２１５から対応するファイル識別子が取得されて、コンテンツデータが読み出されて再生される。
【０２３９】
次に、オーディオサーバ１の各機能が実行される際のデータの流れと、ファームウェアとの対応について、図４７乃至図５６を参照して説明する。
【０２４０】
図４７は、ＣＤリッピングが実行される際のデータの流れを示している。音楽ＣＤ３を高速で録音するＣＤリッピングでは、CD MW８８の制御により、音楽ＣＤ３のディジタルオーディオデータは、CD-ROMドライブ５７によってCAV８倍速で読み出されて、バッファ５６にバッファリングされる。また、HD MW８２の制御により、バッファ５６にバッファリングされたディジタルオーディオデータは、ＷＭスクリーン６０−２に入力されてウォータマークが検出される。次に、HD MW８２の制御により、バッファ５６にバッファリングされていたディジタルオーディオデータは、エンコーダ５９によって平均５倍速でATRAC３方式によりエンコードされて暗号化され、得られた符号化データは、バッファ５６でバッファリングされた後、HDD５８に転送されて記録される。なお、図示は省略したが、ＣＤリッピングの最中には、録音されているディジタルオーディオデータに対応する音声がスピーカ２から出力される。
【０２４１】
図４８は、ＣＤレコーディングが実行される際のデータの流れを示している。音楽ＣＤ３を再生しながら録音するＣＤレコーディングでは、CD MW８８の制御により、音楽ＣＤ３のディジタルオーディオデータは、CD-ROMドライブ５７によってCAV８倍速で読み出されてバッファ５６にバッファリングされる。次に、HD MW８２の制御により、バッファ５６にバッファリングされていたディジタルオーディオデータは、エンコーダ５９によって平均５倍速でATRAC３方式によりエンコードされて暗号化され、得られた符号化データは、バッファ５６でバッファリングされた後、HDD５８に転送されて記録される。また、HD MW８２の制御により、バッファ５６にバッファリングされたオーディオデータは、ＷＭスクリーン６０−２に供給されてウォータマークが検出される。
【０２４２】
一方、モニタ音声のために、バッファリングされていたディジタルオーディオデータは、HD MW８２の制御により、HDD５８に設けられるリングバッファ２４１（図６１）に一時的に記録された後、読み出されてオーディオＩ／Ｆ６０−３に入力される。次に、AIO MW９４の制御により、ディジタルオーディオデータは、Ｄ／Ａ６２に転送されてアナログ化され、スピーカ２から対応する音声が出力される。
【０２４３】
なお、ＣＤリッピング、およびＣＤレコーディングの詳細については、図５７乃至図７０を参照して後述する。
【０２４４】
図４９は、ディジタル入力に対するＨＤレコーディングが実行される際のデータの流れを示している。ディジタル入力を符号化してHDD５８に記録するＨＤレコーディングでは、AIO MW９４の制御により、AUXイン端子３１から入力されるディジタルオーディオデータは、信号処理部６０を介してエンコーダ５９に供給される。次に、HD MW８２の制御により、ディジタルオーディオデータは、エンコーダ５９によってATRAC３方式に従ってエンコードされて暗号化され、得られた符号化データは、バッファ５６に転送された後、HDD５８に転送されて記録される。また、HD MW８２の制御により、信号処理部６０のＷＭスクリーン６０−２でウォータマークが検出される。さらに、AIO MW９４の制御により、信号処理部６０のオーディオＩ／Ｆ６０−３によってディジタルオーディオデータは、Ｄ／Ａ６２に転送されてアナログ化され、スピーカ２から出力される。
【０２４５】
図５０は、アナログ入力に対するＨＤレコーディングが実行される際のデータの流れを示している。アナログ入力を符号化してHDD５８に記録するＨＤレコーディングでは、AIO MW９４の制御により、AUXイン端子３１から入力されるアナログオーディオデータは、Ａ／Ｄ６２でディジタル化されてエンコーダ５９に供給される。次に、HD MW８２の制御により、ディジタルオーディオデータは、エンコーダ５９によってATRAC３方式によりエンコードされて暗号化され、得られた符号化データがバッファ５６に転送された後、HDD５８に転送されて記録される。また、HD MW８２の制御により、ＷＭスクリーン６０−２によって、Ａ／Ｄ６２のディジタル出力からウォータマークが検出される。さらに、AIO MW９４の制御により、AUXイン端子３１から入力されるアナログオーディオデータは、スピーカ２から出力される。
【０２４６】
図５１は、ＨＤプレイが実行される際のデータの流れを示している。HDD５８の符号化データを再生するＨＤプレイでは、HD MW８２の制御により、HDD５８から読み出された符号化データは、バッファ５６にバッファリングされた後、デコーダ５９によって復号、デコードされる。得られたディジタルオーディオデータは、バッファ５６にバッファリングされた後、オーディオＩ／Ｆ６０−３に転送される。次に、AIO MW９４の制御により、ディジタルオーディオデータは、オーディオＩ／Ｆ６０−３によってＤ／Ａ６２に転送されてアナログ化され、スピーカ２から出力される。
【０２４７】
図５２は、ＣＤプレイが実行される際のデータの流れを示している。音楽ＣＤ３を再生するＣＤプレイでは、CD MW８８の制御により、音楽ＣＤ３のディジタルオーディオデータは、CD-ROMドライブ５７によって読み出され、バッファ５６にバッファリングされた後、オーディオＩ／Ｆ６０−３に転送される。次に、AIO MW９４の制御により、ディジタルオーディオデータは、オーディオＩ／Ｆ６０−３によってＤ／Ａ６２に転送され、アナログ化されてスピーカ２から出力される。
【０２４８】
図５３は、ＭＳプレイが実行される際のデータの流れを示している。ＭＳ４の符号化データを再生するＭＳプレイでは、同図（Ａ）に示すように、MS MW８９の制御により、ＭＳ４の符号化データは、MGMS I/F６０−１に供給され、MGMS I/F６０−１によって相互認証の後に復号され、信号処理部６０が内蔵するデコーダによってデコードされる。次に、AIO MW９４の制御により、オーディオＩ／Ｆ６０−３によってデコードの結果得られたディジタルオーディオデータは、Ｄ／Ａ６２に転送され、アナログ化されてスピーカ２から出力される。
【０２４９】
または、同図（Ｂ）に示すように、MS MW８９の制御により、ＭＳ４から符号化データが読み出されてMGMS I/F６０−１に供給され、MGMS I/F６０−１が相互認証の後に復号する。複合された符号化データは、バッファ５６にバッファリングされ、デコーダ５９によってデコードされ、得られたディジタルオーディオデータは、バッファ５６を介してＤ／Ａ６２に出力される。次に、AIO MW９４の制御により、Ｄ／Ａ６２でアナログ化されたオーディオデータがスピーカ２から出力される。
【０２５０】
図５４は、ＭＳチェックアウト／ムーブアウトが実行される際のデータの流れを示している。HDD５８の符号化データをＭＳ４にコピーするＭＳチェックアウト、およびHDD５８の符号化データをＭＳ４に移動するムーブアウトでは、HD MW８２の制御により、HDD５８から読み出された符号化データは、バッファ５６にバッファリングされる。次に、MS MW８９の制御により、バッファリングされている符号化データがMGMS I/F６０−１に転送され、ＭＳ４に記録される。なお、チェックアウト、およびムーブアウトについては、後ほど詳述する。
【０２５１】
図５５は、ＭＳインポート／ムーブインが実行される際のデータの流れを示している。ＭＳ４の符号化データをHDD５８に移動するＭＳインポート／ムーブインでは、MS MW８９の制御により、ＭＳ４の符号化データがMGMS I/F６０−１を介してバッファ５６に転送される。次に、HD MW８２の制御により、バッファリングされている符号化データがHDD５８に転送されて記録される。なお、インポート／ムーブインについては、後ほど詳述する。
【０２５２】
図５６は、ＰＤチェックアウトが実行される際のデータの流れを示している。HDD５８の符号化データをＰＤ５にコピーするＰＤチェックアウトでは、HD MW８２の制御により、HDD５８から読み出された符号化データは、バッファ５６にバッファリングされた後、エンコーダ／デコーダ５９によって復号され、再び、ＰＤ５用に暗号化されて、バッファ５６にバッファリングされる。次に、PD MW９０の制御により、バッファリングされている符号化データが、USBホストコントローラ５４、およびUSBコネクタ４３を介してＰＤ５に記録される。
【０２５３】
次に、ＣＤリッピング、およびＣＤレコーディングの詳細について、図５７乃至図７０を参照して説明する。ＣＤリッピングの処理は、ユーザによってハイスピードレコーディングボタン２４が押下された場合に実行される処理である。ＣＤレコーディングの処理は、ユーザによってレコーディングボタン２３が押下された場合に実行される処理である。
【０２５４】
ＣＤリッピングとＣＤレコーディングの違いについて、図５７および図５８を参照して説明する。図５７（Ａ）は、ＣＤリッピングにおけるモニタ音声出力の期間を示している。図５７（Ｂ）は、ＣＤリッピングにおける録音の処理（符号化して記録する処理）の期間を示している。図５８（Ａ）は、ＣＤレコーディングにおけるモニタ音声出力の期間を示している。図５８（Ｂ）は、ＣＤレコーディングにおける録音の処理（符号化し、記録する処理）の期間を示している。
【０２５５】
図５７（Ｂ）と図５８（Ｂ）を比較して明らかなように、ＣＤリッピングとＣＤレコーディングでは、その録音の処理に要する合計時間は同じである。すなわち、音楽ＣＤ３のオーディオデータ（PCMデータ）をATRAC３方式によって符号化し、HDD５８に記録する処理は、オーディオデータの再生速度に対して平均５倍速で行われる。
【０２５６】
例えば、再生時間が１０分間である曲が６曲記録されていて総再生時間が６０分間である音楽ＣＤ３を、ＣＤリッピングまたはＣＤレコーディングによって、録音する場合、１曲当たり約２分間を要して順次録音される。
【０２５７】
ＣＤリッピングとＣＤレコーディングとの相違点は、モニタ音声出力の期間である。
【０２５８】
ＣＤリッピングの場合、モニタ音声出力は、対応するオーディオデータの録音処理が行われている期間だけ、モニタ音声が出力される。上述した音楽ＣＤ３の例では、第１曲目の先頭から約２分間の音声が通常の再生速度で出力され、次に、第２曲目の先頭から約２分間の音声が通常の速度で出力され、以降、各曲の先頭から約２分間の音声が通常の速度で出力される。したがって、録音処理の終了と同時に、モニタ音声出力も終了される。
【０２５９】
ＣＤレコーディングの場合、モニタ音声出力は、対応するオーディオデータの録音処理の進捗状況に関係なく、モニタ音声が出力される。上述した音楽ＣＤ３の例では、第１曲目の全ての音声が通常の再生速度で出力され、次に、第２曲目の全ての音声が通常の速度で出力され、以降、各曲の全ての音声が通常の速度で出力される。したがって、録音処理が終了しても、対応するオーディオデータのモニタ音声出力は最後の第６曲目の終わりまで継続される。
【０２６０】
なお、ＣＤリッピングとＣＤレコーディングは、その処理の途中において適宜切り替えることが可能である。
【０２６１】
次に、図５９は、ＣＤリッピングまたはＣＤレコーディングが実行される際のバッファ５６の状態を示している。バッファ５６には、音楽ＣＤ３から読み出された符号化される前のオーディオデータ（PCMデータ）をバッファリングするためのPCMデータ読み込みバッファ２３１と、エンコーダ／デコーダ５９によって符号化されて暗号化された符号化データをバッファリングするための符号化データバッファ２３２が設けられる。
【０２６２】
図６０は、バッファ５６に設けられるPCMデータ読み込みバッファ２３１、および符号化データバッファ２３２、並びにオーディオＩ／Ｆ６０−３に内蔵されるPCMデータ再生用バッファ２５１の状態遷移を示している。
PCMデータ読み込みバッファ２３１、符号化データバッファ２３２、およびPCMデータ再生用バッファ２５１は、それぞれ、初期の書き込み可能状態、データの書き込みが開始されると遷移する書き込み中状態、データの書き込みが終了すると遷移する読み出し可能状態、データの読み出しが開始されると遷移する読み出し中状態のいずれかの状態にある。なお、読み出し中状態から、データの読み出しが終了すると書き込み可能状態に戻る。
【０２６３】
次に、図６１は、ＣＤリッピングまたはＣＤレコーディングが実行される際、モニタ音声出力用のPCMデータをバッファリングするためにHDD５８に設けられるリングバッファ２４１の構造を示している。
【０２６４】
所定の容量（説明の便宜上、アドレス０乃至アドレスmaxとする）を有するリングバッファ２４１には、読み出し開始アドレスを示す読み出しポインタ２４２と、書き込み開始アドレスを示す書き込みポインタ２４３が設定される。リングバッファ２４１は、読み出しポインタ２４２が示すアドレスから順方向に書き込みポインタ２４３が示すアドレスまでの読み出し可能領域２４４と、書き込みポインタ２４３が示すアドレスから順方向に読み出しポインタ２４２が示すアドレスからまでの書き込み可能領域２４５に区分される。読み出し可能領域２４４の容量を、読み出しマージンと称する。書き込み可能領域２４５の容量を、書き込みマージンと称する。
【０２６５】
図６２は、ＣＤリッピングおよびＣＤレコーディングにおける各バッファ間のデータの流れを示している。音楽ＣＤ３のPCMデータは、CD-ROMドライブ５７によって読み出されてバッファ５６に設けられたPCMデータ読み込みバッファ２３１にバッファリングされる。PCMデータ読み込みバッファ２３１にバッファリングされたPCMデータは、エンコーダ／デコーダ５９に転送され、符号化されて暗号化される。得られた符号化データは、バッファ５６に設けられた符号化データバッファ２３２にバッファリングされる。符号化データバッファ２３２にバッファリングされた符号化データは、HDD５８に転送されて、ファイル記録領域１２１に記録される。
【０２６６】
一方、PCMデータ読み込みバッファ２３１にバッファリングされたPCMデータは、HDD５８に転送され、HDD５８に設けられたリングバッファ２４１にバッファリングされる。リングバッファ２４１にバッファリングされたPCMデータは、オーディオＩ／Ｆ６０−３に内蔵されたPCMデータ再生用バッファ２５１に転送されてバッファリングされた後、ＡＤ／ＤＡ６２によってアナログ化されてスピーカ２から出力される。
【０２６７】
次に、ＣＤリッピングおよびＣＤレコーディングに関する、録音速度設定処理について、図６３のフローチャートを参照して説明する。この録音速度設定処理は、音源として音楽ＣＤ３が選択されている間、すなわち、CD-ROMドライブ５７に音楽ＣＤ３が装着され、ファンクションボタン１２によってＣＤが選択されている間、繰り返して実行される。
【０２６８】
ステップＳ２８１において、インプットハンドルミドルウェア９７は、各種のボタンに対するユーザからの操作の監視を開始する。ステップＳ２８２において、インプットハンドルミドルウェア９７は、各種のボタンに対するユーザからの操作があるまで待機し、各種のボタンに対するユーザからの操作があったと判定された場合、その情報をメインAPP７６に通知する。メインAPP７６は、レコードボタン２３に対する操作であるか否かを判定する。レコードボタン２３に対する操作であると判定された場合、処理はステップＳ２８３に進む。
【０２６９】
ステップＳ２８３において、メインAPP７６は、レコードボタン２３が操作されたことをHD APP７７に通知する。HD APP７７は、レコードボタン２３が操作されたことを、HD MW８２のCD RIPPING８４に伝達する。CD RIPPING８４は、自己がSDRAM５３などに設けるハイスピード録音フラグをオフに設定する。処理はステップＳ２８１に戻る。
【０２７０】
ステップＳ２８２において、各種のボタンに対するユーザからの操作があったと判定され、それがレコードボタン２３に対する操作ではないと判定された場合、処理はステップＳ２８４に進む。ステップＳ２８４において、メインAPP７６は、ハイスピードレコードボタン２４に対する操作であるか否かを判定する。ハイスピードレコードボタン２４に対する操作であると判定された場合、処理はステップＳ２８５に進む。
【０２７１】
ステップＳ２８５において、メインAPP７６は、ハイスピードレコードボタン２４が操作されたことをHD APP７７に通知する。HD APP７７は、ハイスピードレコードボタン２４が操作されたことを、HD MW８２のCD RIPPING８４に伝達する。CD RIPPING８４は、ハイスピード録音フラグをオンに設定する。処理はステップＳ２８１に戻る。
【０２７２】
ステップＳ２８４において、ハイスピードレコードボタン２４に対する操作ではないと判定された場合、処理はステップＳ２８１に戻る。
【０２７３】
以上説明した録音速度設定処理により、ハイスピードレコードボタン２４が操作され、ハイスピード録音フラグがオンとされた場合には、図５７に示したようなＣＤリッピングが実行される。反対に、レコードボタン２３が操作され、ハイスピード録音フラグがオフとされた場合には、図５８に示したようなＣＤレコーディングが実行される。なお、ＣＤリッピングからＣＤレコーディングへの切替や、逆にＣＤレコーディングからＣＤリッピングへの切替は、ユーザのボタン操作に対応して任意のタイミングで行うことができる。
【０２７４】
次に、ＣＤ録音処理について、図６４にフローチャートを参照して説明する。このＣＤ録音処理は、HD MW８２に含まれるCD RIPPING８４によって制御される処理であり、音楽ＣＤ３が装着され、ファンクションボタン１２が操作されて、音源がＣＤに設定された後、レコードボタン２３、またはハイスピードボタン２４が操作されたときに開始される。
【０２７５】
ステップＳ２９１において、ユーザは、レコードボタン２３またはハイスピードボタン２４が操作されたことによって録音一時停止状態にある間、音楽ＣＤ３の中から録音する曲を選曲する。具体的には、カーソルボタン１７を操作して、音楽ＣＤ３に記録されている曲のなかから選曲し、エンタボタン２０を操作して選曲を確定する。この一連の操作を繰り返すことにより、録音する曲を全て選曲する。なお、特に選曲の操作が行われない場合、音楽ＣＤ３に記録されている全ての曲が選曲されたことになる。
【０２７６】
ユーザは、選曲が完了した段階で、再生／一時停止ボタン２６を操作する。処理はステップＳ２９２に進む。
【０２７７】
ステップＳ２９２において、CD RIPPING８４は、リングバッファ２４１に設定する読み出しポインタ２４２が示す読み出し開始アドレスなどの情報からなるリングバッファ情報を初期化する。このリングバッファ情報初期化処理について、図６５のフローチャートを参照して説明する。ステップＳ３０１において、CD RIPPING８４は、読み出しポインタ２４２が示す読み出し開始アドレス、および書き込みポインタ２４３が示す書き込み開始アドレスをリングバッファ２４１のアドレス０に設定する。さらに、リングバッファ２４１の読み出しマージンを０に設定し、書き込みマージンをその最大値maxに設定する。以上、リングバッファ情報初期化処理の説明を終了する。
【０２７８】
図６４に戻る。ステップＳ２９３において、CD RIPPING８４は、ステップＳ２９１で選曲されたうちの１曲を順次選択して、１曲分の録音処理を実行する。１曲分の録音処理について、図６６のフローチャートを参照して説明する。ステップＳ３１１において、CD RIPPING８４は、CD MW８８に依頼することにより、音楽ＣＤ３の録音する曲のPCMデータを所定のデータ量（例えば、２秒間分）ずつ、書き込み可能状態にあるPCMデータ読み込みバッファ２３１にバッファリングさせる。所定のデータ量のPCMデータの書き込み（バッファリング）が終了した場合、PCMデータ読み込みバッファ２３１の状態は読み出し可能状態に遷移する。
【０２７９】
ステップＳ３１２において、CD RIPPING８４は、エンコーダ／デコーダ５９に対して、PCMデータ読み込みバッファ２３１にバッファリングされている所定のデータ量のPCMデータをエンコードさせる（符号化して暗号化させる）。PCMデータ読み込みバッファ２３１からの所定のデータ量のPCMデータの読み出しが終了した場合、PCMデータ読み込みバッファ２３１の状態は書き込み可能状態に遷移する。
【０２８０】
また、CD RIPPING８４は、モニタ音声出力処理を開始する。モニタ音声出力処理については、図６７を参照して後述する。
【０２８１】
ステップＳ３１３において、CD RIPPING８４は、エンコードよって得られた所定のデータ量の符号化データを、バッファ５６の書き込み可能状態にある符号化データバッファ２３２にバッファリングさせる。所定のデータ量（例えば、２秒間分）の符号化データの書き込み（バッファリング）が終了した場合、符号化データバッファ２３２の状態は読み出し可能状態に遷移する。
【０２８２】
ステップＳ３１４において、CD RIPPING８４は、符号化データバッファ２３２にバッファリングされている所定のデータ量の符号化データを、HDD５８のファイル記録領域１２１に記録させる。なお、所定のデータ量ずつ符号化データをファイル記録領域１２１に記録させる処理は、図１４を参照して上述したファイル作成処理に相当する。また、図２８を参照して上述したオブジェクト作成処理も行われる。
【０２８３】
ステップＳ３１５において、CD RIPPING８４は、１曲分の符号化データが記録されたか否かを判定する。１曲分の符号化データが記録されていないと判定された場合、処理はステップＳ３１１に戻り、以降の処理が繰り返される。その後、ステップＳ３１５において、１曲分の符号化データが記録されたと判定された場合、当該１曲分の録音処理は終了される。
【０２８４】
以上説明したようにして１曲分の録音処理が実行された後、処理は図６４のステップＳ２９４に戻る。ステップＳ２９４において、CD RIPPING８４は、ステップＳ２９１で選曲された全ての曲が録音されたか否かを判定する。選曲された全ての曲が録音されていないと判定された場合、処理は２９３に戻り、次の曲に対する１曲分の録音処理が行われる。
【０２８５】
その後、ステップＳ２９４において、選曲された全ての曲が録音されたと判定された場合、このＣＤ録音処理は終了させる。
【０２８６】
ここで、ステップＳ３１２において開始されたモニタ音声出力処理について、図６７のフローチャートを参照して説明する。ステップＳ３２１において、CD RIPPING８４は、ハイスピード録音フラグがオンであるか否かを判定する。ハイスピード録音フラグがオンであると判定された場合、処理は３２２に進む。
【０２８７】
ステップＳ３２２において、CD RIPPING８４は、対応するPCMデータに対する１曲分の録音処理が終了しているか否かを判定する。対応するPCMデータに対する１曲分の録音処理が終了していないと判定された場合、１曲分の録音処理が実行中のPCMデータのモニタ音声を出力するために、処理はステップＳ３２３に進む。
【０２８８】
ステップＳ３２３において、CD RIPPING８４は、リンクバッファ２４１に対するPCMデータ読み込みバッファ２３１にバッファリングされているPCMデータの書き込み処理を開始する。ステップＳ３２３の処理の終了を待つことなく、ステップＳ３２４において、CD RIPPING８４は、リンクバッファ２４１に記録されたPCMデータの読み出し処理を開始する。
【０２８９】
ステップＳ３２３におけるリングバッファ２４１に対する書き込み処理について、図６８のフローチャートを参照して説明する。
【０２９０】
ステップＳ３３１において、CD RIPPING８４は、ハイスピード録音フラグがオンであるか否かを判定する。ハイスピード録音フラグがオンであると判定された場合、処理は３３２に進む。ステップＳ３３２において、CD RIPPING８４は、図６５を参照して上述したリングバッファ情報初期化処理を実行する。
【０２９１】
ステップＳ３３３において、CD RIPPING８４は、リンクバッファ情報の書き込みポインタ２４３が示す書き込み開始アドレス以降の書き込み可能領域２４５に、PCMデータ読み込みバッファ２３１に記録されているPCMデータの書き込みを開始する。ステップＳ３３４において、CD RIPPING８４は、ステップＳ３３３で書き込んだPCMデータの分だけ、リンクバッファ情報に含まれる書き込みポインタ２４３が示す書き込み開始アドレスの値を順方向に進め、それに対応して、書き込みマージンおよび読み出しマージンの値を更新する。
【０２９２】
なお、ステップＳ３３１において、ハイスピード録音フラグがオンではないと判定された場合、処理は３３５に進む。ステップＳ３３５において、CD RIPPING８４は、リングバッファ情報を参照することにより、PCMデータ読み込みバッファ２３１に記録されているPCMデータのサイズは、リングバッファ２４１の書き込みマージン以下であるか否かを判定する。PCMデータ読み込みバッファ２３１に記録されているPCMデータのサイズが、リングバッファ２４１の書き込みマージン以下であると判定された場合、処理はステップＳ３３３に進む。
【０２９３】
なお、ステップＳ３３５において、PCMデータ読み込みバッファ２３１に記録されているPCMデータのサイズが、リングバッファ２４１の書き込みマージン以下ではないと判定された場合、処理はステップＳ３３１に戻り、その後、録音速度の設定がユーザによって変更させることにより、ステップＳ３３１において、ハイスピード録音フラグがオンであると判定されるか、または、リングバッファ２４１の書き込みマージンが増加することにより、ステップＳ３３５において、PCMデータ読み込みバッファ２３１に記録されているPCMデータのサイズが、リングバッファ２４１の書き込みマージン以下ではないと判定されるまで、ステップＳ３３１、およびステップＳ３３５の処理が繰り返される。以上、リングバッファ２４１に対する書き込み処理の説明を終了する。
【０２９４】
ステップＳ３２４におけるリングバッファ２４１からの読み出し処理について、図６９のフローチャートを参照して説明する。ステップＳ３４１において、CD RIPPING８４は、オーディオＩ／Ｆ６０−３に内蔵されるPCMデータ再生用バッファ２５１が書き込み可能状態であるか否かを判定し、PCMデータ再生用バッファが書き込み可能状態であると判定するまで待機する。PCMデータ再生用バッファが書き込み可能状態であると判定された場合、処理はステップＳ３４２に進む。
【０２９５】
ステップＳ３４２において、CD RIPPING８４は、リングバッファ２４１の読み出しポインタ２４２が示す読み出し開始アドレスに従い、リングバッファ２４１の読み出し可能領域２４４に記録されているPCMデータを読み出して、PCMデータ再生用バッファ２５１に書き込ませる。
【０２９６】
ステップＳ３４３において、CD RIPPING８４は、ステップＳ３４２で読み出したPCMデータの分だけ、リンクバッファ情報に含まれる読み出しポインタ２４２が示す読み出し開始アドレスの値を順方向に進め、それに対応して、書き込みマージンおよび読み出しマージンの値を更新する。
【０２９７】
ステップＳ３４４において、CD RIPPING８４は、PCMデータ再生用バッファ２５１を読み出し可能状態に遷移させる。以上、リングバッファ２４１からの読み出し処理の説明を終了する。
【０２９８】
図６７に戻る。ステップＳ３２５において、AIO MW９４は、PCMデータ再生用バッファ２５１にバッファリングされているPCMデータを、ＡＤ／ＤＡ６２に出力させる。ＡＤ／ＤＡ６２は、入力されたPCMデータの再生を開始して対応する音声をスピーカ２から出力させる。
【０２９９】
ステップＳ３２６において、CD RIPPING８４は、１曲分のPCMデータの再生が終了したか否かを判定する。１曲分のPCMデータの再生が終了していないと判定された場合、処理はステップＳ３２１に戻り、以降の処理が繰り返され、ステップＳ３２６において、１曲分のPCMデータの再生が終了していないと判定された場合、モニタ音声出力処理は終了される。
【０３００】
なお、ステップＳ３２２において、対応するPCMデータに対する１曲分の録音処理が終了していると判定された場合、このモニタ音声出力処理は直ちに中止される。以上、ＣＤ録音処理の説明を終了する。
【０３０１】
なお、ＣＤ録音処理の過程においては、ユーザのレコーディングボタン２３またはハイスピードレコーディングボタン２４に対する操作に対応し、任意のタイミングで、ＣＤリッピングからＣＤレコーディングへ、逆にＣＤレコーディングからＣＤリッピングへ切り替えることができる。
【０３０２】
ここで、ＣＤリッピングが実行されるときのディスプレイ１５の表示例を図７０に示す。図７０（Ａ）は、録音が開始される直前に表示される、録音設定に関する情報の表示例である。このとき、ディスプレイ１５には、表示エリア２６１乃至２６７が設けられる。この表示例において、表示エリア２６１には、録音元と録音先を示す情報が表示される。表示エリア２６２には、録音設定に関する情報が表示されている旨が表示される。表示エリア２６３には、保存場所を示すフォルダ名が表示される。表示エリア２６４には、録音するアルバムのアルバム名とアーティスト名が表示される。表示エリア２６５には、録音時のビットレートが表示される。表示エリア２６６には、録音時の録音レベルが表示される。表示エリア２６７には、再生／一時停止ボタン２６を押下すれば録音が開始される旨が表示される。録音時の録音レベルが表示される。
【０３０３】
図７０（Ｂ）は、録音が実行されている最中の表示例である。このとき、ディスプレイ１５には、表示エリア２７１乃至２７８が設けられる。この表示例において、表示エリア２７１には、録音元と録音先を示す情報が表示される。表示エリア２７２には、ＣＤリッピング中であることを示す文字「高速録音中」が点滅表示される。表示エリア２７３には、録音中の曲のアルバム名、およびアーティスト名が表示される。表示エリア２７４には、録音中の曲の音楽ＣＤ３における曲番号が表示される。表示エリア２７５には、録音中の曲の再生経過時間が表示される。表示エリア２７６には、音楽ＣＤ３の再生残り時間が表示される。表示エリア２７７には、録音する総曲数に対する録音の進捗状況に比例して長さが変化するプログレスバー２７９が表示される。表示エリア２７８には、録音する曲の総数と、録音済または録音中の曲の数を示している。
【０３０４】
例えば、再生時間が６０分間であるアルバムの全曲をＣＤリッピングしている場合、録音は約５倍速で行われるので、表示エリア２７７に表示されるプログレスバー２７９の長さは、録音の開始時から徐々に長くなり、約１２分間で表示エリア２７７の全体を占める長さとなる。
【０３０５】
なお、表示エリア２７７のプログレスバー２７９の長さを、録音の進捗状況に合わせるのではなく、曲の再生経過時間に比例させて伸長させるようにしてもよい。
【０３０６】
次に、HDD５８に記録したコンテンツデータを再生する方法について、図７１乃至図７７を参照して説明する。上述したように、オーディオサーバ１では、音楽ＣＤ３に記録されている曲をエンコードし、コンテンツデータをファイルとしてHDD５８に記録しているが、再生する曲を指定させる場合には、ファイルではなく、階層構造をなすフォルダ、アルバム、およびトラックのオブジェクトを、ユーザに指定させる。
【０３０７】
HDD全体、任意のフォルダ、または任意のアルバムを再生エリアとして指定することにより、複数の曲を一括して再生する曲に指定することもできる。曲の再生は、指定された再生エリアに基づいて作成されるプレイリストに含まれるトラックに対応するコンテンツデータがデコードされることによって実現される。
【０３０８】
図７１は、再生エリアの一例を示している。破線２８１で囲まれたHDD全体が再生エリアに指定された場合、図７２に示すように、プレイリストには、HDD５８のなかの全てのトラック番号が登録される。
【０３０９】
破線２８２で囲まれたマイセレクトフォルダＦ１が再生エリアに指定された場合、図７３に示すように、プレイリストには、マイセレクトフォルダＦ１に属する全てのアルバムのアルバム番号が登録される。
【０３１０】
破線２８３に囲まれたマイセレクトフォルダＦ１のアルバムＡ１が再生エリアに指定された場合、図７４に示すように、プレイリストには、マイセレクトフォルダＦ１のアルバムＡ１に属する全てのトラックのトラック番号が登録される。
【０３１１】
テンポラリフォルダＦ２に属するアルバムＡ１のトラックＴ１が再生する曲に指定された場合、図７５に示すように、プレイリストには、テンポラリフォルダＦ２に属するアルバムＡ１のトラックＴ１が登録される。
【０３１２】
次に、指定された再生エリアに対応するプレイリストを作成する処理について、図７６のフローチャートを参照して説明する。
【０３１３】
このプレイリスト作成処理は、HD MW８２に含まれるHD PLAY８５によって制御される処理であり、ファンクションボタン１２が操作されて、音源がＨＤＤに設定されたときに開始される。
【０３１４】
ステップＳ３５１において、HD PLAY８５は、ユーザによって選択されている再生エリアを示すオブジェクトの階層が、HDD全体であるか否かを判定する。選択されているオブジェクトの階層がHDD全体ではないと判定された場合、処理はステップＳ３５２に進む。なお、ユーザが再生エリアを選択する方法は、リモートコントローラ７に設けられた再生エリア切り替えボタン（不図示）を操作するか、または、蓋４０に設けられたカーソルボタン１７、エンタボタン２０、およびメニュー／キャンセルボタン２１などを所定の順序で押下するかによって行われる。
【０３１５】
ステップＳ３５２において、HD PLAY８５は、ユーザによって選択されているオブジェクトの階層がフォルダであるか否かを判定する。選択されているオブジェクトの階層がフォルダではないと判定された場合、処理はステップＳ３５３に進む。
【０３１６】
ステップＳ３５３において、HD PLAY８５は、ユーザによって選択されているオブジェクトの階層がアルバムであると判定して、ステップＳ３５４に進む。
【０３１７】
ステップＳ３５４において、HD PLAY８５は、再生／一時停止ボタン２６が操作されたか否かを判定する。再生／一時停止ボタン２６が操作されたと判定された場合、処理はステップＳ３５５に進む。ステップＳ３５５において、HD PLAY８５は、選択されているオブジェクトの階層に対応するプレイリストが既成されているか否かを判定し、既成されていないと判定した場合、ステップＳ３５６に進む。なお、既成されていると判定された場合には、ステップＳ３５６はスキップされる。
【０３１８】
ステップＳ３５６において、HD PLAY８５は、選択されているオブジェクトの階層に対応してプレイリストを作成する。
【０３１９】
なお、ステップＳ３５４において、再生／一時停止ボタン２６が操作されていないと判定された場合、処理はステップＳ３５１に戻り、以降の処理が繰り返される。
【０３２０】
また、ステップＳ３５１において、選択されているオブジェクトの階層がHDD全体であると判定された場合、または、ステップＳ３５２において、選択されているオブジェクトの階層がフォルダであると判定された場合、処理はステップＳ３５４に進む。以上、プレイリスト作成処理の説明を終了する。
【０３２１】
なお、想定される様々な再生エリアに対応する複数のプレイリストを予め作成して、所定の場所に記録するようにし、ユーザによって再生エリアが指定された段階で、予め作成されて記録されているプレイリストのうち、対応するものを読み出すようにしてもよい。
【０３２２】
次に、上述したプレイリスト作成処理の終了に続けて実行される再生処理について、プレイモードが全曲リピートに設定されている場合を例に、図７７のフローチャートを参照して説明する。
【０３２３】
ステップＳ３６１において、HD PLAY８５は、停止ボタン２５が操作されることにより、再生の終了が指示されたか否かを判定する。再生の終了が指示されていないと判定された場合、処理はステップＳ３６２に進む。ステップＳ３６２において、HD PLAY８５は、プレイリストに含まれる全てのトラックのうち、順次１トラックずつ再生トラックに指定する。
【０３２４】
ステップＳ３６３において、HD PLAY８５は再生トラックに対応するコンテンツデータを再生する。具体的には、再生トラックに対応するトラックオブジェクトがＣＣデータに基づいて特定され、特定されたトラックオブジェクトのファイル識別子記録領域２０３の値に基づいて対応するコンテンツデータのファイル識別子が特定され、特定されたファイル識別子（＝ファイル記録領域１２１のクラスタ番号）に基づいてコンテンツデータが読み出される。次に、読み出されたコンテンツデータがデコードされて出力される。
【０３２５】
再生トラックに対応するコンテンツデータの再生が終了した後、処理はステップＳ３６１に戻り、以降の処理が繰り返される。その後、ステップＳ３６１において、停止ボタン２５が操作されることにより、再生の終了が指示されたと判定された場合、再生モードが全曲リピートである場合の再生処理が終了される。
【０３２６】
なお、全曲リピート以外の再生モードにおいては、再生エリアと再生トラックの指定の方法が異なるだけであり、その処理の手順は同様である。
【０３２７】
次に、オーディオサーバ１のHDD５８に記録されているコンテンツデータを、ＭＳ４にムーブアウトする処理について、図７８乃至図８１を参照して説明する。
【０３２８】
ここで、HDD５８に記録されているコンテンツデータをＭＳ４にムーブアウトする処理とは、HDD５８に記録されているコンテンツデータをＭＳ４にコピーした後、HDD５８に記録されていたコンテンツデータを削除する一連の処理である。
【０３２９】
ムーブアウト処理について、図７８のフローチャートを参照して説明する。なお、ムーブアウト処理は、HD MW８２のC IN/C OUT８７によって制御される。
【０３３０】
このムーブアウト処理は、ＭＳスロット４５にＭＳ４が挿入されている状態で、ユーザがメニュー／キャンセルボタン２１を操作してメニューを表示させ、カーソルボタン１７を操作して「編集」を選択した後、エンタボタン２０を操作して編集メニューを表示させ、カーソルボタン１７を操作して「ムーブアウト」を選択した後、エンタボタン２０を操作し、さらに、カーソルボタン１７とセレクトボタン１８を操作して、ムーブアウトするトラックを選択した後、エンタキー２０を操作してムーブアウトするトラックのリストを表示させ、さらにエンタキー２０を操作したときに開始される。
【０３３１】
ステップＳ３７１において、MS MW８９は、C IN/C OUT８７に依頼して、HDD５８に記録されているムーブアウトするコンテンツデータを、権利無効データ（再生不可能なデータ）としてＭＳ４にコピーする。なお、権利無効データとするには、コンテンツデータの属性情報に含まれる、権利の有無を示すフラグをオフとする。
【０３３２】
ステップＳ３７２において、C IN/C OUT８７は、ムーブアウト処理を開始したことを示すムーブアウト履歴情報を生成してHDD５８に記録する。ムーブアウト履歴情報には、ムーブアウトされるトラックを特定する情報が含まれる。ステップＳ３７３において、C IN/C OUT８７は、HDD５８に記録されているコンテンツデータの権利の有無を示すフラグをオフとして、HDD５８のコンテンツデータを権利無効データとする。
【０３３３】
ステップＳ３７４において、MS MW８９は、ＭＳ４にコピーされたコンテンツデータの権利の有無を示すフラグをオンとして、ＭＳ４のコンテンツデータを権利有効データとする。
【０３３４】
ステップＳ３７５において、C IN/C OUT８７は、HDD５８に記録されているコンテンツデータを削除する。ステップＳ３７６において、C IN/C OUT８７は、ステップＳ３７２の処理で作成したムーブアウト履歴情報を削除する。
【０３３５】
以上説明したステップＳ３７１乃至Ｓ３７６の処理が１トラックに対応する１コンテンツデータのムーブアウト処理であり、選択された全てのトラックに対して、ステップＳ３７１乃至Ｓ３７６の処理が施される。
【０３３６】
なお、ムーブアウト処理の途中で電源が遮断するなどしてムーブアウト処理が中断された場合、それを補償するために電源復帰後に復帰処理が実行させる。なお、復帰処理については、図８６乃至図８８を参照して後述する。
【０３３７】
図７９は、ムーブアウト処理の状態遷移を示している。状態１は、ムーブアウト処理が開始される前の状態である。すなわち、オーディオサーバ１のHDD５８にコンテンツデータが記録されており、HDD５８のコンテンツデータが権利有効である状態を示している。
【０３３８】
状態２は、ステップＳ３７１の処理が行われた後の状態である。すなわち、オーディオサーバ１のHDD５８に記録されているコンテンツデータがＭＳ４にコピーされることによって、HDD５８とＭＳ４の双方にコンテンツデータが記録されている状態であって、かつ、HDD５８のコンテンツデータが権利有効であって、ＭＳ４のコンテンツデータが権利無効である状態を示している。
【０３３９】
状態３は、ステップＳ３７３の処理が行われた後の状態である。すなわち、HDD５８とＭＳ４の双方にコンテンツデータが記録されている状態であって、かつ、HDD５８のコンテンツデータと、ＭＳ４のコンテンツデータが権利無効である状態を示している。
【０３４０】
状態４は、ステップＳ３７４の処理が行われた後の状態である。すなわち、HDD５８とＭＳ４の双方にコンテンツデータが記録されている状態であって、かつ、HDD５８のコンテンツデータが権利無効であって、ＭＳ４のコンテンツデータが権利有効である状態を示している。
【０３４１】
状態５は、ステップＳ３７５の処理が行われた後の状態である。すなわち、HDD５８のコンテンツデータが消去されることによって、ＭＳ４だけにコンテンツデータが記録されている状態であって、ＭＳ４のコンテンツデータが権利有効である状態を示している。
【０３４２】
図８０は、ムーブアウトするトラックを選択するときのディスプレイ１５の表示例を示している。ディスプレイ１５にはムーブアウト可能な曲だけが表示される。
【０３４３】
図８１は、ムーブアウト処理が行われている最中のディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア２９１には、ムーブアウト処理が実行中であることを示す文字”Move out”が点滅表示される。ムーブアウトが完了したトラックの横には、チェックマーク２９２が表示される。表示エリア２９３には、ムーブアウト処理の進捗状況を示す情報（ムーブアウト中またはムーブアウトが完了したトラックの数／ムーブアウトするトラックの総数）が表示される。
【０３４４】
次に、ＭＳ４に記録されているコンテンツデータを、オーディオサーバ１のHDD５８にムーブインする処理について、図８２乃至図８１を参照して説明する。
【０３４５】
ここで、ＭＳ４に記録されているコンテンツデータをHDD５８にムーブインする処理とは、ＭＳ４に記録されているコンテンツデータをHDD５８にコピーした後、ＭＳ４に記録されていたコンテンツデータを削除する一連の処理である。
【０３４６】
ムーブイン処理について、図８２のフローチャートを参照して説明する。なお、ムーブイン処理は、HD MW８２のC IN/C OUT８７によって制御される。
【０３４７】
このムーブイン処理は、ＭＳスロット４５にＭＳ４が挿入されている状態で、ユーザがメニュー／キャンセルボタン２１を操作してメニューを表示させ、カーソルボタン１７を操作して「編集」を選択した後、エンタボタン２０を操作して編集メニューを表示させ、カーソルボタン１７を操作して「ムーブイン」を選択した後、エンタボタン２０を操作し、さらに、カーソルボタン１７とセレクトボタン１８を操作して、ＭＳ４に記録されているコンテンツデータの中からムーブインするコンテンツデータを選択した後、エンタキー２０を操作してムーブインするコンテンツデータのリストを表示させ、さらにエンタキー２０を操作した後に再生／一時停止ボタン２６を操作したときに開始される。
【０３４８】
ステップＳ３８１において、MS MW８９は、C IN/C OUT８７に依頼して、ＭＳ４に記録されているムーブインするコンテンツデータを、権利無効データとしてHDD５８にコピーする。
【０３４９】
ステップＳ３８２において、C IN/C OUT８７は、ムーブイン処理を開始したことを示すムーブイン履歴情報を生成してHDD５８に記録する。ムーブイン履歴情報には、ムーブインされるコンテンツデータを特定する情報が含まれる。ステップＳ３８３において、MS MW８９は、ＭＳ４に記録されているコンテンツデータの権利の有無を示すフラグをオフとして、ＭＳ４のコンテンツデータを権利無効データとする。
【０３５０】
ステップＳ３８４において、C IN/C OUT８７は、HDD５８にコピーされたコンテンツデータの権利の有無を示すフラグをオンとして、HDD５８のコンテンツデータを権利有効データとする。
【０３５１】
ステップＳ３８５において、C IN/C OUT８７は、MS MW８９に依頼して、ＭＳ４に記録されているコンテンツデータを削除する。ステップＳ３８６において、C IN/C OUT８７は、ステップＳ３８２の処理で作成したムーブイン履歴情報を削除する。
【０３５２】
以上説明したステップＳ３８１乃至Ｓ３８６の処理が１トラックに対応する１コンテンツデータのムーブイン処理であり、選択された全てのトラックに対して、ステップＳ３８１乃至Ｓ３８６の処理が施される。
【０３５３】
なお、ムーブイン処理の途中で電源が遮断するなどしてムーブイン処理が中断された場合、それを補償するために、電源復帰後に復帰処理が実行される。
【０３５４】
図８３は、ムーブイン処理の状態遷移を示している。状態１１は、ムーブイン処理が開始される前の状態である。すなわち、ＭＳ４にコンテンツデータが記録されており、ＭＳ４のコンテンツデータが権利有効である状態を示している。
【０３５５】
状態１２は、ステップＳ３８１の処理が行われた後の状態である。すなわち、ＭＳ４に記録されているコンテンツデータがHDD５８にコピーされることによって、ＭＳ４とHDD５８の双方にコンテンツデータが記録されている状態であって、かつ、ＭＳ４のコンテンツデータが権利有効であって、HDD５８のコンテンツデータが権利無効である状態を示している。
【０３５６】
状態１２は、ステップＳ３８１の処理が行われた後の状態である。すなわち、ＭＳ４に記録されているコンテンツデータがHDD５８にコピーされることによって、ＭＳ４とHDD５８の双方にコンテンツデータが記録されている状態であって、かつ、ＭＳ４のコンテンツデータが権利有効であって、HDD５８のコンテンツデータが権利無効である状態を示している。
【０３５７】
状態１３は、ステップＳ３８３の処理が行われた後の状態である。すなわち、ＭＳ４とHDD５８の双方にコンテンツデータが記録されている状態であって、かつ、ＭＳ４のコンテンツデータと、HDD５８のコンテンツデータが権利無効である状態を示している。
【０３５８】
状態１４は、ステップＳ３８４の処理が行われた後の状態である。すなわち、ＭＳ４とHDD５８の双方にコンテンツデータが記録されている状態であって、かつ、ＭＳ４のコンテンツデータが権利無効であって、HDD５８のコンテンツデータが権利有効である状態を示している。
【０３５９】
状態１５は、ステップＳ３８５の処理が行われた後の状態である。すなわち、ＭＳ４のコンテンツデータが消去されることによって、HDD５８だけにコンテンツデータが記録されている状態であって、HDD５８のコンテンツデータが権利有効である状態を示している。
【０３６０】
図８４は、ムーブインするコンテンツデータを選択するときのディスプレイ１５の表示例を示している。ディスプレイ１５にはＭＳ４に記録されているコンテンツデータのうち、ムーブアウト可能なコンテンツデータだけが表示される。
【０３６１】
図８１は、ムーブイン処理が行われている最中のディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア３０１には、ムーブイン処理が実行中であることを示す文字”Move in”が点滅表示される。ムーブインが完了したコンテンツデータの横には、チェックマーク３０２が表示される。表示エリア３０３には、ムーブイン処理の進捗状況を示す情報（ムーブイン中またはムーブインが完了したコンテンツデータの数／ムーブインするコンテンツデータの総数）が表示される。
【０３６２】
以上、ムーブイン処理について説明したが、ＭＳ４からHDD５８にコンテンツデータをインポートする処理も同様に処理される。ムーブイン処理とインポート処理の相違は、ムーブイン処理またはインポート処理によってHDD５８に記録されたコンテンツデータの扱いにある。
【０３６３】
オーディオサーバ１は、ムーブイン処理によってHDD５８に記録されたコンテンツデータを、他のＭＳ４やＰＤ５などに、ムーブアウトすることが可能であり、かつ、チェックアウトすることが可能である。しかしながら、オーディオサーバ１は、インポート処理によってHDD５８に記録されたコンテンツデータを、他のＭＳ４やＰＤ５などに、チェックアウトすることは可能であるが、ムーブアウトすることは不可能である。
【０３６４】
次に、ムーブアウト処理やムーブイン処理の途中で電源が遮断するなどしてその処理が中断されたことを補償するための復帰処理について、図８６を参照して説明する。この復帰処理は、電源復旧後、C IN/C OUT８７によって直ちに開始される。
【０３６５】
ステップＳ３９１において、C IN/C OUT８７は、HDD５８にムーブアウト履歴情報が存在するか否かを判定する。HDD５８にムーブアウト履歴情報が存在すると判定された場合、ムーブアウト処理が中断されたことを補償するために、処理はステップＳ３９２に進む。
【０３６６】
ステップＳ３９２において、C IN/C OUT８７は、ムーブアウト復元処理を実行する。ムーブアウト復元処理について、図８７のフローチャートを参照して説明する。
【０３６７】
ステップＳ４０１において、C IN/C OUT８７は、HDD５８のコンテンツデータは権利無効であるか否かを判定する。HDD５８のコンテンツデータが権利無効であると判定された場合、処理はステップＳ４０２に進む。
【０３６８】
ステップＳ４０２において、C IN/C OUT８７は、HDD５８に存在するコンテンツデータを削除する。なお、ステップＳ４０１において、HDD５８のコンテンツデータが権利無効ではないと判定された場合、ステップＳ４０２はスキップされる。
【０３６９】
ステップＳ４０３において、C IN/C OUT８７は、HDD５８のムーブアウト履歴情報を削除する。
【０３７０】
処理は、図８６に戻る。ステップＳ３９３において、C IN/C OUT８７は、HDD５８にムーブイン履歴情報が存在するか否かを判定する。HDD５８にムーブイン履歴情報が存在すると判定された場合、ムーブイン処理が中断されたことを補償するために、処理はステップＳ３９４に進む。
【０３７１】
ステップＳ３９４において、C IN/C OUT８７は、ムーブイン復元処理を実行する。ムーブアウト復元処理について、図８８のフローチャートを参照して説明する。
【０３７２】
ステップＳ４２１において、C IN/C OUT８７は、HDD５８のコンテンツデータは権利無効であるか否かを判定する。HDD５８のコンテンツデータが権利無効であると判定された場合、処理はステップＳ４２２に進む。
【０３７３】
ステップＳ４２２において、C IN/C OUT８７は、HDD５８に存在するコンテンツデータを削除する。なお、ステップＳ４２１において、HDD５８のコンテンツデータが権利無効ではないと判定された場合、ステップＳ４２２はスキップされる。
【０３７４】
ステップＳ４２３において、C IN/C OUT８７は、HDD５８のムーブイン履歴情報を削除する。以上、ムーブイン復元処理の説明を終了する。処理は、図８６に戻り、復帰処理は終了される。
【０３７５】
なお、図８６のステップＳ３９１において、HDD５８にムーブアウト履歴情報が存在しないと判定された場合、ムーブアウト処理が正常に終了されているので、ステップＳ３９２の処理はスキップされる。また、ステップＳ３９３において、HDD５８にムーブイン履歴情報が存在しないと判定された場合、ムーブイン処理が正常に終了されているので、ステップＳ３９４の処理はスキップされる。
【０３７６】
また、復帰処理が電源遮断後によって中断されたとしても、電源復旧後に再度ステップＳ３９１から実行されるので、その補償はなされることになる。以上、復帰処理の説明を終了する。
【０３７７】
次に、オーディオサーバ１のHDD５８に記録されているコンテンツデータを、ＭＳ４にチェックアウトする処理について、図８９乃至図９１を参照して説明する。
【０３７８】
ここで、HDD５８に記録されているコンテンツデータをチェックアウトする処理とは、HDD５８に記録されているコンテンツデータのコピーをＭＳ４などに一時的に作成して利用するための処理である。コンテンツデータのチェックアウト可能回数は予め設定されており、チェックアウト処理のよってチェックアウト可能回数は１ずつ減少するが、後述するチェックイン処理を実行することにより、減少したチェックアウト可能回数は１ずつ復元される。
【０３７９】
チェックアウト処理について、図８９のフローチャートを参照して説明する。なお、チェックアウト処理は、HD MW８２のC IN/C OUT８７によって制御される。
【０３８０】
このチェックアウト処理は、ＭＳスロット４５にＭＳ４が挿入されている状態で、ユーザがメニュー／キャンセルボタン２１を操作してメニューを表示させ、カーソルボタン１７を操作して「編集」を選択した後、エンタボタン２０を操作して編集メニューを表示させ、カーソルボタン１７を操作して「チェックアウト」を選択した後、エンタボタン２０を操作したときに開始される。
【０３８１】
ステップＳ４４１において、C IN/C OUT８７は、HS DB９１を制御して、現在選択されているアルバムに属する全てのトラックに対応するコンテンツデータのチェックアウト可能回数（チェックアウト残り回数）を取得する。コンテンツデータのチェックアウト可能回数は、対応するトラックオブジェクトのＡＣ（図４２）に含まれるＣＮに記録されている（図４３）。
【０３８２】
ステップＳ４４２において、C IN/C OUT８７は、関係するファームウェアに依頼して、チェックアウト可能回数が１以上あるトラックについての情報（曲タイトル、チェックアウト可能回数など）を、ディスプレイ１５に表示させる。図９０は、ディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア３１１には、チェックアウトの音源を示す情報として”ＨＤＤ”が表示される。表示エリア３１２の表示は、各トラックに対応するコンテンツデータのチェックアウト可能回数を示している。
【０３８３】
ステップＳ４４３において、C IN/C OUT８７は、ユーザがカーソルボタン１７とセレクトボタン１８を操作することにより、表示されたチェックアウト可能なトラックのうち、チェックアウトするトラックを選択したか否かを判定する。チェックアウトするトラックを選択したと判定された場合、処理はステップＳ４４４に進む。
【０３８４】
ステップＳ４４４において、C IN/C OUT８７は、選択されたトラックをチェックアウトリストに追加する。ステップＳ４４５において、C IN/C OUT８７は、選択されたトラックに対するコンテンツデータのチェックアウト可能回数の表示を１だけデクリメントさせる。処理は、ステップＳ４４１に戻り、以降の処理が繰り返される。
【０３８５】
なお、ステップＳ４４３において、チェックアウトするトラックが選択されないと判定された場合には、処理はステップＳ４４６に進む。ステップＳ４４６において、C IN/C OUT８７は、ユーザがエンタキー２０を操作することにより、チェックアウトするトラックのリストを表示させ、さらにエンタキー２０を操作することにより、チェックアウトの実行を指示したか否かを判定する。チェックアウトの実行が指示されていないと判定された場合、処理はステップＳ４４１に戻り、以降の処理が繰り返される。
【０３８６】
その後、ステップＳ４４６において、チェックアウトの実行が指示されたと判定された場合、処理はステップＳ４４７に進む。ステップＳ４４７において、C IN/C OUT８７は、チェックアウトリストに含まれるトラックに対応するコンテンツデータをHDD５８から読み出し、MS MW８９に依頼して、読み出したコンテンツデータをＭＳ４にコピーさせる。なお、コンテンツデータのコピーには、チェックアウト元であるHDD５８を特定する情報を含ませる。
【０３８７】
ステップＳ４４８において、C IN/C OUT８７は、コピーしたコンテンツデータに対応するトラックオブジェクトのＡＣのＣＮに記録されているチェックアウト可能回数を１だけデクリメントしてＣＮの値を更新する。また、C IN/C OUT８７は、ＡＣのLCMLOGに、チェックアウト先の情報としてＭＳ４を特定する情報を記録する。
【０３８８】
なお、説明は省略するが、このチェックアウト処理においても、上述したムーブアウト処理と同様に、再生の可否（権利の有効、または無効）を示すフラグを用いることにより、電源遮断などの補償と、不正なコピーの作成を抑止している。
【０３８９】
図９１は、チェックアウト処理が実行されている最中のディスプレイ１５の表示例を示している。表示エリア３２１には、チェックアウト中であることを示す文字”Check out”が点滅表示される。チェックアウトが完了したトラックの横には、チェックマーク３２２が表示される。現在チェックアウト中のトラックの横には、ポインタ３２３が表示される。表示エリア３２４には、チェックアウト処理の進捗状況を示す情報（チェックアウト中またはチェックアウトが完了したコンテンツデータの数／チェックアウトリストに含まれるコンテンツデータの総数）が表示される。以上、チェックアウト処理の説明を終了する。
【０３９０】
次に、ＭＳ４にチェックアウトしたコンテンツデータを、HDD５８にチェックインする処理について、図９２および図９３を参照して説明する。
【０３９１】
ここで、ＭＳ４に記録されているコンテンツデータをチェックアウトする処理とは、HDD５８からＭＳ４に一時的に再生したコンテンツデータのコピーを消去するとともに、HDD５８のチェックアウト可能回数を１だけインクリメントして、チェックアウト可能回数を元の値に復元する処理である。
【０３９２】
チェックイン処理について、図９２のフローチャートを参照して説明する。なお、チェックイン処理は、HD MW８２のC IN/C OUT８７によって制御される。
【０３９３】
このチェックイン処理は、ＭＳスロット４５にＭＳ４が挿入されている状態で、ユーザがメニュー／キャンセルボタン２１を操作してメニューを表示させ、カーソルボタン１７を操作して「編集」を選択した後、エンタボタン２０を操作して編集メニューを表示させ、カーソルボタン１７を操作して「チェックイン」を選択した後、エンタボタン２０を操作したときに開始される。
【０３９４】
ステップＳ４５１において、C IN/C OUT８７は、MS MW８９に依頼して、ＭＳ４に記録されているデータのうち、チェックイン可能なコンテンツデータ（オーディオサーバ１のHDD５８からチェックアウトされたコンテンツデータ）を識別し、関係するファームウェアに依頼して、チェックイン可能なコンテンツデータの情報をディスプレイ１５に表示させる。
【０３９５】
ステップＳ４５２において、C IN/C OUT８７は、チェックイン可能なトラックについての情報（曲タイトルなど）を、ディスプレイ１５に表示させる。図９３は、ディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア３３１には、チェックインの音源を示す情報として”ＭＳ”が表示される。コンテンツデータの曲タイトル名などの情報の後に表示される矢印３３２は、当該コンテンツデータがチェックイン可能であることを示している。
【０３９６】
ステップＳ４５２において、C IN/C OUT８７は、ユーザがカーソルボタン１７とセレクトボタン１８を操作することにより、表示されたチェックイン可能なコンテンツデータのうち、チェックインするコンテンツデータを選択したか否かを判定する。チェックインするコンテンツデータを選択したと判定された場合、処理はステップＳ４５３に進む。
【０３９７】
ステップＳ４５３において、C IN/C OUT８７は、選択されたコンテンツデータをチェックインリストに追加する。処理は、ステップＳ４５１に戻り、以降の処理が繰り返される。
【０３９８】
なお、ステップＳ４５２において、チェックインするコンテンツデータが選択されないと判定された場合には、処理はステップＳ４５４に進む。ステップＳ４５４において、C IN/C OUT８７は、ユーザがエンタキー２０を操作することにより、チェックインするコンテンツデータのリストを表示させ、さらにエンタキー２０を操作することにより、チェックインの実行を指示したか否かを判定する。チェックインの実行が指示されていないと判定された場合、処理はステップＳ４５１に戻り、以降の処理が繰り返される。
【０３９９】
その後、ステップＳ４５４において、チェックインの実行が指示されたと判定された場合、処理はステップＳ４５５に進む。ステップＳ４５５において、C IN/C OUT８７は、MS MW８９に依頼して、チェックインリストに含まれるＭＳ４のコンテンツデータを消去する（再生の可否を示すフラグを否、すなわち、権利無効とするだけでもよい）。
【０４００】
ステップＳ４５６において、C IN/C OUT８７は、HDD５８に記録されている元のコンテンツデータに対応するトラックオブジェクトのＡＣのＣＮに記録されているチェックアウト可能回数を１だけインクリメントしてＣＮの値を更新する。また、C IN/C OUT８７は、ＡＣのLCMLOGからチェックアウト先の情報として記録していたＭＳ４を特定する情報を削除する。以上、チェックイン処理の説明を終了する。
【０４０１】
次に、ＭＳ４に記録されているコンテンツデータをチェックインする処理と、ＨＤプレイ機能によって最後に再生したトラックが含まれるアルバムに属する複数のトラックを一括してＭＳ４にチェックアウトする処理とを連続して実行するエクスチェンジ処理について、図９４乃至図９７を参照して説明する。
【０４０２】
このエクスチェンジ処理は、ＭＳスロット４５にＭＳ４が挿入された状態で、ユーザがエクスチェンジボタン２２を操作したときに開始される。
【０４０３】
ステップＳ４６１において、C IN/C OUT８７は、MS MW８９に依頼して、ＭＳ４に記録されているデータのうち、チェックイン可能なコンテンツデータを識別する。ステップＳ４６２において、C IN/C OUT８７は、MS MW８９と連携して、ＭＳ４のチェックイン可能なコンテンツデータを１コンテンツデータずつ、図９２を参照して上述したチェックイン処理と同様にチェックインする。
【０４０４】
図９５は、ステップＳ４６２の処理が行われている最中のディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア３８１には、チェックインの音源を示す情報として”ＭＳ”が表示される。表示エリア３８２には、チェックインが実行中であることを示す文字”Now Check in”が点滅表示される。コンテンツデータの曲タイトル名などの情報の前に表示される”×”印３８３は、当該コンテンツデータがチェックイン不可能であることを示している。チェックマーク３８４は、当該コンテンツデータのチェックインが完了していることを示している。ポインタ３８５は、当該コンテンツデータのチェックインが実行中であることを示している。
【０４０５】
ステップＳ４６３において、C IN/C OUT８７は、ＭＳ４のチェックイン可能なコンテンツデータを全てチェックインしたか否かを判定する。ＭＳ４のチェックイン可能なコンテンツデータを全てチェックインしたと判定されない場合、処理はステップＳ４６２に戻り、次のコンテンツデータがチェックインされる。その後、ステップＳ４６３において、ＭＳ４のチェックイン可能なコンテンツデータを全てチェックインしたと判定された場合、処理はステップＳ４６４に進む。
【０４０６】
ステップＳ４６４において、C IN/C OUT８７は、HD DB９１と連携して、属するトラックを一括してチェックアウトするアルバムを決定する。具体的には、例えば、HD DB９１がオブジェクト記録領域１２２に記録されている各トラックオブジェクトの最終アクセス日時（図４２）に基づいて最後に再生されたトラックを判別し、そのトラックが属するアルバムをチェックアウトするアルバムに決定する。
【０４０７】
ステップＳ４６５において、C IN/C OUT８７は、チェックアウトするアルバムから１トラック（すなわち、コンテンツデータ）を選択する。ステップＳ４６６において、C IN/C OUT８７は、選択されたコンテンツデータがチェックアウト可能であるか否かを判定する。選択されたコンテンツデータがチェックアウト可能であると判定された場合、処理はＳ４６７に進む。
【０４０８】
ステップＳ４６７において、C IN/C OUT８７は、MS MW８９に依頼して、選択されたコンテンツデータをチェックアウトするだけの容量がＭＳ４に空いているか否かを判定させる。選択されたコンテンツデータをチェックアウトするだけの容量がＭＳ４に空いていると判定された場合、処理はステップＳ４６８に進む。
【０４０９】
ステップＳ４６８において、C IN/C OUT８７は、選択されたコンテンツデータを、図８９を参照して上述したチェックアウト処理と同様にチェックアウトする。
【０４１０】
図９６は、ステップＳ４６８の処理が行われている最中のディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア３９１には、チェックアウトの音源を示す情報として”ＨＤＤ”が表示される。表示エリア３９２には、チェックアウトが実行中であることを示す文字”Now Check out”が点滅表示される。コンテンツデータの曲タイトル名などの情報の前に表示される”×”印は、当該コンテンツデータがチェックアウト不可能であることを示しており、チェックマークは、当該コンテンツデータのチェックアウトが完了していることを示している。
【０４１１】
ステップＳ４６９において、C IN/C OUT８７は、チェックアウトするアルバムに含まれる全てのトラック（すなわち、コンテンツデータ）を、ステップＳ４６５で選択したか否かを判定する。全てのコンテンツデータをステップＳ４６５で選択していないと判定された場合、処理はステップＳ４６５に戻り、以降の処理が繰り返され、ステップＳ４６９において、全てのコンテンツデータをステップＳ４６５で選択したと判定された場合、エクスチェンジ処理は終了される。
【０４１２】
なお、ステップＳ４６６において、選択されたコンテンツデータがチェックアウト可能でなないと判定された場合、ステップＳ４６７，Ｓ４６８はスキップされる。また、ステップＳ４６７において、選択されたコンテンツデータをチェックアウトするだけの容量がＭＳ４に空いていないと判定された場合、ステップＳ４６８はスキップされる。
【０４１３】
図９７は、エクスチェンジ処理が完了した直後のディスプレイ１５の表示例を示している。ディスプレイ１５の表示エリア４０１には、エクスチェンジ処理が完了したことを示す文字”COMPLETE”が表示される。
【０４１４】
以上説明したように、ユーザは、エクスチェンジボタン２２を操作するだけで、ＭＳ４からHDD５８に対するチェックイン処理と、HDD５８からＭＳ４に対するチェックアウト処理と自動的に実行させることが可能となる。以上、エクスチェンジ処理の説明を終了する。
【０４１５】
ところで、上述したムーブアウト処理、ムーブイン処理、インポート処理、チェックアウト処理、およびチェックイン処理は、HDD５８とＭＳ４との間だけでなく、HDD５８とコネクタ４３に接続されるＰＤ５との間でも実行することが可能である。
【０４１６】
図９８にＰＤ５のハードウェア的な構成例を示す。ＰＤ５を実現するLSI(Large Scale Integration)４１０は、その全体を制御するCPU４１１を内蔵している。CPU４１１には、バス４２１を介して、ROM４１２、RAM４１３、DMAコントローラ４１４、DSP(Digital Signal Processor)４１５、バッファ４１６、LCDインタフェース（Ｉ／Ｆ）４１７、シリアルインタフェース（Ｉ／Ｆ）４１８、およびインタフェース４１９，４２０が接続されている。
【０４１７】
ROM４１２には、ＰＤ５の各種の機能を実現するプログラム、機器ＩＤ、暗号キーなどが記憶されている。RAM４１３は、CPU４１１が各種の処理を実行する際、所定のデータやプログラムを一時的に記憶する。DMAコントローラ４１４は、バッファ４１６、フラッシュメモリ４２６、およびシリアルインタフェース４１８を介するUSBコントローラ４２４の間のデータ転送を制御する。DSP４１５は、フラッシュメモリ４２６などに記録されているコンテンツデータをデコードする。また、DSP４１５は、DESエンジンを有しており、暗号キーを用いてコンテンツデータの暗号化／復号を行う。バッファ４１６は、DMAコントローラ４１７が転送を制御するデータを一時的にバッファリングする。
【０４１８】
LCDインタフェース４１７の後段には、LCDドライバ４２２、およびLCD４２３が接続される。シリアルインタフェース４１８の後段には、USBコントローラ４２４、およびUSBコネクタ４２５が接続される。USBコントローラ４２４は、USBコネクタ４２５を介して接続されるオーディオサーバ１とのデータ通信を制御する。インタフェース４１９を介して接続されるフラッシュメモリ４２６には、オーディオサーバ１からムーブアウトなどされたコンテンツデータと、その曲タイトルなどの付加情報が記録される。インタフェース４２０の後段には、DAC４２７および増幅器(AMP)４２８が接続される。電源部４２９は、LSI４１０に給電する。
【０４１９】
DSP４１５のデコードによって得られるオーディオデータは、インタフェース４２０、DAC４２７、および増幅器(AMP)４２８を介してヘッドホンなどに出力される。
【０４２０】
HDD５８とＭＳ４との間のムーブアウト処理などと、HDD５８とＰＤ５との間のムーブアウト処理などは、ほぼ同様であるので、その相違について説明する。
【０４２１】
ＭＳ４に記録するコンテンツデータの暗号化は、オーディオサーバ１のHDD５８に記録されているコンテンツデータの暗号化と同じ暗号キーよって行われる。よって、HDD５８とＭＳ４との間では、暗号化されたコンテンツデータを復号することなく、そのままの状態でムーブアウトすることができる。
【０４２２】
それに対して、ＰＤ５に記録するコンテンツデータの暗号化は、オーディオサーバ１のHDD５８に記録されているコンテンツデータの暗号化とは異なる暗号キーが用いられる。よって、HDD５８とＰＤ５との間では、図５６を参照して上述したように、HDD５８に記録されているコンテンツデータの暗号が復号され、再度、異なるＰＤ５用の暗号キーを用いて暗号化されたコンテンツをムーブアウトするようにしている。
【０４２３】
以上、HDD５８とＰＤ５との間でのムーブアウト処理、ムーブイン処理、インポート処理、チェックアウト処理、およびチェックイン処理についての説明を終了する。
【０４２４】
ところで、上述した一連の処理は、オーディオサーバ１のような専用機器によって実行させることもできるが、汎用のパーソナルコンピュータなどに、図７に示したようなファームウェアをインストールして実行させることによっても実現することができる。
【０４２５】
このファームウェアは、汎用のコンピュータとは別に、ユーザにプログラムを提供するために配布される、ファームウェアが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、ファームウェアが記録されているROMやハードディスクなどで構成される。
【０４２６】
なお、本明細書において、プログラム（ファームウェア）を記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【図面の簡単な説明】
【０４２７】
【図１】本発明の一実施の形態であるオーディオサーバ１の概要を説明するための図である。
【図２】オーディオサーバ１の外観図である。
【図３】オーディオサーバ１の上面図である。
【図４】オーディオサーバ１の背面図である。
【図５】オーディオサーバ１の正面図である。
【図６】オーディオサーバ１のハードウェア的な構成例を示すブロック図である。
【図７】オーディオサーバ１が実行するファームウェアを示す図である。
【図８】HDD５８に適用されるFAT型ファイルシステム（データフォーマット）を説明するための図である。
【図９】ファイル記録領域１２１の論理構造を示す図である。
【図１０】FAT１４１の構成を示す図である。
【図１１】FAT１４１の一例を示す図である。
【図１２】ファイル記録領域１２１の記録の一例を示す図である。
【図１３】サイズ記録領域１５１の構成を示す図である。
【図１４】ファイル作成処理を説明するフローチャートである。
【図１５】空きクラスタ取得処理を説明するフローチャートである。
【図１６】FATエントリ読み取り処理を説明するフローチャートである。
【図１７】連結処理を説明するフローチャートである。
【図１８】ファイルＸの読み出し処理を説明するフローチャートである。
【図１９】ファイルＸの検索処理を説明するフローチャートである。
【図２０】ファイルＸの逆読み出し処理を説明するフローチャートである。
【図２１】オブジェクト記録領域１２２の論理構造を示す図である。
【図２２】オブジェクト型記録領域１６３の構成を示す図である。
【図２３】領域情報記録領域１６４を説明するための図である。
【図２４】オブジェクト管理部１２４の構成を示す図である。
【図２５】セッション管理情報１８１の構成を示す図である。
【図２６】２種類の基本オブジェクト型を示す図である。
【図２７】オブジェクト識別子の構成を示す図である。
【図２８】オブジェクト作成処理を説明するフローチャートである。
【図２９】セッション開設処理を説明するフローチャートである。
【図３０】空きエントリ確保処理を説明するフローチャートである。
【図３１】ライトセッション確定処理を説明するフローチャートである。
【図３２】セッション破棄処理を説明するフローチャートである。
【図３３】オブジェクト検索処理を説明するフローチャートである。
【図３４】エントリ取得処理を説明するフローチャートである。
【図３５】オブジェクト更新処理を説明するフローチャートである。
【図３６】ストリームオブジェクト作成処理を説明するフローチャートである。
【図３７】ストリームオブジェクト検索処理を説明するフローチャートである。
【図３８】オブジェクトのディレクトリ構造を示す図である。
【図３９】フォルダリストオブジェクトのフォーマットを示す図である。
【図４０】フォルダオブジェクトのフォーマットを示す図である。
【図４１】アルバムオブジェクトのフォーマットを示す図である。
【図４２】トラックオブジェクトのフォーマットを示す図である。
【図４３】トラックオブジェクトのＡＣの詳細を示す図である。
【図４４】コンテンツデータのフォーマットを示す図である。
【図４５】ＣＣオブジェクトのフォーマットを示す図である。
【図４６】ＣＣデータのフォーマットを示す図である。
【図４７】ＣＤリッピングが実行される際のデータの流れを示す図である。
【図４８】ＣＤレコーディングが実行される際のデータの流れを示す図である。
【図４９】ディジタル入力に対するＨＤレコーディングが実行される際のデータの流れを示す図である。
【図５０】アナログ入力に対するＨＤレコーディングが実行される際のデータの流れを示す図である。
【図５１】ＨＤプレイが実行される際のデータの流れを示す図である。
【図５２】ＣＤプレイが実行される際のデータの流れを示す図である。
【図５３】ＭＳプレイが実行される際のデータの流れを示す図である。
【図５４】ＭＳチェックアウト／ムーブアウトが実行される際のデータの流れを示す図である。
【図５５】ＭＳインポート／ムーブインが実行される際のデータの流れを示す図である。
【図５６】ＰＤチェックアウトが実行される際のデータの流れを示す図である。
【図５７】ＣＤリッピングを説明するための図である。
【図５８】ＣＤレコーディングを説明するための図である。
【図５９】ＣＤリッピングまたはＣＤレコーディングにおけるバッファ５６の区分けを説明するための図である。
【図６０】各バッファの状態遷移を示す図である。
【図６１】HDD５８に設けられるリングバッファ２４１を示す図である。
【図６２】ＣＤリッピング時の各バッファ間のデータの流れを説明するための図である。
【図６３】録音速度設定処理を説明するフローチャートである。
【図６４】ＣＤ録音処理を説明するフローチャートである。
【図６５】リングバッファ情報初期化処理を説明するフローチャートである。
【図６６】１曲分の録音処理を説明するフローチャートである。
【図６７】モニタ音声出力処理を説明するフローチャートである。
【図６８】リングバッファに対する書き込み処理を説明するフローチャートである。
【図６９】リングバッファに対する読み出し処理を説明するフローチャートである。
【図７０】ＣＤリッピング中のディスプレイ１５の表示例を示す図である。
【図７１】再生エリアの設定を説明するための図である。
【図７２】プレイリストの一例を示す図である。
【図７３】プレイリストの一例を示す図である。
【図７４】プレイリストの一例を示す図である。
【図７５】プレイリストの一例を示す図である。
【図７６】プレイリスト作成処理を説明するフローチャートである。
【図７７】全曲リピートの再生処理を説明するフローチャートである。
【図７８】ムーブアウト処理を説明するフローチャートである。
【図７９】ムーブアウト処理の状態遷移を示す図である。
【図８０】ムーブアウト処理におけるディスプレイ１５の表示例を示す図である。
【図８１】ムーブアウト処理におけるディスプレイ１５の表示例を示す図である。
【図８２】ムーブイン処理を説明するフローチャートである。
【図８３】ムーブイン処理の状態遷移を示す図である。
【図８４】ムーブイン処理におけるディスプレイ１５の表示例を示す図である。
【図８５】ムーブイン処理におけるディスプレイ１５の表示例を示す図である。
【図８６】復帰処理を説明するフローチャートである。
【図８７】ムーブアウト復元処理を説明するフローチャートである。
【図８８】ムーブイン復元処理を説明するフローチャートである。
【図８９】チェックアウト処理を説明するフローチャートである。
【図９０】チェックアウト処理におけるディスプレイ１５の表示例を示す図である。
【図９１】チェックアウト処理におけるディスプレイ１５の表示例を示す図である。
【図９２】チェックイン処理を説明するフローチャートである。
【図９３】チェックイン処理におけるディスプレイ１５の表示例を示す図である。
【図９４】エクスチェンジ処理を説明するフローチャートである。
【図９５】エクスチェンジ処理におけるディスプレイ１５の表示例を示す図である。
【図９６】エクスチェンジ処理におけるディスプレイ１５の表示例を示す図である。
【図９７】エクスチェンジ処理におけるディスプレイ１５の表示例を示す図である。
【図９８】ＰＤ５のハードウェア的な構成例を示すブロック図である。
【符号の説明】
【０４２８】
１  オーディオサーバ，  ２  スピーカ，  ３  音楽ＣＤ，  ４  ＭＳ，  ５  ＰＤ，  ６  ＰＣ，  ２２  エクスチェンジボタン，  ５１  メインCPU，  ７１RTOS  ，  ７２  APP，  ７３  UMW，  ７４  LMW，  ７５  ＤＤ，  ７６  メインAPP，  ７７  HD APP，  ７８  CD APP，  ７９  MS APP，  ８０  PD APP，  ８１  FEP，  ８２  HD MW，  ８３  HD CC，  ８４  CD RIPPING，  ８５  HD PLAY，  ８６  HD REC，  ８７  C IN/C OUT，  ８８  CD MW，  ８９  MS MW，  ９０  PD MW
【図１】
2006185589.tif 000003
【図２】
2006185589.tif 000004
【図３】
2006185589.tif 000005
【図４】
2006185589.tif 000006
【図５】
2006185589.tif 000007
【図６】
2006185589.tif 000008
【図７】
2006185589.tif 000009
【図８】
2006185589.tif 000010
【図９】
2006185589.tif 000011
【図１０】
2006185589.tif 000012
【図１１】
2006185589.tif 000013
【図１２】
2006185589.tif 000014
【図１３】
2006185589.tif 000015
【図１４】
2006185589.tif 000016
【図１５】
2006185589.tif 000017
【図１６】
2006185589.tif 000018
【図１７】
2006185589.tif 000019
【図１８】
2006185589.tif 000020
【図１９】
2006185589.tif 000021
【図２０】
2006185589.tif 000022
【図２１】
2006185589.tif 000023
【図２２】
2006185589.tif 000024
【図２３】
2006185589.tif 000025
【図２４】
2006185589.tif 000026
【図２５】
2006185589.tif 000027
【図２６】
2006185589.tif 000028
【図２７】
2006185589.tif 000029
【図２８】
2006185589.tif 000030
【図２９】
2006185589.tif 000031
【図３０】
2006185589.tif 000032
【図３１】
2006185589.tif 000033
【図３２】
2006185589.tif 000034
【図３３】
2006185589.tif 000035
【図３４】
2006185589.tif 000036
【図３５】
2006185589.tif 000037
【図３６】
2006185589.tif 000038
【図３７】
2006185589.tif 000039
【図３８】
2006185589.tif 000040
【図３９】
2006185589.tif 000041
【図４０】
2006185589.tif 000042
【図４１】
2006185589.tif 000043
【図４２】
2006185589.tif 000044
【図４３】
2006185589.tif 000045
【図４４】
2006185589.tif 000046
【図４５】
2006185589.tif 000047
【図４６】
2006185589.tif 000048
【図４７】
2006185589.tif 000049
【図４８】
2006185589.tif 000050
【図４９】
2006185589.tif 000051
【図５０】
2006185589.tif 000052
【図５１】
2006185589.tif 000053
【図５２】
2006185589.tif 000054
【図５３】
2006185589.tif 000055
【図５４】
2006185589.tif 000056
【図５５】
2006185589.tif 000057
【図５６】
2006185589.tif 000058
【図５７】
2006185589.tif 000059
【図５８】
2006185589.tif 000060
【図５９】
2006185589.tif 000061
【図６０】
2006185589.tif 000062
【図６１】
2006185589.tif 000063
【図６２】
2006185589.tif 000064
【図６３】
2006185589.tif 000065
【図６４】
2006185589.tif 000066
【図６５】
2006185589.tif 000067
【図６６】
2006185589.tif 000068
【図６７】
2006185589.tif 000069
【図６８】
2006185589.tif 000070
【図６９】
2006185589.tif 000071
【図７０】
2006185589.tif 000072
【図７１】
2006185589.tif 000073
【図７２】
2006185589.tif 000074
【図７３】
2006185589.tif 000075
【図７４】
2006185589.tif 000076
【図７５】
2006185589.tif 000077
【図７６】
2006185589.tif 000078
【図７７】
2006185589.tif 000079
【図７８】
2006185589.tif 000080
【図７９】
2006185589.tif 000081
【図８０】
2006185589.tif 000082
【図８１】
2006185589.tif 000083
【図８２】
2006185589.tif 000084
【図８３】
2006185589.tif 000085
【図８４】
2006185589.tif 000086
【図８５】
2006185589.tif 000087
【図８６】
2006185589.tif 000088
【図８７】
2006185589.tif 000089
【図８８】
2006185589.tif 000090
【図８９】
2006185589.tif 000091
【図９０】
2006185589.tif 000092
【図９１】
2006185589.tif 000093
【図９２】
2006185589.tif 000094
【図９３】
2006185589.tif 000095
【図９４】
2006185589.tif 000096
【図９５】
2006185589.tif 000097
【図９６】
2006185589.tif 000098
【図９７】
2006185589.tif 000099
【図９８】
2006185589.tif 000100