(57)【特許請求の範囲】
【請求項１】
プロセッサーによって実行された際に、或る量の共有可能メモリーを有するメモリー・プールを用いて、連続したデジタル・データ・ユニットの複数のセットを備えるデジタル・データを管理する方法を実行するコンピューター読み取り可能命令が符号化されたコンピューター読み取り可能記憶媒体であって、該方法が、
第一のシーケンスを有するデジタル・データ・ユニットの第一のセットを特定するステップと、
第二のシーケンスを有するデジタル・データ・ユニットの第二のセットを特定するステップと、
前記第一のセットの一部が前記第二のセットの一部と同時に処理される場合に、
前記第一のシーケンスの幾つかのデジタル・データ・ユニットの処理と関連付けられた第一の資源消費指標を確定するステップと、
前記第二のシーケンスの幾つかのデジタル・データ・ユニットの処理と関連付けられた第二の資源消費指標を確定するステップと、
前記第一の資源消費指標の前記第二の資源消費指標に対する比率を計算するステップと、
前記比率に従って、前記メモリー・プールの前記量の共有可能メモリーを、前記第一のセットの処理と関連付けられた動作と、前記第二のセットの処理と関連付けられた動作との間で動的に配分するステップと、
利用可能な一定量の共有可能メモリーが前記比率に従った配分に不十分であることを確定するステップと、
デジタル・データ・ユニットの前記第一のセットの処理と関連付けられた動作と、デジタル・データ・ユニットの前記第二のセットの処理と関連付けられた動作とのいずれかに優先度を割り当てるステップと、
前記割り当てられた優先度に基づいて、前記メモリー・プールの前記量の共有可能メモリーを動的に配分するステップと、
を備える、コンピューター読み取り可能記憶媒体。
【請求項２】
請求項１記載のコンピューター読み取り可能記憶媒体であって、前記方法が、更に、
前記第一のセットの一部が前記第二のセットの一部と同時に処理されない場合に、前記メモリー・プールの前記量の共有可能メモリーを、前記第一のセットの処理と関連付けられた動作と、前記第二のセットの処理と関連付けられた動作とのいずれかに動的に配分するステップを備えるコンピューター読み取り可能記憶媒体。
【請求項３】
請求項１記載のコンピューター読み取り可能記憶媒体であって、前記第一及び第二の資源消費指標が、デジタル・データ・ユニットの前記第一及び第二のセットの処理と関連付けられた平均資源消費率をそれぞれ含むコンピューター読み取り可能記憶媒体。
【請求項４】
請求項１記載のコンピューター読み取り可能記憶媒体であって、前記優先度に基づいて前記メモリー・プールの前記量の共有可能メモリーを配分する前記ステップが、
前記第一のセットの処理と関連付けられた動作に前記優先度が割り当てられる場合に、前記第一のセットの処理と関連付けられた動作に前記メモリー・プールの前記量の共有可能メモリーを配分するステップと、
前記第二のセットの処理と関連付けられた動作に前記優先度が割り当てられる場合に、前記第二のセットの処理と関連付けられた動作に前記メモリー・プールの前記量の共有可能メモリーを動的に配分するステップと、
を備えるコンピューター読み取り可能記憶媒体。
【請求項５】
請求項１記載のコンピューター読み取り可能記憶媒体であって、前記第一のシーケンスと前記第二のシーケンスとのうちの一方は両方が、予め決められ、又は動的に決定されるコンピューター読み取り可能記憶媒体。
【請求項６】
プロセッサーで実行された際に、共有可能メモリー・プールを用いてメディア・コンテンツをレンダリングする方法を実行するコンピューター実行可能命令が符号化されたコンピューター読み取り可能記憶媒体であって、前記メディア・コンテンツが連続したメディア・サンプルの複数のセットに配列されており、該方法が、
第一のメディア供給源から受け取ることができるメディア・サンプルの第一のセットを特定するステップと、
第二のメディア供給源から受け取ることができるメディア・サンプルの第二のセットを特定するステップと、
メディア・サンプルの前記第一のセットのレンダリングと関連付けられた第一のデータ速度を計算するステップと、
メディア・サンプルの前記第二のセットのレンダリングと関連付けられた第二のデータ速度を計算するステップと、
前記第一のデータ速度を前記第二のデータ速度と比較するステップと、
前記比較するステップに基づいて、メディア・サンプルの前記第一のセットのレンダリングのための、前記共有可能メモリー・プールからの第一の量のメモリーと、メディア・サンプルの前記第二のセットの同時のレンダリングのための、前記共有可能メモリー・プールからの第二の量のメモリーとを動的に配分するステップと、
メディア・サンプルの前記第一のセットからの第一の次に来るメディア・サンプルを特定するステップと、
メディア・サンプルの前記第二のセットからの第二の次に来るメディア・サンプルを特定するステップであって、前記第二の次に来るメディア・サンプルが、前記第一の次に来るメディア・サンプルと同時にレンダリングされるステップと、
前記第一の次に来るメディア・サンプルのレンダリングのための第一の所望のメモリー量を確定するステップと、
前記第二の次に来るメディア・サンプルのレンダリングのための第二の所望のメモリー量を確定するステップと、
前記共有可能メモリー・プールから利用可能なメモリー量が、前記第一の所望のメモリー量と前記第二の動的なメモリー量との動的な配分に不十分である場合、前記第二の所望のメモリー量が動的に配分される際に前記第一の所望のメモリー量にメモリー配分優先度を割り当て、又は、前記第一の所望のメモリー量が動的に配分される際に前記第二の所望のメモリー量にメモリー配分優先度を割り当てるステップと、
前記配分優先度が前記第一の所望のメモリー量に割り当てられ、前記共有可能メモリー・プールから利用可能な前記メモリー量が前記第一の所望のメモリー量と等しいか、又は前記第一の所望のメモリー量より大きくなった場合に、前記共有可能メモリー・プールから前記第一の所望のメモリー量を自動的に動的に配分するステップと、
前記配分優先度が前記第二の所望のメモリー量に割り当てられ、前記共有可能メモリー・プールから利用可能な前記メモリー量が、前記第二の所望のメモリー量と等しいか、又は前記第二の所望のメモリー量より大きくなった場合に、前記共有可能メモリー・プールから前記第一の所望のメモリー量を自動的に動的に配分するステップと、
を備えるコンピューター読み取り可能記憶媒体。
【請求項７】
請求項６記載のコンピューター読み取り可能記憶媒体であって、前記方法が、更に、
前記共有可能メモリー・プールから利用可能なメモリー量が、前記第一の所望のメモリー量と前記第二の所望のメモリー量との動的な配分に十分である場合に、
前記第一の次に来るメディア・サンプルのレンダリングのための前記第一の所望のメモリー量を動的に配分し、前記第一の所望のメモリー量だけ、前記共有可能メモリー・プールから利用可能なメモリー量を減少させるステップと、
前記第二の次に来るメディア・サンプルのレンダリングのための前記第二の所望のメモリー量を動的に配分し、前記第二の所望のメモリー量だけ、前記共有可能メモリー・プールから利用可能なメモリー量を減少させるステップと、
前記共有可能メモリー・プールから利用可能なメモリー量が、前記第一の所望のメモリー量と前記第二の所望のメモリー量との動的な配分に不十分である場合に、前記第一の次に来るメディア・サンプルのレンダリングのための前記第一の所望のメモリー量を動的に配分し、前記第一の所望のメモリー量だけ、前記共有可能メモリー・プールから利用可能なメモリー量を減少させる、或いは、前記第二の次に来るメディア・サンプルのレンダリングのための前記第二の所望のメモリー量を動的に配分し、前記第二の所望のメモリー量だけ、前記共有可能メモリー・プールから利用可能なメモリー量を減少させるステップと、
を備えるコンピューター読み取り可能媒体。
【請求項８】
請求項７記載のコンピューター読み取り可能記憶媒体であって、前記共有可能メモリー・プールから利用可能なメモリー量が、前記第一の所望のメモリー量と前記第二の動的なメモリー量との動的な配分に不十分である場合に、
前記第一のデータ速度が前記第二のデータ速度より高い場合に、前記第一の所望のメモリー量を動的に配分するステップと、
前記第二のデータ速度が前記第一のデータ速度より高い場合に、前記第二の所望のメモリー量を動的に配分するステップと、
を備えるコンピューター読み取り可能媒体。
【請求項９】
請求項７記載のコンピューター読み取り可能記憶媒体であって、前記方法が、更に、
前記第一の所望のメモリー量が動的に配分された場合に、前記第一の次に来るメディア・サンプルがレンダリングされた後に、前記共有可能メモリー・プールから利用可能な前記メモリー量を前記第一の所望のメモリー量だけ増加させるステップと、
前記第二の所望のメモリー量が動的に配分された場合に、前記第二の次に来るメディア・サンプルがレンダリングされた後に、前記共有可能メモリー・プールから利用可能な前記メモリー量を前記第二の所望のメモリー量だけ増加させるステップと、
を備えるコンピューター読み取り可能媒体。
【請求項１０】
請求項６記載のコンピューター読み取り可能記憶媒体であって、前記第一のメディア供給源が前記第二のメディア供給源と同じであるか又は異なり、
メディア・サンプルが、ビット、フレーム、データ・パケット、写真グループ及びエンハンスド・ビデオ・オブジェクト・ユニットからなるグループから選択されるコンピューター読み取り可能媒体。
【請求項１１】
請求項６記載のコンピューター読み取り可能記憶媒体であって、比較する前記ステップが、前記第一のデータ速度の前記第二のデータ速度に対する比率を計算するステップを備え、
動的に配分する前記ステップが、該比率に従って動的に配分するステップを備える、
コンピューター読み取り可能媒体。
【請求項１２】
請求項６記載のコンピューター読み取り可能記憶媒体であって、前記第一のデータ速度が、メディア・サンプルの前記第一のセットのレンダリング速度、表示システム特性及び前記第一のメディア供給源の特性からなるグループから選択された情報に基づいて計算された平均データ速度を含み、
前記第二のデータ速度が、メディア・サンプルの前記第二のセットのレンダリング速度、表示システム特性及び前記第二のメディア供給源の特性からなるグループから選択された情報に基づいて計算された平均データ速度を含む、
コンピューター読み取り可能媒体。
【請求項１３】
請求項１２記載のコンピューター読み取り可能記憶媒体であって、前記表示システム特性が、メディア・サンプルの前記第一のセットとメディア・サンプルの前記第二のセットとのうちの一方又は両方の再生状態、前記表示システム内の処理負荷、及び、前記表示システムと関連付けられたクロック周波数からなるグループから選択されるコンピューター読み取り可能媒体。
【請求項１４】
請求項１２記載のコンピューター読み取り可能記憶媒体であって、前記第一及び第二のメディア供給源の特性が、符号器−復号器対パラメーターと暗号化パラメーターとからなるグループから選択される、コンピューター読み取り可能媒体。
【請求項１５】
請求項１２記載のコンピューター読み取り可能記憶媒体であって、メディア・サンプルの前記第一のセットのレンダリングと関連付けられた平均データ速度を計算する前記ステップが、
メディア・サンプルの前記第一のセットのレンダリングのために配分されている前記共有可能メモリー・プールのメモリー量を確定するステップと、
レンダリングされている前記第一のセットの第一の数のメディア・サンプルのサイズを確定するステップと、
前記第一の数のメディア・サンプルのユーザーへの再生と関連付けられた第一の時間量を確定するステップと、
前記第一の時間量によって、前記第一の数のメディア・サンプルの前記サイズを除算するステップと、
を備え、
メディア・サンプルの前記第二のセットのレンダリングと関連付けられた平均データ速度を計算する前記ステップが、
メディア・サンプルの前記第二のセットのレンダリングのために配分されている前記共有可能メモリー・プールのメモリー量を確定するステップと、
レンダリングされている前記第二のセットの第二の数のメディア・サンプルのサイズを確定するステップと、
前記第二の数のメディア・サンプルのユーザーへの再生と関連付けられた第二の時間量を確定するステップと、
前記第二の時間量によって、前記第二の数のメディア・サンプルの前記サイズを除算するステップと、
を備えるコンピューター読み取り可能媒体。
【請求項１６】
連続したメディア・サンプルの複数のセットに配列されたメディア・コンテンツのレンダリングを行うシステムであって、
第一のメディア供給源からのメディア・サンプルの第一のセットのレンダリングと、第二のメディア供給源からのメディア・サンプルの第二のセットのレンダリングとを手配するよう動作可能なメディア・コンテンツ管理部と、
前記メディア・コンテンツ管理部と通信するよう構成され、前記第一のセットからの第一のメディア・サンプルが前記第二のセットからの第二のメディア・サンプルと同時にレンダリングされるべき場合を特定するよう動作可能な表示管理部と、
前記メディア・コンテンツ管理部及び前記表示管理部に応答するメモリー配分管理部であって、共有可能メモリー・プールを管理し、
メディア・サンプルの前記第一のセットのレンダリングと関連付けられた第一のデータ速度を確定し、
メディア・サンプルの前記第二のセットのレンダリングと関連付けられた第二のデータ速度を確定し、
前記第一のデータ速度を前記第二のデータ速度と比較し、
前記比較に基づいて、メディア・サンプルの前記第一のセットからの前記第一のメディア・サンプルのレンダリングのための、前記共有可能メモリー・プールからの第一の量のメモリーと、メディア・サンプルの前記第二のセットからの前記第二のメディア・サンプルの同時のレンダリングのための、前記共有可能メモリー・プールからの第二の量のメモリーとを動的に配分し、
利用可能な一定量の共有可能メモリーが前記比較に基づく配分に不十分であることを確定し、
前記第一のセットの処理と関連付けられた動作と、前記第二のセットの処理と関連付けられた動作とのいずれかに優先度を割り当て、
前記割り当てられた優先度に基づいて、前記共有可能メモリー・プールの前記第一又は第二の量のメモリーを動的に配分する、メモリー配分管理部と、
を備えるシステム。
【請求項１７】
請求項１６記載のシステムであって、オペレーティング・システムを含むシステム。
【請求項１８】
請求項１６記載のシステムであって、デジタル・メディア・プレーヤーを含むシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタル・データの効果的な処理は、しばしば、例えばメモリーのような限られたコンピューター資源の効率的な利用に依存する。デジタル・データ処理においてコンピューターにより用いられるメモリーはランダム・アクセス・メモリーであることが多いが、メモリーという用語は、任意の形式のコンピューター読み取り可能記憶媒体を含む。しばしば、デジタル・データ処理のために、決まった量のメモリーが予め配分される。しかしながら、時として、そのような固定されたメモリー配分は非効率的である。非効率性が発生する一つの状況は、複数の組の連続したデジタル・データ・ユニットが同時に処理されなければならない場合である。
【０００２】
一般に、連続したデジタル・データを処理し、特に、デジタル・メディア・コンテンツをレンダリングするためには、メモリーの効率的な利用を高めることが望ましい。デジタル・メディア・コンテンツは、ビデオ、音声、画像、テキスト、及び／又はグラフィックスの連続したサンプルからなる。メディア・コンテンツ・プレーヤーがそのような連続したサンプルをユーザーに提示する際、それらはメディア・コンテンツ・ストリームと呼ばれる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
最近のメディア・コンテンツ・プレーヤーは、二つ以上の独立制御されるメディア・コンテンツ・ストリーム（例えば、監督のコメント、役者の略伝、又は広告のような特別記事と並んで主要な映画）を同時にレンダリングするよう構成されている。そのようなメディア・コンテンツ・プレーヤーは、また、ユーザーが選択可能な可視的又は可聴的なオブジェクト（例えば、様々なメニュー、ゲーム、特殊効果、又は他のオプション）を、メディア・コンテンツの一つまたはそれ以上のストリームと同時にレンダリングすることが可能である。メディア・コンテンツのレンダリング、特に独立制御されたメディア・コンテンツ・ストリームの同時再生は、限られたプレーヤー資源、特にメモリーの相当量を消費しかねない。
【課題を解決するための手段】
【０００４】
要約
本明細書で説明されるメモリー管理技術は、連続したデジタル・データ・ユニットの複数のセットを同時に管理するための、一定量の共有可能メモリーを有するメモリー・プール（ｍｅｍｏｒｙ  ｐｏｏｌ）の確立と、共有可能メモリーの動的な配分とを含む。例としてのシナリオにおいて、連続したデジタル・データ・ユニットのセットは、例えばビット、フレーム、写真グループ、ビデオ・オブジェクト・ユニット、及びそれらに類するもののような、メディア・サンプルの時間順のセットである。メディア・コンテンツの文脈において本明細書に記載される技術は、一般に、２つ以上のセットからのメディア・サンプルが、メディア・コンテンツの独立制御されるストリームとして同時にユーザーに提示可能である場合に適用される。しかしながら、理解されるように、他のシナリオも可能であって、本明細書に記載された技術は、任意の同時に処理される連続したデジタル・データ・ユニットに適用可能である。
【０００５】
特定のメモリー管理技術は、連続したデジタル・データ・ユニットの第一のセットにおける幾つかのデジタル・データ・ユニットの処理と関連付けられた一つの資源消費指標を確定するステップと、連続したデジタル・データ・ユニットの第二のセットにおける幾つかのデジタル・データ・ユニットの処理と関連付けられたもう一つの資源消費指標を確定するステップとを含む。資源消費は、デジタル・データ、該デジタル・データを処理するために利用されるコンピューター・システム、およびユーザー入力と関連付けられた要素を含み且つそれらに限定されない様々な要素に基づいて変化し得る。確定されると、資源消費指標が比較され、該比較に基づいて、共有可能メモリーが動的に配分される。
【０００６】
利用可能な共有可能メモリーは、時として、所望のメモリー配分の即座の実現に不十分である。その場合、利用可能な共有可能メモリーは、処理の問題を回避するために、優先度手法に従って配分され得る。一つのシナリオにおいて、最大の資源消費を有するデジタル・データ・ユニットのセットの処理と関連付けられた動作への共有可能メモリーの割り当てに、より高い優先度が与えられる。より低い資源消費を有するデジタル・データ・ユニットのセットは、資源を繰り返し再要求することが求められ得る。代わりに、そのようなセットに、待機中のメモリー要求が割り当てられ、共有可能メモリー資源が利用可能になった際に優先度を与えられてもよい。このようにして、連続したデジタル・データ・ユニットの複数のセットが同時に処理される場合に、効率的で動的な共有可能メモリーの配分を保証することが可能となる。
【０００７】
メディア・コンテンツ・ストリームの場合、資源消費指標は、個々のメディア・コンテンツ・ストリームのレンダリングと関連付けられたデータ速度（例えば、平均データ速度）である。特定のデータ速度を有するメディア・コンテンツ・ストリームの処理（及び、そのようなストリーム内の特定メディア・サンプルの処理）に必要とされるメモリー資源は、メディア・サンプルそのもの（例えば、メディア・サンプル供給源／場所、メディア・サンプル・サイズ、符号化及び／又は復号化パラメーター、及び暗号化パラメーター等）、メディア・コンテンツ・プレーヤー（例えば、プレーヤー・アーキテクチャー又は動的な処理負荷等）、又はユーザー入力（例えば、ユーザーが選択したメディア・コンテンツ形式、又は例えば早送り、遅送り、早巻き戻し、又は遅巻き戻し等のユーザーが選択した再生速度）と関連付けられた要素を含み且つそれらに限定されない様々な要素に基づいて変化し得る。メディア・コンテンツの各ストリームのデータ速度の比率が計算され、該比較に基づいて共有可能メモリーが動的に配分される。利用可能な共有可能メモリーが、所望のメモリー配分の即座の実現に不十分である場合、一つの可能な優先度手法は、共有可能メモリーが、まず、現状、自身に配分された共有可能メモリーの取り分よりも少ないメモリーを有するメディア・コンテンツ・ストリームの処理と関連付けられた動作に割り当てられることを保証する。
【０００８】
本要約は、選択された概念を、簡略化された形態で紹介するために提供される。それらの概念は、詳細な説明の章において更に説明される。本要約に説明された以外の構成要素又はステップが利用可能であり、構成要素又はステップは必ずしも必要ではない。本要約は、特許請求の範囲に記載された発明の主要な特徴又は不可欠な特徴を特定する意図はなく、特許請求の範囲に記載された発明の範囲を定義するための助けとして利用されることも意図していない。更に、特許請求の範囲に記載された発明は、本明細書のいずれかの部分に記載された任意の又は全ての欠点を解決する実現態様に限定されるものではない。
【図面の簡単な説明】
【０００９】
【図１】図１は、例としてのメディア・コンテンツ・プレーヤーの簡略化された機能ブロック図である。
【図２】図２は、図１のメディア・コンテンツ管理部ブロックの態様をより詳細に示す、簡略化された機能ブロック図である。
【図３】図３は、図１に示されたメディア・コンテンツ・プレーヤー及び／又は図４のフロー図に示された方法の特定の態様と組み合わせて利用可能な、メディア・サンプルのセットと関連付けられたメディア時刻表を示す概略図である。
【図４】図４は、例えば図２に示された共有可能メモリーのような共有メモリーを用いてデジタル・データの多数のセットを同時に管理する方法のフロー図である。
【図５】図５は、コンピューター・ユニットの例としての構成の簡略化された機能ブロック図である。
【図６】図６は、図１に示されたメディア・コンテンツ・プレーヤー、図４に示された方法、及び／又は図５に示されたコンピューター・ユニットの全部又は一部が実現又は利用され得る動作環境の例としての構成のブロック図である。
【図７】図７は、図６に示された動作環境の態様が実現又は利用され得るクライアント・サーバー・アーキテクチャーの簡略化された機能ブロック図である。
【発明を実施するための形態】
【００１０】
本明細書に記載されるメモリー管理技術は、メモリー・プールから共有可能メモリーを、連続したデジタル・データ・ユニットの複数セットの同時処理に対して動的に配分する。限定ではなく例示のために、複数のメディア・コンテンツ・ストリームの同時レンダリングを具体的に説明するが、理解されるように、本明細書に記載された技術は、任意の同時処理される連続したデジタル・データ・ユニットに適用可能である。
【００１１】
或るメディア・コンテンツ・プレーヤーは、２つの独立制御されるメディア・コンテンツ・ストリームを同時にレンダリングすることができる。例えば、高品位ＤＶＤプレーヤーは、主メディア・コンテンツ・ストリーム（例えば、映画）と副次メディア・コンテンツ・ストリーム（例えば、監督のコメント、役者の略伝、又は任意の広告のような特別記事）とを同時にレンダリングするよう構成される。予期せぬ（ｓｅｒｅｎｄｉｐｔｏｕｓ）ユーザー入力が、個々のメディア・コンテンツ・ストリームを提示するか否か、及び／又はいつ提示するかを決定する。
【００１２】
メディア・コンテンツの表示においてユーザーが知覚可能な不具合を回避するため、メディア・コンテンツのレンダリングは、一般に、メディア・サンプルの予定された再生時刻の前に、ユーザーに提示されるべき一つ又はそれ以上の次に来るメディア・サンプルの表示を特定し準備することを含む。特定のメディア・サンプルの表示を準備するために必要なメモリー資源は、サンプルごとに必ずしも一定ではない。要求されるメモリー資源に影響する幾つかの要素は、（例えばメディア・サンプルのサイズ、メディア・サンプルの供給源／場所、符号化又は復号化パラメーター、及び暗号化パラメーターなどの要素を含み且つそれらに限定されない）メディア・サンプルそのものと関連するが、メディア・コンテンツ・プレーヤー（例えば、プレーヤー・アーキテクチャー又は動的な処理負荷等）又はユーザー入力（例えば、ユーザーが選択したメディア・コンテンツ形式又はユーザーが選択した再生速度）にも関連し得る。
【００１３】
メディア・コンテンツのレンダリングに適用される際、本明細書に記載される特定のメモリー管理技術は、特定の次に来るメディア・サンプルの表示を準備するための、可変量の共有可能メモリーの動的な配分を含む。特定のメディア・サンプルがユーザーに対して提示されると、配分される量の共有可能メモリーが解放され、再配分のために利用可能となる。
【００１４】
単一のメディア・コンテンツ・ストリームがユーザーに提示されている場合、全ての利用可能な共有可能メモリーが、一般に、当該単一のメディア・コンテンツ・ストリームのレンダリングに配分され得る。しかし、ユーザーが他のメディア・コンテンツ・ストリームを独立に開始及び停止すると、利用可能な共有可能メモリーは二つ以上のストリームに配分される。一つのシナリオにおいて、各ストリームからの特定の次に来るメディア・サンプルの表示を準備するための共有可能メモリーの動的な配分は、個々のメディア・コンテンツ・ストリームの相対平均データ速度に基づく。例としての実現態様において、個々のメディア・コンテンツ・ストリームのデータ速度（例えば、ビット率）の比率が計算され、データ速度の比率に基づいて共有可能メモリーが分割される。ついで、個々のストリームに配分された共有可能メモリーは、該ストリームからの特定の次に来るメディア・サンプルの準備のために、必要に応じて予約される。
【００１５】
利用可能な共有可能メモリーが、所望のメモリー配分の迅速な実現に不十分である場合、及び／又は、個々のストリームに配分された共有可能メモリーが、該ストリームからの特定の次に来るメディア・サンプルを準備するために不十分である場合、一つの可能な優先度手法は、共有可能メモリーが、まず、共有可能メモリーのうちの配分された分より少ないメモリーを有するメディア処理パイプラインによって処理されているメディア・コンテンツ・ストリームの処理と関連付けられた動作に割り当てられることを保証し、メモリー要求は他のメディア・コンテンツ・ストリームにオプションとして割り当てられる。共有可能メモリーが利用可能になると、該メモリーは、待機中のメモリー要求を有するデータ・ストリームに配分され得る。
【００１６】
同様の番号が類似の構成要素を示す図面を参照すると、図１は、（一般的には時間順の）ビデオ、音声、画像、テキスト及び／又はグラフィックスのサンプルからなるメディア・コンテンツをレンダリングする例としてのメディア・コンテンツ・プレーヤー１００の簡略化された機能ブロック図である。メディア・コンテンツ・プレーヤー１００は、光メディア・プレーヤー、コンピューター、オーディオ・プレーヤー、セットトップ・ボックス、通信装置、個人情報端末、録画装置又はビデオ録画器を含み且つそれらに限定されない、メディア・コンテンツをレンダリングする任意のシステムであってよいが、図示されるように、メディア・コンテンツ・プレーヤー１００は、対話型マルチメディア表示システムである（以下において、「表示（ｐｒｅｓｅｎｔａｔｉｏｎ）システム１００」と呼ぶ）。
【００１７】
表示システム１００は、メディア・コンテンツ管理部１０２、対話型コンテンツ（「ＩＣ」）管理部１０４、表示（ｐｒｅｓｅｎｔａｔｉｏｎ）管理部１０６、タイミング信号管理ブロック１０８及びミキサー／レンダラー（ｒｅｎｄｅｒｅｒ）１１０を含む。一般に、表示システム１００の特定の機能がどのように実現されるかは、設計上の選択によって決定される。そのような機能は、ハードウェア、ソフトウェア又はファームウェア、或いはそれらの組み合わせを用いて実現され得る。
【００１８】
動作において、表示システム１００は、対話型マルチメディア表示コンテンツ（「表示コンテンツ」）１２０を扱う。表示コンテンツ１２０は、メディア・コンテンツ要素（「メディア要素」）１２２及び対話型コンテンツ要素（「ＩＣ要素」）１２４を含む。メディア要素１２２及びＩＣ要素１２４は、一般に、メディア・コンテンツ管理部１０２及びＩＣ管理部１０４によって、それぞれ別個のデータ・ストリームとして扱われるが、必ずしもそうでなくてもよい。
【００１９】
表示システム１００は、また、表示コンテンツ１２０のユーザー（図示せず）への表示を再生表示１２７として円滑化する。再生表示１２７は、ミキサー／レンダラー１１０によって生成され、ディスプレイ又はスピーカー（図示せず）のような装置を介してユーザーが受信可能な、表示コンテンツ１２０と関連付けられた可視的及び／又は可聴的な情報を表す。説明のために、表示コンテンツ１２０及び再生表示１２７は、任意の形式の高品位ＤＶＤ映画コンテンツの態様をとると想定される。しかしながら、理解されるように、表示コンテンツ１２０及び再生表示１２７は、メディア・コンテンツの現在知られている又は後に開発される任意の形式の表示を行うよう構成され得る。
【００２０】
メディア要素１２２は、メディア・コンテンツ・ストリーム（メディア・コンテンツ・ストリーム２０８及び２２８が、図２と組み合わせて以下に示され、説明される）としてユーザーに表示可能なサンプル（例えば、ビデオ、音声、画像、テキスト、及び／又はグラフィックスのサンプル）の一つ又はそれ以上の（一般的に時間順の）シーケンスを表す。２つ以上の独立制御されるメディア・コンテンツ・ストリーム（例えば、主要な映画に加えて、監督のコメント、役者の略伝又は広告のような特別記事）が同時に表示され得る。メディア要素１２２は、しばしば、映画の文脈で説明されるが、実際には、ビデオ、音声、データ又はそれらの任意の組み合わせであってよい。
【００２１】
映画は、一般に、一つ又は複数のバージョン（例えば、成人聴衆のためのバージョンと、より若い聴衆のためのバージョン）、各タイトルと関連付けられた１つ又は複数の章（図示せず）を有する一つ又はそれ以上のタイトル１３１（タイトルについては、表示管理部１０６と関連して以下に更に説明される）、一つ又は複数の音声トラック（例えば、映画は一つ又はそれ以上の言語で、字幕有り又は字幕無しで再生され得る）、並びに、例えば監督のコメント、追加場面、役者略伝、宣伝、予告編及びそれに類するものである特別記事を有する。理解されるように、タイトル及び章の区別は純粋に論理的なものである。例えば、単一の知覚されるメディアの部分は、単一のタイトル／章の一部であっても、又は、複数のタイトル／章からなるものであってもよい。適用可能な論理的区別の決定は、コンテンツの製作元に委ねられる。
【００２２】
メディア要素１２２の態様を形成するメディア・サンプルのセット（例えば、ビデオ、音声又はデータ・サンプルのセット）は、通常、クリップ１２３と呼ばれる（クリップ１２３は、メディア要素１２２及び再生リスト１２８内に示され、図２にも図示されており、以下に更に説明される）。しかしながら、理解されるとおり、メディア・サンプルのセットは、任意の所望の方法でグループ化され、及び／又は参照され得る。メディア・サンプルは、例えばビット、フレーム、データ・パケット、写真グループ、エンハンスド・ビデオ・オブジェクト・ユニット等の、任意の所望の単位で表示され得る。特定のメディア・サンプルのデジタル・コンテンツ（及び、特定のメディア・サンプルのサイズ）は、例えば、サンプルを構成するビデオ、音声又はデータ・コンテンツの特性、或いは、サンプルが由来するメディア供給源と関連付けられた一つ又は複数のパラメーター（例えば、メディア供給源の識別情報及び／又は場所、符号器／復号器パラメーター又は設定、或いは、暗号化パラメーター又は設定）のような幾つかのファクターに基づき得る。メディア供給源は、図２に関連して以下に更に説明される。
【００２３】
メディア・データ１３２は、メディア・コンテンツ管理部１０２によりレンダリングのために準備され且つミキサー／レンダラー１１０に送信されたメディア要素１２２と関連付けられたデータである。メディア・データ１３２は、一般に、アクティブなクリップ１２３ごとに、該クリップの一部のレンダリングを含む。
【００２４】
再び表示コンテンツ１２０を参照すると、ＩＣ要素１２４は、ユーザーが選択できる可視的又は可聴的なオブジェクトであってオプションとしてメディア要素１２２と同時に表示可能である対話型オブジェクト１２５と、可視的又は可聴的なオブジェクトを表示するための任意の命令（アプリケーション１５５として示される）とを含む。対話型オブジェクトの例としては、なかんずく、ビデオ・サンプル又はクリップ、音声サンプル又はクリップ、画像、グラフィックス、テキスト、及びそれらの組み合わせが含まれる。
【００２５】
アプリケーション１５５は、表示システム１００がユーザーに対話型オブジェクト１２５を表示するメカニズムを提供する。アプリケーション１５５は、任意の信号処理方法、又はデータに対する予め決められた処理を電子的に制御する格納された命令を表す。
【００２６】
ＩＣ管理部１０４は、アプリケーション１５５と関連するコマンドを受信し、解釈し、実行を手配する、一つ又はそれ以上の命令処理エンジン１８１を含む。アプリケーション１５５の実行が進み、ユーザー入力１５０が受信されると、再生表示１２７内の動作がトリガーされ得る。「ＩＣＭからの入力」１９０とのラベル付けられた、アプリケーション１５５の特定の命令の実行は、表示システム１００内の他の機能又は要素との通信又は相互作用性を円滑化し得る。図示されるように、入力１９０は、メディア・コンテンツ管理部１０２（図２に関連して以下に説明される）によって受信されるが、表示システム１００内の他の要素又は機能もまた、入力１９０に応答し得る。
【００２７】
対話型コンテンツ・データ（「ＩＣデータ」）１３４は、ＩＣ管理部１０４によりレンダリングのために準備され且つミキサー／レンダラー１１０に送信されたＩＣ要素１２４と関連付けられたデータである。
【００２８】
タイミング信号管理ブロック１０８は、メディア・コンテンツ管理部１０２及びＩＣ管理部１０４それぞれによるメディア・データ１３２及びＩＣデータ１３４の準備及び生成のタイミングを制御するために用いられる様々なタイミング信号１５８を生成する。例えば、タイミング信号管理ブロック１０８は、一般に、メディア・データ１３２及びＩＣデータ１３４がユーザーに提示される速度（図３と組み合わせて表示及び説明される「メディア・データ表示速度３０７」）の決定を担当する。もう一つの例において、タイミング信号１５８は、メディア・データ１３２及びＩＣデータ１３４の近似的な同期（例えば、フレームごとの、又は他の時間ベースのタイミング／同期）を達成するために利用される。
【００２９】
ミキサー／レンダラーは、ビデオ面（図示せず）にメディア・データ１３２をレンダリングし、グラフィックス面（図示せず）にＩＣデータ１３４をレンダリングする。グラフィックス面は、一般に、ユーザーへの再生表示１２７を生成するためにビデオ面に重ね合わされるが、必ずしもそうでなくてもよい。
【００３０】
メディア・コンテンツ管理部１０２、ＩＣ管理部１０４、ミキサー／レンダラー１１０、及びタイミング信号管理ブロック１０８と通信するよう構成される表示管理部１０６は、表示コンテンツ１２０の処理及び再生表示１２７のユーザーへの表示を容易にする。表示管理部１０６は再生リスト１２８へのアクセスを有する。再生リスト１２８は、なかんずく、ユーザーに表示することができるクリップ１２３及びアプリケーション１５５（対話型オブジェクト１２５を含む）の時間順のシーケンスを含む。クリップ１２３及びアプリケーション１５５／対話型オブジェクト１２５は、一つ又はそれ以上のタイトル１３１を形成するよう配列され得る。上記の通り、２つ以上の独立制御されるタイトル／メディア・コンテンツ・ストリームがユーザーに対して同時に再生されることが可能である。
【００３１】
表示管理部１０６は、再生リスト１２８を用いて、特定のタイトル１３１に対する表示時刻表１３０を確定する。概念上、表示時刻表１３０は、特定のクリップ１２３及びアプリケーション１５５がユーザーに表示されるとき、タイトル１３１内に時間を示す。或る状況においては、再生リスト１２８及び／又は表示時刻表１３０を用いて、一つ又は複数のメディア・コンテンツ時刻表（「メディア時刻表」）１４２を確認することも有用である（例としてのメディア時刻表１４２は、図３と関連して以下に示され、更に説明される。）
動作において、表示管理部１０６は、表示時刻表１３０及び／又はメディア時刻表１４２に関する情報を含み且つそれらに限定されない情報を、メディア・コンテンツ管理部１０２及びＩＣ管理部１０４に提供する。表示管理部１０６からの入力に基づいて、メディア・コンテンツ管理部１０２はレンダリングのためにメディア・データ１３２を準備し、ＩＣ管理部１０４はレンダリングのためにＩＣデータ１３４を準備する。
【００３２】
図２は、メディア・コンテンツ管理部１０２の態様をより詳細に示す、簡略化された機能ブロック図である。メディア・コンテンツ管理部１０２は一つ又は複数のメディア処理パイプラインを含む（任意の数のメディア処理パイプラインを使用可能であるが、メディア処理パイプライン１  ２０２及びメディア処理パイプライン２  ２２０という２つのメディア処理パイプラインが図示されている）。一般に、メディア処理パイプライン１  ２０２及びメディア処理パイプライン２  ２２０は、それぞれ、独立制御されるメディア・コンテンツ・ストリーム２０８及び２２８のユーザーへの表示を準備するために利用される。通常、一つのメディア処理パイプラインが、例えば映画等の主要なメディア・コンテンツ・ストリームの準備を担当し、他のメディア処理パイプラインが、例えば監督のコメント、役者略伝、広告等である、一つ又は複数の補助的なメディア・コンテンツ・ストリームの準備を担当する。理解されるように、メディア・コンテンツ管理部１０２は、メディア要素１２２及び／又はＩＣ要素１２４からなる様々なクリップ１２３の識別情報及び（予め決められた又は予期せぬユーザー入力に基づく）スケジュールに基づく動的な処理負荷を有してもよい。
【００３３】
２つ又はそれ以上のクリップからの次に来るメディア・サンプルを同時に準備することは、容易に予測可能ではない方法で、（例えば、情報のバッファリング等に用いられる）例えばメモリー等のコンピューター資源を大量に消費する。そのうえ、特定のメディア・サンプルの表示を準備するために必要とされるメモリー資源は、サンプルごと又はクレームごとに必ずしも一定ではない。要求されるメモリー資源に影響する幾つかのファクターは、メディア・サンプルそのものと関連する（例えばメディア・サンプルのサイズ、メディア・サンプルの供給源／場所、符号化又は復号化パラメーター、及び暗号化パラメーターなどのファクターを含むが、それらに限定されない）。要求されるメモリー資源に影響する他のファクターは、メディア・コンテンツ・プレーヤーと関連し（例えば、プレーヤー・アーキテクチャー又は動的な処理負荷等）、要求されるメモリー資源に影響する更に他のファクターはユーザー入力に関連する（例えば、ユーザーが選択したメディア・コンテンツ、コンテンツ形式又は再生速度）。
【００３４】
メディア・コンテンツの表示におけるユーザー知覚可能な不具合を回避するため、メディア・コンテンツのレンダリングは、一般に、メディア・サンプルの予定された再生時刻の前に、ユーザーに提示されるべき一つ又は複数の次に来るメディア・サンプルの表示を特定し準備することを含む。ユーザーに表示するために特定の次に来るメディア・サンプルを準備することは、次に再生可能なメディア・サンプルを特定するステップと、特定のメディア供給源（以下に更に説明する）からの次に再生可能なメディア・サンプルの画像を読み出すステップとを含み且つそれらに限定されない複数のステップを含む。メディア・コンテンツは、一般に、符号化、暗号化及び／又は圧縮されているため、次に再生可能なメディア・サンプルは、メディア供給源から読み取られる情報からレンダリング可能なコンテンツを取得するために、多重化解除、復号化及び／又は暗号解読され得る。
【００３５】
次に再生可能なメディア・サンプルを特定するステップが、図３に示される例としてのメディア時刻表１４２を参照して説明される。様々なメディア・サンプル表示時刻３０２が、メディア時刻表１４２上に示される。メディア・サンプル表示時刻３０２は、一つ又は複数のメディア・サンプルがメディア・データ１３２として表示可能である、特定のクリップの再生期間内の時刻を表す。図示された通り、メディア・サンプル表示時刻３０２は、クリップごとに異なり得る予め決められたメディア・データ表示速度３０７に基づく速度で発生する。メディア・データ表示速度は特定のクリップの符号化速度に基づいて変化し得るが、メディア・データ表示速度３０７は、特定のクリップ１２３が符号化された速度と同じである必要はないことに留意されたい。或るユーザー入力１５０は、また、メディア供給源からのメディア・サンプルの取り出し速度に影響し、それにより、メディア・サンプル表示時刻３０２の発生速度に影響する。例えば、再生表示１２７は、通常の速度で順方向に進み、通常の速度より早い又は遅い速度で順方向及び逆方向に進み得る。理解されるように、通常の速度というのは相対的な用語であり、通常の速度は表示ごと及びクリップごとに異なり得る。早巻き戻し及び早送り操作の期間には、或るメディア・コンテンツの表示はしばしばスキップされる。他のユーザー入力は、例えば、ユーザーが映画の一部分から他の部分にジャンプした場合などに、特定のコンテンツがスキップされる再生をもたらす。
【００３６】
（再生時間期間のうちの）現在までの経過再生時間３０９が、メディア時刻表１４２上に示される。次に表示可能なメディア・サンプル表示時刻３１４もまた示される。次に表示可能なメディア・サンプル表示時刻３１４は、ユーザーに表示可能である（現在までの経過再生時間３０９と関連付けられた現在のメディア・サンプルの後の）次のメディア・サンプルと関連付けられたメディア・サンプル表示時刻３０２を表す。次に表示可能なメディア・サンプルは、再生リスト１２８に基づく次に続くメディア・サンプルであってもよいし、現在までの経過再生時間３０９と関連付けられたメディア・サンプルから一つ又は複数のメディア・サンプル表示時刻３０２だけ離れたメディア・サンプルであってもよい。
【００３７】
次に表示可能なメディア・サンプル／メディア・サンプル表示時刻３１４を確定する様々な方法があるが、それらは本明細書において詳細に説明しない。一般に、予測経過再生時間３２０と、それに対応する次に表示可能なメディア・サンプルとが確定される。予測経過再生時間３２０は、再生速度及びメディア・フレーム速度３０７に基づいて、（現在までの経過再生時間３０９に加えて）経過する再生時間期間の量を表す。予測経過再生時間は、次に表示可能なメディア・サンプル表示時間３１４である特定のメディア・サンプル表示時間３０２を特定するために利用され、次に表示可能なメディア・サンプルが特定され得る。
【００３８】
図２を再び参照して、２つのクリップのメディア・サンプルが同時にユーザーに表示可能である場合、メディア処理パイプライン１  ２０２内において、特定のクリップ１２３と関連付けられた次に来るメディア・サンプルが特定され、メディア供給源１  ２０４から取り出されて、復号器１  ２０６において多重化解除、復号化及び／又は暗号解読される。同様に、メディア処理パイプライアン２  ２２０内において、他の特定のクリップ１２３と関連付けられた次に来るメディア・サンプルが特定され、メディア供給源２  ２２４から取り出されて、復号器２  ２２６において多重化解除、復号化及び／又は暗号解読される。メディア供給源は、メディア・サンプルがそこから取り出される又は取得される、任意の装置、場所又はデータであり得る。復号器は、メディア供給源から受信された情報からレンダリング可能なメディア・サンプルを取り出すために用いられる任意の装置、技術又はステップである。復号器とメディア供給源との間の一対一の関係が示されているが、理解されるように、一つの復号器が複数のメディア供給源のために働いてもよく、またその逆も可能である。
【００３９】
表示システム１００のメモリー資源の利用を効果的に管理するために、メディア・コンテンツ管理部１０２は、メディア処理パイプライン２０２及び２２０に応答するメモリー配分管理部（「ＭＡＭ」）２０５を備える。ＭＡＭ２０５は、特定の次に来るメディア・サンプルの表示を準備するための、可変量の共有可能メモリーの動的配分を担当する。一つの可能な実現態様において、ＭＡＭ２０５はコンピューター実行可能命令のセットであり、コンピューター読み取り可能記憶媒体上に符号化されて実行時に、図４と組み合わせて以下に更に示され説明される方法の態様を実行する。ＭＡＭ２０５は、メディア処理パイプライン２０２及び２２０に対する命令の製作者によってアクセスされる一つ又は複数のＡＰＩ機能（例えば、以下に更に説明される、メモリー・プール２４０のメモリー位置を戻すこと）の実現態様であることが望ましい。他の実現態様において、ＭＡＭ２０５は、表示システム１００の他の物理的又は論理的コンポーネントに配置されてもよい。
【００４０】
メモリー・プール２４０は、メディア処理パイプライン２０２及び２２０による利用のために、或るアルゴリズム（例としてのアルゴリズムが、以下において、図４と組み合わせて示され説明される）に従ってＭＡＭ２０５により個別に配分可能なユニットを有するとみなし得る特定のコンピューター読み取り可能記憶媒体の（任意のサイズ又は構成の）量又は領域の抽象的表現である。メモリー・プール２４０の一部は非共有メモリー２４１と呼ばれ、メディア処理パイプライン１  ２０２とメディア処理パイプライン２とのうちのいずれか一方による使用のために制限されるメモリー・ユニットを表す。メモリー・プール２４０のもう一つの部分は共有可能メモリー２４４と呼ばれ、メディア処理パイプライン１  ２０２とメディア処理パイプライン２  ２２０とのうちの一方又は両方（又は、適用可能であれば他のメディア処理パイプライン）による使用のために配分され得るメモリー・ユニットを表す。例において、メモリー・プール２４０は４０ＭＢのＲＡＭであり、共有可能メモリー２４４は３０ＭＢであり、非共有メモリー２４１は１０ＭＢであり、非共有メモリーの５ＭＢはメディア処理パイプライン１  ２０２のみによる使用に制限され、５ＭＢの非共有メモリーはメディア処理パイプライアン２  ２２０のみによる使用に制限される。
【００４１】
動的共有メモリー配分１  ２４６は、メディア処理パイプライン１  ２０２による使用のために（図４に関連して以下に更に説明される、例えばデータ速度のような資源消費指標にしたがって）配分された共有可能メモリー２４４の全体量を表し、動的共有メモリー配分２  ２４８は、メディア処理パイプライン２  ２２０による使用のために配分された共有可能メモリー２４４の全体量を表す。一般に、可変量の共有メモリー配分１  ２４６は、次に来るメディア・サンプルの表示を準備するために、メディア処理パイプライン１  ２０２によって要求及び予約され、メディア・サンプルがユーザーに対して再生されると、要求／予約された量の共有メモリー配分１  ２４６が解放される。同様に、可変量の共有メモリー配分１  ２４８は、次に来るメディア・サンプルの表示を準備するために、メディア処理パイプライン２  ２２０によって要求及び予約され、メディア・サンプルがユーザーに対して再生されると、要求／予約された量の共有メモリー配分２  ２４８が解放される。
【００４２】
図１〜図３を引き続き参照して、図４は、共有メモリーを用いて、例えば、共有可能メモリー２４４を用いて管理される連続したメディア・サンプルの複数のセットに構成されたメディア・コンテンツ（例えば、クリップ１２３）のような複数のデジタル・データのセットを同時に管理する方法のフロー図である。
【００４３】
図４に示されるプロセッサーは、図５と組み合わせて以下に説明されるプロセッサー５０２のような、一つ又は複数の一般的な汎用又は専用プロセッサーにおいて実現され得る。特に断らない場合、本明細書に記載された方法は、特定の順序又はシーケンスに限定されない。更に、記載された方法又はその要素の幾つかは、同時に発生し又は実行されることができる。
【００４４】
この方法はブロック４００で始まり、デジタル・ユニットの第一のセットを処理するための一定量の共有メモリーが予約されるブロック４０２に続く。表示システム１００の文脈において、デジタル・ユニットの第一のセットは、映画の特定のクリップ１２３と考えられ、（メディア・コンテンツ・ストリーム１  ２０８として）メディア処理パイプライン２０２を介してレンダリングされる。メディア・コンテンツ・ストリーム１  ２０８が、ユーザーに提示されている唯一のメディア・コンテンツ・ストリームである場合、一般に、ＭＡＭ２０２により、全ての利用可能な共有可能メモリー２４４がメディア・コンテンツ・ストリーム１  ２０８のレンダリングに配分され得る。
【００４５】
次に、菱形４０４において、デジタル・ユニットの第二のセットが、デジタル・ユニットの第一のセットと同時に処理されるべきか否かが決定される。表示システム１００の文脈において、デジタル・ユニットの第二のセットは、例えば、画像内画像型の（ｐｉｃｔｕｒｅ−ｉｎ−ｐｉｃｔｕｒｅ）監督コメント、宣伝、又は高品位でレンダリングされる映画の一部などのような、ユーザーにより選択された（メディア・コンテンツ・ストリーム２  ２２８としてレンダリングされる）第二のメディア・コンテンツ・ストリームと考えられ得る。メディア・コンテンツ・ストリーム１  ２０８及びメディア・コンテンツ・ストリーム２  ２２８が同時にレンダリングされる場合、共有可能メモリー２４４は、一般に、ＭＡＭ２０５によって、メディア処理パイプライン１  ２０２による（メディア・コンテンツ・ストリーム１  ２０８からの次に来るメディア・サンプルの特定及び復号化のための）使用と、メディア処理パイプライアン２  ２２０による（メディア・コンテンツ・ストリーム２  ２２８からの次に来るメディア・サンプルの特定及び復号化のための）使用との間で分割される。共有可能メモリー２２４が特に説明されるが、メディア処理パイプラインは、一般に、特定のクリップ／メディア・コンテンツ・ストリームからの（第一の連続したメディア・サンプルであっても、なくてもよい）メディア・サンプルのレンダリングを開始するために用いられる非共有メモリー２４１の量に対するアクセスをも有しており、共有可能メモリー２４４へのアクセスは、非共有メモリーへのアクセスに加えて行われることに留意されたい。
【００４６】
ブロック４０６に示すように、２セットのデジタル・ユニットの同時処理と関連付けられた動作の間で共有メモリーの使用を分割する一つの方法は、デジタル・ユニットのセットの処理と関連付けられた相対的な資源消費率に基づいて共有メモリーを配分することである。表示システム１００の文脈において、例としての資源消費率は特定のメディア・コンテンツ・ストリームの平均データ速度であり、例としての配分は平均データ速度の比率に基づく配分である。
【００４７】
メディア・コンテンツ・ストリーム１  ２０８及びメディア・コンテンツ・ストリーム２  ２２８のような特定のメディア・コンテンツ・ストリームの平均データ速度は、そのときにレンダリングされている特定のクリップからのサンプルの総数（例えば、復号化されている又は既に復号化されてバッファされたが、まだユーザーに対して再生されていないサンプルの大きさ）を、そのときにレンダリングされているサンプルの総数の（例えば、メディア時刻表１４２から決定される）全再生時間で割ることによって計算され得る。次に来るメディア・サンプルが（例えば、メディア時刻表１４２を用いて）特定されると、共有可能メモリーは、特定された次に来るメディア・サンプルのレンダリングのために首尾よく予約され、また、レンダリングされたメディア・サンプルがユーザーに対して再生されてメモリーが首尾よく解放されると、平均データ速度が更新される。例えば、上記の通り、共有可能メモリー２４４が３０ＭＢであり、メディア・コンテンツ・ストリーム１  ２０８が４０ＭＢ／秒の平均データ速度を有し、メディア・コンテンツ・ストリーム２  ２２８が２０ＭＢ／秒の平均データ速度を有すると仮定すると、メディア・コンテンツ・ストリーム１  ２０８とメディア・コンテンツ・ストリーム２  ２２８との間のデータ速度の比率は２：１であるから、該比率に基づく共有可能メモリー２４４の配分は、メディア・ストリーム１  ２０８のレンダリングのためにメディア処理パイプライン１  ２０２に対しては２０ＭＢであり、メディア・コンテンツ・ストリーム１  ２２８のレンダリングのためにメディア処理パイプライアン２  ２２０に対しては１０ＭＢである。
【００４８】
時として、菱形４０７に示すように、（例えば、メディア処理パイプラインの一方又は両方が、以下に説明するように、ブロック４１２において既に予約されており、まだ解放されていない場合には、）計算された比率に基づく所望量の共有可能メモリー２４４を即座に配分するのは不可能であり得る。所望の配分が現状では不可能である場合、一つの解決方法は、ブロック４１８に示すように、優先度手法に基づいて、利用可能な共有可能メモリーを割り当てることである。菱形４２０に示すように、メモリー要求優先度が割り当てられるならば、ブロック４１６において共有可能メモリーの個別の量が解放され（菱形４２４参照）、共有可能メモリーの解放された量が、それらを解放したメディア処理パイプラインに対する（平均データ速度の比率に基づく）所望の配分を上回っている場合、メモリーは待機中のメモリー要求優先度に従って即座に再配分される。
【００４９】
菱形４０７において、ブロック４０６で計算された比率に基づく所望量の共有可能メモリー２４４をすぐに配分することが可能であると仮定すると、ブロック４０８において、デジタル・ユニットのセットの一部を処理するために特定の量の共有メモリーの配分を要求及び／又は予約するステップが実行される。表示システム１００の文脈において、メディア処理パイプライン１  ２０２及びメディア処理パイプライン２  ２２０は、（例えば、メディア時刻表１４２に基づいて特定される）次に来るメディア・サンプルのレンダリングに必要な、既に配分された共有可能メモリーの個別の量の予約を（例えば、ＭＡＭ２０５から）要求する。個々のメディア・サンプルを準備するために要求されるメモリー資源は、サンプルごと又はクリップごとに必ずしも一定ではなく、メディア・サンプルの大きさ、メディア供給源の位置又は識別情報、符号化又は復号化パラメーター、メディア・サンプル表示形式、圧縮パラメーター、暗号化パラメーター、再生速度、メディア・コンテンツ・プレーヤーの動的な処理負荷、及び他のファクターのようなファクターによって影響を受ける。
【００５０】
菱形４１０で、特定のクリップ／メディア・コンテンツ・ストリームの特定の次に来るメディア・サンプルのレンダリングのために必要とされる個別の量のメモリー要求を満たすのに十分でまだ予約されていない（ブロック２０６において配分された）共有可能メモリー２４４が存在することが決定されると、ブロック４１２に示すように、要求しているメディア処理パイプラインのために、要求されたメモリーの量が（例えば、ＭＡＭ２０５によって）予約される。一般に、予約により、要求しているメディア処理パイプラインにとって利用可能な（ブロック２０６で配分された）共有可能メモリー２４４の量が低減される。また、そうした予約は、ブロック４０６における適用可能なメディア・コンテンツ・ストリームの平均データ速度の計算に単独で影響し得ることに留意されたい。
【００５１】
ブロック４１６に示すように、処理（例えば、メディア・データ１３２のユーザーへの表示）が完了すると、ブロック４１２で予約された個別の量のメモリーが、ＭＡＭ２０５によって解放される。一般に、解放は、要求するメディア処理パイプラインにとって利用可能な（ブロック２０６で配分された）共有可能メモリーの量を増加させる。ブロック４０６において共有可能メモリー２４４の所望の配分がすぐには実現できず、解放されたメモリーの量が、解放したメディア・コンテンツ・パイプラインに対する所望の配分を超えている場合、解放されたメモリーは、すぐに、ブロック４０６で計算された所望の配分に従って再配分され得る。同様に、（以下に説明する）菱形４１４に示すように、待機中のメモリー要求優先度がある場合、その待機中のメモリー要求優先度が満たされる。
【００５２】
再び菱形４１０に戻って、所望の配分は実現されたが、特定の次に来るメディア・サンプルのレンダリングのために必要とされる個別の量のメモリーに対する要求を満たすために十分な未予約の共有可能メモリー２４４（ブロック２０６で配分された）がないと決定されたと仮定すると、利用可能な共有可能メモリーは、ブロック４１８に示すように、優先度手法に基づいて配分される。一つの可能な優先度手法においては、より高い優先度は、共有可能メモリーの配分された部分よりも少ない部分を有するメディア処理パイプラインへ共有可能メモリーを割り当てることに与えられる。代替の手法も可能であり、例えば、より高い平均データ速度を持つメディア・コンテンツ・ストリームを有するメディア処理パイプラインへ共有可能メモリーを割り当てることに、より高い優先度が与えられる。例えば、両方のメディア処理パイプライアンが、ブロック４０６で計算された割り当て分を超える共有可能メモリーを要求したと仮定する。ブロック４２０において、メモリー要求優先度が、共有可能メモリーの配分された部分より少ない部分を有するメディア処理パイプラインに割り当てられる場合、もう一つのメディア処理パイプラインは、より低いメモリー要求優先度を受け取り、又は、メモリー要求優先度を受け取らない。メモリー要求優先度を受け取った後、メディア処理パイプラインは、ブロック４２２に示す通り、ブロック４１６において（待機しているメディア処理パイプライン、又はいずれかのメディア処理パイプラインによって）十分なメモリーが解放されるまで待機し、解放されたメモリーは直ちにメモリー要求優先度に従って予約される。
【００５３】
もう一つの例において、一つのメディア処理パイプライアンが、ブロック４０６において計算された割り当て分を超える共有可能メモリーを要求したと仮定する。一つの解決方法は、メディア処理パイプラインが、共有可能メモリーの配分された部分よりも少ない部分を有するならばメモリー要求優先度を割り当て、要求しているメディア処理パイプラインが、共有可能メモリーの配分された部分を有しているならばメモリー要求優先度を割り当てないことである。メモリー要求優先度が割り当てられると、メディア処理パイプラインは、ブロック４２２に示す通り、ブロック４１６においていずれかのメディア処理パイプラインによって十分なメモリーが解放されるまで待機し、解放されたメモリーは、メモリー要求優先度に従って直ちに予約される。
【００５４】
菱形４２０に示すように、メモリー要求優先度が割り当てられない場合、一つの解決方法は、メディア処理パイプラインに、必要なメモリーが利用可能になる（例えば、ブロック４０６で計算された配分が変更され、及び／又は、他方のメディア処理パイプライアンが配分を越えるメモリーを解放する）まで、個別の量のメモリーを繰り返し再要求するよう求めることである。
【００５５】
菱形４１４に示すように、待機中のメモリー要求優先度は、一般に優先度順又は時間順に満たされる。ブロック２０６において共有可能メモリー２４４が再配分されたときに、メモリー要求優先度を再設定することが望ましい。そのような再配分は、メディア時刻表１４２で示されたメディア・サンプル表示時間と独立して、様々な時点において生じ得る。待機中のメモリー要求優先度がなく、メディア・データ・ストリームが停止した場合、この方法は、全ての利用可能な共有可能メモリー２４４がレンダリング中の他のメディア・データ・ストリームに利用可能であるブロック４０２に戻る。
【００５６】
図５は、表示システム１００の様々な機能コンポーネントを実現するのに使用され、アクセスされ又は含まれ得る機能コンポーネントを示す、汎用コンピューター・ユニット５００のブロック図である。コンピューター・ユニット５００の一つ又はそれ以上のコンポーネントは、ＩＣ管理部１０４、表示管理部１０６及びメディア・コンテンツ管理部１０２を実現するために利用され、それらによってアクセス可能であり、又は、それらに含まれ得る。例えば、図５の一つまたはそれ以上のコンポーネントは、表示システム１００の機能を（全体で又は部分的に）様々な方法で実現するために、一緒に又は別々にパッケージングされ得る。
【００５７】
一つ又はそれ以上のプロセッサー５０２は、コンピューター読み取り可能媒体５０４及びコンピューター・プログラム５０６に応答する。物理的又は仮想的なプロセッサーであり得るプロセッサー５０２は、コンピューター実行可能命令を実行することにより電子機器の機能を制御する。プロセッサー５０２は、特定のプロセスを実行するために、アセンブリの、コンパイルされた又はマシンレベルの命令を実行することができる。そのような命令は、ソース・コード、又は任意の他の既知のコンピューター・プログラム設計ツールを使って作成され得る。
【００５８】
コンピューター読み取り可能媒体５０４は、プロセッサー５０２により実行可能な命令のようなコンピューター読み取り可能データの記録、格納又は送信が可能な任意の形態の装置であって、現在知られている又は後に開発される任意の数及び組み合わせのローカルの又はリモートの装置を示す。特に、コンピューター読み取り可能媒体５０４は、半導体メモリー（例えば、読み取り専用メモリー（「ＲＯＭ」）、任意の種別のプログラム可能ＲＯＭ（「ＰＲＯＭ」）、ランダム・アクセス・メモリー（「ＲＡＭ」）、又はフラッシュ・メモリー）、磁気記憶装置（例えば、フロッピー（登録商標）ディスク・ドライブ、ハードディスク・ドライブ、磁気ドラム、磁気テープ又は磁気光学ディスク）、光記憶装置（例えば、任意の種別のコンパクト・ディスク又はデジタル多用途ディスク）、バブル・メモリー、キャッシュ・メモリー、コア・メモリー、ホログラム・メモリー、メモリー・スティック、紙テープ、パンチカード、又はそれらの任意の組み合わせであっても、それらを含むものでもよい。コンピューター読み取り可能媒体５０４は、また、通信媒体及びそれに関連付けられたデータを含んでもよい。通信媒体／データの例としては、例えば変調搬送信号によって搬送されるパケット化された又はパケット化されないデータのような、任意の形態の有線又は無線通信に包含されるデータを含むが、それに限られない。
【００５９】
コンピューター・プログラム５０６は、任意の信号処理方法、又はデータに対する予め決められた処理を電子的に制御する格納された命令を示す。一般に、コンピューター・プログラム５０６は、コンポーネント・ベースのソフトウェア開発の周知の実務に従ってソフトウェア・コンポーネントとして実現され、（例えば、コンピューター読み取り可能媒体５０４のような）コンピューター読み取り可能媒体上に符号化されるコンピューター実行可能命令である。コンピューター・プログラムは様々な方法で組み合わされ、又は分散され得る。
【００６０】
表示システム１００の文脈において説明された機能／コンポーネントは、コンピューター・プログラムの任意の特定の実施の形態による実現態様に限定されない。むしろ、機能はデータを伝送又は変換するプロセスであり、一般に、表示システム１００の機能的コンポーネントの任意の組み合わせに配置され又はそれらによってアクセスされるハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせによって実現され、又は実行され得る。
【００６１】
図５を引き続き参照して、図６は、コンピューター・ユニット５００又は表示システム１００の全部又は一部が実現又は利用され得る動作環境６００の例としての構成のブロック図である。動作環境６００は、一般に、広範な汎用又は専用のコンピューティング環境を示す。動作環境６００は、適切な動作環境の一例に過ぎず、本明細書に説明されるシステム及び方法の用途又は機能の範囲に関するいかなる限定をも示唆するものではない。例えば、動作環境６００は、例えばパーソナル・コンピューター、ワークステーション、サーバー、携帯型装置、ラップトップ、タブレット、或いは、例えば光メディア・プレーヤー又は他の形式のメディア・プレーヤーのような任意の他の種別の電子機器である、現在知られている又は後に開発される任意の形式のコンピューター或いはその任意の態様であってよい。動作環境６００は、また、例えば、分散コンピューティング・ネットワーク又はウェブ・サービスであってもよい。動作環境６００の具体例としては、例えば、高品位ＤＶＤ映画の再生を容易にする、ＤＶＤプレーヤー又はそれと関連付けられたオペレーティング・システムのような環境である。
【００６２】
図示されるように、動作環境６００は、プロセッサー５０２、コンピューター読み取り可能媒体５０４及びコンピューター・プログラム５０６を含むコンピューター・ユニット５００のコンポーネントを含み、又はそれらにアクセスする。周知であり且つ広く入手可能なコンポーネントである一つ又は複数の内部バス６２０が、コンピューター環境６００又はそのコンポーネント内の、コンピューター環境６００又はそのコンポーネントへの、或いは、コンピューター環境６００又はそのコンポーネントからのデータ、アドレス、制御信号及び他の情報を搬送するために利用され得る。
【００６３】
入力インターフェース６０８は、コンピューター環境６００への入力を提供する。入力は、例えばユーザー・インターフェースのような、任意の種別の現在知られている又は後に開発されるインターフェースを利用して収集される。ユーザー・インターフェースは、リモート・コントロール、ディスプレイ、マウス、ペン、スタイラス、トラックボール、キーボードのようなタッチ入力装置、マイクロフォン、スキャナー装置、及び、データ入力に用いられる全ての形式の装置であり得る。
【００６４】
出力インターフェース６１０は動作環境６００からの出力を提供する。出力インターフェース６１０の例は、ディスプレイ、プリンター、スピーカー、ドライブ（例えば、光ディスク・ドライブ及び他のディスク・ドライブ）及びそれらに類するものを含む。
【００６５】
外部通信インターフェース６１２は、動作環境６００が、チャンネル信号、データ信号又はコンピューター読み取り可能媒体のような通信媒体を介して他のエンティティとの間で情報を送受信する能力を高めるために利用可能である。外部通信インターフェース６１２は、ケーブル・モデム、データ端末装置、メディア・プレーヤー、データ記憶装置、個人情報端末又は任意の他の装置或いはそれらのコンポーネント／組み合わせのような要素や、関連するネットワークをサポートする装置及び／又はソフトウェア又はインターフェースであってよく、又はそれらを含む。専用ハードウェエア６１５は、例えば送受信機、コーデック、専用回路、ディスク・ドライブ及びそれらに類するもののような、動作環境６００の機能を実現する任意のハードウェア又はファームウェアを表す。
【００６６】
図７は、表示システム１００、コンピューター・ユニット５００又は動作環境６００と組み合わせて利用され得るクライアント・サーバー・アーキテクチャー７００の簡略化された機能図である。表示システム１００、コンピューター・ユニット５００及び／又は動作環境６００の一つ又は複数の態様は、アーキテクチャー７００のクライアント側７０２、又はアーキテクチャー７００のサーバー側７０４に表され得る。図示される通り、（例えば、有線又は無線の、任意の形式の私的又は公的なネットワークであり得る）通信フレームワーク７０３は、クライアント側７０２及びサーバー側７０４の間の通信を円滑化する。
【００６７】
クライアント側７０２において、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせにおいて実現され得る一つ又はそれ以上のクライアント７０６は、クライアント・データ記憶装置７０８に応答する。クライアント・データ記憶装置７０８は、クライアント７０６のローカルの情報を格納するために採用されるコンピューター読み取り可能媒体５０４であり得る。サーバー側７０４において、一つ又は複数のサーバー７１０は、サーバー・データ記憶装置７１２に応答する。クライアント・データ記憶装置７０８と同様に、サーバー・データ記憶装置７１２は、サーバー７１０のローカルの情報を格納するために採用される一つ又はそれ以上のコンピューター読み取り可能媒体５０４を含む。
【００６８】
メディア・コンテンツと同時に対話型コンテンツをユーザーに表示するために用いられる表示システムの様々な態様が説明された。しかしながら、理解されるように、説明された表示システムのコンポーネントの全てが利用される必要はなく、また、それらのコンポーネントは使用の際に同時に存在する必要もない。表示システム１００の文脈においてコンピューター・プログラムとして説明された機能／コンポーネントは、任意の特定のコンピューター・プログラムの実施の形態による実現に限られない。むしろ、機能はデータを伝達又は変換するプロセスであり、一般に、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合わせにおいて実現され、又は実行され得る。
【００６９】
本願発明を、構造的特徴及び／又は方法的行為に特化した言葉で説明したが、理解されるように、特許請求の範囲により定義される発明は、必ずしても上記の特定の特徴又は行為に限定されるものではない。むしろ、上記の特定の特徴及び行為は、特許請求の範囲を実現する例としての形態として説明されるものである。
【００７０】
更に理解されるように、一つの要素が他の要素に応答するものとして示される場合、それらの要素は直接又は間接に結合され得る。本明細書に示された接続は、実際において、要素間の結合又は通信可能インターフェースを達成するための論理的又は物理的なものであり得る。接続は、なかんずく、ソフトウェア・プロセス間の内部プロセス通信として、又はネットワーク接続されたコンピューター間のマシン間通信として実現され得る。
【００７１】
用語「例として」は、本明細書において、例、事例又は説明として供されることを意味するものとして用いられる。本明細書に「例として」記載された任意の実現態様又はその態様は、必ずしても、他の実現態様又はその態様よりも好ましい又は有利なものとして構成されるものではない。
【００７２】
理解される通り、上記の特定の実施の形態以外の実施の形態が、添付の特許請求の範囲の趣旨及び範囲から逸脱することなく考案され、本願発明の範囲は、添付の特許請求の範囲によって決定されるものとする。
【図１】
0005513381.tif 000002
【図２】
0005513381.tif 000003
【図３】
0005513381.tif 000004
【図４】
0005513381.tif 000005
【図５】
0005513381.tif 000006
【図６】
0005513381.tif 000007
【図７】
0005513381.tif 000008