以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
図1には、本明細書で開示する技術を適用したディジタル放送システム10の構成例を模式的に示している。図示のディジタル放送システム10は、放送送出システム11と、受信機12で構成される。
放送送出システム11は、伝送メディアを含むIP(Internet Protocol)方式の放送信号を送信する。放送信号の伝送ディアには、タイムド・メディアと、ファイルのようなノンタイムド・メディアの両方が含まれる。タイムド・メディアは、例えば、ビデオやオーディオ、字幕などの放送番組本編に関わるストリーム・データである。また、ノンタイムド・メディアは、例えばHTML文書のような、データ放送に利用される各ファイル・データである。以下の説明では、HTML5によるデータ放送サービスを想定している。
一方、受信機12は、放送送出システム11から送られてくる放送信号を受信する。そして、受信機12は、受信した放送信号からビデオやオーディオ、字幕などの伝送メディアを取得して、画像や音声を提示する。また、受信機12は、受信した放送信号からデータ放送用の各ファイル・データを取得すると、HTMLブラウザーなどのアプリケーション・エンジンを起動して、放送番組に連動したデータ放送の提示を行なう。
図1に示したディジタル放送システム10では、放送送出システム11から受信機12へ放送信号を伝送する際のトランスポート方式として、MMTを適用することを想定している。図2には、この場合の放送信号構成例をスタック・モデル200で示している。
スタック・モデル200の最下層には、物理レイヤー(PHY)201がある。物理例201には、変調方式や誤り訂正方式などが含まれる。
物理レイヤー201の上に、TLV(Type Length Value)の伝送パケットのレイヤー202がある。また、TLV202の上にはIPパケット203が載り、さらにその上にUDP(User Datagram Protocol)204が載る。また、TLVの伝送パケット202の上には、IP203とUDP204のヘッダーを圧縮したヘッダー圧縮IP205と、シグナリング(Signaling)情報としての伝送制御信号206も載る。
UDP204の上には、MMTパケット207、現在時刻の情報を含むNTP(Network Time Protocol)パケット208などが載る。MMTプロトコル(MMTP)は、MMTPペイロード209をIPネットワーク上で伝送するためのアプリケーション・レイヤーのトランスポート・プロトコルである。
MMTパケット207のMMTペイロード209には、MFU(MMT Fragment Unit)210あるいはデータ放送に関わるシグナリング・メッセージ(Signaling Message)211が含まれる。MFU210は、符号化されたタイムド・メディア並びにノンタイムド・メディアのコンテナーであるMPU(Media Processing Unit)のフラグメントである。MFU210には、ビデオやオーディオ、字幕などのストリーム・データ(タイムド・メディア)212や、HTML文書データなどのファイル・データ(ノンタイムド・メディア)213が挿入される。
図3には、図2に示した放送信号を送出する放送送出システム11の構成例を示している。図示の放送送出システム11は、時計部301と、信号送出部302と、ビデオ・エンコーダー303と、オーディオ・エンコーダー304と、キャプション・エンコーダー305と、シグナリング・エンコーダー306と、ファイル・エンコーダー307と、情報システム308と、TLVシグナリング・エンコーダー309と、IPサービス・マルチプレクサー(MUX)310と、TLVマルチプレクサー(MUX)311と、変調・送信部312を備えている。
時計部301は、NTPサーバー(図示しない)から取得した時刻情報に同期した時刻情報を生成し、この時刻情報を含むIPパケットをIPサービス・マルチプレクサー310に送る。
信号送出部302は、例えばTV放送局のスタジオやVTRなどの記録再生機であり、タイムド・メディアであるビデオ、オーディオ、字幕などのストリーム・データや、ノンタイムド・メディアであるデータ放送用のHTML文書データなどのファイル・データをそれぞれ、ビデオ・エンコーダー303、オーディオ・エンコーダー304、キャプション・エンコーダー305、ファイル・エンコーダー307に送る。また、情報システム308は、TV放送局のスケジューラー並びにファイルの供給源であり、ノンタイムド・メディアであるHTML文書データ、シグナリング情報をそれぞれ、ファイル・エンコーダー307、シグナリング・エンコーダー306に送る。
ビデオ・エンコーダー303は、信号送出部302から送出されるビデオ信号を符号化し、さらにパケット化して、ビデオのMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。また、オーディオ・エンコーダー304は、信号送出部302から送出されるオーディオ信号を符号化し、さらにパケット化して、オーディオのMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。また、キャプション・エンコーダー305は、信号送出部302から送出される字幕信号を符号化し、さらにパケット化して、字幕のMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。
シグナリング・エンコーダー306は、情報システム308から送出される情報に基づいてデータ放送に関わるシグナリング・メッセージを生成し、ペイロード部にこのシグナリング・メッセージが配置されたMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。本実施形態では、データ放送に関わるシグナリング・メッセージは、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージの3種類に大別される。本実施形態では、データ放送で利用される各ファイルの強制キャッシュを指定する情報がデータ・トランスミッション・メッセージ内に含まれる。各シグナリング・メッセージの詳細については後述に譲る。
ファイル・エンコーダー307は、信号送出部302又は情報システム308から送出されるファイル・データを、必要に応じて分割して、ファイル・データを含むMMTパケットを生成し、このMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。なお、ファイル・データは、データ放送コンテント(データ放送用アプリケーション)を構成するものである。
放送送出システム11は、送出するチャンネル(放送番組)毎にIPサービス・マルチプレクサー310を装備する。1つのチャンネルのIPサービス・マルチプレクサー310は、各エンコーダー303〜307から送られてくるビデオ、オーディオ、字幕、シグナリング・メッセージ、及びファイル・データの各々を含むIPパケットをマルチプレクスして、1つのチャンネルを構成するTLVパケットを生成する。
TLVシグナリング・エンコーダー309は、情報システム308から送出されるシグナリング情報をエンコードして、ペイロード部に配置するTLVパケットを生成する。
TLVマルチプレクサー311は、各IPサービス・マルチプレクサー310−1〜310−N及びTLVシグナリング・エンコーダー309で生成されるTLVパケットをマルチプレクスして、放送ストリームを生成する。
変調・送信部312は、TLVマルチプレクサー311で生成された放送ストリームに対してRF変調処理を行なって、RF伝送路に送出する。
図3に示した放送送出システム11の動作について説明しておく。
時計部301では、NTPサーバーから取得した時刻情報に同期した時刻情報が生成され、この時刻情報を含むIPパケットが生成される。
信号送出部302から送出されるビデオ信号は、ビデオ・エンコーダー303、に供給される。ビデオ・エンコーダー303では、ビデオ信号が符号化され、さらにパケット化されて、ビデオのMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
また、信号送出部302から送出されるオーディオ信号、字幕信号に対しても、同様の処理が行なわれる。そして、また、オーディオ・エンコーダー304で生成されるオーディオのMMTパケットを含むIPパケットがIPサービス・マルチプレクサー310に送られ、キャプション・エンコーダー305で生成される字幕のMMTパケットを含むIPパケットがIPサービス・マルチプレクサー310に送られる。
また、シグナリング・エンコーダー306では、情報システム308から送出される情報に基づいてデータ放送に関わるシグナリング・メッセージを生成され、ペイロード部にこのシグナリング・メッセージが配置されたMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
また、信号送出部302又は情報システム308から送出されるファイル・データは、ファイル・エンコーダー307に供給される。ファイル・エンコーダー307では、ファイル・データが必要に応じて分割され、ファイル・データを含むMMTパケットが生成され、このMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
各IPサービス・マルチプレクサー310では、各エンコーダー303〜307から送られてくるビデオ、オーディオ、字幕、シグナリング・メッセージ、及びファイル・データの各々を含むIPパケットがマルチプレクスされて、1つのチャンネルを構成するTLVパケットが生成される。
TLVシグナリング・エンコーダー309では、情報システム308から送出されるシグナリング情報がエンコードされて、ペイロード部に配置するTLVパケットを生成する。
TLVマルチプレクサー311では、各IPサービス・マルチプレクサー310−1〜310−N及びTLVシグナリング・エンコーダー309で生成されるTLVパケットがマルチプレクスされて、放送ストリームが生成される。変調・送信部312では、TLVマルチプレクサー311で生成された放送ストリームに対してRF変調処理が行なわれ、そのRF変調信号がRF伝送路に送出される。
また、図4には、図2に示した放送信号を受信する受信機12の構成例を示している。図示の受信機12は、チューナー・復調部401と、デマルチプレクサー(DEMUX)402と、時計部403と、ビデオ・デコーダー404と、オーディオ・デコーダー405と、キャプション・デコーダー406と、アプリケーション・データ制御部407と、キャッシュ・メモリー408と、データ放送アプリケーション・エンジン409と、システム制御部410と、合成部411と、IPインターフェース412を備えている。
チューナー・復調部401は、RF変調信号を受信して、復調処理を行なって、放送ストリームを得る。デマルチプレクサー402は、この放送ストリームに対して、デマルチプレクス処理及びでパケット化処理を行なって、NTP時刻情報、PTS(Presentation Time Stamp:提示時刻情報)、シグナリング情報、放送番組本編に関わるビデオ、オーディオ、キャプションの各符号化信号、放送番組に連動するデータ放送に利用されるファイル・データ、並びにシグナリング情報を出力する。なお、データ放送に利用されるファイル・データは、例えばHTML5形式で記述されたデータ放送アプリケーションである。
ビデオ・デコーダー404は、デマルチプレクサー402で得られる符号化ビデオ信号をデコードして、ベースバンドのビデオ信号を得る。また、オーディオ・デコーダー405は、デマルチプレクサー402で得られる符号化オーディオ信号をデコードして、ベースバンドのオーディオ信号を得る。また、キャプション・デコーダー406は、デマルチプレクサー402で得られる符号化字幕信号をデコードして、字幕の表示信号を得る。
アプリケーション・データ制御部407は、データ放送で利用される各ファイル・データの処理を行なう。本実施形態では、データ放送で利用される各ファイル・データは放送信号並びにIPネットワークの2系統から伝送されることを想定し、前者はチューナー・復調部401及びデマルチプレクサー402経由で、後者はIPインターフェース412経由で、それぞれアプリケーション・データ制御部407が取得する。アプリケーション・データ制御部407は、デマルチプレクサー402から出力されるシグナリング情報に基づいて、取得したファイル・データの処理を制御する。具体的には、アプリケーション・データ制御部407は、現在いずれのデータ放送提示単位(Presentation Unit:PU)にいるかを管理し、該当するファイル・データ(HTML5などのデータ放送アプリケーション)の処理をHTMLブラウザーなどのデータ放送アプリケーション・エンジン409に指示する。データ放送アプリケーション・エンジン409は、適宜キャッシュ・メモリー408に事前キャッシュ又はプリキャッシュされたファイル・データを用いて、データ放送アプリケーションを処理する。
アプリケーション・データ制御部407は、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージの各々に含まれるシグナリング・テーブルを参照して、データ放送を提示するために必要なアクセス範囲を特定し、データ放送アプリケーション・エンジン407でキャッシュ可能なファイル・データを事前にキャッシュ・メモリー408にキャッシュするためのフィルタリング動作を制御する。ファイル・データの事前キャッシュの詳細については後述に譲る。
また、データ放送で利用される各ファイルの強制キャッシュを指定する情報がデータ・トランスミッション・メッセージ内に含まれている。本実施形態では、アプリケーション・データ制御部407は、データ・トランスミッション・メッセージ内に含まれている強制キャッシュ情報に基づいて、データ放送をタイムリーに提示するために必要なファイル・データをキャッシュ・メモリー408にプリキャッシュする。ファイル・データのプリキャッシュの詳細については後述に譲る。
なお、放送ストリームでは、同一コンテントのファイル・データが繰り返し送られてくる。システム制御部410は、デマルチプレクサー402におけるフィルタリング動作を制御して、繰り返し送られてくるファイル・データ群の中からデマルチプレクサー402において必要なもののみがアプリケーション・データ制御部407で取得されるようにする。
システム制御部410は、デマルチプレクサー402で得られるシグナリング情報や、ユーザー操作部(図示しない)を介したユーザーからの操作情報などに基づいて、当該受信機12の各部の動作を制御する。時計部403は、デマルチプレクサー402で得られるNTP時刻情報に基づいて、この時刻情報に同期した時刻情報を生成する。
また、システム制御部410は、各デコーダー404〜406におけるデコード・タイミングをPTSに基づいて制御し、ビデオ、オーディオ、字幕の提示タイミングを調整する。合成部411は、ベースバンドのビデオ信号に、字幕の表示信号及びデータ放送の表示信号を合成し、映像表示用のビデオ信号を得る。また、オーディオ・デコーダー405で得られるベースバンドのオーディオ信号は、音声出力用のオーディオ信号となる。ビデオ信号及びオーディオ信号からなる放送番組本編は、図示しないモニター・ディスプレイから映像及び音声出力される。また、データ放送アプリケーション・エンジン409が処理したデータ放送も、モニター・ディスプレイ上で放送番組本編の画面に重畳して表示される。
図4に示した受信機12の動作について説明しておく。
チューナー・復調部401では、RF変調信号が受信され、復調処理が行なわれて、放送ストリームが得られる。デマルチプレクサー402では、この放送ストリームに対して、デマルチプレクス処理及びでパケット化処理を行なわれ、NTP時刻情報、PTS、シグナリング情報、ビデオ、オーディオ、キャプションの各符号化信号、並びに、ファイル・データが抽出される。
デマルチプレクサー402で抽出されたNTP時刻情報は、時計部403に送られる。時計部403では、NTP時刻情報に基づいて、この時刻情報に同期した時刻情報が生成される。つまり、時計部403では、放送送出システム11側の時計部301で生成された時刻情報に合った時刻情報が生成される。
デマルチプレクサー402で抽出された符号化ビデオ信号は、ビデオ・デコーダー404に送られてデコードされ、ベースバンドのビデオ信号が得られる。また、デマルチプレクサー402で抽出された符号化字幕信号はキャプション・デコーダー406に送られてデコードされ、字幕の表示信号が得られる。また、デマルチプレクサー402で抽出されたファイル・データはデータ放送アプリケーション・エンジン407に送られて処理され、データ放送の表示信号が得られる。なお、システム制御部410によってデマルチプレクサー402におけるフィルタリング動作が制御されて、必要なファイル・データのみがデマルチプレクサー402で取得されるようにする。
そして、合成部411では、ベースバンドのビデオ信号に、字幕の表示信号及びデータ放送の表示信号が合成され、映像表示用のビデオ信号が得られる。
また、デマルチプレクサー402で抽出された符号化オーディオ信号はオーディオ・デコーダー405に送られてデコードされ、音声出力用のベースバンドのオーディ信号が得られる。ビデオ信号及びオーディオ信号からなる放送番組本編は、図示しないモニター・ディスプレイから映像及び音声出力される。
一方、アプリケーション・データ制御部407は、現在いずれのデータ放送提示単位にいるかを管理し、該当するファイル・データ(HTML5などのデータ放送アプリケーション)の処理をHTMLブラウザーなどのデータ放送アプリケーション・エンジン409に指示する。データ放送アプリケーション・エンジン409は、適宜キャッシュ・メモリー408に事前キャッシュ又はプリキャッシュされたファイル・データを用いて、データ放送アプリケーションを処理する。データ放送アプリケーション・エンジン409が処理したデータ放送も、モニター・ディスプレイ上で放送番組本編の画面に重畳して表示される。
また、アプリケーション・データ制御部407は、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージの各々に含まれるシグナリング・テーブルを参照して、キャッシュ・メモリー408の空き容量に応じたファイル・データの事前キャッシュや、放送番組に連動してデータ放送をタイムリーに提示するための強制キャッシュを制御する(後述)。
図1に示したディジタル放送システム10では、放送送出システム11から受信機12へ放送信号を伝送する際のトランスポート方式として、MMTを適用することを想定している。図5には、MMT方式に従って放送送出システム11からRF伝送路に送出される放送信号500のイメージを示している。
1つのチャンネル(放送番組)の放送信号は、ビデオ、オーディオ、字幕などの放送番組本編に関わるタイムド・メディアと、放送番組に連動するデータ放送に利用されるファイル・データのようなノンタイムド・メディアで構成され、これらをエンコードしたメディア・データをMPUに格納して伝送する。また、これらの放送信号の伝送制御などに関する情報を、シグナリング情報として伝送する。MMTでは、1つのチャンネル(放送番組)を構成するタイムド・メディア及びノンタイムド・メディアのデータを異なる伝送路の組み合わせで利用することが容易である。図5に示す例では、放送信号500として、ビデオ、オーディオ、字幕、ファイル・データ、シグナリング情報など、データのタイプ毎のMMT伝送路501〜504が利用されている。なお、図中、字幕データ用の伝送路は便宜上、図示を省略している。
1つのチャンネル(放送番組)は、ビデオ、オーディオ、字幕、ファイル・データ(データアプリケーション)などタイプの異なる複数のアセットで構成される「パッケージ」と言うことができる(パッケージは、MMT伝送路を使って伝送されるメディア・データの論理集合である)。各アセットは、同じasset_id(アセット識別子)を共有する1又はそれ以上のMPUの集合(論理グループ)であり、それぞれ専用のES(Elementary Stream)すなわちMMT伝送路上で伝送される(アセットは、固有の識別子に関連付けられ、マルチメディアのプレゼンテーションを構成するために使用されるデータのエンティティーである)。すなわち、伝送路501では、共通のasset_idを持つMPU論理グループからなるビデオのMMTパケット(MMTP)が伝送され、伝送路502では、共通のasset_idを持つMPU論理グループからなるオーディオのMMTパケットが伝送され、伝送路503では、共通のasset_idを持つMPU論理グループからなるファイル・データのMMTパケットが伝送される。MPUは、asset_idと、該当する伝送路上でのMPUのシーケンス番号で特定される。また、各メディアを伝送するMMT伝送路は、asset_idで識別することができる。
付言すれば、1つのパッケージ(放送番組)で、タイプが同じ複数の(すなわち、asset_idが異なる)アセットが伝送されることもある。例えば、同じ放送番組に対して、2以上のファイル・コンテント(データ放送アプリケーション)が提供される場合である。このような場合、異なるファイル・コンテントには別々のasset_idが割り振られ、別々のMPU論理グループとして異なるMMT伝送路上で伝送されることになる。図5では、簡素化のため、ファイル・データ用の伝送路503を1本しか描いていない。
また、MMTは、放送や通信の複数の伝送路に共通に用いることができる。HTML文書データのようなノンタイムド・メディアは、図5に示したように放送の伝送路でタイムド・メディアとともに伝送される以外に、IPネットワークなど通信の伝送路を介して提供することもできる。
また、伝送路504では、同じシグナリング・メッセージを含んだMMTパケットが、繰り返し伝送される。本明細書で開示する技術を実現する上で、伝送されるシグナリング・メッセージは、PAメッセージ510、M2セクション・メッセージ520、データ・トランスミッション・メッセージ530の3種類のシグナリング・メッセージが関連する。各種シグナリング・メッセージで、シグナリング・テーブルが伝送される。例えば、PAメッセージ510内には、MP(MMT Package)テーブル511が含まれている。また、M2セクション・メッセージ520内には、MH AI(Application Information)テーブル521が含まれている。また、データ・トランスミッション・メッセージ530は、データの伝送方法やデータ管理の制御方法を通知するためのメッセージであり、データ・ディレクトリー・マネジメント・テーブル531、データ・アセット・マネジメント・テーブル532、データ・コンテント・マネジメント・テーブル533の各シグナリング・テーブルが含まれている。各テーブルの詳細については後述に譲る。
上述したように、MMTPでは、ビデオ、オーディオ、字幕などのタイムド・メディアや、ファイル・データのようなノンタイムド・メディアが伝送される。図6には、MMTPパケット600の構成例を示している。MMTPパケットは、MMTプロトコルを用いて伝送されるようにフォーマットされたメディア・データのユニットである。詳細については、例えば非特許文献1を参照されたい。
参照番号601で示すパケット・カウンター・フラグ「C」に1が代入されていると、参照番号602で示すパケット・カウンターのフィールドがこのMMTPパケット内に存在することが表される。パケット・カウンター602は、MMTPパケットをカウントした整数値を書き込む32ビット長のフィールドであり、MMTPパケットを送信する度に1ずつインクリメントされる。
参照番号603で示す拡張フラグ「X」に1が代入されていると、参照番号604で示す拡張ヘッダー604が存在することが表される。図6の下には、拡張ヘッダー604の構成例を併せて示している。拡張ヘッダー604は、参照番号604−1で示す16ビット長のtypeフィールドと、参照番号604−2で示すlengthフィールドと、参照番号604−3で示すheader_extensin_valueフィールドで構成される。lengthフィールドには、header_extensin_valueフィールドのバイト長が書き込まれる。header_extensin_valueフィールドには、MMTの仕様から外れた拡張情報を書き込むことができる。
参照番号606で示すtypeフィールドには、当該MMTPパケットのペイロード・データのタイプを表すタイプ値が書き込まれる。タイプ値の定義を以下の表1に示しておく。
参照番号605で示すRAP(Random Access Point)フラグに1が代入されていると、当該MMTPパケットのペイロードが当該データ・タイプのデータ・ストリームへのRandom Access Pointを含んでいることを表す。
参照番号607で示す、16ビット長のpacket_idフィールドには、アセットを区別するための整数値が書き込まれる。このフィールドの値は、当該MMTPパケットが属するアセットのasset_idに由来する。packet_idとasset_idのマッピングは、シグナリング・メッセージの一部であるMMTパッケージ(MP)テーブルで示されている。
参照番号608で示す、32ビット長のtimestampフィールドには、当該MMTPパケットの送信時間が、NTPプロトコルで規定されているshort−formatで記載される。
参照番号609で示す、32ビット長のpacket_sequence_numberフィールドには、同一のpacket_idを持つパケットを識別するための整数値(MMT伝送路上でのシーケンス番号)が記載される。
図7には、ノンタイムド・メディアを伝送するMMTPパケットの場合の拡張ヘッダー700の構成例を示している。図示のように、この場合、lengthフィールド701には、header_extensin_valueフィールドのバイト長として4が書き込まれる。header_extensin_valueフィールド702には、download_idが4バイトで記載される。
MMTプロトコルを使ってMPUを伝送する際、送信側及び受信側ではそれぞれパケット化、デパケット化が必要である。パケット化により、MPUはMMTPペイロードに挿入され、MMTPパケットで伝送される。MMTPペイロードのフォーマットは、大きなペイロードの伝送が可能なように、MMTPペイロードのフラグメンテーションを許容する。また、MTPペイロードのフォーマットは、小さなデータ・ユニットに対応して、複数のMMTPペイロードを単一のMMTPペイロードに挿入するアグリゲーションも許容する。受信側では、デパケット化して、元のMPUデータを復元する。
図8には、MPUモードの場合のMMTPペイロード800の構成例を示している。詳細については、例えば非特許文献1を参照されたい。MPUモードは、MMTPヘッダーのtypeフィールド606に「0x00」が書き込まれている場合である。MPUモードのMMTPパケットは、放送番組本編に関わるビデオ、オーディオ、並びに、放送番組に連動するファイル・データ(データ放送アプリケーション)の伝送に使用される。
参照番号801で示すMPU Fragment Type(FT)フィールドには、フラグメントのタイプが4ビットの値で示される。FT値の定義を以下の表2に示しておく。
参照番号802で示すTimed(T)フラグに1が記入されているときには、タイムド・メディアを伝送するMPUがフラグメントされていることを示し、0が記入されているときには、ノンタイムド・メディアを伝送するMPUがフラグメントされていることを示す。
参照番号803で示すFragmentation Identifier(f_i)フィールドは、ペイロード内のデータ・ユニットのフラグメンテーションに関する情報を、2ビットで表す。f_iの4つの値の定義を以下の表3に示しておく。
当該ペイロードが複数のデータ・ユニットをアグリゲートしたものであるときには、参照番号804で示すaggregation(A)フラグに1が記入される。
参照番号805で示す、8ビット長のfragment_counterフィールドには、当該MMTPペイロードが続く同じデータ・ユニットのフラグメントを含んでいるペイロードの数が記載される。
参照番号806で示す、16ビット長のDU_lengthフィールドには、当該フィールドに続くデータ(DU:Data Unit)の長さが記載される。但し、Aフラグ804が0のときは、DU_lengthフィールド806はない。
参照番号807で示すDU_Headerは、データ・ユニットのヘッダーである。但し、FT値801が0又は1のとき(言い換えれば、MFUでないとき)には、DU_Header807はない。MFUは、タイムド・メディアのサンプル若しくはサブサンプル、又は、ノンタイムド・メディアのアイテムを含んでいる。
図9には、ペイロードにタイムド・メディアを配置したMFUのDU_Header900の構成例を示している。また、図10には、ペイロードにノンタイムド・メディアを配置したMFUのDU_Header1000の構成例を示している。図10に示すように、ノンタイムド・メディアの場合のDU_Header1000は、当該MFUの一部として伝送されるアイテムの識別子である32ビット長のitem_IDで構成される。アイテムは、HTML文書データや、HTML文書から参照されるモノメディア・データなどの、アプリケーションを構成するリソースである。asset_idで指定されたMMT伝送路上では、上述したMMTPパケットのヘッダー内のpacket_id及び拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDの組み合わせで、アイテムを一意に特定することができる。
図11には、ノンタイムド・メディアのデータを伝送する際のパケット構成例を示している。
図11(a)には、元のファイル・データの状態を示している。同図中、F1、F2はそれぞれ1つのファイル・データである。ファイル・データは、例えばHTML文書であり、1以上のアイテムを含んでいる。また、HTML文書自体も1つのアイテムである。
図11(b)には、各ファイル・データF1、F2をMFUに配置した様子を示している。ファイル・データF1は、ファイル・サイズが大きくないので、そのまま1つのMFUのペイロードに配置される。一方、ファイル・データF2は、ファイル・サイズが大きいので、複数個に分割され、それぞれがMFUのペイロードに配置される。図示の例では、ファイル・データF2は、F2−1とF2−2に2分割され、それぞれが別のMFUのペイロードに配置されている。
ここで、HTML文書データやモノメディアなどのノンタイムド・メディアがペイロードに配置されるMFUには、そのアイテムを一意に示すitem_IDが記載されたDU_Header(図10を参照のこと)がそれぞれ付けられる。
次いで、図11(c)に示すように、各MFUには、MMTペイロードのヘッダー(図8を参照のこと)が付けられて、MMTペイロードとなる。ここで、MMTペイロードのヘッダーのFragment Type(FT)フィールドに値2を記載して、フラグメントのタイプがMFUであることを示す。また、Timed(T)フラグに値0を記載して、ノンタイムド・メディアを伝送するMPUであることを示す。また、フラグメントしていないノンタイムド・メディアを配置したMFUには、Fragmentation Identifier(f_i)フィールドに値0を記載する。一方、フラグメントしたノンタイムド・メディアを配置したMFUには、Fragmentation Identifier(f_i)フィールドに値1を記載するとともに、fragment_counterフィールドに該当するカウント値を記載する。
次いで、図11(d)に示すように、各MMTペイロードに、MMTPパケットのヘッダー及び拡張ヘッダー(図6を参照のこと)が付けられて、MMTパケット・ストリームとなる。ここで、MMTPヘッダーのtypeフィールドには、0を記載して、ペイロード・データのタイプがMPUであることを記載し、packet_idフィールドにはアセットを区別するための整数値が書き込まれる。また、拡張ヘッダーには、download_idが記載される。したがって、asset_idで指定されたMMT伝送路上では、上述したMMTPパケットのヘッダー内のpacket_id及び拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDの組み合わせで、アイテムを一意に特定することができる。
さらに、図11(e)に示すように、各MMTパケットにIPヘッダー及びUDPヘッダーが付けられて、IPパケット・ストリームとなる。図示を省略したが、各IPパケットにTLVヘッダーを付けることで、放送ストリームを構成するTLVパケットが生成される。
なお、図11では図示を省略したが、MMTパケットには、シグナリング・メッセージをペイロードに含むMMTパケットも存在する。シグナリング・メッセージは、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージがある(前述並びに図5を参照のこと)。MMTPペイロードにタイムド・メディアやノンタイムド・メディアなどの伝送メディアが含まれるか、あるいは、シグナリング・メッセージが含まれるかは、MMTPヘッダー内のtypeフィールドの値を参照して識別することができる。
続いて、本明細書で開示する技術を実現する上で関連する、MMTプロトコルで使用されるシグナリング・メッセージの構成について説明する。シグナリング・メッセージは、パッケージの伝送制御やパッケージの使用に必要なシグナリング情報であり、各種のシグナリング・テーブルを伝送する。
MMTのシグナリング・メッセージは、3つの共通するフィールドと、シグナリング・メッセージ・タイプ毎の特定の1つのフィールドと、メッセージ・ペイロードからなる一般的なフォーマットを使用する。メッセージ・ペイロードは、シグナリング情報を伝送する。以下、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージの順に説明する。
PA(Packege Access)メッセージは、Packege Accessに必要なすべてのシグナリング・テーブル上の情報を持つPAテーブルを伝送する。PAテーブルには、MMT Package(MP)テーブルが含まれる。図12には、シグナリング・メッセージの1つであるPAメッセージ1201と、PAメッセージに含まれるMPテーブル1202の構成例を示している。また、図13には、PAメッセージ1300のシンタックス例を示し、図14には、PAメッセージに含まれるパラメーターの説明を示している。
message_idは、各種シグナリング情報において、PAメッセージを識別する16ビットの固定値である。versionは、PAメッセージのバージョンを示す、8ビットの整数値のパラメーターである。例えばMPテーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、当該PAメッセージのサイズをバイト単位で示す、32ビット長のパラメーターである。
extensionフィールドには、payloadのフィールドに配置されるMPテーブル(MPT)のインデックス情報が配置される。このフィールドには、8ビットのtable_idと、8ビットのtable_versionと、16ビットのtable_lengthが配置される。table_idは、MPテーブルを識別する固定値である。table_versionは、MPテーブルのバージョンを示す。table_lengthは、MPテーブルのサイズをバイト単位で示す。
PAメッセージのpayloadフィールドには、MPテーブルが配置される。MPテーブルは、すべてのアセットのリストを含むパッケージに関連する情報を格納する。
図15及び図16には、MPテーブルのシンタックス例を示している(図16は、図15の続く後半部分である)。また、図17には、MPテーブルに含まれるパラメーターの説明を示している。以下、MPテーブルの構成について説明する。
table_idは、各種シグナリング情報においてMPテーブルであることを識別する8ビットの固定値である。versionは、MPテーブルのバージョンを示す8ビットの整数値である。例えば、MPテーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、MPテーブルのサイズをバイト単位で示す、32ビット長のパラメーターである。
MMT_package_idは、放送信号で伝送されるすべての信号(ビデオ、オーディオ、字幕)、並びにファイル・データなどのアセットを構成要素とする全体のパッケージとしての識別情報である。この識別情報は、テキスト情報である。MMT_package_id_lengthは、そのテキスト情報のサイズをバイト単位で示す。
MP_table_descriptorsのフィールドは、パッケージ全体に関わる記述子の格納領域である。MPT_table_descriptor_lengthは、そのフィールドのサイズN2をバイト単位で示す、16ビット長のパラメーターである。そして、MP_table_descriptorは、さまざまな目的の記述子を規定した上で、N2バイト分(1つ又は複数配置)することを想定している。
number_of_assetsは、パッケージを構成する要素としてのアセット(信号、ファイル)の数を示す、8ビットのパラメーターである。number_of_assetの数分(N3)だけ、以下のAsset loopが配置される。
1つのAsset loop内には、個々のアセットの情報としてのasset_id_len、asset_id、gen_loc_info、asset_dsc_len、asset_descriptorの各パラメーターが配置される。
asset_idは、アセットをユニークに識別するテキスト情報である。asset_id_lenは、asset_idのサイズをバイト単位で示す。gen_loc_infoは、アセットの取得先のロケーションを示す情報である。本実施形態では、gen_loc_infoは、アセットの取得先となる伝送路上のpacket idの形式で記述される。したがって、MPテーブル上でasset_idを引いて、MMT伝送路上の該当するpacket IDを取り出すことができる。
asset_descriptorのフィールドは、アセットに関わる記述子の格納領域である。asset_descriptor_lengthは、asset_descriptorフィールドのサイズN5をバイト単位で示す。そして、asset_descriptorは、さまざまな目的の記述子を規定した上で、N5個(1つ又は複数)配置することを想定している。
M2セクション・メッセージは、MPEG−2 Systemのセクション拡張形式をそのまま伝送するために用いるシグナリング・メッセージである。図18には、M2セクション・メッセージ1800の構成例を示している。以下、M2セクション・メッセージの各パラメーターの意味について説明する。
message_id(メッセージ識別)は、各種シグナリング情報において、M2セクション・メッセージを識別する16ビットの固定値であり、本実施形態では0x8000とする。version(バージョン)は、M2セクション・メッセージのバージョンを示す、8ビットの整数値のパラメーターである。length(メッセージ長)は、このフィールドの直後からカウントされる、当該M2セクション・メッセージのサイズをバイト単位で示す、16ビット長のパラメーターである。table_id(テーブル識別)は、当該セクションが属するテーブルの識別のために使用する領域である。section_syntax_indicator(セクション・シンタクス指示)は、拡張形式を示す‘1’とする。section_length(セクション長)は、セクション長領域より後に続くデータのバイト数を書き込む領域である。table_id_extention(テーブル識別拡張)は、テーブル識別の拡張を行なう領域である。version_number(バージョン番号)は、テーブルのバージョン番号を書き込む領域である。current_next_indicator(カレント・ネクスト指示)は、テーブルが現在使用可能である場合は‘1’とし、テーブルが現在使用不可であり次に有効となることを示す場合は‘0’とする。section_number(セクション番号)は、テーブルを構成するセクション番号を書き込む領域である。last_section_number(最終セクション番号)は、テーブルを構成する最後のセクション番号を書き込む領域である。CRC32(CRC)、ITU−T勧告H.222.0に従う巡回冗長符号とする。
図19には、M2セクション・メッセージで伝送されるMH AI(Application Information)テーブル(MH AIT)1900の構成例を示している。以下、MH AIテーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)は、各種シグナリング情報においてアプリケーション情報(AI)テーブルであることを識別する8ビットの固定値であり、本実施形態では0x89とする。section_syntax_indicator(セクション・シンタクス指示)は、1ビットのフィールドで、常に「1」とする。sectoin_length(セクション長)は、12ビットのフィールドで、先頭の2ビットは常に「00」とする。これは、セクション長フィールドからCRC32を含むセクションの最後までのセクションのバイト数を規定する。この値は1021(16進数で0x3FD)を超えないものとする。applicaton_type(アプリケーション形式)は、16ビットのフィールドで、AITで伝送しているアプリケーションの値を示す。DVBでは、DVB−Jアプリケーションに対して0x0001が割り当てられている。ARIB−Jアプリケーションにおいても0x0001とする。version_number(バージョン番号)は、5ビットのフィールドで、サブテーブルのバージョン番号である。version_numberは、当該MH AIテーブルのバージョン番号であり、サブテーブル内の情報に変化があった場合に+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)の情報を格納する。descriptorは、AITサブテーブル内のすべてのアプリケーションに適用される。例えば、伝送プロトコル記述子がdescriptorフィールドに書き込まれる。
application_loop_lengthは、このMH AIテーブルに含まれるアプリケーション情報の数を書き込む領域である。そして、application_loop_lengthが示す数分だけ、アプリケーション情報のループが配置される。
1つのアプリケーション情報のループ内には、application_identifier(アプリケーション識別子)と、application_control_code(アプリケーション制御コード)と、application_descriptor_loop_length(アプリケーション情報記述子ループ長)の数分のループからなる一連の領域に記載されるdescriptor(アプリケーション情報記述子)が配置される。この記述子領域内の記述子は、指定したアプリケーションのみに適用される。
application_identifier(アプリケーション識別子)は、アプリケーションを識別するパラメーターである。application_control_code(アプリケーション制御コード)は、8ビットのフィールドで、アプリケーションの状態を制御する制御コードを規定する。このフィールドのセマンティックスは、アプリケーション形式の値に依存する。application_control_codeとして“autostart”が指示されていたら、このMH ATテーブルを参照した受信機は、application_identifierで指定されたアプリケーションを起動開始する。また、application_control_codeとして“prefetch”が指示されていたら、このMH ATテーブルを参照した受信機は、application_identifierで指定されたアプリケーションを先読みする。また、application_control_codeとして“kill”が指示されていたら、このMH ATテーブルを参照した受信機は、application_identifierで指定されたアプリケーションの実行を停止する。CRC32(CRC)、ITU−T勧告H.222.0に従う巡回冗長符号とする。
要するに、MH AIテーブルは、MMT伝送路で送られてくるアプリケーション(ファイル・データ)の処理方法や、伝送方法(transport_protocol)、ロケーション(URL)を指定するテーブルである。受信機は、M2セクション・メッセージで送られてくるMH AIテーブルを受信すると、application_control_codeで指定された処理を実行するために、指定されたロケーションから指定されたtransport_protocolでアプリケーションを取得する。
図20には、MH AIテーブルのアプリケーション情報のループ内に格納される、アプリケーション情報記述子2000の構成例を示している。また、図21には、アプリケーション情報記述子2000に含まれるパラメーターの説明を示している。以下、アプリケーション情報記述子2000の各パラメーターの意味について説明する。
descriptor_tagは、当該記述子2000を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子2000のデータのバイト数を書き込む領域である。
application_profile_lengthの数分のループからなる一連の領域には、application_profileの情報が書き込まれる。application_profileは、本アプリケーションが実行可能である受信機のプロファイルであり、受信機に要求する機能毎のビットマップで要求機能を示す。但し上位3ビットは機能ビットマップ切り替えを示す。上記ビットマップはバージョン毎に規定する。また、version_major、version_minor、version_microはそれぞれ、アプリケーション・プロファイル規定のバージョンである。
service_bound_flagは、本アプリケーションが現在のサービスのみで有効かどうかを示すフラグである。visibilityは、アプリケーション可視か否かを示す。application_priorityは、このサービス内で告知されているアプリケーション間の相対優先度である。transport_protocol_labelは、アプリケーションを伝送するプロトコルを示す。transport_protocol_labelの値としては、0x0003はHTTP/HTTPS伝送、0x0005はMMT並びにノンタイムド伝送を規定する。
また、図22には、伝送プロトコル記述子2200の構成例を示している。以下、伝送プロトコル記述子2200の各パラメーターの意味について説明する。
descriptor_tagは、当該記述子2200を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子2200のデータのバイト数を書き込む、8ビットの領域である。
protocol_id(プロトコル識別子)は、アプリケーションを伝送するプロトコルを示す。値としては、0x0003はHTTP/HTTPS伝送、0x0005はMMT並びにノンタイムド伝送を規定する。transport_protocol_label(伝送プロトコル・ラベル)は、1つのアプリケーションを複数の経路で伝送する場合にその伝送手段を一意に識別する値であり、アプリケーション情報記述子の同名のフィールドに対応する。selector_byte(セレクター・バイト)は、プロトコルID毎にシンタックスが規定される領域であり、取得場所が書き込まれる。
図23には、HTTP/HTTPS、MMTノンタイムド伝送に共通のセレクター・バイト2300の構成例を示している。
URL_base_byteは、URL_base_lengthの数分のループからなる一連の領域に、URL文字列のうち、URL_baseを示すテキスト情報を格納する。
URL_extension_countは、URL_baseに続くURL_extensionの数を示し、URL_extension_countの数分だけURL_extensionのループが配置される。そして、1つのURL_extensionのループ内では、URL_extention_byteは、URL_extensionの長さを規定するURL_extension_lengthの数分のループからなる一連の領域に、個々のURL_extentionを示すテキスト情報を格納する。各URL_extentionは、URL_baseに続くURL文字列である。例えば、URL_baseが“http://www.xbc.com”で、URL_extensionが“index.html”であれば、これらの文字列を連結して、完全なURL“http://xbc.com/index.html”を得ることができる。
要するに、MH AIテーブルのアプリケーション情報のループ内のアプリケーション情報記述子並びに伝送プロトコル記述子を参照することで、アプリケーションの伝送手段(MMT伝送か、HTML伝送か)、並びに、ロケーション情報(URL)を取得することができる。
図24には、シグナリング・メッセージの1つであるデータ・トランスミッション・メッセージ2400の構成例を示している。以下、データ・トランスミッション・メッセージの各パラメーターの意味について説明する。
message_id(メッセージ識別)は、各種シグナリング情報において、データ・トランスミッション・メッセージを識別する16ビットの固定値であり、本実施形態では0xF000とする。version(バージョン)は、データ・トランスミッション・メッセージのバージョン番号を書き込む領域である。length(メッセージ長)は、このフィールドより後に続く当該メッセージのデータのサイズをバイト単位で示す、32ビットのパラメーターである。
num_of_tables(テーブル数)は、このデータ・トランスミッション・メッセージに格納するテーブルの数を示す。データ・トランスミッション・メッセージに格納するテーブルとして、そして、num_of_tablesが示す数分だけ、テーブル情報のループが配置される。
1つのテーブル情報のループ内には、テーブル情報として、table_id(テーブル識別)、table_version(テーブル・バージョン)、並びに、table_length(テーブル長)が格納される。table_id(テーブル識別)は、このデータ・トランスミッション・メッセージに格納するテーブルの識別のための使用する領域である。データ・トランスミッション・メッセージでは、データ・アセット・マネジメント・テーブル(DAMT)、データ・ディレクトリー・マネジメント・テーブル(DDMT)、データ・コンテント・マネジメント・テーブル(DCMT)の3種類のシグナリング・テーブルが伝送されるが(前述)、table_id(テーブル識別子)はこれらのうちいずれのテーブルであるかを識別する。table_version(テーブル・バージョン)は、このデータ・トランスミッション・メッセージに格納するテーブルのバージョンを示す。table_length(テーブル長)は、このデータ・トランスミッション・メッセージに格納するテーブルの大きさをバイト単位で示す。
また、num_of_tablesが示す数分だけ、テーブルのループが配置される。1つのテーブルのループ内には、table_idで識別されるテーブルの中身の情報が格納される。table(テーブル)は、このデータ・トランスミッション・メッセージに格納するテーブルを示す。
図25には、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブル2500の構成例を示している。データ・アセット・マネジメント・テーブルは、MMTPパケットとして伝送されるファイル・データのアセットの情報と、ファイル・データの各アセットに含まれるアイテムの情報を管理するテーブルである。以下、このデータ・アセット・マネジメント・テーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)は、各種シグナリング情報においてデータ・アセット・マネジメント・テーブルであることを示す8ビットの固定値であり、本実施形態では0xA2とする。version_(バージョン)は、このデータ・アセット・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・アセット・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・アセット・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_assetは、パッケージに含まれるファイル・データのアセットの数を示す、8ビットのパラメーターである。number_of_assetの数分だけ、以下のアセット情報のループが配置され、アセット毎のファイル・データの情報が格納される。
1つのアセット情報のループ内には、download_idと、アセット(ファイル・データ)自体に関する情報と、そのアセットに含まれる各アイテムに関する情報が含まれる。download_idは、ノンタイムド・メディア(ファイル・データ)を伝送するMMTPパケットの拡張ヘッダーに書き込まれる識別情報である(図7を参照のこと)。
アセット情報のループ内に格納されるアセット自体に関する情報として、asset_ID_scheme、asset_ID_length、asset_ID_lengthと、asset_ID_byteを含む。asset_ID_schemeは、asset_IDの形式を示す。asset_IDの形式として、例えばUUID(Universal Unique Identifier)、URI(Uniform Resource Identifier)、GURL(General URL)を割り当てることができる。asset_ID_lengthは、asset_ID_byteの長さをバイト単位で表す。asset_ID_byteは、asset_ID_lengthの数分のループからなる一連の領域に、asset_ID_schemeで指定された形式で、asset_IDを示す。ちなみに、この情報は、本実施形態では、MPテーブル、データ・アセットマネジメント・テーブル共通にアセットを識別する情報として用いられるが、データ量が大きいので他の代用可能なアセット識別情報を用いてもよい。例えば、MPテーブルにおいてasset_IDに対応する情報として16ビットのcomponent_tagを定義し、データ・アセット・マネジメント・テーブルにおいてはasset_IDの代わりにcomponent_tagを利用することが想定される。
number_of_itemsは、該当するファイル・データのアセットを構成するアイテムの数を書き込む領域である。そして、number_of_itemsの数分だけアイテムのループが配置され、アセット(ファイル・データ)を構成する各アイテムに関する情報が書き込まれる。
1つのアイテムのループ内には、アイテムに関する情報として、item_ID、node_tag、item_size、item_version、item_checksum、item_infoの各パラメーターが記述される。item_IDは、ノンタイムドMFUで伝送されるアイテムを識別するIDを示す32ビットの値である。node_tagは、同様にアイテムを識別する情報であり、16ビットの値である。シグナリング情報としては、32ビットのitem_IDに代えて16ビットのnode_tagを使用することで、アイテムの識別に必要なビット・サイズを削減することができる。なお、nodeは、データ放送アプリケーション(コンテント)を構成するディレクトリー構造上のノードとなるディレクトリー並びにアイテムの各々を指す。アイテムだけでなくディレクトリーもnode_tagで指定することができる。item_sizeは、アイテムのサイズをバイト単位で表す。item_versionは、アイテムのバージョンを示し、アイテムの内容が更新される度にversionは+1だけインクリメントされる。item_checksumは、アイテムのチェックサムを示す。なお、チェックサムは、すべてのファイルに対して必ず設定するのは情報量が多いと考えられる。よって、そのような考慮により、例えば1ビットのcheck_sum_flagを設定し、これに1が代入された場合にのみ32ビットのitem_check_sumが現れるようにしてもよい。あるいは、シグナリングではなく、図7に示したMMTPパケットの拡張ヘッダーとしてtypeとしてチェックサムを示し、lengthの後に32ビットのチェックサムを配置してもよい。item_info_lengthは、item_info_byteの情報領域のサイズをバイト単位で表す。そして、item_info_byteは、item_info_lengthの数分のループからなる一連の領域に、当該アイテムに関する情報(item_info())を格納する。
descriptor_loop_lengthは、descriptorの全バイト長を示す。descriptorは、descriptor_loop_lengthの数分のループからなる一連の領域に記述子の情報(descriptor())を格納する。格納される記述子は別途定義する。
要するに、データ・アセット・マネジメント・テーブル2500は、1つのパッケージに含まれるファイル・データ(コンテント)のアセット並びにアセットに含まれるアイテムに関する情報を管理するテーブルである。アイテムに関する情報として、アイテムのバージョン情報も管理する。データ・アセット・マネジメント・テーブル2500を参照して、node_tag(若しくは、Item_ID)から該当するasset_idやアセットを伝送するMMT拡張ヘッダーに記載されたdownloadIDやitem_infoを引いたり、シグナリング情報の伝送路上で扱うnode_tagからファイル・データの伝送路上のitem_IDやitem_infoを引いたりすることができる。
図26には、データ・トランスミッション・メッセージで伝送されるデータ・ディレクトリー・マネジメント・テーブル(DDMT)2600の構成例を示している。データ・ディレクトリー・マネジメント・テーブルは、データ放送アプリケーション(コンテント)を構成するディレクトリー、並びに、ディレクトリーに含まれる各ノード(下位のディレクトリーやアイテム(ファイル・データ))のロケーション情報を管理するテーブルである。以下、このデータ・ディレクトリー・マネジメント・テーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)には、各種シグナリング情報においてデータ・ディレクトリー・マネジメント・テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・ディレクトリー・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・ディレクトリー・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・ディレクトリー・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
base_folder_path_lengthは、base_folder_path_byteの情報領域のサイズをバイト単位で表す。base_folder_path_byteは、base_folder_path_lengthの数分のループからなる一連の領域に、base_folder(上位のディレクトリー)へのパス名を格納する。base_folder_path_byteは、例えば、対応するディレクトリーへアクセスするための絶対的なURL形式で表記される。
num_of_folder_nodesは、データ・ディレクトリー・マネジメント・テーブルに記載されるフォルダー・ノードの数を示す。そして、num_of_folder_nodesの数分だけフォルダー・ノードのループが配置される。
1つのフォルダー・ノードのループ内には、データ・ディレクトリー・マネジメント・テーブルに記載される各フォルダー・ノードの情報と、ベース・フォルダーに含まれる各ファイル・データの情報が格納される。
folder_node_path_lengthは、folder_node_path_byteの情報領域のサイズをバイト単位で表す。folder_node_path_byteは、folder_node_path_lengthの数分のループからなる一連の領域に、folder_nodeへのパス名を格納する。folder_node_path_byteは、例えば、対応するディレクトリーへアクセスするための、base_folder_pathからの相対的なURL形式で表記される。図示しないが、フォルダー・ノードの情報としてfolder_node_version(フォルダー・ノードのバージョン情報)を含んでいてもよい。例えば、base_folderのパス名(URL)が“http://www.xbc.com”で、あるfolder_nodeのバス名(URL)が“index.html”であれば、これらの文字列を連結して、完全なURL“http://xbc.com/index.html”を得ることができる。
num_of_filesは、データ・ディレクトリー・マネジメント・テーブルに記載されるファイルの数を示す。そして、num_of_filesの数分だけファイルのループが配置される。
1つのファイルのループ内には、ベース・フォルダーに含まれる各ファイル・データの情報として、node_tagと、file_name_byte(ファイル名)が格納される。node_tagは、ノンタイムドMFUで伝送されるアイテムを識別する情報を、32ビットのitem_IDよりも短い16ビットで表す。なお、nodeは、データ放送アプリケーション(コンテント)を構成するディレクトリー構造上のノードとなるディレクトリー並びにアイテムの各々を指す。アイテムだけでなくディレクトリーもnode_tagで指定することができる(前述)。file_name_byteは、file_name_lengthの数分のループからなる一連の領域に格納される。
要するに、データ・ディレクトリー・マネジメント・テーブル2600は、1つのパッケージに含まれるディレクトリー並びにディレクトリーに含まれるサブディレクトリーやファイル(アイテム)に関するディレクトリー構造を管理するテーブルである。データ・ディレクトリー・マネジメント・テーブル2600により、データ放送アプリケーションのファイル構成と、ファイル伝送のための構成を分離することができる。また、データ・ディレクトリー・マネジメント・テーブル2600を参照して、node_tagから該当するアイテムのパス名(URL)を引いたり、逆にパス名(URL)から該当するnode_tagを引いたりすることができる。なお、本構成例では、データ・ディレクトリー・マネジメント・テーブルにおいて、ファイルが存在するディレクトリーのロケーション情報をfolder_path_byteとして設定するとともに各ディレクトリーをnode_tagとして識別情報を与え、アイテム毎の情報としてはファイル名とnode_tagのみを指定するので、folder_path_byteの情報量が大きくなり過ぎるということはない。
続いて、データ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブル(DCMT)について説明する。
データ・コンテント・マネジメント・テーブル(DCMT)は、ノンタイムド・メディアとして伝送されるファイル・データすなわちコンテント(データ放送アプリケーション)の情報を管理するテーブルである。本実施形態では、データ・コンテント・マネジメント・テーブルに強制キャッシュを指定する情報を含めて伝送する。放送番組に連動したデータ放送は、タイムリーな提示を行なうことが要求される。このような場合、放送送出システム11側からは、データ・コンテント・マネジメント・テーブル(DCMT)に強制キャッシュを指定する情報を含めることで、受信機12側では、放送番組に連動したデータ放送で利用される各ファイルをプリキャッシュしておき、データ放送のタイムリーな提示を実現することができる。
データ・コンテント・マネジメント・テーブル(DCMT)による強制キャッシュ情報の伝送方式として、以下の2通りを挙げることができる。
(方式1)データ・コンテント・マネジメント・テーブルにおいて、データ放送提示単位(PU)毎に、提示単位を構成する放送伝送ファイル(member item)リストと中心となるファイル(primary item)、及びプリキャッシュの対象ファイルが存在する場合はその対象ファイル・リスト(pre−cache item)の情報を記述する。
ここで言うプリキャッシュの対象ファイルは、例えば、現在のデータ放送提示単位(PU)から次に参照するデータ放送提示単位(PU)を構成する放送ファイル・リストで構成される。放送番組の制作側では、このようにデータ放送のシグナリング情報でプリキャッシュの対象ファイル・リストを提示することで、受信機側では次に遷移するデータ放送提示単位に必要なファイル・データをプリキャッシュしておくという、プリキャッシュによるキャッシュ制御動作を行なうことができる。その結果、放送番組に連動したタイムリーなデータ放送サービスを実現することができる。
(方式2)データ・コンテント・マネジメント・テーブルにおいて、データ放送提示単位(PU)毎に、提示単位を構成する放送伝送ファイル(member item)リストと中心となるファイル(primary item)、及びキャッシュにロックする対象ファイル(lock cache item)及びロック対象のうちアンロックする対象ファイル(unlock cache item)の情報を記述する。
ここで言うロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)から次に参照するデータ放送提示単位(PU)で使用する放送ファイル・リストで構成される。放送番組の制作側では、このようにデータ放送のシグナリング情報でロック並びにアンロックの対象ファイル・リストを提示することで、受信機側ではロック並びにアンロックによるキャッシュ制御動作を行なうことができる。例えば、受信機側では、次に遷移するデータ放送提示単位に必要なファイル・データをキャッシュにロックしておくことができる。その結果、放送番組に連動したタイムリーなデータ放送サービスを実現することができる。また、アンロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)では不要となる放送ファイル・リストで構成される。アンロック対象ファイルを指定することで、不要なファイルをキャッシュ・メモリー408から削除することができ、メモリー・サイズを節約することができる。
図27には、方式1を実現するデータ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブル(DCMT)2700の構成例を示している。
table_id(テーブル識別)には、各種シグナリング情報においデータ・コンテント・マネジメント・テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・コンテント・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・コンテント・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・コンテント・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_contentは、パッケージに含まれるコンテントの数を示す、8ビットのパラメーターである(コンテントは、例えば、データ放送アプリケーションを記述したHTML文書などのファイル・データである)。number_of_contentの数分だけ、以下のコンテントのループが配置され、コンテント毎の情報が格納される。
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のループが配置される。
1つのPUのループ内には、PUの識別情報であるPU_tagと、PUをキャッシュするサイズを示すPU_cache_sizeと、当該データ放送提示単位(PU)の中心となるファイル(primary item)を識別するPU_primary_item_node_tagが書き込まれる。
また、PUのループ内には、当該データ放送提示単位(PU)を構成する放送伝送ファイル(member item)リストが書き込まれる。具体的には、number_of_PU_member_nodesは、当該データ放送提示単位(PU)に含まれる(すなわち、PUのメンバーとなる)ノードの数を示す。その後に、このnumber_of_PU_member_nodesの数分だけのPUメンバー・ノードのループが配置され、各PUメンバー・ノードのループ内には、PUメンバー・ノードのnode_tagが書き込まれる。PUメンバー・ノードは、ディレクトリーのノードとアイテムのノードを含む。
また、PUのループ内には、該当するPUにおいてプリキャッシュの対象ファイルが存在する場合はその対象ファイル・リスト(pre−cache item)の情報を記述する。具体的には、number_of_pre_cache_nodesはプリキャッシュの対象となるノードの数であり、number_of_pre_cache_nodesの数分だけのプリキャッシュ・ノードのループが配置される。1つのプリキャッシュ・ノードのループ内には、プリキャッシュ・ノードを識別するpre_cache_node_tagが書き込まれる。
ここで言うプリキャッシュの対象ファイルは、例えば、現在のデータ放送提示単位(PU)から次に参照するデータ放送提示単位(PU)を構成する放送ファイル・リストで構成される。放送番組の制作側では、このようにデータ放送のシグナリング情報でプリキャッシュの対象ファイル・リストを提示することで、受信機側では次に遷移するデータ放送提示単位に必要なファイル・データをプリキャッシュしておくことができる。その結果、放送番組に連動したタイムリーなデータ放送サービスを実現することができる。
また、1つのPUのループ内には、このPUからリンクされる他のPUの数を示すnumber_of_linked_PUと、number_of_linked_PUの数分だけのlinked_PUのループが配置される。1つのlinked_PUのループ内では、linked_PUの識別情報であるlinked_PU_tagが書き込まれる。
図28には、方式2を実現するデータ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブル(DCMT)2800の構成例を示している。
table_id(テーブル識別)には、各種シグナリング情報においデータ・コンテント・マネジメント・テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・コンテント・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・コンテント・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・コンテント・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_contentは、パッケージに含まれるコンテントの数を示す、8ビットのパラメーターである(コンテントは、例えば、データ放送アプリケーションを記述したHTML文書などのファイル・データである)。number_of_contentの数分だけ、以下のコンテントのループが配置され、コンテント毎の情報が格納される。
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のループが配置される。
1つのPUのループ内には、PUの識別情報であるPU_tagと、PUをキャッシュするサイズを示すPU_cache_sizeと、当該データ放送提示単位(PU)の中心となるファイル(primary item)を識別するPU_primary_item_node_tagが書き込まれる。
また、PUのループ内には、当該データ放送提示単位(PU)を構成する放送伝送ファイル(member item)リストが書き込まれる。具体的には、number_of_PU_member_nodesは、当該データ放送提示単位(PU)に含まれる(すなわち、PUのメンバーとなる)ノードの数を示す。その後に、このnumber_of_PU_member_nodesの数分だけのPUメンバー・ノードのループが配置され、各PUメンバー・ノードのループ内には、PUメンバー・ノードのnode_tagが書き込まれる。PUメンバー・ノードは、ディレクトリーのノードとアイテムのノードを含む。
また、PUのループ内には、該当するPUにおいて、キャッシュ・メモリー408へのキャッシュをロックする対象となるファイル(lock cache item)及びロック対象のうちアンロックする対象となるファイル(unlock cache item)の情報を記述する。具体的には、number_of_lock_cache_nodesはプリキャッシュの対象となるノードの数であり、その後にnumber_of_lock_cache_nodesの数分だけのロック対象ノードのループが配置される。1つのロック対象ノードのループ内には、ロック対象ノードを識別するlock_cache_node_tagが書き込まれる。また、number_of_unlock_cache_nodesはプリキャッシュの対象となるノードの数であり、その後にnumber_of_unlock_cache_nodesの数分だけのアンロック対象ノードのループが配置される。1つのアンロック対象ノードのループ内には、アンロック対象ノードを識別するunlock_cache_node_tagが書き込まれる。
ここで言うロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)から次に参照するデータ放送提示単位(PU)で使用する放送ファイル・リストで構成される。放送番組の制作側では、このようにデータ放送のシグナリング情報でロック対象ファイル・リストを提示することで、受信機側では次に遷移するデータ放送提示単位に必要なファイル・データをキャッシュにロックしておくことができる。その結果、放送番組に連動したタイムリーなデータ放送サービスを実現することができる。また、アンロック対象ファイルは、例えば、現在のデータ放送提示単位(PU)では不要となる放送ファイル・リストで構成される。アンロック対象ファイルを指定することで、不要なファイルをキャッシュ・メモリー408から削除することができ、メモリー・サイズを節約することができる。
また、1つのPUのループ内には、このPUからリンクされる他のPUの数を示すnumber_of_linked_PUと、number_of_linked_PUの数分だけのlinked_PUのループが配置される。1つのlinked_PUのループ内では、linked_PUの識別情報であるlinked_PU_tagが書き込まれる。
要するに、データ・コンテント・マネジメント・テーブルは、1つのパッケージで各コンテント(データ放送アプリケーション)をデータ放送提示単位(PU)で管理するテーブルであり、データ・コンテント・マネジメント・テーブルを参照して、node_tagから、そのノードを含むデータ放送提示単位のPU_tagを取得ことができる。また、データ・コンテント・マネジメント・テーブル受信機12側でのデータ放送用ファイルの強制キャッシュを制御するという側面を持つ。但し、データ・コンテント・マネジメント・テーブルを利用したキャッシュ制御動作の詳細については、後述に譲る。
図29には、MMT伝送されるデータ放送アプリケーション(コンテント)の伝送、コンテントのロケーションと、アプリケーションの提示を行なう仕組みを図解している。
図29(A)には、コンテントのディレクトリー構造を示している。各コンテントcontent1、2、…は、データ放送アプリケーション(app)とマテリアルで構成される。データ放送アプリケーションやマテリアルは、それぞれファイル・データを実体とするリソースである。各リソースは、MMT伝送路上ではアセットの構成要素であるアイテムに相当し、32ビットのitem_IDで識別することができる。また、シグナリング情報内では、アイテムは16ビットのnode_tagで識別することができる。図29(C)に示すように、各リソースは、該当するアセットのMMT伝送路上でアイテムとして伝送される(後述)。アプリケーションは、コンテントの実行時(データ放送の提示時)において参照される1以上のHTML文書からなる。また、マテリアルは、HTML文書から参照されるjpeg画像やテキストなどのモノメディア・データなどである。1つのHTML文書と、そこから参照されるマテリアルで、1つのデータ放送提示単位PUを構成する。図29(A)に示す例では、content1は、A11.html、A12.html、A13.htmlなどの1以上のHTML文書をデータ放送アプリケーションのリソースとして持つ。このうち、A11.htmlは、コンテントの実行時に直接参照されるリソースとする。
図29(B)には、コンテントの実行時(データ放送の提示時)におけるリソース間の参照関係を示している。図示の例では、コンテントの実行時に直接参照されるアプリケーションA11とこれが参照するマテリアルB11、B02が1つのデータ放送提示単位PUを構成するリソース・グループ2801であり、PU_tagとしてp1が割り当てられている(なお、B14は、放送によりMMT伝送されるのではなく通信によるHTTP伝送で随時取得することができるマテリアルであり、以下では、データ放送提示単位のリソース・グループには含まないものとして扱う)。
同様に、アプリケーションA12とこれが参照するマテリアルB12、B02、B13が1つのデータ放送提示単位PUを構成するリソース・グループ2802であり、PU_tagとしてp2が割り当てられている(なお、B07は、放送によりMMT伝送されるのではなく通信によるHTTP伝送で随時取得することができるマテリアルであり、以下では、データ放送提示単位のリソース・グループには含まないものとして扱う)。同様に、アプリケーションA01とこれが参照するマテリアルB03、B01、B04が1つのデータ放送提示単位PUを構成するリソース・グループ2803であり、PU_tagとしてp3が割り当てられている。
また、複数のHTML文書間でリンク参照関係を持つことができる(周知)。図29(B)に示す例では、リソースA11.htmlは、コンテントの実行時に直接参照され、最初に表示されるアプリケーション提示画面を記述するHTML文書である。これに対し、同じcontent1に含まれリソースA12.htmlと、content1外のcommonに含まれるリソースA01.htmlは、A11.htmlを実行して提示される画面から遷移するアプリケーション提示画面を記述するHTML文書であり、A11.htmlとリンク参照関係を持つ。各リソースA11.html、A12.html、A01.htmlは、それぞれ1つのデータ放送提示単位PUを構成するリソース・グループ2801、2802、2803を形成する。そして、リンクし合うデータ放送提示単位2801、2802、2803同士で、さらに上位の大きなリソース・グループ2810を構成する。リソースA11.html、A12.html、A01.htmlは、各々のデータ放送提示単位PUにおいて中心となるファイル・データ(primary item_node)である。
また、パッケージ(1つの放送番組)に含まれるアプリケーション全体となるさらにコンテント全体で大きなリソース・グループすなわちデータ・コンテント全体を構成する。データ・コンテント全体とは、共通のcontent_IDを持つデータ放送提示単位PUの範囲である。データ・コンテント・マネジメントテーブルで、該当するcontent_IDのPUのループを回すことにより、コンテントに含まれるすべてのデータ放送提示単位PUを一括して特定することができる。図29(B)に示す例では、content1とcommonに含まれるアプリケーションでコンテント全体のリソース・グループ2820を形成している。
図29(C)には、コンテントをMMT伝送する様子を模式的に示している。コンテントの構成要素であるアプリケーションやマテリアルは、それぞれファイル・データが実体であり、「リソース」とも呼ぶ。各リソースは、MMT伝送路上ではアセットの構成要素であるアイテムに相当する。MMT伝送では、パッケージに含まれる各コンテントは1つのアセットとして扱われ、それぞれAsset_IDが割り当てられる。図示の例では、content1にはasset_IDとしてa1が割り当てられている。また、MMT伝送では、HTML文書データやマテリアルなどの個々のリソースは、1つのアイテムとして扱われ、それぞれItem_IDが割り当てられる。図示の例では、content1に含まれる各リソースには、それぞれItem_IDとしてi11、i12、i13、i14が割り当てられている。
また、同じコンテントに含まれるリソースは同じasset_IDを共有し、同じMMT伝送路上で伝送される。図29(C)に示す例では、Item_IDがi11、i12、i13、i14の各アイテムは、同じAsset_IDとしてa1を共有しており、同じMMT伝送路上で伝送される。前述したデータ・ディレクトリー・マネジメント・テーブルは図29(A)で表現され、データ・コンテント・マネジメント・テーブルは図29(B)で表現され、データ・アセット・マネジメント・テーブルは図29(C)で表現され、これらの間をitem_ID若しくはnode_tagにより関係付けられることになる。
MMT伝送路からデータ放送アプリケーション(コンテント)を取得する際の、シグナリング情報として伝送される各テーブルの参照関係について、図30を参照しながら説明する。
受信機12は、M2セクション・メッセージで、MH−AIテーブル(MH AIT)2901を取得すると、application_control_codeを参照して、アプリケーションの状態がどのように制御されているかを確認する。そして、“autostart”が指示されている場合には、テーブル内のtransport_protocol_labelを参照して、MMT伝送が指定されていることを確認すると、このアプリケーションの提示時に直接参照されるアイテム(ファイル・データ)のURL情報を伝送プロトコル記述子から取り出す。そして、受信機は、データ・トランスミッション・メッセージで送られてくるデータ・ディレクトリー・マネジメント・テーブル(DDMT)2902を参照して、そのbase_folder_path_byte、folder_node_path_byte、及びfile_name_byteの組み合わせに対応するアイテムのnode_tagを取得することができる。
次いで、受信機12は、データ・トランスミッション・メッセージで送られてくるデータ・アセット・マネジメント・テーブル(DAMT)2903を参照して、取得したnode_tagをMMT伝送路上のitem_IDに戻すとともに、対応するアセットを特定して、そのasset_IDとdownload_idを取得する。
そして、受信機は、PAメッセージで送られてくるMPテーブル(MPT)2904を参照して、取得したasset_IDに対応するpacket_idを取得すると、ファイル・データのMMT伝送路上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDに基づいてフィルタリングして、所望する(アプリケーションの提示時に直接参照する)アイテムを取得することができる。
また、受信機12は、データ・トランスミッション・メッセージで送られてくるデータ・コンテント・マネジメント・テーブル(DCMT)2905内で、データ・ディレクトリー・マネジメント・テーブル2902から取得したnode_tagを引いて、該当するアプリケーション提示単位のPU_tagを取り出すことができる。また、このPU_tagのPUのループ内でlinked_PUのループを回すことにより、これにリンクする他のアプリケーション提示単位のPU_tagを一括して取り出すことができる。
図31には、受信機内で、データ放送に利用されるファイル・データをキャッシュする仕組みを模式的に示している。ここで言うキャッシュには、実行するファイル・データをキャッシュすることとプリキャッシュすることを含む。
アプリケーション・データ制御部407は、デマルチプレクサー402で放送ストリームからデマルチプレクスされたシグナリング・メッセージを解析して、受信機内の動作を制御する。コンテントのプリキャッシュに関しては、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブルに含まれている強制キャッシュ情報に基づいて、放送番組に連動したデータ放送で利用される各ファイルをプリキャッシュする。
具体的には、アプリケーション・データ制御部407は、データ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブルでプリキャッシュすることが指定されたノード(ディレクトリー、又はファイル・データ)のcache_node_tagを取得する。node_tagから該当するMMTPパケットを特定できることは、図30を参照しながら説明した通りである。
アプリケーション・データ制御部407は、プリキャッシュしたいファイル・データのnode_tagを、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブルで引いて、そのノードが属するアセットのasset_IDを取得し、次いで、asset_IDをPAメッセージで伝送されるMPテーブルで引いて、アセットが伝送されるMMTPパケットのpacket_idを取得する。また、システム制御部408は、データ・アセット・マネジメント・テーブルから、所望するアイテムを伝送するMMTPパケットの拡張ヘッダーに記載されるdownload_idを取得すると、ファイル・データのMMT伝送路上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDに基づいてフィルタリングして、所望するアイテムのエンティティーを取得して、キャッシュ・メモリー408にプリキャッシュする。
データ放送アプリケーション・エンジン409は、アプリケーションを実行する際、必要なアイテム(ファイル・データ)が既にキャッシュ・メモリー408に事前にキャッシュされていれば、デマルチプレクサー402で放送ストリームからデマルチプレクスされたファイル・データが届くのを待つことなく、キャッシュ・メモリー408から取り出して、迅速に応答して、データ放送用表示信号を生成することができる。一方、必要なアイテムがキャッシュ・メモリー408内に存在しないときには、データ放送アプリケーション・エンジン407は、放送ストリームからデマルチプレクスされたファイル・データが届くのを待って応答して、データ放送用表示信号を生成する。
続いて、受信機12において、データ放送で利用されるファイル・データをキャッシュする制御動作について詳解する。
データ・コンテント・マネジメント・テーブル(DCMT)による強制キャッシュ情報の伝送方式として、方式1及び方式2の2通りがあることは既に述べた。まず方式1を利用したキャッシュ制御動作について説明する。
方式1では、放送送出システム11側からは、図27に示したデータ・コンテント・マネジメント・テーブル(DCMT)2700がデータ・トランスミッション・メッセージで伝送される。データ・コンテント・マネジメント・テーブル(DCMT)2700は、データ放送提示単位(PU)毎に、提示単位を構成する放送伝送ファイル(member item)リストと中心となるファイル(primary item)、及びプリキャッシュの対象ファイルが存在する場合はその対象ファイル・リスト(pre−cache item)の情報を記述する。したがって、受信機12側では、以下に示すような、プリキャッシュによるキャッシュ制御動作を行なうことができる。
(動作01)アプリケーション・データ制御部407は、MMT伝送路504上で伝送されるデータ・トランスミッション・メッセージを適宜検出して更新を行ないつつ、最新の情報を取得する。
(動作02)アプリケーション・データ制御部407が、データ放送アプリケーション制御エンジン409などからの指示によりprimary_itemに指定された(データ放送提示単位の中心となる)アプリケーション・ファイルにアクセスすることにより、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
(動作03)アプリケーション・データ制御部407は、データ・トランスミッション・メッセージに含まれるデータ・コンテント・マネジメント・テーブル(DCMT)において、該当するデータ放送提示単位(PU)に含まれる各メンバー・ファイル(PU_member_node)も同時に取得して、キャッシュ・メモリー408に保持する。
(動作04)さらに、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してプリキャッシュの対象が指定されている場合には、アプリケーション・データ制御部407は、プリキャッシュ対象の各ファイル(item)も取得して、キャッシュ・メモリー408にプリキャッシュする。
(動作05)データ放送アプリケーション・エンジン409は、primary_itemに指定されたアプリケーション・ファイルを、キャッシュ・メモリー408から実行する。
(動作06)その後、データ・コンテント・マネジメント・テーブル(DCMT)の更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ファイル(PU_member_node)やプリキャッシュ対象のファイルの構成が変化した場合、又は、データ放送アプリケーション・エンジン409におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移した場合などには、現在提示状態にあるデータ放送提示単位(PU)において、上記の(動作03)〜(動作05)の処理を行なう。以前の状態でファイルをキャッシュ・メモリー408に保持していても、アプリケーション・データ制御部407は、現在の状態で不要なファイルをキャッシュ・メモリー408から削除する。
図32には、受信機12における方式1に基づくファイル・データのキャッシュ制御手順をフローチャートの形式で示している。
データ放送アプリケーション制御エンジン409がアプリケーション動作すなわちデータ放送の提示を行なっているときに(ステップS3201のYes)、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブル内でprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイルにアクセスすることにより(ステップS3202のYes)、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
アプリケーション・データ制御部407は、キャッシュ・メモリー408をリセットして、データ・コンテント・マネジメント・テーブル(DCMT)において、現在提示しているデータ放送提示単位(PU)のprimary_item並びに各メンバー・ファイル(PU_member_node)を取得して、キャッシュ・メモリー408に保持する(ステップS3203)。データ放送アプリケーション・エンジン409は、primary_itemに指定されたアプリケーション・ファイルを、キャッシュ・メモリー408から実行する。
また、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してプリキャッシュの対象が指定されているかどうかをチェックする(ステップS3204)。そして、プリキャッシュの対象が指定されている場合には(ステップS3204のYes)、アプリケーション・データ制御部407は、プリキャッシュ対象の各ファイル(item)も取得して、キャッシュ・メモリー408にプリキャッシュする(ステップS3205)。
その後、データ・コンテント・マネジメント・テーブル(DCMT)の更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ファイル(PU_member_node)やプリキャッシュ対象のファイルの構成が変化した場合には(ステップS3206のYes)、ステップS3203に戻り、現在提示状態にあるデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
また、データ放送アプリケーション・エンジン409におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移し、そのデータ放送提示単位のprimary_itemに指定されたアプリケーション・ファイルにアクセスした場合には(ステップS3207のYes)、ステップS3203に戻り、遷移した先のデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
以上の処理を、データ放送アプリケーション・エンジン409がアプリケーション動作を終了するまで(ステップS3208のNo)、繰り返し実行する。
図33には、受信機12における方式1に基づくファイル・データのプリキャッシュ動作例を示している。
アプリケーション・データ制御部407は、MMT伝送路504上で受信する各種シグナリング・メッセージを解析している。シグナリング・メッセージの1つであるデータ・トランスミッション・メッセージには、データ・コンテント・マネジメント・テーブル(DCMT)が含まれている。
データ放送アプリケーション制御エンジン409がPU_id=1で識別されるデータ放送提示単位(PU)のアプリケーション動作を行なっているとき、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブルを参照して、現在提示状態にあるデータ放送提示単位(PU_id=1)のprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A01.html」、並びに、各メンバー・ファイル(PU_member_node)「B01」、「B02」それぞれのnode_tagをデータ・コンテント・マネジメント・テーブルから取得して、データ・アセットを伝送するMMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得すると、参照番号3301で示すように、キャッシュ・メモリー408にキャッシュする。なお、node_tagからMMT伝送路503上で伝送されるファイルにアクセスする方法については、図30を参照しながら、既に説明した通りである(以下、同様)。但し、このデータ放送提示単位(PU)に対してプリキャッシュの対象が指定されていないので、プリキャッシュ動作は行なわない。
次いで、データ放送アプリケーション・エンジン409におけるアプリケーション動作により、PU_id=3で識別される他のデータ放送提示単位(PU)の提示状態に遷移したとする。アプリケーション・データ制御部407は、上記と同様に、遷移した先のデータ放送提示単位(PU_id=3)のprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A11.html」、並びに、各メンバー・ファイル(PU_member_node)「B11」、「B12」、「B13」それぞれのnode_tagをデータ・コンテント・マネジメント・テーブルから取得すると、MMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得して、参照番号3302で示すように、キャッシュ・メモリー408にキャッシュする。但し、このデータ放送提示単位(PU)に対してプリキャッシュの対象が指定されていないので、プリキャッシュ動作は行なわない。
アプリケーション・データ制御部407は、MMT伝送路504上で受信する各種シグナリング・メッセージを常に解析している。そして、参照番号3303で示すように、データ・コンテント・マネジメント・テーブルのバージョンが1から2に更新されたことを検出すると、アプリケーション・データ制御部407は、現在提示状態にあるデータ放送提示単位(PU_id=3)のprimary_item並びに各メンバー・ファイル、プリキャッシュ対象のファイルに変更がないかどうかをチェックする。今回はメンバー・ファイルに変更がないので、以前キャッシュしておいた各メンバー・ファイルはキャッシュ・メモリー408に保持したままとする。また、データ放送提示単位(PU_id=3)のプリキャッシュ対象のファイルとして「A12」、「B14」、「B15」が追加されているので、アプリケーション・データ制御部407は、MMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得して、参照番号3304で示すように、キャッシュ・メモリー408にキャッシュする。
次いで、参照番号3305で示すように、データ放送の提示の更新を指示するイベント・メッセージをMMT伝送路504から受信すると、データ放送アプリケーション・エンジン409は、実行中のA11ファイルからA12ファイルへのHTML文書の遷移を行なう。一方でほぼ同時に、アプリケーション・データ制御部407は、バージョンが2から3に更新されたデータ・コンテント・マネジメント・テーブルを参照して、現在提示状態にあるデータ放送提示単位(PU_id=3)のprimary_itemが「A12.html」に変更するとともに、メンバー・ファイルが「B14」、「B15」、「B16」に変更したことを検出する。上述したように、primary_item「A12.html」並びにメンバー・ファイルが「B14」、「B15」は既にキャッシュ・メモリー408にプリキャッシュされているので、データ放送アプリケーション・エンジン409は、キャッシュ・メモリー408に保持されているファイルを利用してデータ放送を迅速に表示することができる。すなわち、放送番組に連動したタイムリーなデータ放送の提示を行なうことができる。また、データ放送提示単位(PU_id=3)のプリキャッシュ対象のファイルとして「B12」が追加されているので、アプリケーション・データ制御部407は、MMT伝送路503からそのnode_tagに対応するファイル・データのエンティティーを取得して、参照番号3306で示すように、キャッシュ・メモリー408にキャッシュする。
続いて、方式2を利用したキャッシュ制御動作について説明する。
方式2では、放送送出システム11側からは、図28に示したデータ・コンテント・マネジメント・テーブル(DCMT)2800がデータ・トランスミッション・メッセージで伝送される。データ・コンテント・マネジメント・テーブル(DCMT)2800は、データ放送提示単位(PU)毎に、提示単位を構成する放送伝送ファイル(member item)リストと中心となるファイル(primary item)、及びキャッシュにロックする対象ファイル(lock cache item)及びロック対象のうちアンロックする対象ファイル(unlock cache item)の情報を記述する。したがって、受信機12側では、以下に示すような、キャッシュのロック並びにアンロックによるキャッシュ制御動作を行なうことができる。
(動作11)アプリケーション・データ制御部407は、MMT伝送路504上で伝送されるデータ・トランスミッション・メッセージを適宜検出して更新を行ないつつ、最新の情報を取得する。
(動作12)アプリケーション・データ制御部407が、データ放送アプリケーション制御エンジン409などからの指示によりprimary_itemに指定された(データ放送提示単位の中心となる)アプリケーション・ファイルにアクセスすることにより、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
(動作13)アプリケーション・データ制御部407は、データ・トランスミッション・メッセージに含まれるデータ・コンテント・マネジメント・テーブル(DCMT)において、該当するデータ放送提示単位(PU)に含まれる各メンバー・ファイル(PU_member_node)も同時に取得して、キャッシュ・メモリー408に保持する。
(動作14)さらに、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されている場合には、アプリケーション・データ制御部407は、ロックキャッシュ対象のうち未取得の各ファイル(item)も取得して、キャッシュ・メモリー408にキャッシュし、且つ、ロックキャッシュ対象ファイルとして別途管理する。
(動作15)逆に、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してアンロックキャッシュの対象に指定されている場合には、アプリケーション・データ制御部407は、アンロック対象ファイルがキャッシュ・メモリー408にキャッシュされていれば、これを削除するとともに、別途管理していたロックキャッシュ対象ファイルからも削除する。
(動作16)データ放送アプリケーション・エンジン409は、primary_itemに指定されたアプリケーション・ファイルを、キャッシュ・メモリー408から実行する。
(動作17)その後、データ・コンテント・マネジメント・テーブル(DCMT)の更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ファイル(PU_member_node)やプリキャッシュ対象のファイルの構成が変化した場合には、上記の(動作13)〜(動作16)の処理を行なう。
(動作18)データ放送アプリケーション・エンジン409におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移した場合には、ロックキャッシュ対象のファイルは一旦キャッシュ・メモリー408に保持した上で、上記の(動作13)〜(動作16)の処理を行なう。ロックキャッシュ対象以外のファイルは、キャッシュ・メモリー408から削除してもよい。
図34には、受信機12における方式2に基づくファイル・データのキャッシュ制御手順をフローチャートの形式で示している。
データ放送アプリケーション制御エンジン409がアプリケーション動作すなわちデータ放送の提示を行なっているときに(ステップS3401のYes)、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブル内でprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイルにアクセスすることにより(ステップS3402のYes)、対応するデータ放送提示単位(PU)の提示状態に入ったことを認識する。
アプリケーション・データ制御部407は、キャッシュ・メモリー408をリセットして、データ・コンテント・マネジメント・テーブル(DCMT)において、現在提示しているデータ放送提示単位(PU)のprimary_item並びに各メンバー・ファイル(PU_member_node)を取得して、キャッシュ・メモリー408に保持する(ステップS3403)。データ放送アプリケーション・エンジン409は、primary_itemに指定されたアプリケーション・ファイルを、キャッシュ・メモリー408から実行する。
また、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されているかどうかをチェックする(ステップS3404)。そして、ロックキャッシュの対象が指定されている場合には(ステップS3404のYes)、アプリケーション・データ制御部407は、ロックキャッシュ対象のうち未取得の各ファイル(item)も取得して、キャッシュ・メモリー408にキャッシュし、且つ、ロックキャッシュ対象ファイルとして別途管理する(ステップS3405)。
また、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブル内で、該当するデータ放送提示単位(PU)に対してアンロックキャッシュの対象が指定されているかどうかをチェックする(ステップS3406)。そして、アンロックキャッシュの対象が指定されている場合には(ステップS3406のYes)、アプリケーション・データ制御部407は、アンロック対象ファイルがキャッシュ・メモリー408にキャッシュされていれば、これを削除するとともに、別途管理していたロックキャッシュ対象ファイルからも削除する(ステップS3407)。
その後、データ・コンテント・マネジメント・テーブル(DCMT)の更新により、現在提示状態にあるデータ放送提示単位(PU)に含まれるメンバー・ファイル(PU_member_node)やプリキャッシュ対象のファイルの構成が変化した場合には(ステップS3408のYes)、ステップS3403に戻り、現在提示状態にあるデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
また、データ放送アプリケーション・エンジン409におけるアプリケーション動作により他のデータ放送提示単位(PU)の提示状態に遷移し、そのデータ放送提示単位のprimary_itemに指定されたアプリケーション・ファイルにアクセスした場合には(ステップS3409のYes)、ステップS3403に戻り、遷移した先のデータ放送提示単位(PU)において、上記の処理を繰り返し実行する。
以上の処理を、データ放送アプリケーション・エンジン409がアプリケーション動作を終了するまで(ステップS3410のno)、繰り返し実行する。
図35には、受信機12における方式2に基づくファイル・データのキャッシュのロック及びアンロック動作例を示している。
アプリケーション・データ制御部407は、MMT伝送路504上で受信する各種シグナリング・メッセージを解析している。シグナリング・メッセージの1つであるデータ・トランスミッション・メッセージには、データ・コンテント・マネジメント・テーブル(DCMT)が含まれている。
データ放送アプリケーション制御エンジン409がPU_id=1で識別されるデータ放送提示単位(PU)のアプリケーション動作を行なっているとき、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブルを参照して、現在提示状態にあるデータ放送提示単位(PU_id=1)のprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A01.html」、並びに、各メンバー・ファイル(PU_member_node)「B01」、「B02」それぞれのnode_tagをデータ・コンテント・マネジメント・テーブルから取得して、データ・アセットを伝送するMMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得すると、参照番号3501で示すように、キャッシュ・メモリー408にキャッシュする。なお、node_tagからMMT伝送路503上で伝送されるファイルにアクセスする方法については、図30を参照しながら、既に説明した通りである(以下、同様)。但し、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、キャッシュ動作は行なわない。
次いで、データ放送アプリケーション・エンジン409におけるアプリケーション動作により、PU_id=3で識別される他のデータ放送提示単位(PU)の提示状態に遷移したとする。アプリケーション・データ制御部407は、上記と同様に、遷移した先のデータ放送提示単位(PU_id=3)のprimary_item(データ放送提示単位の中心)に指定されたアプリケーション・ファイル「A11.html」、並びに、各メンバー・ファイル(PU_member_node)「B11」、「B12」、「B13」それぞれのnode_tagをデータ・コンテント・マネジメント・テーブルから取得すると、MMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得して、参照番号3502で示すように、キャッシュ・メモリー408にキャッシュする。但し、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、ロックキャッシュ動作は行なわない。
アプリケーション・データ制御部407は、MMT伝送路504上で受信する各種シグナリング・メッセージを常に解析している。そして、参照番号3503で示すように、データ・コンテント・マネジメント・テーブルのバージョンが1から2に更新されたことを検出すると、アプリケーション・データ制御部407は、現在提示状態にあるデータ放送提示単位(PU_id=3)のprimary_item並びに各メンバー・ファイル、ロックキャッシュ対象のファイルに変更がないかどうかをチェックする。今回はメンバー・ファイルに変更がないので、以前キャッシュしておいた各メンバー・ファイルはキャッシュ・メモリー408に保持したままとする。また、データ放送提示単位(PU_id=3)のロックキャッシュ対象のファイルとして「A12」、「B14」、「B12」、「B15」が追加されているので、アプリケーション・データ制御部407は、MMT伝送路503からこれらのnode_tagに対応するファイル・データのエンティティーを取得して、参照番号3504で示すように、キャッシュ・メモリー408にキャッシュするとともに、ロックキャッシュ対象ファイルとして別途管理する。図中、ロックキャッシュ対象として管理されているファイルを下線で示している(以下、同様)。
次いで、参照番号3505で示すように、データ放送の提示の更新を指示するイベント・メッセージをMMT伝送路504から受信すると、データ放送アプリケーション・エンジン409は、実行中のA11ファイルからA12ファイルへのHTML文書の遷移を行なう。一方でほぼ同時に、アプリケーション・データ制御部407は、バージョンが2から3に更新されたデータ・コンテント・マネジメント・テーブルを参照して、現在提示状態にあるデータ放送提示単位(PU_id=3)のprimary_itemが「A12.html」に変更するとともに、メンバー・ファイルが「B14」、「B15」、「B16」に変更したことを検出する。上述したように、primary_item「A12.html」並びにメンバー・ファイルが「B14」、「B15」は既にキャッシュ・メモリー408にロックキャッシュされているので、データ放送アプリケーション・エンジン409は、キャッシュ・メモリー408に保持されているファイルを利用してデータ放送を迅速に表示することができる。すなわち、放送番組に連動したタイムリーなデータ放送の提示を行なうことができる。また、このデータ放送提示単位(PU)に対してロックキャッシュの対象が指定されていないので、ロックキャッシュ動作は行なわない。参照番号3506で示すように、ロックキャッシュされたファイル「A12」、「B14」、「B12」、「B15」がそのままキャッシュ・メモリー408に保持される一方、不要になったファイル「A11」が削除されている。
さらに、データ放送の提示の更新を指示するイベント・メッセージをMMT伝送路504から受信すると、アプリケーション・データ制御部407は、データ・コンテント・マネジメント・テーブルを参照して、現在提示状態にあるデータ放送提示単位(PU_id=3)に対して、ロックキャッシュ対象のファイルとして「B17」が追加されているとともに、アンロック対象ファイルとして「B14」が追加されている。そこで、参照番号3507で示すように、アプリケーション・データ制御部407は、MMT伝送路503からファイル「B17」のnode_tagに対応するファイル・データのエンティティーを取得してキャッシュ・メモリー408にロックキャッシュするとともに、ロックキャッシュしていたファイル「B12」をキャッシュ・メモリー408から削除しロック対象から外す。
現在運用されているBML(Broadcast Markup Language)によるデータ放送サービスでは、スクリプトから「LockModuleOnMemory()」というAPI(Application Programming Interface)を呼び出すことにより、特定のファイルをあらかじめキャッシュ・メモリーにプリキャッシュして留めておくことが可能である(例えば、特許文献2を参照のこと)。この方法は、スクリプトなどのアプリケーションの仕様に、放送運用を前提とする特殊な仕様を盛り込む必要がある。
これに対し、本明細書で開示する技術によれば、放送局などの送信側からは、データ放送に関わるシグナリングに、強制キャッシュを指定する情報を含めて伝送し、受信機側では、受信したデータ放送に関わるシグナリングに含まれている強制キャッシュ情報に基づいてデータ放送用の各ファイルのキャッシュ制御を行なうようになっている。したがって、本明細書で開示する技術によれば、新しいHTML5によるデータ放送において、スクリプトなどのアプリケーションの仕様に、放送運用を前提とする特殊な仕様を盛り込むことなく、汎用性の高いフォーマットを維持することができる。