JP2015192407A - 送信装置、送信方法、受信装置、受信方法、及び、プログラム - Google Patents

送信装置、送信方法、受信装置、受信方法、及び、プログラム Download PDF

Info

Publication number
JP2015192407A
JP2015192407A JP2014069940A JP2014069940A JP2015192407A JP 2015192407 A JP2015192407 A JP 2015192407A JP 2014069940 A JP2014069940 A JP 2014069940A JP 2014069940 A JP2014069940 A JP 2014069940A JP 2015192407 A JP2015192407 A JP 2015192407A
Authority
JP
Japan
Prior art keywords
fragment
sample
moof
header
lct
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014069940A
Other languages
English (en)
Inventor
山岸 靖明
Yasuaki Yamagishi
靖明 山岸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2014069940A priority Critical patent/JP2015192407A/ja
Priority to MX2016012218A priority patent/MX362219B/es
Priority to KR1020167025213A priority patent/KR102137858B1/ko
Priority to CN201580015015.8A priority patent/CN106105239B/zh
Priority to US15/127,462 priority patent/US10432989B2/en
Priority to EP15770090.7A priority patent/EP3125563A4/en
Priority to PCT/JP2015/057533 priority patent/WO2015146647A1/ja
Priority to CA2941367A priority patent/CA2941367A1/en
Publication of JP2015192407A publication Critical patent/JP2015192407A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • H04N21/2353Processing of additional data, e.g. scrambling of additional data or processing content descriptors specifically adapted to content descriptors, e.g. coding, compressing or processing of metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2362Generation or processing of Service Information [SI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】データを迅速に配信する。【解決手段】フラグメントの一部を含むデータであるポーションと、LCTヘッダとを含むLCTパケットが配信される。フラグメントは、moofと、mdatヘッダ及びサンプル群を有するmdatとを有し、moofは、mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、LCTヘッダは、フラグメントの順番を表すシーケンスナンバと、フラグメントの一部の、フラグメントにおける順番を表すバージョンと、BaseMediaDecodeTimeに対応するNTP時刻と、フラグメントの一部の先頭のサンプルの、フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、moofの少なくとも一部であるmoofサブセットとを含む。本技術は、例えば、コンテンツをマルチキャスト配信する場合等に適用することができる。【選択図】図27

Description

本技術は、送信装置、送信方法、受信装置、受信方法、及び、プログラムに関し、特に、例えば、データを迅速に配信すること等ができるようにする送信装置、送信方法、受信装置、受信方法、及び、プログラムに関する。
近年、インターネット上のストリーミングサービスの主流が、OTT-V(Over The Top Video)となっている。例えば、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP(Hypertext Transfer Protocol))(以下、DASHともいう)が、OTT-Vの基盤技術として普及し始めている。
DASHでは、例えば、ストリームを配信するサーバから、同一ソースからの特性の異なるストリームを最適に選択するための属性情報を含むメタデータとしてのMPD(Media Presentation Description)を、ストリームを受信するクライアントに通知し、クライアントにおいて、そのMPDを用いることで、ネットワーク環境適応型のストリーミングが実現される(例えば、非特許文献1を参照)。
すなわち、DASHでは、サーバが、同一内容のコンテンツとして、配信パスの通信環境や、クライアントの能力、状態等に応じて画質や画サイズ等が異なる複数のストリームを用意する。
一方、クライアントは、サーバが用意している複数のストリームのうちの、クライアントが受信可能であり、かつ、クライアントの能力(デコード能力等)に適したストリームを適応的に選択し、そのストリームを受信して再生する。
DASHでは、クライアントが、ストリームを適応的に選択して受信することができるように、MPDと呼ばれる、コンテンツの再生制御に用いられるメタデータが、サーバからクライアントに配信される。
MPDには、コンテンツを分割したセグメント(Audio/Video/Subtitle等のメディアデータ)のアドレスとしてのURL(Uniform Resource Locator)等が記述される。クライアントは、MPDに記述されたURL等に基づいて、コンテンツの配信元となる(web)サーバにhttpリクエストを送信し、このhttpリクエストに応じてサーバがユニキャスト配信するセグメントを受信して再生する。
「既存のWebサーバーで途切れない動画配信を実現」、平林光浩、NIKKEI ELECTRONICS 2012.3.19
DASHによるコンテンツの配信は、ポイントトゥーポイントのhttpストリーミングにより実現されるため、例えば、スポーツ中継等の、極めて多数のユーザが同時に視聴する可能性があるコンテンツ(番組)のストリーミング等に適用する場合には、Akamai等のCDN(Contents Delivery Network)の利用(サポート)が必要となる。
但し、CDNを利用しても、CDNのコスト的な制約から、既存の放送配信に匹敵する程のスケーラビリティを求めることは難しい。
DASHはhttpを利用するストリーミングプロトコルをベースとしているが、多数のユーザが同時に視聴するコンテンツ等については、例えば、RTP(Real-time Transport Protocol)やFLUTE(File Delivery over Unidirectional Transport)等のマルチキャストやブロードキャスト(MC/BC)ベアラを併用することにより、一斉同報配信を行い、ネットワークリソースの負荷を軽減することが望ましい。
ところで、現行のDASHでは、コンテンツのストリームを分割したセグメント(のファイル)を、DASHでのファイル配信単位(制御対象)として、そのセグメント単位で、ファイルが配信される。
したがって、現行のDASHでは、コンテンツをマルチキャスト配信(ブロードキャスト配信を含む)する場合に、セグメントが生成されるまで、コンテンツの配信を待つ必要がある。
今後は、より高画質の動画配信が一般的になることが予想されるが、そのような高画質の動画配信では、コンテンツのストリームのビットレートが大になる。
コンテンツのストリームのビットレートが大である場合に、セグメントの生成が完了するのを待って、セグメントの単位で、コンテンツの配信、すなわち、バルク転送を行うのでは、ネットワークの帯域が圧迫され、シェーピングが必要になることがある。
したがって、セグメントの生成が完了するのを待って、セグメントの単位で、コンテンツを配信するのでは、最終的には、クライアントでのコンテンツの受信、及び、バッファリングの開始に遅延が生じる。そのため、コンテンツを迅速に配信する技術の提案が要請されている。
本技術は、このような状況に鑑みてなされたものであり、コンテンツ等のデータを迅速に配信することができるようにするものである。
本技術の送信装置、又は、第1のプログラムは、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信する配信部を備え、前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及び1個以上のサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含む送信装置、又は、そのような送信装置として、コンピュータを機能させるためのプログラムである。
本技術の送信方法は、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信するステップを含み、前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及びサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含む送信方法である。
以上のような送信装置、送信方法、及び、第1のプログラムにおいては、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットが配信される。前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及びサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含んでいる。
本技術の受信装置、又は、第2のプログラムは、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信する受信部を備え、前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及びサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含む受信装置、又は、そのような受信装置として、コンピュータを機能させるためのプログラムである。
本技術の受信方法は、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信するステップを備え、前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及びサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含む受信方法である。
以上のような受信装置、受信方法、及び、第2のプログラムにおいては、フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットが受信される。前記フラグメントは、moof(movie fragment)と、mdat(media data)ヘッダ及びサンプル群を有するmdatとを有し、前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、前記LCTヘッダは、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、前記moofの少なくとも一部であるmoofサブセットとを含んでいる。
なお、送信装置、及び、受信装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
本技術によれば、データを迅速に配信すること等ができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術を適用したコンテンツ提供システムの一実施の形態の構成例を示すブロック図である。 配信サーバ11の構成例を示すブロック図である。 クライアント12の構成例を示すブロック図である。 コンテンツ提供システムによるコンテンツの提供の処理の例を説明する図である。 コンテンツ提供システムにおいて、ネットワーク10を介して配信されるデータの例を示す図である。 MPD,SDP,USD、及び、OMA-ESGを説明する図である。 DASHのファイル配信単位であるセグメントの構成を説明する図である。 1個のフラグメントを有するセグメントと、複数のフラグメントを有するセグメントとの構成例を示す図である。 DASHでの、セグメントをファイル配信単位とするコンテンツの配信の例を示す図である。 配信サーバ11での、ポーションをファイル配信単位とするコンテンツの配信の概要を説明する図である。 セグメントとポーションとの関係の例を示す図である。 ポーション60としてのhttpレスポンスの例を示す図である。 ポーション70としてのhttpレスポンスの例を示す図である。 ポーション単位でのコンテンツの配信の処理の例を説明するフローチャートである。 ポーション単位でのコンテンツの受信の処理の例を説明するフローチャートである。 LCTパケットによるポーション(及びセグメント)のマルチキャスト配信を説明する図である。 LCTパケットのフォーマットを示す図である。 LCTヘッダのフォーマットを示す図である。 ポーション単位でのコンテンツの配信の例を示す図である。 LCTヘッダの拡張ヘッダ(Header Extentions)のフォーマットを示す図である。 優先度パラメータを格納する新たな拡張ヘッダの定義の例を示す図である。 優先度パラメータ(Filtering Parameter)の定義の例を示す図である。 MVC Filterの定義の例を示す図である。 優先度パラメータを有するLCTパケットの配信の処理の例を説明するフローチャートである。 クライアント12が行うパケットフィルタリングの処理の例を説明するフローチャートである。 デコード関係情報を格納するLCTヘッダの新たな拡張ヘッダの定義の例を示す図である。 拡張ヘッダにデコード関係情報が格納されるLCTパケットの第1の例を示す図である。 第1の例のLCTパケットを用いて、ポーション単位でのコンテンツの配信を行う場合の、その配信の処理の例を説明するフローチャートである。 第1の例のLCTパケットを用い、ポーション単位で配信されてくるコンテンツの受信の処理の例を説明するフローチャートである。 拡張ヘッダにデコード関係情報が格納されるLCTパケットの第2の例を示す図である。 第2の例のLCTパケットを用いて、ポーション単位でのコンテンツの配信を行う場合の、その配信の処理の例を説明するフローチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
<本技術を適用したコンテンツ提供システムの一実施の形態>
図1は、本技術を適用したコンテンツ提供システムの一実施の形態の構成例を示すブロック図である。
図1において、コンテンツ提供システムは、1以上の配信サーバ11、1以上のクライアント12、及び、NTP(Network Time Protocol)サーバ13が、ネットワーク10に接続されて構成される。
図1のコンテンツ提供システムでは、DASHを利用して、配信サーバ11から、ネットワーク10を介して、クライアント12に対して、コンテンツが提供される。
ここで、現行のDASHでは、ストリーミングそのものがOTT/CDN(Over The Top/Contents Delivery Network)上のユニキャストにより行われることが前提となっているが、図1のコンテンツ提供システムでは、コンテンツを、ユニキャスト配信する他、例えば、携帯網上の品質の保証された一斉同報可能なマルチキャストネットワーク(eMBMS等)上でマルチキャスト配信する。
ネットワーク10は、ユニキャストやマルチキャストが可能な、インターネット等の双方向ネットワークと、ブロードキャストやマルチキャストが可能な放送系ネットワークとを包含する。ネットワーク10としては、例えば、3GPP(3rd Generation Partnership Project)のMBMS(Multimedia Broadcast Multicast Service)(eMBMS(Evolved MBMS)を含む)等を採用することができる。
配信サーバ11は、例えば、放送局に対応し、その放送局のチャンネル(サービス)の番組として、同一内容のコンテンツのストリームであって、ビットレートや画サイズ等が異なる複数のストリームを、ネットワーク10を介して配信する。
クライアント12は、配信サーバ11が配信するコンテンツ(のストリーム)を、ネットワーク10を介して受信して再生する。
NTPサーバ13は、UTC(Coordinated Universal Time)タイムフォーマットに従った時刻情報であるNTP時刻を、ネットワーク10を介して提供する。
配信サーバ11、及び、クライアント12は、NTPサーバ13から提供されるNTP時刻に同期して動作することができる。
なお、配信サーバ11が配信する番組は、リアルタイムの番組(生放送の番組)であってもよいし、録画番組であってもよい。
<配信サーバ11の構成例>
図2は、図1の配信サーバ11の構成例を示すブロック図である。
図2において、配信サーバ11は、チャンネルストリーマ21、セグメンタ22、メタデータジェネレータ23、FLUTE(File Delivery over Unidirectional Transport)ストリーマ24、マルチキャストサーバ25、及び、webサーバ26を有する。
ここで、チャンネルストリーマ21ないしwebサーバ26は、ネットワーク10上の一カ所に配置することもできるし、ネットワーク10上に分散して配置することもできる。チャンネルストリーマ21ないしwebサーバ26を、ネットワーク10上に分散して配置する場合、相互間での通信は、ネットワーク10の他、専用線その他の任意の通信回線を介して行うことができる。
チャンネルストリーマ21は、配信サーバ11のチャンネルの番組として配信するためのコンテンツのソースデータとしてのビデオや、オーディオ、字幕等を管理しており、コンテンツのソースデータとしてのビデオ等からビットレートが異なる複数のストリーミングデータを生成して、セグメンタ22に供給する。
セグメンタ22は、チャンネルストリーマ21からの各ストリーミングデータを、時間方向に分割したセグメントのファイルを生成し、FLUTEストリーマ24、及び、webサーバ26に供給する。
すなわち、セグメンタ22は、ストリーミングデータを分割して、例えば、fragmentedMP4のフラグメント(moofとmdat)を生成し、そのフラグメントの1以上を集めてセグメントのファイルを生成する。
また、セグメンタ22は、セグメントのURL(セグメントを提供するサーバ(例えば、配信サーバ11)のURL)や、セグメントのレンジ(range)(セグメントに含まれるビデオ等のコンテンツ中の範囲を表す情報)等の、MPDの生成に必要なセグメントに関係する関係情報を、メタデータジェネレータ23に供給する。
ここで、セグメンタ22は、フラグメントを集めたセグメントではなく、フラグメントの生成中に、フラグメントの一部で構成される後述するポーションを生成し、セグメントに代えて、ポーションを、FLUTEストリーマ24に供給することができる。
メタデータジェネレータ23は、セグメンタ22から供給されるセグメントの関係情報等を用いて、クライアント12でのセグメントの受信等に必要なコンテンツのメタデータとして、例えば、MBMSのUSD(User Service Description)、DASHのMPD、及び、IETF(Internet Engineering Task Force)のSDP(Session Description Protocol)(ファイル)の組み合わせ、又は、それらのUSD,MPD、及び、SDPに、OMA-ESG(Open Mobile Alliance-Electronic Service Guide)を加えた組み合わせを生成する。
すなわち、メタデータジェネレータ23は、セグメンタ22から供給されるセグメントの関係情報を用いて、クライアント12がセグメントを受信して再生制御を行うために必要な、セグメントのURL等が記述されたMPDを生成する。
さらに、メタデータジェネレータ23は、コンテンツがマルチキャスト配信(ブロードキャスト配信を含む)されることをアナウンスするアナウンス情報として、USD、及び、SDP、又は、USD,SDP、及び、OMA-ESGを生成する。
メタデータジェネレータ23は、メタデータを、FLUTEストリーマ24、及び、webサーバ26に供給する。
FLUTEストリーマ24は、セグメンタ22から供給されるコンテンツ(のセグメント又はポーション)を、FLUTEパケット、すなわち、LCT(Layerd Coding Transport)パケット(本実施の形態では、LCTヘッダを有するパケットを意味し、ALC(Asynchronous Layered Coding)パケットを含む)に格納し、マルチキャストサーバ25に供給する。
また、FLUTEストリーマ24は、メタデータジェネレータ23から供給されるメタデータを、LCTパケットに格納し、マルチキャストサーバ25に供給する。
マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットを、ネットワーク10を介して(FLUTE)マルチキャスト配信する。
ここで、FLUTEストリーマ24からのLCTパケットには、上述したように、コンテンツ(のセグメント又はポーション)や、メタデータが格納されているので、マルチキャストサーバ25では、コンテンツや、メタデータが、マルチキャスト配信されることになる。
webサーバ26は、クライアント12からの要求(httpリクエスト)に応じて、メタデータジェネレータ23からのメタデータや、セグメンタ22からのコンテンツ(のセグメント)を、ネットワーク10を介して、クライアント12に、(http)ユニキャスト配信する。
以上のように、マルチキャストサーバ25、及び、webサーバ26は、コンテンツやメタデータを配信する配信部として機能する。
なお、図2では、webサーバ26において、コンテンツのセグメントをユニキャスト配信することとしたが、webサーバ26では、マルチキャストサーバ25と同様に、コンテンツのセグメントではなく、ポーションを、ユニキャスト配信することができる。
<クライアント12の構成例>
図3は、図1のクライアント12の構成例を示すブロック図である。
図3において、クライアント12は、受信部30、及び、再生部33を有する。
受信部30は、例えば、ユーザによるクライアント12の操作等に応じて、配信サーバ11から配信されるコンテンツやメタデータを受信する受信部として機能する。
すなわち、受信部30は、配信サーバ11から配信されるメタデータを受信する。さらに、受信部30は、例えば、ユーザによるクライアント12の操作等に応じて、配信サーバ11から受信したメタデータに基づき、配信サーバ11から配信されるコンテンツ(のセグメントやポーション)を受信する。
そして、受信部30は、配信サーバ11から受信したコンテンツを、再生部33に供給し、配信サーバ11から受信したメタデータに基づき、再生部33でのコンテンツの再生を制御する。
再生部33は、受信部30の制御に従い、受信部30から供給されるコンテンツとしてのビデオや、オーディオ、字幕等を再生する。
ここで、受信部30は、ミドルウェア31とDASHクライアント32を有する。
DASHクライアント32は、必要に応じて、MPDを要求するhttpリクエストや、コンテンツのセグメントを要求するhttpリクエストを、ミドルウェア31に出力する。
ミドルウェア31は、配信サーバ11からマルチキャスト配信されてくるコンテンツ(のセグメントやポーション)や、メタデータを必要に応じて受信しており、DASHクライアント32がhttpリクエストを出力すると、そのhttpリクエストにより要求されているMPDやセグメントが、マルチキャスト配信されているかどうかを、メタデータに基づいて判定する。
そして、DASHクライアント32が出力するhttpリクエストにより要求されているMPDやセグメントが、マルチキャスト配信されている場合には、ミドルウェア31は、そのマルチキャスト配信されるMPDやセグメント(又はセグメントの一部を含むポーション)を受信し、DASHクライアント32に供給する。
なお、ミドルウェア31は、DASHクライアント32が出力するhttpリクエストにより要求されているMPDやセグメントが、既に受信済みである場合には、その受信済みのMPDやセグメントを、DASHクライアント32に供給する。
一方、DASHクライアント32が出力するhttpリクエストにより要求されているMPDやセグメントが、マルチキャスト配信されていない場合、ミドルウェア31は、DASHクライアント32が出力するhttpリクエストを、そのまま、ネットワーク10(の配信サーバ11)に送信する。そして、ミドルウェア31は、そのhttpリクエストに応じて、(配信サーバ11から)ユニキャスト配信されてくるMPDやセグメントを受信し、DASHクライアント32に供給する。
したがって、DASHクライアント32は、一般的なDASHクライアントと同様に、必要なMPDやセグメントを要求するhttpリクエストを出力し、そのhttpリクエストに応じて、ミドルウェア31から供給されるMPDやセグメントを受信して処理する。
<コンテンツ提供システムの処理>
図4は、図1のコンテンツ提供システムによるコンテンツの提供の処理の例を説明する図である。
チャンネルストリーマ21(図2)は、ステップS11において、配信サーバ11のチャンネルの番組として配信するためのコンテンツのソースデータとしてのビデオ等からビットレートが異なる複数のストリーミングデータを生成する。
そして、チャンネルストリーマ21は、ステップS12において、コンテンツの、ビットレートが異なる複数のストリーミングデータを、セグメンタ22に供給する。
セグメンタ22(図2)は、ステップS21において、チャンネルストリーマ21から供給されるコンテンツ(の複数のストリーミングデータ)を受信する。
セグメンタ22は、ステップS22において、チャンネルストリーマ21からのコンテンツから、DASHのファイル配信単位であるセグメントを生成し、ステップS23において、そのセグメントを、FLUTEストリーマ24、および、webサーバ26に供給する。
さらに、セグメンタ22は、ステップS24において、セグメントの関係情報を生成し、メタデータジェネレータ23に供給する。
メタデータジェネレータ23(図2)は、ステップS31において、セグメンタ22からステップS24で供給されるセグメントの関係情報を受信する。
そして、メタデータジェネレータ23は、ステップS32において、セグメンタ22からの関係情報等を用いて、コンテンツのメタデータを生成し、FLUTEストリーマ24、及び、webサーバ26に供給する。
FLUTEストリーマ24(図2)は、ステップS41において、セグメンタ22からステップS23で供給されるコンテンツ(のセグメント)を受信し、ステップS42において、そのコンテンツを含むLCTパケットを生成して、マルチキャストサーバ25に供給する。
さらに、FLUTEストリーマ24は、ステップS43において、メタデータジェネレータ23からステップS32で供給されるメタデータを受信し、ステップS44において、そのメタデータを含むLCTパケットを生成して、マルチキャストサーバ25に供給する。
マルチキャストサーバ25(図2)は、ステップS51において、FLUTEストリーマ24からステップS42で供給される、コンテンツを含むLCTパケットを受信し、ステップS52において、メタデータを含むLCTパケットを受信する。
そして、マルチキャストサーバ25は、ステップS53において、FLUTEストリーマ24からのメタデータを含むLCTパケットを、マルチキャスト配信し、ステップS54において、FLUTEストリーマ24からのコンテンツを含むLCTパケットを、マルチキャスト配信する。
webサーバ26(図2)は、ステップS61において、セグメンタ22からステップS23で供給されるコンテンツ(のセグメント)を受信し、ステップS62において、メタデータジェネレータ23からステップS32で供給されるメタデータを受信する。
そして、ステップS63において、webサーバ26は、クライアント12から、メタデータを要求するhttpリクエストが送信されてくると、そのhttpリクエストを受信する。
その後、ステップS64において、webサーバ26は、クライアント12からのhttpリクエストによって要求されているメタデータを、クライアント12に、ユニキャスト配信する。
また、ステップS65において、webサーバ26は、クライアント12から、コンテンツ(のセグメント)を要求するhttpリクエストが送信されてくると、そのhttpリクエストを受信する。
その後、ステップS66において、webサーバ26は、クライアント12からのhttpリクエストによって要求されているコンテンツ(のセグメント)を、クライアント12に、ユニキャスト配信する。
クライアント12(図3)では、受信部30が、ステップS71において、マルチキャストサーバ25がステップS53でマルチキャスト配信するメタデータ(のLCTパケット)を受信する。
又は、クライアント12では、受信部30が、ステップS72において、メタデータを要求するhttpリクエストを送信する。
クライアント12がステップS72で送信するhttpリクエストは、上述したように、webサーバ26がステップS63で受信し、ステップS64で、そのhttpリクエストによって要求されているメタデータを、クライアント12に、ユニキャスト配信する。
クライアント12の受信部30は、ステップS73において、以上のようにしてユニキャスト配信されてくるメタデータを受信する。
そして、クライアント12の受信部30は、ステップS74において、ステップS71又はS73で受信したメタデータに基づき、マルチキャストサーバ25がステップS54でマルチキャスト配信するコンテンツ(のLCTパケット)を受信する。
又は、クライアント12では、受信部30が、ステップS75において、ステップS71又はS73で受信したメタデータに基づき、コンテンツを要求するhttpリクエストを送信する。
クライアント12がステップS75で送信するhttpリクエストは、上述したように、webサーバ26がステップS65で受信し、ステップS66で、そのhttpリクエストによって要求されているコンテンツを、クライアント12に、ユニキャスト配信する。
クライアント12の受信部30は、ステップS76において、以上のようにしてユニキャスト配信されてくるコンテンツを受信する。
そして、クライアント12の再生部33は、ステップS77において、受信部30がステップS74又はS76で受信したコンテンツを、メタデータ(MPD)に基づいて再生する。
<ネットワーク10を介して配信されるデータの説明>
図5は、図1のコンテンツ提供システムにおいて、ネットワーク10を介して配信されるデータの例を示す図である。
コンテンツ提供システムでは、MPDや、SDP,USD,OMA-ESG等のメタデータと、コンテンツ(のセグメント又はポーション)とが、クライアント12に配信される。
メタデータ、及び、コンテンツは、マルチキャスト配信することもできるし、ユニキャスト配信することもできる。
メタデータとしては、MPD,SDP、及び、USDの組み合わせや、それらに、OMA-ESGを加えた組み合わせが用いられる。
図6は、MPD,SDP,USD、及び、OMA-ESGを説明する図である。
いま、ある番組を、注目する注目番組とすると、その注目番組のOMA-ESGには、注目番組の詳細情報や、注目番組のUSDへのアクセス方法等が記述される。
したがって、クライアント12において、注目番組のOMA-ESGを取得すると、そのOMA-ESGに記述されているUSDへのアクセス方法を参照することにより、注目番組のUSDを取得することができる。
注目番組のUSDには、注目番組のSDPのURI(Uniform Resource Identifier)や、注目番組のMPDのURI等が記述される。
したがって、クライアント12において、注目番組のUSDを取得すると、そのUSDに記述されているSDPやMPDのURIを参照することにより、注目番組のSDPやMPDを取得することができる。
注目番組のSDPには、注目番組のコンテンツをマルチキャスト配信するIPアドレスとポート番号等のトランスポート属性等が記述される。
したがって、注目番組のSDPを取得することにより、そのSDPに記述されているIPアドレスとポート番号に基づき、マルチキャスト配信されてくる注目番組のコンテンツを受信することができる。
以上のように、USD、及び、SDPの組み合わせや、USD,SDP、及び、OMA-ESGの組み合わせによれば、クライアント12では、コンテンツがマルチキャスト配信されることを認識し、そのマルチキャスト配信されてくるコンテンツを受信することができる。
注目番組のMPDには、注目番組のセグメントのURLや、そのセグメントの再生制御に必要な情報等が記述される。
したがって、注目番組のMPDを取得することにより、そのMPDに記述されているURLに基づき、注目番組のセグメントをユニキャストで受信することができる。また、注目番組のMPDに基づき、注目番組のセグメントを再生することができる。
すなわち、MPDには、セグメントの再生制御に必要な情報が含まれるため、MPDは、セグメントをユニキャストで受信するのに必要である他、セグメントの再生にも必要である。
<セグメントの構成>
図7は、DASHのファイル配信単位であるセグメントの構成を説明する図である。
ここで、DASHで配信するコンテンツのフォーマットは、特に限定されるものではないが、本実施の形態では、DASHで配信するコンテンツのフォーマットとして、例えば、fragmentedMP4(のファイル)を採用することとする。
セグメント(Media Segment)は、styp(segment type)(ボックス)、必要なsidx(segment index)(ボックス)、1個以上のフラグメント(MP4 fragment)を有する。
ここで、stypには、'msdh'や'msix'が設定される。stypが、'msdh'であるときは、セグメントに、sidxが含まれず、stypが、'msix'であるときは、セグメントに、sidxが含まれる。以下では、sidxについては、適宜、記載を省略する。
フラグメントは、moof(movie fragment)(ボックス)、及び、mdat(media data)(ボックス)を有する。
mdatは、mdatヘッダと、1個以上のサンプルを有する。サンプルとは、MP4ファイル内のメディアデータ(ビデオ等のデータ)にアクセスする場合の、最小のアクセス単位である。したがって、サンプルより細かい単位で、MP4ファイル内のメディアデータにアクセスすることはできない。
moofは、mfhd(movie fragment header)(ボックス)と、traf(track fragment)(ボックス)とを有する。
mfhdには、シーケンスナンバ(sequence_number)が格納される。sequence_numberは、そのsequence_numberを有するフラグメントの順番を表す。
trafは、tfhd(track fragment header)(ボックス)や、tfdt(track fragment decode time)(ボックス)、trun(track fragment run)(ボックス)、sdtp(independent samples)(ボックス)等を有する。
tfdtには、BaseMediaDecodeTimeが格納される。BaseMediaDecodeTimeは、そのBaseMediaDecodeTimeを有するフラグメントに含まれるサンプルのうちの、先頭のサンプルのプレゼンテーションタイムを表す。
trunには、そのtrunを有するフラグメントに含まれる各サンプルのプレゼンテーションタイムを計算するのに必要な情報が格納される。
図8は、1個のフラグメントを有するセグメントと、複数のフラグメントを有するセグメントとの構成例を示す図である。
図8Aは、1個のフラグメントを有するセグメントの構成例を示している。
図8Aでは、3個の連続するセグメント#1,#2,#3のそれぞれが、1個のフラグメントを有する。
この場合、最初のセグメント#1が有する1個のフラグメントのシーケンスナンバ(sequence_number)(以下、sqnとも記載する)が、例えば、1であるとすると、2番目のセグメント#2が有する1個のフラグメントのsqnは、例えば、直前のフラグメントのsqn=1を1だけインクリメントした2となる。さらに、3番目のセグメント#3が有する1個のフラグメントのsqnは、例えば、直前のフラグメントのsqn=2を1だけインクリメントした3となる。
図8Bは、複数のフラグメントを有するセグメントの構成例を示している。
図8Bでは、セグメント#1は、3個のフラグメントを有している。
この場合、セグメント#1の最初のフラグメントのsqnが、例えば、1であるとすると、セグメント#1の2番目のフラグメントのsqnは、例えば、直前のフラグメントのsqn=1を1だけインクリメントした2となる。さらに、セグメント#1の3番目のフラグメントのsqnは、例えば、直前のフラグメントのsqn=2を1だけインクリメントした3となる。
以下、説明を簡単にするため、特に断らない限り、セグメントは、図8Aに示したように、1個のフラグメントを有することとする。
<セグメントをファイル配信単位とするコンテンツの配信>
図9は、DASHでの、セグメントをファイル配信単位とするコンテンツの配信の例を示す図である。
図9では、複数である、例えば、3個のサンプル群#1,#2、及び、#3が、フラグメントを構成するサンプル群として、順次生成されている。そして、配信サーバ11(図2)のセグメンタ22において、フラグメントの最後のサンプル群#3の生成の完了後に、それらのサンプル群#1ないし#3を配置したmdatと、サンプル群#1ないし#3のmoofとを含むフラグメントが生成され、そのフラグメントを含むセグメントが生成されており、その後、FLUTEストリーマ24、及び、マルチキャストサーバ25において、そのセグメントが配信される。
ここで、サンプル群#1,#2、及び、#3は、それぞれ、1以上のサンプルで構成される。また、サンプル群#1ないし#3のmoofは、例えば、サンプル群#1ないし#3の生成と並列して行われる。
なお、フラグメントとするコンテンツの範囲(フラグメントのmdatとして配置するサンプル群#1ないし#3)としては、例えば、ランダムアクセス可能な最小の単位であるGOP(Group Of Picture)の範囲を採用することができる。
但し、フラグメントとするコンテンツの範囲は、GOPの範囲に限定されるものではない。
ところで、GOPの時間としては、例えば、約0.5ないし2秒程度が採用されることが多い。したがって、フラグメントとするコンテンツの範囲として、GOPの範囲を採用する場合には、moof、ひいては、セグメントは、少なくとも、約0.5ないし2秒程度であるGOPの時間だけ待って生成される。すなわち、セグメントの生成には、少なくとも、GOPの時間だけ要する。
その結果、セグメントをファイル配信単位としてマルチキャスト配信する場合には、セグメントの配信に、少なくとも、そのセグメントの生成に要するGOPの時間だけ待つ必要がある。
今後、より高画質の動画配信が行われることが予想され、その場合、セグメントのデータ量は膨大になる。かかる膨大なデータ量のセグメントを、GOPの時間だけ待って配信する場合には、ネットワークの帯域が圧迫され、シェーピングが必要になることがある。
したがって、セグメントをファイル配信単位とするのでは、最終的には、クライアントでのコンテンツの受信、及び、バッファリングの開始に遅延が生じる。
そこで、配信サーバ11では、セグメントよりも小さい、フラグメントの一部を含むデータ(以下、ポーションともいう)を、ファイル配信単位として、そのポーションをマルチキャスト配信することで、コンテンツ(のデータ)を迅速に配信し、これにより、クライアントでのコンテンツの受信、及び、バッファリングの開始に生じる遅延を抑制する。
<ポーションをファイル配信単位とするコンテンツの配信>
図10は、配信サーバ11での、ポーションをファイル配信単位とするコンテンツの配信の概要を説明する図である。
図10では、図9の場合と同様に、サンプル群#1,#2、及び、#3が、フラグメントを構成するサンプル群として、順次生成される。
但し、図10では、配信サーバ11(図2)のセグメンタ22において、フラグメントの最後のサンプル群#3の生成が完了するのを待たずに、サンプル群#1が生成された時点で、そのサンプル群#1を含むファイル配信単位としてのポーションが生成され、FLUTEストリーマ24、及び、マルチキャストサーバ25において、マルチキャスト配信される。
さらに、図10では、セグメンタ22において、次のサンプル群#2が生成された時点で、そのサンプル群#2を含むファイル配信単位としてのポーションが生成され、FLUTEストリーマ24、及び、マルチキャストサーバ25において、マルチキャスト配信される。
そして、セグメンタ22において、フラグメントの最後のサンプル群#3の生成が完了すると、そのサンプル群#3を含むファイル配信単位としてのポーションが生成され、FLUTEストリーマ24、及び、マルチキャストサーバ25において、マルチキャスト配信される。
以上のように、セグメントよりも小さい、フラグメントの一部のサンプル群(図10では、サンプル群#1,#2,#3のそれぞれ)を含むポーションを生成し、そのポーションをマルチキャスト配信することにより、コンテンツを迅速に配信し、クライアントでのコンテンツの受信、及び、バッファリングの開始に生じる遅延を抑制することができる。
ここで、サンプル群#1ないし#3が、例えば、1GOPのデータであるとすると、サンプル群#1は、例えば、GOPにおいて最初に符号化されるIピクチャのデータに相当する。そして、サンプル群#2は、GOPのIピクチャの後に符号化される1ピクチャ以上のPピクチャやBピクチャのデータに相当し、サンプル群#3は、GOPの残りのPピクチャやBピクチャのデータに相当する。
<ポーション>
図11は、セグメントとポーションとの関係の例を示す図である。
図11Aは、セグメントの例を示している。
図11Aにおいて、セグメント50は、styp51と、(1個の)フラグメント52とを有する。
フラグメント52は、moof53とmdat54とから構成される。
moof53には、図7で説明したように、フラグメント52のシーケンスナンバsqnと、フラグメント52のmdat54の先頭のサンプル(図11Aでは、サンプル群56の先頭のサンプル)のプレゼンテーションタイムを表すBaseMediaDecodeTime(以下、bmdtともいう)が、少なくとも格納されている。
ここで、図11Aでは、フラグメント52のシーケンスナンバsqnとして、1が設定されている。
mdat54には、mdatヘッダ55と、3個のサンプル群56,57、及び、58とが、その順で格納されている。サンプル群56ないし58は、例えば、図10のサンプル群#1ないし#3に、それぞれ相当する。
mdat54に格納された3個のサンプル群56ないし58のうちの、2番目のサンプル群57の先頭のサンプルは、最初のサンプル群56の先頭からn1サンプル目のサンプルになっている。
また、3個のサンプル群56ないし58のうちの、3番目のサンプル群58の先頭のサンプルは、最初のサンプル群56の先頭からn2(>n1)サンプル目のサンプルになっている。
ここで、mdatに格納されたあるサンプルが、そのmdatの先頭のサンプルから何番目のサンプルであるかを、以下、サンプル番号ともいう。
図11Aにおいて、サンプル群57の先頭のサンプルのサンプル番号は、n1であり、サンプル群58の先頭のサンプルのサンプル番号は、n2である。
図11B、図11C、及び、図11Dは、図11Aのセグメント50が生成される場合の、そのセグメント50に含まれるフラグメント52の一部を含むポーションの例を示している。
すなわち、図11Bは、フラグメント52の一部としてのサンプル群56を含むポーションの例を示している。また、図11Cは、フラグメント52の他の一部としてのサンプル群57を含むポーションの例を示しており、図11Dは、フラグメント52のさらに他の一部としてのサンプル群58を含むポーションの例を示している。
図11において、ポーション(のファイル)としては、httpレスポンス(のファイル)が採用されている。
図11Bにおいて、ポーション60は、フラグメント52の最初のサンプル群56を含むhttpレスポンスであり、ポーション60には、httpヘッダ61、MS/BR62、styp51、moofサブセット64、MS/BR65、mdatヘッダ55、MS/BR66、サンプル群56、及び、MS67が、その順で配置されている。MS/BR62ないしMS67は、メッセージボディを構成する。
httpヘッダ61は、メッセージボディがマルチパートメッセージボディ(multipart message body)であることを指示するhttpヘッダで、httpヘッダ61には、シーケンスナンバsqn,バージョンv、及び、NTP時刻ntが含まれる。
httpヘッダ61のシーケンスナンバsqnは、ポーション60に含まれる(フラグメント52の一部としての)サンプル群56を含むフラグメント52のmoof53に格納されるシーケンスナンバsqnと同一の1に設定される。
バージョンvは、そのバージョンvを含むポーションに含まれるフラグメントの一部としてのサンプル群の、そのフラグメントにおける順番を表す。バージョンvは、同一のシーケンスナンバsqnについて(sqnスコープで)、例えば、初期値を1として、1ずつインクリメントされる整数である。
httpヘッダ61のバージョンvを含むポーション60に含まれるフラグメント52の一部は、サンプル群56であり、そのサンプル群56の、フラグメント52における順番は、1番目であるので、httpヘッダ61のバージョンvには、1が設定される。
なお、セグメントが、例えば、図9に示したように、複数としての3個のフラグメントを含み、その3個のフラグメントのシーケンスナンバsqnが、それぞれ、1,2,3である場合において、各フラグメントのサンプル群を、例えば、2分割したサンプル群それぞれが含まれる6(=3×2)個のポーションが生成されるときには、その6個のポーションそれぞれのシーケンスナンバsqnとバージョンvとの組(sqn,v)は、それぞれ、(1,1),(1,2),(2,1),(2,2),(3,1),(3,2)となる。
httpヘッダ61のNTP時刻ntは、そのNTP時刻ntを含むポーション60に一部(サンプル群56)が含まれるフラグメント52のmoof53に格納されるbmdt(BaseMediaDecodeTime)、すなわち、フラグメント52の先頭のサンプル(サンプル群56の先頭のサンプル)のプレゼンテーションタイムを表すbmdtに対応するNTP時刻NTを表す。
MS/BR62は、マルチパートセパレータ(multipart-separater)と、その直後に配置されたstyp51のバイトレンジ(byte range)を表す。
MS/BR63は、マルチパートセパレータと、その直後に配置されたmoofサブセット64のバイトレンジを表す。
moofサブセット64は、フラグメント52の3個のサンプル群56ないし58のうちの、ポーション60に配置される1番目(最初)のサンプル群56を生成するまでに生成することができる、moof53のサブセットであり、moof53に格納されるシーケンスナンバsqnとbmdtとを含む。
サンプル群56を生成するまでに生成することができる、moof53のサブセットであるmoofサブセット64によれば、サンプル群56を再生することができる。
MS/BR65は、マルチパートセパレータと、その直後に配置されたmdatヘッダ55のバイトレンジを表す。
MS/BR66は、マルチパートセパレータと、その直後に配置されたサンプル群56のバイトレンジを表す。
MS67は、マルチパートセパレータを表す。
なお、図11Bでは、フラグメント52の最初のサンプル群56が含まれるポーション60に、styp51を含めることとしたが、styp51(さらには、図示せぬsidx)は、ポーション60とは別のhttpレスポンスに含めて配信することができる。
図11Cにおいて、ポーション70は、フラグメント52の2番目のサンプル群57を含むhttpレスポンスであり、ポーション70には、httpヘッダ71、MS/BR72、moofサブセット73、MS/BR74、サンプル群57、及び、MS75が、その順で配置されている。MS/BR72ないしMS75は、メッセージボディを構成する。
httpヘッダ71は、メッセージボディがマルチパートメッセージボディであることを指示するhttpヘッダで、httpヘッダ71には、シーケンスナンバsqn,バージョンv、及び、NTP時刻ntと、サンプルカウントスタートscs(SampleCountStart)とが含まれる。
httpヘッダ71のシーケンスナンバsqnは、ポーション70に含まれる(フラグメント52の一部としての)サンプル群57を含むフラグメント52のmoof53に格納されるシーケンスナンバsqnと同一の1に設定される。
httpヘッダ71のバージョンvには、2が設定される。すなわち、ポーション70には、フラグメント52のサンプル群56ないし58のうちの2番目のサンプル群57が含まれるので、httpヘッダ71のバージョンvには、2が設定される。
httpヘッダ71のNTP時刻ntは、そのNTP時刻ntを含むポーション70に一部(サンプル群57)が含まれるフラグメント52のmoof53に格納されるbmdtに対応するNTP時刻を表し、httpヘッダ61のNTP時刻nt=NTと同一である。
サンプルカウントスタートscsは、そのサンプルカウントスタートscsを含むポーションに含まれるサンプル群の先頭のサンプルの、フラグメントの先頭のサンプルからの順番を表す。
ポーション70に含まれるサンプル群57の先頭のサンプルは、図11Aで説明したように、最初のサンプル群56の先頭からn1サンプル目のサンプルであるので、httpヘッダ71のサンプルカウントスタートscsには、n1が設定される。
MS/BR72は、マルチパートセパレータと、その直後に配置されたmoofサブセット73のバイトレンジを表す。
moofサブセット73は、フラグメント52の3個のサンプル群56ないし58のうちの、ポーション70に配置される2番目のサンプル群57を生成するまでに生成することができる、moof53のサブセットであり、moof53に格納されるシーケンスナンバsqnとbmdtとを含む。
サンプル群57を生成するまでに生成することができる、moof53のサブセットであるmoofサブセット73では、サンプル群56を生成するまでに生成されるmoofサブセット64に、サンプル群57の再生に必要な情報が追加されており、したがって、moofサブセット73によれば、サンプル群57、さらには、サンプル群57が生成される前に生成されるサンプル群56を再生することができる。
MS/BR74は、マルチパートセパレータと、その直後に配置されたサンプル群57のバイトレンジを表す。
MS75は、マルチパートセパレータを表す。
図11Dにおいて、ポーション80は、フラグメント52の3番目のサンプル群58を含むhttpレスポンスであり、ポーション80には、httpヘッダ81、MS/BR82、moofサブセット83、MS/BR84、サンプル群58、及び、MS85が、その順で配置されている。MS/BR82ないしMS85は、メッセージボディを構成する。
httpヘッダ81は、メッセージボディがマルチパートメッセージボディであることを指示するhttpヘッダで、httpヘッダ81には、シーケンスナンバsqn,バージョンv、及び、NTP時刻ntと、サンプルカウントスタートscsとが含まれる。
httpヘッダ81のシーケンスナンバsqnは、ポーション80に含まれる(フラグメント52の一部としての)サンプル群58を含むフラグメント52のmoof53に格納されるシーケンスナンバsqnと同一の1に設定される。
httpヘッダ81のバージョンvには、3が設定される。すなわち、ポーション80には、フラグメント52のサンプル群56ないし58のうちの3番目のサンプル群58が含まれるので、httpヘッダ81のバージョンvには、3が設定される。
さらに、ポーション80に含まれるサンプル群58は、フラグメント52の最後のサンプル群であるため、すなわち、シーケンスナンバsqnが1になっている最後のサンプル群であるため、httpヘッダ81のバージョンvには、サンプル群58の、フラグメント52における順番である3とともに、フラグメントの最後のサンプル群であることを表す情報としての"-end"が設定される。
したがって、ポーションを受信する、例えば、クライアント12では、バージョンvによって、ポーションに含まれる(フラグメントの一部としての)サンプル群の順番と、そのサンプル群が、フラグメントの最後のサンプル群であるかどうかを認識することができる。
httpヘッダ81のNTP時刻ntは、そのNTP時刻ntを含むポーション80に一部(サンプル群58)が含まれるフラグメント52のmoof53に格納されるbmdtに対応するNTP時刻を表し、httpヘッダ61及び71のNTP時刻nt=NTと同一である。
サンプルカウントスタートscsは、上述したように、そのサンプルカウントスタートscsを含むポーションに含まれるサンプル群の先頭のサンプルの、フラグメントの先頭のサンプルからの順番を表す。
したがって、httpヘッダ81のサンプルカウントスタートscsには、n2が設定される。すなわち、ポーション80に含まれるサンプル群58の先頭のサンプルは、図11Aで説明したように、最初のサンプル群56の先頭からn2サンプル目のサンプルであるので、httpヘッダ81のサンプルカウントスタートscsには、n2が設定される。
MS/BR82は、マルチパートセパレータと、その直後に配置されたmoofサブセット83のバイトレンジを表す。
moofサブセット83は、フラグメント52の3個のサンプル群56ないし58のうちの、ポーション80に配置される3番目のサンプル群58を生成するまでに生成することができる、moof53のサブセットであり、moof53に格納されるシーケンスナンバsqnとbmdtとを含む。
ここで、moofサブセット83は、ポーション80に配置される3番目のサンプル群58、すなわち、フラグメント52の最後のサンプル群58を生成するまでに生成することができる、moof53のサブセットであるので、moof53に等しい。
以上のように、サンプル群58を生成するまでに生成することができる、moof53のサブセットであるmoofサブセット83は、moof53に等しいので、moofサブセット83によれば、サンプル群58、さらには、サンプル群58が生成される前に生成されるサンプル群56及び57を再生することができる。
MS/BR84は、マルチパートセパレータと、その直後に配置されたサンプル群58のバイトレンジを表す。
MS85は、マルチパートセパレータを表す。
以上のように、httpレスポンスであるポーションは、httpヘッダに、シーケンスナンバsqnと、バージョンvとを含むので、ポーションを受信したクライアント12(その他の装置)では、シーケンスナンバsqnと、バージョンvとに基づき、ポーションに含まれるサンプル群の、セグメントにおける順番を認識して再生することや、必要に応じて、セグメントを構成して再生することができる。
また、ポーションには、そのポーションに含まれるサンプル群の再生に必要なmoofの情報であるmoofサブセットが含まれるので、クライアント12では、セグメントを構成するすべてのポーション(サンプル群)を受信する前に、1個のポーションを受信した時点で、その1個のポーションに含まれるサンプル群が、単独で再生可能なサンプル群(例えば、Iピクチャのサンプル群)である場合や、既に受信しているサンプル群を用いて再生可能なサンプル群である場合には、受信した1個のポーションに含まれるサンプル群の再生を開始することができる。
なお、バージョンvは、シーケンスナンバsqnとともに、moofサブセットに含めることができる。但し、バージョンvを、シーケンスナンバsqnとともに、moofサブセットに含める場合には、moofに、バージョンvを含めるように、既存のmoofの定義を拡張する必要がある。これに対して、バージョンvを、httpヘッダに含める場合には、既存のmoofの定義を拡張せずに済む。
また、図11では、フラグメント52の2番目以降のサンプル群57及び58をそれぞれ含むポーション70及び80のhttpヘッダ71及び81には、サンプルカウントスタートscsが含まれ、フラグメント52の最初のサンプル群56を含むポーション60のhttpヘッダ61には、サンプルカウントスタートscsが含まれていないが、サンプルカウントスタートscsは、フラグメント52の最初のサンプル群56を含むポーション60のhttpヘッダ61にも含めることができる。
但し、フラグメントの最初のサンプル群の先頭のサンプルの、そのフラグメントの先頭のサンプルからの順番は、常に1であり、固定値であるため、フラグメントの最初のサンプル群を含むポーションのhttpヘッダ(バージョンvが1のhttpヘッダ)については、図11Bに示したように、サンプルカウントスタートscsを省略することができ、これにより、httpヘッダのサイズを小さくすることができる。
また、httpレスポンスであるポーションでは、httpヘッダに、フラグメントのmoofに格納されるbmdt(フラグメントの先頭のサンプルのプレゼンテーションタイムを表すbmdt)に対応するNTP時刻ntを含めることができるので、クライアント12では、ポーションを受信した場合に、対応するMPDがなくても、そのポーションに含まれるサンプル群を再生することが可能になる。
すなわち、コンテンツには、例えば、ライブ放送の番組のような、NTP時刻で表現される絶対時刻の時間軸上で再生のタイミングを制御する必要があるコンテンツがあり、かかるコンテンツのサンプルについては、各サンプルがマッピング(表示)される絶対時刻としてのNTP時刻を計算する必要がある。
ここで、フラグメントのN番目のサンプルのプレゼンテーションタイム(PresentatioTime(CompositionTime) of Nth Sample)は、次式に従って計算することができる。
PresentatioTime(CompositionTime) of Nth Sample =
BaseMediaDecodeTime + Sum of SampleDuration of (N-1) Samples + CompositionTimeOffset of Nth Sample
なお、Sum of SampleDuration of (N-1) Samplesと、CompositionTimeOffset of Nth Sampleとは、フラグメントのmoofに格納される情報(sampleCount,SampleDuration,CompositionTimeOffset)から求めることができ、BaseMediaDecodeTimeは、bmdtとして、moofに格納されている。
サンプルの絶対時刻は、そのサンプルのプレゼンテーションタイムの計算に用いられるBaseMediaDecodeTimeに対応するNTP時刻が分かれば、求めることができる。
DASHのMPDには、起点となるBaseMediaDecodeTime(BaseMediaDecodeTime=0)に対応するNTP時刻が記述されるので、MPDの取得が保証されている場合等には、httpヘッダには、フラグメントのmoofに格納されるbmdtに対応するNTP時刻ntを含めなくてもよい。
但し、httpヘッダに、フラグメントのmoofに格納されるbmdt(フラグメントの先頭のサンプルのプレゼンテーションタイムを表すbmdt)に対応するNTP時刻ntを含めることにより、クライアント12では、ポーションを受信した場合に、そのポーションのhttpヘッダに含まれるNTP時刻ntに基づいて、対応するMPDがなくても、そのポーションに含まれるサンプル群の各サンプルの絶対時刻としてのNTP時刻を計算し、そのNTP時刻に従って、サンプルを再生することができる。
また、httpレスポンスであるポーションでは、httpヘッダに、そのポーションに含まれるサンプル群の先頭のサンプルの、フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタートscsを含めることができるので、セグメントを構成する複数のポーション(セグメントに含まれる複数のサンプル群それぞれを含む複数のポーション)のうちの一部のポーションが欠落した場合でも、その欠落したポーションに続くポーション(に含まれるサンプル群)を再生することができる。
すなわち、セグメントを構成する複数のポーションのすべてを、クライアント12で受信することが保証されている場合には、サンプルカウントスタートscsがなくても、各ポーションの各サンプルが、フラグメントの先頭のサンプルから何番目のサンプルであるかのサンプル番号を認識することができ、そのサンプル番号に基づいて、moofサブセットから、サンプルの再生に必要な情報を取得し、サンプルを再生することができる。
但し、セグメントを構成する複数のポーションのうちの一部のポーションが欠落した場合には、その欠落したポーションに続くポーションに含まれるサンプルについては、サンプルカウントスタートscsがないと、サンプル番号を認識することができず、再生が困難になる。
ポーションのhttpヘッダに、サンプルカウントスタートscsを含めることで、セグメントを構成する複数のポーションのうちの一部のポーションが欠落した場合であっても、その欠落したポーションに続くポーションに含まれるサンプルについては、サンプルカウントスタートscsによって、サンプル番号を認識し、再生を行うことができる。
また、ポーションには、そのポーションに含まれるサンプル群を生成するまでに生成することができる、moof53のサブセットであるmoofサブセットが含められるので、ポーションを受信したクライアント12では、後続のポーションを待たずに、受信したポーションに含まれるサンプル群の再生を、そのポーションに含まれるmoofサブセットに基づいて開始することができる。
なお、ポーションのhttpヘッダには、その他、例えば、ポーションをマルチキャスト配信するFLUTEで配信される様々な属性情報であるFDT(File Delivery Table)を含めることができる。この場合、クライアント12では、ポーションのhttpヘッダに含まれるFDTを、FLUTEマルチキャスト配信されるデータの受信の用に供することができる。
図12は、図11のポーション60としてのhttpレスポンスの記述の例を示す図である。
記述100は、httpヘッダ61であり、そのhttpヘッダ61の記述101における"X-MoofSeqNumVersion"、及び、記述102における"X-NTPTimeStamp"は、新規に定義されたヘッダである。
記述101における"X-MoofSeqNumVersion"は、シーケンスナンバsqn、及び、バージョンvを表すヘッダであり、シーケンスナンバを表す変数sqnと、バージョンを表す変数vを有する。変数sqnには、フラグメント52のシーケンスナンバsqnである1が設定され、変数vには、ポーション60に含まれるサンプル群56の、フラグメント52における順番である1が設定される。
記述102における"X-NTPTimeStamp"は、(BaseMediaDecodeTimeに対応する)NTP時刻ntを表すヘッダであり、図12では、"X-NTPTimeStamp"に、フラグメント52の先頭のサンプル(サンプル群56の先頭のサンプル)のプレゼンテーションタイムを表すbmdtに対応するNTP時刻NTとして、2890844526が設定されている。
記述103は、MS/BR62であり、記述103における"SEPARATER_STRING"は、マルチパートセパレータを表す。また、記述103における"Content-range: bytes 492-499/124567654"は、直後のstyp51のバイトレンジを表す。
ここで、記述103におけるバイトレンジ"Content-range: bytes 492-499/124567654"は、フラグメントのサイズが、124567654バイトで、直後のstyp51が、その124567654バイトのうちの、492-499バイトであることを表す。
記述103の後には、styp51のバイト列が続く。
styp51のバイト列の後の記述104は、MS/BR63であり、記述104における"Content-range: bytes 500-991/124567654"は、直後のmoofサブセット64のバイトレンジを表す。
ここで、moofサブセットのバイトレンジについては、フラグメントの最初のサンプル群を含むポーション(図11では、ポーション60)の生成時に、フラグメントのmoof(図11では、moof53)のバイトレンジが予測され、そのmoofのバイトレンジの予測値が、フラグメントのサンプル群を含む各ポーション(図11では、ポーション60,70、及び、80)のmoofサブセットのバイトレンジとして採用される。したがって、ポーション60のmoofサブセット64、ポーション70のmoofサブセット73、及び、ポーション80のmoofサブセット83のバイトレンジは、同一の値(moof53のバイトレンジの予測値)となる。
記述104の後には、moofサブセット64のバイト列が続く。
moofサブセット64のバイト列の後の記述105は、MS/BR65であり、記述105における"Content-range: bytes 992-999/124567654"は、直後のmdatヘッダ55のバイトレンジを表す。
記述105の後には、mdatヘッダ55のバイト列が続く。
mdatヘッダ55のバイト列の後の記述106は、MS/BR66であり、記述106における"Content-range: bytes 1000-4999/124567654"は、直後のサンプル群56のバイトレンジを表す。
記述106の後には、サンプル群56のバイト列が続く。
サンプル群56のバイト列の後の記述107は、MS67である。
図13は、図11のポーション70としてのhttpレスポンスの記述の例を示す図である。
記述120は、httpヘッダ71であり、そのhttpヘッダ71の記述121における"X-MoofSeqNumVersion"、記述122における"X-NTPTimeStamp"、及び、記述123における"X-SampleCountStart"は、新規に定義されたヘッダである。
記述121における"X-MoofSeqNumVersion"は、図12で説明したように、シーケンスナンバsqn、及び、バージョンvを表すヘッダである。シーケンスナンバを表す変数sqnには、フラグメント52のシーケンスナンバsqnである1が設定され、バージョンを表す変数vには、ポーション70に含まれるサンプル群57の、フラグメント52における順番である2が設定される。
記述122における"X-NTPTimeStamp"は、図12で説明したように、NTP時刻ntを表すヘッダであり、フラグメント52の先頭のサンプルのプレゼンテーションタイムを表すbmdtに対応するNTP時刻NTとして、図11の場合と同一の2890844526が設定されている。
記述123における"X-SampleCountStart"は、サンプルカウントスタートscsを表すヘッダであり、図13では、"X-SampleCountStart"に、フラグメント70に含まれるサンプル群57の先頭のサンプルのサンプル番号n1が設定されている。
記述124は、MS/BR72であり、記述124における"Content-range: bytes 500-991/124567654"は、直後のmoofサブセット73のバイトレンジを表し、図12の記述105におけるmoofサブセット64のバイトレンジと同一になっている(moof53のバイトレンジの予測値になっている)。
記述124の後には、moofサブセット73のバイト列が続く。
moofサブセット73のバイト列の後の記述125は、MS/BR74であり、記述125における"Content-range: bytes 5000-7999/124567654"は、直後のサンプル群57のバイトレンジを表す。
記述125の後には、サンプル群57のバイト列が続く。
サンプル群57のバイト列の後の記述126は、MS75である。
図11のポーション80は、図13のポーション70と同様に構成される。
<ポーション単位でのコンテンツの配信>
図14は、ポーション単位でのコンテンツの配信の処理の例を説明するフローチャートである。
ステップS101において、配信サーバ11(図2)のセグメンタ22は、サンプル群を生成しようとしているフラグメント(例えば、図11のフラグメント52)を、注目フラグメントとして、注目フラグメントのmdatヘッダ、及び、最初のサンプル群を生成し、処理は、ステップS102に進む。
ステップS102では、セグメンタ22は、最初のサンプル群用のhttpヘッダ(例えば、図11のhttpヘッダ61)を生成し、処理は、ステップS103に進む。
すなわち、セグメンタ22は、注目フラグメントのmoofに格納されるシーケンスナンバと同一のシーケンスナンバsqn、最初のサンプル群の、注目フラグメントにおける順番を表す1であるバージョンv、及び、注目フラグメントのmoofに格納されるbmdtに対応するNTP時刻ntを含むhttpヘッダを、最初のサンプル群用のhttpヘッダとして生成する。
ステップS103では、セグメンタ22は、注目フラグメントについて、最初のサンプル群を生成するまでに生成することができたmoofの一部(最初のサンプル群の再生に必要なmoofの部分)を、最初のサンプル群用のmoofサブセットとして取得し、処理は、ステップS104に進む。
ステップS104では、セグメンタ22は、注目フラグメントを含むセグメントのstyp(及び必要なsidx)、最初のサンプル群用のmoofサブセット、注目フラグメントのmdatヘッダ、及び、最初のサンプル群に、最初のサンプル群用のhttpヘッダを付加することで、ポーションとしてのhttpレスポンスを生成し、FLUTEストリーマ24に供給して、処理は、ステップS105に進む。
ここで、注目フラグメントを含むセグメントが、複数のフラグメントを含み、注目フラグメントが、その複数のフラグメントの最初のフラグメントでない場合には、ステップS104で生成されるポーションとしてのhttpレスポンスには、styp(及び必要なsidx)は、含まれない。
ステップS105では、FLUTEストリーマ24が、セグメンタ22からのポーションとしてのhttpレスポンスを、LCTパケットにパケット化し、マルチキャストサーバ25が、そのLCTパケットをマルチキャスト配信して、処理は、ステップS106に進む。
ステップS106では、セグメンタ22は、注目フラグメントについて、次のサンプル群を、注目サンプル群として生成し、処理は、ステップS107に進む。
ステップS107では、セグメンタ22は、注目サンプル群用のhttpヘッダ(例えば、図11のhttpヘッダ71や81)を生成し、処理は、ステップS108に進む。
すなわち、セグメンタ22は、注目フラグメントのmoofに格納されるシーケンスナンバと同一のシーケンスナンバsqn、注目サンプル群の、注目フラグメントにおける順番を表すバージョンv、注目フラグメントのmoofに格納されるbmdtに対応するNTP時刻nt、及び、注目サンプル群の先頭のサンプルのサンプル番号を表すサンプルカウントスタートscsを含むhttpヘッダを、注目サンプル群用のhttpヘッダとして生成する。
ステップS108では、セグメンタ22は、注目フラグメントについて、注目サンプル群を生成するまでに生成することができた、注目サンプル群(及び、注目フラグメントの注目サンプル群を生成する前に生成されたサンプル群)の再生に必要なmoofの一部を、注目サンプル群用のmoofサブセットとして取得し、処理は、ステップS109に進む。
ステップS109では、セグメンタ22は、注目サンプル群用のmoofサブセット、及び、注目サンプル群に、注目サンプル群用のhttpヘッダを付加することで、ポーションとしてのhttpレスポンスを生成し、FLUTEストリーマ24に供給して、処理は、ステップS110に進む。
ステップS110では、ステップS105と同様に、FLUTEストリーマ24が、セグメンタ22からのポーションとしてのhttpレスポンスを、LCTパケットにパケット化し、マルチキャストサーバ25が、そのLCTパケットをマルチキャスト配信して、処理は、ステップS111に進む。
ステップS111では、セグメンタ22は、注目サンプル群が、注目フラグメントの最後のサンプル群であるかどうかを判定する。
ステップS111において、注目サンプル群が、注目フラグメントの最後のサンプル群でないと判定された場合、すなわち、注目フラグメントにおいて、注目サンプル群の次のサンプル群がある場合、処理は、ステップS106に戻り、注目サンプル群の次のサンプル群を、新たな注目サンプル群として、同様の処理が繰り返される。
また、ステップS111において、注目サンプル群が、注目フラグメントの最後のサンプル群であると判定された場合、処理は、ステップS101に戻り、例えば、注目フラグメントの次のフラグメントを、新たな注目フラグメントとして、以下、同様の処理が繰り返される。
<ポーション単位でのコンテンツの受信>
図15は、ポーション単位でのコンテンツの受信の処理の例を説明するフローチャートである。
ステップS121において、クライアント12(図3)の受信部31は、ポーションとしてのhttpレスポンスがマルチキャスト配信されているのを待って、そのポーションとしてのhttpレスポンスを受信し、処理は、ステップS122に進む。
ステップS122では、再生部33が、受信部31で受信されたポーションとしてのhttpレスポンスに含まれるサンプル群の再生を、そのhttpレスポンスに含まれるmoofサブセット、並びに、httpレスポンスのhttpヘッダに含まれるシーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsを必要に応じて用いて行う。
そして、処理は、ステップS122からS121に戻り、以下、同様の処理が繰り返される。
以上のように、配信サーバ11では、セグメントが生成されるのを待つことなく、そのセグメントに含まれるフラグメントの一部であるサンプル群が生成された時点で、そのサンプル群を含むポーションとしてのhttpレスポンスを配信するので、コンテンツを迅速に配信することができる。
その結果、クライアント12でのコンテンツの受信、及び、バッファリングの開始に遅延が生じることを抑制することができる。
<LCTパケット>
図16は、LCTパケットによるポーション(及びセグメント)のマルチキャスト配信を説明する図である。
FLUTEストリーマ24では、ポーション(及びセグメント)が、LCTパケットにパケット化され、マルチキャストサーバ25において、そのLCTパケットがマルチキャスト配信される。
FLUTEストリーマ24での、ポーションの、LCTパケットへのパケット化は、例えば、図16に示すように、ポーションを、所定のサイズの1個以上の小片に分割し、各小片を、LCTパケットに格納することで行われる。
図17は、LCTパケットのフォーマットを示す図である。
LCTパケットは、LCTヘッダ(LCT Header)、FECペイロードID(FEC Payload ID)、及び、エンコーディングシンボル(Encoding Symbol(s))が、その順で配置されて構成される。
ポーション(の小片)は、エンコーディングシンボルとして、LCTパケットに格納される。
図18は、LCTヘッダのフォーマットを示す図である。
LCTヘッダには、TSI(Transport Session Identifier),TOI(Transport Object Identifier)、及び、必要な拡張ヘッダ(Header Extensions)が含まれる。
TSIは、LCTパケットのセッションを識別する識別子である。例えば、本来、1個のセグメント50(図11)で配信されるべきサンプル群56,57、及び、58を含むポーション60,70、及び、80それぞれをパケット化したLCTパケットのTSIは、同一の値に設定される。
TOIは、LCTパケットのエンコーディングシンボルにデータが格納されるオブジェクトを識別する識別子である。例えば、ポーション60を分割した小片がエンコーディングシンボルに格納されるLCTパケットのTOIは、同一の値に設定される。
但し、例えば、ポーション60を分割した小片がエンコーディングシンボルに格納されるLCTパケットと、ポーション70を分割した小片がエンコーディングシンボルに格納されるLCTパケットとでは、エンコーディングシンボルにデータ(小片)が格納されるオブジェクトが、ポーション60と70とで異なるので、TOIは異なる。
クライアント12では、TOIが同一のLCTパケットを受信することで、そのLCTパケットに格納されたポーションの小片を集めて、元のポーションを再構成することができる。
図19は、ポーション単位でのコンテンツの配信の例を示す図である。
図19では、あるフラグメントが、サンプル群#1,#2,#3,・・・を有している。
そして、サンプル群#1は、例えば、他のビューを参照しないベースビュー(ベースレイヤのビュー)のビデオになっており、サンプル群#2,#3,・・・は、例えば、ベースビュー等の他のビューを参照することがあるノンベースビュー(エンハンスレイヤのビュー)のビデオになっている。
ポーション単位でのコンテンツの配信では、配信サーバ11において、サンプル群#iを含むポーション#iが生成される(i=1,2,3・・・)。そして、ポーション#iは、小片に分割され、ポーション#iの小片は、LCTパケット#iに格納されて配信される。
あるポーション#iの小片が格納されたLCTパケット#iのTOIは、同一の値になっているので、クライアント12では、LCTパケットを受信し、その受信したLCTパケットのうちの、TOIが同一のLCTパケットに格納されたポーション#iの小片を集めることで、元のポーション#iを再構成することができる。
ここで、上述したように、図19において、ポーション#1に含まれるサンプル群#1は、ベースビューのビデオになっており、サンプル群#2,#3,・・・は、ノンベースビューのビデオになっている。
以上のように、ポーションに含まれるサンプル群が、ベースビューのビデオや、ノンベースビューのビデオのような、何らかの基準で分類することができるデータ(処理単位)である場合には、ポーション(に含まれるサンプル群)単位で、LCTパケットを取捨選択するパケットフィルタリングを行うことができる。
すなわち、例えば、LCTパケットが配信されるネットワーク環境の変動等により、LCTパケットの配信に、十分なリソース(LCTパケットを最終的に受信するクライアント12のリソースを含む)を割り当てることが困難な場合には、LCTパケットの配信経路上のルータ(例えば、FLUTEマルチキャストのルータ)や、クライアント12のネットワークスタック(LCTパケットを処理するブロック)において、必要最小限、あるいは、処理の優先度が高いLCTパケットだけを選択して処理(転送やスタック等の処理)を行うことができる。
特に、ネットワーク環境の変動が激しい、例えば、携帯網を用いるコンテンツの配信では、上述のような、必要最小限のLCTパケットや、処理の優先度が高いLCTパケットだけを選択して処理するパケットフィルタリングの技術の要請は、高い。
ポーション単位で、LCTパケットを取捨選択するパケットフィルタリングを行う方法としては、ポーションとしてのhttpヘッダに、ポーションに含まれるサンプル群が、例えば、ベースビューのビデオであることや、ノンベースビューのビデオであること等を表す、サンプル群の属性情報(例えば、FDT等)を含めておき、そのサンプル群の属性情報に基づいて、そのサンプル群を含むポーション(の小片)が格納されたLCTパケットを取捨選択する方法がある。
しかしながら、ポーションとしてのhttpヘッダに、そのポーションに含まれるサンプル群の属性情報を含めておくのでは、パケットフィルタリングを行うたびに、サンプル群の属性情報を認識するために、LCTパケットから、元のポーションを再構成しなければならず、パケットフィルタリングを、効率的に行うことが困難となる。
そこで、配信サーバ11では、FLUTEストリーマ24において、LCTパケットの処理の優先度を表す優先度パラメータを含むLCTヘッダを有するLCTパケットを生成し、マルチキャストサーバ25において、そのような優先度パラメータを含むLCTヘッダを有するLCTパケットをマルチキャスト配信することができる。この場合、効率的なパケットフィルタリングを行うことができ、必要なLCTパケットを迅速に配信することや処理することが可能になる。
<優先度パラメータ>
本技術では、LCTヘッダの拡張ヘッダに、優先度パラメータを格納することができるように、LCTヘッダを拡張することで、LCTヘッダに、優先度パラメータを含める。
図20は、図18のLCTヘッダの拡張ヘッダ(Header Extentions)のフォーマットを示す図である。
拡張ヘッダの先頭の8ビットには、拡張ヘッダの種類(拡張ヘッダにHECとして格納される実データの種類)を表すHET(Header Extension Type)が格納される。
8ビットのHETが、127以下のとき、HETに続き、8ビットのHEL(Header Extension Length)が格納される。HELには、拡張ヘッダの長さ32×Nビットを表す値Nが設定される。
そして、HELに続き、32×N-8-8ビットの可変長(variable length)のHEC(Header Extension Content)が格納される。HECは、拡張ヘッダの実データである。
一方、8ビットのHETが、128以上のとき、HETに続き、32-8ビットのHECが格納される。
HETについては、既に、幾つかの値が規定されているが、本実施の形態では、HETに、まだ規定されてない値を採用することで、優先度パラメータを格納する新たな拡張ヘッダを定義する。
図21は、優先度パラメータを格納する新たな拡張ヘッダの定義の例を示す図である。
新たな拡張ヘッダは、8ビットのHET、8ビットのHEL、8ビットのFiltering SchemeURI、8ビットのFiltering Parameter Length、及び、8×FPLNビットのFiltering Parameterが、その順で配置されて構成される。
新たな拡張ヘッダのHETには、拡張ヘッダに、優先度パラメータが格納されていることを表す値としての、例えば、120が設定される。この場合、HETが127以下なので、図20に示したように、HETの後には、HELが配置される。
HELには、0ないし255の範囲の整数値HELNが設定される。整数値HELNとしては、32×HELNが拡張ヘッダの長さとなる値が採用される。
Filtering Scheme URIは、Filtering Parameterを定義するスキーム識別子(SchemeURI)である。
Filtering Parameter Lengthには、0ないし255の範囲の整数値FPLNが設定される。整数値FPLNとしては、32×FPLNが、Filtering Parameterの長さとなる値が採用される。
Filtering Parameterは、優先度パラメータであり、その定義(構造)は、Filtering Scheme URIによって特定される。
図22は、優先度パラメータ(Filtering Parameter)の定義の例を示す図である。
例えば、Filtering Scheme URI=1000が、図22の定義を表す。
図22では、優先度パラメータ(Filtering Parameter)は、64ビットであり、8ビットのTrack Reference Index、8ビットのPriority、8ビットのDependency Counter、8ビットのMVC Filter Length、及び、32ビットのMVC Filterが、その順で配置されて構成される。
Track Reference Indexには、0ないし255の範囲の整数値のうちの、LCTパケットに格納されているフラグメントの一部としてのサンプル群(LCTパケットに小片が格納されているポーションに含まれるサンプル群)が属するトラック(MP4ファイルのトラック)を識別する値が設定される。
優先度パラメータとしてのTrack Reference Indexによれば、例えば、所定のトラックに属するサンプル群を含むポーションの小片が格納されたLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
Priorityは、TOIが同一のLCTパケットごとに設定される。Priorityには、各値のTOIのLCTパケットの処理の優先度を表すインデクスが設定される。
Priorityに設定されるインデクスは、LCTパケットの処理の優先度をランク付けする、0ないし255の範囲の整数値であり、例えば、値が大きいほど、優先度が低い。
優先度パラメータとしてのPriorityによれば、例えば、所定の値以下のPriorityが設定されたTOIのLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
Dependency Counterには、そのDependency Counterを含むLCTパケットが影響する後続のLCTパケットの数Kが設定される。Dependency Counter=Kの場合、そのDependency Counter=KのLCTパケットの後続のK個のLCTパケットの処理が、Dependency Counter=KのLCTパケットの処理に依存する。
優先度パラメータとしてのDependency Counterによれば、例えば、Dependency Counterが1以上のLCTパケット、すなわち、後続の1個以上のLCTパケットに影響するLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
MVC Filter Lengthは、Boolean値をとり、Trueのときに、後続のMVC Filterが存在することを表す。
MVC Filterは、LCTパケットに小片が格納されたポーションに含まれるサンプル群が、MVC(Multiview Video Coding)のデータである場合に、そのMVCのデータを取捨選択するフィルタリングを行うための情報である。
MVC Filterとしては、例えば、RTPパケットに格納されるMVCのNAL(Network Abstraction Layer)ユニットのヘッダとして定義されているPRID(priority_id),TID(tempral_id)、及び、VID(View_id)の1以上を採用することができる。
図23は、MVC Filterの定義の例を示す図である。
32ビットのMVC Filterは、6ビットのpriority_id(PRID)、3ビットのtemporal_id(TID)、10ビットのview_id(VID)、及び、13ビットのReservedが、その順に配置されて構成される。
PRID,TID, VID、及び、Reservedは、以下のように定義される。
PRID: 6 bits
priority_id. This flag specifies a priority identifier for the NAL unit. A lower value of PRID indicates a higher priority.
TID: 3 bits
temporal_id. This component specifies the temporal layer (or frame rate) hierarchy. Informally put, a temporal layer consisting of view component with a less temporal_id corresponds to a lower frame rate.
A given temporal layer typically depends on the lower temporal layers(i.e. the temporal layers with less temporal_id values) but never depends on any higher temporal layer (i.e. a temporal layers with higher temporal_id value).
VID: 10 bits
view_id. This component specifies the view identifier of the view the NAL unit belongs to.
Reserved: 13bits
(将来拡張のための予約bit)
PIDは、NALユニット(LCTパケットに小片が格納されたポーションに含まれるサンプル群が、NALユニットである場合の、そのNALユニット)の優先度を表す。PIDが小さいほど、NALユニットの優先度は高い。
TIDは、ビデオ(LCTパケットに小片が格納されたポーションに含まれるサンプル群が、ビデオ(のデータ)である場合の、そのビデオ)の時間的なレイヤ(又はフレームレート)を表す。TIDが小さいレイヤほど、フレームレートは低い。あるレイヤは、そのレイヤよりもTIDが小さい下位レイヤに依存することはあるが、TIDが大きい上位レイヤに依存することはない。
VIDは、NALユニットが属するビューを表す。
Reservedは、将来のための予約ビットである。
以上のようなMVC Filterによれば、例えば、LCTパケットがビデオとしてのNALユニット(の一部)を含む場合に、PIDに基づき、優先度が高いNALユニットを含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
また、例えば、TIDに基づき、時間的なレイヤが所定のレイヤ以下のビデオ(のNALユニット)、すなわち、時間解像度としてのフレームレートが所定値以下のビデオを含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
さらに、例えば、VIDに基づき、所定のビューのビデオ(のNALユニット)を含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
その他、優先度パラメータとしては、様々な情報を採用することができる。
すなわち、例えば、LCTパケットが、動画、及び、静止画のうちのいずれかのビデオを含む場合には、そのビデオが、動画、又は、静止画であることを表す情報を、優先度パラメータとして採用することができる。この場合、動画、又は、静止画のビデオを含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
また、例えば、LCTパケットが、他のレイヤを参照しないベースレイヤ、及び、他のレイヤを参照することがある1以上のノンベースレイヤのうちのいずれかのレイヤのビデオを含む場合には、ビデオのレイヤを表す情報を、優先度パラメータとして採用することができる。この場合、例えば、ベースレイヤのビデオを含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
さらに、例えば、LCTパケットが、複数のビューのうちのいずれかのビューのビデオを含む場合には、ビデオのビューを表す情報を、優先度パラメータとして採用することができる。この場合、例えば、ユーザが所望するビューのビデオ(例えば、野球中継において、1塁側、3塁側、及び、バックネット側等の複数の位置から撮影された複数のビューのビデオのうちの、バックネット側から撮影したビューのビデオ)を含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。
また、例えば、LCTパケットが、複数の解像度のうちのいずれかの解像度のビデオを含む場合には、解像度を表す情報を、優先度パラメータとして採用することができる。この場合、例えば、所定の解像度(以下)のビデオを含むLCTパケットを優先的に選択して処理するパケットフィルタリングを行うことができる。優先度パラメータとしての解像度を表す情報としては、時間解像度、及び、空間解像度の一方、又は、両方の情報を採用することができる。
なお、パケットフィルタリングは、1種類の優先度パラメータに基づいて行う他、複数種類の優先度パラメータに基づいて行うことができる。
すなわち、例えば、パケットフィルタリングでは、優先度パラメータとしての、例えば、ビデオのビューを表す情報と、解像度を表す情報とに基づき、所定のビューのビデオであって、かつ、所定の解像度のビデオを含むLCTパケットを優先的に選択して処理することができる。
<優先度パラメータを有するLCTパケットの配信の処理>
図24は、優先度パラメータを有するLCTパケットの配信の処理の例を説明するフローチャートである。
ステップS201において、配信サーバ11のFLUTEストリーマ24(図2)は、LCTパケットのエンコーディングシンボル(図17)に格納するデータ(セグメンタ22から供給されるポーションの小片)や、配信サーバ11のオペレータの操作等に基づき、優先度パラメータを設定し、処理は、ステップS202に進む。
ステップS202では、FLUTEストリーマ24は、ステップS201で設定した優先度パラメータを含む拡張ヘッダ(図21)(図22)を生成し、処理は、ステップS203に進む。
ステップS203では、FLUTEストリーマ24は、ステップS202で生成した拡張ヘッダを含むLCTヘッダ(図18)を有し、セグメンタ22から供給されるポーションの小片を、エンコーディングシンボルに配置したLCTパケット(図17)を生成し、マルチキャストサーバ25に供給して、処理は、ステップS204に進む。
ステップS204では、マルチキャストサーバ25が、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信して、処理は、ステップS201に戻り、以下、同様の処理が繰り返される。
<パケットフィルタリングの処理>
図25は、クライアント12(その他、マルチキャスト配信されるLCTパケットを受信するルータ等の装置)が行うパケットフィルタリングの処理の例を説明するフローチャートである。
ステップS211において、クライアント12の受信部30(図3)は、ネットワーク環境や装置(クライアント12)のリソース、ユーザの操作、ユーザの嗜好等に基づいて、LCTパケットを処理するときの閾値とする優先度(以下、閾値優先度ともいう)を設定し、処理は、ステップS212に進む。
ステップS212では、受信部30は、LCTパケットがマルチキャスト配信されてくるのを待って、そのLCTパケットを受信し、処理は、ステップS213に進む。
ステップS213では、受信部30は、ステップS212で受信したLCTパケットのLCTヘッダに含まれる優先度パラメータと、ステップS211で設定した閾値優先度とに基づき、LCTパケットの処理の可否を判定する可否判定を行って、処理は、ステップS214に進む。
ステップS214では、受信部30は、ステップS213での可否判定の判定結果に従い、LCTパケットを取捨選択して、閾値優先度より優先度が低い優先度パラメータを有するLCTパケットについては処理を中止し、閾値優先度以上の優先度の優先度パラメータを有するLCTパケットについては処理を続行する。そして、処理は、ステップS214からステップS211に戻り、以下、同様の処理が繰り返される。
<デコード関係情報>
図26は、デコード関係情報を格納するLCTヘッダの新たな拡張ヘッダの定義の例を示す図である。
ここで、LCTパケットのエンコーディングシンボルに格納されたポーションとしてのhttpレスポンスに含まれるサンプル群のデコード(レンダリング(表示)を含む)にあたっては、まず最初に、moofに含まれるdecoding time(デコード時刻)及びcomposition time(表示時刻)や、httpヘッダに含まれるシーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscs等の情報が必要となる。
なお、上述のようなサンプル群のデコードに必要な、例えば、decoding timeや、composition time、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscs等の情報を、デコード関係情報ともいう。
デコード関係情報は、例えば、上述の優先度パラメータと同様に、LCTパケットのパケットフィルタリングに用いることができる。
また、デコード関係情報は、例えば、LCTパケットのエンコーディングシンボルに格納されたポーションとしてのhttpレスポンスに含まれるサンプル群を処理する処理順の決定等の、サンプル群のデコードのいわば前処理に用いることができる。
ところで、上述の場合には、decoding time及びcomposition timeを含むmoofサブセットや、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscs等のデコード関係情報は、LCTパケットのエンコーディングシンボルに格納されたポーションとしてのhttpレスポンスに含まれる。
したがって、デコード関係情報を用いて、LCTパケットのパケットフィルタリングや、デコードの前処理を行うためには、LCTパケットを解析し、そのLCTパケットのエンコーディングシンボルに格納されたポーションとしてのhttpレスポンスから、デコード関係情報を抽出する必要がある。
しかしながら、デコード関係情報の抽出に、LCTパケットを解析するのでは、時間を要することになり、効率的なパケットフィルタリングや、必要なLCTパケットの迅速な処理の妨げとなる。
そこで、配信サーバ11では、FLUTEストリーマ24において、デコード関係情報を含むLCTヘッダを有するLCTパケットを生成し、マルチキャストサーバ25において、そのようなデコード関係情報を含むLCTヘッダを有するLCTパケットをマルチキャスト配信することで、効率的なパケットフィルタリングや、必要なLCTパケットの迅速な処理を可能にする。
本技術では、デコード関係情報を含むLCTヘッダを有するLCTパケットを生成するため、上述の優先度パラメータを含むLCTヘッダを有するLCTパケットを生成する場合と同様に、HETに、まだ規定されてない値を採用することで、デコード関係情報を格納する新たな拡張ヘッダを定義する。
すなわち、デコード関係情報を格納する新たな拡張ヘッダは、例えば、図26に示すように、8ビットのHET、8ビットのHEL、64ビットのNTPTimeStamp、16ビットのMoofSequenceNumber、16ビットのMoofVersion、16ビットのSampleCountStart、8ビットのPartial moof Length、及び、8×FPLNビットのPartial Moofが、その順で配置されて構成される。
新たな拡張ヘッダのHETには、拡張ヘッダに、デコード関係情報が格納されていることを表す値としての、例えば、101が設定される。この場合、HETが127以下なので、図20に示したように、HETの後には、HELが配置される。
HELには、0ないし255の範囲の整数値HELNが設定される。整数値HELNとしては、32×HELNが拡張ヘッダの長さとなる値が採用される。
NTPTimeStamp,MoofSequenceNumber,MoofVersion、及び、SampleCountStartには、LCTパケットに格納されるポーションとしてのhttpレスポンスのhttpヘッダに格納されたNTP時刻nt、シーケンスナンバsqn、バージョンv、及び、サンプルカウントスタートscsが、それぞれ設定される。
Partial moof Lengthには、0ないし255の範囲の整数値PMLNが設定される。整数値PMLNとしては、32×PMLNが、Partial moofの長さとなる値が採用される。
Partial moofには、LCTパケットに格納されるポーションとしてのhttpレスポンスのメッセージボディに格納された(バイナリの)moofサブセットが設定される。
ここで、以下では、説明を簡単にするため、LCTパケットのエンコーディングシンボルには、ポーションが分割されずに格納されることとする。
なお、LCTパケットのエンコーディングシンボルに、ポーションが複数の小片に分割されて格納される場合には、1個のポーションから分割された小片が格納される各LCTパケットの拡張ヘッダには、例えば、同一のデコード関係情報が格納される。
<拡張ヘッダにデコード関係情報が格納されるLCTパケットの第1の例>
図27は、拡張ヘッダにデコード関係情報が格納されるLCTパケットの第1の例を示す図である。
図27では、図11の場合と同様に、1個のフラグメントから、3個のポーションとしてのhttpレスポンス400,420、及び、440が生成されている。
さらに、図27では、httpレスポンス400,420、及び、440から、そのhttpレスポンス400,420、及び、440それぞれがエンコーディングシンボルに格納されたLCTパケットが生成されている。
1個のフラグメントから生成された3個のポーションのうちの1番目のポーションとしてのhttpレスポンス400は、図11Bの1番目(最初)のサンプル群56を含むポーション60としてのhttpレスポンスと同様に構成される。
すなわち、httpレスポンス400は、httpヘッダ401とメッセージボディ402とを有する。
httpヘッダ401は、図11Bのポーション60としてのhttpレスポンスのhttpヘッダ61と同様に、シーケンスナンバsqn,バージョンv、及び、NTP時刻ntを有する。
メッセージボディ402は、図11Bのポーション60としてのhttpレスポンスのメッセージボディ(図11Bのhttpヘッダ61の後の部分)と同様に、MS/BR,styp,moofサブセット,MS/BR,mdatヘッダ,MS/BR、1番目のサンプル群56に相当するサンプル群#1、及び、MSが、その順で配置されて構成される。
FLUTEストリーマ24(図2)は、セグメンタ22から供給されるポーションとしてのhttpレスポンス400を参照することにより、httpヘッダ401に含まれるシーケンスナンバsqn,バージョンv、及び、NTP時刻ntと、メッセージボディ402に含まれるmoofサブセットとを認識し、LCTヘッダ411の拡張ヘッダ(Header Extentions)に格納する。
さらに、FLUTEストリーマ24は、エンコーディングシンボル(Encoding Symbol(s))412に、ポーションとしてのhttpレスポンス400を格納し、LCTヘッダ411に、エンコーディングシンボル412を付加することで、LCTパケット410を生成する。
1個のフラグメントから生成された3個のポーションのうちの2番目のポーションとしてのhttpレスポンス420は、図11Cの2番目のサンプル群57を含むポーション70としてのhttpレスポンスと同様に構成される。
すなわち、httpレスポンス420は、httpヘッダ421とメッセージボディ422とを有する。
httpヘッダ421は、図11Cのポーション70としてのhttpレスポンスのhttpヘッダ71と同様に、シーケンスナンバsqn,バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsを有する。
メッセージボディ422は、図11Cのポーション70としてのhttpレスポンスのメッセージボディ(図11Cのhttpヘッダ71の後の部分)と同様に、MS/BR,moofサブセット,MS/BR、2番目のサンプル群57に相当するサンプル群#2、及び、MSが、その順で配置されて構成される。
FLUTEストリーマ24(図2)は、セグメンタ22から供給されるポーションとしてのhttpレスポンス420を参照することにより、httpヘッダ421に含まれるシーケンスナンバsqn,バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsと、メッセージボディ422に含まれるmoofサブセットとを認識し、LCTヘッダ431の拡張ヘッダに格納する。
さらに、FLUTEストリーマ24は、エンコーディングシンボル432に、ポーションとしてのhttpレスポンス420を格納し、LCTヘッダ431に、エンコーディングシンボル432を付加することで、LCTパケット430を生成する。
1個のフラグメントから生成された3個のポーションのうちの3番目のポーションとしてのhttpレスポンス440は、図11Dの3番目(最後)のサンプル群58を含むポーション80としてのhttpレスポンスと同様に構成される。
すなわち、httpレスポンス440は、httpヘッダ441とメッセージボディ442とを有する。
httpヘッダ441は、図11Dのポーション80としてのhttpレスポンスのhttpヘッダ81と同様に、シーケンスナンバsqn,バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsを有する。
メッセージボディ442は、図11Dのポーション80としてのhttpレスポンスのメッセージボディ(図11Dのhttpヘッダ81の後の部分)と同様に、MS/BR,moofサブセット,MS/BR、3番目のサンプル群58に相当するサンプル群#3、及び、MSが、その順で配置されて構成される。
ここで、メッセージボディ442に含まれるmoofサブセットは、そのメッセージボディ442に含まれる3番目のサンプル群#3、すなわち、3個のポーションとしてのhttpレスポンス400,420、及び、440が生成された元の1個のフラグメントにおける最後のサンプル群#3を生成するまでに生成することができるmoofのサブセットであるので、元のフラグメントに含まれるサンプル群#1ないし#3の全体のmoofに等しい。
FLUTEストリーマ24(図2)は、セグメンタ22から供給されるポーションとしてのhttpレスポンス440を参照することにより、httpヘッダ441に含まれるシーケンスナンバsqn,バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsと、メッセージボディ442に含まれるmoofサブセットとを認識し、LCTヘッダ451の拡張ヘッダに格納する。
さらに、FLUTEストリーマ24は、エンコーディングシンボル452に、ポーションとしてのhttpレスポンス440を格納し、LCTヘッダ451に、エンコーディングシンボル452を付加することで、LCTパケット450を生成する。
以上のような、デコード関係情報であるmoofサブセット、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsをLCTヘッダに有するLCTパケットによれば、やはり、ポーション単位でのコンテンツの配信が行われるので、コンテンツを迅速に配信することができる。
さらに、LCTヘッダ(の拡張ヘッダ)には、デコード関係情報であるmoofサブセット、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsがまとめて格納されるため、サンプル群のデコードに必要な時間(時刻)の計算を、LCTヘッダにまとめて格納されたデコード関係情報を用いて、効率的に行うことができる。
また、デコード関係情報であるmoofサブセット、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsは、LCTヘッダのバイナリの拡張ヘッダの、あらかじめ決められた位置に配置(格納)(設定)されるため、そのバイナリの拡張ヘッダを参照することにより、シーケンスナンバsqnや、バージョンv、moofサブセットに含まれるbmdt(BaseMediaDecodeTime)等に基づき、LCTパケット(のエンコーディングシンボルに格納されたポーション)を取捨選択するパケットフィルタリングを効率的に行い、必要なLCTパケットを、優先的かつ迅速に処理することが可能となる。
図28は、図27の第1の例のLCTパケットを用いて、ポーション単位でのコンテンツの配信を行う場合の、その配信の処理の例を説明するフローチャートである。
ステップS401ないしS404において、配信サーバ11では、図14のステップS101ないしS104とそれぞれ同様の処理が行われ、これにより、セグメンタ22(図2)は、注目フラグメントの最初のサンプル群を含むポーションとしてのhttpレスポンスを生成し、FLUTEストリーマ24に供給して、処理は、ステップS405に進む。
ステップS405では、FLUTEストリーマ24は、セグメンタ22からのポーションとしてのhttpレスポンスから、デコード関連情報(moofサブセット、シーケンスナンバsqn、バージョンv、及び、NTP時刻nt)を認識し、そのデコード関連情報を格納したLCTヘッダを生成する。
さらに、ステップS405では、FLUTEストリーマ24は、デコード関連情報を格納したLCTヘッダに、セグメンタ22からのポーションとしてのhttpレスポンスを、エンコーディングシンボルとして付加することで、LCTパケットを生成し、マルチキャストサーバ25に供給して、処理は、ステップS406に進む。
ステップS406では、マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信して、処理は、ステップS407に進む。
ステップS407ないしS410では、配信サーバ11では、図14のステップS106ないしS109とそれぞれ同様の処理が行われ、これにより、セグメンタ22は、注目フラグメントの次のサンプル群を注目サンプル群として、その注目サンプル群を含むポーションとしてのhttpレスポンスを生成し、FLUTEストリーマ24に供給して、処理は、ステップS411に進む。
ステップS411では、FLUTEストリーマ24は、セグメンタ22からのポーションとしてのhttpレスポンスから、デコード関連情報(moofサブセット、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscs)を認識し、そのデコード関連情報を格納したLCTヘッダを生成する。
さらに、ステップS411では、FLUTEストリーマ24は、デコード関連情報を格納したLCTヘッダに、セグメンタ22からのポーションとしてのhttpレスポンスを、エンコーディングシンボルとして付加することで、LCTパケットを生成し、マルチキャストサーバ25に供給して、処理は、ステップS412に進む。
ステップS412では、マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信して、処理は、ステップS413に進む。
ステップS413では、セグメンタ22は、注目サンプル群が、注目フラグメントの最後のサンプル群であるかどうかを判定する。
ステップS413において、注目サンプル群が、注目フラグメントの最後のサンプル群でないと判定された場合、すなわち、注目フラグメントにおいて、注目サンプル群の次のサンプル群がある場合、処理は、ステップS407に戻り、注目サンプル群の次のサンプル群を、新たな注目サンプル群として、同様の処理が繰り返される。
また、ステップS413において、注目サンプル群が、注目フラグメントの最後のサンプル群であると判定された場合、処理は、ステップS401に戻り、例えば、注目フラグメントの次のフラグメントを、新たな注目フラグメントとして、以下、同様の処理が繰り返される。
図29は、図27の第1の例のLCTパケットを用い、ポーション単位で配信されてくるコンテンツの受信の処理の例を説明するフローチャートである。
ステップS431において、クライアント12の受信部30(図3)は、LCTパケットがマルチキャスト配信されてくるのを待って、そのLCTパケットを受信し、処理は、ステップS432に進む。
ステップS432では、受信部30は、ステップS431で受信したLCTパケットのLCTヘッダに含まれるデコード関係情報(moofサブセット(に含まれるbmdt等)や、シーケンスナンバsqn、バージョンv、NTP時刻nt、サンプルカウントスタートscs)等に基づいて、そのLCTパケットを取捨選択するパケットフィルタリングを行い、処理は、ステップS433に進む。
ステップS433では、受信部30は、パケットフィルタリングの結果残ったLCTパケットのLCTヘッダに含まれるデコード関係情報を必要に応じて用い、そのLCTパケットに格納されたサンプル群のデコード等の処理を行う。そして、処理は、ステップS433からステップS431に戻り、以下、同様の処理が繰り返される。
<拡張ヘッダにデコード関係情報が格納されるLCTパケットの第2の例>
図30は、拡張ヘッダにデコード関係情報が格納されるLCTパケットの第2の例を示す図である。
なお、図中、図27の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図30では、FLUTEストリーマ24は、LCTパケット410として、エンコーディングシンボルに、httpレスポンス400ではなく、そのhttpレスポンス400に含まれるサンプル群#1だけが格納されたLCTパケットを生成する。
同様に、FLUTEストリーマ24は、LCTパケット430として、エンコーディングシンボルに、httpレスポンス420ではなく、そのhttpレスポンス420に含まれるサンプル群#2だけが格納されたLCTパケットを生成する。さらに、同様に、FLUTEストリーマ24は、LCTパケット450として、エンコーディングシンボルに、httpレスポンス440ではなく、そのhttpレスポンス440に含まれるサンプル群#3だけが格納されたLCTパケットを生成する。
したがって、第2の例のLCTパケットでは、httpヘッダやmoofサブセット等が、エンコーディングシンボルに格納されていないため、第1の例のLCTパケットに比較して、転送や、受信、スタックの処理のオーバーヘッドを減らすことができる。
なお、図30では、説明を分かりやすくするために、httpメッセージをポーションとして、そのポーションとしてのhttpメッセージと比較したLCTパケットを図示したが、図30の第2の例のLCTパケットは、フラグメントに含まれる(一部の)サンプル群や、moof及びmdatヘッダ等を、そのまま、ポーションとして用いて生成することができる。
すなわち、1個のセグメントが、例えば、図11Aに示したように、styp(と必要なsidx)、及び、1個のフラグメントから構成され、その1個のフラグメントが、moof,mdatヘッダ、及び、3個のサンプル群#1ないし#3を有することとする。
この場合、セグメンタ22(図2)は、1個のフラグメントの一部としてのサンプル群#1ないし#3を、それぞれ、ポーションとして、FLUTEストリーマ24に供給し、FLUTEストリーマ22は、セグメンタ22からのポーションとしてのサンプル群#1ないし#3それぞれを、エンコーディングシンボル412,432、及び、452に格納したLCTパケット410,430、及び、450をそれぞれ生成する。
さらに、セグメンタ22は、1個のフラグメントに含めるべきサンプル群#1ないし#3すべてが生成され、そのサンプル群#1ないし#3のmoofが生成されると、1個のフラグメントについて、最後に、その1個のフラグメントの一部としてのmdatヘッダ及びmoof、並びに、その1個のフラグメントが含まれるセグメントが有するstyp(と必要なsidx)を、ポーションとして、FLUTEストリーマ24に供給する。
FLUTEストリーマ22は、セグメンタ22からのポーションとしてのmdatヘッダ、moof、及び、styp(と必要なsidx)をエンコーディングシンボル462に格納したLCTパケット460を生成する。
なお、サンプル群#1ないし#3のmoofは、LCTパケット460のエンコーディングシンボル462の他、LCTパケット460のLCTヘッダ461(の拡張ヘッダにおけるPartial moof(図26))にも格納することができる。
また、サンプル群#1ないし#3のmoofは、エンコーディングシンボル462に代えて、LCTヘッダ461にだけ格納することができる。
図31は、図30の第2の例のLCTパケットを用いて、ポーション単位でのコンテンツの配信を行う場合の、その配信の処理の例を説明するフローチャートである。
ステップS451において、配信サーバ11(図2)のセグメンタ22は、サンプル群を生成しようとしているフラグメント(例えば、図11のフラグメント52)を、注目フラグメントとして、注目フラグメントのmdatヘッダを生成し、ポーション(の一部)として、FLUTEストリーマ24に供給する。
さらに、ステップS451では、セグメンタ22は、注目フラグメントの最初のサンプル群を生成し、ポーションとして、FLUTEストリーマ24に供給して、処理は、ステップS452に進む。
ステップS452では、セグメンタ22は、ポーションとしての最初のサンプル群についてのデコード関係情報、すなわち、注目フラグメントのmoofに格納されるシーケンスナンバと同一のシーケンスナンバsqn、最初のサンプル群の、注目フラグメントにおける順番を表す1であるバージョンv、及び、注目フラグメントのmoofに格納されるbmdtに対応するNTP時刻ntを生成し、FLUTEストリーマ24に供給する。
さらに、ステップS452では、セグメンタ22は、注目フラグメントについて、最初のサンプル群を生成するまでに生成することができた、最初のサンプル群の再生に必要なmoofの一部を、最初のサンプル群用のmoofサブセットとして取得し、FLUTEストリーマ24に供給して、処理は、ステップS453に進む。
ステップS453では、FLUTEストリーマ24は、セグメンタ22からのデコード関連情報、すなわち、moofサブセット、シーケンスナンバsqn、バージョンv、及び、NTP時刻ntを格納したLCTヘッダを生成する。
さらに、ステップS453では、FLUTEストリーマ24は、デコード関連情報を格納したLCTヘッダに、セグメンタ22からのポーションとしての最初のサンプル群を、エンコーディングシンボルとして付加することで、LCTパケット(図30のLCTパケット410に相当するLCTパケット)を生成し、マルチキャストサーバ25に供給して、処理は、ステップS454に進む。
ステップS454では、マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信して、処理は、ステップS455に進む。
ステップS455では、セグメンタ22は、注目フラグメントについて、次のサンプル群を、注目サンプル群として生成し、ポーションとして、FLUTEストリーマ24に供給して、処理は、ステップS456に進む。
ステップS456では、セグメンタ22は、ポーションとしての注目サンプル群についてのデコード関係情報、すなわち、注目フラグメントのmoofに格納されるシーケンスナンバと同一のシーケンスナンバsqn、注目サンプル群の、注目フラグメントにおける順番を表すバージョンv、注目フラグメントのmoofに格納されるbmdtに対応するNTP時刻nt、及び、注目サンプル群の先頭のサンプルのサンプル番号を表すサンプルカウントスタートscsを生成し、FLUTEストリーマ24に供給する。
さらに、ステップS456では、セグメンタ22は、注目フラグメントについて、注目サンプル群を生成するまでに生成することができた、注目サンプル群、(及び、注目フラグメントの注目サンプル群を生成する前に生成されたサンプル群)の再生に必要なmoofの一部を、注目サンプル群用のmoofサブセットとして取得し、FLUTEストリーマ24に供給して、処理は、ステップS457に進む。
ステップS457では、FLUTEストリーマ24は、セグメンタ22からのデコード関連情報、すなわち、moofサブセット、シーケンスナンバsqn、バージョンv、NTP時刻nt、及び、サンプルカウントスタートscsを格納したLCTヘッダを生成する。
さらに、ステップS457では、FLUTEストリーマ24は、デコード関連情報を格納したLCTヘッダに、セグメンタ22からのポーションとしての注目サンプル群を、エンコーディングシンボルとして付加することで、LCTパケット(図39のLCTパケット430又は450に相当するLCTパケット)を生成し、マルチキャストサーバ25に供給して、処理は、ステップS458に進む。
ステップS458では、マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信して、処理は、ステップS459に進む。
ステップS459では、セグメンタ22は、注目サンプル群が、注目フラグメントの最後のサンプル群であるかどうかを判定する。
ステップS459において、注目サンプル群が、注目フラグメントの最後のサンプル群でないと判定された場合、すなわち、注目フラグメントにおいて、注目サンプル群の次のサンプル群がある場合、処理は、ステップS455に戻り、注目サンプル群の次のサンプル群を、新たな注目サンプル群として、同様の処理が繰り返される。
また、ステップS459において、注目サンプル群が、注目フラグメントの最後のサンプル群であると判定された場合、処理は、ステップS460に進み、FLUTEストリーマ24は、注目フラグメントを有するセグメントのstyp(及び、必要なsidx)を、セグメンタ22から取得する。
さらに、FLUTEストリーマ24は、セグメンタ22から供給されたmdatヘッダ、及び、注目フラグメントの最後のサンプル群の生成時までに生成されたmoofサブセット、すなわち、注目フラグメントのすべてのサンプル群についてのmoof、並びに、セグメンタ22から取得したstyp(及び、必要なsidx)をエンコーディングシンボルに格納したLCTパケット(図30のLCTパケット460に相当するLCTパケット)を生成し、マルチキャストサーバ25に供給して、処理は、ステップS461に進む。
ステップS461では、マルチキャストサーバ25は、FLUTEストリーマ24からのLCTパケットをマルチキャスト配信する。
その後、処理は、ステップS461からS451に戻り、例えば、注目フラグメントの次のフラグメントを、新たな注目フラグメントとして、以下、同様の処理が繰り返される。
なお、図30の第2の例のLCTパケットを用いたコンテンツの受信の処理は、図29で説明した、第1の例のLCTパケットを用いたコンテンツの受信の処理と同様であるため、説明を省略する。
<本技術を適用したコンピュータの説明>
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図32は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク305やROM303に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体311に格納(記録)しておくことができる。このようなリムーバブル記録媒体311は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体311としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体311からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク305にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)302を内蔵しており、CPU302には、バス301を介して、入出力インタフェース310が接続されている。
CPU302は、入出力インタフェース310を介して、ユーザによって、入力部307が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)303に格納されているプログラムを実行する。あるいは、CPU302は、ハードディスク305に格納されたプログラムを、RAM(Random Access Memory)304にロードして実行する。
これにより、CPU302は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU302は、その処理結果を、必要に応じて、例えば、入出力インタフェース310を介して、出力部306から出力、あるいは、通信部308から送信、さらには、ハードディスク305に記録等させる。
なお、入力部307は、キーボードや、マウス、マイク等で構成される。また、出力部306は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、セグメンタ22において、ポーションを生成する対象のフラグメントとしては、fragmentedMP4(ISO/IEC14496-14)のフラグメントの他、任意のデータフォーマットのフラグメント(データの一部)を採用することができる。
すなわち、ポーションを生成する対象のフラグメントとしては、例えば、ISO base media file format(ISO/IEC 14496-12)や、ISO/IEC 14496-15で規定されているフォーマット、QuickTime形式、その他の、いわゆるボックス構造を有するデータフォーマットのフラグメント、さらには、ボックス構造を有しないデータフォーマット(例えば、TS(Transport Stream)等)のデータを断片化したフラグメントを採用することができる。
さらに、ポーションを生成する対象のフラグメントとしては、例えば、MPEGのTS(Transport Stream)や、webM、その他の任意の動画フォーマットのフラグメントを採用することができる。
また、本技術は、コンテンツ以外の任意のデータの配信に適用することができる。
ここで、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
なお、本技術は、以下のような構成をとることができる。
<1>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信する配信部を備え、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及び1個以上のサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
送信装置。
<2>
前記フラグメントは、fragmentedMP4のフラグメントである
<1>に記載の送信装置。
<3>
前記ポーションは、
前記フラグメントの一部としてのサンプル群、
又は、前記フラグメントの一部としての前記moof、及び、前記mdatヘッダ
である
<2>に記載の送信装置。
<4>
前記ポーションは、http(Hypertext Transfer Protocol)レスポンスであり、
前記httpレスポンスは、
前記フラグメントの一部としてのサンプル群、及び、前記moofサブセットを、メッセージボディに含み、
前記シーケンスナンバ、前記バージョン、前記NTP時刻、及び、前記サンプルカウントスタート情報を、httpヘッダに含む
<2>に記載の送信装置。
<5>
前記moofサブセットは、前記フラグメントの一部としてのサンプル群が生成されるまでに生成されるmoofの部分である
<1>ないし<4>のいずれかに記載の送信装置。
<6>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信するステップを含み、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及びサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
送信方法。
<7>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信する配信部として、コンピュータを機能させるためのプログラムであり、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及びサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
プログラム。
<8>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信する受信部を備え、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及びサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
受信装置。
<9>
前記フラグメントは、fragmentedMP4のフラグメントである
<8>に記載の受信装置。
<10>
前記ポーションは、
前記フラグメントの一部としてのサンプル群、
又は、前記フラグメントの一部としての前記moof、及び、前記mdatヘッダ
である
<9>に記載の受信装置。
<11>
前記ポーションは、http(Hypertext Transfer Protocol)レスポンスであり、
前記httpレスポンスは、
前記フラグメントの一部としてのサンプル群、及び、前記moofサブセットを、メッセージボディに含み、
前記シーケンスナンバ、前記バージョン、前記NTP時刻、及び、前記サンプルカウントスタート情報を、httpヘッダに含む
<9>に記載の受信装置。
<12>
前記moofサブセットは、前記フラグメントの一部としてのサンプル群が生成されるまでに生成されるmoofの部分である
<8>ないし<11>のいずれかに記載の受信装置。
<13>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信するステップを備え、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及びサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
受信方法。
<14>
フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信する受信部として、コンピュータを機能させるためのプログラムであり、
前記フラグメントは、
moof(movie fragment)と、
mdat(media data)ヘッダ及びサンプル群を有するmdatと
を有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記LCTヘッダは、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
前記moofの少なくとも一部であるmoofサブセットと
を含む
プログラム。
10 ネットワーク, 11 配信サーバ, 12 クライアント, 13 NTPサーバ, 21 チャンネルストリーマ, 22 セグメンタ, 23 メタデータジェネレータ, 24 FLUTEストリーマ, 25 マルチキャストサーバ, 26 webサーバ, 30 受信部, 31 ミドルウェア, 32 DASHクライアント, 33 再生部, 301 バス, 302 CPU, 303 ROM, 304 RAM, 305 ハードディスク, 306 出力部, 307 入力部, 308 通信部, 309 ドライブ, 310 入出力インタフェース, 311 リムーバブル記録媒体

Claims (14)

  1. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信する配信部を備え、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及び1個以上のサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    送信装置。
  2. 前記フラグメントは、fragmentedMP4のフラグメントである
    請求項1に記載の送信装置。
  3. 前記ポーションは、
    前記フラグメントの一部としてのサンプル群、
    又は、前記フラグメントの一部としての前記moof、及び、前記mdatヘッダ
    である
    請求項2に記載の送信装置。
  4. 前記ポーションは、http(Hypertext Transfer Protocol)レスポンスであり、
    前記httpレスポンスは、
    前記フラグメントの一部としてのサンプル群、及び、前記moofサブセットを、メッセージボディに含み、
    前記シーケンスナンバ、前記バージョン、前記NTP時刻、及び、前記サンプルカウントスタート情報を、httpヘッダに含む
    請求項2に記載の送信装置。
  5. 前記moofサブセットは、前記フラグメントの一部としてのサンプル群が生成されるまでに生成されるmoofの部分である
    請求項2に記載の送信装置。
  6. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信するステップを含み、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及びサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    送信方法。
  7. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを配信する配信部として、コンピュータを機能させるためのプログラムであり、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及びサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    プログラム。
  8. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信する受信部を備え、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及びサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    受信装置。
  9. 前記フラグメントは、fragmentedMP4のフラグメントである
    請求項8に記載の受信装置。
  10. 前記ポーションは、
    前記フラグメントの一部としてのサンプル群、
    又は、前記フラグメントの一部としての前記moof、及び、前記mdatヘッダ
    である
    請求項9に記載の受信装置。
  11. 前記ポーションは、http(Hypertext Transfer Protocol)レスポンスであり、
    前記httpレスポンスは、
    前記フラグメントの一部としてのサンプル群、及び、前記moofサブセットを、メッセージボディに含み、
    前記シーケンスナンバ、前記バージョン、前記NTP時刻、及び、前記サンプルカウントスタート情報を、httpヘッダに含む
    請求項9に記載の受信装置。
  12. 前記moofサブセットは、前記フラグメントの一部としてのサンプル群が生成されるまでに生成されるmoofの部分である
    請求項9に記載の受信装置。
  13. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信するステップを備え、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及びサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    受信方法。
  14. フラグメントの一部を含むデータであるポーションと、LCT(Layerd Coding Transport)ヘッダとを含むLCTパケットを受信する受信部として、コンピュータを機能させるためのプログラムであり、
    前記フラグメントは、
    moof(movie fragment)と、
    mdat(media data)ヘッダ及びサンプル群を有するmdatと
    を有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記LCTヘッダは、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと、
    前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻と、
    前記フラグメントの一部の先頭のサンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報と、
    前記moofの少なくとも一部であるmoofサブセットと
    を含む
    プログラム。
JP2014069940A 2014-03-28 2014-03-28 送信装置、送信方法、受信装置、受信方法、及び、プログラム Pending JP2015192407A (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2014069940A JP2015192407A (ja) 2014-03-28 2014-03-28 送信装置、送信方法、受信装置、受信方法、及び、プログラム
MX2016012218A MX362219B (es) 2014-03-28 2015-03-13 Aparato de transmision, metodo de transmision, aparato de recepcion, metodo de recepcion, y programa.
KR1020167025213A KR102137858B1 (ko) 2014-03-28 2015-03-13 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
CN201580015015.8A CN106105239B (zh) 2014-03-28 2015-03-13 发送设备、发送方法、接收设备、接收方法和程序
US15/127,462 US10432989B2 (en) 2014-03-28 2015-03-13 Transmission apparatus, transmission method, reception apparatus, receiving method, and program
EP15770090.7A EP3125563A4 (en) 2014-03-28 2015-03-13 Transmission device, transmission method, reception device, reception method, and program
PCT/JP2015/057533 WO2015146647A1 (ja) 2014-03-28 2015-03-13 送信装置、送信方法、受信装置、受信方法、及び、プログラム
CA2941367A CA2941367A1 (en) 2014-03-28 2015-03-13 Transmission apparatus, transmission method, reception apparatus, receiving method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014069940A JP2015192407A (ja) 2014-03-28 2014-03-28 送信装置、送信方法、受信装置、受信方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2015192407A true JP2015192407A (ja) 2015-11-02

Family

ID=54195170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014069940A Pending JP2015192407A (ja) 2014-03-28 2014-03-28 送信装置、送信方法、受信装置、受信方法、及び、プログラム

Country Status (8)

Country Link
US (1) US10432989B2 (ja)
EP (1) EP3125563A4 (ja)
JP (1) JP2015192407A (ja)
KR (1) KR102137858B1 (ja)
CN (1) CN106105239B (ja)
CA (1) CA2941367A1 (ja)
MX (1) MX362219B (ja)
WO (1) WO2015146647A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019524011A (ja) * 2016-05-26 2019-08-29 サムスン エレクトロニクス カンパニー リミテッド Mmtpパケットを送受信する方法及びその装置
JP2019536354A (ja) * 2016-11-10 2019-12-12 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 配信性能を改善するためのリソースセグメント化

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015064383A1 (ja) 2013-10-30 2015-05-07 ソニー株式会社 送信装置、送信方法、受信装置、及び、受信方法
EP3703379B1 (en) * 2013-12-16 2022-06-22 Panasonic Intellectual Property Corporation of America Transmission method, reception method, transmitting device, and receiving device
CN109391551B (zh) * 2017-08-14 2021-10-12 中兴通讯股份有限公司 一种多端口组播方法、设备及计算机可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9209934B2 (en) * 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
WO2009087563A2 (en) * 2008-01-09 2009-07-16 Nokia Corporation Systems and methods for media container file generation
KR101479890B1 (ko) * 2010-12-26 2015-01-06 엘지전자 주식회사 미디어 콘텐트 송수신 방법 및 그를 이용한 송수신 장치
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US20150172348A1 (en) 2012-01-17 2015-06-18 Telefonaktiebolaget L M Ericsson (Publ) Method for sending respectively receiving a media stream
KR102057107B1 (ko) * 2012-01-24 2019-12-18 소니 주식회사 수신 장치, 수신 방법, 프로그램 및 정보 처리 시스템
US9843845B2 (en) * 2012-11-28 2017-12-12 Sinclair Broadcast Group, Inc. Terrestrial broadcast market exchange network platform and broadcast augmentation channels for hybrid broadcasting in the internet age
US9426196B2 (en) * 2013-01-04 2016-08-23 Qualcomm Incorporated Live timing for dynamic adaptive streaming over HTTP (DASH)
WO2015064384A1 (ja) * 2013-10-30 2015-05-07 ソニー株式会社 送信装置、送信方法、受信装置、及び、受信方法
WO2015064383A1 (ja) * 2013-10-30 2015-05-07 ソニー株式会社 送信装置、送信方法、受信装置、及び、受信方法
US10313716B2 (en) * 2013-11-01 2019-06-04 Lg Electronics Inc. Apparatus for transmitting broadcast signals, apparatus for receiving broadcast signals, method for transmitting broadcast signals and method for receiving broadcast signals

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019524011A (ja) * 2016-05-26 2019-08-29 サムスン エレクトロニクス カンパニー リミテッド Mmtpパケットを送受信する方法及びその装置
JP2019536354A (ja) * 2016-11-10 2019-12-12 テレフオンアクチーボラゲット エルエム エリクソン(パブル) 配信性能を改善するためのリソースセグメント化
US11558677B2 (en) 2016-11-10 2023-01-17 Telefonaktiebolaget Lm Ericsson (Publ) Resource segmentation to improve delivery performance

Also Published As

Publication number Publication date
MX2016012218A (es) 2017-01-05
EP3125563A4 (en) 2017-09-06
CN106105239B (zh) 2019-09-10
US20170134773A1 (en) 2017-05-11
WO2015146647A1 (ja) 2015-10-01
KR20160138401A (ko) 2016-12-05
EP3125563A1 (en) 2017-02-01
CN106105239A (zh) 2016-11-09
KR102137858B1 (ko) 2020-07-24
MX362219B (es) 2019-01-09
US10432989B2 (en) 2019-10-01
CA2941367A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
JP6329964B2 (ja) 送信装置、送信方法、受信装置、及び、受信方法
JP6845223B2 (ja) コーディングされたオーディオデータのトランスポート
JP6348251B2 (ja) 端末装置、受信方法、およびプログラム
CN110213666B (zh) 一种接收装置、接收方法及存储介质
JP6743704B2 (ja) 送信装置、送信方法、受信装置および受信方法
KR20120114016A (ko) 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치
EP3016396B1 (en) Content supply device, content supply method, program, terminal device, and content supply system for providing zapping segments using mpeg-dash streaming
WO2015146647A1 (ja) 送信装置、送信方法、受信装置、受信方法、及び、プログラム
US20200021867A1 (en) Broadcast signal transmitting and receiving method and device
JP6492006B2 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、および、コンテンツ供給システム
KR20170082064A (ko) 방송 통신 융합망의 하이브리드 서비스를 위한 방송 서비스 제공 장치 및 이를 이용한 방법
JP2015061307A (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015064384A1 (ja) 送信装置、送信方法、受信装置、及び、受信方法
WO2015045917A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
EP3041242B1 (en) Content provision device, content provision method, program, terminal device, and content provision system
WO2015012140A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム