(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-06
(54)【発明の名称】メディアストリーミング及び再生中のプレロール及びミッドロールをサポートするための方法、装置及びコンピュータプログラム
(51)【国際特許分類】
H04N 21/235 20110101AFI20240228BHJP
H04N 21/435 20110101ALI20240228BHJP
H04L 67/561 20220101ALI20240228BHJP
【FI】
H04N21/235
H04N21/435
H04L67/561
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023553933
(86)(22)【出願日】2022-09-23
(85)【翻訳文提出日】2023-09-05
(86)【国際出願番号】 US2022044496
(87)【国際公開番号】W WO2023059450
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-09-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164MA05S
5C164MB44S
5C164SB08P
5C164UB10P
5C164UB21S
(57)【要約】
MSEバッファを使用して、メインメディアストリーム中に補助メディアストリームをシグナリングするための方法及び装置が提供されてもよく、1つ以上のメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、1つ以上のメインメディアセグメントがMSEソースバッファに追記され、1つ以上の補助メディアセグメントに関連する1つ以上の補助期間属性に基づいて、1つ以上の補助メディアセグメントがMSEソースバッファに追記されることを含む。補助期間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントがプレロール又はミッドロール挿入中に停止され得る第1の時間オフセットを示す開始時間属性を含む期間タイプ要素でもよい。メインメディアセグメント及び補助メディアセグメントがディスパッチされてもよい。
【特許請求の範囲】
【請求項1】
メディアソース拡張(MSE)バッファを使用して、メインDASH(Dynamic Adaptive Streaming over HTTP)メディアストリーム中に補助メディアストリームをシグナリングするための方法であって、
1つ以上のメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、前記1つ以上のメインメディアセグメントをMSEソースバッファに追記するステップと、
1つ以上の補助メディアセグメントに関連する1つ以上の補助期間属性に基づいて、前記1つ以上の補助メディアセグメントを前記MSEソースバッファに追記するステップであって、前記1つ以上の補助期間属性の補助期間属性は、開始時間属性を含む期間タイプ要素であり、前記開始時間属性は、前記1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、前記1つ以上のメインメディアセグメントの中のメインメディアセグメントがプレロール又はミッドロール挿入中に停止される第1の時間オフセットを示す、ステップと、
前記1つ以上のそれぞれのメインタイムスタンプオフセット及び前記1つ以上の補助期間属性に基づいて、前記MSEソースバッファ内の前記1つ以上のメインメディアセグメント及び前記1つ以上の補助メディアセグメントをディスパッチするステップと
を含む方法。
【請求項2】
前記補助期間属性は戻り時間属性を更に含み、前記戻り時間属性は、前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントを再生するために、前記1つ以上のメインメディアセグメントの中の前記メインメディアセグメントが停止された後に、前記1つ以上のメインメディアセグメントの中の前記メインメディアセグメントが再開される第2の時間オフセットを示す、請求項1に記載の方法。
【請求項3】
MSEソースバッファのタイムスタンプオフセットは、前記メインメディアセグメントが停止又は再開されることに基づいて更新される、請求項2に記載の方法。
【請求項4】
前記1つ以上の補助期間属性は、補助メディアプレゼンテーション記述(MPD)における1つ以上の期間の前に配置される、請求項1に記載の方法。
【請求項5】
前記開始時間属性が0であることに基づいて、前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントは、前記1つ以上のメインメディアセグメントの前に再生されるプレロールメディアセグメントである、請求項1に記載の方法。
【請求項6】
前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントがプレロール補助メディアセグメントであることに基づいて、前記補助メディアセグメントに関連するMSEソースバッファのタイムスタンプオフセットは、前記補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しい、請求項5に記載の方法。
【請求項7】
最後のプレロール補助メディアセグメントが前記MSEソースバッファに追記されたことに基づいて、タイムシフトバッファの深さ、前記開始時間属性、全てのプレロールメディアセグメントの合計持続時間、及び前記1つ以上のメインメディアセグメントの第1のメインメディアセグメントに関連するプレゼンテーション時間オフセットに基づいて、前記MSEソースバッファのタイムスタンプオフセットを更新するステップを更に含み、
前記MSEソースバッファのタイムスタンプオフセットは、前記最後のプレロール補助メディアセグメントと前記第1のメインメディアセグメントとの間の閾値の時間範囲を含むように更新される、請求項6に記載の方法。
【請求項8】
前記MSEソースバッファ内の前記1つ以上の補助メディアセグメントのうち1つがディスパッチされた場合、前記1つ以上の補助メディアセグメントのうち前記1つに関連する戻り時間属性及びプレゼンテーション時間オフセットに基づいて、前記MSEソースバッファのタイムスタンプオフセットを更新するステップを更に含む、請求項6に記載の方法。
【請求項9】
メディアソース拡張(MSE)バッファを使用して、メインDASH(Dynamic Adaptive Streaming over HTTP)メディアストリーム中に補助メディアストリームをシグナリングするための装置であって、
プログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記プログラムコードにアクセスして前記プログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと
を含み、
前記プログラムコードは、
前記少なくとも1つのプロセッサに、請求項1乃至8のうちいずれか1項に記載の方法を実行させる、装置。
【請求項10】
1つ以上のプロセッサに、請求項1乃至8のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本出願は、2021年10月6日に出願された米国仮出願第63/253,046号及び2022年9月21日に出願された米国出願第17/949,684号に対する優先権を主張し、これらの全内容を参照することにより本出願に明示的に援用する。
【0002】
[技術分野]
本開示の実施形態は、ストリーミングメディアコンテンツを対象とし、より具体的には、MPEG(Moving Picture Experts Group)のDASH(dynamic adaptive streaming over hypertext transfer protocol)に従ったストリーミングメディア、広告及びライブコンテンツを対象とする。
【背景技術】
【0003】
MPEG DASHは、IPネットワーク上でメディアコンテンツをストリーミングするための標準を提供する。MPEG DASHでは、メディアタイムライン関連のイベントをクライアントに配信するために、メディアプレゼンテーション記述(MPD, media presentation description)及びイベントが使用される。ISO/IEC 23009-1 DASH標準は、マルチレートコンテンツのストリーミングを可能にする。DASH標準は、単一のタイムラインにおいて期間が互いの継続である単一のリニア型(linear)タイムラインを提供する。ISO/IEC 23009-1はまた、MPDチェイニング(MPD chaining)のためのツールを提供しており、すなわち、プレロール広告挿入に使用できるMPDで再生する次のMPDのURLをシグナリングする。
【0004】
MPEG DASHは、IPネットワーク上でマルチメディアコンテンツをストリーミングするための標準を提供する。当該標準はメディアコンテンツのリニア型再生に対処しているが、当該標準は、例えば、メディアセグメントが互いに独立した異なるタイムラインに関連する非リニア型動作の状況に対処できない。MPDチェイニング及びプレロール広告挿入は、上記の欠点を克服するために使用されることがある。しかし、DASHプレーヤがW3Cメディアソース拡張(W3C Media Source Extensions)を使用する場合、単一のMSEソースバッファでこのような非リニア型再生に対処するのは非常に困難であるので、MPDチェイニング及びプレロール広告挿入でさえ失敗する。さらに、保護されたライブコンテンツの再生にW3C暗号化メディア拡張(W3C Encrypted Media Extensions)が使用される場合、MPDチェイニング又はプレロール要素を使用する前に広告が再生されることが想定されるとき、MPDチェイニング及びプレロール広告挿入は使用できない。
【0005】
したがって、メインメディアコンテンツとは異なる補助コンテンツ又は独立したコンテンツを組み合わせるための方法が必要である。具体的には、補助コンテンツとメインメディアコンテンツをプレロール再生又はミッドロール再生として組み合わせる方法及び装置が必要である。さらに、MPDチェイニングを使用して保護されたライブコンテンツを再生するためのW3C暗号化メディア拡張を処理するための方法も必要である。
【発明の概要】
【0006】
本開示は、1つ以上の技術的問題に対処する。本開示は、新たな概念である補助期間AuxPeriod(auxiliary period)を実現するための方法、プロセス、装置及び非一時的なコンピュータ読み取り可能媒体を含む。補助期間(補助期間属性とも呼ばれる)は、メインメディアのプレゼンテーションから補助メディア又は独立したメディアのプレゼンテーションを提示することを可能にする。さらに、本開示の実施形態はまた、メインプレゼンテーション中にプレロール及びミッドロールコンテンツを挿入するためのサポートも提供する。
【0007】
本開示の実施形態は、メディアソース拡張(MSE, media source extension)バッファを使用して、メインDASH(Dynamic Adaptive Streaming over HTTP)メディアストリーム中に補助メディアストリームをシグナリングするための方法を提供してもよい。当該方法は、少なくとも1つのプロセッサによって実行されてもよく、1つ以上のメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、1つ以上のメインメディアセグメントをMSEソースバッファに追記するステップと、1つ以上の補助メディアセグメントに関連する1つ以上の補助期間属性に基づいて、1つ以上の補助メディアセグメントをMSEソースバッファに追記するステップであって、1つ以上の補助期間属性の補助期間属性は、開始時間属性を含んでもよい期間タイプ要素でもよく、開始時間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントがプレロール又はミッドロール挿入中に停止され得る第1の時間オフセットを示す、ステップと、1つ以上のそれぞれのメインタイムスタンプオフセット及び1つ以上の補助期間属性に基づいて、MSEソースバッファ内の1つ以上のメインメディアセグメント及び1つ以上の補助メディアセグメントをディスパッチするステップとを含んでもよい。
【0008】
本開示の実施形態は、メディアソース拡張(MSE, media source extension)バッファを使用して、メインDASH(Dynamic Adaptive Streaming over HTTP)メディアストリーム中に補助メディアストリームをシグナリングするための装置を提供してもよい。当該装置は、プログラムコードを記憶するように構成された少なくとも1つのメモリと、プログラムコードにアクセスしてプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサとを含んでもよい。プログラムコードは、少なくとも1つのプロセッサに、1つ以上のメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、1つ以上のメインメディアセグメントをMSEソースバッファに追記させるように構成された第1の追記コードと、少なくとも1つのプロセッサに、1つ以上の補助メディアセグメントに関連する1つ以上の補助期間属性に基づいて、1つ以上の補助メディアセグメントをMSEソースバッファに追記させるように構成された第2の追記コードであって、1つ以上の補助期間属性の補助期間属性は、開始時間属性を含んでもよい期間タイプ要素であり、開始時間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントがプレロール又はミッドロール挿入中に停止される第1の時間オフセットを示す、第2の追記コードと、少なくとも1つのプロセッサに、1つ以上のそれぞれのメインタイムスタンプオフセット及び1つ以上の補助期間属性に基づいて、MSEソースバッファ内の1つ以上のメインメディアセグメント及び1つ以上の補助メディアセグメントをディスパッチさせるように構成されたディスパッチコードとを含んでもよい。
【0009】
本開示の実施形態は、命令を記憶する非一時的なコンピュータ読み取り可能媒体を提供してもよい。命令は、メディアソース拡張(MSE, media source extension)バッファを使用して、メインDASH(Dynamic Adaptive Streaming over HTTP)メディアストリーム中に補助メディアストリームをシグナリングするためのデバイスの1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、1つ以上のそれぞれのメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、1つ以上のメインメディアセグメントをMSEソースバッファに追記させ、少なくとも1つのプロセッサに、1つ以上の補助メディアセグメントに関連する1つ以上の補助期間属性に基づいて、1つ以上の補助メディアセグメントをMSEソースバッファに追記させ、ここで、1つ以上の補助期間属性の補助期間属性は、開始時間属性を含んでもよい期間タイプ要素であり、開始時間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントがプレロール又はミッドロール挿入中に停止される第1の時間オフセットを示し、1つ以上のそれぞれのメインタイムスタンプオフセット及び1つ以上の補助期間属性に基づいて、MSEソースバッファ内の1つ以上のメインメディアセグメント及び1つ以上の補助メディアセグメントをディスパッチさせる1つ以上の命令を含んでもよい。
【図面の簡単な説明】
【0010】
開示の主題の更なる特徴、性質及び様々な利点は、以下の詳細な説明及び添付の図面からより明らかになる。
【
図1】実施形態による通信システムの簡略図である。
【
図2】実施形態によるストリーミング環境におけるコンポーネントの配置の例示的な図である。
【
図3】実施形態によるDASH処理モデルの簡略ブロック図である。
【
図4】実施形態よる補助メディアプレゼンテーションのメディアソース拡張(MSE)ソースバッファの実装の簡略図である。
【
図5】実施形態に従ってプレロール及びミッドロール補助メディアコンテンツを再生するための補助MPD要素の例示的なスクリプトである。
【
図6】実施形態に従ってMSEバッファを使用してメインメディアストリーム中に補助メディアストリームをシグナリングするための例示的なフローチャート図である。
【
図7】実施形態によるコンピュータシステムの簡略図である。
【発明を実施するための形態】
【0011】
以下に議論される提案される特徴は、別々に使用されてもよく、或いは、いずれかの順序で組み合わせてもよい。さらに、実施形態は、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施されてもよい。一例では、1つ以上のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。
【0012】
図1は、本開示の一実施形態による通信システム100の簡略ブロック図を示す。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端末102及び103を含む。データの一方向伝送のために、第1の端末103は、ネットワーク105を介して他の端末102に伝送するために、ローカル位置のビデオデータを符号化してもよい。第2の端末102は、ネットワーク105から他の端末の符号化ビデオデータを受信し、符号化データを復号し、復元されたビデオデータを表示してもよい。一方向データ伝送は、メディア提供アプリケーション等において一般的でもよい。
【0013】
図1は、例えば、テレビ会議中に発生し得る符号化ビデオの双方向伝送をサポートするために設けられた第2の対の端末101及び104を示す。データの双方向伝送のために、各端末101及び104は、ネットワーク105を介して他の端末に伝送するために、ローカル位置でキャプチャされたビデオデータを符号化してもよい。また、各端末101及び104は、他の端末によって送信された符号化ビデオデータを受信してもよく、符号化データを復号してもよく、復元されたビデオデータをローカルディスプレイデバイスに表示してもよい。
【0014】
図1において、端末101、102、103及び104は、サーバ、パーソナルコンピュータ及びスマートフォンとして示されることがあるが、本開示の原理はこれらに限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレイヤ及び/又は専用のテレビ会議機器に適用がある。ネットワーク105は、例えば、有線及び/又は無線通信ネットワークを含む、端末101、102、103及び104の間で符号化ビデオデータを伝達するいずれかの数のネットワークを表す。ネットワーク105は、回線交換チャネル及び/又はパケット交換チャネルにおいてデータを交換してもよい。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、広域ネットワーク及び/又はインターネットを含む。本説明の目的では、ネットワーク105のアーキテクチャ及びトポロジは、本明細書において以下に説明しない限り、本開示の動作には重要ではない。
【0015】
図2は、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。実施形態は、例えば、テレビ会議、デジタルTV、デジタルメディア(CD、DVD、メモリスティック等を含む)上の圧縮ビデオの記憶等を含む、他のビデオ可能なアプリケーションに適用可能である。
【0016】
ストリーミングシステムはキャプチャサブシステム203を含んでもよく、例えば、当該キャプチャサブシステム203は、例えば、非圧縮のビデオピクチャのストリーム213を生成するデジタルカメラを含むことができる。そのサンプルストリーム213は、符号化ビデオビットストリームと比較したときに高いデータ量であるとして強調されてもよく、ビデオソース201に結合されたエンコーダ202によって処理されることができる。エンコーダ202は、以下により詳細に説明するように、実施形態の態様を可能にするため或いは実装するために、ハードウェア、ソフトウェア又はこれらの組み合わせを含むことができる。符号化ビデオデータ204は、サンプルストリームと比較したときにより低いデータ量として強調されてもよく、将来の使用のためにストリーミングサーバ205に記憶できる。1つ以上のストリーミングクライアント212及び207は、ストリーミングサーバ205にアクセスして符号化ビデオビットストリーム208及び206を取得でき、符号化ビデオビットストリーム208及び206は符号化ビデオビットストリーム204のコピー208及び206でもよい。クライアント212は、ビデオデコーダ211を含むことができ、ビデオデコーダ211は、符号化ビデオビットストリーム208の入力コピーを復号し、ディスプレイ209又は他のレンダリングデバイス上にレンダリングできる出力ビデオサンプルストリーム210を生成する。いくつかのストリーミングシステムでは、符号化ビデオビットストリーム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を含むパイプラインを含んでもよい。MSE320はメディアセグメントの論理バッファであり、メディアセグメントはメディアセグメントのプレゼンテーション時間に基づいてトラッキング及び順序付けされてもよい。メディアセグメントは、広告MPDに関連する広告メディアセグメントとライブMPDに関連するライブメディアセグメントとを含んでもよいが、これらに限定されないことがある。各メディアセグメントは、メディアセグメントのタイムスタンプオフセットに基づいてメディアバッファ340に追加又は追記され、タイムスタンプオフセットはメディアバッファ340内のメディアセグメントを順序付けるために使用されてもよい。
【0020】
本出願の実施形態は、MPDチェイニングを使用して2つ以上の非リニア型メディアソースからリニア型メディアソース拡張(MSE)バッファを構築することを対象としてもよく、非リニア型メディアソースは広告MPD及びライブMPDでもよいので、ファイルフォーマットパーサ350は、ライブMPDに含まれるライブメディアセグメントによって使用される異なるメディア及び/又はコーデックを処理するために使用されてもよい。いくつかの実施形態では、ファイルフォーマットパーサは、ライブメディアセグメントのコーデック、プロファイル及び/又はレベルに基づいて変更タイプを発行してもよい。
【0021】
メディアバッファ340にメディアセグメントが存在する限り、イベント及びメタデータバッファ330は対応するイベントセグメント及びメタデータを維持する。サンプルDASH処理モデル300は、インバンド及びMPDイベントに関連するメタデータをトラッキングするための、時間指定メタデータトラックパーサ325を含んでもよい。
図3によれば、MSE320はファイルフォーマットパーサ350、メディアバッファ340及びメディアデコーダ345のみを含む。イベント及びメタデータバッファ330と、イベント及びメタデータシンクロナイザ及びディスパッチャ335はMSE320にとってネイティブではなく、MSE320がイベントをネイティブに処理してアプリケーションに送信することを抑制する。
【0022】
補助プレゼンテーション
本開示の実施形態は、補助メディアプレゼンテーションをMPDのメインメディアプレゼンテーションから独立したメディアプレゼンテーションであると定義する。一例として、メインメディアセグメントから独立した広告メディアセグメント又はライブメディアセグメントは、補助プレゼンテーションでもよい。補助メディアプレゼンテーション又は補助メディアセグメントへの更新は、メインメディアセグメントに影響を与えない。同様に、メインメディアセグメントへの更新は、補助メディアセグメントに影響を与えない。したがって、補助メディアセグメント(補助メディアプレゼンテーション又は補助プレゼンテーションとも呼ばれる)は、メインメディアセグメント(本開示においてメインメディアプレゼンテーション及びメディアプレゼンテーションともしても知られる)から完全に独立してもよい。
【0023】
補助期間(補助期間属性とも呼ばれる)
図4は、実施形態に従ってプレロール及びミッドロール補助メディアコンテンツを再生するための補助期間を可能にするxmlコードを示す例示的なスクリプト400である。
【0024】
図4に示すように、@id="e0"を有するEssentialProperty記述子によって記述されるAuxPeriodはプレロールメディアセグメントでもよく、一方、@id="e1"及び@id="e2"を有するEssentialProperty記述子によって記述されるAuxPeriodはミッドロールメディアセグメントでもよい。いくつかの実施形態では、補助期間は補助MPDにおける1つ以上の期間の前に開示されてもよい。
【0025】
MSEソースバッファによる補助期間の実装
W3C MSEはシーケンシャルバッファである。シーケンシャルに再生されることが想定されるコンテンツが正しい位置に追記されるように、MSEソースバッファのタイムスタンプオフセット(TSO, TimeStamp Offset)が適切に設定されている限り、MSEソースバッファはコンテンツを正しく再生する。一実施形態によれば、メインプレゼンテーションが補助プレゼンテーションに切り替えられるか或いは補助プレゼンテーションがメインプレゼンテーションに切り戻される各時点において、MSEタイムスタンプオフセット(TSO)は、メインメディアセグメント及び補助メディアセグメントをMSEバッファの正しい位置に配置するために調整されてもよい。
【0026】
図5は、
図4におけるxmlコードを使用して記述されたMSEソースバッファの
図500である。
【0027】
図500に示すように、補助MPD aux e0はプレロールMPDでもよく、aux e1及びaux e2はミッドロールMPDでもよい。ライブコンテンツp0は、1つ以上のメインメディアセグメントを含むメインMPDでもよい。
【0028】
AuxPeriod e0はプレロール補助期間であるので、aux e0からの1つ以上の補助メディアセグメントが取得され、いずれかのメインメディアセグメントの前にMSEソースバッファの先頭に配置されてもよい。aux e0においてプレロール補助メディアセグメントを取得して追記する場合、MSE TSOは0である。
T0=e0@PTO ...式(1)
いくつかの実施形態では、各プレロール補助メディアセグメントを取得して追記することに続いて、ライブメディアp0の開始時間、ライブメディアp0のプレゼンテーション時間及びタイムシフトバッファの深さに基づいてMSE TSOが更新されてもよい。一例として、
図5において、T1は、タイムシフトバッファの深さ、プレロール補助メディアセグメントの持続時間及びライブメディアに関連するプレゼンテーション時間オフセットに基づいてもよい。
T1=Max(timeShiftBuffeerDepth, Live edge-P0Start)+e0@duration+p0@PTO-e0@PTO …式(2)
ミッドロール補助MPD aux e1及びaux e2について、以下の通りである。
T2=T1+e1@start+e1@PTO-p0@PTO …式(3)
T3=T2+e1@returnTime-p0@PTO-e1@PTO …式(4)
T4=T1+e2@start+e2@PTO-p0@PTO …式(5)
T5=T4+p0@PTO-e2@PTO …式(6)
ここで、e0@PTO、e1@PTO及びe2@PTOは、この順序でエッセンシャル記述子にリンクされている補助期間内の最初の期間のプレゼンテーション時間オフセットであり、ei@starttime及びei@returnTimeは、id=eiを有するそれぞれ対応する記述子における開始時間値及び戻り時間値である。
【0029】
実施形態によれば、MSE TSOの更新は以下に基づいてもよい。
【0030】
プレロール補助期間のメディアセグメントは、MSE追記ウィンドウの開始(0)から始まってもよい。プレロール補助期間のメディアセグメントが最初に取得されて追記されるので、MSE TSOは補助MPDのPTOに等しく設定される(例えば、式(1)を参照する)。
【0031】
いくつかの実施形態では、プレロール期間補助メディアセグメントの最後のセグメントを追記した後に、ライブメディア又はメインメディアセグメントに関連するライブエッジが計算されてもよい。DVRウィンドウのサイズと、ライブエッジと、プレロール補助期間又はメディアセグメントの期間の開始及び持続時間と、ライブコンテンツのPTOとを使用して、MSE TSOは、MSEバッファに追記される最初のメディアセグメントと、以前に追加されたプレロール補助期間の最後のセグメントとの間に閾値の時間範囲が存在するように調整されてもよい。一例として、式(2)を参照する。いくつかの実施形態では、閾値はDVRウィンドウより小さくてもよく、DVRウィンドウに等しくてもよく、或いは、DVRウィンドウより大きくてもよい。DVRウィンドウは、クライアントがスクラブバック(scrub back)する能力、又はメインメディアストリームにおける早い時点で再生を開始する能力を含んでもよい。
【0032】
実施形態によれば、それぞれ追記された補助期間又はメディアセグメントによって、ライブエッジからのそのオフセットが計算される。MSE TSOはこのオフセットだけ増加し、ライブ期間のPTO及び補助期間/メディアセグメントのPTOに基づいて調整される。他の実施形態又は同じ実施形態として、各補助期間/メディアセグメントの終了時に、MSE TSOは、補助期間/メディアセグメントのreturnTime、ライブ期間のPTO及び補助期間/メディアセグメントのPTOに基づいて調整される。
【0033】
いくつかの実施形態では、プレロール補助期間/メディアセグメントの再生において、クライアントはMSEからプレロール補助期間/メディアセグメントの時間範囲を削除することを決定してもよく、したがって、プレロールは1回のみ再生されてもよい。いくつかの実施形態では、DVRにアクセスした場合、プレロールが再生されなくてもよい。クライアントはまた、ライブセッションに参加した後に、timeShiftBufferDepthの値に従って、MSE追記ウィンドウバッファから時間範囲を削除してもよい。
【0034】
ここで定義されている補助期間の利点は、MSE/EMEが単一のMPDを正しく使用した期間を使用して初期化され、メインコンテンツがMSE/EMEによって再生されることを保証することを含む。この単一のMSE/EME初期化は、メインプレゼンテーションと補助プレゼンテーションとの間の移行中にコンテンツのシームレスな再生を可能にする。
【0035】
全てのAuxPeriodはMPDの子であるので、MPD更新においていくつかの期間(Period)が削除されても、AuxPeriodsは変更されないままである(プレロール補助コンテンツに有用である)。さらに、補助期間はリモート要素とすることができるので、このリモート要素の能力は、サーバ支援の広告挿入においてクライアントのミッドロールに対する遅延バインディング(late binding)を可能にする。
【0036】
図6は、メインメディアストリーム内のプレロールメディアコンテンツ及びミッドロールメディアコンテンツを含む補助メディアをシグナリングするためのプロセス600の例示的なフローチャートである。
【0037】
動作610において、1つ以上のメインメディアセグメントは、1つ以上のメインメディアセグメントのそれぞれに関連する1つ以上のそれぞれのメインタイムスタンプオフセットに基づいて、MSEソースバッファに追記されてもよい。
【0038】
動作615において、1つ以上の補助メディアセグメントは、1つ以上の補助メディアセグメントに関連する1つ以上の補助期間に基づいて、MSEソースバッファに追記されてもよい。補助期間は、開始時間属性を含む期間タイプ要素でもよい。開始時間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントが停止され得る第1の時間オフセットを示してもよい。いくつかの実施形態では、補助期間は戻り時間属性を含んでもよい。戻り時間属性は、1つ以上の補助メディアセグメントの中の補助メディアセグメントを再生するために、1つ以上のメインメディアセグメントの中のメインメディアセグメントが停止された後に、1つ以上のメインメディアセグメントの中のメインメディアセグメントが再開され得る第2の時間オフセットを示してもよい。いくつかの実施形態では、1つ以上の補助期間は、補助メディアプレゼンテーション記述(MPD)における1つ以上の期間の前に配置されてもよい。
【0039】
動作620において、MSEソースバッファ内の1つ以上のメインメディアセグメント及び1つ以上の補助メディアセグメントは、1つ以上のそれぞれのメインタイムスタンプオフセット及び1つ以上の補助期間に基づいてディスパッチされてもよい。いくつかの実施形態では、1つ以上の補助メディアセグメントの中の補助メディアセグメントは、開始時間属性が0であることに基づいて、1つ以上のメインメディアセグメントの前に再生されるプレロールメディアセグメントでもよい。同じ実施形態又は異なる実施形態では、補助メディアセグメントに関連するMSEソースバッファのタイムスタンプオフセットは、補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しくなるように設定又は初期化されてもよい。
【0040】
いくつかの実施形態では、MSEソースバッファのタイムスタンプオフセットは、メインメディアセグメントが停止又は再開されることに基づいて更新されてもよい。動作625において、MSEソースバッファのタイムスタンプオフセットは、タイムシフトバッファの深さ、開始時間属性、全てのプレロールメディアセグメントの合計持続時間、及び1つ以上のメインメディアセグメントの第1のメインメディアセグメントに関連するプレゼンテーション時間オフセットに基づいて更新されてもよい。いくつかの実施形態では、上記の更新は、最後のプレロール補助メディアセグメントがMSEソースバッファに追記されたことに基づいてもよい。更新されたMSEソースバッファのタイムスタンプオフセットは、最後のプレロール補助メディアセグメントと第1のメインメディアセグメントとの間の閾値の時間範囲を含んでもよい。
【0041】
いくつかの実施形態では、MSEソースバッファのタイムスタンプオフセットは、MSEソースバッファ内の1つ以上の補助メディアセグメントのうち1つがディスパッチされた場合、1つ以上の補助メディアセグメントのうち1つに関連する戻り時間属性及びプレゼンテーション時間オフセットに基づいて更新されてもよい。
【0042】
同じ実施形態又は他の実施形態では、補助メディアセグメントに関連するMSEソースバッファのタイムスタンプオフセットは、補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しくてもよく、1つ以上の補助メディアセグメントの中の補助メディアセグメントに基づくものがプレロール補助メディアセグメントである。
【0043】
図6はプロセス600の例示的なブロックを示しているが、実施形態では、プロセス600は、
図6に示すものよりも多いブロック、少ないブロック、異なるブロック又は異なる配置のブロックを含んでもよい。実施形態では、プロセス600のいずれかのブロックは、必要に応じて組み合わされてもよく、或いは、いずれかの量又は順序で配置されてもよい。実施形態では、プロセス600の2つ以上のブロックが並行に実行されてもよい。
【0044】
上記の技術は、コンピュータ読み取り可能命令を使用してコンピュータソフトウェアとして実装され、1つ以上のコンピュータ読み取り可能媒体に物理的に記憶されることができ、或いは、特に構成された1つ以上のハードウェアプロセッサにより実装されることができる。例えば、
図7は、様々な実施形態を実装するのに適したコンピュータシステム700を示す。
【0045】
コンピュータソフトウェアは、いずれかの適切な機械コード又はコンピュータ言語を使用して符号化でき、当該機械コード又はコンピュータ言語は、命令を含むコードを生成するために、アセンブリ、コンパイル、リンク又は類似のメカニズムを受けてもよく、当該命令は、コンピュータ中央処理装置(CPU, central processing unit)、グラフィックス処理ユニット(GPU, Graphics Processing Unit)等によって、直接的に或いはインタープリタ、マイクロコード実行等を通じて実行できる。
【0046】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットのデバイス等を含む様々なタイプのコンピュータ又はその構成要素上で実行できる。
【0047】
コンピュータシステム700について
図7に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲又は機能に関する如何なる限定も示唆することを意図するものではない。また、構成要素の構成も、コンピュータシステム700の例示的な実施形態に示される構成要素のいずれか1つ又は組み合わせに関する如何なる依存性又は要件も有するものとして解釈されるべきではない。
【0048】
コンピュータシステム700は、特定のヒューマンインタフェース入力デバイスを含んでもよい。このようなヒューマンインタフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動き等)、オーディオ入力(音声、拍手等)、視覚入力(ジェスチャ等)、嗅覚入力を通じて、1人以上の人間のユーザによる入力に応答してもよい。また、ヒューマンインタフェースデバイスは、オーディオ(例えば、会話、音楽、周辺音)、画像(スキャンされた画像、静止画カメラから取得された写真画像等)、ビデオ(2次元ビデオ、立体ピクチャを含む3次元ビデオ等)のような、人間による意識的入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用できる。
【0049】
入力ヒューマンインタフェースデバイスは、キーボード701、マウス702、トラックパッド703、タッチ画面710、ジョイスティック705、マイクロフォン706、スキャナ708、カメラ707のうち1つ以上を含んでもよい(それぞれ1つのみが図面に示されている)。
【0050】
また、コンピュータシステム700は、特定のヒューマンインタフェース出力デバイスを含んでもよい。このようなヒューマンインタフェース出力デバイスは、例えば、触覚出力、音、光及び嗅覚/味覚を通じて、1人以上の人間のユーザの感覚を刺激してもよい。このようなヒューマンインタフェース出力デバイスは、触覚出力デバイス(例えば、タッチ画面710又はジョイスティック705による触覚フィードバック、ただし、入力デバイスとして機能しない触覚フィードバックデバイスが存在し得る)と、オーディオ出力デバイス(スピーカ709、ヘッドフォン等)と、視覚出力デバイス(それぞれがタッチ画面入力機能を有しても有さなくてもよく、それぞれが触覚フィードバック機能を有しても有さなくてもよく、いくつかが2次元視覚出力又は立体出力のような手段を通じた3次元以上の出力を出力可能でもよいCRT画面、LCD画面、プラズマ画面、OLED画面を含む画面710、仮想現実メガネ、ホログラフィックディスプレイ及びスモークタンク)と、プリンタとを含んでもよい。
【0051】
また、コンピュータシステム700は、CD/DVD711又は同様の媒体を有するCD/DVD ROM/RW720を含む光媒体のような人間がアクセス可能な記憶デバイス及び関連する媒体、サムドライブ722、取り外し可能ハードドライブ又はソリッドステートドライブ723、テープ及びフロッピーディスクのようなレガシー磁気媒体、セキュリティドングルのような特殊なROM/ASIC/PLDに基づくデバイス等を含んでもよい。
【0052】
また、当業者は、ここに開示の対象物に関連して使用される用語「コンピュータ読み取り可能媒体」が伝送媒体、搬送波又は他の非一時的な信号を含まないことを理解すべきである。
【0053】
また、コンピュータシステム700は、1つ以上の通信ネットワーク798へのインタフェース799を含むことができる。ネットワーク798は、例えば、無線、有線、光とすることができる。ネットワーク798は、ローカル、広域、メトロポリタン、車両及び産業、リアルタイム、遅延耐性等とすることができる。ネットワーク798の例は、イーサネット、無線LAN、セルラネットワーク(GSM、3G、4G、5G、LTE等を含む)、TV有線又は無線広域デジタルネットワーク(ケーブルTV、衛星TV、及び地上放送TVを含む)、車両及び産業(CANBusを含む)等を含む。特定のネットワーク798は、一般的に、特定の汎用データポート又は周辺バス(750及び751)に取り付けられる外部ネットワークインタフェースアダプタ(例えば、コンピュータシステム700のUSBポート等)を必要とし、他のネットワークインタフェースアダプタは、一般的に、以下に説明するシステムバス(例えば、PCコンピュータシステムへのイーサネットインタフェース又はスマートフォンコンピュータシステムへのセルラネットワーク)に取り付けられることによって、コンピュータシステム700のコアに統合される。これらのネットワーク798のいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。このような通信は、一方向の受信のみ(例えば、放送TV)、一方向の送信のみ(例えば、特定のCANbusデバイスへのCANbus)とすることができ、或いは、例えば、ローカル又は広域デジタルネットワークを使用する他のコンピュータシステムへの双方向とすることができる。特定のプロトコル及びプロトコルスタックは、上記のようなネットワーク及びネットワークインタフェースのそれぞれにおいて使用できる。
【0054】
上記のヒューマンインタフェースデバイス、人間がアクセス可能な記憶デバイス及びネットワークインタフェースは、コンピュータシステム700のコア740に取り付けられることができる。
【0055】
コア740は、1つ以上の中央処理装置(CPU)741、グラフィックス処理ユニット(GPU)742、グラフィックスアダプタ717、フィールドプログラマブルゲートアレイ(FPGA, Field Programmable Gate Area)743の形式の特殊なプログラム可能処理ユニット、特定のタスク用のハードウェアアクセラレータ744等を含むことができる。これらのデバイスは、読み取り専用メモリ(ROM)745、ランダムアクセスメモリ746、内部大容量記憶装置(内部のユーザアクセス不可能なハードドライブ、SSD等)747と共に、システムバス748を通じて接続されてもよい。いくつかのコンピュータシステムでは、システムバス748は、更なるCPU、GPU等による拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能とすることができる。周辺デバイスは、コアのシステムバス748に直接取り付けられることができ、或いは、周辺バス751を通じて取り付けられることができる。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0056】
CPU741、GPU742、FPGA743及びアクセラレータ744は特定の命令を実行でき、当該特定の命令は、組み合わせによって上記のコンピュータコードを構成できる。当該コンピュータコードは、ROM745又はRAM746に記憶できる。また、一時的なデータは、RAM746に記憶できるが、永続的なデータは、例えば、内部大容量記憶装置747に記憶できる。1つ以上のCPU741、GPU742、大容量記憶装置747、ROM745、RAM746等と密接に関連できるキャッシュメモリを使用することによって、メモリデバイスのいずれかへの高速記憶及び検索が可能になる。
【0057】
コンピュータ読み取り可能媒体は、様々なコンピュータに実装された動作を実行するためのコンピュータコードを有することができる。媒体及びコンピュータコードは、本開示の目的のために特に設計及び構築でき、或いは、コンピュータソフトウェア分野における当業者に周知で入手可能なようなものとすることができる。
【0058】
限定ではなく一例として、図示のアーキテクチャ、具体的には、コア740を有するコンピュータシステム700は、1つ以上の有形のコンピュータ読み取り可能媒体に具現されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)の結果として機能を提供できる。このようなコンピュータ読み取り可能媒体は、コア内部の大容量記憶装置747又はROM745のような非一時的な性質のコア740の特定の記憶装置と同様に、上記のようなユーザがアクセス可能な大容量記憶装置に関連する媒体とすることができる。本開示の様々な実施形態を実装するソフトウェアは、このようなデバイスに記憶されてコア740によって実行できる。コンピュータ読み取り可能媒体は、特定のニーズに従って、1つ以上のメモリデバイス又はチップを含むことができる。ソフトウェアは、コア740、具体的には、その中のプロセッサ(CPU、GPU、FPGA等を含む)に、RAM746に記憶されたデータ構造を定義し、ソフトウェアによって定義された処理に従ってこのようなデータ構造を修正することを含む、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行させることができる。さらに或いは代替として、コンピュータシステムは、回路(例えば、アクセラレータ744)内に配線されたロジック又は他の方法で具現されたロジックの結果として、機能を提供することができ、当該回路は、本明細書に記載の特定の処理又は特定の処理の特定の部分を実行するために、ソフトウェアの代わりに或いはソフトウェアと共に動作できる。ソフトウェアへの言及は、ロジックを含み、必要に応じて、その逆も可能である。コンピュータ読み取り可能媒体への言及は、必要に応じて、実行するためのソフトウェアを記憶する回路(集積回路(IC)等)、実行するためのロジックを具現する回路又はこれらの双方を含むことができる。本開示は、ハードウェア及びソフトウェアのいずれかの適切な組み合わせを含む。
【0059】
本開示は、いくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換及び様々な代替の等価物が存在する。したがって、当業者は、本明細書に明示的に図示又は記載されていないが、本開示の原理を具現し、したがって、本開示の真意及び範囲内にある多数のシステム及び方法を考案し得ることが認識される。
【国際調査報告】