(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-06
(54)【発明の名称】メディア再生中のプリロールおよびミッドロールコンテンツをサポートするMPEG DASHのための方法および装置
(51)【国際特許分類】
H04N 21/435 20110101AFI20240228BHJP
【FI】
H04N21/435
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023555227
(86)(22)【出願日】2022-09-23
(85)【翻訳文提出日】2023-09-08
(86)【国際出願番号】 US2022044498
(87)【国際公開番号】W WO2023059451
(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
5C164FA25
5C164MB13S
5C164MB44S
5C164UB01S
5C164UB10P
5C164UB21S
(57)【要約】
1つ以上の主要メディアセグメントと、1つ以上の補助MPDを参照する少なくとも1つの補助記述子とを含む主要メディアプレゼンテーション記述子(MPD)を受信することを含む、主要メディアストリームにおいてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達する方法および装置が提供されることがある。補助MPDは、1つ以上の主要メディアセグメントから独立した1つ以上の補助メディアセグメントを含むことがある。本方法は、少なくとも1つの補助記述子を使用して1つ以上の主要MPDにおいて参照される1つ以上の補助MPDを検索することを含むことがあり、1つ以上の補助MPDの補助MPDは、1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含む。1つ以上の補助メディアセグメントおよび1つ以上の主要メディアセグメントは、メディアソース拡張(MSE)ソースバッファに付加されて、ディスパッチされることがある。
【特許請求の範囲】
【請求項1】
HTTPを通じた主要ダイナミックアダプティブストリーミング(DASH)においてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達する方法であって、当該方法は、少なくとも1つのプロセッサによって遂行され、当該方法は、
1つ以上の主要DASHメディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子(MPD)および1つ以上の補助MPDを参照するユニフォームリソースロケータ(URL)を含む少なくとも1つの補助記述子を受信することであって、前記1つ以上の補助MPDの中の補助MPDが、前記1つ以上の主要DASHメディアセグメントから独立した1つ以上の補助メディアセグメントを含む、受信することと、
前記少なくとも1つの補助記述子を使用して前記1つ以上の主要MPDにおいて前記URLによって参照される前記1つ以上の補助MPDを検索することであって、前記1つ以上の補助MPDの前記補助MPDは、前記1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含む、検索することと、
前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントをメディアソース拡張(MSE)ソースバッファに付加することと、
前記1つ以上の補助メディアセグメントと前記1つ以上の主要DASHメディアセグメントとに関連するプレゼンテーション時間オフセットに基づいて、前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントを前記MSEソースバッファからディスパッチすることと、を含む、
方法。
【請求項2】
前記少なくとも1つの補助記述子は、
前記1つ以上の主要DASHメディアセグメントの中の主要DASHメディアセグメントが前記1つ以上の補助メディアセグメントの中の補助メディアセグメントをディスパッチするために停止される第1の時間オフセットを示す開始時間属性と、
前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントをディスパッチした後に再開される第2の時間オフセットを示す戻り時間属性と、を含む、
請求項1に記載の方法。
【請求項3】
当該方法は、前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが停止されること、または前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが再開されることに基づいて、MSEソースバッファタイムスタンプオフセットを更新することを更に含む、請求項2に記載の方法。
【請求項4】
前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントがゼロに等しい前記開始時間属性を有することに基づいて、前記補助メディアセグメントは、プリロール補助メディアセグメントである、請求項2に記載の方法。
【請求項5】
前記補助メディアセグメントが前記プリロール補助メディアセグメントであることに基づいて、前記MSEソースバッファから前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントをディスパッチすることは、前記1つ以上の主要DASHメディアセグメントに先立ってプリロール補助メディアセグメントをディスパッチすることを含む、請求項4に記載の方法。
【請求項6】
前記補助メディアセグメントが前記プリロール補助メディアセグメントであることに基づいて、MSEソースバッファタイムスタンプオフセットが、前記補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しい、請求項5に記載の方法。
【請求項7】
前記MSEソースバッファタイムスタンプオフセットは、時間シフトバッファの深さ、前記補助メディアセグメントに関連する前記開始時間属性、全てのプリロールメディアセグメントの総持続時間、および前記1つ以上の主要DASHメディアセグメントの第1の主要DASHメディアセグメントに関連するプレゼンテーション時間オフセットに基づいて更新され、
前記MSEソースバッファタイムスタンプオフセットは、最後のプリロール補助メディアセグメントと前記第1の主要DASHメディアセグメントとの間の閾値時間範囲を含むように更新される、
請求項6に記載の方法。
【請求項8】
前記MSEソースバッファタイムスタンプオフセットは、前記MSEソースバッファ内の前記1つ以上の補助メディアセグメントのうちの1つがディスパッチされるときに前記1つ以上の補助メディアセグメントのうちの前記1つに関連するプレゼンテーション時間オフセットおよび前記戻り時間属性に基づいて更新される、請求項7に記載の方法。
【請求項9】
デフォルトの戻り時間属性値が、前記補助メディアセグメントに関連する前記補助メディアプレゼンテーション持続時間である、請求項2に記載の方法。
【請求項10】
前記少なくとも1つの補助記述子は、
MPDレベルでの必須特性記述子または補助特性記述子と、
前記少なくとも1つの補助記述子に関連するスキームについてのユニフォームリソース名称(URN)と、
前記1つ以上の補助MPDの中の前記補助MPDに関連するユニフォームリソースロケータ(URL)と、を更に含む、
請求項1に記載の方法。
【請求項11】
HTTPを通じた主要ダイナミックアダプティブストリーミング(DASH)においてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達する装置であって、
コンピュータプログラムコードを格納するように構成される少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスして、前記コンピュータプログラムコードによって命令されるように作動するように構成される、少なくとも1つのプロセッサと、を含み、
前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、1つ以上の主要DASHメディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子(MPD)と、1つ以上の補助MPDを参照するユニフォームリソースロケータ(URL)を含む少なくとも1つの補助記述子とを受信させるように構成される、受信するコードであって、前記1つ以上の補助MPDの中の補助MPDは、前記1つ以上の主要DASHメディアセグメントから独立した1つ以上の補助メディアセグメントを含む、受信するコードと、
前記少なくとも1つのプロセッサに、前記少なくとも1つの補助記述子を使用して前記1つ以上の主要MPDにおいて前記URLによって参照される前記1つ以上の補助MPDを検索させるように構成される、検索するコードであって、前記1つ以上の補助MPDの前記補助MPDは、前記1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含む、検索するコードと、
前記少なくとも1つのプロセッサに、前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントをメディアソース拡張(MSE)ソースバッファに付加させるように構成される、付加するコードと、
前記少なくとも1つのプロセッサに、前記1つ以上の補助メディアセグメントと前記1つ以上の主要DASHメディアセグメントとに関連するプレゼンテーション時間オフセットに基づいて、前記MSEソースバッファから前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントをディスパッチさせるように構成される、ディスパッチするコードと、を含む、
装置。
【請求項12】
前記少なくとも1つの補助記述子は、
前記1つ以上の主要DASHメディアセグメントの中の主要DASHメディアセグメントが前記1つ以上の補助メディアセグメントの中の補助メディアセグメントをディスパッチするために停止される第1の時間オフセットを示す開始時間属性と、
前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントをディスパッチした後に再開される第2の時間オフセットを示す戻り時間属性と、を含む、
請求項11に記載の装置。
【請求項13】
前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが停止されること、または前記1つ以上の主要DASHメディアセグメントの中の前記主要DASHメディアセグメントが再開されることに基づいて、MSEソースバッファタイムスタンプオフセットを更新させるように構成される、第1の更新するコードを更に含む、
請求項12に記載の装置。
【請求項14】
前記1つ以上の補助メディアセグメントの中の前記補助メディアセグメントがゼロに等しい前記開始時間属性を有することに基づいて、前記補助メディアセグメントは、プリロール補助メディアセグメントである、請求項12に記載の装置。
【請求項15】
前記補助メディアセグメントが前記プリロール補助メディアセグメントであることに基づいて、前記1つ以上の補助メディアセグメントおよび前記1つ以上の主要DASHメディアセグメントを前記MSEソースバッファからディスパッチすることは、前記1つ以上の主要DASHメディアセグメントに先立ってプリロール補助メディアセグメントをディスパッチすることを含む、請求項14に記載の装置。
【請求項16】
前記補助メディアセグメントが前記プリロール補助メディアセグメントであることに基づいて、MSEソースバッファタイムスタンプオフセットが、前記補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しい、請求項15に記載の装置。
【請求項17】
前記MSEソースバッファタイムスタンプオフセットは、時間シフトバッファの深さ、前記補助メディアセグメントに関連する前記開始時間属性、全てのプリロールメディアセグメントの総持続時間、および前記1つ以上の主要DASHメディアセグメントの第1の主要DASHメディアセグメントに関連するプレゼンテーション時間オフセットに基づいて更新され、
前記MSEソースバッファタイムスタンプオフセットは、最後のプリロール補助メディアセグメントと前記第1の主要DASHメディアセグメントとの間の閾値時間範囲を含むように更新される、
請求項16に記載の装置。
【請求項18】
前記MSEソースバッファタイムスタンプオフセットは、前記MSEソースバッファ内の前記1つ以上の補助メディアセグメントのうちの1つがディスパッチされるときに前記1つ以上の補助メディアセグメントのうちの前記1つに関連するプレゼンテーション時間オフセットおよび前記戻り時間属性に基づいて更新される、請求項17に記載の装置。
【請求項19】
命令を格納する非一時的なコンピュータ読取可能な媒体であって、
前記命令は、1つ以上の命令を含み、該1つ以上の命令は、少なくとも1つのプロセッサによって実行されるときに、請求項1~10のうちのいずれか1項に記載の方法を実行させる、
非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の参照)
本出願は、2021年10月6日に出願された米国仮出願第63/253,050号、および2022年9月21日に出願された米国出願第17/949,592号に対する優先権を主張し、それらの内容は、それらの全文が、参照により本出願に明示的に援用される。
【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標準は、期間が単一のタイムラインにおける互いの連続である、単一の線形タイムラインを提供する。ISO/IEC 23009-1は、MPDチェーニング(MPD chaining)、すなわち、プリロール広告挿入に使用することができるMPDにおいて再生する(play)ために次のMPDのURLを信号伝達するためのツールも提供する。
【0004】
MPEG DASHは、IPネットワークを通じてマルチメディアコンテンツをストリーミングするための標準を提供する。標準は、メディアコンテンツの線形再生(linear playback)に対処するが、標準は、非線形動作の状況、例えば、メディアセグメントが互いに独立する異なるタイムラインに関連する場合に対処しない。MPDチェーニングおよびプリロール広告挿入は、上述の欠点を克服するために使用されることがある。しかしながら、DASHプレーヤがW3Cメディアソース拡張を使用するときには、MPDチェーニングおよびプリロール広告挿入でさえも失敗する。何故ならば、1つの単一のMSEソースバッファでそのような非線形再生に対処することは非常に困難であるからである。更に、広告がMPDチェーニングまたはプリロール要素を使用する前に、広告が再生されることが予想されるときの、保護されたライブコンテンツの再生のために、W3C暗号化メディア拡張(W3C Encrypted Media Extensions)のときに、MPDチェーニングおよびプリロール広告挿入を使用することができない。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従って、主要メディアコンテンツとは異なる補助コンテンツまたは独立コンテンツを組み合わせる方法が必要とされる。具体的には、プリロール再生(pre-roll playback)またはミッドロール再生(mid-roll playback)として補助コンテンツを主要メディアコンテンツと組み合わせる方法および装置が必要とされる。更に、MPDチェーニングを使用して保護されたライブコンテンツの再生のためにW3C暗号化メディア拡張を処理する方法も必要とされる。
【課題を解決するための手段】
【0006】
本開示は、1つ以上の技術的問題に対処する。本開示は、新しい概念、すなわち、主要メディアプレゼンテーションから補助的なまたは独立したメディアプレゼンテーションを記述するのを可能にすることがあるDASH標準のための補助的プレゼンテーションおよび補助的MPDを実装する方法、プロセス、装置、および非一時的なコンピュータ読取可能媒体を含む。加えて、本開示の実施形態は、主要プレゼンテーション中にプリロールコンテンツおよびミッドロールコンテンツを含めるためのサポートも提供する。
【0007】
本開示の実施形態が、HTTPを通じた主要ダイナミックアダプティブストリーミング(DASH)においてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達する方法を提供することがある。当該方法は、少なくとも1つのプロセッサによって遂行されることがあり、1つ以上の主要DASHメディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子(MPD)および1つ以上の補助MPDを参照するユニフォームリソースロケータ(URL)を含む少なくとも1つの補助記述子を受信することであって、1つ以上の補助MPDの中の補助MPDが、1つ以上の主要DASHメディアセグメントから独立した1つ以上の補助メディアセグメントを含む、受信することと、少なくとも1つの補助記述子を使用して1つ以上の主要MPDにおいてURLによって参照される1つ以上の補助MPDを検索することであって、1つ以上の補助MPDの補助MPDは、1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含む、検索することと、1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをメディアソース拡張(MSE)ソースバッファに付加することと、1つ以上の補助メディアセグメントと1つ以上の主要DASHメディアセグメントとに関連するプレゼンテーション時間オフセットに基づいて、1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをMSEソースバッファからディスパッチすることと、を含むことがある。
【0008】
本開示の実施形態が、HTTPを通じた主要ダイナミックアダプティブストリーミング(DASH)においてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達する装置を提供することがある。当該装置は、コンピュータプログラムコードを格納するように構成される少なくとも1つのメモリと、コンピュータプログラムコードにアクセスして、コンピュータプログラムコードによって命令されるように作動するように構成される、少なくとも1つのプロセッサと、を含むことがある。コンピュータプログラムコードは、少なくとも1つのプロセッサに、1つ以上の主要DASHメディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子(MPD)と、1つ以上の補助MPDを参照するユニフォームリソースロケータ(URL)を含む少なくとも1つの補助記述子とを受信させるように構成される、受信するコードであって、1つ以上の補助MPDの中の補助MPDは、1つ以上の主要DASHメディアセグメントから独立した1つ以上の補助メディアセグメントを含む、受信するコードと、少なくとも1つのプロセッサに、少なくとも1つの補助記述子を使用して1つ以上の主要MPDにおいてURLによって参照される1つ以上の補助MPDを検索させるように構成される、検索するコードであって、1つ以上の補助MPDの補助MPDは、1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含む、検索するコードと、少なくとも1つのプロセッサに、1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをメディアソース拡張(MSE)ソースバッファに付加させるように構成される、付加するコードと、少なくとも1つのプロセッサに、1つ以上の補助メディアセグメントと1つ以上の主要DASHメディアセグメントとに関連するプレゼンテーション時間オフセットに基づいて、MSEソースバッファから1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをディスパッチさせるように構成される、ディスパッチするコードと、を含むことがある。
【0009】
本開示の実施形態が、命令を格納する非一時的なコンピュータ読取可能な媒体を提供することがある。命令は、1つ以上の命令を含むことがあり、1つ以上の命令は、HTTPを通じた主要ダイナミックアダプティブストリーミング(DASH)においてプリロールメディアコンテンツとミッドロールメディアコンテンツとを含む補助メディアを信号伝達するためのデバイスの1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに、1つ以上の主要DASHメディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子(MPD)と、1つ以上の補助MPDを参照するユニフォームリソースロケータ(URL)を含む少なくとも1つの補助記述子と、を受信させ、1つ以上の補助MPDの中の補助MPDは、1つ以上の主要DASHメディアセグメントから独立した1つ以上の補助メディアセグメントを含み、少なくとも1つの補助記述子を使用して1つ以上の主要MPDにおいてURLによって参照される1つ以上の補助MPDを検索させ、1つ以上の補助MPDの補助MPDは、1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含み、1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをメディアソース拡張(MSE)ソースバッファに付加させ、1つ以上の補助メディアセグメントと1つ以上の主要DASHメディアセグメントとに関連するプレゼンテーション時間オフセットに基づいて、1つ以上の補助メディアセグメントおよび1つ以上の主要DASHメディアセグメントをMSEソースバッファからディスパッチさせる。
【図面の簡単な説明】
【0010】
開示される主題事項の更なる構成、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【
図1】実施形態による通信システムの簡略化された図示である。
【0011】
【
図2】実施形態によるストリーミング環境におけるコンポーネントの配置の例示的な図示である。
【0012】
【
図3】実施形態によるDASH処理モデルの簡略化されたブロック図である。
【0013】
【
図4A】実施形態による補助メディアプレゼンテーション記述子(MPD)のメディアソース拡張(MSE)ソースバッファ実装の簡略化された図示である。
【0014】
【
図4B】実施形態によるプリロールおよびミッドロールの補助メディアコンテンツを再生するための補助MPD要素についての例示的なスクリプトである。
【0015】
【
図5】実施形態による補助MPDに基づく積層プレゼンテーションの例示的な図示である。
【0016】
【
図6】実施形態による主要メディアストリーム内のプリロールメディアコンテンツおよびミッドロールメディアコンテンツを含む補助メディアを信号伝達するための例示的なフローチャート図示である。
【0017】
【
図7】実施形態によるコンピュータシステムの簡略図である。
【発明を実施するための形態】
【0018】
以下で議論される提案される構成は、別々に使用されてよく、あるいは任意の順序で組み合わされてよい。更に、実施形態は、処理回路構成(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実装されてよい。一例において、1つ以上のプロセッサは、非時的なコンピュータ読取可能媒体に格納されるプログラムを実行する。
【0019】
図1は、本開示の一実施形態による通信システム100の簡略化されたブロック図を示している。通信システム100は、ネットワーク105を介して相互接続された少なくとも2つの端子102および103を含むことがある。データの一方向伝送のために、第1の端末103は、ネットワーク105を介して他の端末102への伝送するために、ローカル場所でビデオデータをコーティングする(code)ことがある。第2の端末102は、ネットワーク105から他の端末のコーティングされたビデオデータを受信し、コーティングされたデータをデコード(復号化)し、回復されたビデオデータを表示することがある。一方向性データ伝送は、メディア提供アプリケーション(media serving application)などにおいて一般的なことがある。
【0020】
図1は、例えば、ビデオ会議中に起こることがあるコーティングされたビデオの双方向伝送をサポートするために提供される第2のペアの端末101および104を示している。データの双方向伝送のために、各端末101および104は、ネットワーク105を介して他方の端末に伝送するために、ローカル場所でキャプチャされる(取り込まれる)ビデオデータをコーティングすることがある。各端末101および104は、他の端末によって送信されるコーティングされたビデオデータを受信することがあり、コーティングされたデータをデコードすることがあり、回復されたビデオデータをローカルディスプレイデバイスで表示することがある。
【0021】
図1において、端末101、102、103および104は、サーバ、パーソナルコンピュータおよびスマートフォンとして示されることがあるが、本開示の原理は、そのように限定されない。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用ビデオ会議機器との適用を見出す。ネットワーク105は、例えば、有線および/または無線通信ネットワークを含む、端末101、102、103および104の間でコーティングされたビデオデータを伝える任意の数のネットワークを表す。ネットワーク105は、回線交換および/またはパケット交換チャネル内のデータを交換することがある。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本説明の目的のために、ネットワーク105のアーキテクチャおよびトポロジーは、以下に説明されない限り、本開示の動作に重要でないことがある。
【0022】
図2は、一例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示している。実施形態は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティックなどを含むデジタルメディア上の圧縮されたビデオの格納などを含む、他のビデオ対応アプリケーションに適用可能なことがある。
【0023】
ストリーミングシステムが、例えば、非圧縮ビデオサンプルストリーム213を生成する、ビデオソース201、例えば、デジタルカメラを含むことができる、キャプチャサブシステム203を含むことがある。そのサンプルストリーム213は、エンコードされたビデオビットストリームと比較されるときに、高データボリュームとして強調されることがあり、ビデオソース201に結合されるエンコーダ202によって処理されることができる。エンコーダ202は、以下により詳細に説明するような実施形態の態様を可能にするか或いは実装するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較されるときに、より低いデータボリュームとして強調されることがある、エンコード(符号化)されたビデオビットストリーム204は、将来の使用のためにストリーミングサーバ205に格納されることができる。1つ以上のストリーミングクライアント212および207は、ストリーミングサーバ205にアクセスして、エンコードされたビデオビットストリーム204のコピーであることがあるエンコードされたビデオビットストリーム208および206を検索することができる。クライアント212が、エンコードされたビデオビットストリーム208の入力コピーをデコードし、ディスプレイ209または他のレンダリングデバイスでレンダリングされることができる出力ビデオサンプルストリーム210を生成する、ビデオデコーダ211を含むことができる。幾つかのストリーミングシステムにおいて、エンコードされたビデオビットストリーム204、206および208は、特定のビデオコーティング/圧縮標準に従ってエンコードされることができる。それらの標準の例は、上述されており、本明細書で更に記載される。
【0024】
図3は、DASHおよびCMAFイベントを処理するためのサンプルクライアントアーキテクチャのような、サンプルDASH処理モデル300を示している。DASH処理モデル300において、クライアントのメディアセグメント(例えば、広告メディアセグメントおよびライブメディアセグメント)の要求は、マニフェスト303内の記載されたアドレスに基づくことがある。マニフェスト303は、クライアントがメタデータトラックのセグメントにアクセスし、それらを構文解析し、それらをアプリケーション301に送ることがある、メタデータトラックも記述する。
【0025】
マニフェスト303は、MPDイベントまたはイベントを含み、インバンドイベントおよび「moof」パーサ306は、MPDイベントセグメントまたはイベントセグメントを構文解析し、イベントセグメントをイベントおよびメタデータバッファ330に付加することがある。インバンドイベントおよび「moof」パーサ306は、メディアセグメントをフェッチし(取り出し)、メディアセグメントをメディアバッファ340に付加することもある。イベントおよびメタデータバッファ330は、イベントおよびメタデータ情報をイベントおよびメタデータ同期装置(synchronizer)およびディスパッチャ335(dispatcher)に送ることがある。イベントおよびメタデータ同期装置およびディスパッチャ335は、特定のイベントをDASHプレーヤ制御、選択、発見論理302にディスパッチすることがあり、アプリケーション関連イベントおよびメタデータトラックをアプリケーション301にディスパッチすることがある。
【0026】
幾つかの実施形態によれば、MSEは、ファイルフォーマットパーサ350、メディアバッファ340、およびメディアデコーダ345を含む、パイプラインを含むことがある。MSE320は、メディアセグメントの論理バッファであり、ここで、メディアセグメントは、そのメディアセグメントのプレゼンテーション時間に基づいて追跡され、順序付けられることがある。メディアセグメントは、広告MPDに関連する広告メディアセグメントおよびライブMPDに関連するライブメディアセグメントを含むことがあるが、これらに限定されない。各メディアセグメントは、メディアセグメントのタイムスタンプオフセットに基づいて、メディアバッファ340に追加または付加されることがあり、タイムスタンプオフセットは、メディアバッファ340内のメディアセグメントを順序付けるために使用されることがある。
【0027】
本出願の実施形態は、MPDチェーニングを使用して、2つ以上の非線形メディアソースからの線形メディアソース拡張(MSE:media source extension)バッファを構築することに向けられることがあり、非線形メディアソースは、広告MPDおよびライブMPDであることがあり、ファイルフォーマットパーザ350は、ライブMPDに含まれるライブメディアセグメントによって使用される異なるメディアおよび/またはコーデックを処理するために使用されることがある。幾つかの実施形態において、ファイルフォーマットパーサは、ライブメディアセグメントのコーデック、プロファイル、および/またはレベルに基づいて変更タイプ(change type)を発行することがある。
【0028】
メディアセグメントがメディアバッファ340に存在する限り、イベントおよびメタデータバッファ330は、対応するイベントセグメントおよびメタデータを維持する。サンプルDASH処理モデル300は、インバンドおよびMPDイベントに関連するメタデータを追跡するために、時限メタデータトラックパーサ325(timed metadata track parser)を含むことがある。
図3によれば、MSE320は、ファイルフォーマットパーサ350、メディアバッファ340、およびメディアデコーダ345のみを含む。イベントおよびメタデータバッファ330ならびにイベントおよびメタデータ同期装置およびディスパッチャ335は、MSE320にネイティブでなく、MSE320がイベントをネイティブに処理し、それらをアプリケーションに送ることを妨げる。
【0029】
補助プレゼンテーション
【0030】
本開示の実施形態は、MPDの主要メディアプレゼンテーションから独立したメディアプレゼンテーションであるように補助メディアプレゼンテーションを定義する。一例として、主要メディアセグメントから独立した広告メディアセグメントまたはライブメディアセグメントが、補助プレゼンテーションであることがある。補助メディアプレゼンテーションまたは補助メディアセグメントに対する更新は、主要メディアセグメントに影響を及ぼさない。同様に、主要メディアセグメントに対する更新は、補助メディアセグメントに影響を及ぼさない。従って、(補助メディアプレゼンテーションまたは補助プレゼンテーションとも呼ばれる)補助メディアセグメントは、(本開示において主要メディアプレゼンテーションおよびメディアプレゼンテーションとも呼ばれる)主要メディアセグメントから完全に独立することがある。
【0031】
補助MPD
【0032】
MPDは、階層組織におけるメディアプレゼンテーションを含むことがあるメディアプレゼンテーション記述である。MPDは、1つ以上の期間シーケンスを含むことがあり、ここで、各期間は1つ以上の適応セット(adaptation set)を含むことがある。MPD中の各適応セットは、1つ以上の表現を含むことがあり、各表現は1つ以上のメディアセグメントを含む。これらの1つ以上のメディアセグメントは、実際のメディアデータと、エンコードされる、デコードされる、且つ/或いは再生される関連メタデータとを担持する(carry)。補助MPDは、1つ以上の補助メディアセグメントを含むことがあり、一態様によれば、補助MPDに含まれる各補助メディアセグメントは、主要MPD利用可能性開始時に利用可能にされることがある。別の態様または同じ態様によれば、補助MPDは、@mediationPresentationDurationを含まなければならない。メディアプレゼンテーション持続時間は、1つ以上の補助メディアセグメントのプレゼンテーション持続時間を含むことがある。幾つかの実施形態において、メディアプレゼンテーション持続時間は、MPDに含まれる全ての補助メディアセグメントの合計メディアプレゼンテーション時間を含むことがある。
【0033】
上述のように、本開示の実施形態は、主要メディアコンテンツから独立した補助コンテンツを表す補助MPDを定義する。一態様によれば、主要MPDは、補助記述子(auxiliary descriptor)を使用する、少なくとも1つの補助MPDへの、或いは、幾つかの実施形態では、各補助MPDへの参照を含むことがある。補助記述子は、特定の構文を持つことがある。一例として、補助記述子は、EssentialPropertyとして知られる要素を含むことがあり、或いは、補助的MPDを記述または識別することがあるSupplementalPropertyとして知られる要素を含むことがある。補助記述子は、補助記述子のスキームのための特定のユニバーサルリソース名を含むこともある。一例として、補助記述子のための特定のURNが、“urn:mpeg:dash:auxiliary:2021”のような@schemeを含むことがある。補助記述子は、補助MPD URL、開始時間値、および戻り時間値を含むことがある、@値を含むこともある。
【0034】
一態様によれば、(本開示では開始値、開始時間属性、および単に開始とも呼ばれる)開始時間値は、主要メディアプレゼンテーションが停止され、補助メディアプレゼンテーションが再生される、主要メディアプレゼンテーションにおける瞬間を表すことがある。幾つかの実施形態では、補助メディアセグメントについて開始=0であるならば、補助メディアプレゼンテーションは、プリロール補助メディアセグメントであることがある。補助メディアプレゼンテーションがプリロール補助メディアセグメントであるならば、補助メディアセグメントは、主要メディアセグメントを再生する前に初めて再生されることがある。
【0035】
一態様によれば、(「returnType」と呼ばれることもある)戻り時間値は、主要メディアプレゼンテーションが補助MPDまたは1つ以上の補助メディアセグメントを再生するために停止される主要メディアタイムライン内の瞬間からのオフセットを表すことがある。幾つかの実施形態において、retunTime値についてのデフォルト値は、補助MPDに関連するメディアプレゼンテーション持続時間である。ゼロのreturnTime値が、補助メディアセグメントを再生するために主要メディアプレゼンテーションが停止された瞬間で、主要メディアプレゼンテーションの参加(joining)をもたらす。
【0036】
図4Bは、実施形態による、プリロールおよびミッドロール補助メディアコンテンツを再生するために補助MPD要素を可能にするxmlコードを示す例示的なスクリプト450である。
【0037】
図4Bに示されるように、@id=“e0”を持つEssentialProperty記述子によって記述される補助MPDは、プリロールメディアセグメントであることがある一方で、@id=“e1”および@id=“e2”を持つEssentialProperty記述子によって記述される補助MPDは、ミッドロールメディアセグメントであることがある。幾つかの実施形態において、補助MPDは、補助MPD内の1つ以上の期間の前に開示されてもよい。
【0038】
MSEソースバッファでの補助MPDの実装。
【0039】
W3C MSEは、シーケンシャルバッファである。コンテンツが順番に再生されることが期待され、正しい場所に付加されるように、MSEソースバッファTimeStamp Offset(TSO)が適切に設定される限り、MSEソースバッファは、コンテンツを正しく再生する。一実施形態によれば、主要プレゼンテーションが補助プレゼンテーションに切り替えられるか或いはそれが主要プレゼンテーションに切り替えられて戻る各瞬間に、MSEタイムスタンプオフセットは、主要メディアセグメントおよび補助メディアセグメントをMSEバッファの正しい場所に配置するように調整されることがある。
【0040】
【0041】
図400に示されるように、補助MPD Aux e0は、プリロールMPDであることがあり、Aux e1およびAux e2は、ミッドロールMPDであることがある。ライブコンテンツp0は、1つ以上の主要メディアセグメントを含む主要MPDであることがある。
【0042】
Aux e0は、プリロールMPDであるので、Aux e0からの1つ以上の補助メディアセグメントはフェッチされて、あらゆる主要メディアセグメントの前で、MSEソースバッファの先頭に配置されることがある。Aux e0においてプリロール補助メディアセグメントを取り込んで付加するときに、MSE TSOは、ゼロである。
【数1】
【0043】
幾つかの実施形態において、各プリロール補助メディアセグメントをフェッチして付加することに続いて、MSE TSOは、ライブメディアp0の開始時間、ライブメディアp0のプレゼンテーション時間、および時間シフトバッファ深さに基づいて更新されてよい。一例として、
図4Aにおいて、T1は、時間シフトバッファの深さ、プリロール補助メディアセグメントの持続時間、およびライブメディアに関連するプレゼンテーション時間オフセットに基づくことがある。
【数2】
【0044】
ミッドロール補助MPD aux e1およびaux e2について:
【数3】
【数4】
【数5】
【数6】
【0045】
ここで、e0@PTO、e1@PTO、およびe2@PTOは、その順序において基本的な記述子でリンクされた補助MPDにおける第1の期間のプレゼンテーション時間オフセットであり、ei@starttimeおよびei@returnTimeは、id=eiを持つ各対応する記述子における開始時間値およびretunTime値である。
【0046】
実施形態によれば、MSE TSOを更新することは、以下に基づくことがある。
【0047】
プリロール補助メディアセグメントは、MSE付加ウインドウ開始(0)から開始することがある。プリロール補助メディアセグメントが先ずフェッチされて付加されるので、MSE TSOは、補助MPDのPTOに等しく設定される(例えば、式(1)を参照)。
【0048】
幾つかの実施形態では、プリロール補助メディアセグメントの最後のセグメントを付加した後に、ライブメディアまたは主要メディアセグメントに関連するライブエッジが計算されることがある。DVRウインドウのサイズ、ライブエッジ、プリロール補助MPDまたはメディアセグメントの期間開始および持続時間、およびライブコンテンツのPTOを使用して、MSE TSOは、MSEバッファに付加される第1のメディアセグメントと以前に追加されたプリロール補助MPDの最後のセグメントとの間に閾値時間範囲があるように調整されることがある。一例として、式(2)を参照のこと。幾つかの実施形態において、閾値は、DVRウインドウよりも小さくてよく、DVRウインドウに等しくてよく、或いはDVRウインドウよりも大きくてよい。DVRウインドウは、クライアントが主要メディアストリーム内のより早い時点でスクラブバックするか(scrub back)或いは再生を開始する能力を含むことがある。
【0049】
実施形態によれば、各々の付加された補助MPDまたはメディアセグメントで、ライブエッジからのそのオフセットが計算される。MSE TSOは、このオフセットによって増加され、ライブ期間PTOおよび補助MPD/メディアセグメントのPTOに基づいて調整される。別の実施形態または同じ実施形態として、各補助MPD/メディアセグメントの端で、MSE TSOは、補助MPD/メディアセグメントのreturnTime、ライブ期間PTO、および補助MPD/メディアセグメントのPTOに基づいて調整される。
【0050】
幾つかの実施形態では、プリロール補助MPD/メディアセグメントの再生において、クライアントは、プリロール補助MPD/メディアセグメント時間範囲をMSEから除去することを決定することがあり、従って、プリロールは、1回だけ再生されることがある。幾つかの実施形態では、DVRがアクセスされるならば、プリロールは再生されないことがある。クライアントは、ライブセッションに参加した後に、timeShiftBufferDepthの値に従って、MSE付加ウィンドウバッファから時間範囲を除去してよもい。
【0051】
図5は、補助MPDに基づくスタッキングプレゼンテーション(staking presentations)を示す例示的なスタッカープレゼンテーション500(stacker presentation)である。
【0052】
図5に見られるように、組み合わされたプレゼンテーションは、ライブコンテンツ(主要メディア)で開始することがあり、1つ以上の独立した補助メディアセグメントを含むこともある。Aux MPD1が主要MPDにおいて参照されることに基づいて、ライブコンテンツ(主要メディアセグメント)のプレゼンテーションを停止して、Aux1からの補助メディアセグメントを代わりに提示してよい。
【0053】
幾つかの実施態様では、Aux MPD2がAux MPD1において参照されることに基づいて、Aux1からの補助メディアセグメントの提示(プレゼンテーション)を停止し、Aux2からの補助メディアセグメントを代わりに再生および/またはディスパッチしてよい。Aux1の端およびAux1からの補助メディアセグメントおよびAux2の端およびAux2からの補助メディアセグメントで、プレゼンテーションは、ライブコンテンツに切り替わって戻ってよい。よって、主要メディアストリームが補助媒体ストリームと無関係であるとき、補助メディアセグメント(またはプレゼンテーション)は、プリロール補助メディアまたはミッドロール補助メディアとしてMSEソースバッファによってサポートされることがある。
【0054】
従って、本開示の実施形態は、メディアプレゼンテーションにプリロールおよびミッドロールコンテンツを挿入することによってMPDにおいて定義された主要メディアプレゼンテーションから補助メディアプレゼンテーションに信号伝達する方法および装置を提供することがある。各補助プレゼンテーションは、補助MPDへのURLを含むことがあるMPD中の必須記述子または補足記述子によって表現されることがある。主要メディアプレゼンテーションの停止と再度の参加の時刻を含む追加の制約があることがあり、同じ記述子中の開始時刻値およびreturnTime値によって定義されることがある。幾つかの実施形態において、補助MPDは、主要コンテンツの再生または補助コンテンツの中央ロール挿入前に、プレロール補助コンテンツの再生に使用されることがある。制約は、主要メディアプレゼンテーションが中央ロール後に時間シフトされる必要がある場合があるかどうか、或いは中央ロールが補助MPDのその期間中に主要コンテンツを置き換えるかどうかも定義することがある。幾つかの実施形態において、MPD期間は、補助MPDから独立して更新されることがあり、MSEおよびEMEは、主要コンテンツおよび補助コンテンツの再生のために単一のMSEバッファを持つことがある。何故ならば、バッファは、主要コンテンツ特徴を考慮して設定されることがあるからである。
【0055】
本開示の実施形態は、本開示の実施形態に従って調整されるMSE TSOに基づいて、プリロール補助コンテンツ、ミッドロール補助コンテンツ、および主要コンテンツのための様々なセグメントを付加する動作を定義することによって、MSEソースバッファを使用する主要コンテンツと共に補助コンテンツをフェッチし且つ再生する方法および装置も提供することがある。
【0056】
本開示の実施形態は、本明細書の任意の実施形態による補助MPDのスタック動作によってプレゼンテーションを組み合わせることに向けられることがあり、各主要MPDは、補助MPDへの参照を有することがあり、補助MPDは、スタックプレゼンテーションをもたらす参照されたMPDのスタックを生成する別の補助MPDを参照することがある。
【0057】
図6は、主要メディアストリーム内のプリロールメディアコンテンツおよびミッドロールメディアコンテンツを含む補助メディアに信号伝達するプロセス600の例示的なフローチャートである。
【0058】
動作610で、1つ以上の主要メディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述子および1つ以上の補助MPDを参照する少なくとも1つの補助記述子が受信されることがある。一例として、MSE320は、1つ以上の主要メディアセグメントを含む1つ以上の主要メディアプレゼンテーション記述および1つ以上の補助MPDを参照する少なくとも1つの補助記述子が受信されることがある。幾つかの実施形態において、1つ以上の補助MPDの中の補助MPDは、1つ以上の主要なメディアセグメントから独立した1つ以上の補助メディアセグメントを含むことがある。補助記述子は、1つ以上の主要メディアセグメントの中の主要メディアセグメントが1つ以上の補助メディアセグメントの中の補助メディアセグメントをディスパッチするために停止されることがある第1の時間オフセットを示す開始時間属性を含むことがある。
【0059】
補助記述子は、1つ以上の補助メディアセグメントの中の補助メディアセグメントをディスパッチした後に、1つ以上の主要メディアセグメントの中の主要メディアセグメントが再開されることがある第2の時間オフセットを示す戻り時間属性を含むことがある。幾つかの実施形態では、デフォルトの戻り時間属性値は、補助メディアセグメントに関連する補助メディアプレゼンテーション持続時間であることがある。幾つかの実施形態において、補助記述子は、MPDレベルでの必須特性記述子または補足特性記述子、少なくとも1つの補助記述子に関連するスキームのためのユニフォームリソース名称(URN:uniform resource name)、または1つ以上の補助MPDの中の補助MPDに関連するユニフォームリソースロケータ(uniform resource locator)を含むことがある。
【0060】
動作615で、1つ以上の主要MPD内で参照される1つ以上の補助MPDは、少なくとも1つの補助記述子を使用して検索される(retrieved)ことがある。一例として、MSE320は、1つ以上の主要MPDの中で参照される1つ以上の補助MPDを検索することがあり、少なくとも1つの補助記述子を使用することがある。1つ以上の補助MPDの補助MPDは、1つ以上の補助メディアセグメントと、補助メディアプレゼンテーション持続時間とを含むことがある。
【0061】
動作620で、1つ以上の補助メディアセグメントおよび1つ以上の主要メディアセグメントは、MSE320のようなメディアソース拡張(MSE)ソースバッファに追加されることがある。
【0062】
幾つかの実施形態では、ゼロに等しい開始時間属性を有する1つ以上の補助メディアセグメントの中の補助メディアセグメントに基づいて、補助メディアセグメントは、プリロール補助メディアセグメントであることがあり、プリロール補助メディアセグメントは、1つ以上の主要メディアセグメントの前にディスパッチされることがある。
【0063】
動作625で、MSEソースバッファからの1つ以上の主要メディアセグメントおよび1つ以上の補助メディアセグメントは、1つ以上の補助メディアセグメントおよび1つ以上の主要メディアセグメントに関連するプレゼンテーション時間オフセットに基づいてディスパッチされることがある。一例として、MSE320は、時限メタデータトラックパーサ325、イベントおよびメタデータバッファ330、ならびにイベントおよびメタデータ同期装置およびディスパッチャ335からのタイミング情報に基づいて、1つ以上の補助メディアセグメントおよび1つ以上の主要メディアセグメントをディスパッチすることがある。
【0064】
動作630で、MSEソースバッファタイムスタンプオフセットは、停止されている1つ以上の主要メディアセグメントの中の主要メディアセグメントまたは再開されている1つ以上の主要メディアセグメントの中の主要メディアセグメントに基づいて更新されることがある。一例として、MSE320は、更新されることがある。
【0065】
幾つかの実施形態において、MSEソースバッファタイムスタンプオフセットは、補助メディアセグメントに関連するプレゼンテーション時間オフセットに等しいことがある。幾つかの実施形態において、MSEソースバッファのタイムスタンプオフセットは、時間シフトバッファの深さ、補助メディアセグメントに関連する開始時間属性、全てのプリロールメディアセグメントの総持続時間、および1つ以上の主要メディアセグメントの第1の主要メディアセグメントに関連するプレゼンテーション時間オフセットに基づいて更新されることがある。同じまたは異なる実施形態において、MSEソースバッファタイムスタンプオフセットは、最後のプリロール補助メディアセグメントと第1の主要メディアセグメントとの間の閾値時間範囲を含むように更新されることがある。幾つかの実施形態において、MSEソースバッファタイムスタンプオフセットは、MSEソースバッファ内の1つ以上の補助メディアセグメントのうちの1つがディスパッチされるときに、1つ以上の補助メディアセグメントのうちの1つに関連するプレゼンテーション時間オフセットおよび戻り時間属性に基づいて更新されることがある。
【0066】
図6は、プロセス600の例示的なブロックを示しているが、実施形態において、プロセス600は、
図6に示されているものよりも、追加のブロック、より少ないブロック、異なるブロック、または異なって配置されるブロックを含むことがある。実施形態において、プロセス600の任意のブロックは、必要に応じて、任意の量または順序で結合または配置されてよい。実施形態では、プロセス600のブロックのうちの2つ以上が並列に実行されることがある。
【0067】
上述の技術は、1つ以上のコンピュータ読取可能な媒体に格納されるコンピュータ読取可能な命令を使用して或いは特別に構成された1つ以上のハードウェアプロセッサによって実装されることができる。例えば、
図7は、様々な実施形態を実装するのに適したコンピュータシステム700を示している。
【0068】
コンピュータソフトウェアは、コンピュータ中央処理装置(CPUs)、グラフィックス処理装置(GPUs)などによって、直接的に、或いは解釈、マイクロコード実行などを通じて実行可能されることができる命令を含むコードを作成するために、アセンブリ、コンパイル、リンク、または同様のメカニズムの対象となることがある任意の適切な機械コードまたはコンピュータ言語を使用してコード化されることができる。
【0069】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはそれらのコンポーネント上で実行されることができる。
【0070】
コンピュータシステム700のための
図7に示されるコンポーネントは、本質的に例示的であり、本開示の実施形態を実装するコンピュータソフトウェアの使用範囲または機能性に関する如何なる制限を示唆することも意図しない。また、コンポーネントの構成は、コンピュータシステム700の例示的な実施形態に示されるコンポーネントの任意の1つまたは組み合わせに関する如何なる従属性または要件を有しているものとして解釈されてならない。
【0071】
コンピュータシステム700は、特定のヒューマンインターフェース入力デバイスを含むことがある。そのようなヒューマンインターフェース入力デバイスは、例えば、(キーストローク、スワイプ、データグローブの動きのような)触覚入力、(音声、拍手のような)オーディオ入力、(ジェスチャのような)視覚入力、嗅覚入力を通じる、1人以上の人間ユーザによる入力に応答することがある。ヒューマンインターフェースデバイスは、(発話、音楽、周囲のような)オーディオ、(スキャンされた画像、静止画像カメラから得られる写真画像のような)画像、(二次元ビデオ、立体ビデオを含む三次元ビデオのような)ビデオのような、人間による意識的入力に必ずしも直接関係しない特定のメディアをキャプチャするために使用されることもできる。
【0072】
入力ヒューマンインターフェースデバイスは、(各々の1つのみが図面に示されている)キーボード701、マウス702、トラックパッド703、タッチスクリーン710、ジョイスティック705、マイクロホン706、スキャナ708、カメラ707のうちの1つ以上を含むことがある。
【0073】
コンピュータシステム700は、特定のヒューマンインターフェース出力デバイスを含むこともある。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて、1人以上の人間ユーザの感覚を刺激することがある。そのようなヒューマンインターフェース出力デバイスは、(例えば、タッチスクリーン710またはジョイスティック705による触覚フィードバック、しかしながら、入力デバイスとして機能しない触覚フィードバックデバイスもあり得る)触覚出力デバイス、(スピーカ709、ヘッドフォンのような)オーディオ出力デバイス、(各々がタッチスクリーン入力能力を持つ或いは持たない、各々が触覚フィードバック能力を持つ或いは持たない-それらの一部は、立体出力、仮想現実メガネ、ホログラフィックディスプレイおよびスモークタンクのような手段を通じて二次元視覚出力または三次元よりも多くの次元の出力を出力し得ることがある、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含む、スクリーン710のような)視覚出力デバイス、およびプリンタを含むことがある。
【0074】
コンピュータシステム700は、CD/DVD 711または類似の媒体を持つCD/DVD ROM/RW720を含む光媒体、親指駆動装置722、取り外し可能なハードドライブまたはソリッドステートドライブ723、テープおよびフロッピーディスクのようなレガシー磁気媒体、セキュリティドングルのようなデバイスに基づく特殊化されたROM/ASIC/PLDベースのデバイスのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むこともできる。
【0075】
当業者は、現在開示されている主題事項に関連して使用されるような「コンピュータ読取可能な媒体」という用語が、伝送媒体、搬送波、または他の過渡信号を包含しないことも理解するはずである。
【0076】
コンピュータシステム700は、1つ以上の通信ネットワーク798へのインターフェース799を含むこともできる。ネットワーク798は、例えば、無線、有線、光であることができる。ネットワーク798は、更に、ローカル、ワイドエリア、メトロポリタン、車両および産業、リアルタイム、遅延耐性などであることができる。ネットワーク798の例は、イーサネット、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラーネットワーク、ケーブルTV、衛星TV、地上放送TVを含むTV配線または無線ワイドエリアデジタルネットワーク、CANBusを含む車両および産業のような、ローカルエリアネットワークを含む。特定のネットワーク798は、一般に、(例えば、コンピュータシステム700のUSBポートのような)特定の汎用データポートまたは周辺バス(750および751)に取り付けられる外部ネットワークインターフェースアダプタを必要とし、他のものは、一般に、後述するシステムバスへの取り付け(例えば、PCコンピュータシステムへのイーサネットインターフェースまたはスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)によって、コンピュータシステム700のコアに統合される。これらのネットワーク798のいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。そのような通信は、単指向性、受信のみ(例えば、放送テレビ)、単指向性送信のみ(例えば、特定のCANbusデバイスへのCANbus)、または、例えば、ローカルまたはワイドエリアデジタルネットワークを使用する他のコンピュータシステムに対する双指向性であることができる。特定のプロトコルおよびプロトコルスタックは、上述のように、それらのネットワークおよびネットワークインターフェースの各々で使用されることができる。
【0077】
前述のヒューマンインターフェースデバイス、人間がアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム700のコア740に取り付けられることができる。
【0078】
コア740は、1つ以上の中央処理装置(CPU)741、グラフィックス処理装置(GPU)742、グラフィックスアダプタ717、フィールドプログラマブルゲートエリア(FPGA)743の形態の特殊化されたプログラマブル処理装置、特定のタスク用のハードウェアアクセラレータなどを含むことができる。これらのデバイスは、読出し専用メモリ(ROM)745、ランダムアクセスメモリ(RAM)746、内部ユーザアクセス不能ハードドライブ、SSDsなど774などのような内部大容量記憶装置747と共に、システムバス748を通じて接続されることがある。幾つかのコンピュータシステムにおいて、システムバス748は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形態でアクセス可能であることができる。周辺デバイスは、コアのシステムバス748に直接的に取り付けられることができ、或いは周辺バス751を通じて取り付けられることができる。周辺バスのためのアーキテクチャは、PCI、USBなどを含む。
【0079】
CPU741、GPU742、FPGA743、およびアクセラレータ744は、組み合わせにおいて上述のコンピュータコードを構成することができる特定の命令を実行することができる。そのコンピュータコードは、ROM745またはRAM746に格納されることができる。移行データも、RAM746に格納されることができるのに対し、永久データは、例えば、内部大容量記憶装置747に格納されることができる。メモリデバイスのいずれかへの高速格納および検索が、1つ以上のCPU741、GPU742、大容量記憶装置747、ROM745、RAM746などと密接に関連付けられることができるキャッシュメモリの使用を通じて可能にされることができる。
【0080】
コンピュータ読取可能な媒体は、様々なコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであることができ、或いは、それらは、コンピュータソフトウェア技術に熟練した者によく知られ且つ入手可能な種類のものであることができる。
【0081】
限定ではなく、一例として、図示されたアーキテクチャを有するコンピュータシステム700、特にコア740は、1つ以上の有形のコンピュータ読取可能な媒体に具現されるソフトウェアを実行する(CPU、GPU、FPGA、アクセラレータなどを含む)プロセッサの結果としての機能性を提供することができる。そのようなコンピュータ読取可能な媒体は、上述のようなユーザがアクセス可能な大容量記憶装置に関連する媒体、ならびにコア内部大容量記憶装置747またはROM745のような非一時的な性質を有するコア740の特定の記憶装置であることができる。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに格納され、コア740によって実行されることができる。コンピュータ読取可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。ソフトウェアは、コア740、特にその中の(CPU、GPU、FPGAなどを含む)プロセッサに、RAM746に記憶されたデータ構造を定義することおよびソフトウェアによって定義されるプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。追加的にまたは代替的に、コンピュータシステムは、回路(例えば、アクセラレータ744)内に配線される或いはその他の方法で具現される論理の結果としての機能性を提供することができ、それは本明細書に記載される特定のプロセスまたは特定のプロセスの特定の部分を実行するためにソフトウェアの代わりに或いはソフトウェアと共に作動することができる。ソフトウェアへの言及は、論理を含むことができ、必要に応じて、その逆も可能である。コンピュータ読取可能な媒体への言及は、実行のためのソフトウェアを格納する回路、実行のための論理を具現する回路、または、適切な場合にはそれらの両方を包含することができる。本開示は、ハードウェアおよびソフトウェアの任意の適切な組み合わせを包含する。
【0082】
本開示は、幾つかの例示的な実施形態を記載してきたが、本開示の範囲内にある変更、置換、および様々な代替的な等価物がある。よって、当業者は、本明細書に明示的に図示または説明されていないが、本開示の原理を具現する、よって、本開示の精神および範囲内にある、多くのシステムおよび方法を考案することができることが理解されるであろう。
【国際調査報告】