(57)【要約】  再生装置は、BD-ROMにおける構成要素と、リムーバブルメディアにおける追加コンテンツとを組み合わせて、仮想パッケージを構築する。再生装置におけるミドルウェアは、アプリケーションプログラムからの要求に従い、リムーバブルメディアに対するデータ入出力を制御するファイルI/Oモジュール３４を備える。ファイルI/Oモジュール３４は、仮想パッケージの構成要素の書き込みがBD-Jアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリーム形式であれば、リムーバブルメディアにおける連続した複数の空きの論理ブロックから構成されるアロケーションユニットに、当該構成要素を書き込む。AVストリーム形式でなければ、リムーバブルメディアにおける連続していない複数の空きブロックから構成される通常データ領域に、当該追加コンテンツを書き込む。
2008149501.tif 000002
【特許請求の範囲】
【請求項１】
仮想パッケージを再生する再生装置であって、
第１記録媒体が装填された際、アプリケーションからの要求に従い、前記第１記録媒体に対応する追加コンテンツを装置外部から取得する取得手段と、
取得された前記追加コンテンツを、前記アプリケーションからの要求に従い、前記第２記録媒体に書き込む制御手段と、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築する構築手段とを備え、
前記制御手段は、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とする再生装置。
【請求項２】
前記第１記録媒体には、証明書の識別子、組織の識別子、媒体の識別子が付加されており、
前記連続領域は、第２記録媒体における追加コンテンツ格納領域に配置され、追加コンテンツ格納領域は、第１記録媒体の証明書識別子と、組織識別子と、媒体識別子とを含むファイルパスによって特定される領域であり、
前記アプリケーションによる追加コンテンツの書込要求は、
前記追加コンテンツ格納領域を特定するファイルパスを、制御手段に引き渡すことでなされる、ことを特徴とする請求項１記載の再生装置。
【請求項３】
前記第１の記録媒体は、ディレクトリ名、及び、ファイル名が２５５文字以下に制限されたファイルシステムを有し、
前記第２記録媒体への書き込みに用いられるファイルパスは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下である８.３形式のファイルシステムにおけるファイル名と、拡張子との指定を含み、
前記制御手段は、
前記追加コンテンツが格納されるべきファイルの拡張子が、３文字以下に制限された規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別する
ことを特徴とする請求項２記載の再生装置。
【請求項４】
前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記連続領域を構成するに足る、連続した空きブロックが存在するか否かのチェックを行い、
前記連続領域は、前記チェックにより存在することが明らかになった、連続する複数の空きブロックから構成される、請求項３記載の再生装置。
【請求項５】
前記連続領域にAVストリームである追加コンテンツを記録した後、連続領域に余剰な未記録部分が存在したとしても、未記録部分には、データを記録しない
ことを特徴とする請求項４記載の再生装置。
【請求項６】
前記制御手段による追加コンテンツの書き込みには、追記と、上書きとがあり、
前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記アプリケーションから要求された書き込みが追記であるか、上書きであるかの判定を行い、
前記追記は、
既に第２記録媒体に記録されている記録済みデータをメモリに読み出した上で、第２記録媒体から記録済みデータを消去する処理と、メモリに読み出された記録済みデータと、書き込むべき追加コンテンツとを一体にした上で、連続領域に書き込む処理とによってなされ、
前記上書きは、
第２記録媒体に既に記録されている記録済みデータを消去して、書き込むべき追加コンテンツを連続領域に書き込む処理によってなされる請求項３記載の再生装置。
【請求項７】
前記第２記録媒体には、
証明書識別子に対応するディレクトリ、組織識別子に対応するディレクトリ、媒体識別子に対応するディレクトリセットが存在し、
前記組織識別子に対応するディレクトリは、証明書識別子に対応するディレクトリの下位に存在し、
前記媒体識別子に対応するディレクトリセットは、組織識別子に対応するディレクトリの下位に存在し、
前記媒体識別子に対応するディレクトリセットは、階層化された複数のサブディレクトリからなり、
前記追加コンテンツ格納領域は、
階層化された複数のサブディレクトリのうち、最下層にあたるサブディレクトリに該当する、請求項３記載の再生装置。
【請求項８】
前記媒体識別子に対応するディレクトリセットは、４つのサブディレクトリに階層化されており、
前記第１記録媒体に付加された媒体識別子は、最大３２文字の文字列であり、
前記媒体識別子に対応するディレクトリセットを構成するサブディレクトリのそれぞれには、媒体識別子を構成する最大３２文字の文字列を分割することで得られた、８文字以下のディレクトリ名が付加されている、請求項３記載の再生装置。
【請求項９】
前記第２記録媒体へと書き込むべき追加コンテンツがAVストリームであり、前記第２記録媒体の連続領域における空き容量が不足している場合、
前記第２記録媒体の連続していない空きのブロックに、前記AVストリームを書込み、前記AVストリームの記録が正しく成功しなかったことをユーザに報知する、ことを特徴とする請求項１記載の再生装置。
【請求項１０】
前記第２記録媒体へと書き込むべき追加コンテンツがAVストリームであり、前記第２記録媒体の連続領域及び連続していない空きブロックの双方における空き容量が不足している場合、
前記書込みに失敗したことを前記アプリケーションに通知し、デジタルストリームの記録に失敗したことをユーザに報知する
ことを特徴とする請求項１記載の再生装置。
【請求項１１】
仮想パッケージを構築するための追加コンテンツを記録媒体に記録する記録方法であって、
第１記録媒体に対応する追加コンテンツを装置外部から取得する取得ステップと、
取得された前記追加コンテンツを、アプリケーションからの要求に従い、第２記録媒体に書き込む制御ステップとを含み、
前記仮想パッケージは、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで構築され、
前記制御ステップは、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とする記録方法。
【請求項１２】
仮想パッケージを構築するための追加コンテンツを記録媒体に記録する処理をコンピュータに実行させるプログラムであって、
第１記録媒体に対応する追加コンテンツを装置外部から取得する取得ステップと、
取得された前記追加コンテンツを、アプリケーションからの要求に従い、第２記録媒体に書き込む制御ステップとをコンピュータに実行させ、
前記仮想パッケージは、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで構築され、
前記制御ステップは、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想パッケージの技術分野に属する発明である。
【背景技術】
【０００２】
仮想パッケージとは、BD-ROM等のリードオンリー型の記録媒体に記録されているデータと、半導体メモリカード、ハードディスク等のリライタブル型の記録媒体に記録されているデータとを動的に組み合わせて、仮想的なパッケージを構築することにより、リードオンリー型記録媒体の内容拡張を図る技術である。このような技術では、書き換え可能なハードディスクに記録しているデータを更新することで、BD-ROMを頒布した後も、作品内容の変更の余地を残すことができる。例えば、映画作品のプロバイダは、作品本編を記録したBD-ROMを頒布した後も、公開前の他の作品の予告編デジタルストリームをネットワークを介して提供することで、BD-ROMの頒布時期にかかわらず、ユーザに対して常に最新の作品を宣伝することが出来る。【０００３】
仮想パッケージについての先行技術としては、以下の特許文献１、２、３に記載されているものがある。
【特許文献１】特開２００６-１０９４９４号
【特許文献２】特開２００７-２０２１１号
【特許文献３】特開２００６-３３０６７号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、仮想パッケージ構築のための追加コンテンツの受け皿として、長きにわたりリライタブルな記録媒体を使用していると、リライタブルな記録媒体には多くの追加コンテンツが記録される。追加コンテンツは、その陳腐化に伴い、削除されるという運命を辿る。リライタブルな記録媒体の容量は、制限されていることが多く、新たな追加コンテンツの記録にあたっては、削除により得られた空き領域を記録先とするのが望ましい。このように、リライタブルな記録媒体への記録にあたっては、削除によって得られた空き領域を書込先に選ぶので、フラグメンテーションが発生する。ここで仮想パッケージ構築のための追加コンテンツには、サイズが大きいAVストリーム形式のものや、小サイズな非AVストリーム形式のものが混在している。これらのうち、AVストリーム形式の追加コンテンツが分割されて、個々の分割部分が、リライタブルな記録媒体上の複数の領域に、バラバラに配置された場合、AVストリームの読み出しには、バラバラに配置された分割部分を読み出して、元のAVストリームを復元にする必要がある。バラバラに配置された分割部分の読出しには、リライタブル型の記録媒体からデータを読み出すためのバースト的な転送を、複数回に分けて実行にする必要がある。一般的にバースト転送の実行には、読出先アドレスの設定や、コマンド発行等のオーバーヘッドが発生する。ここで、AVストリームがバラバラに記録されたため、AVストリームの読み出しのためのバースト転送を、複数回に分けて実行しようとすると、この読出先アドレスの設定回数が増えることになり、AVストリームの読み出しにあたってのオーバーヘッドが増大するため、オーバーヘッドの影響が無視できないものとなる。そうするとAVストリームの読み取り性能が低下し、再生映像がスムーズに流れない（映像がカクツク）などの支障が出てしまう。【０００５】
ここで、フラグメンテーション発生を防止するために追加コンテンツを書き込むにあたっては、４Ｍバイト等、ある大きさの容量をもった連続領域の確保を行い、確保された連続領域に追加コンテンツを書き込むことも考えられる。ところが、仮想パッケージ構築のため、必要となる追加コンテンツには、AVストリームのものよりも非AVストリームの追加コンテンツの方が圧倒的に数が多く、追加コンテンツ記録のために連続領域を割り当てても実際に使われる領域が一部だけとなり、利用されない未使用の領域が増え、ストレージの容量を有効活用できないという課題がある。【０００６】
本発明の目的は、仮想パッケージの構成要素に、AVストリーム形式の追加コンテンツ、非AVストリーム形式の追加コンテンツが混在している場合においても、AVストリーム形式の追加コンテンツの読み取り性能低下を防ぎつつ、ストレージ容量の有効利用を図ることができる再生装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、再生装置は、仮想パッケージを再生する再生装置であって、第１記録媒体が装填された際、アプリケーションからの要求に従い、前記第１記録媒体に対応する追加コンテンツを装置外部から取得する取得手段と、取得された前記追加コンテンツを、前記アプリケーションからの要求に従い、前記第２記録媒体に書き込む制御手段と、前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築する構築手段とを備え、前記制御手段は、前記追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込むことを特徴としている。
【発明の効果】
【０００８】
（１.課題解決手段による効果）
上記再生装置によると、追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込むので、AVストリームは連続領域にひとまとまりになるように、書き込まれてゆき、非AVストリームの追加コンテンツは、空きのブロックの何処かに書き込まれることになる。【０００９】
AVストリームは、連続領域にひとまとまりになるように記録されるので、一回のバースト的な転送によって、AVストリームをリライタブル型の記録媒体からメモリに読み出すことができる。こうすることで、一回のバースト的な転送によってAVストリームを読み出すようにしたので、バースト転送に伴うオーバヘッドの影響を最も小さくすることができ、書込レートが遅い半導体メモリカードやその他、低速な磁気記録媒体が第２記録媒体として採用された場合であっても、採用された媒体の種別によって、AV再生の品位に差異が生じることはない。【００１０】
また非AVストリームの追加コンテンツは、記録済みファイルの削除によって生じた何処かの領域に、書き込んでゆけばよいので、非AVストリームの追加コンテンツについてはフラグメンテーションは発生が容認されることになる。こうすることで、第２記録媒体の容量効率を極端に低下させることはない。【００１１】
仮想パッケージ再生にあたっての、AV再生の品位を維持することができるので、コンテンツオーサは、仮想パッケージで再生されるようなコンテンツを、積極的に配布することができる。
（２.連続領域の特定）
ここで連続領域の特定にあたっては、以下のようにすることが望ましい。つまり、前記第１記録媒体には、証明書の識別子、組織の識別子、媒体の識別子が付加されており、前記連続領域は、第２記録媒体における追加コンテンツ格納領域に配置され、追加コンテンツ格納領域は、第１記録媒体の証明書識別子と、組織識別子と、媒体識別子とを含むファイルパスによって特定される領域であり、前記アプリケーションによる追加コンテンツの書込要求は、前記追加コンテンツ格納領域を特定するファイルパスを、制御手段に引き渡すことでなされることが望ましい。仮想パッケージ構築にあたって、第２記録媒体とペアとなる第１記録媒体毎に、連続領域は確保されることになる。連続領域は、ペアとなる第１記録媒体毎にまとめられるので、AVストリームの記録・削除が繰り返されることによるフラグメンテーションの発生を局所的にすることができる。AVストリームの記録に、連続領域を使用することによる記録効率の低下は、局所的なものとなるので、第２記録媒体全体としては、記録効率を一定の水準に維持することができる。【００１２】
また追加コンテンツ格納領域は、証明書の識別子、組織の識別子、媒体の識別子を用いたファイルパスにて特定されるので、AVストリームを供した組織や、AVストリームの認証に用いる証明書の違い毎に、連続領域を設けることができる。【００１３】
第２記録媒体に記録されているファイルが、どの第１記録媒体に対応しているかは、第２記録媒体における連続領域に対するファイルパスを参照することで、判別することができる。従って、たとえ様々な第１記録媒体が再生装置に装填されたとしても、第２記録媒体におけるファイルパスに対応する第１記録媒体が、再生装置に装填されている場合のみ、ファイルパスを用いたファイルアクセスを実現するよう制限を課すことができる。
(３.書き込むべき追加コンテンツの判別の仕方)
書き込むべき追加コンテンツのストリーム形式を判別するには、以下のようにするのが望ましい。つまり、前記第１の記録媒体は、ディレクトリ名、及び、ファイル名が２５５文字以下に制限されたファイルシステムを有し、前記第２記録媒体への書き込みに用いられるファイルパスは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下である８.３形式のファイルシステムにおけるファイル名と、拡張子との指定を含み、前記制御手段は、前記追加コンテンツが格納されるべきファイルの拡張子が、３文字以下に制限された規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別することが望ましい。【００１４】
アプリケーションが、短縮したファイル名や拡張子を付与した上でファイルを第２記録媒体に記録しようとする場合でも、制御手段側では、その短縮されたファイル名や拡張子のうち拡張子のみが、規定の文字列かどうかを判定することで、連続領域に書き込むべきAVストリームかどうかを判別することができる。自由なファイル名や拡張子の付与をアプリケーションに認めつつも、AVストリームについては、“規定の文字列を拡張子として使用する”との約束事を守れば、正しく連続領域に書き込むことが可能になる。【００１５】
書き込みにあたっての拡張子の付与さえ正確であれば、AVストリームは連続領域に書き込まれることになり、第２記録媒体として採用される記録媒体が高速なハードディスクであっても、低速な半導体メモリカードであっても、アプリケーションは、第２記録媒体の種別に応じて引数を変化させる必要がないので、アプリケーションにおける処理手順の記載は、より単純なものとなり、アプリケーションの開発者に、余計な負担をかけさせることはない。
(４.連続領域の確保)
連続領域における利用に関しては、以下のようにするのが望ましい。つまり前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記連続領域を構成するに足る、連続した空きブロックが存在するか否かのチェックを行い、前記連続領域は、前記チェックにより存在することが明らかになった、連続する複数の空きブロックから構成されることが望ましい。かかる確保は、AVストリームの書き込みに先立ち、８.３形式におけるファイルシステムの管理情報を参照してなされるので、第２記録媒体が半導体メモリカードである場合、FAT(ファイルアロケーションシステム)を参照した半導体メモリカードに対するアクセス手順と同様の手順を踏まえることにより、AVストリーム書き込みのための連続領域を確保することができる。
(５.連続領域の利用)
連続領域における利用に関しては、以下のようにするのが望ましい。つまり、前記連続領域にAVストリームである追加コンテンツを記録した後、連続領域に余剰な未記録部分が存在したとしても、未記録部分には、データを記録しないことが望ましい。【００１６】
既にAVストリームが記録された領域については、他のデータが書き込まれることはないので、連続領域の利用は排他的なものとなる。こうすることで、連続領域に追加コンテンツを書き込む処理や空き領域に解放する処理は、連続領域毎になされることになり、「1つの連続領域に対しては1つのAVストリームのみ記録される」との原則を徹底することができるので、AVストリームを第２記録媒体に書き込むにあたってのフラグメンテーションの発生を避けることができる。
（６.書き込みレート）
ここで半導体メモリカードを第２記録媒体として採用した場合、半導体メモリカードでは、既にデータが書かれているブロックに対しては、一旦書込先に記録されているデータを消去して、白紙の状態に戻してからデータ書き込みを行わねばならない。多くの半導体メモリカードに内蔵されているNAND型と呼ばれるEEPROMにあっては、ブロックを白紙の状態に戻すという作業を複数のブロックに対して一括して行う必要があるので、そのような白紙の状態に戻すという作業が頻繁になると、AVストリームを書き込むための書込レートが著しく低下する。そこで、前記制御手段による追加コンテンツの書き込みには、追記と、上書きとがあり、前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記アプリケーションから要求された書き込みが追記であるか、上書きであるかの判定を行い、前記追記は、既に第２記録媒体に記録されている記録済みデータをメモリに読み出した上で、第２記録媒体から記録済みデータを消去する処理と、メモリに読み出された記録済みデータと、書き込むべき追加コンテンツとを一体にした上で、連続領域に書き込む処理とによってなされ、前記上書きは、第２記録媒体に既に記録されている記録済みデータを消去して、書き込むべき追加コンテンツを連続領域に書き込む処理によってなされることが望ましい。【００１７】
連続領域に対する上書きや追記にあたっては、連続する複数のブロック毎に記録済みデータの消去を行うので、NAND型と呼ばれるEEPROMにあっては、ブロックを白紙の状態に戻すという作業を複数のブロックに対して一括してなされることになる。こうすることで、AVストリーム書き込むための書込レートの低下を招くことはない。
(７.ファイルパスの形式)
アプリケーションが、追加コンテンツの書き込みにあたって用いるファイルパスは、以下のものが望ましい。つまり、前記第２記録媒体には、証明書識別子に対応するディレクトリ、組織識別子に対応するディレクトリ、媒体識別子に対応するディレクトリセットが存在し、前記組織識別子に対応するディレクトリは、証明書識別子に対応するディレクトリの下位に存在し、前記媒体識別子に対応するディレクトリセットは、組織識別子に対応するディレクトリの下位に存在し、前記媒体識別子に対応するディレクトリセットは、階層化された複数のサブディレクトリからなり、前記追加コンテンツ格納領域は、  階層化された複数のサブディレクトリのうち、最下層にあたるサブディレクトリに該当する、ことが望ましい。【００１８】
仮想パッケージの構築にあたって、第１記録媒体に付加された証明書の識別子、組織の識別子、媒体の識別子を用いた認証を実現する場合であっても、これらの識別子と、厳密に対応をとる形で、ファイルは第２記録媒体に記録されることになる。そのため、たとえユーザが多くの第１記録媒体を所持していて、それらの第１記録媒体が頻繁に差し替えられたとしても、正しい第１記録媒体が再生装置に装填されている場合のみ、第１記録媒体のファイルパスを用いたファイルアクセスが実現されて、仮想パッケージが構築されることになる。
(８.連続領域の所在)
連続領域の所在としては、以下に配置するのが望ましい。つまり、前記媒体識別子に対応するディレクトリセットは、４つのサブディレクトリに階層化されており、前記第１記録媒体に付加された媒体識別子は、最大３２文字の文字列であり、前記媒体識別子に対応するディレクトリセットを構成するサブディレクトリのそれぞれには、媒体識別子を構成する最大３２文字の文字列を分割することで得られた、８文字以下のディレクトリ名が付加されている、ことが望ましい。【００１９】
第１記録媒体固有の媒体識別子のビット長が、長いものであったとしても、かかる識別子を構成する文字のうち、意味のあるものを省略することなく、第１記録媒体固有の媒体識別子と、第２記録媒体上のディレクトリとの対応を図るので、第２記録媒体におけるディレクトリは、第１記録媒体固有の媒体識別子と厳密に対応がとれたものとなる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態におけるシステム図
【図２】第１実施形態におけるBD-ROMの内部構成を示す図
【図３】第１実施形態におけるBD-ROMが対象としているソフトウェアのレイヤモデルを示す図
【図４】第１実施形態における２つのモードの動的な再生制御にて作成される映画作品を示す図
【図５】第１実施形態における再生装置の内部構成を示す図
【図６】リムーバブルメディアであるSDメモリカードの内部構成を示す図
【図７】通常データ領域、連続データ領域の一例を示す図
【図８】リムーバブルメディアであるSDメモリカードのファイルシステム領域の内部構成を示す図
【図９】（ａ）二重化FATの内部構成を示す図  （ｂ）ディレクトリエントリの共通のデータ構造を示す図
【図１０】00001.mtsをクラスタサイズに合わせて5つに分割し、各分割部分を、クラスタ504〜50Bに格納する状態を想定した図に示している。
【図１１】00001.mtsが複数のクラスタに記録されている場合のディレクトリエントリ及びFATについての設定例を示す図に示している。
【図１２】第１実施形態におけるリムーバブルメディアのディレクトリ構成を示す図
【図１３】第１実施形態における仮想パッケージを示す図
【図１４】第１実施形態におけるBD-Jモジュールの具体的な構成を示す図
【図１５】第１実施形態におけるindex.bdmvファイルとタイトルの関係を示す図
【図１６】ファイルI/Oモジュール３４を介した、通常データ領域又は連続データ領域に対するデータ書き込みを模式的に示す図である。
【図１７】リムーバブルメディアへのダウンロードの処理手順を示すフローチャート
【図１８】追加コンテンツのダウンロード処理の処理手順を示すフローチャート
【図１９】WriteAPIの処理手順を示すフローチャート
【図２０】アロケーションユニットに対する追記の処理過程を連続写真的な表記で描いた図
【図２１】アロケーションユニットに対する上書きの処理過程を連続写真的な表記で描いた図
【図２２】ファイル種別判別の処理手順を示すフローチャート
【図２３】追加コンテンツのファイル名を８.３形式に変換する処理の手順を示すフローチャート
【図２４】第１実施形態における仮想パッケージ構築の処理手順を示すフローチャート
【図２５】Java(TM)アプリケーションが仮想パッケージ構築/更新要求を発行し、仮想パッケージが更新されるまでの、時間的な処理の流れを示す図
【図２６】連続データ領域の空き領域が不足していた場合の処理を示すフローチャート
【図２７】連続データ領域に書込みできなかった場合におけるユーザに対する通知の一例
【図２８】AVストリームの書込みに失敗した場合を考慮したフローチャート
【図２９】書込み処理に失敗したことをユーザに示す画面表示の一例
【図３０】（ａ）（ｂ）通常データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３１】（ａ）（ｂ）連続データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３２】通常データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３３】ヘッダデータからストリーム/非ストリームの判断を行う処理手順を示すフローチャート
【図３４】BD-ROMにおけるAVストリームに多重化されるエレメンタリストリームを示す図
【図３５】BD-ROMに記録されているエレメンタリストリームにおけるPID割当マップを示す図
【図３６】追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームを示す図
【図３７】追加コンテンツ格納領域に配されるべきAVストリームに多重化されたエレメンタリストリームにおけるPID割当マップの一例
【図３８】AV再生部２４の内部構成を示す図
【図３９】再生装置の出力段の構成を示す図
【図４０】上位桁の0を省略する場合のディレクトリ構成を示す図
【符号の説明】
【００２１】
１００  BD-ROM
１０１  WWWサーバ
１０２  再生装置
１０３  テレビ
１０４  リムーバブルメディア
２１  ネットワークインターフェース
２２  ビルドインメディア
２３  仮想ファイルシステム
２５  AV再生ライブラリ
２６  静的シナリオメモリ
２７  動的シナリオメモリ
２８  HDMVモジュール
２９  BD-Jモジュール
３０  UO検知モジュール
３１  モード管理モジュール
３２  メディア再生モジュール
３４  ファイルI/Oモジュール
３５  ネットワークモジュール
３６  アプリケーションマネージャ
３７  DiscID確認モジュール
３８  リムーバブルメディア検知モジュール
３９  仮想ファイルシステム管理モジュール
【発明を実施するための最良の形態】
【００２２】
（第１実施形態）
以下本発明の実施の形態について、図面を参照しながら説明する。【００２３】
以降、再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、再生装置１０２の、使用行為についての形態を示す図である。本図に示すように、再生装置１０２は、第１記録媒体の一例であるBD-ROM１００、WWWサーバ１０１、テレビ１０３、第２の記録媒体の一例であるリムーバブルメディア１０４と共にユーザによる使用に供される。【００２４】
BD-ROM１００は、映画作品が記録された記録媒体である。【００２５】
WWWサーバ１０１は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM１００に記録された映画作品の部分的な置き換えや追加を実現するコンテンツ(追加コンテンツ)を、インターネット等を介してユーザに供給する。【００２６】
再生装置１０２は、テレビ１０３と共に、ホームシアターシステムを構築して、BD-ROM１００を再生する。【００２７】
テレビ１０３は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。【００２８】
リムーバブルメディア１０４は、再生装置に装填され、映画配給者のWWWサーバ１０１から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、リムーバブルメディア１０４に格納されたコンテンツと、BD-ROM１００に記録されたコンテンツとを組み合わせて、BD-ROM１００のコンテンツを拡張/更新をすることができる。かかるリムーバブルメディア１０４を装填するという目的のため、再生装置１０２には、SDメモリカード、メモリスティック、コンパクトフラッシュ(TM)、スマートメディア、マルチメディアカード等のリムーバブルメディア１０４を挿入する挿入口を備える。【００２９】
以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体について説明する。本発明に係る再生装置により、再生されるのは、光記録媒体であるBD-ROM１００である。【００３０】
図２は、BD-ROM（以降、「BD」と称する場合もある）の構成を示した図である。本図の第１段目に、BD-ROM１００を示し、第２段目は、BD-ROMの内周から外周に向けて螺旋状に形成された記録領域を、横方向に引き伸ばして直線状に描いている。この第２段目に示すように、記録領域は、内周の「リード・イン」と、外周の「リード・アウト」と、「論理アドレス空間」とを有している。また、リード・インの内側にはBCA（Burst  Cutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。【００３１】
「論理アドレス空間」は、ファイルシステムのための領域管理情報を先頭にして、各種データが記録されている。“ファイルシステム”とは、UDFやISO９６６０などのことであり、本実施形態では、Extention2.3形式のファイルシステムを採用する。このファイルシステムを介すれば、論理アドレス空間に記録されているデータをディレクトリ、ファイル構造を使って読み出すことができる。このファイルシステムにおけるファイルの配置位置は、２５５文字以下のディレクトリ名と、２５５文字以下のファイル名とを組合せたファイルの経路情報(ファイルパスと呼ばれる)で特定される。【００３２】
本図の第３段目は、第２段目におけるファイルシステムを前提にして構築された、ディレクトリ構成・ファイル構成を示す。本図に示すように、BD-ROMのルートディレクトリ（ROOT）直下には、bd.certファイルと、BDMVディレクトリとが置かれている。【００３３】
bd.cert（ファイル名固定）は仮想パッケージのために追加されたコンテンツをBD-ROM上のデータとマージする際に、署名検証に用いられる証明書（以下、マージ証明書）である。マージ証明書とは、BD-ROMにおけるマージ管理情報を格納したファイル(マージ管理情報ファイル)の認証に利用する証明書であり、プロバイダが公開する公開鍵を含む。マージ証明書のファイル形式は、例えば、X.５０９を利用することができる。X.５０９の詳細な仕様は、国際電信電話諮問委員会より発行されている、CCITT Recommendation X.509 (1988), "The Directory -  Authentication Framework"に記載されている。本図における引き出し線f1は、bd.certファイルの用途を示している。この引き出し線に示すように、bd.certファイルは、証明書固有のID(CertIDと呼ばれる)を導きだすという用途に用いられる。【００３４】
BDMVディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、「PLAYLISTディレクトリ」、「CLIPINFディレクトリ」、「STREAMディレクトリ」、「BDJOディレクトリ」、「JARディレクトリ」と呼ばれる５つのサブディレクトリが存在し、BDMVディレクトリには、index.bdmv，MovieObject.bdmvの２種類のファイルが配置されている。【００３５】
STREAMディレクトリは、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子M2TSが付与されたファイル(xxxxx.m2ts[“xxxxx”は可変、拡張子”m2ts”は固定])が存在する。【００３６】
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(xxxxx.mpls[“xxxxx”は可変、拡張子”mpls”は固定])が存在する。【００３７】
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(xxxxx.clpi [“xxxxx”は可変、拡張子”clpi”は固定])が存在する。【００３８】
JARディレクトリには、拡張子jarが付与されたファイル(xxxxx.jar[“xxxxx”は可変、拡張子”jar”は固定])が存在する。【００３９】
BDJOディレクトリには、拡張子bdjoが付与されたファイル(xxxxx.bdjo[“xxxxx”は可変、拡張子”bdjo”は固定])が存在する。【００４０】
＜拡張子”m2ts”が付与されたファイル＞
拡張子”m2ts”が付与されたファイルは、M P E G - T S ( T r a n s p o r t S t r e a m )形式のデジタルAVストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、1つ以上のグラフィクスストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、グラフィクスストリームは、映画の字幕をそれぞれ示している。【００４１】
拡張子”clpi”が付与されたファイルは、デジタルAVストリームのそれぞれに1対1に対応する管理情報である。管理情報故に、Clip情報は、デジタルAVストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP＿mapをもっている。【００４２】
＜拡張子”mpls”が付与されたファイル＞
拡張子”mpls”が付与されたファイルは、プレイリスト情報を格納したファイルである。プレイリスト情報は、MainPath情報、Subpath情報、PlayListMark情報を含む。【００４３】
1)MainPath情報は、AVストリームの再生時間軸のうち、In＿Timeとなる時点と、Out＿Timeとなる時点の組みを1つ以上定義することにより、論理的な再生区間を定義する情報であり、AVストリームに多重化されているエレメンタリストリームのうち、どれの再生を有効とするかを規定するストリーム番号テーブルを有しており、AVストリーム内のエレメンタリストリームのうち、どれの再生を許可し、どれの再生を許可しないかを規定するSTN＿tableをもつ。【００４４】
2)PlayListMark情報は、In＿Time情報及びOut＿Time情報の組みにて指定されたAVストリームの一部分のうち、チャプターとなる時点の指定を含む。【００４５】
3)Subpath情報は、前記AVストリームと同期して再生すべきエレメンタリストリームの指定と、そのエレメンタリストリームの再生時間軸におけるIn＿Time情報及びOut＿Time情報の組みとを含む。Java(TM)アプリケーションが、このプレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、AV再生を開始させることができる。JMFプレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。【００４６】
AVストリームと、プレイリスト情報との組みは、“タイトル”という再生単位を構成する。BD-ROMにおけるAV再生は、このタイトルを一単位としてなされる。
＜拡張子”jar”が付与されたファイル＞
拡張子”jar”が付与されたファイルは、Java(TM)アーカイブファイルであり、Java(TM)仮想マシンを用いて動的なシナリオ制御を行うJava(TM)アプリケーションのクラスファイルが存在する。このクラスファイルにて定義されるJava(TM)アプリケーションは、Xletインターフェイスを通じて制御されるJava(TM) Xletである。Xletインターフェイスは、"loaded","paused"、"active","destroyed"といった4つの状態をもつ。本明細書でいうアプリケーションとは、こうしてBD-ROM等の記録媒体に記録されているクラスファイルについてのインスタンスのことをいう。【００４７】
＜拡張子“bdjo”が付与されたファイル＞
拡張子“bdjo”が付与されたファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトは、PlayList情報により示されるAVストリームと、アプリケーションとの関連付けにより、タイトルを定義する情報である。BD-Jオブジェクトは、“アプリケーション管理テーブル”と、そのタイトルにおいて再生可能なPlayList一覧を示す。アプリケーション管理テーブル(AMT)とは、“アプリケーションシグナリング”を実現するテーブルである。“アプリケーションシグナリング”とは、BD-ROMにおける“タイトル”をアプリケーションの生存区間として管理し、アプリケーションの起動及び終了を司る制御をいう。ここで生存区間とは、BD-ROMに記録されたコンテンツ全体の時間軸において、仮想マシンのヒープメモリ上でアプリケーションが生存し得る区間を示す。“生存”とは、そのアプリケーションが、ヒープメモリに読み出され、仮想マシンによる実行が可能になっている状態をいう。アプリケーション管理テーブルは、アプリケーションの識別子(アプリケーションID)とそのアプリケーションに属するJava(TM) アーカイブファイルのIDを羅列することでこのタイトルを生存区間とするアプリケーションを示す。つまり、一つのアプリケーションは一つ以上の Java(TM) アーカイブファイルで構成される。【００４８】
このようにBD-Jオブジェクト内のアプリケーション管理テーブルによって、セクタが管理されるJava(TM)アプリケーションを、“BD-Jアプリケーション”と呼ぶ。【００４９】
＜index.bdmv(ファイル名固定)＞
index.bdmv(ファイル名固定)は、BD-ROM全体に関する管理情報であり、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmv にはBD-ROMにおいて再生可能となる複数のタイトルと、個々のタイトルを規定するBD-Jオブジェクトとを対応付けて示すテーブルが含まれる。引き出し線f2は、index.bdmvの内部構成をクローズアップして示している。この引出線に示すように映画作品のプロバイダを特定する識別子であるorganizationID(32ビット)や、プロバイダが提供するBD-ROMのそれぞれに割り当てられた識別子であるdiscID(128ビット)等の情報を持つ。【００５０】
MovieObject.bdmv（ファイル名固定）は、HDMVモード（後述）での各タイトル再生で、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが含まれる。【００５１】
(再生制御のレイヤ)
次に、BD-ROMが前提にしている再生制御のレイヤモデルについて説明する。【００５２】
図３は、再生制御のレイヤモデルを示した図である。図３の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、BD-ROMだけではなく、ビルドインメディアやリムーバブルメディア、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。ここでビルドインメディアとは、HDD（ハードディスクドライブ）,EEPROM(不揮発メモリ)など、再生装置１０２に予め組み込まれた記録媒体である。一方、リムーバブルメディアは、SDメモリカード、メモリスティック、コンパクトフラッシュ(TM)、スマートメディア、マルチメディアカード等、可搬性がある記録媒体である。これらビルドインメディア、リムーバブルメディアは何れも、再生装置１０２がローカルに利用する記録媒体であり、“ローカルストレージ”との総称で呼ばれる。これらローカルストレージ、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。ローカルストレージには、ビルドインメディア、リムーバブルメディアという2種類のものがあるが、以降の説明では、第１記録媒体がBD-ROMであり、第２記録媒体がリムーバブルメディアであるという前提で説明を進める。【００５３】
第２層は、AVストリームのレイアである。第１層で供給されたストリームを、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。【００５４】
第３層（BD管理データ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、コンテンツオーサによって予め規定されたPlaylist情報、Clip情報であり、これらに基づく再生制御を規定しているのがこの第３層である。【００５５】
第４層（BD再生プログラム）は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオは、AVストリームの再生手順、及び、その再生に関する制御手順のうち少なくとも一方を実行するプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち1つは、コマンドベースの動作環境で、BD-ROMに記録されたAVストリームを再生するモード（HDMVモード）であり、もう1つは、オブジェクト指向言語で記述されたプログラムベースの動作環境で、BD-ROMに記録されたAVストリームを再生するモード（BD-Jモード）である。図３において第４層には、HDMVモードとBD-Jモードの２つのモードが記述されている。HDMVモードは、DVDライクな再生環境で再生がなされる。もう一つのBD-Jモードでは、Java(TM)仮想マシンが主体となり、Java(TM)アプリケーションからの再生制御がなされる。【００５６】
図４は、２つのモードの動的な再生制御にて作成される映画作品を示す図である。図４（a）は、HDMVモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。HDMVモードはDVD再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、DVDと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。【００５７】
図４（b）は、BD-Jモードで動的な再生制御を定義することにより、作成される映画作品である。BD-JモードはJava(TM)仮想マシンが解釈可能なJava(TM)言語で制御手順を記述することができる。この再生制御がアドベンチャーゲームのGUIを構成するものであるなら、BD-Jモードにあっては、ゲームのスコア(図中のSCORE:10000)やインジゲータ(LIFE:3)、ボタン部材(質問する、退室する)と、動画とを組み合わせたような合成映像をユーザに提示することができる。【００５８】
以上が、BD-ROM１００についての説明である。続いて、再生装置１０２の詳細について、説明する。【００５９】
図５は、再生装置の大まかな機能構成を示すブロック図である。図５に示すように、再生装置１０２は、BDドライブ２０、ネットワークインターフェース２１、ローカルストレージ２２、仮想ファイルシステム２３、静的シナリオメモリ２６、動的シナリオメモリ２７、HDMVモジュール２８、BD-Jモジュール２９、UO探知モジュール３０、モード管理モジュール３１、ディスパッチャ３２から構成される。本再生装置は、オペレーティングシステムシステムとしてLinuxを採用しており、本再生装置のハードウェア及びソフトウェアは、このLinuxを通じて制御される。【００６０】
（BDドライブ２０）
BDドライブ２０は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。本BD-ROM再生装置は、オペレーションシステムとしてLinuxを採用しているので、“/mount point BD/BDAV”とのコマンドを発行することにより、BDドライブ２０に、BDAVディレクトリを割り当てる。【００６１】
（ネットワークインターフェース２１）
ネットワークインターフェース２１は、ネットワーク接続のためのプロトコルスタックを実行するものであり、ネットワーク上のサーバコンピュータが具備しているドライブを、ネットワークドライブとして、再生装置に認識させる。そして、ネットワークドライブからデータをダウンロードしたり、データをアップロードすることができる。このネットワークインターフェイス２１は、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられる。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jモジュール２９は、ネットワークインターフェース２１を制御することにより、インターネット上に公開された追加コンテンツをビルドインメディアドライブもしくはリムーバブルメディア１０４にダウンロードすることができる。【００６２】
（ローカルストレージ２２）
ローカルストレージ２２は、ビルドインメディアドライブ２２aと、リムーバブルメディアドライブ２２bとからなり、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBD-ROM上のデータとマージするかを示す規則、つまりマージ規則が記載されたマージ管理情報も、このローカルストレージ２２に保存される。【００６３】
本実施形態では、追加コンテンツデータファイル格納のためのディレクトリであるBUDAディレクトリを、リムーバブルメディアドライブに装填されたリムーバブルメディア１０４に割り当てる。本BD-ROM再生装置は、オペレーションシステムとしてLinuxを採用しているので、リムーバブルメディアドライブ２２bがSDメモリカードドライブであり、本ドライブに“SD”というドライブ名が割り当てられている場合、“/mount point SD/BUDA”とのコマンドを発行することにより、リムーバブルメディアに対応するSDドライブに、BUDAディレクトリを割り当てる。一方ビルドインメディアドライブ２２は、録画用の記録領域として使用するものとする。【００６４】
（仮想ファイルシステム２３）
仮想ファイルシステム２３は、追加コンテンツと共に、ローカルストレージ２２にダウンロードされたマージ管理情報を元に、ビルドインメディア、もしくは、リムーバブルメディアに格納された追加コンテンツとBD-ROM上のコンテンツとをマージさせた、仮想的なBD-ROM（仮想パッケージ）を構築する。HDMVモジュール２８やBD-Jモジュール２９からは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとビルドインメディアもしくはリムーバブルメディア上のデータの両方を用いて再生制御を行うことになる。以上が再生装置の構成要素である。【００６５】
（AV再生部２４）
AV再生部２４は、BD-ROM又はローカルストレージ２２に記録されたAVストリームの再生を、プレイリスト情報、Clip情報に基づいて実行する。【００６６】
（AV再生ライブラリ２５）
AV再生ライブラリ２５は、HDMVモジュール２８、BD-Jモジュール２９からの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、字幕切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。【００６７】
（静的シナリオメモリ２６）
静的シナリオメモリ２６は、カレントのPLやカレントのClip情報を格納しておくためのメモリである。カレントPLとは、BD-ROMまたは、ローカルストレージ２２に記録されている複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMまたは、ローカルストレージ２２に記録されている複数のClip情報のうち、現在処理対象になっているものをいう。【００６８】
（動的シナリオメモリ２７）
動的シナリオメモリ２７は、カレント動的シナリオを格納しておき、HDMVモジュール２８、BD-Jモジュール２９による処理に供されるメモリである。カレント動的シナリオとは、BD-ROMまたは、ローカルストレージ２２に記録されているMovieオブジェクト,BD-Jオブジェクトのうち、現在実行対象になっているものをいう。【００６９】
（HDMVモジュール２８）
HDMVモジュール２８は、HDMVモードの実行主体となるDVD仮想プレーヤであり、動的シナリオメモリ２７に読み出されたカレントのシナリオプログラムを実行する。【００７０】
（BD-Jモジュール２９）
BD-Jモジュール２９は、Java(TM)プラットフォームであり、Java(TM)仮想マシン、コンフィグレーション、プロファイルからなる。BD-Jモジュール２９は、動的シナリオメモリ２７に読み出されたJava(TM)クラスファイルからJavaバイトコードを生成することによりカレントのJava(TM)オブジェクトを生成し、実行する。Java(TM)仮想マシンは、Java(TM)言語で記述されたJava(TM)オブジェクトを、再生装置におけるCPUのネィティブコードに変換して、CPUに実行させる。【００７１】
（UO探知モジュール３０）
UO探知モジュール３０は、リモコンや再生装置のフロントパネルといった入力機器に対してなされたユーザ操作を検知して、モード管理モジュール３１に通知する。この通知は、これらの入力機器に対応するデバイスドライバ内の割込みハンドラが発生する割込みに従い、UO（User  Operation）を生成して、モード管理モジュール３１に出力することでなされる。UOとは、リモコンやフロントパネルに設けられたキーマトッリクスによるキー押下を検知した際、発生するイベント(UOイベント)であり、押下されたキーに対応したキーコードを含んでいる。具体的には、リモコンやフロントパネルに対応するデバイスドライバの割込みハンドルが、キーマトリックスに対するキーセンスでキー押下を検出した際、そのキー押下に基づき割込み信号を発生することで、UOイベントは、生成される。【００７２】
（モード管理モジュール３１）
モード管理モジュール３１は、BD-ROMまたは、ローカルストレージ２２から読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モード管理モジュール３１によるモード管理とは、動的シナリオをどのHDMVモジュール２８、BD-Jモジュール２９に実行させるかという、モジュールの割り当てである。【００７３】
（ディスパッチャ３２）
ディスパッチャ３２は、UOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力するというのがディスパッチャ３２の処理である。【００７４】
(リムーバブルメディア)
以降、リムーバブルメディアについて説明する。【００７５】
本実施形態では、追加コンテンツデータファイルの格納のためのリムーバブルメディアとしてSDメモリカードを採用する。【００７６】
SDメモリカードは、長さ32.0 mm、幅24.0 mm、厚さ2.1 mmといった大きさ（切手サイズの大きさ）のカード型記録媒体である。ユーザはこのSDメモリカードを指先で把持することができる。SDメモリカードには、再生装置との接続のための９本のコネクタが設けられており、側面には、記憶内容の上書きを許可するか禁止するかを操作者が設定することができるプロテクトスイッチが設けられている。SDメモリカードは、NAND型EEPROMである「不揮発メモリ」、再生装置から発せられるコマンドに従って、不揮発メモリに対するデータ書き込み、不揮発メモリからのデータ読み出し、データ消去を行う「アクセス制御部」、不揮発メモリから読み出されたデータを書き換える際、データの一時格納に用いられる「ワークメモリ」を含む。【００７７】
SDメモリカードには、FAT16を採用したものと、FAT32を採用したものとがある。FAT16は、クラスタ1つ当たりに割り当てられるエントリー長が16ビットであり、2Gバイトの記録領域をアクセス対象にしている。FAT32は、クラスタ1つ当たりに割り当てられるエントリー長が32ビットであり、32Gバイトの記録領域をアクセス対象にしている。このFAT32を採用したSDメモリカードは、特に“SDHCメモリカード”と呼ばれる。【００７８】
以降、このリムーバブルメディアについて説明する。【００７９】
図６は、半導体メモリの記録領域の物理的構成を示す図である。【００８０】
本図の左側は、リムーバブルメディアのSDメモリカードの外観を示す。【００８１】
本図の中段は、リムーバブルメディアであるSDメモリカードの物理的構成を示す図である。ローカルストレージは、ビルドインメディア、リムーバブルメディアの何れにおいても、複数個の論理ブロックで構成される。通常のファイルの書込みは、この論理ブロック単位で記録・削除が行われる。そのため、１つの論理ブロック内に複数のファイルデータを保存することはできない。すなわち、１つの論理ブロックサイズより小さなファイルを書込む場合にも、１つの論理ブロックが消費され、その論理ブロック内に他のファイルのデータを書込むことはできない。【００８２】
本図の右側は、SDメモリカードのファイルシステム領域の内部構成を示す。SDメモリカードにおけるファイルシステム領域は、一個の論理ブロックが一個のクラスタとして扱われ、このクラスタを最小単位として、ファイルの記録や削除がなされることになる。【００８３】
本図の中段では、物理的に連続する1000個の論理ブロックが1つのアロケーションユニットとして確保されている。アロケーションユニットとは、SDメモリカードに対するデータ書き込みの速度保証を実現する単位であり、SDメモリカードでは一般に、４Ｍバイトの大きさと規定されている。【００８４】
(通常データ領域、連続データ領域)
前者の論理ブロックの書き込みを前提とした記録領域は、“通常データ領域”と呼ばれる。後者のアロケーションユニットを前提にした記録領域は、“連続データ領域”と呼ばれる。追加コンテンツ格納領域には、これら通常データ領域、連続データ領域の組みが確保されることになる。図７は、通常データ領域、連続データ領域の一例を示す図である。本図上段は、通常データ領域の内部構成を示し、本図下段は、連続データ領域の内部構成を示す。【００８５】
上段の通常データ領域における個々の四角形は、論理ブロックを模式的に表す。この四角形のうち、白抜きのものは空きの論理ブロックであり、黒で塗り潰されたものは、一部又は全部が記録済みになっている論理ブロックである。記録済み論理ブロックにおける記録内容には、「マージ管理情報ファイル」、「署名情報ファイル」、「プレイリスト情報ファイル」、「Clip情報ファイル」がある。記録・削除が細かい単位で行われるため、頻繁に記録・削除を繰り返していると、未使用の論理ブロックが飛び飛び状態になり、１つのファイルのデータが飛び飛びの論理ブロックに記録されるという問題が発生する。ファイルを構成するデータが飛び飛びに記録されることを“フラグメンテーション”と呼ぶ。飛び飛びに記録されたファイルのデータを読み込む場合、飛び先ブロックへのシークが発生し読み込み性能が劣化してしまう。特にリアルタイムの読み取り性能が求められるAVストリーム形式の追加コンテンツがこの状態になってしまうと、再生に必要なAVストリーム形式の追加コンテンツの読み取りが間に合わず、再生がカクツクなどの現象が出ることになる。AVストリーム形式の追加コンテンツをスムーズに読み出すには、AVストリーム形式の追加コンテンツを連続した論理ブロックに書き込むことが望ましいが、通常データ領域ではフラグメンテーションが広範囲に発生するので、AVストリーム形式の追加コンテンツの記録に適した、連続論理ブロックの確保が難しくなっている。【００８６】
小さなサイズのファイルが多い場合は、無駄な空き領域が多くなるが、通常１つの論理ブロックは一般的なファイルサイズよりも十分小さいため、通常データ領域への書込みに関しては効率良くストレージ容量を消費することができる。【００８７】
下段の連続データ領域における四角形は、連続データ領域を構成するアロケーションユニットを模式的に示す。この四角形のうち、白抜きのものは空きのアロケーションユニットであり、一部が黒で塗り潰されたものは、記録済みになっているアロケーションユニットである。黒で塗り潰された部分が一部であるため、本来このアロケーションユニットには、未記録の部分が存在する。しかし、その一部に記録済みデータが存在する以上、他のデータを、その未記録部分に記録することはできない。つまり、一部の領域が既に記録されていれば、そのアロケーションユニットは記録済みとして扱われる。本図における3つのアロケーションユニットには、00001.mts,00002.mts,00003.mtsという3つのAVストリーム形式の追加コンテンツが記録されている。これら3つのアロケーションユニットは、3つのAVストリーム形式の追加コンテンツによって排他的に使用されているため、たとえ未記録部分があったとしても、ここに他のファイルを書き込むことはできない。書込先にアロケーションユニットを選んだ場合、連続する複数の論理ブロック単位で記録・削除がなされることになる。データ記録にアロケーションユニットを用いる場合、比較的大きなサイズで物理的に連続した領域を単位に記録・削除するため、フラグメンテーションが起こりにくいというメリットを持つ。【００８８】
連続データ領域では、アロケーションユニット単位でアクセスがなされ、記録・削除の単位が大きいため、サイズが小さいファイルを書込む場合、無駄に大きな領域を占有してしまい、ストレージ容量を効率良く利用できないというデメリットがある。ただし、AVストリーム形式の追加コンテンツが格納されたファイルのサイズは十分大きなサイズであり、かつAVストリーム形式の追加コンテンツの読み取りにはリアルタイム性が求められるため、連続データ領域に書込むことが望ましい。【００８９】
図７における追加コンテンツ配置の特徴について説明する。追加コンテンツ格納領域には、通常データ領域、連続データ領域が存在しており、この通常データ領域は、４Ｋバイトという論理ブロックの単位で、非AVストリーム形式の追加コンテンツの書き込みや削除がなされるので、記録領域の効率良い利用が図られていることがわかる。【００９０】
一方連続データ領域は、４Ｍバイトというアロケーションユニットの単位で、AVストリーム形式の追加コンテンツの書き込みがなされており、かかるAVストリーム形式の追加コンテンツの書き込みによって、記録効率の低下が発生しているが、この低下の発生は、1つの追加コンテンツ格納領域内の局所的なものであり、リムーバブルメディアであるSDメモリカード全体の記録効率に与える影響は小さい。【００９１】
こうすることで、書き込みや消去といった更新頻度が高い非AVストリーム形式の追加コンテンツについては、記録効率の維持を優先しつつも、AVストリーム形式の追加コンテンツにおけるAV再生の安定性を保証することができる。【００９２】
(ファイルシステム領域の内部構成)
図８は、リムーバブルメディアであるSDメモリカードのファイルシステム領域の内部構成を示す図である。本図の左側に、リムーバブルメディアであるSDメモリカードを示し、中側に、FAT型ファイルシステムに準じたファイルシステム領域の内部構成を示す。このFAT型ファイルシステムの記録領域は、「MasterBootRecord」,「PartitionTable」が記録され、これらの記録領域以降に「システム領域」及び「ユーザ領域」が存在する。【００９３】
「MasterBootRecor」は、自身に後続する領域が"物理的な一つの媒体（物理媒体）"であることを再生装置に認識させるための標識である。本図では、記録領域にマスタブートレコードが1つだけ存在するので、記録領域において1つの物理媒体が再生装置により認識され得るが、仮に記録領域にマスタブートレコードを2つ配せば、2つの物理媒体が再生装置により認識される。【００９４】
「パーティションテーブル」は、パーティションに関する情報が記述されたテーブルである。【００９５】
「システム領域」は、「パーティションブートセクタ」、「二重化ファイルアロケーションテーブル(FAT)」、「Rootディレクトリエントリ」が記録されている。【００９６】
「ユーザ領域」は、クラスタを最小単位にして、ファイルが格納される領域であり、「BUDAディレクトリエントリ」、「CertIDディレクトリエントリ」、「OrganizationIDディレクトリエントリ」、「DiscIDディレクトリエントリ」が記録され、これ以降に追加コンテンツ格納領域が存在する。追加コンテンツ格納領域には「マージ管理情報ファイル」、「署名情報ファイル」、「追加コンテンツデータファイル」が記録されている。【００９７】
以降、二重化FATについて説明する。【００９８】
「二重化ファイルアロケーションテーブル(FAT)」は、ISO/IEC 9293に準拠した2つのFATからなる。図９（ａ）は、二重化FATの内部構成を示す図である。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、"0"が設定され、対応するクラスタが使用中であれば、クラスタ番号が設定される。このクラスタ番号は、対応するクラスタが読み出された場合、次にどのクラスタを読み出せばよいかといったクラスタ間のリンク関係を示す。図９（ａ）の破線の引き出し線ff1は、FATに含まれる複数のFATエントリー002,003,004,005・・を示す。このFATエントリーに付与された数値「002,003,004,005・・」は、各FATエントリーがどのクラスタに対応づけられているか、つまり、各FATエントリーが対応づけられているクラスタのクラスタ番号を示す。【００９９】
続いて、ディレクトリエントリについて説明する。ディレクトリエントリには、システム領域に存在する「Rootディレクトリエントリ」、ユーザ領域に存在する「BUDAディレクトリエントリ」、「CertIDディレクトリエントリ」、「OrganizationIDディレクトリエントリ」、「DiscIDディレクトリエントリ」といったものがあるが、これらは何れも、図９（ｂ）に示す共通のデータ構造を有する。図９（ｂ）は、ディレクトリエントリの共通のデータ構造を示す図である。本図に示すように「ディレクトリエントリ」は、ASCII文字８文字以下に制限された「ディレクトリ名」と、「作成時刻」と、「作成日付」と、当該ディレクトリに存在するファイルについての「ファイルエントリー」とを含む。各ファイルエントリーは、ASCII文字８文字以下に制限された「ファイル名」と、ASCII文字３文字以下に制限された「ファイル拡張子」と、ファイルの先頭部が格納されている「ファイル最初のクラスタ番号」と、そのファイルについての「ファイル属性」と、ファイルが更新された「更新時刻」と、ファイルの「更新日付」と、ファイルのデータ長である「ファイル長」とを含む。【０１００】
SDメモリカードにおけるディレクトリ名及びファイル名は、こうしたディレクトリエントリに記述される。そしてこのディレクトリエントリのうち、Rootディレクトリエントリは、二重化FATと共に、原則として、1つのクラスタ内に配置して、まとめて管理せねばならないので、ディレクトリ名及びファイル名を長くするのは現実的ではない。具体的には、その文字数は、ASCII文字８文字以内、拡張子もASCII文字３文字以内に制限されている。このように、ディレクトリ名、ファイル名が制限されたファイルシステム形式を、“８.３形式”と呼んでいる。【０１０１】
ここで、DiscIDディレクトリに、追加コンテンツを格納する場合、FAT及びディレクトリエントリがどのように設定されるかについて説明する。説明の題材に選ぶ追加コンテンツは、ＡＶストリームを格納した“00001.mts”というファイルである。【０１０２】
図１０は、00001.mtsをクラスタサイズに合わせて5つに分割し、各分割部分を、クラスタ504〜50Bに格納する状態を想定した図である。【０１０３】
図１０の第３段目から第８段目は、映像、音声を示すエレメンタリストリームが、ＡＶストリームにおいてどのように多重化されているかを模式的に示す。ＡＶストリームは、デジタル化された映像、デジタル化された音声を(第８段目)、PESパケットからなるエレメンタリストリームに変換し(第７段目)、更にTSパケットに変換して(第６段目)、これらのTSパケットを多重化する(第５段目)ことで構成される。【０１０４】
ここで、ビデオストリームは、本図の第８段目に示すように複数のピクチャから構成されるが、これらピクチャと、Access Unitとの関係は、１Access Unit ＝ １ピクチャである。オーディオストリームも、複数のオーディオフレームから構成されるが、これらオーディオフレームと、Access Unitとの関係も、１オーディオフレーム ＝ １Access Unitである。またBD-ROMでは、１PESパケット ＝ １フレームに制限されている。つまり、動画がフレーム構造であれば、１PESパケット ＝ １ピクチャであり、フィールド構造である場合、１PESパケット＝２ピクチャとなる。これらのことから、本図の第８段目に示すPESパケットは、第８段目におけるピクチャやオーディオフレームを、１対１の比率で格納している。【０１０５】
第５段目において、多重化されたTSパケット列は、“STC Sequence”を構成する。“STC Sequence”とは、デコード時刻、表示時刻を表すMPEG2-TSの時間軸であり、AVストリームのシステム基準時刻であるSTC(System Time Clock)の不連続点(system time-base discontinuity)が存在しない区間をいう。STCの不連続点はデコーダがSTCを得るために参照するPCR(Program Clock Reference)を運ぶPCRパケットの不連続情報(discontinuity＿indicator)がONである点である。【０１０６】
第４段目から第１段目までは、リムーバブルメディアへのAVストリーム形式の追加コンテンツの記録がどのように行われるかを示す。【０１０７】
188バイトのTSパケットは、第４段目に示すように、4バイトのTS＿extra＿header(図中のハッチング部)が付されて、192バイト長のSourceパケットに変換される。このTS＿extra＿headerは、当該TSパケットのデコーダ入力時刻情報を示すArrival＿Time＿Stampを含む。【０１０８】
Sourceパケットは、第４段目に示すような1つ以上の“ATC＿Seuqence”を構成する。“ATC＿Seuqence”とは、ＡＶストリームに記されているATSの時間軸を構成するSourceパケットの配列であって、そのArrival＿Time＿Stampが参照しているArrival＿Time＿Clockに、不連続点(no arrival time-base discontinutiy)が存在しないものをいう。いいかえれば、そのArrival＿Time＿Stampが参照しているArrival＿Time＿Clockに、連続性が存在するSourceパケット列を“ATC＿Seuqence”という。ATSは以下のようにTSパケットの先頭につけられ、デコーダへの転送時刻を示す。【０１０９】
かかるATC＿SeuqenceがAVストリームになり、第３段目に示すように00001.mtsというあデータファイルに格納される。こうして得られたAVストリーム形式の追加コンテンツは、第２段目に示すような、ファイルシステム領域を構成する連続クラスタ504,505,506・・・50Bに記録されることになる。この連続クラスタは、第１段目に示すように、アロケーションユニットを構成する複数の論理ブロック504,505,506・・・50Bに対応しているので、AVストリーム形式の追加コンテンツは、一個のアロケーションユニット内に、完結した形態で格納されることになる。【０１１０】
00001.mtsがアロケーションユニットに記録されると、ディレクトリエントリ及びFATは、図１１のように設定されねばならない。【０１１１】
図１１は、00001.mtsが複数のクラスタに記録されている場合のディレクトリエントリ及びFATについての設定例を示す図である。本図において00001.mtsの先頭部分がクラスタ504に記録されている場合、DiscIDディレクトリディレクトリエントリにおける「ファイル最初のクラスタ番号」には、その先頭部分が格納されているクラスタについてのクラスタ番号504が記載される。以降、00001.mtsの後続する部分は、クラスタ505、クラスタ506に格納されていることがわかる。00001.mtsの先頭部分を格納しているクラスタ504には、FATエントリー504が対応しているが、このFATエントリー504は、00001.mtsファイルの後続する部分を格納しているクラスタ505を示すものである。またこれに後続している部分を格納しているクラスタ505,506には、FATエントリー505(506),FATエントリー506(507)が対応しているが、これのFATエントリーは、00001.mtsファイルの次の後続する部分を格納しているクラスタ506,507を示すものである。このように、DiscIDディレクトリディレクトリエントリにおける最初のクラスタ番号と、FATエントリーとを辿ってゆくことにより、リムーバブルメディア１０４に格納されたAVストリームは読み出され、再生に供されることになる。【０１１２】
以上のようなファイルシステムを前提にして、構築されるディレクトリについて説明する。【０１１３】
図１２は、リムーバブルメディア上のディレクトリ構成を示す図である。リムーバブルメディア上には、追加コンテンツ格納領域ルートディレクトリであるBUDAディレクトリ、CertIDディレクトリ、OrganizationIDディレクトリ、DiscIDディレクトリが存在する。このDiscIDディレクトリには、マージ管理情報ファイル「bumf.xml」、署名情報ファイル「bumf.sf」、追加コンテンツ「00001.mpl」「mo.bdm」「00001.mts」が存在する。【０１１４】
追加コンテンツ格納領域ルートディレクトリ(BUDAディレクトリ)は、リムーバブルメディアのルートディレクトリの直下に存在し、追加コンテンツ格納領域のルートを示すディレクトリで、ディレクトリ名は、８文字以内の固定値（BD＿BUDA）である。【０１１５】
「CertIDディレクトリ」はBD-ROM上のマージ証明書(bd.cert)から導き出されるIDを名前に持つディレクトリで、マージ証明書のSHA-1ダイジェスト値160ビットのうち、先頭32ビットを16進表記で表した８文字の名前のディレクトリである。【０１１６】
「OrganizationIDディレクトリ」は、BD-ROM上のBD管理情報(index.bdmv)に記載されている、映画作品のプロバイダを特定する32ビットの識別子(OrganizationID)を16進表記で表した８文字の名前のディレクトリである。【０１１７】
「DiscIDディレクトリ」は、４階層のサブディレクトリからなる。これら４階層のサブディレクトリは、最大８文字のディレクトリ名が付与される。各サブディレクトリには、BD-ROMを特定する128ビットの識別子(DiscID)を先頭から32ビットずつ４分割し、それぞれを16進表記で表した８文字の名前が割り当てられている。このDiscIDは、BD-ROM上のBD管理情報(index.bdmv)に記載されているので、index.bdmvをオープンすることでDiscIDは、取得することができる。例えば、本図における、「12345678」「90abcdef」「12345678」「90abcdef」という4つのディレクトリ名は、「1234567890abcdef1234567890abcdef」という32文字(１２８ビット)のDiscIDを、下位の桁から８文字(３２ビット)ずつ分割することで得られたものである。DiscIDを構成する文字のうち、意味のあるものを省略することなく、DiscIDと、８.３形式との対応を図るので、４階層のサブディレクトリは、DiscIDと厳密に対応がとれたものとなる。【０１１８】
DiscIDディレクトリの配下には、仮想パッケージを構築するための追加コンテンツ格納領域が存在する。追加コンテンツ格納領域は、４つのDiscIDディレクトリエントリーのうち、最も下位のDiscIDディレクトリエントリー内に存在するファイルエントリーにて特定されねばならないので、最も下位のDiscIDディレクトリエントリーより後の論理ブロックに確保されることになる。追加コンテンツ格納領域は、通常データ領域、連続データ領域からなり、通常データ領域には、「マージ管理情報ファイル」、「署名情報ファイル」、非AVストリームの追加コンテンツである「追加コンテンツ」が記録される。これらのファイルは、仮想パッケージ生成の中核を担うものであり、以降、これらのファイルの内容を詳細に説明する。【０１１９】
「マージ管理情報ファイル」は、リムーバブルメディア上の追加コンテンツのファイルパスと、仮想パッケージにおける別名アクセスのためのファイルパスとの対応付けを示す情報であり、bumf.xmlというファイル名でDiscIDディレクトリに保存される。このマージ管理情報ファイルが特徴的であるのは、リムーバブルメディアにおけるファイルパス、つまりFAT型ファイルシステムを前提にしているため、リムーバブルメディアにおけるディレクトリ名及びファイル名が8.3形式に準じている点である。このように、８.３形式に準じたファイルパスが、仮想パッケージにおけるLFNのファイルパスとが対応付けられている。この仮想パッケージのファイルパスは、BD-ROMのディレクトリ構造に準じている。何故なら仮想パッケージは、リムーバブルメディア上のファイルを、あたかもBD-ROMに格納されているものと同様に扱うものだからである。かかるBD-ROMのファイルシステム形式は、LFNに対応したものなので、このマージ管理情報ファイルを参照することにより、リムーバブルメディア上の追加コンテンツは、８.３形式でありながら、２５５文字以下のファイル名を用いて別名でアクセスされることになる。マージ管理情報ファイルは、８.３形式で記録されている各種ファイルに対して、２５５文字以下のファイル名による、“別名アクセス”を実現させるものである。【０１２０】
図１３（ａ）は、マージ管理情報の内部構成を示す図である。本図におけるマージ管理情報では、00001.mpl、mo.bdm、00001.mtsという3つの追加コンテンツについて、リムーバブルメディア上のファイルパスと、仮想パッケージ上のファイルパスとの対応付けがなされている。リムーバブルメディア上のファイルパスは、８.３形式に準じている。【０１２１】
本図におけるファイルパスの記述について具体的に説明する。リムーバブルメディアにおける“12345abc/12345678/90abcdef/12345678/90abcdef/00001.mpl”という８.３形式のファイルパスには、BDMV/PLAYLIST/00001.mplsという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。この一例は、前図のものに準じており、CertIDディレクトリから追加コンテンツへのパスが明記されている。【０１２２】
リムーバブルメディアにおける、“12345abc/12345678/90abcdef/12345678/90abcdef/mo.bdm”という８.３形式のファイルパスには、BDMV/MovieObject.bdmvという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。【０１２３】
リムーバブルメディアにおける“12345abc/12345678/90abcdef/12345678/90abcdef/00001.mts”という８.３形式のファイルパスには、BDMV/STREAM/000001.m2tsという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。【０１２４】
図１３（ｂ）は、マージ管理情報の内容を元にして、BD-ROMコンテンツと、リムーバブルメディア上の追加コンテンツをマージする様子を示している。【０１２５】
左側は、BD-ROMの格納内容を示し、中側はリムーバブルメディアの格納内容を示す。右側は、仮想パッケージの格納内容を示す。マージ管理情報ファイルは、図１３（ａ）のように設定されているので、リムーバブルメディアにおける格納内容のうち、BUDAディレクトリ配下の12345abc/12345678/90abcdef/12345678/90abcdefに存在する3つの追加コンテンツ、つまり、mo.bdm、00001.mpl、00001.mtsのそれぞれを、矢印g1,g2,g3に示すように、マージ管理情報ファイルに記述されている仮想パッケージのディレクトリ構成に組み合わせる。以上のような、リムーバブルメディアのファイルを、マージ管理情報ファイルに記述されているディレクトリ構成に組合せることを“マージ”という。【０１２６】
こうしたマージによって、mo.bdmは、BDMVディレクトリに存在する“MovieObject.bdmv”という別名のファイル名でアクセスされることになる。【０１２７】
また00001.mplは、BDMVディレクトリ配下のPLAYLISTディレクトリに存在する“00001.mpls”という別名のファイル名でアクセスされることになる。【０１２８】
00001.mtsは、BDMVディレクトリ配下のSTREAMディレクトリに存在する“00001.m2ts”という別名のファイル名でアクセスされることになる。【０１２９】
上述したような別名アクセスが可能になるので、mo.bdm、00001.mpl、00001.mtsのそれぞれは、BDMVにMovieObject.bdmv、BDMV/PLAYLIST/00001.mpls、BDMV/STREAM/00001.m2tsに存在するものとして扱うことができる。【０１３０】
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、bumf.sfというファイル名でDiscIDディレクトリに保存される。電子的な署名は、一般的に改竄防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。改竄防止が必要な情報としては、具体的には、追加コンテンツのファイル名や追加コンテンツをビルドインメディアに記録するにあたってのファイルパスが挙げられる。かかるファイルパスはLFN形式であり、マージ管理情報ファイルに記載されているので、マージ管理情報ファイルに記載されたファイルパスに対して、ハッシュ値は算出されることになる。また、本署名情報ファイルでは、BD-ROM上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。【０１３１】
「非AVストリームの追加コンテンツ」は、BD-ROMに記録されたオリジナルのコンテンツに対し、追加/更新を実現するファイル群であり、リムーバブルメディア上に8.3形式（ファイル名８文字以内、拡張子３文字以内）のファイル名で保存される。DiscIDディレクトリについては、文字を省略することなく、全ての文字がDiscIDディレクトリにおけるディレクトリ名に現れるように変換を行ったが、追加コンテンツについては、一部の文字をリムーバブルメディアにおけるファイル名に使用することで、ファイル名の短縮を図っている。これは、追加コンテンツにおけるファイル名は、本来、BD-ROM上のファイル名であり、“５桁の数値＋数種類の拡張子”という何通りかのパターンのものに限られているので、ファイル名を構成する文字を一部省略したとしても、混同が生じる等の不都合が発生する可能性は極めて低いこと等の理由による。【０１３２】
図１２に示した２つの追加コンテンツのうち、「00001.mpl」はプレイリスト情報を格納したものであり、「mo.bdm」は、Movieオブジェクトを格納したものである。これら以外にも、BD-ROMにて記録され、ユーザに供給することができるファイルであるなら、BD-ROMに記録されるべき他のファイルを追加コンテンツの対象として選ぶことができる。index.bdmvやClip情報を格納したファイル(拡張子がclpiのファイル)、Javaアーカイブファイル(拡張子がJarのファイル)、BD-Jオブジェクトを格納したファイル(拡張子がbdjoのファイル)を、追加コンテンツの対象として選ぶことができる。以上が通常データ領域についての説明である。【０１３３】
続いて、連続データ領域の詳細について説明する。連続データ領域には、AVストリーム形式の追加コンテンツが記録される。AVストリーム形式の追加コンテンツには、「00001.mts」,「00001.mts」,「00001.mts」がある。これらは、AVストリームを格納した8.3形式のファイルである。【０１３４】
図１４は、図５に示すBD-Jモジュール２９のより具体的な構成を示すとともに、BD-Jモジュールによりネットワーク上から追加コンテンツをビルドインメディア上もしくはリムーバブルメディア上にダウンロードする様子を示す図である。BD-Jモジュール２９はメディア再生モジュール３２、ファイルI/Oモジュール３４、ネットワークモジュール３５、アプリケーションマネージャ３６、仮想ファイルシステム管理モジュール３９から構成される。尚、本図におけるAV再生ライブラリ２５、ネットワークI/F２１、ビルドインメディアドライブ２２a、リムーバブルメディアドライブ２２b、仮想ファイルシステム２３は、図５に示したものと同一であり、メディア再生モジュール３２〜仮想ファイルシステム管理モジュール３９の説明のために便宜的に記載している。【０１３５】
(メディア再生モジュール３２)
メディア再生モジュール３２はBD-Jアプリケーションに対し、メディア再生制御のためのAPIを提供している。BD-Jアプリケーションがメディア再生制御APIを呼び出すと、メディア再生モジュールは対応するAV再生ライブラリ２５の関数を呼び出し、AV再生制御を行う。【０１３６】
(ファイルI/Oモジュール３４)
ファイルI/Oモジュール３４は、BD-Jアプリケーションからのビルドインメディアもしくはリムーバブルメディアへのアクセス要求の処理を行う。【０１３７】
このアクセス要求が、追加コンテンツの書き込みである場合、BD-JアプリケーションはファイルI/Oモジュール３４を用いて、追加コンテンツをビルドインメディア上もしくはリムーバブルメディア上の適切な位置に配置することが出来る。また、不要となった追加コンテンツを削除したり、追加コンテンツを直接編集することも可能である。仮想パッケージ上へのアクセスもこのファイルI/Oモジュール３４を通して行う。ただし、仮想パッケージ上へのアクセスは読み取り専用となり、ファイルI/Oモジュール３４からの書き込みはできない。【０１３８】
そのアクセス要求が追加コンテンツの読み出しである場合、BD-Jアプリケーションからは、BD-ROMに対するLFN形式のファイルパスが引き渡されるので、リムーバブルメディアに記録されているファイルであって、LFNのファイルパスにてアクセスできるものがリムーバブルメディアに存在するかどうかのサーチを行う。【０１３９】
このサーチは、当該LFNのファイルパスが、マージ管理情報ファイルにおいて、“別名のファイルパス”として記述されているかどうかを判断することでなされる。【０１４０】
そうしたサーチにより、そのLFNのファイルパスにて別名でアクセスできる追加コンテンツがリムーバブルメディアに存在することが明らかになった場合、マージ管理情報ファイルに記載された８.３形式のファイルパスに従い、その追加コンテンツをリムーバブルメディアから読み出す。【０１４１】
そのLFNのファイルパスにて別名アクセスできる追加コンテンツがリムーバブルメディアに存在しない場合、そのLFNのファイルパスにてアクセスすることができる追加コンテンツを、BD-ROMから読み出す。そのLFNのファイルパスにてアクセスすることができる追加コンテンツが、BD-ROMにも存在しないのなら、エラー処理を行う。【０１４２】
(ネットワークモジュール３５)
ネットワークモジュール３５は、BD-Jアプリケーションに対し、ネットワーク制御のためのAPIを提供している。BD-Jアプリケーションからのネットワーク制御要求に従い、ネットワークインターフェース２１を使って、ネットワーク接続を行う。BD-Jアプリケーションはネットワークモジュール３５を用いて、公開されている追加コンテンツを検索、及びビルドインメディア/リムーバブルメディアにダウンロードすることが可能である。【０１４３】
こうしたネットワークを通じた追加コンテンツ取得を実現するので、課題解決手段における取得手段は、このネットワークモジュール３５に該当することになる。【０１４４】
(アプリケーションマネージャ３６)
アプリケーションマネージャ３６は、システムアプリケーションであり、アプリケーションシグナリングを実行する。"アプリケーションシグナリング"とは、GEM1.0.2が規定するMHP(Multimedei Home Platform)において、"サービス"を生存区間としてアプリケーションの起動、実行を行う制御をいう。BD-ROM再生装置におけるアプリケーションマネージャは、この"サービス"の代わりに、BD-ROMにおける"タイトル"を生存区間にして、アプリケーションの起動、実行の制御を実現する。ここで、"タイトル"とは、BD-ROMに記録されている映像・音声データの再生単位であり、アプリケーション管理テーブル(AMT)が一意に割り当てられている。【０１４５】
タイトルバウンダリのアプリケーションシグナリングは、index.bdmvファイルに基づくタイトルの選択が行われた際、前のタイトルに対応するアプリケーション管理テーブル(AMT)と、カレントタイトルに対応するアプリケーション管理テーブル(AMT)とを用いて実行されるシグナリングをいう。このシグナリングは、前のタイトルに対応するAMTには記載されているが、カレントタイトルに対応するAMTには記載されていないアプリケーションの動作を終了させ、前のタイトルに対応するAMTには記載されておらず、カレントタイトルに対応するAMTには記載されているアプリケーションの動作を開始させるという制御である。【０１４６】
index.bdmvファイルとは、ディスク上のタイトル構成が記載されたファイルであり、ディスク上の各タイトルと、対応するアプリケーション（BD-JモードタイトルであればJava(TM)アプリケーション、HDMVモードタイトルであればシナリオプログラム）の参照関係を管理している。図１５は、index.bdmvファイルとタイトルの関係を示す図である。タイトルとはアプリケーションとAVストリームを組にした再生単位であり、また特殊なタイトルとして「FirstPlay」と「Top Menu」が存在する。「First Play」はBD起動時に自動的に再生されるタイトルであり、主にBDの利用規約表示などに用いられる。「Top Menu」はリモコンのメニューキーを押したときやタイトル再生が終了したときに再生され、主にタイトルの選択や、字幕/音声の言語選択を行うことに用いられる。このindex.bdmvファイルが仮想パッケージ更新により内容が変化した場合、仮想パッケージ更新前と更新後で、タイトル構成が異なることになる。【０１４７】
(DiscID確認モジュール３７)
DiscID確認モジュール３７は、挿入されたBD-ROMのDiscIDを確認する。DiscID確認モジュール３７により取得されたDiscIDの値は仮想ファイルシステム２３が仮想パッケージを構築する際に用いられる。【０１４８】
(リムーバブルメディア検知モジュール３８)
リムーバブルメディア検知モジュール３８は、リムーバブルメディアの挿入・取り出しのモニタリングを行う。リムーバブルメディアの挿入・取り出しが行われると、仮想ファイルシステム２３に挿入・取り出し通知を行う。【０１４９】
(仮想ファイルシステム管理モジュール３９)
仮想ファイルシステム管理モジュール３９は、BD-Jアプリケーションからの仮想パッケージ構築/更新要求を受け取り、その要求内容を仮想ファイルシステム２３へ伝達する。Java(TM)アプリケーションは仮想パッケージを構築/更新する場合、新たなマージ管理情報ファイル及び署名情報ファイルを指定して構築/更新要求を発行する。仮想ファイルシステム２３は仮想ファイルシステム管理モジュール３９を通じて仮想パッケージ構築/更新要求を受け付けると、新たに指定された署名情報ファイルを用いて、新たなマージ管理情報ファイルの署名検証を行った後、古いマージ管理情報ファイル、署名情報ファイルを新しいマージ管理情報ファイル、署名情報ファイルに置き換えて、仮想パッケージを再構築する。マージ管理情報ファイル、署名情報ファイルの置き換えはタイトル切り替え時に行われる。次にタイトルについての説明を行う。【０１５０】
(追加コンテンツを書き込むにあたっての注意事項)
以降、通常データ領域にAVストリーム形式の追加コンテンツを書き込むにあたっての注意事項について述べる。【０１５１】
コンテンツオーサは、再生装置に、ファイル種別がAVストリーム形式の追加コンテンツであることを認識させるため、AVストリーム形式の追加コンテンツには、“mts”との拡張子を付与すべきである。具体的には、AVストリーム形式の追加コンテンツは、BD-Jアプリケーションによってダウンロードされるので、BD-Jアプリケーションがダウンロードを行い、ローカルストレージにAVストリーム形式の追加コンテンツを書き込む際、AVストリーム形式の追加コンテンツには、“mts”との拡張子を付加せねばならない。そして、再生装置は、この拡張子が付加されたAVストリーム形式の追加コンテンツを、ローカルストレージにおける連続データ領域に書き込むべきである。アプリケーションからの要求に応じて、AVストリーム形式の追加コンテンツの書き込みを行うのは、ファイルI/Oモジュール３４であるため、ファイルI/Oモジュール３４は、連続データ領域、つまり、アロケーションユニットを確保して、AVストリーム形式の追加コンテンツに書き込む必要がある。【０１５２】
（BD-Jアプリケーションにおけるダウンロード手順の記述）
BD-Jアプリケーションによりダウンロードを実現するには、所定のAPIを用いることにより、ネットワークモジュール３５にURLコネクションを構築させ、ファイルI/Oモジュール３４にリムーバブルメディアへの書き込みを行わせる必要がある。以下、ダウンロード手順の記述に用いられる、APIについて説明する。
・URLConnection(URL  url)
引数で指定されたURLに対して、URLコネクションを確立する。【０１５３】
・getInputStream()
このAPIをコールした際、URLコネクションからの入力を受ける入力ストリームが戻り値として、アプリケーションに返される。【０１５４】
また、getInputStream()のメソッドとしては、以下のものを使用する。【０１５５】
・read(byte[]  b)
入力ストリームから引数で指定されたバイト数byte[]を読み込み、それをバイト配列に格納する。【０１５６】
・FileOuputStream(String name)
引数となるString nameは、絶対ファイルパスを意味する。BD-JアプリケーションによってこのAPIがコールされた際、絶対ファイルパスで指定されたファイルオブジェクトに書き込むための出力ファイルストリームjを作成する。また、append引数を用いた場合、既存ファイルへの追記が可能となる。【０１５７】
また、FileOuputStream()のメソッドとしては、以下のものを使用する。【０１５８】
・write(byte[]  b)
指定されたバイト配列のb.lengthバイトを、出力ファイルストリームjに書き込む。
図１６は、ファイルI/Oモジュール３４を介した、通常データ領域又は連続データ領域に対するデータ書き込みを模式的に示す図である。下段は、リムーバブルメディアにおける通常データ領域及び連続データ領域の組みを示し、中段は、BD-モジュール１４と、その内部のファイルI/Oモジュール３４とを示す。上段は、BD-Jアプリケーションを示す。矢印yk1は、書き込み要求を示し、矢印yk2,yk3は、その要求に応じたAVストリーム形式の追加コンテンツの書き込み、非AVストリーム形式の追加コンテンツの書き込みという一連のデータの流れを模式的に示す。このデータの流れを追ってゆくと、追加コンテンツの書込要求がなされた場合、AVストリームかどうかの判別がストリーム/非ストリーム判別部１２０１によってなされ、結果がAVストリーム形式の追加コンテンツであれば、連続データ領域にAVストリーム形式の追加コンテンツが書き込まれることになる。結果が非AVストリームの追加コンテンツであれば、連続データ領域に非AVストリームの追加コンテンツが書き込まれることになる。【０１５９】
図１７は、リムーバブルメディアへのダウンロードの処理手順を示すフローチャートである。ビルドインメディアであるリムーバブルメディアのBUDAの配下に、160ビットのCertIDのうち、先頭32ビットをディレクトリ名としたCertIDディレクトリをクリエイトする(ステップＳ１)。そのCertIDディレクトリの配下に、今度はOrganizationIDをディレクトリ名にしたOrganizationIDディレクトリをクリエイトする(ステップＳ２)。その後、128ビットのDiscIDを３２ビット毎に4つの文字列に分割して、４つの文字列をそれぞれディレクトリ名とした４階層のDiscIDディレクトリを、OrganizationIDディレクトリの配下にクリエイトする(ステップＳ３)。【０１６０】
以上の処理で、リムーバブルメディアのためのディレクトリ構成を構築した後、マージ管理情報ファイル、署名情報ファイルをダウンロードして、DiscIDディレクトリのうち、最下層に格納する(ステップＳ４)。続いて、追加コンテンツのダウンロードを行う(ステップＳ５)。こうして追加コンテンツのダウンロードがなされれば、マージ管理情報ファイルにおけるファイル名、ディレクトリ名の変更に伴い、署名情報ファイルを変更する(ステップＳ６)。つまりプロバイダ側では、改竄防止のため、ファイルパスが変更される前の、ビルドインメディアにおけるLFN形式に対応したファイルパスに対してハッシュ値を算出しており、そうして算出したハッシュ値を署名情報ファイルに記述している。再生装置は、ハッシュ値の算出対象となったファイルパスを、LFNから８.３形式に変更しているので、この変更に伴い、署名情報ファイル内のハッシュ値を再計算にする必要がある。そのような、ファイルパス変更に追随して、ハッシュ値の再計算を行っているのが、このステップＳ６である。【０１６１】
図１８は、追加コンテンツのダウンロード処理の処理手順を示すフローチャートである。本フローチャートは、マージ管理情報に記載されているそれぞれの追加コンテンツについて、ステップＳ１３〜ステップＳ１９の処理を繰り返すというループ構造になっている(ステップＳ１１、ステップＳ１２)。ループにおいて、処理手順となる追加コンテンツを追加コンテンツiと呼ぶ。このステップＳ１３〜ステップＳ１９の処理手順は以下の通りである。先ず始めに、追加コンテンツをダウンロードするためのURLコネクションを構築して(ステップＳ１３)、構築したURLコネクションで受け取る入力ストリームiを取得し(ステップＳ１４)、入力ストリームiのファイル名を８.３形式に変換して、ファイル名Ｂ，拡張子Eを得る(ステップＳ１５)。その後、BUDA/CertID/organizationID/DiscID/ファイル名B＋拡張子Eという形式の絶対ファイルパスを生成して(ステップＳ１６)、生成した絶対ファイルパスを用いたFileOutputStream(絶対ファイルパスFP)のコールにより、出力ファイルストリームjを作成し(ステップＳ１７)、Read(byte[]  b)のコールにて、入力ストリームiからbyte[]を読み込み、バッファ配列bに格納する(ステップＳ１８)。最後に、write(byte[]  b)のコールにて、バッファ配列bにおけるbyte[]を、出力ファイルストリームjに書き込む(ステップＳ１９)。【０１６２】
図１９は、WriteAPIの処理手順を示すフローチャートである。本フローチャートは、絶対ファイルパスに対応するファイルエントリーがリムーバブルメディアに既に存在するかどうかを判定するステップ(ステップＳ２１)、出力ファイルストリームjのファイル種別を判定するステップ(ステップＳ２２)、1つ以上の空きのアロケーションユニットが存在するかどうかを判定するステップ(ステップＳ２３)、出力ファイルストリームjのファイル種別を判定するステップ(ステップＳ２７)、要求された書き込みは、追記又は上書きであるかを判定するステップ(ステップＳ２８)を備え、これらの判定ステップの判定結果によって、処理を切り替える構造になっている。【０１６３】
ステップＳ２１における判定ステップは、出力ファイルストリームjが記録済みであるかどうかの判定であり、もし未記録であるなら、ステップＳ２２〜ステップＳ２６の処理に移行する。ステップＳ２２は、出力ファイルストリームjのファイル種別が、AVストリーム形式の追加コンテンツであるか、非AVストリーム形式の追加コンテンツであるかの判定であり、もしAVストリーム形式の追加コンテンツであれば、1つ以上の空きのアロケーションユニットが存在するかどうかを判定する(ステップＳ２３)。その結果、空きのアロケーションユニットが存在すれば、出力ファイルストリームjを空きのアロケーションユニットに書き込んで(ステップＳ２４)、出力ファイルストリームjをCloseする(ステップＳ２６)。【０１６４】
ステップＳ２３にあたっては、書き込もうとするAVストリーム形式の追加コンテンツが、アロケーションユニットサイズより小さいかどうか判定し、もし小さければ、1つのアロケーションユニットが存在するかどうかが判定されることになる。書き込もうとするAVストリーム形式の追加コンテンツが大きければ、そのAVストリーム形式の追加コンテンツを格納するに足りる2以上のアロケーションユニットが存在するかどうかを判定することになる。【０１６５】
ステップＳ２４における書き込みでは、書き込もうとするAVストリーム形式の追加コンテンツが、アロケーションユニットサイズより小さければ、1つのアロケーションユニットに当該AVストリームを書き込む。書き込もうとするAVストリーム形式の追加コンテンツがアロケーションユニットサイズより大きければ、AVストリーム形式の追加コンテンツをアロケーションユニットのサイズに分割して、確保された2以上のアロケーションユニットに、分割部分を書き込むことになる。こうした書き込みにおいて、書き込まれたAVストリーム形式の追加コンテンツ又はその分割部分が、アロケーションユニットのサイズに満たない場合、そのアロケーションユニットを構成する複数の論理ブロックは、一部が空き領域となる。【０１６６】
空きのアロケーションユニットが無ければ、出力ファイルストリームjのうち、バッファ配列bで指定されている部分を、空き論理ブロックに書き込んでから、出力ファイルストリームjをCloseする(ステップＳ２６)。【０１６７】
絶対ファイルパスに対応するファイルエントリーが存在していて、出力ファイルストリームjが記録済みである場合、ステップＳ２１がYesになり、ステップＳ２７に移行する。ステップＳ２７は、出力ファイルストリームjのファイル種別を判定するステップであり、もし出力ファイルストリームjがAVストリーム形式の追加コンテンツであるなら、ステップＳ２８において要求された書き込みは、追記又は上書きであるかを判定する。追記であれば、記録済みのAVストリーム形式の追加コンテンツを読み出して、出力ファイルストリームjを一体にした上(ステップＳ２９)、記録済みのAVストリーム形式の追加コンテンツを消去する(ステップＳ３０)。その後、ステップＳ２３に移行して、空きのアロケーションユニットをサーチした上、出力ファイルストリームjを空きのアロケーションユニットに書き込む(ステップＳ２３、ステップＳ２４)
図２０は、アロケーションユニットに対する追記の処理過程を連続写真的な表記で描いた図であり、初期状態、中間状態、最終状態からなる。初期状態では、出力ファイルストリームjがメモリに存在していて、記録済みのアロケーションユニットには、00001.mtsが存在する状態を想定している。中間状態では、ステップＳ２９の処理がなされている状態であり、矢印RD1に示すように、00001.mtsがメモリに読み出され、出力ファイルストリームjと一体化される。最終状態は、ステップＳ３０、ステップＳ２４の処理がなされている状態であり、00001.mtsと一体になった出力ファイルストリームjが矢印WR1に示すように空きのアロケーションユニットに書き込まれ、記録済みアロケーションユニットにおける00001.mtsが消去されている。【０１６８】
図２１は、アロケーションユニットに対する上書きの処理過程を連続写真的な表記で描いた図であり、初期状態、最終状態からなる。初期状態では、出力ファイルストリームjがメモリに存在していて、記録済みのアロケーションユニットには、00001.mtsが存在する状態を想定している。最終状態は、ステップＳ３０、ステップＳ２４の処理がなされている状態であり、矢印WR2に示すように、00001.mtsと一体になった出力ファイルストリームjが空きのアロケーションユニットに書き込まれ、記録済みアロケーションユニットにおける00001.mtsが消去されている。【０１６９】
図２２は、ファイル種別判別の処理手順を示すフローチャートである。ステップＳ３１は、出力ファイルストリームjの拡張子Eが.mtsであるかどうかの判定であり、もしmtsであるなら、出力ファイルストリームjをAVストリーム形式の追加コンテンツであるとの判定結果を下す(ステップＳ３３)。もしmtsでないなら、出力ファイルストリームjを非AVストリーム形式の追加コンテンツであると判定結果を下す(ステップＳ３３２)。【０１７０】
図２３は、追加コンテンツのファイル名を８.３形式に変換する処理の手順を示すフローチャートである。【０１７１】
ステップＳ４３は、追加コンテンツiのファイル名におけるファイルボディiが、８文字以内であるかの判定である。ファイルボディが8文字以内ならステップＳ４４において入力ストリームファイルiのファイルボディを、ファイルボディBとする。８文字以内でないなら、ステップＳ４５を実行する。ステップＳ４５は、追加コンテンツiのファイルボディが全て数字であるか／アルファベットを含むかについての判定である。【０１７２】
もし、“全て数字”であるなら、ステップＳ４６において追加コンテンツiのファイルボディの下８桁の数字をファイルボディBとする。追加コンテンツiのファイルボディが“全てアルファベット”であるなら、ステップＳ４７においてアルファベットの大文字からイニシャル文字を生成して、そのイニシャル文字を、小文字にしたものをファイルボディBに採用する。【０１７３】
ステップＳ４８は、追加コンテンツiのファイル名における拡張子が“.m2ts”であるか否かの判定である。拡張子が“.m2ts”であるなら、“.mts”を追加コンテンツiの拡張子Eとする(ステップＳ４９)。３文字以内でないなら、追加コンテンツiの拡張子の上から３桁の文字を拡張子Eとする(ステップＳ５０)。以上の処理の後、ファイルボディBと、拡張子Eとの組合せ(フローチャートでは、“ファイル名B.E”と記載している)を用いて、追加コンテンツのリムーバブルメディアにおけるファイルパスを生成し(ステップＳ５１)、マージ管理情報ファイルにおけるローカルストレージのファイルパスを、新たに生成した８.３形式のファイル名に置き換える(ステップＳ５２)。【０１７４】
図２４はタイトル切り替え時に新旧マージ管理情報ファイルを置き換えて、仮想パッケージの再構築を行うための処理手順を示すフローチャートである。BD-Jモード用のタイトルが再生され（ステップS６１）、タイトル再生中にJava(TM)アプリケーションは仮想パッケージ更新要求を行う（ステップS６２）。【０１７５】
仮想パッケージ更新要求時に与える引数の値は、新マージ管理情報ファイルの位置を示すファイルパス、新マージ管理情報ファイルに対応する署名情報ファイルの位置を示すファイルパスである。【０１７６】
仮想ファイルシステム２３が仮想パッケージ更新要求を受けると、仮想ファイルシステム２３の状態を「更新準備中」とし、指定された新マージ管理情報ファイルが、書き換えられないように、読み取り専用属性に変更する（ステップS６３）。そして、仮想パッケージ更新要求時に指定された署名情報ファイルを用いて、新マージ管理情報ファイルの署名検証を行う（ステップS６４）。【０１７７】
ステップS６４の署名検証に失敗した場合（ステップS６５でNo）、仮想ファイルシステム２３は仮想パッケージ更新要求を中断し、新マージ管理情報ファイルの属性を読み取り専用から仮想パッケージ更新要求前の元の属性に戻し、Java(TM)アプリケーションに対して、仮想パッケージ更新要求拒否通知イベントを投げる（ステップS６９）。【０１７８】
ステップS６４の署名検証に成功した場合（ステップS６５でYes）、仮想ファイルシステム２３は新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルの存在チェックを行い、それらのファイルをJava(TM)アプリケーションから読み取り専用となるように属性を変更する（ステップS６６）。【０１７９】
新マージ管理情報ファイルから参照されていて仮想パッケージ構築に必要なファイルがビルドインメディア/リムーバブルメディア上に存在しなかった場合（ステップS６７でNo）、仮想ファイルシステム２３は仮想パッケージ更新処理を中断し、ステップS６３及びステップS６６で属性を変更したファイルを仮想パッケージ更新要求前の元の属性に戻し、Java(TM)アプリケーションに対して、仮想パッケージ更新要求拒否通知イベントを投げる（ステップS６９）。【０１８０】
新マージ管理情報ファイルから参照されていて仮想パッケージ構築に必要なファイルがビルドインメディア/リムーバブルメディア上に全て存在していると確認でき、さらにそれらのファイルの属性をJava(TM)アプリケーションから読み取り専用に変更する処理が完了すると（ステップS６７でYes）、仮想ファイルシステム２３は仮想ファイルシステムの状態を「更新準備完了」とし、Java(TM)アプリケーションに対して、更新準備完了通知イベントを投げる。【０１８１】
仮想ファイルシステム２３の状態が「更新準備完了」となった後、タイトル切り替えが発生するのを待つ（ステップS６８）。タイトル切り替えが発生すると、切り替え前のタイトルで起動していたJava(TM)アプリケーションは終了する（ステップS７０）。その後、旧マージ管理情報ファイルが存在すれば、新マージ管理情報ファイルで上書きし、新旧マージ管理情報ファイルの置き換えを行う（ステップS７１）。仮想パッケージ更新前がオリジナルのBD-ROMで再生されており、旧マージ管理情報ファイルがもともと存在しなかった場合は、旧マージ管理情報ファイルを上書きする代わりに、新マージ管理情報ファイルは、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に移動され、正規のマージ管理情報ファイル名にリネームされる。同様に、署名情報ファイルについても新旧ファイルの置き換え、移動を行う。【０１８２】
新旧マージ管理情報ファイル、署名情報ファイルの置き換えもしくはファイルの移動を終えた後、新マージ管理情報ファイルを元に仮想パッケージを再構築する（ステップS７２）。【０１８３】
仮想パッケージ再構築後、旧マージ管理情報ファイルから参照されていたが、新マージ管理情報ファイルからは参照されていないビルドインメディア/リムーバブルメディア上のファイルは読み取り専用属性が解除され、Java(TM)アプリケーションから読み書き可能になる。新マージ管理情報ファイル及び、新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルに関しては読み取り専用属性のままとなる。【０１８４】
仮想パッケージの再構築を終えると、新たに構築した仮想パッケージを用いて、切り替え先のタイトル再生を開始する（ステップS６１）。再生中の仮想パッケージに対応するマージ管理情報ファイル及び、そのマージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルは、仮想パッケージ再生中、常に読み取り専用属性となり、Java(TM)アプリケーションからは編集、削除することができない。【０１８５】
図２５は、Java(TM)アプリケーションが仮想パッケージ構築/更新要求を発行し、仮想パッケージが更新されるまでの、時間的な処理の流れを示す図である。【０１８６】
第１段目は、タイトルの再生時間軸であり、第２段目はアプリケーション#1の動作時間軸である。第３段目は、アプリケーション#2の動作時間軸であり、第４段目は、仮想ファイルシステムの状態遷移を示す時間軸である。【０１８７】
本図の初期状態として想定するのは、新しいマージ管理情報ファイル、署名情報ファイルの格納が完了した状態である。つまり、追加コンテンツに加え、現在の仮想パッケージ構築に利用されているマージ管理情報ファイル、署名情報ファイルとは別に新たにマージ管理情報ファイル、署名情報ファイルをインターネット上のサーバからダウンロードして得て、ビルドインメディア上もしくはリムーバブルメディア上に格納した状態を初期状態として想定する。【０１８８】
タイトル#1の再生中の時点t1において、BD-Jアプリケーションは、仮想ファイルシステム管理モジュール３９が提供するAPIを通して仮想ファイルシステム２３に仮想パッケージ構築/更新を要求したものとする。図中のrequestUpdating("/org#1/disc#1/new.xml","/org#1/disc#1/new.sf")は、この仮想パッケージ構築要求となるAPI呼出しである。この仮想パッケージ構築要求の引数"/org#1/disc#1/new.xml","/org#1/disc#1/new.sf"は、ビルドインメディア/リムーバブルメディア上に格納されている新マージ管理情報ファイル、署名情報ファイルの位置を指定したファイルパスである。時点t1は、この更新要求がなされた時点を示す。【０１８９】
時点t1は、BD-Jアプリケーションからの仮想パッケージ構築/更新要求を受け取って、その状態を「更新準備中」に遷移する時点である。【０１９０】
ここで、「更新準備中」とは、指定された新マージ管理情報ファイル及び、新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルを読み取り専用に属性を変更する処理を含む。【０１９１】
かかる処理の他、仮想パッケージ更新要求時にBD-Jアプリケーションから指定された署名情報ファイルを用いて、新マージ管理情報ファイルの署名検証を行い、さらに新マージ管理情報ファイルのファイル格納位置情報に記載されているファイルが全て指定の位置に存在するかのチェックを行う。【０１９２】
時点t2は、ファイル存在のチェックが終わった後、仮想ファイルシステムの状態を「更新準備完了」とする時点を示す。こうして状態を遷移させれば、Java(TM)アプリケーションに対して、更新準備完了通知イベントを投げる。新マージ管理情報ファイルの署名検証、もしくはファイル格納位置情報に記載されているファイルの存在チェックに失敗した場合、仮想ファイルシステム２３は更新要求を拒否し、仮想ファイルシステム管理モジュール３９を通じて更新要求拒否通知イベントをBD-Jアプリケーションに対して投げ、仮想ファイルシステム２３の状態を「更新準備中」となる前の状態（「仮想パッケージ再生状態」もしくは「BD-ROM再生状態」）に戻す。「仮想パッケージ再生状態」とは、BD-ROMが再生装置にロードされ、仮想ファイルシステム２３により仮想パッケージとして再生中であり、保留中の仮想パッケージ更新要求がない状態を指す。「BD-ROM再生状態」とは、BD-ROMが再生装置にロードされ、そのままオリジナルのBD-ROMとして再生中であり、同じく保留中の仮想パッケージ更新要求がない状態を指す。【０１９３】
時点t3は、仮想ファイルシステム２３の状態が「更新準備完了」となった後の時点を示す。タイトル切り替えが発生すると、仮想ファイルシステム２３は仮想パッケージ更新要求時に指定された新マージ管理情報ファイルを用いて、旧マージ管理情報ファイル（現在の仮想パッケージ構築に利用されているマージ管理情報ファイル）を上書きすることにより、旧マージ管理情報ファイルを新マージ管理情報ファイルに置き換える。【０１９４】
仮想パッケージ更新前がオリジナルのBD-ROMの再生中であり、旧マージ管理情報ファイルがもともと存在しなかった場合は、旧マージ管理情報ファイルを上書きする代わりに、新マージ管理情報ファイルを、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に移動する。こうすることで新マージ管理情報は、正規のマージ管理情報ファイル名(bumf.xml)にリネームされる。署名情報ファイルもマージ管理情報ファイル同様に新旧署名情報ファイルの置き換えを行う。新旧マージ管理情報ファイル、署名情報ファイルの置き換え、もしくは新マージ管理情報ファイル、署名情報ファイルの移動が終わった後、仮想ファイルシステム２３は、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に格納されている新マージ管理情報を元に仮想パッケージを再構築し、仮想パッケージのファイル構成を更新する。【０１９５】
時点t4は、かかる更新を終えた時点であり、ビルドインメディアドライブ・リムーバブルメディアドライブ２２は、“仮想パッケージ再生状態”になる。仮想パッケージを更新した後も、仮想パッケージ再生状態である期間は、新マージ管理情報ファイル及び、新マージ管理情報ファイルのファイル格納位置情報が指し示すビルドインメディア/リムーバブルメディア上のファイルは読み取り専用に属性のままとなる。ただし、旧マージ管理情報ファイルから参照されていて、新マージ管理情報ファイルから参照されていないファイルは読み取り専用属性が解除され、Java(TM)アプリケーションから読み書き可能になる。【０１９６】
（第２実施形態）
追加コンテンツを追加コンテンツ格納領域を書き込もうとする際、連続データ領域又は通常データ領域における空きの論理ブロックが不足することがある。本実施形態は、空きの論理ブロックが不足した際のエラーハンドリングを考慮した実施形態である。【０１９７】
図２６は、連続データ領域の空き領域が不足していた場合のエラーハンドリングを考慮した、ローカルストレージの書込手順を示すフローチャートである。本図のフローチャートは、図１９をベースとして作図されており、このベースとなるフローチャートにおいて、ステップＳ２２(ステップＳ２７)、ステップＳ２３、ステップＳ２４、ステップＳ２５に改良を加える形で記載されている。【０１９８】
ステップS２２、ステップＳ２７で対象ファイルがAVストリーム形式の追加コンテンツであると判断された場合、連続データ領域にAVストリームを書込むことが可能なアロケーションユニットがあるかどうかを判断する（ステップＳ２３）。連続データ領域の空き容量が確認できた場合は、ステップＳ２４において、連続データ領域における空きのアロケーションユニットにAVストリームを書き込む。【０１９９】
連続データ領域の空き容量が不足しており、空きのアロケーションユニットが存在しない場合、フラグメンテーションによりリアルタイムの読み込み性能が保証できない可能性があるため、ユーザに対し、再生に支障が出る可能性があることを通知した上で（S８１）、ステップＳ２５に移行する。図２７は、連続データ領域に書込みできなかった場合におけるユーザに対する通知の一例である。図２７ではストレージの空き容量が十分存在しないこと、そのため正しく書き込みできなかったこと、再生に支障が出る可能性があることを画面に表示し、ユーザに通知している。【０２００】
図２８は、AVストリームの書込みに失敗した場合のエラーハンドリングを考慮した、ローカルストレージの書込手順を示すフローチャートである。本図のフローチャートは、ステップＳ２２(ステップＳ２７)、ステップＳ２３、ステップＳ２４、ステップＳ２５に改良を加える形で記載されている。【０２０１】
図２６のフローチャートでは、連続データ領域に空きがなく、通常データ領域に空きがある場合は、AVストリームを通常データ領域に書込むこととしているが、この場合再生に支障が出る可能性がある。図２８のフローチャートでは、再生品質を重視し、通常データ領域に空きがあっても、連続データ領域に空きがなければ(ステップＳ２３で空き無し)、AVストリームの書込みに失敗したとして、その旨をユーザに通知している（ステップＳ８３）
一方、通常データ領域に空き容量がなければ、書込み処理を行わず、ステップＳ８３においてユーザに対し書込みに失敗したことを通知する。【０２０２】
図２９は、書込み処理に失敗したことをユーザに示す画面表示の一例である。ストレージに空き容量が十分存在しないこと、そのために書込みに失敗したことを通知すると共に不要データ消去を促すメッセージを出力している。【０２０３】
以上のように本実施例によれば、Java(TM)アプリケーションから様々な種類のファイルが含まれた仮想パッケージの追加コンテンツの書込み要求が発行された場合においても、追加されたストリームのリアルタイム再生を保証しつつストレージ容量の効率利用が可能となる。【０２０４】
(第３実施形態)
本実施形態は、通常データ領域及び連続データ領域のどちらかに追加コンテンツを書き込んでおき、仮想パッケージの構築が要求された際、事後的に、追加コンテンツを移動するという手法で、通常データ領域及び連続データ領域における配置を完成させようという改良である。本実施形態における配置には、図３０に示されるものと、図３１に示されるもの、図３２に示されるものとがある。【０２０５】
図３０（ａ）は、第３実施形態におけるローカルストレージの書込み処理のフローチャートである。本フローチャートでは、書込み前のファイル種類判別を行わず、全て通常データ領域へ書込む（S１００）。【０２０６】
図３０（ｂ）は、第３実施形態におけるファイル種類判別のフローチャートである。ファイルの書込みは一旦全て通常データ領域へ書込んでおき、Java(TM)アプリケーションから仮想パッケージ更新要求があったタイミングで、Java(TM)アプリケーションから指定された新マージ管理情報ファイルを元にファイル種類判別を行う（S１０１）。ここでのファイル種別の判別は、新マージ管理情報から、仮想パッケージ上においてAVストリーム形式の追加コンテンツファイルとしてマッピングされているファイル、すなわち、仮想パッケージ上において"BDMV/STREAM/xxxxx.m2ts"というファイル名として扱われるファイルに関してはAVストリーム形式の追加コンテンツと判断するというものである。【０２０７】
もし、AVストリーム形式の追加コンテンツが存在すれば(ステップＳ１０２)、空きアロケーションユニットが存在するかどうかを判定して(ステップＳ１０３)空きアロケーションユニットがあれば、AVストリーム形式の追加コンテンツファイルを、アロケーションユニットに移動する(ステップＳ１０４)。こうすることで、AVストリーム形式の追加コンテンツを連続データ領域に再配置する。【０２０８】
図３１（ａ）は、空きアロケーションユニットが存在するかどうかの判定を行い(ステップＳ１１０)、もし存在すれば、書込み要求された追加コンテンツを一旦全ての連続データ領域へ書き込む（S１１１）。【０２０９】
図３１（ｂ）は、Java(TM)アプリケーションからの仮想パッケージ更新要求時の処理手順を示すフローチャートである。ステップＳ１２１では、新マージ管理情報から、仮想パッケージ上において非ストリームファイルとなっているファイルを抽出することで、各追加コンテンツのファイル種別を判別する(ステップＳ１２１)。その後、非AVストリーム形式の追加コンテンツが存在するかどうかの判定を行い(ステップＳ１２２)、もし存在すれば、それらのファイルを通常データ領域へ移動して再配置する（S１２３）。【０２１０】
図３２は、書き込みが要求された追加コンテンツを一旦通常データ領域に書き込む処理手順を示すフローチャートである。書き込みが要求された追加コンテンツを一旦通常データ領域に書き込み(ステップＳ１３１)、その後、ステップＳ１３２、ステップＳ１３３の判定ステップを実行する。ステップＳ１３２は、書き込みがなされた追加コンテンツが一定サイズ以上であるか否かの判定であり、ステップＳ１３３は、空きのアロケーションユニットが存在するか否かの判定である。もしこれらのステップＳ１３３２ステップＳ１３３の双方がYesであるなら、ステップＳ１３４において一定サイズ以上の追加コンテンツをアロケーションユニットに移動する。ステップＳ１３２、ステップＳ１３３のどちらかがNoであれば、処理を終了する。【０２１１】
以上のように本実施例によれば、データ書込み時に事前のファイル判別処理を行うことなく、必要に応じてストリーム/非ストリームファイルをそれぞれ連続データ領域、通常データ領域に再配置することが出来る。【０２１２】
(第４実施形態)
第１実施形態では、リムーバブルメディアへの書き込みの対象となる追加コンテンツがAVストリームであるか否かの判断対象に拡張子を採用したが、本実施形態は、Java(TM)アプリケーションから書込が要求されたAVストリームの最初のバイト列からAVストリームか否かを判断するものである。【０２１３】
図３３は、書込が要求されたAVストリームの最初のバイトを判定することで、AVストリームか否かの判定を行うフローチャートである。ステップＳ９１は、出力ストリームファイルjのヘッダデータがAVストリームか否かを判定するステップであり、もし出力ストリームファイルjのヘッダデータがAVストリームであれば、ステップＳ９２において、出力ストリームファイルjがAVストリームであるとの判定結果を下す。もし出力ストリームファイルjのヘッダデータがAVストリームでなければ、ステップＳ９３において、出力ストリームファイルjがAVストリームでないとの判定結果を下す。【０２１４】
以上のように本実施形態によれば、拡張子が偽装された場合やストリームの拡張子が不定の場合にも対応することができる。【０２１５】
(第５実施形態)
本実施形態は、再生装置１０２がネットワーク接続されておらず、スタンドアローンで使用されている場合に、ユーザが所持するパソコンを、記録装置として利用する実施形態である。かかる記録装置は、再生装置１０２に付属しているソフトウェアキットをパソコンにインストールすることで構成されるものである。【０２１６】
このソフトウェアキットは、図１７から図１９のフローチャートに示される制御手順をMPUに実行させるものである。【０２１７】
これまでの実施形態で述べたように、リムーバブルメディアには、BUDAディレクトリエントリー、CertIDディレクトリエントリー、OrganizationIDディレクトリエントリー、DiscIDディレクトリエントリーが存在しており、リムーバブルメディアおける追加コンテンツ格納領域は、BUDAディレクトリ名、CertIDディレクトリ名、OrganizationIDディレクトリ名、DiscIDディレクトリ名を用いたファイルパスにて特定されるので、これらを参照すれば、たとえ自身にはBD-ROMを再生する能力が無くても、かかるリムーバブルメディアに、どのようなBD-ROMコンテンツの追加コンテンツを記録することができるかを認識することができる。【０２１８】
そこで記録装置は、追加コンテンツ格納領域を特定するファイルパス、つまり、BUDAディレクトリ名、CertIDディレクトリ名、OrganizationIDディレクトリ名、DiscIDディレクトリ名を用いたファイルパスを参照することで、ダウンロード可能な追加コンテンツが存在するかどうかの監視を行う。かかる監視は、OrganizationIDディレクトリ名に示される組織名に基づきコンテンツのプロバイダが運営するWWWサーバのWWWサイト、つまりコンテンツプロバイダにおける公式のWWWサイトをアクセスして、リムーバブルメディアにおけるDiscIDディレクトリに対応するBD-ROMの記録内容について最新のアップデート状況を監視することでなされる。記録装置が、ネットワーク接続されている場合、こうしたアップデート状況を常時監視しており、もしBD-ROMコンテンに対する追加コンテンツの告知があれば、記録装置は、ネットワークを介して、新たな追加コンテンツをダウンロードしてリムーバブルメディアに書き込む。こうして追加コンテンツがリムーバブルメディアに書き込まれた後、かかる追加コンテンツが記録されたリムーバブルメディアが、再生装置１０２に装填された場合、再生装置１０２は、仮想パッケージの構築を行うことができる。【０２１９】
かかる記録装置による追加コンテンツの書き込みも、図１７〜図１９のフローチャートに従ってなされるので、AVコンテンツは、追加コンテンツ格納領域に書き込まれることになる。【０２２０】
以上のように本実施形態によれば、BD-ROMの再生能力がない記録装置によって追加コンテンツ格納領域への追加コンテンツの書き込みがなされる場合でも、AVストリーム形式の追加コンテンツについては、連続データ領域に書き込まれるので、AVストリーム形式の追加コンテンツにおけるAV再生の安定性を維持することができる
(第６実施形態)
本実施形態は、連続データ領域に記録されるべきAVストリームが、どのようなものであるかを説明する。対比のため、BD-ROMに記録されるべきAVストリームについて説明する。      【０２２１】
図３４は、BD-ROMにおけるAVストリームに多重化されるエレメンタリストリームを示す図である。BD-ROMにおけるAVストリームのSTC-Sequenceに多重化されるエレメンタリストリームは、0x1011のPIDをもつPrimaryビデオストリーム、0x1100から0x111FまでのPIDをもつプライマリオーディオストリーム、0x1200から0x121FまでのPIDをもつ32本のPGストリーム、0x1400から0x141FまでのPIDをもつ32本のIGストリーム、0x1B00から0x1B1FまでのPIDをもつ32本のSecondaryビデオストリームである。【０２２２】
図−３５は、BD-ROMに記録されているエレメンタリストリームにおけるPID割当マップを示す図である。PID割当マップの左欄は、PIDが取りうる値の複数のゾーンを示す。右欄は、各ゾーンに割り当てられるエレメンタリストリームを示す。この記述法に従って図を参照すると本図から、以下のことが導くことができる。つまりPIDが取りうる値のうち、0x0100のゾーンは、Program＿mapに割り当てられ、0x1001のゾーンはPCRに、0x1011のゾーンはPrimaryビデオストリームに、0x1100から0x111Fまでのゾーンはプライマリオーディオストリームに、0x1200から0x121FまでのゾーンはPGストリームに、0x1400から0x141FまでのゾーンはIGストリームに、0x1B00から0x1B1FまでのゾーンはIN＿MUX＿Secondaryビデオストリームに割り当てられている。【０２２３】
以上がBD-ROMに記録されるべきAVストリームについての説明である。続いて、追加コンテンツ格納領域に配されるべきAVストリームの詳細について説明する。【０２２４】
図３６は、追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームを示す図である。追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームは、0x1800のPIDをもつtextSTストリーム、0x1A00から0x1A1FまでのPIDをもつプライマリオーディオストリーム、0x1B00から0x1B1FまでのPIDをもつ32本のOut＿of＿MUX＿Secondaryビデオストリーム、0x1200から0x121FまでのPIDをもつ32本のPGストリーム、0x1400から0x141FまでのPIDをもつ32本のIGストリームである。この図１４に示したセカンダリビデオストリームのように、プライマリビデオストリームと異なるAVストリームに多重化されるセカンダリビデオストリームを、“Out＿of＿MUX＿セカンダリビデオストリーム”という。またセカンダリビデオストリームに限らず、プライマリビデオストリームと異なるAVストリームに多重化されるエレメンタリストリーム全般を、“Out＿of＿MUXストリーム”という。【０２２５】
図３７は、追加コンテンツ格納領域に配されるべきAVストリームに多重化されたエレメンタリストリームにおけるPID割当マップを示す図である。PID割当マップの左欄は、PIDが取りうる値の複数のゾーンを示す。右欄は、各ゾーンに割り当てられるエレメンタリストリームを示す。この記述法に従って図を参照すると本図から、以下のことが導くことができる。つまりPIDが取りうる値のうち、0x0100のゾーンは、Program＿mapに割り当てられ、0x1001のゾーンはPCRに、0x1200から0x121FまでのゾーンはPGストリームに、0x1400から0x141FまでのゾーンはIGストリームに、0x1800のゾーンは、textSTストリームに、0x1A00から0x1A1Fまでのゾーンはセカンダリオーディオストリームに割り当てられている。0x1B00から0x1B1FまでのゾーンはSecondaryビデオストリームに割り当てられている。
＜プライマリビデオストリーム＞
プライマリビデオストリームは、映画作品の本編を構成するストリームであり、SD画像、HD画像であるピクチャデータから構成される。ビデオストリームには、VC-1のビデオストリーム、MPEG4-AVCのビデオストリーム、MPEG2-Videoのビデオストリームといった形式が存在する。MPEG4-AVCのビデオストリームでは、IDRピクチャ,Iピクチャ,Pピクチャ,Bピクチャに、PTS、DTSといったタイムスタンプが付され、このピクチャの単位で、再生制御がなされる。このように、PTS、DTSが付されて、再生制御の単位となる、ビデオストリームの一単位を“Video Presentation Unit”という。【０２２６】
＜セカンダリビデオストリーム＞
セカンダリビデオストリームは、映画作品のコメンタリィ等を構成するストリームであり、このセカンダリビデオストリームの再生映像を、プライマリビデオストリームの再生映像内に合成することで、ピクチャインピクチャが実行される。ビデオストリームには、VC-1のビデオストリーム、MPEG4-AVCのビデオストリーム、MPEG2-Videoのビデオストリームといった形式が存在し、“Video Presentation Unit”をもつ。セカンダリビデオストリームのフォーマットには、525/60ビデオフォーマット、625/50ビデオフォーマット、1920×1080フォーマット、1280×720フォーマットがある。【０２２７】
＜プライマリオーディオストリーム＞
プライマリオーディオストリームは、映画作品の主音声を表すストリームであり、LPCMオーディオストリーム、DTS-HDオーディオストリーム、DD/DD+オーディオストリームやDD/MLPオーディオストリームといった形式が存在する。オーディオストリームにおけるオーディオフレームに、タイムスタンプが付され、このオーディオフレームの単位で、再生制御がなされる。このように、タイムスタンプが付されて、再生制御の単位となる、オーディオストリームの一単位を“Audio Presentation Unit”という。【０２２８】
＜セカンダリオーディオストリーム＞
BD-ROMには記録されていないが、映画作品の副音声を表すようなオーディオストリームである。【０２２９】
＜PGストリーム＞
PGストリームは、言語毎の字幕を構成するグラフィクスストリームであり、英語、日本語、フランス語というように複数言語についてのストリームが存在する。PGストリームは、PCS(Presentation Control Segment)、PDS(Pallet Define Segment)、WDS(Window Define Segment)、ODS(Object Define Segment)という一連の機能セグメントからなる。ODS(Object Define Segment)は、字幕たるグラフィクスオブジェクトを定義する機能セグメントである。【０２３０】
WDS(Window Define Segment)は、画面におけるグラフィクスオブジェクトのビット量を定義する機能セグメントであり、PDS(Pallet Define Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。PCS(Presentation Control Segment)は、字幕表示におけるページ制御を規定する機能セグメントである。かかるページ制御には、Cut-In/Out、Fade-In/Out、Color Change、Scroll、Wipe-In/Outといったものがあり、PCSによるページ制御を伴うことにより、ある字幕を徐々に消去しつつ、次の字幕を表示させるという表示効果が実現可能になる。【０２３１】
＜テキスト字幕(textST)ストリーム＞
textSTストリームは、字幕の内容をキャラクタコードで現したストリームである。textSTストリームは、プライマリビデオストリームと同じAVストリームに多重化されていないが、字幕を現すストリームである。このPresentation Graphicsストリームと、textSTストリームとの組みは、BD-ROM規格において、“PGTextSTストリーム”と呼ばれる。【０２３２】
＜IGストリーム＞
IGストリームは、対話制御を実現するグラフィクスストリームである。IGストリームにて定義される対話制御は、DVD再生装置上の対話制御と互換性がある対話制御である。かかるIGストリームは、ICS(Interactive Composition Segment)、PDS(Palette Difinition Segment)、ODS(Object Definition Segment)と呼ばれる機能セグメントからなる。ODS(Object Definition Segment)は、グラフィクスオブジェクトを定義する機能セグメントである。このグラフィクスオブジェクトが複数集まって、対話画面上のボタンが描画される。PDS(Palette Difinition Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。ICS(Interactive Composition Segment)は、ユーザ操作に応じてボタンの状態を変化させるという状態変化を実現する機能セグメントである。ICSは、ボタンに対して確定操作がなされた際、実行すべきボタンコマンドを含む。【０２３３】
以上が追加コンテンツ格納領域に記録されるAVストリームの説明である。続いて、本実施形態にかかる再生制御エンジン２４の詳細について説明する。【０２３４】
図３８は、再生制御エンジン２４の内部構成を示す図である。再生制御エンジン２４は、本図に示すように、リードバッファ１a,b、ATCカウンタ２a,b,Source Depacketizer２a,b、ATCカウンタ２a,b、STCカウンタ３a,b、PID Filter３a,b、Transport Buffer(TB)４a、Elementary Buffer(EB)４c、ビデオデコーダ４d、Re-order Buffer４e、Decoded Picture Buffer４f、ビデオプレーン４g、Transport Buffer(TB)５a、Elementary Buffer(EB)５c、ビデオデコーダ５d、Re-order Buffer５e、Decoded Picture Buffer５f、ビデオプレーン５g、バッファ６a,b、バッファ７a,b、オーディオデコーダ８a,b、ミキサー９a、スイッチ１０a,b,c,d,e、Transport Buffer(TB)１１a、Interactive Graphicsデコーダ１１b、Interactive Graphicsプレーン１１c、Transport Buffer(TB)１２a、バッファ１２b、Text based subtitleデコーダ１２ｃ、Transport Buffer(TB)１３a、Presentation Graphicsデコーダ１３ｂ、Presentation Graphicsプレーン １３cから構成される。尚本図では、再生装置の出力段については、示していない。出力段については、別図に内部構成を示して説明することにする。【０２３５】
リードバッファ(RB)１aは、ローカルストレージ２２から読み出されたSourceパケット列を蓄積する。【０２３６】
リードバッファ(RB)１bは、BD-ROMから読み出されたSourceパケット列を蓄積する。【０２３７】
ATC Counter２aは、ローカルストレージ２２におけるAVストリームを構成するSourceパケットのうち、再生区間の最初に位置するもののATSを用いてリセットされ、以降ソースデパケッタイザ２aにATCを出力してゆく。【０２３８】
ATC Counter２bは、BD-ROMにおけるAVストリームを構成するSourceパケットのうち、再生区間の最初に位置するもののATSを用いてリセットされ、以降ソースデパケッタイザ２bにATCを出力してゆく。【０２３９】
ソースデパケッタイザ(Source  De-packetizer)２aは、ローカルストレージ２２におけるAVストリームを構成するSourceパケットからTSパケットを取り出して、送出する。この送出にあたって、ATSに応じてデコーダへの入力時刻を調整する。具体的には、ATC Counter２aが生成するATCの値と、SourceパケットのATS値とが同一になった瞬間にTS＿Recording＿Rateで、そのTSパケットだけをPID Filter３aに転送する。【０２４０】
ソースデパケッタイザ(Source  De-packetizer)２bは、BD-ROMにおけるAVストリームを構成するSourceパケットからTSパケットを取り出して、送出する。この送出にあたって、各TSパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATC Counter２bが生成するATCの値と、SourceパケットのATS値とが同一になった瞬間にTS＿Recording＿Rateで、そのTSパケットだけをPID Filter３bに転送する。【０２４１】
STC Counter３aは、ローカルストレージ２２におけるAVストリームのPCRによってリセットされ、STCを出力する。PIDフィルタ３aは、このSTCを参照して、多重分離を行う。【０２４２】
STC Counter３bは、BD-ROMにおけるAVストリームのPCRによってリセットされ、STCを出力する。【０２４３】
PID Filter３aは、ローカルストレージ２２におけるAVストリーム用の多重分離部であり、ソースデパケッタイザ２aから出力されたSourceパケットのうち、所望のPID参照値をもつものを、夫々オーディオデコーダ８b、Interactive Graphicsデコーダ１１b、Presentation Graphicsデコーダ１３bに出力する。このようにPID Filter３aを通過して各デコーダに入力されるエレメンタリストリームは、ローカルストレージ２２におけるAVストリームのPCRに従って、デコード及び再生に供されることになる。【０２４４】
PID Filter３bは、BD-ROMにおけるAVストリーム用の多重分離部であり、ソースデパケッタイザ２bから出力されたSourceパケットのうち、所望のPID参照値をもつものを、夫々ビデオデコーダ４d、ビデオデコーダ５d、オーディオデコーダ８a、Interactive Graphicsデコーダ１１b、Presentation Graphicsデコーダ１３bに出力する。各デコーダは、PID Filter３bを経由したエレメンタリストリームを受け取って、BD-ROMにおけるAVストリームのPCRに従いデコードから再生の処理を行う。このようにPID Filter３bを通過して各デコーダに入力されるエレメンタリストリームは、BD-ROMにおけるAVストリームのPCRに従って、デコード及び再生に供されることになる。【０２４５】
Transport Buffer(TB)４aは、プライマリビデオストリームに帰属するTSパケットがPID Filter３bから出力された際、一旦蓄積されるバッファである。【０２４６】
Elementary Buffer(EB)４cは、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)が格納されるバッファである。【０２４７】
デコーダ(DEC.)４dは、プライマリビデオを構成する個々のピクチャを所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を得て、ビデオプレーン４に書き込む。【０２４８】
Ducoded Picture Buffer４eは、デコーダ４dのデコードにより得られた非圧縮のピクチャを格納しておくバッファである。【０２４９】
Re-order Buffer４fは、復号されたピクチャの順序を、符号化順序から表示順序に入れ替えるためのバッファである。【０２５０】
プライマリビデオプレーン４gは、プライマリビデオを構成する一ピクチャ分の画素データを格納しておくためのメモリ領域である。画素データは、16ビットのYUV値で表現され、ビデオプレーン４gは、1920×1080という解像度にあたる画素データを格納している。【０２５１】
Transport Buffer(TB)５aは、セカンダリビデオストリームに帰属するTSパケットがPID Filter３bから出力された際、一旦蓄積されるバッファである。【０２５２】
Elementary Buffer(EB)５cは、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)が格納されるバッファである。【０２５３】
デコーダ(DEC.)５dは、セカンダリビデオを構成する個々のピクチャを所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を得て、ビデオプレーン５に書き込む。【０２５４】
Ducoded Picture Buffer５eは、デコーダ５dのデコードにより得られた非圧縮のピクチャを格納しておくバッファである。【０２５５】
Re-order Buffer５fは、復号されたピクチャの順序を、符号化順序から表示順序に入れ替えるためのバッファである。【０２５６】
セカンダリビデオプレーン５gは、セカンダリビデオを構成する一ピクチャ分の画素データを格納しておくためのメモリ領域である。画素データは、16ビットのYUV値で表現され、セカンダリビデオは、1920×1080という解像度にあたる画素データを格納している。【０２５７】
バッファ６aは、デマルチプレクサ３aから出力されたTSパケットのうち、プライマリオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデコーダ７aに供する。【０２５８】
バッファ６bは、デマルチプレクサ３ｂから出力されたTSパケットのうち、セカンダリオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデコーダ７bに供する。【０２５９】
オーディオデコーダ７aは、バッファ６aに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりプライマリオーディオストリームにおけるデジタル出力がなされる。【０２６０】
オーディオデコーダ７bは、バッファ６bに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりセカンダリオーディオストリームにおけるデジタル出力がなされる。【０２６１】
ミキサ９aは、オーディオデコーダ７aから出力されるLPCM状態のデジタルオーディオと、オーディオデコーダ７bから出力されるLPCM状態のデジタルオーディオとをミキシングする。【０２６２】
スイッチ１０aは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にセカンダリビデオデコーダ５d側に供給する。【０２６３】
スイッチ１０bは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にPresentation Graphicsデコーダ１３b側に供給する。【０２６４】
スイッチ１０cは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にInteractive Graphicsデコーダ１１b側に供給する。【０２６５】
スイッチ１０dは、デマルチプレクサ３aにより多重分離がなされた、プライマリオーディオストリームを構成するTSパケット、デマルチプレクサ３bにより多重分離がなされたプライマリオーディオストリームを構成するTSパケットのうちどちらをオーディオデコーダ８aに供給するかを切り換えるスイッチである。【０２６６】
スイッチ１０eは、デマルチプレクサ３aにより多重分離がなされた、セカンダリオーディオストリームを構成するTSパケット、デマルチプレクサ３bにより多重分離がなされたセカンダリオーディオストリームを構成するTSパケットのどちらを、オーディオデコーダ８bに供給するかを切り換えるスイッチである。【０２６７】
Transport Buffer(TB)１１aは、IGストリームに帰属するTSパケットが一旦蓄積されるバッファである。【０２６８】
Interactive Graphics(IG)デコーダ１１bは、BD-ROM１００又はローカルストレージ２００から読み出されたIGストリームをデコードして、非圧縮グラフィクスをIGプレーン１２に書き込む。【０２６９】
Interactive Graphics(IG)プレーン１１ｃは、IGデコーダ１１bによるデコードで得られた非圧縮グラフィクスを構成する画素データが書き込まれる。【０２７０】
Transport Buffer(TB)１２aは、textSTストリームに帰属するTSパケットが一旦蓄積されるバッファである。【０２７１】
Buffer(TB)１２bは、textSTストリームを構成するPESパケットが一旦蓄積されるバッファである。【０２７２】
Text Based Subtitleデコーダ１２cは、BD-ROM１００又はローカルストレージ２２から読み出されたtextSTストリームにおいて、キャラクタコードを用いて、表現されている字幕をビットマップに展開して、PGプレーン１３cに書き込む。この展開には、BD-ROM１００又はローカルストレージ２２に格納されているフォントデータが用いられるので、textSTストリームのデコードには、前もってかかるフォントデータを読み込んでおく必要がある。【０２７３】
Transport Buffer(TB)１３aは、PGストリームに帰属するTSパケットが一旦蓄積されるバッファである。【０２７４】
Presentation Graphics(PG)デコーダ１３ｂは、BD-ROM又はローカルストレージ２２から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentation Graphicsプレーン１４に書き込む。PGデコーダ１３ｂによるデコードにより、字幕が画面上に現れることになる。【０２７５】
Presentation Graphics(PG)プレーン１３ｃは、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。【０２７６】
PSRセット１７は、再生装置に内蔵されるレジスタであり、64個のPlayer Setting/Status Register(PSR)と、4096個のGeneral Purpose Register（GPR)とからなる。Player Setting/Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。【０２７７】
以上が、AV再生部２４の内部構成である。続いて、AV再生部２４の出力段の内部構成について説明する。図３９は、再生装置の出力段の構成を示す図である。本図に示すようにAV再生部２４の出力段は、1−α3乗算部１５a、Scalling・Positioning部１５b、α3乗算部１５c、加算部１５d、1−α1乗算部１５e、α1乗算部１５f、加算部１５g、1−α2乗算部１５h、α2乗算部１５i、加算部１５ｊ、HDMI送受信部１６から構成される。【０２７８】
1−α3乗算部１５aは、ビデオデコーダ４ｇに格納されている非圧縮のデジタルピクチャを構成する画素の揮度に、透過率1-α3を乗じる。【０２７９】
Scalling・Positioning部１５bは、ビデオプレーン５ｇに格納されている非圧縮のデジタルピクチャを拡大・縮小する処理(Scalling)を施し、また配置位置を変更する処理(Positioning)を行う。この拡大・縮小は、メタデータにおけるPiP＿scaleに基づき、配置位置の変更は、メタデータにおけるPiP＿horizontal＿position、PiP＿vertical＿positionに基づく。【０２８０】
α3乗算部１５cは、Scalling・Positioning部１５bにより、Scalling、Positioningが施された非圧縮のピクチャを構成する画素の揮度に対し、透過率α3を乗じる。【０２８１】
加算部１５dは、α3乗算部１５cにより画素毎に透過率α3が乗じられた非圧縮デジタルピクチャと、1−α3乗算部１５aにより画素毎に透過率1-α3が乗じられた非圧縮デジタルピクチャとを合成して、合成ピクチャを得る。【０２８２】
1−α1乗算部１５eは、加算部１５dにより合成がなされたデジタルピクチャを構成する画素の揮度に、透過率1-α1を乗じる。【０２８３】
α1乗算部１５fは、Presentation Graphicsデコーダ１３ｃに格納されている非圧縮グラフィクスを構成する画素の揮度に、透過率α1を乗じる。【０２８４】
加算部１５gは、1−α1乗算部１５eにより画素毎に透過率1-α1が乗じられた非圧縮デジタルピクチャと、α1乗算部１５fにより画素毎に透過率α1が乗じられた非圧縮グラフィクスとを合成して、合成ピクチャを得る。【０２８５】
1−α2乗算部１５hは、加算部１５gにより合成がなされたデジタルピクチャを構成する画素の揮度に、透過率1-α2を乗じる。【０２８６】
α2乗算部１５iは、Interactive Graphicsデコーダ１１ｃに格納されている非圧縮グラフィクスを構成する画素の揮度に、透過率α2を乗じる。【０２８７】
加算部１５jは、1−α2乗算部１５hにより画素毎に透過率1-α2が乗じられた非圧縮デジタルピクチャと、α2乗算部１５iにより画素毎に透過率α2が乗じられた非圧縮グラフィクスとを合成して、合成ピクチャを得る。【０２８８】
HDMI送受信部１６は、HDMI（HDMI:High Definition Multimedia Interface）を介して接続された他の機器から、その機器に関する情報を受信とすると共に、加算部１５jの合成により得られたデジタル非圧縮のビデオを、ミキサー９aにより合成がなされたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。【０２８９】
以上に述べた、textSTストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、Out＿of＿MUX＿Secondaryビデオストリーム、PGストリーム、IGストリームが、追加コンテンツ格納領域における連続データ領域に記録されるので、プライマリオーディオストリームと、セカンダリオーディオストリームとのミキシング出力や、ピクチャインピクチャ再生が、途切れることなく、スムーズに再生されることになる。【０２９０】
(第７実施形態)
第１実施形態ではAVストリームを、アロケーションユニットに記録することにしたが、本実施形態では、AVストリームを複数のエクステントに分割して記録する改良である。この場合、エクステント一個当たりの最小データ長を検討せねばならない。この最小データ長を“Ｓa”とする。AVストリームは、本来BD-ROMに記録されて再生装置に供給されるものであるため、BD-ROMのような光ディスクからの再生時に、再生の途切れがないことが保証されるのであれば、リムーバブルメディアからの読み出し時においても、AV再生の途切れがないことが保証されると考えられる。【０２９１】
リムーバブルメディアから読み出されたTSパケットは、リードバッファに格納された上、デコーダに出力されるが、リードバッファへの入力が、Rudというビットレートで行われ、ECCブロックにおける論理ブロック数をSeccとした場合、
Ｔoverheadは、
Ｔoverhead≦(2×Secc×8)／Rud＝20m秒
という計算で与えられる。【０２９２】
リムーバブルメディアから読み出されたTSパケットは、Sourceパケットの状態でリードバッファに格納された上、TS＿Recording＿rateという転送レートで、デコーダに供給される。【０２９３】
TS＿Recording＿rateという転送レートでの、デコーダへのTSパケット供給が跡絶えさせないためには、Ｔjumpの間、リードバッファからデコーダへのTSパケット出力が継続している必要がある。Ｔjumpとは、リムーバブルメディアからの読出先を連続データ領域から別の連続データ領域に切り替えるために必要となる時間である。【０２９４】
リードバッファからの出力は、TSパケットではなく、Sourceパケットの状態でなされるので、TSパケットのSourceパケットとのサイズ比を192/188とした場合、Ｔjumpの間、(192/188×TS＿Recording＿rate)という転送レートにより、リードバッファからのSourceパケット出力が継続している必要がある。【０２９５】
従って、リードバッファが、アンダーフローしないためのバッファ蓄積量は、
Ｂoccupied≧(Tjump/1000×8)×((192/188)×TS＿Recording＿rate)
となる。【０２９６】
リードバッファへの入力レートはRud、リードバッファからの出力レートはTS＿Recording＿rate×(192/188)であるので、リードバッファへの蓄積レートは、入力レート−出力レートの計算で与えられ、(Rud−TS＿Recording＿rate×(192/188))になる。【０２９７】
このＢoccupiedを、リードバッファに蓄積するのに要する時間Txは、
Tx＝Ｂoccupied/(Rud−TS＿Recording＿rate×(192/188))
になる。【０２９８】
リムーバブルメディアからの読み出しには、この時間TxにおいてRudでのTSパケット入力を継続する必要があるので、AVストリームを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Ｓaは、Ｓa＝Rud×Tx＝Rud×Ｂoccupied/(Rud−TS＿Recording＿rate×(192/188))
≧Rud×(Tjump/1000×8)×((192/188)×TS＿Recording＿rate)
/(Rud−TS＿Recording＿rate×(192/188))
≧(Rud×Tjump/1000×8)×
×TS＿Recording＿rate×192/(Rud×188−TS＿Recording＿rate×192)
になる。よってＳa≧
(Tjump×Rud/1000×8)×（TS＿Recording＿rate×192/(Rud×188−TS＿Recording＿rate×192))
になる。【０２９９】
AVストリームを構成する各ファイルは、デコーダのアンダーフローをおこさないように算出されたＳa以上のデータ長をもつことにより、AVストリームを構成する各ファイルのエクステントが、リムーバブルメディア上において離散的に位置されたとしても、再生時においてデコーダへのTSパケット供給が途絶えさせることなく、連続的に読み出されることになる。リムーバブルメディアにおいて、Ｓaにあたる連続記録領域を確保することができれば、AV再生の途切れがないことは保証される。【０３００】
以上のように本実施形態によれば、AV再生の途切れがないことが保証された最小記録長に分割して、AVストリームを記録したとしても、リムーバブルメディアからのAVストリームの再生を途切れさせることはない。【０３０１】
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。【０３０２】
（DiscIDの上位に存在する“0”の桁の扱い)
MHP(Multimedia Home Platform)上で動作するアプリケーションは、MHP固有のIDを使用する際、上位桁の“0”を省略する。DiscIDでも、上位桁の“0”については、省略することが望ましいので、本実施形態におけるJava(TM)アプリケーションは、そのような、上位桁の“0”を省略したDiscIDを用いて、仮想パッケージの構築を命じてもよい。【０３０３】
そのように、上位桁の0を省略する場合、リムーバブルメディアにおけるディレクトリ構成は、図４０に示すものとなる。【０３０４】
図４０は、上位桁の0を省略する場合のディレクトリ構成を示す図である。OrganizationIDディレクトリ, DiscIDディレクトリは、index.bdmvに示される32ビットのOrganizationID, 128ビットのDiscIDを１６進表記で表したディレクトリ名となる。【０３０５】
これらのうちDiscIDは先頭の０を省略することにより、全体のパス長を短くしている。ただし、先頭の８文字が全て０になる場合、ディレクトリ名は“０”1文字となる。また、DiscIDディレクトリにおいて、先頭ではなく、途中に０が続く場合は、省略してはならない。すなわち、DiscID=00000000123456781234567812345678の場合、DiscIDのディレクトリ構成は0/12345678/12345678/12345678と先頭の０を省略可能であるが、DiscID=12345678000000001234567812345678の場合は、省略せずに12345678/00000000/12345678/12345678となる。省略の対象は、DiscIDに限らず、CertIDディレクトリも同様に先頭の０を省略してもよい。【０３０６】
(連続データ領域のバリエーション)
連続データ領域を構成する記録単位の一例として、各実施形態では、SDメモリカードにおける４Ｍバイトのアロケーションユニットを題材に選んだが、AVストリーム形式の追加コンテンツの再生品位を保証する記録単位であれば、アロケーションユニット以外の記録単位であってもよい。例えば、DVD-RAM、BD-RE等のゾーンCLV上の光ディスクにおいて、各ゾーン領域内の連続した２Ｍバイトのセクタ群を、連続データ領域として採用してもよい。また、ECCブロックを構成するようなセクタ群を連続データ領域として採用してもよい。更に４Ｍバイトではなく、３Ｍバイト、２Ｍバイトの記録単位を、連続データ領域の記録単位として採用してもよい。【０３０７】
更に連続データ領域は、BUDA ディレクトリにおける追加コンテンツ格納領域に存在するとしたが、絶対ファイルパスにて特定されるのならば、物理的に分散配置されても構わない。同様に通常データ領域も、BUDA ディレクトリにおける追加コンテンツ格納領域に存在するとしたが、絶対ファイルパスにて特定されるのならば、物理的に分散配置されても構わない。【０３０８】
(取得手段)
課題解決手段における取得手段は、ネットワークインターフェイス２１に対応するものとして説明したが、ネットワークを介して追加コンテンツを取得するというのは必須ではなく、USBコネクタ、HDMIコネクタ接続を介して追加コンテンツを取得してもよいし、他の記録媒体からのコピー処理によって追加コンテンツを取得してもよい。【０３０９】
(第２記録媒体の種類)
第２記録媒体としては、SDメモリカードを説明の題材に選んだが、HDD等、ロングファイル名をサポートするようなビルドインメディアに、８.３形式のファイルシステムを採用することで、ビルドインメディアを、第２記録媒体に用いてもよい。【０３１０】
この場合、BD-Jアプリケーションは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下であるファイルパスを用いて第２記録媒体であるビルドインメディアをアクセスすることになる。【０３１１】
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava（TM）を利用したが、Java（TM）ではなく、UNIX（TM） OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。【０３１２】
(コンテンツの置き場所)
上述の実施の形態ではBD-ROMを再生する再生装置について説明をしたが、書き込み可能な光記録媒体に上述の実施の形態にて説明をしたBD-ROM上の必要なデータが記録されていた場合においても上述と同様の効果を奏することはもちろんのことである。【０３１３】
(再生装置１０２の任意的な構成要素)
任意的要素として、再生装置１０２にレンダリングエンジンを設けてもよい。レンダリングエンジンは、Java(TM)2D，OPEN-GLといった基盤ソフトウェアを備え、BD-Jアプリケーションからの指示に従ってコンピュ-タ・グラフィックスの描画を行い、描画されたコンピュ-タ・グラフィックスをプレーンメモリに出力する。この描画を高速に行うには、任意的なハードウェア要素として、再生装置１０２に、グラフィクスアクセレータを追加するのが望ましい。他にも、浮動小数点演算を行うコプロセッサ(Floating Pointed Coprocessor)が実装されていてもよい。【０３１４】
(BD-Jアプリケーション供給の仕方)
上述したような追加コンテンツの書き込みは、映像再生と、BD-Jアプリケーションの実行を関連付けさせて視聴を行なわせる機器であれば、一般のどのような機器に対しても適用可能である。例えば、BD-Jアプリケーションが、放送波やネットワークストリームに組み込まれて、供給されるような再生装置１０２においても、適用が可能となる。【０３１５】
(プログラム記述言語の適用範囲)
上記実施形態では、オブジェクト指向プログラミング言語としてJava(TM)言語を利用したが、Java(TM)ではなく、UNIX(TM) OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。【０３１６】
（BD-ROMコンテンツ）
BD-ROMに記録されるBD-Jアプリケーションは、映画作品を構成するものであるとしたが、ローカルストレージにインストールして利用されるアプリケーションではなく、BD-ROMに記録された状態で利用されるアプリケーションであるなら、これ以外のものを構成するものであってもよい。例えば、ゲームソフトを構成するアプリケーションであってもよい。また、本実施形態ではディスク媒体として、BD-ROMを題材に選んだが、可搬体であり、著作権保護がなされた記録媒体であるなら、他の記録媒体を採用してもよい。【０３１７】
またAVストリーム、プレイリスト情報は、プリレコーディング技術にて、BD-ROMに記録され、ユーザに供給されることを前提としたが、リアルタイムレコーディング技術にてBD-REに記録され、ユーザに供給されるものであってもよい。【０３１８】
この場合AVストリームは、アナログ入力信号を記録装置がリアルタイムエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。【０３１９】
リアルタイムレコーディングにあたって記録装置は、AVストリームの記録と共に、メモリ上でClip情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したClip情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたClip情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したClip情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、Clip情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。【０３２０】
(システムLSI化)
再生装置１０２を構成するハードウェアのうち、機構的な構成要素(BDドライブ２０、ローカルストレージ２２)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とする部分を、1つのシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。【０３２１】
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。【０３２２】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。【０３２３】
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置１０２の中核としての役割を果たす。【０３２４】
かかるシステムLSIは、再生装置１０２は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。【０３２５】
エレメンタバッファ７やビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。【０３２６】
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。【０３２７】
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。【０３２８】
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。【０３２９】
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。【０３３０】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。【０３３１】
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。【０３３２】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。【０３３３】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。【０３３４】
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。【０３３５】
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。【０３３６】
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置１０２の内部構成図を基に作ることができる。【０３３７】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。【０３３８】
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。【０３３９】
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVD Video-Recording規格ではVOBと呼ばれる。【０３４０】
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVD Video-Recording規格ではTime Mapと呼ばれる。【０３４１】
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。
【産業上の利用可能性】
【０３４２】
本発明を構成する再生装置は、製造産業において経営的に、また継続的及び反復的に製造し、販売することができる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用できる。
【図１】
2008149501.tif 000003
【図２】
2008149501.tif 000004
【図３】
2008149501.tif 000005
【図４】
2008149501.tif 000006
【図５】
2008149501.tif 000007
【図６】
2008149501.tif 000008
【図７】
2008149501.tif 000009
【図８】
2008149501.tif 000010
【図９】
2008149501.tif 000011
【図１０】
2008149501.tif 000012
【図１１】
2008149501.tif 000013
【図１２】
2008149501.tif 000014
【図１３】
2008149501.tif 000015
【図１４】
2008149501.tif 000016
【図１５】
2008149501.tif 000017
【図１６】
2008149501.tif 000018
【図１７】
2008149501.tif 000019
【図１８】
2008149501.tif 000020
【図１９】
2008149501.tif 000021
【図２０】
2008149501.tif 000022
【図２１】
2008149501.tif 000023
【図２２】
2008149501.tif 000024
【図２３】
2008149501.tif 000025
【図２４】
2008149501.tif 000026
【図２５】
2008149501.tif 000027
【図２６】
2008149501.tif 000028
【図２７】
2008149501.tif 000029
【図２８】
2008149501.tif 000030
【図２９】
2008149501.tif 000031
【図３０】
2008149501.tif 000032
【図３１】
2008149501.tif 000033
【図３２】
2008149501.tif 000034
【図３３】
2008149501.tif 000035
【図３４】
2008149501.tif 000036
【図３５】
2008149501.tif 000037
【図３６】
2008149501.tif 000038
【図３７】
2008149501.tif 000039
【図３８】
2008149501.tif 000040
【図３９】
2008149501.tif 000041
【図４０】
2008149501.tif 000042
【手続補正書】
【提出日】平成20年12月26日(2008.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想パッケージを再生する再生装置であって、
第１記録媒体が装填された際、アプリケーションからの要求に従い、前記第１記録媒体に対応する追加コンテンツを装置外部から取得する取得手段と、
取得された前記追加コンテンツを、前記アプリケーションからの要求に従い、複数の空きブロックを備える第２記録媒体に書き込む制御手段と、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築する構築手段とを備え、
前記アプリケーションによる追加コンテンツの書込要求は、
前記第２記録媒体への書き込みに用いられるファイルパスを、前記制御手段に引き渡すことでなされ、
前記第２記録媒体への書き込みに用いられるファイルパスは、ファイル名と、拡張子との指定を含み、
前記制御手段は、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、第２記録媒体に書き込むべき追加コンテンツに対応するファイルの拡張子が、規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別し、
書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とする再生装置。
【請求項２】
前記第１記録媒体には、証明書の識別子、組織の識別子、媒体の識別子が付加されており、
前記連続領域は、第２記録媒体における追加コンテンツ格納領域に配置され、追加コンテンツ格納領域は、第１記録媒体の証明書識別子と、組織識別子と、媒体識別子とを含むファイルパスによって特定される領域であることを特徴とする請求項１記載の再生装置。
【請求項３】
前記第１の記録媒体は、ディレクトリ名、及び、ファイル名が２５５文字以下に制限されたファイルシステムを有し、
前記第２記録媒体への書き込みに用いられるファイルパスは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下である８.３形式のファイルシステムにおけるファイル名と、拡張子との指定を含み、
前記制御手段は、
前記追加コンテンツが格納されるべきファイルの拡張子が、３文字以下に制限された規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別する
ことを特徴とする請求項２記載の再生装置。
【請求項４】
前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記連続領域を構成するに足る、連続した空きブロックが存在するか否かのチェックを行い、
前記連続領域は、前記チェックにより存在することが明らかになった、連続する複数の空きブロックから構成される、請求項３記載の再生装置。
【請求項５】
前記連続領域にAVストリームである追加コンテンツを記録した後、連続領域に余剰な未記録部分が存在したとしても、未記録部分には、データを記録しない
ことを特徴とする請求項４記載の再生装置。
【請求項６】
前記制御手段による追加コンテンツの書き込みには、追記と、上書きとがあり、
前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記アプリケーションから要求された書き込みが追記であるか、上書きであるかの判定を行い、
前記追記は、
既に第２記録媒体に記録されている記録済みデータをメモリに読み出した上で、第２記録媒体から記録済みデータを消去する処理と、メモリに読み出された記録済みデータと、書き込むべき追加コンテンツとを一体にした上で、連続領域に書き込む処理とによってなされ、
前記上書きは、
第２記録媒体に既に記録されている記録済みデータを消去して、書き込むべき追加コンテンツを連続領域に書き込む処理によってなされる請求項３記載の再生装置。
【請求項７】
前記第２記録媒体には、
証明書識別子に対応するディレクトリ、組織識別子に対応するディレクトリ、媒体識別子に対応するディレクトリセットが存在し、
前記組織識別子に対応するディレクトリは、証明書識別子に対応するディレクトリの下位に存在し、
前記媒体識別子に対応するディレクトリセットは、組織識別子に対応するディレクトリの下位に存在し、
前記媒体識別子に対応するディレクトリセットは、階層化された複数のサブディレクトリからなり、
前記追加コンテンツ格納領域は、  
階層化された複数のサブディレクトリのうち、最下層にあたるサブディレクトリに該当する、請求項３記載の再生装置。
【請求項８】
前記媒体識別子に対応するディレクトリセットは、４つのサブディレクトリに階層化されており、
前記第１記録媒体に付加された媒体識別子は、最大３２文字の文字列であり、
前記媒体識別子に対応するディレクトリセットを構成するサブディレクトリのそれぞれには、媒体識別子を構成する最大３２文字の文字列を分割することで得られた、８文字以下のディレクトリ名が付加されている、請求項３記載の再生装置。
【請求項９】
前記第２記録媒体へと書き込むべき追加コンテンツがAVストリームであり、前記第２記録媒体の連続領域における空き容量が不足している場合、
前記第２記録媒体の連続していない空きのブロックに、前記AVストリームを書込み、前記AVストリームの記録が正しく成功しなかったことをユーザに報知する、ことを特徴とする請求項１記載の再生装置。
【請求項１０】
前記第２記録媒体へと書き込むべき追加コンテンツがAVストリームであり、前記第２記録媒体の連続領域及び連続していない空きブロックの双方における空き容量が不足している場合、
前記書込みに失敗したことを前記アプリケーションに通知し、デジタルストリームの記録に失敗したことをユーザに報知する
ことを特徴とする請求項１記載の再生装置。
【請求項１１】
仮想パッケージを構築するための追加コンテンツを記録媒体に記録する記録方法であって、
第１記録媒体に対応する追加コンテンツを装置外部から取得する取得ステップと、
取得された前記追加コンテンツを、アプリケーションからの要求に従い、複数の空きブロックを備える第２記録媒体に書き込む制御ステップと、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで仮想パッケージを構築する構築ステップとを有し、
前記アプリケーションからの追加コンテンツの書込要求は、
前記第２記録媒体への書き込みに用いられるファイルパスを、制御ステップに引き渡すことでなされ、
前記第２記録媒体への書き込みに用いられるファイルパスは、ファイル名と、拡張子との指定を含み、
前記制御ステップは、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、前記第２記録媒体に書き込むべき追加コンテンツに対応するファイルの拡張子が、規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別して、
書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とする記録方法。
【請求項１２】
仮想パッケージを構築するための追加コンテンツを記録媒体に記録する処理をコンピュータに実行させるプログラムであって、
第１記録媒体に対応する追加コンテンツを装置外部から取得する取得ステップと、
取得された前記追加コンテンツを、アプリケーションからの要求に従い、複数のあ６を備える第２記録媒体に書き込む制御ステップと、
前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで仮想パッケージを構築する構築ステップとをコンピュータに実行させ、
前記アプリケーションからの追加コンテンツの書込要求は、
前記第２記録媒体への書き込みに用いられるファイルパスを、制御ステップに引き渡すことでなされ、
前記追加コンテンツ格納領域の特定に用いられるファイルパスは、ファイル名と、拡張子との指定を含み、
前記制御ステップは、
前記追加コンテンツの書き込みがアプリケーションから要求された場合、前記第２記録媒体に書き込むべき追加コンテンツに対応するファイルの拡張子が、規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別して、
書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、
前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込む
ことを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想パッケージの技術分野に属する発明である。
【背景技術】
【０００２】
仮想パッケージとは、BD-ROM等のリードオンリー型の記録媒体に記録されているデータと、半導体メモリカード、ハードディスク等のリライタブル型の記録媒体に記録されているデータとを動的に組み合わせて、仮想的なパッケージを構築することにより、リードオンリー型記録媒体の内容拡張を図る技術である。このような技術では、書き換え可能なハードディスクに記録しているデータを更新することで、BD-ROMを頒布した後も、作品内容の変更の余地を残すことができる。例えば、映画作品のプロバイダは、作品本編を記録したBD-ROMを頒布した後も、公開前の他の作品の予告編デジタルストリームをネットワークを介して提供することで、BD-ROMの頒布時期にかかわらず、ユーザに対して常に最新の作品を宣伝することが出来る。
【０００３】
仮想パッケージについての先行技術としては、以下の特許文献１、２、３に記載されているものがある。
【特許文献１】特開２００６-１０９４９４号公報
【特許文献２】特開２００７-２０２１１号公報
【特許文献３】特開２００６-３３０６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、仮想パッケージ構築のための追加コンテンツの受け皿として、長きにわたりリライタブルな記録媒体を使用していると、リライタブルな記録媒体には多くの追加コンテンツが記録される。追加コンテンツは、その陳腐化に伴い、削除されるという運命を辿る。リライタブルな記録媒体の容量は、制限されていることが多く、新たな追加コンテンツの記録にあたっては、削除により得られた空き領域を記録先とするのが望ましい。このように、リライタブルな記録媒体への記録にあたっては、削除によって得られた空き領域を書込先に選ぶので、フラグメンテーションが発生する。ここで仮想パッケージ構築のための追加コンテンツには、サイズが大きいAVストリーム形式のものや、小サイズな非AVストリーム形式のものが混在している。これらのうち、AVストリーム形式の追加コンテンツが分割されて、個々の分割部分が、リライタブルな記録媒体上の複数の領域に、バラバラに配置された場合、AVストリームの読み出しには、バラバラに配置された分割部分を読み出して、元のAVストリームを復元にする必要がある。バラバラに配置された分割部分の読出しには、リライタブル型の記録媒体からデータを読み出すためのバースト的な転送を、複数回に分けて実行にする必要がある。一般的にバースト転送の実行には、読出先アドレスの設定や、コマンド発行等のオーバーヘッドが発生する。ここで、AVストリームがバラバラに記録されたため、AVストリームの読み出しのためのバースト転送を、複数回に分けて実行しようとすると、この読出先アドレスの設定回数が増えることになり、AVストリームの読み出しにあたってのオーバーヘッドが増大するため、オーバーヘッドの影響が無視できないものとなる。そうするとAVストリームの読み取り性能が低下し、再生映像がスムーズに流れない（映像がカクツク）などの支障が出てしまう。
【０００５】
ここで、フラグメンテーション発生を防止するために追加コンテンツを書き込むにあたっては、４Ｍバイト等、ある大きさの容量をもった連続領域の確保を行い、確保された連続領域に追加コンテンツを書き込むことも考えられる。ところが、仮想パッケージ構築のため、必要となる追加コンテンツには、AVストリームのものよりも非AVストリームの追加コンテンツの方が圧倒的に数が多く、追加コンテンツ記録のために連続領域を割り当てても実際に使われる領域が一部だけとなり、利用されない未使用の領域が増え、ストレージの容量を有効活用できないという課題がある。
【０００６】
本発明の目的は、仮想パッケージの構成要素に、AVストリーム形式の追加コンテンツ、非AVストリーム形式の追加コンテンツが混在している場合においても、AVストリーム形式の追加コンテンツの読み取り性能低下を防ぎつつ、ストレージ容量の有効利用を図ることができる再生装置を提供することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、再生装置は、仮想パッケージを再生する再生装置であって、第１記録媒体が装填された際、アプリケーションからの要求に従い、前記第１記録媒体に対応する追加コンテンツを装置外部から取得する取得手段と、取得された前記追加コンテンツを、前記アプリケーションからの要求に従い、複数の空きブロックを備える第２記録媒体に書き込む制御手段と、前記第１記録媒体に記録されたコンテンツと、前記第２記録媒体に記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築する構築手段とを備え、前記アプリケーションによる追加コンテンツの書込要求は、前記第２記録媒体への書き込みに用いられるファイルパスを、前記制御手段に引き渡すことでなされ、前記第２記録媒体への書き込みに用いられるファイルパスは、ファイル名と、拡張子との指定を含み、前記制御手段は、前記追加コンテンツの書き込みがアプリケーションから要求された場合、第２記録媒体に書き込むべき追加コンテンツに対応するファイルの拡張子が、規定の文字列であるかどうかを判定することにより、前記書き込みが要求された追加コンテンツがAVストリームであるかどうかを判別し、書き込みを行うべき追加コンテンツがAVストリームであれば、前記第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込み、前記追加コンテンツがAVストリームでなければ、前記第２記録媒体における連続していない複数の空きブロックの何れかに、当該追加コンテンツを書き込むことを特徴としている。
【０００８】
（１.課題解決手段による効果）
上記再生装置によると、追加コンテンツの書き込みがアプリケーションから要求された場合、書き込みを行うべき追加コンテンツがAVストリームであれば、第２記録媒体における連続した複数の空きブロックから構成される連続領域に、当該追加コンテンツを書き込むので、AVストリームは連続領域にひとまとまりになるように、書き込まれてゆき、非AVストリームの追加コンテンツは、空きのブロックの何処かに書き込まれることになる。
【０００９】
AVストリームは、連続領域にひとまとまりになるように記録されるので、一回のバースト的な転送によって、AVストリームをリライタブル型の記録媒体からメモリに読み出すことができる。こうすることで、一回のバースト的な転送によってAVストリームを読み出すようにしたので、バースト転送に伴うオーバヘッドの影響を最も小さくすることができ、書込レートが遅い半導体メモリカードやその他、低速な磁気記録媒体が第２記録媒体として採用された場合であっても、採用された媒体の種別によって、AV再生の品位に差異が生じることはない。
【００１０】
また非AVストリームの追加コンテンツは、記録済みファイルの削除によって生じた何処かの領域に、書き込んでゆけばよいので、非AVストリームの追加コンテンツについてはフラグメンテーションは発生が容認されることになる。こうすることで、第２記録媒体の容量効率を極端に低下させることはない。
仮想パッケージ再生にあたっての、AV再生の品位を維持することができるので、コンテンツオーサは、仮想パッケージで再生されるようなコンテンツを、積極的に配布することができる。
【００１１】
（２.連続領域の特定）
更に、仮想パッケージ構築にあたって、第２記録媒体とペアとなる第１記録媒体毎に、連続領域は確保されることになる。連続領域は、ペアとなる第１記録媒体毎にまとめられるので、AVストリームの記録・削除が繰り返されることによるフラグメンテーションの発生を局所的にすることができる。AVストリームの記録に、連続領域を使用することによる記録効率の低下は、局所的なものとなるので、第２記録媒体全体としては、記録効率を一定の水準に維持することができる。
【００１２】
また追加コンテンツ格納領域は、証明書の識別子、組織の識別子、媒体の識別子を用いたファイルパスにて特定されるので、AVストリームを供した組織や、AVストリームの認証に用いる証明書の違い毎に、連続領域を設けることができる。
第２記録媒体に記録されているファイルが、どの第１記録媒体に対応しているかは、第２記録媒体における連続領域に対するファイルパスを参照することで、判別することができる。従って、たとえ様々な第１記録媒体が再生装置に装填されたとしても、第２記録媒体におけるファイルパスに対応する第１記録媒体が、再生装置に装填されている場合のみ、ファイルパスを用いたファイルアクセスを実現するよう制限を課すことができる。
【００１３】
(３.書き込むべき追加コンテンツの判別の仕方)
加えて、アプリケーションが、短縮したファイル名や拡張子を付与した上でファイルを第２記録媒体に記録しようとする場合でも、制御手段側では、その短縮されたファイル名や拡張子のうち拡張子のみが、規定の文字列かどうかを判定することで、連続領域に書き込むべきAVストリームかどうかを判別することができる。自由なファイル名や拡張子の付与をアプリケーションに認めつつも、AVストリームについては、“規定の文字列を拡張子として使用する”との約束事を守れば、正しく連続領域に書き込むことが可能になる。
【００１４】
書き込みにあたっての拡張子の付与さえ正確であれば、AVストリームは連続領域に書き込まれることになり、第２記録媒体として採用される記録媒体が高速なハードディスクであっても、低速な半導体メモリカードであっても、アプリケーションは、第２記録媒体の種別に応じて引数を変化させる必要がないので、アプリケーションにおける処理手順の記載は、より単純なものとなり、アプリケーションの開発者に、余計な負担をかけさせることはない。
(４.連続領域の確保)
連続領域における利用に関しては、以下のようにするのが望ましい。つまり前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記連続領域を構成するに足る、連続した空きブロックが存在するか否かのチェックを行い、前記連続領域は、前記チェックにより存在することが明らかになった、連続する複数の空きブロックから構成されることが望ましい。かかる確保は、AVストリームの書き込みに先立ち、８.３形式におけるファイルシステムの管理情報を参照してなされるので、第２記録媒体が半導体メモリカードである場合、FAT(ファイルアロケーションシステム)を参照した半導体メモリカードに対するアクセス手順と同様の手順を踏まえることにより、AVストリーム書き込みのための連続領域を確保することができる。
(５.連続領域の利用)
連続領域における利用に関しては、以下のようにするのが望ましい。つまり、前記連続領域にAVストリームである追加コンテンツを記録した後、連続領域に余剰な未記録部分が存在したとしても、未記録部分には、データを記録しないことが望ましい。
【００１５】
既にAVストリームが記録された領域については、他のデータが書き込まれることはないので、連続領域の利用は排他的なものとなる。こうすることで、連続領域に追加コンテンツを書き込む処理や空き領域に解放する処理は、連続領域毎になされることになり、「1つの連続領域に対しては1つのAVストリームのみ記録される」との原則を徹底することができるので、AVストリームを第２記録媒体に書き込むにあたってのフラグメンテーションの発生を避けることができる。
（６.書き込みレート）
ここで半導体メモリカードを第２記録媒体として採用した場合、半導体メモリカードでは、既にデータが書かれているブロックに対しては、一旦書込先に記録されているデータを消去して、白紙の状態に戻してからデータ書き込みを行わねばならない。多くの半導体メモリカードに内蔵されているNAND型と呼ばれるEEPROMにあっては、ブロックを白紙の状態に戻すという作業を複数のブロックに対して一括して行う必要があるので、そのような白紙の状態に戻すという作業が頻繁になると、AVストリームを書き込むための書込レートが著しく低下する。そこで、前記制御手段による追加コンテンツの書き込みには、追記と、上書きとがあり、前記制御手段は、前記追加コンテンツを第２記録媒体に書き込むにあたって、前記８.３形式のファイルシステムにおける管理情報を参照することにより、前記アプリケーションから要求された書き込みが追記であるか、上書きであるかの判定を行い、前記追記は、既に第２記録媒体に記録されている記録済みデータをメモリに読み出した上で、第２記録媒体から記録済みデータを消去する処理と、メモリに読み出された記録済みデータと、書き込むべき追加コンテンツとを一体にした上で、連続領域に書き込む処理とによってなされ、前記上書きは、第２記録媒体に既に記録されている記録済みデータを消去して、書き込むべき追加コンテンツを連続領域に書き込む処理によってなされることが望ましい。
【００１６】
連続領域に対する上書きや追記にあたっては、連続する複数のブロック毎に記録済みデータの消去を行うので、NAND型と呼ばれるEEPROMにあっては、ブロックを白紙の状態に戻すという作業を複数のブロックに対して一括してなされることになる。こうすることで、AVストリーム書き込むための書込レートの低下を招くことはない。
(７.ファイルパスの形式)
アプリケーションが、追加コンテンツの書き込みにあたって用いるファイルパスは、以下のものが望ましい。つまり、前記第２記録媒体には、証明書識別子に対応するディレクトリ、組織識別子に対応するディレクトリ、媒体識別子に対応するディレクトリセットが存在し、前記組織識別子に対応するディレクトリは、証明書識別子に対応するディレクトリの下位に存在し、前記媒体識別子に対応するディレクトリセットは、組織識別子に対応するディレクトリの下位に存在し、前記媒体識別子に対応するディレクトリセットは、階層化された複数のサブディレクトリからなり、前記追加コンテンツ格納領域は、  階層化された複数のサブディレクトリのうち、最下層にあたるサブディレクトリに該当する、ことが望ましい。
【００１７】
仮想パッケージの構築にあたって、第１記録媒体に付加された証明書の識別子、組織の識別子、媒体の識別子を用いた認証を実現する場合であっても、これらの識別子と、厳密に対応をとる形で、ファイルは第２記録媒体に記録されることになる。そのため、たとえユーザが多くの第１記録媒体を所持していて、それらの第１記録媒体が頻繁に差し替えられたとしても、正しい第１記録媒体が再生装置に装填されている場合のみ、第１記録媒体のファイルパスを用いたファイルアクセスが実現されて、仮想パッケージが構築されることになる。
(８.連続領域の所在)
連続領域の所在としては、以下に配置するのが望ましい。つまり、前記媒体識別子に対応するディレクトリセットは、４つのサブディレクトリに階層化されており、前記第１記録媒体に付加された媒体識別子は、最大３２文字の文字列であり、前記媒体識別子に対応するディレクトリセットを構成するサブディレクトリのそれぞれには、媒体識別子を構成する最大３２文字の文字列を分割することで得られた、８文字以下のディレクトリ名が付加されている、ことが望ましい。
【００１８】
第１記録媒体固有の媒体識別子のビット長が、長いものであったとしても、かかる識別子を構成する文字のうち、意味のあるものを省略することなく、第１記録媒体固有の媒体識別子と、第２記録媒体上のディレクトリとの対応を図るので、第２記録媒体におけるディレクトリは、第１記録媒体固有の媒体識別子と厳密に対応がとれたものとなる。
【発明を実施するための最良の形態】
【００１９】
（第１実施形態）
以下本発明の実施の形態について、図面を参照しながら説明する。
以降、再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、再生装置１０２の、使用行為についての形態を示す図である。本図に示すように、再生装置１０２は、第１記録媒体の一例であるBD-ROM１００、WWWサーバ１０１、テレビ１０３、第２の記録媒体の一例であるリムーバブルメディア１０４と共にユーザによる使用に供される。
【００２０】
BD-ROM１００は、映画作品が記録された記録媒体である。
WWWサーバ１０１は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM１００に記録された映画作品の部分的な置き換えや追加を実現するコンテンツ(追加コンテンツ)を、インターネット等を介してユーザに供給する。
再生装置１０２は、テレビ１０３と共に、ホームシアターシステムを構築して、BD-ROM１００を再生する。
【００２１】
テレビ１０３は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
リムーバブルメディア１０４は、再生装置に装填され、映画配給者のWWWサーバ１０１から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、リムーバブルメディア１０４に格納されたコンテンツと、BD-ROM１００に記録されたコンテンツとを組み合わせて、BD-ROM１００のコンテンツを拡張/更新をすることができる。かかるリムーバブルメディア１０４を装填するという目的のため、再生装置１０２には、SDメモリカード、メモリスティック、コンパクトフラッシュ(登録商標)、スマートメディア、マルチメディアカード等のリムーバブルメディア１０４を挿入する挿入口を備える。
【００２２】
以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体について説明する。本発明に係る再生装置により、再生されるのは、光記録媒体であるBD-ROM１００である。
図２は、BD-ROM（以降、「BD」と称する場合もある）の構成を示した図である。本図の第１段目に、BD-ROM１００を示し、第２段目は、BD-ROMの内周から外周に向けて螺旋状に形成された記録領域を、横方向に引き伸ばして直線状に描いている。この第２段目に示すように、記録領域は、内周の「リード・イン」と、外周の「リード・アウト」と、「論理アドレス空間」とを有している。また、リード・インの内側にはBCA（BurstCutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
【００２３】
「論理アドレス空間」は、ファイルシステムのための領域管理情報を先頭にして、各種データが記録されている。“ファイルシステム”とは、UDFやISO９６６０などのことであり、本実施形態では、Extention2.3形式のファイルシステムを採用する。このファイルシステムを介すれば、論理アドレス空間に記録されているデータをディレクトリ、ファイル構造を使って読み出すことができる。このファイルシステムにおけるファイルの配置位置は、２５５文字以下のディレクトリ名と、２５５文字以下のファイル名とを組合せたファイルの経路情報(ファイルパスと呼ばれる)で特定される。
【００２４】
本図の第３段目は、第２段目におけるファイルシステムを前提にして構築された、ディレクトリ構成・ファイル構成を示す。本図に示すように、BD-ROMのルートディレクトリ（ROOT）直下には、bd.certファイルと、BDMVディレクトリとが置かれている。
bd.cert（ファイル名固定）は仮想パッケージのために追加されたコンテンツをBD-ROM上のデータとマージする際に、署名検証に用いられる証明書（以下、マージ証明書）である。マージ証明書とは、BD-ROMにおけるマージ管理情報を格納したファイル(マージ管理情報ファイル)の認証に利用する証明書であり、プロバイダが公開する公開鍵を含む。マージ証明書のファイル形式は、例えば、X.５０９を利用することができる。X.５０９の詳細な仕様は、国際電信電話諮問委員会より発行されている、CCITTRecommendation X.509 (1988), “The Directory - Authentication Framework“に記載されている。本図における引き出し線f1は、bd.certファイルの用途を示している。この引き出し線に示すように、bd.certファイルは、証明書固有のID(CertIDと呼ばれる)を導きだすという用途に用いられる。
【００２５】
BDMVディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、「PLAYLISTディレクトリ」、「CLIPINFディレクトリ」、「STREAMディレクトリ」、「BDJOディレクトリ」、「JARディレクトリ」と呼ばれる５つのサブディレクトリが存在し、BDMVディレクトリには、index.bdmv，MovieObject.bdmvの２種類のファイルが配置されている。
【００２６】
STREAMディレクトリは、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子M2TSが付与されたファイル(xxxxx.m2ts[“xxxxx”は可変、拡張子”m2ts”は固定])が存在する。
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(xxxxx.mpls[“xxxxx”は可変、拡張子”mpls”は固定])が存在する。
【００２７】
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(xxxxx.clpi [“xxxxx”は可変、拡張子”clpi”は固定])が存在する。
JARディレクトリには、拡張子jarが付与されたファイル(xxxxx.jar[“xxxxx”は可変、拡張子”jar”は固定])が存在する。
BDJOディレクトリには、拡張子bdjoが付与されたファイル(xxxxx.bdjo[“xxxxx”は可変、拡張子”bdjo”は固定])が存在する。
【００２８】
＜拡張子”m2ts”が付与されたファイル＞
拡張子”m2ts”が付与されたファイルは、M P E G - T S ( T r a n s p o r t S t r e a m )形式のデジタルAVストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、1つ以上のグラフィクスストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、グラフィクスストリームは、映画の字幕をそれぞれ示している。
【００２９】
拡張子”clpi”が付与されたファイルは、デジタルAVストリームのそれぞれに1対1に対応する管理情報である。管理情報故に、Clip情報は、デジタルAVストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP＿mapをもっている。
＜拡張子”mpls”が付与されたファイル＞
拡張子”mpls”が付与されたファイルは、プレイリスト情報を格納したファイルである。プレイリスト情報は、MainPath情報、Subpath情報、PlayListMark情報を含む。
【００３０】
1)MainPath情報は、AVストリームの再生時間軸のうち、In＿Timeとなる時点と、Out＿Timeとなる時点の組みを1つ以上定義することにより、論理的な再生区間を定義する情報であり、AVストリームに多重化されているエレメンタリストリームのうち、どれの再生を有効とするかを規定するストリーム番号テーブルを有しており、AVストリーム内のエレメンタリストリームのうち、どれの再生を許可し、どれの再生を許可しないかを規定するSTN＿tableをもつ。
【００３１】
2)PlayListMark情報は、In＿Time情報及びOut＿Time情報の組みにて指定されたAVストリームの一部分のうち、チャプターとなる時点の指定を含む。
3)Subpath情報は、前記AVストリームと同期して再生すべきエレメンタリストリームの指定と、そのエレメンタリストリームの再生時間軸におけるIn＿Time情報及びOut＿Time情報の組みとを含む。Java(登録商標)アプリケーションが、このプレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じることで、AV再生を開始させることができる。JMFプレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
【００３２】
AVストリームと、プレイリスト情報との組みは、“タイトル”という再生単位を構成する。BD-ROMにおけるAV再生は、このタイトルを一単位としてなされる。
＜拡張子”jar”が付与されたファイル＞
拡張子”jar”が付与されたファイルは、Java(登録商標)アーカイブファイルであり、Java(登録商標)仮想マシンを用いて動的なシナリオ制御を行うJava(登録商標)アプリケーションのクラスファイルが存在する。このクラスファイルにて定義されるJava(登録商標)アプリケーションは、Xletインターフェイスを通じて制御されるJava(登録商標)Xletである。Xletインターフェイスは、“loaded“,“paused“、“active“,“destroyed“といった4つの状態をもつ。本明細書でいうアプリケーションとは、こうしてBD-ROM等の記録媒体に記録されているクラスファイルについてのインスタンスのことをいう。
【００３３】
＜拡張子“bdjo”が付与されたファイル＞
拡張子“bdjo”が付与されたファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトは、PlayList情報により示されるAVストリームと、アプリケーションとの関連付けにより、タイトルを定義する情報である。BD-Jオブジェクトは、“アプリケーション管理テーブル”と、そのタイトルにおいて再生可能なPlayList一覧を示す。アプリケーション管理テーブル(AMT)とは、“アプリケーションシグナリング”を実現するテーブルである。“アプリケーションシグナリング”とは、BD-ROMにおける“タイトル”をアプリケーションの生存区間として管理し、アプリケーションの起動及び終了を司る制御をいう。ここで生存区間とは、BD-ROMに記録されたコンテンツ全体の時間軸において、仮想マシンのヒープメモリ上でアプリケーションが生存し得る区間を示す。“生存”とは、そのアプリケーションが、ヒープメモリに読み出され、仮想マシンによる実行が可能になっている状態をいう。アプリケーション管理テーブルは、アプリケーションの識別子(アプリケーションID)とそのアプリケーションに属するJava(登録商標)アーカイブファイルのIDを羅列することでこのタイトルを生存区間とするアプリケーションを示す。つまり、一つのアプリケーションは一つ以上の Java(登録商標) アーカイブファイルで構成される。
【００３４】
このようにBD-Jオブジェクト内のアプリケーション管理テーブルによって、セクタが管理されるJava(登録商標)アプリケーションを、“BD-Jアプリケーション”と呼ぶ。
＜index.bdmv(ファイル名固定)＞
index.bdmv(ファイル名固定)は、BD-ROM全体に関する管理情報であり、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmvにはBD-ROMにおいて再生可能となる複数のタイトルと、個々のタイトルを規定するBD-Jオブジェクトとを対応付けて示すテーブルが含まれる。引き出し線f2は、index.bdmvの内部構成をクローズアップして示している。この引出線に示すように映画作品のプロバイダを特定する識別子であるorganizationID(32ビット)や、プロバイダが提供するBD-ROMのそれぞれに割り当てられた識別子であるdiscID(128ビット)等の情報を持つ。
【００３５】
MovieObject.bdmv（ファイル名固定）は、HDMVモード（後述）での各タイトル再生で、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが含まれる。
(再生制御のレイヤ)
次に、BD-ROMが前提にしている再生制御のレイヤモデルについて説明する。
【００３６】
図３は、再生制御のレイヤモデルを示した図である。図３の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、BD-ROMだけではなく、ビルドインメディアやリムーバブルメディア、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。ここでビルドインメディアとは、HDD（ハードディスクドライブ）,EEPROM(不揮発メモリ)など、再生装置１０２に予め組み込まれた記録媒体である。一方、リムーバブルメディアは、SDメモリカード、メモリスティック、コンパクトフラッシュ(登録商標)、スマートメディア、マルチメディアカード等、可搬性がある記録媒体である。これらビルドインメディア、リムーバブルメディアは何れも、再生装置１０２がローカルに利用する記録媒体であり、“ローカルストレージ”との総称で呼ばれる。これらローカルストレージ、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。ローカルストレージには、ビルドインメディア、リムーバブルメディアという2種類のものがあるが、以降の説明では、第１記録媒体がBD-ROMであり、第２記録媒体がリムーバブルメディアであるという前提で説明を進める。
【００３７】
第２層は、AVストリームのレイアである。第１層で供給されたストリームを、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。
第３層（BD管理データ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、コンテンツオーサによって予め規定されたPlaylist情報、Clip情報であり、これらに基づく再生制御を規定しているのがこの第３層である。
【００３８】
第４層（BD再生プログラム）は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオは、AVストリームの再生手順、及び、その再生に関する制御手順のうち少なくとも一方を実行するプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち1つは、コマンドベースの動作環境で、BD-ROMに記録されたAVストリームを再生するモード（HDMVモード）であり、もう1つは、オブジェクト指向言語で記述されたプログラムベースの動作環境で、BD-ROMに記録されたAVストリームを再生するモード（BD-Jモード）である。図３において第４層には、HDMVモードとBD-Jモードの２つのモードが記述されている。HDMVモードは、DVDライクな再生環境で再生がなされる。もう一つのBD-Jモードでは、Java(登録商標)仮想マシンが主体となり、Java(登録商標)アプリケーションからの再生制御がなされる。
【００３９】
図４は、２つのモードの動的な再生制御にて作成される映画作品を示す図である。図４（a）は、HDMVモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。HDMVモードはDVD再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、DVDと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。
【００４０】
図４（b）は、BD-Jモードで動的な再生制御を定義することにより、作成される映画作品である。BD-JモードはJava(登録商標)仮想マシンが解釈可能なJava(登録商標)言語で制御手順を記述することができる。この再生制御がアドベンチャーゲームのGUIを構成するものであるなら、BD-Jモードにあっては、ゲームのスコア(図中のSCORE:10000)やインジゲータ(LIFE:3)、ボタン部材(質問する、退室する)と、動画とを組み合わせたような合成映像をユーザに提示することができる。
【００４１】
以上が、BD-ROM１００についての説明である。続いて、再生装置１０２の詳細について、説明する。
図５は、再生装置の大まかな機能構成を示すブロック図である。図５に示すように、再生装置１０２は、BDドライブ２０、ネットワークインターフェース２１、ローカルストレージ２２、仮想ファイルシステム２３、静的シナリオメモリ２６、動的シナリオメモリ２７、HDMVモジュール２８、BD-Jモジュール２９、UO探知モジュール３０、モード管理モジュール３１、ディスパッチャ３２から構成される。本再生装置は、オペレーティングシステムシステムとしてLinuxを採用しており、本再生装置のハードウェア及びソフトウェアは、このLinuxを通じて制御される。
【００４２】
（BDドライブ２０）
BDドライブ２０は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。本BD-ROM再生装置は、オペレーションシステムとしてLinuxを採用しているので、“/mountpoint BD/BDAV”とのコマンドを発行することにより、BDドライブ２０に、BDAVディレクトリを割り当てる。
【００４３】
（ネットワークインターフェース２１）
ネットワークインターフェース２１は、ネットワーク接続のためのプロトコルスタックを実行するものであり、ネットワーク上のサーバコンピュータが具備しているドライブを、ネットワークドライブとして、再生装置に認識させる。そして、ネットワークドライブからデータをダウンロードしたり、データをアップロードすることができる。このネットワークインターフェイス２１は、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられる。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jモジュール２９は、ネットワークインターフェース２１を制御することにより、インターネット上に公開された追加コンテンツをビルドインメディアドライブもしくはリムーバブルメディア１０４にダウンロードすることができる。
【００４４】
（ローカルストレージ２２）
ローカルストレージ２２は、ビルドインメディアドライブ２２aと、リムーバブルメディアドライブ２２bとからなり、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBD-ROM上のデータとマージするかを示す規則、つまりマージ規則が記載されたマージ管理情報も、このローカルストレージ２２に保存される。
【００４５】
本実施形態では、追加コンテンツデータファイル格納のためのディレクトリであるBUDAディレクトリを、リムーバブルメディアドライブに装填されたリムーバブルメディア１０４に割り当てる。本BD-ROM再生装置は、オペレーションシステムとしてLinuxを採用しているので、リムーバブルメディアドライブ２２bがSDメモリカードドライブであり、本ドライブに“SD”というドライブ名が割り当てられている場合、“/mountpoint SD/BUDA”とのコマンドを発行することにより、リムーバブルメディアに対応するSDドライブに、BUDAディレクトリを割り当てる。一方ビルドインメディアドライブ２２aは、録画用の記録領域として使用するものとする。
【００４６】
（仮想ファイルシステム２３）
仮想ファイルシステム２３は、追加コンテンツと共に、ローカルストレージ２２にダウンロードされたマージ管理情報を元に、ビルドインメディア、もしくは、リムーバブルメディアに格納された追加コンテンツとBD-ROM上のコンテンツとをマージさせた、仮想的なBD-ROM（仮想パッケージ）を構築する。HDMVモジュール２８やBD-Jモジュール２９からは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとビルドインメディアもしくはリムーバブルメディア上のデータの両方を用いて再生制御を行うことになる。以上が再生装置の構成要素である。
【００４７】
（AV再生部２４）
AV再生部２４は、BD-ROM又はローカルストレージ２２に記録されたAVストリームの再生を、プレイリスト情報、Clip情報に基づいて実行する。
（AV再生ライブラリ２５）
AV再生ライブラリ２５は、HDMVモジュール２８、BD-Jモジュール２９からの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、字幕切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。
【００４８】
（静的シナリオメモリ２６）
静的シナリオメモリ２６は、カレントのPLやカレントのClip情報を格納しておくためのメモリである。カレントPLとは、BD-ROMまたは、ローカルストレージ２２に記録されている複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMまたは、ローカルストレージ２２に記録されている複数のClip情報のうち、現在処理対象になっているものをいう。
【００４９】
（動的シナリオメモリ２７）
動的シナリオメモリ２７は、カレント動的シナリオを格納しておき、HDMVモジュール２８、BD-Jモジュール２９による処理に供されるメモリである。カレント動的シナリオとは、BD-ROMまたは、ローカルストレージ２２に記録されているMovieオブジェクト,BD-Jオブジェクトのうち、現在実行対象になっているものをいう。
【００５０】
（HDMVモジュール２８）
HDMVモジュール２８は、HDMVモードの実行主体となるDVD仮想プレーヤであり、動的シナリオメモリ２７に読み出されたカレントのシナリオプログラムを実行する。
（BD-Jモジュール２９）
BD-Jモジュール２９は、Java(登録商標)プラットフォームであり、Java(登録商標)仮想マシン、コンフィグレーション、プロファイルからなる。BD-Jモジュール２９は、動的シナリオメモリ２７に読み出されたJava(登録商標)クラスファイルからJava(登録商標)バイトコードを生成することによりカレントのJava(登録商標)オブジェクトを生成し、実行する。Java(登録商標)仮想マシンは、Java(登録商標)言語で記述されたJava(登録商標)オブジェクトを、再生装置におけるCPUのネィティブコードに変換して、CPUに実行させる。
【００５１】
（UO探知モジュール３０）
UO探知モジュール３０は、リモコンや再生装置のフロントパネルといった入力機器に対してなされたユーザ操作を検知して、モード管理モジュール３１に通知する。この通知は、これらの入力機器に対応するデバイスドライバ内の割込みハンドラが発生する割込みに従い、UO（User  Operation）を生成して、モード管理モジュール３１に出力することでなされる。UOとは、リモコンやフロントパネルに設けられたキーマトッリクスによるキー押下を検知した際、発生するイベント(UOイベント)であり、押下されたキーに対応したキーコードを含んでいる。具体的には、リモコンやフロントパネルに対応するデバイスドライバの割込みハンドルが、キーマトリックスに対するキーセンスでキー押下を検出した際、そのキー押下に基づき割込み信号を発生することで、UOイベントは、生成される。
【００５２】
（モード管理モジュール３１）
モード管理モジュール３１は、BD-ROMまたは、ローカルストレージ２２から読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モード管理モジュール３１によるモード管理とは、動的シナリオをどのHDMVモジュール２８、BD-Jモジュール２９に実行させるかという、モジュールの割り当てである。
【００５３】
（ディスパッチャ３２）
ディスパッチャ３２は、UOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力するというのがディスパッチャ３２の処理である。
【００５４】
(リムーバブルメディア)
以降、リムーバブルメディアについて説明する。
本実施形態では、追加コンテンツデータファイルの格納のためのリムーバブルメディアとしてSDメモリカードを採用する。
SDメモリカードは、長さ32.0 mm、幅24.0 mm、厚さ2.1 mmといった大きさ（切手サイズの大きさ）のカード型記録媒体である。ユーザはこのSDメモリカードを指先で把持することができる。SDメモリカードには、再生装置との接続のための９本のコネクタが設けられており、側面には、記憶内容の上書きを許可するか禁止するかを操作者が設定することができるプロテクトスイッチが設けられている。SDメモリカードは、NAND型EEPROMである「不揮発メモリ」、再生装置から発せられるコマンドに従って、不揮発メモリに対するデータ書き込み、不揮発メモリからのデータ読み出し、データ消去を行う「アクセス制御部」、不揮発メモリから読み出されたデータを書き換える際、データの一時格納に用いられる「ワークメモリ」を含む。
【００５５】
SDメモリカードには、FAT16を採用したものと、FAT32を採用したものとがある。FAT16は、クラスタ1つ当たりに割り当てられるエントリー長が16ビットであり、2Gバイトの記録領域をアクセス対象にしている。FAT32は、クラスタ1つ当たりに割り当てられるエントリー長が32ビットであり、32Gバイトの記録領域をアクセス対象にしている。このFAT32を採用したSDメモリカードは、特に“SDHCメモリカード”と呼ばれる。
【００５６】
以降、このリムーバブルメディアについて説明する。
図６は、半導体メモリの記録領域の物理的構成を示す図である。
本図の左側は、リムーバブルメディアのSDメモリカードの外観を示す。
本図の中段は、リムーバブルメディアであるSDメモリカードの物理的構成を示す図である。ローカルストレージは、ビルドインメディア、リムーバブルメディアの何れにおいても、複数個の論理ブロックで構成される。通常のファイルの書込みは、この論理ブロック単位で記録・削除が行われる。そのため、１つの論理ブロック内に複数のファイルデータを保存することはできない。すなわち、１つの論理ブロックサイズより小さなファイルを書込む場合にも、１つの論理ブロックが消費され、その論理ブロック内に他のファイルのデータを書込むことはできない。
【００５７】
本図の右側は、SDメモリカードのファイルシステム領域の内部構成を示す。SDメモリカードにおけるファイルシステム領域は、一個の論理ブロックが一個のクラスタとして扱われ、このクラスタを最小単位として、ファイルの記録や削除がなされることになる。
本図の中段では、物理的に連続する1000個の論理ブロックが1つのアロケーションユニットとして確保されている。アロケーションユニットとは、SDメモリカードに対するデータ書き込みの速度保証を実現する単位であり、SDメモリカードでは一般に、４Ｍバイトの大きさと規定されている。
【００５８】
(通常データ領域、連続データ領域)
前者の論理ブロックの書き込みを前提とした記録領域は、“通常データ領域”と呼ばれる。後者のアロケーションユニットを前提にした記録領域は、“連続データ領域”と呼ばれる。追加コンテンツ格納領域には、これら通常データ領域、連続データ領域の組みが確保されることになる。図７は、通常データ領域、連続データ領域の一例を示す図である。本図上段は、通常データ領域の内部構成を示し、本図下段は、連続データ領域の内部構成を示す。
【００５９】
上段の通常データ領域における個々の四角形は、論理ブロックを模式的に表す。この四角形のうち、白抜きのものは空きの論理ブロックであり、黒で塗り潰されたものは、一部又は全部が記録済みになっている論理ブロックである。記録済み論理ブロックにおける記録内容には、「マージ管理情報ファイル」、「署名情報ファイル」、「プレイリスト情報ファイル」、「Clip情報ファイル」がある。記録・削除が細かい単位で行われるため、頻繁に記録・削除を繰り返していると、未使用の論理ブロックが飛び飛び状態になり、１つのファイルのデータが飛び飛びの論理ブロックに記録されるという問題が発生する。ファイルを構成するデータが飛び飛びに記録されることを“フラグメンテーション”と呼ぶ。飛び飛びに記録されたファイルのデータを読み込む場合、飛び先ブロックへのシークが発生し読み込み性能が劣化してしまう。特にリアルタイムの読み取り性能が求められるAVストリーム形式の追加コンテンツがこの状態になってしまうと、再生に必要なAVストリーム形式の追加コンテンツの読み取りが間に合わず、再生がカクツクなどの現象が出ることになる。AVストリーム形式の追加コンテンツをスムーズに読み出すには、AVストリーム形式の追加コンテンツを連続した論理ブロックに書き込むことが望ましいが、通常データ領域ではフラグメンテーションが広範囲に発生するので、AVストリーム形式の追加コンテンツの記録に適した、連続論理ブロックの確保が難しくなっている。
【００６０】
小さなサイズのファイルが多い場合は、無駄な空き領域が多くなるが、通常１つの論理ブロックは一般的なファイルサイズよりも十分小さいため、通常データ領域への書込みに関しては効率良くストレージ容量を消費することができる。
下段の連続データ領域における四角形は、連続データ領域を構成するアロケーションユニットを模式的に示す。この四角形のうち、白抜きのものは空きのアロケーションユニットであり、一部が黒で塗り潰されたものは、記録済みになっているアロケーションユニットである。黒で塗り潰された部分が一部であるため、本来このアロケーションユニットには、未記録の部分が存在する。しかし、その一部に記録済みデータが存在する以上、他のデータを、その未記録部分に記録することはできない。つまり、一部の領域が既に記録されていれば、そのアロケーションユニットは記録済みとして扱われる。本図における3つのアロケーションユニットには、00001.mts,00002.mts,00003.mtsという3つのAVストリーム形式の追加コンテンツが記録されている。これら3つのアロケーションユニットは、3つのAVストリーム形式の追加コンテンツによって排他的に使用されているため、たとえ未記録部分があったとしても、ここに他のファイルを書き込むことはできない。書込先にアロケーションユニットを選んだ場合、連続する複数の論理ブロック単位で記録・削除がなされることになる。データ記録にアロケーションユニットを用いる場合、比較的大きなサイズで物理的に連続した領域を単位に記録・削除するため、フラグメンテーションが起こりにくいというメリットを持つ。
【００６１】
連続データ領域では、アロケーションユニット単位でアクセスがなされ、記録・削除の単位が大きいため、サイズが小さいファイルを書込む場合、無駄に大きな領域を占有してしまい、ストレージ容量を効率良く利用できないというデメリットがある。ただし、AVストリーム形式の追加コンテンツが格納されたファイルのサイズは十分大きなサイズであり、かつAVストリーム形式の追加コンテンツの読み取りにはリアルタイム性が求められるため、連続データ領域に書込むことが望ましい。
【００６２】
図７における追加コンテンツ配置の特徴について説明する。追加コンテンツ格納領域には、通常データ領域、連続データ領域が存在しており、この通常データ領域は、４Ｋバイトという論理ブロックの単位で、非AVストリーム形式の追加コンテンツの書き込みや削除がなされるので、記録領域の効率良い利用が図られていることがわかる。
一方連続データ領域は、４Ｍバイトというアロケーションユニットの単位で、AVストリーム形式の追加コンテンツの書き込みがなされており、かかるAVストリーム形式の追加コンテンツの書き込みによって、記録効率の低下が発生しているが、この低下の発生は、1つの追加コンテンツ格納領域内の局所的なものであり、リムーバブルメディアであるSDメモリカード全体の記録効率に与える影響は小さい。
【００６３】
こうすることで、書き込みや消去といった更新頻度が高い非AVストリーム形式の追加コンテンツについては、記録効率の維持を優先しつつも、AVストリーム形式の追加コンテンツにおけるAV再生の安定性を保証することができる。
(ファイルシステム領域の内部構成)
図８は、リムーバブルメディアであるSDメモリカードのファイルシステム領域の内部構成を示す図である。本図の左側に、リムーバブルメディアであるSDメモリカードを示し、中側に、FAT型ファイルシステムに準じたファイルシステム領域の内部構成を示す。このFAT型ファイルシステムの記録領域は、「MasterBootRecord」,「PartitionTable」が記録され、これらの記録領域以降に「システム領域」及び「ユーザ領域」が存在する。
【００６４】
「MasterBootRecor」は、自身に後続する領域が“物理的な一つの媒体（物理媒体）“であることを再生装置に認識させるための標識である。本図では、記録領域にマスタブートレコードが1つだけ存在するので、記録領域において1つの物理媒体が再生装置により認識され得るが、仮に記録領域にマスタブートレコードを2つ配せば、2つの物理媒体が再生装置により認識される。
【００６５】
「パーティションテーブル」は、パーティションに関する情報が記述されたテーブルである。
「システム領域」は、「パーティションブートセクタ」、「二重化ファイルアロケーションテーブル(FAT)」、「Rootディレクトリエントリ」が記録されている。
「ユーザ領域」は、クラスタを最小単位にして、ファイルが格納される領域であり、「BUDAディレクトリエントリ」、「CertIDディレクトリエントリ」、「OrganizationIDディレクトリエントリ」、「DiscIDディレクトリエントリ」が記録され、これ以降に追加コンテンツ格納領域が存在する。追加コンテンツ格納領域には「マージ管理情報ファイル」、「署名情報ファイル」、「追加コンテンツデータファイル」が記録されている。
【００６６】
以降、二重化FATについて説明する。
「二重化ファイルアロケーションテーブル(FAT)」は、ISO/IEC 9293に準拠した2つのFATからなる。図９（ａ）は、二重化FATの内部構成を示す図である。各FATは、各クラスタに対応づけられた複数のFATエントリーからなる。各FATエントリーは、対応するクラスタが使用中であるか、未使用であるかを示すものであり、対応するクラスタが未使用であれば、そのファイルエントリーには、“0“が設定され、対応するクラスタが使用中であれば、クラスタ番号が設定される。このクラスタ番号は、対応するクラスタが読み出された場合、次にどのクラスタを読み出せばよいかといったクラスタ間のリンク関係を示す。図９（ａ）の破線の引き出し線ff1は、FATに含まれる複数のFATエントリー002,003,004,005・・を示す。このFATエントリーに付与された数値「002,003,004,005・・」は、各FATエントリーがどのクラスタに対応づけられているか、つまり、各FATエントリーが対応づけられているクラスタのクラスタ番号を示す。
【００６７】
続いて、ディレクトリエントリについて説明する。ディレクトリエントリには、システム領域に存在する「Rootディレクトリエントリ」、ユーザ領域に存在する「BUDAディレクトリエントリ」、「CertIDディレクトリエントリ」、「OrganizationIDディレクトリエントリ」、「DiscIDディレクトリエントリ」といったものがあるが、これらは何れも、図９（ｂ）に示す共通のデータ構造を有する。図９（ｂ）は、ディレクトリエントリの共通のデータ構造を示す図である。本図に示すように「ディレクトリエントリ」は、ASCII文字８文字以下に制限された「ディレクトリ名」と、「作成時刻」と、「作成日付」と、当該ディレクトリに存在するファイルについての「ファイルエントリー」とを含む。各ファイルエントリーは、ASCII文字８文字以下に制限された「ファイル名」と、ASCII文字３文字以下に制限された「ファイル拡張子」と、ファイルの先頭部が格納されている「ファイル最初のクラスタ番号」と、そのファイルについての「ファイル属性」と、ファイルが更新された「更新時刻」と、ファイルの「更新日付」と、ファイルのデータ長である「ファイル長」とを含む。
【００６８】
SDメモリカードにおけるディレクトリ名及びファイル名は、こうしたディレクトリエントリに記述される。そしてこのディレクトリエントリのうち、Rootディレクトリエントリは、二重化FATと共に、原則として、1つのクラスタ内に配置して、まとめて管理せねばならないので、ディレクトリ名及びファイル名を長くするのは現実的ではない。具体的には、その文字数は、ASCII文字８文字以内、拡張子もASCII文字３文字以内に制限されている。このように、ディレクトリ名、ファイル名が制限されたファイルシステム形式を、“８.３形式”と呼んでいる。
【００６９】
ここで、DiscIDディレクトリに、追加コンテンツを格納する場合、FAT及びディレクトリエントリがどのように設定されるかについて説明する。説明の題材に選ぶ追加コンテンツは、ＡＶストリームを格納した“00001.mts”というファイルである。
図１０は、00001.mtsをクラスタサイズに合わせて5つに分割し、各分割部分を、クラスタ504〜50Bに格納する状態を想定した図である。
【００７０】
図１０の第３段目から第８段目は、映像、音声を示すエレメンタリストリームが、ＡＶストリームにおいてどのように多重化されているかを模式的に示す。ＡＶストリームは、デジタル化された映像、デジタル化された音声を(第８段目)、PESパケットからなるエレメンタリストリームに変換し(第７段目)、更にTSパケットに変換して(第６段目)、これらのTSパケットを多重化する(第５段目)ことで構成される。
【００７１】
ここで、ビデオストリームは、本図の第８段目に示すように複数のピクチャから構成されるが、これらピクチャと、Access Unitとの関係は、１AccessUnit ＝ １ピクチャである。オーディオストリームも、複数のオーディオフレームから構成されるが、これらオーディオフレームと、Access Unitとの関係も、１オーディオフレーム＝ １Access Unitである。またBD-ROMでは、１PESパケット ＝ １フレームに制限されている。つまり、動画がフレーム構造であれば、１PESパケット＝ １ピクチャであり、フィールド構造である場合、１PESパケット＝２ピクチャとなる。これらのことから、本図の第８段目に示すPESパケットは、第８段目におけるピクチャやオーディオフレームを、１対１の比率で格納している。
【００７２】
第５段目において、多重化されたTSパケット列は、“STC Sequence”を構成する。“STC Sequence”とは、デコード時刻、表示時刻を表すMPEG2-TSの時間軸であり、AVストリームのシステム基準時刻であるSTC(SystemTime Clock)の不連続点(system time-base discontinuity)が存在しない区間をいう。STCの不連続点はデコーダがSTCを得るために参照するPCR(ProgramClock Reference)を運ぶPCRパケットの不連続情報(discontinuity＿indicator)がONである点である。
【００７３】
第４段目から第１段目までは、リムーバブルメディアへのAVストリーム形式の追加コンテンツの記録がどのように行われるかを示す。
188バイトのTSパケットは、第４段目に示すように、4バイトのTS＿extra＿header(図中のハッチング部)が付されて、192バイト長のSourceパケットに変換される。このTS＿extra＿headerは、当該TSパケットのデコーダ入力時刻情報を示すArrival＿Time＿Stampを含む。
【００７４】
Sourceパケットは、第４段目に示すような1つ以上の“ATC＿Seuqence”を構成する。“ATC＿Seuqence”とは、ＡＶストリームに記されているATSの時間軸を構成するSourceパケットの配列であって、そのArrival＿Time＿Stampが参照しているArrival＿Time＿Clockに、不連続点(noarrival time-base discontinutiy)が存在しないものをいう。いいかえれば、そのArrival＿Time＿Stampが参照しているArrival＿Time＿Clockに、連続性が存在するSourceパケット列を“ATC＿Seuqence”という。ATSは以下のようにTSパケットの先頭につけられ、デコーダへの転送時刻を示す。
【００７５】
かかるATC＿SeuqenceがAVストリームになり、第３段目に示すように00001.mtsというあデータファイルに格納される。こうして得られたAVストリーム形式の追加コンテンツは、第２段目に示すような、ファイルシステム領域を構成する連続クラスタ504,505,506・・・50Bに記録されることになる。この連続クラスタは、第１段目に示すように、アロケーションユニットを構成する複数の論理ブロック504,505,506・・・50Bに対応しているので、AVストリーム形式の追加コンテンツは、一個のアロケーションユニット内に、完結した形態で格納されることになる。
【００７６】
00001.mtsがアロケーションユニットに記録されると、ディレクトリエントリ及びFATは、図１１のように設定されねばならない。
図１１は、00001.mtsが複数のクラスタに記録されている場合のディレクトリエントリ及びFATについての設定例を示す図である。本図において00001.mtsの先頭部分がクラスタ504に記録されている場合、DiscIDディレクトリディレクトリエントリにおける「ファイル最初のクラスタ番号」には、その先頭部分が格納されているクラスタについてのクラスタ番号504が記載される。以降、00001.mtsの後続する部分は、クラスタ505、クラスタ506に格納されていることがわかる。00001.mtsの先頭部分を格納しているクラスタ504には、FATエントリー504が対応しているが、このFATエントリー504は、00001.mtsファイルの後続する部分を格納しているクラスタ505を示すものである。またこれに後続している部分を格納しているクラスタ505,506には、FATエントリー505(506),FATエントリー506(507)が対応しているが、これのFATエントリーは、00001.mtsファイルの次の後続する部分を格納しているクラスタ506,507を示すものである。このように、DiscIDディレクトリディレクトリエントリにおける最初のクラスタ番号と、FATエントリーとを辿ってゆくことにより、リムーバブルメディア１０４に格納されたAVストリームは読み出され、再生に供されることになる。
【００７７】
以上のようなファイルシステムを前提にして、構築されるディレクトリについて説明する。
図１２は、リムーバブルメディア上のディレクトリ構成を示す図である。リムーバブルメディア上には、追加コンテンツ格納領域ルートディレクトリであるBUDAディレクトリ、CertIDディレクトリ、OrganizationIDディレクトリ、DiscIDディレクトリが存在する。このDiscIDディレクトリには、マージ管理情報ファイル「bumf.xml」、署名情報ファイル「bumf.sf」、追加コンテンツ「00001.mpl」「mo.bdm」「00001.mts」が存在する。
【００７８】
追加コンテンツ格納領域ルートディレクトリ(BUDAディレクトリ)は、リムーバブルメディアのルートディレクトリの直下に存在し、追加コンテンツ格納領域のルートを示すディレクトリで、ディレクトリ名は、８文字以内の固定値（BD＿BUDA）である。
「CertIDディレクトリ」はBD-ROM上のマージ証明書(bd.cert)から導き出されるIDを名前に持つディレクトリで、マージ証明書のSHA-1ダイジェスト値160ビットのうち、先頭32ビットを16進表記で表した８文字の名前のディレクトリである。
【００７９】
「OrganizationIDディレクトリ」は、BD-ROM上のBD管理情報(index.bdmv)に記載されている、映画作品のプロバイダを特定する32ビットの識別子(OrganizationID)を16進表記で表した８文字の名前のディレクトリである。
「DiscIDディレクトリ」は、４階層のサブディレクトリからなる。これら４階層のサブディレクトリは、最大８文字のディレクトリ名が付与される。各サブディレクトリには、BD-ROMを特定する128ビットの識別子(DiscID)を先頭から32ビットずつ４分割し、それぞれを16進表記で表した８文字の名前が割り当てられている。このDiscIDは、BD-ROM上のBD管理情報(index.bdmv)に記載されているので、index.bdmvをオープンすることでDiscIDは、取得することができる。例えば、本図における、「12345678」「90abcdef」「12345678」「90abcdef」という4つのディレクトリ名は、「1234567890abcdef1234567890abcdef」という32文字(１２８ビット)のDiscIDを、下位の桁から８文字(３２ビット)ずつ分割することで得られたものである。DiscIDを構成する文字のうち、意味のあるものを省略することなく、DiscIDと、８.３形式との対応を図るので、４階層のサブディレクトリは、DiscIDと厳密に対応がとれたものとなる。
【００８０】
DiscIDディレクトリの配下には、仮想パッケージを構築するための追加コンテンツ格納領域が存在する。追加コンテンツ格納領域は、４つのDiscIDディレクトリエントリーのうち、最も下位のDiscIDディレクトリエントリー内に存在するファイルエントリーにて特定されねばならないので、最も下位のDiscIDディレクトリエントリーより後の論理ブロックに確保されることになる。追加コンテンツ格納領域は、通常データ領域、連続データ領域からなり、通常データ領域には、「マージ管理情報ファイル」、「署名情報ファイル」、非AVストリームの追加コンテンツである「追加コンテンツ」が記録される。これらのファイルは、仮想パッケージ生成の中核を担うものであり、以降、これらのファイルの内容を詳細に説明する。
【００８１】
「マージ管理情報ファイル」は、リムーバブルメディア上の追加コンテンツのファイルパスと、仮想パッケージにおける別名アクセスのためのファイルパスとの対応付けを示す情報であり、bumf.xmlというファイル名でDiscIDディレクトリに保存される。このマージ管理情報ファイルが特徴的であるのは、リムーバブルメディアにおけるファイルパス、つまりFAT型ファイルシステムを前提にしているため、リムーバブルメディアにおけるディレクトリ名及びファイル名が8.3形式に準じている点である。このように、８.３形式に準じたファイルパスが、仮想パッケージにおけるLFNのファイルパスとが対応付けられている。この仮想パッケージのファイルパスは、BD-ROMのディレクトリ構造に準じている。何故なら仮想パッケージは、リムーバブルメディア上のファイルを、あたかもBD-ROMに格納されているものと同様に扱うものだからである。かかるBD-ROMのファイルシステム形式は、LFNに対応したものなので、このマージ管理情報ファイルを参照することにより、リムーバブルメディア上の追加コンテンツは、８.３形式でありながら、２５５文字以下のファイル名を用いて別名でアクセスされることになる。マージ管理情報ファイルは、８.３形式で記録されている各種ファイルに対して、２５５文字以下のファイル名による、“別名アクセス”を実現させるものである。
【００８２】
図１３（ａ）は、マージ管理情報の内部構成を示す図である。本図におけるマージ管理情報では、00001.mpl、mo.bdm、00001.mtsという3つの追加コンテンツについて、リムーバブルメディア上のファイルパスと、仮想パッケージ上のファイルパスとの対応付けがなされている。リムーバブルメディア上のファイルパスは、８.３形式に準じている。
本図におけるファイルパスの記述について具体的に説明する。リムーバブルメディアにおける“12345abc/12345678/90abcdef/12345678/90abcdef/00001.mpl”という８.３形式のファイルパスには、BDMV/PLAYLIST/00001.mplsという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。この一例は、前図のものに準じており、CertIDディレクトリから追加コンテンツへのパスが明記されている。
【００８３】
リムーバブルメディアにおける、“12345abc/12345678/90abcdef/12345678/90abcdef/mo.bdm”という８.３形式のファイルパスには、BDMV/MovieObject.bdmvという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。
リムーバブルメディアにおける“12345abc/12345678/90abcdef/12345678/90abcdef/00001.mts”という８.３形式のファイルパスには、BDMV/STREAM/000001.m2tsという仮想パッケージ上のLFN形式のファイルパスが対応付けられている。
【００８４】
図１３（ｂ）は、マージ管理情報の内容を元にして、BD-ROMコンテンツと、リムーバブルメディア上の追加コンテンツをマージする様子を示している。
左側は、BD-ROMの格納内容を示し、中側はリムーバブルメディアの格納内容を示す。右側は、仮想パッケージの格納内容を示す。マージ管理情報ファイルは、図１３（ａ）のように設定されているので、リムーバブルメディアにおける格納内容のうち、BUDAディレクトリ配下の12345abc/12345678/90abcdef/12345678/90abcdefに存在する3つの追加コンテンツ、つまり、mo.bdm、00001.mpl、00001.mtsのそれぞれを、矢印g1,g2,g3に示すように、マージ管理情報ファイルに記述されている仮想パッケージのディレクトリ構成に組み合わせる。以上のような、リムーバブルメディアのファイルを、マージ管理情報ファイルに記述されているディレクトリ構成に組合せることを“マージ”という。
【００８５】
こうしたマージによって、mo.bdmは、BDMVディレクトリに存在する“MovieObject.bdmv”という別名のファイル名でアクセスされることになる。
また00001.mplは、BDMVディレクトリ配下のPLAYLISTディレクトリに存在する“00001.mpls”という別名のファイル名でアクセスされることになる。
00001.mtsは、BDMVディレクトリ配下のSTREAMディレクトリに存在する“00001.m2ts”という別名のファイル名でアクセスされることになる。
【００８６】
上述したような別名アクセスが可能になるので、mo.bdm、00001.mpl、00001.mtsのそれぞれは、BDMVにMovieObject.bdmv、BDMV/PLAYLIST/00001.mpls、BDMV/STREAM/00001.m2tsに存在するものとして扱うことができる。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、bumf.sfというファイル名でDiscIDディレクトリに保存される。電子的な署名は、一般的に改竄防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。改竄防止が必要な情報としては、具体的には、追加コンテンツのファイル名や追加コンテンツをビルドインメディアに記録するにあたってのファイルパスが挙げられる。かかるファイルパスはLFN形式であり、マージ管理情報ファイルに記載されているので、マージ管理情報ファイルに記載されたファイルパスに対して、ハッシュ値は算出されることになる。また、本署名情報ファイルでは、BD-ROM上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
【００８７】
「非AVストリームの追加コンテンツ」は、BD-ROMに記録されたオリジナルのコンテンツに対し、追加/更新を実現するファイル群であり、リムーバブルメディア上に8.3形式（ファイル名８文字以内、拡張子３文字以内）のファイル名で保存される。DiscIDディレクトリについては、文字を省略することなく、全ての文字がDiscIDディレクトリにおけるディレクトリ名に現れるように変換を行ったが、追加コンテンツについては、一部の文字をリムーバブルメディアにおけるファイル名に使用することで、ファイル名の短縮を図っている。これは、追加コンテンツにおけるファイル名は、本来、BD-ROM上のファイル名であり、“５桁の数値＋数種類の拡張子”という何通りかのパターンのものに限られているので、ファイル名を構成する文字を一部省略したとしても、混同が生じる等の不都合が発生する可能性は極めて低いこと等の理由による。
【００８８】
図１２に示した２つの追加コンテンツのうち、「00001.mpl」はプレイリスト情報を格納したものであり、「mo.bdm」は、Movieオブジェクトを格納したものである。これら以外にも、BD-ROMにて記録され、ユーザに供給することができるファイルであるなら、BD-ROMに記録されるべき他のファイルを追加コンテンツの対象として選ぶことができる。index.bdmvやClip情報を格納したファイル(拡張子がclpiのファイル)、Java(登録商標)アーカイブファイル(拡張子がJarのファイル)、BD-Jオブジェクトを格納したファイル(拡張子がbdjoのファイル)を、追加コンテンツの対象として選ぶことができる。以上が通常データ領域についての説明である。
【００８９】
続いて、連続データ領域の詳細について説明する。連続データ領域には、AVストリーム形式の追加コンテンツが記録される。AVストリーム形式の追加コンテンツには、「00001.mts」,「00001.mts」,「00001.mts」がある。これらは、AVストリームを格納した8.3形式のファイルである。
図１４は、図５に示すBD-Jモジュール２９のより具体的な構成を示すとともに、BD-Jモジュールによりネットワーク上から追加コンテンツをビルドインメディア上もしくはリムーバブルメディア上にダウンロードする様子を示す図である。BD-Jモジュール２９はメディア再生モジュール３２、ファイルI/Oモジュール３４、ネットワークモジュール３５、アプリケーションマネージャ３６、仮想ファイルシステム管理モジュール３９から構成される。尚、本図におけるAV再生ライブラリ２５、ネットワークI/F２１、ビルドインメディアドライブ２２a、リムーバブルメディアドライブ２２b、仮想ファイルシステム２３は、図５に示したものと同一であり、メディア再生モジュール３２〜仮想ファイルシステム管理モジュール３９の説明のために便宜的に記載している。
【００９０】
(メディア再生モジュール３２)
メディア再生モジュール３２はBD-Jアプリケーションに対し、メディア再生制御のためのAPIを提供している。BD-Jアプリケーションがメディア再生制御APIを呼び出すと、メディア再生モジュールは対応するAV再生ライブラリ２５の関数を呼び出し、AV再生制御を行う。
【００９１】
(ファイルI/Oモジュール３４)
ファイルI/Oモジュール３４は、BD-Jアプリケーションからのビルドインメディアもしくはリムーバブルメディアへのアクセス要求の処理を行う。
このアクセス要求が、追加コンテンツの書き込みである場合、BD-JアプリケーションはファイルI/Oモジュール３４を用いて、追加コンテンツをビルドインメディア上もしくはリムーバブルメディア上の適切な位置に配置することが出来る。また、不要となった追加コンテンツを削除したり、追加コンテンツを直接編集することも可能である。仮想パッケージ上へのアクセスもこのファイルI/Oモジュール３４を通して行う。ただし、仮想パッケージ上へのアクセスは読み取り専用となり、ファイルI/Oモジュール３４からの書き込みはできない。
【００９２】
そのアクセス要求が追加コンテンツの読み出しである場合、BD-Jアプリケーションからは、BD-ROMに対するLFN形式のファイルパスが引き渡されるので、リムーバブルメディアに記録されているファイルであって、LFNのファイルパスにてアクセスできるものがリムーバブルメディアに存在するかどうかのサーチを行う。
このサーチは、当該LFNのファイルパスが、マージ管理情報ファイルにおいて、“別名のファイルパス”として記述されているかどうかを判断することでなされる。
【００９３】
そうしたサーチにより、そのLFNのファイルパスにて別名でアクセスできる追加コンテンツがリムーバブルメディアに存在することが明らかになった場合、マージ管理情報ファイルに記載された８.３形式のファイルパスに従い、その追加コンテンツをリムーバブルメディアから読み出す。
そのLFNのファイルパスにて別名アクセスできる追加コンテンツがリムーバブルメディアに存在しない場合、そのLFNのファイルパスにてアクセスすることができる追加コンテンツを、BD-ROMから読み出す。そのLFNのファイルパスにてアクセスすることができる追加コンテンツが、BD-ROMにも存在しないのなら、エラー処理を行う。
【００９４】
(ネットワークモジュール３５)
ネットワークモジュール３５は、BD-Jアプリケーションに対し、ネットワーク制御のためのAPIを提供している。BD-Jアプリケーションからのネットワーク制御要求に従い、ネットワークインターフェース２１を使って、ネットワーク接続を行う。BD-Jアプリケーションはネットワークモジュール３５を用いて、公開されている追加コンテンツを検索、及びビルドインメディア/リムーバブルメディアにダウンロードすることが可能である。
【００９５】
こうしたネットワークを通じた追加コンテンツ取得を実現するので、課題解決手段における取得手段は、このネットワークモジュール３５に該当することになる。
(アプリケーションマネージャ３６)
アプリケーションマネージャ３６は、システムアプリケーションであり、アプリケーションシグナリングを実行する。“アプリケーションシグナリング“とは、GEM1.0.2が規定するMHP(MultimedeiHome Platform)において、“サービス“を生存区間としてアプリケーションの起動、実行を行う制御をいう。BD-ROM再生装置におけるアプリケーションマネージャは、この“サービス“の代わりに、BD-ROMにおける“タイトル“を生存区間にして、アプリケーションの起動、実行の制御を実現する。ここで、“タイトル“とは、BD-ROMに記録されている映像・音声データの再生単位であり、アプリケーション管理テーブル(AMT)が一意に割り当てられている。
【００９６】
タイトルバウンダリのアプリケーションシグナリングは、index.bdmvファイルに基づくタイトルの選択が行われた際、前のタイトルに対応するアプリケーション管理テーブル(AMT)と、カレントタイトルに対応するアプリケーション管理テーブル(AMT)とを用いて実行されるシグナリングをいう。このシグナリングは、前のタイトルに対応するAMTには記載されているが、カレントタイトルに対応するAMTには記載されていないアプリケーションの動作を終了させ、前のタイトルに対応するAMTには記載されておらず、カレントタイトルに対応するAMTには記載されているアプリケーションの動作を開始させるという制御である。
【００９７】
index.bdmvファイルとは、ディスク上のタイトル構成が記載されたファイルであり、ディスク上の各タイトルと、対応するアプリケーション（BD-JモードタイトルであればJava(登録商標)アプリケーション、HDMVモードタイトルであればシナリオプログラム）との参照関係を管理している。図１５は、index.bdmvファイルとタイトルの関係を示す図である。タイトルとはアプリケーションとAVストリームを組にした再生単位であり、また特殊なタイトルとして「FirstPlay」と「TopMenu」が存在する。「First Play」はBD起動時に自動的に再生されるタイトルであり、主にBDの利用規約表示などに用いられる。「Top Menu」はリモコンのメニューキーを押したときやタイトル再生が終了したときに再生され、主にタイトルの選択や、字幕/音声の言語選択を行うことに用いられる。このindex.bdmvファイルが仮想パッケージ更新により内容が変化した場合、仮想パッケージ更新前と更新後で、タイトル構成が異なることになる。
【００９８】
(DiscID確認モジュール３７)
DiscID確認モジュール３７は、挿入されたBD-ROMのDiscIDを確認する。DiscID確認モジュール３７により取得されたDiscIDの値は仮想ファイルシステム２３が仮想パッケージを構築する際に用いられる。
(リムーバブルメディア検知モジュール３８)
リムーバブルメディア検知モジュール３８は、リムーバブルメディアの挿入・取り出しのモニタリングを行う。リムーバブルメディアの挿入・取り出しが行われると、仮想ファイルシステム２３に挿入・取り出し通知を行う。
【００９９】
(仮想ファイルシステム管理モジュール３９)
仮想ファイルシステム管理モジュール３９は、BD-Jアプリケーションからの仮想パッケージ構築/更新要求を受け取り、その要求内容を仮想ファイルシステム２３へ伝達する。Java(登録商標)アプリケーションは仮想パッケージを構築/更新する場合、新たなマージ管理情報ファイル及び署名情報ファイルを指定して構築/更新要求を発行する。仮想ファイルシステム２３は仮想ファイルシステム管理モジュール３９を通じて仮想パッケージ構築/更新要求を受け付けると、新たに指定された署名情報ファイルを用いて、新たなマージ管理情報ファイルの署名検証を行った後、古いマージ管理情報ファイル、署名情報ファイルを新しいマージ管理情報ファイル、署名情報ファイルに置き換えて、仮想パッケージを再構築する。マージ管理情報ファイル、署名情報ファイルの置き換えはタイトル切り替え時に行われる。次にタイトルについての説明を行う。
【０１００】
(追加コンテンツを書き込むにあたっての注意事項)
以降、通常データ領域にAVストリーム形式の追加コンテンツを書き込むにあたっての注意事項について述べる。
コンテンツオーサは、再生装置に、ファイル種別がAVストリーム形式の追加コンテンツであることを認識させるため、AVストリーム形式の追加コンテンツには、“mts”との拡張子を付与すべきである。具体的には、AVストリーム形式の追加コンテンツは、BD-Jアプリケーションによってダウンロードされるので、BD-Jアプリケーションがダウンロードを行い、ローカルストレージにAVストリーム形式の追加コンテンツを書き込む際、AVストリーム形式の追加コンテンツには、“mts”との拡張子を付加せねばならない。そして、再生装置は、この拡張子が付加されたAVストリーム形式の追加コンテンツを、ローカルストレージにおける連続データ領域に書き込むべきである。アプリケーションからの要求に応じて、AVストリーム形式の追加コンテンツの書き込みを行うのは、ファイルI/Oモジュール３４であるため、ファイルI/Oモジュール３４は、連続データ領域、つまり、アロケーションユニットを確保して、AVストリーム形式の追加コンテンツに書き込む必要がある。
【０１０１】
（BD-Jアプリケーションにおけるダウンロード手順の記述）
BD-Jアプリケーションによりダウンロードを実現するには、所定のAPIを用いることにより、ネットワークモジュール３５にURLコネクションを構築させ、ファイルI/Oモジュール３４にリムーバブルメディアへの書き込みを行わせる必要がある。以下、ダウンロード手順の記述に用いられる、APIについて説明する。
・URLConnection(URL url)
引数で指定されたURLに対して、URLコネクションを確立する。
【０１０２】
・getInputStream()
このAPIをコールした際、URLコネクションからの入力を受ける入力ストリームが戻り値として、アプリケーションに返される。
また、getInputStream()のメソッドとしては、以下のものを使用する。
・read(byte[] b)
入力ストリームから引数で指定されたバイト数byte[]を読み込み、それをバイト配列に格納する。
【０１０３】
・FileOuputStream(String name)
引数となるString nameは、絶対ファイルパスを意味する。BD-JアプリケーションによってこのAPIがコールされた際、絶対ファイルパスで指定されたファイルオブジェクトに書き込むための出力ファイルストリームjを作成する。また、append引数を用いた場合、既存ファイルへの追記が可能となる。
【０１０４】
また、FileOuputStream()のメソッドとしては、以下のものを使用する。
・write(byte[]  b)
指定されたバイト配列のb.lengthバイトを、出力ファイルストリームjに書き込む。
図１６は、ファイルI/Oモジュール３４を介した、通常データ領域又は連続データ領域に対するデータ書き込みを模式的に示す図である。下段は、リムーバブルメディアにおける通常データ領域及び連続データ領域の組みを示し、中段は、BD-モジュール１４と、その内部のファイルI/Oモジュール３４とを示す。上段は、BD-Jアプリケーションを示す。矢印yk1は、書き込み要求を示し、矢印yk2,yk3は、その要求に応じたAVストリーム形式の追加コンテンツの書き込み、非AVストリーム形式の追加コンテンツの書き込みという一連のデータの流れを模式的に示す。このデータの流れを追ってゆくと、追加コンテンツの書込要求がなされた場合、AVストリームかどうかの判別がストリーム/非ストリーム判別部１２０１によってなされ、結果がAVストリーム形式の追加コンテンツであれば、連続データ領域にAVストリーム形式の追加コンテンツが書き込まれることになる。結果が非AVストリームの追加コンテンツであれば、連続データ領域に非AVストリームの追加コンテンツが書き込まれることになる。
【０１０５】
図１７は、リムーバブルメディアへのダウンロードの処理手順を示すフローチャートである。ビルドインメディアであるリムーバブルメディアのBUDAの配下に、160ビットのCertIDのうち、先頭32ビットをディレクトリ名としたCertIDディレクトリをクリエイトする(ステップＳ１)。そのCertIDディレクトリの配下に、今度はOrganizationIDをディレクトリ名にしたOrganizationIDディレクトリをクリエイトする(ステップＳ２)。その後、128ビットのDiscIDを３２ビット毎に4つの文字列に分割して、４つの文字列をそれぞれディレクトリ名とした４階層のDiscIDディレクトリを、OrganizationIDディレクトリの配下にクリエイトする(ステップＳ３)。
【０１０６】
以上の処理で、リムーバブルメディアのためのディレクトリ構成を構築した後、マージ管理情報ファイル、署名情報ファイルをダウンロードして、DiscIDディレクトリのうち、最下層に格納する(ステップＳ４)。続いて、追加コンテンツのダウンロードを行う(ステップＳ５)。こうして追加コンテンツのダウンロードがなされれば、マージ管理情報ファイルにおけるファイル名、ディレクトリ名の変更に伴い、署名情報ファイルを変更する(ステップＳ６)。つまりプロバイダ側では、改竄防止のため、ファイルパスが変更される前の、ビルドインメディアにおけるLFN形式に対応したファイルパスに対してハッシュ値を算出しており、そうして算出したハッシュ値を署名情報ファイルに記述している。再生装置は、ハッシュ値の算出対象となったファイルパスを、LFNから８.３形式に変更しているので、この変更に伴い、署名情報ファイル内のハッシュ値を再計算にする必要がある。そのような、ファイルパス変更に追随して、ハッシュ値の再計算を行っているのが、このステップＳ６である。
【０１０７】
図１８は、追加コンテンツのダウンロード処理の処理手順を示すフローチャートである。本フローチャートは、マージ管理情報に記載されているそれぞれの追加コンテンツについて、ステップＳ１３〜ステップＳ１９の処理を繰り返すというループ構造になっている(ステップＳ１１、ステップＳ１２)。ループにおいて、処理手順となる追加コンテンツを追加コンテンツiと呼ぶ。このステップＳ１３〜ステップＳ１９の処理手順は以下の通りである。先ず始めに、追加コンテンツをダウンロードするためのURLコネクションを構築して(ステップＳ１３)、構築したURLコネクションで受け取る入力ストリームiを取得し(ステップＳ１４)、入力ストリームiのファイル名を８.３形式に変換して、ファイル名Ｂ，拡張子Eを得る(ステップＳ１５)。その後、BUDA/CertID/organizationID/DiscID/ファイル名B＋拡張子Eという形式の絶対ファイルパスを生成して(ステップＳ１６)、生成した絶対ファイルパスを用いたFileOutputStream(絶対ファイルパスFP)のコールにより、出力ファイルストリームjを作成し(ステップＳ１７)、Read(byte[]b)のコールにて、入力ストリームiからbyte[]を読み込み、バッファ配列bに格納する(ステップＳ１８)。最後に、write(byte[]  b)のコールにて、バッファ配列bにおけるbyte[]を、出力ファイルストリームjに書き込む(ステップＳ１９)。
【０１０８】
図１９は、WriteAPIの処理手順を示すフローチャートである。本フローチャートは、絶対ファイルパスに対応するファイルエントリーがリムーバブルメディアに既に存在するかどうかを判定するステップ(ステップＳ２１)、出力ファイルストリームjのファイル種別を判定するステップ(ステップＳ２２)、1つ以上の空きのアロケーションユニットが存在するかどうかを判定するステップ(ステップＳ２３)、出力ファイルストリームjのファイル種別を判定するステップ(ステップＳ２７)、要求された書き込みは、追記又は上書きであるかを判定するステップ(ステップＳ２８)を備え、これらの判定ステップの判定結果によって、処理を切り替える構造になっている。
【０１０９】
ステップＳ２１における判定ステップは、出力ファイルストリームjが記録済みであるかどうかの判定であり、もし未記録であるなら、ステップＳ２２〜ステップＳ２６の処理に移行する。ステップＳ２２は、出力ファイルストリームjのファイル種別が、AVストリーム形式の追加コンテンツであるか、非AVストリーム形式の追加コンテンツであるかの判定であり、もしAVストリーム形式の追加コンテンツであれば、1つ以上の空きのアロケーションユニットが存在するかどうかを判定する(ステップＳ２３)。その結果、空きのアロケーションユニットが存在すれば、出力ファイルストリームjを空きのアロケーションユニットに書き込んで(ステップＳ２４)、出力ファイルストリームjをCloseする(ステップＳ２６)。
【０１１０】
ステップＳ２３にあたっては、書き込もうとするAVストリーム形式の追加コンテンツが、アロケーションユニットサイズより小さいかどうか判定し、もし小さければ、1つのアロケーションユニットが存在するかどうかが判定されることになる。書き込もうとするAVストリーム形式の追加コンテンツが大きければ、そのAVストリーム形式の追加コンテンツを格納するに足りる2以上のアロケーションユニットが存在するかどうかを判定することになる。
【０１１１】
ステップＳ２４における書き込みでは、書き込もうとするAVストリーム形式の追加コンテンツが、アロケーションユニットサイズより小さければ、1つのアロケーションユニットに当該AVストリームを書き込む。書き込もうとするAVストリーム形式の追加コンテンツがアロケーションユニットサイズより大きければ、AVストリーム形式の追加コンテンツをアロケーションユニットのサイズに分割して、確保された2以上のアロケーションユニットに、分割部分を書き込むことになる。こうした書き込みにおいて、書き込まれたAVストリーム形式の追加コンテンツ又はその分割部分が、アロケーションユニットのサイズに満たない場合、そのアロケーションユニットを構成する複数の論理ブロックは、一部が空き領域となる。
【０１１２】
空きのアロケーションユニットが無ければ、出力ファイルストリームjのうち、バッファ配列bで指定されている部分を、空き論理ブロックに書き込んでから、出力ファイルストリームjをCloseする(ステップＳ２６)。
絶対ファイルパスに対応するファイルエントリーが存在していて、出力ファイルストリームjが記録済みである場合、ステップＳ２１がYesになり、ステップＳ２７に移行する。ステップＳ２７は、出力ファイルストリームjのファイル種別を判定するステップであり、もし出力ファイルストリームjがAVストリーム形式の追加コンテンツであるなら、ステップＳ２８において要求された書き込みは、追記又は上書きであるかを判定する。追記であれば、記録済みのAVストリーム形式の追加コンテンツを読み出して、出力ファイルストリームjとを一体にした上(ステップＳ２９)、記録済みのAVストリーム形式の追加コンテンツを消去する(ステップＳ３０)。その後、ステップＳ２３に移行して、空きのアロケーションユニットをサーチした上、出力ファイルストリームjを空きのアロケーションユニットに書き込む(ステップＳ２３、ステップＳ２４)
図２０は、アロケーションユニットに対する追記の処理過程を連続写真的な表記で描いた図であり、初期状態、中間状態、最終状態からなる。初期状態では、出力ファイルストリームjがメモリに存在していて、記録済みのアロケーションユニットには、00001.mtsが存在する状態を想定している。中間状態では、ステップＳ２９の処理がなされている状態であり、矢印RD1に示すように、00001.mtsがメモリに読み出され、出力ファイルストリームjと一体化される。最終状態は、ステップＳ３０、ステップＳ２４の処理がなされている状態であり、00001.mtsと一体になった出力ファイルストリームjが矢印WR1に示すように空きのアロケーションユニットに書き込まれ、記録済みアロケーションユニットにおける00001.mtsが消去されている。
【０１１３】
図２１は、アロケーションユニットに対する上書きの処理過程を連続写真的な表記で描いた図であり、初期状態、最終状態からなる。初期状態では、出力ファイルストリームjがメモリに存在していて、記録済みのアロケーションユニットには、00001.mtsが存在する状態を想定している。最終状態は、ステップＳ３０、ステップＳ２４の処理がなされている状態であり、矢印WR2に示すように、00001.mtsと一体になった出力ファイルストリームjが空きのアロケーションユニットに書き込まれ、記録済みアロケーションユニットにおける00001.mtsが消去されている。
【０１１４】
図２２は、ファイル種別判別の処理手順を示すフローチャートである。ステップＳ３１は、出力ファイルストリームjの拡張子Eが.mtsであるかどうかの判定であり、もしmtsであるなら、出力ファイルストリームjをAVストリーム形式の追加コンテンツであるとの判定結果を下す(ステップＳ３３)。もしmtsでないなら、出力ファイルストリームjを非AVストリーム形式の追加コンテンツであると判定結果を下す(ステップＳ３３２)。
【０１１５】
図２３は、追加コンテンツのファイル名を８.３形式に変換する処理の手順を示すフローチャートである。
ステップＳ４３は、追加コンテンツiのファイル名におけるファイルボディiが、８文字以内であるかの判定である。ファイルボディが8文字以内ならステップＳ４４において入力ストリームファイルiのファイルボディを、ファイルボディBとする。８文字以内でないなら、ステップＳ４５を実行する。ステップＳ４５は、追加コンテンツiのファイルボディが全て数字であるか／アルファベットを含むかについての判定である。
【０１１６】
もし、“全て数字”であるなら、ステップＳ４６において追加コンテンツiのファイルボディの下８桁の数字をファイルボディBとする。追加コンテンツiのファイルボディが“全てアルファベット”であるなら、ステップＳ４７においてアルファベットの大文字からイニシャル文字を生成して、そのイニシャル文字を、小文字にしたものをファイルボディBに採用する。
【０１１７】
ステップＳ４８は、追加コンテンツiのファイル名における拡張子が“.m2ts”であるか否かの判定である。拡張子が“.m2ts”であるなら、“.mts”を追加コンテンツiの拡張子Eとする(ステップＳ４９)。３文字以内でないなら、追加コンテンツiの拡張子の上から３桁の文字を拡張子Eとする(ステップＳ５０)。以上の処理の後、ファイルボディBと、拡張子Eとの組合せ(フローチャートでは、“ファイル名B.E”と記載している)を用いて、追加コンテンツのリムーバブルメディアにおけるファイルパスを生成し(ステップＳ５１)、マージ管理情報ファイルにおけるローカルストレージのファイルパスを、新たに生成した８.３形式のファイル名に置き換える(ステップＳ５２)。
【０１１８】
図２４はタイトル切り替え時に新旧マージ管理情報ファイルを置き換えて、仮想パッケージの再構築を行うための処理手順を示すフローチャートである。BD-Jモード用のタイトルが再生され（ステップS６１）、タイトル再生中にJava(登録商標)アプリケーションは仮想パッケージ更新要求を行う（ステップS６２）。
仮想パッケージ更新要求時に与える引数の値は、新マージ管理情報ファイルの位置を示すファイルパス、新マージ管理情報ファイルに対応する署名情報ファイルの位置を示すファイルパスである。
【０１１９】
仮想ファイルシステム２３が仮想パッケージ更新要求を受けると、仮想ファイルシステム２３の状態を「更新準備中」とし、指定された新マージ管理情報ファイルが、書き換えられないように、読み取り専用属性に変更する（ステップS６３）。そして、仮想パッケージ更新要求時に指定された署名情報ファイルを用いて、新マージ管理情報ファイルの署名検証を行う（ステップS６４）。
【０１２０】
ステップS６４の署名検証に失敗した場合（ステップS６５でNo）、仮想ファイルシステム２３は仮想パッケージ更新要求を中断し、新マージ管理情報ファイルの属性を読み取り専用から仮想パッケージ更新要求前の元の属性に戻し、Java(登録商標)アプリケーションに対して、仮想パッケージ更新要求拒否通知イベントを投げる（ステップS６９）。
ステップS６４の署名検証に成功した場合（ステップS６５でYes）、仮想ファイルシステム２３は新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルの存在チェックを行い、それらのファイルをJava(登録商標)アプリケーションから読み取り専用となるように属性を変更する（ステップS６６）。
【０１２１】
新マージ管理情報ファイルから参照されていて仮想パッケージ構築に必要なファイルがビルドインメディア/リムーバブルメディア上に存在しなかった場合（ステップS６７でNo）、仮想ファイルシステム２３は仮想パッケージ更新処理を中断し、ステップS６３及びステップS６６で属性を変更したファイルを仮想パッケージ更新要求前の元の属性に戻し、Java(登録商標)アプリケーションに対して、仮想パッケージ更新要求拒否通知イベントを投げる（ステップS６９）。
【０１２２】
新マージ管理情報ファイルから参照されていて仮想パッケージ構築に必要なファイルがビルドインメディア/リムーバブルメディア上に全て存在していると確認でき、さらにそれらのファイルの属性をJava(登録商標)アプリケーションから読み取り専用に変更する処理が完了すると（ステップS６７でYes）、仮想ファイルシステム２３は仮想ファイルシステムの状態を「更新準備完了」とし、Java(登録商標)アプリケーションに対して、更新準備完了通知イベントを投げる。
【０１２３】
仮想ファイルシステム２３の状態が「更新準備完了」となった後、タイトル切り替えが発生するのを待つ（ステップS６８）。タイトル切り替えが発生すると、切り替え前のタイトルで起動していたJava(登録商標)アプリケーションは終了する（ステップS７０）。その後、旧マージ管理情報ファイルが存在すれば、新マージ管理情報ファイルで上書きし、新旧マージ管理情報ファイルの置き換えを行う（ステップS７１）。仮想パッケージ更新前がオリジナルのBD-ROMで再生されており、旧マージ管理情報ファイルがもともと存在しなかった場合は、旧マージ管理情報ファイルを上書きする代わりに、新マージ管理情報ファイルは、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に移動され、正規のマージ管理情報ファイル名にリネームされる。同様に、署名情報ファイルについても新旧ファイルの置き換え、移動を行う。
【０１２４】
新旧マージ管理情報ファイル、署名情報ファイルの置き換えもしくはファイルの移動を終えた後、新マージ管理情報ファイルを元に仮想パッケージを再構築する（ステップS７２）。
仮想パッケージ再構築後、旧マージ管理情報ファイルから参照されていたが、新マージ管理情報ファイルからは参照されていないビルドインメディア/リムーバブルメディア上のファイルは読み取り専用属性が解除され、Java(登録商標)アプリケーションから読み書き可能になる。新マージ管理情報ファイル及び、新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルに関しては読み取り専用属性のままとなる。
【０１２５】
仮想パッケージの再構築を終えると、新たに構築した仮想パッケージを用いて、切り替え先のタイトル再生を開始する（ステップS６１）。再生中の仮想パッケージに対応するマージ管理情報ファイル及び、そのマージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルは、仮想パッケージ再生中、常に読み取り専用属性となり、Java(登録商標)アプリケーションからは編集、削除することができない。
【０１２６】
図２５は、Java(登録商標)アプリケーションが仮想パッケージ構築/更新要求を発行し、仮想パッケージが更新されるまでの、時間的な処理の流れを示す図である。
第１段目は、タイトルの再生時間軸であり、第２段目はアプリケーション＃1の動作時間軸である。第３段目は、アプリケーション＃2の動作時間軸であり、第４段目は、仮想ファイルシステムの状態遷移を示す時間軸である。
【０１２７】
本図の初期状態として想定するのは、新しいマージ管理情報ファイル、署名情報ファイルの格納が完了した状態である。つまり、追加コンテンツに加え、現在の仮想パッケージ構築に利用されているマージ管理情報ファイル、署名情報ファイルとは別に新たにマージ管理情報ファイル、署名情報ファイルをインターネット上のサーバからダウンロードして得て、ビルドインメディア上もしくはリムーバブルメディア上に格納した状態を初期状態として想定する。
【０１２８】
タイトル＃1の再生中の時点t1において、BD-Jアプリケーションは、仮想ファイルシステム管理モジュール３９が提供するAPIを通して仮想ファイルシステム２３に仮想パッケージ構築/更新を要求したものとする。図中のrequestUpdating(“/org＃1/disc＃1/new.xml“,“/org＃1/disc＃1/new.sf“)は、この仮想パッケージ構築要求となるAPI呼出しである。この仮想パッケージ構築要求の引数“/org＃1/disc＃1/new.xml“,“/org＃1/disc＃1/new.sf“は、ビルドインメディア/リムーバブルメディア上に格納されている新マージ管理情報ファイル、署名情報ファイルの位置を指定したファイルパスである。時点t1は、この更新要求がなされた時点を示す。
【０１２９】
時点t1は、BD-Jアプリケーションからの仮想パッケージ構築/更新要求を受け取って、その状態を「更新準備中」に遷移する時点である。
ここで、「更新準備中」とは、指定された新マージ管理情報ファイル及び、新マージ管理情報ファイルが参照しているビルドインメディア/リムーバブルメディア上のファイルを読み取り専用に属性を変更する処理を含む。
【０１３０】
かかる処理の他、仮想パッケージ更新要求時にBD-Jアプリケーションから指定された署名情報ファイルを用いて、新マージ管理情報ファイルの署名検証を行い、さらに新マージ管理情報ファイルのファイル格納位置情報に記載されているファイルが全て指定の位置に存在するかのチェックを行う。
時点t2は、ファイル存在のチェックが終わった後、仮想ファイルシステムの状態を「更新準備完了」とする時点を示す。こうして状態を遷移させれば、Java(登録商標)アプリケーションに対して、更新準備完了通知イベントを投げる。新マージ管理情報ファイルの署名検証、もしくはファイル格納位置情報に記載されているファイルの存在チェックに失敗した場合、仮想ファイルシステム２３は更新要求を拒否し、仮想ファイルシステム管理モジュール３９を通じて更新要求拒否通知イベントをBD-Jアプリケーションに対して投げ、仮想ファイルシステム２３の状態を「更新準備中」となる前の状態（「仮想パッケージ再生状態」もしくは「BD-ROM再生状態」）に戻す。「仮想パッケージ再生状態」とは、BD-ROMが再生装置にロードされ、仮想ファイルシステム２３により仮想パッケージとして再生中であり、保留中の仮想パッケージ更新要求がない状態を指す。「BD-ROM再生状態」とは、BD-ROMが再生装置にロードされ、そのままオリジナルのBD-ROMとして再生中であり、同じく保留中の仮想パッケージ更新要求がない状態を指す。
【０１３１】
時点t3は、仮想ファイルシステム２３の状態が「更新準備完了」となった後の時点を示す。タイトル切り替えが発生すると、仮想ファイルシステム２３は仮想パッケージ更新要求時に指定された新マージ管理情報ファイルを用いて、旧マージ管理情報ファイル（現在の仮想パッケージ構築に利用されているマージ管理情報ファイル）を上書きすることにより、旧マージ管理情報ファイルを新マージ管理情報ファイルに置き換える。
【０１３２】
仮想パッケージ更新前がオリジナルのBD-ROMの再生中であり、旧マージ管理情報ファイルがもともと存在しなかった場合は、旧マージ管理情報ファイルを上書きする代わりに、新マージ管理情報ファイルを、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に移動する。こうすることで新マージ管理情報は、正規のマージ管理情報ファイル名(bumf.xml)にリネームされる。署名情報ファイルもマージ管理情報ファイル同様に新旧署名情報ファイルの置き換えを行う。新旧マージ管理情報ファイル、署名情報ファイルの置き換え、もしくは新マージ管理情報ファイル、署名情報ファイルの移動が終わった後、仮想ファイルシステム２３は、挿入されているBD-ROMのDiscIDに対応するDiscIDディレクトリの下に格納されている新マージ管理情報を元に仮想パッケージを再構築し、仮想パッケージのファイル構成を更新する。
【０１３３】
時点t4は、かかる更新を終えた時点であり、ビルドインメディアドライブ・リムーバブルメディアドライブ２２は、“仮想パッケージ再生状態”になる。仮想パッケージを更新した後も、仮想パッケージ再生状態である期間は、新マージ管理情報ファイル及び、新マージ管理情報ファイルのファイル格納位置情報が指し示すビルドインメディア/リムーバブルメディア上のファイルは読み取り専用に属性のままとなる。ただし、旧マージ管理情報ファイルから参照されていて、新マージ管理情報ファイルから参照されていないファイルは読み取り専用属性が解除され、Java(登録商標)アプリケーションから読み書き可能になる。
【０１３４】
（第２実施形態）
追加コンテンツを追加コンテンツ格納領域を書き込もうとする際、連続データ領域又は通常データ領域における空きの論理ブロックが不足することがある。本実施形態は、空きの論理ブロックが不足した際のエラーハンドリングを考慮した実施形態である。
図２６は、連続データ領域の空き領域が不足していた場合のエラーハンドリングを考慮した、ローカルストレージの書込手順を示すフローチャートである。本図のフローチャートは、図１９をベースとして作図されており、このベースとなるフローチャートにおいて、ステップＳ２２(ステップＳ２７)、ステップＳ２３、ステップＳ２４、ステップＳ２５に改良を加える形で記載されている。
【０１３５】
ステップS２２、ステップＳ２７で対象ファイルがAVストリーム形式の追加コンテンツであると判断された場合、連続データ領域にAVストリームを書込むことが可能なアロケーションユニットがあるかどうかを判断する（ステップＳ２３）。連続データ領域の空き容量が確認できた場合は、ステップＳ２４において、連続データ領域における空きのアロケーションユニットにAVストリームを書き込む。
【０１３６】
連続データ領域の空き容量が不足しており、空きのアロケーションユニットが存在しない場合、フラグメンテーションによりリアルタイムの読み込み性能が保証できない可能性があるため、ユーザに対し、再生に支障が出る可能性があることを通知した上で（S８１）、ステップＳ２５に移行する。図２７は、連続データ領域に書込みできなかった場合におけるユーザに対する通知の一例である。図２７ではストレージの空き容量が十分存在しないこと、そのため正しく書き込みできなかったこと、再生に支障が出る可能性があることを画面に表示し、ユーザに通知している。
【０１３７】
図２８は、AVストリームの書込みに失敗した場合のエラーハンドリングを考慮した、ローカルストレージの書込手順を示すフローチャートである。本図のフローチャートは、ステップＳ２２(ステップＳ２７)、ステップＳ２３、ステップＳ２４、ステップＳ２５に改良を加える形で記載されている。
図２６のフローチャートでは、連続データ領域に空きがなく、通常データ領域に空きがある場合は、AVストリームを通常データ領域に書込むこととしているが、この場合再生に支障が出る可能性がある。図２８のフローチャートでは、再生品質を重視し、通常データ領域に空きがあっても、連続データ領域に空きがなければ(ステップＳ２３で空き無し)、AVストリームの書込みに失敗したとして、その旨をユーザに通知している（ステップＳ８３）
一方、通常データ領域に空き容量がなければ、書込み処理を行わず、ステップＳ８３においてユーザに対し書込みに失敗したことを通知する。
【０１３８】
図２９は、書込み処理に失敗したことをユーザに示す画面表示の一例である。ストレージに空き容量が十分存在しないこと、そのために書込みに失敗したことを通知すると共に不要データ消去を促すメッセージを出力している。
以上のように本実施例によれば、Java(登録商標)アプリケーションから様々な種類のファイルが含まれた仮想パッケージの追加コンテンツの書込み要求が発行された場合においても、追加されたストリームのリアルタイム再生を保証しつつストレージ容量の効率利用が可能となる。
【０１３９】
(第３実施形態)
本実施形態は、通常データ領域及び連続データ領域のどちらかに追加コンテンツを書き込んでおき、仮想パッケージの構築が要求された際、事後的に、追加コンテンツを移動するという手法で、通常データ領域及び連続データ領域における配置を完成させようという改良である。本実施形態における配置には、図３０に示されるものと、図３１に示されるもの、図３２に示されるものとがある。
【０１４０】
図３０（ａ）は、第３実施形態におけるローカルストレージの書込み処理のフローチャートである。本フローチャートでは、書込み前のファイル種類判別を行わず、全て通常データ領域へ書込む（S１００）。
図３０（ｂ）は、第３実施形態におけるファイル種類判別のフローチャートである。ファイルの書込みは一旦全て通常データ領域へ書込んでおき、Java(登録商標)アプリケーションから仮想パッケージ更新要求があったタイミングで、Java(登録商標)アプリケーションから指定された新マージ管理情報ファイルを元にファイル種類判別を行う（S１０１）。ここでのファイル種別の判別は、新マージ管理情報から、仮想パッケージ上においてAVストリーム形式の追加コンテンツファイルとしてマッピングされているファイル、すなわち、仮想パッケージ上において“BDMV/STREAM/xxxxx.m2ts“というファイル名として扱われるファイルに関してはAVストリーム形式の追加コンテンツと判断するというものである。
【０１４１】
もし、AVストリーム形式の追加コンテンツが存在すれば(ステップＳ１０２)、空きアロケーションユニットが存在するかどうかを判定して(ステップＳ１０３)空きアロケーションユニットがあれば、AVストリーム形式の追加コンテンツファイルを、アロケーションユニットに移動する(ステップＳ１０４)。こうすることで、AVストリーム形式の追加コンテンツを連続データ領域に再配置する。
【０１４２】
図３１（ａ）は、空きアロケーションユニットが存在するかどうかの判定を行い(ステップＳ１１０)、もし存在すれば、書込み要求された追加コンテンツを一旦全ての連続データ領域へ書き込む（S１１１）。
図３１（ｂ）は、Java(登録商標)アプリケーションからの仮想パッケージ更新要求時の処理手順を示すフローチャートである。ステップＳ１２１では、新マージ管理情報から、仮想パッケージ上において非ストリームファイルとなっているファイルを抽出することで、各追加コンテンツのファイル種別を判別する(ステップＳ１２１)。その後、非AVストリーム形式の追加コンテンツが存在するかどうかの判定を行い(ステップＳ１２２)、もし存在すれば、それらのファイルを通常データ領域へ移動して再配置する（S１２３）。
【０１４３】
図３２は、書き込みが要求された追加コンテンツを一旦通常データ領域に書き込む処理手順を示すフローチャートである。書き込みが要求された追加コンテンツを一旦通常データ領域に書き込み(ステップＳ１３１)、その後、ステップＳ１３２、ステップＳ１３３の判定ステップを実行する。ステップＳ１３２は、書き込みがなされた追加コンテンツが一定サイズ以上であるか否かの判定であり、ステップＳ１３３は、空きのアロケーションユニットが存在するか否かの判定である。もしこれらのステップＳ１３３２ステップＳ１３３の双方がYesであるなら、ステップＳ１３４において一定サイズ以上の追加コンテンツをアロケーションユニットに移動する。ステップＳ１３２、ステップＳ１３３のどちらかがNoであれば、処理を終了する。
【０１４４】
以上のように本実施例によれば、データ書込み時に事前のファイル判別処理を行うことなく、必要に応じてストリーム/非ストリームファイルをそれぞれ連続データ領域、通常データ領域に再配置することが出来る。
(第４実施形態)
第１実施形態では、リムーバブルメディアへの書き込みの対象となる追加コンテンツがAVストリームであるか否かの判断対象に拡張子を採用したが、本実施形態は、Java(登録商標)アプリケーションから書込が要求されたAVストリームの最初のバイト列からAVストリームか否かを判断するものである。
【０１４５】
図３３は、書込が要求されたAVストリームの最初のバイトを判定することで、AVストリームか否かの判定を行うフローチャートである。ステップＳ９１は、出力ストリームファイルjのヘッダデータがAVストリームか否かを判定するステップであり、もし出力ストリームファイルjのヘッダデータがAVストリームであれば、ステップＳ９２において、出力ストリームファイルjがAVストリームであるとの判定結果を下す。もし出力ストリームファイルjのヘッダデータがAVストリームでなければ、ステップＳ９３において、出力ストリームファイルjがAVストリームでないとの判定結果を下す。
【０１４６】
以上のように本実施形態によれば、拡張子が偽装された場合やストリームの拡張子が不定の場合にも対応することができる。
(第５実施形態)
本実施形態は、再生装置１０２がネットワーク接続されておらず、スタンドアローンで使用されている場合に、ユーザが所持するパソコンを、記録装置として利用する実施形態である。かかる記録装置は、再生装置１０２に付属しているソフトウェアキットをパソコンにインストールすることで構成されるものである。
【０１４７】
このソフトウェアキットは、図１７から図１９のフローチャートに示される制御手順をMPUに実行させるものである。
これまでの実施形態で述べたように、リムーバブルメディアには、BUDAディレクトリエントリー、CertIDディレクトリエントリー、OrganizationIDディレクトリエントリー、DiscIDディレクトリエントリーが存在しており、リムーバブルメディアおける追加コンテンツ格納領域は、BUDAディレクトリ名、CertIDディレクトリ名、OrganizationIDディレクトリ名、DiscIDディレクトリ名を用いたファイルパスにて特定されるので、これらを参照すれば、たとえ自身にはBD-ROMを再生する能力が無くても、かかるリムーバブルメディアに、どのようなBD-ROMコンテンツの追加コンテンツを記録することができるかを認識することができる。
【０１４８】
そこで記録装置は、追加コンテンツ格納領域を特定するファイルパス、つまり、BUDAディレクトリ名、CertIDディレクトリ名、OrganizationIDディレクトリ名、DiscIDディレクトリ名を用いたファイルパスを参照することで、ダウンロード可能な追加コンテンツが存在するかどうかの監視を行う。かかる監視は、OrganizationIDディレクトリ名に示される組織名に基づきコンテンツのプロバイダが運営するWWWサーバのWWWサイト、つまりコンテンツプロバイダにおける公式のWWWサイトをアクセスして、リムーバブルメディアにおけるDiscIDディレクトリに対応するBD-ROMの記録内容について最新のアップデート状況を監視することでなされる。記録装置が、ネットワーク接続されている場合、こうしたアップデート状況を常時監視しており、もしBD-ROMコンテンに対する追加コンテンツの告知があれば、記録装置は、ネットワークを介して、新たな追加コンテンツをダウンロードしてリムーバブルメディアに書き込む。こうして追加コンテンツがリムーバブルメディアに書き込まれた後、かかる追加コンテンツが記録されたリムーバブルメディアが、再生装置１０２に装填された場合、再生装置１０２は、仮想パッケージの構築を行うことができる。
【０１４９】
かかる記録装置による追加コンテンツの書き込みも、図１７〜図１９のフローチャートに従ってなされるので、AVコンテンツは、追加コンテンツ格納領域に書き込まれることになる。
以上のように本実施形態によれば、BD-ROMの再生能力がない記録装置によって追加コンテンツ格納領域への追加コンテンツの書き込みがなされる場合でも、AVストリーム形式の追加コンテンツについては、連続データ領域に書き込まれるので、AVストリーム形式の追加コンテンツにおけるAV再生の安定性を維持することができる
(第６実施形態)
本実施形態は、連続データ領域に記録されるべきAVストリームが、どのようなものであるかを説明する。対比のため、BD-ROMに記録されるべきAVストリームについて説明する。      
【０１５０】
図３４は、BD-ROMにおけるAVストリームに多重化されるエレメンタリストリームを示す図である。BD-ROMにおけるAVストリームのSTC-Sequenceに多重化されるエレメンタリストリームは、0x1011のPIDをもつPrimaryビデオストリーム、0x1100から0x111FまでのPIDをもつプライマリオーディオストリーム、0x1200から0x121FまでのPIDをもつ32本のPGストリーム、0x1400から0x141FまでのPIDをもつ32本のIGストリーム、0x1B00から0x1B1FまでのPIDをもつ32本のSecondaryビデオストリームである。
【０１５１】
図３５は、BD-ROMに記録されているエレメンタリストリームにおけるPID割当マップを示す図である。PID割当マップの左欄は、PIDが取りうる値の複数のゾーンを示す。右欄は、各ゾーンに割り当てられるエレメンタリストリームを示す。この記述法に従って図を参照すると本図から、以下のことが導くことができる。つまりPIDが取りうる値のうち、0x0100のゾーンは、Program＿mapに割り当てられ、0x1001のゾーンはPCRに、0x1011のゾーンはPrimaryビデオストリームに、0x1100から0x111Fまでのゾーンはプライマリオーディオストリームに、0x1200から0x121FまでのゾーンはPGストリームに、0x1400から0x141FまでのゾーンはIGストリームに、0x1B00から0x1B1FまでのゾーンはIN＿MUX＿Secondaryビデオストリームに割り当てられている。
【０１５２】
以上がBD-ROMに記録されるべきAVストリームについての説明である。続いて、追加コンテンツ格納領域に配されるべきAVストリームの詳細について説明する。
図３６は、追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームを示す図である。追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームは、0x1800のPIDをもつtextSTストリーム、0x1A00から0x1A1FまでのPIDをもつプライマリオーディオストリーム、0x1B00から0x1B1FまでのPIDをもつ32本のOut＿of＿MUX＿Secondaryビデオストリーム、0x1200から0x121FまでのPIDをもつ32本のPGストリーム、0x1400から0x141FまでのPIDをもつ32本のIGストリームである。この図１４に示したセカンダリビデオストリームのように、プライマリビデオストリームと異なるAVストリームに多重化されるセカンダリビデオストリームを、“Out＿of＿MUX＿セカンダリビデオストリーム”という。またセカンダリビデオストリームに限らず、プライマリビデオストリームと異なるAVストリームに多重化されるエレメンタリストリーム全般を、“Out＿of＿MUXストリーム”という。
【０１５３】
図３７は、追加コンテンツ格納領域に配されるべきAVストリームに多重化されたエレメンタリストリームにおけるPID割当マップを示す図である。PID割当マップの左欄は、PIDが取りうる値の複数のゾーンを示す。右欄は、各ゾーンに割り当てられるエレメンタリストリームを示す。この記述法に従って図を参照すると本図から、以下のことが導くことができる。つまりPIDが取りうる値のうち、0x0100のゾーンは、Program＿mapに割り当てられ、0x1001のゾーンはPCRに、0x1200から0x121FまでのゾーンはPGストリームに、0x1400から0x141FまでのゾーンはIGストリームに、0x1800のゾーンは、textSTストリームに、0x1A00から0x1A1Fまでのゾーンはセカンダリオーディオストリームに割り当てられている。0x1B00から0x1B1FまでのゾーンはSecondaryビデオストリームに割り当てられている。
＜プライマリビデオストリーム＞
プライマリビデオストリームは、映画作品の本編を構成するストリームであり、SD画像、HD画像であるピクチャデータから構成される。ビデオストリームには、VC-1のビデオストリーム、MPEG4-AVCのビデオストリーム、MPEG2-Videoのビデオストリームといった形式が存在する。MPEG4-AVCのビデオストリームでは、IDRピクチャ,Iピクチャ,Pピクチャ,Bピクチャに、PTS、DTSといったタイムスタンプが付され、このピクチャの単位で、再生制御がなされる。このように、PTS、DTSが付されて、再生制御の単位となる、ビデオストリームの一単位を“VideoPresentation Unit”という。
【０１５４】
＜セカンダリビデオストリーム＞
セカンダリビデオストリームは、映画作品のコメンタリィ等を構成するストリームであり、このセカンダリビデオストリームの再生映像を、プライマリビデオストリームの再生映像内に合成することで、ピクチャインピクチャが実行される。ビデオストリームには、VC-1のビデオストリーム、MPEG4-AVCのビデオストリーム、MPEG2-Videoのビデオストリームといった形式が存在し、“VideoPresentation Unit”をもつ。セカンダリビデオストリームのフォーマットには、525/60ビデオフォーマット、625/50ビデオフォーマット、1920×1080フォーマット、1280×720フォーマットがある。
【０１５５】
＜プライマリオーディオストリーム＞
プライマリオーディオストリームは、映画作品の主音声を表すストリームであり、LPCMオーディオストリーム、DTS-HDオーディオストリーム、DD/DD+オーディオストリームやDD/MLPオーディオストリームといった形式が存在する。オーディオストリームにおけるオーディオフレームに、タイムスタンプが付され、このオーディオフレームの単位で、再生制御がなされる。このように、タイムスタンプが付されて、再生制御の単位となる、オーディオストリームの一単位を“AudioPresentation Unit”という。
【０１５６】
＜セカンダリオーディオストリーム＞
BD-ROMには記録されていないが、映画作品の副音声を表すようなオーディオストリームである。
＜PGストリーム＞
PGストリームは、言語毎の字幕を構成するグラフィクスストリームであり、英語、日本語、フランス語というように複数言語についてのストリームが存在する。PGストリームは、PCS(PresentationControl Segment)、PDS(Pallet Define Segment)、WDS(Window Define Segment)、ODS(ObjectDefine Segment)という一連の機能セグメントからなる。ODS(Object Define Segment)は、字幕たるグラフィクスオブジェクトを定義する機能セグメントである。
【０１５７】
WDS(Window Define Segment)は、画面におけるグラフィクスオブジェクトのビット量を定義する機能セグメントであり、PDS(PalletDefine Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。PCS(PresentationControl Segment)は、字幕表示におけるページ制御を規定する機能セグメントである。かかるページ制御には、Cut-In/Out、Fade-In/Out、ColorChange、Scroll、Wipe-In/Outといったものがあり、PCSによるページ制御を伴うことにより、ある字幕を徐々に消去しつつ、次の字幕を表示させるという表示効果が実現可能になる。
【０１５８】
＜テキスト字幕(textST)ストリーム＞
textSTストリームは、字幕の内容をキャラクタコードで現したストリームである。textSTストリームは、プライマリビデオストリームと同じAVストリームに多重化されていないが、字幕を現すストリームである。このPresentationGraphicsストリームと、textSTストリームとの組みは、BD-ROM規格において、“PGTextSTストリーム”と呼ばれる。
【０１５９】
＜IGストリーム＞
IGストリームは、対話制御を実現するグラフィクスストリームである。IGストリームにて定義される対話制御は、DVD再生装置上の対話制御と互換性がある対話制御である。かかるIGストリームは、ICS(InteractiveComposition Segment)、PDS(Palette Difinition Segment)、ODS(Object DefinitionSegment)と呼ばれる機能セグメントからなる。ODS(Object Definition Segment)は、グラフィクスオブジェクトを定義する機能セグメントである。このグラフィクスオブジェクトが複数集まって、対話画面上のボタンが描画される。PDS(PaletteDifinition Segment)は、グラフィクスオブジェクトの描画にあたっての、発色を規定する機能セグメントである。ICS(InteractiveComposition Segment)は、ユーザ操作に応じてボタンの状態を変化させるという状態変化を実現する機能セグメントである。ICSは、ボタンに対して確定操作がなされた際、実行すべきボタンコマンドを含む。
【０１６０】
以上が追加コンテンツ格納領域に記録されるAVストリームの説明である。続いて、本実施形態にかかる再生制御エンジン２４の詳細について説明する。
図３８は、再生制御エンジン２４の内部構成を示す図である。再生制御エンジン２４は、本図に示すように、リードバッファ１a,b、ATCカウンタ２a,b,SourceDepacketizer２a,b、ATCカウンタ２a,b、STCカウンタ３a,b、PID Filter３a,b、Transport Buffer(TB)４a、ElementaryBuffer(EB)４c、ビデオデコーダ４d、Re-order Buffer４e、Decoded Picture Buffer４f、ビデオプレーン４g、TransportBuffer(TB)５a、Elementary Buffer(EB)５c、ビデオデコーダ５d、Re-order Buffer５e、DecodedPicture Buffer５f、ビデオプレーン５g、バッファ６a,b、バッファ７a,b、オーディオデコーダ８a,b、ミキサー９a、スイッチ１０a,b,c,d,e、TransportBuffer(TB)１１a、Interactive Graphicsデコーダ１１b、Interactive Graphicsプレーン１１c、TransportBuffer(TB)１２a、バッファ１２b、Text based subtitleデコーダ１２ｃ、Transport Buffer(TB)１３a、PresentationGraphicsデコーダ１３ｂ、Presentation Graphicsプレーン １３cから構成される。尚本図では、再生装置の出力段については、示していない。出力段については、別図に内部構成を示して説明することにする。
【０１６１】
リードバッファ(RB)１aは、ローカルストレージ２２から読み出されたSourceパケット列を蓄積する。
リードバッファ(RB)１bは、BD-ROMから読み出されたSourceパケット列を蓄積する。
ATC Counter２aは、ローカルストレージ２２におけるAVストリームを構成するSourceパケットのうち、再生区間の最初に位置するもののATSを用いてリセットされ、以降ソースデパケッタイザ２aにATCを出力してゆく。
【０１６２】
ATC Counter２bは、BD-ROMにおけるAVストリームを構成するSourceパケットのうち、再生区間の最初に位置するもののATSを用いてリセットされ、以降ソースデパケッタイザ２bにATCを出力してゆく。
ソースデパケッタイザ(Source De-packetizer)２aは、ローカルストレージ２２におけるAVストリームを構成するSourceパケットからTSパケットを取り出して、送出する。この送出にあたって、ATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCCounter２aが生成するATCの値と、SourceパケットのATS値とが同一になった瞬間にTS＿Recording＿Rateで、そのTSパケットだけをPIDFilter３aに転送する。
【０１６３】
ソースデパケッタイザ(Source De-packetizer)２bは、BD-ROMにおけるAVストリームを構成するSourceパケットからTSパケットを取り出して、送出する。この送出にあたって、各TSパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCCounter２bが生成するATCの値と、SourceパケットのATS値とが同一になった瞬間にTS＿Recording＿Rateで、そのTSパケットだけをPIDFilter３bに転送する。
【０１６４】
STC Counter３aは、ローカルストレージ２２におけるAVストリームのPCRによってリセットされ、STCを出力する。PIDフィルタ３aは、このSTCを参照して、多重分離を行う。
STC Counter３bは、BD-ROMにおけるAVストリームのPCRによってリセットされ、STCを出力する。
PID Filter３aは、ローカルストレージ２２におけるAVストリーム用の多重分離部であり、ソースデパケッタイザ２aから出力されたSourceパケットのうち、所望のPID参照値をもつものを、夫々オーディオデコーダ８b、InteractiveGraphicsデコーダ１１b、Presentation Graphicsデコーダ１３bに出力する。このようにPID Filter３aを通過して各デコーダに入力されるエレメンタリストリームは、ローカルストレージ２２におけるAVストリームのPCRに従って、デコード及び再生に供されることになる。
【０１６５】
PID Filter３bは、BD-ROMにおけるAVストリーム用の多重分離部であり、ソースデパケッタイザ２bから出力されたSourceパケットのうち、所望のPID参照値をもつものを、夫々ビデオデコーダ４d、ビデオデコーダ５d、オーディオデコーダ８a、InteractiveGraphicsデコーダ１１b、Presentation Graphicsデコーダ１３bに出力する。各デコーダは、PID Filter３bを経由したエレメンタリストリームを受け取って、BD-ROMにおけるAVストリームのPCRに従いデコードから再生の処理を行う。このようにPIDFilter３bを通過して各デコーダに入力されるエレメンタリストリームは、BD-ROMにおけるAVストリームのPCRに従って、デコード及び再生に供されることになる。
【０１６６】
Transport Buffer(TB)４aは、プライマリビデオストリームに帰属するTSパケットがPID Filter３bから出力された際、一旦蓄積されるバッファである。
Elementary Buffer(EB)４cは、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)が格納されるバッファである。
デコーダ(DEC.)４dは、プライマリビデオを構成する個々のピクチャを所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を得て、ビデオプレーン４に書き込む。
【０１６７】
Ducoded Picture Buffer４eは、デコーダ４dのデコードにより得られた非圧縮のピクチャを格納しておくバッファである。
Re-order Buffer４fは、復号されたピクチャの順序を、符号化順序から表示順序に入れ替えるためのバッファである。
プライマリビデオプレーン４gは、プライマリビデオを構成する一ピクチャ分の画素データを格納しておくためのメモリ領域である。画素データは、16ビットのYUV値で表現され、ビデオプレーン４gは、1920×1080という解像度にあたる画素データを格納している。
【０１６８】
Transport Buffer(TB)５aは、セカンダリビデオストリームに帰属するTSパケットがPID Filter３bから出力された際、一旦蓄積されるバッファである。
Elementary Buffer(EB)５cは、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)が格納されるバッファである。
デコーダ(DEC.)５dは、セカンダリビデオを構成する個々のピクチャを所定の復号時刻（DTS）ごとにデコードすることにより複数フレーム画像を得て、ビデオプレーン５に書き込む。
【０１６９】
Ducoded Picture Buffer５eは、デコーダ５dのデコードにより得られた非圧縮のピクチャを格納しておくバッファである。
Re-order Buffer５fは、復号されたピクチャの順序を、符号化順序から表示順序に入れ替えるためのバッファである。
セカンダリビデオプレーン５gは、セカンダリビデオを構成する一ピクチャ分の画素データを格納しておくためのメモリ領域である。画素データは、16ビットのYUV値で表現され、セカンダリビデオは、1920×1080という解像度にあたる画素データを格納している。
【０１７０】
バッファ６aは、デマルチプレクサ３aから出力されたTSパケットのうち、プライマリオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデコーダ７aに供する。
バッファ６bは、デマルチプレクサ３ｂから出力されたTSパケットのうち、セカンダリオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデコーダ７bに供する。
【０１７１】
オーディオデコーダ７aは、バッファ６aに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりプライマリオーディオストリームにおけるデジタル出力がなされる。
オーディオデコーダ７bは、バッファ６bに格納されたTSパケットをPESパケットに変換して、このPESパケットに対しデコード処理を行い、非圧縮状態のLPCM状態のオーディオデータを得て出力する。これによりセカンダリオーディオストリームにおけるデジタル出力がなされる。
【０１７２】
ミキサ９aは、オーディオデコーダ７aから出力されるLPCM状態のデジタルオーディオと、オーディオデコーダ７bから出力されるLPCM状態のデジタルオーディオとをミキシングする。
スイッチ１０aは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にセカンダリビデオデコーダ５d側に供給する。
【０１７３】
スイッチ１０bは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にPresentationGraphicsデコーダ１３b側に供給する。
スイッチ１０cは、BD-ROMから読み出されたTSパケット、ローカルストレージ２００から読み出されたTSパケットのどちらかを、選択的にInteractiveGraphicsデコーダ１１b側に供給する。
【０１７４】
スイッチ１０dは、デマルチプレクサ３aにより多重分離がなされた、プライマリオーディオストリームを構成するTSパケット、デマルチプレクサ３bにより多重分離がなされたプライマリオーディオストリームを構成するTSパケットのうちどちらをオーディオデコーダ８aに供給するかを切り換えるスイッチである。
スイッチ１０eは、デマルチプレクサ３aにより多重分離がなされた、セカンダリオーディオストリームを構成するTSパケット、デマルチプレクサ３bにより多重分離がなされたセカンダリオーディオストリームを構成するTSパケットのどちらを、オーディオデコーダ８bに供給するかを切り換えるスイッチである。
【０１７５】
Transport Buffer(TB)１１aは、IGストリームに帰属するTSパケットが一旦蓄積されるバッファである。
Interactive Graphics(IG)デコーダ１１bは、BD-ROM１００又はローカルストレージ２００から読み出されたIGストリームをデコードして、非圧縮グラフィクスをIGプレーン１２に書き込む。
【０１７６】
Interactive Graphics(IG)プレーン１１ｃは、IGデコーダ１１bによるデコードで得られた非圧縮グラフィクスを構成する画素データが書き込まれる。
Transport Buffer(TB)１２aは、textSTストリームに帰属するTSパケットが一旦蓄積されるバッファである。
Buffer(TB)１２bは、textSTストリームを構成するPESパケットが一旦蓄積されるバッファである。
【０１７７】
Text Based Subtitleデコーダ１２cは、BD-ROM１００又はローカルストレージ２２から読み出されたtextSTストリームにおいて、キャラクタコードを用いて、表現されている字幕をビットマップに展開して、PGプレーン１３cに書き込む。この展開には、BD-ROM１００又はローカルストレージ２２に格納されているフォントデータが用いられるので、textSTストリームのデコードには、前もってかかるフォントデータを読み込んでおく必要がある。
【０１７８】
Transport Buffer(TB)１３aは、PGストリームに帰属するTSパケットが一旦蓄積されるバッファである。
Presentation Graphics(PG)デコーダ１３ｂは、BD-ROM又はローカルストレージ２２から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentationGraphicsプレーン１４に書き込む。PGデコーダ１３ｂによるデコードにより、字幕が画面上に現れることになる。
【０１７９】
Presentation Graphics(PG)プレーン１３ｃは、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。
PSRセット１７は、再生装置に内蔵されるレジスタであり、64個のPlayer Setting/Status Register(PSR)と、4096個のGeneralPurpose Register（GPR)とからなる。Player Setting/Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
【０１８０】
以上が、AV再生部２４の内部構成である。続いて、AV再生部２４の出力段の内部構成について説明する。図３９は、再生装置の出力段の構成を示す図である。本図に示すようにAV再生部２４の出力段は、1−α3乗算部１５a、Scalling・Positioning部１５b、α3乗算部１５c、加算部１５d、1−α1乗算部１５e、α1乗算部１５f、加算部１５g、1−α2乗算部１５h、α2乗算部１５i、加算部１５ｊ、HDMI送受信部１６から構成される。
【０１８１】
1−α3乗算部１５aは、ビデオデコーダ４ｇに格納されている非圧縮のデジタルピクチャを構成する画素の揮度に、透過率1-α3を乗じる。
Scalling・Positioning部１５bは、ビデオプレーン５ｇに格納されている非圧縮のデジタルピクチャを拡大・縮小する処理(Scalling)を施し、また配置位置を変更する処理(Positioning)を行う。この拡大・縮小は、メタデータにおけるPiP＿scaleに基づき、配置位置の変更は、メタデータにおけるPiP＿horizontal＿position、PiP＿vertical＿positionに基づく。
【０１８２】
α3乗算部１５cは、Scalling・Positioning部１５bにより、Scalling、Positioningが施された非圧縮のピクチャを構成する画素の揮度に対し、透過率α3を乗じる。
加算部１５dは、α3乗算部１５cにより画素毎に透過率α3が乗じられた非圧縮デジタルピクチャと、1−α3乗算部１５aにより画素毎に透過率1-α3が乗じられた非圧縮デジタルピクチャとを合成して、合成ピクチャを得る。
【０１８３】
1−α1乗算部１５eは、加算部１５dにより合成がなされたデジタルピクチャを構成する画素の揮度に、透過率1-α1を乗じる。
α1乗算部１５fは、Presentation Graphicsデコーダ１３ｃに格納されている非圧縮グラフィクスを構成する画素の揮度に、透過率α1を乗じる。
加算部１５gは、1−α1乗算部１５eにより画素毎に透過率1-α1が乗じられた非圧縮デジタルピクチャと、α1乗算部１５fにより画素毎に透過率α1が乗じられた非圧縮グラフィクスとを合成して、合成ピクチャを得る。
【０１８４】
1−α2乗算部１５hは、加算部１５gにより合成がなされたデジタルピクチャを構成する画素の揮度に、透過率1-α2を乗じる。
α2乗算部１５iは、Interactive Graphicsデコーダ１１ｃに格納されている非圧縮グラフィクスを構成する画素の揮度に、透過率α2を乗じる。
加算部１５jは、1−α2乗算部１５hにより画素毎に透過率1-α2が乗じられた非圧縮デジタルピクチャと、α2乗算部１５iにより画素毎に透過率α2が乗じられた非圧縮グラフィクスとを合成して、合成ピクチャを得る。
【０１８５】
HDMI送受信部１６は、HDMI（HDMI:High Definition Multimedia Interface）を介して接続された他の機器から、その機器に関する情報を受信とすると共に、加算部１５jの合成により得られたデジタル非圧縮のビデオを、ミキサー９aにより合成がなされたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。
以上に述べた、textSTストリーム、プライマリオーディオストリーム、セカンダリオーディオストリーム、Out＿of＿MUX＿Secondaryビデオストリーム、PGストリーム、IGストリームが、追加コンテンツ格納領域における連続データ領域に記録されるので、プライマリオーディオストリームと、セカンダリオーディオストリームとのミキシング出力や、ピクチャインピクチャ再生が、途切れることなく、スムーズに再生されることになる。
【０１８６】
(第７実施形態)
第１実施形態ではAVストリームを、アロケーションユニットに記録することにしたが、本実施形態では、AVストリームを複数のエクステントに分割して記録する改良である。この場合、エクステント一個当たりの最小データ長を検討せねばならない。この最小データ長を“Ｓa”とする。AVストリームは、本来BD-ROMに記録されて再生装置に供給されるものであるため、BD-ROMのような光ディスクからの再生時に、再生の途切れがないことが保証されるのであれば、リムーバブルメディアからの読み出し時においても、AV再生の途切れがないことが保証されると考えられる。
【０１８７】
リムーバブルメディアから読み出されたTSパケットは、リードバッファに格納された上、デコーダに出力されるが、リードバッファへの入力が、Rudというビットレートで行われ、ECCブロックにおける論理ブロック数をSeccとした場合、
Ｔoverheadは、
Ｔoverhead≦(2×Secc×8)／Rud＝20m秒
という計算で与えられる。
【０１８８】
リムーバブルメディアから読み出されたTSパケットは、Sourceパケットの状態でリードバッファに格納された上、TS＿Recording＿rateという転送レートで、デコーダに供給される。
TS＿Recording＿rateという転送レートでの、デコーダへのTSパケット供給が跡絶えさせないためには、Ｔjumpの間、リードバッファからデコーダへのTSパケット出力が継続している必要がある。Ｔjumpとは、リムーバブルメディアからの読出先を連続データ領域から別の連続データ領域に切り替えるために必要となる時間である。
【０１８９】
リードバッファからの出力は、TSパケットではなく、Sourceパケットの状態でなされるので、TSパケットのSourceパケットとのサイズ比を192/188とした場合、Ｔjumpの間、(192/188×TS＿Recording＿rate)という転送レートにより、リードバッファからのSourceパケット出力が継続している必要がある。
従って、リードバッファが、アンダーフローしないためのバッファ蓄積量は、
Ｂoccupied≧(Tjump/1000×8)×((192/188)×TS＿Recording＿rate)
となる。
【０１９０】
リードバッファへの入力レートはRud、リードバッファからの出力レートはTS＿Recording＿rate×(192/188)であるので、リードバッファへの蓄積レートは、入力レート−出力レートの計算で与えられ、(Rud−TS＿Recording＿rate×(192/188))になる。
このＢoccupiedを、リードバッファに蓄積するのに要する時間Txは、
Tx＝Ｂoccupied/(Rud−TS＿Recording＿rate×(192/188))
になる。
【０１９１】
リムーバブルメディアからの読み出しには、この時間TxにおいてRudでのTSパケット入力を継続する必要があるので、AVストリームを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Ｓaは、Ｓa＝Rud×Tx＝Rud×Ｂoccupied/(Rud−TS＿Recording＿rate×(192/188))
≧Rud×(Tjump/1000×8)×((192/188)×TS＿Recording＿rate)
/(Rud−TS＿Recording＿rate×(192/188))
≧(Rud×Tjump/1000×8)×
×TS＿Recording＿rate×192/(Rud×188−TS＿Recording＿rate×192)
になる。よってＳa≧
(Tjump×Rud/1000×8)×（TS＿Recording＿rate×192/(Rud×188−TS＿Recording＿rate×192))
になる。
【０１９２】
AVストリームを構成する各ファイルは、デコーダのアンダーフローをおこさないように算出されたＳa以上のデータ長をもつことにより、AVストリームを構成する各ファイルのエクステントが、リムーバブルメディア上において離散的に位置されたとしても、再生時においてデコーダへのTSパケット供給が途絶えさせることなく、連続的に読み出されることになる。リムーバブルメディアにおいて、Ｓaにあたる連続記録領域を確保することができれば、AV再生の途切れがないことは保証される。
【０１９３】
以上のように本実施形態によれば、AV再生の途切れがないことが保証された最小記録長に分割して、AVストリームを記録したとしても、リムーバブルメディアからのAVストリームの再生を途切れさせることはない。
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
【０１９４】
（DiscIDの上位に存在する“0”の桁の扱い)
MHP(Multimedia Home Platform)上で動作するアプリケーションは、MHP固有のIDを使用する際、上位桁の“0”を省略する。DiscIDでも、上位桁の“0”については、省略することが望ましいので、本実施形態におけるJava(登録商標)アプリケーションは、そのような、上位桁の“0”を省略したDiscIDを用いて、仮想パッケージの構築を命じてもよい。
【０１９５】
そのように、上位桁の0を省略する場合、リムーバブルメディアにおけるディレクトリ構成は、図４０に示すものとなる。
図４０は、上位桁の0を省略する場合のディレクトリ構成を示す図である。OrganizationIDディレクトリ, DiscIDディレクトリは、index.bdmvに示される32ビットのOrganizationID,128ビットのDiscIDを１６進表記で表したディレクトリ名となる。
【０１９６】
これらのうちDiscIDは先頭の０を省略することにより、全体のパス長を短くしている。ただし、先頭の８文字が全て０になる場合、ディレクトリ名は“０”1文字となる。また、DiscIDディレクトリにおいて、先頭ではなく、途中に０が続く場合は、省略してはならない。すなわち、DiscID=00000000123456781234567812345678の場合、DiscIDのディレクトリ構成は0/12345678/12345678/12345678と先頭の０を省略可能であるが、DiscID=12345678000000001234567812345678の場合は、省略せずに12345678/00000000/12345678/12345678となる。省略の対象は、DiscIDに限らず、CertIDディレクトリも同様に先頭の０を省略してもよい。
【０１９７】
(連続データ領域のバリエーション)
連続データ領域を構成する記録単位の一例として、各実施形態では、SDメモリカードにおける４Ｍバイトのアロケーションユニットを題材に選んだが、AVストリーム形式の追加コンテンツの再生品位を保証する記録単位であれば、アロケーションユニット以外の記録単位であってもよい。例えば、DVD-RAM、BD-RE等のゾーンCLV上の光ディスクにおいて、各ゾーン領域内の連続した２Ｍバイトのセクタ群を、連続データ領域として採用してもよい。また、ECCブロックを構成するようなセクタ群を連続データ領域として採用してもよい。更に４Ｍバイトではなく、３Ｍバイト、２Ｍバイトの記録単位を、連続データ領域の記録単位として採用してもよい。
【０１９８】
更に連続データ領域は、BUDA ディレクトリにおける追加コンテンツ格納領域に存在するとしたが、絶対ファイルパスにて特定されるのならば、物理的に分散配置されても構わない。同様に通常データ領域も、BUDAディレクトリにおける追加コンテンツ格納領域に存在するとしたが、絶対ファイルパスにて特定されるのならば、物理的に分散配置されても構わない。
【０１９９】
(取得手段)
課題解決手段における取得手段は、ネットワークインターフェイス２１に対応するものとして説明したが、ネットワークを介して追加コンテンツを取得するというのは必須ではなく、USBコネクタ、HDMIコネクタ接続を介して追加コンテンツを取得してもよいし、他の記録媒体からのコピー処理によって追加コンテンツを取得してもよい。
【０２００】
(第２記録媒体の種類)
第２記録媒体としては、SDメモリカードを説明の題材に選んだが、HDD等、ロングファイル名をサポートするようなビルドインメディアに、８.３形式のファイルシステムを採用することで、ビルドインメディアを、第２記録媒体に用いてもよい。
この場合、BD-Jアプリケーションは、８文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が３文字以下であるファイルパスを用いて第２記録媒体であるビルドインメディアをアクセスすることになる。
【０２０１】
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava（登録商標）を利用したが、Java（登録商標）ではなく、UNIX（登録商標） OSなどで使われているB-Shellや、PerlScript、ECMA Scriptなど他のプログラミング言語であっても良い。
(コンテンツの置き場所)
上述の実施の形態ではBD-ROMを再生する再生装置について説明をしたが、書き込み可能な光記録媒体に上述の実施の形態にて説明をしたBD-ROM上の必要なデータが記録されていた場合においても上述と同様の効果を奏することはもちろんのことである。
【０２０２】
(再生装置１０２の任意的な構成要素)
任意的要素として、再生装置１０２にレンダリングエンジンを設けてもよい。レンダリングエンジンは、Java(登録商標)2D，OPEN-GLといった基盤ソフトウェアを備え、BD-Jアプリケーションからの指示に従ってコンピュ-タ・グラフィックスの描画を行い、描画されたコンピュ-タ・グラフィックスをプレーンメモリに出力する。この描画を高速に行うには、任意的なハードウェア要素として、再生装置１０２に、グラフィクスアクセレータを追加するのが望ましい。他にも、浮動小数点演算を行うコプロセッサ(FloatingPointed Coprocessor)が実装されていてもよい。
【０２０３】
(BD-Jアプリケーション供給の仕方)
上述したような追加コンテンツの書き込みは、映像再生と、BD-Jアプリケーションの実行を関連付けさせて視聴を行なわせる機器であれば、一般のどのような機器に対しても適用可能である。例えば、BD-Jアプリケーションが、放送波やネットワークストリームに組み込まれて、供給されるような再生装置１０２においても、適用が可能となる。
【０２０４】
(プログラム記述言語の適用範囲)
上記実施形態では、オブジェクト指向プログラミング言語としてJava(登録商標)言語を利用したが、Java(登録商標)ではなく、UNIX(登録商標) OSなどで使われているB-Shellや、PerlScript、ECMA Scriptなど他のプログラミング言語であっても良い。
（BD-ROMコンテンツ）
BD-ROMに記録されるBD-Jアプリケーションは、映画作品を構成するものであるとしたが、ローカルストレージにインストールして利用されるアプリケーションではなく、BD-ROMに記録された状態で利用されるアプリケーションであるなら、これ以外のものを構成するものであってもよい。例えば、ゲームソフトを構成するアプリケーションであってもよい。また、本実施形態ではディスク媒体として、BD-ROMを題材に選んだが、可搬体であり、著作権保護がなされた記録媒体であるなら、他の記録媒体を採用してもよい。
【０２０５】
またAVストリーム、プレイリスト情報は、プリレコーディング技術にて、BD-ROMに記録され、ユーザに供給されることを前提としたが、リアルタイムレコーディング技術にてBD-REに記録され、ユーザに供給されるものであってもよい。
この場合AVストリームは、アナログ入力信号を記録装置がリアルタイムエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
【０２０６】
リアルタイムレコーディングにあたって記録装置は、AVストリームの記録と共に、メモリ上でClip情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したClip情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたClip情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したClip情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、Clip情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。
【０２０７】
(システムLSI化)
再生装置１０２を構成するハードウェアのうち、機構的な構成要素(BDドライブ２０、ローカルストレージ２２)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とする部分を、1つのシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
【０２０８】
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置１０２の中核としての役割を果たす。
【０２０９】
かかるシステムLSIは、再生装置１０２は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
エレメンタバッファ７やビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
【０２１０】
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
【０２１１】
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「ProcessingUnit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。
【０２１２】
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(GeneralPurpose Input Output)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。
【０２１３】
・ストリームI/Oブロック
これは、USBインターフェイスやATA Packetインターフェイスを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
【０２１４】
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
【０２１５】
具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証する等の調整を加えながら、回路図を完成させてゆく。
【０２１６】
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(Systemon chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した再生装置１０２の内部構成図を基に作ることができる。
【０２１７】
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
【０２１８】
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVDVideo-Recording規格ではVOBと呼ばれる。
【０２１９】
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVDVideo-Recording規格ではTime Mapと呼ばれる。
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。
【産業上の利用可能性】
【０２２０】
本発明を構成する再生装置は、製造産業において経営的に、また継続的及び反復的に製造し、販売することができる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用できる。
【図面の簡単な説明】
【０２２１】
【図１】第１実施形態におけるシステム図
【図２】第１実施形態におけるBD-ROMの内部構成を示す図
【図３】第１実施形態におけるBD-ROMが対象としているソフトウェアのレイヤモデルを示す図
【図４】第１実施形態における２つのモードの動的な再生制御にて作成される映画作品を示す図
【図５】第１実施形態における再生装置の内部構成を示す図
【図６】リムーバブルメディアであるSDメモリカードの内部構成を示す図
【図７】通常データ領域、連続データ領域の一例を示す図
【図８】リムーバブルメディアであるSDメモリカードのファイルシステム領域の内部構成を示す図
【図９】（ａ）二重化FATの内部構成を示す図  （ｂ）ディレクトリエントリの共通のデータ構造を示す図
【図１０】00001.mtsをクラスタサイズに合わせて5つに分割し、各分割部分を、クラスタ504〜50Bに格納する状態を想定した図に示している。
【図１１】00001.mtsが複数のクラスタに記録されている場合のディレクトリエントリ及びFATについての設定例を示す図に示している。
【図１２】第１実施形態におけるリムーバブルメディアのディレクトリ構成を示す図
【図１３】第１実施形態における仮想パッケージを示す図
【図１４】第１実施形態におけるBD-Jモジュールの具体的な構成を示す図
【図１５】第１実施形態におけるindex.bdmvファイルとタイトルの関係を示す図
【図１６】ファイルI/Oモジュール３４を介した、通常データ領域又は連続データ領域に対するデータ書き込みを模式的に示す図である。
【図１７】リムーバブルメディアへのダウンロードの処理手順を示すフローチャート
【図１８】追加コンテンツのダウンロード処理の処理手順を示すフローチャート
【図１９】WriteAPIの処理手順を示すフローチャート
【図２０】アロケーションユニットに対する追記の処理過程を連続写真的な表記で描いた図
【図２１】アロケーションユニットに対する上書きの処理過程を連続写真的な表記で描いた図
【図２２】ファイル種別判別の処理手順を示すフローチャート
【図２３】追加コンテンツのファイル名を８.３形式に変換する処理の手順を示すフローチャート
【図２４】第１実施形態における仮想パッケージ構築の処理手順を示すフローチャート
【図２５】Java(登録商標)アプリケーションが仮想パッケージ構築/更新要求を発行し、仮想パッケージが更新されるまでの、時間的な処理の流れを示す図
【図２６】連続データ領域の空き領域が不足していた場合の処理を示すフローチャート
【図２７】連続データ領域に書込みできなかった場合におけるユーザに対する通知の一例
【図２８】AVストリームの書込みに失敗した場合を考慮したフローチャート
【図２９】書込み処理に失敗したことをユーザに示す画面表示の一例
【図３０】（ａ）（ｂ）通常データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３１】（ａ）（ｂ）連続データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３２】通常データ領域への一括書込を実現する場合の処理手順を示すフローチャート
【図３３】ヘッダデータからストリーム/非ストリームの判断を行う処理手順を示すフローチャート
【図３４】BD-ROMにおけるAVストリームに多重化されるエレメンタリストリームを示す図
【図３５】BD-ROMに記録されているエレメンタリストリームにおけるPID割当マップを示す図
【図３６】追加コンテンツ格納領域に配されるべきAVストリームに多重化されるエレメンタリストリームを示す図
【図３７】追加コンテンツ格納領域に配されるべきAVストリームに多重化されたエレメンタリストリームにおけるPID割当マップの一例
【図３８】AV再生部２４の内部構成を示す図
【図３９】再生装置の出力段の構成を示す図
【図４０】上位桁の0を省略する場合のディレクトリ構成を示す図
【符号の説明】
【０２２２】
１００  BD-ROM
１０１  WWWサーバ
１０２  再生装置
１０３  テレビ
１０４  リムーバブルメディア
２１  ネットワークインターフェース
２２  ビルドインメディア
２３  仮想ファイルシステム
２５  AV再生ライブラリ
２６  静的シナリオメモリ
２７  動的シナリオメモリ
２８  HDMVモジュール
２９  BD-Jモジュール
３０  UO検知モジュール
３１  モード管理モジュール
３２  メディア再生モジュール
３４  ファイルI/Oモジュール
３５  ネットワークモジュール
３６  アプリケーションマネージャ
３７  DiscID確認モジュール
３８  リムーバブルメディア検知モジュール
３９  仮想ファイルシステム管理モジュール
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008149501.tif 000043
【図２】
2008149501.tif 000044
【図３】
2008149501.tif 000045
【図４】
2008149501.tif 000046
【図５】
2008149501.tif 000047
【図６】
2008149501.tif 000048
【図７】
2008149501.tif 000049
【図８】
2008149501.tif 000050
【図９】
2008149501.tif 000051
【図１０】
2008149501.tif 000052
【図１１】
2008149501.tif 000053
【図１２】
2008149501.tif 000054
【図１３】
2008149501.tif 000055
【図１４】
2008149501.tif 000056
【図１５】
2008149501.tif 000057
【図１６】
2008149501.tif 000058
【図１７】
2008149501.tif 000059
【図１８】
2008149501.tif 000060
【図１９】
2008149501.tif 000061
【図２０】
2008149501.tif 000062
【図２１】
2008149501.tif 000063
【図２２】
2008149501.tif 000064
【図２３】
2008149501.tif 000065
【図２４】
2008149501.tif 000066
【図２５】
2008149501.tif 000067
【図２６】
2008149501.tif 000068
【図２７】
2008149501.tif 000069
【図２８】
2008149501.tif 000070
【図２９】
2008149501.tif 000071
【図３０】
2008149501.tif 000072
【図３１】
2008149501.tif 000073
【図３２】
2008149501.tif 000074
【図３３】
2008149501.tif 000075
【図３４】
2008149501.tif 000076
【図３５】
2008149501.tif 000077
【図３６】
2008149501.tif 000078
【図３７】
2008149501.tif 000079
【図３８】
2008149501.tif 000080
【図３９】
2008149501.tif 000081
【図４０】
2008149501.tif 000082
【国際調査報告】
2008149501.tif 000083
2008149501.tif 000084
2008149501.tif 000085
2008149501.tif 000086