(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-22
(54)【発明の名称】MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための方法、装置及びプログラム
(51)【国際特許分類】
H04N 21/435 20110101AFI20240415BHJP
H04N 21/462 20110101ALI20240415BHJP
【FI】
H04N21/435
H04N21/462
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023546508
(86)(22)【出願日】2022-09-20
(85)【翻訳文提出日】2023-08-01
(86)【国際出願番号】 US2022044080
(87)【国際公開番号】W WO2023044143
(87)【国際公開日】2023-03-23
(32)【優先日】2021-09-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA25
5C164MB13S
5C164MB44S
5C164UB10P
5C164UC21P
(57)【要約】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための方法および装置が提供され得る。本方法は、少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析するステップ、および少なくとも1つのURLに基づいてライブMPDを取得するステップであって、ライブMPDが1つまたは複数のライブメディアセグメントを含む、ステップを含み得る。本方法は、第1のタイミングモデルに基づいて1つまたは複数の広告メディアセグメントを第1のMSEソースバッファに付加するステップ、および第2のタイミングモデルに基づいて1つまたは複数のライブメディアセグメントを第1のバッファに付加することによって、1つまたは複数のライブメディアセグメントを1つまたは複数の広告メディアセグメントに連鎖するステップを含み得る。第1のタイミングモデルおよび第2のタイミングモデルに基づいて、1つまたは複数の広告メディアセグメントおよび1つまたは複数のライブメディアセグメントをディスパッチし得る。
【特許請求の範囲】
【請求項1】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための方法であって、前記方法は少なくとも1つのプロセッサによって実行され、
1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析するステップであって、前記1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含む、ステップと、
前記少なくとも1つのURLに基づいてライブMPDを取得するステップであって、前記ライブMPDが1つまたは複数のライブメディアセグメントを含む、ステップと、
第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを第1のメディアソース拡張(MSE)ソースバッファに付加するステップと、
第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加することによって、前記1つまたは複数のライブメディアセグメントを前記1つまたは複数の広告メディアセグメントに連鎖するステップであって、前記第2のタイミングモデルが、少なくとも前記1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートする、ステップと、
前記第1のタイミングモデルおよび前記第2のタイミングモデルに基づいて、前記1つまたは複数の広告メディアセグメントおよび前記1つまたは複数のライブメディアセグメントをディスパッチするステップと
を含む、方法。
【請求項2】
前記第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記少なくとも1つの取得されたMPDに基づいて前記第1のMSEソースバッファを第1の最大持続時間まで拡張するステップと、
前記1つまたは複数の広告メディアセグメントに関連付けられた第1のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファのタイムスタンプオフセットを設定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記1つまたは複数のライブメディアセグメントに基づいて前記第1のMSEソースバッファを第2の最大持続時間まで拡張するステップと、
前記1つまたは複数のライブメディアセグメントに関連付けられた第2のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファの前記タイムスタンプオフセットをリセットするステップと、
前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを前記第1のMSEソースバッファに付加するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記第2のプレゼンテーション時間オフセットが、前記1つまたは複数のライブメディアセグメントに関連付けられた推定最先プレゼンテーション時間および前記1つまたは複数のライブメディアセグメントに関連付けられた最大セグメント持続時間に基づく、請求項3に記載の方法。
【請求項5】
前記少なくとも1つの取得されたMPDおよび前記ライブMPDに関連付けられた1つまたは複数のコードを取得するステップをさらに含む、請求項1に記載の方法。
【請求項6】
再生されている前記1つまたは複数の広告メディアセグメントの最後のフレームに基づいて、前記第1のMSEソースバッファに付加された前記1つまたは複数のライブメディアセグメントの開始にシークするステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記方法が、
暗号化されている前記1つまたは複数のライブメディアセグメントに基づいて、ライセンスサーバから1つまたは複数のライセンスキーを取得するステップと、
前記1つまたは複数のライセンスキーを第2のバッファに付加するステップと
をさらに含む、請求項1に記載の方法。
【請求項8】
第1の広告メディアセグメントが1回再生されるように構成されていることに基づいて、前記第1のMSEソースバッファから前記1つまたは複数の広告メディアセグメントの中の前記第1の広告メディアセグメントをパージするステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記1つまたは複数の広告メディアセグメントの中の第1の広告メディアセグメントを、前記第1の広告メディアセグメントが複数回再生されるように構成されていることに基づいて第3のバッファに付加するステップと、
前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを、前記第1の広告メディアセグメントが前記第1のライブメディアセグメント中のミッドロール広告であることに基づいて、前記第1の広告メディアセグメントの前に付加するステップと
をさらに含む、請求項1に記載の方法。
【請求項10】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための装置であって、前記装置は、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサであって、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析させるように構成された構文解析コードであって、前記1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含む、構文解析コードと、
前記少なくとも1つのプロセッサに、前記少なくとも1つのURLに基づいてライブMPDを取得させるように構成された第1の取得コードであって、前記ライブMPDが1つまたは複数のライブメディアセグメントを含む、第1の取得コードと、
前記少なくとも1つのプロセッサに、第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを第1のメディアソース拡張(MSE)ソースバッファに付加させるように構成された第1の付加コードと、
第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加することによって、前記少なくとも1つのプロセッサに、前記1つまたは複数のライブメディアセグメントを前記1つまたは複数の広告メディアセグメントに連鎖させるように構成された第2の付加コードであって、前記第2のタイミングモデルが、少なくとも前記1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートする、第2の付加コードと、
前記第1のタイミングモデルおよび前記第2のタイミングモデルに基づいて、前記少なくとも1つのプロセッサに、前記1つまたは複数の広告メディアセグメントおよび前記1つまたは複数のライブメディアセグメントをディスパッチさせるように構成されたディスパッチコードと
を含む、少なくとも1つのプロセッサと
を含む、装置。
【請求項11】
前記第1の付加コードが、
前記少なくとも1つの取得されたMPDに基づいて、前記少なくとも1つのプロセッサに、前記第1のMSEソースバッファを第1の最大持続時間まで拡張させるように構成された第1の拡張コードと、
前記少なくとも1つのプロセッサに、前記1つまたは複数の広告メディアセグメントに関連付けられた第1のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファのタイムスタンプオフセットを設定させるように構成された第1の設定コードと
を含む、請求項10に記載の装置。
【請求項12】
前記第2の付加コードが、
前記少なくとも1つのプロセッサに、前記1つまたは複数のライブメディアセグメントに基づいて前記第1のMSEソースバッファを第2の最大持続時間まで拡張させるように構成された第2の拡張コードと、
前記少なくとも1つのプロセッサに、前記1つまたは複数のライブメディアセグメントに関連付けられた第2のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファの前記タイムスタンプオフセットをリセットさせるように構成されたリセットコードと、
前記少なくとも1つのプロセッサに、前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを前記第1のMSEソースバッファに付加させるように構成された第3の付加コードと
を含む、請求項11に記載の装置。
【請求項13】
前記第2のプレゼンテーション時間オフセットが、前記1つまたは複数のライブメディアセグメントに関連付けられた推定最先プレゼンテーション時間および前記1つまたは複数のライブメディアセグメントに関連付けられた最大セグメント持続時間に基づく、請求項12に記載の装置。
【請求項14】
前記プログラムコードが、
前記少なくとも1つのプロセッサに、再生されている前記1つまたは複数の広告メディアセグメントの最後のフレームに基づいて、前記第1のMSEソースバッファに付加された前記1つまたは複数のライブメディアセグメントの開始をシークさせるように構成された第1のシークコード
をさらに含む、請求項10に記載の装置。
【請求項15】
前記プログラムコードが、
前記少なくとも1つのプロセッサに、暗号化されている前記1つまたは複数のライブメディアセグメントに基づいてライセンスサーバから1つまたは複数のライセンスキーを取得させるように構成された取得コードと、
前記少なくとも1つのプロセッサに、第2のバッファの前記1つまたは複数のライセンスキーを付加させるように構成された第4の付加コードと
をさらに含む、請求項10に記載の装置。
【請求項16】
前記プログラムコードが、
前記少なくとも1つのプロセッサに、第1の広告メディアセグメントが1回再生されるように構成されていることに基づいて、前記第1のMSEソースバッファから前記1つまたは複数の広告メディアセグメントの中の前記第1の広告メディアセグメントをパージさせるように構成された第1のパージコード
をさらに含む、請求項10に記載の装置。
【請求項17】
前記プログラムコードが、
前記少なくとも1つのプロセッサに、前記第1の広告メディアセグメントが複数回再生されるように構成されていることに基づいて、前記1つまたは複数の広告メディアセグメントの中の第1の広告メディアセグメントを第3のバッファに付加させるように構成された第5の付加コードと、
前記少なくとも1つのプロセッサに、前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを、前記第1の広告メディアセグメントが前記第1のライブメディアセグメント中のミッドロール広告であることに基づいて、前記第1の広告メディアセグメントの前に付加させるように構成された第6の付加コードと
をさらに含む、請求項10に記載の装置。
【請求項18】
命令を記憶する非一時的コンピュータ可読メディアであって、前記命令は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するためのデバイスの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析させ、前記1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含み、
前記少なくとも1つのURLに基づいてライブMPDを取得させ、前記ライブMPDが1つまたは複数のライブメディアセグメントを含み、
第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを第1のメディアソース拡張(MSE)ソースバッファに付加させ、
第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加することによって、前記1つまたは複数のライブメディアセグメントを前記1つまたは複数の広告メディアセグメントに連鎖させ、前記第2のタイミングモデルが、少なくとも前記1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートし、
前記第1のタイミングモデルおよび前記第2のタイミングモデルに基づいて、前記1つまたは複数の広告メディアセグメントおよび前記1つまたは複数のライブメディアセグメントをディスパッチさせる、
1つまたは複数の命令を含む、非一時的コンピュータ可読メディア。
【請求項19】
前記第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記少なくとも1つの取得されたMPDに基づいて前記第1のMSEソースバッファを第1の最大持続時間まで拡張するステップと、
前記1つまたは複数の広告メディアセグメントに関連付けられた第1のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファのタイムスタンプオフセットを設定するステップと
を含む、請求項18に記載の非一時的コンピュータ可読メディア。
【請求項20】
前記第1のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記1つまたは複数のライブメディアセグメントに基づいて前記第1のMSEソースバッファを第2の最大持続時間まで拡張するステップと、
前記1つまたは複数のライブメディアセグメントに関連付けられた第2のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファの前記タイムスタンプオフセットをリセットするステップと、
前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを前記第1のMSEソースバッファに付加するステップと
を含む、請求項19に記載の非一時的コンピュータ可読メディア。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月20日に出願された米国仮出願第63/246,233号、および2022年9月19日に出願された米国出願第17/947,801号の優先権を主張し、これらの内容の全体は、参照により本明細書に明示的に組み込まれる。
【0002】
本開示の実施形態は、ストリーミングメディアコンテンツに関し、より詳細には、Moving Picture Experts Group(MPEG)dynamic adaptive streaming over hypertext transfer protocol(DASH)によるストリーミングメディア広告およびライブコンテンツに関する。
【背景技術】
【0003】
MPEG DASHは、IPネットワークを介してメディアコンテンツをストリーミングするための規格を提供する。MPEG DASHでは、メディアタイムライン関連イベントをクライアントに配信するために、メディアプレゼンテーション記述(MPD)およびイベントが、使用される。ISO/IEC 23009-1 DASH規格は、マルチレートのコンテンツのストリーミングを可能にする。DASH規格は、期間が単一のタイムラインにおける互いの連続である単一の線形タイムラインを提供する。ISO/IEC 23009-1はまた、MPD連鎖、すなわち、プレロール広告挿入に使用することができるMPDで再生する次のMPDのURLをシグナリングするためのツールを提供する。
【0004】
MPEG DASHは、IPネットワークを介してマルチメディアコンテンツをストリーミングするための規格を提供する。規格は、メディアコンテンツの線形再生に対処するが、規格は、例えば、互いに独立した異なるタイムラインに関連付けられたメディアセグメントが存在する非線形動作の状況に対処することができない。MPD連鎖およびプレロール広告挿入を使用して、上述の欠点を克服することができる。しかしながら、DASHプレーヤがW3Cメディアソース拡張を使用するとき、単一のMSEソースバッファを用いてそのような非線形再生に対処することは非常に困難であるため、MPD連鎖およびプレロール広告挿入さえも失敗する。さらに、MPD連鎖およびプレロール広告挿入は、MPD連鎖またはプレロール要素を使用する前に広告が再生されると予想されるときの、保護されたライブコンテンツの再生のためのW3C暗号化メディア拡張のときには使用できない。
【0005】
したがって、MPD連鎖を使用して2つ以上の非線形ソースから線形メディアソース拡張(MSE)バッファタイムラインを構築するための方法が必要とされる。さらに、MPD連鎖を使用して保護されたライブコンテンツの再生のためのW3C暗号化メディア拡張を処理するための方法も必要とされる。
【発明の概要】
【課題を解決するための手段】
【0006】
本開示は1つまたは複数の技術的問題に対処する。本開示は、MPD連鎖を使用して2つ以上の非線形ソースから線形メディアソース拡張(MSE)ソースバッファタイムラインを構築するための方法、プロセス、装置、および非一時的コンピュータ可読メディアを提供する。加えて、本開示は、単一のMSEソースバッファを使用して非線形再生を実施するための方法、プロセス、装置、および非一時的システムを提供する。さらに、本開示は、広告および暗号化ライブコンテンツの再生のための単一の暗号化メディア拡張(EME)インターフェースの使用も可能にする。
【0007】
本開示の実施形態は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための装置を提供することができる。本方法は、少なくとも1つのプロセッサによって実行されてもよく、1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析するステップであって、1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含む、ステップ、少なくとも1つのURLに基づいてライブMPDを取得するステップであって、ライブMPDが1つまたは複数のライブメディアセグメントを含む、ステップ、第1のタイミングモデルに基づいて1つまたは複数の広告メディアセグメントを第1のMSEソースバッファに付加するステップと、第2のタイミングモデルに基づいて1つまたは複数のライブメディアセグメントを第1のMSEソースバッファに付加することによって、1つまたは複数のライブメディアセグメントを1つまたは複数の広告メディアセグメントに連鎖するステップであって、第2のタイミングモデルが、少なくとも1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートする、ステップ、ならびに第1のタイミングモデルおよび第2のタイミングモデルに基づいて、1つまたは複数の広告メディアセグメントおよび1つまたは複数のライブメディアセグメントをディスパッチするステップを含むことができる。
【0008】
本開示の実施形態は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための装置を提供することができる。装置は、コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、コンピュータプログラムコードにアクセスし、コンピュータプログラムコードによって命令されるように動作するよう構成された少なくとも1つのプロセッサとを含むことができる。プログラムコードは、少なくとも1つのプロセッサに、1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析させるように構成された構文解析コードであって、1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含む、構文解析コード、少なくとも1つのプロセッサに、少なくとも1つのURLに基づいてライブMPDを取得させるように構成された第1の取得コードであって、ライブMPDが1つまたは複数のライブメディアセグメントを含む、第1の取得コード、少なくとも1つのプロセッサに、第1のタイミングモデルに基づいて1つまたは複数の広告メディアセグメントを第1のMSEソースバッファに付加させるように構成された第1の付加コード、第2のタイミングモデルに基づいて1つまたは複数のライブメディアセグメントを第1のMSEソースバッファに付加することによって、少なくとも1つのプロセッサに、1つまたは複数のライブメディアセグメントを1つまたは複数の広告メディアセグメントに連鎖させるように構成された第2の付加コードであって、第2のタイミングモデルが、少なくとも1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートする、第2の付加コード、ならびに第1のタイミングモデルおよび第2のタイミングモデルに基づいて、少なくとも1つのプロセッサに、1つまたは複数の広告メディアセグメントおよび1つまたは複数のライブメディアセグメントをディスパッチさせるように構成されたディスパッチコードを含むことができる。
【0009】
本開示の実施形態は、命令を記憶する非一時的コンピュータ可読メディアを提供することができる。命令は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するためのデバイスの1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析させ、1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含み、少なくとも1つのURLに基づいてライブMPDを取得させ、ライブMPDが1つまたは複数のライブメディアセグメントを含み、第1のタイミングモデルに基づいて1つまたは複数の広告メディアセグメントを第1のMSEソースバッファに付加させ、第2のタイミングモデルに基づいて1つまたは複数のライブメディアセグメントを第1のMSEソースバッファに付加することによって、1つまたは複数のライブメディアセグメントを1つまたは複数の広告メディアセグメントに連鎖させ、第2のタイミングモデルが、少なくとも1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートし、ならびに第1のタイミングモデルおよび第2のタイミングモデルに基づいて、1つまたは複数の広告メディアセグメントおよび1つまたは複数のライブメディアセグメントをディスパッチさせる1つまたは複数の命令を含むことができる。
[1]本開示の主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0010】
【
図1】実施形態による、通信システムの簡略図である。
【
図2】実施形態による、ストリーミング環境における構成要素の配置の例示的な図である。
【
図3】実施形態による、DASH処理モデルの簡略ブロック図である。
【
図4】実施形態による、広告MPDとライブMPDとの間のメディアプレゼンテーション記述(MPD)連鎖の簡略図である。
【
図5】
図5A及び5Bは、実施形態による、メディアソース拡張(MSE)バッファの簡略図である。
【
図6】実施形態による、MPD連鎖を使用して2つ以上の非線形ソースから線形MSEソースバッファを構築するための例示的なフローチャート図である。
【
図7】実施形態による、コンピュータシステムの簡略図である。
【発明を実施するための形態】
【0011】
以下で述べている提案された特徴は別々に使用されてもよいし、または任意の順序で組み合わされてもよい。さらに、実施形態は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読メディアに記憶されたプログラムを実行する。
【0012】
図1は、本開示の一実施形態による通信システム100の簡略化されたブロック図を例示する。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端末102および103を含み得る。データの単方向伝送のために、第1の端末103は、ネットワーク105を介して他方の端末102に伝送するためにローカル位置でビデオデータをコーディングし得る。第2の端末102は、ネットワーク105から他方の端末のコーディング済みビデオデータを受信し、コーディング済みデータをデコードし、復元されたビデオデータを表示し得る。単方向データ伝送は、メディアサービング用途などで一般的であり得る。
【0013】
図1は、例えばビデオ会議中に発生する可能性があるコーディング済みビデオの双方向伝送をサポートするために提供される端末101および104の第2のペアを例示する。データの双方向伝送のために、各端末101および104は、ネットワーク105を介して他方の端末に伝送するためにローカル位置でキャプチャしたビデオデータをコーディングし得る。各端末101および104もまた、他方の端末によって伝送されたコーディング済みビデオデータを受信し、コーディング済みデータをデコーディングし、さらに復元されたビデオデータをローカルの表示デバイスに表示し得る。
【0014】
図1では、端末101、102、103および104は、サーバ、パーソナルコンピュータおよびスマートフォンとして例示され得るが、本開示の原理はそのように限定されるものではない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器を伴う用途が考えられる。ネットワーク105は、例えば有線および/または無線通信ネットワークを含む、端末101、102、103および104の間で、コーディング済みビデオデータを伝達する、任意の数のネットワークを表す。通信ネットワーク105は、回路交換および/またはパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本考察の目的のために、ネットワーク105のアーキテクチャおよびトポロジは、本明細書で以下に説明されない限り、本開示の動作にとって重要ではない場合がある。
【0015】
図2は、一例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を例示する。実施形態は、例えば、ビデオ会議、デジタルTVを含み、さらにCD、DVD、およびメモリスティックなどを含むデジタルメディアへの圧縮ビデオの記憶などを含む、他のビデオ対応用途に適用可能とし得る。
【0016】
ストリーミングシステムは、例えば非圧縮ビデオサンプルストリーム213を作成する、例えばデジタルカメラなどのビデオソース201を含むことができるキャプチャサブシステム203を含み得る。そのサンプルストリーム213は、エンコード済みビデオビットストリームと比較したときに高いデータボリュームとして強調されてもよく、ビデオソース201に結合されたエンコーダ202によって処理することができる。エンコーダ202は、以下で詳細に説明するように、実施形態の態様を可能にするか、または実施するために、ハードウェア、ソフトウェア、またはそれらの組合せを含み得る。エンコード済みビデオビットストリーム204は、サンプルストリームと比較してより低いデータボリュームとして強調されてもよく、将来の使用のためにストリーミングサーバ205に記憶することができる。1つまたは複数のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスして、エンコード済みビデオビットストリーム204のコピーであってもよいエンコード済みビデオビットストリーム208および206を取得することができる。クライアント212は、エンコード済みビデオビットストリームの着信コピー208をデコードし、ディスプレイ209または他のレンダリングデバイス上にレンダリングすることができる送出ビデオサンプルストリーム210を作成するビデオデコーダ211を含むことができる。一部のストリーミングシステムでは、エンコード済みビデオビットストリーム204、206および208は、特定のビデオコーディング/圧縮規格に従ってエンコードすることができる。これらの規格の例は、上記で言及されており、本明細書でさらに説明される。
【0017】
図3は、DASHおよびCMAFイベントを処理するためのサンプルクライアントアーキテクチャなどのサンプルDASH処理モデル300を示している。DASH処理モデル300では、クライアントのメディアセグメントの要求(例えば、広告メディアセグメントおよびライブメディアセグメント)は、マニフェスト303の記述されたアドレスに基づき得る。マニフェスト303はまた、クライアントがメタデータトラックのセグメントにアクセスし、それらを構文解析し、さらに、それらをアプリケーション301に送信し得るメタデータトラックを記述する。
【0018】
マニフェスト303は、MPDイベントまたはイベントを含み、インバンドイベントおよび「moof」パーサ306は、MPDイベントセグメントまたはイベントセグメントを構文解析し、さらにイベントセグメントをイベントおよびメタデータバッファ330に付加し得る。インバンドイベントおよび「moof」パーサ306はまた、メディアセグメントをフェッチして、メディアバッファ340に付加し得る。イベントおよびメタデータバッファ330は、イベントおよびメタデータ情報を、イベントおよびメタデータシンクロナイザおよびディスパッチャ335に送信し得る。イベントおよびメタデータシンクロナイザおよびディスパッチャ335は、特定のイベントをDASHプレーヤ制御、選択、およびヒューリスティックロジック302にディスパッチし、アプリケーション関連のイベントおよびメタデータトラックをアプリケーション301にディスパッチし得る。
【0019】
いくつかの実施形態によれば、MSEは、ファイルフォーマットパーサ350、メディアバッファ340、およびメディアデコーダ345を含むパイプラインを含み得る。MSE 320は、メディアセグメントの論理バッファであり、メディアセグメントは、メディアセグメントの提示時間に基づいて、追跡および順序付けされ得る。メディアセグメントは、広告MPDに関連付けられた広告メディアセグメントおよびライブMPDに関連付けられたライブメディアセグメントを含み得るが、これらに限定されない。各メディアセグメントは、メディアセグメントのタイムスタンプオフセットに基づいて、メディアバッファ340に追加または付加され、タイムスタンプオフセットは、メディアバッファ340のメディアセグメントを順序付けるために使用され得る。
【0020】
本出願の実施形態は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築することを対象とし得、非線形メディアソースは広告MPDおよびライブMPDであり得るので、ファイルフォーマットパーサ350は、ライブMPDに含まれるライブメディアセグメントによって使用される異なるメディアおよび/またはコーデックを処理するために使用され得る。いくつかの実施形態では、ファイルフォーマットパーサは、ライブメディアセグメントのコーデック、プロファイル、および/またはレベルに基づいて変更タイプを発行し得る。
【0021】
メディアセグメントが、メディアバッファ340に存在する限り、イベントおよびメタデータバッファ330は、対応するイベントセグメントおよびメタデータを維持する。サンプルDASH処理モデル300は、インバンドイベントおよびMPDイベントに関連付けられたメタデータを追跡するための時限メタデータ追跡パーサ325を含み得る。
図3によれば、MSE 320は、ファイルフォーマットパーサ350、メディアバッファ340、およびメディアデコーダ345のみを含む。イベントおよびメタデータバッファ330、ならびにイベントおよびメタデータシンクロナイザおよびディスパッチャ335は、MSE 320にとってネイティブではなく、MSE 320が、イベントをネイティブに処理することを阻止し、それらをアプリケーションに送信する。
【0022】
図4は、広告MPDとライブMPDの間のMPD連鎖を例示する簡略
図400である。
【0023】
図4に示すように、広告MPD 410は、少なくとも1つのライブMPD 420へのアドレスを含む1つまたは複数のユニバーサルリソースロケータ(URL)を含むことができる。実施形態の一態様によれば、広告MPD 410とライブMPD 420の間のURLリンクはMPD連鎖であってもよい。各広告MPD 410は、1つまたは複数の期間Pa1、Pa2などを含み得る。同様に、各ラインMPD 420は、1つまたは複数の期間P1、P2などを含み得る。本開示の一態様によれば、メディアプレーヤは、ライブMPD 420の前に広告MPD 410を再生し得る。
【0024】
本開示の一態様によれば、MPD連鎖を使用してメディア再生のために2つ以上の非線形メディアソースから単一のメディアソース拡張(MSE)バッファを設定するために、DASHプレーヤのために1つまたは複数のタイミングモデルが提供されてもよい。MSEバッファは、必要なタイムシフトバッファ深度をサポートするように設定され得る。広告メディアとライブメディアの両方を異なるコード、プロファイル、および/またはレベルで再生するために、再初期化セグメントをMSEバッファに追加し得る。いくつかの実施形態では、DASHプレーヤが広告にシークバックすることを可能にするために、またはDASHプレーヤが真のライブタイムシフトバッファにシークすることを可能にするため広告メディアセグメントをライブメディアセグメントで置き換えることを可能にするために、タイムシフトバッファに広告メディアセグメントを維持し得る。
【0025】
ビデオデータから1つまたは複数のMPDを取得し得る。1つまたは複数のMPDは、1つまたは複数の広告メディアセグメントを生成および/または取得するために構文解析され得る。いくつかの実施形態では、1つまたは複数の広告メディアセグメントは、1つまたは複数のライブメディアセグメントに関連付けられた少なくとも1つのユニバーサルリソースロケータ(URL)を含み得る。広告メディアセグメント(「オンデマンドコンテンツ」とも呼ばれる)は、再生前に利用可能であり得る。広告メディアセグメントは、知られている持続時間を有さなくてもよいが、少なくとも最大持続時間-DMAXを有してもよい。1つまたは複数の広告メディアセグメントに関連付けられたプレゼンテーション時間オフセットは、タイムスケールTPを伴うPTOPとして知られ得る。
【0026】
ライブコンテンツは、1つまたは複数のライブMPDを含み得る。1つまたは複数のライブMPDは、1つまたは複数のライブメディアセグメントを含み得る。ライブコンテンツの開始時間およびライブコンテンツの現在の期間開始時間は知られていてもよい。1つまたは複数のライブメディアセグメントに関連付けられたプレゼンテーション時間オフセットは、タイムスケールTLを伴うPTOLとして知られ得る。そのセグメントの推定最先プレゼンテーション時間(EEPTL)でライブコンテンツを開始するためのセグメントアドレスは知られていない場合がある。1つまたは複数のライブメディアセグメントに関連付けられた最大セグメント持続時間はMSDとして知られていてもよく、ライブコンテンツの所望のタイムシフトバッファ深度はTSBLとして知られていてもよい。
【0027】
本開示の実施形態によれば、広告MPDはライブMPDに関する情報をまったく有さない可能性があり、したがって、MSEバッファを設定するために、DASHクライアントは、MSEバッファを設定する前にライブMPDをダウンロードする必要があり得る。
【0028】
上述の実施形態によれば、DASHプレーヤ(例えば、300)は、もう1つの広告MPDをダウンロードして、それを構文解析し得る。ファイルフォーマットパーサは、広告MPDで必要なコーデックを見つけ、および/または取得し得る。広告MPDからの広告メディアセグメント内のURLを使用して、ライブMPDをダウンロードし得、ライブメディアMPDのライブエッジおよび対応する期間を見つけ得る。ファイルフォーマットパーサは、ライブMPDで必要なコーデックを見つけ/取得し得る。MSEバッファは、広告MPDとライブMPD(または広告メディアセグメントとライブメディアセグメント)の両方のコーデック情報に基づいて設定され得る。広告メディアセグメントは、広告MPDからダウンロードされ、タイミングモデル、例えば
図5A~
図5Bのタイミングモデルを使用してMSEバッファに付加され得る。広告メディアセグメントの付加に続いて、ライブメディアセグメントは、タイミングモデル、例えば
図5A~
図5Bのタイミングモデルを使用してMSEバッファにダウンロードまたは付加されてもよい。
【0029】
図5A~
図5Bは、MPD連鎖を使用して広告メディアセグメントおよびライブメディアセグメントを処理するための例示的なメディアソースバッファ500およびメディアソースバッファ550を示す。
【0030】
図5Aに示すように、MSEアペンドウィンドウは、最大広告期間(例えば、D
MAX)以上のサイズで定義され得る。MSEアペンドウィンドウタイムスタンプオフセットは、広告セグメントを付加する間、TSO
P=-(PTO
P/T
P)として設定され得る。
【0031】
図5Bに示すように、MSEアペンドウィンドウは、DASHクライアントによってライブMPD時間シフトバッファ(TSB
L)を考慮してD
Liveにサイズ変更され得る。いくつかの実施形態では、D
Live=Max(TSB
L,D
MAX)以上である。MSEアペンドウィンドウタイムスタンプオフセットは、TSO
Lとしてリセットされてもよく、TSO
Lは、第1のライブセグメントを付加する前にMax(TSB
L,D
MAX)+EEPT
l+MSD-(PTO
L/T
L)に等しくてもよい。付加およびタイムスタンプオフセットに基づいて、広告メディアセグメント時間とライブメディアセグメント時間の間にMSEバッファ上でシークすることができる。ライブメディアセグメントの前に再生されている広告メディアセグメントの最後のフレームに基づいて、ライブメディアセグメントの開始をシークすることができる。広告メディアセグメントが1回再生されると予想される場合、広告メディアセグメント時間範囲はパージされてもよい。プレーヤがタイムシフトされたライブメディアセグメントをシークした後に広告メディアセグメントが再生され得る実施形態では、タイムシフトされたライブメディアセグメントのために第3の時間範囲を作成し得る。
【0032】
広告は1回再生され、取り除かれる
MSE設定:MSEが広告ビデオコーデックおよびプロファイルをサポートし得るかどうかをチェックし、MSEバッファを作成し、そしてMSEバッファアペンドウィンドウ持続時間はDMAXまで設定し得る。
【0033】
再生:MSEタイムスタンプオフィシャルは、TSO=-(PTOP/TP)に基づいて設定され得、第1の広告メディアセグメントを取得してMSEバッファに付加し得、広告MPDの広告メディアセグメントの各々はMSEバッファに付加されてもよい。各メディアセグメントがダウンロードされるのに続いて、MSEアペンドウィンドウは持続時間DLIVEまで拡張されてもよく、タイムスタンプオフセットはTSOL=Max(TSBL,DMAX)+EPT+MSD-(PTOL/TL)であってもよい。第1のライブメディアセグメントはMSEバッファに付加されてもよく、ライブMPDからの各ライブメディアセグメントも付加されてもよい。広告メディアセグメントの終了に到達したことに基づいて、ライブメディアセグメントの開始時間にシークする。
【0034】
タイムシフトバッファ:広告メディアセグメントの開始から終了までの範囲を除去し得る。
【0035】
広告は一旦再生されるが、ミッドロールに留まる
MSE設定:MSEが広告ビデオコーデックおよびプロファイルをサポートし得るかどうかをチェックし、MSEバッファを作成し、そしてMSEバッファアペンドウィンドウ持続時間はTSBMax=DMAX+upper estimate of TSBDLまで設定し得る。アペンドウィンドウの開始はゼロに設定され、アペンドウィンドウの終了はTSBMax+DLiveに設定され得る。いくつかの実施形態では、ライブプログラムの持続時間が知られていない場合、アペンドウィンドウ端部は大きな値または無限大であり得る。
【0036】
再生:MSEタイムスタンプオフセットは、TSO=TSBMax-DMAX-(PTOP/TP)に設定され得る。第1の広告メディアセグメントが取得されMSEバッファに付加され得、広告MPDの広告メディアセグメントの各々はMSEバッファに付加されてもよい。ライブメディアセグメントのコーデック、プロファイル、および/またはレベルに関して、変更タイプを発行し得る。タイムスタンプオフセットは、TSOL=Max(TSBL,DMAX)+EPT+MSD-(PTOL/TL)に設定され得る。第1のライブメディアセグメントはMSEバッファに付加されてもよく、ライブMPDからの各ライブメディアセグメントも付加されてもよい。広告メディアセグメントの終了に到達したことに基づいて、ライブメディアセグメントの開始時間にシークする。次いで、第1の広告メディアセグメントを再度取得し、MSEに付加し得る。
【0037】
タイムシフトバッファ管理:タイムシフトバッファのタイムスタンプオフセットは、TSO=TSBMax-DMax-(PTOP/TP)-(PTOL/TL)として設定され得る。再び再生されている広告メディアセグメントに基づいて、1つまたは複数の広告メディアセグメントを取得し、タイムシフトバッファに付加し得る。各広告メディアセグメントは、タイムシフトバッファに付加されてもよい。
【0038】
W3C暗号化メディア拡張(EME)インターフェース
W3C EMEインターフェースは、メディア再生における暗号化データの復号化に使用され得る。広告コンテンツは、通常、保護されない可能性がある。しかし、ライブコンテンツは保護されてもよい。ライブコンテンツが保護されているとき、プレーヤは、広告MPDをダウンロードし、その広告MPDのURLを使用してライブMPDをダウンロードする必要があり得る。ライブMPDの情報を使用して、プレーヤはEMEおよびMSEパイプラインを設定し得る。EMEパイプライン設定は、ライセンスサーバからライセンスキーを取得することを含み得る。その後、プレーヤは、広告MPDを使用して広告セグメントのダウンロードを開始し、それらをメディアパイプラインに付加し得る。
【0039】
いくつかの実施形態では、広告MPDはライブMPDに関する情報を有していない可能性があるため、MSEおよびEMEは順次設定されてもよい。プレーヤは、広告MPDをダウンロードしてもよい。広告MPDのURLを使用して、プレーヤはライブMPDをダウンロードして構文解析し得る。ライブMPDのパラメータが与えられると、プレーヤはMSEバッファおよびEMEバッファを設定し得る。その後、プレーヤは、後続の広告MPDをダウンロードし、対応するセグメントのダウンロードおよびそれらのメディアパイプラインへの付加を開始し得る。
【0040】
いくつかの実施形態では、広告MPDはライブMPDに関する情報を有してもよく、MSEおよびEMEは並列に設定されてもよい。プレーヤは、広告MPDをダウンロードし得、その後、広告MPDの構文解析に基づいて、プレーヤは、その期間を内部メモリに記憶し得る。広告MPDのURLを使用して、プレーヤはライブMPDをダウンロードして構文解析し、その期間を内部メモリに記憶し得る。広告およびライブMPDのパラメータが与えられると、プレーヤはMSEバッファおよびEMEバッファを設定し得る。次いで、広告期間からの広告セグメントをダウンロードし、メディアパイプラインに付加し得る。
【0041】
図6は、MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するためのプロセス600を例示する例示的なフローチャートを示す。
【0042】
動作610では、1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)が構文解析され得る。1つまたは複数の広告メディアセグメントは、少なくとも1つのユニバーサルリソースロケータ(URL)を含み得る。一例として、マニフェストパーサ303、インバンドイベント、およびmoofパーサ306は、取得されたMPDを構文解析し得る。動作は、少なくとも1つの取得されたMPDおよびライブMPDに関連付けられた1つまたは複数のコードを取得することを含み得る。
【0043】
動作615では、少なくとも1つのURLに基づいて、ライブMPDを取得し得、ライブMPDは1つまたは複数のライブメディアセグメントを含む。一例として、ライブMPD 420は、広告MPD 410のURLの構文解析に基づいて取得され得る。
【0044】
動作620では、1つまたは複数の広告メディアセグメントは、第1のタイミングモデルに基づいて第1のバッファに付加されてもよい。いくつかの実施形態では、第1のバッファは、少なくとも1つの取得されたMPDに基づいて第1の最大持続時間まで拡張され得る。一例として、MSEバッファはDMAXに拡張されてもよい。第1のバッファのタイムスタンプオフセットはまた、1つまたは複数の広告メディアセグメントに関連付けられた第1のプレゼンテーション時間オフセットに基づいて設定され得る。一例として、第1のプレゼンテーション時間オフセットは、TSO=TSBMax-DMAX-(PTOP/TP)を含み得る。いくつかの実施形態では、第1のプレゼンテーション時間オフセットは、TSO=-(PTOP/TP)を含み得る。
【0045】
動作625では、第2のタイミングモデルに基づいて第1のバッファに1つまたは複数のライブメディアセグメントを付加することにより、1つまたは複数のライブメディアセグメントは1つまたは複数の広告メディアセグメントに連鎖され得る。いくつかの実施形態では、ライブメディアセグメントは、各広告メディアセグメントが追加された後にのみ付加さ得る。第2のタイミングモデルに基づいて付加することは、1つまたは複数のライブメディアセグメントに基づいて第1のバッファを第2の最大持続時間まで拡張することを含み得る。1つまたは複数のライブメディアセグメントに関連付けられた第2のプレゼンテーション時間オフセットに基づく第1のバッファのタイムスタンプオフセットはリセットされ得る。一例として、MSEは、TSOL=Max(TSBL,DMAX)+EPT+MSD-(PTOL/TL)に拡張されてもよい。
【0046】
第1のライブメディアセグメントは、1つまたは複数のライブメディアセグメントの中の第1のバッファに付加され得る。実施形態によれば、第2のプレゼンテーション時間オフセットは、1つまたは複数のライブメディアセグメントに関連付けられた推定最先プレゼンテーション時間および1つまたは複数のライブメディアセグメントに関連付けられた最大セグメント持続時間に基づく。
【0047】
プレーヤは、再生されている1つまたは複数の広告メディアセグメントの最後のフレームに基づいて、第1のバッファに付加された1つまたは複数のライブメディアセグメントの開始にシークし得る。
【0048】
動作630では、第1のタイミングモデルおよび第2のタイミングモデルに基づいて、1つまたは複数の広告メディアセグメントおよび1つまたは複数のライブメディアセグメントをディスパッチし得る。いくつかの実施形態では、第1の広告メディアセグメントが1回再生されるように構成されていることに基づいて、1つまたは複数の広告メディアセグメントの中から第1の広告メディアセグメントを第1のバッファからパージし得る。他の実施形態では、1つまたは複数の広告メディアセグメントの中の第1の広告メディアセグメントは、第1の広告メディアセグメントが複数回再生されるように構成されていることに基づいて第3のバッファ(例えば、タイムスタンプバッファ)に付加されてもよく、1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントは、第1の広告メディアセグメントが第1のライブメディアセグメント中のミッドロール広告であることに基づいて第1の広告メディアセグメントの前に付加されてもよい。
【0049】
いくつかの実施形態では、暗号化されている1つまたは複数のライブメディアセグメントに基づいて、1つまたは複数のライセンスキーをライセンスサーバから取得し得、1つまたは複数のライセンスキーを第2のバッファに記憶および/または付加し得る。
【0050】
図6はプロセス600の例示的なブロックを示しているが、実装形態では、プロセス600は、
図6に示されるものに比べて、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。実施形態において、プロセス600のいずれかのブロックは、必要に応じて、どのような量に組み合わされてもよく、またはどのような順序に配置されてもよい。実施形態において、プロセス600のブロックのうちの2つ以上は、並行して実行されてもよい。
【0051】
上述した技術は、コンピュータ可読命令を使用し、1つまたは複数のコンピュータ可読メディアに物理的に記憶されたコンピュータソフトウェアとして、または具体的に構成された1つまたは複数のハードウェアプロセッサによって実施することができる。例えば、
図7は、様々な実施形態の実施に適したコンピュータシステム700を示している。
【0052】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPU)、グラフィック処理装置(GPU)などによって、直接、または解釈、マイクロコードの実行などを介して実行できる命令を含むコードを作成するために、アセンブリ、コンパイル、リンクなどの機構の適用を受け得る、任意の適切な機械コードまたはコンピュータ言語を使用してコーディングすることができる。
【0053】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0054】
コンピュータシステム700について
図7に示された構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆するものではない。構成要素の構成は、コンピュータシステム700の例示的な実施形態に示された構成要素のいずれか1つまたは組合せに関するいかなる依存関係または要件も有すると解釈されるべきでない。
【0055】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含み得る。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、音声入力(声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力を介して、1人または複数の人間ユーザによる入力に応答し得る。ヒューマンインターフェースデバイスを用いて、音声(発話、音楽、周囲音など)、画像(スキャン画像、静止画像カメラから取得される写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関係ない特定のメディアをキャプチャし得る。
【0056】
入力ヒューマンインターフェースデバイスは、キーボード701、マウス702、トラックパッド703、タッチスクリーン710、ジョイスティック705、マイクロフォン706、スキャナ708、カメラ707のうちの1つまたは複数(各々うちの1つのみが図に示されている)を含み得る。
【0057】
コンピュータシステム700はまた、特定のヒューマンインターフェース出力デバイスも含み得る。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を介して、1人または複数の人間のユーザの感覚を刺激している場合がある。そのようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン710またはジョイスティック705による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバックデバイスも存在し得る)と、音声出力デバイス(例えば、スピーカ709、ヘッドホンなど)と、視覚出力デバイス(例えば、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含むスクリーン710であって、それぞれにタッチスクリーン入力機能を備えたものと備えていないものとがあり、それぞれに触覚フィードバック機能を備えたものと備えていないものとがあり、これらの一部は、ステレオグラフィック出力、仮想現実メガネ、ホログラフィックディスプレイ、およびスモークタンクなどの手段を介して、2次元視覚出力または3次元超出力を出力することができてもよい)と、プリンタと、を含み得る。
【0058】
コンピュータシステム700はまた、人間がアクセス可能な記憶デバイス、およびCD/DVD 711などのメディアを伴うCD/DVD ROM/RW 720を含む光学メディア、サムドライブ722、リムーバブルハードドライブまたはソリッドステートドライブ723、テープおよびフロッピーディスクなどのレガシー磁気メディア、セキュリティドングルなどの専用ROM/ASIC/PLDベースのデバイスなどのそれらの関連メディアを含むことができる。
【0059】
当業者はまた、現在開示された主題に関連して使用される「コンピュータ可読メディア」という用語が、送信メディア、搬送波、または他の一時的な信号を包含しないことを理解するはずである。
【0060】
コンピュータシステム700はまた、1つまたは複数の通信ネットワーク798へのインターフェース799を含むことができる。ネットワーク798は、例えば、無線、有線、光とすることができる。ネットワーク798はさらに、ローカル、ワイドエリア、メトロポリタン、車両および産業用、リアルタイム、遅延耐性などとすることができる。ネットワーク798の例は、例えば、イーサネットなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビ有線または無線ワイドエリアデジタルネットワーク、CANBusを含む車載および産業用ネットワークなどを含む。特定のネットワーク798は一般的に、特定の汎用データポートまたは周辺バス(750および751)(例えば、コンピュータシステム700のUSBポートに接続される外部ネットワークインターフェースアダプタを必要とし、他のネットワークは一般的に、以下に説明するようなシステムバス(例えば、PCコンピュータシステムへのイーサネットインターフェース、またはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)に接続されることによって、コンピュータシステム700のコアに統合される。これらのネットワーク798のいずれかを使用して、コンピュータシステム700は他のエンティティと通信することができる。そのような通信は、単方向の受信のみ(例えば、放送TV)、単方向送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または双方向、例えばローカルエリアまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムへの通信であり得る。特定のプロトコルおよびプロトコルスタックは、上記で説明したように、それらのネットワークおよびネットワークインターフェースの各々で使用され得る。
【0061】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム700のコア740に接続することができる。
【0062】
コア740は、1つまたは複数の中央処理装置(CPU)741、グラフィック処理装置(GPU)742、グラフィックアダプタ717、フィールドプログラマブルゲートエリア(FPGA)743の形態の特殊なプログラマブル処理装置、特定のタスクのためのハードウェアアクセラレータ744などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)745、ランダムアクセスメモリ746、内部の非ユーザアクセス可能ハードドライブ、SSDなど747の内部大容量記憶部と共に、システムバス748を介して接続され得る。いくつかのコンピュータシステムでは、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするために、1つまたは複数の物理プラグの形態でアクセス可能であり得る。周辺デバイスは、コアのシステムバス748に直接接続することも、周辺バス751を介して接続することもできる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0063】
CPU741、GPU742、FPGA743、およびアクセラレータ744は、組み合わさって前述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードを、ROM745またはRAM746に記憶することができる。過渡的なデータをRAM746に記憶することもでき、一方永続的なデータを、例えば、内部大容量記憶部747に記憶することができる。1つまたは複数のCPU 741、GPU 742、大容量記憶部747、ROM 745、RAM 746などと密接に関連付けることができるキャッシュメモリを使用することにより、メモリデバイスのいずれかへの高速記憶および高速取り出しを可能にすることができる。
【0064】
コンピュータ可読メディアは、様々なコンピュータ実装動作を実行するためのコンピュータコードをそこに有することができる。メディアおよびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0065】
一例として、かつ限定としてではなく、図示のアーキテクチャを有するコンピュータシステム700、具体的にはコア740は、1つまたは複数の有形のコンピュータ可読メディアに具現化されたソフトウェアを(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサが実行する結果として、機能を実現することができる。そのようなコンピュータ可読メディアは、上述したようなユーザアクセス可能な大容量記憶、ならびにコア内部大容量記憶部747やROM745などの非一時的な性質のものであるコア740の特定の記憶に関連付けられたメディアとすることができる。本開示の様々な実施形態を実施するソフトウェアを、そのようなデバイスに記憶し、コア740によって実行することができる。コンピュータ可読メディアは、特定の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア740、具体的にはコア中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM746に記憶されたデータ構造を定義すること、およびソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を変更することを含む、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えて、または代替として、コンピュータシステムは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに、またはソフトウェアと一緒に動作することができる、回路において配線またはそれ以外の方法で具体化されたロジック(例えば、アクセラレータ744)の結果としての機能を提供することもできる。必要に応じて、ソフトウェアへの参照はロジックを包含することができ、その逆も同様である。必要に応じて、コンピュータ可読メディアへの参照は、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のためのロジックを具体化する回路、またはこれらの両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0066】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないまたは記載されていないが、本開示の原理を具体化し、したがってその趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0067】
100 通信システム
101 端末
102 端末
103 端末
104 端末
105 ネットワーク
201 ビデオソース
202 エンコーダ
203 キャプチャサブシステム
204 エンコード済みビデオビットストリーム
205 ストリーミングサーバ
206 エンコード済みビデオビットストリーム
207 ストリーミングクライアント
208 エンコード済みビデオビットストリーム
209 ディスプレイ
210 送出ビデオサンプルストリーム
212 ストリーミングクライアント
213 非圧縮ビデオサンプルストリーム
300 DASH処理モデル
301 アプリケーション
302 DASHプレーヤ制御、選択、およびヒューリスティックロジック
303 マニフェストパーサ
306 インバンドイベントおよび「moof」パーサ
325 時限メタデータ追跡パーサ
330 イベントおよびメタデータバッファ
335 イベントおよびメタデータシンクロナイザおよびディスパッチャ
340 メディアバッファ
345 メディアデコーダ
350 ファイルフォーマットパーサ
410 広告MPD
420 ライブMPD
500 メディアソースバッファ
550 メディアソースバッファ
700 コンピュータシステム
701 キーボード
702 マウス
703 トラックパッド
705 ジョイスティック
706 マイクロフォン
707 カメラ
708 スキャナ
709 スピーカ
710 タッチスクリーン
717 グラフィックアダプタ
720 光学メディア
722 サムドライブ
723 リムーバブルハードドライブまたはソリッドステートドライブ
740 コア
741 中央処理装置、CPU
742 グラフィック処理装置、GPU
743 フィールドプログラマブルゲートエリア、FPGA
744 ハードウェアアクセラレータ
745 読み出し専用メモリ、ROM
746 ランダムアクセスメモリ、RAM
747 内部大容量記憶部
748 システムバス
750 周辺バス
751 周辺バス
798 ネットワーク
799 インターフェース
【手続補正書】
【提出日】2023-11-14
【手続補正2】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための方法であって、前記方法は少なくとも1つのプロセッサによって実行され、
1つまたは複数の広告メディアセグメントを含む少なくとも1つの取得されたメディアプレゼンテーションセグメント(MPD)を構文解析するステップであって、前記1つまたは複数の広告メディアセグメントは少なくとも1つのユニバーサルリソースロケータ(URL)を含む、ステップと、
前記少なくとも1つのURLに基づいてライブMPDを取得するステップであって、前記ライブMPDが1つまたは複数のライブメディアセグメントを含む、ステップと、
第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを第1のメディアソース拡張(MSE)ソースバッファに付加するステップと、
第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加することによって、前記1つまたは複数のライブメディアセグメントを前記1つまたは複数の広告メディアセグメントに連鎖するステップであって、前記第2のタイミングモデルが、少なくとも前記1つまたは複数のライブメディアセグメントのタイムシフトバッファ深度をサポートする、ステップと、
前記第1のタイミングモデルおよび前記第2のタイミングモデルに基づいて、前記1つまたは複数の広告メディアセグメントおよび前記1つまたは複数のライブメディアセグメントをディスパッチするステップと
を含む、方法。
【請求項2】
前記第1のタイミングモデルに基づいて前記1つまたは複数の広告メディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記少なくとも1つの取得されたMPDに基づいて前記第1のMSEソースバッファを第1の最大持続時間まで拡張するステップと、
前記1つまたは複数の広告メディアセグメントに関連付けられた第1のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファのタイムスタンプオフセットを設定するステップと
を含む、請求項1に記載の方法。
【請求項3】
前記第2のタイミングモデルに基づいて前記1つまたは複数のライブメディアセグメントを前記第1のMSEソースバッファに付加する前記ステップは、
前記1つまたは複数のライブメディアセグメントに基づいて前記第1のMSEソースバッファを第2の最大持続時間まで拡張するステップと、
前記1つまたは複数のライブメディアセグメントに関連付けられた第2のプレゼンテーション時間オフセットに基づいて前記第1のMSEソースバッファの前記タイムスタンプオフセットをリセットするステップと、
前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを前記第1のMSEソースバッファに付加するステップと
を含む、請求項2に記載の方法。
【請求項4】
前記第2のプレゼンテーション時間オフセットが、前記1つまたは複数のライブメディアセグメントに関連付けられた推定最先プレゼンテーション時間および前記1つまたは複数のライブメディアセグメントに関連付けられた最大セグメント持続時間に基づく、請求項3に記載の方法。
【請求項5】
前記少なくとも1つの取得されたMPDおよび前記ライブMPDに関連付けられた1つまたは複数のコードを取得するステップをさらに含む、請求項1に記載の方法。
【請求項6】
再生されている前記1つまたは複数の広告メディアセグメントの最後のフレームに基づいて、前記第1のMSEソースバッファに付加された前記1つまたは複数のライブメディアセグメントの開始にシークするステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記方法が、
暗号化されている前記1つまたは複数のライブメディアセグメントに基づいて、ライセンスサーバから1つまたは複数のライセンスキーを取得するステップと、
前記1つまたは複数のライセンスキーを第2のバッファに付加するステップと
をさらに含む、請求項1に記載の方法。
【請求項8】
第1の広告メディアセグメントが1回再生されるように構成されていることに基づいて、前記第1のMSEソースバッファから前記1つまたは複数の広告メディアセグメントの中の前記第1の広告メディアセグメントをパージするステップをさらに含む、請求項1に記載の方法。
【請求項9】
前記1つまたは複数の広告メディアセグメントの中の第1の広告メディアセグメントを、前記第1の広告メディアセグメントが複数回再生されるように構成されていることに基づいて第3のバッファに付加するステップと、
前記1つまたは複数のライブメディアセグメントの中の第1のライブメディアセグメントを、前記第1の広告メディアセグメントが前記第1のライブメディアセグメント中のミッドロール広告であることに基づいて、前記第1の広告メディアセグメントの前に付加するステップと
をさらに含む、請求項1に記載の方法。
【請求項10】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するための装置であって、前記装置は、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサであって、前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1から9のいずれか一項に記載の方法を実行させるように構成された、少なくとも1つのプロセッサと、
を含む、装置。
【請求項11】
MPD連鎖を使用して2つ以上の非線形メディアソースから線形メディアソース拡張(MSE)バッファを構築するためのデバイスの1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
請求項1から9のいずれか一項に記載の方法を実行させる1つまたは複数の命令を含む、プログラム。
【国際調査報告】