上記課題解決手段を具備した記録媒体は、コンテンツを店頭販売するためのパッケージ媒体として実施することができる。また、この記録媒体に対応する再生装置は、パッケージ媒体を再生するためのプレーヤ機器として実施することができ、この記録媒体に対応する集積回路は、当該プレーヤ機器に組込まれるシステム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モード、上端側2D字幕再生モード、下端側2D字幕再生モードという出力モードが存在する。
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プレーンがシフト制御の対象になる。
上端側2D字幕再生モードは、ビデオプレーンメモリの後段にシフト部を組込んで、シフト部を機能させることでビデオフレームの上端に、2D字幕の表示領域を確保する出力モードであり、下端側2D字幕再生モードは、シフト部を機能させることでビデオストリームの下端に、2D字幕の表示領域を確保する出力モードである。プレーンオフセット部は、上端側2D字幕再生モードではレフトビュー期間及びライトビュー期間のそれぞれにおいて、ビデオプレーンメモリに格納されたピクチャデータの画素の座標を、下方向にシフトさせ、下端側2D字幕再生モードではレフトビュー期間及びライトビュー期間のそれぞれにおいて、ビデオプレーンメモリに格納されたピクチャデータの画素の座標を、上方向にシフトさせる。
上端側2D字幕再生モード、下端側2D字幕再生モードをサポートする場合、再生装置の構成は以下の通りになる。ビデオフレーム及びグラフィクスの再生のため、再生装置にはプレーンメモリと、合成部が存在しており、ビデオプレーンメモリと合成部との間にシフト部が組み入れられる。そして、シフト部は、グラフィクスストリームのストリーム登録列に組込まれたオフセットを用いて、上述したような画素の座標変化を実現する。
上端側2D字幕再生モード、下端側2D字幕再生モードでの使用に適したビデオフレームは、図4(a)に示すようにアスペクト比16:9、解像度1920×1080ピクセルの画面中央に、アスペクト比2.35:1、解像度1920x818ピクセルのシネスコサイズの画像が配置され、シネスコサイズの画像の上下に1920×131ピクセルの黒枠が配置されたものである。このようなビデオフレームが格納されたビデオプレーンメモリにおいて、画素の座標を上方向又は下方向にシフトし、シフトにより生じた空白領域にに黒色のデータを格納することにより、同図(b)、(c)に示すように、もとのビデオフレームの上下端に存在した黒枠を、上端もしくは下端にまとめる。このようにすることによって、字幕を表示するのに十分な大きさの黒枠を用意することができる。
以上が3D出力モードについての説明である。続いて、本実施形態に係る記録媒体の内部構成について説明する。
図5は、第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プレイリストでは、立体視効果が異なる、プレイリストのバリエーションを簡易に作成することがでるという効果を奏する。
図5(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モード、上端側2D字幕再生モード、下端側2D字幕再生モードにおいて再生される。
・インタラクティブグラフィクス(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モード、上端側2D字幕再生モード、下端側2D字幕再生モードといった5つの出力モードが許容される。PGストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。B−Dプレゼンテーションモードで再生される場合におけるPGストリームの類型を、"立体視再生タイプ"という。1plane+Offsetモードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、1plane+Offsetタイプという。1plane+Zero Offsetモードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、1plane+Zero Offsetタイプという。上端側2D字幕再生モードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、"上端側2D字幕再生タイプ"という。下端側2D字幕再生モードで再生される場合におけるPGストリーム,PG_テキスト字幕ストリームの類型を、"下端側2D字幕再生タイプ"という。
テキスト字幕ストリームの3D表示モードには、1plane+Offsetモード、1plane+Zero Offsetモード、上端側2D字幕再生モード、下端側2D字幕再生モードといった4つの出力モードが許容される。テキスト字幕ストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。
IGストリームの3D表示モードには、B−Dプレゼンテーションモード、1plane+Offsetモード、1plane+Zero Offsetモードといった3つの出力モードが許容される。IGストリームにおいて、1plane+Zero Offsetモードが許容されるのは、ポップアップメニューがオンになっている場合のみである。以降の説明では、特に断らない限り3D出力モード実行時には、ピクチャインピクチャは使用できないものとする。ピクチャインピクチャ及び3D出力モードは、何れも非圧縮のピクチャデータを格納するためのビデオプレーンを2つ必要とするからである。また特に断らない限り、3D出力モードでは、サウンドミキシングも使用できないものとする。
続いて、メインTS及びサブTSの内部構成について説明する。図6は、メイン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ストリームを構成する。
以上がストリームファイルについての説明である。続いて、プレイリスト情報の詳細について説明する。
上述したようなマルチパスを定義するため、図7のような内部構成を有する。図7は、プレイリスト情報の内部構成を示す。同図(a)に示すようにプレイリスト情報は、「メインパス情報」、「サブパス情報」、「プレイリストマーク情報」、「エクステンションデータ」を含む。以下、これらの構成要素について説明する。
1)メインパス情報は、1つ以上の主たる再生区間情報から構成される。図7(b)は、メインパス情報、及び、サブパス情報の内部構成を示す図であり、本図に示すように、メインパス情報は、1つ以上の主たる再生区間情報から構成される。サブパス情報は、1つ以上の従たる再生区間情報から構成される。
主たる再生区間情報はプレイアイテム情報と呼ばれ、TSの再生時間軸のうち、In_Timeとなる時点と、Out_Timeとなる時点の組みを1つ以上定義することにより、論理的な再生区間を定義する情報である。再生装置には、カレントのプレイアイテムの番号を格納するプレイアイテム番号レジスタを含み、複数のプレイリスト情報のうち、このプレイアイテム番号レジスタに格納されているものが、現在の再生対象になる。
図7(c)は、プレイアイテム情報の内部構成を示す。本図に示すように、「ストリーム参照情報」、「インタイムアウトタイム情報」、「接続状態情報」、「基本ストリーム選択テーブル」を含む。
ストリーム参照情報は、プレイアイテムを構成するトランスポートストリームを"AVクリップ"として管理しているストリーム情報ファイルを示す「ストリーム情報ファイルネーム情報(clip_information_file_name)」、そのTSにおける符号化方式を示す「クリップ符号化方式識別子(Clip_codec_indentifier)」、当該TSのSTCシーケンスにおいて、インタイム及びアウトタイムが設定されているSTCシーケンスがどれであるかを示す「STC識別子レファレンス(STC_ID_referrence)」を含む。
以上がプレイアイテム情報についての説明である。
2)従たる再生区間情報は、サブパス情報と呼ばれ、複数のサブプレイアイテム情報から構成される。図7(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であり、オブジェクト指向プログラミング言語ベースのプログラムが、ストリーム切り替えを再生装置に実行させる際に用いられる。
図8は、基本ストリーム選択テーブルの一例を示す。同図(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ストリームのストリーム登録列を結合することでなされる。
上記の結合がなされれば、結合後のストリーム選択テーブルのうち、基本ストリーム選択テーブルにおけるストリーム登録列に対して上記プロシージャが実行される。
図9は、拡張ストリーム選択テーブルの内部構成を示す。拡張ストリーム選択テーブルは、拡張ストリーム選択テーブルの全体長(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になる。
図10は、拡張ストリーム選択テーブルにおけるストリーム登録列を示す。
図10(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)』は、ディペンデントビュービデオストリーム内に存在するオフセットの本数を示す。
『オフセットシーケンス本数情報(図中のnumber_of_offset_sequence)』は、ディペンデントビューストリームにおけるオフセットシーケンスの個数を示す。
拡張ストリーム選択テーブルにおけるこの値は、ディペンデントビューストリームに含まれるオフセットシーケンスの個数と同じになる。
図10(a)においてディペンデントビュービデオストリームのストリーム登録列は、データ構造上、複数のディペンデントビュービデオストリームについてのストリーム登録情報を設けるものになっている。通常、ベースビュービデオストリームの本数は1つであるから、ディペンデントビュービデオストリームにおけるストリーム登録情報の個数も唯一つになる。
図10(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ストリームプレーンメモリに、このオフセットを適用しない。
『ビデオシフトモード(video_shift_mode)』は、字幕の表示領域の確保処理を規定する領域確保フラグであり、字幕の表示領域をビデオプレーンの上端又は下端に確保するか否かと、字幕の表示領域がビデオプレーンの上端及び下端の何れであるかとを指示する。字幕の表示領域をビデオプレーンの上端又は下端に確保しない場合、ビデオシフトモードは"Keep"に設定される。video_shift_modeがKeepに設定されている場合には、図11に示すように、ビデオプレーンメモリに格納されたピクチャデータを上下方向にシフトさせず、そのままPGストリームプレーンメモリに格納された字幕と合成される。
PG_テキスト字幕ストリームの字幕表示領域がビデオプレーンの下端であるなら、ビデオシフトモードは"Up"に設定され、PG_テキスト字幕ストリームの字幕表示領域がビデオプレーンの上端であるなら、ビデオシフトモードは"Down"に設定される。
video_shift_modeがUpに設定されているPGストリームは、デコードすることで得られる字幕が画面の下端に存在しているので、図12の(a)に示すように、ビデオプレーンメモリに格納されたピクチャデータを上方向にシフトさせ、PGストリームプレーンメモリに格納された字幕と合成することで、立体視映像に字幕がめり込んで表示されることを防ぐことができる。video_shift_modeがDownに設定されているPGストリームは、デコードすることで得られる字幕が画面の上端に存在しているので、図12の(b)に示すように、ビデオプレーンメモリに格納されたピクチャデータを下方向にシフトさせ、PGストリームプレーンメモリに格納された字幕と合成することで、立体視映像に字幕がめり込んで表示されることを防ぐことができる。
図10(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"に設定される。
図14は、基本ストリーム選択テーブル、拡張ストリーム選択テーブルによりメインTS、サブTSからどのようなESが多重分離されるかを示す。
本図の真ん中には、多重分離部を示し、その上側には基本ストリーム選択テーブルと、拡張ストリーム選択テーブルとの組みを示す。左側にはメインTS、サブTS、右側には、多重分離されるベースビュービデオストリーム、ディペンデントビュービデオストリーム、左目PGストリーム、右目PGストリーム、左目用IGストリーム、右目用IGストリーム、プライマリオーディオストリームを示す。
図15は、2D出力モード、3D出力モードにおけるストリーム番号の割り当て変化を示す。
縦欄は、プライマリビデオストリーム#1というストリーム番号、プライマリオーディオストリーム#1、#2というストリーム番号、PG_テキスト字幕ストリーム#1、#2、#3というストリーム番号、IGストリーム#1,#2というストリーム番号を示している。
左側の破線枠にのみ囲まれるESは、2D出力モードにおいてのみ、多重分離の対象になるESであり、ストリーム選択テーブル(STN_table)によって再生が許可されているものを示す。
右側の破線枠にのみ囲まれるESは、3D出力モードにおいて多重分離の対象になるESであり、拡張ストリーム選択テーブル(STN_table_SS)によって再生が許可されているものを示す。
左側及び右側の破線枠の双方に囲まれるESは、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出力モードのみで再生対象になっていることがわかる。一方、左目IGストリーム、右目IGストリームは右側の破線枠のみに囲まれているので、3D出力モードでのみ再生されることがわかる。
以上より、3D出力モードにおいてビデオストリームというストリーム種別では、ディペンデントビュービデオストリームが再生対象として加わることがわかる。
また3D出力モードにおいてPGストリームというストリーム種別では、再生対象が、左目PGストリーム及び右目PGストリームが追加されており、3D出力モードにおいてIGストリームというストリーム種別では左目IGストリーム及び右目IGストリームが追加されていることがわかる。左目PGストリーム及び右目PGストリームが、再生対象として加えられているのは、3D出力モードにおいて、左目PGストリーム及び右目PGストリームを用いて立体視再生を実現するためである。左目IGストリーム及び右目IGストリームが、再生対象として加えられているのは、3D出力モードにおいて、左目IGストリーム及び右目IGストリームを用いて立体視再生を実現するためである。
以上が記録媒体についての説明である。続いて、再生装置の詳細について説明する。
図16は、再生装置の内部構成を示す。本図に示すように再生装置は、読出部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、IGデコーダ213、オーディオデコーダ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ストリームにおけるパイプラインは、グラフィクスデコーダあるディスプレイセットに属するオブジェクト定義セグメントをデコードしてグラフィクスオブジェクトをオブジェクトバッファに書き込む処理と、先行するディスプレイセットに属するオブジェクト定義セグメントをデコードすることにより得られたグラフィクスオブジェクトをオブジェクトバッファからプレーンメモリに書き込む処理とを同時に実行することでなされる。
図17は、PGデコーダの内部構成を示す。同図(a)は、1plane+Offsetモード方式で表示するためのデコーダモデルである。同図(b)は、LR方式のデータを表示する場合のデコーダモデルである。
本図において、PGデコーダの本体にあたる部分は黒枠で囲こみ、グラフィクスデコーダ後段にあたる部分は一点鎖線で囲っている。
同図(a)では、PGデコーダは1デコーダ構成になっており、グラフィクスプレーンも1プレーン構成になっている。しかしグラフィクスプレーンの出力が、左目用、右目用のそれぞれに別れていて、個々の左目用出力、右目用出力に対して、シフト部が付加される。
同図(b)では、トランスポートバッファ−グラフィクスデコーダ−グラフィクスプレーン−CLUT部が2組み存在していて、左目用ストリーム、右目用ストリームをそれぞれ独立に処理することができる。
オフセットシーケンスは右目用ビデオストリームに含まれているので、プレーンオフセット形式では、グラフィクスデコーダは1デコーダ構成になり、この1つのグラフィクスデコーダの出力が、左目用と右目用とに切り替えられる。
PGデコーダの2D/3D切り替え時の動作は以下の通りである。
1.1plane+Offsetモードと2Dモードとの相互切り替え時は、シームレスに切り替えられる。これは、Offsetを無効化することでなされる。
2.3D-LRモードと、2Dモードとでは、PID切り替えが伴うため、一端字幕が消える。これはストリーム切り替えと同じである。
以上がPGデコーダについての説明である。続いて、テキスト字幕デコーダの詳細について説明する。
・テキスト字幕デコーダのデコーダモデル
テキスト字幕ストリームは、複数の字幕記述データから構成される。
テキスト字幕デコーダは、字幕記述データから、テキストコードと、制御情報とを分離する「字幕プロセッサ」と、字幕記述データから分離されたテキストコードを格納する「管理情報バッファ」と、フォントデータを用いて、管理情報バッファ内のテキストコードをビットマップに展開する「テキストレンダー」と、展開により得られたビットマップを格納する「オブジェクトバッファ」と、字幕記述データから分離された制御情報を用いて、時間軸に沿ったテキスト字幕再生の制御を実行する「描画制御部」とを含む。
テキスト字幕デコーダの前段には、フォントデータのプリロードを行う「フォントプリロードバッファ」、テキスト字幕ストリームを構成するTSパケットの入力速度を調整する「TSバッファ」、プレイアイテムの再生に先立ち、テキスト字幕ストリームをプリロードしておくための「字幕プリロードバッファ」が存在する。
グラフィクスデコーダの後段には、「グラフィクスプレーン」と、パレット定義セグメントに基づいて、グラフィクスプレーンに格納されたグラフィクスオブジェクトを構成する画素コードを、輝度・色差に変換する「CLUT部」と、プレーンシフトのためのシフト部が存在する。
図18は、テキスト字幕デコーダの内部構成を示す。同図(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部」と、プレーンシフトのための「シフト部」とが存在する。
図19は、IGデコーダのデコーダモデルを示す。本図では、IGデコーダ本体にあたる部分は黒枠で囲こみ、グラフィクスデコーダ後段にあたる部分は一点鎖線で囲んでいる。IGデコーダ前段にあたる部分は、破線枠で囲んでいる。図19(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部、シフト部の他、レイヤ合成を実現するため、個々の画素値に等価率を乗算するための乗算部、画素同士の加算を行うための加算部を含む。
図20は、デコーダモデルの出力を合成し、3D-LR方式で出力するための回路構成を示す。ビデオプレーン、PGプレーン、IGプレーンのレイヤモデルは黒枠で囲こみ、プレーンメモリ後段にあたる部分は一点鎖線で囲んでいる。本図からも明らかなように、上述したようなレイヤモデルは、2組み存在していることがわかる。また、プレーンメモリ後段にあたる部位も、2組み存在していることがわかる。
レイヤモデル、プレーンメモリ後段が2組み存在することにより、3D-LR方式におけるプレーンメモリ構成は、ビデオプレーン、PGプレーン、IGプレーンのそれぞれが、左目用と、右目用とに別れていて、これらのプレーンメモリの出力をレイヤ合成を、左目用、右目用のそれぞれについて実行するようになっている。
図21は、これらのデコーダモデルの出力を合成し、1plane+Offsetモード方式で出力するための回路構成を示している。
左目ビデオプレーン、右目ビデオプレーン、PGプレーン、IGプレーンのレイヤモデルは黒枠で囲こみ、プレーンメモリ後段にあたる部分は一点鎖線で囲んでいる。本図からも明らかなように、上述したようなレイヤモデルは、1組みだけが存在していることがわかる。また、プレーンメモリ後段にあたる部位は、2組み存在している。
1plane+Offsetモード方式では、ビデオプレーンは、左目用のものと、右目用のものとが準備されている。PGプレーン、IGプレーンについては、左目用、右目用のそれぞれに別れておらず、左目用、右目用で共通の1枚のプレーンメモリのみが存在する。そして、これらの左目用出力、右目用出力のそれぞれに対して上述したようなレイヤ合成がなされるようになっている。
図22は、デコーダモデルの出力を合成し、上端側2D字幕再生モード方式及び下端側2D字幕再生モード方式で出力するための回路構成を示す。
上端側2D字幕再生モード方式及び下端側2D字幕再生モード方式では、ビデオプレーンは、左目用のものと、右目用のものとが準備されている。PGプレーン、IGプレーンについては、左目用、右目用のそれぞれに別れておらず、左目用、右目用で共通の1枚のプレーンメモリのみが存在する。そして、左目用、右目用のそれぞれのビデオプレーンに対して、後述する再生装置のビデオシフトモードを示すレジスタ(PSR32)の設定に応じて上方向又は下方向へ131ピクセルだけ画素がシフトされたのち、PGプレーンの左目用出力、右目用出力のそれぞれがレイヤ合成されるようになっている。
再生装置は、B−Dプレゼンテーションモード、1plane+Offsetモード、上端側2D字幕再生モード、下端側2D字幕再生モードの全てをサポートにする必要があるので、再生装置のハードウェア構成としては、基本的に2デコーダ+2プレーンの構成になっていて、1plane+Offsetモード、2D出力モード、上端側2D字幕再生モード、及び下端側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システムやステレオ、アンプ等のホームシアターシステムの機器と接続された際、接続相手となる機器とのネゴシエーションにより判明した相手側機器のケーパビリティがプレーヤ設定レジスタに設定される。
図23は、レジスタセット203の内部構成と、再生制御部とを描いた図である。
本図の左側にはレジスタセット203の内部構成を示している。右側には再生制御部の内部構成を示している。
それぞれのレジスタ番号が割り当てられたプレーヤ状態レジスタ、プレーヤ設定レジスタは、どのようなものであるかを示す。
PSR0は、IGストリームのためのストリーム番号レジスタであり、カレントのIGストリーム番号を格納する。
PSR2は、PGストリームのためのストリーム番号レジスタであり、カレントのPGストリーム番号を格納する。
PSR24は、"Player Capability for 3D"の設定である。これは、再生装置に立体視再生を実行する能力が存在するかどうかを示す。
一方、再生制御部は、レジスタセット203におけるPSR24と、メモリにおけるカレントプレイリスト情報のストリーム選択テーブルとを参照して、カレントプレイリストにおけるカレントPGストリーム番号、カレントIGストリーム番号を一意に定めるストリーム選択プロシージャが存在する。このストリーム選択プロシージャは、"Initialization"、"Procedure when playback condition changed"が存在する。
図25は、PSR32のビットアサインを示す。PSR32は、再生装置のビデオシフトモードを表す。この値は、BDプログラムのAPIやコマンドを通じて設定されるとともに、及び、ストリーム切り替えによって選択されたカレントのPGストリームについてのvideo_shift_modeが、拡張ストリーム選択テーブルにおけるストリーム登録情報から取得され設定される。
図24は、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に設定されるのを防止することができる。
以上の再生制御は、図26から図32までのフローチャートに示される処理手順をオブジェクト指向型コンパイラ言語で記述してコンピュータに実行させることで実現することができる。
図26は、プレイリスト再生手順を示す。本フローチャートは、ステップ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を用いて選択される。
図27は、PGtestSTストリームについてのProcedure when playback condition is changedについての処理手順を示すフローチャートである。本フローチャートのうち、ステップS11〜ステップS22の処理は、3D出力モード及び2D出力モードの共通処理となる。ステップS23〜ステップS28が、3D出力モード特有の処理となる。
ステップS11においてPSR2からカレントPG_テキスト字幕ストリーム番号を取得し、ステップS12において、カレントPG_テキスト字幕ストリーム番号は、PGストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップS13は、カレントPG_テキスト字幕ストリーム番号に対応するPGストリームが、条件(A)、条件(B)を満たすか否かをチェックする。
ここで条件(A),条件(B)は、以下のように規定される。
条件(A):カレントPG_テキスト字幕ストリーム番号から特定されるPGストリームをデコードする能力が再生装置に存在する。
条件(B):特定された言語を再生する能力が再生装置に存在する。
一方ステップS14では、カレントPG_テキスト字幕ストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)を満たすか否かをチェックするものである。
条件(A):カレントPG_テキスト字幕ストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、PSRセット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〜ステップS28は3D出力モード特有の処理である。具体的には、3D出力モードでは、先ず上下端再生タイプ決定処理が実行される(ステップS23)。上下端再生タイプ決定処理において、再生タイプが上端側2D字幕再生及び下端側2D字幕再生の何れかのタイプに設定されなかった場合(ステップS24:No)、PSR2のPGストリーム番号によって特定されるPGストリームのis_SS_PGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS25)、取得したis_SS_PGフラグが"1"であり、かつ、PSR24におけるb2の立体視PGケーパビリティが"1"であるか否かを判定する(ステップS26)。ステップS26がYesであれば、再生タイプを左目PGストリーム及び右目PGストリームを用いる立体視PGとする(ステップS27)。
再生タイプを立体視PGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR2に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスを用いて、立体視再生を行う。具体的には、PSR2に格納されたカレントストリームのストリーム番号に対応するものの右目ストリームエントリー及び左目ストリームエントリー内のパケット識別子レファレンスで指示されているパケット識別子のTSパケットの多重分離を多重分離部に行わせる。
ステップS26がNoであれば、再生タイプを1plane+Offsetとする(ステップS28)。再生タイプを1plane+OffsetPGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR2に格納されたカレントストリームのストリーム番号に対応するもののPG_テキスト字幕オフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスを用いて、1plane+OffsetモードでのPG再生を実行する。
ここでオフセットシーケンスについて説明する。1plane+Offsetモードに用いられるオフセットシーケンスは、ディペンデントビュービデオストリームのビデオアクセスユニット内に複数存在する。
ディペンデントビュービデオストリームのビデオアクセスユニットは、ビデオアクセスユニットデリミター、シーケンスパラメータセット、ピクチャパラメータセット、MVCスケーラブルネスティングSEIメッセージ、ファーズトビューコンポーネント、シーケンス終端コード、ストリーム終端コードを配列することにより構成される。そしてこのMVCスケーラブルネスティングSEIメッセージの中に、ユーザデータコンテナが存在する。ユーザデータコンテナは、アンレジスタードユーザデータ(未登録ユーザデータ)のことであり、クローズドキャプション情報、GOP構造マップ、オフセットメタデータという3つの種類がある。これらの種類のうち何れかであるかは、コンテナ中のtype_indeicatorに明示される。
オフセットメタデータは、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についての説明である。
図28は、上下端再生タイプ決定処理手順を示すフローチャートである。
上下端再生タイプ決定処理では、PSR2のPGストリーム番号によって特定されるPGストリームのvideo_shift_modeを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS101)、取得したvideo_shift_modeが"Down"であり、かつ、PSR32における再生装置のビデオシフトモードが"Down"であるか否かを判定する(ステップS102)。
ステップS102がYesであれば、再生タイプを上端側2D字幕再生とする(ステップS103)。再生タイプを上端側2D字幕再生とした場合、上端側2D字幕再生モードでのPG再生を実行する。具体的には、PSR2に格納されたカレントストリームのストリーム番号に対応するストリームエントリー内のパケット識別子レファレンスで指示されているパケット識別子のTSパケットの多重分離を多重分離部に行わせるとともに、シフト部に右目用及び左目用のビデオプレーンに格納されているピクチャデータを131ピクセル下方向にシフトさせる。
ステップS102がNoであれば、ステップS101で取得したvideo_shift_modeが"Up"であり、かつ、PSR32における再生装置のビデオシフトモードが"Up"であるか否かを判定する(ステップS104)。ステップS104がYesであれば、再生タイプを下端側2D字幕再生とする(ステップS105)。再生タイプを下端側2D字幕再生とした場合、下端側2D字幕再生モードでのPG再生を実行する。下端側2D字幕再生モードでは、シフト部に右目用及び左目用のビデオプレーンに格納されているピクチャデータを131ピクセル上方向にシフトさせる。
以上が、上下端再生タイプ決定処理についての説明である。
図29は、カレントプレイアイテムについて最適な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_テキスト字幕ストリームの選択手順についての説明である。
図30は、セット立体視ストリームコマンド(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_テキスト字幕ストリームの選択は、図29に示したものと同じである。
以降のステップS52〜ステップS57は3D出力モード特有の処理である。具体的には、上下端再生タイプ決定処理が実行される(ステップS52)。上下端再生タイプ決定処理において、再生タイプが上端側2D字幕再生及び下端側2D字幕再生の何れかのタイプに設定されなかった場合(ステップS53:No)、PGストリーム番号Xによって特定されるPGストリームXのis_SS_PGを拡張ストリーム選択テーブルにおけるストリーム登録情報から取得し(ステップS54)、取得したis_SS_PGフラグが"1"であり、かつ、PSR24における立体視PGケーパビリティが"1"であるか否かを判定する(ステップS55)。ステップS55がYesであれば、再生タイプを立体視PGとする(ステップS56)。ステップS55がNoであれば、再生タイプを1plane+Offsetとする(ステップS57)。
図31は、セットストリームコマンド、又は、ストリーム番号変更を要求するユーザ操作によってストリーム変化が要求された場合に実行すべきProcedure when stream change is requestedの処理手順を示すフローチャートである。本フローチャートでは、ステップS58において、セットストリームコマンドのオペランドで指定されたストリーム番号、又は、ストリーム番号変更を要求するユーザ操作で指定されたストリーム番号を番号Xに設定した上で、ステップS41〜ステップS57の処理を実行する。このステップS41〜ステップS57の処理内容は、図30と同一のものであるから、同一の参照符号を付してその説明を省略する。
<カレントIGストリームの決定及びカレントIGストリームの再生タイプ決定>
PSR0のIGストリーム番号によって参照されるIGストリームは、PSR22における出力モードと、PSR24における立体視PGケーパビリティと、is_SS_IGとを用いて選択される。
図32は、カレントIGストリームの決定及びカレントIGストリームの再生タイプ決定の処理手順を示すフローチャートである。
図32(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)。もしPSR1の値が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+Offsetとする(ステップS67)。 再生タイプを1plane+OffsetIGとした場合、拡張ストリーム選択テーブルにおける複数のストリーム登録情報のうち、PSR0に格納されたカレントストリームのストリーム番号に対応するものの立体視IGオフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスを用いて、1plane+OffsetモードでのIG再生を実行する。具体的には、ディペンデントビューストリームのSEIメッセージに格納されている複数のオフセットシーケンスのうち、立体視IGオフセットシーケンスIDレファレンス情報で指示されているオフセットシーケンスをビデオデコーダから取り出し、シフト部に供給する。
図32(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)。
図33は、結合ストリーム登録列によってどのようなパケット識別子が多重分離部に出力されるかを示す。
同図(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パケットが、デコーダに出力されることになる。
同図(c)は、言語設定が中国語であり、再生タイプが立体視PGに設定された再生装置に、かかる結合ストリーム登録列が供給された場合における、ストリーム番号の設定と、パケット識別子の出力とを示す。
図中のa4,a5,a6を付した矢印は、言語設定の一致判定、ストリーム番号レジスタに対するストリーム番号の設定、多重分離部へのパケット識別子の出力を模式的に示したものである。
ストリーム選択プロシージャにおいて、ストリーム番号=3のストリーム登録情報において、再生装置側の言語設定と、ストリーム属性との一致が判定され、このストリーム番号=3のストリーム登録情報に含まれるストリーム番号がストリーム番号レジスタに書き込まれる。この際、基本ストリーム選択テーブルにおけるストリームエントリーにおけるパケット識別子が多重分離部に出力される。こうすることで、拡張ストリーム選択テーブルにおけるストリーム番号=3のストリーム登録情報におけるストリームエントリーに格納されたパケット識別子の組みによって特定される2系統のTSパケットが、デコーダに出力されることになる。
図34は、結合ストリーム登録列によってどのようなパケット識別子が多重分離部に出力されるかを示す。
(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パケットが、デコーダに出力されることになる。
以上のように本実施形態によれば、字幕の表示領域確保を規定するビデオシフトモードが、ストリーム番号に対応付けて拡張ストリーム選択テーブルに記載されているため、再生区間の変化時やストリーム変更要求の発生時にストリーム選択プロシージャが実行され、新たなストリーム番号がストリーム番号レジスタに設定された場合、その新たなストリーム番号に対応したビデオシフトモードが、再生装置に供されることになる。こうすることで、ある再生区間では上端に字幕の表示領域が確保され、別の再生区間では下端に字幕の表示領域が確保される制御を実現することができる。
特に映画作品の映像においては、シネスコサイズ(1:2.35)のアスペクト比が一般的であり、BD−ROMなどの光ディスクに映像を格納する場合には、アスペクト比は変更せずに本編映像を16:9のHD映像の中央に配置し、画面上下に黒枠を挿入することが一般的である。そのため、上記の構成によれば、本編映像の上下にある黒枠をビデオプレーンの上端又は下端に集めた広い字幕表示領域に、字幕を表示することが可能となるため、画面の利用効率を向上させることができ、立体視効果を向上させることができる。
(変形例)
本実施の形態の変形例として、ピクチャデータと字幕とを合成する際に、ビデオプレーンメモリに格納されたピクチャデータのみならず、PGプレーンメモリに格納された字幕についても上方向又は下方向にシフトさせる方法について説明する。
図35は、本変形例に係る拡張ストリーム選択テーブルのストリーム登録列を示す。同図(b)は、PGストリームのストリーム登録列の内部構成を示す。
本変形例ではPGストリームのストリーム登録情報に、『ビデオ上移動時PGシフト値(PG_v_shift_value_for_Up)』、及び『ビデオ下移動時PGシフト値(PG_v_shift_value_for_Down)』が追加されている。
『ビデオ上移動時PGシフト値(PG_v_shift_value_for_Up)』は、ビデオシフトモードが"Up"に設定されており、ビデオプレーンの下端にPG_テキスト字幕ストリームの字幕表示領域を確保する場合に、PGプレーンメモリに格納されている字幕データを下方向へシフトさせるシフト量である。
『ビデオ下移動時PGシフト値(PG_v_shift_value_for_Down)』は、ビデオシフトモードが"Down"に設定されており、ビデオプレーンの上端にPG_テキスト字幕ストリームの字幕表示領域を確保する場合に、PGプレーンメモリに格納されている字幕データを上方向へシフトさせるシフト量である。
これらの値は、図37に示すPSR33に設定される。PSR33にはプレーン毎に、ビデオが上方向にシフトする場合のプレーンシフト量と、ビデオが下方向にシフトする場合のプレーンシフト量が用意されている。例えば、PGプレーンにはPG_shift_value_for_UP、PG_shift_value_for_Downが用意されている。この値は、ストリーム切り替えによって選択されたカレントのPGストリームについてのPG_v_shift_value_for_Up、PG_v_shift_value_for_Downが、拡張ストリーム選択テーブルにおけるストリーム登録情報から取得され設定される。
図36は、デコーダモデルの出力を合成し、上端側2D字幕再生モード方式及び下端側2D字幕再生モード方式で出力するための回路構成を示す。本変形例において上端側2D字幕再生モード方式及び下端側2D字幕再生モード方式では、左目用、右目用のそれぞれのビデオプレーンに対して、PSR32の設定に応じて上方向又は下方向へ131ピクセルだけ画素がシフトされるとともに、PGプレーンの左目用出力、右目用出力のそれぞれについても、PSR33に設定されたPG_ shift_value_for_Up又はPG_ shift_value_for_Downの値に従って、画素が下方向又は上方向へシフトされ、それぞれがレイヤ合成されるようになっている。
具体的には、PSR32のvideo_shift_modeがUpに設定されている場合、図38の(a)に示すように、ビデオプレーンメモリから出力されるピクチャが上方向へ131ピクセルだけシフトされ、PGプレーンから出力される字幕が、PSR33のPG_ shift_value_for_Upに設定されたピクセル数だけ下方向へシフトされ、これらがレイヤ合成される。一方、PSR32のvideo_shift_modeがDownに設定されている場合、図38の(b)に示すように、ビデオプレーンメモリから出力されるピクチャが下方向へ131ピクセルだけシフトされ、PGプレーンから出力される字幕が、PSR33のPG_ shift_value_for_Downに設定されたピクセル数だけ下方向へシフトされ、これらがレイヤ合成される。
このとき本変形例では、図39に示すようにvideo_shift_modeがUp、Downの場合には、プレーンをシフトすることによって、切り取られる領域が発生するため、切り取られる領域に、字幕データが存在しないように制約するとよい。つまり、図39の右側に示すように、点線で囲った領域以外は、切り取られる可能性があるため、ここには字幕データが表示されないようにPGの表示位置を制約する。領域の座標は、(0,PG_v_shfit_value_for_Down), (0,height+PG_v_sfhit_value_for_Up), (width,PG_v_shfit_value_for_Down), (width,height+PG_v_sfhit_value_for_Up)であらわされる。例えば、PG_v_sfhit_value_for_Upが-a、例えば、PG_v_sfhit_value_for_Downが+bとすれば、領域は、(0,b), (0,height-a), (width,b), (width,height-a)となる。PGの制約としては、表示位置が上記領域を超えないこと、表示位置に表示するオブジェクトのサイズを加えたものが上記領域を超えないこと、ウィンドウの表示位置が上記領域を超えないこと、ウィンドウの表示位置にウィンドウサイズを加えたものが上記領域を超えないこと、などがある。このように制約することで、字幕がかけて表示されることを防ぐことができる。
(第2実施形態)
次に本発明の第2実施形態について説明する。
本実施形態では、2D/3D再生装置に接続されるテレビの画面サイズに応じて、適切な奥行きをもった3D映像を実現するための方法について説明する。
視差画像を利用する3D映像の場合には、図40の左側に示すように、画面サイズが3D映像の奥行き感に影響を及ぼす。これは、左目用映像と右目用映像の差分値が、テレビ画面のサイズによって変化するためである。例えば、図40の左側に記すように、50インチに最適な奥行きが得られるように左目用映像と右目用映像を作成した場合に、50インチでは最適な視聴が可能であるが、50インチより小さいテレビでは左目用映像と右目用映像の差分値が小さくなるため迫力のない奥行き感のない映像となってしまう。逆に50インチより大きいテレビでは左目用映像と右目用映像の差分値が大きくなりすぎ、目が疲れる要因となってしまう。そこで、図40の右側に記すように、テレビに出力する左目用プレーンと右目用プレーンに対して、画面サイズを補正するためのオフセット値を適用することが好ましい。例えば、図40のように50インチに最適化されている場合には、32インチの場合は奥行き感を増す方向でオフセット値をかけてテレビに出力し、100インチの場合は奥行き感を減らす方向でオフセット値をかけてテレビに出力する。なお、プレーンにオフセット値をかけるとは、プレーンに対して1プレーン+オフセット方式と同じ様に、プレーヤから出力される最終プレーンをオフセット値によって水平方向にシフトして、クロッピングすることを意味する。この最終的なプレーヤの出力プレーンに対して適用するオフセット値を出力オフセット補正値とする。以降で具体的な方法について説明する。
まず、データ構造について説明する。データ構造の基本部分は、これまでの実施の形態で説明した3D映像を格納するためのデータ構造と同じであるため、拡張または異なる部分を中心に説明する。
インデックスファイル、プレイリストファイル、AVストリーム情報ファイルなどのファイルに、図41の(a)に記すようなテーブルが格納されている。このテーブルには、テレビのインチ数と出力オフセット補正値とがペアになった画面サイズ情報が複数登録されている。なお、図41の(a)ではインチ数は10インチごとに区切っているが、何インチ毎に区切るかは所定の規格などによって決められてもよいし、ユーザが設定できるようにしてもよい。なお、図41(a)のようなテーブルが規格で幾つか用意され、インデックスファイル、プレイリストファイル、AVストリーム情報ファイルなどには、そのテーブルの参照IDだけが登録されているとしてもよい。なお、図41の(b)に示すように、インチ数に応じて、出力オフセット値が決定される関数が用意されていてもよい。
なお、テレビのインチ数と出力オフセット補正値がペアのテーブルの他に、該当コンテンツが何インチをターゲットに作られたかを示す最適テレビサイズ(assumed_TV_size_when authoring)の値を入れてもよい。この値を使うことにさまざまな補正処理が可能である。例えば、最適なサイズ以上のテレビで表示する場合には、
図42に示すように、その最適なサイズで映像を画面中央に表示させ、斜線で示す周りの領域には黒枠を表示するなどの処理を行うことができる。
次に、本実施の形態に係る再生装置について説明する。再生装置は、図43に示すように、出力オフセット補正値が格納されるシステムパラメータPSR35と、出力オフセット補正値適用部とを有する。PSR35には、再生制御部によってHDMIケーブルなどを通じて接続するテレビの画面サイズ(インチ数)が取得され、この画面サイズに対応する出力オフセット補正値が図41で説明したテーブルを元に特定され格納される。出力オフセット補正値適用部は、PSR35の値を参照し、プレーン加算部で合成された左目映像と右目映像のプレーンに対して、PSR35の値でオフセットをかける。
なお、PSR35には出力オフセット補正値を格納するとしたが、PSR35には、画面サイズを格納し、出力オフセット補正値適用部が図41で説明したテーブルを参照して、出力オフセット補正値を特定してもよい。
なお、見る人に応じて出力オフセット補正値を調整するようにしてもよい。例えば、幼い子供の場合、左右の目の間隔が狭いため、左目映像と右目映像の差分値は小さいほうが好ましい。そこで、出力オフセット補正値を補正するための「出力オフセット補正値アルファ」を用意する。出力オフセット補正値適用部は、出力オフセット補正値に「出力オフセット補正値アルファ」を掛け算した値で、オフセット補正処理を実行する。具体的には図44に記すような構成で実現する。図44には、出力オフセット補正値アルファの値を格納するPSR36が用意されている。再生制御部もしくはプログラム実行手段は、PSR36にメニュー画面やプレーヤのOSD画面などを通じて値を設定する。例えば、子供の視聴用に奥行きを弱めたい場合には、1より大きい値を設定すると奥行きを弱められる。出力オフセット補正値適用部は、PSR35とPSR36を参照して、出力オフセット補正値と出力オフセット補正値アルファの値を掛け算した値で、プレーンに対してオフセットを適用する。このようにすることで、ユーザの好みに合わせて奥行き感を調整できる。
なお、「出力オフセット補正値アルファ」の値は、BDプログラムによるメニュー画面で、3Dの奥行きに対して「弱い」「普通」「強い」のモードから選択して、設定するようにメニューを構成してもよい。
なお、「出力オフセット補正値アルファ」はビデオストリームのSEIメッセージ、PMTパケットのディスクリプタ、プレイアイテムごとなどに格納して、シーンに応じて値を変えるようにしてもよい。これによって、奥行きの大きいシーンでは「出力オフセット補正値アルファ」を大きくするなどの対応ができる。
なお、本実施の形態では、テレビの画面サイズに応じて出力オフセット量補正値を変えるとしたが、視聴距離に応じて出力オフセット補正値や出力オフセット補正値アルファを変えるようにしてもよい。この場合には、3D視聴に利用するメガネが画面との距離を計測して、その距離をテレビが取得して、テレビから再生装置にHDMIケーブル経由で通知するようにしてもよい。
なお、本実施の形態では、テレビの画面サイズに応じて出力オフセット量補正値を変えるとしたが、プロジェクタでは画面サイズがわからないため、プロジェクタは次のようにテレビサイズを測定してもよい。一つ目の方法は、プロジェクタからスクリーンに赤外線などのレーザを出力し、スクリーンからの跳ね返りによって距離を計測し、レンズの光学系パラメータから画面サイズを計算してもよい。もう一つの方法は、プロジェクタであるサイズの「線分」を表示し、スクリーンに投影されたその線分の長さをユーザが計測して、プロジェクタのOSDを通じてその計測した線分の長さを入力するようにしてもよい。スクリーンに投影された線分の大きさに応じて、プロジェクタは画面サイズを計算できる。
以上のように本実施形態によれば、映像を表示する画面サイズに応じて、左目用映像と右目用映像の差分値を変化させるオフセット処理を施すことで、画面サイズに応じた最適な立体視効果が得られる。
(第3実施形態)
本実施形態では、立体視インターリーブドストリームファイルを内部構造についての改良である。
前提事項として、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)とによって識別される。
図45は、エクステントと、ファイル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の頭文字をとったものであり、立体視再生のため、インターリーブ形式になっていることを示す。
ここで、ファイルベースを構成するエクステントと、ファイルディペンデントを構成するエクステントとの組みであって、同じエクステント識別子で特定されるものを"インターリーブエクステントユニット"という。この図45の例において、エクステント識別子=iで特定されるEXT1[i]と、EXT2[i]とのペアがインターリーブエクステントユニット[i]になり、エクステント識別子=i+1で特定されるEXT1[i+1]と、EXT2[i+1]とのペアがインターリーブエクステントユニット[i+1]になる。立体視インターリーブドストリームファイルに対するランダムアクセスにあたっては、このエクステント識別子で特定されるインターリーブエクステントユニットが一度に記録媒体から読み出されることを保障せねばならない。
図46は、立体視インターリーブドストリームファイルと、ファイル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/ファイルベース"という。
図47は、立体視インターリーブドストリームファイル、ファイル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]がファイルディペンデントのエクステントになることを示す。
図48は、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、ファイルベース、及び、ファイルディペンデントのうち、何れかのファイルとしてオープンすることができるので、デコーダ側では、立体視インターリーブドストリームファイルを通常のストリームファイルと同様に取り扱うことができる。よって、ベースビュービデオストリーム、ディペンデントビュービデオストリームの格納方式に、積極的に立体視インターリーブドストリームファイルを取り入れることができる。
次にクリップ情報ファイルの詳細な内部構造について説明する。
図49は、クリップ情報ファイルの内部構成を示す。
同図(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用のクリップ情報ファイルは、図49(b)の内部構成になっていて、通常のクリップ情報(管理情報)である「ファイル2D用のクリップ情報」の他に、ファイルディペンデント用のクリップ情報である「クリップディペンデント情報(ベースビュー管理情報)」、ファイルベース用のクリップ情報である「クリップベース情報(ベースビュー管理情報)」が存在する。これは以下の理由による。上述したように、立体視インターリーブドストリームファイルと、通常のストリームファイルとの混同を避けるため、立体視インターリーブドストリームファイルは、ストリームファイルとは異なるディレクトリに格納される。そのため立体視インターリーブドストリームファイルには、クリップ情報ファイルを対応付けることができない。そこで、クリップディペンデント情報、及び、クリップベース情報は、ファイル2Dに対応するクリップ情報ファイルに格納されることになる。
2D用のクリップ情報と、クリップベース情報及びクリップディペンデント情報との違いは、クリップベース情報及びクリップディペンデント情報の内部に、エクステントスタートポイント列を含むメタデータが存在する点である。
同図(b)において、クリップディペンデント情報は、エクステントスタートポイント列を含み、クリップベース情報も、エクステントスタートポイント列を含む。特徴点情報は、拡張エントリーマップを含み、エクステンションデータは、拡張エントリーマップを含む。
3D出力モードにおいてクリップ情報ファイルは、クリップベース情報ファイルと、クリップディペンデント情報ファイルとに分割される。
同図(c)は、クリップベース情報ファイルを元にして生成されるクリップベース情報ファイルを示す。クリップベース情報と、基本エントリーマップとから構成される。クリップベース情報は、エクステントスタートポイント情報を含む。
同図(d)は、クリップディペンデント情報ファイルは、クリップディペンデント情報と、拡張エントリーマップとを含む。クリップディペンデント情報は、エクステントスタートポイント情報を含む。
クリップ情報ファイル用のディレクトリ(CLPIディレクトリ)には、2D出力モードのクリップ情報ファイルが存在している。クリップベース情報ファイルは、3D出力モードにおいて、クリップ情報ファイルから生成され、この2D出力モードのクリップ情報ファイルに格納されているものとして扱われる。
クリップ情報ファイル用のディレクトリ(CLPIディレクトリ)には、ダミーのクリップ情報ファイルが存在しており、このダミーのクリップ情報ファイルには、ファイルディペンデントに対応する番号、つまり、ファイル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ディペンデントビュービデオストリーム再生パスをいう。
図50は、クリップ情報ファイルと、プレイリストと、立体視インターリーブドストリームファイルとの関係を示す。右側は、立体視インターリーブドストリームファイルを示し、左側はクリップ情報ファイルを示す。真ん中は第1段目にファイルベースを示し、第2段目にクリップ情報ファイル、第3段目に3Dプレイリスト、第4段目にクリップディペンデント情報ファイル、第5段目にファイルディペンデントを示す。
矢印bk1,bk2は、右側におけるストリームファイルを分割することで、ファイルベース、ファイルディペンデントが得られることを示す。
左側におけるクリップ情報ファイルは、特徴点情報、エクステンションデータ、クリップベース情報、クリップディペンデント情報を含む。矢印bk3,bk4は、クリップベース情報におけるエクステントスタートポイント情報、クリップディペンデント情報におけるエクステントスタートポイント情報が、立体視インターリーブドストリームファイルを分割する途を与えることを模式的に示す。
エクステントスタートポイントについて説明する。
クリップ情報ファイルにおけるエクステントスタートポイント情報において、ext_data_entry()内のエクステンションデータにおけるID1値と、ID2値とは、それぞれ0x0002,0x0004に設定さねればならない。
エクステントスタートポイント情報をもつクリップ情報ファイルは、以下の2つの条件を満たす必要がある。
i.サブパスタイプ=8のサブパスを含むプレイリストのプレイアイテムによって参照されねばならない。
ii.サブパスタイプ=8のサブパスにおけるサブプレイアイテムによって参照されねばならない。ここで、サブパスタイプ=8とは、オンディスクタイプのOut-of-MUXディペンデントビュービデオストリーム再生パスをいう。
立体視インターリーブドストリームファイルは、2つのクリップAVストリーム(BDAV MPEG2トランスポートストリーム)から構成される。エクステントスタートポイント情報のペアは、立体視インターリーブドストリームファイルを2つのAVストリームに分割する途を与える。エクステントスタートポイント情報は、以下のように供給される。
(1)エクステントスタートポイント情報テーブルは、サブパスタイプ=8のサブパスを含むプレイリストのプレイアイテムによって参照されるクリップ情報に格納されて再生装置に供給される
(2)別のエクステントスタートポイント情報テーブルは、サブパスタイプ=8のサブパスを含むプレイリストのサブプレイアイテムによって参照されるクリップ情報に格納されて再生装置に供給される。
もしプレイアイテムにおけるイズマルチアングルフラグが1に設定された場合、エクステントスタートポイント情報テーブルのペアは、それぞれアングルID値によって参照されるクリップ情報、及び、サブクリップエントリーID値によって参照されるクリップ情報に格納されて再生装置に供給される。
図51は、クリップベース情報、クリップディペンデント情報の内部構成を示す図である。本図(a)に示すようにクリップベース情報、クリップディペンデント情報は、対応するAVクリップがどのようなストリームの類型に属するかを示す『クリップストリームタイプ情報』と、対応するAVクリップによって構成されるアプリケーションが、ムービーアプリケーション、タイムベーススライドショーアプリケーション、ブラウザブルスライドショーアプリケーション等、どのような類型に属するかを示す『アプリケーションタイプ』と、再生装置において、ソースパケットがソースパケットデパケッタイザを通過した後、AVクリップにおけるTSパケットがどれだけの転送レートで転送されるかを示す『TSレコーディングレート』と、対応するAVクリップを構成するソースパケット数を示す『ソースパケット数』と、前のAVクリップを構成するATCシーケンスとのATCの差分である『ATC差分値』とから構成される。
同図(b)は、エクステントスタートポイント情報テーブルの内部構成を示す。本図に示すようにエクステントスタートポイント情報テーブルは、number_pf_extent_start_pointsと、number_pf_extent_start_points個のSPN_start_pointから構成される。
number_pf_extent_start_pointsは、関連するAVストリームファイルに帰属するエクステントの個数を示す。クリップベース情報におけるエクステントスタートポイント情報と、クリップディペンデント情報におけるエクステントスタートポイント情報とのペアは、number_pf_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によって参照されるソースパケットを含んでいなければならない。
図52は、基本エントリーマップと、拡張エントリーマップとを示す図である。本図において、第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)の連続読み出しを保障することができる。
図53は、拡張エントリーマップにおいて許容されないエントリーを示す。
ベースビュービデオストリームの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)が除外されるので、アクセス性能の低下を防止することができる。
図54は、プレイアイテムの再生手順を示す。
ステップ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をまとめて再生することができる。これにより、再生開始の遅延を解消することができる。
尚、図88の(a)に示すように、各エクステントに1つ以上のエントリポイントが存在すると規定してもよい。このように規定することによって、図88の(b)のようにエントリポイントから次のエントリポインとまでの間隔が長くなることを防ぎ、飛び込み再生などの処理が遅延する量を抑制できる。
(第4実施形態)
本実施形態は、立体視インターリーブドストリームファイルを構成するデータブロックから、ATCシーケンスを復元するための改良に関する。図55は、立体視インターリーブドストリームファイル構成するデータブロックから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シーケンスがそれぞれ別々の記録媒体から読み出されたかのように処理することができる。
図56は、ATCシーケンスの復元がどのように行われるかを示す図である。同図(a)は、ATCシーケンス復元部を具備した読出部の内部構成を示す。上述したように、2つのドライブと、2つのリードバッファとの間にATCシーケンス復元部が介在している。図中の矢印B0は、1つのドライブからのソースパケット入力を象徴的に示したものであり、矢印B1は、ベースビュービデオストリームを構成するATCシーケンス1の書き込み、矢印D1は、ディペンデントビューストリームを構成するATCシーケンス2の書き込みを模式的に示す。
図56(b)は、ATCシーケンス復元部によって得られた2つのATCシーケンスが、どのように取り扱われるかを示す。図中の真ん中に多重分離部内に存在するPIDフィルタを示す。左側は、ATCシーケンス復元部によって得られた2つのATCシーケンスを示す。右側は、これらの2つのATCシーケンスを多重分離することで得られるベースビュービデオストリーム、ディペンデントビュービデオストリーム、左目PGストリーム、右目PGストリーム、ベースビューIGストリーム、ディペンデントビューIGストリームを示す。
図57は、ベースビュークリップ情報におけるエクステントスタートポイント情報の一例と、ディペンデントビュークリップ情報におけるエクステントスタートポイント情報の一例を示す。(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)"になる。
図58は、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シーケンス復元部は、図59の処理をハードウェア資源に実行させるプログラムを作成することで実現される。図59は、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つのファイルが記録媒体に仮想的に存在するものとして扱うことができる。
立体視のためのベースビュービデオストリーム、ディペンデントビュービデオストリームをインターリーブストリームファイルとして記録媒体しつつも、ベースビュービデオストリーム及びディペンデントビュービデオストリームの単体アクセスを可能にせしめるので、再生装置の処理の効率性を向上させることができる。
(第5実施形態)
本実施の形態では、BD−ROMに格納された3Dコンテンツを再生する上でのHDIM出力の課題、超解像度方法、高フレームレート化方法について説明する。
(HDMI出力)まず、3D表示/眼鏡方式識別に関して図60を使って説明する。3D表示可能なプレーヤに複数のTVが接続されている場合には個々のTVが3D視聴のためには眼鏡が必要なのか、また必要な場合にはどの方式の眼鏡が必要となるのかをHDMIのようなI/Fを経由してプレーヤへ通知することが望ましい。例えば、BDプレーヤでは、接続先のTVが3D視聴にはアクティブシャッター付き眼鏡が必要であると知ることができれば、3D再生開始前にアクティブシャッター付き眼鏡が必要であるメッセージを視聴者に通知するようプログラミングすることも可能となる。そのため、HDMIのようなI/FはTVが3Dで表示する際に眼鏡が必要か否か、また必要な場合にはどの方式の眼鏡が必要なのか(アナグリフなのか、円偏向なのか、アクティブシャッターなのかなど)を識別するための情報をプレーヤに通知できるよう、E-EDIDやInfoFrameなどにて接続している機器間で共有できることが望ましい。尚、TVと眼鏡間の通信機能があれば、眼鏡の位置情報(具体的には、TV画面中央から延びる垂直線と眼鏡の水平/垂直角度と距離)をプレーヤに返すことで3D映像を各ユーザーごとに適切に変更させることも可能である。尚、TV-1が2D専用TVで、TV-2が3D対応TVである場合には、TV-1向けの出力としては、TV-2へ出力する右目映像もしくは左目映像だけを抜き出して出力するか、「TV-2にて3D再生中」や、「TV-1では3D視聴できません」などといった3D視聴がTV-1ではできないというメッセージを表示することが望ましい。尚、図61に示すように、3D映像を再生中に2D映像に切り替える場合に、3D映像のフレームレートのまま、片方の映像を二重に出力することが好ましい。フレームレートの変更が起こるとHDMIの認証が必要になるなどの遅延が発生するからである。しかし、3D映像を表示する場合、メガネによってユーザの視界が暗くなることを考慮して、テレビは輝度を上げた映像になっており、2D映像を表示するのに適切な処理がされていない可能性がある。そこで、図61の2Dダビング再生と記した区間のように、片方の映像を2重に出力する場合には、HDMI上に映像を出力するときに、同時にその映像が2D映像の再生を意図していることを意味するフラグをテレビに転送する。これにより、テレビ側では転送されてくる映像が2D映像であることを判断することができるため、2D映像再生に適した画像処理などの制御を行うことが可能である。次に、BDなどで用いられる字幕・メニュー用ストリームの相関を図62を使って説明する。プレーヤが同時に2D出力と3D出力をする必要がある場合、BD-ROMにて使用されるPresentation Graphics(PGと略し字幕用のストリーム)、Interactive Graphics stream(IGと略しメニュー用のストリーム)は、2D映像用、3D映像用でことなる図柄となるため個別のPIDを与えられ、別個にデコードする必要がある。しかしながら、視聴者が2D表示のTVを見ながら操作するか、3D表示のTVを見ながら操作するかにおいて差がでないようにするために、2D向けのストリーム(C)と3D向けの左目/右目用のストリーム(L,R)との全てが表示される図柄とその図柄の表示位置を除き全ての情報が一致していることが望ましい。例えば、PGであれば、C,L,R間で同じ表示時間に同じ字幕(C,L,R間で字幕の図柄と表示位置だけが異なる)が表示されるようにストリームが記録されていることが望ましい。また、IGに関しては、対応するC,L,Rのストリーム間で同じメニュー操作が実現できるように、メニューのページ構成、ボタン間の遷移、実行時のボタンコマンドなどが同じメニュー(C,L,R間でボタンの図柄と表示位置だけが異なる)であるようにストリームが記録されていることが望ましい。これはTV-1での2D視聴者およびTV-2での3D視聴者が同じ字幕・メニューを見ることができ、かつ、どちらのTVからでもメニューを制御できるようにするために必要である。プレーヤは2D/3Dの同時出力の際には、図62のようにL、R、Cを別々に合成し、2D向け映像出力と、3D向け映像出力を生成しても良い。尚、図ではIGデコーダしか記載していないが、PGデコーダについても同様である。また、2D映像出力には3DでのL映像を用いたが、R映像を用いても良い。
(超解像度)次に、より滑らかな2D/3D映像表示を実現するための処理について図63を使って説明する。L1,R1,L2,R2,…と続く左目(Ln)、右目(Rn)映像が連続する入力を基に2D表示するTVにおいては、L1,L2,L3,…と左目用映像だけ、もしくはR1,R2,R3,…と右目用映像だけ、とどちらか片方だけを表示する。したがってこれまでは、右目・左目映像を同時に撮影している場合、L2の映像は従来であれば、その時間的に前の映像(L1)と時間的に後の映像(L3)を用いて高画質化されるだけであった。しかし、L2の映像はL1,L3などよりも逆側の目の映像R1,R2,R3の方がより関連性が高い映像を含む場合があると考えられる。したがって、2D表示する場合においても表示しない側の映像を参照することで、より良く高画質化することが可能になる。高画質化の手法についてはここでは問わないが、2D表示をしながらも高画質化処理においては表示しない側の片目映像(結局は両眼映像)を利用していることが精度の高い高画質化のために極めて重要である。この場合、視聴者には2D表示であるが、プレーヤとTVの間は3Dとして接続される必要がある。HDMIのようなI/Fでも3Dとして接続認証し、L/Rの両眼映像をプレーヤが出力するよう切替制御させることが必要である。尚、L1,R1,L2,R2,…と続く左目(Ln)、右目(Rn)映像が連続する入力を基に3D表示するTVにおいても、各々の映像を高画質化する際に、両眼映像を利用することが効果的であると思われる。尚、L/Rのカメラの光学パラメータ(カメラ間の角度、焦点距離など)をストリームに記録しておくことで高画質化処理を行うフレームを精度高く予測することも可能である。
(高フレームレート化)次に、より滑らかな2D/3D映像表示を実現するための処理について同じく図63を使って説明する。特に3D表示においては時分割表示方式で右目・左目の映像が交互に表示されることも多く、表示のフレームレートが低いことによる眼精疲労を引き起こすことが多い。さらに昨今のTV大画面化により映像素材自体のフレーム間での映像変化量が大きい場合には、低フレームレートによる疲労を生みやすい。そのため3Dで再生する場合には一般に、映像素材の2倍、3倍といったフレームレートにて表示を行うことが一般である。しかしながら表示を倍速、3倍速駆動としても表示されている映像自体が同じであるため依然として大画面視聴時にはフレーム間の映像変化量による問題が残る。例えば、倍速表示を行う場合、L1,R1,L1,R1,L2,R2,L2,R2,…と2回ずつ表示を行うが、2回目のL1,R1の表示では、高画質化回路を通すことで時間分解能を上げた映像(L1,L2の中間映像と、R1,R2の中間映像)を表示することで上記疲労を軽減することが可能となる。言い換えれば、素材映像のサンプリング周波数(フレームレート)よりも高いサンプリング周波数にて中間映像を生成し、3D表示することで大画面での3D視聴においても眼精疲労を軽減して視聴させることが可能となる。
尚、右目・左目の両眼視差を表示することで立体表示を行う視聴者に眼鏡を必要とするTVの場合、右目・左目の視差映像が視聴者の両眼間隔よりも大きくなると立体として結像しなくなるため視聴者の眼精疲労や3D酔いを引き起こす課題がある。そのため、使用されている眼鏡の中で一番小さい眼鏡、つまり視聴者の中で一番小さい両眼間隔以上に、右目・左目の視差映像がずれないよう右目・左目の全体映像を左右にシフトして表示することがTVの表示処理として望ましい。BDのインタラクティブメニュー画面にて、視聴者の年齢や立体強度などを視聴者に入力もしくは選択させることで、適切な両眼視差を表示できるようプレーヤ側が映像出力時に右目・左目の全体映像を左右にシフトして出力処理しても良い。
(第6実施形態)
本実施形態では、これまでの実施形態に示した記録媒体の作り方、つまり、記録方法の形態について説明する。
本実施形態に係る記録方法は、ストリームファイルである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上に得ることができる。
以上がリアルタイムレコーディングによる記録方法を実行する記録装置である。続いて、プレフォーマットレコーディングによる記録方法について説明する。
プレフォーマットレコーディングによる記録方法は、オーサリング行程を含むような光ディスクの製造方法となる。
図64は、光ディスクの記録方法を示す。同図(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)が存在する。
次にオーサリング行程について説明する。
図65は、オーサリング行程の処理手順を示すフローチャートである。
ステップ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のメタデータに記載すれば、オフセットシーケンスは、エンコードの過程で作成しておくことができる。
図66は、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先頭検出及びエントリー追加によって、基本エントリーマップ、拡張エントリーマップを作成してゆく手順を、図58参照しながら説明する。
図67は、基本エントリーマップ及び拡張エントリーマップの作成手順を示すフローチャートである。
ステップ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に移行する。
<インデックステーブルの生成方法>
第3実施形態で述べたインデックステーブルは、以下のようにして生成することができる。図59のフローチャートにおいて、ベースビュービデオストリーム、ディペンデントビュービデオストリーム、クリップ情報ファイル、プレイリスト情報ファイルを作成することで、記録媒体に記録すべき各プレイリストの表示周波数が判明する。これらのうち、ファーストプレイタイトルで使用されるプレイリストの解像度・表示周波数、又は、タイトル番号0〜999で指示されるタイトルのプレイリストの解像度・表示周波数を、インデックステーブルのBDMVアプリケーション情報におけるビデオフォーマット情報及びフレームレート情報に設定する。こうすることで、プレイリスト再生時に適用すべき解像度・表示周波数が、インデックステーブルにおいて設定されることになる。
図68は、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アプリケーション、ムービーオブジェクト、インデックステーブルを記録媒体に書き込む。
以上の記録で作成することができる記録媒体について説明する。
図69は、多層化された光ディスクの内部構成を示す。
第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ファイルを構成するエクステントが存在する。
図70は、ファイルシステムを前提にした光ディスクのアプリケーションフォーマットを示す。
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つ以上の「エクステント」とが記録されている。
本願の主眼となるストリームファイルは、そのファイルが帰属するディレクトリのディレクトリ領域内に存在するファイル記録領域のことであり、ディレクトリファイルにおけるファイル識別記述子、及び、ファイルエントリーにおけるアローケーション識別子を辿ってゆくことで、アクセスすることができる。
(第7実施形態)
本実施形態では、これまでの実施形態で説明した再生装置の機能を統合した、2D/3D再生装置の内部構成について説明する。
図71は、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(登録商標)プラットフォームであり、Java(登録商標)2Micro_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における記憶内容のバックアップに用いられる。
(第8実施形態)
以降の実施形態は、本願の優先権主張の基礎となった特許出願の願書に添付した明細書及び図面に記載された発明と同一発明(以下、本発明と呼ぶ)を実施するための形態である。
先ず始めに、本発明に係る記録媒体の実施行為のうち、使用行為についての形態を説明する。図72(a)は、本発明に係る記録媒体の、使用行為についての形態を示す図である。本図において、本発明に係る記録媒体はBD-ROM101である。このBD-ROM101は、再生装置102、テレビ103、リモコン104により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
以上が本発明に係る記録媒体の使用形態についての説明である。
次に本発明に係る記録媒体であるBD-ROMの、2D映像を格納するためのデータ構造について説明する。
図72(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)について説明する。インデックスファイルは図72(c)に示すインデックステーブルを持つ。インデックステーブルはBD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるプログラムファイルが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のBDプログラムファイルを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるBDプログラムファイルが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。
BDプログラムファイル(AAA.PRG)はタイトルから指定、実行されるプログラムが格納されている。プログラムのファイルは複数あり、プリフィックス(AAA)がプログラムを識別するのに使用される。ここで使用されるプログラムは、ブルーレイの場合はコマンドナビゲーションと呼ばれる独自仕様のインタープリタ方式のプログラムが使われるが、言語方式は本発明の本質ではないため、Java(登録商標)やJava(登録商標)Scripのような汎用のプログラミング言語であっても構わない。このプログラムによって再生されるプレイリストが指定される。
続いて、AVクリップ(XXX.M2TS)とクリップ情報ファイル(XXX.CLPI)について説明する。
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図73(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が、それぞれ割り当てられている。
図73(b)は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリーム501、複数のオーディオフレームからなるオーディオストリーム504を、それぞれPESパケット列502および505に変換し、TSパケット503および506に変換する。同じくプレゼンテーショングラフィックスストリーム507およびインタラクティブグラフィックス510のデータをそれぞれPESパケット列508および511に変換し、更にTSパケット509および512に変換する。AVクリッステップS513はこれらのTSパケットを1本のストリームに多重化することで構成される。
図74(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)が格納される。
図74(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クリップには図74(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時間の情報を持つ。
図75(a)は、PMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、AVクリップに関するディスクリプタが複数配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。
クリップ情報ファイルは、図75(b)に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、クリップ情報、ストリーム属性情報とエントリマップから構成される。
クリップ情報は図75(b)に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートはAVクリップの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。AVクリップ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻はAVクリップの先頭のビデオフレームのPTSであり、再生終了時刻はAVクリップの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図76(a)に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
エントリマップは、図76(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クリップの再生経路を示すものである。図77(a)に示すように、プレイリストは1つ以上のプレイアイテム1201から構成され、各プレイアイテムはAVクリップに対する再生区間を示す。各プレイアイテム1201はそれぞれプレイアイテムIDで識別され、プレイリスト内で再生されるべき順序で記述されている。また、プレイリストは再生開始点を示すエントリマーク1202を含んでいる。エントリマーク1202はプレイアイテムで定義される再生区間内に対して付与することでき、図77(a)に示すように、プレイアイテムに対して再生開始点となりうる位置に付けられ、頭出し再生に利用される。例えば、映画タイトルにおいて、エントリマーク1202をチャプタの先頭となる位置に付与することで、チャプタ再生することが可能である。なお、一連のプレイアイテムの再生経路をメインパス1205とここでは定義する。
プレイアイテムの内容について図77(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には、各ストリームの属性情報も同時に記録されている。ここで属性情報とは、各ストリームの性質を示す情報で、例えばオーディオ、プレゼンテーショングラフィックス、インタラクティブグラフィックスの場合には、言語属性などが含まれる。
プレイリストは、図77(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再生装置)について説明する。
図78(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は、プレーヤの状態を示すシステムパラメータ(PSR)と一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図78(b)はシステムパラメータ(PSR)の一覧である。
PSR0 : 言語コード
PSR1 : 主音声ストリーム番号
PSR2 : 字幕ストリーム番号
PSR3 : アングル番号
PSR4 : タイトル番号
PSR5 : チャプタ番号
PSR6 : プログラム番号
PSR7 : セル番号
PSR8 : 選択キー情報
PSR9 : ナビゲーションタイマー
PSR10 : 再生時刻情報
PSR11 : カラオケ用ミキシングモード
PSR12 : パレンタル用国情報
PSR13 : パレンタルレベル
PSR14 : プレーヤ設定値(ビデオ)
PSR15 : プレーヤ設定値(オーディオ)
PSR16 : 音声ストリーム用言語コード
PSR17 : 音声ストリーム用言語コード
PSR18 : 字幕ストリーム用言語コード
PSR19 : 字幕ストリーム用言語コード
PSR20 : プレーヤリージョンコード
PSR21 : 2D/3D出力モードのユーザー優先選択
PSR22 : 現在の2D/3D出力モード
PSR23 : ディスプレイの3D映像表示能力
PSR24 : 3D映像再生能力
PSR25 : 予備
PSR26 : 予備
PSR27 : 予備
PSR28 : 予備
PSR29 : 予備
PSR30 : 予備
PSR31 : 予備
PSR10は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻(PTS)を示す値にPSR10は更新される。このPSR10を参照すれば、現在の再生時点を知得することができる。
PSR16の音声ストリーム用言語コードやPSR18の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、PSR16の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBDプログラムファイルに入れることができる。
また、再生制御部1507は、システムパラメータの状態をチェックしながら再生する。また、PSR1、PSR2、PSR21、PSR22は、それぞれ音声ストリーム番号、字幕ストリーム番号、副映像ストリーム、副音声ストリームの番号を示し、これらの値は、前述したストリーム選択番号606に対応する。例えば、プログラム実行部1506によって、音声ストリーム番号PSR1が変更されたとする。再生制御部1507は、現在再生しているプレイアイテムのストリーム選択テーブル605の中から、ストリーム選択番号606と比較して、一致するストリームエントリ609を参照し、再生する音声ストリームを切り替える。このようにしてどの音声・字幕・副映像ストリームを再生するかどうかを切り替える。
プログラム実行部1506はBDプログラムファイルに格納されたプログラムを実行するプロセッサである。格納されたプログラムに従って動作を行い、次のような制御を行う。(1)再生制御部1506に対してプレイリスト再生を命令する。(2)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことが出来、どのように制御するかは、オーサリング工程によるBDプログラムファイルのプログラミング工程によって決まる。
プレーン加算部は、主映像プレーン、副映像プレーン、インタラクティブグラフィックスプレーン、プレゼンテーショングラフィックスプレーン、イメージプレーンを瞬時に重畳し、TVなどの画面に表示する。
次に、図79を参照しながらシステムターゲットデコーダ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再生の原理)
次に図80を用いて家庭用ディスプレイで立体視を行う原理を説明する。立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式の大きく2つある。
まず、1つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。
2つ目の視差画像を用いた方式で、右目に入る映像と、左目に入る映像を各々用意し、それぞれの目に対応したピクチャーだけが入るようにして立体視を行う方法である。図80でユーザーが顔の中央の延長線上にある、比較的小さな立方体を見ている様子を上から見た図であり、右上の図は左目が見た場合の例を示しており、右下の図は同じ立方体を右目が見た場合の例を示している。
この方式のメリットは、高々右目用と左目用の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再生装置として説明を行う。
以下に、立体視映像を再生するためにBD-ROMにおけるインデックスファイル(Index.bdmv)について説明する。図98は、立体視映像を再生するためにBD-ROMにおけるインデックスファイルの一例を示す図である。同図の例では、プレイリストとして、2D映像を再生する経路が記載された2Dプレイリスト2601と、立体視映像を再生する経路が記載された3Dプレイリスト2602が用意されている。ユーザからタイトルが選択され、実行されたBDプログラムファイルは、プログラムの中で、再生装置が立体視映像再生に対応しているか、更に、立体視映像再生に対応している場合にユーザが立体視映像再生を選択しているかを調べて、再生するプレイリストを切り替える。
また、インデックスファイルには、「3D存在フラグ」と「2D/3D好みフラグ」が用意されている。3D存在フラグは、タイトル上に3D映像を再生するためのプレイリストが存在するかどうかを識別するフラグであり、これがFALSEの場合は、2D/3D再生装置は立体視映像再生の準備を行う必要がないため、HDMI認証などの処理を省くことで高速に処理を行うことができる。2D/3D好みフラグは、プレーヤとテレビが2Dでも3Dでも再生可能である状態において、コンテンツプロバイダーが、2Dで再生してほしいか、3Dで再生してほしいかを示す識別子である。このフラグが「3D」を示す場合は、2Dに遷移する必要がないためHDMI認証を早く行うことができる。一般にプレーヤとテレビのHDMIの認証ではフレームレート等のビデオストリーム属性が異なると大きく遅延が発生する。よって、2D映像の再生に一度遷移した後3D映像の再生に遷移する場合には、大きな遅延が発生することとなる。そこで、このように、2D/3D好みフラグを用いることで、2D映像の再生遷移を省ければ、HDMI認証の遅延時間を回避することができる。
なお、「3D存在フラグ」と「2D/3D好みフラグ」はインデックスファイル全体に対して設定するのではなく、タイトル毎に設定できるとしても良い。
図99はBDプログラムファイルのプログラムでの2Dプレイリストと3Dプレイリストの選択フローを示している。
S2701にて、PSR24の値をチェックし、値が0の場合は該当再生装置は2D再生装置であるため、2Dプレイリストを再生し、値が1の場合はS2702に進む。
S2702にて、ユーザに2D映像の再生を希望するか、3D映像の再生を希望するかを、メニュー画面を表示して問い合わせる。ユーザのリモコンなどでの選択の結果、2D映像の再生を希望する場合は2Dプレイリストを再生し、3D映像の再生を希望する場合はS2703に進む。
S2703にて、ディスプレイが3D映像の再生に対応しているかをチェックする。例えば、HDMIにて結線を行い、再生装置がディスプレイに対して、3D映像再生に対応しているかどうかを問い合わせる。3D映像の再生に対応していない場合は、2Dプレイリストを再生するが、ユーザに対してテレビ側の準備が整っていない旨をメニュー画面などで提示しても良い。3D映像の再生に対応している場合は、3Dプレイリストを再生する。
また、2D再生装置には、PSR13にパレンタルレベルが設定でき、これによって、適切な年齢以上のユーザのみが該当のBD−ROMディスクを再生できるように制御することができるとしたが、これに加えて、2D/3D再生装置には、3DパレンタルレベルPSR30が用意されている。3Dパレンタルレベルには、PSR13と同様に2D/3D再生装置を利用するユーザの年齢が格納される。BD−ROMディスクのタイトルのBDプログラムファイルは、PSR13に加えて、このPSR30を使って再生するかしないかを判断する。PSR30は3D映像再生に関するパレンタルレベルであるため、2D映像再生においてはPSR13によってパレンタルレベルが制御される。このように二つのパレンタルレベルを設けることにより、幼い成長中の子供への身体的な影響を考えて、例えば「幼い子供には3D映像は見せたくないが、2D映像は見せてもよい」というような制御を行うことができる。例えば、図99のフローに、S2703でYESとなった後に、PSR30を参照して、再生するプレイリストを選択するようにしても良い。
なお、PSR30にはPSR13と同様に年齢情報を格納するとしたが、PSR30には、単に3D映像を禁止するか否かを設定できるようにしてもよい。
また、「ユーザが2D/3Dのどちらを好んで再生するか」を示す情報を、同様にシステムパラメータ(ここでは、PSR31とする)に設定する。PSR31には、ユーザが2D/3D再生装置のOSDなどを通じて、ユーザが2D/3Dのどちらを優先して再生したいかを設定する。ディスプレイが3D映像再生に対応している場合には、PSR31の情報を使って、もし3D映像を優先する場合には、2D映像に遷移する必要がないためHDMI認証を早く行うことができ、3D映像の再生処理を早く行うことができる。また、BDプログラムがこのPSR31を参照して、2Dを再生するか、3Dを再生するかを決定することで、ユーザの好みに合った再生処理が可能となる。
なお、BDプログラムが、PSR31を参照して、BDプログラムが表示するメニューのデフォルト選択ボタンを決定してもよい。例えば、「2D映像を再生するか」、「3D映像を再生するか」の分岐を促すメニューの場合には、PSR31の値が「2D」であれば「2D映像再生」のボタンにカーソルを合わせ、PSR31の値が「3D」であれば「3D映像再生」のボタンにカーソルを合わる。
なお、「ユーザが2D/3Dのどちらを好んで再生するか」は、再生するユーザ毎に異なるので、2D/3D再生装置に誰がみているのかを特定する手段があれば、現在見ているユーザに合わせてPSR31を設定してもよい。例えば、2D/3D再生装置を家族3人(父、母、子)が使うことを想定し、2D/3D再生装置は各ユーザ毎にアカウントを管理しているケースがある。この場合に、ログインしているユーザに応じて、PSR31を更新することで、実際に使っている人の好みに応じた制御を行える。
なお、「ユーザが2D/3Dのどちらを好んで再生するか」を示す情報を、2Dか3Dかの2択ではなく、レベルを設けてもよい。例えば、「常に2D」、「どちらかというと2D」、「どちらかというと3D」、「常に3D」の4段階にわけてもよい。このようにすることで、よりユーザの好みにあうように2D/3D再生装置の再生処理を行うことができる。例えば、再生装置の状態を示すシステムパラメータであるPSR25を設定するようなケースでは、PSR31が「常に2D」ならば、常にPSR25も2Dモードを設定し、PSR31が「常に3D」ならば、常にPSR25も3Dモード(L/RモードかDEPTHモード)を設定するようにする。
次に、図81を用いながらプレゼンテーショングラフィックスの構成について説明する。図81のように表示する字幕エントリは、複数の字幕データエントリから構成される。各字幕データエントリは、コンポジション情報、ウィンドウ情報、パレット情報、オブジェクト情報から構成される。コンポジション情報は字幕データの画面構成を定義する情報であり、オブジェクトのクロッピング情報、クロッピングされたオブジェクトの表示位置、参照するウィンドウを特定するウィンドウID、参照するパレットを特定するパレットID,参照するパレットを特定するオブジェクトIDが格納される。ウィンドウ情報には、ウィンドウIDと共に、デコーダが描画する領域を定義するウィンドウ領域が格納される。オブジェクト情報には、オブジェクトIDと共に、グラフィックスイメージが格納されている。グラフィックスイメージは、256色のインデックスカラーで構成されたイメージデータであり、ランレングス圧縮などの圧縮方法を用いて圧縮されている。パレット情報には、パレットIDと共に、オブジェクトに利用される色のテーブル情報(CLUT)が格納される。テーブルは256色が格納可能であり、一つ一つの色はカラーIDで参照できる。カラーIDは0から255までの値をとるが、255は固定の無色透明が割り当てられている。
図82は、プレゼンテーショングラフィックスのデコード処理の流れを説明する図である。まず、STEP1で、各字幕データエントリは、コンポジション情報の参照オブジェクトIDにより指定される、圧縮されたグラフィックスイメージをデコードする。次にSTEP2で、コンポジション情報のクロッピング情報を用いて、グラフィックスイメージをクロッピングし、必要なデータだけを切り出す。次にSTEP3でコンポジション情報の表示位置に従い、グラフィックスプレーンへの表示位置を決定する。次にSTEP4で、コンポジション情報の参照ウィンドウIDで指定される、ウィンドウ情報のウィンドウ領域の範囲だけグラフィックスプレーンにオブジェクトデータを描画する。次にSTEP5で、コンポジション情報の参照パレットIDで指定されるパレット情報を用いて、グラフィックスプレーンに色を付けて表示を行う。なお、表示を行うタイミングは、コンポジション情報が格納されるPESパケットのPTSのタイミングで行われる。
次に、字幕表示の改良について説明する。
PGプレーンに1plane+Offset方式を採用する場合、字幕データを作成には、ビデオ映像の奥行きにあわせて、オフセットメタデータを調整する必要があるため、データ作成が困難という課題があった。
そこで、以下では、画面中で映画の本編映像に利用されない黒枠を利用し、その黒枠領域を上側もしくは下側に集め、そこに字幕データを表示する方法について説明する。
ビデオストリームに挿入される黒枠は無駄な領域となるため、ここに字幕を表示してもよいが、図4の(a)の右図に示すように、上下にはそれぞれ131ピクセルの黒枠しかないため、字幕データを入れるにはやや小さい。そこで、図4の(b)、(c)のように、本編映像を上もしくは下にシフトし、シフトした領域に黒色を挿入することにより、上下にある黒枠を、上もしくは下にまとめる。このようにすることによって、字幕データを入れるのに十分な大きさの黒枠を用意することができる。
それでは、次にこのコンセプトを実現するためのデータ構造について説明する。
データ構造の基本部分は、これまでの実施の形態で説明した3D映像を格納するためのデータ構造と同じであるため、拡張または異なる部分を中心に説明する。また、以降では、PGについての説明を行うが、この方法は、PGをIGや副映像に置き換えることで、同様に適用可能である。
図83は、3Dプレイリストのプレイアイテムの構成を示しており、ストリーム選択テーブルにおけるPGストリームのストリーム付加情報1311に、「ビデオ上移動時シフト値(PG_v_shift_value_for_Up)」、「ビデオ上移動時シフト値(PG_v_shift_value_for_Down)」が含まれる。「ビデオ上移動時シフト値(PG_v_shift_value_for_UP)」は、主映像プレーンが上方向にシフトした場合(黒枠が下側に集まる場合)のPGプレーンのシフト量であり、「ビデオ上移動時シフト値(PG_v_shift_value_for_Down)」は、主映像プレーンが下方向にシフトした場合(黒枠が下側に集まる場合)の、PGプレーンのシフト量である。2D/3D再生装置は、この値に基づきPGプレーンのシフト量を調整する。プレーンの合成方法についての詳細は後述する。
次に、2D/3D再生装置について説明する。図84は、2D/3D再生装置内のプレーン合成の構成を示している。ここでは代表してPGプレーンを例に説明するが、副映像プレーン、IGプレーン、イメージプレーンなどのどのプレーンにも適用できる。
図84に示す2D/3D再生装置内のプレーン合成には、2D/左目映像プレーンと右目映像プレーンのクロッピング処理を行う映像プレーンクロッピング部9701、ビデオのシフトモードを記すPSR32、PGプレーンのクロッピング処理を行うPGプレーンクロッピング部9702、PGプレーンなど各プレーンのシフト量を記したPSR33が含まれる。
図25の(a)のPSR32はビデオのシフトモード(video_shift_mode)を示す2D/3D再生装置のシステムパラメータである。PSR32のvideo_shift_modeには、Keep、Up、Downの3つのモードが存在し、PSR32の値が0ならばKeep、PSR32の値が1ならばUp、SRPM(32)の値が2ならばDownを示す。映像プレーンクロッピング部9701は、PSR32に記されたビデオのシフトモードに従って、映像プレーンのクロッピング処理を行う。PSR32の値は、BDプログラムのAPIやコマンドを通じて設定される。
PSR32がKeepを示す場合には、図25(b)の(1)に示すように、映像プレーンクロッピング部9701は、2D/左目映像プレーンと右目映像プレーンは変更せずにそのまま他のプレーンとの重畳処理に進む。PSR32がUpを示す場合には、図25(b)の(2)に示すように、映像プレーンクロッピング部9701は、2D/左目映像プレーンと右目映像プレーンを、それぞれのプレーンを上方向にずらして、上領域の黒枠を切り取り、下領域に黒枠を挿入してプレーンとの重畳処理に進む。これにより黒枠をプレーンの下方向に集めることができる。また、PSR32がDownを示す場合には、図25(b)の(3)に示すように、映像プレーンクロッピング部9701は、2D/左目映像プレーンと右目映像プレーンを、それぞれプレーンを下方向にずらして、下領域の黒枠を切り取り、上領域に黒枠を挿入してプレーンとの重畳処理に進む。これにより黒枠をプレーンの上方向に集めることができる。
図36は、各プレーンの縦軸方向のシフト量を示すシステムパラメータ(ここではPSR33とする)である。PSR33のシフト量はプレーン毎に、ビデオが上方向にシフトする場合のプレーンシフト量と、ビデオが下方向にシフトする場合のプレーンシフト量が用意されている。例えば、PGプレーンにはPG_shift_value_for_UP、PG_shift_value_for_Downが用意されている。この値は、ストリーム切り替えによって、プレイリストに設定された値(PG_v_shift_value_for_Up、PG_v_shift_value_for_Down)によって、PSR33の値は更新される。また、PSR33は、BDプログラムのAPIやコマンドを通じて設定してもよい。
図84で記したPGプレーンクロッピング部9702は、PSR33のPGプレーンのシフト量に応じて、プレーンのシフトを実行する。PGプレーンクロッピング部9702のシフト処理および映像プレーンとの合成処理については、図11と図38とに記している。図11に示すようにPSR32のvideo_shift_modeがKeepの場合には、PGプレーンクロッピング部9702は、処理を行わずにそのまま映像プレーンとの合成処理を行う。図38(a)に示すようにPSR32のvideo_shift_modeがUpの場合には、PGプレーンクロッピング部9702は、PSR33に格納されたPG_shift_value_for_Upの値を使い、PGプレーンのシフト処理を行い、プレーンをはみ出る箇所を切り出して、映像プレーンと重畳する。このようにすることで、字幕の表示位置を2D再生時よりも下側に持っていくことができ、下側にできる黒枠の領域に字幕を適切な位置に表示することが可能となる。図38(b)に示すようにPSR32のvideo_shift_modeがDownの場合には、PGプレーンクロッピング部9702は、PSR33に格納されたPG_shift_value_for_Downの値を使い、PGプレーンのシフト処理を行い、プレーンをはみ出る箇所を切り出して、映像プレーンと重畳する。このようにすることで、字幕の表示位置を2D再生時よりも上側に持っていくことができ、上側にできる黒枠の領域に字幕を適切な位置に表示することが可能となる。
なお、図84には、飛び出しを制御する横軸方向のオフセット処理(1プレーン+オフセット方式)を省いているが、横軸方向のオフセット値によるクロッピング処理の仕組みが追加されていてもよい。このようにすることで、黒枠に表示する字幕であっても、飛び出しを持たせることができる。
なお、図84のような黒枠に表示する字幕の場合には、横軸方向のオフセット値は固定的にするとしてもよい。この場合には、図83の付加情報にx軸方向のシフト量を定義し、その値をPSR33と同様な方法でPSRに格納し、その値を使って、横軸方向のオフセット処理を行ってもよい。このようにすることでデータ作成を簡易に行える。
なお、図84で説明したプレーン合成の構成では、Y軸方向のシフト量をPSR33に格納するとしたが、システムパラメータを設けずに、PGプレーンクロッピング部9702が直接プレイリストを参照する構成にしてもよい。
なお、video_shift_modeがUpもしくはDownの場合の映像プレーンのシフト量は、上下にある黒枠のサイズ(図4の例では131ピクセル)固定としてもよいが、オーサもしくはユーザが好きに設定できてもよい。新たにシステムパラメータを用意し、そこにシフト量を格納し、BDプログラムやプレーヤOSDによって設定できてもよい。
なお、図84で説明したプレーン合成の構成では、PSR33に格納された値を使って、プレーン全体をシフトする処理を説明したが、PGのコンポジション情報に格納される表示位置に追加される値として利用してもよい。例えば、PGのコンポジション情報の表示位置が(x、y)である場合に、video_shift_modeがKeepの場合には、PGデコーダは該当の字幕データエントリを(x、y+PG_shift_value_for_UP)の位置に表示する。このように構成することで、プレーンをシフトするよりも処理を軽くすることができる。なお、このように利用する場合はPG_shift_value_for_UPをコンポジション情報に格納してもよい。
なお、図39に示すように、video_shift_modeがUp、Downの場合には、プレーンをシフトすることによって、切り取られる領域が発生するため、切り取られる領域に、字幕データが存在しないように制約するとよい。つまり、図39の右側に示すように、点線で囲った領域以外は、切り取られる可能性があるため、ここには字幕データが表示されないようにPGの表示位置を制約する。領域の座標は、(0,PG_v_shfit_value_for_Down), (0,height+PG_v_sfhit_value_for_Up), (width,PG_v_shfit_value_for_Down), (width,height+PG_v_sfhit_value_for_Up)であらわされる。例えば、PG_v_sfhit_value_for_Upが-a、例えば、PG_v_sfhit_value_for_Downが+bとすれば、領域は、(0,b), (0,height-a), (width,b), (width,height-a)となる。PGの制約としては、表示位置が上記領域を超えないこと、表示位置に表示するオブジェクトのサイズを加えたものが上記領域を超えないこと、ウィンドウの表示位置が上記領域を超えないこと、ウィンドウの表示位置にウィンドウサイズを加えたものが上記領域を超えないこと、などがある。このように制約することで、字幕がかけて表示されることを防ぐことができる。
なお、図85に示すように、video_shift_modeをストリーム選択情報のストリーム付加情報1311に追加してもよい。この場合には、2D/3D再生装置のプレーン合成処理の構成は、図86のようになる。図86にはPSR34が追加されている。これは、ビデオシフトをするかしないかのOn/Offを示すフラグを格納する。つまり、PSR34が1ならばビデオシフトをすることを意味し、0ならばビデオシフトをしないことを意味する。ビデオシフトのOn/OffのフラグであるPSR34は、プログラム実行部によりメニューなどによって制御する。プレーヤのOSDなどによるユーザオペレーションによって設定できてもよい。PSR32には、ビデオシフトモードが格納されるが、この値は、PGのストリームの選択によって、選択された字幕ストリームの付加情報を元に設定される。映像プレーンクロッピング部9701は、PSR34がOnの場合には、PSR32に設定されたvideo_shift_modeに基づいて、映像プレーンのクロッピング処理を行う。PSR34がOffの場合には、クロッピング処理を行わない。このように構成することで、字幕毎に適切なvideo_shift_modeを設定することができる。
なお、図85に示すように、video_shift_modeをストリーム選択情報のストリーム付加情報1311に格納する場合には、ストリーム選択テーブルに登録されるPGストリームの順番を、video_shift_modeが同じ属性のものが固まるように行う。2D/3D再生装置のリモコンには一般的に字幕切り替えボタンがついており、ユーザが字幕切り替えボタンを押すたびに、ストリーム選択テーブルに登録されている字幕ストリームの順番で、シーケンシャルに切り替わるユーザオペレーションが定義されている。ユーザがこのリモコンの字幕切り替えボタンによって、字幕を切り替える場合に、ビデオプレーンが上、下に頻繁に動くと映像が見にくくなり、ユーザに対して不快感を与えることとなる。したがって、ストリーム選択テーブルに登録するPGストリームの順番は図13に示すように同じvideo_shift_modeが連続するように固めて並べる。例えば、図13の例では、字幕エントリ1〜3はvideo_shift_mode=Keepであり、字幕エントリ4〜5はvideo_shift_mode=Upであり、字幕エントリ6〜9はvideo_shift_mode=Downとなっている。このように同じビデオシフトモードの字幕を固めてならべることで、頻繁にビデオプレーンがシフトすることを防ぐことができる。
なお、video_shift_modeがKeep, Up, Downと遷移する場合に、瞬時に切り替わるとユーザに対して不自然な印象を与えることとなる。よって、Keep, Up, Downが遷移する場合には、滑らかなエフェクトを変えて遷移することが好ましい。なお、この場合、PGプレーンのシフト処理は、ビデオプレーンのシフトが完了してから適用することが好ましい。
なお、本実施の形態では、動的に黒枠を上か下の領域に集める方法を説明したが、図87上段のように本編映像を真ん中ではなく、少し上側に配置してビデオストリームを作成し、下側に黒枠を多めに配置しこの領域を字幕表示に利用するようにしてもよい。このようにすることで、字幕表示のために黒枠を動的に変更しなくてよいため、ビデオが上下に移動することがないためユーザに違和感を与えなくてすむ。
なお、図81の図を用いて説明したようにPGのストリームのパレット情報には、カラーID=255は無色透明の色が固定で割り当てられるが、この値を2D/3D再生装置が制御して、黒枠字幕を作るようにしてもよい。具体的には、システムパラメータPSR37にカラーID=255の色の値を格納し、2D/3D再生装置は、PSR37に応じて、PGプレーンのカラーID=255の色を変更するようにする。このようにすることで、図87下段左図のように、字幕の背景色をカラーID=255にしておけば、通常は透明色で背景が透けて見えるが、図87下段右図のように、カラーID=255を透過度のない色に変更すれば、字幕の背景色を変えることが可能である。PSR37の値は、BDプログラムのメニュー画面等で設定可能である。
(第9実施形態)
本実施形態では、前述の実施形態において説明された構造のデータを再生する再生装置に関して、集積回路3を用いて実現した構成例(図100)について説明する。
媒体IF部1は、媒体からデータを受信して(読み出して)、集積回路3に転送する。なお媒体IF部1は、前述の実施形態において説明した構造のデータを媒体から受信する。媒体IF部1は、例えば、媒体が光ディスクやハードディスクの場合はディスクドライブ、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波の場合はCANチューナーやSiチューナー、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合は、ネットワークIF、等である。
メモリ2は、媒体から受信した(読み出した)データを一旦格納したり、集積回路3における処理途中のデータを一時的に格納するメモリで、例えばSDRAM(Synchronous Dynamic Random Access Memory)、DDRx SDRAM(Double-Date-Ratex Synchronous Dynamic Random Access Memory;x=1,2,3・・・)等が用いられる。なおメモリ2は、任意の個数備えていればよく、必要に応じて単数でも複数でも構わない。
集積回路3は、媒体IF部1から転送されたデータに対して映像・音声処理を施すシステムLSIで、主制御部6、ストリーム処理部5、信号処理部7、メモリ制御部9、AV出力部8等から構成される。
主制御部6は、タイマ機能や割り込み機能を有するプロセッサコアを有し、プロセッサコアはプログラムメモリ等に格納されたプログラムに従って、集積回路3全体の制御を行う。なお、プログラムメモリ等には、予めOS等の基本ソフトが格納されている。
ストリーム処理部5は、主制御部6の制御の下、媒体から媒体IF部1経由で転送されたデータを受信し、集積回路3内のデータバスを経由してメモリ2に格納したり、受信したデータを映像系データ、音声系データに分離する。前述したとおり媒体上のデータは、レフトビュービデオストリームを含む2D/L用のAVクリップとライトビュービデオストリームを含むR用のAVクリップが、幾つかのエクステントに分割された状態で交互に配置されたものである。従って、主制御部6は、集積回路3がレフトビューストリームを含む左目用データを受信した場合は、メモリ2の第1の領域にデータが格納されるように、ライトビュービデオストリームを含む右目用データを受信した場合は、メモリ2の第2の領域にデータが格納されるように制御する。ここで、左目用データは左目用エクステントに属しており、右目用データは右目用エクステントに属している。なお、メモリ2における第1、第2の領域は単一のメモリが論理的に領域分割されたものでもよいし、物理的に異なるメモリでもよい。また、本実施形態においては、レフトビュービデオストリームを含む左目用データをメインビューデータ、ライトビュービデオストリームを含む右目用データをサブビューデータとして説明を続けるが、右目用データがメインビューデータ、左目用データがサブビューデータであっても構わない。また媒体中、グラフィクスストリームは、メインビューデータ及びサブビューデータのいずれか一方、もしくは両方に多重化されているか、単独のストリームとして存在する。
信号処理部7は、主制御部6の制御の下、ストリーム処理部5が分離した映像系データ、音声系データに対し、適切な方式でデコードする。映像系データは、MPEG-2、MPEG-4 AVC、MPEG4-MVC、SMPTE VC-1などの方式を使って符号化記録されており、また音声系データは、ドルビーAC-3、Dolby Digital Plus、MLP、DTS、DTS-HD、リニアPCMなどの方式で圧縮・符号化記録されているので、信号処理部7はこれらに対応した方式でデコードする。なお、信号処理部7のモデルは、例えば第1実施形態の図16における各種デコーダがそれに当たる。
メモリ制御部9は、集積回路3内の各機能ブロックからメモリ2へのアクセスを調停する。
AV出力部8は、主制御部6の制御の下、信号処理部7においてデコードされた映像系データを重畳したり、映像系及データのフォーマット変換等をして集積回路3外へ出力する。
図101は、ストリーム処理部5の代表的な構成を示す機能ブロック図である。ストリーム処理部5は、デバイス・ストリームIF部51、多重分離部52、切替部53等を備える。
デバイス・ストリームIF部51は、媒体IF部1と集積回路3間のデータ転送用インターフェースであり、例えば、媒体が光ディスクやハードディスクの場合はSATA(Serial Advanced Technology Attachment)、ATAPI(Advanced Technology Attachment Packet Interface)、PATA(Parallel Advanced Technology Attachment)、媒体がSDカードやUSBメモリ等の半導体メモリの場合はカードIF、媒体がCATV等を含む放送波などの場合はチューナーIF、媒体がイーサネット(登録商標)、無線LAN、無線公衆回線等のネットワークの場合は、ネットワークIF、等である。なお、媒体の種類によっては、デバイス・ストリームIF部51が媒体IF部1の機能の一部を肩代わりしても構わないし、媒体IF部1が集積回路3に内蔵されていても構わない。
多重分離部52は、媒体から転送された映像・音声を含む再生データを映像系データと音声系データに分離する。前述の各エクステントは、映像・音声・PG(字幕)・IG(メニュー)等の各ソースパケットから構成されており(但し、サブビューデータは音声を含まない場合もある)、各ソースパケットに含まれているPID(識別子)に従って、映像系・音声系の各TSパケットに分離し、信号処理部7に転送する。処理済のデータは、直接もしくは一旦メモリ2に格納された後、信号処理部7に転送される。なお、多重分離部52のモデルは、例えば第8実施形態の図79におけるソースデパケタイザ、PIDフィルタがそれに当たる。また、メインビューデータやサブビューデータに多重化されていない単独のストリームとして存在するグラフィクスストリームは、多重分離部52を介さずに信号処理部7に転送される。
切替部53は、デバイス・ストリームIF部51が左目用データを受信した時はメモリ2の第1の領域に格納されるように、右目用データを受信した時はメモリ2の第2の領域に格納されるように、出力先(格納先)を切り替える。ここで、切替部53は例えばDMAC(Direct Memory Access Controller)である。図102は切替部53がDMACであった場合の切替部53周辺の概念図である。DMACは、主制御部6の制御の下、デバイス・ストリームIF部が受信したデータとそのデータ格納先アドレスをメモリ制御部9に対して送信する。具体的には、デバイス・ストリームIF部が左目用データを受信した時はアドレス1(第1の格納領域)を、右目用データを受信した時はアドレス2(第2の格納領域)をメモリ制御部9に送信することで、受信データによってその出力先(格納先)を切り替えている。メモリ制御部9は、DMACから送られてきた格納先アドレスに従ってメモリ2にデータを格納する。なお、主制御部6の代わりに切替部53を制御する専用の回路を設けても構わない。
ここでは、ストリーム処理部5の代表的な構成として、デバイス・ストリームIF部51、多重分離部52、切替部53について説明したが、受信した暗号化データや鍵データ等を復号する暗号エンジン部、媒体〜再生装置間の機器認証プロトコル等の実行制御や秘密鍵を保持するセキュア管理部、ダイレクトメモリアクセス用のコントローラ等を更に備えていてもよい。これまでは媒体から受信したデータをメモリ2に格納する際に、切替部53が左目用データ・右目用データかによって格納先を切り替える場合について説明してきたが、媒体から受信したデータを一旦メモリ2に格納した後に、多重分離部52へデータを転送する際に、左目用データ・右目用データを振り分けてもよい。
図103は、AV出力部8の代表的な構成を示す機能ブロック図である。AV出力部8は、画像重畳部81と、ビデオ出力フォーマット変換部82、オーディオ・ビデオ出力IF部83等を備える。
画像重畳部81は、デコードされた映像系のデータを重畳する。具体的には、レフトビュービデオデータもしくはライトビュービデオデータと、PG(字幕)、IG(メニュー)をピクチャ単位で重畳する。画像重畳部81のモデルは、例えば第1実施形態、図20−図22などである。より具体的には、デコードされたビデオデータ及び字幕データは、メモリ2中の各プレーンに描画されるデータを格納する領域に格納される。ここで、プレーンはメモリ2中の領域であることもあれば、仮想的な空間であることもある。画像重畳部81は、レフトビュープレーンと対応する字幕プレーン、ライトビュープレーンと対応する字幕プレーンとを重畳する。そして、レフトビュープレーン及びライトビュープレーンは、重畳する字幕データ(ストリーム)に対応した領域確保フラグに基づいて、領域確保フラグが示す字幕データの表示領域に字幕データが重畳されるよう字幕データと重畳される(例えば、第1実施形態、図12等)。即ち、領域確保フラグが示す字幕データの表示領域が上端である場合は、レフトビュープレーン及びライトビュープレーンは垂直座標の下方向にシフトされて字幕データと重畳され、領域確保フラグが示す字幕データの表示領域が下端である場合は、レフトビュープレーン及びライトビュープレーンは垂直座標の上方向にシフトされて字幕データと重畳される。
ビデオ出力フォーマット変換部82は、デコードされた映像系データに対して、拡大または縮小するリサイズ処理、走査方式をプログレッシブ方式及びインターレース方式の一方から他方に変換するIP変換処理、ノイズを除去するノイズリダクション処理、フレームレートを変換するフレームレート変換処理などを必要に応じて行う。
オーディオ・ビデオ出力IF部83は、画像重畳やフォーマット変換された映像系データとデコードされた音声系データとに対して、データ送信形式に合わせてエンコード等を行う。なお、後述するようにオーディオ・ビデオ出力IF部83は、一部集積回路3外に備えられても構わない。
図104は、AV出力部8もしくは再生装置のデータ出力部分を、より詳細に示した構成例である。本実施の形態における集積回路3及び再生装置は、複数の映像系データ、音声系データのデータ送信形式に対応している。図103におけるオーディオ・ビデオ出力IF部83は、アナログビデオ出力IF部83a、アナログオーディオ出力IF部83c、デジタルオーディオ・出力IF部83bに対応する。
アナログビデオ出力IF部83aは、画像重畳処理や出力フォーマット変換処理された映像系データを、アナログ映像信号形式に変換・エンコードし、出力する。例えば、NTSC、PAL、SECAMの3方式のいずれかに対応したコンポジットビデオエンコーダー、S映像信号(Y/C分離)用エンコーダー、コンポーネント映像信号用エンコーダーや、DAC(D/Aコンバータ)等がそれに当たる。
デジタルオーディオ・ビデオ出力IF部83bは、デコードされた音声系データと画像重畳処理や出力フォーマット変換された映像系データを一体化、更に暗号化した後、データ送信規格に合わせてエンコードし、出力する。例えば、HDMI(High−Definition Multimedia InterFace)等がそれに当たる。
アナログオーディオ出力IF部83cは、デコードされた音声系データをD/A変換しアナログ音声データを出力するオーディオDAC等がそれに当たる。
これら映像系データ及び音声系データの送信形式は、表示装置・スピーカー4側がサポートしているデータ受信装置(データ入力端子)に依存して切り替えたり、またユーザーの選択によって送信形式を切り替えることが可能である。更に、単一の送信形式だけではなく、並行して複数の送信形式にて同一のコンテンツに対応したデータを送信することも可能である。
ここでは、AV出力部8の代表的な構成として、画像重畳部81、ビデオ出力フォーマット変換部82、オーディオ・ビデオ出力IF部83について説明したが、フィルタ処理、画面合成、曲線描画、3D表示等のグラフィックス処理を行うグラフッィクスエンジン部等を更に備えていてもよい。
以上が、本実施の形態における再生装置の構成についての説明である。なお、前述の集積回路3に含まれる各機能ブロックは全てが内蔵されていなくても良いし、逆に図100のメモリ2が集積回路3に内蔵されていてもよい。また、本実施形態においては、主制御部6と信号処理部7は異なる機能ブロックとして説明してきたが、主制御部6が信号処理部7の処理の一部を行っても構わない。
また、例えば図107のように、本実施の形態における再生装置の処理を表示装置において行っても構わない。その際、媒体IF部1が受信したデータは集積回路3によって信号処理され、処理された映像系データは表示駆動部10を経由して表示パネル11を通して出力され、処理された音声系データは、スピーカー12を通して出力される。ここで、AV出力部8は例えば図108のように構成され、集積回路3内部もしくは外部のオーディオ出力IF部85及びビデオ出力IF部84を通してデータ転送が行われる。なお、オーディオ出力IF部85及びビデオ出力IF部84をそれぞれ複数備えていてもよいし、ビデオとオーディオ共通のIF部を備えていてもよい。
また、集積回路3における制御バスやデータバスの経路は、各処理ブロックの処理手順や処理内容によって任意に配置されるが、例えば図105のように、各処理ブロックどうしを直接結ぶようにデータバスを配置してもよいし、図106のように各処理ブロックどうしをメモリ2(メモリ制御部9)を介して結ぶようにデータバスを配置してもよい。
また、集積回路3は、複数のチップを一つのパッケージに封止し、見かけ上一つのLSIにしたマルチチップ・モジュールであっても構わない。
また、LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
次に、以上のように構成された再生装置の動作について説明する。
図109は、媒体からデータを受信し(読み出し)、デコードした後に、映像信号及び音声信号として出力する再生動作手順を簡単に示すフローチャートである。
S1:媒体からデータを受信する(読み出す)(媒体IF部1、ストリーム処理部5)。
S2:S1において受信された(読み出された)データを各種データ(映像系データ・音声系データ)に分離する(ストリーム処理部5)。
S3:S2において分離された各種データを適切な形式でデコードする(信号処理部7)。
S4:S3においてデコード処理された各種データのうち、映像系のものについて重畳処理を行う(AV出力部8)。
S6:S2〜S5において処理された映像系データ及び音声系データを出力する(AV出力部8)。
図110は、より詳細に再生動作手順を示したフローチャートである。各動作・処理は、主制御部6の制御の下、行われる。
S101:ストリーム処理部5のデバイス・ストリームIF部51は、媒体IF部1を通して媒体に格納されている再生されるデータ以外の、データを再生するために必要なデータ(PLAYLIST、CLIPINF等)を受信し(読み出し)、メモリ2に格納する(媒体IF部1、デバイスIF部51、メモリ制御部9、メモリ2)。
S102:主制御部6は、受信されたCLIPINFに含まれるストリーム属性情報から、媒体に格納されている映像データ及び音声データの圧縮形式を認識し、対応するデコード処理ができるように信号処理部7の初期化を行う(主制御部6)。
S103:ストリーム処理部5のデバイス・ストリームIF部51は、媒体IF部1を通して媒体に格納されている映像・音声など再生されるデータを受信し(読み出し)、切替部53、メモリ制御部9を経由してメモリ2に格納する。なお、データはエクステント単位で受信し(読み出され)、左目用データを受信した(読み出した)時は第1の領域へ、右目用データを受信した(読み出した)時は第2の領域へ格納されるよう、主制御部6が切替部53を制御し、切替部53がデータの出力先(格納先)を切り替える(媒体IF部1、デバイスIF部51、主制御部6、切替部53、メモリ制御部9、メモリ2)。
S104:メモリ2に格納されたデータは、ストリーム処理部5の多重分離部52に転送され、多重分離部52はストリームデータを構成するソースパケットに含まれるPIDに従って映像系(主映像、副映像、PG(字幕)、IG(メニュー))、音声系(音声、副音声)のいずれであるか認識し、TSパケット単位で信号処理部7の対応する各デコーダへ転送する(多重分離部52)。
S105:信号処理部7の各デコーダは、転送されてきたTSパケットに対して、適切な方式でデコード処理を行う(信号処理部7)。
S106:信号処理部7においてデコードされた映像系データのうち、レフトビュービデオストリーム及びライトビュービデオストリームに対応するデータを、表示装置4に合わせてリサイズする(ビデオ出力フォーマット変換部82)。
S107:S106においてリサイズされたビデオストリームと、PG(字幕)・IG(メニュー)、テキスト字幕とが重畳される(画像重畳部81)。
S108:S107において重畳された映像データに対して、走査方式の変換であるIP変換を行う(ビデオ出力フォーマット変換部82)。
S109:これまでの処理を行った映像系データ及び音声系データに対して、表示装置・スピーカー4のデータ出力方式、もしくは表示装置・スピーカー4へのデータ送信方式に従って、エンコードやD/A変換等を行う。例えば、映像系データ・音声系データをそれぞれ、アナログまたはデジタル出力に対応するために処理を行う。映像系データのアナログ出力としては、コンポジット映像信号やS映像信号やコンポーネント映像信号等をサポートしている。また映像系・音声系データのデジタル出力は、HDMIをサポートしている(オーディオ・ビデオ出力IF部83)。
S110:S109において処理された映像系データ及び音声系データを、表示装置・スピーカー4に送信、出力する(オーディオ・ビデオ出力IF部83、表示装置・スピーカー4)。
以上が、本実施の形態における再生装置の動作手順の説明である。なお、処理ごとに処理結果をメモリ2に一旦格納しても構わない。また、図107の表示装置で再生処理を行った場合も基本的に同様の動作手順であり、図100の再生装置の各機能ブロックに対応する機能ブロックが同様の処理を行う。また、本動作手順では、ビデオ出力フォーマット変換部82においてリサイズ処理及びIP変換処理を行う場合について説明したが、必要に応じて処理を省略しても構わないし、また他の処理(ノイズリダクション処理、フレームレート変換処理等)を行っても構わない。更に、可能なものについては処理手順を変更しても構わない。
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(オフセットメタデータ)
各実施形態で説明したオフセットメタデータは、これまでに説明した形式に限らず他のデータ形式でも実現することができる。以下にオフセットメタデータの他のデータ形式を列挙する。
図89は、オフセットメタデータの第1のデータ形式を説明する図である。
第1のデータ形式では、オフセットメタデータをクリップ情報ファイルに格納する。この場合には、図89の(a)に示すに、PTSと複数のoffset_idのオフセット量を一つのエントリとしたテーブル情報を持つようにしてもよい。具体的なsyntaxは図89の(b)に記している。
図90は、オフセットメタデータの第2のデータ形式を説明する図である。各実施形態で説明したオフセットメタデータは、各GOPの先頭のアクセスユニットに格納され、該当GOP内のフレームに適用されるとした。第2のデータ形式では、クリップ情報ファイルにオフセットメタデータを格納する場合に、図90の(a)に示すようにエントリポイント毎に、次のエントリポイントまでのオフセットメタデータを格納する。具体的なsyntaxは図90の(b)に示すように、エントリポイントのIDであるEP_IDに対応付けた構成になっている。このように構成すると、EP_IDによってPTSを特定できるため、図89のデータ形式に比べてPTSの値を格納する必要が無いためデータ量を圧縮できる。また、このような構成にすると、ビデオストリームのアクセスユニットとクリップ情報ファイルとの両方にオフセットメタデータを格納する場合に、格納されているオフセットメタデータが同じであることの検証が容易である。
図91は、オフセットメタデータの第3のデータ形式を説明する図である。各実施の形態では、オフセットメタデータにオフセットシーケンスID毎にオフセットシーケンスを格納し、PGストリーム毎に参照オフセットシーケンスIDを使って、オフセット値を参照するとしたが、第3のデータ形式では、このようなオフセットメタデータをプレイリスト情報ファイルに格納する。図91の(a)は、プレイリスト情報ファイルに格納するオフセットメタデータのsyntaxを示している。最初のループ11201は、プレイアイテムのループである。number_of_offsets[playitem]はプレイアイテム中のオフセットエントリ数を示す。number_of_offset_id[playitem]はオフセットシーケンスIDの数を示す。2番目のループ11202はプレイアイテム中のオフセットエントリのループである。一つのループ内の情報をオフセットエントリとする。offset_frame_numberは、プレイアイテム先頭からのビデオフレーム数を示す。offset_frame_numberはPTSでもよいが、フレーム数とすることでデータ量を圧縮できる。offset_frame_durationは、次のオフセットエントリまでのオフセット値が挿入される間隔を示す。number_of_suboffsetsはoffset_frame_number[i]から次のオフセットエントリまでの間隔に挿入されるオフセット値の数を意味する。図91の(b)にoffset_frame_number[i]、offset_frame_duration[i]、number_of_suboffsets[i]の関係を示している。オフセット値は、11203のループで示すように、オフセットID毎にオフセット値が格納される。なお、offset_frame_numberは、一つ前のオフセットエントリからの差分ビデオフレーム数としてもよい。
図92は、オフセットメタデータの第4のデータ形式を説明する図である。第4のデータ形式は、オフセットメタデータをプレイリスト情報ファイルに格納する他の形式であり、図92の(a)に示すように、前のプレイアイテムと同じかどうかを示すフラグ(is_same_as_previous_playitem)を追加している。BD−ROMのループする動画メニューを作成する場合には、図92の(b)のように同じクリップを参照するプレイアイテムをあたかも無限ループするように、多数のプレイアイテムをプレイリスト内で繰り返す構成がとられる。この場合には、同じオフセットメタデータをプレイアイテム数用意すると、データ量が増加しすぎてしまい2D/3D再生装置のメモリ量の増加が必要となる。そこで、is_same_as_previous_playitemが1の場合には、2D/3D再生装置は一つ前のプレイアイテムのオフセットメタデータ情報を参照することでデータ量の削減が可能となる。
図93は、オフセットメタデータの第5のデータ形式を説明する図である。
第5のデータ形式は、オフセットメタデータをプレイリスト情報ファイルに格納する更に他の形式であり、図93に示すように、同じオフセットメタデータを使うプレイアイテムへの参照ID(ref_playitem_id_of_same_offset_metadata)を追加している。2D/3D再生装置は、ref_playitem_id_of_same_offset_metadataがインバリッドを示す0xFFFFでない場合には、ref_playitem_id_of_same_offset_metadataが指すプレイアイテムと同じオフセットメタデータを適用する。このようにすることで、同じオフセットメタデータを持つ複数プレイアイテムに対して、一つのオフセットメタデータだけを定義すればよくなるためデータ量を圧縮できる。
図94は、オフセットメタデータの第6のデータ形式を説明する図である。
第6のデータ形式は、オフセットメタデータをプレイリスト情報ファイルに格納するまた更に他の形式である。
このデータ形式では、図94に示すように、プレイアイテム単位でループするヘッダと、オフセットメタデータを格納する領域を分けている。プレイアイテムとオフセットメタデータは、offset_block_idで関連付けられている。これにより同じオフセットメタデータを使う複数のプレイアイテムがある場合に1つのオフセットメタデータを定義すればよくなるためデータ量を圧縮できる。また、ヘッダには該当のオフセットメタデータが格納されるファイルのアドレス値(start_address)を格納してもよい。このようにすることで、プレイアイテム単位でのアクセスが容易になる。
尚、図89から図94に示したsyntaxでは、オフセットメタデータのエントリをoffset_direction,offset_valueで7bitとっているが、ある一連のオフセットメタデータに対する差分の形でオフセットメタデータを用意してもよい。こうすることで、offset_direction,offset_valueを小さくすることができる。
なお、その他のデータ形式として、オフセットメタデータをオーディオウォータマークの技術を使ってオーディオストリーム上に埋め込むとしてもよい。または、ビデオウォータマークの技術を使ってビデオストリームに埋め込むとしても良い。
(PGストリーム)
字幕の本数を減らしストリームの帯域増加を抑えるためには、1つのPGストリームを、1plane+Offset方式で使用するPGストリームと、2プレーンL/R方式で使用する左右何れか一方のPGストリームとして供用することが有効である。
しかし、このように構成した場合には、図95に示すように左目用グラフィックス及び右目用グラフィックスの差が大きく奥行きが強い(ユーザ側に飛び出している)場所と、左目用グラフィックス及び右目用グラフィックスの差が小さく奥行きが弱い場所とが遷移する場合に、各グラフィックスは左右に動きを伴うことになる。図95の例で、例えば、奥行きの弱いシーンから、奥行きの強いシーンに字幕データを動かす場合には、左目用グラフィックスは右方向に、右目用グラフィックスは左方向にずれることになる。この左目用グラフィックスを、2D表示用や1plane+Offset方式の字幕に利用した場合には、同様に左側にずれることになり、ユーザに不自然な印象を与えることになる。
そこで、2D表示用字幕および1plane+Offset方式字幕を違和感なく表示するために、図96のように表示位置が固定されるようにコンポジション情報の表示位置を設定する。また、2プレーンL/R方式の左目用PGとして表示するためのオフセット(l_offset)を、コンポジション情報に別途用意する。そして、2プレーンL/R方式で表示する場合には、2D/3D再生装置は、コンポジション情報の表示位置に、上記オフセット値を足して表示する。このように構成することで、2D表示字幕、1plane+Offset方式字幕、2プレーンL/R方式の左目用字幕を同じストリームを利用するようにした場合でも、どの表示モードで表示しても違和感なく表示することが可能となる。
(飛び込み再生の高速化)
図97の(a)は、FileBaseとFileDependentとのエクステントがインターリーブされている構成を示しており、ディスク上のデータ領域R[2]の先頭に付加されている三角形はFileDependentのエントリポイントのディスク上の位置、ディスク上のデータ領域L[2]の先頭に付加されている三角形はFileBaseエントリポイントのディスク上の位置を示す。このとき、2D/3D再生装置は該当のエントリポイントから飛び込み再生を行うような場合には、ディスク上のデータ領域であるR[2]のデータを読み込み、その後、L[2]を読みながらデコードを開始することになる。R[2]のデータ読み込みが完了するまで、次のL[2]を読み出せないためデコード開始できない。
そこで、エントリポイントまでの読み込みから再生までの時間を短縮するために図97の(b)のような構成にする。図97の(b)では、File2Dは、ディスク上のデータ領域のL[0]、L[1]、L[2]for2D、L[3]を指し、FileSSは、ディスク上のデータ領域のL[0]、L[1]、L[2]for3D、L[3]を指し、L[2]for2DとL[2]for3Dは同じデータになるように構成される。このようにすることで、再生経路は異なるが同じデータを読むことができる。さらに図97の(b)では、L[2]for3Dと対応する右目AVクリップのデータは小さい単位でインターリーブされている(矢印10701の範囲)。このように構成することによって、2D/3D再生装置が該当のエントリポイントから再生開始を行う場合には、先頭のFileDependentのエクステントは図97の(a)に示す構成よりも小さくできるため、エントリポイントへの飛込みからデコード開始までの時間を早くすることができる。
(付加情報)
付加情報は、以下の情報要素を含む拡張ストリーム選択テーブルであるとして、プレイリスト情報の拡張情報フィールド内に組み込んでもよい。
『上端帯領域存否フラグ』は、PG_テキスト字幕ストリームの再生時における上端帯領域確保が存在するか否かを指示するフラグである。
『上端帯領域ストリームエントリー』は、PG_テキスト字幕ストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、PG_テキスト字幕ストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおけるPG_テキスト字幕ストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。
『上端帯領域奥行きレファレンス情報』は、上端帯領域で字幕を表示させる場合のPG_テキスト字幕ストリーム用のオフセットシーケンスを参照するためのレファレンス情報であり、上端帯領域で字幕を表示させる場合のPG_テキスト字幕ストリームのためのオフセットシーケンスを指示する。再生装置は、このフィールドによって提供されたオフセットをPGプレーンに適用せねばならない。
『下端帯領域存否フラグ』は、PG_テキスト字幕ストリームの再生時における下端帯領域が存在するか否かを指示するフラグである。
『下端帯領域ストリームエントリー』は、PG_テキスト字幕ストリームの再生パスが帰属しているサブパスを指定するサブパス識別子レファレンス(ref_to_Subpath_id)と、PG_テキスト字幕ストリームが格納されているストリームファイルを指定するストリームファイルレファレンス(ref_to_subClip_entry_id)と、当該ストリームファイルにおけるPG_テキスト字幕ストリームのパケット識別子(ref_to_stream_PID_subclip)とを含む。
『下端帯領域奥行きレファレンス情報』は下端帯領域で字幕を表示させる場合のPG_テキスト字幕ストリーム用のオフセットシーケンスを参照するためのレファレンス情報であり、下端帯領域で字幕を表示させる場合のPG_テキスト字幕ストリームのためのオフセットシーケンスを指示する。再生装置は、このフィールドによって提供されたオフセットをPGプレーンに適用せねばならない。
(光ディスクの再生)
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の記録領域に記録された配信データへのアクセスは半導体メモリーカードが有する制御回路を介してアクセスする必要は必ずしもない。