インプレスグループで法人向け情報コミュニケーション技術関連メディア事業を手がける株式会社インプレスR&D(本社:東京都千代田区、代表取締役社長:井芹昌信)のシンクタンク部門、インターネットメディア総合研究所は、株式会社テレビ朝日メディアプレックス 監修/田中賢一郎 著『ソースコード付き<デジタル放送対応> BMLブラウザ実装ハンドブック』を11月17日(火)に発行いたします。
本書は、好評をいただいた既刊の『BMLコンテンツ開発ハンドブック』シリーズ(地上デジタル/衛星デジタル/ワンセグ放送編)の続編にあたります。
デジタル放送の大きな特徴の1つが、映像や音声だけでなく文字や画像による情報を提供するデータ放送で、コンテンツは、BML〔Broadband Markup Language、社団法人電波産業会(略称:ARIB)で策定されたデータ放送記述言語〕という言語によって作成されます。BMLは、HTMLをベースにしているところからHTMLとよく似ていますが、放送の環境にあわせて拡張されているため、HTMLとは異なる配慮が必要となります。
既刊の『BMLコンテンツ開発ハンドブック』シリーズでは、BMLコンテンツの作成方法について説明しました。これに対し本書では、HTMLやJavaScriptの基礎知識がある読者に向けて、今回初めてBMLブラウザ(giggle)(注1)のエンジン部分のソースコードをすべて公開し、付属のCD-ROM に同梱しています(注2)。
本書では、BMLとHTMLの違いを解説しながら、BMLブラウザの内部実装について実践的に詳説しているため、BMLコンテンツ作成者は、ブラウザの内部実装を知ることで、ARIB規格に対する理解をより深めることができ、さらに、ブラウザの動きを予想することで、より効率の良いBMLコンテンツを作成できるようになります。
本書は、BMLコンテンツ制作者はもちろんのこと、テレビメーカーや放送用各種ツールメーカーの方々、さらに放送局でデータ放送に従事する人やメーカーの開発者、プログラムの勉強をしている学生など、多くの皆様に読んでいただけます。
(注1)giggleは、パソコン上で稼働する地上デジタル・BS/CSデジタル放送のコンテンツを検証するソフトウェアで、株式会社デジタル・キャスト・インターナショナル(現、株式会社テレビ朝日メディアプレックス)で開発された。このソフトウェアは、いくつかの放送局のコンテンツ制作現場で実際に使用されているという実績をもっている。
(注2)同梱されているソフトウェアやデータは以下のとおり。
・BMLブラウザエンジンのソースコード
・BMLブラウザgiggle
・BMLサンプルコンテンツ
・BMLブラウザエンジンテストデータ
<<調査報告書の製品形態、および販売に関するご案内>>
『ソースコード付き<デジタル放送対応> BMLブラウザ実装ハンドブック』
株式会社テレビ朝日メディアプレックス 監修/田中 賢一郎 著
<<製品形態・販売価格一覧 >>
インプレスR&D インターネットメディア総合研究所の調査報告書は、お客様のご利用ニーズに合わせ、簡易製本の冊子版、CD(PDF)版をご用意しております。
<<目次 >>
- 第1章 セットアップと動作確認
-
- 1.1 インストール
- 1.1.1 Microsoft Visual C# Express Editionのインストール
- 1.1.2 NUnitのインストール
- 1.1.3 IISのインストール
- 1.1.4 GiggleProjectのインストール
-
- 1.2 動作確認
- 1.2.1 GiggleProject
- 1.2.2 NUnit
-
- 1.3 最もシンプルなBMLブラウザ
- 1.3.1 作業手順
-
- 1.4 コードの読み方
- 1.4.1 全体の構成
- 1.4.2 BMLブラウザ実装のスタンス
- 第2章 DSMCC
-
- 2.1 背景知識
- 2.1.1 MPEG-2 PSとMPEG-2 TS
- 2.1.2 TSとES
- 2.1.3 コンポーネントタグ
- 2.1.4 PESとデータカルーセル
- 2.1.5 .モジュールとリソース
- 2.1.6 名前空間
- 2.1.7 カルーセルの時間変化
- 2.1.8 イベントメッセージ
- 2.1.9 リンク・非リンク
- 2.1.10 ベースURI
-
- 2.2 SI/PSI
-
- 2.3 実装
- 2.3.1 IDsmcc
- 2.3.2 NameSpaceState
- 2.3.3 NsContext
- 2.3.4 SI
- 第3章 BMLブラウザの概要
-
- 3.1 BMLブラウザの特徴
- 3.1.1 イベント駆動
- 3.1.2 キーとなるクラス
-
- 3.2 実装
- 3.2.1 BML文書の読み込み - BmlDocument
- 3.2.2 BmlNodeオブジェクトの作成 - BmlNode
- 3.2.3 BmlNodeの検索台帳 - NodeFinder
- 3.2.4 BMLブラウザへの入り口 - Browser
- 3.2.5 BMLエンジンの心臓部 - MessagePump
- 3.2.6 BML文書のチェック機能 - AribCheckVisitor
- 第4章 PNG/MNG
-
- 4.1 背景知識
- 4.1.1 PNGの特徴とファイルフォーマット概説
- 4.1.2 ARIBの制限
- 4.1.3 CLUTファイル
- 4.1.4 RGBとYCbCr
-
- 4.2 実装
- 4.2.1 CLUTファイルのパース
- 4.2.2 PNGファイルのパース
- 4.2.3 PNGファイルのパース(別手法)
-
- 4.3 MNG
- 第5章 CSS2
-
- 5.1 背景知識
- 5.1.1 CSS2の例
- 5.1.2 CSS2モジュールに必要な機能
- 5.1.3 取り得る値
- 5.1.4 Active/Focus/Normal
- 5.1.5 適用可能な対象
- 5.1.6 セレクタへの制限
- 5.1.7 暗黙の初期値
- 5.1.8 優先順位
-
- 5.2 実装
- 5.2.1 データ構造
- 5.2.2 正規表現を使ったスタイルの取得
- 5.2.3 CSS特性名、DOM属性名
- 5.2.4 適用可能な対象の実装
- 5.2.5 優先順位の実装
- 5.2.6 CssItemの実装
- 第6章 描画
-
- 6.1 背景知識
- 6.1.1 ブロック要素とインライン要素
- 6.1.2 クリッピング
- 6.1.3 ボックスモデル
- 6.1.4 position特性
- 6.1.5 デフォルトスタイルシートにみる描画ルール
- 6.1.6 Z-order
- 6.1.7 文字の組み版
- 6.1.8 ブロック要素
-
- 6.2 実装
- 6.2.1 ボックスモデル
- 6.2.2 要素の描画
- 6.2.3 インライン要素のレイアウト
- 第7章 コマンド
-
- 7.1 コマンドパターン
-
- 7.2 クラス図
-
- 7.3 ARIBにおけるイベントに関する規定
-
- 7.4 実装
- 7.4.1 BmlCommand
- 7.4.2 BmlKeyCode
- 7.4.3 BmlCommandDataButtonPressed
- 7.4.4 BmlCommandDataEventChanged
- 7.4.5 BmlCommandBlur
- 7.4.6 BmlCommandFocus
- 7.4.7 BmlCommandChange
- 7.4.8 BmlCommandClick
- 7.4.9 BmlCommandLaunchDocument
- 7.4.10 BmlCommandFinishDocument
- 7.4.11 BmlCommandLoad/BmlCommandUnload
- 7.4.12 BmlCommandRepaint
- 7.4.13 BmlCommandTimer
- 7.4.14 BmlCommandModuleLocked
- 7.4.15 BmlCommandModuleUpdated
- 7.4.16 BmlCommandModuleTemplate
- 7.4.17 ModuleManager
- 7.4.18 BmlCommandEventMessageFired
- 7.4.19 BmlCommandKeydown
- 7.4.20 BmlCommandKeyup
- 7.4.21 BmlCommandEvalString
- 7.4.22 BmlCommandEvalTerminalInput
- 第8章 browserオブジェクト
-
- 8.1 メンバー変数
-
- 8.2 プロパティ
-
- 8.3 メソッド実行の仕組み
-
- 8.4 メソッド実装詳細
- 8.4.1 拡張メソッド
- 8.4.2 通信関連メソッド
- 8.4.3 動作制御用メソッド
- 8.4.4 モジュールロック関連メソッド
- 8.4.5 その他のメソッド
- 第9章 JavaScriptエンジン
-
- 9.1 ManagedとUnmanaged
-
- 9.2 Hostオブジェクト
-
- 9.3 組み込みオブジェクト
-
- 9.4 BMLブラウザにおけるHostオブジェクト
-
- 9.5 JavaScriptオブジェクトとManagedオブジェクトの関係
-
- 9.6 JavaScriptエンジン組み込み時の注意点
- 9.6.1 3/2 = 1
- 9.6.2 Dateオブジェクト
- 9.6.3 BinaryTable
- 9.6.4 文字コード
-
- 9.7 実装詳細
- 9.7.1JsVal
- 9.7.2 IEngine
- 9.7.3 SpiderMonkey
- 9.7.4 JsObject
-
- 9.8 JsObjectを継承するオブジェクト例
- 9.8.1 BmlNode
- 9.8.2 BmlEvent
- 9.8.3 BmlDocumentObject
- 第10章 その他のクラス
-
- 10.1 BmlNodeを継承するクラス
- 10.1.1 BmlNodeMeta
- 10.1.2 BmlNodeScript
- 10.1.3 BmlCSS2Properties
- 10.1.4 BmlNodeBody
- 10.1.5 BmlNodeTextTemplate
- 10.1.6 BmlNodeDiv
- 10.1.7 BmlNodeBeitem
-
- 10.2 BmlDate
-
- 10.3 BmlBinaryTable
【株式会社インプレスR&D】 http://www.impressRD.jp/
インプレスR&Dは、Webビジネス関係者、ワイヤレスブロードバンド技術者、放送・通信融合およびデジタル家電関係者、IPv6関係者、ICTを活用するビジネスマンなど、インターネットテクノロジーを核としたあらゆる分野の革新をいち早くキャッチし、これからの産業・社会の発展を作り出す人々に向けて、クロスメディア事業を展開しています。
【インプレスグループ】 http://impress.jp/
株式会社インプレスホールディングス(本社:東京都千代田区、代表取締役社長:関本彰大、証券コード:東証1部9479)を持株会社とするメディアグループ。「IT」「音楽」「デザイン」「医療」「山岳・自然」を主要テーマに専門性の高いコンテンツ+サービスを提供するメディア事業を展開しています。
【購入に関するお問い合わせ先】
株式会社インプレスR&D オンライン販売部
〒102-0075 東京都千代田区三番町20番地
TEL:0120-350-995(11時~12時、13時~17時) FAX:03-5213-6297
電子メール: report-sales@impress.co.jp
【内容に関するお問い合わせ先、報道関係者からのお問い合わせ先】
株式会社インプレスR&D インターネットメディア総合研究所 編集担当:威能
〒102-0075 東京都千代田区三番町20番地
TEL:03-5275-1087 FAX: 03-5275-9018
電子メール: im-info@impress.co.jp、URL: http://www.impressRD.jp/