(57)【特許請求の範囲】
【請求項１】
プロセッサによって実行されると、プレゼンテーションシステムを使用して対話型マルチメディアプレゼンテーションを再生する方法を実行する、コンピュータ実行可能命令を記録したコンピュータ可読メディアであって、前記対話型マルチメディアプレゼンテーションは再生期間、メディアソースから受け取り可能な複数のメディアサンプルに配置されたメディアコンテンツ構成要素、および対話型コンテンツ構成要素を有し、アプリケーションは前記対話型コンテンツ構成要素を再生するためのコンピュータ実行可能なアプリケーション命令を有し、前記方法は、
少なくとも１つのメディアサンプルがユーザに対して再生可能である前記再生期間内の時刻を表すメディアサンプルプレゼンテーション時刻を有するメディアタイムラインの少なくとも一部分を確認するステップと、
前記メディアタイムラインに関して、現在のメディアソースからの現在のメディアサンプルをユーザに対して再生可能な前記再生期間内の時刻を表す現在の経過再生時刻を識別するステップと、
前記メディアタイムラインに関して、前記再生期間内において、次のメディアソースからのユーザに対して再生することができる次の再生可能なメディアサンプルの予測経過再生時間を計算するステップと、
前記予測経過再生時間に基づいて、次の再生可能なメディアサンプルに関連付けられたメディアサンプルプレゼンテーション時刻を位置決めするステップと、
前記現在の経過再生時刻が発生した後で次の再生可能なメディアサンプルに関連付けられたメディアサンプルプレゼンテーション時刻に到達する前にスケジュールされた前記アプリケーション命令、または発生した前記対話型コンテンツ構成要素に対するユーザ入力であって、前記メディアコンテンツ構成要素と前記対話型コンテンツ構成要素との間のフレームレベルの同期化の欠損を発生させ得る前記アプリケーション命令または前記ユーザ入力を識別するステップと、
前記予測経過再生時間の前に、前記メディアコンテンツ構成要素と前記対話型コンテンツ構成要素との間のフレームレベルの同期化を維持するように前記アプリケーション命令または前記ユーザ入力を実行するタイミングを決定するステップと
を含むことを特徴とするコンピュータ可読メディア。
【請求項２】
前記次の再生可能なメディアサンプルは次の連続したメディアサンプルでないことを特徴とする請求項１に記載のコンピュータ可読メディア。
【請求項３】
前記ユーザ入力は、再生速度の入力、および前記対話型コンテンツ構成要素に関連付けられた対話型オブジェクトの選択からなるグループから選択されることを特徴とする請求項１に記載のコンピュータ可読メディア。
【請求項４】
前記アプリケーション命令または前記ユーザ入力を実行するタイミングを決定するステップは、前記現在の経過再生時間の後に発生することを特徴とする請求項１に記載のコンピュータ可読メディア。
【請求項５】
前記現在のメディアサンプルはユーザに対してレンダリングされ、および前記次の再生可能なメディアサンプルは前記ユーザに対するレンダリングのために準備されていることを特徴とする請求項４に記載のコンピュータ可読メディア。
【請求項６】
前記アプリケーション命令は、前記アプリケーションの作成者によって使用されるアプリケーションプログラミングインターフェイスに関連付けられていることを特徴とする請求項１に記載のコンピュータ可読メディア。
【請求項７】
前記アプリケーション命令または前記ユーザ入力を実行するタイミングを決定するステップは、前記ＡＰＩの実装によって実行されることを特徴とする請求項６に記載のコンピュータ可読メディア。
【請求項８】
前記アプリケーション命令は、命令型の命令を含むことを特徴とする請求項１に記載のコンピュータ可読メディア。
【請求項９】
対話型マルチメディアプレゼンテーションを再生する装置であって、前記対話型マルチメディアプレゼンテーションは再生期間、メディアソースから受け取り可能な複数のメディアサンプルに配置されたメディアコンテンツ構成要素、および対話型コンテンツ構成要素を有し、アプリケーションは前記対話型コンテンツ構成要素を再生するためのコンピュータ実行可能なアプリケーション命令を有する装置において、
コンピュータ可読記憶メディアと、
前記コンピュータ可読記憶メディアに記憶されたコンピュータプログラムに応答するプロセッサと
を含み、前記コンピュータプログラムは、前記プロセッサにロードされて実行されると、
少なくとも１つのメディアサンプルがユーザに対して再生可能である前記再生期間内の時間を表すメディアサンプルプレゼンテーション時刻を有するメディアタイムラインの少なくとも一部分を確認し、
前記メディアタイムラインに関して、現在のメディアソースからの現在のメディアサンプルをユーザに対して再生可能な前記再生期間内の時間を表す現在の経過再生時刻を識別し、
前記メディアタイムラインに関して、将来のメディアソースからの将来の再生可能なメディアサンプルをユーザに対して再生可能な前記再生期間内の時間を表す将来の再生時時刻を識別し、
前記現在の経過再生時刻が発生した後で前記将来の再生時間が発生する前に実行するようにスケジュールされた前記アプリケーション命令または発生した前記対話型コンテンツ構成要素に対するユーザ入力であって、前記メディアコンテンツ構成要素と前記対話型コンテンツ構成要素との間のフレームレベルの同期化の欠損を発生させ得る前記アプリケーション命令または前記ユーザ入力を識別し、
前記将来の再生時間が到来する前に、前記メディアコンテンツ構成要素と前記対話型コンテンツ構成要素との間のフレームレベルの同期化を維持するように、前記アプリケーション命令または前記ユーザ入力を実行するタイミングを決定することを特徴とする装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メディアコンテンツをレンダリングするタイミングの処理に関する。
【背景技術】
【０００２】
マルチメディアプレーヤは、ビデオ、オーディオ、またはデータコンテンツの組合せ（「マルチメディアプレゼンテーション」）をユーザによる消費のためにレンダリングする装置である。ＤＶＤプレーヤなどのマルチメディアプレーヤは、現在、メディアコンテンツの再生中のユーザの対話式利用を、あるとしても、あまり多くは提供していない。メディアコンテンツの再生は、一般に、再生速度の調節を除くユーザ入力を受け取るために中断される。たとえば、ＤＶＤプレーヤのユーザは、一般に、オーディオ解説もしくは効果、俳優の人物紹介、またはゲームなどの機能を選択して受け取ることができる様々なオプションを表示するメニューに戻るために、再生中の動画を停止しなければならない。
【０００３】
対話型マルチメディアプレーヤは、対話型コンテンツと従来のビデオ、オーディオ、またはデータコンテンツの組合せ（「対話型マルチメディアプレゼンテーション」）を並行してレンダリングする装置である（そのような装置には、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せが含まれる）。対話型コンテンツは一般に、単独でまたは他のビデオ、オーディオコンテンツ、もしくはデータコンテンツとともに並行して提示可能な、任意のユーザ選択可能な可視または可聴オブジェクトである。任意の種類の装置が対話型マルチメディアプレーヤであるが、光学メディアプレーヤ（たとえば、ＤＶＤプレーヤ）、コンピュータ、および他の電子装置などの装置は、大容量の比較的安価なポータブルデータ記憶装置へのアクセスを提供するので、商業的に価値のある対話型マルチメディアプレゼンテーションの制作およびそれに対する消費者需要を可能にするために特に良い位置にある。
【０００４】
すべての種類のメディアコンテンツプレーヤ、特に対話型マルチメディアプレーヤおよび対話型マルチメディアプレゼンテーションへの投資を拡大するには、ビデオ、オーディオ、またはデータコンテンツの予測可能で比較的誤作動（ｇｌｉｔｃｈ）のない再生を実現し、対話型コンテンツとビデオ、オーディオ、またはデータコンテンツの正確な同期化を確実にすることが望ましい。
【０００５】
対話型マルチメディアプレゼンテーションは、再生期間を有し、メディアコンテンツ構成要素および対話型コンテンツ構成要素を含む。メディアコンテンツの一例は、動画であるが、メディアコンテンツは、ビデオ、オーディオ、データ、またはそれらの任意の組合せでもよい。メディアコンテンツは、多数のサンプルに配置される。そのようなサンプルのセットをクリップと呼び、１つのクリップは一般に１つのメディアソースから受け取ることができる。対話型コンテンツは、対話型オブジェクトのプレゼンテーションをユーザに対して、しばしばメディアコンテンツと並行して編成、フォーマット、および同期化するための命令を提供する１つまたは複数のアプリケーションの形態をとる。アプリケーションは通常、宣言型形態（たとえば、拡張可能マークアップ言語形態）およびスクリプト形態の両方の命令を含むが、宣言型形態の命令のみまたはスクリプト形態の命令のみを含むこともできる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ユーザ入力（再生速度の調節または対話型コンテンツの選択など）またはアプリケーション命令の実行は、ユーザに対して次にどのコンテンツを再生するかに影響することがある。しばしば、そのようなユーザ入力またはアプリケーション命令は、それらの効果を直ちに実行することにより、メディアコンテンツの再生における誤作動および／またはメディアコンテンツと対話型コンテンツの間の同期化の欠損が起こることがある。この欠損は、メディアコンテンツおよび対話型コンテンツが事前にレンダリングされている時に発生する。
【課題を解決するための手段】
【０００７】
本明細書で説明する、対話型マルチメディアプレゼンテーションを再生するための方法、システム、装置、および製造品は、一定の事前定義された状態に基づいて実行される命令またはユーザ入力を識別すること、および誤作動および／または同期化の欠損を最小限に抑える方法でそのような命令またはユーザ入力の実行のタイミングを調節することを含む。より具体的には、対話型マルチメディアプレゼンテーションの再生中に行われる一定の動作は、メディアタイムラインを使用して、対話型マルチメディアプレゼンテーションの再生期間内の現在の経過再生時間を識別することを含む。現在の経過再生時間は、現在のメディアソースから現在のメディアサンプルがユーザに対して再生されている時間を表す。現在の状態および予測状態は、次のように確認される。現在の状態は、現在の経過再生時間でのプレゼンテーションシステムの態様（たとえば、現在のメディアサンプルまたは現在のメディアソースの状態）に関連付けられており、予測状態は、１つまたは複数の将来の時間でのプレゼンテーションシステムの態様（将来の再生時間は、１つまたは複数の将来のメディアサンプルが再生可能である将来の再生時間、またはその間隔を含むが、それだけに限らない、将来の任意の時間でよい）に関連付けられている。現在の状態に基づいて実行可能な命令またはユーザ入力は識別され、現在の状態に基づいて命令またはユーザ入力を実行する代わりに、命令またはユーザ入力は予測状態に基づいて実行される。
【０００８】
現在の状態および予測状態に関連付けられた１つまたは複数の状態値（例示のために「メディア状態値」と呼ぶ）は、データ構造体に保持される。予測状態マネージャは、一定のユーザ入力およびアプリケーション命令を受け取り、現在の状態の代わりに予測状態に基づいて（たとえば、予測状態値を使用して）、それらの実行の効果を決定する。特定の命令またはユーザ入力の効果は、その後、次の再生可能なメディアサンプルがユーザに対して再生された後などの所定の時間に実行される。
【０００９】
予測状態マネージャは、プレゼンテーションシステム内の様々な場所で機能する。あるシナリオでは、予測状態マネージャは、物理メディア処理パイプラインの機能を補足し、またはその機能の代替として働く、仮想メディア処理パイプラインとして機能する。アプリケーションプログラミングインターフェイス（「ＡＰＩ」）も提供されるので、アプリケーションの作者は、透過的な方法で、予測状態マネージャに関連付けられた機能にアクセスできる。
【００１０】
この概要は、概念の選択を簡易化された形態で紹介するために提供される。この概念は、詳細な説明の項においてさらに説明される。この概要で説明する以外の要素またはステップが可能であり、どの要素またはステップも必須ではない。この概要は、請求項に記載された対象の主要な特徴または必須の特徴を識別することを意図しておらず、請求項に記載された対象の範囲を決定する助けとして使用されることも意図していない。請求項に記載された対象は、この開示の任意の部分において言及する、任意またはすべての欠点を解決する実施形態に限定されるものではない。
【図面の簡単な説明】
【００１１】
【図１】対話型マルチメディアプレゼンテーションシステムの簡略化した機能ブロック図である。
【図２】再生リストから確認できる例示的なプレゼンテーションタイムラインの説明図である。
【図３】図１に示す対話型マルチメディアプレゼンテーションに関連付けられたアプリケーションの簡略化した機能ブロック図である。
【図４】図１のタイミング信号管理ブロックをより詳細に示す、簡略化した機能ブロック図である。
【図５】図１に示すプレゼンテーションシステムなどのプレゼンテーションシステムの態様を使用する、対話型マルチメディアプレゼンテーションを再生する方法のフローチャートである。
【図６】図１に示すプレゼンテーションシステムおよび／または図５のフローチャートに示す方法の、一定の態様とともに使用できる、例示的なメディアタイムライン（Ａ）および例示的な対話型コンテンツタイムライン（Ｂ）の概略図である。
【図７】図１に示す予測状態マネージャの簡略化した機能ブロック図である。
【図８】図１に示す対話型マルチメディアプレゼンテーションシステムおよび／または図５のフローチャートに示す方法を実装または使用できる動作環境の、例示的な構成の簡略化した機能ブロック図である。
【図９】図１に示すプレゼンテーションシステムおよび／または図５のフローチャートに示す方法を実装または使用できるクライアント／サーバアーキテクチャの簡略化した機能図である。
【図１０】プレゼンテーションシステムまたは動作環境をそれに関連して使用できる、クライアント／サーバアーキテクチャの簡略化した機能図である。
【発明を実施するための形態】
【００１２】
メディアコンテンツ構成要素および対話型コンテンツ構成要素を含むプレゼンテーションシステムが対話型マルチメディアプレゼンテーションを再生する場合、予測可能であり比較的誤作動のないメディアコンテンツ構成要素の再生ならびにメディアコンテンツ構成要素と対話型コンテンツ構成要素の間の予期される同期化を確実にする方法で、一定のユーザ入力またはアプリケーション命令の実行の効果のタイミングをとることが望ましい。
【００１３】
一定のユーザ入力（再生速度の入力および対話型オブジェクトの選択など）およびアプリケーション命令（スクリプト命令など）は、ユーザに対して次に再生される対象に影響を及ぼす。しばしば、そのようなユーザ入力およびアプリケーション命令は、メディアコンテンツ構成要素および／または対話型コンテンツ構成要素の部分が事前にレンダリングされている場合に発生するので、それらの効果が、事前にレンダリングされた素材の効果の前後またはそれに代えて実行され、ユーザに対して表示されるべきかどうかを決定することが重要である。
【００１４】
本明細書で説明するタイミング技法は、現在の状態および予測状態の概念を使用する。現在の状態は、現在のメディアサンプルがユーザに対して再生されている時のプレゼンテーションシステムの態様に関連付けられている（たとえば、現在のメディアサンプルの状態に、または現在のメディアサンプルの派生元のメディアソースの状態に）。予測状態は、将来の時間のプレゼンテーションシステムの態様に関連付けられている（たとえば、次の連続したまたは非連続である、次のメディアサンプルがユーザに対して再生可能な時など、１つまたは複数の将来のメディアサンプルがユーザに対して再生可能な時に）。現在の状態に基づいて実行される命令またはユーザ入力は識別され、現在の状態に基づいた命令またはユーザ入力を実行する代わりに、予測状態に基づいて命令またはユーザ入力の効果が決定される。効果は次いで、次の再生可能なメディアサンプルがユーザに対して再生される前または後などの所定の時間に実行される。
【００１５】
様々な、実質的に無数の状態を定義することが可能である。例示のために、メディア取得状態（ｒｅｔｒｉｅｖａｌ  ｓｔａｔｅ）およびメディアプレゼンテーション状態（およびこれらの組合せ）を説明する。メディア取得状態の例には、標準再生取得状態、一時停止取得状態、低速順方向（ｓｌｏｗ−ｆｏｒｗａｒｄ）取得状態、高速順方向（ｆａｓｔ−ｆｏｒｗａｒｄ）取得状態、低速逆方向（ｓｌｏｗ−ｒｅｖｅｒｓｅ）取得状態、高速逆方向（ｆａｓｔ−ｒｅｖｅｒｓｅ）取得状態、クローズ状態、レディ状態、およびプリローリング状態の１つまたは複数があるが、それだけに限らない。メディアプレゼンテーション状態の例には、メディアキャプチャ状態、メディアレイアウト状態、オーディオ再生状態、およびユーザ選択状態の１つまたは複数があるが、それだけに限らない。現在の状態および予測状態の両方に関連付けられた１つまたは複数の状態値（例示のために、「メディア状態値」と呼ぶ）は、データ構造体内に保持される。
【００１６】
データ構造体は、一定のユーザ入力およびアプリケーション命令を受け取り、現在の状態値の代わりに予測状態値に基づいてそれらの実行の効果を決定する、プレゼンテーションシステム内の機能（本明細書で「予測状態マネージャ」と呼ぶ）によって保持および／またはアクセスされる。ある実装では、予測状態マネージャは、アプリケーションの作者によって使用可能な１つまたは複数のアプリケーションプログラミングインターフェイス（「ＡＰＩ」）の様々な態様を実行するソフトウェアである。予測状態マネージャは、プレゼンテーションシステム内の様々な場所で機能することが可能である。あるシナリオでは、予測状態マネージャは、物理メディア処理パイプラインの機能を補足し、またはその機能の代替として働く、仮想メディア処理パイプラインとして動作する。
【００１７】
図面を参照すると、同じ数字が同じ構成要素を示しており、図１は、対話型マルチメディアプレゼンテーションシステム（「プレゼンテーションシステム」）１００の簡略化した機能ブロック図である。プレゼンテーションシステム１００は、メディアコンテンツマネージャ１０２、対話型コンテンツ（「ＩＣ」）マネージャ１０４、プレゼンテーションマネージャ１０６、タイミング信号管理ブロック１０８、およびミキサ／レンダラ１１０を含む。一般に、設計上の選択が、プレゼンテーションシステム１００の特有の機能の実装方法を決定する。そのような機能は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの組合せを使用して実装される。
【００１８】
動作にあたっては、プレゼンテーションシステム１００は、対話型マルチメディアプレゼンテーションコンテンツ（「プレゼンテーションコンテンツ」）１２０を処理する。プレゼンテーションコンテンツ１２０は、メディアコンテンツ構成要素（「メディア構成要素」）１２２および対話型コンテンツ構成要素（「ＩＣ構成要素」）１２４を含む。メディア構成要素１２２およびＩＣ構成要素１２４は、一般に、それぞれメディアコンテンツマネージャ１０２およびＩＣマネージャ１０４によって別個のデータストリームとして処理されるが、必ずそうする必要はない。
【００１９】
プレゼンテーションシステム１００はまた、プレゼンテーションコンテンツ１２０のプレゼンテーションをユーザ（図示せず）に対して再生プレゼンテーション１２７として実行する。再生プレゼンテーション１２７は、ミキサ／レンダラ１１０によって生成され、ディスプレイまたはスピーカ（図示せず）などの装置を介してユーザが受け取り可能な、プレゼンテーションコンテンツ１２０に関連付けられた可視情報および／または可聴情報を表す。説明のために、プレゼンテーションコンテンツ１２０および再生プレゼンテーション１２７は、任意の形態の高画質（ｈｉｇｈ−ｄｅｆｉｎｉｔｉｏｎ）ＤＶＤ動画コンテンツを表すと仮定する。しかし、プレゼンテーションコンテンツ１２０および再生プレゼンテーション１２７は、現在知られているまたは最近開発されたメディアコンテンツの任意の種類のプレゼンテーションを提示するために構成されることが理解されよう。
【００２０】
メディア構成要素１２２は、プレゼンテーションコンテンツ１２０の従来型のビデオ、オーディオ、またはデータ構成要素を表す。たとえば、動画は一般に、１つまたは複数のバージョン（たとえば、成人視聴者向けバージョン、および未成年の視聴者向けバージョン）、各タイトルに関連付けられた１つまたは複数のチャプタ（図示せず）を有する１つまたは複数のタイトル１３１（タイトルについては、プレゼンテーションマネージャ１０６に関連してさらに下記で説明する）、１つまたは複数のオーディオトラック（たとえば、動画は、字幕付きまたは字幕なしで、１つまたは複数の言語で再生可能）、および監督の解説、付加的な映像、予告編などの追加の特徴を有する。タイトルとチャプタの区別は、純粋に論理的な区別であることが理解されよう。たとえば、単一の認識されるメディアセグメントは、単一のタイトル／チャプタの一部であることも、複数のタイトル／チャプタからなることもできる。コンテンツ作成ソースによって、該当する論理的区別が決定する。メディア構成要素１２２を動画と呼んでいるが、実際は、ビデオ、オーディオ、データ、またはこれらの任意組合せでよいことも理解されよう。
【００２１】
メディア構成要素１２２を形成するメディアサンプルのセット（たとえば、ビデオ、オーディオ、またはデータサンプルのセット）を、クリップ１２３と呼ぶ（クリップ１２３は、メディア構成要素１２２、メディアコンテンツマネージャ１０２、および再生リスト１２８内に示されている）。メディアコンテンツマネージャ１０２を参照すると、クリップ１２３に関連付けられた情報は、１つまたは複数のメディア処理パイプライン１５９によって処理される（任意の数のメディア処理パイプラインが可能であることを示すために、１〜Ｎと付記された１つのメディア処理パイプラインを示している）。特定のメディア処理パイプライン１５９内では、クリップ１２３に関連付けられた情報がメディアソース１６０から受け取られ、デコーダブロック１６１で逆多重化（ｄｅｍｕｌｔｉｐｌｅｘ）、復号化、および／または解読（ｄｅｃｒｙｐｔ）される。
【００２２】
特定のメディアソース１６０は、ビデオ、オーディオ、またはデータの派生または取得元の、任意の装置、場所、またはデータである。メディアソースの例には、ネットワーク、ハードドライブ、光学メディア、代替の物理ディスク、および特有のビデオ、オーディオ、またはデータの格納場所を参照するデータ構造体があるが、それだけに限らない。一般に、任意のコンピュータ可読メディアは、メディアソースとして働くことができる（コンピュータ可読メディアについては、図８に関連してさらに下記で説明する）。
【００２３】
デコーダブロック１６１は、メディアソース１６０から受け取った情報から、レンダリング可能なビデオ、オーディオ、またはデータコンテンツを取得するのに使用される任意の装置、技法、またはステップを表す。デコーダブロック１６１は、たとえば、コーデック、デマルチプレクサ、またはデクリプタを含むことができる。デコーダブロック１６１およびその構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せを使用して実行することができる。デコーダとメディアソースの１対１の関係が示されているが、１つのデコーダは複数のメディアソースに対して機能し、逆の場合も同様であることが理解されよう。たとえば、いくつかの市販のＤＶＤプレーヤはデコーダを１つのみ含む。
【００２４】
物理メディア処理パイプライン（複数可）１５９に加えて、メディアコンテンツマネージャ１０２は、１つまたは複数の仮想メディア処理パイプライン１７０（１つを示す）を含む。仮想メディア処理パイプライン１７０は、メディア処理パイプライン（複数可）１５９と通信する。ある実装では、仮想メディア処理パイプライン１７０は、ＩＣマネージャ１０４によって実行するために構成されたアプリケーション１５５（さらに下記で説明する）の作者によって書かれた命令を介してアクセスされるアプリケーションプログラミングインターフェイス（「ＡＰＩ」）を実装した予測状態マネージャ１９５を含む。図５〜図７に関連して全体をさらに下記で説明するように、予測状態マネージャ１９５は、一定のユーザ入力１５０および入力１９０を受け取り、再生プレゼンテーション１２７上でそのようなユーザ入力１５０および入力１９０の効果を実行するタイミングを決定するのに使用される。
【００２５】
メディアデータ１３２は、メディアコンテンツマネージャ１０２によってレンダリングのために準備され、ミキサ／レンダラ１１０に伝送された、メディア構成要素１２２に関連付けられたデータである。メディアデータ１３４のサンプル（たとえば、フレーム）は一般に、アクティブな各クリップ１２３について、レンダリングされたクリップの一部を含む。特定のメディアデータのセットにおいてレンダリングされるクリップの正確な部分または量は、ビデオ、オーディオ、またはクリップのデータコンテンツの特性や、メディアデータの派生元のメディアソースに関連付けられた１つまたは複数のパラメータ（たとえば、コーデックのパラメータまたは設定、および暗号化のパラメータまたは設定）などのいくつかの要因に基づく場合がある。メディアコンテンツマネージャ１０２は、メディア構成要素１２２および／またはＩＣ構成要素１２４（下記で説明する）を含む様々なクリップの識別情報およびスケジュールに基づく動的なメディア処理の負荷を有する。
【００２６】
再びプレゼンテーションコンテンツ１２０を参照すると、ＩＣ構成要素１２４は、オプションとしてメディア構成要素１２２と並行して提示可能な、ユーザ選択可能な可視または可聴オブジェクトである対話型オブジェクト１２５、ならびに可視または可聴オブジェクトを提示するための任意の命令（アプリケーション１５５として示されており、さらに下記で説明する）を含む。対話型オブジェクト１２５は、静的であるかまたは動画化されている場合がある。対話型オブジェクトの例には、特にビデオサンプルまたはクリップ、オーディオサンプルまたはクリップ、画像、グラフィックス、テキスト、およびこれらの組合せがある。
【００２７】
対話型オブジェクト１２５は、１つまたは複数のソース（図示せず）に由来する。ソースは、対話型オブジェクトの派生または取得元の、任意の装置、場所、またはデータである。対話型オブジェクト１２５のソースの例には、ネットワーク、ハードドライブ、光学メディア、代替の物理ディスク、および特有の対話型オブジェクトの格納場所を参照するデータ構造体があるが、それだけに限らない。対話型オブジェクト１２５の形態の例には、ポータブルネットワークグラフィックス（「ＰＮＧ」）、ジョイントフォトグラフィックエクスパーツグループ（「ＪＰＥＧ」）、ムービングピクチャーエクスパーツグループ（「ＭＰＥＧ」）、複数画像ネットワークグラフィックス（ｍｕｌｔｉｐｌｅ−ｉｍａｇｅ  ｎｅｔｗｏｒｋ  ｇｒａｐｈｉｃｓ）（「ＭＮＧ」）、オーディオビデオインターリーブ（「ＡＶＩ」）、拡張可能マークアップ言語（「ＸＭＬ」）、ハイパーテキストマークアップ言語（「ＨＴＭＬ」）、拡張可能ＨＴＭＬ（「ＸＨＴＭＬ」）、拡張可能スタイルシート言語（「ＸＳＬ」）、およびＷＡＶがあるが、それだけに限らない。
【００２８】
アプリケーション１５５は、プレゼンテーションシステム１００が、それによりユーザに対して対話型オブジェクト１２５を提示する機構を提供する。アプリケーション１５５は、データ上の所定の操作を電子的に制御する、任意の信号処理方法または格納された命令（複数可）を表す。説明のために、ＩＣ構成要素１２４は、図２および図３に関連してさらに下記で説明する、３つのアプリケーション１５５を含むと仮定する。アプリケーション１５５は、単独でまたはユーザイベントに応じて、クリップ１２３に関連付けられたメディアデータまたは対話型オブジェクト１２５がユーザに対して提示される時を決定することができる。
【００２９】
ＩＣマネージャ１０４は、スクリプト処理エンジン１８０およびマークアップ処理エンジン１８１を含む。スクリプト処理エンジン１８０は、アプリケーション１５５に関連付けられたスクリプトコマンドを受け取り、解釈し、および実行のために構成する（スクリプト３０８については、図３に関連して示し、説明する）。マークアップ処理エンジン１８１は、アプリケーション１５５に関連付けられたマークアップを受け取り、解釈し、および実行のために構成する（マークアップ要素３０３については、図３に関連して示し、説明する）。特定のアプリケーション１５５の実行中、ＩＣマネージャ１０４は、マークアップ要素の状態および／またはそれによって影響を受ける関連付けられた対話型オブジェクトの状態に関するコンテキスト、ならびにスクリプトの変数、機能、および他の状態に関するコンテキストを保持する。アプリケーション１５５の実行が進行し、ユーザ入力が受け取られると、影響を受けた任意の要素／メディアオブジェクトのプロパティが記録され、そのプロパティは再生プレゼンテーション１２７内での動作をトリガするために使用できる。「ＩＣＭからの入力」１９０と記したアプリケーション１５５の一定の命令は、プレゼンテーションシステム１００内の他の機能または構成要素との通信または相互運用を実行できる。図に示すように、入力１９０は、仮想処理パイプライン１７０／予測状態マネージャ１９５によって受け取られる。
【００３０】
対話型コンテンツデータ（「ＩＣデータ」）１３４は、ＩＣマネージャ１０４によってレンダリングのために準備され、ミキサ／レンダラ１１０に伝送されたＩＣ構成要素１２４に関連付けられたデータである。各アプリケーションは、使用時にはそのアプリケーションのレンダリングに関連付けられた１つまたは複数の作業アイテム（図示せず）を保持する、関連付けられたキュー（図示せず）を有することができる。しかし、アプリケーションがアクティブな作業アイテムを有しないことも可能である。
【００３１】
メディアコンテンツマネージャ１０４、ＩＣマネージャ１０２、ミキサ／レンダラ１１０、およびタイミング信号管理ブロック１０８と通信するように構成されたプレゼンテーションマネージャ１０６は、プレゼンテーションコンテンツ１２０およびユーザに対する再生プレゼンテーション１２７のプレゼンテーションの処理を実行する。プレゼンテーションマネージャ１０６は、再生リスト１２８へのアクセスを有する。再生リスト１２８は、ユーザに対して提示可能な、時間順のクリップ１２３およびアプリケーション１５５（対話型オブジェクト１２５を含む）を特に含む。クリップ１２３およびアプリケーション１５５／対話型オブジェクト１２５は、１つまたは複数のタイトル１３１を形成するように構成可能である。例示のために、本明細書では、１つのタイトル１３１を説明する。再生リスト１２８は、拡張可能マークアップ言語（「ＸＭＬ」）ドキュメント、または別のデータ構造体を使用して実行される。
【００３２】
プレゼンテーションマネージャ１０６は、再生リスト１２８を使用して、タイトル１３１用のプレゼンテーションタイムライン１３０を確認する。概念的には、プレゼンテーションタイムライン１３０は、特有のクリップ１２３およびアプリケーション１５５がユーザに対して提示可能である、タイトル１３１内の時間を示す。クリップ１２３のプレゼンテーションとアプリケーション１５５の例示的な関係を示すサンプルプレゼンテーションタイムライン１３０を、図２に関連して示し、説明する。一定の環境では、再生リスト１２８および／またはプレゼンテーションタイムライン１３０を使用して、メディアコンテンツタイムライン（「メディアタイムライン」）１４２（例示的なメディアタイムライン１４２については、図６Ａに関連してさらに下記で説明する）および対話型コンテンツタイムライン（「ＩＣタイムライン」）１４４（例示的なＩＣタイムライン１４４については、図６Ｂに関連してさらに下記で説明する）を確認することも有用である。
【００３３】
動作にあたっては、プレゼンテーションマネージャ１０６は、プレゼンテーションタイムライン１３０、メディアタイムライン１４２、および／またはＩＣタイムライン１４４についての情報を含むが、それだけに限らない情報を、メディアコンテンツマネージャ１０２およびＩＣマネージャ１０４に提供する。プレゼンテーションマネージャ２０６からの入力に基づいて、メディアコンテンツマネージャ１０２はレンダリングのためにメディアデータ１３２を準備し、ＩＣマネージャ１０４はレンダリングためにＩＣデータ１３４を準備する。ある実装では、プレゼンテーションマネージャ１０６はメディア処理パイプライン１５９および仮想メディア処理パイプライン１７０を制御することができる。
【００３４】
タイミング信号管理ブロック１０８は、メディアコンテンツマネージャ１０２およびＩＣマネージャ１０４によってそれぞれメディアデータ１３２およびＩＣデータ１３４を準備および生成するためのタイミングを制御するのに使用される、様々なタイミング信号１５８を生成する。特に、タイミング信号１５８は、メディアデータ１３２およびＩＣデータ１３４の近似的な同期化（たとえば、フレーム毎ベースまたは別の時間ベースでのタイミング／同期化）を達成するのに使用される。タイミング信号管理ブロック１０８およびタイミング信号１５８の詳細については、図４に関連してさらに下記で説明する。
【００３５】
ミキサ／レンダラは、ビデオ面（図示せず）にメディアデータ１３２をレンダリングし、グラフィックス面（図示せず）にＩＣデータ１３４をレンダリングする。グラフィックス面は一般に、ビデオ面上に重ね合わされて、ユーザに対する再生プレゼンテーション１２７を生成するが、必ずしもそうとは限らない。
【００３６】
引き続き図１を参照すると、図２は、再生リスト１２８内のタイトル１３１に関するサンプルプレゼンテーションタイムライン１３０の説明図である。時間を横軸２２０に示す。タイトル１３１内の提示可能な情報、具体的にはメディア構成要素１２２（クリップ１２３を図示する）およびＩＣ構成要素１２４（対話型オブジェクト１２５を提示する、アプリケーション１５５を図示する）についての情報を縦軸２２５に示す。
【００３７】
メディア構成要素１２２に関連付けられたクリップ１２３に関して、第１メディアクリップ（「メディアクリップ１」）２３０、第２メディアクリップ（「メディアクリップ２」）２５０、第３メディアクリップ（「メディアクリップ３」）２５１、および第４メディアクリップ（「メディアクリップ４」）２５３の４つのクリップ１２３を示す。スクリプトクリップ２５５は、一般には再生リストに含まれないが、再生プレゼンテーション１２７内で、アプリケーションを介して様々な時間に（再生のためにスケジュールされたメディアコンテンツがない場合や、メディアコンテンツの再生が一時停止されている場合など）、オプションとして起動可能な（自動的にまたはユーザによって）、動画のサムネイルなどのメディアクリップである。
【００３８】
ＩＣ構成要素１２４に関して、あるアプリケーションは、メニュー２８０のユーザ選択可能なアイテム（たとえば、関連したテキストまたはグラフィックスを有するボタン）を提供する一定の対話型オブジェクトの提示に関与する。別のアプリケーションは、グラフィックオーバーレイ２９０を提供する１つまたは複数の対話型オブジェクトの提示に関与する。図に示すように、メニュー２８０はメディアクリップ１から４とともに並行して表示され、グラフィックオーバーレイ２９０はメディアクリップ１  ２３０およびメディアクリップ２の一部分とともに並行して表示可能である。第３のアプリケーションは、プレゼンテーション用にスケジュールされたメディアコンテンツがない場合、スクリプトクリップ２５５の提示に関与する（図に示すように、スクリプトクリップ２５５は、２０秒と３０秒の間で再生可能である）。
【００３９】
タイトル１３１をユーザに対して提示可能な、横軸２２０に沿った特定の量の時間を、タイトル１３１の再生期間２９２と呼ぶ。再生期間２９２内の特有の時間を、タイトル時間と呼ぶ。ＴＴ１  ２９３、ＴＴ２  ２９４、ＴＴ３  ２９５、ＴＴ４  ２９６、ＴＴ５  ２９７、ＴＴ６  ２９８、およびＴＴ７  ２９９の７つのタイトル時間（「ＴＴ」）をプレゼンテーションタイムライン１３０上に示す。タイトルは、１回または２回以上再生される（たとえば、ループする方法で）ので、再生期間２９２は、タイトル１３１の１回の反復（ｉｔｅｒａｔｉｏｎ）に基づいて決定される。再生期間２９２は、所定の再生速度（たとえば、標準または１倍の再生速度）、所定のフレームレート、または所定のタイミング信号ステータスを含むが、それだけに限らない、所望の任意の基準に対して決定可能である。再生速度、フレームレート、およびタイミング信号については、図４に関連してさらに下記で説明する。
【００４０】
表示技法などの実行に特有の要因、ならびに各タイトルについてのクリップおよび対話型オブジェクトの間の再生順序およびタイミングの関係に関する特有の規則は、そこでのタイトルの再生期間およびタイトル時間の正確な値に影響することが理解されよう。再生期間およびタイトル時間という用語は、すべてのそのような実行に特有の詳細を包含することを意図している。
【００４１】
ＩＣ構成要素１２４に関連付けられたコンテンツをその時に／その範囲内で提示可能なタイトル時間は一般に所定であるが、ユーザがそのようなコンテンツと対話する場合に行われる動作は、再生プレゼンテーション１２７を再生している間に、ユーザ入力のみに基づいて決定されることが理解されよう。たとえば、ユーザは、再生プレゼンテーション１２７の再生中に、一定のアプリケーション、対話型オブジェクト、および／またはそれらに関連付けられた追加のコンテンツを、選択、活性化、または非活性化することができる。
【００４２】
メディアプレゼンテーション間隔は、特定のクリップ１２３に関連付けられた特定のコンテンツがその間に再生可能である、再生期間２９２の開始時間および終了時間によって定義される。つまり、プレゼンテーション間隔は、一般に再生期間２９２内の特有の時間に基づく。アプリケーションプレゼンテーション間隔（図３に関連してさらに下記で説明する）も同様に定義可能である。
【００４３】
引き続き図１および図２を参照すると、図３は、単一のアプリケーション１５５の機能ブロック図である。アプリケーション１５５は一般に、メニュー２８０、グラフィックオーバーレイ２９０、およびスクリプトクリップ２５５（図２に示す）に関連付けられた対話型オブジェクトの提示に関与するアプリケーションの代表である。アプリケーション１５５は、命令３０４（さらに下記で説明する）を含む。アプリケーション１５５はアプリケーション再生期間３２０および１つまたは複数のアプリケーションプレゼンテーション間隔３２１と関連付けられている。
【００４４】
アプリケーション再生期間３２０は、アプリケーション１５５に関連付けられた対話型オブジェクト１２５が再生プレゼンテーション１２７の受信者に対してその範囲内で提示可能および／または受信者によって選択可能な、再生期間２９２の量（部分または全体）に関連する、特定の時間の量である。特定のアプリケーションに関連付けられたアプリケーション再生期間３２０がプレゼンテーションタイムライン上で概念化される場合に得られる、タイトル時間の開始および終了によって定義される間隔をアプリケーションプレゼンテーション間隔３２１と呼ぶ。
【００４５】
いくつかの場合において、アプリケーション１５５は、２つ以上のページ（ページは図示せず）を有することができる。ページは、特定のアプリケーション再生期間３２０および／またはアプリケーションプレゼンテーション間隔３２１内で同時に提示可能な１つまたは複数の対話型オブジェクトの論理的なグループである。所与のタイトルに関連付けられたアプリケーションおよびページの数、および各アプリケーションまたはページに関連付けられた対話型オブジェクトは、一般に、設計上の選択の問題である論理的な区別である。
【００４６】
命令３０４は、実行されると、ユーザ入力に基づくアプリケーション１５５に関連付けられた対話型オブジェクト１２５のレンダリングに関するタスク（他のタスクの中で特に）を実行する。ユーザ入力は、ＩＣ構成要素１２４またはメディア構成要素１２２のプレゼンテーションに影響を与える。ユーザ入力の例には、メディアソースの状態を変更するユーザ入力（たとえば、再生速度の入力）、およびメニュー２８０内のボタンの選択、グラフィクオーバーレイ２９０に関連付けられた円の選択、またはスクリプトクリップ２５５の呼び出しなどの、再生プレゼンテーション１２７内の対話型オブジェクトとのユーザの相互作用が含まれるが、それだけに限らない。そのような相互作用は、キーボード、リモートコントロール装置、マウス、スタイラス、または音声コマンドを含む、現在知られているまたは最近開発された任意の種類のユーザ入力装置を使用して発生する。アプリケーション１５５は、ユーザイベント以外のイベントに応答することが理解されよう。
【００４７】
一般に、命令３０４は、コンピュータ可読メディア（図８および図９に関連してさらに下記で説明する）において符号化されたコンピュータ実行可能命令またはコマンドである。本明細書で説明する例では、命令３０４は、マークアップ要素３０３またはスクリプト３０８のどちらかを使用して実行される。スクリプトまたはマークアップ要素はどちらも単独で使用可能だが、一般に、スクリプトおよびマークアップ要素を組み合わせることにより、高画質ＤＶＤ動画向けの包括的な対話型機能のセットを作成できる。
【００４８】
スクリプト３０８は、命令型プログラミング言語などの非宣言型プログラミング言語で書かれた命令３０４を含む。命令型プログラミング言語は、プロセッサによって実行されるコマンドのシーケンスによって計算を記述する。スクリプトが使用される場合の例には、ユーザ入力への応答、対話型オブジェクト１２５のプレゼンテーションの態様の処理、システムイベント、状態管理、およびリソース管理（たとえば、キャッシュされたまたは永続的に格納されたリソースへのアクセス）がある。スクリプト３０８は、再生プレゼンテーション１２７を介してユーザに対して次に提示する対象に影響を及ぼすことができ、特に、複数のアプリケーション１５５が、ユーザに対する提示またはプレゼンテーションのためにスケジュールされている対象について影響を及ぼすまたはそれに条件付けされるコマンドを発行する環境では、一定のスクリプトコマンドを実行するタイミングを制御することが望ましい場合がある。
【００４９】
マークアップ要素３０３は、拡張可能マークアップ言語（「ＸＭＬ」）などの宣言型プログラミング言語で書かれた命令３０４を表す。ＸＭＬスキーマは、ＸＭＬドキュメントクラスの構文（複数可）定義である。いくつかのＸＭＬスキーマはワールドワイドウェブコンソーシアム（「Ｗ３Ｃ」）によって定義されている。他のＸＭＬスキーマは、ＤＶＤフォーラム、すなわち、高画質ビデオ向けＤＶＤ規格（ＤＶＤ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  ｆｏｒ  Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｖｉｄｅｏ）および他の使用形態向けのＤＶＤ規格に準拠して、ＸＭＬドキュメントで使用するためのＤＶＤフォーラムによって公表されている。高画質ＤＶＤ動画向けの他のスキーマならびに他の対話型マルチメディアプレゼンテーション向けのスキーマがあることが理解されよう。
【００５０】
引き続き図３を参照すると、アプリケーション１５５は、予測状態マネージャ１９５（図７に関連してさらに説明する）の機能にアクセスまたは機能を実行するために、仮想処理パイプラインＡＰＩ３６０などの、１つまたは複数のアプリケーションプログラミングインターフェイス（「ＡＰＩ」）３５０を使用することもできる。一般に、スクリプトの作者は、ＡＰＩ１５０を使用して、特定のアプリケーションの内部および外部のリソースにアクセスする。たとえば、リソースは、ユニバーサルリソース識別子または他の種類の所定の識別子を使用してアクセス可能である。アプリケーションの内部のリソースの例には、特定のアプリケーションに関連付けられた対話型オブジェクトおよびマークアップがあるが、それだけに限らない。特定のアプリケーションの外部にあるリソースの例には、他のアプリケーション、ネットワークの場所、メディアコンテンツマネージャ１０２およびその構成要素（仮想処理パイプライン１７０など）、プレゼンテーションマネージャ１０６およびその構成要素、ＩＣマネージャ１０４およびその構成要素、ミキサ／レンダラ１１０およびその構成要素、ならびにタイミング信号管理ブロック１０８およびその構成要素があるが、それだけに限らない。ＤＶＤフォーラムによって公表された高画質ビデオ向けの規格に関連して、ＡＰＩを介してアクセス可能なオブジェクトおよびメソッドのクラスライブラリは付属文書Ｚに説明されており、参照により本明細書に組み込まれる。
【００５１】
引き続き図１〜図３を参照すると、図４は、タイミング信号管理ブロック１０８およびタイミング信号１５８の様々な構成要素をより詳細に表す、簡略化した機能ブロック図である。
【００５２】
タイミング信号管理ブロック１０８は、プレゼンテーションシステム１００内の特有の時間または期間を決定するのに使用されるクロックおよび／またはタイミング信号の処理に関与する。図に示すように、継続するタイミング信号４０１は、クロックソース４０２によって所定の速度で生成される。クロックソース４０２は、汎用コンピュータまたは専用の電子装置などの処理システムに関連付けられたクロックでもよい。クロックソース４０２は、実時間の１秒内に所定の速度で１秒相当のタイミング信号４０１を生成するので、クロックソース４０２によって生成されるタイミング信号４０１は、一般に、実世界の時計が変化するように継続して変化する。
【００５３】
タイミング信号４０１は、ＩＣフレームレート計算器４０４、メディアフレームレート計算器４０６、時間基準計算器４０８、および時間基準計算器４９０への入力である。ＩＣフレームレート計算器４０４は、タイミング信号４０１に基づくタイミング信号４０５を生成する。タイミング信号４０５を「ＩＣフレームレート」と呼び、ＩＣデータ１３４のフレームがＩＣマネージャ１０４によって生成される速度を表す。ＩＣフレームレートの１つの例示的な値は、３０フレーム／秒である。しかし、ＩＣフレームレート４０５の周波数（「プレゼンテーションクロック周波数」と呼ぶ）は動的に変化する。プレゼンテーションシステム１００の様々な構成要素内の処理負荷は、プレゼンテーションクロック周波数に基づいて変化することも理解されよう。ＩＣフレームレート計算器４０４は、タイミング信号４０５を生成するために、タイミング信号４０１の速度を減少または増加させることができる。
【００５４】
ＩＣデータ１３４のフレームは一般に、有効な各アプリケーション１５５および／またはそのページについて、関係するユーザイベントに従って有効なアプリケーションおよび／またはページに関連付けられた、各対話型オブジェクト１２５のレンダリングを含む。例示のために、有効なアプリケーションを、再生期間２９２の現在のタイトル時間がプレゼンテーションタイムライン１３０に基づいてその範囲内に入る、アプリケーションプレゼンテーション間隔３２１を有するアプリケーションとする。アプリケーションは、２つ以上のアプリケーションプレゼンテーション間隔を有する場合があることが理解されよう。ユーザ入力またはリソース可用性に基づくアプリケーションの状態について、本明細書では特有の区別を設けないことも理解されよう。
【００５５】
メディアフレームレート計算器４０６は、タイミング信号４０１に基づいて、タイミング信号、すなわちタイミング信号４０７も生成する。タイミング信号４０７を「メディアフレームレート」と呼び、メディアサンプルがメディアコンテンツマネージャ１０２によって生成される速度を表す。メディアフレームレートは、ＩＣフレームレート４０５と同一の場合も異なる場合もある。メディアフレームレートの１つの例示的な値は、２４フレーム／秒である。しかし、メディアフレームレート４０７の周波数は動的に変化する。メディアフレームレート計算器４０６は、タイミング信号４０７を生成するために、タイミング信号４０１の速度を減少または増加させることができる。
【００５６】
クロックソース４７０は、クリップ１２３に関連付けられた情報がメディアソース１６１から生成される速度を制御する、タイミング信号４７１を生成する。クロックソース４７０は、クロック４０２と同じクロックでよく、またクロックソース４０２と同じクロックに基づいてもよい。代替として、クロック４７０およびクロック４０２は、完全に異なるおよび／または異なるソースを有することもできる。同様に、メディアフレームレート４０７は、タイミング信号４７１と同じでよく、またタイミング信号４７１と同じ値に基づいてもよく、またタイミング信号は異なってもよい。
【００５７】
クロックソース４７０は、メディア状態インディケータブロック４８０によって生成される、メディア状態インディケータ信号４８１に基づいて、タイミング信号４７１の速度（「メディアクロック周波数」と呼ぶ）を調節する。メディアクロック周波数はまた、符号化速度または復号化速度などのメディアソースの特性に基づいて変化する。したがって、メディアクロック周波数はクリップごとに変化する。
【００５８】
メディア状態インディケータブロック４８０はまた、特定のメディアソース１６０（図１に示す）からの、ビデオ、オーディオ、またはデータ情報の取得状態またはプレゼンテーション状態である、１つまたは複数のメディア状態を表しまたは決定するのに使用可能である。メディア取得状態の例には、標準再生取得状態、一時停止取得状態、低速順方向取得状態、高速順方向取得状態、低速逆方向取得状態、高速逆方向取得状態、クローズ状態、レディ状態、およびプリローリング状態（すべてさらに下記で説明する）があるが、それだけに限らない。メディアプレゼンテーション状態の例には、メディアキャプチャ状態、メディアレイアウト状態、オーディオ再生状態、または再生プレゼンテーション１２７内で一定のメディアデータ１３２またはＩＣデータ１３４が提示される方法または提示されるかどうかを示す、ユーザ選択状態（すべてさらに下記で説明する）があるが、それだけに限らない。特定のメディア取得状態およびメディアプレゼンテーション状態は、関連するメディア状態値（図６Ａおよび図７に関連してさらに下記で説明する）を有することができる。メディア状態値は、特定のメディア状態に関連付けられた１つまたは複数のプロパティ、属性、またはパラメータである。
【００５９】
様々な例示的なメディア状態のより詳細な説明を続ける。特定のメディアソースからの、ビデオ、オーディオ、またはデータ情報の取得状態は、再生プレゼンテーション１２７の様々な再生速度に基づいて定義される。一定のユーザ入力１５０は再生プレゼンテーション１２７の再生速度を変更し、したがって特定のメディアソース１６０からの、ビデオ、オーディオ、またはデータ情報の取得速度を変更する。たとえば、再生プレゼンテーション１２７は、標準速度で順方向に進行する場合があり、また標準速度よりも速い速度または遅い速度で、順方向および逆方向の両方に進行する場合もある。標準速度は相対的な用語であり、プレゼンテーションごとおよびクリップごとに変化することが理解されよう。
【００６０】
標準再生取得状態は、再生プレゼンテーション１２７が標準速度で順方向に進行する場合に発生するように定義される。低速順方向取得状態は、再生プレゼンテーション１２７が順方向に、ただし実時間よりも遅く進行する場合に発生するように定義される。高速順方向取得状態は、再生プレゼンテーション１２７が順方向に、ただし実時間よりも速く進行する場合に発生するように定義される。低速逆方向取得状態は、再生プレゼンテーション１２７が逆方向に、ただし実時間よりも遅く進行する場合に発生するように定義される。高速逆方向取得状態は、再生プレゼンテーション１２７が逆方向に、ただし実時間よりも速く進行する場合に発生するように定義される。一時停止取得状態は、再生プレゼンテーション１２７がユーザによって一時停止された場合に発生するように定義される。
【００６１】
高速逆方向取得状態および高速順方向取得状態中に、一定のメディアコンテンツの再生は、しばしばスキップされる。他のユーザ入力は、ユーザが動画のある部分から別の部分へジャンプする（たとえば、メニュー２８０などの対話型メニューから選択することにより）場合などに、一定のコンテンツの再生をスキップさせることがある。
【００６２】
特定のメディアソース１６０からの特定のクリップ１２３に関連付けられたビデオ、オーディオ、またはデータ情報の再生の位置決めおよび／または開始に関連付けられた取得状態も定義可能である。たとえば、クローズ状態は、特定のクリップ１２３に関連付けられたビデオ、オーディオ、またはデータ情報が特定のメディアソース１６０から読み取られる前に発生するように定義される。レディ状態は、特定のメディアソース１６０からの、ビデオ、オーディオ、またはデータ情報のサンプルの第１グループが復号化され、レンダリング可能な状態にある場合に発生するように定義される。プリローリング状態は、特定のメディアソース１６０からの、ビデオ、オーディオ、またはデータ情報のサンプルの第１グループをレンダリングするために準備のステップが行われている、クローズ状態とレディ状態の間に発生するように定義される。しかし、他のメディアサンプルは、前のクリップの再生が終了する場合、または前の再生を直ちに停止することなく、予期しない遷移について準備する場合などに、別のメディア処理パイプラインまたはメディアソースを使用して並行して提示可能である。準備のステップは、特定のメディアソース１６０からの情報の読み取り、および情報の逆多重化、復号化および／または解読を含むが、それだけに限らない。特定のメディアソースからの、情報のサンプルの第１グループは、必ずしも特定のクリップ１２３内で発生するサンプルの第１グループとは限らず、サンプルの第１グループの定義方法は、符号化または暗号化の形態またはプロトコルなどの要因に基づいて、プレゼンテーションごとに変化することが理解されよう。
【００６３】
再生プレゼンテーション１２７内でのメディアデータ１３２またはＩＣデータ１３４の提示方法または提示するかどうかを示す、メディアプレゼンテーション状態も定義可能である。たとえば、メディアキャプチャ状態は、一時停止取得状態で発生することを定義可能であり、メディアレイアウト状態は、再生プレゼンテーション１２７内でメディアデータ１３２のレイアウトが変更されているかどうかを示すのに使用可能であり、オーディオ再生状態は、一定のオーディオ効果が再生されているかどうかを示すのに使用可能であり、リソースインディケータの状態は、再生プレゼンテーション１２７内で提示可能な対話型オブジェクトまたは別のリソースを識別するのに使用可能である。
【００６４】
図４の要素を再び参照すると、経過クリップ再生時間４５２は、アクティブなクリップ１２３に関連付けられた特定のプレゼンテーション間隔内で経過した時間の量を表す。本明細書での説明のために、アクティブなクリップを、プレゼンテーションタイムライン１３０に基づいて再生期間２９２の現在のタイトル時間がその範囲内に入る、プレゼンテーション間隔（図２に示す）を有するクリップとする。時間基準計算器４５４は、時間基準４５２を受け取り、メディア時間基準４５５を生成する。メディア時間基準４５５は、１つまたは複数の時間基準４５２に基づいて経過した再生期間２９２の総量を表す。一般に、２つ以上のクリップが並行して再生されている場合、１つの時間基準４５２のみがメディア時間基準４５５の生成に使用される。メディア時間基準４５５の決定に使用される特定のクリップ、および複数のクリップに基づくメディア時間基準４５５の決定方法は実装上の選択の問題である。
【００６５】
時間基準計算器４０８は、タイミング信号４０１、メディア時間基準４５５、およびメディア状態インディケータ信号４８１を受け取り、タイトル時間基準４０９を生成する。タイトル時間基準４０９は、時間基準計算器４０８への１つまたは複数の入力に基づく、再生期間２９２内で経過した時間の総量を表す。
【００６６】
時間基準計算器４９０は、タイミング信号４０１およびタイトル時間基準４０９を受け取り、アプリケーション時間基準（複数可）４９２およびページ時間基準（複数可）４９４を生成する。単一のアプリケーション時間基準４９２は、継続するタイミング信号４０１に関して、特定のアプリケーション再生期間３２０（図３に関連して示し、説明する）の経過時間の量を表す。アプリケーション時間基準４９２は、現在のタイトル時間が特定のアプリケーションのアプリケーションプレゼンテーション間隔３２１内に入ることを、タイトル時間基準４０９が示す時を決定する。アプリケーション時間基準４９２は、アプリケーションプレゼンテーション間隔３２１の完了時にリセットされる（たとえば、非アクティブになる、またはやり直す）。アプリケーション時間基準４９２はまた、ユーザイベントに応じて、またはトリック再生が発生した場合などの、他の状況においてもリセットされる。
【００６７】
ページ時間基準４９４は、継続するタイミング信号４０１に関して、アプリケーションの特定のページに関する特定のアプリケーション再生期間内の経過時間の量を表す。アプリケーションの特定のページに関するページ時間基準４９４は、現在のタイトル時間が該当するページプレゼンテーション間隔（図示せず）内に入ることを、タイトル時間基準４０９が示す時を決定する。ページプレゼンテーション間隔は、アプリケーションプレゼンテーション間隔３２１（図３に示す）の副間隔である。ページ時間基準（複数可）４９４は、該当するページプレゼンテーション間隔（複数可）（図示せず）の完了時にリセットされる。ページ時間基準４９４は、ユーザイベント応じて、またはトリック再生が発生した場合などの、他の状況においてもリセットされる。アプリケーションプレゼンテーション間隔３２１および／またはページプレゼンテーション間隔の副間隔（ｓｕｂ−ｉｎｔｅｒｖａｌ）である、対話型オブジェクトのプレゼンテーション間隔も定義可能であることが理解されよう。
【００６８】
表１に、プレゼンテーションシステム１００による再生プレゼンテーション１２７の再生中の例示的な現象、およびアプリケーション時間基準４９２、ページ時間基準４９４、タイトル時間基準４０９、およびメディア時間基準４５５についてのそのような現象の影響を示す。
【００６９】
【表１】
0005553608.tif 000002
【００７０】
様々なタイムライン、クロックソース、タイミング信号、およびタイミング信号基準へのアクセスを有することは、再生プレゼンテーション１２７内のＩＣデータ１２４およびメディアデータ１３２のフレームレベルの同期化を達成し、メディア構成要素１２２を含むクリップの誤作動のないプレゼンテーションを優先させるプレゼンテーションシステム１００の機能を強化する。
【００７１】
引き続き図１〜図４を参照すると、図５は、図２のプレゼンテーションタイムライン１３０に示すアプリケーション１５５に、同期する方法で関連付けられたクリップ１２３および対話型オブジェクト１２５などの、特定のプレゼンテーションのメディアコンテンツおよび対話型コンテンツを提示する、プレゼンテーションシステム１００などのプレゼンテーションシステムの機能を強化するための、１つの方法のフローチャートである。より具体的には、図５の方法は、再生プレゼンテーション１２７のコンテンツに影響する一定のユーザ入力およびアプリケーション命令を実行するタイミングに関する。
【００７２】
図５に示す処理（複数可）は、図８に関連して下記に説明するプロセッサ８０２などの、１つまたは複数の汎用、多目的、または専用のプロセッサで実行可能である。具体的に述べない限り、本明細書で説明する方法は、特定の順序またはシーケンスに制限されるものではない。さらに、説明する方法またはその要素のいくつかは、並行して発生し、または実行されることができる。
【００７３】
この方法はブロック５００で開始し、メディアタイムライン１４２（図６Ａに関連して説明する）などの、メディアタイムラインの少なくとも一部分が確認されるブロック５０２で継続する。ブロック５０４で、メディアタイムラインは、現在の経過再生時間、および現在の経過再生時間でのプレゼンテーションシステムの状態に関連付けられた、現在のメディア状態などの現在の状態を識別するのに使用される。現在の経過再生時間は、現在のメディアソースから現在のメディアサンプルがユーザに対して再生されている、プレゼンテーションの再生期間内の時間を表す。メディアタイムラインはまた、ブロック５０６で、将来の時間でのプレゼンテーションシステムの状態に関連付けられた、メディア状態などの予測状態を識別するのにも使用される（例示のために、将来の時間は予測経過再生時間として識別されるが、将来の時間は任意の将来の時間またはその間隔でもよい）。予測経過再生時間は、次のメディアソースからの次の再生可能なメディアサンプルが、ユーザに対して再生可能である再生期間内の時間を表すが、将来の時間（複数可）での１つまたは複数の将来のメディアサンプルが、ユーザに対して再生可能であることが理解されよう。ブロック５０８で、命令またはユーザ入力は、現在のメディア状態に基づいて実行可能であることが識別され、ブロック５１０で、命令は予測メディア状態に基づいて実行される。予測経過再生時間は、次の再生可能なメディアサンプルを提示可能な時間であると述べることができるが、数フレーム（または秒）がバッファされるので、実際は、予測経過再生時間は将来の数フレーム（または秒）であり、必ずしも次の連続したメディアサンプルまたは次のフレームとは限らないことが理解されよう。
【００７４】
図６Ａは、メディアコンテンツ１２２の再生中に発生する一定の時間セグメントおよび関連付けられた状態／メディア状態値６９６を表す、例示的なメディアタイムライン１４２（メディアフレームレート４０７に関する）の概略図である。様々なメディアサンプルプレゼンテーション時間６０２を、メディアタイムライン１４２上に示す。メディアサンプルプレゼンテーション時間６０２は、クリップ１２３の１つまたは複数のサンプルをメディアデータ１３２として提示可能な再生期間２９２（図２に示す）内の時間を表す。図に示すように、メディアサンプルプレゼンテーション時間６０２は、メディアフレームレート４０７に基づいた速度で発生し、メディアサンプルプレゼンテーション時間６０２の間の周期的なメディア時間間隔６０４の期間も定義する。メディアクロック周波数は、特定のクリップについての符号化フレームレートに基づいて変化するが、メディアフレームレート４０７は、特定のクリップ１２３が符号化されるフレームレートと同じである必要はないことに留意されたい。
【００７５】
再生期間２９２の現在の経過再生時間６０９をメディアタイムライン１４２上に示す。現在の経過再生時間６０９は、たとえば、タイトル時間４０９の現在の値である。次の提示可能なメディアサンプルプレゼンテーション時間６１４も示す。次の提示可能なメディアサンプルプレゼンテーション時間６１４は、ユーザに対して提示可能な次のメディアサンプル（複数可）（現在の経過再生時間６０９／タイトル時間４０９に関連付けられた現在のメディアサンプルの後の）に関連付けられたメディアサンプルプレゼンテーション時間６０２を表す。次の提示可能なメディアサンプルは、再生リスト１２８に基づく次の連続したメディアサンプル、または現在の経過再生時間６０９に関連付けられたメディアサンプルから１つまたは複数のメディアサンプルプレゼンテーション時間６０２だけ離れたメディアサンプルであることが理解されよう。
【００７６】
次の提示可能なメディアサンプルプレゼンテーション時間６１４を確認する１つの方法は、再生速度およびメディアフレームレート４０７に基づいて、経過した再生期間２９２の経過時間６２０の量を予測する（現在の経過再生時間６０９／タイトル時間４０９に加えて）ことである。ある実装では、予測経過再生時間６２０は、メディアサンプルプレゼンテーション時間６０２がメディアタイムライン１４２上で現在の経過再生時間６０８／タイトル時間４０９からどれだけ経過したかを見積もることによって計算される。たとえば、予測経過再生時間６２０は、現在の経過再生時間６０９に乗数値を加算することによって計算できる。乗数値は、再生速度係数（再生速度の変更方向によって正数または負数となる）にフレームレート係数を乗算することにより求められる。再生速度係数は、再生速度を表す値をメディアフレームレート４０７で除算することにより求められる。フレームレート係数は、メディアフレームレート４０７をＩＣフレームレート４０５で除算することにより求められる。次いで、予測経過再生時間６２０は、次の提示可能なメディアサンプルプレゼンテーション時間６１４となる特定のメディアサンプルプレゼンテーション時間６０２を位置決めするのに使用される。
【００７７】
しばしば、様々な再生速度で、予測した経過時間６２０の量（およびそれに対応するメディアサンプルプレゼンテーション時間６０２）と対応する次の提示可能なメディアサンプルプレゼンテーション時間６１４との間にパターンが観察される。そのようなパターンを認識することは、各メディアサンプルプレゼンテーション時間６０２で計算を実行する必要を低減させる。パターンは、所定の表または他のデータ構造体で表すことができ、特定のメディアサンプルプレゼンテーション時間６０２に基づいて次のメディアサンプルプレゼンテーション時間６１４を検索するのに使用可能である。このようにして、所定のデータ構造体または表を使用して、一定のフレームのレンダリングおよび他の調節をスキップすることができる。さらに、複数のメディアタイムラインは、並行して（たとえば、２つ以上のクリップが再生されている場合に）処理可能である。
【００７８】
メディア状態値６９６は、メディアタイムライン１４２内の様々な時間での、プレゼンテーションシステムの状態の１つまたは複数の態様を説明するように定義される。例示のために、初期のメディア状態値、現在のメディア状態値、および予測メディア状態値を、それぞれ初期の再生時間（図示せず）、現在の経過再生時間６０９、および予測経過再生時間６２０で定義する。ある実装では、メディア状態値６９６は、メディア取得状態またはメディアプレゼンテーション状態などのメディア状態の態様を説明する。しかし、プレゼンテーションシステムの状態はメディアに関する状態以外の場合があり、メディアサンプルプレゼンテーション時間６０２以外に任意の時間ベースが選択されることが理解されよう。
【００７９】
多様なメディア状態およびメディア状態値６９６の定義が可能である。あるシナリオでは、メディア取得状態は、特定の時間に、一時停止、標準、低速順方向、高速順方向、低速逆方向、および高速逆方向に対応する、異なるメディア状態値６９６を有するように定義可能である。代替として、特定の時間に、それぞれがブール値をとるメディア状態値６９６を有する、複数のメディア取得状態が定義可能である。別のシナリオでは、特定の時間に、メディアキャプチャ状態、メディアレイアウト変更状態、およびオーディオ効果再生状態などの、複数のメディアプレゼンテーション状態が定義可能である。メディアプレゼンテーション状態は、ビデオが記録されているかどうか、メディアレイアウトが変更されているかどうか、またはオーディオ効果が再生されているかどうかをそれぞれ示すブール値を有することができる。さらに別のシナリオでは、リソースインディケータ状態などのメディアプレゼンテーション状態は、対話型オブジェクトまたは別のリソースに関連付けられた、ＵＲＩまたは他の識別子に対応する値を有することができる。
【００８０】
一定のメディア状態およびメディア状態値６９６は、他のメディア状態またはメディア状態値６９６に依存する。たとえば、メディアキャプチャ状態は、特定のメディア取得状態が一時停止値を有する場合（または代替として、一時停止取得状態が真の場合）にのみ、真に設定可能である。
【００８１】
メディア状態値６９６が予測メディア状態の態様を説明する場合、予測メディア状態は一般に、予測経過再生時間６２０に存在するはずの状態である。しかし、いくつかの場合において、追加のまたは異なる予測メディア状態が、可変の時間オフセット値に基づいた量だけ予測経過再生時間６２０に先行する１つまたは複数の事前レンダリング時間（図示せず）に存在する。事前レンダリングは、一定の対話型オブジェクト、またはメディアソースからのクリップの部分を、そのようなオブジェクトまたはクリップの部分がプレゼンテーションのためにスケジュールされる時間に先立って、レンダリングするための取得および準備を含む。事前レンダリング時間に関連付けられたメディア取得状態の例には、クローズ状態、レディ状態、およびプリローリング状態があるが、それだけに限らない。
【００８２】
図６Ｂは、一定のアプリケーション命令またはユーザ入力の実行が（特に、現在の経過再生時間６０９の後であって、しかし予測経過再生時間６２０が発生する前に生じる場合）、再生プレゼンテーション１２７のコンテンツにどのように影響を与えるかを示す、例示的なＩＣタイムライン１４４（ＩＣフレームレート４０５に関する）の概略図である。
【００８３】
ＩＣタイムライン１４４上のＩＣプレゼンテーション時間６０６は、アプリケーション命令を実行可能および／または対話型オブジェクト１２５を提示可能もしくは選択可能である再生期間２９２内の時間を表す。図に示すように、ＩＣプレゼンテーション時間６０６は、ＩＣフレームレート４０５に基づく速度で発生し、またＩＣプレゼンテーション時間６０６の間の周期的な対話型コンテンツ時間間隔６２８の期間も定義する。プレゼンテーションクロック周波数は動的に変化するが、説明のために、ＩＣフレームレート４０５を３０フレーム／秒と仮定する。
【００８４】
現在の対話型コンテンツのプレゼンテーション時間（「現在のＩＣプレゼンテーション時間」）６１０は、現在の経過再生時間６０９に基づいて確認される。一般に、現在の経過再生時間６０９に対応するＩＣプレゼンテーション時間６０６は、現在のＩＣプレゼンテーション時間６１０を表す。ＩＣタイムライン１４４上に、現在の経過再生時間６０９に正確に対応するＩＣプレゼンテーション時間６０６がない場合、別のＩＣプレゼンテーション時間６０６（一般に、最も近い時間）を現在のＩＣプレゼンテーション時間６１０と見なすことができる。
【００８５】
次のＩＣプレゼンテーション時間６１２も、ＩＣタイムライン１４４に関して確認される。ある実装では、次のＩＣプレゼンテーション時間６１２は、メディアタイムライン１４２上の次の提示可能なメディアサンプルプレゼンテーション時間６１４に対応するＩＣプレゼンテーション時間６０６である。次のＩＣプレゼンテーション時間６１２は、現在のＩＣプレゼンテーション時間６１０に対して、次の連続したＩＣプレゼンテーション時間６０６でない場合がある。これらの相違の理由の１つは、ＩＣフレームレート４０５がメディアフレームレート４０７と異なることである。別の理由は、ユーザ入力がプレゼンテーションの再生速度（および／または方向）に影響することである。
【００８６】
次の提示可能なメディアサンプルプレゼンテーション時間６１４の前に次のＩＣプレゼンテーション時間６１２が発生する場合、またはそうでなければ次の提示可能なメディアサンプルプレゼンテーション時間６１４に到達する前にアプリケーション命令またはユーザ入力が生じる場合では、再生プレゼンテーション１２７のコンテンツが影響を受けることが認められる。特に、そのようなアプリケーション命令またはユーザ入力の過度に迅速なまたは遅れた実行は、プレゼンテーションシステムの現在の状態に影響を及ぼし、メディアデータ１３２の再生における誤作動、またはメディアデータ１３２とＩＣデータ１３４の間の同期化の欠損を引き起こす。一定のアプリケーション命令およびユーザ入力を識別すること、ならびにそれらの効果が最良に実行およびユーザに対して直ちに表示されているかどうか、またはそれらが事前にレンダリングされた素材の効果の前後もしくは効果の代わりによりよく実行されているかどうかを判定することが望ましい。
【００８７】
図７は、一定の種類のユーザ入力１５０（対話型オブジェクト１２５の選択または再生速度の調節など）およびＩＣマネージャ１０４からの入力１９０（アプリケーション１５５に関連付けられた一定のスクリプト命令など）を受け取り、データ構造体７０２のコンテンツを使用して、再生プレゼンテーション１２７内のそれらの効果を実行するタイミングを決定する、予測状態マネージャ１９５（図１に示す）の簡略化した機能ブロック図である。
【００８８】
一般に、データ構造体７０２は、１つまたは複数の現在の状態の部分（１つを示し、例示のために「現在のメディア状態部分」と呼ぶ）７０４および１つまたは複数の予測状態の部分（１つを示し、例示のために「予測メディア状態部分」と呼ぶ）７０６を含む。現在のメディア状態部分７０４は、現在の経過再生時間６０９（図６Ａに示す）での、プレゼンテーションシステム１００の１つまたは複数の状態（たとえば、メディア取得状態またはメディアプレゼンテーション状態）を参照するのに使用される。予測メディア状態部分７０６は、予測経過再生時間６２０（同じく図６Ａに示す）での、プレゼンテーションシステム１００の１つまたは複数の状態の１つまたは複数の態様（たとえば、メディア取得状態またはメディアプレゼンテーション状態）および／またはそれに関連付けられた事前レンダリング時間を格納するのに使用される。
【００８９】
現在のメディア状態値は現在のメディア状態部分７０４に関連付けられ、予測メディア状態値は予測メディア状態部分７０６に関連付けられる。メディア構成要素１２２およびＩＣ構成要素１２４の再生が進行するにつれ、予測状態マネージャ１９５は現在のメディア状態値および予測メディア状態値を更新する。
【００９０】
ある実装では、予測状態マネージャ１９５は、物理メディア処理パイプライン１５９の出力に影響を及ぼし、またはその出力を置き換える出力を有する、仮想メディア処理パイプライン１７０（図１に示す）として働く。たとえば、予測状態マネージャ１９５は、アプリケーション１５５の作者によって書かれた命令を介してアクセスされる、１つまたは複数のＡＰＩ３５０（仮想処理パイプラインＡＰＩ３６０など。ＡＰＩ３５０およびＡＰＩ３６０の両方を図３に示す）の実装である。予測状態マネージャ１９５は、アプリケーションの作者に物理メディア処理パイプライン１５９として表示される。他の実装では、予測状態マネージャ１９５は、ＩＣマネージャ１０４、ミキサ／レンダラ１１０、プレゼンテーションマネージャ１０６、またはタイミング信号管理構成要素１０８の態様などの、プレゼンテーションシステム１００の他の物理または論理構成要素に配置可能である。
【００９１】
予測状態マネージャ１９５がアプリケーションの作者に物理メディア処理パイプラインとして表示される場合、各メディアサンプルプレゼンテーション時間（たとえば、各ビデオフレームのプレゼンテーション時間）に、予測状態マネージャ１９５は、現在のメディア状態部分７０４内の現在のメディア状態値を、現在の物理メディア処理パイプラインの値／状態に関連付けられた１つまたは複数の値／状態で初期化する。続いて、物理メディア処理パイプラインを操作する一定のＡＰＩが、予測状態マネージャに送出される。予測状態マネージャ１９５は、予測メディア状態値を更新してＡＰＩを反映し、物理メディア処理パイプラインによって実行されたかのように、所望の時間に再生プレゼンテーション１２７のコンテンツに影響を及ぼすように、ＡＰＩの効果をキューに入れる。
【００９２】
実際上のある例において、現在のメディア取得状態は標準再生取得状態であると仮定し、またメディアサンプル（フレーム番号など）２５はユーザに対して現在再生されていると仮定する（メディアタイムライン１４２に関して）。次の再生可能なメディアサンプルはフレーム番号２６であり、フレーム番号２６の一部としてＩＣ構成要素１２４に関連付けられた１つのアプリケーション１５５は、再生プレゼンテーション１２７を一時停止することになる作成されたスクリプトを実行する。別のアプリケーション１５５は、再生プレゼンテーションが再生されているか、それとも一時停止されているかを判定するためにメディア取得状態を問い合わせる。
【００９３】
フレーム番号２６の事前レンダリング時間で、予測状態マネージャ１９５は、データ構造体７０２の現在のメディア状態部分７０４内で、１つまたは複数の現在のメディア状態値（たとえば、現在のメディア取得状態が標準再生取得状態であることを示す１つまたは複数の値）を初期化する。再生プレゼンテーション１２７を一時停止するのに使用されるスクリプトコマンドは、予測状態マネージャ１９５によって実行される１つまたは複数の機能を呼び出すＡＰＩを使用する、作成されたスクリプトである。予測状態マネージャ１９５は、物理メディア処理パイプラインが一時停止コマンドを実行しなければならないことを記録する（たとえば、キューに入れる）が、一時停止コマンドは直ちに物理メディア処理パイプラインに送出される場合もあればそうでない場合もある。予測状態マネージャはまた、データ構造体７０２の予測メディア状態部分７０６内で、１つまたは複数の予測メディア状態値（たとえば、予測されたメディア取得状態が一時停止取得状態であることを示す１つまたは複数の値）も初期化する。
【００９４】
他のアプリケーションがメディア取得状態を問い合わせる場合（たとえば、ＡＰＩを介して予測状態マネージャと通信することにより）、予測状態マネージャ１９５は、現在のメディア取得状態（標準再生取得状態）の代わりに、予測されたメディア取得状態（一時停止取得状態）を返す。これは、アプリケーションの作者が予期する結果と一致し、一時停止コマンドが物理メディア処理パイプラインによって直ちに実行された場合に生じる結果と同じである。
【００９５】
フレーム番号２６が事前にレンダリングされると（たとえば、レディ状態に到達する）、予測状態マネージャおよび／または物理メディア処理パイプラインは通知を受ける。フレーム番号２６に関連付けられた次の提示可能なメディアサンプルプレゼンテーション時間６１４（図６Ａに示す）が発生した場合、物理メディア処理パイプライン１５９（またはプレゼンテーションシステム１００の別の構成要素）は、予測状態マネージャ１９５から記録された／キューに入れられたコマンドを要求（この場合は一時停止コマンドを検索）する。記録された／キューに入れられたコマンド（この場合は一時停止コマンド）は、フレーム番号２６の素材の前後または素材の代わりに実行される。
【００９６】
様々なユーザ入力およびアプリケーション命令の効果は、プレゼンテーションシステム１００に関連付けられた実質的に無数の状態に対して決定可能であり、時限実行のために（または即時実行ために）予測状態マネージャ１９５によって記録され／キューに入れられることが理解されよう。いくつかの追加の例には、一定の音響効果が再生されているかどうか、およびどの対話型オブジェクトをどのメディアサンプルでユーザに対して提示可能かがあるが、それだけに限らない。一定のユーザ入力またはアプリケーション命令は、予測状態マネージャ１９５内の状態情報を変更でき、一方、他のユーザ入力またはアプリケーション命令は、予測状態マネージャ１９５内の状態情報に依存する（状態情報に基づいた条件処理を実行する方法など）。
【００９７】
図８は、プレゼンテーションシステム１００の様々な機能構成要素を実行するのに使用され、それによってアクセスされ、またはそれに含まれる、一定の機能構成要素を示す、汎用演算装置８００のブロック図である。演算装置８００の１つまたは複数の構成要素は、ＩＣマネージャ１０４、プレゼンテーションマネージャ１０６、およびメディアコンテンツマネージャ１０２を実行するのに使用され、それによってアクセスされ、またはそれに含まれる。たとえば、図８の１つまたは複数の構成要素は、一緒にまたは別個にパッケージされて、様々な方法でプレゼンテーションシステム１００の機能（全体または部分で）を実行することができる。
【００９８】
１つまたは複数のプロセッサ８０２は、コンピュータ可読メディア８０４およびコンピュータプログラム８０６に応答する。物理プロセッサまたは仮想プロセッサであるプロセッサ（複数可）８０２は、コンピュータ実行可能命令を実行することによって電子装置の機能を制御する。プロセッサ（複数可）８０２は、命令をアセンブリレベル、コンパイルされたレベル、または機械レベルで実行して、特定の処理を実行できる。そのような命令は、ソースコードまたは他の任意の知られているコンピュータプログラム設計ツールを使用して作成可能である。
【００９９】
コンピュータ可読メディア８０４は、プロセッサ８０２によって実行可能な命令などの、現在知られているまたは最近開発された任意の形態のコンピュータ可読データを記録、格納、または伝送できる、ローカルまたはリモート装置の任意の数および組合せを表す。特に、コンピュータ可読メディア８０４は、半導体メモリ（たとえば、読み取り専用メモリ（「ＲＯＭ」）、任意の種類のプログラム可能なＲＯＭ（「ＰＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、もしくはフラッシュメモリなど）、磁気記憶装置（フロッピー（登録商標）ディスクドライブ、ハードディスクドライブ、磁気ドラム、磁気テープ、もしくは磁気光学ディスクなど）、光学記憶装置（任意の種類のコンパクトディスクもしくはデジタル多用途ディスク）、バブルメモリ、キャッシュメモリ、コアメモリ、ホログラフィックメモリ、メモリスティック、紙テープ、パンチカード、またはそれらの任意の組合せであり、またはそれらを含むことができる。コンピュータ可読メディア８０４はまた、それらに関連付けられた伝送メディアおよびデータも含むことができる。伝送メディア／データの例には、被変調搬送波信号（ｍｏｄｕｌａｔｅｄ  ｃａｒｒｉｅｒ  ｓｉｇｎａｌ）によって搬送されるパケット化または非パケット化データなどの、有線伝送または無線伝送の任意の形態で使用されるデータがあるが、それだけに限らない。
【０１００】
コンピュータプログラム８０６は、データへの所定の操作を電子的に制御する、任意の信号処理方法または格納された命令を表す。一般に、コンピュータプログラム８０６は、構成要素ベースのソフトウェア開発用のよく知られた手法に従ってソフトウェア構成要素として実装され、コンピュータ可読メディア（コンピュータ可読メディア８０４など）で符号化された、コンピュータ実行可能命令である。コンピュータプログラムは、様々な方法で組合せまたは配布可能である。
【０１０１】
プレゼンテーションシステム１００に関連して説明した機能／構成要素は、コンピュータプログラムの任意の特有の実施形態による実装に限定されるものではない。むしろ、機能はデータを伝達または変換するプロセスであり、一般に、プレゼンテーションシステム１００の機能要素の任意の組合せに配置され、またはそれによってアクセスされるハードウェア、ソフトウェア、ファームウェア、もしくはそれらの任意の組合せによって実装され、またはそれらで実行される。
【０１０２】
引き続き図８を参照すると、図９は、プレゼンテーションシステム１００のすべてまたは部分が実装または使用される動作環境９００の例示的な構成のブロック図である。動作環境９００は、一般に、多様な汎用または専用の演算環境を示す。動作環境９００は、適切な動作環境の一例にすぎず、本明細書で説明するシステム（複数可）および方法の用途または機能の範囲に関して限定を提示することを意図するものではない。たとえば、動作環境９００は、パーソナルコンピュータ、ワークステーション、サーバ、ポータブル装置、ラップトップ、タブレットなどのコンピュータの一種、または光学メディアプレーヤもしくは別の種類のメディアプレーヤなどの現在知られているもしくは最近開発された他の任意の種類の電子装置、またはそれらの任意の態様でもよい。動作環境９００はまた、たとえば、分散コンピューティングネットワークまたはＷｅｂサービスでもよい。動作環境９００の特有の例は、高画質ＤＶＤ動画の再生を実行するＤＶＤプレーヤまたはそれに関連付けられたオペレーティングシステムなどの環境である。
【０１０３】
図に示すように、動作環境９００は、プロセッサ８０２、コンピュータ可読メディア８０４、およびコンピュータプログラム８０６を含む、演算装置８００の構成要素を含み、またはそれにアクセスする。記憶装置９０４は、光学ディスクドライブ９０６によって処理される、動作環境９００に具体的に関連付けられた、光学ディスクなどの追加のまたは異なるコンピュータ可読メディアを含む。よく知られ、広く利用可能な要素である、１つまたは複数の内部バス９２０は、コンピューティング環境９００またはその要素の内部で、そこに、またはそこから、データ、アドレス、制御信号および他の情報を搬送するのに使用できる。
【０１０４】
入力インターフェイス（複数可）９０８は、コンピューティング環境９００に入力を提供する。入力は、ユーザインターフェイスなどの、現在知られているまたは最近開発された任意の種類のインターフェイスを使用して収集される。ユーザインターフェイスは、リモートコントロール装置、ディスプレイ、マウス、ペン、スタイラス、トラックボール、キーボード、マイクロホン、スキャン装置、およびデータ入力に使用されるすべての種類の装置などのタッチ入力装置でよい。
【０１０５】
出力インターフェイス（複数可）９１０は、動作環境９００からの出力を提供する。出力インターフェイス（複数可）９１０の例には、ディスプレイ、プリンタ、スピーカ、ドライブ（光学ディスクドライブ９０６や他のディスクドライブなど）などがある。
【０１０６】
外部通信インターフェイス（複数可）９１２は、チャネル信号、データ信号、またはコンピュータ可読メディアなどの、通信メディアを介して、別のエンティティから情報を受け取りまたはそこに情報を伝送する、動作環境９００の機能を拡張するために利用可能である。外部通信インターフェイス（複数可）９１２は、関連付けられたネットワークサポート装置および／またはソフトウェアまたはインターフェイスとともに、ケーブルモデム、データ端末装置、メディアプレーヤ、データ記憶装置、携帯情報端末（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、または他の任意の装置またはそれらの構成要素／組合せなどの要素であり、またはそれらを含む。
【０１０７】
図１０は、プレゼンテーションシステム１００または動作環境９００をそれに関連して使用できる、クライアント／サーバアーキテクチャ１０００の簡略化した機能図である。プレゼンテーションシステム１００および／または動作環境９００の１つまたは複数の態様は、アーキテクチャ１０００のクライアント側１００２またはアーキテクチャ１０００のサーバ側１００４に表すことができる。図に示すように、通信フレームワーク１００３（たとえば、有線または無線の、任意のパブリックネットワークまたは任意の種類のプライベートネットワークでよい）は、クライアント側１００２とサーバ側１００４の間の通信を実行する。
【０１０８】
クライアント側１００２で、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装可能な１つまたは複数のクライアント１００６は、クライアントデータストア１００８に応答する。クライアントデータストア１００８は、クライアント１００６に対して情報をローカルに格納するのに使用されるコンピュータ可読メディア８０４でよい。サーバ側１００４で、１つまたは複数のサーバ１０１０は、サーバデータストア１０１２に応答する。クライアントデータストア１００８と同様に、サーバデータストア１０１２は、サーバ１０１０に対して情報をローカルに格納するのに使用される１つまたは複数のコンピュータ可読メディア８０４を含む。
【０１０９】
対話型コンテンツをメディアコンテンツと同期して、ユーザに対して提示するのに使用されるプレゼンテーションシステムの様々な態様を説明した。しかし、プレゼンテーションシステムの説明した構成要素のすべてが使用される必要はなく、また使用される場合、構成要素が並行して存在する必要もないことが理解されよう。プレゼンテーションシステム１００に関連して、コンピュータプログラムとして説明した機能／構成要素は、コンピュータプログラムの任意の特有の実施形態による実行に限定されない。むしろ、機能はデータを伝達または変換するプロセスであり、一般に、ハードウェア、ソフトウェア、ファームウェア、もしくはそれらの任意の組合せによって実装され、またはそれらで実行される。
【０１１０】
本明細書の主題を、構造的な特徴および／または方法論的な動作に特有の用語で説明したが、特許請求の範囲で定義される主題は、必ずしも前述の特有の特徴または動作に限定されないことも理解されるはずである。むしろ、前述の特有の特徴および動作は、特許請求の範囲を実施する形態の例として開示される。
【０１１１】
ある要素が別の要素に応答していることが示される場合、その要素は直接または間接的に結合可能であることがさらに理解されよう。本明細書で説明する接続は、実際には、要素間の結合または通信インターフェイスを実現するための論理接続または物理接続でよい。接続は、様々な方法の中でも特に、ソフトウェアプロセスの間のプロセス間通信、またはネットワークコンピュータの間のマシン間通信として実装可能である。
【０１１２】
「例示的な」という用語は、本明細書では、例、事例、または実例として働くという意味で使用される。本明細書で「例示的な」と説明する任意の実装またはその態様は、必ずしも他の実装またはその態様よりも好ましいまたは有利であるとして構成されているとは限らない。
【０１１３】
前述の特有の実施形態以外の実施形態が、付属する特許請求の範囲および精神から逸脱することなく考案されることが理解されるように、本明細書での主題の範囲は、下記の特許請求の範囲によって支配されることが意図されている。
【図１】
0005553608.tif 000003
【図２】
0005553608.tif 000004
【図３】
0005553608.tif 000005
【図４】
0005553608.tif 000006
【図５】
0005553608.tif 000007
【図６】
0005553608.tif 000008
【図７】
0005553608.tif 000009
【図８】
0005553608.tif 000010
【図９】
0005553608.tif 000011
【図１０】
0005553608.tif 000012