(57)【要約】【課題】  ユーザ操作可能なメニュー表示で、あるコマンド以降に記述されたコマンドが実行されない制約の下で、当該コマンドの動作を実現可能とする。【解決手段】  ボタン４０６Ａ、４０６Ｂ、４０８及び４０９は、同一ＢＯＧに属する。ボタン４０８及び４０９は隠しボタンで、自動的に選択状態から実行状態に遷移する。ボタン４０６Ａにボタン４０８を選択状態とするコマンドを、ボタン４０８にボタン４０９を有効化するコマンドと再生位置を変更するコマンドを、ボタン４０９にポップアップメニューＯＦＦのコマンドを夫々関連付ける。有効化コマンドは、同じＢＯＧの別のボタンを有効化すると、関連付けられるコマンドを最後まで実行して、選択状態にあるボタンが存在しなければ、有効化されたボタンを選択状態にする。ボタン４０６Ａを実行状態にすると、再生位置が変更された後にポップアップメニューがＯＦＦとされる。【選択図】  図２８
2008097691.tif 000002
【特許請求の範囲】
【請求項１】
少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、該ボタン画像の表示制御を行うための表示制御情報および上記実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、上記ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造であって、
第１のボタンと、
それぞれ選択状態から自動的に実行状態に遷移するように定義された、上記第１のボタンと同一の上記グループに属する第２および第３のボタンと
を含み、
上記第１のボタンは、少なくとも上記第２のボタンを選択状態にさせるコマンドが関連付けられ、
上記第２のボタンは、少なくとも上記第３のボタンを有効にさせるボタン有効化コマンドと、該ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、
上記第３のボタンは、少なくとも上記第２のボタンに関連付けられる上記第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、
上記ボタン有効化コマンドは、該ボタン有効化コマンドを関連付けるボタンが含まれる上記グループの他のボタンを有効にした場合に、該ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、該ボタン有効化コマンドを関連付けるボタンに関連付けられる該他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、上記有効とされた上記他のボタンが選択状態とされるようにしたコマンドである
ことを特徴とするデータ構造。
【請求項２】
請求項１に記載のデータ構造において、
上記第１のコマンドは、上記コンテンツデータの再生位置を変更させるコマンドである
ことを特徴とするデータ構造。
【請求項３】
請求項１に記載のデータ構造において、
上記操作画面は、ユーザ操作に応じてＯＮ／ＯＦＦの切り換えが可能なポップアップメニューであって、上記第２のコマンドは、該ポップアップメニューをＯＦＦとさせるコマンドである
ことを特徴とするデータ構造。
【請求項４】
請求項１に記載のデータ構造において、
上記第２のボタンおよび上記第３のボタンは、表示を行わず、且つ、ユーザ操作により選択状態とされないようにした隠しボタンである
ことを特徴とするデータ構造。
【請求項５】
請求項１に記載のデータ構造において、
上記第１のボタンと同一の上記グループに属し、該第１のボタンが操作された状態を表すための第４のボタンがさらに含まれ、
上記第１のボタンに対して、上記第４のボタンを有効にさせるボタン有効化コマンドが、上記第２のボタンを選択状態にさせるコマンドの前に実行されるようにさらに関連付けられる
ことを特徴とするデータ構造。
【請求項６】
請求項１に記載のデータ構造において、
上記第３のボタンに対して、上記第１のボタンを有効にさせるボタン有効化コマンドが、上記第２のコマンドの前に実行されるようにさらに関連付けられる
ことを特徴とするデータ構造。
【請求項７】
少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、該ボタン画像の表示制御を行うための表示制御情報および上記実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、上記ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造が記録された記録媒体であって、
第１のボタンと、
それぞれ選択状態から自動的に実行状態に遷移するように定義された、上記第１のボタンと同一の上記グループに属する第２および第３のボタンと
を含み、
上記第１のボタンは、少なくとも上記第２のボタンを選択状態にさせるコマンドが関連付けられ、
上記第２のボタンは、少なくとも上記第３のボタンを有効にさせるボタン有効化コマンドと、該ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、
上記第３のボタンは、少なくとも上記第２のボタンに関連付けられる上記第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、
上記ボタン有効化コマンドは、該ボタン有効化コマンドを関連付けるボタンが含まれる上記グループの他のボタンを有効にした場合に、該ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、該ボタン有効化コマンドを関連付けるボタンに関連付けられる該他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、上記有効とされた上記他のボタンが選択状態とされるようにしたコマンドであるデータ構造が記録された
ことを特徴とする記録媒体。
【請求項８】
少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、該ボタン画像の表示制御を行うための表示制御情報および上記実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、上記ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造を生成するオーサリング方法であって、
第１のボタンと、
それぞれ選択状態から自動的に実行状態に遷移するように定義された、上記第１のボタンと同一の上記グループに属する第２および第３のボタンと
を含み、
上記第１のボタンは、少なくとも上記第２のボタンを選択状態にさせるコマンドが関連付けられ、
上記第２のボタンは、少なくとも上記第３のボタンを有効にさせるボタン有効化コマンドと、該ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、
上記第３のボタンは、少なくとも上記第２のボタンに関連付けられる上記第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、
上記ボタン有効化コマンドは、該ボタン有効化コマンドを関連付けるボタンが含まれる上記グループの他のボタンを有効にした場合に、該ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、該ボタン有効化コマンドを関連付けるボタンに関連付けられる該他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、上記有効とされた上記他のボタンが選択状態とされるようにしたコマンドであるデータ構造を生成する
ことを特徴とするオーサリング方法。
【請求項９】
少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、該ボタン画像の表示制御を行うための表示制御情報および上記実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、上記ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造が記録された記録媒体の製造方法であって、
上記コンテンツデータと上記ボタンとを構成するデータ構成のステップと、
上記データ構成のステップで構成された上記コンテンツと上記ボタンとをそれぞれエンコードするエンコードのステップと、
上記エンコードのステップでエンコードされた上記コンテンツと上記ボタンとを多重化する多重化のステップと、
上記多重化のステップで多重化された上記コンテンツと上記ボタンとを、記録媒体に記録するのに適した形式に変換する変換のステップと、
上記変換のステップで変換された上記コンテンツと上記ボタンとからなるデータ構造が記録された記録媒体の原盤を製造する原盤製造のステップと、
上記原盤製造のステップで製造された上記原盤に基づき上記記録媒体を複製する記録媒体製造のステップと
を備え、
上記データ構造は、
第１のボタンと、
それぞれ選択状態から自動的に実行状態に遷移するように定義された、上記第１のボタンと同一の上記グループに属する第２および第３のボタンと
を含み、
上記第１のボタンは、少なくとも上記第２のボタンを選択状態にさせるコマンドが関連付けられ、
上記第２のボタンは、少なくとも上記第３のボタンを有効にさせるボタン有効化コマンドと、該ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、
上記第３のボタンは、少なくとも上記第２のボタンに関連付けられる上記第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、
上記ボタン有効化コマンドは、該ボタン有効化コマンドを関連付けるボタンが含まれる上記グループの他のボタンを有効にした場合に、該ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、該ボタン有効化コマンドを関連付けるボタンに関連付けられる該他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、上記有効とされた上記他のボタンが選択状態とされるようにしたコマンドであるデータ構造が記録された記録媒体を製造する
ことを特徴とする製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ブルーレイディスク(Blu-ray Disc)といった大容量の記録媒体に記録されたコンテンツに対する、ユーザによるインタラクティブな操作の操作性を向上させるようなデータ構造、記録媒体、オーサリング方法およびディスク製造方法に関する。
【背景技術】
【０００２】
近年、記録可能で記録再生装置から取り外し可能なディスク型記録媒体の規格として、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（ブルーレイディスク：登録商標）規格が実用化されている。Ｂｌｕ−ｒａｙ  Ｄｉｓｃ規格では、記録媒体として直径１２ｃｍ、カバー層０．１ｍｍのディスクを用い、光学系として波長４０５ｎｍの青紫色レーザ、開口数０．８５の対物レンズを用いて、最大で２７ＧＢ（ギガバイト）の記録容量を実現している。これにより、日本のＢＳディジタルハイビジョン放送を、画質を劣化させることなく２時間以上記録することが可能である。
【０００３】
この記録可能光ディスクに記録するＡＶ(Audio/Video)信号のソース（供給源）としては、従来からの、例えばアナログテレビジョン放送によるアナログ信号によるものと、例えばＢＳディジタル放送をはじめとするディジタルテレビジョン放送によるディジタル信号によるものとが想定されている。Ｂｌｕ−ｒａｙ  Ｄｉｓｃ規格では、これらの放送によるＡＶ信号を記録する方法を定めた規格は、既に作られている。
【０００４】
一方で、現状のＢｌｕ−ｒａｙ  Ｄｉｓｃの派生規格として、映画や音楽などが予め記録された、再生専用の記録媒体を開発する動きが進んでいる。映画や音楽を記録するためのディスク状記録媒体としては、既にＤＶＤ(Digital Versatile Disc)が広く普及しているが、このＢｌｕ−ｒａｙ  Ｄｉｓｃの規格に基づいた再生専用光ディスクは、Ｂｌｕ−ｒａｙ  Ｄｉｓｃの大容量および高速な転送速度などを活かし、ハイビジョン映像を高画質なままで２時間以上収録できる点が、既存のＤＶＤとは大きく異なり、優位である。
【０００５】
ところで、ディスクに映画などのコンテンツを記録して、パッケージメディアとして販売等を行う場合、コンテンツに伴う様々なプログラムの実行などを制御するためのユーザインターフェイスをコンテンツと共にディスクに記録することが行われる。代表的なユーザインターフェイスとしては、メニュー表示が挙げられる。一例として、メニュー表示においては、機能を選択するためのボタンがボタン画像として用意され、所定の入力手段によりボタンを選択し決定することで、当該ボタンに割り当てられた機能が実行されるようになっている。
【０００６】
ボタンは、一般的には、そのボタンが選択された状態になっている選択状態と、コマンドが関連付けられ所定の機能の実行が指示された状態の実行状態と、選択状態にも実行状態にもなっていない通常状態の３状態が定義される。例えば、プレーヤに対応したリモートコントロールコマンダに設けられた十字キーなどを用いて、画面に表示されたボタンを選択状態とし、決定キーを操作することで、ボタンの状態が例えば選択状態から実行状態に遷移し、当該ボタンに関連付けられたコマンドが実行され、当該コマンドにより所定の機能が実現される。
【０００７】
このボタンの機能により、例えばシーン選択メニューの操作や字幕の選択、字幕のＯＮ／ＯＦＦ、音声言語の切り換えといった様々な機能を、動画データの再生を止めることなく実現することが可能とされる。
【０００８】
特許文献１には、ブルーレイディスクにおいて、このようなボタン画像を用いたメニュー表示を実現するための技術が記載されている。
【特許文献１】特開２００４−３０４７６７号公報
【０００９】
なお、ボタンなどメニュー表示を行うためのデータが格納されるストリームは、主として再生される動画データに対して関連付けられる副ストリームに格納される。副ストリームは、１の動画データに対して複数を対応付けることが可能である。
【００１０】
ボタンに関連付けられるコマンドは、表記上において所定のデリミタで区切って並べられ、指定された順に逐次的に実行される。条件分岐を用いることもできる。例えば、１の系列において、第１のコマンド以降に記述された第２のコマンドは、時系列的に、第１のコマンドの次に実行される。コマンドには、命令間の矛盾の回避や、機能的な問題など様々な理由により、幾つかの制限が設けられる。メニュー表示におけるボタンに関連付けられるコマンドについては、例えば、下記の各コマンド以降に記述されたコマンドは、実行されないという制限が設けられる。
【００１１】
（ａ）再生位置を変更するコマンド。
（ｂ）現在メニュー表示を行っている副ストリームを、別の副ストリームへと切り換えるコマンド。
（ｃ）ポップアップメニューをＯＦＦとするコマンド。
（ｄ）デフォルトボタン設定およびページ切り換えが可能なコマンド。
【００１２】
これらのうち、（ａ）再生位置の変更コマンド、（ｂ）副ストリーム切り換えのコマンド、ならびに、（ｃ）ポップアップメニューＯＦＦのコマンドは、実行後にコマンドが格納されるストリーム自体が切り換えられてしまう可能性があるので、これら３種類のコマンド以降のコマンドを実行しないものとする。
【００１３】
なお、ポップアップメニューは、例えばリモートコントロールコマンダの所定のキーの操作に応じて、表示／非表示（ＯＮ／ＯＦＦ）が制御できるメニュー表示である。
【００１４】
また、メニュー表示は、複数ページを用いて構成することができる。（ｄ）デフォルトボタン設定およびページ切り換えが可能なコマンドは、ページを指示することでページ切り換え可能であると共に、指示されたページにおいてデフォルトで選択状態になっているボタンを定義することができる。一般的には、ページを切り換えるとメニュー項目も切り替わると考えられ、（ｄ）ページ切り換えが可能なコマンド以降のコマンドを、実行しないものとする。
【００１５】
さらに、ボタンに対して、選択状態から自動的に実行状態に遷移するように定義することができる。このように定義されたボタンを、オートアクションボタンと呼ぶ。例えば、オートアクションボタンに定義されたボタンの通常状態に対して、リモートコントロールコマンダなどを用いて選択状態に遷移するように操作すると、当該ボタンは、選択状態に遷移した時点で自動的に実行状態に遷移され、当該ボタンに関連付けられたコマンドが実行されることになる。なお、オートアクションボタンの定義は、単に選択状態から自動的に実行状態に遷移させるだけなので、オートアクションボタンとして定義されたボタンには、実行状態から抜けるためのコマンドを予め関連付けておく必要がある。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
ボタンに関連付けられるコマンドには、上述したような制限が設けられるため、比較的頻繁に用いることが想定されるある種の動作を実現できないことがあるという問題点があった。
【００１７】
一例として、チャプタジャンプを行うポップアップメニューを表示させ、チャプタを選択して所望のチャプタにジャンプした後に、当該ポップアップメニューを非表示にするといった、有用且つ単純な動作を実現することが極めて困難であるという問題点があった。
【００１８】
すなわち、この場合には、上述の「（ａ）再生位置の変更コマンド以降のコマンドは実行されない」という制限により、単にポップアップメニューＯＮ、シーン選択および移動、ポップアップメニューＯＦＦという順序でコマンドを並べても、最後のポップアップメニューＯＦＦが実行されず、例えばシーンジャンプ後もポップアップメニューが表示されたままになってしまうことになる。
【００１９】
この問題を回避するために、例えば隠しボタンを用いる方法を考える。隠しボタンは、画面に表示されないが、ボタンの３状態が定義されると共に、コマンドの関連付けが可能とされたボタンである。隠しボタンは、例えばボタンを表示するためのボタン画像に対して不透明度を最小に設定して背景表示を全て透過させることで実現可能である。
【００２０】
例えば、ポップアップメニューにおけるあるボタンに対して、オートアクションボタンとして定義された隠しボタンを選択状態にするコマンドを関連付ける。こうすることで、ポップアップメニューの当該ボタンを実行状態に遷移させた際に、隠しボタンに関連付けられたコマンドが自動的に実行されることになる。これにより、シーンジャンプが行われた後に、ポップアップメニューをＯＦＦできることが期待される。
【００２１】
例えば、プレーヤにおいて制作者側が使用することができるレジスタを利用し、フラグを用いた条件分岐命令により、１回目の条件分岐でシーンジャンプを実行すると共にフラグの値を入れ替え、２回目の条件分岐でポップアップメニューをＯＦＦとするようなコマンドを、隠しボタンに対して関連付けることが考えられる。
【００２２】
しかしながら、上述したように、オートアクションボタンに定義されたボタンは、選択状態から実行状態に遷移した後、何らかのコマンドで実行状態から抜ける必要があるため、この方法では、期待した動作が実現されない。すなわち、実行状態から抜けるためのコマンドは、シーンジャンプのコマンド後に記述する必要があるが、上述した制約により、当該実行状態から抜けるためのコマンドが実行されない。そのため、当該コマンドが実行されずに、恰も当該隠しボタンの実行状態のままハングアップしたかのうような状態となってしまう。
【００２３】
したがって、この発明の目的は、再生されるコンテンツに対する、ユーザによるインタラクティブな操作を可能とするためのメニュー表示において、あるコマンド以降に記述されたコマンドが実行されない制約の下で、当該コマンドによる動作に相当する動作を実現可能とするようなデータ構造、記録媒体、オーサリング方法およびディスク製造方法を提供することにある。
【課題を解決するための手段】
【００２４】
この発明は、上述した課題を解決するために、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造であって、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであることを特徴とするデータ構造である。
【００２５】
また、この発明は、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造が記録された記録媒体であって、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであるデータ構造が記録されたことを特徴とする記録媒体である。
【００２６】
また、この発明は、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造を生成するオーサリング方法であって、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであるデータ構造を生成することを特徴とするオーサリング方法である。
【００２７】
また、この発明は、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造が記録された記録媒体の製造方法であって、コンテンツデータとボタンとを構成するデータ構成のステップと、データ構成のステップで構成されたコンテンツとボタンとをそれぞれエンコードするエンコードのステップと、エンコードのステップでエンコードされたコンテンツとボタンとを多重化する多重化のステップと、多重化のステップで多重化されたコンテンツとボタンとを、記録媒体に記録するのに適した形式に変換する変換のステップと、変換のステップで変換されたコンテンツとボタンとからなるデータ構造が記録された記録媒体の原盤を製造する原盤製造のステップと、原盤製造のステップで製造された原盤に基づき記録媒体を複製する記録媒体製造のステップとを備え、データ構造は、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであるデータ構造が記録された記録媒体を製造することを特徴とする製造方法である。
【００２８】
上述したように、この発明は、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造であって、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであるため、第１のボタンを実行状態とすることで、第２のボタンが選択状態とされ、さらに自動的に実行状態とされて第３のボタンが選択状態とされると共に、第２のボタンに関連付けられた第１のコマンドが実行され、第３のボタンは、選択状態から自動的に実行状態に遷移されて第２のコマンドが実行され、第１のコマンドの後で第２のコマンドを実行させることができる。
【発明の効果】
【００２９】
この発明は、上述したように、少なくともコンテンツデータと、通常状態、選択状態および実行状態の３状態が定義可能で、ボタン画像、ボタン画像の表示制御を行うための表示制御情報および実行状態で実行されるコマンドを含む、ユーザに対して操作を促す操作画面に用いるボタンとからなり、ボタンは、１のボタン位置に選択的に表示される複数のボタンからなるグループを構成可能とされたデータ構造であって、第１のボタンと、それぞれ選択状態から自動的に実行状態に遷移するように定義された、第１のボタンと同一のグループに属する第２および第３のボタンとを含み、第１のボタンは、少なくとも第２のボタンを選択状態にさせるコマンドが関連付けられ、第２のボタンは、少なくとも第３のボタンを有効にさせるボタン有効化コマンドと、ボタン有効化コマンドの次に実行される、自身のコマンド以降に記述されたコマンドが実行されない制約を持つ第１のコマンドとが関連付けられ、第３のボタンは、少なくとも第２のボタンに関連付けられる第１のコマンドより時系列的に後に実行させる第２のコマンドが関連付けられ、ボタン有効化コマンドは、ボタン有効化コマンドを関連付けるボタンが含まれるグループの他のボタンを有効にした場合に、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行させ、ボタン有効化コマンドを関連付けるボタンに関連付けられる他のコマンドを実行可能な最後まで実行した際に選択状態にあるボタンが存在しなければ、有効とされた他のボタンが選択状態とされるようにしたコマンドであるため、第１のボタンを実行状態とすることで、第２のボタンが選択状態とされ、さらに自動的に実行状態とされて第３のボタンが選択状態とされると共に、第２のボタンに関連付けられた第１のコマンドが実行され、第３のボタンは、選択状態から自動的に実行状態に遷移されて第２のコマンドが実行され、第１のコマンドの後で第２のコマンドを実行させることができる効果がある。
【００３０】
また、これにより、第１のコマンドを再生位置を変更するコマンドとし、第２のコマンドをポップアップメニューをＯＦＦとするコマンドとした場合に、再生位置を変更した後にポップアップメニューをＯＦＦとするアプリケーションを実現できる効果がある。
【発明を実施するための最良の形態】
【００３１】
以下、この発明の実施の一形態を、図面を参照しながら説明する。先ず、理解を容易とするために、Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関し、"Blu-ray Disc Read-Only Format Ver1.0 part3 Audio Visual Specifications"で規定されている、読み出し専用タイプのＢｌｕ−ｒａｙ  ＤｉｓｃであるＢＤ−ＲＯＭに記録されたコンテンツすなわちＡＶ(Audio/Video)データの管理構造について説明する。以下では、このＢＤ−ＲＯＭにおける管理構造をＢＤＭＶフォーマットと称する。
【００３２】
例えばＭＰＥＧ(Moving Pictures Experts Group)ビデオやＭＰＥＧオーディオなどの符号化方式で符号化され、ＭＰＥＧ２システムに従い多重化されたビットストリームは、クリップＡＶストリーム（またはＡＶストリーム）と称される。クリップＡＶストリームは、Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関する規格の一つである"Blu-ray Disc Read-Only Format part2"で定義されたファイルシステムにより、ファイルとしてディスクに記録される。このファイルを、クリップＡＶストリームファイル（またはＡＶストリームファイル）と称する。
【００３３】
クリップＡＶストリームファイルは、ファイルシステム上での管理単位であり、ユーザにとって必ずしも分かりやすい管理単位であるとは限らない。ユーザの利便性を考えた場合、複数のクリップＡＶストリームファイルに分割された映像コンテンツを一つにまとめて再生する仕組みや、クリップＡＶストリームファイルの一部だけを再生する仕組み、さらには、特殊再生や頭出し再生を滑らかに行うための情報などをデータベースとしてディスクに記録しておく必要がある。Ｂｌｕ−ｒａｙ  Ｄｉｓｃに関する規格の一つである"Blu-ray Disc Read-Only Format part3"で、このデータベースが規定される。
【００３４】
図１は、ＢＤ−ＲＯＭのデータモデルを概略的に示す。ＢＤ−ＲＯＭのデータ構造は、図１に示されるように４層のレイヤよりなる。最も最下層のレイヤは、クリップＡＶストリームが配置されるレイヤである（便宜上、クリップレイヤと呼ぶ）。その上のレイヤは、クリップＡＶストリームに対する再生箇所を指定するための、ムービープレイリスト(Movie PlayList)と、プレイアイテム(PlayItem)とが配置されるレイヤである（便宜上、プレイリストレイヤと呼ぶ）。さらにその上のレイヤは、ムービープレイリストに対して再生順などを指定するコマンドからなるムービーオブジェクト(Movie Object)などが配置されるレイヤである（便宜上、オブジェクトレイヤと呼ぶ）。最上層のレイヤは、このＢＤ−ＲＯＭに格納されるタイトルなどを管理するインデックステーブルが配置される（便宜上、インデックスレイヤと呼ぶ）。
【００３５】
クリップレイヤについて説明する。クリップＡＶストリームは、ビデオデータやオーディオデータがＭＰＥＧ２  ＴＳ（トランスポートストリーム）の形式などに多重化されたビットストリームである。このクリップＡＶストリームに関する情報がクリップ情報(Clip Information)としてファイルに記録される。
【００３６】
また、クリップＡＶストリームには、ビデオデータやオーディオデータによるコンテンツデータに対して付随して表示される字幕やメニュー表示を行うためのストリームも多重化される。字幕を表示するためのグラフィクスストリームは、プレゼンテーショングラフィクス（ＰＧ）ストリームと呼ばれる。また、メニュー表示などに用いられるデータをストリームにしたものは、インタラクティブグラフィクス（ＩＧ）ストリームと呼ばれる。
【００３７】
クリップＡＶストリームファイルと、対応するクリップ情報が記録されたクリップ情報ファイルとをひとまとまりのオブジェクトと見なし、クリップ(Clip)と称する。すなわち、クリップは、クリップＡＶストリームとクリップ情報とから構成される、一つのオブジェクトである。
【００３８】
ファイルは、一般的に、バイト列として扱われる。クリップＡＶストリームファイルのコンテンツは、時間軸上に展開され、クリップ中のエントリーポイントは、主に時間ベースで指定される。所定のクリップへのアクセスポイントのタイムスタンプが与えられた場合、クリップＡＶストリームファイルの中でデータの読み出しを開始すべきアドレス情報を見つけるために、クリップ情報ファイルを用いることができる。
【００３９】
プレイリストレイヤについて説明する。ムービープレイリストは、再生するＡＶストリームファイルの指定と、指定されたＡＶストリームファイルの再生箇所を指定する再生開始点（ＩＮ点）と再生終了点（ＯＵＴ点）の集まりとから構成される。この再生開始点と再生終了点の情報を一組としたものは、プレイアイテム(PlayItem)と称される。ムービープレイリストは、プレイアイテムの集合で構成される。プレイアイテムを再生するということは、そのプレイアイテムに参照されるＡＶストリームファイルの一部分を再生するということになる。すなわち、プレイアイテム中のＩＮ点およびＯＵＴ点情報に基づき、クリップ中の対応する区間が再生される。
【００４０】
オブジェクトレイヤについて説明する。ムービーオブジェクトは、ＨＤＭＶナビゲーションコマンドプログラム（ＨＤＭＶプログラム）と、ムービーオブジェクトとを連携するターミナルインフォメーションを含む。ＨＤＭＶプログラムは、プレイリストの再生を制御するためのコマンドである。ターミナルインフォメーションは、ユーザのＢＤ−ＲＯＭプレーヤに対するインタラクティブな操作を許可するための情報を含んでいる。このターミナルインフォメーションに基づき、メニュー画面の呼び出しや、タイトルサーチといったユーザオペレーションが制御される。
【００４１】
ＢＤ−Ｊオブジェクトは、Ｊａｖａプログラム（Ｊａｖａは登録商標）によるオブジェクトからなる。ＢＤ−Ｊオブジェクトは、この発明と関わりが薄いので、詳細な説明を省略する。
【００４２】
インデックスレイヤについて説明する。インデックスレイヤは、インデックステーブルからなる。インデックステーブルは、ＢＤ−ＲＯＭディスクのタイトルを定義する、トップレベルのテーブルである。インデックステーブルに格納されているタイトル情報に基づき、ＢＤ−ＲＯＭ常駐システムソフトウェア中のモジュールマネージャによりＢＤ−ＲＯＭディスクの再生が制御される。
【００４３】
すなわち、図２に概略的に示されるように、インデックステーブル中の任意のエントリは、タイトルと称され、インデックステーブルにエントリされるファーストプレイバック(First Playback)、トップメニュー(Top Menu)およびタイトル(Title)＃１、＃２、・・・は、全てタイトルである。各タイトルは、ムービーオブジェクトあるいはＢＤ−Ｊオブジェクトに対するリンクを示し、各タイトルは、ＨＤＭＶタイトルあるいはＢＤ−Ｊタイトルの何れかを示す。
【００４４】
例えば、ファーストプレイバックは、当該ＢＤ−ＲＯＭに格納されるコンテンツが映画であれば、映画本編に先立って映出される映画会社の宣伝用映像（トレーラ）である。トップメニューは、例えばコンテンツが映画である場合、本編再生、チャプタサーチ、字幕や言語設定、特典映像再生などを選択するためのメニュー画面である。また、タイトルは、トップメニューから選択される各映像である。タイトルがさらにメニュー画面であるような構成も可能である。
【００４５】
図３は、上述のようなクリップＡＶストリーム、クリップ情報(Stream Attributes)、クリップ、プレイアイテムおよびプレイリストの関係を示すＵＭＬ(Unified Modeling Language)図である。プレイリストは、１または複数のプレイアイテムに対応付けられ、プレイアイテムは、１のクリップに対応付けられる。１のクリップに対して、それぞれ開始点および／または終了点が異なる複数のプレイアイテムを対応付けることができる。１のクリップから１のクリップＡＶストリームファイルが参照される。同様に、１のクリップから１のクリップ情報ファイルが参照される。また、クリップＡＶストリームファイルとクリップ情報ファイルとは、１対１の対応関係を有する。このような構造を定義することにより、クリップＡＶストリームファイルを変更することなく、任意の部分だけを再生する、非破壊の再生順序指定を行うことが可能となる。
【００４６】
また、図４のように、複数のプレイリストから同一のクリップを参照することもできる。また、１のプレイリストから複数のクリップを指定することもできる。クリップは、プレイリスト中のプレイアイテムに示されるＩＮ点およびＯＵＴ点により、参照される。図４の例では、クリップ５００は、プレイリスト５１０のプレイアイテム５２０から参照されると共に、プレイリスト５１１を構成するプレイアイテム５２１および５２２のうちプレイアイテム５２１から、ＩＮ点およびＯＵＴ点で示される区間が参照される。また、クリップ５０１は、プレイリスト５１１のプレイアイテム５２２からＩＮ点およびＯＵＴ点で示される区間が参照されると共に、プレイリスト５１２のプレイアイテム５２３および５２４のうち、プレイアイテム５２３のＩＮ点およびＯＵＴ点で示される区間が参照される。
【００４７】
なお、プレイリストは、図５に一例が示されるように、主として再生されるプレイアイテムに対応するメインパスに対して、サブプレイアイテムに対応するサブパスを持つことができる。サブプレイアイテムは、異なる複数のクリップと関連付けることができ、サブプレイアイテムは、サブプレイアイテムに関連付けられる複数のクリップのうち１を選択的に参照することができる。詳細は省略するが、プレイリストは、所定の条件を満たす場合にだけ、サブプレイアイテムを持つことができる。
【００４８】
次に、"Blu-ray Disc Read-Only Format part3"で規定された、ＢＤ−ＲＯＭに記録されるファイルの管理構造について、図６を用いて説明する。ファイルは、ディレクトリ構造により階層的に管理される。記録媒体上には、先ず、１つのディレクトリ（図６の例ではルート(root)ディレクトリ）が作成される。このディレクトリの下が、１つの記録再生システムで管理される範囲とする。
【００４９】
ルートディレクトリの下に、ディレクトリ"BDMV"およびディレクトリ"CERTIFICATE"が置かれる。ディレクトリ"CERTIFICATE"は、著作権に関する情報が格納される。ディレクトリ"BDMV"に、図１を用いて説明したデータ構造が格納される。
【００５０】
ディレクトリ"BDMV"の直下には、ファイルは、ファイル"index.bdmv"およびファイル"MovieObject.bdmv"の２つのみを置くことができる。また、ディレクトリ"BDMV"の下に、ディレクトリ"PLAYLIST"、ディレクトリ"CLIPINF"、ディレクトリ"STREAM"、ディレクトリ"AUXDATA"、ディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"、およびディレクトリ"BACKUP"が置かれる。
【００５１】
ファイル"index.bdmv"は、ディレクトリBDMVの内容について記述される。すなわち、このファイル"index.bdmv"が上述した最上層のレイヤであるインデックスレイヤにおけるインデックステーブルに対応する。また、ファイルMovieObject.bdmvは、１つ以上のムービーオブジェクトの情報が格納される。すなわち、このファイル"MovieObject.bdmv"が上述したオブジェクトレイヤに対応する。
【００５２】
ディレクトリ"PLAYLIST"は、プレイリストのデータベースが置かれるディレクトリである。すなわち、ディレクトリ"PLAYLIST"は、ムービープレイリストに関するファイルであるファイル"xxxxx.mpls"を含む。ファイル"xxxxx.mpls"は、ムービープレイリストのそれぞれに対して作成されるファイルである。ファイル名において、"."（ピリオド）の前の"xxxxx"は、５桁の数字とされ、ピリオドの後ろの"mpls"は、このタイプのファイルに固定的とされた拡張子である。
【００５３】
ディレクトリ"CLIPINF"は、クリップのデータベースが置かれるディレクトリである。すなわち、ディレクトリCLIPINF"は、クリップＡＶストリームファイルのそれぞれに対するクリップインフォメーションファイルであるファイル"zzzzz.clpi"を含む。ファイル名において、"."（ピリオド）の前の"zzzzz"は、５桁の数字とされ、ピリオドの後ろの"clpi"は、このタイプのファイルに固定的とされた拡張子である。
【００５４】
ディレクトリ"STREAM"は、実体としてのＡＶストリームファイルが置かれるディレクトリである。すなわち、ディレクトリ"STREAM"は、クリップインフォメーションファイルのそれぞれに対応するクリップＡＶストリームファイルを含む。クリップＡＶストリームファイルは、ＭＰＥＧ２(Moving Pictures Experts Group 2)のトランスポートストリーム（以下、ＭＰＥＧ２  ＴＳと略称する）からなり、ファイル名が"zzzzz.m2ts"とされる。ファイル名において、ピリオドの前の"zzzzz"は、対応するクリップインフォメーションファイルと同一することで、クリップインフォメーションファイルとこのクリップＡＶストリームファイルとの対応関係を容易に把握することができる。
【００５５】
ディレクトリ"AUXDATA"は、メニュー表示などに用いられる、サウンドファイル、フォントファイル、フォントインデックスファイルおよびビットマップファイルなどが置かれる。ファイル"sound.bdmv"は、ＨＤＭＶのインタラクティブなグラフィクスストリームのアプリケーションに関連したサウンドデータが格納される。ファイル名は、"sound.bdmv"に固定的とされる。ファイル"aaaaa.otf"は、字幕表示や上述したＢＤ−Ｊアプリケーションなどで用いられるフォントデータが格納される。ファイル名において、ピリオドの前の"aaaaa"は、５桁の数字とされ、ピリオドの後ろの"otf"は、このタイプのファイルに固定的とされた拡張子である。ファイル"bdmv.fontindex"は、フォントのインデックスファイルである。
【００５６】
ディレクトリ"META"は、メタデータファイルが格納される。ディレクトリ"BDJO"およびディレクトリ"JAR"は、上述のＢＤ−Ｊオブジェクトに関連するファイルが格納される。また、ディレクトリ"BACKUP"は、上述までの各ディレクトリおよびファイルのバックアップが格納される。これらディレクトリ"META"、ディレクトリ"BDJO"、ディレクトリ"JAR"およびディレクトリ"BACKUP"は、この発明の主旨と直接的な関わりがないので、詳細な説明を省略する。
【００５７】
上述したようなデータ構造を有するディスクがプレーヤに装填されると、プレーヤは、ディスクから読み出されたムービーオブジェクトなどに記述されたコマンドを、プレーヤ内部のハードウェアを制御するための固有のコマンドに変換する必要がある。プレーヤは、このような変換を行うためのソフトウェアを、プレーヤに内蔵されるＲＯＭ(Read Only Memory)にあらかじめ記憶している。このソフトウェアは、ディスクとプレーヤを仲介してプレーヤにＢＤ−ＲＯＭの規格に従った動作をさせることから、ＢＤ仮想プレーヤと称される。
【００５８】
図７は、このＢＤ仮想プレーヤの動作を概略的に示す。図７Ａは、ディスクのローディング時の動作の例を示す。ディスクがプレーヤに装填されディスクに対するイニシャルアクセスがなされると（ステップＳ３０）、１のディスクにおいて共有的に用いられる共有パラメータが記憶されるレジスタが初期化される（ステップＳ３１）。そして、次のステップＳ３２で、プログラムがディスクから読み込まれて実行される。なお、イニシャルアクセスは、ディスク装填時のように、ディスクの再生が初めて行われることをいう。
【００５９】
図７Ｂは、プレーヤが停止状態からユーザにより例えばプレイキーが押下され再生が指示された場合の動作の例を示す。最初の停止状態（ステップＳ４０）に対して、ユーザにより、例えばリモートコントロールコマンダなどを用いて再生が指示される（ＵＯ：User Operation）。再生が指示されると、先ず、レジスタすなわち共通パラメータが初期化され（ステップＳ４１）、次のステップＳ４２で、プレイリストの再生フェイズに移行する。なお、この場合にレジスタがリセットされない実装としてもよい。
【００６０】
ムービーオブジェクトの実行フェイズにおけるプレイリストの再生について、図８を用いて説明する。ＵＯなどにより、タイトル番号＃１のコンテンツを再生開始する指示があった場合について考える。プレーヤは、コンテンツの再生開始指示に応じて、上述した図２に示されるインデックステーブル(Index Table)を参照し、タイトル＃１のコンテンツ再生に対応するオブジェクトの番号を取得する。例えばタイトル＃１のコンテンツ再生を実現するオブジェクトの番号が＃１であったとすると、プレーヤは、ムービーオブジェクト＃１の実行を開始する。
【００６１】
この図８の例では、ムービーオブジェクト＃１に記述されたプログラムは２行からなり、１行目のコマンドが"Play PlayList(1)"であるとすると、プレーヤは、プレイリスト＃１の再生を開始する。プレイリスト＃１は、１以上のプレイアイテムから構成され、プレイアイテムが順次再生される。プレイリスト＃１中のプレイアイテムの再生が終了すると、ムービーオブジェクト＃１の実行に戻り、２行目のコマンドが実行される。図８の例では、２行目のコマンドが"jump TopMenu"であって、このコマンドが実行されインデックステーブルに記述されたトップメニュー(Top Menu)を実現するムービーオブジェクトの実行が開始される。
【００６２】
次に、この発明の実施の一形態に適用可能な画像の表示系について説明する。この発明の実施の一形態では、画像の表示系について、図９に一例が示されるようなプレーン構成を取る。動画プレーン１０は、最も後ろ側（ボトム）に表示され、プレイリストで指定された画像（主に動画データ）が扱われる。字幕プレーン１１は、動画プレーン１０の上に表示され、動画再生中に表示される字幕データが扱われる。グラフィクスプレーン１２は、最も前面に表示され、メニュー画面を表示するための文字データや、ボタン画像用のビットマップデータなどのグラフィクスデータが扱われる。１つの表示画面は、これら３つのプレーンが合成されて表示される。
【００６３】
なお、グラフィクスプレーン１２は、このようにメニュー画面を表示するためのデータが扱われることから、以下では、グラフィクスプレーン１２をインタラクティブグラフィクスプレーン１２と称する。
【００６４】
動画プレーン１０、字幕プレーン１１およびインタラクティブグラフィクスプレーン１２は、それぞれ独立して表示が可能とされる。動画プレーン１０は、解像度が１９２０画素×１０８０ラインで１画素当たりに換算したデータ長が１６ビットであって、輝度信号Ｙ、色差信号Ｃｂ、Ｃｒが４：２：２のシステム（以下、ＹＣｂＣｒ（４：２：２））とされる。なお、ＹＣｂＣｒ（４：２：２）は、各画素当たり輝度信号Ｙが８ビット、色差信号Ｃｂ、Ｃｒがそれぞれ８ビットで、色差信号Ｃｂ、Ｃｒが水平２画素で一つの色データを構成すると見なすカラーシステムである。インタラクティブグラフィクスプレーン１２および字幕プレーン１１は、１９２０画素×１０８０ラインで各画素のサンプリング深さが８ビットとされ、カラーシステムは、２５６色のパレットを用いた８ビットカラーマップアドレスとされる。
【００６５】
インタラクティブグラフィクスプレーン１２および字幕プレーン１１は、２５６段階のアルファブレンディングが可能とされており、他のプレーンとの合成の際に、不透明度を２５６段階で設定することが可能とされている。不透明度の設定は、画素毎に行うことができる。以下では、不透明度αが（０≦α≦１）の範囲で表され、不透明度α＝０で完全に透明、不透明度α＝１で完全に不透明であるものとする。
【００６６】
字幕プレーン１１では、例えばＰＮＧ(Portable Network Graphics)形式の画像データが扱われる。また、インタラクティブグラフィクスプレーン１２でも、例えばＰＮＧ形式の画像データを扱うことができる。ＰＮＧ形式は、１画素のサンプリング深さが１ビット〜１６ビットとされ、サンプリング深さが８ビットまたは１６ビットの場合に、アルファチャンネル、すなわち、それぞれの画素成分の不透明度情報（アルファデータと称する）を付加することができる。サンプリング深さが８ビットの場合には、２５６段階で不透明度を指定することができる。このアルファチャンネルによる不透明度情報を用いてアルファブレンディングが行われる。また、２５６色までのパレットイメージを用いることができ、予め用意されたパレットの何番目の要素（インデックス）であるかがインデックス番号により表現される。
【００６７】
なお、字幕プレーン１１およびインタラクティブグラフィクスプレーン１２で扱われる画像データは、ＰＮＧ形式に限定されない。ＪＰＥＧ方式など他の圧縮符号化方式で圧縮符号化された画像データや、ランレングス圧縮された画像データ、圧縮符号化がなされていないビットマップデータなどを扱うようにしてもよい。
【００６８】
図１０は、上述の図９に示したプレーン構成に従い３つのプレーンを合成するグラフィクス処理部の一例の構成を示す。なお、この図１０に示される構成は、ハードウェアおよびソフトウェアの何れでも実現可能なものである。動画プレーン１０の動画データが４２２／４４４変換回路２０に供給される。動画データは、４２２／４４４変換回路２０でカラーシステムがＹＣｂＣｒ（４：２：２）からＹＣｂＣｒ（４：４：４）に変換され、乗算器２１に入力される。
【００６９】
字幕プレーン１１の画像データがパレット２２Ａに入力され、ＲＧＢ（４：４：４）の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α１（０≦α１≦１）がパレット２２Ａから出力される。
【００７０】
パレット２２Ａは、例えばＰＮＧ形式のファイルに対応したパレット情報がテーブルとして格納される。パレット２２Ａは、入力された８ビットの画素データをアドレスとして、インデックス番号が参照される。このインデックス番号に基づき、それぞれ８ビットのデータからなるＲＧＢ（４：４：４）のデータが出力される。それと共に、パレット２２Ａでは、不透明度を表すアルファチャンネルのデータαが取り出される。
【００７１】
図１１は、パレット２２Ａに格納される一例のパレットテーブルを示す。２５６個のカラーインデックス値〔０ｘ００〕〜〔０ｘＦＦ〕（〔０ｘ〕は１６進表記であることを示す）のそれぞれに対して、各々８ビットで表現される三原色の値Ｒ、ＧおよびＢと、不透明度αとが割り当てられる。パレット２２Ａは、入力されたＰＮＧ形式の画像データに基づきパレットテーブルが参照され、画像データにより指定されたインデックス値に対応する、それぞれ８ビットのデータからなるＲ、ＧおよびＢ各色のデータ（ＲＧＢデータ）と、不透明度αとを画素毎に出力する。
【００７２】
パレット２２Ａから出力されたＲＧＢデータは、ＲＧＢ／ＹＣｂＣｒ変換回路２２Ｂに供給され、各データ長が８ビットの輝度信号Ｙと色信号Ｃｂ、Ｃｒのデータに変換される（以下、まとめてＹＣｂＣｒデータと称する）。これは、以降のプレーン間合成を共通のデータ形式で行う必要があるためで、動画データのデータ形式であるＹＣｂＣｒデータに統一している。
【００７３】
ＲＧＢ／ＹＣｂＣｒ変換回路２２Ｂから出力されたＹＣｂＣｒデータと不透明度データα１とがそれぞれ乗算器２３に入力される。乗算器２３では、入力されたＹＣｂＣｒデータに不透明度データα１が乗ぜられる。乗算結果は、加算器２４の一方の入力端に入力される。なお、乗算器２３では、ＹＣｂＣｒデータにおける輝度信号Ｙ、色差信号Ｃｂ、Ｃｒのそれぞれについて、不透明度データα１との乗算が行われる。また、不透明度データα１の補数（１−α１）が乗算器２１に供給される。
【００７４】
乗算器２１では、４２２／４４４変換回路２０から入力された動画データに不透明度データα１の補数（１−α１）が乗ぜられる。乗算結果は、加算器２４の他方の入力端に入力される。加算器２４において、乗算器２１および２３の乗算結果が加算される。これにより、動画プレーン１０と字幕プレーン１１とが合成される。加算器２４の加算結果が乗算器２５に入力される。
【００７５】
インタラクティブグラフィクスプレーン１２の画像データがパレット２６Ａに入力され、ＲＧＢ（４：４：４）の画像データとして出力される。この画像データに対してアルファブレンディングによる不透明度が指定されている場合には、指定された不透明度α２（０≦α２≦１）がパレット２６Ａから出力される。パレット２６Ａから出力されたＲＧＢデータは、ＲＧＢ／ＹＣｂＣｒ変換回路２６Ｂに供給されてＹＣｂＣｒデータに変換され、動画データのデータ形式であるＹＣｂＣｒデータに統一される。ＲＧＢ／ＹＣｂＣｒ変換回路２６Ｂから出力されたＹＣｂＣｒデータが乗算器２７に入力される。
【００７６】
インタラクティブグラフィクスプレーン１２で用いられる画像データがＰＮＧ形式である場合には、画像データ中に、画素毎に不透明度データα２（０≦α２≦１）を設定することができる。不透明度データα２は、乗算器２７に供給される。乗算器２７では、ＲＧＢ／ＹＣｂＣｒ変換回路２６から入力されたＹＣｂＣｒデータに対し、輝度信号Ｙ、色差信号Ｃｂ、Ｃｒのそれぞれについて、不透明度データα２との乗算が行われる。乗算器２７による乗算結果が加算器２８の一方の入力端に入力される。また、不透明度データα２の補数（１−α２）が乗算器２５に供給される。
【００７７】
乗算器２５では、加算器２４の加算結果に対して不透明度データα２の補数（１−α２）が乗ぜられる。乗算器２５の乗算結果は、加算器２８の他方の入力端に入力され、上述した乗算器２７による乗算結果と加算される。これにより、動画プレーン１０と字幕プレーン１１との合成結果に対して、さらに、インタラクティブグラフィクスプレーン１２が合成される。
【００７８】
字幕プレーン１１およびインタラクティブグラフィクスプレーン１２において、例えば、表示すべき画像の無い領域の不透明度α＝０と設定することで、そのプレーンの下に表示されるプレーンを透過表示させることができ、例えば動画プレーン１０に表示されている動画データを、字幕プレーン１１やインタラクティブグラフィクスプレーン１２の背景として表示することができる。
【００７９】
次に、インタラクティブグラフィクスストリーム（ＩＧストリーム）について説明する。ここでは、ＩＧストリームのうち、この発明に関わりの深い部分に注目して説明する。ＩＧストリームは、上述したように、メニュー表示に用いられるデータをストリームにしたものである。例えば、メニュー表示に用いられるボタン画像がＩＧストリームに格納される。
【００８０】
ＩＧストリームは、クリップＡＶストリームに多重化される。インタラクティブグラフィクスストリーム（図１２Ａ参照）は、図１２Ｂに一例が示されるように、ＩＣＳ(Interactive Composition Segment)、ＰＤＳ(Palette Definition Segment)およびＯＤＳ(Object Definition Segment)の３種類のセグメントからなる。
【００８１】
３種類のセグメントのうち、ＩＣＳは、詳細は後述するが、ＩＧ（インタラクティブグラフィクス）の基本構造を保持するためのセグメントである。ＰＤＳは、ボタン画像の色情報を保持するためのセグメントである。また、ＯＤＳは、ボタンの形状を保持するための情報である。より具体的には、ＯＤＳは、ボタン画像そのもの、例えばボタン画像を表示するためのビットマップデータが、ランレングス圧縮など所定の圧縮符号化方式で圧縮符号化されて格納される。
【００８２】
ＩＣＳ、ＰＤＳおよびＯＤＳは、図１２Ｃに一例が示されるように、それぞれ必要に応じて所定に分割され、ＰＩＤ(Packet Identification)により区別されてＰＥＳ(Packetized Elementary Stream)パケットのペイロードに格納される。ＰＥＳパケットは、サイズが６４ＫＢ（キロバイト）と決められているため、比較的サイズが大きなＩＣＳおよびＯＤＳは、それぞれ所定に分割されてＰＥＳパケットのペイロードに詰め込まれる。一方、ＰＤＳは、サイズが６４ＫＢに満たないことが多いので、１つのＰＥＳパケットに１ＩＧ分のＰＤＳが格納可能である。ＰＥＳパケットのそれぞれには、ペイロードに格納されたデータがＩＣＳ、ＰＤＳおよびＯＤＳのうち何れであるかの情報や、パケット毎の順番などを示す識別情報がＰＩＤに格納される。
【００８３】
ＰＥＳパケットのそれぞれは、さらに所定に分割され、ＭＰＥＧ  ＴＳ（トランスポートストリーム）によるトランスポートパケットに詰め込まれる（図１２Ｄ）。トランスポートパケット毎の順序や、トランスポートパケットに格納されたデータを識別する識別情報などがＰＩＤに格納される。
【００８４】
次にインタラクティブグラフィクスのディスプレイセット(DisplaySet)に含まれる、ＩＣＳについて説明する。ＩＣＳの説明に先んじて、図１３および図１４を用いてメニュー画面およびボタンの構成を概略的に示す。なお、ディスプレイセットは、ＩＧストリームにおいては、メニュー表示を行うためのデータのセットであって、上述したＩＣＳ、ＰＤＳおよびＯＤＳによりＩＧストリームのディスプレイセットが構成される。
【００８５】
図１３は、グラフィクスプレーン１２上に表示されるボタン表示の一例の状態遷移図である。ボタンは、大別すると、無効状態と有効状態の２つの状態を有し、無効状態では画面にボタンが表示されず、有効状態でボタン表示がなされる。ボタン無効状態からボタン有効状態に遷移し、ボタン表示が開始される。ボタン有効状態からボタン無効状態に遷移し、ボタン表示が終了される。ボタン有効状態は、さらに、通常状態、選択状態および実行状態の３種類の状態を有する。ボタン表示は、これら３種類の状態間をそれぞれ互いに遷移することができる。遷移方向を一方向に限定することも可能である。また、３種類のボタン表示の状態のそれぞれに、アニメーションを定義することができる。
【００８６】
図１４は、メニュー画面およびボタンの構成を概略的に示す。図１４Ａに一例が示されるような、複数のボタン３００、３００、・・・が配置されたメニュー画面１１を考える。このメニュー画面３０１は、図１４Ｂに一例が示されるように、複数枚のメニュー画面によって階層的に構成することができる。各階層のメニュー画面のそれぞれは、ページと呼ばれる。例えば、最前面に表示されたメニュー画面のあるボタン３００を、所定の入力手段によって選択状態から実行状態に遷移させると、そのメニュー画面の１枚後ろに位置するメニュー画面が最前面のメニュー画面となるような構成が考えられる。なお、以下では、「所定の入力手段によりボタンの状態を変化させる」ことを、煩雑さを避けるために、「ボタンを操作する」などと、適宜、表記する。
【００８７】
メニュー画面３０１に表示される１つのボタン３００は、複数のボタン３０２Ａ、３０２Ｂ、・・・が階層化された構成とすることができる（図１４Ｃおよび図１４Ｄ参照）。これは、換言すれば、１つのボタン表示位置に複数のボタンを選択的に表示することができることを意味する。例えば、複数のボタンのうち所定のボタンを操作した際に、同時に表示されている他の幾つかのボタンの機能および表示が変更されるような場合に、メニュー画面自体を書き換える必要が無いので、用いて好適である。このような、１つのボタン位置に選択的に表示される複数のボタンからなる組を、ＢＯＧｓ(Button Overlap Group)と呼ぶ。
【００８８】
ＢＯＧｓを構成するボタンのそれぞれは、通常状態、選択状態および実行状態の３状態を有することができる。すなわち、図１４Ｅに一例が示されるように、ＢＯＧｓを構成するボタンのそれぞれに対して、通常状態、選択状態および実行状態をそれぞれ表すボタン３０３Ａ、３０３Ｂおよび３０３Ｃを用意することができる。さらに、これら３状態を表すボタン３０３Ａ、３０３Ｂおよび３０３Ｃのそれぞれに対して、図１４Ｆに一例が示されるように、アニメーション表示を設定することができる。この場合には、アニメーション表示が設定されたボタンは、アニメーション表示に用いるだけの枚数のボタン画像からなることになる。
【００８９】
なお、以下では、ボタンのアニメーションを構成するための複数枚のボタン画像のそれぞれを適宜、アニメーションフレームと呼ぶことにする。
【００９０】
図１５は、ＩＣＳのヘッダ情報の一例の構造を表すシンタクスを示す。ＩＣＳのヘッダは、ブロックsegment_descriptor()、ブロックvideo_descriptor()、ブロックcomposition_descriptor()、ブロックsequence_descriptor()およびブロックinteractive_composition_data_fragemnt()からなる。ブロックsegment_descriptor()は、このセグメントがＩＣＳであることを示す。ブロックvideo_descriptor()は、このメニューと同時に表示されるビデオのフレームレートや画枠サイズを示す。ブロックcomposition_descriptor()は、フィールドcomposition_stateを含み（図示しない）、このＩＣＳのステータスを示す。ブロックsequence_descriptor()は、このＩＣＳが複数のＰＥＳパケットに跨るか否かを示す。
【００９１】
より具体的には、このブロックsequence_descriptor()は、現在のＰＥＳパケットに含まれるＩＣＳが１つのＩＧストリームの先頭または最後尾の何れのＩＣＳであるか否かを示す。
【００９２】
すなわち、上述したように、データサイズが６４ＫＢと固定的とされたＰＥＳパケットに対して、ＩＣＳのデータサイズが大きい場合には、ＩＣＳが所定に分割されてＰＥＳパケットにそれぞれ詰め込まれる。このとき、この図１５に示されるヘッダ部分は、ＩＣＳが分割して詰め込まれたＰＥＳパケットのうち先頭および最後尾のＰＥＳパケットにだけあればよく、途中のＰＥＳパケットにおいては省略することができる。このブロックsequence_descriptor()が先頭および最後尾を示していれば、ＩＣＳが１つのＰＥＳパケットに収まっていることが分かる。
【００９３】
図１６は、ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す。なお、図１６では、自身のブロックがブロックinteractive_composition()として示されている。フィールドintaractive_composition_lengthは、２４ビットのデータ長を有し、ブロックinteractive_composition()のこのフィールドintaractive_composition_length以降の長さを示す。フィールドstream_modelは、１ビットのデータ長を有し、このストリームが多重化されているか否かを示す。
【００９４】
フィールドstream_modelの値が"０"であれば、多重化されていることを示し、ＭＰＥＧ２トランスポートストリーム内に、インタラクティブグラフィクスストリームと共に関連する他のエレメンタリストリームが多重化されている可能性があることを示す。フィールドstream_modelの値が"１"で非多重化を示し、ＭＰＥＧ２トランスポートストリーム内にはインタラクティブグラフィクスストリームのみが存在することを示す。すなわち、インタラクティブグラフィクスストリームは、ＡＶストリームに対して多重化することもできるし、単独でクリップＡＶストリームを構成することもできる。なお、非多重化であるインタラクティブグラフィクスストリームは、非同期のサブパスとしてのみ、定義される。
【００９５】
フィールドuser_interface_modelは、１ビットのデータ長を有し、このストリームが表示するメニューがポップアップメニューか、常時表示メニューの何れであるかを示す。ポップアップメニューは、例えばリモートコントロールコマンダのボタンのＯＮ／ＯＦＦといった、所定の入力手段で表示の有無を制御できるメニューである。一方、常時表示メニューは、ユーザ操作により表示の有無を制御できない。フィールドuser_interface_modelの値が"０"で、ポップアップメニューを示し、"１"で常時表示メニューを示す。なお、フィールドstream_modelの値が"１"であり、且つ、他のエレメンタリストリームと多重化されていない場合に限り、ポップアップメニューが許可される。
【００９６】
フィールドstream_modelの値が"０"であれば、If文If(stream_model=='0b'以下のフィールドcomposition_time_out_ptsおよびフィールドselection_time_out_ptsが有効になる。フィールドcomposition_time_out_ptsは、３３ビットのデータ長を有し、このメニュー表示が消える時刻を示す。また、フィールドselection_time_out_ptsは、３３ビットのデータ長を有し、このメニュー表示における選択操作が可能でなくなる時刻を示す。時刻は、それぞれＭＰＥＧ２に規定されるＰＴＳ(Presentation Time Stamp)で記述される。
【００９７】
図１７は、ブロックpage()の一例の構造を表すシンタクスを示す。フィールドpage_idは、８ビットのデータ長を有し、このページを識別するためのＩＤを示し、フィールドpage_version_numberは、８ビットのデータ長を有し、このページのバージョン番号を示す。次のブロックUO_mask_table()は、このページの表示中に禁止される、ユーザの入力手段に対する操作（ＵＯ：User Operation)が記述されるテーブルを示す。
【００９８】
ブロックin_effect()は、このページが表示される際に表示されるアニメーションブロックを示す。括弧{}内のブロックeffect_sequence()に、アニメーションのシーケンスが記述される。また、ブロックout_effect()は、このページが終了する際に表示されるアニメーションブロックを示す。括弧{}内のブロックeffect_sequence()に、アニメーションのシーケンスが記述される。これらブロックin_effect()およびブロックout_effect()は、それぞれページを移動した際にこのＩＣＳが発見された場合に実行されるアニメーションである。
【００９９】
次のフィールドanimation_frame_rate_codeは、８ビットのデータ長を有し、このページのボタン画像がアニメーションする場合の、アニメーションフレームレートの設定パラメータを示す。例えば、このＩＣＳが対応するクリップＡＶストリームファイルにおけるビデオデータのフレームレートをＶfrm、当該アニメーションフレームレートをＡfrmとした場合、フィールドanimation_frame_rate_codeの値を、Ｖfrm／Ａfrmのように、これらの比で表すことができる。
【０１００】
フィールドdefault_selected_button_id_refは、１６ビットのデータ長を有し、このページが表示される際に最初に選択状態とされるボタンを指定するためのＩＤを示す。また、次のフィールドdefault_activated_button_id_refは、１６ビットのデータ長を有し、図１６を用いて説明したフィールドselection_time_out_ptsで示される時間に達した際に、自動的に実行状態となるボタンを指定するためのＩＤを示す。
【０１０１】
フィールドpalette_id_refは、８ビットのデータ長を有し、このページが参照するパレットのＩＤを示す。すなわち、このフィールドpalette_id_refにより、ＩＧストリームにおけるＰＤＳ中の色情報が指定される。
【０１０２】
次のフィールドnumber_of_BOGsは、８ビットのデータ長を有し、このページで用いられるＢＯＧｓの数が示される。このフィールドnumber_of_BOGsで示される回数だけ、次のfor文からのループが繰り返され、ブロックbutton_overlap_group()により、ＢＯＧｓ毎の定義がなされる。
【０１０３】
図１８は、ブロックbutton_overlap_group()の一例の構造を表すシンタクスを示す。フィールドdefault_valid_button_id_refは、１６ビットのデータ長を有し、このブロックbutton_overlap_group()で定義されるＢＯＧｓにおいて最初に表示されるボタンのIDを示す。次のフィールドnumber_of_buttonsは、８ビットのデータ長を有し、このＢＯＧｓで用いられるボタンの数を示す。そして、このフィールドnumber_of_buttonsで示される回数だけ、次のfor文からのループが繰り返され、ブロックbutton()によりボタンそれぞれの定義がなされる。
【０１０４】
すなわち、既に説明したように、ＢＯＧｓは、複数のボタンを持つことができ、ＢＯＧｓが持つ複数のボタンのそれぞれの構造がブロックbutton()で定義される。このブロックbutton()で定義されるボタン構造が、実際に表示されるボタンである。
【０１０５】
図１９は、ブロックbutton()の一例の構造を表すシンタクスを示す。フィールドbutton_idは、１６ビットのデータ長を有し、このボタンを識別するＩＤを示す。フィールドbutton_numeric_select_valueは、１６ビットのデータ長を有し、このボタンがリモートコントロールコマンダ上の数字キーの何番に割り当てられているかを示す。フラグauto_action_flagは、１ビットのデータ長を有するフラグであって、このボタンが選択状態になったときに、当該ボタンに割り当てられた機能が自動的に実行されるか否かを示す。
【０１０６】
なお、以下では、フラグフラグauto_action_flagにより、選択状態となったときに、割り当てられた機能が自動的に実行されるように定義されたボタンを、適宜、オートアクションボタンと呼ぶ。
【０１０７】
次のフィールドbutton_horizontal_positionおよびフィールドbutton_vertical_positioは、それぞれ１６ビットのデータ長を有し、このボタンを表示する画面上の水平方向の位置および垂直方向の位置（高さ）を示す。
【０１０８】
ブロックneighbor_info()は、このボタンの周辺情報を示す。すなわち、このブロックneighbor_info()内の値により、このボタンが例えば選択状態となっている状態からリモートコントロールコマンダにおける上下左右の方向を指示できる方向キーが操作された際に、どのボタンが選択状態に遷移するかを示す。ブロックneighbor_info()内のフィールドにおいて、それぞれ１６ビットのデータ長を有するフィールドupper_button_id_ref、フィールドlower_button_id_ref、フィールドleft_button_id_refおよびフィールドright_button_id_refは、上方向、下方向、左方向および右方向を指示する操作がなされた場合に選択状態に遷移されるボタンのＩＤをそれぞれ示す。
【０１０９】
次からのブロックnormal_state_info()、ブロックselected_state_info()およびブロックactivated_state_info()は、それぞれ、通常状態、選択状態および実行状態時のボタンの情報を示す。
【０１１０】
先ず、ブロックnormal_state_info()について説明する。それぞれ１６ビットのデータ長を有するフィールドnormal_start_object_id_refおよびフィールドnormal_end_object_id_refは、この通常状態のボタンのアニメーションの先頭および末尾のオブジェクトを指定するＩＤがそれぞれ示される。すなわち、これらフィールドnormal_start_object_id_refおよびフィールドnormal_end_object_id_refにより、ボタンのアニメーション表示に用いられるボタン画像（すなわちアニメーションフレーム）が、対応するＯＤＳに対して指定される。
【０１１１】
次のフラグnormal_repeat_flagは、１ビットのデータ長を有するフラグであって、このボタンのアニメーションがリピートするか否かが示される。例えば、フラグnormal_repeat_flagの値が"０"でリピートしないことを示し、値が"１"でリピートすることを示す。次のフラグnormal_complete_flagは、１ビットのデータ長を有するフラグであって、このボタンが通常状態から選択状態に遷移する際のアニメーション動作を制御する。
【０１１２】
次に、ブロックselected_state_info()について説明する。このブロックselected_state_info()は、上述のブロックnormal_state_info()に対して、サウンドを指示するためのフィールドselected_state_sound_id_refが付加されている。フィールドselected_state_sound_id_refは、８ビットのデータ長を有し、この選択状態のボタンに対して再生されるサウンドファイルを示す。例えば、サウンドファイルは、ボタンが通常状態から選択状態に遷移した際の効果音として用いられる。
【０１１３】
それぞれ１６ビットのデータ長を有するフィールドselected_start_object_id_refおよびフィールドselected_end_object_id_refは、この選択状態のボタンのアニメーションの先頭および末尾のオブジェクトを指定するＩＤがそれぞれ示される。また、次の１ビットのデータ長を有するフラグであるフラグselected_repeat_flagは、このボタンのアニメーションがリピートするか否かが示される。例えば値が"０"でリピートしないことを示し、値が"１"でリピートすることを示す。
【０１１４】
次のフラグselected_complete_flagは、１ビットのデータ長を有するフラグである。このフラグselected_complete_flagは、このボタンが選択状態から他の状態に遷移する際のアニメーション動作を制御するフラグである。すなわち、フラグselected_complete_flagは、ボタンが選択状態から実行状態に遷移する場合と、選択状態から通常状態に遷移する場合とに、用いることができる。
【０１１５】
上述と同様、フラグselected_complete_flagの値が"１"であれば、このボタンが選択状態から他の状態へと遷移する際に、選択状態に定義されているアニメーションを、全て表示する。より具体的には、フラグselected_complete_flagの値が"１"であったなら、当該ボタンの選択状態のアニメーション表示中に当該ボタンを選択状態から他の状態に遷移させるような入力がなされた場合、その時点で表示されているアニメーションフレームから、上述したフィールドselected_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【０１１６】
また、フラグselected_complete_flagの値が"１"であって、且つ、フラグselected_repeat_flagがリピートすることを示している場合（例えば値"１"）も、その時点で表示されているアニメーションフレームから、上述したフィールドselected_end_object_id_refで示されるアニメーションフレームまで、アニメーション表示を行う。
【０１１７】
この場合、例えばボタンが選択できない状態にされた場合や、ボタンの表示そのものが消されてしまうような場合でも、これらの状態に遷移する時点がアニメーションの表示中であれば、フィールドselected_end_object_id_refで示されるアニメーションフレームまでアニメーション表示を行い、その後、ボタンの状態を遷移させる。
【０１１８】
ボタンが選択できない状態は、例えば上述したフィールドselection_time_out_ptsの指定により、ボタンが選択できないような状態になった場合や、フィールドuser_time_out_durationの指定によりメニューが自動的に初期化されるような場合が考えられる。
【０１１９】
一方、フラグselected_complete_flagの値が"０"であれば、このボタンが選択状態から他の状態へと遷移する際に、選択状態のボタンに定義されたアニメーションをフィールドselected_end_object_id_refで示されるアニメーションフレームまで表示せずに、状態の遷移が指示された時点でアニメーション表示を停止し、他の状態のボタンを表示する。
【０１２０】
ブロックactivated_state_info()において、フィールドactivated_state_sound_id_refは、８ビットのデータ長を有し、この実行状態のボタンに対して再生されるサウンドファイルを示す。それぞれ１６ビットのデータ長を有するフィールドactivated_start_object_id_refおよびフィールドactivated_end_object_id_refは、この実行状態のボタンのアニメーションの先頭および末尾のアニメーションフレーム（すなわちボタン画像）を指定するＩＤがそれぞれ示される。フィールドactivated_start_object_id_refおよびフィールドactivated_end_object_id_refが同一のボタン画像を参照していれば、当該実行状態のボタンに対して、１のボタン画像のみが関連付けられていることを示す。
【０１２１】
なお、フィールドactivated_start_object_id_refまたはフィールドactivated_end_object_id_refは、値が〔０ｘＦＦＦＦ〕で、ボタン画像が指定されていないことを示す。一例として、フィールドactivated_start_object_id_refの値が〔０ｘＦＦＦＦ〕であって、且つ、フィールドactivated_end_object_id_refの値が有効なボタン画像を示していれば、当該実行状態のボタンに対してボタン画像が関連付けられていないとされる。また、フィールドactivated_start_object_id_refの値が有効なボタン画像を示し、且つ、フィールドactivated_end_object_id_refの値が〔０ｘＦＦＦＦ〕であれば、無効なボタンとして扱うことが考えられる。
【０１２２】
ブロックactivated_state_info()の説明を終わり、次のフィールドnumber_of_navigation_commandsは、１６ビットのデータ長を有し、このボタンに埋め込まれるコマンドの数を示す。そして、このフィールドnumber_of_navigation_commandsで示される回数だけ、次のfor文からのループが繰り返され、このボタンにより実行されるコマンドnavigation_command()が定義される。これは、換言すれば、１つのボタンから複数のコマンドを実行させることができることを意味する。
【０１２３】
次に、インタラクティブグラフィクス（以下、適宜、ＩＧと略称する）のデコーダモデルについて、図２０を用いて説明する。なお、この図２０に示す構成は、インタラクティブグラフィクスのデコードを行うと共に、プレゼンテーショングラフィクスのデコードにおいても共通的に用いることができるものである。
【０１２４】
先ず、ディスクがプレーヤに装填されると、インデックスファイル"index.bdmv"およびムービーオブジェクトファイル"MovieObject.bdmv"がディスクから読み込まれ、所定にトップメニューが表示される。トップメニューの表示に基づき、再生するタイトルを指示すると、ムービーオブジェクトファイル中の対応するナビゲーションコマンドにより、指示されたタイトルを再生するためのプレイリストファイルが呼び出される。そして、当該プレイリストファイルの記述に従い、プレイリストから再生を要求されたクリップＡＶストリームファイル、すなわち、ＭＰＥＧ２のトランスポートストリームがディスクから読み出される。
【０１２５】
トランスポートストリームは、ＴＳパケットとしてＰＩＤフィルタ１００に供給されてＰＩＤが解析される。ＰＩＤフィルタ１００では、供給されたＴＳパケットがビデオデータ、オーディオデータ、メニューデータおよびサブタイトル（字幕）データの何れを格納したパケットであるかを分類する。ＰＩＤがメニューデータすなわちインタラクティブグラフィクスを表している場合、若しくは、ＰＩＤがプレゼンテーショングラフィクスを表している場合に、図２０の構成が有効とされる。なお、プレゼンテーショングラフィクスに関しては、この発明と直接的な関連性がないので、説明を省略する。
【０１２６】
ＰＩＤフィルタ１００において、トランスポートストリームからデコーダモデルが対応するデータを格納するＴＳパケットが選択されて、トランスポートバッファ（以下、ＴＢ：Transport Buffer）１０１に溜め込まれる。そして、ＴＢ１０１上でＴＳパケットのペイロードに格納されているデータが取り出される。ＰＥＳパケットを構成可能なだけのデータがＴＢ１０１に溜め込まれたら、ＰＩＤに基づきＰＥＳパケットが再構築される。すなわち、この段階で、ＴＳパケットに分割されていた各セグメントがそれぞれ統合されることになる。
【０１２７】
各セグメントによるＰＥＳパケットは、ＰＥＳヘッダが取り除かれエレメンタリストリーム形式でデコーダ１０２にそれぞれ供給され、ＣＤＢ(コーデッドデータバッファ：Coded Data Buffer)１１０に一旦溜め込まれる。ＳＴＣに基づき、ＣＤＢ１１０に溜め込まれたエレメンタリストリームのうち、対応するＤＴＳに示される時刻に達したエレメンタリストリームがあれば、当該セグメントは、ＣＤＢ１１０から読み出されてストリームグラフィックプロセッサ１１１に転送され、それぞれデコードされセグメントに展開される。
【０１２８】
ストリームグラフィックプロセッサ１１１は、デコードが完了したセグメントを、ＤＢ(デコーデッドオブジェクトバッファ：Decoded Object Buffer)１１２またはＣＢ(コンポジションバッファ：Composition Buffer)１１３に所定に格納する。ＰＣＳ、ＩＣＳ、ＷＤＳおよびＯＤＳのようにＤＴＳを持つタイプのセグメントであれば、対応するＤＴＳに示されるタイミングで、ＤＢ１１２またはＣＢ１１３に格納する。また、ＰＤＳのようにＤＴＳを持たないタイプのセグメントは、即座にＣＢ１１３に格納される。
【０１２９】
グラフィクスコントローラ１１４は、セグメントを制御する。グラフィクスコントローラ１１４は、ＣＢ１１３からＩＣＳを、当該ＩＣＳに対応するＰＴＳに示されるタイミングで読み出すと共に、当該ＩＣＳにより参照されるＰＤＳを読み出す。また、グラフィクスコントローラ１１４は、当該ＩＣＳから参照されるＯＤＳをＤＢ１１２から読み出す。そして、読み出されたＩＣＳおよびＯＤＳをそれぞれデコードし、ボタン画像などメニュー画面を表示するためのデータを形成し、グラフィクスプレーン１０３に書き込む。
【０１３０】
また、グラフィクスコントローラ１１４は、ＣＢ１１３から読み出されたＰＤＳをデコードして、例えば図１１を用いて説明したようなカラーパレットテーブルを形成し、ＣＬＵＴ１０４に書き込む。
【０１３１】
グラフィクスプレーン１０３に書き込まれた画像イメージは、所定のタイミング、例えばフレームタイミングで読み出され、ＣＬＵＴ１０４のカラーパレットテーブルが参照されて色情報が付加されて出力画像データが構成され、この出力画像データが出力される。
【０１３２】
図２１〜図２３を用いて、ＩＧストリームによるメニュー表示と、メインパスのプレイリストに基づき再生されるビデオストリームとを合成して表示する例について、概略的に説明する。
【０１３３】
図２１は、ＩＧストリームにより表示される一例のメニュー表示を示す。この例では、ＩＧストリームにより、メニューの背景２００が表示されると共に、ボタン２０１Ａ、ボタン２０１Ｂおよびボタン２０１Ｃが表示される。ボタン２０１Ａ、２０１Ｂおよび２０１Ｃのそれぞれには、通常状態、選択状態および実行状態を示すボタン画像を各々、用意することができる。メニューの背景２００は、移動が禁止され、且つ、コマンドが設定されていないボタン（特殊ボタンと称する）により、表示される。なお、各ボタンは重なって表示できないという制約が設けられている。そのため、ボタン２０１Ａ、２０１Ｂおよび２０１Ｃそれぞれに挟まれる部分、ボタン２０１Ａの左側の部分、ならびに、ボタン２０１Ｃの右側の部分は、それぞれ独立した特殊ボタンが配置される。
【０１３４】
これらボタン２０１Ａ、２０１Ｂおよび２０１Ｃは、例えばリモートコントロールコマンダの十字キーの操作により右または左が指示されると、操作に応じて通常状態のボタン画像と選択状態のボタン画像とが順次、切り換えて表示される。さらに、この図２１の例では、ボタンが選択状態になっているときに、例えば十字キーに対する下方向を指示する操作、または、決定キーの操作などにより、選択状態のボタンに対応するプルダウンメニュー２０２が表示される。
【０１３５】
プルダウンメニュー２０２は、例えば複数のボタン２０３Ａ、２０３Ｂおよび２０３Ｃから構成される。これら複数のボタン２０３Ａ、２０３Ｂおよび２０３Ｃも、上述のボタン２０１Ａ、２０１Ｂおよび２０１Ｃと同様に、通常状態、選択状態および実行状態を示すボタン画像を各々、用意することができる。プルダウンメニュー２０２が表示されている状態で例えば十字キーの操作により上または下が指示されると、プルダウンメニュー２０２の各ボタン２０３Ａ、２０３Ｂおよび２０３Ｃが操作に応じて通常状態のボタン画像と選択状態のボタン画像とが順次、切り換えて表示される。例えば決定ボタンの操作により、選択状態のボタン画像が実行状態のボタン画像に切り換えられて表示され、実行状態のボタン画像が、後述するような、この発明の実施の一形態による表示制御に基づき表示され、当該ボタンに割り当てられた機能がプレーヤに実行される。
【０１３６】
このようなメニュー表示と、図２２に一例が示される、メインパスのプレイアイテムにより再生され動画プレーン１０に表示される動画データとを合成する場合について考える。図２１の画面中、プルダウンメニュー２０２部分を含むメニュー表示以外の部分の不透明度αが"０"に設定され、インタラクティブグラフィクスプレーン１２と、動画プレーン１０とが合成される。これにより、図２３に一例が示されるように、図２２に例示される動画データに対して図２１に例示されるメニュー表示が合成された表示が得られる。
【０１３７】
上述したメニュー表示におけるプルダウンメニュー表示を実現するための方法の例について、概略的に説明する。一例として、ボタン２０１Ａが選択状態になっているときに、リモートコントロールコマンダの決定キーを操作してプルダウンメニュー２０２を表示させる例について、図２４を用いて説明する。なお、図２４において上述した図２１と共通する部分には同一の符号を付し、詳細な説明を省略する。
【０１３８】
この図２４の例では、背景２００、ボタン２０１Ａ、２０１Ｂおよび２０１Ｃ、ならびに、プルダウンメニュー２０２を含むメニュー表示がページ"０"で示されるメニュー画面に表示されるものとする。ボタン２０１Ａ、ボタン２０１Ｂおよびボタン２０１Ｃは、それぞれボタンを識別するためのＩＤである値button_idが"１"、"２"および"３"で定義されるボタンオーバーラップグループ（ＢＯＧ）とされる。また、ボタン２０１Ａに対応するプルダウンメニュー２０２における各ボタン２０３Ａ、２０３Ｂおよび２０３Ｃは、値button_idがそれぞれ"３"、"４"および"５"で定義されるボタンオーバーラップグループとされる。
【０１３９】
ボタン２０１Ａを例にとると、ボタン２０１Ａを定義するブロックbutton()において、当該ボタン２０１Ａにより実行されるコマンドnavigation_command()の部分に、例えば次のようにコマンドを記述する。なお、以下に説明する各コマンドは、ＢＤ−ＲＯＭ論理フォーマットにより定義されるコマンドである。
EnableButton(3);
EnableButton(4);
EnableButton(5);
SetButtonPage(1,0,3,0,0);
【０１４０】
これらのコマンドにおいて、コマンドEnableButton()は、括弧「()」内に示される値を値button_idとして定義されたボタンをイネーブル状態（有効状態）とすることを示す。なお、ボタンを有効状態にするコマンドEnableButton()に対して、ボタンをディぜーブル状態すなわち無効状態にする場合は、コマンドDisableButton()が用いられる。
【０１４１】
コマンドSetButtonPage()は、例えばコマンドEnableButton()で有効状態とされたボタンを選択可能とさせるためのコマンドである。コマンドSetButtonPage()は、５個のパラメータbutton_flag、パラメータpage_flag、パラメータbutton_id、パラメータpage_idおよびパラメータout_effect_off_flagを持つ。パラメータbutton_flagは、３番目のパラメータであるパラメータbutton_idの値をプレーヤが持つ、再生状態を管理するためのメモリ（ＰＳＲ：Player Status Register）に設定することを示す。パラメータpage_flagは、ＰＳＲに保持している、ページを識別する値page_idを、４番目のパラメータであるパラメータpage_idに変更するか否かを示す。また、パラメータout_effect_off_flagは、当該ボタン２０１Ａが非選択状態になったときに、当該ボタン２０１Ａに定義されるエフェクトが実行されるか否かが示される。
【０１４２】
一方、プルダウンメニュー２０２を構成するボタン２０３Ａ、ボタン２０３Ｂおよびボタン２０３Ｃに対しても、これらのボタンが決定状態となったときに実行されるコマンドnavigation_command()が記述される。図２４の例では、ボタン２０３Ｂに対して、用いるストリームを設定するコマンドSetStream()が記述される。この例では、コマンドSetStream()により２番目のＰＧストリームが用いられることが示される。
【０１４３】
なお、上述したような、各ボタンに対して記述されるコマンドnavigation_command()は、一例であって、これに限られるものではない。例えば、字幕を選択するためのプルダウンメニュー２０２のボタン２０３Ａおよび２０３Ｃにも、上述のボタン２０３Ｂと同様に、コマンドSetStream()が記述されることが考えられる。
【０１４４】
図２４に例示されるメニュー画面において、ボタン２０１Ａが選択状態のときに決定キーを操作すると、値button_idが"３"、"４"および"５"で定義されるボタン、すなわち、プルダウンメニュー２０２におけるボタン２０３Ａ、２０３Ｂおよび２０３Ｃがそれぞれ有効状態とされ、対応するボタン画像が表示される。このとき、コマンドSetButtonPage(1,0,3,0,0)の記述に基づき、値button_idが"３"で示されるボタン２０３Ａが選択状態とされる。
【０１４５】
さらに十字キーなどの操作により下方向が指示されると、ボタンに対するフォーカスが下に移動されてボタン２０３Ａが選択状態から通常状態に遷移され、ボタン２０３Ｂが通常状態から選択状態へと遷移される。この状態で決定キーを操作すると、ボタン２０３Ｂにおけるコマンドnavigation_command()の記述に従い、２番目のＰＧストリームが選択され、字幕表示が英語による字幕に切り換えられる。
【０１４６】
別の例として、ボタン２０１Ａが選択状態となっているときに、リモートコントロールコマンダの十字キーなどにより下方向を指定する操作を行って、プルダウンメニュー２０２を表示させる例について、図２５および図２６を用いて説明する。これら図２５および図２６では、メニュー表示に対して、メインパスのプレイアイテムにより動画プレーン１０に表示される動画データが合成されている。
【０１４７】
なお、図２５および図２６において、上述した図２１、図２３および図２４などと共通する部分には同一の符号を付し、詳細な説明を省略する。例えば、図２６に示される、プルダウンメニュー２０２上のボタン２０３Ａ、２０３Ｂおよび２０３Ｃは、それぞれ値button_idが"３"、"４"および"５"で定義され、ボタン２０３Ｂに対して、２番目のＰＧストリームを用いるとされたコマンドSetStream()が記述されるものとする。
【０１４８】
ボタンの選択状態に対して、決定キーではなく下方向キーなどでプルダウンメニュー２０２を表示させる場合、例えば、図２５および図２６に例示されるように、ユーザに対して見せないようにされた隠しボタン２０４を用いる方法が考えられる。隠しボタン２０４は、例えば隠しボタン２０４に関連付けられたボタン画像データに対して、不透明度α＝０を指定することで、実現することができる。図２５および図２６では、説明のため隠しボタン２０４を点線の枠で示したいるが、実際には、隠しボタン２０４は表示されておらず、後ろのプレーン（例えば動画プレーン１０）の画像が透過されて表示されている。
【０１４９】
図２５を参照し、隠しボタン２０４を定義するブロックbutton()において、隠しボタン２０４を識別する値button_idを例えば"７"とし、この隠しボタン２０４を値button_idが"７"で定義されるボタンオーバーラップグループとする。さらに、当該ブロックbutton()において、フラグauto_action_flagの値を例えば"１ｂ"（「ｂ」は、直前の数値がバイナリ値であることを示す）とし、この隠しボタン２０４を、選択状態から自動的に実行状態に遷移するように定義する。そして、当該隠しボタン２０４より実行されるコマンドnavigation_command()の部分に、例えば次のようにコマンドを記述する。
EnableButton(3);
EnableButton(4);
EnableButton(5);
SetButtonPage(1,0,3,0,0);
【０１５０】
一方、例えば字幕選択を行うボタン２０１Ａに対し、フィールドlower_button_id_refの値を"７"とし、ボタン２０１Ａが選択状態のときに十字キーなどの操作により下方向が指定されると、値button_idが"７"のボタン（この例では上述の隠しボタン２０４）が選択状態に遷移するように設定される。
【０１５１】
図２５に例示されるメニュー表示に対し、ボタン２０１Ａが選択状態とされているときに十字キーの操作などにより下方向が指示されると、ボタン２０１Ａにおけるフィールドlower_button_id_refの記述に従い、値button_idが"７"で示される隠しボタン２０４が選択状態とされる。ここで、この隠しボタン２０４には、フラグauto_action_flagにより選択状態から自動的に実行状態に遷移するように定義されている。そのため、隠しボタン２０４におけるコマンドnavigation_command()の部分のコマンドEnableButton()の記述に従い、値button_idが"３"、"４"および"５"で定義されるボタン、すなわちプルダウンメニュー２０２のボタン２０３Ａ、２０３Ｂおよび２０３Ｃがそれぞれ有効状態とされ、対応するボタン画像が表示される（図２６参照）。このとき、コマンドSetButtonPage(1,0,3,0,0)の記述に基づき、値button_idが"３"で示されるボタン２０３Ａが選択状態とされる。
【０１５２】
さらに十字キーなどの操作により下方向が指示されると、ボタンに対するフォーカスが移動されてボタン２０３Ａが選択状態から通常状態に遷移され、ボタン２０３Ｂが通常状態から選択状態へと遷移される。この状態で決定キーを操作すると、ボタン２０３Ｂにおけるコマンドnavigation_command()の記述に従い、２番目のプレゼンテーショングラフィクスストリームが選択され、字幕表示が英語による字幕に切り換えられる。
【０１５３】
次に、この発明の実施の一形態について説明する。この発明では、複数の隠しボタンと、ＢＤ−ＲＯＭ論理フォーマットにおいて定義されるコマンドEnableButton()の性質を利用して、あるコマンド以降に記述されたコマンドが実行されない制約の下で、当該コマンドによる動作を実現可能とするようにしている。
【０１５４】
先ず、コマンドEnableButton()の性質について、図２７を用いて説明する。図２７において、ページＩＤが"０"のページ（以下、ページ＃０）は、ポップアップメニューとして定義されている。このページ＃０に対して、ボタンＩＤがそれぞれ"＃１"、"＃２"および"＃３"とされたボタン４００、ボタン４０１およびボタン４０２が配置されているものとする。
【０１５５】
図２７の例では、ボタン４０１は、例えば通常状態のボタン画像が説明文などを表示するための画像となっており、選択状態や実行状態に遷移されないものとする。また、ボタン４００は、ボタン４０１の表示および非表示を切り換えるためのボタンである。ボタン４０１を表示させるためには、コマンドEnableButton(＃２)を用いてボタン４０１を有効状態とし、非表示とするためには、コマンドDisableButton(＃２）を用いてボタン４０１を無効状態とする。
【０１５６】
すなわち、ボタン４００においてコマンドEnableButton(＃２)が実行されると、ボタン４０１が有効状態とされ、図２７Ａに一例が示されるように、ボタン４０１が表示される。また、図２７Ａのボタン４０１が表示されている状態で、ボタン４００においてコマンドDisableButton(＃２)が実行されると、ボタン４０１が無効状態とされ、図２７Ｂに一例が示されるように、ボタン４０１が非表示状態とされる。また、コマンドEnableButton()およびコマンドDisableButton()によってボタンＩＤが指定されていないボタン４０２は、ボタン４００のコマンドによるボタン４０１の表示および非表示状態に影響されない。
【０１５７】
ここで、（１）ボタンに関連付けられたコマンドDisableButton()により当該ボタン自身を無効状態にしたり、（２）当該ボタン自身が含まれるＢＯＧ(Button Of Group)の、別のボタンをコマンドEnableButton()で有効状態にした場合の動作について説明する。ＢＤ−ＲＯＭ論理フォーマットにおいては、下記のように定義される。
【０１５８】
（１）の、ボタンに関連付けられたコマンドDisableButton()により当該ボタン自身を無効状態にした場合、当該ボタンに関連付けられたコマンドを最後まで実行し、その間に他のボタンが選択されれば、当該他のボタンが選択状態に遷移する。若し、選択状態にあるボタンが存在しなければ、そのときに最も相応しいボタンが選択状態にされる。例えば、ページにおいて、当該ページが表示された際にデフォルトで選択状態になるように設定されたボタンが選択状態とされる。
【０１５９】
（２）の、当該ボタン自身が含まれるＢＯＧの、別のボタンをコマンドEnableButton()で有効状態にした場合、当該ボタンに関連付けられるコマンドを最後まで実行し、その間にコマンドによって他のボタンが選択されれば、当該他のボタンが選択状態に遷移される。若し、選択状態にあるボタンが存在しなければ、有効状態とされたボタンが選択状態とされる。
【０１６０】
すなわち、コマンドEnableButton()およびコマンドDisableButton()は、これらのコマンドで指定されたボタンに関連付けられたコマンドを全て実行してから、当該ボタンが有効状態または無効状態とされる。また、コマンドEnableButton()およびコマンドDisableButton()は、次に選択状態となるボタンを自動的に指定できる。この発明の実施の一形態では、コマンドEnableButton()およびコマンドDisableButton()のこのような性質を利用して、所期の目的を達成する。
【０１６１】
一例として、図２８に例示されるようなメニュー画面を考える。このメニュー画面は、ポップアップメニューとして定義され、ページ＃０に配置されたボタン４０５、４０６および４０７により、チャプタジャンプを行うようにしたものである。ここで、ボタン４０６を用いてチャプタジャンプを行った場合に、チャプタジャンプによりストリームの再生位置が変更された後に、このポップアップメニューをＯＦＦとする場合について考える。
【０１６２】
ボタン４０５は、このページ＃０においてデフォルトで選択状態とされるボタンであって、シーン＃１へのチャプタジャンプを指示する。同様に、ボタン４０６およびボタン４０７は、それぞれシーン＃２およびシーン＃３へのチャプタジャンプを指示する。ボタン４０５のボタンＩＤを"＃１"とし、ボタン４０７のボタンＩＤを"＃３"とする。これらボタン４０５および４０７は、以下の説明に直接的な関連がないので、詳細な説明を省略する。
【０１６３】
なお、ページにおいてデフォルトのボタンは、ＩＣＳにおけるブロックpage()のフィールドdefault_selected_button_id_refによって指定される（図１７参照）。
【０１６４】
ボタン４０６は、互いに異なるＩＤを持つ２つのボタン４０６Ａおよびボタン４０６Ｂからなる。ボタン４０６ＡのボタンＩＤを"＃２"とし、ボタン４０６ＢのボタンＩＤを"＃２−２"とする。ボタン４０６Ｂは、例えば初期状態で無効状態とされ表示されず、ボタン４０６としてはボタン４０６Ａのみが表示される。
【０１６５】
さらに、ページ＃０に対して２つの隠しボタン４０８および４０９が配置される。隠しボタン４０８のボタンＩＤを"＃４"とし、隠しボタン４０９のボタンＩＤを"＃５"とする。この隠しボタン４０８および４０９と、上述のボタン４０６Ａおよび４０６Ｂは、同じＢＯＧ（ボタンオーバーラップグループ）４１０に属するようにする。図２８では、ボタン４０６Ａおよび４０６Ｂ、ならびに、隠しボタン４０８および４０９がそれぞれ異なる位置に配置されるように示されているが、これは説明のためであって、実際には、これら４ボタンは、同一のＢＯＧに属するため同一位置に配置される。これは、以下の説明において同様である。
【０１６６】
ボタン４０６Ａより実行されるコマンドnavigation_command()の部分に、例えば次のようにコマンドを記述する。
EnableButton(＃２−２);
SetButtonPage(＃４);
すなわち、ボタン４０６Ａを実行状態とすると、ボタン４０６Ｂが有効状態とされ、隠しボタン４０８が選択状態とされる。なお、上記では、コマンドSetButtonPage()についてパラメータbutton_idのみを記述し、他のパラメータを省略している。背景技術の項で既に説明したように、このコマンドSetButtonPage()以降に記述されるコマンドは、実行されない。
【０１６７】
隠しボタン４０８は、フラグauto_action_flagの値が"１ｂ"とされ、オートアクションボタンに定義される。また、隠しボタン４０８により実行されるコマンドnavigation_command()の部分に、例えば次のようにコマンドを記述する。
EnableButton(＃５);
LinkPI(目的のシーン);
なお、コマンドLinkPI()は、プレイアイテムＩＤを指定することで、そのＩＤを持つプレイアイテムに再生位置を変更させるコマンドである。したがって、背景技術の項で既に説明したように、このコマンドLinkPI()以降に記述されるコマンドは、実行されない。この隠しボタン４０８が選択状態にされると、自動的に実行状態に遷移し、隠しボタン４０９を有効状態として、コマンドLinkPI()で指定されたプレイアイテムに再生位置を変更する。
【０１６８】
隠しボタン４０９は、フラグauto_action_flagの値が"１ｂ"とされ、オートアクションボタンに定義される。また、隠しボタン４０８により実行されるコマンドnavigation_command()の部分に、例えば次のようにコマンドを記述する。
EnableButton(＃２);
PopUpMenuOFF;
なお、コマンドPopUpMenuOFFは、ポップアップメニューを終了させるコマンドである。背景技術の項で既に説明したように、このコマンドPopUpMenuOFF以降に記述されるコマンドは、実行されない。この隠しボタン４０９が選択状態にされると、自動的に実行状態に遷移し、ボタン４０６Ａを有効状態として、ポップアップメニューを終了させる。
【０１６９】
この図２８に例示されるように構成されたポップアップメニューの一例の動作について、図２９〜図３１を用いて説明する。図２９は、ボタン４０６Ａに対するチャプタジャンプを指示する操作が行われてから、ポップアップメニューがＯＦＦとされるまでの一例の処理を示すフローチャートである。図３０および図３１は、図２９のフローチャートに対応する、ポップアップメニューの状態の変化の例を示す。なお、図３０および図３１において、上述の図２８と共通する部分には同一の符号を付し、詳細な説明を省略する。
【０１７０】
図３０Ａに例示されるように、メニュー表示４２１は、ポップアップメニューとして定義され、メインパスの動画データによる映像４２０と合成して表示される。さらに、メニュー表示４２１に表示されるボタン４０５、４０６Ａおよび４０７は、それぞれチャプタジャンプ先における代表的なシーンによるサムネイル画像がボタン画像として用いられている。また、ボタン４０６Ｂは、ボタン４０６Ａのボタン画像が多少変更されて用いられ、ボタン４０６Ａのボタン画像に対して恰も選択状態を示すボタン画像の如くされている。図３０の例では、ボタン４０６Ａのボタン画像に対して、ボタン４０６Ｂのボタン画像において枠が太くされている。
【０１７１】
なお、隠しボタン４０８および４０９は、実際には表示されないが、図３０および図３１では、説明のため、点線で囲って示してある。また、ボタン４０６は、図２９ではシーン＃２のボタンとして記述され、隠しボタン４０８および４０９は、図２９では、それぞれ隠しボタン＃４および隠しボタン＃５として記述されている。
【０１７２】
図２９のフローチャートにおいて、ステップＳ１０で、シーン＃２へのチャプタジャンプを行うために、例えばリモートコントロールコマンダの十字キーや決定キーが操作され、ボタン４０６Ａが通常状態から選択状態に遷移され、さらに選択状態から実行状態に遷移される。
【０１７３】
ボタン４０６Ａが実行状態に遷移されると、当該ボタン４０６Ａに関連付けられたコマンドが実行される。すなわち、ステップＳ１１で、コマンドEnableButton(＃２−２)により、ボタン４０６Ｂが有効状態とされ、ボタン４０６Ｂの選択状態のボタン画像が表示される。次に、ステップＳ１２で、コマンドSetButtonPage(＃４)により隠しボタン４０８が選択状態とされる。ステップＳ１１およびステップＳ１２が実行された際の、一例のメニュー表示４２１を図３０Ｂに示す。
【０１７４】
隠しボタン４０８は、フラグauto_action_flagが値"１ｂ"とされ、オートアクションボタンとして定義されているので、選択状態になると自動的に実行状態に遷移され、隠しボタン４０８に関連付けられたコマンドが自動的に実行される。すなわち、ステップＳ１３でコマンドEnableButton(＃５)により隠しボタン４０９が有効とされ、ステップＳ１４で、コマンドLinkPI(目的のシーン)により指定されるプレイアイテムに再生位置が変更される。
【０１７５】
なお、隠しボタン４０８および４０９は、ユーザのリモートコントロールコマンダなどの操作により選択されないように設定される。例えば、ブロックbutton()内のブロックneighbor_info()において、これら隠しボタン４０８および４０９のＩＤを記述しない。
【０１７６】
ここで、コマンドEnableButton(＃５)により隠しボタン４０９が有効状態とされると、上述したコマンドEnableButton()の性質により、隠しボタン４０９が選択状態とされる。すなわち、隠しボタン４０８および隠しボタン４０９は、同じＢＯＧ４１０に属し、コマンドLinkPI(目的のシーン)が実行されるまでにコマンドにより他のボタンが選択されない場合、隠しボタン４０９が選択状態とされる。この様子を図３０Ｃに示す。
【０１７７】
ステップＳ１４のコマンドLinkPI(目的のシーン)により実際に再生位置が変更されるのを待って、処理がステップＳ１５に移行される。ステップＳ１５では、上述のステップＳ１３で選択状態とされた隠しボタン４０９が、オートアクションボタンの定義に従い自動的に実行状態に遷移され、隠しボタン４０９に関連付けられたコマンドEnableButton(＃２)が実行される。これにより、図３１Ａに例示されるように、ボタン４０６Ａが有効状態とされボタン４０６Ａに対応するボタン画像が表示される。そして、隠しボタン４０９において、コマンドEnableButton(＃２)の次に記述されるコマンドPopUpMenuOFFが実行され、ポップアップメニューであるメニュー表示４２１の表示が消去され、図３１Ｅに例示されるように、コマンドLinkPI(目的のシーン)により指定されたプレイアイテムによるメインパスの映像４２０’のみが表示される。
【０１７８】
このようにして、コマンドEnableButton()における、上述した（２）の、当該ボタン自身が含まれるＢＯＧの、別のボタンをコマンドEnableButton()で有効状態にした場合の性質を利用して、コマンドLinkPI()の実行後にポップアップメニューをＯＦＦとするアプリケーションが実現できる。
【０１７９】
なお、上述の例では、ステップＳ１２で、コマンドSetButtonPage()を用いて隠しボタン４０８を選択状態としている。コマンドSetButtonPage()は、無効状態のボタンであっても、選択状態に遷移させることができる。一方、プレーヤの実装によっては、前回の実行によって隠しボタン４０９が有効状態にあり、隠しボタン４０８が無効状態とされている場合も有り得る。そのため、コマンドSetButtonPage()を用いて、隠しボタン４０８を一意に有効状態としている。
【０１８０】
また、上述の例では、ＩＣＳにおいて、ポップアップメニューであるメニュー表示４２１を表示させるページ＃０に対し、ブロックpage()のフィールドdefault_selected_button_id_refにより予めデフォルトで選択状態にあるボタンを指定している。こうすることで、上述の手順でポップアップメニューをＯＦＦとした後、再びこのポップアップメニューがＯＮとされた際に、隠しボタン４０９が選択状態になっている状態を回避できる。
【０１８１】
さらに、上述のステップＳ１４においてコマンドLinkPI()で指定できるプレイアイテムは、現在再生中のプレイリストから参照されるプレイアイテムに限られる。これは、あるプレイリストが再生される際に、当該プレイリストに関連するＩＧストリームが全てディスクから読み出されてプレーヤにロードされ、再生するプレイリストが変更されると、ロードされたＩＧストリームをメモリ上から破棄してから、新たなＩＧストリームをロードするようになっているからである。
【０１８２】
さらにまた、上述では、隠しボタン４０８により、コマンドEnableButton()の後に実行されるコマンドがコマンドLinkPI()として説明したが、これはこの例に限定されず、他のコマンドでもよい。また、上述では、隠しボタン４０８に対してコマンドEnableButton()とコマンドLinkPI()との２個のコマンドしか関連付けられていないが、これはこの例に限られない。すなわち、ＢＤ−ＲＯＭ論理フォーマットにおいては、１のボタンに対して２５５個までコマンドを関連付けることができる。この実施の一形態においても同様に、コマンドEnableButton()を含めて最大で２５５個のコマンドを関連付けることができる。上述したコマンドEnableButton()の性質によれば、隠しボタン４０８に関連付けられた最大２５５個のコマンドは、全て実行され、その上で、コマンドEnableButton()により有効状態とされた隠しボタン４０９に関連付けられたコマンドが実行されることになる。これは、隠しボタン４０９についても同様である。
【０１８３】
なお、上述では、以降に記述されるコマンドが実行されないコマンドとして、コマンドLinkPI()、コマンドPopUpMenuOFFおよびコマンドSetButtonPage()を例示したが、これはの例に限定されない。例えば、ストリームを切り換えるコマンドSetStream()も、以降に記述されるコマンドが実行されないコマンドである。
【０１８４】
次に、この発明の実施の一形態に適用可能な再生装置について説明する。図３２は、この発明の実施の一形態に適用可能な再生装置１の一例の構成を示す。再生装置１は、ストレージドライブ５０、スイッチ回路５１、ＡＶデコーダ部５２およびコントローラ部５３を有する。ストレージドライブ５０は、例えば、上述したＢＤ−ＲＯＭを装填し再生可能とされているものとする。
【０１８５】
コントローラ部５３は、例えばＣＰＵ(Central Processing Unit)と、ＣＰＵ上で動作されるプログラムが予め格納されたＲＯＭ(Read Only Memory)、ＣＰＵによりプログラムの実行時にワークメモリとして用いられるＲＡＭ(Random Access Memory)などからなり、この再生装置１の全体的な動作を制御する。
【０１８６】
また、図示は省略するが、再生装置１には、ユーザに対して所定の制御情報を提供すると共に、ユーザの操作に応じた制御信号を出力するようにされたユーザインターフェイスが設けられる。例えば、赤外線通信など所定の無線通信手段を介して再生装置１と遠隔的に通信を行うリモートコントロールコマンダがユーザインターフェイスとして用いられる。リモートコントロールコマンダ上には、上下左右方向をそれぞれ指示可能な十字キーといった方向キーや、数字キー、各種機能が予め割り当てられた機能キーなど、複数の入力手段が設けられる。なお、十字キーは、上下左右方向をそれぞれ指定可能であれば、形状は問わない。
【０１８７】
リモートコントロールコマンダは、これらの入力手段に対してなされた操作に応じた制御信号を生成し、生成された制御信号を例えば赤外線信号に変調して送信する。再生装置１は、図示されない赤外線受信部においてこの赤外線信号を受信し、赤外線信号を電気信号に変換して復調し、元の制御信号を復元する。この制御信号がコントローラ部５３に供給される。コントローラ部５３は、この制御信号に応じて、プログラムに従い、再生装置１の動作を制御する。
【０１８８】
ユーザインターフェイスは、リモートコントロールコマンダに限らず、例えば再生装置１の操作パネルに設けられたスイッチ群により構成することができる。また、再生装置１に、ＬＡＮ(Local Area Network)などを介して通信を行う通信手段を設け、この通信手段を介して外部のコンピュータ装置などから供給された信号を、ユーザインターフェイスによる制御信号としてコントローラ部５３に供給することも可能である。
【０１８９】
また、当該再生装置１の言語設定の初期情報が、再生装置１が有する不揮発性メモリなどに記憶される。この言語設定の初期情報は、例えば再生装置１の電源投入時などにメモリから読み出され、コントローラ部５３に供給される。
【０１９０】
ストレージドライブ５０にディスクが装填されると、コントローラ部５３は、ストレージドライブ５０を介してディスク上のファイルindex.bdmvやファイルMovieObject.bdmvを読み出し、読み出されたファイルの記述に基づきディレクトリ"PLAYLIST"内のプレイリストファイルを読み出す。コントローラ部５３は、プレイリストファイルに含まれるプレイアイテムが参照するクリップＡＶストリームを、ディスクからストレージドライブ５０を介して読み出す。また、コントローラ部５３は、プレイリストがサブプレイアイテムを含む場合は、サブプレイアイテムにより参照されるクリップＡＶストリームやサブタイトルデータも、ディスクからストレージドライブ５０を介して読み出す。
【０１９１】
なお、以下では、サブプレイアイテムに対応するクリップＡＶストリームを、サブクリップＡＶストリームと呼び、サブプレイアイテムに対する主たるプレイアイテムに対応するクリップＡＶストリームを、メインクリップＡＶストリームと呼ぶ。
【０１９２】
ストレージドライブ５０から出力されたデータは、図示されない復調部およびエラー訂正部により復調処理およびエラー訂正処理を所定に施され、多重化ストリームが復元される。ここでの多重化ストリームは、ＰＩＤによりデータの種類や並び順などが識別され、所定サイズに分割され時分割多重されたトランスポートストリームである。この多重化ストリームは、スイッチ回路５１に供給される。コントローラ部５３は、例えばＰＩＤに基づきスイッチ回路５１を所定に制御してデータを種類毎に分類し、メインクリップＡＶストリームのパケットをバッファ６０に供給し、サブクリップＡＶストリームのパケットをバッファ６１に供給し、サウンドデータのパケットをサウンド出力部６２に供給し、テキストデータのパケットをバッファ６３に供給する。
【０１９３】
バッファ６０に溜め込まれたメインクリップＡＶストリームのパケットは、コントローラ部５３の制御に基づきバッファ６０からパケット毎に読み出され、ＰＩＤフィルタ６４に供給される。ＰＩＤフィルタ６４は、供給されたパケットのＰＩＤに基づき、パケットを、ビデオストリームによるパケット、プレゼンテーショングラフィクスストリーム（以下、ＰＧストリーム）によるパケット、インタラクティブグラフィクスストリーム（以下、ＩＧストリーム）によるパケットおよびオーディオストリームによるパケットに振り分ける。
【０１９４】
一方、バッファ６１に溜め込まれたサブクリップＡＶストリームのパケットは、コントローラ部５３の制御に基づきバッファ６１からパケット毎に読み出され、ＰＩＤフィルタ９０に供給される。ＰＩＤフィルタ９０は、供給されたパケットのＰＩＤに基づき、パケットを、ビデオストリームによるパケット、ＰＧストリームによるパケット、ＩＧストリームによるパケットおよびオーディオストリームによるパケットに振り分ける。
【０１９５】
ＰＩＤフィルタ６４により振り分けられたビデオストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたビデオストリームによるパケットは、それぞれＰＩＤフィルタ６５に供給され、ＰＩＤに応じて振り分けられる。すなわち、ＰＩＤフィルタ６５は、ＰＩＤフィルタ６４から供給された、メインクリップＡＶストリームによるパケットを１ｓｔビデオデコーダ６９に、ＰＩＤフィルタ９０から供給された、サブクリップＡＶストリームによるパケットを２ｎｄビデオデコーダ７２に、それぞれ供給するように、パケットを振り分ける。
【０１９６】
１ｓｔビデオデコーダ６９は、供給されたパケットのペイロードからビデオストリームを所定に取り出し、取り出されたビデオストリームのＭＰＥＧ２方式による圧縮符号を復号化する。１ｓｔビデオデコーダ６９の出力は、１ｓｔビデオプレーン生成部７０に供給され、ビデオプレーンが生成される。ビデオプレーンの生成は、例えばベースバンドのディジタルビデオデータの１フレームがフレームメモリに書き込まれることで生成される。１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンは、ビデオデータ処理部７１に供給される。
【０１９７】
２ｎｄビデオデコーダ７２および２ｎｄビデオプレーン生成部７３において、上述の１ｓｔビデオデコーダ６９および１ｓｔビデオプレーン生成部７０と略同様の処理がなされ、ビデオストリームが復号化されビデオプレーンが生成される。２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンは、ビデオデータ処理部７１に供給される。
【０１９８】
ビデオデータ処理部７１は、１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンと、２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンとを、１つのフレームに例えば所定に嵌め込んで１枚のビデオプレーンを生成することができる。１ｓｔビデオプレーン生成部７０で生成されたビデオプレーンと、２ｎｄビデオプレーン生成部７３で生成されたビデオプレーンとを、選択的に用いてビデオプレーンを生成してもよい。このビデオプレーンは、例えば上述の図９に例示した動画プレーン１０に対応する。
【０１９９】
ＰＩＤフィルタ６４により振り分けられたＰＧストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたＰＧストリームによるパケットは、それぞれスイッチ回路６６に供給されて一方が所定に選択され、プレゼンテーショングラフィクスデコーダ７４に供給される。プレゼンテーショングラフィクスデコーダ７４は、供給されたパケットのペイロードからＰＧストリームを所定に取り出してデコードして字幕を表示するグラフィクスデータを生成し、スイッチ回路７５に供給する。
【０２００】
スイッチ回路７５は、このグラフィクスデータと、後述するテキストデータによる字幕データとを所定に選択し、プレゼンテーショングラフィクスプレーン生成部７６に供給する。プレゼンテーショングラフィクスプレーン生成部７６は、供給されたデータに基づきプレゼンテーショングラフィクスプレーンを生成し、ビデオデータ処理部７１に供給する。このプレゼンテーショングラフィクスプレーンは、例えば上述の図９に例示した字幕プレーン１１に対応する。
【０２０１】
ＰＩＤフィルタ６４により振り分けられたＩＧストリームによるパケットと、ＰＩＤフィルタ９０により振り分けられたＩＧストリームによるパケットは、それぞれスイッチ回路６７に供給されて一方が所定に選択され、インタラクティブグラフィクスデコーダ７７に供給される。インタラクティブグラフィクスデコーダ７７は、供給されたＩＧストリームによるパケットからＩＧストリームのＩＣＳ、ＰＤＳおよびＯＤＳを所定に取り出してデコードする。例えば、インタラクティブグラフィクスデコーダ７７は、供給されたパケットのペイロードからデータを取り出し、ＰＥＳパケットを再構築する。そして、このＰＥＳパケットのヘッダ情報などに基づき、ＩＧストリームのＩＣＳ、ＰＤＳおよびＯＤＳをそれぞれ取り出す。デコードされたＩＣＳはおよびＰＤＳは、ＣＢ(Composition Buffer)と呼ばれるバッファに格納される。また、ＯＤＳは、ＤＢ(Decoded Buffer)と呼ばれるバッファに格納される。例えば図３２におけるプリロードバッファ７８が、これらＣＢおよびＤＢに相当する。
【０２０２】
なお、ＰＥＳパケットは、再生出力に関する時間管理情報であるＰＴＳ(Presentation Time Stamp)と、復号化に関する時間管理情報であるＤＴＳ(Decoding Time Stamp)とを有している。ＩＧストリームによるメニュー表示は、対応するＰＥＳパケットに格納されるＰＴＳにより時間管理されて表示される。例えば、上述したプリロードバッファに格納されたＩＧストリームを構成する各データは、ＰＴＳに基づき所定の時間に読み出すように制御される。
【０２０３】
プリロードバッファ７８から読み出されたＩＧストリームのデータは、インタラクティブグラフィクスプレーン生成部７９に供給され、インタラクティブグラフィクスプレーンが生成される。このインタラクティブグラフィクスプレーンは、例えば上述の図９に例示したグラフィクスプレーン１２に対応する。
【０２０４】
例えば、ユーザインターフェイスに設けられた入力手段に対する所定の操作に応じて、表示するボタンの状態が例えば選択状態から実行状態へと遷移したときには、インタラクティブグラフィクスデコーダ７７は、ボタンの実行状態に関連付けられたボタン画像およびサウンドデータに基づき、当該ボタンの実行状態に関連付けられたボタン画像の表示制御を行う。
【０２０５】
一例として、リモートコントロールコマンダに対して設けられた所定のキー操作により、ポップアップメニューの表示が指示された場合、再生中のプレイアイテムにポップアップメニューの表示が定義されていれば、関連するＩＧストリームのデータに基づきポップアップメニューをメインパスの動画データと合成して表示させるように制御する。例えば、インタラクティブグラフィクスデコーダ７７は、ＣＢに格納されたデコードされたＩＣＳから参照される、デコードされたＰＤＳをＣＢから読み出すと共に、対応するデコードされたＯＤＳをＤＢから読み出し、ボタン画像を表示するためのデータを形成する。
【０２０６】
また、インタラクティブグラフィクスデコーダ７７は、ＣＢに格納されたデコードされたＩＣＳから、各ボタンに関連付けられたナビゲーションコマンドを抽出する。抽出されたナビゲーションコマンドは、例えばコントローラ部５３に渡される。コントローラ部５３は、このナビゲーションコマンドに基づきこの再生装置１の各部を所定に制御する。上述した図２９のフローチャートによる各処理は、例えばコントローラ部５３により、ナビゲーションコマンドに基づきインタラクティブグラフィクスデコーダ７７などが制御されて実現される。
【０２０７】
ビデオデータ処理部７１は、例えば図１０を用いて説明したグラフィクス処理部を含み、供給されたビデオプレーン（図１０における動画プレーン１０）、プレゼンテーショングラフィクスプレーン（図１０における字幕プレーン１１）およびインタラクティブグラフィクスプレーン（図１０におけるグラフィクスプレーン１２）を、所定に合成して１枚の画像データとし、ビデオ信号にして出力する。
【０２０８】
ＰＩＤフィルタ６４により振り分けられたオーディオストリームと、ＰＩＤフィルタ９０により振り分けられたオーディオストリームは、それぞれスイッチ回路６８に供給される。スイッチ回路６８は、供給された２つのオーディオストリームのうち一方を１ｓｔオーディオデコーダ８０に、他方を２ｎｄオーディオデコーダ８１に供給するように、所定に選択する。１ｓｔオーディオデコーダ８０および２ｎｄオーディオデコーダ８１でそれぞれデコードされたオーディオストリームは、加算器８２で合成される。
【０２０９】
サウンド出力部６２は、バッファメモリを有し、スイッチ回路５１から供給されたサウンドデータをバッファメモリに溜め込む。そして、例えばインタラクティブグラフィクスデコーダ７７からの指示に基づき、バッファメモリに溜め込まれたサウンドデータをデコードし、出力する。出力されたサウンドデータは、加算器８３に供給され、加算器８２から出力されたオーディオストリームと合成される。サウンドデータの再生終了時刻は、例えば、サウンド出力部６２からインタラクティブグラフィクスデコーダ７７に対して通知される。なお、サウンドデータの再生と、ボタン画像の表示との協調的な制御は、より上位のコントローラ５３の命令に基づき行うようにしてもよい。
【０２１０】
バッファ６３から読み出されたテキストデータは、Ｔｅｘｔ−ＳＴコンポジション部で所定に処理され、スイッチ回路７５に供給される。
【０２１１】
上述では、再生装置１の各部がハードウェアで構成されるように説明したが、これはこの例に限られない。例えば、再生装置１をソフトウェア上の処理として実現することも可能である。この場合、再生装置１をコンピュータ装置上で動作させることができる。また、再生装置１をハードウェアおよびソフトウェアが混合された構成で実現することもできる。例えば、再生装置１における各デコーダ、特に、１ｓｔビデオデコーダ６９、２ｎｄビデオデコーダ７２など処理の負荷が他と比べて大きな部分をハードウェアで構成し、その他をソフトウェアで構成することが考えられる。
【０２１２】
再生装置１をソフトウェアのみ、または、ハードウェアおよびソフトウェアの混合により構成し、コンピュータ装置で実行させるためのプログラムは、例えばＣＤ−ＲＯＭ(Compact Disc-Read Only Memory)やＤＶＤ−ＲＯＭ(Digital Versatile Disc Read Only Memory)といった記録媒体に記録されて提供される。この記録媒体をコンピュータ装置のドライブに装填し、記録媒体上に記録されたプログラムを所定にコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。プログラムをＢＤ−ＲＯＭに記録することも考えられる。なお、コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
【０２１３】
次に、図３３および図３４を参照して、再生装置１において再生可能なディスクの一例の製造方法について説明する。図３３に一例を示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
【０２１４】
そして、図３４に示すように、ソフト製作処理部において、符号化装置（ビデオエンコーダ）で符号化された、再生装置１において再生可能な形式のビデオデータが一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが一時バッファに記憶される。また、プレゼンテーショングラフィクスデータおよびインタラクティブグラフィクスデータがそれぞれ所定に符号化され、一時バッファに記憶される。さらに、データエンコーダで符号化された、ストリーム以外のデータ（例えば、インデックス、プレイリスト、プレイアイテムなど）が一時バッファに記憶される。
【０２１５】
なお、インデックス、プレイリスト、プレイアイテムなどのストリーム以外のデータや、インタラクティブグラフィクスストリームを構成する、ＩＣＳ、ＰＤＳ、ＯＤＳなどのデータは、図示されないコンピュータ装置などで、例えばビデオデータやオーディオデータの情報を参照しつつ作成および編集され、データエンコーダに供給される。
【０２１６】
それぞれのバッファに記憶されたビデオデータ、オーディオデータ、プレゼンテーショングラフィクスデータ、インタラクティブグラフィクスデータ、ならびに、ストリーム以外のデータは、多重化器（ＭＰＸ）で同期信号と共に多重化され、誤り訂正符号回路（ＥＣＣ）でエラー訂正用のコードが付加される。そして、変調回路（ＭＯＤ）で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置１において再生可能な記録媒体２１に記録されるソフトウェアが製作される。
【０２１７】
なお、ソフト製作処理部は、周知の構成のコンピュータ装置で構成することが可能で（図示しない）、所定のプログラムに従いＣＰＵなどで全体の動作を制御することが可能である。プログラムは、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭといった記録媒体に記録されて提供される。プログラムを記録した記録媒体をコンピュータ装置に所定に装填し、プログラムをコンピュータ装置のシステムに所定にインストールすることで、コンピュータ装置においてソフトウェア製作処理部を構成することができる。
【０２１８】
このソフトウェアを必要に応じて編集（プリマスタリング）し、光ディスクに記録すべきフォーマットの信号が生成される。そして、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
【０２１９】
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
【０２２０】
この成形用金型に、例えばインジェクションなどによりＰＭＭＡ（アクリル）またはＰＣ（ポリカーボネート）などの材料を注入し、固定化させる。あるいは、金属スタンパ上に２Ｐ（紫外線硬化樹脂）などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
【０２２１】
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
【０２２２】
その後、このディスクに対して内外径の加工が施され、２枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置１などによって再生可能なデータが記録されたディスクが完成する。
【図面の簡単な説明】
【０２２３】
【図１】ＢＤ−ＲＯＭのデータモデルを概略的に示す略線図である。
【図２】インデックステーブルを説明するための略線図である。
【図３】クリップＡＶストリーム、クリップ情報、クリップ、プレイアイテムおよびプレイリストの関係を示すＵＭＬ図である。
【図４】複数のプレイリストから同一のクリップを参照する方法を説明するための略線図である。
【図５】サブパスについて説明するための略線図である。
【図６】記録媒体に記録されるファイルの管理構造を説明するための略線図である。
【図７】ＢＤ仮想プレーヤの動作を概略的に示すフローチャートである。
【図８】ＢＤ仮想プレーヤの動作を概略的に示す略線図である。
【図９】この発明の実施の一形態で画像の表示系として用いられるプレーン構造の一例を示す略線図である。
【図１０】動画プレーン、字幕プレーンおよびグラフィクスプレーンを合成する一例の構成を示すブロック図である。
【図１１】パレットに格納される一例のパレットテーブルを示す略線図である。
【図１２】ボタン画像の一例の格納形式を説明するための略線図である。
【図１３】グラフィクスプレーン上に表示されるボタン表示の一例の状態遷移図である。
【図１４】メニュー画面およびボタンの構成を概略的に示す略線図である。
【図１５】ＩＣＳのヘッダ情報の一例の構造を表すシンタクスを示す略線図である。
【図１６】ブロックinteractive_composition_data_fragemnt()の一例の構造を表すシンタクスを示す略線図である。
【図１７】ブロックpage()の一例の構造を表すシンタクスを示す略線図である。
【図１８】ブロックbutton_overlap_group()の一例の構造を表すシンタクスを示す略線図である。
【図１９】ブロックbutton()の一例の構造を表すシンタクスを示す略線図である。
【図２０】インタラクティブグラフィクスの一例のデコーダモデルを示すブロック図である。
【図２１】ＩＧストリームにより表示される一例のメニュー表示を示す略線図である。
【図２２】メインパスのプレイアイテムにより再生された動画データが動画プレーンに表示された様子を示す略線図である。
【図２３】メニュー表示とメインパスのプレイアイテムにより再生され動画プレーンに表示される動画データとを合成した一例の表示を示す略線図である。
【図２４】決定キーを操作してプルダウンメニューを表示させる例を説明するための略線図である。
【図２５】十字キーなどにより下方向を指定する操作を行ってプルダウンメニューを表示させる例を説明するための略線図である。
【図２６】十字キーなどにより下方向を指定する操作を行ってプルダウンメニューを表示させる例を説明するための略線図である。
【図２７】コマンドEnableButton()の性質について説明するための略線図である。
【図２８】この発明の実施の一形態によるメニュー表示制御を説明するための略線図である。
【図２９】この発明の実施の一形態によるメニュー表示制御の一例の処理を示すフローチャートである。
【図３０】この発明の実施の一形態によるメニュー表示制御を説明するための略線図である。
【図３１】この発明の実施の一形態によるメニュー表示制御を説明するための略線図である。
【図３２】この発明の実施の一形態に適用可能な再生装置の一例の構成を示すブロック図である。
【図３３】一例のディスク製造過程を示す略線図である。
【図３４】ソフト製作処理部の一例の構成を示すブロック図である。
【符号の説明】
【０２２４】
１  再生装置
１０  動画プレーン
１１  字幕プレーン
１２  インタラクティブグラフィクスプレーン
５０  ストレージドライブ
５１  スイッチ部
５２  ＡＶデコーダ部
５３  コントローラ
６２  サウンド出力部
７７  インタラクティブグラフィクスデコーダ
１０２  グラフィクスデコーダ
１０３  グラフィクスプレーン
１０４  ＣＬＵＴ
１１１  ストリームグラフィクスプロセッサ
１１２  ＤＢ
１１３  ＣＢ
１１４  グラフィクスコントローラ
２０１Ａ，２０１Ｂ，２０１Ｃ  ボタン
２０２  プルダウンメニュー
２０３Ａ，２０３Ｂ，２０３Ｃ  ボタン
２０４  隠しボタン
３００  ボタン
３０１  メニュー画面
３０３Ａ  通常状態を表すボタン
３０３Ｂ  選択状態を表すボタン
３０３Ｃ  実行状態を表すボタン
４０５，４０６Ａ，４０６Ｂ，４０７  ボタン
４０８，４０９  隠しボタン
４１０  ＢＯＧ
４２０  メニュー表示
【図１】
2008097691.tif 000003
【図２】
2008097691.tif 000004
【図３】
2008097691.tif 000005
【図４】
2008097691.tif 000006
【図５】
2008097691.tif 000007
【図６】
2008097691.tif 000008
【図７】
2008097691.tif 000009
【図８】
2008097691.tif 000010
【図９】
2008097691.tif 000011
【図１０】
2008097691.tif 000012
【図１１】
2008097691.tif 000013
【図１２】
2008097691.tif 000014
【図１３】
2008097691.tif 000015
【図１４】
2008097691.tif 000016
【図１５】
2008097691.tif 000017
【図１６】
2008097691.tif 000018
【図１７】
2008097691.tif 000019
【図１８】
2008097691.tif 000020
【図１９】
2008097691.tif 000021
【図２０】
2008097691.tif 000022
【図２１】
2008097691.tif 000023
【図２２】
2008097691.tif 000024
【図２３】
2008097691.tif 000025
【図２４】
2008097691.tif 000026
【図２５】
2008097691.tif 000027
【図２６】
2008097691.tif 000028
【図２７】
2008097691.tif 000029
【図２８】
2008097691.tif 000030
【図２９】
2008097691.tif 000031
【図３０】
2008097691.tif 000032
【図３１】
2008097691.tif 000033
【図３２】
2008097691.tif 000034
【図３３】
2008097691.tif 000035
【図３４】
2008097691.tif 000036