IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7271791混合イベントメッセージトラックを含むメディアシステムおよび方法
<>
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図1
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図2
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図3
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図4
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図5
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図6
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図7
  • 特許-混合イベントメッセージトラックを含むメディアシステムおよび方法 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-28
(45)【発行日】2023-05-11
(54)【発明の名称】混合イベントメッセージトラックを含むメディアシステムおよび方法
(51)【国際特許分類】
   H04N 21/435 20110101AFI20230501BHJP
   H04N 21/434 20110101ALI20230501BHJP
   H04N 21/458 20110101ALI20230501BHJP
【FI】
H04N21/435
H04N21/434
H04N21/458
【請求項の数】 20
(21)【出願番号】P 2022519773
(86)(22)【出願日】2021-04-12
(65)【公表番号】
(43)【公表日】2022-11-30
(86)【国際出願番号】 US2021026789
(87)【国際公開番号】W WO2021211407
(87)【国際公開日】2021-10-21
【審査請求日】2022-03-29
(31)【優先権主張番号】63/009,167
(32)【優先日】2020-04-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】63/088,841
(32)【優先日】2020-10-07
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/220,537
(32)【優先日】2021-04-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【審査官】鈴木 隆夫
(56)【参考文献】
【文献】米国特許出願公開第2019/0149857(US,A1)
【文献】特表2015-530041(JP,A)
【文献】特表2016-527753(JP,A)
【文献】特表2019-526994(JP,A)
【文献】国際公開第2018/016295(WO,A1)
【文献】国際公開第2018/173874(WO,A1)
【文献】米国特許出願公開第2019/0069028(US,A1)
【文献】特開2013-074630(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
複数のイベントメッセージボックスを含むイベントメッセージトラックを取得するステップであって、前記イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成される、ステップと、
前記イベントメッセージトラックに含まれるインジケータを取得するステップであって、前記インジケータは、前記イベントメッセージトラック内の前記複数のイベントメッセージボックスの各タイプを示す、ステップと、
前記イベントメッセージトラックを前記DASHクライアントに提供するか、または前記イベントメッセージトラックに基づいてメディアコンテンツを表示するステップと
を含む方法。
【請求項2】
前記インジケータは、前記複数のイベントメッセージボックスの各々が同じタイプのイベントメッセージボックスであることを示す、請求項1に記載の方法。
【請求項3】
前記インジケータは、前記イベントメッセージトラックが少なくとも2つのタイプのイベントメッセージボックスを含むことを示す、請求項1に記載の方法。
【請求項4】
前記インジケータは、前記複数のイベントメッセージボックスのうちの少なくとも1つがサンプル提示時間に対して負の提示時間オフセットを有することを示す、請求項1に記載の方法。
【請求項5】
前記インジケータがユニフォームリソースネーム(URN)である、請求項1に記載の方法。
【請求項6】
前記インジケータがユニフォームリソースインジケータ(URI)のデータ値である、請求項1に記載の方法。
【請求項7】
インジケータを取得する前記ステップは、前記インジケータを前記イベントメッセージトラックのヘッダに挿入するステップを含む、請求項1に記載の方法。
【請求項8】
前記イベントメッセージトラックは、前記イベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有するかどうかを示すフラグを含むトラックヘッダをさらに含む、請求項1に記載の方法。
【請求項9】
前記トラックヘッダは、前記フラグが前記イベントメッセージトラックのすべてのメタデータサンプルが前記一定のサイズを有することを示す場合に前記イベントメッセージトラックの各メタデータサンプルのサイズを示すシンタックス要素をさらに含む、請求項8に記載の方法。
【請求項10】
前記イベントメッセージトラックは時限メタデータトラックである、請求項1に記載の方法。
【請求項11】
システムであって、
コンピュータコードを記憶する少なくとも1つのメモリと、
前記コンピュータコードにアクセスし、前記コンピュータコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと
を含み、
前記コンピュータコードは、
前記少なくとも1つのプロセッサに、イベントメッセージトラックを取得させるように構成されるイベントメッセージトラック取得コードであって、前記イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成されており、前記イベントメッセージトラック取得コードが、
前記少なくとも1つのプロセッサに、前記イベントメッセージトラックの複数のイベントメッセージボックスを取得させるように構成されたイベントメッセージボックス取得コードと、
前記少なくとも1つのプロセッサに、前記イベントメッセージトラックに含まれるインジケータを取得させるように構成されたインジケータ取得コードであって、前記インジケータは、前記イベントメッセージトラック内の前記複数のイベントメッセージボックスの各タイプを示す、インジケータ取得コード
を含む、イベントメッセージトラック取得コードと、
前記少なくとも1つのプロセッサに、前記イベントメッセージトラックを前記DASHクライアントに提供させるか、または前記イベントメッセージトラックに基づいてメディアコンテンツを表示させるように構成された提供または表示コードと
を含む、システム。
【請求項12】
前記インジケータは、前記複数のイベントメッセージボックスの各々が同じタイプのイベントメッセージボックスであることを示す、請求項11に記載のシステム。
【請求項13】
前記インジケータは、前記イベントメッセージトラックが少なくとも2つのタイプのイベントメッセージボックスを含むことを示す、請求項11に記載のシステム。
【請求項14】
前記インジケータは、前記複数のイベントメッセージボックスのうちの少なくとも1つがサンプル提示時間に対して負の提示時間オフセットを有することを示す、請求項11に記載のシステム。
【請求項15】
前記インジケータがユニフォームリソースネーム(URN)である、請求項11に記載のシステム。
【請求項16】
前記インジケータがユニフォームリソースインジケータ(URI)のデータ値である、請求項11に記載のシステム。
【請求項17】
前記インジケータが前記イベントメッセージトラックのヘッダにある、請求項11に記載のシステム。
【請求項18】
前記イベントメッセージトラックは、前記イベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有するかどうかを示すフラグを含むトラックヘッダをさらに含む、請求項11に記載のシステム。
【請求項19】
前記トラックヘッダは、前記フラグが前記イベントメッセージトラックのすべてのメタデータサンプルが前記一定のサイズを有することを示す場合に前記イベントメッセージトラックの各メタデータサンプルのサイズを示すシンタックス要素をさらに含む、請求項18に記載のシステム。
【請求項20】
なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
複数のイベントメッセージボックスを含むイベントメッセージトラックを取得することであって、前記イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成される、ことと、
前記イベントメッセージトラックに含まれるインジケータを取得することであって、前記インジケータは、前記イベントメッセージトラック内の前記複数のイベントメッセージボックスの各タイプを示す、ことと、
前記イベントメッセージトラックを前記DASHクライアントに提供するか、または前記イベントメッセージトラックに基づいてメディアコンテンツを表示することと
を行わせる、コンピュータプログラム
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年4月13日に出願された米国仮特許出願第63/009,167号、2020年10月7日に出願された米国仮特許出願第63/088,841号、および2021年4月1日に出願された米国特許出願公開第17/220,537号の優先権を主張し、これらの開示はその全体が参照により本明細書に組み込まれる。
【0002】
本開示の実施形態は、メディアストリーミング、より詳細には、ダイナミックアダプティブストリーミングオーバーHTTP(Dynamic Adaptive Streaming over HTTP:DASH)に関する。
【背景技術】
【0003】
ISO/IEC 23009-1のダイナミックアダプティブストリーミングオーバーHTTP(DASH)の規格は、メディアセグメントに関するイベントを搬送するためのイベントメッセージボックスを導入した。ISO/IEC 23000-19の共通メディアアプリケーションフォーマット(common media application format:CMAF)は、各CMAFチャンクの先頭にイベントボックスを含めることを可能にする。CMAFの疎なメタデータトラックの一部としてのイベントメッセージの搬送が、最近議論されている。しかしながら、このようなトラックが、ISO/IEC 14496-12のISOベースメディアファイルフォーマット(ISO Base Media File Format:ISOBMFF)トラックのフラグメント化/フラグメント化解除の要件を満たすかどうかに関して、疑問が提起されている。
【0004】
“Information technology - Coding of audiovisual objects - Part 12: ISO base media file format”,ISO/IEC 14496-12(2015年12月)、“Draft of FDIS of ISO/IEC 23000-19 Common Media Application Format for Segmented Media”,ISO/IEC JTC1/SC29/WG11 MPEG117/16819(2017年4月)、および“Text of ISO/IEC FDIS 23009-1 4th edition”,ISO/IEC JTC 1/SC 29/WG 11 N18609(2019年8月)は、その全体が参照により本明細書に組み込まれる。
【先行技術文献】
【非特許文献】
【0005】
【文献】“Information technology - Coding of audiovisual objects - Part 12: ISO base media file format”,ISO/IEC 14496-12(2015年12月)
【文献】“Draft of FDIS of ISO/IEC 23000-19 Common Media Application Format for Segmented Media”,ISO/IEC JTC1/SC29/WG11 MPEG117/16819(2017年4月)
【文献】“Text of ISO/IEC FDIS 23009-1 4th edition”,ISO/IEC JTC 1/SC 29/WG 11 N18609(2019年8月)
【発明の概要】
【発明が解決しようとする課題】
【0006】
ムービングピクチャーエクスパーツグループ(Moving Pictures Experts Group:MPEG)DASHは、インターネットプロトコル(Internet Protocol:IP)ネットワークにわたりマルチメディアコンテンツをストリーミングするための規格を提供している。この規格は、メディアプレゼンテーション記述(media presentation description:MPD)のイベントおよびMPDにおけるインバンドイベントのシグナリングをサポートするが、疎な時限メタデータトラックコンテンツをシグナリングするための解決策を設けていない。
【0007】
疎な時限メタデータトラックは、MPDイベントおよびインバンドイベントと同様の情報を搬送し得る。しかし、時限メタデータトラックがメタデータサンプルの一部としてイベントメッセージ(event message:emsg)ボックスを搬送する場合、各イベントメッセージボックスはそのタイミングを含み、その時間は各CMAFチャンクまたはトラックの最も早い提示時間をそのアンカーとして使用する。一方、ISOBMFFは、ISOBMFFトラックがいずれかの任意のフラグメント化およびフラグフラグメント化解除のプロセスを経る場合、データのタイミングが保存されることを必要とする。組込まれたイベントを搬送する疎な時限メタデータトラックは、プロセスにおけるチャンクの境界の喪失に起因して、この要件をサポートすることができない場合がある。
【課題を解決するための手段】
【0008】
本開示の実施形態は、v0およびv1イベントメッセージボックスを組み合わせることを可能にする混合イベントメッセージトラックを提供することによって、この問題を解決する。本開示の実施形態は、様々なイベントメッセージトラック、およびトラックヘッダにおけるそれらのタイプのシグナリングをさらに定義する。
【0009】
MPEG DASHは時限メタデータトラックをストリーミングするための方法を提供するが、時限メタデータトラックにおける通常のサンプルは、可変のサイズを有することがある。したがって、特定のサンプルの位置を見つけることは簡単ではなく、セグメント内のすべての過去のサンプルを解析するか、または関連するインデックスセグメントを有することが必要になる。
【0010】
しかし、いくつかのメタデータトラックは、プロデューサがすべてのセグメントのすべてのサンプルについて固定したサイズを維持することができるいくつかのアプリケーションについて固定のサンプル構造を有するように、構成することができる。そのような制約は、トラックのプレーヤのナビゲーションを単純化する。
【0011】
本開示の実施形態は、トラック内の時限メタデータサンプルが固定のサイズサンプルであるかどうかを示し、そうである場合、サンプルのサイズをシグナリングするための方法およびシステムを提供する。したがって、クライアントは、いかなる追加のサイズまたはインデックス情報もなしに、任意の所望の提示時間にわたってトラックにランダムアクセスすることができる。
【0012】
1つまたは複数の実施形態によれば、少なくとも1つのプロセッサによって実行される方法が提供される。方法は、複数のイベントメッセージボックスを含むイベントメッセージトラックを取得するステップであって、イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成される、ステップと、イベントメッセージトラック内の複数のイベントメッセージボックスの各タイプを示すインジケータを取得するステップと、イベントメッセージトラックをDASHクライアントに提供するか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示するステップとを含む。
【0013】
一実施形態によれば、インジケータは、複数のイベントメッセージボックスの各々が同じタイプのイベントメッセージボックスであることを示す。
【0014】
一実施形態によれば、インジケータは、イベントメッセージトラックが少なくとも2つのタイプのイベントメッセージボックスを含むことを示す。
【0015】
一実施形態によれば、インジケータは、複数のイベントメッセージボックスのうちの少なくとも1つがサンプル提示時間に対して負の提示時間オフセットを有することを示す。
【0016】
一実施形態によれば、インジケータはユニフォームリソースネーム(Uniform Resource Name:URN)である。
【0017】
一実施形態によれば、インジケータはユニフォームリソースインジケータ(Uniform Resource Indicator:URI)のデータ値である。
【0018】
一実施形態によれば、インジケータを取得するステップは、インジケータをイベントメッセージトラックのヘッダに挿入するステップを含む。
【0019】
一実施形態によれば、イベントメッセージトラックは、イベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有するかどうかを示すフラグを含むトラックヘッダをさらに含む。
【0020】
一実施形態によれば、トラックヘッダは、フラグがイベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有することを示す場合にイベントメッセージトラックの各メタデータサンプルのサイズを示すシンタックス要素をさらに含む。
【0021】
一実施形態によれば、イベントメッセージトラックは時限メタデータトラックである。
【0022】
1つまたは複数の実施形態によれば、システムが提供される。システムは、コンピュータコードを記憶する少なくとも1つのメモリと、コンピュータコードにアクセスし、コンピュータコードによって命令されるように動作するように構成された少なくとも1つのプロセッサとを含み、コンピュータコードは、少なくとも1つのプロセッサに、イベントメッセージトラックを取得させるように構成されるイベントメッセージトラック取得コードであって、イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成される、イベントメッセージトラック取得コードを含む。イベントメッセージトラック取得コードは、少なくとも1つのプロセッサに、イベントメッセージトラックの複数のイベントメッセージボックスを取得させるように構成されたイベントメッセージボックス取得コードと、少なくとも1つのプロセッサに、イベントメッセージトラック内の複数のイベントメッセージボックスの各タイプを示すインジケータを取得させるように構成されたインジケータ取得コードとを含む。コンピュータコードは、少なくとも1つのプロセッサに、イベントメッセージトラックをDASHクライアントに提供させるか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示させるように構成された提供または表示コードをさらに含む。
【0023】
一実施形態によれば、インジケータは、複数のイベントメッセージボックスの各々が同じタイプのイベントメッセージボックスであることを示す。
【0024】
一実施形態によれば、インジケータは、イベントメッセージトラックが少なくとも2つのタイプのイベントメッセージボックスを含むことを示す。
【0025】
一実施形態によれば、インジケータは、複数のイベントメッセージボックスのうちの少なくとも1つがサンプル提示時間に対して負の提示時間オフセットを有することを示す。
【0026】
一実施形態によれば、インジケータはユニフォームリソースネーム(URN)である。
【0027】
一実施形態によれば、インジケータはユニフォームリソースインジケータ(URI)のデータ値である。
【0028】
一実施形態によれば、インジケータはイベントメッセージトラックのヘッダにある。
【0029】
一実施形態によれば、イベントメッセージトラックは、イベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有するかどうかを示すフラグを含むトラックヘッダをさらに含む。
【0030】
一実施形態によれば、トラックヘッダは、フラグがイベントメッセージトラックのすべてのメタデータサンプルが一定のサイズを有することを示す場合にイベントメッセージトラックの各メタデータサンプルのサイズを示すシンタックス要素をさらに含む。
【0031】
1つまたは複数の実施形態によれば、コンピュータコードを記憶した非一時的なコンピュータ可読媒体が提供される。コンピュータコードは、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、複数のイベントメッセージボックスを含むイベントメッセージトラックを取得することであって、イベントメッセージトラックは、メディアコンテンツを表示するためのダイナミックアダプティブストリーミングオーバーHTTP(DASH)クライアントによって処理されるように構成される、ことと、イベントメッセージトラック内の複数のイベントメッセージボックスの各タイプを示すインジケータを取得することと、イベントメッセージトラックをDASHクライアントに提供するか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示することとを行わせるように構成される。
【0032】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【図面の簡単な説明】
【0033】
図1】本明細書で説明されている方法、装置、およびシステムが実施され得る、一実施形態による環境の図である。
図2図1の1つまたは複数のデバイスの例示的なコンポーネントのブロック図である。
図3】一実施形態によるDASHクライアントの図である。
図4】一実施形態によるイベントタイミングモデルを示す。
図5】一実施形態によるイベントメッセージボックスの例を示す。
図6】一実施形態によるアダプテーションセットの図である。
図7】一実施形態によるメディアおよびメタデータトラックの図である。
図8】一実施形態によるコンピュータコードの図である。
【発明を実施するための形態】
【0034】
図1は、一実施形態による、本明細書に記載の方法、装置、およびシステムを実装可能である環境100の図である。図1に示すように、環境100は、ユーザデバイス110、プラットフォーム120、およびネットワーク130を含んでもよい。環境100のデバイスは、有線接続、無線接続、または有線接続と無線接続との組合せを介して相互接続してもよい。
【0035】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することができる1つまたは複数のデバイスを含む。例えば、ユーザデバイス110は、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、携帯電話(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスまたはスマートウォッチ)、または同様のデバイスなどであってもよい。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信し、および/またはプラットフォームに情報を送信してもよい。
【0036】
プラットフォーム120は、本明細書の他の箇所に記載されるような1つまたは複数のデバイスを含む。いくつかの実装形態では、プラットフォーム120は、クラウドサーバまたはクラウドサーバ群を含んでもよい。いくつかの実装形態では、プラットフォーム120は、特定の要求に応じてソフトウェアコンポーネントを入れ替えできるように、モジュール式に設計されてもよい。したがって、プラットフォーム120は、異なる用途向けに、容易におよび/または迅速に再構成されてもよい。
【0037】
いくつかの実装形態では、図示のように、プラットフォーム120は、クラウドコンピューティング環境122下で動作してもよい。特に、本明細書に記載の実装形態は、プラットフォーム120がクラウドコンピューティング環境122下で動作するものとして説明されているが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよく(すなわち、クラウドコンピューティング環境の外部で実装されてもよい)、または部分的にクラウドベースであってもよい。
【0038】
クラウドコンピューティング環境122は、プラットフォーム120のホストとして機能する環境を含む。クラウドコンピューティング環境122は、プラットフォーム120のホストとして機能する1つまたは複数のシステムおよび/または1つまたは複数のデバイスの物理的位置および構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない計算、ソフトウェア、データアクセス、ストレージなどのサービスを提供してもよい。図示のように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(「コンピューティングリソース124」と総称し、個別に「コンピューティングリソース124」と呼ぶ)を含んでもよい。
【0039】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算および/または通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース124は、プラットフォーム120のホストとして機能してもよい。クラウドリソースは、コンピューティングリソース124で実行される計算インスタンス、コンピューティングリソース124で提供される記憶デバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含んでもよい。いくつかの実装形態では、コンピューティングリソース124は、有線接続、無線接続、または有線接続と無線接続との組合せを介して他のコンピューティングリソース124と通信してもよい。
【0040】
図1にさらに示すように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソース群を含む。
【0041】
アプリケーション124-1は、ユーザデバイス110および/またはプラットフォーム120に提供、またはユーザデバイス110および/またはプラットフォーム120によってアクセスされてもよい1つまたは複数のソフトウェアアプリケーションを含む。アプリケーション124-1は、ユーザデバイス110にソフトウェアアプリケーションをインストールし、ソフトウェアアプリケーション実行する必要性を排除してもよい。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェアおよび/またはクラウドコンピューティング環境122を介して提供可能な任意の他のソフトウェアを含んでもよい。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つまたは複数の他のアプリケーション124-1との間で情報を送受信してもよい。
【0042】
仮想マシン124-2は、物理マシンのようにプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による用途および任意の実マシンに対する対応度に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであってもよい。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供してもよい。プロセス仮想マシンは、単一のプログラムを実行してもよく、単一のプロセスをサポートしてもよい。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって動作してもよく、データ管理、同期、または長期間のデータ転送などのクラウドコンピューティング環境122の基盤を管理してもよい。
【0043】
仮想化ストレージ124-3は、1つまたは複数のストレージシステムおよび/または1つまたは複数のデバイスを含み、1つまたは複数のストレージシステムおよび/または1つまたは複数のデバイスは、コンピューティングリソース124のストレージシステムまたはデバイス内で仮想化技術を使用する。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含んでもよい。ブロック仮想化は、ストレージシステムが物理記憶または異種構造に関係なくにアクセスされ得るような、物理記憶からの論理記憶の抽象化(または分離)を指し得る。分離により、ストレージシステムの管理者がエンドユーザのためにストレージを管理する方法の柔軟性が可能になり得る。ファイル仮想化は、ファイルレベルでアクセスされるデータとファイルが物理的に格納される場所との間の依存関係を排除し得る。これにより、ストレージ使用の最適化、サーバ統合、および/またはスムーズなファイル移行の性能が可能になり得る。
【0044】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)をコンピューティングリソース124などのホストコンピュータ上で同時に実行できるハードウェア仮想化技術を提供してもよい。ハイパーバイザ124-4は、仮想オペレーティングプラットフォームをゲストオペレーティングシステムに提供してもよく、ゲストオペレーティングシステムの実行を管理してもよい。様々なオペレーティングシステムの複数のインスタンスが、仮想化されたハードウェアリソースを共用し得る。
【0045】
ネットワーク130は、1つまたは複数の有線および/または無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば、第5世代(Fifth Generation:5G)ネットワーク、ロングタームエボリューション(Long-Term Evolution:LTE)ネットワーク、第3世代(Third Generation:3G)ネットワーク、符号分割多元接続(Code Division Multiple Access:CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(Public Land Mobile Network:PLMN)、ローカルエリアネットワーク(Local Area Network:LAN)、ワイドエリアネットワーク(Wide Area Network:WAN)、メトロポリタンエリアネットワーク(Metropolitan Area Network:MAN)、電話ネットワーク(例えば、公衆交換電話網(Public Switched Telephone Network:PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組合せなどであってもよい。
【0046】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、あるいは図1に示すものとは異なる配置のデバイスおよび/またはネットワークが存在してもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加的または代替的に、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100の別のデバイスのセットによって実行されるものとして記載される1つまたは複数の機能を実行してもよい。
【0047】
図2は、図1の1つまたは複数のデバイスの例示的なコンポーネントのブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応してもよい。図2に示すように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶部240、入力部250、出力部260、および通信インターフェイス270を含んでもよい。
【0048】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せで実装される。プロセッサ220は、中央処理装置(Central Processing Unit:CPU)、グラフィック処理装置(Graphics Processing Unit:GPU)、加速処理装置(Accelerated Processing Unit:APU)、マイクロプロセッサ、マイクロコントローラ、デジタル・シグナル・プロセッサ(Digital Signal Processor:DSP)、フィールド・プログラマブル・ゲート・アレイ(Field-Programmable Gate Array:FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit:ASIC)、または別のタイプの処理コンポーネントである。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラム可能な1つまたは複数のプロセッサを含む。メモリ230は、ランダム・アクセス・メモリ(Random Access Memory:RAM)、リード・オンリー・メモリ(Read Only Memory:ROM)、および/またはプロセッサ220が使用する情報および/または命令を記憶する別のタイプの動的または静的記憶デバイス(例えば、フラッシュメモリ、磁気メモリ、および/または光メモリ)を含む。
【0049】
記憶部240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、記憶部240は、対応するドライブと共に、ハードディスク(例えば、磁気ディスク、光ディスク、光磁気ディスク、および/またはソリッドステートディスク)、コンパクトディスク(Compact Disc:CD)、デジタル多用途ディスク(Digital Versatile Disc:DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的なコンピュータ可読媒体を含んでもよい。
【0050】
入力部250は、デバイス200がユーザ入力(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)などを介して情報を受信することを可能にするコンポーネントを含む。追加的または代替的に、入力部250は、情報を感知するためのセンサ(例えば、全地球測位システム(Global Positioning System:GPS)コンポーネント、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含んでもよい。出力部260は、デバイス200(例えば、ディスプレイ、スピーカ、および/または1つまたは複数の発光ダイオード(Light-Emitting Diode:LED))からの出力情報を提供するコンポーネントを含む。
【0051】
通信インターフェイス270は、デバイス200が有線接続、無線接続、または有線接続と無線接続との組合せなどを介して他のデバイスと通信することを可能にするトランシーバのようなコンポーネント(例えば、トランシーバおよび/または別個の受信機および送信機)を含む。通信インターフェイス270は、デバイス200が別のデバイスから情報を受信すること、および/または別のデバイスに情報を提供することを可能にしてもよい。例えば、通信インターフェイス270は、イーサネット(登録商標)インターフェイス、光インターフェイス、同軸インターフェイス、赤外線インターフェイス、無線周波数(Radio Frequency:RF)インターフェイス、ユニバーサルシリアルバス(Universal Serial Bus:USB)インターフェイス、Wi-Fi(登録商標)インターフェイス、セルラーネットワークインターフェイスなどであってもよい。
【0052】
デバイス200は、本明細書に記載された1つまたは複数の処理を実行してもよい。デバイス200は、メモリ230および/または記憶部240などの非一時的なコンピュータ可読媒体によって記憶されたソフトウェア命令を実行するプロセッサ220に応答して、これらの処理を実行してもよい。コンピュータ可読媒体は、本明細書では非一時的なメモリデバイスと定義される。メモリデバイスは、単一の物理記憶デバイス内のメモリ空間、または複数の物理記憶デバイスにわたって散在するメモリ空間を含む。
【0053】
ソフトウェア命令は、別のコンピュータ可読媒体から、または通信インターフェイス270を介して別のデバイスから、メモリ230および/または記憶部240に読み込まれてもよい。メモリ230および/または記憶部240に記憶されたソフトウェア命令は、実行されると、本明細書に記載の1つまたは複数のプロセスをプロセッサ220に実行させてもよい。追加的または代替的に、ハードワイヤード回路をソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用して、本明細書に記載の1つまたは複数のプロセスを実行してもよい。よって、本明細書に記載される実施態様は、ハードウェア回路とソフトウェアとのどんな特定の組み合わせにも限定されない。
【0054】
図2に示されるコンポーネントの数および配置は、一例として示されている。実際には、デバイス200は、図2に示されたコンポーネントに対して、追加のコンポーネント、より少ないコンポーネント、異なるコンポーネント、または異なる配置のコンポーネントを含んでもよい。追加的または代替的に、デバイス200のコンポーネントのセット(例えば、1つまたは複数のコンポーネント)は、デバイス200の別のコンポーネントのセットによって実行されるものとして説明される1つまたは複数の機能を実行し得る。
【0055】
図3は、本開示の一実施形態による、MPDイベント301、インバンドイベント302、および疎な時限メタデータトラックイベントを処理するように構成された例示的なDASHクライアント300を示す。DASHクライアント300は、CMAFイベントの処理にも用いることができる。一実施形態によれば、DASHクライアント300は、図1のユーザデバイス100によって実施することができる。
【0056】
非周期的な情報をDASHクライアント300またはアプリケーションにシグナリングするために、イベントを提供することができる。イベントは、時限され得る(例えば、各イベントは、特定のメディアプレゼンテーション時間に開始し、持続時間を有することができる)。イベントは、DASH固有のシグナリングまたはアプリケーション固有のイベントを含み得る。DASHイベントは、スキーム識別子によって識別することができる。アプリケーション固有のイベントの場合、スキーム識別子は、DASHクライアント300が適切なアプリケーションにイベントを転送することができるように、アプリケーションを識別することができる。
【0057】
図3に示すように、DASHクライアント300は、アプリケーション310、DASHプレーヤの制御、選択、およびヒューリスティックロジック315、マニフェストパーサ320、DASHアクセスAPI325、インバンドイベントおよび「moof」(ムービーフラグメントボックス)パーサ330、時限メタデータトラックパーサ335、イベントおよび時限メタデータバッファ340、シンクロナイザおよびディスパッチャ345、ファイルフォーマットパーサ350、メディアバッファ355、メディアデコーダ360、およびHTTPスタック370を含むことができる。
【0058】
図3において、破線は、制御および/または同期を表す。規則的な実線は、イベントおよび/または時限メタデータのフローを表し、太字の実線はメディアデータのフローを表す。制御および/または同期は、例えば、サブスクリプション関数306およびイベント/メタデータAPI307を含むことができる。イベントおよび/または時限メタデータのフローは、例えば、MPDイベント301、インバンドイベント302、時限メタデータ303、およびDASHイベント305を含むことができる。メディアデータのフローは、例えば、メディアセグメント304を含むことができる。
【0059】
DASHクライアント300は、MPDなどのマニフェストを受信することができ、それらを処理することができる。マニフェストは、同期されたマルチメディアプレゼンテーションを形成するために、CMAFスイッチングセットおよび選択セットにグループ化される、独立してパッケージ化されたCMAFトラックの組み合わせおよび同期を記述することができる。マニフェストは、DASHクライアント300に、再生されるべきCMAFトラックを選択し、初期化し、位置合わせを開始し、同期させるための情報を提供し、アクセスし、場合によってはそれらをダウンロードするためのリソースとしてCMAFメディアオブジェクト(例えば、CMAFヘッダ、CMAFチャンク、およびCMAFフラグメント)を識別することができる。CMAFトラックおよびCMAFフラグメントは、解読、復号、および提示スケジューリングを可能にするのに十分な情報を含むことができる。マニフェストはまた、リソース識別および提示記述に加えて、配信プロトコル、ネットワーク管理、認可、ライセンス取得などに関する情報を提供することもできる。マニフェストはまた、トラックがCMAFメディアプロファイルに従うことをシグナリングすることができる。
【0060】
参照のために、CMAFフラグメントは、符号化および復号されるメディアオブジェクトであってもよい。CMAFフラグメントは、ムービーフラグメントボックス(「moof」)およびメディアデータボックス(「mdat」)の1つまたは複数のペアを含むことができる。「moof」および「mdat」の各ペアは、CMAFチャンクと呼ばれることがあり、各CMAFチャンクは、CMAFフラグメントに属するメディアサンプルの連続したサブセットを含むことができる。
【0061】
CMAFトラックは、CMAFメディアプロファイルおよび関連するCMAFヘッダに準拠する提示順序での1つまたは複数のCMAFフラグメントの連続シーケンスであり得る。CMAFヘッダは、CMAFトラック内のすべてのCMAFフラグメントを処理および提示するのに十分なMovieBoxを含み得る。CMAFトラックは、エンコーダおよびISOBMFFファイルパッケージャによって生成されてもよいが、外部メディアアプリケーション仕様によって定義されるリソースとして参照することができるCMAFアドレス指定可能メディアオブジェクトの形態でアクセス可能にされてもよい。
【0062】
DASHクライアント300は、マニフェスト内の記述されたアドレスに基づいてメディアセグメントを要求することができる。マニフェストはまた、メタデータトラックを記述することができる。DASHクライアント300はまた、メタデータトラックのセグメントにアクセスし、それらを解析し、それらをアプリケーションに送信することもできる。
【0063】
また、メディアセグメントのアドレスのうち、DASHマニフェストは、インデックスセグメントのアドレス指定をもたらすことができる。各インデックスセグメントは、1つのセグメント持続時間およびサイズに関する情報を提供することができる。表現インデックスは、所与の表現のすべてのセグメントのインデックス情報を提供することができる。
【0064】
一実施形態によれば、マニフェストパーサ320は、マニフェストからMPDイベント301を解析し、それらをイベントおよび時限メタデータバッファ340に付加することができる。MPDに基づいて、DASHクライアント300は、HTTPスタック370からのセグメントのフェッチおよび解析を管理することができる。セグメントの解析は、インバンドイベントおよび「moof」パーサ330によって実行され得る。インバンドイベントおよび「moof」パーサは、セグメントからのメディアセグメント304を解析してから、それらをメディアバッファ355に付加することができる。インバンドイベントおよび「moof」パーサ330による解析はまた、セグメントからのインバンドイベント302および時限メタデータ303(例えば時限メタデータトラック)の解析を含むことができる。また、時限メタデータトラックパーサ335は、時限メタデータ303のイベントメッセージボックスなどの高いレベルのボックスを解析し、イベントおよび時限メタデータバッファ340に付加することができる。
【0065】
イベントおよび時限メタデータバッファ340は、イベントおよび時限メタデータサンプルをシンクロナイザおよびディスパッチャ345に渡すことができ、これは、イベントおよび時限メタデータシンクロナイザおよびディスパッチャ機能と称されることがある。
【0066】
シンクロナイザおよびディスパッチャ345は、DASHクライアント300固有のイベントをDASHプレーヤの制御、選択、およびヒューリスティックロジック315にディスパッチすることができる。アプリケーション310が特定のイベントおよび/または時限メタデータストリームにサブスクライブされている場合、シンクロナイザおよびディスパッチャ345は、イベント/メタデータAPI307を介して対応するイベントインスタンスおよび/または時限メタデータサンプルをアプリケーション310にディスパッチすることができる。
【0067】
本開示の実施形態は、DASHおよびCMAFにおけるインバンドイベント302を含むことができる。例えば、図4は、本開示の一実施形態によって実施され得る、ISO/IEC 23009-1によって定義されたイベントメッセージ(emsg)ボックスの例示的なタイミングを示す。イベントメッセージボックスは、メディアプレゼンテーション時間に関連するイベントをシグナリングで提供することができ、DASH動作に特有のシグナリングを搬送することができる。
【0068】
図4の図表400に示すように、イベントは、イベント到着時間AT、イベント開始時間ST、およびイベント持続時間DUを有することができる。イベント到着時間ATは、イベントメッセージボックスを含むセグメントの最も早い提示時間であり、メディアタイムラインのイベントメッセージボックスの位置と考えることができる。イベント開始時間STは、イベントがアクティブになるメディアタイムラインの瞬間であってもよい。イベント持続時間DUは、イベントがアクティブである持続時間であってもよい。イベントメッセージボックスは、イベント到着時間AT、イベント開始時間ST、およびイベント持続時間DUを指定するパラメータを含むことができ、またはそのような時間および持続時間を計算することができるパラメータを含むことができる。例えば、図5に示すように、イベントメッセージボックス500は、イベント持続時間DUを指定する「event_duration」のパラメータを含むことができる。
【0069】
イベント開始時間STは、トラック内のイベントを搬送するDASHセグメント(例えば、セグメントS(n-1)~S(n+4)のうちの1つ)やCMAFチャンクの位置からのオフセットを有することができる。一実施形態によれば、図5を参照すると、イベントメッセージボックス500は、トラックのイベントを搬送するDASHセグメントまたはCMAFチャンクの位置からイベント開始時間STのオフセットを指定する「presentation_time_delta」のパラメータを含み得る。
【0070】
イベント開始時間STのアンカーは、イベントメッセージボックスのバージョンによって異なる。
1.イベントメッセージバージョン0では、アンカーは、イベントを搬送するCMAFフラグメント/DASHセグメント410の最も早い提示時間である。
2.イベントメッセージバージョン1では、アンカーは、イベントを搬送するCMAFトラック/DASHピリオドの最も早い提示時間である。
【0071】
さらに、ISO/IEC 23000-19は、以下を要求する。
1.イベントのタイムスケールは、CMAFトラックのMediaHeaderBoxのタイムスケールフィールドの値に等しい。
2.emsgボックスは、CMAFチャンク、CMAFフラグメントまたはCMAFセグメントの先頭に挿入することができる。
3.CMAFフラグメントのemsgバージョン0のアンカーは、次のフラグメントの最も早い提示時間である。
【0072】
また、最後に、イベントメッセージボックスは、ISO/IEC 23009-1に従って以下の制約を有する。
1.セグメントの最初の「moof」ボックス(ムービーフラグメントボックス)の前に配置され得る。
2.任意の「mdat」ボックス(メディアデータボックス)と「moof」ボックスとの間に配置され得る。この場合、任意のセグメントの最初の「moof」ボックスの前に、同じid値を有する同等の「emsg」が存在する必要があることがある。
【0073】
ISOBMFFのフラグメント化/フラグメント化解除プロセスは、フラグメント化されたISOBMFFトラックを取得し、それをフラグメント化解除し、さらなるステップとして、それを任意のサイズのフラグメントで再フラグメント化することができる。いずれのプロセスにおいても、結果として生じるフラグメント化されていないトラックまたはフラグメントトラックは、有効なISOBMFFトラックにすべきである。この場合、正しいタイミングを維持するために、新しいトラックに含まれるすべてのイベントメッセージボックスが必要とされ得る。
【0074】
本開示の実施形態は、DASHストリーミングのための時限メタデータトラックを取得(例えば、作成または処理)することができる。時限メタデータトラックの態様を以下に説明する。
【0075】
一実施形態によれば、図6を参照すると、瞬時セグメント帯域幅がシグナリングされると予想される各アダプテーションセットについて、別個のアダプテーションセットがマニフェストに含まれ得る。
【0076】
例えば、アダプテーションセットAS(i)やアダプテーションセットAS(メタデータ)が設けられてもよい。アダプテーションセットAS(i)およびアダプテーションセットAS(メタデータ)は、それぞれの表現R(1)を各々含むことができる。アダプテーションセットAS(i)はまた、追加の表現(例えば、表現R(2)から表現R(K-1))を含むことができる。各表現は、メディアタイムライン650に沿ってそれぞれのセグメント(例えば、セグメントS(n-1)、セグメントS(n)、...、セグメントS(n+1))を含むことができる。アダプテーションセットAS(i)の表現は、メディアトラック610とすることができる。アダプテーションセットAS(メタデータ)の表現は、時限メタデータトラック620とすることができる。
【0077】
図6に示すように、時限メタデータトラック620は、アダプテーションセットAS(i)のメディアトラック610とセグメントレベルで時限調整することができ、または時限メタデータトラック620は、対応するアダプテーションセットAS(i)の対応するメディアセグメントと時限調整されたそのサブセグメントを伴う単一のセグメントを有することができる。
【0078】
[時限メタデータトラック構造]
時限メタデータトラック620は、以下の構造を有するISOBMFF時限メタデータトラックであってもよい。
【0079】
A.時限メタデータトラックヘッダ
時限メタデータトラック620のヘッダは、以下の情報を含むことができる。
1.トラック4CC識別子
2.サンプルサイズが一定であるかどうかを示すフラグ、および一定である場合、メタデータサンプルのサイズ
3.スイッチングセットのトラック数
4.スイッチングセットのトラックのトラック識別子
5.トラックに関連する他の情報
【0080】
B.セグメント
時限メタデータトラック620のメタデータセグメントは、以下の特性を有することができる。
1.すべてのセグメントは、対応するスイッチングセットのセグメントと時限調整される。
2.すべてのチャンクは、対応するスイッチングセットのチャンクと時限調整される。
3.すべてのセグメントは、そのブランドに4CC識別子を有する。
【0081】
C.メタデータサンプル
一定のサンプルサイズが時限メタデータトラック620のヘッダに設定される場合、時限メタデータトラック620のすべてのメタデータサンプルは、時限メタデータトラック620のヘッダの当該の値に等しい一定のサイズを有する。
【0082】
[マニフェストの制約]
一定のサンプルサイズを有する時限メタデータトラック620は、マニフェストの別個のアダプテーションに含まれてもよい。このアダプテーションセットは、以下の制約を有することが可能である。
1.時限メタデータトラック620のチャンク/セグメントの数は、参照のアダプテーションセットの任意の表現のチャンク/セグメントの数に等しくてもよい、または
2.単一のアドレスを有する単一のセグメントトラックを使用することができる。
【0083】
[一定のサンプルサイズの時限メタデータヘッダ]
本開示の一実施形態による、時限メタデータトラック構造の例示的な実装形態を以下に説明する。
【0084】
サンプルエントリは、以下のように定義することができる。
class {サンプルエントリの名前}()
extends MetaDataSampleEntry ('{4CC}'){
‘{ボックスの名前}’();
}
aligned(8) class‘{ConfigurationBoxの名前}’
extends FullBox('{4CC}', version=0, flags=0){
unsigned int(16) num_tracks;
unsigned int(15) reserved;
bit(1) constant_size_flag;

for(i=1; i<=num_tracks; i++){
unsigned int(32) track_id;
}
if(constant_size_flag){
unsigned int(16) sample_size;
}
}
【0085】
サンプルエントリに関して、「{...}」内の名前は、所与の時限メタデータトラックの特定の名前に置き換えることができる。また、メタデータトラックヘッダは、他のフィールドを有してもよい。
【0086】
上記のサンプルエントリにおいて、num_tracksは、スイッチングセット内のトラックの数を示し、シンタックス要素track_idは、サンプル内のtrack_idの順序付けを提示し、constant_size_flagは、このトラック内のすべてのサンプルが同じバイトサイズを有するかどうかを識別する。
【0087】
上記のサンプルエントリでは、一定のサンプルサイズフラグ(constant_size_flag)と、サンプルサイズを示すシンタックス要素(sample_size)がシグナリングされるが、他のシンタックス要素がシグナリングされてもよい。
【0088】
いくつかの実施形態に従い、方法が提供される。本方法は、一定のサンプルサイズの可能性を有するメタデータトラックを作成するステップを含み、メタデータトラックのサンプルが固定のサイズを有するかどうかは、この固定のサイズと共にメタデータトラックヘッダ内でシグナリングされ、メタデータトラック、トラックセグメント、およびトラックチャンクは、メタデータサンプルの均一な構造を有する。したがって、プレーヤは、メタデータトラックの開始、またはメタデータトラックのセグメントの開始またはチャンクの開始からのオフセットを計算するだけで、メタデータトラックの任意のサンプルにアクセスすることができる。
【0089】
本開示の実施形態は、疎な時限メタデータトラックに組込まれたイベントを含むことができる。例えば、図7に示される図表700は、本開示の一実施形態による、メタデータチャンク720(例えば、チャンクC(k)、チャンクC(k+1)など)を含む疎な時限メタデータトラックにおける組込みイベントメッセージボックス530の例を示す。メタデータチャンク720は、メディアチャンク(例えば、メディアチャンクC(n-1)、C(n)、C(n+1)、C(n+2)、C(n+3)、C(n+4)など)のうちの1つまたは複数と整合させてもよい。
【0090】
図7を参照すると、疎な時限メタデータトラックは、メタデータサンプルの一部でemsgボックス730を搬送する。メタデータサンプルは、1つまたは複数のemsgボックス730を含んでもよい。各emsgボックス730は、emsgのscheme_id_uri/valueペアによって定義されるイベントスキームに属する。
【0091】
本開示の実施形態は、組込まれた疎な時限メタデータトラックに対する制約を設けることができる。
【0092】
例えば、本開示の実施形態は、ISOBMFFフラグメント化/フラグメント化解除プロセスを満たすために、CMAFの疎な時限メタデータトラックに対する以下の制約のうちの1つまたは複数を提供することができる。
1.各CMAFフラグメント/DASHセグメントは、ただ1つのメタデータサンプルを含む。メタデータサンプルの持続時間は、フラグメント/セグメントの持続時間である。
2.フラグメント化されていないトラックでは、すべてのイベントメッセージボックスバージョン0は、それが含まれるメタデータサンプルの提示時間をそのpresentation_time_deltaパラメータのためのアンカーとして使用する必要があることがある。
3.すべての場合において、バージョン0の提示時間デルタは、メタデータのサンプル提示時間に対する正または負のオフセットを示すことができる。トラックのすべてのイベントメッセージボックスは、正のオフセットまたは負のオフセットのいずれかを使用する必要があり得、負のオフセットおよび正のオフセットを含むイベントメッセージボックスは、同じトラック内で混合されないことを必要とする場合がある。
4.フラグメント化されていないトラックでは、すべてのイベントメッセージボックスバージョン1は、そのpresentation_timeパラメータのアンカーとしてトラックの最も早い提示時間を使用する必要があり得る。
5.すべての場合において、すべてのイベントメッセージボックスバージョン0および1のタイムスケールは、トラックのタイムスケールに等しいことが要求され得る。
6.すべてのイベントの終了時間(イベント開始時間+持続時間)は、イベント持続時間の値がそうでないシグナリングの場合でも、トラックの最新の提示時間を超えない。
【0093】
本開示の実施形態は、以下の表1で定義される4つの異なるタイプのイベントメッセージトラック(例えば、疎な時限メタデータトラック)を定義することができる。
【0094】
【表1】
【0095】
各タイプは、イベントメッセージボックスのバージョン、およびイベントメッセージボックス時間オフセットの解釈を制限する。表1に示すように、トラックは、イベントメッセージボックスのバージョン0のみ、バージョン1のみ、負の時間オフセットのみを有するバージョン0、バージョン0およびバージョン1、または負の時間オフセットを有するバージョン0およびv1を含むことができる。
【0096】
イベントメッセージボックスの新しいバージョンを導入することによって、またはそれらの時間オフセットの値の異なる解釈を導入することによって、追加のイベントメッセージトラックのタイプを、この表に追加することができる。
【0097】
タイプは、イベントメッセージトラックのトラックヘッダにおいて、ならびにDASH MPDおよびHLS m3u8などのストリーミングのマニフェストにおいてシグナリングされてもよい。
【0098】
本開示の実施形態は、ISOBMFFトラックのトラックタイプをシグナリングするための2つのオプション、すなわち(1)別々のユニフォームリソース識別子(Uniform Resource Identifier:URI)を使用すること、および(2)「URIInitBox」を使用することを含むことができる。一実施形態では、どちらのオプションも使用することができる。
【0099】
オプション(1)に関して、URIMetaSampleEntry(「urim」)を使用するためにイベントメッセージトラックが必要とされ得る。URIMetaSampleEntryのエントリは、メタデータの形式を定義するURIと、オプションの初期化データとをボックス内に含むことができる。サンプルおよび初期化データの両方のフォーマットは、URI形式の全部または一部によって定義されてもよい。
【0100】
サンプルエントリでは、以下の表2で定義されるように、それらが搬送するイベントメッセージボックスに応じて、正確なURNスキームを搬送しながら、「URIBox」が発生することが要求され得る。
【0101】
【表2】
【0102】
オプション(2)に関して、以下の表3に示すように、URIMetaSampleEntry(「urim」)を使用するためにイベントメッセージトラックが必要とされ得る。サンプルエントリでは、以下が発生する必要があることがある。
1.「URIBox」、正確なユニフォームリソースネーム(「URN」)スキーム:urn:mpeg:isobmff:eventtrack:2020を搬送する
2.「URIInitBox」、イベントメッセージトラックの既存のイベントメッセージボックスバージョンにおいて、以下に設けられる表3に示される値のうちの1つを搬送する
【0103】
【表3】
【0104】
一実施形態によれば、異なるタイプを有するイベントメッセージトラックを作成することを含む方法が提供され、タイプに応じて、様々なイベントメッセージバージョン、および/またはイベントメッセージ提示時間オフセットの異なる解釈を含むことができる。したがって、実施形態は、バージョン0とバージョン1のイベントメッセージボックスを混在させることを可能にし、いくつかのイベントメッセージトラックタイプにおいてサンプル提示時間から負の時間オフセットを有することを可能にし得る。
【0105】
一実施形態によれば、イベントメッセージトラックタイプのシグナリングはトラックヘッダに提供されてもよく、したがって、トラックを処理する任意のエンティティはトラックタイプを認識し、メッセージトラックのイベントボックスを正しく処理することができる。
【0106】
一実施形態によれば、イベントメッセージトラックタイプのシグナリングは、ISOBMFFトラック内のトラックをシグナリングするために、URIBox内のURIバリエーションを介して、またはURIInitBox内の異なる値を使用して、行われてもよい。
【0107】
図8を参照して、一実施形態によるコンピュータコード800について説明する。コンピュータコード800は、DASHクライアント300を含むメディアストリーミングシステムによって実行することができる。例えば、メディアストリーミングシステムは、図1に関して説明した環境100によって実施することができる。メディアストリーミングシステムは、コンピュータコード800を記憶するように構成されたメモリと、コンピュータコード800にアクセスし、コンピュータコード800によって命令された通りに動作するように構成された、少なくとも1つのプロセッサとを備えてもよい。コンピュータコード800は、メディアストリーミングシステムの異なるコンポーネント(例えば、サーバ、クライアントなど)のメモリ間で分散されてもよく、特定のコンポーネントの少なくとも1つのプロセッサに、本開示に記載された機能を含む任意の数のそれらの機能を実行させるように構成されてもよい。例えば、コンピュータコード800は、任意の数の作成コード810、提供コード820、処理コード830、および表示コード840を含むことができる。
【0108】
作成コード810は、例えば、メディアストリーミングシステムのサーバのメモリに記憶され、サーバの少なくとも一方のプロセッサに、処理対象のメディアシステムのクライアント(例えば、DASHクライアント)に配信される、本明細書に記載のデータ(例えば時限メタデータトラック)を作成させることができる。
【0109】
提供コード820は、例えば、メディアストリーミングシステムのサーバのメモリに記憶され、サーバの少なくとも一方のプロセッサに、処理されるべきメディアシステムのクライアント(例えば、DASHクライアント)に、本明細書に記載のデータ(例えば時限メタデータトラック)を提供させることができる。
【0110】
処理コード830は、例えば、メディアストリーミングシステムのクライアントデバイスのメモリに記憶され、クライアントがデータを受信した後に、クライアントデバイスの少なくとも1つのプロセッサに、本開示に記載のデータ(例えば時限メタデータトラック)を処理させてもよい。例えば、データは、図3に関して説明したように処理することができる。
【0111】
作成コード810および処理コード830は両方とも、データを取得するための取得コードと呼ぶことができる。
【0112】
表示コード840は、例えば、メディアストリーミングシステムのクライアントデバイスのメモリに記憶することができ、クライアントデバイスの少なくとも一方のプロセッサに、処理されるデータに応じて、クライアントデバイスに含まれる、またはクライアントデバイスに接続されたディスプレイにメディアコンテンツを表示させることができる。
【0113】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法、サーバ、およびクライアントの各々は、処理回路(例えば、1つもしくは複数のプロセッサまたは1つもしくは複数の集積回路)によって実施されてよい。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ可読媒体に格納されているプログラムを実行する。
【0114】
前述の開示は、例示および説明を提供しているが、網羅的であることも、実施態様を開示の正確な形態に限定することも意図されていない。改変形態および変形形態が、上記の開示に照らして可能であり、または実施態様の実施により取得され得る。
【0115】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計され得ることを理解されたい。
【0116】
特徴の特定の組み合わせが特許請求の範囲に記載され、および/または本明細書に開示されていても、これらの組み合わせは、可能な実施態様の開示を限定することを意図されていない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または本明細書に開示されていない方法で組み合わされ得る。特許請求の範囲に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実施態様の開示は、各従属請求項を請求項セット内の他のすべての請求項と組み合わせて含む。
【0117】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と交換可能に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つまたは複数の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組み合わせなど)を含むことを意図しており、「1つまたは複数」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語または同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。さらに、「に基づいて」という語句は、特に明記しない限り、「少なくとも部分的に、基づいて」を意味することを意図している。
【符号の説明】
【0118】
0 イベントメッセージバージョン
1 イベントメッセージボックスバージョン
100 環境
110 ユーザデバイス
120 プラットフォーム
122 クラウドコンピューティング環境
124 コンピューティングリソース
124-1 アプリケーション
124-2 仮想マシン
124-3 仮想化ストレージ
124-4 ハイパーバイザ
130 ネットワーク
200 デバイス
210 バス
220 プロセッサ
230 メモリ
240 記憶部
250 入力部
260 出力部
270 通信インターフェイス
300 DASHクライアント
301 MPDイベント
302 インバンドイベント
303 時限メタデータ
304 メディアセグメント
305 DASHイベント
306 サブスクリプション関数
307 イベント/メタデータAPI
310 アプリケーション
315 DASHプレーヤの制御、選択、およびヒューリスティックロジック
320 マニフェストパーサ
325 DASHアクセスAPI
330 インバンドイベントおよび「moof」パーサ
335 時限メタデータトラックパーサ
340 イベントおよび時限メタデータバッファ
345 シンクロナイザおよびディスパッチャ
350 ファイルフォーマットパーサ
355 メディアバッファ
360 メディアデコーダ
370 HTTPスタック
400 図表
410 CMAFフラグメント/DASHセグメント
500 イベントメッセージボックス
530 組込みイベントメッセージボックス
610 メディアトラック
620 時限メタデータトラック
650 メディアタイムライン
700 図表
720 メタデータチャンク
730 イベントメッセージボックス
800 コンピュータコード
810 作成コード
820 提供コード
830 処理コード
840 表示コード
図1
図2
図3
図4
図5
図6
図7
図8