HDi

HDiとは、マイクロソフトによるHD DVDのAdvacend Content層の実装である。かつてはiHDと称していた。

概要 
HDi向けのアプリケーションはXML派生言語とECMAScriptを使って書かれる。ECMAScriptはMicrosoft Windowsプラットフォーム上で動作するJScriptエンジンで処理される。HDi実行部はAdvanced Content規格に定義されたAPIを提供する。シングルスレッドのプログラミングモデルのみに対応しているが、ネットワークアクセスや二次記憶装置アクセスなどの操作は非同期に実行される。

HD DVDビデオのインタラクティブ機能はAdvanced Contentのアプリケーションであり、HDi実行部によりマークアップとスクリプトを解析して実行され描画される。アプリケーションは、プレイリストファイル(.xpl)とサブタイトルファイル(.xas)とマークアップファイル(.xmu)とスクリプト(.js)、ビデオ本体から構成され、ディレクトリ構造も定義されている。ビデオの再生はナビゲーションシステムの一部として統合されており、スクリプトコードで制御され起動される。

実行部は、ビデオ再生とナビゲーション用アプリケーションの実行と描画を行う。マークアップは構文解析されてDocument Object Model(DOM)に変換された上でECMAScriptコードにてUIレイアウトを実行時に制御・修正できるようになる。アニメーションとインタラクティブ性は、UIウィジェットのレイアウトを動的に変更することでなされる。DOMと関連APIによって再生の一時停止、ナビゲーションUIの置換、映画の特定エリアのシーク（手動シークまたはブックマークのシーク）が可能となる。描画面は6層になっており、それを合成して表示する。それぞれの層は背景から前景の順に次のようになっている。
 Background plane: アプリケーションの背景色を決定する。
 Main video plane: ビデオ本体はこの面で表示される。
 Sub video plane: ピクチャ・イン・ピクチャなど2次的ビデオが表示される。
 Subtitles graphics plane: サブタイトル（字幕）が表示される。
 Application graphics plane: スクリプトとマークアップによるUIはこの面に描画される。
 Cursor plane: カーソルを表示する場合に使われる。

マイクロソフトはHDiアプリケーション開発用ツールを提供していないが、マイクロソフトはHDiシミュレータ（Windows XP上でHDiアプリケーションを実行しデバッグできる環境）を無料でダウンロード可能にしていた。ただしこれは完全な開発ツールではなく、再生デバイスでもない。サードパーティからは開発ツールが発売されていたが、Advanced ContentとHDiが使っているコンポーネント（XML、XSL-FO、XPath、ECMAScript）は広く使われているものばかりなので、HDi専用ツールでなくとも流用可能である。

HDiは光ディスクだけでなく、インターネット上のマルチメディアコンテンツなどにも応用できる。実際、2007年10月4日、東芝とマイクロソフトはAdvanced Interactivity Consortium (AIC)の結成を発表した。

Advanced ContentとはDVDフォーラムが、メニュー、ブックマーク、ピクチャ・イン・ピクチャ、追加コンテンツやゲームなどのHD DVDのインタラクティブ機能のために定義した仕様で、タイマ、ユーザー入力（リモコンなど）などの機能が提供される。また、ネットワークにアクセスして追加コンテンツをダウンロードしたり、2次記憶装置上のブックマークなどの情報にアクセスしたりできる。表示スタイルの設定にはXSL-FOをベースとしたXMLマークアップが、タイマの設定にはSMILが使われ、アプリケーション作成時にはXPathを使うこともできる。

脚注

外部リンク 
HDi trademark press release
MSFT Peter Torr's HDi Blog
Microsoft's Amir Majidimehr describes the genesis of HDi (and other things)

マイクロソフト
DVD