(57)【特許請求の範囲】
【請求項１】
アプリケーションを実行させながら、再生制御またはコピー制御を実行する再生装置であって、
アプリケーションを動作させるプラットフォームと、
再生部を備え、
前記再生制御は、前記プラットフォーム内のI/Oモジュールを介した前記アプリケーションからの要求に基づき、複数の記録媒体のうちの第一記録媒体に記録されているデータを読み出して、前記再生部に供する処理であり、
前記コピー制御は、前記プラットフォーム内のI/Oモジュールを介することなく、前記第一記録媒体からデータを読み出して、前記複数の記録媒体のうちの第二記録媒体に書き込む処理であり、
前記コピー制御を実行している間、前記I/Oモジュールが、前記第一記録媒体のデータに対する前記アプリケーションからの要求を拒否する状態となるように構成した再生装置。
【請求項２】
前記再生装置は更に、前記第一記録媒体または前記第二の記録媒体からデータを読み込む読込制御部と、
前記第二の記録媒体にデータを書き込む書込制御部と、
前記前記第一記録媒体からデータを読み出し、前記読み出したデータを第二記録媒体に書き込むように前記読込制御部および前記書込制御部を動作させるコピー制御部とを備え、
前記プラットフォームは、前記アプリケーションが前記コピー制御部を動作させるためのコピー制御ＡＰＩを含み、
前記アプリケーションがコピー制御ＡＰＩを用いて前記コピー制御部の動作を制御できるように構成したことを特徴とする請求項１に記載の再生装置。
【請求項３】
前記再生部は、デマルチプレクサ、デコーダを備え、
前記再生装置は、前記デマルチプレクサおよび前記デコーダを制御するＡＶ再生ライブラリを備え、
前記プラットフォームは、前記ＡＶ再生ライブラリを呼出すためのＡＶ再生制御ＡＰＩを有する媒体再生モジュールを含み、
前記アプリケーションが前記媒体再生モジュールに含まれるＡＶ再生制御ＡＰＩを用いて呼び出された前記ＡＶ再生ライブラリを用いて前記デマルチプレクサおよび前記デコーダを制御することにより前記再生制御を行なえるように構成するとともに、前記コピー制御部によるコピー制御が実行されている間、
前記コピー制御部が前記ＡＶ再生ライブラリを用いて前記デマルチプレクサおよび前記デコーダを制御できるように、前記アプリケーションが前記媒体再生モジュールに含まれるＡＶ再生制御ＡＰＩを用いて呼出される前記ＡＶ再生ライブラリの利用を拒否することを特徴とする請求項２記載の再生装置。
【請求項４】
前記コピー制御部によるコピー制御が実行されている間、前記媒体再生モジュールに含まれるＡＶ再生制御ＡＰＩは、アプリケーションからの要求を拒否する状態に遷移する請求項３記載の再生装置。
【請求項５】
前記コピー制御は、前記再生装置とネットワークを介して接続するサーバ装置の管理下の元、実行されるマネージドコピーであり、
前記コピー制御部は、
前記サーバ装置から送信される鍵情報を受信して、前記受信した鍵情報をコピー制御部に設定する受信部とを備え、
前記コピー制御部によるコピー制御は、前記受信された鍵情報がコピー制御部に設定された後に開始される
ことを特徴とする請求項３記載の再生装置。
【請求項６】
前記コピー制御部による前記読込制御部、及び前記書込制御部を動作させる処理が開始すると、
前記I/Oモジュール及び前記媒体再生モジュールが前記アプリケーションからの再生要求を拒否する状態になれば、前記アプリケーションは、前記再生装置が備えるキャッシュメモリ内のデータを用いた処理を行い、
前記コピー制御部による前記読込制御部、及び前記書込制御部を動作させる処理が完了すれば、前記I/Oモジュール及び前記媒体再生モジュールは前記アプリケーションからの再生要求に従う状態になる
請求項４に記載の再生装置。
【請求項７】
前記コピー制御部は、
前記コピー制御のための第一記録媒体上のデータの読込みを開始したこと、及び、前記第二記録媒体上へデータの書込みを完了したことを、通知する通知部を備え、
前記コピー制御ＡＰＩは前記アプリケーションからの呼出しに応じて、前記通知部により通知すべきアプリケーションを登録する登録ＡＰＩを含み、
前記プラットフォーム上で動作するアプリケーションが前記登録ＡＰＩを呼出して登録した場合に、前記通知部は前記登録ＡＰＩにより登録されたアプリケーションへ通知するように構成した、請求項２に記載の再生装置。
【請求項８】
前記通知部は、前記第一記録媒体上のデータの読込み、もしくは前記第二記録媒体上へデータの書込みに失敗した場合、前記コピー制御によるコピーが失敗したことを前記登録ＡＰＩにより登録されたアプリケーションに通知する、
請求項７に記載の再生装置。
【請求項９】
前記再生装置はさらに、進捗管理部を備え、
前記進捗管理部は、アプリケーションからのプログラミングインターフェイスの呼び出しに応じて、前記コピー制御による第二記録媒体へ書込み済みのデータサイズと、書込み予定でまだ書込まれていない、残りのデータサイズとを前記アプリケーションに通知する、
請求項７に記載の再生装置。
【請求項１０】
前記I/Oモジュールが前記アプリケーションからの再生要求を拒否する状態になると、前記アプリケーションは、前記再生装置が備えるキャッシュメモリ内のデータを用いた処理を行えるように構成した請求項１記載の再生装置。
【請求項１１】
アプリケーションをコンピュータ上で実行させながら、再生制御またはコピー制御を実行する再生方法であって、
前記コンピュータは、アプリケーションを動作させるプラットフォームと、再生部とを備え、
前記再生制御は、前記プラットフォーム内のI/Oモジュールを介した前記アプリケーションからの要求に基づき、複数の記録媒体のうちの第一記録媒体に記録されているデータを読み出して、前記再生部に供する処理であり、
前記コピー制御は、前記プラットフォーム内のI/Oモジュールを介することなく、前記第一記録媒体からデータを読み出して、前記複数の記録媒体のうちの第二記録媒体に書き込む処理であり、
前記コピー制御を実行するステップと、
前記コピー制御が実行されている間、前記I/Oモジュールを、前記第一記録媒体のデータに対する前記アプリケーションからの要求を拒否する状態にする要求拒否ステップと
を含む、再生方法。
【請求項１２】
アプリケーションをコンピュータ上で実行させながら、再生制御またはコピー制御をコンピュータに実行させるプログラムであって、
前記コンピュータは、アプリケーションを動作させるプラットフォームと、再生部とを備え、
前記再生制御は、前記プラットフォーム内のI/Oモジュールを介した前記アプリケーションからの要求に基づき、複数の記録媒体のうちの第一記録媒体に記録されているファイルを読み出して、前記再生部に供する処理であり、
前記コピー制御は、前記プラットフォーム内のI/Oモジュールを介することなく、前記第一記録媒体からデータを読み出して、前記複数の記録媒体のうちの第二記録媒体に書き込む処理であり、
前記コピー制御を実行するステップと、
前記コピー制御が実行されている間、前記I/Oモジュールを、前記第一記録媒体のデータに対する前記アプリケーションからの要求を拒否する状態にする要求拒否ステップとをコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、BD-ROM（Blu-Ray Disc Read Only Memory）等の記録媒体に記録されている映像データを再生する再生装置に関し、特に、当該記録媒体に記録されている映像データを、当該記録媒体以外の他の記録媒体へ記録する技術（マネージドコピー）に関する。
【背景技術】
【０００２】
マネージドコピーとは、BD-ROM等の読み出し専用記録媒体に記録されているデジタルストリームやアプリケーションプログラム（以下、「アプリケーション」という。）を、別の光ディスク（BD-R，BD-RE，DVD-R，DVD-RW，DVD-RAM等）やハードディスク、リムーバブルメディア（SDメモリーカード、メモリースティック、コンパクトフラッシュ（登録商標）、スマートメディア、マルチメディアカード等）などの読み書き可能な記録媒体へコピーする際、無制限にコピーを許すのではなく、コピー前にサーバと通信し、認証が行われ許可された状態においてのみコピー実行可能にする技術である。この技術により、バックアップ回数を制限したり、課金された状態でのみバックアップを許す等の制御を行うことができるため、BD-ROMのバックアップを完全に禁止する必要はなく、管理された状態でのバックアップが可能となり、BD-ROM視聴の利便性を向上させることができる。
【０００３】
マネージドコピーについての先行技術としては、以下の特許文献に記載されているものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８-９８７６５号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、マネージドコピーを全て再生装置側に任せてしまうと、コンテンツ提供者による独自の管理ができなくなってしまうため、例えば、コンテンツ提供者が独自の課金方法を採用したり、コピー中に宣伝を挿入したり、またコピー時間中もユーザに退屈させないよう簡単なゲームアプリを動作させたりするなど、コピー時間も有効に使うということができなくなる。しかしながら、マネージドコピーには多くのリソースを消費するため、再生装置側で制御するマネージドコピーと、記録媒体上のアプリケーション実行を同時に動作させるとリソース不足に陥る恐れがある。例えば、BD-ROMからDVD-Rへバックアップするときは、BD-ROMの読込み、DVD-Rへの書込みに加え、デジタルストリームの再圧縮と暗号化処理まで必要になる。そのような状況下で、アプリケーションを実行させると、メモリ不足、BD-ROM読込みの衝突、デジタルストリームの再生と圧縮の衝突等、様々な問題が発生する。もし、マネージドコピーを行っている再中にアプリケーションを実行させ、リソース不足に陥ったために、コピーに失敗したとなると、マネージドコピーのために課金したユーザに対し多大なる迷惑をかけてしまうことになる。
【０００６】
上述したような競合を避けるには、マネージドコピーの実行中は、アプリケーションの動作を全て終了させるという制御を実現するという考えがある。しかしマネージドコピーとのリソース使用の競合を回避するため、動作中のアプリケーションを全て終了するとなると、マネージドコピーによる課金処理やマネージドコピーの進捗表示等をアプリケーションに実行させることができず、再生装置のレジデントプログラムによってこれらの機能を実現する必要がある。しかし、ネットワークにおける会計方式(クリアランス)は、コンテンツ提供者毎に異なることが多いため、再生装置側で、マネージドコピーによる課金処理を実現するとなると、再生装置を製造するメーカーは、それらコンテンツ提供者毎のクリアランスをサポートする必要がある。このような、コンテンツ提供者毎のクリアランスのサポートは、再生装置のメーカーの負担をとてつもなく大きくするものであり、家電機器へのマネージドコピー採用の可能性を遠退ける結果になる。
【０００７】
本発明の目的は、マネージドコピーとアプリケーション実行のリソース競合を回避しつつ、マネージドコピーとアプリケーション実行の同時動作を可能にする再生装置を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため本発明は、アプリケーションを実行させながら、複数の記録媒体に対する媒体制御を実行する再生装置であって
複数の記録媒体に対する媒体制御には、再生制御と、コピー制御とがあり、
アプリケーションを動作させるプラットフォームと、
再生部とを備え、
前記再生制御は、プラットフォーム内のI/Oモジュールを通じたアプリケーションからの要求に基づき、複数の記録媒体のうち、第一記録媒体に記録されているファイルを読み出して、再生部に供する処理であり、
前記コピー制御は、プラットフォーム内のI/Oモジュールを介することなく、前記第一記録媒体からデータを読み出して、第二記録媒体に書き込む処理であり、
前記I/Oモジュールは、コピー制御が実行されている間、アプリケーションからの要求を拒否する、ことを特徴としている。
【発明の効果】
【０００９】
コピー制御を実行している間、プラットフォーム内部のI/Oモジュールは、前記アプリケーションからの再生指示を拒否することにより、マネージドコピー中にアプリケーションからの再生要求が行われても、再生が行われることはないため、デジタルストリームの読込み・復号・圧縮に利用されるピックアップ制御・エンコーダ・デコーダ等のリソース競合を防ぐことが可能となる。
【００１０】
また、マネージドコピーの実行中において、動作中のアプリケーションを全て終了させる訳ではないので、例えば動作中のアプリケーションが利用可能なAPIを用いて、コピー動作中のユーザインターフェイスをコントロールすることができる。
【００１１】
よって、コピー中の宣伝・広告表示を実現することができ、プレーヤ側ではマネージドコピーにおいてユーザインターフェイスをもたなくてもよいので、再生装置における実装コストを低減することができる。またマネージドコピーの実現にあたって、サーバとの通信は全てアプリケーションで完結することができるので、サーバとの通信にどのようなプロトコルを使用するかという制限がコンテンツの制作スタジオに課されることはない。通信プロトコル選択の自由度が生まれるので、スタジオは独自のプロトコルを採用することで、マネージドコピーのためのクライアランスを実現することができる。また再生装置は、サーバとのやりとりのために、レジデントプログラム独自の通信モジュールを実装しなくて済むので、実装コストを低減することができる。
【００１２】
加えて、本発明を採用することで、コンテンツ提供者が、ネットワークを通じて、ユーザにBD-ROMのコピーを認め、その対価を徴収することができ、その対価徴収にあたって、コンテンツ提供者独自のクリアランスを採用することができる。よってBD-ROMによる映画作品の頒布で一次的な収益を得た後、そのBD-ROMのコピーを認めることで、コンテンツ提供者は、二次的な収益を得るというビジネスモデルの実現が容易になる。よってコンテンツ提供者は、新たな商機を獲得することができる。
【００１３】
また任意的であるが、前記コピー制御部による前記第一記録媒体上のデータの読込み、及び前記第二記録媒体へのデータの書込みを実行している間、
前記I/Oモジュール及び媒体再生モジュールがアプリケーションからの再生要求を拒否する状態になれば、前記アプリケーションは、第一記録媒体が存在しないものとして処理を行い、
前記I/Oモジュール及び媒体再生モジュールがアプリケーションからの再生要求に従う状態になれば、前記アプリケーションは、第一記録媒体が存在するものとして処理を行うことが望ましい。
【００１４】
マネージドコピー中に、アプリケーションがBD-ROM上データへのアクセスを要求したとしても、第一記録媒体であるBD-ROMは、仮想的に抜かれている状態になっているため、たとえ、アクセス先のデータが存在していても、存在しないとしてアクセスを失敗させ、実際のディスクアクセスを行わないため、BD-ROMの読込みが衝突することを防ぐことが可能となる。
【００１５】
また任意的であるが、前記通知部は、前記第一記録媒体上のデータの読込み、もしくは前記第二記録媒体上へデータの書込みに失敗した場合、前記コピー制御によるコピーが失敗したことを前記登録ＡＰＩにより登録されたアプリケーションに通知することが望ましい。
【００１６】
この場合、コピー中にメディアを強制的に抜くなどして、コピーに失敗しても、コピー失敗通知をアプリケーションが受け取ることができるため、コピーに失敗したときは、コピー前に行った課金をキャンセルするなどの対応策を取ることが可能となる。
【００１７】
また任意的であるが、前記再生装置はさらに、進捗管理部を備え、
前記進捗管理部は、アプリケーションからのプログラミングインターフェイスの呼び出しに応じて、前記コピー制御による第二記録媒体へ書込み済みのデータサイズと、書込み予定でまだ書込まれていない、残りのデータサイズとを前記アプリケーションに通知することが望ましい。
【００１８】
これにより、仮想的にディスクが抜かれた状態になり、アプリケーションからBD-ROM上データへのアクセスができない状態ではあるが、コピーの開始と終了、及び進捗状況をアプリケーションが把握できるため、画面に進捗を示す進捗バーを表示したり、残り時間を表示したり、コピー完了まで、宣伝・広告画面の表示やゲームアプリ等の実行が可能となる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１におけるシステム図
【図２】実施の形態１におけるBD-ROMのデータ階層図
【図３】実施の形態１におけるBD-ROMが対象としているソフトウェアのレイヤモデルを示す図
【図４】実施の形態１における２つのモードの動的な再生制御にて作成される映画作品を示す図
【図５】実施の形態１における再生装置の内部構成を示す図
【図６】実施の形態１におけるマネージドコピー制御部の内部構成を示す図
【図７】実施の形態１におけるBD-Jモジュールの具体的な構成を示す図
【図８】実施の形態１におけるマネージドコピーのフローチャート
【図９】実施の形態１におけるコピー先メディア選択画面の一例を示す図
【図１０】実施の形態１におけるマネージドコピー中の画面表示の一例を示す図
【図１１】実施の形態１におけるディスクアクセス制限の開始・終了を示す図
【図１２】実施の形態１におけるディスクアクセス制限中のBD-Jモジュールの内部構成を示す図
【図１３】実施の形態１におけるマネージドコピー制御部のコピー実施のフローチャート
【図１４】実施の形態２におけるリムーバブルメディアのファイル名制限を考慮したマネージドコピーを示す図
【図１５】実施の形態２におけるファイル名変換テーブルの一例を示す図
【図１６】録再型の再生装置の一般的な内部構成を示すと共に、このトランスコードの構成要素を書き加えた図である。
【図１７】BD-Jモジュールの一般的構成要素を明示した内部構成図である。
【図１８】BD-Jアプリケーションからの要求を拒否させる状態を示す図である。
【図１９】BD-Jアプリケーションからの要求を拒否させる状態が終了して通常に戻った状態を示す図である。
【図２０】マネージドコピー前後におけるタイトルバウンダリーアプリケーション、コピー制御アプリケーション、マネージドコピー制御部による処理の時間的遷移を示す。
【図２１】BD-JアプリケーションからのAPIコールと、このコールに応じた処理内容とを対応付けて示す。
【図２２】コピー実行部６０４の処理手順を示すフローチャートである。
【図２３】BD-Jアプリケーションマネージャの処理手順を示すフローチャートである。
【図２４】コピー制御を行うBD-Jアプリケーションが、APIをどのように利用するかという処理手順を示すフローチャートである。
【図２５】APIを利用した課金処理の処理手順を示すフローチャートである。
【図２６】ミニゲーム実行や予告編再生を伴うコピー進捗表示の一例を示す。
【発明を実施するための形態】
【００２０】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００２１】
（実施の形態１）
先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る再生装置の、使用行為についての形態の一例を示す図である。図１において、本発明に係る再生装置は、再生装置１０１である。この再生装置１０１は例えば、リモコン１０２、テレビ１０３により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。また、再生装置１０１にはSDメモリーカード、メモリースティック、コンパクトフラッシュ（登録商標）、スマートメディア、マルチメディアカード等のリムーバブルメディア１０４を挿入する挿入口、及びBDドライブ１０６を外付けするための挿入口を備える。
【００２２】
以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体（メディア）について説明する。本発明に係る再生装置により、再生されるのは、この例では光ディスクであるBD-ROM１０５である。
図２は、BD-ROM（以降、「BD」と称する場合もある）の構成を示した図である。本実施の形態においては、映画等のAVコンテンツを再生するためのAVアプリケーションを主眼においてBD-ROMを説明するが、BD-ROMをCD-ROMやDVD-ROMのようにコンピュータ用途の記録媒体として利用することも当然ながら可能である。BD-ROMは、他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けて螺旋状に記録領域を持ち、内周のリード・インと外周のリード・アウトの間に論理データを記録できる論理アドレス空間を有している。また、リード・インの内側にはBCA（Burst Cutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、著作権保護技術などに利用され、記録媒体の物理的なシリアル番号を示すPMSN（Pre-recorded  Media Serial Number）が記録されている。
【００２３】
論理アドレス空間には、ファイルシステム情報（ボリューム）を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、UDFやISO９６６０などのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっており、２５５文字のファイル名、ディレクトリ名を読み出すことが可能である。
本実施の形態の場合、BD-ROM上のディレクトリ、ファイル構造は、ルートディレクトリ（ROOT）直下にBDMVディレクトリとCERTIFICATEディレクトリが置かれている。BDMVディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリであり、CERTIFICATEディレクトリは配下にdiscroot.crt（ファイル名固定）ファイルが存在し、アプリケーションの署名検証に用いられる証明書が記録されている。
【００２４】
BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリと呼ばれる５つのサブディレクトリが存在し、BDMVディレクトリには、index.bdmv，MovieObject.bdmvの２種類のファイルが配置されている。
STREAMディレクトリには、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子M２TSが付与されたファイル（xxx.m２ts［“xxx”は可変、拡張子“m２ts”は固定］）が存在する。PLAYLISTディレクトリには、拡張子mplsが付与されたファイル（xxx.mpls［“xxx”は可変、拡張子“mpls”は固定］）が存在する。CLIPINFディレクトリには、拡張子clpiが付与されたファイル（xxx.clpi  ［“xxx”は可変、拡張子“clpi”は固定］）が存在する。JARディレクトリには、拡張子jarが付与されたファイル（xxx.jar［“xxx”は可変、拡張子“jar”は固定］）が存在する。BDJOディレクトリには、拡張子bdjoが付与されたファイル（xxx.bdjo［“xxx”は可変、拡張子“bdjo”は固定］）が存在する。
【００２５】
拡張子“m２ts”が付与されたファイルは、M P  E G  - T  S （  T r  a n  s p  o r  t S  t r  e a  m ）形式のデジタルAVストリームであり、ビデオストリーム、１つ以上のオーディオストリーム、１つ以上の副映像ストリームを多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、副映像ストリームは、映画の字幕をそれぞれ示している。
拡張子“clpi”が付与されたファイルは、デジタルAVストリームのそれぞれに１対１に対応するClip情報である。管理情報故に、Clip情報は、デジタルAVストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP＿mapをもっている。
【００２６】
拡張子“mpls”が付与されたファイルは、PlayList情報を格納したファイルであり、ストリームの再生区間（「In  Time/Out  Time」）が記録されている。
拡張子“jar”が付与されたファイルは、Java(登録商標）アーカイブファイルであり、Java仮想マシンを用いて動的なシナリオ制御を行うJavaアプリケーションのプログラムが記述されている。BD-ROM上のコンテンツの再生単位を示す各タイトルの再生をJavaアプリケーションから制御したい場合は、このファイルを必要とする。
【００２７】
拡張子“bdjo”が付与されたファイルは、BD-Jオブジェクトを格納したファイルである。BD-Jオブジェクトは、PlayList情報により示されるAVストリームと、アプリケーションとの関連付けにより、タイトルを定義する情報である。BD-Jオブジェクトは、”アプリケーション管理テーブル”と、そのタイトルにおいて再生可能なPlayList一覧を示す。アプリケーション管理テーブルは、アプリケーションの識別子（アプリケーションID）とそのアプリケーションに属するJava  アーカイブファイルのIDを羅列することで、このタイトルを生存区間とするアプリケーションを示すテーブルである。つまり、一つのアプリケーションは一つ以上の  Java  アーカイブファイルで構成される。
index.bdmv（ファイル名固定）は、BD-ROM全体に関する管理情報であり、映画作品のプロバイダを特定する識別子であるorganizationID（３２bit）や、プロバイダが提供するBD-ROMのそれぞれに割り当てられた識別子であるdiscID（１２８bit）等の情報を持ち、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmv  にはBD-ROMにおいて再生可能となる複数のタイトルと、個々のタイトルを規定するBD-Jオブジェクトとを対応付けて示すテーブルが含まれる。
【００２８】
MovieObject.bdmv（ファイル名固定）は、HDMVモード（後述）での各タイトル再生で、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが含まれる。
図３は再生制御のレイヤモデルを示した図である。図３の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、BD-ROMだけではなく、HDD（ハードディスクドライブ）などの再生装置に予め組み込まれた記録媒体であるローカルストレージやリムーバブルメディア、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。これらローカルストレージ、リムーバブルメディア、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。
【００２９】
第２層は、AVデータのレイアである。第１層で供給されたストリームを、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。
第３層（BD管理データ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、ディスク制作者によって予め規定された再生経路情報、ストリーム管理情報であり、これらに基づく再生制御を規定しているのがこの第３層である。
【００３０】
第４層（BD再生プログラム）は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオは、AVストリームの再生手順、及び、その再生に関する制御手順のうち少なくとも一方を実行するプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち１つは、AV機器特有の再生環境で、BD-ROMに記録された動画データを再生するモード（HDMVモード）であり、もう１つはBD-ROMに記録された動画データの付加価値を高めるモード（BD-Jモード）である。図３において第４層には、HDMVモードとBD-Jモードの２つのモードが記述されている。HDMVモードは、DVDライクな再生環境での再生モードであり、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが動作する。もう一つのBD-Jモードは、Java仮想マシンを主体とした再生モードであり、Javaアプリケーションから再生制御を行う。
【００３１】
図４は、２つのモードの動的な再生制御にて作成される映画作品を示す図である。図４（a）は、HDMVモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。HDMVモードはDVD再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、DVDと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。
図４（b）は、BD-Jモードで動的な再生制御を定義することにより、作成される映画作品である。BD-JモードはJava仮想マシンが解釈可能なJava言語で制御手順を記述することができる。この再生制御がコンピュ-タ・グラフィックス（CG）の動作を制御するものなら、BD-Jモードにあっては、動画を表示した画面の横でCG（図中のフクロウの絵）が動きまわっているような再生制御を定義することができる。
【００３２】
図５は、再生装置の大まかな機能構成を示すブロック図である。図５に示すように、再生装置は、BD-ROMドライブ４０１、読込制御部４０２、デマルチプレクサ４０３、ビデオデコーダ４０４、ビデオプレーン４０５、オーディオデコーダ４０６、イメージメモリ４０７、イメージプレーン４０８、イメージデコーダ４０９、加算器４１０、静的シナリオメモリ４１１、動的シナリオメモリ４１２、HDMVモジュール４１３、BD-Jモジュール４１４、UO探知モジュール４１５、モード管理モジュール４１６、ディスパッチャ４１７、レンダリングエンジン４１８、書込制御部４１９、AV再生ライブラリ ４２０、ネットワークインターフェース４２１、ローカルストレージ４２２、マネージドコピー制御部４２３、リムーバブルメディア１０４、記録型BDドライブ１０６、から構成される。
BD-ROMドライブ４０１は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
【００３３】
読込制御部４０２は、BD-ROMドライブ４０１にローディングされているBD-ROM１０５，記録型BDドライブ１０６にローディングされているBD-R/RE，ローカルストレージ４２２、リムーバブルメディア１０４上に記録されているデータの読込み制御を行う。
デマルチプレクサ４０３は、読込制御部４０２により、読み出されたトランスポートストリームの多重分離を行い、GOPを構成するビデオフレームと、オーディオフレームとを得てビデオフレームをビデオデコーダ４０４に出力し、オーディオフレームをオーディオデコーダ４０６に出力する。副映像ストリームはイメージメモリ４０７に格納し、Navigation  Button情報は動的シナリオメモリ４１２に格納する。デマルチプレクサ４０３による多重分離は、TSパケットをPESパケットに変換するという変換処理を含む。
【００３４】
ビデオデコーダ４０４は、デマルチプレクサ４０３から出力されたビデオフレームを復号して非圧縮形式のピクチャをビデオプレーン４０５に書き込む。
ビデオプレーン４０５は、非圧縮形式のピクチャを格納しておくためのメモリである。
オーディオデコーダ４０６は、デマルチプレクサ４０３から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
【００３５】
イメージメモリ４０７は、デマルチプレクサ４０３から読み出された副映像ストリーム、Navigation  Button情報内のPNGデータ、読出制御部４０２から直接読み込まれた画像ファイルを格納しておくバッファである。
イメージプレーン４０８は、一画面分の領域をもったメモリであり、展開された副映像ストリーム、PNGデータ、画像ファイルが配置される。
イメージデコーダ４０９は、イメージメモリ４０７に格納された副映像ストリーム、PNGデータ、画像ファイルを展開してイメージプレーン４０８に書き込む。副映像ストリームのデコードにより、各種メニュー、副映像が画面上に現れることになる。
【００３６】
加算器４１０は、ピクチャプレーン４０５に格納された非圧縮形式のピクチャデータに、イメージプレーン４０８に展開されたイメージを合成して出力する。図４（b）に示した画面（動画を表示した画面の横でCG（図中のフクロウの絵）が動きまわっているような画面）は、この加算器４１０が、イメージプレーン４０８内のイメージと、ビデオプレーン４０５内のピクチャとを合成することで出力される。
静的シナリオメモリ４１１は、カレントのPLやカレントのストリーム管理情報を格納しておくためのメモリである。カレントPLとは、BD-ROMに記録されている複数PLのうち、現在処理対象になっているものをいう。カレントストリーム管理情報とは、BD-ROMに記録されている複数ストリーム管理情報のうち、現在処理対象になっているものをいう。
【００３７】
動的シナリオメモリ４１２は、カレント動的シナリオを格納しておき、HDMVモジュール４１３、BD-Jモジュール４１４による処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されている複数シナリオのうち、現在実行対象になっているものをいう。
HDMVモジュール４１３は、HDMVモードの実行主体となるDVD仮想プレーヤであり、動的シナリオメモリ４１２に読み出されたカレントのシナリオプログラムを実行する。
【００３８】
BD-Jモジュール４１４は、Javaプラットフォームであり、Java仮想マシン、コンフィグレーション、プロファイルからなる。BD-Jモジュール４１４は、動的シナリオメモリ４１２に読み出されたJavaクラスファイルからカレントのJavaオブジェクトを生成し、実行する。Java仮想マシンは、Java言語で記述されたJavaオブジェクトを、再生装置におけるCPUのネィティブコードに変換して、CPUに実行させる。
【００３９】
UO探知モジュール４１５は、リモコンや再生装置のフロントパネルに対してなされたユーザ操作を検出して、ユーザ操作を示す情報（以降UO（User  Operation）という）をモード管理モジュール４１６に出力する。
モード管理モジュール４１６は、BD-ROMから読み出されたモード管理テーブルを保持して、モード管理及び分岐制御を行う。モード管理モジュール４１６によるモード管理とは、動的シナリオをどのHDMVモジュール４１３、BD-Jモジュール４１４に実行させるかという、モジュールの割り当てである。
【００４０】
ディスパッチャ４１７は、UOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力するというのがディスパッチャ４１７の処理である。
レンダリングエンジン４１８は、Java２D，OPEN-GLといった基盤ソフトウェアを備え、BD-Jモジュール４１４からの指示に従ってコンピュ-タ・グラフィックスの描画を行い、描画されたコンピュ-タ・グラフィックスをイメージプレーン４０８に出力する。
【００４１】
書込制御部４１９は、マネージドコピー制御部４２３からの指示に従い、記録型BDドライブ１０６にローディングされているメディア、ローカルストレージ４２２、もしくはリムーバブルメディア１０４にデータを書き込む。
AV再生ライブラリ ４２０はHDMVモジュール４１３、BD-Jモジュール４１４からの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。
【００４２】
ネットワークインターフェース４２１は、マネージドコピーの認証を行うため、サーバへ接続するために用いる。認証のプロトコルはBD-Jモジュールにより実行されているJavaアプリケーションが指示したもの利用する。
ローカルストレージ４２２、リムーバブルメディア１０４、及び記録型BDドライブ１０６は、マネージドコピーのコピー先として用いられる。コピー先をどのメディアに行うかは、マネージドコピーのコピー先としてサポートされているメディアのうち、ユーザにより選択されたメディアへ行う。
【００４３】
マネージドコピー制御部４２３は、BD-Jモジュールにより実行されているJavaアプリケーションの指示を受け、BD-ROM上データのコピーを行う。コピー先のメディアによっては、ストリームの再エンコードも行う。例えば、コピー先のメディアがBD-Rであれば、Bit by Bitコピーを実施し、コピー先のメディアがDVD-R等、容量が少ないメディアであれば、ストリームの再エンコードを行い、ストリームを圧縮しつつデータコピーを行う。
以上が再生装置の構成要素である。
【００４４】
図６は、マネージドコピー制御部４２３を詳細化した図である。マネージドコピー制御部４２３は、シリアル番号読出部６０１、メディアID読出部６０２、メディア状態管理部６０３、コピー実行部６０４、コピー状態通知部６０５、コピー進捗管理部６０６、Nonce生成書込部６０７、鍵情報書込部６０８で構成される。
シリアル番号読出部６０１は、BD-ROM上の特殊領域であるBCA（Burst Cutting  Area）に記録されている記録媒体の物理的なシリアル番号を示すPMSN（Pre-recorded  Media Serial Number）の読出しを行う。このシリアル番号は、後述する鍵情報の生成に用いられる。
【００４５】
メディアID読出部６０２は、コピー先のメディアに記録されている、メディア毎にユニークに設定されるメディア固有の情報（メディアID）の読出しを行う。この値は、通常書き換えることができず、同じ種類のメディアでも媒体毎に異なる値が割り振られている。このメディアIDも、鍵情報の生成に用いられる。
メディア状態管理部６０３は、再生装置が現在コピー先として利用できるメディアの種類一覧を管理する。例えば、再生装置がSDカードスロットと、記録型BDドライブを備え、現在、SDカードのみが挿入されているのであれば、SDカードが現在のコピー先の対象と判断する。SDカードとBD-Rの両方が挿入されていれば、コピー先としてSDカード、BD-Rの両方が可能と判断する。加えて、コピー先メディアの空き容量管理も行う。
【００４６】
コピー実行部６０４は、BD-ROM上データを、別メディアへのコピー実行を行う。コピー先のメディアによっては、ストリームの再エンコードも行う。
コピー状態通知部６０５はコピーの開始・正常終了・エラー終了等の状態遷移を管理し、BD-Jモジュールを介してJavaアプリケーションに状態遷移を通知する。
コピー進捗管理部６０６はコピー対象となっている残りバイト数、コピー済みバイト数の管理を行い、Javaアプリケーションからの要求に応じて、現在の進捗情報を通知する。
【００４７】
Nonce生成書込部６０７は、マネージドコピーを実施する毎にランダムに生成される値（Nonce）の作成と書込みを行う。このNonceの値も、後述する鍵情報の生成に用いられる。
鍵情報書込部６０８は、BD-ROMのシリアル番号、コピー先メディアのメディアID、及びNonceから生成される鍵情報の書込みを行う。鍵情報の生成は、サーバにある秘密鍵を元に行われる。Javaアプリケーションは、シリアル番号、メディアID、Nonceを取得した後、この値をサーバに送信する。サーバは、Javaアプリケーションから送られてきた値とサーバ側で管理されている秘密鍵を元に、鍵情報を生成し、鍵情報をJavaアプリケーションに送り返す。Javaアプリケーションは、サーバから送られてきた鍵情報を鍵情報書込部６０８にセットし、鍵情報書込部６０８はセットされた鍵情報を、コピー先メディアへ書き込みを行う。鍵情報は暗号化コンテンツ鍵の復号に用いられ、暗号化コンテンツ鍵の復号ができれば、保護コンテンツの再生が可能となる。つまり、この鍵情報がなければ、たとえ、無断で暗号化コンテンツ鍵と保護コンテンツをBD-ROMから別のメディアにコピーしたとしても再生することはできない。
【００４８】
マネージドコピー制御部は以上の構成を持ち、これらの操作をJavaアプリケーションから制御できるよう、BD-Jモジュールに対してマネージドコピー制御APIが提供されている。以下、これらのAPIについて説明する。
・ManagedCopy＿getPMSN（）
コピー元のメディアのシリアル番号を返す。
・ManagedCopy＿getMCMediaInfo（）
再生装置がコピー先としてサポートするメディアで、かつメディアが挿入されており、コピー先として現在利用できるメディアのリストを返す。
【００４９】
・ManagedCopy＿startMC（MCMediaInfo）
引数で指定したメディアへマネージドコピーを開始する
・MCMediaInfo＿getMediaType（）
getMCMediaInfoで取得できたコピー先リストの各要素に対して、このAPIを呼ぶと、メディアの種類（BD-R，BD-RE，SD、HDD，DVD-R等）を返す。
・MCMediaInfo＿getUniqueId（）
コピー先のメディアのメディアID及びNonceのバイト列を返す。コピー先のNonceはこのAPIが呼ばれた時点で生成＆書込が行われる。メディアの種類によってはNonceが存在しない場合もある。この場合はメディアIDのみを返す。
【００５０】
・MCMediaInfo＿setSignature（byte［］）
コピー先へ書込む鍵情報をセットする。マネージドコピーが開始されると、このAPIでセットした値が鍵情報としてコピー先に書込まれる
・MCMediaInfo＿getFreeSpace（）
コピー先の空き容量を返す
・MCMediaInfo＿getRequiredSpace（）
コピーに必要な容量を返す
【００５１】
・MCMediaInfo＿addMCListener（MCListener）
マネージドコピーの状態遷移通知を受けるリスナーを登録する。マネージドコピーの開始、正常終了、異常終了等の状態遷移が起きたときに、このAPIで登録したリスナーに状態遷移を通知する。
・MCProgress＿getMCProgress（）
マネージドコピーの残りバイト数、コピー済みバイト数が含まれる進捗情報を返す。
【００５２】
図７は図５に示すBD-Jモジュールのより具体的な構成を示す図である。BD-Jモジュール４１４はメディア再生モジュール７０２、マネージドコピーモジュール７０３、ファイルI/Oモジュール７０４、ネットワークモジュール７０５、アプリケーションマネージャ７０６から構成される。
メディア再生モジュール７０２はJavaアプリケーション７０１に対し、メディア再生制御のためのAPIを提供している。Javaアプリケーション７０１がメディア再生制御APIを呼び出すと、メディア再生モジュールは対応するAV再生ライブラリ ４２０の関数を呼び出し、AV再生制御を行う。
マネージドコピーモジュール７０３はJavaアプリケーション７０１に対し、前述のマネージドコピー制御のためのAPIを提供している。
【００５３】
ファイルI/Oモジュール７０４はJavaアプリケーション７０１からのBD-ROM，ローカルストレージ、リムーバブルメディア、記録型BDドライブ等の各メディアへのファイルアクセス要求の処理を行う。
ネットワークモジュール７０５は、Javaアプリケーション７０１に対し、ネットワーク制御のためのAPIを提供している。Javaアプリケーション７０１からのネットワーク制御要求に従い、ネットワークインターフェース４２１を使って、ネットワーク接続を行う。Javaアプリケーション７０１はネットワークモジュール７０５を用いて、マネージドコピーの認証に必要なサーバへのアクセスを行うことが可能である。
【００５４】
アプリケーションマネージャ７０６はBD-ROM上に記録されたアプリケーション管理情報を元にJavaアプリケーションの起動・終了を管理する。また、アプリケーションマネージャがディスパッチャ４１７から受け取ったUOイベントを、現在動作中のJavaアプリケーション７０１に渡すといった処理も行う。
以上がBD-Jモジュールの構成要素である。
【００５５】
図８はJavaアプリケーションによるマネージドコピー制御のフローチャートである。まず、JavaアプリケーションはManagedCopy＿getMCMediaInfo（）を呼び出し、現在コピー対象となるメディアが存在しているかをチェックする（S１０１）。コピー対象メディアが存在すれば、そこからコピー対象となるメディアを選択する（S１０２）。選択方法は、Javaアプリケーション自身が選んでも良いし、ユーザにコピー可能メディア一覧を提示し、そこからユーザに選択させても良い。図９にユーザにコピー可能メディア一覧を提示する場合の一例を示す。メディア名だけでなく、MCMediaInfo＿getFreeSpace（）から空き容量をチェックし、空き容量も加えて表示することも可能である。またコピー元のファイルサイズから、必要な容量を計算し、その値も表示してもよい。コピー先メディアに必要な容量計算は、Javaアプリケーション自身で行っても良いし、コピーするファイルのリストから再生装置で計算を行っても良い。特に、ストリームを再圧縮して保存する場合は、ファイルサイズの変更が伴うので、この場合、再生装置で必要容量を計算するのが効率的である。Javaアプリケーションは再生装置で計算した必要容量をMCMediaInfo＿getRequiredSpace（）から取得することができる。
【００５６】
選択されたコピー先メディアの空き容量をチェックし(S１０３)、コピーに必要な空き容量があれば、課金処理手続きを行う（S１０４）。ここで言う課金処理手続きとは、サーバに接続し、クレジット番号等の認証を行う一連の手続きを指す。特に、課金が必要でない場合は、ここのステップをスキップしてもよいし、課金は行わず、単にコピー回数のカウントだけをチェックしてもよい。
課金処理が成功すれば、鍵情報の要素データの取得を行う（S１０５）。鍵情報の要素データとは、コピー元メディアのシリアル番号、コピー先メディアのメディアID及びNonceである。コピー元メディアのシリアル番号はManagedCopy＿getPMSN（）で取得でき、コピー先メディアのメディアID及びNonceはMCMediaInfo＿getUniqueId（）で取得することが出来る。
【００５７】
鍵情報の要素データの取得が完了すれば、それらの要素データをサーバへ送信する。サーバはそれらの要素データとサーバが持つ秘密鍵から鍵情報を生成し、生成した鍵情報をJavaアプリケーションへ送る。Javaアプリケーションは送られてきた鍵情報を、MCMediaInfo＿setSignature（byte［］）の引数に指定し、再生装置へセットする（S１０６）。
【００５８】
鍵情報のセットが完了すると、ManagedCopy＿startMC（MCMediaInfo）のAPIを呼び出すことで、マネージドコピーが開始される。マネージドコピーを行っている間、Javaアプリケーションは、MCProgress＿getMCProgress（）を呼び出すことで、コピーの進捗状況を把握することができる。図１０はコピーの進捗状況を画面表示する一例を示す図である。Javaアプリケーションは、残りバイト数、コピー済みバイト数を知ることが出来るので、そこからおおよその残り時間を判断することが出来る。また、MCMediaInfo＿addMCListener（）を呼び出し、マネージドコピーの状態遷移通知を受けるリスナーを登録するにより、コピーの開始・終了通知を受け取ることができるので、コピー終了通知を受け取るまでの間、進捗バーを表示したり、新作紹介等の広告表示を行うことができる。また、また簡単なゲームアプリを実施するなども考えられる。また、さらにコピーに失敗した場合も通知を受けることが出来るため、例えばメディアが強制的に取り出された等により、コピーに失敗した場合、Javaアプリケーションはコピー失敗通知を受け取り、課金処理をキャンセルするなどの対応を行うことも可能である。
【００５９】
図１１は、コピー実施中のディスクアクセス制限について示す図である。Javaアプリケーションはマネージドコピー制御部によるコピー実施前は、メディア再生モジュール７０２を呼び出してストリームの再生を行ったり、ファイルI/Oモジュール７０４を呼び出してBD-ROM上のファイルにアクセスすることが可能である。一方、マネージドコピー制御部によるコピー実施が開始されると、図１２に示すように、メディア再生モジュール７０２からのストリーム再生、及び、ファイルI/Oモジュール７０４からのファイルアクセスに制限が課される。この制限の理由は、マネージドコピー制御部とJavaアプリケーションのファイルI/O処理やストリームのデコード処理が衝突し、リソース不足によりコピーに失敗するのを防ぐため、マネージドコピー制御部が排他的にファイルシステムやデコーダ・エンコーダ等を利用できるようにするためである。そのため、Javaアプリケーションに対しては、コピー実施中は仮想的にディスクが取り出されたような制限が加わることになる。しかしながら、仮想的にディスクが取り出された状態になり、ディスクアクセスができなかったとしても、キャッシュメモリ上にあるイメージデータやネットワークI/Fを利用したサーバ接続は可能なため、簡易なゲームや広告・宣伝表示を行うことができる。この制限は、マネージドコピー制御部によるコピー実施が完了した時点で解除される。すなわち、Javaアプリケーションは、MCMediaInfo＿addMCListener（）を呼び出し、マネージドコピーの状態遷移通知を受けるリスナーを登録するにより、コピーの開始・終了を知るだけでなく、ディスクアクセス制限の開始・終了も兼ねて知ることが出来る。なお、コピー実施の開始・終了に伴い、Javaアプリケーションに対して仮想的なディスク取出・挿入が行われるため、Javaアプリケーションに対して明示的にディスクが取り出されたことを知らせるために、コピー実施時にはコピー開始通知と共にディスク取出通知を行っても良い。また、コピー終了時も同様、コピー終了通知と共にディスク挿入通知を行っても良い。
【００６０】
図１３はマネージドコピー制御部によるコピー実施を示すフローチャートである。このフローチャートは図８のステップS１０７を詳細化したものである。マネージドコピー制御部によるコピーを開始する前に、Javaアプリケーションからのディスクアクセス制限を行う（S２０１）。ディスクアクセス制限を行った後、Javaアプリケーションに対し、コピー開始通知を行う（S２０２）。コピー開始通知後、コピー元からコピー先へのデータコピーを開始する。コピー対象となっているデータのコピーが全て完了すれば、ステップS２０１で行ったディスクアクセス制限を解除し（S２０４）、Javaアプリケーションに対し、コピー完了通知を行い（S２０５）、マネージドコピー制御部におけるコピー処理を完了する。また、ステップS２０３のコピーが途中で失敗した場合は、ディスクアクセス制限を解除した後、Javaアプリケーションに対しコピー失敗通知を行う。
以上のように本実施例によれば、リソース競合を回避しつつマネージドコピーとJavaアプリケーション実行の同時動作が可能になり、かつマネージドコピー中に進捗状況を表示したり、宣伝・広告を表示したり、ゲームアプリ等の実行が可能となる。
【００６１】
（実施の形態２）
実施の形態２では、記録可能なファイル名に制限を持つリムーバブルメディアへのマネージドコピーについて述べる。BD-ROMに記録されたファイルは、Long File Name(LFN)形式が採用されているので、１０文字、２０文字といったファイル名や、４文字、５文字といった拡張子のファイル名を記録することが可能である。一方、リムーバブルメディアはファイル名が最大８文字、ディレクトリ名が最大８文字、拡張子が最大３文字に制限されたファイルシステムを利用していることが多い。そのため、BD-ROMに記録されているファイル名のまま、リムーバブルメディアへコピーすることはできないケースがある。
【００６２】
図１４はリムーバブルメディアのファイル名制限を考慮したマネージドコピーを示す図である。BD-ROM上で、９文字以上のファイル名、もしく配信文字以上の拡張子名を持つファイルをリムーバブルメディアへコピーする場合、８文字以下のファイル名か通常再生文字以下の拡張子名となるよう、ファイル名を変換して保存を行う。ファイル名変換の際、ファイル名が衝突した場合は、連番等をつけることにより、ファイル名の衝突を回避する。そして、ファイル名変換を行って保存したファイルに関しては、ファイル名変換テーブル（filename.tbl）に、変換前ファイル名と変換後のファイル名の対応を記載する。図１５にファイル名変換テーブルの一例を示す。
【００６３】
リムーバブルメディアから再生を行うときは、ファイル名変換テーブルの有無を確認し、ファイル名変換テーブルが存在する場合、読込制御部４０２がファイル名変換テーブルに記載された変換前のファイル名へのアクセスを検知した場合、読込制御部４０２は変換後のファイル名に置換した上で、リムーバブルメディア上のファイルアクセスを行う。
以上のように、マネージドコピー時に行ったファイル名変換をファイル名変換テーブルに保存し、再生時にファイル名変換テーブルを元に、変換前のファイル名として仮想的にアクセスさせることで、ファイル名制限を持つ記録媒体にマネージドコピーを行っても問題なく再生することが可能となる。
【００６４】
(実施の形態１における補足説明)
以下、実施の形態１に記載された再生装置の各構成要素について、補足的な説明を行う。実施の形態１の再生装置は、コピー実行できるものであるから、いわゆる録再型の再生装置である。
【００６５】
携帯タイプのものではなく、据置タイプの再生装置は、再生機能に留まらず、録画機能を具備することが一般的である。再生装置に録画機能が存在する場合、マネージドコピーを実行するにあたっての、データ形式の変換、及び、符号化方式の変換(これらは、トランスコードと表現される)を実現することができる。録再型の再生装置に、トランスコードのための構成要素を追加した構成例について説明する。
【００６６】
図１６は、録再型の再生装置の一般的な内部構成を示すと共に、このトランスコードの構成要素を書き加えた図である。本図に示すように再生装置には、HDMI送受信部５０１、信号入力部５０２、オーディオエンコーダ５０３、ビデオエンコーダ５０４、マルチプレクサ５０５が存在している。
【００６７】
ここでトランスコードとは、BD-ROMに記録されているデジタルストリームの形式をMPEG2トランスポートストリーム形式からMPEG2プログラムストリーム形式等に変換したり、ビデオストリーム及びオーディオストリームに割り当てられているビットレートを低くして再エンコードすることにより、デジタルストリームを、コピー先メディアのアプリケーションフォーマットに適合させる処理をいう。
【００６８】
パスtc0は、BD-ROMに記録されているビットストリームをそのまま他の記録媒体に記録するというコピー、いわゆるビットバイビットコピーを実現する際用いられるパスであり、読出制御部４０２から読み出されたビデオストリームを、そのまま、書込制御部４１９に入力する。
【００６９】
パスtc1は、BD-ROMに多重化されて記録されていたビデオストリーム、オーディオストリームを、改めて多重化する際のパスである。
【００７０】
パスtc2、tc3は、ビデオストリーム、オーディオストリームの再エンコードを実行する場合のパスである。
【００７１】
HDMI送受信部５０１は、非圧縮のビデオデータ、非圧縮のオーディオデータをテレビ１０３に送信し、テレビ１０３からのデータを受信する。
【００７２】
信号入力部５０２は、再生装置１０１に対するアナログ信号入力を受け付ける。
【００７３】
オーディオエンコーダ５０３は、信号入力部５０２から入力されるアナログ入力信号をエンコードしてオーディオストリームを得るが、トランスコードを実行する場合、パスtc2を通じて入力されてくる非圧縮のオーディオデータを再エンコードする。
【００７４】
ビデオエンコーダ５０４は、信号入力部５０２から入力されるアナログ入力信号をエンコードしてビデオストリームを得るが、トランスコードを実行する場合、パスtc３を通じて入力されてくる非圧縮のビデオデータを再エンコードする。
【００７５】
マルチプレクサ５０５は、トランスポートストリーム形式、プログラムストリーム形式等、コピー先メディアに適合した形式に、ビデオエンコーダ５０４によって得られたビデオストリーム  及び、オーディオエンコーダ５０３によって得られたオーディオストリームを多重化する。
【００７６】
以上が録画再生型再生装置の内部構成である。続いて、BD-Jモジュールの技術的意義を説明する。
【００７７】
(BD-Jモジュールの一般的構成)
BD-Jモジュールは、Javaプラットフォームであり、Java2Micro＿Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装して、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリに格納することにより、Javaアプリケーションを起動するという役割を担う。そしてJavaアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。こうしたBD-Jモジュールの機能をより明確に表したのが、図１７である。
【００７８】
図１７は、BD-Jモジュールの一般的構成要素を明示した内部構成図である。この図を参考にして、ファイルI/Oモジュール７０４、メディア再生モジュール７０２の技術的意義について説明する。
【００７９】
本図において、BD-Jモジュールのヒープメモリには、Javaアプリケーションが存在する。ここでBD-ROMでは、BD-Jオブジェクト内のアプリケーション管理テーブルによって、Javaアプリケーションの動作が規定される。かかるBD-Jオブジェクトは、タイトル毎に存在するので、BD-ROMにおけるJavaアプリケーションは、タイトルを生存区間として動作することになる。このように、BD-Jオブジェクト内のアプリケーション管理テーブルによって動作が律せられるJavaアプリケーションを、“BD-Jアプリケーション”と呼ぶ。そして、タイトルの切り替わりによって、その動作を終了するJavaアプリケーションを、タイトルバウンダリーアプリケーションといい、BD-ROMの交換によって、動作が必ず終了するアプリケーションを、ディスクバウンダリーアプリケーションという。
【００８０】
本図のヒープメモリにはBD-Jアプリケーションが存在しており、このうち1つのBD-Jアプリケーションは、上述したようなAPIを用いて、コピー制御を実行するBD-Jアプリケーション(コピー制御BD-Jアプリケーション)である。このコピー制御BD-Jアプリケーションは、コピー制御をマネージドコピー制御部４２３に命じるにあたって、BD-Jアプリケーションの動作モードを指定する。この動作モードには、動作中のBD-Jアプリケーションを終了して、マネージドコピーの制御を再生装置のレジデントプログラムに委ねる第１モード、BD-Jアプリケーションを終了しない第２モード、動作中のBD-JアプリケーションをBD-Jアプリケーションからの要求を拒否させる状態にして、BD-Jアプリケーションの機能を制限した上で動作させる第３モードがあり、このコピー制御BD-Jアプリケーションが、第３モードを指定して、マネージドコピーをマネージドコピー制御部４２３に指示した場合に、実施の形態１の処理がなされることになる。
【００８１】
ファイルI/Oモジュール７０４が、どのようにしてBD-Jアプリケーションからの再生要求を拒否する状態になるかを説明する。
【００８２】
再生装置は、Linux等のオペレーションシステムを採用しているので、”/mount point BD/BDMV”とのコマンドを発行することにより、BD-ROM１０５のドライブに、BDMVディレクトリを割り当てている。”/mount point SD/BUDA”とのコマンドを発行することにより、リムーバブルメディア１０４に、BUDAディレクトリを割り当てることができる。こうしたマウント操作によって、読出専用BD、ローカルストレージ、記録型BDを、仮想的なファイルシステムに割り当て、BD-Jアプリケーションによる使用に供している。マウントを解除する操作、つまり、アンマウント操作を実行すれば、BD-Jアプリケーションは、仮想的なファイルシステムを通じて、読出専用BD、ローカルストレージ、記録型BDを認識することができなくなるので、BD-Jアプリケーションからの再生要求を拒否する状態にすることができる。
【００８３】
メディア再生モジュール７０２が、どのようにしてBD-Jアプリケーションからの再生要求を拒否する状態になるかを説明する。BD-Jアプリケーションによるプレイリストの再生は、Java Media FrameWork(JMF)プレーヤインスタンスの生成をBD-Jアプリケーションが実行することでなされる。この生成は、プレイリスト情報ファイルを指定したJMFプレーヤインスタンスの生成が命じられた際、メディア再生モジュール７０２が、JMFプレーヤインスタンスをクリエイトすることでなされる。一方、BD-JアプリケーションがJMFプレーヤインスタンスの生成を命じたにも拘らず、メディア再生モジュール７０２がプレイリスト情報ファイルのJMFプレーヤインスタンスを生成せずエラーを返せば、BD-Jアプリケーションによる要求が認められることはない。よってメディア再生モジュール７０２は、BD-Jアプリケーションからの再生要求を拒否する状態になった際、BD-Jアプリケーションからの要求があっても、JMFプレーヤインスタンスを生成しない。
【００８４】
ファイルI/Oモジュール７０４、メディア再生モジュール７０２によるMCMediaInfo＿addMCListenerの用法について説明する。
【００８５】
マネージドコピーの開始時に、ファイルI/Oモジュール７０４、メディア再生モジュール７０２をBD-Jアプリケーションからの要求を拒否する状態に遷移させるには、ファイルI/Oモジュール７０４、メディア再生モジュール７０２にMCMediaInfo＿addMCListener（MCListener）をコールさせて、マネージドコピーの状態遷移通知を受けるリスナーをファイルI/Oモジュール７０４、メディア再生モジュール７０２に登録しておく。そうすると、マネージドコピー制御部によるマネージドコピーの開始が、ファイルI/Oモジュール７０４、メディア再生モジュール７０２のイベントリスナに通知されるので、かかるイベントリスナにマネージドコピーの開始が通知された際、ファイルI/Oモジュール７０４、メディア再生モジュール７０２はBD-Jアプリケーションからの要求を拒否する状態に遷移する。そして、BD-Jアプリケーションからファイルアクセスが要求された場合、又はJMFプレーヤインスタンスの生成が要求された場合、ファイルI/Oモジュール７０４、メディア再生モジュール７０２はこれらの要求に対して、エラーのレスポンスを返す。そうすれば、BD-ROMのアクセス等が、マネージドコピー制御と、BD-Jアプリケーションとで競合することはない。一方、正常終了又は異常終了が発生した際、かかる終了は、ファイルI/Oモジュール７０４、メディア再生モジュール７０２に通知されるので、ファイルI/Oモジュール７０４、メディア再生モジュール７０２は、通常状態に遷移する。そうすれば、BD-Jアプリケーションからファイルアクセスが要求された場合、又はJMFプレーヤインスタンスの生成が要求された場合に、これらの要求に従い、処理を行うことになる。
【００８６】
これはあくまでも、ファイルI/Oモジュール７０４、メディア再生モジュール７０２をBD-Jアプリケーションからの要求を拒否する状態に遷移させるためのソフトウェア実装の一例であり、BD-Jアプリケーションからディスクアクセス又は再生が要求された際、マネージドコピーが行われたかどうかをファイルI/Oモジュール７０４、メディア再生モジュール７０２がセンスして、BD-Jアプリケーションからの要求を拒否する状態に遷移してもよい。
【００８７】
以上のように、ファイルI/Oモジュール７０４、メディア再生モジュール７０２がBD-Jアプリケーションからの再生要求を拒否する状態になった場合、BD-Jアプリケーションは、読出専用BD、ローカルストレージ、記録型BDをアクセスすることはできない。その代わりに、キャッシュ７０７内のデータを利用することはできる。
【００８８】
キャッシュ７０７は、あるタイトルがカレントタイトルになった際、そのカレントタイトルに対応するBD-Jオブジェクトのキャッシュ管理情報によって指示されているアーカイブファイルを格納しておくためのキャッシュメモリである。ここに格納されたアーカイブファイルは、あるタイトルがカレントタイトルになっている間、有効であり、BD-Jアプリケーションは、BD-ROMやローカルストレージをアクセスしなくても、このキャッシュ７０７内のアーカイブファイルに含まれるプログラムやデータを利用することができる。よってBD-Jアプリケーションは、BD-ROMがイジェクトされている期間であっても、このアーカイブファイル内のデータについては、利用することができる。
図１８は、BD-Jアプリケーションからの要求を拒否させる状態を示す図である。メディア再生モジュール７０２、ファイルI/Oモジュール７０４がBD-Jアプリケーションからの再生要求を拒否する状態になっているので、メディア再生モジュール７０２、ファイルI/Oモジュール７０４を介して、読出制御部４０２、デマルチプレクサ４０３、マルチプレクサ５０５、書込制御部４１９に、再生処理を命じるBD-Jアプリケーションは、再生処理を、これらの構成要素に命じることはできない。よってこれらのリソースの使用が、BD-Jアプリケーションと、コピー実行部６０４とで競合することはない。
【００８９】
図１９は、BD-Jアプリケーションからの要求を拒否させる状態が終了して通常に戻った状態を示す図である。通常の状態では、メディア再生モジュール７０２、ファイルI/Oモジュール７０４がBD-Jアプリケーションからの再生要求に従う状態なっているので、BD-Jアプリケーションは、再生処理を、要求することはできる。以上がファイルI/Oモジュール７０４、メディア再生モジュール７０２の技術的意義についての説明である。続いて、BD-JアプリケーションによるAPIコールの詳細について説明する。
(BD-Jアプリケーション状態の時間的遷移)
マネージドコピー実行時において、メディア再生モジュール７０２、ファイルI/Oモジュール７０４がBD-Jアプリケーションからの処理要求を許可する状態になることで、タイトルバウンダリーアプリケーション、コピー制御アプリケーションの状態は、図２０のように遷移することになる。
【００９０】
図２０は、マネージドコピー前後におけるタイトルバウンダリーアプリケーション、コピー制御アプリケーション、マネージドコピー制御部による処理の時間的遷移を示す。第１段目は、タイトルを生存区間としたタイトルバウンダリーアプリケーションの処理を示し、第２段目は、コピー制御アプリケーションの処理内容を示す。第３段目は、マネージドコピー制御部４２３の処理内容を示す。タイトルバウンダリーアプリケーションは、認証＆課金処理がなされている期間(t0〜t1)、起動中になっているが、コピー実施なされている期間(t1〜t2)において、AVストリームの動画像を再生しえないので、キャッシュに存在するCGキャラクターの描画のみを行う。コピーが終了した期間(t2〜t3)において、通常再生状態に戻り、AVストリームの動画像再生を伴うCGキャラクタの描画を実行する。以上のように、マネージドコピーが実行されている期間においても、BD-Jアプリケーションは、キャッシュ内のCGデータを用いたキャラクタを描画することが可能になるので、ユーザを退屈させない工夫をオーサリング担当者は実現することができる。
【００９１】
以上が、タイトルバウンダリーアプリケーション、コピー制御アプリケーションの状態の時間的遷移についての説明である。
【００９２】
(コピー制御に用いるAPI)
本願明細書におけるコピー制御は、BD-Jアプリケーションが主体になってなされるので、マネージドコピー制御部の処理は、BD-Jアプリケーションプログラミングインターフェイス(API)を用いて記述されねばならない。以下、コピー制御に用いられるAPIについて説明する。
【００９３】
図２１は、BD-JアプリケーションからのAPIコールと、このコールに応じた処理内容とを対応付けて示す。
【００９４】
矢印(1-1)、(1-2)は、BD-JアプリケーションからのMCMedia＿SetMedia Typeのコールと、このコールに応じたメディア状態管理部６０３によるメディア種類の通知とを模式的に示す。
【００９５】
矢印(2-1)、(2-2)は、BD-JアプリケーションからのManagedCopy＿getPMSNのコールと、このコールに応じたシリアル番号読出部６０１によるシリアル番号の引き渡しとを模式的に示す。
【００９６】
矢印(3-1)(3-2)(3-3)は、BD-JアプリケーションからのMediaInfo get UNiqued IDのコールと、このコールに応じたメディアID読出部６０２によるMedia-IDの引き渡し及びNonce生成書込部６０７によるNonceの引き渡しとを模式的に示す。
【００９７】
矢印(4-1)、(4-2)は、BD-JアプリケーションからのMCMediaInfo＿SetSignatureのコールと、このコールに応じた鍵情報書込部６０８による鍵情報の書き込みとを模式的に示す。
【００９８】
矢印(5-1)、(5-2)は、BD-JアプリケーションからのMCMediaCopy＿start＿MCのコールと、このコールに応じたコピー実行部６０４への鍵情報の引き渡しとを模式的に示す。
【００９９】
(6-1)、(6-2)は、BD-JアプリケーションからのMCProgress＿get＿MCProcessAPIのコールと、このコールに応じたコピー状態通知部６０５、コピー進捗管理部６０６による残りのバイト数、コピー済みバイト数の引き渡しとを模式的に示す。
【０１００】
以上が、BD-JアプリケーションからのAPIコール、及び、このコールに応じた処理内容についての説明である。
(コピー実行部６０４の詳細)
本願明細書におけるマネージドコピーは、異種媒体間のコピーを想定したものであり、トランスコードを伴うものであるから、マネージドコピーにおいては、コピー元となるBD-ROMにおけるビットストリームを最内周から最外周まで、順次コピーしてゆくという動作では足りない。BD-ROMに存在するファイル及びディレクトリを、ファイル毎、ディレクトリ毎にコピーしてゆくという動作が必要になる。このような、トランスコードを想定したコピー実行部６０４の処理手順は、図２２のようなものとなる。
【０１０１】
図２２は、コピー実行部６０４の処理手順を示すフローチャートである。ステップＳ１において、Managed Copy＿startがコールされたかどうかのコール待ちになっており、コールがなされれば、ステップＳ２においてメディア再生モジュール７０２、ファイルI/Oモジュール７０４の状態を、BD-Jアプリケーションからの要求を拒否させる状態に遷移させる。
【０１０２】
ステップＳ３では、コピー先メディアに、ＢDMVディレクトリをクリエイトして、ステップＳ４において、BDMVディレクトリにおいて、Index.bdmv、MovieObjectをコピーする。ステップＳ５では、コピー先メディアのBDMVディレクトリの配下に、PlayListディレクトリ、BDJOディレクトリ、JARディレクトリをコピーする。ステップＳ６は、トランスコードの指示があったかどうかの判定であり、トランスコードの指示がなければ、ステップＳ７においてSTREAMディレクトリ、CLIPINFディレクトリをコピー先メディアのBDMVディレクトリの配下にコピーする。その後、ステップＳ８においてROOTディレクトリのCERTIFICATEディレクトリをコピーする。
【０１０３】
トランスコードの指示があれば、コピー先メディアにSTREAMディレクトリをクリエイトして、CLIPINFディレクトリをクリエイトする。そしてステップＳ１２において、ビデオストリームを含むAVClipのトランスコードを実行し、ステップＳ１３では、トランスコード後のAVClipに対応するクリップ情報ファイルを作成する。トランスコードがあった場合に、クリップ情報ファイルを作成し直すのは、クリップ情報ファイルは、パケット番号と、プレゼンテーションタイムスタンプとの対応付けを示すエントリーマップ等、ストリームに依存した情報要素を多く含んでいるからである。
【０１０４】
ステップＳ１４ではトランスコード後のAVClipをSTREAMディレクトリに書き込み、新たに生成したクリップ情報ファイルを、CLIPINFディレクトリに書き込んでステップＳ８に移行する。
【０１０５】
以上のコピーが終われば、ステップＳ９において、メディア再生モジュール７０２、ファイルI/Oモジュール７０４の状態を、BD-Jアプリケーションからの処理要求を許可する状態に遷移させる。
【０１０６】
以上で、コピー実行部６０４の処理手順についての説明を終える。
【０１０７】
(BD-Jアプリケーション管理の内容)
本願では、コピー中は、メディア再生モジュール７０２、ファイルI/Oモジュール７０４がBD-Jアプリケーションからの処理要求を拒否する状態になり、BD-ROMが再生装置に装填されていながらも、仮想的にイジェクトされたものとして扱≧うので、本願におけるBD-JアプリケーションマネージャによるBD-Jアプリケーションの管理は、一般的なものではない。図２３に示す特殊なものになる。以降、図２３を参照して、BD-Jアプリケーションマネージャの処理手順について説明する。
【０１０８】
図２３は、BD-Jアプリケーションマネージャの処理手順を示すフローチャートである。本フローチャートは、ステップＳ７１からステップＳ７２までの処理を繰り返すループ構造になっている。
【０１０９】
ステップＳ７１は、モード管理モジュール４１６によるカレントタイトルの選択があったかどうかの判定であり、もしあれば、ステップＳ７４、ステップＳ７５の処理を実行してステップＳ７１〜ステップＳ７３のループに戻る。ステップＳ７４は、カレントタイトルに対応するBD-Jオブジェクトのキャッシュ管理情報に記載されているアーカイブファイルをキャッシュに読み込む処理であり、ステップＳ７５は、カレントタイトルに対応するBD-JオブジェクトのBD-Jアプリケーション管理テーブルに記載されているBD-Jアプリケーションをヒープメモリにロードして、BD-Jアプリケーションを起動する。
【０１１０】
ステップＳ７２は、マネージドコピーが開始されたか否かの判定であり、もしマネージドコピーが開始されれば、ステップＳ７６においてBD-Jアプリケーションを仮想的に、ディスクが抜かれた状態にして、キャッシュ内のデータのみで動作させる状態にする。ステップＳ７７において、マネージドコピーの終了を待つ。マネージドコピーが終了すれば、ステップＳ７８において、BD-Jアプリケーションを通常状態にして、ステップＳ７１〜ステップＳ７３の処理に戻る。
【０１１１】
ステップＳ７３においてDiscEjectイベントが発生すれば、ステップＳ７９〜ステップＳ８１の処理を実行する。ステップＳ７９では、タイトルを生存区間とするタイトルバウンダリーアプリケーション、ディスクを生存区間とするディスクバウンダリーアプリケーションを全て終了して、ステップＳ８０において、DiscInsertイベントの発生を待つ。DiscInsertイベントが発生すれば、ステップＳ８１においてインサートされているディスクのファーストプレイタイトルをカレントタイトルに設定して、ステップＳ７４に移行する。以上のように本フローチャートでは、マネージドコピーの実行中は、BD-ROMが再生装置に装填されたまま、BD-JアプリケーションをBD-Jアプリケーションからの再生要求を拒否する状態にすることがわかる。
(APIを利用したBD-Jアプリケーションの記述)
BD-Jアプリケーションによるコピー制御は、APIを利用したものになるから、コピー制御アプリケーションによるコピー制御だけではなく、コピーに先立つ課金処理、コピー進捗表示も、上述したようなAPIを利用したものでなければならない。以降、APIを利用した、コピー制御、課金処理、コピー進捗表示の記述について説明する。
【０１１２】
図２４は、コピー制御を行うBD-Jアプリケーションが、APIをどのように利用するかという処理手順を示すフローチャートであり、図２５Ａは、APIを利用した課金処理の処理手順を示すフローチャートである。図２６は、ミニゲーム実行や予告編再生を伴うコピー進捗表示の一例を示す。
【０１１３】
ステップＳ２１においてManaged Copy＿get MCMedia Infoをコールして、ステップＳ２２では、コピー先メディアとして利用することができるメディアのリストを取得する。もしかかるリストを取得すれば、コピー先リストの各要素について、MCMediaInfo＿MediaTypeをコールして(ステップＳ２３)、コピー先リストの各要素のメディア種を取得する(ステップＳ２４)。
【０１１４】
ステップＳ２５では、メディア種に対応付けて、コピー先リストの各要素を一覧表示し、ユーザによる選択待ちとなる(ステップＳ２６)。選択されれば、コピー対象メディアIDが存在するかを判定して(ステップＳ２７)、存在すれば、選択されたコピー先メディアを確定し(ステップＳ２８)、MCMediaInfo＿getFreeSpaceをコールして、コピー先メディアの空き容量を取得する(ステップＳ２９)。ステップＳ３０では、空き容量Aがあるかどうかを判定し、空き容量があれば(ステップＳ３０でYes)、MCMediaInfo＿RequiredSpaceをコールして、コピーに必要な容量Bを取得し(ステップＳ３１)、容量Ａと必要容量Ｂとの比較を行う(ステップＳ３２)。もし空き容量が足りなければ、圧縮率を算出して、再エンコードを伴う、トランスコードを指示する(ステップＳ３４)。ステップＳ３３では、課金処理を開始し、課金が成功すれば(ステップＳ３５)、進捗バーの表示を開始する(ステップＳ３６)。その後、確定したコピー先メディアについて、MCMediaInfo＿getUniquedをコールして、メディアID、Nonceを取得する(ステップＳ３７)。ManagedCopy＿getMSNのコールによってコピー先メディアのシリアル番号を取得し(ステップＳ３８)、コピー元の提供者組織の管理サーバに、コピー元メディアのシリアル番号、メディアID、Nonceを送信して(ステップＳ３９)、鍵情報の取得待ちとなる(ステップＳ４０)。鍵情報が送信されれば、引き数に鍵情報のバイト数を指定して、MCMediaInfo＿SetSignatureをコールして鍵情報をセットし(ステップＳ４１)、MCMediaInfoを引き数として用いてManagedCopy＿startMCをコールすることで、マネージドコピーを開始する(ステップＳ４２)。
【０１１５】
図２５（ａ）のステップＳ５１では、マネージドコピーの状態遷移通知を受けるリスナーを引き数MCListnerに指定して、MCMediaInfo＿addMCListnerをコールし、ステップＳ５２において課金処理を開始する。その後、ステップＳ５３−ステップＳ５４のループ処理に移行する。ステップＳ５３は、コピーが失敗したかどうかの判定であり、コピー失敗と判定されれば、ステップＳ５５において課金をキャンセルする。ステップＳ５４は、コピーが完了したかどうかの判定であり、コピー完了と判定されれば、ステップＳ５６において課金処理を確定する。
【０１１６】
図２５（ｂ）は、進捗バー表示の処理手順を示すフローチャートである。マネージドコピーの状態遷移通知を受けるリスナーを引き数MCListnerに指定して、CMediaInfo＿addMCListnerをコールする。その後、ステップＳ６２において、マネージドコピーが開始されるのを待つ。開始されれば、進捗バーを表示して、ステップＳ６４−ステップＳ６５のループ処理に移行する。ステップＳ６４は、一定時間が経過したかどうかの判定であり、一定時間が経過したと判定されれば、ステップＳ６６においてMC Progress＿get MC Progressをコールして、残りバイト数、コピー済みバイト数を取得する。ステップＳ６７では、こうして作成した残りバイト数、コピー済みバイト数を用いて、進捗バーを更新する。ステップＳ６５は、コピーが完了したかどうかの判定であり、コピー完了と判定されれば、ステップＳ６８において、コピー完了の表示を行う。
【０１１７】
図２６は、ミニゲーム実行や予告編再生を伴うコピー進捗表示の一例を示す。本図は、図１０をベースとして作図されており、このベースとなる進捗表示に、ミニゲームの実行画面や予告編再生画面が加えられている。これらはコピー制御アプリケーションのアーカイブファイルに格納されていたデータを元に表示・再生されているものであり、ディスクが抜かれた状態になっていても、キャッシュからこれらのデータを読み出すことで、本図のような表示・再生が可能になる。このようなミニゲームの実行画面や予告編再生を表示することでマネージドコピーが長時間に及ぶ場合であっても、ユーザの退屈感を緩和することができる。
【０１１８】
（その他の変形例）
以上、本発明に係る再生装置について、実施の形態に基づいて説明したが、本発明は上記の実施の形態に限られないことは勿論である。
【０１１９】
上記第１実施形態では、記録媒体を再生する再生機能のみを持つ再生装置について説明したが、それに限らない。例えば、録画機能を持つ録画再生装置であっても良い。
【０１２０】
上記実施形態では、仮想マシンのプログラミング言語としてJava（登録商標）を利用したが、Java（登録商標）ではなく、UNIX（登録商標）、OSなどで使われているB-Shellや、Perl  Script、ECMA  Scriptなど他のプログラミング言語であっても良い。
本発明の対象となるコピー元データは２D映像に限定されるものではなく、３D立体映像であっても同様に適用可能である。
【０１２１】
上述の実施の形態で説明したマネージドコピー制御部は、コピー対象によっては再エンコードが必要となるため、一時的に負荷の高い処理が要求される。そのため、再生装置側のCPU性能が十分でない場合、マネージドコピー制御部はLSI上に組み込む構成を取ることも考えられる。
【０１２２】
また、上述の実施の形態ではBD-ROMを再生する再生装置について説明をしたが、書き込み可能な光記録媒体に上述の実施の形態にて説明をしたBD-ROM上の必要なデータが記録されていた場合においても上述と同様の効果を奏することはもちろんのことである。
【産業上の利用可能性】
【０１２３】
本発明を構成する再生装置は、製造産業において経営的に、また継続的及び反復的に製造し、販売することができる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用できる。
【符号の説明】
【０１２４】
１０１  再生装置
１０２  リモコン
１０３  出力モニタ
１０４  リムーバブルメディア
１０５  BD-ROM
１０６  記録型BDドライブ
４０１  読出専用BDドライブ
４０２  読込制御部
４０３  デマルチプレクサ
４０４  ビデオデコーダ
４０５  ビデオプレーン
４０６  オーディオデコーダ
４０７  イメージメモリ
４０８  イメージプレーン
４０９  イメージデコーダ
４１０  加算器
４１１  静的シナリオメモリ
４１２  動的シナリオメモリ
４１３  HDMVモジュール
４１４  BD-Jモジュール
４１５  UO検知モジュール
４１６  モード管理モジュール
４１７  ディスパッチャ
４１８  レンダリングエンジン
４２０  AV再生ライブラリ
４２１  ネットワークインターフェース
４２２  ローカルストレージ
４２３  マネージドコピー制御部
６０１  シリアル番号読出部
６０２  メディアID読出部
６０３  メディア状態管理部
６０４  コピー実行部
６０５  コピー状態通知部
６０６  コピー進捗管理部
６０７  Nonce生成書込部
６０８  鍵情報書込部
７０１  JavaBD-Jアプリケーション
７０２  メディア再生モジュール
７０３  マネージドコピーモジュール
７０４  I/Oモジュール
７０５  ネットワークモジュール
７０６  BD-Jアプリケーションマネージャ
S１０１    コピー対象メディア確認ステップ
S１０２    コピー対象メディア選択ステップ
S１０３    空き容量管理ステップ
S１０４    課金処理ステップ
S１０５    鍵情報の要素データ取得ステップ
S１０６    鍵情報取得ステップ
S１０７    コピー実施ステップ
S２０１    ディスクアクセス制限開始ステップ
S２０２    コピー開始通知ステップ
S２０３    データコピーステップ
S２０４    ディスクアクセス制限解除ステップ
S２０５    コピー完了通知ステップ
S２０６    コピー失敗通知ステップ
【図１】
0005395074.tif 000002
【図２】
0005395074.tif 000003
【図３】
0005395074.tif 000004
【図４】
0005395074.tif 000005
【図５】
0005395074.tif 000006
【図６】
0005395074.tif 000007
【図７】
0005395074.tif 000008
【図８】
0005395074.tif 000009
【図９】
0005395074.tif 000010
【図１０】
0005395074.tif 000011
【図１１】
0005395074.tif 000012
【図１２】
0005395074.tif 000013
【図１３】
0005395074.tif 000014
【図１４】
0005395074.tif 000015
【図１５】
0005395074.tif 000016
【図１６】
0005395074.tif 000017
【図１７】
0005395074.tif 000018
【図１８】
0005395074.tif 000019
【図１９】
0005395074.tif 000020
【図２０】
0005395074.tif 000021
【図２１】
0005395074.tif 000022
【図２２】
0005395074.tif 000023
【図２３】
0005395074.tif 000024
【図２４】
0005395074.tif 000025
【図２５】
0005395074.tif 000026
【図２６】
0005395074.tif 000027