JP6329964B2 - 送信装置、送信方法、受信装置、及び、受信方法 - Google Patents

送信装置、送信方法、受信装置、及び、受信方法 Download PDF

Info

Publication number
JP6329964B2
JP6329964B2 JP2015544919A JP2015544919A JP6329964B2 JP 6329964 B2 JP6329964 B2 JP 6329964B2 JP 2015544919 A JP2015544919 A JP 2015544919A JP 2015544919 A JP2015544919 A JP 2015544919A JP 6329964 B2 JP6329964 B2 JP 6329964B2
Authority
JP
Japan
Prior art keywords
fragment
sample
http
header
sample group
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.)
Active
Application number
JP2015544919A
Other languages
English (en)
Other versions
JPWO2015064383A1 (ja
Inventor
山岸 靖明
靖明 山岸
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.)
Saturn Licensing LLC
Original Assignee
Saturn Licensing LLC
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 Saturn Licensing LLC filed Critical Saturn Licensing LLC
Publication of JPWO2015064383A1 publication Critical patent/JPWO2015064383A1/ja
Application granted granted Critical
Publication of JP6329964B2 publication Critical patent/JP6329964B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6125Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via Internet
    • 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/633Control signals issued by server directed to the network components or client
    • 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/64Addressing
    • H04N21/6405Multicasting
    • 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/64Addressing
    • H04N21/6408Unicasting
    • 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
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

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では、コンテンツをマルチキャスト配信(ブロードキャスト配信を含む)する場合に、セグメントが生成されるまで、コンテンツの配信を待つ必要がある。
今後は、より高画質の動画配信が一般になることが予想され、その場合、コンテンツのストリームのビットレートが大になる。
コンテンツのストリームのビットレートが大である場合に、セグメントの生成が完了するのを待って、セグメントの単位で、コンテンツの配信、すなわち、バルク転送を行うのでは、ネットワークの帯域が圧迫され、シェーピングが必要になることがある。
したがって、セグメントの生成が完了するのを待って、セグメントの単位で、コンテンツを配信するのでは、最終的には、クライアントでのコンテンツの受信、及び、バッファリングの開始に遅延が生じるため、コンテンツを迅速に配信する技術の提案が要請されている。
本技術は、このような状況に鑑みてなされたものであり、コンテンツ等のデータを迅速に配信することができるようにするものである。
本技術の送信装置は、フラグメントの一部と、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとを含むhttp(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスを配信する配信部を備える送信装置である。
本技術の送信方法は、フラグメントの一部と、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとを含むhttp(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスを配信するステップを含む送信方法である。
以上のような本技術の送信装置、及び、送信方法においては、フラグメントの一部と、http(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスが配信される。httpヘッダには、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとが含まれる。
本技術の受信装置は、フラグメントの一部と、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとを含むhttp(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスを受信する受信部を備える受信装置である。
本技術の受信方法は、フラグメントの一部と、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとを含むhttp(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスを受信するステップを含む受信方法である。
以上のような本技術の受信装置、及び、受信方法においては、フラグメントの一部と、http(Hypertext Transfer Protocol)ヘッダとを含むhttpレスポンスが受信される。httpヘッダには、前記フラグメントの順番を表すシーケンスナンバと、前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンとが含まれる。
なお、送信装置、及び、受信装置は、独立した装置であっても良いし、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が行うパケットフィルタリングの処理の例を説明するフローチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
<本技術を適用したコンテンツ提供システムの一実施の形態>
図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'であるときは、セグメントに、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個のフラグメントを有するセグメントと、複数のフラグメントを有するセグメントとの構成例を示す図である。
図8のAは、1個のフラグメントを有するセグメントの構成例を示している。
図8のAでは、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となる。
図8のBは、複数のフラグメントを有するセグメントの構成例を示している。
図8のBでは、セグメント#1は、3個のフラグメントを有している。
この場合、セグメント#1の最初のフラグメントのsqnが、例えば、1であるとすると、セグメント#1の2番目のフラグメントのsqnは、例えば、直前のフラグメントのsqn=1を1だけインクリメントした2となる。さらに、セグメント#1の3番目のフラグメントのsqnは、例えば、直前のフラグメントのsqn=2を1だけインクリメントした3となる。
以下、説明を簡単にするため、特に断らない限り、セグメントは、図8のAに示したように、1個のフラグメントを有することとする。
<セグメントをファイル配信単位とするコンテンツの配信>
図9は、DASHでの、セグメントをファイル配信単位とするコンテンツの配信の例を示す図である。
図9では、それぞれが1以上のサンプルであるサンプル群#1,#2、及び、#3が、フラグメントを構成するサンプル群として、順次生成されている。そして、配信サーバ11(図2)のセグメンタ22において、フラグメントの最後のサンプル群#3の生成の完了後に、それらのサンプル群#1ないし#3を配置したmdatと、サンプル群#1ないし#3のmoofとを含むフラグメントが生成され、そのフラグメントを含むセグメントが生成されており、その後、FLUTEストリーマ24、及び、マルチキャストサーバ25において、そのセグメントが配信される。
ここで、サンプル群#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は、セグメントとポーションとの関係の例を示す図である。
図11のAは、セグメントの例を示している。
図11のAにおいて、セグメント50は、styp51と、(1個の)フラグメント52とを有する。
フラグメント52は、moof53とmdat54とから構成される。
moof53には、図7で説明したように、フラグメント52のシーケンスナンバsqnと、フラグメント52のmdat54の先頭のサンプル(図11のAでは、サンプル群56の先頭のサンプル)のプレゼンテーションタイムを表すBaseMediaDecodeTime(以下、bmdtともいう)が格納されている。
ここで、図11のAでは、フラグメント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の先頭のサンプルから何番目のサンプルであるかを、以下、サンプル番号ともいう。
図11のAにおいて、サンプル群57の先頭のサンプルのサンプル番号は、n1であり、サンプル群58の先頭のサンプルのサンプル番号は、n2である。
図11のB、図11のC、及び、図11のDは、図11のAのセグメント50が生成される場合の、そのセグメント50に含まれるフラグメント52の一部を含むポーションの例を示している。
すなわち、図11のBは、フラグメント52の一部としてのサンプル群56を含むポーションの例を示している。また、図11のCは、フラグメント52の他の一部としてのサンプル群57を含むポーションの例を示しており、図11のDは、フラグメント52のさらに他の一部としてのサンプル群58を含むポーションの例を示している。
図11において、ポーション(のファイル)としては、httpレスポンス(のファイル)が採用されている。
図11のBにおいて、ポーション60は、フラグメント52の最初のサンプル群56を含むhttpレスポンスであり、ポーション60には、httpヘッダ61、MS/BR62、styp51、moofサブセット64、MS/BR65、mdatヘッダ55、MS/BR66、サンプル群56、及び、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は、マルチパートセパレータを表す。
なお、図11のBでは、フラグメント52の最初のサンプル群56が含まれるポーション60に、styp51を含めることとしたが、styp51(さらには、図示せぬsidx)は、ポーション60とは別のhttpレスポンスに含めて配信することができる。
図11のCにおいて、ポーション70は、フラグメント52の2番目のサンプル群57を含むhttpレスポンスであり、ポーション70には、httpヘッダ71、MS/BR72、moofサブセット73、MS/BR74、サンプル群57、及び、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の先頭のサンプルは、図11のAで説明したように、最初のサンプル群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は、マルチパートセパレータを表す。
図11のDにおいて、ポーション80は、フラグメント52の3番目のサンプル群58を含むhttpレスポンスであり、ポーション80には、httpヘッダ81、MS/BR82、moofサブセット83、MS/BR84、サンプル群58、及び、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の先頭のサンプルは、図11のAで説明したように、最初のサンプル群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ヘッダ)については、図11のBに示したように、サンプルカウントスタート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サブセットとして取得し、処理は、ステップ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に示すように、ポーションを、所定のサイズの小片に分割し、各小片を、LCTパケットに格納することで行われる。
図17は、LCTパケットのフォーマットを示す図である。
LCTパケットは、LCTヘッダ(LCT Header)、FEC Payload ID、及び、Encoding Symbol(s)が、その順で配置されて構成される。
ポーションの小片は、Encoding Symbolとして、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パケットのEncoding Symbolにデータが格納されるオブジェクトを識別する識別子である。例えば、ポーション60を分割した小片がEncoding Symbolに格納されるLCTパケットのTOIは、同一の値に設定される。
但し、例えば、ポーション60を分割した小片がEncoding Symbolに格納されるLCTパケットと、ポーション70を分割した小片がEncoding Symbolに格納されるLCTパケットとでは、Encoding Symbolにデータ(小片)が格納されるオブジェクトが、ポーション60と70とで異なるので、ポーション60を分割した小片がEncoding Symbolに格納されるLCTパケットと、ポーション70を分割した小片がEncoding Symbolに格納されるLCTパケットとでは、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ヘッダに、優先度パラメータを含める。
図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の後には、HETが配置される。
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パケットのエンコーディングシンボル(Encoding Symbol)(図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は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク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>
フラグメントの一部と、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
を含むhttp(Hypertext Transfer Protocol)ヘッダと
を含むhttpレスポンスを配信する配信部を備える
送信装置。
<2>
前記フラグメントの最後の一部を含む前記httpレスポンスの前記バージョンは、前記フラグメントの最後を表す情報を含む
<1>に記載の送信装置。
<3>
前記フラグメントは、moof(movie fragment)とmdat(media data)とを有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記httpヘッダは、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻をさらに含む
<1>又は<2>に記載の送信装置。
<4>
前記httpヘッダは、前記httpレスポンスに含まれる前記フラグメントの一部の先頭の前記サンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報を、さらに含む
<3>に記載の送信装置。
<5>
前記フラグメントの2番目以降の一部を含む前記httpレスポンスの前記httpヘッダが、前記サンプルカウントスタート情報を含む
<4>に記載の送信装置。
<6>
前記フラグメントは、fragmentedMP4のフラグメントである
<1>ないし<5>のいずれかに記載の送信装置。
<7>
フラグメントの一部と、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
を含むhttp(Hypertext Transfer Protocol)ヘッダと
を含むhttpレスポンスを配信する
ステップを含む送信方法。
<8>
フラグメントの一部と、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
を含むhttp(Hypertext Transfer Protocol)ヘッダと
を含むhttpレスポンスを受信する受信部を備える
受信装置。
<9>
前記フラグメントの最後の一部を含む前記httpレスポンスの前記バージョンは、前記フラグメントの最後を表す情報を含む
<8>に記載の受信装置。
<10>
前記フラグメントは、moof(movie fragment)とmdat(media data)とを有し、
前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
前記httpヘッダは、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻をさらに含む
<8>又は<9>に記載の受信装置。
<11>
前記httpヘッダは、前記httpレスポンスに含まれる前記フラグメントの一部の先頭の前記サンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報を、さらに含む
<10>に記載の受信装置。
<12>
前記フラグメントの2番目以降の一部を含む前記httpレスポンスの前記httpヘッダが、前記サンプルカウントスタート情報を含む
<11>に記載の受信装置。
<13>
前記フラグメントは、fragmentedMP4のフラグメントである
<8>ないし<12>のいずれかに記載の受信装置。
<14>
フラグメントの一部と、
前記フラグメントの順番を表すシーケンスナンバと、
前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
を含むhttp(Hypertext Transfer Protocol)ヘッダと
を含むhttpレスポンスを受信する
ステップを含む受信方法。
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. フラグメントの一部と、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
    を含むhttp(Hypertext Transfer Protocol)ヘッダと
    を含むhttpレスポンスを配信する配信部を備える
    送信装置。
  2. 前記フラグメントの最後の一部を含む前記httpレスポンスの前記バージョンは、前記フラグメントの最後を表す情報を含む
    請求項1に記載の送信装置。
  3. 前記フラグメントは、moof(movie fragment)とmdat(media data)とを有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記httpヘッダは、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻をさらに含む
    請求項2に記載の送信装置。
  4. 前記httpヘッダは、前記httpレスポンスに含まれる前記フラグメントの一部の先頭の前記サンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報を、さらに含む
    請求項3に記載の送信装置。
  5. 前記フラグメントの2番目以降の一部を含む前記httpレスポンスの前記httpヘッダが、前記サンプルカウントスタート情報を含む
    請求項4に記載の送信装置。
  6. 前記フラグメントは、fragmentedMP4のフラグメントである
    請求項5に記載の送信装置。
  7. フラグメントの一部と、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
    を含むhttp(Hypertext Transfer Protocol)ヘッダと
    を含むhttpレスポンスを配信する
    ステップを含む送信方法。
  8. フラグメントの一部と、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
    を含むhttp(Hypertext Transfer Protocol)ヘッダと
    を含むhttpレスポンスを受信する受信部を備える
    受信装置。
  9. 前記フラグメントの最後の一部を含む前記httpレスポンスの前記バージョンは、前記フラグメントの最後を表す情報を含む
    請求項8に記載の受信装置。
  10. 前記フラグメントは、moof(movie fragment)とmdat(media data)とを有し、
    前記moofは、前記mdatの先頭のサンプルのプレゼンテーションタイムを表すBaseMediaDecodeTimeを含み、
    前記httpヘッダは、前記BaseMediaDecodeTimeに対応するNTP(Network Time Protocol)時刻をさらに含む
    請求項9に記載の受信装置。
  11. 前記httpヘッダは、前記httpレスポンスに含まれる前記フラグメントの一部の先頭の前記サンプルの、前記フラグメントの先頭のサンプルからの順番を表すサンプルカウントスタート情報を、さらに含む
    請求項10に記載の受信装置。
  12. 前記フラグメントの2番目以降の一部を含む前記httpレスポンスの前記httpヘッダが、前記サンプルカウントスタート情報を含む
    請求項11に記載の受信装置。
  13. 前記フラグメントは、fragmentedMP4のフラグメントである
    請求項12に記載の受信装置。
  14. フラグメントの一部と、
    前記フラグメントの順番を表すシーケンスナンバと、
    前記フラグメントの一部の、前記フラグメントにおける順番を表すバージョンと
    を含むhttp(Hypertext Transfer Protocol)ヘッダと
    を含むhttpレスポンスを受信する
    ステップを含む受信方法。
JP2015544919A 2013-10-30 2014-10-17 送信装置、送信方法、受信装置、及び、受信方法 Active JP6329964B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013225540 2013-10-30
JP2013225540 2013-10-30
PCT/JP2014/077658 WO2015064383A1 (ja) 2013-10-30 2014-10-17 送信装置、送信方法、受信装置、及び、受信方法

Publications (2)

Publication Number Publication Date
JPWO2015064383A1 JPWO2015064383A1 (ja) 2017-03-09
JP6329964B2 true JP6329964B2 (ja) 2018-05-23

Family

ID=53003992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015544919A Active JP6329964B2 (ja) 2013-10-30 2014-10-17 送信装置、送信方法、受信装置、及び、受信方法

Country Status (6)

Country Link
US (1) US10499094B2 (ja)
EP (1) EP3065414B1 (ja)
JP (1) JP6329964B2 (ja)
CN (1) CN105659623B (ja)
PH (1) PH12016500757A1 (ja)
WO (1) WO2015064383A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101779435B1 (ko) * 2014-01-03 2017-09-18 엘지전자 주식회사 방송 신호를 송신하는 장치, 방송 신호를 수신하는 장치, 방송 신호를 송신하는 방법 및 방송 신호를 수신하는 방법
KR101737849B1 (ko) * 2014-02-24 2017-05-19 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP2015192407A (ja) 2014-03-28 2015-11-02 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、及び、プログラム
WO2016076654A1 (ko) 2014-11-13 2016-05-19 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
JP6610019B2 (ja) 2015-06-16 2019-11-27 ソニー株式会社 受信装置、送信装置、及び、データ処理方法
WO2017041827A1 (en) * 2015-09-08 2017-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Streaming session continuation
CN107948762B (zh) * 2016-10-13 2021-05-11 华为技术有限公司 直播视频的传输方法、装置和系统
EP3539271A1 (en) * 2016-11-10 2019-09-18 Telefonaktiebolaget LM Ericsson (PUBL) Resource segmentation to improve delivery performance
JP7454951B2 (ja) * 2020-01-27 2024-03-25 日本放送協会 コンテンツ配信装置、端末、およびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101330492B (zh) 2007-06-19 2012-08-01 上海贝尔股份有限公司 数据发送方法、数据接收方法和设备
JP6029805B2 (ja) 2010-01-15 2016-11-24 富士通株式会社 配信装置、配信プログラムおよび配信方法
KR101709903B1 (ko) * 2010-02-19 2017-02-23 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 스트리밍에서 적응화를 위한 방법 및 장치
WO2012011467A1 (ja) * 2010-07-20 2012-01-26 シャープ株式会社 データ配信システム、データ配信方法、配信側データ中継装置、及び受信側データ中継装置
KR20120010089A (ko) * 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
WO2012046487A1 (ja) 2010-10-05 2012-04-12 シャープ株式会社 コンテンツ再生装置、コンテンツ配信システム、コンテンツ再生装置の同期方法、制御プログラム、および、記録媒体
US8489760B2 (en) 2011-03-31 2013-07-16 Juniper Networks, Inc. Media file storage format and adaptive delivery system
JP2013005260A (ja) * 2011-06-17 2013-01-07 Sony Corp 送出装置、受信装置、放送システム、送出方法、受信方法及びこれらのプログラム
JP2013038766A (ja) * 2011-07-12 2013-02-21 Sharp Corp 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
US9465923B2 (en) * 2013-03-08 2016-10-11 Intel Corporation Blackouts architecture
JP2015192407A (ja) * 2014-03-28 2015-11-02 ソニー株式会社 送信装置、送信方法、受信装置、受信方法、及び、プログラム

Also Published As

Publication number Publication date
WO2015064383A1 (ja) 2015-05-07
PH12016500757A1 (en) 2016-05-30
US20160219311A1 (en) 2016-07-28
JPWO2015064383A1 (ja) 2017-03-09
CN105659623B (zh) 2019-04-26
CN105659623A (zh) 2016-06-08
EP3065414A4 (en) 2017-06-21
US10499094B2 (en) 2019-12-03
EP3065414B1 (en) 2019-01-09
EP3065414A1 (en) 2016-09-07

Similar Documents

Publication Publication Date Title
JP6329964B2 (ja) 送信装置、送信方法、受信装置、及び、受信方法
JP6348251B2 (ja) 端末装置、受信方法、およびプログラム
CN110213666B (zh) 一种接收装置、接收方法及存储介质
JP6570999B2 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
EP3016396B1 (en) Content supply device, content supply method, program, terminal device, and content supply system for providing zapping segments using mpeg-dash streaming
KR20120114016A (ko) 사용자 컨텐츠를 외부 단말기에서 네트워크 적응적으로 스트리밍하는 방법 및 장치
WO2015146647A1 (ja) 送信装置、送信方法、受信装置、受信方法、及び、プログラム
KR20160077066A (ko) 송신 장치, 송신 방법, 수신 장치, 및 수신 방법
WO2016174960A1 (ja) 受信装置、送信装置、およびデータ処理方法
JP6492006B2 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、および、コンテンツ供給システム
KR20160077067A (ko) 송신 장치, 송신 방법, 수신 장치, 및 수신 방법
WO2015064384A1 (ja) 送信装置、送信方法、受信装置、及び、受信方法
JP2014239291A (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015041071A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
WO2015045917A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
RU2658672C2 (ru) Устройство предоставления контента, программа, оконечное устройство и система предоставления контента
JP6653575B2 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、端末装置の動作方法、およびコンテンツ供給システム
WO2015012140A1 (ja) コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171012

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20180219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180423

R150 Certificate of patent or registration of utility model

Ref document number: 6329964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250