(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、DVDなどの記録媒体に関し、以下の問題が生じることを見出した。
映像データを記録した情報記録媒体の代表格は、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システムストリームとしてビット列を形成する順番と表示(デコード)されるタイミングにずれが生じている。
即ち、映像データと並んで多重化されている字幕データが必ずしも同一タイミングでデコードされているわけでは無い。
以上述べたようなDVDに関する技術は、特許文献1に記載されている。
ところで、映像再生中にマルチアングルで分岐をしたり、記録層の切り替えなどが発生したりしても連続して再生が続けられるようなジャンプルールについては考慮されていなかった。ジャンプしている時間は、データの読み込みができない時間であるため、その時間で映像の再生に消費されるビットストリームは予めバッファリングしておくことが必要になる。従って、所定の最大ジャンプ時間(およびストリームの最大ビットレート)を想定しなければ、プレーヤにおいてバッファリングするメモリのサイズなどを設計できない、という課題がある。
また、ブルーレイディスク(Blu−ray(登録商標) Disc(BD))のような大容量の記録媒体においては、非常に高品位な映像情報を格納できる可能性がある。例えば、4K(3840×2160ピクセルの解像度を持つ映像情報)やHDR(High Dynamic Rangeと一般に呼ばれる高輝度映像情報)を記録媒体に記録する場合には、最新の高圧縮率の映像符号化コーデック(HEVCなど)を用いても十分な画質を得るには100Mbps近くの非常に高いビットレートが必要になるケースがある。
しかしながら、このような高いビットレートのストリームをディスクから読み出すにはディスクの回転速度をこれまでよりもさらに高める必要がある。この結果として、ディスクの回転により生じる風切り音やドライブの振動の増加など、高品位な映画視聴を妨げる、という課題がある。
また、回転速度を高めるために、記録領域によって読み込みレートを変える場合には、高ビットレートでAVストリームを読み出しながら即座に読み込みレートを変えるドライブ制御が必要とされる。しかし、読み込みレートを変える境界点でシームレス再生を行うのは、高トルクモータを利用しないと難しいという課題がある。
以上の検討を踏まえ、本発明者は、上記課題を解決するために、下記の改善策を検討した。
本開示の一態様に係る記録媒体は、映像情報を符号化したデジタルストリームを含むデータを記録した記録媒体であって、前記記録媒体の記録領域は、第一読み込みレートで読み込まれる第一記録領域と、前記第一読み込みレートよりも速い第二読み込みレートで読み込まれる第二記録領域とを有し、前記データは、前記データのファイルシステムにおいて、リアルタイム属性を持つデジタルストリームと、非リアルタイム属性を持つデータファイルとに分類され、前記デジタルストリームは、前記第一記録領域と前記第二記録領域との境界を跨いで連続して記録されておらず、前記データファイルは、前記境界を跨いで連続して記録されることが許容されている。
これによれば、リアルタイム属性を持つデジタルストリームは、第一読み込みレートで読み込まれる第一記録領域と、第一読み込みレートよりも速い第二読み込みレートで読み込まれる第二記録領域との境界を跨いで連続して記録されていないため、デジタルストリームを読み込んでいるときに、読み込みレートを変えなくてすむ。このため、異なる読み込みレートで読み込まれる2つの記録領域がある場合であっても、高トルクモータを採用せずともデジタルストリームの読み込みを実現できる。
また、例えば、前記ファイルシステムは、UDF(Universal Disk Format)であり、前記デジタルストリームは、前記デジタルストリームのファイルタイプフィールドの値が249であるファイルであってもよい。
また、例えば、前記記録媒体は、ディスク状の記録媒体であり、前記第一記録領域と前記第二記録領域とで、読み出されるときの読み込み制御が異なってもよい。
なお、これらの全般包括的または具体的な態様は、装置、方法、システム、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能な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などの大容量の光ディスクでの高ビットレートの映像情報の記録および再生に関する内容である。基本的には実施の形態1に基づくため、拡張または異なる部分を中心に説明する。
図31は、大容量の光ディスクの記録層の配置を示す図である。
以下、図31を用いて大容量の光ディスク(以下「ディスク」と言う。)の2層ディスクおよび3層ディスクについて説明する。
2層ディスクでは、光ピックアップから遠い方に最初(1層目)の記録層L0があり、その手前に2層目の記録層L1が配置される。どちらの記録層もディスクの内周から外周まで円形に記録領域が広がっている。線速度一定(CLV:Constant Linear Velocity)でディスクに記録されたデータを読み込む場合には、ディスクの内周側から外周側へ向かう程、回転速度を落とすことができる。
3層ディスクの場合には、3層目の記録層としてL2層がL1層よりも光ピックアップに近い側へ配置される。大容量の光ディスクは、記録層内での記録密度を向上させたことと、複数の記録層を持たせることとにより大容量化されている。
図32は、3層ディスクの論理アドレスと、論理アドレスに対応するディスクの回転速度とを示す図である。具体的には、図32の(a)は、3層ディスクを半径方向で切断した際の記録層の構成の一例を示す図である。図32の(b)は、3層ディスクにおける論理アドレスに対応するディスクの回転速度の一例を示す図である。
各記録層は、3つの領域に分けられ、3層ディスクであれば、合計9つの記録領域から構成される。
各記録層は、図32に示すように内周側から、Lead−in/Inner Zoneと呼ばれる領域にその層の物理的特性(記録容量など)が記述され、Data Zoneと呼ばれる領域に実際の記録情報(映像データなど)が記録され、Outer Zone/Lead−outと呼ばれる領域でその層の外周端が示される構成となっている。
半径方向におけるディスクの中心からの距離である24mmから58mmの範囲に広がるData Zoneには、図32の(a)に示すようにL0層の内周から外周へ、続けてL1層の外周から内周へ、続けてL2層の内周から外周へと向かう方向へ論理アドレスが連続して割り振られている。物理アドレスと論理アドレスとは1対1に関係付けられ、1つの論理アドレスがどの物理アドレスに相当するのかは容易に導出できるように規定されている。
ここで、この論理アドレス空間(例えばBDの3層ディスクの場合は100GBに及ぶ)に固定ビットレートのストリームを全面的に記録して線速度一定(CLV方式)で読み込む場合には、図32の(b)に示すように論理アドレスに対して物理的に最内周近辺(0GB、66GBの2箇所)に記録されたデータを読み込む場合に、ディスクの回転速度が高くなる。ディスクの回転速度が高まれば、ディスクの回転により大きな風切り音が発生したり、ディスクの重心のブレが原因でディスクドライブ自体が振動することによるノイズが発生したりする。このような現象はBDのような映画視聴を目的としたディスクの場合、特に静かなシーンを再生しているときなどにおいて、ドライブからの異音により映像視聴体験の品位を顕著に下げてしまう原因となる。これを軽減するため、ドライブ自体を金属の箱で覆ったり、ドライブを重くすることにより共振を防いだりすることも可能だが、何れもコストアップとのトレードオフである。
高品質な映像視聴体験を提供するために、4Kのように高ビットレートの映像ストリームを再生しても、再生中にドライブから発生するノイズが気になってしまうのは大きな課題である。以下ではこれを解決するためのディスク上のデータの配置方法について説明する。
図33は、ディスクからの読み込みレートを切り替えて読み込む方式の一例について説明するための図である。具体的には、図33の(a)は、読み込みレートを切り替えて再生される場合の、3層ディスクを半径方向で切断した際の記録層の構成の一例を示す図である。図33の(b)は、最大読み込みレートを切り替えて再生される場合の、3層ディスクにおける論理アドレスに対応する最大読み込みレートの一例を示す図である。つまり、図33の(b)は、論理アドレスに対してドライブの最大読み込みレートがどのように変化するかを示した図である。
図33の(a)に示すように、ディスクからの読み込みレートを半径距離(もしくは、ディスクの最大回転速度)に応じて2つの異なる読み込みレートに設定する方式とすることが考えられる。論理アドレスは、図32の(a)と同じように割り振られている。LRR(Low Read Rate) Zoneとして記録された、Data Zoneの内周側の領域でのドライブの最大読み込みレートをLRRとし、HRR(High Read Rate) Zoneとして記載したData Zoneの外周側の領域でのドライブの最大読み出しレートをHRRとしている。なお、HRRの方がLRRよりも高い読み込みレートである。
図33に示すように、まず、L0層のLRR Zoneで読み込みレートが低いLRRの領域があり、L0層のHRR ZoneおよびL1層のHRR Zoneで読み込みレートが高いHRRの領域が続く。この後、L1層のLRR ZoneおよびL2層のLRR Zoneで読み込みレートが低いLRRの領域がある。最後にL2層のHRR Zoneで読み込みレートが高いHRRの領域となる。
映画をパッケージ配給する場合、映画が記録されたディスクの66GB近辺でドライブの最大読み込みレートが下がるため、ディスクの66GB近辺に配置されるストリームは他よりも高い圧縮率(低いビットレート)で符号化されなければならず品質管理が難しくなる、という課題がある。また、他よりも高い圧縮率で符号化されることが要求される箇所が本編映像のどの部分であれば許容されるのかを予め予測していなければならず、複数回のエンコード処理が必要になりディスク制作にも大きな工数/費用がかかってしまう、という課題がある。つまり、単純にディスクの半径方向に応じて、ディスクからの最大読み込みレートを設けることでディスクの内周側を読み込むときの回転速度を抑える方式では別の課題を生んでしまい現実的な解とはならない。
次に、この課題を解決するための論理アドレスの設定方法について図34を用いて説明する。
図34は、ディスクからの読み込みレートを切り替えて読み込む方式の他の一例について説明するための図である。具体的には、図34の(a)は、読み込みレートを切り替えて再生される場合の、3層ディスクを半径方向で切断した際の記録層の構成の他の一例を示す図である。図34の(b)は、最大読み込みレートを切り替えて再生する場合の、3層ディスクにおける論理アドレスに対応する最大読み込みレートの他の一例を示す図である。つまり、図34の(b)は、論理アドレスに対してドライブの最大読み込みレートがどのように変化するかを示した図である。
図34に示す例では、論理アドレスに応じて何度も読み込みレートが変わるのを抑えるため、最初にディスク上の内周側の複数層に配置されるLRR Zoneを全て繋ぎ、その後に外周側の複数層に配置される全てのHRR Zoneへと繋がるように論理アドレスのマッピングを決定している。この論理アドレスのマッピングパターン情報、LRR Zoneのデータサイズ(セクタ数でSL)、およびHRR Zoneのデータサイズ(セクター数でSH)は、Lead−in/Inner Zoneにそれぞれ記述されることで、ドライブは、これらの情報を読み込むことによりディスクに記録されている情報がどのような論理アドレス配置パターンであって、どのような読み込みレートで読み込むべきかを即座に識別することができる。
図34に示すように、先にLRR Zoneだけを論理アドレス上に配置することで、一度HRR Zoneへ入ると最後までHRR Zoneだけを利用することができる。したがって、図34の例のように、本編映像をHRR Zoneだけに配置することで、均一なエンコード条件下とした、これまで同様の効率的なタイトル制作ワークフローが可能になる。
LRR ZoneおよびHRR Zoneのサイズは、Lead−in/Inner Zoneへの登録値によって変更することも可能である。また、論理アドレスのマッピングパターンも複数のパターンを用意してIDで識別するようにしても良い。例えば、図33に示した論理アドレスのマッピングパターンが1番、図34に示した論理アドレスのマッピングパターンが2番と規定しておき、このマッピングパターンが何番かをLead−in/Inner Zoneに記録するようにすることで、ドライブにいずれのマッピングパターンがディスクに記録されているかを識別させることが可能である。
図35は、ディスクからの最大読み込みレートとストリームのレートとの関係を示す図である。図35では、論理アドレスのマッピングパターンを明記していないが、図33に示したパターンでも、図34に示したパターンでも、その他の配置パターンでも良い。
LRR Zoneの最大記録レート(ドライブが対応すべき最低の読み込みレート)をR1とすると、R1は次の条件を満たすことが望ましい。
(1−1)R1は、LRR Zone向けに規定された最大読み込みレート以下である。
(1−2)R1は、LRR Zone向けに規定された最小読み込みレート以上である。
(1−3)R1は、LRR Zone内のストリーム(図35ではTS1およびTS2)の中で一番高いピークレート(RTSn)を持つストリームを読み込むために必要なレート(RRTSn)以上である。
さらに、R1は、できるだけディスクの必要回転速度を下げるため、上記(1−1)、(1−2)、および(1−3)の条件を満たす中で一番小さいレートと規定しても良い。
RRTSnの式で出てくる“factor”は、シームレス接続におけるジャンプなどを考慮した際に必要となるシステム余裕係数であり、例えばBDでは、54/48(=1.125)を採用している。なお、シームレス接続とは、複数のVOBの集合で構成されるストリームのうち、当該ストリームを構成している複数のVOBのうちの2つのVOBを時間的に連続して再生可能とする接続である。また、ジャンプとは、ドライブの光ピックアップに読み込み動作を一旦停止させて、その間に次の読み込み対象の位置まで光ピックアップを移動させる動作である。つまり、シームレス接続におけるジャンプとは、時間的に連続して再生すべき第1のVOBと第2のVOBとがあるとき、第1のVOBの読み込みを最後まで行った後に、読み込み動作を一旦停止させて、第2のVOBが記録されている位置まで光ピックアップを移動させ、第2のVOBの読み込みを開始するまでの動作である。
また、各ストリームのピークビットレートを示すRTSnとは、図13のSysRateのように各ストリームについて、当該ストリームに対応する管理情報ファイルに記載される当該ストリーム全体のピークビットレートであっても良いし、LRR ZoneとHRR Zoneとのそれぞれに含まれるストリームの部分領域のピークビットレートであっても良い。
BDの場合は、188バイトのTSパケット毎に4バイトのタイムスタンプを付与しているため、MPEG−2 TSとしてのピークビットレートは、RTSnを188/192倍した値となる。
同様に、HRR Zoneの最大記録レート(ドライブが対応すべき最低の読み込みレート)をR2とすると、R2は次の条件を満たすことが望ましい。
(2−1)R2は、HRR Zone向けに規定された最大読み込みレート以下である。
(2−2)R2は、HRR Zone向けに規定された最小読み込みレート以上である。
(2−3)R2は、HRR Zone内のストリーム(図35ではTS2、TS3、およびTS4)の中で一番高いピークレート(RTSn)を持つストリームを読み込むために必要なレート(RRTSn)以上である。
さらに、R2は、できるだけディスクの必要回転速度を下げるため、上記(2−1)、(2−2)、および(2−3)の条件を満たす中で一番小さいレートと規定しても良い。
図35の例では、TS2ストリームは、LRR ZoneからHRR Zoneへと跨り配置されている。このように、異なる読み込みレートの2つのゾーンに跨るストリームに対しては、上記(1−3)および(2−3)のように、R1の条件およびR2の条件を組み合わせた条件とすれば良い。
こうして得られたR1およびR2の値は、それぞれ、LRR ZoneおよびHRR Zoneに記録されたストリームをドライブが読み込む際に必要となる最低の読み込みレートとしてLead−in/Inner Zoneに記録される。これにより、ドライブは、記録されたR1およびR2の値を読み込むことで、必要回転数まで抑えるようなドライブの制御に利用することができる。
図36は、従来のユーザーデータ領域の使用方法を説明するための図である。
図36に示すように、L0層、L1層、およびL2層における各Data Zoneは、それぞれの最内周であるDZ0a、DZ1a、およびDZ2aアドレス(セクタもしくはクラスタのアドレス)から、それぞれDZ0s、DZ1s、およびDZ2sセクタ(もしくはクラスタ)を利用している。DZ0a、DZ1a、およびDZ2aのアドレスは、Lead−in/Inner Zoneに隣接したData Zone内で最内周のアドレスである。このように内周から記録を開始しデータが記録完了した時点でリードアウトを置いて記録完了を行うのは、BD−RやBD−REのような記録メディアへの書き込み時間を効率化させる目的があった。しかしながら本開示が解決しようとする高ビットレートのストリームを如何に低回転速度で読み込めるかという観点からは内周側に記録データが固まるため望ましくない配置である。
図37は、ユーザーデータ領域の新しい使用方法を説明するための図である。
図37に示すように、L0層、L1層、およびL2層における各Data Zoneは、それぞれの最内周側であるDZ0a、DZ1a、およびDZ2aアドレス(セクタもしくはクラスタのアドレス)から、それぞれDZ0s、DZ1s、およびDZ2sセクタ(もしくはクラスタ)を利用している。図37では、DZ0a、DZ1a、およびDZ2aアドレスは、Lead−in/Inner Zoneには隣接していなくても良く、高ビットレートなストリームができるだけ低回転速度で読み込みできるように、ストリームがディスクの外周側へ配置されるよう調整されている。このようなユーザーデータ領域の利用形態を識別するために、Lead−in/Inner Zoneには、ディスクの記録領域の構成情報、各記録層の記録開始アドレス(DZ0a、DZ1a、およびDZ2a)、記録終了アドレス、記録可能サイズ(DZ0s、DZ1s、およびDZ2s)などが記録される。
図38は、シームレス接続におけるジャンプを説明するための図である。図38は、具体的には、同一記録層内でシームレス接続を行う際のドライブの光ピックアップのシーク距離と記録層を切り替えてシームレス接続を行う際のシーク距離との関係を説明するための図である。
映像再生中にマルチアングルで分岐をしたり、記録層の切り替えなどが発生したりしても連続して再生が続けられるようなジャンプルールを規定する必要がある。ジャンプしている時間は、データの読み込みができない時間であるため、その時間で消費されるビットストリームは予めバッファリングしておくことが必要になる。従って、所定の最大ジャンプ時間(およびストリームの最大ビットレート)を想定しなければ、プレーヤにおいてバッファリングするメモリのサイズなどを設計できない。
図38の(1)および(2)に示すようなケースで、シームレス接続におけるジャンプは許容される。具体的には、図38の(1)では、同一記録層内でのシームレス接続におけるジャンプは、ジャンプ開始位置のセクタから、半径方向に±dL1セクタ数以内にあるセクタへジャンプすることができると規定している。また、図38の(2)では、異なる記録層へのシームレス接続におけるジャンプは、ジャンプ開始セクタから半径方向に±dL0セクタ数以内にあるセクタの、半径距離(P0±dL0)で示される位置にある、隣接する記録層のセクタの位置(P1、P2、P3、およびP4のいずれか)へとジャンプすることができると規定している。
前述の通り、物理アドレスと論理アドレスとは1対1に関係付けられるため、L0層上の位置P1、P2の論理/物理アドレス、および、L2層上の位置P3、P4の論理/物理アドレスは、L1層上のジャンプ開始アドレスP0が確定すれば、下記に示す式3のように一意に導出することが可能である。
ここで、ABS()は演算結果の絶対値を返す関数である。
異なる記録層に変更する、シームレス接続におけるジャンプ(レイヤージャンプ)には、通常数100msecがかかることを考慮すると、この分だけ同一記録層内のシームレス接続におけるジャンプの方がジャンプできるセクタ数(半径方向に並ぶセクタ数)が大きくなる。このため、図38の例によれば、dL1>dL0の関係となる。
つまり、この場合のBD(記録媒体)では、映像ストリーム(TS2)の一部は、複数の記録層のうちの第1記録層(L1層)における第1記録位置(P0)まで記録されており、映像ストリームの残りの一部は、第1記録層(L1層)に隣接する第2記録層(L2層)における第2記録位置(図38ではP4からディスク中心方向へやや戻った位置)から記録されている。この映像ストリーム(TS2)は、第1記録位置(P0)と第2記録位置(P4からディスク中心方向へやや戻った位置)とでシームレス接続される。そして、BDの半径方向における第1記録位置(P0)と第2記録位置(P4からディスク中心方向へやや戻った位置)との間の第1最大距離(dL0)は、同一記録層内でのシームレス接続におけるジャンプで許容される当該半径方向における第2最大距離(dL1)よりも小さい。
また、第1記録位置(P0)は、BDの記録領域のうちでData Zoneの最内周よりも所定セクター(dL0)以上外側の領域にある。
また、図38に示すBDは、3層の記録層を有し、第1記録位置(P0)がある第1記録層(L1層)は、3層の記録層のうち2層目の記録層であり、第2記録位置(P4からディスク中心方向へやや戻った位置)がある第2記録層(L2層)は、3層の記録層のうち3層目の記録層である。
また、図38では、映像ストリーム(TS2)は、3層の記録層のうち1層目の記録層(L0層)においては、内周側から外周側に向かって記録され、2層目の記録層(L1層)においては、外周側から内周側に向かって記録され、3層目の記録層(L2層)においては、内周側から外周側に向かって記録されている。
また、図38では、映像ストリーム(TS2)は、1層目の記録層(L0層)、2層目の記録層(L1層)および3層目の記録層(L2層)における、Data Zoneの最内周側の領域を除く半径方向で外側に位置する領域に記録される。
このように高ビットレートな映像ストリーム(TS2)を、DZ0a、DZ1a、DZ2aなどよりも大きな半径距離で示される位置(図38ではP0)で別の記録層へと繋いで記録させることによって、ディスク内周部で高ビットレートなストリームを配置することを避け、ディスクの回転速度を落とすことができる。この図では映像ストリーム(TS2)は、論理アドレス空間としては、非常に大きなセクタ数をジャンプしていることになるが、図示されたようにレイヤージャンプを行う際には半径方向のシーク距離を抑えることでジャンプ時間全体を短縮しているため、再生装置やドライブの設計または開発においてバッファ量を削減できる大きな恩恵を受けることができる。また、ドライブは、ディスクの回転速度を落として読み込むことができるため、ドライブから発生するノイズを低減することができる。このため、ユーザは、ドライブノイズに悩まされずに高ビットレートの高画質映像の視聴体験を得ることができるようになる。
なお、図38では、論理アドレスのマッピングパターンを、図33のマッピングパターンを想定して説明したが、これに限らない。つまり、図34のマッピングパターンや他のマッピングパターンでもシームレス接続におけるジャンプは必要であるため、図33のマッピングパターンと異なるマッピングパターンにおいても、図38と同様の規定を設けることで好適なシームレス接続を実現することができる。
図38で導入した異なる記録層へも効率的にシームレス接続できる場合には、高ビットレートのストリームはそのピークビットレート(RTSn)に応じて所定の半径距離以上の記録領域に記録するようにしても良い。半径距離は、各記録層での物理アドレスにて、もしくは論理アドレスのマッピングパターンが判明している場合は論理アドレスにて、指定することが可能である。
また、上記で説明したBDに記録されている映像ストリームを再生する再生装置または再生方法として実現してもよい。この場合、再生装置は、ディスク状の記録媒体に記録された映像ストリームを読み出す読み出し部と、読み出した映像ストリームを再生する再生部とを備える。読み出し部は、第1記録層の第1記録位置から第2記録層の第2記録位置へジャンプして、映像ストリームを読み出す。再生部は、前記複数の記録層に記録された前記映像ストリームをシームレス再生する。
また、再生方法は、ディスク状の記録媒体に記録された映像ストリームを読み出し、前記読み出した映像ストリームを再生する。読み出しでは、第1記録層の前記第1記録位置から第2記録層の第2記録位置へジャンプして、映像ストリームを読み出す。再生では、複数の記録層に記録された映像ストリームをシームレス再生する。
(実施の形態3)
次に本開示の実施の形態3について説明する。
実施の形態3は、実施の形態2で説明した、互いに異なる読み込みレートで読み込まれる2つの領域を有する記録媒体への、ファイルの属性に応じた情報の記録方式に関する内容である。基本的には、実施の形態1および2に基づくため、拡張または異なる部分を中心に説明する。
図39は、読み込みレートがディスクの半径方向における記録領域によって異なるディスクでのファイルの配置方式を示す図である。ここでは2層ディスクを例としており、LRR Zoneは、実施の形態2と同様に、低い読み込みレートである第一記録領域であり、L0層の前半およびL1層の後半に設けられ、HRR Zoneは高い読み込みレートである第二記録領域であり、L0層の後半およびL1層の前半に設けられる。つまり、記録媒体の記録領域は、第一読み込みレートで読み込まれる第一記録領域と、第一読み込みレートよりも速い第二読み込みレートで読み込まれる第二記録領域とを有する。これにより、当該記録媒体は、第一記録領域と第二記録領域とで、読み出されるときの回転速度や読み出し方法が異なる。例えば、第一記録領域では角速度一定で読み出し、第二記録領域では線速度一定で読み出しても良い。
低い読み込みレートの記録領域(LRR Zone)から高い読み込みレートの記録領域(HRR Zone)へと連続して読み込む場合には、この記録領域が変わる瞬間にディスクの回転速度を瞬時に変化させ、かつ、レーザーの出力強度を高めるドライブ制御処理が必要になる。しかし、このドライブ制御処理は数百ミリ秒オーダーの時間がかかり、ディスクに記録されたデジタルストリームを読み込むのと同時に行える処理ではない。また、このディスクの回転速度を瞬時に変化させるドライブ制御処理に耐え得る高トルクに対応したモーターを採用しようとすれば、ドライブ装置の実装コストが増加してしまう、という課題がある。
したがって、001.VOBのようなデジタルストリームファイルのように指定のビットレートで連続して読み込みを継続しなければならないリアルタイム属性を持つファイルと、BD.INFOのような管理情報ファイルであり、読み込み時間に特定の要件がない非リアルタイム属性を持つファイルとを分けて、読み込みレートが異なる記録領域に記録管理することをここでは考える。
リアルタイム属性を持つファイルか否かは、ファイルシステムによって指定される。つまり、ディスクに記録されるデータは、当該データのファイルシステムにおいて、リアルタイム属性を持つデジタルストリームを含む。また、当該データは、当該データのファイルシステムにおいて、非リアルタイム属性を持つデータファイルを含む。つまり、ディスクに記録されるデータは、当該データのファイルシステムにおいて、リアルタイム属性を持つデジタルストリームと、非リアルタイム属性を持つデータファイルとに分類される。
例えばファイルシステムがUDF(Universal Disk Format)である場合、File Entryの中のICB Tagの中のFileTypeフィールドの値が5であれば、当該のファイルは、非リアルタイム属性であり、当該フィールドの値が249であればリアルタイム属性である。
FileTypeが5であるファイル(非リアルタイム属性、例えば、図39ではBD.INFOや001.VOBIなど)は読み込みレートに条件がないため読み込みレートの異なる記録領域間であっても関係なく記録することができる。つまり、非リアルタイム属性を持つデータファイルは、当該ファイルの1つが、LRR ZoneとHRR Zoneとの境界に跨がって連続して記録されることが許容されている。具体的には、データファイルは、当該ファイルの1つが、LRR ZoneとHRR Zoneとの境界に跨がって連続して記録されてもよいし、LRR ZoneとHRR Zoneとの一方に連続して記録されていてもよい。
一方、FileTypeが249であるファイル(リアルタイム属性、図では001.VOBや002.VOBなど)は読み込みレートの異なる記録領域間を跨がないように連続して記録する。つまり、リアルタイム属性を持つファイルは、当該ファイルの1つが、LRR ZoneとHRR Zoneとの境界を跨いで連続して記録されていない。
これによりデジタルストリームを再生中は、記録領域の境界でディスクの回転速度を瞬時に変更したり、レーザーの出力強度を変更することなく、当該デジタルストリームの読み込みレートを固定の読み込みレートとすることができるため、特段の実装困難やコストアップを避けることができる。しかし、この場合、図39ではHRR Zoneの中だけにデジタルストリームを記録しているため、ディスクの容量を100%活かしきれない、という課題が残る。以降では、さらにこの課題を解決する。
図40は、ディスクのHRR Zoneでのシームレス接続におけるジャンプモデルを説明するための図である。なお、以降では、ディスクの論理アドレス上で、一連続で記録されたデジタルストリームを記録した区間をExtentと呼ぶ。
図40では、n番目のExtentを示すExtent[n]がHRR Zoneに記録されており、同じくHRR Zoneに記録されているn+1番目のExtentを示すExtent[n+1]へと飛び移りながら途切れることなくシームレスに再生(以下、「シームレス再生」という。)する場合を考える。このようなシームレス再生ためには、Extent[n]の最終データを含むECCブロックを、HRR Zoneに記録されているデータを読み込む読み込みレートである読み込みレートR_HRRにて全て読み込み、Extent[n+1]の先頭データを含むECCブロックへジャンプ(シーク)し、Extent[n+1]の読み込みをR_HRRレートにて始めるタイミングにおいてバッファに既に読み込んだデータが残っていればよい。
つまり、デジタルストリームを再生中は、デジタルストリームを読み込んでバッファに蓄積しておき、バッファに蓄積されたデジタルストリームを順次再生する処理を行っている。このため、Extent[n]からExtent[n+1]へのジャンプの間に、バッファに蓄積されたデジタルストリームが再生する処理で全て消費されていなければ、ジャンプが行われてもExtent[n+1]の読み込みを行うことができ、バッファに蓄積されたデジタルストリームが枯渇することがないため、シームレス再生を係属して行うことができる。
ここで、ブルーレイディスクからの読み込みはECC単位であり、1つのECCは64KBである。ワーストケースとしては1つのECCブロックを読み込んだ際に、そのECCブロックの中に実データが1バイトしか無かった場合である。より具体的には、Extent[n]の最終データの1バイトのみがExtent[n]の最終ECCブロックに含まれ、かつ、Extent[n+1]の先頭データの1バイトのみがExtent[n+1]の先頭ECCブロックに含まれることが想定される。つまり、これらの1バイトを無視すれば(0バイトだったとすれば)、下記の式4で示される時間T_ECC(HH)の分だけ、ECC単位の読み込み処理によりデジタルストリームを読み込めない時間が発生すると考えられる。
なお、T_ECC(HH)は、HRR Zoneにおいてシームレス接続におけるジャンプが行われる場合に、ECCのリード処理に係る時間である。
これだけでなく、Extent[n]からExtent[n+1]へのジャンプにおいて実際にデジタルストリームをディスクから読み込むことができないトータルの時間をT_JUMPとすると、シーク処理に係る時間(T_SEEK)、記録層の変更に係る時間(T_LAYER)と、上述したECC単位のリード処理に係る時間(T_ECC)との合算になる。
したがって、図40の場合では、下記の式5で示されるようにT_JUMPを算出できる。
Extent[n]からR_HRRの読み込みレートでストリームを読み込み始めて、読み込みと同時にストリームの再生を開始したとして、Extent[n]のストリームの平均レートをR_n、Extent[n]のデータサイズをS_nとすると、下記の式6を満たす限り、このExtent[n]からExtent[n+1]へのジャンプにおいてバッファは枯渇せず、途切れることなくデジタルストリームを再生することが可能になる。
この式6をS_nで整理すれば、下記式7のようになる。
を満たすようなサイズS_nが、Extent[n]に必要であることが分かる。
図41は、ディスクのLRR Zoneに記録されているExtent[n]からHRR Zoneに記録されているExtent[n+1]へのシームレス接続におけるジャンプモデルを説明するための図である。なお、図40の時と同じように計算することで、必要なT_ECC(LH)と、S_nサイズはそれぞれ、式8のように表される。
なお、T_ECC(LH)は、LRR ZoneにあるExtent[n]からHRR ZoneにあるExtent[n+1]へのシームレス接続におけるジャンプが行われる場合に、ECCのリード処理に係る時間である。
図42は、ディスクのLRR Zoneに記録されているExtent[n]から同じLRR Zoneに記録されているExtent[n+1]へのシームレス接続におけるジャンプモデルを説明するための図である。図40の時と同じように計算することで、必要なT_ECC(LL)と、S_nサイズはそれぞれ、式9のように表される。
なお、T_ECC(LL)は、LRR Zoneにおいてシームレス接続におけるジャンプが行われる場合に、ECCのリード処理に係る時間である。
図43は、ディスクのHRR Zoneに記録されているExtent[n]からLRR Zoneに記録されているExtent[n+1]へのシームレス接続におけるジャンプモデルを説明するための図である。図40の時と同じように計算することで、必要なT_ECC(HL)と、S_nサイズはそれぞれ、式10のように表される。
なお、T_ECC(HL)は、HRR ZoneにあるExtent[n]からLRR ZoneにあるExtent[n+1]へのシームレス接続におけるジャンプが行われる場合に、ECCのリード処理に係る時間である。
図44は、図40から図43で説明したシームレス接続におけるジャンプモデルの条件を統一することを説明するための図である。
ディスクに映画本編を配置するような実際のオーサリング作業の中では、図40から図43で示したように個々の条件に応じて異なる条件式を使うのではなく、どのような条件でも有意な差がなければ同じ条件式を使える方が便利である。ECCブロックの処理時間であるT_ECCは、図40から図43の例で、現実的に大きな差がない数値になり、かつ、T_SEEKやT_LAYERと比較すると小さな時間であるため、ワーストであるT_ECC(LL)を全てのケースに適用しても良い。
このようにすることでT_ECCは1つの固定値として計算できるためモデルを簡易化することができる。つまり、如何なる場合においても、T_ECCを式11のように表してもよい。
また、Extent[n]からExtent[n+1]へのシームレスジャンプでは、シームレスジャンプ直前のExtent[n]が含まれる記録領域の読み込みレートをR_TRとして、式12のように計算することができる。
図45は、Disc Informationと呼ばれるLead−in/Inner Zone1/Inner Zone2に記録されるディスク情報とシームレスジャンプとの関係を説明する図である。3層ディスクの場合には、それぞれの記録層の内周側にあるLead−in/Inner Zone1/Inner Zone2の中に、PIC(Permanent Information and Control data)と呼ばれるディスク情報を格納しているデータが記録されている。PICには、Info Fragmentと呼ばれる5つのデータ格納領域があり、その先頭のInfo Fragment 0(IF0)の先頭箇所であるData Frame 0の中にDisc Informationは格納されている。
Disc Informationの中には、ディスクの記録層数情報(L0/L1/L2層ごとにそれぞれ先頭から12バイト目、76バイト目、140バイト目に格納されている情報)や、記録層がROMであることを示す情報(L0/L1/L2層ごとに夫々先頭から12バイト目、76バイト目、140バイト目に格納されている情報)や、L0/L1/L2層のData Zoneの有効記録領域の最初と最後の物理セクターアドレス(PSN:Physical Sector Number)を示す情報(L0/L1/L2層ごとに夫々先頭から24〜31バイト目、88〜95バイト目、152〜159バイト目に4バイトずつを用いて格納されている情報)などが記録されている。
物理アドレスは、L0層のLead−inからOuter Zone0へ、続けてL1層のOuter Zone1からInner Zone1へ、続けてL2層のInner Zone2からLead−outへ向かって順に配置される。
論理アドレスは、Data Zone0の内周側(FAU0)から外周側(LAU0)へ、続けてData Zone1の外周側(FAU1)から内周側(LAU1)へ、続けてData Zone2の内周側(FAU2)から外周側(LAU2)へ向かって順に配置される。
ここで、PICのDisc Informationとして記録管理されているL0層のユーザーデータの先頭物理アドレスをFAU0、最終物理アドレスをLAU0、L1層のユーザーデータの先頭物理アドレスをFAU1、最終物理アドレスをLAU1、L2層のユーザーデータの先頭物理アドレスをFAU2、および、最終物理アドレスをLAU2とした。
位置P0からのシームレス接続におけるジャンプが可能な範囲は、下記の(1)および(2)で表す範囲となる。
(1)同一記録層内のシームレスジャンプでは、位置P0から半径方向に±dL1セクタ数以内にあるセクタまでジャンプが可能(図45ではP6からP5の範囲に相当)
(2)異なる記録層へのシームレスジャンプでは、位置P0から半径方向に±dL0セクタ数以内にあるセクタの、同じ半径距離(P0±dL0)で示される位置にある、隣接する記録層のセクタの位置(図45ではL0層のP1からP2の範囲、もしくはL2層のP3からP4の範囲に相当)
ここで、図45に示す位置P1、P2、P3、P4、P5、P6を、上記物理アドレスを用いて表現すると、下記に示す式13のように一意に導出することが可能である。
ここでは、Disc Informationに記載される物理アドレス情報を用いて表現したが、物理アドレスと論理アドレスとは前述の通り1対1の固定の関係があるため、これを論理アドレスで示すことも同じように可能である。上記物理アドレスとして表現された位置P1〜P6を論理アドレスとして表現すると、P1〜P6にそれぞれ対応し、論理アドレスで表現されたP1’〜P6’は、FAU0の論理アドレスを0とした場合、以下の式14のようになる。
図46は、同一記録層内でのジャンプ距離(dL1)とそれに係るシーク時間(T_SEEK)との関係を説明する図である。図46に示すように、ジャンプ距離が長くなるほどそれに係るシーク時間も長くなる。例えば、3000セクタ数に相当する半径距離をジャンプするのに係るシーク時間は0.2秒だが、25000セクタ数に相当する半径距離をジャンプするのに係るシーク時間は0.6秒である。
図44で示したT_JUMPには、記録層を切り替える場合にはレイヤージャンプ時間(T_LAYER、数100ミリ秒)がさらに加わるため、このT_JUMPの時間から実際にシームレス接続におけるジャンプが可能なジャンプ距離(図45のdL0/dL1)が求められる。
例えば、T_LAYER=0.4秒、T_ECC=0.01秒、というドライブ制御性能を持つシステムにおいて、T_JUMPとして0.8秒までのシームレス接続におけるジャンプが許容される場合、図46の表を用いると、同一記録層内での最大ジャンプ距離(dL1)は、
T_SEEK≦T_JUMP−T_ECC=0.8−0.01=0.79[sec.]
となるため、図46からdL1=50000セクタとなる。
同様に、異なる記録層への最大ジャンプ距離(dL0)は、
T_SEEK≦T_JUMP−T_LAYER−T_ECC=0.8−0.4−0.01=0.39[sec.]
となり、dL0=10000セクタとなる。
このようにして、図38のシームレスジャンプモデルをDisc Informationにて規定されるアドレス情報を用いて表現することができる。
また、上記で説明したBDに記録されている映像ストリームを再生する再生装置または再生方法として実現してもよい。この場合、再生装置は、記録媒体に記録されたデータを読み出す読み出し部と、読み出したデータを再生する再生部と、を備える。読み出し部は、デジタルストリームを、読み込みレートを変更せずに読み出す。
また、再生方法は、記録媒体に記録されたデータを読み出し、読み出したデータを再生する。読み出しでは、デジタルストリームを、読み込みレートを変更せずに読み出す。
なお、上記の各実施の形態において、BDをBDディスクとも表記している。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
以上、本発明の一つまたは複数の態様に係る記録媒体、再生装置および再生方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したもの、異なる実施の形態における構成要素を組み合わせて構築される形態なども、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
尚、上記の説明は一例に過ぎず、当該技術者にとっては、様々な応用が適用できる。