以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
図1には、本明細書で開示する技術を適用したディジタル放送システム10の構成例を模式的に示している。図示のディジタル放送システム10は、放送送出システム11と、受信機12で構成される。
放送送出システム11は、伝送メディアを含むIP(Internet Protocol)方式の放送信号を送信する。放送信号の伝送ディアには、タイムド・メディアと、ファイルのようなノンタイムド・メディアの両方が含まれる。タイムド・メディアは、例えば、ビデオやオーディオ、字幕などのストリーム・データである。また、ノンタイムド・メディアは、例えばHTML(Hyper Text Markup Language)文書のようなアプリケーション(コンテント)のファイル・データである。
一方、受信機12は、放送送出システム11から送られてくる放送信号を受信する。そして、受信機12は、受信した放送信号からビデオやオーディオ、字幕などの伝送メディアを取得して、画像や音声を提示する。
図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を備えている。
チューナー・復調部401は、RF変調信号を受信して、復調処理を行なって、放送ストリームを得る。デマルチプレクサー402は、この放送ストリームに対して、デマルチプレクス処理及びでパケット化処理を行なって、NTP時刻情報、PTS(Presentation Time Stamp:提示時刻情報)、シグナリング情報、ビデオ、オーディオ、キャプションの各符号化信号、ファイル・データ、並びにシグナリング情報を出力する。なお、ファイル・データは、データ放送コンテント(データ放送用アプリケーション)を構成するものである。
システム制御部408は、デマルチプレクサー402で得られるシグナリング情報や、ユーザー操作部(図示しない)を介したユーザーからの操作情報などに基づいて、当該受信機12の各部の動作を制御する。時計部403は、デマルチプレクサー402で得られるNTP時刻情報に基づいて、この時刻情報に同期した時刻情報を生成する。
ビデオ・デコーダー404は、デマルチプレクサー402で得られる符号化ビデオ信号をデコードして、ベースバンドのビデオ信号を得る。また、オーディオ・デコーダー405は、デマルチプレクサー402で得られる符号化オーディオ信号をデコードして、ベースバンドのオーディ信号を得る。また、キャプション・デコーダー406は、デマルチプレクサー402で得られる符号化字幕信号をデコードして、字幕の表示信号を得る。
データ放送アプリケーション・エンジン407は、ファイル・データとして伝送されてくるデータ放送アプリケーションの処理部である。すなわち、データ放送アプリケーション・エンジン407は、デマルチプレクサー402で得られるファイル・データを処理して、データ放送の表示信号を得る。データ放送アプリケーションは、例えばHTML形式で記述されるファイル・データ(HTML文書データ)である。本明細書では、データ放送アプリケーションを、「アプリケーション」又は「コンテント」とも呼ぶ。
なお、放送ストリームでは、同一コンテントのファイル・データが繰り返し送られてくる。システム制御部408は、デマルチプレクサー402におけるフィルタリング動作を制御して、繰り返し送られてくるファイル・データ群の中からデマルチプレクサー402において必要なもののみがデータ放送アプリケーション・エンジン407で取得されるようにする。
本実施形態では、システム制御部408は、PAメッセージ、M2セクション・メッセージ、データ・トランスミッション・メッセージの各々に含まれるシグナリング・テーブルを参照して、データ放送を提示するために必要なアクセス範囲を特定し、データ放送アプリケーション・エンジン407でキャッシュ可能なファイル・データを事前に取得するためのフィルタリング動作を制御する。ファイル・データの事前キャッシュの詳細については後述に譲る。
また、システム制御部408は、各デコーダー404〜406におけるデコード・タイミングをPTSに基づいて制御し、ビデオ、オーディオ、字幕の提示タイミングを調整する。合成部409は、ベースバンドのビデオ信号に、字幕の表示信号及びデータ放送の表示信号を合成し、映像表示用のビデオ信号を得る。また、オーディオ・デコーダー405で得られるベースバンドのオーディオ信号は、音声出力用のオーディオ信号となる。
図4に示した受信機12の動作について説明しておく。
チューナー・復調部401では、RF変調信号が受信され、復調処理が行なわれて、放送ストリームが得られる。デマルチプレクサー402では、この放送ストリームに対して、デマルチプレクス処理及びデパケット化処理を行なわれ、NTP時刻情報、PTS、シグナリング情報、ビデオ、オーディオ、キャプションの各符号化信号、並びに、ファイル・データが抽出される。
デマルチプレクサー402で抽出されたNTP時刻情報は、時計部403に送られる。時計部403では、NTP時刻情報に基づいて、この時刻情報に同期した時刻情報が生成される。つまり、時計部403では、放送送出システム11側の時計部301で生成された時刻情報に合った時刻情報が生成される。
デマルチプレクサー402で抽出された符号化ビデオ信号は、ビデオ・デコーダー404に送られてデコードされ、ベースバンドのビデオ信号が得られる。また、デマルチプレクサー402で抽出された符号化字幕信号はキャプション・デコーダー406に送られてデコードされ、字幕の表示信号が得られる。また、デマルチプレクサー402で抽出されたファイル・データはデータ放送アプリケーション・エンジン407に送られて処理され、データ放送の表示信号が得られる。なお、システム制御部408によってデマルチプレクサー402におけるフィルタリング動作が制御されて、必要なファイル・データのみがデマルチプレクサー402で取得されるようにする。
そして、合成部409では、ベースバンドのビデオ信号に、字幕の表示信号及びデータ放送の表示信号が合成され、映像表示用のビデオ信号が得られる。
また、デマルチプレクサー402で抽出された符号化オーディオ信号はオーディオ・デコーダー405に送られてデコードされ、音声出力用のベースバンドのオーディ信号が得られる。
図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に示したように放送の伝送路でタイムド・メディアとともに伝送される以外に、通信の伝送路を介して提供することもできる。
また、伝送路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フィールドには、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_descriptors_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(プロトコル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(テーブル識別)は、このデータ・トランスミッション・メッセージに格納するテーブルの識別のための使用する領域である。データ・トランスミッション・メッセージで、データ・ロケーション・マネジメント・テーブル、データ・アセット・マネジメント・テーブル、データ・コンテント・マネジメント・テーブルの3種類のシグナリング・テーブルが伝送されるが(前述)、table_idはこれらのうちいずれのテーブルであるかを識別する。table_version(テーブル・バージョン)は、このデータ・トランスミッション・メッセージに格納するテーブルのバージョンを示す。table_length(テーブル長)は、このデータ・トランスミッション・メッセージに格納するテーブルの大きさをバイト単位で示す。table(テーブル)は、このデータ・トランスミッション・メッセージに格納するテーブルを示す。
また、num_of_tablesが示す数分だけ、テーブルのループが配置される。1つのテーブルのループ内には、table_idで識別されるテーブルの中身の情報が格納される。
図25には、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブル2500の構成例を示している。データ・アセット・マネジメント・テーブルは、MMTPパケットとして伝送されるファイル・データのアセットの情報と、ファイル・データの各アセットに含まれるアイテムの情報を管理するテーブルである。以下、このデータ・アセット・マネジメント・テーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)は、各種シグナリング情報においてデータ・アセット・マネジメント・テーブルであることを示す8ビットの固定値であり、本実施形態では0xA2とする。version_(バージョン)は、このデータ・アセット・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・アセット・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・アセット・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
number_of_assetは、パッケージに含まれるファイル・データのアセットの数を示す、8ビットのパラメーターである。number_of_assetの数分だけ、以下のAsset loopが配置され、アセット毎のファイル・データの情報が格納される。
1つのAsset loop内には、download_idと、アセット(ファイル・データ)自体に関する情報と、そのアセットに含まれる各アイテムに関する情報が含まれる。download_idは、ノンタイムド・メディア(ファイル・データ)を伝送するMMTPパケットの拡張ヘッダーに書き込まれる識別情報である(図7を参照のこと)。
Asset loop内に格納されるアセット自体に関する情報として、asset_ID_scheme、asser_ID_length、asset_ID_lengthと、asset_ID_byteを含む。asset_ID_schemeは、アセットIDの形式を示す。アセットIDの形式として、例えばUUID(Universal Unique Identifier)、URI(Uniform Resource Identifier)、GURL(General URL)を割り当てることができる。asser_ID_lengthは、アセットIDバイトの長さをバイト単位で表す。asset_ID_byteは、asser_ID_lengthの数分のループからなる一連の領域に、asset_ID_schemeで指定された形式で、アセットIDを示す。ちなみに、この情報は、本実施形態では、MPテーブル、データ・アセットマネジメント・テーブル共通にアセットを識別する情報として用いられるが、データ量が大きいので他の代用可能なアセット識別情報を用いてもよい。例えば、MPテーブルにおいてasset_IDに対応する情報として16ビットのcomponent_tagを定義し、データ・アセット・マネジメント・テーブルにおいてはasset_IDの代わりにcomponent_tagを利用することが想定される。
number_of_itemsは、該当するファイル・データのアセットを構成するアイテムの数を書き込む領域である。そして、number_of_itemsの数分だけアイテムのループが配置され、アセット(ファイル・データ)を構成する各アイテムに関する情報が書き込まれる。
1つのアイテムのループ内には、アイテムに関する情報として、item_ID、item_tag、item_size、item_version、item_checksum、item_infoの各パラメーターが記述される。item_IDは、ノンタイムドMFUで伝送されるアイテムを識別するIDを示す32ビットの値である。item_tagは、同様にアイテムを識別する情報であり、16ビットの値である。シグナリング情報としては、32ビットのitem_IDに代えて16ビットのitem_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の数分のループからなる一連の領域に、当該アイテムに関する情報を格納する。
descriptor_loop_lengthは、descriptorの全バイト長を示す。descriptorは、descriptor_loop_lengthの数分のループからなる一連の領域に記述子(descriptor)の情報を格納する。格納される記述子は別途定義する。
要するに、データ・アセット・マネジメント・テーブル2500は、1つのパッケージに含まれるファイル・データ(コンテント)のアセット並びにアセットに含まれるアイテムに関する情報を管理するテーブルである。アイテムに関する情報として、アイテムのバージョン情報も管理する。データ・アセット・マネジメント・テーブル2500を参照して、item_tag(若しくは、Item_ID)から該当するasset_idやアセットを伝送するMMT拡張ヘッダーに記載されたdownloadIDやitem_infoを引いたり、シグナリング情報の伝送路上で扱うitem_tagからファイル・データの伝送路上のitem_IDやitem_infoを引いたりすることができる。
図26には、データ・トランスミッション・メッセージで伝送されるデータ・ロケーション・マネジメント・テーブル(DLMT)2600の構成例を示している。データ・ロケーション・マネジメント・テーブルは、MMTPパケットとして伝送される各ファイル・データのロケーション情報と、ファイル・データに含まれる各アイテムのロケーション情報を管理するテーブルである。以下、このデータ・ロケーション・マネジメント・テーブルの各パラメーターの意味について説明する。
table_id(テーブル識別)には、各種シグナリング情報においてデータ・ロケーション・マネジメント・テーブルであることを示す8ビットの固定値が書き込まれる。version_(バージョン)は、このデータ・ロケーション・マネジメント・テーブルのバージョンを示す8ビットの整数値のパラメーターである。例えばデータ・ロケーション・マネジメント・テーブルを構成する一部のパラメーターでも更新した場合には、versionは+1だけインクリメントされる。lengthは、このフィールドの直後からカウントされる、このデータ・ロケーション・マネジメント・テーブルのサイズをバイト単位で示す、16ビット長のパラメーターである。
base_URL_lengthは、base_URL_byteの情報領域のサイズをバイト単位で表す。base_URL_byteは、base_URL_lengthの数分のループからなる一連の領域に、ファイル・データの絶対的なURL形式で表記されたロケーション情報を格納する。
number_of_itemsは、ファイル・データに含まれるアイテムの数を書き込む領域である。そして、number_of_itemsの数分だけアイテムのループが配置される。
1つのアイテムのループ内には、ファイル・データに含まれる各アイテムについての、item_tag、item_URI_byteが書き込まれる。item_tagは、ノンタイムドMFUで伝送されるアイテムを識別する情報を、32ビットのitem_ID(前述)よりも短い16ビットで表す。item_URI_byteは、number_of_item_URI_byteの数分のループからなる一連の領域に、ファイル・データのベースとなるロケーション情報すなわちbase_URL_byteに対する相対的なURL形式で表記されたロケーション情報を格納する。例えば、コンテントのbase_URLが“http://www.xbc.com”で、あるアイテムのitem_URLが“index.html”であれば、これらの文字列を連結して、完全なURL“http://xbc.com/index.html”を得ることができる。
要するに、データ・ロケーション・マネジメント・テーブル2600は、1つのパッケージに含まれるファイル・データ(コンテント)並びにファイル・データに含まれるアイテムに関するロケーション情報を管理するテーブルである。データ・ロケーション・マネジメント・テーブル2600を参照して、item_tagからそのアイテムのURLを引いたり、逆にURLから該当するitem_tagを引いたりすることができる。なお、base_URLで示されるロケーション(ディレクトリー)の下にさらに複雑なディレクトリー構造を設定したい場合には、本構成例ではitem_URI_byteの情報量が大きくなり過ぎる可能性がある。これを考慮すると、データ・ロケーション・マネジメント・テーブルにおいて、ファイルが存在するディレクトリーのロケーション情報をnode_URLとして設定すると共に各ディレクトリーをnode_tagとして識別情報を与え、アイテム毎の情報としてはファイル名とnode_tagのみを指定するような構成としてもよい。
また、図27には、データ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブル(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のループ内には、該当するPUに含まれるアイテムの数を示すnumber_of_itemsと、number_of_itemsの数分だけのアイテムのループが配置される。1つのアイテムのループ内には、アイテムのitem_tagが書き込まれる。
また、1つのPUのループ内には、このPUからリンクされる他のPUの数を示すnumber_of_linked_PUと、number_of_linked_PUの数分だけのlinked_PUのループが配置される。1つのlinked_PUのループ内では、linked_PUの識別情報であるlinked_PU_tagが書き込まれる。
要するに、データ・コンテント・マネジメント・テーブル2700は、1つのパッケージで各コンテント(データ放送アプリケーション)をアプリケーション提示単位(PU)で管理するテーブルである。データ・コンテント・マネジメント・テーブル2700を参照して、item_tagから、そのアイテムを含むアプリケーション提示単位PU_tagを取得することができる。なお、本構成例では、データ・コンテント、PU、アイテムという階層構造としたが、キャッシュを利用したアプリケーション以外の一般的なデータ・コンテントを想定した場合には、データ・コンテント、アイテムという2階層にした上で、アイテム毎の情報としてPU_tagを指定できるようにしてもよい。また、データ・コンテント・マネジメント・テーブルを利用しないで、同様の情報をデータ・アセット・マネジメント・テーブルに設定する方法も考えられる。その場合、図25に示すデータ・アセット・マネジメント・テーブルのitem_info()に配置可能な記述子により同等の情報を表現する。具体的には、例えばデータ・マネジメント記述子としてアイテムが属するべき1つ又は複数のcontent_ID及びPU_tagを指定できるようにする。
図28には、MMT伝送されるデータ放送アプリケーション(コンテント)の伝送、コンテントのロケーションと、アプリケーションの提示を行なう仕組みを図解している。
図28(A)には、コンテントのディレクトリー構造を示している。各コンテントcontent1、2、…は、アプリケーション(app)とマテリアルで構成される。アプリケーションやマテリアルは、それぞれファイル・データが実体であるリソースである。各リソースは、MMT伝送路上ではアセットの構成要素であるアイテムに相当し、item_IDで識別することができる。図28(C)に示すように、各リソースは、該当するアセットのMMT伝送路上でアイテムとして伝送される(後述)。アプリケーションは、コンテントの実行時(アプリケーションの提示時)において参照される1以上のHTML文書からなる。また、マテリアルは、HTML文書から参照されるjpeg画像やその他のタイプのモノメディア・データなどである。1つのHTML文書と、そこから参照されるマテリアルで、1つのアプリケーション提示単位PUを構成する。図28(A)に示す例では、content1は、A11.html、A12.html、A13.htmlなどの1以上のHTML文書をアプリケーションのリソースとして持つ。このうち、A11.htmlは、コンテントの実行時に直接参照されるリソースとする。
図28(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文書間でリンク参照関係を持つことができる(周知)。図28(B)に示す例では、リソースA01.htmlは、コンテントの実行時に直接参照され、最初に表示されるアプリケーション提示画面を記述するHTML文書である。これに対し、同じcontent1に含まれリソースA12.htmlと、content1外のcommonに含まれるリソースA01.htmlは、A01.htmlを実行して提示される画面から遷移するアプリケーション提示画面を記述するHTML文書であり、A11.htmlとリンク参照関係を持つ。各リソースA01.html、A12.html、A01.htmlは、それぞれ1つのアプリケーション提示単位PUを構成するリソース・グループ2801、2802、2803を形成する。そして、リンクし合うアプリケーション提示単位2801、2802、2803同士で、さらに上位の大きなリソース・グループ2810を構成する。
また、パッケージ(1つの放送番組)に含まれるアプリケーション全体となるさらにコンテント全体で大きなリソース・グループすなわちデータ・コンテント全体を構成する。データ・コンテント全体とは、共通のcontent_IDを持つアプリケーション提示単位PUの範囲であり、データ・コンテント・マネジメントテーブルで、該当するcontent_IDのPUのループを回すことにより、コンテントに含まれるすべてのアプリケーション提示単位PUを一括して特定することができる。図28(B)に示す例では、content1とcommonに含まれるアプリケーションでコンテント全体のリソース・グループ2820を形成している。
図28(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伝送路上で伝送される。図28(C)に示す例では、Item_IDがi11、i12、i13、i14の各アイテムは、同じAsset_IDとしてa1を共有しており、同じMMT伝送路上で伝送される。前述したデータ・ロケーション・マネジメント・テーブルは図28(A)で表現され、データ・コンテント・マネジメント・テーブルは図28(B)で表現され、データ・アセット・マネジメント・テーブルは図28(C)で表現され、これらの間をitem_IDにより関係付けられることになる。
MMT伝送路からデータ放送アプリケーション(コンテント)を取得する際の、シグナリング情報として伝送される各テーブルの参照関係について、図29を参照しながら説明する。
受信機は、M2セクション・メッセージで、MH−AIテーブル(MH AIT)2901を取得すると、application_control_codeを参照して、アプリケーションの状態がどのように制御されているかを確認する。そして、“autostart”が指示されている場合には、テーブル内のtransport_protocol_labelを参照して、MMT伝送が指定されていることを確認すると、このアプリケーションの提示時に直接参照されるアイテム(ファイル・データ)のURL情報を伝送プロトコル記述子から取り出す。そして、受信機は、データ・トランスミッション・メッセージで送られてくるデータ・ロケーション・マネジメント・テーブル(DLMT)2902を参照して、そのbase_URL及びitem_URLの組み合わせに対応するアイテムのItem_tagを取得することができる。
次いで、受信機は、データ・トランスミッション・メッセージで送られてくるデータ・アセット・マネジメント・テーブル(DAMT)2903を参照して、取得したitem_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に基づいてフィルタリングして、所望する(アプリケーションの提示時に直接参照する)アイテムを取得することができる。
また、受信機は、データ・トランスミッション・メッセージで送られてくるデータ・コンテント・マネジメント・テーブル(DCMT)2905内で、データ・ロケーション・マネジメント・テーブル2902から取得したitem_tagを引いて、該当するアプリケーション提示単位のPU_tagを取り出すことができる。また、このPU_tagのPUのループ内でlinked_PUのループを回すことにより、これにリンクする他のアプリケーション提示単位のPU_tagを一括して取り出すことができる。
トランスポート方式としてMMTを採用するディジタル放送システムにおいて、HMTL文書データのようなアプリケーションをノンタイムド・メディアとして伝送する場合、受信機側で、アプリケーション本体並びに参照されているモノメディア・ファイルを放送(MMT伝送)と通信(HTTP伝送)の両方の経路で取得することが想定される。
受信機において、アプリケーションを実行する場合に迅速な応答を可能とするためには(例えば、リモコンでdボタンが押されてデータ放送を画面に表示する場合や画面を遷移する場合)、あらかじめ必要なリソース(アイテム、ファイル・データ)を受信し、キャッシュしておくことが好ましい。通信で取得可能なファイル・データはほぼ瞬時に取得することができる。一方、放送ストリームではファイル・データは繰り返し送られてくるが、使用可能な帯域が制限されている場合などでは、アプリケーションの実行が指示されてから次にファイル・データが届くまでの時間が長くなり迅速に応答できないおそれがある。このため、放送ストリームで取得するファイル・データに関しては、とりわけ事前にキャッシュしておく必要があると考えられる。
そこで、本明細書で開示する技術では、放送送出システム側からは、アプリケーションを構成するリソース(アイテム)を、放送並びに通信の任意のロケーションから取得可能となるように、アプリケーションにおいてロケーションを示すURLを放送などのMMT伝送路上のロケーションにマッピングする情報と、アプリケーションにおける表示単位とリンク関係を示す情報を伝送するようにしている。
図19〜図23を参照しながら説明したように、MH AIテーブルには、アプリケーションの伝送方法(transport_protocol_label)とロケーションを示すURL情報が記載される。一方、図26などを参照しながら説明したように、データ・ロケーション・マネジメント・テーブルには、アプリケーションにおいてロケーションを示すURLとデータ・トランスミッション・メッセージ上のitem_tagとの対応関係が記述され、図25などを参照しながら説明したように、データ・アセット・マネジメント・テーブルには、item_tagと、そのアイテムを含むアセットのasset_ID、そのアセットのMMT伝送路上のMMTPパケットのdownload_id及びitem_IDとの対応関係が記載され、図16などを参照しながら説明したように、MPテーブルでasset_IDを引くことにより、MMT伝送路上でそのアセットを伝送するパケットのpacket_idを取得することができる。したがって、本実施形態では、放送送出システムは、シグナリング・メッセージで伝送されるMH AIテーブル、データ・ロケーション・マネジメント・テーブル、データ・アセット・マネジメント・テーブル、及びMPテーブルを用いて、アプリケーションにおいてロケーションを示すURLを放送などのMMT伝送路上のロケーションにマッピングする情報を伝送することができる。
また、図27などを参照しながら説明したように、データ・コンテント・マネジメント・テーブルには、パッケージに含まれる各コンテントについて、アプリケーション提示単位の情報を管理する。具体的には、データ・コンテント・マネジメント・テーブルは、コンテントに含まれるアプリケーション提示単位のPU_id、アプリケーション提示単位に含まれるすべてのアイテムのitem_tagと、これにリンクする他のアプリケーション提示単位のPU_id(linked_PU_id)を記載する。また、図25に示したように、データ・アセット・マネジメント・テーブルは、アセットに含まれるすべてのアイテムのサイズ(item_size)をitem_tagと対応付けて管理する。したがって、本実施形態では、放送送出システムは、データ・アセット・マネジメント・テーブルとデータ・コンテント・マネジメント・テーブルを用いて、アプリケーションにおける表示単位とリンク関係を示す情報を伝送することができる。
また、本実施形態では、データ・アセット・マネジメント・テーブルでパッケージ内のアプリケーション(ファイル・データ)のアセット並びにアセットに含まれるアイテムに関する情報を管理し、データ・ロケーション・マネジメント・テーブルでパッケージ内のコンテント並びにコンテントに含まれるアイテムに関するロケーション情報を管理し、データ・コンテント・マネジメント・テーブルによりアプリケーション提示単位でコンテントに含まれるアイテム(リソース)を管理する仕組みを採り入れている。
したがって、本実施形態では、アプリケーションのオーサリング時におけるディレクトリー構成の自由度と、また、アプリケーションを構成する任意のファイルを放送(MMT伝送)と通信(HTTP伝送)の伝送路に切り分ける自由度と、アプリケーション実行時におけるアプリケーション提示単位でリンク関係の自由度を確保するアプリケーション伝送方式を提供することができる。
また、本実施形態では、図28(B)などを参照しながら説明したように、以下の4通りのアクセス範囲(a)〜(b)で、コンテントへのアクセス範囲に関するロケーション情報とサイズを階層的な情報として与えることができる。
(a)アプリケーション実行時に直接参照するリソース(例えば、図28(B)中のA11.html)
(b)同時に表示するアプリケーション提示単位を構成するリソース・グループ(例えば、図28(B)中の参照番号2801、2802、2803、2804で示す各リソース・グループ)
(c)同時に表示するアプリケーション提示単位を構成するリソース・グループと、これにリンクする他のアプリケーション提示単位を含む大きなリソース・グループ(図28(B)中の参照番号2810で示すリソース・グループ)
(d)アプリケーション全体のリソース・グループ(図28(B)中の参照番号2820で示すリソース・グループ)
したがって、受信機側では、シグナリング・メッセージで伝送される上記の各テーブルに基づいて、キャッシュの空き容量に応じたいずれかのアクセス範囲(a)〜(d)と各々のサイズを把握することができ、アプリケーションの効果的な事前キャッシュを行なうことが可能になる。
図30には、受信機内で、データ放送アプリケーション・エンジンが処理するアプリケーションを事前キャッシュする仕組みを模式的に示している。
図4では図示を省略したが、受信機は、放送信号でMMT伝送されるデータ放送アプリケーションのコンテントを事前キャッシュするコンテント・キャッシュ3001を備えている。あるいは、コンテント・キャッシュ3001は、データ放送アプリケーション・エンジン407の内部に配置されていてもよい。
システム制御部408は、デマルチプレクサー402で放送ストリームからデマルチプレクスされたシグナリング・メッセージを解析して、受信機内の動作を制御する。コンテントの事前キャッシュに関しては、システム制御部408は、コンテント・キャッシュ3001の空き容量を把握して、可能な限りより大きなアクセス範囲でファイル・データをキャッシュする。
具体的には、システム制御部408は、M2セクション・メッセージで伝送されるMH AIテーブルで指定されたエントリーのアイテム(ファイル・データ、HTML文書データ)のURLを、データ・トランスミッション・メッセージで伝送されるデータ・ロケーション・マネジメント・テーブルで引いて、参照されたアイテムのitem_tagを取得する。データ・アセット・マネジメント・テーブル及びMPテーブルを用いて、item_tagから該当するMMTPパケットを特定できることは既に述べた通りである。
次いで、システム制御部408は、データ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブルでitem_tagを引いて、参照されたアイテムが属するアプリケーション提示単位PUとそのサイズ(PU_cache_size)を取得し、さらにそのアプリケーション提示単位とリンクする他のアプリケーション提示単位(linked_PU)並びにそのサイズ、アイテムが属すコンテント(content_ID)とそのサイズ(content_cache_size)を取得する。すなわち、システム制御部408は、以下の4通りのアクセス範囲(a)〜(d)に関するサイズを階層的な情報として把握する。
(a)MH AIテーブルで直接参照したアイテム(例えば、図28(B)中のA11.html)
(b)参照したアイテムが属するアプリケーション提示単位(例えば、図28(B)中の参照番号2801)
(c)参照したアイテムが属するアプリケーション提示単位と、これにリンクする他のアプリケーション提示単位(例えば、図28(B)中の参照番号2810)
(d)コンテント(content_IDの範囲)全体(例えば、図28(B)中の参照番号2820)
そして、システム制御部408は、コンテント・キャッシュ3001の空き容量に基づいて、(a)〜(d)のうちいずれのアクセス範囲でアイテムのキャッシュを行なうかを決定する。
システム制御部408は、キャッシュしたいアイテムのitem_tagを、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブルで引いて、そのアイテムが属するアセットのasset_IDを取得し、次いで、asset_IDをPAメッセージで伝送されるMPテーブルで引いて、アセットが伝送されるMMTPパケットのpacket_idを取得する。また、システム制御部408は、データ・アセット・マネジメント・テーブルから、所望するアイテムを伝送するMMTPパケットの拡張ヘッダーに記載されるdownload_idを取得すると、ファイル・データのMMT伝送路上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDに基づいてフィルタリングして、所望するアイテムのエンティティーを取得して、コンテント・キャッシュ3001にキャッシュする。
また、アクセス範囲(b)、すなわち、参照したアイテムが属するアプリケーション提示単位でキャッシュしたいときには、システム制御部408は、データ・コンテント・マネジメント・テーブルでそのアイテムが属するアプリケーション提示単位PUを特定すると、このPU_tagのPUのループ内でitemのループを回すことにより、同じアプリケーション提示単位PUに含まれるすべてのアイテムのitem_tagを一括して取得する。そして、各アイテムのエンティティーを、item_tagを基に上述した手順に従って取得して、逐次コンテント・キャッシュ3001にキャッシュする。
また、アクセス範囲(c)、すなわち、参照したアイテムが属するアプリケーション提示単位と、これにリンクする他のアプリケーション提示単位でキャッシュしたいときには、システム制御部408は、データ・コンテント・マネジメント・テーブルでそのアイテムが属するアプリケーション提示単位PUのループ内で、linked_PUのループを回すことにより、参照したアイテムが属するアプリケーション提示単位にリンクされたすべてのアプリケーション提示単位PUのPU_tagを一括して取得する。そして、上述した手順に従って、各linked_PUに含まれるに含まれるすべてのアイテムのitem_tagを一括して取得する。そして、各アイテムのエンティティーを、item_tagを基に上述した手順に従って取得して、逐次コンテント・キャッシュ3001にキャッシュする。
また、アクセス範囲(d)、すなわち、コンテント(content_IDの範囲)全体でキャッシュしたいときには、システム制御部408は、システム制御部408は、データ・コンテント・マネジメント・テーブルでそのアイテムが属するコンテントのcontent_IDを特定すると、このcontent_idのループ内でPUのループを回すことにより、そのコンテントに含まれるすべてのアプリケーション提示単位PUのPU_tagを一括して取得する。そして、各アイテムのエンティティーを、item_tagを基に上述した手順に従って取得して、逐次コンテント・キャッシュ3001にキャッシュする。
データ放送アプリケーション・エンジン407は、アプリケーションを実行する際、必要なアイテム(ファイル・データ)が既にコンテント・キャッシュ3001に事前にキャッシュされていれば、デマルチプレクサー402で放送ストリームからデマルチプレクスされたファイル・データが届くのを待つことなく、コンテント・キャッシュ3001から取り出して、迅速に応答して、データ放送用表示信号を生成することができる。
一方、必要なアイテムがコンテント・キャッシュ3001内に存在しないときには、データ放送アプリケーション・エンジン407は、放送ストリームからデマルチプレクスされたファイル・データが届くのを待って応答して、データ放送用表示信号を生成する。
図31には、受信機において、放送ストリームからアプリケーションを取得して起動する動作を図解している。
システム制御部408は、MMT伝送路3102上で受信する各種シグナリング・メッセージの内容を解析する。システム制御部408は、M2セクション・メッセージで伝送されるMH AIテーブル3131内のアプリケーション情報のループを回して、各アプリケーションの情報を参照する。
そして、application_control_codeで“prefetch(先読み)”に状態が制御されているアプリケーションを検出すると、システム制御部408は、参照番号3111で示すように、指定されたエントリーのアイテム(ファイル・データ、HTML文書データ)のURLを、データ・トランスミッション・メッセージで伝送されるデータ・ロケーション・マネジメント・テーブル3132で引いて、参照されたアイテムのitem_tagを取得する。
次いで、システム制御部408は、参照番号3112で示すように、データ・トランスミッション・メッセージで伝送されるデータ・コンテント・マネジメント・テーブル3133でitem_tagを引いて、参照されたアイテムが属するアプリケーション提示単位PUを特定すると、そのPUのループ内のアイテムのループを回して、同じアプリケーション提示単位PUに属する各アイテムのitem_tagを逐次取得する。
次いで、システム制御部408は、参照番号3113で示すように、各item_tagをデータ・アセット・マネジメント・テーブル3134で引いて、そのアイテムが属するアセットのasset_IDを取得する。
次いで、システム制御部408は、参照番号3114で示すように、asset_IDをPAメッセージで伝送されるMPテーブル3135で引いて、アセットが伝送されるMMTPパケットのpacket_idを取得する。
そして、システム制御部408は、参照番号3115で示すように、データ・アセット・マネジメント・テーブル3134でitem_tagを引いて、MMT伝送路上のitem_IDと、所望するアイテムを伝送するMMTPパケットの拡張ヘッダーに記載されるdownload_idを取得すると、ファイル・データのMMT伝送路3101上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDに基づいてフィルタリングして、参照番号3116で示すように、所望するアプリケーションのアイテムを取得する。取得したアプリケーションのアイテムは、参照番号3117で示すように、逐次コンテント・キャッシュ3001に事前キャッシュされる。
システム制御部408は、事前キャッシュを行なう際、上述したように、データ放送アプリケーションを実行する際の階層的なファイル・データへのアクセス範囲と、各アクセス範囲におけるファイル・データのロケーション情報及びサイズを取得して、キャッシュの空き容量に応じてアプリケーションを効果的にキャッシュする。
その後、システム制御部408は、参照番号3118で示すように、受信したMH AIテーブル3136の内容を参照して、application_control_codeで“autostart(自動開始)”に状態が制御されているアプリケーションを検出すると、参照番号3119で示すように、データ放送アプリケーション・エンジン407は、そのアプリケーション識別子(application_identifier)で指定されたアプリケーション「A1」を起動する。その際、アプリケーションを構成するファイル・データが事前キャッシュされている場合には、そこからファイル・データをロードして、アプリケーションを迅速に起動することができる。
また、図32には、受信機において、アプリケーション提示画面が遷移する際の動作を図解している。
システム制御部408は、MMT伝送路3202上で受信する各種シグナリング・メッセージの内容を解析する。システム制御部408は、M2セクション・メッセージで伝送されるMH AIテーブル3231内のアプリケーション情報のループを回して、各アプリケーションの情報を参照する。
そして、application_control_codeで“autostart(自動開始)”が指示されているアプリケーションを検出すると、システム制御部408は、参照番号3211で示すように、データ放送アプリケーション・エンジン407に対して、そのアプリケーション識別子(application_identifier)で指定されたアプリケーション「A1」の起動を指示する。なお、ここでは、アプリケーション「A1」のアイテムが全く事前にキャッシュされていないか、又は、エントリーのアイテムのみが事前にキャッシュされていることを想定する。
ここで、参照番号3232で示すように、起動したHTMLアプリケーションが、URL“http://xxx/A2.html”で指定される他のアイテム(リソース)、すなわちHTML文書データ「A2.html」を参照しているとする。
このような場合、システム制御部408は、参照番号3212で示すように、そのURLを、データ・トランスミッション・メッセージで伝送されるデータ・ロケーション・マネジメント・テーブル3233で引いて、参照されたアイテムのitem_tagを取得する。
次いで、システム制御部408は、参照番号3213で示すように、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブル3234でそのitem_tagを引いて、そのアイテム「A2.html」が属するアセットのasset_IDを取得する。
次いで、システム制御部408は、参照番号3214で示すように、asset_IDをPAメッセージで伝送されるMPテーブル3235で引いて、アセットが伝送されるMMTPパケットのpacket_idを取得する。
そして、システム制御部408は、参照番号3215で示すように、データ・アセット・マネジメント・テーブル3234でitem_tagを引いて、MMT伝送路上のitem_IDと、所望するアイテムを伝送するMMTPパケットの拡張ヘッダーに記載されるdownload_idを取得すると、ファイル・データのMMT伝送路3201上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_idと、DUヘッダー内のitem_IDに基づいてフィルタリングして、参照番号3216で示すように、所望するアイテム「A2.html」を取得する。但し、アイテム「A2.html」が事前にキャッシュされている場合には、MMT伝送路3201から受信する必要はない。そして、データ放送アプリケーション・エンジン407は、アプリケーション「A2.html」を実行し、その結果、提示される文書の画面が遷移する。
その後、システム制御部408は、参照番号3217で示すように、受信したMH AIテーブル3236の内容を参照して、エントリーのアイテム「A1」についてapplication_control_codeで“kill(終了)”が指示されていることを検出すると、参照番号3218で示すように、データ放送アプリケーション・エンジン407に対してアプリケーションの終了を指示する。
また、図33には、受信機において、アプリケーションのファイル・データが更新された際の動作を図解している。
システム制御部408は、MMT伝送路3302上で受信する各種シグナリング・メッセージの内容を解析する。システム制御部408は、M2セクション・メッセージで伝送されるMH AIテーブル3331内のアプリケーション情報のループを回して、各アプリケーションの情報を参照する。
そして、application_control_codeで“autostart(自動開始)”が指示されているアプリケーションを検出すると、システム制御部408は、参照番号3311で示すように、データ放送アプリケーション・エンジン407に対して、そのアプリケーション識別子(application_identifier)で指定されたアプリケーション「A1」の起動を指示する。
その後、システム制御部408は、参照番号3312で示すように、データ・トランスミッション・メッセージで伝送されるデータ・アセット・マネジメント・テーブル3332を参照して、上述と同様の手順に従って、参照番号3313で示すように、ファイル・データのMMT伝送路3301上で、MMTPパケットのヘッダー内のpacket_idと、拡張ヘッダー内のdownload_id(=N)と、DUヘッダー内のitem_IDに基づいてフィルタリングして、参照番号3313で示すように、該当するMMTPパケット3333を取得する。このMMTPパケット3333で伝送されるアイテムを実行する処理については説明を省略する。
データ・アセット・マネジメント・テーブル3332では、アイテムのバージョン情報としてitem_version=Kを示しており、システム制御部408は、このアイテムのバージョン情報を管理する。
システム制御部408は、参照番号3314で示すように、さらにその後に受信したデータ・トランスミッション・メッセージのデータ・アセット・マネジメント・テーブル3334を参照して、同じitem_idのitem_versionがKからK+1に更新されていることを検出すると、参照番号3315で示すように、データ放送アプリケーション・エンジン407に対してファイル更新イベントを通知する。
また、システム制御部408は、参照番号3316で示すように、ファイル・データのMMT伝送路3301上で、MMTPパケットのヘッダー内のpacket_idと、更新されたdownload_id(=N+1)と、DUヘッダー内のitem_IDに基づいてフィルタリングして、参照番号3317で示すように、バージョンがK+1に更新されたアイテムを伝送するMMTPパケット3335を取得する。そして、参照番号3318で示すように、取得したアイテムは、アプリケーションのリソースとして、データ放送アプリケーション・エンジン407に渡され、文書の画面が遷移する。
上述したように、本明細書で開示する技術を適用した放送システムでは、アプリケーションを構成するリソース(アイテム)を放送・通信の任意のロケーションから取得可能とするために、アプリケーションにおいてロケーションを示すURLを放送などのMMT伝送路上のロケーションにマッピングする情報、アプリケーションにおける表示単位とリンク関係を示す情報を伝送することができる。
また、本明細書で開示する技術は、アプリケーションのオーサリング時のディレクトリー構成の自由度、アプリケーションを構成する任意のファイルを放送と通信の伝送路に切り分ける自由度、これらとアプリケーション実行時の表示単位、リンク関係の自由度を確保することが可能なアプリケーション伝送方式を提供するものである。
また、本明細書で開示する技術によれば、放送ストリームの送信側からは、アプリケーションにおいて、直接参照するリソース、同時に表示するアプリケーション提示単位を構成するリソース・グループ、さらにこれにリンクする他のアプリケーション提示単位を含むリソース・グループ、アプリケーション全体のリソース・グループという4通りのアクセス範囲で、アクセス範囲に関するロケーション情報とサイズを階層的に情報として与えることができる。これにより、受信側では、利用可能なキャッシュ・サイズに応じて効果的な事前キャッシュを行なうことが可能になる。