上記課題解決手段を具備した記録媒体は、コンテンツを店頭販売するためのパッケージ媒体として実施することができる。また、この記録媒体に対応する再生装置は、パッケージ媒体を再生するためのプレーヤ機器として実施することができ、この記録媒体に対応する集積回路は、当該プレーヤ機器に組込まれるシステムLSIとして実施することができる。
図1は、パッケージ媒体である記録媒体、プレーヤ機器である再生装置、表示装置、眼鏡によって構成されるホームシアターシステムを示す。同図(a)に示すように、上記パッケージ媒体である記録媒体100、プレーヤ機器である再生装置200は、表示装置300、3D眼鏡400、リモコン500と共にホームシアターシステムを構成し、ユーザによる使用に供される。
記録媒体100は、上記ホームシアターシステムに、例えば映画作品を供給する。この映画作品には、立体視映像を構成するものがある。ここで立体視映像は、少なくとも2つの視点映像から構成される。視点映像とは、何等かの偏向性をもった映像のことであり、上記2つの視点映像は、メインビュー映像と、サブビュー映像とから構成される。記録媒体100には、図1に示すように、ディスク型のもの、メモリカード型のもの等様々なタイプが存在するが、特に断らない限り以降の説明で述べる「記録媒体」は、ディスク媒体であるとする。
再生装置200は、表示装置300と接続され、記録媒体100を再生する。再生装置は、メインビュー映像を表すメインビュービデオストリーム、サブビュー映像を表すサブビュービデオストリームを再生するため、2D出力モード、3D出力モードという2つの出力モードを具備しており、これらの相互切り替えを可能とする2D/3D再生装置(プレーヤ)である。
表示装置300はテレビであり、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。本実施形態の表示装置300は、3D眼鏡400をユーザが着用することで立体視を実現するものだが、表示装置300がレンチキュラー方式のものなら、3D眼鏡400は不要となる。
3D眼鏡400は、液晶シャッターを備え、継時分離方式あるいは偏光メガネ方式による視差画像をユーザに視聴させる。視差画像とは、右目に入る映像と、左目に入る映像とから構成される一組の映像であり、それぞれの目に対応したピクチャーだけがユーザの目に入るようにして立体視を行わせる。 同図(b)は、左目用映像の表示時を示す。画面上に左目用の映像が表示されている瞬間において、前述の3D眼鏡400は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。同図(c)は、右目用映像の表示時を示す。画面上に右目用の映像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透光にし、左目に対応する液晶シャッターを遮光する。
リモコン500は、AV再生のための操作項目を受け付けるための機器である。またリモコン500は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、リモコン500は、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、数値キーを備える。
図1のホームシアターシステムにおいて、3D出力モードでの画像表示を表示装置300に行わせる再生装置の出力モードを「3D出力モード」という。2D出力モードでの画像表示を表示装置300に行わせる再生装置の出力モードを「2D出力モード」という。
以上が、記録媒体及び再生装置の使用形態についての説明である。
(第1実施形態)
第1実施形態の特徴は、右目用のグラフィクスストリーム、左目用のグラフィクスストリームを用いた立体視を実現することができるかどうかのケーパビリティを、再生装置におけるレジスタに設定している点である。
以降の説明において、メインビュー及びサブビューは、視差画像方式を実現するものとする。視差画像方式(3D-LRモードという)は、右目に入る映像と、左目に入る映像とを各々用意し、それぞれの目に対応したピクチャーだけが入るようにして立体視を行う方法である。図2は、ユーザーの顔を左側に描き、右側には、対象物たる恐竜の骨格を左目から見た場合の例と、対象物たる恐竜の骨格を、右目から見た場合の例とを示している。右目及び左目の透光、遮光から繰り返されれば、ユーザの脳内では、目の残像反応により左右のシーンの重合せがなされ、顔の中央の延長線上に立体映像が存在すると認識することができる。
このような立体視を実現するためのビデオストリームの符号化方式として、MPEG4-MVC方式によるものを用いる。以降の説明において、MPEG4-MVCにおける「ベースビュービデオストリーム」が、メインビュービデオストリームであり、MPEG4-MVCにおける「ディペンデントビュービデオストリーム」がサブビュービデオストリームであるものとする。
MPEG-4 MVC ベースビュービデオストリームは、view_idが0のサブビットストリームであり、view_idが0のビューコンポーネントのシーケンスである。MPEG-4 MVC ベースビュービデオストリームは、MPEG-4 AVCビデオストリームの制約を守る。
MPEG-4 MVC ディペンデントビュービデオストリーム は、view_idが1のサブビットストリームであり、view_idが1のビューコンポーネントのシーケンスである。
ビューコンポーネントとは、一個のフレーム期間において、立体視再生のために同時に再生される複数のピクチャデータのそれぞれのものをいう。視点間の相関性を用いた圧縮符号化は、ベースビュービデオストリーム及びディペンデントビュービデオストリームのビューコンポーネントをピクチャデータとして用いて、ピクチャ間の相関性を用いた圧縮符号化を実現することでなされる。1つのフレーム期間に割り当てられたベースビュービデオストリームのビューコンポーネントと、ディペンデントビュービデオストリームのビューコンポーネントとの組みが、1個のアクセスユニットを構成することになり、このアクセスユニットの単位でランダムアクセスが可能になる。
ベースビュービデオストリーム及びディペンデントビュービデオストリームは、何れも個々のビューコンポーネントを「ピクチャ」としたGOP構造を有しており、クローズドGOP、オープンGOPから構成される。クローズドGOPは、IDRピクチャと、このIDRピクチャに続くBピクチャと、Pピクチャとから構成される。オープンGOPは、Non-IDR Iピクチャと、Non-IDR Iピクチャに続くBピクチャと、Pピクチャとから構成される。
Non-IDR Iピクチャ、Pピクチャ、Bピクチャは、他のピクチャとのフレーム相関性に基づき圧縮符号化されている。Bピクチャとは、Bidirectionally predictive(B)形式のスライスデータからなるピクチャをいい、Pピクチャとは、Predictive(P)形式のスライスデータからなるピクチャをいう。Bピクチャには、refrenceB(Br)ピクチャと、nonrefrenceB(B)ピクチャとがある。
クローズドGOPは、IDRピクチャが先頭に配置される。表示順序においてIDRピクチャは先頭にならないが、IDRピクチャ以外の他のピクチャ(Bピクチャ,Pピクチャ)は、クローズドGOPより前のGOPに存在するピクチャと依存関係をもつことはできない。このようにクローズドGOPは、依存関係を完結させる役割をもつ。
図3は、立体視のためのベースビュービデオストリーム、ディペンデントビュービデオストリームの内部構成の一例を示す。
本図の第2段目は、ベースビュービデオストリームの内部構成を示す。このストリームには、ピクチャタイプがI1,P2,Br3,Br4,P5,Br6,Br7,P9というビューコンポーネントが含まれている。これらのビューコンポーネントは、Decode Time Stamp(DTS)に従いデコードされる。第1段目は、左目画像を示す。そうしてデコードされたビューコンポーネントI1,P2,Br3,Br4,P5,Br6,Br7,P9をPTSに従い、I1,Br3,Br4,P2,Br6,Br7,P5の順序で再生することで、左目画像が再生されることになる。
第4段目は、ディペンデントビュービデオストリームの内部構成を示す。このディペンデントビュービデオストリームは、P1,P2,B3,B4,P5,B6,B7,P8というピクチャタイプのビューコンポーネントが含まれている。これらのビューコンポーネントは、DTSに従いデコードされる。第3段目は、右目画像を示す。そうしてデコードされたビューコンポーネントP1,P2,B3,B4,P5,B6,B7,P8をPTSに従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、右目画像が再生されることになる。
第5段目は、3D眼鏡400の状態をどのように変化させるかを示す。この第5段目に示すように、左目画像の視聴時は、右目のシャッターを閉じ、右目画像の視聴時は、左目のシャッターを閉じていることがわかる。
ベースビュービデオストリームのビデオフレームと、ディペンデントビューストリームのビデオフレームとを1/48秒の表示周期において、「B」ー「D」ー「B」ー「D」というように交互で出力するモードを、「B−Dプレゼンテーションモード」という。
更に、B−Dプレゼンテーションモードには、L画像、R画像を用いて立体視効果を実現する3D-LR方式の他、2D画像と、深度情報とを用いて立体視効果を実現する3D-Depth方式がある。
ベースビュービデオストリームのビデオフレームと、ディペンデントビューストリームのビデオフレームとを交互に出力するのではなく、出力モードを3Dモードに維持したまま、同じビデオフレームを2回以上繰り返し出力するという処理を行う再生タイプを、B−Bプレゼンテーションモードという。B−Bプレゼンテーションモードでは、単独再生可能なベースビュービデオストリームのビデオフレームのみが「B」−「B」−「B」−「B」というように繰り返し出力される。
以上のB−Dプレゼンテーションモード、B−Bプレゼンテーションモードが、再生装置の出力モードの基本となるが、これらのモード以外にも、再生装置には、1plane+Offsetモードという出力モードが存在する。
1plane+Offsetモード(3D-Offsetモードともいう)は、プレーンメモリの後段にシフト部を組込んで、シフト部を機能させることで立体視を実現する出力モードである。プレーンオフセット部は、レフトビュー期間及びライトビュー期間のそれぞれにおいて、プレーンメモリにおけるライン単位の画素の座標を、左方向又は右方向にシフトさせ、右目視線及び左目視線の結像点を手前方向、又は、奥行方向に変位させることで奥行き感を変化させる。具体的には、レフトビュー期間で左方向、ライトビュー期間で右方向に、画素座標を変化させれば、両目の視線の結像点は手前になり、レフトビュー期間で右方向、ライトビュー期間で左方向に、画素座標を変化させれば、両目の視線の結像点は手前になる。
かかるプレーンシフトでは、立体視のためのプレーンメモリが1プレーンで足りるので、簡易に立体視映像を作り出すのに最適である。このプレーンシフトでは、平面的な映像が手前に来たり、奥に引込んだりするという立体視映像を産み出すに過ぎないから、メニューや字幕の立体視効果には適しているものの、キャラクターや物体の立体視効果の実現にはやや物足りない。キャラクターの顔のくぼみや凹凸等が再現できないからである。
1plane+Offsetモードをサポートする場合、再生装置の構成は以下の通りになる。グラフィクスの再生のため、再生装置にはプレーンメモリと、CLUT部、合成部が存在しており、このCLUT部、合成部の間にシフト部が組み入れられる。そして、シフト部は、ディペンデントビュービデオストリームのアクセスユニット構造に組込まれたオフセットシーケンスにおけるオフセットを用いて、上述したような画素の座標変化を実現する。こうすることで、1plane+Offsetモードにおける画素の飛び出度合は、MVCビデオストリームと緻密に同期したものになる。この1plane+Offsetモードの中には、1plane+Zero Offsetモードがある。1plane+Zero Offsetモードは、ポップアップメニューがオンである場合、オフセット値をゼロにして、ポップアップメニューだけに立体視効果を与える表示モードである。
オフセットシーケンスによるシフト制御の対象となるプレーンメモリは、所定のレイヤモデルを構成する複数のプレーンメモリである。プレーンメモリとは、エレメンタリストリームをデコードすることで得られた一画面分の画素データをライン単位で格納しておき、水平同期信号、垂直同期信号に沿ってこれらの画素データを出力するためのメモリである。個々のプレーンメモリは、ビデオデコーダ、PGデコーダ、IGデコーダのデコードによって得られた1画面分の画素データを格納する。
所定のレイヤモデルは、左目ビデオプレーン及び右目ビデオプレーンの階層、PGプレーンの階層、IG/BD-Jプレーンの階層から構成され、各階層のプレーンメモリの格納内容を、ビデオプレーン→PGプレーン→IG/BD-Jプレーンの順にレイヤ合成することを意図したものである。
上記レイヤ合成は、プレーンメモリのレイヤモデルにおいて、2つの階層のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける2つの階層の全ての組合せに対して実行することでなされる。以下、各階層のプレーンメモリについて述べる。
左目ビデオプレーンは、ビューコンポーネントをデコードすることで得られる一画面分の画素データのうち、左目用のピクチャデータを構成するものを格納することができるプレーンメモリである。右目ビデオプレーンは、ビューコンポーネントをデコードすることで得られる一画面分の画素データのうち、右目用のピクチャデータを構成するものを格納することができるプレーンメモリである。
プレゼンテーショングラフィクス(PG)プレーンとは、パイプライン式で動作するグラフィクスデコーダが、デコード処理を行うことで得られたグラフィクスの格納に用いられるプレーンメモリである。IG/BD-Jプレーンとは、ある動作モードでは、IGプレーンとして機能し、別の動作モードでは、BD-Jプレーンとして機能するプレーンメモリである。インタラクティブグラフィクス(IG)プレーンとは、対話的な処理を前提にして動作するグラフィクスデコーダが、デコードを行うことで得られたグラフィクスの格納に用いられるプレーンメモリである。BD-Jプレーンは、オブジェクト指向プログラミング言語のアプリケーションが描画処理を行うことで得た描画イメージグラフィクスの格納に用いることができるプレーンメモリである。IGプレーンとBD-Jプレーンとは排他的なものであり、何れか一方が利用されている場合、他方は利用されないため、IGプレーンとBD-Jプレーンとでは1つのプレーンメモリを兼用している。
上記レイヤモデルにおいて、ビデオプレーンについては、ベースビュー用のビデオプレーンと、ディペンデントビュー用のビデオプレーンとが存在するものの、IG/BD-Jプレーン、PGプレーンについては、ベースビュー用、ディペンデントビュー用のそれぞれについて、プレーンメモリが存在する訳ではない。よってIG/BD-Jプレーン、PGプレーンがシフト制御の対象になる。
以上が3D出力モードについての説明である。続いて、本実施形態に係る記録媒体の内部構成について説明する。
図4は、第1実施形態に係る記録媒体における内部構成を示す。本図(a)に示すように、第1実施形態に係る記録媒体には、「インデックステーブル」、「動作モードオブジェクトのプログラムファイル」、「プレイリスト情報ファイル」、「ストリーム情報ファイル」、「ストリームファイル」が記録されている。
<インデックステーブル>
インデックステーブルは記録媒体全体に関する管理情報であり、再生装置への記録媒体挿入後に、インデックステーブルが最初に読み出されることで、再生装置において記録媒体が一意に認識される。
<動作モードオブジェクトのプログラムファイル>
動作モードオブジェクトのプログラムファイルは、再生装置を動作させるための制御プログラムを格納している。このプログラムには、コマンドによって記述されたものと、オブジェクト指向のコンパイラ言語によって記述されたものがある。前者のプログラムは、コマンドベースの動作モードにおいて、複数のナビゲーションコマンドをバッチジョブとして再生装置に供給し、これらナビゲーションコマンドに基づき再生装置を動作させる。このコマンドベースの動作モードを、「HDMVモード」と呼ぶ。
後者のプログラムは、オブジェクト指向型のコンパイラ言語ベースの動作モードにおいて、クラス構造体のインスタンスであるバイトコードアプリケーションを再生装置に供給し、このインスタンスに基づき再生装置を動作させる。クラス構造体のインスタンスには、バイトコードアプリケーションの1つであるJava(登録商標)アプリケーションを用いることができる。オブジェクト指向型コンパイラ言語ベースの動作モードを、「BD-Jモード」と呼ぶ。
<ストリームファイル>
ストリームファイルは、ビデオストリーム、1つ以上のオーディオストリーム、グラフィクスストリームを多重化することで得られたトランスポートストリームを格納している。ストリームファイルには、2D専用のものと、2D-3D兼用のものとがある。2D専用のストリームファイルは、通常のトランスポートストリーム形式であり、2D-3D兼用のストリームファイルは、立体視インターリーブドストリームファイルのファイル形式を有する。
立体視インターリーブドストリームファイル形式とは、ベースビューストリームを含むメインのトランスポートストリーム(メインTS)のエクステントと、ディペンデントビュービデオストリームを含むサブトランスポートストリーム(サブTS)のエクステントとをインターリーブ形式で交互配置したものである。
ストリームファイルに格納されるメインTSは、複数種別のPESストリームを管理・制御するための情報として、欧州デジタル放送規格に規定されたパケット管理情報(PCR,PMT,PAT)を具備している。
PCR(Program_Clock_Reference)は、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
PMT(Program_map_table)は、ストリームファイル中に含まれる映像・音声・グラフィクスなどの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またTSに関する各種ディスクリプタを持つ。ディスクリプタにはストリームファイルのコピーを許可・不許可を指示するコピーコントロール情報などがある。
PAT(Program Association Table)は、TS中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。
これらのPCR,PMT,PATは、欧州デジタル放送規格において、一個の放送番組(Program)を構成するパーシャルTSを規定する役割をもち、再生装置は、欧州デジタル放送規格において、一個の放送番組を構成するパーシャルTSを扱うかの如く、TSをデコーダによる処理に供することができる。これは、欧州デジタル放送規格の端末装置と、記録媒体再生装置との互換性を意図したものである。
メインTSにおけるエクステント及びサブTSにおけるエクステントの組みは、再生時においてダブルバッファをアンダーフローさせないデータサイズに設定されており、再生装置は、これらのエクステントの組みを途切れなく読み込んでゆくことができる。
以上がストリームファイルについての説明である。
<ストリーム情報ファイル>
ストリーム情報ファイルは、ストリームファイルにおけるトランスポートストリーム内の任意のソースパケットに対するランダムアクセスや、他のトランスポートストリームとの途切れ無き再生を保障する。このストリーム情報ファイルを通じることにより、ストリームファイルは「AVクリップ」として管理されることになる。ストリーム情報ファイルは、AVクリップにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置のソースパケット番号を、フレーム期間のプレゼンテーションタイムスタンプと対応付けて示す基本エントリーマップをもっているので、ストリームファイルのアクセスに先立ち、このストリーム情報ファイルをメモリにロードしておけば、アクセスしようとするストリームファイル中のトランスポートストリームがどのようなものであるのかを把握することができるので、ランダムアクセスの実行を保障することができる。ストリーム情報ファイルには、2Dストリーム情報ファイルと、3Dストリーム情報ファイルとがあり、3Dストリーム情報ファイルは、ベースビューのためのクリップ情報(クリップベース情報)と、ディペンデントビューのためのクリップ情報(クリップディペンデント情報)と、立体視用の拡張エントリーマップとを含む。
クリップベース情報は、ベースビューのためのエクステントスタートポイント情報を含み、クリップディペンデント情報は、ディペンデントビューのためのエクステントスタートポイント情報を含む。ベースビューのためのエクステントスタートポイント情報は、複数のソースパケット番号から構成される。それぞれのソースパケット番号は、メインTSにおけるエクステントの分割位置が何パケット目に存在するかを示す。ディペンデントビューのためのエクステントスタートポイント情報も複数のソースパケット番号から構成され、サブTSにおける分割位置が何パケットに存在するかを示す。これらのエクステントスタートポイント情報を用いることで、立体視インターリーブドストリームファイルは、メインTSを構成するATCシーケンス1と、サブTSを構成するATCシーケンス2とに分割されることになる。「ATCシーケンス」とは、ソースパケットの配列であって、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、不連続点(no arrival time-base discontinutiy)が存在しないものをいう。ATCシーケンスは、ATCのタイムスタンプが連続しているソースパケット列であるから、再生装置のアライバルタイムクロックを計時するクロックカウンタが計時を行っている間、ATCシーケンスを構成する各ソースパケットは、連続的なソースパケットデパケッタイジング処理、及び、連続的なパケットフィルタリング処理に供されることになる。
ATCシーケンスがソースパケットの配列であるのに対し、STC時間軸におけるタイムスタンプが連続しているTSパケットの配列をSTCシーケンスという。「STCシーケンス」とは、TSパケットの配列であって、TSのシステム基準時刻であるSTC(System Time Clock)の不連続点(system time-base discontinuity)をもたないものをいう。STCの不連続点とは、デコーダがSTCを得るために参照するPCR(Program Clock Reference)を運ぶPCRパケットの不連続情報(discontinuity_indicator)がONである点である。STCシーケンスは、STCのタイムスタンプが連続しているTSパケット列であるから、再生装置のシステムタイムクロックを計時するクロックカウンタが計時を行っている間、STCシーケンスを構成する各TSパケットは、再生装置内に存在するデコーダの連続的なデコード処理に供されることになる。
拡張エントリーマップは、GOP先頭のフレーム期間を表すプレゼンテーションタイムスタンプに対応付けて、ディペンデントビュービデオストリームにおけるGOP先頭のビューコンポーネントの先頭位置となるアクセスユニットデリミターのソースパケット番号を示す。
一方、3Dストリーム情報ファイルにおける基本エントリーマップは、2Dストリーム情報ファイルとの互換をもちつつも、GOP先頭のフレーム期間を表すプレゼンテーションタイムスタンプに対応付けて、ベースビュービデオストリームにおけるGOP先頭のビューコンポーネントの先頭位置となるアクセスユニットデリミターのソースパケット番号を示す。
<プレイリスト情報ファイル>
プレイリスト情報ファイルは、再生装置にプレイリストを再生させるための情報を格納したファイルである。「プレイリスト」とは、トランスポートストリーム(TS)の時間軸上で再生区間を規定するとともに、この再生区間同士の再生順序を論理的に指定することで規定される再生経路であり、TSのうち、どれをどの部分だけ再生して、どのような順序でシーン展開してゆくかを規定する役割をもつ。プレイリスト情報は、かかるプレイリストの「型」を定義する。プレイリスト情報によって定義される再生経路は、いわゆる「マルチパス」である。マルチパスとは、主となるTSに対して定義された再生経路(メインパス)と、従となるストリームに対して定義された再生経路(サブパス)とを束ねたものである。このマルチパスにおいてベースビュービデオストリームの再生経路を規定し、サブパスにおいてディペンデントビュービデオストリームの再生経路を規定すれば、立体視を再生するためのビデオストリームの組合せを、好適に規定することができる。
オブジェクト指向プログラミング言語ベースのアプリケーションが、このプレイリスト情報を再生するフレームワークプレーヤインスタンスの生成を命じることで、マルチパスによるAV再生を開始させることができる。フレームワークプレーヤインスタンスとは、メディアフレームワークプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。またコマンドベースのプログラムが、このプレイリスト情報を引き数で指定した再生コマンドを発行することで、マルチパスによる再生を開始することもできる。
プレイリスト情報は、1つ以上のプレイアイテム情報を含む。プレイアイテム情報とは、ビデオストリームの再生時間軸のうち、In_Timeとなる時点と、Out_Timeとなる時点の組みを1つ以上定義する再生区間情報である。
プレイリスト情報は、プレイアイテム情報−ストリーム情報−トランスポートストリームという階層構造を有しており、トランスポートストリーム及びストリーム情報の組みと、プレイアイテム情報との比率については、1対多の関係にして、1つのトランスポートストリームを複数のプレイアイテム情報から多重参照することができる。よって、あるプレイリストのために作成されたトランスポートストリームをバンクフィルムとして採用し、これを複数のプレイリスト情報ファイルにおけるプレイアイテム情報から参照することで、映画作品のバリエーションを効率良く作成することができる(尚、バンクフィルムとは、映画業界の用語であり、複数のシーンで使いまわしされる映像内容のことである)。
一般には、プレイリストという単位はユーザから認識されないので、ストリームファイルから派生した複数のバリエーション(例えば劇場公開版やTV放映版)が、プレイリストとして認識される。
プレイリスト情報には、2Dプレイリスト情報と、3Dプレイリスト情報とがあり、これらの違いは、3Dプレイリスト情報内にベースビューインディケータと、立体視ストリーム番号テーブルとが存在することである。
「立体視ストリーム番号テーブル」とは、3D出力モードでのみ再生すべきエレメンタリストリームのストリームエントリー及びストリーム属性を、ストリーム番号に対応付けて示すテーブルである。
「ベースビューインディケータ」は、視点間の相関性を利用した圧縮符号化の基礎となるベースビュービデオストリームを、左目及び右目のどちらとして表示されるべきかを示す情報である。このプレイリスト情報におけるベースビューインディケータを変化させることで、ベースビュービデオストリームを、左目及び右目用のうちどちらにするかという割り当てをプレイリストのレベルで変化させることができる。
ストリームの構造に依拠しないプレイリストのレベルで、上記割り当てを変化させることができるので、画像中の物体の位置及び角度がベースビュー=左目、ディペンデントビュー=右目用のように設定されているプレイリストが存在する場合、このプレイリストとは別バージョンとして、ベースビュー=右目用、ディペンデントビュー=左目のように設定されているプレイリストを作成することができる。
プレイリストのレベルで、ベースビュー、ディペンデントビューに対する左目、右目用の割り当てを逆転させれば、立体視効果を逆転させることができる。例えば、画面の手前に対象物が出現するような立体視効果を意図したプレイリストが既に作成されている場合、かかるプレイリストと別に、画面の奥に対象物が出現するような立体視効果を意図したプレイリストを作成することができる。よって3Dプレイリストでは、立体視効果が異なる、プレイリストのバリエーションを簡易に作成することがでるという効果を奏する。
図4(b)は、メインTSの内部構成を示し、同図(c)は、サブTSの内部構成を示す。同図(b)に示すように、メインTSは、1本のベースビュービデオストリームと、32本の左目PGストリーム、32本の左目用IGストリーム、32本のオーディオストリームを含むものとする。同図(c)に示すように、サブTSは、1本のディペンデントビュービデオストリームと、32本の右目PGストリーム、32本の右目用IGストリームを含むものとする。
次に、TSの内部構成について説明する。
TSに多重化されるエレメンタリストリーム(ES)は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィクスストリーム、インタラクティブグラフィクスストリームがある。
・ビデオストリーム
ベースビュービデオストリームは、ピクチャインピクチャアプリケーションにおけるプライマリビデオストリームを構成する。ピクチャインピクチャアプリケーションは、このプライマリビデオストリームの他、セカンダリビデオストリームから構成される。プライマリビデオストリームとは、ピクチャインピクチャアプリケーションにおいて親画面となるピクチャデータから構成されるビデオストリームである。対照的に、セカンダリビデオストリームとは、ピクチャインピクチャにおいて子画面として、親画面の一部にはめ込まれるピクチャデータから構成されるビデオストリームである。
プライマリビデオストリームを構成するピクチャデータと、セカンダリビデオストリームを構成するピクチャデータとはデコード後、別々のプレーンメモリに格納される。セカンダリビデオストリームを構成するピクチャデータを格納するプレーンメモリの前段には、セカンダリビデオストリームを構成するピクチャデータのスケーリング変更及び表示座標の位置決めを行う構成要素(Scalling&Positioning)が存在する。
・オーディオストリーム
オーディオストリームには、プライマリオーディオストリーム、セカンダリオーディオストリームの2種類がある。プライマリオーディオストリームは、ミキシング再生を行う場合、主音声となるべきオーディオストリームであり、セカンダリオーディオストリームは、ミキシング再生を行う場合、副音声をとなるべきオーディオストリームである。セカンダリオーディオストリームは、このミキシングのためのダウンサンプリングのための情報、ゲイン制御のための情報が存在する。
・プレゼンテーショングラフィクスストリーム(PGストリーム)
PGストリームは、デコーダにパイプラインを採用することで、映像との緻密な同期を実現することができ、字幕表示に適したグラフィクスストリームであり、2DPGストリームと、立体視PGストリームという2つの種類がある。立体視PGストリームには、左目PGストリーム及び右目PGストリームという二種類のものがある。
2DPGストリームは最大32本、左目PGストリームの最大32本、右目PGストリームも最大32本定義することができる。これらのPGストリームには、それぞれ、別々のパケット識別子が付与されており、多重分離部に、再生すべきパケット識別子を指示することで、これらのPGストリームのうち、所望のものが再生に供されることになる。
パイプラインによるデコード動作の実現により、動画像との緻密な同期を実現するので、PGストリームの用途は字幕のような文字再生に限定されない。映画作品のマスコットキャラクタを表示して、これを動画像と同期させつつ動作させるなど、緻密な同期が必要なグラフィクス再生であれば、どのようなものも、PGストリームによる再生対象として、採用することができる。
ストリームファイルに多重化されないが、字幕を現すストリームには、PGストリームの他に、テキスト字幕(textST)ストリームというものがある。textSTストリームは、字幕の内容をキャラクタコードで現したストリームである。
PGストリーム、テキスト字幕ストリームは、これらの種類が区別されることなく、同じストリーム種別であるとして、これらPGストリーム及びテキスト字幕ストリームは、同じストリーム登録列に登録される。そして、ストリーム選択のプロシージャを実行するにあたって、ストリーム登録列におけるストリーム登録の順位に従い、再生されるべきPGストリーム又はテキスト字幕ストリームが定まる。PGストリーム、テキスト字幕ストリームは、ストリーム種が区別されることなく、ストリーム選択のプロシージャに供されるのでこれらPGストリーム及びテキスト字幕ストリームを1つのストリーム種別、つまり、「PG_テキスト字幕ストリーム(略して、字幕ストリームと呼ぶ場合もある)」という種別で扱う。
2D用のPG_テキスト字幕ストリームは、1plane+Offsetモードにおいて再生される。以降の説明では、2DPG_テキスト字幕ストリームを、1plane+OffsetPG_テキスト字幕ストリームであるとして説明する。
・インタラクティブグラフィクス(IG)ストリーム
IGストリームは、対話操作の情報を具備することで、ビデオストリームの再生進行に伴ってメニューを表示したり、またユーザ操作に従いポップアップメニューを表示することができるグラフィクスストリームである。
IGストリームもPGストリームと同様、2DIGストリームと、立体視IGストリームという2つの種類がある。IGストリームの制御情報(対話制御セグメントという)は、ユーザインターフェイスモデルを規定する情報(User_interface_model)をもっており、オーサリング者は、このユーザインターフェイスモデル情報を設定することで、ビデオストリームの再生進行に伴ってメニューを表示するか(Alwaysオンという)、ユーザ操作に従いポップアップメニューを表示するか(ポップアップメニューオン)の何れかを指定することができる。
IGストリームが対話操作の情報をもつ意義は以下の通りである。Java仮想マシンがアプリケーションからの要求に応じてプレイリスト再生の開始を再生制御の主体である再生制御エンジンに指示する場合、Java仮想マシンは、再生制御エンジンに再生を命じた後、プレイリスト再生を開始した旨のレスポンスをアプリケーションに返す。つまり、再生制御エンジンによるプレイリスト再生が継続している間、Java仮想マシンは、実行終了待ちにはならない。何故なら、Java仮想マシンは、いわゆるイベントドリブン型の動作主体であり、再生制御エンジンがプレイリストの再生を行っている間も、動作を行うことができるからである。
一方、HDMVモードにおいて、コマンドインタプリタが、プレイリスト再生を再生制御エンジンに命じる場合、プレイリスト再生が終了するまで、そのプレイリスト再生の実行終了待ちとなる。再生制御エンジンによる再生が継続している間、コマンド実行部は、対話的な処理を実行することはできない。このコマンドインタプリタの代わりに、グラフィクスデコーダが対話的な動作を行う。グラフィクスデコーダに対話的な動作を行わせるため、IGストリームには、ボタン部材を用いた対話的な操作を規定する制御情報が組込まれている。
・各ストリーム種別において許容される表示モード
3D表示モードのどれが許容されるかは、ストリーム種別によって異なる。プライマリビデオストリームの3D表示モードには、B−Dプレゼンテーションモード、B−Bプレゼンテーションモードといった2つの出力モードが許容される。プライマリビデオストリームにおいて、B−Bプレゼンテーションモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。B−Dプレゼンテーションモードで再生される場合におけるプライマリビデオストリームの類型を、「立体視B−D再生タイプ」という。B−Bプレゼンテーションモードで再生される場合におけるプライマリビデオストリームの類型を、立体視B−B再生タイプという。
PGストリームの3D表示モードには、B−Dプレゼンテーションモード、1plane+Offsetモード、1plane+Zero Offsetモードといった3つの出力モードが許容される。PGストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。B−Dプレゼンテーションモードで再生される場合におけるPGストリームの類型を、「立体視再生タイプ」という。1plane+Offsetモードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、1plane+Offsetタイプという。1plane+Zero Offsetモードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、1plane+Zero Offsetタイプという。
テキスト字幕ストリームの3D表示モードには、1plane+Offsetモード、1plane+Zero Offsetモードといった2つの出力モードが許容される。テキスト字幕ストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。
IGストリームの3D表示モードには、B−Dプレゼンテーションモード、1plane+Offsetモード、1plane+Zero Offsetモードといった3つの出力モードが許容される。IGストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。以降の説明では、特に断らない限り3D出力モード実行時には、ピクチャインピクチャは使用できないものとする。ピクチャインピクチャ及び3D出力モードは、何れも非圧縮のピクチャデータを格納するためのビデオプレーンを2つ必要とするからである。また特に断らない限り、3D出力モードでは、サウンドミキシングも使用できないものとする。
続いて、メインTS及びサブTSの内部構成について説明する。図5は、メインTS及びサブTSの内部構成を示す。
同図(a)は、メインTSの内部構成を示す。メインTSは、以下のソースパケットによって構成されている。
0x0100のパケットIDを有するソースパケットはProgram_Map_Tableを構成し、0x1001のパケットIDを有するTSパケットはPCRを構成する。
0x1011のパケットIDを有するソースパケット列は、プライマリビデオストリームを構成する。
0x1200から0x121FのパケットIDを有するソースパケット列までは、32本の2DPGストリームを構成する。
0x1400から0x141FのパケットIDを有するソースパケット列までは 32本の2DIGストリームを構成する。
0x1100のパケット識別子を有するソースパケット列から、0x111Fのパケット識別子を有するソースパケット列までは、プライマリオーディオストリームを構成する。
これらのソースパケットのパケット識別子を多重分離部に指示することにより、メインTSに多重化されている複数のESのうち、所望のものを分離してデコーダに供することができる。
図(b)は、サブTSの内部構成を示す。サブTSは、以下のソースパケットによって構成されている。
Ox1012のパケット識別子を有するソースパケット列は、ディペンデントビュービデオストリームを構成する。
0x1220のパケット識別子を有するソースパケット列から0x123FのパケットIDを有するソースパケット列までは、32本の左目PGストリームを構成する。
Ox1240のパケット識別子を有するソースパケット列から0x125Fのパケット識別子を有するソースパケット列までは、32本の右目PGストリームを構成する。
0x1420のパケット識別子を有するソースパケット列から0x143FのパケットIDを有するソースパケット列までは 32本の左目用IGストリームを構成する。
Ox1440のパケット識別子を有するソースパケット列から0x145Fのパケット識別子を有するソースパケット列は、32本の右目用IGストリームを構成する。
以上がストリームファイルについての説明である。続いて、プレイリスト情報の詳細について説明する。
上述したようなマルチパスを定義するため、図6のような内部構成を有する。図6は、プレイリスト情報の内部構成を示す。同図(a)に示すようにプレイリスト情報は、「メインパス情報」、「サブパス情報」、「プレイリストマーク情報」、「エクステンションデータ」を含む。以下、これらの構成要素について説明する。
1)メインパス情報は、1つ以上の主たる再生区間情報から構成される。図6(b)は、メインパス情報、及び、サブパス情報の内部構成を示す図であり、本図に示すように、メインパス情報は、1つ以上の主たる再生区間情報から構成される。サブパス情報は、1つ以上の従たる再生区間情報から構成される。
主たる再生区間情報はプレイアイテム情報と呼ばれ、TSの再生時間軸のうち、In_Timeとなる時点と、Out_Timeとなる時点の組みを1つ以上定義することにより、論理的な再生区間を定義する情報である。再生装置には、カレントのプレイアイテムの番号を格納するプレイアイテム番号レジスタを含み、複数のプレイリスト情報のうち、このプレイアイテム番号レジスタに格納されているものが、現在の再生対象になる。
図6(c)は、プレイアイテム情報の内部構成を示す。本図に示すように、「ストリーム参照情報」、「インタイムアウトタイム情報」、「接続状態情報」、「基本ストリーム選択テーブル」を含む。
ストリーム参照情報は、プレイアイテムを構成するトランスポートストリームを「AVクリップ」として管理しているストリーム情報ファイルを示す「ストリーム情報ファイルネーム情報(clip_information_file_name)」、そのTSにおける符号化方式を示す「クリップ符号化方式識別子(Clip_codec_indentifier)」、当該TSのSTCシーケンスにおいて、インタイム及びアウトタイムが設定されているSTCシーケンスがどれであるかを示す「STC識別子レファレンス(STC_ID_referrence)」を含む。
以上がプレイアイテム情報についての説明である。
2)従たる再生区間情報は、サブパス情報と呼ばれ、複数のサブプレイアイテム情報から構成される。図6(d)は、サブプレイアイテムの内部構成を示す。本図に示すように、サブプレイアイテム情報は、STCシーケンスの時間軸にインタイムと、アウトタイムとの組みを規定することで、サブパスを構成する再生区間を定義する情報であり、「ストリーム参照情報」、「インタイムアウトタイム情報」、「シンクロプレイアイテムレファレンス」、「シンクロ開始時刻情報」を含む。
『ストリーム参照情報』は、プレイアイテム情報と同様、『ストリーム情報ファイルネーム情報』『クリップ符号化方式識別子』、『STC識別子レファレンス』を含む。
『インタイムアウトタイム情報(SubPlayItem_In_Time,SubPlayItem_Out_Time)』は、STCシーケンス時間軸における、サブプレイアイテムの始点と、STCシーケンス時間軸上における、サブプレイアイテムの終点とを示す。
「シンクロプレイアイテムレファレンス(Sync_PlayItem_Id)」は、プレイアイテムのうち、本サブプレイアイテムが同期すべきものを一意に指定する情報である。サブプレイアイテムインタイムは、この同期プレイアイテム参照子で指定されたプレイアイテムの再生時間軸上に存在する。
「シンクロ開始時刻情報(Sync_Start_PTS_of_PlayItem)」は、同期プレイアイテム参照子で指定されたプレイアイテムのSTCシーケンスの時間軸のうち、サブプレイアイテムインタイムで指定されたサブプレイアイテムの始点が、どの時点に写像されるかを示す
3)プレイリストマーク情報は、再生区間固有のマークポイントを定義する情報であり、再生区間を示す参照子と、デジタルストリームの時間軸において、マークポイントが何処にあるかを示すタイムスタンプと、マークポイントの属性を示す属性情報とを含み、
前記属性情報は、プレイリストマーク情報により定義されたマークポイントが、リンクポイントであるか、エントリーマークであるかを示す。
リンクポイントは、リンクコマンドによるリンクが可能であるが、チャプタースキップ操作がユーザによりなされた場合の選択対象にはならないマークポイントである。
エントリーマークは、リンクコマンドによるリンクが可能であり、尚且つチャプタースキップ操作がユーザによりなされた場合の選択対象になるマークポイントである。
IGストリームのボタン情報内に組込まれたリンクコマンドは、プレイリストマーク情報を介した間接参照の形式で頭出し位置を指定している。
<基本ストリーム選択テーブル(STreamNumber_table)>
前記基本ストリーム選択テーブルは、プレイリストを構成する複数のプレイアイテムのうち、その基本ストリーム選択テーブルを包含しているのものがカレントプレイアイテムになった際、マルチパスのメインパスにて参照されているAVクリップに多重化されているES、及び、マルチパスのサブパスにて参照されているAVクリップに多重化されているESのうち、どれの再生を許可するかを、複数のストリーム種別毎に規定するテーブルである。ここでのストリーム種別とは、ピクチャインピクチャにおけるプライマリビデオストリーム、ピクチャインピクチャにおけるセカンダリビデオストリーム、サウンドミキシングにおけるプライマリオーディオストリーム、サウンドミキシングにおけるセカンダリオーディオストリーム、PG_テキスト字幕ストリーム、IGストリームといった種別をいい、基本ストリーム選択テーブルは、これらのストリーム種別毎に、再生を許可すべきストリームを登録することができる。具体的には、基本ストリーム選択テーブルは、ストリーム登録の配列から構成される。ここでストリーム登録とは、基本ストリーム選択テーブルが帰属しているプレイアイテムがカレントプレイアイテムになった際、再生を許可すべきESがどのようなストリームであるかを、そのストリーム番号に対応付けて示すものであり、ストリーム登録は、論理的なストリーム番号に、ストリームエントリー及びストリーム属性の組合せを対応付けるというデータ構造になっている。
ストリーム登録におけるストリーム番号は、1、2、3というような整数値で表現され、ストリーム番号の最大数は、対応するストリーム種別のストリーム本数となる。
再生装置には、このストリーム種別毎に、ストリーム番号レジスタが存在しており、ここに格納されたストリーム番号で指示されるESが、現在再生対象になっているES、つまりカレントストリームになる。
このストリームエントリー内に、再生すべきESのパケット識別子が記述される。ストリームエントリー内に、再生すべきESのパケット識別子を記述することができるので、ストリーム登録におけるストリーム番号を再生装置のストリーム番号レジスタに格納し、ストリーム登録におけるストリームエントリー内のパケット識別子に基づいて再生装置のPIDフィルタにパケットフィルタリングを再生装置に実行させる。こうすることで、基本ストリーム選択テーブルにおいて再生が許可されたESのTSパケットがデコーダに出力され、ESの再生がなされることになる。
基本ストリーム選択テーブルにおけるこれらのストリーム登録は、ストリーム番号の順序に従って並べられており、ストリーム番号の順序に基づくストリーム登録の順位は、「再生装置が再生することができる」、「ストリームの言語属性が再生装置の言語設定と一致する」の条件を満たすストリームが複数存在する場合、ストリーム登録列におけるストリーム番号の順位によって、選択対象となるストリームが決定される。
こうすることで、基本ストリーム選択テーブルにおけるストリーム登録の中に、再生装置が再生できないものが存在する場合、かかるストリームは再生から除外されることになり、また、「再生装置が再生することができる」、「ストリームの言語属性が再生装置の言語設定と一致する」との条件を満たすストリームが複数存在する場合は、それらのうちどれを優先的に選択すべきかという指針をオーサリング者は再生装置に伝えることができる。
「再生装置が再生することができる」、「ストリームの言語属性が再生装置の言語設定と一致する」という条件を満たすストリームが存在するかどうかという判定や、「再生することができる」、「ストリームの言語属性が再生装置の言語設定と一致する」との条件を満たすストリームのうちどれを選択するかという選択手順は、ストリーム選択プロシージャと呼ばれる。ストリーム選択プロシージャは、カレントプレイアイテムが新しいものに切り替った際、また、ユーザからストリーム切り替えが要求された際、実行される。
カレントプレイアイテムが新しいものに切り替わる等、再生装置の状態変化が生じた際、上述したような判定や選択を行い、再生装置のストリーム番号レジスタにストリーム番号を設定する一連の手順を「状態変化時に実行すべきプロシージャ」という。ストリーム番号レジスタは、ストリーム種別毎に存在するから、上記プロシージャは、ストリーム種別ごとに実行されることになる。
ストリーム切り替え要求がユーザによってなされた場合、上述したような判定や選択を行い、再生装置のストリーム番号レジスタにストリーム番号を設定する一連の手順を「ストリーム変化が要求された際のプロシージャ」という。
ディスクが装填された際、ストリーム番号レジスタをストリーム登録列における初期値に設定しておくとの手順を、「初期化」という。
基本ストリーム選択テーブルにおけるストリーム登録列は、サブプレイアイテム情報によって指定されているストリームと、プレイアイテム情報によって指定されているストリームとに一律に優先順序を付与しているので、ビデオストリームとは多重化されていないストリームであっても、サブプレイアイテム情報によって指定されていれば、ビデオストリームと同期再生すべきストリームの選択にあたっての選択の対象となる。
そして、サブプレイアイテム情報にて指定されたストリームを再生装置が再生することができ、尚且つ、サブプレイアイテム情報にて指定されたストリームの優先順序がビデオストリームと多重化されたグラフィクスストリームの優先順序よりも高い場合は、ビデオストリームと多重化されたストリームの代わりに、サブプレイアイテム情報にて指定されたストリームを再生に供することができる。
基本ストリーム選択テーブルにおけるストリーム番号の用途を述べる。基本ストリーム選択テーブルに記載されたストリーム番号は、セットストリームコマンドのオペランドに使うことができる。
セットストリームコマンドとは、オペランドに指定されたストリーム番号をカレントストリーム番号としてストリーム番号レジスタに設定して、カレントストリームの切り替えを再生装置に命じるコマンドであり、コマンドベースのプログラムが、ストリームの切り替えを再生装置に実行させる際に用いられる。
また、ストリームチェンジUOの引き数やセットストリームAPIの引き数にも使用することができる。ストリームチェンジUOとは、引き数に指定されたストリーム番号をカレントストリーム番号としてストリーム番号レジスタに設定して、カレントストリームの切り替えを再生装置に命じるユーザ操作イベントである。
セットストリームAPIとは、引き数に指定されたストリーム番号をカレントストリーム番号としてストリーム番号レジスタに設定して、カレントストリームの切り替えを再生装置に命じるAPIであり、オブジェクト指向プログラミング言語ベースのプログラムが、ストリーム切り替えを再生装置に実行させる際に用いられる。
図7は、基本ストリーム選択テーブルの一例を示す。同図(a)は、ストリーム種別に、プライマリビデオストリーム、セカンダリビデオストリーム、PGストリーム、IGストリーム、セカンダリビデオストリーム、セカンダリオーディオストリームといった種別が存在する場合に、基本ストリーム選択テーブルに設けられる複数のストリーム登録列を示す。同図(b)は、基本ストリーム選択テーブルにより、メインTS,サブTSから、どのようなESが分離されるかを示す。同図左側は、メインTS、サブTSを示し、真ん中は、基本ストリーム選択テーブルと、多重分離部とを示す。右側は、基本ストリーム選択テーブルに基づき分離されるプライマリビデオストリーム、プライマリオーディオストリーム、PGストリーム、IGストリーム、セカンダリビデオストリーム、セカンダリオーディオストリームを示す。
続いて、エクステンションデータの詳細について説明する。
MVCビデオストリームをプレイリスト情報が参照する場合、拡張ストリーム選択テーブルは、プレイリスト情報ファイルのエクステンションデータにおけるデータブロックに格納されねばならない。
ディスク上のMVCビデオストリームをプレイリスト情報が参照する場合、サブパス情報の拡張情報(サブパスブロックエクステンション)は、プレイリスト情報ファイルにおけるエクステンションデータのデータブロックに格納されねねばならない。
2D再生装置は、プレイリストファイルにおけるエクステンションデータに遭遇した際、未知のエクステンションデータを無視せねばならない。
<拡張ストリーム選択テーブル(STreamNumber_table_StereoScopic(SS))>
拡張ストリーム選択テーブルは、立体視出力モードにおいてのみ、ストリーム選択テーブルと共に使用されるストリーム選択テーブルであり、プレイアイテムの再生や、これに関連するサブパスが再生されている際、選択することができるESを定義する。
前記拡張ストリーム選択テーブルは、立体視出力モードにおいてのみ再生を許可すべきESを示し、ストリーム登録列を含む。ストリーム登録列における個々のストリーム登録情報は、ストリーム番号と、そのストリーム番号に対応するストリームエントリーと、ストリーム属性とを含む。拡張ストリーム選択テーブルは、立体視出力モード固有の拡張を意味するので、各プレイアイテム情報に拡張ストリーム選択テーブル(STN_table_SS)が関連付けられているプレイリストを「3Dプレイリスト」という。
拡張ストリーム選択テーブルにおけるストリームエントリーは、再生装置が立体視出力モードに設定されている場合において、対応するストリーム番号が再生装置におけるストリーム番号レジスタに設定された際、再生装置が多重分離に用いるべきパケット識別子を示す。ここで、基本ストリーム選択テーブルとの違いは、拡張ストリーム選択テーブルにおけるストリーム登録列は、ストリーム選択プロシージャの対象にならない点である。つまり、基本ストリーム選択テーブルにおけるストリーム登録列におけるストリーム登録情報は、個々のESの優先順序と解釈され、何れかのストリーム登録情報内のストリーム番号が、ストリーム番号レジスタに書き込まれる。しかし拡張ストリーム選択テーブルにおけるストリーム登録列は、ストリーム選択プロシージャの対象とはならず、拡張ストリーム選択テーブルにおけるストリーム登録情報は、何れかのストリーム番号がストリーム番号レジスタに格納された際、そのストリーム番号に対応するストリームエントリー及びストリーム属性を取り出すという目的のみに用いられる。
2D出力モードから3D出力モードへと出力モードが切り替った際、対象となるストリーム選択テーブルが、基本ストリーム選択テーブルから拡張ストリーム選択テーブルに切り替ったために、ストリーム選択プロシージャを実行したとなると、ストリーム番号の同一性を維持することができず、強いては、言語属性の同一性も失われる可能性がある。
2D出力モードから3D出力モードへの切り替え時に、言語属性を始めとするストリーム属性の同一性を維持するため、拡張ストリーム選択テーブルの用途を、上記のものにも留めている。
拡張ストリーム選択テーブルにおけるストリーム番号の用途を述べる。拡張ストリーム選択テーブルに記載されたストリーム番号は、セットストリームコマンドやセット立体視ストリームコマンドのオペランドに使うことができる。
セット立体視ストリームコマンドとは、オペランドに指定された立体視のためのストリーム番号をカレントストリーム番号としてストリーム番号レジスタに設定して、カレントストリームの切り替えを再生装置に命じるコマンドであり、コマンドベースのプログラムが、立体視ストリームへの切り替えを再生装置に実行させる際に用いられる。
また、ストリームチェンジUOの引き数やセットストリームAPIの引き数にも使用することができる。
前記拡張ストリーム選択テーブルは、ディペンデントビュービデオストリームのストリーム登録列、PGストリームのストリーム登録列、IGストリームのストリーム登録列から構成される。
拡張ストリーム選択テーブルにおけるストリーム登録列は、ストリーム選択テーブルにおける同じストリーム種別のストリーム登録列に結合される。この結合は、ストリーム選択テーブルにおけるプライマリビデオストリームのストリーム登録列に、拡張ストリーム選択テーブルにおけるディペンデントビュービデオストリームのストリーム登録列を結合し、ストリーム選択テーブルにおけるPGストリームのストリーム登録列に、拡張ストリーム選択テーブルにおけるPGストリームのストリーム登録列を結合し、IGストリームのストリーム登録列に、拡張ストリーム選択テーブルにおけるIGストリームのストリーム登録列を結合することでなされる。
上記の結合がなされれば、結合後のストリーム選択テーブルのうち、基本ストリーム選択テーブルにおけるストリーム登録列に対して上記プロシージャが実行される。
図8は、拡張ストリーム選択テーブルの内部構成を示す。拡張ストリーム選択テーブルは、拡張ストリーム選択テーブルの全体長(length)、ポップアップ期間固定オフセット(Fixed_offset_during_Popup)、各プレイアイテムにおけるそれぞれのストリーム種別に対応するストリーム登録列から構成される。
ここでプレイアイテム#1〜#NというN個のプレイアイテムが存在する場合、プレイアイテム#1〜#Nのそれぞれに対応するストリーム登録列が、拡張ストリーム選択テーブルに設けられる。各プレイアイテムに対応するストリーム登録列は、ディペンデントビューストリーム登録列、PGストリーム登録列、IGストリーム登録列である。
『Fixed_offset_during_Popup』は、ポップアップ期間固定オフセットであり、IGストリームによるポップアップメニューがオンに設定されている場合、ビデオやPG_テキスト字幕ストリームの再生タイプを制御する。この『Fixed_offset_during_Popup』フィールドは、IGストリームにおけるuser_interface_modelフィールドがオン、つまり、ポップアップメニューのユーザインターフェイスがオンに設定されている場合、オンに設定される。IGストリームにおけるuser_interface_modelフィールドがオフ、つまり、AlwaysONのユーザインターフェイスに設定されている場合、オフに設定される。
ポップアップ期間固定オフセット「=0」、つまり、IGストリームのユーザインターフェイスにおいてポップアップメニューがオフに設定されている場合、ビデオストリームはB−Dプレゼンテーションモードとなる。立体視PGストリームは、立体視再生タイプになる。1plane+Offsetモードの再生時において、PG_テキスト字幕ストリームは、1plane+Offsetモードになる。
ポップアップ期間固定オフセット「1」、つまり、IGストリームのポップアップメニューがオンである場合、ビデオストリームはB−Bプレゼンテーションモードとなる。立体視PGストリームは、1plane+Offsetモードになり、1plane+Offset用のPGストリームは、1plane+Zero offset再生タイプとして再生される。
1plane+OffsetモードにおいてPG_テキスト字幕ストリームは、1plane+Zero offsetになる。
『オフセットシーケンス本数情報(図中のnumber_of_offset_sequence)』は、ディペンデントビューストリームにおけるオフセットシーケンスの個数を示す。
拡張ストリーム選択テーブルにおけるこの値は、ディペンデントビューストリームに含まれるオフセットシーケンスの個数と同じになる。
図9は、拡張ストリーム選択テーブルにおけるストリーム登録列を示す。
図9(a)は、ディペンデントビュービデオストリームのストリーム登録列の内部構成を示す。ディペンデントビューストリームのストリーム登録列は、v(x)個のSS_dependet_view_blockから構成される。ここで、v(x)とは、プレイアイテム情報#xの基本ストリーム選択テーブルにおいて、再生が許可されているプライマリビデオストリームの本数である。図中の引き出し線は、ディペンデントビューストリームのストリーム登録列の内部構成をクローズアップして示している。引出線に示すように、SS_dependet_view_blockは、ストリーム番号と、ストリームエントリーと、ストリーム属性と、オフセットシーケンス数(number_of_offset_sequence)とから構成される。
ストリームエントリーは、ディペンデントビュービデオストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、ディペンデントビュービデオストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおけるディペンデントビュービデオストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。
『ストリーム属性』は、ディペンデントビュービデオストリームの言語属性を含む。
『オフセットシーケンス数(number_of_offset_sequence)』は、ディペンデントビュービデオストリーム内に存在するオフセットの本数を示す。
図9(a)においてディペンデントビュービデオストリームのストリーム登録列は、データ構造上、複数のディペンデントビュービデオストリームについてのストリーム登録情報を設けるものになっている。通常、ベースビュービデオストリームの本数は1つであるから、ディペンデントビュービデオストリームにおけるストリーム登録情報の個数も唯一つになる。
図9(b)は、PGストリームのストリーム登録列の内部構成を示す。PGストリームのストリーム登録列は、P(x)個のストリーム登録情報から構成される。ここで、P(x)とは、プレイアイテム情報#xの基本ストリーム選択テーブルにおいて、再生が許可されているPGストリームの本数である。
図中の引き出し線は、ストリーム登録列の共通の内部構成をクローズアップして示している。
『PG_テキスト字幕オフセットシーケンスIDレファレンス情報(PGtextST_offset_sequence_id_ref)』は、PG_テキスト字幕ストリームオフセットシーケンスレファレンス情報であり、1plane+OffsetモードのPG_テキスト字幕ストリームについてのオフセットシーケンスを指示する。
オフセットメタデータは、ディペンデントビュービデオストリームのアクセスユニットによって供給される。再生装置は、このフィールドによって提供されたオフセットを1plane+Offsetモードタイプのプレゼンテーショングラフィクス(PG)プレーンに適用せねばならない。
このフィールドが不定値(FF)である場合、再生装置はPGストリームプレーンメモリに、このオフセットを適用しない。
『立体視PG存否フラグ(is_SS_PG)』は、PGストリームにおける左目用IGのストリームエントリー、右目用IGのストリームエントリー、ストリーム属性の有効性と、存在とを指示する。立体視PGストリームにおける構造が存在しない場合、このフィールドは0に設定されねばならない。立体視PGストリームにおける構造が存在する場合、このフィールドは1に設定されねばならない。
『左目ストリームエントリー』は、左目PGストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、左目PGストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおける左目PGストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。
『右目ストリームエントリー』は、右目PGストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、右目PGストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおける右目PGストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。拡張ストリーム選択テーブルのストリーム登録情報におけるstream_entry_for_depentdent_viewによって参照されているストリームファイルが、基本ストリーム選択テーブルのストリームエントリーによって参照されているストリームファイルとは異なる場合、右目PGストリームを格納しているストリームファイルを改めて読み出さねばならない。
『共通ストリーム属性』は、左目PGストリーム及び右目PGストリームの言語属性を含む。
『立体視PG_テキスト字幕オフセットシーケンスレファレンス情報(SS_PG_textST_offset_sequence_id_ref)』は、PG_テキスト字幕ストリーム用のオフセットシーケンスを参照するためのレファレンス情報であり、PG_テキスト字幕ストリームのためのオフセットシーケンスを指示する。再生装置は、このフィールドによって提供されたオフセットをPGプレーンに適用せねばならない。
このフィールドが不定値(FF)である場合、再生装置はPGストリームプレーンメモリに、このオフセットを適用しない。
図9(c)は、IGストリームのストリーム登録列の内部構成を示す。IGストリームのストリーム登録列は、I(x)個のストリーム登録情報から構成される。ここで、I(x)とは、プレイアイテム情報#xの基本ストリーム選択テーブルにおいて、再生が許可されているIGストリームの本数である。図中の引き出し線は、ストリーム登録列の共通の内部構成をクローズアップして示している。
『IGオフセットシーケンスIDレファレンス情報(IG_offset_sequence_id_ref)』は、インタラクティブグラフィクスオフセットシーケンスレファレンスであり、1plane+OffsetモードのIGストリームのシーケンスIDのレファレンスである。この値は、オフセットシーケンスに定義されているオフセットシーケンスIDを指示する。上述したように、オフセットメタデータは、ディペンデントビュービデオストリームによって供給される。再生装置は、このフィールドによって提供されたオフセットを1plane+OffsetモードタイプのIGストリームに適用せねばならない。
このフィールドが不定値(FF)である場合、再生装置はインタラクティブグラフィクススプレーンに、このオフセットを適用しない。
『B-Bモード時のオフセット方向情報(IG_Plane_offset_direction_during_BB_video)』は、B−Bプレゼンテーションモードにおいてポップアップメニューのユーザインターフェイスで、IGストリームが再生されている間、1plane+Offsetモードにおけるインタラクティブグラフィクス(IG)プレーンにおけるオフセット方向を指示する。
値「0」でフロント設定、つまり、プレーンメモリは、TVと視聴者との間に存在し、レフトビュー期間においてプレーンは右方向に、ライトビュー期間においてプレーンは左方向にシフトされる。
値「=1」でビハインド設定、つまり、プレーンメモリは、TV又はスクリーンの背後に存在し、レフトプレーンは左方向に、ライトプレーンは右方向にシフトされる。
『B-Bモード時のオフセット値情報(IG_Plane_offset_value_during_BB_video)』は、B−BプレゼンテーションモードでポップアップメニューのユーザインターフェイスによってIGストリームが再生されている間、1plane+OffsetモードにおけるIGプレーンのオフセット値を画素単位で指示する。
『立体視IG存否フラグ(is_SS_IG)』は、、IGストリームにおける左目用IGのストリームエントリー、右目用IGのストリームエントリー、ストリーム属性の有効性と、存在とを指示する。立体視IGストリームのデータ構造が存在しない場合、このフィールドは値0に設定されねばならない。再生が許可されているIGストリームが立体視IGストリームである場合、このフィールドは、値1に設定されねばならない。
『左目ストリームエントリー』は、左目用IGストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、左目用IGストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおける左目用IGストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。
『右目ストリームエントリー』は、右目用IGストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、右目用IGストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおける右目用IGストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。拡張ストリーム選択テーブルのストリーム登録情報におけるstream_entry_for_depentdent_viewによって参照されているストリームファイルが、基本ストリーム選択テーブルのストリームエントリーによって参照されているストリームファイルとは異なる場合、右目用IGストリームを格納しているストリームファイルを改めて読み出さねばならない。
『共通ストリーム属性』は、左目用IGストリーム及び右目IGストリームの言語属性を含む。
『立体視IGオフセットシーケンスレファレンス情報』は、立体視タイプのIGストリームのためのオフセットシーケンスIDのレファレンスであり、ディペンデントビュービデオストリームのオフセットメタデータにおけるオフセットシーケンスを指示する。再生装置は、このフィールドによって提供されたオフセットを立体視タイプのIGプレーンに適用せねばならない。
このフィールドが不定値(FF)である場合、再生装置はIGプレーンに、このオフセットを適用しない。
PG_テキスト字幕ストリーム用のオフセットシーケンスのレファレンス情報及びIGストリーム用のオフセットシーケンスのレファレンス情報は、ストリーム番号に対応付けて、ストリーム登録情報に記載されているため、装置状態の変化時やストリーム変更要求の発生時にストリーム選択プロシージャが実行され、装置側の言語設定に応じたストリーム番号がストリーム番号レジスタに設定された場合、その新たなストリーム番号に対応したレファレンスによって指示されるオフセットシーケンスが、ビデオデコーダからシフト部に供給されることになる。こうすることで、再生装置における言語設定に応じた、最適なオフセットシーケンスがシフト部に供給されるので、1plane+Offsetモードにおけるグラフィクスの奥行きを、再生装置の言語設定に応じた最適なものにすることができる。
拡張ストリーム選択テーブルにおける制限について説明する。
立体視ディペンデントビューブロックにおけるストリームエントリーは、プレイリストにおいて変化してはならない。
立体視ディペンデントビューブロックにおけるストリームエントリーのタイプがサブパスによって使用されるESタイプ(ストリームタイプ=2)であれば、サブパスIDレファレンスと、サブクリップエントリーIDレファレンス(ref_to_subclip_entry_id)とはプレイリストにおいて変化しない。
ストリームエントリー、ベースビューのためのストリームエントリー、ディペンデントビューのためのストリームエントリーのタイプとして許されるESのタイプは、プレイアイテムによって使用されるAVクリップ内のES (ストリームタイプ「=1」)、サブパスによって使用されるAVクリップ内のES(ストリームタイプ=2)の2つタイプのみである。
立体視ディペンデントビューブロックにおけるストリーム属性のストリーム符号化方式は、「0x20」に設定される。
図10は、基本ストリーム選択テーブル、拡張ストリーム選択テーブルによりメインTS、サブTSからどのようなESが多重分離されるかを示す。
本図の真ん中には、多重分離部を示し、その上側には基本ストリーム選択テーブルと、拡張ストリーム選択テーブルとの組みを示す。左側にはメインTS、サブTS、右側には、多重分離されるベースビュービデオストリーム、ディペンデントビュービデオストリーム、左目PGストリーム、右目PGストリーム、左目用IGストリーム、右目用IGストリーム、プライマリオーディオストリームを示す。
図11は、2D出力モード、3D出力モードにおけるストリーム番号の割り当て変化を示す。
縦欄は、プライマリビデオストリーム#1というストリーム番号、プライマリオーディオストリーム#1、#2というストリーム番号、PG_テキスト字幕ストリーム#1、#2、#3というストリーム番号、IGストリーム#1,#2というストリーム番号を示している。
左側の破線枠にのみ囲まれるESは、2D出力モードにおいてのみ、多重分離の対象になるESであり、ストリーム選択テーブル(STN_table)によって再生が許可されているものを示す。
右側の破線枠にのみ囲まれるESは、3D出力モードにおいて多重分離の対象になるESであり、拡張ストリーム選択テーブル(STN_table_SS)によって再生が許可されているものを示す。
左側及び右側の破線枠の双方に囲まれるESは、2D出力モード及び3D出力モードにおいて多重分離の対象になるESを示す。
ビデオストリーム#1のストリーム番号だけに着目すると、MPEG4-MVCベースビュービデオストリームは、左右両方の破線枠に囲まれるので、2D出力モード及び3D出力モードの双方で再生対象になっていることがわかる。しかし、MPEG4-MVCディペンデントビュービデオストリームは、右側の破線枠のみに囲まれているので、3D出力モードでのみ再生されることがわかる。
プライマリオーディオストリーム#1、#2のストリーム番号に着目すると、オーディオストリームは、左右両方の破線枠に囲まれるので、2D出力モード及び3D出力モードの双方で再生対象になっていることがわかる。
PG_テキスト字幕ストリームに着目すると、PGストリーム#1、PGストリーム#2は2DPGストリームであり、左右の破線枠によって囲まれている。これは、PGストリーム#1、PGストリーム#2が2D出力モード、3D出力モードの双方で再生対象になっていることがわかる。一方、左目PGストリーム、右目PGストリームは右側の破線枠のみに囲まれているので、3D出力モードでのみ再生されることがわかる。
また、IGストリームに着目すると、IGストリーム#1、IGストリーム#2は2DIGストリームであり、左右の破線枠によって囲まれている。これは、IGストリーム#1、IGストリーム#2が2D出力モード及び3D出力モードで再生対象になっていることがわかる。一方、左目IGストリーム、右目IGストリームは右側の破線枠のみに囲まれているので、3D出力モードでのみ再生されることがわかる。
以上より、3D出力モードにおいてビデオストリームというストリーム種別では、ディペンデントビュービデオストリームが再生対象として加わることがわかる。
また3D出力モードにおいてPGストリームというストリーム種別では、再生対象が、左目PGストリーム及び右目PGストリームが追加されており、3D出力モードにおいてIGストリームというストリーム種別では左目IGストリーム及び右目IGストリームが追加されていることがわかる。左目PGストリーム及び右目PGストリームが、再生対象として加えられているのは、3D出力モードにおいて、左目PGストリーム及び右目PGストリームを用いて立体視再生を実現するためである。左目IGストリーム及び右目IGストリームが、再生対象として加えられているのは、3D出力モードにおいて、左目IGストリーム及び右目IGストリームを用いて立体視再生を実現するためである。
以上が記録媒体についての説明である。続いて、再生装置の詳細について説明する。
図12は、再生装置の内部構成を示す。本図に示すように再生装置は、読出部201、メモリ202、レジスタセット203、デコーダ204、多重分離部205、プレーンメモリセット206、シフト部207、レイヤ合成部208、送受信部209、再生制御部210から構成される。本図の内部構成は、課題解決手段を具備した再生装置を実施するための必要最低限の構成要素を記述したに過ぎない。より詳細な内部構成については、後段の実施形態に説明の場を譲る。
読出部201は、記録媒体からインデックステーブル、プログラムファイル、プレイリスト情報ファイル、ストリーム情報ファイル、ストリームファイルを読み出す。読出部201は、立体視インターリーブドストリームファイルの読み出しにあたって、3Dストリーム情報ファイルにおけるクリップベース情報内のエクステントスタートポイント情報と、クリップディペンデント情報内のエクステントスタートポイント情報とを用いて、立体視インターリーブドストリームファイルを、メインTSに対応するATCシーケンス1と、サブTSに対応するATCシーケンス2とに分割して、ATCシーケンス1と、ATCシーケンス2とを別々のリードバッファに格納するという処理を行う。この分割は、クリップディペンデント情報におけるエクステントスタートポイント情報に示されているソースパケット番号のパケット数だけ、立体視インターリーブドストリームファイルからソースパケットを対取り出してATCシーケンス1に追加するという処理と、クリップベース情報におけるエクステントスタートポイント情報に示されているソースパケット番号のパケット数だけ、立体視インターリーブドストリームファイルからソースパケットを取り出してATCシーケンス2に追加するという処理とを繰り返すことでなされる。
メモリ202は、プレイリスト情報に含まれる基本ストリーム選択テーブルと、拡張ストリーム選択テーブルとを結合することで得られた結合ストリーム登録列を格納する。
レジスタセット203は、再生装置が動作を行うための様々なレジスタから構成される。
ストリーム種別毎のデコーダ204は、ビデオデコーダ211、PGデコーダ212、テキスト字幕デコーダ213、IGデコーダ214、オーディオデコーダから構成される。
多重分離部205は、ソースパケットをTSパケットに変換するソースデパケッタイザ、パケットフィルタリングを実行するPIDフィルタを備え、3Dプレイリスト情報の基本ストリーム選択テーブルのストリームエントリーに記述されているパケット識別子を有するソースパケットを、TSパケットに変換した上でデコーダに出力し、3Dプレイリスト情報の立体視ストリーム選択テーブルのストリームエントリーに記述されているパケット識別子を有するソースパケットを、TSパケットに変換した上でデコーダに出力する。基本ストリーム選択テーブルの複数のエントリー及び拡張ストリーム選択テーブルの複数のエントリーのうち、どれのパケット識別子をもちいるかは、プレーヤ状態レジスタのうち、ストリーム番号レジスタの設定に従う。ストリーム番号レジスタとは、カレントのストリーム番号を格納しているレジスタである。
プレーンメモリセット206は、複数のプレーンメモリから構成される。
これらのプレーンメモリは、レイヤモデルを構成しており、個々のプレーンメモリの格納内容は、レイヤ合成に供される。プレーンメモリセットは、左目用プレーンメモリ、右目用プレーンメモリを含み、個々のアクセスユニットのベースビューのビューコンポーネントをデコードすることで得られた非圧縮のピクチャデータ、ディペンデントビューのビューコンポーネントをデコードすることで得られた非圧縮のピクチャデータが、これら左目用プレーンメモリ、右目用プレーンメモリに書き込まれる。この書き込みは、個々のアクセスユニットのプレゼンテーションタイムスタンプに示されている再生開始時刻の到来時になされる。
左目用のプレーンメモリ、右目用プレーンメモリのうち、どちらにデコード後のピクチャデータを書き込むかは、プレイリスト情報におけるベースビューインディケータに従う。ベースビューインディケータが、ベースビュービデオストリームを「左目用」として指定していれば、ベースビュービデオストリームのビューコンポーネントとなるピクチャデータが左目用プレーンメモリに書き込まれ、ディペンデントビュービデオストリームのビューコンポーネントとなるピクチャデータが右目用のプレーンメモリに書き込まれる。
ベースビューインディケータが、ベースビュービデオストリームを「右目用」として指定していれば、ベースビュービデオストリームのビューコンポーネントであるピクチャデータが右目用のプレーンメモリに書き込まれ、ディペンデントビュービデオストリームのビューコンポーネントであるピクチャデータが左目用のプレーンメモリに書き込まれる。そして、これらのビューコンポーネントは、順次表示装置に出力される。具体的にいうと、一個のフレーム期間において、左目用プレーンメモリのピクチャデータと、右目用プレーンメモリのピクチャデータとを同時に出力する。
シフト部207は、画素の座標のシフトを実行する。
レイヤ合成部208は、複数のプレーンメモリにおけるレイヤ合成を行う。
送受信部209は、ホームシアターシステムにおける他の機器とインターフェイスを介して接続された際、ネゴシエーションフェーズを経て、データ伝送フェーズに移行し、データ伝送を行う。
このネゴシエーションフェーズは、相手側機器のケーパビリティ(デコード能力、再生能力、表示周波数を含む)を把握して、プレーヤ設定レジスタに設定しておき、以降の伝送のための伝送方式を定めるものであり、互いの装置の正当性を確認し合う相互認証フェーズを含む。このネゴシエーションフェーズを経て、レイヤ合成がなされたピクチャデータにおける一ライン分の非圧縮・平文形式の画素データを、表示装置における水平同期期間に従い表示装置に高い転送レートで転送する。一方、表示装置における水平帰線期間、及び、垂直帰線期間において、再生装置と接続された他の装置(表示装置のみならずアンプ、スピーカを含む)に、非圧縮・平文形式のオーディオデータを転送する。こうすることで、表示装置、アンプ、スピーカといった機器は、非圧縮・平文形式のピクチャデータ、非圧縮・平文形式のオーディオデータを受け取ることができ、再生出力を実現することができる。また、相手側機器にデコード能力が存在する場合、ビデオストリーム、オーディオストリームのパススルー伝送が可能になる。パススルー伝送では、ビデオストリーム、オーディオストリームを圧縮・暗号化形式のまま伝送することができる。
再生制御部210は、ビデオストリームの時間軸における任意の時点からのランダムアクセスを実行する。具体的には、ビデオストリームの時間軸における任意の時点からの再生が命じられた場合、3Dストリーム情報ファイルにおける基本エントリーマップと、拡張エントリーマップとを用いて、その任意の時点に対応するアクセスユニットのソースパケット番号をサーチする。かかるアクセスユニットは、ベースビュービデオストリームのビューコンポーネント、及び、ディペンデントビュービデオストリームのビューコンポーネントの組みを含むものであり、上記サーチによって、当該アクセスユニットについてのアクセスユニットデリミターを格納したソースパケットのソースパケット番号が特定される。かかるソースパケット番号からの読み出し、及び、デコードを実行することでランダムアクセスがなされる。3Dプレイリスト再生にあたっては、3Dプレイリスト情報のメインパス情報にて規定されているインタイム、アウトタイムと、サブパス情報にて規定されているインタイム、アウトタイムとを用いて、メインTS、サブTSのそれぞれに対してランダムアクセスを実行することで、プレイリスト再生を開始する。
ビデオデコーダ211は、デコーダセット204におけるデコーダのうち、代表的なデコーダであり、ディペンデントビュービデオストリームを構成するビューコンポーネントをプリロードした上、ベースビュービデオストリーム内のクローズGOPの先頭に位置するデコーダリフレッシュを意図したピクチャタイプ(IDRタイプ)のビューコンポーネントをデコードする。このデコードにあたって、コーデッドデータバッファ、デコードデータバッファを全クリアする。こうしてIDRタイプのビューコンポーネントをデコードした後、このビューコンポーネントとの相関性に基づき圧縮符号化されているベースビュービデオストリームの後続のビューコンポーネント、及び、ディペンデントビュービデオストリームのビューコンポーネントをデコードする。デコードによって当該ビューコンポーネントについての非圧縮のピクチャデータが得られれば、デコードデータバッファに格納し、かかるピクチャデータを参照ピクチャとする。
この参照ピクチャを用いて、ベースビュービデオストリームの後続のビューコンポーネント、及び、ディペンデントビュービデオストリームのビューコンポーネントについて、動き補償を行う。動き補償によって、ベースビュービデオストリームの後続のビューコンポーネント、及び、ディペンデントビュービデオストリームのビューコンポーネントについて、非圧縮のピクチャデータが得られれば、これらをデコードデータバッファに格納し参照ピクチャとする。以上のデコードは、個々のアクセスユニットのデコードタイムスタンプに示されているデコード開始時刻が到来時になされる。
以下、PGデコーダ212、テキスト字幕デコーダ213、IGデコーダ214と、これらのデコーダのデコードの対象となるストリームの内部構成について説明する。
PGストリームにおけるデコーダの構成は、1plane+Offset方式を採用する場合、1デコーダ+1プレーン構成になる。3D-LR方式を採用する場合、2デコーダ+2プレーン構成になる。
同じく、IGストリームにおけるデコーダ構成は、3D-LR方式を採用する場合、2デコーダ+2プレーン構成になる。一方、1plane+Offset方式を採用する場合、1デコーダ+1プレーン構成になる。
テキスト字幕ストリームにおけるデコーダ構成では3D-LR方式が存在せず、1plane+Offsetモードである場合、1デコーダ+1プレーン構成になる。
始めに、PGストリームの内部構成と、PGストリームをデコードするPGデコーダの内部構成とについて説明する。
左目用PGストリーム、右目用PGストリームは、何れも複数のディスプレイセットを含む。ディスプレイセットとは、一個の画面表示を構成する機能セグメントの集まりのことである。機能セグメントは、約2KバイトのPESパケットのペイロードに格納されてデコーダに供給され、DTS、PTSを用いて、再生制御がなされる処理単位のことである。
ディスプレイセットには、以下の類型がある。
A.エポックスタートのディスプレイセット
エポックスタートのディスプレイセットとは、グラフィクスデコーダにおけるコンポジションバッファ、コードデータバッファ、グラフィクスプレーンをリセットして、メモリ管理を開始させる機能セグメントの集まりであり、画面構成に必要な機能セグメントを全て含んでいる。
B.ノーマルケースのディスプレイセット
ノーマルケースのディスプレイセットとは、グラフィクスデコーダにおけるコンポジションバッファ、コードデータバッファ、グラフィクスプレーンのメモリ管理を継続したまま画面構成を行うディスプレイセットであり、先行するディスプレイセットからの差分となる機能セグメントを含んでいる。
C.アクジッションポイントのディスプレイセット
アクジッションポイントのディスプレイセットとは、画面構成に必要な機能セグメントを全て含むディスプレイセットであるが、グラフィクスデコーダにおけるコンポジションバッファ、コードデータバッファ、グラフィクスプレーンのメモリ管理をリセットさせないディスプレイセットである。このアクジッションポイントのディスプレイセットには、前のディスプレイセットとは異なる内容の機能セグメントが存在してもよい。
D.エポックコンティニューのディスプレイセット
エポックコンティニューのディスプレイセットとは、PGストリームの再生を許可しているプレイアイテムと、その直前のプレイアイテムとの接続形態が、クリーンブレークを伴うシームレス接続(CC=5)である場合、再生装置におけるコンポジションバッファ、コードデータバッファ、オブジェクトバッファ、グラフィクスプレーンにおけるメモリ管理を、そのまま継続させる旨を示す。この際、オブジェクトバッファ、グラフィクスプレーン上に得られたグラフィクスオブジェクトは、廃棄されることなく、オブジェクトバッファ、グラフィクスプレーン上で存続する。
左目用と、右目用とでは、STCシーケンスにおける再生時間軸の同一時点に、これらのディスプレイセットの始点・終点が割り当てられている。そして、左目用PGストリームと、右目用PGストリームとでは、時間軸上の同じ時点に存在するディスプレイセットの類型は、同一になっている。つまり左目用側のディスプレイセットがエポックスタートのディスプレイセットであるなら、STCシーケンスの時間軸において同じ時点の右目用側のディスプレイセットは、エポックスタートのディスプレイセットになる。
また、左目用側のディスプレイセットがアクジッションポイントのディスプレイセットであるなら、STCシーケンスの時間軸において同じ時点の右目用側のアクジッションポイントのディスプレイセットも、エポックスタートのディスプレイセットになる。
各ディスプレイセットは、複数の機能セグメントを含む。この複数の機能セグメントには以下のものがある。
(1)オブジェクト定義セグメント
オブジェクト定義セグメントは、グラフィクスオブジェクトを定義する機能セグメントである。グラフィクス定義セグメントは、コード値と、そのコード値のランレングスとを用いることで、グラフィクスオブジェクトを定義している。
(2)パレット定義セグメント
パレット定義セグメントは、各コード値と、輝度、赤色差・青色差との対応関係を示したパレットデータを含む。左目用グラフィクスストリームのパレット定義セグメントと、右目用グラフィクスストリームのパレット定義セグメントとでは、コード値と、輝度及び色差との対応関係が同一の内容に設定されている。
(3)ウィンドゥ定義セグメント
ウィンドゥ定義セグメントは、非圧縮のグラフィクスオブジェクトを画面上に展開するためのプレーンメモリにおいて、ウィンドゥと呼ばれる矩形枠を定義する機能セグメントである。グラフィクスオブジェクトの描画は、このプレーンメモリの内部で制限されており、このウィンドゥの外部では、グラフィクスオブジェクトの描画は行えない。
プレーンメモリの一部をグラフィクスの表示のためのウィンドゥとして指定するので、再生装置は、プレーン全体のグラフィクス描画を行う必要はない。ある限られた大きさのウィンドゥに対してのみ、グラフィクス描画を行えばよい。表示用の平面のうち、ウィンドゥ以外の部分の描画を省くことができるので、再生装置側のソフトウェアの負担は遥かに軽くなる。
(4)画面構成セグメント
画面構成セグメントは、グラフィクスオブジェクトを用いた画面構成を規定する機能セグメントであり、グラフィクスデコーダにおけるコンポジションコントローラに対する複数の制御項目を含む。画面構成セグメントは、グラフィクスストリームにおけるディスプレイセットの詳細を規定すると共に、グラフィクスオブジェクトを用いた画面構成を規定する機能セグメントである。かかる画面構成には、Cut-In/Out、Fade-In/Out、Color Change、Scroll、Wipe-In/Outといったものがあり、画面構成セグメントによる画面構成を伴うことにより、ある字幕を徐々に消去しつつ、次の字幕を表示させるという表示効果が実現可能になる。
(5)エンドセグメント
1つのディスプレイセットに属する複数の機能セグメントの最後尾に位置する機能セグメントである。再生装置は、画面構成セグメントからこのエンドセグメントまでが、1つのディスプレイセットを構成する機能セグメントであるとして解釈する。
PGストリームにおいてディスプレイセットの開始時点は、画面構成セグメントを格納したPESパケットのDTSによって特定され、ディスプレイセットの終了時点は、画面構成セグメントを格納したPESパケットのPTSによって特定される。
左目用グラフィクスストリーム及び右目用グラフィクスストリームは、パケッタイズドエレメンタリストリーム(PES)であり、画面構成セグメントは、PESパケットに格納され、画面構成セグメントを格納したPESパケットのPTSは、画面構成セグメントが属するディスプレイセットによる表示を何時実行するかを示す。
画面構成セグメントを格納したPESパケットのPTSの値は、左目用ビデオストリームと、右目用ビデオストリームとで同一の内容になっている。
・PGデコーダのデコーダモデル
PGデコーダは、PGストリームから読み出される機能セグメントを格納する「コーデッドデータバッファ」と、画面構成セグメントをデコードしてグラフィクスオブジェクトを得る「ストリームグラフィクスプロセッサ」と、デコードにより得られたグラフィクスオブジェクトを格納する「オブジェクトバッファ」と、画面構成セグメントを格納する「コンポジションバッファ」と、コンポジションバッファに格納された画面構成セグメントを解読して、これらの画面構成セグメントにおける制御項目に基づき、オブジェクトバッファに得られたグラフィクスオブジェクトを用いてグラフィクスプレーン上で画面構成を行う「コンポジションコントローラ」とを含む。
このグラフィクスプレーンの前段には、機能セグメントを構成するTSパケットの入力速度を調整するためのトランスポートバッファが存在する。
グラフィクスデコーダの後段には、グラフィクスプレーンと、パレット定義セグメントに基づいて、グラフィクスプレーンに格納されたグラフィクスオブジェクトを構成する画素コードを、輝度・色差に変換するCLUT部と、プレーンシフトのためのシフト部とが存在する。
PGストリームにおけるパイプラインは、グラフィクスデコーダあるディスプレイセットに属するオブジェクト定義セグメントをデコードしてグラフィクスオブジェクトをオブジェクトバッファに書き込む処理と、先行するディスプレイセットに属するオブジェクト定義セグメントをデコードすることにより得られたグラフィクスオブジェクトをオブジェクトバッファからプレーンメモリに書き込む処理とを同時に実行することでなされる。
図13は、PGデコーダの内部構成を示す。同図(a)は、1plane+Offsetモード方式で表示するためのデコーダモデルである。同図(b)は、LR方式のデータを表示する場合のデコーダモデルである。
本図において、PGデコーダの本体にあたる部分は黒枠で囲こみ、PGデコーダ後段にあたる部分は一点鎖線で囲っている。
同図(a)では、PGデコーダは1デコーダ構成になっており、グラフィクスプレーンも1プレーン構成になっている。しかしグラフィクスプレーンの出力が、左目用、右目用のそれぞれに別れていて、個々の左目用出力、右目用出力に対して、シフト部が付加される。
同図(b)では、トランスポートバッファ−PGデコーダ−グラフィクスプレーン−CLUT部が2組み存在していて、左目用ストリーム、右目用ストリームをそれぞれ独立に処理することができる。
オフセットシーケンスは右目用ビデオストリームに含まれているので、プレーンオフセット形式では、PGデコーダは1デコーダ構成になり、この1つのPGデコーダの出力が、左目用と右目用とに切り替えられる。
PGデコーダの2D/3D切り替え時の動作は以下の通りである。
1.1plane+Offsetモードと2Dモードとの相互切り替え時は、シームレスに切り替えられる。これは、Offsetを無効化することでなされる。
2.3D-LRモードと、2Dモードとでは、PID切り替えが伴うため、一端字幕が消える。これはストリーム切り替えと同じである。
以上がPGデコーダについての説明である。続いて、テキスト字幕デコーダの詳細について説明する。
・テキスト字幕デコーダのデコーダモデル
テキスト字幕ストリームは、複数の字幕記述データから構成される。
テキスト字幕デコーダは、字幕記述データから、テキストコードと、制御情報とを分離する「字幕プロセッサ」と、字幕記述データから分離されたテキストコードを格納する「管理情報バッファ」と、フォントデータを用いて、管理情報バッファ内のテキストコードをビットマップに展開する「テキストレンダー」と、展開により得られたビットマップを格納する「オブジェクトバッファ」と、字幕記述データから分離された制御情報を用いて、時間軸に沿ったテキスト字幕再生の制御を実行する「描画制御部」とを含む。
テキスト字幕デコーダの前段には、フォントデータのプリロードを行う「フォントプリロードバッファ」、テキスト字幕ストリームを構成するTSパケットの入力速度を調整する「TSバッファ」、プレイアイテムの再生に先立ち、テキスト字幕ストリームをプリロードしておくための「字幕プリロードバッファ」が存在する。
グラフィクスデコーダの後段には、「グラフィクスプレーン」と、パレット定義セグメントに基づいて、グラフィクスプレーンに格納されたグラフィクスオブジェクトを構成する画素コードを、輝度・色差に変換する「CLUT部」と、プレーンシフトのためのシフト部が存在する。
図14は、テキスト字幕デコーダの内部構成を示す。同図(a)は、1plane+Offsetモードにおけるテキスト字幕デコーダのデコーダモデルを示し、同図(b)は、3D-LR方式におけるテキスト字幕デコーダのデコーダモデルを示す。本図において、テキスト字幕デコーダ本体にあたる部分は黒枠で囲こみ、テキスト字幕デコーダ後段にあたる部分は一点鎖線で囲んでいる。テキスト字幕デコーダ前段にあたる部分は、破線枠で囲んでいる。
同図(a)では、グラフィクスプレーンの出力が、左目用、右目用のそれぞれに別れていて、個々の左目用出力、右目用出力に対して、シフト部が付加される。
同図(b)では、左目用のグラフィクスプレーンと、右目用のグラフィクスプレーンとが存在していて、テキスト字幕デコーダによって展開されたビットマップを、これらのそれぞれのグラフィクスプレーンに書き込む。
テキスト字幕ストリームは、PGストリームと異なり、グラフィクスデータをビットマップとして送るのではなく、フォントデータと文字コードを送ることにより、レンダリングエンジンで字幕を生成するから、字幕の立体視は、1plane+Offsetモードによって実現する。
以上がテキスト字幕ストリーム及びテキスト字幕デコーダについての説明である。続いて、IGストリームの内部構成と、IGデコーダの構成とについて説明する。
・IGストリーム
左目用IGストリーム、右目用IGストリームは何れも複数のディスプレイセットを含み、各ディスプレイセットは、複数の機能セグメントを含む。ディスプレイセットには、PGストリームと同様、エポックスタートのディスプレイセット、ノーマルケースのディスプレイセット、アクジッションポイントのディスプレイセット、エポックコンティニューのディスプレイセットが存在する
これらのディスプレイセットに属する複数の機能セグメントには以下の種類がある。
(1)オブジェクト定義セグメント
このオブジェクト定義セグメントは、PGストリームのものと同じである但しIGストリームのグラフィクスオブジェクトは、ページのインエフェクト、アウトエフェクト、ボタン部材のノーマル状態、セレクテッド状態、アクティブ状態を定義するものである。オブジェクト定義セグメントは、ボタン部材の同じ状態を定義するもの同士、同じエフェクト映像を構成するもの同士、グループ化されている。同じ状態を定義するオブジェクト定義セグメントを寄せ集めたグループをグラフィクスデータ集合という。
(2)パレット定義セグメント
パレット定義セグメントは、PGストリームのものと同じである。
(3)対話制御セグメント
対話制御セグメントは、複数のページ情報を含み、複数のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、エフェクトシーケンスと、複数のボタン情報と、パレット識別子の参照値とを含む。
ボタン情報は、グラフィクスオブジェクトをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報である。
エフェクトシーケンスは、グラフィクスオブジェクトを用いて、ページ情報に対応するページの表示に先立ち再生されるインエフェクト、又は、当該ページの表示後に再生されるアウトエフェクトを構成するものであり、エフェクト情報を含む。
エフェクト情報は、インエフェクト又はアウトエフェクトを再生するにあたっての個々の画面構成を規定する情報であり、グラフィクスプレーン上のウィンドゥ定義セグメントで定義されたウィンドゥ(部分領域)においてどのような画面構成を実行すべきかを規定する画面構成オブジェクトと、同領域における次の画面構成との時間間隔を示すエフェクト期間情報とを含む。
エフェクトシーケンスにおける画面構成オブジェクトは、PGストリームの画面構成セグメントと同じような制御内容を規定する。オブジェクト定義セグメントのうち、前記インエフェクトに用いられるグラフィクスオブジェクトを定義するものは、グラフィクスデータ列において、ボタン部材に用いられるグラフィクスオブジェクトを定義するオブジェクト定義セグメントより前に配置されている。
ページ情報における各ボタン情報は、グラフィクスオブジェクトをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報である。前記ボタン情報はセットボタンページコマンドを含み、セットボタンページコマンドは、対応するボタン部材がアクティブ状態になった際、ファーストページ以外の他のページを、カレントページとして設定する処理を再生装置に行わせるコマンドである。
IGストリームの再生時において、プレーンシフトにおけるオフセットをページ毎に変更させたい場合は、ボタン情報にオフセットを変更するナビゲーションコマンド組込んでおき、該当するボタン情報において、ナビゲーションコマンドのオートアクティベートを規定しておく。これにより、IGストリームのストリーム登録情報に規定されているオフセットの値や方向を自動的に変更できるようにする。
(4)エンドセグメント
1つのディスプレイセットに属する複数の機能セグメントの最後尾に位置する機能セグメントである。対話制御セグメントからこのエンドセグメントまでが、1つのディスプレイセットを構成する機能セグメントであるとして解釈される。
左目用グラフィクスストリームと、右目用グラフィクスストリームとにおいて、同一となる対話制御セグメントの制御項目には、ボタン近接情報、セレクションタイムアウトタイムスタンプ、ユーザタイムアウトディレーション、コンポジションタイムアウト情報がある。
1.ボタン近接情報
ボタン近接情報は、あるボタンがセレクテッド状態になっていて、上下左右方向の何れかを指示するキー操作があった場合、どのボタンをセレクテッド状態にすべきかを指定する情報である。
2.セレクションタイムアウトタイムスタンプ
セレクションタイムアウトタイムスタンプは、カレントページにおけるボタン部材を自動的にアクティベートして、セットボタンページコマンドを再生装置に実行させるためのタイムアウト時間を示す。
3.ユーザタイムアウトディレーション
ユーザタイムアウトディレーションは、カレントページをファーストページに戻して、ファーストページのみが表示されている状態にするためのタイムアウト時間を示す。
4.コンポジションタイムアウト情報
コンポジションタイムアウト情報は、対話制御セグメントによる対話的な画面表示を終了させる時間を示す。IGストリームにおいてディスプレイセットの開始時点は、対話制御セグメントを格納したPESパケットのDTSによって特定され、ディスプレイセットの終了時点は、対話制御セグメントのコンポジションタイムアウト時刻によって特定される。左目用、右目用では、これらのDTSと、コンポジションタイムアウト時刻とは同一時点に設定される。
・IGデコーダのデコーダモデル
IGデコーダは、IGストリームから読み出されう機能セグメントを格納する「コーデッドデータバッファ」と、画面構成セグメントをデコードしてグラフィクスオブジェクトを得る「ストリームグラフィクスプロセッサ」と、デコードにより得られたグラフィクスオブジェクトを格納する「オブジェクトバッファ」と、画面構成セグメントを格納する「コンポジションバッファ」と、コンポジションバッファに格納された画面構成セグメントを解読して、これらの画面構成セグメントにおける制御項目に基づき、オブジェクトバッファに得られたグラフィクスオブジェクトを用いてグラフィクスプレーン上で画面構成を行う「コンポジションコントローラ」とを含む。
このグラフィクスプレーンの前段には、機能セグメントを構成するTSパケットの入力速度を調整するための「トランスポートバッファ」が存在する。
グラフィクスデコーダの後段には、「グラフィクスプレーン」と、パレット定義セグメントに基づいて、グラフィクスプレーンに格納されたグラフィクスオブジェクトを構成する画素コードを、輝度・色差に変換する「CLUT部」と、プレーンシフトのための「シフト部」とが存在する。
図15は、IGデコーダのデコーダモデルを示す。本図では、IGデコーダ本体にあたる部分は黒枠で囲こみ、グラフィクスデコーダ後段にあたる部分は一点鎖線で囲んでいる。IGデコーダ前段にあたる部分は、破線枠で囲んでいる。
図15(a)は、2D形式のIGストリームを1plane+Offsetモード方式によってLR形式で表示するためのデコーダモデルである。同図(b)は、IGストリームのデコーダモデルであるが、LR方式のデータを表示する場合のデコーダモデルである。
これらのデコーダでは、メニューグラフィクスの深度情報をプログラムから制御するために、システムパラメータの値をオフセットに反映するための回路を含んでいる。
同図(b)は、2デコーダモデルであり、コマンドによりoffset値の変更が可能になる。よってメニューの深度情報をコマンドで変えることができる。Offset値は左右異なる値も与えられる。一方、Depth方式の場合、Offsetは無効になる。
グラフィクスデコーダにおけるコンポジションコントローラは、対話画面に存在するボタン部材のうち、カレントボタンになるものを、セレクテッド状態に対応するグラフィクスデータ集合のグラフィクスデータを用いて表示し、それ以外のボタン部材を、ノーマル状態に対応するグラフィクスデータ集合を用いて表示することで、対話画面の初期表示を実現する。
上下左右の4方向の何れかを指定する旨のユーザ操作があった場合、カレントボタンの周辺に位置するノーマル状態のボタン部材のうち、ユーザ操作により指定された方向に存在するものの番号をボタン番号レジスタに書き込み、当該書き込みによって、新たにカレントボタンになったボタン部材をノーマル状態からセレクテッド状態に変化させる。
対話画面においてセレクテッド状態になっているボタン部材をアクティブ状態に変化させる旨のユーザ操作があった場合、当該アクティブ状態を構成するグラフィクスデータをグラフィクスデータ集合から取り出して表示に供することで対話画面の更新を実現する。
これらの対話画面の更新は、左目用、右目用で共通に実行にする必要があるので、2デコーダモデルにおいて、コンポジションコントローラを、左目用のグラフィクスデコーダと、右目用のグラフィクスデコーダとで共通化することが望ましい。
この場合、立体視IGストリームにおける左目用・右目用のナビゲーションコマンドは同一化し、3D用と2D用のグラフィクスオブジェクトのボタン構成を同一にすることで、相互切り替えを実現する。
2DIGストリームと、立体視IGストリームとでは、ナビゲーションコマンドおよびボタン情報の属性・数などが同じであれば、グラフィクスオブジェクトの表示のみの切り替えが可能となる。3D-LRモードからL画像のみへの切り替えでは、再ロードなしに切り替え可能だが、表示位置が偏る可能性がある。どちらを採用するかのタイトル制作者の意図をフラグに示させておき、このフラグに基づき再生装置が切り替えを行うことが望ましい。
以下に、モード切り替え時における留意事項をまとめた。
・1plane+Offsetモードと、2Dモードとの切り替えにおいては再ロードは発生しない。これはIGストリームのロードは必要ではなく、Offsetの無効化のみとなるからである。
・3D-LRモードと、2Dモードとの切り替えにおいて、ストリームが異なるため、再ロードが発生する。
以上がIGストリーム及びIGデコーダについての説明である。続いて、プレーンメモリの詳細について説明する。
1plane+Offsetモード方式におけるプレーンメモリ構成について説明する。
プレーンメモリのレイヤ合成は、プレーンメモリのレイヤモデルにおいて、階層間のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける階層間の全ての組合せに対して実行することでなされる。合成部208によるレイヤ合成は、プレーンメモリのレイヤモデルにおいて、2つの階層のプレーンメモリに格納されている画素データの画素値を重畳させるという処理を、レイヤモデルにおける2つの階層の全ての組合せに対して実行することでなされる。
階層間の重畳は、ある階層に位置するプレーンメモリのライン単位の画素値に透過率αを重みとして乗じるとともに、その下位階層に位置するプレーンメモリのライン単位の画素値に(1−透過率α)という重みを乗じて これら輝度の重み付けがなされた画素値同士を加算し、加算結果を、その階層におけるライン単位の画素の画素値とする処理である。この階層間の重畳を、レイヤモデルの隣接する2つ階層に位置するライン単位の画素同士で繰り返し実行することにより、上記レイヤ合成は実現される。
プレーンメモリ後段は、上述したようなCLUT部、シフト部の他、レイヤ合成を実現するため、個々の画素値に等価率を乗算するための乗算部、画素同士の加算を行うための加算部を含む。
図16は、デコーダモデルの出力を合成し、3D-LR方式で出力するための回路構成を示す。ビデオプレーン、PGプレーン、IGプレーンのレイヤモデルは黒枠で囲こみ、プレーンメモリ後段にあたる部分は一点鎖線で囲んでいる。本図からも明らかなように、上述したようなレイヤモデルは、2組み存在していることがわかる。また、プレーンメモリ後段にあたる部位も、2組み存在していることがわかる。
レイヤモデル、プレーンメモリ後段が2組み存在することにより、3D-LR方式におけるプレーンメモリ構成は、ビデオプレーン、PGプレーン、IGプレーンのそれぞれが、左目用と、右目用とに別れていて、これらのプレーンメモリの出力をレイヤ合成を、左目用、右目用のそれぞれについて実行するようになっている。
図17は、これらのデコーダモデルの出力を合成し、1plane+Offsetモード方式で出力するための回路構成を示している。
左目ビデオプレーン、右目ビデオプレーン、PGプレーン、IGプレーンのレイヤモデルは黒枠で囲こみ、プレーンメモリ後段にあたる部分は一点鎖線で囲んでいる。本図からも明らかなように、上述したようなレイヤモデルは、1組みだけが存在していることがわかる。また、プレーンメモリ後段にあたる部位は、2組み存在している。
1plane+Offsetモード方式では、ビデオプレーンは、左目用のものと、右目用のものとが準備されている。PGプレーン、IGプレーンについては、左目用、右目用のそれぞれに別れておらず、左目用、右目用で共通の1枚のプレーンメモリのみが存在する。そして、これらの左目用出力、右目用出力のそれぞれに対して上述したようなレイヤ合成がなされるようになっている。
再生装置は、B−Dプレゼンテーションモード、1plane+Offsetモードの双方をサポートにする必要があるので、再生装置のハードウェア構成としては、基本的に2デコーダ+2プレーンの構成になっていて、1plane+Offsetモード、2D出力モードに再生装置が切り替った際、1デコーダ+1プレーンの組みのうち一方を無効化して、1デコーダ+1プレーン構成になる。
以上のデコーダモデルを1デコーダ構成にするか、2デコーダ構成にするか、プレーンモデルを1プレーン構成にするか、2プレーン構成にするかは再生装置を製造するマニファクチャが自由に定めることができる。無論、設計上は2デコーダ構成、2プレーン構成にしておいて高級機種として販売する場合は、立体視PGの再生能力有、立体視IGの再生能力有と設定し、廉価機種として販売する場合は、立体視PGの再生能力無、立体視IGの再生能力無と設定することで、ラインナップの充実を図ることができる。このような立体視PGの再生能力有無のコンフィグレーション、立体視IGの再生能力有無のコンフィグレーションは、レジスタセットに存在する。
以下、レジスタセットについて説明する。
レジスタセットは、複数のプレーヤ状態レジスタ、複数のプレーヤ設定レジスタから構成される。個々のプレーヤ状態レジスタ、プレーヤ設定レジスタは何れも語長が32ビットのレジスタであり、32ビット長のレジスタのそれぞれにはレジスタ番号が与えられ、このレジスタ番号を用いてアクセスすべきレジスタが特定される。
各レジスタの一語(32ビット)を構成する各ビットデータのビット位置は、b0〜b31と呼ばれる。最上位ビットはb31、最下位ビットはb0と呼ぶ。そして、32ビットのうち、bxビット目のビット位置からbyビット目のビット位置までのビット範囲は、[bx:by]という表記で表現される。
所定のレジスタ番号のプレーヤ設定レジスタ/プレーヤ状態レジスタに格納されている32ビット長のビット列であって、任意のビット範囲[bx:by]のものの値は、プログラムが動作を行うにあたっての動作システムの環境変数(システムパラメータ又はプレーヤ変数という)として扱われる。再生制御を行うプログラムは、システムプロパティやアプリケーションプログラミングインターフェイス(API)を通じて、システムパラメータを取得することができる。また、特に禁止されていない限り、これらのプレーヤ状態レジスタ、プレーヤ設定レジスタの値をプログラムは書き換えることができる。オブジェクト指向プログラミング言語ベースのプログラムについては、システムパラメータの取得や書き換えについて正当権限が与えられていることが要件になる。
プレーヤ状態レジスタは、再生装置のMPUが算術演算やビット演算を行う際、その被演算子となる数値を格納しておくためのハードウェア資源であり、光ディスクが装填された際に初期値が設定され、またカレントプレイアイテムの変更等、再生装置の状態が変化した際に、その格納値の有効性が判定されるレジスタである。この格納値としては、カレントのタイトル番号、カレントのプレイリスト番号、カレントのプレイアイテム番号、カレントのストリーム番号、カレントのチャプター番号等がある。光ディスクの装填時に初期値が格納されるので、この格納値は一時的なものであり、光ディスクがイジェクトされたり、また再生装置の電源が断たれれば、この格納値は有効性を失う。
プレーヤ設定レジスタは、電源対策が施されている点がプレーヤ状態レジスタとは異なる。電源対策が施されているので、再生装置の電源遮断時において、その格納値が不揮発性のメモリに退避され、再生装置の電源投入時において、その格納値が復帰される。再生装置の製造主体(マニファクチャ)が再生装置の出荷時に定めた再生装置の各種コンフィグレーションや、ユーザがセットアップ手順に従い設定した各種コンフィグレーション、そして、再生装置がTVシステムやステレオ、アンプ等のホームシアターシステムの機器と接続された際、接続相手となる機器とのネゴシエーションにより判明した相手側機器のケーパビリティがプレーヤ設定レジスタに設定される。
図18は、レジスタセット203の内部構成と、再生制御部とを描いた図である。
本図の左側にはレジスタセット203の内部構成を示している。右側には再生制御部の内部構成を示している。
それぞれのレジスタ番号が割り当てられたプレーヤ状態レジスタ、プレーヤ設定レジスタは、どのようなものであるかを示す。
PSR0は、IGストリームのためのストリーム番号レジスタであり、カレントのIGストリーム番号を格納する。
PSR2は、PGストリームのためのストリーム番号レジスタであり、カレントのPGストリーム番号を格納する。
PSR24は、「Player Capability for 3D」の設定である。これは、再生装置に立体視再生を実行する能力が存在するかどうかを示す。
一方、再生制御部は、レジスタセット203におけるPSR24と、メモリにおけるカレントプレイリスト情報のストリーム選択テーブルとを参照して、カレントプレイリストにおけるカレントPGストリーム番号、カレントIGストリーム番号を一意に定めるストリーム選択プロシージャが存在する。このストリーム選択プロシージャは、「Initialization」、「Procedure when playback condition changed」が存在する。
図19は、PSR24のビットアサインを示す。PSR24は、再生装置の3Dケーパビリティを表す。記録媒体におけるプログラムは、PSR24の値を変化させることはできない。
b0は、立体視1280×720 50pビデオ表示ケーパビリティを示す。立体視1280×720 50pビデオ表示ケーパビリティは、「0」に設定された際、1280×720/50Hzプログレッシブビデオを表示する処理能力を再生装置が有していない旨を示す。「1」に設定された際、1280×720/50Hzプログレッシブビデオを再生する再生能力を再生装置が有している旨を示す。
b2は、立体視PGケーパビリティを示す。立体視PGケーパビリティは、「0」に設定されることで立体視PGを再生する能力を再生装置が有していない旨を示す。「1」に設定されることで立体視PGを再生する能力を再生装置が有している旨を示す。
b3は、立体視IGケーパビリティを示す。立体視IGケーパビリティは、「0」に設定されることで再生装置が立体視IGを再生する能力を有していない旨を示す。「1」に設定されることで再生装置が立体視IGを再生する能力を有している旨を示す。
b5は、3D出力モードにおけるBD-Jモードのケーパビリティを示す。このb5が「1」に設定された場合、3D出力モードにおいて再生装置は、BD-Jモードを処理できる旨を示す。b5が「0」に設定された場合、3D出力モードにおいて再生装置は、BD-Jモードを処理できない旨を示す。PSR24のb5の用法については、本実施形態の主眼からは外れるので、後段の実施形態に説明の場を譲る。
このPSR24では、IG、PGのそれぞれについて立体視再生の可否を設定することができるので、IGデコーダ、PGデコーダのそれぞれを2デコーダで構成して、IG、PGのそれぞれを立体視対応するというコンフィグレーションが可能になるし、また、IG、PGを2デコーダ構成としつつ、IGのみを立体視対応、PGは1plane+Offset対応に留めるというコンフィグレーションも可能になる。逆に、PGのみを立体視対応、IGは1plane+Offset対応に留めるというコンフィグレーションが可能になる。
更に再生装置を低価格機種として販売するため、IGデコーダ、PGデコーダのそれぞれを2デコーダで構成しておきつつも、IG、PGのそれぞれを1plane+Offset対応に留めるというコンフィグレーションも可能になる。2デコーダモデルという共通構成で構成しておいて、機種のグレードに応じて、IGの立体視の可否、PGの立体視の可否を変更することができるので、マニファクチャが再生装置を製品化するにあたってのラインナップの充実を図ることが可能になる。
またPG、IGの双方、どちらか一方を1デコーダで構成した場合、立体視再生の可否が明示されていることで、たとえ再生すべきプレイリストが立体視対応のものでも、再生タイプが誤って立体視PG、立体視IGに設定されるのを防止することができる。
以上の再生制御は、図20から図25までのフローチャートに示される処理手順をオブジェクト指向型コンパイラ言語で記述してコンピュータに実行させることで実現することができる。
図20は、プレイリスト再生手順を示す。本フローチャートは、ステップS1においてカレントプレイアイテム番号を1に設定した後、ステップS2〜ステップS6の処理を繰り返すループを構成する。このループでは、Procedure when playback condition is changedによりストリーム番号を決定して(ステップS2)、ストリーム番号に対応するESを格納したストリームファイルをオープンしてソースパケット列を読み出し(ステップS3)、読み出されたソースパケット列のうち、ストリーム番号に対応しているものの多重分離を指示し(ステップS4)、読み出されたソースパケットをプレイアイテムのインタイムからアウトタイムまで、サブプレイアイテムのインタイムからアウトタイムまで再生するようデコーダに命じる(ステップS5)という処理を、カレントプレイアイテム番号が最終番号になるまで繰り返すものである。ここで最終番号でなければ(ステップS6でNo)、カレントプレイアイテム番号がインクリメントされて、ステップS2に移行する。
この際、ステップS7においてストリーム選択要求があったかどうかを判定し、もし要求があれば、要求されたストリーム番号をxにして、Procedure when stream change is requestedを実行する(ステップS8)。最終番号であれば、処理を終了する(ステップS6でYes)。
<カレントPGストリームの決定及びカレントPGストリームの再生タイプ決定>
PSR2のPG_テキスト字幕ストリーム番号によって参照されるPG_テキスト字幕ストリームは、出力モード(PSR22)、PSR24における立体視PGケーパビリティと、is_SS_PGを用いて選択される。
図21は、PGtestSTストリームについてのProcedure when playback condition is changedについての処理手順を示すフローチャートである。本フローチャートのうち、ステップS11〜ステップS22の処理は、3D出力モード及び2D出力モードの共通処理となる。ステップS23〜ステップS26が、3D出力モード特有の処理となる。
ステップS11においてPSR2からカレントPG_テキスト字幕ストリーム番号を取得し、ステップS12において、カレントPG_テキスト字幕ストリーム番号は、PGストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップS13は、カレントPG_テキスト字幕ストリーム番号に対応するPGストリームが、条件(A)、条件(B)を満たすか否かをチェックする。
ここで条件(A),条件(B)は、以下のように規定される。
条件(A):カレントPG_テキスト字幕ストリーム番号から特定されるPGストリームをデコードする能力が再生装置に存在する。
条件(B):特定された言語を再生する能力が再生装置に存在する。
一方ステップS14では、カレントPG_テキスト字幕ストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)を満たすか否かをチェックするものである。
条件(A):カレントPG_テキスト字幕ストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、レジスタセット23におけるPSR30に示されている。
条件(B):カレントPG_テキスト字幕ストリーム番号のテキスト字幕ストリームの言語特性をサポートする能力が再生装置に存在すること。
ここで、ある言語の字幕がテキスト字幕ストリームで表現されている場合、その言語のテキスト字幕ストリームを、「デコードすることができる」といえるには、その言語における文字コードを、ビットマップに展開する能力と、その言語の特性をサポートするサポート能力とが再生装置側に存在する必要がある。
英語、日本語、アラビア語を例にとってみると、英語の字幕表示は、「横書き」,「カーニング」,「合字・抱き字」という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
日本語の字幕表示は、「横書き」,「縦書き」,「行末禁則」,「ルビ」という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
アラビア語の字幕表示は、「右から左の描画」、「合字・抱き字」という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
ある言語のテキスト字幕ストリームをビットマップに展開することができ、その言語の特性をサポートすることができる場合、上記条件(A)、条件(B)は、満たされているということができる。その言語のテキスト字幕ストリームをビットマップに展開することができるが、その言語の特性をサポートすることができない場合、上記条件(B)は満たされず、条件(A)のみが、満たされているということができる。
言語毎のサポート能力は、レジスタセットにおけるPSR48〜61の各ビットにおいて、言語毎に設定されている。具体的には、PSR48〜61には、IS0639-2/Tで規定された3バイトの言語コードのそれぞれに対応するフラグが存在しており、これらのフラグに、各言語コードに対応するテキスト字幕の表示能力の有無が設定されている。
IS0639-2/Tで規定された3バイトの言語コードにおいて「ita」という3バイトのコードはイタリア語を示し、「jpn」という3バイトのコードは日本語を示す。「jav」という3バイトのコードはジャワ語を示す。IS0639-2/Tで規定された言語コードは、このようは3バイトのコードによって430言語を網羅するから、カレントPG_テキスト字幕ストリームの決定において、ストリーム番号テーブルに記載されたテキスト字幕ストリームがデコードできるかどうかの判定にあたって、このPSR48〜61におけるフラグを参照する。こうすることで、少数派の言語であっても、デコードできるかどうかを適格に判断可能となる。
以上の判定を経た後、ステップS15を実行する。ステップS15は、再生装置は、条件(Z)を満たすか否かを判定するものである
ここで条件(Z)とは、言語特性のサポートがないアンサポート言語の字幕を、再生することをユーザが意図していることであり、かかる意図は、レジスタセットにおけるPSR30に示されている。
その後、ステップS16の判定ステップを実行する。これは、カレントプレイアイテムのストリーム選択テーブルにおけるPG_テキスト字幕ストリームの本数が=0であるか否かを判定するものである。ストリーム選択テーブルに再生が許可されているPG_テキスト字幕ストリームが存在しない場合、PSR2におけるPG_テキスト字幕ストリームの番号を維持する(ステップS17)。
カレントストリーム選択テーブルにおいて再生が許可されているPG_テキスト字幕ストリームが少なくとも1つ存在する場合、ステップS18を実行する。これは、カレントPG_テキスト字幕ストリーム番号の有効性を問うステップであり、カレントPG_テキスト字幕ストリーム番号がストリーム選択テーブルにおけるstream_entryの総数以下であり、且つ、条件(A)、条件(B)を満たすかどうかを判定する。
もしステップS18で満たさないと判定されたなら、ステップS20の判定を実行する。これは、カレントPG_テキスト字幕ストリーム番号がストリーム選択テーブルにおけるstream_entryの総数以下であり、且つ、条件(A)(Z)を満たすかどうかを判定するものである。もし満たすなら、PSR2には、アンサポート言語のテキスト字幕のPG_テキスト字幕ストリーム番号が設定されているが、ユーザはアンサポート言語の再生を意図しているので、PSR2を変化させない(ステップS21)。ステップS20において満たさないと判定されたなら、カレントプレイアイテムについて最適なストリームを選択する(ステップS22)。
以降のステップS23〜ステップS25は3D出力モード特有の処理である。具体的には、3D出力モードでは、PSR2のPGストリーム番号によって特定されるPGストリームのis_SS_PGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS23)、取得したis_SS_PGフラグが「1」であり、かつ、PSR24におけるb2の立体視PGケーパビリティが「1」であるか否かを判定する(ステップS24)。ステップS24がYesであれば、再生タイプを左目PGストリーム及び右目PGストリームを用いる立体視PGとする(ステップS25)。
再生タイプを立体視PGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR2に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスを用いて、立体視再生を行う。具体的には、PSR2に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスで指示されているパケット識別子のTSパケットの多重分離を多重分離部に行わせる。
ステップS24がNoであれば、再生タイプを1plane+OffsetPGとする(ステップS26)。再生タイプを1plane+OffsetPGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR2に格納されたカレントストリームのストリーム番号に対応するもののPG_テキスト字幕オフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスを用いて、1plane+OffsetモードでのPG再生を実行する。
ここでオフセットシーケンスについて説明する。1plane+Offsetモードに用いられるオフセットシーケンスは、ディペンデントビュービデオストリームのビデオアクセスユニット内に複数存在する。
ディペンデントビュービデオストリームのビデオアクセスユニットは、ビデオアクセスユニットデリミター、シーケンスパラメータセット、ピクチャパラメータセット、MVCスケーラブルネスティングSEIメッセージ、ファーズトビューコンポーネント、シーケンス終端コード、ストリーム終端コードを配列することにより構成される。そしてこのMVCスケーラブルネスティングSEIメッセージの中に、ユーザデータコンテナが存在する。ユーザデータコンテナは、アンレジスタードユーザデータ(未登録ユーザデータ)のことであり、クローズドキャプション情報、GOP構造マップ、オフセットメタデータという3つの種類がある。これらの種類のうち何れかであるかは、コンテナ中のtype_indicatorに明示される。
オフセットメタデータは、PGプレーン、IGプレーン、BD-Jプレーンのためのシーケンスリストであり、立体視再生モードにおいてプレゼンテーショングラフィクス_テキスト字幕、IG/BD-Jプレーンが1plane+Offsetモードで再生されている間におけるオフセット設定に用いられる。具体的には、ピクチャデータと合成すべきグラフィクスを、1plane+Offsetモードで再生する場合におけるPGプレーン、IGプレーン、BD-Jプレーンに対するオフセット制御を示す。
オフセットメタデータは、ディペンデントビューアクセスユニットの符号化順序における各GOPの先頭のビデオコンポーネントのMVCスケーラブルネスティングSEIメッセージに格納されねばならない。オフセットメタデータの内部に、上述した複数のオフセットシーケンスが存在する。オフセットシーケンスは、グループオブピクチャに属する各ピクチャデータと、グラフィクスとを合成する場合における制御パラメータを、グループオブピクチャにおけるフレーム期間毎に示すパラメータシーケンスであり、number_of_displayed_frames_in_GOPに示される個数の制御パラメータから構成される。この制御パラメータは、プレーンオフセット方向情報と、プレーンオフセット値とから構成される。
プレーンオフセット方向情報(Plane_offset_direction)は、プレーンにおけるオフセット方向を指示する。値「0」でフロント設定、つまり、プレーンメモリは、TVと視聴者との間に存在し、レフトビュー期間においてプレーンは右方向に、ライトビュー期間においてプレーンは左方向にシフトされる。値=1でビハインド設定、つまり、プレーンメモリは、TV又はスクリーンの背後に存在し、レフトビュー期間においてプレーンは左方向に、ライトビュー期間においてプレーンは右方向にシフトされる。プレーンオフセット方向情報がフロント設定を示す場合、3次元座標系における制御パラメータのZ軸座標は、正の座標になる。プレーンオフセット方向情報がビハインド設定を示す場合、3次元座標系における制御パラメータのZ軸座標は、負の座標になる。
プレーンオフセット値(Plane_offset_value)は、グラフィクスを構成する画素の水平方向の変位量の指定であり、プレーンのオフセット値を画素単位で指示する。
PGの再生タイプが1plane+OffsetPGに設定されれば、ディペンデントビュービデオストリームのSEIメッセージに格納されている複数のオフセットシーケンスのうち、カレントストリーム番号のストリーム登録情報内のPG_テキスト字幕オフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスをビデオデコーダから取り出し、シフト部に供給する。
以上が、PG_テキスト字幕ストリームにおけるProcedure when playback condition is changedについての説明である。
図22は、カレントプレイアイテムについて最適なPG_テキスト字幕ストリームを選択する処理手順を示すフローチャートである。
ステップS30において、全てのPG_テキスト字幕ストリームについて、条件(a)〜条件(c)を満たすかどうかをチェックする。
チェック対象となるPGストリームを、PGストリームiとした場合、条件(a)〜条件(c)は、以下のように規定される。
条件(a):PGストリームiをデコードする能力が再生装置に存在する。
条件(b):PGストリームiのPG_language_codeが、再生装置における言語設定と一致している。ここで、再生装置における言語設定は、レジスタセットにおけるPSR17に示されている。
チェック対象となるテキスト字幕ストリームを、テキスト字幕ストリームiとした場合、条件(a)〜条件(c)は、以下のように規定される。
条件(a):テキスト字幕ストリームiのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。
条件(b):テキスト字幕ストリームiの言語属性をサポートする能力が再生装置に存在すること。
条件(c):テキスト字幕ストリームiのtextST_language_codeが、再生装置における言語設定と一致していること。
以上のチェックを経た後、ステップS31では、再生装置が、前のフローチャートで述べた条件(Z)(:アンサポート言語の再生)を満たすかどうかを判定する。みたさない場合、ステップS32において、条件(a)〜条件(c)を満たすPG_テキスト字幕ストリームが存在するかを判定する。存在するなら、条件(a)〜条件(c)を満たすPG_テキスト字幕ストリームのうち、対応するストリームエントリーがストリーム選択テーブルにおいて先頭順位に位置するものを選択して、選択したPG_テキスト字幕ストリーム番号を、PSR2に設定する(ステップS33)。
条件(a)〜条件(c)を満たすPG_テキスト字幕ストリームが存在しないなら、ステップS34において、より緩和された条件を満たすPG_テキスト字幕ストリームが存在するか否かを判定する。緩和された条件とは、条件(a)、条件(b)を満たすことであり、これを満たすPG_テキスト字幕ストリームが存在するかが、ステップS34で判定される。存在するなら、条件(a)、条件(b)を満たすPG_テキスト字幕ストリームのうち、対応するストリームエントリーがストリーム選択テーブルにおいて先頭順位に位置するものを選択して、選択したPG_テキスト字幕ストリーム番号を、PSR2に設定する(ステップS36)。
存在しないなら、0xFFFであるPG_テキスト字幕ストリーム番号をPSR2に設定する(ステップS35)。ステップS31において、条件(Z)を満たすと判定されたなら、ステップS37において、別の緩和された条件を満たすPG_テキスト字幕ストリームが存在するかを判定する。別の緩和された条件とは、条件(a)、条件(c)を満たすものであり、ステップS37では、これらを満たすPG_テキスト字幕ストリームが存在するかか否かが判定される。
もし存在するなら、条件(a)、条件(c)を満たすPG_テキスト字幕ストリームのうち、対応するストリームエントリーがストリーム選択テーブルの最初に位置するものを選択して、選択したもののPG_テキスト字幕ストリーム番号を、PSR2に設定する(ステップS38)。
存在しない場合、ステップS39において、条件(a)を満たすPG_テキスト字幕ストリームが存在するかを判定する。存在する場合、条件(a)を満たすPG_テキスト字幕ストリームのうち、対応するストリームエントリーがストリーム選択テーブルにおいて先頭順位に位置するものを選択して、選択したもののPG_テキスト字幕ストリーム番号を、PSR2に設定する(ステップS40)。存在しない場合、0xFFFをPSR2に設定する(ステップS35)。
以上が、最適なPG_テキスト字幕ストリームの選択手順についての説明である。
図23は、セット立体視ストリームコマンド(SetstreamSSCommand)によってストリーム変化が要求された場合に実行すべきProcedure when stream change is requestedの処理手順を示すフローチャートである。
ステップS41では、セット立体視ストリームコマンドにおいて、オペランドで指定された番号Xは、PGストリームについてのストリーム番号を意味するか、テキスト字幕ストリームについてのストリーム番号を意味するかを判定する。ステップS42は、番号Xに対応するPGストリーム(PGx)が、以下の条件(A)、条件(B)を満たすか否かをチェックする。
条件(A):番号Xから特定されるPGストリームをデコードする能力が再生装置に存在すること。
条件(B):特定されたPGストリームの属性となる言語が、再生装置の言語属性に一致すること。
ステップS43は、番号Xに対応するテキスト字幕ストリーム(textSTx)が、以下の条件(A)、条件(B)を満たすか否かをチェックする。
条件(A):番号Xに対応するテキスト字幕ストリームXのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。
条件(B):番号Xに対応するテキスト字幕ストリームXの言語属性をサポートする能力が再生装置に存在すること。
ステップS44では、再生装置は、条件(Z)を満たすか否かをチェックし、ステップS45の判定を行う。この判定は、番号がストリーム選択テーブルにおけるstream_entryの総数以下であり、且つ、条件(A)(B)を満たすかどうかを判定する。もし満たすなら、番号XにあたるPG_テキスト字幕ストリーム番号のPG_テキスト字幕ストリームを選択して、PSR2に設定する(ステップS46)。
ステップS45において満たさないと判定されたなら、ステップS47の判定を実行する。この判定は、番号がストリーム選択テーブルにおけるstream_entryの総数以下であり、且つ、条件(A)(Z)を満たすかどうかを判定するものである。満たすなら、番号XにあたるPG_テキスト字幕ストリームを選択して、そのPG_テキスト字幕ストリーム番号をPSR2に設定する(ステップS48)。
満たさないなら、ステップS49の判定を行う。この判定は、番号Xが、0xFFFであるか否かを判定するものである。そうでないなら、ストリーム選択テーブルに再生が許可されているPG_テキスト字幕ストリームが存在しないとして、PSR2の値を維持する(ステップS50)。
0xFFFであるなら、カレントプレイアイテムについて最適なPG_テキスト字幕ストリームを選択する(ステップS51)。この最適なPG_テキスト字幕ストリームの選択は、図22に示したものと同じである。
以降のステップS52〜ステップS55は3D出力モード特有の処理である。具体的には、PGストリーム番号Xによって特定されるPGストリームXのis_SS_PGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS52)、取得したis_SS_PGフラグが「1」であり、かつ、PSR24における立体視PGケーパビリティが「1」であるか否かを判定する(ステップS53)。ステップS53がYesであれば、再生タイプを立体視PGとする(ステップS54)。ステップS53がNoであれば、再生タイプを1plane+Offsetとする(ステップS55)。
図24は、セットストリームコマンド、又は、ストリーム番号変更を要求するユーザ操作によってストリーム変化が要求された場合に実行すべきProcedure when stream change is requestedの処理手順を示すフローチャートである。本フローチャートでは、ステップS56において、セットストリームコマンドのオペランドで指定されたストリーム番号、又は、ストリーム番号変更を要求するユーザ操作で指定されたストリーム番号を番号Xに設定した上で、ステップS41〜ステップS55の処理を実行する。このステップS41〜ステップS55の処理内容は、図23と同一のものであるから、同一の参照符号を付してその説明を省略する。
<カレントIGストリームの決定及びカレントIGストリームの再生タイプ決定>
PSR0のIGストリーム番号によって参照されるIGストリームは、PSR22における出力モードと、PSR24における立体視PGケーパビリティと、is_SS_IGとを用いて選択される。
図25は、カレントIGストリームの決定及びカレントIGストリームの再生タイプ決定の処理手順を示すフローチャートである。
図25(a)は、プレイアイテムが変化し、再生装置の再生状態が変化した場合におけるカレントIGストリーム決定のためのProcedure when playback condition is changedを示す。本フローチャートのうち、ステップS61〜ステップS65は2D出力モード及び3D出力モードの共通のステップであり、ステップS64〜ステップS67は3D出力モード特有のステップである。
ステップS61は、ストリーム選択テーブルにおけるentry数が0であるか否かの判定であり、もし0であればPSR0の値を維持する(ステップS64)。
ステップS62は、ストリーム選択テーブルにおけるentry数は0ではない場合に、PSR0よりストリーム選択テーブルのentry数が多いかを判定するものである。もしステップS62がYesであればPSR0を維持する(ステップS65)。もしPSR0の値がentry数より大きい場合、PSR0に1を設定する(ステップS63)。以降のステップS64〜ステップS67は3D出力モード特有のステップである。3D出力モードでは、PSR0のIGストリーム番号によって特定されるIGストリームのis_SS_IGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS64)、取得したis_SS_IGフラグが「1」であり、かつ、PSR24におけるb3に示される立体視IGケーパビリティが「1」であるか否かを判定する(ステップS65)。ステップS65がYesであれば、再生タイプを立体視IGとする(ステップS66)。再生タイプを立体視IGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR0に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスを用いて、立体視再生を行う。具体的には、PSR0に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスで指示されているパケット識別子のTSパケットの多重分離を多重分離部に行わせる。
ステップS65がNoであれば、再生タイプを1plane+OffsetIGとする(ステップS67)。 再生タイプを1plane+OffsetIGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR0に格納されたカレントストリームのストリーム番号に対応するものの立体視IGオフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスを用いて、1plane+OffsetモードでのIG再生を実行する。具体的には、ディペンデントビューストリームのSEIメッセージに格納されている複数のオフセットシーケンスのうち、立体視IGオフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスをビデオデコーダから取り出し、シフト部に供給する。
図25(b)は、セット立体視ストリームコマンド(SetstreamSSCommand)、セットストリームコマンド、及び、ストリーム番号変更を要求するユーザ操作によってストリーム変化が要求された場合におけるPSR0の設定手順を示すフローチャートである。
セット立体視ストリームコマンド(SetstreamSSCommand)、セットストリームコマンド、及び、ストリーム番号変更を要求するユーザ操作によってストリーム変化が要求された場合、コマンドのオペランドやユーザ操作で指定されたストリーム番号を番号Xとする。
本フローチャートにおけるステップS71は、番号Xよりストリーム選択テーブルのentry数が多いかを判定するものである。もしXがこの条件を満たすなら、PSR0にXを設定する(ステップS74)。もしXがentry数より大きい場合は、PSR0に1を設定する(ステップS72)。3D出力モードでは、PSR0のIGストリーム番号によって特定されるIGストリームのis_SS_IGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS73)、取得したis_SS_IGフラグが「1」であり、かつ、PSR24における立体視IGケーパビリティが「1」であるか否かを判定する(ステップS74)。ステップS74がYesであれば、再生タイプを立体視IGとする(ステップS75)。ステップS74がNoであれば、再生タイプを1plane+Offsetとする(ステップS76)。
図26は、結合ストリーム登録列によってどのようなパケット識別子が多重分離部に出力されるかを示す。
同図(a)は、動作例の題材として用いる結合ストリーム登録列を示す。結合ストリーム登録列は、基本ストリーム選択テーブルにおける3つのストリーム登録情報と、拡張ストリーム選択テーブルにおける3つのストリーム登録情報とから構成されるものである。基本ストリーム選択テーブルにおける3つのストリーム登録情報はそれぞれ、ストリーム番号「1」、「2」、「3」のストリーム番号を有し、3つのストリーム登録情報におけるストリーム属性は、英語、日本語、中国語の言語属性を有している。
拡張ストリーム選択テーブルにおける3つのストリーム登録情報はそれぞれ、ストリーム番号「1」、「2」、「3」のストリーム番号を有し、3つのストリーム登録情報におけるストリーム属性は、英語、日本語、中国語の言語属性を有している。基本ストリーム選択テーブルにおけるストリーム登録情報と、拡張ストリーム選択テーブルにおけるストリーム登録情報とではストリームエントリーにおけるパケット識別子が異なり、拡張ストリーム選択テーブルにおけるストリーム登録情報は、B−Dプレゼンテーションモードのための左目PGストリームのためのパケット識別子、右目PGストリームのためのパケット識別子を含む。
同図(b)は、言語設定が中国語であり、出力モードが2D出力モードに設定された再生装置に、かかる結合ストリーム登録列が供給された場合における、ストリーム番号の設定と、パケット識別子の出力とを示す。
図中のa1、a2,a3を付した矢印は、言語設定の一致判定、ストリーム番号レジスタへのストリーム番号の設定、多重分離部へのパケット識別子の出力を
模式的に示したものである。
プロシージャにおいて、ストリーム番号=3のストリーム登録情報において、再生装置側の言語設定と、ストリーム属性との一致が判定され、このストリーム番号=3のストリーム登録情報に含まれるストリーム番号がストリーム番号レジスタに書き込まれる。この際、基本ストリーム選択テーブルにおけるストリームエントリーにおけるパケット識別子が多重分離部に出力される。こうすることで、基本ストリーム選択テーブルにおけるストリーム番号=3のストリーム登録情報におけるストリームエントリーのパケット識別子によって特定されるTSパケットが、デコーダに出力されることになる。
図26(c)は、言語設定が中国語であり、再生タイプが立体視PGに設定された再生装置に、かかる結合ストリーム登録列が供給された場合における、ストリーム番号の設定と、パケット識別子の出力とを示す。
図中のa4,a5,a6を付した矢印は、言語設定の一致判定、ストリーム番号レジスタに対するストリーム番号の設定、多重分離部へのパケット識別子の出力を模式的に示したものである。
ストリーム選択プロシージャにおいて、ストリーム番号=3のストリーム登録情報において、再生装置側の言語設定と、ストリーム属性との一致が判定され、このストリーム番号=3のストリーム登録情報に含まれるストリーム番号がストリーム番号レジスタに書き込まれる。この際、基本ストリーム選択テーブルにおけるストリームエントリーにおけるパケット識別子が多重分離部に出力される。こうすることで、拡張ストリーム選択テーブルにおけるストリーム番号=3のストリーム登録情報におけるストリームエントリーに格納されたパケット識別子の組みによって特定される2系統のTSパケットが、デコーダに出力されることになる。
図27は、結合ストリーム登録列によってどのようなパケット識別子が多重分離部に出力されるかを示す。
図27(a)は、動作例の題材として用いる結合ストリーム登録列を示す。結合ストリーム登録列は、基本ストリーム選択テーブルにおける3つのストリーム登録情報と、拡張ストリーム選択テーブルにおける3つのストリーム登録情報とから構成されるものである。基本ストリーム選択テーブルにおける3つのストリーム登録情報はそれぞれ、ストリーム番号「1」、「2」、「3」のストリーム番号を有し、3つのストリーム登録情報におけるストリーム属性は、何れかも中国語の言語属性を有している。
拡張ストリーム選択テーブルにおける3つのストリーム登録情報はそれぞれ、ストリーム番号「1」、「2」、「3」のストリーム番号を有し、3つのストリーム登録情報におけるストリーム属性も、中国語の言語属性を有している。基本ストリーム選択テーブルにおけるストリーム登録情報と、拡張ストリーム選択テーブルにおけるストリーム登録情報とではストリームエントリーにおけるパケット識別子が異なり、拡張ストリーム選択テーブルにおけるストリーム登録情報は、B−Dプレゼンテーションモードのための左目PGストリームのためのパケット識別子、右目PGストリームのためのパケット識別子を含む。
同図(b)は、言語設定が中国語であり、出力モードが2D出力モードに設定された再生装置に、かかる結合ストリーム登録列が供給された場合における、ストリーム番号の設定と、パケット識別子の出力とを示す。
図中のa1,a2,a3を付した矢印は、言語設定の一致判定、ストリーム番号の設定、パケット識別子の出力を模式的に示したものである。
ストリーム選択プロシージャにおいて、ストリーム番号=3のストリーム登録情報において、再生装置側の言語設定と、ストリーム属性との一致が判定され、このストリーム番号=「1」がストリーム番号レジスタに書き込まれる。この際、基本ストリーム選択テーブルにおけるストリームエントリーにおけるパケット識別子が多重分離部に出力される。こうすることで、基本ストリーム選択テーブルにおけるストリーム番号「1」のストリーム登録情報におけるストリームエントリーのパケット識別子によって特定されるTSパケットが、デコーダに出力されることになる。
(c)は、言語設定が中国語であり、再生タイプが1plane+Offsetタイプに設定された再生装置に、かかる結合ストリーム登録列が供給された場合における、ストリーム番号の設定と、パケット識別子の出力とを示す。
図中のa4,a5,a6を付した矢印は、言語設定の一致判定、ストリーム番号の設定、パケット識別子の出力を模式的に示したものである。
プロシージャにおいて、ストリーム番号「1」のストリーム登録情報において、再生装置側の言語設定と、ストリーム属性との一致が判定され、このストリーム番号「1」のストリーム登録情報に含まれるストリーム番号がストリーム番号レジスタに書き込まれる。この際、基本ストリーム選択テーブルにおけるストリームエントリーにおけるパケット識別子が多重分離部に出力される。こうすることで、拡張ストリーム選択テーブルにおけるストリーム番号「1」のストリーム登録情報におけるストリームエントリーに格納されたパケット識別子の組みによって特定される2系統のTSパケットが、デコーダに出力されることになる。
以上のように本実施形態によれば、グラフィクスの立体視効果の実現性の可否が、ケーパビリティフラグに示されており、拡張ストリーム選択テーブルにおいて、立体視効果可能であると設定されているグラフィクスストリームについては、このグラフィクスの立体視効果を行うかどうかが、このケーパビリティフラグによって条件付けられるので、マニファクチャは、たとえ記録媒体に立体視効果をもつグラフィクスストリームが記録されていたとしても、ケーパビリティフラグを「ケーパビリティなし」と設定することで、かかるグラフィクスストリームの立体視効果に歯止めをかけ、品質管理を行い易いオフセット制御を代わりに実行することができる。
こうすることで、高品位な立体視効果機能をもった機種、かかる立体視効果機能をもたない機種という複数機種の再生装置を市場に投入して、製品ラインナップの充実化を図ることができる。
(第2実施形態)
第1実施形態では、立体視IG、立体視PGの処理能力の有無、IG、PGの再生タイプをストリーム選択プロシージャで定めたが、本実施形態では、再生装置における出力モードをモード選択プロシージャで決定するという実施形態である。
かかるモード選択プロシージャは、タイトルの選択時に実行される。ここで本明細書のタイトルは、少なくとも1つの動作モードオブジェクトを必須の構成要素とする。動作モードオブジェクトとは、あるモードにおけるタイトル再生時の再生装置の挙動の詳細を規定する動作管理テーブルである。そして、このタイトルには、HDMVタイトル、BD-Jタイトルといった種別がある。
「HDMVタイトル」とは、HDMVモードで再生されるべきタイトルのことであり、ムービーオブジェクトと、ムービーオブジェクト内の再生コマンドで再生されるプレイリスト(プレイリスト情報、クリップ情報、ストリームファイル)とから構成される。
「ムービーオブジェクト」とは、インデックステーブルにおいてHDMVタイトルのタイトル番号に対応付けられた動作モードオブジェクトのことであり、ナビゲーションコマンド列から構成されるバッチプログラムに、レジュームの可否を示すレジュームフラグ、メニューコールをマスクするか否かを示すフラグ、タイトルサーチをマスクするか否かを示すフラグを対応付けることで構成されている。
「BD-Jタイトル」とは、BD-Jモードで再生されるべきタイトルのことであり、クラスアーカイブファイルと、BD-Jオブジェクトとから構成される。
「クラスアーカイブファイル」は、バイトコードアプリケーションのクラス構造体のファイル(クラスファイル)を、デジタル証明書マニフェストファイル、ディスク署名シグネチャファイル、ディスク署名暗号鍵ファイル、パーミッションリクエストファイルとひとまとめにしてアーカイブしたファイルである。アプリケーションのロードは、このクラスアーカイブファイルをひとまとめにしてなされ、クラスロード時に、デジタル証明書、ディスク署名、ディスク署名暗号鍵を用いたアプリケーションの正当性の検証ができるようになっている。またパーミッションリクエストファイルが存在するので、アプリケーションによる動作を、一定の権限が与えられたのものに限定することができる。
クラスアーカイブファイルにアーカイブされるバイトコードアプリケーションは、オブジェクト指向プログラミング言語のソースコードを用いて記述されたクラス構造体をコンパイルすることで得られた実行形式のプログラムであり、機器に依存しないコード(バイトコード)によって構成されるものをいう。本実施形態におけるバイトコードアプリケーションは、イベントドリブンであり、イベントによって状態遷移がなされる。状態遷移の状態には、「ローデッド」,「ポーズ」,「アクティブ」「デストロイド」といった4つの状態があり、バイトコードアプリケーションには、アプリケーションの動作のトリガとなるキーイベントが予め登録されている。バイトコードアプリケーションの動作のトリガとなるキーイベントの登録は、xletインターフェイスのイベントリスナによってなされる。以上がクラスアーカイブファイルについての説明である。
続いて、BD-Jモードの動作モードオブジェクトであるBD-Jオブジェクトの詳細について説明する。
「BD-Jオブジェクト」は、BD-Jモードにおける再生装置の挙動の詳細を規定する。その挙動の詳細には、対応するタイトルがカレントタイトルになった際のアプリケーションのクラスロード(1)、対応するタイトルがカレントタイトルになった際のアプリケーションシグナリング(2)、当該アプリケーションシグナリングによって起動されたアプリケーションがGUI処理を実行するにあたってのHAViデバイスコンフィグレーション(3)、当該カレントタイトルにおけるプレイリストアクセス(4)、対応するタイトルがカレントタイトルになった場合のクラスアーカイブファイルのキャッシュイン・キャッシュアウト(5)、起動されたアプリケーションのトリガとなるイベントをキーに割り当てるというイベント割当て(6)がある。
「クラスロード」とは、クラスアーカイブファイルにアーカイブされているクラスファイルのインスタンスを、プラットフォームのヒープ領域に生成する処理であり、「アプリケーションシグナリング」は、クラスファイルのインスタンスであるアプリケーションを自動起動させるか否か、又は、アプリケーションの生存区間をタイトルバウンダリーとするかディスクバウンダリーとするかを規定する制御である。タイトルバウンダリーとは、タイトルの終了と同時にアプリケーションであるスレッドをヒープ領域から消滅させるという管理であり、ディスクバウンダリーとは、ディスクイジェクトと同時にアプリケーションであるスレッドをヒープ領域から消滅させる管理である。逆にディスクイジェクトがされてもスレッドをヒープ領域から削除しない制御を「ディスクアンバウンダリー」という。「HAViデバイスコンフィグレーション」は、アプリケーションがGUI処理を実行するにあたってのグラフィクスプレーンの解像度や文字表示に用いるフォント等を規定するものである。
「プレイリストアクセス」とは、起動されたアプリケーションが再生を命じることができるプレイリストやタイトル選択時に自動的に再生すべきプレイリストの指定である。
「クラスアーカイブファイルのキャッシュイン」とは、クラスロードの対象となるクラスアーカイブファイルをキャッシュに先読みするとの処理であり、「クラスアーカイブファイルのキャッシュアウト」とは、キャッシュに存在するクラスアーカイブファイルをキャッシュから削除するとの処理である。「アプリケーション駆動のためのイベント割当」は、ユーザが操作可能なキーに、アプリケーションのイベントリスナに登録されているイベントを割り当てるというものである。
バイトコードアプリケーションのうち、BD-Jオブジェクト内のアプリケーション管理テーブルでアプリケーションシグナリングがなされるものを「BD-Jアプリケーション」という。
、HDMVタイトルをBD-Jタイトルと対比すると、上述のHDMVタイトルでは、ナビゲーションコマンドを実行するためのコマンドインタプリタやプレイリストを解読して再生するための再生制御エンジンといったモジュールがソフトウェアの動作主体になる。
これに対しBD-Jタイトルでは、クラスロードのためのクラスローダやアプリケーションシグナリングのためのアプリケーションマネージャ、HAViデバイス、Javaメディアフレームワークによるプレイリスト再生のための再生制御エンジン、キャッシュイン・キャッシュアウト管理のためのキャッシュマネージャ、イベント処理のためのイベントマネージャといったソフトウェア群、つまり、デジタル放送のマルチメディアプラットフォーム端末におけるソフトウェア群と良く似たソフトウェア群が動作主体になるので、BD-JタイトルからHDMVタイトルへの切り替わり、HDMVタイトルからBD-Jタイトルへの切り替わりでは、再生装置におけるソフトウェア構成が大きく異なるものになる。
出力モードが切り替え後のソフトウェアの動作主体にとって、最適なものになっているかの確認と、切り替え後の動作モードに最適な出力モードの選択という2つの処理を実現するべく、上記モード選択プロシージャをカレントタイトルの選択時に実行する。
モード選択プロシージャの動作主体は、再生制御部210におけるプロシージャ実行部である。また、出力モードは、レジスタセット203に格納される。
図28は、レジスタセット203の内部構成と、再生制御部210とを描いた図である。本図の左側にはレジスタセット203の内部構成を示している。右側には再生制御部210の内部構成を示している。
それぞれのレジスタ番号が割り当てられたプレーヤ状態レジスタ、プレーヤ設定レジスタは、どのようなものであるかを示す。
PSR1は、オーディオストリームのためのストリーム番号レジスタであり、カレントのオーディオストリーム番号を格納する。
PSR2は、PGストリームのためのストリーム番号レジスタであり、カレントのPGストリーム番号を格納する。
PSR4は、1〜100の値に設定されることで、カレントのタイトル番号を示す。
PSR5は、1〜999の値に設定されることで、カレントのチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
PSR6は、0〜999の値に設定されることで、カレントプレイリストの番号を示す。
PSR7は、0〜255の値に設定されることで、カレントプレイアイテムの番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM)を示す。以上がPSRについての説明である。
PSR10は、IGストリームのためのストリーム番号レジスタであり、カレントのIGストリーム番号を格納する。
PSR21は、ユーザが、立体視再生を実行することを意図しているかどうかを示す。
PSR22は、出力モード値を示す。
PSR23は、「Display Capability for video」の設定である。これは、再生装置の接続相手である表示装置に立体視再生を実行する能力が存在するかどうかを示す。
PSR24は、「Player Capability for 3D」の設定である。これは、再生装置に立体視再生を実行する能力が存在するかどうかを示す。
一方、プロシージャ実行部は、レジスタセット203におけるPSR4,PSR6,PSR21,PSR23と、カレントプレイリスト情報のストリーム選択テーブルとを参照して、カレントプレイリストにおける出力モードを一意に定める。PSR24におけるPlayer Capability for 3Dは、再生装置の3D再生に関する能力全般を意味するものなので、「3D-Capability」と簡単に表記する場合がある。
PSR23は、出力モードを規定するものであり、その状態遷移の選択モデルは、図29に示すように規定されている。
図29は、出力モードの選択モデルの状態遷移を示す。この選択モデルには、2つの一般的な状態が存在する。楕円は、この一般的な状態、つまり、出力モード値がとりうる値である「Invalid」,「valid」を模式的に描いたものである。Invalidは出力モードが無効であり、Validは出力モードが有効である旨を示す。
一般的な状態は、状態遷移が起こらない限り、維持される。状態遷移は、プレイリスト再生の開始、ナビゲーションコマンドやBD-Jアプリケーションにより要求された出力モード変化、BD-Jタイトルへのジャンプがある。状態遷移が発生した際、出力モードプリレファレンスを獲得するためのプロシージャが実行される。
図中の矢印jm1,jm2,jm3・・・・jm12は、状態遷移のトリガとなる事象を模式的に示す。本図における状態遷移には、以下のものがある。
『Load a disc』とは、BD-ROMが装填されたという状態を意味する。
『Start Presentation』とは、HDMVモードにおいて、プレイリストの再生開始(start Playlist playback)を意味する。BD-Jモードにおいては、BD-Jタイトルへの分岐を意味する。何故なら、BD-Jタイトルは、プレイリストが必須の構成要素になっていないので、BD-Jタイトルに分岐した場合、必ずしも、プレイリストの再生が開始されるとは限らないからである。
『Jump to BD-J title』は、BD-Jタイトルへの分岐を意味する。具体的には、インデックステーブルにおいて、BD-Jタイトルがカレントタイトルになることをいう。
『Start Playlist Playback』は、何等かのプレイリストを意味するプレイリスト番号が、PSRに設定されて、プレイリスト情報が、カレントプレイリスト情報としてメモリに読み出されることをいう。
『Change Output Mode』とは、3D出力モードへの切り替えの権限を有したBD-JアプリケーションがAPIをコールすることで、出力モードを変化することをいう。
『Terminate presentation』とは、HDMVモードの場合は、プレイリストの再生が終了することをいい、BD-Jモードの場合は、BD-JタイトルからHDMVタイトルへとジャンプすることをいう。
ディスクがロードされた際、出力モードの状態は、一時的な状態「Initialization」に遷移る。出力モードセレクションの状態は、一時的に「Initialization state」に遷移した後、invalid stateに遷移する。
Output Mode Selectionの状態は、再生開始(Start Presentation)がアクティブになるまで、Invalidに維持される。HDMVモードにおいて「Start Presentation」は、プレイリストの再生が開始されたことを意味する。BD-JモードにおいてStart Presentation」は、BD-Jタイトルの再生が開始され、BD-Jアプリケーションが何等かの動作を開始したことを意味する。必ずしも、プレイリストの再生が開始されたことを意味するとは限らない。
Start Presentationがアクティブになった際、出力モードは、一時的な状態である「Procedure when playback condition is changed」に遷移する。
出力モードは、Procedure when playback condition is changedの結果に従ってValidに遷移する。出力モードが有効であって、Start Presentationが終了すれば、状態はInvalidに遷移する。
ムービーオブジェクトにおけるナビゲーションコマンドは、コンテンツプロバイダが出力モードプリレファレンスを設定するために、プレイリスト再生の開始に先立ち、実行されねばならない。ムービーオブジェクトにおけるナビゲーションコマンドが実行された際、このモデルでは、Invalidになる。
図29の状態遷移は、モード選択プロシージャと呼ばれる規定の手順によって実現される。このモード選択プロシージャは、Initializationと、Procedure when playback condition is changedとから構成される。
図30は、Initializationの処理手順を示す。
ステップS501は、ディスクアンバウンドのBD-Jアプリケーションが動作中かどうかの判定であり、ステップS502は、PSR23におけるStereoscopic Display Capabilityが「Capability有」を示し、インデックステーブル(index.bdmv)におけるInitial_output_mode情報が「立体視出力モード」を示すかどうかの判定である。Initial_output_mode情報のデータ構造については、本実施形態の主眼からは外れるので、後段の実施形態に説明の場を譲る。
ステップS501がYesであれば、ステップS503においてカレントの出力モードを維持する。ステップS501がNo、ステップS502がYesであれば、ステップS4においてPSR22を立体視出力モードに設定する。ステップS501がNo、ステップS502がNoであればステップS5においてPSR22における出力モードを、2D出力モードに設定する。
以上のInitializationによれば、initial_output_mode情報がオンになっている場合、再生装置にB−Dプレゼンテーションモードの再生能力が存在することを要件として、ディスク装填と同時に再生装置が3D出力モードになる。よってinitial_output_mode情報がオンであれば、記録媒体を装填してすぐ眼鏡をかけることで、立体視再生による仮想現実感に浸ることができる。
図31は、Procedure when playback condition is changedの処理手順を示す。ステップS511は、PSR22における出力モードは、2D出力モードであるか否かの判定であり、ステップS513は、PSR23におけるStereoscopic Display Capabilityが「Capability有」を示し、尚且つ、プレイリストに拡張ストリーム選択テーブルが存在するかどうかの判定である。
ステップS511がYesであればステップS512において、カレント出力モードを変化させない。ステップS511がNo、ステップS513がYesであってもカレント出力モードを変化させない(ステップS512)。ステップS511がNo、ステップS513がNoであればカレント出力モードを2D出力モードに変化させる(ステップS514)。
以下、3D出力モード実現のためのプレーヤ設定レジスタのビットアサインについて説明する。3D出力モードの実現のために用いられているレジスタは、21番号、22番、23番、24番のレジスタであり、これらのレジスタにおけるビットアサインを示したのが図32である。図32は、3D出力モード実現のためのプレーヤ設定レジスタのビットアサインを示す。
同図(a)は、PSR21のビットアサインを示す。本図において、最下位ビットb0が、出力モードプリレファレンスであり、0bに設定されることで、2D出力モードである旨を示し、1bに設定されることで、立体視出力モードである旨を示す。ナビゲーションコマンドやBD-JアプリケーションはこのPSR21の値を書き換えることはできない。
同図(b)は、PSR22のビットアサインを示す。PSR22におけるb0は、カレントの出力モードを表す。出力モードが変化すれば、再生装置におけるビデオ出力は、対応して変化しなければならない。出力モードの値は、選択モデルによって制御されねばならない。
以上のように本実施形態によれば、再生装置の状態変化やユーザからのストリーム切り替え要求があったとしても、出力モードの有効性を保つことができる。
(第3実施形態)
前の実施形態では、カレントタイトルの選択時に出力モードを定めたが、本実施形態は、BD-Jタイトルがカレントタイトルとして選択された際、このカレントタイトルにおける出力モードを、どのようにして決定するかを示す実施形態である。
以降、BD-Jオブジェクトについて説明する。図33は、BD-Jオブジェクトの内部構成の一例を示す図である。本図に示すようにBD-Jオブジェクトは、「アプリケーション管理テーブル」、「端末管理テーブル」、「アプリケーションキャッシュ情報」、「プレイリストアクセス情報」、「キーインタレストテーブル」から構成される。
「アプリケーション管理テーブル」は、タイトルをバウンダリィとしたアプリケーションシグナリングをアプリケーションマネージャやクラスローダに指示する制御テーブルであり、「端末管理テーブル」は、GUIを実現するためのHAViコンフィグレーションやGUIに用いるフォント、ユーザ操作のマスクの有無をマルチディアホームプラットフォーム(MHP)に指示する管理テーブルである。「アプリケーションキャッシュ情報」は、タイトル選択時のアーカイブファイルのキャッシュイン/キャッシュアウトをキャッシュマネージャに指示する制御テーブルであり、「プレイリストアクセス情報」タイトル選択時におけるプレイリストの自動再生の指定を再生制御エンジン(PCE)に指示する制御テーブルである。「キーインタレストテーブル」は、キーと、イベントとの対応付けをイベントマネージャに指示する制御テーブルである。
引き出し線bj1は、アプリケーション管理テーブルにおけるエントリーをクローズアップして示している。この引き出し線に示すように、アプリケーション管理テーブルのエントリーは、タイトルにおいて、アプリケーションを自動的に起動させるべきか(AutoStart)、他のアプリケーションからの呼出しを待って起動すべきか(Present)という起動の仕方を示す「制御コード」と、「アプリケーションタイプ」と、起動すべきBD-Jアプリケーションをアーカイブしたアーカイブファイルのファイル名となる5桁の数値を用いて、対象となるアプリケーションを示す「アプリケーションID」と、「アプリケーション記述子」を含む。引き出し線bj2は、「アプリケーション記述子」の内部構成をクローズアップして示している。本引出線に示すように、「アプリケーション記述子」は、アプリケーションがロードされる場合の「優先度」と、アプリケーションがタイトルアンバウンドであるか否か、ディスクバウンドであるか否かを示す「バインディング情報」と、アプリケーションの名称を示す文字列と、アプリケーションの言語属性を示す「言語コード」と、アプリケーションに対応づけるアイコンの所在を指し示す「アイコンロケータ」と、「アプリケーションのプロファイル値」を、アプリケーション毎にして格納している。3D出力モードに対応するアプリケーションについては、このプロファイル値が=5に設定される。インデックステーブルにおけるBDMVアプリケーション情報の立体視コンテンツ存在フラグが1に設定されることは、このアプリケーションのプロファイル値が=5に設定されることが要件とされる。
引き出し線bj3は、端末管理テーブルにおけるコンフィグレーション情報をクローズアップして示している。コンフィグレーション情報は、グラフィクスプレーンの確保を再生装置に指示する情報であり、この引き出し線bj3に示すように、端末管理テーブルは、HD3D_1920×1080、HD3D_1280×720、HD_1920×1080、HD_1280×720、QHD_960×540,SD,SD_50HZ_720×576,SD_60HZ_720×480の何れかに設定することができる。
引き出し線bj4は、プレイリストアクセス情報における自動再生プレイリストを指定する情報の内部構成をクローズアップして示している。引出線bj4に示すように、自動再生プレイリストを指定する情報として、3Dプレイリスト1920×1080、3Dプレイリスト1280×720、2Dプレイリスト1920×1080、2Dプレイリスト1280×720、2Dプレイリスト720×576、2Dプレイリスト720×480の指定が可能になる。
何れかのタイトルが選択された際、再生装置は、選択されたカレントタイトルに対応するもののプレイリストアクセス情報により指定されたプレイリストの再生を、アプリケーションからの再生指示を待つことなく開始し、プレイリスト再生の終了よりも、BD-Jアプリケーション実行が先に終了した場合、プレイリストの再生を継続して行う。
こうした先行再生により、アプリケーションのクラスロードに時間がかかり、描画イメージが表示されないため、対話画面がなかなか出力されないような場合、プレイリスト再生による再生映像がそのまま出力させるので、アプリケーションにおける起動遅延が顕著な場合でも、とりあえずプレイリストの再生映像をユーザに視聴させることができる。アプリケーションのスターティングディレィの間、何かが写っている状態にしておくことができるので、ユーザに安心感を与えることができる。
BD-Jアプリケーションにおいて立体視再生の実現に利用できるAPIには、Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsがある。これらのAPIを利用すれば、ネットワーク処理のためのjava.net、GUI処理のためのjava.awt、言語処理のためのjava.lang、記録媒体に対するI/O処理のためのjava.io、ユーティリティであるjava.util、メディアフレームワークのためのjavax.mediaといったクラスのメソッド、コンストラクタ、インターフェイス、イベントを用いた構造化プログラミングで、3D再生が可能なBD-Jタイトルの記述が可能になる。
BD-Jタイトルにおける3Dプレイリストの再生指示等、立体視を前提にしたBD-Jタイトルにおいてデフォルトで行うべき動作は、初期xletクラスのインスタンスであるxletコンテキストを生成させるようなプログラムをソースコードで記述することで作成できる。かかるxletコンテキストは、インスタンス生成時に状態変化を示す状態変化エクセプションイベントをスロウして、その後、再生装置におけるプレーヤ状態レジスタ、プレーヤ設定レジスタの保持値の取得を行い、取得した保持値が3D再生の能力の存在を示すものかどうかを判断した上で3Dプレイリストの再生を実行する。
ここでの3Dプレイリストの再生は、3Dプレイリストを指定するロケータと、javax.mediaにおけるマネージャのクリエイトプレーヤメソッド「javax.media.Manager.createPlayer」とを利用して、3Dプレイリストの再生のためのプレーヤインスタンスを生成することでなされる。また、プレーヤインスタンスを生成できないときのイクセプションは、javax.meia.NoPlayerEceptionイベントをキャッチするcatch文で記述することができ、3Dプレイリストがないときのイクセプションは、java.io.IOExceptionイベントをキャッチするcatch文で記述することができる。
またBD-JモードのためのエクステンションAPI(BD-Jエクステンションと呼ばれる)を用いることで、これまでの実施形態で述べた立体視再生のためのデータ構造、立体視再生における再生単位を用いた制御を実現する。このBD-Jエクステンションはjava.net、java.awt、java.lang、java.io、java.util、javax.mediaクラスのメソッドからのインへリッドメソッドを含み、これらのクラスのインターフェイスをエンベデッドインターフェイス、スーパーインターフェイスとしているので、java.net、java.awt、java.lang、java.io、java.util、javax.mediaクラスを用いたプログラミング技法の延長線上で、立体視再生を前提にしたBD-Jタイトルを作成することができる。
例えばBD-JモードのためのエクステンションAPIは、レジスタセットの状態設定や状態取得を命じる設定取得クラスを含む。かかる設定取得クラスは、各PSRの保持値を示すコンスタントフィールドと、PSRの保持値の取得を命じる取得メソッドと、PSRの保持値の設定を命じる設定メソッドとから構成される。
設定取得クラスのメソッドは、java.lang.objectクラスのメソッドのインヘリッドメソッドを含む。また、メソッドコールの際の引数が不正であれば、java.langクラスのイベントであるjava.lang.IlleghalArgumentExceptionイベントをスロウする。本クラスは、java.lang.objectのメソッドやイベントを継承しているので、プログラマは、java.lang.objectの延長線で、レジスタセットの保持値を利用したプログラムを作成することができる。
図34は、BD-Jタイトルにおける出力モード設定の処理手順を示すフローチャートである。
(a)は、Procedure when BD-J Title is changedの処理手順を示すフローチャートである。ステップS521では、PSR22から出力モードを取得し、ステップS522では、HAViデバイスコンフィグレーションセレクションのビヘイビアに依拠して、2D出力モード又は立体視出力モードの何れかに出力モードを設定する。
(b)は、Procedure when Output Mode change is requestedの処理手順を示すフローチャートである。ステップS523では、PSR22から出力モードを取得し、ステップS524では、イニシャルHAViデバイスコンフィグレーションのビヘイビアに依拠して、2D出力モード又は立体視出力モードの何れかに出力モードを設定する。
図35は、イニシャルHAViデバイスコンフィグレーションセレクションのビヘイビアの一例を示すフローチャートである。本フローチャートは、ステップS530、ステップS531、ステップS532、ステップS533、ステップS536の判定結果に応じて、ステップS534、ステップS535、ステップS537の処理を選択的に実行する。
ステップS530は、自動再生プレイリストが存在するかどうかの判定である。
ステップS531は、PSR24におけるb5が「1」であるか否かの判定である。ここでb5が「1」であることは、3D出力モードにおいて、BD-Jモードの処理が可能であることを意味する。
ステップS532は、直前の表示モードは3Dであるか否かの判定である。ステップS533は、選択されたタイトルの自動再生プレイリストが、1920×1080の3Dプレイリスト又は1280×720の3Dプレイリストであるかどうかの判定である。
自動再生プレイリストが存在しない場合、ステップS537、ステップS538の判定を実行する。
ステップS537は、PSR24におけるb5が「1」であるか否かの判定である。ここでb5が「1」であることは、3D出力モードにおいて、BD-Jモードの処理が可能であることを意味する。
ステップS538は、BD-JオブジェクトにおけるHAViデバイスコンフィグレーションの解像度がHD3D_1920×1080、HD3D_1280×720であるかどうかの判定である。
もしステップS537がYes、ステップS538がYesであれば、ステップS535において、表示モードを3Dに設定し、BD-JオブジェクトにおけるHAViデバイスコンフィグレーションの解像度に応じて1920×1080、あるいは1280×720に設定する。もしステップS537、ステップS538のどちらかがNoであれば、ステップS536において表示モードを2Dに設定し、解像度をBD-JオブジェクトにおけるHAViデバイスコンフィグレーションの解像度に設定する。
自動再生プレイリストが存在する場合、ステップS531においてPSR24のb5が「1」であるか、ステップS532において直前の表示モードが3Dであるかどうか、又は、ステップS533においてプレイリストが3Dプレイリストで、その解像度が1920×1080、1280×720であるがどうかが判定される。ステップS531、ステップS532、ステップS533のどれかがNoであれば、ステップS534において表示モードを2Dに設定し、解像度を、自動再生プレイリストの解像度に設定する。
ステップS532がYes、ステップS533もYesと判定された場合、ステップS535において、表示モードを3Dに設定し、解像度を、自動再生プレイリストの解像度に応じて1920×1080、又は、1280×720に設定する。
以上のように本実施形態によれば、BD-Jオブジェクトに基づき、HAViデバイスコンフィグレーションで規定された解像度を用いて立体視再生を実現することができる。
(第4実施形態)
本実施形態は、再生装置に接続された表示装置の立体視表示ケーパビリティを示すプレーヤ設定レジスタの内部構成をより具体的なものにして実施する場合の改良に関する。
図36は、PSR23のビットアサインを示す。PSR23は、再生装置に接続されている表示装置の特性値を表す。ナビゲーションコマンドやBD-Jアプリケーションは、PSR23の値を書き換えることはできない。PSR23の値は、表示装置がインターフェイスを通じてこれらを提供した際、再生を開始する前に、自動的に設定される。これらの値を自動取得できない場合、これらはユーザによって設定される。
PSR23のb0は、表示装置の立体視表示ケーパビリティを示す。
立体視表示ケーパビリティは、「0」に設定された際、接続されている表示装置が、1920×1080/23.976Hzプログレッシブビデオ、又は、1920×1080/59.94Hzプログレッシブビデオを表示する処理能力を有していない旨を示す。
「1」に設定された際、接続されている表示装置が、1920×1080/23.976Hzプログレッシブビデオ、又は、1920×1080/59.94Hzプログレッシブビデオを表示する処理能力を有している旨を示す。
PSR23のb1は、表示装置の立体視1280×720 50pビデオ表示ケーパビリティを示す。
立体視1280×720 50pビデオ表示ケーパビリティは、「0」に設定された際、接続されている表示装置が、1280×720/50Hzプログレッシブビデオを表示する処理能力を有していない旨を示す。「1」に設定された際、接続されている表示装置が、1280×720/50Hzプログレッシブビデオを表示する処理能力を有している旨を示す。
PSR23のb2は、裸眼立体視可否フラグを示す。
裸眼立体視可否フラグ(No glasses required for stereoscopic display)は、「0」に設定されることで接続されているTVシステムが、立体視出力モードを視聴するのに眼鏡を必要とする旨を示し「1」に設定されることで接続されているTVシステムが、立体視出力モードを視聴するのに眼鏡を必要としない旨を示す。
b8からb19までの画面横サイズ(Horozontal display size)は、接続されている表示装置の水平サイズをcm単位で表す。0x000である場合、未定義であり、0x001から0xFFEまでである場合、接続されている表示装置の水平サイズをcm単位で表す。ここで0xFFEは、4094cmのディスプレイである旨を示す。0xFFFは、水平長4094cmより大きいディスプレイである旨を示す。
PSR23のビットアサインを用いると、PSR23における立体視ケーパビリティの判定手順は、図37のフローチャートに示されるものとなる。
図37は、PSR23における立体視再生ケーパビリティの判定手順を示すフローチャートである。本フローチャートは、ステップS515〜ステップS517の判定ステップの判定結果の組合せに応じて、立体視再生ケーパビリティが存在するか、立体視再生ケーパビリティがが存在しないかという結論を下す。ステップS515は、PSR23のb2が「1」であるか否かの判定であり、ステップS516は、PSR23のb0が「1」であるか否かの判定である。ステップS517は、PSR23のb1が「1」であるか否かの判定である。ステップS515においてPSR23のb2が「1」であることは、眼鏡なしで裸眼立体視が可能であることを示す。よってPSR23のb1が「1」であれば、ステップS516及びステップS517の判定を経ることなく、ステップS518において、立体視再生可能であるとの判定結果を下す。眼鏡なしで立体視表示をすることができるは、立体視専用のものであり、解像度に関係なく、立体視再生可能であると判定結果を下すことができるからである。
ステップS516において、PSR23のb0が「1」であることは、1920×1080/23.976Hz、及び、1280×720/59.94Hzにおける立体視再生が可能であることを示す。よってステップS515がNoであっても、ステップS516がYesであれば、ステップS518において、立体視再生可能であるとの判定結果を下す。
ステップS517において、PSR23のb1が「1」であることは、1920×1080/23.976Hz,1280×720/59.94Hzの立体視再生が不可能でも、1280×720/50Hzにおける立体視再生が可能であることを示す。よってステップS515−ステップS516がNoであっても、ステップS517がYesであれば、ステップS518において、立体視再生可能であるとの判定結果を下す。
PSR23のb0が「0」、PSR23のb1が「0」であることは、SD画像であることを示す。よって、ステップS517がNoであれば、立体視再生が不可能であり、強制的に2D出力を行う。
これは、SD画像では、充分な品位の立体視再生を実現することができないからである。
以上のように本実施形態によれば、再生装置に接続された立体視表示ケーパビリティに応じて、最適な解像度と、フレームレートとの組みを決定するので、表示装置に対するデータ転送を最適なものにすることができる。
(第5実施形態)
本実施形態は、表示装置のフレームレートや解像度を最適にする改良に関する。これまでの実施形態では、BD-Jオブジェクトの端末管理テーブルやタイトルにおけるプレイリストから解像度を決定していたが、タイトルが未選択の状態においては、解像度やフレームレートは未定のままであった。そこで本実施形態は、インデックステーブルに、解像度やフレームレートの情報を組み込んでいる。
インデックステーブルは記録媒体全体に関する管理情報であり、再生装置への記録媒体挿入後に、インデックステーブルが最初に読み出されることで、再生装置において記録媒体が一意に認識される。
インデックステーブルは、再生装置におけるタイトル番号レジスタに格納され得る複数のタイトル番号と、動作モードを規定する動作モードオブジェクトとの対応付けを規定する。記録媒体に記録されているタイトルとは、タイトル番号によって特定される動作モードオブジェクトと、この動作モードオブジェクトから再生されるプレイリストとの組みをいう。映画作品と、タイトルとの関係は、映画作品と、それの複数バージョンとの関係である。つまり1つのバージョンしかないような映画作品は、「映画作品=タイトル」という関係になる。映画作品に、劇場公開版、ディレクターズカット版、TV放映版等、複数のバージョンがある場合、映画作品における個々のバージョンが1つのタイトルになる。
ここで、タイトル番号レジスタにおけるタイトル番号は、0、1〜999、不定値(0xFFFF)という番号がある。タイトル番号0は、トップメニュータイトルのタイトル番号である。トップメニュータイトルとは、ユーザによるメニューコール操作によって呼び出すことができるタイトルである。不定値(0xFFFF)のタイトル番号は、ファーストプレイタイトルのタイトル番号である。ファーストプレイタイトルとは、記録媒体の装填直後に、視聴者への警告やコンテンツプロバイダによるロゴ表示等を行うタイトルである。
インデックステーブルは、各タイトル番号のそれぞれに対応したエントリー(タイトルインデックス)を有し、個々のタイトルインデックスに、動作モードを規定する動作モードオブジェクトを記述することで、各々のタイトルが、どのような動作モードで動作するのかを詳細に規定する。
図38は、インデックステーブルを説明するための説明図である。図38(a)は、インデックステーブルファイルの内部構成を示す。本図に示すようにインデックステーブルファイルは、複数のタイトルインデックスと、BDMVアプリケーション情報とを含む。
図38(b)は、タイトルインデックスの共通のデータ構造で定義される。この共通のデータ構造は、『オブジェクトタイプ』と、『ムービーオブジェクトレファレンス』と、『オブジェクトファイル名情報』とを含む。『オブジェクトタイプ』は、該当するタイトルに関付けられている動作モードオブジェクトが、MovieオブジェクトであるかBD-Jオブジェクトであるかを示す。『オブジェクトファイル名情報』は、タイトルに関連付けられたBD-J オブジェクトのファイル名を示す。『ムービーオブジェクトレファレンス』は、タイトルに関連付けられたムービーオブジェクトの識別子を示す。
再生装置においてタイトル番号レジスタの値は、記録媒体の装填後、不定値0xFFFF→1〜999→0というように変化する。このタイトル番号の変化は、記録媒体の装填時に、ファーストプレイタイトルの再生を開始し、ファーストプレイタイトルの再生後、1から999までのタイトル番号レジスタのタイトル番号で指示されるタイトルの再生を行い、タイトル番号で指示されるタイトルの再生が終了すれば、トップメニュータイトルを再生してユーザによる選択待ちを行うというものである。1〜999のタイトル番号をもつタイトルのうち、タイトル番号レジスタに格納されているタイトル番号と、同じタイトル番号をもつものが、現在の再生対象、つまりカレントタイトルになる。タイトル番号レジスタにどのような番号を設定するかは、トップメニュータイトルに対するユーザ操作や、プログラムによるタイトル番号レジスタの設定によって決定される。
図38(c)は、BDMVアプリケーション情報(ApplinfoBDMV)の内部構成を示す。本図に示すように、BDMVアプリケーション情報は、「初期出力モードプレファレンス(initial_outputmode_preference)」、「立体視コンテンツ存否フラグ(SS_content_exist_flag)」、「ビデオフォーマット情報(video_format)」、「ビデオレート情報(video_rate)」から構成される。
「初期出力モードプレファレンス(initial_outputmode_preference)」は、ディスクにおける初期出力モードのプレファレンスであり、「0」で2D出力モード、「1」で立体視出力モードを示す。既に、第2実施形態で説明したように、本初期出力モードレファレンスが『立体視出力モード』に設定されている場合、表示装置に立体視表示能力が存在することを前提として、ディスク装填時において、再生装置は立体視出力モードに設定される。
「立体視コンテンツ存否フラグ(SS_content_exist_flag)」は、プロファイル5機能を用いているか否かを示す。以下の条件の何れかを満たす場合、このフィールドは「1」に設定される。
−拡張ストリーム選択テーブルが組み込まれた3Dプレイリストをもつ
−BD-Jオブジェクトにおけるアプリケーション管理テーブル内で現在シグナリングされているBD-Jアプリケーションは、自身のアプリケーション記述子におけるアプリケーションプロファイル値のセット内に、「プロファイル5」を含む。プロファイル5」とは、立体視再生に対応したアプリケーションプロファイルである。よってBD-Jオブジェクトに対応するタイトルに3Dプレイリストが存在しない場合や、プレイリストそのものがない場合であっても、かかるBD-Jアプリケーションが立体視の再生能力を有している場合、上記立体視存否フラグは「オン」に設定される。
−立体視出力モードを用いる。
立体視コンテンツ存否フラグが、「存在しない」と設定されている場合、対応するディスクが装填されている間は3D出力モードに移行することはないから、PSR22のモード選択プロシージャを実行せず、PSR22を2D出力モードのまま固定化する。一方、立体視コンテンツ存否フラグが存在すると設定されている場合のみ、モード選択プロシージャを実行する。
「ビデオフォーマット情報(video_format)」は、高バンド幅デジタル出力機能におけるビデオフォーマットを4ビットの値を用いて指示する。ディスク挿入時において、このビデオフォーマットを、ネゴシエートによって定めることができる。ビデオフォーマット情報は、ファーストプレイタイトルの再生がなされてから、トップメニュータイトルの再生時、又は、0〜999のタイトル番号で指示されるタイトルの再生時まで有効になる。
トップメニュータイトルの再生後、又は、0〜999のタイトル番号で指示されるタイトルの再生後は、そのタイトルにおけるプレイリストにおけるピクチャや、そのタイトルにおけるメニューの表示解像度が適用されるからである。
「ビデオレート情報(video_rate)」は、高バンド幅デジタル出力機能におけるビデオレートを指示する4ビットの値である。ディスク挿入時において、このビデオレートを、ネゴシエートによって定めることができる。ビデオフォーマット情報、ビデオフレーム情報は、どちらかを0に設定することができる。どちらかが0に設定された場合、両フィールドは、再生装置によって無視される。「ビデオレート」とは、1秒当りのフレーム数を表す単位であり、FPS(Frame Per Second)という単位系で表現される。フレーム期間を波長と考えれば、フレームレートは「周波数」として表現することができ、フレームレートの表記には、単位系として「Hz」を用いることもある。ビデオレート情報は、ファーストプレイタイトルの再生がなされてから、トップメニュータイトルの再生時、又は、0〜999のタイトル番号で指示されるタイトルの再生時まで有効になる。
トップメニュータイトルの再生後、又は、0〜999のタイトル番号で指示されるタイトルの再生後は、そのタイトルにおけるプレイリストにおけるビデオストリームのビデオレートが適用されるからである。
以上が記録媒体についての説明である。続いて、再生装置の詳細について説明する。再生装置が、ディスクインサート時に、以下の処理手順を実行する点が新しい。
図39は、ディスクインサート時の処理手順を示すフローチャートである。
インサートされたディスクからインデックステーブル(Index.bdmv)を読み出し(ステップS501)、読み出されたIndex.bdmvのBDMVアプリケーション情報に記載された高バンド幅デジタル出力機能を実行するためのネゴシエーションを開始させて(ステップS502)、ステップS503〜ステップS509のループに移行する。このループは、ファーストプレイタイトルにおける0xFFFのカレントタイトル番号を、タイトル番号レジスタに設定して(ステップS503)、カレントタイトルに対応するタイトルインデックスのオブジェクトタイプがBD-Jオブジェクトであるか否かを判定し(ステップS504)、BD-Jオブジェクトでないなら、カレントタイトルに対応するタイトルインデックスのムービーオブジェクトレファレンスによって示されるムービーオブジェクトをロードし(ステップS505) 、BD-Jオブジェクトであるなら、カレントタイトルに対応するタイトルインデックスのオブジェクトファイル名情報によって示されるBD-Jオブジェクトをロードして(ステップS506)、ロードしたオブジェクトに基づき、タイトル再生を開始する(ステップS509)という処理を、ステップS508がNo、ステップS509がYesと判定されるまで繰り返すものである。
ステップS503−ステップS509のループは、タイトル再生の開始後、ステップS508−ステップS509からなるループに移行する。本ループでタイトル再生が終了したと判定された場合(ステップS508でYes)、タイトル番号レジスタのカレントタイトル番号を更新した上で(ステップS510)、ステップS504に移行する。
ステップS508−ステップS509のループで、ディスクイジェクトがなされた場合、本フローチャートの処理は終了する。インデックステーブルに、フォーマットレートの情報が存在するので、ファーストプレイタイトルの再生に先立ち、ネゴシエーションを実行することができる。
図40は、表示装置と、再生装置との間の間のやりとりを示す図である。
図40(a)は、データ転送フェーズ、ネゴシエーションフェーズを示す。左側に再生装置を示し、右側に表示装置を示す。再生装置と、表示装置との間の3つの矢印のうち、先頭のものはネゴシエーションフェーズph1を象徴的に示し、次のものは、23.976FPSによるデータ伝送フェーズph2を象徴的に示す。最後のものは、47.954FPSによるデータ伝送フェーズph3を象徴的に示す。
3D出力モードでは、各フレームにおいてベースビューコンポーネント、ディペンデントビューコンポーネントの双方を伝送するので、実質的には表示フレームは倍になる。具体的には、2D出力モードにおいて23.976FPSを使用していた場合、3D出力モードでは47.954FPSになる。しかし本図の一例では、ベースビューコンポーネント及びディペンデントビューコンポーネントを結合して、サイドバイサイド方式で、2D出力モードと同じフレーム期間内に転送することにより、フレームレートの変動を発生させないようにしている。つまり、2D出力モードであっても、フレームレートは23.976FPSのままで、伝送すべきデータを、ベースビューコンポーネント及びディペンデントビューコンポーネントの組みに変更する。こうすることで、フレームレートの変更を招かずに、2D出力モードと、3D出力モードとの切替え時におけるフレームレートの変動をなくすようにしている。
しかし、ディスク装填直後のネゴシエーションフェーズには、相互認証が存在し、この相互認証の過程ではフレームレートやビデオフォーマットが必要になる。しかしこれらフレームレートやビデオフォーマットの情報はビデオストリーム固有の情報であるから、タイトルが選択されて再生されるべきプレイリストが定まらないと、これらの情報を取得することはできない。
一方、Initializationのプロシージャで述べたように、initial_output_mode情報がオンになっており、再生装置にB−Dプレゼンテーションモードの再生能力が存在する場合、ディスクの装填と同時に、3D再生を開始させることができる。しかし、表示装置によるネゴシエーションに時間がかかると、3D眼鏡をかけて立体視映像の視聴の準備をしたとしても、立体視映像が表示装置になかなか表示されず、ユーザの苛立ちを募らせてしまうという好ましくない事態が生じる。
そこで本実施形態では、上述したようにフレームレートやビデオフォーマットの情報を、ディスク装填時に第1に読み取られる情報、つまり、インデックステーブルに設けることにしている。
同図(b)は、タイミングチャートである。第1段目は、モジュールマネージャの処理を時系列に示し、第2段目は、送信部の処理を時系列に示す。
第2段目によると、送信部は、ネゴシエーション、データ転送という2つのフェーズを経ることがわかる。
第1段目によると、モジュールマネージャは、インデックステーブルの読み出し、ファーストプレイタイトルの選択、ファーストプレイタイトルを構成する動作モードオブジェクトの実行及びプレイリスト再生、タイトル0〜999の選択、タイトル0〜999を構成する動作モードオブジェクトの実行及びプレイリスト再生という5つのフェーズを経ることがわかる。矢印fy1,fyは、マネージャから送信部へのフォーマット、レートの指示を模式的に示す。送信部へのフォーマット、レートの指示は、ファーストプレイタイトルの選択とほぼ同時になされているので、ファーストプレイタイトルの選択処理と並行してネゴシエーションが開始されており、データ転送の開始時期が格段に早まっていることがわかる。
以上のように本実施形態によれば、上記記録媒体では、インデックステーブルにアプリケーション情報が存在しており、このアプリケーション情報は、認証に必要なパラメータとして、フォーマットレートを含むので、インデックステーブルの読み取り後、ファーストプレイタイトルの再生処理と同時に、相手側機器との相互認証を開始することができる。ファーストプレイタイトルの再生処理と、相手側機器との相互認証処理とをパラレルに実行することができるので、起動遅延は、約半分の時間にまで低減させることができる。
(第6実施形態)
本実施形態では、立体視インターリーブドストリームファイルの内部構造についての改良である。
前提事項として、UDFファイルシステムにおけるファイルについて簡単に説明する。UDFにおけるファイルは、ファイルエントリーによって管理されている複数のエクステントから構成される。「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。タグには、ファイルエントリ記述子、スペースビットマップ記述子などの種別があるが、ファイルエントリの場合には、記述子タグとしてファイルエントリを示す「261」が記述される。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、あるディレクトリの配下にある下位ファイルを構成するエクステントの記録位置を示す論理ブロック番号(LBN)を含む。アロケーション記述子は、エクステント長を示すデータと、エクステントの記録位置を示す論理ブロック番号とを含む。ただしエクステント長を示すデータの上位2ビットは、「0」に設定されることで、割り付け済みかつ記録済みエクステントである旨を示し、「1」に設定されることで、割り付け済みかつ未記録エクステントである旨を示す。「0」に設定されることで、アロケーション識別子の続きのエクステントであることを示す。あるディレクトリの配下にある下位ファイルが複数のエクステントに分割されている場合には、ファイルエントリはエストテント毎に複数のアロケーション記述子を有することになる。
上述したようなファイルエントリーのアロケーション識別子を参照することで、ストリームファイルを構成するエクステントのアドレスを知得することができる。
次に、本実施形態で想定されているファイルの種別について説明する。
<立体視インターリーブドストリームファイル(FileSS)>
立体視インターリーブドストリームファイル(FileSS)は、2TSをインターリーブ形式にしたストリームファイル(2TSインターリーブファイル)であり、5桁の整数値と、立体視再生用のインターリーブド形式ファイルである旨を示す拡張子(ssif)とによって識別される。立体視インターリーブドストリームファイルは、エクステントSS[n]から構成され、エクステントSS[n](EXTSS[n])は、インデックス番号nによって特定される。インデックス番号nは、立体視インターリーブドストリームファイルの先頭から1つずつインクリメントされる番号である。
エクステントSS[n]は、ディペンデントビューデータブロックと、ベースビューデータブロックとの組みとして構成される。
エクステントSS[n]を構成するベースビューデータブロック、ディペンデントビューデータブロックは、ファイル2D、ファイルベース、ファイルディペンデントからのクロスレファレンスの対象となる。クロスレファレンスとは、記録媒体に記録された1つのデータ客体を、複数のファイルのエクステントとして、ファイルエントリーに登録しておくことをいう。本実施形態では、ファイル2Dのファイルエントリー、ファイルベースのファイルエントリー、ファイルディペンデントのファイルエントリーに、ベースビューデータブロック、ディペンデントビューデータブロックの先頭アドレス及び連続長が登録されることになる。
<ファイルベース(FileBase)>
ファイルベース(FileBase)は、ファイル2Dに対応するクリップ情報におけるエクステントスタートポイント情報によって指示されるメインTSを「格納している」とされる仮想的なストリームファイルであり、少なくとも1つのエクステント1[i](EXT1[i]と呼ぶ)によって構成される。エクステント1[i]は、ファイルベースにおけるi番目のエクステントであり、iは、エクステントのインデックス番号であり、ファイルベースの先頭を0としてインクリメントされる。ファイルベースは、2TSファイルである立体視インターリーブドストリームファイルを、1TSファイルとして扱うための仮想的なストリームファイルであり、そのファイルエントリーを、再生装置のメモリ上で構築することで仮想的に生成される。
実際の読み出しにあたって、ファイルベースは、この立体視インターリーブドストリームファイルのファイル名を用いてファイルオープンを行うことで特定される。具体的にいうと再生装置のミドルウェアは、立体視インターリーブドストリームファイルのファイル名を用いたファイルオープンがコールされた場合、ファイルベースのエクステントを特定するファイルエントリーをメモリ上で生成して、ファイルベースを仮想的にオープンする。立体視インターリーブドストリームファイルは、「1TSのみを包含している」とみなすことができ、2TSの立体視インターリーブドストリームファイルを1TSのファイルベースとして記録媒体から読み出すことができる。
B−Bプレゼンテーションモードにおいて、ベースビューデータブロックのみを読み出したい場合は、このファイルベースを構成するエクステントのみが読み出しの対象になる。B−BプレゼンテーションモードからB−Dプレゼンテーションモードへのモード変更があったとしても、読出範囲を、ファイルベースを構成するエクステントの記録範囲から、立体視インターリーブドストリームファイルを構成するエクステントの記録領域に拡大すれば、ベースビューデータブロック、ディペンデントビューデータブロックの双方を読み出すことができるから、ファイル読み出しの効率性を低下させることはない。
<ファイルディペンデント(FileDependent)>
ファイルディペンデント(FileDependent)は、サブTSを「格納している」とされるストリームファイルであり、エクステント2[i](EXT2[i])によって構成される。EXT2[i]は、ファイルディペンデントにおけるi番目のエクステントであり、iは、エクステントのインデックス番号であり、ファイルディペンデントの先頭を0としてインクリメントされる。ファイルディペンデントは、2TSファイルである立体視インターリーブドストリームファイルを、サブTSを格納した1TSファイルとして扱うための仮想的なストリームファイルであり、そのファイルエントリーを、再生装置のメモリ上で構築することで仮想的に生成される。
ディペンデントビュービデオストリームは、立体視インターリーブドストリームファイルのファイル名である5桁番号に、1を加算した番号がファイル名として付与される。このファイル名を用いてアクセスされる。記録媒体には、ダミーファイルが記録されていて、ディペンデントビュービデオストリームの識別番号である、「1を加算した番号」がこのダミーファイルに付与される。ダミーファイルとは、ファイル名のみが存在していて、実体であるエクステントが存在しないファイルであり、ディペンデントビュービデオストリームは、このダミーファイルに格納されるとして扱われる。
<ファイル2D(File2D)>
ファイル2Dは、2D出力モードにおいて再生されるメインTSを格納している1TSのストリームファイルであり、エクステント2Dから構成される。ファイル2Dは、5桁の整数値と、立体視再生用のインターリーブド形式ファイルである旨を示す拡張子(ssif)とによって識別される。
図41は、エクステントと、ファイル2D/ファイルベース、ファイルディペンデントとの対応付けを示す。
第1段目は、ファイル2D/ファイルベース、ファイルディペンデントである00001.m2ts,00002.m2tsを示し、第2段目は、ベースビューデータブロックを格納したエクステント、ディペンデントビューデータブロックを格納したエクステントを示す。第3段目は、立体視インターリーブドストリームファイルである00001.ssifを示す。
破線の矢印h1,h2,h3,h4は、エクステントEXT1[i],EXT2[i]が、どのファイルに帰属しているかというアロケーション識別子による帰属関係を示す。矢印h1,h2に示される帰属関係によると、エクステントEXT1[i],EXT1[i+1]は、ファイルベースである00001.m2tsのエクステントとして登録されていることがわかる。
矢印h3,h4に示される帰属関係によると、エクステントEXT2[i],EXT2[i+1]は、ファイルディペンデントである00002.m2tsのエクステントとして登録されていることがわかる。
矢印h5,h6,h7,h8に示される帰属関係によると、エクステントEXT1[i],EXT2[i],EXT1[i+1],EXT2[i+1]は、00001.ssifのエクステントとして登録されていることがわかる。以上のように、エクステントEXT1[i],EXT1[i+1]は、00001.ssifに帰属すると同時に、00001.m2tsに帰属するという二重性を有していることがわかる。この「ssif」という拡張子は、StereoScopic Interleave Fileの頭文字をとったものであり、立体視再生のため、インターリーブ形式になっていることを示す。
ここで、ファイルベースを構成するエクステントと、ファイルディペンデントを構成するエクステントとの組みであって、同じエクステント識別子で特定されるものを「インターリーブエクステントユニット」という。この図41の例において、エクステント識別子=iで特定されるEXT1[i]と、EXT2[i]とのペアがインターリーブエクステントユニット[i]になり、エクステント識別子=i+1で特定されるEXT1[i+1]と、EXT2[i+1]とのペアがインターリーブエクステントユニット[i+1]になる。立体視インターリーブドストリームファイルに対するランダムアクセスにあたっては、このエクステント識別子で特定されるインターリーブエクステントユニットが一度に記録媒体から読み出されることを保障せねばならない。
図42は、立体視インターリーブドストリームファイルと、ファイル2D/ファイルベースとの関係を示す。
同図(a)の第3段目は、インターリーブドストリームファイルの内部構成を示す。立体視インターリーブドストリームファイルは、ベースビューデータブロックを格納したエクステントEXT1[1],EXT1[2]のそれぞれと、ディペンデントビューデータブロックを格納したエクステントEXT2[1],EXT2[2]のそれぞれとが交互配置されることで構成される。
第1段目は、ファイル2D及びファイルベースの内部構成を示す。ファイル2D/ファイルベースは、第3段目におけるインターリーブドストリームファイルを構成するエクステントのうち、ベースビューデータブロックを格納したエクステントEXT1[1],EXT1[2]のみから構成されている。ファイル2Dのファイル名は、インターリーブドストリームファイルのファイル名が同一だが、拡張子が異なる。
第2段目は、ファイディペンデントの内部構成を示す。ファイディペンデントは、第3段目におけるインターリーブドストリームファイルを構成するエクステントのうち、ディペンデントビューデータブロックを格納するエクステントEXT2[1],EXT2[2],EXT2[2]のみから構成されている。ファイルディペンデントのファイル名は、インターリーブドストリームファイルのファイル名に1を加算したものになっており、また拡張子が異なる。
3D映像を含む光ディスクであったとしても、全ての再生装置が3D再生方式に対応しているとは限らないため、2Dでの再生がサポートされることが望ましい。ただし、2D再生のみに対応した再生装置は、3Dで拡張されたデータ構造などは判別できない。2D再生装置は旧来の2D再生方式のままの判別方法で、2Dプレイリストおよび2Dストリームにのみアクセスできる必要があるので、ベースビュービデオストリームについては、2D方式の再生装置が認識できるようなファイル形式で格納されている。
1つ目の方法は、上述したようなプレイリスト情報の参照、つまり、メインTSは2D再生でも利用できるように2D再生方式と同じファイル名を使い、インターリーブ形式のストリームファイルは拡張子を変える方法である。同図(b)における00001.m2ts、及び、00001.ssifは、一方は2D方式、他方は3D方式でありながら同じファイル名「00001」によってカップリングされている。
プレイリストは、メインTSのAVクリップしか参照しないため、既存の2D再生装置ではファイル2Dしか再生しない。3D対応の再生装置は、プレイリストはメインTSの入ったファイル2Dしか参照していないが、同じ識別番号を持ち、拡張子のみ異なるファイルが存在する場合は、そのファイルを見つけ出し、3D映像のためのインターリーブ形式のストリームファイルであると判断して、メインTSと、サブTSとを出力する。
2つ目の方法は、フォルダを分ける方法である。メインTSは既存のフォルダ名(例:STREAM)を持つフォルダ内に格納しておくが、サブTSは、3D特有の名前を持つフォルダ(例:SSIF)に同じファイル名『00001』で格納しておく。プレイリストがファイルを参照する際、2D再生装置ではSTREAMフォルダ内のファイルのみを参照するが、3D再生装置の場合は「STREAM」とSSIFフォルダの中から、同じ名前のファイルを同時に参照することにより、メインTSと、サブTSとを関連づけることが可能となる。
3つ目の方法は、識別番号によるものである。ファイル2D/ファイルベースの識別番号が「00001」である場合、ファイルディペンデントの識別番号は、同図(c)に示すようにこのファイル2Dの識別番号に「1」を加算した番号、つまり、「0002」という識別番号を付与する等、一定のルールに従って関連づけを行う方法である。しかし記録媒体のファイルシステムにおいて、上述のルールで命名されたファイルディペンデントは、あくまでも実体のないダミーファイルとして扱われる。これは、ファイルディペンデントの実体は、立体視インターリーブドストリームファイルに過ぎないとの理由による。こうして関連付けられたファイル名を、基本ストリーム選択テーブルにおけるストリーム登録情報、及び、拡張ストリーム選択テーブルにおけるストリーム登録情報におけるストリームエントリーのサブクリップエントリーIDレファレンス(ref_to_subclip_entry_id)に記述しておく。一方、再生装置については、サブクリップエントリーIDレファレンスに記述された識別番号に「1」を加算した識別番号のファイル名は、ダミーファイルのファイル名であると認証して、ファイルディペンデントを仮想的にオープンする処理を実行する。こうすれば、ストリーム選択プロシージャにおいて、上述したような関連付けがなされたファイルディペンデントが確実に記録媒体から読み出されることになる。
クリップ情報ファイルについても、同様のルールで識別される。
以上が、ファイル2D、ファイルベース、ファイルディペンデントについての説明である。
以下、データブロックの詳細について説明する。
<ベースビューデータブロック>
ベースビューデータブロック(B[i])は、メインTSのi番目のデータブロックである。ここで、メインTSとは、カレントプレイアイテム情報のクリップ情報ファイル名情報(クリップ情報ファイルネーム情報)を通じて、メインパスの基軸として指定されているTSである。B[i]の「i」は、ファイルベースの先頭のデータブロックを0としてインクリメントされるインデックス番号である。
ベースビューデータブロックには、ファイルベースと、ファイル2Dとで共通化されるものと、ファイルベースと、ファイル2Dとで共通化されていないものとがある。
ファイル2D及びファイルベースで共通化されるベースビューデータブロック、及び、ファイル2D固有のベースビューデータブロックは、ファイル2Dのエクステントになるものであり、再生装置におけるバッファアンダーフローを生じさせない長さに設定されている。そしてその先頭のセクタアドレスは、ファイル2Dのファイルエントリーにおけるアロケーション記述子に記述されている。
ファイル2Dと共通化されていないファイルベース固有のベースビューデータブロックは、ファイル2Dのエクステントにはならないから、再生装置におけるシングルバッファをアンダーフローを生じさせない長さに設定されている訳ではない。より小さいサイズ、つまり、再生装置におけるダブルバッファをアンダーフローさせない長さに設定されている。
またファイルベース固有のベースビューデータブロックは、その先頭セクタアドレスがファイルエントリーにおけるアロケーション記述子に記述されていない。代わりに、ベースビューデータブロックにおける先頭ソースパケットのソースパケットが、メインTSに対応するクリップ情報ファイルのクリップ情報内のエクステントスタートポイント情報によって、ポインティングされている。そのため、ファイルベース固有のベースビューデータブロックの先頭セクタアドレスは、立体視インターリーブドストリームファイルのファイルエントリーにおけるアロケーション記述子と、クリップ情報内のエクステントスタートポイント情報とを用いて導きだす必要がある。
<ディペンデントビューデータブロック>
ディペンデントビューデータブロック(D[i])は、サブTSのi番目のデータブロックである。サブTSとは、カレントプレイアイテム情報に対応する拡張ストリーム選択テーブルのストリーム登録列におけるストリームエントリーにおいて、サブパスの基軸として指定されているTSである。D[i]の「i」は、ファイルディペンデントの先頭のデータブロックを0としてインクリメントされるインデックス番号である。
ディペンデントビューデータブロックは、ファイルディペンデントのエクステントになるものであり、再生装置におけるダブルバッファのアンダーフローを生じさせない長さに設定されている。
また、記録媒体の連続領域上で、ディペンデントビューデータブロックは、同じ再生時間で再生されるべきベースビューデータブロックより手前に配置される。そのため、立体視インターリーブドストリームファイルの読み出し時にあたって、ディペンデントビューデータブロックは、必ずベースビューデータブロックより先に読み出されることになる。
ディペンデントビューデータブロックは、ファイル2Dと共通化されていないので、その先頭セクタアドレスが、ファイル2Dのファイルエントリーにおけるアロケーション記述子に記述されていない。代わりに、ディペンデントビューデータブロックにおける先頭ソースパケットのソースパケットが、クリップ情報内のエクステントスタートポイント情報によって、ポインティングされている。そのため、ディペンデントビューデータブロックの先頭セクタアドレスは、ファイル2Dのファイルエントリーにおけるアロケーション記述子と、クリップ情報内のエクステントスタートポイント情報とを用いて導きだす必要がある。
<エクステントの類型>
上述したように、ファイル2Dのエクステントには、ファイルベースのエクステントと共通のものと、ファイルベースと共通ではないものとがある。
ファイル2Dのエクステントが、B[0]、B[1]、B[2]、B[3]2D、B[4]2Dから構成され、ファイルベースのエクステントがB[0]、B[1]、B[2]、B[3]ss、B[4]ssから構成されるものとする。B[0]、B[1]、B[2]は、ファイルベースと共通化されているベースビューデータブロックである。B[3]2D、B[4]2Dは、ファイルベースと共通化されていない、ファイル2D固有のベースビューデータブロックである。
またB[3]ss、B[4]ssは、ファイル2Dと共通化されていない、ファイルベース固有のベースビューデータブロックである。
B[3]2Dにおけるデータと、B[3]ssのデータとは、bit-for-bitの同一性を有する。B[4]2Dにおけるデータと、B[4]ssのデータとは、bit-for-bitの同一性を有する。
これらのファイル2DにおけるデータブロックB[2]、B[3]2D、B[4]2Dは、ロングジャンプを生じさせる場所の直前において、連続長が大きいエクステント(ビッグエクステント)を構成する。ファイル2Dは、ロングジャンプの直前で、ビックエクステントを形成することができるので、立体視インターリーブドストリームファイルを2D出力モードで再生する場合であっても、リードバッファのアンダーフローを危惧する必要はない。
ファイル2D及びファイルベースは、エクステントが一部異なっているものの、同一性を有しているので、これらファイル2D及びファイルベースを併せて、「ファイル2D/ファイルベース」という。
図43は、立体視インターリーブドストリームファイル、ファイル2D、ファイルベースの相互関係を示す。第1段目はファイル2Dを示し、第2段目は記録媒体上のデータブロック、第3段目は立体視インターリーブドストリームファイル、第4段目はファイルベース、第5段目はファイルディペンデントを示す。
第2段目におけるデータブロックは、上述したD[1],B[1],D[2],B[2],D[3],B[3]ss,D[4],B[4]ss,B[3]2D,B[4]2Dである。そして矢印ex1,ex2,ex3,ex4は、データブロックのうち、B[1],B[2],B[3]2D,B[4]2Dがファイル2Dのエクステントを構成しているという帰属関係を示す。
矢印ex5,ex6は、データブロックのうち、D[1],B[1],D[2],B[2],D[3],B[3]ss,D[4],B[4]ssが立体視インターリーブドストリームファイルのエクステントを構成しているという帰属関係を示す。
第4段目は、この立体視インターリーブドストリームファイルを構成するデータブロックのうち、B[1],B[2],B[3]ss,B[4]ssがファイルベースのエクステントとなり、第5段目は、立体視インターリーブドストリームファイルを構成するデータブロックのうち、D[1],D[2],D[3],D[4]がファイルディペンデントのエクステントになることを示す。
図44は、2Dプレイリスト、3Dプレイリストを示す。第1段目は、2Dプレイリスト情報であり、第2段目は、ベーズデータブロック、第3段目は、3Dプレイリスト、第4段目は、ディペンデントビューデータブロックを示す。
矢印rf1,rf2,rf3は、2Dプレイリスト情報のプレイアイテム情報におけるclip_information_file_nameに記述されているファイル名00001と、拡張子m2tsとを組合せることによる再生経路を示す。この場合、データブロックB[1],B[2],B[3]2Dによってベースビュー側の再生経路が構成される。
矢印rf4,rf5,rf6,rf7は、3Dプレイリスト情報のプレイアイテム情報により指定される再生経路を示す。この場合、B[1],B[2],B[3]ss,B[4]ssを用いてベースビュー側の再生経路が構成される。
矢印rf8,rf9,rf10,rf11は、3Dプレイリスト情報のサブプレイアイテム情報により指定される再生経路を示す。この場合、D[1],D[2],D[3],D[4]を用いてディペンデントビュー側の再生経路が構成される。これらのプレイアイテム情報、サブプレイアイテム情報により指定される再生経路を構成するデータブロックは、プレイアイテム情報におけるclip_information_file_nameに記述されているファイル名と、拡張子ssifとを組合せてファイルオープンを行うことで読み出すことができる。
本図の3Dプレイリストにおけるクリップ情報ファイルネーム情報、2Dプレイリスにおけるクリップ情報ファイルネーム情報は、共通のファイル名を記述しているので、これら3Dプレイリスト、2Dプレイリストを定義するようなプレイリスト情報を記述するにあたっては共通する記述で足りる(符号df1,df2参照)。よって、この3Dプレイリストを実現するようなプレイリスト情報を記述しておけは、再生装置の出力モードが立体視出力モードのときは3Dプレイリストとして機能し、再生装置の出力モードが2D出力モードのときは2Dプレイリストとして機能することになる。本図の2Dプレイリスト、3Dプレイリストは、1つのプレイリスト情報を記述しておくことで、これを解釈する再生装置の出力モードに応じて、2Dプレイリスト、3Dプレイリストとして解釈されるので、オーサリングを行う者の手間を軽減することができる。
立体視インターリーブドストリームファイルにメインTS、サブTSを格納する場合、2Dプレイリストのプレイアイテム情報におけるclip_information_file_nameは、ファイル2Dのファイル名を記述する。3Dプレイリストのプレイアイテム情報におけるclip_information_file_nameは、ファイルベースのファイル名を記述する。ファイルベースは、仮想的なファイルであり、そのファイル名は、立体視インターリーブドストリームファイルと同じものなので、立体視インターリーブドストリームファイルのファイル名をプレイアイテム情報におけるclip_information_file_nameに記述しておけばよい。拡張ストリーム選択テーブルのストリーム登録情報におけるref_to_subclip_entry_idは、ファイルディペンデントのファイル名を記述する。ファイルディペンデントのファイル名は、立体視インターリーブドストリームファイルの識別番号に、1を加算したものである。
以上のように、ベースビューデータブロックと、ディペンデントビューデータブロックとを1つの立体視インターリーブドストリームファイルに格納しつつも、立体視インターリーブドストリームファイルを、ファイル2D、ファイルベース、及び、ファイルディペンデントのうち、何れかのファイルとしてオープンすることができるので、デコーダ側では、立体視インターリーブドストリームファイルを通常のストリームファイルと同様に取り扱うことができる。よって、ベースビュービデオストリーム、ディペンデントビュービデオストリームの格納方式に、積極的に立体視インターリーブドストリームファイルを取り入れることができる。
次にクリップ情報ファイルの詳細な内部構造について説明する。
図45は、クリップ情報ファイルの内部構成を示す。
同図(a)は、2Dのクリップ情報ファイル、同図(b)は、3D用のクリップ情報ファイルを示す。これらのクリップ情報ファイルは、『クリップ情報』、『シーケンス情報』、『プログラム情報』、『特徴点情報』を含む。
『クリップ情報』は、ストリームファイルに格納されているソースパケット列のそれぞれが、どのようなAVクリップであるかをATCシーケンス毎に示す。
『シーケンス情報』は、ストリームファイルに格納されている1又は複数のソースパケット列がどのようなATCシーケンスであるかを示す情報(ATCシーケンス情報)をATCシーケンス毎に示す構成になっている。ATCシーケンス情報は、ATCの開始点たるソースパケットがどこに存在するかをソースパケット番号で示す情報、STCシーケンス識別子ーATCシーケンス識別子間のオフセットと、複数のSTCシーケンスのそれぞれについてのSTCシーケンス情報とを含む。STCシーケンス情報は、そのSTCシーケンスにおけるPCRを格納しているソースパケットのパケット番号、そのATCシーケンスのうち、どこにSTCシーケンスの開始点たるソースパケットが存在するかを示す情報、STCシーケンスにおける再生開始時刻、再生終了時刻を含む。
『プログラム情報』は、クリップ情報ファイルによって「AVクリップ」であるとして管理されているメインTS、サブTSのプログラム構成を示す情報であり、AVクリップがどのようなESを多重化したものであるかを示す。具体的には、AVクリップに多重化されているESがどのようなパケット識別子を有しているか、どのような符号化方式であるかを示す。ビデオストリームが、MPEG2-video,MPEG4-AVC等のうち、どの符号化方式を用いて圧縮符号化されているかは、このプログラム情報内に明示される。
『特徴点情報』は、AVクリップに多重化されている複数のESの特徴点がどこに存在するかを、ES毎に示す情報である。ES毎の特徴点を示す情報が、基本エントリーマップと呼ばれる。
何が特徴点になるかは、ストリームの種別毎に異なる。ベースビュービデオストリーム、ディペンデントビュービデオストリームの場合は、オープンGOP、クローズドGOPの先頭に位置するIピクチャタイプのビューコンポーネントの先頭を示すアクセスユニットデリッミターが特徴点となる。オーディオストリームの場合は、1秒置き等、一定期間置きに存在するオーディオフレームの先頭位置を示すアクセスユニットデリッミターが特徴点となり、PGストリーム、IGストリームの場合は、グラフィクスストリームのディスプレイセットのうち、表示に必要な全ての機能セグメントを具備したもの(エポックスタートのディスプレイセット、アクジッションポイントのディスプレイセット)の先頭位置を示すアクセスユニットデリッミターが特徴点となる。
また特徴点をどのように表すかは、ATCシーケンス、STCシーケンスのそれぞれで異なる。ATCシーケンスにおいて特徴点は、ソースパケット番号で表現される。STCシーケンスにおいては、同じ特徴点が、STC時間軸における時点を示すPTSを用いて表現される。
上記違いに鑑みES毎の基本エントリーマップは、複数のエントリーポイントから構成されている。具体的にいうと、エントリーマップを構成する個々のエントリーポイントは、ATCシーケンスにおける特徴点の所在を示すソースパケット番号が、STCシーケンスにおける特徴点の所在を示すPTSと対応付けられており、その特徴点へのアングル切り替えが可能であるか否かを示すフラグ(is_angle_changeフラグ)と、GOP先頭に存在するイントラピクチャのサイズを示す情報(I_size)とを具備している。マルチアングル区間を構成するインターリーブユニットの先頭に位置するソースパケットは、アングル切り替えが可能になっているため、インターリーブユニットの先頭ソースパケットを差すエントリーポイントのis_angle_changeフラグは、必ずオンに設定される。また、インターリーブユニットの先頭ソースパケットを差すエントリーポイントは、エントリーポイントによって、プレイアイテム情報におけるIn_Timeと対応付けられている。
ES毎のエントリーマップは、これらストリーム種別毎の特徴点のソースパケット番号を、PTSに対応付けて示しているので、このエントリーマップを参照することで、STCシーケンスにおける任意の時点から、その時点に最も近いES毎の特徴点の所在を示すソースパケット番号を導くことができる。
以上が2D用のクリップ情報ファイルについての説明である。続いて、3D用のクリップ情報ファイルの詳細について説明する。3D用のクリップ情報ファイルは、図45(b)の内部構成になっていて、通常のクリップ情報(管理情報)である「ファイル2D用のクリップ情報」の他に、ファイルディペンデント用のクリップ情報である「クリップディペンデント情報(ベースビュー管理情報)」、ファイルベース用のクリップ情報である「クリップベース情報(ベースビュー管理情報)」が存在する。これは以下の理由による。上述したように、立体視インターリーブドストリームファイルと、通常のストリームファイルとの混同を避けるため、立体視インターリーブドストリームファイルは、ストリームファイルとは異なるディレクトリに格納される。そのため立体視インターリーブドストリームファイルには、クリップ情報ファイルを対応付けることができない。そこで、クリップディペンデント情報、及び、クリップベース情報は、ファイル2Dに対応するクリップ情報ファイルに格納されることになる。
2D用のクリップ情報と、クリップベース情報及びクリップディペンデント情報との違いは、クリップベース情報及びクリップディペンデント情報の内部に、エクステントスタートポイント列を含むメタデータが存在する点である。
同図(b)において、クリップディペンデント情報は、エクステントスタートポイント列を含み、クリップベース情報も、エクステントスタートポイント列を含む。特徴点情報は、基本となるエントリーマップを含み、エクステンションデータは、拡張エントリーマップを含む。
3D出力モードにおいてクリップ情報ファイルは、クリップベース情報ファイルと、クリップディペンデント情報ファイルとに分割される。
同図(c)は、クリップベース情報ファイルを示す。本図に示すように、クリップベース情報と、基本エントリーマップとから構成される。クリップベース情報は、エクステントスタートポイント情報テーブルを含む。
同図(d)は、クリップディペンデント情報ファイルを示す。本図によるとクリップディペンデント情報ファイルは、クリップディペンデント情報と、拡張エントリーマップとを含む。クリップディペンデント情報は、エクステントスタートポイント情報テーブルを含む。
クリップ情報ファイル用のディレクトリ(CLPIディレクトリ)には、2D出力モードのクリップ情報ファイルが存在している。クリップベース情報ファイルは、3D出力モードにおいて、クリップ情報ファイルから生成され、この2D出力モードのクリップ情報ファイルに格納されているものとして扱われる。
クリップ情報ファイル用のディレクトリ(CLPIディレクトリ)には、ダミーのクリップ情報ファイルが存在しており、このダミーのクリップ情報ファイルには、ファイル2D/ファイルベースに対応する番号、つまり、ファイル2D/ファイルベースの識別番号に「1」を加算した番号のファイル名が付与されている。クリップディペンデント情報ファイルは、3D出力モードにおいて、ファイル2Dに対応するクリップ情報ファイルから生成され、このダミーのクリップ情報ファイルに格納されているものとして扱われる。ここで、2D出力モードのクリップ情報ファイルが00001.clpiであれば、3D出力モードにおいてクリップベース情報ファイルは、00001.clpiに格納されているものとして扱われ、3D出力モードにおいてクリップディペンデント情報ファイルは、00002.clpiに格納されているものとして扱われる。
<エクステントスタートポイント>
エクステントスタートポイントについて説明する。
上述したように立体視インターリーブドストリームファイルは、2つのクリップAVストリーム(BDAV MPEG2トランスポートストリーム)から構成される。エクステントスタートポイント情報テーブルのペアは、立体視インターリーブドストリームファイルを2つのAVストリームに分割する途を与える。エクステントスタートポイント情報テーブルは、以下のように供給される。
(1)エクステントスタートポイント情報テーブルは、サブパスタイプ=8のサブパスを含むプレイリストのプレイアイテムによって参照されるクリップ情報に格納されて再生装置に供給される。サブパスタイプ=8のサブパスとは、オンディスクタイプのOut-of-MUXディペンデントビュービデオストリーム再生パスである。
(2)別のエクステントスタートポイント情報テーブルは、サブパスタイプ=8のサブパスを含むプレイリストのサブプレイアイテムによって参照されるクリップ情報に格納されて再生装置に供給される。
もしプレイアイテム情報に、マルチアングル区間を構成していて、マルチアングル区間が存在することを示すフラグ(イズマルチアングルフラグ)が「オン」に設定された場合、エクステントスタートポイント情報テーブルのペアは、それぞれアングルID値によって参照されるクリップ情報、及び、サブクリップエントリーID値によって参照されるクリップ情報に格納されて再生装置に供給される。
クリップ情報ファイルにおけるエクステントスタートポイント情報テーブルのデータ構造について説明する。ext_data_entry()内のエクステンションデータにおけるID1値と、ID2値とは、それぞれ0x0002,0x0004に設定さねればならない。
エクステントスタートポイント情報テーブルをもつクリップ情報ファイルは、以下の2つの条件を満たす必要がある。
(a)サブパスタイプ=8のサブパスを含むプレイリストのプレイアイテムによって参照されねばならない。
(b)サブパスタイプ=8のサブパスにおけるサブプレイアイテムによって参照されねばならない。ここで、サブパスタイプ=8とは、オンディスクタイプのOut-of-MUXディペンデントビュービデオストリーム再生パスをいう。
図46は、クリップ情報ファイルと、プレイリストと、立体視インターリーブドストリームファイルとの関係を示す。右側は、立体視インターリーブドストリームファイルを示し、左側はクリップ情報ファイルを示す。真ん中は第1段目にファイルベースを示し、第2段目にクリップベース情報ファイル、第3段目に3Dプレイリスト、第4段目にクリップディペンデント情報ファイル、第5段目にファイルディペンデントを示す。
矢印bk1,bk2は、右側におけるストリームファイルを分割することで、ファイルベース、ファイルディペンデントが得られることを示す。
左側におけるクリップ情報ファイルは、特徴点情報、エクステンションデータ、クリップベース情報、クリップディペンデント情報を含む。矢印bk3,bk4は、クリップベース情報におけるエクステントスタートポイント情報テーブル、クリップディペンデント情報におけるエクステントスタートポイント情報テーブルが、立体視インターリーブドストリームファイルを分割する途を与えることを模式的に示す。
図47は、クリップベース情報、クリップディペンデント情報の内部構成を示す図である。本図(a)に示すようにクリップベース情報、クリップディペンデント情報は、対応するAVクリップがどのようなストリームの類型に属するかを示す『クリップストリームタイプ情報』と、対応するAVクリップによって構成されるアプリケーションが、ムービーアプリケーション、タイムベーススライドショーアプリケーション、ブラウザブルスライドショーアプリケーション等、どのような類型に属するかを示す『アプリケーションタイプ』と、再生装置において、ソースパケットがソースパケットデパケッタイザを通過した後、AVクリップにおけるTSパケットがどれだけの転送レートで転送されるかを示す『TSレコーディングレート』と、対応するAVクリップを構成するソースパケット数を示す『ソースパケット数』と、前のAVクリップを構成するATCシーケンスとのATCの差分である『ATC差分値』と、『エクステントスタートポイント情報テーブル』とから構成される。
同図(b)は、エクステントスタートポイント情報テーブルの内部構成を示す。本図に示すようにエクステントスタートポイント情報テーブルは、number_of_extent_start_pointsと、number_of_extent_start_points個のSPN_start_pointから構成される。
number_of_extent_start_pointsは、関連するAVストリームファイルに帰属するエクステントの個数を示す。クリップベース情報におけるエクステントスタートポイント情報テーブルと、クリップディペンデント情報におけるエクステントスタートポイント情報テーブルとのペアは、number_of_extent_start_pointsが同じ値になる。
SPN_extent_start(SPN_extent_start[0]〜SPN_extent_start[number_of_extent_start_point])は、number_of_extent_start_point+1個のSPN_extent_startから構成される。SPN_extent_startは、エクステント識別子[extent_id]によって指示され、AVストリームファイルにおけるextent_id番目のエクステントが開始するソースパケットのソースパケット番号を示す32ビットの値である。
次に、クリップ情報ファイルのエクステンションデータについて説明する。エクステンションデータには、拡張エントリーマップが存在する。拡張エントリーマップは、基本エントリーマップと同様、複数のエントリーポイントから構成されている。具体的にいうと、拡張エントリーマップを構成する個々のエントリーポイントは、ATCシーケンスにおける特徴点の所在を示すソースパケット番号が、STCシーケンスにおける特徴点の所在を示すPTSと対応付けられており、その特徴点へのアングル切り替えが可能であるか否かを示すフラグ(is_angle_changeフラグ)と、GOP先頭に存在するイントラピクチャのサイズを示す情報(I_size)とを具備している。しかし拡張エントリーマップには、以下の制限が、拡張エントリーマップに加えられている点が異なる。
拡張エントリーマップ内に、MPEG4-MVCビューコンポーネントのためのエントリーが存在する場合、拡張エントリーマップにおけるPTSと同じビューコンポーネントに対応するエントリーが拡張エントリーマップに存在せねばならない。
アプリケーションタイプが1、8の2つのクリップ情報ファイルであって、立体視インターリーブドストリームファイルに対応するものが存在する場合、以下の条件が満たされねばならない。つまり、アプリケーションタイプ「=1」のクリップ情報(プライマリビデオストリームというアプリケーションタイプのクリップ情報である)のエクステントID値によって指示されるエクステントが、ベースビュービデオストリームのPTS_EP_Startによって参照されるソースパケットをもつ場合、アプリケーションタイプ=8のクリップ情報の同じエクステントID値によって指示されるエクステントは、ディペンデントビューストリームの同じ値のPTS_EP_Startによって参照されるソースパケットを含んでいなければならない。
図48は、基本エントリーマップと、拡張エントリーマップとを示す図である。本図において、第5段目は、ディペンデントビューデータブロックと、ベースビューデータブロックとの複数の組みを示す。第4段目は、ディペンデントビューデータブロック及びベースビューデータブロックを構成するソースパケット列を示す。第1段目は、PTSにて特定されるビューコンポーネントを示す。そして第2段目は、基本エントリーマップを示し、第3段目は、拡張エントリーマップを示す。
エクステントID=1のエクステントスタートポイントによって指示されるエクステント[1]が、ベースビュービデオストリームのPTS_EP_Start=t1のエントリーによって参照されるSPN=n1のソースパケット[n1]をもつ場合、アプリケーションタイプ=8のクリップ情報の同じエクステントIDである、エクステントID=1のエクステントスタートポイントによって指示されるエクステント[1]は、ディペンデントビューストリームの同じ値のエントリーである、PTS_EP_Start=t1のエントリーによって参照されるSPN=n11のソースパケット[n11]を含む。
以上のように、ベースビュービデオストリームのGOP(i)の先頭に位置するソースパケットと、ディペンデントビュービデオストリームのGOP(i)の先頭に位置するソースパケットとが、同一のインターリーブエクステントユニットに属する場合、ベースビュービデオストリームのGOP(i)先頭のソースパケット、及び、ディペンデントビュービデオストリームのGOP(i)の先頭ソースパケットをポインティングするエントリーが、基本エントリーマップ及び拡張エントリーマップの双方に追加される。よってこの場合、基本エントリーマップ及び拡張エントリーマップの双方を用いれば、ベースビュービデオストリームのGOP(i)、及び、ディペンデントビュービデオストリームのGOP(i)の連続読み出しを保障することができる。
図49は、拡張エントリーマップにおいて許容されないエントリーを示す。
ベースビュービデオストリームのPTS_EP_Start=xのエントリーによって参照されるSPN=xのソースパケット[x]が、エクステントID=xにて参照されるファイルベースエクステントの先頭に存在していて、PTS_EP_Start=xのエントリーによって参照されるSPN=yのソースパケット[y]が、エクステントID「=j」にて参照されるファイルディペンデントエクステントの先頭に存在しており、iとjとが異なるものとする。
エクステントID=iのクリップディペンデントのエクステントスタートポイントによって指示されるエクステント[i]は、ベースビュービデオストリームの同じ値のエントリーである、PTS_EP_Start=xのエントリーによって参照されるSPN=xのソースパケットを含んでいるとはいえないから、拡張エントリーマップにはPTS_EP_Start=xのエントリーを追加することはできない。
ベースビュービデオストリームのGOP(i)の先頭に位置するソースパケットと、ディペンデントビュービデオストリームのGOP(i)の先頭に位置するソースパケットとが、別々のインターリーブエクステントユニットに属する場合、GOP(i)先頭のソースパケットをポインティングするエントリーを、基本エントリーマップ及び拡張エントリーマップの何れにも追加しない。この場合、ランダムアクセスのアクセス先から、ベースビュービデオストリームのGOP(i)、及び、ディペンデントビュービデオストリームのGOP(i)が除外されるので、アクセス性能の低下を防止することができる。
図50は、プレイアイテムの再生手順を示す。
ステップS201は、カレント出力モードが3D出力モードであるか否かの判定であり、カレント出力モードが2D出力モードであれば、ステップS203〜ステップS206を実行する。
ステップS203において、カレントプレイアイテムのClip_Information_file_nameに記述されている「XXXXX」と、拡張子「m2ts」とで指定されているストリームファイルをオープンし、ステップS204において、ビデオストリームのパケットIDに対応するエントリーポイントを用いて、カレントPlayItem.In_Time及びカレントPlayItem.Out_TimeをStart_SPN[i]及びEnd_SPN[i]に変換する。
ステップS205では、パケットID[i]のTSパケット[i]をStart_SPN[i]からEnd_SPN[i]まで読み出すための読出範囲[i]に属するエクステントを特定し、ステップS206において、読出範囲[i]に属するエクステントを連続的に読み出すよう、記録媒体のドライブに指示する。
カレント出力モードが立体視出力モードであれば、ステップS300〜ステップS60のループに移行する。
ステップS300において、カレントプレイアイテムのClip_Information_file_nameに記述されている「XXXXX」と、拡張子「ssif」とで指定されているストリームファイルをオープンし、ステップS301において、カレントプレイアイテム情報のベースビューインディケータに従い、ベースビュービデオストリームをレフトビュービデオプレーン及びライトビュービデオプレーンのどちらか一方に割り当て、ディペンデントビュービデオストリームを、レフトビュービデオプレーン及びライトビュービデオプレーンの他方に割り当てる。
ステップS302において、ベースビュービデオストリームに対応する基本エントリーマップを用いて、カレントPlayItem.In_Time及びカレントPlayItem.Out_TimeをStart_SPN[i]及びEnd_SPN[i]に変換する。
ステップS303では、ディペンデントビュービデオストリームに対応する拡張エントリーマップを用いて、SubPlayItemIn_Time、SubPlayItemOut_TimeをStart_SPN[j]、End_SPN[j]に変換する(ステップS304)。
ベースビュービデオストリームを構成するTSパケット[i]をStart_SPN[i]からEnd_SPN[i]まで読み出すための読出範囲[i]に属するエクステントを特定し(ステップS305)、パケットID[j]のTSパケット[j]をStart_SPN[j]からEnd_SPN[j]まで読み出すための読出範囲に属するエクステントを特定する(ステップS306)。そしてステップS307において読出範囲[i],[j]に属するエクステントをアドレスの昇順にソートして、ステップS308においてソートされたアドレスを用いて、読出範囲[i],[j]に属するエクステントを連続的に読み出すよう、ドライブに指示する。その後、ソースパケット列が読み出されれば、ステップS309においてベースビューのATCシーケンス、ディペンデントビューのATCシーケンスをそれぞれ復元して、ベースビュー用のPIDフィルタ、ディペンデントビュー用のPIDフィルタに送り込む。
以上のように本実施形態によれば、上記記録媒体では、メインTSにおけるGOP及びサブTSにおけるGOPを記録媒体に記録するにあたって、拡張エントリーマップにおけるエントリーは、ディペンデントビューピクチャデータであって、同じ再生時刻で再生されるべきベースビューピクチャデータが、基本エントリーマップのエントリーによってポインティングされているもののみをポインティングするようにしている。
基本エントリーマップのエントリーによってポインティングされているピクチャデータと、拡張エントリーマップのエントリーによってポインティングされているピクチャデータとが、同じエクステントのペアに存在するので、基本エントリーマップ、拡張エントリーマップを手掛かりにしてエクステントをアクセスすれば、ベースビューのGOP、ディペンデントビューのGOPをまとめて再生することができる。これにより、再生開始の遅延を解消することができる。
(第7実施形態)
本実施形態は、立体視スライドショーのアプリケーションを実現する改良に関する。
スライドショーは、静止画から構成されていることから、映画よりも、高精度なランダムアクセスが要求される。高精度なランダムアクセスとは、1枚先、10枚先というように、「一枚のピクチャ」をアクセス単位にしたランダムアクセスである。ビデオストリームのエントリーマップは、1秒間隔というように、1秒程度の時間精度をもち、この1秒という時間間隔には、20〜30枚のピクチャが包含され得る。そのため、上述したエントリーマップを用いてピクチャ精度でのランダムアクセスを実現しようとすると、エントリーマップの参照だけでは足りず、ストリームに対する解析が必要になる。
ここでの「ストリームの解析」とは、エントリーマップに記載されているエントリー位置から、ピクチャのヘッダを取り出し、このヘッダからピクチャのサイズを読み出して、そのサイズに基づき、次のピクチャの記録位置を特定するという処理を、何回も繰り返し、所望のピクチャの記録位置まで辿りつくというものである。かかる解析は、ストリームに対する高頻度のアクセスを伴うものなので、エントリー位置から3枚先、5枚先のピクチャを読み出すだけでも、相当の時間がかかる。ピクチャ精度のランダムアクセスに相当の時間がかかるため、ユーザ操作に即応して、前後のピクチャを表示させたり、10枚前後のピクチャを表示させうる機能をスライドショーに追加しようとしても、制作者サイドが期待するような、使い勝手にならない。
スライドショーに対するエントリーポイントは、ビデオストリームにおけるピクチャ毎のエントリーアドレスを再生時刻に対応づけて示している。そして、プレイリストマーク情報は、個々のピクチャデータを指定するようにしている。
このように個々のピクチャデータがエントリーポイントと、プレイリストマーク情報とによって指示されれば、1枚先、3枚先というように、ピクチャ精度のランダムアクセスが要求されたとしても、ビデオストリームの解析を伴うことなく、ピクチャ精度のランダムアクセスを実現することができる。
時間軸上の任意の時点からビデオストリーム上の記録位置を導くことができ、また、1枚先、3枚先というピクチャ精度でのランダムアクセスを実現することができるので、ユーザ操作に即応して、前後のピクチャを表示させたり、数枚前後のピクチャを表示させうるアプリケーションを制作することができる。
これまでの実施形態において、立体視再生可能なビデオストリームは、インターリーブ形式にしていたが、このようにインターリーブ形式にすると、スライドショーを構成するピクチャデータは、L−LーL、R−RーRというような順序で配列されることになる。このような順序の全てのピクチャデータが、スライドショーを構成しており、個々のピクチャデータがエントリーポイントによって指示されれば、エントリーポイントは、00:00→00:01→00:02、00:00→00:01→00:02というような順序で、配列されることになる。
エントリーマップにおけるエントリーポイントは、その再生時刻が昇順になるように並ばなければならず、エントリーマップに対する制約に違反する。そこで、AVクリップのアプリケーションタイプがスライドショーである場合の特有の制限として、レフトビューストリームを構成するピクチャデータ、及び、ライトビューストリームを構成するピクチャデータを1TS化することにする。このように、1TS化すれば、レフトビューストリームを構成するピクチャデータ、及び、ライトビューストリームを構成するピクチャデータをL−R−L−R−L−Rという順序で配列することができ、そして、これらのピクチャデータのエントリーポイントについては、そのエントリーポイントにおける再生時刻が、00:00→00:00→00:01→00:01→00:02→00:02→00:03、00:03になるように配列することができる。
1枚のスライドをなすピクチャデータを時間順序に配列し、その上で多重化を行うことで、多重化されたピクチャデータのかたまりが、記録媒体の連続領域に記録されることになる。
ベースビュー静止画データ、ディペンデントビュー静止画データが多重化されたトランスポートストリームにおいて、ベースビュー静止画であるピクチャデータの先頭であるアクセスユニットデリミターは、ディペンデントビュー静止画であるピクチャデータの先頭より先行しており、且つ、ディペンデントビュー静止画であるピクチャデータの後尾は、前記ベースビュー静止画の次に再生されるべきベースビュー静止画のピクチャデータにおける先頭を表すアクセスユニットデリミターより先行している。そして、これらベースビュー静止画のピクチャデータの先頭であるアクセスユニットデリミターを格納したソースパケット、ディペンデントビュー静止画のピクチャデータの先頭であるアクセスユニットデリミターを格納したソースパケットは、自身以外のピクチャデータを含んでいない。つまり、ベースビュー静止画を表すピクチャデータ、ディペンデントビュー静止画を表すピクチャデータは、完結した状態で、ベースビュー−ディペンデントビュー−ベースビュー−ディペンデントビューの順に、記録領域に並んでいる。
レフトビューのピクチャデータ、ライトビューのピクチャデータを多重化しているのは以下の理由による。ピクチャデータを一個のエクステントとして記録媒体に記録しようとすると、最小エクステント長を満たせない。最小エクステント長を満たすため、複数のピクチャデータを上述したように時間順序に配置した上多重化して、多重化されたTSを記録する。こうすることで、最小エクステント長を満たすように、TSを分割して記録することが可能になる。
対照的に、サイズが比較的小さいため、1枚の静止画を表示するためのデータを固めて配置した方が、読み取り効率が上がることになる。
以上がスライドショーを構成する場合におけるストリームファイルの改良についての説明である。続いて、エントリーマップにおける改良の詳細について説明する。
拡張エントリーマップのエントリーは、ディペンデントビューピクチャデータであって、同じ再生時刻で再生されるべきベースビューピクチャデータが、基本エントリーマップのエントリーによってポインティングされているもののみをポインティングする。スライドショーでは、ベースビュービデオストリームにおける全てのピクチャを指示するようエントリーマップを設定するので、上述した制約により、ディペンデントビュービデオストリームにおける全てのピクチャが、拡張エントリーマップによって指示されることになる。
こうして、ベースビュービデオストリームにおけるピクチャデータの再生時点が、エントリー時刻として、基本エントリーマップにより指定され、ディペンデントビュービデオストリームにおけるピクチャデータの再生時点が、エントリー時刻として、拡張エントリーマップにより指定されるので、ベースビュービデオストリームを構成するピクチャデータ、ディペンデントビュービデオストリームを構成するピクチャデータのうち、どれかをランダムアクセスのアクセス先に選ぶ場合でも、先行するIDRピクチャを経由するという迂回のオーバーヘッドが発生することはない。
以上のように本実施形態によれば、ストリーム解析を行うことなく、任意のL画像のピクチャデータ、R画像のピクチャデータの組みを読み出して、再生に供することができるので、ユーザのスキップ操作に従い、任意のピクチャデータをランダムアクセスすることができるスライドショーアプリケーションを容易に実現することができる。
(第8実施形態)
本実施形態は、立体視インターリーブドストリームファイルを構成するデータブロックから、ATCシーケンスを復元するための改良に関する。図51は、立体視インターリーブドストリームファイル構成するデータブロックからATCシーケンスがどのように復元されるかを示す。
第4段目は、立体視インターリーブドストリームファイルを構成する複数のデータブロックを示し、第3段目は、メインTS、サブTSに多重化されるソースパケット列を示す。
第2段目は、ディペンデントビューを構成するSTCシーケンス2、エントリーマップ、ディペンデントビューを構成するATCシーケンス2の組みを示し、第1段目は、ベースビューを構成するSTCシーケンス1、エントリーマップ、ベースビューを構成するATCシーケンス1の組みを示す。第3段目から第2段目、第1段目への矢印は、立体視インターリーブドストリームファイルにインターリーブ化されている2つのTS(メインTS、サブTS)のデータブロックからATCシーケンス1、ATCシーケンス2が復元されることを模式的に示す。これらのATCシーケンスは、クリップ情報におけるエントリーマップによって、STCシーケンスとの対応がとられる。
以上が本実施形態に係る記録媒体についての説明である。続いて、再生装置の詳細について説明する。
本実施形態における再生装置の読出部は、2つの記録媒体からのソースパケット入力を受け付ける構成になっており、2つの記録媒体のそれぞれをアクセスするための2つのドライブ、これら2つのドライブから入力されたソースパケットを一旦格納してデコーダに出力するための2つのリードバッファを含む。そして、2つのドライブと、2つのリードバッファとの間に、ATCシーケンス復元部が存在する。このATCシーケンス復元部は、1つの記録媒体から読み出されたインターリーブドストリームファイル内のソースパケットから、ベースビューを構成するATCシーケンスと、ディペンデントビューストリームを構成するATCシーケンスとを分離し、2つのリードバッファのそれぞれに書き込むものである。こうすることで再生装置は、ベースビュービデオストリームを構成するATCシーケンス、ディペンデントビューストリームを構成するATCシーケンスがそれぞれ別々の記録媒体から読み出されたかのように処理することができる。
図52は、ATCシーケンスの復元がどのように行われるかを示す図である。同図(a)は、ATCシーケンス復元部を具備した読出部の内部構成を示す。上述したように、2つのドライブと、2つのリードバッファとの間にATCシーケンス復元部が介在している。図中の矢印B0は、1つのドライブからのソースパケット入力を象徴的に示したものであり、矢印B1は、ベースビュービデオストリームを構成するATCシーケンス1の書き込み、矢印D1は、ディペンデントビューストリームを構成するATCシーケンス2の書き込みを模式的に示す。
図52(b)は、ATCシーケンス復元部によって得られた2つのATCシーケンスが、どのように取り扱われるかを示す。図中の真ん中に多重分離部内に存在するPIDフィルタを示す。左側は、ATCシーケンス復元部によって得られた2つのATCシーケンスを示す。右側は、これらの2つのATCシーケンスを多重分離することで得られるベースビュービデオストリーム、ディペンデントビュービデオストリーム、左目PGストリーム、右目PGストリーム、ベースビューIGストリーム、ディペンデントビューIGストリームを示す。
図53は、ベースビュークリップ情報におけるエクステントスタートポイント情報の一例と、ディペンデントビュークリップ情報におけるエクステントスタートポイント情報の一例を示す。(a)は、ベースビュークリップ情報のエクステントスタートポイント情報と、ディペンデントビュークリップ情報のエクステントスタートポイント情報とを示す。
(b)は、ATCシーケンス1を構成するベースビューデータブロックB[0],B[1],B[2]・・・・B[n]、ATCシーケンス2を構成するディペンデントビューデータブロックD[0],D[1],D[2]・・・・D[n]、を示す。(c)は、ディペンデントビューデータブロックのソースパケット数、ベースビューデータブロックのソースパケット数を示す。
(d)は、立体視インターリーブドストリームファイルに包含される複数のデータブロックを示す。
同図(b)に示すように、ATCシーケンス2が、ディペンデントビューデータブロックD[0],D[1],D[2]・・・・D[n]から構成されるとすると、ATCシーケンス2における、ディペンデントビューデータブロックD[0],D[1],D[2]・・・・D[n]の相対ソースパケット数である0,b1,b2,b3,b4・・・bnがファイルディペンデントのエクステントスタートポイント情報のSPN_extent_startに記載される。
ATCシーケンス1が、ベースビューデータブロックB[0],B[1],B[2]・・・・B[n]によって構成されるとすると、ベースビューデータブロックの相対ソースパケット数である0,a1,a2,a3,a4・・・anが、ファイルベースのエクステントスタートポイント情報のSPN_extent_startに記載される。
同図(c)は、立体視インターリーブドストリームファイルにおける任意のディペンデントビューデータブロックD[x]、任意のベースビューデータブロックb[x]のソースパケット数である。ディペンデントビューデータブロックD[x]の先頭ソースパケット番号がbxであり、ディペンデントビューデータブロックD[x+1]の先頭ソースパケット番号がbx+1である場合、D[x]を構成するソースパケット数は、bx+1−bxになる。
同じく、ベースビューデータブロックB[x]の先頭ソースパケット番号がaxであり、ベースビューデータブロックB[x+1]の先頭ソースパケット番号がax+1である場合、B[n]を構成するソースパケット数は、ax+1−axになる。
立体視インターリーブドストリームファイルにおける最後のベースビューデータブロックB[n]の先頭ソースパケット番号がanであり、ATCシーケンス1におけるソースパケットの個数がnumber_of_source_packet1である場合、B[n]を構成するソースパケット数は、number_of_source_packet1-anになる。
立体視インターリーブドストリームファイルにおける最後のベースビューデータブロックD[n]の先頭ソースパケット番号がbnであり、ATCシーケンス2におけるソースパケットの個数がnumber_of_source_packet2である場合、D[n]を構成するソースパケット数は、number_of_source_packet2-bnになる。
そうすると、ディペンデントビューデータブロックの先頭ソースパケット番号、ベースビューデータブロックの先頭ソースパケット番号は、(d)に示す通りになる。
立体視インターリーブドストリームファイルにおいて、D[0]の先頭SPNは「0」、B[0]の先頭SPNは「b1」になる。
D[1]の先頭SPNについては、先行するD[0]のソースパケット数b1と、B[0]のソースパケット数a1との和になるから「b1+a1」になる。
B[1]の先頭SPNについては、先行するD[0]のソースパケット数b1と、B[0]のソースパケット数a1と、先行するD[1]のソースパケット数b2-b1との和になるから「b2+a1(=b1+a1+b2-b1)」になる。
D[2]の先頭SPNについては、先行するD[0]のソースパケット数b1と、B[0]のソースパケット数a1と、先行するD[1]のソースパケット数b2-b1と、B[1]のソースパケット数a2-a1との和になるから「b2+a2(=b1+a1+b2-b1+a2-a1)」になる。
B[2]の先頭SPNについては、先行するD[0]のソースパケット数b1と、B[0]のソースパケット数a1と、先行するD[1]のソースパケット数b2-b1と、B[1]のソースパケット数a2-a1と、D[2]のソースパケット数b3-b2との和になるから「b3+a2(=b1+a1+b2-b1+a2-a1+b3-b2)」になる。
図54は、ATCシーケンス1、2における任意のデータブロックのソースパケット番号を説明するための図である。
同図(a)のATCシーケンス2において、bxのソースパケット番号に存在するD[x]の立体視インターリーブドストリームファイルにおけるソースパケット番号を求める場合を考える。この場合、D[x]の先頭ソースパケット番号は、D[0],B[0],D[1],B[1],D[2],B[2]・・・・D[x-1],B[x-1]の相対ソースパケット数のソースパケット数の総和になるから、同図(b)に示すように「bx+ax」になる。
同図(a)のATCシーケンス1において、axのソースパケット番号に存在するB[x]の立体視インターリーブドストリームファイルにおけるソースパケット番号を求める場合を考える。この場合、同図(b)に示すように、B[x]の先頭ソースパケット番号は、D[0],B[0],D[1],B[1],D[2],B[2]・・・・D[x-1],B[x-1],D[x]の相対ソースパケット数のソースパケット数の総和になるから、「bx+1+ax」になる。
同図(c)は、上記ベースビューデータブロックをエクステントとするファイルベースと、上記ディペンデントビューデータブロックをエクステントとするファイルディペンデントとを示す。
B[x]にあたるファイルベースのエクステントであるEXT1[x]の先頭LBN及び連続長、及び、D[x]にあたるファイルディペンデントのエクステントであるEXT2[x]の先頭LBN及び連続長は以下のように求められる。
D[x]の先頭ソースパケット番号からLBNを求めるには、((bx+ax)*192/2048)という計算でソースパケットをLBNに変換する。同じく、B[x]の先頭ソースパケット番号からLBNを求めるには、((bx+1+ax)*192/2048)という計算でソースパケットをLBNに変換する。ここで「192」は、ソースパケットサイズをバイト数で表したものであり、「2048」は、セクタサイズ(論理ブロックサイズ)をバイト数で表したものである。これらのLBNに最も近い、立体視インターリーブドストリームファイルのエクステントのLBNは、上記変換によって得られたLBNを、関数SSIF_LBN(file_offset) の引数であるfile_offsetに用いることで算出される。関数SSIF_LBNは、file_offsetから、SSIFのアロケーション既述子をたどって、file_offsetに該当するLBNを返す関数である。
こうすることで、EXT2[x]の先頭LBNは、SSIF_LBN((bx+ax)*192/2048)になり、EXT1[x]の先頭LBNは、SSIF_LBN((bx+1+ax)*192/2048)になる。
一方、EXT2[x]の連続長は、(SSIF_LBN((bx+1+ax)*192/2048)−SSIF_LBN((bx+ax)*192/2048))になる。EXT1[x]の連続長は、(SSIF_LBN((bx+1+ax+1)*192/2048)−SSIF_LBN((bx+1+ax)*192/2048))になる。これらの先頭LBN及び連続長を示すファイルエントリーをメモリ上で生成すれば、ファイルベース、ファイルディペンデントを仮想的に得ることができる。
これらの2つのPIDフィルタによる多重分離は、第1実施形態に示した基本ストリーム選択テーブル、拡張ストリーム選択テーブルによる。このATCシーケンス復元部は、図55の処理をハードウェア資源に実行させるプログラムを作成することで実現される。図55は、ATCシーケンス復元手順を示す。
ステップS91は、ベースビュー用のATCシーケンスをATCシーケンス1とし、ディペンデントビュー用のATCシーケンスをATCシーケンス2とする。ステップS92では、変数xを1に初期化する。この変数xは、ディペンデントビューデータブロック、ベースビューデータブロックを指示する。以降、ステップS94〜ステップS96のループを繰り返す。
変数xによって指示されるソースパケット番号bxが、ベースビューデータブロックの最後の数値nによって指示されるソースパケット番号bnであるか否かを判定し(ステップS93)、もしそうでなければ、ソースパケット番号bx+axによって指示されるソースパケット(bx+ax)から、bx+1+axによって指示されるソースパケット(bx+1+ax)の直前のパケットまでをATCシーケンス2に追加し(ステップS94)、ソースパケット(bx+1+ax)からソースパケット(bx+1+ax+1)の直前のパケットまでをATCシーケンス1に追加して(ステップS95)、変数xをインクリメントする(ステップS96)という処理を、ステップS93がYesと判定されるまで繰り返す。
ステップS93がYesと判定されれば、ソースパケット番号bnから(number_of_source_packet2-bn)個のソースパケットをATCシーケンス2に追加し(ステップS97)、ソースパケット番号anから(number_of_source_packet1-an)個のソースパケットをATCシーケンス1に追加する(ステップS98)。
以上のように、ATCシーケンス1、2が復元されれば、ベースビューデータブロックの先頭LBN及び連続長をセクタ数で示すファイルエントリーをメモリ上で生成して、ファイルベースを仮想的にオープンする(ステップS99)。同様に、ディペンデントビューデータブロックの先頭LBN及び連続長をセクタ数で示すファイルエントリーをメモリ上で生成して、ファイルディペンデントを仮想的にオープンする(ステップS100)。
<ファイルベースをオープンすることの技術的意義>
ここで任意の時点からのランダムアクセスを行う際、ストリームファイル内のセクタサーチを行う必要がある。セクタサーチとは、任意の時点からのランダムアクセスを行う際、その時点に対応するソースパケットのソースパケット番号を特定して、そのソースパケット番号のソースパケットを含むセクタから、ファイルリードを行うという処理である。
立体視インターリーブドストリームファイルは、一個のエクステントが大きいため、セクタサーチの探索範囲が広く、任意の時点からのランダムアクセスが命じられた際、読み出し先となるセクタの特定に、かなりの処理時間を要することがある。
これは、インターリーブストリームファイルは、ベースビュービデオストリームを構成するデータブロック、ディペンデントビューストリームを構成するデータブロックがインターリーブ配置されて一本の長いエクステントを構成しており、インターリーブストリームファイルのファイルエントリーのアロケーション記述子は、その長いエクステントの先頭アドレスを示しているに過ぎないとの理由による。
これに対してファイルベースは、長さが短い複数のエクステントから構成されており、個々のエクステントの先頭アドレスがアロケーション記述子に示されているため、セクタサーチにあたっての探索範囲が狭く、任意の時点からのランダムアクセスが命じられた際、読み出し先となるセクタの特定が、短時間で完了する。
つまり、ベースビュービデオストリームを構成するデータブロックが、ファイルベースのエクステントとして管理されており、データブロックの先頭アドレスが、ファイルベースに対応するファイルエントリーにおけるアロケーション記述子に明記されているので、ランダムアクセス位置を包含しているエクステントの先頭アドレスから、セクタサーチを開始すれば、早期にランダムアクセス位置となるソースパケットを含むセクタにまで到達することができる。
このようにベースビュービデオストリームを構成するデータブロックを、ファイルベースのエクステントとして管理し、各エクステントの先頭アドレス及び連続長を、ファイルベースについてのファイルエントリーのアロケーション記述子に示しておくことにより、ベースビュービデオストリームにおける任意の時点からのランダムアクセスが高速になる。
具体的なセクタサーチの手順は以下のものになる。ベースビュービデオストリームに対応するエントリーマップを用いることにより、任意の時点に対応するランダムアクセス位置であるソースパケット番号を導き出す。
次に、ベースビュービデオストリームに対応するクリップ情報内のエクステントスタートポインティング情報を用いることにより、ランダムアクセス位置となるソースパケット番号を包含しているエクステントがどれであるかを特定する。
更に、ファイルベースに対応するファイルエントリーのアロケーション記述子を参照すれば、ランダムアクセス位置となるソースパケット番号を包含しているエクステントの先頭セクタアドレスを特定することができる。その先頭セクタアドレスにファイルポインタを設定して、ファイルリードを行い、読み出されたソースパケットに対するパケット解析を実行することで、ランダムアクセス位置となるソースパケット番号のソースパケットを特定する。そして特定されたソースパケット番号のソースパケットを読み出す。これにより、メインTSに対するランダムアクセスが効率的に実行されることになる。サブTSも同様である。
以上のように本実施形態によれば、エクステントスタートポイント情報に基づき、インターリーブドストリームファイルにおけるベースビュービデオストリームのエクステント、ディペンデントビュービデオストリームのエクステントをエクステントスタートポイント情報に基づき整列した上で多重分離部、デコーダに供するので、デコーダやプログラムは、ベースビュービデオストリームを格納したファイルベースディペンデントビュービデオストリームを格納したファイルディペンデントという2つのファイルが記録媒体に仮想的に存在するものとして扱うことができる。
立体視のためのベースビュービデオストリーム、ディペンデントビュービデオストリームをインターリーブストリームファイルとして記録媒体しつつも、ベースビュービデオストリーム及びディペンデントビュービデオストリームの単体アクセスを可能にせしめるので、再生装置の処理の効率性を向上させることができる。
(第9実施形態)
本実施形態では、これまでの実施形態に示した記録媒体の作り方、つまり、記録方法の形態について説明する。
本実施形態に係る記録方法は、ストリームファイルであるAVファイル、ストリームファイル以外のファイルである非AVファイルをリアルタイムに作成して、記録媒体におけるAVデータ記録領域、非AVデータ記録領域にダイレクトに書き込むというリアルタイムレコーディングとして実現することができる。それだけではなく、ボリューム領域に記録すべきビットストリームの全体像を事前に作成して、このビットストリームを元に原盤ディスクを作成し、この原盤ディスクをプレスすることで、光ディスクを量産するというプレフォーマットレコーディングも含む。本実施形態に係る記録媒体は、リアルタイムレコーディングによる記録方法、及び、プレフォーマットレコーディングによる記録方法によっても特定されるものでもある。
リアルタイムレコーディング技術により記録方法を実現する場合、当該記録方法を実行する記録装置は、リアルタイムにAVクリップを作成して、BD-RE又はBD-R、ハードディスク、半導体メモリカードに記録する。
この場合AVクリップは、アナログ入力信号を記録装置がリアルタイムエンコードすることにより得られたTSであってもよいし、記録装置がデジタル入力したTSをパーシャル化することで得られるTSであってもよい。リアルタイムレコーディングを実行する記録装置は、ビデオ信号をエンコードしてビデオストリームを得るビデオエンコーダと、オーディオ信号をエンコードしてオーディオストリームを得るオーディオエンコーダと、ビデオストリーム、オーディオストリーム等を多重化して、MPEG2-TSを得るマルチプレクサと、MPEG2-TS形式のデジタルストリームを構成するTSパケットをソースパケットに変換するソースパケッタイザとを備え、ソースパケット形式に変換されたMPEG2デジタルストリームをAVクリップファイルに格納してBD-RE,BD-R等に書き込む。デジタルストリームの書き込むと共に、記録装置の制御部は、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行う。具体的には、ユーザによって録画処理が要求された際、制御部は、AVクリップのストリームファイル及びクリップ情報ファイルをBD-RE,BD-R上にクリエイトする。
そして、装置外部から入力されるTSからビデオストリームにおけるGOPの先頭位置が検出されるか、エンコーダによってビデオストリームのGOPが生成されれば、記録装置の制御部は、このGOPにおいて、先頭に位置するイントラピクチャのPTSと、このGOPの先頭部分を格納したソースパケットのパケット番号とを取得して、このPTS及びパケット番号の組みを、EP_PTSエントリー及びEP_SPNエントリーの組みとして、クリップ情報ファイルのエントリーマップに追記する。以降、GOPが生成される度に、EP_PTSエントリー及びEP_SPNエントリーの組みを、クリップ情報ファイルのエントリーマップに追記してゆく。この際、GOPの先頭がIDRピクチャである場合は、「オン」に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。GOPの先頭がIDRピクチャでなければ場合は、「オフ」に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。
また、クリップ情報ファイルにおけるストリームの属性情報については、記録されるべきストリームの属性に従い設定する。以上のようにしてAVクリップ、クリップ情報が生成されてBD-RE,BD-Rに書き込まれれば、このクリップ情報内の基本エントリーマップを介して、再生経路を定義するプレイリスト情報を生成し、BD-RE,BD-Rに書き込む。このような処理を、リアルタイムレコーディング技術において実行することで、AVクリップ−クリップ情報−プレイリスト情報という階層構造をBD-RE,BD-R上に得ることができる。
以上がリアルタイムレコーディングによる記録方法を実行する記録装置である。続いて、プレフォーマットレコーディングによる記録方法について説明する。
プレフォーマットレコーディングによる記録方法は、オーサリング行程を含むような光ディスクの製造方法となる。
図56は、光ディスクの記録方法を示す。同図(a)は、プレフォーマットレコーディングによる記録方法を示すフローチャートであり光ディスクの製造方法の処理手順を示す。光ディスクの製造方法は、オーサリングステップ、署名ステップ、メディア鍵取得ステップ、メディア鍵暗号ステップ、物理フォーマットステップ、識別子埋め込みステップ、マスタリングステップ、レプリケーションステップを含む。
オーサリングステップS201は、光ディスクのボリューム領域の全体像を表すビットストリームを作成する。
署名ステップS202は、光ディスクの製造にあたってAACS LAに対して署名要求を行う。具体的には、ビットストリームの一ステップを抜き出し、AACS LAに送付する。ここでAACS LAは、次世代のデジタル家電機器における著作物保護技術に関するライセンスを管理する団体である。オーサリング装置を用いて光ディスクのオーサリングを行うオーサリングサイト、及び、マスタリング装置を用いてマスタリングを実行するマスタリングサイトは、AACS LAよりライセンスの提供を受ける。また、メディア鍵、無効化情報を管理する。そして、AACS LAより署名されたビットストリームの一部分を取得する。
メディア鍵取得ステップS203は、AACS LAからメディア鍵を取得する。メディア鍵は、常に固有のものが使用されるわけではなく、これまで製造された光ディスクの枚数が一定枚数まで達すると新しいものに更新される。メディア鍵を更新することにより、特定のメーカーや機器を排除することができ、万が一暗号鍵が破られたとしても、無効化情報を用いることでそれ自体を無効化することができる。
メディア鍵暗号化ステップS204は、メディア鍵取得ステップにより取得したメディア鍵を用いて、ビットストリームの暗号化に用いた鍵を暗号化する。
物理フォーマットステップS205は、ビットストリームに対して物理フォーマットを実行する。
識別子埋込みステップS206は、光ディスクに収録されるビットストリームに、一般の機器では検出することができない一意の識別子を電子透かしとして埋め込む。これにより、不正なマスタリングによる海賊版の量産を防ぐことができる。
マスタリングステップS207は、光ディスクの原盤を作製する。まず、ガラス基板上にフォトレジスト層を形成し、当該フォトレジスト層に対して、所望するグルーブやピットに対応するようにレーザ光を照射して露光し、現像処理を施す。このグルーブやピットは、8ー16変調されたビットストリームの各ビット値を表すものである。その後、このようなレーザカッティングによってグルーブやピットに対応した凹凸が形成されたフォトレジストを元にして、光ディスクの原盤を作製する。
レプリケーションステップS208は、光ディスクの原盤を用いて、その複製である光ディスクを大量生産する。
同図(b)は、光ディスクを大量生産するのではなく、一般ユーザがPCを使って、BD-R,BD-RE等に、これまでの実施形態で述べた各種ファイルを記録する場合のプリフォーマットレコーディングによる記録方法の処理手順を示す。同図(a)と比較すると、同図(b)による記録方法では、物理フォーマット(ステッステップS205)、マスタリング(ステップS207)、レプリケーション(ステップS208)が存在せず、代わりに、各ファイルの書き込み行程(ステップS209)が存在する。
次にオーサリング行程について説明する。
図57は、オーサリング行程の処理手順を示すフローチャートである。
ステップS101において、メインTS及びサブTSについてのリールセットを定義する。「リール」とは、エレメンタリストリームの素材となるデータを格納したファイルであり、オーサリングシステムでは、ローカルネットワーク上のドライブ上に存在する。3Dカメラによって撮影されたL画像やR画像、撮影時に録音された音声や、その後のアフレコで収録された音声、言語毎の字幕、メニューをデータ化したものが、これらリールに該当する。「リールセット」とは、1つのTSに多重化されるべきエレメンタリストリームの集合を表した、素材ファイルへのリンク群である。ここでは、メインTS、サブTSのそれぞれについてリールセットが定義される。
ステップS102において、プレイアイテム、サブプレイアイテムの原型を定義し、プレイアイテム、サブプレイアイテムの再生順序を定義することでメインパス、サブパスの原型を定義する。プレイアイテムの原型の定義は、平面視出力モードにおいて、そのプレイアイテムで再生を許可すべきリールの指定と、In_Time/Out_Timeとの指定を、GUIを通じて受け付けることでなされる。サブプレイアイテムの原型の定義は、立体視出力モードにおいて、そのサブプレイアイテムに対応するプレイアイテムで再生を許可すべきリールの指定と、In_Time/Out_Timeとの指定を、GUIを通じて受け付けることでなされる。
再生を許可すべきリールの指定は、リールセットにおける素材ファイルのリンクのうち、再生を許可すべきものをチェックボックスでチェックするというGUIで構成される。この際、各リールに対応付けて数値入力欄を表示する。そして、この数値入力欄によって、各リールについての優先順位を受け付け、これをリールに対応する優先順位とする。以上の再生を許可すべきリールの設定と、優先順位の設定とからストリーム選択テーブル、拡張ストリーム選択テーブルが生成されることになる。
In_Time及びOut_Timeの指定は、GUI上で、ベースビュービデオストリーム又はディペンデントビュービデオストリームの時間軸を図形化して表示し、図形化された時間軸において、スライドバーを移動させて、そのスライドバーの位置設定をユーザから受け付けるという処理を記録装置が実行することでなされる。
プレイアイテム、サブプレイアイテムの再生順序の定義は、GUI上でプレイアイテムのIn_Timeにおけるピクチャをサムネール化して表示し、このサムネールに対して、再生順序を設定するという操作を記録装置がユーザから受け付けることでなされる。
ステップS103では、リールセットにて指定された素材ファイルをエンコードすることにより、複数のエレメンタリストリームを得る。これらの複数のエレメンタリストリームは、ベースビュービデオストリーム、ディペンデントビュービデオストリームと、これらベースビュービデオストリーム、ディペンデントビュービデオストリームと多重化されるべきオーディオストリーム、PGストリーム、IGストリームがある。
ステップS104では、エンコードで得られたエレメンタリストリームのうち、ベースビュービデオストリームと同じリールセットに属する同じするものを、当該ベースビュービデオストリームと多重化することで、1つのメインTSを得る。
ステップS105では、エンコードで得られたエレメンタリストリームのうち、ディペンデントビュービデオストリームと同じリールセットに属するものを、当該ディペンデントビュービデオストリームと多重化することで、1つのサブTSを得る。
ステップS106では、エンコード及び多重化時に設定されたパラメータを元に、クリップ情報ファイルの原型を生成する。
ステップS107では、プレイアイテムの原型を元にプレイアイテム情報、サブプレイアイテム情報を生成し、これらのプレイアイテム情報、サブプレイアイテム情報に再生順序を定義することで、メインパス情報、サブパス情報を生成して、プレイリスト情報を定義する。
プレイアイテム情報の作成においては、メインTSに多重化されたエレメンタリストリームのうち、プレイアイテムの基本構造において平面視出力モードで再生すべきと規定されたものを再生可能に設定すべく、プレイアイテム情報内にストリーム選択テーブルを生成する。また、ベースビュービデオストリームにおける再生区間を規定するため、上述の編集作業で規定されたIn_Time、Out_Timeをプレイアイテム情報に記載する。
サブプレイアイテム情報の作成においては、サブTSに多重化されたエレメンタリストリームのうち、プレイアイテムの基本構造において立体視出力モードで再生すべきと規定されたものを再生可能に設定すべく、プレイリスト情報のエクステンションデータ内に拡張ストリーム選択テーブルを生成する。プレイアイテム情報、サブプレイアイテム情報は、クリップ情報ファイル内の情報を元に定義されるからクリップ情報ファイルの原型を元にして設定される。
ステップS108では、メインTS、サブTS、クリップ情報ファイルの原型、プレイリスト情報の原型を、所定のアプリケーションフォーマットに従ったディレクトリーファイル群に変換する。
以上の過程を得て、メインTS、サブTS、クリップ情報、プレイアイテム情報、サブプレイアイテム情報が生成されれば、メインTS、サブTSをそれぞれ独立したストリームファイルに変換し、クリップ情報をクリップ情報ファイルに変換し、プレイアイテム情報及びサブプレイアイテム情報をプレイリスト情報ファイルに変換することで、記録媒体に記録されるべき一連のファイルセットを得る。
その後、ビデオストリームのエンコード行程の実行にあたって、上記変換で得たプレーンオフセット値、オフセット方向情報を、各GOPのメタデータに記載すれば、オフセットシーケンスは、エンコードの過程で作成しておくことができる。
図58は、AVファイル書込工程の処理手順を示す。リアルタイムレコーディングによる記録方法や、マスタリング、レプリケーションを伴い記録方法の実施では、AVファイルの書き込みを、本図のフローチャートによって実現する。
ステップS401において、xxxxx.ssifをクリエイトして、記録装置のメモリ上にファイルエントリーを作成する。ステップS402は、空きの連続セクタ領域を確保し得たかどうかの判定であり、確保し得たなら、ステップS403において、空きの連続セクタ領域にディペンデントビューデータブロックを構成するソースパケット列をEXT2[i]だけ書き込み、その後、ステップS404〜ステップS408を実行する。確保し得ない場合は、ステップS409で例外処理をした後、記録方法を終了する。
ステップS404〜ステップS408は、ステップS407がNoと判定されるまで、ステップS404〜ステップS406、ステップS408の処理を繰り返すループを構成している。
ステップS405は、空きの連続セクタ領域に、ベースビューデータブロックを構成するソースパケット列をEXT1[i]だけ書き込む。ステップS406は、ソースパケット列が書き込まれた先頭アドレス及び連続長を示すアロケーション識別子をファイルエントリーに追記して、エクステントとして登録する。これに伴い、書き込まれたソースパケット列の先頭ソースパケット番号を指し示すエクステントスタートポイント情報を、クリップベース情報、クリップディペンデント情報内のメタデータに追記する。
ステップS407は、ループの終了条件を規定するものであり、ベースビューデータブロック、ディペンデントビューデータブロックに未書込のソースパケットが存在するかどうかの判定を行う。存在すれば、ステップS408に移行して、ループを継続する。存在しなければ、ステップS410に移行する。
ステップS408は、連続セクタ領域が存在するかどうかの判定であり、存在すれば、ステップS403に移行し、存在しなければ、ステップS402まで戻る。
ステップS410では、xxxxx.ssifをクローズして、ファイルエントリーを記録媒体に書き込む。ステップS411では、xxxxx.m2tsをクリエイトして、メモリにxxxxx.m2tsのファイルエントリーを生成する。ステップS412では、ファイル2Dで固有となるベースビューデータブロックの先頭アドレス及び連続長を示すアロケーション記述子をxxxxx.m2tsのファイルエントリーに追記する。ステップS413では、xxxxx.m2tsをクローズして、ファイルエントリーを書き込む。
ステップS404は、EXTSS+EXT2Dの範囲内に、ロングジャンプの発生地点が存在するかどうかの判定である。ここでのロングジャンプの発生地点は、層境界であるものとする。EXTSS+EXT2Dの範囲内に層境界が存在する場合、ステップS420において、ベースビューデータブロックを複製して、ベースビューデータブロックB[i]ssと、ベースビューデータブロックB[i]2Dとをロングジャンプ発生地点の直前までに書き込み、その後、ステップS406に移行する。これらが、ファイル2Dのエクステント、ファイルベースのエクステントになる。
以下、EXT2D、EXT1[n]、EXT2[n]、EXTss[n]の具体的な値を説明する。
EXT2Dの下限値は、2D出力モードの再生時、各ベースビューデータブロックから次のベースビューデータブロックまでのジャンプ期間中において、再生装置におけるリードバッファのバッファアンダーフローを生じないように決定される。
n番目のベースビューデータブロックから(n+1)番目のベースビューデータブロックまでのジャンプが時間Tjump2D(n)を要し、各ベースビューデータブロックが,リードバッファに速度Rud2Dで読み出され、かつ、リードバッファからビデオデコーダへ前記ベースビューデータブロックが平均速度Rbext2Dで転送されるとき、EXT2Dの下限値は以下の条件1の式で表される。
<条件1>
EXT2Dの下限値 ≧(Rud2D×Rbext2D)/(Rud2D−Rbext2D)×Tjump2D(n)
ベースビューデータブロックB[n]ssに対応するエクステントをEXT1[n]であるものとする。この場合、EXT1[n]の下限値は、B−Dプレゼンテーションモードの再生時、各ベースビューデータブロックから次のディペンデントビューデータブロックまでのジャンプ期間と、当該ディペンデントビューデータブロックから次のベースビューデータブロックまでのジャンプ期間とを通して、ダブルバッファのアンダーフローを生じさせないように決定される。
ここでのダブルバッファは、リードバッファ1、リードバッファ2から構成されるものとする。リードバッファ1は、2D再生装置のリードバッファと同一物である。
B−Dプレゼンテーションモードの再生において、n番目のベースビューデータブロックからp番目のディペンデントビューデータブロックまでのジャンプが時間TFjump3D(n)を要し、p番目のディペンデントビューデータブロックから(n+1)番目のベースビューデータブロックまでのジャンプが時間TBjump3D(n)を要するものとする。
そして各ベースビューデータブロックがリードバッファ1へ速度Rud3Dで読み出され、各ディペンデントビューデータブロックがリードバッファ2へ速度Rud3Dで読み出され、かつ、リードバッファ1からビデオデコーダへ前記ベースビューデータブロックが平均速度Rbext3Dで転送されるとき、EXT1[n]の下限値は、以下の条件2の式で表される。ビックエクステントの連続長は、この下限値、又は、この下限値を上回る値に設定される。
<条件2>
EXT1[n]の下限値 ≧(Rud3D×Rbext3D)/(Rud3D−Rbext3D)
×(TFjump3D(n)+EXT2[n]/(Rud3D+TBjump3D(n)))
EXT2の下限値は、B−Dプレゼンテーションモードの再生時、各ディペンデントビューエクステントから次のベースビューエクステントまでのジャンプ期間と、当該ベースビューエクステントから次のディペンデントビューエクステントまでのジャンプ期間とを通して再生装置におけるダブルバッファにアンダーフローを生じさせないように決定されている。
(n+1)番目のベースビューデータブロックから(p+1)番目のディペンデントビューデータブロックまでのジャンプが時間TFjump3D(n+1)を要し、かつ、リードバッファ2からデコーダへ前記ディペンデントビューストリームファイルが平均速度Rdext3Dで転送されるとき、EXT2[n]の下限値は以下の条件3の式で表される。
<条件3>
EXT2[n]の下限値 ≧(Rud3D×Rbext3D)/(Rud3D−Rdext3D)
×(TBjump3D(n)+EXT1[n+1]/(Rud3D+TFjump3D(n+1)))
<EXTSSの具体的な値>
あるエクステントの読み出しから、次のエクステントへのジャンプにあたって、そのジャンプの直前のバッファ占有量は、充分なものでなければならない。そうすると、立体視インターリーブドストリームファイルの読み出し時にあたってリードバッファは、1つのエクステントによって充填される必要があり、バッファアンダーフローの発生を避けねばならない。
しかしEXTSSは、エクステントからエクステントへのジャンプ期間Tjumpだけではなく、Tdiffに基づき定める必要がある。ここでTdiffは、EXTssにおけるディペンデントビューデータブロックのプリロードと、EXTssnextにおけるディペンデントビューデータブロックのプリロードとに伴う遅延時間を意味する。以下にTdiffの意味合いについて解説すると、立体視インターリーブドストリームファイルの読み出しにあたって、先頭のディペンデントビューデータブロックをプリロードしている間は再生を開始することはできない。
EXTssでは、このディペンデントビューデータブロックのプリロードに要する期間だけ再生が遅れるから、EXTssにおいて先頭のディペンデントビューのデータブロックのプリロードに要する時間は、再生がその分遅れてしまうという「遅延期間」となる。
逆にEXTssnextにおいては、EXTssからEXTssnextへのジャンプの直後に、先頭のディペンデントビューデータブロックのプリロードが行われるから、その間だけビデオデコーダの再生開始が遅れてもよいことになる。つまりEXTssnextの再生にあたって、先頭のディペンデントビューデータブロックのプリロードが行われる期間は、ビデオデコーダ再生開始が猶予される「猶予期間」となる。
以上を踏まえるとTdiffは、ディペンデントビューデータブロックの猶予期間から遅延期間を引いた値として導かれることになる。具体的には、以下の式を満たすように算出される。
Tdiff=ceil[((S1stEXT1[i]EXTSSnext]−S1stEXT1[i]EXTSS)x1000x8)/Rud72]
ここでTdiffは、S1stEXT2[i]EXTssの読出期間と、S1stEXT2[i]EXTssnextの読出期間との差分を意味し、S1stEXT2[i]EXTssは、EXTssの最初に位置するEXT2[i]のサイズであり、S1stEXT2[i]EXTssNEXTは、EXTssNEXTの最初に位置するEXT2[i]のサイズである。EXTssnextは、立体視インターリーブドストリームファイルにおけるエクステントであって、EXTssの直後に位置し、EXTssとシームレスに再生されるものである。
このTdiffと、EXTssnextへのジャンプ時間(Tjump)とを用いれば、各エクステントにおける平均ビットレートに基づく最小エクステントサイズであるSextssは、以下の条件4を満たす値として算出される。
<条件4>
SextSS[Byte]≧ceil[(Tjump+Tdiff×Rud72)/(1000×8))×(Rextss×192)/(Rud72×188−Rextss×192)]
ここで、Rud72は、立体視出力モードにおけるBD-ROMドライブからのデータレートである。
Rextssは、EXTssの平均ビットレートであり、以下の式から導かれる。
Rextss=ceil[Nsp×188×8/(ATCDextss/27000000)]
ATCDextss=ATCstart_extssnext −ATCstart_extss
ATCDextss=ATClast_extss − ATCstart_extss + ceil(27000000x188x8/min(Rts1,Rts2))
ATCDextssは、EXTssのATC期間である。
ATCstart_EXTSSは、EXTssにおけるソースパケット列のATCフィールドによって指示される最小のATC値である。
ATCstart_EXTssnextは、EXTssnextにおけるソースパケット列のATCフィールドによって指示される最小のATC値である。
ATClast_EXTSSは、EXTssにおけるソースパケット列のATCフィールドによって指示される最大のATC値である。
Nspは、メインTS、サブTSにおけるソースパケットであって、ATCDexssの範囲内にあるATCに対応するATC値をもつものの個数である。
Rts1は、メインTSにおけるTSレコーディングレートの値であり、その最大値は、48Mbpsである。
Rts2は、サブTSにおけるTSレコーディングレートの値であり、その最大値は、48Mbpsである。
2つのプレイアイテムを連続的に再生存在する場合、EXTssは、Previousプレイアイテム(プレイアイテム1)によって使用されるATCシーケンスの最初のデータバイトを含む。
・EXTssは、条件4において定義された最小エクステントサイズ以上のサイズをもつ。
・EXTssがPreviousプレイアイテムにて使用されるATCシーケンスの最初のデータバイトである場合、Previousプレイアイテムのコネクションコンディション情報は、=5、=6に設定されない。この場合、EXTssのサイズを満たさなくてもよい。
EXTssは、カレントプレイアイテム(プレイアイテム2)によって使用されるATCシーケンスのデータバイトを含む。
・EXTssは、条件4において定義された最小エクステントサイズ以上のサイズをもつ。
・EXTssがプレイアイテム2にて使用されるATCシーケンスの最後のデータバイトである場合、プレイアイテム2のコネクションコンディション情報は、=5、=6に設定されない。この場合、EXTssのサイズを満たさなくてもよい。
<ベースビューデータブロック、ディペンデントビューデータブロックの記録の詳細>
メインTSにおけるGOP及びサブTSにおけるGOPを記録媒体に記録するにあたって、拡張エントリーマップにおける拡張エントリーマップのエントリーは、ディペンデントビューピクチャデータであって、同じ再生時刻で再生されるべきベースビューピクチャデータが、基本エントリーマップのエントリーによってポインティングされているもののみをポインティングするようにしている。
そのようなポインティングを実現するべく、記録処理を以下のように行う。
記録処理時において、ディペンデントビューデータブロック及びベースビューデータブロックの境界と、ディペンデントビューGOP及びベースビューGOPの境界との一致を試みる。この境界一致は、サブTSにおけるGOP(i)の先頭ビデオアクセスユニットのアクセスユニットデリミターを、ディペンデントビューデータブロックの境界であるととして分割し、メインTSにおけるGOP(i)の先頭ビデオアクセスユニットのアクセスユニットデリミターを、ベースビューデータブロックの境界であるとして分割することでなされる。この分割にあたっては、先に述べたエクステント長の制約を満たさねばならない。
分割にあたって、ベースビューデータブロック、ディペンデントビューデータブロックの何れかが、再生装置のダブルバッファをアンダーフローさせないようなエクステント長の制約を満たさない場合、サブTSにおけるGOP(i)の先頭ビデオアクセスユニットのアクセスユニットデリミターの直前、及び、メインTSにおけるGOP(i)の先頭ビデオアクセスユニットのアクセスユニットデリミターの直前のどちらかに、パディングパケットを挿入することで上記境界一致を試みる。
上述した手法で境界一致に成功した場合、ディペンデントビューGOPの先頭アクセスユニットのアクセスユニットデリミターを格納したソースパケットのソースパケット番号をポインティングするエントリーを拡張エントリーマップに追加する。それと共に、ベースビューGOPの先頭アクセスユニットのアクセスユニットデリミターを格納したソースパケットのソースパケットをポインティングするエントリーを基本エントリーマップに追加する。
パディングパケット挿入による境界一致に成功せず、ディペンデントビューGOPの先頭アクセスユニットのアクセスユニットデリミターを格納したソースパケットが、ディペンデントビューデータブロックの途中に位置した場合、かかるソースパケットをポインティングするようなエントリーを拡張エントリーマップに追加しない。同様に、ベースビューGOPの先頭アクセスユニットのアクセスユニットデリミターを格納したソースパケットが、ベースビューデータブロックの途中に位置した場合、かかるソースパケットをポインティングするようなエントリーを拡張エントリーマップに追加しない。
こうしたエントリーを拡張エントリーマップから除外することで、ベースビュー、ディペンデントビューの組みが必ず基本エントリーマップ、拡張エントリーマップのエントリーによってポインティングされていることが、保障されることになる。
ベースビューデータブロック、ディペンデントビューデータブロックの記録後に、エントリーマップを生成するという処理は、記録された立体視インターリーブドストリームファイルからGOP先頭を検出して、このGOP先頭をポインティングするエントリーをエントリーマップに追加してゆくという処理で実現される。GOP先頭検出及びエントリー追加によって、基本エントリーマップ、拡張エントリーマップを作成してゆく手順を、図54参照しながら説明する。
図59は、基本エントリーマップ及び拡張エントリーマップの作成手順を示すフローチャートである。
ステップS601において、基本エントリーマップ及び拡張エントリーマップの雛形をメモリ上に生成し、ステップS602〜ステップS610のループに移行する。このループにおいて変数xは、GOPを指示するものであり、かかるループでは、変数xを1に初期化して(ステップS602)、GOP(x)の先頭を特定し(ステップS603)、GOPの先頭PTS(x)に対応するSPN(x)を特定する(ステップS604)。以降、ステップS605、ステップS607の判定を実行する。ステップS605は、SPN(x)がEXT1[i]の先頭であるか否かの判定であり、先頭でなければ、ステップS606〜ステップS609をスキップする。先頭であれば、ステップS606においてPTS(x)に対応するSPN(y)を先頭に有するEXT2[j]を特定する。
ステップS607は、EXT1[i]を特定する変数iが、EXT2[j]を特定する変数jと一致するかどうかの判定であり、一致しなければ以降の処理をスキップする。一致すれば、PTS(x)−SPN(x)の組みを示すEP_entry(x)を基本エントリーマップに追加し(ステップS608)、PTS(x)−SPN(y)の組みを示すEP_entry(x)を拡張エントリーマップに追加する(ステップS609)。
ステップS610は、変数xが最後のGOPを指示するものかどうかの判定であり、最後でなければ、変数xをインクリメントしてステップS603に移行する。
<インデックステーブルの生成方法>
第6実施形態で述べたインデックステーブルは、以下のようにして生成することができる。図55のフローチャートにおいて、ベースビュービデオストリーム、ディペンデントビュービデオストリーム、クリップ情報ファイル、プレイリスト情報ファイルを作成することで、記録媒体に記録すべき各プレイリストの表示周波数が判明する。これらのうち、ファーストプレイタイトルで使用されるプレイリストの解像度・表示周波数、又は、タイトル番号0〜999で指示されるタイトルのプレイリストの解像度・表示周波数を、インデックステーブルのBDMVアプリケーション情報におけるビデオフォーマット情報及びフレームレート情報に設定する。こうすることで、プレイリスト再生時に適用すべき解像度・表示周波数が、インデックステーブルにおいて設定されることになる。
図60は、BD-Jアプリケーション、BD-Jオブジェクト、ムービーオブジェクト、インデックステーブルの作成手順を示すフローチャートである。ステップS701は、プレイリストについてのプレーヤインスタンスの生成を再生装置に命じるソースプログラムを、オブジェクト指向プログラミングで作成し、ステップS702では、そうして作成されたソースプログラムのコンパイルやアーカイブ化を行い、BD-Jアプリケーションを作成する。
ステップS703は、BD-Jオブジェクトの作成行程であり、ステップS704は、プレイリスト再生を命じるコマンドを用いてムービーオブジェクトを記述する。ステップS705では、タイトル番号と、BD-Jオブジェクトとの対応付けを記述することで、インデックステーブルを作成し、ステップS706ではファーストプレイタイトルとするプレイリストを選択する。ステップS707では、ファーストプレイタイトルにおけるプレイリストのビデオフォーマット、ビデオレートを示すBDMVアプリケーション情報を作成し、ステップS708ではタイトルインデックス、BDMVアプリケーション情報を含むインデックステーブルを作成する。ステップS709では、BD-Jオブジェクト、BD-Jアプリケーション、ムービーオブジェクト、インデックステーブルを記録媒体に書き込む。
以上の記録で作成することができる記録媒体について説明する。
図61は、多層化された光ディスクの内部構成を示す。
第1段目は、多層化された光ディスクの一例を示し、第2段目は、各記録層上に存在する螺旋トラックを水平方向に引き伸ばして描いた図である。これらの記録層における螺旋トラックは、1つの連続したボリューム領域として扱われる。ボリューム領域は、最内周に位置するリードイン、最外周に位置するリードアウト、この間に存在する第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域から構成される。これらの第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域は、1つの連続した論理アドレス空間を構成する。
ボリューム領域は、先頭から光ディスクをアクセスする単位で通し番号が振られており、この番号のことを論理アドレスと呼ぶ。光ディスクからのデータの読み出しは論理アドレスを指定することで行う。ここで、BD-ROMのような読み込み専用ディスクの場合には、基本的に論理アドレスが連続しているセクタは、光ディスク上の物理的な配置においても連続している。すなわち、論理アドレスが連続しているセクタのデータはシークを行わずに読み出すことが可能である。ただし、記録層の境界においては、論理アドレスが連続していたとしても連続的な読み出しはできない。そのため、層境界の論理アドレスは、予め記録装置に登録されているものとする。
ボリューム領域は、リードイン領域の直後にファイルシステム管理情報が記録されていて、これに続いて、ファイルシステム管理情報にて管理されるパーティション領域が存在する。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROMの場合ではUDF(Universal Disc Format)によって記録される。日常使っているPC(パーソナルコンピュータ)の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出すことが可能になっている。
第4段目は、ファイルシステムで管理されるファイルシステム領域における領域割り当てを示す。ファイルシステム領域のうち、内周側には、非AVデータ記録領域が存在する。非AVデータ記録領域の直後には、AVデータ記録領域が存在する。第5段目は、これら非AVデータ記録領域及びAVデータ記録領域の記録内容を示す。AVデータ記録領域には、AVファイルを構成する構成するエクステントが存在する。非AVデータ記録領域には、AVファイル以外の非AVファイルを構成するエクステントが存在する。
図62は、ファイルシステムを前提にした光ディスクのアプリケーションフォーマットを示す。
BDMVディレクトリはBD-ROMで扱うTSや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、「PLAYLISTディレクトリ」、「CLIPINFディレクトリ」、「STREAMディレクトリ」、「BDJOディレクトリ」、「JARディレクトリ」と呼ばれる5つのサブディレクトリが存在し、BDMVディレクトリには、「index.bdmv」,「MovieObject.bdmv」の2種類のファイルが配置されている。
「index.bdmv(ファイル名固定)」は、インデックステーブルを格納している。
「MovieObject.bdmv(ファイル名固定)」は、1つ以上のムービーオブジェクトを格納している。ムービーオブジェクトは、コマンドインタプリタを制御主体とした動作モード(HDMVモード)において、再生装置が行うべき制御手順を規定するプログラムファイルであり、1つ以上のコマンドと、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。
「BDJOディレクトリ」には、拡張子bdjoが付与されたプログラムファイル(xxxxx.bdjo[「xxxxx」は可変、拡張子「bdjo」は固定])が存在する。このプログラムファイルは、BD-Jモードにおいて、再生装置が行うべき制御手順を規定するBDーJオブジェクトを格納している。
このJava(登録商標)アプリケーションの実体にあたるのが、BDMVディレクトリ配下のJARディレクトリに格納されたJava(登録商標)アーカイブファイル(YYYYY.jar)である。
アプリケーションは例えばJava(登録商標)アプリケーションであり、仮想マシンのヒープ領域(ワークメモリとも呼ばれる)にロードされた1つ以上のxletプログラムからなる。このワークメモリにロードされたxletプログラム、及び、データから、アプリケーションは構成されることになる。
「PLAYLISTディレクトリ」には、拡張子mplsが付与されたプレイリスト情報ファイル(xxxxx.mpls[「xxxxx」は可変、拡張子「mpls」は固定])が存在する。
「CLIPINFディレクトリ」には、拡張子clpiが付与されたクリップ情報ファイル(xxxxx.clpi [「xxxxx」は可変、拡張子"clpi」は固定])が存在する。
以上のディレクトリに存在するファイルを構成するエクステントは、非AVデータ領域に記録される。
「STREAMディレクトリ」は、ストリームファイルを格納しているディレクトリであり、本ディレクトリには、xxxxx.m2ts([「xxxxx」は可変、拡張子「m2ts」は固定])という形式でストリームファイルが格納される。
上述したようなファイルは、パーティション領域において、物理的に連続する複数のセクタ上に形成される。パーティション領域は、「ファイルセット記述子が記録された領域」、「終端記述子が記録された領域」、「ROOTディレクトリ領域」、「BDMVディレクトリ領域」、「JARディレクトリ領域」、「BDJOディレクトリ領域」、「PLAYLISTディレクトリ領域」、「CLIPINFディレクトリ領域」、「STREAMディレクトリ領域」から構成され、ファイルシステムによってアクセスされる領域のことである。以降、これらの領域について説明する。
「ファイルセット記述子」は、ディレクトリ領域のうち、ROOTディレクトリのファイルエントリが記録されているセクタを指し示す論理ブロック番号(LBN)を含む。「終端記述子」は、ファイルセット記述子の終端を示す。
次に、ディレクトリ領域の詳細について説明する。上述したような複数のディレクトリ領域は、何れも共通の内部構成を有している。つまり、「ディレクトリ領域」は、「ファイルエントリ」と、「ディレクトリファイル」と、「下位ファイルについてのファイル記録領域」とから構成される。
「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、ディレクトリファイルの記録位置を示す論理ブロック番号(LBN)を含む。以上がファイルエントリーについての説明である。続いて、ディレクトリファイルの詳細について説明する。
「ディレクトリファイル」は、「下位ディレクトリについてのファイル識別記述子」と、「下位ファイルのファイル識別記述子」とを含む。
「下位ディレクトリのファイル識別記述子」は、自身の配下にある下位ディレクトリをアクセスするための参照情報であり、その下位ディレクトリを示す識別情報と、その下位ディレクトリのディレクトリ名の長さと、下位ディレクトリのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、その下位ディレクトリのディレクトリ名とから構成される。
「下位ファイルのファイル識別記述子」は、自身の配下にあるファイルをアクセスするための参照情報であり、その下位ファイルを示す識別情報と、その下位ファイル名の長さと、下位ファイルについてのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、下位ファイルのファイル名とから構成される。
これらのディレクトリのディレクトリファイルにおけるファイル識別記述子には、下位ディレクトリ及び下位ファイルのファイルエントリーが、どの論理ブロックに記録されているかが示されているので、このファイル識別記述子を辿ってゆけば、ROOTディレクトリのファイルエントリーからBDMVディレクトリのファイルエントリーに到達することができ、また、BDMVディレクトリのファイルエントリーからPLAYLISTディレクトリのファイルエントリーに到達することができる。同様に、JARディレクトリ、BDJOディレクトリ、CLIPINFディレクトリ、STREAMディレクトリのファイルエントリーにも到達することができる。
「下位ファイルのファイル記録領域」とは、あるディレクトリの配下にある下位ファイルの実体が記録されている領域であり、当該下位ファイルについての「ファイルエントリ」と、1つ以上の「エクステント」とが記録されている。
本願の主眼となるストリームファイルは、そのファイルが帰属するディレクトリのディレクトリ領域内に存在するファイル記録領域のことであり、ディレクトリファイルにおけるファイル識別記述子、及び、ファイルエントリーにおけるアローケーション識別子を辿ってゆくことで、アクセスすることができる。
(第10実施形態)
本実施形態では、これまでの実施形態で説明した再生装置の機能を統合した、2D/3D再生装置の内部構成について説明する。
図63は、2D/3D再生装置の構成を示している。2D/3D再生装置は、BD-ROMドライブ1、リードバッファ2a、リードバッファ2b、スイッチ3、システムターゲットデコーダ4、プレーンメモリセット5a、プレーン合成部5b、HDMI送受信部6、再生制御部7、メモリ、レジスタセット203、プログラム実行部11、プログラムメモリ12、HDMVモジュール13、BD-Jプラットフォーム14、ミドルウェア15、モード管理モジュール16、ユーザイベント処理部17、ローカルストレージ18、不揮発メモリ19から構成されている。
BD-ROMドライブ1は、2D再生装置と同様に再生制御部7からの要求を元にBD-ROMディスクからデータを読み出すが、BD-ROMディスクから読み出されたAVクリップはリードバッファ2aかリードバッファ2bに転送される。
3D映像を再生する際には、再生制御部7からはベースビューデータブロックとディペンデントビューデータブロックとをエクステント単位で交互に読み出す旨を指示する読出要求が送られる。BD-ROMドライブ1は、ベースビューデータブロックを構成するエクステントをリードバッファ2aに読み出し、ディペンデントビューデータブロックを構成するエクステントをリードバッファ2bに読み出す。3D映像を再生する際には、ベースビューデータブロックとディペンデントビューデータブロックの両方を同時に読み込む必要があるため、2D再生装置のBD-ROMドライブ以上のスピード性能が求められる。
リードバッファ2aは、BD-ROMドライブ1が読み込んだベースビューデータブロックのデータを格納するデュアルポートメモリ等で構成されたバッファである。
リードバッファ2bは、BD-ROMドライブ1が読み込んだディペンデントビューデータブロックのデータを格納するデュアルポートメモリ等で構成されたバッファである。
スイッチ3は、リードバッファに対するデータ入力源を、BD-ROMドライブ1又はローカルストレージ18の何れかに切り替えるためのスイッチである。
システムターゲットデコーダ4は、リードバッファ2aに読み出されたソースパケットとリードバッファ2bに読み出されたソースパケットに対して多重分離処理を行いストリームのデコード処理を行う。
プレーンメモリセット5aは、複数のプレーンメモリから構成される。プレーンメモリには、レフトビュービデオプレーン、ライトビュービデオプレーン、セカンダリビデオプレーン、IGプレーン、PGプレーンといったものがある。
プレーン合成部5bは、これまでの実施形態で説明したプレーン合成を行う。テレビなどへの出力する場合には3Dの方式に合わせた出力を行う。シャッタメガネを利用して交互に左目イメージ・右目イメージを再生することが必要な場合はそのまま出力し、例えばレンチキュラーのテレビに出力する場合は、テンポラリのバッファを用意して、先に転送される左目イメージをテンポラリバッファに格納して、右目イメージが転送された後に同時に出力する。
HDMI送受信部6は、例えばHDMI規格(HDMI:High Definition Multimedia Interface)において、第1実施形態に述べたネゴシエーションフェーズを実行する。ネゴシエーションフェーズでは、立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報をテレビから受け取ることができる。
再生制御部7は、再生エンジン7a、再生制御エンジン7bを含み、3Dプレイリストの再生がプログラム実行部11などから命じられると、3Dプレイリストの中で再生対象となるプレイアイテムのベースビューデータブロックを特定し、そのプレイアイテムと同期して再生される3D用のサブパスのサブプレイアイテムのディペンデントビューデータブロックを特定する。その後、対応するクリップ情報ファイルのエントリマップを解釈し、どちらのエクステントから先にエクステントが配置されているか示すエクステント開始タイプに基づき、再生開始地点からベースビューデータブロックのエクステントと、ディペンデントビューデータブロックのエクステントとを交互に読み出すようにBD-ROMドライブ1に要求する。再生開始するときには、最初のエクステントをリードバッファ2aか、リードバッファ2bに読みきった後に、リードバッファ2aとリードバッファ2bからシステムターゲットデコーダ4に転送を開始する。
再生エンジン7aは、AV再生機能を実行する。AV再生機能とは、DVD再生装置、CD再生装置から踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、セカンダリビデオ用のピクチャデータ切り替え、アングル切り替えといった処理である。
再生制御エンジン7bは、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJavaプラットフォームからの関数呼び出しに応じて、プレイリストの再生機能を実行する。プレイリスト再生機能とは、上述したAV再生機能のうち、再生開始や再生停止をカレントプレイリストを構成するカレントプレイリスト情報、カレントクリップ情報に従って行うことをいう。
メモリは、カレントプレイリスト情報やカレントクリップ情報を格納しておくためのメモリである。カレントプレイリスト情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントクリップ情報とは、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブからアクセスできる複数クリップ情報のうち、現在処理対象になっているものをいう。
再生状態/設定レジスタ(Player Status/Setting Register)セット10は、これまでの実施形態で述べた再生状態レジスタ、再生設定レジスタの他、プログラムファイルが利用する任意の情報を格納できる汎用レジスタを含む。
プログラム実行部11は、BDプログラムファイルに格納されたプログラムを実行するプロセッサである。格納されたプログラムに従って動作を行い、次のような制御を行う。(1)再生制御部7に対してプレイリスト再生を命令する。(2)システムターゲットデコーダに対してメニューやゲームのグラフィクスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング工程によるBD-Jアプリケーションのプログラミング工程によって決まる。
プログラムメモリ12は、カレント動的シナリオを格納しておき、HDMVモードの動作主体であるHDMVモジュール、BD-Jモードの動作主体であるJavaプラットフォームによる処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されているIndex.bdmv、BD-Jオブジェクト、ムービーブジェクトのうち、現在実行対象になっているものをいう。またプログラムメモリ12は、ヒープメモリを含む。
ヒープメモリは、システムアプリケーションのバイトコード、BD-Jアプリケーションのバイトコード、システムアプリケーションが利用するシステムパラメータ、BD-Jアプリケーションが利用するアプリケーションパラメータが配置されるスタック領域である
HDMVモジュール13は、コマンドインタプリタを具備し、ムービーオブジェクトを構成するナビゲーションコマンドを解読して実行することでHDMVモードの制御を実行する。
BD-Jプラットフォーム14は、BD-Jモードの動作主体であるJavaプラットフォームであり、Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装しており、クラスローダ、バイトコードインタプリタ、アプリケーションマネージャから構成される。
クラスローダは、システムアプリケーションの1つであり、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリ31に格納することにより、BD-Jアプリケーションのロードを行う。
バイトコードインタプリタは、いわゆるJava仮想マシンであり、ヒープメモリに格納されているBD-Jアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネィティブコードに変換して、MPUに実行させる。
アプリケーションマネージャは、システムアプリケーションの1つであり、BD-Jオブジェクト内のアプリケーション管理テーブルに基づき、BD-Jアプリケーションを起動したりBD-Jアプリケーションを終了したりする等、BD-Jアプリケーションのアプリケーションシグナリングを行う。以上で、BD-Jプラットフォーム部の内部構成についての説明を終える。
ミドルウェア15は、組込みソフトウェアのためのオペレーティングシステムであり、カーネル、デバイスドライバから構成される。カーネルは、BD-Jアプリケーションからのアプリケーションプログラミングインターフェイス(API)のコールに応じて、再生装置特有の機能をBD-Jアプリケーションに提供する。また、割込信号により割込ハンドラ部を起動する等のハードウェア制御を実現する。
モード管理モジュール16は、BD-ROMまたはビルドインメディアドライブ、リムーバブルメディアドライブから読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モード管理モジュールによるモード管理とは、動的シナリオを、BD-Jプラットフォーム22、HDMVモジュールのどちらに実行させるかという、モジュールの割り当てである。
ユーザイベント処理部17は、リモコンを通じたユーザ操作に応答して、プログラム実行部16や再生制御部7に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようプログラム実行部16に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、再生制御部7に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
ローカルストレージ18は、ハードディスクをアクセスするためのビルドインメディアドライブ、半導体メモリカードをアクセスするためのリムーバブルメディアドライブを備え、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。
不揮発メモリ19は、読み書き可能なメモリなどの記録媒体であり、電源が供給されなくても、記録内容を保持できる媒体、例えばフラッシュメモリ、FeRAMなどである。これは、レジスタセット203における記憶内容のバックアップに用いられる。
(第11実施形態)
以降の実施形態は、本願の優先権主張の基礎となった特許出願の願書に添付した明細書及び図面に記載された発明と同一発明(以下、本発明と呼ぶ)を実施するための形態である。
先ず始めに、本発明に係る記録媒体の実施行為のうち、使用行為についての形態を説明する。図64(a)は、本発明に係る記録媒体の、使用行為についての形態を示す図である。本図において、本発明に係る記録媒体はBD-ROM101である。このBD-ROM101は、再生装置102、テレビ103、リモコン104により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
以上が本発明に係る記録媒体の使用形態についての説明である。
次に本発明に係る記録媒体であるBD-ROMの、2D映像を格納するためのデータ構造について説明する。
図64(b)は、BD-ROMの構成を示す図である。
本図の第4段目にBD-ROM101を示し、第3段目にBD-ROM上のトラックを示す。本図のトラック、BD-ROM101の内周から外周にかけて螺旋状に形成されているトラックを横方向に引き伸ばして描画している。BD-ROM101は他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できるボリューム領域を有している。ボリューム領域は、先頭から光ディスクをアクセスする単位で通し番号が振られており、この番号のことを論理アドレスと呼ぶ。光ディスクからのデータの読み出しは論理アドレスを指定することで行う。ここでは論理アドレスは、光ディスク上の物理的な配置においても、連続していると定義する。すなわち、論理アドレスが連続しているデータはシークを行わずに読み出すことが可能である。また、リードインの内側にはBCA(Burst Cutting Area)と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
ボリューム領域には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROM101の場合ではUDF(Universal Disc Format)によって記録される。日常使っているPC(パーソナルコンピュータ)の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
BD-ROM101上のディレクトリ、ファイル構造は、ルートディレクトリ(ROOT)直下にBDMVディレクトリが置かれている。BDMVディレクトリはBD-ROM101で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、タイトルを構成するインデックステーブルが定義されたインデックスファイル(index.bdmv)、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリが存在する。映像・音声といったAVコンテンツが多重化され格納されたAVクリップ(XXX.M2TS)、AVクリップの管理情報を格納したクリップ情報ファイル(XXX.CLPI)、AVクリップの論理的な再生経路を定義したプレイリストファイル(YYY.MPLS)、動的なシナリオを定義するためのプログラムが格納されたBDプログラムファイル(AAA.PROG)は、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、PLAYLISTディレクトリの下に配置される。
以下に、BDMVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。
まずインデックスファイル(Index.bdmv)について説明する。インデックスファイルは図64(c)に示すインデックステーブルを持つ。インデックステーブルはBD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるプログラムファイルが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のBDプログラムファイルを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるBDプログラムファイルが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。
BDプログラムファイル(AAA.PRG)はタイトルから指定、実行されるプログラムが格納されている。プログラムのファイルは複数あり、プリフィックス(AAA)がプログラムを識別するのに使用される。ここで使用されるプログラムは、ブルーレイの場合はコマンドナビゲーションと呼ばれる独自仕様のインタープリタ方式のプログラムが使われるが、言語方式は本発明の本質ではないため、JavaやJavaScripのような汎用のプログラミング言語であっても構わない。このプログラムによって再生されるプレイリストが指定される。
続いて、AVクリップ(XXX.M2TS)とクリップ情報ファイル(XXX.CLPI)について説明する。
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図65(a)は、AVクリップの構成を示す図である。本図に示すようにAVクリップは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラファイックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、MPEG-2、MPEG-4 AVC、または、SMPTE VC-1などの方式を使って符号化記録されている。オーディオストリームは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、または、リニアPCMのなどの方式で圧縮・符号化記録されている。
ビデオストリームの構成について説明する。MPEG-2、MPEG-4 AVC、SMPTE VC-1などの動画圧縮符号化においては、動画像の空間方向および時間方向の冗長性を利用してデータ量の圧縮を行う。時間方向の冗長性を利用する方法として、ピクチャ間予測符号化が用いられる。ピクチャ間予測符号化では、あるピクチャを符号化する際に、表示時間順で前方または後方にあるピクチャを参照ピクチャとする。そして、その参照ピクチャからの動き量を検出し、動き補償を行ったピクチャと符号化対照のピクチャとの差分値に対して空間方向の冗長度を取り除くことによりデータ量の圧縮を行う。
ここでは、参照ピクチャを持たずに符号化対象ピクチャのみを用いてピクチャ内予測符号化を行うピクチャをIピクチャと呼ぶ。ピクチャとは、フレームおよびフィールドの両者を包含する1つの符号化の単位である。また、既に処理済の1枚のピクチャを参照してピクチャ間予測符号化するピクチャをPピクチャとよび、既に処理済みの2枚のピクチャを同時に参照してピクチャ間予測符号化するピクチャをBピクチャと呼び、Bピクチャの中で他のピクチャから参照されるピクチャをBrピクチャと呼ぶ。また、フレーム構造の場合のフレーム、フィールド構造のフィールドを、ここではビデオアクセスユニットと呼ぶ。
AVクリップに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームに配列x1011が、オーディオストリームに配列x1100から0x111Fまでが、プレゼンテーショングラフィックスに配列x1200から0x121Fまでが、インタラクティブグラフィックスストリームに配列x1400から0x141Fまでが、映画の副映像に利用するビデオストリームに配列x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームに配列x1A00から0x1A1Fが、それぞれ割り当てられている。
図65(b)は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリーム501、複数のオーディオフレームからなるオーディオストリーム504を、それぞれPESパケット列502および505に変換し、TSパケット503および506に変換する。同じくプレゼンテーショングラフィックスストリーム507およびインタラクティブグラフィックス510のデータをそれぞれPESパケット列508および511に変換し、更にTSパケット509および512に変換する。AVクリッステップS513はこれらのTSパケットを1本のストリームに多重化することで構成される。
図66(a)は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。本図における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。本図の矢印yy1,yy2, yy3, yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
図66(b)は、AVクリップに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。BD-ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、AVクリップに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットの後述するシステムターゲットデコーダ1503のPIDフィルタへの転送開始時刻を示す。AVクリップには図66(b)下段に示すようにソースパケットが並ぶこととなり、AVクリップの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、AVクリップに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATはAVクリップ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。PMTは、AVクリップ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またAVクリップに関する各種ディスクリプタを持つ。ディスクリプタにはAVクリップのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図67(a)は、PMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、AVクリップに関するディスクリプタが複数配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。
クリップ情報ファイルは、図67(b)に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、クリップ情報、ストリーム属性情報とエントリマップから構成される。
クリップ情報は図67(b)に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートはAVクリップの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。AVクリップ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻はAVクリップの先頭のビデオフレームのPTSであり、再生終了時刻はAVクリップの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図68(a)に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
エントリマップは、図68(b)に示すように、エントリマップヘッダ情報1101と、AVクリップ内に含まれるビデオストリームの各Iピクチャの表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。ここではテーブルの1つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を0として各エントリポイント毎にインクリメントした値をエントリポイントID(以下EP_ID)と呼ぶことにする。このエントリマップを利用することにより、再生機はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化される各ビデオストリーム毎に作られ、PIDで管理される。また、エントリマップには、先頭にエントリマップヘッダ情報1101が格納され、ここには該当エントリマップが指すビデオストリームのPIDやエントリポイント数などの情報が格納される。
次に、プレイリストファイル(YYY.MPLS)について説明する。
プレイリストは、AVクリップの再生経路を示すものである。図69(a)に示すように、プレイリストは1つ以上のプレイアイテム1201から構成され、各プレイアイテムはAVクリップに対する再生区間を示す。各プレイアイテム1201はそれぞれプレイアイテムIDで識別され、プレイリスト内で再生されるべき順序で記述されている。また、プレイリストは再生開始点を示すエントリマーク1202を含んでいる。エントリマーク1202はプレイアイテムで定義される再生区間内に対して付与することでき、図69(a)に示すように、プレイアイテムに対して再生開始点となりうる位置に付けられ、頭出し再生に利用される。例えば、映画タイトルにおいて、エントリマーク1202をチャプタの先頭となる位置に付与することで、チャプタ再生することが可能である。なお、一連のプレイアイテムの再生経路をメインパス1205とここでは定義する。
プレイアイテムの内容について図69(b)を用いて説明する。プレイアイテムには、再生するクリップ情報1301と再生開始時刻1302および再生終了時刻1303、コネクションコンディション1310、ストリーム選択テーブル1305が含まれている。再生開始時刻と再生終了時刻は時間情報であるため、再生機はクリップ情報ファイルのエントリマップを参照し、指定された再生開始時刻および再生終了時刻に対応するSPNを取得し、読み出し開始位置を特定して再生処理を行う。
コネクションコンディション1310は、前方プレイアイテムと接続タイプを示している。プレイアイテムのコネクションコンディション1310が「1」の場合は、プレイアイテムが指し示すAVクリップは、そのプレイアイテムの前のプレイアイテムが指し示すAVクリップとシームレス接続が保証されないことを示す。プレイアイテムのコネクションコンディション1310が「5」か「6」の場合は、プレイアイテムが指し示すAVクリップは、そのプレイアイテムの前のプレイアイテムが指し示すAVクリップとシームレスに接続されることが保証される。コネクションコンディション1310が「5」の場合は、プレイアイテム間でSTCの連続性が途切れていても良く、つまり、接続前プレイアイテムのAVクリップ終端のビデオ表示時刻よりも、接続後プレイアイテムのAVクリップ先頭のビデオ表示時刻開始時刻は不連続でよい。ただし、接続前プレイアイテムのAVクリップを後述するシステムターゲットデコーダ1503のPIDフィルタに入力した後に続けて、接続後プレイアイテムのAVクリップをシステムターゲットデコーダ1503のPIDフィルタに入力して再生したときに、システムターゲットデコーダ1503のデコードが破綻しないようにAVクリップを作成する必要がある。また接続前プレイアイテムのAVクリップのオーディオの終端フレームと、接続後プレイアイテムのオーディオの先頭フレームは再生時間軸で重なら無ければならないなどの制約条件がある。また、コネクションコンディション1310が「6」の場合は、接続前プレイアイテムのAVクリップと接続後プレイアイテムのAVクリップを結合したときに1本のAVクリップとして再生できなければならない。つまり、接続前プレイアイテムのAVクリップと接続後プレイアイテムのAVクリップ間でSTCは連続し、またATCも連続する。
ストリーム選択テーブル1305は、複数のストリームエントリ1309からなり、ストリームエントリ1309はストリーム選択番号1306、ストリームパス情報1307、ストリーム識別情報1308からなる。ストリーム選択番号1306は、ストリーム選択テーブルに含まれるストリームエントリ1309の先頭から順にインクリメントされる番号であり、プレーヤでのストリーム識別のために利用される。ストリームパス情報1307は、ストリーム識別情報1308によって示されるストリームが、どのAVクリップに多重化されているかを示す情報であり、例えば「メインパス」であれば、該当するプレイアイテムのAVクリップを示し、「サブパスID=1」であれば、そのサブパスIDが示すサブパスにおいて、該当するプレイアイテムの再生区間に対応するサブプレイアイテムのAVクリップを示す。サブパスについては次の節で説明する。ストリーム識別情報1308は、PIDなどの情報であり、参照するAVクリップに多重化されているストリームを示す。また、ストリームエントリ1309には、各ストリームの属性情報も同時に記録されている。ここで属性情報とは、各ストリームの性質を示す情報で、例えばオーディオ、プレゼンテーショングラフィックス、インタラクティブグラフィックスの場合には、言語属性などが含まれる。
プレイリストは、図69(c)に示すように1つ以上のサブパスを有することが出来る。サブパスはプレイリストに登録される順にIDが振られ、サブパスIDとして、サブパスを識別するために使われる。サブパスは、メインパスと同期して再生される一連の再生経路を示す。サブプレイアイテムは、プレイアイテムと同様に再生するクリップ情報1301と再生開始時刻1302および再生終了時刻1303を持ち、サブプレイアイテムの再生開始時刻1302と再生終了時刻1303は、メインパスと同じ時間軸で表される。例えば、プレイアイテム#2のストリーム選択テーブル1305に登録されているあるストリームエントリ1309が、サブパスID=0でプレゼンテーショングラフィックス1を示す場合は、サブパスID=0のサブパスの中で、プレイアイテム#2の再生区間に同期して再生するサブプレイアイテム#2のAVクリップの中に多重化されるプレゼンテーショングラフィックス1が、プレイアイテム#2再生区間に再生されることになる。また、サブプレイアイテムには、プレイアイテムのコネクションコンディションと同じ意味を持つSPコネクションコンディションというフィールドが存在する。SPコネクションコンディションが「5」もしくは「6」のサブプレイアイテム境界のAVクリップは、コネクションコンディション「5」もしくは「6」と同じ上記条件を守る必要がある。
以上が、本発明にかかる記録媒体であるBD-ROMの、2D映像を格納するためのデータ構造である。
続いて、本発明にかかる2D映像を格納するBD-ROMを再生する再生装置(2D再生装置)について説明する。
図70(a)は、2D再生装置1500の構成を示している。2D再生装置1500は、BD-ROMドライブ1501、リードバッファ1502、システムターゲットデコーダ1503、プログラム記録メモリ1504、管理情報記録メモリ1505、プログラム実行部1506、再生制御部1507、プレーヤ変数1508、ユーザイベント処理部1509、プレーン加算部1510から構成されている。
BD-ROMドライブ1501は、再生制御部1507からの要求を元にBD-ROMディスクからデータを読み出す。BD-ROMディスクから読み出れたAVクリップはリードバッファ1502に、インデックスファイル、プレイリストファイル、クリップ情報ファイルは管理情報メモリ1505に、ムービーオブジェクトファイルはプログラムメモリ1504に、それぞれ転送される。
リードバッファ1502は、BD-ROMドライブを使って読み込んだデータを、管理情報メモリ1505はインデックスファイル、プレイリストファイル、クリップ情報ファイルの管理情報を、プログラム記録メモリ1504は、ムービーオブジェクトファイルを格納するメモリ等で構成されたバッファである。
システムターゲットデコーダ1503は、リードバッファ1502に読み出されたソースパケットに対して多重分離処理を行い、ストリームのデコード処理を行う。AVクリップに含まれるストリームのデコードに必要な、コーデック種類やストリーム属性などの情報は再生制御部1507から転送される。システムターゲットデコーダ1503はデコードした主映像ビデオストリーム、副映像ビデオストリーム、インタラクティブグラフィックスストリーム、プレゼンテーショングラフィックスストリームを、それぞれのプレーンメモリである主映像プレーン、副映像プレーン、インタラクティブグラフィックスプレーン(IGプレーン)、プレゼンテーショングラフィックスプレーン(PGプレーン)に書き出す。またシステムターゲットデコーダ1503はデコードした主音声ストリーム、副音声ストリームを、ミキシングしスピーカなどに出力する。また、システムターゲットデコーダ1503は、プログラム実行部1506より転送されるメニューなどに表示するためのJPEG,PNGなどのグラフィックスデータをデコードして、イメージプレーンに書き出す処理を行う。システムターゲットデコーダ1503の詳細については後述する。
ユーザイベント処理部1509は、リモコンを通じたユーザ操作に応答して、プログラム実行部1506や再生制御部1507に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようプログラム実行部1506に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、再生制御部1507に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
再生制御部1507は、BD-ROMドライブ1501とシステムターゲットデコーダ1503を制御して、AVクリップの再生を制御する機能を持つ。再生制御部1507は、プログラム実行部1506からの再生命令や、ユーザイベント処理部1509より通知に基づき、プレイリスト情報を解釈してAVクリップの再生処理を制御する。また、再生制御部1507は、プレーヤ変数1508の設定や参照を行い、再生動作を行う。
プレーヤ変数1508は、プレーヤの状態を示すシステムパラメータ(SPRM)と一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図70(b)はシステムパラメータ(SPRM)の一覧である。
SPRM(0) : 言語コード
SPRM(1) : 主音声ストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプタ番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーションタイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタルレベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : 音声ストリーム用言語コード
SPRM(17) : 音声ストリーム用言語コード
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード
SPRM(20) : プレーヤリージョンコード
SPRM(21) : 2D/3D出力モードのユーザー優先選択
SPRM(22) : 現在の2D/3D出力モード
SPRM(23) : ディスプレイの3D映像表示能力
SPRM(24) : 3D映像再生能力
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
SPRM(10)は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻(PTS)を示す値にSPRM(10)は更新される。このSPRM(10)を参照すれば、現在の再生時点を知得することができる。
SPRM(16)の音声ストリーム用言語コードやSPRM(18)の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、SPRM(16)の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBDプログラムファイルに入れることができる。
また、再生制御部1507は、システムパラメータの状態をチェックしながら再生する。また、SPRM(1)、SPRM(2)、SPRM(21)、SPRM(22)は、それぞれ音声ストリーム番号、字幕ストリーム番号、副映像ストリーム、副音声ストリームの番号を示し、これらの値は、前述したストリーム選択番号606に対応する。例えば、プログラム実行部1506によって、音声ストリーム番号SPRM(1)が変更されたとする。再生制御部1507は、現在再生しているプレイアイテムのストリーム選択テーブル605の中から、ストリーム選択番号606と比較して、一致するストリームエントリ609を参照し、再生する音声ストリームを切り替える。このようにしてどの音声・字幕・副映像ストリームを再生するかどうかを切り替える。
プログラム実行部1506はBDプログラムファイルに格納されたプログラムを実行するプロセッサである。格納されたプログラムに従って動作を行い、次のような制御を行う。(1)再生制御部1506に対してプレイリスト再生を命令する。(2)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことが出来、どのように制御するかは、オーサリング工程によるBDプログラムファイルのプログラミング工程によって決まる。
プレーン加算部は、主映像プレーン、副映像プレーン、インタラクティブグラフィックスプレーン、プレゼンテーショングラフィックスプレーン、イメージプレーンを瞬時に重畳し、TVなどの画面に表示する。
次に、図71を参照しながらシステムターゲットデコーダ1503について説明する。
ソースデパケットタイザは、システムターゲットデコーダ1503に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、主映像ビデオデコーダ、副映像ビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、副音声デコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが0x1011である場合は主映像ビデオデコーダに、PIDが0x1B00から0x1B1Fである場合は副映像ビデオデコーダに、PIDが0x1100から0x111Fである場合は主音声デコーダに、PIDが0x1A00から0x1A1Fである場合は副音声デコーダに、PIDが0x1200から0x121Fである場合はPGデコーダに、PIDが0x1400から0x141Fである場合はIGデコーダに転送される。
主映像ビデオデコーダは、TB(TransportStreamBuffer)1701、MB(Multiplexing Buffer)1702、EB(ElementaryStreamBuffer)1703,圧縮映像デコーダ1704、DPB(Decoded Picture Buffer)1705から構成される。
TB1701は、ビデオストリームを含むTSパケットがPIDフィルタ1702から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB1702は、TB1701からEB1702にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB1701からMB1702にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
EB1703は、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)が格納されるバッファである。MB1702からEB1703にデータが転送される際にPESヘッダが取り除かれる。
圧縮映像デコーダ1704、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻(DTS)ごとにデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、圧縮映像デコーダ1704のデコード方法は切り替えられる。圧縮映像デコーダ1704は、デコードされたフレーム/フィールド画像はDPB1705に転送し、表示時刻(PTS)のタイミングで対応するフレーム/フィールド画像を主映像プレーンに書き出す。
DPB1705は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。圧縮映像デコーダ1704が、ピクチャ間予測符号化されたPピクチャやBピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされたピクチャを参照するために利用する。
副映像ビデオデコーダは、主映像ビデオデコーダと同様の構成を持ち、入力される副映像ビデオストリームのデコードを行い、表示時刻(PTS)のタイミングでピクチャを副映像プレーンに書き出す。
IGデコーダは、ソースパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでIGプレーンに書き出す。
PGデコーダは、ソースパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでPGプレーンに書き出す。
主音声デコーダは、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームのデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC3、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
副音声デコーダは、主音声デコーダと同様の構成を持ち、入力される副音声ストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
音声ミキサーは、主音声デコーダから出力される非圧縮音声データと副音声デコーダから出力される非圧縮音声データとをミキシング(音の重ね合わせ)をしてスピーカなどに出力する。
イメージプロセッサは、プログラム実行部から転送されるグラフィックスデータ(PNG・JPEG)をデコードして、プログラム実行部から指定される表示時刻にしたがって、イメージプレーンに出力する。
以上が本発明にかかる2D再生装置の構成である。
(3D再生の原理)
次に図92を用いて家庭用ディスプレイで立体視を行う原理を説明する。立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式の大きく2つある。
まず、1つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。
2つ目の視差画像を用いた方式で、右目に入る映像と、左目に入る映像を各々用意し、それぞれの目に対応したピクチャーだけが入るようにして立体視を行う方法である。図92でユーザーが顔の中央の延長線上にある、比較的小さな立方体を見ている様子を上から見た図であり、右上の図は左目が見た場合の例を示しており、右下の図は同じ立方体を右目が見た場合の例を示している。
この方式のメリットは、高々右目用と左目用の2つの視点の映像を準備するだけで立体視を実現できることにあり、技術的には、左右のそれぞれの目に対応した絵を、いかにして対応した目にだけ見せることができるかの観点から、いくつかの技術が実用化されている。
ひとつは、継時分離方式と呼ばれるもので、ディスプレイ上に左目用及び右目用として時間軸方向で交互に表示される映像を、ユーザーは継時型ステレオ眼鏡(液晶シャッター付)を通して観察することにより、目の残像反応により左右のシーンを重ね、立体映像として認識する。より詳細には、ディスプレイ上には、左目用の映像が表示されている瞬間には、前述の継時型ステレオ眼鏡は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。ディスプレイ上に右目用の映像が表示されている瞬間には、先ほどと逆に右目に対応する液晶シャッターを透過にし、左目に対応する液晶シャッターを遮光する。この方式では、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に24枚の映像を表示させるのに対して、左右の映像合わせて1秒に48枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早いディスプレイにおいて好適であるが、1秒間に所定の回数書き換え可能なディスプレイであれば限定されない。
また、別の方法としては、先ほどの継時分離方式では左右のピクチャーを時間軸方向で交互に出力していたのに対して、一画面中の縦方向に左目用のピクチャーと右目用のピクチャーを同時に交互に並べ、ディスプレイ表面にレンチキュラーレンズと呼ばれる蒲鉾上のレンズを通して、左目用のピクチャーを構成する画素は左目だけに結像し、右目用のピクチャーを構成する画素は右目だけに結像するようにすることで、左右の目に視差のあるピクチャーを見せ、3Dとしてみることができる方式である。なお、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよいし、また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いてディスプレイを見ることによって立体視が可能となる。
この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。なお、視差画像を用いた立体視のための方法はこの他に非接触モード色分離方式などさまざまな技術が提案されており、本実施の例においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明するが、視差画像を用いる限りこれら2方式に限定するものではない。
本実施の例では、立体視に使う視差画像を情報記録媒体に格納する方法を説明する。ここでは、左目用の画面が格納された映像を「左目映像」、右目用の画面が格納された映像を「右目映像」、両方の映像のことを「3D映像」と呼ぶことにする。(2D/3D表示の切り替え)
次に本発明に係る記録媒体であるBD-ROMの、3D映像を格納するためのデータ構造について説明する。
データ構造の基本部分は、3D映像を格納するためのデータ構造と同じであり、拡張または異なる部分を中心に説明する。3D映像を格納したBD-ROMに対して、2D映像のみを再生することができる再生装置を2D再生装置、2D映像と3D映像をどちらも再生できる再生装置を2D/3D再生装置として説明を行う。
再生装置の状態を示すシステムパラメータ(SPRM)には、再生装置が2D再生装置か、2D/3D再生装置かを識別するためのフラグが用意されている。ここでは図72を例に、SPRM(24)がプレーヤが持通常再生D再生能力を示格納先D-Capabilityパラメータ群であるとして説明する。
3D再生能力は、ビデオ映像の3D表示能力と、グラフィクスの3D表示能力がそれぞれ判定できるようになっている。ビデオ映像の3D表示能力とは、ステレオ映像方式の2画面分の左右映像をそれぞれデコードして表示できる能力のことである。グラフィクスの3D表示能力とは、左目用グラフィクスと右目用グラフィクスの2つのグラフィクスを独立してデコードしてプレーン上に描画する能力である。
また、ビデオ映像の表示能力に関しては、さらに、解像度とフレームレートごとに細分化して再生能力を示すことも可能である。1920x1080/59.94iのビデオフォーマットの3D映像の表示能力など、個別に識別することが可能であれば、LSIの性能に合わせて、対応可能な3D表示をプログラムか検出可能になる。
なお、システムパラメータの値をBD-ROM上のJAVAプログラムからアクセスする場合は、プレーヤのシステムプロパティとしてアクセスすることも可能である。
また、図73のように、ディスプレイとプレーヤが、HDMIのようにディスプレイの性能・対応方式をプレーヤに送信できる伝送方式により接続されている場合、ディスプレイの3D対応範囲をSPRM(23)に自動的に設定してもよい。また、ディスプレイの性能を伝送できない場合は、ユーザーが手動で設定してもよい。
ディスプレイから対応方式を取得できる場合は、単純な対応方式の他、ディスプレイのサイズ、解像度、ディスプレイから視聴する人までの距離など3D再生に影響する情報を取得し、システムパラメータに格納しておくことで、後で説明するプログラムによる最適な再生方式の選択に活用することも可能である。
図74はインデックスファイル(Index.bdmv)とBDプログラムファイル(001.PRG)の関係を示している。3D映像を格納したBD-ROMには、2D映像を再生する経路が記載された2Dプレイリスト2601と、3D方式1映像を再生する経路が記載された3Dプレイリスト2602、3D方式2映像を再生する経路が記載された3Dプレイリスト2603が用意されている。ユーザからタイトルが選択され、実行されたBDプログラムファイルは、プログラムの中で、再生装置が3D映像再生に対応しているか、対応している場合にユーザが3D映像再生を選択しているかを調べて、再生するプレイリストを切り替える。3D再生方式を複数想定する場合は、それぞれ対応した方式のプレイリストを準備しておき、プレーヤがBD-ROMに格納されたプレイリストに対応している場合は、対応した3Dプレイリストを選択、対応していない場合は、2Dプレイリストを選択する。
たとえば、3D方式1が2画面ステレオ再生方式、3D方式2がサイド・バイ・サイド方式であり、プレーヤがサイド・バイ・サイド方式にのみ対応している場合、プログラムはそのプレーヤで再生可能であるサイド・バイ・サイド方式の3Dプレイリスト005.MPLSを選択して再生する。
なお、BD-ROMに格納されているプログラムはオーサリング側が作成するものであり、複数の3D形式にプレーヤが対応している場合、どの3D再生方式を優先的に選択するかは、オーサリング側の意志に依存する。
なお、FirstPlayのようにディスク挿入時にまず最初に再生されるプレイリストは、安全のため必ずどのプレーヤでも再生される2D映像で構成されることが望ましい。
図75はBDプログラムファイルのプログラムでの2Dプレイリストと、3Dプレイリストの選択フローを示している。
S2701にて、SPRM(24)の値をチェックし、値が0の場合は該当再生装置は2D再生装置であるため、2Dプレイリストを再生し、値が1の場合はS2702に進む。
S2702にて、ユーザに2D映像の再生を希望するか、3D映像の再生を希望するかを、メニュー画面を表示して問い合わせる。ユーザのリモコンなどでの選択の結果、2D映像の再生を希望する場合は2Dプレイリストを再生し、3D映像の再生を希望する場合はS2703に進む。
S2703にて、ディスプレイが3D映像の再生に対応しているかをチェックする。例えば、HDMIにて結線を行い、再生装置がディスプレイに対して、3D映像再生に対応しているかどうかを問い合わせる。3D映像の再生に対応していない場合は、2Dプレイリストを再生するが、ユーザに対してテレビ側の準備が整っていない旨をメニュー画面などで提示しても良い。3D映像の再生に対応している場合は、3Dプレイリストを再生する。
旧来のアナログ方式では3D映像に対応していないため、3D映像は出力できない。プレーヤが3D映像再生中は、図76のように、アナログ出力に「3D映像再生中です。3D対応ディスプレイでご覧ください。」などのメッセージを表示して、ユーザーが誤った端子に接続したり、対応していないディスプレイに接続していることを知らせるためのメッセージを表示する。
接続されているディスプレイが2Dディスプレイのみの場合は、自動的に2Dプレイリストに再生を切り替えてもよい。プレーヤに2Dディスプレイと、3Dディスプレイが接続されており、同時に出力している場合は、2Dディしプレイ側に3D映像の左目映像か右目映像のいずれかのみを出力する。どちらの映像をアナログ用に出力するかは、プレイリストなどに格納された、2D出力優先映像情報に従う。この仕組みにより、2Dと3Dとを同時に出力する場合、2Dと3D用の映像を同時にデコードしたり、2Dと3D用のプレイリストを独立して扱えなくても、同時にディスプレイに出力することが可能となる。
同様にOSD(システム組み込みメニュー)表示を行う際、3Dディスプレイには3D対応のOSD表示を行うが、アナログ出力のように2Dしか対応しない出力には専用の2D映像、あるいは、左目映像のみ/右目映像のみを出力する。
3D用の出力と2D用の出力が困難な場合は、リモコンにサブディスプレイを設け、そちらに表示してもよい。
図77は、プレーヤの2D/3D出力を示すシステムパラメータに不正な値が設定され、映像が表示されなくなることを回避するためのプログラムに関する説明である。破線四角形は処理を示しており、楕円はプログラム動作を示し、ごのシステムパラメータの状態、矢印はプログラムが動作するタイミングが併記されている。
このプログラムは、ディスク挿入時、タイトル切り替え時、PlayList切り替え時、ユーザー要求により表示形式切り替え時に、それぞれの判定ロジックで、システムパラメータの値が有効な値以外には変更されないことを保証する。このプログラムは、各プレーヤ上に組み込まれている。
タイトルには2種類存在し、AVを管理するPlayListが再生中のみアプリケーションが有効であるMovie titleと、PlayListが再生されていなくてもJavaプログラムから画面を描画することが可能なJava titleがある。
図中の矢印とプログラムが動作するタイミングには、Movie titleの時のみ動作するものと、Java titleの時のみ動作するものと、タイトルの種類にかかわらず動作するものがある。
システムパラメータの値が「Invalid」とは、システムパラメータの値が出力に反映されていない状態であり、たとえシステムパラメータの値が変更されても、2D/3Dの出力は切り替わらない。この場合の動作は不定でも良い。
対して、「Valid」とは、システムパラメータの値が出力に反映されている状態であり、システムパラメータが2Dを示していれ第2記録媒体D出力であり、3Dを示していれ倍速再生D出力である。なお、切り替え時は、HDMIの再認証などが発生するため、システムパラメータの値の変更と出力形式の切り替えに多少のタイムラグがあっても良い。
ディスク挿入時には、「Initialization」として示されている、図78、図91で示すプログラムが処理される。接続されているディスプレイが眼鏡を必要とせずに立体視できる(レンチキュラーなど)ものであれば、自動的に出力モードを3Dにしてもよい。
Java titleへ切り替わる時には、「Procedure when title is changed」として示されている、図79(a)で示すプログラムが処理される。SD画質では十分に立体映像を表現できないため、Java管理情報がSD解像度を設定する場合は、自動的に2Dモードに切り替えてもよい。
PlayList再生開始時には、「Procedure when playback condition is changed」として示されている、図79(b)で示すプログラムが処理される。
2D/3D出力の切り替え時には、「Procedure when title change is requested」として示されている、図80で示すプログラムが処理される。
図81は、図77の説明図のうち、Movie titleの場合のみを抜き出してものである。
図82は、図77の説明図のうち、Java titleの場合のみを抜き出したものである。
図83は、図77の説明図のうち、タイトル切り替えの場合のみを抜き出したものである。
(HDMI認証の事前処理)
図84は、再生開始時の映像表示までの時間を短縮する方法について説明している。
再生開始時の処理としては、プレーヤにディスクが挿入され、AVを再生する準備やプログラム実行環境の起動を待ち、プログラムに従って再生するPlayListを選択し、再生するビデオストリームが決定してから、ビデオの解像度とフレームレートを検出して、HDMIの認証を行い、TVとの接続が確立後、AVの再生を開始する。
HDMI認証には時間がかかるため、再生開始までにかなりの時間を待たされる懸念がある。
そこで、図84(a)に示すように、再生するPlayListが決定する前に、最初に読み込まれるナビゲーションデータの一部に、HDMI認証に必要なビデオ解像度とフレームレートなどの情報を記録しておき、図84(b)に示すように、AVを再生する準備やプログラム実行環境の起動処理と並行してHDMI認証を行っておけば、PlayList選択後、すぐに再生を開始することが可能になる。
事前にオーサリングされ作り込まれたコンテンツが記録されているBD-ROMの場合、ディスク再生中のPlayListに含まれるビデオ解像度とフレームレートを合わせておくことも可能であるため、事前にHDMI認証を完了させておくと、PlayList再生開始時に待ち時間を短縮する効果が得られる。
また、たとえPlayListによってはビデオ解像度やフレームレートが異なったとしても、最初に再生されるPlayListや本編のPlayListはオーサリング時点で分かっているため、そのPlayListに含まれるビデオの解像度とフレームレートで事前に認証を済ませておけば、やはりPlayList再生開始時に待ち時間を短縮する効果が得られる。
(特殊再生における映像データ読み込み)
3D映像が格納されたディスクで、再生互換性を確保するためのディスクと再生装置の従来例としては、図85に示すような方法が知られている。ディスクには、左目用の画面が格納された2D/左目映像ビデオストリームと、右目用の画面が格納された右目映像ビデオストリームが格納されている。
各AVストリームは、ディスク上に幾つかのエクステントに分割され、交互にディスク上に配置されている。連続して再生するため、隣接する2D/左目AVストリームのエクステントと、右目AVストリームのエクステントは同じ同一再生時間を有しており、インターリーブ配置されているか、両ストリームが1つのストリームに多重化されている。
2D/左目AVストリームが配置されたエクステントは、それぞれを順次再生した場合に、シームレス再生できるようにディスクのシーク性能や読み込み速度を元に配置されている。ディスクは、2D再生装置に装填されると、2D/左目AVストリームであるが再生され、2D映像を出力する。一方で、ディスクが3D再生装置に装填され、ユーザが3D再生を選択した場合は、2D/左目AVストリームと右目AVストリームがエクステント単位で交互に読み込まれる。つまり、ドライブのシークが発生しないように連続的に読み込まれる。読み込まれたAVストリームは、2D/左目映像ビデオストリームは左目用映像デコーダに、右目映像ビデオストリームは右目用映像デコーダに入力され、それぞれ両方のストリームを復号して、例えば左目画面・右目画面が交互にテレビに出力される。この出力画像は、1/48秒毎に右目と左目のシャッタが切り替わる立体メガネで見ると立体映像に見える。このような構成にすることで、3D映像が格納されたディスクが、2D再生装置で2D映像で再生し、2D/3D再生装置では3D映像を再生することができる。
通常再生を行う場合は、再生するストリームファイルを指定して先頭から連続して読み込めばよいが、早送りのように映像の部分区間を高速に切り替えて読み込む場合は、読み込み位置を示したナビゲーション情報が必要となる。特に高速に早送りする場合は、Iピクチャのみを読み込んで、次に表示すべきIピクチャにシークすることを繰り返すため、Iピクチャの位置を効率的に読み込むためのナビゲーション情報が必要となる。
図86は、2D映像の場合のナビゲーション情報を示しており、Iピクチャの開始アドレスとサイズを格納したタイムマップがそれにあたる。
2D/左目用ストリームと、右目用ストリームが異なるファイルあるいは異なるトランスポートストリームに多重化されている場合は、各々独立した個別のタイムマップを持っておけばよく、早送り再生時に同じ時刻の映像をそれぞれ読み込んで表示すればよい。
なお、図87に示すように、早送りなどの特殊再生時も、左目用映像と右目用映像はペアでなければ立体に見えないため、同じ時刻の映像を読み込んで表示する必要がある。そのため、それぞれのタイムマップの時刻が異なる場合は、早送り中の立体映像表示は困難であるため、タイムマップの時刻を合わせておく必要がある。
2D/左目用ストリームと、右目用ストリームが同じトランスポートストリームに多重化されている場合は、個別にタイムマップを作る方法と、左目用・右目用ペアごとに1つのタイムマップを作る方法がある。
図88は、個別にタイムマップを持つ場合である。1つのトランスポートストリームに多重化されているが、読み込み方法は2つに分かれている場合と同じである。読み取り領域が重なる場合は、連続で読み込むための工夫などは必要である。
図89は、左目用・右目用ペアごとに1つのタイムマップを作る場合である。ペアごとにエントリーを登録するため、左目用と右目用のIピクチャの時刻は同じである。左目用Iピクチャの先頭アドレスと右目用Iピクチャの先頭アドレスのうち先にあるもののアドレスを登録し、左目用Iピクチャの終端アドレスと右目用Iピクチャの終端アドレスのうち後にあるもののアドレスと先ほどの先頭アドレスとの距離をサイズとして登録する。この方法の場合、あるエントリーを読み取るときに左目用と右目用のピクチャは必ずペアになっている利点があるが、それぞれのIピクチャの距離が離れている場合、間に異なるピクチャの映像が含まれてしまい、余分な読み取りが発生する可能性がある。ただし、シークする時間よりも不要なデータを読み込んで捨てた方が時間効率がよい場合もあるため、こちらの方式の方が効果的な場合もある。
(字幕・グラフィクスの合成)
図90は、字幕あるいはグラフィクスデータの利用について説明する図である。
2D用の字幕データと、3D用の左目用字幕データ、右目用字幕データがそれぞれ異なる場合、2Dの字幕データの容量に対して、約3倍のグラフィクスデータ容量が必要となり、ディスクの容量を圧迫する。対策として、2D用の字幕を左目用と右目用に表示位置を変えて映像に対して視差を生じ、浮かせたり凹ませて見せる方法と、3D用に作り込んだ左目用映像と右目映像のうち、2D表示の場合は片側だけ表示する方法が考えられる。前者は2Dのグラフィクスデータサイズとほぼ同じ、後者は約2倍のデータ量ですむ。
どちらの場合も、3D左目用字幕データと2D用字幕データは、グラフィクスとしては同じものであり、表示形式が2D表示の場合はオフセットなし、3D表示の場合はオフセットありで表示する。
なお、オフセットデータは、字幕・グラフィクスデータに設定されていてもよいし、ナビゲーション情報から与えられてもよいし、映像データに埋め込まれており、各フレームごとあるいはGOP単位ごとに設定されていてもよい。
(第13実施形態)
本実施形態では、これまでの実施形態において説明された構造のデータを再生する再生装置に関して、集積回路803を用いて実現した構成例について説明する。
図93は、集積回路803を用いて構成された再生装置を示す図である。
媒体IF部801は、媒体からデータを受信して(読み出して)、集積回路803に転送する。なお媒体IF部801は、前述の実施形態において説明した構造のデータを媒体から受信する。媒体IF部801は、例えば、媒体が光ディスクやハードディスクの場合はディスクドライブ、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波の場合はCANチューナーやSiチューナー、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合は、ネットワークIF、等である。
メモリ802は、媒体から受信した(読み出した)データを一旦格納したり、集積回路803における処理途中のデータを一時的に格納するメモリで、例えばSDRAM(Synchronous Dynamic Random Access Memory)、DDRx SDRAM(Double-Date-Ratex Synchronous Dynamic Random Access Memory;x=1,2,3・・・)等が用いられる。なおメモリ802は、任意の個数備えていればよく、必要に応じて単数でも複数でも構わない。
集積回路803は、媒体IF部801から転送されたデータに対して映像・音声処理を施すシステムLSIで、ストリーム処理部805、主制御部806、信号処理部807、AV出力部808、メモリ制御部809等から構成される。
主制御部806は、タイマ機能や割り込み機能を有するプロセッサコアを有し、プロセッサコアはプログラムメモリ等に格納されたプログラムに従って、集積回路803全体の制御を行う。なお、プログラムメモリ等には、予めOS等の基本ソフトが格納されている。
ストリーム処理部805は、主制御部806の制御の下、媒体から媒体IF部801経由で転送されたデータを受信し、集積回路803内のデータバスを経由してメモリ802に格納したり、受信したデータを映像系データ(ビデオ/グラフィクス(PG,IG))、音声系データに分離する。前述したとおり媒体上のデータは、レフトビュービデオストリームを含む2D/L用のAVクリップとライトビュービデオストリームを含むR用のAVクリップが、幾つかのエクステントに分割された状態で交互に配置されたものである。従って、主制御部806は、集積回路803がレフトビューストリームを含む左目用データを受信した場合は、メモリ802の第1の領域にデータが格納されるように、ライトビュービデオストリームを含む右目用データを受信した場合は、メモリ802の第2の領域にデータが格納されるように制御する。ここで、左目用データは左目用エクステントに属しており、右目用データは右目用エクステントに属している。なお、メモリ802における第1、第2の領域は単一のメモリが論理的に領域分割されたものでもよいし、物理的に異なるメモリでもよい。また、本実施形態においては、レフトビュービデオストリームを含む左目用データをメインビューデータ、ライトビュービデオストリームを含む右目用データをサブビューデータとして説明を続けるが、右目用データがメインビューデータ、左目用データがサブビューデータであっても構わない。また、グラフィクスストリームは、メインビューデータ及びサブビューデータのいずれか一方、もしくは両方に多重化されている。
信号処理部807は、主制御部806の制御の下、ストリーム処理部805が分離した映像系データ、音声系データに対し、適切な方式でデコードする。映像系データは、MPEG-2、MPEG-4 AVC、MPEG4-MVC、SMPTE VC-1などの方式を使って符号化記録されており、また音声系データは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、リニアPCMなどの方式で圧縮・符号化記録されているので、信号処理部807はこれらに対応した方式でデコードする。なお、信号処理部807のモデルは、例えば第1実施形態の図12における各種デコーダがそれに当たる。
メモリ制御部809は、集積回路803内の各機能ブロックからメモリ802へのアクセスを調停する。
AV出力部808は、主制御部806の制御の下、信号処理部807においてデコードされた映像系データを重畳したり、映像系データのフォーマット変換等をして集積回路803外へ出力する。
図94は、ストリーム処理部805の代表的な構成を示す機能ブロック図である。ストリーム処理部805は、デバイス・ストリームIF部851、多重分離部852、切替部853等を備える。
デバイス・ストリームIF部851は、媒体IF部801と集積回路803間のデータ転送用インターフェースであり、例えば、媒体が光ディスクやハードディスクの場合はSATA(Serial Advanced Technology Attachment)、ATAPI(Advanced Technology Attachment Packet Interface)、PATA(Parallel Advanced Technology Attachment)、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波などの場合はチューナーIF、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合は、ネットワークIF、等である。なお、媒体の種類によっては、デバイス・ストリームIF部851が媒体IF部801の機能の一部を肩代わりしても構わないし、媒体IF部801が集積回路803に内蔵されていても構わない。
多重分離部852は、媒体から転送された映像・音声を含む再生データを映像系データと音声系データに分離する。前述の各エクステントは、映像・音声・PG(字幕)・IG(メニュー)等の各ソースパケットから構成されており(但し、サブビューデータは音声を含まない場合もある)、各ソースパケットに含まれているPID(識別子)に従って、映像系・音声系の各TSパケットに分離し、信号処理部807に転送する。処理済のデータは、直接もしくは一旦メモリ802に格納された後、信号処理部807に転送される。なお、多重分離部852のモデルは、例えば、第1実施形態の多重分離部を構成するソースデパケタイザ、PIDフィルタがそれに当たる。
切替部853は、デバイス・ストリームIF部851が左目用データを受信した時はメモリ802の第1の領域に格納されるように、右目用データを受信した時はメモリ802の第2の領域に格納されるように、出力先(格納先)を切り替える。ここで、切替部853は例えばDMAC(Direct Memory Access Controller)である。図95は切替部853がDMACであった場合の切替部853周辺の概念図である。DMACは、主制御部806の制御の下、デバイス・ストリームIF部が受信したデータとそのデータ格納先アドレスをメモリ制御部809に対して送信する。具体的には、デバイス・ストリームIF部が左目用データを受信した時はアドレス1(第1の格納領域)を、右目用データを受信した時はアドレス2(第2の格納領域)をメモリ制御部809に送信することで、受信データによってその出力先(格納先)を切り替えている。メモリ制御部809は、DMACから送られてきた格納先アドレスに従ってメモリ802にデータを格納する。なお、主制御部806の代わりに切替部853を制御する専用の回路を設けても構わない。
ここでは、ストリーム処理部805の代表的な構成として、デバイス・ストリームIF部851、多重分離部852、切替部853について説明したが、受信した暗号化データや鍵データ等を復号する暗号エンジン部、媒体〜再生装置間の機器認証プロトコル等の実行制御や秘密鍵を保持するセキュア管理部、ダイレクトメモリアクセス用のコントローラ等を更に備えていてもよい。これまでは媒体から受信したデータをメモリ802に格納する際に、切替部853が左目用データ・右目用データかによって格納先を切り替える場合について説明してきたが、媒体から受信したデータを一旦メモリ802に格納した後に、多重分離部852へデータを転送する際に、左目用データ・右目用データを振り分けてもよい。
図96は、AV出力部808の代表的な構成を示す機能ブロック図である。AV出力部808は、画像重畳部881と、ビデオ出力フォーマット変換部882、オーディオ・ビデオ出力IF部883等を備える。
画像重畳部881は、デコードされた映像系のデータを重畳する。具体的には、レフトビュービデオデータもしくはライトビュービデオデータと、PG(字幕)、IG(メニュー)をピクチャ単位で重畳する。画像重畳部801のモデルは、例えば図16などである。前述のとおり、グラフィクスストリームの再生タイプには、平面視グラフィクスストリームを用いた第1の再生方法と、左目用のグラフィクスストリームと右目用のグラフィクスストリームのペアを用いた立体視再生を行う第2の再生方法があり、どちらの再生方法を選択するかは、媒体中に存在するデータとそれを再生する再生装置の再生能力との組み合わせによって決まる。具体的には、媒体は、グラフィクスストリームに、左目用グラフィクスストリームと右目用グラフィクスストリームのペアが存在するか否かを示す識別フラグを有している。また再生装置は、メモリ802中に左目用グラフィクスストリームと右目用グラフィクスストリームのペアを用いた立体視再生を行う能力があるか否かを示す情報を有しており、識別フラグが左目用グラフィクスストリームと右目用グラフィクスストリームのペアが存在することを示し、且つ再生装置が左目用グラフィクスストリームと右目用グラフィクスストリームのペアを用いた立体視再生を行う能力がある場合に、第2の再生方法が選択され、それ以外は第1の再生方法が選択される。第2の再生方法が選択された時は、レフトビュービデオデータと対応する左目用グラフィクスデータが重畳され、ライトビュービデオデータと対応する右目用グラフィクスデータが重畳される。また、第1の再生方法が選択された時は、平面視グラフィクスデータには水平座標の+方向もしくは−方向のオフセットが与えられ、レフトビュービデオデータは、+方向にオフセットが与えられた対応する平面視グラフィクスデータと重畳され、ライトビュービデオデータは、−方向にオフセットが与えられた対応する平面視グラフィクスデータが重畳される。なお、オフセット制御のための情報は、サブビューストリームに含まれている。
ビデオ出力フォーマット変換部882は、デコードされた映像系データに対して、拡大または縮小するリサイズ処理、走査方式をプログレッシブ方式及びインターレース方式の一方から他方に変換するIP変換処理、ノイズを除去するノイズリダクション処理、フレームレートを変換するフレームレート変換処理などを必要に応じて行う。
オーディオ・ビデオ出力IF部883は、画像重畳やフォーマット変換された映像系データとデコードされた音声系データとに対して、データ送信形式に合わせてエンコード等を行う。なお、後述するようにオーディオ・ビデオ出力IF部883は、一部集積回路803外に備えられても構わない。
図97は、AV出力部808もしくは再生装置のデータ出力部分を、より詳細に示した構成例である。本実施の形態における集積回路803及び再生装置は、複数の映像系データ、音声系データのデータ送信形式に対応している。図96におけるオーディオ・ビデオ出力IF部883は、アナログビデオ出力IF部883a、アナログオーディオ出力IF部883c、デジタルオーディオ・出力IF部883bに対応する。
アナログビデオ出力IF部883aは、画像重畳処理や出力フォーマット変換処理された映像系データを、アナログ映像信号形式に変換・エンコードし、出力する。例えば、NTSC、PAL、SECAMの3方式のいずれかに対応したコンポジットビデオエンコーダー、S映像信号(Y/C分離)用エンコーダー、コンポーネント映像信号用エンコーダーや、DAC(D/Aコンバータ)等がそれに当たる。
デジタルオーディオ・ビデオ出力IF部883bは、デコードされた音声系データと画像重畳処理や出力フォーマット変換された映像系データを一体化、更に暗号化した後、データ送信規格に合わせてエンコードし、出力する。例えば、HDMI(High−Definition Multimedia InterFace)等がそれに当たる。
アナログオーディオ出力IF部883cは、デコードされた音声系データをD/A変換しアナログ音声データを出力するオーディオDAC等がそれに当たる。
これら映像系データ及び音声系データの送信形式は、表示装置・スピーカー側がサポートしているデータ受信装置(データ入力端子)に依存して切り替えたり、またユーザーの選択によって送信形式を切り替えることが可能である。更に、単一の送信形式だけではなく、並行して複数の送信形式にて同一のコンテンツに対応したデータを送信することも可能である。
ここでは、AV出力部808の代表的な構成として、画像重畳部881、ビデオ出力フォーマット変換部882、オーディオ・ビデオ出力IF部883について説明したが、フィルタ処理、画面合成、曲線描画、3D表示等のグラフィックス処理を行うグラフッィクスエンジン部等を更に備えていてもよい。
以上が、本実施の形態における再生装置の構成についての説明である。なお、前述の集積回路803に含まれる各機能ブロックは全てが内蔵されていなくても良いし、逆に図93のメモリ802が集積回路803に内蔵されていてもよい。また、本実施形態においては、主制御部806と信号処理部807は異なる機能ブロックとして説明してきたが、主制御部806が信号処理部807の処理の一部を行っても構わない。
また、例えば図100のように、本実施の形態における再生装置の処理を表示装置において行っても構わない。その際、媒体IF部801が受信したデータは集積回路803によって信号処理され、処理された映像系データは表示駆動部8010を経由して表示パネル811を通して出力され、処理された音声系データは、スピーカー812を通して出力される。ここで、AV出力部808は例えば図101のように構成され、集積回路803内部もしくは外部のビデオ出力IF部884及びオーディオ出力IF部885を通してデータ転送が行われる。なお、ビデオ出力IF部884及びオーディオ出力IF部885をそれぞれ複数備えていてもよいし、ビデオとオーディオ共通のIF部を備えていてもよい。
また、集積回路803における制御バスやデータバスの経路は、各処理ブロックの処理手順や処理内容によって任意に配置されるが、例えば図98のように、各処理ブロックどうしを直接結ぶようにデータバスを配置してもよいし、図99のように各処理ブロックどうしをメモリ802(メモリ制御部809)を介して結ぶようにデータバスを配置してもよい。
また、集積回路803は、複数のチップを一つのパッケージに封止し、見かけ上一つのLSIにしたマルチチップ・モジュールであっても構わない。
また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
次に、以上のように構成された再生装置の動作について説明する。
図102は、媒体からデータを受信し(読み出し)、デコードした後に、映像信号及び音声信号として出力する再生動作手順を簡単に示すフローチャートである。
S801:媒体からデータを受信する(読み出す)(媒体IF部801、ストリーム処理部805)。
S802:S801において受信された(読み出された)データを各種データ(映像系データ・音声系データ)に分離する(ストリーム処理部805)。
S803:S802において分離された各種データを適切な形式でデコードする(信号処理部807)。
S804:S803においてデコード処理された各種データのうち、映像系のものについて重畳処理を行う(AV出力部808)。
S805:S802〜S804において処理された映像系データ及び音声系データを出力する(AV出力部808)。
図103は、より詳細に再生動作手順を示したフローチャートである。各動作・処理は、主制御部806の制御の下、行われる。
S901:ストリーム処理部805のデバイス・ストリームIF部851は、媒体IF部801を通して媒体に格納されている再生されるデータ以外の、データを再生するために必要なデータ(PLAYLIST、CLIPINF等)を受信し(読み出し)、メモリ802に格納する(媒体IF部801、デバイスIF部851、メモリ制御部809、メモリ802)。
S902:主制御部806は、受信されたCLIPINFに含まれるストリーム属性情報から、媒体に格納されている映像データ及び音声データの圧縮形式を認識し、対応するデコード処理ができるように信号処理部807の初期化を行う(主制御部806)。
S903:ストリーム処理部805のデバイス・ストリームIF部851は、媒体IF部801を通して媒体に格納されている映像・音声など再生されるデータを受信し(読み出し)、切替部853、メモリ制御部809を経由してメモリ802に格納する。なお、データはエクステント単位で受信し(読み出され)、左目用データを受信した(読み出した)時は第1の領域へ、右目用データを受信した(読み出した)時は第2の領域へ格納されるよう、主制御部806が切替部853を制御し、切替部853がデータの出力先(格納先)を切り替える(媒体IF部801、デバイスIF部851、主制御部806、切替部853、メモリ制御部809、メモリ802)。
S904:メモリ802に格納されたデータは、ストリーム処理部805の多重分離部852に転送され、多重分離部852はストリームデータを構成するソースパケットに含まれるPIDに従って映像系(主映像、副映像、PG(字幕)、IG(メニュー))、音声系(音声、副音声)のいずれであるか認識し、TSパケット単位で信号処理部807の対応する各デコーダへ転送する。(多重分離部852)。
S905:信号処理部807の各デコーダは、転送されてきたTSパケットに対して、適切な方式でデコード処理を行う(信号処理部807)。
S906:信号処理部807においてデコードされた映像系データのうち、レフトビュービデオストリーム及びライトビュービデオストリームに対応するデータを、表示装置4に合わせてリサイズする(ビデオ出力フォーマット変換部882)。
S907:S906においてリサイズされたビデオストリームと、PG(字幕)・IG(メニュー)とが重畳される(画像重畳部881)。
S908:S907において重畳された映像データに対して、走査方式の変換であるIP変換を行う(ビデオ出力フォーマット変換部882)。
S909:これまでの処理を行った映像系データ及び音声系データに対して、表示装置・スピーカー4のデータ出力方式、もしくは表示装置・スピーカー4へのデータ送信方式に従って、エンコードやD/A変換等を行う。例えば、映像系データ・音声系データをそれぞれ、アナログまたはデジタル出力に対応するために処理を行う。映像系データのアナログ出力としては、コンポジット映像信号やS映像信号やコンポーネント映像信号等をサポートしている。また映像系・音声系データのデジタル出力は、HDMIをサポートしている(オーディオ・ビデオ出力IF部883)。
S910:S909において処理された映像系データ及び音声系データを、表示装置・スピーカー4に送信、出力する(オーディオ・ビデオ出力IF部883、表示装置・スピーカー4)。
以上が、本実施の形態における再生装置の動作手順の説明である。なお、処理ごとに処理結果をメモリ802に一旦格納しても構わない。また、図100の表示装置で再生処理を行った場合も基本的に同様の動作手順であり、図93の再生装置の各機能ブロックに対応する機能ブロックが同様の処理を行う。また、本動作手順では、ビデオ出力フォーマット変換部882においてリサイズ処理及びIP変換処理を行う場合について説明したが、必要に応じて処理を省略しても構わないし、また他の処理(ノイズリダクション処理、フレームレート変換処理等)を行っても構わない。更に、可能なものについては処理手順を変更しても構わない。
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(光ディスクの再生)
BD-ROMドライブは、半導体レーザ、コリメートレンズ、ビームスプリッタ、対物レンズ、集光レンズ、光検出器を有する光学ヘッドを備える。半導体レーザから出射された光ビームは、コリメートレンズ、ビームスプリッタ、対物レンズを通って、光ディスクの情報面に集光される。
集光された光ビームは、光ディスク上で反射/回折され、対物レンズ、ビームスプリッタ、集光レンズを通って、光検出器に集光される。光検出器にて集光された光の光量に応じて、再生信号を生成する。
(記録媒体のバリエーション)
各実施の形態における記録媒体は、光ディスク、半導体メモリーカード等、パッケージメディア全般を含んでいる。本実施の形態の記録媒体は予め必要なデータが記録された光ディスク(例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク)を例に説明をするが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置(例えば左記の機能は再生装置に組み込まれていても良いし、再生装置とは別の装置であってもよい)を利用して書き込み可能な光ディスク(例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク)に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
(半導体メモリカード記録装置及び再生装置の実施形態)
各実施の形態で説明をしたデータ構造を半導体メモリーに記録する記録装置、及び、再生する再生装置の実施形態について説明する。
まず、前提となる技術として、BD-ROMに記録されているデータの著作権保護の仕組みについて説明する。
BD-ROMに記録されたデータのうち、例えば著作権の保護、データの秘匿性の向上の観点からデータの一部が、必要に応じて暗号化されている場合がある。
例えば、BD-ROMに記録されたデータのうち、暗号化されているデータは、例えばビデオストリームに対応するデータ、オーディオストリームに対応するデータ、またはこれらを含むストリームに対応するデータであったりする。
以後、BD-ROMに記録されたデータのうち、暗号化されているデータの解読について説明をする。
半導体メモリカード再生装置においては、BD-ROM内の暗号化されたデータを解読するために必要な鍵に対応するデータ(例えばデバイスキー)が予め再生装置に記憶されている。
一方、BD-ROMには暗号化されたデータを解読するために必要な鍵に対応するデータ(例えば上述のデバイスキーに対応するMKB(メディアキーブロック))と、暗号化されたデータを解読するための鍵自体を暗号化したデータ(例えば上述のデバイスキー及びMKBに対応する暗号化タイトルキー)が記録されている。ここで、デバイスキー、MKB、及び暗号化タイトルキーは対になっており、さらにBD-ROM上の通常コピーできない領域(BCAと呼ばれる領域)に書き込まれた識別子(例えばボリュームID)とも対応付けがされている。この組み合わせが正しくなければ、暗号の解読ができないものとする。組み合わせが正しい場合のみ、暗号解読に必要な鍵(例えば上述のデバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を導き出すことができ、この暗号解読に必要な鍵を用いて、暗号化されたデータの解読が可能となる。
装填されたBD-ROMを再生装置において再生する場合、例えばBD-ROM内の暗号化タイトルキー、MKBと対になっている(または対応する)デバイスキーが再生装置内になければ、暗号化されたデータは再生がなされない。何故ならば、暗号化されたデータの解読に必要な鍵(タイトルキー)は、鍵自体が暗号化されて(暗号化タイトルキー)BD-ROM上に記録されており、MKBとデバイスキーの組み合わせが正しくなければ、暗号の解読に必要な鍵を導き出すことができないからである。
逆に暗号化タイトルキー、MKB、デバイスキー及びボリュームIDの組み合わせが正しければ、例えば上述の暗号解読に必要な鍵(デバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いてビデオストリームがデコーダにてデコードされ、オーディオストリームがオーディオデコーダにてデコードされるように再生装置は構成されている。
以上が、BD-ROMに記録されているデータの著作権保護の仕組みであるが、この仕組みは、BD-ROMに必ずしも限定されるのではなく、例えば、読込み/書込み可能な半導体メモリー(例えばSDカードなどの可搬性を有する半導体メモリーカード)に適用した場合においても、実施が可能である。
半導体メモリーカード再生装置の再生手順について説明する。光ディスクでは例えば、光ディスクドライブを介してデータを読み出すように構成していたのに対し、半導体メモリーカードを用いた場合には、半導体メモリーカード内のデータを読み出すためのI/Fを介してデータを読み出すように構成すればよい。
より詳細には、再生装置のスロットに半導体メモリーカードが挿入されると、半導体メモリーカードI/Fを経由して再生装置と半導体メモリーカードが電気的に接続される。半導体メモリーカードに記録されたデータは半導体メモリーカードI/Fを介して読み出すように構成すれば良い。
(受信装置としての実施形態)
各実施形態で説明した再生装置は、本実施の形態で説明をしたデータに相応するデータ(配信データ)を電子配信サービスの配信サーバから受信し、半導体メモリカードに記録する端末装置としても実現することができる。
かかる端末装置は、各実施形態で説明した再生装置がそのような動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリーに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリーとしてSDカードを例に説明をする。
再生装置が備えるスロットに挿入されたSDメモリーカードに配信データを記録する場合、まず配信データを蓄積する配信サーバへ配信データの送信を要求する。このとき再生装置は挿入したSDメモリーカードを一意に識別するための識別情報(例えば個々のSDメモリーカード固有の識別番号、より具体的には、例えばSDメモリーカードのシリアル番号等)をSDメモリーカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
この、SDメモリーカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
一方、配信サーバでは、配信するデータのうち必要なデータ(例えばビデオストリーム、オーディオストリーム等)が暗号解読に必要な鍵(例えばタイトルキー)を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
例えば配信サーバは、秘密鍵を保持しており、半導体メモリーカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
また、配信サーバは、暗号化されたデータの解読に必要な鍵(タイトルキー)自身に対して暗号化ができるように構成されている(つまり暗号化タイトルキーを生成できるように構成されている)。
生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリー固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵(例えばデバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)が得られ、この得られた暗号解読に必要な鍵(タイトルキー)を用いて、暗号化されたデータの解読ができるものである。
次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリーカードの記録領域に記録する。
次に、半導体メモリーカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
受信した公開鍵情報は例えば公開鍵本体(例えば上述のMKB及び暗号化タイトルキー)、署名情報、半導体メモリーカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
署名情報には例えば、公開鍵情報のハッシュ値を含む。
デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能(プログラム)といったものを一意に特定するための情報である。
半導体メモリーカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。
まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
具体的には、(1) 公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック(2) 再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック(3) 公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック(例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック)
を行なう。これらのチェックを行なう順番は、どのような順序で行なってもよい。
上述の(1)〜(3)のチェックにおいて、公開鍵情報に含まれる半導体メモリー固有の識別情報と半導体メモリーに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。
また、公開鍵情報に含まれる半導体メモリーカードの固有の識別情報と半導体メモリーカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵(デバイスキー、MKB及び半導体メモリー固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いて、暗号化されたデータの解読を行なう。
例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵(暗号化タイトルキーを復号して得られるタイトルキー)を利用してビデオストリームを復号し(デコードし)、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する(デコードする)。
このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能(プログラム)などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報(公開鍵本体)を用いた復号を抑止できるようにできるため、半導体メモリー固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。
また半導体メモリーカードに予め記録されている半導体メモリーカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリーカードに予め記録されている固有の識別番号(例えばSDメモリーカードを例にすればSDメモリーカードのシリアル番号等)は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリーカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の(1)の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
従って、半導体メモリーカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
このような構成を実現するために、例えば半導体メモリーカードは、半導体メモリーカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域(第1の記録領域と称す)とは別の記録領域(第2の記録領域と称す)に設けること、およびこの第2の記録領域へのアクセスをするための制御回路を設けるとともに、第2の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
例えば、第2の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第2の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第2の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。
再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録する要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行すると、要求を受けた制御回路は第2の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリーカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第1の記録領域に記録するように構成すればよい。
また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリーカードに記録を要求するアプリケーションは、メモリーカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のX.509仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
また、半導体メモリーカードの第1の記録領域に記録された配信データへのアクセスは半導体メモリーカードが有する制御回路を介してアクセスする必要は必ずしもない。