(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】イベントメッセージトラックにおけるイベント間の拡張された関係シグナリング
(51)【国際特許分類】
G06F 9/54 20060101AFI20240702BHJP
H04L 67/04 20220101ALI20240702BHJP
【FI】
G06F9/54 F
G06F9/54 C
H04L67/04
(21)【出願番号】P 2022562350
(86)(22)【出願日】2022-03-28
(86)【国際出願番号】 US2022022113
(87)【国際公開番号】W WO2022225652
(87)【国際公開日】2022-10-27
【審査請求日】2022-10-12
(32)【優先日】2021-04-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-03-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】三坂 敏夫
(56)【参考文献】
【文献】米国特許出願公開第2021/0099509(US,A1)
【文献】国際公開第2016/017451(WO,A1)
【文献】米国特許第10979784(US,B1)
【文献】国際公開第2021/067187(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
H04L 67/04
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される方法であって、
複数のイベントメッセージインスタンスボックスを含むイベントメッセージトラックを取得するステップであって、前記イベントメッセージトラックは、メディアコンテンツを表示するために動的適応ストリーミングオーバーハイパーテキスト転送プロトコル(DASH)クライアントによって処理されるように構成される、ステップと、
前記イベントメッセージトラックに含まれる第1のイベントメッセージインスタンスボックスを取得するステップと、
前記イベントメッセージトラックに含まれる第2のイベントメッセージインスタンスボックスを取得するステップであって、前記第2のイベントメッセージインスタンスボックスは、前記第1のイベントメッセージインスタンスボックスを識別する第1の情報と、前記第1のイベントメッセージインスタンスボックスと前記第2のイベントメッセージインスタンスボックスとの間の関係を指定する第2の情報とを含む、ステップと、
前記第1の情報および前記第2の情報に基づいて前記第1のイベントメッセージインスタンスボックスを修正するステップ
と、
前記イベントメッセージトラックを前記DASHクライアントに提供するか、または前記イベントメッセージトラックに基づいてメディアコンテンツを表示するステップと
を含
み、前記第1のイベントメッセージインスタンスボックスは識別子を含み、前記第1の情報は更新識別子を含み、前記第1の情報および前記第2の情報に基づいて前記第1のイベントメッセージインスタンスボックスを修正するステップは、
前記識別子の値が前記第1の情報に含まれる前記更新識別子の値に等しいことに基づいて、前記第2のイベントメッセージインスタンスボックスが前記第1のイベントメッセージインスタンスボックスに関連すると決定し、前記第2の情報に基づいて、前記第1のイベントメッセージインスタンスボックスを修正することを含む、方法。
【請求項2】
前記第2の情報は、前記第1のイベントメッセージインスタンスボックスと前記第2のイベントメッセージインスタンスボックスとの間の前記関係のタイプを示す値を含む、請求項1に記載の方法。
【請求項3】
前記関係のタイプを示す前記値が第1の値であることに基づいて、前記第2の情報は、前記関係が第1の関係タイプを有することを示し、
前記関係のタイプを示す前記値が第2の値であることに基づいて、前記第2の情報は、前記関係が第2の関係タイプを有することを示し、
前記関係のタイプを示す前記値が第3の値であることに基づいて、前記第2の情報は、前記関係が第3の関係タイプを有することを示す、
請求項
2に記載の方法。
【請求項4】
前記第1の関係タイプは置換関係であり、
前記関係のタイプを示す前記値が前記第1の値であることに基づいて、前記第1のイベントメッセージインスタンスボックスを前記修正することは、前記イベントメッセージトラック内の前記第1のイベントメッセージインスタンスボックスを前記第2のイベントメッセージインスタンスボックスと置き換えることを含む、
請求項
3に記載の方法。
【請求項5】
前記第2の関係タイプはタイミング変更関係であり、
前記関係のタイプを示す前記値が前記第2の値であることに基づいて、前記第1のイベントメッセージインスタンスボックスを前記修正することは、前記第1のイベントメッセージインスタンスボックスに対応する開始時間、または前記第1のイベントメッセージインスタンスボックスに対応する終了時間のうちの少なくとも1つを変更することを含む、
請求項
3に記載の方法。
【請求項6】
前記第3の関係タイプはキャンセル関係であり、
前記関係のタイプを示す前記値が前記第3の値であることに基づいて、前記第1のイベントメッセージインスタンスボックスを前記修正することは、前記イベントメッセージトラックから前記第1のイベントメッセージインスタンスボックスをキャンセルすることを含む、
請求項
3に記載の方法。
【請求項7】
デバイスであって、
プログラムコードを記憶する少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードの指示にしたがって動作するように構成された少なくとも1つのプロセッサと
を備え、前記プログラムコードは、前記少なくとも1つのプロセッサに、請求項1
乃至6のいずれか一項に記載の方法を実行させる、
デバイス。
【請求項8】
コンピュータに、請求項1乃至
6のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、2021年4月20日に出願された米国仮特許出願第63/177,271号の優先権を主張するものであり、その開示は、その全体が参照により本明細書に組み込まれる。
【0002】
[技術分野]
本開示の実施形態は、メディアストリーミング、より詳細には、動的適応ストリーミングオーバーHTTP(DASH)を対象とする。
【背景技術】
【0003】
ISO/IEC 23009-1 動的適応ストリーミングオーバーHTTP(DASH)規格は、メディアセグメントとともにイベントを搬送するためのイベントメッセージボックスを導入した。さらに、ISO/IEC 23001-19 CDは、トラックがイベントメッセージを搬送することができるイベントメッセージトラックフォーマットを定義する。
【0004】
現在のイベントメッセージトラック仕様は、各イベントインスタンスを搬送するためのボックスを使用する。このボックス中でシグナリングすることができる2つのインスタンス間の唯一の関係は、2つのイベントインスタンスが等価である場合、すなわち1つを処理することが適切である場合である。しかしながら、2つのイベントインスタンス間の関係については、より多くの可能なケースが存在する。
【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 JTC1/SC29/WG 11 N18609(2019年8月)は、その全体が参照により本明細書に組み込まれる。
【発明の概要】
【0006】
諸実施形態では、少なくとも1つのプロセッサによって実行される方法は、複数のイベントメッセージインスタンスボックスを含むイベントメッセージトラックを取得するステップであって、イベントメッセージトラックは、メディアコンテンツを表示するために動的適応ストリーミングオーバーハイパーテキスト転送プロトコル(DASH)クライアントによって処理されるように構成される、ステップと、イベントメッセージトラックに含まれる第1のイベントメッセージインスタンスボックスを取得するステップと、イベントメッセージトラックに含まれる第2のイベントメッセージインスタンスボックスを取得するステップであって、第2のイベントメッセージインスタンスボックスは、第1のイベントメッセージインスタンスボックスを識別する第1の情報と、第1のイベントメッセージインスタンスボックスと第2のイベントメッセージインスタンスボックスとの間の関係を指定する第2の情報とを含む、ステップと、第1の情報および第2の情報に基づいて第1のイベントメッセージインスタンスボックスを修正するステップと、イベントメッセージトラックをDASHクライアントに提供するか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示するステップとを含む。
【0007】
諸実施形態では、デバイスは、プログラムコードを記憶する少なくとも1つのメモリと、プログラムコードを読み取り、プログラムコードの指示にしたがって動作するように構成された少なくとも1つのプロセッサとを含み、プログラムコードは、少なくとも1つのプロセッサに、複数のイベントメッセージインスタンスボックスを含むイベントメッセージトラックを取得させるように構成された第1の取得コードであって、イベントメッセージトラックは、メディアコンテンツを表示するために動的適応ストリーミングオーバーハイパーテキスト転送プロトコル(DASH)クライアントによって処理されるように構成される、第1の取得コードと、少なくとも1つのプロセッサに、イベントメッセージトラックに含まれる第1のイベントメッセージインスタンスボックスを取得させるように構成された第2の取得コードと、少なくとも1つのプロセッサに、イベントメッセージトラックに含まれる第2のイベントメッセージインスタンスボックスを取得させるように構成された第3の取得コードであって、第2のイベントメッセージインスタンスボックスは、第1のイベントメッセージインスタンスボックスを識別する第1の情報と、第1のイベントメッセージインスタンスボックスと第2のイベントメッセージインスタンスボックスとの間の関係を指定する第2の情報とを含む、第3の取得コードと、少なくとも1つのプロセッサに、第1の情報および第2の情報に基づいて第1のイベントメッセージインスタンスボックスを修正させるように構成された修正コードと、少なくとも1つのプロセッサに、イベントメッセージトラックをDASHクライアントに提供させるか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示させるように構成された提供コードとを含む。
【0008】
諸実施形態では、非一時的コンピュータ可読媒体は命令を記憶し、この命令は、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに、複数のイベントメッセージインスタンスボックスを含むイベントメッセージトラックを取得することであって、イベントメッセージトラックは、メディアコンテンツを表示するために動的適応ストリーミングオーバーハイパーテキスト転送プロトコル(DASH)クライアントによって処理されるように構成される、取得することと、イベントメッセージトラックに含まれる第1のイベントメッセージインスタンスボックスを取得することと、イベントメッセージトラックに含まれる第2のイベントメッセージインスタンスボックスを取得することであって、第2のイベントメッセージインスタンスボックスは、第1のイベントメッセージインスタンスボックスを識別する第1の情報と、第1のイベントメッセージインスタンスボックスと第2のイベントメッセージインスタンスボックスとの間の関係を指定する第2の情報とを含む、取得することと、第1の情報および第2の情報に基づいて第1のイベントメッセージインスタンスボックスを修正することと、イベントメッセージトラックをDASHクライアントに提供するか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示することとを行わせる。
【図面の簡単な説明】
【0009】
開示される主題のさらなる特徴、性質、および様々な利点は、以下の詳細な説明および添付の図面からより明らかになるであろう。
【
図1】諸実施形態による、本明細書で説明される方法、装置、およびシステムが実装され得る環境の図である。
【
図2】
図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。
【
図3】諸実施形態によるDASHクライアントの図である。
【
図5】諸実施形態によるコンピュータコードの図である。
【発明を実施するための形態】
【0010】
図1は、諸実施形態による、本明細書で説明される方法、装置、およびシステムが実装され得る環境100の図である。
図1に示すように、環境100は、ユーザデバイス110と、プラットフォーム120と、ネットワーク130とを含み得る。環境100のデバイスは、ワイヤード接続、ワイヤレス接続、またはワイヤード接続とワイヤレス接続との組合せによって相互接続し得る。
【0011】
ユーザデバイス110は、プラットフォーム120に関連付けられた情報を受信、生成、記憶、処理、および/または提供することができる1つまたは複数のデバイスを含む。例えば、ユーザデバイス110には、コンピューティングデバイス(例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバなど)、モバイルフォン(例えば、スマートフォン、無線電話など)、ウェアラブルデバイス(例えば、スマートグラスもしくはスマートウォッチ)、または同様のデバイスが含まれ得る。いくつかの実装形態では、ユーザデバイス110は、プラットフォーム120から情報を受信し、および/またはプラットフォーム120に情報を送信し得る。
【0012】
プラットフォーム120は、本明細書の他の箇所で説明されるような1つまたは複数のデバイスを含む。いくつかの実装形態では、プラットフォーム120は、クラウドサーバまたはクラウドサーバのグループを含み得る。いくつかの実装形態では、プラットフォーム120は、特定の必要性に応じてソフトウェア構成要素をスワップインまたはスワップアウトすることができるように、モジュール式になるように設計され得る。このように、プラットフォーム120は、用途次第で容易におよび/または迅速に再構成され得る。
【0013】
いくつかの実装形態では、示されるように、プラットフォーム120は、クラウドコンピューティング環境122内でホストされ得る。特に、本明細書で説明される実装形態は、プラットフォーム120をクラウドコンピューティング環境122内でホストされるものとして説明するが、いくつかの実装形態では、プラットフォーム120は、クラウドベースでなくてもよいし(すなわち、クラウドコンピューティング環境の外で実装されてもよいし)、部分的にクラウドベースであってもよい。
【0014】
クラウドコンピューティング環境122は、プラットフォーム120をホストする環境を含む。クラウドコンピューティング環境122は、プラットフォーム120をホストするシステム(複数可)および/またはデバイス(複数可)の物理的なロケーションおよび構成に関するエンドユーザ(例えば、ユーザデバイス110)の知識を必要としない、計算、ソフトウェア、データアクセス、記憶などのサービスを提供し得る。示されるように、クラウドコンピューティング環境122は、コンピューティングリソース124のグループ(集合的には「コンピューティングリソース124(computing resources 124)」と呼ばれ、個別には「コンピューティングリソース124(computing resource 124)」と呼ばれる)を含み得る。
【0015】
コンピューティングリソース124は、1つまたは複数のパーソナルコンピュータ、ワークステーションコンピュータ、サーバデバイス、または他のタイプの計算および/もしくは通信デバイスを含む。いくつかの実装形態では、コンピューティングリソース124はプラットフォーム120をホストし得る。クラウドリソースは、コンピューティングリソース124において実行されるコンピュートインスタンス、コンピューティングリソース124において提供されるストレージデバイス、コンピューティングリソース124によって提供されるデータ転送デバイスなどを含み得る。いくつかの実装形態では、コンピューティングリソース124は、ワイヤード接続、ワイヤレス接続、またはワイヤード接続とワイヤレス接続との組合せによって他のコンピューティングリソース124と通信し得る。
【0016】
図1にさらに示されているように、コンピューティングリソース124は、1つまたは複数のアプリケーション(「APP」)124-1、1つまたは複数の仮想マシン(「VM」)124-2、仮想化ストレージ(「VS」)124-3、1つまたは複数のハイパーバイザ(「HYP」)124-4などのクラウドリソースのグループを含む。
【0017】
アプリケーション124-1は、ユーザデバイス110および/またはプラットフォーム120に提供され得るかまたはそれらがアクセスし得る1つまたは複数のソフトウェアアプリケーションを含む。アプリケーション124-1によって、ユーザデバイス110にソフトウェアアプリケーションをインストールして実行する必要がなくなり得る。例えば、アプリケーション124-1は、プラットフォーム120に関連付けられたソフトウェアおよび/またはクラウドコンピューティング環境122を介して提供可能な任意の他のソフトウェアを含み得る。いくつかの実装形態では、1つのアプリケーション124-1は、仮想マシン124-2を介して、1つまたは複数の他のアプリケーション124-1に/から情報を送信/受信することができる。
【0018】
仮想マシン124-2は、物理マシンのようなプログラムを実行するマシン(例えば、コンピュータ)のソフトウェア実装を含む。仮想マシン124-2は、仮想マシン124-2による任意の実機への対応の程度および用途に応じて、システム仮想マシンまたはプロセス仮想マシンのいずれかであり得る。システム仮想マシンは、完全なオペレーティングシステム(「OS」)の実行をサポートする完全なシステムプラットフォームを提供し得る。プロセス仮想マシンは、単一のプログラムを実行し得、単一のプロセスをサポートし得る。いくつかの実装形態では、仮想マシン124-2は、ユーザ(例えば、ユーザデバイス110)に代わって実行してもよく、データ管理、同期、または長期データ転送などのクラウドコンピューティング環境122のインフラストラクチャを管理してもよい。
【0019】
仮想化ストレージ124-3は、コンピューティングリソース124のストレージシステムまたはデバイスにおいて仮想化技法を使用する1つまたは複数のストレージシステムおよび/または1つまたは複数のデバイスを含む。いくつかの実装形態では、ストレージシステムのコンテキスト内で、仮想化のタイプは、ブロック仮想化およびファイル仮想化を含み得る。ブロック仮想化は、物理ストレージまたは異種構造に関係なくストレージシステムにアクセス可能なように、物理ストレージからの論理ストレージの抽象化(または分離)を指し得る。この分離により、ストレージシステムの管理者は、管理者がエンドユーザのためにストレージをどのように管理するかについて、柔軟性を得ることができる。ファイル仮想化では、ファイルレベルでアクセスされるデータと、ファイルが物理的に記憶されているロケーションとの間の依存性をなくすことができる。これにより、ストレージ使用、サーバ統合、および/または無中断ファイル移行の性能を最適化することができる。
【0020】
ハイパーバイザ124-4は、複数のオペレーティングシステム(例えば、「ゲストオペレーティングシステム」)がコンピューティングリソース124などのホストコンピュータ上で同時に実行することを可能にするハードウェア仮想化技法を提供し得る。ハイパーバイザ124-4は、ゲストオペレーティングシステムに仮想オペレーティングプラットフォームを提示し得、ゲストオペレーティングシステムの実行を管理し得る。様々なオペレーティングシステムの複数のインスタンスは、仮想化されたハードウェアリソースを共有することができる。
【0021】
ネットワーク130は、1つまたは複数のワイヤードおよび/またはワイヤレスネットワークを含む。例えば、ネットワーク130には、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆地上移動体通信網(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話ネットワーク(例えば、公衆電話交換網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インターネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他のタイプのネットワークの組合せが含まれ得る。
【0022】
図1に示されているデバイスおよびネットワークの数および配置は、一例として与えられている。実際には、
図1に示されているものに比べて、追加のデバイスおよび/もしくはネットワーク、より少ないデバイスおよび/もしくはネットワーク、異なるデバイスおよび/もしくはネットワーク、または別様に配置されたデバイスおよび/もしくはネットワークが存在し得る。さらに、
図1に示される2つ以上のデバイスが単一のデバイス内に実装されてもよいし、
図1に示される単一のデバイスが複数の分散デバイスとして実装されてもよい。追加的に、または代替的に、環境100のデバイスのセット(例えば、1つまたは複数のデバイス)は、環境100のデバイスの別のセットによって実行されるものとして説明される1つまたは複数の機能を実行してもよい。
【0023】
図2は、
図1の1つまたは複数のデバイスの例示的な構成要素のブロック図である。デバイス200は、ユーザデバイス110および/またはプラットフォーム120に対応し得る。
図2に示すように、デバイス200は、バス210と、プロセッサ220と、メモリ230と、ストレージ構成要素240と、入力構成要素250と、出力構成要素260と、通信インターフェース270とを含み得る。
【0024】
バス210は、デバイス200の構成要素間の通信を可能にする構成要素を含む。プロセッサ220は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せで実装される。プロセッサ220は、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理構成要素である。いくつかの実装形態では、プロセッサ220は、機能を実行するようにプログラムされることが可能な1つまたは複数のプロセッサを含む。メモリ230は、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、および/または、プロセッサ220によって使用される情報および/または命令を記憶する別のタイプの動的または静的ストレージデバイス(例えば、フラッシュメモリ、磁気メモリ、および/または光メモリ)を含む。
【0025】
ストレージ構成要素240は、デバイス200の動作および使用に関連する情報および/またはソフトウェアを記憶する。例えば、ストレージ構成要素240は、ハードディスク(例えば、磁気ディスク、光ディスク、磁気光学ディスク、および/またはソリッドステートディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、カートリッジ、磁気テープ、および/または別のタイプの非一時的コンピュータ可読媒体を、対応するドライブとともに含み得る。
【0026】
入力構成要素250は、デバイス200がユーザ入力などを介して情報を受信することを可能にする構成要素(例えば、タッチスクリーンディスプレイ、キーボード、キーパッド、マウス、ボタン、スイッチ、および/またはマイクロフォン)を含む。追加的に、または代替的に、入力構成要素250は、情報を感知するためのセンサ(例えば、全地球測位システム(GPS)構成要素、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含み得る。出力構成要素260は、デバイス200からの出力情報を提供する構成要素(例えば、ディスプレイ、スピーカ、および/または1つまたは複数の発光ダイオード(LED))を含む。
【0027】
通信インターフェース270は、デバイス200が、ワイヤード接続、ワイヤレス接続、またはワイヤード接続とワイヤレス接続との組合せなどにより他のデバイスと通信することを可能にする、トランシーバのような構成要素(例えば、トランシーバおよび/または別個の受信機および送信機)を含む。通信インターフェース270により、デバイス200は、別のデバイスから情報を受信すること、および/または別のデバイスに情報を提供することができる。例えば、通信インターフェース270には、イーサネット(登録商標)インターフェース、光インターフェース、同軸インターフェース、赤外線インターフェース、無線周波(RF)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、Wi-Fiインターフェース、セルラネットワークインターフェースなどを含み得る。
【0028】
デバイス200は、本明細書で説明される1つまたは複数のプロセスを実行し得る。デバイス200は、メモリ230および/またはストレージ構成要素240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令をプロセッサ220が実行することに応答して、これらのプロセスを実行し得る。コンピュータ可読媒体は、本明細書では非一時的メモリデバイスとして定義される。メモリデバイスは、単一の物理ストレージデバイス内のメモリ空間、または複数の物理ストレージデバイスにわたって広がるメモリ空間を含む。
【0029】
ソフトウェア命令は、通信インターフェース270を介して別のコンピュータ可読媒体からまたは別のデバイスからメモリ230および/またはストレージ構成要素240に読み込まれ得る。実行されると、メモリ230および/またはストレージ構成要素240に記憶されたソフトウェア命令は、プロセッサ220に、本明細書で説明される1つまたは複数のプロセスを実行させ得る。追加的に、または代替的に、本明細書で説明される1つまたは複数のプロセスを実行するために、ハードワイヤード回路を、ソフトウェア命令の代わりに使用してもよいし、ソフトウェア命令と併用してもよい。したがって、本明細書で説明される実装形態は、ハードウェア回路とソフトウェアとの任意の特定の組合せに限定されるものではない。
【0030】
図2に示されている構成要素の数および配置は、一例として与えられている。実際には、デバイス200は、
図2に示されるものに比べて、追加の構成要素、より少ない構成要素、異なる構成要素、または別様に配置された構成要素を含み得る。追加的に、または代替的に、デバイス200の構成要素のセット(例えば、1つまたは複数の構成要素)は、デバイス200の構成要素の別のセットによって実行されるものとして説明される1つまたは複数の機能を実行し得る。
【0031】
図3は、本開示の実施形態による、MPDイベント301、インバンドイベント302、およびスパース時限メタデータトラックイベントを処理するように構成された例示的なDASHクライアント300を示す。DASHクライアント300は、CMAFイベントを処理するためにも使用され得る。一実施形態によれば、DASHクライアント300は、
図1のユーザデバイス110によって実装され得る。
【0032】
イベントは、DASHクライアント300またはアプリケーションに非周期的情報をシグナリングするために提供され得る。イベントは、時間指定され得る(例えば、各イベントは、特定のメディア提示時間に開始し、ある持続時間を有し得る)。イベントは、DASH特有のシグナリングまたはアプリケーション特有のイベントを含み得る。DASHイベントは、スキーム識別子によって識別され得る。アプリケーション特有のイベントの場合、スキーム識別子は、DASHクライアント300がイベントを適切なアプリケーションにフォワードすることができるようにアプリケーションを識別し得る。
【0033】
図3に示されているように、DASHクライアント300は、アプリケーション310、DASHプレーヤの制御、選択、&ヒューリスティック論理315、マニフェストパーサ320、DASHアクセスAPI325、インバンドイベント&「moof」(ムービーフラグメントボックス)パーサ330、時限メタデータトラックパーサ335、イベント&時限メタデータバッファ340、シンクロナイザ&ディスパッチャ345、ファイルフォーマットパーサ350、メディアバッファ355、メディアデコーダ360、およびHTTPスタック370を含み得る。
【0034】
図3において、破線は制御および/または同期を表し、通常の実線はイベントおよび/または時限メタデータフローを表し、太い実線はメディアデータフローを表す。制御および/または同期は、例えば、サブスクリプション関数306とイベント/メタデータAPI307とを含み得る。イベントおよび/または時限メタデータフローは、例えば、MPDイベント301、インバンドイベント302、時限メタデータ303、およびDASHイベント305を含み得る。メディアデータフローは、例えば、メディアセグメント304を含み得る。
【0035】
DASHクライアント300は、MPDなどのマニフェストを受信し得、それを処理し得る。マニフェストは、同期されたマルチメディアプレゼンテーションを形成するためにCMAFスイッチングセットおよび選択セットにグループ化される独立してパッケージ化されたCMAFトラックの組合せおよび同期を記述し得る。マニフェストは、再生されるべきCMAFトラック(複数可)を選択し、初期化し、整列を開始し、同期化するための情報をDASHクライアント300に提供し、CMAFメディアオブジェクト(例えば、CMAFヘッダ、CMAFチャンク、およびCMAFフラグメント)を、アクセスするためおよび場合によってはダウンロードするために、リソースとして識別し得る。CMAFトラックおよびCMAFフラグメントは、解読、復号、およびプレゼンテーションのスケジューリングを可能にするのに十分な情報を含み得る。マニフェストは、リソース識別およびプレゼンテーション記述に加えて、配信プロトコル、ネットワーク管理、認可、ライセンス取得などに関する情報も提供することができる。マニフェストはまた、トラックがCMAFメディアプロファイルに準拠することをシグナリングすることができる。
【0036】
参考として、CMAFフラグメントは、符号化および復号されるメディアオブジェクトであり得る。CMAFフラグメントは、ムービーフラグメントボックス(「moof」)およびメディアデータボックス(「mdat」)の1つまたは複数のペアを含み得る。「moof」および「mdat」の各ペアは、CMAFチャンクと呼ばれ得、各CMAFチャンクは、CMAFフラグメントに属するメディアサンプルの連続サブセットを含み得る。
【0037】
CMAFトラックは、CMAFメディアプロファイルに準拠した提示順序の1つまたは複数のCMAFフラグメントと、関連するCMAFヘッダとの連続シーケンスであり得る。CMAFヘッダは、CMAFトラック内のすべてのCMAFフラグメントを処理して提示するのに十分なMovieBoxを含み得る。CMAFトラックは、エンコーダおよびISOBMFFファイルパッケージャによって作成され得るが、外部メディアアプリケーション仕様によって定義されるリソースとして参照され得るCMAFアドレス指定可能メディアオブジェクトの形態でアクセスすることができるようにされ得る。
【0038】
DASHクライアント300は、マニフェスト中の記述されたアドレスに基づいてメディアセグメントを要求し得る。マニフェストはまた、メタデータトラックを記述し得る。DASHクライアント300はまた、メタデータトラックのセグメントにアクセスし、それらを解析し、それらをアプリケーションに送信することができる。
【0039】
また、メディアセグメントのためのアドレスのうち、DASHマニフェストは、インデックスセグメントのためにアドレス指定されたものを提供してもよい。各インデックスセグメントは、1つのセグメントの持続時間およびサイズに関する情報を提供し得る。表現インデックスは、所与の表現のすべてのセグメントに関するインデックス情報を提供し得る。
【0040】
諸実施形態によれば、マニフェストパーサ320は、マニフェストからMPDイベント301を解析し、それらをイベント&時限メタデータバッファ340に付加し得る。MPDに基づいて、DASHクライアント300は、HTTPスタック370からのセグメントのフェッチおよび解析を管理し得る。セグメントの解析は、インバンドイベント&「moof」パーサ330によって実行され得る。インバンドイベント&「moof」パーサは、メディアバッファ355に付加する前に、セグメントからのメディアセグメント304を解析し得る。インバンドイベント&「moof」パーサ330による解析はまた、セグメントからのインバンドイベント302および時限メタデータ303(例えば、時限メタデータトラック)を解析することを含み得る。また、時限メタデータトラックパーサ335は、時限メタデータ303のイベントメッセージボックスおよび時限メタデータ303のイベントメッセージインスタンスボックスなどの高レベルボックスを解析し、イベント&時限メタデータバッファ340に付加することができる。
【0041】
イベント&時限メタデータバッファ340は、イベントおよび時限メタデータサンプルをシンクロナイザ&ディスパッチャ345に渡し得、これは、イベント&時限メタデータシンクロナイザ&ディスパッチャ機能と呼ばれ得る。
【0042】
シンクロナイザ&ディスパッチャ345は、DASHクライアント300特有のイベントを、DASHプレーヤの制御、選択、&ヒューリスティック論理315にディスパッチし得る。アプリケーション310が特定のイベント(複数可)および/または時限メタデータストリーム(複数可)にサブスクライブされている場合、シンクロナイザ&ディスパッチャ345は、イベント/メタデータAPI307を介して、対応するイベントインスタンスおよび/または時限メタデータサンプルをアプリケーション310にディスパッチし得る。
【0043】
諸実施形態は、1つのイベントメッセージトラック中のイベントインスタンス間の関係をシグナリングするための方法を提供し得る。したがって、実施形態は、イベントメッセージインスタンスボックスを拡張して、それらの間のより拡張された関係をシグナリングし得る。
【0044】
諸実施形態では、イベントメッセージインスタンスボックスを拡張して、イベントインスタンス間のより広範な関係をシグナリングすることができる。例えば、諸実施形態では、イベントメッセージインスタンスボックスは、以下をシグナリングするために使用され得る:
1. 1つのイベントインスタンスは、前のイベントインスタンス(複数可)の更新である。
2. タイミング変更:前のイベントの開始および/または持続時間が変更される。
3. イベントがキャンセルされ、これ以上の処理は不要である。
4. さらなる拡張のためにビットを確保する。
【0045】
諸実施形態では、イベントメッセージインスタンスボックスは以下のように拡張され得る:
【数1】
【0046】
上記に示されるような拡張されたイベントメッセージインスタンスボックスにおいて:
・ update_id:このフィールドの値が同一である場合、新しいインスタンスが前のインスタンス(複数可)の更新であることを示し得る。
・ update_mode:各値が、前のインスタンスとの特定の関係を定義し得る。例えば:
0: 新しいイベントが前のイベントと置き換わるような置換を示し得る。
1: タイミングの変化、すなわち、イベントの開始および/または持続時間が更新されている。
2: キャンセル:このイベントインスタンスが前のインスタンスをキャンセルすること、すなわち、前のインスタンスが処理される必要がないことを示し得る。
【0047】
したがって、実施形態は、イベントメッセージトラック中のイベントインスタンス間のより拡張された関係、例えば、同等性を超える関係をシグナリングする方法を提供し得、1つまたは複数のイベントインスタンスは、更新のために一意の新しい識別子を使用して互いにリンクされ得、別のフィールドは、置換、タイミングの変更、およびキャンセルを含む関係を示し得、前のインスタンス(複数可)に対する更新であるイベントメッセージインスタンスが検出されたとき、クライアントは、更新されたインスタンスを処理するか、または前に処理されたインスタンスを訂正するだけであり得る。
【0048】
図4は、DASHクライアント300を含むメディアストリーミングシステムを管理するための例示的なプロセス400のフローチャートである。いくつかの実装形態では、
図4の1つまたは複数のプロセスブロックは、ユーザデバイス441によって実行され得る。いくつかの実装形態では、
図4の1つまたは複数のプロセスブロックは、プラットフォーム120など、ユーザデバイス110とは別個のまたはそれを含む別のデバイスまたはデバイスのグループによって実行され得る。
【0049】
図4に示されているように、プロセス400は、複数のイベントメッセージインスタンスボックスを含むイベントメッセージトラックを取得することを含み得、イベントメッセージトラックは、メディアコンテンツを表示するために動的適応ストリーミングオーバーハイパーテキスト転送プロトコル(DASH)クライアントによって処理されるように構成される(ブロック410)。
【0050】
図4にさらに示されているように、プロセス400は、イベントメッセージトラックに含まれる第1のイベントメッセージインスタンスボックスを取得することを含み得る(ブロック420)。
【0051】
図4にさらに示されているように、プロセス400は、イベントメッセージトラックに含まれる第2のイベントメッセージインスタンスボックスを取得することを含み得、第2のイベントメッセージインスタンスボックスは、第1のイベントメッセージインスタンスボックスを識別する第1の情報と、第1のイベントメッセージインスタンスボックスと第2のイベントメッセージインスタンスボックスとの間の関係を指定する第2の情報とを含む(ブロック430)。
【0052】
図4にさらに示されているように、プロセス400は、第1の情報および第2の情報に基づいて第1のイベントメッセージインスタンスボックスを修正することを含み得る(ブロック440)。
【0053】
図4にさらに示されているように、プロセス400は、イベントメッセージトラックをDASHクライアントに提供するか、またはイベントメッセージトラックに基づいてメディアコンテンツを表示することを含み得る(ブロック450)。
【0054】
諸実施形態では、第1のイベントメッセージインスタンスボックスは識別子を含み得、第1の情報は更新識別子を含み得、プロセス400は、識別子の値が更新識別子の値に等しいことに基づいて、第1のイベントメッセージインスタンスボックスが第2のイベントメッセージインスタンスボックスに関連すると決定することをさらに含み得る。
【0055】
諸実施形態では、第2の情報は、第1のイベントメッセージインスタンスボックスと第2のイベントメッセージインスタンスボックスとの間の関係のタイプを示す値を含み得る。
【0056】
諸実施形態では、値が第1の値であることに基づいて、第2の情報は、関係が第1の関係タイプを有することを示し、値が第2の値であることに基づいて、第2の情報は、関係が第2の関係タイプを有することを示し、値が第3の値であることに基づいて、第2の情報は、関係が第3の関係タイプを有することを示す。
【0057】
諸実施形態では、第1の関係タイプは置換関係であり得、値が第1の値であることに基づいて、第1のイベントメッセージインスタンスボックスを修正することは、イベントメッセージトラック内の第1のイベントメッセージインスタンスボックスを第2のイベントメッセージインスタンスボックスと置き換えることを含み得る。
【0058】
諸実施形態では、第2の関係タイプはタイミング変更関係であり得、値が第2の値であることに基づいて、第1のイベントメッセージインスタンスボックスを修正することは、第1のイベントメッセージインスタンスボックスに対応する開始時間、または第1のイベントメッセージインスタンスボックスに対応する終了時間のうちの少なくとも1つを変更することを含み得る。
【0059】
諸実施形態では、第3の関係タイプはキャンセル関係であり得、値が第3の値であることに基づいて、第1のイベントメッセージインスタンスボックスを修正することは、イベントメッセージトラックから第1のイベントメッセージインスタンスボックスをキャンセルすることを含み得る。
【0060】
図4はプロセス400の例示的なブロックを示しているが、いくつかの実装形態では、プロセス400は、
図4に示されているものと比べて、追加のブロック、より少ないブロック、異なるブロック、または別様に配置されたブロックを含み得る。追加的に、または代替的に、プロセス400のブロックのうちの2つ以上が並行して実行されてもよい。
【0061】
図5を参照して、諸実施形態によるコンピュータコード500について説明する。コンピュータコード500は、DASHクライアント300を含むメディアストリーミングシステムによって実行され得る。例えば、メディアストリーミングシステムは、
図1に関して説明された環境100によって実装され得る。メディアストリーミングシステムは、コンピュータコード500を記憶するように構成されたメモリと、コンピュータコード500にアクセスし、コンピュータコード500の指示にしたがって動作するように構成された少なくとも1つのプロセッサとを含み得る。コンピュータコード500は、メディアストリーミングシステムの異なる構成要素(例えば、サーバ、クライアントなど)のメモリ間に分散され得、特定の構成要素の少なくとも1つのプロセッサに、本開示で説明される機能を含む、任意の数のそれらの機能を実行させるように構成され得る。例えば、コンピュータコード500は、任意の数の第1の取得コード510、第2の取得コード520、第3の取得コード530、修正コード540、および提供コード550を含み得る。
【0062】
諸実施形態では、第1の取得コード510、第2の取得コード520、第3の取得コード530、修正コード540、および提供コード550は、DASHクライアント300を含むメディアストリーミングシステムに、
図4を参照して上記で説明したプロセスの側面をそれぞれ実行させるように構成され得る。
【0063】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法、サーバ、およびクライアントの各々は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実装され得る。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。
【0064】
前述の開示は、例示および説明を提供するが、網羅的であること、または実装形態を開示された厳密な形態に限定することを意図するものではない。修正および変形は、上記の開示に照らして可能であり、または実装形態の実施から獲得され得る。
【0065】
本明細書で説明されるシステムおよび/または方法は、異なる形態のハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せで実装され得ることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、ソフトウェアおよびハードウェアは、本明細書の説明に基づいてシステムおよび/または方法を実装するように設計され得ることを理解されたい。
【0066】
特徴の特定の組合せが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組合せは、可能な実装形態の開示を限定するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない方法および/または本明細書に具体的に開示されていない方法で組み合わされ得る。以下に列挙される各従属請求項は、1つの請求項のみに直接従属し得るが、可能な実装形態の開示は、請求項セット内の他のすべての請求項と組み合わせた各従属請求項を含む。
【0067】
本明細書で使用される要素、動作、または命令は、そのように明示的に説明されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数(one or more)」と交換可能に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つまたは複数の項目(例えば、関連する項目、関連しない項目、関連する項目と関連しない項目との組合せなど)を含むことを意図しており、「1つまたは複数」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語または類似の文言が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有している(having)」などの用語は、オープンエンドの用語であることを意図している。さらに、「~に基づいて(based on)」という表現は、明示的に別段の定めがない限り、「~に少なくとも部分的に基づいて(based, at least in art, on)」を意味することを意図している。