(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024109848
(43)【公開日】2024-08-14
(54)【発明の名称】クライアント、サーバ、受信方法及び送信方法
(51)【国際特許分類】
H04N 21/462 20110101AFI20240806BHJP
H04N 21/235 20110101ALI20240806BHJP
H04N 21/6377 20110101ALI20240806BHJP
【FI】
H04N21/462
H04N21/235
H04N21/6377
【審査請求】有
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024084777
(22)【出願日】2024-05-24
(62)【分割の表示】P 2023107285の分割
【原出願日】2017-01-30
(31)【優先権主張番号】62/289,469
(32)【優先日】2016-02-01
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/295,790
(32)【優先日】2016-02-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】P 2016228396
(32)【優先日】2016-11-24
(33)【優先権主張国・地域又は機関】JP
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.PYTHON
(71)【出願人】
【識別番号】514136668
【氏名又は名称】パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ
【氏名又は名称原語表記】Panasonic Intellectual Property Corporation of America
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(74)【代理人】
【識別番号】100137235
【弁理士】
【氏名又は名称】寺谷 英作
(74)【代理人】
【識別番号】100131417
【弁理士】
【氏名又は名称】道坂 伸一
(72)【発明者】
【氏名】クレナー ピーター
(72)【発明者】
【氏名】へルマン フランク
(72)【発明者】
【氏名】遠間 正真
(57)【要約】
【課題】処理量を効果的に低減できるクライアント、サーバ、受信方法および送信方法などを提供する。
【解決手段】クライアント20Aは、MPEG-DASH規格に従ってストリーミングデータを受信するクライアントであって、MPD要求をサーバへ送信する送信部202と、MPDを受信する受信部201と、を備え、MPD要求は、イニシャライゼーション・セグメントをサーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、プッシュ・ディレクティブがイニシャライゼーション・セグメントをサーバからプッシュで送信することを示す場合、プッシュ・ディレクティブは、メディア・セグメントをサーバからプッシュで送信するか否かをさらに示す。
【選択図】
図12
【特許請求の範囲】
【請求項1】
MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを受信するクライアントであって、
MPD(Media Presentation Description)要求をサーバへ送信する送信部と、
MPD(Media Presentation Description)を受信する受信部と、を備え、
前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、
前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す
クライアント。
【請求項2】
MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを送信するサーバであって、
MPD(Media Presentation Description)要求をクライアントから受信する受信部と、
MPD(Media Presentation Description)を送信する送信部と、を備え、
前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、
前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す
サーバ。
【請求項3】
MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを受信するクライアントで使用するための受信方法あって、
MPD(Media Presentation Description)要求をサーバへ送信し、
MPD(Media Presentation Description)を受信し、
前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、
前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す
受信方法。
【請求項4】
MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを送信するサーバで使用するための送信方法であって、
MPD(Media Presentation Description)要求をクライアントから受信し、
MPD(Media Presentation Description)を送信し、
前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、
前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す
送信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、MPEG-DASHフォーマットを使用して、帯域幅の変化するネットワーク上でマルチメディアコンテンツのストリーミングの受信を行うクライアント、及び、当該ストリーミングの送信を行うサーバと、クライアントの受信方法及びサーバの送信方法に関する。
【背景技術】
【0002】
非特許文献1は、HTTP(HyperText Transfer Protocol)によるアダプティブストリーミング技術の標準規格であるMPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)について開示している。DASHサーバは、画質およびビットレートが異なる複数の表現に対応するコンテンツデータを、時間で分割した単位であるセグメント、またはセグメントを分割したサブセグメントに対応するファイルとして提供する。セグメントまたはサブセグメントは、例えば、数秒単位に分割された単位であり、セグメントまたはサブセグメントに対応するファイルは、映像または音声を含むMP4ファイルである。セグメントまたはサブセグメントに対応するファイルは、例えばURLアドレスを指定してHTTPで取得することができる。DASHクライアントは、コンテンツ全体または一部の構成や開始セグメントの指定が記述されたマニフェストファイル(いわゆるMPD(Media Presentation Description))に基づいて、現在のネットワークの状態とスループットに応じて適切な品質(いわゆる表現)のセグメント、またはサブセグメントに対応するファイルを要求することができる。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Information technology - Dynamic adaptive streaming over HTTP (DASH) - Part 1: Media presentation description and segment formats, INTERNATIONAL STANDARD, ISO/IEC 23009-1:2014(E)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、非特許文献1に開示されている技術では、クライアントおよびサーバにおいて行われる処理の処理量を低減できていなかった。
【課題を解決するための手段】
【0005】
本開示の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを受信するクライアントであって、MPD(Media Presentation Description)要求をサーバへ送信する送信部と、MPD(Media Presentation Description)を受信する受信部と、を備え、前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す。
【0006】
本開示の一態様に係るサーバは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に従ってストリーミングデータを送信するサーバであって、MPD(Media Presentation Description)要求をクライアントから受信する受信部と、MPD(Media Presentation Description)を送信する送信部と、を備え、前記MPD要求は、イニシャライゼーション・セグメントを前記サーバからプッシュで送信するか否かを指定するプッシュ・ディレクティブを含み、前記プッシュ・ディレクティブが前記イニシャライゼーション・セグメントを前記サーバからプッシュで送信することを示す場合、前記プッシュ・ディレクティブは、メディア・セグメントを前記サーバからプッシュで送信するか否かをさらに示す。
【0007】
本開示の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部とを備えたクライアントであって、前記送信部は、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記受信部は、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記サーバから受信し、前記送信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記受信部は、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2のセグメントとを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示し、前記第2のプッシュ・ディレクティブは、前記セグメント要求が指定するメディア・セグメントが属するリプリゼンテーションに含まれるメディア・セグメントをプッシュすることを示す。
【0008】
本開示の一態様に係る受信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したクライアントが実施する受信方法であって、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記サーバから受信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2のセグメントとを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示し、前記第2のプッシュ・ディレクティブは、前記セグメント要求が指定するメディア・セグメントが属するリプリゼンテーションに含まれるメディア・セグメントをプッシュすることを示す。
【0009】
本開示の一態様に係るサーバは、MPEG-DASH(Moving Picture
Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部を備えたサーバであって、前記受信部は、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をクライアントから受信し、前記送信部は、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記クライアントに送信し、前記受信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記送信部は、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2セグメントとを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示し、前記第2のプッシュ・ディレクティブは、前記セグメント要求が指定するメディア・セグメントが属するリプリゼンテーションに含まれるメディア・セグメントをプッシュすることを示す。
【0010】
本開示の一態様に係る送信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したサーバが実施する送信方法であって、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をクライアントから受信し、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記クライアントに送信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2セグメントとを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示し、前記第2のプッシュ・ディレクティブは、前記セグメント要求が指定するメディア・セグメントが属するリプリゼンテーションに含まれるメディア・セグメントをプッシュすることを示す。
【0011】
本開示の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部とを備えたクライアントであって、前記送信部は、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記受信部は、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記サーバから受信し、前記送信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記受信部は、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2のセグメントとを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示す。
【0012】
本開示の一態様に係る受信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したクライアントが実施する受信方法であって、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記サーバから受信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2のセグメントとを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示す。
【0013】
本開示の一態様に係るサーバは、MPEG-DASH(Moving Picture
Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部を備えたサーバであって、前記受信部は、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をクライアントから受信し、前記送信部は、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記クライアントに送信し、前記受信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記送信部は、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2セグメントとを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示す。
【0014】
本開示の一態様に係る送信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したサーバが実施する送信方法であって、
第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をクライアントから受信し、前記MPDの要求で指定されたMPDと、イニシャライゼーション・セグメントとを、前記クライアントに送信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記セグメント要求で指定された第1のセグメントと、前記第2のプッシュ・ディレクティブに応じた、前記第1のセグメントより後の第2セグメントとを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記第1のプッシュ・ディレクティブは、前記イニシャライゼーション・セグメントに加えてメディア・セグメントをプッシュするか否かを示す。
【0015】
本開示の他の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部とを備えたクライアントであって、前記送信部は、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記受信部は、前記MPDの要求で指定されたMPDを前記サーバから受信し、前記第1のプッシュ・ディレクティブに応じてイニシャライゼーション・セグメントを、前記サーバから受信し、前記送信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記受信部は、前記セグメント要求で指定された第1のセグメントを前記サーバから受信し、前記第2のプッシュ・ディレクティブに応じて前記第1のセグメントより後の第2のセグメントを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記MPDの要求に付加するプッシュ・ディレクティブで選択可能なプッシュタイプは、前記セグメント要求に付加するプッシュ・ディレクティブでは選択できない。
【0016】
本開示の他の一態様に係る受信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したクライアントで実施される受信方法であって、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をサーバへ送信し、前記MPDの要求で指定されたMPDを前記サーバから受信し、前記第1のプッシュ・ディレクティブに応じてイニシャライゼーション・セグメントを、前記サーバから受信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記サーバへ送信し、前記セグメント要求で指定された第1のセグメントを前記サーバから受信し、前記第2のプッシュ・ディレクティブに応じて前記第1のセグメントより後の第2のセグメントを前記サーバから受信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記MPDの要求に付加するプッシュ・ディレクティブで選択可能なプッシュタイプは、前記セグメント要求に付加するプッシュ・ディレクティブでは選択できない。
【0017】
本開示の他の一態様に係るサーバは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠し、送信部と受信部とを備えたサーバであって、前記受信部は、第1のプッシュ・ディレクティブを含むMPD(Media
Presentation Description)の要求をクライアントから受信し、前記送信部は、前記MPDの要求で指定されたMPDを前記クライアントに送信し、前記第1のプッシュ・ディレクティブに応じてイニシャライゼーション・セグメントを、前記クライアントに送信し、前記受信部は、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記送信部は、前記セグメント要求で指定された第1のセグメントを前記クライアントに送信し、前記第2のプッシュ・ディレクティブに応じて前記第1のセグメントより後の第2のセグメントを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記MPDの要求に付加するプッシュ・ディレクティブで選択可能なプッシュタイプは、前記セグメント要求に付加するプッシュ・ディレクティブでは選択できない。
【0018】
本開示の他の一態様に係る送信方法は、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格に準拠したサーバで実施される送信方法であって、第1のプッシュ・ディレクティブを含むMPD(Media Presentation Description)の要求をクライアントから受信し、前記MPDの要求で指定されたMPDを前記クライアントに送信し、前記第1のプッシュ・ディレクティブに応じてイニシャライゼーション・セグメントを、前記クライアントに送信し、第2のプッシュ・ディレクティブを含むセグメント要求を前記クライアントから受信し、前記セグメント要求で指定された第1のセグメントを前記クライアントに送信し、前記第2のプッシュ・ディレクティブに応じて前記第1のセグメントより後の第2のセグメントを前記クライアントに送信し、前記第1のプッシュ・ディレクティブと前記第2のプッシュ・ディレクティブには、それぞれ、前記サーバから前記クライアントへ情報をプッシュするストラテジーを定義したプッシュタイプが記述され、かつ、前記MPDの要求に付加するプッシュ・ディレクティブで選択可能なプッシュタイプは、前記セグメント要求に付加するプッシュ・ディレクティブでは選択できない。
【0019】
本開示の他の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格によるストリーミングデータを受信するクライアントであって、MPD(Media Presentation Description)の要求またはセグメントの要求をサーバに送信する送信部と、前記MPDの要求で指定されたMPD、および、前記セグメントの要求で指定されたセグメントを受信する受信部と、を備え、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記受信部は、プッシュで送信されたイニシャライゼーション・セグメントを受信する。
【0020】
本開示の他の一態様に係るサーバは、MPEG-DASH規格によるストリーミングデータを送信するサーバであって、MPDの要求またはセグメントの要求をクライアントから受信する受信部と、前記受信部が受信した前記MPDの要求で指定されたMPDと、前記受信部が受信した前記セグメントの要求で指定されたセグメントとを、前記クライアントにプッシュで送信する送信部と、を備え、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記送信部は、前記イニシャライゼーション・セグメントをプッシュで送信する。
【0021】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0022】
上記態様によれば、クライアントおよびサーバにおいて行われる処理の処理量を低減できる。
【図面の簡単な説明】
【0023】
【
図1】
図1は、実施の形態2に係る通信システムについて説明するための図である。
【
図2】
図2は、TCPヘッダの構成を示す図である。
【
図3】
図3は、Wireshark(登録商標)のセッションからの抜粋を示す図である。
【
図4】
図4は、100kByte/sのTCP帯域幅で伝送した場合のスループットの推測結果を示すグラフである。
【
図5】
図5は、500KByte/sのTCP帯域幅で伝送した場合のスループットの推測結果を示すグラフである。
【
図6】
図6は、帯域幅を制限せずに伝送した場合のスループットの推測結果を示すグラフである。
【
図7】
図7は、帯域幅を制限せずに伝送した場合のスループットの推測結果を示すグラフである。
【
図8】
図8は、帯域幅を制限せずに伝送した場合のスループットの推測結果を示すグラフである。
【
図9】
図9は、帯域幅を制限せずに伝送した場合のスループットの推測結果を示すグラフである。
【
図10】
図10は、実施の形態2における通信システムの詳細な構成の他の一例を示す図である。
【
図11】
図11は、変形例における通信システムの動作を示すシーケンス図である。
【
図12】
図12は、通信システムの具体的構成の他の一例を示す図である。
【
図13】
図13は、サーバによる送信方法およびクライアントによる受信方法を含む、通信システムの動作を説明するためのシーケンス図である。
【発明を実施するための形態】
【0024】
本開示の一態様に係るクライアントは、MPEG-DASH(Moving Picture Experts Group - Dynamic Adaptive Streaming over HTTP)規格によるストリーミングデータを受信するクライアントであって、MPD(Media Presentation Description)の要求またはセグメントの要求をサーバに送信する送信部と、前記MPDの要求で指定されたMPD、および、前記セグメントの要求で指定されたセグメントを受信する受信部と、を備え、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記受信部は、プッシュで送信されたイニシャライゼーション・セグメントを受信する。
【0025】
本開示の一態様に係るサーバは、MPEG-DASH規格によるストリーミングデータを送信するサーバであって、MPDの要求またはセグメントの要求をクライアントから受信する受信部と、前記受信部が受信した前記MPDの要求で指定されたMPDと、前記受信部が受信した前記セグメントの要求で指定されたセグメントとを、前記クライアントにプッシュで送信する送信部と、を備え、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記送信部は、前記イニシャライゼーション・セグメントをプッシュで送信する。
【0026】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
【0027】
以下、本発明の一態様に係るクライアント、サーバ、受信方法および送信方法について、図面を参照しながら具体的に説明する。
【0028】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0029】
(実施の形態1)
[1-1.背景技術]
MPEG-DASHは、ISO-BMFFフォーマットされたメディアセグメントのためのURLアドレス指定形式を指定し、マニフェストファイルは、MPD(Media Presentation Description)と呼ばれる。DASHは、元々変数スループットのネットワーク(例えば、管理されていないインターネット接続(OTT))を介してメディアのトランスポートに対処するために考案された。MPEG-DASHのシステムは、クライアント中心の技術思想であり、既に利用可能な技術を活用することだった。よって、既存のHTTP-WEBサーバとDASH対応クライアントとは、ダイナミックストリーミングセッションを実現することができる。
【0030】
最初のコンセプトは、MPEGによって範囲が拡大され、新しいコンセプトは、SAND(Server-And-Network-Assisted-DASH)、CAPCO(Content-Aggregation-and-Playback Control)およびFDH(Full-Duplex-HTTP)などに導入された。後者のFDHは、最近批准されたHTTP/2標準を活用しており、サーバがクライアント自身によって要求されていないクライアントにプッシュすることができる。定義された関連プッシュ・ディレクティブの利点は、主にオーバヘッドを削減することにある。全てのプッシュセグメントに対して、クライアントからの対応するHTTP要求は、省略することができ、これによって帯域幅を節約することができる。
【0031】
DASHのFDHパートは、現在、ISO/IEC23009パート6で指定され、これまでにサーバからクライアントにコンテンツをプッシュするための4つのストラテジーが含まれている。これらのストラテジーは、プッシュ・ディレクティブ(push directive)と呼ばれ、プッシュ・タイプ(push type)と付加されるプッシュ・パラメータ(push parameter)とにより構成される。プッシュ・タイプは、例えば、プッシュ・ネクスト(push next)、プッシュ・ナン(push none)、プッシュ・テンプレート(push template)、およびプッシュ・タイム(push time)を含む。
【0032】
プッシュ・ネクストとプッシュパラメータKとは、次のKセグメントが初期インデックスとして要求されたセグメントを使用してプッシュするために考慮されることを示している。
【0033】
プッシュ・ナンは、プッシュが発生していないことを示している。この場合、パラメータは使用されていない。
【0034】
プッシュ・テンプレートは、URIテンプレートによって説明されるいくつかのセグメントがプッシュのために考慮されていることを示している。プッシュパラメータはURIテンプレートと言われる。
【0035】
プッシュ・タイムは、要求されたセグメントの開始(セグメントが、時間Tを超える指定されたセグメント時間までのプッシュのために考慮されている。時間Tは、プッシュパラメータとしてシグナリングされる。
【0036】
プッシュ・ネクストおよびプッシュ・タイムは、それらのプッシュパラメータを0とすることで、サーバが無限にプッシュすることを選択することができることを示している。これは、既に本発明の主旨に含まれるが、サーバに、表現の選択を超えた制御をさせるものではなく、ビットレートの変動へ作用させるものでもない。
【0037】
[1-2.典型的なDASH-FDHセッション]
クライアントは、プッシュ・ディレクティブで、最初にMPDを要求し、次にメディアセグメントを要求する。要求されたMPDを受け取った後、クライアントは、それぞれDASHセグメントURLとプッシュ・ディレクティブとを用いて、サーバからのメディアセグメントの要求を開始する。そして、サーバは、要求されたメディアセグメントで応答する。メディアセグメントは、プッシュ・ストラテジー(push strategy)によって示されるように、プッシュサイクルによって続けられる。クライアントは、最小量のデータを受信した後に、メディアの再生を開始する。上記のプロセスは、メディアストリーミングセッションが終了するまで繰り返される。
【0038】
なお、サーバは、次のメディアセグメントのためのクライアントを準備するために、MPDを送信するだけでなく、同時に、事前にイニシャライゼーション・セグメント(Initialization Segment)をプッシュで送信してもよい。イニシャライゼーション・セグメントは、セグメントのヘッダ情報を含む情報である。
【0039】
プッシュ・ディレクティブの利点は、オーバヘッドの削減にある。上記プッシュ・ディレクティブの全ては、まだ要求されたセグメント数のいずれかが提供されているか(プッシュ・ネクスト)、セグメント時間が超える(プッシュ・タイム)場合には、クライアントによる新しいセグメントの要求を必要とする。以下で説明するのは、本開示一局面である新しいプッシュ・ディレクティブであり、それは、サーバが自動的にセグメントを総メディア期間にわたって選択しプッシュすることを可能にする。これによりセグメントの要求に起因するオーバヘッドは最小限に低減される。また、クライアントへの接続の全部または一部のためのユニキャスト及び/又はマルチキャストモードのアプリケーションにつ
いて、サーバ側に決定させることを可能にする。サーバが自動的に決定するのは、セグメントのビットレートや解像度など、サーバと受信端末との間のネットワーク帯域と関連するパラメータのみであってもよい。
【0040】
[1-3.サーバにおけるクライアント側のスループットの推測]
本開示の一部は、TCP/IP接続の間においてクライアントからサーバに送信された確認応答パケットに含まれる確認応答番号に基づいてクライアントのエクスペリエンスのスループットをサーバにおいて推定する方法である。これらの確認応答パケットは、TCP層の不可欠な部分であるため、この方法を使用するには、追加のオーバヘッドは、生成または必要とされない。このスループット推定方法は、自動プッシュ・ディレクティブと共に、現在のスループットに基づいて表示を切り替えるというDASHの技術思想を維持しつつ、総オーバヘッドを最小限に減少させる。
【0041】
DASHは、ユビキタスHTTPプロトコルに基づく。そして、HTTPは、基礎となるTCP/IP層に依存してリクエスト、レスポンスおよびデータを転送する。TCP/IP層は、データ・ストリームをパケットに分割し、その信頼性の高い転送を保証する。HTTP層は、このプロセスとは完全に無関係である。パケット化処理および再構築化処理は、TCPヘッダに含まれる2つのフィールド(シーケンスナンバー、確認応答番号)によって有効になる。
【0042】
シーケンスナンバーおよび確認応答番号は、TCP接続(3ウェイハンドシェイク)の初期段階の間に両方のエンドポイントで生成される。両方の番号は、パケット化およびパケット再構築化処理に使用される。それらは、当初2つのランダムの32ビットの整数であり、サーバとクライアントとの間で交換される。
【0043】
シーケンスナンバーは、現在送信されたバイト数だけサーバによって増加される。これにより、パケット感の相対的なシーケンスナンバーは、総データバイトストリームにおける現在のパケットの開始位置へのポインタとして機能する。
【0044】
さらに重要なことは、確認応答番号は、正常に受信したバイト数をサーバに通知するために、クライアントからサーバに送信される。したがって、確認応答パケットの到着時間を計測する外部タイマを持つサーバは、クライアントによる現在のエクスペリエンスのスループットを容易に推測することができる。
【0045】
[1-4.効果など]
既に述べたように、本開示に係るシステムは、メトリックメッセージおよびセグメント要求が必要とされないため、オーバヘッドを低減することができる。また、本開示に係るシステムは、ユニキャストモードおよびマルチキャストモードの切り替えを集中管理することができる。また、本開示に係るシステムは、そのリソースを中央において管理することができる。つまり、スループットを監視しながら、サーバは、スループットのボトルネックを予測することができ、スムーズに伝送ビットレートを減らすことができ、これにより、表現の意図しないハイダイナミック変化を回避できる。HTTP/2対応のクライアントは、トラフィック診断を追跡する必要がない。トラフィック診断は、省電力化とコスト削減を同時に実現できる。
【0046】
さらに、典型的には、サーバは、複数のクライアントにデータを提供する。自動プッシュ・ディレクティブとスループット推定とのメカニズムを利用すれば、サーバは、複数のクライアントが同じコンテンツを同時に要求した場合(例えば、ライブTV伝送に関連)、ユニキャストモードからもっと効果的なマルチキャストモードへの切り替えを選択できる。例えばチャネル条件に応じて、ユニキャストモードまたはマルチキャストモードを、全部または一部の上記のクライアントに割り当てることができる。
【0047】
特に、イベント会場など特定のエリア内での通信の場合には、入場者数、エリア内の通信端末固有の情報など他の情報に基づいて、選ばれる可能性が高いレートやセグメント自体を予め推定できる可能性もある。このような場合には、サーバにおける判断と選択処理とが簡易化され、遅延量が少なく理想的な配信が可能となる。
【0048】
[1-5.本開示の概略]
・新しいDASHの自動プッシュ・ディレクティブ
・DASHのプッシュパラメータ/機能指標:クライアントは、サーバがメディアセグメントを無期限に提供する前に、クライアントの能力を知らせる必要がある。
【0049】
・TCPの確認応答番号に基づくスループット推定方法
・既存のDASHプッシュ・ディレクティブ(ネクスト、タイム、テンプレート)と、クレームされた新しい自動DASHプッシュ・ディレクティブとの組合せ
・例:サーバは、自動的に次のKセグメントをプッシュし、その後、自動的に次のLセグメントをプッシュするための新しいプッシュリクエストを受信する。
【0050】
・同時に同じコンテンツをリクエストしている全部または一部のクライアントのためのユニキャストモードまたはマルチキャストモードの自動および動的選択(上記のスループット測定値に基づく)
[1-5-1.詳細1]
新しいDASHプッシュ・ディレクティブは、サーバによって監視されるように、サーバがデータを選択し、クライアントにプッシュすることを可能にする。以下では、このプッシュ・ディレクティブを、自動プッシュ・ディレクティブと言う。
【0051】
[1-5-2.詳細2]
DASHは、プッシュ・ディレクティブに伴ってパラメータをプッシュする。また、クライアントの能力は、サーバに通知される。クライアントは、例えば、利用可能なメディアデコーダ、再生可能な画像解像度、およびフレームレートについて処理できる装置である。実施の形態では、プッシュパラメータは、表1-1および表1-2に示すように、受信能力テーブル(RCT:Receiver Capability Table)から取り出したフィールドを持つ複合データタイプによって表現されてもよい。本実施の形態は、限定的に理解されるべきではない。例えば、サーバへのクライアントの能力を通信する同じ目的を果たす受信能力テーブルの任意の形式にまで及ぶことに限定されるべきではない。
【0052】
【0053】
【0054】
“modeIndicator”は、実際のパラメータを選択する際に、サーバをガイドする。適したモードは、例えば、最高品質、最低品質、および表現の切り替えにおける低ダイナミックである。これらは、表2に示される。他のモードも可能であり、本発明は、示されるこれらのモードに限定されるものとして理解されるべきではない。
【0055】
【0056】
[1-5-3.詳細3]
他のDASHのプッシュ・ディレクティブの組合せは、自動またはプッシュ自動速度のプッシュ・ディレクティブを有する。本開示の一実施形態では、自動プッシュ・ディレクティブと組み合わせるための適切なプッシュ・ディレクティブは、プッシュ・ネクスト、プッシュ・タイムおよびプッシュ・テンプレートであるとしてもよい。なお、これらの組合せに限定されるべきではない。
【0057】
例えば、プッシュ・ネクストを用いて次のN個のセグメントを受信するように指定し、かつ、プッシュ・オートマティック・レート(push-automatic-rate)を指定することで、N個のセグメントのビットレートはサーバが自動的に選択する。あるいは、プッシュ・オートマティック・レートは、別途規定するプッシュ・ディレクティブであるプッシュ・チャネル・オートマティック・レート(push-cancel-automatic-rate)によって無効化されるまで有効としてもよい。このとき、プッシュ・チャネル・オートマティック・レートが発行されなければ、上記N個のセグメントの送信後に送られるセグメントに対してもプッシュ・オートマティック・レートが有効となる。
【0058】
プッシュ・フル・オートマティック(push-full-automatic)が指定された後であっても、セグメントの送信中にサーバがプッシュ・ナンを受信した場合には、サーバは直ちに、あるいは、送信中のセグメントの最終データ送信後にセグメントの送信を停止する。
【0059】
[1-5-4.詳細4]
推定方法および推定装置は、外部タイマで確認応答パケットの到着時間を計測することで、クライアントからサーバにTCPヘッダにおいて送信された確認応答番号に基づいて、クライアントのスループットの推定を行う。
【0060】
現在の確認応答番号と最初の確認応答番号との間の差としての相対的な確認応答番号が示され、同様に、現在の確認応答パケットの到着時間と最初の確認応答パケットの到着時間との間の差としての相対的な時間が示される。スループット推定のための最初の方法は、相対的な確認応答番号と相対的な時間との商を算出することである。
【0061】
最後と最後から2番目の確認応答パケットとの間の差としての確認応答番号の差を示す。同様に、最後と最後から2番目の確認応答パケットとの間の到着時間の差としての時間差を示す。スループット推定のための第二の方法は、適切なデジタルフィルタによる確認応答番号の差と時間差との連続的な商の平均を算出することである。
【0062】
[1-5-5.詳細5]
(セグメント毎の極端なケースにおいて)自動的および動的な選択が行われる。自動的および動的な選択では、上述のスループット計測方法(それぞれの単一のクライアントへの接続の品質を表す)に基づき、同時に同じコンテンツをリクエストしている全部または一部のクライアントのためのユニキャストモードまたはマルチキャストモードの選択を行う。
【0063】
(実施の形態2)
[2-1.背景技術]
DASHの哲学は、クライアントがスループットを計測し、それらの計測値に基づいてセグメントを要求することに基づいている。最近では、HTTP/2は、サーバが求められていないクライアントにデータを送信することが可能な新しいプッシュ機能を導入した。DASH仕様のパート6では、MPEGは、DASHのために、この新しいHTTP/2機能を活用したいと考えている。パート6は、FDHと呼ばれている。4つのプッシュ・ディレクティブは、すでに(プッシュ・ネクスト、プッシュ・ナン、プッシュ・テンプレート、プッシュ・タイム)が存在するが、それらは依然として大部分はクライアントによって駆動される。
【0064】
実施の形態1で説明したとおり、クライアントへのスループットは、サーバ側で測定することができる。つまり、サーバでは、新しい自動プッシュ・ディレクティブを用いることでクライアントを管理することができる。
【0065】
セグメントの選択は、一部または全てにおいて、プッシュ・ディレクティブに基づいてサーバによって制御される。つまり、セグメントを送る数または時間とそのビットレートなどは、サーバによって決定される。
【0066】
[2-2.計測のセットアップ]
図1は、実施の形態2に係る通信システムについて説明するための図である。
図1の(a)は、通信システムの構成の一例を示すブロック図であり、
図1の(b)は、通信システムにおける通信状況について説明するための図である。
【0067】
図1の(a)に示すように、通信システム1は、サーバ10と、サーバ10と通信ネットワーク30を介して通信接続されるクライアント20とを備える。
【0068】
サーバ10は、HTTP/2サーバである。サーバ10は、カスタムトラフィックシェーピングのためにダミーネットを実行する。サーバ10は、パケットの取得状況やプロトコルを解析するためのソフトウェア(例えば、Wireshark(登録商標))を実行することで、pcapファイル(scapyパッケージを持つPythonで更なる処理)への全てのパケットをキャプチャする。ここで、pcap(packet capture)とは、コンピュータネットワーク管理の分野におけるパケットスニファ(パケットアナライザ)のためのAPI(Application Programming Interface)である。Unix(登録商標)系のシステムではpcapはlibpcapとして実装されている。
【0069】
サーバ10は、1MBのファイルをPRBS(Pseudo-Random Bit Sequence:擬似ランダム・ビット・シーケンス)と共に送信する。ダミーネットは、トラフィックシェーピングのため、特に送信帯域幅を制御するために利用される。Wireshark(登録商標)は、TCP/IPトラフィックをキャプチャし保存する。Pythonは、Wireshark(登録商標)のキャプチャに基づいて、データ集約と評価のために使用される。
【0070】
サーバ10は、プロセッサおよび所定のプログラムが格納されたメモリにより実現されてもよいし、専用回路により実現されてもよい。サーバ10は、コンピュータを含む。
【0071】
クライアント20は、TV、プレーヤ、レコーダ、スマートフォン、タブレット端末、PC等によって実現されてもよい。
【0072】
図1の(b)に示すように、サーバ10からファイルが送信されたタイミング(タイムスタンプ)と、当該ファイルに対するACKがクライアント20から送信されたタイミングとを取得することができる。
【0073】
[2-3.ダミーネット]
次に、サーバ10が実行するダミーネットについて説明する。
【0074】
ダミーネットは、ネットワークエミュレーションツールである。ダミーネットは、キュー、帯域幅制限、遅延、パケットロスをシミュレートし、様々なスケジューリングアルゴリズムを実装している。ダミーネットは、任意のオペレーティングシステム内で実行され、ネットワークスタックを通じて途中で選択されたトラフィックを傍受することにより動作する。それは、キューのセット、スケジューラ、およびリンク、全ての設定可能な機能(帯域幅、遅延、損失率、キューサイズ、スケジューリングポリシー・・・)を実装するパイプにパケットを渡す。トラフィックの選択は、ダミーネットのためのメインユーザインタフェースであるipfwファイアウォールを使用して行われる。「Hello world」、全ての発信TCPトラフィックにパイプを作成し、500kByte/sに帯域幅を設定する。例えば、パケットフィルタ型のファイアウォールであるipfw(ipfirewall)は、proto tcpの外にパイプ1つを追加する。また、例えば、ipfwのパイプ1つは、帯域幅を500kByte/sに設定する。
【0075】
[2-4.TCPヘッダ]
次に、TCPヘッダについて説明する。
【0076】
【0077】
図2に示すように、TCPヘッダは、シーケンスナンバー(Sequence Number)と応答確認番号(Acknowledgement Number)とを含む。
【0078】
シーケンスナンバーは、全体的な送信データのバイトストリームにおける、現在のペイロードの位置へのポインタである。また、シーケンスナンバーは、受信したパケットが送信されたのと同じ順に当該パケットをソートするために利用される。
【0079】
応答確認番号は、特定のシーケンス番号を揺するパケットが正しく受信されたことを示す。また、応答確認番号は、次に予想されるシーケンスナンバーを含む。
【0080】
(クライアントからサーバに送信される)応答確認番号から、サーバ10は、正常に受信したバイト数を導出することができる。ACKパケットのタイミングをさらに用いれば、現在のスループットを推定することができる。
【0081】
3ウェイハンドシェイクの間、両方のエンドポイント(つまり、サーバ10およびクライアント20)は、それぞれに対応するシーケンスナンバーについてランダムな32ビットの整数を生成し、それらを交換する。Wireshark(登録商標)のセッションからの抜粋(
図3)に示すように、四角で囲んだ部分は、シーケンス番号および応答確認番号を示す。送信のエンドポイントは、現在送信されたバイト数によってそのシーケンスナンバーを増加させる。応答確認番号は、正しく受信されたバイト数を示すためにクライアントによって使用される。
【0082】
図4~
図9は、実際に伝送されたバイト数と、上記の方法で推測したスループットの結果とを示すグラフである。
図4は、100kByte/sのTCP帯域幅で伝送した場合のスループットの推測結果を示すグラフである。
図5は、500KByte/sのTCP帯域幅で伝送した場合のスループットの推測結果を示すグラフである。
図6~
図9は、帯域幅を制限せずに伝送した場合のスループットの推測結果を示すグラフである。
【0083】
図4~
図9に示すように、推測結果は、実際に伝送されたバイト数と概ね一致するため、推測結果を利用することができる。
【0084】
上述したように、上記サーバ側スループット測定は、主に実行可能であることを示している。
【0085】
これにより、サーバ10は、そのリソースを主に管理することができる。サーバ10は、クライアント20側の表現のバラツキを、より回避できる。クライアント20は、賢くなくてもよく、トラフィック診断を追跡する必要がない。メトリック/診断メッセージを保存することでオーバヘッドを低減できる。
【0086】
例えば、表3に示すように、プッシュ・オートマティック・レートおよびプッシュ・フル・オートマティックを追加したプッシュ・ディレクティブを採用してもよい。
【0087】
【0088】
図10は、実施の形態2における通信システムの詳細な構成の他の一例を示す図である。
【0089】
通信システム1は、サーバ10と、クライアント20とを備える。サーバ10と、クライアント20とは、通信ネットワーク30を介して互いに通信接続されている。
【0090】
サーバ10およびクライアント20は、プロセッサ、ストレージおよび送受信機を含む通信機を有する。
【0091】
サーバ10およびクライアント20のそれぞれが備えるプロセッサは、シーケンス図(
図11参照)で示す処理を実行する。プロセッサは、サーバ10およびクライアント20または他の装置との連携における他のユニットを使用する。典型的には、フローに示す処理を実行するためのプログラムは、それぞれ、サーバ10およびクライアント20が備えるストレージに記憶されている。
【0092】
サーバ10は、選択部11および送信部12を備える。
【0093】
サーバ10およびクライアント20についての詳細な説明は、それぞれ通信システム1における動作の説明において行う。
【0094】
図11は、通信システムの動作の一例を示すシーケンス図である。
【0095】
まず、クライアント20は、MPDの要求を示すMPD要求(MPD request)をサーバ10に送信する(S11)。
【0096】
次に、サーバ10は、クライアント20から送信されたMPD要求を受信し、サーバ10の送信部12は、受信したMPD要求に対応するMPD(対応MPD)をクライアント20に送信する(S12)。なお、実施の形態1で説明したとおり、S12において、サーバ10は、受信したMPD要求に対応するMPDに加えて、一部またはすべてのイニシャライゼーション・セグメントをクライアント20にプッシュで送信してもよい。以下、MPD要求に応じて、MPD要求で指定されたMPDに加えて、イニシャライゼーション・セグメントや更新された新しいMPD等の他のファイルをプッシュで送信することをMPDプッシュ(MPD push)とも言う。
【0097】
なお、サーバ10がイニシャライゼーション・セグメントをプッシュで送信しない場合のクライアント20の動作は、プッシュ送信に対応しないサーバと通信を行う場合と同様である。すなわち、クライアント20は、受信したMPDに記載されたイニシャライゼーション・セグメントのうちの必要なイニシャライゼーション・セグメントを指定したセグメント要求を送信する。サーバ10は、受信したセグメント要求で指定されたイニシャライゼーション・セグメントをクライアント20に送信する。
【0098】
クライアント20は、対応MPDを受信し、1以上のプッシュ・ディレクティブと共に、セグメント#nの要求を示すセグメント要求(Segment request)をサーバ10に送信し、Ackを計測する(S13)。
【0099】
サーバ10は、プッシュ・ディレクティブを指定したセグメント#nのセグメント要求受信し、サーバ10の選択部11は、受信したセグメントのプッシュ・ディレクティブに基づいて固定レートまたは適応レートを決定し、受信したセグメント#nのセグメント要求に基づいて送信するセグメントを選択する(S14)。
【0100】
サーバ10は、セグメント要求で指定されたセグメントnを送信し、選択部11が選択した、セグメントn+1以降のセグメントをプッシュで順次送信する(S15、S16)。以下、セグメント要求に応じて、セグメント要求で指定されたセグメント以外のセグメントをプッシュで送信することをセグメント・プッシュ(Segment push)とも言う。
【0101】
なお、セグメントnの送信は、固定レートまたは適応レートを決定する前に行ってもよい。また、選択部11は、セグメントn以降のセグメントの選択を上述したAckを用いた計測で得られたスループットに基づいて行う。なお、セグメント#nのセグメント要求で指定されたプッシュ・ディレクティブが、プッシュ・オートマティック・レートやプッシュ・フル・オートマティック以外のプッシュ送信を要求するプッシュ・ディレクティブの場合は、選択部11は、スループットの計測を行うことなく、セグメント#nのセグメント要求で指定されたプッシュ・ディレクティブに従ってセグメントn+1以降のセグメントを選択する。
【0102】
なお、
図10では、サーバ10が備える構成として、適応レートでセグメントを送信するために必要な、選択部11及び送信部12のみを記載している。しかしながら、サーバ10が、例えば非特許文献1に記載のDASHサーバとしての動作に必要なその他の構成を備えていることは言うまでもない。例えば、サーバ10は、クライアント20が送信したMPD要求やセグメント要求などのメッセージを受信する受信部や、受信したメッセージに含まれるDASHコマンドの解釈や、MPD要求やセグメント要求などのメッセージに対する応答としてクライアント20に送信するメッセージの生成等を行う処理部等を備える。
【0103】
図10では、MPD配送機能がサーバ10の外部に配置された例を示しているが、これは、MPDをサーバ10とは異なる通信装置からクライアント20に送信されてもよいことを示している。ただし、以下の
図11の説明のように、クライアント20から送信されたMPD要求に応じてサーバ10がクライアント20にMPDを送信する場合、サーバ10がMPD送信機能を備える。
【0104】
図10では、スループット計測モジュールがサーバ10の外部に配置された例を示しているが、サーバ10がスループット計測モジュールを備えていてもよい。
【0105】
なお、サーバ10が、上述したプッシュ・オートマティック・レートやプッシュ・フル・オートマティックといったサーバ側でビットレートの制御を行うプッシュ・ディレクティブに対応しない場合、
図10に示したスループット計測モジュールはなくてもよい。その場合、サーバ10の選択部11はクライアント20から受信したセグメント要求に付加された、サーバ側でビットレートの制御を行うプッシュ・ディレクティブ以外のプッシュ・ディレクティブ(例えば、プッシュ・ネクスト、プッシュ・テンプレート、プッシュ・タイム)に基づいて、プッシュ送信するセグメントを選択する。なお、プッシュ・ナンを指定された場合、クライアント20は、サーバ10に対して再生に必要なセグメントを指定したセグメント要求を送信して、当該セグメントを取得する。
【0106】
また、
図10では、クライアント20について詳細な構成を開示していないが、クライアント20は、例えば非特許文献1に記載のDASHクライアントとしての動作に必要なその他の構成を備えていることは言うまでもない。例えば、クライアント20は、サーバ10またはその他の通信装置に対してMPD要求、セグメント要求及びAck等のメッセージを送信する送信部や、サーバ10またはその他の通信装置からMPD、セグメント、DASHコマンドを含むメッセージ等を受信する受信部を備える。さらに、クライアント20は、受信したメッセージに含まれるDASHコマンドの解釈や、MPD要求やセグメント要求等のサーバ10またはその他の通信装置に送信するDASHコマンドの生成を行うDASHアクセス部を備える。また、クライアント20は、DASHアクセス部で取得されたメディアデータを復号し、復号された音声信号や映像信号をクライアントの内部、またはクライアントと有線、または無線で接続された外部の表示部に表示する復号部を備えていてもよい。なお、上述した表示部は、例えば、ディスプレイやスピーカー等である。また、クライアント20は、DASHアクセス部で取得されたイベントデータを実行するアプリケーション部を備えていてもよい。
【0107】
[3.変形例]
上述した実施の形態において、以下のような変形が適用可能である。
【0108】
[3-1.変形例1]
上述した実施の形態においては、プッシュ・オートマティック・レートやプッシュ・フル・オートマティックをプッシュ・ネクストやプッシュ・ナンと並列の“pushType”として指定可能な新しいプッシュ・ストラテジーとして規定する場合を例に挙げて説明したが、他の形式で規定されていてもよい。
【0109】
例えば、プッシュ・オートマティック・レートやプッシュ・フル・オートマティックは、PushTypeでプッシュ・ネクストを選択した場合に指定するパラメータ(PUSH_PARAMS)である“K:Number”と並列の(併記可能な)パラメータとして定義してもよい。この場合、プッシュ・ディレクティブまたはPushAckのPUSH_PARAMSにおいて、複数のパラメータが併記される。同様に、PushTypeとしてプッシュ・テンプレートやプッシュ・タイプが選択された場合も、PUSH_PARAMSにおいて、“automatic”であるか否か、または“automatic”のモードを指定できる。
【0110】
また、例えば、プッシュ・オートマティック・レートやプッシュ・フル・オートマティックは、プッシュ・ディレクティブにおいて、PUSH_TYPEと並列の(併記される)パラメータとして定義してもよい。この場合、プッシュ・ディレクティブのフォーマットに、PUSH_TYPEとは別に、“automatic”であるか否か、または“automatic”のモードを指定する領域が設けられる。
【0111】
[3-2.変形例2]
上述した実施の形態において、以下のような変形が適用可能である。ただし、以下の構成は、上述した実施の形態(例えば、セグメント・プッシュにおける“automatic”指定)と組み合わせずに使用してもよい。このように“automatic”を独立の属性として扱うことで、サーバ10が送出するセグメントの個数、時間長、ビットレートだけでなく、他のパラメータについても、サーバ10が自動的に決定するか否かを指定できる。
【0112】
例えば、MPD要求において、プッシュ・ディレクティブ(またはその他のData Type)を用いてMPDプッシュを指定する場合、以下のいずれかの構成、または以下の任意の構成の組み合わせを用いてもよい。
【0113】
(1)
MPD要求において、プッシュ・ディレクティブを用いてMPDプッシュの実施が指定されると、サーバ10は、MPDが更新されると新たなMPDをプッシュで送信してもよい。
【0114】
(2)
MPD要求において、プッシュ・ディレクティブを用いてMPDプッシュの実施が指定されると、サーバ10は、指定されたMPDに加えて、メディアデータの復号または表示に関連するメタデータをpushで送信してもよい。ここで、メタデータの一例としては、メディアデータがMP4の場合のMP4のヘッダ情報(つまりイニシャライゼーション・セグメント)が挙げられる。メタデータには、例えば、音声や映像の符号化データへのアクセス情報や、PTS/DTSなどが格納される。つまり、サーバ10は、MPDと共にイニシャライゼーション・セグメントをクライアント20に送信してもよい。なお、この場合、MPD要求のプッシュ・ディレクティブによって、メタデータをプッシュで送信するか否かを指定できるようにしてもよい。
【0115】
(3)
MPD(または、メタデータ)がサーバ10によりプッシュで送信される期間または数は、例えば、push typeにより指定されてもよい。つまり、サーバ10は、push typeにより指定された期間または数のMPD(及びメタデータ)をプッシュで送信してもよい。
【0116】
(4)
MPDプッシュが指定された場合、サーバ10は、予め規定された動作(デフォルト動作)を行うものとし、MPD要求におけるプッシュ・ディレクティブは、MPDプッシュを実施するか否かを指定するだけとしてもよい。ただし、クライアント20またはサーバ10からMPDプッシュの中止(行わない)を指定できるようにしてもよい。
【0117】
なお、クライアント20がMPDプッシュを要求するプッシュ・ディレクティブを指定したMPD要求を送信したがサーバ10がMPDプッシュを行わないと指定した場合、クライアント20の以降の動作はMPDプッシュに対応しないクライアントの動作と同様であることはいうまでもない。すなわち、クライアント20は、所望のメディアの再生に必要なイニシャライゼーション・セグメントを、サーバ10にセグメント要求を送信することで取得する。
【0118】
このように、サーバ10がMPDプッシュを行わないことを指定できるようにすることで、イニシャライゼーション・セグメントのプッシュ送信を要求するクライアント20に対しても、サーバ10がイニシャライゼーション・セグメントのプッシュ送信を行わないことを決定して、クライアントに通知することができるので、サーバ10における制御の自由度が高くなる。
【0119】
(5)
MPDプッシュにおいては、セグメント・プッシュの場合とは異なり、例えば、全てのイニシャライゼーション・セグメントを送信することも可能なため、サーバ10またはクライアント20が、対応する複数のセグメント(例えば、互いに異なるbit rateを有するセグメント)の中からいずれか一つのセグメントを選択する必要がない可能性がある。このように、MPDプッシュで選択できるプッシュ・ストラテジーと、セグメント・プッシュで選択できるプッシュ・ストラテジーとが異なる場合、MPD要求でプッシュ・ストラテジーを指定するための“MPD push Directive”と、セグメント要求でプッシュ・ストラテジーを指定するための“Segment push Directive”とを別に規定してもよい。また、MPD要求とセグメント要求とにおいて、同じフォーマットのプッシュ・ディレクティブを用いるが、MPD要求において使用可能なパラメータを制限してもよい。例えば、automaticの使用を禁止することでMPD要求において使用可能なパラメータを制限する。
【0120】
(6)
MPD要求のプッシュ・ディレクティブにおいて、メディア・セグメントのプッシュ・ストラテジーを指定できるようにしてもよい。
【0121】
例えば、MPD要求においてMPDプッシュのプッシュ・ストラテジーとセグメントのプッシュ・ストラテジーとを個別に指定してもよい。
【0122】
また、例えば、MPD要求においてメディア・セグメントのプッシュ・ストラテジーが指定されると、指定されたセグメントのプッシュ・ストラテジーに対応するMPDプッシュのプッシュ・ストラテジー(プッシュ・ナンを含む)が自動的に選択・生成されてもよい。
【0123】
また、例えば、MPD要求においてMPDプッシュのプッシュ・ストラテジーが指定されると、指定されたMPDプッシュのプッシュ・ストラテジーに対応するセグメントのプッシュ・ストラテジー(プッシュ・ナンを含む)が自動的に選択または生成されてもよい。
【0124】
[4.補足:クライアントおよびサーバ]
図10及び
図11を用いた説明では、プッシュ・ディレクティブで、オートマティックを指定可能なクライアント及びサーバについて示した。以下では、上記の変形例の説明で言及したプッシュ・ディレクティブで、オートマティックを用いない場合における、MPEG-DASH規格によるストリーミングデータを受信する受信装置としてのクライアント、及び、当該ストリーミングデータを送信する送信装置としてのサーバの構成の一例について説明する。
【0125】
図12は、通信システムの構成の他の一例を示す図である。
【0126】
サーバ10Aおよびクライアント20Aは、
図10でも説明したようにプロセッサ、ストレージ、および送受信機を含む通信機を有する。
【0127】
通信システム1Aは、サーバ10Aおよびクライアント20Aが図示しない通信ネットワークにより互いに通信接続されることにより構成されている。
【0128】
サーバ10Aは、受信部101と、送信部102とを備える。受信部101および送信部102のそれぞれは、例えば、マイクロコンピュータ、プロセッサ、または、専用回路などによって実現される。また、
図12には図示されていないが、
図10のサーバ10と同様に、サーバ10Aは、選択部や処理部を備えていてもよい。
【0129】
なお、サーバ10Aが備える
(1)MPDの送信
(2)セグメントの送信
(3)受信したDASHコマンドの解釈とクライアント20AへのDASHコマンドの送信
の機能は、同一のサーバで実施されてもよいし、複数のサーバのそれぞれが少なくともいずれか一つの機能を実施し、当該複数のサーバによって上記の機能が統合された動作としてクライアント20Aに提供されてもよい。
【0130】
クライアント20Aは、受信部201と、送信部202とを備える。受信部202および送信部202のそれぞれは、例えば、マイクロコンピュータ、プロセッサ、または、専用回路などによって実現される。また、
図12には図示されていないが、
図10のクライアント20と同様に、クライアント20Aは、DASHアクセス部、復号部、アプリケーション部を備えていてもよい。
【0131】
サーバ10Aおよびクライアント20Aの各構成要素が実施する動作についての説明は、それぞれ、送信方法および受信方法の説明において行う。
【0132】
サーバ10Aおよびクライアント20Aが実施する送信方法および受信方法の一例について、
図13を用いて説明する。
【0133】
図13は、サーバによる送信方法およびクライアントによる受信方法を含む、通信システムの動作を説明するためのシーケンス図である。
【0134】
クライアント20Aの動作(受信方法)について説明する。
【0135】
クライアント20Aの送信部202は、1以上のプッシュ・ディレクティブと共に必要なMPDを指定したMPD要求をサーバに送信する(S201)。クライアント20Aが送信するMPD要求には、MPD要求で指定されたMPDに加えて、当該MPDにより参照されるイニシャライゼーション・セグメントをプッシュで送信することを要求するプッシュ・ディレクティブが設定されている。
【0136】
クライアント20Aの受信部201は、MPD要求で指定したMPDとプッシュで送信されたイニシャライゼーション・セグメントとを受信する。
【0137】
そして、クライアント20Aの送信部202は、1以上のプッシュ・ディレクティブと共にセグメントnを指定したセグメント要求とを送信する(S202)。
【0138】
サーバ10Aの動作(送信方法)について説明する。
【0139】
サーバ10Aの受信部101は、ステップS201により送信された、1以上のプッシュ・ディレクティブと共にMPDを指定したMPD要求をクライアント20Aから受信する。
【0140】
サーバ10Aの送信部102は、受信部101が受信したMPD要求で指定されたMPDに加えてイニシャライゼーション・セグメントを、クライアント20Aに送信する(S101)。
【0141】
サーバ10Aの受信部101は、ステップS202により送信された、1以上のプッシュ・ディレクティブと、セグメントnを指定したセグメント要求とを受信する。
【0142】
サーバ10Aの送信部102は、セグメント要求で指定されたセグメントnを、クライアント20Aに送信する(S102)。
【0143】
同様に、サーバ10Aの送信部102は、セグメントn+1以降のセグメントを、クライアント20Aにプッシュで送信する(S103)。
【0144】
このように、クライアント20Aは、イニシャライゼーション・セグメントの要求を意味するプッシュ・ディレクティブと共にMPD要求をサーバ10Aに送信するため、従来のMPD要求を送信してMPDを受信した後にイニシャライゼーション・セグメントを指定したセグメント要求を送信してイニシャライゼーション・セグメントを受信するように、MPD要求とイニシャライゼーション・セグメント要求とを分けて送信する場合と比較して、処理を1ステップ削減できる。このため、処理量を効果的に低減できる。
【0145】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の受信方法および送信方法などを実現するソフトウェアは、次のようなプログラムである。
【0146】
すなわち、このプログラムは、コンピュータに、MPEG-DASH規格によるストリーミングデータを受信するクライアントにおける受信方法であって、MPDの要求またはセグメントの要求をサーバに送信し、前記MPDの要求で指定されたMPD、および、前記セグメントの要求で指定されたセグメントを受信し、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記受信では、プッシュで送信されたイニシャライゼーション・セグメントを受信する受信方法を実行させる。
【0147】
また、このプログラムは、コンピュータに、MPEG-DASH規格によるストリーミングデータを送信するサーバにおける送信方法であって、MPDの要求またはセグメントの要求をクライアントから受信し、受信した前記MPDの要求で指定されたMPDと、受信した前記セグメントの要求で指定されたセグメントとを、前記クライアントにプッシュで送信し、前記MPDの要求は、イニシャライゼーション・セグメントをプッシュで送信することを要求する情報を含み、前記送信では、前記イニシャライゼーション・セグメントをプッシュで送信する送信方法を実行させる。
【0148】
以上、本発明の一つまたは複数の態様に係るクライアント、サーバ、受信方法および送信方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0149】
本開示は、MPEG-DASH規格によるストリーミングデータの送信または受信を行う装置または機器に適用できる。
【符号の説明】
【0150】
1 通信システム
10、10A サーバ
11 選択部
12 送信部
20、20A クライアント
30 通信ネットワーク
101 受信部
102 送信部
201 受信部
202 送信部