(58)【調査した分野】(Int.Cl.,DB名)
コンテンツを構成するファイルのパス名を示す情報と、前記パス名が示されたファイルの伝送路における配置に関する情報とを対応付けるデータ伝送情報を生成する生成部と、
前記コンテンツを構成するファイルと、前記データ伝送情報とを多重化する多重化部と、
前記コンテンツを構成するファイルと、前記データ伝送情報とを多重化した信号を送出する配信部と
を備える送出装置であって、
前記パス名が示されたファイルの伝送路における配置に関する情報は、前記パス名が示されたファイルを、少なくともコンテンツにおいて識別するファイル識別情報と、前記パス名が示されたファイルが配置されているアセットを示す情報とを含み、
前記データ伝送情報は、前記ファイル識別情報と前記アセットを示す情報とを対応付けるアセット管理情報を含み、
前記生成部は、前記データ伝送情報をデータ伝送メッセージに格納し、
前記多重化部は、前記データ伝送情報を格納した前記データ伝送メッセージと、前記ファイルとを多重化したIPデータフローを生成し、
前記コンテンツを構成するファイルと、前記データ伝送情報とを多重化した信号は、前記IPデータフローを表す信号であり、
前記データ伝送情報は、データアセット管理テーブルを含み、
前記データアセット管理テーブルは、前記アセット管理情報を格納する、
送出装置。
【発明を実施するための形態】
【0021】
以下、図面を参照して、本発明の実施の形態について説明する。
図1は、この発明の一実施形態によるコンテンツ伝送システム10の構成を示す概略ブロック図である。コンテンツ伝送システム10は、一つまたは複数のファイルから構成されるコンテンツ(マルチメディアコンテンツともいう)を、MMT(MPEG Media Transport)を用いて伝送する。
本実施形態におけるコンテンツ伝送システム10では、コンテンツを作成する際に、伝送路における配置を意識しなくて良いように、コンテンツ伝送システム10で伝送されるファイルのパス名は、伝送路における配置とは別に定義している。なお、本実施形態では、伝送路は、放送波によるIPデータフローと、IPネットワーク上でのマルチキャストを用いたIPデータフローと、IPネットワーク上でのユニキャストとがある。これらの伝送路で用いられるインターネットプロトコルは、いわゆるIPv4であっても、IPv6であってもよい。
【0022】
コンテンツ伝送システム10は、放送設備11、配信設備12、ネットワーク13、受信装置14、出力装置15を含む。放送設備11は、コンテンツを構成するファイルを、放送波を用いて送出する。放送設備11が送出する放送波は、TLVストリームを伝送しており、TLVストリームは、IPデータフローを伝送する。IPデータフローは、MMTPパケットのストリームを伝送し、MMTPパケットのストリームは、ファイルを格納したデータアセットを伝送する。配信設備12は、コンテンツを構成するファイルを、ネットワーク13を用いて配信する。配信設備12は、マルチキャストによるファイルの配信と、ユニキャストによるファイルの配信とを行う。マルチキャストによる配信は、放送設備11と同様にMMTPパケットを伝送するIPデータフローによる方式(以降、MMTP方式という)、または、「デジタル放送におけるダウンロード方式」(ARIB STD−B45 2.2版、一般社団法人 電波産業会 発行)の第1部 第9章 データ伝送方式に準拠した方式(以降、B45方式という)により行われる。ユニキャストによる配信は、HTTP(HyperText Transfer Protocol)やFTP(File Transfer Protocol)により行われる。
【0023】
ネットワーク13は、インターネットなどのIP(Internet Protocol)を用いたネットワークである。受信装置14は、放送設備11および配信設備12が配信したファイルを受信し、受信したファイルから、コンテンツの画像を表す画像信号と、音声を表す音声信号とを生成する。出力装置15は、液晶ディスプレイなどの表示デバイスと、スピーカとを有し、受信装置14が生成した画像信号が表す画像の表示と、音声信号が表す音声の出力とを行う。
【0024】
図2は、コンテンツが放送設備11から配信される場合の制御情報の配置例1を示す模式図である。
図2は、コンテンツを構成する全てのファイルが、MMTのパッケージに格納されている場合の例である。
図2では、放送設備11から配信されるIPデータフローDF1で、一つのパッケージP1が伝送されている。その一つのパッケージP1で、データ伝送メッセージ(Data_Transmission_Message)DTM1(データ伝送情報)、複数のデータアセットDA1、DA2が伝送されている。データ伝送メッセージDTM1は、MMTのメッセージであり、本実施形態では、メッセージIDとして「0x8002」を用いる。データアセットDA1、DA2は、アイテムI1、I2、・・・として、コンテンツを構成するファイルを伝送するMMTのアセットである。アセット各々は、それぞれ、特定のパケットID(packet_id)を持つMMTPパケットに格納されるビットストリームであり、コンポーネントなどともいう。
【0025】
データ伝送メッセージDTM1は、データディレクトリ管理テーブル(Data_Directory_Management_Table)DM1(ディレクトリ管理情報)と、データアセット管理テーブル(Data_Asset_Management_Table)AM1、AM2(アセット管理情報)とを格納している。データディレクトリ管理テーブルDM1は、コンテンツを構成するファイルのパス名と、そのファイルのアイテムID(ファイル識別情報)とを対応付けている。アイテムIDは、パケットIDまたはアセットIDと組み合わせて、コンテンツを構成するファイルを、データフローおいて識別する情報である。データディレクトリ管理テーブルDMは、これらの他に、IPデータフローおよびパケットIDも対応付けているが、ここでは、説明を省略する。
【0026】
データアセット管理テーブルAM1、AM2の各々は、対応する一つのアセットIDと、そのアセットIDのデータアセットに格納されているファイルのアイテムIDとを格納する。データアセット管理テーブルは、データアセットの数だけ、データ伝送メッセージに格納されている。なお、アセットIDと、パケットIDとの対応は、制御メッセージの一種であるPAメッセージ中のMPテーブルに記載されている。
【0027】
したがって、ファイルのパス名が与えられると、データディレクトリ管理テーブルDM1から、そのファイルのアイテムIDが得られる。さらに、得られたアイテムIDを格納しているデータアセット管理テーブルAM1から、アセットIDが得られる。そのアセットIDのデータアセットで伝送されている、得られたアイテムIDのアイテムが、パス名を与えられたファイルとなっている。
【0028】
図3は、コンテンツが放送設備11から配信される場合の制御情報の配置例2を示す模式図である。
図3は、コンテンツを構成するファイルが、他のパッケージで伝送されている場合の例である。
図3では、放送設備11から配信されるIPデータフローDF2で、2つのパッケージP2、P3が伝送されている。パッケージP2は、視聴者が、例えば、受信装置14のリモートコントローラなどで指定したサービスのパッケージである。パッケージP2には、データ伝送メッセージDTM2が伝送されている。データ伝送メッセージDTM2には、データディレクトリ管理テーブルDM2が格納されている。データディレクトリ管理テーブルDM2は、コンテンツを構成するファイルのパス名と、そのファイルを伝送しているパッケージのパッケージIDと、そのファイルのアイテムIDとを対応付けている。
【0029】
また、パッケージP3は、データ伝送メッセージDTM3と、データアセットDA3、DA4とを伝送している。データ伝送メッセージDTM3には、データアセット管理テーブルAM3、AM4が格納されている。データアセット管理テーブルAM3、AM4の各々は、対応する一つのアセットIDと、そのアセットIDのデータアセットに格納されているファイルのアイテムIDとを格納する。データアセットDA3、DA4は、アイテムI5、I6、・・・として、コンテンツを構成するファイルを伝送する。
【0030】
したがって、ファイルのパス名が与えられると、データディレクトリ管理テーブルDM2から、そのファイルを伝送するパッケージP3のパッケージIDと、そのファイルのアイテムIDが得られる。得られたパッケージIDのパッケージP3からデータ伝送メッセージDTM3が得られる。このデータ伝送メッセージDTM3に格納されているデータアセット管理テーブルAM3、AM4を参照すると、先に得られたアイテムIDを格納しているデータアセットのアセットIDが得られる。そのアセットIDのデータアセットで伝送されている、得られたアイテムIDのアイテムが、パス名を与えられたファイルとなっている。
【0031】
図4は、コンテンツを構成するファイルが他のデータフローで配信される場合の制御情報の配置例を示す模式図である。
図4の例では、IPデータフローDF3は、放送設備11により配信され、IPデータフローDF4、DF5は、配信設備12により配信されている。IPデータフローDF3では、データ伝送メッセージDTM4が伝送されている。
データ伝送メッセージDTM4には、データディレクトリ管理テーブルDM3が格納されている。
【0032】
データディレクトリ管理テーブルDM3は、コンテンツを構成するファイルのパス名と、そのファイルを伝送しているデータフローのIPアドレス(マルチキャストアドレス)とポート番号と、そのファイルのファイルID(ファイル識別情報)とを対応付けている。ファイルID(transport_file_id)は、コンテンツを構成するファイルのうち、ネットワーク13を介して配信されるファイルを、IPデータフローにおいて識別する情報である。IPデータフローDF4、DF5は、コンテンツを構成するファイルを伝送する。
【0033】
したがって、ファイルのパス名が与えられると、データディレクトリ管理テーブルDM3から、そのファイルを伝送するIPデータフローのマルチキャストアドレス(IPアドレス)およびポート番号と、そのファイルのファイルIDが得られる。マルチキャストアドレスとポート番号とで、そのファイルを伝送するIPデータフローが特定される。さらに、ファイルIDにより、そのIPデータフローで伝送されているファイルの中から、パス名が与えられたファイルが特定される。
【0034】
図5は、放送設備11の構成を示す概略ブロック図である。放送設備11は、制御メッセージ生成装置101、映像送出装置102、音声送出装置103、データ送出装置104、多重装置105、配信装置106を含む。制御メッセージ生成装置101は、データ伝送メッセージを生成する。データ伝送メッセージは、コンテンツを構成するファイルのパス名を示す情報と、そのファイルの伝送路における配置に関する情報とを対応付ける。
この対応付けは、データ伝送メッセージに格納されているデータディレクトリ管理テーブルと、データアセット管理テーブルとで行う。制御メッセージ生成装置101は、その他にPAメッセージなどを生成してもよい。
【0035】
映像送出装置102は、映像のアセットを生成する。音声送出装置103は、音声のアセットを生成する。データ送出装置104は、コンテンツを構成するファイルをアイテムとして伝送するアセットを生成する。多重装置105は、制御メッセージ生成装置101が生成したメッセージと、映像送出装置102、音声送出装置103、データ送出装置104の各々が生成したアセットとの各々をMMTPパケットに格納する。多重装置105(多重化部)は、これらのアセットを格納したMMTPパケットを多重したIPデータフローを生成する。配信装置106(配信部)は、多重装置105が生成したIPデータフローを、放送波を用いて配信する。
【0036】
図6は、制御メッセージ生成装置101の構成を示す概略ブロック図である。制御メッセージ生成装置101は、ディレクトリ管理テーブル生成部111、アセット管理テーブル生成部112、データ伝送メッセージ生成部113を含む。ディレクトリ管理テーブル生成部111は、コンテンツを構成する全てのファイルのパス名と、それらのファイルの伝送路における配置に関する情報とを対応付けるディレクトリ管理テーブルを生成する。
【0037】
なお、ディレクトリ管理テーブルは、放送設備11によりファイルが伝送されている場合は、伝送路における配置に関する情報として、ファイルが伝送されているデータアセットのパケットIDと、ファイルに対応付けられたアイテムIDとを格納している。なお、放送設備11からB45方式によりファイルを伝送することも可能であり、その場合は、ディレクトリ管理テーブルは、伝送路における配置に関する情報として、ファイルが伝送されているIPデータフローのソースアドレス、マルチキャストアドレス、ポート番号と、ファイルに対応付けられたファイルIDとを格納している。
【0038】
また、ディレクトリ管理テーブルは、配信設備12からMMTP方式によりファイルが伝送されている場合は、伝送路における配置に関する情報として、ファイルが伝送されているIPデータフローのソースアドレス、マルチキャストアドレス、ポート番号と、ファイルを伝送するデータアセットのパケットIDと、ファイルに対応付けられたアイテムIDとを格納している。ディレクトリ管理テーブルは、配信設備12からB45方式によりファイルが伝送されている場合は、伝送路における配置に関する情報として、ファイルが伝送されているIPデータフローのソースアドレス、マルチキャストアドレス、ポート番号と、ファイルに対応付けられたファイルIDとを格納している。
【0039】
なお、マルチキャストアドレスは、IPv4であっても、IPv6であってもよい。また、ディレクトリ管理テーブルは、配信設備12からユニキャストによりファイルが伝送されている場合は、伝送路における配置に関する情報として、URL(Universal Resource Locator)を格納している。
【0040】
アセット管理テーブル生成部112は、コンテンツを構成するファイルのうち、このテーブルと同じパッケージで伝送されるものの伝送路における配置に関する情報を格納するアセット管理テーブルを生成する。アセット管理テーブルに格納されている、伝送路における配置に関する情報は、そのアセット管理テーブルに対応付けられたデータアセットのアセットIDと、そのデータアセットに格納されているファイルのアイテムIDである。
さらに、アセット管理テーブルには、ファイルのバージョンや、チェックサムなども含まれる。データ伝送メッセージ生成部113は、ディレクトリ管理テーブル生成部111が生成したディレクトリ管理テーブルと、アセット管理テーブル生成部112が生成したアセット管理テーブルとを格納したデータ伝送メッセージを生成する。なお、
図3や
図4に例示したように、データ伝送メッセージには、ディレクトリ管理テーブルと、アセット管理テーブルとのうち、一方のみが格納されていてもよい。
【0041】
図7は、受信装置14の構成を示す概略ブロック図である。受信装置14は、放送受信部400、ネットワーク通信部401、分離部402、指定取得部403、受信制御部404、制御メッセージ処理部405、映像デコード部406、音声デコード部407、データレンダリング部408、伝送路配置取得部409、ディレクトリ記憶部410、映像合成部411、音声合成部412を含む。なお、放送受信部400と、ネットワーク通信部401と、分離部402と、受信制御部404と、制御メッセージ処理部405とでファイル取得部413として機能する。
【0042】
放送受信部400は、放送設備11が配信するIPデータフローを受信する。ネットワーク通信部401は、配信設備12とネットワーク13を介して通信する。例えば、ネットワーク通信部401は、配信設備12がマルチキャスト配信するIPデータフローを受信する。また、ネットワーク通信部401は、配信設備12に対して、URLを指定して要求したファイルを受信する。
【0043】
分離部402は、放送受信部400およびネットワーク通信部401が受信したIPデータフローから制御メッセージを分離し、制御メッセージ処理部405に入力する。また、分離部402は、受信制御部404から指定されたパケットIDとアイテムIDとを指定されると、放送受信部400が受信したIPデータフローから、指定されたパケットIDのデータアセットを分離する。さらに、分離部402は、そのデータアセットから指定されたアイテムIDのアイテムであるファイルを分離し、データレンダリング部408に入力する。
【0044】
また、分離部402は受信制御部404から、パケットIDにより映像のアセットを指定されると、IPデータフローから、そのアセットを分離し、映像デコード部406に入力する。また、分離部402は受信制御部404から、パケットIDにより音声のアセットを指定されると、IPデータフローから、そのアセットを分離し、音声デコード部407に入力する。
【0045】
指定取得部403は、ユーザによるコンテンツの指定を取得する。本実施形態では、コンテンツの指定は、受信装置14のリモートコントローラを用いて、コンテンツを伝送するパッケージのパッケージIDに対応するボタンを押下することで行われる。指定取得部403は、押下されたボタンを検出し、そのボタンに対応するパッケージIDを、受信制御部404に入力する。
【0046】
受信制御部404は、指定取得部403から入力されたパッケージID、または伝送路配置取得部409から入力された伝送路における配置に関する情報に従い、受信するIPデータフローを決定する。受信制御部404は、決定したIPデータフローの受信を、放送受信部400あるいはネットワーク通信部401に指示する。さらに、受信制御部404は、伝送路配置取得部409からの入力に従ったファイルの分離を、分離部402に指示する。なお、本実施形態では、伝送路における配置に関する情報として、パケットIDとアイテムIDとの組み合わせ、ソースアドレスとマルチキャストアドレスとポート番号とファイルIDとの組み合わせ、URLなどがある。
【0047】
例えば、受信制御部404は、制御メッセージ処理部405から入力された制御メッセージを参照して、指定取得部403または伝送路配置取得部409から入力されたパッケージIDを伝送しているIPデータフローを判定する。受信制御部404は、このように判定したIPデータフローを、受信するIPデータフローとする。指定取得部403から入力されたパッケージIDのパッケージに、映像のアセットや、音声のアセットが含まれているときは、受信制御部404は、これらのアセットの分離を分離部402に指示する。
【0048】
また、受信制御部404は、伝送路配置取得部409から、ソースアドレス、マルチキャストアドレスおよびポート番号により指定されたIPデータフローを、受信するIPデータフローとする。なお、受信制御部404は、IPデータフローが放送波を用いて配信されているか、ネットワーク13を介して配信されているかを、制御メッセージなどを参照して判定する。放送波を用いて配信されているときは、そのIPデータフローの受信を、放送受信部400に指示する。また、ネットワーク13を介して配信されているときは、受信制御部404は、そのIPデータフローの受信を、ネットワーク通信部401に指示する。また、受信制御部404は、伝送路における配置に関する情報としてURLを入力されたときは、そのURLにより参照されているファイルの取得を、ネットワーク通信部401に指示する。
【0049】
制御メッセージ処理部405は、分離部402がIPデータフローから分離した制御メッセージを処理する。処理する制御メッセージには、データ伝送メッセージが含まれる。
例えば、制御メッセージ処理部405は、データ伝送メッセージから、コンテンツを構成するファイルのパス名と、伝送路における配置に関する情報との対応付けを抽出し、ファイル管理情報として、ディレクトリ記憶部410に記憶させる。
【0050】
また、制御メッセージ処理部405は、パッケージのパッケージIDと、そのパッケージを伝送するIPデータフローとの対応付けを、制御メッセージから取得し、受信制御部404に入力する。
【0051】
映像デコード部406は、分離部402から入力された映像のアセットを復号して、映像信号を生成する。映像デコード部406は、生成した映像信号を、映像合成部411に入力する。音声デコード部407は、分離部402から入力された音声のアセットを復号して、音声信号を生成する。音声デコード部407は、生成した音声信号を、音声合成部412に入力する。
【0052】
データレンダリング部408は、分離部402およびネットワーク通信部401から入力されたファイルをレンダリングして、映像信号および音声信号を生成する。また、データレンダリング部408は、入力されたファイル中で参照されているファイルのパス名を、取得すべきファイルのパス名として、伝送路配置取得部409に入力する。データレンダリング部408は、例えば、HTML(HyperText Markup Language)のパーシング機能を有し、入力されたHTMLファイルをパーシングすることで、映像信号を生成する。
データレンダリング部408は、生成した映像信号を映像合成部411に入力し、生成した音声信号を音声合成部412に入力する。
【0053】
伝送路配置取得部409は、ディレクトリ記憶部410が記憶するファイル管理情報を参照し、データレンダリング部408から入力されたパス名と対応付けられている伝送路における配置に関する情報を取得する。伝送路配置取得部409は、取得した伝送路における配置に関する情報を、受信制御部404に入力する。ディレクトリ記憶部410は、コンテンツを構成するファイルのパス名と、そのファイルの伝送路における配置に関する情報とを対応付けて、ファイル管理情報として記憶する。
【0054】
映像合成部411は、映像デコード部406から入力された映像信号が表す映像と、データレンダリング部408から入力された映像信号が表す映像とを合成する。映像合成部411は、この合成結果の映像を表す映像信号を生成し、出力する。これらの映像を合成する際の各映像の配置や、透過度などは、例えば、データレンダリング部408がファイルのレンダリング結果に従い指定してもよいし、予め決められていてもよい。
【0055】
音声合成部412は、音声デコード部407から入力された音声信号が表す音声と、データレンダリング部408から入力された映像信号が表す音声とを合成する。音声合成部412は、この合成結果の音声を表す音声信号を生成し、出力する。
【0056】
図8は、データ伝送メッセージのデータ構造を示す表である。該表において、No.は、該表における行の通し番号を示す欄である。データ構造は、データ伝送メッセージのデータ構造を示す欄である。ビット数は、該データ構造のビット数を示す欄である。ビット列表記は、該ビット数のデータ構造のデータ形式を示す欄である。ビット列表記のuimsbfは、unsigned integer most significant bit firstの略であり、符号無し整数、最上位ビットが先頭を意味する。
【0057】
図8において、No.1の「Data_Transmission_message(){」は、以降、No.14の「}」までが、データ伝送メッセージのデータ構造であることを表す。当該メッセージの先頭に配置されているNo.2の「message_id」は、データ伝送メッセージのID(Identifier)を示す16ビットの領域であり、本実施形態では、「0x8002」が設定される。次に配置されているNo.3の「version」は、データ伝送メッセージのバージョン番号を示す8ビットの領域である。次に配置されているNo.4の「length」は、当該領域以降のデータ伝送メッセージのバイト数を示す32ビットの領域である。
【0058】
次に配置されているNo.5の「num_of_tables」は、データ伝送メッセージに格納されているテーブルの数を示す8ビットの領域である。次のNo.6の「for(i=0;i<N;i++){」は、以降、「}」であるNo.10までを、N回、すなわち格納されているテーブルの数(num_of_tables)分繰り返すことを示す。次に配置されているNo.7の「table_id」は、データ伝送メッセージに格納されているテーブルのIDを示す8ビットの領域である。この領域の値は、各テーブルの先頭に配置されている「table_id」の値と同じである。
【0059】
次に配置されているNo.8の「table_version」は、直前のNo.7のテーブルIDが示すテーブルのバージョン番号を示す8ビットの領域である。この領域の値は、該テーブルの「version」の値と同じである。次に配置されているNo.9の「table_length」は、直前のNo.7のテーブルIDが示すテーブルの長さを示す16ビットの領域である。この領域の値は、該テーブルの「length」の値と同じである。次のNo.10の「}」は、No.6の「{」に対応する。
【0060】
次のNo.11の「for(i=0;i<N;i++){」は、以降、「}」であるNo.13までを、N回、すなわち格納されているテーブルの数(num_of_tables)分繰り返すことを示す。次のNo.12の「table()」は、テーブルが一つ格納されることを示す。
【0061】
図9は、データディレクトリ管理テーブルのデータ構造を示す表である。該表において、No.は、該表における行の通し番号を示す欄である。データ構造は、データディレクトリ管理テーブルのデータ構造を示す欄である。ビット数は、該データ構造のビット数を示す欄である。ビット列表記は、該ビット数のデータ構造のデータ形式を示す欄である。
ビット列表記のuimsbfは、unsigned integer most significant bit firstの略であり、符号無し整数、最上位ビットが先頭を意味する。また、ビット列表記のcharは、文字を意味する。
【0062】
図9において、No.1の「Data_Directory_Management_Table(){」は、以降、No.33の「}」までが、データディレクトリ管理テーブルのデータ構造であることを表す。当該テーブルの先頭に配置されているNo.2の「table_id」は、データディレクトリ管理テーブルのIDを示す8ビットの領域である。本実施形態では、データディレクトリ管理テーブルのIDとして、「0x87」を用いる。次に配置されているNo.3の「version」は、データディレクトリ管理テーブルのバージョン番号を示す8ビットの領域である。次に配置されているNo.4の「length」は、当該領域以降のデータディレクトリ管理テーブルのバイト数を示す16ビットの領域である。
【0063】
次に配置されているNo.5の「list_scheme」は、当該領域以降、No.32までのデータ構造を指定する32ビットの領域である。「list_scheme」の値が「1」であるときは、ファイルのパス名と、伝送路における配置に関する情報との対応付けを外部のファイルに格納することを示す。「list_scheme」の値が「2」であるときは、その対応付けを、このテーブル内に直接記述することを示す。次のNo.6の「if(list_scheme==1){」は、No.5の「list_scheme」の値が「1」であるときに、No.11の「}」までのデータ構造が配置されることを示す。No.7に配置されている「list_length」は、ファイルのパス名と、伝送路における配置に関する情報との対応付けを格納するファイルへの参照情報(例えば、URL)の長さを示す8ビットの領域である。
【0064】
次のNo.8の「for(i=0;i<list_length;i++){」は、No.10の「}」まで、すなわち、No.9のデータ構造が「list_length」分だけ繰り返されることを示す。No.9の「list_value」は、「list_length」分だけ配置されて、ファイルのパス名と、伝送路における配置に関する情報との対応付けを格納するファイルへの参照情報を示す8ビットの領域である。
【0065】
次のNo.12の「if(list_scheme==2){」は、No.5の「list_scheme」の値が「2」であるときに、No.32の「}」までのデータ構造が配置されることを示す。次に配置されているNo.13の「num_of_files」は、コンテンツを構成するファイルの数、すなわちこのデータディレクトリ管理テーブルに情報が格納されているファイルの数を示す8ビットの領域である。次のNo.14の「for(j=0;j<M;j++){」は、No.30の「}」までのデータ構造が、「num_of_files」の値分、繰り返し配置されることを示す。
【0066】
次に配置されるNo.15の「Transport_location_info()」は、伝送路における配置に関する情報のうち、IPデータフロー、パッケージなどを指定する伝送配置情報の領域である。伝送配置情報の詳細は後述する。以降、No.25までで示されるファイルは、この伝送配置情報で指定された伝送路に配置される。次に配置されるNo.16の「location_type」は、伝送路の種類を示す8ビットの領域である。次のNo.17の「if(location_type==0x00||0x01||0x02){」は、直前のNo.16の「location_type」の値が「0x00」、「0x01」または「0x02」であるときに、No.18のデータ構造が配置されることを示す。No.18の「item_ID」は、放送設備11から配信されるファイルを、パッケージ内において識別するアイテムIDの値を示す32ビットの領域である。
【0067】
次のNo.19の「}else{」は、直前のNo.16の「location_type」の値が「0x00」、「0x01」、「0x02」のいずれでもないときに、No.21の「}」まで、すなわちNo20のデータ構造が配置されることを示す。No.20の「transport_file_ID」は、配信設備12からIPマルチキャストにより配信されるファイルを、そのIPマルチキャストによるデータフロー内において識別するファイルIDの値を示す32ビットの領域である。
【0068】
次に配置されているNo.22の「file_directory_length」は、ファイルのパス名の長さを示す8ビットの領域である。次の「for(k=0;k<file_directory_length;k++){」は、No.25の「}」まで、すなわちNo.24のデータ構造が、「file_directory_byte」分配置されることを示す。No.24の「file_directory_byte」は、「file_directory_length」分だけ配置されてファイルのパス名を示す8ビットの領域である。次に配置されるNo.26の「descriptor_loop_length」は、以降に配置される記述子の数を示す16ビットの領域である。
次のNo.27の「for(l=0;l<N;l++){」は、No.29の「}」まで、すなわち、No.28のデータ構造が「descriptor_loop_length」分だけ繰り返されることを示す。No.28の「descriptor()」は、任意の記述子(descriptor)を配置するための領域である。
【0069】
図10は、伝送配置情報のデータ構造を示す表である。該表において、No.は、該表における行の通し番号を示す欄である。データ構造は、伝送配置情報のデータ構造を示す欄である。ビット数は、該データ構造のビット数を示す欄である。ビット列表記は、該ビット数のデータ構造のデータ形式を示す欄である。ビット列表記のuimsbfは、unsigned integer most significant bit firstの略であり、符号無し整数、最上位ビットが先頭を意味する。また、ビット列表記のcharは、文字を意味する。
【0070】
No.1の「Transport_location_info(){」は、No.34の「}」までが、伝送配置情報のデータ構造であることを示す。次に配置されるNo.2の「location_type」は、伝送路の種類を示す8ビットの領域である。次のNo.3の「if(location_type==0x00){」は、No.2の「location_type」の値が「0x00」であるときに、No.5の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x00」であるときは、ファイルが伝送されているのは、この伝送配置情報が伝送されているIPデータフローで伝送されているMMTPパケットである。No.4に配置されている「packet_id」は、MMTPパケットのパケットIDを示す16ビットの領域である。
【0071】
次のNo.6の「if(location_type==0x01){」は、No.2の「location_type」の値が「0x01」であるときに、No.11の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x01」であるときは、ファイルが伝送されているのは、IPv4のIPマルチキャストによるIPデータフローで伝送されているMMTPパケットである。次に配置されているNo.7の「ipv4_src_addr」は、そのIPデータフローのソースアドレスを示す32ビットの領域である。次に配置されているNo.8の「ipv4_dst_addr」は、そのIPデータフローのマルチキャストアドレス(宛先アドレス)を示す32ビットの領域である。次に配置されているNo.9の「dst_port」は、そのIPデータフローの宛先ポート番号を示す16ビットの領域である。次に配置されているNo.10の「packet_id」は、そのMMTPパケットのパケットIDである。
【0072】
次のNo.12の「if(location_type==0x02){」は、No.2の「location_type」の値が「0x02」であるときに、No.17の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x02」であるときは、ファイルが伝送されているのは、IPv6のIPマルチキャストによるIPデータフローで伝送されているMMTPパケットである。次に配置されているNo.13の「ipv6_src_addr」は、そのIPデータフローのソースアドレスを示す128ビットの領域である。次に配置されているNo.14の「ipv6_dst_addr」は、そのIPデータフローのマルチキャストアドレス(宛先アドレス)を示す128ビットの領域である。次に配置されているNo.15の「dst_port」は、そのIPデータフローの宛先ポート番号を示す16ビットの領域である。次に配置されているNo.16の「packet_id」は、そのMMTPパケットのパケットIDである。
【0073】
次のNo.18の「if(location_type==0x03){」は、No.2の「location_type」の値が「0x03」であるときに、No.22の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x03」であるときは、ファイルが伝送されているのは、IPv4のIPマルチキャストによるIPデータフローである。次に配置されているNo.19の「ipv4_src_addr」は、そのIPデータフローのソースアドレスを示す32ビットの領域である。次に配置されているNo.20の「ipv4_dst_addr」は、そのIPデータフローのマルチキャストアドレス(宛先アドレス)を示す32ビットの領域である。次に配置されているNo.21の「dst_port」は、そのIPデータフローの宛先ポート番号を示す16ビットの領域である。
【0074】
次のNo.23の「if(location_type==0x04){」は、No.2の「location_type」の値が「0x04」であるときに、No.27の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x04」であるときは、ファイルが伝送されているのは、IPv6のIPマルチキャストによるIPデータフローである。次に配置されているNo.24の「ipv6_src_addr」は、そのIPデータフローのソースアドレスを示す128ビットの領域である。次に配置されているNo.25の「ipv6_dst_addr」は、そのIPデータフローのマルチキャストアドレス(宛先アドレス)を示す128ビットの領域である。次に配置されているNo.26の「dst_port」は、そのIPデータフローの宛先ポート番号を示す16ビットの領域である。
【0075】
次のNo.28の「if(location_type==0x05){」は、No.2の「location_type」の値が「0x05」であるときに、No.33の「}」までのデータ構造が配置されることを示す。「location_type」の値が「0x05」であるときは、ファイルは、ユニキャストにより伝送される。次に配置されているNo.29の「URL_length」は、そのファイルのURLの長さを示す8ビットの領域である。次のNo.30の「for(i=0;i<N;i++){」は、No.32の「}」まで、すなわちNo.31のデータ構造が、「URL_length」分配置されることを示す。No.31の「URL_byte」は、「URL_length」分だけ配置されてURLを示す8ビットの領域である。
【0076】
図11は、データアセット管理テーブルのデータ構造を示す表である。該表において、No.は、該表における行の通し番号を示す欄である。データ構造は、データアセット管理テーブルのデータ構造を示す欄である。ビット数は、該データ構造のビット数を示す欄である。ビット列表記は、該ビット数のデータ構造のデータ形式を示す欄である。ビット列表記のuimsbfは、unsigned integer most significant bit firstの略であり、符号無し整数、最上位ビットが先頭を意味する。また、ビット列表記のcharは、文字を意味する。
【0077】
図11において、No.1の「Data_Asset_Management_Table(){」は、以降、No.29の「}」までが、データアセット管理テーブルのデータ構造であることを表す。当該テーブルの先頭に配置されているNo.2の「table_id」は、データアセット管理テーブルのIDを示す8ビットの領域である。本実施形態では、データアセット管理テーブルのIDとして、「0x88」を用いる。次に配置されているNo.3の「version」は、データアセット管理テーブルのバージョン番号を示す8ビットの領域である。次に配置されているNo.4の「length」は、当該領域以降のデータディレクトリ管理テーブルのバイト数を示す16ビットの領域である。次に配置されているNo.5の「downloadId」は、ダウンロードを識別する情報であるダウンロード識別を示す32ビットの領域である。ダウンロード識別は、例えば、受信装置12のファームウェアを更新するためのファームウェアのダウンロードの指定などに用いられる。
【0078】
次に配置されているNo.6の「asset_ID_scheme」は、アセットID(asset_ID)のスキーム(記述形式)を示す32ビットの領域である。次に配置されているNo.7の「asset_ID_length」は、アセットIDの長さ(バイト数)を示す8ビットの領域である。次のNo.8の「for(i=0;i<asset_ID_length;i++){」は、No.10の「}」まで、すなわちNo.9のデータ構造を、No.6の「asset_ID_length」分、繰り返すことを示す。次に配置されているNo.9の「asset_ID_byte」は、「asset_ID_length」分だけ配置されて、アセットIDを示す8ビットの領域である。このアセットIDは、このデータアセット管理テーブルがいずれのデータアセットに関する情報を格納しているかを示す。
【0079】
次に配置されているNo.11の「compatibilityDescriptor()」は、コンパチビリティ記述子が配置される領域である。コンパチビリティ記述子は、例えば、受信装置12のファームウェアを更新するためのファームウェアのダウンロードの際に、機種の指定などに用いられる。次に配置されているNo.12の「num_of_items」は、No.9のアセットIDのデータアセットに格納されているアイテムの数を示す8ビットの領域である。次のNo.13の「for(j=0;j<num_of_items;j++){」は、No.16までのデータ構造を、No.12の「num_of_items」分、繰り返すことを示す。次に配置されているNo.14の「item_ID」は、アイテムIDを示す32ビットの領域である。このアイテムIDは、No.9のアセットIDのデータアセットに格納されているファイルのアイテムIDである。次に配置されているNo.15の「item_version」は、直前のNo.14の「item_ID」が示すファイルのバージョン番号を示す8ビットの領域である。このバージョン番号は、そのファイルの内容に変化があると、番号が更新される。
【0080】
次のNo.17の「for(j=0;j<num_of_items;j++){」は、No.24までのデータ構造を、No.12の「num_of_items」分、繰り返すことを示す。次に配置されているNo.18の「item_ID」は、アイテムIDを示す32ビットの領域である。直後のNo.23までのデータ構造のデータは、このアイテムIDが示すファイルに関するデータである。次に配置されているNo.19の「item_checksum」は、ファイルのチェックサム(誤り検出符号)を示す32ビットの領域である。このチェックサムには、例えば、巡回冗長検査(Cyclic Redundancy Check;CRC)が用いられる。
【0081】
次に配置されているNo.20の「item_location_length」は、直前のNo.18の「item_ID」が示すファイルのパス名の長さ(バイト数)を示す32ビットの領域である。次のNo.21の「for(k=0;k<item_location_length;k++){」は、No.23まで、すなわち、No.22のデータ構造がNo.20の「item_location_length」分、繰り返されることを示す。次に配置されているNo.22の「item_location_byte」は、「item_location_length」分、繰り返し配置されることで、パス名を示す8ビットの領域である。
【0082】
次に配置されるNo.25の「descriptor_loop_length」は、直後に配置される記述子の数を示す16ビットの領域である。次のNo.26の「for(l=0;l<N;l++){」は、直前のNo.25の「descriptor_loop_length」分、No.28の「}」まで、すなわちNo.27のデータ構造が繰り返し配置されることを示す。次に配置されているNo.27の「descriptor()」は、記述子が配置されることを示す。
【0083】
図12は、ディレクトリ記憶部410が記憶するファイル管理情報の例を示すテーブルである。
図12に示すように、ファイル管理情報は、パス名と、アイテムIDまたはファイルIDと、パッケージIDと、パケットIDと、ソースアドレス、マルチキャストアドレスと、ポート番号と、URLとを対応付けている。これらのうち、アイテムIDまたはファイルIDと、パッケージIDと、パケットIDと、ソースアドレス、マルチキャストアドレスと、ポート番号と、URLとは、そのファイルが配置される伝送路に応じて、値が設定される伝送路における配置に関する情報である。
【0084】
例えば、
図12の1行目は、パス名「./DirA/File1」のファイルが、パッケージID「0001」のパッケージのパケットID「0001」のデータアセットのアイテムID「0001」のアイテムとして伝送路に配置されることを示す。このようにデータアセットのアイテムとして配置される場合は、ソースアドレス、マルチキャストアドレス、ポート番号、URLの値は設定されない。
【0085】
また、
図12の6行目は、パス名「./DirC/File6」のファイルが、ソースアドレス「10.18.1.5」、マルチキャストアドレス「224.0.1.5」、ポート番号「50001」のIPデータフローに、ファイルID「0015」のファイルとして配置されることを示す。このように、配信設備12からのIPデータフロー中にB45方式で配置される場合は、パッケージID、パケットID、URLの値は設定されない。なお、IPデータフローが、IPv6のIPデータフローであるときは、ソースアドレスと、マルチキャストアドレスの値は、8行目と同様に、IPv6のIPアドレスとなる。
【0086】
また、
図12の8行目は、パス名「./DirD/File8」のファイルが、ソースアドレス「000a:・・・」、マルチキャストアドレス「FF1E:・・・」、ポート番号「50002」のIPデータフローで伝送されるパッケージID「0002」のパッケージのパケットID「0001」のデータアセットのアイテムID「0001」のアイテムとして配置されることを示す。このように、配信設備12からのIPデータフロー中にMMTP方式で配置される場合は、URLの値は設定されない。なお、IPデータフローが、IPv4のIPデータフローであるときは、ソースアドレスと、マルチキャストアドレスの値は、6行目と同様に、IPv4のIPアドレスとなる。
【0087】
また、
図12の9行目は、パス名「./DirE/File9」のファイルが、URL「http://xxx・・・」に配置されていることを示す。このように、URLが指定される場合は、パッケージID、パケットID、ソースアドレス、マルチキャストアドレス、ポート番号の値は設定されない。
【0088】
図13は、受信装置14の動作を説明するフローチャートである。
図13のフローチャートは、ユーザによりパッケージが指定され、受信装置14がそのパッケージを受信したときの処理を示す。まず、分離部402は、受信したパッケージに含まれるデータ伝送メッセージを分離する。制御メッセージ処理部405は、このデータ伝送メッセージを取得し、データ伝送メッセージに格納されているデータディレクトリ管理テーブルと、データアセット管理テーブルとからファイル管理情報を生成し、ディレクトリ記憶部410に記憶させる(Sa1)。
【0089】
伝送路配置取得部409は、データレンダリング部408から、所望のファイルのパス名を取得する(Sa2)。なお、データレンダリング部408は、既に取得しているファイル中に記載されたパス名から、所望のファイルのパス名を選択する。ただし、データレンダリング部408は、既に取得しているファイルが無いときは、例えば、受信中のパッケージIDなどから所定のルールに従い作成されるパス名を、所望のファイルのパス名とする。
【0090】
伝送路配置取得部409は、ディレクトリ記憶部410が記憶するファイル管理情報を参照し、所望のファイルの伝送路における配置に関する情報を取得する。受信制御部404は、伝送路配置取得部409が取得した伝送路における配置に関する情報を参照して、所望のファイルの伝送路を判定する(Sa3)。例えば受信制御部404は、所望のファイルのパス名と対応付けたパッケージIDに値が設定されているときは、伝送路は放送であると判定する。また、受信制御部404は、所望のファイルのパス名と対応付けたIPアドレスに値が設定されているときは、伝送路はマルチキャストであると判定する。また、受信制御部404は、所望のファイルのパス名と対応付けたURLに値が設定されているときは、伝送路はユニキャストであると判定する。
【0091】
ステップSa3にて、伝送路が放送であると判定したときは(Sa4−Yes)、受信制御部404は、伝送路における配置に関する情報により、受信しているデータフロー以外のデータフロー(他データフロー)が指定されているか否かを判定する(Sa5)。ソースアドレスなどの値が設定されており、他データフローが指定されていると判定したときは(Sa5−Yes)、受信制御部404は、そのパッケージの受信を放送受信部400に指示する。そのパッケージが受信されると、分離部402がデータ伝送メッセージを分離し、制御メッセージ処理部405が、そのデータ伝送メッセージを取得する。制御メッセージ処理部405は、そのデータ伝送メッセージに配置されているデータアセット管理テーブルに従い、ディレクトリ記憶部410が記憶するファイル管理情報を更新する(Sa6)。その後、処理は、ステップSa7に進む。また、ステップSa5にて、他データフローが指定されていないと判定したときは(Sa5−No)、処理は、直接ステップSa7に進む。
【0092】
ステップSa7では、伝送路配置取得部409は、所望のファイルのパケットID、アイテムIDを、ファイル管理情報から取得する。次に、受信制御部404は、伝送路配置取得部409が取得したパケットIDが示すデータアセット中の、伝送路配置取得部409が取得したアイテムIDのファイルの分離を、分離部402に指示する。データレンダリング部408は、この指示に従い分離部402が分離したファイルを、所望のファイルとして取得する(Sa8)。その後、処理は、ステップSa2に戻る。
【0093】
一方、ステップSa3にて、伝送路がマルチキャストであると判定したときは(Sa9−Yes)、受信制御部404は、伝送路配置取得部409がステップSa3にて取得した伝送路における配置に関する情報から、ファイルID(またはパケットIDとアイテムID)、IPアドレス(ソースアドレス、マルチキャストアドレス)、ポート番号を取得する(Sa10)。受信制御部404は、取得したIPアドレス、ポート番号のIPデータフローの受信を、ネットワーク通信部401に指示する。ネットワーク通信部401は、指示されたIPアドレス、ポート番号のIPデータフローの受信を開始する(Sa11)。さらに、受信制御部404は、取得したファイルID(またはパケットIDとアイテムID)のファイルの分離を、分離部402に指示する。分離部402は、指示されたファイルID(またはパケットIDとアイテムID)のファイルを、ステップSa11で受信を開始したIPデータフローから、所望のファイルとして分離(Sa12)、データレンダリング部408に入力する。その後、処理は、ステップSa2に戻る。
【0094】
一方、ステップSa3にて、伝送路がユニキャストであると判定したときは(Sa9−No)、受信制御部404は、伝送路配置取得部409がステップSa3にて取得した伝送路における配置に関する情報から、URLを取得する(Sa13)。受信制御部404は、取得したURLをネットワーク通信部401に通知して、そのURLが示すファイルの取得を指示する。ネットワーク通信部401は、URLを通知されると、通知されたURLを用いて、ネットワーク13を介して配信設備12からファイルを取得する(Sa14)。ネットワーク通信部401は、取得したファイルを、所望のファイルとしてデータレンダリング部408に入力する。その後、処理は、ステップSa2に戻る。
【0095】
なお、本実施形態では、データアセット管理テーブルと、データディレクトリ管理テーブルの双方に、ファイルのパス名が格納されているが、いずれか一方のみであってもよい。
また、ファイルとしてアーカイブファイルを伝送する場合は、データディレクトリ管理テーブルには、パス名のうち、アーカイブファイル内の全てのファイルに共通する部分までを記述し、残りのパス名は、アーカイブファイル内に格納する。
また、アセットIDの代わりに、MPテーブルに記載されるコンポーネントタグ(component_tag)を用いるようにしてもよい。
【0096】
このように、分離部402は、データフローから、データ伝送メッセージ(データ伝送情報)を分離する。伝送路配置取得部409は、ファイルのパス名を指定されると、データ伝送メッセージから生成されたファイル管理情報を参照して、指定されたパス名のファイルの、伝送路における配置に関する情報を取得する。ファイル取得部413は、この伝送路における配置に関する情報を参照して、指定されたパス名のファイルを取得する。
【0097】
これにより、ファイルのパス名を、伝送路における配置とは異なるものとすることができるので、コンテンツの作成時に、コンテンツを構成するファイルがどのように伝送路に配置されるかを意識する必要がない。
【0098】
また、データレンダリング部408からの要求ではなく、フィル管理情報に記載された全てのパス名(すなわち、データ伝送メッセージに記載された全てのパス名)のファイルを所望のファイルとして、データレンダリング部408からの要求の前に、予め取得するようにしてもよい。その場合、
図14に示すように、分離部402が分離したファイルおよびネットワーク通信部401が取得したファイルは、ファイル記憶部414が記憶する。このファイル記憶部414は、これらのファイルを、データ伝送メッセージに記載されたパス名で記憶する。
【0099】
このようにしても、データレンダリング部408は、伝送路における配置とは無関係なパス名を用いて、ファイル記憶部414に記憶しているファイルにアクセスすることができる。また、予め取得してファイル記憶部414に記憶しておくのは、伝送路が放送のファイルのみ、あるいは、伝送路が放送またはマルチキャストのファイルのみとしてもよい。
【0100】
また、
図1における放送設備11、配信設備12または受信装置14の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、これらの装置を実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0101】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0102】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。