(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-16
(45)【発行日】2023-03-27
(54)【発明の名称】HTTPによる動的適応ストリーミングのための方法及び装置
(51)【国際特許分類】
H04L 65/60 20220101AFI20230317BHJP
H04L 67/02 20220101ALI20230317BHJP
H04N 21/235 20110101ALI20230317BHJP
H04N 21/435 20110101ALI20230317BHJP
【FI】
H04L65/60
H04L67/02
H04N21/235
H04N21/435
(21)【出願番号】P 2021552982
(86)(22)【出願日】2020-09-28
(86)【国際出願番号】 US2020053031
(87)【国際公開番号】W WO2021067171
(87)【国際公開日】2021-04-08
【審査請求日】2021-09-07
(32)【優先日】2019-09-30
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ソダガァ,イラジ
【審査官】佐々木 洋
(56)【参考文献】
【文献】特表2019-519981(JP,A)
【文献】国際公開第2017/122554(WO,A1)
【文献】特表2016-522622(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
H04L 41/00-101/695
H04N 21/435
H04N 21/235
(57)【特許請求の範囲】
【請求項1】
メディア・データを受信する方法であって、
複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックを受信するステップであって、前記複数のセグメントの各々は前記複数のメタデータ・サンプルのうちの唯1つを含み、前記複数のメタデータ・サンプ
ル各々は1つ以上のイベント・メッセージ・ボックスを含
み、前記複数のメタデータ・サンプル各々の開始プレゼンテーション時間は、各々のメタデータ・サンプルを含む前記複数のセグメントのうちの異なるメタデータ・サンプルの開始プレゼンテーション時間に等しい、ステップと、
各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定するステップと、
前記各々のイベント・メッセージ・ボックスの前記スタート時間及び前記アクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報を処理するステップと
を含み、前記タイムド・メタデータ・トラックに対
するフラグメンテーション及びデフラグメンテーション・プロセス
は、前記複数のメタデータ・サンプルの単位で実行される、方法。
【請求項2】
各々のイベント・メッセージ・ボックスのタイムスケールは、前記タイムド・メタデータ・トラックのタイムスケールに等しい、請求項1に記載の方法。
【請求項3】
前記複数のメタデータ・サンプ
ル各々
の継続時間は、前記各々のメタデータ・サンプルを含む前記複数のセグメントの
うちの異なるメタデータ・サンプル継続時間に等しい、請求項1又は2に記載の方法。
【請求項4】
前記複数のメタデータ・サンプ
ル各々の前記
開始プレゼンテーション時間は、前記各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスの
開始プレゼンテーション時間値及び
開始プレゼンテーション時間デルタ値のうちの1つに対するアンカーである、請求項3に記載の方法。
【請求項5】
各々のイベント・メッセージ・ボックスの前記スタート時間と前記アクティブ継続時間の合計は、前記タイムド・メタデータ・トラックの終了プレゼンテーション時間により制限される、請求項1-4のうちの何れか1項に記載の方法。
【請求項6】
前記複数のセグメントの各々は、共通メディア・アプリケーション・フォーマット(CMAF)フラグメント及びハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)セグメントのうちの1つである、請求項1-5のうちの何れか1項に記載の方法。
【請求項7】
前記複数のメタデータ・サンプルの1つに含まれる各々のイベント・メッセージ・ボックスは、異なるスキーム識別子を含む、請求項1-6のうちの何れか1項に記載の方法。
【請求項8】
前記フラグメンテーション及びデフラグメンテーション・プロセスは、国際標準化機構(ISO)/国際電気標準会議(IEC)ベースのメディア・ファイル・フォーマット(ISOBMFF)のフラグメンテーション及びデフラグメンテーション・プロセスに基づいている、請求項1-7のうちの何れか1項に記載の方法。
【請求項9】
メディア・データを受信する装置であって、請求項1-8のうちの何れか1項に記載の方法を実行する処理回路を含む、装置。
【請求項10】
請求項1-
8のうちの何れか1項に記載の方法をコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
参照による援用
本願は2020年9月24日付で出願された米国特許出願第17/031,227号「HTTPによる動的適応ストリーミングのための方法及び装置」に対する優先権の利益を主張しており、同出願は2019年9月30日付で出願された米国仮出願第62/908,238号「埋め込まれたイベント・メッセージ・ボックスを伴うシングル・サンプル・スパース・タイムド・メタデータ・データDASHセグメント及びCMAFフラグメント」に対する優先権の利益を主張している。先の出願の開示全体は参照によりその全体が本願に組み込まれる。
【0002】
技術分野
本開示はハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)のための方法及び装置に一般的に関連する実施形態を説明している。
【背景技術】
【0003】
ここに記載される背景の説明は、本開示の状況を一般的に提示するためのものである。目下の発明者の仕事は、その仕事がこの背景のセクションだけでなく、出願時における従来技術としての適格性を有しない可能性のある説明の態様にも及ぶ範囲内において、本開示に対する従来技術として明示的にも黙示的にも認められていない。
【0004】
ハイパーテキスト・トランスファ・プロトコルによる動画エキスパート・グループ(MPEG)の動的適応ストリーミング(DASH)は、IPネットワークを介するマルチメディア・コンテンツをストリーミングするための規格を提供する。DASH規格は、メディア・セグメントでイベント・メッセージ・ボックスを搬送することを許容する。
【発明の概要】
【0005】
本開示の態様は、メディア・データを受信する装置を提供する。1つの装置は、複数のメタデータ・サンプルを含む複数のセグメントのタイムド(又は時間指定された)メタデータ・トラック(timed metadata track)を受信する処理回路を含む。複数のセグメントの各々は複数のメタデータ・サンプルのうちの唯1つを含む。複数のメタデータ・サンプルの各々は1つ以上のイベント・メッセージ・ボックスを含む。処理回路は、各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定する。処理回路は、各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報を処理する。タイムド・メタデータ・トラックに対してフラグメンテーション及びデフラグメンテーション・プロセスが実行される。
【0006】
実施形態では、各々のイベント・メッセージ・ボックスのタイムスケールは、タイムド・メタデータ・トラックのタイムスケールに等しい。
【0007】
実施形態では、複数のメタデータ・サンプルの各々のプレゼンテーション時間及び継続時間は、各々のメタデータ・サンプルを含む複数のセグメントの1つの最先のプレゼンテーション時間及び継続時間に等しい。
【0008】
実施形態では、複数のメタデータ・サンプルの各々のプレゼンテーション時間は、各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスのプレゼンテーション時間値及びプレゼンテーション時間デルタ値のうちの1つに対するアンカーである。
【0009】
実施形態では、各々のイベント・メッセージ・ボックスのスタート時間とアクティブ継続時間の合計は、タイムド・メタデータ・トラックの終了プレゼンテーション時間により制限される。
【0010】
実施形態では、複数のセグメントの各々は、共通メディア・アプリケーション・フォーマット(CMAF)フラグメント及びハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)セグメントのうちの1つである。
【0011】
実施形態では、複数のメタデータ・サンプルの1つに含まれる各々のイベント・メッセージ・ボックスは、異なるスキーム識別子を含む。
【0012】
実施形態では、フラグメンテーション及びデフラグメンテーション・プロセスは、国際標準化機構(ISO)/国際電気標準会議(IEC)ベースのメディア・ファイル・フォーマット(ISOBMFF)のフラグメンテーション及びデフラグメンテーション・プロセスに基づいている。
【0013】
本開示の態様はメディア・データを受信する方法を提供する。1つの方法では、複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックが受信される。複数のセグメントの各々は複数のメタデータ・サンプルのうちの唯1つを含む。複数のメタデータ・サンプルの各々は1つ以上のイベント・メッセージ・ボックスを含む。各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間が決定される。各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報が処理される。タイムド・メタデータ・トラックに対してフラグメンテーション及びデフラグメンテーション・プロセスが実行される。
【0014】
本開示の態様はまた、命令を記憶する非一時的なコンピュータ読み取り可能な媒体も提供し、命令は、メディア・データを受信するためにコンピュータにより実行されると、メディア・データを受信するための方法のうちの任意の1つ又は組み合わせをコンピュータに実行させる。
【図面の簡単な説明】
【0015】
開示される対象事項の更なる特徴、性質、及び種々の利点は、以下の詳細な説明及び添付の図面から更に明らかになるであろう。
【0016】
【
図1】本開示の実施形態によるハイパーテキスト・トランスファ・プロトコルによる例示的な動的適応ストリーミング(DASH)システムを示す。
【0017】
【
図2】本開示の実施形態による例示的なDASHクライアント・アーキテクチャを示す。
【0018】
【
図3】本開示の実施形態による例示的なインバンド・イベント・タイミング・モデルを示す。
【0019】
【
図4】本開示の実施形態によるコンテンツ・ストリームに含めることが可能なメディア・トラック及びタイムド・メタデータ・トラックの一例を示す。
【0020】
【
図5】幾つかの実施形態に従ったプロセス例を要約したフローチャートを示す。
【0021】
【
図6】実施形態によるコンピュータ・システムの概略図である。
【発明を実施するための形態】
【0022】
I.ハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)及びメディア・プレゼンテーション記述(MPD)
【0023】
ハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)は、ウェブ・サーバー、コンテンツ配信ネットワーク(CDN)、各種プロキシ及びキャッシュなどのハイパーテキスト・トランスファ・プロトコル(HTTP)インフラストラクチャを使用してメディア・コンテンツのストリーミングを可能にする適応ビットレート・ストリーミング技術である。DASHは、DASHサーバーからDASHクライアントへのオンデマンド及びライブ・ストリーミングの両方をサポートし、DASHクライアントがストリーミング・セッションを制御できるようにし、その結果、DASHサーバーは、大規模な配備において、ストリーム適応管理の追加的な負荷に対処することを要しない。また、DASHは、DASHクライアントが様々なDASHサーバーからストリーミングを選択できるようにし、従って、DASHクライアントの利益に関し、ネットワークの更なるロード・バランシングを達成することが可能である。DASHは、例えば、ネットワーク条件に適応するためにビットレートを変化させることによって、異なるメディア・トラック間の動的なスイッチングを提供する。
【0024】
DASHでは、メディア・プレゼンテーション記述(MPD)ファイルは、DASHサーバーからメディア・セグメントをダウンロードすることにより、メディア・コンテンツを適応的にストリーミングするための情報をDASHクライアントに提供する。MPDファイルは、分割され、部分的に配信されて、セッションのスタート・アップ遅延を減らすことが可能である。MPDファイルはまた、ストリーミング・セッション中に更新されることも可能である。幾つかの例では、MPDファイルは、コンテンツ・アクセシビリティ機能、レーティング、及びカメラ視野の表現をサポートする。DASHはまた、マルチ・ビュー及びスケーラブルなコード化されたコンテンツの配信もサポートする。
【0025】
MPDファイルは、1つ以上のピリオド(period)のシーケンスを含むことが可能である。1つ以上のピリオドのそれぞれは、MPDファイルにおけるピリオド要素によって定義することが可能である。MPDファイルは、MPDに対するavailableStartTime属性と各ピリオドに対するスタート(start)属性とを含むことが可能である。動的なタイプ(例えば、ライブ・サービスに使用されるもの)のメディア・プレゼンテーションの場合、ピリオドのスタート属性とMPD属性availableStartTimeの合計及びメディア・セグメントの継続時間は、ピリオドの利用可能時間を協定世界時(UTC)の形式で、特に対応するピリオドにおける各リプレゼンテーション(representation)の第1メディア・セグメントを示すことが可能である。静的なタイプ(例えば、オンデマンド・サービスに使用されるもの)のメディア・プレゼンテーションの場合、第1ピリオドのスタート属性は0であるとすることが可能である。その他の何らかのピリオドに関し、スタート属性は、第1ピリオドのスタート時間に対する、対応するピリオドのスタート時間の間の時間オフセットを指定することが可能である。各ピリオドは、次のピリオドのスタートまで、又は最後のピリオドの場合はメディア・プレゼンテーションの終了まで延長することが可能である。ピリオドのスタート時間は正確であり、過去のすべてのピリオドのメディアを再生した結果生じる実際のタイミングを反映することが可能である。
【0026】
各ピリオドは、1つ以上のアダプテーション・セット(adaptations sets)を含むことが可能であり、アダプテーション・セットの各々は、同一のメディア・コンテンツに対する1つ以上のリプレゼンテーションを含むことが可能である。リプレゼンテーションは、オーディオ又はビデオ・データの多数の代替的な符号化されたバージョンのうちの1つであるとすることが可能である。リプレゼンテーションは、符号化するタイプによって、例えばビットレート、解像度、及び/又はビデオ・データやビットレートのコーデック、及び/又はオーディオ・データのコーデックによって、相違する可能性がある。リプレゼンテーションという用語は、マルチメディア・コンテンツの特定のピリオドに対応する符号化されたオーディオ又はビデオ・データのセクションであって特定の方法で符号化されたものを指すために使用することが可能である。
【0027】
特定のピリオドのアダプテーション・セットは、MPDファイルのグループ(group)属性で示されたグループに割り当てることが可能である。同じグループ内のアダプテーション・セットは、一般に、互いに代替的であると考えられる。例えば、特定のピリオドのビデオ・データの各アダプテーション・セットは同じグループに割り当てることが可能であり、その結果、対応するピリオドのマルチメディア・コンテンツのビデオ・データを表示するために、任意のアダプテーション・セットを復号化のために選択することが可能である。1つのピリオド内のメディア・コンテンツは、もし存在するならば、グループ0からの1つのアダプテーション・セット、又は幾つかの例では、非ゼロの各グループからの多くとも1つのアダプテーション・セットの組み合わせのうちの何れかによって表現することが可能である。ピリオドの各リプレゼンテーションのタイミング・データは、ピリオドのスタート時間に対して表現されることが可能である。
【0028】
リプレゼンテーションは1つ以上のセグメントを含むことが可能である。各リプレゼンテーションは初期化セグメントを含むことが可能であり、あるいはリプレゼンテーションの各セグメントは自己初期化することが可能である。存在する場合、初期化セグメントは、リプレゼンテーションにアクセスするための初期化情報を含むことが可能である。場合によっては、初期化セグメントはメディア・データを含まない。セグメントは、ユニフォーム・リソース・ロケータ(URL)、ユニフォーム・リソース・ネーム(URN)、又はユニフォーム・リソース識別子(URI)のような識別子によって一意に参照することが可能である。MPDファイルは各セグメントの識別子を提供することが可能である。幾つかの例では、MPDファイルは、URL、URN、又はURIによってアクセス可能なファイル内のセグメントのデータに対応することが可能なレンジ(range)属性の形式で、バイト範囲を提供することも可能である。
【0029】
各リプレゼンテーションは、1つ以上のメディア・コンポーネントを含むことも可能であり、各メディア・コンポーネントは、オーディオ、ビデオ、又は(例えば、クローズド・キャプショニングなどの)タイムド・テキストのような、1つの個別的なメディア・タイプの符号化されたバージョンに対応することが可能である。メディア・コンポーネントは、1つのリプレゼンテーション内で連続したメディア・セグメントの境界を横切って、時間的に連続であるとすることが可能である。
【0030】
幾つかの実施形態では、DASHクライアントはDASHサーバーからMPDファイルにアクセスし、ダウンロードすることが可能である。即ち、DASHクライアントは、ライブ・セッションを開始する際に使用するMPDファイルを取り出すことが可能である。MPDファイルに基づいて、そして選択された各リプレゼンテーションに対して、DASHクライアントは幾つかの決定を行うことが可能であり、決定は、サーバー上で利用可能な最新セグメントは何であるかを決定すること、次のセグメント及び可能性のある将来のセグメントのセグメント利用可能なスタート時間を決定すること、セグメントの再生をスタートさせる時点及びセグメント中のどのタイムラインからかを決定すること、及び新しいMPDファイルをいつ取得/獲得するかを決定することを含む。いったんサービスが再生されると、クライアントは、ライブ・サービスとそれ自身の再生との間のドリフトを追跡することが可能であり、これは検出されて補償されることを要する。
【0031】
II.イベント・メッセージ・ボックス
【0032】
国際標準化機構(ISO)/国際電気標準会議(IEC)23009-1のDASH規格は、メディア・セグメントとともにイベントを搬送するためのイベント・メッセージ・ボックスを導入した。ISO/IEC23000-19共通メディア・アプリケーション・フォーマット(CMAF)は、イベント・メッセージ・ボックスが各CMAFチャンクの先頭に含まれることを許容する。CMAFスパース・メタデータ・トラックの一部としてのイベント・メッセージの搬送が議論されている。しかしながら、そのようなトラックがISO/IEC14496-12ISO/IECベース・メディア・ファイル・フォーマット(ISOBMFF)トラックのフラグメンテーション/デフラグメンテーションの要件を満たすかどうかに関して問題が生じる。
【0033】
本開示は、タイムド・メタデータ・トラックに含まれるイベント情報のような、イベント情報のシグナリング及び処理に関する実施形態を含む。イベント情報は、メディア・プレゼンテーションにおける時点又は期間に関連するメディア・タイムド・イベント(例えば、連続的なオーディオ及び/又はビデオ・プレゼンテーション)に対応することが可能である。例えば、イベント情報は、動的コンテンツの再配置、広告の挿入、オーディオ及び/又はビデオと並行する補足コンテンツの提示、ウェブページに変更を加えること、及びメディア・プレゼンテーションのメディア・タイムライン(例えば、オーディオ及び/又はビデオ・メディア・ストリーム)における特定の地点でトリガされたアプリケーション・コードを実行すること、のために使用することが可能である。更に、イベント情報は、異なる方法によって提供されることが可能である。
【0034】
メディア・タイムド・イベントは、メディア・ストリームと同期するように意図される情報を搬送するために使用することが可能である。例えば、イベント情報は、プログラムやチャプタタイトル、又は地理的な位置情報のようなメディア・プレゼンテーションの内容を記述するメタデータ(又は、タイムド・メタデータ)を含むことが可能である。更に、イベント情報は、広告挿入キューのような、メディア・プレゼンテーション再生中の特定の時間に関連付けられたメディア・プレーヤに関する制御メッセージを含むことが可能である。
【0035】
本開示の実施形態は、MPEG-DASHにおいて実施することが可能である。タイムド・メタデータ・トラックは、イベント情報を搬送する埋め込みイベント・メッセージ・ボックス(emsg)を含むことが可能である。タイムド・メタデータ・トラックは、上記のMPDイベント及びインバンド・イベントと同様な情報を搬送するために使用することが可能である。イベント情報は、他のトラックで提供される情報と時間同期したメタデータを含むことが可能である。このような同期化に起因して、タイムド・メタデータ・トラック内のメタデータは、不規則に又は不連続的に提供される可能性があり、そのようなタイムド・メタデータ・トラックは、スパース・タイムド・メタデータ・トラックと言及することが可能である。
【0036】
タイムド・メタデータ・トラックがメタデータ・サンプルの一部としてイベント・メッセージ・ボックスを搬送する場合、各イベント・メッセージ・ボックスは、アンカーとしてイベント・メッセージ・ボックスを含む共通メディア・アプリケーション・フォーマット(CMAF)チャンク又はトラックのうちの最先のプレゼンテーション時間を使用する独自のタイミングを含むことが可能である。しかしながら、ISO/IECベースのメディア・ファイル・フォーマット(ISOBMFF)は、ISOBMFFトラックが何らかのフラグメンテーション及びデフラグメンテーション・プロセスを経て進行する場合に、データのタイミングが確保されることを要求する。埋め込まれたイベントを搬送するスパース・タイムド・メタデータ・トラックは、フラグメンテーション及びデフラグメンテーション・プロセスにおけるチャンク又はトラック境界の損失に起因して、この要件をサポートできない可能性がある。
【0037】
本開示は、任意のフラグメンテーション及びデフラグメンテーション・プロセスをサポートし、従って有効なISOBMFFトラックとなる埋め込まれたイベントを搬送するスパース・タイムド・メタデータ・トラックのための方法を提示している。
【0038】
図1は、本開示の実施形態による例示的なDASHシステム(100)を示す。DASHシステム(100)では、MPDファイルがDASHサーバー(101)(コンテンツ・サーバー)からDASHクライアント(102)へ送信される。DASHクライアント(102)は、MPDファイルに基づいてDASHサーバー(101)からメディア・セグメントを受信することが可能である。DASHクライアント(102)は、MPDファイルを更新するためにリクエストをDASHサーバー(101)に送信することが可能である。DASHサーバー(101)は、プライマリ・コンテンツ(例えば、メイン・プログラム)及び1つ以上のタイムド・メタデータ・トラックを含むコンテンツ・ストリームを提供することが可能である。
【0039】
図2は、本開示の実施形態による例示的なDASHクライアント・アーキテクチャを示す。DASHクライアント(又はDASHプレーヤ)は、アプリケーション(212)と通信し、(i)MPDイベント、(ii)インバンド・イベント、及び(iii)タイムド・メタデータ・イベントを含む種々のタイプのイベントを処理するように構成することが可能である。
【0040】
マニフェスト・パーサー(210)は、マニフェスト(例えば、MPD)を解析することが可能である。マニフェストは例えばDASHサーバー(101)によって提供することが可能である。マニフェスト・パーサー(210)は、MPDイベント、インバンド・イベント、及びタイムド・メタデータ・イベントに関する、タイムド・メタデータ・トラックに埋め込まれたイベント情報を抽出することが可能である。抽出されたイベント情報は、DASHロジック(211)(例えば、DASHプレーヤ制御、選択、及び発見的ロジック)に提供されることが可能である。DASHロジック(211)は、イベント情報に基づいて、マニフェストでシグナリングされたイベント・スキームを、アプリケーション(212)に通知することが可能である。
【0041】
イベント情報は、異なるイベント・ストリームを区別するためのイベント・スキーム情報を含むことが可能である。アプリケーション(212)は、イベント・スキーム情報を使用して、関心のあるイベント・スキームに加入することが可能である。アプリケーション(212)は、更に、1つ以上のサブスクリプション・アプリケーション・プログラミング・インターフェース(API)を介して、加入したスキームの各々に対して所望のディスパッチ・モードを指定することが可能である。例えば、アプリケーション(212)は、関心のある1つ以上のイベント・スキーム及び任意の所望の対応するディスパッチ・モードを識別するサブスクリプション・リクエストを、DASHクライアントに送信することが可能である。
【0042】
アプリケーション(212)が、1つ以上のタイムド・メタデータ・トラックの一部として配信される1つ以上のイベント・スキームに加入している場合、インバンド・イベント及び‘moof’パーサー(203)は、1つ以上のタイムド・メタデータ・トラックを、タイムド・メタデータ・トラック・パーサー(204)にストリーミングすることが可能である。例えば、インバンド・イベント及び‘moof’パーサー(203)は、DASHロジック(211)からの制御情報に基づいて、ムービー・フラグメント・ボックス(“moof”)を解析し、その後にタイムド・メタデータ・トラックを解析する。
【0043】
タイムド・メタデータ・トラック・パーサー(204)は、タイムド・メタデータ・トラックに埋め込まれたイベント・メッセージを抽出することが可能である。抽出されたイベント・メッセージは、イベント及びタイミング・メタデータ・バッファ(206)に格納されることが可能である。シンクロナイザ/ディスパッチャ・モジュール(208)(例えば、イベント及びタイムド・メタデータ・シンクロナイザ及びディスパッチャ)は、加入済みイベントを、アプリケーション(212)に対してディスパッチ(又は送信)することが可能である。
【0044】
MPDに記述されるMPDイベントは、マニフェスト・パーサー(210)によって解析され、イベント&タイムド・メタデータ・バッファ(206)に格納される。例えば、マニフェスト・パーサー(210)は、MPDの各イベント・ストリーム・エレメントを解析し、各イベント・ストリーム・エレメントに記述された各イベントを解析する。MPDでシグナリングされる各イベントに関し、プレゼンテーション時間及びイベント継続時間のようなイベント情報は、イベント&タイムド・メタデータ・バッファ(206)に、イベントと関連付けて格納することが可能である。
【0045】
インバンド・イベント及び‘moof’パーサー(203)は、インバンド・イベント・メッセージを抽出するためにメディア・セグメントを解析することが可能である。このように識別されたインバンド・イベント並びに関連するプレゼンテーション時間及び継続時間は、イベント&タイムド・メタデータ・バッファ(206)に格納されることが可能である。
【0046】
従って、イベント&タイムド・メタデータ・バッファ(206)は、MPDイベント、インバンド・イベント、及び/又はタイムド・メタデータ・イベントをそこに格納することが可能である。イベント&タイムド・メタデータ・バッファ(206)は、例えば、先入れ先出し(FIFO)バッファであるとすることが可能である。イベント&タイムド・メタデータ・バッファ(206)は、メディア・バッファ(207)と通信可能に管理されることが可能である。例えば、メディア・セグメントがメディア・バッファ(207)に存在する限り、そのメディア・セグメントに対応する任意のイベント又はタイムド・メタデータを、イベント&タイムド・メタデータ・バッファ(206)に格納することが可能である。
【0047】
DASHアクセスAPI(202)は、HTTPプロトコル・スタック(201)を介して、メディア・コンテンツ及び様々なメタデータを含むコンテンツ・ストリーム(又はデータフロー)の取得と受信を管理することが可能である。DASHアクセスAPI(202)は、受信したコンテンツ・ストリームを、異なるデータフローに分離することが可能である。インバンド・イベント及び‘moof’パーサー(203)に提供されるデータフローは、メディア・セグメント、1つ以上のタイムド・メタデータ・トラック、及びメディア・セグメントに含まれるインバンド・イベント・シグナリングを含むことが可能である。実施形態では、マニフェスト・パーサー(210)に提供されるデータフローは、MPDを含むことが可能である。
【0048】
DASHアクセスAPI(202)はマニフェストをマニフェスト・パーサー(210)へ転送することが可能である。イベントを記述する以外に、マニフェストはメディア・セグメントに関する情報を、DASHロジック(211)に提供することが可能であり、DASHロジック(211)は、アプリケーション(212)及びインバンド・イベント&‘moof’パーサー(203)と通信することが可能である。アプリケーション(212)は、DASHクライアントによって処理されるメディア・コンテンツに関連付けることが可能である。アプリケーション(212)、DASHロジック(211)、マニフェスト・パーサー(210)、及びDASHアクセスAPI(202)の間でやり取りされる制御/同期信号は、マニフェストで提供されるメディア・セグメントに関する情報に基づいて、HTTPスタック(201)からのメディア・セグメントの取得を制御することが可能である。
【0049】
インバンド・イベントと‘moof’パーサー(203) は、メディア・データフローを、メディア・コンテンツ、タイムド・メタデータ・トラックのタイムド・メタデータ、及びメディア・セグメントにおける何らかのシグナリングされたインバンド・イベントに解析することが可能である。メディア・コンテンツを含むメディア・セグメントは、ファイル・フォーマット・パーサー(205)によって解析され、メディア・バッファ(207)に格納されることが可能である。
【0050】
イベント&タイムド・メタデータ・バッファ(206)に格納されているイベントは、シンクロナイザ/ディスパッチャ(208)が、イベント/メタデータAPIを介して、アプリケーション(212)に関連する利用可能なイベント(又は関心のあるイベント)をアプリケーション(212)に伝えることを可能にすることができる。アプリケーション(212)は、利用可能なイベント(例えば、MPDイベント、インバンド・イベント、又はタイムド・メタデータ・イベント)を処理し、シンクロナイザ/ディスパッチャ(208)に通知することによって、特定のイベント又はタイムド・メタデータに加入するように構成されることが可能である。アプリケーション(212)には関係しないがDASHクライアント自体には関係する、イベント&タイムド・メタデータ・バッファ(206)に格納されたイベントは、シンクロナイザ/ディスパッチャ(208)によってDASHロジック(211)へ更なる処理のために転送されることが可能である。
【0051】
特定のイベントに加入するアプリケーション(212)に応答して、シンクロナイザ/ディスパッチャ(208)は、アプリケーション(212)が加入しているイベント・スキームに対応するイベント・インスタンス(又はタイムド・メタデータ・サンプル)を、アプリケーション(212)に伝えることが可能である。イベント・インスタンスは、加入リクエストによって指定されるディスパッチ・モード(例えば、特定のイベント・スキームに対するもの)又はデフォルトのディスパッチ・モードに従って、伝達されることが可能である。例えば、オン-受信ディスパッチ・モードでは、イベント・インスタンスは、イベント&タイムド・メタデータ・バッファ(206)での受信の際に、アプリケーション(212)へ送信されることが可能である。一方、オン-スタート・ディスパッチ・モードでは、イベント・インスタンスは、例えばメディア・デコーダ(209)からのタイミング信号に同期して、それらの関連するプレゼンテーション時間でアプリケーション(212)に送信されることが可能である。
【0052】
DASHクライアント・アーキテクチャにおいて、太いデータフロー・ラインはメディア・データフローを示し、細いデータフロー・ラインはイベント及びタイムド・メタデータ・データフローを示し、破線のデータフロー・ラインは制御及び同期を示すことに留意すべきである。更に、同じ処理モデルをCMAFイベントに使用することが可能である。
【0053】
図3は、本開示の実施形態によるイベント・メッセージ・ボックスの例示的なタイミング・モデルを示す。タイミング・モデルにおいて、各イベント・メッセージ・ボックスは、メディア・タイムラインにおける3つのタイミング・パラメータ:(i)イベント・メッセージ・ボックスを含むセグメントのうち最先のプレゼンテーション時間であるイベント到着時間(AT)、(ii)イベントがアクティブになるメディア(MPD)タイムライン内の時点であるイベント・プレゼンテーション/スタート時間(ST)、及び(iii)イベントがアクティブである期間におけるイベント継続時間(DU)によって記述することが可能である。
【0054】
メディア・セグメントの先頭に、イベント・メッセージ・ボックスを挿入することが可能である。従って、イベント・メッセージ・ボックスを搬送するメディア・セグメントのうち最先のプレゼンテーション時間は、メディア・タイムラインにおけるイベント・メッセージ・ボックスの位置と見なすことが可能である。DASHクライアントは、イベント・メッセージ・ボックスのATの前又はその時点でメディア・セグメントを取得及び解析することが可能である。
【0055】
イベント・メッセージ・ボックスのSTは、トラック内のイベント・メッセージ・ボックスを搬送するメディア・セグメント(例えば、DASHセグメント又はCMAFブロック)の位置からのオフセットを有する可能性がある。STのアンカーは、イベント・メッセージ・ボックスのバージョンに応じて異なる可能性がある。バージョン0のイベント・メッセージ・ボックスの場合、アンカーは、イベント・メッセージ・ボックスを搬送するCMAFフラグメント/DASHセグメントのうち最先のプレゼンテーション時間であるとすることが可能である。バージョン1のイベント・メッセージ・ボックスの場合、アンカーは、イベント・メッセージ・ボックスを搬送するCMAFトラック/DASHピリオドのうちの最先のプレゼンテーション時間であるとすることが可能である。
【0056】
ISO/IEC23000-19によれば、イベント・メッセージ・ボックスのタイムスケールは、CMAFトラックのMediaHeaderBoxのタイムスケールに等しいとすることが可能である。イベント・メッセージ・ボックスは、CMAFチャンク、CMAFフラグメント、又はCMAFセグメントの先頭に挿入することが可能である。CMAFフラグメントにおけるイベント・メッセージ・ボックス・バージョン0のアンカーは、フラグメントの最先のプレゼンテーション時間である。更に、ISO/IEC23009-1によれば、イベント・メッセージ・ボックスは、セグメントの最初の‘moof’ボックスの前に置くことが可能であるし、又は何らかのメディア・データ・ボックス(‘mdat’)と‘moof’ボックスとの間に配置することも可能である。後者の場合、同一のid値を有する等価な‘emsg’が、何らかのセグメントの最初の‘moof’ボックスの前に存在すべきである。
【0057】
III.フラグメンテーション/デフラグメンテーション・プロセス
【0058】
ISOBMFFのフラグメンテーション/デフラグメンテーション・プロセスは、フラグメントの任意のサイズでISOBMFFトラックをフラグメント化及びデフラグメント化することが可能である。何れのプロセスにおいても、結果として生じる非フラグメント化又はフラグメント化されたトラックは、有効なISOBMFFトラックであるはずである。この場合、新しいトラックに含まれるすべてのイベント・メッセージ・ボックスは、正しいタイミングを維持しなければならない。
【0059】
開示の態様によれば、メタデータ・サンプルの単位で、メタデータ・トラックに関してフラグメンテーション/デフラグメンテーション・プロセスを実行することが可能である。従って、フラグメンテーション/デフラグメンテーション・プロセスの間で、単一メタデータ・サンプルの正しいタイミングを維持することが可能である。しかしながら、複数のメタデータ・サンプルを含むセグメントの場合、セグメントの正確なタイミングが、フラグメンテーション/デフラグメンテーション・プロセスの間に、維持されない可能性がある。更に、セグメントがバージョン0のイベント・メッセージ・ボックスを含み、セグメントの正しいタイミングがフラグメンテーション/デフラグメンテーション・プロセスで維持されない場合、イベント・メッセージ・ボックスの正しいタイミングは維持されない可能性があり、なぜなら、バージョン0のイベント・メッセージ・ボックスのSTのアンカーが、セグメントの最先のプレゼンテーション時間であるからである。
【0060】
任意のフラグメンテーション及びデフラグメンテーションの下でCMAFフラグメンテーション/DASHセグメントの残存性(survivability)は以下のようにして解析することが可能である。
【0061】
DASHセグメント/CMAFフラグメントがバージョン0のイベント・メッセージ・ボックスを含む場合、フラグメンテーション/デフラグメンテーション・プロセスは失敗する可能性があり、なぜならイベント・メッセージ・ボックスのアンカーは、DASHセグメント/CMAFフラグメントの最先のプレゼンテーション時間であり、DASH/CMAFメディア・トラックのフラグメンテーション/デフラグメンテーション・プロセスの間に失われる可能性があるからである。
【0062】
DASHセグメント/CMAFフラグメントがバージョン1のイベント・メッセージ・ボックスを含む場合、フラグメンテーション/デフラグメンテーション・プロセスはパスすることが可能であり、なぜならイベント・メッセージ・ボックスのアンカーは、DASH/CMAFメディア・トラックの最先のプレゼンテーション時間であり、DASH/CMAFメディア・トラックのフラグメンテーション/デフラグメンテーション・プロセス中に保存されているからである。
【0063】
表1は、フラグメンテーション/デフラグメンテーション・プロセスに対するDASH及びCMAFトラックのステータスをまとめたものである。
表1
【表1】
【0064】
図4は、本開示の実施形態によるコンテンツ・ストリームに含めることが可能なメディア・トラック及びタイムド・メタデータ・トラックの一例を示す。メタデータ・トラックは、イベント・メッセージ・ボックスを含むことが可能である。イベント・メッセージ・ボックスは、メディア・プレゼンテーション時間に関連する一般的なイベントのシグナリングを提供するために使用することができる。幾つかの実施形態では、DASHクライアントが、MPDで定義されていないスキームでイベント・メッセージ・ボックスを検出した場合、DASHクライアントは、イベント・メッセージ・ボックスを無視する。
【0065】
イベント・メッセージ・ボックスは、メッセージ・スキーム識別情報(例えば、scheme_id_uri)、イベント・メッセージ・ボックスに含まれるイベントのオプション値、タイミング情報、及びイベント・データを含むことが可能である。タイミング情報は、(例えば、セグメント又はメタデータ・サンプルの開始時間のような)参照プレゼンテーション時間からのイベントのメディア・プレゼンテーション時間デルタ、イベントのメディア・プレゼンテーション時間、及び(例えば、メディア・プレゼンテーション時間における)イベント継続時間のような、他の時間情報に対するタイムスケール(例えば、1秒あたりのティック数)を示すことが可能である。
【0066】
メタデータ・トラックは、メタデータ・トラックに含まれるメタデータ・サンプルの一部として、イベント・メッセージ・ボックスを搬送することが可能である。更に、メタデータ・サンプルは、1つ以上のイベント・メッセージ・ボックスを含むことが可能である。各イベント・メッセージ・ボックスは、各イベント・メッセージ・ボックスのイベント・スキームであって、スキームURI id及びオプションの値によって定義されるイベント・スキームに属することが可能である。複数のスキームからのイベント・インスタンスは1つ以上のメタデータ・サンプルに含まれることが可能であるので、DASHクライアントがスキームを発見するためには、イベント・スキームがDASHマニフェストで識別されることを必要とする。
【0067】
DASHは、MPDのイベント・スキームを記述するために使用されることが可能な2つの要素を含む。2つの要素は、MPDイベントのイベント・ストリーム要素(例えば、EventStream)とインバンド・イベントのインバンド・イベント・ストリーム要素(例えば、InbandEventStream)である。どちらのイベント・スキームも、同じ構成を使用することが可能である。
【0068】
IV.シングル・サンプル・スパース・タイムド・メタデータ
【0069】
開示の態様によれば、埋め込まれたイベント・メッセージ・ボックスを含むメタデータ・セグメント/フラグメントは、単一サンプルのDASHセグメント/CMAFフラグメント又は複数サンプルのDASHセグメント/CMAFフラグメントであるとすることが可能である。単一サンプルのDASHセグメント/CMAFフラグメントは、唯1つのメタデータ・サンプルを含むことが可能であり、メタデータ・サンプルの継続時間は、DASHセグメント/CMAFフラグメントの継続時間に等しい。複数サンプルのDASHセグメント/CMAFフラグメントは、複数のメタデータ・サンプルを含むことが可能である。
【0070】
単一サンプルのDASHセグメント/CMAFフラグメントがバージョン0のイベント・メッセージ・ボックスを含む場合、フラグメンテーション/デフラグメンテーション・プロセスはパスすることが可能である。セグメント/フラグメントの最先のプレゼンテーション時間は、セグメント/フラグメントに含まれる唯一のメタデータ・サンプルのプレゼンテーション時間と同じであるので、イベント・メッセージ・ボックスのアンカーが、イベント・メッセージ・ボックスを含むメタデータ・サンプルのプレゼンテーション時間であると考えられる場合、イベント・メッセージ・ボックスのタイミングは、フラグメンテーション/デフラグメンテーションの間、確保されることが可能である。
【0071】
単一サンプルのDASHセグメント/CMAFフラグメントがバージョン1のイベント・メッセージ・ボックスを含む場合、トラックの最先のプレゼンテーション時間はイベント・メッセージ・ボックスのアンカーであるので、フラグメンテーション/デフラグメンテーション・プロセスはパスすることが可能である。
【0072】
複数サンプルのDASHセグメント/CMAFフラグメントがバージョン0のイベント・メッセージ・ボックスを含む場合、イベント・メッセージ・ボックスのアンカーはセグメント/フラグメントの最先のプレゼンテーション時間であり、フラグメント/デフラグメンテーション・プロセスの間に失われる可能性があるので、フラグメンテーション/デフラグメンテーション・プロセスは失敗する可能性がある。
【0073】
複数サンプルのDASHセグメント/CMAFフラグメントがバージョン1のイベント・メッセージ・ボックスを含む場合、トラックの最先のプレゼンテーション時間はイベント・メッセージ・ボックスのアンカーであるので、フラグメンテーション/デフラグメンテーションはパスすることが可能である。
【0074】
表2は、フラグメンテーション/デフラグメンテーション・プロセスに関して埋め込まれたイベント・メッセージ・ボックスを伴う単一サンプル及び複数サンプルのメタデータ・セグメント/フラグメントのステータスをまとめたものである。
表2
【表2】
【0075】
開示の態様によれば、ISOBMFFフラグメンテーション/デフラグメンテーション・プロセスを満足するために、CMAFスパース・メタデータ・トラックに対して以下の制約を適用することが可能である:(i)各CMAFフラグメント/DASHセグメントは、唯1つのメタデータ・サンプルのみを含み(又は1つのメタデータ・サンプルに制限され)、メタデータ・サンプルの継続時間はフラグメント/セグメントの継続時間であること;(ii)CMAFフラグメント/DASHセグメントの最先のプレゼンテーション時間は、メタデータ・サンプルのプレゼンテーション時間であること;(iii)フラグメント化されていないトラックにおいて、バージョン0の各イベント・メッセージ・ボックスは、各イベント・メッセージ・ボックスのプレゼンテーション時間オフセット・パラメータ(例えば、presentation_time_delta)のアンカーとして、それぞれのイベント・メッセージ・ボックスを含むメタデータ・サンプルのプレゼンテーション時間を使用することが可能であること;(iv)フラグメント化されていないトラックにおいて、バージョン1の各イベント・メッセージ・ボックスは、各々イベント・メッセージ・ボックスのプレゼンテーション時間パラメータ(例えば、presentation_time)のアンカーとして、トラックの最先のプレゼンテーション時間を使用することが可能であること;(v)全てのケース(例えば、DASH又はCMAF、フラグメント化された、又はフラグメント化されていないケース)において、(例えば、バージョン0又はバージョン1の)各イベント・メッセージ・ボックスのタイムスケールは、トラックのタイムスケールに等しいとすることが可能であること;及び(vi)イベント・メッセージ・ボックスの終了時間(例えば、イベント・スタート時間(プラス)イベント継続時間)は、たとえイベント継続時間の値が、イベント・メッセージ・ボックスの終了時間はトラックの終了時間を超えて長引くことを通知していたとしても、トラックの終了(又は最後の)プレゼンテーション時間を超えて長引かないこと。
【0076】
制約(i)及び(ii)は、バージョン0のイベント・メッセージ・ボックスのタイミングを変更することなく、トラックのフラグメンテーション/デフラグメンテーションを可能にし、なぜならイベント・メッセージ・ボックスを搬送するメタデータ・サンプルのプレゼンテーション時間は、任意のフラグメンテーション/デフラグメンテーション・プロセスの間に変わらないからである。
【0077】
制約(iii)と(iv)は、フラグメント化されていないトラックに対する制約であり、フラグメント化された/セグメント化された単一サンプル・スパース・メタデータ・トラックとフラグメント化されていないトラックとの間の関係を維持することが可能である。
【0078】
制約(v)は、イベントのタイミングがトラック・サンプル・タイミングに整列することを保証することが可能であり、その結果、ファイル・フォーマット・パーサー(205)とメディア・デコーダ(209)が整数演算を使用する場合に、分数ドリフトが存在しないようになる。
【0079】
制約(vi)は、イベント継続時間を最大トラック継続時間に制限することが可能であり、従って、ファイル・フォーマット・パーサー(205)におけるオペレーションを単純化することが可能であり、なぜなら特に、アプリケーション・イベントが、必ずしもトラック継続時間を有しないアプリケーション(212)に渡されなければならないからである。従って、各イベント・メッセージ・ボックスの継続時間が、イベント・メッセージ・ボックスがトラックの前又は終わりで終了するように設定されている場合、ファイル・フォーマット・パーサー(205)は、イベントをアプリケーション(212)に渡す前にイベント継続時間がトラック継続時間を超える場合に、イベント継続時間を打ち切る必要はない。
【0080】
単一サンプル・スパース・タイムド・メタデータ・トラックの幾つかの利点は、以下のように列挙することが可能である。各フラグメント/セグメントは1つの(同期)メタデータ・サンプルしか含まないので、単一サンプル・スパース・タイムド・メタデータ・トラックの構造はシンプルである。各メタデータ・サンプルは、様々なスキーム/サブ・スキームを使用する1つ以上のイベント・メッセージ・ボックスを含むことが可能である。フラグメンテーション/デフラグメンテーション・プロセスが単一サンプル・フラグメント/セグメントの制約を保持している場合、フラグメント化されたトラックは、フラグメンテーション/デフラグメンテーション・プロセスをパスすることが可能である。フラグメント化されていないトラックにおけるイベント・メッセージ・ボックスのアンカーの制約は、シンプルであり、(状態を)維持することが容易である。イベント・メッセージ・ボックスのプロパティは、メディア・トラックから個々のトラックを使用して配信されるように保つことができるので、配信は何らかの特定のメディア・トラックに依存しない。
【0081】
開示の態様によれば、各セグメント/フラグメントが唯1つのメタデータ・サンプルを含むスパース・タイムド・メタデータ・トラックを生成することが可能である。メタデータ・サンプルは、1つ以上のイベント・メッセージ・ボックスを含むことが可能である。各イベント・メッセージ・ボックスは、メッセージ・データ・ペイロードを搬送する関連するサブ・スキーム識別子に対して異なるスキーム識別子及び異なる値を含むことが可能である。イベント・メッセージ・ボックスのタイムスケールは、トラックのタイムスケールに等しい。メタデータ・サンプルのプレゼンテーション時間と継続時間は、メタデータ・サンプルを含むセグメント/フラグメントの最先のプレゼンテーション時間と継続時間に等しい。デフラグメンテーションの場合、イベント・メッセージ・ボックスのプレゼンテーション時間(例えば、presentation_time)及び/又はプレゼンテーション時間オフセット(presentation_time_delta)のアンカーは、イベント・メッセージ・ボックスを含むメタデータ・サンプルのプレゼンテーション時間である。
【0082】
V.フローチャート
【0083】
図5は、本開示の実施形態によるプロセス(500)を要約したフローチャートを示す。様々な実施形態において、プロセス(500)は、DASHクライアント(102)における処理回路のような処理回路によって実行される。幾つかの実施形態では、プロセス(500)は、ソフトウェア命令で実現され、従って処理回路がソフトウェア命令を実行すると、処理回路はプロセス(500)を実行する。プロセス(500)は(S510)から始まり、プロセス(500)は、複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックを受信する。複数のセグメントの各々は、複数のメタデータ・サンプルのうちの1つのみを含むことが可能である。複数のメタデータ・サンプルの各々は、1つ以上のイベント・メッセージ・ボックスを含む。次いで、プロセス(500)はステップ(S520)に進む。
【0084】
ステップ(S520)において、プロセス(500)は、各イベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定する。次いで、プロセス(500)はステップ(S530)に進む。
【0085】
ステップ(S530)において、プロセス(500)は、各イベント・メッセージ・ボックスのスタート時間とアクティブ継続時間に基づいて、各イベント・メッセージ・ボックスに含まれるイベント情報を処理する。次いで、プロセス(500)は終了する。
【0086】
実施形態において、各イベント・メッセージ・ボックスのタイムスケールは、タイムド・メタデータ・トラックのタイムスケールに等しい。
【0087】
実施形態において、複数のメタデータ・サンプルの各々のプレゼンテーション時間及び継続時間は、各々のメタデータ・サンプルを含む複数のセグメントのうちの1つの最先のプレゼンテーション時間及び継続時間に等しく、フラグメンテーション及びデフラグメンテーション・プロセスは、タイムド・メタデータ・トラックにおいて実行される。
【0088】
実施形態において、複数のメタデータ・サンプルの各々のプレゼンテーション時間は、各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスのプレゼンテーション時間値及びプレゼンテーション時間デルタ値のうちの1つに対するアンカーである。
【0089】
実施形態において、各々のイベント・メッセージ・ボックスのスタート時間とアクティブ継続時間の合計は、タイムド・メタデータ・トラックの終了プレゼンテーション時間によって制限される。
【0090】
実施形態において、複数のセグメントの各々は、CMAFフラグメント及びDASHセグメントのうちの1つである。
【0091】
実施形態において、複数のメタデータ・サンプルのうちの1つに含まれる各イベント・メッセージ・ボックスは、異なるスキーム識別子を含む。
【0092】
実施形態において、フラグメンテーション及びデフラグメンテーション・プロセスは、ISO/IEC ISOBMFFフラグメンテーション及びデフラグメンテーション・プロセスに基づいている。
【0093】
VI.コンピュータ・システム
【0094】
上述した技術は、コンピュータ読み取り可能な命令を用いるコンピュータ・ソフトウェアであって、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されるものとして実装することが可能である。例えば、
図6は、開示される対象事項の特定の実施形態を実施するのに適したコンピュータ・システム(900)を示す。
【0095】
コンピュータ・ソフトウェアは、直接的に又は解釈、マイクロコード実行等を介して、1つ以上のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)等によって実行されることが可能な命令を含むコードを生成するために、アセンブリ、コンパイル、リンク等のメカニズムの影響を受けることが可能な、任意の適切なマシン・コード又はコンピュータ言語を使用してコーディングされることが可能である。
【0096】
命令は、例えば、パーソナル・コンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーミング・デバイス、モノのインターネット(IoT)デバイス等を含む、種々の種類のコンピュータ又はその構成要素において実行されることが可能である。
【0097】
コンピュータ・システム(600)に関する
図6に示される構成要素は、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータ・ソフトウェアの用途又は機能性の範囲に関する如何なる限定も示唆するようには意図されていない。また、構成要素の構成は、コンピュータ・システム(600)の例示的な実施形態に示される構成要素の任意の1つ又は組み合わせに関する何らかの従属性又は要件を有するものとして解釈されるべきではない
【0098】
コンピュータ・システム(600)は、特定のヒューマン・インターフェース入力デバイスを含んでもよい。このようなヒューマン・インターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データ・グローブの動き)、オーディオ入力(例えば、声、拍手)、視覚入力(例えば、ジェスチャ)、嗅覚入力(図示せず)を介して、1人以上の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース・デバイスは、オーディオ(例えば、会話、音楽、周囲の音)、画像(例えば、スキャンされた画像、静止画像カメラから得られる写真画像)、ビデオ(例えば、2次元ビデオ、立体ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接的に関係しない特定のメディアを捕捉するために使用することも可能である。
【0099】
入力ヒューマン・インターフェース・デバイスは、キーボード(601)、マウス(602)、トラックパッド(603)、タッチ・スクリーン(610)、データ・グローブ(図示せず)、ジョイスティック(605)、マイクロホン(606)、スキャナ(607)、カメラ(608)のうちの1つ以上を(各々1つしか描いていないが)含んでもよい。
【0100】
コンピュータ・システム(600)は、特定のヒューマン・インターフェース出力デバイスを含むことも可能である。このようなヒューマン・インターフェース出力デバイスは、例えば、触覚出力、音、光、及び匂い/味を通じて、1人以上の人間ユーザーの感覚を刺激することができる。このようなヒューマン・インターフェース出力デバイスは、触覚出力デバイス(例えば、タッチ・スクリーン(610)、データ・グローブ(図示せず)、ジョイスティック(605)による触覚フィードバックであるが、入力デバイスとして機能しない触覚フィードバック・デバイスであるとすることも可能である)、オーディオ出力デバイス(例えば、スピーカー(609)、ヘッドフォン(図示せず))、視覚的出力デバイス(CRTスクリーン、LCDスクリーン、プラズマ・スクリーン、OLEDスクリーンを含むスクリーン(610)であって、各々はタッチ・スクリーン入力機能を備えているか又は備えておらず、各々は触覚フィードバック能力を備えているか又は備えておらず、それらの内の一部は、ステレオ投影出力のような手段を介して、2次元視覚出力又は3次元以上の次元の出力を出力することが可能であるもの;仮想現実眼鏡(図示せず)、ホログラフィック・ディスプレイ及びスモーク・タンク(図示せず))、及びプリンタ(図示せず)を含むことができる。これらの視覚的な出力デバイス(スクリーン(610)など)は、グラフィックス・アダプタ(650)を介してシステム・バス(648)に接続することが可能である。
【0101】
コンピュータ・システム(600)は、CD/DVD又は類似の媒体(621)を有するCD/DVD ROM/RW(620)を含む光媒体、サム・ドライブ(922)、取り外し可能なハード・ドライブ又はソリッド・ステート・ドライブ(623)、テープ及びフロッピー・ディスク(図示せず)のようなレガシー磁気媒体、セキュリティ・ドングル(図示せず)のような特殊化されたROM/ASIC/PLDベースのデバイスなどのような、人間がアクセスできる記憶装置及びそれらの関連媒体を含むことも可能である。
【0102】
当業者は、本開示の対象事項に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、又は他の一時的な信号を包含しないことも理解するはずである。
【0103】
コンピュータ・システム(600)は、1つ以上の通信ネットワーク(655)に対するネットワーク・インターフェース(654)を含むことも可能である。1つ以上の通信ネットワーク(655)は、例えば、無線、有線、光であるとすることが可能である。1つ以上の通信ネットワーク(655)は、更に、ローカル、ワイド・エリア、メトロポリタン、車両及びインダストリアル、リアルタイム、遅延耐性などであるとすることが可能である。1つ以上の通信ネットワーク(655)の例は、イーサーネット、無線LAN、セルラー・ネットワーク(GSM、3G、4G、5G、LTEなどを含む)、TV有線又は無線ワイド・エリア・デジタル・ネットワーク(ケーブルTV、衛星TV、地上放送TVを含む)、CANBusを含む車両及びインダストリアル等を含む。特定のネットワークは、一般に、特定の汎用データ・ポート又は周辺バス(649)に接続される外部ネットワーク・インターフェース・アダプタ(例えば、コンピュータ・システム(600)のUSBポート)を必要とし;他のネットワークは、一般に、後述するようなシステム・バスへの接続によって、コンピュータ・システム(600)のコアに組み込まれる(例えば、イーサーネット・インターフェースはPCコンピュータ・システムに組み込まれ、セルラー・ネットワーク・インターフェースはスマートフォン・コンピュータ・システムに組み込まれる)。これらの任意のネットワークを使用して、コンピュータ・システム(600)は、他のエンティティと通信することができる。このような通信は、片-指向性、受信専用(例えば、放送TV)、片-指向性送信専用(例えば、特定のCANbusデバイスに対するCANbus)、又は、双-指向性、例えばローカル又はワイド・エリア・デジタル・ネットワークを使用する他のコンピュータ・システムに対するものであるとすることが可能である。特定のプロトコル及びプロトコル・スタックは、上述のように、それらのネットワーク及びネットワーク・インターフェースの各々で使用されることが可能である。
【0104】
前述のヒューマン・インターフェース・デバイス、人間がアクセス可能な記憶装置、及びネットワーク・インターフェースは、コンピュータ・システム(600)のコア(640)に取り付けることが可能である。
【0105】
コア(640)は、1つ以上の中央処理ユニット(CPU)(641)、グラフィックス処理ユニット(GPU)(642)、フィールド・プログラマブル・ゲート・エリア(FPGA)(943)の形式における特殊なプログラマブル処理ユニット、特定のタスクのためのハードウェア・アクセラレータ(644)などを含むことが可能である。これらのデバイスは、リード・オンリ・メモリ(ROM)(645)、ランダム・アクセス・メモリ(RAM)(646)、内部大容量ストレージ、例えば内部のユーザー・アクセス不能なハード・ドライブ、SSD、及び類似のもの(647)と共に、システム・バス(648)を介して接続されてもよい。幾つかのコンピュータ・システムでは、システム・バス(648)は、追加のCPU、GPUなどによる拡張を可能にするために、1つ以上の物理プラグの形式でアクセス可能であるとすることが可能である。周辺デバイスは、コアのシステム・バス(648)に直接的に或いは周辺バス(949)を介して取り付けることが可能である。周辺バスのアーキテクチャは、PCI、USB等を含む。
【0106】
CPU(641)、GPU(642)、FPGA(643)、及びアクセラレータ(644)は、組み合わされて、上述のコンピュータ・コードを構築することが可能な特定の命令を実行することが可能である。そのコンピュータ・コードは、ROM(645)又はRAM(646)に記憶することが可能である。一時的なデータはRAM(646)に記憶することも可能である一方、永続的なデータは、例えば内部大容量ストレージ(647)に記憶することが可能である。1つ以上のCPU(641)、GPU(642)、大容量ストレージ(647)、ROM(645)、RAM(646)などと密接に関連付けることが可能なキャッシュ・メモリを使用することによって、任意のメモリ・デバイスに対する高速な記憶及び検索を可能にすることができる。
【0107】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実装動作を実行するためのコンピュータ・コードをそこに含むことが可能である。媒体及びコンピュータ・コードは、本開示の目的のために特別に設計及び構築されたものであるとすることが可能であり、或いはそれらは、コンピュータ・ソフトウェア分野の当業者に周知で利用可能な種類のものであるとすることが可能である。
【0108】
限定ではなく一例として、アーキテクチャ(600)、具体的にはコア(640)を有するコンピュータ・システムは、1つ以上の有形のコンピュータ読み取り可能な媒体に具現化されたソフトウェアを実行するプロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)に由来する機能を提供することができる。そのようなコンピュータ読み取り可能な媒体は、コア内部大容量ストレージ(647)又はROM(645)のような非一時的な性質のコア(640)の特定のストレージと同様に、上述したようなユーザー・アクセス可能な大容量ストレージに関連する媒体であるとすることが可能である。本開示の様々な実施形態を実装するソフトウェアは、そのようなデバイスに記憶され、コア(640)によって実行されることが可能である。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリ・デバイス又はチップを含むことが可能である。ソフトウェアは、コア(640)、特にその中のプロセッサ(CPU、GPU、FPGAなどを含む)が、RAM(646)に記憶されたデータ構造を定め、そのようなデータ構造をソフトウェアによって定められたプロセスに従って修正することを含む、本願で説明される特定のプロセス又は特定のプロセスの特定の部分を実行することを引き起こすことが可能である。更に又は代替として、コンピュータ・システムは、回路(例えば、アクセラレータ(644))内に配線されたロジック又はその他の方法で組み込まれたものに由来する機能を提供することが可能であり、回路は、本願で説明される特定のプロセス又は特定のプロセスの特定の部分を実行するために、ソフトウェアの代わりに又はソフトウェアと共に動作することが可能である。ソフトウェアに対する言及は、ロジックを含むことが可能であり、必要に応じてその逆も可能である。コンピュータ読み取り可能な媒体に対する参照は、実行用のソフトウェアを記憶する回路(例えば、集積回路(IC))、実行用のロジックを具現化する回路、又は適切な場合にはそれら両方を含むことが可能である。本開示は、ハードウェア及びソフトウェアの任意の適切な組み合わせを包含する。
【0109】
本開示は、幾つかの例示的な非限定的な実施例を説明しているが、本開示の範囲内に該当する変更、置換、及び種々の代替的な均等物が存在する。従って、本願で明示的には図示も説明もされていないが、本開示の原理を具現化し、従って本願の精神及び範囲内にある多くのシステム及び方法を、当業者は案出することが可能であろうということが、認められるであろう
【0110】
(付記1)
メディア・データを受信する方法であって、
複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックを受信するステップであって、前記複数のセグメントの各々は前記複数のメタデータ・サンプルのうちの唯1つを含み、前記複数のメタデータ・サンプルの各々は1つ以上のイベント・メッセージ・ボックスを含む、ステップと、
各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定するステップと、
前記各々のイベント・メッセージ・ボックスの前記スタート時間及び前記アクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報を処理するステップと
を含み、前記タイムド・メタデータ・トラックに対してフラグメンテーション及びデフラグメンテーション・プロセスが実行される、方法。
(付記2)
各々のイベント・メッセージ・ボックスのタイムスケールは、前記タイムド・メタデータ・トラックのタイムスケールに等しい、付記1に記載の方法。
(付記3)
前記複数のメタデータ・サンプルの各々のプレゼンテーション時間及び継続時間は、前記各々のメタデータ・サンプルを含む前記複数のセグメントの1つの最先のプレゼンテーション時間及び継続時間に等しい、付記1に記載の方法。
(付記4)
前記複数のメタデータ・サンプルの各々の前記プレゼンテーション時間は、前記各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスのプレゼンテーション時間値及びプレゼンテーション時間デルタ値のうちの1つに対するアンカーである、付記3に記載の方法。
(付記5)
各々のイベント・メッセージ・ボックスの前記スタート時間と前記アクティブ継続時間の合計は、前記タイムド・メタデータ・トラックの終了プレゼンテーション時間により制限される、付記1に記載の方法。
(付記6)
前記複数のセグメントの各々は、共通メディア・アプリケーション・フォーマット(CMAF)フラグメント及びハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)セグメントのうちの1つである、付記1に記載の方法。
(付記7)
前記複数のメタデータ・サンプルの1つに含まれる各々のイベント・メッセージ・ボックスは、異なるスキーム識別子を含む、付記1に記載の方法。
(付記8)
前記フラグメンテーション及びデフラグメンテーション・プロセスは、国際標準化機構(ISO)/国際電気標準会議(IEC)ベースのメディア・ファイル・フォーマット(ISOBMFF)のフラグメンテーション及びデフラグメンテーション・プロセスに基づいている、付記1に記載の方法。
(付記9)
メディア・データを受信する装置であって、前記装置は処理回路を含み、
前記処理回路は、複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックを受信するように構成され、前記複数のセグメントの各々は前記複数のメタデータ・サンプルのうちの唯1つを含み、前記複数のメタデータ・サンプルの各々は1つ以上のイベント・メッセージ・ボックスを含み、
前記処理回路は、各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定するように構成され、
前記処理回路は、前記各々のイベント・メッセージ・ボックスの前記スタート時間及び前記アクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報を処理するように構成され、
前記タイムド・メタデータ・トラックに対してフラグメンテーション及びデフラグメンテーション・プロセスが実行される、装置。
(付記10)
各々のイベント・メッセージ・ボックスのタイムスケールは、前記タイムド・メタデータ・トラックのタイムスケールに等しい、付記9に記載の装置。
(付記11)
前記複数のメタデータ・サンプルの各々のプレゼンテーション時間及び継続時間は、前記各々のメタデータ・サンプルを含む前記複数のセグメントの1つの最先のプレゼンテーション時間及び継続時間に等しい、付記9に記載の装置。
(付記12)
前記複数のメタデータ・サンプルの各々の前記プレゼンテーション時間は、前記各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスのプレゼンテーション時間値及びプレゼンテーション時間デルタ値のうちの1つに対するアンカーである、付記11に記載の装置。
(付記13)
各々のイベント・メッセージ・ボックスの前記スタート時間と前記アクティブ継続時間の合計は、前記タイムド・メタデータ・トラックの終了プレゼンテーション時間により制限される、付記9に記載の装置。
(付記14)
前記複数のセグメントの各々は、共通メディア・アプリケーション・フォーマット(CMAF)フラグメント及びハイパーテキスト・トランスファ・プロトコルによる動的適応ストリーミング(DASH)セグメントのうちの1つである、付記9に記載の装置。
(付記15)
前記複数のメタデータ・サンプルの1つに含まれる各々のイベント・メッセージ・ボックスは、異なるスキーム識別子を含む、付記9に記載の装置。
(付記16)
前記フラグメンテーション及びデフラグメンテーション・プロセスは、国際標準化機構(ISO)/国際電気標準会議(IEC)ベースのメディア・ファイル・フォーマット(ISOBMFF)のフラグメンテーション及びデフラグメンテーション・プロセスに基づいている、付記9に記載の装置。
(付記17)
命令を記憶する非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、メディア・データを受信するためにコンピュータにより実行されると、前記コンピュータに、
複数のメタデータ・サンプルを含む複数のセグメントのタイムド・メタデータ・トラックを受信するステップであって、前記複数のセグメントの各々は前記複数のメタデータ・サンプルのうちの唯1つを含み、前記複数のメタデータ・サンプルの各々は1つ以上のイベント・メッセージ・ボックスを含む、ステップと、
各々のイベント・メッセージ・ボックスのスタート時間及びアクティブ継続時間を決定するステップと、
前記各々のイベント・メッセージ・ボックスの前記スタート時間及び前記アクティブ継続時間に基づいて、各々のイベント・メッセージ・ボックスに含まれるイベント情報を処理するステップと
を行わせ、前記タイムド・メタデータ・トラックに対してフラグメンテーション及びデフラグメンテーション・プロセスが実行される、非一時的なコンピュータ読み取り可能な記憶媒体。
(付記18)
各々のイベント・メッセージ・ボックスのタイムスケールは、前記タイムド・メタデータ・トラックのタイムスケールに等しい、付記17に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
(付記19)
前記複数のメタデータ・サンプルの各々のプレゼンテーション時間及び継続時間は、前記各々のメタデータ・サンプルを含む前記複数のセグメントの1つの最先のプレゼンテーション時間及び継続時間に等しい、付記17に記載の非一時的なコンピュータ読み取り可能な記憶媒体。
(付記20)
前記複数のメタデータ・サンプルの各々の前記プレゼンテーション時間は、前記各々のメタデータ・サンプルに含まれるイベント・メッセージ・ボックスのプレゼンテーション時間値及びプレゼンテーション時間デルタ値のうちの1つに対するアンカーである、付記19に記載の非一時的なコンピュータ読み取り可能な記憶媒体。