説明

再生装置、再生方法および再生プログラム

【課題】DTS及びTSが構成データ毎に夫々指定された、字幕画像データやメニュー画面表示データをデコードするデコーダを適切に構成する。
【解決手段】TSパケットからPIDに基づきPESパケットが再構築され、さらに字幕やメニュー画面の構成要素であるセグメントが再構築される。セグメンは、CDB110に格納され、対応するDTS及びPTSがPESヘッダから取り出されてバッファ200に保持される。セグメントは、DTSでCDB110から読み出されてデコードされDB112又はCB113に格納され、PTSで出力される。バッファ200の容量は、CDB110に格納可能なセグメント数の上限に基づく。DTS及びPTSは、セグメントがDB112又はCB113からPTSで出力されるまで保持する必要があるため、CDB110に格納可能なセグメント数の上限は、DB112及びCB113に格納されるセグメント数に基づく。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ブルーレイディスク(Blu-ray Disc:登録商標)といった大容量の記録媒体に記録された、ビデオデータおよびオーディオデータに対して字幕データおよびボタンデータが多重化されたストリームを再生する再生装置、再生方法および再生プログラムに関する。
【背景技術】
【0002】
近年、記録可能で記録再生装置から取り外し可能なディスク型記録媒体の規格として、Blu−ray Disc(ブルーレイディスク)規格が提案されている。Blu−ray Disc規格では、記録媒体として直径12cm、カバー層0.1mmのディスクを用い、光学系として波長405nmの青紫色レーザ、開口数0.85の対物レンズを用いて、最大で27GB(ギガバイト)の記録容量を実現している。これにより、日本のBSディジタルハイビジョン放送を、画質を劣化させることなく2時間以上記録することが可能である。
【0003】
この記録可能光ディスクに記録するAV(Audio/Video)信号のソース(供給源)としては、従来からの、例えばアナログテレビジョン放送によるアナログ信号によるものと、例えばBSディジタル放送をはじめとするディジタルテレビジョン放送によるディジタル信号によるものとが想定されている。Blu−ray Disc規格では、これらの放送によるAV信号を記録する方法を定めた規格は、既に作られている。
【0004】
一方で、現状のBlu−ray Discの派生規格として、映画や音楽などが予め記録された、再生専用の記録媒体の開発が進んでいる。映画や音楽を記録するためのディスク状記録媒体としては、既にDVD(Digital Versatile Disc)が広く普及しているが、このBlu−ray Discの規格に基づいた再生専用光ディスクは、Blu−ray Discの大容量および高速な転送速度などを活かし、ハイビジョン映像を高画質なままで2時間以上収録できる点が、既存のDVDとは大きく異なり、優位である。
【0005】
このBlu−ray Discにおける再生専用の記録媒体の規格を、以下では、BD−ROM規格(Blu-ray Disc Read-Only Format)と呼ぶ。
【0006】
再生専用の記録媒体に記録するコンテンツに不可欠の要素として、字幕がある。BD−ROM規格においては、字幕は、動画像が表示されるプレーンとは別のプレーンに表示され、字幕が表示されるプレーンと動画像が表示されるプレーンとを合成することで、字幕と動画像とが重ね合わされて表示される。例えば、字幕を表示する字幕プレーンを動画像を表示する動画像プレーンの前面に配置し、字幕プレーンにおいて字幕以外の部分に透明の属性を持たせることで、動画像上に字幕が表示された1枚の画像データが構成できる。
【0007】
また、ディスクに映画などのコンテンツを記録して、パッケージメディアとして販売等を行う場合、コンテンツに伴う様々なプログラムの実行などを制御するためのユーザインターフェイスをコンテンツと共にディスクに記録することが行われる。代表的なユーザインターフェイスとしては、メニュー表示が挙げられる。一例として、メニュー表示においては、機能を選択するためのボタンがボタン画像として用意され、所定の入力手段によりボタンを選択し決定することで、当該ボタンに割り当てられた機能が実行されるようになっている。一般的には、プレーヤに対応したリモートコントロールコマンダの十字キーなどを用いて、画面に表示されたボタンを選択し、決定キーを押下することで、当該ボタンに割り当てられた機能が実行される。
【0008】
特許文献1には、記録再生規格であるBlu−ray Disc規格(Blu-ray Disc Rewritable Format Ver1.0)を元に、動画像および字幕を表示するプレーンをそれぞれ設け、ビデオデータによる動画像と字幕画像データによる字幕とを1画面上に表示する技術や、ボタン画像を用いたメニュー表示を実現するための技術が記載されている。
【特許文献1】特開2004−304767号公報
【0009】
ところで、BD−ROM規格では、ビデオデータやオーディオデータは、MPEG2(Moving Pictures Experts Group 2)システムズに規定される、トランスポートストリーム(TS)形式でディスクに記録される。すなわち、ビデオデータやオーディオデータは、分割されてPES(Packetized Elementary Stream)パケットに詰め込まれ、さらに所定サイズに分割されデータ種類を示す識別情報(PID:Packet Identification)を有するヘッダをそれぞれ付加されて、188バイトのTSパケットとされて多重化され、ディスクに記録される。
【0010】
また、上述の字幕画像データや、メニュー画面を表示するための画像データやコマンドも、所定の単位でPESパケットに詰め込まれ、PESパケットが分割され所定のPIDを有するヘッダ情報を付加されてTSパケットとされ、ビデオデータやオーディオデータに対してさらに多重化され、ディスクに記録される。
【0011】
字幕画像データの場合を例として、より詳細に説明する。字幕画像データは、例えばオーサ側が意図する字幕の区切りに基づく単位で構成され、当該単位毎に所定にPESパケットに格納される。このとき、字幕画像データは、例えばビットマップデータからなる字幕画像データの本体、字幕画像データの表示位置や表示方法を示す情報、字幕画像データが表示可能な表示枠を示す情報など、複数のデータから構成され、これら複数のデータのそれぞれが個別のPESパケットに格納される。以下では、字幕画像データを構成する複数のデータを総称して、字幕画像データと呼ぶ。
【0012】
PESパケットに詰め込まれた字幕画像データのデコード時刻を示すDTS(Decoding Time Stamp)と、表示時刻を示すPTS(Presentation Time Stamp)とが、PESパケットのヘッダであるPESヘッダに格納される。PESパケットは、さらに所定サイズに分割され、データ種類を識別するためのPIDを所定に付加され、データサイズが188バイトのTSパケットとされる。このTSパケットがビデオデータやオーディオデータのTSパケット、ならびに、後述のボタン画像データのTSパケットと多重化されて、ディスクに記録される。
【0013】
なお、メニュー画面を表示するためのデータも、字幕画像データと略同様にして、メニュー画面を表示するための複数のデータがそれぞれPESパケット化され、PESパケットが所定サイズに分割されてPIDを付されてTSパケットとされる。
【0014】
ディスクを再生して上述した字幕画像データを表示させる場合、ディスクから読み出されたトランスポートストリームに対して、TSパケット毎にヘッダを抽出してPIDを取得し、PIDに基づき字幕画像データが格納されたTSパケットを振り分けてバッファに一旦格納する。バッファに対してPESパケットを形成できるだけのTSパケットが溜め込まれたら、PIDに基づき同種のTSパケットのペイロードからデータが取り出されPESパケットが再構築される。再構築されたPESパケットは、PESヘッダを取り除かれ、さらに字幕画像データを構成する複数のデータが再構築される。
【0015】
再構築された字幕画像データを構成する複数のデータは、デコードバッファに一旦格納される。そして、PESヘッダに格納されるDTSの時刻にデコードバッファから読み出されてデコードされ、出力側のバッファに格納される。出力側のバッファに格納されたデータは、PESヘッダに格納されるPTSの時刻に出力される。
【発明の開示】
【発明が解決しようとする課題】
【0016】
このように、字幕画像データのデコードタイミングや出力タイミングは、上述したように、PESヘッダに格納されるDTSおよびPTSによって指示される。したがって、デコードバッファに溜め込まれている字幕画像データに対応するDTSおよびPTSを、例えばデコードされたデータが出力側のバッファから出力されるまで、メモリに保持しておく必要がある。
【0017】
ところが、既に説明したように、字幕画像データは、上述のようにオーサ側の意図する字幕の区切りに基づき構成されるため、字幕画像データ毎にサイズが区々となる。そのため、字幕画像データを構成する複数のデータがデコードバッファに何個格納されるかを見積もるのが難しく、デコードバッファの容量に対する、DTSおよびPTSを保持するためのメモリの容量を見積もることが極めて困難であるという問題点があった。この問題は、メニュー画面を表示するためのデータにおいても、同様である。
【0018】
この問題を回避するために、このため、DTSおよびPTSを保持するためのメモリの容量を十分に大きく設計する方法が考えられる。しかしながら、この方法では、装置のコストが嵩んでしまうことになるという問題点があった。
【0019】
このように、従来では、デコード時刻および出力時刻が構成データ毎にそれぞれ指定された、字幕画像データやメニュー画面を表示するためのデータをデコードするデコーダを適切に設計および構成することが困難であるという問題点があった。
【0020】
したがって、この発明の目的は、デコード時刻および出力時刻が構成データ毎にそれぞれ指定された、字幕画像データやメニュー画面を表示するためのデータをデコードするデコーダが適切に構成された再生装置、再生方法および再生プログラムを提供することにある。
【課題を解決するための手段】
【0021】
この発明は、上述した課題を解決するために、コンテンツデータと、コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力部と、入力部から入力された付随データのうちデコード時刻を示す情報が定義された第1の単位を記憶する第1の記憶部と、デコード時刻を示す情報を保持する時刻情報保持部と、時刻情報保持部に保持されたデコード時刻を示す情報に従い第1の記憶部から第1の単位を取り出してデコードするデコード部と、デコード部でデコードされた第1の単位を記憶する第2の記憶部とを備え、時刻情報保持部は、第1の記憶部に記憶される第1の単位数の上限に基づく容量を少なくとも有することを特徴とする再生装置である。
【0022】
また、この発明は、コンテンツデータと、コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力のステップと、入力のステップにより入力された付随データのうちデコード時刻を示す情報が定義された第1の単位を第1の記憶部に記憶するステップと、デコード時刻を示す情報を時刻情報保持部に保持するステップと、時刻情報保持部に保持されたデコード時刻を示す情報に従い第1の記憶部から第1の単位を取り出してデコードするデコードのステップと、デコードのステップによりデコードされた第1の単位を第2の記憶部に記憶するステップとを備え、時刻情報保持部は、第2の記憶部に記憶される第1の単位数の上限に基づくデコード時刻を示す情報を少なくとも保持可能としたことを特徴とする再生方法である。
【0023】
また、この発明は、コンテンツデータと、コンテンツデータと、コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力のステップと、入力のステップにより入力された付随データのうちデコード時刻を示す情報が定義された第1の単位を第1の記憶部に記憶するステップと、デコード時刻を示す情報を時刻情報保持部に保持するステップと、時刻情報保持部に保持されたデコード時刻を示す情報に従い第1の記憶部から第1の単位を取り出してデコードするデコードのステップと、デコードのステップによりデコードされた第1の単位を第2の記憶部に記憶するステップとを備え、時刻情報保持部は、第2の記憶部に記憶される第1の単位数の上限に基づくデコード時刻を示す情報を少なくとも保持可能とした再生方法をコンピュータ装置に実行させることを特徴とする再生プログラムである。
【0024】
上述したように、この発明は、コンテンツデータと、コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力され、入力された付随データのうちデコード時刻を示す情報が定義された第1の単位を第1の記憶部に記憶すると共に、デコード時刻を示す情報を時刻情報保持部に保持し、時刻情報保持部に保持されたデコード時刻を示す情報に従い第1の記憶部から第1の単位を取り出してデコードし、デコードされた第1の単位を第2の記憶部に記憶するようにされ、時刻情報保持部は、第1の記憶部に記憶される第1の単位数の上限に基づく容量を少なくとも有するようにしているため、時刻情報保持部の容量を容易に見積もることが可能で、デコーダを適切に構成することができる。
【発明の効果】
【0025】
この発明は、上述したように、コンテンツデータと、コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力され、入力された付随データのうちデコード時刻を示す情報が定義された第1の単位を第1の記憶部に記憶すると共に、デコード時刻を示す情報を時刻情報保持部に保持し、時刻情報保持部に保持されたデコード時刻を示す情報に従い第1の記憶部から第1の単位を取り出してデコードし、デコードされた第1の単位を第2の記憶部に記憶するようにされ、時刻情報保持部は、第1の記憶部に記憶される第1の単位数の上限に基づく容量を少なくとも有するようにしているため、時刻情報保持部の容量を容易に見積もることが可能で、デコーダを適切に構成することができる効果がある。
【発明を実施するための最良の形態】
【0026】
以下、この発明の実施の形態を、図面を参照しながら説明する。先ず、理解を容易とするために、Blu−ray Discに関し、"Blu-ray Disc Read-Only Format Ver1.0 part3 Audio Visual Specifications"で規定されている、読み出し専用タイプのBlu−ray DiscであるBD−ROMに記録されたコンテンツすなわちAV(Audio/Video)データの管理構造について説明する。以下では、このBD−ROMにおける管理構造をBDMVフォーマットと称する。
【0027】
例えばMPEG(Moving Pictures Experts Group)ビデオやMPEGオーディオなどの符号化方式で符号化され、MPEG2システムに従い多重化されたビットストリームは、クリップAVストリーム(またはAVストリーム)と称される。クリップAVストリームは、Blu−ray Discに関する規格の一つである"Blu-ray Disc Read-Only Format part2"で定義されたファイルシステムにより、ファイルとしてディスクに記録される。このファイルを、クリップAVストリームファイル(またはAVストリームファイル)と称する。
【0028】
クリップAVストリームファイルは、ファイルシステム上での管理単位であり、ユーザにとって必ずしも分かりやすい管理単位であるとは限らない。ユーザの利便性を考えた場合、複数のクリップAVストリームファイルに分割された映像コンテンツを一つにまとめて再生する仕組みや、クリップAVストリームファイルの一部だけを再生する仕組み、さらには、特殊再生や頭出し再生を滑らかに行うための情報などをデータベースとしてディスクに記録しておく必要がある。Blu−ray Discに関する規格の一つである"Blu-ray Disc Read-Only Format part3"で、このデータベースが規定される。
【0029】
図1は、BD−ROMのデータモデルを概略的に示す。BD−ROMのデータ構造は、図1に示されるように4層のレイヤよりなる。最も最下層のレイヤは、クリップAVストリームが配置されるレイヤである(便宜上、クリップレイヤと呼ぶ)。その上のレイヤは、クリップAVストリームに対する再生箇所を指定するための、ムービープレイリスト(Movie PlayList)と、プレイアイテム(PlayItem)とが配置されるレイヤである(便宜上、プレイリストレイヤと呼ぶ)。さらにその上のレイヤは、ムービープレイリストに対して再生順などを指定するコマンドからなるムービーオブジェクト(Movie Object)などが配置されるレイヤである(便宜上、オブジェクトレイヤと呼ぶ)。最上層のレイヤは、このBD−ROMに格納されるタイトルなどを管理するインデックステーブルが配置される(便宜上、インデックスレイヤと呼ぶ)。
【0030】
クリップレイヤについて説明する。クリップAVストリームは、ビデオデータやオーディオデータがMPEG2 TS(トランスポートストリーム)の形式などに多重化されたビットストリームである。このクリップAVストリームに関する情報がクリップ情報(Clip Information)としてファイルに記録される。
【0031】
また、クリップAVストリームには、ビデオデータやオーディオデータによるコンテンツデータに対して付随して表示される字幕やメニュー表示を行うためのストリームも多重化される。字幕を表示するためのグラフィクスストリームは、プレゼンテーショングラフィクス(PG)ストリームと呼ばれる。また、メニュー表示などに用いられるデータをストリームにしたものは、インタラクティブグラフィクス(IG)ストリームと呼ばれる。
【0032】
クリップAVストリームファイルと、対応するクリップ情報が記録されたクリップ情報ファイルとをひとまとまりのオブジェクトと見なし、クリップ(Clip)と称する。すなわち、クリップは、クリップAVストリームとクリップ情報とから構成される、一つのオブジェクトである。
【0033】
ファイルは、一般的に、バイト列として扱われる。クリップAVストリームファイルのコンテンツは、時間軸上に展開され、クリップ中のエントリーポイントは、主に時間ベースで指定される。所定のクリップへのアクセスポイントのタイムスタンプが与えられた場合、クリップAVストリームファイルの中でデータの読み出しを開始すべきアドレス情報を見つけるために、クリップ情報ファイルを用いることができる。
【0034】
プレイリストレイヤについて説明する。ムービープレイリストは、再生するAVストリームファイルの指定と、指定されたAVストリームファイルの再生箇所を指定する再生開始点(IN点)と再生終了点(OUT点)の集まりとから構成される。この再生開始点と再生終了点の情報を一組としたものは、プレイアイテム(PlayItem)と称される。ムービープレイリストは、プレイアイテムの集合で構成される。プレイアイテムを再生するということは、そのプレイアイテムに参照されるAVストリームファイルの一部分を再生するということになる。すなわち、プレイアイテム中のIN点およびOUT点情報に基づき、クリップ中の対応する区間が再生される。
【0035】
オブジェクトレイヤについて説明する。ムービーオブジェクトは、HDMVナビゲーションコマンドプログラム(HDMVプログラム)と、ムービーオブジェクトとを連携するターミナルインフォメーションを含む。HDMVプログラムは、プレイリストの再生を制御するためのコマンドである。ターミナルインフォメーションは、ユーザのBD−ROMプレーヤに対するインタラクティブな操作を許可するための情報を含んでいる。このターミナルインフォメーションに基づき、メニュー画面の呼び出しや、タイトルサーチといったユーザオペレーションが制御される。
【0036】
BD−Jオブジェクトは、Javaプログラム(Javaは登録商標)によるオブジェクトからなる。BD−Jオブジェクトは、この発明と関わりが薄いので、詳細な説明を省略する。
【0037】
インデックスレイヤについて説明する。インデックスレイヤは、インデックステーブルからなる。インデックステーブルは、BD−ROMディスクのタイトルを定義する、トップレベルのテーブルである。インデックステーブルに格納されているタイトル情報に基づき、BD−ROM常駐システムソフトウェア中のモジュールマネージャによりBD−ROMディスクの再生が制御される。
【0038】
すなわち、図2に概略的に示されるように、インデックステーブル中の任意のエントリは、タイトルと称され、インデックステーブルにエントリされるファーストプレイバック(First Playback)、トップメニュー(Top Menu)およびタイトル(Title)#1、#2、・・・は、全てタイトルである。各タイトルは、ムービーオブジェクトあるいはBD−Jオブジェクトに対するリンクを示し、各タイトルは、HDMVタイトルあるいはBD−Jタイトルの何れかを示す。
【0039】
例えば、ファーストプレイバックは、当該BD−ROMに格納されるコンテンツが映画であれば、映画本編に先立って映出される映画会社の宣伝用映像(トレーラ)である。トップメニューは、例えばコンテンツが映画である場合、本編再生、チャプタサーチ、字幕や言語設定、特典映像再生などを選択するためのメニュー画面である。また、タイトルは、トップメニューから選択される各映像である。タイトルがさらにメニュー画面であるような構成も可能である。
【0040】
図3は、上述のようなクリップAVストリーム、クリップ情報(Stream Attributes)、クリップ、プレイアイテムおよびプレイリストの関係を示すUML(Unified Modeling Language)図である。プレイリストは、1または複数のプレイアイテムに対応付けられ、プレイアイテムは、1のクリップに対応付けられる。1のクリップに対して、それぞれ開始点および/または終了点が異なる複数のプレイアイテムを対応付けることができる。1のクリップから1のクリップAVストリームファイルが参照される。同様に、1のクリップから1のクリップ情報ファイルが参照される。また、クリップAVストリームファイルとクリップ情報ファイルとは、1対1の対応関係を有する。このような構造を定義することにより、クリップAVストリームファイルを変更することなく、任意の部分だけを再生する、非破壊の再生順序指定を行うことが可能となる。
【0041】
また、図4のように、複数のプレイリストから同一のクリップを参照することもできる。また、1のプレイリストから複数のクリップを指定することもできる。クリップは、プレイリスト中のプレイアイテムに示されるIN点およびOUT点により、参照される。図4の例では、クリップ300は、プレイリスト310のプレイアイテム320から参照されると共に、プレイリスト311を構成するプレイアイテム321および322のうちプレイアイテム321から、IN点およびOUT点で示される区間が参照される。また、クリップ301は、プレイリスト311のプレイアイテム322からIN点およびOUT点で示される区間が参照されると共に、プレイリスト312のプレイアイテム323および324のうち、プレイアイテム323のIN点およびOUT点で示される区間が参照される。
【0042】
なお、プレイリストは、図5に一例が示されるように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことができる。サブプレイアイテムは、例えば、このプレイリストに付けられているアフレコオーディオ用のプレイアイテムである。詳細は省略するが、プレイリストは、所定の条件を満たす場合にだけ、サブプレイアイテムを持つことができる。
【0043】
次に、"Blu-ray Disc Read-Only Format part3"で規定された、BD−ROMに記録されるファイルの管理構造について、図6を用いて説明する。ファイルは、ディレクトリ構造により階層的に管理される。記録媒体上には、先ず、1つのディレクトリ(図6の例ではルート(root)ディレクトリ)が作成される。このディレクトリの下が、1つの記録再生システムで管理される範囲とする。
【0044】
ルートディレクトリの下に、ディレクトリ"BDMV"およびディレクトリ"CERTIFICATE"が置かれる。ディレクトリ"CERTIFICATE"は、著作権に関する情報が格納される。ディレクトリ"BDMV"に、図1を用いて説明したデータ構造が格納される。
【0045】
ディレクトリ"BDMV"の直下には、ファイルは、ファイル"index.bdmv"およびファイル"MovieObject.bdmv"の2つのみを置くことができる。また、ディレクトリ"BDMV"の下に、ディレクトリ"PLAYLIST"、ディレクトリ"CLIPINF"、ディレクトリ"STREAM"、ディレクトリ"AUXDATA"、ディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"、およびディレクトリ"BACKUP"が置かれる。
【0046】
ファイル"index.bdmv"は、ディレクトリBDMVの内容について記述される。すなわち、このファイル"index.bdmv"が上述した最上層のレイヤであるインデックスレイヤにおけるインデックステーブルに対応する。また、ファイルMovieObject.bdmvは、1つ以上のムービーオブジェクトの情報が格納される。すなわち、このファイル"MovieObject.bdmv"が上述したオブジェクトレイヤに対応する。
【0047】
ディレクトリ"PLAYLIST"は、プレイリストのデータベースが置かれるディレクトリである。すなわち、ディレクトリ"PLAYLIST"は、ムービープレイリストに関するファイルであるファイル"xxxxx.mpls"を含む。ファイル"xxxxx.mpls"は、ムービープレイリストのそれぞれに対して作成されるファイルである。ファイル名において、"."(ピリオド)の前の"xxxxx"は、5桁の数字とされ、ピリオドの後ろの"mpls"は、このタイプのファイルに固定的とされた拡張子である。
【0048】
ディレクトリ"CLIPINF"は、クリップのデータベースが置かれるディレクトリである。すなわち、ディレクトリCLIPINF"は、クリップAVストリームファイルのそれぞれに対するクリップインフォメーションファイルであるファイル"zzzzz.clpi"を含む。ファイル名において、"."(ピリオド)の前の"zzzzz"は、5桁の数字とされ、ピリオドの後ろの"clpi"は、このタイプのファイルに固定的とされた拡張子である。
【0049】
ディレクトリ"STREAM"は、実体としてのAVストリームファイルが置かれるディレクトリである。すなわち、ディレクトリ"STREAM"は、クリップインフォメーションファイルのそれぞれに対応するクリップAVストリームファイルを含む。クリップAVストリームファイルは、MPEG2(Moving Pictures Experts Group 2)のトランスポートストリーム(以下、MPEG2 TSと略称する)からなり、ファイル名が"zzzzz.m2ts"とされる。ファイル名において、ピリオドの前の"zzzzz"は、対応するクリップインフォメーションファイルと同一することで、クリップインフォメーションファイルとこのクリップAVストリームファイルとの対応関係を容易に把握することができる。
【0050】
ディレクトリ"AUXDATA"は、メニュー表示などに用いられる、サウンドファイル、フォントファイル、フォントインデックスファイルおよびビットマップファイルなどが置かれる。ファイル"sound.bdmv"は、HDMVのインタラクティブなグラフィクスストリームのアプリケーションに関連したサウンドデータが格納される。ファイル名は、"sound.bdmv"に固定的とされる。ファイル"aaaaa.otf"は、字幕表示や上述したBD−Jアプリケーションなどで用いられるフォントデータが格納される。ファイル名において、ピリオドの前の"aaaaa"は、5桁の数字とされ、ピリオドの後ろの"otf"は、このタイプのファイルに固定的とされた拡張子である。ファイル"bdmv.fontindex"は、フォントのインデックスファイルである。
【0051】
ディレクトリ"META"は、メタデータファイルが格納される。ディレクトリ"BDJO"およびディレクトリ"JAR"は、上述のBD−Jオブジェクトに関連するファイルが格納される。また、ディレクトリ"BACKUP"は、上述までの各ディレクトリおよびファイルのバックアップが格納される。これらディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"およびディレクトリ"BACKUP"は、この発明の主旨と直接的な関わりがないので、詳細な説明を省略する。
【0052】
上述したようなデータ構造を有するディスクがプレーヤに装填されると、プレーヤは、ディスクから読み出されたムービーオブジェクトなどに記述されたコマンドを、プレーヤ内部のハードウェアを制御するための固有のコマンドに変換する必要がある。プレーヤは、このような変換を行うためのソフトウェアを、プレーヤに内蔵されるROM(Read Only Memory)にあらかじめ記憶している。このソフトウェアは、ディスクとプレーヤを仲介してプレーヤにBD−ROMの規格に従った動作をさせることから、BD仮想プレーヤと称される。
【0053】
図7は、このBD仮想プレーヤの動作を概略的に示す。図7Aは、ディスクのローディング時の動作の例を示す。ディスクがプレーヤに装填されディスクに対するイニシャルアクセスがなされると(ステップS30)、1のディスクにおいて共有的に用いられる共有パラメータが記憶されるレジスタが初期化される(ステップS31)。そして、次のステップS32で、プログラムがディスクから読み込まれて実行される。なお、イニシャルアクセスは、ディスク装填時のように、ディスクの再生が初めて行われることをいう。
【0054】
図7Bは、プレーヤが停止状態からユーザにより例えばプレイキーが押下され再生が指示された場合の動作の例を示す。最初の停止状態(ステップS40)に対して、ユーザにより、例えばリモートコントロールコマンダなどを用いて再生が指示される(UO:User Operation)。再生が指示されると、先ず、レジスタすなわち共通パラメータが初期化され(ステップS41)、次のステップS42で、プレイリストの再生フェイズに移行する。なお、この場合にレジスタがリセットされない実装としてもよい。
【0055】
ムービーオブジェクトの実行フェイズにおけるプレイリストの再生について、図8を用いて説明する。UOなどにより、タイトル番号#1のコンテンツを再生開始する指示があった場合について考える。プレーヤは、コンテンツの再生開始指示に応じて、上述した図2に示されるインデックステーブル(Index Table)を参照し、タイトル#1のコンテンツ再生に対応するオブジェクトの番号を取得する。例えばタイトル#1のコンテンツ再生を実現するオブジェクトの番号が#1であったとすると、プレーヤは、ムービーオブジェクト#1の実行を開始する。
【0056】
この図8の例では、ムービーオブジェクト#1に記述されたプログラムは2行からなり、1行目のコマンドが"Play PlayList(1)"であるとすると、プレーヤは、プレイリスト#1の再生を開始する。プレイリスト#1は、1以上のプレイアイテムから構成され、プレイアイテムが順次再生される。プレイリスト#1中のプレイアイテムの再生が終了すると、ムービーオブジェクト#1の実行に戻り、2行目のコマンドが実行される。図8の例では、2行目のコマンドが"jump TopMenu"であって、このコマンドが実行されインデックステーブルに記述されたトップメニュー(Top Menu)を実現するムービーオブジェクトの実行が開始される。
【0057】
次に、この発明の実施の形態に適用可能な画像の表示系について説明する。この発明の実施の形態では、画像の表示系について、図9に一例が示されるようなプレーン構成を取る。動画プレーン10は、最も後ろ側(ボトム)に表示され、プレイリストで指定された画像(主に動画データ)が扱われる。字幕プレーン11は、動画プレーン10の上に表示され、動画再生中に表示される字幕データが扱われる。インタラクティブグラフィクスプレーン12は、最も前面に表示され、メニュー画面を表示するための文字データや、ボタン画像用のビットマップデータなどのグラフィクスデータが扱われる。1つの表示画面は、これら3つのプレーンが合成されて表示される。
【0058】
なお、以下では、グラフィクスプレーン12をインタラクティブグラフィクスプレーン12と称する。
【0059】
動画プレーン10、字幕プレーン11およびインタラクティブグラフィクスプレーン12は、それぞれ独立して表示が可能とされ、例えば、図10に一例が示されるような解像度および表示可能色を有する。動画プレーン10は、解像度が1920画素×1080ラインで1画素当たりに換算したデータ長が16ビットであって、輝度信号Y、色差信号Cb、Crが4:2:2のシステム(以下、YCbCr(4:2:2))とされる。なお、YCbCr(4:2:2)は、各画素当たり輝度信号Yが8ビット、色差信号Cb、Crがそれぞれ8ビットで、色差信号Cb、Crが水平2画素で一つの色データを構成すると見なすカラーシステムである。インタラクティブグラフィクスプレーン12および字幕プレーン11は、1920画素×1080ラインで各画素のサンプリング深さが8ビットとされ、カラーシステムは、256色のパレットを用いた8ビットカラーマップアドレスとされる。
【0060】
インタラクティブグラフィクスプレーン12および字幕プレーン11は、256段階のアルファブレンディングが可能とされており、他のプレーンとの合成の際に、不透明度を256段階で設定することが可能とされている。不透明度の設定は、画素毎に行うことができる。以下では、不透明度αが(0≦α≦1)の範囲で表され、不透明度α=0で完全に透明、不透明度α=1で完全に不透明であるものとする。
【0061】
字幕プレーン11では、例えばPNG(Portable Network Graphics)形式の画像データが扱われる。また、インタラクティブグラフィクスプレーン12でも、例えばPNG形式の画像データを扱うことができる。PNG形式は、1画素のサンプリング深さが1ビット〜16ビットとされ、サンプリング深さが8ビットまたは16ビットの場合に、アルファチャンネル、すなわち、それぞれの画素成分の不透明度情報(アルファデータと称する)を付加することができる。サンプリング深さが8ビットの場合には、256段階で不透明度を指定することができる。このアルファチャンネルによる不透明度情報を用いてアルファブレンディングが行われる。また、256色までのパレットイメージを用いることができ、予め用意されたパレットの何番目の要素(インデックス)であるかがインデックス番号により表現される。
【0062】
なお、字幕プレーン11およびインタラクティブグラフィクスプレーン12で扱われる画像データは、PNG形式に限定されない。JPEG方式など他の圧縮符号化方式で圧縮符号化された画像データや、ランレングス圧縮された画像データ、圧縮符号化がなされていないビットマップデータなどを扱うようにしてもよい。
【0063】
図11は、上述の図9および図10に従い3つのプレーンを合成するグラフィクス処理部の一例の構成を示す。動画プレーン10の動画データが422/444変換回路20に供給される。動画データは、422/444変換回路20でカラーシステムがYCbCr(4:2:2)からYCbCr(4:4:4)に変換され、乗算器21に入力される。
【0064】
字幕プレーン11の画像データがパレット22Aに入力され、RGB(4:4:4)の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α1(0≦α1≦1)がパレット22Aから出力される。
【0065】
図12は、パレット22Aの入出力データの一例を示す。パレット22Aは、例えばPNG形式のファイルに対応したパレット情報がテーブルとして格納される。パレット22Aは、入力された8ビットの画素データをアドレスとして、インデックス番号が参照される。このインデックス番号に基づき、それぞれ8ビットのデータからなるRGB(4:4:4)のデータが出力される。それと共に、パレット22Aでは、不透明度を表すアルファチャンネルのデータαが取り出される。
【0066】
図13は、パレット22Aに格納される一例のパレットテーブルを示す。256個のカラーインデックス値〔0x00〕〜〔0xFF〕(〔0x〕は16進表記であることを示す)のそれぞれに対して、各々8ビットで表現される三原色の値R、GおよびBと、不透明度αとが割り当てられる。パレット22Aは、入力されたPNG形式の画像データに基づきパレットテーブルが参照され、画像データにより指定されたインデックス値に対応する、それぞれ8ビットのデータからなるR、GおよびB各色のデータ(RGBデータ)と、不透明度αとを画素毎に出力する。
【0067】
パレット22Aから出力されたRGBデータは、RGB/YCbCr変換回路22Bに供給され、各データ長が8ビットの輝度信号Yと色信号Cb、Crのデータに変換される(以下、まとめてYCbCrデータと称する)。これは、以降のプレーン間合成を共通のデータ形式で行う必要があるためで、動画データのデータ形式であるYCbCrデータに統一している。
【0068】
RGB/YCbCr変換回路22Bから出力されたYCbCrデータと不透明度データα1とがそれぞれ乗算器23に入力される。乗算器23では、入力されたYCbCrデータに不透明度データα1が乗ぜられる。乗算結果は、加算器24の一方の入力端に入力される。なお、乗算器23では、YCbCrデータにおける輝度信号Y、色差信号Cb、Crのそれぞれについて、不透明度データα1との乗算が行われる。また、不透明度データα1の補数(1−α1)が乗算器21に供給される。
【0069】
乗算器21では、422/444変換回路20から入力された動画データに不透明度データα1の補数(1−α1)が乗ぜられる。乗算結果は、加算器24の他方の入力端に入力される。加算器24において、乗算器21および23の乗算結果が加算される。これにより、動画プレーン10と字幕プレーン11とが合成される。加算器24の加算結果が乗算器25に入力される。
【0070】
インタラクティブグラフィクスプレーン12の画像データがパレット26Aに入力され、RGB(4:4:4)の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α2(0≦α2≦1)がパレット26Aから出力される。パレット26Aから出力されたRGBデータは、RGB/YCbCr変換回路26Bに供給されてYCbCrデータに変換され、動画データのデータ形式であるYCbCrデータに統一される。RGB/YCbCr変換回路26Bから出力されたYCbCrデータが乗算器27に入力される。
【0071】
インタラクティブグラフィクスプレーン12’で用いられる画像データがPNG形式である場合には、画像データ中に、画素毎に不透明度データα2(0≦α2≦1)を設定することができる。不透明度データα2は、乗算器27に供給される。乗算器27では、RGB/YCbCr変換回路26から入力されたYCbCrデータに対し、輝度信号Y、色差信号Cb、Crのそれぞれについて、不透明度データα2との乗算が行われる。乗算器27による乗算結果が加算器28の一方の入力端に入力される。また、不透明度データα2の補数(1−α2)が乗算器25に供給される。
【0072】
乗算器25では、加算器24の加算結果に対して不透明度データα2の補数(1−α2)が乗ぜられる。乗算器25の乗算結果は、加算器28の他方の入力端に入力され、上述した乗算器27による乗算結果と加算される。これにより、動画プレーン10と字幕プレーン11との合成結果に対して、さらに、インタラクティブグラフィクスプレーン12が合成される。
【0073】
字幕プレーン11およびインタラクティブグラフィクスプレーン12において、例えば、表示すべき画像の無い領域の不透明度α=0と設定することで、そのプレーンの下に表示されるプレーンを透過表示させることができ、例えば動画プレーン10に表示されている動画データを、字幕プレーン11やインタラクティブグラフィクスプレーン12の背景として表示することができる。
【0074】
なお、この図11に示される構成は、ハードウェアおよびソフトウェアの何れでも実現可能なものである。
【0075】
次に、図14を用いて、プレゼンテーショングラフィクス(PG)ストリームおよびインタラクティブグラフィクス(IG)ストリームについて説明する。上述したように、PGストリームは、字幕を表示させるための字幕画像データによるストリームであって、より具体的には、例えばビットマップデータからなる字幕画像データそのものや、字幕画像データの表示方法を示すデータなどからなる。また、IGストリームは、メニュー表示などに用いられるデータによるストリームであって、より具体的には、メニュー画面に用いられるボタン画像データ、ボタン画像データの表示方法を示すデータ、ボタンによって指示されるコマンドなどからなる。
【0076】
PGストリームおよびIGストリームは、クリップAVストリームに含まれ、1または複数のディスプレイセット(DisplaySet)からなるエポック(epoch)を単位として構成される。ディスプレイセットおよびエポックは、MPEG2(Moving Pictures Experts Group 2)で定義されるピクチャおよびGOP(Group Of Picture)にそれぞれ例えることができる。
【0077】
すなわち、ディスプレイセットは、字幕表示上の最小単位であって、1枚の字幕画像に対応する。1または複数のディスプレイセットによりエポックが構成される。エポックは、一般的には、プレイアイテムに対応した単位で構成される。すなわち、あるプレイアイテムの再生中に表示される字幕を表示するためのディスプレイセットによりエポックが構成される。PGストリームをデコードするPGデコーダは、字幕プレーン11および各種のバッファをエポックの単位でクリアする。
【0078】
PGストリームの場合、図14に例示されるように、1のエポックに複数のディスプレイセットを含めることができる。一方、IGストリームは、1のエポックに含めることができるディスプレイセットは、例えば1個だけとされる。
【0079】
実際には、エポックは、プレイアイテム単位に限らず、オーサリング側で任意に構成することができる。例えば、PGストリームの場合、映画などにおいて一連の台詞に対応する複数の字幕のそれぞれを表示する複数のディスプレイセットによりエポックが構成される。また例えば、1つの台詞を文字毎に分解し、分解された文字それぞれを字幕として表示する複数のディスプレイセットによりエポックを構成することもできる。
【0080】
図15は、ディスプレイセットの構成を概略的に示す。プレゼンテーショングラフィクスのディスプレイセットは、図15Aに示されるように、PCS(Presentation Composition Segment)、WDS(Window Definision Segment)、PDS(Palette Definition Segment)、ODS(Object Definition Segment)およびENDセグメントの5種類のセグメントから構成される。詳細は後述するが、PCSは、字幕の基本情報が格納される。WDSは、ウィンドウと呼ばれる字幕を表示する表示枠を定義する。WDSは、エポック内で変化しない。PDSは、字幕の色情報を定義するもので、例えばインデックス化された色情報テーブルを内包する。また、ODSは、字幕の形状情報を保持するもので、例えば字幕を表示するためのビットマップデータが、ランレングス圧縮など所定の圧縮符号化方式で圧縮符号化されて格納される。また、ENDセグメントは、このディスプレイセットの終わりを示すセグメントである。
【0081】
インタラクティブグラフィクスのディスプレイセットは、図15Bに示されるように、ICS(Interactive Composition Segment)、PDS、ODSおよびENDセグメントの4種類のセグメントから構成される。4種類のセグメントのうち、ICSは、インタラクティブグラフィクスの基本構造を保持するためのセグメントである。PDS、ODSおよびENDセグメントは、プレゼンテーショングラフィクスの場合と同様である。すなわち、PDSは、ボタン画像の色情報を保持するためのセグメントである。ODSは、ボタン画像の形状を保持するための情報である。より具体的には、ODSは、ボタン画像そのもの、例えばボタン画像を表示するためのビットマップデータが、ランレングス圧縮など所定の圧縮符号化方式で圧縮符号化されて格納される。また、ENDセグメントは、このディスプレイセットの終わりを示すセグメントである。
【0082】
図16は、プレゼンテーショングラフィクスのディスプレイセットに関する論理的な構造を概略的に示す。図16Aおよび図16Bに例示されるように、PCS、WDS、PDS、ODSおよびENDセグメント(図示しない)の4種類のセグメントが集まって、1つのディスプレイセットを構成する。PCSは、ディスプレイセット中に必ず1だけ存在する。WDSは、殆どの場合、ディスプレイセット中に1つだけ存在する。但し、後述するPCS中に定義されるフラグpalette_up_date_flagの値が"1"の場合は、WDSは、オプションである。PDSおよびODSは、オプションであって、ディスプレイセット中に存在しない場合もあり得る。
【0083】
図16Cに例示されるように、1または複数のディスプレイセットから、エポックが構成される。ここで、詳細は後述するが、PCSのブロックcomposition_discriptor()に含まれるフィールドcomposition_stateには、エポックスタートディスプレイセット(Epoch Start DisplaySet)を定義することができる。このエポックスタートディスプレイセットに基づき、エポックが定義される。一例として、エポックは、エポックスタートディスプレイセットがPCSに定義されるディスプレイセットから、次のエポックスタートディスプレイセットがPCSに定義されるディスプレイセットの1つ前のディスプレイセットまでのディスプレイセットが集まったものと定義される。エポックの定義の具体例については、後述する。図16Dに例示されるように、プレゼンテーショングラフィクスストリーム(PGストリーム)は、1または複数のエポックが含まれる。
【0084】
図17は、インタラクティブグラフィクスのディスプレイセットに関する論理的な構造を概略的に示す。図17Aに示されるように、インタラクティブグラフィクスのディスプレイセットは、プレゼンテーショングラフィクスのディスプレイセットに対してセグメントの構成が異なる以外は、全体的な階層構造は、プレゼンテーショングラフィクスのディスプレイセットと同一である。インタラクティブグラフィクスのディスプレイセットにおいても、ICSのブロックcomposition_discriptor()に含まれるフィールドcomposition_stateにより定義されるエポックスタートディスプレイセットに基づき、エポックが定義される。なお、インタラクティブグラフィクスにおいても、PDSおよびODSは、オプションであって、ディスプレイセット中に存在しない場合があり得る。インタラクティブグラフィクスのディスプレイセットについては、繁雑さを避けるために、詳細な説明を省略する。
【0085】
図18は、上述したようなディスプレイセットの一例の格納形式を示す。既に説明したように、字幕を表示するためのディスプレイセットは、プレゼンテーショングラフィクスストリームとして、ボタン画像を表示するためのディスプレイセットは、インタラクティブグラフィクスストリームとして、それぞれクリップAVストリームに多重化される。ディスプレイセットは、上述したように、複数種類のセグメントから構成される(図18A)。
【0086】
ディスプレイセットを構成する複数種類のセグメントは、図18Bに一例が示されるように、それぞれヘッダ情報により区別されてPES(Packetized Elementary Stream)パケットのペイロードに格納される。PESパケットは、最大サイズが64kB(キロバイト)と決められているので、比較的サイズが大きなODSやICSは、1セグメントのサイズがこの最大サイズを越えた場合、分割されて複数のPESパケットのペイロードにそれぞれ詰め込まれる。一方、PCS、WDSおよびPDSは、サイズが64kBに満たない場合が多いため、1つのPESパケットに1プレゼンテーショングラフィクス分または1インタラクティブグラフィクス分のデータを格納可能である。PESパケットのそれぞれには、ペイロードに格納されたデータがPCS、WDS、PDSおよびODSのうち何れであるかの情報(プレゼンテーショングラフィクスの場合)や、パケット毎の順番などを示す識別情報がPESヘッダに格納される。
【0087】
また、PESヘッダには、このPESパケットのデコード時刻を指定するDTS(Decoding Time Stamp)と、デコードされたデータが出力される時刻を指定するPTS(Presantation Time Stamp)とが格納される。すなわち、PESパケットのペイロードに格納されたデータは、MPEGシステムズにより規定される基準復号器内部のSTC(System Time Clock)がDTSに一致したときに、デコードが開始され、STCがPTSに一致したときに、デコードされたデータが出力される。
【0088】
なお、PTSおよびDTSは、オプションであって、そのPESパケットのペイロードに所定のアクセスユニットの先頭が含まれている場合に、PESヘッダに付加される。例えば、1のセグメントが複数のPESパケットに分割されて格納されている場合には、セグメントの先頭側が格納されるPESパケットのみにPTSおよびDTSを持たせるようにできる。
【0089】
PESパケットのそれぞれは、さらに所定に分割され、MPEG TS(トランスポートストリーム)によるトランスポートパケット(以下、TSパケット)に詰め込まれる(図18C)。TSパケット毎の順序や、TSパケットに格納されたデータを識別する識別情報などがPID(Packet Identification)に格納される。
【0090】
次に、各セグメントのうち、この発明に関わりが深いものについて、内容をより具体的に説明する。先ず、プレゼンテーショングラフィクスのディスプレイセットに含まれる、PCSおよびWDSについて説明する。図19は、PCSの一例の構造を表すシンタクスを示す。ここでは、シンタクスをコンピュータ装置などのプログラムの記述言語として用いられるC言語の記述法に基づき示す。これは、他のシンタクスを表す図において、同様である。
【0091】
ブロックsegment_descriptor()は、フィールドsegment_typeおよびフィールドsegment_lengthからなる(図示しない)。フィールドsegment_typeは、このセグメントの種類を示す。フィールドsegment_typeの値が「0x16」で、このセグメントがPCSであることが示される。なお、値の記述において「0x」は、16進表記であることを示す。フィールドsegment_lengthは、このフィールドsegment_length以降のこのセグメントの長さを示す。
【0092】
ブロックvideo_descriptor()は、フィールドvideo_width、フィールドvideo_heightおよびフィールドframe_rateからなる(図示しない)。フィールドvideo_widthおよびフィールドvideo_heightは、このPCSが含まれるディスプレイセットにより表示される字幕と同時に再生される動画像の画枠を示す。また、フィールドframe_rateは、当該動画像のフレームレートを示す。
【0093】
ブロックcomposition_descriptor()は、フィールドcomposition_numberおよびフィールドcomposition_stateからなる(図示しない)。フィールドcomposition_numberは、このPCSのエポック内での順番を示す。フィールドcomposition_stateは、このPCSが含まれるディスプレイセットの種類を示す。
【0094】
ディスプレイセットの種類について、概略的に説明する。ディスプレイセットは、エポックスタートディスプレイセット(Epoch Start DisplaySet)、エポックコンティニューディスプレイセット(Epoch Continue DisplaySet)、アキュジションポイントディスプレイセット(Acquisition Point DisplaySet)およびノーマルケースディスプレイセット(Normal Case DisplaySet)の4種類が定義される。
【0095】
エポックスタートディスプレイセットは、エポックの先頭のディスプレイセットである。エポックコンティニューディスプレイセットは、エポックがプレイアイテムを跨ぐ場合に用いられるもので、例えばエポックがプレイアイテム#1と次のプレイアイテム#2とに跨っている場合に、プレイアイテム#2の先頭にエポックコンティニューディスプレイセットが設けられる。
【0096】
アキュジションポイントディスプレイセットは、字幕のデコードに関し、安全なデコード開始点を意味する。すなわち、プレーヤにおいて、ランダムアクセスが行われた場合、アクセス先がエポックの途中になる可能性が高い。そこで、プレーヤは、ランダムアクセス後、ストリームをデコードし再生していく中で、アキュジションポイントディスプレイセットを発見すると、そこから字幕のデコードを開始し字幕表示を行う。
【0097】
ノーマルケースディスプレイセットは、字幕のデコードに関し、安全なデコード開始点ではないディプレイセットを意味する。例えば、他のディスプレイセットにより表示中の字幕の色や形状を変更したい場合に、変更の内容を記述したディスプレイセットをノーマルケースディスプレイセットに設定する。プレーヤは、字幕のデコードおよび再生中にこのノーマルケースディスプレイセットを発見すると、その内容に従い、現在表示中の字幕の色や形状などを変更する。
【0098】
PCSのシンタクスの説明に戻り、フィールドpalette_update_flagは、パレットの更新が行われるか否かを示すフラグである。フィールドpalette_id_refは、このディスプレイセットにより表示される字幕1画面が参照するパレットのIDを示す。すなわち、このフィールドpalette_id_refにより、PGストリームにおけるPDS中の色情報が参照される。
【0099】
フィールドnumber_of_composition_objectsは、このディスプレイセットにより表示される字幕1画面上に存在するオブジェクトの数を示す。このフィールドnumber_of_composition_objectsで示される回数だけ、次のfor文によるループが繰り返され、ブロックcomposition_object()により、このディスプレイセットにより表示されるオブジェクト毎の定義がなされる。
【0100】
図20は、ブロックcomposition_object()の一例の構造を表すシンタクスを示す。フィールドobject_id_refは、このブロックcomposition_object()による字幕表示に用いるODSに対する参照を示す。フィールドwindow_id_refは、このブロックcomposition_object()による字幕表示に用いるオブジェクトが表示されるウィンドウのIDを示す。
【0101】
フィールドobject_cropped_flagは、このブロックcomposition_object()による字幕表示に用いるオブジェクトがクロップされるか否かを示すフラグである。すなわち、字幕表示は、ODSに保持されるサイズから所定サイズを切り出して表示することができる。フラグobject_cropped_flagがクロップすることを示していれば、後述するクロップサイズを示す情報に基づき切り取られた字幕が表示される。
【0102】
フィールドforced_on_flagは、このブロックcomposition_object()による字幕表示が、ユーザオペレーションによる字幕表示ON/OFFの指示に関わらず強制的に表示されるか否かを示す。
【0103】
フィールドcomposition_object_horizontal_positionおよびフィールドcomposition_object_vertical_positionは、それぞれこのブロックcomposition_object()による字幕表示の画面上の水平位置および垂直位置を示す。この水平位置および垂直位置は、例えば後述するWDSに示されるウィンドウの位置情報に対する相対位置で示される。
【0104】
上述のフィールドobject_cropped_flagに示されるフラグの値がオブジェクトがクロップされることを示す値であれば、次のif(object_cropped_flag==1b)以下の記述がなされ、字幕を切り出す位置やサイズが指定される。すなわち、ブロックcropping_rectangle()内のフィールドobject_cropping_horizontal_positionおよびフィールドobject_cropping_vertical_positionにより、切り出す原点の水平位置および垂直位置が示され、フィールドobject_cropping_widthおよびフィールドobject_cropping_heightにより切り出す幅および高さが示される。
【0105】
図21は、WDSの一例の構造を表すシンタクスを示す。ブロックsegment_descriptor()は、フィールドsegment_typeとフィールドsegment_lenghtとからなる(図示しない)。フィールドsegment_typeは、このセグメントの種類を示す。フィールドsegment_typeの値が「0x17」で、このセグメントがWDSであることが示される。フィールドsegment_lengthは、このフィールドsegment_length以降のこのセグメントの長さを示す。
【0106】
フィールドnumber_of_windowsは、このWDSが含まれるディスプレイセットにより表示される字幕1画面に存在するウィンドウの数を示す。このフィールドnumber_of_windowsで示される数だけ、次のfor文によるループが繰り返され、ブロックwindow()によりウィンドウ毎の定義がなされる。
【0107】
図22は、ブロックwindow()の一例の構造を表すシンタクスを示す。フィールドwindow_idは、このウィンドウのIDを示す。フィールドwindow_horizontal_positionおよびフィールドwindow_vertical_positionは、このウィンドウの画面の原点に対する水平位置および垂直位置を示す。フィールドwindow_widthおよびフィールドwindow_heigthは、このウィンドウの幅および高さを示す。
【0108】
次にインタラクティブグラフィクスのディスプレイセットに含まれる、ICSについて説明する。ICSの説明に先んじて、図23を用いてメニュー画面およびボタンの構成を概略的に示す。図23Aに一例が示されるような、複数のボタン300、300、・・・が配置されたメニュー画面11を考える。
【0109】
このメニュー画面301は、図23Bに一例が示されるように、複数枚のメニュー画面によって階層的に構成することができる。例えば、最前面に表示されたメニュー画面のあるボタン300を、所定の入力手段によって選択状態から実行状態に遷移させると、そのメニュー画面の1枚後ろに位置するメニュー画面が最前面のメニュー画面となるような構成が考えられる。なお、以下では、「所定の入力手段によりボタンの状態を変化させる」ことを、煩雑さを避けるために、「ボタンを操作する」などと、適宜、表記する。
【0110】
メニュー画面301に表示される1つのボタン300は、複数のボタン302A、302B、・・・が階層化された構成とすることができる(図23Cおよび図23D参照)。これは、換言すれば、1つのボタン表示位置に複数のボタンを選択的に表示することができることを意味する。例えば、複数のボタンのうち所定のボタンを操作した際に、同時に表示されている他の幾つかのボタンの機能および表示が変更されるような場合に、メニュー画面自体を書き換える必要が無いので、用いて好適である。このような、1つのボタン位置に選択的に表示される複数のボタンからなる組を、BOGs(Button Overlap Group)と呼ぶ。
【0111】
BOGsを構成するボタンのそれぞれは、通常状態、選択状態および実行状態の3状態を有することができる。すなわち、図23Eに一例が示されるように、BOGsを構成するボタンのそれぞれに対して、通常状態、選択状態および実行状態をそれぞれ表すボタン303A、303Bおよび303Cを用意することができる。さらに、これら3状態を表すボタン303A、303Bおよび303Cのそれぞれに対して、図23Fに一例が示されるように、アニメーション表示を設定することができる。この場合には、アニメーション表示が設定されたボタンは、アニメーション表示に用いるだけの枚数のボタン画像からなることになる。
【0112】
なお、以下では、ボタンのアニメーションを構成するための複数枚のボタン画像のそれぞれを適宜、アニメーションフレームと呼ぶことにする。
【0113】
図24は、ICSのヘッダ情報の一例の構造を表すシンタクスを示す。ICSのヘッダは、ブロックsegment_descriptor()、ブロックvideo_descriptor()、ブロックcomposition_descriptor()、ブロックsequence_descriptor()およびブロックinteractive_composition_data_fragemnt()からなる。ブロックsegment_descriptor()は、このセグメントがICSであることを示す。ブロックvideo_descriptor()は、このメニューと同時に表示されるビデオのフレームレートや画枠サイズを示す。ブロックcomposition_descriptor()は、フィールドcomposition_stateを含み(図示しない)、このICSのステータスを示す。ブロックsequence_descriptor()は、このICSが複数のPESパケットに跨るか否かを示す。
【0114】
より具体的には、このブロックsequence_descriptor()は、現在のPESパケットに含まれるICSが1つのIGストリームの先頭または最後尾の何れのICSであるか否かを示す。
【0115】
すなわち、上述したように、データサイズが64KBと固定的とされたPESパケットに対して、ICSのデータサイズが大きい場合には、ICSが所定に分割されてPESパケットにそれぞれ詰め込まれる。このとき、この図24に示されるヘッダ部分は、ICSが分割して詰め込まれたPESパケットのうち先頭および最後尾のPESパケットにだけあればよく、途中のPESパケットにおいては省略することができる。このブロックsequence_descriptor()が先頭および最後尾を示していれば、ICSが1つのPESパケットに収まっていることが分かる。
【0116】
図25は、ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す。なお、図25では、自身のブロックがブロックinteractive_composition()として示されている。フィールドintaractive_composition_lengthは、24ビットのデータ長を有し、ブロックinteractive_composition()のこのフィールドintaractive_composition_length以降の長さを示す。フィールドstream_modelは、1ビットのデータ長を有し、このストリームが多重化されているか否かを示す。すなわち、インタラクティブグラフィクスストリームは、AVストリームに対して多重化することもできるし、単独でクリップAVストリームを構成することもできる。
【0117】
フィールドuser_interface_modelは、1ビットのデータ長を有し、このストリームが表示するメニューがポップアップメニューか、常時表示メニューの何れであるかを示す。ポップアップメニューは、例えばリモートコントロールコマンダのボタンのON/OFFといった、所定の入力手段で表示の有無を制御できるメニューである。一方、常時表示メニューは、ユーザ操作により表示の有無を制御できない。フィールドuser_interface_modelの値が"0"で、ポップアップメニューを示し、"1"で常時表示メニューを示す。
【0118】
フィールドuser_interface_modelの値が"0"であれば、If文If(stream_model=='0b'以下のフィールドcomposition_time_out_ptsおよびフィールドselection_time_out_ptsが有効になる。フィールドcomposition_time_out_ptsは、33ビットのデータ長を有し、このメニュー表示が消える時刻を示す。また、フィールドselection_time_out_ptsは、33ビットのデータ長を有し、このメニュー表示における選択操作が可能でなくなる時刻を示す。時刻は、それぞれMPEG2に規定されるPTS(Presentation Time Stamp)で記述される。
【0119】
フィールドuser_time_out_durationは、24ビットのデータ長を有し、このメニュー表示の自動初期化時間を示す。次のフィールドnumber_of_pageは、8ビットのデータ長を有し、このメニューが有するページ数を、初期値を"0"として示す。すなわち、このメニュー表示が図23Bを用いて説明した階層構造を有し、複数のページを有するときは、フィールドnumber_of_pageの値は、"1"以上を示す。このフィールドnumber_of_pageで示された回数だけ、次のfor文からのループが繰り返され、メニュー表示における各ページがそれぞれ定義される。
【0120】
図26は、ブロックpage()の一例の構造を表すシンタクスを示す。フィールドpage_idは、8ビットのデータ長を有し、このページを識別するためのIDを示し、フィールドpage_version_numberは、8ビットのデータ長を有し、このページのバージョン番号を示す。次のブロックUO_mask_table()は、このページの表示中に禁止される、ユーザの入力手段に対する操作(UO:User Operation)が記述されるテーブルを示す。
【0121】
ブロックin_effect()は、このページが表示される際に表示されるアニメーションブロックを示す。括弧{}内のブロックeffect_sequence()に、アニメーションのシーケンスが記述される。また、ブロックout_effect()は、このページが終了する際に表示されるアニメーションブロックを示す。括弧{}内のブロックeffect_sequence()に、アニメーションのシーケンスが記述される。これらブロックin_effect()およびブロックout_effect()は、それぞれページを移動した際にこのICSが発見された場合に実行されるアニメーションである。
【0122】
次のフィールドanimation_frame_rate_codeは、8ビットのデータ長を有し、このページのボタン画像がアニメーションする場合の、アニメーションフレームレートの設定パラメータを示す。例えば、このICSが対応するクリップAVストリームファイルにおけるビデオデータのフレームレートをVfrm、当該アニメーションフレームレートをAfrmとした場合、フィールドanimation_frame_rate_codeの値を、Vfrm/Afrmのように、これらの比で表すことができる。
【0123】
フィールドdefault_selected_button_id_refは、16ビットのデータ長を有し、このページが表示される際に最初に選択状態とされるボタンを指定するためのIDを示す。また、次のフィールドdefault_activated_button_id_refは、16ビットのデータ長を有し、図25を用いて説明したフィールドselection_time_out_ptsで示される時間に達した際に、自動的に実行状態となるボタンを指定するためのIDを示す。
【0124】
フィールドpalette_id_refは、8ビットのデータ長を有し、このページが参照するパレットのIDを示す。すなわち、このフィールドpalette_id_refにより、IGストリームにおけるPDS中の色情報が指定される。
【0125】
次のフィールドnumber_of_BOGsは、8ビットのデータ長を有し、このページで用いられるBOGsの数が示される。このフィールドnumber_of_BOGsで示される回数だけ、次のfor文からのループが繰り返され、ブロックbutton_overlap_group()により、BOGs毎の定義がなされる。
【0126】
図27は、ブロックbutton_overlap_group()の一例の構造を表すシンタクスを示す。フィールドdefault_valid_button_id_refは、16ビットのデータ長を有し、このブロックbutton_overlap_group()で定義されるBOGsにおいて最初に表示されるボタンのIDを示す。次のフィールドnumber_of_buttonsは、8ビットのデータ長を有し、このBOGsで用いられるボタンの数を示す。そして、このフィールドnumber_of_buttonsで示される回数だけ、次のfor文からのループが繰り返され、ブロックbutton()によりボタンそれぞれの定義がなされる。
【0127】
すなわち、既に説明したように、BOGsは、複数のボタンを持つことができ、BOGsが持つ複数のボタンのそれぞれの構造がブロックbutton()で定義される。このブロックbutton()で定義されるボタン構造が、実際に表示されるボタンである。
【0128】
図28は、ブロックbutton()の一例の構造を表すシンタクスを示す。フィールドbutton_idは、16ビットのデータ長を有し、このボタンを識別するIDを示す。フィールドbutton_numeric_select_valueは、16ビットのデータ長を有し、このボタンがリモートコントロールコマンダ上の数字キーの何番に割り当てられているかを示す。フラグauto_action_flagは、1ビットのデータ長を有するフラグであって、このボタンが選択状態になったときに、当該ボタンに割り当てられた機能が自動的に実行されるか否かを示す。
【0129】
次のフィールドbutton_horizontal_positionおよびフィールドbutton_vertical_positioは、それぞれ16ビットのデータ長を有し、このボタンを表示する画面上の水平方向の位置および垂直方向の位置(高さ)を示す。
【0130】
ブロックneighbor_info()は、このボタンの周辺情報を示す。すなわち、このブロックneighbor_info()内の値により、このボタンが例えば選択状態となっている状態からリモートコントロールコマンダにおける上下左右の方向を指示できる方向キーが操作された際に、どのボタンが選択状態に遷移するかを示す。ブロックneighbor_info()内のフィールドにおいて、それぞれ16ビットのデータ長を有するフィールドupper_button_id_ref、フィールドlower_button_id_ref、フィールドleft_button_id_refおよびフィールドright_button_id_refは、上方向、下方向、左方向および右方向を指示する操作がなされた場合に選択状態に遷移されるボタンのIDをそれぞれ示す。
【0131】
次からのブロックnormal_state_info()、ブロックselected_state_info()およびブロックactivated_state_info()は、それぞれ、通常状態、選択状態および実行状態時のボタンの情報を示す。
【0132】
先ず、ブロックnormal_state_info()について説明する。それぞれ16ビットのデータ長を有するフィールドnormal_start_object_id_refおよびフィールドnormal_end_object_id_refは、この通常状態のボタンのアニメーションの先頭および末尾のオブジェクトを指定するIDがそれぞれ示される。すなわち、これらフィールドnormal_start_object_id_refおよびフィールドnormal_end_object_id_refにより、ボタンのアニメーション表示に用いられるボタン画像(すなわちアニメーションフレーム)が、対応するODSに対して指定される。
【0133】
次のフラグnormal_repeat_flagは、1ビットのデータ長を有するフラグであって、このボタンのアニメーションがリピートするか否かが示される。例えば、フラグnormal_repeat_flagの値が"0"でリピートしないことを示し、値が"1"でリピートすることを示す。
【0134】
次のフラグnormal_complete_flagは、1ビットのデータ長を有するフラグであって、このフラグがこの発明により定義される。このフラグnormal_complete_flagは、このボタンが通常状態から選択状態に遷移する際のアニメーション動作を制御するフラグである。
【0135】
すなわち、フラグnormal_complete_flagの値が"1"であれば、このボタンが通常状態から選択状態へと遷移する際に、通常状態に定義されているアニメーションを、全て表示する。より具体的には、フラグnormal_complete_flagの値が"1"であったなら、当該ボタンの通常状態のアニメーション表示中に当該ボタンを通常状態から選択状態に遷移させるような入力がなされた場合、その時点で表示されているアニメーションフレームから、上述したフィールドnormal_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【0136】
また、フラグnormal_complete_flagの値が"1"であって、且つ、フラグnormal_repeat_flagがリピートすることを示している場合(例えば値"1")も、その時点で表示されているアニメーションフレームから、上述したフィールドnormal_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【0137】
この場合、例えばボタンが選択できない状態にされた場合や、ボタンの表示そのものが消されてしまうような場合でも、これらの状態に遷移する時点がアニメーションの表示中であれば、フィールドnormal_end_object_id_refで示されるアニメーションフレームまでアニメーション表示を行い、その後、ボタンの状態を遷移させる。
【0138】
ボタンが選択できない状態は、例えば上述したフィールドselection_time_out_ptsの指定により、ボタンが選択できないような状態になった場合や、フィールドuser_time_out_durationの指定によりメニューが自動的に初期化されるような場合が考えられる。
【0139】
一方、フラグnormal_complete_flagの値が"0"であれば、このボタンが通常状態から選択状態へと遷移する際に、通常状態のボタンに定義されたアニメーションをフィールドnormal_end_object_id_refで示されるアニメーションフレームまで表示せずに、状態の遷移が指示された時点でアニメーション表示を停止し、選択状態のボタンを表示する。
【0140】
次に、ブロックselected_state_info()について説明する。このブロックselected_state_info()は、上述のブロックnormal_state_info()に対して、サウンドを指示するためのフィールドselected_state_sound_id_refが付加されている。フィールドselected_state_sound_id_refは、8ビットのデータ長を有し、この選択状態のボタンに対して再生されるサウンドファイルを示す。例えば、サウンドファイルは、ボタンが通常状態から選択状態に遷移した際の効果音として用いられる。
【0141】
それぞれ16ビットのデータ長を有するフィールドselected_start_object_id_refおよびフィールドselected_end_object_id_refは、この選択状態のボタンのアニメーションの先頭および末尾のオブジェクトを指定するIDがそれぞれ示される。また、次の1ビットのデータ長を有するフラグであるフラグselected_repeat_flagは、このボタンのアニメーションがリピートするか否かが示される。例えば値が"0"でリピートしないことを示し、値が"1"でリピートすることを示す。
【0142】
次のフラグselected_complete_flagは、1ビットのデータ長を有するフラグであって、上述のフラグnormal_complete_flagと共に、この発明により定義されるフラグである。このフラグselected_complete_flagは、このボタンが選択状態から他の状態に遷移する際のアニメーション動作を制御するフラグである。すなわち、フラグselected_complete_flagは、ボタンが選択状態から実行状態に遷移する場合と、選択状態から通常状態に遷移する場合とに、用いることができる。
【0143】
上述と同様、フラグselected_complete_flagの値が"1"であれば、このボタンが選択状態から他の状態へと遷移する際に、選択状態に定義されているアニメーションを、全て表示する。より具体的には、フラグselected_complete_flagの値が"1"であったなら、当該ボタンの選択状態のアニメーション表示中に当該ボタンを選択状態から他の状態に遷移させるような入力がなされた場合、その時点で表示されているアニメーションフレームから、上述したフィールドselected_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【0144】
また、フラグselected_complete_flagの値が"1"であって、且つ、フラグselected_repeat_flagがリピートすることを示している場合(例えば値"1")も、その時点で表示されているアニメーションフレームから、上述したフィールドselected_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【0145】
この場合、例えばボタンが選択できない状態にされた場合や、ボタンの表示そのものが消されてしまうような場合でも、これらの状態に遷移する時点がアニメーションの表示中であれば、フィールドselected_end_object_id_refで示されるアニメーションフレームまでアニメーション表示を行い、その後、ボタンの状態を遷移させる。
【0146】
ボタンが選択できない状態は、例えば上述したフィールドselection_time_out_ptsの指定により、ボタンが選択できないような状態になった場合や、フィールドuser_time_out_durationの指定によりメニューが自動的に初期化されるような場合が考えられる。
【0147】
一方、フラグselected_complete_flagの値が"0"であれば、このボタンが選択状態から他の状態へと遷移する際に、選択状態のボタンに定義されたアニメーションをフィールドselected_end_object_id_refで示されるアニメーションフレームまで表示せずに、状態の遷移が指示された時点でアニメーション表示を停止し、他の状態のボタンを表示する。
【0148】
次のブロックactivated_state_info()は、上述したブロックnormal_state_info()およびブロックselected_state_info()に対して、アニメーションのリピートを行うか否かを示すフラグと、ボタンが実行状態から他の状態に遷移する際のアニメーション動作を制御するフラグが定義されない。ボタンが実行状態にされた後は、当該ボタンに割り当てられた機能が実行されることになり、ボタンが実行状態にある時間は非常に短いと考えられる。また、実行状態にあるボタンが他の状態に遷移するような制御も、一般的には好ましくないといえる。そのため、ブロックactivated_state_info()において、これらのフラグを省略している。勿論、ブロックactivated_state_info()においてこれらのフラグを定義することも可能である。
【0149】
ブロックactivated_state_info()において、フィールドactivated_state_sound_id_refは、8ビットのデータ長を有し、この実行状態のボタンに対して再生されるサウンドファイルを示す。それぞれ16ビットのデータ長を有するフィールドactivated_start_object_id_refおよびフィールドactivated_end_object_id_refは、この実行状態のボタンのアニメーションの先頭および末尾のアニメーションフレームを指定するIDがそれぞれ示される。
【0150】
ブロックactivated_state_info()の説明を終わり、次のフィールドnumber_of_navigation_commandsは、16ビットのデータ長を有し、このボタンに埋め込まれるコマンドの数を示す。そして、このフィールドnumber_of_navigation_commandsで示される回数だけ、次のfor文からのループが繰り返され、このボタンにより実行されるコマンドnavigation_command()が定義される。これは、換言すれば、1つのボタンから複数のコマンドを実行させることができることを意味する。
【0151】
次に、現時点のBD−ROM規格に定義されるプレゼンテーショングラフィクスおよびインタラクティブグラフィクスのデコーダモデルについて説明する。図29は、プレゼンテーショングラフィクスおよびインタラクティブグラフィクスに共通して適用可能なデコーダモデルを示す。
【0152】
先ず、ディスクがプレーヤに装填されると、インデックスファイル"index.bdmv"およびムービーオブジェクトファイル"MovieObject.bdmv"がディスクから読み込まれ、所定にトップメニューが表示される。トップメニューの表示に基づき、再生するタイトルを指示すると、ムービーオブジェクトファイル中の対応するナビゲーションコマンドにより、指示されたタイトルを再生するためのプレイリストファイルが呼び出される。そして、当該プレイリストファイルの記述に従い、プレイリストから再生を要求されたクリップAVストリームファイル、すなわち、MPEG2のトランスポートストリームがディスクから読み出される。
【0153】
トランスポートストリームは、TSパケットとしてPIDフィルタ100に供給されてPIDが解析される。PIDフィルタ100では、供給されTSパケットがビデオデータ、オーディオデータ、メニューデータおよびサブタイトル(字幕)データの何れを格納したパケットであるかを分類する。PIDがメニューデータすなわちインタラクティブグラフィクスを表している場合、または、サブタイトルすなわちプレゼンテーショングラフィクスを表している場合に、図29の構成が有効とされる。
【0154】
PIDフィルタ100において、トランスポートストリームからデコーダモデルが対応するデータを格納するTSパケットが選択されて、トランスポートバッファ(以下、TB:Transport Buffer)101に溜め込まれる。そして、TB101上でTSパケットのペイロードに格納されているデータが取り出される。PESパケットを構成可能なだけのデータがTB101に溜め込まれたら、PIDに基づきPESパケットが再構築される。すなわち、この段階で、TSパケットに分割されていた各セグメントがそれぞれ統合されることになる。
【0155】
各セグメントによるPESパケットは、PESヘッダが取り除かれエレメンタリストリーム形式でデコーダ102にそれぞれ供給され、CDB(コーデッドデータバッファ:Coded Data Buffer)110に一旦溜め込まれる。STCに基づき、CDB110に溜め込まれたエレメンタリストリームのうち、対応するDTSに示される時刻に達したエレメンタリストリームがあれば、当該セグメントは、CDB110から読み出されてストリームグラフィックプロセッサ111に転送され、それぞれデコードされセグメントに展開される。
【0156】
ストリームグラフィックプロセッサ111は、デコードが完了したセグメントを、DB(デコーデッドオブジェクトバッファ:Decoded Object Buffer)112またはCB(コンポジションバッファ:Composition Buffer)113に所定に格納する。PCS、ICS、WDSおよびODSのようにDTSを持つタイプのセグメントであれば、対応するDTSに示されるタイミングで、DB112またはCB113に格納する。また、PDSのようにDTSを持たないタイプのセグメントは、即座にCB113に格納される。
【0157】
グラフィクスコントローラ114は、セグメントを制御する。例えば、このデコーダモデルがプレゼンテーショングラフィクスによるデータ(以下、PGデータ)に対応するモデルである場合、グラフィクスコントローラ114は、CB113からPCSを、対応するPTSに示されるタイミングで読み出すと共に、当該PCSにより参照されるWDSおよびPDSを読み出す。また、グラフィクスコントローラ114は、当該PCSから参照されるODSをDB112から読み出す。そして、読み出されたPCSおよびWDS、ならびに、ODSをそれぞれデコードし、字幕を表示するためのデータを形成し、グラフィクスプレーン103に書き込む。
【0158】
同様に、例えばこのデコーダモデルがインタラクティブグラフィクスによるデータ(以下、IGデータ)に対応するモデルである場合、グラフィクスコントローラ114は、CB113からICSを、当該ICSに対応するPTSに示されるタイミングで読み出すと共に、当該ICSにより参照されるPDSを読み出す。また、グラフィクスコントローラ114は、当該ICSから参照されるODSをDB112から読み出す。そして、読み出されたICSおよびODSをそれぞれデコードし、ボタン画像などメニュー画面を表示するためのデータを形成し、グラフィクスプレーン103に書き込む。
【0159】
また、グラフィクスコントローラ114は、CB113から読み出されたPDSをデコードして、例えば図13を用いて説明したようなカラーパレットテーブルを形成し、CLUT104に書き込む。
【0160】
グラフィクスプレーン103に書き込まれた画像イメージは、所定のタイミング、例えばフレームタイミングで読み出され、CLUT104のカラーパレットテーブルが参照されて色情報が付加されて出力画像データが構成され、この出力画像データが出力される。プレーヤの仕様によっては、グラフィクスプレーン103から読み出されたデータに対してCLUT104のカラーパレットテーブルに基づく色情報を付加した字幕画像データを、さらにフレームメモリに書き込む場合も考えられる。
【0161】
なお、エポックの更新に伴い、グラフィクスコントローラ114によりDB112、CB113、グラフィクスプレーン103およびCLUT104がクリアされる。これらバッファやプレーンのクリアは、CDB110から読み出されてデコードされたPCSまたはICSにおけるブロックcomposition_descriptor()中のフィールドcomposition_stateの記述が、このディスプレイセットがエポックスタートディスプレイセットであることを示している場合に、行われる。エポックの更新に伴い、CDB110を共にクリアすることも可能である。
【0162】
ここで、エポックの定義について説明する。既に説明したように、プレゼンテーショングラフィクスおよびインタラクティブグラフィクスにおいて、エポックは、エポックスタートディスプレイセットに基づき定義される。
【0163】
プレゼンテーショングラフィクスについては、次の項目(1)および項目(2)で示す2項目のうち短い方がエポックとして定義される。
【0164】
項目(1):エポックスタートディスプレイセットがPCSに定義されるディスプレイセットから、次のエポックスタートディスプレイセットがPCSに定義されるディスプレイセットの1つ前のディスプレイセットまで。
項目(2):エポックスタートディスプレイセットがPCSに定義されるディスプレイセットからそのPGデータが関連するプレイリストの最後まで。
【0165】
なお、より具体的には、項目(1)の場合、エポックスタートディスプレイセットが定義されるPCSのPTSから、次のエポックスタートディスプレイセットが定義されるPCSのPTSまでがエポックとされる。項目(2)の場合も同様に、エポックスタートディスプレイセットが定義されるPCSのPTSから、当該ディスプレイセットが参照されるプレイリストの最後までがエポックとされる。
【0166】
インタラクティブグラフィクスについては、次の項目(3)、項目(4)および項目(5)のうち、最も短いものがエポックとして定義される。
【0167】
項目(3):エポックスタートディスプレイセットがICSに定義されるディスプレイセットから、当該ICSのフィールドcomposition_time_out_ptsに定義される時刻まで。
項目(4):エポックスタートディスプレイセットがICSに定義されるディスプレイセットから、次のエポックスタートディスプレイセットがICSに定義されるディスプレイセットの1つ前のディスプレイセットまで。
項目(5):エポックスタートディスプレイセットがICSに定義されるディスプレイセットから当該IGデータが関連するプレイリストの最後まで。
【0168】
図30は、グラフィクスデコーダ102における、PGデータに関するディスプレイセット単位での一例の処理を示すフローチャートである。ステップS10で、PIDフィルタ100によりTSパケットからPIDに基づきPGデータが格納されたパケットが取得され、TB101に溜め込まれる。次のステップS11で、TB101にPESパケットを構成可能なだけのTSパケットが溜め込まれたら、PIDに基づきTSパケットのペイロードからデータが取り出され、PESパケットが再構築される。PESパケットは、PESヘッダが取り除かれてエレメンタリストリーム形式でCDB110に転送される。
【0169】
PESパケットから取り出されたエレメンタリストリームは、ストリームグラフィックプロセッサ111においてセグメントに展開される(ステップS12)。そして、次のステップS13〜ステップS17までで、展開されたセグメントがPCS、WDS、PDSおよびODSの何れであるか、若しくは、ENDセグメントであるか否かが判別され、判別結果に応じた処理が行われる。セグメントの種類は、上述の図19や図21などを用いて説明したように、シンタクスの先頭のブロックsegment_description()における最初のフィールドsegment_typeに基づき判別できる。なお、図示しないが、WDSおよびODSも、同様の方法でセグメントの種類を判別可能である。
【0170】
ステップS13で、セグメントがPCSであるか否かが判別される。若し、セグメントがPCSであると判別されれば、処理はステップS19に移行され、図19を用いて説明したPCSのシンタクスにおけるブロックcomposition_descriptor()内のフィールドcomposition_stateに基づき、このPCSが含まれるディスプレイセットがエポックスタートディスプレイセットであるか否かが判断される。
【0171】
若し、当該ディスプレイセットがエポックスタートディスプレイセットであると判断されれば、処理はステップS20に移行され、字幕表示に関わるバッファのクリアがなされる。例えば、DB112およびCB113がステップS20でクリアされる。このとき、CDB110を共にクリアすることも可能である。そして、次のステップS21で、クリアされ空になったCB113に、DTSのタイミングでPCSが書き込まれる。CB113へのPCSの書き込みが終了すると、処理はステップS10に戻され、パケットの取得が継続される。
【0172】
一方、ステップS19で、PCSがエポックスタートディスプレイセットではないと判断されれば、処理はステップS22に移行され、PCSがCB113にDTSのタイミングで書き込まれる。このとき、PCSは、CB113の空き領域に所定に書き込まれる。
【0173】
上述のステップS13で、セグメントがPCSではないと判別されれば、処理はステップS14に移行され、セグメントがWDSであるか否かが判別される。若し、セグメントがWDSであると判別されれば、処理はステップS23に移行され、WDSがCB113にDTSのタイミングで書き込まれる。CB113へのWDSの書き込みが終了すると、処理はステップS10に戻され、パケットの取得が継続される。ステップS14でセグメントがWDSではないと判別されれば、処理はステップS15に移行される。
【0174】
ステップS15では、セグメントがPDSであるか否かが判別される。若し、セグメントがPDSであると判別されれば、処理はステップS24に移行され、PDSが即座にCB113に書き込まれる。これは、PDSは、PTSしか定義されず、DTSを持たないので、PDSであると判別された時点で、即座にCB113に書き込まれる。CB113へのWDSの書き込みが終了すると、処理はステップS10に戻され、パケットの取得が継続される。ステップS15でセグメントがPDSではないと判別されれば、処理はステップS16に移行される。
【0175】
ステップS16では、セグメントがODSであるか否かが判別される。若し、セグメントがODSであると判別されれば、処理はステップS25に移行され、ODSに格納された、ランレングス処理されたビットマップデータがDTSのタイミングでデコードされ、DB112に書き込まれる。DB112へのODSの書き込みが終了すると、処理はステップS10に戻され、パケットの取得が継続される。ステップS16でセグメントがODSではないと判別されれば、処理はステップS17に移行される。
【0176】
ステップS17では、セグメントがディスプレイセットの最後尾を示すENDセグメントであるか否かが判断される。若し、セグメントがENDセグメントであると判別されれば、このディスプレイセットに関する一連の処理が終了される。
【0177】
一方、ステップS17で、セグメントがENDセグメントではないと判別されれば、処理はステップS18に移行される。すなわち、この場合には、何らかのエラーが発生したものと判断でき、所定にエラー処理がなされる。
【0178】
なお、上述の構成では、PCSに定義されるPTSのタイミングで、字幕を表示するために用いるPCSがCB113から排出され字幕が表示されると共に、当該PCSがCB113上から破棄されるようになっている。これによれば、ユーザオペレーションにより字幕表示OFFが指示され字幕が消去されてしまうと、次に字幕表示ONを指示して字幕を再び表示させようとしても、字幕表示ONの指示後の、PCSに定義されたPTSに到達するまで字幕表示を行うことができないことになる。
【0179】
そこで、現在アクティブなODSを保持するためのバッファをDB112とは別に設けると共に、現在アクティブなPCSおよびPDSを保持するためのバッファをCB113とは別に設けることができる。字幕表示ONが指示されると、これらDB112やCB113とは別に設けられたバッファに保持されたODS、PCSおよびPDSを用いて、字幕画像イメージおよびカラーパレットテーブルを形成し、グラフィクスプレーン103およびCLUT104に対してそれぞれ書き込む。
【0180】
なお、アクティブとは、PTSにより表示が指示された状態を指し、より具体的には、あるPCSにおいて、自身に定義されたPTSから次の字幕表示に用いられるPCSに定義されたPTSまでの期間がアクティブとされる。
【0181】
すなわち、グラフィクスコントローラ114は、PCS毎に定義されたPTSのタイミングでCB113から排出されるPCSを、上述のようにしてグラフィクスプレーン103およびCLUT104にそれぞれ供給すると共に、CB113とは別に設けられたバッファに対し、次のPCSに定義されたPTSのタイミングまで保持するようにしている。ODSについても同様に、DB112からPTSのタイミングで排出されるODSをグラフィクスプレーン103に供給すると共に、DB112とは別に設けられたバッファに対し、次のPCSに定義されたPTSのタイミングまで保持する。
【0182】
このように構成することで、ユーザオペレーションによる字幕表示OFFの指示に応じて字幕が消去された後に、字幕表示ONを指示した場合に、字幕表示ONのタイミングに応じて即座に、字幕の表示を再開できるようになる。
【0183】
すなわち、字幕表示OFFが指示された後に字幕表示ONが指示されると、CB113とは別に設けられたバッファからPCSを読み出すと共に、DB112とは別に設けられたバッファからODSを読み出し、これら読み出されたPCSおよびODSを用いて字幕画像イメージを形成する。形成されたこの字幕画像イメージは、グラフィクスプレーン103に書き込まれる。PDSについても同様に、字幕表示ONの指示のタイミングでCB113とは別に設けられたバッファからPDSを読み出し、読み出されたPDSを用いてカラーパレットテーブルを形成する。形成されたカラーパレットテーブルは、CLUT104に書き込まれる。
【0184】
図31は、グラフィクスデコーダ102における、IGデータに関するディスプレイセット単位での一例の処理を示すフローチャートである。この図31に一例が示される処理は、PGデータにのみ存在するWDSに関する処理を除き、略図30に示されるPGデータに関する処理と同等である。
【0185】
ステップS30で、PIDフィルタ100によりTSパケットからPIDに基づきIGデータが格納されたパケットが取得され、TB101に溜め込まれる。次のステップS31で、TB101に溜め込まれたTSパケットのペイロードからPIDに基づきデータが取り出され、PESパケットが再構築され、PESヘッダが取り除かれてエレメンタリストリーム形式でCDB111に転送される。
【0186】
PESパケットから取り出されたエレメンタリストリームは、ストリームグラフィックプロセッサ111においてセグメントに展開される(ステップS32)。そして、ステップS33以下の処理により、展開されたセグメントがICS、PDSおよびODSの何れであるか、若しくは、ENDセグメントであるか否かが判別され、判別結果に応じた処理が行われる。セグメントの種類は、上述の図24を用いて説明したように、シンタクスの先頭のブロックsegment_description()に基づき判別できる。なお、図示しないが、ODSも、同様の方法でセグメントの種類を判別可能である。
【0187】
ステップS33で、セグメントがICSであるか否かが判別される。若し、セグメントがICSであると判別されれば、処理はステップS38に移行され、図24を用いて説明したICSのシンタクスにおけるブロックcomposition_descriptor()に基づき、このICSが含まれるディスプレイセットがエポックスタートディスプレイセットであるか否かが判断される。
【0188】
若し、当該ディスプレイセットがエポックスタートディスプレイセットであると判断されれば、処理はステップS39に移行され、メニュー表示に関わるバッファのクリアがなされる。例えば、DB112およびCB113がステップS39でクリアされる。このとき、CDB110を共にクリアすることも可能である。そして、次のステップS40で、クリアされ空になったCB113に、DTSのタイミングでPCSが書き込まれる。CB113へのPCSの書き込みが終了すると、処理はステップS30に戻され、パケットの取得が継続される。
【0189】
一方、ステップS38で、ICSがエポックスタートディスプレイセットではないと判断されれば、処理はステップS41に移行され、ICSがCB113にDTSのタイミングで書き込まれる。このとき、ICSは、CB113の空き領域に所定に書き込まれる。
【0190】
上述のステップS33で、セグメントがICSではないと判別されれば、処理はステップS34に移行される。ステップS34以降の処理は、上述した図30のフローチャートにより処理と同様に、セグメントがPDSであるか(ステップS34)、ODSであるか(ステップS35)、ENDセグメントであるか(ステップS36)の判断がなされ、それぞれの判断に応じた処理がステップS42、ステップS43およびステップS37において行われる。すなわち、セグメントがPDSであれば、CD113に即座に書き込まれ(ステップS42)、セグメントがODSであれば、DTSでデコードされDB112に書き込まれる(ステップS43)。
【0191】
次に、この発明の実施の一形態について説明する。上述したように、BD−ROM規格で定義されるデコーダモデルによれば、PGデータおよびIGデータに関し、CDB110にセグメントを溜め込み、セグメントのそれぞれに定義されたDTSの時刻でデコードしてDB112またはCB113に保持し、セグメントのそれぞれに定義されたPTSの時刻で出力するように規定されている。そのため、BD−ROM規格で定義されるデコーダモデルに基づきプレーヤを設計する際には、図32に一例が示されるように、CDB110に溜め込まれたセグメントに対応するDTSおよびPTSを格納するメモリ200(以下、PTS/DTSバッファ200と呼ぶ)が必須であると考えられる。
【0192】
すなわち、このデコーダモデルに基づきプレーヤの制御を行う制御部は、CDB110に溜め込まれたセグメントに対し、PTS/DTSバッファ200に格納されたDTSに基づきデコードタイミングを指示し、デコードされDB112またはCB113に格納されたセグメントに対し、PTS/DTSバッファ200に格納されたPTSに基づき出力タイミングを指示するように制御する。このPTS/DTSバッファ200は、現時点のBD−ROM規格では定義されていない。
【0193】
図33は、PTS/DTSバッファ200に溜め込まれる一例のデータ構成を示す。PTS/DTSバッファ200に対して、CDB110に溜め込まれたセグメントに対応するDTSおよびPTSが格納されると共に、セグメントのそれぞれを識別するセグメントIDが格納される。DTSおよびPTSは、規定に従いそれぞれ33ビットのデータ長を有する。
【0194】
PTS/DTSバッファ200に対して、セグメント毎にさらに他のデータを格納してもよい。図33の例では、セグメントIDで示されるセグメントのバージョンを示すバージョン情報と、当該セグメントのタイプを示す情報が格納される。セグメントのタイプを示す情報は、PGデータの場合、当該セグメントがPCS、PDS、WDSおよびODSの何れであるかを示し、IGデータの場合、当該セグメントがICS、PDSおよびODSの何れであるかを示す。
【0195】
一例として、図33に示す項目のうちセグメントIDのデータ長を16ビット、バージョン情報のデータ長を8ビット、セグメントタイプのデータ長を4ビットとするとき、1セグメント当たりのデータサイズは、94ビットとなり、バイト単位で切り上げると12バイトとなる。
【0196】
図32に示したデコーダモデルに基づき実際にプレーヤを設計する場合、各バッファやメモリについて最低限必要な容量をそれぞれ見積もる必要がある。BD−ROM規格に定義されているバッファであるTB101、CDB110、DB112およびCB113については、同規格において既に最低容量が規定されている。したがって、BD−ROM規格に定義されていないPTS/DTSバッファ200について、最低容量を見積もる必要がある。
【0197】
既に説明したように、PGデータおよびIGデータにおいて、セグメントのデータサイズが可変なので、CDB110に対して何個のセグメントが溜め込まれるのかを見積もるのは困難である。したがって、CDB110に溜め込まれたセグメントに対応するPTSおよびDTSの合計数すなわち合計サイズを見積もることも困難となる。
【0198】
例えば、CDB110に対してデータサイズの大きなセグメントが溜め込まれる場合には、CDB110に格納可能なセグメント数が少なくなるので、対応するPTSおよびDTSの合計サイズが小さなものとなる。例えば、PGデータの場合には、ODSに大きな字幕画像データが格納される場合が考えられる。IGデータの場合には、ページ数やコマンド数、使用されるボタン数が多い場合のICSや、ODSに大きな画像データが格納される場合が考えられる。
【0199】
一方、CDB110に対してデータサイズの小さなセグメントが溜め込まれる場合には、CDB110に格納可能なセグメント数が多くなるので、対応するPTSおよびDTSの合計サイズが大きくなる。一例として、IGデータにおいて、アニメーション表示が設定されたボタン画像データが多数用いられている場合、ボタン画像データが格納される個々のODSのデータサイズは小さいが、ODSが多くなり、それに伴い対応するPTSおよびDTSの数が多くなる。
【0200】
また、ICSやODSについては、セグメントのサイズがPESパケットの上限サイズの64kBよりも大きい場合があり、このような場合、既に説明したように、1のセグメントが複数のPESパケットに跨って格納される。この場合、1のセグメントに対して複数のDTSおよびPTSが存在することになり、CDB110の容量に基づくDTSおよびPTSの合計サイズの見積もりを困難にする要因となる。
【0201】
そこで、この発明の実施の一形態では、プレゼンテーショングラフィクスおよびインタラクティブグラフィクスそれぞれの場合について、PTS/DTSバッファ200に格納可能なPTSおよびDTSの数に上限を定義し、この上限に基づきPTS/DTSバッファ200の最低限必要な容量を規定することができるようにした。
【0202】
PTS/DTSバッファ200に格納されるPTSおよびDTSの数は、CDB110に格納されるセグメントの数に対応する。したがって、PTS/DTSバッファ200に格納可能なPTSおよびDTSの数の上限は、CDB110に格納可能なセグメント数の上限に基づき決めることができる。また、CDB110にエレメンタリストリームの形式で溜め込まれたPGデータまたはIGデータのセグメントは、図30または図31を用いて説明した処理に従い、対応するDTSでストリームグラフィクスプロセッサ111でデコードされてDB112またはCB113に格納され、対応するPTSで出力される。そのため、DB112またはCB113からセグメントが出力されるまで、当該セグメントに対応するPTSを、PTS/DTSバッファ200で保持しておく必要がある。したがって、CDB110に格納可能なセグメント数の上限は、DB112およびCB113に格納可能なセグメント数に基づき決めることができる。これは、換言すれは、PTS/DTSバッファ200に格納可能なPTSおよびDTSの数の上限は、DB112およびCB113に格納可能なセグメント数に基づき決めることができるということもできる。
【0203】
BD−ROM規格においては、PGデータおよびIGデータのそれぞれについて、1エポック内のセグメント数の上限が設けられる。これにより、PGデータについては、1エポック内で使用可能な字幕画像データの数などが制限される。また、IGデータについては、1エポック内で使用可能なページ数、コマンド数、ボタン画像データ数などに制限が設けられる。この、PGデータおよびIGデータについて設けられる1エポック内のセグメント数の上限に基づき、PGデータおよびIGデータそれぞれに対応するデコーダモデルにおいて、DB112およびCB113が格納可能とすべきセグメント数を定めることができる。
【0204】
なお、DB112およびCB113は、上述したように、図30および図31のフローチャートを用いて既に説明したように、エポックスタートディスプレイセットによりクリアされる。
【0205】
PGデータに関する、1エポック内のセグメント数の上限は、図34Aに一例が示されるように、PCSが8個、WDSが1個、PDSが8個、ODSが64個、ENDセグメントが8個となっている。これらのうち、ENDセグメントは、DTSを持たないと共に、DB112およびCB113に格納されないため、PTS/DTSバッファ200の最低限必要な容量の算出対象から除外する。また、PDSは、DTSを持たないが、CB113に保持される実装も許されるため、PTS/DTSバッファ200の最低限必要な容量の算出対象とする。したがって、PCS、WDS、PDSおよびODSのセグメント数の上限値に基づき、PGデータに対応するデコーダモデルにおけるPTS/DTSバッファ200の最低限必要な容量を見積もることができる。
【0206】
一例として、上述の図33に示される全項目をセグメント毎に保持するとした場合、(8個+1個+8個+64個)×12バイト=972バイトとなり、PGデータに対応するデコーダモデルにおけるPTS/DTSバッファ200の最低限必要な容量を、972バイトと見積もることができる。実際には、この最低限の容量に対してある程度余裕を持たせ、例えばPGデータの1エポック内のセグメント数の上限を128個程度として、PTS/DTSバッファ200の最低限必要な容量を1.6kB程度とすることが考えられる。
【0207】
IGデータに関する、1エポック内のセグメント数の上限は、図34Bに一例が示されるように、ICSが1個、PDSが256個、ODSが4096個、ENDセグメントが1個となっている。これらのうち、ENDセグメントは、DTSを持たないと共に、DB112およびCB113に格納されないため、PTS/DTSバッファ200の最低限必要な容量の算出対象から除外する。また、PDSは、DTSを持たないが、CB113に保持される実装も許されるため、PTS/DTSバッファ200の最低限必要な容量の算出対象とする。したがって、ICS、PDSおよびODSのセグメント数の上限値に基づき、IGデータに対応するデコーダモデルにおけるPTS/DTSバッファ200の最低限必要な容量を見積もることができる。
【0208】
一例として、上述の図33に示される全項目をセグメント毎に保持するとした場合、(1個+256個+4096個)×12バイト=52236バイトとなり、IGデータに対応するデコーダモデルにおけるPTS/DTSバッファ200の最低限必要な容量を、52236バイトと見積もることができる。実際には、この最低限の容量に対してある程度余裕を持たせ、例えばIGデータの1エポック内のセグメント数の上限を5120個程度として、PTS/DTSバッファ200の最低限必要な容量を64kB程度とすることが考えられる。
【0209】
なお、図34Aおよび図34Bに示したPGデータおよびIGデータそれぞれについての、1エポック内のセグメント数の上限値は、一例であって、この例に限定されるものではない。
【0210】
PTS/DTSバッファ200は、エポック毎にクリアすることができる。例えば、図30および図31のフローチャートを用いて説明した、エポックスタートディスプレイセットによりDB112およびCB113がクリアされるタイミングで、PTS/DTSバッファ200をクリアすることができる。PTS/DTSバッファ200をエポック毎にクリアすることで、データをクリアするタイミングが固定的となり、モデルがシンプルになるメリットがある。
【0211】
また、これに限らず、セグメント毎にPTS/DTSバッファ200を管理することもできる。例えば、PTS/DTSバッファ200に保持されているPTSや、PTSとDTSとの組み合わせのうち、再生時刻が当該PTSを過ぎたデータをセグメント単位で消去することが可能である。PTSによりPTS/DTSバッファ200のクリアを行うことで、PTS/DTSバッファ200に対して不要なデータを保持しておく必要が無いというメリットがある。
【0212】
次に、上述した実施の一形態に適用可能な再生装置について説明する。図35は、この発明の実施の一形態に適用可能な再生装置1の一例の構成を示す。再生装置1は、ストレージドライブ50、スイッチ回路51、AVデコーダ部52およびコントローラ部53を有する。ストレージドライブ50は、例えば、上述したBD−ROMを装填して再生可能とされているものとする。
【0213】
コントローラ部53は、例えばCPU(Central Processing Unit)と、CPU上で動作されるプログラムが予め格納されたROM(Read Only Memory)、CPUによりプログラムの実行時にワークメモリとして用いられるRAM(Random Access Memory)などからなり、この再生装置1の全体的な動作を制御する。
【0214】
また、図示は省略するが、再生装置1には、ユーザに対して所定の制御情報を提供すると共に、ユーザオペレーションに応じた制御信号を出力するようにされたユーザインターフェイスが設けられる。例えば、赤外線通信など所定の無線通信手段を介して再生装置1と遠隔的に通信を行うリモートコントロールコマンダがユーザインターフェイスとして用いられる。リモートコントロールコマンダ上には、上下左右方向をそれぞれ指示可能な十字キーといった方向キーや、数字キー、各種機能が予め割り当てられた機能キーなど、複数の入力手段が設けられる。
【0215】
リモートコントロールコマンダは、これらの入力手段に対してなされた操作に応じた制御信号を生成し、生成された制御信号を例えば赤外線信号に変調して送信する。再生装置1は、図示されない赤外線受信部においてこの赤外線信号を受信し、赤外線信号を電気信号に変換して復調し、元の制御信号を復元する。この制御信号がコントローラ部53に供給される。コントローラ部53は、この制御信号に応じて、プログラムに従い、再生装置1の動作を制御する。
【0216】
ユーザインターフェイスは、リモートコントロールコマンダに限らず、例えば再生装置1の操作パネルに設けられたスイッチ群により構成することができる。また、再生装置1に、LAN(Local Area Network)などを介して通信を行う通信手段を設け、この通信手段を介して外部のコンピュータ装置などから供給された信号を、ユーザインターフェイスによる制御信号としてコントローラ部53に供給することも可能である。
【0217】
また、当該再生装置1の言語設定の初期情報が、再生装置1が有する不揮発性メモリなどに記憶される。この言語設定の初期情報は、例えば再生装置1の電源投入時などにメモリから読み出され、コントローラ部53に供給される。
【0218】
ストレージドライブ50にディスクが装填されると、コントローラ部53は、ストレージドライブ50を介してディスク上のファイル"index.bdmv"やファイル"MovieObject.bdmv"を読み出し、読み出されたファイルの記述に基づきディレクトリ"PLAYLIST"内のプレイリストファイルを読み出す。コントローラ部53は、プレイリストファイルに含まれるプレイアイテムが参照するクリップAVストリームを、ディスクからストレージドライブ50を介して読み出す。また、コントローラ部53は、プレイリストがサブプレイアイテムを含む場合は、サブプレイアイテムにより参照されるクリップAVストリームやサブタイトルデータも、ディスクからストレージドライブ50を介して読み出す。
【0219】
なお、以下では、サブプレイアイテムに対応するクリップAVストリームを、サブクリップAVストリームと呼び、サブプレイアイテムに対する主たるプレイアイテムに対応するクリップAVストリームを、メインクリップAVストリームと呼ぶ。
【0220】
ストレージドライブ50から出力されたデータは、図示されない復調部およびエラー訂正部により復調処理およびエラー訂正処理を所定に施され、多重化ストリームが復元される。ここでの多重化ストリームは、PIDによりデータの種類や並び順などが識別され、所定サイズに分割され時分割多重されたトランスポートストリームである。この多重化ストリームは、スイッチ回路51に供給される。コントローラ部53は、例えばPIDに基づきスイッチ回路51を所定に制御してデータを種類毎に分類し、メインクリップAVストリームのパケットをバッファ60に供給し、サブクリップAVストリームのパケットをバッファ61に供給し、サウンドデータのパケットをバッファ62に供給し、テキストデータのパケットをバッファ63に供給する。
【0221】
バッファ60に溜め込まれたメインクリップAVストリームのパケットは、コントローラ部53の制御に基づきバッファ60からパケット毎に読み出され、PIDフィルタ64に供給される。PIDフィルタ64は、供給されたパケットのPIDに基づき、パケットを、ビデオストリームによるパケット、プレゼンテーショングラフィクスストリーム(以下、PGストリーム)によるパケット、インタラクティブグラフィクスストリーム(以下、IGストリーム)によるパケットおよびオーディオストリームによるパケットに振り分ける。
【0222】
一方、バッファ61に溜め込まれたサブクリップAVストリームのパケットは、コントローラ部53の制御に基づきバッファ61からパケット毎に読み出され、PIDフィルタ90に供給される。PIDフィルタ90は、供給されたパケットのPIDに基づき、パケットを、ビデオストリームによるパケット、PGストリームによるパケット、IGストリームによるパケットおよびオーディオストリームによるパケットに振り分ける。
【0223】
PIDフィルタ64により振り分けられたビデオストリームによるパケットと、PIDフィルタ90により振り分けられたビデオストリームによるパケットは、それぞれPIDフィルタ65に供給され、PIDに応じて振り分けられる。すなわち、PIDフィルタ65は、PIDフィルタ64から供給された、メインクリップAVストリームによるパケットを1stビデオデコーダ69に、PIDフィルタ90から供給された、サブクリップAVストリームによるパケットを2ndビデオデコーダ72に、それぞれ供給するように、パケットを振り分ける。
【0224】
1stビデオデコーダ69は、供給されたパケットのペイロードからビデオストリームを所定に取り出し、取り出されたビデオストリームのMPEG2方式による圧縮符号を復号化する。1stビデオデコーダ69の出力は、1stビデオプレーン生成部70に供給され、ビデオプレーンが生成される。ビデオプレーンの生成は、例えばベースバンドのディジタルビデオデータの1フレームがフレームメモリに書き込まれることで生成される。1stビデオプレーン生成部70で生成されたビデオプレーンは、ビデオデータ処理部71に供給される。
【0225】
2ndビデオデコーダ72および2ndビデオプレーン生成部73において、上述の1stビデオデコーダ69および1stビデオプレーン生成部70と略同様の処理がなされ、ビデオストリームが復号化されビデオプレーンが生成される。2ndビデオプレーン生成部73で生成されたビデオプレーンは、ビデオデータ処理部71に供給される。
【0226】
ビデオデータ処理部71は、1stビデオプレーン生成部70で生成されたビデオプレーンと、2ndビデオプレーン生成部73で生成されたビデオプレーンとを、1つのフレームに例えば所定に嵌め込んで1枚のビデオプレーンを生成することができる。1stビデオプレーン生成部70で生成されたビデオプレーンと、2ndビデオプレーン生成部73で生成されたビデオプレーンとを、選択的に用いてビデオプレーンを生成してもよい。このビデオプレーンは、例えば上述の図9に例示した動画プレーン10に対応する。
【0227】
PIDフィルタ64により振り分けられたPGストリームによるパケットと、PIDフィルタ90により振り分けられたPGストリームによるパケットは、それぞれスイッチ回路66に供給されて一方が所定に選択され、プレゼンテーショングラフィクスデコーダ74に供給される。
【0228】
プレゼンテーショングラフィクスデコーダ74(図35中ではPGデコーダ74と表記)は、図32を用いて説明したデコーダモデルにおけるグラフィクスデコーダ102に対応する。このとき、図32に示されるPIDフィルタ100およびTB101は、例えばスイッチ回路64および図示されないバッファに対応する。これに限らず、PGデコーダにPIDフィルタ100およびTB101を含んでもよい。
【0229】
図35の例では、PTS/DTSバッファ200は、このプレゼンテーショングラフィクスデコーダ74に含まれる。これに限らず、PTS/DTSバッファ200を、コントローラ53が有するRAM上の所定領域とすることもできる。この場合、コントローラ53は、上述したようにして規定される、PGデータについて、PTS/DTSバッファ200に最低限必要な容量を、RAM上に確保する。
【0230】
プレゼンテーショングラフィクスデコーダ74は、供給されたパケットのペイロードからPGストリームを所定に取り出してデコードして字幕を表示するグラフィクスデータを生成し、スイッチ回路75に供給する。すなわち、プレゼンテーショングラフィクスデコーダ74は、供給されたパケットのペイロードからデータを取り出して、PIDの情報に基づきPESパケットを再構築する。そして、再構築されたPESパケットのヘッダにDTSおよび/またはPTSが存在すれば、それらを取り出してPTS/DTSバッファ200に保持すると共に、ペイロードのデータを取り出してデコードし、PCS、WDS、PDSおよびODSを形成する。これらPCS、WDS、PDSおよびODSは、対応するDTSに示されるタイミングでDB112またはCB113に格納され、対応するPTSに示されるタイミングでプレゼンテーショングラフィクスデコーダ74から出力され、スイッチ回路75に供給される。
【0231】
スイッチ回路75は、このグラフィクスデータと、後述するテキストデータによる字幕データとを所定に選択し、プレゼンテーショングラフィクスプレーン生成部76に供給する。プレゼンテーショングラフィクスプレーン生成部76は、供給されたデータに基づきプレゼンテーショングラフィクスプレーンを生成し、ビデオデータ処理部71に供給する。このプレゼンテーショングラフィクスプレーンは、例えば上述の図9に例示した字幕プレーン11に対応し、図24および図28で説明したグラフィクスプレーン103に格納される字幕画像イメージに対応する。
【0232】
PIDフィルタ64により振り分けられたIGストリームによるパケットと、PIDフィルタ90により振り分けられたIGストリームによるパケットは、それぞれスイッチ回路67に供給されて一方が所定に選択され、インタラクティブグラフィクスデコーダ77(図35ではIGデコーダ77と表記)に供給される。
【0233】
インタラクティブグラフィクスデコーダ77は、図32を用いて説明したデコーダモデルにおけるグラフィクスデコーダ102に対応する。このとき、図32に示されるPIDフィルタ100およびTB101は、例えばスイッチ回路67および図示されないバッファに対応する。これに限らず、IGデコーダにPIDフィルタ100およびTB101を含んでもよい。
【0234】
図35の例では、PTS/DTSバッファ200は、このプレゼンテーショングラフィクスデコーダ77に含まれる。これに限らず、PTS/DTSバッファ200を、コントローラ53が有するRAM上の所定領域とすることもできる。この場合、コントローラ53は、上述したようにして規定される、IGデータについて、PTS/DTSバッファ200に最低限必要な容量を、RAM上に確保する。
【0235】
インタラクティブグラフィクスデコーダ77は、供給されたIGストリームによるパケットからIGストリームのICS、PDSおよびODSを所定に取り出してデコードする。例えば、インタラクティブグラフィクスデコーダ77は、供給されたパケットのペイロードからデータを取り出して、PIDの情報に基づきPESパケットを再構築する。そして、再構築されたPESパケットのヘッダにPTSおよび/またはDTSが存在すれば、それらを取り出してPTS/DTSバッファ200に保持すると共に、ペイロードのデータを取り出してデコードし、IGストリームのICS、PDSおよびODSを形成する。ICSおよびODSは、PTS/DTSバッファ200に保持された、対応するDTSのタイミングでデコードされ、DB112に格納される。PDSは、即座にデコードされ、CB113に格納される。
【0236】
インタラクティブグラフィクスデコーダ77において、PTS/DTSバッファ200に保持されたPTSのタイミングで、対応するセグメントがDB112またはCB113から所定に読み出され、プリロードバッファ78を介してインタラクティブグラフィクスプレーン生成部79に供給される。インタラクティブグラフィクスプレーン生成部79は、供給されたセグメントに基づき、インタラクティブグラフィクスプレーンを生成する。このインタラクティブグラフィクスプレーンは、例えば上述の図9に例示したインタラクティブグラフィクスプレーン12に対応する。
【0237】
ビデオデータ処理部71は、例えば図11を用いて説明したグラフィクス処理部を含み、供給されたビデオプレーン(図11における動画プレーン10)、プレゼンテーショングラフィクスプレーン(図11における字幕プレーン11)およびインタラクティブグラフィクスプレーン(図11におけるインタラクティブグラフィクスプレーン12)を、所定に合成して1枚の画像データとし、ビデオ信号にして出力する。
【0238】
例えば、図11を参照し、プレゼンテーショングラフィクスプレーン(すなわち字幕画像イメージ)に関して、パレットテーブル22A、RGB/YCbCr変換部22Bおよび乗算器23は、図32で説明したCLUT104に対応し、パレットテーブル22AおよびRGB/YCbCr変換部22Bで色情報が付加されると共に、乗算器23で透明属性を付加され、さらに、加算器24および加算器29で、ビデオプレーンおよびインタラクティブグラフィクスプレーンと合成され、1枚の画像データとされて出力される。
【0239】
PIDフィルタ64により振り分けられたオーディオストリームと、PIDフィルタ90により振り分けられたオーディオストリームは、それぞれスイッチ回路68に供給される。スイッチ回路68は、供給された2つのオーディオストリームのうち一方を1stオーディオデコーダ80に、他方を2ndオーディオデコーダ81に供給するように、所定に選択する。1stオーディオデコーダ80および2ndオーディオデコーダ81でそれぞれデコードされたオーディオストリームは、加算器82で合成され、さらに加算器83で、バッファ62から読み出されたサウンドデータと合成され、出力される。
【0240】
バッファ63から読み出されたテキストデータは、Text−STコンポジション部で所定に処理され、スイッチ回路75に供給される。
【0241】
上述では、再生装置1の各部がハードウェアで構成されるように説明したが、これはこの例に限られない。例えば、再生装置1をソフトウェア上の処理として実現することも可能である。この場合、再生装置1をコンピュータ装置上で動作させることができる。また、再生装置1をハードウェアおよびソフトウェアが混合された構成で実現することもできる。例えば、再生装置1における各デコーダ、特に、1stビデオデコーダ69、2ndビデオデコーダ72など処理の負荷が他と比べて大きな部分をハードウェアで構成し、その他をソフトウェアで構成することが考えられる。この場合、PTS/DTSバッファ200は、コンピュータ装置のメモリ上の所定領域として構成される。
【0242】
また、上述では、ビデオデータ、オーディオデータ、プレゼンテーショングラフィクスストリームおよびインタラクティブグラフィクスストリームを、光ディスクなどのディスク状記録媒体から読み出す構成として説明したが、これはこの例に限定されない。例えば、これらのデータの一部または全部を再生装置が有するハードディスクドライブや半導体メモリといった、光ディスク以外の記録媒体に保持し、当該記録媒体からこれらのデータを読み出すことも考えられる。
【0243】
再生装置1をソフトウェアのみ、または、ハードウェアおよびソフトウェアの混合により構成し、コンピュータ装置で実行させるためのプログラムは、例えばCD−ROM(Compact Disc-Read Only Memory)やDVD−ROM(Digital Versatile Disc Read Only Memory)といった記録媒体に記録されて提供される。この記録媒体をコンピュータ装置のドライブに装填し、記録媒体上に記録されたプログラムを所定にコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。プログラムをBD−ROMに記録することも考えられる。なお、コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
【図面の簡単な説明】
【0244】
【図1】BD−ROMのデータモデルを概略的に示す。
【図2】インデックステーブルを説明するための略線図である。
【図3】クリップAVストリーム、クリップ情報、クリップ、プレイアイテムおよびプレイリストの関係を示すUML図である。
【図4】複数のプレイリストから同一のクリップを参照する方法を説明するための略線図である。
【図5】サブパスについて説明するための略線図である。
【図6】記録媒体に記録されるファイルの管理構造を説明するための略線図である。
【図7】BD仮想プレーヤの動作を概略的に示す略線図である。
【図8】BD仮想プレーヤの動作を概略的に示す略線図である。
【図9】この発明の実施の形態で画像の表示系として用いられるプレーン構造の一例を示す略線図である。
【図10】動画プレーン、字幕プレーンおよびグラフィクスプレーンの一例の解像度および表示可能色を示す略線図である。
【図11】動画プレーン、字幕プレーンおよびグラフィクスプレーンを合成する一例の構成を示すブロック図である。
【図12】パレットの入出力データの一例を示す略線図である。
【図13】パレットに格納される一例のパレットテーブルを示す略線図である。
【図14】プレゼンテーショングラフィクスストリームについて説明するための略線図である。
【図15】ディスプレイセットの構成を概略的に示す略線図である。
【図16】プレゼンテーショングラフィクスのディスプレイセットに関する論理的な構造を概略的に示す略線図である。
【図17】インタラクティブグラフィクスのディスプレイセットに関する論理的な構造を概略的に示す略線図である。
【図18】ディスプレイセットの一例の格納形式を示す略線図である。
【図19】PCSの一例の構造を表すシンタクスを示す略線図である。
【図20】ブロックcomposition_object()の一例の構造を表すシンタクスを示す略線図である。
【図21】WDSの一例の構造を表すシンタクスを示す略線図である。
【図22】ブロックwindow()の一例の構造を表すシンタクスを示す略線図である。
【図23】メニュー画面およびボタンの構成を概略的に示す略線図である。
【図24】ICSのヘッダ情報の一例の構造を表すシンタクスを示す略線図である。
【図25】ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す略線図である。
【図26】ブロックpage()の一例の構造を表すシンタクスを示す略線図である。
【図27】ブロックbutton_overlap_group()の一例の構造を表すシンタクスを示す略線図である。
【図28】ブロックbutton()の一例の構造を表すシンタクスを示す略線図である。
【図29】現時点のBD−ROM規格に定義されるプレゼンテーショングラフィクスデータおよびインタラクティブグラフィクスデータのデコーダモデルの一例の構成を示すブロック図である。
【図30】プレゼンテーショングラフィクスデコーダにおけるディスプレイセット単位での一例の処理を示すフローチャートである。
【図31】インタラクティブグラフィクスデコーダにおけるディスプレイセット単位での一例の処理を示すフローチャートである。
【図32】この発明によるプレゼンテーショングラフィクスデータおよびインタラクティブグラフィクスデータのデコーダモデルの一例の構成を示すブロック図である。
【図33】PTS/DTSバッファに保持されるデータの一例の構成を示す略線図である。
【図34】プレゼンテーショングラフィクスおよびインタラクティブグラフィクスについて、1エポック内の各セグメント数の上限の例をそれぞれ示す略線図である。
【図35】発明の実施の一形態に適用可能な再生装置の一例の構成を示すブロック図である。
【符号の説明】
【0245】
1 再生装置
53 コントローラ
74 プレゼンテーショングラフィクスデコーダ
76 プレゼンテーショングラフィクスプレーン生成部
77 インタラクティブグラフィクスデコーダ
79 インタラクティブグラフィクスプレーン生成部
100 PIDフィルタ
101 トランスポートバッファ
102 PG/IGデコーダ
110 コーデッドデータバッファ
111 ストリームグラフィクスプロセッサ
112 デコーデッドオブジェクトバッファ
113 コンポジションバッファ
114 グラフィクスコントローラ
200 PTS/DTSバッファ

【特許請求の範囲】
【請求項1】
コンテンツデータと、該コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力部と、
上記入力部から入力された上記付随データのうちデコード時刻を示す情報が定義された上記第1の単位を記憶する第1の記憶部と、
上記デコード時刻を示す情報を保持する時刻情報保持部と、
上記時刻情報保持部に保持された上記デコード時刻を示す情報に従い上記第1の記憶部から上記第1の単位を取り出してデコードするデコード部と、
上記デコード部でデコードされた上記第1の単位を記憶する第2の記憶部と
を備え、
上記時刻情報保持部は、上記第1の記憶部に記憶される上記第1の単位数の上限に基づく容量を少なくとも有する
ことを特徴とする再生装置。
【請求項2】
請求項1に記載の再生装置において、
上記付随データは、出力時刻がさらに定義され、上記時刻情報保持部は、該付随データから取り出された該出力時刻を示す情報をさらに保持し、
上記デコード部でデコードされ上記第2の記憶部に記憶された上記第1の単位を、上記時刻情報保持部に保持された上記出力時刻を示す情報に従い該第2の記憶部から出力する
ことを特徴とする再生装置。
【請求項3】
請求項1に記載の再生装置において、
上記付随データは、
上記コンテンツデータによる主画像に重ねて表示するための、出力時刻が定義されたグラフィクスデータからなる
ことを特徴とする再生装置。
【請求項4】
請求項1に記載の再生装置において、
上記付随データは、
ユーザに対して操作を促す操作画面に用いるボタンを表示するための、アニメーション表示が可能なボタン画像と、該ボタン画像に対する表示制御情報とからなる
ことを特徴とする再生装置。
【請求項5】
請求項1に記載の再生装置において、
上記第2の記憶部は、
上記付随データにより表示される画像データを形成するための情報を保持する第3の記憶部と、
該付随データにより表示される画像データの属性情報を保持する第4の記憶部と
からなり、
上記第1の記憶部に格納される付随データ数の上限は、上記第3の記憶部に記憶される上記画像データを形成するための情報数の上限と、上記第4の記憶部に記憶される上記画像データの属性情報数の上限とに基づき決定される
ことを特徴とする再生装置。
【請求項6】
請求項1に記載の再生装置において、
上記第1の単位は、上記付随データの構造を示す情報と、該付随データの属性を示す情報と、該付随データの画像情報と、区切りを示す情報と
が定義され、
1の上記構造を示す情報と1の上記区切りを示す情報とを含む複数の上記第1の単位から第2の単位が構成され、
1または複数の上記付随データの属性を示す情報を含む1または複数の上記第2の単位から第3の単位が構成され、
上記付随データは、上記第3の単位の集合体である
ことを特徴とする再生装置。
【請求項7】
請求項6に記載の再生装置において、
上記デコード時刻を示す情報は、上記第1の単位に対して定義され、上記第1の単位をパケット化した際のパケットヘッダに格納される
ことを特徴とする再生装置。
【請求項8】
請求項6に記載の再生装置において、
上記デコード時刻を示す情報は、上記構造を示す情報および上記画像情報が格納される上記第1の単位に対して定義される
ことを特徴とする再生装置。
【請求項9】
請求項8に記載の再生装置において、
上記デコード時刻を示す情報は、さらに、上記属性を示す情報が格納される上記第1の単位に対して定義される
ことを特徴とする再生装置。
【請求項10】
請求項6に記載の再生装置において、
上記第1の記憶部に記憶される第1の単位数の上限は、上記第3の単位に格納可能とされた、上記構造を示す情報、上記属性を示す情報および上記画像情報が格納される上記第1の単位の数に基づく
ことを特徴とする再生装置。
【請求項11】
請求項6に記載の再生装置において、
上記第2の記憶部は、上記第3の単位毎にクリアされる
ことを特徴とする再生装置。
【請求項12】
請求項6に記載の再生装置において、
上記付随データは、出力時刻がさらに定義され、上記時刻情報保持部は、該付随データから取り出された該出力時刻を示す情報をさらに保持し、
上記デコード部でデコードされ上記第2の記憶部に記憶された上記第1の単位を、上記時刻情報保持部に保持された上記出力時刻に従い該第2の記憶部から出力するようにされ、
上記時刻情報保持部は、該時刻情報保持部に格納されている上記出力時刻を示す情報に基づき、上記第2の記憶部に記憶されている上記第1の単位による表示がなされた後、該第1の単位毎にクリアされる
ことを特徴とする再生装置。
【請求項13】
請求項12に記載の再生装置において、
上記時刻情報保持部は、
上記デコード時刻を示す情報と上記第1の単位とを関連付ける識別情報がさらに保持され、
上記識別情報は、上記時刻情報保持部に格納されている上記出力時刻を示す情報に基づき、上記第2の記憶部に記憶されている上記第1の単位による表示がなされた後、該第1の単位毎にクリアされる
ことを特徴とする再生装置。
【請求項14】
請求項6に記載の再生装置において、
上記時刻情報保持部に保持されている、上記第3の単位に含まれる上記第1の単位に定義される上記デコード時刻を示す情報を、該第3の単位毎にクリアする
ことを特徴とする再生装置。
【請求項15】
請求項14に記載の再生装置において、
上記時刻情報保持部は、
上記デコード時刻を示す情報と上記第1の単位とを対応付ける識別情報がさらに保持され、
上記デコード時刻を示す情報が上記クリアされる際に、該デコード時刻を示す情報に対応する上記識別情報も共にクリアされる
ことを特徴とする再生装置。
【請求項16】
コンテンツデータと、該コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力のステップと、
上記入力のステップにより入力された上記付随データのうちデコード時刻を示す情報が定義された上記第1の単位を第1の記憶部に記憶するステップと、
上記デコード時刻を示す情報を時刻情報保持部に保持するステップと、
上記時刻情報保持部に保持された上記デコード時刻を示す情報に従い上記第1の記憶部から上記第1の単位を取り出してデコードするデコードのステップと、
上記デコードのステップによりデコードされた上記第1の単位を第2の記憶部に記憶するステップと
を備え、
上記時刻情報保持部は、上記第2の記憶部に記憶される上記第1の単位数の上限に基づく上記デコード時刻を示す情報を少なくとも保持可能とした
ことを特徴とする再生方法。
【請求項17】
コンテンツデータと、該コンテンツデータに付随する情報を表示するための複数の第1の単位から構成される付随データとが入力される入力のステップと、
上記入力のステップにより入力された上記付随データのうちデコード時刻を示す情報が定義された上記第1の単位を第1の記憶部に記憶するステップと、
上記デコード時刻を示す情報を時刻情報保持部に保持するステップと、
上記時刻情報保持部に保持された上記デコード時刻を示す情報に従い上記第1の記憶部から上記第1の単位を取り出してデコードするデコードのステップと、
上記デコードのステップによりデコードされた上記第1の単位を第2の記憶部に記憶するステップと
を備え、
上記時刻情報保持部は、上記第2の記憶部に記憶される上記第1の単位数の上限に基づく上記デコード時刻を示す情報を少なくとも保持可能とした再生方法をコンピュータ装置に実行させる
ことを特徴とする再生プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate


【公開番号】特開2007−329529(P2007−329529A)
【公開日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願番号】特願2006−156905(P2006−156905)
【出願日】平成18年6月6日(2006.6.6)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】