previous next content


WD - smil   − boston −  19991115

3. SMIL-Boston アニメーションモジュール

編纂者
Patrick Schmitz (pschmitz@microsoft.com) (Microsoft)
Aaron Cohen (aaron.m.cohen@intel.com) (Intel)

目次

3.1 はじめに

このセクションでは、SMIL-Bostonアニメーションモジュールを定義する。 SMIL-Boston アニメーションは、時系列上のものとしてアニメーションを再現するための枠組みと、複合的なアニメーションを構成するための機構である。 SMIL-Boston アニメーションには、あらゆるXMLベースの言語で再利用可能なアニメーション要素のセットが含まれる。 これらの要素と属性はモジュール内で定義されており、他のXML言語のデザイナーは必要に応じてSMIL-Bostonアニメーションモジュールの機能を再利用することが可能である。

SMIL-Bostonアニメーションモジュールは、仕様画定目前のSMIL-アニメーション[SMIL-ANIMATION]モジュールの機能を元に構成されることになるだろう。 SMILアニメーションのタイミングモデルは、SMIL1.0[ SMIL10 ]ののものに対話型(イベント対応型)動作に関するいくつかの変更と拡張を加えたものを基礎としている。 加えられる拡張には、(まだ未画定である)SMIL-Bostonタイミングモジュールの機能の中核部との互換性を持っている。[The extensions are compatible with a core subset of the functionality expected to be included in the SMIL-Boston timing module.]

このアプローチは、SMIL-Bostonの策定作業前[before SMIL-Boston is ready to go to Recommendation status]に、最初のバージョンのSMILアニメーションにおいて、よりよいアニメーションモジュールのリリースを容易に実現するために用いられた。 SMIL-Bostonアニメーションモジュールは、それ自身にはタイミングモデルを含まず、SMIL-Bostonタイミングモジュールを用いることになるだろう。 特にアニメーションのためだけに、タイミング用記述が再定義されることもないだろう。

この版においては、こうした拡張がモジュールに含まれることになると言及するに留める。詳細については、以降のドラフトを参照されたい。

3.2 SMIL アニメーション

アニメーションは、本質的に時間軸にその基をおくものである。 アニメーションは、(SMILタイミングの属性と同様に)新たないくつかの要素に伴った、属性とその内容[semantic]によって記述される。 アニメーションは指定された属性の表示される値を、時間的に変化させる機能として設計される。[Animation is modeled as a function that changes the presented value of a specific attribute over time. ]

SMILアニメーションは、文書製作者及び仕様の実装者に対して一貫したモデルを提供し、アニメーションにSMILタイミングモデルを統合するための枠組みとなる。 アニメーション[モジュール]は対象の要素の属性を操作するだけのものであり、対象の要素の内容に関する特別の知識を要求しない。 また、ある言語の中で、SMILアニメーションを元にした一層高度で専門的なアニメーション要素が定義されることがあるかもしれない。

3.3 SMIL アニメーションへの SMIL-Boston拡張

SMILアニメーションはSVG[ SVG ]のようにタイミング概念を持っていない言語に統合することを目的として構成されている。 しかしながら、(SMIL 1.0などのように)タイミング概念を既に持っている言語に対しても、平叙アニメーション機能を拡張してやる必要性は存在する。 SMIL-Bostonでのアニメーションは、SMILアニメーションの持つこうした限界を克服し、また他の多くの点においても、SMILアニメーションを拡張することになるだろう。

SMIL-Bostonアニメーションは、SMIL-Boston言語と、そのより強力なタイミングモジュールに完全に統合される。 SMIL-Bostonタイミングモジュールに含まれると思われ、SMIL-Bostonアニメーションにも継承されると思われる新機能は以下の通りである。

アニメーションモジュールに含むまれるであろう新機能:


previous next contents
SMILコンテンツコントロール(Contents Control)モジュール
previous next contents


WD - smil   − boston −  19991115

4. SMILコンテンツコントロール(Contents Control)モジュール

編纂者
Jeffrey Ayars (jeffa@real.com)、RealNetworks
Dick Bulterman (Dick.Bulterman@cwi.nl)、 Oratrix

目次

4.1 はじめに

このセクションでは、SMILコンテンツコントロールモジュールを定義する。 このモジュールは実行中の選択と最適化されたコンテンツ配信[optimized content delivery]の機能を提供するための要素と属性を含んでいる。 それらの要素と属性は モジュール内で定義されるので、他のマークアップ言語のデザイナーは、メディアコンテンツをコントロールする必要が生じたときに、SMILコンテンツコントロールモジュールの機能を再利用することができる。 あるいは、他のSMILモジュールを利用する場合であっても、既に他のコンテンツコントロール機能が存在しているなら、SMILコンテンツコントロールモジュールを利用する必要はない。

SMIL1.0コンテンツコントロール機能に対して提案された拡張

4.2 コンテンツの選択

SMIL1.0は、ある条件が満たされているときにだけ(例えばクライアントが特定のスクリーンサイズを持っているときなど)要素に対してテスト属性機能を提供する。 SMIL1.0はまた、文書の一部が選択的であるときに、「条件を満たす最初のもの」を選択して表示するためのものとして、switch要素を提供する。 これは例えば、多言語版の音声ファイルが利用可能なときに、どの言語のものを利用するかを選ばせるのには有用である。 SMIL Bostonでは、これらの特徴を踏まえた上で、個々の視聴者に対し、制作者が提供してユーザーが選択した属性に基づいて表現をカスタマイズ可能なよう、新たなテスト属性機能を拡張する。

4.2.1 <switch> 要素

switch要素は、複数のうちから1つだけの要素が選択うる場合についての記述を可能にする。 SMIL Bostonでは、ある要素がデコード可能な(メディアタイプが宣言されている)SMIL Bostonの要素であり、そのすべてのテスト属性の評価値が真であるなら、1つの要素が受容可能である。 コンテンツコントロールを他の言語に統合する際には、何が「受容できる要素」であるかを明示しなくてはならない。

要素は、次のようにして選択される。 プレーヤー(再生機)はswitch要素中で記述された順番に、要素を評価する。 最初に受容された要素が選択され、switch要素中の他の要素は無視される。

従って文書制作者は選択肢を、最も望ましいものから初まって最も望ましくないで終わるようにに並べるのが望ましい。 さらに、文書制作者は(明らかに望ましくない場合を除き)最低でも一つの項目が選択されるよう、比較的問題の少ない代替案となる項目をswitch要素の最後の項目として配置するべきである。 実装系は、switch要素内の全ての子要素が選択不可能な場合には、なにも選択しないままにするのが望ましい。

HTTPやRTSPのようなネットワークプロトコルを配信に使う場合、switch要素を使って選択性を持たせておくことが有効な場合があることに注意すること。[Note that some network protocols, e.g. HTTP and RTSP, support content-negotiation, which may be an alternative to using the "switch" element in some cases. ]

属性(Attributes)

switch要素は次の属性を持つことができる:

id
XML識別子
title
title属性は要素が何を表示するかについての簡単な説明を提供する。 title属性の値はユーザーエージェントにより、様々な方法で処理される。 たとえば、ビジュアルなブラウザではしばしばタイトルを「ツールチップ(マウスカーソルがオブジェクトの上で止まったときに現れる短いメッセージ)」として表示する。

4.2.2 既定テスト属性

本仕様書では言語デザイナーによって言語要素に加えることが可能な、いくつかのテスト属性を定義する。 SMIL Bostonにおいては、同期及びメディア要素に適用可能である。 概念的には、これらの属性はブール値テストを表わしている。 要素に含まれる属性のうち一つでも「偽」の値を示すときには、この属性は無視される。

以下のリスト中での説明では、「ユーザー設定」という記述が登場する。 ユーザー設定は、通常は再生エンジンの「設定項目」として設定されておくものであるが、設定方法はこれに限らないものとする。

SMIL Bostonは、以下のテスト属性を定義する。 SMIL1.0ではハイフンがついていた一部の属性名が、SMIL Boston camelCaseに従った表記を推奨されるようになったことに注意すること。 こうした変更のあった旧属性名については、SMIL Bostonにおける名称の後に、括弧書きで表記してある。

systemBitrate (system-bitrate)
この属性は、システム間で実現可能なおおよそのバンド幅を、 ビット/秒の数値として持つ。バンド幅の値はアプリケーションに よって指定され、実際の転送速度の測定値がユーザーによって設定 された理論値が規定されると思われる。後者の場合は、ユーザーの ネットワークへの接続形態に基づいた選択を行なうのに利用できる。 モデムで接続をしているユーザーの場合、典型的な値は14400、28800、 56000ビット/秒などであろう。こうして得られたバンド幅とテスト時 に与えられた値を比較して、バンド幅がより大きい(あるいは等しい) ときには「真」に、バンド幅のほうが小さい場合には「偽」と評価される。
属性は、あらゆる整数値を0より大きいものとして扱う。もしも値が 実装系によって定義された最大のバンド幅を越えるなら、 「偽」と評価される。
systemCaptions (system-captions)
この属性は、表現中の音声部分についての冗長なテキスト (難聴者や、読む練習をしたい場合や、文字での情報が必要な場合に用いられる) と、多くの読者のためのテキストとの区別を行なう。 この属性の値は、ユーザーが(普段は)隠されている情報を見ることを望んだ 場合に "on" となり、望まない場合には "off" となる。 この属性が評価された場合、値が "on" のときには「真」を、 値が "off" のときには「偽」を返す。
systemLanguage (system-language)
この属性は、RFC1766 で定義された、言語名のコンマ( , )区切りのリストを値として持つ。[RFC1766]

この属性を評価する場合、ユーザー設定によって示される言語名の一つが、テスト属性のパラメータとして与えられた言語名もしくは言語名の接頭辞(言語名のうち、冒頭から最初の" - "までで示される部分)と、(正確に)一致していたならば「真」を返す。

そうでなければ、「偽」を返す。

注意:接頭辞による適合ルールは、あるユーザーが同じ接頭辞を持った言語なら必ず理解できるように接頭辞が割り当てられることを保証するものではない。

接頭辞による適合ルールは、単に接頭辞の適用を可能とするだけのものである。

実装にあたっての注意:ユーザーによる言語優先度の選択を可能とするなら、ユーザーが(上記の)言語適用原則に慣れ親しんでいないことを考慮に入れて、適切なガイドを行なえるような実装をすべきである。たとえば、ユーザーが"en-gb"を選択しているなら、イギリス英語が利用可能でないときには他の英語の文書が役立つだろう。このような場合、ユーザーインターフェースはユーザーに対し"en"を(優先度が)下位の項目として設定するようガイドすべきである。

場合によっては、多数の話者のために多数の言語がリストされるかもしれない。例えば、オリ語と英語のバージョンが存在する "Treaty of Waitangi(ワイタンギ条約)" ならば、こんなふうに記述されるだろう:

<audio src="foo.rm" systemLanguage="mi, en"/>
しかしながら、systemLanguageテスト属性が置かれたオブジェクト中に複数の言語による表記が含まれているからと言って、それぞれの言語の話者のために書かれたものであるとは限らない。たとえば、「A First Lesson in Latin(ラテン語入門)」のような、明らかに英語話者向けの言語入門書などが例として挙げられる。このような場合、systemLanguageテスト属性はただ "en" とだけ指定されるべきだろう。

記述にあたっての注意:switch要素を使って言語ごとにオブジェクトを切り替えるようにした上で、いずれも適合しなかった場合、音声なしで映像を見せられるようなことになってしまうことに気をつけるべきである。このためswitch要素の最後には、必ず適合となる要素をいれておくことが推奨される。

systemOverdubOrCaption (system-overdub-or-caption)
この属性は吹き替えと字幕のどちらをユーザーが望むかについての設定項目である。この属性は"caption"(字幕)か"overdub"(吹き替え)の値を持つ。この属性が評価される場合、ユーザー設定と値が適合するなら「真」、適合しないなら「偽」になる。ただし、systemOverdubOrSubtitleとsystemCaptionsを用いることが推奨され、systemOverdubOrCaptionを用いることは望ましくない。
systemRequired (system-required)
この属性の値には拡張名を指定する。拡張名として指定可能な内容は、 追加された言語要素・属性あるいは名前空間識別子または名前空間拡張に ついてのURIである。 この属性が評価されると、実装系が指定された拡張機能をサポートしている なら「真」を、さもなくば「偽」を返す。 [NAMESPACES]
systemScreenSize (system-screen-size)
この属性の値は、以下のように指定する。
screen-size-val ::= screen-height"X"screen-width
screen-heightとscreen-widthは、ともに1以上のピクセル数で指定される。 この属性を評価すると、指定されたサイズでの表示が可能なときは「真」、 縮小再生しかできない場合は「偽」を返す。
systemScreenDepth (system-screen-depth)
この属性には、要素を表示するのに必要なスクリーンカラーパレットの深度を ビットによって指定する。値は必ず1以上を取る。典型的な値としては、 1、8、24、32などがある。 SMIL再生エンジンが映像/画像を表示するのに指定されたパレット深度を 用いることができるなら「真」を、 少ないパレット深度しか用いれないなら「偽」を返す。
systemOverdubOrSubtitle
この属性には、元言語に通じていない人に対して、字幕と吹き替え音声のどちらを提供するべきかを指定する。 この属性は2つの値を取りうる。"overdub" の値を取る場合は、吹き替え音声が提供される。"subtitle" の値を取る場合には、字幕が表示される。
systemAudioDesc
このテスト属性では音声による解説が提供されるべきかどうかを指定する。 systemCaptionが難聴のユーザーのためのテキストによる解説であるように、 難視のユーザーのための音声による解説を提供できるようにする。 この属性の値は、ユーザーが音声解説を望む場合には "on" 、 望まない場合には "off" となる。 この属性が評価された場合、値が "on" のときには「真」を、 値が "off" のときには「偽」を返す。
systemOperatingSystem
(検討中)
systemCPU
(検討中)
systemContentLocation
(検討中:Streaming / Stored の切り替え)
system???
(検討中:埋め込まれた情報の選択(総計での要素))
system????
(検討中:課金情報について。無料であるか、Pay-Per-Viewであるかなど)
systemComponent
SMIL再生システムの機能についてのCDATA(音声チャンネル数、コーデック、HW mpeg デコーダーなど)

規定テスト属性の使用例

1) ビットレートによるコンテンツの選択

実装系がsystemBitrateパラメータによって再生する要素を選択する場合が考えられる。再生装置は、選択肢(switch要素の中の各要素)の中からサーバーとの間で実現可能なビットレートを探して、適切なものを選びだそうとするだろう。

<par>
  <text .../>
  <switch>
    <par systemBitrate="40000">
    ...
    </par>
    <par systemBitrate="24000">
    ...
    </par>
    <par systemBitrate="10000">
    ........
    </par>
  </switch>
</par>
...

2) ビットレートによる音声トラックの選択

switch要素のなかには、あらゆる要素が含まれ得る。たとえば、一つの要素が直接音声トラックを指示していることがあり得る。

...
<switch>
   <audio src="joe-audio-better-quality" systemBitrate="16000" />
   <audio src="joe-audio" systemBitrate="8000" />
</switch>
...

3) 複数言語からの音声トラックの選択

次の例では、フランス語か英語の音声トラックが利用可能である。ユーザーの望む言語に基づいて、再生装置はどちらの音声を再生するかを選択する。

...
<switch>
   <audio src="joe-audio-french" systemLanguage="fr"/>
   <audio src="joe-audio-english" systemLanguage="en"/>
</switch>
...

4) スクリーン表示性能による表示内容の選択

次の例では、解像度とカラーパレット深度に応じたいくつかの部分を含んでいる。スクリーンの性能に応じて、再生機器はどれか1つを選択して再生することができる。

...
<par>
  <text .../>
  <switch>
    <par systemScreenSize="1280X1024" systemScreenDepth="16">
    ........
    </par>
    <par systemScreenSize="640X480" systemScreenDepth="32">
    ...
    </par>
    <par systemScreenSize="640X480" systemScreenDepth="16">
    ...
    </par>
  </switch>
</par>
...

5) 株価表示の有無

次の例では、ユーザーが表示を希望する場合に限り、株価が表示される。

...
<seq>
  <par>
    <audio      src="audio.rm"/>
    <video      src="video.rm"/>
    <textstream src="stockticker.rtx"/>
    <textstream src="closed-caps.rtx" systemCaptions="on"/>
  </par>
</seq>
...

6) 吹き替えや字幕の言語選択

次のSMIL記述は、フランス語の映画が英語・ドイツ語・オランダ語の吹き替え音声と字幕の両方で利用可能であることが示されている。ユーザー設定に基づいて、使用言語が選択される。

...
<par>
  <switch>
    <audio src="movie-aud-en.rm" systemLanguage="en" 
      systemOverdubOrSubtitle="overdub"/>
    <audio src="movie-aud-de.rm" systemLanguage="de" 
      systemOverdubOrSubtitle="overdub"/>
    <audio src="movie-aud-nl.rm" systemLanguage="nl" 
      systemOverdubOrSubtitle="overdub"/>
    <!-- French for everyone else -->
    <audio src="movie-aud-fr.rm"/>
  </switch>
  <video src="movie-vid.rm"/>
  <switch>
    <textstream src="movie-sub-en.rt" systemLanguage="en"
      systemOverdubOrSubtitle="subtitle"/>
    <textstream src="movie-sub-de.rt" systemLanguage="de"
      systemOverdubOrSubtitle="subtitle"/>
    <textstream src="movie-sub-nl.rt" systemLanguage="nl"
      systemOverdubOrSubtitle="subtitle"/>
    <!-- French captions for those that really want them -->
    <textstream src="movie-caps-fr.rt" systemCaptions="on"/>
  </switch>
</par>
...

4.2.3 ユーザー・グループ

以下の事項は、まだSYMM WGによって検討中の部分である。以下の文中で示される表記法は、試験的なものであり今後の変更の可能性がある。

SMIL Bostonに導入予定の新機能に、個々の視聴者による表示のカスタマイズを可能にするための、文書制作者によるテスト属性セットの追加機能がある。 文書制作者は、初期値と共にテスト属性が取り得る値を指定する。 文書の本体(body要素中)で、定義時にid属性で指定しておいた値を、uGroupテスト属性の値として記述することで、定義したユーザー・グループの値がチェックされる。 ユーザー・グループは、これまで説明してきたシステム定義テスト属性と同様に、表示の制御を行なうのに用いることができる。

<userAttributes>要素
userAttributes要素はSMILのhead要素中に置かれ、 この要素中でそれぞれのユーザー定義テストに関する定義を行なう。

属性

uGroup
メディアオブジェクトがどのユーザー・グループに属するかを指定する。
uState
ユーザー・グループのデフォルト値を与えるために用いる。

もしもuGroupテスト属性の評価結果が真であったならそのユーザー・グループに属する要素は評価され、そうでなかったなら要素は無視される。 ユーザー・グループの値(状態)を定める方法については、再生装置ごとに異なる実装を取ることができることに注意すること。 有力な実装方法についての提案として、ダイアログボックスを表示して選択させる方法と、設定ファイルに保存された情報に基づいて評価する方法とが挙げられる。

例:

<smil>
  <head>
    <layout>
      <!-- define projection regions a, b, c & d -->
    </layout>
    <userAttributes>
      <uGroup id="nl_aud" uState="RENDERED" title="Dutch Audio Cap" />
      <uGroup id="uk_aud" uState="NOT_RENDERED" title="English Audio Cap" />
      <uGroup id="nl_txt" uState="NOT_RENDERED" title="Dutch Text Cap"/>
      <uGroup id="uk_txt" uState="NOT_RENDERED" title="English Text Cap"/>
    </userAttributes>
  </head>
  <body>
    ...
    <par>
      <video src="announcer.rm" region="a"/>
      <text src="news_headline.html" region="b"/>
      <audio src="story_1_nl.rm" uGroup="nl_aud" region="c"/>
      <audio src="story_1_uk.rm" uGroup="uk_aud" region="d"/>
      <text src="story_1_nl.html" uGroup="nl_txt"/>
      <text src="story_1_uk.html" uGroup="uk_txt"/>
    </par>
    ...
  </body>
</smil>

(追記予定:例についての詳説)

4.3 表示優先度 / グループ化

以下の事項は、まだSYMM WGによって検討中の部分である。以下の文中で示される表記法は、試験的なものであり今後の変更の可能性がある。

共通した方針に基づいてオブジェクトをグループ化することについての意義を説明する。 半物理的リソースの利用を伴うアクセスの際の制御方針の共通性に基づいて要素をいくつかのグループへと分割したい。優先度、共通サーバー、共通アクセス権 / 課金モデル、ローカルリソースの利用(レイアウト、機器、他)などについて定義される。 [A Channel defines a partitioning of elements into groups each group has a common set of access policies control use of quasi-physical resources: - priority - common server - common access rights / charging model - local resource use (layout, devices, etc.)]

4.4 対ユーザー適応化

以下の事項は、まだSYMM WGによって検討中の部分である。以下の文中で示される表記法は、試験的なものであり今後の変更の可能性がある。

コンテンツの集合体としての、表現への着目: コンポーネントのそれぞれは、ユーザーレベルでは異なった表示・エンコーディングをされるかもしれない。

制作時に選択肢を設けて、使用時に選択を行なうようにする。

4.5 表示最適化

4.5.1 <prefetch> 要素

以下の事項は、まだSYMM WGによって検討中の部分である。以下の文中で示される表記法は、試験的なものであり今後の変更の可能性がある。

prefetch要素は再生をスムーズにするためにメディアリソースを先行して取得するための情報をユーザーエージェントに提供する。 ユーザーエージェントは prefetch 要素を無視することもできるが、その場合には再生中に余計な割り込みがかかってしまうことになるかもしれない。 prefetch要素を利用することで、バンド幅や時間に余裕があるときに、あらかじめリソースを取得しておくことが可能になる。 <prefetch>要素は XML文書のbody要素中に記述される。明示的にタイミングが指定されていないかぎり、その登場順に必要になるものとみなされる。

<prefetch> 要素は、メディアオブジェクト要素と同様、idsrcの各属性を持つ。 SMIL Bostonタイミングが統合されているなら、beginenddur clipBeginclipEndの各属性を利用することも可能である。 idsrc要素は他のメディアオブジェクトと同様に、idは参照を行なうために、srcは取得すべきリソースの指定に使用される。 ユーザーエージェントによる処理中に、srcによって同一のURLを指定されたメディアオブジェクトが出現した場合、先行して取得されたリソースが用いられ、余計な割り込みが発生することなしに即時に再生が行なわれる。 タイミング属性beginenddurは、要素を先行取得するタイミング(プレゼンテーションタイムピリオド)を指定することになる。endもしくはdurによって指定された取得終了時になると、先行取得はそこまでで中止される。 clipBeginclipEnd要素は clipBegin and clipEnd 要素は元リソース中から切り抜かれて取得されるべき部分を指定するために使われる。もし最後の30秒だけが再生されるなら全部を取得しておく必要はないし、再生されるのが中間の30秒だけであるのにそれ以上の部分を先行取得しておくのは望ましくない。

mediaSizemediaTimebandwidth属性

<prefetch>要素には、メディアオブジェクト要素にて許されるほかに、以下の属性が入ることも許される。

mediaSize : バイト数、割合(%)のどちらかで指定
元リソースからどれだけの量のデータを先行取得しておくべきかを指定する。 元リソースの大きさがわからず、 全てを取得しておくためには100%を指定すればよい。 デフォルト値は100%である。
mediaTime : 時間、割合(%)のどちらかで指定
元リソースからどれだけの長さのデータを先行取得しておくべきかを指定する。 元リソースの長さがわからず、 全てを取得しておくためには100%を指定すればよい。 デフォルト値は100%である。
bandwidth : ビットレート、割合(%)のどちらかで指定
先行取得をする際に、 どれだけの(ネットワークの)バンド幅を使うべきかを指定する。 利用可能なすべてを使うためには、100%を指定すればよい。 デフォルト値は100%である

mediaSizemediaTimeの両方が指定された場合、mediaSizeが利用されmediaTimeは無視される。

即時媒体(text/htmlやimage/pngのような時間に基づかないメディア)でmediaTime属性が指定された場合、リソースの全てが取得される。

prefetch要素が無視される場合であっても、文書の示す内容は再生されるが、リソースの取得に伴い、よけいな読み込みや休止が発生することになるであろう。

親要素の繰り返しや再開のためにprefetch要素が繰り返されると、先行取得作業も繰り返されることになる。これにより、バナー広告などのように呼び出しごとに変化しうるデータについて、常に最新のデータが表示されることを保証する。 全てのリソースが先行取得されない場合には、動的に内容の変化するURLからの先行取得には注意するべきである。先行取得されていない未取得のデータに関するリクエストによって、問題のURLの内容が変更される可能性がある。 ユーザーエージェントは、HTTPの822ヘッダー(「キャッシュしないこと」を意味する)のような、コンテンツのキャッシングに関する指示を尊重すべきである。 特に、キャッシュ不可とされたデータについては、prefetch要素によって先行取得されていた場合であっても、表示のたびに取得しなおすべきだろう。

clipBeginClipEnd属性を持つが先行取得が困難なメディアオブジェクトについては、どのような形でデータを取得してきても良いが、これは望ましい表示方法ではない。

各属性値の表記法
バイト数

バイト数は以下の構文に基づいて表記すること。

バイト数 ::= [0-9]+; 任意の正の数

割合(%)

割合(%)は、以下の構文に基づいて表記すること。

割合(%) ::= [0-9]+ "%"; 0から100までの正の数

時間

時間は、以下の構文に基づいて表記すること。

時間		::= ( Hms-val | Smpte-val )
Smpte-val	::= ( Smpte-type )? Hours ":" Minutes ":" Seconds 
		    ( ":" Frames ( "." Subframes )? )?
Smpte-type	::= "smpte" | "smpte-30-drop" | "smpte-25"
Hms-val		::= ( "npt=" )? (Full-clock-val | Partial-clock-val 
			    | Timecount-val)
Full-clock-val	::= Hours ":" Minutes ":" Seconds ("." Fraction)?
Partial-clock-val	::= Minutes ":" Seconds ("." Fraction)?
Timecount-val	::= Timecount ("." Fraction)? (Metric)?
Metric		::= "h" | "min" | "s" | "ms"
Hours		::= DIGIT+; any positive number
Minutes		::= 2DIGIT; 00 から 59まで
Seconds		::= 2DIGIT; 00 から 59まで
Frames		::= 2DIGIT; @@ range?
Subframes	::= 2DIGIT; @@ range?
Fraction	::= DIGIT+
Timecount	::= DIGIT+
2DIGIT		::= DIGIT DIGIT
DIGIT		::= [0-9]

Timecount値の、デフォルトの単位は"s"(秒)である。

ビットレート

ビットレートは1ビット/秒の数を指定する。ビットレートは、以下の構文に基づいて表記すること

ビットレート ::= [0-9]+; 任意の正の数

prefetch要素の使用例

1) 映像の終了後すぐに画像が表示できるよう、画像データを先行取得する

<smil> 
  <body> 
    <seq> 
      <par> 
        <prefetch id="endimage" src="http://www.w3c.org/logo.gif"/> 
        <text id="interlude" src="http://www.w3c.org/pleasewait.html" fill="freeze"/> 
      </par> 
      <video id="main-event" src="rtsp://www.w3c.org/video.mpg"/> 
      <image src="http://www.w3c.org/logo.gif" fill="freeze"/> 
    </seq> 
  </body> 
</smil>

上記の例では、タイミングが指定されていないでので、デフォルト値が適用される。テキストは即時媒体なのですぐに表示され、prefetch要素では利用可能なバンド幅の全てを使って画像がダウンロードされる。 <par>の処理が終わると映像が再生され始める。映像の再生が終わると画像が表示される。

2) カーソルが重なったときに変更されるボタンについて、処理の高速化のために画像データを先行取得しておく。

<html> 
  <body> 
    <prefetch id="upimage" src="http://www.w3c.org/up.gif"/> 
    <prefetch id="downimage" src="http://www.w3c.org/down.gif"/>
    ....
    <!-- script will change the graphic on rollover --> 
    <img src="http://www.w3c.org/up.gif"/> 
  </body> 
</html>

4.6 現時点での問題

prefetch 要素は同期性のためのタイムベースとして利用可能か?  この機能は、サポートされるべきだと考えられている。 たとえば、先行取得が完了するまで、内容を再生しないということができる方がよいからだ。しかしこのことは、prefetch動作が開始時、終了時及び動作時間を持つことを意味している。先行取得機能はオプションであるが、いつ取得を開始し終了すべきかを判断する必要がある。またこれには、エラーが発生した場合の問題が伴う。 さらには、先行取得を行なわない、あるいは失敗が起こらない場合であっても、prefetch要素のタイミングに依存して動くなにかがあるかもしれない。 そのため、処理されなくともprefetch要素のタイミングを維持し、prefetch要素が実行されたかのようにしてイベントを起こす必要がある。 これは非常に複雑な問題である。一つの方法として、prefetch要素(の開始/終了など)に同期するのを禁じるということが考えられる。ところが、事はそう単純ではない。<seq>要素の中にprefetch要素がある場合を考えてみよう。たぶん最も単純な解決は、prefetch要素との同期を許可すること、そしてprefetchが行なわれない/失敗した場合には、持続時間0で開始時イベントと終了時イベントを同時に起こすようにすることである。


previous next contents

著作権表示
previous next content


WD - smil   − boston −  19991115

[原文についての]著作権表示

Copyright 1999,World Wide Web Consortium,(Massachusetts Institute of Technology(マサチューセッツ工科大学),Institut National de Recherche en Informatique et en Automatique(フランス国立情報処理自動化研究所),Keio University(慶應義塾大学)),All Rights Reserved.

W3Cサイトの上の文書は、以下のライセンスの下に提供される。 この文書(あるいはW3Cの有するこの文書をリンクする文書)を獲得/利用/コピーする場合、以下の条項を読み、理解し、従うことに同意すること。

以下の表示を保持する限りにおいて、この文書(あるいはW3Cの有するこの文面をリンクしている文書)の利用、コピー、無償でのあらゆる形式・目的での再配布について、これを許可する。

  1. オリジナルの W3C 文書へのリンクあるいはURI。
  2. 既存の原著作者についての著作権表示、あるいは以下のような表示:"Copyright World Wide Web Consortium, (Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All Rights Reserved."
  3. もしも存在するなら、 W3C文書の位置づけについての表示。

スペースの許す限り、この通知の全文が表示されるべきである。 加えて、この文書の含む内容、あるいはこの文書の示唆する実装に関するソフトウェア・文書・他のあらゆる品目について、原著作者についての著作権表示が表示されるべきである。

このライセンスによっては、修正あるいは派生物を作る権利は認められない。

THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; この文書はそのままの形で提供される。 そして、著作権保持者は 作成しない 抗議 内容の(明示的あるいは暗黙の)保証 侵害することなしに NO REPRESENTATIONS OR WARRANTIES (,EXPRESS OR IMPLIED,) INCLUDING(, BUT NOT LIMITED TO,) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,TRADEMARKS OR OTHER RIGHTS. この文書の内容はあらゆる目的に適合している;何者かの特許、著作権、登録商標、その他の権利を侵害していない限りにおいて。

‖ IS が「 IS として」提供した、そしてコピーライト保有者が主張をへリミテッド (LIMITED) ではなく以外特別であるか、あるいは暗黙の保証書、含むこと、の OR をとらせるこのドキュメント、 MERCHANTABILITY の保証書、特定の目的のためのフィットネス、非違反、あるいはタイトル;‖ドキュメントの中身が目的に適していること;‖同様に‖このような中身のインプリメンテーションがサードパーティー特許、コピーライト、トレードマークあるいは他の権利を侵害しないであろうこと‖。

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF. 著作権保有者は 責任を負わない あらゆる直接的、間接的、

コピーライト保有者がドキュメントあるいはパフォーマンスあるいはその中身のインプリメンテーションについて役に立つどんな間接的な、特別なダイレクト (DIRECT) あるいは外に生じている重大な損害のためにも責任がないであろう。

The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.

著作権者の名称と登録商標は、 この文書に関する著作権に伴う権利は著作権者に帰するものである。

名前と著作権保有者のトレードマークは特定の、書面の事前の許可なしでこの書類あるいはその内容に関して広告あるいは広報で使われないかもしれない。 この書類での著作権へのタイトルがいつも著作権保有者と一緒に残っているであろう。


前の次の中身
SMIL(同期マルチメディア統合言語) Boston 仕様書
next content


W3C

SMIL(同期マルチメディア統合言語) Boston 仕様書

W3C ワーキングドラフト 1999年11月15日

この版:
http://www.w3.org/TR/1999/WD-smil-boston-19991115
最新版:
http://www.w3.org/TR/smil-boston
前の版:
http://www.w3.org/1999/08/WD-smil-boston-19990820
編纂者:
Jeff Ayars (RealNetworks), Aaron Cohen (Intel), Ken Day (Macromedia), Erik Hodge (RealNetworks), Philipp Hoschka (W3C), Rob Lanphier (RealNetworks), Nabil Layada (INRIA), Jacco van Ossenbruggen (CWI), Lloyd Rutledge (CWI), Bridie Saccocio (RealNetworks), Patrick Schmitz (Microsoft), Warner ten Kate (Philips), Ted Wugofski (Gateway), Jin Yu (Compaq), Thierry Michel (W3C).

概要

この文書は 同期マルチメディア統合言語 (Synchronized Multimedia Integration Language:SMIL,"smile"と発音する) の"Boston (ボストン)" バージョンを規定する。 SMIL Boston は次の2点を目標としてデザインされている。

この文書の位置づけ

このセクションはこの文書が出版される際の、この文書の位置づけを示すものである。 他の記述がこのセクションに取って代わられる可能性がある。最新の位置づけに関する文書は、W3Cにおいて管理される。

この文書は "Boston" とコードネームを付けられた SMILの次バージョンについての仕様書のワーキングドラフト(作業草稿)の第2版である。 この文書は、W3Cの一部がマルチメディアの活動を同期させるために作り出された[It has been produced as part of the W3C Synchronized Multimedia Activity. ]。 この文書は同期マルチメディアワーキンググループ (SYMM Working Group)(会員専用ページ)[以下、"SYMM WG"と表記]によって書かれた。 SYMM WGの目標については、SYMM WG 憲章会員専用ページ)で論じられている。

文書の多くの部分はまだ予備的なものであって、ワーキンググループの内での意見一致を得たものではない。 また、SMIL Bostonに含めるべく計画されている機能のいくつかは、まだこのドラフトでは含まれていない。 多くの部分については、まだ実装のための詳細な記述がなされていない。そうでない部分についても、適切な実験的実装が記述されているだけである[Many parts are not yet detailed enough for implementation, and other parts are only suitable for highly experimental implementation work. ]。

現時点では、W3C SYMM WGはこの仕様書で解説された概念や実装等について、広く意見を求める。[At this point, the W3C SYMM WG seeks input by the public on the concepts and directions described in this specification.] なにかコメントがあれば、www-smil@w3.orgに送ってほしい。 ただし、どれだけのコメントが送られてくるか予想することは難しいので、すべてのコメントに対して反応をすることは保証できない。しかしながら、我々は慎重に各コメントを調査した上で、時間の許す限り対応をしたいと考えている。

このワーキングドラフトは、何時にても他の文書によって、更新され、置換され、または廃止される場合がある。 W3Cワーキングドラフトを参照資料として用いたり、「進行中の作業」以外のものとして引用することは不適切である。 この文書は進行中の作業であって、 W3C メンバーシップによって承認されたものではない。

現行のW3Cワーキングドラフトの一覧は http://www.w3.org/TR で見ることができる。

入手可能なフォーマット

このSMIL Bostonの仕様書は、次のフォーマットでも入手可能である:

Post Scriptファイル:
http://www.w3.org/TR/1999/WD-smil-boston-19991115/smilboston.ps
PDFファイル:
http://www.w3.org/TR/1999/WD-smil-boston-19991115/smilboston.pdf

目次(簡略版)

目次(完全版)


next contents
SMIL Boston について
previous next contents

WD - smil   − boston −  19991115

1.SMIL Boston について

編纂者
Philipp Hoschka(ph@w3.org) 、 W3C
Aaron Cohen (aaron.m.cohen@intel.com)、Intel

目次

1.1 はじめに

この文書は 同期マルチメディア統合言語 (Synchronized Multimedia Integration Language:SMIL,"smile"と発音する) の"Boston (ボストン)" バージョンを規定する。 SMIL Boston は次の2点を目標としてデザインされている:

SMIL Boston はSMILの機能実現のためにXML構文に従ったマークアップモジュールのセットとして定義される。[SMIL Boston is defined as a set of markup modules, which define the semantics and an XML syntax for certain areas of SMIL functionality. ] すべてのモジュールは対応するDocument Object Model(DOM)を持つ。

SMIL Bostonは、DOMとの親和性の低いSMIL 1.0構文を推奨しない。 最も顕著な例は、ハイフン付きの属性名をハイフンなしの属性名に変更したことである。例えば、属性名clipBeginは属性名clip-beginより望ましいものとされる。 SMIL Boston モジュールは(アプリケーション統合の阻害とならないよう)SMIL1.0属性に対するサポートを要求しない。 application/smil文書の再生機能(あるいはなんらかのSMIL文書の処理・表示機能)を持つアプリケーションであるSMIL文書プレイヤーは、推奨されないSMIL1.0属性名を、SMIL Bostonでの新たな属性名として扱うことを求められる。

この仕様書はモジュール毎のセクションによって構成される。

1.2 謝辞

この文書は、 World Wide Web Consortium の Synchronized Multimedia Working Group (SYMM - WG)によって作成された。 WG は次のメンバーによって構成される。


previous next contents
SMIL レイアウトモジュール
previous next contents


WD - smil   − boston −  19991115

5.SMIL レイアウトモジュール

編纂者
Aaron Cohen (aaron.m.cohen@intel.com) 、Intel

目次

5.1 はじめに

このセクションではSMILレイアウトモジュールを定義する。 SMILレイアウトモジュールには、(視聴覚の)メディア要素の表示上でのレイアウトを決定するための要素と属性が含まれる。 このモジュール内でレイアウトに関する要素と属性が定義されるので、他のマークアップ言語の中でメディアオブジェクトのレイアウトについて記述する必要が生じたときには、このモジュールを再利用することができる。 逆に、他のSMILモジュールを利用する場合であっても、既に他のレイアウト指定機能が存在しているなら、SMILレイアウトモジュールを利用する必要はない。

SMIL1.0[SMIL10]のレイアウトに関する要素・属性は尊重され、変更はごく限られたものと予想される。 SMIL1.0では既にCSS[CSS2]のような他のレイアウトモデルを使用する方法が提供されており、SMIL basic layoutモジュールより高機能なレイアウト機能が利用できる。階層化されたうちの一部分に対する適用は、機能拡張対象となるかもしれない部分である。

5.2 SMIL 1.0基本レイアウトについて

SMIL1.0には、メディア要素を画面上に配置するための基本的なレイアウトモデルが含まれている。 文書の<head>要素内に<layout>要素を置くことが可能で、<layout>要素内ではメディア要素を配置するための領域[region]を設定できる。 メディア要素にregion属性が指定されていた場合、対応する領域にその表示が行なわれる。

各領域はCSS2と互換性のある、topleftheightwidthbackground-colorの各プロパティを持つ。 各プロパティの値はlayout要素内で指定することが可能である。[These properties can be declared using a syntax defined by the type attribute of the layout element.] 記述には、SMIL 1.0の基本レイアウト構文、CSS2構文、あるいは他の記法を利用することができる。[SMIL-CSS2]

例えば、 (15,20)の位置に100ピクセルの幅と50ピクセルの高さを持った領域 "r" を、、SMIL 1.0基本レイアウト構文を使って設定するとこうなる。

    <layout>

    <region id="r" top="15px" left="20px" width="100px" height="50px"/>

    </layout>

また、CSS2構文を使うとこうなる。

    <layout type="text/css">

    [region="r"] { top: 15px; left: 20px; width: 100px; height:50px; }

    </layout>    
    

こうして宣言された領域にメディア要素を表示するには、region属性の値として、領域名を指定すれば良い。

    <ref region="r" src="http://..." />

さらには、メディア要素をレイアウトするために、実装系の側でCSSを用いることもあるだろう。セレクタを利用することで、メディア要素のレイアウトに関するプロパティを設定できる。例えば、全ての映像と画像を同様の場所と大きさで表示するのには、次のような指定をすれば良い。

    <layout>

    video, img { top:15px; left:20px; width:100px; height=50px; }

    </layout>  
    

このような複数のレイアウト指定を、それぞれ異なったtypeをもつものとして<switch>要素の中に書くこともできる。この場合、最初にtypeに適合したレイアウト指定が用いられることとなる。

5.3 SMIL基本レイアウトの構文

5.3.1 要素と属性

このセクションでは、SMIL基本レイアウトモジュールを構成する要素と属性を定義する。

<layout>要素

<layout>要素は、書類のbody内の要素が、(視聴覚の)論理レイアウト面上にどのように置かれるかを規定する。

<layout>要素は、その中で宣言されたレイアウトが用いられる前に文書中に記述されている必要がある。一般的には、<layout>要素は文書のhead部分に記述される。文書中に<layout>要素が記述されない場合の各要素の配置は、実装系によって異なる。

SMIL文書では<switch>要素内で<layout>を用いることによって、複数のレイアウト指定を記述することが可能である これにより、たとえば複数の(異なった)レイアウト言語を用いてレイアウト指定を行なうことができる。

要素の取りうる属性

id
この属性の値は、文書の中で要素を識別するのに用いられる。 この値はXML識別子である。
type
この属性の値は、layout要素内で、 どのレイアウト言語が用いられているかを明示する。 もし実装系が対応していない言語の場合、そのレイアウト指定は無視される。 デフォルト値は "text/smil-basic-layout"である。

要素の内容

layout要素のtype属性値が"text/smil-basic-layout"であるなら、layout要素は以下の要素を含むことが可能である。

region
root-layout

layout要素のtype属性値が他の値であるなら、要素内にはそれに相応しいデータが含まれることになる。

<region>要素

region要素はメディアオブジェクト要素の位置、サイズと倍率を調整することができる。

次の例では、テキスト要素の表示位置が表示ウィンドウの上端から5ピクセルのところに設定される。

<smil>
  <head>
    <layout>
      <region id="a" top="5" />
    </layout>
  </head>
  <body>
    <text region="a" src="text.html" dur="10s" />
  </body>
</smil>

取りうる属性

region要素は次の属性を持つことができる

backgroundColor
この属性の使用法と定義法は、 システムカラーのサポートを必要としない点を除き、 CSS2の"background-color"プロパティと全く同じである。 [この属性により、背景色が定義される。]
backgroundColor属性がしていされなかった場合、背景色は透明となる。
background-color
この属性の仕様は推奨されない。backgroundColor属性と同等である。 ただし、SMIL文書プレーヤーにはこの属性のサポートが求められる。
fit
この属性は、 region要素の heightwidth属性で指定されたものと 表示しようとする(視覚的な)メディアオブジェクトとで 高さ・幅が違う場合の扱いを指定する。 この属性に対応するCSS2のプロパティは存在しない。 しかし、同様の指定をCSS2で行なうことは可能である。
この属性は以下の値を取りうる
fill
regionの高さと幅に合うように、オブジェクトの高さと幅を調整する。
hidden
  • オブジェクトの高さ(幅)がregionの高さ(幅)より 小さいなら、領域の上(左)端から表示して余った部分は背景色で埋める。
  • オブジェクトの高さ(幅)がregionの高さ(幅)より 大きいなら、領域の上(左)端から表示し、 表示しきれなかった部分については表示しない。
meet
オブジェクトのアスペクト比(局面比率)を維持したまま、 幅あるいは高さがregionの値と一致し、 かつ表示できない部分がないようにオブジェクトを拡大ないし縮小する。 オブジェクトはregionの左上隅から表示され、 右か下かの余った部分については背景色で埋められる。
scroll
オブジェクトがregionに表示しきれない場合、スクロール機能を利用する。
slice
オブジェクトのアスペクト比(局面比率)を維持したまま、 幅あるいは高さがregionの値のどちらかと一致するように、 オブジェクトを拡大ないし縮小する。 オブジェクト右側あるいは下側の表示仕切れない部分については、 切り捨てて表示しない。

fit属性のデフォルト値は"hidden"である。

height
この属性の使用法と定義法は、CSS2の"height"プロパティと全く同じである。 値についても、CSS2と同様、割合か長さのいずれかの値を取る。 ただし長さについては、SMIL基本レイアウトではピクセル数にのみ対応する。 ピクセル数を記述する場合、単位表示の"px"はなくてもよい。 ("px"についての詳細はCSS2を参照すること)
id
ここで指定した値を(配置可能な)要素のregion属性値に指定することで、設定した領域に要素の内容が表示される。
id属性はregion要素に必須の値である。
left
この属性の使用法と定義法は、CSS2の"left"プロパティと全く同じである。 取りうる値は、height属性と同様である。
デフォルト値は0である。
skip-content
この属性は、将来的なSMILの拡張のために用意されたものである。 この属性には、次の2通りの利用法が考えられている。
  • 拡張されたSMILに新たな要素が加えられ、 それがSMIL1.0の要素を内容に取りうる場合に、 その内容をSMIL 1.0プレーヤーで処理すべきかどうか指定する。
  • SMIL1.0では空要素だったものが、将来の版において空要素でなくなった場合、 SMIL 1.0プレーヤーがその内容を無視するのか、 それともエラーとして扱うのかを指定する。

もしskip-content属性の値が"true"なら、要素の内容は無視される。 もし値が"false"なら、要素の内容に対して処理が行なわれる。
skip-content属性のデフォルト値は"ture"である。

title
この属性はその要素が何を表示するかについての簡単な説明を提供する。 この属性の値はユーザーエージェントにより、様々な方法で処理される。 たとえば、ビジュアルなブラウザではしばしばタイトルを 「ツールチップ(マウスカーソルがオブジェクトの上で止まったときに 現れる短いメッセージ)」として表示する。
すべてのregion要素には、 有意なtitle属性の指定が強く推奨される。 オーサリングツールには、 SMIL文書中にtitle属性なしのregion要素を 含むことができないようにすることが求められる。
top
この属性の使用法と定義法は、CSS2の"top"プロパティと全く同じである。 取りうる値は、height属性と同様である。
デフォルト値は0である。
width
この属性の使用法と定義法は、CSS2の"width"プロパティと全く同じである。 取りうる値は、height属性と同様である。
z-index
この属性の使用法と定義法は、 以下の点を除けばCSS2の"z-index"プロパティと全く同じである。
要素AとBによって産まれた2つのボックスが同じスタックレベルにある場合、
  1. もし要素Aの表示が、要素Bの表示より後に開始されたなら、 ボックスAはボックスBの上に重ねられる (時系列オーダー)
  2. 要素の表示が同時に開始され、 かつ要素AのほうがSMIL文書内での登場順が遅いなら、 ボックスAはボックスBの上に重ねられる (CSS2でも定義される、文書ツリーオーダー)

要素の取りうる内容

region要素は、空要素である。

<root-layout>要素

<root-layout>要素は、例えば表示されるウィンドウのサイズなど、ルート要素のレイアウトに関するプロパティを指定する。

文書中に複数のroot-layout要素が含まれていた場合はエラーであり、文書は表示されるべきでない。

要素の取りうる属性

root-layout要素は以下のの属性を取りうる。

backgroundColor
<region>要素で定義された同名のものと同じである。
background-color
<region>要素で定義された同名のものと同じである。
height
ルート要素の高さを指定する。値として、長さだけを取りうる。
id
<region>要素で定義された同名のものと同じである。
skip-content
<region>要素で定義された同名のものと同じである。
title
<region>要素で定義された同名のものと同じである。
width
ルート要素の幅を指定する。値として、長さだけを取りうる。

要素の取りうる内容

root-layout要素は空要素である。

5.3.2 SMIL基本レイアウト言語の詳細

SMIL基本レイアウトはCSS2のレイアウト機能相当のものであり、CSS2仕様書にて定義される各プロパティを再利用したものに、新機能として"fit"属性を加えたものである[CSS2]。 読者にはCSS2の概念と用語に精通していることを期待する。

SMIL基本レイアウトはメディアオブジェクト要素のレイアウトをコントロールするだけのものである。他のSMIL要素にSMIL基本レイアウトを適用することはできない。

SMIL基本レイアウトの形式識別子は"text/smil-basic-layout"である

固定されたプロパティ

以下のスタイルシートの内容は、 SMIL文書中でSMIL基本レイアウトを用いる際に適用される CSS2のdisplayならびにpositionプロパティに相当する値である。 以下で指定されるプロパティは固定される。

	
a           {display:block}
anchor      {display:block}
animation   {display: block;
             position: absolute}
body        {display: block}
head        {display: none}
img         {display: block;
             position: absolute}
layout      {display: none}  
meta        {display: none}
par         {display: block}
region      {display: none}
ref            {display: block;
             position: absolute}
root-layout {display: none}
seq         {display: block}
smil        {display: block}
switch      {display:block}
text        {display: block;
             position: absolute}
textstream  {display: block;
             position: absolute}
video       {display: block;
             position: absolute}

SMIL基本レイアウトを使っているあらゆるXML言語においても、同等の要素についてはこれらの値は固定されねばならない。 この定義により、絶体配置と指定された要素[absolutely positioned element] ( <animation><img><ref><text><textstream><video>) については、単独のコンテナブロックに含まれ、 その位置はルート要素中の絶対位置として規定されることに注意せよ。

デフォルト値

SMIL基本的レイアウトはすべてのレイアウト関連の属性のデフォルト値を定義する。 その値は、CSS2の対応するプロパティの値に等しい。

もしもすべてのメディアオブジェクトについてデフォルト値の適用を望むならば、 文書中にtype属性を"text/smil-basic-layout"とした 空のlayout要素が必要となる。

<layout type="text/smil-basic-layout"></layout>

5.4 SMIL1.0基本レイアウトへの拡張

現行のSMIL1.0基本レイアウト構文は、全てのSMILプレーヤーで有効な単純かつ軽量なマルチメディア表現のレイアウト指定法として有益なものである。 しかしながら、いくつかのレイアウト機能追加の必要が生じている。 それらは比較的容易に実装可能で、かつSMIL基本レイアウトの本来の軽量性を損なわないものであると思われる。

新しい構文の組み込みにより提供される予定の新機能

新しい構文の組み込みにより提供されるかもしれない新機能

CSS2 / CSS3 のプロパティに対する追加のサポート

5.5 現時点での問題

上記のしたSMILレイアウトモデルに対する簡単な拡張についてさえ、 多くの問題点が現存している。


previous next contents
SMILモジュール
previous next contents


WD - smil   − boston −  19991115

2. 同期マルチメディア統合言語(SMIL)モジュール

編纂者:
Ted Wugofski < ted.wugofski@otmp.com >、
Patrick Schmitz <pschmitz@microsoft.com >、
Warner ten Kate <warner.ten.kate@philips.com >


目次

2.1 はじめに

最初に、W3C SYMM-WGはSMIL[ SMIL10 ]をを作成した。 このXMLベースの言語[XML10]は音声と映像のようなメディア要素間の時間的な結合を表現するために用いられる。 SMIL 1.0文書は、SMIL仕様に従ったビュワーによって再生されうる、マルチメディア表現を記述するものである。

SMIL1.0 仕様の公開後、SMILの概念をHTMLや他のXML言語に統合することに対しての関心が強まった。 また、W3CのHTML ワーキンググループは、XHTML[XHTML10]と他の言語の統合について模索している。 2つのワーキンググループはお互いに(あるいは他のXML言語に)それぞれの機能を統合するための方策として、モジュール化を推し進めることを考案した。

モジュール化とは、各言語の機能を、意味的に似通った要素ごとに分割するという解決法である。 プロファイル化とは問題解決のために分割された機能を組み合わせていくことである。 この仕様の目的に沿った形で、我々は以下のように定義する。

要素(element)
要素(element)は意味を代表する表現である。[An element is a representation of a semantic feature.] 要素は構文中において、ひとつの[情報の]表現に相当するものとして存在する。[An element has one representation in any given syntax.]
モジュール(module)
モジュールは互いに関連性の強い要素を集成したものである。
モジュール群(module family)
モジュール群は互いに関連性の強いモジュールを集成したものである。個々の要素は、ただ一つのモジュール群にのみ属する。モジュール群の中のモジュールは(一般的に)機能の追加順に順序付けされる(各モジュールは同一モジュール群内の、自分より若いモジュールをも含んでいる)。
プロファイル(profile)
プロファイルとはアプリケーションあるいは言語ごとに固有の、モジュールの集成である。例えば、SMIL プロファイルとは、SMIL言語を構成するモジュールを集成したものである。同様に、「拡張されたテレビ」プロファイルは、拡張されたテレビ放送のモジュールの集成に対応するだろう。一般に、あるモジュール群からは1つのモジュールだけが(1つの)プロファイルに含まれることとなる。

SMILの機能は、以下に示す条件に基づいてモジュールとして分割される:

  1. 特定のプロファイルは、SMIL1.0との完全な下位互換性を保持する。
  2. 各モジュールに基づく表現は、SMIL1.0に基づく表現との互換性を保持する(コンテンツ及びタイミングについても含まれる)。[Ensure that a module's semantics maintain compatibility with SMIL 1.0 semantics (this includes content and timing).]
  3. W3C 推奨に基づいく他のモジュールを [be isomorphic] であるようにモジュールを構成する。
  4. XHTMLモジュールを補完することができるように、モジュールを構成する。
  5. なんらかの必要性に抵触しない限り、新しいW3C推奨に適合させる。
  6. モジュールのDocument Object Model(DOM)対応を明確にする。

第1の条件は、過去のSMILとの互換性を持つモジュール集成[= プロファイル]を構成することが可能なようにモジュールを規定していく、ということである。(これにより、[これまでの]SMILに適合したコンテンツが再生可能になる

第2の条件は、モジュール化によって、SMIL構文に基づいた記述の意味が変化してしまうことがないようにする、ということである。 これによってSMILに基づいたコンテンツ及びタイミングモデルの完全性が保証される。 これは、他の言語にSMILの機能を統合するために異なる構文が要求されるときに、特に重要になる。[This is particularly relevant when a different syntax is required to integrate SMIL functionality with other languages. ]

第3の条件は、モジュールは他のW3C推奨に含まれるモジュールから[be isomorphic]であることである。 プロファイルを通じて[他の仕様との間で]モジュールを共有することは、多いにデザイナーを支援するだろう。

第4の条件は、XHTML言語にマルチメディア関連機能を提供することに重きが置かれるということを意味している。ちなみに、XHTMLとはHTMLをXML構文に基づいて再構成したものである。

第5の条件は、適切かつ他の条件(XHTMLを補完したい、など)に抵触しない限りにおいて、モジュールは新しいW3C推奨に適合するように構成されるということである。

第6の条件は、各モジュールはDocument Object Model(DOM)に適合することを保証する、ということである。これにより、記述やユーザーエージェントによる追加処理が容易となる。

これらの条件に基づいたSYMM-WGの検討により、SMILの機能は9つのモジュールに分割されることとなった。

2.2 SMIL モジュール

SMILの機能は、以下の9つのモジュールに分割される

各モジュールは、互いに関連性の強い要素(elements)、特性(properties)、属性(attributes)によって構成される。

2.2.1アニメーション(Animation)モジュール

アニメーションモジュールは、時系列上のものとしてアニメーションを再現するための枠組み(タイミングモデル)と複合的なアニメーションを構成するための機構(コンポジションモデル)を提供する。 アニメーションモジュールは、animatesetanimateMotionanimateColorの各要素を定義する。

2.2.2コンテンツコントロール (Contents Control) モジュール

コンテンツコントロールモジュールは、テスト用属性セットに則って選択を行なうための機構(の枠組み)を提供する。 コンテンツコントロールモジュールはswitch要素を定義する。

2.2.3 レイアウト(Layout)モジュール

レイアウトモジュールは視覚的コンポーネントの配置に関する枠組みを提供する。 レイアウトモジュールはlayoutroot-layoutregionの各要素を定義する。

2.2.4リンク(Linking)モジュール

リンクモジュールは文書を(他の)コンテンツ・文書ないしその一部分に関連づけるための枠組みを提供する。 リンクモジュールはaareaの各要素を定義する。

2.2.5 メディアオブジェクト(Media Object)モジュール

メディアオブジェクトモジュールはメディアの取り扱いに関する枠組みを提供する。 メディアオブジェクトモジュールはrefanimationaudioimgvideotexttextstreamの各要素を定義する。

2.2.6 メタ情報(Metainformation)モジュール

メタ情報モジュールは、人間もしくは自動処理のために有益な情報を文書中に記述するための枠組みを提供する メタ情報モジュールは、meta要素を定義する。

2.2.7 構造(Structure)モジュール

構造モジュールはSMIL文書を構造化するための枠組みを提供する。 構造モジュールはsmil headbodyの各要素を定義する。

2.2.8 タイミング・同期(Timimg and Synchronization)モジュール

タイミング・同期モジュールはタイミング構造(timing structure)・タイミング操作特性(timing control properties)・要素間の時間的連携について記述するための枠組みを提供する。 タイミング・同期モジュールはparseqexclの各要素を定義する。 加えて、begindurendrepeatCountrepeatDurなどの[et al]特性を定義する。 これらの要素・属性等は変更される可能性がある。

2.2.9 遷移効果(Transition Effects)モジュール

遷移効果モジュールは 遷移効果をXML文書へ統合するためだけでなく、遷移効果を分類するための方法について定義する。[The Transition Effects Module defines a taxonomy of transition effects as well as semantics and syntax for integrating these effects into XML documents.]

2.3 Isomorphism

SMILの各モジュールには、他のW3C推奨のモジュールとの対応性が求められる。 対応性はプロファイルを通じて(他のW3C仕様と)モジュールを共有する際に、デザイナーを支援することになるだろう、

表 − SMILモジュールとHTMLモジュールの対応性について
アニメーション
(Animation)
animate, set, animateMotion, animationColor - -
コンテンツコントロール
(Content Control)
switch - -
レイアウト
(Layout)
layout, region, root-layout Stylesheet style
リンク
(Linking)
a, area Hypertext a
Link link
Base base
Image Map map, area
メディアオブジェクト
(Media Object)
ref, audio, video, text, img, animation, textstream Object object, param
Image img
Applet applet, param
メタ情報
(Metainformation)
meta Metainformation meta
構造
(Structure)
smil, head, body Structure html, head, body, title
タイミング・同期
(Timing and Synchronization)
par, seq, excl - -
遷移効果
(Transition Effects)
transition - -

表からわかるように、 Metainformation モジュールは SMILとHTMLの両方に含まれる。 作業は、SMILとHTMLによって共有できるひとつのモジュールを定義する方向で進められている。

2.4 マルチメディアプロファイル

SMILモジュールによって構成可能なプロファイルは多岐にわたる。 どのようにプロファイルを構成し問題を解決すべきかの参考例として、4種類のプロファイルを定義する。

ここで参考例として挙げられたプロファイルは仕様に含まれない。[These example profiles are non-normative.]

2.4.1 軽量表現プロファイル

軽量表現(Lightweight Presentations)プロファイルは、テキスト文の表示タイミングを取り扱うものである。 軽量表現プロファイルのもっとも単純なバージョンは、パームトップあるいはスマートホンのように制約の多い表示機器で、株価や主要ニュースを表示するのに用いることができる。 軽量表現プロファイルは、以下のSMILモジュールを含むものと思われる。

また、軽量表現プロファイルは、タイミング・同期モジュールを付加したXHTMLモジュール[ XMOD ]に基づいているかもしれない。

2.4.2 SMIL-Boston プロファイル

SMIL-Bostonプロファイルは(SMIL言語で規定された)時系列に沿ったマルチメディア表現をサポートする。 SMIL-Bostonプロファイルは以下のSMILモジュールを含むものと思われる。

2.4.3 XHTML表現プロファイル

XHTML表現(XHTML Presentations)プロファイルはマルチメディア・XHTMLレイアウト・CSSによる表示指定を統合する。XHTML表現プロファイルは、以下のモジュールを含むものと思われる。

XHTML表現プロファイルは構造化のためのXHTMLモジュール・レイアウト・マルチメディアの時間的演出のためのSMILモジュールというふうに使われるであろう。 [This profile would use XHTML modules for structure and layout and SMIL modules for multimedia and timing.] 連結された機能は、XHTMLモジュール[ XMOD ]あるいはSMILモジュールから選択されるであろう。

2.4.4 Web拡張メディアプロファイル

Web拡張メディアプロファイルは、(Web上における)公共配信やオンデマンドストリーミングメディアにおけるマルチメディア表現の統合をサポートする。 一次メディアはしばしばタイムラインを定めているものである。[The primary media will often define the main timeline.] Web拡張メディアプロファイルは以下のSMILモジュールを含むものと思われる。

Web拡張メディアプロファイルは、XHTML表現プロファイルにストリーム配信及び一次メディアとの時刻による同期の機能を付加したものに近い。[This profile is similar to the XHTML Presentations Profile with additional support to manage stream events and synchronization of the document's clock to the primary media.]


previous next contents