説明

再生装置、再生方法

【課題】不安定なストリームをチェックする余力が再生手段側にない場合でも、再生の乱れや途切れを防止できる再生装置を提供する。
【解決手段】VirtualFileSysterm部は、ストリームシーケンスのうち一部のAVClipに対する再生処理が係続している間、アプリケーションによるメソッド呼出に従って、残りのAVClipの状態を、PlaybackControlEngineが認識し得る状態、又は、認識し得ない状態に変化させる。認識し得る状態への変化は、BD-ROM上のファイル管理情報と、LocalStorage18におけるファイル管理情報とから、仮想的なボリューム管理情報を生成して、PlaybackControlEngineに引き渡すことによりなされ、認識し得ない状態への変化は仮想的なボリューム管理情報から、LocalStorage18におけるファイル管理情報を取り去ることでなされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、Virtual Packageの技術分野に属する発明である。
【背景技術】
【0002】
Virtual Packageとは、BD-ROM等のリードオンリー型の記録媒体に記録されているデジタルストリームと、ハードディスク等のリライタブル型の記録媒体に記録されているデジタルストリームとを動的に組み合わせて、仮想的なパッケージを構築することにより、リードオンリー型記録媒体の内容拡張を図る技術である。ここBD-ROMに記録されているデジタルストリームが、映画作品の本編を構成するものであり、ハードディスクに記録されているデジタルストリームが、映画作品の続編を構成するものである場合、上述したVirtualPackageを構築することにより、BD-ROM上の本編と、ハードディスク上の続編とを、1つの長編の映画作品として取り扱い、再生に供することができる。
【0003】
尚、Virtual Packageについての先行技術としては、以下の特許文献に記載されているものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002-369154号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところがBD-ROMに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを1つのストリームシーケンスとして再生してゆく場合、ストリームシーケンスを構成するデジタルストリームの中に、不安定な状態のものがふくまれている可能性がある。ここで不安定な状態のデジタルストリームとは、ハードディスクへのダウンロードが未完了であったり、書き込みが不完全であるようなデジタルストリームをいう。不安定な状態のデジタルストリームが含まれているにも拘らず、上述したストリームシーケンスを再生しようとすると、再生手段による再生時点が不安定なストリームに至った途端、再生が乱れたり、再生が途切れてしまうことが有り得る。
【0006】
ここで、再生しようとするストリームが不安定な状態であるか否かを、再生装置内の再生手段(デコーダ等)が正しくチェックすることができれば、かかる再生の乱れや途切れを回避することができる。しかし再生手段は、1/24秒,1/29.94秒というフレーム期間毎に、映像信号を出力するという処理に専念しており、そのようなチェックのための余力は存在しないことが一般的である。そのため上述したような再生の乱れや途切れの発生は避け得ない。その一方、BD-ROM再生装置を製造するような民生機器の産業分野では、映像再生に対して厳しい品質基準が要求されており、デジタルストリームをチェックするような余力が再生手段側にないとしても、上述したような再生の乱れや途切れが、容認されることはありえない。
【0007】
本発明の目的は、不安定な状態のデジタルストリームをチェックするような余力が再生手段側にない場合であっても、BD-ROMに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを1つのストリームシーケンスとして再生してゆく場合の再生の乱れや途切れを防止することができる再生装置を提供することである。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明に係る再生装置は、
プレイリストから参照されるデジタルストリームを再生する再生装置であって、
記録媒体を装填するドライブ手段と、
ローカルストレージと、
再生手段と、
前記ローカルストレージに記録されたプレイリストから参照されるデジタルストリームを格納するための格納場所が、前記ドライブ手段に装填された記録媒体および前記ローカルストレージのそれぞれに分かれている場合、前記ローカルストレージへ格納されるデジタルストリームの格納場所に関する情報を含むストリーム格納位置情報に基づいて、前記ローカルストレージを格納場所とするデジタルストリームが前記ローカルストリームに存在するのかどうかを判定し、前記ローカルストレージを格納場所とするデジタルストリームの状態を、前記再生手段が認識し得る状態、又は、前記再生手段が認識し得ない状態に設定するパッケージ管理手段と、
前記記録媒体および前記ローカルストレージのいずれかに記録されたアプリケーションを読み出して実行して、前記記録媒体および前記ローカルストレージに対するアクセス制御を実行するアプリケーション実行手段と、
前記プレイリストから参照されるデジタルストリームのうちのいずれかのデジタルストリームへジャンプするユーザからの命令を受け付ける入力手段とを備え、
前記再生手段は、
前記プレイリストから参照される一部のデジタルストリームが認識し得る状態である場合、残りのデジタルストリームが認識し得ない状態であっても、前記認識し得る状態のデジタルストリームの再生を開始し、
前記パッケージ管理手段は、
前記プレイリストから参照される一部のデジタルストリームに対する再生処理が継続している間、前記アプリケーション実行手段からの要求に従って、前記再生手段が認識し得ないデジタルストリームの状態を、前記再生手段が認識し得る状態に設定する、又は、前記再生手段が認識し得る状態のデジタルストリームのうち、前記再生処理がなされているデジタルストリームとは異なるデジタルストリームの状態を、前記再生手段が認識し得ない状態に設定する、ことを特徴としている
【発明の効果】
【0009】
アプリケーションが、デジタルストリームを認識できる状態にするか、認識できない状態にするかを変化させることで、デジタルストリームを再生手段に再生させるか、再生させないかの選択を、実現することができる。デジタルストリームを再生手段に再生させるか、再生させないかの選択権は、記録媒体のアクセスを実現するアプリケーションが掌握するので、アプリケーションが、デジタルストリームが記録媒体に正しく書き込まれたことを確認し得ない場合、そのデジタルストリームを認識できない状態にすれば、そのデジタルストリームはなかったものと取り扱われる。これにより不安定なデジタルストリームを誤って再生することはない。よって、映像の乱れや途切れが出現することはない。
【図面の簡単な説明】
【0010】
【図1】本発明に係る再生装置の、使用行為についての形態を示す図である。
【図2】BD-ROMの内部構成を示す図である。
【図3】AVClipがどのように構成されているかを模式的に示す図である。
【図4】PL情報の構成を示す図である。
【図5】AVClip時間軸と、PL時間軸との関係を示す図である。
【図6】4つのClip_Information_file_nameによりなされた一括指定を示す図である。
【図7】PLmark情報の内部構成を示す図である。
【図8】PLmarkによるチャプター定義を示す図である。
【図9】SubPath情報の内部構成を示す図である。
【図10】SubPlayItem時間軸上の再生区間定義と、同期指定とを示す図である。
【図11】(a)Java(登録商標)アーカイブファイルに収められているプログラム、データを示す図である。(b)は、クラスファイルの内部構成を示す図である。
【図12】本発明に係る再生装置の内部構成を示す図である。
【図13】(a)Local Storage18におけるディレクトリ構造を示す図である。(b)ストリーム格納位置情報ファイルの内部構成を示す図である。
【図14】ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。
【図15】Java(登録商標)仮想マシン30の内部構成を示す図である。
【図16】Virtual FileSystem部38によるVirtual Package情報構築の一例を示す図である。
【図17】Virtual FileSystem部38による状態管理の一例を示す図である。
【図18】状態管理を反映したVirtual Package情報の作成を示す図である。
【図19】ネットワーク管理モジュール37によるダウンロードが途上である場合の、Virtual FileSystem部38によるVirtual Package構築を示す図である。
【図20】(a)ローカルストレージに格納されたPL情報により、どのようなPlayList再生時間軸が定義されるかを示す図である。 (b)Progressive PlayList情報の概念を示す図である。
【図21】管理情報変換モジュール39によるインスタンス生成を示す図である。
【図22】PlayListオブジェクトにおけるPlayメソッドの呼び出しを示す図である。
【図23】getMissingStreamsメソッドによる問合せの結果を模式的に示す図である。
【図24】enableClipメソッドの呼出を模式的に示す図である。
【図25】disableClipメソッドの呼出を模式的に示す図である。
【図26】Virtual Package構築時の処理を示すフローチャートである。
【図27】(a)enableClipメソッドの呼出時の処理手順を示すフローチャートである。(b)disableClipメソッドの呼出時の処理手順を示すフローチャートである。
【図28】Playback Control Engine32による再生手順を示すフローチャートである。
【図29】アプリケーションの処理手順を示すフローチャートである。
【図30】(a)(b)ネットワーク管理モジュール37によるダウンロードの進捗と、Playback Control Engine32による再生の進捗とを示す図である。
【図31】(a)(b)ネットワーク管理モジュール37によるダウンロードの進捗と、Playback Control Engine32による再生の進捗とを示す図である。
【図32】(a)(b)ネットワーク管理モジュール37によるダウンロードの進捗と、Playback Control Engine32による再生の進捗とを示す図である。
【図33】ネットワーク管理モジュール37によるダウンロードの進捗と、Playback Control Engine32による再生の進捗とを示す図である。
【発明を実施するための形態】
【0011】
(第1実施形態)以降、本発明に係る記録媒体の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、本発明に係る再生装置の、使用行為についての形態を示す図である。図1において、本発明に係る再生装置は、再生装置200である。この再生装置200は、リモコン300、テレビ400により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
【0012】
以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体について説明する。本発明に係る再生装置により、再生されるのは、BD-ROMである。図2は、BD-ROMの内部構成を示す図である。
【0013】
本図の第4段目にBD-ROMを示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第1段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
【0014】
BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJAディレクトリと呼ばれる4つのサブディレクトリが存在する。STREAMディレクトリには、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子M2TSが付与されたファイル(00001.M2TS)が存在する。
【0015】
PLAYLISTディレクトリには、拡張子MPLSが付与されたファイル(00001.MPLS)が存在する。CLIPINFディレクトリには、拡張子CLPIが付与されたファイル(00001.CLPI)が存在する。以下、これらのファイルについて説明する。
【0016】
<AVClip>
先ず初めに、拡張子.M2TSが付与されたファイルについて説明する。図3は、拡張子.M2TSが付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子.M2TSが付与されたファイル(00001.M2TS,00002.M2TS,00003.M2TS・・・・・)は、AVClipを格納している。AVClipは(中段)、複数のビデオフレーム(ピクチャpj1,2,3)からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを(上1段目)、PESパケット列に変換し(上2段目)、更にTSパケットに変換し(上3段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(下1段目のPGストリーム)及び対話系のインタラクティブグラフィクスストリーム(下1段目のIGストリーム)をTSパケットに変換して(下3段目)、これらを多重化することで構成される。
【0017】
AVClipは、図3に示したように多重化がなされているストリームの他に、多重化がなされていないものものある。かかるAVClipは、SubClipと呼ばれ、オーディオストリーム、グラフィクスストリーム、テキスト字幕ストリーム(TextSTStream)等を構成するAVClipが存在する。
【0018】
<Clip情報>
拡張子"CLPI"が付与されたファイル(00001.CLPI)は、AVClipのそれぞれに1対1に対応するClip情報である。管理情報故に、Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP_mapをもっている。<PlayList情報>
拡張子"MPLS"が付与されたファイル(00001.MPLS)は、PlayLIst(PL)情報を格納したファイルである。PL情報は、AVClipを参照してプレイリストを定義する情報である。図4は、PL情報の構成を示す図であり、本図の左側に示すように、PL情報は、『MainPath情報』、『PLMark情報』、『SubPath情報』から構成される。
【0019】
MainPath情報(MainPath())は、破線の矢印mp1に示すように複数のPlayItem情報(PlayItem())からなる。PlayItemとは、1つ以上のAVClip時間軸上において、In_Time,Out_Timeを指定することで定義される再生区間である。PlayItem情報を複数配置させることで、複数再生区間からなるプレイリスト(PL)が定義される。図中の破線mp2は、PlayItem情報の内部構成をクローズアップしている。本図に示すようにPlayItem情報は、対応するAVClipを示す『Clip_information_file_name』と、『In_time』と、『Out_time』とからなる。図5は、AVClipと、PLとの関係を示す図である。第1段目はAVClipがもつ時間軸を示し、第2段目は、PLがもつ時間軸を示す。PL情報は、PlayItem#1,#2,#3という3つのPlayItem情報を含んでおり、これらPlayItem#1,#2,#3のIn_time,Out_timeにより、3つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第2段目に示すPL時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる時間軸の定義が可能になる。
【0020】
AVClipに対する指定は、原則1つであるが、複数AVClipに対する一括指定もあり得る。この一括指定は、PlayItem情報における複数のClip_Information_file_nameによりなされる。図6は、4つのClip_Information_file_nameによりなされた一括指定を示す図である。本図において第1段目〜第4段目は、4つのAVClip時間軸(AVClip#1,#2,#3,#4の時間軸)を示し、第5段目は、PL時間軸を示す。PlayItem情報が有する、4つのClip_Information_file_nameにて、これら4つの時間軸が指定されている。こうすることで、PlayItemが有するIn_time,Out_timeにより、択一的に再生可能な4つの再生区間が定義されることになる。これにより、PL時間軸には、切り換え可能な複数アングル映像からなる区間(いわゆるマルチアングル区間)が定義されることになる。
【0021】
PLmark情報(PLmark())は、PL時間軸のうち、任意の区間を、チャプターとして指定する情報である。図7は、PLmark情報の内部構成を示す図であり、本図の引き出し線pm1に示すようにPLmark情報は、『ref_to_PlayItem_Id』と、『Mark_time_stamp』とを含む。図8は、PLmarkによるチャプター定義を示す図である。本図において第1段目は、AVClip時間軸を示し、第2段目はPL時間軸を示す。図中の矢印pk1,2は、PLmarkにおけるPlayItem指定(ref_to_PlayItem_Id)と、一時点の指定(mark_time_stamp)とを示す。これらの指定によりPL時間軸には、3つのチャプター(Chapter#1,#2,#3)が定義されることになる。以上がPLmarkについての説明である。続いてSubPath情報について説明する。
【0022】
SubPath情報(SubPath())は、SubClipの時間軸上にIn_Time,Out_Timeを指定することで1つ以上の再生区間を定義する情報であり、図9に示す内部構成を有している。本図に示すようにSubPath情報は、破線の引き出し線sh1に示すように複数のSubPlayItem情報(SubPlayItem())からなる。破線sh2を用いてクローズアップしているように、SubPlayItem情報は、『Clip_information_file_name』と、『In_time』と、『Out_time』と、『Sync_PlayItem_Id』と、『Sync_start_Pts_of_PlayItem』とからなる。SubClipの時間軸上に対する、In_Time,Out_Timeの指定は、『Clip_information_file_name』、『In_time』、『Out_time』によりなされる。『Sync_PlayItem_Id』及び『Sync_start_Pts_of_PlayItem』は、SubClip時間軸上の再生区間と、PL時間軸とを同期させるという同期指定をなす。この同期指定により、PL時間軸と、SubClip時間軸とは同期して進行することになる。
【0023】
図10は、SubClip時間軸上の再生区間定義と、同期指定を示す図である。本図において第1段目は、PL時間軸を示し、第2段目はSubClip時間軸を示す。図中のSubPlayItem.IN_timeは再生区間の始点を、SubPlayItem.Out_timeは再生区間の終点をそれぞれ示す。これによりSubClip時間軸上にも再生区間が定義されていることがわかる。矢印Sn1においてSync_PlayItem_Idは、PlayItemに対する同期指定を示し、矢印Sn2においてsync_start_PTS_of_PlayItemは、PL時間軸におけるPlayItem上の一時点の指定を示す。
【0024】
複数AVClipの切り換えを可能とするマルチアングル区間や、AVClip−SubClipを同期させ得る同期区間の定義を可能とするのが、BD-ROMにおけるPL情報の特徴である。以上のClip情報及びPL情報は、"静的シナリオ"に分類される。
【0025】
続いて"動的なシナリオ"について説明する。"動的に"というのは、再生装置200における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD-ROMでは、Java(登録商標)アプリケーションと同様の記述により、この再生制御を記述することができる。つまりBD-ROMでは、Java(登録商標)アプリケーションが、動的シナリオとしての役割を担うことになる。
【0026】
<Java(登録商標)アプリケーション>
Java(登録商標)アプリケーションについて説明する。Java(登録商標)アプリケーションは、仮想マシンのヒープ領域(ワークメモリとも呼ばれる)にロードされた1つ以上のxletプログラムからなる。このワークメモリにロードされたxletプログラム、及び、データから、アプリケーションは構成されることになる。以上がJava(登録商標)アプリケーションの構成である。
【0027】
このJava(登録商標)アプリケーションの実体にあたるのが、図2におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava(登録商標)アーカイブファイル(00001.jar,00002.jar)である。以降、Java(登録商標)アーカイブファイルについて、図11を参照しながら説明する。
【0028】
<Java(登録商標)アーカイブファイル>
Java(登録商標)アーカイブファイル(図2の00001.jar)は、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルである。図11(a)は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるデータは、枠内に示すディレクトリ構造が配置された複数ファイルを、java(登録商標)アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Rootディレクトリ、java(登録商標)ディレクトリ、imageディレクトリとからなり、Rootディレクトリにcommon.pkgが、java(登録商標)ディレクトリにクラスファイル(aaa.class,bbb.class)が、imageディレクトリに、menu.jpgが配置されている。java(登録商標)アーカイブファイルは、これらをjava(登録商標)アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、BD-ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Java(登録商標)アーカイブファイルのファイル名における"zzzzz"という5桁の数値は、アプリケーションのID(applicationID)を示す。本Java(登録商標)アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJava(登録商標)アプリケーションを構成するプログラム,データを取り出すことができる。
【0029】
本図におけるクラスファイル(図中のaaa.class,bbb.class)は、上述したxletプログラムに対応するクラスファイルである。Java(登録商標)動作環境による動作モード(BD-Jモード)における再生手順は、このクラスファイルのインスタンスにあたるxletプログラムにより規定される。xletプログラムとは、JMF(Java(登録商標)Media FrameWork)方式のインターフェイスを利用することができるJava(登録商標)プログラムであり、JMF等の方式に従って、キーイベントに基づく処理を行う。xletプログラムは、JMF方式の処理が可能であるので、MPLSファイルに対するJMF方式のインスタンス(PlayListObject)を生成することにより、プレイリスト再生を再生装置200に命じることができる。他にもxletプログラムでは、ファンクションAPIのコールを記述することにより、BD-ROM再生装置200特有の処理を実行させることができる。
【0030】
更にxletプログラムは、WWWサイトをアクセスしてコンテンツをダウンロードするという手順を実行することもできる。これによりダウンロードコンテンツと、プレイリスト再生とを交えた斬新な作品を再生させることができる。
【0031】
xletプログラムのクラスファイルについて説明する。図11(b)は、クラスファイルの内部構成を示す図である。本図に示すようにクラスファイルは、通常のクラスファイル同様、『コンスタントプール』、『インターフェイス』、『メソッド1,2,3・・・・n』からなる。クラスファイルにおけるメソッドには、挙動のトリガになるキーイベントが予め登録されているメソッド(EventListner)と、BD-ROM再生装置200側のファンクションAPIをコールするメソッドがある。これらのメソッドは、自身に割り当てられたローカル変数や、自身をコールする際の引数を用いることにより、演算等の手順が記述されている。以上がJava(登録商標)アーカイブファイルについての説明である。これで、BD-ROMについての説明を終える。続いて、本発明に係る再生装置の内部構成について説明する。
【0032】
<再生装置>
図12は、本発明に係る再生装置の内部構成を示す図である。本発明に係る再生装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る再生装置は、主としてシステムLSIと、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置は、BD-ROMドライブ1、ReadBuffer2、デマルチプレクサ3、ビデオデコーダ4、ビデオプレーン5、P-Graphicsデコーダ6、Presentation Graphicsプレーン7、合成部8、フォントゼネレータ9、I-Graphicsデコーダ10、スイッチ11、InteractiveGraphicsプレーン12、合成部13、CLUT部14、CLUT部15、オーディオデコーダ16、Network Device17、Local Storage18、ReadBuffer19、デマルチプレクサ20、命令ROM21、ユーザイベント処理部22、PSRセット23、CPU24、シナリオメモリ25、Local Memory26、スイッチ27から構成される。
【0033】
先ず初めに、BD-ROMに記録されたAVClip再生に係る構成要素(BDドライブ1〜オーディオデコーダ16)について説明する。BD-ROMドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
【0034】
Read Buffer2は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。デマルチプレクサ(De-MUX)3は、Read Buffer2からTSパケットを取り出して、このTSパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、CPU24から設定されたPIDをもつものをビデオデコーダ4、P-Graphicsデコーダ6、I-Graphicsデコーダ10、オーディオデコーダ16のどれかに出力する。
【0035】
ビデオデコーダ4は、デマルチプレクサ3から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン5に書き込む。ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。ビデオプレーン5では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン5全体の1/4(クオータという)、1/1(フルスケールという)のどちらかに変化させることである。かかるスケーリングを、BD-JモードにおいてCPU24からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。
【0036】
P-Graphicsデコーダ6は、BD-ROMから読み出されたプレゼンテーショングラフィクスストリームをデコードして、非圧縮グラフィクスをPresentationGraphicsプレーン7に書き込む。グラフィクスストリームのデコードにより、字幕が画面上に現れることになる。
【0037】
Presentation Graphicsプレーン7は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は1920×1080であり、PresentationGraphicsプレーン7中の非圧縮グラフィクスの各画素は8ビットのインデックスカラーで表現される。CLUT(Color Lookup Table)を用いてかかるインデックスカラーを変換することにより、PresentationGraphicsプレーン7に格納された非圧縮グラフィクスは、表示に供される。
【0038】
合成部8は、ビデオプレーン5に格納された非圧縮状態のピクチャデータ(i)を、Presentation Graphicsプレーン7の格納内容と合成する。フォントゼネレータ9は、文字フォントを用いてtextSTストリームに含まれるテキストコードをビットマップに展開してPresentation Graphicsプレーン7に書き込む。
【0039】
I-Graphicsデコーダ10は、HDMVモードにおいてBD-ROM又はLocal Storage18から読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractiveGraphicsプレーン12に書き込む。
【0040】
スイッチ11は、フォントゼネレータ9が生成したフォント列、P-Graphicsデコーダ6のデコードにより得られたグラフィクスの何れかを選択的にPresentationGraphicsプレーン7に書き込むスイッチである。
【0041】
Interactive Graphicsプレーン12は、I-Graphicsデコーダ10によるデコードで得られた非圧縮グラフィクスが書き込まれる。またInteractiveGraphicsプレーン12には、BD-Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
【0042】
合成部13は、Interactive Graphicsプレーン12の格納内容と、合成部8の出力である合成画像(非圧縮状態のピクチャデータと、PresentationGraphicsプレーン7の格納内容とを合成したもの)とを合成する。かかる合成により、アプリケーションがI-Graphicsデコーダ10に書き込んだ文字・グラフィクスを、非圧縮状態のピクチャデータ上にオーバレイして、表示することができる。
【0043】
CLUT部14は、ビデオプレーン5に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。CLUT部15は、Interactive Graphicsプレーン12に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
【0044】
オーディオデコーダ16は、デマルチプレクサ3から出力されたPESパケットを復号して、非圧縮形式のオーディオデータを出力する。以上がAVClip再生に係る構成要素である。続いてBD-Jモードでの動作に係る構成要素(Network Device17〜De-mux20)について説明する。
【0045】
Network Device17は、再生装置における通信機能を実現するものであり、BD-JモードにおいてURL指定がJava(登録商標)アプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
【0046】
Local Storage18は、Network Device17により確立されたコネクションを通じてwebサイトからダウンロードされたコンテンツ等、BD-ROM以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておくためのハードディスクである。このメタデータは、ダウンロードコンテンツをLocalStorage18にバインドして管理するための情報であり、このLocal Storage18をアクセスすることで、BD-Jモードにおけるアプリケーションは、ダウンロードコンテンツを利用した様々な処理を行うことができる。
【0047】
Read Buffer19は、FIFOメモリであり、Local Storage18に格納されたダウンロードコンテンツに、SubClipが含まれている場合、このSubClipを構成するTSパケットを、先入れ先出し式に格納する。
【0048】
デマルチプレクサ(De-MUX)20は、Read Buffer19からTSパケットを取り出して、TSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、所望のPIDをもつものをフォントゼネレータ9、I-Graphicsデコーダ10、オーディオデコーダ16に出力する。
【0049】
以上のNetwork Device17〜De-mux20により、Java(登録商標)アプリケーションがネットワークを通じてダウンロードしたコンテンツを、BD-ROMに記録されたコンテンツ同様再生させることができる。続いて、再生装置における統合制御を実現する構成要素(命令ROM21〜スイッチ27)について説明する。
【0050】
命令ROM21は、再生装置の制御を規定するソフトウェアを記憶している。ユーザイベント処理部22は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うユーザイベントをCPU24に出力する。
【0051】
PSRセット23は、再生装置に内蔵されるレジスタであり、64個のPlayer Status Register(PSR)と、4096個のGeneralPurpose Register(GPR)とからなる。Player Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
【0052】
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
【0053】
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するPL(カレントPL)の番号を示す。PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlayItem(カレントPlay Item)の番号を示す。
【0054】
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(PresentationTiMe))を示す。以上のPSR4〜PSR8により、図8におけるAVClip時間軸において、現在の再生時点はどこであるかを特定することができる。
【0055】
CPU24は、命令ROM21に格納されているソフトウェアを実行して、再生装置全体の制御を実行する。この制御の内容は、ユーザイベント処理部22から出力されたユーザイベント、及び、PSRセット23における各PSRの設定値に応じて動的に変化する。
【0056】
シナリオメモリ25は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PL情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
【0057】
Local Memory26は、BD-ROMからの読み出しは低速である故、BD-ROMの記録内容を一時的に格納しておくためのキャッシュメモリである。かかるLocalMemory26が存在することにより、BD-Jモードにおけるアプリケーション実行は、効率化されることになる。
【0058】
スイッチ27は、BD-ROM及びLocal Storage18から読み出された各種データを、Read Buffer2、Read Buffer19、シナリオメモリ25、LocalMemory26のどれかに選択的に投入するスイッチである。
【0059】
以上が、本実施形態に係る再生装置のハードウェア構成である。続いて本実施形態に係る再生装置におけるファイルシステム構造について説明する。図13(a)は、Local Storage18におけるディレクトリ構造を示す図である。
【0060】
本図のディレクトリ構造においてROOTディレクトリの配下には、「DLDAT」というサブディレクトリがあり、その配下に、「PKG00001」,「PKG00002」というサブディレクトリがある。「PKG00001」,「PKG00002」はそれぞれがBD-ROMのボリュームラベルであり、「PKG00001」というボリュームラベルを有したBD-ROMに対応するディレクトリ、「PKG00002」というボリュームラベルのBD-ROMに対応したディレクトリが、LocalStorage18に存在することを意味する。そのうち、サブディレクトリ「PKG00001」は、ボリュームラベル「PKG00001」のBD-ROMに対応する、ダウンロードデータの置き場所であることを示す。各BD-ROMに対応するディレクトリにサブディレクトリを配置することで各BD-ROMについてのダウンロードデータが個別に格納される。このサブディレクトリの配下に、BD-ROMに格納されていたのと同様、PlayLIst情報、Clip情報、AVClipが格納されており、この他にJava(登録商標)アーカイブファイルや、ストリーム格納位置情報ファイルが存在する。
【0061】
ここでBD-ROMに記録されていたAVClipが、映画作品の本編に該当するのに対し、Local Storage18上に記録されているAVClipは、現在劇場で上映されている映画作品の予告編であるものとする。予告編の内容は、時代の移り変わりによって変わるので、現在、現在劇場で上映されている映画作品の予告編が、LocalStorage18上に、AVClipとして記録されているのである。
【0062】
後者のストリーム格納位置情報ファイルについて説明する。このストリーム格納位置情報ファイルは、Virtual Packageを構成するファイルの一覧を示す情報である。図13(b)は、ストリーム格納位置情報ファイルの内部構成を示す図であり、ストリーム格納位置情報ファイルは、VirtualPackageを構成する各AVClip及びClip情報の格納位置情報からなる。各格納位置情報は、AVClip及びClip情報の"識別子"と、LocalStorage18におけるそのAVClip及びClip情報の格納位置を示す"ファイルパス"とからなる。かかる格納位置情報を参照することにより、VirtualPackageを構築するにあたって、Virtual Packageの構成要素となるAVClip及びClip情報が、揃っているかを、確認することができる。
【0063】
以上が、本実施形態に係る再生装置のファイルシステム構成である。続いて本実施形態に係る再生装置におけるソフトウェア構造について説明する。図14は、ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のa),b),c)からなる。つまり、a)BD Player Deviceの第1階層、b)BD Player Modelの第2階層、c)Application Runtime Enviromentの第3階層からなる。
【0064】
これらの階層のうち図12に示した再生装置のハードウェア構成は、第1階層に属することになる。本図の第1階層"BD Player Device"には、図12に示したハードウェア構成のうちビデオデコーダ4、P-Graphicsデコーダ6、I-Graphicsデコーダ10、オーディオデコーダ16からなる"デコーダ"と、ビデオプレーン5、PresentationGraphicsプレーン7、Interactive Graphicsプレーン12からなる"プレーン"、BD-ROM及びそのファイルシステム、LocalStorage18及びそのファイルシステムを含む。
【0065】
第2階層"BD Player Model"は、以下のb1),b2)の層からなる。つまり、b2)Playback Control Engine32の層b1)Virtual File System38及びPresentation Engine31の層からなり、自身より上位の階層に対し、ファンクションAPIを提供する。
【0066】
このうち図12に示したPSRセット23やシナリオメモリ25は、Playback Control Engine32内に存在することになる。第3階層"Application Runtime Enviroment"は、以下のc1)のスタック階層からなる。つまり、c1)HDMVモジュール29a、BD-Jモジュール29bが存在する層からなる。
【0067】
以降、このソフトウェア構造における各構成要素について説明する。<HDMVモジュール29a、BD-Jモジュール29b>
HDMVモジュール29aは、ナビゲーションコマンドを解読し、解読結果に基づきPlayback Control Engine32に対するファンクションコールを実行する。
【0068】
BD-Jモジュール29bは、いわゆるJava(登録商標)プラットフォームであり、d1-1)Java(登録商標)仮想マシン30d1-2)Java(登録商標)仮想マシンが動作するためのミドルウエアを階層化した構成になっている。
【0069】
<Java(登録商標)仮想マシン30>
Java(登録商標)仮想マシン30は、アプリケーションを構成するxletプログラムをワークメモリにロードして、xletプログラムを解読し、解読結果に従って、下位層に対する制御を行う。下位層への制御は、メソッドをミドルウェアに発行して、BD再生装置が対応しているファンクションコールに置き換えさせ、置換後のファンクションコールをPlaybackControl Engine32に発行することでなされる。
【0070】
(Java(登録商標)仮想マシン30の内部構成)ここでJava(登録商標)仮想マシン30の内部構成について説明する。図15は、Java(登録商標)仮想マシン30の内部構成を示す図である。本図に示すようにJava(登録商標)仮想マシン30は、図12に示したCPU24と、ユーザクラスローダ52、メソッドエリア53、ワークメモリ54、スレッド55a,b・・・n、Java(登録商標)スタック56a,b・・・nとから構成される。
【0071】
ユーザクラスローダ52は、BDJAディレクトリのJava(登録商標)アーカイブファイルにおけるクラスファイルをLocal Memory26等から読み出してメソッドエリア53に格納する。このユーザクラスローダ52によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ36がユーザクラスローダ52に指示することでなされる。ファイルパスがLocalMemory26を示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、LocalMemory26からワークメモリ54に読み出す。ファイルパスがFile Syste上のディレクトリを示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、BD-ROM又はLocalStorage18からワークメモリ54に読み出す。
【0072】
メソッドエリア53は、ユーザクラスローダ52によりLocal Memory26から読み出されたクラスファイルが格納される。ワークメモリ54は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。ワークメモリ54には、常駐型のレジデントアプリケーションやメソッドエリア53に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するxletプログラムである。かかるxletプログラムをワークメモリ54に配置することによりアプリケーションは実行可能な状態になる。
【0073】
スレッド55a,b・・・nは、ワークメモリ54に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ky1,ky2,kynは、ワークメモリ54からスレッド55a,b・・・nへのメソッド供給を象徴的に示している。物理的な実行主体がCPU唯1つであるのに対し、論理的な実行主体たるスレッドは、最大64個Java(登録商標)仮想マシン30内に存在し得る。この64個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Java(登録商標)仮想マシン30の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより1つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。
【0074】
Java(登録商標)スタック56a,b・・・nは、スレッド55a,b・・・nと1対1の比率で存在しており、プログラムカウンタ(図中のPC)と、1つ以上のフレームとを内部に持つ。"プログラムカウンタ"は、インスタンスにおいて、現在どの部分が実行されているかを示す。"フレーム"はメソッドに対する1回のコールに対して割り当てられたスタック式の領域であり、その1回のコール時の引数が格納される"オペランドスタック"と、コールされたメソッドが用いる"ローカル変数スタック(図中のローカル変数)"とからなる。フレームは、コールが1回なされる度にJava(登録商標)スタック56a,b・・・n上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、1つ積み上げられることになる。
【0075】
以上がJava(登録商標)仮想マシンの内部構成である。このように構成されたJava(登録商標)仮想マシンは、イベントにより駆動される実行主体(イベントドリブンの実行主体)となる。以上がJava(登録商標)仮想マシンについての説明である。
【0076】
<Presentation Engine31>
Presentation Engine31は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(SubtitleChange)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、Presentation Engine31は、Read Buffer2上に読み出されたAVClipのうち、所望に時刻にあたる部分のデコードを行うよう、ビデオデコーダ4、P-Graphicsデコーダ6、I-Graphicsデコーダ10、オーディオデコーダ16を制御する。所望の時刻としてPSR8(カレントPTM)に示される箇所のデコードを行わせることにより、AVClipにおいて、任意の時点を再生を可能することができる。
【0077】
<Playback Control Engine32>
再生制御エンジン(Playback Control Engine32(PCE))32は、プレイリストに対する再生制御ファンクション(i)、PSRセット23における状態取得/設定ファンクション(ii)といった諸機能を実行する。PLに対する再生制御ファンクションとは、PresentationEngine31が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントPL情報及びClip情報に従って行わせることをいう。これら機能(i)〜(ii)は、HDMVモジュール29a〜BD-Jモジュール29bからのファンクションコールに応じて実行する。
【0078】
ここでPlayback Control Engine32による処理と、Java(登録商標)仮想マシンによる処理との同期について説明する。PlaybackControl Engine32は、ファンクションがコールされれば、PL情報に基づく処理手順を実行する。再生しようとするAVClipが15分、30分という再生時間を有するなら、これらの時間、上述した処理は継続することになる。ここで問題になるのは、Java(登録商標)仮想マシン30がサクセス応答を返す時間と、PlaybackControl Engine32が実際に処理を終える時間とのギャップである。Java(登録商標)仮想マシン30は、イベントドリブンの処理主体であるためコール直後に再生成功か、再生失敗かを示す応答を返すが、PlaybackControl Engine32がAVClip及びPlayItemの再生を終了するのは、15分、30分経過後であるので、サクセス応答をアプリケーションに返す時間を基準にしたのでは、15分、30分経過後にあたる処理終結を感知しえない。PL再生において早送り、巻戻しが行われると、この15分、30分という再生期間は前後に変動することになり、処理終結の感知は更に困難になる。そこでPlaybackControl Engine32は、PlayItemの再生終了時、AVClipの再生終了時に、PlayItemやAVClipの再生が終了したことを示すイベントをアプリケーションに出力する。かかる出力により、PlaybackControl Engine32がPlayItemやAVClipの再生を終結した時点を、アプリケーションは知得することができる。
【0079】
以上が、Java(登録商標)仮想マシン、Network Device31、Playback Control Engine32の説明である。PlaybackControl Engine32に対する、Java(登録商標)仮想マシンによる制御は、Virtual Packageを通じてなされる。VirtualPackageを通じた、Playback Control Engine32に対する制御を実現するため、再生装置には、以下に示す構成要素(ネットワーク管理モジュール37、VirtualFileSystem部38、管理情報変換モジュール39、メソッド実行モジュール40)が存在する。以降これらの構成要素について説明する。
【0080】
<ネットワーク管理モジュール37>
ネットワーク管理モジュール37は、アプリケーションからのメソッド呼出に従って、Virtual Package構築に必要なデータを、映画作品のプロバイダが運営しているWWWサイトからダウンロードする。VirtualPackage構築に必要なデータには、ストリーム格納位置情報ファイル、PlayList情報、Clip情報、AVClipがある。Work Memory54上のアプリケーションによるダウンロード要求がなされると、ネットワーク管理モジュール37は、ネットワークを通じて、VirtualPackage構築に必要なデータをダウンロードし、Local Storage18に書き込んでゆく。
【0081】
このダウンロードにあたっての書き込みの順序は、ストリーム格納位置情報ファイル→PlayList情報→複数Clip情報→複数AVClipとなる。
【0082】
ここでPlayList情報−複数のClip情報の書き込みが完了した段階で、Virtual Packageの構築は可能になる。
<Virtual FileSystem部38>
Virtual FileSystem部38は、第2階層に属する構成要素の1つであり、アプリケーションからのメソッド呼出に従い、Virtual Packageを構築する。VirtualPackageの構築処理には、Virtual Packageを構成する各AVClipの状態管理と、Virtual Package情報の生成処理とが含まれる。
【0083】
1.Virtual Package情報Virtual Package情報は、BD-ROMにおけるボリューム管理情報を拡張した情報である。ここでボリューム管理情報は、ある記録媒体上に存在するディレクトリ−ファイル構造を規定する情報であり、ディレクトリについてのディレクトリ管理情報、ファイルについてのファイル管理情報とからなる。
【0084】
Virtual Package情報とは、BD-ROMのディレクトリ−ファイル構造を示すボリューム管理情報に、新たなファイル管理情報を追加することにより、BD-ROMにおけるディレクトリ−ファイル構造の拡張を図ったものである。ここでBDボリューム管理情報に追加されるファイル管理情報とは、LocalStorage18に存在するPlayLIst情報、Clip情報、AVClipについてのファイル管理情報であり、かかるファイル管理情報を追加したVirtualPackage情報を作成し、Playback Control Engine32に引き渡すことにより、Playback Control Engine32は、LocalStorage18上にあるPlayLIst情報、Clip情報、AVClipがBD-ROMに存在するものとして認識することができる。図16は、VirtualFileSystem部38によるVirtualPackage情報構築の一例を示す図である。本図の左上は、BD-ROMにおけるディレクトリ−ファイル構造であり、図2に示したものと同じである。本図の左下は、LocalStorage18におけるディレクトリ−ファイル構造であり、図13(a)に示したものと同じである。このLocal Storage18上のPlayLIst情報、Clip情報、AVClipについてのファイル管理情報を、BD-ROMのボリューム管理情報に追加する。
【0085】
具体的には、i)Local Storage18上のPlayLIst(00002.MPLS)についてのファイル管理情報を、BDボリューム構成情報におけるMPLSディレクトリのディレクトリ管理情報に追加し、ii)Local Storage18上のClip情報#2、Clip情報#3、#4(00002.CLPI,00003.CLPI,00004.CLPI)についてのファイル管理情報を、BDボリューム構成情報におけるCLPIディレクトリのディレクトリ管理情報に追加し、iii)Local Storage18上のAVClip#2、AVClip#3、#4(00002.M2TS,00003.M2TS,00004.M2TS)についてのファイル管理情報を、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加する。
【0086】
こうすることにより、Virtual Package情報が得られる。この追加により得られたボリューム管理情報が、Virtual Package情報である。こうして作成されたVirtual Package情報を、Playback Control Engine32に引き渡す。これにより、PlaybackControl Engine32は、Local Storage18上のPlayLIst情報、Clip情報、AVClipを、BD-ROM上のPlayLIst情報、Clip情報、AVClipと対等に扱うことができる。以上がVirtualPackage情報生成についての説明である。続いてVirtual FileSysterm部38による状態管理について説明する。
【0087】
3.enable及びdisable"状態管理"とは、Virtual Packageを構築すべきAVClipが、enableであるか、disableであるかの管理である。ここでPlayList情報における1つのPlayItem情報がマルチアングル対象である場合、マルチアングル区間を構成するそれぞれのAVClipが、enableであるか/disableであるかという状態管理の対象になる。また、PlayItem情報にSubPlayItem情報が存在する場合、そのSubPlayItem情報のClip_information_file_nameに記述されているAVClipも、enableであるか/disableであるかという状態管理の対象になる。
【0088】
図17(a)は、Virtual FileSystem部38による状態管理の一例を示す図である。本図に示すように、AVClipの状態には、"enable"、"disable"というものがある。"enable"とは、Clip情報と、それに対応するAVClipとがLocalStorage18上に存在し、そのAVClipがRead Only Modeに設定されている状態をいう。
【0089】
一方、"disable"とは、Clip情報がLocal Storage18上に存在するもの、これに対応するAVClipが、Local Storage18に存在しないか(MissingStream)、存在したとしても、削除され得る状態にあることをいう。
【0090】
disableは、削除され得るものと取り扱われるので、Local Storage18上の容量が不足した際、disableのAVClipは削除の対象になる。従ってLocal Storage18にAVClipがダウンロードされた場合、Virtual FileSysterm部38がこのAVClipをenableに変化させない限り、PlaybackControl Engine32は、このダウンロードされたAVClipを存在しないものとして扱うことになる。Virtual File Systerm部38の作為がない限り、PlaybackControl Engine32は、Local Storage18上のAVClipを認識しないので、不安定な状態のまま、Playback ControlEngine32が再生を進めるようなことは有り得ない。
【0091】
3.Read Only Mode及びそのキャンセル続いてRead Only Modeについて説明する。Read Only Modeへの変化は、Local Storage18におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、LocalStorage18におけるDLDATディレクトリ配下のPACKAGE00001ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル属性を全てRead-only属性に書き換えることにより、LocalStorage18上のAVClipは、書き換えられることはなくなる。そのため、Playback Control Engine32による再生中、アプリケーションがLocalStorage18上のAVClipをアクセスしようとしても、AVClipが書き換えられることはないので、再生中のAVClipの同一性は保たれることになる。
【0092】
Local Storage18上のAVClipを、Playback Control Engine32から認識できるような状態にした際、LocalStorage18において、そのAVClipを格納しているファイルをRead-only属性にするので、Java(登録商標)仮想マシン上のアプリケーションが、ダイレクトにLocalStorage18をアクセスしたとしても、そのAVClipの内容が途中から変わってしまうことはない。
【0093】
Read Only Modeのキャンセルについて説明する。Read Only Modeのキャンセルは、ReadOnly Modeへの変化同様、LocalStorage18におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、Local Storage18におけるDLDATディレクトリ配下のPACKAGE00001ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル管理情報を、Read-only属性からRe-writable属性に書き換えることにより、LocalStorage18上のAVClipは、いつでも書き換えられることになる。そのため、Playback Control Engine32による再生が済んだ直後、LocalStorage18におけるファイル管理情報を、Re-writable属性に書き換えることにより、Local Storage18上のAVClipは、削除の対象になる。以上が、状態管理についての説明である。
【0094】
4.状態管理とVirtual Package情報との関係この状態管理の内容は、Virtual Package情報の作成に反映されうる。つまり状態管理において、disableとされているAVClipについてのファイル管理情報は、BD-ROMのボリューム管理情報に追加されず、enableとされているAVClipについてのファイル管理情報のみが、BD-ROMのボリューム管理情報に追加されるのである。こうして作成したVirtualPackage情報を、Playback Control Engine32に引き渡すことにより、Playback Control Engine32は、enableと設定されたAVClipのみを認識することになる。BD-ROM上に存在するAVClip#1、及びLocalStorage18上に存在するAVClip#2、AVClip#3、AVClip#4のうち、AVClip#1、AVClip#2はenableであるが、AVClip#3、AVClip#4はdisableであるとすると、VirtualFileSysterm部38は、図18に示すように、Virtual Package情報の作成を行う。図18は、状態管理を反映したVirtual Package情報の作成を示す図である。本図においてAVClip#2についてのファイル管理情報は、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加されるが、AVClip#3、AVClip#4についてのファイル管理情報は、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加されない。図18左下における4つのAVClipのうち、AVClip#2にあたる、00002.M2TSがenableであり、AVClip#3、AVClip#4にあたる、00003.M2TS,00004.M2TSがdisableであるものとする。そうすると、本図に示すように、LocalStorage18において、AVClip#2にあたる、00002.M2TSのファイル属性は、Read-only属性に設定される。またAVClip#3、AVClip#4にあたる、00003.M2TS,00004.M2TSのファイル属性は、Re-writable属性に設定される。こうして作成したVirtualPackage情報をPlayback Control Engine32に引き渡すことにより、Playback Control Engine32は、disableにあるAVClip#3、AVClip#4を認識することはない。
【0095】
ここでClip情報は存在するが、対応するAVClipがLocal Storage18上にない場合、そのAVClipはdisableに設定された。しかし、Clip情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、AVClipはおろかClip情報すらLocalStorage18にない場合、Virtual Packageの構築は不可能になる。つまり、Virtual Packageにおいて本来あるべきClip情報が存在しないことは、VirtualPackage全体に波及することを意味する。
【0096】
5.Virtual Package情報の引き渡し以上の1.〜4.にて作成されたVirtual Package情報が、どのように引き渡されるかについて説明する。
【0097】
ここで図18に示したように、PlayList情報、Clip情報#2〜Clip情報#4、AVClip#2はダウンロードが完了しているものAVClip#3、AVClip#4のダウンロードは未完である状態である場合を想定する。かかる状態でVirtualPackage構築が要求されれば、Virtual FileSysterm部38は、図19に示すような動作を行う。図19は、ネットワーク管理モジュール37によるダウンロードが途上である場合の、VirtualFileSystem部38によるVirtual Package構築を示す図である。本図の状況でVirtual Package構築が要求されれば(◎1VPCreate)、BD-ROM及びLocal Storage18からディレクトリ管理情報及びファイル管理情報を読み出して(◎2,3)、VirtualPackageの構築を行い、Virtual Package情報をPlayback Control Engine32に引き渡すと共に(◎4)、アプリケーションに引き渡す(◎5)。こうすることでPlaybackControl Engine32は、Virtual Packageを通じてBD-ROM、及び、Local Storage18上のAVClipから1つのストリームシーケンスを構築することができる。
【0098】
またアプリケーションに引き渡したVirtual Package情報においてClip情報#3、Clip情報#4が存在するもの、AVClip#3、AVClip#4は存在しないので、アプリケーションは、AVClip#3、AVClip#4がストリーム列を構成するもの、これらが存在しないストリーム(MissingStream)であると認識することができる。
【0099】
以上がVirtual FileSystem部38についての説明である。<管理情報変換モジュール39>
管理情報変換モジュール39は、BD-J Module29b内のミドルウエアの1つであり、Virtual Package中に存在するPlayList情報のインスタンス生成をアプリケーションが要求した際、Java(登録商標)仮想マシンのWorkMemory54に、JMF形式によるPlayList情報のインスタンス(図16のWork Memory54内に示したPlayListオブジェクト)を生成する。
【0100】
このインスタンス(PlayListオブジェクト)は、PlayList情報である"データ部"と、複数の"メソッド部"とをもつ。PlayListオブジェクトにおける複数のメソッドは、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(PauseOff)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった、諸々の再生処理を、Playback Control Engine32に行わせるものである。よってアプリケーションは、このメソッドを呼び出すことにより、そのPlayListにより規定されるストリームシーケンスを再生したり、かかる再生を停止したりすることができる。
【0101】
ここで、PlayListオブジェクトにより再生されるPlayList情報について説明する。このPlayList情報は、Local Storage18上に存在するPlayList情報である。BD-ROM上のPlayList情報は、BD-ROM上のAVClipのみを参照しているのに対し、Local Storage18上のPlayList情報は"ProgressivePlayList情報"と呼ばれ、BD-ROM上のAVClipと、Local Storage18上のAVClipとを参照する。
【0102】
ここでProgressive PlayList情報が、PlayItem情報#1〜PlayItem情報#5という5つのPlayItem情報から構成されているものとする。このうち、3つのPlayItem情報#1〜PlayItem情報#3は、BD-ROM上のClip情報を参照するものであり、残りの2つ(PlayItem情報#4、PlayItem情報#5)が、LocalStorage18上のClip情報を参照するものである場合、このProgressive PlayList情報は、図20(a)に示すように、BD-ROM上のAVClipと、LocalStorage18上のAVClipとから1つのストリームシーケンスを定義することができる。
【0103】
図20(a)は、ローカルストレージに格納されたPL情報により、どのようなPlayList再生時間軸が定義されるかを示す図である。第1段目は、BD-ROMに記録されたAVClipにおける再生時間軸を示し、第2段目は、ローカルストレージに格納されたPL情報により定義されるPlayList再生時間軸を示す。第3段目は、ローカルストレージに格納されたAVClip#2における再生時間軸を、第4段目は、ローカルストレージに格納されたAVClip#3における再生時間軸を、第5段目は、ローカルストレージに格納されたAVClip#4における再生時間軸を示す。
【0104】
PlayList情報におけるPlayItemのうち、PlayItem情報#4、PlayItem情報#5、PlayItem情報#6が、AVClip#2、AVClip#3、AVClip#4を再生区間として指定するなら、ProgressivePlayList情報は、BD-ROM上のAVClip及びLocal Storage18上のAVClipを1つのストリームシーケンスとして規定することができる。
【0105】
ここでProgressive PlayList情報の"Progressive"とは、PlayList情報を構成するPlayItem情報により参照されるAVClipのうち、一部のものがenableであれば、残りのものがdisableであったとしても、ストリームシーケンスの再生を開始することができることを意味する。
【0106】
図20(b)は、Progressive PlayList情報の概念を示す図である。本図の第2段目〜第5段目は、図20(a)の第2段目、第3段目、第4段目、第5段目を示すものである。図20(a)の第3段目、図20(b)の第3段目のAVClipはenableであるが、第4段目〜第5段目のAVClipがdisableである場合、ProgressivePlayList情報により参照される4つのAVClipのうち、AVClip#3、AVClip#4は再生しえないもの、AVClip#1、AVClip#2は再生し得るので、ストリームシーケンスの再生は開始できることになる。このように、一部のAVClipであれば、投機的に再生を開始することができるのがProgressivePlayList情報の特徴である。
【0107】
Virtual Package構築がVirtual FileSystem部38によりなされた段階において、図20のようなProgressivePlayList情報についてのインスタンス生成を、Work Memory54上のアプリケーションが要求した場合、管理情報変換モジュール39は、図21に示すような処理を行う。図21は、管理情報変換モジュール39によるインスタンス生成を示す図である。
【0108】
Virtual Packageに存在するPlayList情報のインスタンス生成を要求する、生成メソッドをアプリケーション呼び出すと(◎1)、管理情報変換モジュール39はPlayList情報をシナリオメモリ25から読み出して(◎2)、このProgressivePlayList情報をデータ部にし、メソッド部を付け加えたPlayListオブジェクトをWork Memory54に生成する(◎3)。かかるPlayListオブジェクトがWorkMemory54に得られるので、アプリケーションは、このPlayListオブジェクトのメソッドを呼び出すことにより、PlayList情報により規定されるストリームシーケンスの再生を、PlaybackControl Engine32に命じることができる。
【0109】
図22は、PlayListオブジェクトにおけるPlayメソッドの呼び出しを示す図である。このPlayメソッドの呼び出しにより(◎4)、PlaybackControl Engine32に対し、PL再生のファンクションコールがなされる(◎5)。そうすると、Playback Control Engine32は、再生が要求されたPlayList情報により参照されているAVClip(BD-ROM上のAVClip#1、LocalStorage18上のAVClip#2)を読み出し(◎6,7)、順次デコーダに供給させる。以上が管理情報変換モジュール39についての説明である。
【0110】
<メソッド実行モジュール40>
メソッド実行モジュール40は、BD-J Module29b内のミドルウェアにおける構成要素の1つであり、Java(登録商標)仮想マシン30に存在するアプリケーションからのメソッド呼出に応じて、各種メソッドを実行する。メソッド実行モジュール40により実行されるメソッドには、様々なものがあるが、getMissingStreamsメソッド、enableClipメソッド、disableClipメソッド、getDisableClipsメソッドといったものは、本願における特徴的なものである。以降、これらのメソッドについて説明する。
【0111】
1. getMissingStreamsメソッドgetMissingStreamsメソッドとは、ネットワーク管理モジュール37によるダウンロードが継続している際に、未だMissing StreamになっているAVClipが存在するかを、VirtualFileSystem部38に問い合わせるメソッドである。
【0112】
ここで図19のようなVirtual Package情報がWork Memory54上のアプリケーションに引き渡されたものとする。Virtual Package構築時に判明していたMissingStreamがAVClip#3、AVClip#4であり、その後、アプリケーションがgetMissingStreamsメソッドを呼び出すことにより、最新のMissingStreamについて、Virtual FileSystem部38に問い合わせたとする。この場合のメソッド実行モジュール40による処理は、図23のようになる。
【0113】
図23は、この問合せの結果を模式的に示す図である。本図において◎1に示すように、getMissingStreamsメソッドの呼び出しがなされ、この呼出により、VirtualFileSystem部38がAVClip#4を戻り値として返すとする。そうすると、getMissingStreamsメソッドを呼び出す前においてMissingStreamがAVClip#3、AVClip#4であったのに対し、getMissingStreamsメソッドの呼出後においてAVClip#4になったことから、AVClip#3はMissingStreamでなくなった(ダウンロードが完了した)と判定することができる。こうすることにより、ダウンロードの進行により、Missing Streamがどれだけ解消されたかを知得することができる。
【0114】
2.enableClipメソッドenableClipメソッドとは、Virtual Packageの構築時においてMissing Streamであったが、その後、Missing StreamでなくなったAVClipが存在する場合、そのAVClipをenableに設定するためのメソッドである。
【0115】
ここで図23においてAVClip#3がMissing Streamでなくなったことが明らかになったので、このAVClip#3を対象にしたenableClipメソッドを呼び出したものとする。この場合、メソッド実行モジュール40は、図24に示すような処理を行う。図24は、enableClipメソッドの呼出を模式的に示す図である。このAVClip#3を対象にしたenableClipメソッドの呼び出しがなされると(◎3)、アプリケーションは、AVClip#3をenableに変化させ、Success応答をアプリケーションに返す(◎2)。こうすることにより、VirtualPackageの構築にてMissing StreamでなくなったAVClipをenableに変化させてゆくことができる。AVClipをenableにした際、メソッド実行モジュール40は、新たにenableにしたAVClipを含むVirtualPackage情報を、アプリケーション及びPlayback Control Engine32に引き渡させる。これにより、Playback ControlEngine32及びアプリケーションは、新たに、enableになったAVClipを認識し、アクセスすることができる。
【0116】
3.disableClipメソッドdisableClipメソッドとは、enableにあるAVClipを、disableに設定するメソッドである。ここで図20に示したProgressivePlayList情報の再生中において、AVClip#2の再生が完了した旨のイベントが、Playback Control Engine32により通知されたものとする。この場合、AVClip#2の再生が完了したことが通知されれば、図25のような処理を行う。図25は、disableClipメソッドの呼出を模式的に示す図である。本図において、PlaybackControl Engine32による再生に進行に伴い、AVClip#2の再生が完了したことが、end of Clipイベントにより通知されれば(◎1)、このAVClip#2を対象にしたdisableClipメソッドを呼出すことにより(◎2)、アプリケーションは、AVClip#2をdisableに変化させることができる。こうすることにより、再生が済んだAVClipをdisableに変化させてゆくことができる。こうすることにより、AVClip#2はdisableに設定されるので、AVClip#2は、削除の対象になる。予告編を構成するようなAVClipが時々刻々とダウンロードされるような場合、ProgressivePlayList情報により規定されるストリームシーケンスのうち、再生が済んだものを順次disableにしてゆけば、再生が済んだAVClipを、disableにして削除の対象にしてゆくことができる。AVClipをdisableにした際、メソッド実行モジュール40は、新たにdisableにしたAVClipを除いたVirtualPackage情報を、アプリケーション及びPlayback Control Engine32に引き渡させる。これにより、Playback ControlEngine32は、disableになったAVClipを認識することはない。尚、Local Storage18上のAVClipを削除するにあたって、ミドルウェアは、削除しようとするアプリケーションの書き込み権限をチェックした上で、その削除を実行する。これは、不本意な削除によるAVClipの消失を防ぐためである。
【0117】
4.getDisableClipsメソッドgetDisableClipsメソッドとは、Disable になっている AVClip が存在するかを問い合わせるメソッドである。このメソッドの呼出によりアプリケーションはこのメソッドを使って現在Disable となっているAVClip があるかどうかの情報を得ることができる。使用例としては、例えば、 Progressive PlayList 再生中、ユーザからのチャプタースキップ要求を受けたときに、アプリケーションは、ジャンプ先のAVClip がDisableかどうかをこのメソッドを使って判断する。そして、Disableであれば、チャプタースキップを行わず、「現在ダウンロード中のため、そのチャプターにはまだジャンプできません」などと、注意を喚起する表示を行う。こうすることにより、チャプタースキップといった、特殊再生を、ProgressivePlayListの再生中に実行することができる。
【0118】
以上で、メソッド実行モジュール40により実行されるメソッドについての説明を終わる。これまで説明した各構成要素について、フローチャートを参照しながら、その処理手順の詳細を説明する。
【0119】
図26は、Virtual Package構築時の処理を示すフローチャートである。本フローチャートでは、ストリーム格納位置情報ファイルに格納されたAVClipに対応するClip情報がLocalStorage18に完備されているかどうかを先ず判定し(ステップS1)、Clip情報に未完のものがあれば、アプリケーションからのVirtual Package呼出に対し、Falseリターンを行う(ステップS10)。Clip情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、AVClipはおろかClip情報すらLocalStorageにない場合、Virtual Packageの構築は不可能になる。
【0120】
一方、ストリーム格納位置情報ファイルに記述された全てのClip情報が、Local Storage18に存在すれば(ステップS1でYes)、LocalStorage18におけるPlayList情報のファイル管理情報を、BDボリューム管理情報におけるPLAYLISTディレクトリのディレクトリ管理情報に追加し(ステップS2)、LocalStorage18におけるClip情報のファイル管理情報を、BDボリューム管理情報におけるCLPINFディレクトリのディレクトリ管理情報に追加する(ステップS3)。その後、ステップS4〜ステップS8のループ処理を実行する。このループ処理は、LocalStorage18に存在するそれぞれのClip情報について、ステップS6〜ステップS8の処理を繰り返すものである(ステップS4、ステップS5)。ここで、ループ処理の対象となる1つのClip情報をClip情報xとする。
【0121】
本ループ処理において、Clip情報xに対応するAVClipを特定し(ステップS6)、このAVClipはenableであるか、disableであるかを判定する(ステップS7)。enableであれば、LocalStorage18におけるAVClipxのファイル管理情報を、BDボリューム管理情報におけるSTREAMディレクトリのディレクトリ管理情報に追加する(ステップS8)。一方、AVClipがdisableであれば、ステップS8をスキップする。以上の処理を全てのClip情報及びAVClipについて繰り返せば、enableのAVClipについてのファイル管理情報が、BDボリューム管理情報に追加されることになる。こうした追加により得られたBDボリューム管理情報がVirtualPackage情報になる。このVirtual Package情報をVirtual Package呼出の呼出元のアプリケーション及びPlaybackControl Engine32に引き渡し(ステップS9)、処理を終える。
【0122】
図27(a)は、enableClipメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からenableにすべきAVClipyを特定し(ステップS14)、ステップS15、ステップS16の判定を順次行う。ステップS15は、AVClipyがLocalStorage18に格納されているか否かを判定であり、ステップS16は、AVClipyのファイルパスがストリーム格納位置情報ファイルに記載されているかの判定である。これらの判定ステップのどちらかがNoであれば、呼出元にFalseを返し、本フローチャートの処理を終える(ステップS19)。一方、ステップS15−ステップS16の双方がYesなら、AVClipyをenableにして、LocalStorage18において、AVClipyを格納したファイルのファイル属性をRead-Only属性にして、AVClipyをRead Only Modeにする(ステップS17)。その後、Successを戻り値としてリターンする(ステップS18)。
【0123】
図27(b)は、disableClipメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からdisableにすべきAVClipyを特定し(ステップS21)、ステップS22、ステップS23の判定を順次行う。ステップS22は、AVClipyが再生中であるか否かの判定であり、ステップS23は、AVClipyのファイルパスがストリーム格納位置情報ファイルに記載されていないかの判定である。これらの判定ステップのどちらかがYesであれば、呼出元にfalseを返し、本フローチャートの処理を終える(ステップS26)。一方、ステップS22−ステップS23の双方がYesなら、AVClipyをdisableにして、LocalStorage18において、AVClipyを格納しているファイルのファイル属性をRe-writable属性にしてAVClipyのRead Only Modeをキャンセルする(ステップS24)。その後、Successを戻り値としてリターンする(ステップS25)。
【0124】
図28は、Playback Control Engine32による再生手順を示すフローチャートである。本フローチャートは、PlayList情報における先頭のPlayItem情報をPlayItemiとして、ステップS33〜ステップS42のループ処理を実行するものである。ステップS33〜ステップS42のループ処理における制御変数は、変数iであり、ステップS33〜ステップS40の処理を実行して、その後、制御変数iをインクリメントするという処理を、変数iが、PlayItem数(NumberOf PlayItem)を越えるまで実行するものである(ステップS41)。
【0125】
このステップS32〜ステップS40の処理について説明する。これらの処理は、PlayItem情報iのClip_information_file_nameに記述されているAVClipを、AVClipjとし(ステップS33)、再生の対象とする。ステップS34は、AVClipjがenableであるか否かの判定であり、もしAVClipjがenableでなければ、本フローチャートの処理をその時点で中止する。もしenableであれば、AVClipjのうち、PlayItem.In_timeからPlayItem.Out_timeまでの部分を再生するよう、ドライブ装置及びデコーダに指示する(ステップS35)。
【0126】
ステップS36は、PlayItem情報iをSync_PlayItem_idに指定しているSubPlayItemkが存在するか否かの判定である。もし存在しなけば、そのままステップS41に移行する。もし存在すれば、SubPlayItemkのClip_information_file_nameに記述されているAVClipをAVCliphにし(ステップS38)、そのAVCliphがenableであるか否かを判定する(ステップS39)。もしenableであれば、そのAVCliphのうち、Sync_Start_PTS_of_PlayItemから、Out_timeまでを再生するよう、ドライブ装置及びデコーダに指示してステップS41に移行する(ステップS40)。
【0127】
もしそのAVCliphがenableでない場合は、ステップS40をスキップする。以上の処理を、PlayList情報を構成する全てのPlayItem情報について繰り返すことにより、PlayList情報にて規定されるストリームシーケンスの再生がなされる。 図29は、アプリケーションの処理手順を示すフローチャートである。先ず、ストリーム格納位置情報ファイルと、PlayLIst情報、Clip情報、AVClipのダウンロードを要求する(ステップS51)。そしてVirtualPackageの構築要求を行う(ステップS52)。ステップS53は、構築要求がSuccessしたか否かの判定であり、Virtual Packageの構築がSuccessになるまで、VirtualPackageの構築要求は何回でも繰り返される。
【0128】
Virtual Packageの構築が成功すれば、ステップS55を実行する。ステップS55は、Missing StreamがVirtual Package情報の中に存在するか否かの判定である。具体的には、Clip情報は存在するのに、対応するAVClipがない場合、そのAVClipをMissingStreamとして取得する(ステップS56)。
【0129】
その後、ステップS57においてProgressive PlayList情報のPlayメソッドを呼び出し、そしてPlayメソッドがSuccessしたか否かの判定を行う(ステップS58)。もしFalseであれば、本フローチャートの処理を終了する。もしSuccessであれば、ステップS59〜ステップS61からなるループ処理を実行する。
【0130】
ステップS59は、getMissingStreamsメソッドの呼び出しである。ステップS60は、ステップS59での呼出にて、Missing Streamが通知されれば、以前取得したMissingStreamの中に、ダウンロードが完了したものが存在するか否かの判定である。。
【0131】
ステップS61は、AVClipの再生完了を示すイベントが発生したか否かの判定である。アプリケーションは、Playback Control Engine32による再生がなされている間、このステップS59〜ステップS61の処理を繰り返し実行する。
【0132】
上述した処理の繰り返しにおいて、ダウンロードが完了したAVClipがあれば(ステップS60においてYes)、そのダウンロードが完了したMissingStreamに対し、enableClipメソッドを呼び出す(ステップS62)。こうすることにより、ダウンロードが完了したAVClipを早期にenableにすることができる。
【0133】
また、再生が終了したAVClipがあれば(ステップS61でYes)、そのAVClipが予告編であるか否かを判定して、もし予告編であれば、そのAVClipに対し、disableClipメソッドを呼び出す。こうすることにより、再生が完了した予告編のAVClipを早期にdisableにすることができる。
【0134】
<動作>
図20に示したPlayList情報を再生する場合の、再生装置の動作について説明する。図30〜図33は、ネットワーク管理モジュール37によるダウンロードの進捗と、PlaybackControl Engine32による再生の進捗とを示す図である。第1段目は、ネットワーク管理モジュール37によるダウンロードの進捗を示し、第2段目は、PlaybackControl Engine32による再生の進捗を示す。第3段目は現状の時間軸である。第4段目は、アプリケーションによるメソッドの呼出を示す。第1段目に示すように、ネットワーク管理モジュール37によるダウンロードは、図20に示したPlayList情報のダウンロード、Clip情報#1〜Clip情報#4のダウンロード、AVClip#1〜AVClip#4のダウンロードからなる。
【0135】
図30(a)現在時点=時点t0時点t0は、PlayList情報、Clip情報#1〜Clip情報#4のダウンロードが完了した時点である。そのため、Virtual Packageの構築は可能になる。また、VirtualPackageにおけるPlayList情報はAVClip#1を参照しており、このAVClip#1は、少なくともenableであるから、ストリームシーケンスの再生は、t0から開始している。
【0136】
図30(b)現在時点=時点t1時点t1は、PlayList#1により参照されるAVClip#1の再生途上であるが、AVClip#2のダウンロードが完了した時点である。AVClip#2のダウンロードが完了したので、AVClip#2はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#2をenableにすることができる。この呼出により、AVClip#2にあたるPlayItem#4は、再生の対象になる。
【0137】
図31(a)現在時点=時点t2時点t2は、PlayList#1により参照されるAVClip#2の再生途上であるが、AVClip#3のダウンロードが完了した時点である。AVClip#3のダウンロードが完了したので、AVClip#3はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#3をenableにすることができる。この呼出により、AVClip#3にあたるPlayItem#5は、再生の対象になる。
【0138】
図31(b)現在時点=時点t3時点t3は、AVClip#2の再生が完了した時点である。AVClip#2の再生が完了しており、AVClip#2は予告編であるので、PlayItem#2により参照されるAVClip#2は、削除の対象になりうる。そこで、このAVClip#2を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#2を削除対象にする。こうすることでPlaybackControl Engine32は、AVClip#2があたかも存在しなかったかのように扱うことができる。
【0139】
図32(a)現在時点=時点t4時点t4は、PlayList#1により参照されるAVClip#3の再生途上であるが、AVClip#4のダウンロードが完了した時点である。AVClip#4のダウンロードが完了したので、AVClip#4はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#4をenableにすることができる。この呼出により、AVClip#4にあたるPlayItem#6は、再生の対象になる。
【0140】
図32(b)現在時点=時点t5時点t5は、AVClip#3の再生が完了した時点である。AVClip#3の再生が完了しており、AVClip#3は予告編であるので、PlayItem#5により参照されるAVClip#3は、削除の対象になりうる。そこで、このAVClip#3を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#3を削除対象にする。こうすることでPlaybackControl Engine32は、AVClip#3があたかも存在しなかったかのように扱うことができる。
【0141】
図33 現在時点=時点t6時点t6は、AVClip#4の再生が完了した時点である。AVClip#4の再生が完了しており、AVClip#4は予告編であるので、PlayItem#6により参照されるAVClip#4は、削除の対象になりうる。そこで、このAVClip#4を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#4を削除対象にする。こうすることでPlaybackControl Engine32は、AVClip#4があたかも存在しなかったかのように扱うことができる。
【0142】
以上のように本実施形態によれば、ネットワーク管理モジュール37によるダウンロードと、Playback Control Engine32による再生とを、パラレルに行い、ダウンロードがなされたAVClipをdisableからenableに設定することにより、PlaybackControl Engine32による再生に供することができる。これにより、ダウンロードの進捗を追いかけるように再生処理を進める"追いかけ再生"を実現することができる。
【0143】
また、ダウンロードされたデジタルストリームのうち、再生が済んだものをenableからdisableに変化させることにより、再生が済んだデジタルストリームを、削除の対象として供することができるので、再生処理の進捗を追いかけるように、削除処理を進める"追いかけ削除"を実現することができる。
【0144】
ダウンロードの進捗を追いかけてように再生処理を進める"追いかけ再生"や、再生処理の進捗を追いかけるように、削除処理を進める"追いかけ削除"が可能になるので、再生装置を結ぶ通信回線の通信レートが低く、また再生装置に内蔵されているLocalStorage18の容量が小さい場合でも、BD-ROMに記録されているデジタルストリームと、Local Storage18にダウンロードとを1つのストリームシーケンスとして扱い、連続的に再生してゆくことができる。
【0145】
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。
【0146】
(A)上述したVirtual FileSysterm部38の説明において、ディレクトリ管理情報及びファイル管理情報の具体的なデータ構造については、言及しなかったが、BD-ROMにおけるファイルシステムが、ISO/IEC13346に規定されたものである場合、ディレクトリ管理情報は、"ディレクトリファイル"、及び、"ファイルエントリ"から構成されてもよい。ディレクトリファイルは、自身の配下にあるディレクトリのディレクトリ名を記述したファイル識別記述子や、自身の配下にあるファイルのファイル名を記述したファイル識別記述子からなる。この"ファイルエントリ"は、記述子タグと、ICBタグと、アロケーション記述子長と、拡張属性と、アロケーション記述子とからなる。
【0147】
ファイル管理情報は、ファイルエントリから構成されてもよい。アロケーション記述子は、ファイルを構成する各エクステント毎の記録位置を示す。この場合、Virtual Package情報の作成は、BD-ROMのボリューム管理情報におけるSTREAMディレクトリに相当するディレクトリファイルに、LocalStorage上のAVClipのファイル名のファイル識別記述子を追加し、BD-ROMのボリューム管理情報におけるSTREAMディレクトリの配下に、LocalStorage上のAVClipについてのファイルエントリーを追加することによりなされる。
【0148】
(B)全ての実施形態では、記録媒体をBD-ROMとして実施したが、AVClip及びPlayList情報を記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、DVD-ROM,DVD-RAM,DVD-RW,DVD-R,DVD+RW,DVD+R,CD-R,CD-RW等の光ディスク、PD,MO等の光磁気ディスクであってもよい。また、コンパクトフラッシュ(登録商標)カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等の半導体メモリカードであってもよい。フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)であってもよい。更に、機器内蔵型のハードディスクであってもよい。
【0149】
(C) 全ての実施形態における再生装置は、BD-ROMに記録されたAVClipをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、各実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。各実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
【0150】
(D)各フローチャートに示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、各実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。(E)各フロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
【0151】
(F)各実施形態において、記録媒体に記録されるデジタルストリームはAVClipであったが、DVD-Video規格、DVD-Video Recording規格のVOB(VideoObject)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818-1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、Dolby-AC3方式、MP3方式、MPEG-AAC方式、Dts、WMA(Windows(登録商標)media audio)であってもよい。
【0152】
(G)各実施形態における映像作品は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
【0153】
またビデオテープに記録されているアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
【0154】
(H)BD-Jモジュール29bは、衛星放送受信のために機器に組み込まれたJava(登録商標)プラットフォームであってもよい。BD-Jモジュール29bがかかるJava(登録商標)プラットフォームであれば、本発明に係る再生装置は、MHP用STBとしての処理を兼用することになる。
【0155】
更に携帯電話の処理制御のために機器に組み込まれたJava(登録商標)プラットフォームであってもよい。かかるBD-Jモジュール29bがかかるJava(登録商標)プラットフォームであれば、本発明に係る再生装置は、携帯電話としての処理を兼用することになる。
【0156】
(I)レイアモデルにおいて、BD-Jモードの上にHDMVモードを配置してもよい。特にHDMVモードでの動的シナリオの解釈や、動的シナリオに基づく制御手順の実行は、再生装置に対する負担が軽いので、HDMVモードをBD-Jモード上で実行させても何等問題は生じないからである。また再生装置や映画作品の開発にあたって、動作保証が1つのモードで済むからである。
【0157】
更にBD-Jモードだけで再生処理を実行してもよい。BD-JモードでもPLの再生と同期した再生制御が可能になるから、強いてHDMVモードを設けなくてもよいという理由による。(J)Local Storage18にダウンロードされるAVClipは、特典映像や制作者、俳優のインタビューであってもよい。
【0158】
(K)ある Clip が Missing Stream もしくは Rewritable かどちらの状態であるかを、アプリケーションから知る方法として、上記実施形態では、getMissingStreamメソッドを呼び出すことにしたが、java(登録商標).net,java(登録商標).io等のjava(登録商標)ライブラリをを用いて実現しても良い。この場合、以下のa),b),c)の方法を用いることが現実的である。a)Binding Unit Manifest File(ストリーム位置格納情報)の内容をXML Parser を利用して解析する。Binding Unit Manifest File の例:<Progressive>
<ProgressiveAsset VPFilename="BDMV/STREAM/01000.m2ts">
←識別子<BUDAFile name="1/1/streams/0.m2ts">
</BUDAFile>
←ファイルパス</ProgressiveAsset>
<ProgressiveAsset VPFilename="BDMV/STREAM/01001.m2ts">
<BUDAFile name="1/1/streams/1.m2ts">
</BUDAFile>
</ProgressiveAsset>
<ProgressiveAsset VPFilename="BDMV/STREAM/01002.m2ts">
<BUDAFile name="1/1/streams/2.m2ts">
</BUDAFile>
</ProgressiveAsset>
</Progressive>
"BUDA" は Binding Unit Data Area の略であり、Binding Unit Data Area とは VirtualPackage に利用するファイルを格納する Local Storage 内の領域のことb)java(登録商標).io を使って、Binding Unit Manifest File に記載されているファイルパス(ストリーム格納位置)に、xxxxx.m2ts が存在するか確認する。例:new java(登録商標).io.File("1/1/streams/0.m2ts").exists();// false の場合は Missing Streamc)ダウンロードが完了したかどうかの判断は java(登録商標).net, java(登録商標).io を使って、サーバ上のファイルのサイズと LocalStorage 上のファイルのサイズが一致しているかどうかを確認する。例:new java(登録商標).net.URL(http://xxx.com/vp_data/0.m2ts).openConnection().getContentLength()== new java(登録商標).io.File("1/1/streams/0.m2ts").length();// 一致していれば、ダウンロードが完了したとみなすことが可能
【産業上の利用可能性】
【0159】
本発明に係る再生装置は、ホームシアターシステムでの利用のように、個人的な用途で利用されることがありうる。しかし本発明は上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。このことから本発明に係る再生装置は、産業上の利用可能性を有する。
【符号の説明】
【0160】
1 BD-ROMドライブ
2 Read Buffer
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
6 P-Graphicsデコーダ
7 Presentation Graphicsプレーン
8 合成部
9 フォントゼネレータ
10 I-Graphicsデコーダ
11 スイッチ
12 Interactive Graphicsプレーン
13 合成部
14 CLUT部
15 CLUT部
16 オーディオデコーダ
17 Network Device
18 Local Storage
19 Read Buffer
20 デマルチプレクサ
21 命令ROM
22 ユーザイベント処理部
23 PSRセット
24 CPU
25 シナリオメモリ
26 Local Memory
27 スイッチ
29a HDMVモジュール
29b BD-Jモジュール
30 Java(登録商標)仮想マシン
31 Presentation Engine
32 Playback Control Engine
38 Virtual File Systerm部

【特許請求の範囲】
【請求項1】
プレイリストから参照されるデジタルストリームを再生する再生装置であって、
記録媒体を装填するドライブ手段と、
ローカルストレージと、
再生手段と、
前記ローカルストレージに記録されたプレイリストから参照されるデジタルストリームを格納するための格納場所が、前記ドライブ手段に装填された記録媒体および前記ローカルストレージのそれぞれに分かれている場合、前記ローカルストレージへ格納されるデジタルストリームの格納場所に関する情報を含むストリーム格納位置情報に基づいて、前記ローカルストレージを格納場所とするデジタルストリームが前記ローカルストリームに存在するのかどうかを判定し、前記ローカルストレージを格納場所とするデジタルストリームの状態を、前記再生手段が認識し得る状態、又は、前記再生手段が認識し得ない状態に設定するパッケージ管理手段と、
前記記録媒体および前記ローカルストレージのいずれかに記録されたアプリケーションを読み出して実行して、前記記録媒体および前記ローカルストレージに対するアクセス制御を実行するアプリケーション実行手段と、
前記プレイリストから参照されるデジタルストリームのうちのいずれかのデジタルストリームへジャンプするユーザからの命令を受け付ける入力手段とを備え、
前記再生手段は、
前記プレイリストから参照される一部のデジタルストリームが認識し得る状態である場合、残りのデジタルストリームが認識し得ない状態であっても、前記認識し得る状態のデジタルストリームの再生を開始し、
前記パッケージ管理手段は、
前記プレイリストから参照される一部のデジタルストリームに対する再生処理が継続している間、前記アプリケーション実行手段からの要求に従って、前記再生手段が認識し得ないデジタルストリームの状態を、前記再生手段が認識し得る状態に設定する、又は、前記再生手段が認識し得る状態のデジタルストリームのうち、前記再生処理がなされているデジタルストリームとは異なるデジタルストリームの状態を、前記再生手段が認識し得ない状態に設定する、ことを特徴とする再生装置。
【請求項2】
プレイリストから参照されるデジタルストリームを再生する再生方法であって、
再生ステップと、
前記再生装置が備えるローカルストレージに記録されたプレイリストから参照される個々のデジタルストリームを格納するための格納場所が、前記再生装置が備えるドライブ手段に装填された記録媒体および前記再生装置が備えるローカルストレージのそれぞれに分かれている場合、前記ローカルストレージへ格納されるデジタルストリームの格納場所に関する情報を含むストリーム格納位置情報に基づいて、前記ローカルストレージを格納場所とするデジタルストリームが前記ローカルストリームに存在するのかどうかを判定し、前記ローカルストレージを格納場所とするデジタルストリームの状態を、前記再生ステップが認識し得る状態、又は、前記再生ステップが認識し得ない状態に設定するパッケージ管理ステップと、
前記記録媒体および前記ローカルストレージのいずれかに記録されたアプリケーションを読み出して実行して、前記記録媒体および前記ローカルストレージに対するアクセス制御を実行するアプリケーション実行ステップと、
前記プレイリストから参照されるデジタルストリームのうちのいずれかのデジタルストリームへジャンプするユーザからの命令を受け付ける入力ステップとを含み、
前記再生ステップは、
前記プレイリストから参照される一部のデジタルストリームが認識し得る状態である場合、残りのデジタルストリームが認識し得ない状態であっても、前記認識し得る状態のデジタルストリームの再生を開始し、
前記パッケージ管理ステップは、
前記プレイリストから参照される一部のデジタルストリームに対する再生処理が継続している間、前記アプリケーション実行ステップからの要求に従って、前記ローカルストレージへ書き込んだデジタルストリームであって、前記再生手段が認識し得ないデジタルストリームの状態を、前記再生ステップが認識し得る状態に設定する、又は、前記再生ステップが認識し得る状態のデジタルストリームのうち、前記再生処理がなされているデジタルストリームとは異なるデジタルストリームの状態を、前記再生手段が認識し得ない状態に設定し、
前記プレイリストから参照される一部のデジタルストリームに対する再生処理が継続している間に前記再生ステップが認識し得ないデジタルストリームへのジャンプ命令を前記入力ステップが受け付けると、前記再生ステップが認識し得ないデジタルストリームへのジャンプ命令を受け付けない旨のメッセージを出力することを特徴とする再生方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2012−178214(P2012−178214A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2012−81065(P2012−81065)
【出願日】平成24年3月30日(2012.3.30)
【分割の表示】特願2010−279420(P2010−279420)の分割
【原出願日】平成17年5月10日(2005.5.10)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】