(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-07
(45)【発行日】2024-05-15
(54)【発明の名称】HTTPによる動的適応ストリーミングのための方法及び装置
(51)【国際特許分類】
H04N 21/434 20110101AFI20240508BHJP
H04N 21/84 20110101ALI20240508BHJP
H04L 67/02 20220101ALI20240508BHJP
【FI】
H04N21/434
H04N21/84
H04L67/02
(21)【出願番号】P 2022557754
(86)(22)【出願日】2021-09-22
(86)【国際出願番号】 US2021051552
(87)【国際公開番号】W WO2022150072
(87)【国際公開日】2022-07-14
【審査請求日】2022-09-22
(32)【優先日】2021-01-05
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-09-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】鈴木 順三
(56)【参考文献】
【文献】特表2018-512771(JP,A)
【文献】特表2019-523600(JP,A)
【文献】国際公開第2015/174298(WO,A1)
【文献】米国特許出願公開第2016/0261665(US,A1)
【文献】米国特許出願公開第2014/0013375(US,A1)
【文献】米国特許出願公開第2013/0144834(US,A1)
【文献】Information technology-Dynamic adaptive streaming over HTTP(DASH)-Part8:Session-based DASH operations,ISO/IEC DIS 23009-8,ISO/IEC,2020年,pp.1-5,<URL:https://cdn.standards.iteh.ai/samples/80898/d7487fb196ed40b2b7f01f57c0a98f20/ISO-IEC-DIS-23009-8.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
H04L 67/00 - 67/75
(57)【特許請求の範囲】
【請求項1】
メディア・データを受信する方法であって、
セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むメディア・プレゼンテーション記述(MPD)ファイルを受信するステップであって、前記エッセンシャル・プロパティ記述子は、セッション・ベース記述(SBD)ファイルを指定するものであり、且つ前記メディア・データを受信するために使用されるユニフォーム・リソース・ロケータ(URL)のパートに関するキーのセットを含むものである、ステップ;
前記キーのセットの各々に関する個々の値を、前記個々の値が前記SBDファイルに含まれるか否かに基づいて決定するステップ;及び
前記キーのセットと決定された値に基づいて前記URLを修正するステップ;
を含
む方法。
【請求項2】
請求項1に記載の方法において、前記URLの前記パートは、前記URLのホスト・パート、ポート・パート、パス・パート、及びフラグメント・パートのうちの1つである、方法。
【請求項3】
請求項1に記載の方法において、前記キーのセットは、(i)URLホスト・キーのセット、(ii)URLポート・キーのセット、(iii)URLパス・キーのセット、及び(iv)URLフラグメント・キーのセットのうちの1つである、方法。
【請求項4】
請求項1に記載の方法において、前記決定するステップは:
前記キーのセットのうちの1つに関する値が、前記SBDファイルに含まれるか否かを決定するステップ;
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれることに基づいて、前記キーのセットのうちの1つに関する前記SBDに含まれる値を決定するステップ;及び
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれないことに基づいて、前記キーのセットのうちの1つに関する値はデフォルト値であると決定するステップであって、前記デフォルト値は前記エッセンシャル・プロパティ記述子に含まれる、ステップ;
を含む、方法。
【請求項5】
請求項1に記載の方法において、前記キーのセットは、前記エッセンシャル・プロパティ記述子に含まれるテンプレートによって示され、前記修正するステップは:
決定された値に基づいて、前記URLのパートに対応するテンプレートを処理するステップ;及び
処理されたテンプレートに基づいて前記URLを修正するステップ;
を含む、方法。
【請求項6】
請求項5に記載の方法において、前記URLのパートはフラグメント・パートであることに基づいて、前記テンプレートはフラグメント・テンプレートである、方法。
【請求項7】
請求項1に記載の方法において、前記キーのセットは、前記URLのパートに含まれるものであり、且つ前記エッセンシャル・プロパティ記述子に含まれるキー要素であって前記URLのパートに対応するキー要素によって示されるものであり、前記修正するステップは:
前記キーのセットの各々に関し、前記URLのパートの個々のキーのうちの最初に出現したものを、決定された対応する値で置換するステップ;
を含む、方法。
【請求項8】
請求項
7に記載の方法において、前記キー要素は、URLホスト・キー要素、URLポート・キー要素、URLパス・キー要素、及びURLフラグメント・キー要素のうちの1つである、方法。
【請求項9】
請求項1に記載の方法において、前記URLのパートは、前記URLの複数のパートのうちの1つであり、前記エッセンシャル・プロパティ記述子は、前記URLの全てのパートの完全一致が要求されるかどうかを示す第1フラグを含み、前記方法は:
前記URLの少なくとも1つのパートは修正されないこと、及び前記第1フラグは、前記URLの全てのパートの完全一致が要求されることを示していること、に基づいて前記URLは修正される対象ではないと決定するステップ;及び
前記URLの少なくとも1つのパートは修正されること、及び前記第1フラグは、前記URLの全てのパートの完全一致は要求されないことを示していること、に基づいて前記URLは修正される対象であると決定するステップ;
を更に含む方法。
【請求項10】
請求項1に記載の方法において、前記エッセンシャル・プロパティ記述子は、前記URLのパートに関する全てのキーの完全一致が要求されるかどうかを示す第2フラグを含み、前記方法は:
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれないこと、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致が要求されることを示していること、に基づいて前記URLのパートは修正される対象ではないと決定するステップ;及び
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれること、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致は要求されないことを示していること、に基づいて前記URLのパートは修正される対象であると決定するステップ;
を更に含む方法。
【請求項11】
メディア・データを受信する装置であって、前記装置に含まれる処理回路は:
請求項1ないし10のうちの何れか1項に記載の方法を実行するように構成されている、装置。
【請求項12】
請求項1ないし10のうち何れか1項に記載の方法をコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 参照による援用
本願は、2021年9月16日付で出願された米国特許出願第17/477,243号「HTTPによる動的適応ストリーミングのための方法及び装置」に対する優先権を主張しており、同出願は2021年1月5日付で出願された米国仮特許出願第63/134,045号「セッション・ベースのDASH動作における拡張されたURLカスタマイゼーション」に対する優先権を主張している。先の出願の開示全体は、参照により全体的に本件に援用される。
【0002】
[0002] 技術分野
本開示は、ハイパーテキスト転送プロトコルによる動的適応ストリーミング(DASH)のための方法及び装置に一般的に関連している実施形態を述べている。
【背景技術】
【0003】
[0003] ここに記載される背景の説明は、本開示の背景を一般的に提示するためのものである。目下の発明者の仕事は、その仕事がこの背景のセクションだけでなく、出願時における従来技術としての適格性を有しない可能性のある説明の態様にも及ぶ範囲内において、本開示に対する従来技術として明示的にも黙示的にも認められていない。
【0004】
[0004] ハイパーテキスト転送プロトコルによる動画エキスパート・グループ(MPEG)の動的適応ストリーミング(DASH)は、インターネット・プロトコル(IP)ネットワークを介するマルチメディア・コンテンツをストリーミングするための規格を提供する。DASH規格は、イベント・メッセージ・ボックスをメディア・セグメントで搬送することを許容している。
【発明の概要】
【0005】
[0005] 本開示の態様はメディア・データを受信する装置を提供する。一例による装置は、セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むメディア・プレゼンテーション記述(MPD)ファイルを受信する処理回路を含む。エッセンシャル・プロパティ記述子は、セッション・ベース記述(SBD)ファイルを指定するものであり、且つメディア・データを受信するために使用されるユニフォーム・リソース・ロケータ(URL)のパートに関するキーのセットを含むものである。処理回路は、キーのセットの各々に関する個々の値を、個々の値がSBDファイルに含まれるか否かに基づいて決定し、キーのセットと決定された値に基づいてURLを修正する。
【0006】
[0006] 実施形態において、URLのパートは、URLのホスト・パート、ポート・パート、パス・パート、及びフラグメント・パートのうちの1つである。
【0007】
[0007] 実施形態において、キーのセットは、(i)URLホスト・キーのセット、(ii)URLポート・キーのセット、(iii)URLパス・キーのセット、及び(iv)URLフラグメント・キーのセットのうちの1つである。
【0008】
[0008] 実施形態において、処理回路は、キーのセットのうちの1つに関する値が、SBDファイルに含まれるか否かを決定する。処理回路は、キーのセットのうちの1つに関する値がSBDファイルに含まれることに基づいて、キーのセットのうちの1つに関するSBDに含まれる値を決定する。処理回路は、キーのセットのうちの1つに関する値がSBDファイルに含まれないことに基づいて、キーのセットのうちの1つに関する値はデフォルト値であると決定する。デフォルト値はエッセンシャル・プロパティ記述子に含まれる。
【0009】
[0009] 実施形態において、キーのセットは、エッセンシャル・プロパティ記述子に含まれるテンプレートによって示される。処理回路は、決定された値に基づいてテンプレートを処理する。テンプレートはURLのパートに対応する。処理回路は、処理されたテンプレートに基づいてURLを修正する。
【0010】
[0010] 実施形態において、URLのパートがフラグメント・パートであることに基づいて、テンプレートはテンプレートである。
【0011】
[0011] 実施形態において、キーのセットは、URLのパートに含まれており、且つエッセンシャル・プロパティ記述子に含まれるキー要素であってURLのパートに対応するキー要素によって示されるものである。処理回路は、キーのセットの各々に関し、URLのパートの個々のキーのうちの最初に出現したものを、決定された対応する値で置換する。
【0012】
[0012] 実施形態において、キー要素は、URLホスト・キー要素、URLポート・キー要素、URLパス・キー要素、及びURLフラグメント・キー要素のうちの1つである。
【0013】
[0013] 実施形態において、URLのパートは、URLの複数のパートのうちの1つであり、エッセンシャル・プロパティ記述子は、URLの全てのパートの完全一致が要求されるかどうかを示す第1フラグを含む。処理回路は、URLの少なくとも1つのパートは修正されないこと、及び第1フラグは、URLの全てのパートの完全一致が要求されることを示していること、に基づいて前記URLは修正される対象ではないと決定する。処理回路は、URLの少なくとも1つのパートは修正されること、及び第1フラグは、URLの全てのパートの完全一致は要求されないことを示していること、に基づいて前記URLは修正される対象であると決定する。
【0014】
[0014] 実施形態において、エッセンシャル・プロパティ記述子は、URLのパートに関する全てのキーの完全一致が要求されるかどうかを示す第2フラグを含む。処理回路は、URLのパートに関する少なくとも1つのキーはSBDファイルに含まれないこと、及び第2フラグは、URLのパートに関する全てのキーの完全一致が要求されることを示していること、に基づいてURLのパートは修正される対象ではないと決定する。処理回路は、URLのパートに関する少なくとも1つのキーはSBDファイルに含まれること、及び第2フラグは、URLのパートに関する全てのキーの完全一致は要求されないことを示していること、に基づいてURLのパートは修正される対象であると決定する。
【0015】
[0015] 本開示の態様はメディア・データを受信する方法を提供する。方法は、装置によって実行されるステップ又はステップの組み合わせを含む可能性がある。方法の1つにおいて、セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むMPDファイルが受信される。エッセンシャル・プロパティ記述子は、SBDファイルを指定するものであり、且つメディア・データを受信するために使用されるURLのパートに関するキーのセットを含むものである。キーのセットの各々に関する個々の値は、個々の値がSBDファイルに含まれるか否かに基づいて決定される。キーのセットと決定された値に基づいてURLが修正される。
【0016】
[0016] また、本開示の態様は、メディア・データを受信するためにコンピュータによって実行されると、コンピュータに、メディア・データを受信するための任意の何れかの方法又は方法の組み合わせを実行させる命令を記憶する非一時的なコンピュータ読み取り可能な媒体も提供する。
【図面の簡単な説明】
【0017】
[0017] 開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付図面から更に明らかになるであろう。
【
図1】[0018]
図1は、本開示の実施形態によるハイパーテキスト転送プロトコル(DASH)システムにおける動的適応ストリーミング例を示す。
【
図2】[0019]
図2は、本開示の実施形態による別の例示的なセッション・ベースのDASHシステムを示す。
【
図3】[0020]
図3は、本開示の実施形態による例示的なDASHクライアント・アーキテクチャを示す。
【
図4】[0021]
図4は、幾つかの実施形態によるプロセス例を概説するフローチャートを示す。
【
図5】[0022]
図5は、実施形態によるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0018】
[0023] I. ハイパーテキスト転送プロトコルによる動的適応ストリーミング(DASH)及びメディア・プレゼンテーション記述(MPD)
[0024] ハイパーテキスト転送プロトコルによる動的適応ストリーミング(DASH)は、ウェブ・サーバー、コンテンツ配信ネットワーク(CDN)、種々のプロキシ及びキャッシュ等のような、ハイパーテキスト転送プロトコル(HTTP)インフラストラクチャを使用してメディア・コンテンツのストリーミングを可能にする適応ビットレート・ストリーミング技術である。DASHは、DASHサーバーからDASHクライアントへのオン・デマンド及びライブ・ストリーミングの両方をサポートし、DASHクライアントがストリーミング・セッションを制御することを許容し、その結果、DASHサーバーは、大規模な配備において、ストリーム適応管理の追加的な負担に対処する必要がない。また、DASHは、DASHクライアントが、様々なDASHサーバーからのストリーミングを選択できるようにし、従って、DASHクライアントの利益を図るために、ネットワークの更なる負荷平衡化を達成する。DASHは、例えば、ネットワーク条件に適合するようにビットレートを変化させることによって、異なるメディア・トラック間の動的なスイッチングを提供する。
【0019】
[0025] DASHでは、メディア・プレゼンテーション記述(MPD)ファイルは、DASHサーバーからメディア・セグメントをダウンロードすることにより、メディア・コンテンツを適応的にストリーミングするための情報をDASHクライアントに提供する。MPDファイルは、セグメント化され、部分的に配信されて、セッションのスタート・アップ遅延を減らすことが可能である。MPDファイルはまた、ストリーミング・セッション中に更新されることも可能である。幾つかの例では、MPDファイルは、コンテンツ・アクセシビリティ機能、レーティング、及びカメラ視野の表現をサポートする。DASHはまた、マルチ・ビュー及びスケーラブルなコーディングされたコンテンツの配信もサポートする。
【0020】
[0026] MPDファイルは、1つ以上のピリオド(period)のシーケンスを含むことが可能である。1つ以上のピリオドのそれぞれは、MPDファイルにおけるピリオド要素によって定義することが可能である。MPDファイルは、MPDに対するavailableStartTime属性と各ピリオドに対するスタート(start)属性とを含むことが可能である。動的なタイプ(例えば、ライブ・サービスに使用されるもの)のメディア・プレゼンテーションの場合、ピリオドのスタート属性とMPD属性availableStartTimeの合計、及びメディア・セグメントの継続時間は、ピリオドの利用可能時間を協定世界時(UTC)の形式で、特に対応するピリオドにおける各リプリゼンテーション(representation)の第1メディア・セグメントを示すことが可能である。静的なタイプ(例えば、オン・デマンド・サービスに使用されるもの)のメディア・プレゼンテーションの場合、第1ピリオドのスタート属性は0であるとすることが可能である。その他の何らかのピリオドに関し、スタート属性は、第1ピリオドのスタート時間に対する、対応するピリオドのスタート時間の間の時間オフセットを指定することが可能である。各ピリオドは、次のピリオドのスタートまで、又は最後のピリオドの場合はメディア・プレゼンテーションの終了まで延長することが可能である。ピリオドのスタート時間は正確であり、過去の全てのピリオドのメディアを再生した結果生じる実際のタイミングを反映することが可能である。
【0021】
[0027] 各ピリオドは、1つ以上のアダプテーション・セット(adaptations sets)を含むことが可能であり、アダプテーション・セットの各々は、同一のメディア・コンテンツに対する1つ以上のリプリゼンテーションを含むことが可能である。リプリゼンテーションは、オーディオ又はビデオ・データの多数の代替的な符号化されたバージョンのうちの1つであるとすることが可能である。リプリゼンテーションは、符号化するタイプによって、例えばビットレート、解像度、及び/又はビデオ・データやビットレートのコーデック、及び/又はオーディオ・データのコーデックによって、相違する可能性がある。リプリゼンテーションという用語は、マルチメディア・コンテンツの特定のピリオドに対応する符号化されたオーディオ又はビデオ・データのセクションであって特定の方法で符号化されたものを指すために使用することが可能である。
【0022】
[0028] 特定のピリオドのアダプテーション・セットは、MPDファイルのグループ(group)属性で示されたグループに割り当てることが可能である。同じグループ内のアダプテーション・セットは、一般に、互いに代替的であると考えられる。例えば、特定のピリオドのビデオ・データの各アダプテーション・セットは同じグループに割り当てることが可能であり、その結果、対応するピリオドのマルチメディア・コンテンツのビデオ・データを表示するために、任意のアダプテーション・セットが復号化のために選択されることが可能である。1つのピリオド内のメディア・コンテンツは、もし存在するならば、グループ0からの1つのアダプテーション・セット、又は幾つかの例では、非ゼロの各グループからの多くとも1つのアダプテーション・セットの組み合わせのうちの何れかによって表現することが可能である。ピリオドの各リプリゼンテーションのタイミング・データは、ピリオドのスタート時間に対して表現されることが可能である。
【0023】
[0029] リプリゼンテーションは1つ以上のセグメントを含むことが可能である。各リプリゼンテーションは初期化セグメントを含むことが可能であり、あるいはリプリゼンテーションの各セグメントは自己初期化(self-initializing)することが可能である。存在する場合、初期化セグメントは、リプリゼンテーションにアクセスするための初期化情報を含むことが可能である。場合によっては、初期化セグメントはメディア・データを含まない。セグメントは、ユニフォーム・リソース・ロケータ(URL)、ユニフォーム・リソース・ネーム(URN)、又はユニフォーム・リソース識別子(URI)のような識別子によって一意に参照することが可能である。MPDファイルは各セグメントの識別子を提供することが可能である。幾つかの例では、MPDファイルは、URL、URN、又はURIによってアクセス可能なファイル内のセグメントのデータに対応することが可能なレンジ(range)属性の形式で、バイト範囲を提供することも可能である。
【0024】
[0030] 各リプリゼンテーションは、1つ以上のメディア・コンポーネントを含むことも可能であり、各メディア・コンポーネントは、オーディオ、ビデオ、又は(例えば、クローズド・キャプショニングなどの)タイムド・テキストのような、1つの個別的なメディア・タイプの符号化されたバージョンに対応することが可能である。メディア・コンポーネントは、1つのリプリゼンテーション内で、連続したメディア・セグメントの境界を横切って、時間的に連続であるとすることが可能である。
【0025】
[0031] 幾つかの実施形態では、DASHクライアントは、DASHサーバーにアクセスし、DASHサーバーからMPDファイルをダウンロードすることが可能である。即ち、DASHクライアントは、ライブ・セッションを開始する際に使用するMPDファイルを取り出すことが可能である。MPDファイルに基づいて、そして選択された各リプリゼンテーションに対して、DASHクライアントは幾つかの決定を行うことが可能であり、決定は、サーバー上で利用可能な最新セグメントは何であるかを決定すること、次のセグメント及び可能性のある将来のセグメントのセグメント利用可能なスタート時間を決定すること、セグメントの再生をスタートさせる時点及びセグメント中のどのタイムラインからかを決定すること、及び新しいMPDファイルをいつ取得/獲得するかを決定することを含む。いったんサービスが再生されると、クライアントは、ライブ・サービスとそれ自身の再生との間のドリフトを追跡することが可能であり、これは検出されて補償されることを要する。
【0026】
[0032] II. セッション・ベースのDASH動作及びセッション・ベース記述(SBD)
[0033] MPDファイルは、全てのDASHクライアントに対して一般的であり得ることに留意を要する。MPDファイルを、DASHクライアントのセッションに特有にするために、動画エキスパート・グループ(MPEG)は、セッション・ベースのDASH動作を提供している。セッション・ベースのDASH動作では、DASHクライアントは、セッション・ベース記述(SBD)ファイルのようなサイド・ファイルを受け取ることが可能であり、これは、MPDファイルをセッションごとに、場合によってはクライアントごとに、カスタマイズするための指示をDASHクライアントに提供する。しかしながら、幾つかの関連した例において、セッション・ベースのDASH動作はアプリケーション固有である。即ち、新たなアプリケーションの各々に関し、新たなSBDフォーマットが必要とされる。
【0027】
[0034] 本開示は、セッション・ベースのDASHでURLをカスタマイズ又は修正する方法を含む。
【0028】
[0035]
図1は、本開示の実施形態による例示的なDASHシステム(100)を示す。DASHシステム(100)では、MPDファイルは、DASHサーバー(101)(例えば、コンテンツ・サーバ)からDASHクライアント(102)へ送信される。DASHクライアント(102)は、MPDファイルに基づいて、DASHサーバー(101)のようなサーバーからメディア・セグメントを受信することができる。DASHクライアント(102)は、MPDファイルを更新するためにリクエストをDASHサーバー(101)へ送信することができる。DASHサーバー(101)は、プライマリ・コンテンツ(例えば、メイン・プログラム)及び1つ以上のタイムド・メタデータ・トラック(timed metadata tracks)を含むコンテンツ・ストリームを提供することができる。更に、DASHクライアント(102)は、DASHサーバー(101)又は第三者(例えば、セッション・コントローラ)のようなサーバーから、SBDファイルを受信することができる。
【0029】
[0036] 開示の態様によれば、SBDファイルは、追加のメタデータと共に、複数の時間範囲と対応するキー・バリュー・ペア(又は名前-値のペア)を含むことが可能である。SBDファイルは、例えばURLによってMPDファイル内で参照されることが可能である。SBDファイルは、DASHクライアント(102)によって受信されたMPDファイルを、DASHクライアント(102)のセッションに固有であるようにカスタマイズするために使用されることが可能である。例えば、SBDファイルは、セッションごとに固有のMPDを生成することなく、セッション固有の要素をセグメントURLに追加することが可能である。
【0030】
[0037]
図2は、本開示の実施形態による別の例示的なセッション・ベースのDASH動作アーキテクチャ(200)を示す。セッション・ベースのDASH動作アーキテクチャ(200)では、マルチメディア・コンテンツは、オーディオ・ソース(例えば、マイクロフォン)及びビデオ・ソース(例えば、ビデオ・カメラ)を含むことが可能なコンテンツ生成デバイス(201)(例えば、スマートフォン)によって準備され生成される。マルチメディア・コンテンツは、コンテンツ生成デバイス(201)によって記憶されるか、又は様々なマルチメディア・コンテンツを記憶することが可能なコンテンツ・サーバ(202)へ送信することが可能である。コンテンツ・サーバー(202)は、マルチメディア・コンテンツの1つ以上のメディア・セグメントに関するリクエストを、DASHアクセス・クライアント(203)のようなクライアント・デバイスから受信することが可能である。マルチメディア・コンテンツは、MPDファイルによって記述され、これは、コンテンツ・サーバー(202)によって記憶され更新され、DASHアクセス・クライアント(203)を含むクライアント・デバイスよってアクセスされて、メディア・セグメントが取り出される。
【0031】
[0038] セッション固有のメディア・セグメントを取り出すするために、DASHアクセス・クライアント(203)は、SBDクライアント(204)によって受信されるSBDファイルであって、現在のセッションに関する複数の時間範囲と対応するキー・バリュー・ペアとを含むSBDファイル、にアクセスするためにリクエストをSBDクライアント(204)(例えば、セッション・クライアント)へ送信することができる。例えば、DASHアクセス・クライアント(203)は、キー・ネームと時間範囲をSBDクライアント(204)へ送信することが可能であり、SBDクライアント(204)は、キー・ネームと時間範囲を分析し、キー・ネームと時間範囲に対応する値を、DASHアクセス・クライアント(203)に返す。DASHアクセス・クライアント(203)は、セグメント・リクエストがHTTP GET又は部分的なGETリクエストである場合に、セッション固有のメディア・セグメントを要求するために、コンテンツ・サーバー(202)へ送信されることが可能なセグメントURLのクエリに値を含めることが可能である。
【0032】
[0039] SBDクライアント(204)は、セッション・コントローラ(205)及びセッション・コントローラ(206)のような異なるセッション・コントローラから複数のSBDファイルを受信できることに留意を要する。
【0033】
[0040] 本開示の態様によれば、(例えば、DASHサーバーである)コンテンツ・サーバー(202)の機能のうちの何れか又は全部は、ルーター、ブリッジ、プロキシ・デバイス、スイッチ、又はその他のデバイスのような、コンテンツ配信ネットワーク(CDN)の1つ以上のデバイスに実装されることが可能である。コンテンツ・サーバー(202)は、クライアント・デバイス(例えば、DASHアクセス・クライアント(203))からネットワーク・リクエストを受信するように構成されたリクエスト処理ユニットを含むことが可能である。例えば、リクエスト処理ユニットは、HTTP GET又は部分的なGETリクエストを受信し、リクエストに応じてマルチメディア・コンテンツのデータを提供するように構成することが可能である。リクエストはセグメントのURLを使ってセグメントを指定することができる。幾つかの例において、リクエストはセグメントの1つ以上のバイト範囲を指定することが可能であり、従って部分的なGETリクエストを含む。リクエスト処理ユニットは、セグメントのヘッダ・データを提供するために、HTTP HEADリクエストに応対するように構成されることが可能である。
【0034】
[0041] 幾つかの実施形態において、コンテンツ生成デバイス(201)とコンテンツ・サーバー(202)は、無線ネットワーク又は有線ネットワークによって結合されることが可能であり、あるいは直接的に通信可能に結合されることが可能である。
【0035】
[0042] 幾つかの実施形態において、コンテンツ生成デバイス(201)とコンテンツ・サーバー(202)は、同じデバイス内に含まれることが可能である。
【0036】
[0043] 幾つかの実施形態において、コンテンツ・サーバー(202)とセッション・コントローラ(205)-(206)は、同じデバイス内に含まれることが可能である。
【0037】
[0044] 幾つかの実施形態において、コンテンツ・サーバー(202)とDASHアクセス・クライアント(203)は、無線ネットワーク又は有線ネットワークによって結合されることが可能である。
【0038】
[0045] 幾つかの実施形態において、SBDクライアント(204)とセッション・コントローラ(205)-(206)は、無線ネットワーク又は有線ネットワークによって結合されることが可能であり、又は直接的に通信可能に結合されることが可能である。
【0039】
[0046] 幾つかの実施形態において、DASHアクセス・クライアント(203)とSBDクライアント(204)は、同じデバイス内に含まれることが可能である。
【0040】
[0047] 本開示の態様によれば、複数のSBDをMPDに結び付けるするために、セッション・ベースDASHに関する1つ以上のエッセンシャル・プロパティ記述子をMPDレベルで使用することが可能であり、セッション・ベースDASHのための各エッセンシャル・プロパティ記述子は、類似の又は同一のエッセンシャル・プロパティ記述子属性を含む。プレゼンテーション記述子は、エッセンシャル・プロパティ記述子、又は補足的なプロパティ記述子の何れかであるとすることが可能な点に留意されたい。エッセンシャル・プロパティの場合、メディア・プレゼンテーション・オーサー(author)は、エレメントが他のEssentialPropertyエレメントと同じ@idを共有しない限り、この記述子を含む親エレメントで情報を適切に使用するためには、記述子の成功した処理が不可欠であることを述べている。対照的に、補足的なプロパティの場合、メディア・プレゼンテーション・オーサーは、最適化された処理のためにDASHクライアントにより使用されてもよい補足情報を、記述子が含んでいることを述べている。
【0041】
[0048]
図3は、本開示の実施形態による例示的なDASHクライアント・アーキテクチャを示す。DASHクライアント(又はDASHプレーヤ)は、アプリケーション(312)と通信し、(i)MPDイベント、(ii)インバンド・イベント(inband event)、及び(iii)タイムド・メタデータ・イベントを含む種々のタイプのイベントを処理するように構成されることが可能である。
【0042】
[0049] マニフェスト・パーサー(310)は、マニフェスト(例えば、MPD)を分析することが可能である。マニフェストは例えばDASHサーバー(101)によって提供することが可能である。マニフェスト・パーサー(310)は、MPDイベント、インバンド・イベント、及びタイムド・メタデータ・イベントに関する、タイムド・メタデータ・トラックに埋め込まれたイベント情報を抽出することが可能である。抽出されたイベント情報は、DASHロジック(311)(例えば、DASHプレーヤ制御、選択、及び発見的ロジック)に提供されることが可能である。DASHロジック(311)は、イベント情報に基づいて、マニフェストでシグナリングされたイベント・スキームを、アプリケーション(312)に通知することが可能である。
【0043】
[0050] イベント情報は、異なるイベント・ストリームを区別するためのイベント・スキーム情報を含むことが可能である。アプリケーション(312)は、イベント・スキーム情報を使用して、関心のあるイベント・スキームに加入することが可能である。アプリケーション(312)は、更に、1つ以上のサブスクリプション・アプリケーション・プログラミング・インターフェース(API)を介して、加入したスキームの各々に対して所望のディスパッチ・モードを指定することが可能である。例えば、アプリケーション(312)は、サブスクリプション・リクエストをDASHクライアントへ送信することが可能であり、DASHクライアントは、関心のある1つ以上のイベント・スキーム及び任意の所望の対応するディスパッチ・モードを識別することが可能である。
【0044】
[0051] アプリケーション(312)が、1つ以上のタイムド・メタデータ・トラックの一部として配信される1つ以上のイベント・スキームに加入する場合、インバンド・イベント&‘moof’パーサー(303)は、1つ以上のタイムド・メタデータ・トラックを、タイムド・メタデータ・トラック・パーサー(304)にストリーミングすることが可能である。例えば、インバンド・イベント&‘moof’パーサー(303)は、DASHロジック(311)からの制御情報に基づいて、ムービー・フラグメント・ボックス(“moof”)を分析し、その後にタイムド・メタデータ・トラックを分析する。
【0045】
[0052] タイムド・メタデータ・トラック・パーサー(304)は、タイムド・メタデータ・トラックに埋め込まれたイベント・メッセージを抽出することが可能である。抽出されたイベント・メッセージは、イベント&タイムド・メタデータ・バッファ(306)に格納されることが可能である。シンクロナイザ/ディスパッチャ・モジュール(308)(例えば、イベント及びタイムド・メタデータ・シンクロナイザ及びディスパッチャ)は、加入済みイベントを、アプリケーション(312)に対してディスパッチ(又は送信)することが可能である。
【0046】
[0053] MPDに記述されるMPDイベントは、マニフェスト・パーサー(310)によって分析され、イベント&タイムド・メタデータ・バッファ(306)に格納されることが可能である。例えば、マニフェスト・パーサー(310)は、MPDの各イベント・ストリーム要素を分析し、各イベント・ストリーム要素に記述された各イベントを分析する。MPDでシグナリングされる各イベントに関し、プレゼンテーション時間及びイベント継続時間のようなイベント情報は、イベント&タイムド・メタデータ・バッファ(306)に、イベントと関連付けて格納することが可能である。
【0047】
[0054] インバンド・イベント&‘moof’パーサー(303)は、インバンド・イベント・メッセージを抽出するためにメディア・セグメントを分析することが可能である。このように識別されたインバンド・イベント並びに関連するプレゼンテーション時間及び継続時間は、イベント&タイムド・メタデータ・バッファ(306)に格納されることが可能である。
【0048】
[0055] 従って、イベント&タイムド・メタデータ・バッファ(306)は、MPDイベント、インバンド・イベント、及び/又はタイムド・メタデータ・イベントをそこに格納することが可能である。イベント&タイムド・メタデータ・バッファ(306)は、例えば、先入れ先出し(FIFO)バッファであるとすることが可能である。イベント&タイムド・メタデータ・バッファ(306)は、メディア・バッファ(307)と通信可能に管理されることが可能である。例えば、メディア・セグメントがメディア・バッファ(307)に存在する限り、そのメディア・セグメントに対応する任意のイベント又はタイムド・メタデータを、イベント&タイムド・メタデータ・バッファ(306)に格納することが可能である。
【0049】
[0056] DASHアクセスAPI(302)は、HTTPプロトコル・スタック(301)を介して、メディア・コンテンツ及び様々なメタデータを含むコンテンツ・ストリーム(又はデータフロー)の取得と受信を管理することが可能である。DASHアクセスAPI(302)は、受信したコンテンツ・ストリームを、異なるデータフローに分離することが可能である。インバンド・イベント&‘moof’パーサー(303)に提供されるデータフローは、メディア・セグメント、1つ以上のタイムド・メタデータ・トラック、及びメディア・セグメントに含まれるインバンド・イベント・シグナリングを含むことが可能である。実施形態では、マニフェスト・パーサー(310)に提供されるデータフローは、MPDを含むことが可能である。
【0050】
[0057] DASHアクセスAPI(302)はマニフェストをマニフェスト・パーサー(310)へ転送することが可能である。イベントを記述する以外に、マニフェストはメディア・セグメントに関する情報を、DASHロジック(311)に提供することが可能であり、DASHロジック(311)は、アプリケーション(312)及びインバンド・イベント&‘moof’パーサー(303)と通信することが可能である。アプリケーション(312)は、DASHクライアントによって処理されるメディア・コンテンツに関連付けることが可能である。アプリケーション(312)、DASHロジック(311)、マニフェスト・パーサー(310)、及びDASHアクセスAPI(302)の間でやり取りされる制御/同期信号は、マニフェストで提供されるメディア・セグメントに関する情報に基づいて、HTTPスタック(301)からのメディア・セグメントの取得を制御することが可能である。
【0051】
[0058] インバンド・イベント&‘moof’パーサー(303)は、メディア・データフローを、メディア・コンテンツを含むメディア・セグメント、タイムド・メタデータ・トラックにおけるタイムド・メタデータ、及びメディア・セグメントにおける何らかのシグナリングされるインバンド・イベントに分析することができる。メディア・コンテンツを含むメディア・セグメントは、ファイル・フォーマット・パーサー(305)によって分析され、メディア・バッファ(307)に格納されることが可能である。
【0052】
[0059] イベント&タイムド・メタデータ・バッファ(306)に記憶されたイベントは、シンクロナイザ/ディスパッチャ(308)が、イベント/メタデータAPIを介して、アプリケーション(312)に関連する利用可能なイベント(又は関心のあるイベント)を、アプリケーション(312)に伝えることを可能にする。アプリケーション(312)は、シンクロナイザ/ディスパッチャ(308)に通知することによって、利用可能なイベント(例えば、MPDイベント、インバンド・イベント、又はタイムド・メタデータ・イベント)を処理し、特定のイベント又はタイムド・メタデータに加入するように構成されることが可能である。アプリケーション(312)には関係しないがDASHクライアント自体には関係する、イベント&タイムド・メタデータ・バッファ(306)に格納されたイベントは、シンクロナイザ/ディスパッチャ(308)によってDASHロジック(311)へ更なる処理のために転送されることが可能である。
【0053】
[0060] 特定のイベントに加入するアプリケーション(312)に応答して、シンクロナイザ/ディスパッチャ(308)は、アプリケーション(312)が加入しているイベント・スキームに対応するイベント・インスタンス(又はタイムド・メタデータ・サンプル)を、アプリケーション(312)に伝えることが可能である。イベント・インスタンスは、加入リクエストによって指定されるディスパッチ・モード(例えば、特定のイベント・スキームに対するもの)又はデフォルトのディスパッチ・モードに従って、伝達されることが可能である。例えば、オン-レシーブ(on-receive)ディスパッチ・モードでは、イベント・インスタンスは、イベント&タイムド・メタデータ・バッファ(306)での受信の際に、アプリケーション(312)へ送信されることが可能である。一方、オン-スタート・ディスパッチ・モードでは、イベント・インスタンスは、例えばメディア・デコーダ(309)からのタイミング信号に同期して、それらの関連するプレゼンテーション時間でアプリケーション(312)に送信されることが可能である。
【0054】
[0061] DASHクライアント・アプリケーションでは、太いデータフローの線はメディア・データフローを示し、細いデータフローの線はイベント及びタイムド・メタデータ・データフローを示し、破線のデータフローの線は制御及び同期を示すことに留意を要する。
【0055】
[0062] III. セッション・ベースのDASH動作におけるURLカスタマイズ
[0063] セッション・ベースのDASH動作は、セッションごとに、可能であればクライアントごとに、MPDをカスタマイズするために重要なアプローチである。しかしながら、幾つかの関連する例では、メディア・データを受信するために使用される所与のURLの各パートにおいて、単一のキーの置換のみが許容される可能性がある。更に、フラグメントのカスタマイゼーションのような特定のカスタム化は、所与のURLではサポートされていない可能性があり、及び/又は所与のURLの操作は許容されていない。更に、所与のURLのパートは、テンプレートが処理された後に、テンプレートに置換されることが可能であるだけでしかない。所与のURLの全てのパートではなく、複数のパートのうちの一部分のみを修正するような動作は、場合によっては修正されたURLを無効化する可能性がある。
【0056】
[0064] 本開示は、複数のキーを用いて所与のURLのパートを修正又はカスタマイズする方法を含む。本開示はまた、所与のURLのフラグメント・パートのためにMPDファイル内にテンプレートを追加する方法を含む。本開示は、処理されたテンプレートを使用せずに、所与のURLのパートを操作する方法を含む。更に、本開示は、完全一致が必要とされるか、又は相応のレベルで要求される場合に、無効なURLパート又は全体的に無効なURLを作成してしまうことを回避する方法を含む。
【0057】
[0065] 本開示の態様によれば、MPDファイルは、SBDファイルのエッセンシャル・プロパティ記述子を含むことが可能である。エッセンシャル・プロパティ記述子は、SBD記述子と言及されることが可能である。SBD記述子は、1つ以上の要素又はテンプレートを含むことが可能であり、それら各々は、URLの対応するパートにおける複数のキーの置換を許容するために使用されることが可能である。例えば、SBD記述子は、URLのフラグメント・パートを変更するためのURLフラグメント・テンプレートを含むことが可能である。更に、部分的な置換が無効なURLパート及び/又は全体的に無効なURLをもたらす可能性がある場合、SBD記述子は、URLテンプレートの部分的な置換を回避するために1つ以上のフラグを含むことが可能である。
【0058】
[0066] URLは、ホスト・パート、ポート・パート、パス・パート、及び/又はフラグメント・パートを含むことが可能である。例えば、典型的なURLは、URI = scheme:[//authority]path[?query][#fragment]のように表現することが可能であり、ここで、authorityのパートは、authority=[userinfo@]host[:port]のように表現することが可能である。
【0059】
[0067] URLのあるパートに関して複数のキー置換を可能にするために、URLのカスタマイゼーションは次のように実行することが可能である。先ず、URLのパートに対応するテンプレートは、複数のキーを含むように許容されることが可能である。次いで、URLのパートに対する複数のキーを、共にグループ化することが可能である。
【0060】
[0068] URLカスタマイゼーション処理では、URLのフラグメント・パートがカスタマイズ又は変更される対象である場合に、URLフラグメントに対応するテンプレートとURLフラグメントのキー・リストは、SBD記述子に含められることが可能である。実施形態では、URLフラグメントは、以下のようにカスタマイズ又は修正されることが可能である。先ず、1つ以上の$key$を有するフラグメント・テンプレートは、MPDエッセンシャル・プロパティ記述子(例えば、SBD記述子)に含められることが可能である。‘key’は、URLフラグメントにおいて置換される対象のパラメータの名前である。MPDエッセンシャル・プロパティ記述子はまた、URLフラグメントをカスタマイズするためのキー・リスト(例えば、1つ以上のキーのリスト)を含むことが可能である。次いで、DASHクライアントは、MPDエッセンシャル・プロパティ記述子を分析した後に、URLをSBDクライアントに渡すことができる。SBDクライアントは、キー・リストで提供される各キーについてSBDファイルを検索し、それぞれのキーがSBDファイル内の対応する値に合致するかどうかを判定する。キーが一致する場合、SBDクライアントは、フラグメント・テンプレート内の対応する$key$を、一致する値で置換することによって、フラグメント・テンプレートを処理することができる。キーが一致しない場合、SBDクライアントは、フラグメント・テンプレート内の対応する$key$を、そのキーに対するデフォルト値で置換されることによって、フラグメント・テンプレートを処理することができる。一例において、キーのデフォルト値は、MPDファイルに含まれるキー・リストによって示される。最終的に、SBDクライアントは、処理されたフラグメント・テンプレートに基づいて、URLフラグメントをカスタマイズ又は変更することが可能である。
【0061】
[0069] 実施形態では、URLのパートは、処理されたテンプレートを使用することなく、修正又は操作されることが可能である。即ち、URLのパートにおけるキーは、処理されたテンプレートを使用せずに置換されることが可能である。例えば、あるキーがURLのパートに少なくとも1回生じており、且つSBDファイルにも含まれる場合、URLのパートにおいて最初に生じたキーは、SBDファイルにおける対応する一致する値で置換されることが可能である。キーは、SBD記述子における対応する要素で示されることが可能である。例えば、ホスト・キーはホスト要素によって示されることが可能である。
【0062】
[0070] 幾つかの関連した例では、全てではないが1つ以上のURLのパートを修正して、修正されたURLを生成する場合、修正されたURLは無効である可能性がある。無効な修正又はカスタマイズされたURLの生成してしまうことを回避するために、実施形態では、URL完全一致フラグのような第1フラグが、MPDファイルに含まれるSBD記述子でシグナリングされることが可能である。第1フラグは、URLの全てのパートの完全一致が受け入れ可能であるか又は要求されるかどうかを示すことが可能である。
【0063】
[0071] 幾つかの関連した例では、URLのパート内の全てではないが1つ以上のキーが置換されて、修正されたURLのパートを生成する場合、修正されたURLのパートは無効である可能性がある。無効な修正又はカスタマイズされたURLのパートを生成してしまうことを回避するために、URLパート完全一致フラグのような第2フラグが、MPDファイルに含まれるSBD記述子でシグナリングされることが可能である。第2フラグは、URLのうちの1つ又は各々のパートに対してシグナリングされることが可能である。第2フラグは、URLのパートの全てのキーの完全一致が受け入れ可能であるか又は要求されるかどうかを示すことが可能である。
【0064】
[0072] 本開示の態様によれば、MPDファイルに含まれるSBDファイルのエッセンシャル・プロパティ記述子(例えば、SBD記述子)は、上記の特徴をシグナリングするために1つ以上の要素及び/又は属性を含むように拡張されることが可能である。SBD記述子の例示的な拡張されたバージョンは、テーブル1に示すようなものとすることが可能である。
【0065】
[0073] 複数のキーを用いてURLのパートを修正する方法の1つは、テーブル1に示されているようなSBD記述子に含まれる属性@hostTemplate, @portTempalte, @pathTemplate, 及び@fragmentTempalteのうちの1つを使用することによって達成されることが可能である。これらの属性の各々は、URLの対応するパートに関する複数のキーを含むことが可能である。例えば、属性@hostTemplateは、URLのホスト・パートに関する複数のURLホスト・キーを含むことが可能である。SBDクライアントは、複数のURLホスト・キーのそれぞれについてSBDファイルを探索して、それぞれのURLホスト・キーがSBDファイルに含まれるかどうかを判断することが可能である。URLホスト・キーの1つがSBDファイルに含まれる場合、SBDクライアントは、URLホスト・キーに一致する値を決定し、一致する値でホスト・テンプレートの対応するパートを変更することが可能である。ホスト・テンプレートは、属性@hostTemplateによって示されることが可能である。SBDファイルは、属性@valueによって示されることが可能である。このようにして、URLホスト・パートは複数のキーを用いて変更又はカスタマイズされることが可能である。
【0066】
[0074] 加工されたテンプレートを使用せずに複数のキーを用いてURLのパートを修正する別の方法は、テーブル1に示されているようなSBD記述子に含まれる要素Host, Port, Path, 及び/又はFragmentを使用することによって達成されることが可能である。これらの要素の各々は、URLの対応するパートに関する複数のキーを含むことが可能である。例えば、要素Hostは、URLのホスト・パートに関する複数のURLホスト・キーを含むことが可能である。複数のURLホスト・キーのうちの1つがURLホスト・パート内にある場合、SBDクライアントは、URLホスト・キーについてSBDファイルを探索して、URLホスト・キーがSBDファイルに含まれるかどうかを判断することが可能である。URLホスト・キーがSBDファイルに含まれる場合、SBDクライアントは、URLホスト・キーに一致する値を決定し、URLホスト・パートにおけるURLホスト・キーの最初に出現するものを、一致する値で置換することが可能である。このようにして、URLホスト・パートは、加工されたホスト・テンプレートを使用せずに、複数のURLホスト・キーで変更又はカスタマイズされることが可能である。
【0067】
[0075] 無効な修正されたURLを生成してしまうことを回避するために、テーブル1に示すように、属性@urlMatchを、SBD記述子に含めることが可能である。属性@urlMatchが‘true’に設定されており、URLホスト、パス、ポート、又はフラグメントのうちの少なくとも1つが修正されない場合、その他の修正されたパートは有効になることはできず、URLは変更されないまま残る。属性@urlMatchが‘false’に設定され、URLホスト、パス、ポート、又はフラグメントのうちの少なくとも1つが修正される場合、修正されたパートは有効となり、URLは修正されたパートに基づいて修正されることが可能である。例えば、属性@urlMatchが‘true’に設定され、URLホスト・パートは修正されない一方、他のURLパートは修正される場合、修正されたパートは有効ではなく、URLは変更されないまま残る。属性@urlMatch が‘false’に設定され、URLホスト・パートは修正される場合、修正されたURL ホスト・パートは有効であり、URLは、修正されたURLホスト・パートに基づいて修正されることが可能である。
【0068】
[0076] 無効な修正されたURLパートを生成してしまうことを回避するために、テーブル1に示すように、属性@hostMatch, @portMatch, @pathMatch, 及び/又は@fragmentMatchを、SBD記述子に含めることが可能である。これらの属性のうちの1つが‘true’に設定されており、その属性に対応するテンプレート内の少なくとも1つのキーがSBDファイルに含まれない場合、対応するURLのパートは変更されないまま残る。例えば、要素@hostMatchが‘true’に設定されており、@hostTemplateの少なくとも1つのキーがSBDファイルに含まれない場合、URLホスト・パートは変更されないまま残る。要素@hostMatchが‘false’に設定されており、@hostTemplateのうちの少なくとも1つのキーがSBDファイルに含まれる場合、SBDファイルに含まれる@hostTemplateの少なくとも1つのキーに基づいて、URLホスト・パートは修正されることが可能である。
【0069】
[0077] 本開示の態様によれば、要素のセグメントURLについて、要素及び/又は要素の親(parent)がURL修正プロセスを示すSBD記述子を含む場合、セグメントURLは、URL修正のためにSBDクライアントによって処理されることが可能である。従って、各々の要素及び親要素がURL修正プロセスを示すSBD記述子を含み、異なるSBDファイルに対応する場合、複数のSBDファイルは、セグメントURLの修正のためにSBDクライアントによって使用されることが可能である。
【0070】
テーブル1
【0071】
【表1】
[0078] 本開示は、複数のキーを用いてURLのパートをカスタマイズする方法を含む。URLのパートは、URLのホスト・パート、ポート・パート、パス・パート、又はフラグメント・パートであるとすることが可能である。各パートについて、1つ以上のキーのセット、及びオプションとして対応するデフォルト値を、MPDファイルのSBD記述子に含めることが可能である。SBDクライアントは、各キーのSBDファイルを調べて、SBDファイル内における個々のキーの一致する値を発見し、URLのパートに対応するテンプレートのパートを、SBDファイルに含まれる一致する値に置換することが可能である。一致する値がSBDファイルに含まれない場合、URLのパートに対応するテンプレートのパートは、デフォルト値で置換されることが可能である。
【0072】
[0079] 本開示は、URLフラグメントのSBD記述子にフラグメント・テンプレートを追加する方法を含む。置換プロセスは、フラグメント・テンプレートに基づいて、URLフラグメントに適用されることが可能である。SBD記述子は、1つ以上のキーのセットと、URLフラグメントの対応するデフォルト値を含む。SBDクライアントは、SBDファイル内のキーのセットの各々に一致する値を探索し、一致する値を、フラグメント・テンプレートの対応するパートに適用することが可能である。このようにして、URLフラグメントは、処理されたフラグメント・テンプレートで置換されることが可能である。
【0073】
[0080] 本開示は、URLのパートを加工されたテンプレートで置換する代わりに、URLを操作する方法を含む。キーが、URLのパートに含まれており、SBDファイルにも含まれる場合、SBDファイルの対応する値は、URLのパートにおいてキーの最初の出現を置換するために使用されることが可能である。
【0074】
[0081] 本開示は、URLのパートに対する全てのキーの完全一致のみが許容可能であることをシグナリングする方法を含む。即ち、URLのパートに関する1つ以上のキーがSBDファイルに含まれない場合、URLのパートは置換されない。シグナリングは、URLのパートに基づいて提供されることが可能であり、その結果、この制約はURLに関するURLのパートの各々に必ずしも適用されない。
【0075】
[0082] 本開示は、URLの全てのパートの完全一致のみが許容可能であることをシグナリングする方法を含む。実施形態において、URLの1つ以上のパートが、SBDプロセスによって生じる新しいものと置換されない場合、URLのその他の置換された部分も受け入れられず、URL全体は変更されないものとする。実施形態において、MPDファイルに含まれるエッセンシャル・プロパティ記述子が、URLの複数のパートのうちのサブセット(全てではないもの)のみが変更されるべきであることを示している場合、URL全体は変更されないものとする。例えば、URLのパートに対応するテンプレート及び/又はキー・リストが、エッセンシャル・プロパティ記述子に含まれない場合、URLのパートは修正されず、従ってURL全体は、他のURLのパートが修正されたとしても変更されないものとする。
【0076】
[0083] IV. フローチャート
[0084]
図4は、本開示の実施形態によるプロセス(400)の概要を示すフローチャートを示す。様々な実施形態において、プロセス(400)は、DASHクライアント(102)における処理回路のような処理回路によって実行される。幾つかの実施形態において、プロセス(400)は、ソフトウェア命令で実現され、従って処理回路がソフトウェア命令を実行すると、処理回路はプロセス(400)を実行する。プロセス(400)は、(S410)から始まり、プロセス(400)は、セッション・ベースのDASHに関するエッセンシャル・プロパティ記述子を含むMPDファイルを受信する。エッセンシャル・プロパティ記述子は、SBDファイルを示し、メディア・データを受信するために使用されるURLのパートに関するキーのセットを含む。次いで、プロセス(400)はステップ(S420)に進む。
【0077】
[0085] ステップ(S420)において、プロセス(400)は、それぞれの値がSBDファイルに含まれるかどうかに基づいて、キーのセットのそれぞれに対するそれぞれの値を決定する。次いで、プロセス(400)はステップ(S430)に進む。
【0078】
[0086] ステップ(S430)において、プロセス(400)は、キーのセット及び決定された値に基づいてURLを修正する。そして、プロセス(400)は終了する。
【0079】
[0087] 実施形態において、URLのパートは、URLのホスト・パート、ポート・パート、パス・パート、及びフラグメント・パートのうちの1つである。
【0080】
[0088] 実施形態において、キーのセットは、(i)URLホスト・キーのセット、(ii)URLポート・キーのセット、(iii)URLパス・キーのセット、及び(iv)URLフラグメント・キーのセットのうちの1つである。
【0081】
[0089] 実施形態において、プロセス(400)は、キーのセットのうちの1つに関する値が、SBDファイルに含まれるか否かを決定する。プロセス(400)は、キーのセットのうちの1つに関する値がSBDファイルに含まれることに基づいて、キーのセットのうちの1つに関するSBDに含まれる値を決定する。プロセス(400)は、キーのセットのうちの1つに関する値がSBDファイルに含まれないことに基づいて、キーのセットのうちの1つに関する値はデフォルト値であると決定する。デフォルト値はエッセンシャル・プロパティ記述子に含まれる。
【0082】
[0090] 実施形態において、キーのセットは、エッセンシャル・プロパティ記述子に含まれるテンプレートによって示される。プロセス(400)は、決定された値に基づいてテンプレートを処理する。テンプレートは、URLのパートに対応している。プロセス(400)は、処理されたテンプレートに基づいてURLを修正する。
【0083】
[0091] 実施形態において、URLのパートはフラグメント・パートであることに基づいて、テンプレートはテンプレートである。
【0084】
[0092] 実施形態において、キーのセットは、URLのパートに含まれるものであり、且つエッセンシャル・プロパティ記述子に含まれるキー要素であってURLのパートに対応するキー要素によって示されるものである。プロセス(400)は、キーのセットの各々に関し、URLのパートの個々のキーのうちの最初に出現したものを、決定された対応する値で置換する。
【0085】
[0093] 実施形態において、キー要素は、URLホスト・キー要素、URLポート・キー要素、URLパス・キー要素、及びURLフラグメント・キー要素のうちの1つである。
【0086】
[0094] 実施形態において、URLのパートは、URLの複数のパートのうちの1つであり、エッセンシャル・プロパティ記述子は、URLの全てのパートの完全一致が要求されるかどうかを示す第1フラグを含む。プロセス(400)は、URLの少なくとも1つのパートは修正されないこと、及び第1フラグは、URLの全てのパートの完全一致が要求されることを示していること、に基づいてURLは修正される対象ではないと決定する。プロセス(400)は、URLの少なくとも1つのパートは修正されること、及び第1フラグは、URLの全てのパートの完全一致は要求されないことを示していること、に基づいてURLは修正される対象であると決定する。
【0087】
[0095] 実施形態において、エッセンシャル・プロパティ記述子は、URLのパートに関する全てのキーの完全一致が要求されるかどうかを示す第2フラグを含む。プロセス(400)は、URLのパートに関する少なくとも1つのキーはSBDファイルに含まれないこと、及び第2フラグは、URLのパートに関する全てのキーの完全一致が要求されることを示していること、に基づいてURLのパートは修正される対象ではないと決定する。プロセス(400)は、URLのパートに関する少なくとも1つのキーはSBDファイルに含まれること、及び第2フラグは、URLのパートに関する全てのキーの完全一致は要求されないことを示していること、に基づいてURLのパートは修正される対象であると決定する。
【0088】
[0096] V. コンピュータ・システム
[0097] 上述した技術は、コンピュータ読み取り可能な命令を用いるコンピュータ・ソフトウェアであって、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されるものとして実装することが可能である。例えば、
図5は、開示される対象事項の特定の実施形態を実施するのに適したコンピュータ・システム(500)を示す。
【0089】
[0098] コンピュータ・ソフトウェアは、直接的に又は解釈やマイクロコード実行等を介して、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって実行されることが可能な命令を含むコードを生成するために、アセンブリ、コンパイル、リンク等のメカニズムの影響を受ける可能性のある、任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされることが可能である。
【0090】
[0099] 命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット(IoT)デバイス等を含む、種々の種類のコンピュータ又はその構成要素において実行されることが可能である。
【0091】
[0100] コンピュータ・システム(500)に関する
図5に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの用途又は機能性の範囲に関する如何なる限定も示唆するようには意図されていない。また、構成要素の構成は、コンピュータ・システム(500)の例示的な実施形態に示される構成要素の任意の1つ又は組み合わせに関する何らかの従属性又は要件を有するものとして解釈されるべきではない。
【0092】
[0101] コンピュータ・システム(500)は、特定のヒューマン・インターフェース入力デバイスを含んでもよい。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、オーディオ入力(例えば、声、拍手)、視覚的入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、1人以上の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲の音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0093】
[0102] 入力ヒューマン・インターフェース・デバイスは、キーボード(501)、マウス(502)、トラックパッド(503)、タッチ・スクリーン(510)、データ・グローブ(図示せず)、ジョイスティック(505)、マイクロフォン(506)、スキャナ(507)、カメラ(508)のうちの1つ以上を(各々1つしか描いていないが)含んでもよい。
【0094】
[0103] コンピュータ・システム(500)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び匂い/味を通じて、1人以上の人間ユーザーの感覚を刺激することができる。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(510)、データ・グローブ(図示せず)、ジョイスティック(505)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバック・デバイスであるとすることも可能である)、オーディオ出力デバイス(例えば、スピーカー(509)、ヘッドフォン(図示せず))、視覚的出力デバイス(CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(510)であって、各々はタッチ・スクリーン入力機能を備えているか又は備えておらず、各々は触覚フィードバック能力を備えているか又は備えておらず、それらの内の一部は、ステレオ投影出力のような手段を介して、2次元視覚的出力又は3次元以上の次元の出力を出力することが可能であるもの;仮想現実眼鏡(図示せず)、ホログラフィック・ディスプレイ及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことができる。これらの視覚的出力デバイス(スクリーン(510)など)は、グラフィックス・アダプタ(550)を介してシステム・バス(548)に接続することが可能である。
【0095】
[0104] コンピュータ・システム(500)は、CD/DVD又は類似の媒体(521)を有するCD/DVD ROM/RW(520)を含む光媒体、サム・ドライブ(522)、取り外し可能なハード・ドライブ又はソリッド・ステート・ドライブ(523)、テープ及びフロッピー・ディスク(図示せず)のようなレガシー磁気媒体、セキュリティ・ドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイスなどのような、人間がアクセスできる記憶デバイス及びそれらの関連媒体を含むことも可能である。
【0096】
[0105] 当業者は、本件で開示される対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又はその他の一時的な信号を包含しないことも理解するはずである。
【0097】
[0106] コンピュータ・システム(500)は、1つ以上の通信ネットワーク(555)に対するインターフェース(554)を含むことも可能である。1つ以上のネットワーク(555)は、例えば、無線、有線、光であるとすることが可能である。ネットワークの例は、イーサーネットのようなローカル・エリア・ネットワーク、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTEなどを含む)、TV有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、地上放送TVを含む)、CANBusを含む車両及びインダストリアル等を含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(549)に接続される外部ネットワーク・インターフェース・アダプタ(例えば、コンピュータ・システム(500)のUSBポート)を必要とし;他のネットワークは、一般に、後述するようなシステム・バスへの接続によって、コンピュータ・システム(500)のコアに組み込まれる(例えば、イーサーネット・インターフェースはPCコンピュータ・システムに組み込まれ、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システムに組み込まれる)。これらの任意のネットワークを使用して、コンピュータ・システム(500)は、他のエンティティと通信することができる。このような通信は、片-方向性、受信専用(例えば、放送TV)、片-方向性 送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は、双-方向性、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用するその他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0098】
[0107] 前述のヒューマン・インターフェース・デバイス、人間がアクセス可能な記憶デバイス、及びネットワーク・インターフェースは、コンピュータ・システム(500)のコア(540)に取り付けることが可能である。
【0099】
[0108] コア(540)は、1つ以上の中央処理ユニット(CPU)(541)、グラフィックス処理ユニット(GPU)(542)、フィールド・プログラマブル・ゲート・エリア(FPGA)(543)の形式における特殊なプログラマブル処理ユニット、特定のタスクのためのハードウェア・アクセラレータ(544)などを含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(545)、ランダム・アクセス・メモリ(RAM)(546)、内部大容量ストレージ、例えば内部のユーザー・アクセス不能なハード・ドライブ、SSD、及び類似のもの(547)と共に、システム・バス(548)を介して接続されてもよい。幾つかのコンピュータ・システムでは、システム・バス(548)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能であるとすることが可能である。周辺デバイスは、コアのシステム・バス(548)に直接的に或いは周辺バス(549)を介して取り付けることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0100】
[0109] CPU(541)、GPU(542)、FPGA(543)、及びアクセラレータ(544)は、組み合わされて、上述のコンピュータ・コードを構築することが可能な特定の命令を実行することが可能である。そのコンピュータ・コードは、ROM(545)又はRAM(546)に記憶することが可能である。また、一時的なデータはRAM(546)に記憶することが可能である一方、永続的なデータは、例えば内部大容量ストレージ(547)に記憶することが可能である。1つ以上のCPU(541)、GPU(542)、大容量ストレージ(547)、ROM(545)、RAM(546)などと密接に関連付けることが可能なキャッシュ・メモリを使用することによって、任意のメモリ・デバイスに対する高速な記憶及び検索を可能にすることができる。
【0101】
[0110] コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータ・コードをそこに有することが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、或いはそれらは、コンピュータ・ソフトウェア分野の当業者に周知で利用可能な種類のものであるとすることが可能である。
【0102】
[0111] 限定ではなく一例として、アーキテクチャ(500)、具体的にはコア(540)を有するコンピュータ・システムは、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)に由来する機能を提供することができる。そのようなコンピュータ読み取り可能な媒体は、コア内部大容量ストレージ(547)又はROM(545)のような非一時的な性質のコア(540)の特定のストレージと同様に、上述したようなユーザー・アクセス可能な大容量ストレージに関連する媒体であるとすることが可能である。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(540)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、コア(540)、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)が、RAM(546)に記憶されたデータ構造を定め、そのようなデータ構造をソフトウェアによって定められたプロセスに従って修正することを含む、本願で説明される特定のプロセス又は特定のプロセスの特定の一部分を実行することを引き起こすことが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(544))内に配線されたロジック又はその他の方法で組み込まれたものに由来する機能を提供することが可能であり、回路は、本願で説明される特定のプロセス又は特定のプロセスの特定の一部分を実行するために、ソフトウェアの代わりに又はソフトウェアと共に動作することが可能である。ソフトウェアに対する言及は、ロジックを含むことが可能であり、必要に応じてその逆も可能である。コンピュータ読み取り可能な媒体に対する参照は、実行用のソフトウェアを記憶する回路(例えば、集積回路(IC))、実行用のロジックを具現化する回路、又は適切な場合にはそれら両方を含むことが可能である。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0103】
[0112] 本開示は、幾つかの例示的な実施形態を説明しているが、本開示の範囲内に該当する変更、置換、及び種々の代替的な均等物が存在する。従って、本願で明示的には図示も説明もされていないが、本開示の原理を具現化し、従って本願の精神及び範囲内にある多くのシステム及び方法を、当業者は案出することが可能であろうということが、認められるであろう。
【0104】
[0113] 付記
(付記1)
セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むメディア・プレゼンテーション記述(MPD)ファイルを受信するステップであって、前記エッセンシャル・プロパティ記述子は、セッション・ベース記述(SBD)ファイルを指定するものであり、且つ前記メディア・データを受信するために使用されるユニフォーム・リソース・ロケータ(URL)のパートに関するキーのセットを含むものである、ステップ;
前記キーのセットの各々に関する個々の値を、前記個々の値が前記SBDファイルに含まれるか否かに基づいて決定するステップ;及び
前記キーのセットと決定された値に基づいて前記URLを修正するステップ;
を含む、メディア・データを受信する方法。
【0105】
(付記2)
付記1に記載の方法において、前記URLの前記パートは、前記URLのホスト・パート、ポート・パート、パス・パート、及びフラグメント・パートのうちの1つである、方法。
【0106】
(付記3)
付記1に記載の方法において、前記キーのセットは、(i)URLホスト・キーのセット、(ii)URLポート・キーのセット、(iii)URLパス・キーのセット、及び(iv)URLフラグメント・キーのセットのうちの1つである、方法。
【0107】
(付記4)
付記1に記載の方法において、前記決定するステップは:
前記キーのセットのうちの1つに関する値が、前記SBDファイルに含まれるか否かを決定するステップ;
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれることに基づいて、前記キーのセットのうちの1つに関する前記SBDに含まれる値を決定するステップ;及び
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれないことに基づいて、前記キーのセットのうちの1つに関する値はデフォルト値であると決定するステップであって、前記デフォルト値は前記エッセンシャル・プロパティ記述子に含まれる、ステップ;
を含む、方法。
【0108】
(付記5)
付記1に記載の方法において、前記キーのセットは、前記エッセンシャル・プロパティ記述子に含まれるテンプレートによって示され、前記修正するステップは:
決定された値に基づいて、前記URLのパートに対応するテンプレートを処理するステップ;及び
処理されたテンプレートに基づいて前記URLを修正するステップ;
を含む、方法。
【0109】
(付記6)
付記5に記載の方法において、前記URLのパートはフラグメント・パートであることに基づいて、前記テンプレートはフラグメント・テンプレートである、方法。
【0110】
(付記7)
付記1に記載の方法において、前記キーのセットは、前記URLのパートに含まれるものであり、且つ前記エッセンシャル・プロパティ記述子に含まれるキー要素であって前記URLのパートに対応するキー要素によって示されるものであり、前記修正するステップは:
前記キーのセットの各々に関し、前記URLのパートの個々のキーのうちの最初に出現したものを、決定された対応する値で置換するステップ;
を含む、方法。
【0111】
(付記8)
付記1に記載の方法において、前記キー要素は、URLホスト・キー要素、URLポート・キー要素、URLパス・キー要素、及びURLフラグメント・キー要素のうちの1つである、方法。
【0112】
(付記9)
付記1に記載の方法において、前記URLのパートは、前記URLの複数のパートのうちの1つであり、前記エッセンシャル・プロパティ記述子は、前記URLの全てのパートの完全一致が要求されるかどうかを示す第1フラグを含み、前記方法は:
前記URLの少なくとも1つのパートは修正されないこと、及び前記第1フラグは、前記URLの全てのパートの完全一致が要求されることを示していること、に基づいて前記URLは修正される対象ではないと決定するステップ;及び
前記URLの少なくとも1つのパートは修正されること、及び前記第1フラグは、前記URLの全てのパートの完全一致は要求されないことを示していること、に基づいて前記URLは修正される対象であると決定するステップ;
を更に含む方法。
【0113】
(付記10)
付記1に記載の方法において、前記エッセンシャル・プロパティ記述子は、前記URLのパートに関する全てのキーの完全一致が要求されるかどうかを示す第2フラグを含み、前記方法は:
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれないこと、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致が要求されることを示していること、に基づいて前記URLのパートは修正される対象ではないと決定するステップ;及び
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれること、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致は要求されないことを示していること、に基づいて前記URLのパートは修正される対象であると決定するステップ;
を更に含む方法。
【0114】
(付記11)
メディア・データを受信する装置であって、前記装置に含まれる処理回路は:
セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むメディア・プレゼンテーション記述(MPD)ファイルを受信するように構成されており、前記エッセンシャル・プロパティ記述子は、セッション・ベース記述(SBD)ファイルを指定するものであり、且つ前記メディア・データを受信するために使用されるユニフォーム・リソース・ロケータ(URL)のパートに関するキーのセットを含むものであり;
前記処理回路は、前記キーのセットの各々に関する個々の値を、前記個々の値が前記SBDファイルに含まれるか否かに基づいて決定し;及び
前記キーのセットと決定された値に基づいて前記URLを修正する;
ように構成されている、装置。
【0115】
(付記12)
付記11に記載の装置において、前記URLの前記パートは、前記URLのホスト・パート、ポート・パート、パス・パート、及びフラグメント・パートのうちの1つであり、前記キーのセットは、(i)URLホスト・キーのセット、(ii)URLポート・キーのセット、(iii)URLパス・キーのセット、及び(iv)URLフラグメント・キーのセットのうちの1つである、方法。
【0116】
(付記13)
付記11に記載の装置において、前記処理回路は:
前記キーのセットのうちの1つに関する値が、前記SBDファイルに含まれるか否かを決定し;
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれることに基づいて、前記キーのセットのうちの1つに関する前記SBDに含まれる値を決定し;及び
前記キーのセットのうちの1つに関する値が前記SBDファイルに含まれないことに基づいて、前記キーのセットのうちの1つに関する値はデフォルト値であると決定するように更に構成されており、前記デフォルト値は前記エッセンシャル・プロパティ記述子に含まれる、装置。
【0117】
(付記14)
付記11に記載の装置において、前記キーのセットは、前記エッセンシャル・プロパティ記述子に含まれるテンプレートによって示され、前記処理回路は:
決定された値に基づいて、前記URLのパートに対応するテンプレートを処理し;及び
処理されたテンプレートに基づいて前記URLを修正する;
ように更に構成されている、装置。
【0118】
(付記15)
付記14に記載の装置において、前記URLのパートはフラグメント・パートであることに基づいて、前記テンプレートはフラグメント・テンプレートである、装置。
【0119】
(付記16)
付記11に記載の装置において、前記キーのセットは、前記URLのパートに含まれるものであり、且つ前記エッセンシャル・プロパティ記述子に含まれるキー要素であって前記URLのパートに対応するキー要素によって示されるものであり、前記処理回路は:
前記キーのセットの各々に関し、前記URLのパートの個々のキーのうちの最初に出現したものを、決定された対応する値で置換する;
ように更に構成されている、装置。
【0120】
(付記17)
付記11に記載の装置において、前記キー要素は、URLホスト・キー要素、URLポート・キー要素、URLパス・キー要素、及びURLフラグメント・キー要素のうちの1つである、装置。
【0121】
(付記18)
付記11に記載の装置において、前記URLのパートは、前記URLの複数のパートのうちの1つであり、前記エッセンシャル・プロパティ記述子は、前記URLの全てのパートの完全一致が要求されるかどうかを示す第1フラグを含み、前記処理回路は:
前記URLの少なくとも1つのパートは修正されないこと、及び前記第1フラグは、前記URLの全てのパートの完全一致が要求されることを示していること、に基づいて前記URLは修正される対象ではないと決定し;及び
前記URLの少なくとも1つのパートは修正されること、及び前記第1フラグは、前記URLの全てのパートの完全一致は要求されないことを示していること、に基づいて前記URLは修正される対象であると決定する;
ように更に構成されている、装置。
【0122】
(付記19)
付記11に記載の装置において、前記エッセンシャル・プロパティ記述子は、前記URLのパートに関する全てのキーの完全一致が要求されるかどうかを示す第2フラグを含み、前記処理回路は:
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれないこと、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致が要求されることを示していること、に基づいて前記URLのパートは修正される対象ではないと決定し;及び
前記URLのパートに関する少なくとも1つのキーは前記SBDファイルに含まれること、及び前記第2フラグは、前記URLのパートに関する全てのキーの完全一致は要求されないことを示していること、に基づいて前記URLのパートは修正される対象であると決定する;
ように更に構成されている、装置。
【0123】
(付記20)
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、メディア・データを受信するためにコンピュータにより実行されると、前記コンピュータに:
セッション・ベースのDASH(ハイパーテキスト転送プロトコルによる動的適応ストリーミング)に関するエッセンシャル・プロパティ記述子を含むメディア・プレゼンテーション記述(MPD)ファイルを受信するステップであって、前記エッセンシャル・プロパティ記述子は、セッション・ベース記述(SBD)ファイルを指定するものであり、且つ前記メディア・データを受信するために使用されるユニフォーム・リソース・ロケータ(URL)のパートに関するキーのセットを含むものである、ステップ;
前記キーのセットの各々に関する個々の値を、前記個々の値が前記SBDファイルに含まれるか否かに基づいて決定するステップ;及び
前記キーのセットと決定された値に基づいて前記URLを修正するステップ;
を実行させる、記憶媒体。