JP2007234213A - 記録媒体、再生装置、プログラム、再生方法。 - Google Patents
記録媒体、再生装置、プログラム、再生方法。 Download PDFInfo
- Publication number
- JP2007234213A JP2007234213A JP2007057082A JP2007057082A JP2007234213A JP 2007234213 A JP2007234213 A JP 2007234213A JP 2007057082 A JP2007057082 A JP 2007057082A JP 2007057082 A JP2007057082 A JP 2007057082A JP 2007234213 A JP2007234213 A JP 2007234213A
- Authority
- JP
- Japan
- Prior art keywords
- application
- title
- playback
- attribute
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 143
- 230000004913 activation Effects 0.000 claims description 54
- 230000002085 persistent effect Effects 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 84
- 238000012545 processing Methods 0.000 description 83
- 238000007726 management method Methods 0.000 description 78
- 238000013523 data management Methods 0.000 description 60
- 238000010586 diagram Methods 0.000 description 48
- 230000006870 function Effects 0.000 description 29
- 230000006872 improvement Effects 0.000 description 17
- 230000002452 interceptive effect Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 238000011069 regeneration method Methods 0.000 description 10
- 230000008929 regeneration Effects 0.000 description 9
- 230000007704 transition Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000036316 preload Effects 0.000 description 6
- 230000001172 regenerating effect Effects 0.000 description 6
- 230000004083 survival effect Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002441 reversible effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100137868 Solanum lycopersicum PAD1 gene Proteins 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
【解決手段】BD-ROMには、分岐可能な複数タイトルと、各タイトルの再生時に実行可能なJavaアプリケーションとが記録されている。タイトルは、AVClipと、アプリケーション管理テーブルとを有しており、前記アプリケーションは、仮想マシン向けプログラミング言語で記述されたプログラムであり、アプリケーション管理テーブルは、アプリケーションと、対応するタイトルにおけるアプリケーションの起動属性とを対応づけて示し、起動属性には、分岐元におけるアプリケーションの状態を継続させる継続属性(Persistent)と、分岐元においてアプリケーションが非起動状態である場合、当該アプリケーションを自動的に起動させるAutoRun属性とがある。
【選択図】図15
Description
かかる背景技術には、以下に示される文献公知発明が存在する。
以降、本発明に係る再生装置の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、本発明に係る再生装置の、使用行為についての形態を示す図である。図1において、本発明に係る再生装置は再生装置200であり、リモコン300、テレビ400と共にホームシアターシステムを形成する。
以上が本発明に係る再生装置の使用形態についての説明である。
続いて本発明に係る再生装置の再生の対象となる、記録媒体であるBD-ROMについて説明する。BD-ROMにより、ホームシアターシステムに供給されるディスクコンテンツは、互いに分岐可能な複数タイトルから構成される。各タイトルは、1つ以上のプレイリストと、このプレイリストを用いた動的な制御手順とからなる。
図2は、BD-ROMにおけるファイル・ディレクトリ構成を示す図である。本図においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(00001.clpi,00002.clpi,00003.clpi)がある。
STREAMディレクトリには、拡張子m2tsが付与されたファイル(00001.m2ts,00002.m2ts,00003.m2ts)がある。
本図において拡張子.m2tsが付与されたファイル(00001.m2ts,00002.m2ts,00003.m2ts・・・・・)は、AVClipを格納している。AVClipには、MainCLip、SubClipといった種別がある。MainCLipは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィクスストリーム、インタラクティブグラフィクスストリームというような複数エレメンタリストリームを多重化することで得られたデジタルストリームである。
拡張子”clpi”が付与されたファイル(00001.clpi,00002.clpi,00003.clpi・・・・・)は、AVClipのそれぞれに1対1に対応する管理情報である。管理情報故に、Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、頭出し位置を示すEP_mapをもっている。
MainPath情報は、複数のPlayItem情報からなる。PlayItemとは、1つ以上のAVClip時間軸上において、In_Time,Out_Timeを指定することで定義される再生区間である。PlayItem情報を複数配置させることで、複数再生区間からなるプレイリスト(PL)が定義される。図3は、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とは異なる時間軸の定義が可能になる。
<Movieオブジェクト>
Movieオブジェクトは、”タイトル”の構成要素であり、ファイルMovieObject.bdmvに格納される。図7(a)は、Movieオブジェクトの内部構成を示す図である。Movieオブジェクトは、属性情報、複数のナビゲーションコマンドからなるコマンド列からなる。
PlayPLコマンド
書式:PlayPL(第1引数,第2引数)
第1引数は、プレイリストの番号で、再生すべきPLを指定することができる。第2引数は、そのPLに含まれるPlayItemや、そのPLにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
ChapterによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
時刻情報によりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
JMPコマンド
書式:JMP 引数
JMPコマンドは、現在の動的シナリオを途中で廃棄し(discard)、引数たる分岐先動的シナリオを実行するという分岐である。JMP命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
Movieオブジェクトにおけるナビゲーションコマンドの記述は、DVDにおけるナビゲーションコマンドの記述方式と良く似ているので、DVD上のディスクコンテンツを、BD-ROMに移植するという作業を効率的に行うことができる。Movieオブジェクトについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
国際公開公報W0 2004/074976
以上でMovieオブジェクトについての説明を終える。続いてBD-Jオブジェクトについて説明する。
拡張子BD-Jが付与されたファイル(00001.BD-J,00002.BD-J,00003.BD-J)は、BD-Jオブジェクトを構成する。BD-Jオブジェクトは、Javaプログラミング環境で記述された、BD-Jモードの動的シナリオである。図7(b)は、BD-Jオブジェクトの内部構成を示す図である。本図に示すようにBD-Jオブジェクトは、Movieオブジェクト同様の属性情報、アプリケーション管理テーブルからなる。属性情報を有している点でBD-JオブジェクトはMovieオブジェクトとほぼ同じである。Movieオブジェクトとの違いは、BD-Jオブジェクトはコマンドが直接記述されていない点である。つまりMovieオブジェクトにおいて制御手順は、ナビゲーションコマンドにより直接記述されていた。これに対しBD-Jオブジェクトでは、そのタイトルを生存区間としているJavaアプリケーションをアプリケーション管理テーブル上に定めることにより、間接的に制御手順を規定している。このような間接的な規定により、複数タイトルにおいて制御手順を共通化するという、制御手順の共通化を効率的に行うことができる。
Javaアーカイブファイル(00001.jar,00002.jar)は、Javaアプリケーションを構成するプログラム、データを格納したアーカイブファイルである。図8(a)は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるデータは、枠内に示すディレクトリ構造が配置された複数ファイルを、javaアーカイバでまとめたものである。枠内に示すディレクトリ構造は、rootディレクトリ、javaディレクトリ、imageディレクトリとからなり、rootディにcommon.pkgが、javaディレクトリにaaa.class,bbb.classが、imageディレクトリに、menu.jpgが配置されている。javaアーカイブファイルは、これらをjavaアーカイバでまとめることで得られる。かかるデータは、BD-ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Javaアーカイブファイルのファイル名における"xxxxx"という5桁の数値は、アプリケーションのID(applicationID)を示す。本Javaアーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJavaアプリケーションを構成するプログラム,データを取り出すことができる。
xletプログラムは、JMF(Java Media FrameWork)インターフェイスを利用することができるJavaプログラムである。xletプログラムは、キーイベントを受信するEventListner等、複数の関数からなり、JMF等の方式に従って、受信したキーイベントに基づく処理を行う。
BD-Jモードにおいてタイトルからタイトルへの分岐はJumpTitleAPIのコールにより規定される。JumpTitleAPIコールは、いわばタイトルの終了時点を定めるものなので、こうしたJMFプレーヤインスタンス、JumpTitleAPIコールをもったアプリケーションが、BD-Jモードにおいてタイトルの開始及び終了を律することになる。かかるアプリケーションを本編再生アプリケーションという。
タイトルを構成する静的シナリオ、動的シナリオについて説明を終えたところで、これらによりどのような時間軸が定義されるかについて説明する。タイトルにより定義される時間軸は、”タイトル時間軸”と呼ばれる。タイトル時間軸とは、Movieオブジェクト、又は、BD-Jオブジェクトにより再生が命じられるPLにより構成される。ここで一例を挙げるのは、図9(a)のようなタイトルである。このタイトルは、トップメニュー→title#1→title#2→トップメニュー、トップメニュー→title#3→トップメニューという一連のタイトルである。かかるタイトルのうち、title#1はPlayList#1、PlayList#2、title#2がPlayList#3、title#3がPlayList#4の再生を命じるものなら、図9(b)のように、PlayList#1、PlayList#2の時間軸を足し合わせた時間軸を、title#1はもつことになる。同様にtitle#2は、PlayList#3時間軸からなる時間軸を、title#3はPlayList#4時間軸からなる時間軸を持つことになる。これらタイトル時間軸におけるPL時間軸ではシームレス再生が保証されるが、タイトル時間軸間ではシームレス再生の保証は必要でなくなる。Javaアプリケーションを動作させるにあたっては、Javaアプリケーションを、仮想マシンのワークメモリ上に存在させてもよい期間(サービス期間)を、こうしたタイトル時間軸上に定義せねばならない。BD-JモードにおいてJavaアプリケーションを動作させるにあたっては、互いに分岐し合う時間軸上に、Javaアプリケーションのサービス期間を定義せねばならない。このサービス期間の定義が、BD-ROM向けのプログラミングを行うにあたっての留意点になる。
国際公開公報WO 2004/025651 A1公報
以上がBD-ROMに記録されているファイルについて説明である。
JMFプレーヤインスタンス、JumpTitleAPIコールをもったアプリケーションが、タイトル時間軸を律することは上述した通りだが、JMFプレーヤインスタンスやJumpTitleAPIのコールをもたないその他のアプリケーションを、タイトル時間軸上で動作させる場合、時間軸の何処からアプリケーションによるサービスを開始し、時間軸の何処でアプリケーションによるサービスを終えるかという”サービスの開始点・終了点”を明確に規定することが重要になる。本実施形態では、アプリケーションによるサービスが開始してから、終了するまでを、”アプリケーションの生存”として定義する。アプリケーションの生存を定義するための情報は、BD-Jオブジェクトにおけるアプリケーション管理テーブルに存在する。以降アプリケーション管理テーブルについてより詳しく説明する。
タイトル間分岐があった場合でも、分岐元−分岐先において生存しているアプリケーションはワークメモリ上に格納しておき、分岐元にはなく、分岐先にのみ存在するアプリケーションをワークメモリに読み込めば良いから、アプリケーションをワークメモリに読み込む回数は必要最低数になる。このように、読込回数を少なくすることにより、タイトルの境界を意識させないアプリケーション、つまりアンバウンダリなアプリケーションを実現することができる。
「AutoRun」は、対応するタイトルの分岐と同時に、そのアプリケーションをワークメモリに読み込み、且つ実行する旨を示す生存区間である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて生存しており、かつ起動属性がAutoRunに設定されたアプリケーションを仮想マシンのワークメモリに読み込み実行する。これによりそのアプリケーションは、タイトル分岐と共に自動的に起動されることになる。起動属性をAutoRunに設定しておくアプリケーションとしては、JMFプレーヤインスタンス及びJumpTitleAPIコールをもつようなアプリケーションが挙げられる。何故なら、このようなアプリケーションは、タイトル時間軸を律する側のアプリケーションであり、このようなアプリケーションを自動的に起動にしないと、タイトル時間軸の概念が曖昧になってしまうからである。
これらの起動属性が、図11のアプリケーションにおいてどのように記述されているかについて説明する。図13は、図12の3つのアプリケーションに対する起動属性の設定例である。図12に示した3つのアプリケーションのうちapplication#2は、図13(b)に示すように他のアプリケーションからのアプリケーション呼出があって初めて起動するアプリケーションであるとする。残りのapplication#1、application#3は、title#1の開始と同時に自動的に起動されるアプリケーションであるとする。この場合、図13(a)に示すように、アプリケーション管理テーブルにおける各アプリケーションの起動属性を、application#1、application#3は「AutoRun」、application#2は、「Persistent」と設定しておく。この場合、application#1、application#3は、title#1への分岐時において自動的にワークメモリにロードされ、実行されることになる。一方application#2は、起動属性がPersistentなので、「application#3は仮想マシンのワークメモリ上にロードしてよいアプリケーション」であるとの消極的な意味に解される。故に、application#2は、application#1からの呼出があって初めて仮想マシンのワークメモリにロードされ、実行されることになる。以上の生存区間・起動属性により、仮想マシン上で動作し得るアプリケーションの数を4個以下に制限し、総スレッド数を64個以下に制限することが可能なので、アプリケーションの安定動作を保証することができる。
Suspendとは、リソースは割り付けられているが、CPUパワーは割り当てられない状態にアプリケーションが置かれることをいう。かかるSuspendは、例えばゲームタイトルの実行中に、サイドパスを経由するという処理の実現に有意義である。図14(a)(b)はSuspendが有意義となる事例を示す図である。図14(b)に示すように、3つのタイトル(title#1、title#2、title#3)があり、そのうちtitle#1、title#3はゲームアプリを実行するが、途中のtitle#2はサイドパスであり、映像再生を実現するものである。サイドパスでは、映像再生を実現する必要があるため、ゲームの実行を中断させることになる。ゲームアプリでは途中のスコア等が計数されているため、リソースの格納値はtitle#2の前後で維持したい。この場合、title#2の開始時点でゲームアプリをSuspendし、title#3の開始時点でapplication#2をレジュームするというようにアプリケーション管理テーブルを記述する。こうすることでtitle#2においてapplication#2は、リソースは割り付けられているので、リソースの格納値は維持される。しかし、CPUパワーは割り当てられない状態なので仮想マシンによりapplication#2は実行されることはない。これにより、ゲームタイトルの実行中に、サイドパスを実行するという処理が実現される。
直前状態が”非起動”であり、起動属性が”Persistent”、”Suspend”であるなら、分岐先タイトルにおいてそのアプリケーションは、何ももせず、状態を継続することになる。
起動属性が”Suspend”であるなら、アプリケーションの状態はSuspendされることになる。直前状態が”Suspend”である場合、分岐先タイトルの起動属性が”Suspend”ならSuspendを維持することになる。”Persistent”、”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、レジュームすることになる。アプリケーション管理テーブルにおいて生存区間及び起動属性を定義することにより、タイトル時間軸の進行に沿って、Javaアプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。以上が記録媒体についての説明である。続いて本発明に係る再生装置について説明する。
リードバッファ2は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ(De-MUX)3は、リードバッファ2からTSパケットを取り出して、このTSパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、CPU22から設定されたPIDをもつものをビデオデコーダ4、オーディオデコーダ20、P-Graphicsデコーダ9、I-Graphicsデコーダ13のどれかに出力する。
ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。再生装置に複数のプレーンを設けておき、これらプレーンの格納内容を画素毎に加算して、映像出力を行えば、複数の映像内容を合成させた上で映像出力を行うことができる。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。
Presentation Graphicsプレーン10は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は1920×1080であり、Presentation Graphicsプレーン10中の非圧縮グラフィクスの各画素は8ビットのインデックスカラーで表現される。CLUT(Color Lookup Table)を用いてかかるインデックスカラーを変換することにより、Presentation Graphicsプレーン10に格納された非圧縮グラフィクスは、表示に供される。
フォントゼネレータ12は、文字フォントを用いてtextSTストリームに含まれるテキストコードをビットマップに展開する。
I-Graphicsデコーダ13は、BD-ROM又はHDD17から読み出されたインタラクティブグラフィクスストリームをデコードして、非圧縮グラフィクスをInteractive Graphicsプレーン15に書き込む。
Interactive Graphicsプレーン15は、I-Graphicsデコーダ13によるデコードで得られた非圧縮グラフィクスが書き込まれる。
HDD17は、ネットワーク等を介してダウンロードされたSubClip、Clip情報、プレイリスト情報が格納される内蔵媒体である。このHDD17中のプレイリスト情報はBD-ROM及びHDD17のどちらに存在するClip情報であっても、指定できる点で異なる。この指定にあたって、HDD17上のプレイリスト情報は、BD-ROM上のファイルをフルパスで指定する必要はない。本HDD17は、BD-ROMと一体になって、仮想的な1つのドライブ(バーチャルパッケージと呼ばれる)として、再生装置により認識されるからである。故に、PlayItem情報におけるClip_Information_file_name及びSubPlayItem情報のClip_Information_file_nameは、Clip情報の格納したファイルのファイルボデイにあたる5桁の数値を指定することにより、HDD17、BD-ROM上のAVClipを指定することができる。このHDDの記録内容を読み出し、BD-ROMの記録内容と動的に組み合わせることにより、様々な再生のバリエーションを産み出すことができる。
デマルチプレクサ(De-MUX)19は、リードバッファ18からTSパケットを取り出して、TSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、所望のstreamPIDをもつものをフォントゼネレータ12に出力する。
シナリオメモリ21は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PL情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
キーイベント処理部23は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うキーイベントを出力する。
命令ROM24は、再生装置の制御を規定するソフトウェアを記憶している。
CLUT部26は、ビデオプレーン5に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
PSRセット28は、再生装置に内蔵されるレジスタであり、64個のPlayer Status Register(PSR)と、4096個のGeneral Purpose Register(GPR)とからなる。Player Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlay Item(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(Presentation TiMe))を示す。以上のPSR4〜PSR8により、現在の再生時点が特定されることになる。
図18は、ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のa),b),c),d-1),d-2),e),f)からなる。つまり、
a)物理的なハードウェア階層の上に、
b)AVClipによる再生を制御するPresentation Engine31、
c)プレイリスト情報及びClip情報に基づく再生制御を行うPlayback Control Engine32、
という2つの階層があり、
最上位の階層に
e)タイトル間の分岐を実行するモジュールマネージャ34がある。
d-1)Movieオブジェクトの解読・実行主体であるHDMVモジュール33と、
d-2)BD-Jオブジェクトの解読・実行を行うBD-Jモジュール35とが同じ階層に置かれている。
BD-Jモジュール35は、いわゆるJavaプラットフォームであり、ワークメモリ37を含むJava仮想マシン38を中核にした構成になっていて、アプリケーションマネージャ36、Event Listner Manager39、Default Operation Manager40から構成される。先ず初めに、Presentation Engine31〜モジュールマネージャ34について説明する。図19は、Presentation Engine31〜モジュールマネージャ34による処理を模式化した図である。
アプリケーションマネージャ36は、アプリケーション管理テーブルを参照したアプリケーションの起動制御、タイトルの正常終了時における制御を実行する。
ワークメモリ37は、アプリケーションを構成するxletプログラムが配置されるヒープ領域である。ワークメモリ37は、本来Java仮想マシン38内に存在するが、図21では、作図の便宜上、ワークメモリ37をJava仮想マシン38上位層に記述している。ワークメモリ37上のxletプログラムには、EventListnerや、JMFプレーヤインスタンスが含まれる。
。
以上のアプリケーションマネージャ36についての説明は、その概要に触れたに過ぎない。アプリケーションマネージャ36の処理を更に詳しく示したのが図22、図23のフローチャートである。以降、これらのフローチャートを参照してアプリケーションマネージャ36の処理手順についてより詳しく説明する。
ステップS2は、分岐元タイトルで非起動だが、分岐先タイトルで生存していて、分岐先タイトルにおける起動属性がAutoRun属性のアプリケーションxが存在するか否かの判定であり、もしあれば、ローカルメモリ29に対するキャッシュセンスを行う。キャッシュセンスの結果、アプリケーションxがローカルメモリ29上に有れば(ステップS7でYes)、ローカルメモリ29からワークメモリ37にアプリケーションxを読み込む(ステップS8)。ローカルメモリ29に無ければ、BD-ROMからローカルメモリ29にアプリケーションxを読み込んだ上で、ローカルメモリ29からワークメモリ37にアプリケーションxを読み込む(ステップS9)。
ステップS4は、分岐元Suspend、分岐先AutoRun又はPersistentのアプリケーションが存在するか否かの判定である。もし存在するなら、アプリケーションxをResumeする(ステップS11)。
個々のアプリケーションを終了させるにあたってのアプリケーションマネージャ36の処理は、図23に示すものとなる。図23は、アプリケーション終了処理の処理手順を示すフローチャートである。本図は、終了すべき複数アプリケーションのそれぞれについて、ステップS16〜ステップS20の処理を繰り返すループ処理になっている(ステップS15)。本ループ処理においてアプリケーションマネージャ36は起動中アプリケーションを終了するようなterminateイベントを発行し(ステップS16)、タイマセットして(ステップS17)、ステップS18〜ステップS20からなるループ処理に移行する。このterminateイベントをEvent Listnerが受信すれば、対応するxletプログラムは、終了プロセスを起動する。終了プロセスが終了すれば、そのxletプログラムはワークメモリ37から解放され、終了することになる。
図24は、アプリケーション終了の過程を模式的に示した図である。本図における第1段目は、アプリケーションマネージャ36を、第2段目は、3つのアプリケーションを示す。図24の第2段目、左側のアプリケーションは、terminateイベントを受信して終了プロセスに成功したアプリケーションを示す。図24の第2段目、中列のアプリケーションは、terminateイベントを受信したが終了プロセスに失敗したアプリケーションを示す。第2段目、右側のアプリケーションは、EventListnerが実装されていないので、terminateイベントを受信することができなかったアプリケーションを示す。
第3段目は、終了プロセス成功時における状態遷移後の状態であり、このアプリケーションは、自身の終了プロセスにより終了することになる。これらxletプログラムのように、所定の期間内に終了しないアプリケーションがあれば、アプリケーションマネージャ36は、それらを強制的にワークメモリ37から取り除く。第4段目は、アプリケーションマネージャ36による強制終了を示す。かかる第4段目の強制終了を規定するのも、アプリケーションマネージャ36の1つの使命といえる。
第1実施形態においてアプリケーションの生存区間は、タイトル時間軸と一致していたが、第2実施形態は、PL時間軸の一部をアプリケーションの生存区間とすることを提案する。PL時間軸の一部は、チャプターにより表現されるので、チャプターにて開始点、終了点を記述することにより、アプリケーションの生存区間を規定することができる。図25(a)は、PL時間軸上に生存区間を定めたアプリケーション管理テーブルを示す図である。図25(a)においてアプリケーション管理テーブルには、3つのアプリケーションが記述されており、このうちapplication#2は、title#1のChapter#2からChapter#3までが生存区間に指定され、起動属性にAutoRunが規定されている。このためapplication#2は、図25(b)に示すように、Chapter#2の始点で起動され、Chapter#3の終点で終了することになる。
こうして記述されたアプリケーション管理テーブルに基づき、処理を行うため本実施形態に係るアプリケーションマネージャ36は、PLmarkにより指示されるチャプター開始点に到達する度に、そのチャプター開始点から生存区間が始まるアプリケーションが存在するか否かを判定し、もし存在すればそのアプリケーションをワークメモリ37にロードする。
チャプターという単位でアプリケーションの生存を管理すれば、アプリケーションの生存区間をより細かい精度で指定することができる。しかしディスクコンテンツには、時間軸の逆向がありうることに留意せねばならない。逆行とは、巻戻しにより時間軸を逆向きに進行することである。チャプターの境界でこの逆行と、進行とが繰り返されれば、ワークメモリへのロード、廃棄が何度もなされ、余分な読出負荷が生じる。そこで本実施形態では、アプリケーションの起動時期を、タイトルに入ってPlayback Control Engine32による通常再生が開始された瞬間にしている。ここでPLの再生には、通常再生、トリック再生がある。トリック再生とは、早送り、巻戻し、SkipNext,SkipBackがある。かかる、早送り、巻戻し、SkipNext,SkipBackがなされている間、アプリケーション起動を開始せず、通常再生が開始されて初めて、アプリケーションを起動するのである。通常再生開始の瞬間を基準にすることにより、上述したような生存区間前後の行き来があった場合でも、アプリケーションの起動が必要以上に繰り返されることはない。尚、通常再生開始の瞬間を、アプリケーションの起動基準にするとの処理は、生存区間がtitleである場合にも、実行してよい。
(第2実施形態の変更例)
図25では、各アプリケーションに優先度が付与されている。この優先度は、0〜255の値をとり、アプリケーション間でリソースの使用が競合等が競合した場合、どちらのアプリケーションを強制的に終了させるか、また、どちらのアプリケーションからリソースを奪うかという処理をアプリケーションマネージャ36が行うにあたって、判断材料になる。図25の一例では、application#1の優先度は255,application#2、application#3の優先度は128なので、application#1−application#2の競合時において、アプリケーションマネージャ36は優先度が低いapplication#2を強制終了するとの処理を行う。
BD-ROMにより供されるディスクコンテンツは、互いに分岐可能な複数タイトルから構成される。各タイトルは、1つ以上のPLと、このPLを用いた制御手順とからなるもの以外に、再生装置に対する制御手順のみからなる非AV系タイトルがある。本実施形態は、この非AV系タイトルについて説明する。
上述したような手順でタイトル終了を行うため第3実施形態に係るアプリケーションマネージャ36は、図27に示すような処理で処理を行う。図27は、タイトル再生時におけるアプリケーションマネージャ36の処理手順を示すフローチャートである。本フローチャートは、タイトル再生中、ステップS21〜ステップS23を繰り返すというループ構造になっている。
ステップS22は、タイトル内のアプリケーション呼出を担っているようなメインアプリが存在するか否かの判定であり、もし存在するなら、それの起動の有無を確認する(ステップS25)。起動してなければ、”タイトルの終わり”であると解釈し、モジュールマネージャ34に終結を通知する(ステップS26)。
以上のように本実施形態によれば、PL再生を伴わないタイトルであっとしても、アプリケーション実行中は分岐せず、アプリケーション実行が終了して初めて分岐するという処理が可能になる。
本実施形態は、DVDと同様のメニュー制御をBD-ROM上で実現する場合の改良に関する。図28(a)は、BD-ROMにより実現されるメニュー階層を示す図である。本図におけるメニュー階層は、TopMenuを最上位に配し、このTopMenuから下位のTitleMenu、SubTitleMenu、AudioMenuを選択できる構造になっている。図中の矢印sw1,2,3は、ボタン選択によるメニュー切り換えを模式的に示す。TopMenuとは、音声選択、字幕選択、タイトル選択の何れを行うかを受け付けるボタン(図中のボタンsn1,sn2,sn3)を配置したメニューである。
FirstPlayオブジェクト(FirstPlay OBJ)は、再生装置へのBD-ROMのローディング時に自動的に実行される動的シナリオである。
SubTitleMenuオブジェクト(SubTitleMenu OBJ)は、SubTitleMenuの挙動を制御する動的なシナリオであり、ユーザからの操作に応じてSubTitleMenu中のボタンの状態を変えるコマンドや、ボタンに対する確定操作に応じて字幕設定用のPSRを更新するコマンドを含む。
これらのメニュー用MOVIEオブジェクトにより、DVDで実現されているようなメニューの挙動を実現することができる。以上がメニュー制御に関連するMOVIEオブジェクトである。
title#1〜#mINDEXは、BD-ROMにおいて1からm番目にエントリーされているtitleについてのIndexであり、これら1からmまでのtitle番号の選択時において分岐先となるMOVIEオブジェクトの識別子(ID)が記述される。
title#0INDEXは、BD-Jオブジェクトの強制終了時において分岐先になるべきMovieオブジェクト又はBD-Jオブジェクトを規定するINDEXである。本実施形態では、TopMenuOBJについての識別子が、このtitle#0INDEXに格納されている。
以上は本実施形態における記録媒体に対する改良である。続いて本実施形態における再生装置に対する改良について説明する。上述した記録媒体の改良に対応するため、再生装置内のモジュールマネージャ34は図31に示すような処理手順で処理を行う。図31は、モジュールマネージャ34の処理手順を示すフローチャートである。本フローチャートは、ステップS31、ステップS32からなるループ処理を構成しており、ステップS31又はステップS32のどちらかがYesになった際、対応する処理を実行するものである。
以上のアプリケーションマネージャ36によるアプリケーション強制終了の動作例を、図32を参照しながら説明する。ここで再生すべきタイトルは、落下するタイル片を積み重ねるというゲームアプリを含む非AV系タイトルである。図32の下段は、アプリケーションの生存区間からなるタイトル時間軸を示し、上段は、タイトル時間軸において表示される画像を示す。非AV系タイトルがゲームアプリである場合、このゲームアプリの生存区間において、図32の上段左側のように、ゲームアプリの一画面が表示される。ゲームアプリにバグがあり、異常終了すると、アプリケーションマネージャ36は図23のフローチャートに従ってゲームアプリを強制終了させ、タイトルの終了をモジュールマネージャ34に通知する。タイトル終了が通知されると、モジュールマネージャ34はトップメニュータイトルに分岐する。そうすると、図32の上段右側に示すような画像が表示され、ユーザの操作待ちになる。
BD-Jモードにおいて、PL再生との同期をどのように実現するかという改良に関する。図8(b)の一例においてJMFプレーヤインスタンスの再生を命じるJMFプレーヤインスタンス(A.play;)をJava仮想マシン38が解読した場合、Java仮想マシン38はPL再生APIをコールして、コール直後に”サクセス”を示す応答をアプリケーションに返す。
図33は、Playback Control Engine32によるPL再生手順を示すフローチャートである。この再生手順は、Presentation Engine31に対する制御(ステップS46)と、BD-ROMドライブ1又はHDD17に対する制御(ステップS48)とを主に含む。本フローチャートにおいて処理対象たるPlayItemをPlayItem#xとする。本フローチャートは、カレントPL情報(.mpls)の読み込みを行い(ステップS41)、その後、ステップS42〜ステップS50の処理を実行するというものである。ここでステップS42〜ステップS50は、ステップS49がYesになるまで、カレントPL情報を構成するそれぞれのPI情報について、ステップS43〜ステップS50の処理を繰り返すというループ処理を構成している。このループ処理において処理対象となるPlayItemを、PlayItem#x(PI#x)とよぶ。このPlayItem#xは、カレントPLの先頭のPlayItemに設定されることにより、初期化される(ステップS42)。上述したループ処理の終了要件は、このPlayItem#xがカレントPLの最後のPlayItemになることであり(ステップS49)、もし最後のPlayItemでなければ、カレントPLにおける次のPlayItemがPlayItem#xに設定される(ステップS50)。
その後、PlayItem#xがカレントPLの最後のPIであるかの判定がなされる(ステップS49)。
図34は、アングル切り換え手順及びSkipBack,SkipNextの手順を示すフローチャートである。本フローチャートは、図33の処理手順と並行してなされるものであり、ステップS51〜S52からなるループ処理を繰り返すというものである。本ループにおけるステップS51は、アングル切り換えを要求するAPIが、Java仮想マシン38からコールされたか否かの判定であり、アングル切り換えAPIのコールがあれば、カレントClip情報を切り換えるという操作を実行する。
続いてステップS72〜ステップS77におけるループ処理について説明する。このループ処理は、カレントPTMにあたるピクチャ、オーディオの再生出力と、カレントPTMの更新とを繰り返すものである。本ループ処理におけるステップS76は、ループ処理の終了要件を規定している。つまりステップS76は、カレントPTMがPI#xのOut_timeであることをループ処理の終了要件にしている。
ステップS87では、SubPlayItem#yのClip_information_file_nameで指定されるClip情報を読み込む。ステップS88では、カレントClip情報のEP_mapを用いて、SubPlayItem#yのIn_timeを、アドレスαに変換する。一方ステップS89では、SubPlayItem#yのOut_timeを,カレントClip情報のEP_mapを用いて、アドレスβに変換する。ステップS90は、SubPlayItem#yのIn_timeからSubPlayItem#yのOut_timeまでの出力をデコーダに命じる。これらの変換で得られたアドレスβの次のIピクチャを求めて、そのアドレスの1つ手前をアドレスγに設定し(ステップS91)、そうして算出されたアドレスγを用いて、SubClip#zにおけるアドレスαからアドレスγまでのTSパケットの読み出しをBD-ROMドライブ1又はHDD17に命じるというものである(ステップS92)。
図38のフローチャートは、図27のフローチャートを改良したものである。その改良点は、ステップS21−ステップS22間にステップS24が追加され、このステップS24がYesになった際、実行されるステップS101が存在する点である。
以上のように本実施形態によれば、2時間という再生時間の経過時点をアプリケーションマネージャ36は把握することができるので、PL再生の終了条件にメニューを表示して、このメニューに対する操作に応じて他のタイトルに分岐するという制御を実現することができる。
第6実施形態は、BD-Jオブジェクトにデータ管理テーブルを設ける改良に関する。
データ管理テーブル(DMT)は、そのタイトル時間軸においてローカルメモリ29上にロードすべきJavaアーカイブファイルを、読込属性と、読込優先度とに対応づけて示すテーブルである。”ローカルメモリ29における生存”とは、そのアプリケーションを構成するJavaアーカイブファイルがローカルメモリ29から読み出され、Java仮想マシン38内のワークメモリ37への転送が可能になっている状態をいう。図39は、データ管理テーブルの一例を示す図である。本図に示すようにデータ管理テーブルは、アプリケーションの『生存区間』と、その生存区間をもったアプリケーションを識別する『applicationID』と、そのアプリケーションの『読込属性』と、『読込優先度』とを示す。
図40は、BD-Jオブジェクトが想定している実行モデルを示す図である。本図における実行モデルは、BD-ROM、ローカルメモリ29、Java仮想マシン38からなり、BD-ROM、ローカルメモリ29、ワークメモリ37という三者の関係を示す。矢印my1は、BD-ROM→ローカルメモリ29間の読み込みを示し、矢印my2は、ローカルメモリ29→ワークメモリ37間の読み込みを示す。矢印上の注釈は、これらの読み込みが、どのようなタイミングでなされるかを示す。注釈によると、BD-ROM→ローカルメモリ29間の読み込みは、いわゆる”先読み”であり、アプリケーションが必要となる以前の時点に行われねばならない。
矢印my3は、ワークメモリ37におけるアプリケーションの占有領域の解放を示し、矢印my4は、ローカルメモリ29におけるアプリケーションの占有領域の解放を示す。矢印上の注釈は、これらの読み込みが、どのようなタイミングでなされるかを示す。注釈によると、ワークメモリ37上の解放は、アプリケーション終了と同時になされることがわかる。一方ローカルメモリ29上の解放は、Java仮想マシン38にとって必要でなくなった時点でなされる。この必要でなくなった時点とは、”終了時点”ではない。”終了した上、再起動の可能性もない時点”であること、つまり該当するtitleが終了した時点を意味する。上述した読込・解放のうち、ワークメモリ37における解放時点は、アプリケーション管理テーブルにおける生存区間から判明する。しかし”アプリケーションが必要となる以前の時点”、”終了した上、再起動の可能性もない時点”については、規定し得ない。そこで、オーサリング段階において、かかる時点をディスクコンテンツ全体の時間軸上で規定しておくため、本実施形態では各アプリケーションが生存している区間を、アプリケーション管理テーブルとは別に、データ管理テーブルに記述するようにしている。つまり”アプリケーションが必要となる以前の時点”をデータ管理テーブルにおける生存区間の始点と定義し、”終了した上、再起動の可能性もない時点”をデータ管理テーブルの終点と定義することにより、上述したローカルメモリ29上の格納内容の遷移をオーサリング時に規定しておくことができる。これがデータ管理テーブルの記述意義である。
図2においてJavaアーカイブファイルは、AVClipとは別の記録領域に記録されることを前提にしていた。しかしこれは一例に過ぎない。Javaアーカイブファイルは、BD-ROMにおいてAVClipが占める記録領域に埋め込まれることがある。この埋め込みの態様には、カルーセル化、インターリーブユニット化という2種類がある。
続いて読込優先度について説明する。読込優先度とは、ローカルメモリ29への読み込みに対する優劣を決める優先度である。読込優先度には複数の値がある。2段階の優劣を設けたい場合、Mandatoryを示す値、optionalを示す値を読込優先度に設定する。この場合、Mandatoryは高い読込優先度を意味し、optionalは、低い読込優先度を意味する。3段階の優劣を設けたい場合、Mandatoryを示す値、optional:high、optional:lowを示す値を読込優先度に設定する。Mandatoryは、最も高い読込優先度を示し、optional:highは、中程度の読込優先度、optional:lowは、最も低い読込優先度を示す。データ管理テーブルにおける読込優先度の具体的な記述例について、図45(a)(b)を参照しながら説明する。この具体例で、想定しているローカルメモリ29のメモリ規模は、図45(a)に示すようなものである。図45(a)は、新旧再生装置におけるローカルメモリ29のメモリ規模を対比して示す図である。矢印mk1は旧再生装置におけるメモリ規模を、矢印mk2は新再生装置におけるメモリ規模をそれぞれ示す。この矢印の対比から、新再生装置におけるローカルメモリ29のメモリ規模は、旧再生装置のそれと比較して、三倍以上である状態を想定している。このようにメモリ規模にバラツキがある場合、アプリケーションは、図45に示すような2つのグループに分類される。1つ目は、どのようなメモリ規模であっても読み込むんでおくべきアプリケーション(#1,#2)である。2つ目は、旧再生装置での読み込みは望まないが、新再生装置での読み込みは希望するアプリケーション(#3,#4)である。読み込もうとするアプリケーションが、これら2つのグループに分類されれば、前者に帰属するアプリケーションに、読込優先度=Mandatoryを設定し、後者に属するアプリケーションに、読込優先度=Optionalを設定する。図45(b)は、読込優先度が設定されたデータ管理テーブルの一例を示す図である。データ管理テーブルをこのように設定した上で、application#1〜application#4をBD-ROMに記録すれば、あらゆるメモリ規模の再生装置での再生を保証しつつも、メモリ規模が大きい再生装置では、より大きなサイズのデータを利用したアプリケーションを再生装置に再生させることができる。
図46は、アプリケーションマネージャ36によるプリロード制御の処理手順を示す図である。本フローチャートは、再生すべきタイトルにおけるデータ管理テーブルを読み込み(ステップS111)、データ管理テーブルにおいて最も高い読込優先度をもちつつ、applicationIDが最も小さいアプリケーションをアプリケーションiにした上で(ステップS112)、ステップS113、ステップS114の判定を経た上で、アプリケーションiをローカルメモリ29にプリロードする(ステップS115)という処理を、ステップS116がNo及びステップS117がNoと判定されるまで、繰り返すというループ処理を構成している。
ループ処理の終了要件を規定する2つのステップのうちステップS117は、データ管理テーブルにおいて次に低い読込優先度をもつアプリケーションが存在するか否かの判定であり、もし存在すれば、その次に低い読込優先度をもつアプリケーションのうち、最も小さいapplicationIDをアプリケーションkを選んで(ステップS118)、そのアプリケーションkをアプリケーションiにする(ステップS119)。これらステップS116、ステップS117がYesになっている限り、上述したステップS113〜ステップS115の処理は繰り返されることになる。ステップS116、ステップS117において、該当するアプリケーションが無くなれば本フローチャートの処理は終了することになる。
ステップS120は、同じapplicationIDをもち、読込優先度が高いアプリケーションjが存在するか否かの判定である。
ステップS121は、ローカルメモリ29の残り容量がアプリケーションiのサイズを上回るか否かを判定するステップである。ステップS120がNo、ステップS121がYesである場合、ステップS115においてアプリケーションiがローカルメモリ29にプリロードされることになる。ステップS120がNo、ステップS121がNoである場合、アプリケーションiはローカルメモリ29にプリロードされずそのままステップS116に移行することになる。
i)読込優先度=mandatoryのアプリケーションを読み込んだ後、読込優先度=optional:highのアプリケーションを読み込むにあたって、ステップS122がNoと判定されればれば、読込優先度=mandatoryのアプリケーションがローカルメモリ29に残ることになる。読込優先度=mandatoryのアプリケーションを読み込んだ後、読込優先度=optional:highのアプリケーションを読み込むにあたって、ステップS122がYesと判定されれば、読込優先度=optional:highのアプリケーションにより、読込優先度=mandatoryのアプリケーションは上書きされ、読込優先度=optional:highのアプリケーションがローカルメモリ29に残ることになる。
図48は、データ管理テーブルを参照した読取処理の具体例を示す図である。本図における2つのアプリケーションは、同じapplicationID(application#3)が付与された2つのアプリケーションを示す図である。そのうち一方は、AVClip中に埋め込まれていて、読込優先度がmandatoryに設定されている。他方は、AVClipとは別ファイルに記録されていて、読込優先度がOptionalに設定されている。前者のアプリケーションは、AVClipに埋め込まれているので、その埋込部分にあたる生存区間が、生存区間(title#1:chapter#4〜#5)として記述されている。これらのアプリケーションのうちapplication#2、application#3には、ロードを示す読込属性が付与されている。application#2はChapter#1〜Chapter#2を生存区間にしており、application#3はChapter#4〜Chapter#5を生存区間にしているので、タイトル時間軸においてどちらか一方が排他的にローカルメモリ29上に常駐することになる。図48(b)は、タイトル時間軸上の別々の時点において、排他的に格納されるapplication#2、application#3を示す図である。これは必要最低限のメモリ規模しかもたない再生装置での再生を念頭に置いた配慮である。こうした内容のデータ管理テーブルが処理対象であるとアプリケーションマネージャ36は、上述した図46のフローチャートによりメモリ規模に応じて異なる処理を行う。
図49は、データ管理テーブルに基づくロード処理の処理手順を示す図である。本フローチャートは、ステップS131〜ステップS133からなるループ処理を、タイトル再生が継続されている間、繰り返すというものである。
ステップS132は、起動中アプリケーションからの呼出があったか否かの判定である。もしあれば、呼出先アプリケーションをアプリケーションqにして(ステップS136)、 現在の再生時点は、アプリケーション管理テーブルにおけるアプリケーションqの生存区間であるか否かを判定する(ステップS137)。もし生存区間でなければ、起動失敗を表示して(ステップS148)、ステップS131〜ステップS133からなるループ処理に戻る。生存区間であれば、図50のフローチャートに従い、ロード処理を行う。
ステップS142は、読込属性がロードである場合に実行される判定ステップであり、アプリケーションqがカルーセル化されているか、インターリーブ化されているかを判定する。インターリーブ化されていれば、キャッシュセンスをJava仮想マシン38に実行させる(ステップS143)。ローカルメモリ29にアプリケーションqが存在すれば、ステップS135に移行して、アプリケーションqをJava仮想マシン38にロードさせる。
矢印1,2は、アプリケーション管理テーブルに生存していて、データ管理テーブルに生存しており、カルーセル化,インターリーブ化を示す読込属性が存在するJavaアーカイブファイルの読み込みを示す。矢印1は、ステップS65、67においてなされるローカルメモリ29センスを示す。このローカルメモリ29センスは、カルーセル又はインターリーブ化により埋め込まれたデータが、ローカルメモリ29に存在するかもしれないためローカルメモリ29内をセンスするというものである。矢印2は、ステップS135に対応する読み込みであり、アプリケーションがローカルメモリ29に存在していた場合の、ローカルメモリ29からワークメモリ37へのロードを示す。×付きの矢印は、ローカルメモリ29にデータがない場合を示す。
矢印▽1は、ステップS145における読み込みに対応するものであり、Java仮想マシン38によるBD-ROMからのダイレクトリードの要求を示す。矢印▽2はその要求による、BD-ROMからワークメモリ37へのJavaアーカイブファイル読み出しを示す。
矢印☆1は、ステップS140における読み込みに対応するものであり、Java仮想マシン38によるBD-ROMからのダイレクトリードの要求を示す。矢印☆2はその要求による、ローカルメモリ29へのJavaアーカイブファイルの読み出しを示す。矢印☆3はローカルメモリ29からワークメモリ37へのJavaアーカイブファイルの読み出しを示す。
第3実施形態では、非AV系タイトルの時間軸をアプリケーションの生存区間に基づき定めることにした。しかしアプリケーションの動作というのは不安定であり、起動の失敗や異常終了がありうる。本実施形態は、起動失敗、異常終了があった場合のFail Safe機構を提案するものである。図52(a)は、第7実施形態に係るBD-Jオブジェクトの内部構成を示す図である。図7(b)と比較して本図が新規なのは、プレイリスト管理テーブルが追加されている点である。
図53(d)は、プレイリスト管理テーブルにおいて再生属性が”AutoPlay”を示すよう設定され、メインアプリの起動に失敗したケースを示す。この場合も、Playback Control Engine32によるデフォルトPL再生は、アプリケーションの起動失敗とは関係なしに行われるので、デフォルトPLの時間軸がタイトル時間軸になる。
図52(c)は、分岐先タイトルのプレイリスト管理テーブルにおいて、再生属性がAutoPlayに設定されたPLが存在する場合、再生装置がどのような処理を行うかを示す図である。本図に示すように、再生属性がAutoPlayに設定されたPLが、分岐先タイトルのプレイリスト管理テーブルに存在すれば、BD-Jモジュール35内のアプリケーションマネージャ36は、タイトル分岐直後にこのAutoPlayPLの再生を開始するようPlayback Control Engine32に指示する。このように再生属性がAutoPlayのPLは、タイトル分岐直後に再生開始が命じられることになる。
図54は、第7実施形態に係るアプリケーションマネージャ36の処理手順を示すフローチャートである。本フローチャートは、図38のフローチャートにおいてステップS21の前にステップS103、ステップS104を追加し、ステップS21と、ステップS22との間にステップS100を追加し、ステップS23−ステップS26間に、ステップS105を追加したものである。
ステップS100は、Presentation Engine31による再生中であるか否かを判定する。もし再生中であるなら、ステップS101に移行する。
図55は、プレイリスト管理テーブルにおいて”再生属性=AutoPlay”に設定されることにより、どのような再生が行われるかを模式化した図である。ここで再生すべきタイトルは、落下するタイル片を積み重ねるというゲームアプリを含む非AV系タイトルである。この非AV系タイトルにおいて、プレイリスト管理テーブルの再生属性がAutoPlayに設定されていれば、Playback Control Engine32によるデフォルトPL再生も開始する。ゲームアプリの実行と、デフォルトPL再生とが並列的になされるので、図55の上段の左側に示すように、前景をゲームアプリの画面とし、背景をデフォルトPLの再生画像とした合成画像が表示されることになる。このゲームアプリは途中で異常終了したとする。ゲームアプリはアプリケーションマネージャ36により強制終了させられるが、デフォルトPLの再生が継続してなされるため、タイトルは、何かが写っている状態になる。このようなプレイリスト管理テーブルにおける再生属性の指定により、非AV系タイトル内のゲームアプリが異常終了した場合でも、ハングアップやブラックアウトがない動作を維持することができる。
第1実施形態においてBD-Jオブジェクトは、データ管理テーブル、アプリケーション管理テーブルという2つのテーブルを具備していたが、本実施形態は、これらを1つのテーブルに統合するという形態を開示する。かかる統合にあたって、図56(a)に示すように、データ管理テーブルにおける読込属性という項目を廃し、代わりに起動属性にReady属性という属性を設ける。Ready属性とは、他のアプリケーションからの呼出又はアプリケーションマネージャ36からの呼出に備えて、ローカルメモリ29に予めアプリケーションをロードしておく旨を示す起動属性の類型である。
尚、ワークメモリ37では生存しているが、ローカルメモリ29にはロードされない”との類型が存在し得ない。これは、アプリケーション・データ管理テーブルでは、ワークメモリ37の生存区間と、ローカルメモリ29の生存区間とが一体だからである。
矢印1,2は、アプリケーション・データ管理テーブルに生存していて、起動属性がReady属性に設定されているJavaアーカイブファイルの読み込みを示す。
これらの矢印1,2、矢印☆1,2,3は、図51でも記述されていたものだが、図51に記述していた、▽1,2の矢印に該当する読み込み”は、図57では存在しない。これは、アプリケーション・データ管理テーブルは、アプリケーション管理テーブル、データ管理テーブルを一体化したものなので、アプリケーション管理テーブル=生存、データ管理テーブル=非存在という組合せは表現し得ないからである。
第1実施形態では、アプリケーションをローカルメモリ29に読み込むにあたって、読込優先度を参照して、この読込優先度に従い、読み込み処理に優劣を与えた。これに対し第9実施形態は、Optionalを意味する情報と、0から255までの数値との組合せにより読込優先度を表す実施形態である。
本実施形態においてアプリケーションマネージャ36は、第1実施形態同様、先ずMandatoryを示す読込優先度が付与されたアプリケーションをローカルメモリ29に読み込む。
(第10実施形態)
第1実施形態においてアプリケーションマネージャ36は、同じapplicationIDが付与されたアプリケーションを、読込優先度に従い排他的にローカルメモリ29にロードするとしたが、第10実施形態は、アプリケーションにグループ属性を与えることにより、排他的なロードを実現する。図59は、グループ属性が付与されたデータ管理テーブルを示す図である。グループ属性には、排他グループなし、排他グループあり、といった、2通りの設定が可能であり、排他グループありの場合、そのグループ番号が記述される。図59(a)におけるtitle#1の「−」は、排他グループが存在しないことを示す。一方、title#2,#3の「group#1」は、排他グループがあり、title#2,#3は、group#1という排他グループに帰属していることを示す。以上が本実施形態に係る記録媒体の改良である。
第1実施形態では、アプリケーション管理テーブルをタイトル毎に持たせるとしたが、本実施形態では、このアプリケーション管理テーブルの割当単位を変更させることを提案する。図60は、割当単位のバリエーションを示す図である。本図において第1段目は、BD-ROMに記録されている3つのアプリケーション管理テーブルを示し、第2段目は、タイトル単位、第3段目は、ディスク単位、第4段目は、複数BD-ROMからなるディスクセット単位を示す。図中の矢印は、アプリケーション管理テーブルの割り当てを模式化して示している。この矢印を参照すると、第1段目におけるアプリケーション管理テーブル#1,#2,#3のそれぞれは、第2段目に示したtitle#1,#2,#3のそれぞれに割り当てられていることがわかる。また、ディスク単位ではアプリケーション管理テーブル#4が割り当てられており、ディスクセット全体に対しはアプリケーション管理テーブル#5が割り当てられている。このようにアプリケーション管理テーブルの割当単位を、タイトルより大きい単位にすることにより、1つのBD-ROMがローディングされている間、生存するようなアプリケーションや複数BD-ROMのうちどれかがローディングされている間、生存するようなアプリケーションを定義することができる。
(備考)
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の[技術分野]の、出願当時の技術水準の特性に基づく。
(B) 全ての実施形態における再生装置は、BD-ROMに記録されたAVClipをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、各実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。各実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
(F)BD-ROMに記録するにあたって、AVClipを構成する各TSパケットには、拡張ヘッダを付与しておくことが望ましい。拡張ヘッダは、TP_extra_headerと呼ばれ、『Arrival_Time_Stamp』と、『copy_permission_indicator』とを含み4バイトのデータ長を有する。TP_extra_header付きTSパケット(以下EX付きTSパケットと略す)は、32個毎にグループ化されて、3つのセクタに書き込まれる。32個のEX付きTSパケットからなるグループは、6144バイト(=32×192)であり、これは3個のセクタサイズ6144バイト(=2048×3)と一致する。3個のセクタに収められた32個のEX付きTSパケットを”Aligned Unit”という。
またビデオテープに記録されているアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ/デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
更に携帯電話の処理制御のために機器に組み込まれたJavaプラットフォームであってもよい。かかるBD-Jモジュール35がかかるJavaプラットフォームであれば、本発明に係る再生装置は、携帯電話としての処理を兼用することになる。
(K)AVClipに多重化されるべきインタラクティブグラフィクスストリームにナビゲーションコマンドを設けて、あるPLから別のPLへの分岐を実現しても良い。
2 リードバッファ
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
9 P-Graphicsデコーダ
10 Presentation Graphicsプレーン
11 合成部
12 フォントゼネレータ
13 I-Graphicsデコーダ
14 スイッチ
15 Interactive Graphicsプレーン
16 合成部
17 HDD
18 リードバッファ
19 デマルチプレクサ
20 オーディオデコーダ
21 シナリオメモリ
22 CPU
23 キーイベント処理部
24 命令ROM
25 スイッチ
26 CLUT部
27 CLUT部
28 PSRセット
29 ローカルメモリ
31 Presentation Engine
32 再生制御エンジン
33 HDMVモジュール
34 モジュールマネージャ
36 アプリケーションマネージャ
37 ワークメモリ
38 Java仮想マシン
39 Event Listner Manager
40 Default Operation Manage
Claims (12)
- インデックステーブルと、管理テーブルと、アプリケーションとが記録された記録媒体であって、
インデックステーブルは、タイトルと、管理テーブルとの対応付けを示し、
前記アプリケーションは、
仮想マシン向けプログラミング言語で記述されたプログラムであり、
管理テーブルは、アプリケーションと、起動属性とを対応づけて示し、
前記起動属性は、
タイトル間の分岐が発生した場合、分岐先タイトルにおいて、アプリケーションを、どのように制御するかを示す
ことを特徴とする記録媒体。 - 起動属性には、
分岐元タイトルにおいてアプリケーションが非起動状態である場合、分岐先タイトルにおいてアプリケーションを自動的に起動させる自動起動属性がある、ことを特徴とする請求項1記載の記録媒体。 - 起動属性には、
前記分岐元タイトルにおいて、アプリケーションが起動中である場合、分岐先タイトルにおける当該アプリケーションの起動を継続させる状態継続属性がある、ことを特徴とする請求項1記載の記録媒体。 - 記録媒体には、デジタルストリームと、当該デジタルストリームを参照するプレイリスト情報とが記録されており、
タイトルとは、1以上のプレイリスト情報に関連付けられた再生単位であって、ユーザによる選択に供されるものである
ことを特徴とする請求項1記載の記録媒体。 - 記録媒体に記録されたタイトルを再生すると共に、アプリケーションを実行する再生装置であって、
複数タイトル間の分岐を制御するモジュールマネージャと、
アプリケーションを実行するモジュールとを備え、
記録媒体には、アプリケーション管理テーブルが記録されており、アプリケーション管理テーブルは、何れかのタイトルにおけるアプリケーションの起動属性を示し、
モジュールは、
タイトル間の分岐が発生した際、分岐先タイトルにおけるアプリケーションの起動属性に基づき、分岐先タイトルにおけるアプリケーションの状態を制御するアプリケーションマネージャと
を備えることを特徴とする再生装置。 - アプリケーションマネージャによる状態制御とは、
分岐先タイトルにおけるアプリケーションの状態を、分岐元タイトルにおけるアプリケーションの状態と、分岐先タイトルにおけるアプリケーションの起動属性とから決定することである
ことを特徴とする請求項5記載の再生装置。 - アプリケーションに付与された起動属性が状態継続を示しており、当該アプリケーションが分岐元タイトルにおいて非起動である場合、
前記アプリケーションマネージャは、分岐先タイトルにおいても、当該アプリケーションを非起動にしておき、
アプリケーションに付与された起動属性が状態継続を示しており、当該アプリケーションが分岐元タイトルにおいて起動中である場合、
前記アプリケーションマネージャは、分岐先タイトルにおいても、当該アプリケーションを起動中にする
ことを特徴とする請求項5記載の再生装置。 - アプリケーションに付与された起動属性が自動起動を示しており、当該アプリケーションが分岐元タイトルにおいて非起動である場合、
前記アプリケーションマネージャは、分岐先タイトルにおいて、当該アプリケーションを起動し、
アプリケーションに付与された起動属性が自動起動を示しており、当該アプリケーションが分岐元タイトルにおいて起動中である場合、
前記アプリケーションマネージャは、分岐先タイトルにおいて、当該アプリケーションの状態を継続する
ことを特徴とする請求項5記載の再生装置。 - アプリケーションに付与された起動属性がサスペンドを示しており、当該アプリケーションが分岐元タイトルにおいて起動中である場合、
前記アプリケーションマネージャは、分岐先タイトルにおいて、再生装置のリソースを当該アプリケーションに占有させるが、再生装置のCPUパワーはアプリケーションに割り当てない状態に前記アプリケーションを遷移させる
ことを特徴とする請求項5記載の再生装置。 - 記録媒体には、デジタルストリームと、当該デジタルストリームを参照するプレイリスト情報とが記録されており、
タイトルとは、プレイリスト情報を介して、デジタルストリームと関連付けられた再生単位であって、ユーザ操作による選択に供されるものである
ことを特徴とする請求項5記載の再生装置。 - 記録媒体に記録されたタイトルを再生すると共に、アプリケーションを、コンピュータに実行させるプログラムであって、
記録媒体には、アプリケーション管理テーブルが記録されており、アプリケーション管理テーブルは、何れかのタイトルにおけるアプリケーションの起動属性を示し、
タイトル間の分岐が発生した際、分岐先タイトルにおけるアプリケーションの起動属性に基づき、分岐先タイトルにおけるアプリケーションの状態をコンピュータに制御させる
ことを特徴とするプログラム。 - 記録媒体に記録されたタイトルを再生すると共に、アプリケーションを実行する再生方法であって、
記録媒体には、アプリケーション管理テーブルが記録されており、アプリケーション管理テーブルは、何れかのタイトルにおけるアプリケーションの起動属性を示し、
タイトル間の分岐が発生した際、分岐先タイトルにおけるアプリケーションの起動属性に基づき、分岐先タイトルにおけるアプリケーションの状態をコンピュータに制御させる
ことを特徴とする再生方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007057082A JP4012563B2 (ja) | 2003-10-10 | 2007-03-07 | 記録媒体、再生装置、プログラム、再生方法。 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003352913 | 2003-10-10 | ||
JP2003379758 | 2003-11-10 | ||
JP2007057082A JP4012563B2 (ja) | 2003-10-10 | 2007-03-07 | 記録媒体、再生装置、プログラム、再生方法。 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005514680A Division JP4262250B2 (ja) | 2003-10-10 | 2004-10-12 | 再生装置、プログラム、再生方法。 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007234213A true JP2007234213A (ja) | 2007-09-13 |
JP4012563B2 JP4012563B2 (ja) | 2007-11-21 |
Family
ID=38554629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007057082A Expired - Fee Related JP4012563B2 (ja) | 2003-10-10 | 2007-03-07 | 記録媒体、再生装置、プログラム、再生方法。 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4012563B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009128232A1 (ja) * | 2008-04-16 | 2009-10-22 | パナソニック株式会社 | 再生装置、再生方法、プログラム |
JP2009271589A (ja) * | 2008-04-30 | 2009-11-19 | Sony Corp | 情報処理装置、その制御方法、制御プログラム及びネームマッピング情報 |
JP2011171925A (ja) * | 2010-02-17 | 2011-09-01 | Mitsubishi Electric Corp | 映像再生装置及び起動方法 |
-
2007
- 2007-03-07 JP JP2007057082A patent/JP4012563B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009128232A1 (ja) * | 2008-04-16 | 2009-10-22 | パナソニック株式会社 | 再生装置、再生方法、プログラム |
JP2009271589A (ja) * | 2008-04-30 | 2009-11-19 | Sony Corp | 情報処理装置、その制御方法、制御プログラム及びネームマッピング情報 |
JP2011171925A (ja) * | 2010-02-17 | 2011-09-01 | Mitsubishi Electric Corp | 映像再生装置及び起動方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4012563B2 (ja) | 2007-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4262296B2 (ja) | システムlsi | |
KR101076198B1 (ko) | 기록매체, 재생장치, 기록방법, 재생방법 | |
JP4012563B2 (ja) | 記録媒体、再生装置、プログラム、再生方法。 | |
JP4117019B2 (ja) | 記録媒体、再生装置、記録方法、再生方法 | |
JP4091105B2 (ja) | 記録媒体、再生装置、記録方法、再生方法 | |
JP4091104B2 (ja) | 記録媒体、再生装置、記録方法、再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070713 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070814 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070907 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4012563 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100914 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110914 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120914 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130914 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130914 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140914 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |