説明

メディアコンテンツをレンダリングするタイミングの態様

対話型マルチメディアプレゼンテーションの再生中に発生する一定のユーザ入力およびアプリケーション命令を実行するためのタイミングを説明する。現在の状態は、現在のメディアサンプルがユーザに対して再生されている時の、プレゼンテーションシステムの状態によって定義される。予測状態は、1つまたは複数の将来の再生時におけるプレゼンテーションシステムの状態によって定義される。現在の状態および予測状態の例には、メディア取得状態およびメディアプレゼンテーション状態がある。現在の状態に基づく命令またはユーザ入力は識別され、予測状態は命令または入力の効果を決定するのに使用される。その効果は次いで、次の再生可能なメディアサンプルがユーザに対して再生された後などの所定の時間に実行される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メディアコンテンツをレンダリングするタイミングの処理に関する。
【背景技術】
【0002】
マルチメディアプレーヤは、ビデオ、オーディオ、またはデータコンテンツの組合せ(「マルチメディアプレゼンテーション」)をユーザによる消費のためにレンダリングする装置である。DVDプレーヤなどのマルチメディアプレーヤは、現在、メディアコンテンツの再生中のユーザの対話式利用を、あるとしても、あまり多くは提供していない。メディアコンテンツの再生は、一般に、再生速度の調節を除くユーザ入力を受け取るために中断される。たとえば、DVDプレーヤのユーザは、一般に、オーディオ解説もしくは効果、俳優の人物紹介、またはゲームなどの機能を選択して受け取ることができる様々なオプションを表示するメニューに戻るために、再生中の動画を停止しなければならない。
【0003】
対話型マルチメディアプレーヤは、対話型コンテンツと従来のビデオ、オーディオ、またはデータコンテンツの組合せ(「対話型マルチメディアプレゼンテーション」)を並行してレンダリングする装置である(そのような装置には、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せが含まれる)。対話型コンテンツは一般に、単独でまたは他のビデオ、オーディオコンテンツ、もしくはデータコンテンツとともに並行して提示可能な、任意のユーザ選択可能な可視または可聴オブジェクトである。任意の種類の装置が対話型マルチメディアプレーヤであるが、光学メディアプレーヤ(たとえば、DVDプレーヤ)、コンピュータ、および他の電子装置などの装置は、大容量の比較的安価なポータブルデータ記憶装置へのアクセスを提供するので、商業的に価値のある対話型マルチメディアプレゼンテーションの制作およびそれに対する消費者需要を可能にするために特に良い位置にある。
【0004】
すべての種類のメディアコンテンツプレーヤ、特に対話型マルチメディアプレーヤおよび対話型マルチメディアプレゼンテーションへの投資を拡大するには、ビデオ、オーディオ、またはデータコンテンツの予測可能で比較的誤作動(glitch)のない再生を実現し、対話型コンテンツとビデオ、オーディオ、またはデータコンテンツの正確な同期化を確実にすることが望ましい。
【0005】
対話型マルチメディアプレゼンテーションは、再生期間を有し、メディアコンテンツ構成要素および対話型コンテンツ構成要素を含む。メディアコンテンツの一例は、動画であるが、メディアコンテンツは、ビデオ、オーディオ、データ、またはそれらの任意の組合せでもよい。メディアコンテンツは、多数のサンプルに配置される。そのようなサンプルのセットをクリップと呼び、1つのクリップは一般に1つのメディアソースから受け取ることができる。対話型コンテンツは、対話型オブジェクトのプレゼンテーションをユーザに対して、しばしばメディアコンテンツと並行して編成、フォーマット、および同期化するための命令を提供する1つまたは複数のアプリケーションの形態をとる。アプリケーションは通常、宣言型形態(たとえば、拡張可能マークアップ言語形態)およびスクリプト形態の両方の命令を含むが、宣言型形態の命令のみまたはスクリプト形態の命令のみを含むこともできる。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ユーザ入力(再生速度の調節または対話型コンテンツの選択など)またはアプリケーション命令の実行は、ユーザに対して次にどのコンテンツを再生するかに影響することがある。しばしば、そのようなユーザ入力またはアプリケーション命令は、それらの効果を直ちに実行することにより、メディアコンテンツの再生における誤作動および/またはメディアコンテンツと対話型コンテンツの間の同期化の欠損が起こることがある。この欠損は、メディアコンテンツおよび対話型コンテンツが事前にレンダリングされている時に発生する。
【課題を解決するための手段】
【0007】
本明細書で説明する、対話型マルチメディアプレゼンテーションを再生するための方法、システム、装置、および製造品は、一定の事前定義された状態に基づいて実行される命令またはユーザ入力を識別すること、および誤作動および/または同期化の欠損を最小限に抑える方法でそのような命令またはユーザ入力の実行のタイミングを調節することを含む。より具体的には、対話型マルチメディアプレゼンテーションの再生中に行われる一定の動作は、メディアタイムラインを使用して、対話型マルチメディアプレゼンテーションの再生期間内の現在の経過再生時間を識別することを含む。現在の経過再生時間は、現在のメディアソースから現在のメディアサンプルがユーザに対して再生されている時間を表す。現在の状態および予測状態は、次のように確認される。現在の状態は、現在の経過再生時間でのプレゼンテーションシステムの態様(たとえば、現在のメディアサンプルまたは現在のメディアソースの状態)に関連付けられており、予測状態は、1つまたは複数の将来の時間でのプレゼンテーションシステムの態様(将来の再生時間は、1つまたは複数の将来のメディアサンプルが再生可能である将来の再生時間、またはその間隔を含むが、それだけに限らない、将来の任意の時間でよい)に関連付けられている。現在の状態に基づいて実行可能な命令またはユーザ入力は識別され、現在の状態に基づいて命令またはユーザ入力を実行する代わりに、命令またはユーザ入力は予測状態に基づいて実行される。
【0008】
現在の状態および予測状態に関連付けられた1つまたは複数の状態値(例示のために「メディア状態値」と呼ぶ)は、データ構造体に保持される。予測状態マネージャは、一定のユーザ入力およびアプリケーション命令を受け取り、現在の状態の代わりに予測状態に基づいて(たとえば、予測状態値を使用して)、それらの実行の効果を決定する。特定の命令またはユーザ入力の効果は、その後、次の再生可能なメディアサンプルがユーザに対して再生された後などの所定の時間に実行される。
【0009】
予測状態マネージャは、プレゼンテーションシステム内の様々な場所で機能する。あるシナリオでは、予測状態マネージャは、物理メディア処理パイプラインの機能を補足し、またはその機能の代替として働く、仮想メディア処理パイプラインとして機能する。アプリケーションプログラミングインターフェイス(「API」)も提供されるので、アプリケーションの作者は、透過的な方法で、予測状態マネージャに関連付けられた機能にアクセスできる。
【0010】
この概要は、概念の選択を簡易化された形態で紹介するために提供される。この概念は、詳細な説明の項においてさらに説明される。この概要で説明する以外の要素またはステップが可能であり、どの要素またはステップも必須ではない。この概要は、請求項に記載された対象の主要な特徴または必須の特徴を識別することを意図しておらず、請求項に記載された対象の範囲を決定する助けとして使用されることも意図していない。請求項に記載された対象は、この開示の任意の部分において言及する、任意またはすべての欠点を解決する実施形態に限定されるものではない。
【図面の簡単な説明】
【0011】
【図1】対話型マルチメディアプレゼンテーションシステムの簡略化した機能ブロック図である。
【図2】再生リストから確認できる例示的なプレゼンテーションタイムラインの説明図である。
【図3】図1に示す対話型マルチメディアプレゼンテーションに関連付けられたアプリケーションの簡略化した機能ブロック図である。
【図4】図1のタイミング信号管理ブロックをより詳細に示す、簡略化した機能ブロック図である。
【図5】図1に示すプレゼンテーションシステムなどのプレゼンテーションシステムの態様を使用する、対話型マルチメディアプレゼンテーションを再生する方法のフローチャートである。
【図6】図1に示すプレゼンテーションシステムおよび/または図5のフローチャートに示す方法の、一定の態様とともに使用できる、例示的なメディアタイムライン(A)および例示的な対話型コンテンツタイムライン(B)の概略図である。
【図7】図1に示す予測状態マネージャの簡略化した機能ブロック図である。
【図8】図1に示す対話型マルチメディアプレゼンテーションシステムおよび/または図5のフローチャートに示す方法を実装または使用できる動作環境の、例示的な構成の簡略化した機能ブロック図である。
【図9】図1に示すプレゼンテーションシステムおよび/または図5のフローチャートに示す方法を実装または使用できるクライアント/サーバアーキテクチャの簡略化した機能図である。
【図10】プレゼンテーションシステムまたは動作環境をそれに関連して使用できる、クライアント/サーバアーキテクチャの簡略化した機能図である。
【発明を実施するための形態】
【0012】
メディアコンテンツ構成要素および対話型コンテンツ構成要素を含むプレゼンテーションシステムが対話型マルチメディアプレゼンテーションを再生する場合、予測可能であり比較的誤作動のないメディアコンテンツ構成要素の再生ならびにメディアコンテンツ構成要素と対話型コンテンツ構成要素の間の予期される同期化を確実にする方法で、一定のユーザ入力またはアプリケーション命令の実行の効果のタイミングをとることが望ましい。
【0013】
一定のユーザ入力(再生速度の入力および対話型オブジェクトの選択など)およびアプリケーション命令(スクリプト命令など)は、ユーザに対して次に再生される対象に影響を及ぼす。しばしば、そのようなユーザ入力およびアプリケーション命令は、メディアコンテンツ構成要素および/または対話型コンテンツ構成要素の部分が事前にレンダリングされている場合に発生するので、それらの効果が、事前にレンダリングされた素材の効果の前後またはそれに代えて実行され、ユーザに対して表示されるべきかどうかを決定することが重要である。
【0014】
本明細書で説明するタイミング技法は、現在の状態および予測状態の概念を使用する。現在の状態は、現在のメディアサンプルがユーザに対して再生されている時のプレゼンテーションシステムの態様に関連付けられている(たとえば、現在のメディアサンプルの状態に、または現在のメディアサンプルの派生元のメディアソースの状態に)。予測状態は、将来の時間のプレゼンテーションシステムの態様に関連付けられている(たとえば、次の連続したまたは非連続である、次のメディアサンプルがユーザに対して再生可能な時など、1つまたは複数の将来のメディアサンプルがユーザに対して再生可能な時に)。現在の状態に基づいて実行される命令またはユーザ入力は識別され、現在の状態に基づいた命令またはユーザ入力を実行する代わりに、予測状態に基づいて命令またはユーザ入力の効果が決定される。効果は次いで、次の再生可能なメディアサンプルがユーザに対して再生される前または後などの所定の時間に実行される。
【0015】
様々な、実質的に無数の状態を定義することが可能である。例示のために、メディア取得状態(retrieval state)およびメディアプレゼンテーション状態(およびこれらの組合せ)を説明する。メディア取得状態の例には、標準再生取得状態、一時停止取得状態、低速順方向(slow−forward)取得状態、高速順方向(fast−forward)取得状態、低速逆方向(slow−reverse)取得状態、高速逆方向(fast−reverse)取得状態、クローズ状態、レディ状態、およびプリローリング状態の1つまたは複数があるが、それだけに限らない。メディアプレゼンテーション状態の例には、メディアキャプチャ状態、メディアレイアウト状態、オーディオ再生状態、およびユーザ選択状態の1つまたは複数があるが、それだけに限らない。現在の状態および予測状態の両方に関連付けられた1つまたは複数の状態値(例示のために、「メディア状態値」と呼ぶ)は、データ構造体内に保持される。
【0016】
データ構造体は、一定のユーザ入力およびアプリケーション命令を受け取り、現在の状態値の代わりに予測状態値に基づいてそれらの実行の効果を決定する、プレゼンテーションシステム内の機能(本明細書で「予測状態マネージャ」と呼ぶ)によって保持および/またはアクセスされる。ある実装では、予測状態マネージャは、アプリケーションの作者によって使用可能な1つまたは複数のアプリケーションプログラミングインターフェイス(「API」)の様々な態様を実行するソフトウェアである。予測状態マネージャは、プレゼンテーションシステム内の様々な場所で機能することが可能である。あるシナリオでは、予測状態マネージャは、物理メディア処理パイプラインの機能を補足し、またはその機能の代替として働く、仮想メディア処理パイプラインとして動作する。
【0017】
図面を参照すると、同じ数字が同じ構成要素を示しており、図1は、対話型マルチメディアプレゼンテーションシステム(「プレゼンテーションシステム」)100の簡略化した機能ブロック図である。プレゼンテーションシステム100は、メディアコンテンツマネージャ102、対話型コンテンツ(「IC」)マネージャ104、プレゼンテーションマネージャ106、タイミング信号管理ブロック108、およびミキサ/レンダラ110を含む。一般に、設計上の選択が、プレゼンテーションシステム100の特有の機能の実装方法を決定する。そのような機能は、ハードウェア、ソフトウェア、もしくはファームウェア、またはこれらの組合せを使用して実装される。
【0018】
動作にあたっては、プレゼンテーションシステム100は、対話型マルチメディアプレゼンテーションコンテンツ(「プレゼンテーションコンテンツ」)120を処理する。プレゼンテーションコンテンツ120は、メディアコンテンツ構成要素(「メディア構成要素」)122および対話型コンテンツ構成要素(「IC構成要素」)124を含む。メディア構成要素122およびIC構成要素124は、一般に、それぞれメディアコンテンツマネージャ102およびICマネージャ104によって別個のデータストリームとして処理されるが、必ずそうする必要はない。
【0019】
プレゼンテーションシステム100はまた、プレゼンテーションコンテンツ120のプレゼンテーションをユーザ(図示せず)に対して再生プレゼンテーション127として実行する。再生プレゼンテーション127は、ミキサ/レンダラ110によって生成され、ディスプレイまたはスピーカ(図示せず)などの装置を介してユーザが受け取り可能な、プレゼンテーションコンテンツ120に関連付けられた可視情報および/または可聴情報を表す。説明のために、プレゼンテーションコンテンツ120および再生プレゼンテーション127は、任意の形態の高画質(high−definition)DVD動画コンテンツを表すと仮定する。しかし、プレゼンテーションコンテンツ120および再生プレゼンテーション127は、現在知られているまたは最近開発されたメディアコンテンツの任意の種類のプレゼンテーションを提示するために構成されることが理解されよう。
【0020】
メディア構成要素122は、プレゼンテーションコンテンツ120の従来型のビデオ、オーディオ、またはデータ構成要素を表す。たとえば、動画は一般に、1つまたは複数のバージョン(たとえば、成人視聴者向けバージョン、および未成年の視聴者向けバージョン)、各タイトルに関連付けられた1つまたは複数のチャプタ(図示せず)を有する1つまたは複数のタイトル131(タイトルについては、プレゼンテーションマネージャ106に関連してさらに下記で説明する)、1つまたは複数のオーディオトラック(たとえば、動画は、字幕付きまたは字幕なしで、1つまたは複数の言語で再生可能)、および監督の解説、付加的な映像、予告編などの追加の特徴を有する。タイトルとチャプタの区別は、純粋に論理的な区別であることが理解されよう。たとえば、単一の認識されるメディアセグメントは、単一のタイトル/チャプタの一部であることも、複数のタイトル/チャプタからなることもできる。コンテンツ作成ソースによって、該当する論理的区別が決定する。メディア構成要素122を動画と呼んでいるが、実際は、ビデオ、オーディオ、データ、またはこれらの任意組合せでよいことも理解されよう。
【0021】
メディア構成要素122を形成するメディアサンプルのセット(たとえば、ビデオ、オーディオ、またはデータサンプルのセット)を、クリップ123と呼ぶ(クリップ123は、メディア構成要素122、メディアコンテンツマネージャ102、および再生リスト128内に示されている)。メディアコンテンツマネージャ102を参照すると、クリップ123に関連付けられた情報は、1つまたは複数のメディア処理パイプライン159によって処理される(任意の数のメディア処理パイプラインが可能であることを示すために、1〜Nと付記された1つのメディア処理パイプラインを示している)。特定のメディア処理パイプライン159内では、クリップ123に関連付けられた情報がメディアソース160から受け取られ、デコーダブロック161で逆多重化(demultiplex)、復号化、および/または解読(decrypt)される。
【0022】
特定のメディアソース160は、ビデオ、オーディオ、またはデータの派生または取得元の、任意の装置、場所、またはデータである。メディアソースの例には、ネットワーク、ハードドライブ、光学メディア、代替の物理ディスク、および特有のビデオ、オーディオ、またはデータの格納場所を参照するデータ構造体があるが、それだけに限らない。一般に、任意のコンピュータ可読メディアは、メディアソースとして働くことができる(コンピュータ可読メディアについては、図8に関連してさらに下記で説明する)。
【0023】
デコーダブロック161は、メディアソース160から受け取った情報から、レンダリング可能なビデオ、オーディオ、またはデータコンテンツを取得するのに使用される任意の装置、技法、またはステップを表す。デコーダブロック161は、たとえば、コーデック、デマルチプレクサ、またはデクリプタを含むことができる。デコーダブロック161およびその構成要素は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せを使用して実行することができる。デコーダとメディアソースの1対1の関係が示されているが、1つのデコーダは複数のメディアソースに対して機能し、逆の場合も同様であることが理解されよう。たとえば、いくつかの市販のDVDプレーヤはデコーダを1つのみ含む。
【0024】
物理メディア処理パイプライン(複数可)159に加えて、メディアコンテンツマネージャ102は、1つまたは複数の仮想メディア処理パイプライン170(1つを示す)を含む。仮想メディア処理パイプライン170は、メディア処理パイプライン(複数可)159と通信する。ある実装では、仮想メディア処理パイプライン170は、ICマネージャ104によって実行するために構成されたアプリケーション155(さらに下記で説明する)の作者によって書かれた命令を介してアクセスされるアプリケーションプログラミングインターフェイス(「API」)を実装した予測状態マネージャ195を含む。図5〜図7に関連して全体をさらに下記で説明するように、予測状態マネージャ195は、一定のユーザ入力150および入力190を受け取り、再生プレゼンテーション127上でそのようなユーザ入力150および入力190の効果を実行するタイミングを決定するのに使用される。
【0025】
メディアデータ132は、メディアコンテンツマネージャ102によってレンダリングのために準備され、ミキサ/レンダラ110に伝送された、メディア構成要素122に関連付けられたデータである。メディアデータ134のサンプル(たとえば、フレーム)は一般に、アクティブな各クリップ123について、レンダリングされたクリップの一部を含む。特定のメディアデータのセットにおいてレンダリングされるクリップの正確な部分または量は、ビデオ、オーディオ、またはクリップのデータコンテンツの特性や、メディアデータの派生元のメディアソースに関連付けられた1つまたは複数のパラメータ(たとえば、コーデックのパラメータまたは設定、および暗号化のパラメータまたは設定)などのいくつかの要因に基づく場合がある。メディアコンテンツマネージャ102は、メディア構成要素122および/またはIC構成要素124(下記で説明する)を含む様々なクリップの識別情報およびスケジュールに基づく動的なメディア処理の負荷を有する。
【0026】
再びプレゼンテーションコンテンツ120を参照すると、IC構成要素124は、オプションとしてメディア構成要素122と並行して提示可能な、ユーザ選択可能な可視または可聴オブジェクトである対話型オブジェクト125、ならびに可視または可聴オブジェクトを提示するための任意の命令(アプリケーション155として示されており、さらに下記で説明する)を含む。対話型オブジェクト125は、静的であるかまたは動画化されている場合がある。対話型オブジェクトの例には、特にビデオサンプルまたはクリップ、オーディオサンプルまたはクリップ、画像、グラフィックス、テキスト、およびこれらの組合せがある。
【0027】
対話型オブジェクト125は、1つまたは複数のソース(図示せず)に由来する。ソースは、対話型オブジェクトの派生または取得元の、任意の装置、場所、またはデータである。対話型オブジェクト125のソースの例には、ネットワーク、ハードドライブ、光学メディア、代替の物理ディスク、および特有の対話型オブジェクトの格納場所を参照するデータ構造体があるが、それだけに限らない。対話型オブジェクト125の形態の例には、ポータブルネットワークグラフィックス(「PNG」)、ジョイントフォトグラフィックエクスパーツグループ(「JPEG」)、ムービングピクチャーエクスパーツグループ(「MPEG」)、複数画像ネットワークグラフィックス(multiple−image network graphics)(「MNG」)、オーディオビデオインターリーブ(「AVI」)、拡張可能マークアップ言語(「XML」)、ハイパーテキストマークアップ言語(「HTML」)、拡張可能HTML(「XHTML」)、拡張可能スタイルシート言語(「XSL」)、およびWAVがあるが、それだけに限らない。
【0028】
アプリケーション155は、プレゼンテーションシステム100が、それによりユーザに対して対話型オブジェクト125を提示する機構を提供する。アプリケーション155は、データ上の所定の操作を電子的に制御する、任意の信号処理方法または格納された命令(複数可)を表す。説明のために、IC構成要素124は、図2および図3に関連してさらに下記で説明する、3つのアプリケーション155を含むと仮定する。アプリケーション155は、単独でまたはユーザイベントに応じて、クリップ123に関連付けられたメディアデータまたは対話型オブジェクト125がユーザに対して提示される時を決定することができる。
【0029】
ICマネージャ104は、スクリプト処理エンジン180およびマークアップ処理エンジン181を含む。スクリプト処理エンジン180は、アプリケーション155に関連付けられたスクリプトコマンドを受け取り、解釈し、および実行のために構成する(スクリプト308については、図3に関連して示し、説明する)。マークアップ処理エンジン181は、アプリケーション155に関連付けられたマークアップを受け取り、解釈し、および実行のために構成する(マークアップ要素303については、図3に関連して示し、説明する)。特定のアプリケーション155の実行中、ICマネージャ104は、マークアップ要素の状態および/またはそれによって影響を受ける関連付けられた対話型オブジェクトの状態に関するコンテキスト、ならびにスクリプトの変数、機能、および他の状態に関するコンテキストを保持する。アプリケーション155の実行が進行し、ユーザ入力が受け取られると、影響を受けた任意の要素/メディアオブジェクトのプロパティが記録され、そのプロパティは再生プレゼンテーション127内での動作をトリガするために使用できる。「ICMからの入力」190と記したアプリケーション155の一定の命令は、プレゼンテーションシステム100内の他の機能または構成要素との通信または相互運用を実行できる。図に示すように、入力190は、仮想処理パイプライン170/予測状態マネージャ195によって受け取られる。
【0030】
対話型コンテンツデータ(「ICデータ」)134は、ICマネージャ104によってレンダリングのために準備され、ミキサ/レンダラ110に伝送されたIC構成要素124に関連付けられたデータである。各アプリケーションは、使用時にはそのアプリケーションのレンダリングに関連付けられた1つまたは複数の作業アイテム(図示せず)を保持する、関連付けられたキュー(図示せず)を有することができる。しかし、アプリケーションがアクティブな作業アイテムを有しないことも可能である。
【0031】
メディアコンテンツマネージャ104、ICマネージャ102、ミキサ/レンダラ110、およびタイミング信号管理ブロック108と通信するように構成されたプレゼンテーションマネージャ106は、プレゼンテーションコンテンツ120およびユーザに対する再生プレゼンテーション127のプレゼンテーションの処理を実行する。プレゼンテーションマネージャ106は、再生リスト128へのアクセスを有する。再生リスト128は、ユーザに対して提示可能な、時間順のクリップ123およびアプリケーション155(対話型オブジェクト125を含む)を特に含む。クリップ123およびアプリケーション155/対話型オブジェクト125は、1つまたは複数のタイトル131を形成するように構成可能である。例示のために、本明細書では、1つのタイトル131を説明する。再生リスト128は、拡張可能マークアップ言語(「XML」)ドキュメント、または別のデータ構造体を使用して実行される。
【0032】
プレゼンテーションマネージャ106は、再生リスト128を使用して、タイトル131用のプレゼンテーションタイムライン130を確認する。概念的には、プレゼンテーションタイムライン130は、特有のクリップ123およびアプリケーション155がユーザに対して提示可能である、タイトル131内の時間を示す。クリップ123のプレゼンテーションとアプリケーション155の例示的な関係を示すサンプルプレゼンテーションタイムライン130を、図2に関連して示し、説明する。一定の環境では、再生リスト128および/またはプレゼンテーションタイムライン130を使用して、メディアコンテンツタイムライン(「メディアタイムライン」)142(例示的なメディアタイムライン142については、図6Aに関連してさらに下記で説明する)および対話型コンテンツタイムライン(「ICタイムライン」)144(例示的なICタイムライン144については、図6Bに関連してさらに下記で説明する)を確認することも有用である。
【0033】
動作にあたっては、プレゼンテーションマネージャ106は、プレゼンテーションタイムライン130、メディアタイムライン142、および/またはICタイムライン144についての情報を含むが、それだけに限らない情報を、メディアコンテンツマネージャ102およびICマネージャ104に提供する。プレゼンテーションマネージャ206からの入力に基づいて、メディアコンテンツマネージャ102はレンダリングのためにメディアデータ132を準備し、ICマネージャ104はレンダリングためにICデータ134を準備する。ある実装では、プレゼンテーションマネージャ106はメディア処理パイプライン159および仮想メディア処理パイプライン170を制御することができる。
【0034】
タイミング信号管理ブロック108は、メディアコンテンツマネージャ102およびICマネージャ104によってそれぞれメディアデータ132およびICデータ134を準備および生成するためのタイミングを制御するのに使用される、様々なタイミング信号158を生成する。特に、タイミング信号158は、メディアデータ132およびICデータ134の近似的な同期化(たとえば、フレーム毎ベースまたは別の時間ベースでのタイミング/同期化)を達成するのに使用される。タイミング信号管理ブロック108およびタイミング信号158の詳細については、図4に関連してさらに下記で説明する。
【0035】
ミキサ/レンダラは、ビデオ面(図示せず)にメディアデータ132をレンダリングし、グラフィックス面(図示せず)にICデータ134をレンダリングする。グラフィックス面は一般に、ビデオ面上に重ね合わされて、ユーザに対する再生プレゼンテーション127を生成するが、必ずしもそうとは限らない。
【0036】
引き続き図1を参照すると、図2は、再生リスト128内のタイトル131に関するサンプルプレゼンテーションタイムライン130の説明図である。時間を横軸220に示す。タイトル131内の提示可能な情報、具体的にはメディア構成要素122(クリップ123を図示する)およびIC構成要素124(対話型オブジェクト125を提示する、アプリケーション155を図示する)についての情報を縦軸225に示す。
【0037】
メディア構成要素122に関連付けられたクリップ123に関して、第1メディアクリップ(「メディアクリップ1」)230、第2メディアクリップ(「メディアクリップ2」)250、第3メディアクリップ(「メディアクリップ3」)251、および第4メディアクリップ(「メディアクリップ4」)253の4つのクリップ123を示す。スクリプトクリップ255は、一般には再生リストに含まれないが、再生プレゼンテーション127内で、アプリケーションを介して様々な時間に(再生のためにスケジュールされたメディアコンテンツがない場合や、メディアコンテンツの再生が一時停止されている場合など)、オプションとして起動可能な(自動的にまたはユーザによって)、動画のサムネイルなどのメディアクリップである。
【0038】
IC構成要素124に関して、あるアプリケーションは、メニュー280のユーザ選択可能なアイテム(たとえば、関連したテキストまたはグラフィックスを有するボタン)を提供する一定の対話型オブジェクトの提示に関与する。別のアプリケーションは、グラフィックオーバーレイ290を提供する1つまたは複数の対話型オブジェクトの提示に関与する。図に示すように、メニュー280はメディアクリップ1から4とともに並行して表示され、グラフィックオーバーレイ290はメディアクリップ1 230およびメディアクリップ2の一部分とともに並行して表示可能である。第3のアプリケーションは、プレゼンテーション用にスケジュールされたメディアコンテンツがない場合、スクリプトクリップ255の提示に関与する(図に示すように、スクリプトクリップ255は、20秒と30秒の間で再生可能である)。
【0039】
タイトル131をユーザに対して提示可能な、横軸220に沿った特定の量の時間を、タイトル131の再生期間292と呼ぶ。再生期間292内の特有の時間を、タイトル時間と呼ぶ。TT1 293、TT2 294、TT3 295、TT4 296、TT5 297、TT6 298、およびTT7 299の7つのタイトル時間(「TT」)をプレゼンテーションタイムライン130上に示す。タイトルは、1回または2回以上再生される(たとえば、ループする方法で)ので、再生期間292は、タイトル131の1回の反復(iteration)に基づいて決定される。再生期間292は、所定の再生速度(たとえば、標準または1倍の再生速度)、所定のフレームレート、または所定のタイミング信号ステータスを含むが、それだけに限らない、所望の任意の基準に対して決定可能である。再生速度、フレームレート、およびタイミング信号については、図4に関連してさらに下記で説明する。
【0040】
表示技法などの実行に特有の要因、ならびに各タイトルについてのクリップおよび対話型オブジェクトの間の再生順序およびタイミングの関係に関する特有の規則は、そこでのタイトルの再生期間およびタイトル時間の正確な値に影響することが理解されよう。再生期間およびタイトル時間という用語は、すべてのそのような実行に特有の詳細を包含することを意図している。
【0041】
IC構成要素124に関連付けられたコンテンツをその時に/その範囲内で提示可能なタイトル時間は一般に所定であるが、ユーザがそのようなコンテンツと対話する場合に行われる動作は、再生プレゼンテーション127を再生している間に、ユーザ入力のみに基づいて決定されることが理解されよう。たとえば、ユーザは、再生プレゼンテーション127の再生中に、一定のアプリケーション、対話型オブジェクト、および/またはそれらに関連付けられた追加のコンテンツを、選択、活性化、または非活性化することができる。
【0042】
メディアプレゼンテーション間隔は、特定のクリップ123に関連付けられた特定のコンテンツがその間に再生可能である、再生期間292の開始時間および終了時間によって定義される。つまり、プレゼンテーション間隔は、一般に再生期間292内の特有の時間に基づく。アプリケーションプレゼンテーション間隔(図3に関連してさらに下記で説明する)も同様に定義可能である。
【0043】
引き続き図1および図2を参照すると、図3は、単一のアプリケーション155の機能ブロック図である。アプリケーション155は一般に、メニュー280、グラフィックオーバーレイ290、およびスクリプトクリップ255(図2に示す)に関連付けられた対話型オブジェクトの提示に関与するアプリケーションの代表である。アプリケーション155は、命令304(さらに下記で説明する)を含む。アプリケーション155はアプリケーション再生期間320および1つまたは複数のアプリケーションプレゼンテーション間隔321と関連付けられている。
【0044】
アプリケーション再生期間320は、アプリケーション155に関連付けられた対話型オブジェクト125が再生プレゼンテーション127の受信者に対してその範囲内で提示可能および/または受信者によって選択可能な、再生期間292の量(部分または全体)に関連する、特定の時間の量である。特定のアプリケーションに関連付けられたアプリケーション再生期間320がプレゼンテーションタイムライン上で概念化される場合に得られる、タイトル時間の開始および終了によって定義される間隔をアプリケーションプレゼンテーション間隔321と呼ぶ。
【0045】
いくつかの場合において、アプリケーション155は、2つ以上のページ(ページは図示せず)を有することができる。ページは、特定のアプリケーション再生期間320および/またはアプリケーションプレゼンテーション間隔321内で同時に提示可能な1つまたは複数の対話型オブジェクトの論理的なグループである。所与のタイトルに関連付けられたアプリケーションおよびページの数、および各アプリケーションまたはページに関連付けられた対話型オブジェクトは、一般に、設計上の選択の問題である論理的な区別である。
【0046】
命令304は、実行されると、ユーザ入力に基づくアプリケーション155に関連付けられた対話型オブジェクト125のレンダリングに関するタスク(他のタスクの中で特に)を実行する。ユーザ入力は、IC構成要素124またはメディア構成要素122のプレゼンテーションに影響を与える。ユーザ入力の例には、メディアソースの状態を変更するユーザ入力(たとえば、再生速度の入力)、およびメニュー280内のボタンの選択、グラフィクオーバーレイ290に関連付けられた円の選択、またはスクリプトクリップ255の呼び出しなどの、再生プレゼンテーション127内の対話型オブジェクトとのユーザの相互作用が含まれるが、それだけに限らない。そのような相互作用は、キーボード、リモートコントロール装置、マウス、スタイラス、または音声コマンドを含む、現在知られているまたは最近開発された任意の種類のユーザ入力装置を使用して発生する。アプリケーション155は、ユーザイベント以外のイベントに応答することが理解されよう。
【0047】
一般に、命令304は、コンピュータ可読メディア(図8および図9に関連してさらに下記で説明する)において符号化されたコンピュータ実行可能命令またはコマンドである。本明細書で説明する例では、命令304は、マークアップ要素303またはスクリプト308のどちらかを使用して実行される。スクリプトまたはマークアップ要素はどちらも単独で使用可能だが、一般に、スクリプトおよびマークアップ要素を組み合わせることにより、高画質DVD動画向けの包括的な対話型機能のセットを作成できる。
【0048】
スクリプト308は、命令型プログラミング言語などの非宣言型プログラミング言語で書かれた命令304を含む。命令型プログラミング言語は、プロセッサによって実行されるコマンドのシーケンスによって計算を記述する。スクリプトが使用される場合の例には、ユーザ入力への応答、対話型オブジェクト125のプレゼンテーションの態様の処理、システムイベント、状態管理、およびリソース管理(たとえば、キャッシュされたまたは永続的に格納されたリソースへのアクセス)がある。スクリプト308は、再生プレゼンテーション127を介してユーザに対して次に提示する対象に影響を及ぼすことができ、特に、複数のアプリケーション155が、ユーザに対する提示またはプレゼンテーションのためにスケジュールされている対象について影響を及ぼすまたはそれに条件付けされるコマンドを発行する環境では、一定のスクリプトコマンドを実行するタイミングを制御することが望ましい場合がある。
【0049】
マークアップ要素303は、拡張可能マークアップ言語(「XML」)などの宣言型プログラミング言語で書かれた命令304を表す。XMLスキーマは、XMLドキュメントクラスの構文(複数可)定義である。いくつかのXMLスキーマはワールドワイドウェブコンソーシアム(「W3C」)によって定義されている。他のXMLスキーマは、DVDフォーラム、すなわち、高画質ビデオ向けDVD規格(DVD Specifications for High Definition Video)および他の使用形態向けのDVD規格に準拠して、XMLドキュメントで使用するためのDVDフォーラムによって公表されている。高画質DVD動画向けの他のスキーマならびに他の対話型マルチメディアプレゼンテーション向けのスキーマがあることが理解されよう。
【0050】
引き続き図3を参照すると、アプリケーション155は、予測状態マネージャ195(図7に関連してさらに説明する)の機能にアクセスまたは機能を実行するために、仮想処理パイプラインAPI360などの、1つまたは複数のアプリケーションプログラミングインターフェイス(「API」)350を使用することもできる。一般に、スクリプトの作者は、API150を使用して、特定のアプリケーションの内部および外部のリソースにアクセスする。たとえば、リソースは、ユニバーサルリソース識別子または他の種類の所定の識別子を使用してアクセス可能である。アプリケーションの内部のリソースの例には、特定のアプリケーションに関連付けられた対話型オブジェクトおよびマークアップがあるが、それだけに限らない。特定のアプリケーションの外部にあるリソースの例には、他のアプリケーション、ネットワークの場所、メディアコンテンツマネージャ102およびその構成要素(仮想処理パイプライン170など)、プレゼンテーションマネージャ106およびその構成要素、ICマネージャ104およびその構成要素、ミキサ/レンダラ110およびその構成要素、ならびにタイミング信号管理ブロック108およびその構成要素があるが、それだけに限らない。DVDフォーラムによって公表された高画質ビデオ向けの規格に関連して、APIを介してアクセス可能なオブジェクトおよびメソッドのクラスライブラリは付属文書Zに説明されており、参照により本明細書に組み込まれる。
【0051】
引き続き図1〜図3を参照すると、図4は、タイミング信号管理ブロック108およびタイミング信号158の様々な構成要素をより詳細に表す、簡略化した機能ブロック図である。
【0052】
タイミング信号管理ブロック108は、プレゼンテーションシステム100内の特有の時間または期間を決定するのに使用されるクロックおよび/またはタイミング信号の処理に関与する。図に示すように、継続するタイミング信号401は、クロックソース402によって所定の速度で生成される。クロックソース402は、汎用コンピュータまたは専用の電子装置などの処理システムに関連付けられたクロックでもよい。クロックソース402は、実時間の1秒内に所定の速度で1秒相当のタイミング信号401を生成するので、クロックソース402によって生成されるタイミング信号401は、一般に、実世界の時計が変化するように継続して変化する。
【0053】
タイミング信号401は、ICフレームレート計算器404、メディアフレームレート計算器406、時間基準計算器408、および時間基準計算器490への入力である。ICフレームレート計算器404は、タイミング信号401に基づくタイミング信号405を生成する。タイミング信号405を「ICフレームレート」と呼び、ICデータ134のフレームがICマネージャ104によって生成される速度を表す。ICフレームレートの1つの例示的な値は、30フレーム/秒である。しかし、ICフレームレート405の周波数(「プレゼンテーションクロック周波数」と呼ぶ)は動的に変化する。プレゼンテーションシステム100の様々な構成要素内の処理負荷は、プレゼンテーションクロック周波数に基づいて変化することも理解されよう。ICフレームレート計算器404は、タイミング信号405を生成するために、タイミング信号401の速度を減少または増加させることができる。
【0054】
ICデータ134のフレームは一般に、有効な各アプリケーション155および/またはそのページについて、関係するユーザイベントに従って有効なアプリケーションおよび/またはページに関連付けられた、各対話型オブジェクト125のレンダリングを含む。例示のために、有効なアプリケーションを、再生期間292の現在のタイトル時間がプレゼンテーションタイムライン130に基づいてその範囲内に入る、アプリケーションプレゼンテーション間隔321を有するアプリケーションとする。アプリケーションは、2つ以上のアプリケーションプレゼンテーション間隔を有する場合があることが理解されよう。ユーザ入力またはリソース可用性に基づくアプリケーションの状態について、本明細書では特有の区別を設けないことも理解されよう。
【0055】
メディアフレームレート計算器406は、タイミング信号401に基づいて、タイミング信号、すなわちタイミング信号407も生成する。タイミング信号407を「メディアフレームレート」と呼び、メディアサンプルがメディアコンテンツマネージャ102によって生成される速度を表す。メディアフレームレートは、ICフレームレート405と同一の場合も異なる場合もある。メディアフレームレートの1つの例示的な値は、24フレーム/秒である。しかし、メディアフレームレート407の周波数は動的に変化する。メディアフレームレート計算器406は、タイミング信号407を生成するために、タイミング信号401の速度を減少または増加させることができる。
【0056】
クロックソース470は、クリップ123に関連付けられた情報がメディアソース161から生成される速度を制御する、タイミング信号471を生成する。クロックソース470は、クロック402と同じクロックでよく、またクロックソース402と同じクロックに基づいてもよい。代替として、クロック470およびクロック402は、完全に異なるおよび/または異なるソースを有することもできる。同様に、メディアフレームレート407は、タイミング信号471と同じでよく、またタイミング信号471と同じ値に基づいてもよく、またタイミング信号は異なってもよい。
【0057】
クロックソース470は、メディア状態インディケータブロック480によって生成される、メディア状態インディケータ信号481に基づいて、タイミング信号471の速度(「メディアクロック周波数」と呼ぶ)を調節する。メディアクロック周波数はまた、符号化速度または復号化速度などのメディアソースの特性に基づいて変化する。したがって、メディアクロック周波数はクリップごとに変化する。
【0058】
メディア状態インディケータブロック480はまた、特定のメディアソース160(図1に示す)からの、ビデオ、オーディオ、またはデータ情報の取得状態またはプレゼンテーション状態である、1つまたは複数のメディア状態を表しまたは決定するのに使用可能である。メディア取得状態の例には、標準再生取得状態、一時停止取得状態、低速順方向取得状態、高速順方向取得状態、低速逆方向取得状態、高速逆方向取得状態、クローズ状態、レディ状態、およびプリローリング状態(すべてさらに下記で説明する)があるが、それだけに限らない。メディアプレゼンテーション状態の例には、メディアキャプチャ状態、メディアレイアウト状態、オーディオ再生状態、または再生プレゼンテーション127内で一定のメディアデータ132またはICデータ134が提示される方法または提示されるかどうかを示す、ユーザ選択状態(すべてさらに下記で説明する)があるが、それだけに限らない。特定のメディア取得状態およびメディアプレゼンテーション状態は、関連するメディア状態値(図6Aおよび図7に関連してさらに下記で説明する)を有することができる。メディア状態値は、特定のメディア状態に関連付けられた1つまたは複数のプロパティ、属性、またはパラメータである。
【0059】
様々な例示的なメディア状態のより詳細な説明を続ける。特定のメディアソースからの、ビデオ、オーディオ、またはデータ情報の取得状態は、再生プレゼンテーション127の様々な再生速度に基づいて定義される。一定のユーザ入力150は再生プレゼンテーション127の再生速度を変更し、したがって特定のメディアソース160からの、ビデオ、オーディオ、またはデータ情報の取得速度を変更する。たとえば、再生プレゼンテーション127は、標準速度で順方向に進行する場合があり、また標準速度よりも速い速度または遅い速度で、順方向および逆方向の両方に進行する場合もある。標準速度は相対的な用語であり、プレゼンテーションごとおよびクリップごとに変化することが理解されよう。
【0060】
標準再生取得状態は、再生プレゼンテーション127が標準速度で順方向に進行する場合に発生するように定義される。低速順方向取得状態は、再生プレゼンテーション127が順方向に、ただし実時間よりも遅く進行する場合に発生するように定義される。高速順方向取得状態は、再生プレゼンテーション127が順方向に、ただし実時間よりも速く進行する場合に発生するように定義される。低速逆方向取得状態は、再生プレゼンテーション127が逆方向に、ただし実時間よりも遅く進行する場合に発生するように定義される。高速逆方向取得状態は、再生プレゼンテーション127が逆方向に、ただし実時間よりも速く進行する場合に発生するように定義される。一時停止取得状態は、再生プレゼンテーション127がユーザによって一時停止された場合に発生するように定義される。
【0061】
高速逆方向取得状態および高速順方向取得状態中に、一定のメディアコンテンツの再生は、しばしばスキップされる。他のユーザ入力は、ユーザが動画のある部分から別の部分へジャンプする(たとえば、メニュー280などの対話型メニューから選択することにより)場合などに、一定のコンテンツの再生をスキップさせることがある。
【0062】
特定のメディアソース160からの特定のクリップ123に関連付けられたビデオ、オーディオ、またはデータ情報の再生の位置決めおよび/または開始に関連付けられた取得状態も定義可能である。たとえば、クローズ状態は、特定のクリップ123に関連付けられたビデオ、オーディオ、またはデータ情報が特定のメディアソース160から読み取られる前に発生するように定義される。レディ状態は、特定のメディアソース160からの、ビデオ、オーディオ、またはデータ情報のサンプルの第1グループが復号化され、レンダリング可能な状態にある場合に発生するように定義される。プリローリング状態は、特定のメディアソース160からの、ビデオ、オーディオ、またはデータ情報のサンプルの第1グループをレンダリングするために準備のステップが行われている、クローズ状態とレディ状態の間に発生するように定義される。しかし、他のメディアサンプルは、前のクリップの再生が終了する場合、または前の再生を直ちに停止することなく、予期しない遷移について準備する場合などに、別のメディア処理パイプラインまたはメディアソースを使用して並行して提示可能である。準備のステップは、特定のメディアソース160からの情報の読み取り、および情報の逆多重化、復号化および/または解読を含むが、それだけに限らない。特定のメディアソースからの、情報のサンプルの第1グループは、必ずしも特定のクリップ123内で発生するサンプルの第1グループとは限らず、サンプルの第1グループの定義方法は、符号化または暗号化の形態またはプロトコルなどの要因に基づいて、プレゼンテーションごとに変化することが理解されよう。
【0063】
再生プレゼンテーション127内でのメディアデータ132またはICデータ134の提示方法または提示するかどうかを示す、メディアプレゼンテーション状態も定義可能である。たとえば、メディアキャプチャ状態は、一時停止取得状態で発生することを定義可能であり、メディアレイアウト状態は、再生プレゼンテーション127内でメディアデータ132のレイアウトが変更されているかどうかを示すのに使用可能であり、オーディオ再生状態は、一定のオーディオ効果が再生されているかどうかを示すのに使用可能であり、リソースインディケータの状態は、再生プレゼンテーション127内で提示可能な対話型オブジェクトまたは別のリソースを識別するのに使用可能である。
【0064】
図4の要素を再び参照すると、経過クリップ再生時間452は、アクティブなクリップ123に関連付けられた特定のプレゼンテーション間隔内で経過した時間の量を表す。本明細書での説明のために、アクティブなクリップを、プレゼンテーションタイムライン130に基づいて再生期間292の現在のタイトル時間がその範囲内に入る、プレゼンテーション間隔(図2に示す)を有するクリップとする。時間基準計算器454は、時間基準452を受け取り、メディア時間基準455を生成する。メディア時間基準455は、1つまたは複数の時間基準452に基づいて経過した再生期間292の総量を表す。一般に、2つ以上のクリップが並行して再生されている場合、1つの時間基準452のみがメディア時間基準455の生成に使用される。メディア時間基準455の決定に使用される特定のクリップ、および複数のクリップに基づくメディア時間基準455の決定方法は実装上の選択の問題である。
【0065】
時間基準計算器408は、タイミング信号401、メディア時間基準455、およびメディア状態インディケータ信号481を受け取り、タイトル時間基準409を生成する。タイトル時間基準409は、時間基準計算器408への1つまたは複数の入力に基づく、再生期間292内で経過した時間の総量を表す。
【0066】
時間基準計算器490は、タイミング信号401およびタイトル時間基準409を受け取り、アプリケーション時間基準(複数可)492およびページ時間基準(複数可)494を生成する。単一のアプリケーション時間基準492は、継続するタイミング信号401に関して、特定のアプリケーション再生期間320(図3に関連して示し、説明する)の経過時間の量を表す。アプリケーション時間基準492は、現在のタイトル時間が特定のアプリケーションのアプリケーションプレゼンテーション間隔321内に入ることを、タイトル時間基準409が示す時を決定する。アプリケーション時間基準492は、アプリケーションプレゼンテーション間隔321の完了時にリセットされる(たとえば、非アクティブになる、またはやり直す)。アプリケーション時間基準492はまた、ユーザイベントに応じて、またはトリック再生が発生した場合などの、他の状況においてもリセットされる。
【0067】
ページ時間基準494は、継続するタイミング信号401に関して、アプリケーションの特定のページに関する特定のアプリケーション再生期間内の経過時間の量を表す。アプリケーションの特定のページに関するページ時間基準494は、現在のタイトル時間が該当するページプレゼンテーション間隔(図示せず)内に入ることを、タイトル時間基準409が示す時を決定する。ページプレゼンテーション間隔は、アプリケーションプレゼンテーション間隔321(図3に示す)の副間隔である。ページ時間基準(複数可)494は、該当するページプレゼンテーション間隔(複数可)(図示せず)の完了時にリセットされる。ページ時間基準494は、ユーザイベント応じて、またはトリック再生が発生した場合などの、他の状況においてもリセットされる。アプリケーションプレゼンテーション間隔321および/またはページプレゼンテーション間隔の副間隔(sub−interval)である、対話型オブジェクトのプレゼンテーション間隔も定義可能であることが理解されよう。
【0068】
表1に、プレゼンテーションシステム100による再生プレゼンテーション127の再生中の例示的な現象、およびアプリケーション時間基準492、ページ時間基準494、タイトル時間基準409、およびメディア時間基準455についてのそのような現象の影響を示す。
【0069】
【表1】

【0070】
様々なタイムライン、クロックソース、タイミング信号、およびタイミング信号基準へのアクセスを有することは、再生プレゼンテーション127内のICデータ124およびメディアデータ132のフレームレベルの同期化を達成し、メディア構成要素122を含むクリップの誤作動のないプレゼンテーションを優先させるプレゼンテーションシステム100の機能を強化する。
【0071】
引き続き図1〜図4を参照すると、図5は、図2のプレゼンテーションタイムライン130に示すアプリケーション155に、同期する方法で関連付けられたクリップ123および対話型オブジェクト125などの、特定のプレゼンテーションのメディアコンテンツおよび対話型コンテンツを提示する、プレゼンテーションシステム100などのプレゼンテーションシステムの機能を強化するための、1つの方法のフローチャートである。より具体的には、図5の方法は、再生プレゼンテーション127のコンテンツに影響する一定のユーザ入力およびアプリケーション命令を実行するタイミングに関する。
【0072】
図5に示す処理(複数可)は、図8に関連して下記に説明するプロセッサ802などの、1つまたは複数の汎用、多目的、または専用のプロセッサで実行可能である。具体的に述べない限り、本明細書で説明する方法は、特定の順序またはシーケンスに制限されるものではない。さらに、説明する方法またはその要素のいくつかは、並行して発生し、または実行されることができる。
【0073】
この方法はブロック500で開始し、メディアタイムライン142(図6Aに関連して説明する)などの、メディアタイムラインの少なくとも一部分が確認されるブロック502で継続する。ブロック504で、メディアタイムラインは、現在の経過再生時間、および現在の経過再生時間でのプレゼンテーションシステムの状態に関連付けられた、現在のメディア状態などの現在の状態を識別するのに使用される。現在の経過再生時間は、現在のメディアソースから現在のメディアサンプルがユーザに対して再生されている、プレゼンテーションの再生期間内の時間を表す。メディアタイムラインはまた、ブロック506で、将来の時間でのプレゼンテーションシステムの状態に関連付けられた、メディア状態などの予測状態を識別するのにも使用される(例示のために、将来の時間は予測経過再生時間として識別されるが、将来の時間は任意の将来の時間またはその間隔でもよい)。予測経過再生時間は、次のメディアソースからの次の再生可能なメディアサンプルが、ユーザに対して再生可能である再生期間内の時間を表すが、将来の時間(複数可)での1つまたは複数の将来のメディアサンプルが、ユーザに対して再生可能であることが理解されよう。ブロック508で、命令またはユーザ入力は、現在のメディア状態に基づいて実行可能であることが識別され、ブロック510で、命令は予測メディア状態に基づいて実行される。予測経過再生時間は、次の再生可能なメディアサンプルを提示可能な時間であると述べることができるが、数フレーム(または秒)がバッファされるので、実際は、予測経過再生時間は将来の数フレーム(または秒)であり、必ずしも次の連続したメディアサンプルまたは次のフレームとは限らないことが理解されよう。
【0074】
図6Aは、メディアコンテンツ122の再生中に発生する一定の時間セグメントおよび関連付けられた状態/メディア状態値696を表す、例示的なメディアタイムライン142(メディアフレームレート407に関する)の概略図である。様々なメディアサンプルプレゼンテーション時間602を、メディアタイムライン142上に示す。メディアサンプルプレゼンテーション時間602は、クリップ123の1つまたは複数のサンプルをメディアデータ132として提示可能な再生期間292(図2に示す)内の時間を表す。図に示すように、メディアサンプルプレゼンテーション時間602は、メディアフレームレート407に基づいた速度で発生し、メディアサンプルプレゼンテーション時間602の間の周期的なメディア時間間隔604の期間も定義する。メディアクロック周波数は、特定のクリップについての符号化フレームレートに基づいて変化するが、メディアフレームレート407は、特定のクリップ123が符号化されるフレームレートと同じである必要はないことに留意されたい。
【0075】
再生期間292の現在の経過再生時間609をメディアタイムライン142上に示す。現在の経過再生時間609は、たとえば、タイトル時間409の現在の値である。次の提示可能なメディアサンプルプレゼンテーション時間614も示す。次の提示可能なメディアサンプルプレゼンテーション時間614は、ユーザに対して提示可能な次のメディアサンプル(複数可)(現在の経過再生時間609/タイトル時間409に関連付けられた現在のメディアサンプルの後の)に関連付けられたメディアサンプルプレゼンテーション時間602を表す。次の提示可能なメディアサンプルは、再生リスト128に基づく次の連続したメディアサンプル、または現在の経過再生時間609に関連付けられたメディアサンプルから1つまたは複数のメディアサンプルプレゼンテーション時間602だけ離れたメディアサンプルであることが理解されよう。
【0076】
次の提示可能なメディアサンプルプレゼンテーション時間614を確認する1つの方法は、再生速度およびメディアフレームレート407に基づいて、経過した再生期間292の経過時間620の量を予測する(現在の経過再生時間609/タイトル時間409に加えて)ことである。ある実装では、予測経過再生時間620は、メディアサンプルプレゼンテーション時間602がメディアタイムライン142上で現在の経過再生時間608/タイトル時間409からどれだけ経過したかを見積もることによって計算される。たとえば、予測経過再生時間620は、現在の経過再生時間609に乗数値を加算することによって計算できる。乗数値は、再生速度係数(再生速度の変更方向によって正数または負数となる)にフレームレート係数を乗算することにより求められる。再生速度係数は、再生速度を表す値をメディアフレームレート407で除算することにより求められる。フレームレート係数は、メディアフレームレート407をICフレームレート405で除算することにより求められる。次いで、予測経過再生時間620は、次の提示可能なメディアサンプルプレゼンテーション時間614となる特定のメディアサンプルプレゼンテーション時間602を位置決めするのに使用される。
【0077】
しばしば、様々な再生速度で、予測した経過時間620の量(およびそれに対応するメディアサンプルプレゼンテーション時間602)と対応する次の提示可能なメディアサンプルプレゼンテーション時間614との間にパターンが観察される。そのようなパターンを認識することは、各メディアサンプルプレゼンテーション時間602で計算を実行する必要を低減させる。パターンは、所定の表または他のデータ構造体で表すことができ、特定のメディアサンプルプレゼンテーション時間602に基づいて次のメディアサンプルプレゼンテーション時間614を検索するのに使用可能である。このようにして、所定のデータ構造体または表を使用して、一定のフレームのレンダリングおよび他の調節をスキップすることができる。さらに、複数のメディアタイムラインは、並行して(たとえば、2つ以上のクリップが再生されている場合に)処理可能である。
【0078】
メディア状態値696は、メディアタイムライン142内の様々な時間での、プレゼンテーションシステムの状態の1つまたは複数の態様を説明するように定義される。例示のために、初期のメディア状態値、現在のメディア状態値、および予測メディア状態値を、それぞれ初期の再生時間(図示せず)、現在の経過再生時間609、および予測経過再生時間620で定義する。ある実装では、メディア状態値696は、メディア取得状態またはメディアプレゼンテーション状態などのメディア状態の態様を説明する。しかし、プレゼンテーションシステムの状態はメディアに関する状態以外の場合があり、メディアサンプルプレゼンテーション時間602以外に任意の時間ベースが選択されることが理解されよう。
【0079】
多様なメディア状態およびメディア状態値696の定義が可能である。あるシナリオでは、メディア取得状態は、特定の時間に、一時停止、標準、低速順方向、高速順方向、低速逆方向、および高速逆方向に対応する、異なるメディア状態値696を有するように定義可能である。代替として、特定の時間に、それぞれがブール値をとるメディア状態値696を有する、複数のメディア取得状態が定義可能である。別のシナリオでは、特定の時間に、メディアキャプチャ状態、メディアレイアウト変更状態、およびオーディオ効果再生状態などの、複数のメディアプレゼンテーション状態が定義可能である。メディアプレゼンテーション状態は、ビデオが記録されているかどうか、メディアレイアウトが変更されているかどうか、またはオーディオ効果が再生されているかどうかをそれぞれ示すブール値を有することができる。さらに別のシナリオでは、リソースインディケータ状態などのメディアプレゼンテーション状態は、対話型オブジェクトまたは別のリソースに関連付けられた、URIまたは他の識別子に対応する値を有することができる。
【0080】
一定のメディア状態およびメディア状態値696は、他のメディア状態またはメディア状態値696に依存する。たとえば、メディアキャプチャ状態は、特定のメディア取得状態が一時停止値を有する場合(または代替として、一時停止取得状態が真の場合)にのみ、真に設定可能である。
【0081】
メディア状態値696が予測メディア状態の態様を説明する場合、予測メディア状態は一般に、予測経過再生時間620に存在するはずの状態である。しかし、いくつかの場合において、追加のまたは異なる予測メディア状態が、可変の時間オフセット値に基づいた量だけ予測経過再生時間620に先行する1つまたは複数の事前レンダリング時間(図示せず)に存在する。事前レンダリングは、一定の対話型オブジェクト、またはメディアソースからのクリップの部分を、そのようなオブジェクトまたはクリップの部分がプレゼンテーションのためにスケジュールされる時間に先立って、レンダリングするための取得および準備を含む。事前レンダリング時間に関連付けられたメディア取得状態の例には、クローズ状態、レディ状態、およびプリローリング状態があるが、それだけに限らない。
【0082】
図6Bは、一定のアプリケーション命令またはユーザ入力の実行が(特に、現在の経過再生時間609の後であって、しかし予測経過再生時間620が発生する前に生じる場合)、再生プレゼンテーション127のコンテンツにどのように影響を与えるかを示す、例示的なICタイムライン144(ICフレームレート405に関する)の概略図である。
【0083】
ICタイムライン144上のICプレゼンテーション時間606は、アプリケーション命令を実行可能および/または対話型オブジェクト125を提示可能もしくは選択可能である再生期間292内の時間を表す。図に示すように、ICプレゼンテーション時間606は、ICフレームレート405に基づく速度で発生し、またICプレゼンテーション時間606の間の周期的な対話型コンテンツ時間間隔628の期間も定義する。プレゼンテーションクロック周波数は動的に変化するが、説明のために、ICフレームレート405を30フレーム/秒と仮定する。
【0084】
現在の対話型コンテンツのプレゼンテーション時間(「現在のICプレゼンテーション時間」)610は、現在の経過再生時間609に基づいて確認される。一般に、現在の経過再生時間609に対応するICプレゼンテーション時間606は、現在のICプレゼンテーション時間610を表す。ICタイムライン144上に、現在の経過再生時間609に正確に対応するICプレゼンテーション時間606がない場合、別のICプレゼンテーション時間606(一般に、最も近い時間)を現在のICプレゼンテーション時間610と見なすことができる。
【0085】
次のICプレゼンテーション時間612も、ICタイムライン144に関して確認される。ある実装では、次のICプレゼンテーション時間612は、メディアタイムライン142上の次の提示可能なメディアサンプルプレゼンテーション時間614に対応するICプレゼンテーション時間606である。次のICプレゼンテーション時間612は、現在のICプレゼンテーション時間610に対して、次の連続したICプレゼンテーション時間606でない場合がある。これらの相違の理由の1つは、ICフレームレート405がメディアフレームレート407と異なることである。別の理由は、ユーザ入力がプレゼンテーションの再生速度(および/または方向)に影響することである。
【0086】
次の提示可能なメディアサンプルプレゼンテーション時間614の前に次のICプレゼンテーション時間612が発生する場合、またはそうでなければ次の提示可能なメディアサンプルプレゼンテーション時間614に到達する前にアプリケーション命令またはユーザ入力が生じる場合では、再生プレゼンテーション127のコンテンツが影響を受けることが認められる。特に、そのようなアプリケーション命令またはユーザ入力の過度に迅速なまたは遅れた実行は、プレゼンテーションシステムの現在の状態に影響を及ぼし、メディアデータ132の再生における誤作動、またはメディアデータ132とICデータ134の間の同期化の欠損を引き起こす。一定のアプリケーション命令およびユーザ入力を識別すること、ならびにそれらの効果が最良に実行およびユーザに対して直ちに表示されているかどうか、またはそれらが事前にレンダリングされた素材の効果の前後もしくは効果の代わりによりよく実行されているかどうかを判定することが望ましい。
【0087】
図7は、一定の種類のユーザ入力150(対話型オブジェクト125の選択または再生速度の調節など)およびICマネージャ104からの入力190(アプリケーション155に関連付けられた一定のスクリプト命令など)を受け取り、データ構造体702のコンテンツを使用して、再生プレゼンテーション127内のそれらの効果を実行するタイミングを決定する、予測状態マネージャ195(図1に示す)の簡略化した機能ブロック図である。
【0088】
一般に、データ構造体702は、1つまたは複数の現在の状態の部分(1つを示し、例示のために「現在のメディア状態部分」と呼ぶ)704および1つまたは複数の予測状態の部分(1つを示し、例示のために「予測メディア状態部分」と呼ぶ)706を含む。現在のメディア状態部分704は、現在の経過再生時間609(図6Aに示す)での、プレゼンテーションシステム100の1つまたは複数の状態(たとえば、メディア取得状態またはメディアプレゼンテーション状態)を参照するのに使用される。予測メディア状態部分706は、予測経過再生時間620(同じく図6Aに示す)での、プレゼンテーションシステム100の1つまたは複数の状態の1つまたは複数の態様(たとえば、メディア取得状態またはメディアプレゼンテーション状態)および/またはそれに関連付けられた事前レンダリング時間を格納するのに使用される。
【0089】
現在のメディア状態値は現在のメディア状態部分704に関連付けられ、予測メディア状態値は予測メディア状態部分706に関連付けられる。メディア構成要素122およびIC構成要素124の再生が進行するにつれ、予測状態マネージャ195は現在のメディア状態値および予測メディア状態値を更新する。
【0090】
ある実装では、予測状態マネージャ195は、物理メディア処理パイプライン159の出力に影響を及ぼし、またはその出力を置き換える出力を有する、仮想メディア処理パイプライン170(図1に示す)として働く。たとえば、予測状態マネージャ195は、アプリケーション155の作者によって書かれた命令を介してアクセスされる、1つまたは複数のAPI350(仮想処理パイプラインAPI360など。API350およびAPI360の両方を図3に示す)の実装である。予測状態マネージャ195は、アプリケーションの作者に物理メディア処理パイプライン159として表示される。他の実装では、予測状態マネージャ195は、ICマネージャ104、ミキサ/レンダラ110、プレゼンテーションマネージャ106、またはタイミング信号管理構成要素108の態様などの、プレゼンテーションシステム100の他の物理または論理構成要素に配置可能である。
【0091】
予測状態マネージャ195がアプリケーションの作者に物理メディア処理パイプラインとして表示される場合、各メディアサンプルプレゼンテーション時間(たとえば、各ビデオフレームのプレゼンテーション時間)に、予測状態マネージャ195は、現在のメディア状態部分704内の現在のメディア状態値を、現在の物理メディア処理パイプラインの値/状態に関連付けられた1つまたは複数の値/状態で初期化する。続いて、物理メディア処理パイプラインを操作する一定のAPIが、予測状態マネージャに送出される。予測状態マネージャ195は、予測メディア状態値を更新してAPIを反映し、物理メディア処理パイプラインによって実行されたかのように、所望の時間に再生プレゼンテーション127のコンテンツに影響を及ぼすように、APIの効果をキューに入れる。
【0092】
実際上のある例において、現在のメディア取得状態は標準再生取得状態であると仮定し、またメディアサンプル(フレーム番号など)25はユーザに対して現在再生されていると仮定する(メディアタイムライン142に関して)。次の再生可能なメディアサンプルはフレーム番号26であり、フレーム番号26の一部としてIC構成要素124に関連付けられた1つのアプリケーション155は、再生プレゼンテーション127を一時停止することになる作成されたスクリプトを実行する。別のアプリケーション155は、再生プレゼンテーションが再生されているか、それとも一時停止されているかを判定するためにメディア取得状態を問い合わせる。
【0093】
フレーム番号26の事前レンダリング時間で、予測状態マネージャ195は、データ構造体702の現在のメディア状態部分704内で、1つまたは複数の現在のメディア状態値(たとえば、現在のメディア取得状態が標準再生取得状態であることを示す1つまたは複数の値)を初期化する。再生プレゼンテーション127を一時停止するのに使用されるスクリプトコマンドは、予測状態マネージャ195によって実行される1つまたは複数の機能を呼び出すAPIを使用する、作成されたスクリプトである。予測状態マネージャ195は、物理メディア処理パイプラインが一時停止コマンドを実行しなければならないことを記録する(たとえば、キューに入れる)が、一時停止コマンドは直ちに物理メディア処理パイプラインに送出される場合もあればそうでない場合もある。予測状態マネージャはまた、データ構造体702の予測メディア状態部分706内で、1つまたは複数の予測メディア状態値(たとえば、予測されたメディア取得状態が一時停止取得状態であることを示す1つまたは複数の値)も初期化する。
【0094】
他のアプリケーションがメディア取得状態を問い合わせる場合(たとえば、APIを介して予測状態マネージャと通信することにより)、予測状態マネージャ195は、現在のメディア取得状態(標準再生取得状態)の代わりに、予測されたメディア取得状態(一時停止取得状態)を返す。これは、アプリケーションの作者が予期する結果と一致し、一時停止コマンドが物理メディア処理パイプラインによって直ちに実行された場合に生じる結果と同じである。
【0095】
フレーム番号26が事前にレンダリングされると(たとえば、レディ状態に到達する)、予測状態マネージャおよび/または物理メディア処理パイプラインは通知を受ける。フレーム番号26に関連付けられた次の提示可能なメディアサンプルプレゼンテーション時間614(図6Aに示す)が発生した場合、物理メディア処理パイプライン159(またはプレゼンテーションシステム100の別の構成要素)は、予測状態マネージャ195から記録された/キューに入れられたコマンドを要求(この場合は一時停止コマンドを検索)する。記録された/キューに入れられたコマンド(この場合は一時停止コマンド)は、フレーム番号26の素材の前後または素材の代わりに実行される。
【0096】
様々なユーザ入力およびアプリケーション命令の効果は、プレゼンテーションシステム100に関連付けられた実質的に無数の状態に対して決定可能であり、時限実行のために(または即時実行ために)予測状態マネージャ195によって記録され/キューに入れられることが理解されよう。いくつかの追加の例には、一定の音響効果が再生されているかどうか、およびどの対話型オブジェクトをどのメディアサンプルでユーザに対して提示可能かがあるが、それだけに限らない。一定のユーザ入力またはアプリケーション命令は、予測状態マネージャ195内の状態情報を変更でき、一方、他のユーザ入力またはアプリケーション命令は、予測状態マネージャ195内の状態情報に依存する(状態情報に基づいた条件処理を実行する方法など)。
【0097】
図8は、プレゼンテーションシステム100の様々な機能構成要素を実行するのに使用され、それによってアクセスされ、またはそれに含まれる、一定の機能構成要素を示す、汎用演算装置800のブロック図である。演算装置800の1つまたは複数の構成要素は、ICマネージャ104、プレゼンテーションマネージャ106、およびメディアコンテンツマネージャ102を実行するのに使用され、それによってアクセスされ、またはそれに含まれる。たとえば、図8の1つまたは複数の構成要素は、一緒にまたは別個にパッケージされて、様々な方法でプレゼンテーションシステム100の機能(全体または部分で)を実行することができる。
【0098】
1つまたは複数のプロセッサ802は、コンピュータ可読メディア804およびコンピュータプログラム806に応答する。物理プロセッサまたは仮想プロセッサであるプロセッサ(複数可)802は、コンピュータ実行可能命令を実行することによって電子装置の機能を制御する。プロセッサ(複数可)802は、命令をアセンブリレベル、コンパイルされたレベル、または機械レベルで実行して、特定の処理を実行できる。そのような命令は、ソースコードまたは他の任意の知られているコンピュータプログラム設計ツールを使用して作成可能である。
【0099】
コンピュータ可読メディア804は、プロセッサ802によって実行可能な命令などの、現在知られているまたは最近開発された任意の形態のコンピュータ可読データを記録、格納、または伝送できる、ローカルまたはリモート装置の任意の数および組合せを表す。特に、コンピュータ可読メディア804は、半導体メモリ(たとえば、読み取り専用メモリ(「ROM」)、任意の種類のプログラム可能なROM(「PROM」)、ランダムアクセスメモリ(「RAM」)、もしくはフラッシュメモリなど)、磁気記憶装置(フロッピー(登録商標)ディスクドライブ、ハードディスクドライブ、磁気ドラム、磁気テープ、もしくは磁気光学ディスクなど)、光学記憶装置(任意の種類のコンパクトディスクもしくはデジタル多用途ディスク)、バブルメモリ、キャッシュメモリ、コアメモリ、ホログラフィックメモリ、メモリスティック、紙テープ、パンチカード、またはそれらの任意の組合せであり、またはそれらを含むことができる。コンピュータ可読メディア804はまた、それらに関連付けられた伝送メディアおよびデータも含むことができる。伝送メディア/データの例には、被変調搬送波信号(modulated carrier signal)によって搬送されるパケット化または非パケット化データなどの、有線伝送または無線伝送の任意の形態で使用されるデータがあるが、それだけに限らない。
【0100】
コンピュータプログラム806は、データへの所定の操作を電子的に制御する、任意の信号処理方法または格納された命令を表す。一般に、コンピュータプログラム806は、構成要素ベースのソフトウェア開発用のよく知られた手法に従ってソフトウェア構成要素として実装され、コンピュータ可読メディア(コンピュータ可読メディア804など)で符号化された、コンピュータ実行可能命令である。コンピュータプログラムは、様々な方法で組合せまたは配布可能である。
【0101】
プレゼンテーションシステム100に関連して説明した機能/構成要素は、コンピュータプログラムの任意の特有の実施形態による実装に限定されるものではない。むしろ、機能はデータを伝達または変換するプロセスであり、一般に、プレゼンテーションシステム100の機能要素の任意の組合せに配置され、またはそれによってアクセスされるハードウェア、ソフトウェア、ファームウェア、もしくはそれらの任意の組合せによって実装され、またはそれらで実行される。
【0102】
引き続き図8を参照すると、図9は、プレゼンテーションシステム100のすべてまたは部分が実装または使用される動作環境900の例示的な構成のブロック図である。動作環境900は、一般に、多様な汎用または専用の演算環境を示す。動作環境900は、適切な動作環境の一例にすぎず、本明細書で説明するシステム(複数可)および方法の用途または機能の範囲に関して限定を提示することを意図するものではない。たとえば、動作環境900は、パーソナルコンピュータ、ワークステーション、サーバ、ポータブル装置、ラップトップ、タブレットなどのコンピュータの一種、または光学メディアプレーヤもしくは別の種類のメディアプレーヤなどの現在知られているもしくは最近開発された他の任意の種類の電子装置、またはそれらの任意の態様でもよい。動作環境900はまた、たとえば、分散コンピューティングネットワークまたはWebサービスでもよい。動作環境900の特有の例は、高画質DVD動画の再生を実行するDVDプレーヤまたはそれに関連付けられたオペレーティングシステムなどの環境である。
【0103】
図に示すように、動作環境900は、プロセッサ802、コンピュータ可読メディア804、およびコンピュータプログラム806を含む、演算装置800の構成要素を含み、またはそれにアクセスする。記憶装置904は、光学ディスクドライブ906によって処理される、動作環境900に具体的に関連付けられた、光学ディスクなどの追加のまたは異なるコンピュータ可読メディアを含む。よく知られ、広く利用可能な要素である、1つまたは複数の内部バス920は、コンピューティング環境900またはその要素の内部で、そこに、またはそこから、データ、アドレス、制御信号および他の情報を搬送するのに使用できる。
【0104】
入力インターフェイス(複数可)908は、コンピューティング環境900に入力を提供する。入力は、ユーザインターフェイスなどの、現在知られているまたは最近開発された任意の種類のインターフェイスを使用して収集される。ユーザインターフェイスは、リモートコントロール装置、ディスプレイ、マウス、ペン、スタイラス、トラックボール、キーボード、マイクロホン、スキャン装置、およびデータ入力に使用されるすべての種類の装置などのタッチ入力装置でよい。
【0105】
出力インターフェイス(複数可)910は、動作環境900からの出力を提供する。出力インターフェイス(複数可)910の例には、ディスプレイ、プリンタ、スピーカ、ドライブ(光学ディスクドライブ906や他のディスクドライブなど)などがある。
【0106】
外部通信インターフェイス(複数可)912は、チャネル信号、データ信号、またはコンピュータ可読メディアなどの、通信メディアを介して、別のエンティティから情報を受け取りまたはそこに情報を伝送する、動作環境900の機能を拡張するために利用可能である。外部通信インターフェイス(複数可)912は、関連付けられたネットワークサポート装置および/またはソフトウェアまたはインターフェイスとともに、ケーブルモデム、データ端末装置、メディアプレーヤ、データ記憶装置、携帯情報端末(personal digital assistant)、または他の任意の装置またはそれらの構成要素/組合せなどの要素であり、またはそれらを含む。
【0107】
図10は、プレゼンテーションシステム100または動作環境900をそれに関連して使用できる、クライアント/サーバアーキテクチャ1000の簡略化した機能図である。プレゼンテーションシステム100および/または動作環境900の1つまたは複数の態様は、アーキテクチャ1000のクライアント側1002またはアーキテクチャ1000のサーバ側1004に表すことができる。図に示すように、通信フレームワーク1003(たとえば、有線または無線の、任意のパブリックネットワークまたは任意の種類のプライベートネットワークでよい)は、クライアント側1002とサーバ側1004の間の通信を実行する。
【0108】
クライアント側1002で、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装可能な1つまたは複数のクライアント1006は、クライアントデータストア1008に応答する。クライアントデータストア1008は、クライアント1006に対して情報をローカルに格納するのに使用されるコンピュータ可読メディア804でよい。サーバ側1004で、1つまたは複数のサーバ1010は、サーバデータストア1012に応答する。クライアントデータストア1008と同様に、サーバデータストア1012は、サーバ1010に対して情報をローカルに格納するのに使用される1つまたは複数のコンピュータ可読メディア804を含む。
【0109】
対話型コンテンツをメディアコンテンツと同期して、ユーザに対して提示するのに使用されるプレゼンテーションシステムの様々な態様を説明した。しかし、プレゼンテーションシステムの説明した構成要素のすべてが使用される必要はなく、また使用される場合、構成要素が並行して存在する必要もないことが理解されよう。プレゼンテーションシステム100に関連して、コンピュータプログラムとして説明した機能/構成要素は、コンピュータプログラムの任意の特有の実施形態による実行に限定されない。むしろ、機能はデータを伝達または変換するプロセスであり、一般に、ハードウェア、ソフトウェア、ファームウェア、もしくはそれらの任意の組合せによって実装され、またはそれらで実行される。
【0110】
本明細書の主題を、構造的な特徴および/または方法論的な動作に特有の用語で説明したが、特許請求の範囲で定義される主題は、必ずしも前述の特有の特徴または動作に限定されないことも理解されるはずである。むしろ、前述の特有の特徴および動作は、特許請求の範囲を実施する形態の例として開示される。
【0111】
ある要素が別の要素に応答していることが示される場合、その要素は直接または間接的に結合可能であることがさらに理解されよう。本明細書で説明する接続は、実際には、要素間の結合または通信インターフェイスを実現するための論理接続または物理接続でよい。接続は、様々な方法の中でも特に、ソフトウェアプロセスの間のプロセス間通信、またはネットワークコンピュータの間のマシン間通信として実装可能である。
【0112】
「例示的な」という用語は、本明細書では、例、事例、または実例として働くという意味で使用される。本明細書で「例示的な」と説明する任意の実装またはその態様は、必ずしも他の実装またはその態様よりも好ましいまたは有利であるとして構成されているとは限らない。
【0113】
前述の特有の実施形態以外の実施形態が、付属する特許請求の範囲および精神から逸脱することなく考案されることが理解されるように、本明細書での主題の範囲は、下記の特許請求の範囲によって支配されることが意図されている。

【特許請求の範囲】
【請求項1】
プロセッサ(802)によって実行される場合、プレゼンテーションシステム(100)を使用して対話型マルチメディアプレゼンテーション(120)を再生する方法を実行する、コンピュータ実行可能命令(806)で符号化されたコンピュータ可読メディア(804)であって、前記対話型マルチメディアプレゼンテーションは再生期間(292)および対話型コンテンツ構成要素(124)を有し、メディアコンテンツ構成要素(122)はメディアソース(160)から受け取り可能な複数のメディアサンプルに配置され、アプリケーション(155)は前記対話型コンテンツ構成要素を再生するためのコンピュータ実行可能命令(304)を有し、前記方法は、
少なくとも1つのメディアサンプルがユーザに対して再生可能である前記再生期間内の時間を表すメディアサンプルプレゼンテーション時間(602)を有するメディアタイムライン(142)の少なくとも一部分を確認するステップ(502)と、
前記メディアタイムラインに関して、現在のメディアソースからの現在のメディアサンプルがユーザに対して再生可能な場合に、前記再生期間内の時間を表す現在の経過再生時間(609)を識別するステップ(502)と、
前記現在の経過再生時間での前記プレゼンテーションシステムの状態に関連付けられた現在の状態を確認するステップ(504)と、
前記メディアタイムラインに関して、前記再生期間内の1つまたは複数の将来の再生時間を識別するステップ(506)と、
前記1つまたは複数の将来の再生時間での前記プレゼンテーションシステムの状態に関連付けられた予測状態を確認するステップ(506)と、
前記現在の状態に基づいて実行可能な命令(304)またはユーザ入力(150)を識別するステップ(508)と、
前記現在の状態の代わりに前記予測状態に基づいて前記命令または前記ユーザ入力の実行を準備するステップ(510)と
を含むことを特徴とするコンピュータ可読メディア。
【請求項2】
前記1つまたは複数の将来の再生時間は、次のメディアソースからの次の再生可能なメディアサンプルがユーザに対して再生可能である予測経過再生時間および将来の再生時間の間隔からなるグループから選択されることを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項3】
前記次の再生可能なメディアサンプルは次の連続したメディアサンプルでないことを特徴とする請求項2に記載のコンピュータ可読メディア(804)。
【請求項4】
前記現在の経過再生時間の後に発生するユーザ入力を識別するステップをさらに含み、前記予測状態は前記ユーザ入力に基づくことを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項5】
前記ユーザ入力は、再生速度の入力、および前記対話型コンテンツ構成要素に関連付けられた対話型オブジェクトの選択からなるグループから選択されることを特徴とする請求項4に記載のコンピュータ可読メディア(804)。
【請求項6】
前記現在の状態および前記予測状態は、前記現在のメディアサンプル、前記現在のメディアソース、次の再生可能なメディアサンプル、および次のメディアソースからなるグループから選択されることを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項7】
前記予測状態は、1つまたは複数の将来のメディアサンプルがユーザに対して再生可能である将来のメディアソースに関連付けられた取得状態を含むことを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項8】
前記命令の実行は、前記現在の状態を変更または前記現在の状態を条件とすることを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項9】
前記命令の実行を準備する前記ステップは、前記現在の経過再生時間(609)が生じた後に発生することを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項10】
前記現在のメディアサンプルはユーザに対してレンダリングされ、および次の再生可能なメディアサンプルは前記ユーザに対するレンダリングのために準備されていることを特徴とする請求項9に記載のコンピュータ可読メディア(804)。
【請求項11】
前記命令の実行を準備する前記ステップは前記命令の効果を格納することを含み、前記命令の前記格納された効果は前記次の再生可能なメディアサンプルが前記ユーザに対してレンダリングされる前または後に実行されることを特徴とする請求項12に記載のコンピュータ可読メディア(804)。
【請求項12】
前記命令は、前記アプリケーション(155)の作者によって使用されるアプリケーションプログラミングインターフェイス(「API」)(350)に関連付けられていることを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項13】
前記命令の実行を準備する前記ステップは、前記APIの実装によって実行されることを特徴とする請求項12に記載のコンピュータ可読メディア(804)。
【請求項14】
前記命令は、命令型の命令を含むことを特徴とする請求項1に記載のコンピュータ可読メディア(804)。
【請求項15】
対話型マルチメディアプレゼンテーション(120)を再生するためのプレゼンテーションシステム(100)であって、前記対話型マルチメディアプレゼンテーションは、再生期間(292)、メディアコンテンツ構成要素(120)、および対話型コンテンツ構成要素(124)を有するプレゼンテーションシステム(100)において、
プレゼンテーションのために前記メディアコンテンツ構成要素を準備するよう作動可能であり、前記メディアコンテンツ構成要素は少なくとも1つのメディアソース(160)から受け取り可能な複数のメディアサンプルを含む、メディアコンテンツマネージャ(102)と、
プレゼンテーションのために前記対話型コンテンツ構成要素を準備するよう作動可能であり、前記対話型コンテンツ構成要素は対話型オブジェクトをレンダリングするためのコンピュータ実行可能命令(304)を有するアプリケーション(155)を含む、対話型コンテンツマネージャ(104)と、
現在のメディアソースからの現在のメディアサンプルがユーザに対して再生可能な場合に、前記再生期間内の時間を表す現在の経過再生時間(609)を計算するよう作動可能な時間基準計算器(408/142)と、
前記メディアコンテンツマネージャ(102)および前記対話型コンテンツマネージャ(104)との通信のために構成され、前記現在の経過再生時間(609)を受け取るように応答する予測状態マネージャ(195)であって、
前記現在のメディアサンプルまたは前記現在のメディアソースに関連付けられた現在の状態を確認し、
前記現在の状態に関連付けられた第1状態値(696)の格納を準備し、
前記再生期間内の1つまたは複数の将来の再生時間に関連付けられた予測状態を確認し、
前記予測状態に関連付けられた第2状態値(696)の格納を準備し、
前記第1状態値を要求するアプリケーション命令(304)に応じて、前記第1状態値の代わりに前記第2状態値を返し、
前記第1状態値を要求する前記アプリケーション命令(304)は、前記現在の経過再生時間(609)が発生した後で、しかし前記1つまたは複数の将来の再生時間が発生する前に実行可能であるよう作動可能な、予測状態マネージャ(195)と
を含むことを特徴とするプレゼンテーションシステム(100)。
【請求項16】
前記予測状態マネージャ(195)は、前記第1状態値を要求する前記アプリケーション命令(304)を介してアクセスされるAPIの実装を含むことを特徴とする請求項15に記載のシステム(100)。
【請求項17】
前記予測状態マネージャ(195)は、仮想メディア処理パイプライン(360)を含むことを特徴とする請求項16に記載のシステム(100)。
【請求項18】
前記システムは、オペレーティングシステムおよび光学ディスクプレーヤからなるグループから選択されることを特徴とする請求項15に記載のシステム(100)。
【請求項19】
前記光学ディスクプレーヤは、DVDフォーラムによって公表された高画質ビデオ向けの規格に準拠することを特徴とする請求項18に記載のシステム(100)。
【請求項20】
対話型マルチメディアプレゼンテーション(122)を再生する装置であって、前記対話型マルチメディアプレゼンテーションは再生期間(292)および対話型コンテンツ構成要素(104)を有し、メディアコンテンツ構成要素(102)はメディアソース(160)から受け取り可能な複数のメディアサンプルに配置され、アプリケーション(155)は前記対話型コンテンツ構成要素を再生するためのコンピュータ実行可能命令(304)を有する装置において、
コンピュータ可読記憶メディア(804)と、
前記コンピュータ可読記憶メディアおよびコンピュータプログラム(806)に応答するプロセッサ(802)とを含み、前記コンピュータプログラムは、前記プロセッサにロードされた場合、
少なくとも1つのメディアサンプルがユーザに対して再生可能である前記再生期間内の時間を表すメディアサンプルプレゼンテーション時間(602)を有するメディアタイムライン(142)の少なくとも一部分を確認し、
前記メディアタイムラインに関して、現在のメディアソースからの現在のメディアサンプルがユーザに対して再生可能な場合に、前記再生期間内の時間を表す現在の経過再生時間(609)を識別し、
前記メディアタイムラインに関して、1つまたは複数の将来のメディアソースからの1つまたは複数の将来の再生可能なメディアサンプルがユーザに対して再生可能な前記再生期間内の時間を表す1つまたは複数の将来の再生時間(612)を識別し、
前記現在の経過再生時間が発生した後で、しかし前記1つまたは複数の将来の再生時間が発生する前に実行可能なアプリケーション命令(304)を識別し、
前記アプリケーション命令の実行に応じて、データ構造体(702)へのアクセスを準備するよう作動可能であり、前記データ構造体は、
第1状態値を識別する情報を有する第1データ部分(704)であって、前記第1状態値は現在の状態に関連付けられ、前記現在の状態は前記現在のメディアサンプルまたは前記現在のメディアソースに関連付けられた、第1データ部分(704)と、
第2状態値を識別する情報を有する第2データ部分(706)であって、前記第2状態値は予測状態に関連付けられ、前記予測状態は1つまたは複数の前記将来のメディアサンプルまたは前記将来のメディアソースに関連付けられた、第2データ部分(706)とを有し、
前記データ構造体は、前記第1状態値についての問い合わせに応じて、前記第2状態値を返すことを特徴とする装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2010−509852(P2010−509852A)
【公表日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2009−536408(P2009−536408)
【出願日】平成19年11月3日(2007.11.3)
【国際出願番号】PCT/US2007/083553
【国際公開番号】WO2008/058041
【国際公開日】平成20年5月15日(2008.5.15)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】