以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
図1には、本明細書で開示する技術を適用したディジタル放送システム10の構成例を模式的に示している。図示のディジタル放送システム10は、放送送出システム11と、受信機12で構成される。
放送送出システム11は、放送信号の伝送にMMT方式を適用しており、放送サービスを構成する各コンポーネントをIPパケットにして伝送する。具体的には、放送番組の映像信号や音声信号の符号、並びに、放送番組に関連するコンテンツ(データ放送アプリケーションなど)や字幕の信号は、MMTPペイロードに乗せてMMTPパケット化され、IPパケットで伝送される。また、これらのIPパケットは、放送伝送路ではTLVパケットの形式で伝送される。ここで、映像や音声、字幕などの放送番組本体に関わるコンポーネントは、同期メディアである。また、データ放送に利用されるコンテンツ(HTML:Hyper Text Transfer Protocol)形式で記述されるデータ放送アプリケーションなど)は非同期メディアである。
一方、受信機12は、放送送出システム11から放送伝送路で送られてくるIPパケットを受信する。受信機12は、そして、受信機12は、受信パケットから映像や音声、字幕などの伝送メディアを復号して、画像や音声を提示する。また、受信機12は、受信パケットからデータ放送用の各ファイル・データを取得すると、HTMLブラウザーなどのアプリケーション・エンジンを起動して、放送番組に連動したデータ放送の提示を行なう。
図2には、MMT方式を用いる放送システムのプロトコル・スタック200を示している。
1つの放送サービスは、映像201、音声202、字幕203、アプリケーション204、コンテンツ・ダウンロード205の各コンポーネントで構成される。映像201はHEVC(High Efficiency Video Coding)形式で符号化211され、音声202はAAC(Advanced Audio Coding)形式で符号化212され、字幕203は次膜符号化213される。また、アプリケーション204は、EPG(Electric Program Guide)を含むが、HTML5形式で符号化214される。
MMTレイヤー220上では、これら同期メディア及び非同期メディアの符号化コンポーネント211~214は、MPUフォーマットにして、MMTPペイロードに乗せてMMTPパケット化される。また、メディア・トランスポート方式であるMMTに関わる(放送番組の構成などを示す)制御情報であるMMT-SI(signaling Information)221も、MMTPペイロードに乗せてMMTPパケット化される。なお、コンテンツ・ダウンロード205のデータ伝送方式215として、字幕・文字スーパー伝送方式、アプリケーション伝送方式、イベント・メッセージ伝送方式、汎用データ伝送方式の4種類が挙げられるが、詳細な説明は省略する。
UDP(User Datagram Protocol)/IPレイヤー230では、MMTPパケットはIPパケット化される。また、同期メディアのための現在時刻の情報を含むNTP(Network Time Protocol)パケット206も、IPパケット化される。さらに、これらのIPパケットは、TLVレイヤー240でTLVパケット化され、最下層の物理レイヤーである放送伝送路250で伝送される。また、IPパケットの多重のためのTLV多重化形式に関わるTLV-SI241も、TLVパケット化され、放送伝送路250で伝送される。TLVパケットを多重した伝送スロットは、伝送路のTMCC(Transmission and Multiplexing Configuration Control)信号251から、TLVストリーム識別情報(TLV_stream_id)を用いて特定される。
図3には、図2に示した放送信号を送出する放送送出システム11の構成例を示している。放送送出システム11は、例えば放送番組本体の制作元であるキー局(番組制作局)に相当する。図示の放送送出システム11は、時計部301と、信号送出部302と、ビデオ・エンコーダー303と、オーディオ・エンコーダー304と、キャプション・エンコーダー305と、シグナリング・エンコーダー306と、ファイル・エンコーダー307と、電子データ処理システム(Electronic Data Processing System:EDPS)308と、TLVシグナリング・エンコーダー309と、IPサービス・マルチプレクサー(MUX)310と、TLVマルチプレクサー(MUX)311と、変調・送信部312を備えている。
時計部301は、NTPサーバー(図示しない)から取得した時刻情報に同期した時刻情報を生成し、この時刻情報を含むIPパケットをIPサービス・マルチプレクサー310に送る。
信号送出部302は、例えばTV放送局のスタジオやVTRなどの記録再生機であり、同期メディアである映像、音声、字幕などのストリーム・データや、非同期メディアであるデータ放送アプリケーション用のファイル・データ(HTML文書データなど)をそれぞれ、ビデオ・エンコーダー303、オーディオ・エンコーダー304、キャプション・エンコーダー305、ファイル・エンコーダー307に送る。
EDPS308は、TV放送局のスケジューラー並びにファイルの供給源であり、非同期メディアであるデータ放送アプリケーションと、放送番組の構成などを示す制御情報と、IPパケットの多重に関する制御情報をそれぞれ、ファイル・エンコーダー307、シグナリング・エンコーダー306、TLVシグナリング・エンコーダー309に送る。
ビデオ・エンコーダー303は、信号送出部302から送出される映像信号をHEVC符号化し、さらにパケット化して、映像信号のMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。また、オーディオ・エンコーダー304は、信号送出部302から送出される音声信号をAAC符号化し、さらにパケット化して、音声信号のMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。また、キャプション・エンコーダー305は、信号送出部302から送出される字幕信号を字幕符号化し、さらにパケット化して、字幕のMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。
シグナリング・エンコーダー306は、EDPS308から送出される情報に基づいて、放送番組の構成などを示す制御情報を記述したシグナリング・メッセージ(MMT-SI)を生成し、ペイロード部にこのシグナリング・メッセージが配置されたMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。本実施形態では、シグナリング・メッセージは、PA(Package Access)メッセージ、M2セクション・メッセージ、データ伝送メッセージの3種類に大別される。
ファイル・エンコーダー307は、信号送出部302又はEDPS308から送出されるデータ放送アプリケーションをHTML5形式のファイル・データに符号化し、さらにパケット化して、このMMTパケットを含むIPパケットをIPサービス・マルチプレクサー310に送る。
放送送出システム11は、送出するチャンネル(放送番組)毎にIPサービス・マルチプレクサー310を装備する。1つのチャンネルのIPサービス・マルチプレクサー310は、各エンコーダー303~307から送られてくる映像、音声、字幕、シグナリング・メッセージ(MMT-SI)、及びデータ放送アプリケーションの各々を含むIPパケットをマルチプレクスして、1つの放送サービス(チャンネル)を構成するTLVパケットを生成する。
TLVシグナリング・エンコーダー309は、EDPS308から送出される情報に基づいて、上記のIPパケットの多重に関する制御情報(TLV-SI)をペイロード部に配置するTLVパケットを生成する。
TLVマルチプレクサー311は、各IPサービス・マルチプレクサー310-1~310-N及びTLVシグナリング・エンコーダー309で生成されるTLVパケットをマルチプレクスして、TLVストリーム識別情報で識別されるTLVストリームを生成する。
変調・送信部312は、TLVマルチプレクサー311で生成されたTLVストリームに対してRF変調処理を行なって、放送伝送路に送出する。
図3に示した放送送出システム11の動作について説明しておく。
時計部301では、NTPサーバー(図示しない)から取得した時刻情報に同期した時刻情報が生成され、この時刻情報を含むIPパケットが生成される。
信号送出部302から送出される映像信号は、ビデオ・エンコーダー303に供給される。ビデオ・エンコーダー303では、映像信号がHEVC符号化され、さらにパケット化されて、HEVC符号化映像信号のMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
また、信号送出部302から送出される音声信号並びに字幕信号に対しても、同様の処理が行なわれる。すなわち、オーディオ・エンコーダー304で生成されるAAC符号化音声信号のMMTパケットを含むIPパケットがIPサービス・マルチプレクサー310に送られるとともに、キャプション・エンコーダー305で生成される字幕符号化信号のMMTパケットを含むIPパケットがIPサービス・マルチプレクサー310に送られる。
また、シグナリング・エンコーダー306では、EDPS308から送出される情報に基づいて放送番組の構成などを示す制御情報を記述したシグナリング・メッセージ(MMT-SI)が生成され、ペイロード部にこのシグナリング・メッセージが配置されたMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
また、信号送出部302又はEDPS308から送出されるデータ放送アプリケーションは、ファイル・エンコーダー307に供給される。ファイル・エンコーダー307では、データ放送アプリケーションがHTML5形式に符号化され、さらにパケット化され、このMMTパケットを含むIPパケットが生成される。このIPパケットは、IPサービス・マルチプレクサー310に送られる。
各IPサービス・マルチプレクサー310では、各エンコーダー303~307から送られてくる映像、音声、字幕、シグナリング・メッセージ(MMT-SI)、及びファイル・データ(HTML5文書)の各々を含むIPパケットがマルチプレクスされて、1つのチャンネルを構成するTLVパケットが生成される。
TLVシグナリング・エンコーダー309では、EDPS308から送出される情報に基づいて、上記のIPパケットの多重に関する制御情報(TLV-SI)をペイロード部に配置するTLVパケットが生成される。
TLVマルチプレクサー311では、各IPサービス・マルチプレクサー310-1~310-N及びTLVシグナリング・エンコーダー309で生成されるTLVパケットがマルチプレクスされて、TLVストリームが生成される。変調・送信部312では、TLVマルチプレクサー311で生成されたTLVストリームに対してRF変調処理が行なわれ、そのRF変調信号が放送伝送路に送出される。
図4には、図2に示した放送信号を受信する受信機12の構成例を示している。図示の受信機12は、チューナー・復調部401と、デマルチプレクサー(DEMUX)402と、時計回復部403と、ビデオ・デコーダー404と、オーディオ・デコーダー405と、キャプション・デコーダー406と、システム制御部407と、アプリケーション(App)制御部408と、キャッシュ・メモリー408と、アプリケーション・エンジン409と、IPインターフェース(I/F))410と、合成部411を備えている。図示の受信機12は、例えば家庭内に設置されるテレビ受信機やセット・トップ・ボックスの他、IPTVやCATVの再送信機を含むものとする。
チューナー・復調部401は、放送信号を選局受信し、復調処理を行なって、TLVストリームを得る。デマルチプレクサー402は、このTLVストリームに対して、デマルチプレクス処理及びデパケット化処理を行なう。本実施形態では、デマルチプレクサー402は、TLVフィルター402-1と、IPフィルター402-2と、UDPフィルター402-3と、MMTフィルター402-4と、SIフィルター402-5を備えている。
TLVフィルター402-1は、TLVストリーム識別情報に基づいて、放送伝送されるTLVパケットをフィルタリングする。IPフィルター402-2は、IPアドレスに基づいて、TLVパケットからIPパケットをフィルタリングするとともに、IPインターフェース410経由で受信したIPパケットのフィルタリングも行なう。また、UDPフィルター402-3は、UDPパケットをフィルタリングする。MMTフィルター402-4は、MMTPヘッダー(後述)内の情報に基づいて、IPパケットからMMTPパケットをフィルタリングして、映像、音声、字幕、並びにアプリケーションの各符号化コンポーネントを乗せたMMTPパケットを、それぞれビデオ・デコーダー404、オーディオ・デコーダー405、キャプション・デコーダー406、アプリケーション・エンジン409に振り分ける。SIフィルター402-5は、シグナリング情報SIをフィルタリングして、システム制御部407及びアプリケーション制御部408にそれぞれ振り分ける。SIフィルター402-5は、MMTストリームからMMT-SIをフィルタリングするMMT-SIフィルターと、TLVストリームからTLV-SIをフィルタリングするTLV-SIフィルターを含むものとする。
時計回復部403は、デマルチプレクサー402内のIPフィルター402-2並びにUDPフィルター402-3でフィルタリングされたNTPパケットに含まれる現在時刻の情報に基づいて、この時刻情報に同期した時刻情報を生成して、各同期メディアをデコードするにビデオ・デコーダー404、オーディオ・デコーダー405、キャプション・デコーダー406にそれぞれ出力する。
ビデオ・デコーダー404は、デマルチプレクサー402で得られる符号化映像信号をデコードして、ベースバンドの映像信号を得る。また、オーディオ・デコーダー405は、デマルチプレクサー402で得られる符号化音声信号をデコードして、ベースバンドの音声信号を得る。また、キャプション・デコーダー406は、デマルチプレクサー402で得られる字幕符号化信号をデコードして、字幕の表示信号を得る。
アプリケーション制御部408は、SIフィルター402-5を介して受け取るシグナリング情報に基づいて、データ放送アプリケーションの処理を制御する。例えば、アプリケーション制御部408は、MMT-SIを解析して、デフォルト・エントリーに設定されているデータ放送アプリケーションを見つけると、アプリケーション・エンジン409に対してデータ放送の提示処理を指示する。
本実施形態に係る放送システム10では、放送信号並びにIPネットワークの2系統からデータ放送アプリケーションが伝送されることを想定している。前者の系統ではチューナー・復調部401で受信し、後者の系統ではIPインターフェース410で受信し、いずれもデマルチプレクサー402内でパケット化されたMMTパケットがMMTフィルター402-4によってアプリケーション・エンジン409に振り分けられる。
アプリケーション・エンジン409は、例えばHTMLブラウザーなどであり、データ放送アプリケーションのエンティティーであるファイル・データ(HTML5文書など)の処理を行なって、データ放送の表示信号を生成する。また、アプリケーション・エンジン409は、データ放送の表示に必要なファイル・データ(データ放送の表示に使用するモノメディアや、リンク先のアプリケーションなど)をIPインターフェース410経由でIPネットワークから取得することもできる。
システム制御部410は、SIフィルター402-5を介して受け取るシグナリング情報や、ユーザー操作部(図示しない)を介したユーザーからの操作情報などに基づいて、当該受信機12の各部の動作を制御する。また、システム制御部410は、各デコーダー404~406におけるデコード・タイミングをシグナリング情報に基づいて制御し、映像、音声、及び字幕の提示タイミングを調整する。合成部411は、ベースバンドの映像信号に、字幕の表示信号及びデータ放送の表示信号を合成して、映像表示用の映像信号を得る。また、オーディオ・デコーダー405で得られるベースバンドの音声信号は、音声出力用の音声信号となる。映像信号及び音声信号からなる放送番組本編は、図示しないモニター・ディスプレイから映像及び音声出力される。また、データ放送アプリケーション・エンジン409が処理したデータ放送も、モニター・ディスプレイ上で放送番組本編の画面に重畳して表示される。
IPインターフェース410は、例えばネットワーク・インターフェース・カードで構成され、インターネットやホーム・ネットワークなどのIPネットワークに接続して、IPパケットの送受信処理を行なう。
また、本実施形態では、IPフィルター402-2でIPアドレスに基づいてフィルタリングしたIPパケットを、IPインターフェース410からIPネットワークへ送信若しくは再送信することも想定される。また、放送サービスをIPアドレスだけでフィルタリングできることが判明すると、デマルチプレクサー402内のIPフィルター402-2だけで特定サービスを抽出して、受信機12から外部へ転送することができる。
図4に示した受信機12の動作について説明しておく。
チューナー・復調部401では、放送信号が受信され、復調処理が行なわれて、TLVストリームが得られる。デマルチプレクサー402では、このTLVストリームに対して、デマルチプレクス処理及びデパケット化処理を行なわれ、NTP時刻情報、映像、音声、字幕、データ放送の各符号化信号、並びに、シグナリング情報が抽出され、ビデオ・デコーダー404、オーディオ・デコーダー405、キャプション・デコーダー406、アプリケーション・エンジン409、システム制御部407、アプリケーション制御部408にそれぞれ振り分けられる。また、IPインターフェース410で受信したIPパケットについても同様に、デマルチプレクス処理及びデパケット化処理を行なわれ、各部に振り分けられる。
また、デマルチプレクサー402で抽出されたNTPパケットは、時計回復部403に振り分けられる。時計回復部403では、NTPパケットに載せられた時刻情報に基づいて、この時刻情報に同期した時刻情報が生成される。つまり、時計回復部403では、放送送出システム11側の時計部301で生成された時刻情報に合った時刻情報が生成される。
デマルチプレクサー402で抽出された符号化映像信号は、ビデオ・デコーダー404に送られてデコードされ、ベースバンドの映像信号が得られる。また、デマルチプレクサー402で抽出された字幕符号化信号はキャプション・デコーダー406に送られてデコードされ、字幕の表示信号が得られる。
アプリケーション制御部408では、SIフィルター402-5を介して受け取るシグナリング情報に基づいて、データ放送アプリケーションの処理が制御される。HTMLブラウザーなどからなるアプリケーション・エンジン409では、アプリケーション制御部408からの指示に従って、デマルチプレクサー402で抽出されたデータ放送アプリケーションの符号化信号(HTML5文書)の処理が行なわれ、データ放送の表示信号が得られる。
合成部411では、ベースバンドの映像信号に、字幕の表示信号及びデータ放送の表示信号が合成され、画面表示用の映像信号が得られる。また、デマルチプレクサー402で抽出された符号化音声信号はオーディオ・デコーダー405に送られてデコードされ、音声出力用のベースバンドの音声信号が得られる。そして、映像信号及び音声信号は、図示しないモニター・ディスプレイから映像及び音声出力される。
図1に示したディジタル放送システム10では、放送送出システム11から受信機12へ、MMT方式により放送信号を伝送することを想定している。図5には、MMT方式に従って放送送出システム11から放送伝送路に送出される放送信号500のイメージを示している。
1つのサービス(チャンネル:放送番組)の放送信号は、映像、音声、字幕などの放送番組本編に関わる同期メディアと、放送番組に連動するデータ放送に利用されるファイル・データのような非同期メディアで構成される。これらを符号化したメディア・データは、MPUフォーマットにしてMMTPパケット化され、IPパケットで伝送される。また、メディア・トランスポート方式であるMMTに関わる(放送番組の構成などを示す)シグナリング情報(MMT-SI)も、IPパケットで伝送される。これらのIPパケットは、放送伝送路ではTLVパケットの形式でTLVストリームとして伝送される。IPパケットの多重のためのTLV多重化形式に関わるシグナリング情報(TLV-SI)も、TLVパケットの形式で伝送される。
MMT方式では、1つのチャンネル(放送番組)を構成する同期メディア及び非同期メディアのデータを異なる伝送路の組み合わせで利用することが容易である。図5に示す例では、放送信号500として、映像、音声、字幕、ファイル・データ、シグナリング情報など、データのタイプ毎のアセット501~504が利用されている。各アセットは、それぞれ1つのIPデータ・フローに相当する。ここで言うIPデータ・フローとは、IPヘッダー及びUDPヘッダーの送信元IPアドレス、宛先IPアドレス、IPヘッダーのプロトコル種別、送信元ポート番号、宛先ポート番号の5種類のフィールドの値がすべて同じとなるIPパケットの集合である。なお、図中、字幕データ用の伝送路は便宜上、図示を省略している。また、TLV-SIのストリームについても、図5では省略している。
MMT方式の放送システム11は、放送伝送路でIPパケットを伝送する方式であるが、放送サービス毎(若しくは、放送局毎)に1つのIPアドレスをマッピングするという運用が可能である。このような場合、受信機側では、IPアドレスに基づいて放送信号500をフィルタリングすることで、所望する放送サービス(若しくは、所望する放送局)の各アセット501~504にアクセスすることができる。同じIPアドレス内の各アセット501~504で伝送されるMMTP(MMTプロトコル)パケットは、パケット識別情報(packet_id:PID)で一意に指定することができる。また、異なるIPアドレス上のMMTPパケットは、パケット識別情報と、IPアドレスと、ポート番号の組み合わせにより指定することができる。
1つのチャンネル(放送番組)は、映像、音声、字幕、ファイル・データ(データ放送アプリケーション)などタイプの異なる複数のアセットで構成される「パッケージ」と言うことができる。ここで言う「パッケージ」は、アセットを使って伝送されるメディア・データの論理集合である。また、ここで言う「アセット」は、固有のアセット識別情報(asset_id)に関連付けられる、マルチメディアのプレゼンテーションを構成するために使用されるデータのエンティティーである。なお、アセットはコンポーネントと対応関係がある(映像のアセットは映像コンポーネントに対応し、音声のアセットは音声コンポーネントに対応し、ファイル・データのアセットはファイル・データのコンポーネントに対応する)。
各アセットは、同じアセット識別情報を共有する1又はそれ以上のMPUの集合(論理グループ)で構成される。MPUは、MMT方式における伝送単位となるフォーマットということができる。各MPUは、それぞれのアセットに専用のES(Elementary Stream)すなわちアセット501~503上で伝送される。すなわち、伝送路501では、同じアセット識別情報を持つ映像信号のMPU論理グループからなる符号化映像信号のMMTPパケットが伝送される。同様に、伝送路502では同じアセット識別情報を持つ音声信号のMPU論理グループからなる符号化音声信号のMMTパケットが伝送され、伝送路503では同じアセット識別情報を持つデータ放送アプリケーションのMPU論理グループからなる符号化アプリケーションのMMTパケットが伝送される。各MPUは、アセット識別情報と、該当する伝送路上でのMPUのシーケンス番号で特定される。また、各メディアを伝送するアセットは、アセット識別情報で識別することができる。
付言すれば、1つのパッケージ(放送番組)で、タイプが同じ複数の(すなわち、アセット識別情報が異なる)アセットが伝送されることもある。例えば、同じ放送番組に対して、2以上のデータ放送アプリケーションが提供される場合である。例えば、放送番組に連動する番組連動型データ放送アプリケーションと、放送番組に連動しない番組非連動型データ放送アプリケーション(例えば、天気予報やニュースなど)は、通常、別のアセットとして別々のアセット識別情報が割り振られ、別々のMPU論理グループとして異なるアセットで伝送される。図5では、放送番組連動型データ放送アプリケーションの伝送路503-1と放送番組非連動型データ放送アプリケーションの伝送路503-2を描いている。
また、MMT方式は、放送や通信の複数の伝送路に共通に用いることができる。例えば、データ放送用アプリケーション(HTML5文書など)のような非同期メディアは、図5に示したように放送信号の伝送路503を用いて同期メディアとともに伝送される以外に、IPネットワークなど通信伝送路(図示しない)を介して提供することもできる。
伝送路504では、MMTのパッケージの構成や放送サービスに関連する情報を示す伝送制御信号であるMMT-SIを含んだMMTPパケットが、カルーセル方式により繰り返し伝送される。伝送路504で伝送されるMMT-SIのシグナリング・メッセージとして、PAメッセージ510、M2セクション・メッセージ520、データ伝送メッセージ530を挙げることができる。
例えば、PAメッセージ510は、放送番組の構成などを示す制御情報であり、アセットのリストやその位置などパッケージを構成する情報を記述するMP(MMT Package)テーブル511が含まれている。
PAメッセージ510は、放送サービスのエントリー・ポイントであり、PAメッセージ510を伝送するMMTPパケットには、固定のパケット識別情報(例えば、0x0000)が割り当てられている。したがって、受信機側では、アセット504上で、上記固定のパケット識別情報を指定してPAメッセージ510を取得することができる。そして、PAメッセージ510で伝送されるMPテーブル511を参照して、パッケージ(放送番組)を構成する各アセット(映像、音声、字幕、ファイル・データ(データ放送アプリケーション)など)を指定することができる。
また、M2セクション・メッセージ520は、MPEG-2 Systemsのセクション拡張形式を伝送するメッセージである。MH-AIT(Application Information Table)521などのシグナリング・テーブルがM2セクション・メッセージ520に格納される。MH-AIT521は、アプリケーションに関する動的制御情報及び実行に必要な付加情報を伝送するテーブルであり、具体的には、放送伝送路でデータ・アセットとして送られてくるデータ放送アプリケーション(ファイル・データ)の処理方法(アプリケーションに適用される起動状態など)、並びにロケーション(URL)を指定する。
また、データ伝送メッセージ530は、データ放送アプリケーションの伝送に関する制御情報を放送で伝送するためのメッセージである。1つのデータ伝送メッセージ530内には、データ・ディレクトリー管理テーブル531、データ・アセット管理テーブル532、データ・コンテンツ管理テーブル533の各シグナリング・テーブルが格納される。
データ・ディレクトリー管理テーブル531は、ディレクトリー単位(言い換えれば、データ放送アプリケーションの制作単位)でデータ放送アプリケーションを管理するためのテーブルである。同テーブル内は、1つのパッケージに含まれるディレクトリー並びにディレクトリーに含まれるサブディレクトリーやファイル(ファイルの伝送に用いられるアイテム)に関するディレクトリー構造を記述しているので、アプリケーションのファイル構成とファイル伝送のための構成を分離することができる。
また、データ・アセット管理テーブル532は、アセット単位でデータ放送アプリケーションを管理するためのテーブルであり、アセット内のMPUの構成とのMPU毎のバージョン情報を記述している。
また、データ・コンテンツ管理テーブル533は、提示単位(Presentation Unit:PU)毎にデータ放送アプリケーションを管理するためのテーブルである。同テーブルは、データ放送アプリケーションのファイルの構成情報をデータ放送の提示単位(PU)で記述しており、データ放送アプリケーション用のファイル・データの柔軟で有効なキャッシュ制御に利用することができる。
MMTによるデータ放送アプリケーションの伝送方式において、データ伝送メッセージで伝送する上記3種類のシグナリング・テーブル531~533を活用することにより、ファイル単位の伝送データ構造やコンテンツ(データ放送アプリケーション)制作におけるディレクトリー構造とは独立して、アプリケーション単位、提示単位といった利用単位のデータ構造を表現することができる。したがって、受信機側では、アプリケーション単位、提示単位といった利用単位でキャッシュ制御して、キャッシュ・メモリーを有効活用することが可能になる(例えば、本出願人に既に譲渡されている特願2014-88630号明細書を参照のこと)。
なお、データ・ディレクトリー管理テーブル531、データ・アセット管理テーブル532、データ・コンテンツ管理テーブル533の各シグナリング・テーブルの詳細なデータ構造については説明を省略する。
MMTにおける符号化信号を構成する要素として、MFU(Media Fragment Unit)、MPU、MMTPペイロード、MMTPパケットがある。MMTPペイロードにMMTPヘッダーを付加するとMMTPパケットになる。上述したように、映像、音声、字幕などの同期メディアや、データ放送用のファイル・データのような非同期メディアは、MMTPパケットとして伝送される。
図6には、MMTPパケット600のシンタックス例を示している。MMTPパケットは、MMTプロトコルを用いて伝送されるようにフォーマットされたメディア・データのユニットである。
参照番号601で示すパケット・カウンター・フラグ「C」に1が代入されていると、参照番号602で示すパケット・カウンターのフィールドがこのMMTPパケット600内に存在することが表される。パケット・カウンター602は、パケット識別情報に拘わらず、同一のアセット(IPデータ・フロー)におけるMMTPパケットの順序を示す整数値を書き込む32ビット長のフィールドであり、アセットでMMTPパケットを送信する度に、パケット・カウンター602は1ずつインクリメントされる。パケット・カウンター602は、任意の値から開始する。
参照番号603で示す拡張ヘッダー・フラグ「X」に1が代入されていると、参照番号604で示す拡張ヘッダー604がこのMMTPパケット600内に存在することが表される。図6の下方には、拡張ヘッダー604のシンタックス例を併せて示している。拡張ヘッダー604は、参照番号604-1で示す16ビット長のtypeフィールドと、参照番号604-2で示すlengthフィールドと、参照番号604-3で示すheader_extensin_valueフィールドで構成される。lengthフィールドには、header_extensin_valueフィールドのバイト長が書き込まれる。header_extensin_valueフィールドには、MMTの仕様から外れた拡張情報を書き込むことができる。
参照番号605で示すRAP(Random Access Point)フラグに1が代入されていると、当該MMTPパケット600のペイロードが当該データ・タイプのデータ・ストリームへのRandom Access Pointを含んでいることを表す。
参照番号606で示すtypeフィールドには、当該MMTPパケット600のペイロードのデータ・タイプを表すタイプ値が書き込まれる。タイプ値の定義を以下の表1に示しておく。typeフィールドにタイプ値「0x00」が書き込まれていれば、当該MMTPパケットのペイロードはMPU(メディアを意識したMPUのフラグメントを含む)であることが分かる。
参照番号607で示す、16ビット長のpacket_idフィールドには、ペイロードのデータの種類を識別する(言い換えれば、アセットを区別する)ためのパケット識別情報である整数値が書き込まれる。このフィールドの値は、当該MMTPパケット600が属するアセットを識別するアセット識別情報(asset_id)に由来する。パケット識別情報(packet_id)とアセット識別情報(asset_id)のマッピングは、シグナリング・メッセージの一部であるMMTパッケージ(MP)テーブルで示されている(後述)。
参照番号608で示す、32ビット長のtimestampフィールドには、当該MMTPパケット600の先頭バイトが送信エンティティーから出力される時刻が、RFC5905で規定されている短形式(short-format)のNTPタイムスタンプで記載される。
参照番号609で示す、32ビット長のpacket_sequence_numberフィールドには、同一のパケット識別情報(packet_id)を持つMMTPパケットのシーケンス番号が整数値で記載される。パケット・シーケンス番号は、任意の値から開始する。
図7には、非同期メディアを伝送するMMTPパケットの場合の拡張ヘッダー700のシンタックス例を示している。図示のように、この場合、lengthフィールド701には、header_extensin_valueフィールドのバイト長として4が書き込まれる。header_extensin_valueフィールドには、4バイトのダウンロード識別情報(download_id)が記載される。
MMTプロトコルを使ってMPUを伝送する際、送信側及び受信側ではそれぞれパケット化、デパケット化が必要である。パケット化により、MPUはMMTPペイロードに挿入され、MMTPパケットで伝送される。MMTPペイロードのフォーマットは、大きなペイロードの伝送が可能なように、MMTPペイロードのフラグメンテーションを許容する。また、MTPペイロードのフォーマットは、小さなデータ・ユニットに対応して、複数のMMTPペイロードを単一のMMTPペイロードに挿入するアグリゲーションも許容する。受信側では、デパケット化して、元のMPUデータを復元する。
図8には、MPUモードの場合のMMTPペイロード800のシンタックス例を示している。MPUモードは、MMTPヘッダーのtypeフィールド606に「0x00」が書き込まれている場合である(図6を参照のこと)。MPUモードのMMTPパケットは、映像、音声、ファイル・データ(データ放送アプリケーション)の伝送に使用される。
参照番号801で示すフラグメント・タイプ(MPU Fragment Type:FT)フィールドには、当該MMTPペイロードに格納する情報のフラグメントのタイプが4ビットの値で示される。MMTPペイロードは、FT値に従って符号化される。FT値の定義を以下の表2に示しておく。
参照番号802で示すTimed(T)は、時間データ・フラグであり、当該MMTPペイロードが格納するデータが提示時間を指定するデータか否かを示す。この時間データ・フラグに1が記入されているときには、同期メディアを伝送するMPUのフラグメントがMMTPペイロードに格納されていることを示し、0が記入されているときには、非同期メディアを伝送するMPUのフラグメントがMMTPペイロードに格納されていることを示す。
参照番号803で示すFragmentation Identifier(f_i)フィールドは、当該MMTPペイロードに格納するデータ・ユニットのフラグメンテーションに関する情報を、2ビットで表す。f_iの4つの値の定義を以下の表3に示しておく。
参照番号804で示すaggregation(A)フラグは、当該MMTPペイロードが2つ以上のデータ・ユニットを格納するか否かを示す。当該MMTPペイロードが複数のデータ・ユニットをアグリゲートしたものであるときには、aggregation(A)フラグに1が記入される。
参照番号805で示す、8ビット長のfragment_counter(分割数カウンター)フィールドには、データが分割された場合に、当該MMTPペイロードが格納する部分より後にある分割されたデータの数が記載される。
参照番号806で示すMPUシーケンス番号(MPU_sequence_number)フィールドには、当該MMTPペイロードにMPUメタデータ、ムービー・フラグメント・メタデータ、MFUを格納する場合、それらが属するMPUのシーケンス番号が記載される。
参照番号807示す、16ビット長のDU_lengthフィールドには、当該フィールドに続くデータ・ユニット(DU:Data Unit)の長さが記載される。但し、上述したaggregation(A)フラグ804が0のときは、DU_lengthフィールド807は存在しない。
参照番号808で示すDU_Headerは、データ・ユニットのヘッダーである。但し、FT値801が0又は1のとき(言い換えれば、MFUでないとき)には、DU_Header807は存在しない。MFUは、同期メディアのサンプル若しくはサブサンプル、又は、非同期メディアのアイテムを含んでいる。
図9には、同期メディアを配置したMMTPペイロード800に格納されるDU_Headerのシンタックス例900を示している。参照番号901で示す、ムービー・フラグメント・シーケンス番号(movie_fragment_sequence_number)フィールドには、当該MFUが属するムービー・フラグメントのシーケンス番号が記載される。参照番号902で示す、サンプル番号(sample_number)フィールドには、当該MFUのサンプル番号が記載される。参照番号903で示す、MFUオフセット(offset)フィールドには、当該MFUが属するサンプルにおける、MFUのオフセットがバイト単位で示される。参照番号904で示す、MFU優先度(priority)フィールドには、当該MFUが属するMPUにおける、MFUの相対的な重要度を示す値が記載される。参照番号905で示す、MFU依存度(dep_counter)フィールドには、当該MFUを復号処理しないと復号処理を行なうことができないMFUの数が示される。
図10には、非同期メディアを配置したMMTPペイロード800に格納されるDU_Headerのシンタックス例1000を示している。この場合のDU_Header1000には、当該MFUの一部として伝送されるアイテムを識別する、32ビット長のアイテム識別情報(item_id)が格納される。アイテムは、HTML文書や、HTML文書から参照されるモノメディア(画像やテキストなど)といった、アプリケーションを構成するファイル・データの伝送に用いられる。アセット識別情報で指定されたアセット上では、上述したMMTPパケットのヘッダー内のパケット識別情報(packet_id)及び拡張ヘッダー内のダウンロード識別情報(download_id)と、DUヘッダー内のアイテム識別情報(item_id)の組み合わせで、アイテムを一意に特定することができる。
図11には、アセット(IPデータ・フロー)上で伝送するパケットの構成方法を図解している。同図では、非同期メディアのデータを伝送する際のパケット構成例を示している。
MMTにおける符号化信号を構成する要素として、MFU、MPU、MMTPペイロード、MMTPパケットがある。MPUは、MMT方式における伝送の単位であり、MFUは、MPUよりも小さな単位である。映像信号や音声信号の伝送においては、MPUは処理の単位でもあり、MPUは1つ以上のアクセス・ユニットを含み、MPU単体で映像や音声の復号処理を行なうことができる単位となる。
他方、非同期メディアすなわちデータ放送アプリケーションの伝送においては、1つのMFUはデータ放送アプリケーションで利用される1つのファイル(HTML文書やモノメディアなど)に相当し、MPUは複数のファイルのグループで伝送の単位を構成する。
図11(A)には、3つのファイルF1、F2、F3のグループで1つのMPUが構成され、さらに別の3つのファイルF4、F5、F6のグループで他のMPUが構成されている。このようにファイルのグループで構成される各MPUには、それぞれMPUシーケンス番号が割り振られる。ファイルF1、F2、F3のグループにはMPUシーケンス番号「A」が割り振られ、ファイルF4、F5、F6のグループにはMPUシーケンス番号「B」が割り振られるとする。
また、図11(B)及び(C)には、MPUにグループ化された各ファイルF1、F2、…をそれぞれMFUに配置した様子を示している。ファイル・データF1は、ファイル・サイズが大きくないので、そのまま1つのDUペイロードとなる。一方、ファイル・データF2は、ファイル・サイズが大きいので、F2-1とF2-2の2つに分割(フラグメント化)され、それぞれが別のDUペイロードとなる。そして、各DUペイロードに、図10に示したようにアイテム識別情報(item_id)を格納したDUヘッダーを付加することによって、それぞれMFUとなる。
図11(D)には、各MFUをMMTPペイロード化した様子を示している。図8に示したしたように、MFUを配置したDUペイロードにフラグメント・タイプ(MPU Fragment Type:FT)フィールド、時間データ(T)フラグ、Fragmentation Identifier(f_i)フィールド、fragment_counterフィールド(但し、フラグメント化したMFUの場合)、MPUシーケンス番号などからなるMMTPペイロード・ヘッダーを付加することによって、MFUがMMTPペイロード化される。
F1、F2-1、F2-2の各MFUには、FT値として「MPU」であることを示す値「2」が記載され、時間データ(T)フラグには非同期メディアであることを示す値「0」がセットされる。F1はフラグメント化されていないので、f_iフィールドには「0」が記載される。また、F2-1並びにD2-2はフラグメント化されたMFUなのでf_i=「1」とし、それぞれにfragment_counterが付加される。また、F1、F2-1、F2-2のいずれも同じMPUに属するので同じMPUシーケンス番号「A」が付加されるとともに、ファイルの伝送に用いられるアイテムを一意に識別するアイテム識別情報(item_id)が記載される。
図11(E)には、各MMTPペイロードにMMTPヘッダー並びに拡張ヘッダーを付加してMMTPパケット化した様子を示している。図6に示したように、MMTPヘッダーは、typeフィールド、パケット識別情報(packet_id)を含む。また、図7に示したように、非同期メディアを伝送するMMTPパケットの場合には、拡張ヘッダーにはダウンロード識別子情報(dowmload_id)が格納される。なお、MMTPペイロードは1つのMMTPパケットで伝送される。1つのMMTPパケットが複数のMMTPペイロードを乗せることや、1つのMMTPペイロードが複数のMMTPパケットにまたがって伝送されることはない。
図11(F)には、MMTPパケットをIPパケット化した様子を示している。図示のように、MMTPパケットにUDPヘッダー及びIPヘッダーを付加してIPパケット化される。MMTPパケットは、1つのIPパケットで伝送される。1つのIPパケットが複数のMMTPペイロードを乗せることや、1つのMMTPペイロードが複数のIPパケットにまたがって伝送されることはない。
MMT方式に基づくデータ放送アプリケーションのデータ伝送では、図11からも分かるように、ファイルはMFUという伝送単位に位置付けら、また、MPUはMFUの上位レイヤーでファイルをグループ化した単位である。
映像信号や音声信号などの同期メディアでは、MPUが処理の単位であり、MPU単体で映像や音声の復号処理を行なうことができる単位となる。そして、MFUは、MPUよりも小さな単位であり、MPUのうちサンプル・データからMFUを取り出すことができる。これに対し、非同期メディアすなわちデータ放送アプリケーションの伝送では、MFUはファイルを伝送する単位として明確に位置付けられる一方、その上位レイヤーであるMPUの位置付けは本出願時点に明確でない。
そこで、本明細書では、データ放送アプリケーションの伝送単位としてのMPUをデータ放送アプリケーションの提示単位(PU)に位置付ける技術や、MPUをディレクトリーといったデータ放送アプリケーションの制作単位に位置付ける技術について開示する。MPUをデータ放送アプリケーションの提示単位又はデータ放送アプリケーションの制作単位に位置付けることによって、放送サービスを効率的に運用することができる。
ここで、本明細書で開示する技術を適用した放送システムを運用する上で関連する、MMT-SIとして伝送される各シグナリング・メッセージ並びにシグナリング・テーブル(図5を参照のこと)の構成について説明しておく。
MMT-SIとして伝送されるメッセージやテーブルのパケット識別情報は、固定されているものや、他のテーブルから間接指定されるものがある。このうち、PAメッセージは、放送サービスのエントリー・ポイントであり、固定のパケット識別情報(例えば、0x0000)が割り当てられている。PAメッセージで伝送されるMPテーブルでは、パッケージ(放送番組)を構成する各アセット(映像、音声、字幕、ファイル・データ(データ放送アプリケーション)など)を指定している。したがって、図12に示すように、MPテーブルを参照して、パッケージ(放送番組)を構成する各アセット(映像、音声、字幕、ファイル・データ(データ放送アプリケーション)など)を指定することができる。
図13には、PAメッセージ1301と、PAメッセージ1301に含まれるMPテーブル1302のシンタックス例を示している。また、図14には、PAメッセージのシンタックス例1400を示し、図15には、PAメッセージに含まれるパラメーターの説明を示している。
message_idは、各種シグナリング情報において、PAメッセージを識別する16ビットの固定値である。versionは、PAメッセージのバージョンを示す、8ビットの整数値のパラメーターである。例えばPAメッセージを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、当該PAメッセージのサイズをバイト単位で示す、32ビット長のパラメーターである。
extensionフィールドには、ペイロード(message_payload)のフィールドに配置されるテーブルの属性情報が配置される。具体的には、number_of_tablesフィールドにテーブルの数を示し、続くテーブルのテーブル情報のループでは、格納する各テーブルの属性情報として、8ビットのテーブル識別情報(table_id)と、8ビットのテーブル・バージョン(table_version)と、16ビットのテーブル長(table_length)が配置される。table_idは、テーブルを識別する固定値である。table_versionは、テーブルのバージョンを示す。table_lengthは、テーブルのサイズをバイト単位で示す。
PAメッセージのmessage_payloadフィールドには、MPテーブルが配置される。MPテーブルは、すべてのアセットのリストを含むパッケージに関連する情報を格納する。なお、MPテーブルの他にも、LC(Layoput Configuration)テーブルやPL(Package List)テーブルもPAメッセージに格納されるが、これらは本明細書で開示する技術に直接関連しないので、詳細な説明は省略する。
図16には、PAメッセージのmessage_payloadフィールドに格納される、MPテーブルのシンタックス例1600を示している。また、図17には、MPテーブルに含まれるパラメーターの説明を示している。以下、MPテーブルの構成について説明する。
table_idは、当該テーブルがMPテーブルであることを識別する8ビットの固定値(0x20)である。versionは、MPテーブルのバージョンを示す8ビットの整数値である。例えば、MPテーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、MPテーブルのサイズをバイト単位で示す、32ビット長のパラメーターである。また、MPT_modeは、このMPテーブルがサブセットに分割されているときの動作を示すが、詳細な説明は省略する。
MMT_package_id_lengthは、パッケージ識別情報(MMT_package_id)のテキスト情報のサイズをバイト単位で示す。続くパッケージ識別情報のループでは、MMT_package_idをバイト単位(MMT_package_id_byte)でパッケージ識別情報を示す。パッケージ識別情報は、放送信号(IPデータ・フロー)で伝送されるすべての信号(映像、音声、字幕)、並びにファイル・データなどのアセットをコンポーネントとして構成されるパッケージの識別情報である。この識別情報は、テキスト情報であり、上位16ビットはサービスを識別するためのサービス識別情報と同じ値とする。
MPT_descriptor_lengthは、MPテーブル記述子領域のサイズをバイト単位で示す。続くMPテーブル記述子のループでは、MPテーブル記述子の内容をバイト単位(MPT_descriptors_byte)で記述する。MPテーブル記述子のフィールドは、パッケージ全体に関わる記述子の格納領域である。
number_of_assetsは、パッケージを構成する要素としてのアセット(信号、ファイル)の数を示す、8ビットのパラメーターである。number_of_assetの数分だけ、アセット情報のループが配置される。1つのアセット情報のループ内には、個々のアセットを識別するアセット識別情報(asset_id)と、一般ロケーション情報(MMT_general_location_info)と、アセット記述子(asset_descriptor)の各パラメーターが配置される。アセット情報のループ内に配置される情報について、以下に説明する。
identifier_typeは、MMTPパケット・フローのID体系を示す。アセット識別情報(asset_id)を示すID体系であれば0x00とする。asset_id_schemeは、アセット識別情報の形式を示す。asset__id_lengthは、アセット識別情報のテキスト情報のサイズをバイト単位で示す。続くアセット識別情報のループでは、アセット識別情報をバイト単位(asset_id_byte)で示す。
asset_typeは、アセットの種類を32ビット長の文字列で示す。asset_clock_relation_flagは、アセットのクロック情報フィールドの有無を示すフラグである。当該フラグが1のときは、クロック情報識別フィールド(asset_clock_relation_id)とタイムスケール・フラグ・フィールド(asset_timescale_flag)が存在し、0のときはこれらのフィールドは存在しない。location_countは、アセットのロケーション情報の数を示し、続くlocation_countの数だけ繰り返されるロケーション情報のループでは、該当するアセットのロケーション情報であるMMT_general_location_infoが示される。アセットのロケーション情報は、アセットの取得先となるアセット上のパケット識別情報(packet_id:PID)の形式で記述される。したがって、MPテーブル上でアセット識別情報を引いて、アセット上(IPデータ・フロー)の該当するパケット識別情報を取り出すことができる(図13を参照のこと)。MMT_general_location_infoのデータ構造については、後述に譲る。
asset__descriptor_lengthは、アセット記述子(asset_descriptor)のテキスト情報のサイズをバイト単位で示す。続くアセット記述子のループでは、アセット毎の記述子の内容をバイト単位(asset_descriptors_byte)で示す。
アセットはコンポーネントと対応関係があることは既に述べた(映像のアセットは映像コンポーネントに対応し、音声のアセットは音声コンポーネントに対応し、ファイル・データのアセットはファイル・データのコンポーネントに対応する)。本実施形態では、アセット記述子の1つとして、MHストリーム識別記述子を配置するものとする。MHストリーム識別記述子は、(アセットに対応する)コンポーネントのストリームを識別するラベルであるコンポーネント・タグを記載する記述子である。したがって、MPテーブルでコンポーネント・タグを指定することで、パケット識別情報(packet_id:PID)などアセットのロケーション情報を見つけることができる。
図18には、MMT_general_location_info(一般ロケーション情報)のデータ構造例1800を示している。
location_typeは、ロケーション情報の種類を8ビットで示し、以下の表4の割り当てに従う。
location_typeが0x00のときは、当該ロケーション情報を含むテーブルが伝送されるIPデータ・フローと同一のIPデータ・フローのMMTPパケットのパケット識別情報(packet_id)を示す。
location_typeが0x01のときは、ロケーション情報として、IPv4データ・フローのMMTPパケットを示す。具体的には、IPv4データ・フローの送信元アドレス(ipv4_src_addr)と、IPv4データ・フローの宛先アドレス(ipv4_dst_addr)と、IPデータ・フローの宛先ポート番号(dst_port)と、パケット識別情報(packet_id)を示す。
location_typeが0x02のときは、ロケーション情報として、IPv6データ・フローのMMTPパケットを示す。具体的には、IPv6データ・フローの送信元アドレス(ipv6_src_addr)と、IPv6データ・フローの宛先アドレス(ipv6_dst_addr)と、IPデータ・フローの宛先ポート番号(dst_port)と、パケット識別情報(packet_id)を示す。
location_typeが0x03のときは、ロケーション情報として、MPEG-2 TSの放送ネットワークのMPEG-2 TSパケットを示す。具体的には、放送ネットワークを識別するためのネットワーク識別情報(network_id)と、MPEG-2 TSを識別するためのトランスポート・ストリーム識別情報(MPEG_2_transport_stream_id)と、MPEG-2 TSパケットのパケット識別情報(MPEG_2_PID)を示す。
location_typeが0x04のときは、ロケーション情報として、IPv6データ・フローのMPEG-2 TSパケットを示す。具体的には、IPv6データ・フローの送信元アドレス(ipv6_src_addr)と、IPv6データ・フローの宛先アドレス(ipv6_dst_addr)と、IPデータ・フローの宛先ポート番号(dst_port)と、MPEG-2 TSパケットのパケット識別情報(MPEG_2_PID)を示す。
location_typeが0x05のときは、 URLでロケーション情報を示す。具体的には、URL_lengthは、URLバイト・フィールドの長さをバイト単位で示し、続くURLバイトのループでは、URL文字列をバイト単位(URL_byte)で示す。
図18に示した一般ロケーション情報では、アセットのロケーション情報は、アセットの取得先となるデータ・フロー上のパケット識別情報(PID)の形式で記述される。したがって、MPテーブル上でアセット識別情報を引いて、IPデータ・フロー上の該当するパケット識別情報を取り出すことができる(図13を参照のこと)。
M2セクション・メッセージは、MPEG-2 Systemのセクション拡張形式をそのまま伝送するために用いるシグナリング・メッセージである。図19には、M2セクション・メッセージのシンタックス例1900を示している。以下、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(最終セクション番号)は、テーブルを構成する最後のセクション番号を書き込む領域である。そして、続くシグナリング・データのループで、テーブルを構成する情報がバイト単位(signaling_data_byte)で記述される。そして、当該メッセージの最後に、ITU-T勧告H.222.0に従う巡回冗長符号CRC32(CRC)が付加される。
図20には、M2セクション・メッセージで伝送されるMH AI(Application Information)テーブル(MH AIT)のシンタックス例2000を示している。以下、MH AIテーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)は、各種シグナリング情報においてアプリケーション情報(AI)テーブルであることを識別する8ビットの固定値であり、本実施形態では0x89とする。section_syntax_indicator(セクション・シンタクス指示)は、1ビットのフィールドで、常に「1」とする。sectoin_length(セクション長)は、12ビットのフィールドで、セクション長フィールドからCRC32を含むセクションの最後までのセクションのバイト長を規定する。この値は4093(16進数で0xEFD)を超えないものとする。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(記述領域内記述子)が書き込まれる。この共通記述子領域内のdescriptorは、AITサブテーブル内のすべてのアプリケーションに適用される。例えば、アプリケーションの伝送方法や取得場所を指定する伝送プロトコル記述子がこのdescriptorフィールドに書き込まれる。
application_loop_lengthは、このMH AIテーブルに含まれるアプリケーション情報の数を書き込む領域である。そして、application_loop_lengthが示す数分だけ、アプリケーション情報のループが配置される。そして、当該テーブルの最後に、ITU-T勧告H.222.0に従う巡回冗長符号CRC32(CRC)が付加される。
1つのアプリケーション情報のループ内には、application_identifier(アプリケーション識別子)と、application_control_code(アプリケーション制御コード)と、アプリケーション情報が配置される。
ここで、application_identifier(アプリケーション識別子)は、アプリケーションを識別するパラメーターである。application_control_code(アプリケーション制御コード)は、8ビットのフィールドで、アプリケーションの状態を制御する制御コードを規定する。このフィールドのセマンティックスは、アプリケーション形式の値に依存する。アプリケーション形式に依存しない場合のアプリケーション制御コードのセマンティックスを表5に示しておく。また、application_descriptor_loop_length(アプリケーション情報記述子ループ長)はアプリケーション情報記述子のバイト長を示し、このバイト数分のループからなる一連の領域にdescriptor(アプリケーション情報記述子)が書き込まれる。この記述子領域内のアプリケーション情報記述子は、共通記述子とは相違し、application_identifierで指定したアプリケーションのみに適用される。
要するに、MH AIテーブルは、MMT伝送方式によって放送伝送路で送られてくるアプリケーション(ファイル・データ)の処理方法や、伝送方法(transport_protocol)、ロケーション(URL)を指定するテーブルである。受信機は、M2セクション・メッセージで送られてくるMH AIテーブルを受信すると、application_control_codeで指定された処理を実行するために、伝送プロトコル記述子で指定されたロケーションから指定されたtransport_protocolでアプリケーションを取得する。
図21には、MH AIテーブルのアプリケーション情報のループ内にアプリケーション毎に必ず1つ配置される、アプリケーション情報記述子のシンタックス例2100を示している。以下、アプリケーション情報記述子2100の各パラメーターの意味について説明する。
descriptor_tagは、当該記述子2000を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子2100のデータのバイト長を書き込む領域である。
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は、伝送プロトコル記述子の同名のフィールドに対応する。
図22には、伝送プロトコル記述子のシンタックス例2200を示している。伝送プロトコル記述子は、アプリケーションの伝送手段として放送や通信などの伝送プロトコルの指定と伝送プロトコルに依存したアプリケーションのロケーション情報を示すことを目的として、MH-AITの共通記述子ループ又はアプリケーション情報記述子のループに配置される。以下、伝送プロトコル記述子の各パラメーターの意味について説明する。
descriptor_tagは、当該記述子2200を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子のデータのバイト長を書き込む、8ビットの領域である。protocol_id(プロトコル識別情報)は、アプリケーションを伝送するプロトコルを示す。値としては、0x0003はHTTP並びにHTTPS伝送、0x0005はMMT並びに非同期伝送を規定する。transport_protocol_label(伝送プロトコル・ラベル)は、1つのアプリケーションを複数の経路で伝送する場合にその伝送手段を一意に識別する値であり、アプリケーション情報記述子の同名のフィールドに対応する。selector_byte(セレクター・バイト)には、application_identifier領域であり、プロトコル識別情報毎にシンタックスが規定される。
図23には、HTTP/HTTPS、MMT非同期伝送に共通のセレクター・バイトのシンタックス例2300を示している。
URL_base_lengthはアプリケーションを取得するためのURLのベース部のバイト長を示し、このバイト数分のループからなる一連の領域にプリケーションを取得するためのURLのベース部の文字列がバイト単位(URL_base_byte)で書き込まれる。
URL_extension_countは、アプリケーションを取得するためのURLの拡張部分(URL_baseに続くURL_extension)の数を示し、URL_extension_countの数分だけURL_extensionのループが配置される。そして、1つのURL_extensionのループ内では、URL_extension_lengthはURLの拡張部分のバイト長を示し、このバイト数分のループからなる一連の領域にURLの拡張部分の文字列がバイト単位(URL_extention_byte)で書き込まれる。例えば、URLのベース部が"http://www.xbc.com"で、URLの拡張部が"index.html"であれば、セレクター・バイトから抽出されたこれらの文字列を連結して、完全なURL"http://xbc.com/index.html"を得ることができる。
要するに、MH AIテーブルのアプリケーション情報のループ内のアプリケーション情報記述子並びに伝送プロトコル記述子を参照することで、アプリケーションの伝送手段(MMT伝送か、HTML伝送か)、並びに、ロケーション情報(URL)を取得することができる。
図24には、データ伝送メッセージのシンタックス例2400を示している。以下、データ伝送メッセージの各パラメーターの意味について説明する。
message_id(メッセージ識別)は、各種シグナリング情報において、データ伝送メッセージを識別する16ビットの固定値である。version(バージョン)は、当該データ伝送メッセージのバージョン番号を書き込む領域である。length(メッセージ長)は、このフィールドより後に続く当該メッセージのデータのサイズをバイト単位で示す、32ビットのパラメーターである。
num_of_tables(テーブル数)は、当該データ伝送メッセージに格納するテーブルの数を示す。データ伝送メッセージに格納するテーブルとして、そして、num_of_tablesが示す数分だけ、テーブル情報のループが配置される。
1つのテーブル情報のループ内には、テーブル情報として、table_id(テーブル識別)、table_version(テーブル・バージョン)、並びに、table_length(テーブル長)が格納される。table_id(テーブル識別)は、当該データ伝送メッセージに格納するテーブルの識別のために使用する領域である。データ伝送メッセージで、データ・ディレクトリー管理テーブル、データ・アセット管理テーブル、データ・コンテンツ管理テーブルの3種類のシグナリング・テーブルが伝送されるが(前述並びに図5を参照のこと)、table_idはこれらのうちいずれのテーブルであるかを識別する。table_version(テーブル・バージョン)は、当該データ伝送メッセージに格納するテーブルのバージョンを示す。table_length(テーブル長)は、このデータ伝送メッセージに格納するテーブルの大きさをバイト単位で示す。table(テーブル)は、当該データ伝送メッセージに格納するテーブルを示す。
また、num_of_tablesが示す数分だけ、テーブルのループが配置される。1つのテーブルのループ内には、table_idで識別されるテーブルの中身の情報が格納される。
図25には、データ伝送メッセージで伝送されるデータ・ディレクトリー管理テーブル(DDMT)のシンタックス例2500を示している。データ・ディレクトリー管理テーブルは、ディレクトリー単位(言い換えれば、データ放送アプリケーションの制作単位)でデータ放送アプリケーションを管理するためのテーブルである。同テーブル内は、1つのパッケージに含まれるディレクトリー並びにディレクトリーに含まれるサブディレクトリーやファイルに関するディレクトリー構造を記述している。以下、このデータ・ディレクトリー管理テーブルの各パラメーターの意味について説明する。
table_id(テーブル識別子)には、各種シグナリング情報においてデータ・ディレクトリー管理テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、当該データ・ディレクトリー管理テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えば当該テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、当該データ・ディレクトリー管理テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
base_directory_path_lengthは、ベース・ディレクトリー・ノード・パス領域のバイト長を示し、このバイト数分のループからなる一連の領域にベース・ノード・ディレクトリー・パスがバイト単位(base_directory_path_byte)で書き込まれる。ベース・ディレクトリー・パスは、例えば、対応するディレクトリーへアクセスするための絶対的なURL形式で表記される。
num_of_directory_nodesは、当該データ・ディレクトリー管理テーブルに記載されるディレクトリーのノードの数を示す。そして、num_of_directory_nodesの数分だけディレクトリー・ノードのループが配置され、ディレクトリー毎の情報が格納される。
1つのディレクトリー・ノードのループ内には、当該データ・ディレクトリー管理テーブルに格納される各ディレクトリー・ノードの属性情報と、ディレクトリーに含まれる各ファイル・データの情報が格納される。
node_tagは、ディレクトリー・ノードのノード・タグとしてディレクトリーを識別するラベルを示す。derectory_node_versionは、ディレクトリー・ノードのバージョンを示す。directory_node_path_lengthはディレクトリー・ノード・パス領域のバイト長を示し、このバイト数分のループからなる一連の領域にディレクトリー・ノード・パスがバイト単位(directory_node_path_byte)で書き込まれる。
num_of_filesは、当該ディレクトリーに含まれるファイルの数を示す。そして、num_of_filesの数分だけファイル・ノードのループが配置される。各ファイル・ノードのループ内には、当該ディレクトリーに含まれる各ファイル・データの情報として、node_tagと、ファイル名が格納される。このループ内のnode_tagは、ファイルのノード・タグとしてファイルを識別するラベルを示す。file_name_byteはファイル名領域のバイト長を示し、このバイト数分のループからなる一連の領域にファイル名がバイト単位(file_name_length)で書き込まれる。ここで、ディレクトリー・ノード・パスは、対応するディレクトリーへアクセスするための、ベース・ディレクトリー・パスからの相対的なURL形式で表記される。そして、ベース・ディレクトリー・パス、ディレクトリー・パス、及びファイル名の各文字列を順に連結することにより、該当するファイルにアクセスする完全なURLを得ることができる。例えば、ベース・ディレクトリーパス(URL)が"http://www.xbc.com"で、ディレクトリー・ノード・パス(URL)が"programA"であり、さらにファイル名が"index.html"であれば、データ・ディレクトリー管理テーブルから抽出されたこれらの文字列を連結して、完全なURL"http://www.xbc.com/programA/index.html"を得ることができる。
図26には、データ伝送メッセージで伝送されるデータ・アセット管理テーブル(DAMT)のシンタックス例2600を示している。データ・アセット管理テーブルは、アセット単位でデータ放送アプリケーションを管理するためのテーブルであり、アセット内のMPUの構成とのMPU毎のバージョン情報を記述している。
table_id(テーブル識別)は、各種シグナリング情報においてデータ・アセット管理テーブルであることを示す8ビットの固定値である。version_(バージョン)は、このデータ・アセット管理テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・アセット管理テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・アセット管理テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_data_componentsは、パッケージに含まれるデータ・コンポーネントの数(すなわち、データ放送アプリケーションのアセット数)を示す、8ビットのパラメーターである。例えば、1つのパッケージ(放送番組)で番組連動型データ放送アプリケーションと番組非連動型データ放送アプリケーションの2種類のデータ・コンポーネントが伝送されることが想定される。number_of_data_componentsの数分だけ、以下のデータ・コンポーネント(すなわち、アセット)のループが配置され、データ・コンポーネント毎の情報が格納される。各データ・コンポーネントのループ内には、データ・コンポーネントの属性情報と、データ・コンポーネントに含まれるMPUの情報が書き込まれる。
データ・コンポーネントの属性情報として、transaction_id(トランザクション識別情報)と、component_tagと、download_id(ダウンロード識別情報)が含まれる。transaction_idは、当該データ・コンポーネントのバージョン機能を持つ識別子である。component_tagは、当該データ・コンポーネントのストリームを識別するためのラベルである。component_tagは、MPテーブル内にアセット記述子として配置されるMHストリーム識別記述子内のcomponent_tagと同一の値であるとする。download_idは、データ・コンテンツを一意に識別するためのラベルの役割をする。アプリケーション(非同期メディア)を伝送するMMTPパケットには、必要に応じて拡張ヘッダーにダウンロード識別情報が書き込まれる(図7を参照のこと)。
num_of_mpusは、当該データ・コンポーネントに含まれるMPUの数を示す。そして、num_of_mpusの数分だけ配置されるMPUのループ内には、各MPUの属性情報が格納される。MPU_sequence_numberは、MPUに割り振られるMPUシーケンス番号である。num_of_itemsは、MPUに含まれるアイテムの数(言い換えれば、MPUで伝送されるファイル・データの数)を示す。そして、num_of_itemsの数分だけ配置されるアイテムのループ内には、各アイテムの情報が格納される。
1つのアイテムのループ内には、アイテムの属性情報とアイテムに関する情報が格納される。アイテムの属性情報として、item_id、node_tag、item_size、item_version、item_checksumが格納される。item_idは、ファイル伝送に用いられるアイテムを一意に識別する32ビットの値である。node_tagは、アイテムに対応するノード・タグとしてアイテムを識別する16ビットの値である。シグナリング情報としては、32ビットのitem_idに代えて16ビットのnode_tagを使用することで、データ伝送メッセージ上のアイテムの識別に必要なビット・サイズを削減することができる。item_sizeは、アイテムのサイズをバイト単位で表す。item_versionは、アイテムのバージョンを示し、アイテムの内容が更新される度にversionは+1だけインクリメントされる。item_checksumは、アイテムのチェックサムを示す。なお、チェックサムは、すべてのファイルに対して必ず設定するのは情報量が多いと考えられるので、1ビットのcheck_sum_flagを設定し、これに1が代入された場合にのみ32ビットのitem_check_sumが現れる。checksum_flagはチェックサムの記載があるか否かを示すフラグであり、このフラグが1のときにはitem_checksumが記載される。item_info_lengthは後続のアイテム情報領域のバイト長を示し、このバイト数分のループからなる一連の領域にアイテムに関する情報がバイト単位(item_info_byte)で書き込まれる。
また、MPUのループ内には、各MPUの情報が格納される。具体的には、MPU_info_lengthは後続のMPU情報領域のバイト長を示し、このバイト数分のループからなる一連の領域にMPUに関する情報がバイト単位(item_info_byte)で書き込まれる。
descriptor_loop_lengthは、descriptorの全バイト長を示す。descriptorは、descriptor_loop_lengthの数分のループからなる一連の領域に記述子(descriptor)の情報を格納する。格納される記述子は別途定義する。
図27には、データ伝送メッセージで伝送されるデータ・コンテンツ管理テーブル(DCCT)のシンタックス例2700を示している。データ・コンテンツ管理テーブルは、提示単位(Presentation Unit:PU)毎にデータ放送アプリケーションを管理するためのテーブルである。同テーブルは、データ放送アプリケーションのファイルの構成情報をデータ放送の提示単位(PU)で記述している。
table_id(テーブル識別子)には、各種シグナリング情報においてデータ・コンテンツ管理テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、当該データ・コンテンツ管理テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えば当該テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、当該データ・コンテンツ管理テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_contentsは、パッケージ(放送番組)で伝送されるデータ・コンテンツの数を示す、8ビットのパラメーターである。number_of_contentsの数分だけ、以下のデータ・コンテンツのループが配置され、データ・コンテンツ毎の情報が格納される。
1つのデータ・コンテンツのループ内には、データ・コンテンツに関する情報として、content_idと、content_versionと、content_sizeと、当該データ・コンテンツに含まれるデータ放送提示単位(Presentation Unit:PU)に関する情報が書き込まれる。content_id(コンテンツ識別情報)は、当該データ・コンテンツを一意に識別するラベルである。content_versionは、当該データ・コンテンツのバージョン番号を書き込む領域である。content_sizeは、当該データ・コンテンツのサイズを書き込む領域である。
PU_info_flagは、当該データ・コンテンツ管理テーブルがPUの情報であるか否かを示す。そして、PU_info_flag=1の場合には、number_of_PUsに当該データ・コンテンツに含まれるPUの数が書き込まれ、これに続いて、number_of_PUsの数分だけPUのループが配置される。
1つのPUのループ内には、PUの識別情報であるPU_tagと、PUのサイズを書き込む領域であるPU_sizeと、当該PUを構成するファイル又はディレクトリーのノード指定の数を示すnumber_of_member_nodesが書き込まれる。そして、number_of_member_nodesの数分だけ配置されるノードのループ内では、当該PUを構成するファイル又はディレクトリーのノード・タグが書き込まれる。
また、1つのPUのループ内には、PUの情報が書き込まれる。具体的には、PU_info_lengthにPU情報のバイト長を示し、このバイト数分のループからなる一連の領域にPUの情報がバイト単位(PU_info_byte)で書き込まれる。
一方、PU_info_flag=0、すなわち、当該データ・コンテンツ管理テーブルがPUの情報でない場合には、当該データ・コンテンツを構成するファイル又はディレクトリーの情報が書き込まれる。具体的には、当該データ・コンテンツを構成するファイル又はディレクトリーのノード指定の数を示すnumber_of_nodesが書き込まれる。そして、number_of_nodesの数分だけ配置されるノードのループ内で、当該データ・コンテンツを構成するファイル又はディレクトリーのノード・タグが書き込まれる。
図28には、同一のIPデータ・フローに多重されたデータ放送アプリケーションのアイテムを取得する仕組みを図解している。
データ放送アプリケーションを構成するファイルは、HTML5などのアプリケーション記述内でパス名を指定される。ここで言うパス名は、ディレクトリー・ノード名とファイル名の組み合わせで記述される。また、ディレクトリー・ノードとファイルを統合した記述子としてノード・タグを規定し、各シグナリング・テーブルをリンクする情報として使用する。
受信機は、M2セクション・メッセージで伝送されるMH-AIT内のアプリケーション情報ループを参照して、起動すべきアプリケーション(例えば、アプリケーション制御コードで自動起動(autostart)が指定されたアプリケーション)を検知することができる。また、受信機は、MH-AITに配置されている伝送プロトコル記述子(後述)から、データ放送アプリケーションのロケーション情報すなわちパス名を取得することができる。参照番号2801で示すように、データ伝送メッセージ内のデータ・ディレクトリー管理テーブルから、指定されたパス名のファイルのノード・タグを得ることができる。
次いで、参照番号2802で示すように、同じくデータ伝送メッセージ内のデータ・アセット管理テーブルから、データ・ディレクトリー管理テーブルで得られたノード・タグを持つアイテムが伝送されるアセットのコンポーネント・タグ、ダウンロード識別情報、MPUシーケンス番号、及びアイテム識別情報を得ることができる。
さらに、参照番号2803で示すように、MPテーブルから、データ・アセット管理テーブルで得られたコンポーネント・タグを持つアセットのロケーション情報を取得すると、参照番号2804で示すように、該当するファイルが実際に伝送されるデータ・アセットを特定することができる。
そして、特定されたデータ・アセット内で、データ・アセット管理テーブルから得られたダウンロード識別情報とアイテムを伝送するMMTPパケットのヘッダー領域に記載されたダウンロード識別情報とにより、カルーセルに対応するファイルの繰り返し伝送の単位を一意に識別することができる。参照番号2805で示すように、繰り返し伝送されるアイテムのうち、データ・アセット管理テーブルから得られたMPUシーケンス番号及びアイテム識別情報を持つアイテムを所望のファイルとして指定することができる。ノード・タグはデータ伝送メッセージ内で、MPUシーケンス番号はアセット(IPデータ・フロー)内で、アイテム識別情報はサービス事業者内で、それぞれ一意であるものとする。
図29には、MMT伝送されるデータ放送アプリケーション(コンテンツ)の伝送、コンテンツのディレクトリー構造と、アプリケーションの提示を行なう仕組みを図解している。
図29(A)には、コンテンツのディレクトリー構造を示している。各コンテンツcontent1、2、…は、アプリケーション(app)とマテリアルのファイル・データで構成される。アプリケーションやマテリアルは、それぞれファイル・データが実体である。各ファイル・データは、データ・アセット上ではアセットの構成要素であるアイテムを用いて伝送され、各アイテムはアイテム識別情報(item_id)で識別することができる。図29(C)に示すように、各ファイルは、該当するデータ・アセット上でアイテムとして伝送される。アプリケーションは、コンテンツの実行時(アプリケーションの提示時)において参照される1以上のHTML文書からなる。また、マテリアルは、HTML文書から参照されるモノメディア(画像菜テキストなど)である。1つのHTML文書と、そこから参照されるマテリアルで、データ放送アプリケーションの提示単位PUを構成する。図29(A)に示す例では、content1のディレクトリー下のサブディレクトリー「app」には、A11.html、A12.html、A13.htmlなどの1以上のHTML形式のアプリケーションが含まれている。このうち、A11.htmlは、コンテンツの実行時に直接参照されるリソースとする。また、content1のディレクトリー下のサブディレクトリー「material」には、A11.html、A12.htmlの各文書から参照されるモノメディアB11.jpg、B12.jpg、B13.jpgが含まれている。
図29(B)には、コンテンツの実行時(アプリケーションの提示時)におけるアプリケーション間の参照関係を示している。図示の例では、参照番号2901で示す提示単位PUは、コンテンツの実行時に直接参照されるアプリケーションA11とこれが参照するマテリアルB11、B02で構成され、PU_tagとしてp1が割り当てられている。また、参照場号2902で示す提示単位PUは、アプリケーションA12とこれが参照するマテリアルB12、B02、B13で構成され、PU_tagとしてp2が割り当てられている。また、参照番号2903で示す提示単位PUは、アプリケーションA01とこれが参照するマテリアルB03、B01、B04で構成され、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つの提示単位PU2901、2902、2903を形成している。そして、リンク関係を持つ提示単位2901、2902、2903同士で、さらに上位のリンク・グループ2910を構成する。
さらに、同じコンテンツ識別情報(content_id)を持つ提示単位の範囲で、データ・コンテンツというより大きなグループを構成する。データ・コンテンツは、一般に、1つの放送番組の連携するアプリケーション・データ全体に相当する。図29(B)に示す例では、content1とcommonに含まれるアプリケーション及びマテリアルの各ファイルで、コンテンツ識別情報c1が割り振られたデータ・コンテンツ2920を形成している。データ・コンテンツ管理テーブルで、コンテンツ識別情報に対応するデータ・コンテンツのループ内で、PUのループを探索することによって、当該データ・コンテンツに含まれるすべての提示単位PUを一括して特定することができる。
図29(C)には、データ放送アプリケーションをMMT伝送する様子を模式的に示している。MMT伝送では、パッケージに含まれる各コンポーネントは1つのアセットとして扱われ、それぞれアセット識別情報(asset_id)が割り当てられる。図示の例では、各アセットにそれぞれアセット識別情報としてa1、a2が割り当てられている。また、コンテンツの構成要素である各ファイル・データは、データ・アセット上ではアセットの構成要素であるアイテムに相当する。すなわち、HTML文書やマテリアル(画像やテキストなど)といった個々のファイル・データは、基本的には1つのアイテムを用いて伝送され、各アイテムにはアイテム識別情報(item_id)が割り当てられる。図示の例では、ディレクトリーcontent1に含まれる各ファイル・データの伝送に用いられる各アイテムには、それぞれアイテム識別情報としてi11、i12、i13、i14が割り当てられている。同じコンポーネントに含まれるアイテムは、同じアセット識別情報を共有し、同じデータ・アセット上で伝送される。図示の例では、アイテム識別情報がi11、i12、i13、i14の各アイテムは、同じアセット識別情報a1を共有し、同じデータ・アセットとして伝送される。
第1の実施例では、データ放送アプリケーションの伝送単位としてのMPUを、データ放送アプリケーションの提示単位PUに位置付けることによって、放送サービスを効率的に運用する。
図30には、MMT伝送されるデータ放送アプリケーション(コンテンツ)の伝送とアプリケーションの提示単位の対応関係(但し、MPUがPUに位置付けられる場合)を図解している。
図30(A)には、コンテンツの実行時(アプリケーションの提示時)におけるアプリケーション間の参照関係を示している。図示の例では、参照番号3001で示す提示単位PUは、コンテンツの実行時に直接参照されるアプリケーションA11とこれが参照するマテリアルB11、B02で構成され、PU_tagとしてp1が割り当てられている。また、参照場号3002で示す提示単位PUは、アプリケーションA11から参照されるアプリケーションA12と、アプリケーションA12が参照するマテリアルB12、B02、B13で構成され、PU_tagとしてp2が割り当てられている。また、参照番号3003で示す提示単位PUは、アプリケーションA11から参照されるアプリケーションA01と、アプリケーションA01が参照するマテリアルB03、B01、B04で構成され、PU_tagとしてp3が割り当てられている。また、参照番号3004で示す提示単位PUは、アプリケーションA01から参照されるアプリケーションA02と、アプリケーションA02が参照するマテリアルB05、B06で構成される。また、アプリケーションA02から参照されるアプリケーションA03は、マテリアルB08を参照している。
また、リンク関係を持つ提示単位3001、3002、3003同士で、さらに上位のリンク・グループ3010を構成する。さらに、同じコンテンツ識別情報(content_id)を持つ提示単位の範囲で、データ・コンテンツというより大きなグループを構成する。図30(A)に示す例では、content1とcommonに含まれるアプリケーションで、コンテンツ識別情報c1が割り振られたデータ・コンテンツ3020を形成している。
また、図30(B)には、図30(A)に示したようなリンク関係を持つデータ放送アプリケーションをMMT伝送する様子を模式的に示している。コンテンツの構成要素である各ファイル・データは、MMTにおける符号化信号を構成する要素であるMFUで伝送される。また、各MFUは、アセットの構成要素であるアイテムに相当し、それぞれにアイテム識別情報が割り振られているものとする。また、MMT伝送では、パッケージに含まれる各コンポーネントは1つのアセットとして扱われ、それぞれアセット識別情報(asset_id)が割り当てられる。そして、各MPUには、コンポーネント内(同じデータ・アセット上)でMPUを一意に識別するMPUシーケンス番号が割り振られる。MPUを構成する各MFUにつけられるMMTPペイロード・ヘッダーには、同じMPUシーケンス番号が記載される。
本実施例では、データ放送アプリケーションの提示単位PUを構成するファイル・データに対応するMFUのグループ毎に、データ放送アプリケーションの伝送単位としてのMPUを構成する。図30(A)に示す例では、PU_tagがp1の提示単位3001を構成するファイルA11、B11、B02の各々に対応するMFUのグループで、1つのMPUを構成している。そして、図30(B)で示すように、PU_tagがp1の提示単位3001に位置付けられたMPUは、アセット識別情報a1で識別されるデータ・アセットで伝送される。
同様に、図30(A)に示す例で、PU_tagがp3の提示単位3003を構成するファイルA01、B01、B03、B04の各々に対応するMFUのグループで、他の1つのMPUを構成している。そして、図30(B)で示すように、PU_tagがp3の提示単位3001に位置付けられたMPUは、アセット識別情報a2で識別されるデータ・アセットで伝送される。
第1の実施例では、データ放送アプリケーションの各提示単位PUに対応するデータ放送アプリケーションの伝送単位MPUを、例えばデータ・コンテンツ管理テーブルを使って指定することができる。
データ・コンテンツ管理テーブル自体の構成については、図27を参照しながら既に説明した。データ・コンテンツ管理テーブルには、データ・コンテンツを構成する提示単位PU毎に、PUの情報を格納することができる。具体的には、PU_info_lengthにPU情報のバイト長を示し、このバイト数分のループからなる一連の領域にPUの情報がバイト単位(PU_info_byte)で書き込まれる。本実施例では、このPU_info_byteを利用して、PUからMPUへのマッピング記述子(PU_MPU_mapping_descriptor)を配置する。
図31には、提示単位PUから伝送単位としてのMPUへのマッピング記述子(PU_MPU_mapping_descriptor)のシンタックス例3100を示している。
descriptor_tagは、当該記述子3100を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子3100のデータのバイト長を書き込む領域である。そして、MPU_sequence_numberには、当該PUに対応するMPUに割り振られるMPUシーケンス番号が記載される。この場合、上記記述子を配置する代わりにPU_info_lengthの直前に配置するnumber_of_member_nodes数分のnode_tagの記述を例えばnumber_of_member_nodes=0として省くことが考えられる。何故ならば、データ・アセット管理テーブル内のMPUのループで同様の情報が伝送されるからである。これによりデータ・コンテンツ管理テーブルの記述を削減することが可能となる。
図32には、データ・アセットからデータ放送アプリケーションを取得する際の、シグナリング情報として伝送される各シグナリング・テーブルの参照関係(但し、MPUがPUに位置付けられる場合)を図解している。但し、データ・コンテンツ管理テーブルは図31に示したシンタックス例に従うものとする。
受信機12は、M2セクション・メッセージで、MH-AIテーブル(MH AIT)3201を取得すると、application_control_codeを参照して、アプリケーションの状態がどのように制御されているかを確認する。そして、"autostart"(アプリケーションの起動)が指示されている場合には、当該テーブル3201内のtransport_protocol_labelを参照して、MMT伝送が指定されていることを確認すると、このアプリケーションの提示時に直接参照されるアイテム(ファイル・データ)のURL情報を伝送プロトコル記述子から取り出す。そして、受信機12は、データ伝送メッセージで送られてくるデータ・ディレクトリー管理テーブル(DDMT)3202を参照して、そのbase_URL、directory_URL、及びitem_URLのすべての文字列が一致するアイテムのnode_tagを取得する。
次いで、受信機12は、データ伝送メッセージで送られてくるデータ・アセット管理テーブル(DAMT)3203を参照して、各データ・コンポーネントのループ内のMPUのループに含まれるアイテムのループから、データ・ディレクトリー管理テーブル3202で取得したnode_tagを持つアイテムを見つけて、そのアイテムを伝送するMPUを一意に識別するMPUシーケンス番号と、そのアイテムが属するアセット(コンポーネント)のコンポーネント・タグ(component_tag)やダウンロード識別情報(download_id)といったアセットの属性情報を取得する。
さらに、受信機12は、PAメッセージで送られてくるMPテーブル(MPT)3204を参照して、データ・アセット管理テーブル3203で取得したコンポーネント・タグと同一の値を持つMHストリーム識別記述子を見つけ出すと、同記述子からアセット(コンポーネント)に対応するパケット識別情報(packet_id)を取得する。
そして、受信機12は、MPテーブル3204で取得したパケット識別情報をMMTPヘッダーに含み、データ・アセット管理テーブル3203で取得したダウンロード識別情報とMPUシーケンス番号とアイテム識別情報をそれぞれMMTPヘッダーの拡張ヘッダー、MMTPペイロード・ヘッダー、並びにDUヘッダーに含むパケットを、データ・アセット(IPデータ・フロー)上でフィルタリングして、"autostart"(アプリケーションの起動)が指示されたアプリケーションのファイル・データを伝送するMFUを抽出することができる。
また、受信機12は、データ伝送メッセージで送られてくるデータ・コンテンツ管理テーブル(DCCT)3205を参照して、データ・アセット管理テーブル3203で取得したMPUシーケンス番号が記載されたPUからMPUへのマッピング記述子を持つ提示単位PUがあるかどうかをチェックする。該当する記述子が見つかった場合には、そのMPUは提示単位PUに対応付けられていることが分かるので、その提示単位の画面を表示するには、同じMPUシーケンス番号を持つMFU(アイテム)をすべて取得すればよいことが分かる。
また、上述した第1の実施例の変形例として、データ放送アプリケーションの各伝送単位MPUに対応するデータ放送アプリケーションの提示単位PUを、例えばデータ・アセット管理テーブルを使って指定することができる。
データ・アセット管理テーブル自体の構成については、図28を参照しながら既に説明した。データ・アセット管理テーブルには、データ・コンポーネントを構成するMPU毎に、MPUの情報を格納することができる。具体的には、MPU_info_lengthは後続のMPU情報領域のバイト長を示し、このバイト数分のループからなる一連の領域にMPUに関する情報がバイト単位(item_info_byte)で書き込まれる。本実施例では、このMPU_info_byteを利用して、MPUに対応するPUについてのPU情報記述子(PU_info_descriptor)、並びに、そのPUから参照されるPUについてのリンク先PU情報記述子(Linked_PU_descriptor)という2種類の記述子を配置する。
図33には、PU情報記述子(PU_info_descriptor)並びにリンク先PU情報記述子(Linked_PU_descriptor)のシンタックス例3301、3302を示している。
PU情報記述子3301のdescriptor_tagは、当該PU情報記述子3301を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子3301のデータのバイト長を書き込む領域である。そして、PU_tagには、当該MPUに対応する提示単位PUを識別するPU_tagが示される。
また、Linked_PU情報記述子3302のdescriptor_tagは、当該PU情報記述子3302を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子3302のデータのバイト長を書き込む領域である。num_of_linked_PUは、当該MPUに対応する提示単位PUと参照関係にある提示単位(Linked_PU)の個数を示す。そして、num_of_linked_PUの数分のループで当該PUと参照関係にある各提示単位PUを識別するタグ(linked_PU_tag)が示される。
すべてのMPUではなく、一部のMPUのみをデータ放送アプリケーションの提示単位PUに対応付けるという放送サービスの運用も可能である。但し、すべてのMPUを提示単位PUに位置付けるという前提であれば、データ・アセット管理テーブルがデータ・コンテンツ管理テーブルとしての役割を兼ね備えることが可能となり、データ伝送メッセージでデータ・コンテンツ管理テーブルの伝送を完全に省略することができる。
図34には、データ・アセットからデータ放送アプリケーションを取得する際の、シグナリング情報として伝送される各シグナリング・テーブルの参照関係(但し、MPUがPUに位置付けられる場合)を図解している。但し、データ・アセット管理テーブルは図33に示したシンタックス例に従うものとする。
受信機12は、M2セクション・メッセージで、MH-AIテーブル(MH AIT)3401を取得すると、application_control_codeを参照して、アプリケーションの状態がどのように制御されているかを確認する。そして、"autostart"(アプリケーションの起動)が指示されている場合には、当該テーブル3401内のtransport_protocol_labelを参照して、MMT伝送が指定されていることを確認すると、このアプリケーションの提示時に直接参照されるアイテム(ファイル・データ)のURL情報を伝送プロトコル記述子から取り出す。そして、受信機12は、データ伝送メッセージで送られてくるデータ・ディレクトリー管理テーブル(DDMT)3402を参照して、そのbase_URL、directory_URL、及びitem_URLのすべての文字列が一致するアイテムのnode_tagを取得する。
次いで、受信機12は、データ伝送メッセージで送られてくるデータ・アセット管理テーブル(DAMT)3403を参照して、各データ・コンポーネントのループ内のMPUのループに含まれるアイテムのループから、データ・ディレクトリー管理テーブル3402で取得したnode_tagを持つアイテムを見つけて、そのアイテムを伝送するMPUを一意に識別するMPUシーケンス番号と、そのアイテムが属するアセット(コンポーネント)のコンポーネント・タグ(component_tag)やダウンロード識別情報(download_id)といったアセットの属性情報を取得する。
さらに、受信機12は、PAメッセージで送られてくるMPテーブル(MPT)3204を参照して、データ・アセット管理テーブル3403で取得したコンポーネント・タグと同一の値を持つMHストリーム識別記述子を見つけ出すと、同記述子からアセット(コンポーネント)に対応するパケット識別情報(packet_id)を取得する。
そして、受信機12は、MPテーブル3404で取得したパケット識別情報をMMTPヘッダーに含み、データ・アセット管理テーブル3403で取得したダウンロード識別情報とMPUシーケンス番号とアイテム識別情報をそれぞれMMTPヘッダーの拡張ヘッダー、MMTPペイロード・ヘッダー、並びにDUヘッダーに含むパケットを、データ・アセット(IPデータ・フロー)上でフィルタリングして、"autostart"(アプリケーションの起動)が指示されたアプリケーションのファイル・データを伝送するMFUを抽出することができる。
また、受信機12は、データ・アセット管理テーブル3403内の該当するMPUのループ内のLinked_PU情報記述子を参照して、当該MPUに対応する提示単位PUとリンク参照関係にある提示単位PUを特定すると、同様に各リンク先提示単位PUに対応付けられたMPUシーケンス番号を取得して、上記と同様の手順によりリンク先提示単位のアイテムを先読みすることができる(但し、すべてのMPUを提示単位PUに位置付けることを前提とする)。
実施例2では、データ放送アプリケーションの伝送単位としてのMPUを、ディレクトリーといったデータ放送アプリケーションの制作単位に位置付けることによって、放送サービスを効率的に運用する。
図35には、MMT伝送されるデータ放送アプリケーション(コンテンツ)の伝送と、コンテンツのディレクトリー構造との対応関係(但し、MPUがディレクトリー構造に位置付けられる場合)を図解している。
図35(A)には、コンテンツのディレクトリー構造を示している。各コンテンツcontent1、2、…は、アプリケーション(app)とマテリアルのファイル・データで構成される。アプリケーションやマテリアルは、それぞれファイル・データが実体である。各ファイル・データは、データ・アセット上ではアセットの構成要素であるアイテムを用いて伝送され、各アイテムはアイテム識別情報(item_id)で識別することができる。
また、図35(B)には、データ放送アプリケーションをMMT伝送する様子を模式的に示している。ディレクトリー構造の最小単位である各ファイル・データは、MMTにおける符号化信号を構成する要素であるMFUを用いて伝送される。また、各MFUは、アセットの構成要素であるアイテムに相当し、それぞれにアイテム識別情報が割り振られているものとする。また、MMT伝送では、パッケージに含まれる各コンポーネントは1つのアセットとして扱われ、それぞれアセット識別情報(asset_id)が割り当てられる。そして、各MPUには、コンポーネント内(同じデータ・アセット上)でMPUを一意に識別するMPUシーケンス番号が割り振られる。MPUを構成する各MFUにつけられるMMTPペイロード・ヘッダーには、同じMPUシーケンス番号が記載される。図示の例では、各アセットにそれぞれアセット識別情報としてa1、a2が割り当てられている。また、コンテンツの構成要素である各ファイル・データは、データ・アセット上ではアセットの構成要素であるアイテムとして、MMTにおける符号化信号を構成する要素としてのMFUを用いて伝送される。
本実施例では、各データ・コンテンツに含まれるアプリケーションやマテリアルといったディレクトリーを構成するファイル・データに対応するMFUのグループ毎に、データ放送アプリケーションの伝送単位としてのMPUを構成する。図35(A)に示す例では、データ・コンテンツContent1のアプリケーションのディレクトリーを構成するファイルA11、A12、A13の各々に対応するMFUのグループで1つのMPUを構成している。そして、図35(B)で示すように、ファイルA11、A12、A13の各々に対応するMFUのグループからなるMPUは、アセット識別情報a1で識別されるデータ・アセットで伝送される。
同様に、図35(A)に示す例では、データ・コンテンツContent2のアプリケーションのディレクトリーを構成するファイルA21、A22に対応するMFUのグループで1つのMPUを構成するとともに、マテリアルのディレクトリーを構成するファイルB21、B22、B23に対応するMFUのグループで1つのMPUを構成している。そして、図35(B)で示すように、Content2に含まれる各ディレクトリーに対応するMPUは、アセット識別情報a2で識別されるデータ・アセットで伝送される。
第2の実施例では、データ放送アプリケーションの各伝送単位MPUに対応するファイルの集合(ディレクトリー)を、例えばデータ・アセット管理テーブルを使って指定することができる。
データ・アセット管理テーブル自体の構成については、図28を参照しながら既に説明した。データ・アセット管理テーブルには、データ・コンポーネントを構成するMPU毎に、MPUの情報を格納することができる。具体的には、MPU_info_lengthは後続のMPU情報領域のバイト長を示し、このバイト数分のループからなる一連の領域にMPUに関する情報がバイト単位(item_info_byte)で書き込まれる。本実施例では、このMPU_info_byteを利用して、MPUに対応するノード(ノードは、ファイルの集合であるディレクトリー、又はファイルのいずれかに相当する)を示すMPUノード記述子(MPU_node_descriptor)を配置する。
図36には、MPUノード記述子(MPU_node_descriptor)のシンタックス例3600を示している。
descriptor_tagは、当該記述子3600を識別する、8ビットの整数値である。descriptor_lengthは、このフィールドより後に続く当該記述子3600のデータのバイト長を書き込む領域である。そして、node_tagには、当該MPUに対応するノード(ディレクトリー)を識別するノード・タグが示される。
図37には、データ・アセットからデータ放送アプリケーションを取得する際の、シグナリング情報として伝送される各シグナリング・テーブルの参照関係(但し、MPUがディレクトリー構造に位置付けられる場合)を図解している。但し、データ・アセット管理テーブルは図36に示したシンタックス例に従うものとする。
受信機12は、M2セクション・メッセージで、MH-AIテーブル(MH AIT)3701を取得すると、application_control_codeを参照して、アプリケーションの状態がどのように制御されているかを確認する。そして、"autostart"(アプリケーションの起動)が指示されている場合には、当該テーブル3701内のtransport_protocol_labelを参照して、MMT伝送が指定されていることを確認すると、このアプリケーションの提示時に直接参照されるアイテム(ファイル・データ)のURL情報を伝送プロトコル記述子から取り出す。そして、受信機12は、データ伝送メッセージで送られてくるデータ・ディレクトリー管理テーブル(DDMT)3702を参照して、そのbase_URL、directory_URL、及びitem_URLのすべての文字列が一致するアイテムのnode_tagを取得する。
次いで、受信機12は、データ伝送メッセージで送られてくるデータ・アセット管理テーブル(DAMT)3703を参照して、各データ・コンポーネントのループ内のMPUのループに含まれるアイテムのループから、データ・ディレクトリー管理テーブル3702で取得したnode_tagを持つアイテムを見つけて、そのアイテムを伝送するMPUを一意に識別するMPUシーケンス番号と、そのアイテムが属するアセット(コンポーネント)のコンポーネント・タグ(component_tag)やダウンロード識別情報(download_id)といったアセットの属性情報を取得する。
また、受信機12は、データ・ディレクトリー管理テーブル3702の該当するディレクトリー・ノードのループで示されているディレクトリーのノード・タグと同じ値を、データ・アセット管理テーブル3703のMPUのループで探索して、当該ディレクトリーに対応するMPUのMPUシーケンス番号を取得することができる。
さらに、受信機12は、PAメッセージで送られてくるMPテーブル(MPT)3704を参照して、データ・アセット管理テーブル3703で取得したコンポーネント・タグと同一の値を持つMHストリーム識別記述子を見つけ出すと、同記述子からアセット(コンポーネント)に対応するパケット識別情報(packet_id)を取得する。
そして、受信機12は、MPテーブル3704で取得したパケット識別情報をMMTPヘッダーに含み、データ・アセット管理テーブル3703で取得したダウンロード識別情報とMPUシーケンス番号とアイテム識別情報をそれぞれMMTPヘッダーの拡張ヘッダー、MMTPペイロード・ヘッダー、並びにDUヘッダーに含むパケットを、データ・アセット(IPデータ・フロー)上でフィルタリングして、"autostart"(アプリケーションの起動)が指示されたアプリケーションのファイル・データを伝送するMFUを抽出することができる。
また、受信機12は、データ・ディレクトリー管理テーブル3702の該当するディレクトリー・ノードのループで示されているディレクトリーのノード・タグと同じ値を持つMPUノード記述子(MPU_node_descriptor)を、データ・アセット管理テーブル3703のMPUのループ内で探索することによって、当該ディレクトリーに対応付けられているMPUを特定することができる。
また、受信機12は、データ・ディレクトリー管理テーブル3702から、該当するアイテムが属するディレクトリーのノード・タグを取得すると、そのノード・タグに対応する提示単位PUをデータ・コンテンツ管理テーブル3705内のPUのループから見つけることができる。
このように、本明細書で開示する技術によれば、データ放送アプリケーションの伝送単位(MPU)を、データ放送アプリケーションの提示単位又はデータ放送アプリケーションの制作単位に位置付けることによって、放送サービスを効率的に運用することができる。