JP6981257B2 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JP6981257B2
JP6981257B2 JP2017566584A JP2017566584A JP6981257B2 JP 6981257 B2 JP6981257 B2 JP 6981257B2 JP 2017566584 A JP2017566584 A JP 2017566584A JP 2017566584 A JP2017566584 A JP 2017566584A JP 6981257 B2 JP6981257 B2 JP 6981257B2
Authority
JP
Japan
Prior art keywords
file
information processing
media
request
content
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
JP2017566584A
Other languages
English (en)
Other versions
JPWO2017138387A1 (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.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group 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, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2017138387A1 publication Critical patent/JPWO2017138387A1/ja
Application granted granted Critical
Publication of JP6981257B2 publication Critical patent/JP6981257B2/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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/323Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
    • 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, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 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, manipulating MPEG-4 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/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/23614Multiplexing of additional data and video streams
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • 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/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • 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/439Processing of audio elementary streams
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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
    • 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/64322IP
    • 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/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • 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

Description

本開示は、情報処理装置および情報処理方法に関し、特に、複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を効率的に行うことができるようにした情報処理装置および情報処理方法に関する。
MPEG-DASH(Moving Picture Experts Group phase − Dynamic Adaptive Streaming over HTTP)によるダイナミック・アダプティブ・ストリーミングでは、サーバが、各メディア種別の属性の異なる動画コンテンツのセグメントファイルと、メディア種別および属性ごとにセグメントファイルを管理するMPD(Media Presentation Description)ファイルとを用意する。
なお、メディア種別とは、映像、字幕、音声などの動画コンテンツの種類であり、属性の種類は、符号化ビットレート、言語、役割(目的)、映像の解像度やフレームレート、音声のサンプリングレートやチャンネル数などである。MPDファイルには、メディア種別ごとに、各属性を示す属性情報、各属性のセグメントファイルのURL(Uniform Resource Locator)などが含まれている。
クライアントは、サーバからMPDファイルを取得し、MPDファイルに基づいて各メディア種別の所定の属性のセグメントファイルのURLをサーバに送信することにより、そのセグメントファイルを取得する。
現在のMPEG-DASHでは、クライアントとサーバ間の通信プロトコルが、HTTP(HyperText Transfer Protocol)1.1である。従って、基本的に、サーバは、クライアントからのリクエストに対してレスポンスとしてデータを送信する。
具体的には、クライアントが、サーバからMPDファイルの送信を要求するHTTP GET リクエストをサーバに送信し、サーバが、このHTTP GETリクエストで指定されたURLのMPDファイルを、HTTP GETレスポンスとしてクライアントに送信する。
次に、クライアントが、受信したMPDファイルに基づいて、各メディア種別の1以上の属性のセグメントファイルのうちの初期化セグメントファイル(Initialization Segment)の送信を要求するHTTP GETリクエストを、初期化セグメントファイル単位で順次サーバに送信する。そして、サーバが、このHTTP GETリクエストで指定されたURLの初期化セグメントファイルを、HTTP GETレスポンスとしてクライアントに順次送信する。
また、クライアントは、実効ネットワーク帯域などに基づいて、メディア種別ごとに初期化セグメントファイルに対応する属性から1つの属性を選択する。そして、クライアントは、選択された属性のセグメントファイルのうちのメディアセグメントファイルの送信を要求するHTTP GETリクエストを、メディアセグメントファイル単位で順次サーバに送信する。サーバは、このHTTP GETリクエストで指定されたURLのメディアセグメントファイルをHTTP GETレスポンスとして順次クライアントに送信し、クライアントは、受信したメディアセグメントファイルを受信バッファに順次蓄積する。
このとき、クライアントは、メディアセグメントファイルの受信速度(例えば、受信されたデータの再生時間に対する受信に要した時間の比など)を計測する。計測された受信速度は、次のメディアセグメントファイルの各メディア種別の符号化ビットレートの属性の選択に用いられる。
以上のように、クライアントが、初期化セグメントファイル(メディアセグメントファイル)を受信するためには、初期化セグメントファイル単位(メディアセグメントファイル単位)で、HTTP GETリクエストの送信とHTTP GETレスポンスの受信を行う必要がある。従って、オーバヘッドが大きい。
一方、2015年5月にHTTP1.1の後継バージョンとしてHTTP/2がIETF(Internet Engineering Task Force)によって公開された(例えば、非特許文献1参照)。HTTP/2は、HTTP1.1との完全な後方互換性を維持しながら、多重化通信、ヘッダの圧縮、リクエストとレスポンスのパイプライン化などを可能にするものである。
また、これよりも前の2011年12月に、HTTPをベースとした多重化通信(双方向通信)を可能とするプロトコルとして、WebSocketプロトコルがIETFによって公開された(例えば、非特許文献2参照)。なお、多重化通信とは、サーバが、クライアントのリクエストに対するレスポンスだけでなく、リクエストによらないデータも送信する通信である。
以上により、現在、MPEGでは、MPEG-DASHにおけるクライアントとサーバ間の通信プロトコルとして、全二重通信プロトコルであるHTTP/2やWebSocketプロトコルを採用することにより、ストリーミングを効率化することが検討されている。
Hypertext Transfer Protocol Version 2 (HTTP/2),May 2015、インターネット<URL:https://tools.ietf.org/html/rfc7540> The WebSocket Protocol, December 2011、インターネット<URL:https://tools.ietf.org/html/rfc6455>
しかしながら、複数の属性のうちの所定の属性の動画コンテンツの初期化セグメントファイルの送信を効率的に行うことは考案されていなかった。
本開示は、このような状況に鑑みてなされたものであり、複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を効率的に行うことができるようにするものである。
本開示の第1の側面の情報処理装置は、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドを生成し、前記コマンドを含むヘッダでMPDリクエストを生成するリクエスト生成部と、複数の属性のコンテンツを管理するMPDファイルと前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルの送信を他の情報処理装置に要求するために、前記コマンドを含む前記MPDリクエストを送信する送信部を備える情報処理装置である。
本開示の第1の側面の情報処理方法は、本開示の第1の側面の情報処理装置に対応する。
本開示の第1の側面においては、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドが生成され、前記コマンドを含むヘッダでMPDリクエストが生成される。そして、複数の属性のコンテンツを管理するMPDファイルと前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルの送信を他の情報処理装置に要求するために、前記コマンドを含む前記MPDリクエストが送信される。
本開示の第2の側面の情報処理装置は、他の情報処理装置から、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドをヘッダに含むMPDリクエストを受信する通信部を備え前記通信部は、前記コマンドを含む前記MPDリクエストの受信に応じて、複数の属性のコンテンツを管理するMPDファイル前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルを送信する
情報処理装置である。
本開示の第2の側面の情報処理方法は、本開示の第2の側面の情報処理装置に対応する。
本開示の第2の側面においては、他の情報処理装置から、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドをヘッダに含むMPDリクエストが受信され、前記コマンドを含む前記MPDリクエストの受信に応じて、複数の属性のコンテンツを管理するMPDファイル前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルとが送信される
なお、本開示の第1および第2の側面の情報処理装置は、コンピュータにプログラムを実行させることにより実現することができる。
また、本開示の第1および第2の側面の情報処理装置を実現するために、コンピュータに実行させるプログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
本開示の第1の側面によれば、データの送信を要求することができる。また、本開示の第1の側面によれば、複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信の要求を効率的に行うことができる。
また、本開示の第2の側面によれば、データを送信することができる。また、本開示の第2の側面によれば、複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を効率的に行うことができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
MPEG-DASHにおけるMPDファイルの階層構造を説明する図である。 本開示を適用した情報処理システムの第1実施の形態の構成例を示すブロック図である。 図2の再生クライアントのソフトウエアの階層構造の例を示す図である。 図2の情報処理システムの処理を説明するフローチャートである。 初期化セグメント送信リスト生成処理の詳細を説明するフローチャートである。 後続メディアセグメント送信リスト生成処理スタートの詳細を説明するフローチャートである。 WebSocketプロトコルにおけるフレームの構成例を示す図である。 第2実施の形態におけるサブフレームの構造例を示す図である。 サブフレームのEXTENSIONの例を示す図である。 サブフレームのEXTENSIONの他の例を示す図である。 コンピュータのハードウエアの構成例を示すブロック図である。
以下、本開示を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.第1実施の形態:情報処理システム(図1乃至図6)
2.第2実施の形態:情報処理システム(図7乃至図10)
3.第3実施の形態:コンピュータ(図11)
<第1実施の形態>
(MPDファイルの説明)
図1は、MPEG-DASHにおけるMPDファイルの階層構造を説明する図である。
MPDファイルには、動画コンテンツの符号化方式、符号化ビットレート、映像の解像度、言語などの情報が階層化されて、XML形式で記述される。
具体的には、図1に示すように、MPDファイルには、ピリオド(Period)、アダプテーションセット(AdaptationSet)、リプレゼンテーション(Representation)、セグメントインフォ(SegmentInfo)等の要素が階層的に含まれている。
MPDファイルでは、自分が管理する動画コンテンツが所定の時間範囲(例えば、番組、CM(Commercial)などの単位)で分割される。ピリオド要素は、分割された動画コンテンツごとに記述される。ピリオド要素は、動画コンテンツのプログラム(同期を取った1組の映像データや音声データなどのデータ)の再生開始時刻などの情報を有する。
アダプテーションセット要素は、ピリオド要素に含まれ、そのピリオド要素に対応する動画コンテンツのリプレゼンテーション要素をメディア種別や属性などによってグルーピングする。アダプテーションセット要素は、グループに含まれるリプレゼンテーション要素に対応する動画コンテンツに共通のメディア種別、属性などを有する。
リプレゼンテーション要素は、それをグルーピングするアダプテーションセット要素に含まれ、上位層のピリオド要素に対応する動画コンテンツのうちの、メディア種別および属性が同一である動画コンテンツのセグメントファイル群ごとに記述される。リプレゼンテーション要素は、このリプレゼンテーション要素に対応するセグメントファイル群に共通の属性、URLなどを有する。
セグメントインフォ要素は、リプレゼンテーション要素に含まれ、そのリプレゼンテーションに対応するセグメントファイル群の各セグメントファイルに関する情報(例えば、URLなど)を有する。
(情報処理システムの第1実施の形態の構成例)
図2は、本開示を適用した情報処理システムの第1実施の形態の構成例を示すブロック図である。
図2の情報処理システム10は、配信サーバ11と再生クライアント12がネットワーク13を介して接続することにより構成される。情報処理システム10は、HTTP/2に準拠して、MPEG-DASHによるダイナミック・アダプティブ・ストリーミングを行う。
具体的には、情報処理システム10の配信サーバ11は、記憶部30、httpサーバ31、解析部32、計測部33、選択部34、および選択部35により構成される。
配信サーバ11の記憶部30(ストレージ)は、複数のメディア種別の各属性の動画コンテンツのセグメントファイルを管理するMPDファイルと、そのセグメントファイルとを記憶する。
セグメントファイルは、動画コンテンツの符号化ストリームをセグメントと呼ばれる数秒から10秒程度の時間単位で格納するメディアセグメントファイルと、その符号化ストリームを復号する際に用いられるパラメータを含む初期化セグメントファイルとにより構成される。
メディアセグメントファイルに格納される符号化ストリームは、メディア種別および属性ごとに、動画コンテンツが符号化された符号化ストリームである。第1実施の形態では、属性の種類は、言語、役割(目的)、および符号化ビットレートであるものとする。従って、例えば、符号化ビットレートが異なる符号化ストリームや言語が異なる符号化ストリームは、それぞれ、異なるメディアセグメントファイルに格納される。
httpサーバ31は、HTTP/2に準拠してネットワーク13を介して再生クライアント12と通信を行う。具体的には、httpサーバ31は、再生クライアント12から送信されてくる、MPDファイルの送信を配信サーバ11に要求するHTTP GETリクエスト(以下、MPDリクエストという)を受信する。httpサーバ31は、MPDリクエスト(管理ファイル要求情報)で指定されたMPDファイルのURLに基づいて、記憶部30からMPDファイルを読み出し、再生クライアント12に送信する。また、httpサーバ31は、MPDリクエストのヘッダを解析部32に供給する。
また、httpサーバ31は、再生クライアント12から送信されてくる、所定のメディア種別の所定の属性の所定の再生時刻のメディアセグメントファイルの送信を配信サーバ11に要求するHTTP GETリクエスト(以下、メディアリクエストという)を受信する。httpサーバ31は、メディアリクエスト(コンテンツファイル要求情報)で指定されたURLに基づいて、記憶部30から選択部35を介してメディアセグメントファイルを読み出し、再生クライアント12に送信する。また、httpサーバ31は、メディアリクエストのヘッダを解析部32に供給する。
さらに、httpサーバ31(送信部)は、選択部34から供給される初期化セグメントファイルおよび選択部35から供給されるメディアセグメントファイルを、再生クライアント12に送信する。
解析部32は、httpサーバ31から供給されるMPDリクエストのヘッダを解析し、push-init-segment指令を記述する拡張ヘッダを抽出する。push-init-segment指令は、記憶部30に記憶される複数のメディア種別の各属性の動画コンテンツの初期化セグメントファイルのうちの、所定のメディア種別の所定の属性の初期化セグメントファイルの送信を配信サーバ11に要求するプッシュ指令である。
push-init-segment指令を記述する拡張ヘッダの記述は、「Accept-push-policy: “type”=“push-init-segment”, PUSH_PARAMS」である。「Accept-push-policy」は、拡張ヘッダの名前であり、配信サーバ11に対するプッシュ指令を記述する拡張ヘッダであることを示している。「Accept-push-policy」以降の記述は、パラメータを示すコードと、そのパラメータの値とをイコールで結ぶことにより、各パラメータの値を指定する。
即ち、「“type”=“push-init-segment”」では、プッシュ指令のタイプ(種類)をパラメータとして示すコード「type」と、そのパラメータの値である「push-init-segment」とがイコールで結ばれている。従って、拡張ヘッダに記述されるプッシュ指令のタイプとして、push-init-segment指令が指定されている。
また、「“type”=“push-init-segment”」の後の「PUSH_PARAMS」は、push-init-segment指令により配信サーバ11が送信を要求される初期化セグメントファイルのメディア種別(種類)または属性の種類をパラメータとして示すコードと、そのパラメータの値とをイコールで結ぶ記述である。この記述により、push-init-segment指令により配信サーバ11が送信を要求される初期化セグメントファイルのメディア種別または属性が指定される。
例えば、「PUSH_PARAMS」では、メディア種別をパラメータとして示すコード「media」と、メディア種別を示す値であるMIME-typeとがイコールで結ばれる。これにより、push-init-segment指令により送信を要求する初期化セグメントファイルのメディア種別が指定される。メディア種別を示すMIME-typeとしては、「video/mp4」、「audio/mp4」などがある。「video/mp4」は、メディア種別としてMP4形式でファイル化される映像を示し、「audio/mp4」は、メディア種別としてMP4形式でファイル化される音声を示す。
また、「PUSH_PARAMS」では、言語をパラメータとして示すコード「lang」と、言語の属性を示す属性情報としてのISO 639-1に基づく言語コードとがイコールで結ばれる。これにより、push-init-segment指令により送信を要求する初期化セグメントファイルの言語の属性が指定される。例えば、言語の属性として日本語を指定する場合、「PUSH_PARAMS」には、「“lang”=”ja”」が記述される。なお、言語の属性は、メディア種別として音声または字幕が指定される場合にのみ指定することができる。
さらに、「PUSH_PARAMS」では、目的(役割)をパラメータとして示すコード「role」と、目的(役割)の属性情報としてのMPDファイルのアダプテーションセット要素が有し得るroleアトリビュートの値とがイコールで結ばれる。これにより、push-init-segment指令により送信を要求する初期化セグメントファイルの目的(役割)の属性が指定される。MPDファイルが有し得るroleアトリビュートの値としては、「main」、「alternate」、「supplementary」、「commentary」、「dub(吹替え)」、「description」などがある。
また、「PUSH_PARAMS」では、符号化ビットレートをパラメータとして示すコード「bitrate」と、符号化ビットレートの属性情報としての1秒あたりの符号化ビットレートの範囲とがイコールで結ばれる。これにより、push-init-segment指令により送信を要求する初期化セグメントファイルの符号化ビットレートの属性の範囲が指定される。
従って、例えば、push-init-segment指令により送信を要求する初期化セグメントファイルのメディア種別、目的(役割)、および符号化ビットレートを指定するpush-init-segment指令を記述する拡張ヘッダの記述は、「Accept-push-policy: “type”=“push-init-segment”,”media”=”video/mp4”,”role”=”main”,”bitrate”=”400000-8000000”」になる。
この場合、push-init-segment指令により送信を要求する初期化セグメントファイルのメディア種別として、MP4形式でファイル化される映像が指定されており、目的(役割)の属性情報として「main」が指定されている。また、符号化ビットレートの属性情報の範囲として400kbpsから8Mbpsまでの範囲が指定されている。
解析部32は、push-init-segment指令を記述する拡張ヘッダの「PUSH_PARAMS」により指定されたメディア種別および属性を認識し、選択部34に供給する。
また、解析部32は、httpサーバ31から供給されるメディアリクエストのヘッダを解析し、push-media-adapted指令を記述する拡張ヘッダを抽出する。push-media-adapted指令は、送信元により許容範囲内で選択された符号化ビットレートの後続メディアセグメントファイル(後続コンテンツのファイル)の送信を配信サーバ11に要求するプッシュ指令である。なお、後続メディアセグメントファイルとは、メディアリクエストで送信が要求されるメディアセグメントファイルの再生時刻より後の再生時刻の、そのメディアセグメントファイルと符号化ビットレート以外の属性が同一であるメディアセグメントファイルである。
push-media-adapted指令を記述する拡張ヘッダの記述は、「Accept-push-policy: “type”=“push-media-adapted”, PUSH_PARAMS」である。push-media-adapted指令を記述する拡張ヘッダの記述は、プッシュ指令のタイプと、PUSH_PARAMSにおけるパラメータとを除いて、push-init-segment指令を記述する拡張ヘッダの記述と同様である。
即ち、push-media-adapted指令を記述する拡張ヘッダの記述では、「“type”=“push-media-adapted”」において、コード「type」と「push-init-segment」とがイコールで結ばれている。従って、拡張ヘッダに記述されるプッシュ指令のタイプとして、push-media-adapted指令が指定されている。
また、「“type”=“push-media-adapted”」の後の「PUSH_PARAMS」は、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの期間と符号化ビットレートの許容範囲をパラメータとして示すコードと、そのパラメータの値とをイコールで結ぶ記述である。この記述により、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの期間および符号化ビットレートの許容範囲が指定される。
後続メディアセグメントファイルの期間をパラメータとして示すコードとしては、例えば、「duration」または「number」がある。後続メディアセグメントファイルの期間を示すコードが「duration」である場合、「PUSH_PARAMS」では、コード「duration」と、後続メディアセグメントファイルの期間を示す情報としての再生時間を秒単位で示す整数値とがイコールで結ばれる。一方、後続メディアセグメントファイルの期間を示すコードが「number」である場合、「PUSH_PARAMS」では、コード「number」と、後続メディアセグメントファイルの期間を示す情報としてのファイル数を示す整数値とがイコールで結ばれる。これにより、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの期間が指定される。
また、「PUSH_PARAMS」では、符号化ビットレートの許容範囲をパラメータとして示すコード「bitrate」と、符号化ビットレートの許容範囲を示す範囲情報としての1秒あたりの符号化ビットレートの範囲とがイコールで結ばれる。これにより、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの符号化ビットレートの範囲情報が指定される。
従って、例えば、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの期間を再生時間で指定するpush-media-adapted指令を記述する拡張ヘッダの記述は、「accept-push-policy:“type”=“push-media-adapted”,”duration”=”120”,”bitrate”=”400000-8000000”」になる。この場合、push-media-adapted指令により送信を要求する後続メディアセグメントファイルの再生時間として120秒が指定されており、符号化ビットレートの許容範囲として400kbpsから8Mbpsまでの範囲が指定されている。
解析部32は、push-media-adapted指令を記述する拡張ヘッダの「PUSH_PARAMS」により指定された期間と符号化ビットレートの許容範囲を認識し、選択部35に供給する。
計測部33は、httpサーバ31から送信されるMPDファイル、初期化セグメントファイル、およびメディアセグメントファイルの実効的なデータ送信レートを計測する。具体的には、配信サーバ11と再生クライアント12の間の伝送では、データの受信時、そのデータの受信通知としてACK信号を送信する。従って、計測部33は、例えば、TCP(Transfer Control Protocol)レイヤにおける再生クライアント12からのACK信号の状況に基づいて、実効的なデータ送信レートを計測する。計測部33は、計測の結果得られるデータ送信レートを、ネットワーク13の実効帯域を示す計測ビットレートとして選択部35に供給する。
選択部34は、記憶部30に記憶されているMPDファイルに基づいて、解析部32から供給される、指定されたメディア種別および属性の初期化セグメントファイルのURLを登録した送信リストを生成し、保持する。
具体的には、選択部34は、MPDファイルに記述される全てのリプレゼンテーション要素から、指定されたメディア種別を有するアダプテーションセット要素のリプレゼンテーション要素を選択する。そして、選択部34は、選択されたリプレゼンテーション要素から、そのリプレゼンテーション要素またはリプレゼンテーション要素をグルーピングするアダプテーションセット要素が、指定された属性を有するリプレゼンテーション要素を選択する。
例えば、MPDファイルでは、リプレゼンテーション要素が、符号化ビットレートの属性情報をbandwidthアトリビュートとして有する。従って、指定された属性の種類が符号化ビットレートのみである場合、選択部34は、選択されたリプレゼンテーション要素から、指定された符号化ビットレートの属性の範囲内の属性の属性情報をbandwidthアトリビュートとして有するリプレゼンテーション要素を選択する。
なお、指定された属性の種類の数が複数である場合には、全種類の属性に対応するリプレゼンテーション要素が選択される。しかしながら、全種類の属性に対応するリプレゼンテーション要素が存在しない場合には、選択部34は、各属性の種類の優先度に基づいて選択に用いる属性の種類を削減する。
ここでは、各属性の種類の優先度は、予め決められているものとするが、PUSH_PARAMSにより指定される順番に基づいて決められてもよい。
選択部34は、以上のようにして選択されたリプレゼンテーション要素が有する初期化セグメントファイルのURLを登録した送信リストを、初期化セグメントファイルの送信リストとして生成し、保持する。選択部34は、初期化セグメントファイルの送信リストに登録されているURLに基づいて、記憶部30から初期化セグメントファイルを読み出し、httpサーバ31に供給する。
選択部35は、計測ビットレート、MPDファイル、並びに、解析部32から供給される期間および符号化ビットレートの許容範囲に基づいて、許容範囲内の符号化ビットレートから、後続メディアセグメントファイルの符号化ビットレートを選択する。
具体的には、選択部35は、MPDファイルから、許容範囲内の符号化ビットレートをbandwidthアトリビュートとして有する後続メディアセグメントファイルが属するリプレゼンテーション要素を選択する。そして、選択部35は、選択されたリプレゼンテーション要素から、計測ビットレートに適した符号化ビットレートをbandwidthアトリビュートとして有するリプレゼンテーション要素を選択する。
選択部35は、選択されたリプレゼンテーション要素に属する後続メディアセグメントファイルのURLを登録した送信リストを、後続メディアセグメントファイルの送信リストとして生成し、保持する。選択部35は、後続メディアセグメントファイルの送信リストに登録されているURLに基づいて、記憶部30から後続メディアセグメントファイルを読み出し、httpサーバ31に供給する。
再生クライアント12は、リクエスト生成部50、httpクライアント51、MPDパーサ52、選択部53、受信バッファ54、および再生部56により構成される。
再生クライアント12のリクエスト生成部50は、ヘッダにpush-init-segment指令を含むMPDリクエスト生成する。具体的には、再生クライアント12は、MPDリクエストの生成時には、まだMPDファイルを取得していないため、配信サーバ11に実際に記憶されている初期化セグメントファイルの属性およびメディア種別は未知である。しかしながら、再生クライアント12は、再生クライアント12の特性やユーザの嗜好などに基づいて、初期化セグメントファイルのメディア種別および属性としてとり得る値から、必要となり得る初期化セグメントファイルのメディア種別および属性を選択することは可能である。
従って、リクエスト生成部50は、必要となり得る初期化セグメントファイルのメディア種別および属性を指定するpush-init-segment指令を記述する拡張ヘッダを生成し、その拡張ヘッダをヘッダに含むMPDリクエストを生成する。リクエスト生成部50は、MPDリクエストをhttpクライアント51に供給する。
また、リクエスト生成部50は、選択部53から供給されるURLと符号化ビットレートの許容範囲とに基づいて、ヘッダにpush-media-adapted指令を含むメディアリクエストを生成する。具体的には、リクエスト生成部50は、URLをデータ部(ボディ)に配置し、後続メディアセグメントファイルの期間と符号化ビットレートの許容範囲を指定するpush-media-adapted指令を記述する拡張ヘッダをヘッダ部に配置したメディアリクエストを生成する。リクエスト生成部50は、メディアリクエストをhttpクライアント51に供給する。
httpクライアント51(送信部)は、HTTP/2に準拠してネットワーク13を介して配信サーバ11と通信を行う。具体的には、httpクライアント51は、リクエスト生成部50から供給されるMPDリクエストおよびメディアリクエストを、配信サーバ11に送信する。httpクライアント51は、MPDリクエストに応じて配信サーバ11から送信されてくるMPDファイルと初期化セグメントファイルを受信する。
httpクライアント51は、MPDファイルをMPDパーサ52に供給し、初期化セグメントファイルを受信バッファ54に供給する。また、httpクライアント51は、メディアリクエストに応じて配信サーバ11から送信されてくるメディアセグメントファイルを受信し、受信バッファ54に供給する。
MPDパーサ52は、httpクライアント51から供給されるMPDファイルを解析し、各リプレゼンテーション要素に対応するメディア種別、属性、URLなどを含むリプレゼンテーション情報を、選択部53に供給する。
選択部53は、帯域推定部57から供給される計測ビットレート、再生クライアント12の特性、ユーザの嗜好などに基づいて、メディアリクエストでURLを指定するメディアセグメントファイルのメディア種別と属性を決定する。
選択部53は、決定されたメディア種別および属性に基づいて、MPDパーサ52から供給されるリプレゼンテーション情報から、メディアリクエストでURLを指定するメディアセグメントファイルのリプレゼンテーション情報を選択する。また、選択部53は、メディアリクエストでURLを指定するメディアセグメントファイルの再生時刻と、選択されたリプレゼンテーション情報とに基づいて、メディアリクエストで指定するメディアセグメントファイルのURLを決定し、リクエスト生成部50に供給する。
また、選択部53は、計測ビットレート、再生クライアント12の特性、ユーザの嗜好などに基づいて、後続メディアセグメントファイルの符号化ビットレートの許容範囲を決定し、リクエスト生成部50に供給する。
受信バッファ54は、httpクライアント51から供給される初期化セグメントファイルとメディアセグメントファイルを保持する。
再生部56は、受信バッファ54から再生対象の初期化セグメントファイルを読み出し、その初期化セグメントファイルに含まれるパラメータを設定する。また、再生部56は、受信バッファ54から再生対象のメディアセグメントファイルを読み出す。再生部56は、設定されたパラメータを用いて、読み出されたメディアセグメントファイルに格納される符号化ストリームを復号し、再生する。
帯域推定部57は、受信バッファ54に保持される初期化セグメントファイルやメディアセグメントファイルのデータ量に基づいて、実効的なデータ受信レートを計測する。帯域推定部57は、計測の結果得られるデータ受信レートを、計測ビットレートとして選択部53に供給する。
(再生クライアントのソフトウエアの階層構造の例)
図3は、図2の再生クライアント12のソフトウエアの階層構造の例を示す図である。
図3に示すように、再生クライアント12のソフトウエアの最下層は、受信バッファ54と再生部70により構成されるハードウエア層である。また、中間層は、DASHクライアント部71、帯域推定部72、および再生制御部73により構成され、最上層は、アプリケーション部74により構成される。
DASHクライアント部71は、httpクライアント51とMPDパーサ52を実現するソフトウエアであり、帯域推定部72は、帯域推定部57を実現するソフトウエアである。また、再生制御部73は、再生部70を制御するソフトウエアであり、再生部70と再生制御部73により、再生部56が実現される。アプリケーション部74は、リクエスト生成部50、選択部53等を実現するソフトウエアである。
(情報処理システムの処理の説明)
図4は、図2の情報処理システム10の処理を説明するフローチャートである。
図4のステップS11において、再生クライアント12のリクエスト生成部50は、初期化セグメントファイルのメディア種別および属性としてとり得る値から、必要となり得る初期化セグメントファイルのメディア種別および属性を選択する。
ステップS12において、リクエスト生成部50は、選択されたメディア種別および属性を指定するpush-init-segment指令を記述する拡張ヘッダをヘッダに含むMPDリクエストを生成し、配信サーバ11に送信する。
ステップS41において、配信サーバ11のhttpサーバ31は、再生クライアント12から送信されてくるMPDリクエストを受信する。そして、httpサーバ31は、MPDリクエストで指定されたMPDファイルのURLに基づいて、記憶部30からMPDファイルを読み出す。ステップS42において、httpサーバ31は、読み出されたMPDファイルを、MPDリクエストのレスポンスとして、再生クライアント12に送信する。また、httpサーバ31は、MPDリクエストのヘッダを解析部32に供給する。
ステップS13において、httpクライアント51は、配信サーバ11から送信されてくるMPDファイルを受信し、MPDパーサ52に供給する。MPDパーサ52は、httpクライアント51から供給されるMPDファイルを解析し、各リプレゼンテーション要素のリプレゼンテーション情報を、選択部53に供給する。
ステップS43において、配信サーバ11は、MPDリクエストのヘッダに含まれるpush-init-segment指令とMPDファイルとに基づいて、初期化セグメントファイルの送信リストを生成する初期化セグメント送信リスト生成処理を行う。この初期化セグメント送信リスト生成処理の詳細は、後述する図5を参照して説明する。
ステップS44において、選択部35は、初期化セグメントファイルの送信リストに登録されている先頭から1番目のURLに基づいて、記憶部30から初期化セグメントファイルを読み出し、httpサーバ31を介して再生クライアント12に送信する。なお、以下では、初期化セグメントファイルの送信リストに登録されている先頭からi番目のURLに対応する初期化セグメントファイルを初期化セグメントファイル#iという。
ステップS14において、httpクライアント51は、配信サーバ11から送信されてくる初期化セグメントファイル#1を受信し、受信バッファ54に供給して保持させる。
ステップS44の処理後、ステップS44の処理と同様に、初期化セグメントファイル#i+1乃至#n−1が再生クライアント12に順次送信される。そして、ステップS14の処理後、ステップS14の処理と同様に、初期化セグメントファイル#i+1乃至#n−1が配信サーバ11から順次受信される。なお、nとは、初期化セグメントファイルの送信リストに登録されているURLの数であり、1以上の整数である。
初期化セグメントファイル#n−1の送信後、ステップS45において、選択部35は、ステップS44の処理と同様に、初期化セグメントファイル#nを再生クライアント12に送信する。
そして、初期化セグメントファイル#n−1の受信後、ステップS15において、httpクライアント51は、ステップS14の処理と同様に、初期化セグメントファイル#nを配信サーバ11から受信し、受信バッファ54に供給して保持させる。
ステップS16において、選択部53は、帯域推定部57から供給される計測ビットレート、再生クライアント12の特性、ユーザの嗜好などに基づいて、メディアリクエストで指定するメディアセグメントファイルのURLを決定する。また、選択部53は、計測ビットレート、再生クライアント12の特性、ユーザの嗜好などに基づいて、後続メディアセグメントファイルの符号化ビットレートの属性の許容範囲を決定する。そして、選択部53は、決定されたURLと許容範囲をリクエスト生成部50に供給する。
ステップS17において、選択部53から供給されるURLと符号化ビットレートの許容範囲とに基づいて、ヘッダにpush-media-adapted指令を含むメディアリクエストを生成し、httpクライアント51を介して、配信サーバ11に送信する。
ステップS46において、httpサーバ31は、再生クライアント12から送信されてくるメディアリクエストを受信する。ステップS47において、httpサーバ31は、メディアリクエストで指定されたURLに基づいて、記憶部30から選択部35を介してメディアセグメントファイルを読み出し、再生クライアント12に送信する。また、httpサーバ31は、メディアリクエストのヘッダを解析部32に供給する。
ステップS18において、httpクライアント51は、配信サーバ11から送信されてくるメディアセグメントファイルを受信し、受信バッファ54に供給して保持させる。
ステップS48において、配信サーバ11は、メディアリクエストのヘッダに含まれるpush-media-adapted指令とMPDファイルとに基づいて、後続メディアセグメントファイルの送信リストを生成する後続メディアセグメントファイル送信リスト生成処理を行う。この後続メディアセグメントファイル送信リスト生成処理の詳細は、後述する図6を参照して説明する。
ステップS49において、選択部35は、後続メディアセグメントファイルの送信リストに登録されている先頭から1番目のURLに基づいて、記憶部30から後続メディアセグメントファイルを読み出し、httpサーバ31を介して再生クライアント12に送信する。なお、以下では、後続メディアセグメントファイルの送信リストに登録されている先頭からi番目のURLに対応する後続メディアセグメントファイルを後続メディアセグメントファイル#iという。
ステップS19において、httpクライアント51は、配信サーバ11から送信されてくる後続メディアセグメントファイル#1を受信し、受信バッファ54に供給して保持させる。
ステップS49の処理後、ステップS49の処理と同様に、後続メディアセグメントファイル#i+1乃至#m−1が再生クライアント12に順次送信される。そして、ステップS19の処理後、ステップS19の処理と同様に、後続メディアセグメントファイル#i+1乃至#m−1が配信サーバ11から順次受信される。なお、mとは、後続メディアセグメントファイルの送信リストに登録されているURLの数であり、1以上の整数である。
後続メディアセグメントファイル#m−1の送信後、ステップS50において、選択部35は、ステップS49の処理と同様に、後続メディアセグメントファイル#mをhttpサーバ31を介して再生クライアント12に送信する。
そして、後続メディアセグメントファイル#m−1の受信後、ステップS20において、httpクライアント51は、ステップS19の処理と同様に、後続メディアセグメントファイル#mを配信サーバ11から受信し、受信バッファ54に供給して保持させる。
以上のようにして保持された初期化セグメントファイルと後続メディアセグメントファイルのうちの、再生対象の初期化セグメントファイルと後続メディアセグメントファイルは、再生部56により読み出される。その結果、後続メディアセグメントファイルの再生が行われる。
図5は、図4のステップS43の初期化セグメント送信リスト生成処理の詳細を説明するフローチャートである。
なお、図5の例では、各属性の優先度は、言語、役割、符号化ビットレートの順に高くなっている。
図5のステップS71において、解析部32は、httpサーバ31から供給されるヘッダにpush-init-segment指令が含まれているかどうかを判定する。具体的には、解析部32は、httpサーバ31から供給されるヘッダに、ヘッダ名が「accept-push-policy」である拡張ヘッダが含まれており、その拡張ヘッダに「“type”=“push-init-segment”」が含まれているかどうかを判定する。
ステップS71でpush-init-segment指令が含まれていると判定された場合、処理はステップS72に進む。ステップS72において、選択部34は、MPDファイルに記述される全てのリプレゼンテーション要素に対応する初期化セグメントファイルをプッシュ対象(送信対象)とし、そのリプレゼンテーション要素が有する初期化セグメントファイルのURLを送信リストに登録する。
ステップS73において、解析部32は、push-init-segment指令でメディア種別が指定されているかどうか、即ち拡張ヘッダにコード「media」が含まれているかどうかを判定する。ステップS73でpush-init-segment指令でメディア種別が指定されていると判定された場合、解析部32は、コード「media-type」とイコールで結ばれるMIME-typeが示すメディア種別を、指定されたメディア種別として認識し、選択部34に供給する。
ステップS74において、選択部34は、解析部32から供給される、指定されたメディア種別以外のメディア種別に対応するURLを送信リストから削除する。具体的には、選択部34は、指定されたメディア種別以外のメディア種別を有するアダプテーションセット要素によりグルーピングされるリプレゼンテーション要素が有する初期化セグメントファイルのURLを送信リストから削除する。そして、処理はステップS75に進む。
一方、ステップS73でpush-init-segment指令でメディア種別が指定されていないと判定された場合、処理はステップS74をスキップし、ステップS75に進む。
ステップS75において、選択部34は、push-init-segment指令で言語の属性が指定されており、その言語の属性に対応するURLが送信リストに存在するかどうかを判定する。即ち、拡張ヘッダにコード「lang」が含まれており、解析部32から、コード「lang」とイコールで結ばれる言語コードが示す属性が、指定された言語の属性として供給された場合、選択部34は、その属性のリプレゼンテーション要素が有する初期化セグメントファイルのURLが送信リストに存在するかどうかを判定する。
ステップS75でpush-init-segment指令で言語の属性が指定されており、その言語の属性に対応するURLが送信リストに存在すると判定された場合、処理はステップS76に進む。
ステップS76において、選択部34は、解析部32から供給される、指定された言語の属性以外の言語の属性に対応するURLを送信リストから削除する。そして、処理はステップS77に進む。
一方、ステップS75でpush-init-segment指令で言語の属性が指定されていないか、または、push-init-segment指令で指定された言語の属性に対応するURLが送信リストに存在しないと判定された場合、処理はステップS76をスキップし、ステップS77に進む。
ステップS77において、選択部34は、push-init-segment指令で役割の属性が指定されており、その役割の属性に対応するURLが送信リストに存在するかどうかを判定する。即ち、拡張ヘッダにコード「role」が含まれており、解析部32から、コード「role」とイコールで結ばれるroleアトリビュートの値が示す属性が、指定された役割の属性として供給された場合、選択部34は、その属性のリプレゼンテーション要素が有する初期化セグメントファイルのURLが送信リストに存在するかどうかを判定する。
ステップS77でpush-init-segment指令で役割の属性が指定されており、その役割の属性に対応するURLが送信リストに存在すると判定された場合、処理はステップS78に進む。
ステップS78において、選択部34は、解析部32から供給される、指定された役割の属性以外の役割の属性に対応するURLを送信リストから削除する。そして、処理はステップS79に進む。
一方、ステップS77でpush-init-segment指令で役割の属性が指定されていないか、または、push-init-segment指令で指定された役割の属性に対応するURLが送信リストに存在しないと判定された場合、処理はステップS78をスキップし、ステップS79に進む。
ステップS79において、選択部34は、push-init-segment指令で符号化ビットレートの属性の範囲が指定されており、その範囲内の符号化ビットレートに対応するURLが送信リストに存在するかどうかを判定する。即ち、拡張ヘッダにコード「bitrate」が含まれており、解析部32から、コード「bitrate」とイコールで結ばれる属性情報が示す属性の範囲が、指定された符号化ビットレートの属性の範囲として供給された場合、選択部34は、その属性の範囲内の符号化ビットレートのリプレゼンテーション要素が有する初期化セグメントファイルのURLが送信リストに存在するかどうかを判定する。
ステップS79でpush-init-segment指令で符号化ビットレートの属性の範囲が指定されており、その範囲内の符号化ビットレートに対応するURLが送信リストに存在すると判定された場合、処理はステップS80に進む。
ステップS80において、選択部34は、解析部32から供給される、指定された符号化ビットレートの属性の範囲外の符号化ビットレートに対応するURLを送信リストから削除する。そして、処理は終了する。
一方、ステップS79でpush-init-segment指令で符号化ビットレートの属性の範囲が指定されていないか、または、push-init-segment指令で指定された符号化ビットレートの属性の範囲内の符号化ビットレートに対応するURLが送信リストに存在しないと判定された場合、処理はステップS80をスキップし、終了する。
また、ステップS71でpush-init-segment指令が含まれていないと判定された場合、処理は終了する。
なお、ステップS74,S76,S78において、送信リストに登録されている全てのURLを削除することになる場合には、選択部34は削除を行わない。また、ステップS80において、送信リストに登録されている全てのURLを削除することになる場合には、選択部34は、指定された符号化ビットレートの属性の範囲の下限値または上限値に最も近い符号化ビットレートに対応するURLを送信リストから削除せずに残す。
例えば、送信リストに登録されている全てのURLに対応する符号化ビットレートが、指定された範囲より小さい場合、選択部34は、指定された範囲の下限値に最も近い符号化ビットレートに対応するURLを残す。一方、送信リストに登録されている全てのURLに対応する符号化ビットレートが、指定された範囲より大きい場合、選択部34は、指定された範囲の上限値に最も近い符号化ビットレートに対応するURLを残す。
図6は、図4のステップS48の後続メディアセグメント送信リスト生成処理スタートの詳細を説明するフローチャートである。
図6のステップS101において、解析部32は、httpサーバ31から供給されるヘッダにpush-media-adapted指令が含まれているかどうかを判定する。具体的には、解析部32は、httpサーバ31から供給されるヘッダに、ヘッダ名が「accept-push-policy」である拡張ヘッダが含まれており、その拡張ヘッダに「“type”=“push-media-adapted”」が含まれているかどうかを判定する。
ステップS101でpush-media-adapted指令が含まれていると判定された場合、ステップS102において、解析部32は、push-media-adapted指令で指定される後続メディアセグメントファイルの期間と符号化ビットレートの許容範囲を認識し、保持する。
ステップS103において、選択部35は、現在の送信対象のメディアセグメントファイルの送信ビットレートが、計測部33から供給される計測ビットレートより高いかどうかを判定する。ステップS103で送信ビットレートが計測ビットレートより高いと判定された場合、処理はステップS104に進む。
ステップS104において、選択部35は、解析部32から許容範囲を読み出し、送信ビットレートが、その許容範囲の下限値より高いかどうかを判定する。ステップS104で送信ビットレートが許容範囲の下限値より高いと判定された場合、処理はステップS105に進む。
ステップS105において、選択部35は、MPDファイルに記述されている後続メディアセグメントファイルが属するリプレゼンテーション要素がBandwidthとして有する、送信ビットレートの次に低い符号化ビットレートが、許容範囲の下限値以上であるかどうかを判定する。
ステップS105で許容範囲の下限値以上であると判定された場合、ステップS106において、選択部35は、送信ビットレートの次に低い符号化ビットレートのリプレゼンテーション要素に属する後続メディアセグメントファイルのURLを送信リストに登録する。そして、処理はステップS112に進む。
一方、ステップS103で送信ビットレートが計測ビットレートより高くはないと判定された場合、ステップS107において、選択部35は、送信ビットレートが計測ビットレートより低いかどうかを判定する。ステップS107で送信ビットレートが計測ビットレートより低いと判定された場合、処理はステップS108に進む。
ステップS108において、選択部35は、解析部32から許容範囲を読み出し、送信ビットレートが、その許容範囲の上限値より低いかどうかを判定する。ステップS108で送信ビットレートが許容範囲の上限値より低いと判定された場合、処理はステップS109に進む。
ステップS109において、選択部35は、MPDファイルに記述されている後続メディアセグメントファイルが属するリプレゼンテーション要素がBandwidthとして有する、送信ビットレートの次に高いビットレートが、許容範囲の上限値以下であるかどうかを判定する。
ステップS109で許容範囲の上限値以下であると判定された場合、ステップS110において、選択部35は、送信ビットレートの次に高い符号化ビットレートのリプレゼンテーション要素に属する後続メディアセグメントファイルのURLを送信リストに登録する。そして、処理はステップS112に進む。
また、ステップS104で送信ビットレートが許容範囲の下限値より高くはないと判定された場合、または、ステップS105で送信ビットレートの次に低い符号化ビットレートが許容範囲の下限値より低いと判定された場合、処理はステップS111に進む。
さらに、ステップS107で送信ビットレートが計測ビットレートより低くはないと判定された場合、即ち送信ビットレートと計測ビットレートが同一である場合、処理はステップS111に進む。
また、ステップS108で送信ビットレートが許容範囲の上限値より低くはないと判定された場合、または、ステップS109で送信ビットレートの次に高い符号化ビットレートが許容範囲の上限値より高いと判定された場合、処理はステップS111に進む。
ステップS111において、選択部35は、送信ビットレートのリプレゼンテーション要素に属する後続メディアセグメントファイルのURLを送信リストに登録する。そして、処理はステップS112に進む。
ステップS112において、選択部35は、解析部32から後続メディアセグメントファイルの期間を読み出し、その期間分の後続メディアセグメントファイルのURLを送信リストに登録したかどうかを判定する。
ステップS112で、読み出された期間分の後続メディアセグメントファイルのURLを送信リストにまだ登録していないと判定された場合、処理はステップS103に戻り、ステップS103乃至S112の処理が繰り返される。
一方、ステップS112で、読み出された期間分の後続メディアセグメントファイルのURLを送信リストに既に登録したと判定された場合、処理は終了する。
また、ステップS101でpush-media-adapted指令が含まれていないと判定された場合、処理は終了する。
以上のように、情報処理システム10では、再生クライアント12が、push-init-segment指令を含むMPDリクエストを送信する。従って、再生クライアント12は、MPDリクエストを送信するだけで、MPDファイルと初期化セグメントファイルの両方を受信することができる。即ち、再生クライアント12は、初期化セグメントファイルの送信を要求するHTTP GETリクエストを送信する必要がない。従って、再生クライアント12は、初期化セグメントファイルの送信の要求を効率的に行うことができる。また、配信サーバ11は、初期化セグメントファイルの送信を要求するHTTP GETの受信を待つ必要がないため、初期化セグメントファイルの送信を効率的に行うことができる。
また、push-init-segment指令では、送信を要求する初期化セグメントファイルのメディア種別や属性を指定することができる。従って、不要な初期化セグメントファイルを無駄に受信する必要がなく、初期化セグメントファイルの受信の更なる効率化を実現することができる。その結果、スタートアップを高速化することができる。
これに対して、MPDリクエストに含まれるプッシュ指令において、送信を要求する初期化セグメントファイルのメディア種別や属性を指定することができない場合、MPDリクエストに応じて、全てのメディア種別および属性の初期化セグメントファイルが送信される。例えば、MPDリクエストに含まれるプッシュ指令において、初期化セグメントファイルのURLのみを指定することができる場合、再生クライアント12は、MPDリクエスト時にMPDファイルを取得しておらず、URLを指定することはできない。従って、全てのメディア種別および属性の初期化セグメントファイルが送信される。
その結果、受信バッファ54は、受信した初期化セグメントファイルを保持するために多くの容量を必要とする。例えば、メディア種別や属性の数が多数である場合、受信バッファ54は、再生に必要な初期化セグメントファイルのデータ量の何倍ものデータ量の初期化セグメントファイルを保持する必要がある。
よって、受信バッファ54の容量が小さく、全てのメディア種別および属性の初期化セグメントファイルを保持することができない場合、再生クライアント12は、プッシュ指令をMPDリクエストに含めることはできない。その結果、再生クライアント12は、MPDファイルの受信後、初期化セグメントファイルごとに、再生に必要な初期化セグメントファイルの送信を要求するHTTP GETリクエストを送信する必要がある。
また、再生クライアント12は、push-media-adapted指令を含むメディアリクエストを送信する。従って、再生クライアント12は、メディアリクエストを送信するだけで、メディアリクエストでURLが指定されるメディアセグメントファイルだけでなく、後続メディアセグメントファイルも受信することができる。即ち、再生クライアント12は、後続メディアセグメントファイルごとに、メディアリクエストを送信する必要がない。従って、再生クライアント12は、後続メディアセグメントファイルの送信の要求を効率的に行うことができる。また、配信サーバ11は、後続メディアセグメントファイルの送信を要求するメディアリクエストの受信を待つ必要がないため、後続メディアセグメントファイルの送信を効率的に行うことができる。
さらに、push-media-adapted指令では、後続メディアセグメントファイルの符号化ビットレートの許容範囲を指定することができる。従って、配信サーバ11は、ネットワーク13の実効帯域に応じて、送信する後続メディアセグメントファイルの符号化ビットレートを許容範囲内で変更させることができる。その結果、再生品質が向上する。
即ち、例えば、配信サーバ11と再生クライアント12の間のストリーミングの開始時、帯域推定部57は、まだネットワーク13の実効帯域を推定することができない。従って、この場合、選択部53は、メディアリクエストによりURLが指定されるメディアセグメントファイルの符号化ビットレートとして、比較的低い符号化ビットレートを設定する。よって、この符号化ビットレートを後続メディアセグメントファイルの符号化ビットレートに適用した場合、後続メディアセグメントファイルの符号化ビットレートは、ネットワーク13の実効帯域に適した符号化ビットレートではない。
従って、再生クライアント12は、push-media-adapted指令において後続メディアセグメントファイルの符号化ビットレートの許容範囲を指定する。これにより、再生クライアント12は、受信する後続メディアセグメントファイルの符号化ビットレートを、許容範囲内でネットワーク13の実効帯域に適した符号化ビットレートに変更させることができる。その結果、再生品質が向上する。
また、再生クライアント12は、ネットワーク13の実効帯域に適した符号化ビットレートの後続メディアセグメントファイルを受信するために、ネットワーク13の実効帯域に応じた指令を配信サーバ11に送信する必要がない。従って、ネットワーク13の実効帯域に適した符号化ビットレートの後続メディアセグメントを効率的に受信することができる。
これに対して、メディアリクエストに含まれるプッシュ指令において、後続メディアセグメントファイルの期間のみが指定され、符号化ビットレートの許容範囲が指定されない場合、後続メディアセグメントファイルの期間内でネットワーク13の実効帯域が変化すると、再生クライアント12は、プッシュ指令をキャンセルする必要がある。そして、再生クライアント12は、実行帯域に適した符号化ビットレートを指定するプッシュ指令を含むメディアリクエストを新たに送信し直す必要がある。従って、後続メディアセグメントファイルの期間として長い期間を指定しても、プッシュ指令のキャンセルとメディアリクエストの送信を行う確率が増加するため、メディアセグメントファイルの送信に要する時間を抑制できない場合がある。
また、push-media-adapted指令では、符号化ビットレートの許容範囲とともに、後続メディアセグメントファイルの期間を指定することができる。従って、再生クライアント12は、符号化ビットレートの許容範囲を段階的に変化させることができる。再生クライアント12は、符号化ビットレートの許容範囲を段階的に広げることにより、再生品質を緩やかに変化させることができる。
なお、push-init-segment指令では、「PUSH_PARAMS」により複数のメディア種別が指定されてもよい。この場合、コード「media」と、複数のメディア種別のMIME-typeがカンマで区切られた記述とがイコールで結ばれる。同様に、push-init-segment指令では、「PUSH_PARAMS」により、ある種類の属性の属性情報が複数指定されてもよい。
また、push-init-segment指令やpush-media-adapted指令では、パラメータの値の範囲として、その範囲の下限値または上限値のみが指定されるようにしてもよい。この場合、指定されない下限値または上限値は、指定されないことを示す0とされる。例えば、符号化ビットレートの属性の下限値として400kbpsを指定し、上限値を指定しない場合、「”bitrate”= “400000-0”」が記述され、下限値を指定せず、上限値として8Mbpsを指定する場合、「”bitrate”= “0-8000000“」が記述される。
さらに、再生クライアント12は、push-init-segment指令により送信される初期化セグメントファイル以外の初期化セグメントファイルの送信を要求するHTTP GETリクエストを送信してもよい。この場合であっても、全ての初期化セグメントファイルの送信をHTTP GETリクエストで要求する場合に比べて、HTTP GETリクエストの数を削減することができる。
また、第1実施の形態では、再生クライアント12が、メディアリクエストに必ずpush-media-adapted指令を含めたが、push-media-adapted指令以外のプッシュ指令を含めてもよい。例えば、再生クライアント12は、後続メディアセグメントファイルの期間のみを指定するプッシュ指令をメディアリクエストに含めてもよい。この場合、プッシュ指令に含まれる後続メディアセグメントファイルの期間を示す情報は、例えば、後続メディアセグメントファイルの数(Push-next)、再生時間(Push-time)、もしくは、URLのリストまたはURLのテンプレートとテンプレートを適用する範囲($number$)を指定するパラメータ(Push-template)である。また、この場合、メディアリクエストでURLが指定されたメディアセグメントファイルと同一の符号化ビットレートの後続メディアセグメントファイルが再生クライアント12に送信される。
なお、第1実施の形態では、アダプテーションセット要素が、メディア種別、言語、役割の属性を有し、リプレゼンテーション要素が、符号化ビットレートの属性を有するようにした。しかしながら、メディア種別および属性は、アダプテーションセット要素とリプレゼンテーション要素のいずれが有するようにしてもよい。
また、第1実施の形態では、属性の種類は、動画コンテンツの符号化ビットレート、言語、および役割(目的)としたが、映像の解像度やフレームレート、音声のサンプリングレートやチャンネル数などであってもよい。
例えば、push-init-segment指令で映像の解像度を指定する場合、映像の解像度をパラメータとして示すコード「resolution」と、映像の解像度の属性情報としての縦方向の画素数の範囲とがイコールで結ばれる。映像の解像度の属性情報は、属性が4k解像度である場合2160であり、フルHD解像度である場合1080であり、SD解像度である場合480である。また、MPDファイルでは、映像のリプレゼンテーション要素が、映像の解像度の属性情報をheightアトリビュートとして有する。
また、push-init-segment指令で音声のサンプリングレートを指定する場合、音声のサンプリングレートをパラメータとして示すコード「audioSamplingRate」と、音声のサンプリングレートの属性情報としてのサンプリングレートの範囲とがイコールで結ばれる。例えば、音声のサンプリングレートの属性が48kHzである場合、属性情報は48000である。また、MPDファイルでは、音声のリプレゼンテーション要素が、音声のサンプリングレートの属性情報をaudioSamplingRate アトリビュートとして有する。
さらに、範囲情報は、許容範囲内の符号化ビットレートをBandwidthとして有する後続メディアセグメントファイルが属するリプレゼンテーション要素を特定する情報(例えば、Representation idなど)や、そのリプレゼンテーション要素に属する後続メディアセグメントファイルのURLの範囲などであってもよい。
<第2実施の形態>
(WebSocketプロトコルにおけるフレームの構成例)
本開示を適用した情報処理システムの第2実施の形態の構成は、WebSocketプロトコルに準拠して配信サーバ11と再生クライアント12の間の通信が行われる点を除いて、図1の情報処理システム10の構成と同一である。従って、以下では、配信サーバ11と再生クライアント12の間の通信についてのみ説明する。
図7は、WebSocketプロトコルにおけるフレームの構成例を示す図である。
図7に示すように、WebSocketプロトコルにおけるフレームは、ペイロードデータ(Payload Data)部と、それより前のヘッダ部とにより構成される。ヘッダ部は、WebSocketプロトコルの基本機能を実現するためのものである。特定用途の機能は、ペイロード部を用いて実現される。なお、WebSocketプロトコルにおけるフレームの詳細は、非特許文献2等に記載されている。
ペイロード部により特定用途の機能を実現する場合、ペイロード部のプロトコルとして、サブプロトコルを定義し、ペイロード部のデータ構造を、サブフレーム(sub-frame)として定義する必要がある。
第2実施の形態では、WebSocketプロトコルに準拠して配信サーバ11と再生クライアント12の間の通信が行われる。従って、WebSocketプロトコルにおけるフレームにおいて、MPEG-DASHによるストリーミングを特定用途の機能として実現する必要がある。よって、MPEG-DASHによるストリーミングを実現するためのサブプロトコルであるDASHサブプロトコルとサブフレームが定義される。
(サブフレームの構造例)
図8は、第2実施の形態におけるサブフレームの構造例を示す図である。
図8のサブフレームは、STREAM_ID,CMD_CODE,F,EXT_LENGTH,EXTENSION等により構成される。STREAM_IDは、WebSocketプロトコルでやり取りされるストリームのIDを示す8ビットの値である。なお、WebSocketプロトコルでは、1つのコネクションで複数のストリーム の送受信が可能である。
CMD_CODEは、DASHサブプロトコルで定義されるコマンドの種別を示す8ビットの値である。例えば、このサブフレームがMPDリクエストを送信する際に用いられるサブフレームである場合、CMD_CODEは1であり、メディアリクエストを送信する際に用いられるサブフレームである場合、CMD_CODEは2である。
また、このサブフレームがMPDリクエストに対するレスポンスとしてMPDファイルを送信する際に用いられるサブフレームである場合、CMD_CODEは3である。このサブフレームがメディアリクエストに対するレスポンスとしてメディアセグメントファイルを送信する際に用いられるサブフレームである場合、CMD_CODEは4である。さらに、このサブフレームが、プッシュ指令をキャンセルする際に用いられるサブフレームである場合、CMD_CODEは255である。
Fは、コマンドごとに規定される3ビットのフラグである。EXT_LENGTHは、EXTENSIONのサイズを示す13ビットの値である。EXTENSIONには、第1実施の形態においてMPDリクエストやメディアリクエストのヘッダに記述されるパラメータがJSON(JavaScript(登録商標) Object Notation)エンコードされた値が格納される。JSONエンコードの詳細は、https://tools.ietf.org/html/rfc4627に記載されている。
(EXTENSIONの例)
図9は、MPDリクエストを送信する際に用いられるサブフレームのEXTENSIONの例を示す図であり、図10は、メディアリクエスト送信する際に用いられるサブフレームのEXTENSIONの例を示す図である。
図9および図10に示すように、EXTENSIONでは、パラメータを示すコードと、そのパラメータの値とがコロンで結ばれることにより、各パラメータの値が指定される。
具体的には、図9のEXTENSIONでは、コード「push-type」と「init-segment」とがコロンで結ばれている。従って、EXTENSIONに記述されるプッシュ指令のタイプとして、push-init-segment指令が指定されている。
また、コード「media」と「video/mp4」とがコロンで結ばれているので、メディア種別として、MP4形式でファイル化される映像が指定されている。コード「lang」と「ja」とがコロンで結ばれているので、言語の属性として日本語が指定されている。
さらに、コード「role」と「main」とがコロンで結ばれているので、目的の属性情報として「main」が指定されている。コード「bitrate」と「400000-8000000」とがコロンで結ばれているので、符号化ビットレートの属性情報の範囲として、400kbpsから8Mbpsまでの範囲が指定されている。
一方、図10のEXTENSIONでは、コード「push-type」と「segment-adapted」とがコロンで結ばれている。従って、EXTENSIONに記述されるプッシュ指令のタイプとして、push-segment-adapted指令が指定されている。
また、コード「duration」と「120」とがコロンで結ばれているので、後続メディアセグメントファイルの期間として、120秒が指定されている。さらに、コード「bitrate」と「400000-8000000」とがコロンで結ばれているので、後続メディアセグメントファイルの符号化ビットレートの許容範囲として、400kbpsから8Mbpsまでの範囲が指定されている。
なお、第1実施の形態と同様に、コード「duration」の代わりに、コード「number」が記述されるようにしてもよい。この場合、コード「number」と、後続メディアセグメントファイル数を示す整数値とがコロンで結ばれる。
<第3実施の形態>
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図11は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ200において、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロフォンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータ200では、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ200(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータ200では、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータ200が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
さらに、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
また、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、push-media-adapted指令において、符号化ビットレート以外の属性の範囲が指定されてもよい。
なお、本開示は、以下のような構成もとることができる。
(1)
複数の属性のコンテンツを管理する管理ファイルと、前記複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を、他の情報処理装置に要求する管理ファイル要求情報を送信する送信部
を備える情報処理装置。
(2)
前記管理ファイルは、MPD(Media Presentation Description)ファイルであり、
前記初期化ファイルは、初期化セグメントファイルであり、
前記管理ファイル要求情報は、前記所定の属性を示す属性情報を含む
ように構成された
前記(1)に記載の情報処理装置。
(3)
前記MPDファイルは、複数の種類の前記コンテンツを管理し、
前記管理ファイル要求情報は、前記初期化セグメントファイルに対応する前記コンテンツの種類を示す情報を含む
ように構成された
前記(2)に記載の情報処理装置。
(4)
前記送信部は、所定の符号化ビットレートの所定の再生時刻のコンテンツのファイルと、前記他の情報処理装置により許容範囲内で選択された符号化ビットレートの前記所定の再生時刻より後の再生時刻の前記コンテンツである後続コンテンツのファイルの送信を、前記他の情報処理装置に要求するコンテンツファイル要求情報を送信する
ように構成された
前記(1)に記載の情報処理装置。
(5)
前記管理ファイルは、MPD(Media Presentation Description)ファイルであり、
前記ファイルは、メディアセグメントファイルであり、
前記コンテンツファイル要求情報は、前記許容範囲を示す範囲情報を含む
ように構成された
前記(4)に記載の情報処理装置。
(6)
前記コンテンツファイル要求情報は、前記後続コンテンツの期間を示す情報を含む
ように構成された
前記(5)に記載の情報処理装置。
(7)
前記属性の種類は、前記コンテンツの符号化ビットレート、言語、役割、解像度、サンプリングレート、フレームレート、およびチャンネル数の少なくとも1つである
ように構成された
前記(1)乃至(6)のいずれかに記載の情報処理装置。
(8)
前記送信部は、HTTP(HyperText Transfer Protocol)/2またはWebSocketプロトコルに準拠した送信を行う
ように構成された
前記(1)乃至(7)のいずれかに記載の情報処理装置。
(9)
情報処理装置が、
複数の属性のコンテンツを管理する管理ファイルと、前記複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を、他の情報処理装置に要求する管理ファイル要求情報を送信する送信ステップ
を含む情報処理方法。
(10)
複数の属性のコンテンツを管理する管理ファイルと、前記複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を要求する管理ファイル要求情報に基づいて、前記管理ファイルと前記所定の属性のコンテンツの初期化ファイルを送信する送信部と
を備える情報処理装置。
(11)
前記管理ファイルは、MPD(Media Presentation Description)ファイルであり、
前記初期化ファイルは、初期化セグメントファイルであり、
前記管理ファイル要求情報は、前記所定の属性を示す属性情報を含む
ように構成された
前記(10)に記載の情報処理装置。
(12)
前記MPDファイルは、複数の種類の前記コンテンツを管理し、
前記管理ファイル要求情報は、前記初期化セグメントファイルに対応する前記コンテンツの種類を示す情報を含む
ように構成された
前記(11)に記載の情報処理装置。
(13)
所定の符号化ビットレートの所定の再生時刻のコンテンツのファイルと、前記情報処理装置により許容範囲内で選択された符号化ビットレートの前記所定の再生時刻より後の再生時刻の前記コンテンツである後続コンテンツのファイルの送信を要求するコンテンツファイル要求情報と、ネットワークの帯域とに基づいて、前記許容範囲内の符号化ビットレートから、前記後続コンテンツの符号化ビットレートを選択する選択部
をさらに備え、
前記送信部は、前記所定の符号化ビットレートの前記所定の再生時刻のコンテンツのファイルと、前記選択部により選択された前記符号化ビットレートの前記後続コンテンツのファイルを送信する
ように構成された
前記(10)に記載の情報処理装置。
(14)
前記管理ファイルは、MPD(Media Presentation Description)ファイルであり、
前記ファイルは、メディアセグメントファイルであり、
前記コンテンツファイル要求情報は、前記許容範囲を示す範囲情報を含む
ように構成された
前記(13)に記載の情報処理装置。
(15)
前記コンテンツファイル要求情報は、前記後続コンテンツの期間を示す情報を含む
ように構成された
前記(14)に記載の情報処理装置。
(16)
前記属性の種類は、前記コンテンツの符号化ビットレート、言語、役割、解像度、サンプリングレート、フレームレート、およびチャンネル数の少なくとも1つである
ように構成された
前記(10)乃至(15)のいずれかに記載の情報処理装置。
(17)
前記送信部は、HTTP(HyperText Transfer Protocol)/2またはWebSocketプロトコルに準拠した送信を行う
ように構成された
前記(10)乃至(16)のいずれかに記載の情報処理装置。
(18)
情報処理装置が、
複数の属性のコンテンツを管理する管理ファイルと、前記複数の属性のうちの所定の属性のコンテンツの初期化ファイルの送信を要求する管理ファイル要求情報に基づいて、前記管理ファイルと前記所定の属性のコンテンツの初期化ファイルを送信する送信ステップと
を含む情報処理方法。
11 配信サーバ, 12 再生クライアント, 31 httpサーバ, 35 選択部, 51 httpクライアント

Claims (16)

  1. 初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドを生成し、前記コマンドを含むヘッダでMPDリクエストを生成するリクエスト生成部と、
    複数の属性のコンテンツを管理するMPDファイルと、前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルとの送信を他の情報処理装置に要求するために、前記コマンドを含む前記MPDリクエストを送信する送信部と、
    を備える情報処理装置。
  2. 前記リクエスト生成部が前記コマンドを含まないMPDリクエストを生成するとき、前記送信部は、前記初期化セグメントファイルの送信なしに前記MPDファイルを送信することを前記他の情報処理装置に要求するために、前記コマンドを含まない前記MPDリクエストを送信する
    請求項1に記載の情報処理装置。
  3. 前記送信部は、所定の符号化ビットレートの所定の再生時刻のコンテンツのファイルと、前記他の情報処理装置により許容範囲内で選択された符号化ビットレートの前記所定の再生時刻より後の再生時刻の前記コンテンツである後続コンテンツのファイルとの送信を、前記他の情報処理装置に要求するコンテンツファイル要求情報を送信する
    ように構成された
    請求項2に記載の情報処理装置。
  4. 前記ファイルは、メディアセグメントファイルであり、
    前記コンテンツファイル要求情報は、前記許容範囲を示す範囲情報を含む
    ように構成された
    請求項3に記載の情報処理装置。
  5. 前記コンテンツファイル要求情報は、前記後続コンテンツの期間を示す情報を含む
    ように構成された
    請求項3に記載の情報処理装置。
  6. 前記属性の種類は、前記コンテンツの符号化ビットレート、言語、役割、解像度、サンプリングレート、フレームレート、およびチャンネル数の少なくとも1つである
    ように構成された
    請求項1に記載の情報処理装置。
  7. 前記送信部は、HTTP(HyperText Transfer Protocol)/2またはWebSocketプロトコルに準拠した送信を行う
    ように構成された
    請求項1に記載の情報処理装置。
  8. 情報処理装置が、
    初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドを生成し、前記コマンドを含むヘッダでMPDリクエストを生成するリクエスト生成ステップと、
    複数の属性のコンテンツを管理するMPDファイルと、前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルとの送信を他の情報処理装置に要求するために、前記コマンドを含む前記MPDリクエストを送信する送信ステップと
    を含む情報処理方法。
  9. 他の情報処理装置から、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドをヘッダに含むMPDリクエストを受信する通信部を備え
    前記通信部は、前記コマンドを含む前記MPDリクエストの受信に応じて、複数の属性のコンテンツを管理するMPDファイルと前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルとを送信する
    情報処理装置。
  10. 前記通信部は、前記コマンドを含まない前記MPDリクエストの受信に応じて、前記初期化セグメントファイルの送信なしに前記MPDファイルを送信する
    請求項9に記載の情報処理装置。
  11. 所定の符号化ビットレートの所定の再生時刻のコンテンツのファイルと、前記情報処理装置により許容範囲内で選択された符号化ビットレートの前記所定の再生時刻より後の再生時刻の前記コンテンツである後続コンテンツのファイルの送信を要求するコンテンツファイル要求情報と、ネットワークの帯域とに基づいて、前記許容範囲内の符号化ビットレートから、前記後続コンテンツの符号化ビットレートを選択する選択部
    をさらに備え、
    前記通信部は、前記所定の符号化ビットレートの前記所定の再生時刻のコンテンツのファイルと、前記選択部により選択された前記符号化ビットレートの前記後続コンテンツのファイルとを送信する
    ように構成された
    請求項10に記載の情報処理装置。
  12. 前記ファイルは、メディアセグメントファイルであり、
    前記コンテンツファイル要求情報は、前記許容範囲を示す範囲情報を含む
    ように構成された
    請求項11に記載の情報処理装置。
  13. 前記コンテンツファイル要求情報は、前記後続コンテンツの期間を示す情報を含む
    ように構成された
    請求項11に記載の情報処理装置。
  14. 前記属性の種類は、前記コンテンツの符号化ビットレート、言語、役割、解像度、サンプリングレート、フレームレート、およびチャンネル数の少なくとも1つである
    ように構成された
    請求項9に記載の情報処理装置。
  15. 前記通信部は、HTTP(HyperText Transfer Protocol)/2またはWebSocketプロトコルに準拠した送信を行う
    ように構成された
    請求項9に記載の情報処理装置。
  16. 情報処理装置が、
    他の情報処理装置から、初期化セグメントファイルのメディアタイプおよび属性を割り当てるコマンドをヘッダに含むMPDリクエストを受信する通信ステップを含み、
    前記通信ステップでは、前記コマンドを含む前記MPDリクエストの受信に応じて、複数の属性のコンテンツを管理するMPDファイルと前記メディアタイプおよび前記属性のコンテンツの初期化セグメントファイルとが送信される
    情報処理方法。
JP2017566584A 2016-02-12 2017-01-30 情報処理装置および情報処理方法 Active JP6981257B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016024809 2016-02-12
JP2016024809 2016-02-12
PCT/JP2017/003177 WO2017138387A1 (ja) 2016-02-12 2017-01-30 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JPWO2017138387A1 JPWO2017138387A1 (ja) 2018-12-06
JP6981257B2 true JP6981257B2 (ja) 2021-12-15

Family

ID=59563903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017566584A Active JP6981257B2 (ja) 2016-02-12 2017-01-30 情報処理装置および情報処理方法

Country Status (8)

Country Link
US (1) US20190014358A1 (ja)
EP (1) EP3416396B1 (ja)
JP (1) JP6981257B2 (ja)
KR (1) KR20180109890A (ja)
CN (1) CN108605160B (ja)
BR (1) BR112018015935A2 (ja)
RU (1) RU2728534C2 (ja)
WO (1) WO2017138387A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11659057B2 (en) * 2017-04-19 2023-05-23 Comcast Cable Communications, Llc Methods and systems for content delivery using server push
KR102307447B1 (ko) * 2017-05-02 2021-09-30 삼성전자주식회사 네트워크 환경 모니터링에 기반하는 http 적응적 스트리밍 서버, 방법, 및 클라이언트 단말
CN109756755A (zh) * 2017-11-02 2019-05-14 华为技术有限公司 一种媒体播放方法,装置和系统
CN115802046A (zh) 2018-06-28 2023-03-14 杜比实验室特许公司 用于自适应流传输对齐的帧转换
US11290757B2 (en) * 2018-09-28 2022-03-29 Comcast Cable Communications, Llc Per-segment parameters for content
US11184665B2 (en) 2018-10-03 2021-11-23 Qualcomm Incorporated Initialization set for network streaming of media data
KR20200081161A (ko) * 2018-12-27 2020-07-07 (주)아이앤아이소프트 컨텐츠 스트리밍 장치, 시스템 및 방법
US11546402B2 (en) * 2019-01-04 2023-01-03 Tencent America LLC Flexible interoperability and capability signaling using initialization hierarchy
CN111510789B (zh) * 2019-01-30 2021-09-21 上海哔哩哔哩科技有限公司 视频播放方法、系统、计算机设备及计算机可读存储介质
CN111510791B (zh) * 2019-01-30 2022-07-29 上海哔哩哔哩科技有限公司 播放音视频的方法、装置、计算机设备及可读存储介质
CN114026875A (zh) * 2019-06-25 2022-02-08 索尼集团公司 信息处理装置、信息处理方法、再现处理装置和再现处理方法
US11184420B2 (en) * 2020-01-06 2021-11-23 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP
CN113141524B (zh) 2020-01-17 2023-09-29 北京达佳互联信息技术有限公司 资源传输方法、装置、终端及存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120010089A (ko) * 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US8806050B2 (en) * 2010-08-10 2014-08-12 Qualcomm Incorporated Manifest file updates for network streaming of coded multimedia data
EP3122056B1 (en) * 2010-09-01 2020-07-29 Ideahub Inc. Method and device for providing content via http adaptive streaming using a general media presentation description and specific media presentation descriptions
KR101739272B1 (ko) * 2011-01-18 2017-05-24 삼성전자주식회사 멀티미디어 스트리밍 시스템에서 컨텐트의 저장 및 재생을 위한 장치 및 방법
US9590814B2 (en) * 2011-08-01 2017-03-07 Qualcomm Incorporated Method and apparatus for transport of dynamic adaptive streaming over HTTP (DASH) initialization segment description fragments as user service description fragments
JP2014534695A (ja) * 2011-10-13 2014-12-18 サムスン エレクトロニクス カンパニー リミテッド コンテンツディスプレイ方法、コンテンツ同期化方法、放送コンテンツディスプレイ方法及びディスプレイ装置
CN103095517B (zh) * 2011-11-04 2016-12-07 华为技术有限公司 流媒体传输质量评估和信息获取方法及相关设备和系统
US9392304B2 (en) * 2012-02-29 2016-07-12 Hulu, LLC Encoding optimization using quality level of encoded segments
WO2014007083A1 (ja) * 2012-07-02 2014-01-09 ソニー株式会社 送信装置、送信方法およびネットワーク装置
CN104429090A (zh) * 2012-07-10 2015-03-18 夏普株式会社 内容发送装置、内容再生装置、内容分发系统、内容发送装置的控制方法、内容再生装置的控制方法、数据结构、控制程序以及记录介质
US9348993B2 (en) * 2012-09-28 2016-05-24 Futurewei Technologies, Inc. Segment authentication for dynamic adaptive streaming
US9537902B2 (en) * 2013-02-13 2017-01-03 Qualcomm Incorporated Enabling devices without native broadcast capability to access and/or receive broadcast data in an efficient manner
JP6419173B2 (ja) * 2013-07-12 2018-11-07 キヤノン株式会社 プッシュメッセージ制御による適応型データストリーミング方法
JP6698553B2 (ja) * 2014-02-13 2020-05-27 コニンクリーケ・ケイピーエヌ・ナムローゼ・フェンノートシャップ 1つの要求メッセージに基づいたネットワーク・ノードへの多数のチャンクの要求
US10044831B2 (en) * 2014-03-10 2018-08-07 Samsung Electronics Co., Ltd. Method and apparatus for transmitting messages to a dash client
WO2015143674A1 (zh) * 2014-03-27 2015-10-01 华为技术有限公司 视频传输方法、装置与系统
GB2528672B (en) * 2014-07-25 2017-02-08 Canon Kk Push-based transmission of resources and correlated network quality estimation
WO2016105090A1 (ko) * 2014-12-22 2016-06-30 엘지전자 주식회사 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법

Also Published As

Publication number Publication date
US20190014358A1 (en) 2019-01-10
RU2018128314A3 (ja) 2020-02-03
EP3416396A4 (en) 2018-12-19
CN108605160B (zh) 2021-09-03
JPWO2017138387A1 (ja) 2018-12-06
RU2018128314A (ru) 2020-02-03
EP3416396A1 (en) 2018-12-19
CN108605160A (zh) 2018-09-28
KR20180109890A (ko) 2018-10-08
RU2728534C2 (ru) 2020-07-30
BR112018015935A2 (ja) 2018-12-18
WO2017138387A1 (ja) 2017-08-17
EP3416396B1 (en) 2021-11-24

Similar Documents

Publication Publication Date Title
JP6981257B2 (ja) 情報処理装置および情報処理方法
KR102110627B1 (ko) 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들
JP6014870B2 (ja) ストリーミング・メディア・コンテンツのリアルタイム・トランスマックス変換の方法およびシステム
JP6459006B2 (ja) 情報処理装置および情報処理方法
JP6329964B2 (ja) 送信装置、送信方法、受信装置、及び、受信方法
WO2015008576A1 (ja) 情報処理装置および情報処理方法
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
WO2012151865A1 (zh) 一种传输数据的方法和系统
WO2012161652A1 (en) Methods for transmitting and receiving a digital signal, transmitter and receiver
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
JP2015136059A (ja) 通信装置、通信データ生成方法、および通信データ処理方法
JP2015136057A (ja) 通信装置、通信データ生成方法、および通信データ処理方法
KR102373195B1 (ko) 수신 장치, 송신 장치, 데이터 통신 방법, 및 데이터 처리 방법
WO2019193991A1 (ja) 配信装置、配信方法、およびプログラム
JP2004159101A (ja) データ伝送方法、データ送信装置、データ受信装置、及びデータ伝送システム
JP2014131142A (ja) 受信装置、受信方法、及びプログラム、撮像装置、撮像方法、及びプログラム、送信装置、送信方法、及びプログラム
WO2016174959A1 (ja) 受信装置、送信装置、およびデータ処理方法
JP6400163B2 (ja) 受信装置、受信方法、送信装置、送信方法、及びプログラム
RU2658672C2 (ru) Устройство предоставления контента, программа, оконечное устройство и система предоставления контента
JP7292901B2 (ja) 送信装置、送信方法、及びプログラム
WO2017114393A1 (zh) Http流媒体传输方法及装置
WO2015064384A1 (ja) 送信装置、送信方法、受信装置、及び、受信方法
JP2017143475A (ja) 配信管理装置、受信装置、分散処理システム、及びプログラム
KR20150116615A (ko) Ip 카메라에서 hls 프로토콜을 지원하는 시스템 및 그 방법
JP2009044596A (ja) 音声付き動画送信サーバならびにその動作制御方法およびその制御プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210513

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: 20211019

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211101

R151 Written notification of patent or utility model registration

Ref document number: 6981257

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151