JP2009505170A - 対話式メディア環境での複数アプリケーションのレンダリングおよび合成 - Google Patents

対話式メディア環境での複数アプリケーションのレンダリングおよび合成 Download PDF

Info

Publication number
JP2009505170A
JP2009505170A JP2008519421A JP2008519421A JP2009505170A JP 2009505170 A JP2009505170 A JP 2009505170A JP 2008519421 A JP2008519421 A JP 2008519421A JP 2008519421 A JP2008519421 A JP 2008519421A JP 2009505170 A JP2009505170 A JP 2009505170A
Authority
JP
Japan
Prior art keywords
application
order
display
applications
graphics
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008519421A
Other languages
English (en)
Other versions
JP2009505170A5 (ja
JP4965567B2 (ja
Inventor
フィンガー,ジェームズ・シー
ヨヴィン,ジョン・アンドレ
マズハル,クルシェド
コール,オリビア
フリーマン,アーサー・ウィリアム,ジェームズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009505170A publication Critical patent/JP2009505170A/ja
Publication of JP2009505170A5 publication Critical patent/JP2009505170A5/ja
Application granted granted Critical
Publication of JP4965567B2 publication Critical patent/JP4965567B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Document Processing Apparatus (AREA)
  • Image Processing (AREA)
  • Stored Programmes (AREA)

Abstract

対話式メディア環境(1250)において、0個以上のスクリプト構成要素および0個以上のマークアップ構成要素をそれぞれ有するアプリケーション自体がZ順序を有する視覚的要素として処理されるモデルが提供される。資源効率の良いレンダリング順序が提供され、対話式メディア環境(1250)内でフォーカスを有するアプリケーションが(ユーザイベントの受信によって)最初にレンダリングされる。残りのアプリケーションが、トップダウン順に、すなわち逆Z順序(1362)でレンダリングされる。それぞれのアプリケーションに関連する1つまたは複数のグラフィックスバッファ(1528)に描画することによってレンダリングが実施される。アプリケーションに関するフレームが、ボトムアップに、Z順序(1352)でグラフィックスバッファ(1528)から合成され、正しい外観を有する表示が得られる。
【選択図】図13

Description

本願は、参照により本明細書に組み込まれる2005年7月1日出願の仮出願第60/695944号の特典を主張するものである。
記載の構成、システム、および方法は一般に、対話式メディアに関し、より詳細には、対話式メディア環境での複数のアプリケーションのレンダリングおよび合成に関する。
対話式メディア環境は通常、環境内で動作するアプリケーションにとって利用可能な、利用可能処理能力、メモリ、および他の資源に関して制約された資源である。対話式メディアの1つの一般的な例は、DVD(デジタル・バーサタイル・ディスク)上に符号化されたビデオであり、そこでは、ユーザはグラフィカルメニューまたは他の制御と対話して、特定のビデオコンテンツまでナビゲートし、またはDVD内にオーサリングされた特別な機能を起動することができる。
典型的な対話式メディア環境では、グラフィックスやメニューなどの視覚的要素に、ディスプレイ画面上の要素に関する視覚的順序を提供する「Z順序」が与えられる。Z順序は、ディスプレイ画面から外向きに延びる仮想z軸に沿って視覚的要素が互いの上部にどのように積まれるように見えるかを制御する。低いZ順序を有する視覚的要素は、ディスプレイの下部にある(閲覧者からさらに離れている)ように見え、高いZ順序を有する視覚的要素は、低いZ順序の要素の上部にある(したがって閲覧者に対して近くにある)ように見える。
一般に、視覚的要素を表示のためにレンダリングするとき、低いZ順序の要素がまず描画され、その後に、高いZ順序の要素が続く。次いで、高いZ順序の視覚的要素が上に描画され、低いZ順序の要素の部分またはすべてを遮ることがある。このようにして、表示が、適切な重なりおよび相対的順序を有するスタック中の視覚的要素と共に正しく出現する。しかし、そのような方法は、強制的に資源を最下部の視覚的要素に集中させ(それが最初に描画されるため)、このことは非効率である可能性がある。完全に描画されたシーンで低いZ順序の視覚的要素が結局は高いZ順序の要素で遮られるときであっても、そのような低いZ順序の要素が描画されることで処理能力が浪費される。そのような非効率性は、システム資源に過度の要求を課し、それにより、ビデオ再生での破壊や、環境内のビデオとグラフィックスとの同期での破壊などの望ましくないプレーヤの挙動が生じる。
対話式メディア環境において、0個以上のスクリプト構成要素および0個以上のマークアップファイルをそれぞれ有するアプリケーション自体がZ順序を有する視覚的要素として処理されるアプリケーションモデルが提供される。対話式メディア環境でフォーカスを有するアプリケーションが(そのユーザイベントの受信によって)最初にレンダリングされるというレンダリング順序が使用される。次いで、残りのアプリケーションが、トップダウン順に、すなわち逆Z順序でレンダリングされる。それぞれのアプリケーションに関連する1つまたは複数のグラフィックスバッファに描画することによってレンダリングが実施される。アプリケーションに関するフレームが、ボトムアップに、Z順序でグラフィックスバッファから合成され、正しい外観を有する表示が得られる。
様々な例示的実施例では、プレイバックシステム内のナビゲーションマネージャが、プレイバックシステム上で動作するアプリケーションに関するZ順序を維持する。プレゼンテーションエンジンは、アプリケーションのマークアップ内のキャンバスオブジェクトにアプリケーションを描画し、それが、アプリケーションごとにそれぞれのグラフィックスバッファに逆Z順序でレンダリングされる。グラフィックスレンダリングエンジンは、ペインタのアルゴリズムを使用して、グラフィックスバッファからのフレームをアプリケーションごとにZ順序で合成する。アプリケーションは、アプリケーションの上に積み重ねられた(すなわち、高いZ順序を有する)アプリケーションを貫く穴を開ける方法を起動して、アプリケーションの視覚的要素をスタックの下部から視覚的に引き上げ、またはディスプレイの下側に要素を押し下げることもできる。
有利には、アプリケーションをグラフィックスバッファに逆Z順序でレンダリングし、その後に続いてディスプレイをZ順序で合成することは、プロセッササイクルおよびメモリを含むハードウェア資源が一般に限定される環境で、資源効率の良いモデルを提供する。より自然な優先順位が、フォーカスされたアプリケーションおよび高いZ順序のアプリケーションに与えられ、その結果、結局は上に描画されて遮られる可能性のある低いZ順序の視覚的要素の描画に費される資源が少なくなる。
図1を参照すると、対話式メディア環境で使用されるアプリケーション110を構成する要素の例示的ブロック図が示されている。アプリケーションは通常、ユーザと、リモートコントロールなどのユーザインターフェースを介して結合されたディスプレイ装置(テレビジョンやモニタなど)上にグラフィックスおよびビデオをレンダリングする対話式メディアプレーヤとの間の対話を可能にするように対話式メディア環境で使用される。より具体的には、アプリケーションは、環境内の、ビデオプレイバックを含む様々なコンテンツオブジェクトのプレゼンテーション挙動を制御する。ビデオを介するメニューや対話ボタンなどのグラフィックオブジェクトのプレゼンテーションもアプリケーションを使用して実現される。アプリケーションはさらに、環境内のオーディオプレイバックおよびサウンドを管理および制御する。ほとんどの対話式メディア設定では複数のアプリケーションが一般に同時に動作していることになることが企図される。しかし、複数のアプリケーションが同時に実行されるという要件はなく、特定の設定でアプリケーションを分割または集約するという決定は、対話式メディア作者の設計の好みである。特定の設定の要件に応じて、アプリケーションをアプリケーションページに論理的に細分することもできる。
アプリケーション110は、0個以上のスクリプトファイル117および119を含むスクリプトホスト115と、文書オブジェクトモデル(DOM)を生成するのに使用される0個以上のマークアップ文書120とを含む。マークアップ文書120は、例えばグラフィックオブジェクトのコンテンツ、スタイル、タイミング、およびレイアウトに関する情報を含む。したがって、マークアップコンテキストは、一般には対話式メディア環境内のグラフィックス平面上にグラフィックスを提供するために使用される。
この例示的実施例では、マークアップ文書は、W3C規格に従うXML文書ファイルである。図1に示されるように、マークアップの<head>セクション内の<include>要素を使用して、複数の物理的XMLファイルにアクセスすることができる。ある設定では、アプリケーションが一度に複数のアクティブなマークアップを有さないことが好ましいことがある。しかし、アプリケーションは、そのマークアップ120を、マークアップ内の<link>要素を使用することによって切り換えることができる。あるいは、アプリケーションは、アプリケーションが現アプリケーション内の機能オブジェクトへのアクセスを得ることを可能にするアプリケーションプログラミングインターフェース(API)を使用することによってそのマークアップ120を切り換えることもできる。APIを介するloadMarkup()呼出しを使用して、アプリケーションは、APIを介して新しいマークアップのUniform Resource Identifier(URI)を渡すことによってマークアップファイル120を切り換えることができる。
アプリケーションが新しいマークアップにアクセスする場合、API呼出しは、アプリケーション内の現イベントハンドラがその現タスクの実行を終了した後にのみ効果を現す。保留中の任意の現マークアップ関連イベントハンドラもキャンセルされる。新しいマークアップがロードされると、新しいマークアップはそうしたイベントハンドラを無効にするからである。
この例示的実施例では、スクリプトホスト115は、対話式メディア体験を実装するためにマークアップ120と共に使用されるスクリプトファイル117および119を含む。例えば、Ecma InternationalによってECMA−262仕様で定義されたECMAScriptを使用してスクリプトファイル117および119を実装することができる。ECMA−262に含まれる一般的なスクリプティングプログラミング言語は、JavaScriptおよびJScriptを含む。ある設定では、ECMAScript262のサブセット、具体的にはECMA−327をホスト環境および1組の共通APIと共に使用してスクリプト117および119を実装することが望ましいことがある。ほとんどの設定でのスクリプトコンテキストは、ユーザからの対話制御問題、ならびにマークアップ120単独を使用して容易または効率的に実装されないシステムイベント、グラフィックス制御、ビデオプレイバック、資源管理(例えば、キャッシングまたは永続的ストア資源の使用)、および他の問題に対処するのに使用される。
アプリケーション110に対するAPIおよび資源の可用性が、図1の参照番号125で示されている。資源は、例えば、オーディオファイルおよびビデオファイル、フォント、ピクチャ、イメージ(例えば、PNG、JPEG、GIF、BMP、TIFFなどを含む共通ファイルフォーマットのもの)、および特定の設定の状況に従ってアプリケーションによって必要とされる可能性のある他の資源を含む。
各アプリケーション110は、それ自体のスクリプトホスト115を維持し、スクリプトホスト115は、スクリプトの変数、関数、および他の状態に関するコンテキストを維持する。ほとんどの設定では、例えばすべてのアプリケーションの間で共有されるオブジェクトを使用することによってアプリケーションがアプリケーション間可視性を可能にするように具体的にセットアップされない限り、あるアプリケーションでの変数および関数は、別のアプリケーションからは見えない。例えば、この例示的実施例では、対話式メディアプレーヤオブジェクトは、すべてのアプリケーションにわたって共有される単一のインスタンスを有する。したがって、任意選択で、例えばC++オブジェクトを使用して特別なオブジェクトをスクリプトホスト115内に配置し、シングルトン(すなわち限定されたインスタンス化を有するオブジェクト)を実装することができ、特別なオブジェクトはすべて、例えばプレーヤの、同一の内部関数を参照する。この任意選択の態様は、対話式メディアスクリプト作者が共通オブジェクトをシングルトンとして論理的に処理することを可能にすると共に、スクリプトホスト115が単一のスクリプトホストにオブジェクトを公開するのに必要な機能を実装することを依然として可能にする。
次に図2を参照すると、複数のマークアップ文書およびスクリプトの間の関係を示す例示的な図が与えられている。アプリケーションマニフェスト230はアプリケーションと対話し、アプリケーションは、上記で指摘したように、図示される資源125、スクリプト205、ならびにマークアップ文書251、260、および275によって一般に定義される。各アプリケーションは通常、ほとんどの設定で単一のアプリケーションマニフェストファイルを使用するが、アプリケーションマニフェストは、アプリケーションの実行時状態の部分ではない。この例示的実施例では、アプリケーションマニフェスト230がXML文書ファイルとして符号化される。
アプリケーションマニフェスト230は、アプリケーション110(図1)で使用される初期マークアップファイル251、ならびにスクリプトホスト115(図1)に含まれるスクリプトファイル(図2の参照番号205を有する矩形によって集合的に示される)を記述する。この例示的実施例のように、アプリケーションマニフェスト230が複数のスクリプトを列挙する場合、すべてのスクリプトが、対話式メディアプレーヤ内のスクリプト処理エンジンにロードされる。したがって、複数のスクリプトファイルが処理され、複数のスクリプトファイルは、スクリプト作者がスクリプトファイルのすべてをアプリケーションマニフェスト230に列挙される順序で単一の大きいファイルとして連結したかのように振る舞う。
図2に示されるように、アプリケーションマニフェスト230は資源125を参照する。対話式メディア環境内のアプリケーションにとって利用可能な資源は、アプリケーションマニフェスト230で参照される資源125を起源とする有向グラフを形成する。アプリケーションごとのグラフの可能な範囲が、アプリケーションマニフェスト230によって禁止される。
図2は、対話式メディア環境で動作するアプリケーションを示す。上記で指摘したように、アプリケーションが一度に有することのできるアクティブなマークアップは1つだけであり、アプリケーションコンテンツがアプリケーションによって別々に保たれる。マークアップページ251、260、および275の間の矢印で示されるように、スクリプト205を介して、アプリケーションは、マークアップページ251から260に進むことができ、次いで、後でページ260から275に進むことができる。
対話式メディア環境内のアプリケーションによるコンテキスト実行の進行がプレイリスト290によって誘導され、プレイリスト290はとりわけ、プレーヤによってディスプレイ装置上にレンダリングされるプレゼンテーションオブジェクトを含む環境内のオブジェクト間の関係を記述する。こうしたプレゼンテーションオブジェクトは通常、アプリケーションによって再現されるビデオ(以下でより詳細に説明するように、ビデオは複数のストリームを含むことができる)およびグラフィックスを含む。
プレイリスト290はさらに、アプリケーションによる資源の消費を効率的に割り振って制御するために、対話式メディア環境にわたる資源を単一の管理エンティティとして管理する。アプリケーションマニフェスト230と同じく、有利には、ほとんどの設定ではプレイリスト290をXML文書ファイルとして埋め込むことができる。
ある設定で図2のマークアップページを使用して、(図1のスクリプトファイル117および119によって作成された)実行コンテキストにイベントをファイアすることができる。次いで、実行コンテキストは、現アプリケーションマークアップによって作成されたDOMを操作する。対話式メディア環境でマークアップが使用されて、環境内のグラフィカルオブジェクトのスタイル、コンテンツ、タイミング、およびレイアウト(図2の要素253、262、および277で表されるように)が指定されるので、スクリプトとマークアップの組合せは、包括的な1組の機能の作成を可能にする。
図3は、対話式コンテンツプロセッサ(ICP)335、ビデオコンテンツプロセッサ(VCP)310、およびミキサ339を含む第1の例示的な対話式メディアプレーヤ305のブロック図である。図3に提示される構成は、アプリケーション状態管理に関係する例示的対話式メディアプレーヤ305の特徴および機能を記述する論理モデルを提供することに留意されたい。したがって、対話式メディアプレーヤの実際の実装は、様々な構造的形態を使用することができると共に、依然として本明細書に記載の通りに動作し、アプリケーション状態管理の利点を達成する。対話式メディアプレーヤ305は通常、スタンドアロンコンシューマエレクトロニクス装置などの専用ハードウェアとして実現され、あるいは、パーソナルコンピュータで見られるような汎用プロセッサと共にコンピュータ可読媒体を使用するソフトウェア実装を使用して実現される。
VCP310は、DVDドライブや高精細度DVD(HD−DVD)ドライブなどのローカル光学式ドライブ、ローカルメモリ、またはネットワークを介するリモートブロードバンドソースを含む複数のソースから受信することのできる1つまたは複数のメディアストリームを管理する。この例示的実施例では、VCP310は、図3の要素304および306で示される1つまたは複数のメディアプロセッサ1、2...Nを含む。メディアプロセッサ304および306は、通常はオーディオおよびビデオを含む、受け取ったメディアストリームを処理し、対応するイメージおよびサウンドを復号化およびレンダリングし、それがライン325上にオーディオ/ビデオストリームとして出力される。オーディオ/ビデオストリーム325は、例えば「ピクチャ・イン・ピクチャ」型構成を使用して複数の別々のビデオウィンドウをレンダリングするために、複数のビデオ要素を表すことができる。
メディアプロセッサ304および306はそれぞれ、メディアソースインターフェース、デマルチプレクサ、およびデコーダを備える。任意選択で、メディアプロセッサ304および306は、暗号解読機能も含むことができる。オーディオ/ビデオストリームを受信および表示するためにディスプレイ装置355が結合される。
受信した各メディアが関連する「Media Time」を有するようにメディアクロック312が使用される。対話式メディアプレーヤ305上でビデオストリームが休止するとき、メディアクロック312も休止する。ユーザによってビデオストリームがリアルタイムよりも高速または低速に進むように設定されたとき(例えば、ビデオが早送りモード、巻戻しモード、またはスローモーションモードに置かれたとき。こうしたモードのいずれかを使用することは「トリックプレイ」と呼ばれる)、メディアクロック312は、それに応じて加速または減速する。したがって、Media Timeは、メディアクロックとメディアプロセッサ304および306のオペレーションから導出される。Media Timeは、ライン315を介してICP335内のプレイリストマネージャ337に渡される。Media Timeを含む対話式メディア環境内の時間は通常、「チック」単位でカウントされる。
ICP335は、すべてのアプリケーション関連処理を実施し、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せとして実現することのできるいくつかの構成要素からICP335を構成することができる。ICP335の構成要素は、例えばマークアップエンジン、スクリプト言語インタプリタ、およびXML構文解析構成要素(図示せず)を含む。ICP335は、オーディオ/ビデオストリーム325と同期されるグラフィックスストリームをライン321上に出力する。ミキサ339は、ライン321上のグラフィックスストリームとライン325上のオーディオ/ビデオストリームを取り、その結果、グラフィックスがビデオストリームを介してグラフィックス層でレンダリングされ、ユーザに対する対話式メディアセッションが実装される。
ほとんどの設定では、ICP335は、ビデオストリームとフレームごとに同期されるグラフィックスを出力する。しかし、例えば時間(以下で定義されるTitle TimeおよびMedia timeを含む)、ビデオ中のコンテンツ、またはストリーム中の特定の地点を指示またはマークするのに使用される、ビデオに埋め込まれた他のメタデータを含む他の基盤を使用して、そのような同期を実施することができる。
ICP335は、プレイリストマネージャ337およびタスクマネージャ330を含む。プレイリストマネージャ337は、環境内のプレゼンテーションオブジェクトを制御する任を担う。こうしたオブジェクトは、プレーヤ305上のビデオプレイバック、および対話式グラフィックスを生成するために実行中のアプリケーションを含む。プレイリストマネージャ337は、上記の図2に伴う本文で説明したプレイリスト290を管理する。
プレイリストマネージャ337はまた、メディアストリーム中のコンテンツの各部分に関連する「Title Time」も計算する。タイトルは、DVD作者によって通常は定義される開始時間および終了時間を有する、ビデオおよびオーディオコンテンツの固有のシーケンスである。しかし、そのような作者が何をタイトルと定義するかは任意でよい。したがって、ビデオで認識される特定のコンテンツは、1つのタイトルの一部でよく、完全なタイトルでよく、または複数のタイトルにまたがるものでよい。
タイトルの一例は、米国におけるアナログフォーマットとデジタルフォーマットの両方のすべての事前記録されたビデオに先行する著作権警告である。DVD上の注目のアトラクション(例えばメインムービー)は別の例であり、多くの場合、最長のタイトルである。ある設定では、ムービー中の個々のチャプタが、DVD作者によって別々のタイトルとして指定されることがある。すべてのそのようなタイトルでは、Title Timeは、所与のタイトルがメディアクロック312上で示されるように再生を開始してから経過した時間と定義される。
プレゼンテーションクロック360は、プレイリストマネージャとライン362で結合される。プレゼンテーションクロック360は、現実世界クロックと同じペースで時刻が変化するクロックである(すなわち、プレゼンテーションクロック360が1秒進むのに、リアルタイムの1秒がかかる)。メディアクロック312とは対照的に、プレゼンテーションクロック360は決して停止せず、加速または減速することができない。プレゼンテーションクロック360からのプレゼンテーション時間はタスクマネージャ330に渡され、タスクマネージャ330は、それを使用して「Application Time」およびアプリケーション「Page Time」を計算する。
Application Timeは、アプリケーションが開始してから(または以下でより詳細に説明される「Active」状態に入ってから)経過した時間である。複数のアプリケーションが実行時であるとき、各アプリケーションは、それ自体のApplication Timeの概念を有する。各アプリケーションについて、アプリケーションが環境内で開始したときにApplication Timeは常に0で開始する。
例えば、アプリケーションApp1が20任意時間単位のプレゼンテーション時間(これはApp1について0時間単位である)で開始し、アプリケーションApp2が25時間単位のプレゼンテーション時間(これはApp2について0時間単位である)で開始する場合、35時間単位のプレゼンテーション時間で、App1のApplication Timeは15時間単位であり、App2のApplication Timeは10時間単位である。論理的にページに細分されるアプリケーションについて、Page Timeは、アプリケーションのページがロードされてから経過した時間である。
図4は、ICP435、VCP410、およびミキサ439を含む第2の例示的メディアプレーヤ405のブロック図である。対話式メディアプレーヤ405は、図3に示される対話式メディアプレーヤ305と形態および機能の点で類似している。しかし、注目すべきことに、VCP435は、別々のフィード425および427をミキサ439に提供するように構成されるメディアプロセッサ1、2...N(図4の要素404および406で示される)を含む。そのような構成は、個々のメディアストリームの操作が混合の前に実施される一部の設定で望ましいことがある。例えば、メディアストリーム中のビデオのパニングおよびズーミングなどのイメージ処理/選択技法を、図4の参照番号425および427によって表されるN個の別々のフィードのうちの1つまたは複数に対して個々に実施することができる。
オーディオ/ビデオフィード425および427は、ICP435からの同期グラフィックスストリームとともに、ミキサ439で混合され、ライン441上でディスプレイ装置455に対して出力される。ICP435(プレイリストマネージャ437およびタスクマネージャ430を備える)、VCP410内のメディアクロック412、およびプレゼンテーションクロック460を含む図4の他の要素は、図3に示し、付随する本文で説明した、それに対応するものと同様に構成され、機能する。
図5は、参照番号510、515、および518でそれぞれ示される複数のイベントキュー1、2、...Nと、単一のアプリケーションスレッド523とを有する例示的構成500のブロック図である。この例示的構成では、ICP(図4のICP435など)上で動作するすべてのアプリケーションが単一スレッド化され、アプリケーションスレッド523は、そのような目的専用である。しかし、ICP435は、必ずしもそれ自体単一スレッド化される必要はない。代替実装では、ICP435は、他のスレッド、例えば資源をキャッシュにプリフェッチングするために使用することができる。
イベントキュー510、515、および518のそれぞれは、そのヘッドエンド(図5の右側に位置する)からアプリケーションスレッド523にフィードされるように構成される。参照番号527、530、および532でそれぞれ示される複数のアプリケーションApp1、App2...AppNが、代表的に参照番号535で示される作業項目をキューのテールエンド(図5の左側)からキュー510、515、および518にポストするように構成される。
アプリケーションイベントは、アプリケーションによってファイアされるイベントである。これらは、スクリプト(例えば図1のスクリプトホスト115)またはマークアップ(例えば図1のマークアップ120)によってファイアされるイベントを含む。ほとんどのシナリオでは、アプリケーションイベントは、スクリプトのみによって処理される。しかし、アプリケーション527、530、および532は、スクリプトまたはマークアップ機能を直接的に起動せず、その代わりに、すべてのそのような機能は、アプリケーションのそれぞれのイベントキューに作業項目の形でポストされ、アプリケーションスレッド523が作業項目を処理するときに起動される。
代替構成では、アプリケーション以外のソースからのイベントもイベントキューを使用してスケジューリングされる。例えば、ユーザイベントは、リモートコントロールとのユーザ対話によってファイアされる。システムイベントは、図4に示し、付随する本文で説明したプレーヤ405などの対話式メディアプレーヤによってファイアされるイベントである。
イベントキュー510、515、および518内の各作業項目は、図5に示されるフィールドを含む。こうしたフィールドは、アプリケーション関連フィールド540、方法フィールド545、BeginTimeフィールド552、EndTimeフィールド555、および任意選択のClockSelectorフィールド558を含む。
アプリケーション関連フィールド540は、作業項目が適用される特定のアプリケーションを示す。方法フィールド545は、作業項目がアプリケーションスレッド523によって処理されるときに起動される方法を含む。方法フィールド545は、方法についての引数も含む。
BeginTimeフィールド552およびEndTimeフィールド555は、それぞれ作業項目の方法が開始するとき、および終了するときを示すのに使用される。この例示的実施例では、時間がApplication Timeを使用して表される。しかし、代替実施例では、BeginTimeフィールド552およびEndTimeフィールド555は、特定の設定の要件に応じて別法としてTitle Time、Application Time、またはPage Timeで表すことのできる値を含む。そのような場合、作業項目で使用される特定の時間フレームが、ClockSelectorフィールド558で示される。使用される時間フレームの如何に関わらず、作業項目に関するBeginTimeは、常にEndTime未満でなければならない。
図6は、その中に含まれる作業項目の順序を示すイベントキュー515のブロック図である。図が見やすいように、図6では他のイベントキュー510および518(図5)を示していない。しかし、以下で説明する順序付け方法は、そのような他のイベントキューにも等しく適用可能である。
イベントキュー515は、参照番号605、610、615、および620によってそれぞれ示される作業項目1、2、3、...Nを含む。各作業項目は、図5に示し、付随する本文で説明したフィールドを含む。
作業項目605は、図6のブロック630で示されるように、BegmTimeと、関連するイベントキュー515への挿入時間tとを含む。同様に、作業項目610は、ブロック635で示されるように、BeginTimeと、関連するイベントキュー515への挿入時間tとを含む。作業項目615は、ブロック640で示されるように、BeginTimeと、関連するイベントキュー515への挿入時間tとを含む。また、作業項目620は、ブロック645で示されるように、BeginTimeと、関連するイベントキュー515への挿入時間tとを含む。
この例示的実施例では、作業項目は、イベントキュー515内で、まずBeginTimeで順序付けられ、次いで、作業項目がイベントキューに挿入された時間によって順序付けられる。そのような順序付けの結果、アプリケーションスレッド523は、BeginTimeの順序で作業項目を処理し、または2つの作業項目が同一の開始時間を有するときは、FIFO(先入れ、先出し)の順序で処理する。
したがって、作業項目620がイベントキュー515の先頭であるので、BeginTime<BeginTimeであり、またはBeginTime=BeginTimeである場合、t<tである(すなわち、作業項目620は、作業項目615の前にイベントキュー515に挿入された)ことが暗示される。作業項目605、610、および615についてこれと同じ推論に従うと、
BeginTime<BeginTime
またはBeginTime=BeginTimeである場合、t<t、および
BeginTime<BeginTime
またはBeginTime=BeginTimeである場合、t<t
イベントキュー内の作業項目の順序付けは、2つの代替方法を使用して実施される。作業項目がイベントキューに挿入されたとき、または作業項目が処理の前にイベントキューから抽出されたときに作業項目を順序付けることができる。イベントキューからの作業項目の処理がBeginTimeとその後に続くキュー挿入時間によって実施される限り、どちらも構成も等しく使用可能である。
図7は、アプリケーションスレッド523が2つの作業項目705および715をイベントキュー515のテールエンドに自動的に挿入する例示的構成のブロック図である。図が見やすいように、図7では他のイベントキュー510および518(図5)を示していない。しかし、以下で説明するアプリケーションスレッドによる作業項目の自動挿入が、そのような他のイベントキューに等しく適用可能である。図示するように、自動的に導入された作業項目705および715が、イベントキュー515内の作業項目605および620の後に続く。例示的実施例では、アプリケーションが開始し、各チック後に作業項目が再スケジューリングされるときに、2つの作業項目の自動挿入が実施される。
作業項目705は、ブロック730で示されるように、アプリケーションApp2 530内のページに関するタイミングを処理するためのマークアップエンジン(例えば図4のICP435に配設されたマークアップエンジン)への呼出しを含む。ブロック735では、作業項目715は、アプリケーションApp2のマークアップをリフローして処理済みのイベントを反映し、次いでディスプレイ装置(例えば図4のディスプレイ455)上にマークアップをレンダリングするためのマークアップへの呼出しを含む。作業項目705および715は常に、アプリケーションスレッド523によってアプリケーションのチックで処理される最後の作業項目である。
図8は、対話式メディア環境で生じるイベントに関連する作業項目を待ち行列化する方法の流れ図である。単一アプリケーションスレッドでのイベント待ち行列化の例示的実施例では、方法が、図4〜7に示され、付随する本文で説明される構成によって実施される。図示される方法は通常、各チックについて反復的に実施される。
プロセスはブロック805で開始する。ブロック810では、アプリケーションスレッド523(図5〜7)が作業項目を自由に処理できるとき、アプリケーションスレッド523はまず、BeginTimeが現在または前のチックに対応するイベントキュー515内の各作業項目をマークする。アプリケーションスレッド523は、マークされた作業項目のみを処理する。したがって、イベントキュー515内の作業項目は、そのBeginTimeより前には決して処理されない。
判定ブロック816では、マークされた作業項目のEndTimeが既に経過している場合、ブロック819で示されるように、作業項目がイベントキュー515から除かれる。そのような場合、その作業項目に関する処理は行われない。アプリケーションApp2 530がそのページをリロードした場合、アプリケーションのページクロックが0にリセットされ、アプリケーションのページクロックに基づくすべての未処理の(すなわち待ち行列化された)作業項目が、あたかもそれらのEndTimeに達したかのようにイベントキューから除かれる。
判定ブロック816で、マークされた作業項目のEndTimeが経過していない場合、制御がブロック822に渡され、アプリケーションスレッド523が作業項目を処理する。上記で図6に付随する説明で指摘したように、各作業項目は、イベントキュー515から、まずBeginTimeによる順序で、その後に続いて、各作業項目がイベントキュー515に挿入された時間による順序で処理される。
反復的イベントと単発(すなわち、単一オカレンス、非反復的)イベントはどちらも、図8に示される方法を使用して管理される。反復的イベントは、関連する作業項目が次にスケジューリングされたBeginTimeに等しいEndTimeを有する周期的イベントを含むことができる。すなわち、各周期的イベントは、イベントの周期に等しい持続時間を有する。
周期的イベントは通常、タイマイベントやアプリケーション描画イベントのようなイベントを含む。例えば、アプリケーションのスクリプト(例えば図1のスクリプトホスト115)が10秒ごとにコールバックするタイマを作成する場合、現在時刻に10秒を加えたものに等しいBeginTimeを有するタイマ作業項目をイベントキュー515に追加する。EndTimeはBeginTimeに10秒を加えた値に設定される。イベントキュー515からタイマ作業項目が実行されると、別の10秒を追加することによってBeginTimeおよびEndTimeが調節され、作業項目が、イベントキュー515内の新しいBeginTimeに基づく適切な位置に再挿入される。
周期的イベントは、可能なときはいつでも起動される。しかし、周期的イベントの関連する作業項目内のEndTimeが満了する前に周期的イベントをアプリケーションスレッド523で処理することができない場合、その特定の呼出しが除かれ、次の呼出しが新しい作業項目でスケジューリングされる。したがって、周期的イベントは作業項目タイムアウトの対象となる。
有利には、イベント待ち行列化方法は、パラメータをタイマイベントに渡して、イベントを呼び出すべき時間を示すことを可能にする。このパラメータは、関連する作業項目内のBeginTimeと同じでなければならない。上記で指摘したように、周期的タイマイベントに関連するスクリプトは、呼び出される時間に厳密に実行されないことがある。しかし、各作業項目が、方法に対する引数を指定する方法フィールド545(図5)を含むので、引数の値は、実際の時間ではなく、所期の呼出し時間を反映する。したがって、タイマイベントのハンドラは、処理中の時間(すなわちチック)を認識する。
単発イベントは、INFINITEのEndTimeを有する対応する作業項目を有する。したがって、単発イベントは、決してイベントキュー515から除かれることはない。例えば、単発イベントが入力イベントである場合、そのイベントのハンドラが、INFINITEのEndTimeを有するイベントキュー515内の作業項目としてスケジューリングされる。
ブロック822で示されるように、コミットごとに処理が実施される。すなわち、アプリケーションスレッド523がイベントキュー515からの作業項目の処理を開始すると、アプリケーションスレッド523は処理を停止しない。例えば、長時間実行される可能性のあるスクリプトは、打ち切られず、スクリプトを除くためにスクリプトに例外注入されることもない。上記で指摘したように、そのような方式がスクリプトを処理する間にアプリケーションスレッドと提携する間、コミットされた作業項目の処理中に実行し続ける他のスレッドを含むようにICP(例えば図4のICP435)を構成することができる。
ブロック830では、マークされた作業項目の処理中に作成される任意の新しい作業項目が、マークされた作業項目の後に、そのBeginTimeの如何に関わらずイベントキュー515内に挿入される。作業項目をマークし、作業にコミットし、イベントキュー内のコミットした作業項目の後に新しい作業項目を挿入するプロセス(ブロック810、822、および830で示される)は、アプリケーションに何らかの目に見える進歩が常に与えられることを保証する。
図8のブロック835および828で示されるように、アプリケーションスレッドは、図7に示し、付随する本文で説明したチックごとに、2つの作業項目を各アプリケーションのイベントキューに自動的に挿入する。これらの作業項目は、アプリケーションごとのマークアップエンジンを呼び出してアプリケーションタイミングを評価し、次いでマークアップをリフローしてディスプレイ装置上にレンダリングする。上記で指摘したように、作業項目は、アプリケーション開始時に挿入され、各チック後に再スケジューリングされる。さらに、2つの作業項目は常に、アプリケーションのチックに関して処理すべき最後の2つであり、イベントキュー515から除くことのできる周期的イベントとして処理される。
図9は、ディスプレイ上の視覚的要素を機能および/またはソースごとに論理的にグループ化するために例示的グラフィカル合成モデルで使用されるグラフィックス平面900のセットの図である。グラフィックス平面セット900は、カーソル平面905、グラフィックス平面912、サブピクチャ平面918、サブビデオ平面922、およびメインビデオ平面925を含む。カーソル平面905は、グラフィックス平面セット900の最上の平面(すなわち、最も近いとユーザ930に知覚される平面)であり、その平面で、ポインタのようなカーソルオブジェクトが表示される。残りの平面は、ディスプレイの上部から下部に配置され、図9の矢印935で示されるように、左から右に配置される。
グラフィックス平面セット900中のすべての平面は、キャンバスと呼ばれる共通xy座標系を使用する。第3次元はz軸によって記述され、z軸は、図9の参照番号940で示されるように、ディスプレイから外向きに投射される。対話式メディア環境で動作するアプリケーションは、特定の平面に属する。アプリケーションを明示的に、または任意に平面に割り当てることはできず、関連付けは、アプリケーションのタイプから暗黙的に行われる。例えば、サブタイトルアプリケーションはサブピクチャ平面918でレンダリングされ、他のほとんどのアプリケーションはグラフィックス平面912でレンダリングされる。
グラフィックス平面912は、グラフィックス平面セット900の第2平面であり、以下で説明されるように、プレゼンテーションエンジンによって生成される。上記で指摘したように、対話式メディア環境内のグラフィックスやメニューなどの対話式コンテンツを生成するアプリケーションは通常、グラフィックス平面912にレンダリングされる。
サブピクチャ平面918は、グラフィックス平面セット900の第3平面であり、通常は、それぞれのアプリケーションによって生成されたサブタイトルおよび/またはキャプションを表示するのに使用される。サブビデオ平面922は、グラフィックス平面セット900中の第4平面であり、通常は、「ピクチャ・イン・ピクチャ」(PIP)構成で2次ビデオディスプレイとして使用される。参照番号942で示されるようなPIPウィンドウは多くの場合、メインビデオディスプレイよりも小さく、解像度が低い、アスペクト比が異なるなどの別の異なる特徴を有することができる。
メインビデオ平面925は、グラフィックス平面セット900中の第5平面であり、平面のスタックの下部に配置される。メインビデオ平面925は通常、上記で図3に伴う説明で説明したように、ビデオタイトルを含む対話式メディア環境内のビデオコンテンツを表示するのに使用される。図9に示されるように、グラフィックス平面セット900中のすべての平面が、以下で説明するようにグラフィックスレンダリングエンジンによって単一のディスプレイ950として混合および合成される。
図10は、AppAと呼ばれる第1の例示的アプリケーション内の3つの視覚的要素のZ順序を示す図である。アプリケーション内のZ順序はアプリケーションのZ順序とは異なることを強調しておく。すなわち、アプリケーションは、アプリケーション内のZ順序を有する視覚的要素を生成し、ICP(図4のICP435など)上で実行中の複数のアプリケーションの間で、アプリケーション自体がZ順序付けされる。
アプリケーションAppAは、図示されるような積み重ねられた構成の、それぞれZ順序0、1、および2を有する要素1010(十字)、要素1020(星)、および要素1030(矢印)を含む3つの視覚的要素を生成する。したがって、1組のN個の要素について、1組のZ順序値は、スタック内の最低の要素に関する0で開始し、スタック内の最高の要素に関するN−1で終了する。要素1010、1020、および1030がディスプレイ1045上に描画される。図10のウィンドウ1050は、AppAによって生成された視覚的要素のZ順序を、ディスプレイ1045の「縁方向」から見たかのように示す。ディスプレイ1045およびウィンドウ1050は、xyz座標1055で示されるような向きに互いに配置される。
図11は、AppBと呼ばれる第2の例示的アプリケーション内の視覚的要素のZ順序を示す図である。アプリケーションAppBは、ディスプレイ1145上に積み重ねられた構成の、それぞれZ順序0、1、および2を有する要素1110(三角形)、要素1020(卵形)、および要素1030(矩形)3つの視覚的要素を生成する。ウィンドウ1150は、xyz座標1155で示されるディスプレイ1145の縁方向から見た、AppBによって生成された視覚的要素のZ順序を示す。
図12は、アプリケーションAppAとAppBの両方から生成される視覚的要素(集合的に参照番号1210で示される)を有する合成後のディスプレイ1245を示す図である。ウィンドウ1250は、ディスプレイ1245(XYZ座標1255で示されるように)の端方向のビューを与え、アプリケーションAppAおよびAppBが互いに相対的Z順序を有することを示す。さらに、図10および11に示し、付随する本文で説明したように、アプリケーションAppAおよびAppBはそれぞれ、アプリケーション内でそれに関するZ順序が維持される視覚的要素を生成する。
図13は、アプリケーションが優先順位順にレンダリングされ、ボトムアップ順に合成される例示的構成1300を示す図である。構成1300は、xyz座標1355で示されるようにユーザ1330の方向に向くディスプレイの端方向のビュー1350を含む。他の例示的構成(図13では図示せず)では、レンダリングがボトムアップに(すなわち、特定の設定の要件に応答するZ順序で)実施される。
参照番号1305、1310、1315、1320、および1325でそれぞれ示されるAppA、AppB、AppC、AppDおよびAppEを含む5個のアプリケーションが対話式メディア環境で実行中である。アプリケーションは、矢印1352で示されるように、ウィンドウ1350内でボトムアップに、Z順序で合成される。合成は、Z順序=0を有するアプリケーションAppA1305で開始し、Z順序=4を有するアプリケーションAppD1325で終了する。
この例示的実施例では、図13で示される瞬間で示されるように、アプリケーションAppC1320が、ユーザイベントを受け取る、視覚的要素1358を生成するフォーカスされたアプリケーションである。しかし、動的環境で動作することにより、フォーカスを有する特定のアプリケーションは通常は設計によって経時的に変化し、すべてのアプリケーションは、通常はビデオタイトルが進行するにつれてZ順序が上および下に移動する可能性がある(しかし、メインビデオが停止、休止、またはフリーズした場合であってもアプリケーションは実行および動作するので、アプリケーションはZ順序を変更できることも強調しておく)。さらに、フォーカスされたアプリケーションは、スタック中の任意の位置でよい(すなわち、任意のZ順序を有することができる)。しかし、多くのシナリオでは、ユーザの予想と一致する方式でアプリケーションがユーザ1330と対話し、ボタンプッシュ、マウスクリックなどのユーザイベントを受け取ることができるように、フォーカスされたアプリケーションはディスプレイ順序の上端に向かう。
矢印1362で示されるように、アプリケーションは、フォーカスされたアプリケーション(例えばアプリケーションAppD1320)で始まり、その後に残りのアプリケーションがトップダウンで、すなわち逆Z順序で続く優先順位順にレンダリングされる。
図14は、アプリケーションが優先順位順にレンダリングされ、ボトムアップ順に合成される例示的方法についての流れ図である。この方法はブロック1405で開始する。ブロック1412では、上述のZ順序が、対話式メディア環境内で動作するアプリケーションについて維持される。特定のビデオタイトルに関連付けられるアプリケーションについての初期Z順序は、プレイリスト290(図2)によって絶対値(例えば1、2、5、7...87など)を使用して指定される。これらの絶対値は、どんな結びつきも破るためのプレイリスト字句順序付けを使用して、プレイリストZ順序に基づいてすべてのアプリケーションをソートすることによって直ちに相対的Z順序に変換される。
ブロック1415では、アプリケーションは、ビデオタイトルが進行するにつれてその相対的Z順序付けを操作する方法を起動するように動作可能にされる。そのような方法は、例えば、a)アプリケーションを平面内のZ順序の上端に移動すること、b)アプリケーションを平面内のZ順序の下部に移動すること、およびc)アプリケーションのZ順序を、ディスプレイスタック中のそのアプリケーションの上のアプリケーションのすぐ上に変更することを含む。
上記で指摘したように、アプリケーションは、Z順序操作方法の呼出しを介してアプリケーションがZ順序内でどれほど遠くに移動することができるかに関して制限を課す特定の平面に属する。例えば、サブタイトルアプリケーションを上端に移動する方法を呼び出すことは、アプリケーションをサブピクチャ平面918(図9)内の最上端のアプリケーションサブタイトルアプリケーションにするが、その中で生成された視覚的要素は依然として、その平面内のアプリケーションによってグラフィックス平面912内にレンダリングされた視覚的要素によって遮られる(すなわち隠される)可能性がある。同様に、通常の対話式アプリケーションを底部に移動する方法を呼び出すことは、アプリケーションをグラフィックス平面912内の最下端にするが、依然としてアプリケーションをすべてのサブタイトルアプリケーションの上に残すことになる。
ブロック1416では、アプリケーションは、イベントを受信し、アプリケーションのZ順序が変化したという通知を提供する。別法として、そのような通知は、アプリケーションが最上端のアプリケーションに遷移したとき、または最上端のアプリケーションから遷移したときに受信されるように構成される。そのような通知は、例えば、メニュー生成アプリケーションによって生成されたメニューが最高のZ順序を有する位置に移動したときにゲームアプリケーションがそれ自体を休止することを可能にする。
例示的方法はブロック1418に進み、アプリケーションからの視覚的要素が1つまたは複数のグラフィックスバッファにレンダリングされる。レンダリングは優先順位順に実施され、ほとんどのシナリオでは、優先順位はフォーカスされたアプリケーションで開始し、その後に、ディスプレイの上端から下方向に逆Z順序で残りのアプリケーションが続く。描画(すなわち2次元「2D」描画)は、アプリケーションのマークアップ(例えば図1のマークアップ120)内の「キャンバス」オブジェクトに描画することによって処理され、次いでそれが、PNG(Porable Network Graphics)ファイルのレンダリングとほぼ同じ方式でグラフィックスバッファにレンダリングされる。
バッファリングステップは、図14に示される例示的方法で構成され、その結果、アプリケーションは、それぞれのアプリケーションイベントキュー内の周期的レンダリングイベントに対応する作業項目をポストすることによってレンダリングされる。この構成で使用することのできるイベントキューおよび関連する方法は、図5〜8に示され、付随する本文で説明される。
作業項目のポスティングは、アプリケーションフレームのレンダリングが作業項目タイムアウトの対象となることを意味する。それに応じてアプリケーションの2重バッファリングが実施され、優先順位がプレイバックシステムの別の所に配置された場合に新しいアプリケーションフレームが各ビデオフレームについて常にはレンダリングされない可能性に対処される。そのような場合、新しいフレームが完了するまで、最新の利用可能なフレームが引き続き示されることになる。
ブロック1421では、ディスプレイを合成する前に、各アプリケーションがチェックされ、そのマークアップ(例えば図1のマークアップ120)内に<clearrect>要素を含むかどうかが確認される。そのような要素は、メインビデオ平面925をそれを介して見ることができるアプリケーションによって生成されたグラフィックス内に開口(すなわち「穴」)を生成するために含まれる。<clearrect>要素は矩形の開口を生成するが、特定の設定の要件に応じて、他の規則的幾何学的形状、不規則的形状、および他の任意の形状も使用可能である。
<clearreet>や他のそのような開口生成要素などの要素は、アプリケーションが方法のブロック1418でレンダリングされる時にはグラフィックスバッファに含まれない。その代わりに、穴は、合成中に<clearrect>要素を有するアプリケーションよりも低いZ順序を有するアプリケーションで開けられ、それによって、メインビデオ平面925がアプリケーション内の穴を通じて見える。レンダリングは優先順位式に実施されるので、アプリケーションがバッファにレンダリングされる時に<clearrect>要素を実装するのは現実的ではない。そのように実装され、低い優先順位のアプリケーションが直ちに更新されなかった場合、穴が不適切に出現する可能性がある。このことは、例えば、Z順序が変化した場合、または低い優先順位のアプリケーションがタイムアウト中に更新を待機していた間に<clearrect>要素を有するアプリケーションが終了した場合に生じる。
ブロック1425では、図12で示し、付随する本文で説明したように、アプリケーションがボトムアップに、Z順序で合成される。ほとんどの設定では、単純なペインタのアルゴリズムが使用可能であり、各アプリケーションのマークアップが、各アプリケーションについての最も新しくバッファリングされたフレームを使用してグラフィックス平面912にレンダリングされる。さらに、上述のように、<clearrect>または他の開口生成要素が、合成ステップ中に実装される。例示的方法はブロック1433で終了する。
図15は、例示的プレイバックシステム1500のブロック図である。ナビゲーションマネージャ1505は、対話式メディア環境内で動作するN個のアプリケーションの厳密な順序を維持する。各アプリケーションには0からN−1のZ順序が与えられ、すべてのアプリケーションは固有のZ順序を有する。順序付けでギャップは存在せず、2つのアプリケーションが同じZ順序を有することはない。Z順序0は、ディスプレイ1512の下端に現れる、Z順序N−1は上端に現れる。ビデオタイトルの時間が進行するときに、ナビゲーションマネージャ1505は、上述のように、アプリケーションについてのZ順序を、プレイリスト(例えば図2のプレイリスト290)で設定された初期Z順序値から動的に維持する。
ナビゲーションマネージャ1505は、プレゼンテーションエンジン1515およびグラフィックスレンダリングエンジン1518に結合される。ほとんどの設定では、プレゼンテーションエンジン1515は、グラフィックス平面セット900中の平面のそれぞれをグラフィックスレンダリングエンジン1518に提示するように構成され、グラフィックスレンダリングエンジン1518は、ディスプレイ1512上への平面およびその中のアプリケーションの合成を実施する。
プレゼンテーションエンジン1515とグラフィックスレンダリングエンジン1518の間に、参照番号1522、1526、および1528でそれぞれ示される1つまたは複数のグラフィックスバッファ1、2、..Nが配設される。N個のグラフィックスバッファは、それぞれのアプリケーションと1対1に対応付けられるように構成される。すなわちNbuffers=Napplicationである。代替構成では、単一のバッファ(参照番号1540で示される)がすべてのアプリケーションに対して使用され、またはグラフィックスバッファが、アプリケーションと等しくない数で対応付けられる。
図が見やすいように、かつ上記の説明での例示を簡単にするために、データ、プログラム、およびオペレーティングシステムなどの他の実行可能プログラム構成要素を離散的ブロック、ボックス、または他の要素で示したが、そのようなプログラムおよび構成要素は、様々な時間に、使用される任意のハードウェアホストの様々なストレージ、メモリ、または処理構成要素に存在することができ、そのようなホストハードウェア内の1つまたは複数のプロセッサで実行されることに留意されたい。
対話式メディア環境でアプリケーション状態を管理する様々な例示的構成および方法を図示および説明したが、本明細書に添付の特許請求の範囲の範囲は、記載の特定の特徴、構成、または方法に必ずしも限定されないものとすることを理解されたい。むしろ、特定の特徴、構成、または方法は、より具体的に特許請求される対話式メディア環境での管理されたアプリケーション状態を実装する例示的形態として開示される。
対話式メディア環境で使用されるアプリケーションを構成する要素の例示的ブロック図である。 複数のマークアップ文書およびスクリプトの間の関係を示す例示的な図である。 対話式コンテンツプロセッサ、ビデオコンテンツプロセッサ、およびミキサを含む例示的な対話式メディアプレーヤのブロック図である。 第2の例示的な対話式メディアプレーヤのブロック図である。 複数のイベントキューおよび単一のアプリケーションスレッドを有する例示的構成のブロック図である。 まずBeginTime、次いで作業項目がイベントキューに挿入された時間による作業項目の順序付けを示す例示的イベントキューのブロック図である。 アプリケーションスレッドが2つの作業項目をイベントキューの端部に自動的に挿入する例示的構成のブロック図である。 対話式メディア環境で生じるイベントに関連する作業項目を待ち行列化する例示的方法の流れ図である。 例示的グラフィカル合成モデルで使用されるグラフィックス平面のセットの図である。 第1の例示的アプリケーション内の視覚的要素のZ順序を示す図である。 第2の例示的アプリケーション内の視覚的要素のZ順序を示す図である。 図10および11に示されるアプリケーションから生成される視覚的要素を有する合成後のディスプレイを示す図である。 アプリケーションが優先順位順にレンダリングされ、ボトムアップ順に合成される例示的構成を示す図である。 アプリケーションが優先順位順にレンダリングされ、ボトムアップ順に合成される例示的方法についての流れ図である。 例示的プレイバックシステムのブロック図である。

Claims (20)

  1. ディスプレイを合成する方法であって、
    対話式メディア環境(1250)で動作する複数のアプリケーションのそれぞれについてZ順序を維持するステップであって、前記Z順序が、前記ディスプレイ上の視覚的要素についての相対的順序を記述するステップと、
    アプリケーションに関連するそれぞれのグラフィックスバッファ(1528)に前記アプリケーションをレンダリングするステップであって、前記レンダリングが、フォーカスを有するアプリケーションで始まるアプリケーションによって実施され、最高のZ順序から最低のZ順序(1362)まで、前記複数のアプリケーション中の残りのアプリケーションで続行されるステップと、
    前記グラフィックスバッファ内の視覚的要素から前記ディスプレイを合成するステップであって、前記合成が、アプリケーションによって最低のZ順序から最高のZ順序まで(1352)実施されるステップと
    を含む方法。
  2. 初期Z順序がプレイリスト(290)で設定される請求項1に記載の方法。
  3. 前記レンダリングが、レンダリングした要素が表示のために合成される前に2重バッファリングされるように、2重バッファリング構成を使用するステップを含む請求項1に記載の方法。
  4. 前記対話式メディア環境が複数のディスプレイ平面(900)を含み、前記アプリケーションが、前記複数のディスプレイ平面(900)中のグラフィックス平面(912)にレンダリングされるように割り当てられる請求項1に記載の方法。
  5. 前記対話式メディア環境が、複数のディスプレイ平面(900)を含み、前記アプリケーションが、前記複数のディスプレイ平面(900)内のサブピクチャ平面(918)にレンダリングされるように割り当てられる請求項1に記載の方法。
  6. それぞれのグラフィックスバッファが、すべてのアプリケーションからの視覚的要素がレンダリングされる単一グラフィックスバッファとして維持される請求項1に記載の方法。
  7. ディスプレイと接続するためのプレイバックシステムであって、
    対話式メディア環境内で動作するアプリケーションについてのZ順序を維持するナビゲーションマネージャ(1505)であって、前記Z順序が、前記ディスプレイ上の視覚的要素についての相対的順序を記述するナビゲーションマネージャ(1505)と、
    前記アプリケーションによって生成された視覚的要素をバッファリングする1つまたは複数のグラフィックスバッファ(1528)と、
    前記ナビゲーションマネージャと動作可能に結合され、アプリケーションによる視覚的要素を逆Z順序で前記グラフィックスバッファにレンダリングするプレゼンテーションエンジン(1515)と、
    前記1つまたは複数のグラフィックスバッファから前記ディスプレイに関するフレームイメージを合成するグラフィックスレンダリングエンジン(1518)であって、前記合成が、アプリケーションによってZ順序で実施されるグラフィックスレンダリングエンジン(1518)と
    を備えるプレイバックシステム。
  8. 前記合成が、クリア開口要素をマークアップ中に有するアプリケーションよりも低いZ順序を有するすべてのアプリケーションのグラフィックスバッファ内に開口を開け、それによって前記開口を通じてビデオ平面(925)を見ることができるステップを含む請求項7に記載のプレイバックシステム。
  9. 前記開口が、複数の形状のうちの1つから選択される形状を有し、前記形状が、矩形、円形、卵型、および任意の形状を含む請求項8に記載のプレイバックシステム。
  10. 合成フレームイメージが、ビデオフレームごとのアプリケーションフレームを含む請求項7に記載のプレイバックシステム。
  11. 新しいアプリケーションフレームが利用不能である場合、前記アプリケーションフレームが、最も新しく利用可能となったアプリケーションフレームである請求項10に記載のプレイバックシステム。
  12. 電子装置内の1つまたは複数のプロセッサで実行されたとき、複数のN個のアプリケーションについての描画順序を設定する方法を実施するコンピュータ可読媒体において、戦記複数のアプリケーションの中の各アプリケーションが、ディスプレイ上の視覚的要素としてレンダリング可能であり、前記方法が、
    アプリケーションが前記ディスプレイ(1415)上のアプリケーションのZ順序を操作する1つまたは複数の方法を起動することを可能にするステップであって、前記Z順序が、前記ディスプレイ上のN個のアプリケーションについての相対的順序を記述し、Z順序の値が、0およびN−1によって束縛される組から選択されるステップと、
    前記アプリケーション(1418)を前記アプリケーションに関連するそれぞれのグラフィックスバッファにレンダリングするステップであって、前記レンダリングが、N−1で開始し、0で終了する逆Z順序でアプリケーションによって実施されるステップと
    を含む方法であるコンピュータ可読媒体。
  13. 前記レンダリングが、イベントキュー(515)に挿入される1つまたは複数の作業項目(535)を使用して実施される請求項12に記載のコンピュータ可読媒体。
  14. アプリケーションのZ順序が変化したとき、前記アプリケーションに通知(1416)を供給するステップをさらに含む方法である請求項12に記載のコンピュータ可読媒体。
  15. 前記レンダリングが、アプリケーションのマークアップ内のキャンバスオブジェクトに描画することを含む請求項12に記載のコンピュータ可読媒体。
  16. 前記キャンバスオブジェクトが、アプリケーションのそれぞれのグラフィックスバッファにレンダリングされる請求項15に記載のコンピュータ可読媒体。
  17. ペインタのアルゴリズムを使用して最新のバッファから前記ディスプレイ(1425)を合成するステップをさらに含む方法である請求項12に記載のコンピュータ可読媒体。
  18. 起動する前記方法が、アプリケーションを最高のZ順序に移動するステップを含む方法である請求項12に記載のコンピュータ可読媒体。
  19. 起動する前記方法が、アプリケーションを最低のZ順序に移動するステップを含む方法である請求項12に記載のコンピュータ可読媒体。
  20. 起動する前記方法が、移動するアプリケーションよりも1つ高いZ順序を有するアプリケーションのすぐ上の位置にアプリケーションを移動するステップを含む方法である請求項12に記載のコンピュータ可読媒体。
JP2008519421A 2005-07-01 2006-06-22 対話式メディア環境での複数アプリケーションのレンダリングおよび合成 Expired - Fee Related JP4965567B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US69594405P 2005-07-01 2005-07-01
US60/695,944 2005-07-01
US11/352,575 US8305398B2 (en) 2005-07-01 2006-02-13 Rendering and compositing multiple applications in an interactive media environment
US11/352,575 2006-02-13
PCT/US2006/024423 WO2007005327A2 (en) 2005-07-01 2006-06-22 Rendering and compositing multiple applications in an interactive media environment

Publications (3)

Publication Number Publication Date
JP2009505170A true JP2009505170A (ja) 2009-02-05
JP2009505170A5 JP2009505170A5 (ja) 2009-07-02
JP4965567B2 JP4965567B2 (ja) 2012-07-04

Family

ID=37588891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519421A Expired - Fee Related JP4965567B2 (ja) 2005-07-01 2006-06-22 対話式メディア環境での複数アプリケーションのレンダリングおよび合成

Country Status (5)

Country Link
US (1) US8305398B2 (ja)
EP (1) EP1899856A4 (ja)
JP (1) JP4965567B2 (ja)
KR (1) KR101311111B1 (ja)
WO (1) WO2007005327A2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
JP5010233B2 (ja) * 2006-10-20 2012-08-29 株式会社東芝 映像再生装置及び映像再生方法
US7689665B2 (en) * 2007-04-27 2010-03-30 Microsoft Corporation Dynamically loading scripts
US8379019B2 (en) * 2007-12-26 2013-02-19 Advanced Micro Devices, Inc. Fast triangle reordering for vertex locality and reduced overdraw
US8521842B2 (en) * 2008-02-29 2013-08-27 Microsoft Corporation Delivering composite media to a client application
US8472779B2 (en) * 2008-06-17 2013-06-25 Microsoft Corporation Concurrently displaying multiple trick streams for video
US8884983B2 (en) * 2008-06-30 2014-11-11 Microsoft Corporation Time-synchronized graphics composition in a 2.5-dimensional user interface environment
US8269821B2 (en) * 2009-01-27 2012-09-18 EchoStar Technologies, L.L.C. Systems and methods for providing closed captioning in three-dimensional imagery
US20120102411A1 (en) * 2010-10-25 2012-04-26 Nokia Corporation Method and apparatus for monitoring user interactions with selectable segments of a content package
US8847970B2 (en) 2012-04-18 2014-09-30 2236008 Ontario Inc. Updating graphical content based on dirty display buffers
CN102868919B (zh) * 2012-09-19 2016-03-30 上海基美文化传媒股份有限公司 交互式播放设备及播放方法
DE102013108478A1 (de) * 2013-08-06 2015-02-12 Endress+Hauser Process Solutions Ag Verfahren zur Erweiterung einer eingebetteten Softwarekomponente eines Feldgerätes
KR102124395B1 (ko) 2013-08-12 2020-06-18 삼성전자주식회사 그래픽스 처리 장치 및 방법
KR20150025594A (ko) * 2013-08-29 2015-03-11 삼성전자주식회사 멀티 이미지 레이어 컴포지트 방법
KR20150033162A (ko) * 2013-09-23 2015-04-01 삼성전자주식회사 컴포지터, 이를 포함하는 시스템온칩 및 이의 구동 방법
US9591295B2 (en) 2013-09-24 2017-03-07 Amazon Technologies, Inc. Approaches for simulating three-dimensional views
US9437038B1 (en) * 2013-09-26 2016-09-06 Amazon Technologies, Inc. Simulating three-dimensional views using depth relationships among planes of content
CN104702914A (zh) * 2015-01-14 2015-06-10 汉柏科技有限公司 一种监控视频的数据处理方法及系统
US10348997B2 (en) 2015-07-09 2019-07-09 Genetec Inc. Security video monitoring client
CN108650555B (zh) * 2018-05-15 2022-11-22 北京优酷科技有限公司 视频界面的展示、交互信息的生成方法、播放器及服务器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573252A (ja) * 1991-09-13 1993-03-26 Matsushita Electric Ind Co Ltd 動画表示ワークステーシヨン
JPH10126797A (ja) * 1996-10-14 1998-05-15 Sharp Corp 撮像装置
US5760780A (en) * 1996-01-31 1998-06-02 Hewlett-Packard Company Computer graphics system using caching of pixel Z values to improve rendering performance
US6069633A (en) * 1997-09-18 2000-05-30 Netscape Communications Corporation Sprite engine
US20020138593A1 (en) * 2001-03-26 2002-09-26 Novak Michael J. Methods and systems for retrieving, organizing, and playing media content
JP2002544544A (ja) * 1999-05-10 2002-12-24 アップル コンピュータ インコーポレイテッド 半透明層の描写
US20040027259A1 (en) * 2000-05-02 2004-02-12 Michael Soliman Method and device for compressing and/or decompressing data as well as for analyzing and representing data

Family Cites Families (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5195092A (en) 1987-08-04 1993-03-16 Telaction Corporation Interactive multimedia presentation & communication system
US5208745A (en) 1988-07-25 1993-05-04 Electric Power Research Institute Multimedia interface and method for computer system
WO1992021211A1 (en) 1991-05-21 1992-11-26 Videotelecom Corp. A multiple medium message recording system
US5452435A (en) 1993-03-31 1995-09-19 Kaleida Labs, Inc. Synchronized clocks and media players
US5515490A (en) 1993-11-05 1996-05-07 Xerox Corporation Method and system for temporally formatting data presentation in time-dependent documents
US5574934A (en) * 1993-11-24 1996-11-12 Intel Corporation Preemptive priority-based transmission of signals using virtual channels
JP2701724B2 (ja) * 1993-12-28 1998-01-21 日本電気株式会社 シナリオ編集装置
USRE44685E1 (en) * 1994-04-28 2013-12-31 Opentv, Inc. Apparatus for transmitting and receiving executable applications as for a multimedia system, and method and system to order an item using a distributed computing system
US5966121A (en) 1995-10-12 1999-10-12 Andersen Consulting Llp Interactive hypervideo editing system and interface
US5631694A (en) * 1996-02-01 1997-05-20 Ibm Corporation Maximum factor selection policy for batching VOD requests
US6240555B1 (en) * 1996-03-29 2001-05-29 Microsoft Corporation Interactive entertainment system for presenting supplemental interactive content together with continuous video programs
US5877763A (en) * 1996-11-20 1999-03-02 International Business Machines Corporation Data processing system and method for viewing objects on a user interface
US6128712A (en) 1997-01-31 2000-10-03 Macromedia, Inc. Method and apparatus for improving playback of interactive multimedia works
US6100881A (en) 1997-10-22 2000-08-08 Gibbons; Hugh Apparatus and method for creating interactive multimedia presentation using a shoot lost to keep track of audio objects of a character
US5956026A (en) * 1997-12-19 1999-09-21 Sharp Laboratories Of America, Inc. Method for hierarchical summarization and browsing of digital video
US6665835B1 (en) * 1997-12-23 2003-12-16 Verizon Laboratories, Inc. Real time media journaler with a timing event coordinator
US6453459B1 (en) 1998-01-21 2002-09-17 Apple Computer, Inc. Menu authoring system and method for automatically performing low-level DVD configuration functions and thereby ease an author's job
US6426778B1 (en) * 1998-04-03 2002-07-30 Avid Technology, Inc. System and method for providing interactive components in motion video
US6067638A (en) 1998-04-22 2000-05-23 Scientific Learning Corp. Simulated play of interactive multimedia applications for error detection
US6212595B1 (en) * 1998-07-29 2001-04-03 International Business Machines Corporation Computer program product for fencing a member of a group of processes in a distributed processing environment
JP3961693B2 (ja) 1998-09-28 2007-08-22 株式会社東芝 映像表示装置
US6189064B1 (en) * 1998-11-09 2001-02-13 Broadcom Corporation Graphics display system with unified memory architecture
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6384846B1 (en) * 1998-12-11 2002-05-07 Hitachi America Ltd. Methods and apparatus for rendering multiple images using a limited rendering resource
GB2344925A (en) 1998-12-16 2000-06-21 Memory Corp Plc Optical storage disc storing compressed and uncompressed data
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
CN100505076C (zh) 1999-03-30 2009-06-24 提维股份有限公司 多媒体可视的播放进度指示系统
US6340977B1 (en) 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
US6629150B1 (en) * 1999-06-18 2003-09-30 Intel Corporation Platform and method for creating and using a digital container
US20040220926A1 (en) 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
AU2773301A (en) * 2000-01-06 2001-07-16 Hd Media, Inc. System and method for distributing and controlling the output of media in publicspaces
US20020157103A1 (en) * 2000-01-07 2002-10-24 Deyang Song Method for digital media playback in a broadcast network
US20050251732A1 (en) 2000-01-20 2005-11-10 Interactual Technologies, Inc. System, method and article of manufacture for executing a multimedia event on a plurality of client computers using a synchronization host engine
US7367042B1 (en) 2000-02-29 2008-04-29 Goldpocket Interactive, Inc. Method and apparatus for hyperlinking in a television broadcast
CA2340144A1 (en) 2000-03-09 2001-09-09 Ethereal Minds, Inc. System and method for pre-loading still imagery data in an interactive multimedia presentation environment
US7725812B1 (en) * 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
US6628283B1 (en) * 2000-04-12 2003-09-30 Codehorse, Inc. Dynamic montage viewer
US7669238B2 (en) * 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
US7131143B1 (en) * 2000-06-21 2006-10-31 Microsoft Corporation Evaluating initially untrusted evidence in an evidence-based security policy manager
US6785729B1 (en) * 2000-08-25 2004-08-31 International Business Machines Corporation System and method for authorizing a network user as entitled to access a computing node wherein authenticated certificate received from the user is mapped into the user identification and the user is presented with the opprtunity to logon to the computing node only after the verification is successful
WO2002017179A1 (en) 2000-08-25 2002-02-28 4C Soft Inc Electronic study method using multimedia
US7200357B2 (en) * 2000-10-20 2007-04-03 Universal Electronics Inc. Automotive storage and playback device and method for using the same
US20020099738A1 (en) 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US7210037B2 (en) * 2000-12-15 2007-04-24 Oracle International Corp. Method and apparatus for delegating digital signatures to a signature server
US6728681B2 (en) 2001-01-05 2004-04-27 Charles L. Whitham Interactive multimedia book
US6792426B2 (en) 2001-01-10 2004-09-14 International Business Machines Corporation Generic servlet for browsing EJB entity beans
US6738911B2 (en) * 2001-02-02 2004-05-18 Keith Hayes Method and apparatus for providing client-based network security
AUPR464601A0 (en) 2001-04-30 2001-05-24 Commonwealth Of Australia, The Shapes vector
US20020188616A1 (en) 2001-06-07 2002-12-12 Chinnici Roberto R. Database access bridge system and process
CA2453137A1 (en) * 2001-07-06 2003-01-16 E-Genie Australia Pty Limited Method and system for computer software application execution
US6920613B2 (en) * 2001-08-27 2005-07-19 Xerox Corporation Video/text bi-directional linkage for software fault clearance applications
FR2829644A1 (fr) * 2001-09-10 2003-03-14 St Microelectronics Sa Procede securise de transmission de donnees multimedia
JP3852568B2 (ja) * 2001-09-11 2006-11-29 ソニー株式会社 マルチメディアプレゼンテーション作成装置および方法
US7356763B2 (en) * 2001-09-13 2008-04-08 Hewlett-Packard Development Company, L.P. Real-time slide presentation multimedia data object and system and method of recording and browsing a multimedia data object
US7161599B2 (en) * 2001-10-18 2007-01-09 Microsoft Corporation Multiple-level graphics processing system and method
US20040205479A1 (en) * 2001-10-30 2004-10-14 Seaman Mark D. System and method for creating a multimedia presentation
US20030152904A1 (en) * 2001-11-30 2003-08-14 Doty Thomas R. Network based educational system
US6925499B1 (en) * 2001-12-19 2005-08-02 Info Value Computing, Inc. Video distribution system using disk load balancing by file copying
JP3938307B2 (ja) * 2001-12-27 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示装置、表示方法、表示プログラム、および記録媒体
US20030142137A1 (en) * 2002-01-28 2003-07-31 International Business Machines Corporation Selectively adjusting the order of windows in response to a scroll wheel rotation
TWI247295B (en) 2002-03-09 2006-01-11 Samsung Electronics Co Ltd Reproducing method and apparatus for interactive mode using markup documents
US20030182364A1 (en) 2002-03-14 2003-09-25 Openwave Systems Inc. Method and apparatus for requesting and performing batched operations for web services
US7127700B2 (en) * 2002-03-14 2006-10-24 Openwave Systems Inc. Method and apparatus for developing web services using standard logical interfaces to support multiple markup languages
US7496845B2 (en) * 2002-03-15 2009-02-24 Microsoft Corporation Interactive presentation viewing system employing multi-media components
US7080043B2 (en) * 2002-03-26 2006-07-18 Microsoft Corporation Content revocation and license modification in a digital rights management (DRM) system on a computing device
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7496599B2 (en) 2002-04-30 2009-02-24 Microsoft Corporation System and method for viewing relational data using a hierarchical schema
US6928619B2 (en) * 2002-05-10 2005-08-09 Microsoft Corporation Method and apparatus for managing input focus and z-order
KR100866790B1 (ko) * 2002-06-29 2008-11-04 삼성전자주식회사 인터렉티브 모드에서의 포커싱 방법 및 그 장치
US20040034622A1 (en) * 2002-08-13 2004-02-19 Espinoza Danny Javier Applications software and method for authoring and communicating multimedia content in a multimedia object communication and handling platform
US7290057B2 (en) * 2002-08-20 2007-10-30 Microsoft Corporation Media streaming of web content data
US7038581B2 (en) * 2002-08-21 2006-05-02 Thomson Licensing S.A. Method for adjusting parameters for the presentation of multimedia objects
US20040107179A1 (en) * 2002-08-22 2004-06-03 Mdt, Inc. Method and system for controlling software execution in an event-driven operating system environment
KR100937793B1 (ko) 2002-09-12 2010-01-20 파나소닉 주식회사 기록매체, 재생장치, 재생방법, 기록방법
US7519616B2 (en) 2002-10-07 2009-04-14 Microsoft Corporation Time references for multimedia objects
US7840856B2 (en) 2002-11-07 2010-11-23 International Business Machines Corporation Object introspection for first failure data capture
KR100484181B1 (ko) * 2002-12-02 2005-04-20 삼성전자주식회사 멀티미디어 문서 저작 장치 및 방법
CA2414053A1 (en) 2002-12-09 2004-06-09 Corel Corporation System and method for manipulating a document object model
US7290263B1 (en) * 2002-12-19 2007-10-30 Extreme, Networks, Inc. Method and system for a scriptable command line interface
EP1588230A4 (en) * 2003-01-10 2008-05-07 Nexaweb Technologies Inc NETWORK ORIENTED COMPUTING SYSTEM AND METHOD
JP2004221900A (ja) 2003-01-14 2004-08-05 Sony Corp 画像情報復号装置及び画像情報復号方法
US7302057B2 (en) * 2003-01-31 2007-11-27 Realnetworks, Inc. Method and process for transmitting video content
US20040187157A1 (en) 2003-03-18 2004-09-23 Yen-Hwong Chong Multifunctional integrated multimedia viewer system
US7620301B2 (en) 2003-04-04 2009-11-17 Lg Electronics Inc. System and method for resuming playback
US6906643B2 (en) * 2003-04-30 2005-06-14 Hewlett-Packard Development Company, L.P. Systems and methods of viewing, modifying, and interacting with “path-enhanced” multimedia
US7739715B2 (en) * 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams
CN101026775B (zh) 2003-06-30 2012-08-22 松下电器产业株式会社 再现装置、记录方法和再现方法
WO2005008385A2 (en) * 2003-07-07 2005-01-27 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content
KR20050022072A (ko) 2003-08-26 2005-03-07 삼성전자주식회사 인터렉티브 데이터 처리방법 및 장치
US7511718B2 (en) * 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US7436535B2 (en) 2003-10-24 2008-10-14 Microsoft Corporation Real-time inking
US8065616B2 (en) * 2003-10-27 2011-11-22 Nokia Corporation Multimedia presentation editor for a small-display communication terminal or computing device
JP4170362B2 (ja) 2003-11-12 2008-10-22 松下電器産業株式会社 記録媒体、再生装置、記録方法、プログラム、再生方法
US7681114B2 (en) * 2003-11-21 2010-03-16 Bridgeborn, Llc Method of authoring, deploying and using interactive, data-driven two or more dimensional content
EP1536606A1 (fr) * 2003-11-27 2005-06-01 Nagracard S.A. Méthode d'authentification d'applications
RU2312412C2 (ru) * 2003-11-28 2007-12-10 Сони Корпорейшн Устройство воспроизведения и способ воспроизведения
US20050149729A1 (en) * 2003-12-24 2005-07-07 Zimmer Vincent J. Method to support XML-based security and key management services in a pre-boot execution environment
JP4166707B2 (ja) * 2004-01-20 2008-10-15 パイオニア株式会社 映像内容認識装置、録画装置、映像内容認識方法、録画方法、映像内容認識プログラム、および録画プログラム
JP4009634B2 (ja) * 2004-03-04 2007-11-21 日本電気株式会社 アクセス制御方法、アクセス制御システム、メタデータ制御機、及び送信系装置
US7509497B2 (en) * 2004-06-23 2009-03-24 Microsoft Corporation System and method for providing security to an application
US8201191B2 (en) * 2004-06-30 2012-06-12 Time Warner Cable Inc. Apparatus and methods for implementation of network software interfaces
US20060041522A1 (en) * 2004-08-18 2006-02-23 Xerox Corporation. Abstract document management systems and methods
KR20060125465A (ko) * 2005-06-02 2006-12-06 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 저장방법및 저장장치
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US7721308B2 (en) 2005-07-01 2010-05-18 Microsoft Corproation Synchronization aspects of interactive multimedia presentation management
US7941522B2 (en) 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US8020084B2 (en) 2005-07-01 2011-09-13 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US8656268B2 (en) 2005-07-01 2014-02-18 Microsoft Corporation Queueing events in an interactive media environment
US8108787B2 (en) 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 Microsoft Corporation Synchronization aspects of interactive multimedia presentation management
US20070006079A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation State-based timing for interactive multimedia presentations
US20070006238A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Managing application states in an interactive media environment
US20070006078A1 (en) 2005-07-01 2007-01-04 Microsoft Corporation Declaratively responding to state changes in an interactive multimedia environment
US20070174387A1 (en) * 2006-01-20 2007-07-26 International Business Machines Corporation Methods and apparatus for implementing real-time collective moderation of collaborative environments
US8495592B2 (en) * 2006-11-28 2013-07-23 International Business Machines Corporation Presenting completion progress status of an installer via join points

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573252A (ja) * 1991-09-13 1993-03-26 Matsushita Electric Ind Co Ltd 動画表示ワークステーシヨン
US5760780A (en) * 1996-01-31 1998-06-02 Hewlett-Packard Company Computer graphics system using caching of pixel Z values to improve rendering performance
JPH10126797A (ja) * 1996-10-14 1998-05-15 Sharp Corp 撮像装置
US6069633A (en) * 1997-09-18 2000-05-30 Netscape Communications Corporation Sprite engine
JP2002544544A (ja) * 1999-05-10 2002-12-24 アップル コンピュータ インコーポレイテッド 半透明層の描写
US20040027259A1 (en) * 2000-05-02 2004-02-12 Michael Soliman Method and device for compressing and/or decompressing data as well as for analyzing and representing data
US20020138593A1 (en) * 2001-03-26 2002-09-26 Novak Michael J. Methods and systems for retrieving, organizing, and playing media content

Also Published As

Publication number Publication date
EP1899856A4 (en) 2012-08-08
US20070002045A1 (en) 2007-01-04
KR101311111B1 (ko) 2013-10-14
KR20080024167A (ko) 2008-03-17
US8305398B2 (en) 2012-11-06
EP1899856A2 (en) 2008-03-19
WO2007005327A2 (en) 2007-01-11
WO2007005327A3 (en) 2007-06-21
JP4965567B2 (ja) 2012-07-04

Similar Documents

Publication Publication Date Title
JP4965567B2 (ja) 対話式メディア環境での複数アプリケーションのレンダリングおよび合成
US8108787B2 (en) Distributing input events to multiple applications in an interactive media environment
JP5425322B2 (ja) 対話型メディア環境におけるイベントのキューイング
CN101213540B (zh) 在交互式媒体环境中呈现和合成多个应用程序
KR101365829B1 (ko) 대화형 멀티미디어 프리젠테이션을 재생하는 방법을 수행하는 컴퓨터 실행가능 명령어들이 인코딩된 컴퓨터 판독가능 매체, 및 대화형 멀티미디어 프리젠테이션을 재생하는 프리젠테이션 시스템 및 장치
JP5015150B2 (ja) 対話式マルチメディア環境の状態変化への宣言式応答
JP5242387B2 (ja) インタラクティブ・メディア環境におけるアプリケーション状態の管理
JP5015149B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期方法
JP4959695B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
JP2008545335A5 (ja)
JP2009505170A5 (ja)
US20050021552A1 (en) Video playback image processing
KR101292770B1 (ko) 불확정 시작 시간을 가진 어플리케이션을 포함하는 av데이터의 재생 방법 및 장치
JP5619838B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
JP2009500909A5 (ja)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090513

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090513

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110912

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120329

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4965567

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150406

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees