説明

情報処理装置、情報処理方法、およびプログラム

【課題】所定の単位のデータ毎にインターリーブして記録されている複数のストリームを、他の記録媒体に効率的にコピーする。
【解決手段】光ディスク上においては、L/R videoストリームが所定のデータ単位毎にインターリーブして記録されている。光ディスクに記録されているコンテンツのコピー時、L/R videoストリームの光ディスク上の状態がPlayListファイル#1のMVC_file_typeの値に基づいて特定される。UDF file systemのエクステント共有によってL/R videoストリームを管理するilvtファイルはコピー対象としては指定されず、「00001.m2ts」と「00002.m2ts」がコピー対象として指定される。本発明は、Blu-ray(登録商標) Discプレーヤに適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、所定の単位のデータ毎にインターリーブして記録されている複数のストリームを、他の記録媒体に効率的にコピーすることができるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
近年、立体視が可能な3次元(3D)画像のコンテンツが注目を集めている。3D画像の表示の方式としては、左目用の画像と右目用の画像を交互に表示させるフレームシーケンシャル方式などの種々の方式があるが、いずれの方式を採用する場合であっても、3D画像のコンテンツのデータ量は2D画像のコンテンツのデータ量よりも大きくなる。
【0003】
映画等の高解像度のコンテンツを、データ量の多い3D画像として記録するには大容量の記録媒体が必要である。そのような大容量の記録媒体としては、例えば、Blu-ray(登録商標) Disc(以下、適宜、BDという)があり、3D画像のコンテンツをBDに記録することが考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−195287号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、HDD(Hard Disk Drive)などのローカルストレージをコピー先として、BDに記録されている3D画像のコンテンツのManaged Copyをどのようにして行うのかについてはBD規格では規定されていない。Managed Copyは、BDで採用されている著作権保護技術であるAACSの機能の一つであり、サーバと通信を行って機器の認証を行いながら、DBに記録されているコンテンツのコピーなどを行う技術である。
【0006】
3D画像のコンテンツのビデオストリームは、左目用のビデオストリームと右目用のストリームとから構成される。それらのストリームのファイルシステムにおける管理の仕方によっては、単純にファイルを指定してManaged Copyを行ったのではコピーを効率的に行うことができない場合がある。
【0007】
本発明は、このような状況に鑑みてなされたものであり、所定の単位のデータ毎にインターリーブして記録されている複数のストリームを、他の記録媒体に効率的にコピーすることができるようにするものである。
【課題を解決するための手段】
【0008】
本発明の一側面の情報処理装置は、コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断する処理手段と、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断された場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせる記録制御手段とを備える。
【0009】
前記処理手段には、前記制御情報に含まれる、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているか否かを表す記録状態情報の値を、インターリーブして記録されていないことを表すように変更させ、前記記録制御手段には、値が変更された前記記録状態情報を含む前記制御情報を前記第2の記録媒体に記録させることができる。
【0010】
前記第1の記録媒体はブルーレイディスクであり、前記制御情報は、ブルーレイディスク規格のプレイリストであるようにすることができる。
【0011】
前記記録状態情報は、前記プレイリストを構成する、前記基本ストリームを参照するメインパスに関する情報に含まれるようにすることができる。
【0012】
前記記録状態情報は、拡張フィールドの情報として前記プレイリストに含まれる、前記拡張ストリームを参照するサブパスのタイプを表す情報であるサブパスタイプであるようにすることができる。
【0013】
前記処理手段には、前記拡張フィールドの情報として前記プレイリストに含まれる前記サブパスに関する情報が、前記拡張フィールドとは異なるサブパス用のフィールドの情報として含まれるように前記制御情報を変更させ、前記記録制御手段には、前記サブパスに関する情報の含まれるフィールドが変更された前記制御情報を前記第2の記録媒体に記録させることができる。
【0014】
前記処理手段には、前記基本ストリームの再生時に参照され、前記基本ストリームと対応付けて前記第1の記録媒体に記録されている第1のクリップ情報から、前記基本ストリームを構成する前記所定の単位のデータとしてのソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報を削除させ、前記拡張ストリームの再生時に参照され、前記拡張ストリームと対応付けて前記第1の記録媒体に記録されている第2のクリップ情報から、前記拡張ストリームを構成する前記所定の単位のデータとしてのソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報を削除させることができる。また、前記記録制御手段には、ソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報が削除された前記第1のクリップ情報と前記第2のクリップ情報を前記第2の記録媒体に記録させることができる。
【0015】
本発明の一側面の情報処理方法は、コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断し、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断した場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるステップを含む。
【0016】
本発明の一側面のプログラムは、コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断し、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断した場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるステップを含む処理をコンピュータに実行させる。
【0017】
本発明の一側面においては、コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かが、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断される。また、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断された場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルが指定されて、前記基本ストリームが前記第1の記録媒体から第2の記録媒体にコピーされるとともに、前記第2のファイルが指定されて、前記拡張ストリームが前記第1の記録媒体から第2の記録媒体にコピーされる。
【発明の効果】
【0018】
本発明によれば、所定の単位のデータ毎にインターリーブして記録されている複数のストリームを、他の記録媒体に効率的にコピーすることができる。
【図面の簡単な説明】
【0019】
【図1】本発明を適用した再生装置を含む再生システムの構成例を示す図である。
【図2】撮影の例を示す図である。
【図3】MVCエンコーダの構成例を示すブロック図である。
【図4】画像の参照の例を示す図である。
【図5】TSの構成例を示す図である。
【図6】TSの他の構成例を示す図である。
【図7】光ディスク上のデータの配置の例を示す図である。
【図8】AVストリームの管理構造の例を示す図である。
【図9】Main PathとSub Pathの構造を示す図である。
【図10】光ディスクに記録されるファイルの管理構造の例を示す図である。
【図11】PlayListファイルのシンタクスを示す図である。
【図12】MVC_flagの意味を示す図である。
【図13】MVC_file_typeの意味を示す図である。
【図14】SubPath_typeの意味を示す図である。
【図15】SubPath_entries_extention()のシンタクスを示す図である。
【図16】SubPath_extention()のシンタクスを示す図である。
【図17】SubPath_type_extentionの意味を示す図である。
【図18】STN_table_extention()のシンタクスを示す図である。
【図19】stream_entry()のシンタクスを示す図である。
【図20】PlayItemとSubPlayItemの関係を示す図である。
【図21】再生装置の構成例を示すブロック図である。
【図22】デコード部の構成例を示す図である。
【図23】PlayListファイルの具体例を示す図である。
【図24】clpiファイルのシンタクスを示す図である。
【図25】ファイル管理の概念を示す図である。
【図26】図23のPlayListファイルに従って行われる再生処理について説明するフローチャートである。
【図27】chunk_map()のシンタクスを示す図である。
【図28】chunk_map()の具体例を示す図である。
【図29】データの分離の例を示す図である。
【図30】EP_map()のシンタクスを示す図である。
【図31】PlayListファイルの他の例を示す図である。
【図32】ファイル管理の概念を示す図である。
【図33】図31のPlayListファイルに従って行われる再生処理について説明するフローチャートである。
【図34】PlayListファイルのさらに他の例を示す図である。
【図35】clpiファイルのシンタクスを示す図である。
【図36】ファイル管理の概念を示す図である。
【図37】図34のPlayListファイルに従って行われる再生処理について説明するフローチャートである。
【図38】コピー対象の3Dコンテンツのファイル管理の概念を示す図である。
【図39】問題点について説明する図である。
【図40】コントローラの機能構成例を示すブロック図である。
【図41】図38の3Dコンテンツをコピーする再生装置の処理について説明するフローチャートである。
【図42】MVC_file_typeの値が変更されたPlayListファイルを示す図である。
【図43】chunk_map()が削除されたClip Informationファイルを示す図である。
【図44】コピー後のローカルストレージの状態を示す図である。
【図45】図44の処理によってコピーされた3Dコンテンツを再生する再生装置の処理について説明するフローチャートである。
【図46】コピー対象の3Dコンテンツのファイル管理の概念を示す他の図である。
【図47】SubPath_type_extensionの値の意味を示す図である。
【図48】SubPath_typeの値の意味を示す図である。
【図49】図46の3Dコンテンツをコピーする再生装置の処理について説明するフローチャートである。
【図50】SubPath_type_extensionの値が変更されたPlayListファイルを示す図である。
【図51】chunk_map()が削除されたClip Informationファイルを示す図である。
【図52】図49の処理によってコピーされた3Dコンテンツを再生する再生装置の処理について説明するフローチャートである。
【図53】図46の3Dコンテンツをコピーする再生装置の他の処理について説明するフローチャートである。
【図54】SubPath_extension()の記述の位置が変更されたPlayListファイルを示す図である。
【図55】図53の処理によってコピーされた3Dコンテンツを再生する再生装置の処理について説明するフローチャートである。
【図56】コンピュータのハードウエアの構成例を示すブロック図である。
【発明を実施するための形態】
【0020】
[再生システムの構成例]
図1は、本発明を適用した再生装置1を含む再生システムの構成例を示す図である。
【0021】
この再生システムは、再生装置1と表示装置3がHDMI(High Definition Multimedia Interface)ケーブルなどで接続されることによって構成される。再生装置1には、BD-ROMなどの、BD規格の光ディスクである光ディスク2が装着される。
【0022】
光ディスク2には、視点の数が2つの3D画像を表示するために必要なストリームが記録されている。ストリームを光ディスク2に記録するための符号化の方式として、例えば、H.264 AVC(Advanced Video Coding)/MVC(Multi-view Video coding)が採用される。
【0023】
再生装置1は、光ディスク2に記録されているストリームの3D再生に対応したプレーヤである。再生装置1は、光ディスク2に記録されているストリームを再生し、再生して得られた3D画像をテレビジョン受像機などよりなる表示装置3に表示させる。音声についても同様に再生装置1により再生され、表示装置3に設けられるスピーカなどから出力される。なお、再生装置1は、従来のBDプレーヤと同様に2D再生にも対応している。
【0024】
[H.264 AVC/MVC Profile]
H.264 AVC/MVCでは、Base view videoと呼ばれる画像ストリームと、Dependent view videoと呼ばれる画像ストリームとが定義されている。以下、適宜、H.264 AVC/MVCを単にMVCという。
【0025】
図2は、撮影の例を示す図である。
【0026】
図2に示すように、同じ被写体を対象として、L画像(左視点)用のカメラとR(右視点)画像用のカメラによって撮影が行われる。L画像用のカメラとR画像用のカメラによって撮影された映像のエレメンタリストリームがMVCエンコーダに入力される。
【0027】
図3は、MVCエンコーダの構成例を示すブロック図である。
【0028】
図3に示すように、MVCエンコーダは、H.264/AVCエンコーダ11、H.264/AVCデコーダ12、Dependent view videoエンコーダ13、およびマルチプレクサ14から構成される。
【0029】
L画像用のカメラにより撮影されたL画像のストリームはH.264/AVCエンコーダ11に入力される。また、R画像用のカメラにより撮影されたR画像のストリームはDependent view videoエンコーダ13に入力される。
【0030】
H.264/AVCエンコーダ11は、L画像のストリームを、例えばH.264 AVC/High Profileビデオストリームとして符号化する。H.264/AVCエンコーダ11は、符号化して得られたAVCビデオストリームを、Base view videoストリームとしてH.264/AVCデコーダ12とマルチプレクサ14に出力する。
【0031】
H.264/AVCデコーダ12は、H.264/AVCエンコーダ11から供給されたAVCビデオストリームをデコードし、デコードして得られたL画像のストリームをDependent view videoエンコーダ13に出力する。
【0032】
Dependent view videoエンコーダ13は、H.264/AVCデコーダ12から供給されたL画像のストリームと、外部から入力されたR画像のストリームをエンコードし、Dependent view videoストリームを出力する。
【0033】
Base view videoには、他のストリームを参照画像とする予測符号化が許されていないが、図4に示すように、Dependent view videoには、Base view videoを参照画像とする予測符号化が許されている。例えばL画像をBase view videoとするとともにR画像をDependent view videoとして符号化を行った場合、その結果得られるDependent view videoストリームのデータ量は、Base view videoストリームのデータ量に比較して少なくなる。
【0034】
なお、H.264/AVCでの符号化であるから、Base view videoについて時間方向の予測は行われている。また、Dependent view videoについても、view間の予測とともに、時間方向の予測が行われている。Dependent view videoをデコードするには、エンコード時に参照先とした、対応するBase view videoのデコードが先に終了している必要がある。
【0035】
Dependent view videoエンコーダ13は、このようなview間の予測も用いて符号化して得られたDependent view videoストリームをマルチプレクサ14に出力する。
【0036】
マルチプレクサ14は、H.264/AVCエンコーダ11から供給されたBase view videoストリームと、Dependent view videoエンコーダ13から供給されたDependent view videoストリームとを、例えばMPEG2 TSとして多重化する。Base view videoストリームとDependent view videoストリームは1本のMPEG2 TSに多重化されることもあるし、別々のMPEG2 TSに含まれることもある。
【0037】
マルチプレクサ14は、生成したTS(MPEG2 TS)を出力する。マルチプレクサ14から出力されたTSは、他の管理データとともに記録装置において光ディスク2に記録され、再生装置1に提供される。
【0038】
この例においては、L画像をBase view video、R画像をDependent view videoとしてMVC方式で符号化するものとしたが、反対に、R画像をBase view video、L画像をDependent view videoとして符号化するようにしてもよい。以下、L画像をBase view video、R画像をDependent view videoとして符号化した場合について説明する。
【0039】
再生装置1は、ユーザによる指示などに応じて3D再生を行う場合、Base view videoストリームとDependent view videoストリームを光ディスク2から読み出して再生する。
【0040】
また、再生装置1は、2D再生を行う場合、Base view videoストリームだけを光ディスク2から読み出して再生する。Base view videoストリームはH.264/AVCで符号化されているAVCビデオストリームであるから、BDのフォーマットに対応したプレーヤであれば、そのBase view videoストリームを再生し、2D画像を表示させることが可能になる。
【0041】
[TSの構成例]
図5は、光ディスク2に記録されているTSの構成例を示す図である。
【0042】
図5のMain TSにはBase view video、Dependent view video、Primary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。このように、Dependent view videoストリームが、Base view videoストリームとともに1本のTSであるMain TSに含まれていることもある。
【0043】
Main TSは、少なくともBase view videoストリームを含むTSである。これに対して、Sub TSは、Base view videoストリーム以外のストリームを含み、再生時にMain TSとともに用いられるTSである。光ディスク2には、Main TSの他に、Sub TSも適宜記録される。
【0044】
ビデオと同様に3Dでの表示が可能になるように、字幕などのPG(Presentation Graphics)、メニュー画面などのIG(Interactive Graphics)についても、Base viewとDependent viewのそれぞれのストリームが用意されている。
【0045】
図6は、光ディスク2に記録されているTSの他の構成例を示す図である。
【0046】
図6のMain TSにはBase view video、Primary audio、Base PG、Dependent PG、Base IG、Dependent IGのそれぞれのストリームが多重化されている。
【0047】
一方、Sub TSにはDependent view videoストリームが含まれている。このように、Dependent view videoストリームが、Base view videoストリームとは別のTSに含まれていることもある。
【0048】
図6に示すようにBase view videoストリームとDependent view videoストリームがそれぞれ別のTSに含まれている場合、それぞれのTSファイルは、インターリーブされて光ディスク2に記録される。
【0049】
図7は、Base view videoストリーム(L videoストリーム)を含むTSファイルとDependent view videoストリーム(R videoストリーム)を含むTSファイルの光ディスク2における配置の例を示す図である。
【0050】
図7に示すように、L videoストリームを含むTSファイルとR videoストリームを含むTSファイルは、所定のデータ単位毎に交互に並ぶようにインターリーブ配置され、光ディスク2に記録される。1つのTSファイルに属し、光ディスク2上に連続配置されるソースパケットの集まりをチャンクという。
【0051】
図7において、「R」の文字と数字を付して示すそれぞれのブロックはR videoのチャンクを表し、「L」の文字と数字を付して示すそれぞれのブロックはL videoのチャンクを表す。
【0052】
3D再生時、例えば、R[0],L[0],R[1],L[1],R[2],L[2],R[3],L[3],R[4],L[4],R[5],L[5],・・・の順に光ディスク2から読み出され、L[0],R[0],L[1],R[1],L[2],R[2],L[3],R[3],L[4],R[4],L[5],R[5],・・・の順にデコードされる。上述したように、R videoをデコードするには、エンコード時に参照したL videoが先にデコードされている必要がある。同じ数字が付されているR videoのチャンクとL videoのチャンクは、同じ時間の再生に必要なデータであり、3D再生時にセットで用いられる。
【0053】
すなわち、説明を簡単にするため、コンテンツの再生時間全体を3等分する場合を考える。コンテンツの再生時間全体を3等分する時刻を、再生の開始時刻を0として、時系列順に、t1,t2と表すと、再生の開始時刻から時刻t1までの再生時間に必要な分のL videoのデータが、チャンクL[0]として分割される。
【0054】
また、時刻t1からt2までの再生時間に必要な分のL videoのデータが、チャンクL[1]として分割され、時刻t2から再生の終了時刻までの再生時間に必要な分のL videoのデータが、チャンクL[2]として分割される。
【0055】
R videoストリームについても同様に、再生の開始時刻から時刻t1までの再生時間に必要な分のR videoのデータが、チャンクR[0]として分割される。
【0056】
また、時刻t1からt2までの再生時間に必要な分のR videoのデータが、チャンクR[1]として分割され、時刻t2から再生の終了時刻までの再生時間に必要な分のR videoのデータが、チャンクR[2]として分割される。
【0057】
このようにして分割して得られた各チャンクは、同じ数字が付されたチャンク同士が、R videoのチャンク、L videoのチャンクの順になるように配置され、光ディスク2に記録される。なお、図5に示すように、L videoストリームとR videoストリームがともに1本のTSに含まれている場合、そのTSファイルはインターリーブされずに光ディスク2に記録される。
【0058】
[AVストリームの管理構造]
図8は、再生装置1によるAVストリームの管理構造の例を示す図である。
【0059】
AVストリームの管理は、図8に示すようにPlayListとClipの2つのレイヤを用いて行われる。AVストリームは、光ディスク2ではなく、再生装置1のローカルストレージに記録されていることもある。Clipは、ビデオデータやオーディオデータが多重化されることによって得られたTSであるAVストリームと、対応するClip Information(そのAVストリームに関する属性情報を含むClip Information)とから構成される。
【0060】
AVストリームは時間軸上に展開され、各アクセスポイントは、主に、タイムスタンプでPlayListにおいて指定される。Clip Informationは、AVストリーム中のデコードを開始すべきアドレスを見つけるためなどに使用される。
【0061】
PlayListはAVストリームの再生区間の集まりである。AVストリーム中の1つの再生区間はPlayItemと呼ばれる。PlayItemは、時間軸上の再生区間のIN点とOUT点のペアで表される。PlayListは1つまたは複数のPlayItemにより構成される。
【0062】
図8の左から1番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。
【0063】
左から2番目のPlayListは1つのPlayItemから構成され、それにより、右側のClipに含まれるAVストリーム全体が参照されている。
【0064】
左から3番目のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側のClipに含まれるAVストリームのある部分と、右側のClipに含まれるAVストリームのある部分がそれぞれ参照されている。
【0065】
例えば、左から1番目のPlayListに含まれる左側のPlayItemが再生対象としてディスクナビゲーションプログラムにより指定された場合、そのPlayItemが参照する、左側のClipに含まれるAVストリームの前半部分の再生が行われる。このように、PlayListは、AVストリームの再生を制御するための再生制御情報として用いられる。
【0066】
PlayListの中で、1つ以上のPlayItemの並びによって作られる再生パスをメインパス(Main Path)という。
【0067】
また、PlayListの中で、Main Pathに並行して、1つ以上のSubPlayItemの並びによって構成される再生パスをサブパス(Sub Path)という。
【0068】
図9は、Main PathとSub Pathの構造を示す図である。
【0069】
PlayListは、1つのMain Pathと1つ以上のSub Pathを持つことができる。上述したL videoストリームは、Main Pathを構成するPlayItemにより参照される。また、R videoストリームは、Sub Path(後述するExtension()内のSub Path)を構成するSubPlayItemにより参照される。
【0070】
図9のPlayListは、3つのPlayItemの並びにより構成される1つのMain Pathと、3つのSub Pathを有している。Main Pathを構成するPlayItemには、先頭から順にそれぞれIDが設定される。Sub PathにもそれぞれIDが設定される。
【0071】
図9の例においては、Subpath_id=0のSub Pathには1つのSubPlayItemが含まれ、Subpath_id=1のSub Pathには2つのSubPlayItemが含まれる。また、Subpath_id=2のSub Pathには1つのSubPlayItemが含まれる。
【0072】
あるPlayItemが参照するAVストリームと、そのPlayItemと時間帯が重複する再生区間を指定するSubPlayItemが参照するAVストリームは同期して再生される。PlayList、PlayItem、SubPlayItemを用いたAVストリームの管理については、例えば、特開2008−252740号公報、特開2005−348314号公報に記載されている。
【0073】
[ディレクトリ構造]
図10は、光ディスク2に記録されるファイルの管理構造の例を示す図である。
【0074】
図10に示すように、ファイルはディレクトリ構造により階層的に管理される。光ディスク2上には1つのrootディレクトリが作成される。rootディレクトリの下が、1つの記録再生システムで管理される範囲となる。
【0075】
rootディレクトリの下にはBDMVディレクトリが置かれる。BDMVディレクトリの直下に、「Index.bdmv」の名前が設定されたファイルであるIndexファイルと、「MovieObject.bdmv」の名前が設定されたファイルであるMovieObjectファイルが格納される。
【0076】
BDMVディレクトリの下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ等が設けられる。
【0077】
PLAYLISTディレクトリには、PlayListを記述したファイルであるPlayListファイルが格納される。各PlayListファイルには、5桁の数字と拡張子「.mpls」を組み合わせた名前が設定される。図10に示すPlayListファイルには「00000.mpls」のファイル名が設定されている。
【0078】
CLIPINFディレクトリにはClip Informationを記述したファイルであるClip Informationファイルが格納される。各Clip Informationファイルには、5桁の数字と拡張子「.clpi」を組み合わせた名前が設定される。
【0079】
図10の2つのClip Informationファイルには、それぞれ、「00001.clpi」、「00002.clpi」のファイル名が設定されている。以下、適宜、Clip Informationファイルをclpiファイルという。
【0080】
「00001.clpi」のclpiファイルは、対応するL videoストリームに関する情報が記述されたファイルであり、「00002.clpi」のclpiファイルは、対応するR videoストリームに関する情報が記述されたファイルである。
【0081】
STREAMディレクトリにはストリームファイルが格納される。各ストリームファイルには、5桁の数字と拡張子「.m2ts」を組み合わせた名前、もしくは、5桁の数字と拡張子「.ilvt」を組み合わせた名前が設定される。以下、適宜、拡張子「.m2ts」が設定されたファイルをm2tsファイルといい、拡張子「.ilvt」が設定されたファイルをilvtファイルという。
【0082】
「00001.m2ts」のm2tsファイルはL videoストリームのファイルであり、「00002.m2ts」のm2tsファイルはR videoストリームのファイルである。
【0083】
「00001.ilvt」のilvtファイルは、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブされている場合に、それらのストリームを管理し、3D再生を行うためのファイルである。従って、L videoストリームとR videoストリームが1本のTSに含まれ、それらのm2tsファイルがインターリーブされていない場合、ilvtファイルは光ディスク2に記録されない。
【0084】
図10に示すものの他に、BDMVディレクトリの下には、オーディオストリームのファイルを格納するディレクトリなども設けられる。
【0085】
図10の例においては、L videoに関するClipを構成するm2tsファイルのファイル名は「00001.m2ts」、clpiファイルのファイル名は「00001.clpi」である。また、R videoに関するClipを構成するm2tsファイルのファイル名は「00002.m2ts」、clpiファイルのファイル名は「00002.clpi」である。1つのClipを構成するm2tsファイルのファイル名とclpiファイルのファイル名には同じ数字が含まれる。
【0086】
ilvtファイルのファイル名には、L videoに関するClipを構成するm2tsファイルのファイル名とclpiファイルのファイル名にそれぞれ含まれる5桁の数字と同じ、「00001」が含まれる。これにより、L videoに関するClipを構成するclpiファイルのファイル名から、3D再生を行うときに指定するilvtファイルのファイル名を特定することが可能になる。
【0087】
[各データのシンタクス]
図11は、PlayListファイルのシンタクスを示す図である。
【0088】
説明の便宜上、図11の左側には行数を表す数字と「:」を示している。行数を表す数字と「:」はPlayListを構成するものではない。なお、ここでは、PlayListの主な記述について説明するものとし、詳細な説明は省略する。詳細については、例えばBlu-ray Disc Read Only Format part3に記載されている。
【0089】
1行目のyyyyy.mplsは、このPlayListファイルのファイル名を表す。
【0090】
2行目乃至5行目に示すように、PlayListファイルには、大きく分けて、AppInfoPlayList()、PlayList()、PlayListMark()、ExtensionData()のフィールドから構成される。4行目のPlayListMark()には、チャプタジャンプなどを指令するユーザ操作、またはコマンドなどによるジャンプ先であるマークに関する情報が記述される。
【0091】
7行目乃至11行目がAppInfoPlayList()のフィールドである。AppInfoPlayList()には、9行目に示すように、PlayList中にMVC再生(3D再生)に関する情報が含まれるか否かを表す1ビットのフラグであるMVC_flagが含まれる。なお、PlayListの中に含まれるのではなく、ビデオストリームなどのストリームの中にMVC_flagが含まれるようにしてもよい。
【0092】
図12は、MVC_flagの意味を示す図である。
【0093】
図12に示すように、MVC_flagの値が0であることは、PlayList中に3D再生に関する情報が含まれていないことを表す。すなわち、MVC_flag=0が設定されたPlayListが記録されている光ディスクは3D再生に非対応のディスクということになる。
【0094】
MVC_flagの値が1であることは、PlayList中に3D再生に関する情報が含まれていることを表す。
【0095】
AppInfoPlayList()には、MVC_flagの他に、ランダム再生を行うためのPlayListであるかなどの、PlayListの種類に関する情報が含まれる。
【0096】
12行目乃至25行目がPlayList()のフィールドである。13行目のnumber_of_PlayItemsは、PlayListの中にあるPlayItemの数を表す。図9の例の場合、PlayItemの数は3である。PlayItem_idの値は、PlayListの中でPlayItem()が現れる順に0から割り振られる。15行目乃至19行目のfor文では、PlayItemの数だけPlayItem()が参照される。
【0097】
14行目のnumber_of_SubPathsは、PlayList()の中にあるSub Pathの数を表す。図9の例の場合、Sub Pathの数は3である。SubPath_idの値は、PlayList()の中でSubPath()が現れる順に0から割り振られる。20行目乃至24行目のfor文では、Sub Pathの数だけSubPath()が参照される。
【0098】
26行目乃至33行目が、PlayList()に含まれるPlayItem()の記述になる。27行目のClip_Information_file_nameは、PlayItemが参照するAVストリームを含むClipのclpiファイルの名前を表す。
【0099】
28行目のMVC_file_typeは、MVC_flagの値が1であるときに有効な値を持つ2ビットのデータであり、L videoストリームとR videoストリームのそれぞれの供給元のファイルのタイプを表す。
【0100】
図13は、MVC_file_typeの意味を示す図である。
【0101】
図13に示すように、MVC_file_typeの値が0であることは、L videoストリームとR videoストリームが1本のTSに含まれており、そのTSを管理するm2tsファイルが、Clip_Information_file_nameにより示されることを表す。
【0102】
上述したように、あるClipを構成するm2tsファイルのファイル名とclpiファイルのファイル名には同じ数字が含まれる。Clip_Information_file_nameは、そのファイル名が設定されたclpiファイルと同じClipを構成する、対応するm2tsファイルのファイル名も示すことになる。
【0103】
MVC_file_typeの値が1であることは、Clip_Information_file_nameが示すL videoストリームのm2tsファイル(第1のTSファイル)と、R videoストリームのm2tsファイル(第2のTSファイル)が、光ディスク2上でインターリーブされていることを表す。この場合、L videoストリームとR videoストリームはそれぞれ異なるTSに含まれることになる。
【0104】
MVC_file_typeの値が2であることは、Clip_Information_file_nameが示すL videoストリームのm2tsファイルと、R videoストリームのm2tsファイルの両方、または片方が、再生装置1内のローカルストレージに記録されていることを表す。
【0105】
MVC_file_typeの値の3はリザーブ値である。
【0106】
図11の説明に戻り、30行目のIN_timeはPlayItemの再生区間の開始位置を表し、31行目のOUT_timeは終了位置を表す。
【0107】
32行目のSTN_table()には、PlayItemが参照するAVストリームの情報が含まれる。例えば、PlayItemが参照するAVストリームの情報として、ストリーム番号(ID)、L videoストリームを構成するトランスポートパケットのPIDが含まれる。
【0108】
34行目乃至40行目が、PlayList()に含まれるSubPath()の記述になる。34行目乃至40行目のSubPath()には、PlayItemが参照するAVストリームとともに再生される、R video以外のビデオデータに関する情報やオーディオデータに関する情報が含まれる。
【0109】
35行目のSubPath_typeは、Sub Pathの種類を表す8ビットのデータである。
【0110】
図14は、SubPath_typeの意味を示す図である。
【0111】
図14に示すように、2から7の値によってSubPathの種類が表される。例えば、SubPath_type=2は、スライドショー(Browsable slideshow)再生時に用いられるオーディオデータのSubPathであることを表し、SubPath_type=3は、インタラクティブメニューの表示時のデータのSubPathであることを表す。
【0112】
図11の36行目のnumber_of_SubPlayItemsは、1つのSub Path()の中にあるSubPlayItemの数(エントリー数)を示す8ビットのデータである。例えば、図9のSubPath_id=0のSubPlayItemのnumber_of_SubPlayItemsは1であり、SubPath_id=1のSubPlayItemのnumber_of_SubPlayItemsは2である。37行目乃至39行目のfor文では、SubPlayItemの数だけ、SubPlayItem()が参照される。
【0113】
41行目乃至45行目が、SubPath()に含まれるSubPlayItem()の記述になる。42行目のClip_Information_file_nameは、SubPlayItemが参照するClipのclpiファイルの名前を表す。
【0114】
43行目のSubPlayItem_IN_timeはSubPlayItemの再生区間の開始位置を表し、44行目のSubPlayItem_OUT_timeは終了位置を表す。
【0115】
46行目乃至49行目が、拡張フィールドであるExtensionData()になる。
【0116】
MVC_flagの値が1であるとき、ExtensionData()の中に、SubPath_entries_extension()とSTN_table_extension()が記述される。SubPath_entries_extension()とSTN_table_extension()には、PlayItemが参照するL videoストリームとともに3D再生に用いられる、R videoストリームに関する情報が含まれる。
【0117】
R videoストリームはSubPathが参照するストリームとして管理されるが、このように、R videoストリームに関する情報はSubPath()(図11の34行目)のフィールドには記述されずに、ExtensionData()のフィールドに記述される。
【0118】
R videoストリームに関する情報をSubPath()のフィールドに記述しておいた場合、その記述を3D再生に非対応のプレーヤが読み込んだときに不具合が生じるおそれがある。R videoストリームに関する情報をExtensionData()として記述しておき、その記述については、3D再生に対応したプレーヤが、3D再生を行うときにだけ読み込むようにしておくことにより、そのような不具合が生じるのを防ぐことが可能になる。
【0119】
図15は、ExtensionData()に含まれるSubPath_entries_extension()のシンタクスの例を示す図である。
【0120】
number_of_SubPath_extensionsは、SubPath_extensionの数、すなわち、SubPath_entries_extension()の中に現れるSubPath_extension()の数を表す16ビットのデータである。number_of_SubPath_extensionsに続くfor文では、SubPathの数だけ、SubPath_extension()が参照される。
【0121】
ここで、R videoストリームを参照するSubPathにも、図11の34行目のSubPath()に情報が記述される、R video以外のビデオデータやオーディオデータを参照する通常のSubPathと同様にIDが割り振られる。
【0122】
図15のfor文に示すように、R videoストリームを参照するSubPathのIDは、図11の14行目のnumber_of_SubPathsの値と同じ値から開始され、SubPath_extension()が参照される毎に1ずつインクリメントされる。例えば、図9に示すように通常のSubPathの数が3であり、number_of_SubPaths=3である場合、number_of_SubPath_extensionsが2であるとすると、1つ目のSubPathのIDには3が割り振られ、2つ目のSubPathのIDには4が割り振られる。
【0123】
図16は、図15のSubPath_extension()のシンタクスの例を示す図である。
【0124】
lengthは、lengthのフィールドの直後からSubPath_extension()の最後までのバイト数を示す32ビットのデータである。
【0125】
SubPath_type_extensionは、SubPath_typeを拡張させたものであり、SubPath_extension()に情報が記述されるSubPathの種類を表す8ビットのデータである。
【0126】
図17は、SubPath_type_extensionの意味を示す図である。
【0127】
図17に示すように、SubPath_type_extensionの値の0から7は、それぞれ、図14のSubPath_typeの0から7の意味と同じ意味を表す。
【0128】
SubPath_type_extensionの値の8は、SubPath_type_extension=8が設定されたSubPathがR videoストリームを参照するSubPathであることを表す。また、参照するR videoストリームのm2tsファイルが、PlayItemが参照するL videoストリームのm2tsファイルとは別のファイルであることを表す。
【0129】
図16の説明に戻り、number_of_SubPlayItemsは、SubPath_extension()の中にあるSubPlayItemの数を示す8ビットのデータである。number_of_SubPlayItemsに続くfor文では、SubPlayItemの数だけ、SubPlayItem()が参照される。
【0130】
SubPath_extension()の中のSubPlayItem()の記述は、図11の41行目から45行目に示すSubPlayItem()の記述と同じ記述である。
【0131】
すなわち、SubPath_extension()の中のSubPlayItem()には、SubPlayItemが参照するR videoストリームと同じClipに含まれるclpiファイルのファイル名を示すClip_Information_file_nameが含まれる。また、再生区間の開始位置を表すSubPlayItem_IN_timeと、終了位置を表すSubPlayItem_OUT_timeが含まれる。
【0132】
図18は、ExtensionData()に含まれるSTN_table_extension()のシンタクスの例を示す図である。
【0133】
上述したように、STN_table(図11の32行目)には、PlayItemが参照するL videoストリームを構成するトランスポートパケットのPIDが含まれる。これに対して、STN_table_extension()には、SubPath(SubPath_extension)が参照するR videoストリームを構成するトランスポートパケットのPIDが含まれる。
【0134】
図18に示すように、STN_table_extension()には、STN_table_extension()の長さを表すlengthに続いて、R videoストリームに関する情報として、stream_entry()と、R videoストリームの属性情報であるstream_attributes()が含まれる。
【0135】
図19は、stream_entry()のシンタクスの例を示す図である。
【0136】
図19に示すように、stream_entry()には、stream_entry()の長さを表すlengthに続いて、8ビットの情報であるtypeが含まれる。
【0137】
例えば、typeの値が1であることは、R videoストリームが、PlayItemが参照するL videoストリームとともに1本のTSに含まれることを表す。また、typeの値が2であることは、R videoストリームが、PlayItemが参照するL videoストリームとは別のTSに含まれることを少なくとも表す。
【0138】
typeの値が1である場合、ref_to_stream_PID_of_mainClipが参照される。ref_to_stream_PID_of_mainClipは、L videoストリームとともに1本のTSに含まれる、R videoストリームを構成するトランスポートパケットのPIDを表す。
【0139】
typeの値が2である場合、ref_to_SubPath_id、ref_to_subClip_entry_id、ref_to_stream_PID_of_subClipが参照される。3つの情報のうちのref_to_SubPath_idは、R videoストリームを参照するSubPath(SubPath_extension)のIDを表す。また、ref_to_stream_PID_of_subClipは、ref_to_SubPath_idにより識別されるSubPathが参照するR videoストリームを構成するトランスポートパケットのPIDを表す。
【0140】
図20は、R videoストリームを参照する、SubPath_type_extention=8が設定されたSubPathと、そのSubPathがPlayListにおいて関連付けられている、L videoストリームを参照するMainPathの関係を示す図である。
【0141】
上述したように、各PlayItem()には、PlayItemの再生区間の開始位置を表すIN_timeと終了位置を表すOUT_timeが含まれる(図11の30行目、31行目)。
【0142】
また、上述したように、SubPath_extension()の中のSubPlayItem()には、R videoストリームを参照するSubPathを構成するそれぞれのSubPlayItemについて、再生区間の開始位置を表すSubPlayItem_IN_timeと、終了位置を表すSubPlayItem_OUT_timeが含まれる。
【0143】
図20に示すように、PlayItemの開始位置、終了位置と、そのPlayItemが参照するL videoストリームに関連付けられたR videoストリームを参照するSubPlayItemの開始位置、終了位置は、それぞれ同じ位置になる。
【0144】
例えば、PlayItem_id=0が割り振られたPlayItemのIN_timeとOUT_timeは、それぞれ、PlayItem_id=0が割り振られたPlayItemに関連付けられたSubPlayItem#0のSubPlayItem_IN_time、SubPlayItem_OUT_timeと一致する。
【0145】
以上のように、PlayListには、拡張フィールドであるExtensionData()の中に、SubPathに関する情報が記述されるフィールドであるSubPath()がSubPath_extension()として定義され、また、ストリーム番号(STream Number)に関する情報が記述されるフィールドであるSTN_table()がSTN_table_extension()として定義されている。
【0146】
[再生装置1の構成例]
図21は、再生装置1の構成例を示すブロック図である。
【0147】
コントローラ31は、予め用意されている制御プログラムを実行し、再生装置1の全体の動作を制御する。
【0148】
ディスクドライブ32は、コントローラ31による制御に従って光ディスク2からデータを読み出し、読み出したデータを、コントローラ31、メモリ33、またはデコード部36に出力する。
【0149】
メモリ33は、コントローラ31が各種の処理を実行する上において必要なデータなどを適宜記憶する。
【0150】
ローカルストレージ34は例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)により構成される。ローカルストレージ34には、サーバ22からダウンロードされたR videoストリームなどが記録される。ローカルストレージ34に記録されているストリームもデコード部36に適宜供給される。
【0151】
インターネットインタフェース35は、コントローラ31からの制御に従ってネットワーク21を介してサーバ22と通信を行い、サーバ22からダウンロードしたデータをローカルストレージ34に供給する。
【0152】
サーバ22からは、光ディスク2に記録されているデータをアップデートさせるデータがダウンロードされる。後述するように、ダウンロードしたR videoストリームを光ディスク2に記録されているL videoストリームと併せて用いることでコンテンツの3D再生を行うことも可能とされている。
【0153】
デコード部36は、ディスクドライブ32、またはローカルストレージ34から供給されたストリームをデコードし、得られたビデオ信号を表示装置3に出力する。オーディオ信号も所定の経路を介して表示装置3に出力される。
【0154】
操作入力部37は、ボタン、キー、タッチパネル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成される。操作入力部37はユーザの操作を検出し、検出した操作の内容を表す信号をコントローラ31に供給する。
【0155】
図22は、デコード部36の構成例を示す図である。
【0156】
分離部51は、ディスクドライブ32から供給されたデータを、コントローラ31による制御に従って、Main TSのデータとSub TSのデータに分離する。
【0157】
分離部51は、分離したMain TSのデータをリードバッファ52に出力して記憶させ、Sub TSのデータをリードバッファ55に出力して記憶させる。また、分離部51は、ローカルストレージ34から供給されたSub TSのデータをリードバッファ55に出力して記憶させる。
【0158】
PIDフィルタ53は、リードバッファ52に記憶されているデータから構成されるMain TSのトランスポートパケットをPIDに基づいて振り分ける。コントローラ31からは、PlayListのSTN_table()(図11の32行目)に基づいて特定された、L videoストリームを構成するトランスポートパケットのPIDと、STN_table_extension()のref_to_stream_PID_of_mainClip(図19)に基づいて特定された、R videoストリームを構成するトランスポートパケットのPIDが指定される。
【0159】
PIDフィルタ53は、L videoストリームのトランスポートパケットをリードバッファ52から読み出し、ESバッファ54に出力して記憶させる。ESバッファ54には、L videoのES(Elementary Stream)が記憶される。
【0160】
また、PIDフィルタ53は、L videoストリームとともにR videoストリームがMain TSに多重化されている場合、R videoストリームのトランスポートパケットをPIDに基づいて抽出し、スイッチ57に出力する。
【0161】
PIDフィルタ56は、Sub TSに含まれるR videoストリームのトランスポートパケットをリードバッファ55から読み出し、スイッチ57に出力する。コントローラ31からは、STN_table_extension()のref_to_stream_PID_of_subClip(図19)に基づいて特定された、R videoストリームを構成するトランスポートパケットのPIDが指定される。
【0162】
ここでは、L video、R videoストリームの処理について説明しているが、図5を参照して説明したように、PGやIGなどのグラフィックスのデータがMain TSに多重化されていることがある。同様に、Sub TSにも、PGやIGなどのグラフィックスのデータが多重化されていることがある。
【0163】
PIDフィルタ53とPIDフィルタ56は、適宜、それらのデータをもPIDに基づいて振り分け、所定の出力先に出力する。図22のPIDフィルタ53とPIDフィルタ56のブロック内に示す出力先の端子(丸)には、グラフィックのデータをデコードするデコーダなどが接続される。
【0164】
スイッチ57は、PIDフィルタ53から供給された、Main TSに含まれていたR videoストリームのトランスポートパケットをESバッファ58に出力して記憶させる。また、スイッチ57は、PIDフィルタ56から供給された、Sub TSに含まれていたR videoストリームのトランスポートパケットをESバッファ58に出力して記憶させる。ESバッファ58には、R videoのESが記憶される。
【0165】
スイッチ59は、ESバッファ54に記憶されているL videoのパケットと、ESバッファ58に記憶されているR videoのパケットのうちの、デコードの対象になるパケットをデコーダ60に出力する。DTS(Decoding Time Stamp)などの時刻情報がL videoとR videoのPESパケットに設定されており、その時刻情報に基づいてバッファからの読み出しが行われる。
【0166】
デコーダ60は、スイッチ59から供給されたパケットをデコードし、デコードすることによって得られたL video、またはR videoのビデオ信号を出力する。
【0167】
[PlayListファイルの具体例1]
図23は、PlayListファイルの具体例を示す図である。
【0168】
図23には、図11等に示す情報のうちの一部の情報を示している。後述するPlayListファイルの具体例についても同様である。
【0169】
図23のPlayListファイルは、L videoストリームとR videoストリームがそれぞれ別のTSに含まれ、それらのTSファイルがインターリーブされて光ディスク2に記録されている場合の3D再生を制御するPlayListファイルである。
【0170】
すなわち、図23のAppInfoPlayList()に示すようにMVC_flag=1であり、かつ、PlayItem()に示すようにMVC_file_type=1である。
【0171】
PlayItem()のClip_Information_file_nameは「00001」である。この記述から、L videoのClipを構成するclpiファイルが特定される。また、PlayItem()のIN_timeとOUT_timeから、PlayItemの再生区間の開始位置と終了位置がそれぞれ特定され、STN_table()から、L videoストリームを構成するトランスポートパケットのPIDが特定される。
【0172】
ExtensionData()には、R videoストリームを参照するSubPathに関する情報が記述される。この例においては、通常のSubPathの数が0(number_of_SubPaths(図11の14行目)の値が0)とされており、R videoストリームを参照するSubPathには、SubPath_id=0が割り当てられる。SubPath_extension()中には、R videoストリームを参照するSubPathであることを表すSubPath_type_extension=8が設定される。
【0173】
ExtensionData()のSubPlayItem()のClip_Information_file_nameは「00002」である。この記述から、R videoのClipを構成するclpiファイルが特定される。また、SubPlayItem()のSubPlayItem_IN_timeとSubPlayItem_OUT_timeから、SubPlayItemの再生区間の開始位置と終了位置がそれぞれ特定される。
【0174】
STN_table_extension()から、R videoストリームを参照するSubPathのIDが0であること(ref_to_SubPath_id=0)と、R videoストリームを構成するトランスポートパケットのPID(ref_to_R_video_PID)が特定される。この例の場合、STN_table_extension()のtypeの値は2となる。
【0175】
図24は、clpiファイルのシンタクスを示す図である。
【0176】
図24Aは「00001.clpi」のclpiファイルの例を示す図である。
【0177】
number_of_source_packets1は、「00001.m2ts」のm2tsファイルに含まれるソースパケットの数を表す。
【0178】
EP_mapには、「00001.m2ts」のm2tsファイルに含まれるTSに設定されたエントリポイント(EP)の位置情報が含まれる。
【0179】
chunk_map()には、「00001.m2ts」のm2tsファイルの各チャンクの位置情報が含まれる。各チャンクの位置は、例えばSource Packet Number(SPN)により表される。chunk_map()の具体例については後述する。
【0180】
図24Bは「00002.clpi」のclpiファイルの例を示す図である。
【0181】
「00002.clpi」のclpiファイルにも、「00001.clpi」のclpiファイルと同様に、「00002.m2ts」のm2tsファイルに含まれるソースパケットの数を表すnumber_of_source_packets2、EP_map、およびchunk_map()が含まれる。
【0182】
図25は、ファイル管理の概念を示す図である。
【0183】
図25に示すように、インターリーブされて光ディスク2に記録されているファイルの管理は、物理レイヤ、ファイルシステムレイヤ、アプリケーションレイヤの3層構造の形で行われる。図23のPlayListファイル、図24のclpiファイルは、コンテンツの再生を管理するアプリケーションが扱うアプリケーションレイヤの情報になる。
【0184】
物理レイヤは、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブされて記録されている光ディスク2のレイヤとなる。
【0185】
ファイルシステムレイヤにおいては、アプリケーションが指定したストリームファイル(m2tsファイル、ilvtファイル)と、各ストリームファイルを構成するエクステントの光ディスク2上の位置が対応付けられる。ファイルシステムは例えばUDF file systemである。
【0186】
エクステントは、特定のファイルにより管理されるデータ全体のうち、連続して光ディスク2上に配置されるデータのそれぞれの集まりをいう。
【0187】
すなわち、図25の例の場合、「00001.m2ts」のm2tsファイルにおいては、L[0],L[1]がそれぞれエクステントとなる。「00001.m2ts」のm2tsファイルが読み出しファイルとしてアプリケーションにより指定された場合、L[0],L[1]のそれぞれの光ディスク2上の位置がUDF file systemにより特定され、ディスクドライブ32により読み出される。
【0188】
「00002.m2ts」のm2tsファイルにおいては、R[0],R[1]がそれぞれエクステントとなる。「00002.m2ts」のm2tsファイルが読み出しファイルとしてアプリケーションにより指定された場合、R[0],R[1]のそれぞれの光ディスク2上の位置がUDF file systemにより特定され、ディスクドライブ32により読み出される。
【0189】
「00001.ilvt」のilvtファイルにおいては、R[0],L[0],R[1],L[1]全体が1つのエクステントとなる。「00001.ilvt」のilvtファイルが読み出しファイルとしてアプリケーションにより指定された場合、R[0],L[0],R[1],L[1]の光ディスク2上の位置がUDF file systemにより特定され、ディスクドライブ32により読み出される。
【0190】
[再生処理の例1]
ここで、図26のフローチャートを参照して、図23のPlayListファイルに従って行われる3D再生の処理について説明する。
【0191】
MVC_flag=1である場合、コントローラ31(コントローラ31において実行される、コンテンツの再生を管理するアプリケーション)は、操作部37に対して行われたユーザによる操作に応じて3D再生を開始する。
【0192】
ステップS1において、コントローラ31は、STN_table()の記述から、L videoストリームを構成する、Main TSのトランスポートパケットのPIDを特定する。
【0193】
ステップS2において、コントローラ31は、STN_table_extension()の記述から、R videoストリームを参照するSubPathのSubPath_idの値であるref_to_SubPath_id=0を特定し、また、R videoストリームを構成する、Sub TSのトランスポートパケットのPIDを特定する。
【0194】
ステップS3において、コントローラ31は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0195】
ステップS4において、コントローラ31は、SubPath_entries_extension()の中でSubPath_id=0を持つ、SubPath_type=8が設定されたSubPathのSubPlayItem()の中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0196】
ステップS5において、コントローラ31は、L videoのClipを構成するファイルのファイル名に含まれる数字(00001)と同じ5文字をファイル名に含み、拡張子がilvtである「00001.ilvt」のilvtファイルを特定する。上述したように、ilvtファイルのファイル名には、L videoのClipを構成するm2tsファイル、clpiファイルの名前に含まれる数字と同じ数字が含まれる。
【0197】
ステップS6において、コントローラ31は、ステップS3で特定した「00001.ilvt」を読み出しファイルとし、UDF file systemを通して、ディスクドライブ32に光ディスク2から読み出させる。「00001.ilvt」のilvtファイルのデータとしてディスクドライブ32により読み出されたL videoストリームとR videoストリームのデータは、デコード部36の分離部51に供給される。
【0198】
なお、ランダムアクセスなどが指定されたことにより、EP_mapに含まれる所定のEPからデコードを開始する場合、読み出しファイルのデータのうちの、そのEP以降のデータが読み出される。EP_mapには、各EPの位置を指定するソースパケットの番号などの位置情報が含まれる。
【0199】
ステップS7において、コントローラ31は、分離部51を制御し、「00001.clpi」のclpiファイルのchunk_map()と「00002.clpi」のclpiファイルのchunk_map()に基づいて、光ディスク2から読み出されたデータを、L videoとR videoのデータに分離させる。
【0200】
分離部51により分離されたL videoストリームのデータはリードバッファ52に出力され、R videoストリームのデータはリードバッファ55に出力される。chunk_map()を使って行われるデータの分離については後述する。
【0201】
リードバッファ52に記憶されたL videoストリームのデータは、そのトランスポートパケットがステップS1において特定されたPIDに基づいてPIDフィルタ53により抽出され、ESバッファ54、スイッチ59を介してデコーダ60に供給される。リードバッファ55に記憶されたR videoストリームのデータは、そのトランスポートパケットがステップS2において特定されたPIDに基づいてPIDフィルタ56により抽出され、スイッチ57、ESバッファ58、およびスイッチ59を介してデコーダ60に供給される。
【0202】
ステップS8において、デコーダ60は、スイッチ59から順次供給されるパケットをデコードする(再生する)。
【0203】
L videoストリームとR videoストリームがそれぞれ別のTSに含まれ、それらのTSファイルがインターリーブされて光ディスク2に記録されている場合の3D再生は以上のようにして行われる。
【0204】
[chunk_map()を使ったデータの分離]
図27は、chunk_map()のシンタクスの例を示す図である。
【0205】
number_of_chunksは、参照するチャンクの数を表す。number_of_chunks以降には、ここで指定される数だけチャンクの情報が記述される。
【0206】
SPN_chunk_start[i]は、例えば先頭のチャンクの開始位置を基準として、その基準の位置から各チャンクの開始位置までのSPN(Source Packet Number)(長さ)を表す。各チャンクの開始位置のSPNが、先頭のチャンクのものから順に記述される。
【0207】
図28は、chunk_map()を含む、clpiファイルの具体例を示す図である。
【0208】
図28Aは「00001.clpi」のclpiファイルを示す図であり、number_of_source_packetsは「number_of_source_packets1」とされている。また、chunk_map()のnumber_of_chunksはn+1であり、SPN_chunk_start[i]は0,a1,a2,…,anである。
【0209】
SPN_chunk_start[i]の1番目の値0は、図29の中段に示すように、「00001.m2ts」のm2tsファイルの先頭のチャンクの開始位置を基準として、その基準の位置から、1番目のチャンクであるL[0]の開始位置までのSPNが0であることを表す。
【0210】
2番目の値a1は、基準の位置から、2番目のチャンクであるL[1]の開始位置までのSPNがa1であることを表す。
【0211】
3番目の値a2は、基準の位置から、3番目のチャンクであるL[2]の開始位置までのSPNがa2であることを表す。
【0212】
n+1番目の値anは、基準の位置から、最後のチャンクであるL[n]の開始位置までのSPNがanであることを表す。
【0213】
図28Bは「00002.clpi」のclpiファイルを示す図であり、number_of_source_packetsは「number_of_source_packets2」とされている。また、chunk_map()のnumber_of_chunksはn+1であり、SPN_chunk_start[i]は0,b1,b2,…,bnである。
【0214】
SPN_chunk_start[i]の1番目の値0は、図29の上段に示すように、「00002.m2ts」のm2tsファイルの先頭のチャンクの開始位置を基準として、その基準の位置から、1番目のチャンクであるR[0]の開始位置までのSPNが0であることを表す。
【0215】
2番目の値b1は、基準の位置から、2番目のチャンクであるR[1]の開始位置までのSPNがb1であることを表す。
【0216】
3番目の値b2は、基準の位置から、3番目のチャンクであるR[2]の開始位置までのSPNがb2であることを表す。
【0217】
n+1番目の値bnは、基準の位置から、最後のチャンクであるR[n]の開始位置までのSPNがbnであることを表す。
【0218】
分離部51は、光ディスク2から読み出されたデータが供給された場合、図29の下段に示すように、2つのchunk_map()の記述に基づいて、供給されたデータの先頭からb1に相当するSPN分のデータをR[0]として分離する。「00001.ilvt」のilvtファイルが読み出しファイルとして指定された場合、分離部51には、R[0],L[0],R[1],L[1],・・・,R[n],L[n]の順に各データが供給される。
【0219】
また、分離部51は、R[0]の終わりの位置からa1に相当するSPN分のデータをL[0]として分離し、L[0]の終わりの位置からb2-b1に相当するSPN分のデータをR[1]として分離する。分離部51は、R[1]の終わりの位置からa2-a1に相当するSPN分のデータをL[1]として分離する。
【0220】
同様にして、分離部51は、L[n-1]の終わりの位置から、「00002.clpi」のclpiファイルに記述されるnumber_of_source_packets2の値からbnの値を減算した値に相当するSPN分のデータをR[n]として分離する。分離部51は、R[n]の終わりの位置から、「00001.clpi」のclpiファイルに記述されるnumber_of_source_packets1の値からanの値を減算した値に相当するSPN分のデータをL[n]として分離する。
【0221】
このように、分離部51によるデータの分離は、chunk_map()に記述される各チャンクの長さの情報を用いて行われる。
【0222】
なお、1以外の値がMVC_file_typeに設定されているとき、chunk_map()はオプショナル(あっても無くても良い)となる。1以外の値がMVC_file_typeに設定されたPlayListを読み込んだプレーヤは、chunk_map()がPlayList中にある場合には、そのchunk_map()を無視しなければならない。
【0223】
MVC_file_type=1のとき、L videoストリームとR videoストリームの対応する2つのストリームは、それぞれ同じ数のチャンクに分割される。インターリーブされるR[i],L[i]について、添え字iの値が同じL videoストリームのチャンクとL videoストリームのチャンクは、同じ再生時間を持つ。
【0224】
図30は、clpiファイルに記述されるEP_map()のシンタクスを示す図である。
【0225】
EP_map()はランダムアクセスなどを行うときのデコード開始位置を特定するために参照される。number_of_EP_entriesはEP(エントリポイント)の数を表す。
【0226】
number_of_EP_entries以降の記述が各EPについて用意される。PTS_EP_start[i]はEPのPTSを表し、SPN_EP_start[i]はEPのSPNを表す。このように、EP_mapには、各エントリポイントについてのPTSとSPNが対応付けて登録される。EPが指定されたとき、指定されたEPのPTS_EP_start[i]とSPN_EP_start[i]に基づいて読み出し開始アドレスが特定され、ファイルの読み出しが行われる。
【0227】
[PlayListファイルの具体例2]
図31Aは、PlayListファイルの他の具体例を示す図である。
【0228】
図31AのPlayListは、L videoストリームとR videoストリームが同じTSに含まれる場合の3D再生を制御するPlayListである。すなわち、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルは、光ディスク2上でインターリーブされていない。
【0229】
この場合、図31AのAppInfoPlayList()に示すようにMVC_flag=1であり、かつ、PlayItem()に示すようにMVC_file_type=0である。
【0230】
PlayItem()のClip_Information_file_nameは「00001」である。この記述から、L videoのClipを構成するclpiファイルが特定される。また、PlayItem()のIN_timeとOUT_timeから、PlayItemの再生区間の開始位置と終了位置がそれぞれ特定され、STN_table()から、L videoストリームを構成するトランスポートパケットのPIDが特定される。
【0231】
ExtensionData()のSTN_table_extension()から、R videoストリームを構成するトランスポートパケットのPIDが特定される。この例の場合、STN_table_extension()のtypeの値は1となる。
【0232】
図31Bは、「00001.clpi」のclpiファイルのシンタクスを示す図である。
【0233】
図31Bに示すように、「00001.clpi」のclpiファイルにはEP_mapが含まれる。1以外の値がMVC_file_typeに設定されており、この例においては、clpiファイルにchunk_map()が含まれていない。
【0234】
図32は、図31のファイルに基づいて行われるファイル管理の概念を示す図である。
【0235】
図32に示すように、L videoストリームとR videoストリームを含む1本のTSは、「00001.m2ts」のm2tsファイルによって管理される。
【0236】
「00001.m2ts」のm2tsファイルが読み出しファイルとしてアプリケーションにより指定された場合、「00001.m2ts」のm2tsファイルの記録位置がUDF file systemにより特定され、ディスクドライブ32により読み出される。読み出された「00001.m2ts」のm2tsファイルに含まれるL videoストリームとR videoストリームを構成するそれぞれのトランスポートパケットは、PIDに基づいて、それぞれ分離される。
【0237】
[再生処理の例2]
図33のフローチャートを参照して、図31のPlayListファイルに従って行われる3D再生の処理について説明する。
【0238】
ステップS21において、コントローラ31は、STN_table()の記述から、L videoストリームを構成する、Main TSのトランスポートパケットのPIDを特定する。
【0239】
ステップS22において、コントローラ31は、STN_table_extension()の記述から、R videoストリームを構成する、Main TSのトランスポートパケットのPIDを特定する。
【0240】
ステップS23において、コントローラ31は、PlayItem()の中のClip_Information_file_nameから、L videoストリームとR videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。MVC_flag=1であり、かつ、MVC_file_type=0であることにより、1本のMain TSにL videoストリームとR videoストリームが含まれていることは特定されている。
【0241】
ステップS24において、コントローラ31は、「00001.m2ts」を読み出しファイルとし、UDF file systemを通して、ディスクドライブ32に光ディスク2から読み出させる。ディスクドライブ32により読み出された、「00001.m2ts」のm2tsファイルのデータは、分離部51を介してリードバッファ52に供給され、記憶される。
【0242】
リードバッファ52に記憶されたデータの中から、ステップS21において特定されたPIDに基づいて、L videoストリームのトランスポートパケットがPIDフィルタ53により抽出される。抽出されたトランスポートパケットのデータは、ESバッファ54、スイッチ59を介してデコーダ60に供給される。
【0243】
また、リードバッファ52に記憶されたデータの中から、ステップS22において特定されたPIDに基づいて、R videoストリームのトランスポートパケットがPIDフィルタ53により抽出される。抽出されたトランスポートパケットのデータは、スイッチ57、ESバッファ58、スイッチ59を介してデコーダ60に供給される。
【0244】
ステップS25において、デコーダ60は、スイッチ59から順次供給されるパケットをデコードする(再生する)。
【0245】
L videoストリームとR videoストリームが同じTSに含まれる場合の3D再生は以上のようにして行われる。
【0246】
[PlayListファイルの具体例3]
図34は、PlayListファイルのさらに他の具体例を示す図である。
【0247】
図34のPlayListファイルは、L videoストリームを含むTSが光ディスク2に記録され、R videoストリームを含むTSがローカルストレージ34に記録されている場合の3D再生を制御するPlayListである。例えば、サーバ22からR videoストリームがダウンロードされたとき、光ディスク2に記録されているPlayListはR videoストリームに関する情報を追加するようにして更新され、ローカルストレージ34に記録してコントローラ31により管理される。
【0248】
図34のAppInfoPlayList()に示すようにMVC_flag=1であり、かつ、PlayItem()に示すようにMVC_file_type=2である。
【0249】
PlayItem()のClip_Information_file_nameは「00001」である。この記述から、L videoのClipを構成するclpiファイルが特定される。また、PlayItem()のIN_timeとOUT_timeから、PlayItemの再生区間の開始位置と終了位置がそれぞれ特定され、STN_table()から、L videoストリームを構成するトランスポートパケットのPIDが特定される。
【0250】
ExtensionData()には、R videoストリームを参照するSubPathに関する情報が記述される。この例においても、通常のSubPathの数が0(number_of_SubPaths(図11の14行目)の値が0)とされており、R videoストリームを参照するSubPathには、SubPath_id=0が割り当てられる。図34に示すように、SubPath_extension()中には、R videoストリームを参照するSubPathであることを表すSubPath_type_extension=8が設定される。
【0251】
ExtensionData()のSubPlayItem()のClip_Information_file_nameは「00003」である。この記述から、R videoのClipを構成するclpiファイルが特定される。「00003.clpi」のclpiファイルも、対応するR videoストリームのファイルである「00003.m2ts」のm2tsファイルとともにサーバ22からダウンロードされ、ローカルストレージ34に記憶されている。
【0252】
また、ExtensionData()のSubPlayItem()のSubPlayItem_IN_timeとSubPlayItem_OUT_timeから、SubPlayItemの再生区間の開始位置と終了位置がそれぞれ特定される。STN_table_extension()から、R videoストリームを参照するSubPathのIDが0であること(ref_to_SubPath_id=0)と、R videoストリームを構成するトランスポートパケットのPID(ref_to_R_video_PID)が特定される。この例の場合、STN_table_extension()のtypeの値は2となる。
【0253】
図35は、clpiファイルのシンタクスを示す図である。
【0254】
図35Aは「00001.clpi」のclpiファイルの例を示す図である。図35Aに示すように、「00001.clpi」のclpiファイルにはEP_mapが含まれる。図35Bは「00003.clpi」のclpiファイルの例を示す図である。図35Bに示すように、「00003.clpi」のclpiファイルにもEP_mapが含まれる。
【0255】
例えば、「00001.clpi」のclpiファイルに含まれるEP_mapと「00003.clpi」のclpiファイルに含まれるEP_mapには、コンテンツの先頭の時刻t0を基準としてそれぞれ同じ時刻に設定されたEPの情報が含まれる。「00001.clpi」のclpiファイルに含まれるEP_mapを使用して再生が開始されるL videoストリームの位置と、「00003.clpi」のclpiファイルに含まれるEP_mapを使用して再生が開始されるR videoストリームの位置は、時刻t0を基準とした時間軸上では同じ時刻の位置になる。
【0256】
図36は、図34と図35のファイルを用いて行われるファイル管理の概念を示す図である。
【0257】
図36に示すように、光ディスク2に記録されたL videoストリームを含むTSは、「00001.m2ts」のm2tsファイルによって管理される。また、ローカルストレージ34に記録されたR videoストリームを含むTSは、「00003.m2ts」のm2tsファイルによって管理される。
【0258】
BDにおいては、BDに記録されたデータとローカルストレージに記録されたデータは、BDに記録されたデータを管理する例えばUDF file systemと、ローカルストレージに記録されたデータを管理するファイルシステムとをマージした仮想的なファイルシステムによって管理される。ローカルストレージを内蔵したプレーヤは、そのような仮想的なファイルシステムを生成し、BDに記録されたデータとローカルストレージに記録されたデータを管理する。
【0259】
読み出し対象とするファイルがアプリケーションにより指定された場合、そのファイルがBDに記録されているのか、またはローカルストレージに記録されているのかと、記録メディア上の記録位置を示すアドレスが仮想ファイルシステムにより特定され、特定された記録メディアの、特定されたアドレスからファイルが読み出される。
【0260】
例えば、「00001.m2ts」のm2tsファイルがアプリケーションにより指定された場合、「00001.m2ts」のm2tsファイルが光ディスク2の所定の位置に記録されていることが仮想ファイルシステムにより特定され、ディスクドライブ32により読み出される。
【0261】
また、「00003.m2ts」のm2tsファイルがアプリケーションにより指定された場合、「00003.m2ts」のm2tsファイルがローカルストレージ34の所定の位置に記録されていることが仮想ファイルシステムにより特定され、読み出される。
【0262】
[再生処理の例3]
図37のフローチャートを参照して、図34のPlayListファイルに従って行われる3D再生の処理について説明する。
【0263】
ステップS41において、コントローラ31は、STN_table()の記述から、L videoストリームを構成する、Main TSのトランスポートパケットのPIDを特定する。
【0264】
ステップS42において、コントローラ31は、STN_table_extension()の記述から、R videoストリームを参照するSubPathのSubPath_idの値であるref_to_SubPath_id=0を特定し、また、R videoストリームを構成するトランスポートパケットのPIDを特定する。
【0265】
ステップS43において、コントローラ31は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0266】
ステップS44において、コントローラ31は、SubPath_entries_extension()の中でSubPath_id=0を持つ、SubPath_type=8が設定されたSubPathのSubPlayItem()の中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00003.clpi」として特定する。
【0267】
ステップS45において、コントローラ31は、「00001.m2ts」を読み出しファイルとし、仮想ファイルシステムを通して、ディスクドライブ32に光ディスク2から読み出させる。
【0268】
ステップS46において、コントローラ31は、「00003.m2ts」を読み出しファイルとし、仮想ファイルシステムを通して、ローカルストレージ34から読み出す。
【0269】
ディスクドライブ32により読み出された「00001.m2ts」のm2tsファイルのデータは、分離部51を介してリードバッファ52に供給され、記憶される。リードバッファ52に記憶されたL videoストリームのデータは、そのトランスポートパケットがステップS41において特定されたPIDに基づいてPIDフィルタ53により抽出され、ESバッファ54、スイッチ59を介してデコーダ60に供給される。
【0270】
一方、ローカルストレージ34から読み出された「00003.m2ts」のm2tsファイルのデータは、分離部51を介してリードバッファ55に供給され、記憶される。リードバッファ55に記憶されたR videoストリームのデータは、そのトランスポートパケットがステップS42において特定されたPIDに基づいてPIDフィルタ56により抽出され、スイッチ57、ESバッファ58、およびスイッチ59を介してデコーダ60に供給される。
【0271】
ステップS47において、デコーダ60は、スイッチ59から順次供給されるパケットをデコードする(再生する)。
【0272】
L videoストリームを含むTSが光ディスク2に記録され、R videoストリームを含むTSがローカルストレージ34に記録されている場合の3D再生は以上のようにして行われる。
【0273】
<Managed Copyについて>
[実施の形態1]
光ディスク2に記録されている3D画像のコンテンツ(3Dコンテンツ)を、Managed Copyによってローカルストレージ34にコピーすることについて説明する。
【0274】
光ディスク2に記録されている3Dコンテンツをローカルストレージ34にコピーするとき、適宜、サーバ22と、再生装置1のコントローラ31の間で認証が行われる。サーバ22は、光ディスク2に記録されている3DコンテンツのManaged Copyを行う場合の認証用のサーバである。
【0275】
図38は、コピー対象の3Dコンテンツのファイル管理の概念を示す図である。
【0276】
図25等を参照して説明したように、光ディスク2に記録されているデータの管理は、物理レイヤ、ファイルシステムレイヤ、アプリケーションレイヤの3層構造の形で行われる。
【0277】
アプリケーションレイヤの情報として図38に示すPlayListファイル#1は、図23のPlayListファイルと同じものである。
【0278】
すなわち、PlayListファイル#1は、L videoストリームとR videoストリームがそれぞれ別のTSに含まれ、それらのTSファイル(m2tsファイル)がインターリーブされて光ディスク2に記録されている場合の3D再生を制御するPlayListファイルである。MVC_flagの値は1であり、MVC_file_typeの値も1である。ExtensionData()には、R videoストリームを参照するSubPathに関する情報が記述される。
【0279】
また、図38に示すClip Informationファイル#11、#12は、それぞれ、図24Aのclpiファイル、図24Bのclpiファイルと同じである。
【0280】
Clip Informationファイル#11はL videoのClipを構成するclpiファイルである。Clip Informationファイル#11には、number_of_source_packets1、EP_map、chunk_map()が含まれる。number_of_source_packets1は「00001.m2ts」のm2tsファイルに含まれるソースパケットの数を表し、Clip Informationファイル#11のEP_mapは「00001.m2ts」のm2tsファイルに設定されたエントリポイントの位置を表す。Clip Informationファイル#11のchunk_map()は「00001.m2ts」のm2tsファイルの各チャンクの位置を表す。
【0281】
Clip Informationファイル#12はR videoのClipを構成するclpiファイルである。Clip Informationファイル#12には、number_of_source_packets2、EP_map、chunk_map()が含まれる。number_of_source_packets2は「00002.m2ts」のm2tsファイルに含まれるソースパケットの数を表し、Clip Informationファイル#12のEP_mapは「00002.m2ts」のm2tsファイルに設定されたエントリポイントの位置を表す。Clip Informationファイル#12のchunk_map()は「00002.m2ts」のm2tsファイルの各チャンクの位置を表す。
【0282】
ファイルシステムレイヤの情報として図38に示す「00001.m2ts」、「00002.m2ts」の各m2tsファイルと「00001.ilvt」のilvtファイルは、図25の各ファイルと同じである。
【0283】
「00001.m2ts」のm2tsファイルはL videoストリームを管理するファイルであり、「00002.m2ts」のm2tsファイルはR videoストリームを管理するファイルである。「00001.ilvt」のilvtファイルは、UDF file systemのエクステント共有の機能によって、所定のデータ単位毎にインターリーブして記録されているL videoストリームのm2tsファイルとR videoストリームのm2tsファイルを管理するファイルである。
【0284】
L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されている場合、L videoストリームとR videoストリームは3つのファイルによって管理されることになる。
【0285】
物理レイヤの情報として図38に示すように、光ディスク2上においては、L videoストリームを構成するチャンクと、R videoストリームを構成するチャンクがインターリーブして記録されている。
【0286】
このような管理構造を有する3Dコンテンツをローカルストレージ34にコピーする場合について説明する。ローカルストレージ34が対応するファイルシステムは例えばFAT(File Allocation Table)であり、エクステント共有がサポートされていないものとする。
【0287】
PlayListファイル#1の記述に基づいて上述したようにして特定可能なファイルである「00001.m2ts」、「00002.m2ts」、「00001.ilvt」を光ディスク2から読み出し、ローカルストレージ34にコピーすることを考える。
【0288】
この場合、図39に示すように、ローカルストレージ34には、「00001.m2ts」のm2tsファイルによって管理されるL videoストリームと、「00002.m2ts」のm2tsファイルによって管理されるR videoストリームがコピーされる。また、「00001.ilvt」のilvtファイルによって管理される、インターリーブされているL video,R videoストリームがそれぞれコピーされる。図39の例においては、「00001.clpi」、「00002.clpi」の2つのclpiファイルも、それぞれ「00001.m2ts」、「00002.m2ts」の2つのm2tsファイルに対応付けてコピーされている。
【0289】
この結果、光ディスク2にインターリーブして記録されているL videoストリームとR videoストリームのデータ量が25GBであるとした場合、ローカルストレージ34には、2倍のデータ量となる50GBのデータが記録されることになる。
【0290】
L videoストリームとR videoストリームをインターリーブして光ディスク2に記録する理由は、3D画像を表示するためにはL videoのデータと、それを参照して符号化されているR videoのデータを交互に光ディスク2から読み出す必要があるところ、光ディスク2の読み出し速度が遅く、L videoストリーム全体の後にR videoストリーム全体を記録するといったように、それぞれを異なる領域に記録した場合にはシークに時間がかかってしまい、データの読み出しが再生に間に合わなくなるためである。
【0291】
HDDやSSDであるローカルストレージ34は光ディスク2と較べて読み出し速度が速い記録媒体であるから、L videoストリームとR videoストリームをそれぞれ異なる領域に記録した場合であっても、再生に間に合うようにデータを読み出すことが可能である。「00001.ilvt」のilvtファイルを読み出しファイルとして指定してコピーされた、インターリーブされているL video,R videoストリームは、ローカルストレージ34の容量の観点からも無駄なデータといえる。
【0292】
再生装置1においては、このような無駄なデータをコピーすることなく、光ディスク2に記録されている3Dコンテンツのコピーが効率的に行われる。
【0293】
図40は、コントローラ31の機能構成例を示すブロック図である。
【0294】
図40に示すように、コントローラ31においては、データ取得部71、情報処理部72、記録制御部73、および再生制御部74が実現される。図40に示す機能部のうちの少なくとも一部は、所定のプログラムがコントローラ31内の図示せぬCPU(Central Processing Unit)により実行されることによって実現される。図40の各部により、光ディスク2に記録されている3Dコンテンツのコピーと、ローカルストレージ34にコピーした3Dコンテンツの再生が行われる。
【0295】
データ取得部71は、ディスクドライブ32を制御し、各種のデータを光ディスク2から読み出す。例えば、データ取得部71は、コピー対象の3Dコンテンツの再生制御情報であるPlayListファイルを光ディスク2から読み出して取得し、情報処理部72に出力する。
【0296】
また、データ取得部71は、L videoとR videoのClipのclpiファイルを読み出して情報処理部72に出力するとともに、情報処理部72による制御に従って、L videoとR videoのClipのm2tsファイルを読み出して記録制御部73に出力する。
【0297】
情報処理部72は、データ取得部71から供給されたPlayListファイルに含まれるMVC_file_typeの値に基づいて、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルが所定のデータ単位でインターリーブして光ディスク2上に記録されているか否かを判断する。
【0298】
図13を参照して説明したように、MVC_file_typeの値が1であることは、L videoストリームのm2tsファイルと、R videoストリームのm2tsファイルが、光ディスク2上でインターリーブして記録されていることを表す。情報処理部72は、MVC_file_typeの値が1である場合には、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されていると判断する。また、情報処理部72は、MVC_file_typeの値が1以外の値である場合には、インターリーブして記録されていないと判断する。
【0299】
情報処理部72は、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されていると判断した場合、L videoストリームを管理するm2tsファイルと、R videoストリームを管理するm2tsファイルのそれぞれの読み出しをデータ取得部71に行わせる。データ取得部71により読み出されたm2tsファイルは記録制御部73に供給され、ローカルストレージ34に記録される(コピーされる)。
【0300】
また、情報処理部72は、ローカルストレージ34にコピーしたm2tsファイルに対応するclpiファイルからchunk_map()を削除し、chunk_map()を削除したclpiファイルを記録制御部73に出力する。
【0301】
さらに、情報処理部72は、MVC_file_typeの値を1から2に変更し、MVC_file_typeの値を変更したPlayListファイルを記録制御部73に出力する。MVC_file_typeの値が変更されたPlayListファイルは、ローカルストレージ34にコピーしたストリームの再生制御情報として用いられる。
【0302】
記録制御部73は、データ取得部71から供給されたL videoストリームを管理するm2tsファイルとR videoストリームを管理するm2tsファイルをローカルストレージ34に記録する。また、記録制御部73は、情報処理部72により内容が変更されたPlayListファイルと、chunk_map()が削除されたclpiファイルをローカルストレージ34に記録する。
【0303】
再生制御部74は、ローカルストレージ34にコピーされた3Dコンテンツの再生が指示された場合、コピーした3Dコンテンツの再生を、ローカルストレージ34に記録されている新たなPlayListファイルに基づいて制御する。なお、図26、図33、図37を参照して説明したそれぞれの再生処理も、再生制御部74により行われる。
【0304】
[コピー処理の例]
ここで、図41のフローチャートを参照して、光ディスク2に記録されている図38の3Dコンテンツをローカルストレージ34にコピーする再生装置1の処理について説明する。
【0305】
ステップS101において、データ取得部71は、コピー対象の3DコンテンツのPlayListファイルであるPlayListファイル#1を光ディスク2から読み出す。PlayListファイル#1はデータ取得部71により取得され、情報処理部72に供給される。
【0306】
ステップS102において、情報処理部72は、MVC_file_typeの値が1であることに基づいて、PlayListファイル#1においてilvtファイルが参照されていることを認識する。PlayListファイルにおいてilvtファイルが参照されているということは、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されていることを意味する。
【0307】
ステップS103において、情報処理部72は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。PlayListファイル#1においては、PlayItem()のClip_Information_file_nameは「00001」とされている、この記述から、上述したようにL videoのClipを構成するclpiファイルのファイル名が特定される。
【0308】
ステップS104において、情報処理部72は、SubPath_entries_extension()の中で、SubPath_id=0が設定されるとともにSubPath_type_extension=8が設定された、R videoストリームを参照するSubPathを特定する。また、情報処理部72は、特定したSubPathのSubPlayItem()の中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0309】
ステップS105において、データ取得部71は、情報処理部72により特定されたファイル名に基づいて、Clip Informationファイル#11と#12を光ディスク2から読み出す。Clip Informationファイル#11のファイル名は「00001.clpi」であり、Clip Informationファイル#12のファイル名は「00002.clpi」である。
【0310】
ステップS106において、情報処理部72は、L videoのClipを構成するファイル(m2tsファイル、clpiファイル)のファイル名に含まれる数字(00001)と同じ5文字をファイル名に含み、拡張子がilvtである「00001.ilvt」を特定する。ここでファイル名が特定されたilvtファイルは、コピーの対象にならないファイルとして扱われる。
【0311】
ステップS107において、情報処理部72は、データ取得部71を制御し、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34にコピーする。
【0312】
ステップS108において、情報処理部72は、データ取得部71を制御し、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34にコピーする。
【0313】
ステップS109において、情報処理部72は、ステップS105で読み出された「00001.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#11として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#11をローカルストレージ34にコピーする。
【0314】
ステップS110において、情報処理部72は、ステップS105で読み出された「00002.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#12として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#12をローカルストレージ34にコピーする。
【0315】
ステップS111において、情報処理部72は、PlayListファイル#1のMVC_file_typeの値を1から2に変更し、新しいPlayListファイル#1として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいPlayListファイル#1をローカルストレージ34にコピーする。
【0316】
図42は、MVC_file_typeの値が変更されたPlayListファイル#1を示す図である。
【0317】
下線で示すように、MVC_file_typeの値は、情報処理部72により1から2に変更される。図13を参照して説明したように、MVC_file_typeの値が2であることは、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルの両方または片方が、ローカルストレージ34に記録されていることを表す。
【0318】
図42の記述を含むPlayListファイル#1が、L videoストリームを管理するm2tsファイル、R videoストリームを管理するm2tsファイルとともにローカルストレージ34に記録され、コピーされた3Dコンテンツの再生制御情報として用いられる。
【0319】
図43は、chunk_map()が削除されたClip Informationファイル#11と#12を示す図である。
【0320】
図43に示すように、Clip Informationファイル#11,#12にそれぞれ含まれていたchunk_map()は情報処理部72により削除される。図43の記述を含むClip Informationファイル#11が、L videoのClipを構成するclpiファイルとして、L videoストリームを管理するm2tsファイルに対応付けてローカルストレージ34に記録される。また、図43の記述を含むClip Informationファイル#12が、R videoのClipを構成するclpiファイルとして、R videoストリームを管理するm2tsファイルに対応付けてローカルストレージ34に記録される。
【0321】
図44は、コピー後のローカルストレージ34の状態を示す図である。
【0322】
図41の処理によってコピーが行われた後のローカルストレージ34には、「00001.m2ts」のm2tsファイルによって管理されるL videoストリームと、「00002.m2ts」のm2tsファイルによって管理されるR videoストリームが記録される。また、「00001.clpi」のclpiファイル(Clip Informationファイル#11)が「00001.m2ts」のm2tsファイルと対応付けて記録され、「00002.clpi」のclpiファイル(Clip Informationファイル#12)が「00002.m2ts」のm2tsファイルと対応付けて記録される。
【0323】
PlayListファイル#1もローカルストレージ34に記録される。図44に示すように、「00001.ilvt」のilvtファイルによって管理される、インターリーブして記録されているL videoストリームとR videoストリームはコピーされない。
【0324】
このように、インターリーブして光ディスク2に記録されているストリームをコピーせずに、m2tsファイルによって管理されるL videoストリームとR videoストリームだけをコピーすることによって、効率的にコピーを行うことが可能になる。光ディスク2にインターリーブして記録されているL videoストリームとR videoストリームの全体のデータ量が25GBである場合、ローカルストレージ34には、それと同じ量のデータが記録されることになる。
【0325】
また、PlayListファイルとclpiファイルの内容を変更することによって、コピーした3Dコンテンツを変更後の情報に基づいて再生することが可能になる。図28、図29を参照して説明したように、clpiファイルに含まれるchunk_map()はインターリーブして記録されているデータの読み出しに用いられる情報である。ローカルストレージ34においてはL videoストリームとR videoストリームがインターリーブして記録されていないから、chunk_map()は不要な情報となり、コピー時にclpiファイルから削除される。
【0326】
[コピーされた3Dコンテンツの再生処理の例]
図45のフローチャートを参照して、図44の処理によってローカルストレージ34にコピーされた3Dコンテンツを再生する再生装置1の処理について説明する。
【0327】
ステップS121において、再生制御部74は、再生対象の3DコンテンツのPlayListファイル#1(図42のPlayListファイル#1)をローカルストレージ34から読み出す。
【0328】
ステップS122において、再生制御部74は、PlayListファイル#1のMVC_file_typeの値が2であることに基づいて、R videoストリームのm2tsファイルが、L videoストリームのm2tsファイルとは別のファイルであることを認識する。
【0329】
ステップS123において、再生制御部74は、STN_table()の記述から、L videoストリームを含むTSのトランスポートパケットのPIDを特定する。この処理は、例えば図26のステップS1の処理に対応する。
【0330】
ステップS124において、再生制御部74は、STN_table_extension()の記述から、R videoストリームを参照するSubPathのIDであるref_to_SubPath_id=0を特定し、R videoストリームを含むTSのトランスポートパケットのPIDを特定する。この処理は、例えば図26のステップS2の処理に対応する。
【0331】
ステップS125において、再生制御部74は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。この処理は、例えば図26のステップS3の処理に対応する。
【0332】
ステップS126において、再生制御部74は、SubPath_entries_extension()の中で、SubPath_id=0が設定されるとともにSubPath_type=8が設定されたSubPathを特定する。また、再生制御部74は、特定したSubPathのSubPlayItem()中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。この処理は、例えば図26のステップS4の処理に対応する。
【0333】
ステップS127において、再生制御部74は、特定したファイル名に基づいてClip Informationファイル#11と#12をローカルストレージ34から読み出す。Clip Informationファイル#11と#12は、いずれも、図43に示すようにchunk_map()が削除されたものである。
【0334】
ステップS128において、再生制御部74は、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34から読み出す。
【0335】
ステップS129において、再生制御部74は、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34から読み出す。
【0336】
ステップS130において、再生制御部74は、ローカルストレージ34から読み出したストリームをデコード部36に出力し、再生させる。ローカルストレージ34から読み出されたストリームの再生は、上述した処理と同様にして行われる。
【0337】
すなわち、デコード部36に供給されたL videoストリームのデータは、図22の分離部51を介してリードバッファ52に出力され、R videoストリームのデータはリードバッファ55に出力される。
【0338】
リードバッファ52に記憶されたL videoストリームのトランスポートパケットがステップS123において特定されたPIDに基づいてPIDフィルタ53により抽出され、ESバッファ54、スイッチ59を介してデコーダ60に供給される。リードバッファ55に記憶されたR videoストリームのトランスポートパケットがステップS124において特定されたPIDに基づいてPIDフィルタ56により抽出され、スイッチ57、ESバッファ58、およびスイッチ59を介してデコーダ60に供給される。
【0339】
デコーダ60においては、スイッチ59から順次供給されるパケットがデコードされ、L videoストリーム、R videoストリームの再生が行われる。
【0340】
光ディスク2からローカルストレージ34にコピーされた3Dコンテンツの再生は以上のようにして行われる。
【0341】
[実施の形態2]
以上においては、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されているか否かがMVC_file_typeの値に基づいて判断されるものとしたが、他の情報に基づいて判断されるようにしてもよい。
【0342】
図46は、コピー対象の3Dコンテンツのファイル管理の概念を示す他の図である。
【0343】
図46のPlayListファイル#21においては、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されているか否かが、ExtensionData()に含まれるSubPath_type_extensionによって表される。図46に示すように、PlayListファイル#21には、MVC_file_typeが含まれていない。また、MVC_flagも含まれていない。
【0344】
MVC_file_typeとMVC_flagが含まれていない点を除いて、図46のPlayListファイル#21は、図38のPlayListファイル#1と同じである。
【0345】
この場合、SubPath_type_extensionの値の意味は図47に示すものになる。
【0346】
図47に示すように、SubPath_type_extensionの値の意味は、基本的には図17を参照して説明した各値の意味と同じであるが、下線で示す意味が、SubPath_type_extension=8の意味として追加される。
【0347】
すなわち、MVC_file_typeが含まれていないPlayListファイル#21におけるSubPath_type_extension=8は、SubPath_type_extension=8が設定されたSubPathがR videoストリームを参照するSubPathであることを表す。また、参照するR videoストリームのm2tsファイルが、PlayItemが参照するL videoストリームのm2tsファイルとは別のファイルであることを表す。さらに、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されていることを表す。
【0348】
再生装置1は、SubPath_type_extensionの値から、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されているか否かを判断することが可能になる。
【0349】
また、SubPath()のフィールド(図11の34行目乃至40行目)に含まれる通常のSubPath_typeの値の意味は図48に示すものになる。
【0350】
図48に示すように、SubPath_typeの値の意味は、基本的には図14を参照して説明した各値の意味と同じであるが、下線で示す意味が、SubPath_type=5の意味として追加される。
【0351】
すなわち、MVC_file_typeが含まれていないPlayListファイル#21におけるSubPath_type=5は、SubPath_type=5が設定されたSubPathが、R videoストリームを参照するSubPathであることを表す。また、PlayItemが参照するL videoストリームのm2tsファイルと、R videoストリームのm2tsファイルは別のファイルであり、R videoストリームのm2tsファイルが、ローカルストレージから供給されることを表す。
【0352】
図48に示すSubPath_type=0乃至7の値の意味は、SubPath_type_extension=0乃至7の値の意味としても用いられる。
【0353】
図46の説明に戻り、図46のClip Informationファイル#31と#32はそれぞれ図38のClip Informationファイル#11と#12と同じである。また、図46に示すファイルシステムレイヤと物理レイヤの内容も、図38に示す内容と同じである。
【0354】
[コピー処理の例1]
ここで、図49のフローチャートを参照して、光ディスク2に記録されている図46の3Dコンテンツをローカルストレージ34にコピーする再生装置1の処理について説明する。
【0355】
ステップS141において、データ取得部71は、コピー対象の3DコンテンツのPlayListファイルであるPlayListファイル#21を光ディスク2から読み出す。PlayListファイル#21はデータ取得部71により取得され、情報処理部72に供給される。
【0356】
ステップS142において、情報処理部72は、PlayListファイル#21のSubPath_type_extensionの値が8であることに基づいて、ilvtファイルを参照していることを認識する。
【0357】
ステップS143において、情報処理部72は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0358】
ステップS144において、情報処理部72は、SubPath_entries_extension()の中で、SubPath_id=0が設定されるとともにSubPath_type_extension=8が設定されたSubPathを特定する。また、情報処理部72は、特定したSubPathのSubPlayItem()中のClip_Information_file_nameから、R videoストリームを含むTSのm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0359】
ステップS145において、データ取得部71は、情報処理部72により特定されたファイル名に基づいて、Clip Informationファイル#31と#32を光ディスク2から読み出す。
【0360】
ステップS146において、情報処理部72は、L videoのClipを構成するファイルのファイル名に含まれる数字(00001)と同じ5文字をファイル名に含み、拡張子がilvtである「00001.ilvt」を特定する。
【0361】
ステップS147において、情報処理部72は、データ取得部71を制御し、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34にコピーする。
【0362】
ステップS148において、情報処理部72は、データ取得部71を制御し、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34にコピーする。
【0363】
ステップS149において、情報処理部72は、ステップS145で読み出された「00001.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#31として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#31をローカルストレージ34にコピーする。
【0364】
ステップS150において、情報処理部72は、ステップS145で読み出された「00002.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#32として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#32をローカルストレージ34にコピーする。
【0365】
ステップS151において、情報処理部72は、PlayListファイル#21のExtensionData()のフィールドに含まれるSubPath_type_extensionの値を8から5に変更し、新しいPlayListファイル#21として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいPlayListファイル#21をローカルストレージ34にコピーする。
【0366】
図50は、SubPath_type_extensionの値が変更されたPlayListファイル#21を示す図である。
【0367】
下線で示すように、SubPath_type_extensionの値は、情報処理部72により8から5に変更される。図50の記述を含むPlayListファイル#21が、L videoストリームを管理するm2tsファイル、R videoストリームを管理するm2tsファイルとともにローカルストレージ34に記録され、コピーされた3Dコンテンツの再生制御情報として用いられる。
【0368】
図51は、chunk_map()が削除されたClip Informationファイル#31と#32を示す図である。図51に示すClip Informationファイル#31,#32は、図43に示すClip Informationファイル#11,#12とそれぞれ同じである。
【0369】
図49の処理によってコピーが行われた後のローカルストレージ34の状態は、図44に示す状態と同じ状態である。
【0370】
すなわち、ローカルストレージ34には、「00001.m2ts」によって管理されるL videoストリームと、「00002.m2ts」によって管理されるR videoストリームが記録される。また、「00001.clpi」のclpiファイル(Clip Informationファイル#31)が「00001.m2ts」のm2tsファイルと対応付けて記録され、「00002.clpi」のclpiファイル(Clip Informationファイル#32)が「00002.m2ts」のm2tsファイルと対応付けて記録される。
【0371】
これにより、L videoストリームのm2tsファイルとR videoストリームのm2tsファイルがインターリーブして光ディスク2に記録されているか否かをSubPath_type_extensionに基づいて判断し、効率的にコピーを行うことが可能になる。
【0372】
[コピーされた3Dコンテンツの再生処理の例1]
図52のフローチャートを参照して、図49の処理によってローカルストレージ34にコピーされた3Dコンテンツを再生する再生装置1の処理について説明する。
【0373】
ステップS161において、再生制御部74は、再生対象の3DコンテンツのPlayListファイル#21(図50のPlayListファイル#21)をローカルストレージ34から読み出す。
【0374】
ステップS162において、再生制御部74は、PlayListファイル#21のSubPath_type_extensionの値が5であることに基づいて、R videoストリームのm2tsファイルが、L videoストリームのm2tsファイルとは別のファイルであることを認識する。
【0375】
ステップS163において、再生制御部74は、STN_table()の記述から、L videoストリームを含むTSのトランスポートパケットのPIDを特定する。
【0376】
ステップS164において、再生制御部74は、STN_table_extension()の記述から、R videoストリームを参照するSubPathのIDであるref_to_SubPath_id=0を特定し、R videoストリームを含むTSのトランスポートパケットのPIDを特定する。
【0377】
ステップS165において、再生制御部74は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むTSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0378】
ステップS166において、再生制御部74は、SubPath_entries_extension()の中で、SubPath_id=0が設定されるとともにSubPath_type=8が設定されたSubPathを特定する。また、特定したSubPathのSubPlayItem()中のClip_Information_file_nameから、R videoストリームを含むTSのm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0379】
ステップS167において、再生制御部74は、特定したファイル名に基づいてClip Informationファイル#31と#32をローカルストレージ34から読み出す。Clip Informationファイル#31と#32は、いずれも、図51に示すようにchunk_map()が削除されたものである。
【0380】
ステップS168において、再生制御部74は、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34から読み出す。
【0381】
ステップS169において、再生制御部74は、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34から読み出す。
【0382】
ステップS170において、再生制御部74は、ローカルストレージ34から読み出したストリームをデコード部36に出力し、再生させる。ローカルストレージ34から読み出されたストリームの再生は、図45のステップS131の処理と同様にして行われる。
【0383】
[コピー処理の例2]
コピー時にPlayListファイル#21に加えられる変更として、図49の処理においてはSubPath_type_extensionの値の変更が行われるものとしたが、SubPath_extension()の記述をExtensionData()のフィールドからSubPath()のフィールドに移すような変更が行われるようにしてもよい。
【0384】
R videoストリームを参照するSubPathに関する記述としてExtensionData()のフィールドに含まれるSubPath_entries_extension()とSTN_table_extension()のうちのSTN_table_extension()の方は、そのまま、ExtensionData()のフィールドに記述される。
【0385】
図11を参照して説明すると、47行目のSubPath_entries_extension()内のSubPath_extension()の情報(図16)が、34行目乃至40行目のSubPath()内の情報として移動することになる。そのようにして内容が変更されたPlayListファイル#21が、新たなPlayListファイル#21としてローカルストレージ34に記録される。
【0386】
図53のフローチャートを参照して、光ディスク2に記録されている図46の3Dコンテンツをローカルストレージ34にコピーする再生装置1の他の処理について説明する。
【0387】
図53の処理においては、SubPath_extension()内の情報がSubPath()内の情報として書き換えられたPlayListファイル#21がコピーされる。PlayListファイル#21の書き換えの内容が異なる点を除いて、図53の処理は、図49を参照して説明した処理と同様の処理である。
【0388】
ステップS181において、データ取得部71は、コピー対象の3DコンテンツのPlayListファイルであるPlayListファイル#21を光ディスク2から読み出す。
【0389】
ステップS182において、情報処理部72は、PlayListファイル#21のSubPath_type_extensionの値が8であることに基づいて、ilvtファイルを参照していることを認識する。
【0390】
ステップS183において、情報処理部72は、PlayListファイル#21のPlayItem()の中のClip_Information_file_nameから、L videoストリームを含むMain TSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0391】
ステップS184において、情報処理部72は、SubPath_entries_extension()の中で、SubPath_id=0が設定されるとともにSubPath_type_extension=8が設定されたSubPathを特定する。また、情報処理部72は、特定したSubPathのSubPlayItem()中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0392】
ステップS185において、データ取得部71は、Clip Informationファイル#31と#32を光ディスク2から読み出す。
【0393】
ステップS186において、情報処理部72は、L videoのClipを構成するファイルのファイル名に含まれる数字(00001)と同じ5文字をファイル名に含み、拡張子がilvtである「00001.ilvt」を特定する。
【0394】
ステップS187において、情報処理部72は、データ取得部71を制御し、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34にコピーする。
【0395】
ステップS188において、情報処理部72は、データ取得部71を制御し、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」を読み出しファイルとして指定し、光ディスク2から読み出させる。記録制御部73は、データ取得部71により読み出された「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34にコピーする。
【0396】
ステップS189において、情報処理部72は、ステップS185で読み出された「00001.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#31として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#31をローカルストレージ34にコピーする。
【0397】
ステップS190において、情報処理部72は、ステップS185で読み出された「00002.clpi」のclpiファイルからchunk_map()を削除し、新しいClip Informationファイル#32として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいClip Informationファイル#32をローカルストレージ34にコピーする。
【0398】
ステップS191において、情報処理部72は、PlayListファイル#21のSubPath_type_extensionの値を8から5に変更する。また、情報処理部72は、ExtensionData()内のSubPath_extension()の記述をSubPath()に記述し、新しいPlayListファイル#21として記録制御部73に出力する。記録制御部73は、情報処理部72から供給された新しいPlayListファイル#21をローカルストレージ34にコピーする。
【0399】
図54は、SubPath_extension()の記述の位置が変更されたPlayListファイル#21を示す図である。
【0400】
下線で示すように、SubPath_typeの値は、情報処理部72により5として設定される。また、SubPath_extension()の中に記述されていたSubPlayItem()の記述が、SubPath()内に記述される。SubPath()内のSubPlayItem()には、SubPlayItemが参照するR videoストリームに対応するclpiファイルのファイル名、再生区間の開始位置を表すSubPlayItem_IN_time、および終了位置を表すSubPlayItem_OUT_timeが含まれる。
【0401】
図54の記述を含むPlayListファイル#21が、L videoストリームを管理するm2tsファイル、R videoストリームを管理するm2tsファイルとともにローカルストレージ34に記録され、コピーされた3Dコンテンツの再生制御情報として用いられる。
【0402】
ローカルストレージ34にコピーされるClip Informationファイル#31と#32は、図51に示すClip Informationファイル#11と#12とそれぞれ同じである。
【0403】
[コピーされた3Dコンテンツの再生処理の例2]
図55のフローチャートを参照して、図53の処理によってローカルストレージ34にコピーされた3Dコンテンツを再生する再生装置1の処理について説明する。
【0404】
ステップS201において、再生制御部74は、再生対象のPlayListファイル#21(図54のPlayListファイル#21)をローカルストレージ34から読み出す。
【0405】
ステップS202において、再生制御部74は、PlayListファイル#21のSubPath_typeの値が5であることに基づいて、R videoストリームのm2tsファイルが、L videoストリームのm2tsファイルとは別のファイルであることを認識する。
【0406】
図48を参照して説明したように、SubPath_typeの値が5であることは、PlayItemが参照するL videoストリームのm2tsファイルとR videoストリームのm2tsファイルが別のファイルであり、R videoストリームのm2tsファイルが、ローカルストレージから供給されることを表す。
【0407】
ステップS203乃至S210の処理は、図52のステップS163乃至S170の処理と同様の処理である。ステップS203において、再生制御部74は、STN_table()の記述から、L videoストリームを含むTSのトランスポートパケットのPIDを特定する。
【0408】
ステップS204において、再生制御部74は、STN_table_extension()の記述から、R videoストリームを参照するSubPathのIDであるref_to_SubPath_id=0を特定し、R videoストリームを含むTSのトランスポートパケットのPIDを特定する。
【0409】
ステップS205において、再生制御部74は、PlayItem()の中のClip_Information_file_nameから、L videoストリームを含むTSのm2tsファイルに対応するclpiファイルのファイル名を「00001.clpi」として特定する。
【0410】
ステップS206において、再生制御部74は、SubPath()の中で、SubPath_id=0が設定されるとともにSubPath_type=5が設定されたSubPathを特定する。また、再生制御部74は、特定したSubPathのSubPlayItem()中のClip_Information_file_nameから、R videoストリームを含むm2tsファイルに対応するclpiファイルのファイル名を「00002.clpi」として特定する。
【0411】
ステップS207において、再生制御部74は、特定したファイル名に基づいて、Clip Informationファイル#31と#32をローカルストレージ34から読み出す。Clip Informationファイル#31と#32は、いずれも、chunk_map()が削除されたものである。
【0412】
ステップS208において、再生制御部74は、「00001.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00001.m2ts」のm2tsファイル、すなわち、L videoストリームをローカルストレージ34から読み出す。
【0413】
ステップS209において、再生制御部74は、「00002.clpi」に含まれる数字と同じ5文字をファイル名に含み、拡張子がm2tsである「00002.m2ts」のm2tsファイル、すなわち、R videoストリームをローカルストレージ34から読み出す。
【0414】
ステップS210において、再生制御部74は、ローカルストレージ34から読み出したストリームをデコード部36に出力し、再生させる。
【0415】
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0416】
図56は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0417】
CPU(Central Processing Unit)151、ROM(Read Only Memory)152、RAM(Random Access Memory)153は、バス154により相互に接続されている。
【0418】
バス154には、さらに、入出力インタフェース155が接続されている。入出力インタフェース155には、キーボード、マウスなどよりなる入力部156、ディスプレイ、スピーカなどよりなる出力部157が接続される。また、入出力インタフェース155には、ハードディスクや不揮発性のメモリなどよりなる記憶部158、ネットワークインタフェースなどよりなる通信部159、リムーバブルメディア161を駆動するドライブ160が接続される。
【0419】
以上のように構成されるコンピュータでは、CPU151が、例えば、記憶部158に記憶されているプログラムを入出力インタフェース155及びバス154を介してRAM153にロードして実行することにより、上述した一連の処理が行われる。
【0420】
CPU151が実行するプログラムは、例えばリムーバブルメディア161に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部158にインストールされる。
【0421】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0422】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0423】
1 再生装置, 2 光ディスク, 3 表示装置, 11 H.264/AVCエンコーダ, 12 H.264/AVCデコーダ, 13 Dependent view videoエンコーダ, 14 マルチプレクサ, 31 コントローラ, 32 ディスクドライブ, 33 メモリ, 34 ローカルストレージ, 35 インターネットインタフェース, 36 デコード部, 37 操作入力部, 71 データ取得部, 72 情報処理部, 73 記録制御部, 74 再生制御部

【特許請求の範囲】
【請求項1】
コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断する処理手段と、
前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断された場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせる記録制御手段と
を備える情報処理装置。
【請求項2】
前記処理手段は、前記制御情報に含まれる、前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているか否かを表す記録状態情報の値を、インターリーブして記録されていないことを表すように変更し、
前記記録制御手段は、値が変更された前記記録状態情報を含む前記制御情報を前記第2の記録媒体に記録させる
請求項1に記載の情報処理装置。
【請求項3】
前記第1の記録媒体はブルーレイディスクであり、
前記制御情報は、ブルーレイディスク規格のプレイリストである
請求項2に記載の情報処理装置。
【請求項4】
前記記録状態情報は、前記プレイリストを構成する、前記基本ストリームを参照するメインパスに関する情報に含まれる
請求項3に記載の情報処理装置。
【請求項5】
前記記録状態情報は、拡張フィールドの情報として前記プレイリストに含まれる、前記拡張ストリームを参照するサブパスのタイプを表す情報であるサブパスタイプである
請求項3に記載の情報処理装置。
【請求項6】
前記処理手段は、前記拡張フィールドの情報として前記プレイリストに含まれる前記サブパスに関する情報が、前記拡張フィールドとは異なるサブパス用のフィールドの情報として含まれるように前記制御情報を変更し、
前記記録制御手段は、前記サブパスに関する情報の含まれるフィールドが変更された前記制御情報を前記第2の記録媒体に記録させる
請求項5に記載の情報処理装置。
【請求項7】
前記処理手段は、
前記基本ストリームの再生時に参照され、前記基本ストリームと対応付けて前記第1の記録媒体に記録されている第1のクリップ情報から、前記基本ストリームを構成する前記所定の単位のデータとしてのソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報を削除し、
前記拡張ストリームの再生時に参照され、前記拡張ストリームと対応付けて前記第1の記録媒体に記録されている第2のクリップ情報から、前記拡張ストリームを構成する前記所定の単位のデータとしてのソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報を削除し、
前記記録制御手段は、ソースパケットの集まりのそれぞれの前記第1の記録媒体上の位置に関する情報が削除された前記第1のクリップ情報と前記第2のクリップ情報を前記第2の記録媒体に記録させる
請求項3に記載の情報処理装置。
【請求項8】
コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断し、
前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断した場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせる
ステップを含む情報処理方法。
【請求項9】
コピー対象のコンテンツのビデオストリームを構成する、単独で再生が可能な基本ストリームと、前記基本ストリームと併せて再生に用いられる拡張ストリームが、所定の単位のデータ毎にインターリーブして第1の記録媒体に記録されているか否かを、前記第1の記録媒体に記録されている、前記コンテンツの再生を制御する情報である制御情報に基づいて判断し、
前記基本ストリームと前記拡張ストリームが前記所定の単位のデータ毎にインターリーブして記録されているとして判断した場合、前記基本ストリームを管理する第1のファイルと、前記拡張ストリームを管理する第2のファイルと、前記基本ストリームおよび前記拡張ストリームを管理する第3のファイルとのうちの前記第1のファイルを指定して、前記基本ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせるとともに、前記第2のファイルを指定して、前記拡張ストリームを前記第1の記録媒体から第2の記録媒体にコピーさせる
ステップを含む処理をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図44】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図49】
image rotate

【図50】
image rotate

【図51】
image rotate

【図52】
image rotate

【図53】
image rotate

【図54】
image rotate

【図55】
image rotate

【図56】
image rotate


【公開番号】特開2012−10024(P2012−10024A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2010−142864(P2010−142864)
【出願日】平成22年6月23日(2010.6.23)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】