JP2006185589A - データ転送システム、データ転送方法、およびデータ転送プログラム - Google Patents
データ転送システム、データ転送方法、およびデータ転送プログラム Download PDFInfo
- Publication number
- JP2006185589A JP2006185589A JP2006034754A JP2006034754A JP2006185589A JP 2006185589 A JP2006185589 A JP 2006185589A JP 2006034754 A JP2006034754 A JP 2006034754A JP 2006034754 A JP2006034754 A JP 2006034754A JP 2006185589 A JP2006185589 A JP 2006185589A
- Authority
- JP
- Japan
- Prior art keywords
- data
- recorded
- recording
- recording medium
- audio data
- 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
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
【課題】MSやPDとの間のチェックインとチェックアウトを一括して指示する。
【解決手段】ステップS461で、MSのチェックイン可能なコンテンツデータが識別され、ステップS462で、1コンテンツデータずつ、チェックイン処理が行われる。ステップS463で、MSのチェックイン可能なコンテンツデータを全てチェックインしたか判定される。ステップS464で、チェックアウトするアルバムが決定される。ステップS465で、1トラック(すなわち、コンテンツデータ)が選択され、ステップS466で、チェックアウト可能であるか判定され、ステップS467で、MSの容量が確認され、ステップS468で、コンテンツデータがチェックアウトされる。ステップS469で、チェックアウトするアルバムに含まれる全てのトラックを選択したか判定される。
【選択図】図94
【解決手段】ステップS461で、MSのチェックイン可能なコンテンツデータが識別され、ステップS462で、1コンテンツデータずつ、チェックイン処理が行われる。ステップS463で、MSのチェックイン可能なコンテンツデータを全てチェックインしたか判定される。ステップS464で、チェックアウトするアルバムが決定される。ステップS465で、1トラック(すなわち、コンテンツデータ)が選択され、ステップS466で、チェックアウト可能であるか判定され、ステップS467で、MSの容量が確認され、ステップS468で、コンテンツデータがチェックアウトされる。ステップS469で、チェックアウトするアルバムに含まれる全てのトラックを選択したか判定される。
【選択図】図94
Description
本発明は、データ転送システム、データ転送方法、およびデータ転送プログラムに関し、例えば、音楽CDに記録されているPCM(Pulse Code Modulation)データを符号化してハードディスクに蓄積し、蓄積した符号化データを、半導体メモリやポータブルデバイスに供給する場合に用いて好適なデータ転送システム、データ転送方法、およびデータ転送プログラムに関する。
従来、CDプレーヤに接続したネットワークウォークマン(商標)などのポータブルデバイス(以下、PDと記述する)により、音楽CDを録音することが可能である。すなわち、音楽CDのPCMデータを、ATRAC(Adaptive Transform Acoustic Coding)3方式などに従ってエンコードし、得られる符号化データを、メモリースティック(商標)(以下、MSと記述する)などの半導体メモリや、PDが内蔵するメモリに記録することが可能である。
しかしながら、CDプレーヤとPDを接続して、音楽CDを録音する方法では、複数の音楽CDの中から気に入った曲だけを選択して記録するような編集の作業が面倒である。
なお、パーソナルコンピュータを用いれば、音楽CDのPCMデータを圧縮符号化してハードディスクドライブに蓄積することができるとともに、蓄積した符号化データのコピーを、パーソナルコンピュータに接続したMSやPDなどに一時的に作成することができる。この処理をチェックアウトと称する。また、チェックアウトにより、MSやPDなどに作成された符号化データのコピーを消去する処理をチェックインと称する。チェックアウトおよびチェックインの詳細については後述する。
ところで、ハードディスクドライブに蓄積した符号化データを、MSやPDなどにチェックアウトする際、MSやPDの記憶容量が既に一杯である場合、ユーザは、MSやPDに記録されている符号化データのコピーをチェックインさせる操作をした後、希望する曲の符号化データをチェックアウトさせる操作を行う必要があるので、操作が面倒である課題があった。
本発明はこのような状況に鑑みてなされたものであり、MSやPDとの間のチェックインとチェックアウトを一括して指示できるようにして、音楽コンテンツの転送作業を簡易化し、且つアルバム、プレイリストなどの音楽コンテンツのデータ構造の概念を壊すことなく音楽コンテンツを転送できるようにするものである。
本発明の一側面は、1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と、前記第1の記録媒体とは異なる第2の記録媒体との間でオーディオデータの転送を行うデータ転送システムにおいて、前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体と、前記第2の集合体によって指示されたオーディオデータを前記第2の記録媒体へ転送する場合に、前記第2の集合体に指示されたオーディオデータが含まれる第1の集合体に含まれるすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送する制御部とを備えるデータ転送システムである。
前記第2の記録媒体は、着脱可能な記録媒体であるようにすることができる。
前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
前記識別情報と前記第1の集合体とが関連づけられているようにすることができる。
また、本発明の一側面は、1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と第2の記録媒体との間でオーディオデータの転送を行うデータ転送方法において、前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体に指定されたオーディオデータを前記第1の記録媒体から前記第2の記録媒体へ転送する指示を受信し、前記第2の集合体によって指示されたオーディオデータが含まれる第1の集合体を検索し、前記第2の集合体によって指示されたオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第1の集合体に含まれる他のすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するデータ転送方法である。
前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
前記識別情報と前記第1の集合体とが関連づけられているようにすることができる。
さらに本発明の一側面は、1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と第2の記録媒体との間でオーディオデータの転送を行うデータ転送プログラムにおいて、前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体に指定されたオーディオデータを前記第1の記録媒体から前記第2の記録媒体へ転送する指示を受信し、前記第2の集合体によって指示されたオーディオデータが含まれる第1の集合体を検索し、前記第2の集合体によって指示されたオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第1の集合体に含まれる他のすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するデータ転送プログラムである。
前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されているようにすることができる。
前記識別情報と前記第1の集合体とが関連づけられているようにすることができる。
本発明の一側面においては、前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体に指定されたオーディオデータを前記第1の記録媒体から前記第2の記録媒体へ転送する指示が受信され、前記第2の集合体によって指示されたオーディオデータが含まれる第1の集合体が検索され、前記第2の集合体によって指示されたオーディオデータの実体が前記第1の記録媒体から前記第2の記録媒体へ転送されるとともに、前記転送されるオーディオデータが含まれる第1の集合体に含まれる他のすべてのオーディオデータの実体が前記第1の記録媒体から前記第2の記録媒体へ転送される。
本発明の一側面によれば、MSやPDとの間のチェックインとチェックアウトを一括して指示することができ、音楽コンテンツの転送作業を簡易化し、且つアルバム、プレイリストなどの音楽コンテンツのデータ構造の概念を壊すことなく音楽コンテンツを転送することが可能となる。
本発明の一実施の形態であるオーディオサーバの概要について、図1を参照して説明する。このオーディオサーバ1は、音楽CD3に記録されているPCM(Pulse Code Modulation)データを読み出し、ATRAC(Adaptive Transform Acoustic Coding)3方式によってエンコードし、得られる符号化データをハードディスクドライブ58(図6)に記録し、記録した符号化データを、上層側からフォルダリスト、フォルダ、アルバム、およびトラックなどの階層構造をなすオブジェクトに対応付けて管理する。
フォルダリストには、1段下の階層に位置する複数のフォルダを含めることができる。フォルダには、1段下の階層に位置する複数のアルバムを含めることができる。アルバムには、1段下の階層に位置する複数のトラックを含めることができる。階層構造の最下層に位置するトラックは、1曲分の符号化データと1対1に対応する。
以下、符号化データをコンテンツデータとも記述する。フォルダリスト、フォルダ、アルバム、およびトラックをオブジェクトとも記述する。ユーザは、オブジェクトを指定して各種のコマンドを指令する。なお、オブジェクトの階層構造の詳細については、図38を参照して後述する。
また、オーディオサーバ1は、音楽CD3を再生したり、ハードディスクドライブ(以下、HDDと記述する)58に記録されている符号化データをデコードしたりして、得られる音声信号をスピーカ2から出力する。
さらに、オーディオサーバ1は、MSスロット45(図5)に挿入されたマジックゲート(商標)に対応するメモリースティック(商標)(以下、MSと記述する)4や、コネクタ43(図5)に接続されるネットワークウォークマン(商標)などのポータブルデバイス(以下、PDと記述する)5に対して、HDD58に記録されている符号化データを、チェックアウト処理またはムーブアウト処理によって記録するとともに、MS4やPD5に記録されている符号化データを、チェックイン処理、ムーブイン処理、またはインポート処理によってHDD58に記録する。
ここで、マジックゲートとは、マジックゲートに対応するMS4に記録するデータの暗号化と、MS4を挿入して使用するオーディオサーバ1の相互認証との2つの技術によりデータの著作権を保護するための技術であり、ディジタルオーディオデータの不正なコピー、再生、改ざんを防止することが可能である。マジックゲートは、SDMI(Secure Digital Music Initiative)規格に準拠している。
なお、オーディオサーバ1と、MS4またはPD5との間のチェックアウト処理、チェックイン処理、ムーブアウト処理、ムーブイン処理、およびインポート処理については後述する。
符号化データが記録されたMS4は、オーディオサーバ1から取り出され、例えば、パーソナルコンピュータ6に装着されて、記録されている符号化データが読み出されてデコードされる。
符号化データが記録されたPD5は、符号化データをデコードし、得られる音声信号をヘッドホンから出力する。
リモートコントローラ7は、ユーザからの操作を受け付けて、対応する制御信号をオーディオサーバ1に送信する。
次に、オーディオサーバ1の外観について、図2乃至図5を参照して説明する。図2は、オーディオサーバ1の正面上方からの外観図である。図3は、オーディオサーバ1の上面図である。図4は、オーディオサーバ1の背面図である。図5は、正面図である。
オーディオサーバ1の上面には、CDを装着するCDトレイ(不図示)の蓋40が設けられており、蓋40には、図3に示すように、パワーボタン11などのボタン類の他、各種の情報を表示するディスプレイ15が配置されている。パワー(POWER)ボタン11は、オーディオサーバ1の電源をオン・オフさせるときに操作される。ファンクション(FUNCTION)ボタン12は、音源として、音楽CD3、HDD58、AUXイン端子31、MS4、およびPD5のうちの1つを選択するときに操作される。
プレイモード(PLAY MODE)ボタン13は、再生モードを、再生エリアに含まれる全てのトラックを順次1回ずつ再生するノーマル再生、再生エリアに含まれる全てのトラックを順次再生することを繰り返す全曲リピート、1トラックだけを繰り返し再生する1曲リピート、再生エリアに含まれる全てのトラックのなかからランダムに選択して再生することを繰り返すランダムリピート、または、HDD全体に含まれる全てのトラックのなかからランダムに選択する様子のアニメーションを表示するとともに選択したトラックを再生することを繰り返すスロットマシン再生に切り替えるときに操作される。なお、再生エリアについては、図71を参照して後述する。
ディスプレイ(DISPLAY)ボタン14は、ディスプレイ15の表示内容を切り替えるときに操作される。LCD(Liquid Crystal Display)などよりなるディスプレイ15は、動作状況やオーディオデータに関わる情報を表示する。
音量(VOLUME)ボタン16は、出力する音量を増減させるときに操作される。カーソルボタン17は、ディスプレイ15に表示されるカーソルを移動させるときに操作される。セレクト(SELECT)ボタン18は、ディスプレイ15のカーソルで示されているオブジェクトなどを選択するときや、検索時の昇順、降順を切り替えるときに操作される。イレーズ(ELASE)ボタン19は、トラックなどのオブジェクトを消去するときに操作される。エンタ(ENTER)ボタン20は、表示されているメニューや、選択されているトラックなどのオブジェクトを決定するときに操作される。メニュー/キャンセル(MENU/CANCEL)ボタン21は、階層的に設けられている各種の操作メニューを表示させるとき、またはキャンセルするときに操作される。エクスチェンジ(EXCHANGE)ボタン22は、MS4、またはPD5に対して、自動的にチェックイン処理およびチェックアウト処理を施すときに操作される。
レコード(RECORD)ボタン23は、音楽CD3のオーディオデータを再生しながらHDD58に録音するときに操作される。ハイスピードレコード(HI SPEED RECORD)ボタン24は、音楽CD3のオーディオデータをHDD58に高速録音するときに操作される。なお、この際にも録音されるオーディオデータの音声がスピーカ2などから出力される。停止ボタン25は、実行中の再生や録音を中止するときに操作される。再生/一時停止ボタン26は、再生の開始、再生ポーズ、再生ポーズの解除を指示するときに操作される。頭出しボタン27は、現在のトラックまたは前のトラックの頭出し、あるいは、巻き戻し再生を指示するときに操作される。頭出しボタン28は、次のトラックの頭出し、または早送り再生を指示するときに操作される。
なお、図示は省略するが、リモートコントローラ7には、蓋40に配置されているパワーボタン11などのボタン類と同等の機能を有するボタンが配置されている。
オーディオサーバ1の背面には、図4に示すように、AUXイン端子31、ラインアウト端子32、サブウーファ端子33、スピーカ(L,R)端子34、リセットボタン35、およびDCイン端子36が配置されている。
AUXイン端子31は、オーディオ出力機器(不図示)を接続することができ、接続したオーディオ出力機器からのディジタルオーディオデータ、またはアナログの音声信号を入力することができる。ラインアウト端子32は、増幅機器(不図示)などを接続することができ、接続した増幅機器にアナログ音声信号を出力することができる。サブウーファ端子33は、サブウーファ(不図示)を接続することができ、サブウーファに再生した音声信号の低周波成分を出力することができる。スピーカ(L,R)端子34は、スピーカ2を接続し、接続したスピーカ2に再生した音声信号を出力することができる。リセットボタン35は、オーディオサーバ1をリセットするときに操作される。DCイン端子36には、ACパワーアダプタ(不図示)からのDC電力が供給される。
オーディオサーバ1の正面には、図5に示すように、オープンレバー41、受光部42、コネクタ43、アクセスランプ44、MSスロット45、取り出しレバー46、およびヘッドホン端子47が配置されている。オープンレバー41は、蓋40を開けるときにスライドされる。受光部42は、リモートコントローラ7から送信される制御信号を受信する。コネクタ43には、USB(Universal Serial Bus)端子が設けられており、USBケーブルを介して、PD5、外付けHDD、キーボードなどを接続することができる。
なお、コネクタ43に、IEEE1394端子を設けるようにし、IEEE1394ケーブルを介してPD5などを接続するようにしてもよい。または、いわゆるBluetooth(商標)、あるいは、IEEE802.11b(いわゆる無線LAN)用の端子を設けて、無線通信によってPD5などを接続するようにしてもよい。
アクセスランプ44は、MSスロット45に挿入されているMS4、またはコネクタ43に接続されているPD5などに対してデータの読み書きが実行されている時に点滅する。MSスロット45には、MS4が挿入される。取り出しレバー46は、MSスロット45に挿入されているMS4を取り出すときに操作される。ヘッドホン端子47は、ヘッドホンを接続することができ、接続したヘッドホンに再生した音声信号を出力することができる。
次に、オーディオサーバ1のハードウェア的な構成例について、図6を参照して説明する。オーディオサーバ1は、オーディオサーバ1の全体を制御するメインCPU(Central Processing Unit)51を内蔵している。メインCPU51には、バス66を介して、フラッシュROM52、SDRAM53、USBホストコントローラ54、DMAコントローラ55、信号処理部60、イーサネット(登録商標)コントローラ/コネクタ67、およびPCMCIAコントローラ68が接続されている。
フラッシュROM52には、電源がオンとされると直ちにメインCPU51によって起動が完了されるRTOS(Real Time Operating System)71(図7)、各種の機能を実現するためにRTOS71上で実行されるファームウェア(Firmware、図7を参照して後述する)の他、機器ID、暗号キーなどが記憶されている。SDRAM(Synchronous Dynamic Random Access Memory)53は、メインCPU51が各種の処理を実行する際、所定のデータやプログラムを一時的に記憶する。USBホストコントローラ54は、コネクタ43を介して接続されるPD5などとのデータ通信を制御する。
DMA(Direct Memory Access)コントローラ55は、バッファ56、CD-ROMドライブ57、HDD58、およびエンコーダ/デコーダ59の間のデータ転送を制御する。SDRAMなどよりなるバッファ56は、DMAコントローラ55が転送を制御するデータを一時的にバッファリングする。CD-ROMドライブ57は、CAV8倍速で音楽CD3に記録されているオーディオデータを読み出す。HDD58は、エンコーダ/デコーダ59が生成した符号化データなどを記憶する。
エンコーダ/デコーダ59は、CD-ROMドライブ57が読み出したPCMデータや、AUXイン端子31から入力されたオーディオデータを、132Kbpsモード、105Kbpsモード、または66KbpsモードのATRAC3方式を用い、最大8倍速、平均5倍速でエンコードして符号化データを生成する。また、エンコーダ/デコーダ59は、HDD58が記憶する符号化データをデコードする。さらに、エンコーダ/デコーダ59は、DES(Data Encryption Standard)エンジンを有しており、符号化データを、オーディオサーバ1を構成する所定の部品の機器IDと時刻と似基づいて生成する暗号キーを用いて暗号化する。
例えば、HDD58が9ギガバイトの容量を有し、エンコーダ/デコーダ59が105KbpsモードのATRAC3方式でエンコードする場合、HDD58には、約100枚分の音楽CD3(60分/枚)を録音することができる。
信号処理部60は、マジックゲートメモリースティックインタフェース(以下、MGMS I/Fと記述する)60−1、ウォータマークスクリーン(以下、WMスクリーンと記述する)60−2、オーディオI/F60−3、およびサンプリングレートコンバータ(以下、SRCと記述する)60−4からなる。
MGMS I/F60−1は、MSコネクタ61を介し、MSスロット45に挿入されるMS4に対して相互認証を行い、その結果に基づいてデータの暗号化、および暗号化されたデータの復号を実行する。WMスクリーン60−2は、信号処理部60を通過するオーディオデータに埋め込まれているSDMI規格のウォータマーク(電子すかし、コピーの可否などを示す情報など)を検出する。
オーディオI/F60−3は、AUXイン端子31を介してディジタルオーディオデータを取得し、SRC60−4に供給する。また、オーディオインタフェース60−3は、バッファ56などから転送されたディジタルオーディオデータを、内蔵するバッファ251(図62)に適宜バッファリングした後、AD/DA62に出力する。
SRC60−4は、オーディオI/F60−3からのディジタルオーディオデータのサンプリングレートを、44.1KHzに変換してエンコーダ/デコーダ59に出力する。
なお、図示は省略するが、さらに、信号処理部60は、1倍速で動作するATRAC3方式のエンコーダ/デコーダを内蔵している。
MSコネクタ61は、挿入されるMS4とMGMS I/F60−1とのデータ通信を中継する。AD/DA62は、信号処理部60のオーディオI/F60−3から入力されるディジタルオーディオデータをアナログの音声信号に変換して、ラインアウト端子32、スピーカ端子34、またはヘッドホン端子47に出力する。また、AD/DA62は、AUXイン端子31から入力されるアナログの音声信号をディジタル化してエンコーダ/デコーダ59に出力する。
イーサネット(登録商標)コントローラ/コネクタ67は、イーサネット(登録商標)を介する他の電子機器とのデータ通信を制御する。PCMCIA(Personal Computer Memory Card International Association)コントローラ68は、PCMCIA規格のICカードインタフェースを装備している.
メインCPU51には、ディスプレイドライバ63、およびサブCPU64が接続されている。ディスプレイドライバ63は、ディスプレイ15の表示を制御する。サブCPU64は、特に、電源がオフであるときにおいて、電源部65の制御、本体のリセット制御、内蔵時計のカウント、パワーボタン11などに対する操作の検知、受光部42の制御、AD/DA62の制御などを実行する。電源部65は、DCイン端子36から供給されるDC電圧を所定の電圧に変換し、オーディオサーバ1の全体に供給する。
次に、以下に挙げるオーディオサーバ1の機能を実際に行うためにメインCPU51がフラッシュROM52から読み出して実行するファームウェアについて、図7を参照して説明する。なお、オーディオサーバ1の機能は、CDリッピング、CDレコーディング、HDレコーディング(ディジタル入力)、HDレコーディング(アナログ入力)、HDプレイ、CDプレイ、MSプレイ、チェックアウト/チェックイン、インポート、ムーブアウト/ムーブインなどであるが、その詳細とファームウェアとの対応については、図47乃至図56を参照して後述する。
ファームウェアは、4つのレイヤ、すなわち、アプリケーションレイヤ(APP)72、アッパーミドルウェアレイヤ(UMW)73、ロワーミドルウェアレイヤ(LMW)74、およびデバイスドライバレイヤ(DD)75をなしている。
アプリケーションレイヤ72には、メインアプリケーション(以下、メインAPPと記述する)76、ハードディスクアプリケーション(以下、HD APPと記述する)77、CDアプリケーション(以下、CD APPと記述する)78、メモリースティックアプリケーション(以下、MS APPと記述する)79、ポータブルデバイスアプリケーション(以下、PD APPと記述する)80、および仮名漢字変換アプリケーション(以下、FEP(Front End Processor)と記述する)81の各モジュールが含まれる。
アプリケーションレイヤ72の各モジュールは、オーディオサーバ1が実行可能な機能に関わるユーザの操作に対応して、アッパーミドルウェアレイヤ73の対応するモジュールに処理を要求し、処理の状況の表示を制御することによってユーザインタフェースを提供する。
メインAPP76は、アプリケーションレイヤ72の各モジュールを統制する。例えば、起動時において、起動画面を作成し、各モジュールを起動する。インプットミドルウェア97から通知されるユーザの操作を受け付けて、対応するモジュールに通知する。各モジュールからの表示データをディスプレイデバイスドライバ105に供給する。各モジュールの切替を実行する。ユーザからの音量変更の操作に対応して、オーディオIOミドルウェア(AIO)94に通知する。ユーザからのセットアップ操作に対応して、各モジュールに設定値を通知する。各モジュールで共通の設定情報(プレイモードなど)を保持する。パワーオフの操作に対応して各モジュールを終了させ、システムコントロールミドルウェア(SYSTEM)98にパワーオフを要求する。
HD APP77は、HDD58を駆動させる操作を受け付けて、ハードディスクミドルウェア82に通知し、ハードディスクミドルウェア82の動作状態を取得して表示データを生成する。
CD APP78は、CD-ROMドライブ57を駆動させる操作を受け付けて、CDミドルウェア88に通知し、CDミドルウェア88の動作状態を取得して表示データを生成する。
MS APP79は、MSスロット45に挿入されたMS4に関わる操作を受け付けて、MSミドルウェア89に通知し、MSミドルウェア89の動作状態を取得して表示データを生成する。
PD APP80は、コネクタ43に接続されたPD5に関わる操作を受け付けて、PDミドルウェア90に通知し、PDミドルウェア90の動作状態を取得して表示データを生成する。
FEP81は、録音する音楽CD3のタイトルなどを入力する際の仮名漢字変換を実行する。
アッパーミドルウェアレイヤ73には、オーディオサーバ1の各機能をモデル化して実装した以下のモジュールから構成される。すなわち、ハードディスクミドルウェア(以下、HD MWと記述する)82、CDミドルウェア(以下、CD MWと記述する)88、MSミドルウェア(以下、MS MWと記述する)89、およびPDミドルウェア(以下、PD MWと記述する)90の各モジュールが含まれる。
HD MW82は、HDD58に記憶されている符号化データを管理するHDCC83、CD MW88と連携して音楽CD3のオーディオデータを圧縮し、暗号化してHDD58に記録するCD RIPPING84、オーディオIOミドルウェア94と連携してHDD58に記録されている符号化データを復号し、伸張するHD PLAY85、オーディオIOミドルウェア94と連携してAUXイン端子31から入力されるオーディオデータを圧縮し、暗号化してHDD58に記録するHD REC86、MS MW89またはPD MW90と連携して、MS4またはPD5とのチェックイン、チェックアウトを制御するC IN/C OUT87から構成される。
CD MW88は、CDデバイスドライバ102にCD-ROMドライブ57を制御させることによってCDプレーヤとしての機能を実現する。MD MW89は、オーディオIOミドルウェア94、およびMSファイルシステムミドルウェア95と連携してMSプレーヤとしての機能を実現する。PD MW90は、USBホストミドルウェア96およびUSBホストデバイスドライバ104と連携することによってPD5を制御する。
ロワーミドルウェアレイヤ74には、アッパーミドルレイヤ73の各モジュールが共用できる機能をモデル化して実装した以下のモジュール、すなわち、ハードディスクオブジェクトデータベースミドルウェア(以下、HD DBと記述する)91、ハードディスクファイルシステムミドルウェア(以下、HD FSと記述する)92、MGRミドルウェア(MGR)93、オーディオIOミドルウェア(AIO)94、メモリースティックファイルシステムミドルウェア(MS FS)95、USBホストミドルウェア(USB)96、インプットハンドルミドルウェア(INPUT)97、およびシステムコントロールミドルウェア(SYSTEM)98が含まれる。ロワーミドルウェアレイヤ74に含まれる各モジュールは、アッパーミドルレイヤ73を構成する各モジュールから呼び出される。
デバイスドライバレイヤ(DD)75には、各ハードウェアデバイスをモデル化した以下のモジュール、すなわち、ハードディスクデバイスドライバ99、デコーダ/エンコーダデバイスドライバ100、DMAデバイスドライバ101、CDデバイスドライバ102、信号処理部デバイスドライバ103、USBホストデバイスドライバ104、ディスプレイデバイスドライバ105、オーディオデバイスドライバ106、キーデバイスドライバ107、パワーデバイスドライバ108、およびクロックデバイスドライバ109が含まれる。なお、図7において、破線で囲まれたオーディオデバイスドライバ106乃至クロックデバイスドライバ109は、サブCPU64によって実行される。各モジュールは、主に、ライブラリで構成されており、アッパーミドルウェアレイヤ73またはロワーミドルウェア74に含まれるモジュールから、そのAPI(Application Program Interface)が呼び出される。
次に、HDD58に適用されるFAT(File Allocation Table)型ファイルシステム(データフォーマット)について、図8乃至図20を参照して説明する。図8に示すように、HDD58には、符号化データ(コンテンツデータ)をファイルとして記録するためのファイル記録領域121と、ファイル記録領域121に記録されたコンテンツデータが記録された位置を特定するための情報を含むオブジェクトが記録されるオブジェクト記録領域122が設けられる。
ファイル管理部123は、ファイルの作成、新規に作成するファイルに対するIDの発行、ファイル記録領域121に対する書き込み、読み出し、削除などのファイルに関わる一切の処理を実行する。ファイル管理部123は、ロワーミドルウェアレイヤ74に含まれるHD FS92に相当する。
オブジェクト管理部124は、オブジェクト記録領域122におけるオブジェクトの物理位置を認識し、オブジェクトの書き込み、読み出し、削除などを実行する。オブジェクト管理部124は、ロワーミドルウェアレイヤ74に含まれるHD DB91に相当する。なお、オブジェクトのデータベースによる管理については、図21乃至図37を参照して後述する。
図9は、ファイル記録領域121の論理構造を示している。ファイル記録領域121は、ファイル記録領域121における書き込み、読み出しの最小単位である所定の容量のセクタに区画されている。全てのセクタには、シリアルなセクタ番号が付与されている。ファイル記録領域121は、所定の数のセクタによって構成されるFATエリア、システムエリア、複数のクラスタによって構成される。各クラスタには、固定長のクラスタ番号が付与されている。ファイル記録領域121に記録されるファイルは、複数のクラスタが結合されて構成される。
複数のクラスタの結合状態は、FAT141(図10)と称されるテーブルに記録されている。FAT141は、ファイル記録領域121のFATエリアに記録されているが、ファイル管理部123が動作する際にはSDRAM53にも転送される。
図10は、FAT141の構造を示している。FAT141は、FATヘッダ142と、各クラスタにそれぞれ対応する複数のFATエントリ144から構成される。ヘッダ142には、空きクラスタリスト開始番号記録領域143が含まれている。空きクラスタリスト開始番号記録領域143には、データが記録されていない一連の空きクラスタの先頭のクラスタ番号が記録される。空きクラスタが存在しない場合、空きクラスタリスト開始番号記録領域143には、−1=0xFFFFFFFFが記録される。
FATエントリ144には、対応するクラスタに付与されているクラスタ番号と同一のエントリ番号が付与されている。例えば、クラスタ番号1に対応するFATエントリには、エントリ番号1が付与されている。以下、エントリ番号1のFATエントリを、FATエントリE(1)とも記述する。FATエントリ144は、P欄145とN欄146に区分けられている。
FATエントリ144のP欄145には、対応するクラスタの前方に連結されるクラスタに付与されているクラスタ番号が記録される。前方に連結されるクラスタが存在しない場合、すなわち、対応するクラスタがファイルの先頭である場合、P欄146には、0xFFFFFFFFが記録される。
FATエントリ144のN欄146には、対応するクラスタの後方に連結されるクラスタに付与されているクラスタ番号が記録される。後方に連結されるクラスタが存在しない場合、すなわち、対応するクラスタがファイルの末尾である場合、N欄146には、0xFFFFFFFFが記録される。
例えば、ファイル記録領域121に1つのファイルだけが、クラスタ番号1,5,6,8,12が付与されている5つのクラスタに記録されている場合、図11に示すように、エントリ番号1(0x00000001)のFATエントリE(1)のP欄には、前方に連結されるクラスタが存在しないことを示す0xFFFFFFFFが記録され、N欄には、後方に連結されるクラスタに付与されているクラスタ番号5(0xFFFFFFFF)が記録される。
エントリ番号5(0x00000005)のFATエントリE(5)のP欄には、前方に連結されるクラスタに付与されているクラスタ番号1(0x00000001)が記録され、N欄には、後方に連結されるクラスタに付与されているクラスタ番号6(0x00000006)が記録される。
エントリ番号6,8のFATエントリE(6),E(8)にも、同様に記録がなされる。
エントリ番号12(0x0000000C)のFATエントリE(12)のP欄には、前方に連結されるクラスタに付与されているクラスタ番号8(0x00000008)が記録され、N欄には、後方に連結されるクラスタが存在しないことを示す0xFFFFFFFFが記録される。
空きクラスタリスト開始番号記録領域143には、いまの場合、クラスタ番号(0x00000002)のクラスタから、クラスタ番号(0x00000014)までの一連のクラスタが空きクラスタであるので、その先頭を示すクラスタ番号(0x00000002)が記録される。
図12は、クラスタ番号1,5,6,8,12が付与されている5つのクラスタに1つのファイルが記録される様子を示している。ファイルの先頭のクラスタ(いまの場合、クラスタ1)には、ファイルのサイズの関わる情報を記録するサイズ記録領域151が設けられる。ファイルのデータは、2番目のクラスタ(いまの場合、クラスタ5)以降に記録される。なお、サイズ記録領域151をファイルの最後尾のクラスタ(いまの場合、クラスタ12)に設けるようにしてもよい。
図13は、サイズ記録領域151の構成例を示している。サイズ記録領域151には、有効サイズ記録領域152、最終クラスタ番号記録領域153、および占有クラスタ数記録領域154が設けられている。有効サイズ記録領域152には、最後尾のクラスタ(いまの場合、クラスタ12)の有効バイト数が記録される。通常、その値は、1以上であり、クラスタサイズ以下の値が記録される。最終クラスタ番号記録領域153には、最後尾のクラスタ(いまの場合、クラスタ12)のクラスタ番号(いまの場合、0x0000000C)が記録される。占有クラスタ数記録領域154には、ファイルのデータ記録部分を構成するクラスタの数(いまの場合、4)が記録される。
次に、FATを利用するファイルの作成処理(すなわち、コンテンツデータの記録処理)、ファイルの読み出し処理、およびファイルの逆読み出し(すなわち、コンテンツデータの逆方向からの読み出し処理)について、図14乃至図20のフローチャートを参照して説明する。なお、これらの処理は、ファイル管理部123、すなわち、ファームウェアのロワーミドルウェアレイヤ74に属するHD FS92によって制御される。
始めに、ファイルの作成処理について、図14のフローチャートを参照して説明する。ステップS1において、HD FS92は、HDD58に記録するコンテンツデータを、クラスタサイズ毎にCM-ROMドライブ57などからバッファ56に転送させる(転送されたデータ量をSバイトとする)。ステップS2において、HD FS92は、ファイル記録領域121の空きクラスタを検索して取得(確保)する。
この空きクラスタ取得処理について、図15のフローチャートを参照して説明する。ステップS21において、HD FS92は、FATヘッダ141に記録されている空きクラスタリスト開始番号記録領域143に記録されている値Qを読み取る。ステップS22において、HD FS92は、値Qが−1であるか、すなわち、空きクラスタが存在しないか否かを判定する。値Qが−1ではない、すなわち、空きクラスタが存在すると判定された場合、処理はステップS23に進む。ステップS23において、HD FS92は、値Q(空きクラスタのクラスタ番号)に対応するFATエントリE(Q)を読み取る。
FATエントリE(Q)を読み出す処理に関連し、任意のクラスタ番号Xに対応するFATエントリE(X)を読み取る処理について、図16のフローチャートを参照して説明する。ステップS41において、HD FS92は、既知のFATエントリ開始アドレスに既知のFATヘッダサイズを加算し、その和に、値Xから1を減算した値(X−1)に、既知のエントリサイズを乗算した積を加算して、アドレスAを算出する。ステップS42において、HD FS92は、アドレスAを先頭として、1エントリサイズ分だけデータを読み出す。以上、任意のクラスタ番号Xに対応するFATエントリE(X)を読み取る処理の説明を終了する。
図15に戻り、ステップS24において、HD FS92は、FATエントリE(Q)のN欄の値が−1(0xFFFFFFFF)であるか否かを判定する。FATエントリE(Q)のN欄の値が−1ではないと判定された場合、処理はステップS25に進む。
ステップS25において、HD FS92は、変数MにFATエントリE(Q)のN欄の値を代入する。ステップS26において、HD FS92は、クラスタ番号Mに対応するFATエントリE(M)を読み取る。ステップS27において、HD FS92は、FATエントリE(M)のP欄に−1(0xFFFFFFFF)を記録する。
ステップS28において、HD FS92は、FATエントリE(Q)のN欄に−1(0xFFFFFFFF)を記録し、FATエントリE(Q)のP欄に−1(0xFFFFFFFF)を記録する。ステップS29において、HD FS92は、クラスタ番号Qの空きクラスタが存在するとして、図14にリターンする。以上、空きクラスタ取得処理の説明を終了する。
なお、ステップS24において、FATエントリE(Q)のN欄の値が−1であると判定された場合、ステップS25乃至ステップS27の処理はスキップされる。
また、ステップS22において、空きクラスタリスト開始番号記録領域143に記録されている値Qが−1であると判定された場合、処理はステップS30に進む。ステップS30において、HD FS92は、空きクラスタが存在しないとして図14にリターンする。ただし、空きクラスタが存在しない場合、HDD58が一杯であるとして、図14のファイル作成処理は終了される。
以下、取得したクラスタ番号Qの空きクラスタを、クラスタ番号Vの空きクラスタと読み替えて説明を継続する。ステップS3において、HD FS92は、変数Xと変数Aに空きクラスタのクラスタ番号Vを代入する。ステップS4において、HD FS92は、占有クラスタ数Tに0を代入する。ステップS5において、HD FS92は、上述したステップS2の処理と同様に、新たに空きクラスタを取得する。取得した空きクラスタのクラスタ番号をVとする。ここで、新たに空きクラスタが取得できない場合、このファイル作成処理は終了される。
ステップS6において、HD FS92は、変数Bに値Vを代入する。ステップS7において、HD FS92は、占有クラスタ数Tを1だけインクリメントする。ステップS8において、HD FS92は、クラスタ番号Bをセクタ番号に変換する(例えば、図9に示すようにセクタとクラスタが対応付けられている場合、クラスタ番号2はセクタ番号28乃至35に変換される)。クラスタ番号Bに対応するセクタ番号を判別する)。ステップS9において、HD FS92は、ステップS1でバッファリングしたコンテンツデータを、ファイル記録領域121の変換したセクタ番号に記録させる。
バッファリングしたコンテンツデータの記録が終了した後、ステップS10において、HD FS92は、クラスタ番号Aのクラスタ(この時では空きクラスタである)に、クラスタ番号Bのクラスタを連結する。この連結処理について、図17のフローチャートを参照して説明する。
図16を参照して上述した処理と同様、HD FS92は、ステップS51において、クラスタ番号Aに対応するFATエントリE(A)を読み取り、ステップS52において、クラスタ番号Bに対応するFATエントリE(B)を読み取る。ステップS53において、HD FS92は、FATエントリE(A)のN欄にクラスタ番号Bを記録し、FATエントリE(B)のP欄にクラスタ番号Aを記録する。なお、ステップS53の処理は、SDRAM53に展開しているFAT141に対して実行する。以上、クラスタ番号Aのクラスタと、クラスタ番号Bのクラスタの連結処理の説明を終了する。
図14に戻り、ステップS11において、HD FS92は、ステップS9で記録したコンテンツのデータ量Sがクラスタサイズに等しいか否かを判定する。ステップS9で記録したコンテンツのデータ量Sがクラスタサイズに等しいと判定された場合、記録すべきコンテンツデータの記録が完了していないので、処理はステップS12に進む。
ステップS12において、先程記録したコンテンツデータの続きを、クラスタサイズ分だけ、バッファ56に転送させる。ステップS13において、変数Aにクラスタ番号Bを代入する。ステップS14において、HD FS92は、上述したステップS2の処理と同様に、新たに空きクラスタを取得する。取得した空きクラスタのクラスタ番号をVとする。なお、ステップS14で、新たに空きクラスタが取得できなかった場合には、処理はステップS17に進む。ステップS15において、HD FS92は、変数Bに値Vを代入する。ステップS16において、HD FS92は、占有クラスタ数Tを1だけインクリメントする。
この後、処理はステップS8に戻り、以降の処理が繰り返される。そして、ステップS11において、ステップS9で記録したコンテンツのデータ量Sがクラスタサイズに等しくないと判定された場合、記録すべきコンテンツデータの記録が完了したので、処理はステップS17に進む。
ステップS17において、HD FS92は、ステップS2で取得したクラスタ番号Xの空きクラスタにサイズ記録領域151を設け、その有効サイズ記録領域152に最後尾のクラスタに記録したデータ量Sを記録し、最終クラスタ番号記録領域153に変数Bの値を記録し、占有クラスタ数記録領域154に変数Tの値を記録する。
ステップS18において、ステップS10の処理で書き換えたFAT141で、ファイル記録領域121のFATエリアに記録されているFAT141を更新する。以上説明したようにして、新たにファイルが作成される。なお、作成されたファイルには、コンテンツデータが記録された一連のクラスタの先頭のクラスタ番号と同じ値のファイル識別子が発行される。
次に、ファイル識別子がXであるファイル(以下、ファイルXと記述する)の読み出し処理について、図18のフローチャートを参照して説明する。ステップS61において、HD FS92は、ファイルXが存在するか否かを判別するための検索処理を実行する。
ファイルXの検索処理について、図19のフローチャートを参照して説明する。ステップS81において、HD FS92は、エントリ番号Xに対応するFATエントリE(X)を取得する。ステップS82において、HD FS92は、FATエントリE(X)のP欄の値が−1(0xFFFFFFFF)であるか否かを判定する。FATエントリE(X)のP欄の値が−1であると判定された場合、処理はステップS83に進む。ステップS83において、HD FS92は、エントリ番号X(=クラスタ番号X)のクラスタは、ファイルが記録されている一連のクラスタのうちの先頭のクラスタであるので、ファイルXは存在すると判断して、図18のファイル読み出し処理に戻る。
反対に、ステップS82において、FATエントリE(X)のP欄の値が−1ではないと判定された場合、処理はステップS84に進む。ステップS84において、HD FS92は、エントリ番X(=クラスタ番号X)のクラスタは、ファイルが記録されている一連のクラスタのうちの先頭のクラスタではないので、ファイルXは存在しないと判断して、図18のファイル読み出し処理に戻る。以上、ファイルXの検索処理の説明を終了する。
以下、ファイル検索処理において、ファイルXが存在すると判断されたとして、説明を継続する。ステップS62において、HD FS92は、FATエントリE(X)のN欄の値が−1(0xFFFFFFFF)であるか否かを判定する。FATエントリE(X)のN欄の値が−1であると判定された場合、ファイルXにはデータが存在しないので、読み出し処理を終了する。
ステップS62において、FATエントリE(X)のN欄の値が−1ではない処理はステップS63に進む。ステップS63において、HD FS92は、クラスタ番号X(先頭のクラスタ)をセクタ番号に変換する。ステップS64において、HD FS92は、DMAコントローラ55を制御して、変換したセクタ番号に記録されているサイズ記録領域151を読み出してバッファ56にバッファリングさせる。ステップS64において、HD FS92は、ステップS63でバッファリンクしたサイズ記録領域151の有効サイズ記録領域152に記録されている有効サイズS(ファイルXが記録されている一連のクラスタのうちの最後尾のクラスタに記録されているデータ量)を読み取る。
ステップS66において、HD FS92は、変数CにFATエントリE(X)のN欄の値を代入する。ステップS67において、HD FS92は、図16を参照して上述した処理と同様に、クラスタ番号Cに対応する、すなわち、2番目のクラスタに対応するFATエントリE(C)を読み取る。ステップS68において、HD FS92は、クラスタ番号Cをセクタ番号に変換する。ステップS69において、HD FS92は、DMAコントローラ55を制御して、変換したセクタ番号のセクタに記録されている1クラスタ分のコンテンツデータを読み出し、バッファ56にバッファリングさせる。
ステップS70において、HD FS92は、FATエントリE(C)のN欄の値が−1(0xFFFFFFFF)であるか否かを判定する。FATエントリE(C)のN欄の値が−1ではないと判定された場合、処理はステップS71に進む。ステップS71において、HD FS92は、DMAコントローラ55を制御して、バッファ56がバッファリングしているデータの全てを、エンコーダ/デコーダ59などに出力させる。ファイルXのコンテンツデータの全てはまだ読み出されていないので、処理はステップS72に進む。ステップS72において、HD FS92は、変数CにFATエントリE(C)のN欄の値を代入する。処理はステップS67に戻り、以降の処理が繰り返される。
その後、ステップS70において、FATエントリE(C)のN欄の値が−1であると判定された場合、ファイルXのコンテンツデータが記録されている最後尾のクラスタからの読み出しが完了したので、処理はステップS73に進む。ステップS73において、HD FS92は、DMAコントローラ55を制御して、バッファ56がバッファリングしている、コンテンツデータの最後尾である有効データサイズS分のデータを、エンコーダ/デコーダ59などに出力させる。
なお、ステップS61のファイル検索処理において、ファイルXが存在しないと判断された場合、処理はステップS74に進み、エラー判定がなされて、ファイルXのファイル読み出し処理は終了となる。以上、ファイルXの読み出し処理の説明を終了する。
次に、ファイルXの逆読み出し処理について、図20のフローチャートを参照して説明する。ここで、逆読み出し処理とは、例えば、再生時間が100秒間であるコンテンツデータを、90秒目から100ミリ秒程度だけ再生した後、80秒目から100ミリ秒程度だけ再生し、次に、70秒目から100ミリ秒程度だけ再生するように、数秒間ごとに遡って再生させる場合に用いることができる処理である。
ステップS91において、HD FS92は、ファイルXのファイル識別子(=X、以下、ID(X)と記述する)を、セクタ番号に変換する。ただし、ID(X)は、ファイルXが記録されている一連のクラスタのうち、先頭のクラスタのクラスタ番号と同一である。
ステップS92において、クラスタXに対応するFATエントリE(X)を読み取る。ステップS93において、HD FS92は、DMAコントローラ55を制御して、ステップS91で変換したセクタ番号のセクタに記録されているサイズ記録領域151を読み出してバッファ56にバッファリングさせる。ステップS94において、HD FS92は、ステップS93でバッファリンクしたサイズ記録領域151の有効サイズ記録領域152から有効サイズSを、最終クラスタ番号記録領域153から最終クラスタ番号Zを読み取る。
ステップS95において、HD FS92は、最終クラスタ番号ZとID(X)が同一であるか否かを判定する。最終クラスタ番号ZとID(X)が同一であると判定された場合、ファイルXにコンテンツデータは存在しないので、逆読み出し処理を終了する。
最終クラスタ番号ZとID(X)が同一ではないと判定された場合、処理はステップS96に進む。ステップS96において、HD FS92は、最終クラスタ番号Zをセクタ番号に変換する。ステップS97において、HD FS92は、DMAコントローラ55を制御して、ステップS96で変換したセクタ番号に記録されているコンテンツデータの最後尾の部分を含むデータを読み出し、バッファ56にバッファリングさせる。ステップS98において、HD FS92は、DMAコントローラ55を制御して、バッファ56でバッファリングされているデータのうちのSバイト分、すなわち、コンテンツデータの最後尾の部分だけを、エンコーダ/デコーダ59などに出力させる。
ステップS99において、HD FS92は、最終クラスタ番号Zに対応するFATエントリE(Z)を読み取る。ステップS100において、HD FS92は、FATエントリE(Z)のP欄の値がID(X)と同一であるか否かを判定する。FATエントリE(Z)のP欄の値がID(X)と同一であると判定された場合、ファイルXのコンテンツデータは最後尾の1クラスタだけに記録されていたことになるので、逆読み出し処理を終了する。
FATエントリE(Z)のP欄の値がID(X)と同一ではないと判定された場合、最後尾側から1クラスタ分だけ遡って読み出すために、処理はステップS101に進む。ステップS101において、HD FS92は、変数CにFATエントリE(Z)のP欄の値を代入する。
ステップS102において、HD FS92は、クラスタ番号Cに対応するFATエントリE(C)を読み取る。ステップS103において、HD FS92は、クラスタ番号Cをセクタ番号に変換する。ステップS104において、HD FS92は、DMAコントローラ55を制御して、ステップS103で変換したセクタ番号に記録されているコンテンツデータを読み出し、バッファ56にバッファリングさせる。ステップS105において、HD FS92は、DMAコントローラ55を制御して、バッファ56でバッファリングされている1クラスタ分のコンテンツデータを、エンコーダ/デコーダ59などに出力させる。
ステップS106において、HD FS92は、クラスタ番号Cに対応するFATエントリE(C)のP欄の値がID(X)と同一であるか否かを判定する。FATエントリE(C)のP欄の値がID(X)と同一ではないと判定された場合、ファイルXの全てを読み出していないことになるので、1クラスタ分だけ遡って読み出すために、処理はステップS107に進む。ステップS107において、HD FS92は、変数CにFATエントリE(C)のP欄の値を代入する。処理はステップS102に戻り、其れ以降の処理が繰り替えされる。
その後、ステップS106において、FATエントリE(C)のP欄の値がID(X)と同一であると判定された場合、ファイルXを先頭まで全て読み出したことになるので、逆読み出し処理を終了する。以上、ファイルXの逆読み出し処理の説明を終了する。
以上説明したように、オーディオサーバ1のHD FS92によれば、ファイルを特定するためのファイル識別子として、固定長の値である、そのファイルが記録される領域の先頭クラスタのクラスタ番号を付与するようにしたので、ファイルの記録位置を簡単に特定することができる。よって、ファイル名が固定長ではない場合に較べて、ファイルの検索時間を大幅に減らすことができる。
また、ファイル識別子が固定長であることにより、ファイルの検索に要する時間を均一化することができる。
また、オーディオサーバ1のHD FS92によれば、記録するファイルのサイズに制限がないので、オーディオデータだけでなく、ビデオデータのようなより大きなサイズのデータをファイルとして記録することができる。
また、オーディオサーバ1のHD FS92によれば、1つのファイルを区負数のクラスタに亘って記録する場合、順方向にクラスタを利用するので、記録時や再生時には、シークが一定方向となる。よって、記録時の記録漏れや再生時の音飛びの発生が抑止される。
次に、フォルダ、アルバム、またはトラックに対応するオブジェクトについて、図21乃至図27を参照して説明する。図21は、オブジェクトが記録されるオブジェクト記録領域122の論理構造を示している。オブジェクト記録領域122は、システムエリア161と、所定の容量に区画された複数のチャンクから構成される。オブジェクトは、チャンクに記録される。
システムエリア161には、ヘッダ162、オブジェクト型記録領域163、および領域情報記録領域164が設けられている。複数のチャンクには、その先頭から順番に1以降のシリアルな番号が付与されている、以下、例えば、番号1が付与されているチャンクをチャンク1、番号2が付与されているチャンクをチャンク2などと記述する。
チャンクは、さらに所定の容量のページに区画されている。チャンクを構成するページには、その先頭から順番に0以降のシリアルな番号が付与されている、以下、例えば、番号0が付与されているページをページ0、番号1が付与されているページをページ0などと記述する。
図22は、システムエリア161のオブジェクト型記録領域163の構造を示している。ヘッダ165とT個のエントリから構成される。Tは予め設定されている定数である。ヘッダ165には、エントリ数記録領域166が設けられている。エントリ数記録領域166には、現在登録されているエントリの数(最大値はTである)が記録される。
オブジェクト型記録領域163の各エントリには、サイズ記録領域167、基本オブジェクト型番号記録領域168、およびパラメータ記録領域169が設けられている。例えば、エントリtには、オブジェクト型番号tに関する情報が記録される。すなわち、エントリtのサイズ記録領域167には、オブジェクト型番号tのオブジェクトのサイズが記録される。エントリtの基本オブジェクト型番号記録領域168には、オブジェクト型番号tのオブジェクトが属する基本オブジェクト型を示す基本オブジェクト型番号が記録される。エントリtのパラメータ記録領域169には、オブジェクト型番号tのオブジェクトのサイズが可変長である場合のサイズに関する情報が記録される。
図23は、システムエリア161の領域情報記録領域164を示している。領域情報記録領域164は、オブジェクト記録領域122のページ総数(チャンクの総数に1チャンクを構成するページ数を乗算した値)のビット列で構成される。ただし、図23は、説明の便宜上、領域情報記録領域164を、(チャンクの総数)列×(1チャンクを構成するページ数)行のマトリクスを用いて示している。例えば、図23において、q列p行の”○”で示すビットは、チャンクqのページpに対応しており、チャンクqのページpが使用中である場合、”○”で示すビットには1が記録される。反対に、チャンクqのページpが使用中ではない場合、”○”で示すビットには0が記録される。
図24は、ロワーミドルウェアレイヤ74に含まれるHD DB91に相当するオブジェクト管理部124の構成例を示している。オブジェクト管理部124は、オブジェクト型登録部171、記憶領域管理部172、セッション管理部173、およびキャッシュ管理部174から構成される。
オブジェクト型登録部171は、オブジェクト型の登録(オブジェクト型記録領域163への書き込み)を行う。また、オブジェクト型登録部171は、オブジェクト型の問い合わせに対する応答(オブジェクト型記録領域163からの読み出し)を行う。
記憶領域管理部172は、領域情報記録領域164の所定のビットを反転させる。また、記憶領域管理部172は、領域情報記録領域164のビットを読み出すことにより、所定のページ数の連続未使用領域を検索する。さらに、記憶領域管理部172は、各オブジェクトに対して識別子を発行する。
セッション管理部173は、現在実行中のセッションに対してセッション番号を発行するとともに、セッション管理情報181(図25)を管理する。ここで、セッションとは、データの書き込み、読み出しなどを制御する処理を示す用語である。
図25は、セッション管理情報181の構成例を示している。セッション管理情報181は、現在開かれているセッションの数(以下、カレントセッション数と記述する)が格納されるカレントセッション数格納領域182と、各オブジェクトに対応し、そのアクセス権を保有しているセッションの情報が記録されているS個のエントリから構成される。カレントセッション数の最大値と値Sは、予め設定されている。
セッション管理情報181のエントリには、オブジェクト識別子格納領域183、リードライトセッション番号格納領域184、リードオンリセッション番号格納領域185乃至188、オブジェクト状態格納領域189、リードキャッシュアドレス格納領域190、ライトキャッシュアドレス格納領域191、およびアクセス時刻格納領域192が設けられている。
オブジェクト識別子格納領域183には、対応するオブジェクトのオブジェクト識別子(図27)が格納される。リードライトセッション番号格納領域184には、対応するオブジェクトに対して書き込み権を有するセッションのセッション番号が格納される。リードオンリセッション番号格納領域185乃至188には、対応するオブジェクトに対して読み出し権を有するセッションのセッション番号が格納される。なお、オブジェクトに対して読み出し権を有する複数のセッションが同時に存在してもよく、図25は、4つまでの読み出し権を有すると、1つだけの書き込みおよび読み出し権を有する場合を示している。
オブジェクト状態格納領域189には、対応するオブジェクトの状態を示す情報(作成を示す”CREATE”、更新を示す”UPDATE”、または削除を示す”REMOVE”)が格納される。リードキャッシュアドレス格納領域190には、読み出すオブジェクトを一時的に記憶させるリードキャッシュのアドレスが格納される。ライトキャッシュアドレス格納領域191には、書き込むオブジェクトを一時的に記憶させるライトキャッシュのアドレスが格納される。アクセス時刻格納領域192には、対応するオブジェクトに対する最終アクセス時刻が格納される。
なお、オブジェクト識別子格納領域183乃至アクセス時刻格納領域192に格納すべき情報が存在しない場合、0を格納する。
図26は、チャンクに記録されるオブジェクトの2種類の基本オブジェクト型である基本オブジェクト第1型と基本オブジェクト第2型の構成例を示している。
基本オブジェクト第1型は、図26(A)に示すように、自己のオブジェクト識別子が記録されるオブジェクト識別子記録領域201、および任意のデータ(例えば、ユーザが設定するオブジェクトの名前などのデータ)が記録される任意データ記録領域202から構成される。基本オブジェクト第1型には、フォルダリスト、フォルダ、およびアルバムのオブジェクトが含まれる。
基本オブジェクト第2型は、図26(B)に示すように、自己のオブジェクト識別子が記録されるオブジェクト識別子記録領域201、任意のデータが記録される任意データ記録領域202、および自己(オブジェクト)に対応するファイルのファイル識別子が記録されるファイル識別子記録領域203から構成される。基本オブジェクト第2型には、トラックのオブジェクトが含まれる。
オブジェクト識別子記録領域201に記録されるオブジェクト識別子は、図27に示すように、対応するオブジェクトが格納されている一連のページの先頭を示す、チャンク番号とそのページ番号、型番号から構成される。型番号は、対応するオブジェクトが属する基本オブジェクト型番号(基本オブジェクト第1型、または基本オブジェクト第2型の一方)と、対応するオブジェクトの型が登録されているオブジェクト型記録領域163のエントリ番号から構成される。
次に、オブジェクトの作成処理、オブジェクトの検索処理、オブジェクトの更新処理、ストリームオブジェクトの作成処理、およびストリームオブジェクトの検索処理について、図28乃至図37のフローチャートを参照して説明する。ここで、ストリームオブジェクトとは、特に、ファイル記録領域121に記録されたコンテンツデータと1対1に対応するオブジェクト、すなわち、トラックを指す用語である。ストリームオブジェクトは、基本オブジェクト第2型(図26(B))に属する。したがって、ストリームオブジェクトではないオブジェクトは、フォルダまたはアルバムのオブジェクトであり、基本オブジェクト第1型に属する。
なお、これらの処理は、オブジェクト管理部124、すなわち、ファームウェアのロワーミドルウェアレイヤ74に属するHD DB91によって制御される。
始めに、ストリームオブジェクトではないオブジェクトの作成処理について、オブジェクト型番号tのオブジェクトを作成する場合を例に、図28のフローチャートを参照して説明する。なお、オブジェクト型番号tには、図27に示したように、基本型番号(いまの場合、基本オブジェクト第1型)とエントリ番号が含まれている。
ステップS121において、HD DB91は、ライトセッションを開設する。ライトセッションを開設する処理について、図29のフローチャートを参照して説明する。ステップS141において、HD DB91は、セッション管理情報181のカレントセッション数格納領域182に格納されているカレントセッション数を読み出し、読み出したカレントセッション数が予め設定されている最大値よりも小さいか否かを判定する。カレントセッション数が予め設定されている最大値よりも小さいと判定された場合、処理はステップS142に進む。
ステップS142において、HD DB91は、セッション管理情報181のカレントセッション数格納領域182に格納されているカレントセッション数を1だけインクリメントする。ステップS143において、HD DB91は、ライトセッションを開設し、例えば、乱数などによってセッション番号Zを発行する。処理は図28に戻る。
なお、ステップS141において、カレントセッション数が予め設定されている最大値よりも小さくないと判定された場合、さらにセッションを開設することができないので、処理はステップS144に進み、ステップS144において、HD DB91は、エラーと判断する。セッション開設処理は終了され、図28のオブジェクト作成処理は中断される。
図28のステップS122において、HD DB91は、オブジェクト型番号tのオブジェクトを記録するチャンクのページを確保するために、オブジェクト型記録領域163のエントリtのサイズ記録領域167から、オブジェクト型番号tのオブジェクトのサイズを読み出し、そのサイズに相当するチャンクのページ数を算出する。算出したページ数をgとする。
ステップS123において、HD DB91は、セッション管理情報181を構成する複数のエントリのうちの空きエントリを確保する。空きエントリを確保する処理について、図30のフローチャートを参照して説明する。
ステップS151において、HD DB91は、変数Mを1に初期化する。ステップS152において、HD DB91は、変数Mがセッション管理情報181を構成するエントリの数S以下であるか否かを判定する。変数Mがエントリの数S以下であると判定された場合、処理はステップS153に進む。ステップS153において、HD DB91は、セッション管理情報181を構成するエントリMのオブジェクト識別子格納領域183の値を読み出す。ステップS154において、HD DB91は、読み出したエントリMのオブジェクト識別子格納領域183の値が0であるか否かを判定する。エントリMのオブジェクト識別子格納領域183の値が0であると判定された場合、エントリMは空きエントリであると判断できるので、エントリMを確保して図28に戻る。
ステップS154において、エントリMのオブジェクト識別子格納領域183の値が0ではないと判定された場合、処理はステップS155に進む。ステップS155において、HD DB91は、変数Mを1だけインクリメントする。処理はステップS152に戻り、以降の処理が繰り返される。その後、ステップS154において、エントリMのオブジェクト識別子格納領域183の値が0であると判定されることなく、ステップS152において、変数Mがエントリの数S以下ではないと判定された場合、現状では空きエントリが存在しないので、空きエントリを作り出すために、処理はステップS156に進む。
ステップS156において、HD DB91は、セッション管理情報181を構成するエントリのうち、リードライトセッション番号格納部184およびリードオンリセッション番号格納部185乃至188の値の値が全て0であるエントリが存在するか否かを判定する。そのようなエントリが存在すると判定された場合、処理はステップS157に進む。ステップS157において、HD DB91は、リードライトセッション番号格納部184およびリードオンリセッション番号格納部185乃至188の値の値が全て0であるエントリのうち、アクセス時刻格納領域192の値が最も小さいエントリ(すなわち、最も古いアクセス時刻のエントリ)を抽出する。
ステップS158において、HD DB91は、抽出したエントリのオブジェクト識別子格納領域182乃至アクセス時刻格納領域192の値を0にクリアし、そのエントリを空きエントリMとして確保する。処理は図28に戻る。
なお、ステップS156において、セッション管理情報181を構成するエントリのうち、リードライトセッション番号格納部184およびリードオンリセッション番号格納部185乃至188の値の値が全て0であるエントリが存在しないと判定された場合、空きエントリは確保できないので、ステップS159に進む。ステップS159において、HD DB91は、エラーと判断する。空きエントリ確保処理は終了され、図28のオブジェクト作成処理は中断される。
図28に戻り、ステップS124において、HD DB91は、領域情報記録領域164のビット列のうち、gビット連続して0が記録されているビット列を検索する。検索したgビット連続して0が記録されているビット列の先頭の位置をq列p行とする。ステップS125において、HD DB91は、確保したエントリMのオブジェクト識別子格納領域183に、図27に示したように、チャンク番号q、ページ番号p、オブジェクト型番号tからなるオブジェクト識別子OID(q,p,t)を格納する。また、HD DB91は、セッション管理情報181のエントリMのリードライトセッション番号格納領域184にセッション番号Zを格納し、さらに、オブジェクト状態格納領域189に作成を示す”CREATE”を記録する。
ステップS126において、HD DB91は、オブジェクトのサイズであるページ数gに等しいライトキャッシュ領域dをバッファ56に確保する。ステップS127において、HD DB91は、セッション管理情報181のエントリMのライトキャッシュアドレス格納領域191に、確保したバッファ56におけるライトキャッシュ領域dのアドレスを格納する。
ステップS128において、HD DB91は、バッファ56に確保したライトキャッシュ領域dに、図26(A)に示したオブジェクト基本第1型のオブジェクトXの記録を開始するが、その始めとして、ライトキャッシュ領域dのオブジェクト識別子記録領域201に、オブジェクト識別子OID(q,p,t)を記録する。ステップS129において、HD DB91は、作成するオブジェクトの任意のデータ(例えば、作成するオブジェクトの名称など)を、ライトキャッシュ領域dの任意データ記録領域202に記録する。
ステップS130において、HD DB91は、ユーザの操作に対応する信号Iの入力を待つ。ステップS131において、HD DB91は、信号Iがcommit、すなわち、セッション作成を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップS132に進み、ライトセッションZが確定される。反対に、信号Iがcommitではないと判定された場合、処理はステップS133に進み、ライトセッションZが破棄される。
ステップS132のライトセッションを確定する処理について、図31のフローチャートを参照して説明する。なお、セッションを確定するとは、当該セッションが開設された後に行われたオブジェクトの作成、更新、移動などに、オブジェクト記録領域122の記録を反映し、確定することである。
ステップS171において、HD DB91は、変数Mを1に初期化する。ステップS172において、HD DB91は、変数Mがセッション管理情報181を構成するエントリの数S以下であるか否かを判定する。変数Mがエントリの数S以下であると判定された場合、処理はステップS173に進む。ステップS173において、HD DB91は、セッション管理情報181を構成するエントリMのリードライトセッション番号格納領域184の値を読み出し、セッション番号Zと一致するか否かを判定する。エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致しないと判定された場合、エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致するエントリを検索するために、処理はステップS174に進む。
ステップS174において、HD DB91は、変数Mを1だけインクリメントする。処理はステップS172に戻り、以降の処理が繰り返される。ステップS173において、エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致すると判定された場合、処理はステップS175に進む。すなわち、リードライトセッション番号格納領域184にセッション番号Zが格納されているエントリだけが抽出されて、ステップS175以降の処理が施される。
ステップS175において、HD DB91は、リードライトセッション番号格納領域184にセッション番号Zが格納されているエントリMのオブジェクト識別子格納領域183からオブジェクト識別子を読み出す。ステップS176において、HD DB91は、リードライトセッション番号格納領域184にセッション番号Zが格納されているエントリMのオブジェクト状態格納領域189からオブジェクト状態を示す情報Jを読み出す。ステップS176において、HD DB91は、オブジェクト状態を示す情報Jが”CREATE”,”UPTATE”、または”REMOVE”の何れであるかを判定する。
ステップS177において、オブジェクト状態を示す情報Jが”CREATE”であると判定された場合、処理はステップS178に進む。ステップS178において、HD DB91は、バッファ56に確保したライトキャッシュ領域dに記録されているオブジェクトを、オブジェクト記録領域122のチャンクpのページq以降に記録する。ステップS179において、HD DB91は、領域情報記録領域164のq列p行以降のgビットに1を記録する。
ステップS180において、HD DB91は、エントリMのライトキャッシュアドレス格納領域191の値を、リードキャッシュアドレス格納領域190にコピーする。このとき、リードキャッシュアドレス格納領域190に0以外の値が格納されていたならば、その値が示すバッファ56の設けられるリードキャッシュ領域を解放する。
ステップS181において、HD DB91は、エントリMのリードライトセッション番号格納領域184、およびライトキャッシュアドレス格納領域191に0を格納する。ステップS182において、HD DB91は、エントリMのアクセス時刻格納領域192の値を現在の時刻で更新する。
ステップS177において、オブジェクト状態を示す情報Jが”UPDATE”であると判定された場合、処理はステップS183に進む。ステップS183において、HD DB91は、バッファ56に確保したライトキャッシュ領域dに記録されているオブジェクトを、オブジェクト記録領域122のチャンクpのページq以降に記録する。処理はステップS180に進む。
ステップS177において、オブジェクト状態を示す情報Jが”REMOVE”であると判定された場合、処理はステップS184に進む。ステップS184において、HD DB91は、領域情報記録領域164のq列p行以降のgビットに0を記録する。ステップS185において、HD DB91は、エントリMがバッファ56に確保しているライトキャッシュとリードキャッシュを解放する。ステップS186において、HD DB91は、エントリMのオブジェクト識別子格納領域183乃至アクセス時刻格納領域192に0を格納する。処理はステップS174に進む。
その後、ステップS172において、変数Mがエントリの数S以下ではないと判定されるまで、以降の処理が繰り返される。変数Mがエントリの数S以下ではないと判定された場合、ライトセッションを確定する処理が完了される。
図28のステップS133の処理、すなわち、ライトセッションを破棄する処理について、図32のフローチャートを参照して説明する。ステップS191において、HD DB91は、変数Mを1に初期化する。ステップS192において、HD DB91は、変数Mがセッション管理情報181を構成するエントリの数S以下であるか否かを判定する。変数Mがエントリの数S以下であると判定された場合、処理はステップS193に進む。
ステップS193において、HD DB91は、セッション管理情報181を構成するエントリMのリードライトセッション番号格納領域184の値を読み出し、セッション番号Zと一致するか否かを判定する。エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致しないと判定された場合、エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致するエントリを検索するために、処理はステップS194に進む。ステップS194において、HD DB91は、変数Mを1だけインクリメントする。処理はステップS192に戻り、以降の処理が繰り返される。
ステップS193において、エントリMのリードライトセッション番号格納領域184の値とセッション番号Zが一致すると判定された場合、処理はステップS195に進む。すなわち、リードライトセッション番号格納領域184にセッション番号Zが格納されているエントリだけが抽出されて、ステップS195以降の処理が施される。
ステップS195において、HD DB91は、エントリMがバッファ56に確保しているライトキャッシュ領域を解放する。ステップS196において、HD DB91は、エントリMのオブジェクト状態格納領域189に格納されているオブジェクト状態が”CREATE”であるか否かを判定し、オブジェクト状態が”CREATE”であるはないと判定した場合、ステップS197に進む。
ステップS197において、HD DB91は、エントリMのリードライトセッション番号格納領域184、およびライトキャッシュアドレス格納領域191に0を格納する。ステップS198において、HD DB91は、エントリMのアクセス時刻格納領域192の値を現在の時刻で更新する。処理はステップS194に進む。
なお、ステップS196において、エントリMのオブジェクト状態格納領域189に格納されているオブジェクト状態が”CREATE”であると判定された場合、処理はステップS199に進む。ステップS199において、HD DB91は、エントリMのリードライトセッション番号格納領域184、およびライトキャッシュアドレス格納領域191以外、すなわち、オブジェクト識別子格納領域183、リードオンリセッション番号格納領域185乃至188、オブジェクト状態格納領域189、リードキャッシュアドレス格納領域190、およびアクセス時刻格納領域192に0を格納する。処理はステップS194に進む。
その後、ステップS192において、変数Mがエントリの数S以下ではないと判定されるまで、以降の処理が繰り返される。変数Mがエントリの数S以下ではないと判定された場合、ライトセッションを破棄する処理が完了される。
次に、オブジェクトの検索処理について、オブジェクト識別子OID=Xであるオブジェクト(以下、オブジェクトXと記述する)を検索する場合を例として、図33のフローチャートを参照して説明する。なお、セッションは既に開設されているものとする。
ステップS201において、HD DB91は、オブジェクトXに対応するエントリMを取得する。オブジェクトXに対応するエントリを取得する処理について、図34のフローチャートを参照して説明する。
ステップS211において、HD DB91は、変数Mを1に初期化する。ステップS212において、HD DB91は、変数Mがセッション管理情報181を構成するエントリの数S以下であるか否かを判定する。変数Mがエントリの数S以下であると判定された場合、処理はステップS213に進む。
ステップS213において、HD DB91は、セッション管理情報181を構成するエントリMのオブジェクト識別子格納領域183の値を読み出し、オブジェクトXのオブジェクト識別子OID=Xと一致するか否かを判定する。エントリMのオブジェクト識別子格納領域183の値と、オブジェクトXのオブジェクト識別子OID=Xが一致しないと判定された場合、オブジェクト識別子格納領域183の値と、オブジェクトXのオブジェクト識別子OID=Xが一致するエントリを検索するために、処理はステップS214に進む。
ステップS214において、HD DB91は、変数Mを1だけインクリメントする。処理はステップS212に戻り、以降の処理が繰り返される。ステップS213において、エントリMのオブジェクト識別子格納領域183の値と、オブジェクトXのオブジェクト識別子OID=Xが一致すると判定された場合、オブジェクトXに対応するエントリMを取得することができたので、この処理が終了され、処理は図33に戻る。
なお、ステップS213において、エントリMのオブジェクト識別子格納領域183の値と、オブジェクトXのオブジェクト識別子OID=Xが一致しないと判定される場合が続き、ステップS212において、変数Mがエントリの数S以下ではないと判定された場合、処理はステップS215に進む。ステップS215において、HD DB91は、エラーである、すなわち、オブジェクトXに対応するエントリMを取得することができなかったと判断して、この処理を終了する。処理は図33に戻る。
図33に戻り、ステップS201の処理でオブジェクトXに対応するエントリMを取得できた場合、処理はステップS202に進む。ステップS202において、HD DB91は、オブジェクトXに対応するエントリMを取得できたので、オブジェクトXはバッファ56に存在すると判断して、処理を終了する。
反対に、ステップS201の処理でオブジェクトXに対応するエントリMを取得できなかった場合、処理はステップS203に進み。ステップS203において、HD DB91は、オブジェクトXのオブジェクト識別子OID=Xを分解して、オブジェクトが記録されているオブジェクト記録領域122のチャンク番号、ページ番号、オブジェクトXの型番号tを取得する。
ステップS204において、HD DB91は、オブジェクト型記録領域163から、型番号tに対応するエントリのサイズ記録領域167の値を読み出し、その値に基づいてオブジェクトXを記録するために必要なページ数gを算出する。
ステップS205において、HD DB91は、領域情報記憶領域164を参照し、q行p列以降のgビットが1であるか否かを判定する。領域情報記憶領域164のq行p列以降のgビットが1であると判定された場合、処理はステップS206に進む。ステップS206において、HD DB91は、ページ数gに相当するリードキャッシュ領域cをバッファ56に設定する。ステップS207において、HD DB91は、オブジェクト記録領域122のチャンクqのページp以降のページ数gに記録されているデータを、バッファ56のリードキャッシュ領域cにコピーする。
ステップS208において、HD DB91は、リードキャッシュ領域cにコピーしたデータのオブジェクト識別子記録領域201に相当する部分に記録されているオブジェクト識別子と、オブジェクト識別子Xが一致するか否かを判定する。一致すると判定された場合、リードキャッシュ領域cにキャッシュされているデータがオブジェクトXであるので、処理はステップS202に進む。
ステップS208において、リードキャッシュ領域cにコピーしたデータのオブジェクト識別子記録領域201に相当する部分に記録されているオブジェクト識別子と、オブジェクト識別子Xが一致しないと判定された場合、処理はステップS209に進む。ステップS209において、HD DB91は、オブジェクト記録領域122にもオブジェクトXは存在していないと断定して処理を終了する。
次に、オブジェクトXの更新処理について、図35のフローチャートを参照して説明する。ここで、オブジェクトXの更新処理とは、オブジェクトXの任意データを書き換える処理である。
ステップS221において、HD DB91は、図29を参照して上述したステップS121の処理と同様に、ライトセッションZを開設する。ステップS222において、HD DB91は、図34を参照して上述したステップS201の処理と同様に、オブジェクトXに対するエントリMを取得する。
ステップS222の処理でオブジェクトXに対応するエントリMを取得できた場合、オブジェクトXはバッファ56に設定されているリードキャッシュ領域cにキャッシュされていると判断して、処理はステップS223に進む。ステップS223において、HD DB91は、エントリMのリードライトセッション番号格納領域184の値が0であるか否かを判定する。エントリMのリードライトセッション番号格納領域184の値が0であると判定された場合、処理はステップS224に進む。
ステップS224にいて、HD DB91は、エントリMのリードライトセッション番号格納領域184に、ステップS221で開設したライトセッションのセッション番号Zを格納する。ステップS225において、HD DB91は、オブジェクトXのオブジェクト識別子OID=Xを分解して、オブジェクトが記録されているオブジェクト記録領域122のチャンク番号、ページ番号、オブジェクトXの型番号tを取得する。
ステップS226において、HD DB91は、オブジェクト型記録領域163から、型番号tに対応するエントリのサイズ記録領域167の値を読み出し、その値に基づいてオブジェクトXを記録するために必要なページ数gを算出する。ステップS227において、HD DB91は、ページ数gに相当するライトキャッシュ領域dをバッファ56に設定する。ステップS228において、HD DB91は、エントリMのライトキャッシュアドレス格納領域191に、ライトキャッシュ領域dのアドレスを格納する。
ステップS229において、HD DB91は、バッファ56のリードキャッシュ領域cのデータを、ライトキャッシュ領域dにコピーする。ステップS230において、HD DB91は、オブジェクトXの更新する任意データを、ライトキャッシュ領域dにコピーされたオブジェクトXの任意データ記録領域202に記録する。ステップS231において、HD DB91は、エントリMのオブジェクト状態格納領域189に更新を示す情報”UPDATE”を格納する。
ステップS232において、HD DB91は、ユーザの操作に対応する信号Iの入力を待つ。ステップS233において、HD DB91は、信号Iがcommit、すなわち、セッション更新を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップS234に進む。ステップS234において、HD DB91は、図31を参照して上述したステップS132の処理と同様に、ライトセッションZを確定する。反対に、信号Iがcommitではないと判定された場合、処理はステップS235に進む。ステップS235において、HD DB91は、図32を参照して上述したステップS133の処理と同様に、ライトセッションZを破棄する。
なお、ステップS223において、エントリMのリードライトセッション番号格納領域184の値が0ではないと判定された場合、オブジェクトXはセッションZ以外の他のセッションによって更新中であると判断できるので、処理はステップS235に進む。
また、ステップS222の処理において、オブジェクトXに対応するエントリMを取得できなかった場合、処理はステップS236に進み。ステップS236において、HD DB91は、図30を参照して上述したステップS123の処理と同様に、空きエントリMを確保する。
ステップS237において、HD DB91は、オブジェクトXのオブジェクト識別子OID=Xを分解して、オブジェクトが記録されているオブジェクト記録領域122のチャンク番号、ページ番号、オブジェクトXの型番号tを取得する。ステップS238において、HD DB91は、オブジェクト型記録領域163から、型番号tに対応するエントリのサイズ記録領域167の値を読み出し、その値に基づいてオブジェクトXを記録するために必要なページ数gを算出する。ステップS239において、HD DB91は、ページ数gに相当するリードキャッシュ領域cとライトキャッシュ領域dをバッファ56に設定する。
ステップS240において、HD DB91は、エントリMのリードキャッシュアドレス格納領域190にリードキャッシュ領域cのアドレスを格納し、エントリMのライトキャッシュアドレス格納領域191にライトキャッシュ領域dのアドレスを格納し、エントリMのオブジェクト識別子格納領域183にオブジェクトXのオブジェクト識別子IOD=Xを格納する。
ステップS241において、HD DB91は、オブジェクト記録領域122のチャンクqのページp以降のページ数gまでに記録されているオブジェクトXのデータを、バッファ56のリードキャッシュ領域cにコピーする。処理はステップS229に進む。
以上説明したように、ファイルXの更新処理では、リードキャッシュ領域cからライトキャッシュ領域dにファイルXのデータがコピーされ、ライトキャッシュ領域dにキャッシュされているファイルXのデータが書き換えられ、書き換えられた結果が、セッションを確定する処理により、オブジェクト記録領域122に記録される。
次に、ファイル記録領域121に記録されるコンテンツデータと1対1に対応するトラックのオブジェクト、すなわち、オブジェクト型番号t'のストリームオブジェクトを作成する処理について、図36のフローチャートを参照して説明する。なお、オブジェクト型番号t'には、図27に示したように、基本型番号(いまの場合、基本オブジェクト第2型)とエントリ番号が含まれている。
ステップS251において、HD DB91は、図29のフローチャートを参照して上述したステップS121の処理と同様に、ライトセッションを開設する。ステップS252において、HD DB91は、オブジェクト型番号t'のストリームオブジェクトを記録するチャンクのページを確保するために、オブジェクト型記録領域163のエントリt'のサイズ記録領域167から、オブジェクト型番号t'のオブジェクトのサイズを読み出し、そのサイズに相当するチャンクのページ数を算出する。算出したページ数をgとする。
ステップS253において、HD DB91は、図30のフローチャートを参照して上述したステップS123の処理と同様に、セッション管理情報181を構成する複数のエントリのうちの空きエントリMを確保する。ステップS254において、HD DB91は、領域情報記録領域164のビット列のうち、gビット連続して0が記録されているビット列を検索する。検索したgビット連続して0が記録されているビット列の先頭の位置をq列p行とする。ステップS255において、HD DB91は、確保したエントリMのオブジェクト識別子格納領域183に、図27に示したように、チャンク番号q、ページ番号p、オブジェクト型番号t'からなるオブジェクト識別子OID(q,p,t')を格納する。また、HD DB91は、セッション管理情報181のエントリMのリードライトセッション番号格納領域184にセッション番号Zを格納し、さらに、オブジェクト状態格納領域189に作成を示す”CREATE”を記録する。
ステップS256において、HD DB91は、ストリームオブジェクトのサイズであるページ数gに等しいライトキャッシュ領域dをバッファ56に確保する。ステップS257において、HD DB91は、セッション管理情報181のエントリMのライトキャッシュアドレス格納領域191に、確保したバッファ56におけるライトキャッシュ領域dのアドレスを格納する。
ステップS258において、HD DB91は、バッファ56に確保したライトキャッシュ領域dに、図26(B)に示したオブジェクト基本第2型のストリームオブジェクトXの記録を開始するが、その始めとして、ライトキャッシュ領域dのオブジェクト識別子記録領域201に、オブジェクト識別子OID(q,p,t')を記録する。ステップS259において、HD DB91は、ストリームオブジェクトに対応する、HD FS92によって作成されるコンテンツデータのファイル識別子F(このコンテンツデータが記録された一連のクラスタの先頭のクラスタ番号と同じ値)を取得する。ステップS260において、HD DB91は、ライトキャッシュ領域dのファイル識別子記録領域103にファイル識別子Fを記録する。
ステップS261において、HD DB91は、作成するストリームオブジェクトの任意データ(例えば、作成するストリームオブジェクトの名称など)の取得を開始する。ステップS262において、HD DB91は、任意データの取得が完了するまで待機する。なお、ステップS261およびS262の処理の間に、HD FS92により、当該ストリームオブジェクトに対応するファイル識別子Fのコンテンツデータのファイルが作成されてファイル記録領域121に記録される。
ステップS263において、HD DB91は、ライトキャッシュ領域dの任意データ記録領域202に、取得した任意データを記録する。
ステップS264において、HD DB91は、ユーザの操作に対応する信号Iの入力を待つ。ステップS265において、HD DB91は、信号Iがcommit、すなわち、セッション作成を確定するものであるか否かを判定する。信号Iがcommitであると判定された場合、処理はステップS266に進む。ステップS266において、HD DB91は、図31を参照して上述したステップS132に処理と同様に、ライトセッションZを確定する。
反対に、ステップS265において、信号Iがcommitではないと判定された場合、処理はステップS267に進む。ステップS267において、HD DB91は、図32を参照して上述したステップS133に処理と同様に、ライトセッションZを破棄する。ステップS268において、HD DB91は、HD FS92にファイルFの削除を依頼する。以上、ストリームオブジェクトの作成処理の説明を終了する。
次に、オブジェクト識別子OID=Xであるストリームオブジェクト(以下、ストリームオブジェクトXと記述する)を検索する処理について、図37のフローチャートを参照して説明する。なお、セッションは既に開設されているものとする。
ステップS271において、HD DB91は、図33を参照して上述したオブジェクトXの検索処理と同様の処理を実行する。ステップS272において、ステップS271の処理で検索されたオブジェクトXのオブジェクト識別子OID=Xに含まれるオブジェクト型番号を取得する。取得したオブジェクト型番号をtとする。さらに、HD DB91は、オブジェクト型番号tに含まれるオブジェクト基本型番号を取得する。
ステップS273において、HD DB91は、検索されたオブジェクトXの基本オブジェクト型番号が、基本オブジェクト第2型であるか否かを判定する。検索されたオブジェクトXの基本オブジェクト型番号が基本オブジェクト第2型であると判定された場合、検索されたオブジェクトXがストリームオブジェクトであるので、処理はステップS274に進む。ステップS274において、HD DB91は、検索されたストリームオブジェクトXのファイル識別子記録領域203からファイル識別子を読み取りHD FS92に供給する。
なお、ステップS271において、オブジェクト識別子OID=Xのオブジェクトを検索できなかった場合、処理はステップS275に進む。また、ステップS273において、検索されたオブジェクトXの基本オブジェクト型番号が基本オブジェクト第2型ではないと判定された場合も、処理はステップS275に進む。ステップS275において、HD DB91は、エラー、すなわち、ストリームオブジェクトXは存在しないと判断してストリームオブジェクト検索処理を終了する。
次に、図38は、オブジェクト記録領域122に記録されるオブジェクトのディレクトリ構造を示している。オブジェクト記録領域122には、ルート211の下、フォルダリストオブジェクト212、フォルダオブジェクト213、アルバムオブジェクト214、およびトラックオブジェクト215が階層構造をなしている。
HD DB91は、フォルダリストオブジェクト212の下に、複数のフォルダオブジェクト213を生成することができる。フォルダオブジェクト213の下には、複数のアルバムオブジェクト214を生成することができる。アルバムオブジェクト214の下には、複数のトラックオブジェクト215を生成することができる。トラックオブジェクト215は、1曲分のコンテンツデータに対応している。
フォルダオブジェクト213、アルバムオブジェクト214、およびトラックオブジェクト215は、再生する楽曲を選択する際などにユーザに提示されるオブジェクトである。HD DB91は、ユーザに提示されるオブジェクトではない他の情報のオブジェクト(CC(Content Control)オブジェクト216など)を、ルート211、フォルダリストオブジェクト212、またはフォルダオブジェクト213の下に生成することができる。
さらに、HD DB91は、フォルダリストオブジェクト212の下にフォルダオブジェクト213を生成した場合、同じフォルダリストオブジェクト212の下にフォルダオブジェクト213以外の他のオブジェクトを禁止する。また、フォルダオブジェクト213の下にアルバムオブジェクト214を生成した場合、同じフォルダオブジェクト213の下にアルバムオブジェクト214以外のオブジェクトを生成することを禁止する。また、アルバムオブジェクト214の下には、トラックオブジェクト215以外のオブジェクトを生成することを禁止する。
各オブジェクトは、上述した規則に従って記録されるので、オブジェクト記録領域122には、フォルダ群217、アルバム群218、およびトラック群219が構築される。
次に、各オブジェクトのデータフォーマットについて説明する。
図39は、フォルダリストオブジェクト212のデータフォーマットを示している。フォルダリストオブジェクト212は、図26(A)に示した基本オブジェクト第1型に属するので、オブジェクト識別子記録領域201、および任意データ記録領域202から構成される。フォルダリストオブジェクト212のオブジェクト識別子記録領域201には、4バイトのオブジェクト識別子OIDが記録される。
フォルダリストオブジェクト212の任意データ記録領域202には、当該フォルダリストオブジェクト212の下に作成可能なフォルダオブジェクト213の最大値MAX(4バイト)、当該フォルダリストオブジェクト212の下に作成されているフォルダオブジェクト213の数N(4バイト)、および、当該フォルダリストオブジェクト212の下に作成されているフォルダオブジェクト213のIDの並びを示す4×100バイトのFolderが記録される。フォルダリストオブジェクト212の任意データ記録領域202には、612バイトのリザーブが設けられている。
図40は、フォルダオブジェクト213のデータフォーマットを示している。フォルダオブジェクト213は、図26(A)に示した基本オブジェクト第1型に属するので、オブジェクト識別子記録領域201、および任意データ記録領域202から構成される。フォルダオブジェクト213のオブジェクト識別子記録領域201には、4バイトのオブジェクト識別子OIDが記録される。
フォルダオブジェクト213の任意データ記録領域202には、当該フォルダオブジェクト213の下に作成可能なアルバムオブジェクト214の最大値MAX(4バイト)、当該フォルダオブジェクト213の下に作成されているアルバムオブジェクト214の数N(4バイト)、当該フォルダオブジェクト213の下に作成されているアルバムオブジェクト214のIDの並びを示す4×200バイトのAlbum、および当該フォルダオブジェクト213のフォルダ名を示す36バイトのTitleが記録される。フォルダオブジェクト213の任意データ記録領域202には、176バイトのリザーブが設けられている。
図41は、アルバムオブジェクト214のデータフォーマットを示している。アルバムオブジェクト214は、図26(A)に示した基本オブジェクト第1型に属するので、オブジェクト識別子記録領域201、および任意データ記録領域202から構成される。アルバムオブジェクト214のオブジェクト識別子記録領域201には、4バイトのオブジェクト識別子OIDが記録される。
アルバムオブジェクト214の任意データ記録領域202には、当該アルバムオブジェクト214の下に作成可能なトラックオブジェクト215の最大値MAX(4バイト)、当該アルバムオブジェクト214の下に作成されているトラックオブジェクト215の数N(4バイト)、当該アルバムオブジェクト214の下に作成されているトラックオブジェクト215のIDの並びを示す4×400バイトのTrack、当該アルバムオブジェクト214のタイトル名を示す516バイトのTitle、当該アルバムオブジェクト214のアーティスト名を示す260バイトのArtist、当該アルバムオブジェクト214の生成日時を示す8バイトのCreation Date、および当該アルバムオブジェクト214の元である音楽CD3のメディアキーを示す32バイトのメディアキーが記録される。アルバムオブジェクト214の任意データ記録領域202には、1660バイトのリザーブが設けられている。
図42は、トラックオブジェクト215のデータフォーマットを示している。トラックオブジェクト215は、図26(B)に示した基本オブジェクト第2型に属するので、オブジェクト識別子記録領域201、任意データ記録領域202、およびファイル識別子記録領域203から構成される。トラックオブジェクト215のオブジェクト識別子記録領域201には、4バイトのオブジェクト識別子OIDが記録される。トラックオブジェクト215のファイル識別子記録領域203には、1対1に対応するコンテンツデータ(ファイル記録領域121に記録されている)のファイル識別子を示す4バイトのSOIDが記録される。
トラックオブジェクト215の任意データ記録領域202には、当該トラックオブジェクト215の曲名を示す516バイトのTitle、当該トラックオブジェクト215のアーティスト名を示す260バイトのArtist、当該アルバムオブジェクト214の再生時間を示す8バイトのTime、当該トラックオブジェクト215に対して最後にアクセスした日時を示す8バイトのLast Access Date、および当該トラックオブジェクト215の再生回数を示す4バイトのプレイカウンタ(PC)、当該トラックオブジェクト215の制作日時を示す8バイトのCreation Date、および当該トラックオブジェクト215に対応するコンテンツデータの曲属性と再生制御情報(著作権保護のための情報)を示す12544バイトのACが記録される。トラックオブジェクト215の任意データ記録領域202には、980バイトのリザーブが設けられている。
図43は、トラックオブジェクト215の任意データ記録領域202に記録される1255バイトのACの詳細を示している。ACには、コンテンツキ−を示す8バイトのCkey、コーデック識別値を示す1バイトのCodec、コーデック属性を示す1バイトのCodec Attr、再生制限情報を示す1バイトのLT、正当性チェック用フラグを示す1バイトのVLD、チェックアウト先の個数を示す1バイトのLCMLOGNUM、コーデック依存情報を示す16バイトのCDI、コンテンツシリアル番号を示す20バイトのCID、再生許可開始日時を示す8バイトのPBS、再生許可終了日時を示す8バイトのPBE、拡張CCを示す1バイトのXCC、再生回数の残りを示す1バイトのCT、コンテンツ制御情報を示す1バイトのCC、チェックアウト残り回数を示す1バイトのCN、ソース情報を示す40バイトのSRC、およびチェックアウト先の機器IDとフラグを含む情報を示す48×256バイトのLCMLOGが記録される。
特に、コンテンツ制御情報を示す1バイトのCCは、MSB(Most Significant Bit)側からの1ビット目は、著作権の有無を示す(0:有、1:無)。MSB側からの2ビット目は、世代を示す(0:オリジナル、1:オリジナル以外)MSB側からの3,4ビット目は、不使用である。
CCのMSB側からの5乃至7ビット目が示す情報は、以下のとおりである。すなわち、CCのMSB側からの5乃至7ビット目に010が記録されている場合、チェックアウト許可(エディットは許可)を示す。CCのMSB側からの5乃至7ビット目に011が記録されている場合、ムーブ許可(PD5でのエディットは禁止)を示す。CCのMSB側からの5乃至7ビット目に100が記録されている場合、インポート許可(PD5でのエディットは許可)を示す。CCのMSB側からの5乃至7ビット目に110が記録されている場合、インポート許可(PD5でのエディットは禁止)を示す。
図44は、トラックオブジェクト215と1対1で対応するコンテンツデータのデータフォーマットを示している。コンテンツデータは、ATRAC3ヘッダを示す16キロバイトのAT3H、ATRAC3パーツを示す16キロバイトのPRT、およびサウンドユニット列を示す各16キロバイトのAT3SU-1乃至AT3SU-Nから構成される。
図45は、CCオブジェクト216のデータフォーマットを示している。CCオブジェクト216は、図26(B)に示した基本オブジェクト第2型に属する。よって、CCオブジェクト216は、オブジェクト識別子記録領域201、および任意データ記録領域202から構成される。CCオブジェクト216のオブジェクト識別子記録領域201には、4バイトのオブジェクト識別子OIDが記録される。
CCオブジェクト216の任意データ記録領域202には、16バイトのリザーブが設けられている。CCオブジェクト216のファイル識別子記録領域203には、対応するCCデータ(ファイル記録領域121に記録される)のファイル識別子を示す4バイトのSOIDが記録される。
図46は、ファイル記録領域121に記録されるCCデータのフォーマットを示している。CCデータには、10キロバイトのCat Folder、200キロバイトのCat Album、および600キロバイトのCat Trackが含まれる。Cat Folderは、ユーザが選択するフォルダに対応するフォルダオブジェクト213のオブジェクト識別子OIDを示す情報が記録されている。Cat Albumには、ユーザが選択するアルバムに対応するアルバムオブジェクト214のオブジェクト識別子OIDを示す情報が記録されている。Cat Trackには、ユーザが選択するトラックに対応するトラックオブジェクト215のオブジェクト識別子OIDを示す情報が記録されている。
したがって、例えば、再生時に、ユーザが再生させるトラックを選択すると、CCデータのCat Trackに基づいて、選択されたトラックに対応するトラックオブジェクト215のオブジェクト識別子OIDが判明し、判明したトラックオブジェクト215から対応するファイル識別子が取得されて、コンテンツデータが読み出されて再生される。
次に、オーディオサーバ1の各機能が実行される際のデータの流れと、ファームウェアとの対応について、図47乃至図56を参照して説明する。
図47は、CDリッピングが実行される際のデータの流れを示している。音楽CD3を高速で録音するCDリッピングでは、CD MW88の制御により、音楽CD3のディジタルオーディオデータは、CD-ROMドライブ57によってCAV8倍速で読み出されて、バッファ56にバッファリングされる。また、HD MW82の制御により、バッファ56にバッファリングされたディジタルオーディオデータは、WMスクリーン60−2に入力されてウォータマークが検出される。次に、HD MW82の制御により、バッファ56にバッファリングされていたディジタルオーディオデータは、エンコーダ59によって平均5倍速でATRAC3方式によりエンコードされて暗号化され、得られた符号化データは、バッファ56でバッファリングされた後、HDD58に転送されて記録される。なお、図示は省略したが、CDリッピングの最中には、録音されているディジタルオーディオデータに対応する音声がスピーカ2から出力される。
図48は、CDレコーディングが実行される際のデータの流れを示している。音楽CD3を再生しながら録音するCDレコーディングでは、CD MW88の制御により、音楽CD3のディジタルオーディオデータは、CD-ROMドライブ57によってCAV8倍速で読み出されてバッファ56にバッファリングされる。次に、HD MW82の制御により、バッファ56にバッファリングされていたディジタルオーディオデータは、エンコーダ59によって平均5倍速でATRAC3方式によりエンコードされて暗号化され、得られた符号化データは、バッファ56でバッファリングされた後、HDD58に転送されて記録される。また、HD MW82の制御により、バッファ56にバッファリングされたオーディオデータは、WMスクリーン60−2に供給されてウォータマークが検出される。
一方、モニタ音声のために、バッファリングされていたディジタルオーディオデータは、HD MW82の制御により、HDD58に設けられるリングバッファ241(図61)に一時的に記録された後、読み出されてオーディオI/F60−3に入力される。次に、AIO MW94の制御により、ディジタルオーディオデータは、D/A62に転送されてアナログ化され、スピーカ2から対応する音声が出力される。
なお、CDリッピング、およびCDレコーディングの詳細については、図57乃至図70を参照して後述する。
図49は、ディジタル入力に対するHDレコーディングが実行される際のデータの流れを示している。ディジタル入力を符号化してHDD58に記録するHDレコーディングでは、AIO MW94の制御により、AUXイン端子31から入力されるディジタルオーディオデータは、信号処理部60を介してエンコーダ59に供給される。次に、HD MW82の制御により、ディジタルオーディオデータは、エンコーダ59によってATRAC3方式に従ってエンコードされて暗号化され、得られた符号化データは、バッファ56に転送された後、HDD58に転送されて記録される。また、HD MW82の制御により、信号処理部60のWMスクリーン60−2でウォータマークが検出される。さらに、AIO MW94の制御により、信号処理部60のオーディオI/F60−3によってディジタルオーディオデータは、D/A62に転送されてアナログ化され、スピーカ2から出力される。
図50は、アナログ入力に対するHDレコーディングが実行される際のデータの流れを示している。アナログ入力を符号化してHDD58に記録するHDレコーディングでは、AIO MW94の制御により、AUXイン端子31から入力されるアナログオーディオデータは、A/D62でディジタル化されてエンコーダ59に供給される。次に、HD MW82の制御により、ディジタルオーディオデータは、エンコーダ59によってATRAC3方式によりエンコードされて暗号化され、得られた符号化データがバッファ56に転送された後、HDD58に転送されて記録される。また、HD MW82の制御により、WMスクリーン60−2によって、A/D62のディジタル出力からウォータマークが検出される。さらに、AIO MW94の制御により、AUXイン端子31から入力されるアナログオーディオデータは、スピーカ2から出力される。
図51は、HDプレイが実行される際のデータの流れを示している。HDD58の符号化データを再生するHDプレイでは、HD MW82の制御により、HDD58から読み出された符号化データは、バッファ56にバッファリングされた後、デコーダ59によって復号、デコードされる。得られたディジタルオーディオデータは、バッファ56にバッファリングされた後、オーディオI/F60−3に転送される。次に、AIO MW94の制御により、ディジタルオーディオデータは、オーディオI/F60−3によってD/A62に転送されてアナログ化され、スピーカ2から出力される。
図52は、CDプレイが実行される際のデータの流れを示している。音楽CD3を再生するCDプレイでは、CD MW88の制御により、音楽CD3のディジタルオーディオデータは、CD-ROMドライブ57によって読み出され、バッファ56にバッファリングされた後、オーディオI/F60−3に転送される。次に、AIO MW94の制御により、ディジタルオーディオデータは、オーディオI/F60−3によってD/A62に転送され、アナログ化されてスピーカ2から出力される。
図53は、MSプレイが実行される際のデータの流れを示している。MS4の符号化データを再生するMSプレイでは、同図(A)に示すように、MS MW89の制御により、MS4の符号化データは、MGMS I/F60−1に供給され、MGMS I/F60−1によって相互認証の後に復号され、信号処理部60が内蔵するデコーダによってデコードされる。次に、AIO MW94の制御により、オーディオI/F60−3によってデコードの結果得られたディジタルオーディオデータは、D/A62に転送され、アナログ化されてスピーカ2から出力される。
または、同図(B)に示すように、MS MW89の制御により、MS4から符号化データが読み出されてMGMS I/F60−1に供給され、MGMS I/F60−1が相互認証の後に復号する。複合された符号化データは、バッファ56にバッファリングされ、デコーダ59によってデコードされ、得られたディジタルオーディオデータは、バッファ56を介してD/A62に出力される。次に、AIO MW94の制御により、D/A62でアナログ化されたオーディオデータがスピーカ2から出力される。
図54は、MSチェックアウト/ムーブアウトが実行される際のデータの流れを示している。HDD58の符号化データをMS4にコピーするMSチェックアウト、およびHDD58の符号化データをMS4に移動するムーブアウトでは、HD MW82の制御により、HDD58から読み出された符号化データは、バッファ56にバッファリングされる。次に、MS MW89の制御により、バッファリングされている符号化データがMGMS I/F60−1に転送され、MS4に記録される。なお、チェックアウト、およびムーブアウトについては、後ほど詳述する。
図55は、MSインポート/ムーブインが実行される際のデータの流れを示している。MS4の符号化データをHDD58に移動するMSインポート/ムーブインでは、MS MW89の制御により、MS4の符号化データがMGMS I/F60−1を介してバッファ56に転送される。次に、HD MW82の制御により、バッファリングされている符号化データがHDD58に転送されて記録される。なお、インポート/ムーブインについては、後ほど詳述する。
図56は、PDチェックアウトが実行される際のデータの流れを示している。HDD58の符号化データをPD5にコピーするPDチェックアウトでは、HD MW82の制御により、HDD58から読み出された符号化データは、バッファ56にバッファリングされた後、エンコーダ/デコーダ59によって復号され、再び、PD5用に暗号化されて、バッファ56にバッファリングされる。次に、PD MW90の制御により、バッファリングされている符号化データが、USBホストコントローラ54、およびUSBコネクタ43を介してPD5に記録される。
次に、CDリッピング、およびCDレコーディングの詳細について、図57乃至図70を参照して説明する。CDリッピングの処理は、ユーザによってハイスピードレコーディングボタン24が押下された場合に実行される処理である。CDレコーディングの処理は、ユーザによってレコーディングボタン23が押下された場合に実行される処理である。
CDリッピングとCDレコーディングの違いについて、図57および図58を参照して説明する。図57(A)は、CDリッピングにおけるモニタ音声出力の期間を示している。図57(B)は、CDリッピングにおける録音の処理(符号化して記録する処理)の期間を示している。図58(A)は、CDレコーディングにおけるモニタ音声出力の期間を示している。図58(B)は、CDレコーディングにおける録音の処理(符号化し、記録する処理)の期間を示している。
図57(B)と図58(B)を比較して明らかなように、CDリッピングとCDレコーディングでは、その録音の処理に要する合計時間は同じである。すなわち、音楽CD3のオーディオデータ(PCMデータ)をATRAC3方式によって符号化し、HDD58に記録する処理は、オーディオデータの再生速度に対して平均5倍速で行われる。
例えば、再生時間が10分間である曲が6曲記録されていて総再生時間が60分間である音楽CD3を、CDリッピングまたはCDレコーディングによって、録音する場合、1曲当たり約2分間を要して順次録音される。
CDリッピングとCDレコーディングとの相違点は、モニタ音声出力の期間である。
CDリッピングの場合、モニタ音声出力は、対応するオーディオデータの録音処理が行われている期間だけ、モニタ音声が出力される。上述した音楽CD3の例では、第1曲目の先頭から約2分間の音声が通常の再生速度で出力され、次に、第2曲目の先頭から約2分間の音声が通常の速度で出力され、以降、各曲の先頭から約2分間の音声が通常の速度で出力される。したがって、録音処理の終了と同時に、モニタ音声出力も終了される。
CDレコーディングの場合、モニタ音声出力は、対応するオーディオデータの録音処理の進捗状況に関係なく、モニタ音声が出力される。上述した音楽CD3の例では、第1曲目の全ての音声が通常の再生速度で出力され、次に、第2曲目の全ての音声が通常の速度で出力され、以降、各曲の全ての音声が通常の速度で出力される。したがって、録音処理が終了しても、対応するオーディオデータのモニタ音声出力は最後の第6曲目の終わりまで継続される。
なお、CDリッピングとCDレコーディングは、その処理の途中において適宜切り替えることが可能である。
次に、図59は、CDリッピングまたはCDレコーディングが実行される際のバッファ56の状態を示している。バッファ56には、音楽CD3から読み出された符号化される前のオーディオデータ(PCMデータ)をバッファリングするためのPCMデータ読み込みバッファ231と、エンコーダ/デコーダ59によって符号化されて暗号化された符号化データをバッファリングするための符号化データバッファ232が設けられる。
図60は、バッファ56に設けられるPCMデータ読み込みバッファ231、および符号化データバッファ232、並びにオーディオI/F60−3に内蔵されるPCMデータ再生用バッファ251の状態遷移を示している。
PCMデータ読み込みバッファ231、符号化データバッファ232、およびPCMデータ再生用バッファ251は、それぞれ、初期の書き込み可能状態、データの書き込みが開始されると遷移する書き込み中状態、データの書き込みが終了すると遷移する読み出し可能状態、データの読み出しが開始されると遷移する読み出し中状態のいずれかの状態にある。なお、読み出し中状態から、データの読み出しが終了すると書き込み可能状態に戻る。
PCMデータ読み込みバッファ231、符号化データバッファ232、およびPCMデータ再生用バッファ251は、それぞれ、初期の書き込み可能状態、データの書き込みが開始されると遷移する書き込み中状態、データの書き込みが終了すると遷移する読み出し可能状態、データの読み出しが開始されると遷移する読み出し中状態のいずれかの状態にある。なお、読み出し中状態から、データの読み出しが終了すると書き込み可能状態に戻る。
次に、図61は、CDリッピングまたはCDレコーディングが実行される際、モニタ音声出力用のPCMデータをバッファリングするためにHDD58に設けられるリングバッファ241の構造を示している。
所定の容量(説明の便宜上、アドレス0乃至アドレスmaxとする)を有するリングバッファ241には、読み出し開始アドレスを示す読み出しポインタ242と、書き込み開始アドレスを示す書き込みポインタ243が設定される。リングバッファ241は、読み出しポインタ242が示すアドレスから順方向に書き込みポインタ243が示すアドレスまでの読み出し可能領域244と、書き込みポインタ243が示すアドレスから順方向に読み出しポインタ242が示すアドレスからまでの書き込み可能領域245に区分される。読み出し可能領域244の容量を、読み出しマージンと称する。書き込み可能領域245の容量を、書き込みマージンと称する。
図62は、CDリッピングおよびCDレコーディングにおける各バッファ間のデータの流れを示している。音楽CD3のPCMデータは、CD-ROMドライブ57によって読み出されてバッファ56に設けられたPCMデータ読み込みバッファ231にバッファリングされる。PCMデータ読み込みバッファ231にバッファリングされたPCMデータは、エンコーダ/デコーダ59に転送され、符号化されて暗号化される。得られた符号化データは、バッファ56に設けられた符号化データバッファ232にバッファリングされる。符号化データバッファ232にバッファリングされた符号化データは、HDD58に転送されて、ファイル記録領域121に記録される。
一方、PCMデータ読み込みバッファ231にバッファリングされたPCMデータは、HDD58に転送され、HDD58に設けられたリングバッファ241にバッファリングされる。リングバッファ241にバッファリングされたPCMデータは、オーディオI/F60−3に内蔵されたPCMデータ再生用バッファ251に転送されてバッファリングされた後、AD/DA62によってアナログ化されてスピーカ2から出力される。
次に、CDリッピングおよびCDレコーディングに関する、録音速度設定処理について、図63のフローチャートを参照して説明する。この録音速度設定処理は、音源として音楽CD3が選択されている間、すなわち、CD-ROMドライブ57に音楽CD3が装着され、ファンクションボタン12によってCDが選択されている間、繰り返して実行される。
ステップS281において、インプットハンドルミドルウェア97は、各種のボタンに対するユーザからの操作の監視を開始する。ステップS282において、インプットハンドルミドルウェア97は、各種のボタンに対するユーザからの操作があるまで待機し、各種のボタンに対するユーザからの操作があったと判定された場合、その情報をメインAPP76に通知する。メインAPP76は、レコードボタン23に対する操作であるか否かを判定する。レコードボタン23に対する操作であると判定された場合、処理はステップS283に進む。
ステップS283において、メインAPP76は、レコードボタン23が操作されたことをHD APP77に通知する。HD APP77は、レコードボタン23が操作されたことを、HD MW82のCD RIPPING84に伝達する。CD RIPPING84は、自己がSDRAM53などに設けるハイスピード録音フラグをオフに設定する。処理はステップS281に戻る。
ステップS282において、各種のボタンに対するユーザからの操作があったと判定され、それがレコードボタン23に対する操作ではないと判定された場合、処理はステップS284に進む。ステップS284において、メインAPP76は、ハイスピードレコードボタン24に対する操作であるか否かを判定する。ハイスピードレコードボタン24に対する操作であると判定された場合、処理はステップS285に進む。
ステップS285において、メインAPP76は、ハイスピードレコードボタン24が操作されたことをHD APP77に通知する。HD APP77は、ハイスピードレコードボタン24が操作されたことを、HD MW82のCD RIPPING84に伝達する。CD RIPPING84は、ハイスピード録音フラグをオンに設定する。処理はステップS281に戻る。
ステップS284において、ハイスピードレコードボタン24に対する操作ではないと判定された場合、処理はステップS281に戻る。
以上説明した録音速度設定処理により、ハイスピードレコードボタン24が操作され、ハイスピード録音フラグがオンとされた場合には、図57に示したようなCDリッピングが実行される。反対に、レコードボタン23が操作され、ハイスピード録音フラグがオフとされた場合には、図58に示したようなCDレコーディングが実行される。なお、CDリッピングからCDレコーディングへの切替や、逆にCDレコーディングからCDリッピングへの切替は、ユーザのボタン操作に対応して任意のタイミングで行うことができる。
次に、CD録音処理について、図64にフローチャートを参照して説明する。このCD録音処理は、HD MW82に含まれるCD RIPPING84によって制御される処理であり、音楽CD3が装着され、ファンクションボタン12が操作されて、音源がCDに設定された後、レコードボタン23、またはハイスピードボタン24が操作されたときに開始される。
ステップS291において、ユーザは、レコードボタン23またはハイスピードボタン24が操作されたことによって録音一時停止状態にある間、音楽CD3の中から録音する曲を選曲する。具体的には、カーソルボタン17を操作して、音楽CD3に記録されている曲のなかから選曲し、エンタボタン20を操作して選曲を確定する。この一連の操作を繰り返すことにより、録音する曲を全て選曲する。なお、特に選曲の操作が行われない場合、音楽CD3に記録されている全ての曲が選曲されたことになる。
ユーザは、選曲が完了した段階で、再生/一時停止ボタン26を操作する。処理はステップS292に進む。
ステップS292において、CD RIPPING84は、リングバッファ241に設定する読み出しポインタ242が示す読み出し開始アドレスなどの情報からなるリングバッファ情報を初期化する。このリングバッファ情報初期化処理について、図65のフローチャートを参照して説明する。ステップS301において、CD RIPPING84は、読み出しポインタ242が示す読み出し開始アドレス、および書き込みポインタ243が示す書き込み開始アドレスをリングバッファ241のアドレス0に設定する。さらに、リングバッファ241の読み出しマージンを0に設定し、書き込みマージンをその最大値maxに設定する。以上、リングバッファ情報初期化処理の説明を終了する。
図64に戻る。ステップS293において、CD RIPPING84は、ステップS291で選曲されたうちの1曲を順次選択して、1曲分の録音処理を実行する。1曲分の録音処理について、図66のフローチャートを参照して説明する。ステップS311において、CD RIPPING84は、CD MW88に依頼することにより、音楽CD3の録音する曲のPCMデータを所定のデータ量(例えば、2秒間分)ずつ、書き込み可能状態にあるPCMデータ読み込みバッファ231にバッファリングさせる。所定のデータ量のPCMデータの書き込み(バッファリング)が終了した場合、PCMデータ読み込みバッファ231の状態は読み出し可能状態に遷移する。
ステップS312において、CD RIPPING84は、エンコーダ/デコーダ59に対して、PCMデータ読み込みバッファ231にバッファリングされている所定のデータ量のPCMデータをエンコードさせる(符号化して暗号化させる)。PCMデータ読み込みバッファ231からの所定のデータ量のPCMデータの読み出しが終了した場合、PCMデータ読み込みバッファ231の状態は書き込み可能状態に遷移する。
また、CD RIPPING84は、モニタ音声出力処理を開始する。モニタ音声出力処理については、図67を参照して後述する。
ステップS313において、CD RIPPING84は、エンコードよって得られた所定のデータ量の符号化データを、バッファ56の書き込み可能状態にある符号化データバッファ232にバッファリングさせる。所定のデータ量(例えば、2秒間分)の符号化データの書き込み(バッファリング)が終了した場合、符号化データバッファ232の状態は読み出し可能状態に遷移する。
ステップS314において、CD RIPPING84は、符号化データバッファ232にバッファリングされている所定のデータ量の符号化データを、HDD58のファイル記録領域121に記録させる。なお、所定のデータ量ずつ符号化データをファイル記録領域121に記録させる処理は、図14を参照して上述したファイル作成処理に相当する。また、図28を参照して上述したオブジェクト作成処理も行われる。
ステップS315において、CD RIPPING84は、1曲分の符号化データが記録されたか否かを判定する。1曲分の符号化データが記録されていないと判定された場合、処理はステップS311に戻り、以降の処理が繰り返される。その後、ステップS315において、1曲分の符号化データが記録されたと判定された場合、当該1曲分の録音処理は終了される。
以上説明したようにして1曲分の録音処理が実行された後、処理は図64のステップS294に戻る。ステップS294において、CD RIPPING84は、ステップS291で選曲された全ての曲が録音されたか否かを判定する。選曲された全ての曲が録音されていないと判定された場合、処理は293に戻り、次の曲に対する1曲分の録音処理が行われる。
その後、ステップS294において、選曲された全ての曲が録音されたと判定された場合、このCD録音処理は終了させる。
ここで、ステップS312において開始されたモニタ音声出力処理について、図67のフローチャートを参照して説明する。ステップS321において、CD RIPPING84は、ハイスピード録音フラグがオンであるか否かを判定する。ハイスピード録音フラグがオンであると判定された場合、処理は322に進む。
ステップS322において、CD RIPPING84は、対応するPCMデータに対する1曲分の録音処理が終了しているか否かを判定する。対応するPCMデータに対する1曲分の録音処理が終了していないと判定された場合、1曲分の録音処理が実行中のPCMデータのモニタ音声を出力するために、処理はステップS323に進む。
ステップS323において、CD RIPPING84は、リンクバッファ241に対するPCMデータ読み込みバッファ231にバッファリングされているPCMデータの書き込み処理を開始する。ステップS323の処理の終了を待つことなく、ステップS324において、CD RIPPING84は、リンクバッファ241に記録されたPCMデータの読み出し処理を開始する。
ステップS323におけるリングバッファ241に対する書き込み処理について、図68のフローチャートを参照して説明する。
ステップS331において、CD RIPPING84は、ハイスピード録音フラグがオンであるか否かを判定する。ハイスピード録音フラグがオンであると判定された場合、処理は332に進む。ステップS332において、CD RIPPING84は、図65を参照して上述したリングバッファ情報初期化処理を実行する。
ステップS333において、CD RIPPING84は、リンクバッファ情報の書き込みポインタ243が示す書き込み開始アドレス以降の書き込み可能領域245に、PCMデータ読み込みバッファ231に記録されているPCMデータの書き込みを開始する。ステップS334において、CD RIPPING84は、ステップS333で書き込んだPCMデータの分だけ、リンクバッファ情報に含まれる書き込みポインタ243が示す書き込み開始アドレスの値を順方向に進め、それに対応して、書き込みマージンおよび読み出しマージンの値を更新する。
なお、ステップS331において、ハイスピード録音フラグがオンではないと判定された場合、処理は335に進む。ステップS335において、CD RIPPING84は、リングバッファ情報を参照することにより、PCMデータ読み込みバッファ231に記録されているPCMデータのサイズは、リングバッファ241の書き込みマージン以下であるか否かを判定する。PCMデータ読み込みバッファ231に記録されているPCMデータのサイズが、リングバッファ241の書き込みマージン以下であると判定された場合、処理はステップS333に進む。
なお、ステップS335において、PCMデータ読み込みバッファ231に記録されているPCMデータのサイズが、リングバッファ241の書き込みマージン以下ではないと判定された場合、処理はステップS331に戻り、その後、録音速度の設定がユーザによって変更させることにより、ステップS331において、ハイスピード録音フラグがオンであると判定されるか、または、リングバッファ241の書き込みマージンが増加することにより、ステップS335において、PCMデータ読み込みバッファ231に記録されているPCMデータのサイズが、リングバッファ241の書き込みマージン以下ではないと判定されるまで、ステップS331、およびステップS335の処理が繰り返される。以上、リングバッファ241に対する書き込み処理の説明を終了する。
ステップS324におけるリングバッファ241からの読み出し処理について、図69のフローチャートを参照して説明する。ステップS341において、CD RIPPING84は、オーディオI/F60−3に内蔵されるPCMデータ再生用バッファ251が書き込み可能状態であるか否かを判定し、PCMデータ再生用バッファが書き込み可能状態であると判定するまで待機する。PCMデータ再生用バッファが書き込み可能状態であると判定された場合、処理はステップS342に進む。
ステップS342において、CD RIPPING84は、リングバッファ241の読み出しポインタ242が示す読み出し開始アドレスに従い、リングバッファ241の読み出し可能領域244に記録されているPCMデータを読み出して、PCMデータ再生用バッファ251に書き込ませる。
ステップS343において、CD RIPPING84は、ステップS342で読み出したPCMデータの分だけ、リンクバッファ情報に含まれる読み出しポインタ242が示す読み出し開始アドレスの値を順方向に進め、それに対応して、書き込みマージンおよび読み出しマージンの値を更新する。
ステップS344において、CD RIPPING84は、PCMデータ再生用バッファ251を読み出し可能状態に遷移させる。以上、リングバッファ241からの読み出し処理の説明を終了する。
図67に戻る。ステップS325において、AIO MW94は、PCMデータ再生用バッファ251にバッファリングされているPCMデータを、AD/DA62に出力させる。AD/DA62は、入力されたPCMデータの再生を開始して対応する音声をスピーカ2から出力させる。
ステップS326において、CD RIPPING84は、1曲分のPCMデータの再生が終了したか否かを判定する。1曲分のPCMデータの再生が終了していないと判定された場合、処理はステップS321に戻り、以降の処理が繰り返され、ステップS326において、1曲分のPCMデータの再生が終了していないと判定された場合、モニタ音声出力処理は終了される。
なお、ステップS322において、対応するPCMデータに対する1曲分の録音処理が終了していると判定された場合、このモニタ音声出力処理は直ちに中止される。以上、CD録音処理の説明を終了する。
なお、CD録音処理の過程においては、ユーザのレコーディングボタン23またはハイスピードレコーディングボタン24に対する操作に対応し、任意のタイミングで、CDリッピングからCDレコーディングへ、逆にCDレコーディングからCDリッピングへ切り替えることができる。
ここで、CDリッピングが実行されるときのディスプレイ15の表示例を図70に示す。図70(A)は、録音が開始される直前に表示される、録音設定に関する情報の表示例である。このとき、ディスプレイ15には、表示エリア261乃至267が設けられる。この表示例において、表示エリア261には、録音元と録音先を示す情報が表示される。表示エリア262には、録音設定に関する情報が表示されている旨が表示される。表示エリア263には、保存場所を示すフォルダ名が表示される。表示エリア264には、録音するアルバムのアルバム名とアーティスト名が表示される。表示エリア265には、録音時のビットレートが表示される。表示エリア266には、録音時の録音レベルが表示される。表示エリア267には、再生/一時停止ボタン26を押下すれば録音が開始される旨が表示される。録音時の録音レベルが表示される。
図70(B)は、録音が実行されている最中の表示例である。このとき、ディスプレイ15には、表示エリア271乃至278が設けられる。この表示例において、表示エリア271には、録音元と録音先を示す情報が表示される。表示エリア272には、CDリッピング中であることを示す文字「高速録音中」が点滅表示される。表示エリア273には、録音中の曲のアルバム名、およびアーティスト名が表示される。表示エリア274には、録音中の曲の音楽CD3における曲番号が表示される。表示エリア275には、録音中の曲の再生経過時間が表示される。表示エリア276には、音楽CD3の再生残り時間が表示される。表示エリア277には、録音する総曲数に対する録音の進捗状況に比例して長さが変化するプログレスバー279が表示される。表示エリア278には、録音する曲の総数と、録音済または録音中の曲の数を示している。
例えば、再生時間が60分間であるアルバムの全曲をCDリッピングしている場合、録音は約5倍速で行われるので、表示エリア277に表示されるプログレスバー279の長さは、録音の開始時から徐々に長くなり、約12分間で表示エリア277の全体を占める長さとなる。
なお、表示エリア277のプログレスバー279の長さを、録音の進捗状況に合わせるのではなく、曲の再生経過時間に比例させて伸長させるようにしてもよい。
次に、HDD58に記録したコンテンツデータを再生する方法について、図71乃至図77を参照して説明する。上述したように、オーディオサーバ1では、音楽CD3に記録されている曲をエンコードし、コンテンツデータをファイルとしてHDD58に記録しているが、再生する曲を指定させる場合には、ファイルではなく、階層構造をなすフォルダ、アルバム、およびトラックのオブジェクトを、ユーザに指定させる。
HDD全体、任意のフォルダ、または任意のアルバムを再生エリアとして指定することにより、複数の曲を一括して再生する曲に指定することもできる。曲の再生は、指定された再生エリアに基づいて作成されるプレイリストに含まれるトラックに対応するコンテンツデータがデコードされることによって実現される。
図71は、再生エリアの一例を示している。破線281で囲まれたHDD全体が再生エリアに指定された場合、図72に示すように、プレイリストには、HDD58のなかの全てのトラック番号が登録される。
破線282で囲まれたマイセレクトフォルダF1が再生エリアに指定された場合、図73に示すように、プレイリストには、マイセレクトフォルダF1に属する全てのアルバムのアルバム番号が登録される。
破線283に囲まれたマイセレクトフォルダF1のアルバムA1が再生エリアに指定された場合、図74に示すように、プレイリストには、マイセレクトフォルダF1のアルバムA1に属する全てのトラックのトラック番号が登録される。
テンポラリフォルダF2に属するアルバムA1のトラックT1が再生する曲に指定された場合、図75に示すように、プレイリストには、テンポラリフォルダF2に属するアルバムA1のトラックT1が登録される。
次に、指定された再生エリアに対応するプレイリストを作成する処理について、図76のフローチャートを参照して説明する。
このプレイリスト作成処理は、HD MW82に含まれるHD PLAY85によって制御される処理であり、ファンクションボタン12が操作されて、音源がHDDに設定されたときに開始される。
ステップS351において、HD PLAY85は、ユーザによって選択されている再生エリアを示すオブジェクトの階層が、HDD全体であるか否かを判定する。選択されているオブジェクトの階層がHDD全体ではないと判定された場合、処理はステップS352に進む。なお、ユーザが再生エリアを選択する方法は、リモートコントローラ7に設けられた再生エリア切り替えボタン(不図示)を操作するか、または、蓋40に設けられたカーソルボタン17、エンタボタン20、およびメニュー/キャンセルボタン21などを所定の順序で押下するかによって行われる。
ステップS352において、HD PLAY85は、ユーザによって選択されているオブジェクトの階層がフォルダであるか否かを判定する。選択されているオブジェクトの階層がフォルダではないと判定された場合、処理はステップS353に進む。
ステップS353において、HD PLAY85は、ユーザによって選択されているオブジェクトの階層がアルバムであると判定して、ステップS354に進む。
ステップS354において、HD PLAY85は、再生/一時停止ボタン26が操作されたか否かを判定する。再生/一時停止ボタン26が操作されたと判定された場合、処理はステップS355に進む。ステップS355において、HD PLAY85は、選択されているオブジェクトの階層に対応するプレイリストが既成されているか否かを判定し、既成されていないと判定した場合、ステップS356に進む。なお、既成されていると判定された場合には、ステップS356はスキップされる。
ステップS356において、HD PLAY85は、選択されているオブジェクトの階層に対応してプレイリストを作成する。
なお、ステップS354において、再生/一時停止ボタン26が操作されていないと判定された場合、処理はステップS351に戻り、以降の処理が繰り返される。
また、ステップS351において、選択されているオブジェクトの階層がHDD全体であると判定された場合、または、ステップS352において、選択されているオブジェクトの階層がフォルダであると判定された場合、処理はステップS354に進む。以上、プレイリスト作成処理の説明を終了する。
なお、想定される様々な再生エリアに対応する複数のプレイリストを予め作成して、所定の場所に記録するようにし、ユーザによって再生エリアが指定された段階で、予め作成されて記録されているプレイリストのうち、対応するものを読み出すようにしてもよい。
次に、上述したプレイリスト作成処理の終了に続けて実行される再生処理について、プレイモードが全曲リピートに設定されている場合を例に、図77のフローチャートを参照して説明する。
ステップS361において、HD PLAY85は、停止ボタン25が操作されることにより、再生の終了が指示されたか否かを判定する。再生の終了が指示されていないと判定された場合、処理はステップS362に進む。ステップS362において、HD PLAY85は、プレイリストに含まれる全てのトラックのうち、順次1トラックずつ再生トラックに指定する。
ステップS363において、HD PLAY85は再生トラックに対応するコンテンツデータを再生する。具体的には、再生トラックに対応するトラックオブジェクトがCCデータに基づいて特定され、特定されたトラックオブジェクトのファイル識別子記録領域203の値に基づいて対応するコンテンツデータのファイル識別子が特定され、特定されたファイル識別子(=ファイル記録領域121のクラスタ番号)に基づいてコンテンツデータが読み出される。次に、読み出されたコンテンツデータがデコードされて出力される。
再生トラックに対応するコンテンツデータの再生が終了した後、処理はステップS361に戻り、以降の処理が繰り返される。その後、ステップS361において、停止ボタン25が操作されることにより、再生の終了が指示されたと判定された場合、再生モードが全曲リピートである場合の再生処理が終了される。
なお、全曲リピート以外の再生モードにおいては、再生エリアと再生トラックの指定の方法が異なるだけであり、その処理の手順は同様である。
次に、オーディオサーバ1のHDD58に記録されているコンテンツデータを、MS4にムーブアウトする処理について、図78乃至図81を参照して説明する。
ここで、HDD58に記録されているコンテンツデータをMS4にムーブアウトする処理とは、HDD58に記録されているコンテンツデータをMS4にコピーした後、HDD58に記録されていたコンテンツデータを削除する一連の処理である。
ムーブアウト処理について、図78のフローチャートを参照して説明する。なお、ムーブアウト処理は、HD MW82のC IN/C OUT87によって制御される。
このムーブアウト処理は、MSスロット45にMS4が挿入されている状態で、ユーザがメニュー/キャンセルボタン21を操作してメニューを表示させ、カーソルボタン17を操作して「編集」を選択した後、エンタボタン20を操作して編集メニューを表示させ、カーソルボタン17を操作して「ムーブアウト」を選択した後、エンタボタン20を操作し、さらに、カーソルボタン17とセレクトボタン18を操作して、ムーブアウトするトラックを選択した後、エンタキー20を操作してムーブアウトするトラックのリストを表示させ、さらにエンタキー20を操作したときに開始される。
ステップS371において、MS MW89は、C IN/C OUT87に依頼して、HDD58に記録されているムーブアウトするコンテンツデータを、権利無効データ(再生不可能なデータ)としてMS4にコピーする。なお、権利無効データとするには、コンテンツデータの属性情報に含まれる、権利の有無を示すフラグをオフとする。
ステップS372において、C IN/C OUT87は、ムーブアウト処理を開始したことを示すムーブアウト履歴情報を生成してHDD58に記録する。ムーブアウト履歴情報には、ムーブアウトされるトラックを特定する情報が含まれる。ステップS373において、C IN/C OUT87は、HDD58に記録されているコンテンツデータの権利の有無を示すフラグをオフとして、HDD58のコンテンツデータを権利無効データとする。
ステップS374において、MS MW89は、MS4にコピーされたコンテンツデータの権利の有無を示すフラグをオンとして、MS4のコンテンツデータを権利有効データとする。
ステップS375において、C IN/C OUT87は、HDD58に記録されているコンテンツデータを削除する。ステップS376において、C IN/C OUT87は、ステップS372の処理で作成したムーブアウト履歴情報を削除する。
以上説明したステップS371乃至S376の処理が1トラックに対応する1コンテンツデータのムーブアウト処理であり、選択された全てのトラックに対して、ステップS371乃至S376の処理が施される。
なお、ムーブアウト処理の途中で電源が遮断するなどしてムーブアウト処理が中断された場合、それを補償するために電源復帰後に復帰処理が実行させる。なお、復帰処理については、図86乃至図88を参照して後述する。
図79は、ムーブアウト処理の状態遷移を示している。状態1は、ムーブアウト処理が開始される前の状態である。すなわち、オーディオサーバ1のHDD58にコンテンツデータが記録されており、HDD58のコンテンツデータが権利有効である状態を示している。
状態2は、ステップS371の処理が行われた後の状態である。すなわち、オーディオサーバ1のHDD58に記録されているコンテンツデータがMS4にコピーされることによって、HDD58とMS4の双方にコンテンツデータが記録されている状態であって、かつ、HDD58のコンテンツデータが権利有効であって、MS4のコンテンツデータが権利無効である状態を示している。
状態3は、ステップS373の処理が行われた後の状態である。すなわち、HDD58とMS4の双方にコンテンツデータが記録されている状態であって、かつ、HDD58のコンテンツデータと、MS4のコンテンツデータが権利無効である状態を示している。
状態4は、ステップS374の処理が行われた後の状態である。すなわち、HDD58とMS4の双方にコンテンツデータが記録されている状態であって、かつ、HDD58のコンテンツデータが権利無効であって、MS4のコンテンツデータが権利有効である状態を示している。
状態5は、ステップS375の処理が行われた後の状態である。すなわち、HDD58のコンテンツデータが消去されることによって、MS4だけにコンテンツデータが記録されている状態であって、MS4のコンテンツデータが権利有効である状態を示している。
図80は、ムーブアウトするトラックを選択するときのディスプレイ15の表示例を示している。ディスプレイ15にはムーブアウト可能な曲だけが表示される。
図81は、ムーブアウト処理が行われている最中のディスプレイ15の表示例を示している。ディスプレイ15の表示エリア291には、ムーブアウト処理が実行中であることを示す文字”Move out”が点滅表示される。ムーブアウトが完了したトラックの横には、チェックマーク292が表示される。表示エリア293には、ムーブアウト処理の進捗状況を示す情報(ムーブアウト中またはムーブアウトが完了したトラックの数/ムーブアウトするトラックの総数)が表示される。
次に、MS4に記録されているコンテンツデータを、オーディオサーバ1のHDD58にムーブインする処理について、図82乃至図81を参照して説明する。
ここで、MS4に記録されているコンテンツデータをHDD58にムーブインする処理とは、MS4に記録されているコンテンツデータをHDD58にコピーした後、MS4に記録されていたコンテンツデータを削除する一連の処理である。
ムーブイン処理について、図82のフローチャートを参照して説明する。なお、ムーブイン処理は、HD MW82のC IN/C OUT87によって制御される。
このムーブイン処理は、MSスロット45にMS4が挿入されている状態で、ユーザがメニュー/キャンセルボタン21を操作してメニューを表示させ、カーソルボタン17を操作して「編集」を選択した後、エンタボタン20を操作して編集メニューを表示させ、カーソルボタン17を操作して「ムーブイン」を選択した後、エンタボタン20を操作し、さらに、カーソルボタン17とセレクトボタン18を操作して、MS4に記録されているコンテンツデータの中からムーブインするコンテンツデータを選択した後、エンタキー20を操作してムーブインするコンテンツデータのリストを表示させ、さらにエンタキー20を操作した後に再生/一時停止ボタン26を操作したときに開始される。
ステップS381において、MS MW89は、C IN/C OUT87に依頼して、MS4に記録されているムーブインするコンテンツデータを、権利無効データとしてHDD58にコピーする。
ステップS382において、C IN/C OUT87は、ムーブイン処理を開始したことを示すムーブイン履歴情報を生成してHDD58に記録する。ムーブイン履歴情報には、ムーブインされるコンテンツデータを特定する情報が含まれる。ステップS383において、MS MW89は、MS4に記録されているコンテンツデータの権利の有無を示すフラグをオフとして、MS4のコンテンツデータを権利無効データとする。
ステップS384において、C IN/C OUT87は、HDD58にコピーされたコンテンツデータの権利の有無を示すフラグをオンとして、HDD58のコンテンツデータを権利有効データとする。
ステップS385において、C IN/C OUT87は、MS MW89に依頼して、MS4に記録されているコンテンツデータを削除する。ステップS386において、C IN/C OUT87は、ステップS382の処理で作成したムーブイン履歴情報を削除する。
以上説明したステップS381乃至S386の処理が1トラックに対応する1コンテンツデータのムーブイン処理であり、選択された全てのトラックに対して、ステップS381乃至S386の処理が施される。
なお、ムーブイン処理の途中で電源が遮断するなどしてムーブイン処理が中断された場合、それを補償するために、電源復帰後に復帰処理が実行される。
図83は、ムーブイン処理の状態遷移を示している。状態11は、ムーブイン処理が開始される前の状態である。すなわち、MS4にコンテンツデータが記録されており、MS4のコンテンツデータが権利有効である状態を示している。
状態12は、ステップS381の処理が行われた後の状態である。すなわち、MS4に記録されているコンテンツデータがHDD58にコピーされることによって、MS4とHDD58の双方にコンテンツデータが記録されている状態であって、かつ、MS4のコンテンツデータが権利有効であって、HDD58のコンテンツデータが権利無効である状態を示している。
状態12は、ステップS381の処理が行われた後の状態である。すなわち、MS4に記録されているコンテンツデータがHDD58にコピーされることによって、MS4とHDD58の双方にコンテンツデータが記録されている状態であって、かつ、MS4のコンテンツデータが権利有効であって、HDD58のコンテンツデータが権利無効である状態を示している。
状態13は、ステップS383の処理が行われた後の状態である。すなわち、MS4とHDD58の双方にコンテンツデータが記録されている状態であって、かつ、MS4のコンテンツデータと、HDD58のコンテンツデータが権利無効である状態を示している。
状態14は、ステップS384の処理が行われた後の状態である。すなわち、MS4とHDD58の双方にコンテンツデータが記録されている状態であって、かつ、MS4のコンテンツデータが権利無効であって、HDD58のコンテンツデータが権利有効である状態を示している。
状態15は、ステップS385の処理が行われた後の状態である。すなわち、MS4のコンテンツデータが消去されることによって、HDD58だけにコンテンツデータが記録されている状態であって、HDD58のコンテンツデータが権利有効である状態を示している。
図84は、ムーブインするコンテンツデータを選択するときのディスプレイ15の表示例を示している。ディスプレイ15にはMS4に記録されているコンテンツデータのうち、ムーブアウト可能なコンテンツデータだけが表示される。
図81は、ムーブイン処理が行われている最中のディスプレイ15の表示例を示している。ディスプレイ15の表示エリア301には、ムーブイン処理が実行中であることを示す文字”Move in”が点滅表示される。ムーブインが完了したコンテンツデータの横には、チェックマーク302が表示される。表示エリア303には、ムーブイン処理の進捗状況を示す情報(ムーブイン中またはムーブインが完了したコンテンツデータの数/ムーブインするコンテンツデータの総数)が表示される。
以上、ムーブイン処理について説明したが、MS4からHDD58にコンテンツデータをインポートする処理も同様に処理される。ムーブイン処理とインポート処理の相違は、ムーブイン処理またはインポート処理によってHDD58に記録されたコンテンツデータの扱いにある。
オーディオサーバ1は、ムーブイン処理によってHDD58に記録されたコンテンツデータを、他のMS4やPD5などに、ムーブアウトすることが可能であり、かつ、チェックアウトすることが可能である。しかしながら、オーディオサーバ1は、インポート処理によってHDD58に記録されたコンテンツデータを、他のMS4やPD5などに、チェックアウトすることは可能であるが、ムーブアウトすることは不可能である。
次に、ムーブアウト処理やムーブイン処理の途中で電源が遮断するなどしてその処理が中断されたことを補償するための復帰処理について、図86を参照して説明する。この復帰処理は、電源復旧後、C IN/C OUT87によって直ちに開始される。
ステップS391において、C IN/C OUT87は、HDD58にムーブアウト履歴情報が存在するか否かを判定する。HDD58にムーブアウト履歴情報が存在すると判定された場合、ムーブアウト処理が中断されたことを補償するために、処理はステップS392に進む。
ステップS392において、C IN/C OUT87は、ムーブアウト復元処理を実行する。ムーブアウト復元処理について、図87のフローチャートを参照して説明する。
ステップS401において、C IN/C OUT87は、HDD58のコンテンツデータは権利無効であるか否かを判定する。HDD58のコンテンツデータが権利無効であると判定された場合、処理はステップS402に進む。
ステップS402において、C IN/C OUT87は、HDD58に存在するコンテンツデータを削除する。なお、ステップS401において、HDD58のコンテンツデータが権利無効ではないと判定された場合、ステップS402はスキップされる。
ステップS403において、C IN/C OUT87は、HDD58のムーブアウト履歴情報を削除する。
処理は、図86に戻る。ステップS393において、C IN/C OUT87は、HDD58にムーブイン履歴情報が存在するか否かを判定する。HDD58にムーブイン履歴情報が存在すると判定された場合、ムーブイン処理が中断されたことを補償するために、処理はステップS394に進む。
ステップS394において、C IN/C OUT87は、ムーブイン復元処理を実行する。ムーブアウト復元処理について、図88のフローチャートを参照して説明する。
ステップS421において、C IN/C OUT87は、HDD58のコンテンツデータは権利無効であるか否かを判定する。HDD58のコンテンツデータが権利無効であると判定された場合、処理はステップS422に進む。
ステップS422において、C IN/C OUT87は、HDD58に存在するコンテンツデータを削除する。なお、ステップS421において、HDD58のコンテンツデータが権利無効ではないと判定された場合、ステップS422はスキップされる。
ステップS423において、C IN/C OUT87は、HDD58のムーブイン履歴情報を削除する。以上、ムーブイン復元処理の説明を終了する。処理は、図86に戻り、復帰処理は終了される。
なお、図86のステップS391において、HDD58にムーブアウト履歴情報が存在しないと判定された場合、ムーブアウト処理が正常に終了されているので、ステップS392の処理はスキップされる。また、ステップS393において、HDD58にムーブイン履歴情報が存在しないと判定された場合、ムーブイン処理が正常に終了されているので、ステップS394の処理はスキップされる。
また、復帰処理が電源遮断後によって中断されたとしても、電源復旧後に再度ステップS391から実行されるので、その補償はなされることになる。以上、復帰処理の説明を終了する。
次に、オーディオサーバ1のHDD58に記録されているコンテンツデータを、MS4にチェックアウトする処理について、図89乃至図91を参照して説明する。
ここで、HDD58に記録されているコンテンツデータをチェックアウトする処理とは、HDD58に記録されているコンテンツデータのコピーをMS4などに一時的に作成して利用するための処理である。コンテンツデータのチェックアウト可能回数は予め設定されており、チェックアウト処理のよってチェックアウト可能回数は1ずつ減少するが、後述するチェックイン処理を実行することにより、減少したチェックアウト可能回数は1ずつ復元される。
チェックアウト処理について、図89のフローチャートを参照して説明する。なお、チェックアウト処理は、HD MW82のC IN/C OUT87によって制御される。
このチェックアウト処理は、MSスロット45にMS4が挿入されている状態で、ユーザがメニュー/キャンセルボタン21を操作してメニューを表示させ、カーソルボタン17を操作して「編集」を選択した後、エンタボタン20を操作して編集メニューを表示させ、カーソルボタン17を操作して「チェックアウト」を選択した後、エンタボタン20を操作したときに開始される。
ステップS441において、C IN/C OUT87は、HS DB91を制御して、現在選択されているアルバムに属する全てのトラックに対応するコンテンツデータのチェックアウト可能回数(チェックアウト残り回数)を取得する。コンテンツデータのチェックアウト可能回数は、対応するトラックオブジェクトのAC(図42)に含まれるCNに記録されている(図43)。
ステップS442において、C IN/C OUT87は、関係するファームウェアに依頼して、チェックアウト可能回数が1以上あるトラックについての情報(曲タイトル、チェックアウト可能回数など)を、ディスプレイ15に表示させる。図90は、ディスプレイ15の表示例を示している。ディスプレイ15の表示エリア311には、チェックアウトの音源を示す情報として”HDD”が表示される。表示エリア312の表示は、各トラックに対応するコンテンツデータのチェックアウト可能回数を示している。
ステップS443において、C IN/C OUT87は、ユーザがカーソルボタン17とセレクトボタン18を操作することにより、表示されたチェックアウト可能なトラックのうち、チェックアウトするトラックを選択したか否かを判定する。チェックアウトするトラックを選択したと判定された場合、処理はステップS444に進む。
ステップS444において、C IN/C OUT87は、選択されたトラックをチェックアウトリストに追加する。ステップS445において、C IN/C OUT87は、選択されたトラックに対するコンテンツデータのチェックアウト可能回数の表示を1だけデクリメントさせる。処理は、ステップS441に戻り、以降の処理が繰り返される。
なお、ステップS443において、チェックアウトするトラックが選択されないと判定された場合には、処理はステップS446に進む。ステップS446において、C IN/C OUT87は、ユーザがエンタキー20を操作することにより、チェックアウトするトラックのリストを表示させ、さらにエンタキー20を操作することにより、チェックアウトの実行を指示したか否かを判定する。チェックアウトの実行が指示されていないと判定された場合、処理はステップS441に戻り、以降の処理が繰り返される。
その後、ステップS446において、チェックアウトの実行が指示されたと判定された場合、処理はステップS447に進む。ステップS447において、C IN/C OUT87は、チェックアウトリストに含まれるトラックに対応するコンテンツデータをHDD58から読み出し、MS MW89に依頼して、読み出したコンテンツデータをMS4にコピーさせる。なお、コンテンツデータのコピーには、チェックアウト元であるHDD58を特定する情報を含ませる。
ステップS448において、C IN/C OUT87は、コピーしたコンテンツデータに対応するトラックオブジェクトのACのCNに記録されているチェックアウト可能回数を1だけデクリメントしてCNの値を更新する。また、C IN/C OUT87は、ACのLCMLOGに、チェックアウト先の情報としてMS4を特定する情報を記録する。
なお、説明は省略するが、このチェックアウト処理においても、上述したムーブアウト処理と同様に、再生の可否(権利の有効、または無効)を示すフラグを用いることにより、電源遮断などの補償と、不正なコピーの作成を抑止している。
図91は、チェックアウト処理が実行されている最中のディスプレイ15の表示例を示している。表示エリア321には、チェックアウト中であることを示す文字”Check out”が点滅表示される。チェックアウトが完了したトラックの横には、チェックマーク322が表示される。現在チェックアウト中のトラックの横には、ポインタ323が表示される。表示エリア324には、チェックアウト処理の進捗状況を示す情報(チェックアウト中またはチェックアウトが完了したコンテンツデータの数/チェックアウトリストに含まれるコンテンツデータの総数)が表示される。以上、チェックアウト処理の説明を終了する。
次に、MS4にチェックアウトしたコンテンツデータを、HDD58にチェックインする処理について、図92および図93を参照して説明する。
ここで、MS4に記録されているコンテンツデータをチェックアウトする処理とは、HDD58からMS4に一時的に再生したコンテンツデータのコピーを消去するとともに、HDD58のチェックアウト可能回数を1だけインクリメントして、チェックアウト可能回数を元の値に復元する処理である。
チェックイン処理について、図92のフローチャートを参照して説明する。なお、チェックイン処理は、HD MW82のC IN/C OUT87によって制御される。
このチェックイン処理は、MSスロット45にMS4が挿入されている状態で、ユーザがメニュー/キャンセルボタン21を操作してメニューを表示させ、カーソルボタン17を操作して「編集」を選択した後、エンタボタン20を操作して編集メニューを表示させ、カーソルボタン17を操作して「チェックイン」を選択した後、エンタボタン20を操作したときに開始される。
ステップS451において、C IN/C OUT87は、MS MW89に依頼して、MS4に記録されているデータのうち、チェックイン可能なコンテンツデータ(オーディオサーバ1のHDD58からチェックアウトされたコンテンツデータ)を識別し、関係するファームウェアに依頼して、チェックイン可能なコンテンツデータの情報をディスプレイ15に表示させる。
ステップS452において、C IN/C OUT87は、チェックイン可能なトラックについての情報(曲タイトルなど)を、ディスプレイ15に表示させる。図93は、ディスプレイ15の表示例を示している。ディスプレイ15の表示エリア331には、チェックインの音源を示す情報として”MS”が表示される。コンテンツデータの曲タイトル名などの情報の後に表示される矢印332は、当該コンテンツデータがチェックイン可能であることを示している。
ステップS452において、C IN/C OUT87は、ユーザがカーソルボタン17とセレクトボタン18を操作することにより、表示されたチェックイン可能なコンテンツデータのうち、チェックインするコンテンツデータを選択したか否かを判定する。チェックインするコンテンツデータを選択したと判定された場合、処理はステップS453に進む。
ステップS453において、C IN/C OUT87は、選択されたコンテンツデータをチェックインリストに追加する。処理は、ステップS451に戻り、以降の処理が繰り返される。
なお、ステップS452において、チェックインするコンテンツデータが選択されないと判定された場合には、処理はステップS454に進む。ステップS454において、C IN/C OUT87は、ユーザがエンタキー20を操作することにより、チェックインするコンテンツデータのリストを表示させ、さらにエンタキー20を操作することにより、チェックインの実行を指示したか否かを判定する。チェックインの実行が指示されていないと判定された場合、処理はステップS451に戻り、以降の処理が繰り返される。
その後、ステップS454において、チェックインの実行が指示されたと判定された場合、処理はステップS455に進む。ステップS455において、C IN/C OUT87は、MS MW89に依頼して、チェックインリストに含まれるMS4のコンテンツデータを消去する(再生の可否を示すフラグを否、すなわち、権利無効とするだけでもよい)。
ステップS456において、C IN/C OUT87は、HDD58に記録されている元のコンテンツデータに対応するトラックオブジェクトのACのCNに記録されているチェックアウト可能回数を1だけインクリメントしてCNの値を更新する。また、C IN/C OUT87は、ACのLCMLOGからチェックアウト先の情報として記録していたMS4を特定する情報を削除する。以上、チェックイン処理の説明を終了する。
次に、MS4に記録されているコンテンツデータをチェックインする処理と、HDプレイ機能によって最後に再生したトラックが含まれるアルバムに属する複数のトラックを一括してMS4にチェックアウトする処理とを連続して実行するエクスチェンジ処理について、図94乃至図97を参照して説明する。
このエクスチェンジ処理は、MSスロット45にMS4が挿入された状態で、ユーザがエクスチェンジボタン22を操作したときに開始される。
ステップS461において、C IN/C OUT87は、MS MW89に依頼して、MS4に記録されているデータのうち、チェックイン可能なコンテンツデータを識別する。ステップS462において、C IN/C OUT87は、MS MW89と連携して、MS4のチェックイン可能なコンテンツデータを1コンテンツデータずつ、図92を参照して上述したチェックイン処理と同様にチェックインする。
図95は、ステップS462の処理が行われている最中のディスプレイ15の表示例を示している。ディスプレイ15の表示エリア381には、チェックインの音源を示す情報として”MS”が表示される。表示エリア382には、チェックインが実行中であることを示す文字”Now Check in”が点滅表示される。コンテンツデータの曲タイトル名などの情報の前に表示される”×”印383は、当該コンテンツデータがチェックイン不可能であることを示している。チェックマーク384は、当該コンテンツデータのチェックインが完了していることを示している。ポインタ385は、当該コンテンツデータのチェックインが実行中であることを示している。
ステップS463において、C IN/C OUT87は、MS4のチェックイン可能なコンテンツデータを全てチェックインしたか否かを判定する。MS4のチェックイン可能なコンテンツデータを全てチェックインしたと判定されない場合、処理はステップS462に戻り、次のコンテンツデータがチェックインされる。その後、ステップS463において、MS4のチェックイン可能なコンテンツデータを全てチェックインしたと判定された場合、処理はステップS464に進む。
ステップS464において、C IN/C OUT87は、HD DB91と連携して、属するトラックを一括してチェックアウトするアルバムを決定する。具体的には、例えば、HD DB91がオブジェクト記録領域122に記録されている各トラックオブジェクトの最終アクセス日時(図42)に基づいて最後に再生されたトラックを判別し、そのトラックが属するアルバムをチェックアウトするアルバムに決定する。
ステップS465において、C IN/C OUT87は、チェックアウトするアルバムから1トラック(すなわち、コンテンツデータ)を選択する。ステップS466において、C IN/C OUT87は、選択されたコンテンツデータがチェックアウト可能であるか否かを判定する。選択されたコンテンツデータがチェックアウト可能であると判定された場合、処理はS467に進む。
ステップS467において、C IN/C OUT87は、MS MW89に依頼して、選択されたコンテンツデータをチェックアウトするだけの容量がMS4に空いているか否かを判定させる。選択されたコンテンツデータをチェックアウトするだけの容量がMS4に空いていると判定された場合、処理はステップS468に進む。
ステップS468において、C IN/C OUT87は、選択されたコンテンツデータを、図89を参照して上述したチェックアウト処理と同様にチェックアウトする。
図96は、ステップS468の処理が行われている最中のディスプレイ15の表示例を示している。ディスプレイ15の表示エリア391には、チェックアウトの音源を示す情報として”HDD”が表示される。表示エリア392には、チェックアウトが実行中であることを示す文字”Now Check out”が点滅表示される。コンテンツデータの曲タイトル名などの情報の前に表示される”×”印は、当該コンテンツデータがチェックアウト不可能であることを示しており、チェックマークは、当該コンテンツデータのチェックアウトが完了していることを示している。
ステップS469において、C IN/C OUT87は、チェックアウトするアルバムに含まれる全てのトラック(すなわち、コンテンツデータ)を、ステップS465で選択したか否かを判定する。全てのコンテンツデータをステップS465で選択していないと判定された場合、処理はステップS465に戻り、以降の処理が繰り返され、ステップS469において、全てのコンテンツデータをステップS465で選択したと判定された場合、エクスチェンジ処理は終了される。
なお、ステップS466において、選択されたコンテンツデータがチェックアウト可能でなないと判定された場合、ステップS467,S468はスキップされる。また、ステップS467において、選択されたコンテンツデータをチェックアウトするだけの容量がMS4に空いていないと判定された場合、ステップS468はスキップされる。
図97は、エクスチェンジ処理が完了した直後のディスプレイ15の表示例を示している。ディスプレイ15の表示エリア401には、エクスチェンジ処理が完了したことを示す文字”COMPLETE”が表示される。
以上説明したように、ユーザは、エクスチェンジボタン22を操作するだけで、MS4からHDD58に対するチェックイン処理と、HDD58からMS4に対するチェックアウト処理と自動的に実行させることが可能となる。以上、エクスチェンジ処理の説明を終了する。
ところで、上述したムーブアウト処理、ムーブイン処理、インポート処理、チェックアウト処理、およびチェックイン処理は、HDD58とMS4との間だけでなく、HDD58とコネクタ43に接続されるPD5との間でも実行することが可能である。
図98にPD5のハードウェア的な構成例を示す。PD5を実現するLSI(Large Scale Integration)410は、その全体を制御するCPU411を内蔵している。CPU411には、バス421を介して、ROM412、RAM413、DMAコントローラ414、DSP(Digital Signal Processor)415、バッファ416、LCDインタフェース(I/F)417、シリアルインタフェース(I/F)418、およびインタフェース419,420が接続されている。
ROM412には、PD5の各種の機能を実現するプログラム、機器ID、暗号キーなどが記憶されている。RAM413は、CPU411が各種の処理を実行する際、所定のデータやプログラムを一時的に記憶する。DMAコントローラ414は、バッファ416、フラッシュメモリ426、およびシリアルインタフェース418を介するUSBコントローラ424の間のデータ転送を制御する。DSP415は、フラッシュメモリ426などに記録されているコンテンツデータをデコードする。また、DSP415は、DESエンジンを有しており、暗号キーを用いてコンテンツデータの暗号化/復号を行う。バッファ416は、DMAコントローラ417が転送を制御するデータを一時的にバッファリングする。
LCDインタフェース417の後段には、LCDドライバ422、およびLCD423が接続される。シリアルインタフェース418の後段には、USBコントローラ424、およびUSBコネクタ425が接続される。USBコントローラ424は、USBコネクタ425を介して接続されるオーディオサーバ1とのデータ通信を制御する。インタフェース419を介して接続されるフラッシュメモリ426には、オーディオサーバ1からムーブアウトなどされたコンテンツデータと、その曲タイトルなどの付加情報が記録される。インタフェース420の後段には、DAC427および増幅器(AMP)428が接続される。電源部429は、LSI410に給電する。
DSP415のデコードによって得られるオーディオデータは、インタフェース420、DAC427、および増幅器(AMP)428を介してヘッドホンなどに出力される。
HDD58とMS4との間のムーブアウト処理などと、HDD58とPD5との間のムーブアウト処理などは、ほぼ同様であるので、その相違について説明する。
MS4に記録するコンテンツデータの暗号化は、オーディオサーバ1のHDD58に記録されているコンテンツデータの暗号化と同じ暗号キーよって行われる。よって、HDD58とMS4との間では、暗号化されたコンテンツデータを復号することなく、そのままの状態でムーブアウトすることができる。
それに対して、PD5に記録するコンテンツデータの暗号化は、オーディオサーバ1のHDD58に記録されているコンテンツデータの暗号化とは異なる暗号キーが用いられる。よって、HDD58とPD5との間では、図56を参照して上述したように、HDD58に記録されているコンテンツデータの暗号が復号され、再度、異なるPD5用の暗号キーを用いて暗号化されたコンテンツをムーブアウトするようにしている。
以上、HDD58とPD5との間でのムーブアウト処理、ムーブイン処理、インポート処理、チェックアウト処理、およびチェックイン処理についての説明を終了する。
ところで、上述した一連の処理は、オーディオサーバ1のような専用機器によって実行させることもできるが、汎用のパーソナルコンピュータなどに、図7に示したようなファームウェアをインストールして実行させることによっても実現することができる。
このファームウェアは、汎用のコンピュータとは別に、ユーザにプログラムを提供するために配布される、ファームウェアが記録されている磁気ディスク(フロッピディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、ファームウェアが記録されているROMやハードディスクなどで構成される。
なお、本明細書において、プログラム(ファームウェア)を記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 オーディオサーバ, 2 スピーカ, 3 音楽CD, 4 MS, 5 PD, 6 PC, 22 エクスチェンジボタン, 51 メインCPU, 71RTOS , 72 APP, 73 UMW, 74 LMW, 75 DD, 76 メインAPP, 77 HD APP, 78 CD APP, 79 MS APP, 80 PD APP, 81 FEP, 82 HD MW, 83 HD CC, 84 CD RIPPING, 85 HD PLAY, 86 HD REC, 87 C IN/C OUT, 88 CD MW, 89 MS MW, 90 PD MW
Claims (10)
- 1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と、前記第1の記録媒体とは異なる第2の記録媒体との間でオーディオデータの転送を行うデータ転送システムにおいて、
前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体と、
前記第2の集合体によって指示されたオーディオデータを前記第2の記録媒体へ転送する場合に、前記第2の集合体に指示されたオーディオデータが含まれる第1の集合体に含まれるすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送する制御部と
を備えるデータ転送システム。 - 前記第2の記録媒体は、着脱可能な記録媒体である
請求項1に記載のデータ転送システム。 - 前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項1に記載のデータ転送システム。 - 前記識別情報と前記第1の集合体とが関連づけられている
請求項3に記載のデータ転送システム。 - 1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と第2の記録媒体との間でオーディオデータの転送を行うデータ転送方法において、
前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体に指定されたオーディオデータを前記第1の記録媒体から前記第2の記録媒体へ転送する指示を受信し、
前記第2の集合体によって指示されたオーディオデータが含まれる第1の集合体を検索し、
前記第2の集合体によって指示されたオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第1の集合体に含まれる他のすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送する
データ転送方法。 - 前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項5に記載のデータ転送方法。 - 前記識別情報と前記第1の集合体とが関連づけられている
請求項6に記載のデータ転送方法。 - 1以上のオーディオデータの実体から形成される第1の集合体が複数記録された第1の記録媒体と第2の記録媒体との間でオーディオデータの転送を行うデータ転送プログラムにおいて、
前記第1の記録媒体に記録された、1以上の前記第1の集合体に含まれるオーディオデータの再生順序を示すとともに再生順序が示されたおのおのの第1の集合体に含まれるオーディオデータの実体への指示をするポインタとを規定する第2の集合体に指定されたオーディオデータを前記第1の記録媒体から前記第2の記録媒体へ転送する指示を受信し、
前記第2の集合体によって指示されたオーディオデータが含まれる第1の集合体を検索し、
前記第2の集合体によって指示されたオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送するとともに、前記転送されるオーディオデータが含まれる第1の集合体に含まれる他のすべてのオーディオデータの実体を前記第1の記録媒体から前記第2の記録媒体へ転送する
データ転送プログラム。 - 前記第2の記録媒体には、他の記録媒体と識別するための固有な識別情報が付与されている
請求項8に記載のデータ転送プログラム。 - 前記識別情報と前記第1の集合体とが関連づけられている
請求項8に記載のデータ転送プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006034754A JP2006185589A (ja) | 2006-02-13 | 2006-02-13 | データ転送システム、データ転送方法、およびデータ転送プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006034754A JP2006185589A (ja) | 2006-02-13 | 2006-02-13 | データ転送システム、データ転送方法、およびデータ転送プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001206395A Division JP4701550B2 (ja) | 2001-07-06 | 2001-07-06 | 記録装置および方法、記録媒体、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006185589A true JP2006185589A (ja) | 2006-07-13 |
Family
ID=36738562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006034754A Pending JP2006185589A (ja) | 2006-02-13 | 2006-02-13 | データ転送システム、データ転送方法、およびデータ転送プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006185589A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009169751A (ja) * | 2008-01-17 | 2009-07-30 | Brother Ind Ltd | 表示端末、情報管理プログラム、印刷装置、及び読取装置 |
-
2006
- 2006-02-13 JP JP2006034754A patent/JP2006185589A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009169751A (ja) * | 2008-01-17 | 2009-07-30 | Brother Ind Ltd | 表示端末、情報管理プログラム、印刷装置、及び読取装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100915767B1 (ko) | 정보 처리 장치 및 방법 | |
JP4038686B2 (ja) | 記録装置、記録方法、記憶媒体、プログラムおよび通信装置 | |
JP4701550B2 (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP4830225B2 (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP4242553B2 (ja) | ディジタルオーディオ信号録音装置 | |
JP2002203366A (ja) | ディジタルオーディオ信号録音装置 | |
JP2003069551A (ja) | 暗号化装置および方法、復号装置および方法、記録媒体、並びにプログラム | |
JP4618476B2 (ja) | 再生装置および方法、記録媒体、並びにプログラム | |
JP4586317B2 (ja) | 記録再生装置および方法、記録媒体、並びにプログラム | |
JP2003087239A (ja) | 通信システム、通信装置および方法、記録媒体、並びにプログラム | |
JP2003022656A (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP2003030966A (ja) | 再生装置および方法、記録媒体、並びにプログラム | |
JP2006185589A (ja) | データ転送システム、データ転送方法、およびデータ転送プログラム | |
WO2003088249A1 (fr) | Dispositif et procede d'enregistrement/lecture | |
JP2003066996A (ja) | 記録再生装置および方法、記録媒体、並びにプログラム | |
JP2003022606A (ja) | 記録再生装置および方法、記録媒体、並びにプログラム | |
JP2003030967A (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP2003022663A (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP2003022205A (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JP2003330576A (ja) | 情報処理装置および方法、拡張装置および方法、情報処理システム、記録媒体、並びにプログラム | |
JP2004039114A (ja) | 記録再生装置、記録方法、プログラム、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080225 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080425 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080610 |