JP5015150B2 - 対話式マルチメディア環境の状態変化への宣言式応答 - Google Patents

対話式マルチメディア環境の状態変化への宣言式応答 Download PDF

Info

Publication number
JP5015150B2
JP5015150B2 JP2008519404A JP2008519404A JP5015150B2 JP 5015150 B2 JP5015150 B2 JP 5015150B2 JP 2008519404 A JP2008519404 A JP 2008519404A JP 2008519404 A JP2008519404 A JP 2008519404A JP 5015150 B2 JP5015150 B2 JP 5015150B2
Authority
JP
Japan
Prior art keywords
application
presentation
content
time
media
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.)
Expired - Fee Related
Application number
JP2008519404A
Other languages
English (en)
Other versions
JP2009501459A (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 JP2009501459A publication Critical patent/JP2009501459A/ja
Application granted granted Critical
Publication of JP5015150B2 publication Critical patent/JP5015150B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • G06F16/438Presentation of query results
    • G06F16/4387Presentation of query results by the use of playlists
    • G06F16/4393Multimedia presentations, e.g. slide shows, multimedia albums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/322Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier used signal is digitally coded
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8543Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Stored Programmes (AREA)

Description

本願は、参照により本明細書に組み込まれる2005年7月1日出願の仮出願第60/695944号の特典を主張するものである。
マルチメディアプレーヤは、ユーザによって消費されるビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツ(「マルチメディアプレゼンテーション」)の組合せをレンダリングする装置である。現在のところ、DVDプレーヤなどのマルチメディアプレーヤは、ビデオコンテンツの再生中のユーザ対話(一般には、ビデオコンテンツ再生が、再生速度調節以外のユーザ入力を受け取るために中断される)を提供する場合であったとしても、あまりそれを提供しない。例えば、DVDプレーヤのユーザは一般に、音声解説、俳優の経歴、ゲームなどの機能をユーザが選択および受領することを可能にするオプションを含むメニューに戻るために、ユーザが再生中のムービーを停止しなければならない。
対話式マルチメディアプレーヤは、従来型ビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツと対話式コンテンツの組合せ(「対話式マルチメディアプレゼンテーション」)を同時にレンダリングする装置である(そのような装置は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せを含むことができる)。任意のタイプの装置が対話式マルチメディアプレーヤとなることができるが、商業的に価値のある対話式マルチメディアプレゼンテーションの作成およびそれを求める消費者要求を可能にするように、光学式メディアプレーヤ(例えば、DVDプレーヤ)、コンピュータ、および他の電子装置が特によく配置される。それらは、大量の比較的安価なポータブルデータストレージへのアクセスを提供するからである。
対話式コンテンツは一般に、単独で、あるいは他のビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツと同時に提示可能な任意のユーザ選択可能な可視オブジェクトまたは可聴オブジェクトである。可視オブジェクトの1つの種類は、ビデオコンテンツ内のある物、例えばムービー中に現れる人、車、または建物を識別および/または追従するのに使用することのできる円などのグラフィカルオブジェクトである。可聴オブジェクトの1つの種類は、リモートコントロールやマウスなどの装置を使用して円などの可視オブジェクトをユーザが選択したことを示すために再生されるクリック音である。対話式コンテンツの他の例は、限定はしないが、メニュー、キャプション、およびアニメーションを含む。
対話式マルチメディアプレーヤおよび対話式マルチメディアプレゼンテーションへの投資を高めるために、対話式マルチメディアプレゼンテーションの対話式コンテンツ構成要素とそのようなプレゼンテーションの従来型ビデオコンテンツ構成要素、オーディオコンテンツ構成要素、またはデータコンテンツ構成要素との正確な同期を保証することが望ましい。正確な同期は、ビデオコンテンツ構成要素、オーディオコンテンツ構成要素、またはデータコンテンツ構成要素の予測可能でグリッチのない再生を優先する。例えば、円がムービー中の車の周りに提示されるとき、ムービーは一般に、円が描かれるのを待つために休止すべきではなく、円は、車が移動するときに車に追従すべきである。
多くの対話式マルチメディア環境が、「シン(thin)」プレーヤ、すなわち、しばしばコスト上の理由で、処理能力、メモリ、および他の資源に関して意図的に資源が制約されたコンピューティングプラットフォーム上で現在実装されており、または実装が予定されている。利用可能な資源を効率的に利用するために、プレーヤ上で動作するアプリケーションが宣言型の手法を使用することが望ましい可能性があり、しばしばその結果、より単純でプロセッサインテンシブ(processor intensive)でないプログラミングが得られる。
宣言型プログラミングパラダイムでは、所望の結果を達成するのに必要なセマンティクスが、結果の記述において暗黙的である。通常、所望の結果を得るのに別々の手続きを提供する(すなわち、スクリプトを書き、実行可能コードを埋め込む)ことは不要である。アプリケーション作者は、宣言型プログラミングを使用して、通常はアサーションの形で表現される宣言型コンテンツを生成する。
例えば、ウェブページは、ページが何に見えるべきか、例えばタイトル、フォント、テキスト、イメージを記述するが、実際にどのようにグラフィックスおよびウェブページをコンピュータディスプレイ上にレンダリングするかを記述しないので、ウェブページは多くの場合宣言型であると考えられる。ブラウザや対話式メディアプレーヤアプリケーションなどの別のアプリケーションは、宣言型コンテンツを取り、作者の目的に合致するようにグラフィックスをレンダリングする。
宣言型手法は、対話式メディアプレーヤを制御または操作するために実行すべきアルゴリズムをプログラマが指定することが一般に必要となる、Fortran、C、Javaなどの従来型言語を使用する手続型手法(「命令型」手法とも呼ばれる)とは対照的である。したがって、宣言型プログラムは目標を明示的にし、アルゴリズムを暗黙的なまま残し、一方、命令型プログラムはアルゴリズムを明示的にし、目標を暗黙的なまま残す。アプリケーションは純粋に宣言型または純粋に手続型である必要はないことに留意されたい。宣言型アプリケーションはしばしば、それ自体手続型の性質を持つスクリプトを利用し、手続型オブジェクトを宣言型アプリケーションに埋め込むことができる。
宣言型プログラミング言語の一般的な例は、HTML(HyperText Markup Language)およびXML(eXtensible Markup Language)を含む。これらはどちらも、テキストと「タグ」と呼ばれるテキストを補足または記述する情報とを組み合わせるマークアップ言語である。XMLは、許可された用途に関して記述および定義されるタグのユーザ作成をサポートすることによる拡張性のために、グラフィックス、ユーザインターフェース、ウェブサービス(電子ショッピングやウェブ検索など)、および他の機能を作成するのにますます使用されつつある新しい言語である。
したがって、XMLは、アプリケーションがユーザに対する対話式の体験を生成するための柔軟かつ直接的なツールを提供する。しかし、マークアップ言語に固有の宣言型の性質のために、現在のところ、対話式マルチメディア環境の変化に応答することのできるアプリケーションを作者が書くことは難しいことがある。すなわち、対話式マルチメディアは通常、プレーヤ上で動作するアプリケーションの状態がビデオコンテンツが進行するときに変化し、システム(すなわちプレーヤとそのアプリケーション)がユーザ入力などのイベントを受け取る動的環境で動作する。したがって、多くの対話式マルチメディア構成は非常に満足に実施されるが、高程度の資源効率を維持しながら、宣言型手法を使用する構成が環境の状態変化を取り込み、それに応答することができることが依然として望ましい。
特許請求される対象は、特定の対話式マルチメディアプレゼンテーションシステムまたはその態様の欠点のいずれかまたはすべてを解決する実装に限定されないことを理解されよう。
宣言型言語アプリケーション命令を使用して、対話式マルチメディアプレゼンテーションの対話式コンテンツを再生することに関連するアクションが、特定のメディアオブジェクトの状態変化に基づいて条件付きでトリガされる。メディアオブジェクトは、例えば、対話式マルチメディアプレゼンテーションで通常はビデオと同時に提示されるユーザ選択可能な可視オブジェクトまたは可聴オブジェクトを含む。ある宣言型アプリケーション命令は、メディアオブジェクトの特徴を指定し、別の宣言型アプリケーション命令は、1つまたは複数の属性状態変化に基づく対話式コンテンツの再生またはレンダリングに関連するアクションを指定する。ある例示的実施例では、アプリケーション命令、メディアオブジェクト、および/または特徴に関連するノードを含む、文書オブジェクトモデル(「DOM」)などのアプリケーションの構造化表現に照会することによって実施例に状態変化が検出される。状態変化が検出されたとき、指定のアクションのうちの1つまたは複数がトリガされ、それによって状態変化に対して宣言式に応答する。
例示的実施例では、コンテンツ要素属性が、DOMとして構成され、XPATHクエリを使用して反復的に内観されるforeground、enabled、focused、actioned、ポインタ、および値から選択されたものを含む。これらの属性に関連する値は通常、対話式メディアプレゼンテーションの途中に変化し、そのような値は、ユーザ対話またはイベントが対話式マルチメディアプレゼンテーションで動作するアプリケーションにどのように配布されるかを決定する。
この概要は、概念の抜粋を単純化した形で導入するために与えられる。この概念は、発明を実施するための最良の形態のセクションでさらに説明される。この概要に記載されたもの以外の要素またはステップが可能であり、要素またはステップは、必ずしも必要であるわけではない。この概要は、特許請求される対象の主な特徴または不可欠な特徴を識別するためのものではなく、特許請求される対象の範囲を決定する際の助けとして使用するためのものでもない。
一般には、対話式マルチメディアプレゼンテーションは、ビデオコンテンツ構成要素および対話式コンテンツ構成要素を含む。ビデオコンテンツ構成要素を例示のためにムービーと呼ぶが、実際には、ビデオコンテンツ構成要素はビデオ、オーディオ、データ、またはそれらの任意の組合せでよい。
タイミング信号に基づく速度での対話式コンテンツマネージャによるレンダリングのために配置される、プレゼンテーションの対話式コンテンツ構成要素は、1つまたは複数のアプリケーションの形である。アプリケーションは、宣言型形式(例えばXML「マークアップ」)またはスクリプト形式の命令を含む。アプリケーション命令が、しばしばビデオコンテンツ構成要素を伴う、ユーザに対するメディアオブジェクトのプレゼンテーションを編成、フォーマット、および同期するために提供される。アプリケーションのスクリプト構成要素とマークアップ構成要素はどちらも、それぞれスクリプトAPI(アプリケーションプログラミングインターフェース)またはマークアップAPIを使用することによって様々な方法またはサービスを起動することができる。
本明細書で議論される方法、システム、機器、および製品は、宣言型形式のアプリケーション命令を使用して、対話式マルチメディアプレゼンテーションの対話式コンテンツ構成要素を再生することに関連するアクションをトリガする。上述のように使用可能なアプリケーション命令の例は、マークアップ要素および属性を含む。メディアオブジェクトに関連するコンテンツ要素のスタイル属性または非スタイル属性によってメディアオブジェクトの特徴を指定することができる。1つまたは複数のXMLスキーマによっていくつかの有用な属性が定義される。例えば、DVD Forumによって公表された1つまたは複数のXMLスキーマは、対話式高精細度DVDムービーの再生中に受信されたユーザ入力に基づいて値を変更する属性を記述する。タイミング要素、スタイル要素、およびアニメーション要素内で、対話式コンテンツの再生に関連するアクションをさらに指定することができる。このようにして使用可能ないくつかの要素が、DVD Forumによって公表されたXMLスキーマに記述される。
World Wide Web Consortium(「W3C」)によって発行されたSynchronized Multimedia Integration Language(「SMIL」)に関するXMLスキーマによって他の要素が定義される。XPATHクエリを使用して、DOMsなどのアプリケーションの構造化表現に照会し、属性の値およびそのような値の変化を検出することができる。
次に、同様の番号が同様の構成要素を示す図面を参照すると、図1は、対話式マルチメディアプレゼンテーションシステム(「プレゼンテーションシステム」)100の単純化した機能ブロック図である。プレゼンテーションシステム100は、オーディオ/ビデオコンテンツ(「AVC」)マネージャ102、対話式コンテンツ(「IC」」)マネージャ104、プレゼンテーションマネージャ106、タイミング信号管理ブロック108、およびミキサ/レンダラ110を含む。一般に、設計の選択は、プレゼンテーションシステム100の特定の機能がどのように実装されるかを決定する。ハードウェア、ソフトウェア、またはファームウェア、あるいはそれらの組合せを使用してそのような機能を実装することができる。
動作の際に、プレゼンテーションシステム100は、対話式マルチメディアプレゼンテーションコンテンツ(「プレゼンテーションコンテンツ」)120を処理する。プレゼンテーションコンテンツ120は、ビデオコンテンツ構成要素(「ビデオ構成要素」)122および対話式コンテンツ構成要素(「IC構成要素」)124を含む。必ずというわけではないが、ビデオ構成要素122およびIC構成要素124は一般に、それぞれAVCマネージャ102およびICマネージャ104によって別々のデータストリームとして処理される。
プレゼンテーションシステム100はまた、ユーザ(図示せず)に対するプレゼンテーションコンテンツ120の再生プレゼンテーション127としてのプレゼンテーションも実施する。再生プレゼンテーション127は、ミキサ/レンダラ110によって生成され、ディスプレイやスピーカ(図示せず)などの装置を介してユーザが受信可能であるプレゼンテーションコンテンツ120に関連する可視情報および/または可聴情報を表す。議論のために、プレゼンテーションコンテンツ120および再生プレゼンテーション127が任意のフォーマットの高精細度DVDムービーコンテンツを表すと仮定する。しかし、プレゼンテーションコンテンツ120および再生プレゼンテーション127は現在周知の、または後に開発される任意のタイプの対話式マルチメディアプレゼンテーションでよいことを理解されよう。
ビデオ構成要素122は、プレゼンテーションコンテンツ120の従来型ビデオ構成要素、オーディオ構成要素、またはデータ構成要素を表す。例えば、ムービーは一般に1つまたは複数のバージョン(例えば、熟年の聴衆向けのバージョン、若い聴衆向けのバージョン)、各タイトルに関連する1つまたは複数のチャプタ(図示せず)を有する1つまたは複数のタイトル131(以下でプレゼンテーションマネージャ106に関連してタイトルをさらに論じる)、1つまたは複数のオーディオトラック(例えば、1つまたは複数の言語で、字幕付きまたは字幕なしでムービーを再生することができる)、およびディレクタの解説、追加の場面、予告編などの追加の機能を有する。タイトルとチャプタの区別は純粋に論理的な区別であることを理解されよう。例えば、単一の認識されるメディアセグメントは単一のタイトル/チャプタの一部でよく、または複数のタイトル/チャプタから構成することができる。適用可能な論理的区別の決定は、コンテンツオーサリングソース次第である。ビデオ構成要素122をムービーと呼ぶが、実際にはビデオ構成要素122はビデオ、オーディオ、データ、またはそれらの組合せでよいことも理解されよう。
ビデオ構成要素122を形成するビデオ、オーディオ、またはデータのサンプルのグループをクリップ123と呼ぶ(クリップ123がビデオ構成要素122、AVCマネージャ102、およびプレイリスト128内に示されている)。AVCマネージャ102を参照すると、クリップ123に関連する情報が1つまたは複数のメディアソース160から受信され、デコーダブロック161で復号化される。メディアソースは、ビデオ、オーディオ、またはデータが導出され、または得られる任意の装置、位置、またはデータである。メディアソースの例は、限定はしないが、特定のビデオ、オーディオ、またはデータの格納位置を参照するネットワーク、ハードドライブ、光学的媒体、代替物理ディスク、およびデータ構造を含む。
デコーダブロック161は、メディアソース160から受信される情報から、レンダリング可能なビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツを取り出すのに使用される任意の装置、技法、またはステップを表す。デコーダブロック161は、例えばエンコーダ/デコーダ対、デマルチプレクサ、またはデクリプタを含むことができる。デコーダとメディアソースとの間の1対1の関係が示されているが、1つのデコーダが複数のメディアソースにサービスすることができ、逆も同様であることを理解されよう。
オーディオ/ビデオコンテンツデータ(「A/Vデータ」)132は、AVCマネージャ102によるレンダリングのために準備され、ミキサ/レンダラ110に送信されたビデオ構成要素122に関連するデータである。A/Vデータ134のフレームは一般に、各アクティブクリップ123について、クリップの一部のレンダリングを含む。特定のフレームでレンダリングされるクリップの厳密な部分または量は、クリップのビデオコンテンツ、オーディオコンテンツ、またはデータコンテンツの特徴、あるいはクリップを符号化または復号化するのに使用されるフォーマット、技法、またはレートなどのいくつかの要素に基づく可能性がある。
再びプレゼンテーションコンテンツ120を参照すると、IC構成要素124は、ユーザ選択可能な可視オブジェクトまたは可聴オブジェクトであり、任意選択でビデオ構成要素122と同時に提示可能であるメディアオブジェクト125と、可視オブジェクトまたは可聴オブジェクトを提示するための任意の命令(アプリケーション155として図示し、以下でさらに論じる)とを含む。メディアオブジェクト125は静的でよく、またはアニメーション化することができる。メディアオブジェクトの例はとりわけ、ビデオサンプルまたはクリップ、オーディオサンプルまたはクリップ、グラフィックス、テキスト、およびそれらの組合せを含む。
メディアオブジェクト125は1つまたは複数のソース(図示せず)から発信される。ソースは、メディアオブジェクトが導出され、または得られる任意の装置、位置、またはデータである。メディアオブジェクト125に関するソースの例は、限定はしないが、特定のメディアオブジェクトの格納位置を参照するネットワーク、ハードドライブ、光学媒体、代替物理ディスク、およびデータ構造を含む。メディアオブジェクト125のフォーマットの例は、限定はしないが、portable network graphics(「PNG」)、joint photographic experts group(「JPEG」)、moving picture experts group(「MPEG」)、multiple−image network graphics(「MNG」)、audio video interleave(「AVI」)、extensible markup language(「XML」)、hypertext markup language(「HTML」)、extensible HTML(「XHTML」)、extensible stylesheet language(「XSL」)、およびWAVを含む。
アプリケーション155は、プレゼンテーションシステム100がそれによってユーザにメディアオブジェクト125を提示する機構を提供する。アプリケーション155は、データに対する所定のオペレーションを電子的に制御する任意の信号処理方法または格納命令を表す。議論のために、IC構成要素124は、図2および3を参照しながら以下でさらに論じる3つのアプリケーション155を含むと仮定する。第1アプリケーションは、ムービーの前に著作権表示を提示し、第2アプリケーションは、ムービーの視覚的側面と同時に、複数のユーザ選択可能項目を有するメニューを提供する一定のメディアオブジェクトを提示し、第3アプリケーションは、ムービー内に現れる1つまたは複数の項目(例えば人、車、建物、または製品)を識別および/または追従するのに使用することのできるグラフィックオーバーレイ(円など)を提供する1つまたは複数のメディアオブジェクトを提示する。
対話式コンテンツデータ(「ICデータ」)134は、ICマネージャ104によるレンダリングのために準備され、ミキサ/レンダラ110に送信されたIC構成要素124に関連するデータである。各アプリケーションは、アプリケーションをレンダリングすることに関連する1つまたは複数の作業項目(図示せず)を保持する関連キュー(図示せず)を有する。
AVCマネージャ104とICマネージャ102の両方と通信するように構成されるプレゼンテーションマネージャ106は、プレゼンテーションコンテンツ120の処理、およびユーザに対する再生プレゼンテーション127のプレゼンテーションを実施する。プレゼンテーションマネージャ106は、プレイリスト128へのアクセスを有する。プレイリスト128はとりわけ、ユーザに提示可能なクリップ123の時間順のシーケンスおよびアプリケーション155(メディアオブジェクト125を含む)を含む。1つまたは複数のタイトル131を形成するようにクリップ123およびアプリケーション155/メディアオブジェクト125を構成することができる。例示のために、1つのタイトル131が本明細書で議論される。プレイリスト128は、extensible markup language(「XML」)文書、または別のデータ構造を使用して実装することができる。
プレゼンテーションマネージャ106は、プレイリスト128を使用して、タイトル131に関するプレゼンテーションタイムライン130を確認する。概念上、プレゼンテーションタイムライン130は、特定のクリップ123およびアプリケーション155がユーザに提示可能である、タイトル131内の時間を示す。クリップ123のプレゼンテーションとアプリケーション155との間の例示的関係を示すサンプルプレゼンテーションタイムライン130が、図2に関連して図示され、議論される。ある環境では、プレイリスト128および/またはプレゼンテーションタイムライン130を使用してビデオコンテンツタイムライン(「ビデオタイムライン」)142および対話式コンテンツタイムライン(「ICタイムライン」)144を確認することも有用である。
プレゼンテーションマネージャ106は、限定はしないがプレゼンテーションタイムライン130についての情報を含む情報をAVCマネージャ102およびICマネージャ104に提供する。プレゼンテーションマネージャ206からの入力に基づいて、AVCマネージャ102は、レンダリングのためのA/Vデータ132を準備し、ICマネージャ104は、レンダリングのためのICデータ134を準備する。
タイミング信号管理ブロック108は様々なタイミング信号158を生成し、それが、それぞれAVCマネージャ102およびICマネージャ104によるA/Vデータ132およびICデータ134の準備および生成のためのタイミングを制御するのに使用される。具体的には、A/Vデータ132およびICデータ134のフレームレベル同期を達成するのにタイミング信号158が使用される。タイミング信号管理ブロック108およびタイミング信号158の詳細を、図4に関連して以下でさらに論じる。
ミキサ/レンダラは、ビデオ平面(図示せず)内でA/Vデータ132をレンダリングし、グラフィックス平面(図示せず)内でICデータ134をレンダリングする。必ずというわけではないが、グラフィックス平面が一般にビデオ平面上に重ねられ、ユーザに対する再生プレゼンテーション127が生成される。
引き続き図1を参照すると共に、図2は、プレイリスト128内のタイトル131に関するサンプルプレゼンテーションタイムライン130の図である。時間が水平軸220上に示されている。ビデオ構成要素122(クリップ123が示されている)およびIC構成要素124(メディアオブジェクト125を提示するアプリケーション155が示されている)についての情報が垂直軸225上に示されている。ビデオ構成要素122に関して、第1ビデオクリップ(「ビデオクリップ1」)230と第2ビデオクリップ(「ビデオクリップ2」)250の2つのクリップ123が示されている。
図1に関連して上記で述べたように、IC構成要素124に関して、第1アプリケーションは、著作権表示260を含む1つまたは複数のメディアオブジェクト(例えばイメージおよび/またはテキスト)を提示する任を担う。第2アプリケーションは、メニュー280のユーザ選択可能項目(例えば関連するテキストまたはグラフィックスを伴うボタン)を提供する一定のメディアオブジェクトを提示する任を担う。第3アプリケーションは、グラフィックオーバーレイ290を提供する1つまたは複数のメディアオブジェクトを提示する任を担う。図示するように、メニュー280が、ビデオクリップ1 230およびビデオクリップ2 250と同時に表示され、グラフィックオーバーレイ290は、ビデオクリップ1 230およびメニュー280と同時に表示可能である。
タイトル131がユーザに提示可能である、水平軸220に沿う特定の時間量は、タイトル131の再生期間292と呼ばれる。再生期間292内の特定の時間はタイトル時間と呼ばれる。4つのタイトル時間(「TT」)TT1 293、TT2 294、TT3 295、TT4 296がプレゼンテーションタイムライン130上に示されている。タイトルを1回再生することができ、または(例えばループ式に)複数回再生することができるので、再生期間292は、タイトル131の1回の反復に基づいて求められる。限定はしないが所定の再生速度(例えば通常の再生速度または1x再生速度)、所定のフレームレート、または所定のタイミング信号ステータスを含む任意の所望の基準に関して再生期間292を求めることができる。再生速度、フレームレート、およびタイミング信号は図4に関連して以下でさらに論じる。
ディスプレイ技法や、各タイトルについてのクリップおよびメディアオブジェクト間の再生シーケンスおよびタイミング関係に関する特定の規則などの実装特有の要素が、タイトルの再生期間およびその中のタイトル時間の厳密な値に影響を及ぼす可能性があることを理解されよう。再生期間およびタイトル時間という用語は、すべてのそのような実装特有の詳細を包含するものとする。
IC構成要素124に関連するコンテンツが提示可能であるタイトル時間/その時間内で提示可能であるタイトル時間は一般に所定のものであるが、再生プレゼンテーション127が再生中である間のユーザ入力のみに基づいてユーザがそのようなコンテンツと対話するときに行われるアクションを決定できることを理解されよう。例えば、ユーザは、再生プレゼンテーション127の再生中に、一定のアプリケーション、メディアオブジェクト、および/またはそれに関連する追加のコンテンツを選択、活動化、または非活動化することができる。
再生期間292内の他の時間および/または期間も本明細書で定義され、論じられる。ビデオ構成要素122に関連する特定のコンテンツが再生される再生期間292の開始時間および終了時間によってビデオプレゼンテーション間隔240が定義される。例えば、ビデオクリップ1 230は、タイトル時間TT2 294とTT4 296の間のプレゼンテーション間隔240を有し、ビデオクリップ2 250は、タイトル時間TT3 295とTT4 296との間のプレゼンテーション間隔240を有する。アプリケーションプレゼンテーション間隔、アプリケーション再生期間、ページプレゼンテーション間隔、およびページ期間も、図3に関連して以下で定義され、論じられる。
引き続き図1および2を参照すると共に、図3は、単一アプリケーション155の機能ブロックダイアグラムである。アプリケーション155は一般に、メディアオブジェクト260、280、および290(図2に示す)を提示する任を担うアプリケーションを表す。アプリケーション155は、コンテンツ命令302、タイミング命令306、スクリプト命令308、スタイル命令310、メディアオブジェクト命令312、およびイベント命令360を含む命令304(以下でさらに論じる)を含む。アプリケーション155は、0個以上の資源パッケージデータ構造340(以下でさらに論じる)、アプリケーション再生期間320、および1つまたは複数のアプリケーションプレゼンテーション間隔321と関連付けられている。
アプリケーション再生期間320は、アプリケーション155に関連するメディアオブジェクト125が再生プレゼンテーション127の受信側に提示可能であり、かつ/または再生プレゼンテーション127の受信側で選択可能である再生期間292の量(一部またはすべて)に関する特定の時間量である。例えば図2の状況では、著作権表示260の任を担うアプリケーション155は、TT1 293とTT2 294との間の時間量から構成されるアプリケーション再生期間を有する。メニュー280の任を担うアプリケーションは、TT2 294とTT4 296との間の時間量から構成されるアプリケーション再生期間を有する。グラフィカルオーバーレイ290の任を担うアプリケーションは、TT2 294とTT3 295との間の時間量から構成されるアプリケーション再生期間を有する。
特定のアプリケーションに関連するアプリケーション再生期間320がプレゼンテーションタイムライン上に概念化されるときに得られる開始タイトル時間および終了タイトル時間によって定義される間隔は、アプリケーションプレゼンテーション間隔321と呼ばれる。例えば、図2を参照すると、著作権表示260の任を担うアプリケーションは、TT1 293で始まり、TT2 294で終了するアプリケーションプレゼンテーション間隔を有し、メニュー280の任を担うアプリケーションは、TT2 294で始まり、TT4 296で終了するアプリケーションプレゼンテーション間隔を有し、グラフィックオーバーレイ290の任を担うアプリケーションは、TT2 294で始まり、TT3 295で終了するアプリケーションプレゼンテーション間隔を有する。
再び図3を参照すると、ある場合には、アプリケーション155が複数のページを有することがある。ページは、特定のアプリケーション再生期間320および/またはアプリケーションプレゼンテーション間隔321と同時発生的に提示可能な1つまたは複数のメディアオブジェクトの論理グループである。初期ページ330および後続のページ335が示されている。各ページは、それ自体のページ期間を有する。ページ期間は、特定のページに関連するメディアオブジェクトがユーザに提示可能である(かつ/またはユーザによって選択可能である)アプリケーション再生期間320の量(一部またはすべて)に関する特定の時間量である。図示するように、初期ページ330はページ期間332を有し、後続のページ335はページ期間337を有する。
特定のページに関連するメディアオブジェクトを同時に、逐次に、またはその組合せとして提示することができる。図示するように、初期ページ330は、関連する初期メディアオブジェクト331を有し、後続のページ335は、関連するメディアオブジェクト336を有する。特定のページに関連するページ期間がプレゼンテーションタイムライン(図2参照)上に概念化されるときに得られる開始タイトル時間および終了タイトル時間によって定義される間隔は、ページプレゼンテーション間隔343と呼ばれる。ページプレゼンテーション間隔343は、特定のメディアオブジェクト331、336が提示可能であるアプリケーションプレゼンテーション間隔321のサブインターバルである。特定のメディアオブジェクトプレゼンテーション間隔345もページプレゼンテーション間隔343内で定義することができる。
所与のタイトルに関連するアプリケーションおよびページの数、および各アプリケーションまたはページに関連するメディアオブジェクトは一般に、設計の選択の問題である論理的区別である。例えば、特定の初期ページの指定は不要であり、アプリケーションの複数のページを同時に提示することができ、またはアプリケーションをページなし(または何も含まない初期ページ)で開始することができる。アプリケーションおよびスクリプトをそのままに保ちながら、アプリケーションのページをロードおよびアンロードすることができる。アプリケーションの実行中にメモリにロードされるアプリケーションに関連する資源の数または量を管理する(例えば制限する)ことが望ましいときに、複数のページを使用することができる。アプリケーションに関する資源は、アプリケーションで使用されるメディアオブジェクト、ならびにメディアオブジェクトをレンダリングするための命令304を含む。例えば、複数のページを有するアプリケーションが提示可能であるとき、アプリケーションの現在提示可能なページに関連する資源のみをメモリにロードすることのみが可能であることがある。
資源パッケージデータ構造340は、アプリケーション資源のメモリへのロードを実施するのに使用される(任意選択で、アプリケーションの実行前)。資源パッケージデータ構造340は、そのアプリケーションに関する資源が配置されるメモリ位置を参照する。資源パッケージデータ構造340を、任意の望ましい位置に、資源パッケージデータ構造340が参照する資源と一緒に、または別々に格納することができる。例えば、高精細度DVDなどの光学媒体上の、ビデオ構成要素122とは別々のエリア内に資源パッケージデータ構造340を配設することができる。あるいは、ビデオ構成要素122に資源パッケージデータ構造340を埋め込むこともできる。別の代替実施形態では、資源パッケージデータ構造をリモートに配置することができる。リモート位置の一例はネットワークサーバである。アプリケーション実行のための資源の、アプリケーション間の移行を処理することに関するトピックスは、本明細書では詳細には論じられない。
アプリケーション155自体を再び参照すると、命令304は、実行されたとき、ユーザ入力に基づいて、アプリケーション155に関連するメディアオブジェクト125のレンダリングに関するタスクを実行する。ユーザ入力(またはその結果)の1タイプはユーザイベントである。ユーザイベントは、IC構成要素124に関する再生プレゼンテーション127の受信側によって開始されるアクションまたはオカレンスである。必ずというわけではないが、ユーザイベントは一般に非同期である。ユーザイベントの例は、限定はしないが、メニュー280内のボタンの選択や、グラフィカルオーバーレイ290に関連する円の選択などの、再生プレゼンテーション127内のメディアオブジェクトとのユーザ対話を含む。そのような対話は、キーボード、リモートコントロール、マウス、スタイラス、またはボイスコマンドを含む、現在周知の、または後に開発される任意のタイプのユーザ入力装置を使用して行うことができる。アプリケーション155は、システムイベント、文書オブジェクトモデルイベント、または他のタイプのイベントなどの、ユーザイベント以外のイベントに応答できることを理解されよう。
一実装では、命令304は、コンピュータ可読媒体内に符号化されたコンピュータ実行可能命令である(図8および9に関連して以下でさらに論じる)。本明細書に記載の例では、命令304は、スクリプト308またはマークアップ要素302、306、310、312、360を使用して実装される。スクリプトまたはマークアップ要素を単独で使用することができるが、一般には、スクリプトおよびマークアップ要素の組合せにより、高精細度DVDムービーのための包括的な1組の対話機能の作成が可能となる。
スクリプト308は、命令型プログラミング言語などの非宣言型プログラミング言語で書かれた命令304を含む。命令型プログラミング言語は、プロセッサで実行すべきコマンドのシーケンスによって計算を記述する。スクリプト308が使用されるほとんどの場合に、ユーザイベントに応答するためにスクリプトが使用される。しかし、マークアップ要素を単独で使用して容易かつ効率的には実装されない問題を処理するなどの他の状況で、スクリプト308は有用である。そのような状況の例は、システムイベント、状態管理、および資源管理(例えば、キャッシュされた資源または永続的に格納された資源へのアクセス)を含む。一実装では、スクリプト308は、ECMA InternationalによってECMA−262仕様で定義されたECMAScriptである。ECMA−262に含まれる一般的なスクリプティングプログラミング言語は、JavaScriptおよびJScriptを含む。ある設定では、ECMA−327などのECMAScript262のサブセットを使用してスクリプト308を実装することが望ましいことがある。
マークアップ要素302、306、310、312、および360は、Extensible Markup Language(「XML」)などの宣言型プログラミング言語で書かれた命令304を表す。XMLでは、要素は、XML文書内のstartタグおよびendタグを使用して定義された情報の論理単位である。XML文書は、構文解析済みデータまたは未構文解析データを含むエンティティと呼ばれる(コンテナとも呼ばれる)記憶単位から構成されるデータオブジェクトである。構文解析済みデータは文字から構成され、その一部は文字データを形成し、その一部はマークアップを形成する。マークアップは、文書の記憶レイアウトおよび論理構造の記述を符号化する。XML文書内には1つのルート要素があり、ルート要素の部分は、他のどんな要素のコンテンツ内にも現れない。すべての他の要素について、startタグおよびendタグは、他の要素のコンテンツ内にあり、互いにネストされる。
XMLスキーマは、XML文書のクラスの構文の定義である。一部のXMLスキーマは、World Wide Web Consortium(「W3C」)によって定義され、他のXMLスキーマは、DVD Specifications for High Definition Videoに準拠するXML文書と共に使用するため、および他の用途のためにDVD Forumによって公表されている。高精細度DVDムービー用の他のスキーマ、ならびに他の対話式マルチメディアプレゼンテーション用のスキーマも可能であることを理解されよう。
高レベルでは、XMLスキーマは、(1)要素名を要素タイプと関連付けるグローバル要素宣言と、(2)そのタイプの要素に関する属性、サブエレメント、および文字データを定義するタイプ定義を含む。要素の属性は、以下で説明するスタイルプロパティや状態プロパティなどの要素の特定のプロパティを名前/値対を使用して指定し、1つの属性が単一の要素プロパティを指定する。
イベント要素360を含むことのできるコンテンツ要素302は、アプリケーション155によってユーザに提示可能な特定のメディアオブジェクト要素312を識別するのに使用される。メディアオブジェクト要素312は一般に、特定のメディアオブジェクト125を定義するデータが配設される位置を指定する。そのような位置は、例えば、光学媒体上の位置、あるいはインターネット、私設管理ネットワーク、ワールドワイドウェブなどの有線もしくはワイヤレスネットワーク、公衆ネットワーク、プライベートネットワーク上の位置を含む、ローカルストレージまたはリモートストレージ内の位置でよい。メディアオブジェクト要素312によって指定される位置は、資源パッケージデータ構造340への参照などの位置への参照でもよい。このようにして、メディアオブジェクト125の位置を間接的に指定することができる。
タイミング要素306は、特定のアプリケーション155によって特定のコンテンツ要素302がユーザに提示可能である時間または時間間隔を指定するのに使用される。タイミング要素の例は、XML文書の時間コンテナ内のpar要素、tuning要素、またはseq要素を含む。一部のタイミング要素は、Synchronized Multimedia Integration Language(「SMIL」)のためにW3Cによって発行された規格によって定義される。他のタイミング要素は、DVDForumによって発行された規格によって定義される(例えばDVD Specifications for High Definition Video)。各規格は、すべての目的について参照により本明細書に組み込まれる。宣言型言語文書と共に使用される他のタイミングモデルに関連する異なるタイミング要素も可能である。
スタイル要素310(および対応するスタイル属性)は一般に、特定のアプリケーションによってユーザに提示可能な特定のコンテンツ要素302の外観を指定するのに使用される。いくつかのスタイル要素が、W3Cおよび/またはDVDForumによって1つまたは複数の発行された仕様で定義されている。W3Cによって発行された仕様の例は、XSLに関する仕様、およびカスケーディングスタイルシート(「CSS」)に関する仕様を含む。
イベント要素360は、マークアップDOMの再生中の特定の条件の発生を識別するのに使用可能であるユーザ指定の名前およびユーザ定義のパラメータの変数セットを有する要素である。1つの例示的実施例では、イベント要素はスクリプトのみによって消費可能である。したがって、イベント要素は、その構文によって記述することのできる任意のタイプの条件のスクリプト(スクリプト308)を通知するのに使用されるタイミング要素(例えばタイミング要素306)の構成内に含まれる宣言型要素である。W3Cによって指定されるイベントタグからイベントタグを導出することができ、またはイベントタグは、W3Cによって指定されるイベントタグと同様でよく、またはイベントタグは、W3Cによって指定されるイベントタグとは異なるものでよい。
マークアップ要素302、306、310、および360は、その関連するメディアオブジェクト要素312/メディアオブジェクト125のいくつかのプロパティを指定するのに使用可能である属性を有し、それによってマークアップ要素のレンダリングを同期し、かつマークアップで宣言されたイベントの活動化を調整する。1つの例示的実装では、こうした属性/プロパティは、1つまたは複数のクロック、またはタイミング信号の値を表す(図4に関連して以下でさらに論じる)。時間または期間を表すプロパティを有するマークアップ要素の属性を使用することは、ユーザが再生プレゼンテーション127を受信する間にIC構成要素124とビデオ構成要素122との同期が達成される特定の一方式(すなわち、インラインタイミング構成を使用する)である。しかし、タイミング属性はアプリケーションにおいてマークアップ要素のみに限定されるわけではなく、全体としての本明細書に記載のイベンティングシステム(例えばプレゼンテーションシステム100)に一般に適用することができる。別の例示的実装(図6に関連して以下でさらに論じる)では、こうした属性/プロパティの構造化表現が周期的に照会され、その中の特定の値または変化が、再生プレゼンテーション127内のIC構成要素124を再生することに関連する1つまたは複数のアクションをトリガするのに使用可能である。
マークアップ要素を含むサンプルXML文書を以下で述べる(スクリプト308は図示せず)。サンプルXML文書は、コンテンツ要素302に関するクロップアニメーションを実行するためのスタイル要素310およびタイミング要素306を含み、コンテンツ要素302は、「id」と呼ばれるメディアオブジェクト要素312を参照する。「id」メディアオブジェクト要素に関連するメディアオブジェクト125を定義するデータの位置は図示されていない。以下のサンプルXML文書は例示のために与えられるものであり、構文的に正当なものではないことがあることを理解されよう。
サンプルXML文書は、「root」と呼ばれるルート要素で始まる。ルート要素に続いて、いくつかの名前空間「xmlns」フィールドは、サンプルXML文書に関する構文を定義する様々なスキーマ、およびその中のコンテナを見つけることのできるワールドワイドウェブ上の位置を指す。例えば高精細度DVDムービーと共に使用されるXML文書の状況では、名前空間フィールドは、DVDForumに関連するウェブサイトを指すことができる。
「id」と呼ばれる1つのコンテンツ要素302が、「body」というラベルの付いたタグによって記述されるコンテナ内に定義される。コンテンツ要素「id」に関連するスタイル要素310(この例では、「styling」というラベルの下の要素)が、「head」というラベルの付いたタグによって記述されるコンテナ内に定義される。タイミング要素306(「timing」というラベルの下の要素)も、「head」というラベルの付いたタグによって記述されるコンテナ内に定義される。
- <root xml:lang="en" xmlns="http://www.dvdforum.org/2005/ihd"
xmlns:style="http://www.dvdforum.org/2005/ihd#style"
xmlns: state="http://www.dvdforum.org/2005/ihd#state"
- <head> (Head is the container of style and timing properties)
- <styling> (Styling Properties are here)
<style id="s-p" style:fontSize="10px" />
<style id="s-bosbkg" style: opacity="0.4"
style:backgroundImage="url('../../img/pass/boston.png')" />
<style id="s-div4" style="s-bosbkg" style:width=" l00px"
style:height="200px" />
<style id="s-div5" style:crop="0 0 100 100" style=" s-bosbkg"
style:width="200px" style:height="100px" />
<style id="s-div6" style:crop="100 50 200 150" style="s-bosbkg"
style:width="100px" style:height="100px" />
</styling>
- <Timing> (Timing Properties are here)
- <timing clock="title">
- <defs>
-<g id="xcrop">
<set style: opacity="1.0" />
<animate style:crop="0 0 100 200;200 0 300 200" />
</g>
- <g id="ycrop">
<set style:opacity="1.0" />
<animate style:crop="0 0 100 100;0 100 100 200" />
</g>
- <g id= "zoom">
<set style:opacity="1.0" />
<animate style:crop="100 50 200 150;125 75 150 100" />
</g>
</defs>
- <seq>
<cue use="xcrop" select="//div[@id='d4']" dur="3s" />
<cue use="ycrop" select="//div[@id='d5']" dur="3s" />
<cue use="zoom" select="//div[@id='d6']" dur="3s" />
</seq>
</timing>
</head>
- <body state: foreground="true"> Body is the container for content
elements
- <div id="d1"> The content starts here.
- <p style:textAlign="center">
Crop Animation Test
<br />
<span style:fontSize="12px">Start title clock to animate crop.</span>
</p>
</div>
<div id="d4" style="s-div4" style:position="absolute"
style:x="10%" style:y="40%">
<p style="s-p">x: 0 -> 200</p>
</div>
- <div id="d5" style="s-div5" style:position="absolute" style:x="30%"
style:y="40%">
<p style="s-p">y: 0 -> 100</p>
</div>
- <div id="d6" style="s-div6" style:position="absolute"
style:x= "70%" style:y="60%">
- <p style="s-p">
x: 100 -> 125
<br />
y: 50->75
</p>
</div>
</body>
</root>
引き続き図1〜3を参照すると共に、図4は、タイミング信号管理ブロック108の様々な構成要素およびタイミング信号158をより詳細に示す単純化した機能ブロック図である。
タイミング信号管理ブロック108は、プレゼンテーションシステム100内の特定の時間または期間を求めるのに使用されるクロックおよび/またはタイミング信号の処理の任を担う。図示するように、連続的タイミング信号401が、クロックソース402によって所定のレートで生成される。クロックソース402は、汎用コンピュータや特殊目的電子装置などの処理システムに関連するクロックでよい。クロックソース402によって生成されるタイミング信号401は一般に、現実世界のクロックと同様に連続的に変化し、実時間の1秒以内で、クロックソース402は、1秒に相当するタイミング信号401を所定のレートで生成する。タイミング信号401はICフレームレート計算器404、A/Vフレームレート計算器406、時間基準計算器408、および時間基準計算器490に入力される。
ICフレームレート計算器404は、タイミング信号401に基づいてタイミング信号405を生成する。タイミング信号405は「ICフレームレート」と呼ばれ、ICデータ134のフレームがICマネージャ104によって生成されるレートを表す。ICフレームレートの1つの例示的値は、毎秒30フレームである。ICフレームレート計算器404は、タイミング信号405を生成するためにタイミング信号401のレートを低減または増大させることができる。
ICデータ134のフレームは一般に、それぞれの有効なアプリケーション155および/またはそのページについて、関係するユーザイベントに従う、有効なアプリケーションおよび/またはページに関連する各メディアオブジェクト125のレンダリングを含む。例示のために、有効なアプリケーションは、プレゼンテーションタイムライン130に基づいて再生期間292の現タイトル時間が含まれるアプリケーションプレゼンテーション間隔321を有するものである。アプリケーションは複数のアプリケーションプレゼンテーション間隔を有することができることを理解されよう。本明細書ではユーザ入力または資源可用性に基づいてアプリケーションの状態について特定の区別は行われないことも理解されよう。
A/Vフレームレート計算器406もタイミング信号401に基づいてタイミング信号(タイミング信号407)を生成する。タイミング信号407は「A/Vフレームレート」と呼ばれ、A/Vデータ132のフレームがAVCマネージャ102によって生成されるレートを表す。A/Vフレームレートは、ICフレームレート405と同一でよく、またはICフレームレート405と異なるものでよい。A/Vフレームレートの1つの例示的値は、毎秒24フレームである。A/Vフレームレート計算器406は、タイミング信号407を生成するためにタイミング信号401のレートを低減または増大させることができる。
クロックソース470はタイミング信号471を生成し、タイミング信号471は、クリップ123に関連する情報がメディアソース161から生成されるレートを支配する。クロックソース470は、クロック402と同一のクロックでよく、またはクロックソース402と同一のクロックに基づくことができる。あるいは、クロック470と402はまったく異なるものでよく、かつ/または異なるソースを有することができる。クロックソース470は、再生速度入力480に基づいてタイミング信号471のレートを調節する。プレイ速度入力480は、再生プレゼンテーション127の再生速度に影響を及ぼす、受信されるユーザ入力を表す。例えばユーザがムービーのある部分から別の部分にジャンプするとき(「トリックプレイ」と呼ばれる)、またはユーザがムービーを休止、低速順送り(slow−forward)、高速順送り(fast−forward)、低速逆戻し(slow−reverse)、または高速逆戻し(fast−reverse)したときに、再生速度に影響を受ける。トリックプレイは、メニュー280(図2に示す)から選択を行うことにより、または他の方式で達成することができる。
時間基準452は、アクティブクリップ123に関連する特定のプレゼンテーション間隔240内で経過した時間量を表す。本明細書の議論では、アクティブクリップは、プレゼンテーションタイムライン130に基づいて再生期間292の現タイトル時間が含まれるプレゼンテーション間隔240を有するものである。時間基準452は「経過クリップ再生時間」と呼ばれる。時間基準計算器454は時間基準452を受け取り、メディア時間基準455を生成する。メディア時間基準455は、1つまたは複数の時間基準452に基づいて経過した再生期間292の合計量を表す。一般には、2つ以上のクリップが同時に再生中であるとき、メディア時間基準455を生成するのに1つの時間基準452だけが使用される。メディア時間基準455を求めるのに使用される特定のクリップ、および複数のクリップに基づいてどのようにメディア時間基準455が求められるかは、実装の好みの問題である。
時間基準計算器408は、タイミング信号401、メディア時間基準455、および再生速度入力480を受け取り、タイトル時間基準409を生成する。タイトル時間基準409は、時間基準計算器408への入力のうちの1つまたは複数に基づいて再生期間292内で経過した合計時間量を表す。
時間基準計算器490は、タイミング信号401およびタイトル時間基準409を受け取り、アプリケーション時間基準492およびページ時間基準494を生成する。単一のアプリケーション時間基準492は、連続的タイミング信号401に関する、(図3に関連して図示および議論された)特定のアプリケーション再生期間320の経過時間量を表す。アプリケーション時間基準492は、現タイトル時間が特定のアプリケーションのアプリケーションプレゼンテーション間隔321内に含まれることをタイトル時間基準409が示すときに求められる。アプリケーション時間基準492は、アプリケーションプレゼンテーション間隔321の完了時にリセットする(例えば非アクティブとなり、またはやり直す)。アプリケーション時間基準492は、ユーザイベントに応答して、またはトリックプレイが行われるときなど、他の状況でもリセットすることができる。
ページ時間基準494は、連続的タイミング信号401に関する、(やはり図3に関連して図示および議論された)単一ページ再生期間332、337の経過時間量を表す。アプリケーションの特定のページに関するページ時間基準494は、現タイトル時間が適用可能ページプレゼンテーション間隔343内に含まれることをタイトル時間基準409が示すときに求められる。ページプレゼンテーション間隔は、アプリケーションプレゼンテーション間隔321のサブインターバルである。ページ時間基準494は、適用可能なページプレゼンテーション間隔343の完了時にリセットすることができる。ページ時間基準494は、ユーザイベントに応答して、またはトリックプレイが行われるときなど、他の状況でもリセットすることができる。アプリケーションプレゼンテーション間隔321および/またはページプレゼンテーション間隔343のサブインターバルでよいメディアオブジェクトプレゼンテーション間隔345も定義可能であることを理解されよう。
表1に、プレゼンテーションシステム100による再生プレゼンテーション127の再生中の例示的オカレンスと、アプリケーション時間基準492、ページ時間基準494、タイトル時間基準409、およびメディア時間基準455に対するそのようなオカレンスの効果とを示す。
Figure 0005015150
図5は、アプリケーション時間基準492、ページ時間基準494、タイトル時間基準409、およびメディア時間基準455に対する再生プレゼンテーション127の再生中のいくつかのオカレンス502の効果をより詳細に示す図である。オカレンス502およびその効果が、タイミング信号401などの連続的タイミング信号の値に対して図示されている。別段の指示がない限り、高精細度DVDムービーの特定のタイトルは通常の速度で再生中であり、3つの逐次提示可能なページを有する単一のアプリケーションがユーザ対話を提供する。
ムービーは、タイミング信号が値0を有するときに再生を開始する。タイミング信号が値10を有するとき、アプリケーションは有効となり、活動化する。アプリケーション時間492、ならびにアプリケーションのページ1に関連するページ時間494は値0を仮定する。ページ2および3は非アクティブである。タイトル時間409およびメディア時間455はどちらも値10を有する。
アプリケーションのページ2は、タイミング信号値15でロードされる。アプリケーション時間およびページ1時間は値5を有し、タイトル時間およびメディア時間は値15を有する。
アプリケーションのページ3は、タイミング信号が値20を有するときにロードされる。アプリケーション時間は値10を有し、ページ2時間は値5を有し、ページ1時間は非アクティブである。タイトル時間およびメディア時間は値20を有する。
ムービーは、タイミング信号値22で休止する。アプリケーション時間は値12を有し、ページ3時間は値2を有し、ページ1およびページ2は非アクティブである。タイトル時間およびメディア時間は値22を有する。ムービーは、タイミング信号値24で再開する。次いで、アプリケーション時間は値14を有し、ページ3時間は値4を有し、タイトル時間およびメディア時間は値22を有する。
タイミング信号値27で新しいクリップが開始する。アプリケーション時間は値17を有し、ページ3時間は値7を有し、タイトル時間は値25を有し、メディア時間は0にリセットされる。
ユーザは、タイミング信号値32でアプリケーションを非活動化する。アプリケーション時間は値22を有し、ページ時間は値12を有し、タイトル時間は値30を有し、メディア時間は値5を有する。
タイミング信号値39で、ユーザは、後方の同一のクリップの別の部分にジャンプする。アプリケーションはジャンプした位置で有効であると仮定し、そのすぐ後でアプリケーションは再活動化される。アプリケーション時間は値0を有し、ページ1時間は値0を有し、他のページは非アクティブであり、タイトル時間は値27を有し、メディア時間は値2を有する。
タイミング信号値46で、ユーザはムービーの再生速度を変更し、通常速度の2倍で高速順送りする。高速順送りはタイミング信号値53まで続行される。図示するように、アプリケーション時間およびページ時間は、連続的タイミング信号と共に一定のペースで引き続き変化し、ムービーのプレイ速度の変化の影響を受けず、一方、タイトル時間およびメディア時間はムービーの再生速度に比例して変化する。アプリケーションの特定のページがロードされる時は、タイトル時間409および/またはメディア時間455に結合されることに留意されたい(図3に関連する、アプリケーションプレゼンテーション間隔321およびページプレゼンテーション間隔343の議論を参照)。
タイミング信号値48で、新しいタイトルが開始し、タイトル時間409およびメディア時間455が値0にリセットされる。初期タイトルに関して、これは、タイトル時間が値62を有し、メディア時間が値36をするときに行われる。アプリケーション時間492およびページ時間494のリセット(図示せず)は、タイトル時間409およびメディア時間455のリセットの後に続く。
様々なタイムライン、クロックソース、タイミング信号、およびタイミング信号基準へのアクセスを有することにより、プレゼンテーションシステム100が再生プレゼンテーション127内のICデータ124とA/Vデータ132のフレームレベル同期を達成し、ユーザ対話の期間中のそのようなフレームレベル同期を維持する能力が向上する。
引き続き図1〜4を参照すると共に、図6は、プレゼンテーションシステム100などの対話式マルチメディアプレゼンテーションシステムがプレゼンテーションコンテンツ120/再生プレゼンテーション127のIC構成要素124およびビデオ構成要素122などの対話式マルチメディアプレゼンテーションの対話式構成要素およびビデオ構成要素を同期式に提示する能力を向上させる一方法の流れ図である。この方法は、宣言型形式の一定のアプリケーション命令を使用して、IC構成要素124の再生に関連する一定のアクションを条件付きでトリガすることを含む。アクションは、(例えばユーザ入力に基づいて)対話式マルチメディアプレゼンテーションの再生中の1つまたは複数のメディアオブジェクトの1つまたは複数の特徴の状態に基づいてトリガされる。
図6に、XPATHクエリを使用してアプリケーションの構造化表現(図7に図示し、付随する本文で説明したDOMなど)が周期的にアクセスされ、環境内の状態の変化を検出し、次いでそれに対する応答をトリガする対話式マルチメディア環境内の状態変化に宣言式に応答する1つの特定の例示的方法を示す。この宣言型方法に加えて、プログラマティック(すなわち命令)イベント駆動方法が別法として使用される。例えば、環境内の他のオブジェクトを構築し、特定の状態変化に応答することができる。プログラムされた構成により、状態属性がそのようなオブジェクトに状態変化を通知し、それによって応答をトリガすることが可能となる。したがって、DOMに周期的に照会して状態変化を検出することに加えて(ポーリングの一形態)、例えばスクリプト、マークアップAPI、またはスクリプトAPIを使用してオブジェクトのイベントハンドラを適切な通知方法に渡すことにより、特定の要件に応じて肯定的イベント通知を使用し、実装することができる。次いで、状態属性が変化したときに状態変化が信号で伝えられる。
この方法はブロック600で開始し、ブロック602に進み、宣言型言語命令を有するアプリケーションがアクセスされる。一定の宣言型命令が、メディアオブジェクトの特徴を指定する。他の宣言型命令は、特徴の状態変化に基づいて、プレゼンテーションの対話式コンテンツの再生またはレンダリングに関連するアクションを指定する。対話式マルチメディアプレゼンテーションの再生中に、特徴は通常、様々な異なる状態を取る。すなわち、(例えば対話式メニューを作成し、または他の対話式コンテンツをユーザに提供するために)1つまたは複数の対話式アプリケーションがロードおよび実行されるとき、コンテンツ要素属性(以下で説明する)によって定義される様々な状態は通常、変化する対話式環境を反映するように変化する。
ブロック604で、以下の図7に示されるDOMなどのアプリケーションの構造化表現が周期的に照会され、状態変化が検出される。ダイヤモンド606で判定されるように、関連する状態変化が検出されたとき、宣言型命令によって指定されるアクションがブロック608でトリガされ、ブロック604での周期的照会が続行される。関連する状態変化がダイヤモンド606で検出されない場合、ブロック604での周期的照会が続行される。
ブロック602を参照すると、コンテンツ要素302、スタイル要素310、メディアオブジェクト要素312、またはイベント要素360、およびその属性などのアプリケーション命令304(図3に示す)が、特定のメディアオブジェクト125と、再生プレゼンテーション127の再生中に仮定することのできる関連する特徴状態(例えば属性の値)とを指定する役割を果たす。高精細度DVDムービーアプリケーションに現れるマークアップ要素と共に使用されるいくつかの属性が、DVDForumによって公表された1つまたは複数のXMLスキーマによって定義される。例示的実施例では、属性はスタイル属性および状態属性を含む。
ユーザイベントに関していくつかの属性を定義することができる。スタイル属性または状態属性の値に影響を及ぼす可能性のあるユーザイベントの1タイプは、ジェスチャイベントである。ジェスチャイベントは、再生プレゼンテーション127内のメディアオブジェクトのプレゼンテーションに影響を及ぼす任意のユーザ開始アクション(キーボード、リモートコントロール、マウスなどの装置からの入力など)である。一般には特徴状態および属性の値、具体的にはスタイルまたは状態属性の値は、交番状態またはバイナリ状態を仮定することができる。そのような交番状態またはバイナリ状態の例は、真または偽、オンまたはオフ、0または1などを含む。あるいは、特徴状態および属性の値は、文字列値や数値などの一般的な値を仮定することもできる。別の代替実施形態では、特徴状態および属性の値は、事前設定定義された1組の色の中の特定の色を表す値などの、事前定義されたセット内の値を仮定することができる。
ブロック602を再び参照すると、アプリケーション命令304(図3に示す)内で、特徴状態の変化に基づいてトリガすることのできるIC構成要素124の再生に関連する1つまたは複数のアクションが、他の宣言型命令を使用して指定される。そのようなアクションの例は、コンテンツレンダリング、イベント生成、スクリプト実行、可変値の変化、およびその他のアクションを含む。アプリケーションまたはそのページ内で、複数のタイミング要素を使用することができ、同一または異なるクロックにタイミング要素を同期することができる。例えば、タイミング信号401および471を直接的または間接的に参照して、タイミング要素が同期されるクロックを確立することができる。例えば、クロックソース402、ICフレームレート計算器404、A/Vフレームレート計算器406、アプリケーション時間492、またはページ時間494を介してタイミング信号401を間接的に参照することができる。同様に、例えばクロックソース470、経過クリップ再生時間452、時間基準計算器454、メディア時間基準455、時間基準計算器408、またはタイトル時間基準409を介してタイミング信号471を間接的に参照することができる。さらに、クロック、タイミング信号、時間基準計算器、および/または時間基準への論理参照を含む表現を使用してタイミング要素の同期を指定することもできる。例えば、「AND」、「OR」、「NOT」などのブールオペランド、および他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。
再び図6の流れ図を参照して、プレゼンテーションシステム100の状況で、ブロック604、ダイヤモンド606、およびブロック608に示すステップが論じられる。プレゼンテーションコンテンツ120/再生プレゼンテーション127の再生中に、特定のアプリケーション155に関連する宣言型言語命令の状態(それぞれのコンテンツ要素302、タイミング要素306、スタイル要素310、メディアオブジェクト要素312、イベント要素360、および/または属性(任意選択で、属性の属性)など)が、アプリケーションの構造化表現内に維持される。そのような構造化表現の一例はDOMである。DOMの構造および機能が、W3Cによって発行された1つまたは複数の仕様で説明されている。
図7はDOM700の図である。DOM700は、ルートノードである文書ノード702、要素ノード704、属性ノード706、およびテキストノード708を含むいくつかのタイプのノードのツリー状階層である。しばしば、DOMではタイミングデータ構造はコンテンツデータ構造とは別々である。DOM700の構造は例示のために提示したに過ぎない。任意の要素が属性自体を含めて属性またはテキストを有することができることを理解されよう。
アプリケーションがロードされるとき、そのマークアップがロードされ、構文解析され、DOMが作成される。アプリケーションが対話式環境で動作するとき、ユーザはアプリケーションと対話し、イベントがファイアされ、スクリプトが実行されるなどし、状態属性を含む環境の様々な側面が変化し、それがDOMに対する修正として反映される。したがって、アプリケーションが最初に開始したときに当初ロードされたDOMは通常、アプリケーションの存続時間中に動的に維持される「実際の(live)」DOMとは異なる。
XPATHクエリまたは他のタイプのクエリ(例えばXQUERY)を使用してDOM700(またはその部分)に周期的に照会し、属性ノード(スタイル属性やディスプレイ属性など)が特定の値を有する時を判定することができる。一実装では、XPATHクエリは、属性ノードが値を変更した時を判定する。上記で論じたように、属性は、バイナリ値、数値、文字列値、または他のタイプの値を有することができる。各属性ノード(DOM700内のノード704および706によってそれぞれ表される)は、対話式マルチメディアプレゼンテーションが再生されるとき、かつ/またはユーザイベントなどのイベントに応答して、特定の値を決定する。一実装では、XPATHクエリは、照会した値に基づいて真または偽を決定する。このようにして、特定のメディアオブジェクトに関するアクティブな時間間隔を形成することができ、有利には、タイミング構造内でXPATHを使用して、コンテンツデータ構造内の情報を参照および/または監視することができる。1つまたは複数の属性ノードに対して同時にクエリを実行することができ、属性に対する論理参照を含む表現または条件を使用してクエリを定義することもできる。例えば、「AND」、「OR」、「NOT」などのブールオペランドと、他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。ある場合には、いくつかの周期的照会をスキップすることも可能である。例えば、クエリ結果および/または他の情報の分析に基づいて、クエリ結果が変化しない期間を識別することができ、その期間中に照会をスキップすることができる。
タイミング信号401やタイミング信号471などのタイミング信号に基づくレートで、DOMに対してXPATHクエリを実行することができる。タイミング信号401および471を直接的または間接的に参照して、DOMが照会される時間を確立できることを理解されよう。例えば、クロックソース402、ICフレームレート計算器404、A/Vフレームレート計算器406、アプリケーション時間492、またはページ時間494を介してタイミング信号401を間接的に参照することができる。同様に、例えばクロックソース470、経過クリップ再生時間452、時間基準計算器454、メディア時間基準455、時間基準計算器408、またはタイトル時間基準409を介してタイミング信号471を間接的に参照することができる。さらに、クロック、タイミング信号、時間基準計算器、および/または時間基準への論理参照を含む表現を使用して、DOMに対してクエリが実行される時を定義することができる。例えば、「AND」、「OR」、「NOT」などのブールオペランド、および他のオペランドまたはそのタイプを使用して、そのような表現または条件を定義することができる。
DOMのクエリを介して検出される状態変化によって特定のアクションがトリガされるとき、適切なコンテンツがアクセスされ、アクションに関する命令が実行される。例えば、外部イベントハンドラは一般に、イベント関連コンテンツにアクセスし、イベントに関係する命令の実行を準備する。トリガされたアクションに関する命令の実行の結果として得られる作業項目(図示せず)はキュー(図示せず)に配置され、ICフレームレート405によって提供されるレートなどの所定のレートで実行される。作業項目の実施の結果として得られるICデータ134(例えば、ユーザ入力に従う特定のメディアオブジェクトのレンダリング)がミキサ/レンダラ110に送られる。ミキサ/レンダラ110は、グラフィックス平面内でICデータ134をレンダリングし、ユーザに対する再生プレゼンテーション127の対話部分を生成する。
したがって、アプリケーションは、メディアオブジェクトの特定の特徴の状態を指定する一定の宣言型言語命令と、特徴の状態変化に基づいて対話式マルチメディアプレゼンテーションの対話式コンテンツを再生することに関連するアクション(メディアオブジェクトのレンダリング、イベント生成、変数の変更、およびその他のアクションなど)を指定する他の宣言型言語命令とを提供する。アプリケーションの構造化表現に周期的に照会して状態変化を検出することにより、対話式コンテンツを再生することに関連するアクションを条件付きでトリガすることができる。XPATH機能は、DOMに照会してそのような状態変化を検出するのに十分適している。
したがって、アプリケーションによって生成されるグラフィックスに関する機能を提供して対話式マルチメディア環境の状態変化に反応するために、状態属性を含むようにマークアップ要素が構成される。そのような状態属性は、上述のようにDOMの使用によってアプリケーションに公開される。例示的実施例では、状態属性は表2に示されるものを含む。
Figure 0005015150
表2の列1は、6個の状態属性を列挙する。列2は、属性が取ることのできる値を列挙する。この例示的実施例では、「value」を除くすべての属性が、ブール値「真」または「偽」を使用するように構成される。値属性は通常、その値についてユーザから入力されるテキストまたは他の非ブール情報を使用する。
アプリケーション作者は、列3に示されるように、状態属性について初期値を設定することができる。しかし、値は、上述のジェスチャイベントの受信を介するユーザ対話に基づいて変化する。具体的には、foreground、pointer、およびactionedの状態属性はプレゼンテーションシステム100によって変更され、マークアップまたはスクリプトによって変更されない。すなわち、プレゼンテーションシステム100のアクションは、マークアップおよびスクリプトを上書きする。しかし、focused、enabled、およびvalueの状態属性をマークアップまたはスクリプトで設定することができ、したがってそのように設定された値は、普通ならプレゼンテーションシステム100によって設定される値を上書きする。具体的には、制御を放棄してプレゼンテーションシステム100内に配設されたアニメーションエンジンに戻すように、スクリプトAPIを介して実装される「unset」命令を介して明示的に命令されない限り、スクリプトは、focusedおよびenabledの状態属性を上書きすることができる。したがって、属性値の変更を支配する規則は、優先順位を確立することによって制御の明確な順序を確立し、表2の第4列に要約される。
この例示的実施例では、ジェスチャイベントは、マークアップ処理を使用して処理される。他の種類のイベントはスクリプト処理によって管理される。ジェスチャイベントのマッピングは、状態属性によって記述される状態プロパティに関して予測されるスタイルおよびタイミング表現を介してマークアップで処理される。ジェスチャイベントは、まずジェスチャの時間をアプリケーション時間(例えばアプリケーション時間基準492)に変換し、次いでDOM中の影響を受ける任意の要素の状態プロパティを修正することによってプレゼンテーションシステム100によって処理される。ジェスチャイベントがマークアップによって処理される間、適切なイベントリスナをセットアップすることによってジェスチャイベントをなおスクリプトに伝播させることができる。
再生プレゼンテーション127内の特定のメディアオブジェクト125 IC構成要素124/ICデータ134を提示するのに図6の方法がプレゼンテーションシステム100でどのように使用可能であるかの一例が与えられる。議論のために、再生プレゼンテーション127が高精細度DVDムービーであり、メディアオブジェクトがボタングラフィックであり、その対話が、ムービーの少なくとも一部と同時に、ボタングラフィックをメニュー280(図2に図示される)内のユーザ選択可能項目として提示するアプリケーション155によって提供されると仮定する。
アプリケーションは、状態属性「focused」を有する「Mybutton」と呼ばれるボタングラフィックとして構成されたコンテンツ要素を含む。focused状態属性は、ユーザのジェスチャイベントに基づいて、フォーカスされた状態およびフォーカスされない状態(すなわち真または偽)を帯びることができる。
表2に示されているように、Mybuttonなどのコンテンツ要素は、活動化ジェスチャが受信された後にフォーカスされる。そのような活動化ジェスチャは、例えばユーザがカーソルの先端をボタングラフィックの周りの事前定義されたエリア(「範囲」と呼ばれる)に移動することによってMybuttonの「ホットスポット」エリアを操作するときに受信される。活動化ジェスチャを作成してコンテンツ要素状態属性を真に変更する別の方式は、例えばキーボードを使用して、フォーカスを有するようにコンテンツ要素を操作することである。
コンテンツ要素がフォーカスされたとき、コンテンツ要素は、コンテンツ要素の相対的表示順序にかかわらず、ユーザ入力(例えば、ボタンのプッシュ、選択、活動化、テキスト入力など)などのフォーカスイベントを受け取る。この順序は「Z順序」と呼ばれ、ディスプレイ上のコンテンツ要素に関連するグラフィックスの階層化を表す。N個のグラフィカルオブジェクトのグループについて、Z順序=0は、グラフィックが最も遠くに離れて現れることを意味し、一方Z順序=N−1を有するグラフィックは、ディスプレイ上の他のすべてのグラフィックスの上に現れる。したがって、多くの場合に、フォーカスされたコンテンツ要素はZ順序=N−1を有することになる。それがディスプレイ上の一番上のオブジェクトであり、かつそれが通常はユーザとの対話に携わり、ユーザイベントを受け取るものとなるからである。しかし、フォーカスされた状態属性を有するコンテンツ要素は、必ずしも常に最高のZ順序を有する必要はない。さらに、多くても、一度に1つのコンテンツ要素がフォーカスを有する。マークアップが、複数のコンテンツ要素がフォーカスされた状態を有するように指定する場合、字句的に後の要素が優先する。この例示的実施例では、スタイル、アニメーション、またはXMLアプリケーションプログラミングインターフェース(「API」)を使用してコンテンツ要素のフォーカス状態を変更することも可能である。
コンテンツ要素の状態属性が真に設定されると、その状態が保持される。したがって、コンテンツ要素は次の2つの場合にはフォーカスされない(すなわち、そのfocused属性は偽である)。それはユーザが、例えばメニュー280から別のメニューを選択することにより、異なるコンテンツ要素を選択してフォーカス状態に移動したとき、およびポインタ装置が要素の範囲内に移動し、キャンセルジェスチャが受信されたときである。そのようなキャンセルジェスチャの後、状態属性focusedを有するコンテンツ要素はない。
表2に示されているように、actioned状態は当初、偽に設定される。actioned状態は、コンテンツ要素を目標とする活動化ジェスチャの開始時に真に変化し、活動化ジェスチャが終了した後に偽に戻る。そのような活動化ジェスチャは通常、ポインタ装置(例えばリモートコントロールまたはマウス)を使用して、またはキーボードで生成される。ポインタ装置の場合、ポインタ装置からの活動化ジェスチャは、ポインタダウンイベント(マウスボタンのプッシュなど)で開始し、ポインタアップイベント(マウスボタンの解放など)まで続く。キーボードによって送達される活動化ジェスチャは1チックの持続時間を有する。
スタイル、アニメーション、またはXML APIを使用してコンテンツ要素のactioned状態を変更し、命令をプログラムし、コンテンツ要素に対するユーザ活動化ジェスチャをシミュレートすることがさらに可能である。実際の活動化ジェスチャとシミュレートした活動化ジェスチャのどちらの場合でも、actionedイベントが、真に等しい状態属性focusedを有する単一のコンテンツ要素のactioned状態属性を変更することによってその要素に送達される。
コンテンツ要素のポインタ状態は当初、偽である。カーソルホットスポットがコンテンツ要素と交差したときはいつでも、値は真に変化する。そうでない場合、値は偽に設定される。しかし、この挙動は、対話式メディアプレゼンテーションでカーソルが使用可能にされる間にのみ行われる。したがって、ポインタ移動イベントは、ポインタ状態属性を真に変更することによってポインタを含む要素を含む単一アプリケーションに送達される。そのようなポインタ移動イベントは、アプリケーションのZ順序にかかわらず送達される。ポインタクリックイベントは、ポインタを含むアプリケーション内の要素に、それがフォーカスを有するかどうかにかかわらず送達される。コンテンツ要素がフォーカスを受け取ることができる場合、ポインタクリックの結果としてこのことが行われる。コンテンツ要素がアクションすることができる場合、ポインタクリックの結果としてアクションする。
アプリケーションがZ順序で最も手前のアプリケーションである(すなわち、アプリケーションが最高のZ順序を有する)ときはいつでも、foreground状態属性は、プレゼンテーションシステム100によって真に設定される。アプリケーションがZ順序の別の位置に配置されたときはいつでも、foreground状態属性は偽に設定される。foreground状態属性を真に変更することによってアプリケーションがフォーカスを得たとき、またはフォーカスを失ったとき、Foregroundイベントがアプリケーションに送達される。
enabled状態属性は、デフォルトで真に設定される。プレゼンテーションシステム100のアクションは、enabled状態属性を変更しない。しかし、スタイル、アニメーション、またはXML APIは、コンテンツ要素のenabled状態を偽に変更することができる。偽であるとき、コンテンツ要素はフォーカスを受けることができない。
ユーザがテキストを入力して値を作成することによって生成されたものなどの値イベントが、コンテンツ要素に関するvalue状態属性を変更することによってその値が変化するコンテンツ要素を含むアプリケーションに送達される。そのようなイベントは、Z順序の如何にかかわらずアプリケーションに送達される。スタイル、アニメーション、またはXML APIを使用してコンテンツ要素のvalue状態を変更することができ、value状態はオブジェクトタイプに依存する。
入力要素、エリア要素、ボタンコンテンツ要素は通常、ユーザイベントに応答するユーザ入力オブジェクトを表すのに使用される。エリアコンテンツ要素は、活動化に関してボタンのように振る舞うが、形状および他のパラメータに関して定義可能である。エリアおよびボタンに関連するコンテンツ要素は当初、表2に示されるように偽の値で設定される。値は、コンテンツ要素のactioned状態属性が真に変化したときにトグルする。
入力またはオブジェクトコンテンツ要素に関するvalue状態属性の値は、任意の所望の値に初期化される。デフォルトは空文字列である。値状態は、使用される特定の入力装置に応じて、コンテンツ要素のフォーカス状態が偽から真に変化したときに編集可能となる。
特定のジェスチャイベントに基づいて真または偽となることのできる、上述の「focused」と呼ばれる状態属性を有するコンテンツ要素、例えばMyButtonに関連するメディアオブジェクトのレンダリングを条件付きでトリガするのに使用可能な宣言型言語命令を示す擬似コードが以下に示される。
<par begin="id('MyButton')[state:focused()=true()]" end =
"id('MyButton')[state:focused()=false()]"
//状態focusedが真であるので、アニメーションを今実行する
//状態が偽に変化した場合、アニメーションを停止する
「par」タイミング要素が、「Mybutton」要素に関連するメディアオブジェクトをレンダリングするアクションを記述することがわかる。Mybutton要素のfocused属性を表すDOMノードのクエリが真となったとき、アクションがトリガされ(すなわち、メディアオブジェクトがレンダリングされる)、Mybutton要素のfocused属性を表すDOMノードのクエリが偽となったとき、アクションが停止する(すなわち、メディアオブジェクトはレンダリングされない)。この例では、レンダリング可能なメディアオブジェクトは、いくつかの状態を帯びるように構成された特徴を有する同一のメディアオブジェクトであるが、レンダリング可能なメディアオブジェクトは異なるものでよい。
図6に示されるプロセスを、図8に関連して以下で論じるプロセッサ802などの、1つまたは複数の一般のプロセッサ、多目的プロセッサ、または専用プロセッサで実装することができる。具体的に述べない限り、本明細書に記載の方法は、特定の順序またはシーケンスに制限されない。さらに、記載の方法またはその要素の一部を同時に行うことができ、または同時に実行することができる。
図8は、プレゼンテーションシステム100の様々な機能構成要素を実装するのに使用することができ、その様々な機能構成要素によってアクセスすることができ、またはその様々な機能構成要素に含めることのできるいくつかの機能構成要素を示す汎用コンピューティングユニット800のブロック図である。コンピューティングユニット800の1つまたは複数の構成要素を、ICマネージャ104、プレゼンテーションマネージャ106、およびAVCマネージャ102を実装するように使用することができ、それらによってアクセス可能となるように使用することができ、それらに含まれるように使用することができる。例えば、図8の1つまたは複数の構成要素を、一緒に、または別々にパッケージ化し、様々な方式でプレゼンテーションシステム100の機能(全体または一部)を実装することができる。
プロセッサ802は、コンピュータ可読媒体804と、コンピュータプログラム806に応答する。プロセッサ802は現実のプロセッサまたは仮想プロセッサでよく、コンピュータ実行可能命令を実行することによって電子装置の機能を制御する。プロセッサ802は、アセンブリレベル、コンパイル済みレベル、またはマシンレベルで命令を実行し、特定のプロセスを実行することができる。そのような命令を、ソースコードまたは任意の他の周知コンピュータプログラム設計ツールを使用して作成することができる。
コンピュータ可読媒体804は、プロセッサ802によって実行可能な命令などのコンピュータ可読データを記録、格納、または送信することのできる、任意の形態の、現在周知の、または後に開発される、任意の数およびローカル装置またはリモート装置の組合せを表す。具体的には、コンピュータ可読媒体804は、半導体メモリ(例えば、読取り専用メモリ(「ROM」)、任意のタイプのプログラム可能ROM(「PROM」)、ランダムアクセスメモリ(「RAM」)、またはフラッシュメモリなど)、磁気記憶装置(フロッピーディスクドライブ、ハードディスクドライブ、磁気ドラム、磁気テープ、または磁気光学ディスク)、光学式記憶装置(任意のタイプのコンパクトディスクまたはデジタルバーサタイルディスクなど)、バブルメモリ、キャッシュメモリ、コアメモリ、ホログラフィックメモリ、メモリスティック、紙テープ、パンチカード、またはそれらの任意の組合せでよく、またはそれらを含むことができる。コンピュータ可読媒体804は、伝送媒体およびそれに関連するデータも含むことができる。伝送媒体/データの例は、限定はしないが、被変調搬送波信号によって搬送されるパケット化または非パケット化データなどの、任意の形態のワイヤラインまたはワイヤレス伝送で具体化されたデータを含む。
コンピュータプログラム806は、データに対する所定のオペレーションを電子的に制御する任意の信号処理方法または格納命令を表す。一般には、コンピュータプログラム806は、コンポーネントベースのソフトウェア開発に関する周知の慣例に従ってソフトウェア構成要素として実装され、コンピュータ可読媒体(コンピュータ可読媒体804など)内に符号化されたコンピュータ実行可能命令である。コンピュータプログラムは、様々な方式で組み合わせることができ、または配布することができる。
プレゼンテーションシステム100の状況で説明した機能/構成要素は、コンピュータプログラムの何らかの特定の実施形態による実装に限定されない。むしろ、機能は、データを搬送または変換するプロセスであり、一般には、プレゼンテーションシステム100の機能要素の任意の組合せのところに位置し、またはそれによってアクセスされる、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができ、または実行することができる。
引き続き図8を参照すると共に、図9は、プレゼンテーションシステム100のすべてまたは一部を実装または使用することのできる動作環境900の例示的構成のブロック図である。動作環境900は一般に、多種多様な汎用または特殊目的コンピューティング環境を示す。動作環境900は、適切な動作環境の一例に過ぎず、本明細書の記載のシステムおよび方法の使用法または機能の範囲に関する何らかの制限を示唆するものではない。例えば、動作環境900は、現在周知の、または後に開発される、パーソナルコンピュータ、ワークステーション、サーバ、ポータブル装置、ラップトップ、タブレットなどのコンピュータのタイプ、または光学式メディアプレーヤや別のタイプのメディアプレーヤなどの任意の他のタイプの電子装置、あるいはそれらの任意の態様のでよい。動作環境900は、例えば分散コンピューティングネットワークまたはウェブサービスでもよい。動作環境900の特定の例は、高精細度DVDムービーの再生を実施する、DVDプレーヤまたはそれに関連するオペレーティングシステムなどの環境である。
図示するように、動作環境900は、プロセッサ802、コンピュータ可読媒体804、およびコンピュータプログラム806を含むコンピューティングユニット800の構成要素を含み、またはそれにアクセスする。ストレージ904は、光ディスクドライブ906によって処理される光ディスクなどの、動作環境900に具体的に関連付けられた追加のコンピュータ可読媒体または異なるコンピュータ可読媒体を含む。周知の、広く入手可能な要素である1つまたは複数の内部バス920を使用して、コンピューティング環境900またはその要素内で、コンピューティング環境900またはその要素に、あるいはコンピューティング環境900またはその要素から、データ、アドレス、制御信号、および他の情報を搬送することができる。
入力インターフェース908は、コンピューティング環境900に入力を提供する。ユーザインターフェースなどの、現在周知の、または後に開発される任意のタイプのインターフェースを使用して入力を収集することができる。ユーザインターフェースは、リモートコントロール、ディスプレイ、マウス、ペン、スタイラス、トラックボール、キーボード、マイクロフォン、スキャニング装置などのタッチ入力装置、およびデータを入力するのに使用されるすべてのタイプの装置でよい。
出力インターフェース910は、コンピューティング環境900からの出力を提供する。出力インターフェース910の例は、ディスプレイ、プリンタ、スピーカ、ドライブ(光ディスクドライブ906や他のディスクドライブなど)などを含む。
外部通信インターフェース912は、チャネル信号、データ信号、コンピュータ可読媒体などの通信媒体を介して別の実体から情報を受信し、または別の実体に情報を送信するコンピューティング環境900の能力を高めるために利用可能である。外部通信インターフェース912は、ケーブルモデム、データ端末装置、メディアプレーヤ、データ記憶装置、携帯情報端末、または任意の他の装置、あるいはそれらの構成要素/組合せなどの要素と、関連するネットワークサポート装置および/またはソフトウェアまたはインターフェースでよく、またはそれらを含むことができる。
図10は、プレゼンテーションシステム100または動作環境900を共に使用することのできるクライアントサーバアーキテクチャ1000の単純化した機能図である。プレゼンテーションシステム100および/または動作環境900の1つまたは複数の態様を、アーキテクチャ1000のクライアント側1002またはアーキテクチャ1000のサーバ側1004で表すことができる。図示するように、通信フレームワーク1003(任意のタイプ、例えば有線またはワイヤレスの任意の公衆ネットワークまたはプライベートネットワークでよい)は、クライアント側1002とサーバ側1004との間の通信を実施する。
クライアント側1002では、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せとして実装することのできる1つまたは複数のクライアント1006が、クライアントデータストア1008に応答する。クライアントデータストア1008は、クライアント1006にとってローカルな情報を格納するのに使用されるコンピュータ可読媒体804でよい。サーバ側1004では、1つまたは複数のサーバ1010がサーバデータストア1012に応答する。クライアントデータストア1008と同様に、サーバデータストア1012は、サーバ1010にとってローカルな情報を格納するのに使用される1つまたは複数のコンピュータ可読媒体804を含むことができる。
オーディオ/ビデオコンテンツと同時に対話式コンテンツをユーザに提示するのに使用される対話式マルチメディアプレゼンテーションシステムの様々な態様を説明した。対話式マルチメディアプレゼンテーションを、再生期間、可変再生速度、ビデオ構成要素、およびIC構成要素を有するものとして一般的に説明した。しかし、上記の構成要素のすべてを使用する必要はなく、使用したときに各構成要素が同時に存在しなければならないわけでもないことを理解されよう。プレゼンテーションシステム100の状況でコンピュータプログラムとして説明した機能/構成要素は、コンピュータプログラムの何らかの特定の実施形態による実装に限定されない。むしろ、機能は、データを搬送または変換するプロセスであり、一般に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装することができ、または実行することができる。
構造的特徴および/または方法論的動作に特有の術語で本発明を説明したが、特許請求の範囲で定義される対象が、上述の特定の機能および動作に必ずしも限定されないことも理解されたい。むしろ、特許請求の範囲を実施する例示的形態として上記の特定の特徴および動作が開示される。
ある要素が別の要素に応答するものとして示されるとき、各要素を直接的または間接的に結合できることをさらに理解されよう。本明細書に示される接続は、実際には、要素間の結合または通信インターフェースを達成するための論理的または物理的なものでよい。接続はとりわけ、ソフトウェアプロセス間のプロセス間通信、ネットワークコンピュータ間のマシン間通信として実装することができる。
本明細書では「例示的」という語は、例、実例、または例示としての役割を果たすことを意味するように使用される。「例示的」なものとして本明細書で説明した本発明の任意の実装または態様は必ずしも、本発明の他の実装または態様よりも好ましいもの、または有利なものと解釈すべきではない。
添付の特許請求の範囲の精神または範囲から逸脱することなく上述の特定の実施形態以外の実施形態を考案できることが理解できるので、本明細書の対象の範囲は、添付の特許請求の範囲によって支配されるものとする。
対話式マルチメディアプレゼンテーションシステムの単純化した機能ブロック図である。 図1に示すプレイリストから確認可能である例示的プレゼンテーションタイムラインの図である。 図1に示す対話式マルチメディアプレゼンテーションに関連するアプリケーションの単純化した機能ブロックダイアグラムである。 図1のタイミング信号管理ブロックをより詳細に示す単純化した機能ブロック図である。 図4に示されるいくつかの時間基準の値に対する例示的オカレンスの効果を連続的タイミング信号に関して示す略図である。 図3に示されるいくつかのアプリケーション命令を使用して対話式マルチメディアプレゼンテーションを再生する方法の流れ図である。 図6に示される方法の諸態様に関連して使用可能な文書オブジェクトモデルの図である。 図1に示される対話式マルチメディアプレゼンテーションシステムの諸態様に関連して使用可能な汎用コンピューティングユニットの単純化した機能ブロック図である。 図1に示される対話式マルチメディアプレゼンテーションシステムを実装または使用することのできる動作環境の例示的構成の単純化した機能ブロック図である。 図1に示される対話式マルチメディアプレゼンテーションシステムを実装または使用することのできるクライアントサーバアーキテクチャの単純化した機能図である。

Claims (13)

  1. 状態変化に応答するようにアプリケーションを構成する方法において、前記アプリケーションが、マークアップ構成要素および少なくとも1つのスクリプト構成要素を含み、対話式マルチメディア環境でビデオストリームと同期される1つまたは複数のグラフィック要素を提供する方法であって、
    ユーザによって生成されたイベントに応答して、前記マークアップ構成要素内のコンテンツ要素の少なくとも1つの状態属性を修正するステップと、
    前記マークアップ構成要素を構文解析して、文書オブジェクトモデル(「DOM」)を作成するステップと、
    前記DOMを周期的に照会して、照会結果として前記少なくとも1つの状態属性を取り出すステップと、
    前記周期的照会に応答して処理をトリガし、それによって前記状態変化に応答するステップと
    を含み、
    記照会結果および/または他の情報の分析に基づいて、前記照会結果が変化しない期間が識別され、その期間中に照会がスキップされる
    方法。
  2. 前記周期的照会が、XPATHクエリを使用して実施される請求項1に記載の方法。
  3. 対話式メディア環境での時間が、一続きのチックを使用してカウントされ、前記XPATHクエリが、各チックで実行される請求項2に記載の方法。
  4. 対話式メディア環境が、HD−DVD、Blu−Ray、Enhanced Versatile Disc、Digital Multilayer Disc、Holographic Versatile Disc、Versatile Multilayer Discのうちの1つから選択された光学媒体の使用によって少なくとも部分的に提供される高精細度DVD環境を含む請求項1に記載の方法。
  5. 前記少なくとも1つの状態属性が、foreground、focused、pointer、actioned、enabled、またはvalueのうちの1つから選択される請求項1に記載の方法。
  6. valueを除く前記少なくとも1つの状態属性のそれぞれが、真または偽として記述可能なブール属性である請求項5に記載の方法。
  7. 前記状態属性の値が、バイナリ値、数値、文字列値、および所定の値の組のうちの1つから選択される請求項1に記載の方法。
  8. 前記DOMが、1つまたは複数のXML文書から作成される請求項1に記載の方法。
  9. 前記処理が、前記イベントを消費することを含む請求項1に記載の方法。
  10. 前記処理が、イベントリスナの使用を介して前記少なくとも1つのスクリプト構成要素によって前記イベントを受信することを含む請求項1に記載の方法。
  11. 前記処理が、前記アプリケーションのフォーカスの変化、Z順序、またはユーザイベントの受信を介して前記対話式マルチメディア環境を操作することを含む請求項1に記載の方法。
  12. コンピュータに請求項1〜11の何れか1項に記載のステップを実行させるプログラムを格納したコンピュータ可読記録媒体
  13. コンピュータに請求項1〜11の何れか1項に記載のステップを実行させるプログラム。
JP2008519404A 2005-07-01 2006-06-22 対話式マルチメディア環境の状態変化への宣言式応答 Expired - Fee Related JP5015150B2 (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/405,736 2006-04-18
US11/405,736 US20070006078A1 (en) 2005-07-01 2006-04-18 Declaratively responding to state changes in an interactive multimedia environment
PCT/US2006/024226 WO2007005302A2 (en) 2005-07-01 2006-06-22 Declaratively responding to state changes in an interactive multimedia environment

Publications (2)

Publication Number Publication Date
JP2009501459A JP2009501459A (ja) 2009-01-15
JP5015150B2 true JP5015150B2 (ja) 2012-08-29

Family

ID=37591305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008519404A Expired - Fee Related JP5015150B2 (ja) 2005-07-01 2006-06-22 対話式マルチメディア環境の状態変化への宣言式応答

Country Status (5)

Country Link
US (2) US20070006078A1 (ja)
EP (1) EP1900198A4 (ja)
JP (1) JP5015150B2 (ja)
KR (1) KR101231323B1 (ja)
WO (1) WO2007005302A2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
US8108787B2 (en) * 2005-07-01 2012-01-31 Microsoft Corporation Distributing input events to multiple applications 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
US8305398B2 (en) 2005-07-01 2012-11-06 Microsoft Corporation Rendering and compositing multiple applications in an interactive media environment
US7941522B2 (en) * 2005-07-01 2011-05-10 Microsoft Corporation Application security in an interactive media environment
US8799757B2 (en) * 2005-07-01 2014-08-05 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
US7707152B1 (en) 2005-07-29 2010-04-27 Adobe Systems Incorporated Exposing rich internet application content to search engines
US7949991B1 (en) * 2005-07-29 2011-05-24 Adobe Systems Incorporated Systems and methods for specifying states within imperative code
US7627566B2 (en) * 2006-10-20 2009-12-01 Oracle International Corporation Encoding insignificant whitespace of XML data
DE102006058214A1 (de) * 2006-12-11 2008-06-19 Bayerische Motoren Werke Ag Kraftfahrzeug
US20080165281A1 (en) * 2007-01-05 2008-07-10 Microsoft Corporation Optimizing Execution of HD-DVD Timing Markup
US7814412B2 (en) * 2007-01-05 2010-10-12 Microsoft Corporation Incrementally updating and formatting HD-DVD markup
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168402A1 (en) * 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8161369B2 (en) 2007-03-16 2012-04-17 Branchfire, Llc System and method of providing a two-part graphic design and interactive document application
US8090731B2 (en) 2007-10-29 2012-01-03 Oracle International Corporation Document fidelity with binary XML storage
US8250062B2 (en) * 2007-11-09 2012-08-21 Oracle International Corporation Optimized streaming evaluation of XML queries
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8881120B2 (en) * 2008-05-02 2014-11-04 Adobe Systems Incorporated Systems and methods for creating multi-state content
US8776078B2 (en) * 2008-05-20 2014-07-08 International Business Machines Corporation Method for dynamically freeing computer resources
US8645822B2 (en) * 2008-09-25 2014-02-04 Microsoft Corporation Multi-platform presentation system
US20110113315A1 (en) * 2008-12-31 2011-05-12 Microsoft Corporation Computer-assisted rich interactive narrative (rin) generation
US9092437B2 (en) * 2008-12-31 2015-07-28 Microsoft Technology Licensing, Llc Experience streams for rich interactive narratives
US9582506B2 (en) * 2008-12-31 2017-02-28 Microsoft Technology Licensing, Llc Conversion of declarative statements into a rich interactive narrative
US20110119587A1 (en) * 2008-12-31 2011-05-19 Microsoft Corporation Data model and player platform for rich interactive narratives
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9043296B2 (en) 2010-07-30 2015-05-26 Microsoft Technology Licensing, Llc System of providing suggestions based on accessible and contextual information
WO2013032955A1 (en) * 2011-08-26 2013-03-07 Reincloud Corporation Equipment, systems and methods for navigating through multiple reality models
US8904373B2 (en) * 2011-08-30 2014-12-02 Samir Gehani Method for persisting specific variables of a software application
CN102752664B (zh) * 2012-06-29 2015-05-20 北京奇虎科技有限公司 一种网页中文本字幕信息的显示方法和装置
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US10417717B2 (en) * 2014-11-26 2019-09-17 Intuit Inc. Method and system for generating dynamic user experience
US20160373498A1 (en) * 2015-06-18 2016-12-22 Qualcomm Incorporated Media-timed web interactions
US20170344523A1 (en) * 2016-05-25 2017-11-30 Samsung Electronics Co., Ltd Method and apparatus for presentation customization and interactivity
CN107798051A (zh) * 2016-08-31 2018-03-13 安提特软件有限责任公司 文件对象模型事务爬行器
WO2020175845A1 (ko) * 2019-02-26 2020-09-03 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2512250B2 (ja) * 1991-09-13 1996-07-03 松下電器産業株式会社 動画表示ワ―クステ―ション
US5394547A (en) * 1991-12-24 1995-02-28 International Business Machines Corporation Data processing system and method having selectable scheduler
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
US6122433A (en) * 1994-10-20 2000-09-19 Thomson Licensing S.A. HDTV trick play stream derivation for VCR
US5717468A (en) * 1994-12-02 1998-02-10 International Business Machines Corporation System and method for dynamically recording and displaying comments for a video movie
JP3701051B2 (ja) * 1995-07-04 2005-09-28 パイオニア株式会社 情報記録装置及び情報再生装置
US5659539A (en) * 1995-07-14 1997-08-19 Oracle Corporation Method and apparatus for frame accurate access of digital audio-visual information
JP3471526B2 (ja) * 1995-07-28 2003-12-02 松下電器産業株式会社 情報提供装置
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
US5949410A (en) * 1996-10-18 1999-09-07 Samsung Electronics Company, Ltd. Apparatus and method for synchronizing audio and video frames in an MPEG presentation system
US5877763A (en) * 1996-11-20 1999-03-02 International Business Machines Corporation Data processing system and method for viewing objects on a user interface
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
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6426778B1 (en) * 1998-04-03 2002-07-30 Avid Technology, Inc. System and method for providing interactive components in motion video
BR9906523A (pt) * 1998-06-11 2000-07-25 Koninkl Philips Electonics N V Aparelho e processo para gravar um sinal de informação de vìdeo digital em um portador de gravação, e, portador de gravação
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
US20030025599A1 (en) * 2001-05-11 2003-02-06 Monroe David A. Method and apparatus for collecting, sending, archiving and retrieving motion video and still images and notification of detected events
US6715126B1 (en) * 1998-09-16 2004-03-30 International Business Machines Corporation Efficient streaming of synchronized web content from multiple sources
GB2344453B (en) * 1998-12-01 2002-12-11 Eidos Technologies Ltd Multimedia editing and composition system having temporal display
US6637031B1 (en) * 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
US6629150B1 (en) * 1999-06-18 2003-09-30 Intel Corporation Platform and method for creating and using a digital container
US6772413B2 (en) * 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US20040220926A1 (en) * 2000-01-03 2004-11-04 Interactual Technologies, Inc., A California Cpr[P Personalization services for entities from multiple sources
US20010039571A1 (en) * 2000-01-06 2001-11-08 Atkinson Paul D. System and method for facilitating electronic commerce within public spaces
US20020157103A1 (en) * 2000-01-07 2002-10-24 Deyang Song Method for digital media playback in a broadcast network
US7725812B1 (en) * 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
US6505153B1 (en) * 2000-05-22 2003-01-07 Compaq Information Technologies Group, L.P. Efficient method for producing off-line closed captions
US7669238B2 (en) * 2000-06-21 2010-02-23 Microsoft Corporation Evidence-based application security
KR100424481B1 (ko) * 2000-06-24 2004-03-22 엘지전자 주식회사 디지털 방송 부가서비스 정보의 기록 재생장치 및 방법과그에 따른 기록매체
US8495679B2 (en) * 2000-06-30 2013-07-23 Thomson Licensing Method and apparatus for delivery of television programs and targeted de-coupled advertising
US7350204B2 (en) * 2000-07-24 2008-03-25 Microsoft Corporation Policies for secure software execution
WO2002015564A1 (en) * 2000-08-16 2002-02-21 Koninklijke Philips Electronics N.V. Method of playing multimedia applications
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
US6967725B2 (en) * 2000-10-13 2005-11-22 Lucent Technologies Inc. System and method for optical scanning
US20020099738A1 (en) * 2000-11-22 2002-07-25 Grant Hugh Alexander Automated web access for back-end enterprise systems
US6792426B2 (en) * 2001-01-10 2004-09-14 International Business Machines Corporation Generic servlet for browsing EJB entity beans
US6500188B2 (en) * 2001-01-29 2002-12-31 Ethicon Endo-Surgery, Inc. Ultrasonic surgical instrument with finger actuator
US6738911B2 (en) * 2001-02-02 2004-05-18 Keith Hayes Method and apparatus for providing client-based network security
US20020188616A1 (en) * 2001-06-07 2002-12-12 Chinnici Roberto R. Database access bridge system and process
DE10129525A1 (de) * 2001-06-21 2003-01-09 Basf Ag Multimodale Polyamide, Polyester und Polyesteramide
WO2003005190A1 (en) * 2001-07-06 2003-01-16 E-Genie Australia Pty Limited Method and system for computer software application execution
US6565153B2 (en) * 2001-07-31 2003-05-20 Johnson Controls Technology Corporation Upper back support for a seat
EP1286349A1 (en) * 2001-08-21 2003-02-26 Canal+ Technologies Société Anonyme File and content management
US6920613B2 (en) * 2001-08-27 2005-07-19 Xerox Corporation Video/text bi-directional linkage for software fault clearance applications
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
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
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
KR100544180B1 (ko) * 2002-03-09 2006-01-23 삼성전자주식회사 마크업 문서를 사용하여 av 데이터를 인터랙티브 모드로 재생하는 장치
TWI247295B (en) * 2002-03-09 2006-01-11 Samsung Electronics Co Ltd Reproducing method and apparatus for interactive mode using markup documents
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
US20030182364A1 (en) * 2002-03-14 2003-09-25 Openwave Systems Inc. Method and apparatus for requesting and performing batched operations for web services
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
US20040039909A1 (en) * 2002-08-22 2004-02-26 David Cheng Flexible authentication with multiple levels and factors
US20040107179A1 (en) * 2002-08-22 2004-06-03 Mdt, Inc. Method and system for controlling software execution in an event-driven operating system environment
EP1403778A1 (en) * 2002-09-27 2004-03-31 Sony International (Europe) GmbH Adaptive multimedia integration language (AMIL) for adaptive multimedia applications and presentations
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
US7328076B2 (en) * 2002-11-15 2008-02-05 Texas Instruments Incorporated Generalized envelope matching technique for fast time-scale modification
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
EP1588230A4 (en) * 2003-01-10 2008-05-07 Nexaweb Technologies Inc NETWORK ORIENTED COMPUTING SYSTEM AND METHOD
US7302057B2 (en) * 2003-01-31 2007-11-27 Realnetworks, Inc. Method and process for transmitting video content
KR20040080736A (ko) * 2003-03-13 2004-09-20 삼성전자주식회사 인터랙티브 컨텐츠 동기화 장치 및 방법
US7735104B2 (en) * 2003-03-20 2010-06-08 The Directv Group, Inc. System and method for navigation of indexed video content
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
JP2004357275A (ja) * 2003-05-07 2004-12-16 Nec Corp 映像記録装置、記録媒体、映像記録方法及びプログラム
US20040244003A1 (en) * 2003-05-30 2004-12-02 Vidiator Enterprises Inc. Apparatus and method for task scheduling for media processing
US7739715B2 (en) * 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams
GB2403697B (en) * 2003-07-09 2006-05-24 Peter Gordon Martin Cycle saddle suspension assembly
US7511718B2 (en) * 2003-10-23 2009-03-31 Microsoft Corporation Media integration layer
US8065616B2 (en) * 2003-10-27 2011-11-22 Nokia Corporation Multimedia presentation editor for a small-display communication terminal or computing device
US7681114B2 (en) * 2003-11-21 2010-03-16 Bridgeborn, Llc Method of authoring, deploying and using interactive, data-driven two or more dimensional content
US7882034B2 (en) * 2003-11-21 2011-02-01 Realnetworks, Inc. Digital rights management for content rendering on playback devices
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 パイオニア株式会社 映像内容認識装置、録画装置、映像内容認識方法、録画方法、映像内容認識プログラム、および録画プログラム
US7801303B2 (en) * 2004-03-01 2010-09-21 The Directv Group, Inc. Video on demand in a broadcast network
JP2005318472A (ja) * 2004-04-30 2005-11-10 Toshiba Corp 動画像のメタデータ
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
JP4039417B2 (ja) * 2004-10-15 2008-01-30 株式会社日立製作所 記録再生装置
US7593980B2 (en) * 2004-11-30 2009-09-22 Cisco Technology, Inc. Application server system and method
US20060123451A1 (en) * 2004-12-07 2006-06-08 Showtime Networks Inc. Enhanced content in an on-demand environment

Also Published As

Publication number Publication date
KR20080021698A (ko) 2008-03-07
EP1900198A2 (en) 2008-03-19
JP2009501459A (ja) 2009-01-15
EP1900198A4 (en) 2011-10-05
WO2007005302A2 (en) 2007-01-11
US20070006078A1 (en) 2007-01-04
KR101231323B1 (ko) 2013-02-07
WO2007005302A3 (en) 2008-07-10
US20140229819A1 (en) 2014-08-14

Similar Documents

Publication Publication Date Title
JP5015150B2 (ja) 対話式マルチメディア環境の状態変化への宣言式応答
JP4959696B2 (ja) 対話型マルチメディアプレゼンテーションの状態ベースタイミング
JP5015149B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期方法
JP4959695B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
US20070006065A1 (en) Conditional event timing for interactive multimedia presentations
JP4907653B2 (ja) メディア・コンテンツのレンダリングの諸側面
JP4812833B2 (ja) 対話型マルチメディアプレゼンテーション管理の同期化の態様
JP2008545335A5 (ja)
JP5619838B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
JP2009500909A5 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090515

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: 20111221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120319

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: 20120508

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: 20120606

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5015150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

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