(57)【要約】  宣言型言語アプリケーション命令を使用して、対話式マルチメディアプレゼンテーションの対話式コンテンツの再生に関連するアクションが、特定のメディアオブジェクトの状態変化に基づいてトリガされる。いくつかのアプリケーション命令が、メディアオブジェクトの特徴を指定し、他のアプリケーション命令が、特徴の状態変化に基づいて対話式コンテンツの再生に関連するアクションを指定する（例えば、メディアオブジェクトがレンダリング可能であるとき、イベント生成、スクリプト実行、または変数の変化）。アプリケーション命令、メディアオブジェクト、および／または特徴に関連するノードを含む文書オブジェクトモデルなどのアプリケーションの構造化表現に照会することによって状態変化が検出される。状態変化が検出されたとき、指定のアクションのうちの１つまたは複数がトリガされ、それによって状態変化に宣言式に応答する。【選択図】図１
2009501459.tif 000002
【特許請求の範囲】
【請求項１】
状態変化に応答するようにアプリケーションを構成する方法において、前記アプリケーションが、マークアップ構成要素および少なくとも１つのスクリプト構成要素を含み、対話式マルチメディア環境でビデオストリームと同期される１つまたは複数のグラフィック要素を提供する方法であって、
ユーザによって生成されたイベントに応答して、前記マークアップ構成要素内のコンテンツ要素の少なくとも１つの状態属性を修正するステップと、
前記マークアップ構成要素を構文解析して、文書オブジェクトモデル（「ＤＯＭ」）を作成するステップと、
前記ＤＯＭを反復的に内観して、前記少なくとも１つの状態属性を取り出すステップと、
反復的内観に応答して処理をトリガし、それによって前記状態変化に応答するステップと
を含む方法。
【請求項２】
前記反復的内観が、ＸＰＡＴＨクエリを使用して実施される請求項１に記載の方法。
【請求項３】
対話式メディア環境での時間が、一続きのチックを使用してカウントされ、前記ＸＰＡＴＨクエリが、各チックで実行される請求項２に記載の方法。
【請求項４】
対話式メディア環境が、ＨＤ−ＤＶＤ、Ｂｌｕ−Ｒａｙ、Ｅｎｈａｎｃｅｄ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ、Ｄｉｇｉｔａｌ  Ｍｕｌｔｉｌａｙｅｒ  Ｄｉｓｃ、Ｈｏｌｏｇｒａｐｈｉｃ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ、Ｖｅｒｓａｔｉｌｅ  Ｍｕｌｔｉｌａｙｅｒ  Ｄｉｓｃのうちの１つから選択された光学媒体の使用によって少なくとも部分的に提供される高精細度ＤＶＤ環境を含む請求項１に記載の方法。
【請求項５】
前記少なくとも１つの状態属性が、ｆｏｒｅｇｒｏｕｎｄ、ｆｏｃｕｓｅｄ、ｐｏｉｎｔｅｒ、ａｃｔｉｏｎｅｄ、ｅｎａｂｌｅｄ、またはｖａｌｕｅのうちの１つから選択される請求項１に記載の方法。
【請求項６】
ｖａｌｕｅを除く前記少なくとも１つの状態属性のそれぞれが、真または偽として記述可能なブール属性である請求項５に記載の方法。
【請求項７】
前記状態属性の値が、バイナリ値、数値、文字列値、および所定の値の組のうちの１つから選択される請求項１に記載の方法。
【請求項８】
前記ＤＯＭが、１つまたは複数のＸＭＬ文書から作成される請求項１に記載の方法。
【請求項９】
前記処理が、前記イベントを消費することを含む請求項１に記載の方法。
【請求項１０】
前記処理が、イベントリスナの使用を介して前記少なくとも１つのスクリプト構成要素によって前記イベントを受信することを含む請求項１に記載の方法。
【請求項１１】
前記処理が、前記アプリケーションのフォーカスの変化、Ｚ順序、またはユーザイベントの受信を介して前記対話式マルチメディア環境を操作することを含む請求項１に記載の方法。
【請求項１２】
電子装置内に配設された１つまたは複数のプロセッサによって実行されるときに、対話式マルチメディア環境内のユーザイベントを処理する方法を実行する命令を含む機械可読媒体であって、前記方法が、
アプリケーションを処理するステップであって、アプリケーションの少なくとも一部が宣言型記述を使用して定義されるステップと、
前記宣言型記述を使用して文書オブジェクトモデル（「ＤＯＭ」）を生成することによって前記アプリケーションに関する実行時コンテキストを作成するステップであって、前記ＤＯＭが、複数の状態要素を含み、前記アプリケーションにインターフェースを提供し、それによって前記宣言型記述に対する修正を可能にするステップと、
ユーザイベントに応答して、前記ＤＯＭ内の前記複数の状態要素の中の１つまたは複数の状態要素を修正するステップと、
修正した状態要素に従って前記インターフェースを介して前記ユーザイベントを前記アプリケーションに送達するステップと
を含む方法であることを特徴とする機械可読媒体。
【請求項１３】
前記１つまたは複数の状態要素の前記修正が、前記複数の状態要素中の少なくとも１つの状態要素の状態属性を変更することを含む方法であることを特徴とする請求項１２に記載の機械可読媒体。
【請求項１４】
前記ＤＯＭ内のイベント要素を介して前記ユーザイベントを前記アプリケーションのスクリプト構成要素に伝播させるステップをさらに含む方法であることを特徴とする請求項１２に記載の機械可読媒体。
【請求項１５】
前記命令が第１命令および第２命令を含み、前記第１命令が、ＸＭＬコンテンツ要素に関連する属性を指定し、前記第２命令がＸＭＬタイミング要素を含む方法であることを特徴とする請求項１２に記載の機械可読媒体。
【請求項１６】
少なくとも１つのプロセッサによって実行されるソフトウェアを含む機械可読媒体であって、前記ソフトウェアが、
プレゼンテーションエンジンであって、
ａ）対話式マルチメディア環境で動作するアプリケーションの宣言型記述を復号化し、それによって複数のノードを含む文書オブジェクトモデル（「ＤＯＭ」）を生成し、
ｂ）前記ＤＯＭに照会して、前記複数のノード中のノード内に配設された要素から状態属性を取り出す
ように構成されたプレゼンテーションエンジンと、
ユーザ対話に関連するイベントを受信するために前記プレゼンテーションエンジンと動作可能に結合された入力イベントインターフェースと、
前記ＤＯＭを格納するように構成されたメモリをアドレス指定するために前記プレゼンテーションエンジンに結合されたメモリインターフェースと
を含むソフトウェアであることを特徴とする機械可読媒体。
【請求項１７】
前記プレゼンテーションエンジンが、取り出した状態属性の変化を反映するように前記ＤＯＭを修正するようにさらに構成されるソフトウェアであることを特徴とする請求項１６に記載の機械可読媒体。
【請求項１８】
前記クエリが、前記ＤＯＭ内の前記複数のノード中のノードを検査するために周期的に実行されるＸＰＡＴＨクエリを含むソフトウェアであることを特徴とする請求項１６に記載の機械可読媒体。
【請求項１９】
前記プレゼンテーションエンジンが、取り出した状態属性に従って、受信したユーザイベントを前記アプリケーションに送達するようにさらに構成されるソフトウェアであることを特徴とする請求項１６に記載の機械可読媒体。
【請求項２０】
前記プレゼンテーションエンジンが、復号化された宣言型記述から生成されたコンテンツ要素に、受信したユーザイベントを送達するようにさらに構成されるソフトウェアであることを特徴とする請求項１６に記載の機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、参照により本明細書に組み込まれる２００５年７月１日出願の仮出願第６０／６９５９４４号の特典を主張するものである。
【背景技術】
【０００２】
マルチメディアプレーヤは、ユーザによって消費されるビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツ（「マルチメディアプレゼンテーション」）の組合せをレンダリングする装置である。現在のところ、ＤＶＤプレーヤなどのマルチメディアプレーヤは、ビデオコンテンツの再生中のユーザ対話（一般には、ビデオコンテンツ再生が、再生速度調節以外のユーザ入力を受け取るために中断される）を提供する場合であったとしても、あまりそれを提供しない。例えば、ＤＶＤプレーヤのユーザは一般に、音声解説、俳優の経歴、ゲームなどの機能をユーザが選択および受領することを可能にするオプションを含むメニューに戻るために、ユーザが再生中のムービーを停止しなければならない。
【０００３】
対話式マルチメディアプレーヤは、従来型ビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツと対話式コンテンツの組合せ（「対話式マルチメディアプレゼンテーション」）を同時にレンダリングする装置である（そのような装置は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができる）。任意のタイプの装置が対話式マルチメディアプレーヤとなることができるが、商業的に価値のある対話式マルチメディアプレゼンテーションの作成およびそれを求める消費者要求を可能にするように、光学式メディアプレーヤ（例えば、ＤＶＤプレーヤ）、コンピュータ、および他の電子装置が特によく配置される。それらは、大量の比較的安価なポータブルデータストレージへのアクセスを提供するからである。
【０００４】
対話式コンテンツは一般に、単独で、あるいは他のビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツと同時に提示可能な任意のユーザ選択可能な可視オブジェクトまたは可聴オブジェクトである。可視オブジェクトの１つの種類は、ビデオコンテンツ内のある物、例えばムービー中に現れる人、車、または建物を識別および／または追従するのに使用することのできる円などのグラフィカルオブジェクトである。可聴オブジェクトの１つの種類は、リモートコントロールやマウスなどの装置を使用して円などの可視オブジェクトをユーザが選択したことを示すために再生されるクリック音である。対話式コンテンツの他の例は、限定はしないが、メニュー、キャプション、およびアニメーションを含む。
【０００５】
対話式マルチメディアプレーヤおよび対話式マルチメディアプレゼンテーションへの投資を高めるために、対話式マルチメディアプレゼンテーションの対話式コンテンツ構成要素とそのようなプレゼンテーションの従来型ビデオコンテンツ構成要素、オーディオコンテンツ構成要素、またはデータコンテンツ構成要素との正確な同期を保証することが望ましい。正確な同期は、ビデオコンテンツ構成要素、オーディオコンテンツ構成要素、またはデータコンテンツ構成要素の予測可能でグリッチのない再生を優先する。例えば、円がムービー中の車の周りに提示されるとき、ムービーは一般に、円が描かれるのを待つために休止すべきではなく、円は、車が移動するときに車に追従すべきである。
【０００６】
多くの対話式マルチメディア環境が、「シン（ｔｈｉｎ）」プレーヤ、すなわち、しばしばコスト上の理由で、処理能力、メモリ、および他の資源に関して意図的に資源が制約されたコンピューティングプラットフォーム上で現在実装されており、または実装が予定されている。利用可能な資源を効率的に利用するために、プレーヤ上で動作するアプリケーションが宣言型の手法を使用することが望ましい可能性があり、しばしばその結果、より単純でプロセッサインテンシブ（ｐｒｏｃｅｓｓｏｒ  ｉｎｔｅｎｓｉｖｅ）でないプログラミングが得られる。
【０００７】
宣言型プログラミングパラダイムでは、所望の結果を達成するのに必要なセマンティクスが、結果の記述において暗黙的である。通常、所望の結果を得るのに別々の手続きを提供する（すなわち、スクリプトを書き、実行可能コードを埋め込む）ことは不要である。アプリケーション作者は、宣言型プログラミングを使用して、通常はアサーションの形で表現される宣言型コンテンツを生成する。
【０００８】
例えば、ウェブページは、ページが何に見えるべきか、例えばタイトル、フォント、テキスト、イメージを記述するが、実際にどのようにグラフィックスおよびウェブページをコンピュータディスプレイ上にレンダリングするかを記述しないので、ウェブページは多くの場合宣言型であると考えられる。ブラウザや対話式メディアプレーヤアプリケーションなどの別のアプリケーションは、宣言型コンテンツを取り、作者の目的に合致するようにグラフィックスをレンダリングする。
【０００９】
宣言型手法は、対話式メディアプレーヤを制御または操作するために実行すべきアルゴリズムをプログラマが指定することが一般に必要となる、Ｆｏｒｔｒａｎ、Ｃ、Ｊａｖａなどの従来型言語を使用する手続型手法（「命令型」手法とも呼ばれる）とは対照的である。したがって、宣言型プログラムは目標を明示的にし、アルゴリズムを暗黙的なまま残し、一方、命令型プログラムはアルゴリズムを明示的にし、目標を暗黙的なまま残す。アプリケーションは純粋に宣言型または純粋に手続型である必要はないことに留意されたい。宣言型アプリケーションはしばしば、それ自体手続型の性質を持つスクリプトを利用し、手続型オブジェクトを宣言型アプリケーションに埋め込むことができる。
【００１０】
宣言型プログラミング言語の一般的な例は、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）およびＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を含む。これらはどちらも、テキストと「タグ」と呼ばれるテキストを補足または記述する情報とを組み合わせるマークアップ言語である。ＸＭＬは、許可された用途に関して記述および定義されるタグのユーザ作成をサポートすることによる拡張性のために、グラフィックス、ユーザインターフェース、ウェブサービス（電子ショッピングやウェブ検索など）、および他の機能を作成するのにますます使用されつつある新しい言語である。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、ＸＭＬは、アプリケーションがユーザに対する対話式の体験を生成するための柔軟かつ直接的なツールを提供する。しかし、マークアップ言語に固有の宣言型の性質のために、現在のところ、対話式マルチメディア環境の変化に応答することのできるアプリケーションを作者が書くことは難しいことがある。すなわち、対話式マルチメディアは通常、プレーヤ上で動作するアプリケーションの状態がビデオコンテンツが進行するときに変化し、システム（すなわちプレーヤとそのアプリケーション）がユーザ入力などのイベントを受け取る動的環境で動作する。したがって、多くの対話式マルチメディア構成は非常に満足に実施されるが、高程度の資源効率を維持しながら、宣言型手法を使用する構成が環境の状態変化を取り込み、それに応答することができることが依然として望ましい。
【００１２】
特許請求される対象は、特定の対話式マルチメディアプレゼンテーションシステムまたはその態様の欠点のいずれかまたはすべてを解決する実装に限定されないことを理解されよう。
【課題を解決するための手段】
【００１３】
宣言型言語アプリケーション命令を使用して、対話式マルチメディアプレゼンテーションの対話式コンテンツを再生することに関連するアクションが、特定のメディアオブジェクトの状態変化に基づいて条件付きでトリガされる。メディアオブジェクトは、例えば、対話式マルチメディアプレゼンテーションで通常はビデオと同時に提示されるユーザ選択可能な可視オブジェクトまたは可聴オブジェクトを含む。ある宣言型アプリケーション命令は、メディアオブジェクトの特徴を指定し、別の宣言型アプリケーション命令は、１つまたは複数の属性状態変化に基づく対話式コンテンツの再生またはレンダリングに関連するアクションを指定する。ある例示的実施例では、アプリケーション命令、メディアオブジェクト、および／または特徴に関連するノードを含む、文書オブジェクトモデル（「ＤＯＭ」）などのアプリケーションの構造化表現に照会することによって実施例に状態変化が検出される。状態変化が検出されたとき、指定のアクションのうちの１つまたは複数がトリガされ、それによって状態変化に対して宣言式に応答する。
【００１４】
例示的実施例では、コンテンツ要素属性が、ＤＯＭとして構成され、ＸＰＡＴＨクエリを使用して反復的に内観されるｆｏｒｅｇｒｏｕｎｄ、ｅｎａｂｌｅｄ、ｆｏｃｕｓｅｄ、ａｃｔｉｏｎｅｄ、ポインタ、および値から選択されたものを含む。これらの属性に関連する値は通常、対話式メディアプレゼンテーションの途中に変化し、そのような値は、ユーザ対話またはイベントが対話式マルチメディアプレゼンテーションで動作するアプリケーションにどのように配布されるかを決定する。
【００１５】
この概要は、概念の抜粋を単純化した形で導入するために与えられる。この概念は、発明を実施するための最良の形態のセクションでさらに説明される。この概要に記載されたもの以外の要素またはステップが可能であり、要素またはステップは、必ずしも必要であるわけではない。この概要は、特許請求される対象の主な特徴または不可欠な特徴を識別するためのものではなく、特許請求される対象の範囲を決定する際の助けとして使用するためのものでもない。
【発明を実施するための最良の形態】
【００１６】
一般には、対話式マルチメディアプレゼンテーションは、ビデオコンテンツ構成要素および対話式コンテンツ構成要素を含む。ビデオコンテンツ構成要素を例示のためにムービーと呼ぶが、実際には、ビデオコンテンツ構成要素はビデオ、オーディオ、データ、またはそれらの任意の組合せでよい。
【００１７】
タイミング信号に基づく速度での対話式コンテンツマネージャによるレンダリングのために配置される、プレゼンテーションの対話式コンテンツ構成要素は、１つまたは複数のアプリケーションの形である。アプリケーションは、宣言型形式（例えばＸＭＬ「マークアップ」）またはスクリプト形式の命令を含む。アプリケーション命令が、しばしばビデオコンテンツ構成要素を伴う、ユーザに対するメディアオブジェクトのプレゼンテーションを編成、フォーマット、および同期するために提供される。アプリケーションのスクリプト構成要素とマークアップ構成要素はどちらも、それぞれスクリプトＡＰＩ（アプリケーションプログラミングインターフェース）またはマークアップＡＰＩを使用することによって様々な方法またはサービスを起動することができる。
【００１８】
本明細書で議論される方法、システム、機器、および製品は、宣言型形式のアプリケーション命令を使用して、対話式マルチメディアプレゼンテーションの対話式コンテンツ構成要素を再生することに関連するアクションをトリガする。上述のように使用可能なアプリケーション命令の例は、マークアップ要素および属性を含む。メディアオブジェクトに関連するコンテンツ要素のスタイル属性または非スタイル属性によってメディアオブジェクトの特徴を指定することができる。１つまたは複数のＸＭＬスキーマによっていくつかの有用な属性が定義される。例えば、ＤＶＤ  Ｆｏｒｕｍによって公表された１つまたは複数のＸＭＬスキーマは、対話式高精細度ＤＶＤムービーの再生中に受信されたユーザ入力に基づいて値を変更する属性を記述する。タイミング要素、スタイル要素、およびアニメーション要素内で、対話式コンテンツの再生に関連するアクションをさらに指定することができる。このようにして使用可能ないくつかの要素が、ＤＶＤ  Ｆｏｒｕｍによって公表されたＸＭＬスキーマに記述される。
【００１９】
Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（「Ｗ３Ｃ」）によって発行されたＳｙｎｃｈｒｏｎｉｚｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ（「ＳＭＩＬ」）に関するＸＭＬスキーマによって他の要素が定義される。ＸＰＡＴＨクエリを使用して、ＤＯＭｓなどのアプリケーションの構造化表現に照会し、属性の値およびそのような値の変化を検出することができる。
【００２０】
次に、同様の番号が同様の構成要素を示す図面を参照すると、図１は、対話式マルチメディアプレゼンテーションシステム（「プレゼンテーションシステム」）１００の単純化した機能ブロック図である。プレゼンテーションシステム１００は、オーディオ／ビデオコンテンツ（「ＡＶＣ」）マネージャ１０２、対話式コンテンツ（「ＩＣ」」）マネージャ１０４、プレゼンテーションマネージャ１０６、タイミング信号管理ブロック１０８、およびミキサ／レンダラ１１０を含む。一般に、設計の選択は、プレゼンテーションシステム１００の特定の機能がどのように実装されるかを決定する。ハードウェア、ソフトウェア、またはファームウェア、あるいはそれらの組合せを使用してそのような機能を実装することができる。
【００２１】
動作の際に、プレゼンテーションシステム１００は、対話式マルチメディアプレゼンテーションコンテンツ（「プレゼンテーションコンテンツ」）１２０を処理する。プレゼンテーションコンテンツ１２０は、ビデオコンテンツ構成要素（「ビデオ構成要素」）１２２および対話式コンテンツ構成要素（「ＩＣ構成要素」）１２４を含む。必ずというわけではないが、ビデオ構成要素１２２およびＩＣ構成要素１２４は一般に、それぞれＡＶＣマネージャ１０２およびＩＣマネージャ１０４によって別々のデータストリームとして処理される。
【００２２】
プレゼンテーションシステム１００はまた、ユーザ（図示せず）に対するプレゼンテーションコンテンツ１２０の再生プレゼンテーション１２７としてのプレゼンテーションも実施する。再生プレゼンテーション１２７は、ミキサ／レンダラ１１０によって生成され、ディスプレイやスピーカ（図示せず）などの装置を介してユーザが受信可能であるプレゼンテーションコンテンツ１２０に関連する可視情報および／または可聴情報を表す。議論のために、プレゼンテーションコンテンツ１２０および再生プレゼンテーション１２７が任意のフォーマットの高精細度ＤＶＤムービーコンテンツを表すと仮定する。しかし、プレゼンテーションコンテンツ１２０および再生プレゼンテーション１２７は現在周知の、または後に開発される任意のタイプの対話式マルチメディアプレゼンテーションでよいことを理解されよう。
【００２３】
ビデオ構成要素１２２は、プレゼンテーションコンテンツ１２０の従来型ビデオ構成要素、オーディオ構成要素、またはデータ構成要素を表す。例えば、ムービーは一般に１つまたは複数のバージョン（例えば、熟年の聴衆向けのバージョン、若い聴衆向けのバージョン）、各タイトルに関連する１つまたは複数のチャプタ（図示せず）を有する１つまたは複数のタイトル１３１（以下でプレゼンテーションマネージャ１０６に関連してタイトルをさらに論じる）、１つまたは複数のオーディオトラック（例えば、１つまたは複数の言語で、字幕付きまたは字幕なしでムービーを再生することができる）、およびディレクタの解説、追加の場面、予告編などの追加の機能を有する。タイトルとチャプタの区別は純粋に論理的な区別であることを理解されよう。例えば、単一の認識されるメディアセグメントは単一のタイトル／チャプタの一部でよく、または複数のタイトル／チャプタから構成することができる。適用可能な論理的区別の決定は、コンテンツオーサリングソース次第である。ビデオ構成要素１２２をムービーと呼ぶが、実際にはビデオ構成要素１２２はビデオ、オーディオ、データ、またはそれらの組合せでよいことも理解されよう。
【００２４】
ビデオ構成要素１２２を形成するビデオ、オーディオ、またはデータのサンプルのグループをクリップ１２３と呼ぶ（クリップ１２３がビデオ構成要素１２２、ＡＶＣマネージャ１０２、およびプレイリスト１２８内に示されている）。ＡＶＣマネージャ１０２を参照すると、クリップ１２３に関連する情報が１つまたは複数のメディアソース１６０から受信され、デコーダブロック１６１で復号化される。メディアソースは、ビデオ、オーディオ、またはデータが導出され、または得られる任意の装置、位置、またはデータである。メディアソースの例は、限定はしないが、特定のビデオ、オーディオ、またはデータの格納位置を参照するネットワーク、ハードドライブ、光学的媒体、代替物理ディスク、およびデータ構造を含む。
【００２５】
デコーダブロック１６１は、メディアソース１６０から受信される情報から、レンダリング可能なビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツを取り出すのに使用される任意の装置、技法、またはステップを表す。デコーダブロック１６１は、例えばエンコーダ／デコーダ対、デマルチプレクサ、またはデクリプタを含むことができる。デコーダとメディアソースとの間の１対１の関係が示されているが、１つのデコーダが複数のメディアソースにサービスすることができ、逆も同様であることを理解されよう。
【００２６】
オーディオ／ビデオコンテンツデータ（「Ａ／Ｖデータ」）１３２は、ＡＶＣマネージャ１０２によるレンダリングのために準備され、ミキサ／レンダラ１１０に送信されたビデオ構成要素１２２に関連するデータである。Ａ／Ｖデータ１３４のフレームは一般に、各アクティブクリップ１２３について、クリップの一部のレンダリングを含む。特定のフレームでレンダリングされるクリップの厳密な部分または量は、クリップのビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツの特徴、あるいはクリップを符号化または復号化するのに使用されるフォーマット、技法、またはレートなどのいくつかの要素に基づく可能性がある。
【００２７】
再びプレゼンテーションコンテンツ１２０を参照すると、ＩＣ構成要素１２４は、ユーザ選択可能な可視オブジェクトまたは可聴オブジェクトであり、任意選択でビデオ構成要素１２２と同時に提示可能であるメディアオブジェクト１２５と、可視オブジェクトまたは可聴オブジェクトを提示するための任意の命令（アプリケーション１５５として図示し、以下でさらに論じる）とを含む。メディアオブジェクト１２５は静的でよく、またはアニメーション化することができる。メディアオブジェクトの例はとりわけ、ビデオサンプルまたはクリップ、オーディオサンプルまたはクリップ、グラフィックス、テキスト、およびそれらの組合せを含む。
【００２８】
メディアオブジェクト１２５は１つまたは複数のソース（図示せず）から発信される。ソースは、メディアオブジェクトが導出され、または得られる任意の装置、位置、またはデータである。メディアオブジェクト１２５に関するソースの例は、限定はしないが、特定のメディアオブジェクトの格納位置を参照するネットワーク、ハードドライブ、光学媒体、代替物理ディスク、およびデータ構造を含む。メディアオブジェクト１２５のフォーマットの例は、限定はしないが、ｐｏｒｔａｂｌｅ  ｎｅｔｗｏｒｋ  ｇｒａｐｈｉｃｓ（「ＰＮＧ」）、ｊｏｉｎｔ  ｐｈｏｔｏｇｒａｐｈｉｃ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ（「ＪＰＥＧ」）、ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ（「ＭＰＥＧ」）、ｍｕｌｔｉｐｌｅ−ｉｍａｇｅ  ｎｅｔｗｏｒｋ  ｇｒａｐｈｉｃｓ（「ＭＮＧ」）、ａｕｄｉｏ  ｖｉｄｅｏ  ｉｎｔｅｒｌｅａｖｅ（「ＡＶＩ」）、ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（「ＸＭＬ」）、ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（「ＨＴＭＬ」）、ｅｘｔｅｎｓｉｂｌｅ  ＨＴＭＬ（「ＸＨＴＭＬ」）、ｅｘｔｅｎｓｉｂｌｅ  ｓｔｙｌｅｓｈｅｅｔ  ｌａｎｇｕａｇｅ（「ＸＳＬ」）、およびＷＡＶを含む。
【００２９】
アプリケーション１５５は、プレゼンテーションシステム１００がそれによってユーザにメディアオブジェクト１２５を提示する機構を提供する。アプリケーション１５５は、データに対する所定のオペレーションを電子的に制御する任意の信号処理方法または格納命令を表す。議論のために、ＩＣ構成要素１２４は、図２および３を参照しながら以下でさらに論じる３つのアプリケーション１５５を含むと仮定する。第１アプリケーションは、ムービーの前に著作権表示を提示し、第２アプリケーションは、ムービーの視覚的側面と同時に、複数のユーザ選択可能項目を有するメニューを提供する一定のメディアオブジェクトを提示し、第３アプリケーションは、ムービー内に現れる１つまたは複数の項目（例えば人、車、建物、または製品）を識別および／または追従するのに使用することのできるグラフィックオーバーレイ（円など）を提供する１つまたは複数のメディアオブジェクトを提示する。
【００３０】
対話式コンテンツデータ（「ＩＣデータ」）１３４は、ＩＣマネージャ１０４によるレンダリングのために準備され、ミキサ／レンダラ１１０に送信されたＩＣ構成要素１２４に関連するデータである。各アプリケーションは、アプリケーションをレンダリングすることに関連する１つまたは複数の作業項目（図示せず）を保持する関連キュー（図示せず）を有する。
【００３１】
ＡＶＣマネージャ１０４とＩＣマネージャ１０２の両方と通信するように構成されるプレゼンテーションマネージャ１０６は、プレゼンテーションコンテンツ１２０の処理、およびユーザに対する再生プレゼンテーション１２７のプレゼンテーションを実施する。プレゼンテーションマネージャ１０６は、プレイリスト１２８へのアクセスを有する。プレイリスト１２８はとりわけ、ユーザに提示可能なクリップ１２３の時間順のシーケンスおよびアプリケーション１５５（メディアオブジェクト１２５を含む）を含む。１つまたは複数のタイトル１３１を形成するようにクリップ１２３およびアプリケーション１５５／メディアオブジェクト１２５を構成することができる。例示のために、１つのタイトル１３１が本明細書で議論される。プレイリスト１２８は、ｅｘｔｅｎｓｉｂｌｅ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（「ＸＭＬ」）文書、または別のデータ構造を使用して実装することができる。
【００３２】
プレゼンテーションマネージャ１０６は、プレイリスト１２８を使用して、タイトル１３１に関するプレゼンテーションタイムライン１３０を確認する。概念上、プレゼンテーションタイムライン１３０は、特定のクリップ１２３およびアプリケーション１５５がユーザに提示可能である、タイトル１３１内の時間を示す。クリップ１２３のプレゼンテーションとアプリケーション１５５との間の例示的関係を示すサンプルプレゼンテーションタイムライン１３０が、図２に関連して図示され、議論される。ある環境では、プレイリスト１２８および／またはプレゼンテーションタイムライン１３０を使用してビデオコンテンツタイムライン（「ビデオタイムライン」）１４２および対話式コンテンツタイムライン（「ＩＣタイムライン」）１４４を確認することも有用である。
【００３３】
プレゼンテーションマネージャ１０６は、限定はしないがプレゼンテーションタイムライン１３０についての情報を含む情報をＡＶＣマネージャ１０２およびＩＣマネージャ１０４に提供する。プレゼンテーションマネージャ２０６からの入力に基づいて、ＡＶＣマネージャ１０２は、レンダリングのためのＡ／Ｖデータ１３２を準備し、ＩＣマネージャ１０４は、レンダリングのためのＩＣデータ１３４を準備する。
【００３４】
タイミング信号管理ブロック１０８は様々なタイミング信号１５８を生成し、それが、それぞれＡＶＣマネージャ１０２およびＩＣマネージャ１０４によるＡ／Ｖデータ１３２およびＩＣデータ１３４の準備および生成のためのタイミングを制御するのに使用される。具体的には、Ａ／Ｖデータ１３２およびＩＣデータ１３４のフレームレベル同期を達成するのにタイミング信号１５８が使用される。タイミング信号管理ブロック１０８およびタイミング信号１５８の詳細を、図４に関連して以下でさらに論じる。
【００３５】
ミキサ／レンダラは、ビデオ平面（図示せず）内でＡ／Ｖデータ１３２をレンダリングし、グラフィックス平面（図示せず）内でＩＣデータ１３４をレンダリングする。必ずというわけではないが、グラフィックス平面が一般にビデオ平面上に重ねられ、ユーザに対する再生プレゼンテーション１２７が生成される。
【００３６】
引き続き図１を参照すると共に、図２は、プレイリスト１２８内のタイトル１３１に関するサンプルプレゼンテーションタイムライン１３０の図である。時間が水平軸２２０上に示されている。ビデオ構成要素１２２（クリップ１２３が示されている）およびＩＣ構成要素１２４（メディアオブジェクト１２５を提示するアプリケーション１５５が示されている）についての情報が垂直軸２２５上に示されている。ビデオ構成要素１２２に関して、第１ビデオクリップ（「ビデオクリップ１」）２３０と第２ビデオクリップ（「ビデオクリップ２」）２５０の２つのクリップ１２３が示されている。
【００３７】
図１に関連して上記で述べたように、ＩＣ構成要素１２４に関して、第１アプリケーションは、著作権表示２６０を含む１つまたは複数のメディアオブジェクト（例えばイメージおよび／またはテキスト）を提示する任を担う。第２アプリケーションは、メニュー２８０のユーザ選択可能項目（例えば関連するテキストまたはグラフィックスを伴うボタン）を提供する一定のメディアオブジェクトを提示する任を担う。第３アプリケーションは、グラフィックオーバーレイ２９０を提供する１つまたは複数のメディアオブジェクトを提示する任を担う。図示するように、メニュー２８０が、ビデオクリップ１  ２３０およびビデオクリップ２  ２５０と同時に表示され、グラフィックオーバーレイ２９０は、ビデオクリップ１  ２３０およびメニュー２８０と同時に表示可能である。
【００３８】
タイトル１３１がユーザに提示可能である、水平軸２２０に沿う特定の時間量は、タイトル１３１の再生期間２９２と呼ばれる。再生期間２９２内の特定の時間はタイトル時間と呼ばれる。４つのタイトル時間（「ＴＴ」）ＴＴ１  ２９３、ＴＴ２  ２９４、ＴＴ３  ２９５、ＴＴ４  ２９６がプレゼンテーションタイムライン１３０上に示されている。タイトルを１回再生することができ、または（例えばループ式に）複数回再生することができるので、再生期間２９２は、タイトル１３１の１回の反復に基づいて求められる。限定はしないが所定の再生速度（例えば通常の再生速度または１ｘ再生速度）、所定のフレームレート、または所定のタイミング信号ステータスを含む任意の所望の基準に関して再生期間２９２を求めることができる。再生速度、フレームレート、およびタイミング信号は図４に関連して以下でさらに論じる。
【００３９】
ディスプレイ技法や、各タイトルについてのクリップおよびメディアオブジェクト間の再生シーケンスおよびタイミング関係に関する特定の規則などの実装特有の要素が、タイトルの再生期間およびその中のタイトル時間の厳密な値に影響を及ぼす可能性があることを理解されよう。再生期間およびタイトル時間という用語は、すべてのそのような実装特有の詳細を包含するものとする。
【００４０】
ＩＣ構成要素１２４に関連するコンテンツが提示可能であるタイトル時間／その時間内で提示可能であるタイトル時間は一般に所定のものであるが、再生プレゼンテーション１２７が再生中である間のユーザ入力のみに基づいてユーザがそのようなコンテンツと対話するときに行われるアクションを決定できることを理解されよう。例えば、ユーザは、再生プレゼンテーション１２７の再生中に、一定のアプリケーション、メディアオブジェクト、および／またはそれに関連する追加のコンテンツを選択、活動化、または非活動化することができる。
【００４１】
再生期間２９２内の他の時間および／または期間も本明細書で定義され、論じられる。ビデオ構成要素１２２に関連する特定のコンテンツが再生される再生期間２９２の開始時間および終了時間によってビデオプレゼンテーション間隔２４０が定義される。例えば、ビデオクリップ１  ２３０は、タイトル時間ＴＴ２  ２９４とＴＴ４  ２９６の間のプレゼンテーション間隔２４０を有し、ビデオクリップ２  ２５０は、タイトル時間ＴＴ３  ２９５とＴＴ４  ２９６との間のプレゼンテーション間隔２４０を有する。アプリケーションプレゼンテーション間隔、アプリケーション再生期間、ページプレゼンテーション間隔、およびページ期間も、図３に関連して以下で定義され、論じられる。
【００４２】
引き続き図１および２を参照すると共に、図３は、単一アプリケーション１５５の機能ブロックダイアグラムである。アプリケーション１５５は一般に、メディアオブジェクト２６０、２８０、および２９０（図２に示す）を提示する任を担うアプリケーションを表す。アプリケーション１５５は、コンテンツ命令３０２、タイミング命令３０６、スクリプト命令３０８、スタイル命令３１０、メディアオブジェクト命令３１２、およびイベント命令３６０を含む命令３０４（以下でさらに論じる）を含む。アプリケーション１５５は、０個以上の資源パッケージデータ構造３４０（以下でさらに論じる）、アプリケーション再生期間３２０、および１つまたは複数のアプリケーションプレゼンテーション間隔３２１と関連付けられている。
【００４３】
アプリケーション再生期間３２０は、アプリケーション１５５に関連するメディアオブジェクト１２５が再生プレゼンテーション１２７の受信側に提示可能であり、かつ／または再生プレゼンテーション１２７の受信側で選択可能である再生期間２９２の量（一部またはすべて）に関する特定の時間量である。例えば図２の状況では、著作権表示２６０の任を担うアプリケーション１５５は、ＴＴ１  ２９３とＴＴ２  ２９４との間の時間量から構成されるアプリケーション再生期間を有する。メニュー２８０の任を担うアプリケーションは、ＴＴ２  ２９４とＴＴ４  ２９６との間の時間量から構成されるアプリケーション再生期間を有する。グラフィカルオーバーレイ２９０の任を担うアプリケーションは、ＴＴ２  ２９４とＴＴ３  ２９５との間の時間量から構成されるアプリケーション再生期間を有する。
【００４４】
特定のアプリケーションに関連するアプリケーション再生期間３２０がプレゼンテーションタイムライン上に概念化されるときに得られる開始タイトル時間および終了タイトル時間によって定義される間隔は、アプリケーションプレゼンテーション間隔３２１と呼ばれる。例えば、図２を参照すると、著作権表示２６０の任を担うアプリケーションは、ＴＴ１  ２９３で始まり、ＴＴ２  ２９４で終了するアプリケーションプレゼンテーション間隔を有し、メニュー２８０の任を担うアプリケーションは、ＴＴ２  ２９４で始まり、ＴＴ４  ２９６で終了するアプリケーションプレゼンテーション間隔を有し、グラフィックオーバーレイ２９０の任を担うアプリケーションは、ＴＴ２  ２９４で始まり、ＴＴ３  ２９５で終了するアプリケーションプレゼンテーション間隔を有する。
【００４５】
再び図３を参照すると、ある場合には、アプリケーション１５５が複数のページを有することがある。ページは、特定のアプリケーション再生期間３２０および／またはアプリケーションプレゼンテーション間隔３２１と同時発生的に提示可能な１つまたは複数のメディアオブジェクトの論理グループである。初期ページ３３０および後続のページ３３５が示されている。各ページは、それ自体のページ期間を有する。ページ期間は、特定のページに関連するメディアオブジェクトがユーザに提示可能である（かつ／またはユーザによって選択可能である）アプリケーション再生期間３２０の量（一部またはすべて）に関する特定の時間量である。図示するように、初期ページ３３０はページ期間３３２を有し、後続のページ３３５はページ期間３３７を有する。
【００４６】
特定のページに関連するメディアオブジェクトを同時に、逐次に、またはその組合せとして提示することができる。図示するように、初期ページ３３０は、関連する初期メディアオブジェクト３３１を有し、後続のページ３３５は、関連するメディアオブジェクト３３６を有する。特定のページに関連するページ期間がプレゼンテーションタイムライン（図２参照）上に概念化されるときに得られる開始タイトル時間および終了タイトル時間によって定義される間隔は、ページプレゼンテーション間隔３４３と呼ばれる。ページプレゼンテーション間隔３４３は、特定のメディアオブジェクト３３１、３３６が提示可能であるアプリケーションプレゼンテーション間隔３２１のサブインターバルである。特定のメディアオブジェクトプレゼンテーション間隔３４５もページプレゼンテーション間隔３４３内で定義することができる。
【００４７】
所与のタイトルに関連するアプリケーションおよびページの数、および各アプリケーションまたはページに関連するメディアオブジェクトは一般に、設計の選択の問題である論理的区別である。例えば、特定の初期ページの指定は不要であり、アプリケーションの複数のページを同時に提示することができ、またはアプリケーションをページなし（または何も含まない初期ページ）で開始することができる。アプリケーションおよびスクリプトをそのままに保ちながら、アプリケーションのページをロードおよびアンロードすることができる。アプリケーションの実行中にメモリにロードされるアプリケーションに関連する資源の数または量を管理する（例えば制限する）ことが望ましいときに、複数のページを使用することができる。アプリケーションに関する資源は、アプリケーションで使用されるメディアオブジェクト、ならびにメディアオブジェクトをレンダリングするための命令３０４を含む。例えば、複数のページを有するアプリケーションが提示可能であるとき、アプリケーションの現在提示可能なページに関連する資源のみをメモリにロードすることのみが可能であることがある。
【００４８】
資源パッケージデータ構造３４０は、アプリケーション資源のメモリへのロードを実施するのに使用される（任意選択で、アプリケーションの実行前）。資源パッケージデータ構造３４０は、そのアプリケーションに関する資源が配置されるメモリ位置を参照する。資源パッケージデータ構造３４０を、任意の望ましい位置に、資源パッケージデータ構造３４０が参照する資源と一緒に、または別々に格納することができる。例えば、高精細度ＤＶＤなどの光学媒体上の、ビデオ構成要素１２２とは別々のエリア内に資源パッケージデータ構造３４０を配設することができる。あるいは、ビデオ構成要素１２２に資源パッケージデータ構造３４０を埋め込むこともできる。別の代替実施形態では、資源パッケージデータ構造をリモートに配置することができる。リモート位置の一例はネットワークサーバである。アプリケーション実行のための資源の、アプリケーション間の移行を処理することに関するトピックスは、本明細書では詳細には論じられない。
【００４９】
アプリケーション１５５自体を再び参照すると、命令３０４は、実行されたとき、ユーザ入力に基づいて、アプリケーション１５５に関連するメディアオブジェクト１２５のレンダリングに関するタスクを実行する。ユーザ入力（またはその結果）の１タイプはユーザイベントである。ユーザイベントは、ＩＣ構成要素１２４に関する再生プレゼンテーション１２７の受信側によって開始されるアクションまたはオカレンスである。必ずというわけではないが、ユーザイベントは一般に非同期である。ユーザイベントの例は、限定はしないが、メニュー２８０内のボタンの選択や、グラフィカルオーバーレイ２９０に関連する円の選択などの、再生プレゼンテーション１２７内のメディアオブジェクトとのユーザ対話を含む。そのような対話は、キーボード、リモートコントロール、マウス、スタイラス、またはボイスコマンドを含む、現在周知の、または後に開発される任意のタイプのユーザ入力装置を使用して行うことができる。アプリケーション１５５は、システムイベント、文書オブジェクトモデルイベント、または他のタイプのイベントなどの、ユーザイベント以外のイベントに応答できることを理解されよう。
【００５０】
一実装では、命令３０４は、コンピュータ可読媒体内に符号化されたコンピュータ実行可能命令である（図８および９に関連して以下でさらに論じる）。本明細書に記載の例では、命令３０４は、スクリプト３０８またはマークアップ要素３０２、３０６、３１０、３１２、３６０を使用して実装される。スクリプトまたはマークアップ要素を単独で使用することができるが、一般には、スクリプトおよびマークアップ要素の組合せにより、高精細度ＤＶＤムービーのための包括的な１組の対話機能の作成が可能となる。
【００５１】
スクリプト３０８は、命令型プログラミング言語などの非宣言型プログラミング言語で書かれた命令３０４を含む。命令型プログラミング言語は、プロセッサで実行すべきコマンドのシーケンスによって計算を記述する。スクリプト３０８が使用されるほとんどの場合に、ユーザイベントに応答するためにスクリプトが使用される。しかし、マークアップ要素を単独で使用して容易かつ効率的には実装されない問題を処理するなどの他の状況で、スクリプト３０８は有用である。そのような状況の例は、システムイベント、状態管理、および資源管理（例えば、キャッシュされた資源または永続的に格納された資源へのアクセス）を含む。一実装では、スクリプト３０８は、ＥＣＭＡ  ＩｎｔｅｒｎａｔｉｏｎａｌによってＥＣＭＡ−２６２仕様で定義されたＥＣＭＡＳｃｒｉｐｔである。ＥＣＭＡ−２６２に含まれる一般的なスクリプティングプログラミング言語は、ＪａｖａＳｃｒｉｐｔおよびＪＳｃｒｉｐｔを含む。ある設定では、ＥＣＭＡ−３２７などのＥＣＭＡＳｃｒｉｐｔ２６２のサブセットを使用してスクリプト３０８を実装することが望ましいことがある。
【００５２】
マークアップ要素３０２、３０６、３１０、３１２、および３６０は、Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ（「ＸＭＬ」）などの宣言型プログラミング言語で書かれた命令３０４を表す。ＸＭＬでは、要素は、ＸＭＬ文書内のｓｔａｒｔタグおよびｅｎｄタグを使用して定義された情報の論理単位である。ＸＭＬ文書は、構文解析済みデータまたは未構文解析データを含むエンティティと呼ばれる（コンテナとも呼ばれる）記憶単位から構成されるデータオブジェクトである。構文解析済みデータは文字から構成され、その一部は文字データを形成し、その一部はマークアップを形成する。マークアップは、文書の記憶レイアウトおよび論理構造の記述を符号化する。ＸＭＬ文書内には１つのルート要素があり、ルート要素の部分は、他のどんな要素のコンテンツ内にも現れない。すべての他の要素について、ｓｔａｒｔタグおよびｅｎｄタグは、他の要素のコンテンツ内にあり、互いにネストされる。
【００５３】
ＸＭＬスキーマは、ＸＭＬ文書のクラスの構文の定義である。一部のＸＭＬスキーマは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（「Ｗ３Ｃ」）によって定義され、他のＸＭＬスキーマは、ＤＶＤ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  ｆｏｒ  Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｖｉｄｅｏに準拠するＸＭＬ文書と共に使用するため、および他の用途のためにＤＶＤ  Ｆｏｒｕｍによって公表されている。高精細度ＤＶＤムービー用の他のスキーマ、ならびに他の対話式マルチメディアプレゼンテーション用のスキーマも可能であることを理解されよう。
【００５４】
高レベルでは、ＸＭＬスキーマは、（１）要素名を要素タイプと関連付けるグローバル要素宣言と、（２）そのタイプの要素に関する属性、サブエレメント、および文字データを定義するタイプ定義を含む。要素の属性は、以下で説明するスタイルプロパティや状態プロパティなどの要素の特定のプロパティを名前／値対を使用して指定し、１つの属性が単一の要素プロパティを指定する。
【００５５】
イベント要素３６０を含むことのできるコンテンツ要素３０２は、アプリケーション１５５によってユーザに提示可能な特定のメディアオブジェクト要素３１２を識別するのに使用される。メディアオブジェクト要素３１２は一般に、特定のメディアオブジェクト１２５を定義するデータが配設される位置を指定する。そのような位置は、例えば、光学媒体上の位置、あるいはインターネット、私設管理ネットワーク、ワールドワイドウェブなどの有線もしくはワイヤレスネットワーク、公衆ネットワーク、プライベートネットワーク上の位置を含む、ローカルストレージまたはリモートストレージ内の位置でよい。メディアオブジェクト要素３１２によって指定される位置は、資源パッケージデータ構造３４０への参照などの位置への参照でもよい。このようにして、メディアオブジェクト１２５の位置を間接的に指定することができる。
【００５６】
タイミング要素３０６は、特定のアプリケーション１５５によって特定のコンテンツ要素３０２がユーザに提示可能である時間または時間間隔を指定するのに使用される。タイミング要素の例は、ＸＭＬ文書の時間コンテナ内のｐａｒ要素、ｔｕｎｉｎｇ要素、またはｓｅｑ要素を含む。一部のタイミング要素は、Ｓｙｎｃｈｒｏｎｉｚｅｄ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｌａｎｇｕａｇｅ（「ＳＭＩＬ」）のためにＷ３Ｃによって発行された規格によって定義される。他のタイミング要素は、ＤＶＤＦｏｒｕｍによって発行された規格によって定義される（例えばＤＶＤ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  ｆｏｒ  Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｖｉｄｅｏ）。各規格は、すべての目的について参照により本明細書に組み込まれる。宣言型言語文書と共に使用される他のタイミングモデルに関連する異なるタイミング要素も可能である。
【００５７】
スタイル要素３１０（および対応するスタイル属性）は一般に、特定のアプリケーションによってユーザに提示可能な特定のコンテンツ要素３０２の外観を指定するのに使用される。いくつかのスタイル要素が、Ｗ３Ｃおよび／またはＤＶＤＦｏｒｕｍによって１つまたは複数の発行された仕様で定義されている。Ｗ３Ｃによって発行された仕様の例は、ＸＳＬに関する仕様、およびカスケーディングスタイルシート（「ＣＳＳ」）に関する仕様を含む。
【００５８】
イベント要素３６０は、マークアップＤＯＭの再生中の特定の条件の発生を識別するのに使用可能であるユーザ指定の名前およびユーザ定義のパラメータの変数セットを有する要素である。１つの例示的実施例では、イベント要素はスクリプトのみによって消費可能である。したがって、イベント要素は、その構文によって記述することのできる任意のタイプの条件のスクリプト（スクリプト３０８）を通知するのに使用されるタイミング要素（例えばタイミング要素３０６）の構成内に含まれる宣言型要素である。Ｗ３Ｃによって指定されるイベントタグからイベントタグを導出することができ、またはイベントタグは、Ｗ３Ｃによって指定されるイベントタグと同様でよく、またはイベントタグは、Ｗ３Ｃによって指定されるイベントタグとは異なるものでよい。
【００５９】
マークアップ要素３０２、３０６、３１０、および３６０は、その関連するメディアオブジェクト要素３１２／メディアオブジェクト１２５のいくつかのプロパティを指定するのに使用可能である属性を有し、それによってマークアップ要素のレンダリングを同期し、かつマークアップで宣言されたイベントの活動化を調整する。１つの例示的実装では、こうした属性／プロパティは、１つまたは複数のクロック、またはタイミング信号の値を表す（図４に関連して以下でさらに論じる）。時間または期間を表すプロパティを有するマークアップ要素の属性を使用することは、ユーザが再生プレゼンテーション１２７を受信する間にＩＣ構成要素１２４とビデオ構成要素１２２との同期が達成される特定の一方式（すなわち、インラインタイミング構成を使用する）である。しかし、タイミング属性はアプリケーションにおいてマークアップ要素のみに限定されるわけではなく、全体としての本明細書に記載のイベンティングシステム（例えばプレゼンテーションシステム１００）に一般に適用することができる。別の例示的実装（図６に関連して以下でさらに論じる）では、こうした属性／プロパティの構造化表現が周期的に照会され、その中の特定の値または変化が、再生プレゼンテーション１２７内のＩＣ構成要素１２４を再生することに関連する１つまたは複数のアクションをトリガするのに使用可能である。
【００６０】
マークアップ要素を含むサンプルＸＭＬ文書を以下で述べる（スクリプト３０８は図示せず）。サンプルＸＭＬ文書は、コンテンツ要素３０２に関するクロップアニメーションを実行するためのスタイル要素３１０およびタイミング要素３０６を含み、コンテンツ要素３０２は、「ｉｄ」と呼ばれるメディアオブジェクト要素３１２を参照する。「ｉｄ」メディアオブジェクト要素に関連するメディアオブジェクト１２５を定義するデータの位置は図示されていない。以下のサンプルＸＭＬ文書は例示のために与えられるものであり、構文的に正当なものではないことがあることを理解されよう。
【００６１】
サンプルＸＭＬ文書は、「ｒｏｏｔ」と呼ばれるルート要素で始まる。ルート要素に続いて、いくつかの名前空間「ｘｍｌｎｓ」フィールドは、サンプルＸＭＬ文書に関する構文を定義する様々なスキーマ、およびその中のコンテナを見つけることのできるワールドワイドウェブ上の位置を指す。例えば高精細度ＤＶＤムービーと共に使用されるＸＭＬ文書の状況では、名前空間フィールドは、ＤＶＤＦｏｒｕｍに関連するウェブサイトを指すことができる。
【００６２】
「ｉｄ」と呼ばれる１つのコンテンツ要素３０２が、「ｂｏｄｙ」というラベルの付いたタグによって記述されるコンテナ内に定義される。コンテンツ要素「ｉｄ」に関連するスタイル要素３１０（この例では、「ｓｔｙｌｉｎｇ」というラベルの下の要素）が、「ｈｅａｄ」というラベルの付いたタグによって記述されるコンテナ内に定義される。タイミング要素３０６（「ｔｉｍｉｎｇ」というラベルの下の要素）も、「ｈｅａｄ」というラベルの付いたタグによって記述されるコンテナ内に定義される。
- <root xml:lang="en" xmlns="http://www.dvdforum.org/2005/ihd" 
xmlns:style="http://www.dvdforum.org/2005/ihd#style" 
xmlns: state="http://www.dvdforum.org/2005/ihd#state" 
- <head> (Head is the container of style and timing properties) 
- <styling> (Styling Properties are here) 
<style id="s-p" style:fontSize="10px" /> 
<style id="s-bosbkg" style: opacity="0.4" 
style:backgroundImage="url('../../img/pass/boston.png')" /> 
<style id="s-div4" style="s-bosbkg" style:width=" l00px" 
style:height="200px" /> 
<style id="s-div5" style:crop="0 0 100 100" style=" s-bosbkg" 
style:width="200px" style:height="100px" /> 
<style id="s-div6" style:crop="100 50 200 150" style="s-bosbkg" 
style:width="100px" style:height="100px" /> 
</styling> 
- <Timing> (Timing Properties are here) 
- <timing clock="title"> 
- <defs> 
-<g id="xcrop"> 
<set style: opacity="1.0" /> 
<animate style:crop="0 0 100 200;200 0 300 200" /> 
</g> 
- <g id="ycrop"> 
<set style:opacity="1.0" /> 
<animate style:crop="0 0 100 100;0 100 100 200" /> 
</g>
- <g id= "zoom"> 
<set style:opacity="1.0" /> 
<animate style:crop="100 50 200 150;125 75 150 100" /> 
</g> 
</defs> 
- <seq> 
<cue use="xcrop" select="//div[@id='d4']" dur="3s" /> 
<cue use="ycrop" select="//div[@id='d5']" dur="3s" /> 
<cue use="zoom" select="//div[@id='d6']" dur="3s" /> 
</seq> 
</timing> 
</head> 
- <body state: foreground="true"> Body is the container for content 
elements 
- <div id="d1"> The content starts here. 
- <p style:textAlign="center"> 
Crop Animation Test 
<br /> 
<span style:fontSize="12px">Start title clock to animate crop.</span> 
</p> 
</div> 
<div id="d4" style="s-div4" style:position="absolute" 
style:x="10%" style:y="40%"> 
<p style="s-p">x: 0 -> 200</p> 
</div> 
- <div id="d5" style="s-div5" style:position="absolute" style:x="30%" 
style:y="40%"> 
<p style="s-p">y: 0 -> 100</p> 
</div> 
- <div id="d6" style="s-div6" style:position="absolute" 
style:x= "70%" style:y="60%"> 
- <p style="s-p"> 
x: 100 -> 125
<br /> 
y: 50->75 
</p> 
</div> 
</body>
</root>
引き続き図１〜３を参照すると共に、図４は、タイミング信号管理ブロック１０８の様々な構成要素およびタイミング信号１５８をより詳細に示す単純化した機能ブロック図である。
【００６３】
タイミング信号管理ブロック１０８は、プレゼンテーションシステム１００内の特定の時間または期間を求めるのに使用されるクロックおよび／またはタイミング信号の処理の任を担う。図示するように、連続的タイミング信号４０１が、クロックソース４０２によって所定のレートで生成される。クロックソース４０２は、汎用コンピュータや特殊目的電子装置などの処理システムに関連するクロックでよい。クロックソース４０２によって生成されるタイミング信号４０１は一般に、現実世界のクロックと同様に連続的に変化し、実時間の１秒以内で、クロックソース４０２は、１秒に相当するタイミング信号４０１を所定のレートで生成する。タイミング信号４０１はＩＣフレームレート計算器４０４、Ａ／Ｖフレームレート計算器４０６、時間基準計算器４０８、および時間基準計算器４９０に入力される。
【００６４】
ＩＣフレームレート計算器４０４は、タイミング信号４０１に基づいてタイミング信号４０５を生成する。タイミング信号４０５は「ＩＣフレームレート」と呼ばれ、ＩＣデータ１３４のフレームがＩＣマネージャ１０４によって生成されるレートを表す。ＩＣフレームレートの１つの例示的値は、毎秒３０フレームである。ＩＣフレームレート計算器４０４は、タイミング信号４０５を生成するためにタイミング信号４０１のレートを低減または増大させることができる。
【００６５】
ＩＣデータ１３４のフレームは一般に、それぞれの有効なアプリケーション１５５および／またはそのページについて、関係するユーザイベントに従う、有効なアプリケーションおよび／またはページに関連する各メディアオブジェクト１２５のレンダリングを含む。例示のために、有効なアプリケーションは、プレゼンテーションタイムライン１３０に基づいて再生期間２９２の現タイトル時間が含まれるアプリケーションプレゼンテーション間隔３２１を有するものである。アプリケーションは複数のアプリケーションプレゼンテーション間隔を有することができることを理解されよう。本明細書ではユーザ入力または資源可用性に基づいてアプリケーションの状態について特定の区別は行われないことも理解されよう。
【００６６】
Ａ／Ｖフレームレート計算器４０６もタイミング信号４０１に基づいてタイミング信号（タイミング信号４０７）を生成する。タイミング信号４０７は「Ａ／Ｖフレームレート」と呼ばれ、Ａ／Ｖデータ１３２のフレームがＡＶＣマネージャ１０２によって生成されるレートを表す。Ａ／Ｖフレームレートは、ＩＣフレームレート４０５と同一でよく、またはＩＣフレームレート４０５と異なるものでよい。Ａ／Ｖフレームレートの１つの例示的値は、毎秒２４フレームである。Ａ／Ｖフレームレート計算器４０６は、タイミング信号４０７を生成するためにタイミング信号４０１のレートを低減または増大させることができる。
【００６７】
クロックソース４７０はタイミング信号４７１を生成し、タイミング信号４７１は、クリップ１２３に関連する情報がメディアソース１６１から生成されるレートを支配する。クロックソース４７０は、クロック４０２と同一のクロックでよく、またはクロックソース４０２と同一のクロックに基づくことができる。あるいは、クロック４７０と４０２はまったく異なるものでよく、かつ／または異なるソースを有することができる。クロックソース４７０は、再生速度入力４８０に基づいてタイミング信号４７１のレートを調節する。プレイ速度入力４８０は、再生プレゼンテーション１２７の再生速度に影響を及ぼす、受信されるユーザ入力を表す。例えばユーザがムービーのある部分から別の部分にジャンプするとき（「トリックプレイ」と呼ばれる）、またはユーザがムービーを休止、低速順送り（ｓｌｏｗ−ｆｏｒｗａｒｄ）、高速順送り（ｆａｓｔ−ｆｏｒｗａｒｄ）、低速逆戻し（ｓｌｏｗ−ｒｅｖｅｒｓｅ）、または高速逆戻し（ｆａｓｔ−ｒｅｖｅｒｓｅ）したときに、再生速度に影響を受ける。トリックプレイは、メニュー２８０（図２に示す）から選択を行うことにより、または他の方式で達成することができる。
【００６８】
時間基準４５２は、アクティブクリップ１２３に関連する特定のプレゼンテーション間隔２４０内で経過した時間量を表す。本明細書の議論では、アクティブクリップは、プレゼンテーションタイムライン１３０に基づいて再生期間２９２の現タイトル時間が含まれるプレゼンテーション間隔２４０を有するものである。時間基準４５２は「経過クリップ再生時間」と呼ばれる。時間基準計算器４５４は時間基準４５２を受け取り、メディア時間基準４５５を生成する。メディア時間基準４５５は、１つまたは複数の時間基準４５２に基づいて経過した再生期間２９２の合計量を表す。一般には、２つ以上のクリップが同時に再生中であるとき、メディア時間基準４５５を生成するのに１つの時間基準４５２だけが使用される。メディア時間基準４５５を求めるのに使用される特定のクリップ、および複数のクリップに基づいてどのようにメディア時間基準４５５が求められるかは、実装の好みの問題である。
【００６９】
時間基準計算器４０８は、タイミング信号４０１、メディア時間基準４５５、および再生速度入力４８０を受け取り、タイトル時間基準４０９を生成する。タイトル時間基準４０９は、時間基準計算器４０８への入力のうちの１つまたは複数に基づいて再生期間２９２内で経過した合計時間量を表す。
【００７０】
時間基準計算器４９０は、タイミング信号４０１およびタイトル時間基準４０９を受け取り、アプリケーション時間基準４９２およびページ時間基準４９４を生成する。単一のアプリケーション時間基準４９２は、連続的タイミング信号４０１に関する、（図３に関連して図示および議論された）特定のアプリケーション再生期間３２０の経過時間量を表す。アプリケーション時間基準４９２は、現タイトル時間が特定のアプリケーションのアプリケーションプレゼンテーション間隔３２１内に含まれることをタイトル時間基準４０９が示すときに求められる。アプリケーション時間基準４９２は、アプリケーションプレゼンテーション間隔３２１の完了時にリセットする（例えば非アクティブとなり、またはやり直す）。アプリケーション時間基準４９２は、ユーザイベントに応答して、またはトリックプレイが行われるときなど、他の状況でもリセットすることができる。
【００７１】
ページ時間基準４９４は、連続的タイミング信号４０１に関する、（やはり図３に関連して図示および議論された）単一ページ再生期間３３２、３３７の経過時間量を表す。アプリケーションの特定のページに関するページ時間基準４９４は、現タイトル時間が適用可能ページプレゼンテーション間隔３４３内に含まれることをタイトル時間基準４０９が示すときに求められる。ページプレゼンテーション間隔は、アプリケーションプレゼンテーション間隔３２１のサブインターバルである。ページ時間基準４９４は、適用可能なページプレゼンテーション間隔３４３の完了時にリセットすることができる。ページ時間基準４９４は、ユーザイベントに応答して、またはトリックプレイが行われるときなど、他の状況でもリセットすることができる。アプリケーションプレゼンテーション間隔３２１および／またはページプレゼンテーション間隔３４３のサブインターバルでよいメディアオブジェクトプレゼンテーション間隔３４５も定義可能であることを理解されよう。
【００７２】
表１に、プレゼンテーションシステム１００による再生プレゼンテーション１２７の再生中の例示的オカレンスと、アプリケーション時間基準４９２、ページ時間基準４９４、タイトル時間基準４０９、およびメディア時間基準４５５に対するそのようなオカレンスの効果とを示す。
【００７３】
【表１】
2009501459.tif 000003
【００７４】
図５は、アプリケーション時間基準４９２、ページ時間基準４９４、タイトル時間基準４０９、およびメディア時間基準４５５に対する再生プレゼンテーション１２７の再生中のいくつかのオカレンス５０２の効果をより詳細に示す図である。オカレンス５０２およびその効果が、タイミング信号４０１などの連続的タイミング信号の値に対して図示されている。別段の指示がない限り、高精細度ＤＶＤムービーの特定のタイトルは通常の速度で再生中であり、３つの逐次提示可能なページを有する単一のアプリケーションがユーザ対話を提供する。
【００７５】
ムービーは、タイミング信号が値０を有するときに再生を開始する。タイミング信号が値１０を有するとき、アプリケーションは有効となり、活動化する。アプリケーション時間４９２、ならびにアプリケーションのページ１に関連するページ時間４９４は値０を仮定する。ページ２および３は非アクティブである。タイトル時間４０９およびメディア時間４５５はどちらも値１０を有する。
【００７６】
アプリケーションのページ２は、タイミング信号値１５でロードされる。アプリケーション時間およびページ１時間は値５を有し、タイトル時間およびメディア時間は値１５を有する。
【００７７】
アプリケーションのページ３は、タイミング信号が値２０を有するときにロードされる。アプリケーション時間は値１０を有し、ページ２時間は値５を有し、ページ１時間は非アクティブである。タイトル時間およびメディア時間は値２０を有する。
【００７８】
ムービーは、タイミング信号値２２で休止する。アプリケーション時間は値１２を有し、ページ３時間は値２を有し、ページ１およびページ２は非アクティブである。タイトル時間およびメディア時間は値２２を有する。ムービーは、タイミング信号値２４で再開する。次いで、アプリケーション時間は値１４を有し、ページ３時間は値４を有し、タイトル時間およびメディア時間は値２２を有する。
【００７９】
タイミング信号値２７で新しいクリップが開始する。アプリケーション時間は値１７を有し、ページ３時間は値７を有し、タイトル時間は値２５を有し、メディア時間は０にリセットされる。
【００８０】
ユーザは、タイミング信号値３２でアプリケーションを非活動化する。アプリケーション時間は値２２を有し、ページ時間は値１２を有し、タイトル時間は値３０を有し、メディア時間は値５を有する。
【００８１】
タイミング信号値３９で、ユーザは、後方の同一のクリップの別の部分にジャンプする。アプリケーションはジャンプした位置で有効であると仮定し、そのすぐ後でアプリケーションは再活動化される。アプリケーション時間は値０を有し、ページ１時間は値０を有し、他のページは非アクティブであり、タイトル時間は値２７を有し、メディア時間は値２を有する。
【００８２】
タイミング信号値４６で、ユーザはムービーの再生速度を変更し、通常速度の２倍で高速順送りする。高速順送りはタイミング信号値５３まで続行される。図示するように、アプリケーション時間およびページ時間は、連続的タイミング信号と共に一定のペースで引き続き変化し、ムービーのプレイ速度の変化の影響を受けず、一方、タイトル時間およびメディア時間はムービーの再生速度に比例して変化する。アプリケーションの特定のページがロードされる時は、タイトル時間４０９および／またはメディア時間４５５に結合されることに留意されたい（図３に関連する、アプリケーションプレゼンテーション間隔３２１およびページプレゼンテーション間隔３４３の議論を参照）。
【００８３】
タイミング信号値４８で、新しいタイトルが開始し、タイトル時間４０９およびメディア時間４５５が値０にリセットされる。初期タイトルに関して、これは、タイトル時間が値６２を有し、メディア時間が値３６をするときに行われる。アプリケーション時間４９２およびページ時間４９４のリセット（図示せず）は、タイトル時間４０９およびメディア時間４５５のリセットの後に続く。
【００８４】
様々なタイムライン、クロックソース、タイミング信号、およびタイミング信号基準へのアクセスを有することにより、プレゼンテーションシステム１００が再生プレゼンテーション１２７内のＩＣデータ１２４とＡ／Ｖデータ１３２のフレームレベル同期を達成し、ユーザ対話の期間中のそのようなフレームレベル同期を維持する能力が向上する。
【００８５】
引き続き図１〜４を参照すると共に、図６は、プレゼンテーションシステム１００などの対話式マルチメディアプレゼンテーションシステムがプレゼンテーションコンテンツ１２０／再生プレゼンテーション１２７のＩＣ構成要素１２４およびビデオ構成要素１２２などの対話式マルチメディアプレゼンテーションの対話式構成要素およびビデオ構成要素を同期式に提示する能力を向上させる一方法の流れ図である。この方法は、宣言型形式の一定のアプリケーション命令を使用して、ＩＣ構成要素１２４の再生に関連する一定のアクションを条件付きでトリガすることを含む。アクションは、（例えばユーザ入力に基づいて）対話式マルチメディアプレゼンテーションの再生中の１つまたは複数のメディアオブジェクトの１つまたは複数の特徴の状態に基づいてトリガされる。
【００８６】
図６に、ＸＰＡＴＨクエリを使用してアプリケーションの構造化表現（図７に図示し、付随する本文で説明したＤＯＭなど）が周期的にアクセスされ、環境内の状態の変化を検出し、次いでそれに対する応答をトリガする対話式マルチメディア環境内の状態変化に宣言式に応答する１つの特定の例示的方法を示す。この宣言型方法に加えて、プログラマティック（すなわち命令）イベント駆動方法が別法として使用される。例えば、環境内の他のオブジェクトを構築し、特定の状態変化に応答することができる。プログラムされた構成により、状態属性がそのようなオブジェクトに状態変化を通知し、それによって応答をトリガすることが可能となる。したがって、ＤＯＭに周期的に照会して状態変化を検出することに加えて（ポーリングの一形態）、例えばスクリプト、マークアップＡＰＩ、またはスクリプトＡＰＩを使用してオブジェクトのイベントハンドラを適切な通知方法に渡すことにより、特定の要件に応じて肯定的イベント通知を使用し、実装することができる。次いで、状態属性が変化したときに状態変化が信号で伝えられる。
【００８７】
この方法はブロック６００で開始し、ブロック６０２に進み、宣言型言語命令を有するアプリケーションがアクセスされる。一定の宣言型命令が、メディアオブジェクトの特徴を指定する。他の宣言型命令は、特徴の状態変化に基づいて、プレゼンテーションの対話式コンテンツの再生またはレンダリングに関連するアクションを指定する。対話式マルチメディアプレゼンテーションの再生中に、特徴は通常、様々な異なる状態を取る。すなわち、（例えば対話式メニューを作成し、または他の対話式コンテンツをユーザに提供するために）１つまたは複数の対話式アプリケーションがロードおよび実行されるとき、コンテンツ要素属性（以下で説明する）によって定義される様々な状態は通常、変化する対話式環境を反映するように変化する。
【００８８】
ブロック６０４で、以下の図７に示されるＤＯＭなどのアプリケーションの構造化表現が周期的に照会され、状態変化が検出される。ダイヤモンド６０６で判定されるように、関連する状態変化が検出されたとき、宣言型命令によって指定されるアクションがブロック６０８でトリガされ、ブロック６０４での周期的照会が続行される。関連する状態変化がダイヤモンド６０６で検出されない場合、ブロック６０４での周期的照会が続行される。
【００８９】
ブロック６０２を参照すると、コンテンツ要素３０２、スタイル要素３１０、メディアオブジェクト要素３１２、またはイベント要素３６０、およびその属性などのアプリケーション命令３０４（図３に示す）が、特定のメディアオブジェクト１２５と、再生プレゼンテーション１２７の再生中に仮定することのできる関連する特徴状態（例えば属性の値）とを指定する役割を果たす。高精細度ＤＶＤムービーアプリケーションに現れるマークアップ要素と共に使用されるいくつかの属性が、ＤＶＤＦｏｒｕｍによって公表された１つまたは複数のＸＭＬスキーマによって定義される。例示的実施例では、属性はスタイル属性および状態属性を含む。
【００９０】
ユーザイベントに関していくつかの属性を定義することができる。スタイル属性または状態属性の値に影響を及ぼす可能性のあるユーザイベントの１タイプは、ジェスチャイベントである。ジェスチャイベントは、再生プレゼンテーション１２７内のメディアオブジェクトのプレゼンテーションに影響を及ぼす任意のユーザ開始アクション（キーボード、リモートコントロール、マウスなどの装置からの入力など）である。一般には特徴状態および属性の値、具体的にはスタイルまたは状態属性の値は、交番状態またはバイナリ状態を仮定することができる。そのような交番状態またはバイナリ状態の例は、真または偽、オンまたはオフ、０または１などを含む。あるいは、特徴状態および属性の値は、文字列値や数値などの一般的な値を仮定することもできる。別の代替実施形態では、特徴状態および属性の値は、事前設定定義された１組の色の中の特定の色を表す値などの、事前定義されたセット内の値を仮定することができる。
【００９１】
ブロック６０２を再び参照すると、アプリケーション命令３０４（図３に示す）内で、特徴状態の変化に基づいてトリガすることのできるＩＣ構成要素１２４の再生に関連する１つまたは複数のアクションが、他の宣言型命令を使用して指定される。そのようなアクションの例は、コンテンツレンダリング、イベント生成、スクリプト実行、可変値の変化、およびその他のアクションを含む。アプリケーションまたはそのページ内で、複数のタイミング要素を使用することができ、同一または異なるクロックにタイミング要素を同期することができる。例えば、タイミング信号４０１および４７１を直接的または間接的に参照して、タイミング要素が同期されるクロックを確立することができる。例えば、クロックソース４０２、ＩＣフレームレート計算器４０４、Ａ／Ｖフレームレート計算器４０６、アプリケーション時間４９２、またはページ時間４９４を介してタイミング信号４０１を間接的に参照することができる。同様に、例えばクロックソース４７０、経過クリップ再生時間４５２、時間基準計算器４５４、メディア時間基準４５５、時間基準計算器４０８、またはタイトル時間基準４０９を介してタイミング信号４７１を間接的に参照することができる。さらに、クロック、タイミング信号、時間基準計算器、および／または時間基準への論理参照を含む表現を使用してタイミング要素の同期を指定することもできる。例えば、「ＡＮＤ」、「ＯＲ」、「ＮＯＴ」などのブールオペランド、および他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。
【００９２】
再び図６の流れ図を参照して、プレゼンテーションシステム１００の状況で、ブロック６０４、ダイヤモンド６０６、およびブロック６０８に示すステップが論じられる。プレゼンテーションコンテンツ１２０／再生プレゼンテーション１２７の再生中に、特定のアプリケーション１５５に関連する宣言型言語命令の状態（それぞれのコンテンツ要素３０２、タイミング要素３０６、スタイル要素３１０、メディアオブジェクト要素３１２、イベント要素３６０、および／または属性（任意選択で、属性の属性）など）が、アプリケーションの構造化表現内に維持される。そのような構造化表現の一例はＤＯＭである。ＤＯＭの構造および機能が、Ｗ３Ｃによって発行された１つまたは複数の仕様で説明されている。
【００９３】
図７はＤＯＭ７００の図である。ＤＯＭ７００は、ルートノードである文書ノード７０２、要素ノード７０４、属性ノード７０６、およびテキストノード７０８を含むいくつかのタイプのノードのツリー状階層である。しばしば、ＤＯＭではタイミングデータ構造はコンテンツデータ構造とは別々である。ＤＯＭ７００の構造は例示のために提示したに過ぎない。任意の要素が属性自体を含めて属性またはテキストを有することができることを理解されよう。
【００９４】
アプリケーションがロードされるとき、そのマークアップがロードされ、構文解析され、ＤＯＭが作成される。アプリケーションが対話式環境で動作するとき、ユーザはアプリケーションと対話し、イベントがファイアされ、スクリプトが実行されるなどし、状態属性を含む環境の様々な側面が変化し、それがＤＯＭに対する修正として反映される。したがって、アプリケーションが最初に開始したときに当初ロードされたＤＯＭは通常、アプリケーションの存続時間中に動的に維持される「実際の（ｌｉｖｅ）」ＤＯＭとは異なる。
【００９５】
ＸＰＡＴＨクエリまたは他のタイプのクエリ（例えばＸＱＵＥＲＹ）を使用してＤＯＭ７００（またはその部分）に周期的に照会し、属性ノード（スタイル属性やディスプレイ属性など）が特定の値を有する時を判定することができる。一実装では、ＸＰＡＴＨクエリは、属性ノードが値を変更した時を判定する。上記で論じたように、属性は、バイナリ値、数値、文字列値、または他のタイプの値を有することができる。各属性ノード（ＤＯＭ７００内のノード７０４および７０６によってそれぞれ表される）は、対話式マルチメディアプレゼンテーションが再生されるとき、かつ／またはユーザイベントなどのイベントに応答して、特定の値を決定する。一実装では、ＸＰＡＴＨクエリは、照会した値に基づいて真または偽を決定する。このようにして、特定のメディアオブジェクトに関するアクティブな時間間隔を形成することができ、有利には、タイミング構造内でＸＰＡＴＨを使用して、コンテンツデータ構造内の情報を参照および／または監視することができる。１つまたは複数の属性ノードに対して同時にクエリを実行することができ、属性に対する論理参照を含む表現または条件を使用してクエリを定義することもできる。例えば、「ＡＮＤ」、「ＯＲ」、「ＮＯＴ」などのブールオペランドと、他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。ある場合には、いくつかの周期的照会をスキップすることも可能である。例えば、クエリ結果および／または他の情報の分析に基づいて、クエリ結果が変化しない期間を識別することができ、その期間中に照会をスキップすることができる。
【００９６】
タイミング信号４０１やタイミング信号４７１などのタイミング信号に基づくレートで、ＤＯＭに対してＸＰＡＴＨクエリを実行することができる。タイミング信号４０１および４７１を直接的または間接的に参照して、ＤＯＭが照会される時間を確立できることを理解されよう。例えば、クロックソース４０２、ＩＣフレームレート計算器４０４、Ａ／Ｖフレームレート計算器４０６、アプリケーション時間４９２、またはページ時間４９４を介してタイミング信号４０１を間接的に参照することができる。同様に、例えばクロックソース４７０、経過クリップ再生時間４５２、時間基準計算器４５４、メディア時間基準４５５、時間基準計算器４０８、またはタイトル時間基準４０９を介してタイミング信号４７１を間接的に参照することができる。さらに、クロック、タイミング信号、時間基準計算器、および／または時間基準への論理参照を含む表現を使用して、ＤＯＭに対してクエリが実行される時を定義することができる。例えば、「ＡＮＤ」、「ＯＲ」、「ＮＯＴ」などのブールオペランド、および他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。
【００９７】
ＤＯＭのクエリを介して検出される状態変化によって特定のアクションがトリガされるとき、適切なコンテンツがアクセスされ、アクションに関する命令が実行される。例えば、外部イベントハンドラは一般に、イベント関連コンテンツにアクセスし、イベントに関係する命令の実行を準備する。トリガされたアクションに関する命令の実行の結果として得られる作業項目（図示せず）はキュー（図示せず）に配置され、ＩＣフレームレート４０５によって提供されるレートなどの所定のレートで実行される。作業項目の実施の結果として得られるＩＣデータ１３４（例えば、ユーザ入力に従う特定のメディアオブジェクトのレンダリング）がミキサ／レンダラ１１０に送られる。ミキサ／レンダラ１１０は、グラフィックス平面内でＩＣデータ１３４をレンダリングし、ユーザに対する再生プレゼンテーション１２７の対話部分を生成する。
【００９８】
したがって、アプリケーションは、メディアオブジェクトの特定の特徴の状態を指定する一定の宣言型言語命令と、特徴の状態変化に基づいて対話式マルチメディアプレゼンテーションの対話式コンテンツを再生することに関連するアクション（メディアオブジェクトのレンダリング、イベント生成、変数の変更、およびその他のアクションなど）を指定する他の宣言型言語命令とを提供する。アプリケーションの構造化表現に周期的に照会して状態変化を検出することにより、対話式コンテンツを再生することに関連するアクションを条件付きでトリガすることができる。ＸＰＡＴＨ機能は、ＤＯＭに照会してそのような状態変化を検出するのに十分適している。
【００９９】
したがって、アプリケーションによって生成されるグラフィックスに関する機能を提供して対話式マルチメディア環境の状態変化に反応するために、状態属性を含むようにマークアップ要素が構成される。そのような状態属性は、上述のようにＤＯＭの使用によってアプリケーションに公開される。例示的実施例では、状態属性は表２に示されるものを含む。
【０１００】
【表２】
2009501459.tif 000004
【０１０１】
表２の列１は、６個の状態属性を列挙する。列２は、属性が取ることのできる値を列挙する。この例示的実施例では、「ｖａｌｕｅ」を除くすべての属性が、ブール値「真」または「偽」を使用するように構成される。値属性は通常、その値についてユーザから入力されるテキストまたは他の非ブール情報を使用する。
【０１０２】
アプリケーション作者は、列３に示されるように、状態属性について初期値を設定することができる。しかし、値は、上述のジェスチャイベントの受信を介するユーザ対話に基づいて変化する。具体的には、ｆｏｒｅｇｒｏｕｎｄ、ｐｏｉｎｔｅｒ、およびａｃｔｉｏｎｅｄの状態属性はプレゼンテーションシステム１００によって変更され、マークアップまたはスクリプトによって変更されない。すなわち、プレゼンテーションシステム１００のアクションは、マークアップおよびスクリプトを上書きする。しかし、ｆｏｃｕｓｅｄ、ｅｎａｂｌｅｄ、およびｖａｌｕｅの状態属性をマークアップまたはスクリプトで設定することができ、したがってそのように設定された値は、普通ならプレゼンテーションシステム１００によって設定される値を上書きする。具体的には、制御を放棄してプレゼンテーションシステム１００内に配設されたアニメーションエンジンに戻すように、スクリプトＡＰＩを介して実装される「ｕｎｓｅｔ」命令を介して明示的に命令されない限り、スクリプトは、ｆｏｃｕｓｅｄおよびｅｎａｂｌｅｄの状態属性を上書きすることができる。したがって、属性値の変更を支配する規則は、優先順位を確立することによって制御の明確な順序を確立し、表２の第４列に要約される。
【０１０３】
この例示的実施例では、ジェスチャイベントは、マークアップ処理を使用して処理される。他の種類のイベントはスクリプト処理によって管理される。ジェスチャイベントのマッピングは、状態属性によって記述される状態プロパティに関して予測されるスタイルおよびタイミング表現を介してマークアップで処理される。ジェスチャイベントは、まずジェスチャの時間をアプリケーション時間（例えばアプリケーション時間基準４９２）に変換し、次いでＤＯＭ中の影響を受ける任意の要素の状態プロパティを修正することによってプレゼンテーションシステム１００によって処理される。ジェスチャイベントがマークアップによって処理される間、適切なイベントリスナをセットアップすることによってジェスチャイベントをなおスクリプトに伝播させることができる。
【０１０４】
再生プレゼンテーション１２７内の特定のメディアオブジェクト１２５  ＩＣ構成要素１２４／ＩＣデータ１３４を提示するのに図６の方法がプレゼンテーションシステム１００でどのように使用可能であるかの一例が与えられる。議論のために、再生プレゼンテーション１２７が高精細度ＤＶＤムービーであり、メディアオブジェクトがボタングラフィックであり、その対話が、ムービーの少なくとも一部と同時に、ボタングラフィックをメニュー２８０（図２に図示される）内のユーザ選択可能項目として提示するアプリケーション１５５によって提供されると仮定する。
【０１０５】
アプリケーションは、状態属性「ｆｏｃｕｓｅｄ」を有する「Ｍｙｂｕｔｔｏｎ」と呼ばれるボタングラフィックとして構成されたコンテンツ要素を含む。ｆｏｃｕｓｅｄ状態属性は、ユーザのジェスチャイベントに基づいて、フォーカスされた状態およびフォーカスされない状態（すなわち真または偽）を帯びることができる。
【０１０６】
表２に示されているように、Ｍｙｂｕｔｔｏｎなどのコンテンツ要素は、活動化ジェスチャが受信された後にフォーカスされる。そのような活動化ジェスチャは、例えばユーザがカーソルの先端をボタングラフィックの周りの事前定義されたエリア（「範囲」と呼ばれる）に移動することによってＭｙｂｕｔｔｏｎの「ホットスポット」エリアを操作するときに受信される。活動化ジェスチャを作成してコンテンツ要素状態属性を真に変更する別の方式は、例えばキーボードを使用して、フォーカスを有するようにコンテンツ要素を操作することである。
【０１０７】
コンテンツ要素がフォーカスされたとき、コンテンツ要素は、コンテンツ要素の相対的表示順序にかかわらず、ユーザ入力（例えば、ボタンのプッシュ、選択、活動化、テキスト入力など）などのフォーカスイベントを受け取る。この順序は「Ｚ順序」と呼ばれ、ディスプレイ上のコンテンツ要素に関連するグラフィックスの階層化を表す。Ｎ個のグラフィカルオブジェクトのグループについて、Ｚ順序＝０は、グラフィックが最も遠くに離れて現れることを意味し、一方Ｚ順序＝Ｎ−１を有するグラフィックは、ディスプレイ上の他のすべてのグラフィックスの上に現れる。したがって、多くの場合に、フォーカスされたコンテンツ要素はＺ順序＝Ｎ−１を有することになる。それがディスプレイ上の一番上のオブジェクトであり、かつそれが通常はユーザとの対話に携わり、ユーザイベントを受け取るものとなるからである。しかし、フォーカスされた状態属性を有するコンテンツ要素は、必ずしも常に最高のＺ順序を有する必要はない。さらに、多くても、一度に１つのコンテンツ要素がフォーカスを有する。マークアップが、複数のコンテンツ要素がフォーカスされた状態を有するように指定する場合、字句的に後の要素が優先する。この例示的実施例では、スタイル、アニメーション、またはＸＭＬアプリケーションプログラミングインターフェース（「ＡＰＩ」）を使用してコンテンツ要素のフォーカス状態を変更することも可能である。
【０１０８】
コンテンツ要素の状態属性が真に設定されると、その状態が保持される。したがって、コンテンツ要素は次の２つの場合にはフォーカスされない（すなわち、そのｆｏｃｕｓｅｄ属性は偽である）。それはユーザが、例えばメニュー２８０から別のメニューを選択することにより、異なるコンテンツ要素を選択してフォーカス状態に移動したとき、およびポインタ装置が要素の範囲内に移動し、キャンセルジェスチャが受信されたときである。そのようなキャンセルジェスチャの後、状態属性ｆｏｃｕｓｅｄを有するコンテンツ要素はない。
【０１０９】
表２に示されているように、ａｃｔｉｏｎｅｄ状態は当初、偽に設定される。ａｃｔｉｏｎｅｄ状態は、コンテンツ要素を目標とする活動化ジェスチャの開始時に真に変化し、活動化ジェスチャが終了した後に偽に戻る。そのような活動化ジェスチャは通常、ポインタ装置（例えばリモートコントロールまたはマウス）を使用して、またはキーボードで生成される。ポインタ装置の場合、ポインタ装置からの活動化ジェスチャは、ポインタダウンイベント（マウスボタンのプッシュなど）で開始し、ポインタアップイベント（マウスボタンの解放など）まで続く。キーボードによって送達される活動化ジェスチャは１チックの持続時間を有する。
【０１１０】
スタイル、アニメーション、またはＸＭＬ  ＡＰＩを使用してコンテンツ要素のａｃｔｉｏｎｅｄ状態を変更し、命令をプログラムし、コンテンツ要素に対するユーザ活動化ジェスチャをシミュレートすることがさらに可能である。実際の活動化ジェスチャとシミュレートした活動化ジェスチャのどちらの場合でも、ａｃｔｉｏｎｅｄイベントが、真に等しい状態属性ｆｏｃｕｓｅｄを有する単一のコンテンツ要素のａｃｔｉｏｎｅｄ状態属性を変更することによってその要素に送達される。
【０１１１】
コンテンツ要素のポインタ状態は当初、偽である。カーソルホットスポットがコンテンツ要素と交差したときはいつでも、値は真に変化する。そうでない場合、値は偽に設定される。しかし、この挙動は、対話式メディアプレゼンテーションでカーソルが使用可能にされる間にのみ行われる。したがって、ポインタ移動イベントは、ポインタ状態属性を真に変更することによってポインタを含む要素を含む単一アプリケーションに送達される。そのようなポインタ移動イベントは、アプリケーションのＺ順序にかかわらず送達される。ポインタクリックイベントは、ポインタを含むアプリケーション内の要素に、それがフォーカスを有するかどうかにかかわらず送達される。コンテンツ要素がフォーカスを受け取ることができる場合、ポインタクリックの結果としてこのことが行われる。コンテンツ要素がアクションすることができる場合、ポインタクリックの結果としてアクションする。
【０１１２】
アプリケーションがＺ順序で最も手前のアプリケーションである（すなわち、アプリケーションが最高のＺ順序を有する）ときはいつでも、ｆｏｒｅｇｒｏｕｎｄ状態属性は、プレゼンテーションシステム１００によって真に設定される。アプリケーションがＺ順序の別の位置に配置されたときはいつでも、ｆｏｒｅｇｒｏｕｎｄ状態属性は偽に設定される。ｆｏｒｅｇｒｏｕｎｄ状態属性を真に変更することによってアプリケーションがフォーカスを得たとき、またはフォーカスを失ったとき、Ｆｏｒｅｇｒｏｕｎｄイベントがアプリケーションに送達される。
【０１１３】
ｅｎａｂｌｅｄ状態属性は、デフォルトで真に設定される。プレゼンテーションシステム１００のアクションは、ｅｎａｂｌｅｄ状態属性を変更しない。しかし、スタイル、アニメーション、またはＸＭＬ  ＡＰＩは、コンテンツ要素のｅｎａｂｌｅｄ状態を偽に変更することができる。偽であるとき、コンテンツ要素はフォーカスを受けることができない。
【０１１４】
ユーザがテキストを入力して値を作成することによって生成されたものなどの値イベントが、コンテンツ要素に関するｖａｌｕｅ状態属性を変更することによってその値が変化するコンテンツ要素を含むアプリケーションに送達される。そのようなイベントは、Ｚ順序の如何にかかわらずアプリケーションに送達される。スタイル、アニメーション、またはＸＭＬ  ＡＰＩを使用してコンテンツ要素のｖａｌｕｅ状態を変更することができ、ｖａｌｕｅ状態はオブジェクトタイプに依存する。
【０１１５】
入力要素、エリア要素、ボタンコンテンツ要素は通常、ユーザイベントに応答するユーザ入力オブジェクトを表すのに使用される。エリアコンテンツ要素は、活動化に関してボタンのように振る舞うが、形状および他のパラメータに関して定義可能である。エリアおよびボタンに関連するコンテンツ要素は当初、表２に示されるように偽の値で設定される。値は、コンテンツ要素のａｃｔｉｏｎｅｄ状態属性が真に変化したときにトグルする。
【０１１６】
入力またはオブジェクトコンテンツ要素に関するｖａｌｕｅ状態属性の値は、任意の所望の値に初期化される。デフォルトは空文字列である。値状態は、使用される特定の入力装置に応じて、コンテンツ要素のフォーカス状態が偽から真に変化したときに編集可能となる。
【０１１７】
特定のジェスチャイベントに基づいて真または偽となることのできる、上述の「ｆｏｃｕｓｅｄ」と呼ばれる状態属性を有するコンテンツ要素、例えばＭｙＢｕｔｔｏｎに関連するメディアオブジェクトのレンダリングを条件付きでトリガするのに使用可能な宣言型言語命令を示す擬似コードが以下に示される。
【０１１８】
<par begin="id('MyButton')[state:focused()=true()]" end =
"id('MyButton')[state:focused()=false()]"
//状態ｆｏｃｕｓｅｄが真であるので、アニメーションを今実行する
//状態が偽に変化した場合、アニメーションを停止する
「ｐａｒ」タイミング要素が、「Ｍｙｂｕｔｔｏｎ」要素に関連するメディアオブジェクトをレンダリングするアクションを記述することがわかる。Ｍｙｂｕｔｔｏｎ要素のｆｏｃｕｓｅｄ属性を表すＤＯＭノードのクエリが真となったとき、アクションがトリガされ（すなわち、メディアオブジェクトがレンダリングされる）、Ｍｙｂｕｔｔｏｎ要素のｆｏｃｕｓｅｄ属性を表すＤＯＭノードのクエリが偽となったとき、アクションが停止する（すなわち、メディアオブジェクトはレンダリングされない）。この例では、レンダリング可能なメディアオブジェクトは、いくつかの状態を帯びるように構成された特徴を有する同一のメディアオブジェクトであるが、レンダリング可能なメディアオブジェクトは異なるものでよい。
【０１１９】
図６に示されるプロセスを、図８に関連して以下で論じるプロセッサ８０２などの、１つまたは複数の一般のプロセッサ、多目的プロセッサ、または専用プロセッサで実装することができる。具体的に述べない限り、本明細書に記載の方法は、特定の順序またはシーケンスに制限されない。さらに、記載の方法またはその要素の一部を同時に行うことができ、または同時に実行することができる。
【０１２０】
図８は、プレゼンテーションシステム１００の様々な機能構成要素を実装するのに使用することができ、その様々な機能構成要素によってアクセスすることができ、またはその様々な機能構成要素に含めることのできるいくつかの機能構成要素を示す汎用コンピューティングユニット８００のブロック図である。コンピューティングユニット８００の１つまたは複数の構成要素を、ＩＣマネージャ１０４、プレゼンテーションマネージャ１０６、およびＡＶＣマネージャ１０２を実装するように使用することができ、それらによってアクセス可能となるように使用することができ、それらに含まれるように使用することができる。例えば、図８の１つまたは複数の構成要素を、一緒に、または別々にパッケージ化し、様々な方式でプレゼンテーションシステム１００の機能（全体または一部）を実装することができる。
【０１２１】
プロセッサ８０２は、コンピュータ可読媒体８０４と、コンピュータプログラム８０６に応答する。プロセッサ８０２は現実のプロセッサまたは仮想プロセッサでよく、コンピュータ実行可能命令を実行することによって電子装置の機能を制御する。プロセッサ８０２は、アセンブリレベル、コンパイル済みレベル、またはマシンレベルで命令を実行し、特定のプロセスを実行することができる。そのような命令を、ソースコードまたは任意の他の周知コンピュータプログラム設計ツールを使用して作成することができる。
【０１２２】
コンピュータ可読媒体８０４は、プロセッサ８０２によって実行可能な命令などのコンピュータ可読データを記録、格納、または送信することのできる、任意の形態の、現在周知の、または後に開発される、任意の数およびローカル装置またはリモート装置の組合せを表す。具体的には、コンピュータ可読媒体８０４は、半導体メモリ（例えば、読取り専用メモリ（「ＲＯＭ」）、任意のタイプのプログラム可能ＲＯＭ（「ＰＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、またはフラッシュメモリなど）、磁気記憶装置（フロッピーディスクドライブ、ハードディスクドライブ、磁気ドラム、磁気テープ、または磁気光学ディスク）、光学式記憶装置（任意のタイプのコンパクトディスクまたはデジタルバーサタイルディスクなど）、バブルメモリ、キャッシュメモリ、コアメモリ、ホログラフィックメモリ、メモリスティック、紙テープ、パンチカード、またはそれらの任意の組合せでよく、またはそれらを含むことができる。コンピュータ可読媒体８０４は、伝送媒体およびそれに関連するデータも含むことができる。伝送媒体／データの例は、限定はしないが、被変調搬送波信号によって搬送されるパケット化または非パケット化データなどの、任意の形態のワイヤラインまたはワイヤレス伝送で具体化されたデータを含む。
【０１２３】
コンピュータプログラム８０６は、データに対する所定のオペレーションを電子的に制御する任意の信号処理方法または格納命令を表す。一般には、コンピュータプログラム８０６は、コンポーネントベースのソフトウェア開発に関する周知の慣例に従ってソフトウェア構成要素として実装され、コンピュータ可読媒体（コンピュータ可読媒体８０４など）内に符号化されたコンピュータ実行可能命令である。コンピュータプログラムは、様々な方式で組み合わせることができ、または配布することができる。
【０１２４】
プレゼンテーションシステム１００の状況で説明した機能／構成要素は、コンピュータプログラムの何らかの特定の実施形態による実装に限定されない。むしろ、機能は、データを搬送または変換するプロセスであり、一般には、プレゼンテーションシステム１００の機能要素の任意の組合せのところに位置し、またはそれによってアクセスされる、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができ、または実行することができる。
【０１２５】
引き続き図８を参照すると共に、図９は、プレゼンテーションシステム１００のすべてまたは一部を実装または使用することのできる動作環境９００の例示的構成のブロック図である。動作環境９００は一般に、多種多様な汎用または特殊目的コンピューティング環境を示す。動作環境９００は、適切な動作環境の一例に過ぎず、本明細書の記載のシステムおよび方法の使用法または機能の範囲に関する何らかの制限を示唆するものではない。例えば、動作環境９００は、現在周知の、または後に開発される、パーソナルコンピュータ、ワークステーション、サーバ、ポータブル装置、ラップトップ、タブレットなどのコンピュータのタイプ、または光学式メディアプレーヤや別のタイプのメディアプレーヤなどの任意の他のタイプの電子装置、あるいはそれらの任意の態様のでよい。動作環境９００は、例えば分散コンピューティングネットワークまたはウェブサービスでもよい。動作環境９００の特定の例は、高精細度ＤＶＤムービーの再生を実施する、ＤＶＤプレーヤまたはそれに関連するオペレーティングシステムなどの環境である。
【０１２６】
図示するように、動作環境９００は、プロセッサ８０２、コンピュータ可読媒体８０４、およびコンピュータプログラム８０６を含むコンピューティングユニット８００の構成要素を含み、またはそれにアクセスする。ストレージ９０４は、光ディスクドライブ９０６によって処理される光ディスクなどの、動作環境９００に具体的に関連付けられた追加のコンピュータ可読媒体または異なるコンピュータ可読媒体を含む。周知の、広く入手可能な要素である１つまたは複数の内部バス９２０を使用して、コンピューティング環境９００またはその要素内で、コンピューティング環境９００またはその要素に、あるいはコンピューティング環境９００またはその要素から、データ、アドレス、制御信号、および他の情報を搬送することができる。
【０１２７】
入力インターフェース９０８は、コンピューティング環境９００に入力を提供する。ユーザインターフェースなどの、現在周知の、または後に開発される任意のタイプのインターフェースを使用して入力を収集することができる。ユーザインターフェースは、リモートコントロール、ディスプレイ、マウス、ペン、スタイラス、トラックボール、キーボード、マイクロフォン、スキャニング装置などのタッチ入力装置、およびデータを入力するのに使用されるすべてのタイプの装置でよい。
【０１２８】
出力インターフェース９１０は、コンピューティング環境９００からの出力を提供する。出力インターフェース９１０の例は、ディスプレイ、プリンタ、スピーカ、ドライブ（光ディスクドライブ９０６や他のディスクドライブなど）などを含む。
【０１２９】
外部通信インターフェース９１２は、チャネル信号、データ信号、コンピュータ可読媒体などの通信媒体を介して別の実体から情報を受信し、または別の実体に情報を送信するコンピューティング環境９００の能力を高めるために利用可能である。外部通信インターフェース９１２は、ケーブルモデム、データ端末装置、メディアプレーヤ、データ記憶装置、携帯情報端末、または任意の他の装置、あるいはそれらの構成要素／組合せなどの要素と、関連するネットワークサポート装置および／またはソフトウェアまたはインターフェースでよく、またはそれらを含むことができる。
【０１３０】
図１０は、プレゼンテーションシステム１００または動作環境９００を共に使用することのできるクライアントサーバアーキテクチャ１０００の単純化した機能図である。プレゼンテーションシステム１００および／または動作環境９００の１つまたは複数の態様を、アーキテクチャ１０００のクライアント側１００２またはアーキテクチャ１０００のサーバ側１００４で表すことができる。図示するように、通信フレームワーク１００３（任意のタイプ、例えば有線またはワイヤレスの任意の公衆ネットワークまたはプライベートネットワークでよい）は、クライアント側１００２とサーバ側１００４との間の通信を実施する。
【０１３１】
クライアント側１００２では、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装することのできる１つまたは複数のクライアント１００６が、クライアントデータストア１００８に応答する。クライアントデータストア１００８は、クライアント１００６にとってローカルな情報を格納するのに使用されるコンピュータ可読媒体８０４でよい。サーバ側１００４では、１つまたは複数のサーバ１０１０がサーバデータストア１０１２に応答する。クライアントデータストア１００８と同様に、サーバデータストア１０１２は、サーバ１０１０にとってローカルな情報を格納するのに使用される１つまたは複数のコンピュータ可読媒体８０４を含むことができる。
【０１３２】
オーディオ／ビデオコンテンツと同時に対話式コンテンツをユーザに提示するのに使用される対話式マルチメディアプレゼンテーションシステムの様々な態様を説明した。対話式マルチメディアプレゼンテーションを、再生期間、可変再生速度、ビデオ構成要素、およびＩＣ構成要素を有するものとして一般的に説明した。しかし、上記の構成要素のすべてを使用する必要はなく、使用したときに各構成要素が同時に存在しなければならないわけでもないことを理解されよう。プレゼンテーションシステム１００の状況でコンピュータプログラムとして説明した機能／構成要素は、コンピュータプログラムの何らかの特定の実施形態による実装に限定されない。むしろ、機能は、データを搬送または変換するプロセスであり、一般に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができ、または実行することができる。
【０１３３】
構造的特徴および／または方法論的動作に特有の術語で本発明を説明したが、特許請求の範囲で定義される対象が、上述の特定の機能および動作に必ずしも限定されないことも理解されたい。むしろ、特許請求の範囲を実施する例示的形態として上記の特定の特徴および動作が開示される。
【０１３４】
ある要素が別の要素に応答するものとして示されるとき、各要素を直接的または間接的に結合できることをさらに理解されよう。本明細書に示される接続は、実際には、要素間の結合または通信インターフェースを達成するための論理的または物理的なものでよい。接続はとりわけ、ソフトウェアプロセス間のプロセス間通信、ネットワークコンピュータ間のマシン間通信として実装することができる。
【０１３５】
本明細書では「例示的」という語は、例、実例、または例示としての役割を果たすことを意味するように使用される。「例示的」なものとして本明細書で説明した本発明の任意の実装または態様は必ずしも、本発明の他の実装または態様よりも好ましいもの、または有利なものと解釈すべきではない。
【０１３６】
添付の特許請求の範囲の精神または範囲から逸脱することなく上述の特定の実施形態以外の実施形態を考案できることが理解できるので、本明細書の対象の範囲は、添付の特許請求の範囲によって支配されるものとする。
【図面の簡単な説明】
【０１３７】
【図１】対話式マルチメディアプレゼンテーションシステムの単純化した機能ブロック図である。
【図２】図１に示すプレイリストから確認可能である例示的プレゼンテーションタイムラインの図である。
【図３】図１に示す対話式マルチメディアプレゼンテーションに関連するアプリケーションの単純化した機能ブロックダイアグラムである。
【図４】図１のタイミング信号管理ブロックをより詳細に示す単純化した機能ブロック図である。
【図５】図４に示されるいくつかの時間基準の値に対する例示的オカレンスの効果を連続的タイミング信号に関して示す略図である。
【図６】図３に示されるいくつかのアプリケーション命令を使用して対話式マルチメディアプレゼンテーションを再生する方法の流れ図である。
【図７】図６に示される方法の諸態様に関連して使用可能な文書オブジェクトモデルの図である。
【図８】図１に示される対話式マルチメディアプレゼンテーションシステムの諸態様に関連して使用可能な汎用コンピューティングユニットの単純化した機能ブロック図である。
【図９】図１に示される対話式マルチメディアプレゼンテーションシステムを実装または使用することのできる動作環境の例示的構成の単純化した機能ブロック図である。
【図１０】図１に示される対話式マルチメディアプレゼンテーションシステムを実装または使用することのできるクライアントサーバアーキテクチャの単純化した機能図である。
【図１】
2009501459.tif 000005
【図２】
2009501459.tif 000006
【図３】
2009501459.tif 000007
【図４】
2009501459.tif 000008
【図５】
2009501459.tif 000009
【図６】
2009501459.tif 000010
【図７】
2009501459.tif 000011
【図８】
2009501459.tif 000012
【図９】
2009501459.tif 000013
【図１０】
2009501459.tif 000014
【国際調査報告】
2009501459.tif 000015