以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
図1には、本明細書で開示する技術を適用したディジタル放送システム10の構成例を模式的に示している。図示のディジタル放送システム10は、放送送出システム11と、受信機12で構成される。
放送送出システム11は、MPEG-2 TS方式の放送信号を送信する。放送信号には、ビデオやオーディオなどの放送番組本編を構成するエレメンタリー・ストリーム(ES)や、放送番組本編に関連又は連携するデータ放送アプリケーションなどが含まれる。以下の説明では、HTML5によるデータ放送サービスを想定している。
一方、受信機12は、放送送出システム11から送られてくる放送信号を受信する。そして、受信機12は、受信した放送信号からビデオやオーディオなどのエレメンタリー・ストリームを取得して、放送番組の画像や音声を提示する。また、受信機12は、受信した放送信号からデータ放送用の各ファイル・データを取得すると、HTMLブラウザーなどのアプリケーション・エンジンを起動して、放送番組に連動したデータ放送の提示を行なう。
本実施形態に係るディジタル放送システム10では、MPEG-2 TS方式を適用したディジタル放送サービスが提供されるが、詳細な仕様は例えば標準規格ARIB STD-B24 5.9版に従う。
図2には、本実施形態に係るディジタル放送システム10において想定される放送信号200の構成を模式的に示している。図示の放送信号200は、複数のトランスポート・ストリームのコンポーネント210~250を含んでいる。
参照番号210、220で示される各コンポーネントはそれぞれ、放送番組本編を構成するビデオ並びにオーディオを伝送するエレメンタリー・ストリームである。
参照番号230で示されるコンポーネントは、受信機12に対するデータのダウンロードやマルチメディア・サービスにおけるコンテンツの伝送を行なう。本実施形態では、ISO/IEC 13818-6で定義されたDSM-CC(Digital Storage Media Command and Control)データ・カルーセル仕様に基づいて、各データがブロックに分割されたモジュール単位でデータ・カルーセル伝送される。放送送出システム11からはデータが繰り返し送信されるので、受信機12側では放送時間中の任意の時間で必要なデータを取得することができる。
各データ・カルーセル231、232、…は、データ本体をブロックに分割されたモジュールとしてのDDB(DownloadDataBlock)メッセージと、DSM-CCコントロール・メッセージに属するDII(DownloadInfoIndication)メッセージを含む。DIIメッセージは、データ・カルーセルに含まれる各モジュール(DDBメッセージ)の情報を記載する。データ・カルーセル内の各モジュールは、モジュール識別子(module_id)で識別することができる。
DDBメッセージとして、例えばHTML5形式で記述されたデータ放送アプリケーションや、JPEGやPNGなどのデータ放送アプリケーションで使用するモノメディアなどのコンテンツ(ファイル)が伝送される。図2では、これらのアプリケーションに関連するデータのモジュールは「AppD」で示されている。
また、DDBメッセージとして、点線で示されるアプリケーション情報テーブル(AIT:Application Information Table)や、データ・ディレクトリー管理テーブル(DDMT:Data Directory Management Table)、データ・コンテント管理テーブル(DCCT:Data Content Configuration Table)を、任意で伝送することができる。
AITは、データ・カルーセル伝送方式で送られてくるアプリケーションの処理方法や、伝送方法、ロケーションの指定などアプリケーション制御情報を記述したテーブルである。DDMTとDCCTは、データ放送アプリケーションのファイル・ロケーション指定方式としてURI指定方式を選択した場合(後述)に適用するシグナリング情報である。このうち、DDMTは、URI指定方式のデータ・カルーセルで送られるアプリケーションを構成するファイルのディレクトリー構造を管理するテーブルである。また、DCCTは、URI指定方式のデータ・カルーセルで送られるアプリケーションを構成するコンテント(ファイル・データ)をデータ放送提示単位(Presentation Unit:PU)で管理するテーブルであり、ファイル・データのキャッシュ制御に利用することができる。AIT、DDMT、DCCTの各テーブルの詳細については後述に譲る。
DIIメッセージは、DSM-CCコントロール・メッセージに属し、データ・カルーセルに含まれる各DDBメッセージの情報を記述する。DIIメッセージの詳細については後述に譲る。
各データ・カルーセル231、232、…には、1以上のDDBメッセージと、DIIメッセージが含まれる。但し、1つのデータ・カルーセル内で、同じDIIメッセージが複数回にわたり伝送されることもある。
参照番号240で示されるコンポーネントは、コンポーネント230でデータ・カルーセル伝送方式により送られてくるアプリケーションのAITをパケット伝送する専用のトランスポート・ストリームである。但し、コンポーネント230でDDBメッセージとしてAITを伝送する場合は、コンポーネント240は不要である。すなわち、コンポーネント240は任意であり、点線で描いている。データ・カルーセル伝送方式で伝送されるAITはモジュール識別子で識別され、コンポーネント240でパケット伝送されるAITはパケット識別子(PID:Packet Identifier)で識別される。
参照番号250で示されるコンポーネントは、PSI(Program Specific Information)と、SI(Service Information)を伝送する。PSIは、MPEG-2 TSストリームに含まれる各エレメンタリー・ストリームがどの番組に属しているかを記した番組特定情報である。また、SIは、番組配列情報であり、EPG(Electric Program Guide:電子番組案内)に使用することができる。PSIは、1つの番組に含まれる動画や音声、その他の放送番組を構成する各エンコード信号を伝送するTSパケットのパケット識別子(PID)を記述したPMT(Program Map Table)や、各放送番組のPMTのパケット識別子(PID)を列挙したPAT(Program Association Table)などの、MPEG-2 TSストリームの番組構成情報を含んでいる(PATのPIDは0と定められている)。PMTの詳細については後述に譲る。
図3には、図2に示した放送信号200を送信する放送送出システム11の構成を模式的に示している。クロック生成部301と、信号送出部302と、ビデオ・エンコーダー303と、オーディオ・エンコーダー304と、データ・カルーセル・エンコーダー305と、AITエンコーダー306と、PSI/SIエンコーダー307と、放送情報システム308と、TSマルチプレクサー(MUX)309と、変調・送信部310を備えている。
クロック生成部301は、各エンコーダー303~307を同期させるためのクロック信号STC(System Time Clock)を生成するとともに、受信機12側でデコードに時刻同期を行なうための基準となるタイムスタンプPCR(Program Clock Reference)を含むTSパケットを出力する。
信号送出部302は、例えばTV放送局のスタジオやVTRなどの記録再生機であり、ビデオやオーディオなどの放送番組本編を構成するエレメンタリー・ストリームをそれぞれ、ビデオ・エンコーダー303、オーディオ・エンコーダー304に送る。
ビデオ・エンコーダー303は、信号送出部302から送出されるビデオ信号を符号化し、さらにパケット化して、ビデオのTSパケットを含むビデオ・エレメンタリー・ストリームをTSマルチプレクサー309に送る。また、オーディオ・エンコーダー304は、信号送出部302から送出されるオーディオ信号を符号化し、さらにパケット化して、オーディオのTSパケットを含むオーディオ・エレメンタリー・ストリームをTSマルチプレクサー309に送る。
放送情報システム308は、TV放送局のスケジューラー並びにファイルの供給源であり、HTML5形式で記述されたデータ放送アプリケーションやモノメディアなどのデータ、アプリケーション制御情報、データ放送アプリケーションなどのデータに関するシグナリング情報、番組構成情報や番組配列情報を、データ・カルーセル・エンコーダー305、AITエンコーダー306、PSI/SIエンコーダー307にそれぞれ送る。
データ・カルーセル・エンコーダー305は、放送情報システム308から送出されるデータ放送アプリケーションやモノメディアなどのデータ、アプリケーション制御情報、データ放送アプリケーションなどのデータに関するシグナリング情報を符号化し、さらにブロックに分割されたモジュールとしてのDDBメッセージを生成して、1以上のDDBメッセージと各DDBメッセージの情報を記載したDIIメッセージからなるデータ・カルーセルを組み立てて、TSマルチプレクサー309に送る。
AITエンコーダー306は、放送情報システム308から送出されるアプリケーション制御情報を符号化し、さらにパケット化して、AITのTSパケットを含むエレメンタリー・ストリームをTSマルチプレクサー309に送る。但し、AITをDDBメッセージとしてデータ・カルーセル伝送方式により伝送する場合には、AITエンコーダー306は不要である。すなわち、AITエンコーダー306の装備は任意であり、点線で描いている。
PSI/SIエンコーダー307は、放送情報システム308から送出される番組構成情報や番組配列情報を符号化し、さらにパケット化して、PSI並びにISのTSパケットを含むエレメンタリー・ストリームをTSマルチプレクサー309に送る。
TSマルチプレクサー309は、各エンコーダー303~307から送られてくるTSパケットをマルチプレクスして、図2に示したような放送信号200を構成する。
変調・送信部310は、TSマルチプレクサー309で生成された放送ストリームに対してOFDM変調などのディジタル変調を施し、さらにアップコンバートなどのRF(Radio Frequency)変調処理を行なって、RF伝送路に送出する。
図3に示した放送送出システム11の動作について説明しておく。
クロック生成部301では、各エンコーダー303~307を同期させるためのクロック信号STCが生成されるとともに、受信機12側でデコードに時刻同期を行なうための基準となるPCRを含むTSパケットが生成される。
信号送出部302から送出されるビデオ信号は、ビデオ・エンコーダー303に供給される。ビデオ・エンコーダー303では、ビデオ信号が符号化され、さらにパケット化されて、ビデオのTSパケットを含むエレメンタリー・ストリームが生成される。このビデオ・エレメンタリー・ストリームは、TSマルチプレクサー309に送られる。
また、信号送出部302から送出されるオーディオ信号は、オーディオ・エンコーダー304に供給される。オーディオ・エンコーダー304では、オーディオ信号が符号化され、さらにパケット化されて、オーディオのTSパケットを含むエレメンタリー・ストリームが生成される。このオーディオ・エレメンタリー・ストリームは、TSマルチプレクサー309に送られる。
また、データ・カルーセル・エンコーダー305では、放送情報システム308から送出される情報に基づいて、DDBメッセージとDIIメッセージからなるデータ・カルーセルが構成されて、TSマルチプレクサー309に送られる。
また、AITがデータ・カルーセルのDDBメッセージとして伝送されない場合には、AITエンコーダー306では、放送情報システム308から送出される情報に基づいて、AITのTSパケットを含むエレメンタリー・ストリームが生成されて、TSマルチプレクサー309に送られる。
また、PSI/SIエンコーダー307では、放送情報システム308から送出される番組構成情報や番組配列情報に基づいてPSI並びにISのTSパケットを含むエレメンタリー・ストリームが生成されて、TSマルチプレクサー309に送られる。
TSマルチプレクサー309では、各エンコーダー303~307から送られてくるTSストリームがマルチプレクスされて、放送ストリームが生成される。そして、変調・送信部310では、放送ストリームに対してOFDMなどのディジタル変調が施され、さらにアップコンバートなどのRF変調処理が行なわれて、RF伝送路に送出される。
図4には、図2に示した放送信号200を受信する受信機12の構成を模式的に示している。図示の受信機12は、チューナー・復調部401と、デマルチプレクサー(DEMUX)402と、クロック再生部403と、ビデオ・デコーダー404と、オーディオ・デコーダー405と、アプリケーション・データ制御部406と、キャッシュ・メモリー407と、データ放送アプリケーション・エンジン408と、システム制御部409と、合成部410と、IPインターフェース411を備えている。
チューナー・復調部401は、IF(Intermediate Frequency)又はRF変調信号を受信して、ダウンコンバートなどの復調処理、さらにはOFDM復調などのディジタル復調処理を行なって、放送ストリームを得る。デマルチプレクサー402は、この放送ストリームに対して、デマルチプレクス処理及びデパケット化処理を行なって、PCRパケット、ビデオ・エレメンタリー・ストリーム、オーディオ・エレメンタリー・ストリーム、データ・カルーセル、AIT(但し、AITがデータ・カルーセルのDDBメッセージとして伝送されない場合)、PSI/SIを出力する。なお、データ放送に利用されるファイル・データは、例えばHTML5形式で記述されたデータ放送アプリケーションである。
クロック再生部403は、PCRパケットから元の時計情報STCを再生して、ビデオ・デコーダー404並びにオーディオ・デコーダー405の再生タイミングを制御する。
ビデオ・デコーダー404は、デマルチプレクサー402で得られる符号化ビデオ信号をデコードして、ベースバンドのビデオ信号を得る。また、オーディオ・デコーダー405は、デマルチプレクサー402で得られる符号化オーディオ信号をデコードして、ベースバンドのオーディ信号を得る。
システム制御部409は、デマルチプレクサー402で得られるPSI並びにSIに基づいて、当該受信機12の各部の動作を制御する。本実施形態では、システム制御部409は、PSIに含まれるPMTの一部の情報を使って、アプリケーション・データ制御部406の動作を制御する。
アプリケーション・データ制御部406は、データ放送で利用される各ファイル・データの処理を行なう。本実施形態では、データ放送で利用される各ファイル・データは放送信号並びにIPネットワークの2系統から伝送されることを想定し、前者はチューナー・復調部401及びデマルチプレクサー402経由で、後者はIPインターフェース411経由で、それぞれアプリケーション・データ制御部406が取得する。
アプリケーション・データ制御部406は、デマルチプレクサー402から出力されるデータ・カルーセルのDIIメッセージと、DDBメッセージに含まれるDDMT、DCMTに基づいて、データ放送サービス用のファイル・データのキャッシュ・メモリー407へのキャッシュ処理を制御する。また、アプリケーション・データ制御部406は、DIIメッセージと、DDBメッセージに含まれるDDMT、DCMT、並びにAITに基づいて、データ放送アプリケーション・エンジン408によるアプリケーションの起動を制御する。データ放送アプリケーション・エンジン408は、HTMLブラウザーなどであり、適宜キャッシュ・メモリー407にキャッシュされたファイル・データを用いて、データ放送アプリケーションを処理する。
本実施形態では、データ放送で利用される各ファイルの強制キャッシュを指定する情報がシグナリング情報(DCCT)に含まれている。アプリケーション・データ制御部406は、DCCTに含まれている強制キャッシュ情報に基づいて、データ放送をタイムリーに提示するために必要なファイル・データをキャッシュ・メモリー407にプリキャッシュする。ファイル・データのプリキャッシュの詳細については後述に譲る。
合成部410は、ベースバンドのビデオ信号に、データ放送アプリケーション・エンジン408から出力されるデータ放送の表示信号を合成し、映像表示用のビデオ信号を得る。また、オーディオ・デコーダー405で得られるベースバンドのオーディオ信号は、音声出力用のオーディオ信号となる。ビデオ信号及びオーディオ信号からなる放送番組本編は、図示しないモニター・ディスプレイから映像及び音声出力される。また、データ放送アプリケーション・エンジン408が処理したデータ放送も、モニター・ディスプレイ上で放送番組本編の画面に重畳して表示される。
図4に示した受信機12の動作について説明しておく。
チューナー・復調部401では、IF又はRF変調信号が受信され、ダウンコンバートなどの復調処理、さらにはOFDM復調などのディジタル復調処理が行なわれて、放送ストリームが得られる。デマルチプレクサー402では、この放送ストリームに対して、デマルチプレクス処理及びデパケット化処理を行なわれ、PCRパケット、ビデオ・エレメンタリー・ストリーム、オーディオ・エレメンタリー・ストリーム、データ・カルーセル、AIT(但し、AITがデータ・カルーセルのDDBメッセージとして伝送されない場合)、PSI/SIが抽出される。
デマルチプレクサー402で抽出されたPCRパケットは、クロック再生部403に送られる。クロック再生部403では、PCRパケットから元の時計情報STCが再生される。つまり、クロック再生部403では、放送送出システム11側のクロック生成部301で生成された時刻情報に合った時刻情報が生成される。
デマルチプレクサー402で抽出された符号化ビデオ信号は、ビデオ・デコーダー404に送られてデコードされ、ベースバンドのビデオ信号が得られる。また、デマルチプレクサー402で抽出されたデータ・カルーセルはアプリケーション・データ制御部406に送られる。アプリケーション・データ制御部406では、DIIメッセージと、DDBメッセージに含まれるDDMT、DCMT、並びにAITに基づいて、データ放送アプリケーション・エンジン408によるアプリケーションの起動が制御される。データ放送アプリケーション・エンジン408では、DDBメッセージとして伝送されるデータ放送アプリケーションのファイル・データが処理され、データ放送の表示信号が生成される。そして、合成部410では、ベースバンドのビデオ信号にデータ放送の表示信号が合成され、映像表示用のビデオ信号が得られる。
また、デマルチプレクサー402で抽出された符号化オーディオ信号はオーディオ・デコーダー405に送られてデコードされ、音声出力用のベースバンドのオーディ信号が得られる。ビデオ信号及びオーディオ信号からなる放送番組本編は、図示しないモニター・ディスプレイから映像及び音声出力される。
また、アプリケーション・データ制御部406では、デマルチプレクサー402から出力されるデータ・カルーセルのDIIメッセージと、DDBメッセージに含まれるDDMT、DCMTに基づいて、データ放送サービス用のファイル・データのキャッシュ・メモリー407へのキャッシュ処理が制御される。
従来の日本のデータ放送サービスでは、アプリケーションの記述形式としてBMLを採用し、データ・カルーセル伝送方式に基づき、モジュールという伝送単位がアプリケーションのディレクトリー構造に組み込まれ、また、モジュールに複数のファイルをマルチパート化してキャッシュ単位とすることが想定されている。このような伝送方式に由来して、アプリケーションを制作する上での制約が大きいという問題がある。
今後、HTML5をデータ放送アプリケーションの記述形式に適用する場合、その汎用性の高さを保持するためにも、上記のような伝送方式に由来する制約を取り除くことが好ましい。
そこで、本明細書で開示する技術では、データ・カルーセル伝送方式でHTML5のデータ放送アプリケーションのデータを伝送する場合に、ファイル・ロケーション指定方式として、従来から適用されていた伝送路依存指定方式とURI(Uniform Resource Indicator)指定方式を選択的に利用できるようにする。
そして、PMTに配置するデータ符号化方式記述子(data component descriptor)において、HTML5におけるデータ放送アプリケーションのデータ伝送を示すとともに、AITの伝送配置、並びにURI指定方式を選択した場合に適用するシグナリング情報(DDMT並びにDCCT)の伝送配置情報を指定する。
また、AITにおいて、データ・カルーセルのファイル・ロケーション指定方式が伝送路依存指定方式又はURI指定方式のいずれであるかを指定する。
また、URI指定方式を実現するために、上述したDDMT並びにDCCTというシグナリング情報を伝送する。シグナリング情報に関しては、以下の(1)~(4)のように規定する。
(1)DDMTは、データ放送で伝送するファイルのディレクトリー構造を管理するテーブルである。図2に示したように、DDMTを、データ・カルーセルの特定のモジュール(DDBメッセージ)として伝送する。
(2)DCCTは、データ放送で伝送するコンテンツ(アプリケーション)毎のファイル構成、さらにはコンテンツ(アプリケーション)内のデータ放送提示単位(PU)毎のファイル構成、事前キャッシュ対象ファイルなどのコンテンツ構成とキャッシュ制御を示すテーブルである。図2に示したように、DCCTを、データ・カルーセルの特定のモジュール(DDBメッセージ)として伝送する。
(3)これらのシグナリング情報としてのDDMT並びにDCCTは、XML(eXtensible Markup Language)表記形式並びにバイナリー表記形式で表記される。
(4)DDMTで示されるディレクトリー構造において、各ディレクトリーと各ファイルに対して共通のノード・タグを指定する。また、DCCTにおいても、ノード・タグで指定する。さらに、DIIメッセージの各モジュール情報(moduleInfoByte)にノード・タグ記述子を配置して、ディレクトリーとモジュールの関連付けを行なう。これによって、DIIメッセージと、DDMT並びにDCCTの各テーブルとを関連付けることができる。
そして、受信機12側では、上記2つのファイル・ロケーション指定方式の選択を含めたデータ放送アプリケーションの動作を行なう。
以下では、データ・カルーセル伝送方式において、HTML5のデータ放送アプリケーションのデータを伝送する場合に、上記2つのファイル・ロケーション指定方式を実現する実施形態について、詳細に説明する。
図5には、PMTのデータ構造500を示している。PMTのデータ構造は、基本的にはISO/IEC 13818-1の規定に従う。
table_idには、当該テーブルがPMTであることを識別する値"0x02"が記述される。また、section_syntax_indicatorには、"1"が記述される。section_lengthには、当該PMTのセクション長が記述される。また、program_numberには、当該サービス(放送チャンネル)を識別するservice_idが記述される。version_numberには、当該PMTのバージョン情報が記述される。current_next_indicatorには、"1"が記述される。section_numberには、"0x00"が記述される。last_section_numberには、"0x00"が記述される。 PCR PIDには、program_numberで指定されるサービスのPCRのパケット識別子(PID)が記述される。
PMTは、参照番号501で示す第1のループと、参照番号502で示す第2のループを含んでいる。
第1のループ501は、プログラム・ループである。当該ループ501の直前のprogram_info_lengthフィールドには、第1のループ501のループ長が記述される。そして、program_info_lengthの数分だけ繰り返される第1のループ501で構成される記述子領域descriptor()には、限定受信方式記述子、ディジタル・コピー制御記述子、緊急情報記述子といったプログラム情報記述子などが記述される。
第2のループ502は、各エレメンタリー・ストリームの情報を格納するESループであり、各ループ内には属性情報としてstream_type、elementary_PID、ES_info_lengthが記述される。stream_typeには、ループが対象とするエレメンタリー・ストリームの形式識別が記述される。elementary_PIDには、関連するエレメンタリー・ストリーム又はペイロードを伝送するTSパケットの識別子(PID)が記述される。ES_info_lengthには、後に続く記述子領域の長さが記述される。そして、ES_info_lengthの長さの数分だけ繰り返されるループで構成される記述子領域descriptor()には、ES記述子が格納される。ES記述子として、例えば、ストリーム識別記述子や限定受信方式記述子、ディジタル・コピー制御記述子、データ符号化方式記述子などが記述される。
データ符号化方式記述子は、データ放送用エレメンタリー・ストリームの場合のデータの符号化方式を示す記述子である。上述したように、本実施形態では、PMTに配置するデータ符号化方式記述子において、HTML5におけるデータ放送アプリケーションのデータ伝送を示すとともに、AITの伝送配置、並びにURI指定方式を選択した場合に適用するシグナリング情報(DDMT並びにDCCT)の伝送配置情報を指定する。
図6には、ES記述子の1つであるデータ符号化方式記述子(data component descriptor)のデータ構造600を示している。
データ符号化方式記述子は、属性情報として、descriptor_tagと、descriptor_lengthと、data_component_idを含んでいる。descriptor_lengthには、後続のループ601のループ長が記述される。data_component_idは、該当するエレメンタリー・ストリームのデータの符号化方式を識別するのに使用される。この16ビットのフィールド値の割り当ては、標準化機関の規定に従う。該当するエレメンタリー・ストリームが(例えばHTML5記述形式の)アプリケーションである場合には、アプリケーション伝送であることを識別する値がdata_component_idに記述される。descriptor_tagには、該当するエレメンタリー・ストリームのデータの符号化方式を識別する8ビットのタグ値が記述される。
ループ601で構成される領域には、付加識別情報(additional_data_component_info)が記述される。additional_data_component_infoには、識別子番号の拡張、又は符号化方式毎に規定される捕捉情報の格納に使用される。この領域に記述される情報のデータ構造は、データ符号化方式毎に別途規定される。本実施形態では、HTML5におけるデータ放送アプリケーションのデータ伝送を示すとともに、AITの伝送配置、並びにURI指定方式を選択した場合に適用するシグナリング情報(DDMT並びにDCCT)の伝送配置情報を指定する付加識別情報(Additional_html5_info())をこの領域601に挿入する。
図7には、データ符号化方式記述子に付加識別情報として挿入されるAdditional_html5_info()のデータ構造700を示している。
signaling_flagは、該当する(データ・カルーセルの)エントリー・ストリームがシグナリング情報のモジュール(DDBメッセージ)を含む場合には、1が設定される。上述したように、データ放送アプリケーションのファイル・ロケーション指定方式としてURI指定方式を選択した場合には、各テーブルDDMT並びにDCCTを伝送するモジュールがデータ・カルーセルに含まれる。
ait_flagは、該当する(データ・カルーセルの)エントリー・ストリームがアプリケーション情報テーブルAITのモジュール(DDBメッセージ)を含む場合には、1が設定される。上述したように、AITは、データ・カルーセル又は独立したパケットのいずれかの方法で伝送される(図2を参照のこと)。
application_data_flagは、該当する(データ・カルーセルの)エントリー・ストリームがアプリケーション・データのモジュール(DDBメッセージ)を含む場合には、1が設定される。
signaling_flagが1である場合、16ビット長のsignaling_module_idには、DDBメッセージとして伝送されるシグナリング・ファイルDDMTのデータ・カルーセル内でのモジュールIDが記述される。DDMTが伝送される場合にはDCMTも伝送される。本実施形態では、DDMTとDCCTのモジュールIDを連番とし(すなわち、DCCTは+1のモジュールID)、Additional_html5_info内での記述を省略する。各テーブルDDMT並びにDCCTのデータ構造の詳細については、後述に譲る。
また、ait_flagが1である場合、AITの属性情報ait_module_id、application_type、application_priority、及びAIT_version_numberが記述される。ait_module_idには、DDBメッセージとして伝送されるAITファイルのデータ・カルーセル内でのモジュールIDが記述される。application_typeには、AITで伝送するアプリケーション形式の値が記述される。アプリケーション形式がHTML5の場合、application_typeは0x0010である。application_priorityには、AITの制御対象となるアプリケーション・タイプの起動優先順位が記述される。AIT_version_numberには、AITに記述されバージョン番号が記述される。
また、application_data_flagが1である場合には、データ放送アプリケーションに対し、マルチパート化したモジュール伝送を適用しているか否かを示すmultipart_use_flag、複数のアプリケーションを伝送しているか否かを示すmultiple_app_flagの各フラグが含まれる。
PMTの第2のループ内のES記述子の1つであるデータ符号化方式記述子に挿入されるAdditional_html5_info()で、AITの伝送配置、並びにシグナリング情報(DDMT並びにDCCT)の伝送配置情報を指定される、という点を十分留意されたい。
図8には、データ・カルーセルのデータ構造800を示している。図示のデータ・カルーセルは、DIIメッセージとDDBメッセージを伝送するDSM-CCセクションである。
table_id(テーブル識別子)には、DSM-CCセクションのペイロード中のデータの肩を識別する番号が格納される。このフィールドの値によって、DSM-CCセクション中の後続のフィールドに特定の符号化説明が適用される。DSM-CCセクションの型がDIIメッセージの場合のtable_idの値は0x3B、DDBメッセージの場合のtable_idの値はox3C、プライベート・データの場合のtable_idは0x3Eとなっている。
1ビットのフィールドsection_index_indicator(セクション・シンタクス指示)は、1の場合は当該セクションの末尾にCRC32が存在することを示し、0の場合はチェックサムが存在することを示す。
1ビットのフィールドprivate_indicator(プライベート指示)には、セクション・シンタクス指示の値の反転値を格納する。
dsmcc_section_length(DSM-CCセクション長)には、当該フィールドの直後からセクションの末尾までのバイト長を示す。このフィールドの値が4095を超えることはない。
table_id_extention(テーブル識別子拡張)は、table_idに応じて、以下の(1)、(2)の通り設定する。
(1)table_idが0x3B(DSM-CCセクションの方がDIIメッセージの場合)、トランザクション識別子の下位2バイトを設定する。
(2)table_idが0x3C(DSM-CCセクションの方がDDBメッセージの場合)、モジュールIDを設定する。
tversion_number(バージョン番号)は、table_idに応じて、以下の(1)、(2)の通り設定する。
(1)table_idが0x3B(DSM-CCセクションの方がDIIメッセージの場合)、0に設定する。
(2)table_idが0x3C(DSM-CCセクションの方がDDBメッセージの場合)、モジュール・バージョンの下位5ビットを設定する。
1ビットのcurrent_next_indicator(カレント・ネクスト指示)は、1の場合はサブテーブルが現在のサブテーブルであることを表す。また、0の場合は送られるサブテーブルはまだ適用されず、次のサブテーブルとして使用されることを示す。table_idが0x3A~0x3Cの場合は、常に1が指定される。
section_number(セクション番号)は、セクションの番号を表す。当該セクションがDIIメッセージを伝送する場合は、section_numberを常に0に設定する。また、DDBメッセージを伝送する場合は、DDBのブロック番号の下位8ビットをsection_numberに格納する。
last_section_number(最終セクション番号)は、当該セクションが属するサブテーブルの最後のセクション(すなわち、最大のセクション番号を持つセクション)の番号を示す。
table_idが0x3Bの場合は、DSM-CCセクションのuserNetworkMessage()にDIIメッセージが格納される。また、table_idが0x3Cの場合は、DSM-CCセクションのdownloadDataMessage()にDIIメッセージが格納される。
図9には、DSM-CCセクション(データ・カルーセル)で伝送されるDIIメッセージのデータ構造900を示している。
dsmccMessageHeader()には、データ・カルーセル伝送におけるDIIメッセージであることを識別するヘッダー情報が記述される。
downloadId(ダウンロード識別子)には、データ・カルーセルを識別するラベルが記述される。
blockSize(ブロック長)には、DDBメッセージで伝送されるデータの、モジュールの末尾以外の各ブロックのバイト長が記述される。
windowSize並びにackPeriodは、データ・カルーセル伝送においては使用せず、これらの値は0に設定される。
tCDownloadWindowは、データ・カルーセル伝送においては使用せず、その値は0に設定される。また、tCDownloadSCenarioには、ダウンロードを開始してから終了するまでのタイムアウト時間がマイクロ秒単位で記述される。
compatibilityDescriptor()には、ISO/IEC13818-6に規定されるcompatibilityDescriptor()構造が格納される。
numberOfModules(モジュール数)には、当該DIIメッセージの中の後続のループ中に記述されるモジュールの個数が記述される。そして、numberOfModules(モジュール数)だけ繰り返されるモジュール情報のループ901内では、データ・カルーセル伝送されるモジュール毎の情報が格納される。各モジュールの属性情報として、moduleId(モジュール識別子)、moduleVersion(モジュール・バージョン)、moduleInfoLength(モジュール情報長)が格納され、これらに続いて、moduleInfoLengthの数分だけ繰り返されるループで構成される記述子領域に、moduleInfoByte(モジュール情報)が格納される。moduleInfoByte(モジュール情報)は、該当するモジュールに関する記述子が可能される。moduleIdには、moduleInfoByte領域にて記述されるモジュールのモジュール識別子が格納される。本実施形態では、URI指定方式の場合には、moduleInfoByte(モジュール情報)として、該当するモジュールを指定するポインター情報であるノード・タグ記述子が記述される。ここで言うモジュールは、アプリケーションのデータ・モジュールや、DDMT並びにDCCTのシグナリング・モジュールである。DDMTで示されるディレクトリー構造では、各ディレクトリーと各ファイルに対して共通のノード・タグを指定しており、DCCTでも、ノード・タグで指定している(後述)。したがって、DIIメッセージのノード・タグ記述子を通じてディレクトリーとモジュールの関連付けを行なう。これによって、DIIメッセージと、DDMT並びにDCCTの各テーブルとを関連付けることができる。ノード・タグ記述子のデータ構造の詳細については、後述に譲る。
privateDataLength(プライベート・データ長)にはプライベート・データ領域のバイト長が記述され、privateDataLengthの数分だけ繰り返されるループで構成される記述子領域には、privateDataByte(プライベート・データ)が格納される。プライベート・データとして、データ符号化方式にて定義されるデータ構造や、事業者毎に定義されるデータ構造が挙げられる。
図10には、DSM-CCセクション(データ・カルーセル)で伝送されるDDBメッセージのデータ構造1000を示している。DDBメッセージは、データ・ブロックを伝送するデータ構造である。データ・ブロックは、モジュールを固定長のブロック単位に分割したものである。DDBメッセージにはブロック番号が割り当てられており、受信機12側では、ブロック番号順にデータ・ブロックを並べることでモジュールを再構成する。また、DDBメッセージをMPEG-2 TSで伝送する際には、同じPIDのパケットの中に、同じdownloadIDを持つDDBメッセージのみが含まれなければならない。すなわち、1本のエレメンタリー・ストリームの中に、異なる2つのデータ・カルーセルのDDBメッセージが混在することは許されない。
dsmccdownloadDataHeader()には、データ・カルーセル伝送におけるDDBメッセージであることを識別するヘッダー情報が記述される。ヘッダー情報の詳細については説明を省略するが、データ・カルーセルを一意に識別するdownloadIDを含んでいる。
moduleIdには、該当するデータ・ブロックが属するモジュールの識別子が記述される。また、moduleVersionには、該当するデータ・ブロックが属するモジュールのバージョン情報が記述される。
blockNumber(ブロック番号)には、該当するデータ・ブロックのモジュール中での位置が記述される。モジュールの先頭のデータ・ブロックのブロック番号は0でなければならない。続く、N回だけ繰り返されるループで構成されるブロック・データ領域blockDataByteには、データ・ブロック本体が格納される。
blockDataByteに格納されるデータ・ブロックとして、データ放送のアプリケーション・データの他、DDMTやDCCTなどのシグナリング・データのブロックが含まれる(但し、ファイル・ロケーション指定方式にURI指定方式を選択した場合)。DIIメッセージのモジュール情報として格納されるノード・タグ記述子(後述)を用いて、データ・カルーセルの中から所望するデータ・ブロックをフィルタリングすることができる。但し、DDMT並びにDCCTのシグナリング・データのブロックに関しては、PMTの第2のループ内のデータ符号化方式記述子に挿入されるAdditional_html5_info()の伝送配置情報(signaling_module_id)を用いてフィルタリングすることができる。すなわち、受信機12側では、DIIメッセージを読み取る前に、PMTを受信した段階でDDMT並びにDCCTのシグナリング・データのブロックをフィルタリングすることができる。なお、データ・カルーセルの中からデータ・ブロックをフィルタリングする手順の詳細については、後述に譲る。
図11には、アプリケーション情報テーブル(AIT)のデータ構造1100を示している。AITは、アプリケーションの起動、終了や、放送リソースへのアクセスを制御する信号である。AITは、放送や通信路を経由して伝送される。本実施形態では、図2に示したように、AITは、データ・ブロック(DDBメッセージ)の1つとしてデータ・カルーセル伝送され、又は、独立したパケットとして伝送されることを想定している。図11に示すAITは、MPEG-2 Systems(ITU-T Rec. H222.0、ISO/IEC 13818-1)において規定されるセクション形式によってアプリケーション制御情報を符号化する場合に使用する。なお、アプリケーション情報テーブル(AIT)にはXML記述方式も規定されており、データ・カルーセル伝送の場合にはそれを利用してもよい。
table_id(テーブル識別)は、アプリケーション情報(AI)テーブルであることを識別する8ビットの固定値であり、本実施形態では0x74とする。section_syntax_indicator(セクション・シンタクス指示)は、1ビットのフィールドで、常に「1」とする。sectoin_length(セクション長)は、セクション長フィールドからCRC32を含むセクションの最後までのセクションのバイト数を規定する。全セクションの長さが4096を超えないようにするため、セクション長は4093(16進数で0xFFD)を超えないものとする。applicaton_type(アプリケーション形式)は、AITで伝送しているアプリケーションの形式を示す。applicaton_typeの各値が示す意味を図12に示しておく。version_numberは、サブテーブルのバージョン番号であり、サブテーブル内の情報に変化があった場合に+1だけインクリメントされる。また、バージョン番号の値が「31」になったとき、その次は「0」に戻る。current_next_indicator(カレント・ネクスト指示)は、常に「1」とする。section_number(セクション番号)は、8ビットのフィールドで、セクションの番号を表す。サブテーブル内で最初のセクションのセクション番号は0x00である。セクション番号は、同一のテーブル識別子及びアプリケーション形式を持つセクションが追加される度に+1だけインクリメントされる。last_section_number(最終セクション番号)は、8ビットのフィールドであり、そのセクションが属するサブテーブルにおける最後のセクション番号を規定する。
common_descriptor_length(共通記述子ループ長)は、8ビットのフィールドで、後続のdescriptor(記述子)のバイト長を規定する。このdescriptor(記述子)は、common_descriptor_lengthの数分の共通記述子ループからなる一連の記述子領域に、共通記述子(descriptor)の情報を格納する。共通記述子の内容は、AITサブテーブル内のすべてのアプリケーションに適用される。
application_loop_lengthは、このMH AIテーブルに含まれるアプリケーション情報の数を書き込む領域である。そして、application_loop_lengthが示す数分だけ、アプリケーション情報記述子ループ1101が配置される。また、AITの末尾には、ITU-T勧告H.222.0に従う巡回冗長符号CRC_32が付加される。
1つのアプリケーション情報記述子ループ1101内には、アプリケーションの属性情報として、application_identifier(アプリケーション識別子)、application_control_code(アプリケーション制御コード)、application_descriptor_loop_length(アプリケーション情報記述子ループ長)が格納される。application_identifierは、アプリケーションを一意に識別する値である。application_control_codeは、アプリケーションの状態を制御する制御コードである。application_descriptor_loop_lengthは、後続のアプリケーション情報記述子領域のバイト長を示す。そして、これらアプリケーションの属性情報に続いて、application_descriptor_loop_lengthが示す個数分のループからなる記述子領域にアプリケーション情報記述子descriptor()が格納される。この記述子領域内の記述子は、対応するアプリケーションのみに適用される。
application_control_codeのセマンティクスはアプリケーション形式毎に規定するが、アプリケーション形式毎に規定されない場合は、図13に示すセマンティクスとする。application_control_codeとして "AUTOSTART(自動開始)"が指示されていたら、このAITテーブルを参照した受信機12は、application_identifierで指定されたアプリケーションを起動開始する。また、application_control_codeとして"PREFETCH"が指示されていたら、このMH AITテーブルを参照した受信機12は、application_identifierで指定されたアプリケーションを先読みする。また、application_control_codeとして"KILL"が指示されていたら、このAITテーブルを参照した受信機12は、application_identifierで指定されたアプリケーションの実行を終了する。
AITのアプリケーション情報記述子ループ1101内の記述子領域には、アプリケーション情報記述子descriptorとして、例えばアプリケーション記述子(application_descriptor)や伝送プロトコル記述子(transport_protocol_descriptor)などが格納されている。アプリケーション記述子により、アプリケーションを伝送するプロトコル(HTTP/HTTPS伝送又はデータ・カルーセル伝送のいずれであるか)を指定する。また、伝送プロトコル記述子により、アプリケーションを伝送するプロトコルに加え、データ・カルーセル伝送の場合におけるファイル・ロケーション指定方式(伝送路依存指定方式又はURI指定方式のいずれであるか)を指定する。簡易アプリケーション・ロケーション記述子(simple_application_location_descriptor)やアプリケーション境界権限設定記述子(application_boundary_and_permission_descriptor)など他のアプリケーション情報記述子もループ1101内に配置されるが、詳細な説明は説明を省略する。
図14には、AITのアプリケーション情報記述子ループ1101内の記述子領域descriptor()に格納される、アプリケーション記述子のデータ構造1400を示している。また、図15には、アプリケーション記述子の各パラメーターのセマンティクスを示している。アプリケーション記述子は、AITのアプリケーション情報記述子ループ1101において、アプリケーション毎に必ず1つ配置される。
descriptor_tagは、当該記述子を識別する、8ビットの整数値0x00である。descriptor_lengthは、このフィールドより後に続く当該記述子のデータのバイト数を書き込む領域である。
application_profile_lengthの数分のループからなる一連の領域には、application_profileの情報が書き込まれる。application_profileは、本アプリケーションが実行可能である受信機のプロファイルである。受信機に要求する機能毎のビットマップで要求機能を示す。但し、上位3ビットは機能ビットマップ切り替えを示す。上記ビットマップはバージョン毎に規定する。また、version_major、version_minor、version_microはそれぞれ、アプリケーション・プロファイル規定のバージョンである。
service_bound_flagは、本アプリケーションが現在のサービスのみで有効かどうかを示すフラグである。visibilityは、本アプリケーション実行中にユーザーや他のアプリケーションに対して可視か否かを示す。application_priorityは、複数のアプリケーションが動作する場合のアプリケーション間の相対優先度である。
transport_protocol_label(伝送プロトコル・ラベル)は、1つのアプリケーションを複数の経路で伝送する場合にその伝送手段を一意に識別する値であり、伝送プロトコル記述子の同名のフィールドに対応する。
図16には、AITのアプリケーション情報記述子ループ1101内の記述子領域descriptor()に格納される、伝送プロトコル記述子のデータ構造1600を示している。伝送プロトコル記述子は、アプリケーションの伝送手段として、放送や通信などの伝送プロトコルの指定と伝送プロトコルに依存したアプリケーション・データのファイル・ロケーション指定方式を示すことを目的とした記述子である。伝送プロトコル記述子は、AITの共通記述子ループ又はアプリケーション情報記述子ループ1101において、アプリケーション記述子の伝送プロトコル・ラベルの数分だけ配置される。
descriptor_tagは、当該記述子を識別する、8ビットの整数値0x02である。descriptor_lengthは、このフィールドより後に続く当該記述子0のデータのバイト数を書き込む、8ビットの領域である。
protocol_id(プロトコル識別子)は、アプリケーションを伝送するプロトコルを示す。本実施形態では、protocol_idの値として、0x0003はHTTP/HTTPS伝送、0x0004は伝送路依存指定方式のデータ・カルーセル伝送、0x0006はURI指定のデータ・カルーセル伝送を規定する。transport_protocol_label(伝送プロトコル・ラベル)は、1つのアプリケーションを複数の経路で伝送する場合にその伝送手段を一意に識別する値であり、アプリケーション記述子(図14を参照のこと)の同名のフィールドに対応する。
selector_byte(セレクター・バイト)は、プロトコル識別子毎に規定される補足情報を格納する領域であり、プロトコル識別子毎にシンタックスが規定される。本実施形態では、selector_byteには、アプリケーション・データの取得場所が書き込まれる。プロトコル識別子が3(すなわち、HTTP/HTTPS伝送)及びプロトコル識別子が6(URI指定方式のデータ・カルーセル伝送)の場合と、プロトコル識別子が4(伝送路依存指定方式のデータ・カルーセル伝送)の場合とで、selector_byteのシンタックスが異なる。各々の場合のセレクター・バイトのシンタックスの詳細については、後述に譲る。
上述したように、本実施形態では、データ・カルーセル伝送方式でHTML5のデータ放送アプリケーションのデータを伝送する場合に、ファイル・ロケーション指定方式として、従来から適用されていた伝送路依存指定方式とURI(Uniform Resource Indicator)指定方式を選択的に利用することができる。
まず、伝送路依存指定方式について説明する。伝送路依存のファイル・ロケーション指定方式は、ネットワーク識別子、トランスポート・ストリーム識別子、サービス識別子、コンポーネント・タグ、モジュール識別子という放送伝送路の階層で、データ放送アプリケーションのファイル・データを指定する方法である。
AITのアプリケーション情報記述子ループ1101に配置される伝送プロトコル記述子では、プロトコル識別子を4として、(従来通りの)伝送路依存指定方式のデータ・カルーセル伝送であることを示すとともに、セレクター・バイト領域で上記の放送伝送路の階層を指定する。
また、伝送路依存指定方式では、アプリケーション内において、ファイル・データを、上記のような伝送路の階層(ネットワーク識別子、トランスポート・ストリーム識別子、サービス識別子、コンポーネント・タグ、モジュール識別子)に基づいて、以下のような名前空間で指定する。
arib-dc://<network_id>.<transport_stream_id>.<service_id>/<component_tag>/<module_id>/<resource_name>
従来の伝送路依存指定方式では、DDMTやDCCTというシグナリング情報は適用しない。したがって、DDMT並びにDCCTを(データ・カルーセルで)伝送しないので、データ放送アプリケーションの伝送効率と処理効率はよい。但し、データ・カルーセル伝送方式に由来して、アプリケーションを制作する上での制約が大きいと思料される(前述)。
次に、URI指定方式について説明する。この方式では、データ放送アプリケーションのファイル・データを任意のURIで指定することが可能である。
AITのアプリケーション情報記述子ループ1101に配置される伝送プロトコル記述子では、プロトコル識別子を6として、URI指定方式のデータ・カルーセル伝送であることを示すとともに、セレクター・バイト領域でURIを指定する。また、アプリケーション内でも、ファイル・データをURIで指定する。
また、URI指定方式では、DDMTやDCCTというシグナリング情報を適用する。DDMTは、データ放送で伝送するファイルのディレクトリー構造を管理するテーブルである。また、DCCTは、コンテンツ毎のファイル構成、さらにはコンテンツ内のデータ放送提示単位(PU)毎のファイル構成、事前キャッシュ対象ファイルなどのコンテンツ構成とキャッシュ制御を示すテーブルである。DDMT並びにDCCTを適用することにより、アプリケーション制作上の十分な自由度を確保することができる。また、放送と通信も統合的な扱いが可能になる。但し、DDMT並びにDCCTをデータ・カルーセルで伝送することに伴い、データ放送アプリケーションの伝送効率と処理効率は若干犠牲になる。
図17には、(従来通りの)伝送路依存指定方式のデータ・カルーセル伝送の場合の、伝送プロトコル記述子内のセレクター・バイトのデータ構造1700を示している。
remote_connection(リモート接続)は、AITとアプリケーションを伝送するデータ・カルーセルが同一サービスで伝送されていない場合は1(AITが通信取得の場合も含む)、同一サービスで伝送されている場合は0である。
remote_connectionが1、すなわち、AITとアプリケーションを伝送するデータ・カルーセルが同一サービスで伝送されていない場合、original_network_id、transport_stream_id、service_idの各パラメーターが記述される。original_network_idは、アプリケーションが伝送されているオリジナル・ネットワーク識別子である。transport_stream_idは、アプリケーションが伝送されているトランスポート・ストリーム識別子である。service_idは、アプリケーションが伝送されているサービス識別子である。remote_connectionが0、すなわち、AITとアプリケーションを伝送するデータ・カルーセルが同一サービスで伝送される場合は、これらのパラメーターの記述は省略される。
component_tagには、アプリケーションが伝送されているサービス・コンポーネントを示すコンポーネント・タグ値が記述される。PMTの第2のループ内に配置されるES記述子の1つであるストリーム識別記述子で与えられるコンポーネント・タグによって、データ・カルーセルが伝送されるコンポーネント・ストリームを指定する。
図18には、(従来通りの)伝送路依存指定方式のデータ・カルーセル伝送の場合における、ファイル指定方法を図解している。
受信機12側では、PMT(図5を参照のこと)のデータ・カルーセルのエレメンタリー・ストリームに相当する第2のループ内に記述されているデータ符号化方式記述子(data_component_descriptor)(図6を参照のこと)に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているAITのモジュール識別子に基づいて、AITを取得する(但し、AITがデータ・カルーセル伝送方式で伝送される場合)。あるいは、AITが独立したパケットとして伝送される場合には、AITのエレメンタリー・ストリームに相当する第2のループ内に記述されているAITのパケット識別子(AIT PID)に基づいて、AITを取得する。
AITのアプリケーション情報記述子ループ(図11を参照のこと)内の記述子領域には、アプリケーション記述子(application_descriptor)や伝送プロトコル記述子(transport_protocol_descriptor)、簡易アプリケーション・ロケーション記述子(simple_application_location_descriptor)などが格納されている(前述)。
参照番号1801で示すように、所望するアプリケーションのアプリケーション記述子のトランスポート・プロトコル・ラベル(=1)と一致する伝送プロトコル記述子をフィルタリングし、さらに参照番号1802で示すように、その伝送プロトコル記述子に格納されているセレクター・バイト(コンポーネント・タグ)に基づいて、データ・カルーセルが伝送されるコンポーネント・ストリームを指定する。また、データ・カルーセルの中からDIIメッセージをフィルタリングすることができる。
また、簡易アプリケーション・ロケーション記述子には、対応するアプリケーションのエントリー・ポイントのURLを示す文字列(アプリケーション文字列)を含んでいる。このアプリケーション文字列は、伝送プロトコル記述子のセレクター・バイトで示されるアプリケーションの取得可能なロケーションをルートとした相対パスであり、図示の例では、アプリケーション文字列は、アプリケーションのモジュール識別子(図示の例では、0010)とリソース名(図示の例では、index.html)の組み合わせからなる。
また、データ・カルーセル内の各モジュールは、モジュール識別子とリソース名を使って識別される。データ・カルーセルの中から、テーブル識別子(table_id)として0x3Bが格納されているセクションをDIIメッセージとして取得することができる。また、リソース名を使って、DDBメッセージをフィルタリングすることができる。
図19には、(従来通りの)伝送路依存指定方式のデータ・カルーセル伝送の場合における、ディレクトリー構造を図解している。
DIIメッセージの各モジュールのループには、モジュールm1、m2、…mk毎のポインター情報として、モジュール識別子(module_id)及びモジュール名(module_name)が格納されている。また、モジュールがマルチパート化されている場合、そのDDBメッセージは、マルチパート化したリソース(ファイル名)のリスト(Resource List:RL)と、マルチパート化した各リソース(ファイル・データ)で構成される。
伝送路依存指定方式のデータ・カルーセル伝送におけるディレクトリー構造は、伝送プロトコル記述子のセレクター・バイト(コンポーネント・タグ)で指定されるコンポーネントがルート・ディレクトリーに相当する。また、DIIメッセージのモジュールのループでモジュール識別子が列挙された各モジュールがサブディレクトリーに相当し、各サブディレクトリーの直下にマルチパート化されたファイル・データが配置される、というディレクトリー構造となる。
通信取得のHTML文書からA.htmlというモジュール(ファイル・データ)を参照する場合、リンクタグは下記の通りとなる。
href=arib-dc://7EE9.7FE9.0448/40/0000/A.html
また、A.htmlからB.htmlを参照する場合、リンクタグは下記の通りとなる。
href=../0001/B.html
図20には、伝送路依存指定方式のデータ・カルーセル伝送の場合におけるアプリケーション取得のシグナリング関係を図解している。
参照2001で示すように、PMT(図5を参照のこと)のデータ・カルーセルのエレメンタリー・ストリームに相当する第2のループ内に記述されているPIDに基づいて、データ・カルーセルのパケットを指定することができる。
また、参照番号2002で示すように、同第2のループ内に記述されているデータ符号化方式記述子(data_component_descriptor)(図6を参照のこと)に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているAITのモジュール識別子(ait_module_id)に基づいて、AITを取得することができる(但し、AITがデータ・カルーセル伝送方式で伝送される場合)。あるいは、参照番号2003で示すように、AITが独立したパケットとして伝送される場合には、AITのエレメンタリー・ストリームに相当する第2のループ内に記述されているAITのパケット識別子(AIT PID)に基づいて、AITを取得することができる。
AITのアプリケーション情報記述子ループ(図11を参照のこと)内で、application_contril_codeが"AUTOSTART(自動開始)"に指定されているアプリケーションの伝送プロトコル記述子のプロトコル識別子が4であることから、伝送路依存指定方式のデータ・カルーセル伝送であることを認識できる。そして、その伝送プロトコル記述子に記述されているセレクター・バイト(component_tag)に基づいて、参照番号2004で示すように、データ・カルーセル内のDIIメッセージを取得する。
このようにして、参照番号2005で示すように、同じアプリケーション情報記述子内の簡易アプリケーション・ロケーション記述子に含まれているモジュール識別子及びリソース名(図示の例では、"0010/index.html")と、DIIメッセージに記載されているdownloadIDとの組み合わせに基づいて、該当するアプリケーション(ファイル・データ)を伝送するDDBメッセージを指定することができる。
図21には、HTTP/HTTPS伝送並びにURI指定方式のデータ・カルーセル伝送の場合の、伝送プロトコル記述子内のセレクター・バイトのデータ構造2100を示している。
URL_base_lengthは、アプリケーションを取得するためのURLのベース部のバイト数を示す。URL_base_byteは、URL_base_lengthの数分のループからなる一連の領域に、アプリケーションを取得するためのURLのベース部の文字列を格納する。
URL_extension_countは、アプリケーションを取得するためのURLの拡張部の数を示す。URL_extension_countの数分だけURL_extensionのループが配置される。そして、1つのURL_extensionのループ内では、アプリケーションを取得するためのURLの拡張部のバイト数を示すURL_extention_byteと、URL_extension_lengthの数分のループからなるURL_extention領域が配置され、URL_extentionにはアプリケーションを取得するためのURLの拡張部の文字列を格納する。
要するに、図21に示すセレクター・バイトは、アプリケーションを取得するためのURLの文字列を折り畳み方式で記述しており、文字列を連結すればURLを完成することができる。
なお、図21に示すセレクター・バイトは、全体がループとなっていることにより、アプリケーションを取得できるURLのベース部を複数設定することができる。
図22には、URI指定方式のデータ・カルーセル伝送の場合におけるファイル指定方法を示している。
受信機12側では、PMT(図5を参照のこと)のデータ・カルーセルのエレメンタリー・ストリームに相当する第2のループ内に記述されているデータ符号化方式記述子(data_component_descriptor)(図6を参照のこと)に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているAITのモジュール識別子に基づいて、AITを取得する(但し、AITがデータ・カルーセル伝送方式で伝送される場合)。あるいは、AITが独立したパケットとして伝送される場合には、AITのエレメンタリー・ストリームに相当する第2のループ内に記述されているAITのパケット識別子(AIT PID)に基づいて、AITを取得する。
AITのアプリケーション情報記述子ループ(図11を参照のこと)内の記述子領域には、アプリケーション記述子(application_descriptor)や伝送プロトコル記述子(transport_protocol_descriptor)、簡易アプリケーション・ロケーション記述子(simple_application_location_descriptor)などが格納されている(前述)。
参照番号2201で示すように、所望するアプリケーションのアプリケーション記述子のトランスポート・プロトコル・ラベル(=1)と一致する伝送プロトコル記述子をフィルタリングする。さらに、その伝送プロトコル記述子のセレクター・バイトに折り畳み方式で記述されているURLを完成させて、アプリケーションを取得するためのURLを得ると、参照番号2202で示すように、データ・カルーセルの中から、シグナリング情報DDMTを伝送するDDBメッセージをフィルタリングすることができる。
本実施形態では、DDMTで示されるディレクトリー構造において、各ディレクトリーと各ファイルに対して共通のノード・タグを指定している。付言すれば、DCCTにおいてもノード・タグで指定する。さらに、URI指定方式の場合には、DIIメッセージのモジュール情報(moduleInfoByte)にノード・タグ記述子を配置して、ディレクトリーとモジュールの関連付けを行なう。これによって、DIIメッセージと、DDMT並びにDCCTの各テーブルとを関連付けることができる。
ノード・タグ記述子のデータ構造の詳細については後述に譲る。参照番号2203で示すように、DDMTに記述されているノード・タグ値に基づいて、データ・カルーセルからDIIメッセージをフィルタリングする。さらに、参照番号2204で示すように、DIIメッセージに記載されているモジュール識別子に基づいて、所望するアプリケーション・データを伝送するDDBメッセージをフィルタリングする。
図23には、URI指定方式の場合に、DIIメッセージのモジュール情報(moduleInfoByte)に配置される、ノード・タグ記述子のデータ構造2300を示している。
descriptor_tagは、当該記述子を識別する、8ビットの整数値0x00である。descriptor_lengthは、このフィールドより後に続く当該記述子のデータのバイト数を書き込む領域である。
node_levelは、当該ノード・タグが指定するノードのレベルを示す1ビットの値であり、ノードがモジュールであれば0が記入され、ノードがリソースであれば1が記入される。
ノード・レベルの値が0、すなわち、ノードがモジュールの場合には、16ビット長のモジュールのノード・タグnode_tagが記述される。
一方、ノード・レベルの値が1、すなわち、ノードがリソースの場合には、モジュール内のリソース数resource_numberと、これに続くリソース数分のループ内で、各リソースのノード・タグnode_tagが記述される。
上述したように、データ・カルーセル伝送におけるファイル・ロケーション指定方式としてURI指定方式を選択した場合、データ・ディレクトリー管理テーブル(DDMT)、データ・コンテント管理テーブル(DCCT)というシグナリング情報がDDBメッセージとして伝送される(図2を参照のこと)。DDMT並びにDCCTは、XML表記形式並びにバイナリー表記形式で表記される。これらのシグナリング情報について説明しておく。
DDMTは、データ放送で伝送するファイルのディレクトリー構造を管理するテーブルである。図24には、バイナリー表記形式のDDMTのデータ構造2400を示している。
table_id(テーブル識別子)には、各種シグナリング情報においてDDMTであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・ディレクトリー・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えば当該テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・ディレクトリー・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
base_directory_path_lengthは、base_directory_path_byteの情報領域のサイズをバイト単位で表す。base_directory_path_byteは、base_directory_path_lengthの数分のループからなる一連の情報領域に、base_directory(上位のディレクトリー)へのパス名を格納する。base_directory_path_byteは、例えば、対応するディレクトリーへアクセスするための絶対的なURL形式で表記される。
num_of_directory_nodesは、当該DDMTに記載されるディレクトリーのノードの数を示す。そして、num_of_directory_nodesの数分だけディレクトリー・ノードのループ2401が配置される。
1つのディレクトリー・ノードのループ内には、当該DDMTに格納される各ディレクトリー・ノードの情報と、ベース・ディレクトリーに含まれる各ファイル・データの情報が格納される。
directory_node_path_lengthは、directory_node_path_byteの情報領域のサイズをバイト単位で表す。directory_node_path_byteは、directory_node_path_lengthの数分のループからなる一連の情報領域で構成され、directory_nodeへのパス名を格納する。directory_node_path_byteは、例えば、対応するディレクトリーへアクセスするための、base_directory_pathからの相対的なURL形式で表記される。例えば、base_directoryのパス名(URL)が"http://www.xbc.com"で、あるfolder_directoryのバス名(URL)が"index.html"であれば、これらの文字列を連結して、完全なURL"http://xbc.com/index.html"を得ることができる。
num_of_filesは、当該DDMTに記載されるファイルの数を示す。そして、num_of_filesの数分だけファイル・ノードのループ2402が配置される。
1つのファイル・ノードのループ内には、ベース・ディレクトリーに含まれる各ファイル・データの情報として、node_tagと、file_name_byte(ファイル名)が格納される。node_tagは、DDMTで示されるディレクトリー構造において、各ディレクトリーと各ファイルを共通して指定する値である。DCCTにおいても、ノード・タグで指定する。また、上述したようにDIIメッセージのモジュール情報(moduleInfoByte)にノード・タグ記述子を配置して、ディレクトリーとモジュールの関連付けを行なう。file_name_byte(ファイル名)は、file_name_lengthの数分のループからなる一連のファイル名領域に格納される。
また、図25には、XML表記形式のDDMTのデータ構造2500を示している。DDMTは、属性として、ルートとなるディレクトリーのURL(@baseURI)と、要素としてディレクトリー・ノード(directory)を持つ。
各ディレクトリーは、属性として、ディレクトリーのノード・タグ(@nodeTag)と、ディレクトリー・ノードのURL(@uri)とを持ち、要素として、ディレクトリーに含まれるファイル・ノード(file)を持つ。
各ファイル・ノードは、属性として、ファイル・ノードのノード・タグ(@nodeTag)と、ファイル・ノードの名称(@name)を持つ。
XML表記形式のDDMTの記述例2600を図26に示しておく。
DCCTは、データ放送で伝送するコンテンツ(アプリケーション)毎のファイル構成、さらにはコンテンツ(アプリケーション)内のデータ放送提示単位(PU)毎のファイル構成、事前キャッシュ対象ファイルなどのコンテンツ構成とキャッシュ制御を示すテーブルである。図27には、バイナリー表記形式のDCCTのデータ構造2700を示している。
table_id(テーブル識別子)には、シグナリング情報においてDCCTであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・コンテント・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えば当該テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・コンテント・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_contentは、データ・カルーセル伝送されるコンテントの数を示す、8ビットのパラメーターである。コンテントは、例えば、HTML5形式で記述されたデータ放送アプリケーションや、アプリケーションにおいて利用されるモノメディアなどのファイル・データである。number_of_contentの数分だけ、以下のコンテントのループ2701が配置され、コンテント毎の情報が格納される。
1つのコンテントのループ内には、コンテントに関する情報として、content_IDと、content_versionと、content_cache_sizeと、当該コンテントに含まれるデータ放送提示単位(Presentation Unit:PU)に関する情報が書き込まれる。content_IDは、コンテントの識別子である。content_versionは、コンテントのバージョンを示す。content_cache_sizeは、コンテントをキャッシュするサイズを示す。また、number_of_PUは、コンテントに含まれるデータ放送提示単位PUの数であり、number_of_PUの数分だけPUのループ2702が配置される。
1つのPUのループ内には、PUの識別情報であるPU_tagと、PUをキャッシュするサイズを示すPU_cache_sizeと、当該データ放送提示単位(PU)の中心となるファイル(primary module)を識別するPU_primary_module_node_tagが書き込まれる。
また、PUのループ内には、当該データ放送提示単位(PU)を構成する放送伝送ファイルのリストが書き込まれる。具体的には、number_of_PU_member_nodesは、当該データ放送提示単位(PU)に含まれる(すなわち、PUのメンバーとなる)ノードの数を示す。その後に、このnumber_of_PU_member_nodesの数分だけのPUメンバー・ノードのループが配置され、各PUメンバー・ノードのループ内には、PUメンバー・ノードのnode_tagが書き込まれる。PUメンバー・ノードは、ディレクトリーのノードとアイテムのノードを含む。
また、PUのループ内には、該当するPUにおいてロック対象ファイルが存在する場合はその対象ファイル・リストの情報を記述する。具体的には、number_of_lock_cache_nodesはロック対象となるノードの数であり、number_of_lock_cache_nodesの数分だけのロック・キャッシュ・ノードのループが配置される。1つのロック・キャッシュ・ノードのループ内には、ロック・キャッシュ・ノードを識別するlock_cache_node_tagが書き込まれる。
また、PUのループ内には、該当するPUにおいてアンロック対象ファイルが存在する場合はその対象ファイル・リストの情報を記述する。具体的には、number_of_unlock_cache_nodesはアンロック対象となるノードの数であり、number_of_unlock_cache_nodesの数分だけのロック・キャッシュ・ノードのループが配置される。1つのアンロック・キャッシュ・ノードのループ内には、アンロック・キャッシュ・ノードを識別するunlock_cache_node_tagが書き込まれる。
ここで言うロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)から次に参照するデータ放送提示単位(PU)で使用する放送ファイル・リストで構成される。放送番組の制作側では、このようにデータ放送のシグナリング情報でロック並びにアンロックの対象ファイル・リストを提示することで、受信機側ではロック並びにアンロックによるキャッシュ制御動作を行なうことができる。例えば、受信機側では、次に遷移するデータ放送提示単位に必要なファイル・データをキャッシュにロック(すなわち強制キャッシュ)しておくことができる。その結果、放送番組に連動したタイムリーなデータ放送サービスを実現することができる。また、アンロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)では不要となる放送ファイル・リストで構成される。アンロック対象ファイルを指定(すなわち、強制キャッシュの指定を解除)することで、不要なファイルをキャッシュ・メモリー407から削除することができ、メモリー・サイズを節約することができる。
また、1つのPUのループ内には、このPUからリンクされる他のPUの数を示すnumber_of_linked_PUと、number_of_linked_PUの数分だけのlinked_PUのループが配置される。1つのlinked_PUのループ内では、linked_PUの識別情報であるlinked_PU_tagが書き込まれる。
また、図28には、XML表記形式のDCCTのデータ構造2800を示している。DDMTは、要素としてデータ・コンテント(content)を持つ。
各データ・コンテントは、属性としてコンテント識別子(@id)と、コンテント・バージョン(@version)と、コンテント全体キャッシュ時のキャッシュ・サイズ(@cacheSize)を持ち、要素としてプレゼンテーション・ユニット(PU)を持つ。
各プレゼンテーション・ユニットは、属性として、提示単位の識別タグ(@tag)と、提示単位キャッシュ時のキャッシュ・サイズ(@cacheSize)と、提示単位内のプライマリー・ノードのノード・タグ(@primary)を持ち、要素として、提示単位を構成するノード(Member)と、強制キャッシュ指定ノード(loclCacheNode)と、強制キャッシュ解除指定ノード(unlockCacheNode)と、リンク先提示単位(linkedPU)を持つ。
提示単位を構成するノード(Member)は、属性としてノード・タグ(@nodeTag)を持つ。強制キャッシュ指定ノード(loclCacheNode)は、属性としてノード・タグ(@nodeTag)を持つ。強制キャッシュ解除指定ノード(unlockCacheNode)は、属性としてノード・タグ(@nodeTag)を持つ。リンク先提示単位(linkedPU)は、属性として提示単位識別タグ(@puTag)を持つ。
XML表記形式のDCCTの記述例2900を図29に示しておく。
図30には、データ・カルーセル伝送されるデータ放送アプリケーション(コンテント)の伝送、コンテントのロケーションと、アプリケーションの提示を行なう仕組みを図解している。
図30(A)には、コンテントのディレクトリー構造を示している。各コンテントcontent1、2、…は、データ放送アプリケーション(app)とマテリアルで構成される。データ放送アプリケーションやマテリアルは、それぞれファイル・データを実体とするリソースである。各リソースは、データ・カルーセル伝送において、16ビットのnode_tagで識別することができる。図30(C)に示すように、該当するコンポーネントのデータ・カルーセル伝送においてモジュール(DDBメッセージ)として伝送され、モジュール識別子(moduleId)で指定することができる。アプリケーションは、コンテントの実行時(データ放送の提示時)において参照される1以上のHTML5文書からなる。また、マテリアルは、HTML5文書から参照されるjpeg、pngなどの画像ファイル、テキストなどのモノメディア・データなどである。1つのHTML5文書と、そこから参照されるマテリアルで、1つのデータ放送提示単位PUを構成する。図30(A)に示す例では、content1は、A11.html、A12.html、A13.htmlなどの1以上のHTML文書をデータ放送アプリケーションのリソースとして持つ。このうち、A11.htmlは、コンテントの実行時に直接参照されるリソースとする。
図30(B)には、コンテントの実行時(データ放送の提示時)におけるリソース間の参照関係を示している。図示の例では、コンテントの実行時に直接参照されるアプリケーションA11とこれが参照するマテリアルB11、B02が1つのデータ放送提示単位PUを構成するリソース・グループ3001であり、PU_tagとしてp1が割り当てられている(なお、B14は、放送によりデータ・カルーセル伝送されるのではなく通信によるHTTP伝送で随時取得することができるマテリアルであり、以下では、データ放送提示単位のリソース・グループには含まないものとして扱う)。
同様に、アプリケーションA12とこれが参照するマテリアルB12、B02、B13が1つのデータ放送提示単位PUを構成するリソース・グループ3002であり、PU_tagとしてp2が割り当てられている(なお、B07は、放送によりデータ・カルーセル伝送されるのではなく通信によるHTTP伝送で随時取得することができるマテリアルであり、以下では、データ放送提示単位のリソース・グループには含まないものとして扱う)。同様に、アプリケーションA01とこれが参照するマテリアルB03、B01、B04が1つのデータ放送提示単位PUを構成するリソース・グループ3003であり、PU_tagとしてp3が割り当てられている。
また、複数のHTML5文書間でリンク参照関係を持つことができる(周知)。図30(B)に示す例では、リソースA01.htmlは、コンテントの実行時に直接参照され、最初に表示されるアプリケーション提示画面を記述するHTML文書である。これに対し、同じcontent1に含まれリソースA12.htmlと、content1の外部のコンテントcommonに含まれるリソースA01.htmlは、A01.htmlを実行して提示される画面から遷移するアプリケーション提示画面を記述するHTML文書であり、A11.htmlとリンク参照関係を持つ。各リソースA01.html、A12.html、A01.htmlは、それぞれ1つのデータ放送提示単位PUを構成するリソース・グループ3001、3002、3003を形成する。そして、リンクし合うデータ放送提示単位3001、3002、3003同士で、さらに上位の大きなリソース・グループ3010を構成する。リソースA01.html、A12.html、A01.htmlは、各々のデータ放送提示単位PUにおいて中心となるファイル・データ(primary module)である。
また、パッケージ(1つの放送番組)に含まれるアプリケーション全体となるさらにコンテント全体で大きなリソース・グループすなわちデータ・コンテント全体を構成する。データ・コンテント全体とは、共通のcontent_IDを持つデータ放送提示単位PUの範囲である。DCCTで、該当するcontent_IDのPUのループを回すことにより、コンテントに含まれるすべてのデータ放送提示単位PUを一括して指定することができる。図30(B)に示す例では、content1とcommonに含まれるアプリケーションでコンテント全体のリソース・グループ3020を形成し、コンテント識別子としてc1が割り当てられている。
図30(C)には、コンテントを構成するファイル・データをデータ・カルーセル伝送する様子を模式的に示している。コンテントの構成要素であるアプリケーションやマテリアルなどのファイル・データは、ブロックに分割されたモジュール単位で伝送される。各モジュールは、データ・カルーセル伝送路において、DDBメッセージに相当する。データ・カルーセル伝送では、各モジュールにはそれぞれモジュール識別子(moduleId)が割り当てられる。図示の例では、content1は、component1のESストリームとして伝送され、HTML文書データやマテリアルなどのファイル・データを分割した各モジュールには、それぞれモジュール識別子としてi11、i12、i13、i14が割り当てられている。
図24に示したように、シグナリング情報DDMTでは、ディレクトリー構造において、各ディレクトリーと各ファイルに対して共通のノード・タグを指定している。また、DIIメッセージにおいても、各モジュール情報(moduleInfoByte)にノード・タグ記述子を配置して、各モジュールとノード・タグとの関連付けを行なっているので、ノード・タグを指定することで、ディレクトリーとモジュールの関連付けを行なうことができる。
図31には、URI指定方式のデータ・カルーセル伝送の場合におけるアプリケーション取得のシグナリング関係を図解している。
参照3101で示すように、PMT(図5を参照のこと)のデータ・カルーセルのエレメンタリー・ストリームに相当する第2のループ内に記述されているPIDに基づいて、データ・カルーセルのパケットを指定することができる。
また、参照番号3102で示すように、同第2のループ内に配置されているデータ符号化方式記述子(data_component_descriptor)(図6を参照のこと)に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているAITのモジュール識別子(ait_module_id)に基づいて、AITを取得することができる(但し、AITがデータ・カルーセル伝送方式で伝送される場合)。あるいは、参照番号3103で示すように、AITが独立したパケットとして伝送される場合には、AITのエレメンタリー・ストリームに相当する第2のループ内に記述されているAITのパケット識別子(AIT PID)に基づいて、AITを取得することができる。
AITのアプリケーション情報記述子ループ(図11を参照のこと)内で、application_contril_codeが"AUTOSTART(自動開始)"に指定されているアプリケーションの伝送プロトコル記述子のプロトコル識別子が6であることから、URL指定方式のデータ・カルーセル伝送であることを認識できる。
また、参照番号3104、3105で示すように、同第2のループ内に記述されているデータ符号化方式記述子(data_component_descriptor)(図6を参照のこと)に挿入されたAdditional_html5_info(図7を参照のこと)に含まれている、DDMT及びDCCTの各シグナリング情報のモジュール識別子(signaling_module_id)に基づいて、DDMT及びDCCTを取得することができる(但し、AITがデータ・カルーセル伝送方式で伝送される場合)。
そして、参照番号3106で示すように、DDMTのディレクトリー・ノードのループ及びファイル・ノードのループ(前述)内で、AITの伝送プロトコル記述子のセレクター・バイトに記述されているURL文字列に一致するファイルを検索して、そのノード・タグを取得する。なお、アプリケーションで参照される他のHTML5文書への繊維が指定された場合も、参照番号3111で示すように、同様の処理となる。
なお、DDMT内でURL文字列が一致するノードが見つからなかった場合には、そのURLに基づいて、通信(インターネット)経由で該当するアプリケーションのファイル・データを取得することができる。すなわち、放送と通信を区別することなくデータ放送アプリケーションを取得できることが、URI指定方式の利点の1つである。
次いで、参照番号3107で示すように、DIIメッセージのモジュール情報のループ(前述)内で、上記のノード・タグに一致するノード・タグ記述子を検索して、そのノード・タグに対応するモジュール識別子を取得する。
このようにして、参照番号3108で示すように、得られたモジュール識別子と、DIIメッセージに記載されているダウンロード識別子(downloadID)との組み合わせに基づいて、データ・カルーセルの中から、該当するアプリケーション(ファイル・データ)を伝送するDDBメッセージを指定することができる。
なお、"AUTOSTART(自動開始)"に指定されているアプリケーションにリンクするノード(ディレクトリー並びにファイル)をキャッシュしたい場合には、参照番号3109で示すように、DCCTのPUのループ(前述)内で該当するノード・タグを検索し、さらに、参照番号3110で示すように、PUのループを探索して、リンク先のPUタグに基づいて事前キャッシュを行なったり、ロック対象ファイルの強制キャッシュやアンロック対象ファイルの強制キャッシュ指定の解除を行なったりすることができる。
図32には、受信機12においてディジタル放送の選局処理が行なわれたときに実行される、アプリケーション・データの取得及び起動処理の手順をフローチャートの形式で示している。
チューナー・復調部401は放送信号を選局受信し、デマルチプレクサー402は、この放送ストリームに対して、デマルチプレクス処理して元の各エレメンタリー・ストリームに分離するとともに、各エレメンタリー・ストリームのデパケット化処理を行なう。
まず、システム制御部409は、PSI/SIのエレメンタリー・ストリームから、PID=0のPATを参照して該当する放送チャンネルのPATのPIDを読み取って、PMTを取得する(ステップS3201)。
また、選局された放送チャンネルの映像及び音声の再生を開始する(ステップS3202)。具体的には、ビデオ・デコーダー404とオーディオ・デコーダー405は、クロック再生部403が再生した時計情報STCに基づいて再生タイミングを同期させながら、それぞれ符号化ビデオ信号、符号化オーディオ信号をデコードして、ベースバンドのビデオ信号を得る。
AITがモジュール(DDBメッセージ)としてデータ・カルーセル伝送される場合には(ステップS3203のYes)、アプリケーション・データ制御部406は、PMTの第2のループ内に配置されたデータ符号化方式記述子に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているAITのモジュール識別子(ait_module_id)に基づいて、AITを取得する(ステップS3204)。あるいは、AITが独立したパケットとして伝送される場合には(ステップS3203のNo)、アプリケーション・データ制御部406は、PMTの第2のループ内に記述されているAITのパケット識別子(AIT PID)に基づいて、独立したコンポーネントからAITを取得する(ステップS3205)。
次いで、アプリケーション・データ制御部406は、取得したAITのアプリケーション情報記述子ループに配置された伝送プロトコル記述子のプロトコル識別子を参照して、データ・カルーセル伝送のファイル・ロケーション指定方式を判定する(ステップS3206)。
ここで、プロトコル識別子が4、すなわち伝送路依存指定方式の場合には、アプリケーション・データ制御部406は、AITの伝送プロトコル記述子に記述されたセレクター・バイト(図17を参照のこと)で指定されているコンポーネント・タグから、DIIメッセージを取得する(ステップS3207)。具体的には、データ・カルーセルの中から、テーブル識別子(table_id)として0x3Bが格納されているセクションをDIIメッセージとして取得する。次いで、アプリケーション・データ制御部406は、DIIメッセージの記載内容に基づいてアプリケーションのエントリー・モジュールを取得し(図18、図20を参照のこと)、また必要に応じてモジュールのキャッシュ処理を制御する(ステップS3208)。
一方、プロトコル識別子が6、すなわちURI指定方式の場合には、アプリケーション・データ制御部406は、PMTでPIDが指定されたデータ・カルーセルから、DIIメッセージと、各シグナリング情報DDMT及びDCCTを取得する(ステップS3209)。具体的には、データ・カルーセルの中から、テーブル識別子(table_id)として0x3Bが格納されているセクションをDIIメッセージとして取得する。また、図31に示したように、PMT(図5を参照のこと)の第2のループに配置されているデータ符号化方式記述子に挿入されたAdditional_html5_info(図7を参照のこと)に含まれているDDMT及びDCCTの各シグナリング情報のモジュール識別子(signaling_module_id)に基づいて、DDMT及びDCCTを取得する。
アプリケーション・データ制御部406は、取得したDDIメッセージと、各シグナリング情報DDMT及びDCCTを使って、起動するデータ放送アプリケーションに関連するファイル・データのロケーションを解決する(ステップS3210)。具体的には、図31に示したように、AITのアプリケーション情報記述子のループ内で、所望するアプリケーションのロケーションとして伝送プロトコル記述子のセレクター・バイトに記載されているURL文字列と一致するファイル・データのノード・タグをDDMTから検索すると、続いて、そのノード・タグに関連付けられたモジュールのモジュール識別子をDIIメッセージのモジュール情報のループ内で検索する。そして、得られたモジュール識別子とダウンロード識別子の組み合わせに基づいて、データ・カルーセルの中から、該当するアプリケーション(ファイル・データ)を伝送するモジュール(DDBメッセージ)を指定する。
そして、アプリケーション・データ制御部406は、上記のロケーション解決手段を用いて、アプリケーションのエントリー・モジュールを取得し(図22、図31を参照のこと)、また必要に応じてモジュールのキャッシュ処理を制御する(ステップS3211)。
本実施形態では、シグナリング情報としてのDCCTは、キャッシュ制御を示す情報として、ロック対象ファイルのノード・タグ、アンロック対象ファイルのノード・タグ、並びに、現在のデータ放送提示単位(PU)のリンク先提示単位のノード・タグを記述している。したがって、アプリケーション・データ制御部406は、ロック対象ファイル(例えば、次に遷移するデータ放送提示単位に必要なファイル・データ)を強制キャッシュしたり、アンロック対象ファイル(例えば、現在のデータ放送提示単位で不要となるファイル・データ)の強制キャッシュの指定を解除してキャッシュ407から削除したり、リンク先提示単位のファイル・データを事前にキャッシュしておいたりすることができる。
そして、アプリケーション・データ制御部406は、伝送路依存指定方式又はURI指定方式の各々のファイル・ロケーション指定方式に従って取得したアプリケーションのエントリー・モジュールと、キャッシュ407にキャッシュされたファイル・データを用いて、データ放送アプリケーション・エンジン408によるアプリケーションの起動を制御する(ステップS3211)。
上述したように、本実施形態では、URI指定方式で適用されるシグナリング情報DCCTは、キャッシュ制御を示す情報として、ロック対象ファイルのノード・タグ、アンロック対象ファイルのノード・タグ、並びに、現在のデータ放送提示単位(PU)のリンク先提示単位のノード・タグを記述している。したがって、アプリケーション・データ制御部406は、ロック対象ファイル(例えば、次に遷移するデータ放送提示単位に必要なファイル・データ)を強制キャッシュしたり、アンロック対象ファイル(例えば、現在のデータ放送提示単位で不要となるファイル・データ)の強制キャッシュの指定を解除してキャッシュ407から削除したりすることができる。また、リンク先提示単位のファイル・データを事前にキャッシュしておくこともできる。
受信機12において、シグナリング情報DCCTに基づいて、データ・カルーセル伝送されるモジュールをロック及びアンロックによるキャッシュ動作を制御する大まかな手順を以下に示す。
(動作1)アプリケーション・データ制御部406は、データ・カルーセル伝送されるシグナリング情報DDMT及びDCCTを適宜検出して更新を行ないつつ、最新の情報を取得する。
(動作2)アプリケーション・データ制御部406が、データ放送アプリケーション制御エンジン408などからの指示によりprimary moduleに指定された(データ放送提示単位の中心となる)アプリケーション・ファイルにアクセスすることにより、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
(動作3)アプリケーション・データ制御部406は、DCCTにおいて、該当するデータ放送提示単位(PU)に含まれる各メンバー・ファイル(PU_member_node)も同時に取得して、キャッシュ・メモリー407に保持する。
(動作4)さらに、DCCT内で、該当するデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されている場合には、アプリケーション・データ制御部406は、ロックキャッシュ対象のうち未取得の各ファイル(モジュール)も取得して、キャッシュ・メモリー407にキャッシュし、且つ、ロックキャッシュ対象ファイルとして別途管理する。
(動作5)逆に、DCCT内で、該当するデータ放送提示単位(PU)に対してアンロックキャッシュの対象に指定されている場合には、アプリケーション・データ制御部406は、アンロック対象ファイルがキャッシュ・メモリー407にキャッシュされていれば、これを削除するとともに、別途管理していたロックキャッシュ対象ファイルからも削除する。
(動作6)データ放送アプリケーション・エンジン408は、primary moduleに指定されたアプリケーション・ファイルを、キャッシュ・メモリー407から実行する。
(動作7)その後、DCCTの更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ファイル(PU_member_node)やロックキャッシュ対象又はアンロック対象のファイルの構成が変化した場合には、上記の(動作3)~(動作6)の処理を行なう。
(動作8)データ放送アプリケーション・エンジン408におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移した場合には、ロックキャッシュ対象のファイルは一旦キャッシュ・メモリー407に保持した上で、上記の(動作3)~(動作6)の処理を行なう。ロックキャッシュ対象以外のファイルは、キャッシュ・メモリー407から削除してもよい。
図33には、受信機12におけるロック及びアンロックによるキャッシュ制御手順をフローチャートの形式で示している。
データ放送アプリケーション制御エンジン408がアプリケーション動作すなわちデータ放送の提示を行なっているときに(ステップS3301のYes)、アプリケーション・データ制御部406は、データ・コンテント・マネジメント・テーブル内でprimary_module(データ放送提示単位の中心)に指定されたアプリケーション・ファイルにアクセスすることにより(ステップS3302のYes)、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
アプリケーション・データ制御部406は、キャッシュ・メモリー407をリセットして、DCCTにおいて、現在提示しているデータ放送提示単位(PU)のprimary_module並びに各メンバーのノード・タグ(PU_member_node_tag)を取得して、キャッシュ・メモリー407に保持する(ステップS3303)。データ放送アプリケーション・エンジン408は、primary_moduleに指定されたアプリケーション・ファイルを、キャッシュ・メモリー407から実行する。
また、アプリケーション・データ制御部406は、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されているかどうかをチェックする(ステップS3304)。そして、ロックキャッシュの対象が指定されている場合には(ステップS3304のYes)、アプリケーション・データ制御部406は、ロックキャッシュ対象のうち未取得の各ファイル(モジュール)も取得して、キャッシュ・メモリー407にキャッシュし、且つ、ロックキャッシュ対象ファイルとして別途管理する(ステップS3305)。
また、アプリケーション・データ制御部406は、DCCT内で、該当するデータ放送提示単位(PU)に対してアンロックキャッシュの対象が指定されているかどうかをチェックする(ステップS3306)。そして、アンロックキャッシュの対象が指定されている場合には(ステップS3306のYes)、アプリケーション・データ制御部406は、アンロック対象ファイルがキャッシュ・メモリー407にキャッシュされていれば、これを削除するとともに、別途管理していたロックキャッシュ対象ファイルからも削除する(ステップS3307)。
その後、DCCTの更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ノード(PU_member_node)やプリキャッシュ対象のファイルの構成が変化した場合には(ステップS3308のYes)、ステップS3303に戻り、現在提示状態にあるデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
また、データ放送アプリケーション・エンジン408におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移し、そのデータ放送提示単位のprimary_moduleに指定されたアプリケーション・ファイルにアクセスした場合には(ステップS3309のYes)、ステップS3303に戻り、遷移した先のデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
以上の処理を、データ放送アプリケーション・エンジン408がアプリケーション動作を終了するまで(ステップS3310のNo)、繰り返し実行する。
図34には、受信機12におけるファイル・データのキャッシュのロック及びアンロック動作例を示している。
アプリケーション・データ制御部406は、データ・カルーセルから受信する各種シグナリング・メッセージを解析している。シグナリング情報の1つであるデータ・コンテント・マネジメント・テーブル(DCCT)が含まれている。
データ放送アプリケーション制御エンジン408がPU_tag=1で識別されるデータ放送提示単位(PU)のアプリケーション動作を行なっているとき、アプリケーション・データ制御部406は、DCCTを参照して、現在提示状態にあるデータ放送提示単位(PU_tag=1)のPrimary_module(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A01.html」、並びに、各メンバー(PU_member_node)「B01」、「B02」それぞれのnode_tagをデータ・コンテント・マネジメント・テーブルから取得して、データ・カルーセルからこれらのnode_tagに対応するモジュールを取得すると、参照番号3401で示すように、キャッシュ・メモリー407にキャッシュする。但し、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、キャッシュ動作は行なわない。なお、node_tagからデータ・カルーセル伝送されるモジュールにアクセスする方法については、図31を参照しながら説明した通りである(DIIメッセージでnode_tagに対応するモジュール識別子(moduleId)とdownloadIDの組み合わせに基づいて、データ・カルーセルの中から該当するモジュールをフィルタリングすることができる)。
次いで、データ放送アプリケーション・エンジン408におけるアプリケーション動作により、PU_tag=3で識別される他のデータ放送提示単位(PU)の提示状態に遷移したとする。アプリケーション・データ制御部406は、上記と同様に、遷移した先のデータ放送提示単位(PU_tag=3)のPrimary_module(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A11.html」、並びに、各メンバー(PU_member_node)「B11」、「B12」、「B13」それぞれのnode_tagをDCCTから取得すると、データ・カルーセルからこれらのnode_tagに対応するモジュールを取得して、参照番号3402で示すように、キャッシュ・メモリー407にキャッシュする。但し、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、ロックキャッシュ動作は行なわない。
アプリケーション・データ制御部406は、データ・カルーセルから受信するシグナリング情報DDMT及びDCCTを常に解析している。そして、参照番号3403で示すように、DCCTのバージョンが1から2に更新されたことを検出すると、アプリケーション・データ制御部406は、現在提示状態にあるデータ放送提示単位(PU_tag=3)のPrimary_module並びに各メンバー・ファイル、ロックキャッシュ対象のファイルに変更がないかどうかをチェックする。今回はメンバー・ファイルに変更がないので、以前キャッシュしておいた各メンバー・ファイルはキャッシュ・メモリー407に保持したままとする。また、データ放送提示単位(PU_tag=3)のロックキャッシュ対象のファイルとして「A12」、「B14」、「B12」、「B15」が追加されているので、アプリケーション・データ制御部406は、データ・カルーセルからこれらのnode_tagに対応するモジュールを取得して、参照番号3404で示すように、キャッシュ・メモリー407にキャッシュするとともに、ロックキャッシュ対象ファイルとして別途管理する。図中、ロックキャッシュ対象として管理されているファイルを下線で示している(以下、同様)。
次いで、参照番号3405で示すように、データ放送の提示の更新を指示するイベント・メッセージを受信すると、データ放送アプリケーション・エンジン408は、実行中のA11ファイルからA12ファイルへのHTML5文書の遷移を行なう。一方でほぼ同時に、アプリケーション・データ制御部406は、バージョンが2から3に更新されたDCCTを参照して、現在提示状態にあるデータ放送提示単位(PU_tag=3)のPrimary_moduleが「A12.html」に変更するとともに、メンバー・ファイルが「B14」、「B15」、「B16」に変更したことを検出する。上述したように、Primary_module「A12.html」並びにメンバー・ファイルが「B14」、「B15」は既にキャッシュ・メモリー407にロックキャッシュされているので、データ放送アプリケーション・エンジン408は、キャッシュ・メモリー407に保持されているファイルを利用してデータ放送を迅速に表示することができる。すなわち、放送番組に連動したタイムリーなデータ放送の提示を行なうことができる。また、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、ロックキャッシュ動作は行なわない。参照番号3406で示すように、ロックキャッシュされたファイル「A12」、「B14」、「B12」、「B15」がそのままキャッシュ・メモリー407に保持される一方、不要になったファイル「A11」が削除されている。
さらに、データ放送の提示の更新を指示するイベント・メッセージを受信すると、アプリケーション・データ制御部406は、DCCTを参照して、現在提示状態にあるデータ放送提示単位(PU_tag=3)に対して、ロックキャッシュ対象のファイルとして「B17」が追加されているとともに、アンロック対象ファイルとして「B14」が追加されている。そこで、参照番号3407で示すように、アプリケーション・データ制御部406は、データ・カルーセルからファイル「B17」のnode_tagに対応するモジュールを取得してキャッシュ・メモリー407にロックキャッシュするとともに、ロックキャッシュしていたファイル「B12」をキャッシュ・メモリー407から削除し、ロック対象から外す。
現在運用されているBML(Broadcast Markup Language)によるデータ放送サービスでは、スクリプトから「LockModuleOnMemory()」というAPI(Application Programming Interface)を呼び出すことにより、特定のファイルをあらかじめキャッシュ・メモリーにプリキャッシュして留めておくことが可能である(例えば、特許文献4を参照のこと)。この方法は、スクリプトなどのアプリケーションの仕様に、放送運用を前提とする特殊な仕様を盛り込む必要がある。
これに対し、本明細書で開示する技術によれば、放送局などの送信側からは、データ放送に関わるシグナリングに、強制キャッシュを指定する情報を含めて伝送し、受信機側では、受信したデータ放送に関わるシグナリングに含まれている強制キャッシュ情報に基づいてデータ放送用の各ファイルのキャッシュ制御を行なうようになっている。したがって、本明細書で開示する技術によれば、新しいHTML5によるデータ放送において、スクリプトなどのアプリケーションの仕様に、放送運用を前提とする特殊な仕様を盛り込むことなく、汎用性の高いフォーマットを維持することができる。