JP5059124B2 - Hd−dvdタイミング・マークアップ実行の最適化 - Google Patents

Hd−dvdタイミング・マークアップ実行の最適化 Download PDF

Info

Publication number
JP5059124B2
JP5059124B2 JP2009544892A JP2009544892A JP5059124B2 JP 5059124 B2 JP5059124 B2 JP 5059124B2 JP 2009544892 A JP2009544892 A JP 2009544892A JP 2009544892 A JP2009544892 A JP 2009544892A JP 5059124 B2 JP5059124 B2 JP 5059124B2
Authority
JP
Japan
Prior art keywords
machine
storage medium
readable storage
timing
markup
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
JP2009544892A
Other languages
English (en)
Other versions
JP2010516011A (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 JP2010516011A publication Critical patent/JP2010516011A/ja
Application granted granted Critical
Publication of JP5059124B2 publication Critical patent/JP5059124B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • 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
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2579HD-DVDs [high definition DVDs]; AODs [advanced optical discs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Processing Or Creating Images (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Description

高品位ディジタル・バーサタイル・ディスク(HD−DVD)媒体および関係するプレーヤーは、増々普及し広く用いられつつある。この市場に算入する製造業者が増加するに連れて、競争が激化し、ドライブ価格を下落させる結果に繋がる。この価格環境において、HD−DVDプレーヤー内部で走るソフトウェアは、比較的安価な消費者向けハードウェア上で走るのが通例である。
HD−DVDコンテンツおよびスタイル・マークアップ(style markup)を表示のために有形形態(tangible form)に変換するのは、計算処理上コスト高となる。通例、HD−DVDマークアップのレンダリング・レートに対する正当な目標は、容認可能なユーザー体験(experience)に合わせると、毎秒約24フレームである。HD−DVDマークアップを変換しレンダリングする従来の技法では、このレンダリング・レートの目標に到達しようとすると、低コストの消費者向けハードウェア上で計算処理上コスト高のタスクを実行することにより、困難に直面することもある。
本明細書では、高品位ディジタル・バーサタイル・ディスク(HD−DVD)タイミング・マークアップの実行を最適化するシステム、方法、および/または技法(「ツール」)について記載する。ツールは、HD−DVDディスクから読み出すタイミング・マークアップを受け取り、本明細書において記載する最適化方策(strategy)の1つ以上を用いて、タイミング・マークアップの処理を最適化することができる。
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で導入するために設けられている。この摘要は、特許請求する主題の鍵となる特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するために用いられることを意図するのでもない。例えば、「ツール」という用語は、前述の文脈で許容されるのであれば本文書全体を通じて、システム、方法、コンピューター読み取り可能命令、および/または技法を意味することもできる。
HD−DVDタイミング・マークアップの実行の最適化に関するツールについて、以下の図面と関連付けて説明する。本開示および図全体を通じて、同様の構成要素および機構を引用する際には、同じ番号を用いることとする。参照番号の内最初の桁は、その参照番号が導入される図面を示す。
図1は、HD−DVDタイミング・マークアップの実行を最適化する動作環境のブロック図である。 図2は、プレゼンテーション・エンジンおよびタイミング・マークアップのその他の形態のブロック図である。 図3は、タイミング・マークアップの処理を最適化するXPATH表現マネージャーおよび方策の形態のブロック図である。 図4は、タイミング・マークアップを処理するためのデーターおよびプロセス・フローのブロック図である。 図5は、図4に示すデーターおよびプロセス・フローの別の形態のブロック図である。 図6は、ある種のXPATH表現を予め解析し予め計算することを含む最適化方策に関するコンポーネントおよびプロセス・フローのブロック図である。 図7は、イベント・ドリブン表現の最適化に関するコンポーネントおよびフローのブロック図である。 図8は、イベント依存表現の処理を最適化するプロセス・フローのブロック図である。 図9は、有限状態機械を用いた最適化技法のブロック図である。 図10は、共有メモリー・プールを用いたタイミング・マークアップの処理最適化に関するコンポーネントおよびフローのブロック図である。 図11は、タイミング・ツリー横断を減少するためのスケジューラーの使用に関する最適化技法のブロック図である。
全体像
以下の文書は、多くの技法およびプロセスの実行および/または支援が可能なツールについて説明する。以下の論述は、これらのツールがHD−DVDタイミング・マークアップの実行を最適化することができる方法の例について説明する。また、この論述は、ツールが実行することができるその他の技法および/またはプロセスについても説明する。
図1は、HD−DVDタイミング・マークアップの実行を最適化する動作環境100を示す。動作環境100は、一人以上のユーザー102が1つ以上のHD−DVDディスク104を再生することを可能にするとよい。これらのHD−DVDディスク104は、1つ以上の機械読み取り可能ソフトウェア・コンポーネントを含むことができる。これらのコンポーネントは、例えば、1つ以上のマークアップ・ファイル106を含むことができる。マークアップ・ファイル106は、宣言型XMLベース言語(declarative XML-based language)として実現することができ、異なるボキャブラリ即ちマークアップ・コンテンツを含むことができる。
マークアップ・ファイルの例は、少なくともコンテンツ・マークアップ108、スタイル・マークアップ110、およびタイミング・マークアップ112を収容することができる。コンテンツ・マークアップ108は、所与のマークアップ文書の主要<body>セクションに収容され、そのマークアップの中で定義されるオブジェクトまたはエレメントのレイアウト構造全体を記述する。以下に示す表1は、HD−DVDコンテンツ・マークアップのエレメントのツリーを示す。
Figure 0005059124
スタイル・マークアップ110は、オブジェクトまたはエレメントをどのようにフォーマットすることができるかを記述するボキャブラリである。スタイル・マークアップ部分110は、コンテンツ・マークアップ部分108に含まれるエレメントをユーザーに呈示するときに、どのように出現するのかを記述するXMLボキャブラリを含むことができる。言い方を変えると、コンテンツ・マークアップ部分は、どのエレメントをユーザーにレンダリングするか指定することができ、スタイル・マークアップ部分は、これらのエレメントをどのようにしてユーザーにレンダリングするかを指定することができる。
タイミング・マークアップ112は、経時的にそしてユーザーとの対話を通じてコンテンツをどのように修正することができるかを記述するボキャブラリである。HD−DVDタイミング・マークアップとは、本明細書において記載する場合、業界標準のSMIL言語の部分集合であるが、SMIL言語をマークアップ文書の<body>セクションの外側に含むことを可能にする拡張を追加する。例えば、ここに記載するタイミング・マークアップは、「キュー」と呼ばれる特殊タイミング・コンテナを追加する。これは、SMILでは定義されておらず、アニメーション・プロパティを摘要するマークアップ文書におけるエレメントを定義する。
コンテンツ・マークアップ部分、スタイル・マークアップ部分、およびタイミング・マークアップ部分は、宣言型プログラミング言語で実現することができる。しかしながら、スクリプト部分113は、経時的にスタイル・マークアップに非決定論的変化を生ずる命令型プログラミング・ボキャブラリで実現することもできる。
全体的に捕らえて、コンテンツ・マークアップ108、スタイル・マークアップ110、およびタイミング・マークアップ112は文書オブジェクト・モデル(DOM:document object model)115を定義する。DOM115は、XMLボキャブラリを用いたツリー・データー構造として実現することができる。DOMは、複数の個別マークアップ・エレメントを含むことができ、図2ではこれらを全体的に117で示す。前述の表1は、適法の親−子エレメントの組み合わせの集合を図示し、DOM状態115の具体的な例を提示する。
図1は、マークアップ・エレメントの内2つの例を117aおよび117nで示す。しかしながら、DOMの実現例は任意の数のエレメント204を含むことができ、DOMツリーは適して形態であればいずれを取ることもできる。スクリプト113は、DOMを非決定論的に変化させる命令型プログラミング言語であってもよい。
HD−DVDは、対話レイヤ(interactivity layer)を含む。これは、とりわけ、HD−DVD高度アプリケーションがユーザーおよびオーディオ/ビデオ再生システムと対話することができる方法を定める。このような対話レイヤの一例が、HDi(商標)の商品名でMicrosoft Corporation(マイクロソフト社)から入手可能である。HDi(商標)対話層は、高度アプリケーション・コンテンツとして定められたデーター・フォーマットの集合体としてエンコードされている。これらのフォーマットは、コンテンツの宣言型記述を規定し、XMLから導き出すことができる。
動作環境100は、破線116で表すように、ユーザー102が再生のためにHD−DVDディスク104をHD−DVDプレーヤー114に挿入させることができる。HD−DVDプレーヤー114は、118で示す1つ以上のプロセッサーを含む、コンピューターベースのシステムとするとよい。これらのプロセッサー118は、所与の形式またはアーキテクチャを有するもの毎に分類するまたは特徴付けることもできるが、同一の形式またはアーキテクチャを有しても有さなくてもよい。可能な実現例では、プロセッサーは1つ以上の対話型コマンド・プロセッサー(ICP)を含むことができる。
また、HD−DVDプレーヤーは、機械読み取り可能記憶媒体またはコンピューター読み取り可能記憶媒体の1つ以上のインスタンスも含むことができる。これを全体的に120で示す。コンピューター読み取り可能媒体120は、命令を収容することができ、プロセッサー118によっての命令を実行すると、本明細書において記載するツールまたは関係する機能のいずれもが、HD−DVDプレーヤー内部のいずれかのコンポーネントによって実行するように、実行する。プロセッサーは、コンピューター読み取り可能媒体上に埋め込まれたまたはエンコードされた命令にアクセスすることおよび/または実行することができ、および/またはコンピューター読み取り可能媒体に格納されているデーターにアクセスすることもできる。
コンピューター読み取り可能媒体120についての更なる詳細に移ると、これはHD−DVDプレゼンテーション・エンジン12の1つ以上のインスタンスを含むことができる。HD−DVDプレゼンテーション・エンジン122は、例えば、1つ以上のソフトウェア・モジュールを含むことができ、これらをプロセッサーにロードして実行すると、HD−DVDプレーヤーに、タイミング・マークアップ106を含むマークアップおよびその他のエレメントをHD−DVDディスク104からロードさせる。プレゼンテーション・エンジン122は、HD−DVDディスクから読み取ったマークアップをフォーマットし、ユーザーに表示するのに適した描出コンテンツにマップすることができる。図1は、この描出コンテンツを全体的に124で示す。
図1に示すように、HD−DVDプレーヤー114はユーザー・インターフェース126を備えており、これを通じて、ユーザー102はHD−DVDプレーヤーと対話することができる。ユーザー・インターフェース126は、HD−DVDプレーヤーによって備えられるハードウェアを含むことができ、あるいはHD−DVDを接続または結合する他のデバイス、例えば、テレビジョン受像機または表示画面によって設けられるハードウェアを含むことができる。一般に、ユーザー・インターフェース126は、ユーザーがHD−DVDプレーヤーと対話することを可能にするのに適したハードウェアおよび/またはソフトウェア・コンポーネントであればいずれでも表すことができる。図1は、概略的に、ユーザー102とHD−DVDプレーヤー108との間の対話を128で表している。
描出コンテンツ124は、プレゼンテーション・エンジン122が生成するメニュー、プロンプト、またはユーザーからの応答または入力を引き出すその他の項目を含むことができる。この応答または入力は、例えば、口頭即ち発話コマンド、デバイス(例えば、ユーザー・インターフェース126および/またはHD−DVDプレーヤー114と関連のあるリモコン)を通じて入力したコマンド、HD−DVDプレーヤーに設けられているボタンを通じて入力されたコマンド、または適した形態であればその他のいずれでも含むことができる。
コンピューター読み取り可能媒体120に戻り、タイミング・マークアップ112の処理を最適化するために、プレゼンテーション・エンジン122と協同するタイミング最適化エンジン130を含むことができる。本明細書全体を通じて述べるように、タイミング最適化エンジン130は、プレゼンテーション・エンジン122がHD−DVDからのコンテンツをユーザーに、容認可能なユーザー体験を提供するのに十分なフレーム・レートでレンダリングすることを可能にする1つ以上の方策を採用することができる。
図1を用いて動作環境100について説明したので、これよりプレゼンテーション・エンジン122およびタイミング・マークアップ112の更に詳細な説明に論述を移すこととし、図2を用いて提案する。
図2は、プレゼンテーション・エンジン122およびタイミング・マークアップ112の別の形態200を示す。便宜上、以前に説明したエレメントの一部を図2にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
プレゼンテーション・エンジン122は、総合的に202で示す、フレーム・レンダリング・レートで動作することができる。このフレーム・レート202は、HD−DVD104の著作者によって設定することができる。更に具体的には、著作者は目標のフレーム・レートをマークアップの中で指定することができる。例えば、著作者は「プレーリスト」と呼ばれるファイルの中で所望のフレーム・レートを宣言することができる。別の例では、著作者はタイミングセクション毎にクロック分周器を宣言することができる。しかしながら、HD−DVD仕様は、タイミング・マークアップを処理したときにこれらの目標フレーム・レートを達成することは保証していない。著作者は、セクション当たり60フレームの目標フレーム・レートを宣言することができるが、システムが走っているハードウェア・プラットフォームと結合するHD−DVDソフトウェアの実現例の詳細によって、目標フレーム・レートを達成できるか否かが決まる。したがって、本明細書において記載する、タイミング・マークアップ処理の最適化は、目標フレーム・レートを達成する公算を高めることができる。
プレゼンテーション・エンジン116は、全体的に204で示す、タイミング・クロック・パルス即ちチックを受け取る。チックは、HD−DVDから読み取ったマークアップの処理、フォーマット、およびレンダリングを規制または同期する。HD−DVDプレーヤー108は、HD−DVDタイミング・モデルに準拠するようにチックを発生するのであれば、適した技術のいずれを用いてチック204を発生してもよい。
HD−DVDディスク104から読み取ったタイミング・マークアップ106の更なる詳細に移ると、このマークアップはタイミング・コンテナ206の1つ以上のインスタンスを定義することができる。図2は、206aおよび206nで示す、タイミング・コンテナの例を2つ提示する。しかしながら、タイミング・マークアップ106のインスタンスは、任意の数のタイミング・コンテナ206を定義できることを注記しておく。
タイミング・コンテナ206は、異なる形式または形態をなすことができる。図2に示す例では、タイミング・コンテナは順次タイミング・コンテナ208、省略すると<seqs>を含むことができる。タイミング・コンテナは、並列タイミング・コンテナ210、省略すると<pars>を含むことができる。タイミング・コンテナは、キュー・タイミング・コンテナ212、省略すると<cues>を含むことができる。
<Par>および<Seq>タイム・コンテナは、子タイミング・コンテナの1つ以上のインスタンスを収容することができる(即ち、<seqs>208a、<pars>210a、および<cues>212a)。<Par>および<Seq>タイミング・コンテナは、これらの子をそれぞれいつそしてどのように評価するのか制御する。<par>タイミング・コンテナの子は並列に処理され、一方<seq>タイミング・コンテナの子は順次処理される。<Cues>は他のタイム・コンテナを収容しないが、マークアップ・コンテンツに関係がある1つ以上のプロパティ214を収容することができ、あるいはリスナー(listener)218に通知することができる0個以上のイベント216を収容することができる。リスナー218は、HD−DVDアプリケーションの著作者によって書かれたJavaScriptコードとして実現することができる。
<Cue>タイミング・コンテナ212aは、特定のイベント216を収容することができる。更に具体的には、タイミング・コンテナは、当該タイミング・コンテナがいつアクティブおよびインアクティブになるか、そしてどの特定のノードに個々のアニメーション・アクションを摘要するのか定める1つ以上の属性を収容することができる。アニメーション・アクションの例には、<animate>、<set>、および<event>が含まれる。図2は、開始時刻属性220、終了時刻属性222、および持続期間属性224として示す、タイミング関係属性の3つの例を示す。
これらの属性の更なる詳細に移ると、開始時刻属性220は、いつ特定の時間間隔が開始するのかを指定することができ、終了時刻属性222は、いつ特定の時間間隔が終了するのかを指定することができる。持続時間属性224は、開始時刻属性220および終了時刻属性222から導き出すことができ、あるいは属性220および222の代用として、別個に指定することもできる。
以上の論述から、タイミング・コンテナは<par>、<seq>、または<cue>であればよいことが思い出されるであろう。タイミング・コンテナは、コンテナがいつインアクティブまたはインアクティブになるか(例えば、開始、終了、最中)を定める属性を含む。また、<cue>は「選択」属性を含むことができ、この選択属性はアニメーション・アクションを適用する、DOMにおけるノードを定める。「開始」、「終了」、および「選択」の属性は、時間表現を用いることができる。時間表現は、明確な時間間隔、またはXPATH表現(例えば、"id('myButton')[state:focused()=true()]")を含むことができる。
持続期間属性の更なる詳細に移ると、タイミング・コンテナは、一部のインスタンスでは、特定の時間オフセットに関する持続期間属性を指定することができる。これらのインスタンスでは、このような特定の時間オフセットによって定められる間隔は、図2の226において表されるように、「明確な」間隔と見なすことができる。明確な間隔の例には、10秒、20ミリ秒等というような、指定の持続期間を含むこともできる。
DOMに対するユーザーの対話およびその他の変更は、時間間隔の持続期間に影響を及ぼすことがある。例えば、いずれのタイミング・コンテナの「終了」属性もXPATH表現として定義することができる。XPATH表現は、ユーザー入力のため、または著作者によって行われたスクリプトの変更(例えば、113)のために変化する1つ以上のプロパティに対する特定の変化を生じさせるために、DOMに問い合わせることができる。一方、これらの変化はタイム・コンテナの持続期間に影響を及ぼすことがある。これらのインスタンスでは、このような特定の時間オフセットによって定められる間隔は、図2の228において表されるように、「不明確な」間隔と見なすことができる。実現例によっては、タイミング・コンテナがこれらの不明確な間隔をXMLパス表現またはXPATH表現で指定することができる。図2は、230aおよび230nで示す(全体では230)、XPATH表現の例を2つ提示する。しかしながら、タイミング・コンテナの実現例は、適した数のXPATH表現230であればいくつでも含むことができる。
以下に、タイミング・マークアップの一例を示す。
Figure 0005059124
以上の例は、単一parタイム・コンテナ(single par time container)(例えば、210)を定義し、その持続期間は2秒の明確な間隔であり、その関係コンテンツ・ノードセット(related nodeset)は、識別子id='mybutton'を有するエレメントである。このparタイム・コンテナは、1つのseqタイム・コンテナ(例えば、208)を収容し、seqタイム・コンテナはその親parコンテナから2秒の持続期間を引き継ぐ。
parタイム・コンテナは、2つのcueタイミング・コンテナを収容する。第1のcueタイム・コンテナは、1秒間実行し、マークアップ・エレメント'mybutton'の背景色を赤に設定する。第1のcueによって設定された背景色は、プレゼンテーション値を保持することができるプロパティの一例である(例えば、214)。また、第1のcueがアクティブになったとき、第1のcueは"myevent"と命名したイベント(例えば、216)を発火する。
第2のcueは、第1のcueが完了した後に活性化される。何故なら、第1および第2のcueの親コンテナがseqであるからである。第2のcueは1秒間実行する。第2のcueがアクティブである間、マークアップ・エレメント'mybutton'のx位置を0画素から100画素動かし、更にマークアップ・エレメント'mybutton'の背景色を青に変化させる。これらのcueがインアクティブになると、背景色の元のプロパティ値が復元する。
タイミング・コンテナの実現例によっては、1つのXPATH表現を別のXPATH表現の中にネストすることもできる。別の実現例では、XPATH表現によって定められる2つ以上の間隔を親−子関係に構成することもできる。このような場合では、タイミング間隔を「保持」することもできる。これが意味するのは、子間隔が、親またはその他の先祖間隔の持続期間だけ、計算したプロパティ値のその最後の集合を保持するということである。
以上図2を用いてプレゼンテーション・エンジンおよびタイミング・マークアップについて説明したので、これより論述はXPATH表現マネージャーおよびタイミング・マークアップの処理を最適化する方策の説明に移る。ここでは、図3を用いて提案する。
図3は、XPATH表現マネージャー、およびタイミング・マークアップの処理を最適化する方策の形態300を示す。便宜上、以前に説明したエレメントの一部を図3にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
プレゼンテーション・エンジン122が、チック204に応答して、HD−DVD104から読み出したエレメントを処理していくと、タイミング・マークアップ112において1つ以上のXPATH表現218aに遭遇する場合がある。プレゼンテーション・エンジンがマークアップにおいてXPATH表現を突き止めると、プレゼンテーション・エンジンはこれらのXPATH表現を、XPATH表現マネージャー・コンポーネント302に、処理および評価のために転送することができる。図3は、XPATH表現マネージャーに転送されたXPATH表現を、218bで示す。
加えて、XPATH表現マネージャーは、タイミング・マークアップ12を処理していくに連れて生ずるデーター表現スタイルおよび状態の変化も受けることができる。図3は、これらのスタイルおよび状態変化を303で示す。ある時間間隔がアクティブになると、この間隔がアクティブの間に適用する1つ以上のアニメーション・アクション、およびこれらのアニメーション・アクションを適用する特定の目標ノード・セットのリストを収容する。アニメーション・アクションは、例えば、<set>、<animate>、<event> 、および<link>を含む。以下の例は、説明を容易にするために紹介するのであり、可能な実現例を限定するためではない。
Figure 0005059124
上の例は、マークアップ・ファイルの一例のタイミング・セクションおよび本体セクション双方を示す。タイミング・セクションは2つのタイミング・コンテナ、即ち、<par>および<cue>を含む。<par>は未定義であるが<cue>を収容し、「選択」属性によって関連付けられるノード−セットを動かす。「選択」属性は、一定のXPATH表現=id('div2')として定義されており、id=div2であるエレメントを意味する。この<cue>の「開始」属性は、不明確なXPATH表現として定義されており、id='animate1'であるエレメントの活動化状態(actioned state)が真になったときに<cue>がアクティブになることを意味する。一旦この条件が満たされると、時間間隔(この場合、<cue>)がアクティブになり、時間間隔が、それが収容するアニメーション・アクションに適用される。この例では、アニメーション・アクションは以下を含む。
1)<animate>:間隔の持続期間中、ある範囲の値においてstyle:x positionを目標ノード−セット(この場合、'div2')に内挿補間する。
2)<set>:値'blue'を、目標ノード−セット'div2'に対するstyle:backgroundColorプロパティに適用する。
3)<event>:間隔がアクティブにある時点でのみ、名称が'myEvent'であるイベントを目標ノード−セット'div2'に発火する(fire)。著作者によってスクリプトの中に定義されているリスナー関数(例えば、218)が、この通知を受けることができ、この通知を受けたときに、スクリプトにおけるいずれの数の動作でもコールすることができる。
XPATH表現マネージャー・コンポーネントは、XPATH表現を評価する命令を収容した1つ以上のソフトウェア・モジュールを含むことができる。加えて、XPATH表現マネージャー302は、XPATH表現218を最適化エンジン130に転送して、XPATH表現218の処理を最適化できるか否か判断することができる。図3は、218cにおいて、最適化エンジンに転送されたXPATH表現を示す。
場合によっては、最適化エンジンは、本明細書において記載する方策の1つ以上を用いて、XPATH表現の処理を最適化することができることもある。これらの場合、最適化エンジンは、XPATH表現の最適化評価から得られる結果304を返すことができる。図3が示す例では、最適化エンジンは結果304をXPATH表現マネージャー302に、またはこれを通じて戻している。
場合によっては、XPATH表現218は、本明細書に記載する方策のいずれを用いても、処理の最適化に向いていないこともあり得る。これらの場合、XPATH表現マネージャー302自体がこれらのXPATH表現を評価し、値306をプレゼンテーション・エンジンに返すことができる。値306は、最適でない評価の結果を表す。
最適化エンジン124は、タイミング・マークアップ106の処理を最適化する1つ以上の方策を実現するソフトウェア・モジュールを含むことができる。図3は、これらの方策をブロック形態で示し、以後の図面においてこれらの方策について詳細に示す。
ブロック308において表すように、1つの方策は、HD−DVDから読み取ったマークアップの中に定義されているXPATH表現の少なくとも一部を予め解析し、予め計算することを含むことができる。ブロック310で表す方策は、合焦状態(focus state)に依存する表現について処理を最適化することを含むことができる。ブロック312で表す方策は、有限状態機械を用いることによって、処理を最適化することを含むことができる。ブロック314で表す方策は、相補表現を認識し評価することによって、タイミング・コンテナの処理を最適化することを含むことができる。ブロック316で表す方策は、タイミング関係データー構造を格納するために共有メモリー・プールを用いることによって、タイミング・コンテナの処理を最適化することを含むことができる。ブロック318で表す方策は、スケジューラーを用いることによって処理を最適化することを含むことができる。
以下ではこれら種々の方策308〜318について更に詳細に説明するが、本明細書における記載の実現例は、これらの方策の内1つ、いくつか、または全てを適宜含んでもよいことを注記しておく。また、これらの方策は、別個のソフトウェア・モジュールで実現してもよく、あるいは1つ以上の共通モジュールに一体化してもよい。したがって、図3はこれらの方策を説明および参照を容易にするためにのみ別個のブロックで示すが、これら可能な実現例を限定するためではないことを注記しておく。
最適化エンジン130は、XPATH評価エンジン320と協同して、最適化方策308〜318のいずれかを用いて、最適化されていないいずれのXPATH表現でも再評価することができる。XPATH評価エンジン320は、W3C XPATH 2.0の派生であるHD−DVD XPATHシンタックスに準拠することができる。XPATH表現マネージャー302は、直接XPATH評価エンジン320をコールして、所与のXPATH表現を再評価することができる。図3における破線218dは、このコールを表し、XPATH表現はXPATH評価エンジン320への入力として供給される。一方、XPATH評価エンジン320は評価結果322を生成し、これらの結果を最適化エンジンに供給する。
XPATH表現マネージャーおよびタイミング・マークアップの処理を最適化する様々な方策について、図3を用いて説明したので、これよりタイミング・マークアップを処理するためのデーターおよびプロセスの説明に移る。ここでは、図4を用いて提案する。
図4は、タイミング・マークアップを処理するためのデーターおよびプロセス・フロー400を示す。便宜上、以前に説明したエレメントの一部を図4にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。加えて、図4はデーターおよびプロセス・フロー400の一部の形態を、ある種のコンポーネントによって実行するように示すが、これは説明を容易にするためであり、限定ではない。
ブロック402は、クロック・パルス即ちチック(例えば、204)の受信に応答してクロック・タプル(clock tuple)を発生することを表す。クロック・タプルは、タイトル・クロック、ページ・クロック、およびアプリケーション・クロック値を収容することができる。チックが発生すると、ブロック402は対応するクロック・タプルを発生する。これらのクロック・タプルは、同じクロック基準と同期が取られている。図4に示すように、プロセッサー(例えば、ICP112)がブロック402を実行することができる。実現例によっては、プロセッサー・ボード上にある発振器または同様のタイミング・エレメントがブロック402を実行してもよい。他の実施形態では、発振器またはタイミング・エレメントはプロセッサーの外部であってもよい。
ブロック404は、クロック・パルスに応答してオンチック・メッセージを作成して送ることを含むことを表す。このオンチック・メッセージは、図4に示すプロセス・エレメントの残りの部分に対する通知メカニズムを備え、クロック・パルスが発生したことを示す。
ブロック406は、ブロック402において作成したクロック・タプルを、例えば、プレゼンテーション・エンジン(例えば、116)に送ることを表す。図4は、クロック・タプルをプレゼンテーション・エンジンに408において送るように示している。クロック・タプル408は、410で示す、オンチック・メッセージを含むことができる。オンチック・メッセージ410は、例えば、現ページ・クロック値412、タイトル・クロック値414、およびアプリケーション・クロック値416の内1つ以上を含むことができる。
プレゼンテーション・エンジンにおいて、ブロック418はクロック・タプル408を受け取ることを表す。ブロック420は、入力クロック・タプルにおいて表されるチックについて時間解明(time resolution)を実行する。ブロック420を実行する際、プレゼンテーション・エンジンは、文書オブジェクト・モデル(DOM)422のようなデーター構造に照会する。DOM422は、例えば、HD−DVD(例えば、104)上にエンコードされここから読み取り可能な、コンテンツ・マークアップ、スタイル・マークアップ、スクリプト、およびタイミング・マークアップ106を収容することができる。DOMは、XMLボキャブラリを用いたツリー・データー構造として実現することができる。
DOM422は、チック204が発生すると関連が生ずる1つ以上のXPATH表現(例えば、218)を処理のために格納することができる。DOMは、これらの XPATH表現218を、プレゼンテーション・エンジンからの照会に応答して供給することができる。これは、図4においてブロック422および420を結ぶ破線によって示されている。
ブロック424は、クロック・タプルに応答して、アクティブ・アニメーション・リストを更新することを表す。更に具体的には、ブロック424は、新たなクロック・タプルに合わせてアクティブ間隔リストを更新することを含むことができる。総合的な処理オーバーヘッドを低減するために、以前の結果をキャッシュしておくとよく、新たなクロック・タプルによって生ずる変化のみを、アクティブ間隔リストにおいて反映させる。タイミング間隔がアクティブになると、これらをアクティブ間隔リストに追加する。逆に、タイミング間隔がインアクティブになると、これらをアクティブ間隔リストから取り除く。
アクティブ間隔リストは、どの間隔がアクティブであるかを示す。言い方を変えると、ブロック424は、XPATH表現において指定されているタイミング間隔のどれが、所与のチックにおいてアクティブであるか、またはアクティブになるかを判定することを含むことができる。所与の時点においてアクティブであるタイミング間隔を「アクティブ間隔」と呼ぶ。
ブロック426は、アニメーション処理を実行することを表す。これは、アクティブ間隔を評価し、アクティブ間隔に対して新たなプレゼンテーション値を計算することを含むことができる。これらの間隔の値を積層し、種々の方法で層を組み合わせたりまたは覆い隠せるようにしてもよい。「プレゼンテーション値」という用語は、所与の時点に対する正味の値即ち有効値を意味する。プレゼンテーション値は、所与の間隔中ユーザーに接触可能にするが、他の値は、この値と関連付けること、積層の中に隠すこと、および/またはこの総合的なプレゼンテーション値に寄与するように組み合わせることもできる。ブロック426は、全体的に428で示す、サンドウィッチ・モデルに基づいて、これら新たなプレゼンテーション値を計算することを含むこともできる。サンドウィッチ・モデルは、所与のチックに対してプレゼンテーション値を指定することができ、更にDOMのレイアウト・セクションにおいて念頭においているノードと関連のある動的プロパティを指定することができる。
ブロック430は、ブロック426から得られたプレゼンテーション値に対するフォーマット処理およびレイアウト動作を表す。ブロック430は、拡張可能スタイルシート言語(XSL)を用いたフォーマット処理およびレイアウトを指定することを含むことができる。
以上、図4を用いて、タイミング・マークアップを処理するためのデーターおよびプロセス・フローについて説明したので、これより、これらのデーターおよびプロセス・フローの一部の形態に関する更なる詳細の説明に移る。ここでは、図5を用いて提案する。
図5は、図4に示したデーターおよびプロセス・フローの別の形態500を示す。便宜上、以前に説明したエレメントの一部を図5にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
図5に示すように、DOM422は、複数の個別マークアップ・エレメントを含むことができる。図5では、これらを全体的に502で示す。図5は、マークアップ・エレメントの内3つの例を502a、502b、および502nで示す。しかしながら、DOMの実現例は、任意の数のエレメント502を含むことができ、DOMツリーは適した形態であればいずれでも取ることができる。これらのマークアップ・エレメントは、ユーザーに画面上で描出するものについての場面記述を定めることができる。
図4に示すように、ブロック424は、アクティブ・アニメーション・リストを生成することを表す。アクティブ・アニメーション・リストは、複数のタイミング・コンテナを含むことができる。ブロック424は、アクティブ・アニメーション・リストの中にあるタイミング・コンテナを開始時刻属性(例えば、図2における208)でソートすることを含むことができる。これをブロック504で表す。また、ブロック424は、ブロック506で表すように、アクティブ・アニメーション・リストの中にあるタイミング・コンテナを字句単位でソートすることも含むことができる。
タイミング間隔のソート処理または整列は、しかるべきデーター構造を用いて「現場」で(in-place)で行うこともできる。本明細書において説明する技法を用いると、クロック・チック毎に全てのアクティブなタイミング間隔をソートし直す、または整列し直す必要はない。例えば、データー構造は、最終時刻、およびアクティブ間隔リストに追加されたタイミング間隔を追跡することができる。データー構造は、デフォルトで、最新のタイミング間隔をアクティブ間隔リストの終端に追加するように、プロセス400および500を駆動した統計的証拠を収容することができる。例外的な場合にのみ、新たなタイミング間隔に適した挿入点を突き止めるために、プロセスがアクティブ間隔リストを遡って調べることもある。通例、適した挿入点は、最後に追加した間隔に近接している。しかしながら、この挿入点を突き止めるには、HD−DVDタイミング・マークアップの本体の以前の統計的分析に基づくとよい。
ブロック426に移り、このブロックは、更に、アクティブ・アニメーション・リストに含まれるアクティブ間隔の処理も表すことができる。これをブロック508で表す。また、ブロック426は、ブロック510で表すように、現在のチックに対する新たなプレゼンテーション値を計算することも含むことができる。ブロック426は、ブロック512で現すように、マークアップ特定イベントを生成することを含むことができる。最後に、ブロック428は、ブロック514で現すように、いずれのインアクティブなタイミング間隔も復元することを含むことができる。
本明細書において示すツールおよび技法を用いると、プロセス400および500はXPATH表現の処理を最適化することができる。本明細書に記載するようにXPATH表現の処理を最適化すると、フレーム・レートの高速化を達成し、HD−DVDコンテンツと対話するときに、ユーザーまたはビューアにより良い操作性(experience)を提供することができる。
以上、図5を用いて、これらのデーターおよびプロセス・フローの別の形態について説明したので、これより、図6から開始する、最適化方策の更に詳細な説明に移る。
図6は、ある種のXPATH表現を予め解析し予め計算することを含む最適化方策に関するコンポーネントおよびプロセス・フロー600を示す。便宜上、以前に説明したエレメントの一部を図6にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
図6に示すように、最適化エンジン(例えば、124)は、ある種のXPATH表現を予め解析し予め計算するのに適したソフトウェア・コンポーネントを含むことができる。図3は、このようなソフトウェア・コンポーネントの例を、図3における308で示し、ブロック308を図6にも引き継いでいる。最適化エンジンは、XPATH表現マネージャー(例えば、302)と協同することもできる。
図6は、予備解析および予備計算によるXPATH表現を最適化するプロセス・フロー600を示す。ブロック602は、XPATH表現マネージャーが受け取った、入力XPATH表現の解析を現す。図6は、218のXPATH表現の例を引き継いでいる。
ブロック604は、入力XPATH表現218の中で発生した1つ以上の中間XPATH表現を識別することを表す。図6は、これら中間表現の例を2つ、606aおよび606nで示す。しかしながら、所与のXPATH表現218の中には、いずれの数の中間表現606が発生してもよい。
ブロック608は、中間表現606をキャッシュし、これらをDOMツリー内部の対応するエレメントまたはノードと関連付けることを表す。DOMツリー422および関係するノード502を図6に引き継ぐ。キャッシュ610は、DOMツリーおよび関係するノードを格納することができる。
ブロック612は、XPATH表現全体についての結果を計算することを表すことができる。これは、XPATH表現全体を構成することができる中間表現に対して計算した結果とは別個である。以下で更に詳細に説明するが、あるクロック・チック上では、中間XPATH表現のいずれも値が変化せず、したがってXPATH表現全体の値が一定のままとなっている場合もある。
ブロック614は、XPATH表現全体についての値をキャッシュすることを表す。所与のチックの後XPATH表現全体の値が一定のままである例では、XPATH表現全体の直前値をキャッシュから読み出せばよい。
尚、ブロック602〜608は、ブロック612〜614と並列に実行してもよいことを注記しておく。このように、XPATH表現全体を解析して中間表現(例えば、606aおよび606n)を得て、種々の中間表現に対して値を計算しキャッシュすることができる。その間に、XPATH表現全体に対する値を、ブロック616で表すように、計算しキャッシュすることができる。
ブロック618は、チックまたはその他のタイミング・イベントを受信することを表す。チックに応答して、ブロック620は、予め解析し予め計算してあり、キャッシュに格納されている中間表現(例えば、606)を評価することを表す。また、ブロック620は、予め計算し、キャッシュに格納されている全体表現(例えば、616)の評価も含むことができる。ブロック622は、ブロック620において行った評価から得られる値を返送することを表す。その後、プロセス・フロー600はブロック618に戻り次のチックを待つことができる。
図6に示す技法では、中間表現は、ノード−セットの二進表現、演算子の二進リスト、および予測フィルタの二進表現を含むことができる正準形(canonical form)に対する各XPATH軸を完全に解明する。予測フィルタ以外の全ては、完全に解明することができる。これが意味するのは、中間表現が完全に解析されており、軸ノードセット(axis node-sets)が、当該軸におけるDOMノードのリストを表す参照用データー構造を参照し、予測フィルタはその宣言型形態になっている元のストリング・データーを、再解釈を必要とせずに効率的に評価することができる一層単純な二進形態に変換したということである。
これらの表現をキャッシュするには、異なるメカニズムによって行うこともでき、時間間隔ノードをカプセル化するデーター構造/オブジェクト上に、解析した表現に対する参照を格納することを含む。ロードの時点、または連続オンチック/レイアウト動作以前であればいずれの時点でも、XPATH表現を解析し、予め計算し、二進正準形に変換することができる。尚、この動作は所与のDOMに対して1回だけ行われ、DOMが突然変異した場合にのみ再度行われることを注記しておく。一旦XPATH表現を解析し、少なくとも部分的に解明(場合によっては、完全に解明)したなら、表現マネージャーは、予測フィルタ上のみで表現を評価することができる。予測フィルタも簡略化されている。
以下の例について考える。
Figure 0005059124
XPATH表現'//button[style:backgroundColor()='red']'は、エレメント名が"button"である、XML DOMにおけるエレメントの全てに問い合わせ、その集合から、style:backgoundColorプロパティの現計算値が値'red"に等しいのであれば、いずれでも返すことを意味する。
典型的な環境では、この表現を最初に解析し、その後評価することができる。解析フェーズでは、元のストリングを一連の1つ以上のトークンに変換し、これらを参照データー構造に格納する。この参照データー構造は、元のストリング表現を簡略化した効率的な形態で記述する。通例、表現を解析するには、回帰下降解析アルゴリズムを用いればよい。しかしながら、他の解析アルゴリズムおよび手法も用いることができる。
解析フェーズの間に実行することができるプロセスの1つに、軸解明がある。軸解明とは、予測フィルタの0個以上が動作する1つ以上のノード・セットを作成するプロセスのことを言う。各時間間隔がその不明確なXPATH表現を解析するにつれて、間隔は、解析し部分的に解明した表現に対する参照を維持する。通例、この参照は、基礎のDOMが突然変異しない限り(HD−DVDアプリケーションでは通常希である)、この解析フェーズを再度実行するいずれの必要性も排除する。
一旦解析フェーズが完了したなら、表現評価である第2フェーズには一層簡略化し効率的な二進データー構造が用いられる。表現評価は、簡略化したデーター構造に対して行われ、0個以上の予測フィルタに基づいて、結果を解明し生成することのみを含む。予測フィルタも二進正準形で表されているので、表現評価に関する処理オーバーヘッドが低減する。
図6に示す方式の下では、XPATH表現を解析するという時間がかかり処理集約的なタスクは1回だけ行えばよく、中間表現は部分的に(または、場合によっては完全に)解明される。これらの最適化は、XPATH表現の処理および評価に関連する処理オーバーヘッドを大幅に低減することができる。
以上、図6を用いて、表現の予備計算を含む最適化方策について説明したので、これより、イベント・ドリブン表現を含む最適化方策の更に詳細な説明に移る。
イベント・ドリブン表現を含む最適化方策の更なる詳細に移り、図3は、最適化エンジン124によって供給することができる、イベント・ドリブン表現を310において含む最適化方策を示す。これらの最適化方策は、不明確な表現を、イベントの発生によって駆動される、またはイベントの発生に依存する表現に分離することを含むことができる。これらの表現は、基礎の値をポーリングで決定することができる表現とは区別する。例えば、タイミング・コンテナ(例えば、par、seq、およびcue)は、HD−DVD状態名称空間を用いて、いつそれらのそれぞれの間隔がアクティブまたはインアクティブになるか定めることができる。対話状態(例えば、state:foreground、state:focused、state:pointer、state:actioned、state:value、およびstate:enabled)は、主に、ユーザーがコントローラを通じて 始動するイベントから駆動することができる。これらのイベント・ドリブン・イベントは、タイミング・マークアップの処理からは、帯域外で扱うことができる。これらのイベントまたは状態遷移は、イベント・ドリブン・メカニズムを誘起するために用いることができ、チック毎に実行する表現評価を不要にするか、またはその回数を減らすことができる。
HD−DVD仕様では、コントローラ・イベント、即ち、「ジェスチャー」をどのようにしてプレゼンテーション・エンジンに伝搬するかについてのモデルを定める。これらのイベントは、「チック」処理からは帯域外で送ることができ、マークアップDOMの「状態」名称空間に影響を及ぼす可能性がある。HD−DVD仕様では、サンドイッチ・モデルの観点から、「状態」への変化が直ちにDOMにおける基礎属性の変化に至るため、「状態」名称空間を「スタイル」名称空間とは別個に定めている。
状態値は、チックおよびレイアウト処理からは帯域外で扱われるので、ジェスチャー・イベントを扱うプロセスは、後にオンチック処理の間に扱われるアニメーション・リストを管理するデーター構造に関係付けることもできる。状態値を変化させると、この状態変化の解明を待っているいずれのXPATH表現にも直接結び付けることができる。
begin XPATH表現を収容する次のcueについて考える。
Figure 0005059124
このcueは、state:focused属性が、一意の名称が'myButton1'であるエレメントに対して「1」に設定されたときに開始することを宣言する。プレゼンテーション・エンジン内におけるジェスチャー処理ロジックが、ユーザー入力およびその後の状態管理を管理することができる。この表現が真になるときを求めてXPATHエンジンを継続的にポールする代わりに、ジェスチャー処理ロジックは、XPATH表現を評価することなく、XPATH表現を解明することを可能にする所定の知識を有することができ、これによってXPATH表現を評価する際のオーバーヘッドを回避する。
以上、イベント・ドリブン表現の最適化に関する予備処理について説明したので、これより、イベントが発生するときに実行することができる処理の説明に移る。これを、図7を用いて提案する。
図7は、イベント・ドリブン表現の最適化に関するコンポーネントおよびフロー700を示す。便宜上、以前に説明したエレメントの一部を図7にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
「イベント」または「複数のイベント」という用語は、本明細書において用いる場合、ユーザー入力によって生ずるスタイルおよび状態に対する変化、ならびにアニメーションおよび/またはスクリプトから生ずるスタイルおよび状態に対する変化のことを言う。更に具体的には、XPATH表現マネージャー(例えば、302)はプレゼンテーション・エンジン(例えば、122)との関係を確立し、その下において、XPATH表現マネージャーは、前述のように、著作者が定めるスクリプト・コード、ユーザー入力、またはアニメーションから生ずる、状態およびスタイル・プロパティへの変化を受け入れる。言い換えると、スクリプト・コードは0個以上のプロパティ値(状態およびスタイル双方)を修正する可能性があり、ユーザー入力はいずれの対話エレメントの状態でも変化させる可能性があり、アニメーション(即ち、タイミング・エレメントの処理)はエレメントの状態およびスタイルの変化を生じさせる可能性がある。XPATH表現マネージャーは、これらの入力を受け入れ、それに応じてXPATH表現のその内部キャッシュを管理し更新する。
既に説明したように、ユーザー(例えば、102)は入力をHD−DVDプレーヤー(例えば、図1における108)に供給することができる。例えば、ユーザーはコマンドを入力し、プレゼンテーション・エンジン(例えば、116)が表示するプロンプトまたはメニューに応答することができる。図7は、このようなユーザー入力を全体的に702で示し、発話コマンド、遠隔制御デバイスによって入力したコマンド、またはHD−DVDプレーヤー上のボタンを通じて入力したコマンドなどを含むことができる。プレゼンテーション・エンジンは、ユーザー入力702を受け取って処理するジェスチャー処理ロジック704を含む、またはこれと協同することができる。
ジェスチャー処理ロジック704は、ユーザー入力702に応答して発生する個々のイベントを認識することができ、これらのイベントに対応する識別子を用いて、キャッシュ706に問い合わせることができる。図7は、このような識別子の例を708において提示する。図7は、これらの照会を710で示す。一方、キャッシュ706は、入力イベント識別子708と一致するいずれのフィールドでも戻すことができる。入力イベント識別子がキャッシュ内のいずれかのフィールドまたはレコードと一致した場合、キャッシュは一致したフィールドまたはレコードと関連のある、いずれの評価済みの表現712でも返すことができる。表現712は、ユーザー入力702から生ずるイベントに応答して値が変化する可能性がある表現を含む。
プレゼンテーション・エンジンに移り、チック204が発生すると、プレゼンテーション・エンジン116は、これらのチックに応答して、DOM422からXPATH表現218を受け取ることができる。プレゼンテーション・エンジン116は、XPATH表現218を、キャッシュ706から返されたいずれのイベント・ドリブン表現712またはイベント依存表現712とでも比較することができる。この比較によって、評価がユーザー入力702から生ずるイベントには依存しないXPATH表現を識別し、更に、評価がこのようなイベントのために変化する可能性があるXPATH表現を識別する。前者をイベント独立表現と称することができ、218aで示す。後者をイベント・ドリブンまたはイベント依存表現と称することができ、218bで示す。
これより、イベント独立表現218aに移ると、これらの表現の値または評価は、ユーザー・イベントのために変化することはない。つまり、このような表現の以前の値が既にキャッシュされている場合(例えば、キャッシュ714に)、これら以前の値は不変であり、最新であり、正しいままである。したがって、プレゼンテーション・エンジン116はこれらのイベント独立表現218aを、302aで示す、XPATH表現マネージャーのインスタンスに転送することができる。XPATH表現マネージャー302aは、これらイベント独立表現の以前の値をキャッシュ714から読み出すことができる。XPATH表現マネージャー302aは、次に、これら評価済みの表現(716で示す)についての値を、使用のためにプレゼンテーション・エンジンに転送することができる。
これより、イベント依存XPATH表現218bに移ると、これらの表現は、ユーザー入力702のために値または評価が変化する可能性がある。これらの場合、プレゼンテーション・エンジン116は、いずれのイベント依存表現218bも、302bで示す、XPATH表現マネージャーのインスタンスに転送することができ、イベント依存表現218bを再評価し、718で示す、これら再評価した表現の更新値を返す。
図7は、XPATH表現マネージャーの異なるインスタンスを示すが、これは図示および参照を容易にするためであり、可能な実現例を限定するためではない。更に具体的には、実現例によっては、1つのXPATH表現マネージャー302がイベント独立表現218aおよびイベント依存表現218b双方を処理する場合もある。
図8は、イベント依存表現またはイベント・ドリブン表現の処理を最適化するプロセス・フロー800を示す。図8は、フローチャート形式で、図7と関連付けて例示し説明した処理を示す。便宜上、以前に説明したエレメントの一部を図8にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
加えて、図8は、プレゼンテーション・エンジン(例えば、116)および最適化エンジン(例えば、124)に対応する列毎に処理エレメントの一部を並べているが、これも説明を容易にするためであり、限定ではない。最適化エンジンは、イベント・ドリブン表現(例えば、310)の処理の最適化に関するソフトウェア・コンポーネントを含むことができる。
ブロック802は、ユーザーからの入力を受信することを表す。図7は、ユーザーの一例を102で示し、ユーザーから受け取る入力の一例を802で示す。
ブロック804は、ブロック802において受け取ったユーザー入力から生ずるあらゆる変化またはイベントを識別することを表す。ブロック804は、既定のイベント識別子(例えば、図7における708)に対応する可能性があるイベントであればいずれでも識別することを含むことができる。これらの既定イベント識別子は、これらのイベントの結果値が変化する可能性があるいずれのXPATH表現の識別も可能にすることができる。
ブロック806は、イベント・ドリブンまたはイベント依存表現を識別することを表す。ブロック806は、対応するXPATH表現の内、1つ以上の基礎イベントが発生したときに値が変化する可能性があるものに関係するイベント識別子のキャッシュに問い合わせることを含むことができる。図7は、イベント識別子708およびイベント依存表現712と共に、このようなキャッシュの例を706で提示する。
ブロック808は、チックまたはその他のタイミング入力が生じたことの指示を受け取ることを表す。図7および本明細書におけるその他の図面では、チックの例を204で示す。
ブロック810は、ブロック808において受け取ったチックに応答して、1つ以上のXPATH表現を受け取ることを表す。図7およびその他の図面では、XPATH表現の例を218で示し、ブロック810は、これらのXPATH表現をDOM(例えば、図7における422)から受け取ることを含むことができる。
尚、ブロック802〜806において表す処理は、ブロック808および810において表す処理と並列に進めてもよいことを注記しておく。このように、プロセス・フロー800は、入力タイミング・チックも処理しつつ、入来するユーザー・イベントを処理することができる。
ブロック812は、ブロック810において受け取ったXPATH表現が、ブロック802において受け取ったユーザー入力から生ずるいずれかのイベントに依存するか否かを評価することを表す。XPATH表現がイベント・ドリブンである、即ち、イベント依存である場合、これらの表現の値は、ブロック802において受け取ったユーザー入力に関係するイベントのために変化している可能性がある。したがって、プロセス・フロー800はYes分岐814を取りブロック816に進む。ブロック816は、ユーザー・イベントの発生に照らし合わせて、いずれのイベント・ドリブンXPATH表現も再評価することの要求を表す。ブロック816は、XPATH表現マネージャー(例えば、302)に表現を再評価することを要求することを含むとよい。図8は、この要求を818で表す。
XPATH表現マネージャー302に移り、ブロック820はXPATH表現の評価要求を受け取ることを表す。ブロック820は、イベント依存即ちイベント・ドリブンであるXPATH表現の再評価要求を受け取ることを含むことができる。
ブロック822は、要求818に応答して1つ以上のXPATH表現を評価することを表す。ブロック822は、1つ以上のイベントの発生に応答して、1つ以上のイベント・ドリブンXPATH表現を再評価することを含むことができる。
ブロック824は、ブロック822において表現を再評価したことによって得られる値を送ることを表す。言い方を変えると、ブロック824は、表現が依存するいずれのイベントの発生をも考慮するように、表現の値を更新することを表す。図8は、826における表現の再評価の結果を示す。
ブロック828は、ブロック824における表現を再評価した結果を受け取ることを表す。図8に示す例では、プレゼンテーション・エンジンがブロック828を実行することができる。
評価ブロック812に戻って、入力XPATH表現がユーザー・イベントに依存しない場合、プロセス・フロー800はNo分岐830を取りブロック832に進むことができる。ブロック832は、この表現の以前の値を読み出すことを表す。例えば、ブロック832は、以前に表現を評価して、キャッシュ(例えば、714)に格納されている結果を読み出すことを含むことができる。このようにして、プロセス・フロー800は、基礎のユーザー・イベントの発生に値が依存しないいずれのXPATH表現についてもブロック816〜828において表す処理を回避することができる。
以上、図8においてイベント・ドリブン表現の処理を最適化するプロセス・フロー800について説明したので、論述は有限状態機械を用いた最適化技法の説明を表す。ここでは、図9を用いて提案する。
図9は、有限状態機械を用いた最適化技法900を示す。便宜上、以前に説明したエレメントの一部を図9にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
図9では、全体的に312で表す、有限状態機械を含む最適化技法に関する処理の更に詳しい説明を行う。最適化エンジン124は、これらの最適化技法を備えることができる。
本明細書において記載するような有限状態機械は、種々のタイミング間隔およびそれらに関係する先祖を効率的に処理するために、アニメーション・エンジンに埋め込むことができるメカニズムを設ける。基本的な状態は、インアクティブ、アクティブ、およびホールドである。所与のタイミング間隔の間における中間状態変数は、再起動可能、未決、および解決済みを含むことができる。また、状態変数はいずれの指定された開始、終了、および持続期間属性でも含むことができる(該当する場合)。図2は、このような属性の例を220、222、および224で示す。
アニメーション・エンジン内においてこの状態機械メカニズムを採用すると、特定のタイム・シート(time sheet)内における時間間隔の効率的な処理が可能になる。何故なら、タイミング間隔のサブツリー(sub-tree)を丸ごと飛び越し易くなるからである。可能な実現例を限定することなく、「タイム・シート」という用語は、ここで用いる場合、同じ時間基準に全て同期が取られているタイミング・エレメントのコンテナのことを言う。加えて、所与の親時間間隔がインアクティブになると、その子の全てもインアクティブおよび再起動可能となる。また、状態機械は所与の時間間隔の再起動可能状態を追跡することもできる。
図9に示すように、ブロック902は、少なくとも1つのチック、タイミング・パルス、またはその他のクロック関係イベントの指示を受け取ることを表す。ブロック904は、所与のXPATH表現の中にある親タイミング・コンテナがアクティブであるか否か評価することを表す。アクティブでない場合、ブロック906はこの親タイミング・コンテナのいずれの子の処理も省略することを表す。逆に、親タイミング・コンテナがアクティブである場合、ブロック908はその親の内1つの子タイミング・コンテナを処理のために選択することを表す。
ブロック910は、子タイミング・コンテナにおいて指定されているいずれかの開始条件が満たされているか否か評価することを表す。満たされている場合、ブロック912は子タイミング・コンテナにおいて指定されているいずれの表現も評価することを表す。満たされていない場合、ブロック914は、親タイミング・コンテナが評価すべき別の子を未だ有しているか否か評価することを表す。有している場合、ブロック916は次の子タイミング・コンテナを処理のために選択することを表す。その後、プロセス900はブロック910の前に戻り、この次の子を用いてプロセスを繰り返す。
ブロック914から、親タイミング・コンテナが他に子を有していない場合、ブロック918は、他に評価すべきいずれかの親タイミング・コンテナが未だ残っていないか評価することを表す。残っている場合、ブロック920は次の親タイミング・コンテナを処理のために選択することを表す。その後、プロセス900はブロック904の前に戻り、この次の親を用いてプロセスを繰り返す。
ブロック918から、他に親タイミング・コンテナがない場合、プロセス900は終了状態922に達することができる。
以上のプロセス900は、本明細書において例示し説明した機能を実行する1つ以上の有限状態機械として実現することができる。
図3において全体的に314で表す別の最適化技法では、重複表現を評価することを回避するために、相補表現を認識し、代わりに一意のXPATH表現を評価することに照準を当てる。「相補」表現は、ブール・ロジックに関して定められる。例えば、表現「A」が真である場合、表現「notA」に言及するケースは全て偽となる。
HD−DVDの著作者は、所与の「秘匿」入力エレメント上でstate:valueを用いて、タイミング・コンテナの挙動を制御することができる。同じ表現が複数回用いられているが、異なるタイム・コンテナにおける場合、表現の評価は1回だけで十分とすることができる。その表現に対するその他の参照は、1つの評価の状態を反映するように更新すればよい。
同様に、これらの表現に対して相補的である(即ち、反対のブール演算子を用いる)表現も飛ばすことができる。何故なら、いずれの後続の相補表現が真または偽であるかの判断も、1回の評価で十分であるからである。以下のcueを検討する。
Figure 0005059124
タイミング・エンジンが最初のcueを評価し、これがアクティブ(即ち、真)であると判断したと仮定する。この場合、タイミング・エンジンは2番目のキューの評価を飛ばすことができる。何故なら、2番目のキューは最初のcueの評価の逆の結果となるからである。また、タイミング・エンジンは3番目のcueの評価を飛ばすこともできる。何故なら、最初のcueが真であれば、3番目のcueも真となることはできないからである。
この最適化は、ロード時間中に関係する表現および相補表現を結び付けるように修正することができる参照データー構造を用いて実現することができる。これらの参照データー構造は、オン・チック処理の間でもアクセスすることができるので、評価が行われつつあるときに、表現の解明(resolution)を更新することもできる。
図10は、共有メモリー・プールを用いてタイミング・マークアップの処理を最適化することに関するコンポーネントおよびフロー1000を示す。便宜上、以前に説明したエレメントの一部を図10にも引き継ぎ、同じ参照番号で示すこととするが、これは限定ではない。
図10は、図3において全体的にブロック316で表した、共有メモリーの使用を含む最適化技法に関する更なる詳細を提示する。最適化エンジン(例えば、124)はこれらの最適化技法316を実現することができる。
キャッシュ1002を共有メモリー・プール1004として実装することができる。共有メモリー・プールは、複数の小さな固定サイズの参照データー構造(例えば、1006aおよび1006n)を格納することができる。これらの参照データー構造は、DOMタイミング・ツリー(例えば、タイミング・ノード502を有する422)を効率的に横断するための情報をカプセル化する。
このデーター構造は、複数のソート・リンクに対処し、ノードの状態に基づいて、タイミング・ノードのグループ単位で飛び越すことにも対処する。図10は、このようなリンクの例を1008a(構造1006aをノード502aに結び付ける)および1008n(構造1008nをノード502nに結び付ける)を示す。
共有メモリー・プール1004は、DOMツリーの素早い横断を促進する。何故なら、メモリーはL1データー・キャッシュをサポートするCPUのために容易に局在的にキャッシュされるからである。データー構造1006の参照的本質(referential nature)は、マークアップ・タイミングにおける複数のノード状態に基づいて、複数のノードを飛び越す能力をサポートする。加えて、このデーター構造は、インデックス増分またはポインタ追加動作を用いて、DOMツリー全体を素早く横断する能力を備えている。これらの技法と合わせて、関係する共有メモリー・プールを用いると、XPATH表現、ソート・インデックス、および参照キーの関係において補助することができ、タイミングおよびXPATH関係データー構造の高速で空間効率的な参照がやり易くなる。
以上、図10における共有メモリー・プールの使用に関する最適化技法について説明したので、論述はスケジューラーの使用に関する最適化技法の説明に移る。ここでは、図11を用いて提案する。
図11は、完全なタイミング・ツリーの横断を実行することを回避するためのスケジューラー1102の使用に関する最適化技法を示す。スケジューラー1102は、タイミング・マークアップ106からのタイミング・ノード502をワーク・キュー1104の中に置く。更に具体的には、スケジューラー1102は、いずれの所与のチックにおいても評価に関連があると思われるタイミング・ノードのみを置く。スケジューラーによって処理されるワーク・キュー・ワーク(work queue work)における各項目即ちタイミング・ノードは、タイミング間隔(例えば、1106aおよび1106n)およびそれと関連のある子(例えば、1108aおよび1108n)に対する参照を収容することができる。
ワーク・キューは、開始時刻によって整列し、次いでマークアップDOMの中に現れるときに、字句単位で後から整列することができる。この整列によって、評価すべきまたは処理すべきタイミング間隔のみがワーク・キューに置かれる確率が高くなり、このため余分なタイミング・ツリーの処理をいずれも排除する。加えて、このメカニズムは、潜在的に帯域外で行われる可能性がある動作(例えば、ジェスチャ処理)のシリアル化改良も可能にすることができる。この手法は、ワーク項目および関連データーのキャッシュ局在性(cache locality)改良を可能にするために前述のメモリー・プール手法と合わせて用いることができる。
結論
以上の説明は、HD−DVDタイミング・マークアップの最適化処理という文脈で紹介したが、本明細書において記載したツールや技法は、他の種類の媒体を処理する際にも適しており、あるいは本明細書において記載した形式以外の形式のマークアップを処理する際にも適していると言えることを注記しておく。
以上、構造的特徴および/または方法論的行為に特定したことばで本システムおよび方法について説明したが、添付した特許請求の範囲に定めるシステムおよび方法は、記載した特定の特徴や行為に必ずしも限定されないことは言うまでもない。逆に、特定の特徴および行為は、特許請求するシステムおよび方法を実現する形態の例として開示したのである。
加えて、本明細書において説明し図示したある種のデーターおよびプロセス・フローの図に関して、この中で図示したプロセスおよびサブプロセスは、本明細書の記載の主旨および範囲から逸脱することなく、図示した順序とは別の順序で実行してもよいことを注記しておく。また、これらのデーターおよびプロセス・フローは、本明細書におけるある種のコンポーネントと関連付けて説明したが、これらのデーターおよびプロセス・フローは、本明細書における説明の主旨および範囲から逸脱することなく、他のコンポーネントとでも実行できることを注記しておく。

Claims (15)

  1. 機械読み取り可能命令含む1つ以上の機械読み取り可能記憶媒体あって、前記機械読み取り可能命令が機械よって実行されると、
    高品位ディジタル・バーサタイル・ディスク(HD−DVD)ら読み取ったタイミング・マークアップ受け取るステップであって、前記タイミング・マークアップが、前記HD−DVDに格納された少なくとも1つのマークアップ・ファイルの各々に含まれた、ステップと、
    前記タイミング・マークアップの処理を最適化するステップであって、前記タイミング・マークアップの処理の最適化が、
    前記タイミング・マークアップに含まれる少なくとも1つのXPATH表現を予め計算すること、
    前記XPATH表現内において少なくとも1つの中間表現を識別すること、
    前記XPATH表現内において識別した少なくとも1つの中間表現をキャッシュすること、
    前記XPATH表現内において識別した少なくとも1つの中間表現を評価すること、
    前記XPATH表現内において識別した複数の中間表現を文書オブジェクト・モデルにおけるそれぞれのノードと関連付けること、
    のうちの少なくとも1つを含む、ステップと、
    含む方法を前記機械に実行させる、機械読み取り可能記憶媒体。
  2. 請求項1記載の機械読み取り可能記憶媒体において、前記タイミング・マークアップの処理を最適化するステップは、前記タイミング・マークアップにおける表現を識別することによって前記タイミング・マークアップの処理を最適化するステップと、前記表現の値が既定のイベントの発生に依存するか否か判定するステップとを含む、機械読み取り可能記憶媒体。
  3. 請求項2記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記既定のイベントをイベント識別子と関連付けるステップを含み、前記イベントはユーザー入力と関連付けられる、機械読み取り可能記憶媒体。
  4. 請求項3記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記イベント識別子を前記表現の少なくとも1つと関連付けるステップを含み、前記少なくとも1つの表現は、前記既定のイベントの少なくとも1つの発生に依存する、機械読み取り可能記憶媒体。
  5. 請求項1記載の機械読み取り可能記憶媒体であって、前記方法は、更に、タイミング・チックが発生したことの指示を受け取るステップを含む、機械読み取り可能記憶媒体。
  6. 請求項5記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記チックの指示を受け取ったことに応答して、少なくとも1つのXPATH表現を受け取るステップを含む、機械読み取り可能記憶媒体。
  7. 請求項6記載の機械読み取り可能記憶媒体であって、前記方法は、更に、ユーザー入力が発生したことの指示を受け取り、該ユーザー入力を少なくとも1つの既定のイベントと関連付けるステップを含む、機械読み取り可能記憶媒体。
  8. 請求項7記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記XPATH表現が前記既定のイベントの発生に依存するか否か判定するステップを含む、機械読み取り可能記憶媒体。
  9. 請求項8記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記XPATH表現が前記既定のイベントの発生に依存している場合、前記XPATH表現を再評価するステップを含む、機械読み取り可能記憶媒体。
  10. 請求項8記載の機械読み取り可能記憶媒体であって、前記方法は、更に、前記XPATH表現前記既定のイベントの発生に独立している場合、前記XPATH表現の以前の値を取り出すステップを含む、機械読み取り可能記憶媒体。
  11. 請求項1記載の機械読み取り可能記憶媒体において、前記タイミング・マークアップの処理を最適化するステップは、有限状態機械を用いて前記処理を最適化するステップを含む、機械読み取り可能記憶媒体。
  12. 請求項1記載の機械読み取り可能記憶媒体において、前記タイミング・マークアップの処理を最適化するステップは、前記タイミング・マークアップ内において発生する複数の表現を識別、前記表現の内少なくとも2つが互いに相補的であることを認識することによって前記処理を最適化するステップを含む、機械読み取り可能記憶媒体。
  13. 請求項1記載の機械読み取り可能記憶媒体において、前記タイミング・マークアップの処理を最適化するステップは、共有メモリー・プールを用いることによって、前記処理を最適化するステップを含む、機械読み取り可能記憶媒体。
  14. 請求項1記載の機械読み取り可能記憶媒体において、前記タイミング・マークアップの処理を最適化するステップは、スケジューラーを用いることによって、前記処理を最適化するステップを含む、機械読み取り可能記憶媒体。
  15. 請求項1から14のいずれかに記載の機械読み取り可能記憶媒体を含むHD−DVDプレーヤー・デバイス。
JP2009544892A 2007-01-05 2007-12-26 Hd−dvdタイミング・マークアップ実行の最適化 Expired - Fee Related JP5059124B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US88375107P 2007-01-05 2007-01-05
US60/883,751 2007-01-05
US11/770,167 US20080165281A1 (en) 2007-01-05 2007-06-28 Optimizing Execution of HD-DVD Timing Markup
US11/770,167 2007-06-28
PCT/US2007/088840 WO2008085730A1 (en) 2007-01-05 2007-12-26 Optimizing execution of hd-dvd timing markup

Publications (2)

Publication Number Publication Date
JP2010516011A JP2010516011A (ja) 2010-05-13
JP5059124B2 true JP5059124B2 (ja) 2012-10-24

Family

ID=39593937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009544892A Expired - Fee Related JP5059124B2 (ja) 2007-01-05 2007-12-26 Hd−dvdタイミング・マークアップ実行の最適化

Country Status (15)

Country Link
US (1) US20080165281A1 (ja)
EP (1) EP2100303A4 (ja)
JP (1) JP5059124B2 (ja)
KR (1) KR20090096619A (ja)
CN (1) CN101573758B (ja)
AU (1) AU2007342158B2 (ja)
BR (1) BRPI0720615A2 (ja)
CA (1) CA2674059A1 (ja)
IL (1) IL199578A0 (ja)
MX (1) MX2009007269A (ja)
NO (1) NO20092510L (ja)
RU (1) RU2460157C2 (ja)
TW (1) TWI480756B (ja)
WO (1) WO2008085730A1 (ja)
ZA (1) ZA200904536B (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359497A (zh) * 2007-07-30 2009-02-04 科立尔数位科技股份有限公司 时间标记的检测及表示方法与记录其数据结构的记录媒体
US10104436B1 (en) * 2009-02-23 2018-10-16 Beachfront Media Llc Automated video-preroll method and device
US10706105B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree garbage metrics
US10725988B2 (en) * 2017-02-09 2020-07-28 Micron Technology, Inc. KVS tree
US10719495B2 (en) 2017-02-09 2020-07-21 Micron Technology, Inc. Stream selection for multi-stream storage devices
US10706106B2 (en) 2017-02-09 2020-07-07 Micron Technology, Inc. Merge tree modifications for maintenance operations
TWI643043B (zh) * 2017-06-16 2018-12-01 東元電機股份有限公司 控制命令產生方法及其裝置
US11100071B2 (en) 2018-10-10 2021-08-24 Micron Technology, Inc. Key-value store tree data block spill with compaction
US10915546B2 (en) 2018-10-10 2021-02-09 Micron Technology, Inc. Counter-based compaction of key-value store tree data block
US11048755B2 (en) 2018-12-14 2021-06-29 Micron Technology, Inc. Key-value store tree with selective use of key portion
US10852978B2 (en) 2018-12-14 2020-12-01 Micron Technology, Inc. Key-value store using journaling with selective data storage format
US10936661B2 (en) 2018-12-26 2021-03-02 Micron Technology, Inc. Data tree with order-based node traversal

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0165439B1 (ko) * 1995-09-14 1999-03-20 김광호 디지탈 비디오 테이프 레코더의 화면 구성 장치 및 방법
US6038573A (en) * 1997-04-04 2000-03-14 Avid Technology, Inc. News story markup language and system and process for editing and processing documents
KR100287366B1 (ko) * 1997-11-24 2001-04-16 윤순조 엠피이지 방식을 이용한 휴대용 음향 재생장치 및 방법
US6810503B1 (en) * 1998-02-11 2004-10-26 Microsoft Corporation Method and apparatus for controlling the timing of the invocation of events within a computer runtime environment
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6654030B1 (en) * 1999-03-31 2003-11-25 Canon Kabushiki Kaisha Time marker for synchronized multimedia
US20020112247A1 (en) * 2001-02-09 2002-08-15 Horner David R. Method and system for creation, delivery, and presentation of time-synchronized multimedia presentations
JP2002312180A (ja) * 2001-04-11 2002-10-25 Hitachi Ltd 動的命令変換機能を有するプロセッサシステム、該プロセッサシステムを備えたコンピュータにて実行されるバイナリートランスレーションプログラム及びそのプロセッサシステムを実装した半導体デバイス
US20040014013A1 (en) * 2001-11-01 2004-01-22 Telecommunications Research Associates Interface for a presentation system
ATE513415T1 (de) * 2001-12-28 2011-07-15 Koninkl Philips Electronics Nv Verfahren zur verarbeitung von multimediainhalt
JP4039484B2 (ja) * 2002-02-28 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション XPath評価方法、これを用いたXML文書処理システム及びプログラム
AU2003243169B2 (en) * 2002-04-24 2009-03-19 Intel Corporation System and method for processing of XML documents represented as an event stream
KR20030095048A (ko) * 2002-06-11 2003-12-18 엘지전자 주식회사 멀티미디어 재생 방법 및 장치
BR0306986A (pt) * 2002-07-23 2005-06-28 Samsung Electronics Co Ltd Estrutura de ìndice de meta-dados divididos em fragmentos e mìdia para leitura em computador
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
JP3719516B2 (ja) * 2003-06-11 2005-11-24 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US7644064B2 (en) * 2004-02-19 2010-01-05 Microsoft Corporation Systems and methods for filter table optimization
US7877366B2 (en) * 2004-03-12 2011-01-25 Oracle International Corporation Streaming XML data retrieval using XPath
TWI263923B (en) * 2004-05-11 2006-10-11 Ali Corp Audio fast-forward playing method
US20050257201A1 (en) * 2004-05-17 2005-11-17 International Business Machines Corporation Optimization of XPath expressions for evaluation upon streaming XML data
US7603426B2 (en) * 2004-06-18 2009-10-13 Microsoft Corporation Flexible context management for enumeration sessions using context exchange
US20050289175A1 (en) * 2004-06-23 2005-12-29 Oracle International Corporation Providing XML node identity based operations in a value based SQL system
US7512592B2 (en) * 2004-07-02 2009-03-31 Tarari, Inc. System and method of XML query processing
DE102004034004A1 (de) * 2004-07-14 2006-02-09 Siemens Ag Verfahren zum Codieren eines XML-Dokuments, sowie Verfahren zum Decodieren, Verfahren zum Codieren und Decodieren, Codiervorrichtung, Decodiervorrichtung und Vorrichtung zum Codieren und Decodieren
WO2006071000A1 (en) * 2004-12-29 2006-07-06 Lg Electronics Inc. Structure of navigation information for video data recorded on a recording medium and recording/reproducing method and apparatus using the structure
WO2006081474A2 (en) * 2005-01-27 2006-08-03 Intel Corp. Multi-path simultaneous xpath evaluation over data streams
JP2006236411A (ja) * 2005-02-22 2006-09-07 Toshiba Corp 情報記憶媒体、情報記録方法、および情報再生方法
JP2006238147A (ja) * 2005-02-25 2006-09-07 Toshiba Corp コンテンツ再生装置、字幕再生方法及びプログラム
US7711095B2 (en) * 2005-03-10 2010-05-04 Avaya Inc. Coordination of content streams in interactive voice response systems
JP2006294152A (ja) * 2005-04-12 2006-10-26 Toshiba Corp 情報記憶媒体、情報記録装置、および情報再生装置
US20070006078A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Declaratively responding to state changes in an interactive multimedia environment
US20070006079A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation State-based timing for interactive multimedia presentations
JP2007048348A (ja) * 2005-08-08 2007-02-22 Toshiba Corp 情報記憶媒体、情報再生装置、情報再生方法、及び情報再生プログラム
JP2008041199A (ja) * 2006-08-08 2008-02-21 Toshiba Corp 情報処理装置、および再生方法
US8321845B2 (en) * 2006-10-13 2012-11-27 International Business Machines Corporation Extensible markup language (XML) path (XPATH) debugging framework
US8209424B2 (en) * 2006-12-20 2012-06-26 United Video Properties, Inc. Systems and methods for providing remote access to interactive media guidance applications

Also Published As

Publication number Publication date
ZA200904536B (en) 2010-09-29
IL199578A0 (en) 2010-03-28
CN101573758A (zh) 2009-11-04
NO20092510L (no) 2009-07-03
MX2009007269A (es) 2009-10-08
RU2460157C2 (ru) 2012-08-27
TW200836084A (en) 2008-09-01
EP2100303A4 (en) 2013-01-23
AU2007342158A1 (en) 2008-07-17
EP2100303A1 (en) 2009-09-16
JP2010516011A (ja) 2010-05-13
WO2008085730A1 (en) 2008-07-17
CA2674059A1 (en) 2008-07-17
AU2007342158B2 (en) 2012-01-12
CN101573758B (zh) 2012-02-08
US20080165281A1 (en) 2008-07-10
KR20090096619A (ko) 2009-09-11
TWI480756B (zh) 2015-04-11
RU2009125537A (ru) 2011-01-10
BRPI0720615A2 (pt) 2014-04-15

Similar Documents

Publication Publication Date Title
JP5059124B2 (ja) Hd−dvdタイミング・マークアップ実行の最適化
US9098505B2 (en) Framework for media presentation playback
US10838697B2 (en) Storing logical units of program code generated using a dynamic programming notebook user interface
KR100781623B1 (ko) 멀티미디어 컨텐츠 관리 장치, 그 방법 및 프로그램 저장장치
KR101231323B1 (ko) 대화형 멀티미디어 환경에서의 상태 변경에 대한 선언적응답
JP2008545335A (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
US11308940B2 (en) Counterfactual annotated dialogues for conversational computing
JP2009500911A (ja) サーチ付きのインスタント・メッセージング
JP2541464B2 (ja) マルチメディア文書の記述・提示方法
CA2919878A1 (en) Refining search query results
US9268875B2 (en) Extensible content focus mode
CN104750853A (zh) 一种异构数据搜索方法及装置
US11350185B2 (en) Text-to-audio for interactive videos using a markup language
US11064244B2 (en) Synchronizing text-to-audio with interactive videos in the video framework
JP4909882B2 (ja) ウェブ文書スタイル変更システム及びその方法
US11481098B2 (en) Video previews for interactive videos using a markup language
US20040170382A1 (en) Task-oriented nonlinear hypervideo editing method and apparatus
US11461535B2 (en) Video buffering for interactive videos using a markup language
JPH10134030A (ja) マルチメディアデータ・プレゼンテーションシステムおよび方法
JP5619838B2 (ja) 対話型マルチメディア・プレゼンテーション管理の同期性
Vazirgiannis Interactive multimedia documents: modeling, authoring, and implementation experiences
US20080034348A1 (en) Method and System for Bulk-Loading Data Into A Data Storage Model
US20210373725A1 (en) Real-time video scene modifications for interactive videos using a markup language
Yang et al. Extension of Timeline-based Editing for Non-deterministic Temporal Behavior in SMIL2. 0 Authoring.
JPH10171836A (ja) ハイパーメディア自動ナビゲーション装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111024

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120530

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

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

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

Free format text: PAYMENT UNTIL: 20150810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees