(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した技術に関して課題が生じることを見出した。その課題について、以下、詳細に説明する。
映像データを記録した情報記録媒体の代表格は、DVD(以下、「Standard Difinition(SD)−DVD」ともいう。)である。以下に従来のDVDについて説明する。
図1は、SD−DVDの構造を示す図である。図1の下段に示すように、DVDディスク上にはリードインからリードアウトまでの間に論理アドレス空間が設けられている。その論理アドレス空間には先頭からファイルシステムのボリューム情報が記録され、続いて映像音声などのアプリケーションデータが記録されている。
ファイルシステムとは、ISO9660やUniversal Disc Format(UDF)等の規格により定められたデータを管理する仕組みのことであり、ディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みである。
日常使っているパーソナルコンピュータ(PC)の場合でも、File Allocation Tables(FAT)またはNT File System(NTFS)と呼ばれるファイルシステムにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。
SD−DVDの場合、UDF及びISO9660の両方のファイルシステムが使用されている。両方を合わせて「UDFブリッジ」とも呼ばれる。記録されているデータはUDFまたはISO9660どちらのファイルシステムドライバによってもデータの読み出しができるようになっている。なお、ここで取り扱うDVDはパッケージメディア用のROMディスクであり、物理的に書き込みが不可能である。
DVD上に記録されたデータは、UDFブリッジを通して、図1左上に示すようなディレクトリまたはファイルとして見ることができる。ルートディレクトリ(図1における「ROOT」)の直下に「VIDEO_TS」と呼ばれるディレクトリが置かれ、ここにDVDのアプリケーションデータが記録されている。アプリケーションデータは、複数のファイルとして記録され、主なファイルとして以下の種類のファイルがある。
VIDEO_TS.IFO ディスク再生制御情報ファイル
VTS_01_0.IFO ビデオタイトルセット#1再生制御情報ファイル
VTS_01_0.VOB ビデオタイトルセット#1ストリームファイル
.....
上記例に示すように2つの拡張子が規定されている。「IFO」は再生制御情報が記録されたファイルであることを示す拡張子であり、「VOB」はAVデータであるMPEGストリームが記録されたファイルであることを示す拡張子である。
再生制御情報とは、DVDで採用されたインタラクティビティ(ユーザの操作に応じて再生を動的に変化させる技術)を実現するための情報や、メタデータのような、AVデータに付属する情報などのことである。また、DVDでは一般的に再生制御情報のことをナビゲーション情報と呼ぶことがある。
再生制御情報ファイルは、ディスク全体を管理する「VIDEO_TS.IFO」と、個々のビデオタイトルセット毎の再生制御情報である「VTS_01_0.IFO」がある。なお、DVDでは複数のタイトル、言い換えれば複数の異なる映画や楽曲を1枚のディスクに記録することが可能である。
ここで、ファイル名ボディにある「01」はビデオタイトルセットの番号を示しており、例えば、ビデオタイトルセット#2の場合は、「VTS_02_0.IFO」となる。
図1の右上部は、DVDのアプリケーション層でのDVDナビゲーション空間であり、前述した再生制御情報が展開された論理構造空間である。「VIDEO_TS.IFO」内の情報は、VIDEO Manager Information(VMGI)として、「VTS_01_0.IFO」または、他のビデオタイトルセット毎に存在する再生制御情報はVideo Title Set Information(VTSI)としてDVDナビゲーション空間に展開される。
VTSIの中にはProgram Chain(PGC)と呼ばれる再生シーケンスの情報であるProgram Chain Information(PGCI)が記述されている。PGCIは、Cellの集合とコマンドと呼ばれる一種のプログラミング情報によって構成されている。
Cell自身はVOB(Video Objectの略であり、MPEGストリームを指す)の一部区間または全部区間を指定する情報であり、Cellの再生は、当該VOBのCellによって指定された区間を再生することを意味している。
コマンドは、DVDの仮想マシンによって処理されるものであり、例えば、ウェブページを表示するブラウザ上で実行されるJava(登録商標)Scriptなどに近いものである。しかしながらJava(登録商標)Scriptが論理演算の他にウィンドウやブラウザの制御(例えば、新しいブラウザのウィンドウを開くなど)を行うのに対して、DVDのコマンドは、論理演算の他にAVタイトルの再生制御、例えば、再生するチャプターの指定などを実行するだけのものである点で異なっている。
Cellはディスク上に記録されているVOBの開始及び終了アドレス(論理アドレス)をその内部情報として有しており、プレーヤは、Cellに記述されたVOBの開始及び終了アドレス情報を使ってデータの読み出し、再生を実行する。
図2は、AVデータであるMPEGストリーム中に埋め込まれているナビゲーション情報を説明する概要図である。
SD−DVDの特長であるインタラクティビティは前述した「VIDEO_TS.IFO」や「VTS_01_0.IFO」などに記録されているナビゲーション情報だけによって実現されているのではなく、幾つかの重要な情報はナビゲーション・パック(ナビパックまたは、NV_PCKという。)と呼ばれる専用キャリアを使いVOB内に映像、音声データと一緒に多重化されている。
ここでは簡単なインタラクティビティの例としてメニュー画面について説明する。メニュー画面上には、幾つかのボタンが現れ、それぞれのボタンには当該ボタンが選択実行された時の処理が定義されている。
また、メニュー画面上では一つのボタンが選択されており(選択ボタン上に半透明色がオーバーレイされることで該ボタンがハイライトされ、該ボタンが選択状態であることをユーザに示す)、ユーザは、リモコンの上下左右キーを使って、選択状態のボタンを上下左右の何れかのボタンに移動させることが出来る。
リモコンの上下左右キーを使って、選択実行したいボタンまでハイライトを移動させ、決定する(決定キーを押す)ことによって対応するコマンドのプログラムが実行される。一般的には対応するタイトルやチャプターの再生がコマンドによって実行されている。
図2の左上部はNV_PCKに格納される情報の概要を示している。NV_PCK内には、ハイライトカラー情報と個々のボタン情報などが含まれている。ハイライトカラー情報には、カラーパレット情報が記述され、オーバーレイ表示されるハイライトの半透明色が指定される。
ボタン情報には、個々のボタンの位置情報である矩形領域情報と、当該ボタンから他のボタンへの移動情報(ユーザの上下左右キー操作それぞれに対応する移動先ボタンの指定)と、ボタンコマンド情報(当該ボタンが決定された時に実行されるコマンド)とが記述されている。
メニュー画面上のハイライトは、図2の右上部に示すように、オーバーレイ画像として作られる。オーバーレイ画像は、ボタン情報の矩形領域情報にカラーパレット情報の色を付した物である。このオーバーレイ画像は図2の右部に示す背景画像と合成されて画面上に表示される。
前述のようにして、DVDではメニュー画面を実現している。また、何故、ナビゲーションデータの一部をNV_PCKを使ってストリーム中に埋め込んでいるのかについては、以下の理由からである。
すなわち、ストリームと同期して動的にメニュー情報を更新、例えば、映画再生中の途中5分〜10分の間にだけメニュー画面を表示するといった、同期タイミングが問題となりやすい処理を問題なく実現できるようにするためである。
また、もう一つの大きな理由は、NV_PCKには特殊再生を支援するための情報を格納し、DVD再生時の早送り、巻き戻しなどの非通常再生時にも円滑にAVデータをデコードし再生させる等、ユーザの操作性を向上させるためである。
図3は、DVDにおけるVOBの構成を示す概要図である。図に示すように、映像、音声、字幕などのデータ(図3の(1))は、MPEGシステム(ISO/IEC13818−1)規格に基づいて、パケット及びパック化し(図3の(2))、それぞれを多重化して1本のMPEGプログラムストリームにしている(図3の(3))。
また、前述した通りインタラクティブを実現するためのボタンコマンドを含んだNV_PCKも一緒に多重化をされている。
MPEGシステムの多重化の特徴として、多重化する個々のデータは、そのデコード順に基づくビット列になっているが、多重化されるデータ間、即ち、映像、音声、字幕の間は必ずしも再生順、言い換えればデコード順に基づいてビット列が形成されているわけではないことが挙げられる。
これはMPEGシステムストリームのデコーダモデル(図3の(4)、一般にSystem Target Decoder、またはSTDと呼ばれる)が多重化を解いた後に個々のエレメンタリストリームに対応するデコーダバッファを持ち、デコードタイミングまでに一時的にデータを蓄積している事に由来している。
このデコーダバッファは、個々のエレメンタリストリーム毎にサイズが異なり、映像に対しては、232kB、音声に対しては4kB、字幕に対しては52kBをそれぞれ有している。
このため、各デコーダバッファへのデータ入力タイミングは個々のエレメンタリストリームで異なるため、MPEGシステムストリームとしてビット列を形成する順番と表示(デコード)されるタイミングにずれが生じている。
即ち、映像データと並んで多重化されている字幕データが必ずしも同一タイミングでデコードされているわけでは無い。
ここで、ブルーレイディスク(Blu−ray(登録商標) Disc)のような大容量記録メディアにおいては、非常に高品位な映像情報を格納できる可能性がある。なお、Blu−ray(登録商標) Discは、BDまたはBD−ROMとも称される。
例えば、4K(3840x2160ピクセルの解像度を持つ映像情報)またはHDR(High Dynamic Rangeと一般に呼ばれる高輝度映像情報)などの映像情報をBDに格納することができると考えられる。なお、従来の標準輝度映像情報は、SDR(Standard Dynamic Range)と一般に呼ばれる。
ここで、HDR対応のテレビと、HDRに非対応(SDRのみに対応)のテレビとの両方でコンテンツを再生するために、HDRとSDRとが両方記録されるBDがある。このようなBDにおいては、ビデオストリームの選択などの再生制御を簡素化することが課題である。
本発明者は、上記課題を解決するために、下記の改善策を検討した。
本発明の一態様に係る記録媒体は、再生環境に応じて選択的に用いられる、標準輝度範囲のビデオストリーム及び前記標準輝度範囲よりも輝度範囲の広い高輝度範囲のビデオストリームと、前記再生環境に応じて選択的に用いられる、前記標準輝度範囲の字幕ストリーム及び前記高輝度範囲の字幕ストリームと、コンテンツの再生制御情報が格納されるプレイリストファイルであって、メインストリームに関する前記再生制御情報が格納される管理領域、及び、拡張領域を含むプレイリストファイルとが記録され、前記管理領域には、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを組み合わせて再生することが指定された第一再生制御情報が格納され、前記拡張領域には、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを組み合わせて再生することが指定された第二再生制御情報が格納される。
このような構成の記録媒体を再生する再生装置は、高輝度範囲のビデオストリームを選択して再生する場合には、管理領域に格納された第一再生制御情報を読み出せばよい。一方、再生装置は、標準輝度範囲のビデオストリームを選択して再生する場合には、拡張領域に格納された第二再生制御情報を読み出せばよい。これにより、再生装置は、高輝度範囲のビデオストリームとほぼ同様の処理で標準輝度範囲のビデオストリームの再生を行うことができる。
また、高輝度範囲のビデオストリームには、高輝度範囲の字幕ストリームが組み合わされているため、HDRビデオストリームにSDR字幕ストリームが組み合わされるといったことが生じない。
このように、上記記録媒体によれば、ビデオストリームの選択などの再生制御が簡素化される。上記記録媒体によれば、当該記録媒体を再生する再生装置の、ビデオストリーム選択処理及び再生処理を容易にすることができる。
また、前記第二再生制御情報の一部は、前記第一再生制御情報と共通のデータ構造を有してもよい。
これにより、再生装置は、高輝度範囲のビデオストリームとほぼ同様の処理で標準輝度範囲のビデオストリームの再生を行うことができる。また、システムのオーサリングが容易であるという利点、及び、プレーヤの実装/動作検証が容易である(コストを削減できる)という利点がある。
また、前記記録媒体には、さらに、ビデオストリームに含まれる独立して復号可能なピクチャの位置を示すマップ情報が格納されるマップ領域及び拡張マップ領域を含む、管理情報ファイルが記録され、前記マップ領域には、前記高輝度範囲のビデオストリームに含まれる独立して復号可能なピクチャの前記高輝度範囲のビデオストリーム内の位置を示す第一マップ情報が格納され、前記拡張マップ領域には、前記標準輝度範囲のビデオストリームに含まれる独立して復号可能なピクチャの前記標準輝度範囲のビデオストリーム内の位置を示す第二マップ情報が格納されてもよい。
このような構成の記録媒体を再生する再生装置は、高輝度範囲のビデオストリームを選択してランダムアクセス再生等を行うときには、マップ領域内の第一マップ情報を読み出せばよく、SDRビデオストリームを選択してランダムアクセス再生等を行うときには、拡張マップ領域内の第二マップ情報を読み出せばよい。つまり、このようなBDによれば、当該BDを再生する再生装置の、ビデオストリーム選択処理及び再生処理を、ランダムアクセス再生(特殊再生)等を行う場合においても容易にすることができる。
また、前記記録媒体には、さらに、前記メインストリームのファイルと同時に再生されるサブストリームに関する前記再生制御情報が格納されるサブプレイリストファイルが記録され、前記サブプレイリストファイルには、前記高輝度範囲のビデオストリームの輝度範囲を拡張するための拡張ビデオストリームに関する第三再生制御情報が格納されてもよい。
このような構成の記録媒体を再生する再生装置は、管理領域内の第一制御情報とサブプレイリスト内の第三制御情報とを読み出すことにより、高輝度範囲のビデオストリームと拡張ストリームとを同時に再生することができる。つまり、このようなBDによれば、当該BDを再生するプレーヤの、高輝度範囲のビデオストリームの拡張処理を容易にすることができる。
また、前記記録媒体には、さらに、前記メインストリームのファイルと同時に再生されるサブストリームに関する前記再生制御情報が格納されるサブプレイリストファイルが記録され、前記サブプレイリストファイルには、前記高輝度範囲のビデオストリームの輝度範囲を拡張するための拡張ビデオストリームに関する第三再生制御情報が格納され、前記マップ領域には、前記第一マップ情報と、前記拡張ビデオストリームに含まれる独立して復号可能なピクチャの前記拡張ビデオストリーム内の位置を示す第三マップ情報が格納されてもよい。
このような構成の記録媒体を再生する再生装置は、管理領域内の第一制御情報とサブプレイリスト内の第三制御情報とを読み出すことにより、高輝度範囲のビデオストリームと拡張ストリームとを同時に再生することができる。つまり、このようなBDによれば、当該BDを再生する再生装置の、高輝度範囲のビデオストリームの拡張処理を容易にすることができる。
また、再生装置は、ランダムアクセス再生等を行うときには、マップ領域内の情報のみをさらに読み出せばよい。つまり、このようなBDによれば、高輝度範囲のビデオストリームを拡張し、かつ、ランダムアクセス再生等を行う場合において、当該BDを再生する再生装置の再生処理を容易にすることができる。
本発明の一態様に係る再生方法は、記録媒体からコンテンツを読み出して再生する再生方法であって、前記記録媒体には、再生環境に応じて選択的に用いられる、標準輝度範囲のビデオストリーム及び前記標準輝度範囲よりも輝度範囲の広い高輝度範囲のビデオストリームと、前記再生環境に応じて選択的に用いられる、前記標準輝度範囲の字幕ストリーム及び前記高輝度範囲の字幕ストリームと、前記コンテンツの再生制御情報が格納されるプレイリストファイルであって、メインストリームに関する前記再生制御情報が格納される管理領域、及び、拡張領域を含むプレイリストファイルとが記録され、前記管理領域には、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを組み合わせて再生することが指定された第一再生制御情報が格納され、前記拡張領域には、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを組み合わせて再生することが指定された第二再生制御情報が格納され、前記再生方法は、前記コンテンツを前記高輝度範囲のコンテンツとして再生する場合には、前記第一再生制御情報に基づいて、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを読み出して再生し、前記コンテンツを前記標準輝度範囲のコンテンツとして再生する場合には、前記第二再生制御情報に基づいて、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを読み出して再生する。
また、前記第二再生制御情報の一部は、前記第一再生制御情報と共通のデータ構造を有してもよい。
また、前記記録媒体には、さらに、ビデオストリームに含まれる独立して復号可能なピクチャの位置を示すマップ情報が格納されるマップ領域及び拡張マップ領域を含む、管理情報ファイルが記録され、前記マップ領域には、前記高輝度範囲のビデオストリームに含まれる独立して復号可能なピクチャの前記高輝度範囲のビデオストリーム内の位置を示す第一マップ情報が格納され、前記拡張マップ領域には、前記標準輝度範囲のビデオストリームに含まれる独立して復号可能なピクチャの前記標準輝度範囲のビデオストリーム内の位置を示す第二マップ情報が格納され、前記再生方法は、前記コンテンツを前記高輝度範囲のコンテンツとして再生する場合には、前記第一再生制御情報及び前記第一マップ情報に基づいて、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを読み出して再生し、前記コンテンツを前記標準輝度範囲のコンテンツとして再生する場合には、前記第二再生制御情報及び前記第二マップ情報に基づいて、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを読み出して再生してもよい。
また、前記記録媒体には、さらに、前記メインストリームのファイルと同時に再生されるサブストリームに関する前記再生制御情報が格納されるサブプレイリストファイルが記録され、前記サブプレイリストファイルには、前記高輝度範囲のビデオストリームの輝度範囲を拡張するための拡張ビデオストリームに関する第三再生制御情報が格納され、前記再生方法は、前記コンテンツを前記高輝度範囲よりも拡張された輝度範囲のコンテンツとして再生する場合、前記第一再生制御情報に基づいて、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを読み出して再生し、かつ、前記第三再生制御情報に基づいて、前記拡張ビデオストリームを読み出して再生してもよい。
また、前記記録媒体には、さらに、前記メインストリームのファイルと同時に再生されるサブストリームに関する前記再生制御情報が格納されるサブプレイリストファイルが記録され、前記サブプレイリストファイルには、前記高輝度範囲のビデオストリームの輝度範囲を拡張するための拡張ビデオストリームに関する第三再生制御情報が格納され、前記マップ領域には、前記第一マップ情報と、前記拡張ビデオストリームに含まれる独立して復号可能なピクチャの前記拡張ビデオストリーム内の位置を示す第三マップ情報が格納され、前記再生方法は、前記コンテンツを前記高輝度範囲よりも拡張された輝度範囲のコンテンツとして再生する場合、前記第一再生制御情報及び前記第一マップ情報に基づいて、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを読み出して再生し、かつ、前記第三再生制御情報及び前記第三マップ情報に基づいて、前記拡張ビデオストリームを読み出して再生してもよい。
本発明の一態様に係る再生装置は、記録媒体からコンテンツを読み出して再生する再生装置であって、前記記録媒体には、再生環境に応じて選択的に用いられる、標準輝度範囲のビデオストリーム及び前記標準輝度範囲よりも輝度範囲の広い高輝度範囲のビデオストリームと、前記再生環境に応じて選択的に用いられる、前記標準輝度範囲の字幕ストリーム及び前記高輝度範囲の字幕ストリームと、前記コンテンツの再生制御情報が格納されるプレイリストファイルであって、メインストリームに関する前記再生制御情報が格納される管理領域、及び、拡張領域を含むプレイリストファイルとが記録され、前記管理領域には、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを組み合わせて再生することが指定された第一再生制御情報が格納され、前記拡張領域には、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを組み合わせて再生することが指定された第二再生制御情報が格納され、(1)前記コンテンツを前記高輝度範囲のコンテンツとして再生する場合には、前記第一再生制御情報に基づいて、前記高輝度範囲のビデオストリーム及び前記高輝度範囲の字幕ストリームを読み出して再生し、(2)前記コンテンツを前記標準輝度範囲のコンテンツとして再生する場合には、前記第二再生制御情報に基づいて、前記標準輝度範囲のビデオストリーム及び前記標準輝度範囲の字幕ストリームを読み出して再生する、映像再生部を備える。
なお、これらの全般包括的または具体的な態様は、装置、方法、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、添付の図面を参照しながら、本発明を実施するための最良の形態ついて説明する。
なお、本願請求項1に係る発明に最も近い実施の形態は実施の形態2であるが、理解を容易にするために、実施の形態2における情報記録媒体等の基本的な構成を説明する実施の形態1を先に説明する。
(実施の形態1)
まず、BD−ROMおよびBD−ROMを再生するBD−ROMプレーヤの基本的な構成および動作について、図1〜図30を用いて説明する。
(ディスク上の論理データ構造)
図4は、BD−ROMのデータ階層を示す図である。
図4に示すように、ディスク媒体であるBD−ROM104上には、AVデータ103と、AVデータに関する管理情報及びAV再生シーケンスなどのBD管理情報102と、インタラクティブを実現するBD再生プログラム101とが記録されている。
なお、本実施の形態では、映画などのAVコンテンツを再生するためのAVアプリケーションを主眼においてBD−ROMの説明を行うが、BD−ROMをCD−ROMやDVD−ROMの様にコンピュータ用途の記録媒体として使用することも当然のことながら可能である。
図5は、前述のBD−ROM104に記録されている論理データの構造を示す図である。BD−ROM104は、他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できる論理アドレス空間を有している。
また、リードインの内側にはBurst Cutting Area(BCA)と呼ばれる、ドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
論理アドレス空間には、ファイルシステム情報(ボリューム)を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは従来技術で説明した通り、UDFやISO9660等の規格により定められたデータを管理する仕組みのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
本実施の形態の場合、BD−ROM104上のディレクトリ、ファイル構造は、ルートディレクトリ(ROOT)直下にBDVIDEOディレクトリが置かれている。このディレクトリはBD−ROMで扱うAVデータや管理情報などのデータ(図4に示すBD再生プログラム101、BD管理情報102、AVデータ103)が記録されているディレクトリである。
BDVIDEOディレクトリの下には、次の7種類のファイルが記録されている。
BD.INFO(ファイル名固定)
「BD管理情報」の一つであり、BD−ROM全体に関する情報を記録したファイルである。BD−ROMプレーヤは最初にこのファイルを読み出す。
BD.PROG(ファイル名固定)
「BD再生プログラム」の一つであり、BD−ROM全体に関わるプログラムを記録したファイルである。
XXX.PL(「XXX」は可変、拡張子「PL」は固定)
「BD管理情報」の一つであり、シナリオを記録するプレイリスト(Play List)情報を記録したファイルである。プレイリスト毎に1つのファイルを持っている。
XXX.PROG(「XXX」は可変、拡張子「PROG」は固定)
「BD再生プログラム」の一つであり、前述したプレイリスト毎のプログラムを記録したファイルである。プレイリストとの対応はファイルボディ名(「XXX」が一致する)によって識別される。
YYY.VOB(「YYY」は可変、拡張子「VOB」は固定)
「AVデータ」の一つであり、VOB(従来例で説明したVOBと同じ)を記録したファイルである。1つのVOBは1つのファイルに対応する。
YYY.VOBI(「YYY」は可変、拡張子「VOBI」は固定)
「BD管理情報」の一つであり、AVデータであるVOBに関わる管理情報を記録したファイルである。VOBとの対応はファイルボディ名(「YYY」が一致する)によって識別される。
ZZZ.PNG(「ZZZ」は可変、拡張子「PNG」は固定)
「AVデータ」の一つであり、字幕及びメニュー画面を構成するためのイメージデータであるPNG(World Wide Web Consortium(W3C)によって標準化された画像フォーマットであり「ピング」と読む。)形式のイメージファイルである。1つのPNGイメージは1つのファイルに対応する。
(プレーヤの構成)
次に、前述のBD−ROM104を再生するプレーヤの構成について図6及び図7を用いて説明する。
図6は、BD−ROM104を再生するBD−ROMプレーヤの基本的な構成の概要を示す図である。
図6に示すBD−ROMプレーヤにおいて、BD−ROM104上のデータは、光ピックアップ202を通して読み出される。読み出されたデータはそれぞれのデータの種類に応じて専用のメモリに記録される。
BD再生プログラム(「BD.PROG」または「XXX.PROG」ファイル)はプログラム記録メモリ203に、BD管理情報(「BD.INFO」、「XXX.PL」または「YYY.VOBI」ファイル)は管理情報記録メモリ204に、AVデータ(「YYY.VOB」または「ZZZ.PNG」ファイル)はAV記録メモリ205にそれぞれ記録される。
プログラム記録メモリ203に記録されたBD再生プログラムはプログラム処理部206によって処理される。管理情報記録メモリ204に記録されたBD管理情報は管理情報処理部207によって処理される。
また、AV記録メモリ205に記録されたAVデータはプレゼンテーション処理部208によって処理される。
プログラム処理部206は、管理情報処理部207から再生するプレイリストの情報やプログラムの実行タイミングなどのイベント情報を受け取りプログラムの処理を行う。また、プログラムで、再生するプレイリストを動的に変更する事が可能であり、この場合は管理情報処理部207に対して変更後のプレイリストの再生命令を送ることで実現する。
プログラム処理部206は、更に、ユーザからのイベント、例えば、ユーザが操作するリモコンからのリクエストを受け付け、ユーザイベントに対応するプログラムがある場合は、実行処理する。
管理情報処理部207は、プログラム処理部206の指示を受け、その指示に対応するプレイリスト及びそのプレイリストに対応したVOBの管理情報を解析する。更に、プレゼンテーション処理部208に再生の対象となるAVデータの再生を指示する。
また、管理情報処理部207は、プレゼンテーション処理部208から基準時刻情報を受け取り、時刻情報に基づいてプレゼンテーション処理部208にAVデータ再生の停止指示を行う。更に、プログラム処理部206に対してプログラム実行タイミングを示すイベントを生成する。
プレゼンテーション処理部208は、映像、音声、および字幕それぞれのデータに対応するデコーダを持ち、管理情報処理部207からの指示に従い、AVデータのデコード及び出力を行う。映像データ及び字幕データは、デコード後にそれぞれの専用プレーンに描画される。
具体的には、映像データはビデオプレーン210に描画され、字幕データ等のイメージデータはイメージプレーン209に描画される。更に、2つのプレーンに描画された映像の合成処理が合成処理部211によって行われTVなどの表示デバイスへ出力される。
図6で示すように、BD−ROMプレーヤは図4で示したBD−ROM104に記録されているデータ構造に基づいた構成をとっている。
図7は、図6に示すプレーヤの構成を詳細化したブロック図である。図6に示す各構成部と、図7に示す各構成部との対応は以下の通りである。
AV記録メモリ205はイメージメモリ308とトラックバッファ309に対応する。プログラム処理部206はプログラムプロセッサ302とUO(User Operation)マネージャ303に対応する。管理情報処理部207はシナリオプロセッサ305とプレゼンテーションコントローラ306とに対応する。プレゼンテーション処理部208はクロック307、デマルチプレクサ310、イメージプロセッサ311、ビデオプロセッサ312とサウンドプロセッサ313とに対応する。
BD−ROM104から読み出されたVOBデータ(MPEGストリーム)はトラックバッファ309に、イメージデータ(PNG)はイメージメモリ308にそれぞれ記録される。
デマルチプレクサ310は、クロック307から得られる時刻に基づき、トラックバッファ309に記録されたVOBデータを抜き出す。更に、VOBデータに含まれる映像データをビデオプロセッサ312に音声データをサウンドプロセッサ313にそれぞれ送り込む。
ビデオプロセッサ312及びサウンドプロセッサ313はそれぞれMPEGシステム規格で定められる通りに、デコーダバッファとデコーダからそれぞれ構成されている。即ち、デマルチプレクサ310から送りこまれる映像、音声それぞれのデータは、それぞれのデコーダバッファに一時的に記録され、クロック307に従い個々のデコーダでデコード処理される。
イメージメモリ308に記録されたPNGデータは、次の2つの処理方法がある。PNGデータが字幕用の場合は、プレゼンテーションコントローラ306によってデコードタイミングが指示される。クロック307からの時刻情報をシナリオプロセッサ305が一旦受け、適切な字幕表示が行えるように、字幕表示時刻(開始及び終了)になればプレゼンテーションコントローラ306に対して字幕の表示、非表示の指示を出す。
プレゼンテーションコントローラ306からデコード/表示の指示を受けたイメージプロセッサ311は対応するPNGデータをイメージメモリ308から抜き出し、デコードし、イメージプレーン209に描画する。
また、PNGデータがメニュー画面用の場合は、プログラムプロセッサ302によってデコードタイミングが指示される。プログラムプロセッサ302がいつイメージのデコードを指示するかは、プログラムプロセッサ302が処理しているBDプログラムに因るものであって一概には決まらない。
イメージデータ及び映像データは、図6で説明したようにそれぞれデコード後にイメージプレーン209およびビデオプレーン210に描画され、合成処理部211によって合成出力される。
BD−ROM104から読み出された管理情報(シナリオ、AV管理情報)は、管理情報記録メモリ204に記録されるが、シナリオ情報(「BD.INFO」及び「XXX.PL」)はシナリオプロセッサ305によって読み出され処理される。また、AV管理情報(「YYY.VOBI」)はプレゼンテーションコントローラ306によって読み出され処理される。
シナリオプロセッサ305は、プレイリストの情報を解析し、プレイリストによって参照されているVOBとその再生位置をプレゼンテーションコントローラ306に指示し、プレゼンテーションコントローラ306は対象となるVOBの管理情報(「YYY.VOBI」)を解析して、対象となるVOBを読み出すようにドライブコントローラ317に指示を出す。
ドライブコントローラ317はプレゼンテーションコントローラ306の指示に従い、光ピックアップ202を移動させ、対象となるAVデータの読み出しを行う。読み出されたAVデータは、前述したようにイメージメモリ308またはトラックバッファ309に記録される。
また、シナリオプロセッサ305は、クロック307の時刻を監視し、管理情報で設定されているタイミングでイベントをプログラムプロセッサ302に投げる。
プログラム記録メモリ203に記録されたBDプログラム(「BD.PROG」または「XXX.PROG」)は、プログラムプロセッサ302によって実行処理される。プログラムプロセッサ302がBDプログラムを処理するのは、シナリオプロセッサ305からイベントが送られてきた場合か、UOマネージャ303からイベントが送られてきた場合である。
UOマネージャ303は、ユーザからリモコンキーによってリクエストが送られてきた場合に、当該リクエストに対応するイベントを生成しプログラムプロセッサ302に送る。
このような各構成部の動作により、BD−ROMの再生がおこなわれる。
(アプリケーション空間)
図8は、BD−ROMのアプリケーション空間を示す図である。
BD−ROMのアプリケーション空間では、プレイリスト(PlayList)が一つの再生単位になっている。プレイリストはセル(Cell)の再生シーケンスから構成される静的なシナリオと、プログラムによって記述される動的なシナリオとを有している。
プログラムによる動的なシナリオが無い限り、プレイリストは個々のセルを順に再生するだけであり、また、全てのセルの再生を終了した時点でプレイリストの再生は終了する。
一方で、プログラムは、プレイリストを超えての再生記述や、ユーザの選択またはプレーヤの状態に応じて再生する対象を動的に変えることが可能である。典型的な例としてはメニュー画面を介した再生対象の動的変更が挙げられる。BD−ROMの場合、メニューとはユーザの選択によって再生するシナリオ、即ちプレイリストを動的に選択するための機能の構成要素の1つである。
また、ここで言うプログラムは、時間イベントまたはユーザイベントによって実行されるイベントハンドラの事である。
時間イベントは、プレイリスト中に埋め込まれた時刻情報に基づいて生成されるイベントである。図7で説明したシナリオプロセッサ305からプログラムプロセッサ302に送られるイベントがこれに相当する。時間イベントが発行されると、プログラムプロセッサ302はIDによって対応付けられるイベントハンドラを実行処理する。
前述した通り、実行されるプログラムが他のプレイリストの再生を指示することが可能であり、この場合には、現在再生されているプレイリストの再生は中止され、指定されたプレイリストの再生へと遷移する。
ユーザイベントは、ユーザのリモコンキー操作によって生成されるイベントである。ユーザイベントは大きく2つのタイプに分けられる。一つ目は、リモコンが備えるカーソルキー(「上」「下」「左」「右」キー)または「決定」キーの操作によって生成されるメニュー選択のイベントである。
メニュー選択のイベントに対応するイベントハンドラはプレイリスト内の限られた期間でのみ有効である。つまり、プレイリストの情報として、個々のイベントハンドラの有効期間が設定されている。プログラムプロセッサ302は、リモコンの「上」「下」「左」「右」キーまたは「決定」キーが押された時に有効なイベントハンドラを検索して、有効なイベントハンドラがある場合は当該イベントハンドラが実行処理される。他の場合は、メニュー選択のイベントは無視されることになる。
二つ目のユーザイベントは、「メニュー」キーの操作によって生成されるメニュー画面呼び出しのイベントである。メニュー画面呼び出しのイベントが生成されると、グローバルイベントハンドラが呼ばれる。
グローバルイベントハンドラはプレイリストに依存せず、常に有効なイベントハンドラである。この機能を使うことにより、DVDのメニューコールを実装することができる。メニューコールを実装することにより、タイトル再生中に音声、字幕メニューなどを呼び出し、音声または字幕を変更後に中断した地点からのタイトル再生を実行することができる。
プレイリストで静的シナリオを構成する単位であるセル(Cell)はVOB(MPEGストリーム)の全部または一部の再生区間を参照したものである。セルはVOB内の再生区間を開始、終了時刻の情報として持っている。個々のVOBと一対になっているVOB管理情報(VOBI)は、その内部にタイムマップ(Time MapまたはTM)を有しており、このタイムマップによって前述したVOBの再生、終了時刻をVOB内(即ち対象となるファイル「YYY.VOB」内)での読み出し開始アドレス及び終了アドレスを導き出すことが可能である。なおタイムマップの詳細は図14を用いて後述する。
(VOBの詳細)
図9は、本実施の形態で使用するMPEGストリーム(VOB)の構成を示す図である。図9に示すように、VOBは複数のVideo Object Unit(VOBU)によって構成されている。VOBUは、MPEGビデオストリームにおけるGroup Of Pictures(GOP)を基準とする単位であり、音声データも含んだ多重化ストリームとしての一再生単位である。
VOBUは0.4秒から1.0秒の再生時間を持ち、通常は0.5秒の再生時間を持っている。これはMPEGのGOPの構造が通常は15フレーム/秒(NTSCの場合)であることによって導かれるものである。
VOBUは、その内部に映像データであるビデオパック(V_PCK)と、音声データであるオーディオパック(A_PCK)とを有している。各パックは1セクタで構成され、本実施の形態の場合は2kB単位で構成されている。
図10は、MPEGストリームにおけるパックの構成を示す図である。
図10に示すように、映像データ及び音声データといったエレメンタリデータは、ペイロードと呼ばれるパケットのデータ格納領域に先頭から順次入れられていく。ペイロードにはパケットヘッダが付けられ1つのパケットを構成する。
パケットヘッダには、ペイロードに格納してあるデータがどのストリームのデータであるのか、映像データであるのか音声データであるのか、および、映像データまたは音声データがそれぞれ複数ストリーム分ある場合に、どのストリームのデータなのかを識別するためのID(stream_id)、並びに、当該ペイロードのデコード及び表示時刻情報であるタイムスタンプであるDecode Time Stamp(DTS)及びPresentation Time Stamp(PTS)が記録されている。
DTSおよびPTSは必ずしも全てのパケットヘッダに記録されている訳ではなく、MPEGによって記録するルールが規定されている。ルールの詳細についてはMPEGシステム(ISO/IEC13818−1)規格書に記述されているので省略する。
パケットには更にヘッダ(パックヘッダ)が付けられ、パックを構成する。パックヘッダには、当該パックがいつデマルチプレクサ310を通過し、個々のエレメンタリストリームのデコーダバッファに入力されるかを示すタイムスタンプであるSystem Clock Reference(SCR)が記録されている。
(VOBのインターリーブ記録)
図11及び図12を用いてVOBファイルのインターリーブ記録について説明する。
図11は、AVデータとBD−ROMプレーヤの構成との関係を説明するための図である。
図11上段の図は、図7を用いて前述したプレーヤ構成図の一部である。図の通り、BD−ROM上のデータは、光ピックアップ202を通してVOB即ちMPEGストリームであればトラックバッファ309へ入力され、PNG即ちイメージデータであればイメージメモリ308へと入力される。
トラックバッファ309はFirst−In First−Out(FIFO)であり、入力されたVOBのデータは入力された順にデマルチプレクサ310へと送られる。この時、前述したSCRに従って個々のパックはトラックバッファ309から引き抜かれデマルチプレクサ310を介してビデオプロセッサ312またはサウンドプロセッサ313へとデータが送り届けられる。
一方で、イメージデータの場合は、どのイメージを描画するかはプレゼンテーションコントローラ306(図7参照)によって指示される。また、描画に使ったイメージデータは、字幕用イメージデータの場合は同時にイメージメモリ308から削除されるが、メニュー用のイメージデータの場合は、イメージメモリ308内にそのまま残される。
これはメニューの描画はユーザ操作に依存するところがあるため、同一イメージを複数回描画する可能性があるためである。
図11下段の図は、BD−ROM上でのVOBファイル及びPNGファイルのインターリーブ記録を示す図である。
一般的にROM、例えばCD−ROMやDVD−ROMの場合、一連の連続再生単位となるAVデータは連続記録されている。連続記録されている限り、ドライブは順次データを読み出しプレーヤ側に送り届けるだけでよい。
しかしながら、連続再生すべきAVデータが分断されてディスク上に離散配置されている場合は、個々の連続区間の間でシーク操作が入ることになり、この間データの読み出しが止まることになる。つまり、データの供給が止まる可能性がある。
BD−ROMの場合も同様に、VOBファイルは連続領域に記録することができる方が望ましいが、例えば字幕データのようにVOBに記録されている映像データと同期して再生されるデータがあり、VOBファイルと同様に字幕データも何らかの方法によってBD−ROMから読み出す事が必要になる。
字幕データの読み出し方法の一手段として、VOBの再生開始前に一まとめで字幕用のイメージデータ(PNGファイル)を読み出してしまう方法がある。しかしながら、この場合には一時記録に使用する大量のメモリが必要となり、現実的ではない。
そこで、本実施の形態では、VOBファイルを幾つかのブロックに分けて、VOBファイルとイメージデータとをインターリーブ記録する方式を使用する。
図11下段はそのインターリーブ記録を説明するための図である。VOBファイルとイメージデータを適切にインターリーブ配置することで、前述したような大量の一時記録メモリ無しに、必要なタイミングでイメージデータをイメージメモリ308に格納することが可能になる。
しかしながらイメージデータを読み出している際には、VOBデータの読み込みは当然のことながら停止することになる。
図12は、上記のインターリーブ記録における問題を解決するトラックバッファ309を使ったVOBデータ連続供給モデルを説明するための図である。
既に説明したように、VOBのデータは、一旦トラックバッファ309に蓄積される。トラックバッファ309へのデータ入力レートをトラックバッファ309からのデータ出力レートより高く設定すると、BD−ROMからデータを読み出し続けている限り、トラックバッファ309のデータ蓄積量は増加をしていくことになる。
ここでトラックバッファ309への入力レートをVa、トラックバッファ309からの出力レートをVbとする。図12の上段の図に示すようにVOBの一連続記録領域が論理アドレスの“a1”から“a2”まで続くとする。また、“a2”から“a3”の間は、イメージデータが記録されていて、VOBデータの読み出しが行えない区間であるとする。
図12の下段の図は、トラックバッファ309の蓄積量を示す図である。横軸が時間、縦軸がトラックバッファ309内部に蓄積されているデータ量を示している。時刻“t1”がVOBの一連続記録領域の開始点である“a1”の読み出しを開始した時刻を示している。
この時刻以降、トラックバッファ309にはレートVa−Vbでデータが蓄積されていくことになる。このレートは言うまでもなくトラックバッファ309の入出力レートの差である。時刻“t2”は一連続記録領域の終了点である“a2”のデータを読み込む時刻である。
即ち時刻“t1”から“t2”の間レートVa−Vbでトラックバッファ309内はデータ量が増加していき、時刻“t2”でのデータ蓄積量B(t2)は下記の(式1)によって求めることができる。
B(t2) = (Va−Vb)×(t2−t1) (式1)
この後、BD−ROM上のアドレス“a3”まではイメージデータが続くため、トラックバッファ309への入力は0となり、出力レートである“−Vb”でトラックバッファ309内のデータ量は減少していくことになる。このデータ量の減少は読み出し位置“a3”まで、つまり、時刻でいう“t3”まで続く。
ここで大事なことは、時刻“t3”より前にトラックバッファ309に蓄積されているデータ量が0になると、デコーダへ供給するVOBのデータが無くなってしまい、VOBの再生がストップしてしまうことである。
しかしながら、時刻“t3”でトラックバッファ309にデータが残っている場合には、VOBの再生がストップすることなく連続して行われることを意味している。
このVOBの再生がストップすることなく連続して行われるための条件は下記の(式2)によって示すことができる。
B(t2) ≧ −Vb×(t3−t2) (式2)
即ち、(式2)を満たすようにイメージデータの配置を決めればよい事になる。
(ナビゲーションデータ構造)
図13から図19を用いて、BD−ROMに記録されたナビゲーションデータ(BD管理情報)の構造について説明をする。
図13は、VOB管理情報ファイル(“YYY.VOBI”)の内部構造を示す図である。
VOB管理情報は、当該VOBのストリーム属性情報(Attribute)とタイムマップ(TMAP)とを有している。ストリーム属性情報は、ビデオ属性(Video)、オーディオ属性(Audio#0〜Audio#m)個々に持つ構成となっている。特にオーディオストリームの場合は、VOBが複数本のオーディオストリームを同時に持つことができることから、オーディオストリーム数(Number)によって、オーディオ属性のデータフィールドの数が特定される。
下記はビデオ属性(Video)の持つフィールドとそれぞれが持ち得る値の例である。
圧縮方式(Coding):
MPEG1
MPEG2
MPEG4
解像度(Resolution):
1920x1080
1280x720
720x480
720x565
アスペクト比(Aspect):
4:3
16:9
フレームレート(Framerate):
60
59.94
50
30
29.97
25
24
下記はオーディオ属性(Audio)の持つフィールドとそれぞれが持ち得る値の例である。
圧縮方式(Coding):
AC3
MPEG1
MPEG2
LPCM
チャンネル数(Ch):
1〜8
言語属性(Language):
JPN、ENG、・・・
タイムマップ(TMAP)はVOBU毎の情報を持つテーブルであって、当該VOBが有するVOBU数(Number)と各VOBU情報(VOBU#1〜VOBU#n)を持つ。
個々のVOBU情報は、VOBUの再生時間長(Duration)とVOBUのデータサイズ(Size)とを有している。
図14は、VOBU情報の詳細を説明するための図である。
広く知られているように、MPEGストリームは時間的側面とデータサイズとしての側面との2つの物理量についての側面を有している。例えば、音声の圧縮規格であるAudio Code number 3(AC3)は固定ビットレートでの圧縮を行っているため、時間とアドレスとの関係は1次式によって求めることができる。
しかしながらMPEGビデオデータの場合、個々のフレームは固定の表示時間、例えばNTSCの場合、1フレームは1/29.97秒の表示時間を持つが、個々のフレームの圧縮後のデータサイズは絵の特性や圧縮に使ったピクチャタイプ、いわゆるI/P/Bピクチャによってデータサイズは大きく変わってくる。
従って、MPEGビデオの場合は、時間とアドレスとの関係は一般式の形で表現することは不可能である。
当然の事として、MPEGビデオデータを多重化しているMPEGストリーム、即ちVOBについても、時間とデータとを一般式の形で表現することは不可能である。
これに代わって、VOB内での時間とアドレスとの関係を結びつけるのがタイムマップ(TMAP)である。図14に示すように、VOBU毎にVOBU内のフレーム数と、VOBU内のパック数とをそれぞれエントリとして持つテーブルがタイムマップ(TMAP)である。
図15を使って、タイムマップ(TMAP)の使い方を説明する。
図15は、タイムマップを使ったアドレス情報取得方法を説明するための図である。
図15に示すように時刻情報(Time)が与えられた場合、まずは当該時刻がどのVOBUに属するのかを検索する。具体的には、タイムマップのVOBU毎のフレーム数を加算して行き、フレーム数の和が、当該時刻をフレーム数に換算した値を超えるまたは一致するVOBUが当該時刻に対応するVOBUになる。
次に、タイムマップのVOBU毎のサイズを当該VOBUの直前のVOBUまで加算して行き、その値が与えられた時刻を含むフレームを再生するために読み出すべきパックの先頭アドレス(Address)になっている。
このようにして、MPEGストリームにおいて、与えられた時刻情報に対応するアドレスを得ることができる。
次に図16を使って、プレイリスト(“XXX.PL”)の内部構造を説明する。
図16は、プレイリストの構成を示す図である。
プレイリストは、セルリスト(CellList)とイベントリスト(EventList)とから構成されている。
セルリスト(CellList)は、プレイリスト内の再生セルシーケンスを示す情報であり、本リストの記述順でセルが再生される事になる。
セルリスト(CellList)の中身は、セルの数(Number)と各セル情報(Cell#1〜Cell#n)である。
各セル情報(Cell#〜Cell#n)は、VOBファイル名(VOBName)、当該VOB内での有効区間開始時刻(In)及び有効区間終了時刻(Out)と、字幕テーブル(SubtitleTable)を持っている。
有効区間開始時刻(In)及び有効区間終了時刻(Out)は、それぞれ当該VOB内でのフレーム番号で表現され、前述したタイムマップ(TMAP)を使うことによって再生に必要なVOBデータのアドレスを得る事ができる。
字幕テーブル(SubtitleTable)は、当該VOBと同期再生される字幕情報を持つテーブルである。字幕は音声同様に複数の言語を持つことができ、字幕テーブル(SubtitleTable)は言語数(Number)とそれに続く個々の言語ごとのテーブル(Language#1〜Language#k)とから構成されている。
各言語のテーブル(Language#1〜Language#k)は、言語情報(Language)と、表示される字幕の字幕情報数(Number)と、表示される字幕の字幕情報(Speech#1〜Speech#j)とから構成され、各字幕情報(Speech#1〜Speech#j)は対応するイメージデータファイル名(Name)、字幕表示開始時刻(In)及び字幕表示終了時刻(Out)と、字幕の表示位置(Position)とから構成されている。
イベントリスト(EventList)は、当該プレイリスト内で発生するイベントを定義したテーブルである。イベントリストは、イベント数(Number)に続いて個々のイベント(Event#1〜Event#m)とから構成され、各イベント(Event#1〜Event#m)は、イベントの種類(Type)、イベントのID(ID)、イベント生成時刻(Time)と有効期間(Duration)とから構成されている。
図17は、個々のプレイリスト毎のイベントハンドラ(時間イベントと、メニュー選択用のユーザイベント)を持つイベントハンドラテーブル(“XXX.PROG”)の構成を示す図である。
イベントハンドラテーブルは、定義されているイベントハンドラ/プログラム数(Number)と個々のイベントハンドラ/プログラム(Program#1〜Program#n)を有している。
各イベントハンドラ/プログラム(Program#1〜Program#n)内の記述は、イベントハンドラ開始の定義(<event_handler>タグ)と前述したイベントのIDと対になるイベントハンドラのID(event_handler id)を持ち、その後に当該プログラムが“function”に続く括弧“{”と“}”との間に記述される。
次に図18を用いてBD−ROM全体に関する情報(“BD.INFO”)の内部構造について説明をする。
図18は、BD−ROM全体情報であるBD.INFOの構成を示す図である。
BD−ROM全体情報は、タイトルリスト(TitleList)とグローバルイベント用のイベントリスト(EventList)とから構成されている。
タイトルリスト(TitleList)は、ディスク内のタイトル数(Number)と、これに続く各タイトル情報(Title#1〜Title#n)とから構成されている。
各タイトル情報(Title#1〜Title#n)は、タイトルに含まれるプレイリストのテーブル(PLTalble)とタイトル内のチャプターリスト(ChapterList)とを含んでいる。プレイリストのテーブル(PLTable)はタイトル内のプレイリストの数(Number)と、プレイリスト名(Name)即ちプレイリストのファイル名を有している。
チャプターリスト(ChapterList)は、当該タイトルに含まれるチャプター数(Number)と各チャプター情報(Chapter#1〜Chapter#n)とから構成され、各チャプター情報(Chapter#1〜Chapter#n)は当該チャプターが含むセルのテーブル(CellTable)を持ち、セルのテーブル(CellTable)はセル数(Number)と各セルのエントリ情報(CellEntry#1〜CellEntry#k)とから構成されている。
セルのエントリ情報(CellEntry#1〜CellEntry#k)は当該セルを含むプレイリスト名と、プレイリスト内でのセル番号によって記述されている。
イベントリスト(EventList)は、グローバルイベントの数(Number)と各グローバルイベントの情報(Event#1〜Event#m)とを持っている。ここで注意すべきは、最初に定義されるグローバルイベントは、ファーストイベント(FirstEvent)と呼ばれ、BD−ROMがプレーヤに挿入された時、最初に実行されるイベントである。
各グローバルイベントの情報(Event#1〜Event#m)はイベントタイプ(Type)とイベントのID(ID)だけを持っている。
図19は、グローバルイベントハンドラテーブル(“BD.PROG”)の構成を示す図である。本テーブルは、図17で説明したイベントハンドラテーブルと同一内容であり、その説明は省略する。
(イベント発生のメカニズム)
図20から図22を使ってイベント発生のメカニズムについて説明する。
図20は、タイムイベントの例を示す図である。
前述したとおり、タイムイベントはプレイリスト(“XXX.PL”)のイベントリスト(EventList)で定義される。
タイムイベントとして定義されているイベント、即ちイベントタイプ(Type)が“TimeEvent”の場合、イベント生成時刻(“t1”)になった時点で、ID“Ex1”を持つタイムイベントがシナリオプロセッサ305からプログラムプロセッサ302に対して出力される。
プログラムプロセッサ302は、イベントID“Ex1”を持つイベントハンドラを探し、対象のイベントハンドラを実行処理する。例えば、本実施の形態の場合では、2つのボタンイメージの描画を行うことなどが可能である。
図21は、ユーザのメニュー操作によるユーザイベントの例を示す図である。
前述したとおり、メニュー操作によるユーザイベントもプレイリスト(“XXX.PL”)のイベントリスト(EventList)で定義される。
ユーザイベントとして定義されるイベント、即ちイベントタイプ(Type)が“UserEvent”の場合、イベント生成時刻(“t1”)になった時点で、当該ユーザイベントがレディとなる。この時、イベント自身は未だ生成されてはいない。
当該イベントは、有効規格情報(Duration)で記される期間(“T1”)レディ状態にある。
図21に示すように、ユーザによりリモコンキーの「上」「下」「左」「右」キーのいずれかのキー、または「決定」キーが押された場合、まずUOイベントがUOマネージャ303によって生成されプログラムプロセッサ302に出力される。
プログラムプロセッサ302は、シナリオプロセッサ305に対してUOイベントを流し、シナリオプロセッサ305はUOイベントを受け取った時刻に有効なユーザイベントが存在するかを検索する。
シナリオプロセッサ305は、検索の結果、対象となるユーザイベントがあった場合、ユーザイベントを生成し、プログラムプロセッサ302に出力する。
プログラムプロセッサ302では、イベントID、例えば、図21に示す例の場合では“Ev1”を持つイベントハンドラを探し、対象のイベントハンドラを実行処理する。本例の場合、プレイリスト#2の再生を開始する。
生成されるユーザイベントには、どのリモコンキーがユーザによって押されたかの情報は含まれていない。選択されたリモコンキーの情報は、UOイベントによってプログラムプロセッサ302に伝えられ、仮想プレーヤが持つレジスタに記録保持される。
イベントハンドラのプログラムは、このレジスタの値を調べ、分岐処理を実行することが可能である。
図22は、グローバルイベントの例を示す図である。
前述のように、グローバルイベントはBD−ROM全体情報(“BD.INFO”)のイベントリスト(EventList)で定義される。
グローバルイベントとして定義されるイベント、即ちイベントタイプ(Type)が“GlobalEvent”であるイベントは、ユーザのリモコンキー操作があった場合にのみ生成される。
ユーザによりメニューキーが押された場合、先ずUOイベントがUOマネージャ303によって生成されプログラムプロセッサ302に出力される。プログラムプロセッサ302は、シナリオプロセッサ305に対してUOイベントを流す。
シナリオプロセッサ305は、該当するグローバルイベントを生成し、プログラムプロセッサ302に送る。プログラムプロセッサ302は、イベントID“menu”を持つイベントハンドラを探し、対象のイベントハンドラを実行する。例えば、図22に示す例の場合、プレイリスト#3の再生を開始している。
本実施の形態では、単にメニューキーと呼んでいるが、DVDを再生するプレーヤにおけるリモコンのように複数のメニューキーがあってもよい。各メニューキーに対応するIDをそれぞれ定義することで各メニューキーに対応する適切な処理が可能である。
(仮想プレーヤマシン)
図23は、プログラムプロセッサ302の機能的な構成を説明するための図である。
図23を用いてプログラムプロセッサ302の機能的な構成を説明する。
プログラムプロセッサ302は、内部に仮想プレーヤマシンを持つ処理モジュールである。仮想プレーヤマシンはBD−ROMとして定義された機能モデルであって、各BD−ROMプレーヤの実装には依存しないものである。即ち、どのBD−ROMプレーヤにおいても同様の機能を実行できることを保証している。
仮想プレーヤマシンは大きく2つの機能を持っている。プログラミング関数とプレーヤ変数である。プレーヤ変数はレジスタに記憶され保持されている。
プログラミング関数は、Java(登録商標) Scriptをベースとして、以下に記す3つの機能をBD−ROM固有関数として定義している。
リンク関数:現在の再生を停止し、指定するプレイリスト、セル、時刻からの再生を開始する。
Link(PL#,Cell#,time)
PL# : プレイリスト名
Cell# : セル番号
time : セル内での再生開始時刻
PNG描画関数:指定PNGデータをイメージプレーン209に描画する
Draw(File,X,Y)
File : PNGファイル名
X : X座標位置
Y : Y座標位置
イメージプレーンクリア関数:イメージプレーン209の指定領域をクリアする
Clear(X,Y,W,H)
X : X座標位置
Y : Y座標位置
W : X方向幅
H : Y方向幅
また、プレーヤ変数は、プレーヤの設定値等を示すシステムパラメータ(SPRM)と、一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図24は、システムパラメータ(SPRM)の一覧を示す図である。
SPRM(0) : 言語コード
SPRM(1) : 音声ストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプター番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーションタイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタルレベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : 音声ストリーム用言語コード
SPRM(17) : 音声ストリーム用言語コード(拡張)
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード(拡張)
SPRM(20) : プレーヤリージョンコード
SPRM(21) : 予備
SPRM(22) : 予備
SPRM(23) : 再生状態
SPRM(24) : 予備
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
なお、本実施の形態では、仮想プレーヤのプログラミング関数をJava(登録商標)
Scriptベースとしたが、Java(登録商標) Scriptではなく、UNIX(登録商標) OSなどで使われているB−Shellや、Perl Scriptなど他のプログラミング関数であってもよい。言い換えれば、本発明におけるプログラム言語はJava(登録商標) Scriptに限定されるものでは無い。
(プログラムの例)
図25及び図26は、イベントハンドラにおけるプログラムの例を示す図である。
図25は、2つの選択ボタンを持つメニュー画面の制御に係るイベントハンドラにおけるプログラムの例を示す図である。
セル(PlayList#1.Cell#1)先頭でタイムイベントを使って図25左側のプログラムが実行される。ここでは、最初にゼネラルパラメータの一つGPRM(0)に“1”がセットされている。GPRM(0)は、当該プログラムの中で、選択されているボタンを識別するのに使っている。最初の状態では、左側に配置するボタン[1]が選択されている状態を初期値として持たされている。
次に、PNGの描画を描画関数である“Draw”を使ってボタン[1]、ボタン[2]それぞれについて行っている。ボタン[1]は、座標(10、200)を起点(左上端)としてPNGイメージ“1black.png”を描画している。ボタン[2]は、座標(330,200)を起点(左上端)としてPNGイメージ“2white.png”を描画している。
また、本セル最後ではタイムイベントを使って図25右側のプログラムが実行される。ここでは、Link関数を使って当該セルの先頭から再度再生するように指定している。
図26は、メニュー選択のユーザイベントに係るイベントハンドラにおけるプログラムの例を示す図である。
「左」キー、「右」キー、「決定」キー何れかのリモコンキーが押された場合それぞれに対応するプログラムがイベントハンドラに書かれている。ユーザによりリモコンキーが押された場合、図21を用いて説明したように、ユーザイベントが生成され、図26のイベントハンドラが起動されることになる。
本イベントハンドラでは、選択ボタンを識別しているGPRM(0)の値と、選択されたリモコンキーを識別するSPRM(8)を使って以下のように分岐処理を行っている。
条件1)ボタン[1]が選択されている、かつ、選択キーが「右」キーの場合
GPRM(0)を2に再設定して、選択状態にあるボタンを右のボタン[2]に変更する。
ボタン[1]、ボタン[2]のイメージをそれぞれ書き換える。
条件2)選択キーが「決定(OK)」の場合で、ボタン[1]が選択されている場合
プレイリスト#2の再生を開始する。
条件3)選択キーが「決定(OK)」の場合で、ボタン[2]が選択されている場合
プレイリスト#3の再生を開始する。
図26に示すプログラムは、上記のように解釈され実行される。
(プレーヤ処理フロー)
図27から図30を用いてプレーヤでの処理の流れを説明する。
図27は、BD−ROMプレーヤにおけるAVデータ再生の基本処理の流れを示すフロー図である。
BD−ROMが挿入されると(S101)、BD−ROMプレーヤは“BD.INFO”の読み込みと解析(S102)、および、“BD.PROG”の読み込み(S103)を実行する。“BD.INFO”及び“BD.PROG”は共に管理情報記録メモリ204に一旦格納され、シナリオプロセッサ305によって解析される。
続いて、シナリオプロセッサ305は、“BD.INFO”ファイル内のファーストイベント(FirstEvent)情報に従い、最初のイベントを生成する(S104)。生成されたファーストイベントは、プログラムプロセッサ302で受け取られ、当該イベントに対応するイベントハンドラを実行処理する(S105)。
ファーストイベントに対応するイベントハンドラには、最初に再生するべきプレイリストを指定する情報が記録されていることが期待される。仮に、プレイリスト再生が指示されていない場合には、プレーヤは何も再生することなく、ユーザイベントを受け付けるのを待ち続けるだけになる(S201でNo)。
UOマネージャ303は、ユーザからのリモコン操作を受け付けると(S201でYes)、プログラムプロセッサ302に対するUOイベントを生成する(S202)。
プログラムプロセッサ302は、UOイベントがメニューキーによるものであるかを判別し(S203)、メニューキーの場合(S203でYes)は、シナリオプロセッサ305にUOイベントを流し、シナリオプロセッサ305がユーザイベントを生成する(S204)。プログラムプロセッサ302は生成されたユーザイベントに対応するイベントハンドラを実行処理する(S205)。
図28は、BD−ROMプレーヤにおけるプレイリスト再生開始からVOB再生終了までの処理の流れを示すフロー図である。
前述したように、ファーストイベントハンドラまたはグローバルイベントハンドラによってプレイリスト再生が開始される(S301)。シナリオプロセッサ305は、再生対象のプレイリスト再生に必要な情報として、プレイリスト“XXX.PL”の読み込みと解析(S302)、および、プレイリストに対応するプログラム情報“XXX.PROG”の読み込みを行う(S303)。
続いてシナリオプロセッサ305は、プレイリストに登録されているセル情報に基づいてセルの再生を開始する(S304)。セル再生は、シナリオプロセッサからプレゼンテーションコントローラ306に対して要求が出される事を意味し、プレゼンテーションコントローラ306はAVデータ再生を開始する(S305)。
AVデータの再生が開始されると、プレゼンテーションコントローラ306は、再生するセルに対応するVOBの情報ファイル“XXX.VOBI”を読み込み(S402)、解析する。プレゼンテーションコントローラ306は、タイムマップを使って再生開始するVOBUとそのアドレスを特定し、ドライブコントローラ317に読み出しアドレスを指示する。ドライブコントローラ317は対象となるVOBデータ“YYY.VOB”を読み出す(S403)。
読み出されたVOBデータはデコーダに送られ再生が開始される(S404)。VOB再生は、当該VOBの再生区間が終了するまで続けられ(S405)、終了すると次のセルが存在する場合(S406でYes)、Cellの再生(S304)へ移行する。また、次のセルが無い場合(S406でNo)は、再生に係る処理が終了する。
図29は、AVデータ再生開始後からのイベント処理の流れを示すフロー図である。
図29の(A)は、BD−ROMプレーヤにおけるタイムイベントに係る処理の流れを示すフロー図である。
なお、BD−ROMプレーヤはイベントドリブン型のプレーヤモデルである。プレイリストの再生を開始すると、タイムイベント系、ユーザイベント系、字幕表示系のイベント処理プロセスがそれぞれ起動され、平行してイベント処理を実行するようになる。
BD−ROMプレーヤにおいてプレイリスト再生の再生が開始されると(S501)、プレイリスト再生が終了していないことが確認され(S502でNo)、シナリオプロセッサ305は、タイムイベント発生時刻になったかを確認する(S503)。
タイムイベント発生時刻になっている場合(S503でYes)には、シナリオプロセッサ305はタイムイベントを生成する(S504)。プログラムプロセッサ302はタイムイベントを受け取り、イベントハンドラを実行処理する(S505)。
また、タイムイベント発生時刻になっていない場合(S503でNo)、および、イベントハンドラの実行処理が終了した場合、プレイリスト再生の終了確認(S502)以降の処理を繰り返す。
また、プレイリスト再生が終了したことが確認されると(S502でYes)、タイムイベント系の処理は強制的に終了する。
図29の(B)は、BD−ROMプレーヤにおけるユーザイベントに係る処理の流れを示すフロー図である。
BD−ROMプレーヤにおいてプレイリストの再生が開始されると(S601)、プレイリスト再生が終了していないことが確認され(S602でNo)、UOマネージャ303は、UOの受け付けがあったかを確認する。
UOの受け付けがあった場合(S603でYes)、UOマネージャ303はUOイベントを生成する(S604)。プログラムプロセッサ302はUOイベントを受け取り、そのUOイベントがメニューコールであるかを確認する。
メニューコールであった場合(S605でYes)、プログラムプロセッサ302はシナリオプロセッサ305にイベントを生成させ(S607)、プログラムプロセッサ302はイベントハンドラを実行処理する(S608)。
また、UOイベントがメニューコールで無いと判断された場合(S605でNo)、UOイベントはカーソルキーまたは「決定」キーによるイベントである事を示している。この場合、現在時刻がユーザイベント有効期間内であるかをシナリオプロセッサ305が判断し、有効期間内である場合(S606でYes)には、シナリオプロセッサ305がユーザイベントを生成し(S607)、プログラムプロセッサ302が対象のイベントハンドラを実行処理する(S608)。
また、UO受付が無い場合(S603でNo)、現在時刻がユーザイベント有効期間内にない場合(S606でNo)、および、イベントハンドラの実行処理が終了した場合、プレイリスト再生の終了確認(S602)以降の処理を繰り返す。
また、プレイリスト再生が終了したことが確認されると(S602でYes)、ユーザイベント系の処理は強制的に終了する。
図30は、BD−ROMプレーヤにおける字幕データの処理の流れを示すフロー図である。
BD−ROMプレーヤにおいてプレイリストの再生が開始されると、プレイリスト再生が終了していないことが確認され(S702でNo)、シナリオプロセッサ305は、字幕表示開始時刻になったかを確認する。字幕表示開始時刻になっている場合(S703でYes)、シナリオプロセッサ305はプレゼンテーションコントローラ306に字幕描画を指示し、プレゼンテーションコントローラ306はイメージプロセッサ311に字幕描画を指示する。イメージプロセッサ311は、その指示に従い字幕をイメージプレーン209に字幕を描画する(S704)。
また、字幕表示開始時刻になっていない場合(S703でNo)、字幕表示終了時刻であるかを確認する。字幕表示終了時刻であると判断された場合(S705でYes)、プレゼンテーションコントローラ306がイメージプロセッサ311に字幕消去指示を行う。
イメージプロセッサ311は、その指示に従い描画されている字幕をイメージプレーン209から消去する(S706)。
また、イメージプロセッサ311による字幕描画(S704)が終了した場合、イメージプロセッサ311による字幕消去(S706)のが終了した場合、および、字幕表示終了時刻でないと判断(S705でNo)された場合、プレイリスト再生の終了確認(S702)以降の処理を繰り返す。
また、プレイリスト再生が終了したことが確認されると(S702でYes)、字幕表示系の処理は強制的に終了する。
以上の動作により、BD−ROMプレーヤは、ユーザの指示またはBD−ROMに記録されているBD管理情報等に基づき、BD−ROMの再生に係る基本的な処理を行う。
(実施の形態2)
次に本発明の実施の形態2について説明する。
実施の形態2は、BDでの高輝度(HDR:High Dynamic Range)映像情報の記録または再生に関する内容である。実施の形態2は、基本的には実施の形態1に基づくため、実施の形態2において拡張されている部分または異なる部分を中心に、以下、説明する。
図31は、MPEG−4 AVC(別名H.264)、もしくはHEVC(別名H.265)のような映像符号化方式を用いて高輝度化メタデータを送る方法を説明する図である。ここでは、MPEG−2 Videoでのランダムアクセス性を高めるために用いられたGOP(Group Of Pictures)と同等のピクチャ参照構成から成る単位を、MPEG−4 AVC、もしくはHEVCでのGOPとして、複数のピクチャをグループ化して符号化している。
図31の(a)は、GOP先頭のピクチャ(first access unit)における複数のNALユニットの符号化順番を示している。GOP先頭のピクチャでは、1つのAU delimiter、1つのSPS、1つ以上のPPS、0個または複数のSEI message、ピクチャを構成する1つ以上のSliceのそれぞれのNALユニットが続いた後、必要に応じてFiller data、End of sequence、End of streamのそれぞれのNALユニットが続く。
SEI message(SEI(s))では、必要に応じて、Buffering period SEI messageに続けて、他の幾つかのSEI messageが続く。例えば、(1)このGOP内のピクチャの参照関係を示したUser data
unregistered SEI message(GOP)、(2)このピクチャのClosed Captioning情報を持つUser data unregistered SEI message(CC)、(3)このビデオシーケンス(VOB)内の全てのピクチャの中での最大輝度または最小輝度などの輝度範囲を示す基本的かつ静的な高輝度化メタデータを含むUser data unregistered SEI
message(HDRb)、(4)このピクチャもしくはGOP内の全てのピクチャの中での最大輝度または最小輝度などの輝度範囲を示すように、SEI message(HDRb)よりも詳細で動的な高輝度化メタデータを含むUser data unregistered SEI message(HDRe)、などの幾つかのSEI messageが、この順番で符号化されている。
上述のSEI message(HDRb)またはSEI message(HDRe)は、映像情報と一緒に伝送される。これは、マスタリングの際に利用された輝度に関する情報を伝送し、映像情報をデコードした後に得られる各ピクセルごとの輝度値(Y)が、実際にはどの程度の明るさ(cd/m^2)に相当するのかなどの情報を与えるためである。
例えば、ビデオをデコードした結果、輝度値(Y)が1000の値を持つピクセルのマスタリング時の輝度は5000cd/m^2だった、といったピクセルの持つ輝度とマスタリング時の輝度との相関情報などが、上述のSEI message(HDRb)またはSEI message(HDRe)に含まれる。また、プレーヤに接続したTVが表現できる最高輝度(cd/m^2)が取得された場合、ピクチャ全体の輝度方向のダイナミックレンジを変更するための情報を、上述のSEI message(HDRb)またはSEI message(HDRe)に持たせてもよい。
SEI message(HDRb)は、HDRビデオシーケンスであることを示すためにピクチャ単位もしくはGOP単位で伝送されるSEI messageであり、ビデオシーケンス(VOB)全体の静的な輝度に関する情報を伝送している。ここで言うHDRビデオシーケンスとは、SEI message(HDRb)が記録されているビデオシーケンスのこととする。
より詳細でかつ動的な輝度に関する情報を伝送するSEI message(HDRe)は、HDRビデオシーケンスに記録されている必要はなく、HDRビデオシーケンス中に1つも存在しなくてもよい。また、SEI message(HDRe)は、存在する場合には、必ずSEI message(HDRb)の直後に符号化されるSEI messageであり、ピクチャ単位もしくはGOP単位で輝度に関する情報を伝送している。
図31の(b)は、GOP先頭のピクチャではないピクチャ(non−first access unit)における複数のNALユニットの符号化順番を示している。GOP先頭でないピクチャでは、1つのAU delimiter、0個または1個のPPS、0個または複数のSEI message、ピクチャを構成する1つ以上のSliceのそれぞれのNALユニットが続く。さらにその後に、必要に応じて、Filler data、End of sequence、End of streamのそれぞれのNALユニットが続く。
SEI message(HDRb)またはSEI message(HDRe)は、それぞれ上記の情報を格納しており、この図31に示す方法では、ピクチャごとに付与されている。GOP単位で輝度に関する情報を伝送する場合には、SEI message(HDRb)およびSEI message(HDRe)はともにGOP先頭のピクチャのみに付与され、GOP先頭でないピクチャには一切付与されない。
図32は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する方法を説明する図である。なお、本実施の形態において、シーケンスは、ストリームと同義であってもよく、ストリームの一部であってもよい。1ピクチャ(1フレームまたは1 video access unit)を1PESパケットに格納して、HDRビデオストリームをPES化した後、PID=Xの各TSパケットのペイロードに、PESパケットにおけるデータが分割されて順番に格納される。
図32に示す方法の場合、同じPID(PID=X)の各TSパケットに、stream_id=0xE1のPESパケットとされる、SEI message(HDRe)まで含むHDRビデオシーケンスが、分割されて順番に格納される。なお、HDMI(登録商標)でHDRビデオシーケンスを出力する際に、図32に示す方法のように、SEI message(HDRe)の情報が伝送されると、ビデオシーケンス全体からSEI message(HDRe)を検索するための処理が重くなる場合がある。
図33は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する別の方法を説明する図である。1ピクチャ(1フレームまたは1 video access unit)を1PESパケットに格納して、HDRビデオストリームをPES化した後、PID=XとZのそれぞれのTSパケットのペイロードに、PESパケットにおけるデータが分割されて順番に格納される。
図33に示す方法の場合、PID=XのTSパケットに、stream_id=0xE1のPESパケットとしてHDRビデオシーケンスが格納され、SEI message(HDRe)のみがPID=ZのTSパケットに単独で格納されている。HDMI(登録商標)でHDRビデオを出力する際に、図33に示す方法のように、SEI message(HDRe)の情報が伝送されると、PID=ZのTSパケットにSEI message(HDRe)のみが格納されている。したがって、SEI message(HDRe)を検索するための処理は軽い。
PID=XのTSパケットで伝送されるHDRビデオシーケンスのみをデコードするのは簡単である。しかし、SEI message(HDRe)までを含んだ更に高輝度な映像再生を行うためには、PID=XとZのそれぞれのTSパケットを同一のTBバッファ(MPEG−2 SystemのT−STDモデルにて使われる前段バッファ)に伝送する追加処理が必要となる。
図34は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する別の方法を説明する図である。1ピクチャ(1フレームまたは1 video access unit)を分割して3つのPESパケットのそれぞれに格納して、ビデオストリームをPES化する。その後、3つのPESパケットのそれぞれは、必要に応じて分割され、PID=Xの各TSパケットのペイロードに順番に格納される。
図34に示す方法の場合、PID=XのTSパケットに、stream_id=0xE1の2つのPESパケットとしてHDRビデオシーケンスが格納される。そして、SEI
message(HDRe)のみが、同じstream_id=0xE1ながらPES_priority=0のPESパケットとして、同じPID=XのTSパケットに単独で格納されている。
HDMI(登録商標)でHDRビデオを出力する際に、図34に示す方法のように、SEI message(HDRe)の情報が伝送されると、PID=Xの各TSパケットから、stream_id=0xE1でPES_priority=0のPESパケットが検索される。したがって、SEI message(HDRe)を検索するための処理は、図33に示す方法のようには軽くはない。
しかし、PID=XのTSパケットで伝送されるHDRビデオシーケンスのみをデコードするのも、HDRビデオシーケンスだけでなくSEI message(HDRe)も含めてデコードするのも大きな差異はなく、図34に示す方法は実現可能である。
尚、PES_priorityの値は必ずしもこの組み合わせでなくても良く、SEI
message(HDRe)を格納するPESパケットだけがPES_priority=1を取るようにしていても同様の効果を発揮することができる。
図35は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する別の方法を説明する図である。図34に示す方法との違いは、図35に示す方法では、SEI message(HDRe)を含むPESパケットを格納するTSパケットのtransport_priorityが0である点である。
HDMI(登録商標)でHDRビデオを出力する際に、図35に示す方法のように、SEI message(HDRe)の情報が伝送されると、PID=Xでtransport_priority=0のTSパケットからSEI message(HDRe)が解析される。したがって、SEI message(HDRe)を検索するため処理量は、図33に示す方法とほぼ同じように軽く、図35に示す方法を実現することは可能である。
また、この場合には、HDRビデオシーケンスのみをデコードするのも、HDRビデオシーケンスだけでなくSEI message(HDRe)も含めてデコードするのも、T−STDモデル上では差異はなく、図35に示す方法を実現することができる。例えば、TSデコーダのPIDデマルチプレクサは、transport_priorityの値にも基づいてストリームを分離する。これにより、SEI message(HDRe)には対応せず、SEI message(HDRb)までの情報を用いて高輝度化するデコーダは、上述のPIDデマルチプレクサによって、SEI message(HDRe)を含むTSパケットを容易に破棄することが可能である。
尚、transport_priorityの値は必ずしもこの組み合わせでなくても良く、SEI message(HDRe)を格納するTSパケットだけがtransport_priority=1を取るようにしていても同様の効果を発揮することができる。
図36は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する別の方法を説明する図である。この図36に示す方法では、図33に示す方法のように、PIDを2種類使い、図34または図35に示す方法のように、PESパケットを構成している。この図36に示す方法は、図33に示す方法と同じような利点と欠点を併せ持つ。
図37は、SEI message(HDRe)まで含むHDRビデオストリームをMPEG−2 TSで多重化する別の方法を説明する図である。この図37に示す方法では、SEI message(HDRe)を、SEI message(HDRb)などが格納されているPESパケットとは別のPESパケットである、PES_priority=0のPESパケットに格納する。そして、スライスNALユニットを格納し終わった後に、PES_priority=0のPESパケットを、PID=XのTSパケットとは別のPID=ZのTSパケットにて多重化している。SEI message(HDRe)の多重化位置はピクチャデータ直後となっている。したがって、図37に示す方法では、SEI message(HDRb)までのHDRビデオシーケンスが1つのPESパケットに格納されている。この点を除き、図37に示す方法は、図33に示す方法と同じような利点と欠点を併せ持つ。
図38は、SEI message(HDRe)の代わりに、HDRビデオシーケンスとは別のビデオシーケンスである拡張ビデオシーケンスをMPEG−2 TSで多重化する方法を説明する図である。この図38に示す方法では、SEI message(HDRe)で高輝度拡張メタデータを伝送するのではなく、拡張ビデオシーケンス(Enhancement layer video sequence)を、HDRビデオシーケンス(Base layer video sequence with user data unregistered SEI message(HDRb))に対する拡張映像情報として伝送する。
例えば、上記HDRビデオシーケンスに含まれるBase frame PES#nの基本ピクチャに対して、拡張ビデオシーケンスに含まれるEnhancement frame PES#nの拡張ピクチャを加える。これにより、HDRビデオシーケンスの高輝度拡張を、SEI messageよりも更に多くのデータを用いながら、より正確に行うことが可能になる。ここで、対応するピクチャ同士は同じPTSを持つようにして、ピクチャ間の相関が示されていても良い。例えば、「基本ピクチャのPTS#b1」=「拡張ピクチャのPTS#e1」を示す相関が示される。
上述の基本ビデオシーケンスと拡張ビデオシーケンスとは、夫々全く異なる2本のビデオシーケンスとして異なるPIDで異なるPESパケットでMPEG−2 TSへ多重化される。
PMTパケットには、基本ビデオシーケンスと拡張ビデオシーケンスとのペアを正しく指定するために、descriptor()を用いてそのペアを表現しても良い。例えば、この図38に示す方法では、PMTパケットの中に、HDR_pairing_descriptor()が記述される。HDR_pairing_descriptor()には、このMPEG−2 TS内のペア数(number_of_HDR_pairs)と、ペアごとの基本ビデオシーケンスと拡張ビデオシーケンスとが用いるPID値とが含まれる。基本ビデオシーケンスが用いるPID値は、base_layer_video_sequence_PIDによって示され、拡張ビデオシーケンスが用いるPID値は、enhancement_layer_video_sequence_PIDによって示される。このようなHDR_pairing_descriptor()が記述されることで、正しいペアの組み合わせを示すことができる。
図39は、1つの表示単位を構成する字幕映像ストリームの構造を示している。1つの表示単位の字幕映像ストリームは、Presentation Setと呼ばれ、PMデータで始まりENDで終わる構造である。以下個々のデータセグメントについて説明する。
PM(Presentation Manager)は必ず字幕映像ストリームの各Presentation Setの先頭に配置されるデータセグメントであり、以下のデータフィールドを含む。
seg_typeはセグメントの種別を表しており、図39に示すようにseg_type=0x01の場合であれば、それを含むデータセグメントがPMであることを示している。
presen_set_stateはこのPresentation Setが字幕の1つの表示単位として字幕表示に必要なデータを全て含むタイプか、表示色のみを変更するような部分的な更新データだけを格納するタイプなのかを示している。
bitmap_id_refはこのPresentation Setが表示する字幕映像のビットマップの識別情報(bitmap_id)を示している。
window_id_refはこのPresentation Setが利用する表示領域の識別情報(window_id)を示している。
bitmap_pos_x及びbitmap_pos_yはbitmap_id_refで指定されたビットマップの左上座標の位置を示している。
palette_id_refはこのPresentation Setが利用する表示色インデックスカラーテーブルの識別情報(palette_id)を示している。
palette_update_judgeはこのPresentation Setが表示色インデックスカラーテーブルのみを更新するタイプのPresentation
Setか否かを示している。palette_update_judge=1の場合は表示領域及びビットマップ自体は直前のPresentation Setと同じであるが、表示色インデックスカラーテーブルのみが変わる。これにより、例えば、カラオケのような徐々に色が変わるような図柄の表示制御をデータサイズが大きいビットマップを再送せずに実現することができる。
WIN(WINdow)はPM直後に配置されるデータセグメントであり複数並べてもよい。WINはPresentation Setが用いる表示領域を指定するデータセグメントであり、以下のデータフィールドを含む。
seg_type=0x02で、このデータセグメントがWINであることが示される。
window_idは、このWINで指定される表示領域を識別するための情報である。
window_pos_x及びwindow_posは、この表示領域の左上座標値を示している。_window_size_x及びwindow_size_yは、この表示領域の横方向(x)及び縦方向(y)のサイズをピクセル精度で示している。
なお、表示領域をこのように区切るのは、限られたデコーダ伝送帯域の条件下であっても、表示領域を絞ることで、表示更新間隔を早くすることができるからである。
PAL(PALette)はWIN直後に配置されるデータセグメントであり複数並べてもよい。PALはPresentation Setが用いる表示色(インデックスカラー)を格納したデータセグメントであり、以下のデータフィールドを含む。
seg_type=0x03で、このデータセグメントがPALであることが示される。
palette_idは、この表示色インデックスカラーテーブルを識別するための情報である。
palette_versionは、同じpalette_idを持つPALの中でのバージョン(更新の有無)を示している。このpalette_versionは、表示色インデックスカラーテーブルのみを更新するようなPresentation Set(palette_updata_judge=1)において、palette_idは固定ながらpalette_versionのみを更新する目的で利用することができる。
color_indexはカラーインデックスの番号(例えば0から255)を示している。
Y、Cr、Cb及びalphaは該当するカラーインデックス番号(color_index)が実際に意味する色情報を示す。当該色情報は、Y(輝度情報)、Cr/Cb(色差情報)、alpha(透過度情報)として夫々格納される。これによりBMP()にて指定されるインデックスカラー番号(color_index)に対応する色が特定される。このカラーインデックスはループ処理により最大255色が登録される。
BMP(BitMaP)はPAL直後に配置されるデータセグメントで複数並べてもよい。例えば、複数の字幕映像が同時に表示される場合に、複数のWIN、PAL及びBMPが配置される。BMPはPresentation Setが格納する字幕映像のビットマップ情報を格納している。
seg_type=0x04で、このデータセグメントがBMPであることが示される。
bitmap_idは、このビットマップ映像情報の識別情報である。
bitmap_versionは、このビットマップのバージョン(更新の有無)を示している。
bitmap_size_x及びbitmap_size_yは、このビットマップを展開した際のx及びy方向のサイズをピクセル精度で記述している。
bitmap_image_data()は、このビットマップ映像を圧縮符号化したデータを格納している。
このように、1つの字幕表示単位であるPresentation Setは、1回の字幕表示もしくは字幕更新に必要な情報をデータセグメント化して転送するためのエレメンタリストリームである。字幕ストリームは、このPresentation Setを複数ならべて字幕を更新させるものである。
図40は、図39で説明した字幕表示時の位置関係を示す図である。
字幕を表示するプレーンは左上を原点としてx及びy座標軸が夫々右及び下方向へ向かう。このプレーン内に表示領域(WIN)が配置され、その表示領域の内部に、ビットマップイメージ(BMP)が配置される。
図41は、図5などで説明した管理情報(管理情報ファイル)と、その内容を説明する図である。
図41の(a)に示されるように、BD.INFOファイルには、ディスク全体の代表属性情報を記述したDiscInfo()と、BD.INFOの拡張データ領域であるExtension()とが含まれる。Extension()には、Disc_Type()とHDR_meta()とが含まれる。
Disc_Type()は、これが記録されたディスクの物理的特性を示す拡張情報である。Disc_Type()内のdisc_typeフィールドに示される3bitの情報に基づいて、下記のようにディスク種別の識別が可能である。
disc_type: 3bits (bslbf)
010b: 25GB/layerの記録密度を持ち、72Mbpsで読み込みが必要なディスク
011b: 25GB/layerの記録密度を持ち、92Mbpsで読み込みが必要なディスク
100b: 33GB/layerの記録密度を持ち、92Mbpsで読み込みが必要なディスク
101b: 33GB/layerの記録密度を持ち、122Mbpsで読み込みが必要なディスク
110b: 33GB/layerの記録密度を持ち、144Mbpsで読み込みが必要なディスク
BD.INFOファイル内のHDR_meta()には、このディスクに対するHDR関連のメタデータが記述されている。
また、図41の(b)に示されるように、XXX.PLファイルには、前述の情報に加えて、CellList内に拡張ビデオストリーム(Enhancement layer video stream)の再生制御情報が記述されたSubPLList()が含まれる。また、XXX.PLファイルの拡張データ領域であるExtension()内には、HDR_meta()とCombiExt()とを記録できる。
XXX.PLファイル内のHDR_meta()は、このプレイリストに対するHDR関連のメタデータが記述されている。
また、プレイリストファイルのExtension()内には、CombiExt()が格納される。CombiExt()は、後述する図42に記載されたCombi()と同じデータ構造とセマンティックスを持ち、同時に再生可能なエレメンタリストリームの組み合わせを示す情報である。CombiExt()には、標準輝度範囲のビデオストリーム(以下、SDRビデオストリームとも記載する)と、当該SDRビデオストリームと一緒に再生可能な標準輝度範囲の字幕ストリーム(以下、SDR字幕ストリームとも記載する)やオーディオストリームなどが登録されている。
また、図41の(c)に示されるように、YYY.VOBIファイルには、当該VOBの使用用途を表す情報(VOB_type)、システムストリームの最大ビットレートを示す情報(SysRate)、ビデオストリームの属性情報(Video#0()など)、オーディオストリームの属性情報(Audio#0()など)、字幕ストリームの属性情報(Subtitle#0()など)を記録できる。また、YYY.VOBIファイルには、ランダムアクセスポイントが列挙されたTMAP()を記録できる。また、YYY.VOBIの拡張データ領域であるExtension()内には、HDR_meta()とTMAPExt()とを記録できる。
YYY.VOBIファイル内のHDR_meta()は、このVOBストリームに対するHDR関連のメタデータが記述されている。
TMAPExt()は、図13、図14、及び図15で示すようなランダムアクセスのテーブル情報であるTMAP()と、同じデータ構造及び同じセマンティックスを有する。TMAPExt()には、標準輝度(SDR)のビデオストリームに対するランダムアクセスポイント情報が格納される。
VOB_typeに格納される値は、下記のような意味である。
VOB_type=0x01(Main TS for movie application)である場合は、これが記述されたVOBが、通常の映画などの映像再生で使われるVOB(MPEG−2 TSストリーム)であることを意味する。
VOB_type=0x10(Sub TS for Enhancement layer video stream)である場合は、これが記述されたVOBが拡張ビデオストリームを多重化した、SubPLでのみ利用可能なVOB(MPEG−2 TSストリーム)であることを意味する。
図42は、図41で説明したデータベースファイルのデータ構造を示す図である。
図42の(a)に示されるように、Cell#n()は、n番目のCellの情報である。Cell#n()は、当該Cell#n()において参照されるVOBストリームファイルの識別情報(VOBName)、Closed Captioningの情報(CC)、当該Cell#n()の再生開始時刻情報(In)、当該Cell#n()の再生終了時刻情報(Out)、当該Cell#n()内で同時に再生可能なエレメンタリストリームの組み合わせを示すCombi()情報などから構成される。
Combi()には、当該Combiを含むCell#n()において同時に再生できる組み合わせとして許可されているエレメンタリストリームごとに様々な符号化属性情報が記述される。
図42の(b)に示されるように、許可されているエレメンタリストリームがビデオストリームであれば、Combi()には、そのビデオストリームのPIDのような特定情報(VideoPID)、解像度及びアスペクトなどの符号化属性情報(VideoFormat)などが記述される。
許可されているエレメンタリストリームが図38で示したような拡張ビデオストリームであれば、Combi()には、その拡張ビデオシーケンスのPIDのような特定情報(EnhVideoPID)、ビットデプス情報(EnhVideoBitDepth)、及び最高輝度情報(EnhVideoMaxLum)などが記述される。
許可されているエレメンタリストリームがオーディオストリームであれば、Combi()には、そのオーディオストリームのPIDのような特定情報(AudioPID)、符号化方式(Coding)、及びチャンネル数(Ch.)などが記述される。
許可されているエレメンタリストリームが字幕ストリームであれば、その字幕ストリームのPIDのような特定情報(SubtitlePID)、及び字幕の言語情報(Language)などが記述される。
図42の(c)に示されるように、SubPL#n()は、n番目の追加の副再生経路を指定する情報である。SubPL#n()は、例えば、HDRビデオストリームと組み合わせて一緒に再生されるべき拡張ビデオストリームを指定する情報である。
SubPL#n()に含まれるSubPL_type情報は、HDRビデオストリームと拡張ビデオストリームとの再生方法の種別を示す情報である。同期/非同期、または、再生に利用されるシステムストリーム本数(1or2本)などを特定するために用いられる。
SubPL_type=0x0A(Synchronous Enhancement
Layer Video SubPL in Sub TS)は、2本のシステムストリーム(MPEG−2 TS)の一方からHDRビデオストリームを読み出し、他方から拡張ビデオストリームを読み出し、読み出したストリーム同士を同期して再生する再生方法の種別である。なお、ここでの「同期」は、HDRビデオストリームのあるピクチャは、必ず拡張ビデオストリームのあるピクチャとしか同時に再生されないという固定的な関係にあることを意味する。
SubPL_type=0x0B(Synchronous Enhancement
Layer Video SubPL in Main TS)は、1本のMPEG−2 TSの中にあるHDRビデオストリームと、拡張ビデオストリームとを同期して再生する再生方法の種別である。
SubCellList情報は、SubCell情報が束ねられた情報である。
SubCell情報は、拡張ビデオストリームを含む1連続区間(SubCell)が参照するVOBファイルのファイル名(VOBName)、SubCell開始時刻情報(In)、SubCell終了時刻情報(Out)、及び、同時に再生されるCellの識別情報(CellNum)とを含む。
このようなSubPL#n()は、どのような再生モデルで、どのファイルを用いて、HDRビデオストリームと拡張ビデオストリームとが再生されるのかをプレーヤに指示することができる。
図43は、SubPL_type=0x0Aの場合における管理情報の各フィールドの意味を説明する図である。
SubPL_type=0x0Aの再生モデルでは、2本のシステムストリームファイル(MPEG−2 TS)を用いて、HDRビデオストリーム(HDRb)をMain TSから、その拡張ビデオストリーム(Enh. Layer Video)をSub TSから、同時に読み出しながら再生する。
Cell#0にて指定される再生区間として、HDRビデオストリーム(HDRb)におけるCell#0.InからCell#0.Outまでの再生区間が再生される。この再生に同期して、SubCell#0にて指定される連続区間として、拡張ビデオストリームにおけるSubCell#0.InからSubCell#0.Outまでの連続区間が再生される。これにより、後述の図45に示す基本デコーダ401にて復号されるHDRビデオストリーム(HDRb)よりもより高輝度でより量子化精度が高い高輝度映像情報が出力される。
SubPL_type=0x0Aの再生モデルでは、2本のビデオストリームは同期して再生されるため、Cell#0.InとSubCell#0.Inとは同一であり、かつ、Cell#0.OutとSubCell#0.Outとは同一である。なお、Cell#0.In、Cell#0.Out、SubCell#0.InおよびSubCell#0.OutはそれぞれPTS時間軸で表現される時刻である。
ここで、VOB_type=0x10 (Sub TS for Enh. Layer Video)は、このSubPL_type=0x0A (Synchronous
Enhancement Layer Video SubPL in Sub TS)の再生モデルのみに利用される。
図44は、SubPL_type=0x0Bの場合における管理情報の各フィールドの意味を説明する図である。
SubPL_type=0x0Bの再生モデルでは、1本のシステムストリームファイル(MPEG−2 TS)の中に、HDRビデオストリーム(HDRb)と、その拡張ビデオストリームとが多重化されており、それらのストリームを同時に再生する。このように、SubPL_type=0x0Bの再生モデルでは、基本ビデオストリームと拡張ビデオストリームとが同一のトランスポートストリームに多重化されている。これにより、基本ビデオストリームと拡張ビデオストリームとを明確に対応付けることができ、広いダイナミックレンジの映像情報を適切に再生することができる。
Cell#0にて指定される再生区間として、HDRビデオストリーム(HDRb)におけるCell#0.InからCell#0.Outまでの再生区間が再生される。この再生に同期して、SubCell#0にて指定される連続区間として、拡張ビデオストリームにおけるSubCell#0.InからSubCell#0.Outまでの連続区間が再生される。これにより、後述の図45に示す基本デコーダ401にて復号されるHDRビデオストリーム(HDRb)よりもより高輝度でより量子化精度が高い高輝度映像情報が出力される。
このように、SubPL_type=0x0Bの再生モデルでは、2本のビデオストリームは、同一のシステムストリームファイル(MPEG−2 TSであるMain TS)に多重化されており、同期して再生される。したがって、Cell#0.InとSubCell#0.Inとは同一であり、かつ、Cell#0.OutとSubCell#0.Outとは同一である。
つまり、管理情報ファイルであるPlayListには、基本ビデオストリームの再生経路に含まれる第1の区間と、拡張ビデオストリームの再生経路に含まれる第2の区間とが互いに対応付けて記述されている。そして、その第1の区間と第2の区間の再生時間は同じである。具体的には、PlayListには、互いに同一の時刻である、第1の区間の再生開始時刻と、第2の区間の再生開始時刻とが記述され、さらに、互いに同一の時刻である、第1の区間の再生終了時刻と、第2の区間の再生終了時刻とが記述されている。これにより、基本ビデオストリームと拡張ビデオストリームとを適切に同期させて再生することができる。
図45は、本実施の形態におけるHDRビデオストリームのデコーダモデルを説明する図である。
本実施の形態における再生装置は、デコーダシステム400を備えている。デコーダシステム400は、上述の各管理情報ファイルに基づいて、基本ビデオストリームまたは拡張ビデオストリームなどのビデオストリームと、字幕などを示すグラフィックスデータとを、BDから読み出して再生する映像再生部である。
デコーダシステム400は、基本デコーダ(Base Dec)401、拡張デコーダ(Enh. Dec)402、基本プレーン(Base plane(HDRb))403、拡張プレーン(Enh. plane)404、拡張プレーン(HDRe plane)405、Base+Enh.プレーン406、字幕デコーダ(Sub. Dec)407、字幕プレーン(Subtitle Plane(8bit))408、グラフィックスプロセッサ(GP)409、高輝度字幕プレーン(Subtitle Plane(HDRb/e))410、および高輝度字幕プレーン(Subtitle Plane(Base+Enh.))411を備える。
SEI message(HDRb)を含むHDRビデオストリームは、基本デコーダ(Base Dec)401にてデコードされる。そして、そのHDRビデオストリームのデコードによって生成された高輝度映像情報は、基本プレーン(Base plane(HDRb))403に展開される。ここで、SEI message(HDRb)に含まれる基本的な輝度情報(コンテンツ全体での最高/最低輝度値)などは、その高輝度映像情報と一緒に伝送されて、HDMI(登録商標)などの外部映像出力I/Fへと出力される。
SEI message(HDRe)に対応した再生装置であるデコーダシステム400は、基本プレーン(Base plane(HDRb))403の高輝度映像情報に対して、SEI message(HDRe)の輝度拡張情報を加えて、拡張プレーン405に拡張高輝度映像情報を展開する。このSEI message(HDRe)までを加えた拡張高輝度映像情報は、SEI message(HDRe)に含まれる追加の輝度情報(シーン単位での最高/最低輝度値)などと一緒に、HDMI(登録商標)などの外部映像出力I/Fへと出力される。
上述の拡張ビデオストリームに対応した再生装置であるデコーダシステム400では、拡張ビデオストリームを拡張デコーダ(Enh. Dec)402にてデコードする。そして、そのデコードによって生成された拡張映像情報は、拡張プレーン(Enh. plane)404に展開される。デコーダシステム400は、この拡張映像情報を、基本プレーン(Base plane(HDRb))403の高輝度映像情報と、同じPTSを持つ映像同士で合成する。この合成によって得られた拡張高輝度映像情報は、Base+Enh.プレーン406に展開される。デコーダシステム400は、この拡張高輝度映像情報を、SEI message(HDRb)にて伝送される基本的な輝度情報、または拡張ビデオストリーム内に格納された輝度拡張情報などと一緒に、HDMI(登録商標)などの外部映像出力I/Fへと出力する。
ここで、ビデオに重畳するグラフィックスデータ、例えば字幕ストリームは、字幕デコーダ(Sub. Dec)407にてデコードされることによって、8ビットのインデックスカラー(255色)にて表現される。デコードされた字幕ストリームである字幕は、字幕プレーン(Subtitle Plane(8bit))408へ展開される。グラフィックスプロセッサ(GP)409は、その字幕を表現する8ビット諧調のYCrCbを10ビット諧調のYCrCbへ、さらに、字幕の輝度を標準輝度から、(高輝度映像情報または拡張高輝度映像情報に合わせた)高い輝度へ変換する。高輝度に変換された字幕である高輝度字幕は、高輝度字幕プレーン(Subtitle Plane(HDRb/e))410に展開される。そして、高輝度字幕プレーン410に展開された高輝度字幕は、同一表示時刻を持つ、基本プレーン(Base plane(HDRb))403のピクチャか、拡張プレーン(HDRe plane)405のピクチャと合成されて出力される。
また、Base+Enh.プレーン406に拡張高輝度映像情報がある場合または、SubPL_type=0x0A or 0x0BのPlayListが再生されている場合には、グラフィックスプロセッサ(GP)409は、字幕を表現する8ビット諧調のYCrCbを12ビット諧調のYCrCbへ変換する。さらに、グラフィックスプロセッサ(GP)409は、字幕を拡張ビデオストリームにあわせて重畳するため、字幕の輝度を標準輝度から、(拡張ビデオストリームを用いて生成された拡張高輝度映像情報に合わせた)より高い輝度に変換する。より高い輝度に変換された字幕である高輝度字幕は、高輝度字幕プレーン(Subtitle Plane(Base+Enh.))411に展開される。そして、高輝度字幕プレーン411に展開された高輝度字幕は、同一表示時刻を持つ、Base+Enh.プレーン406のピクチャと合成されて出力される。
ここで、グラフィックスプロセッサ(GP)409は、字幕プレーン(Subtitle Plane(8bit))408に展開された字幕に対するインデックスカラーテーブル(CLUT)を、字幕デコーダ(Sub. Dec)407から取得する。このインデックスカラーテーブル(CLUT)においては、字幕に合成される映像情報がSDRビデオストリームであるかHDRビデオストリームであるかに応じて、SDR用のCLUT及びHDR用のCLUTのいずれか一方のCLUTのみが多重化されている。また、映像情報のHDR種別は複数あるが、字幕ストリームのCLUTは、1種類のみがHDR用として提供される。
図46は、データベースファイルへの各ストリームの登録方法を示す図である。図46は、プレイリストファイルに格納されるCombi()、CombiExt()、及び、SubPL()と、VOBIファイルに格納されるTMAP()及びTMAPExt()との5つのデータブロックに対して、ビデオストリームの組み合わせに応じてどこにどのような情報が登録及び管理されるのかを示す表である。尚、図46におけるELは、拡張ビデオストリームを指している。図46におけるHDRは、HDRbまたはHDReを指している。
SDRビデオストリームだけがプレイリストファイルに登録される場合には、Combi()に、当該SDRビデオストリームと、それに重畳されるSDR字幕ストリーム(SDR用のPALのみを持つ字幕ストリーム)と、音声ストリームとが登録される。TMAP()には、SDRビデオストリームのランダムアクセス情報が登録される。
同様に、HDRビデオストリームだけがプレイリストに登録される場合には、Combi()に、当該HDRビデオストリームと、それに重畳されるHDR字幕ストリーム(HDR用のPALのみを持つ字幕ストリーム)と、音声ストリームとが登録される。TMAP()にはHDRビデオストリームのランダムアクセス情報が登録される。
次に、HDRビデオストリームとSDRビデオストリームとの2本が1つのプレイリストに登録される場合について説明する。この場合、Combi()には、HDRビデオストリームと、それに重畳されるHDR字幕ストリームと、音声ストリームとが登録される。つまり、Combi()には、HDRビデオストリーム及びHDR字幕ストリームを組み合わせて再生することが指定された第一再生制御情報が格納される。
一方、TMAP()には、HDRビデオストリームのランダムアクセス情報が登録される。つまり、TMAP()には、HDRビデオストリームに含まれる独立して復号可能なピクチャの位置を示すランダムアクセス情報(以下、第一ランダムアクセス情報とも記載する)が格納される。
これに加えて、CombiExt()には、SDRビデオストリームとそれに重畳されるSDR字幕ストリームと、音声ストリームとが登録される。つまり、CombiExtには、SDRビデオストリーム及びSDR字幕ストリームを組み合わせて再生することが指定された第二再生制御情報が格納される。
そして、TMAPExt()には、SDRビデオストリームのランダムアクセス情報が登録される。つまり、TMAPExt()には、SDRビデオストリームに含まれる独立して復号可能なピクチャの位置を示すランダムアクセス情報(以下第二ランダムアクセス情報とも記載する)が格納される。
次に、HDRビデオストリームと拡張ビデオストリーム(図46ではELと表記)との2本が1つのプレイリストに登録される場合について説明する。この場合、Combi()には、HDRビデオストリームと、それに重畳されるHDR字幕ストリームと、音声ストリームとが登録される。TMAP()には、HDRビデオストリームのランダムアクセス情報と拡張ビデオストリームのランダムアクセス情報とが登録される。つまり、この場合、TMAP()には、上記第一ランダムアクセス情報と、拡張ビデオストリームに含まれるピクチャの再生時刻を示すランダムアクセス情報(以下、第三ランダムアクセス情報とも記載する)が格納される。
さらに、SubPL()には、拡張ビデオストリームの再生制御情報が登録される。つまり、SubPL()には、HDRビデオストリームの輝度範囲を拡張するための拡張ビデオストリームが指定された第三再生制御情報が格納される。これは、図43及び図44を用いて説明されたパターンである。
次に、HDRビデオストリームと輝度拡張用ビデオストリームとSDRビデオストリームとの3本が1つのプレイリストに登録される場合について説明する。この場合、Combi()には、HDRビデオストリームと、それに重畳されるHDR字幕ストリームと、音声ストリームとが登録される。TMAP()には、HDRビデオストリームのランダムアクセス情報と、拡張ビデオストリームのランダムアクセス情報とが登録される。
さらに、SubPL()には、拡張ビデオストリームの再生制御情報が登録される。加えて、CombiExt()には、SDRビデオストリームと、それに重畳されるSDR字幕ストリームと、音声ストリームとが登録される。TMAPExt()には、SDRビデオストリームのランダムアクセス情報が登録される。
次に、SDRビデオストリームと拡張ビデオストリームとの2本が1つのプレイリストに登録される場合について説明する。この場合、Combi()には、SDRビデオストリームと、それに重畳されるSDR字幕ストリームと、音声ストリームとが登録される。TMAP()には、SDRビデオストリームのランダムアクセス情報と、拡張ビデオストリームのランダムアクセス情報が登録される。さらに、SubPL()には、拡張ビデオストリームの再生制御情報が登録される。
ただし、このケースは、拡張ビデオストリームを用いてSDRビデオストリームを高輝度/高ビット精度のHDR映像へ変換することができる場合にのみ適用される。
このように、HDRビデオストリームとSDRビデオストリームとを1つのプレイリストに登録する際には、HDRビデオストリームとセットになるストリームは、Combi()に登録され、SDRビデオストリームとセットになるストリームは、CombiExt()に登録される。つまり、HDRビデオストリームに関連するストリームのセットと、SDRビデオストリームに関連するストリームのセットとが全く別のセットとして別個に管理されている。
このような構成によれば、HDRビデオストリーム及びSDRビデオストリームのどちらを再生するかが決定されれば、プレーヤ(再生装置)は、Combi()及びCombiExt()のどちらか1方だけを処理すればよい。Combi()及びCombiExt()は、同じデータ構造であり、かつ、同じセマンティックスであるため、Combi()への処理とCombiExt()への処理の一部を共通化し、処理を簡単にすることができる。また、システムのオーサリングが容易であるという利点、及び、プレーヤの実装/動作検証が容易である(開発コストを削減できる)という利点がある。
ここで、「Combi()及びCombiExt()は、同じデータ構造、同じセマンティックスである」の意味について補足する。図41及び図42に示されるように、プレイリストファイルの中には、具体的には、Cell#nというデータブロックが設けられ、一つのCell#n()に、一つのCombi()が設けられる。
これに対し、CombiExt()は、Cell#n()に対する拡張データであるため、Combi()は、CombiExt()の一部に対応する。上記の「Combi()及びCombiExt()は、同じデータ構造、同じセマンティックスである」は、より詳細には、CombiExt()に格納された第二再生制御情報の一部が、Combi()に格納された第一再生制御情報の一部と実質的に同一のデータ構造及びセマンティックスを有することを意味する。言い換えれば、CombiExt()に格納された第二再生制御情報の一部は、Combi()に格納された第一再生制御情報の一部と共通のデータ構造及びセマンテティックスを有する。
また、Combi()と、CombiExt()とは、いずれもビデオストリームのPIDのような特定情報(VideoPID)を有していることも共通している。
以上のように、図46に示されるようにデータベースファイルに各ストリームが登録されたBDには、再生環境に応じて選択的に用いられる、SDRビデオストリーム及びSDRビデオストリームよりも輝度範囲の広いHDRビデオストリームが記録される。SDRビデオストリームは、言い換えれば、標準輝度範囲のビデオストリームであり、HDRビデオストリームは、言い換えれば、高輝度範囲のビデオストリームである。BDは、記録媒体の一例である。
また、このBDには、再生環境に応じて選択的に用いられる、SDR字幕ストリーム及びHDR字幕ストリームと、コンテンツの再生制御情報が格納されるプレイリストファイル(図46のXXX.PL)とが記録される。プレイリストファイルは、Combi()、及び、CombiExt()を含む。Combi()は、メインストリームに関する再生制御情報が格納される管理領域の一例であり、CombiExt()は、拡張領域の一例である。
そして、HDRビデオストリームとSDRビデオストリームが1つのプレイリストに登録される場合、Combi()には、HDRビデオストリーム及びHDR字幕ストリームを組み合わせて再生することが指定された第一再生制御情報が格納される。CombiExt()には、SDRビデオストリーム及びSDR字幕ストリームを組み合わせて再生することが指定された第二再生制御情報が格納される。
このような構成のBDを再生するプレーヤは、HDRビデオストリームを選択して再生する場合には、従来どおりCombi()内の第一再生制御情報を読み出せばよい。一方、プレーヤは、SDRビデオストリームを選択して再生する場合には、CombiExt()内の第二再生制御情報を読み出せばよい。
また、HDRとSDRとが両方記録されるBDでは、HDRビデオストリームに、SDR字幕ストリームまたはSDRグラフィックスが重畳されてしまうことが想定される。つまり、高輝度の映像に輝度が不足した字幕及びグラフィックスが重畳されてしまうことが想定される。しかしながら、HDRビデオストリームとSDRビデオストリームが1つのプレイリストに登録される場合、Combi()に登録されるHDRビデオストリームには、当該Combi()の中でHDR字幕ストリームが組み合わされているため、HDRビデオストリームにSDR字幕ストリームが組み合わされるといったことが生じない。逆に、CombiExt()に登録されるSDRビデオストリームには、当該CombiExt()の中でSDR字幕ストリームが組み合わされているため、SDRビデオストリームにHDR字幕ストリームが組み合わされるといったことが生じない。
このように、上記BDによれば、ビデオストリームの選択などの再生制御が簡素化される。上記BDによれば、当該BDを再生するプレーヤの、ビデオストリーム選択処理及び再生処理を容易にすることができる。
また、第二再生制御情報の一部は、第一再生制御情報と共通のデータ構造を有する。これにより、プレーヤは、HDRビデオストリームとほぼ同様の処理でSDRビデオストリームの再生を行うことができる。
また、図46に示されるように、上記BDには、さらに、上記BDの全体に関する属性を示すVOBIファイルが記録される。VOBIファイルは、TMAP()及びTMAPExt()を含む。TMAP()及びTMAPExt()のそれぞれには、ビデオストリームに含まれる独立して復号可能なピクチャの当該ビデオストリーム内の位置を示すランダムアクセス情報が格納される。VOBIファイルは、管理情報ファイルの一例であり、TMAP()は、マップ領域の一例であり、TMAPExt()は、拡張マップ領域の一例である。
TMAP()には、HDRビデオストリームに含まれる独立して復号可能なピクチャの当該HDRビデオストリーム内の位置を示す第一ランダムアクセス情報が格納される。TMAPExt()には、SDRビデオストリームに含まれる独立して復号可能なピクチャの当該SDRビデオストリーム内の位置を示す第二ランダムアクセス情報が格納される。第一ランダムアクセス情報は、第一マップ情報の一例であり、第二ランダムアクセス情報は、第二マップ情報の一例である。
このような構成のBDを再生するプレーヤは、HDRビデオストリームを選択してランダムアクセス再生等を行うときには、TMAP()内の第一ランダムアクセス情報を読み出せばよく、SDRビデオストリームを選択してランダムアクセス再生等を行うときには、TMAPExt()内の第二ランダムアクセス情報を読み出せばよい。つまり、このようなBDによれば、当該BDを再生するプレーヤの、ビデオストリーム選択処理及び再生処理を、ランダムアクセス再生等を行う場合においても容易にすることができる。
また、図46に示されるように、上記BDには、さらに、メインストリームのファイルと同時に再生されるサブストリームに関する再生制御情報が記録されるサブプレイリストファイル(図46のSubPL())が記録される。サブプレイリストファイルには、HDRビデオストリームの輝度範囲を拡張するための拡張ビデオストリームに関する第三再生制御情報が格納される。そして、TMAP()には、第一ランダムアクセス情報と、拡張ビデオストリームに含まれる独立して復号可能なピクチャの当該拡張ストリーム内の位置を示す第三ランダムアクセス情報が格納される。第三ランダムアクセス情報は、第三マップ情報の一例である。
このような構成のBDを再生するプレーヤは、Combi()内の第一再生制御情報とSubPL()内の第三再生制御情報とを読み出すことにより、HDRビデオストリームと拡張ストリームとを同時に再生することができる。つまり、このようなBDによれば、当該BDを再生するプレーヤの、HDRビデオストリームの拡張処理を容易にすることができる。
また、プレーヤは、ランダムアクセス再生等を行うときには、TMAP()内の情報のみをさらに読み出せばよい。つまり、このようなBDによれば、HDRビデオストリームを拡張し、かつ、ランダムアクセス再生等を行う場合において、当該BDを再生するプレーヤの再生処理を容易にすることができる。
次に、プレーヤの再生処理について説明する。図47は、1つのプレイリストにHDRビデオストリームを含む第一再生制御情報と、SDRビデオストリームを含む第二再生制御情報と、拡張ビデオストリームを含む第三再生制御情報、の3つの再生制御情報を含む場合の、プレーヤの再生処理のフロー図である。図47に示されるように、プレーヤは、プレイリストファイルの実行開始後に、BDに記録されたコンテンツ、プレーヤのHDRビデオストリームのデコード対応可否、及び、プレーヤに接続されるテレビのHDRビデオストリームへの対応有無などに基づいてコンテンツの再生形態の判定を行う(S801)。
プレーヤは、判定の結果、コンテンツのHDR再生を行う場合には、Combi()に登録されたストリームセットを読み出して再生する(S802)。
言い換えれば、プレーヤ(再生装置)が備える映像再生部は、コンテンツをHDRのコンテンツとして再生する場合には、Combi()に格納された第一再生制御情報に基づいて、HDRビデオストリーム及びHDR字幕ストリームを読み出して再生する。
なお、映像再生部は、コンテンツをHDRのコンテンツとしてランダムアクセス再生等を行う場合には、第一再生制御情報及び第一ランダムアクセス情報に基づいて、HDRビデオストリーム及びHDR字幕ストリームを読み出して再生する。
また、プレーヤは、判定の結果、コンテンツの拡張HDR再生を行う場合には、Combi()とSubPL()とに登録されたストリームセットを読み出して再生する(S803)。
言い換えれば、プレーヤが備える映像再生部は、コンテンツをより拡張された輝度範囲のHDRコンテンツとして再生する場合、第一再生制御情報に基づいて、HDRビデオストリーム及びHDRの字幕ストリームを読み出して再生し、かつ、第三再生制御情報に基づいて、拡張ビデオストリームを読み出して再生する。
なお、映像再生部は、コンテンツをより拡張された輝度範囲のHDRコンテンツとしてランダムアクセス再生等を行う場合、第一再生制御情報及び第一ランダムアクセス情報に基づいて、HDRビデオストリーム及びHDR字幕ストリームを読み出して再生し、かつ、第三再生制御情報及び第三ランダムアクセス情報に基づいて、拡張ビデオストリームを読み出して再生する。
また、プレーヤは、判定の結果、コンテンツのSDR再生を行う場合には、CombiExt()に登録されたストリームセットを読み出して再生する(S804)。
言い換えれば、プレーヤが備える映像再生部は、コンテンツをSDRのコンテンツとして再生する場合には、第二再生制御情報に基づいて、SDRビデオストリーム及びSDR字幕ストリームを読み出して再生する。
なお、映像再生部は、コンテンツをSDRのコンテンツとしてランダムアクセス再生等を行う場合には、第二再生制御情報及び第二ランダムアクセス情報に基づいて、SDRビデオストリーム及びSDR字幕ストリームを読み出して再生する。
このように、上記BDによれば、当該BDを再生するプレーヤの、ビデオストリーム選択処理及び再生処理を容易にすることができる。
尚、上記の説明は一例に過ぎず、当該技術者にとっては、様々な応用が適用できる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
以上、一つまたは複数の態様に係る記録媒体、再生方法および再生装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲に含まれてもよい。
例えば、本発明は、上記のような記録媒体の製造方法(データの記録方法)または記録媒体の製造装置(データの記録装置)として実現されてもよい。