(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-15
(54)【発明の名称】CMAFおよびDASHマルチメディアストリーミングのためのADDRESSABLE RESOURCE INDEXイベント
(51)【国際特許分類】
H04N 21/236 20110101AFI20241108BHJP
H04N 21/84 20110101ALI20241108BHJP
H04L 67/02 20220101ALI20241108BHJP
【FI】
H04N21/236
H04N21/84
H04L67/02
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024531145
(86)(22)【出願日】2023-04-14
(85)【翻訳文提出日】2024-05-23
(86)【国際出願番号】 US2023065785
(87)【国際公開番号】W WO2023205588
(87)【国際公開日】2023-10-26
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-07-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-07-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2023-03-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】イーラジ・ソダガー
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164MB13P
5C164MB44S
5C164SB08S
5C164SB11P
5C164SC05S
5C164TA06S
(57)【要約】
メディアストリームを処理するための方法、装置、および可読記憶媒体。メディアストリームは、DASH規格に従っても、CMAF規格に従ってもよい。本方法は、5Gメディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理することを含むことができ、ARIイベントは、コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、またはMPD(Media Presentation description)イベント、のうちの少なくとも1つを含み、ARIイベントは、コンテンツセット内の1つまたは複数のメディアスライスの構成情報を搬送する。
【特許請求の範囲】
【請求項1】
5Gメディアストリームを処理する方法であって、前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over HTTP)規格、またはCMAF(Common Media Application Format)に従い、前記方法が、
前記5Gメディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理するステップであって、
前記ARIイベントが、
コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、前記コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、または、
MPD(Media Presentation description)イベント
のうちの少なくとも1つを含み、
前記ARIイベントが、前記コンテンツセット内の前記1つまたは複数のメディアスライスの構成情報を搬送する、ステップ
を含む、方法。
【請求項2】
前記inbandイベントおよび前記MPDイベントが各々、スキーム識別子によって識別されるか、または前記スキーム識別子と関連付けられ、前記スキーム識別子が、スキーム識別子URI(Uniform Resource Identifier)を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のメディアスライスの前記構成情報が、
前記第1のメディアスライスの構成情報、または
前記第1のメディアスライスの次の第2のメディアスライスの構成情報、
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項4】
前記ARIイベントまたは前記MPDイベントのスキーム識別子が、前記構成情報が前記第1のメディアスライスまたは前記第2のメディアスライスに適用されるかを示す、請求項3に記載の方法。
【請求項5】
前記コンテンツセットが、
前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)に従うときのアダプテーションセット、または
前記5Gメディアストリームが、CMAF(Common Media Application Format)に従うときのスイッチングセット、
のうちの少なくとも1つを含み、
前記第1のメディアスライスが、
前記アダプテーションセットの第1の表現内のセグメント、または
前記スイッチングセットの第1のトラック内のチャンク、
のうちの少なくとも1つを含む、
請求項1から3のいずれか一項に記載の方法。
【請求項6】
前記1つまたは複数のメディアスライスの前記構成情報が、
前記コンテンツセットを含むコンテナの開始時間に対する前記1つまたは複数のメディアスライスの各々のオフセットであって、前記コンテナが、CMAFプレゼンテーション、またはDASH期間のうちの少なくとも1つを含む、オフセット、
前記1つまたは複数のメディアスライスの前記各々のサイズ、あるいは
前記1つまたは複数のメディアスライスの前記各々の品質、
のうちの少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
前記ARIイベントが、前記スイッチングセット内の少なくとも1つのチャンク、または前記アダプテーションセット内の少なくとも1つのセグメント、に関連するタイミング情報を搬送し、前記タイミング情報が、前記少なくとも1つのチャンクの各々、または前記少なくとも1つのセグメントの各々の開始時間を示す、請求項5に記載の方法。
【請求項8】
前記コンテンツセット内の前記1つまたは複数のメディアスライスの前記構成情報に基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップ、
をさらに含む、請求項5に記載の方法。
【請求項9】
前記コンテンツセット内の前記1つまたは複数のメディアスライスの前記構成情報、および前記第1のメディアスライスから抽出された情報に基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップ、
をさらに含む、請求項5に記載の方法。
【請求項10】
前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックから、1つまたは複数の追加のARIイベントを受信するステップ、をさらに含む、請求項5に記載の方法。
【請求項11】
前記ARIイベントが、メッセージ部分を含み、前記メッセージ部分が、
前記ARIイベントがinbandイベントであるときのmessage_dataフィールド、または
前記ARIイベントがMPDイベントであるときのevent bodyフィールド、
のうちの1つであり、
前記message_dataフィールドおよび前記event bodyフィールドが各々、1つまたは複数のARIサンプルを搬送し、
前記message_dataフィールド内の前記1つまたは複数のARIサンプル、および前記event bodyフィールド内の前記1つまたは複数のARIサンプルが、同じデータ構造を共有する、
請求項5に記載の方法。
【請求項12】
前記ARIイベントに関連付けられたプレゼンテーション時間を取得するために、前記ARIイベントを解析するステップと、
前記プレゼンテーション時間に基づいて、前記ARIイベントが適用するターゲットメディアスライスを判定するステップと、
前記データ構造に基づいて、前記1つまたは複数のARIサンプルを構築するステップと、
前記1つまたは複数のARIサンプルに基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップと
をさらに含む、請求項11に記載の方法。
【請求項13】
5Gメディアストリームを処理するためのデバイスであって、前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over HTTP)規格、またはCMAF(Common Media Application Format)に従い、前記デバイスが、コンピュータ命令を記憶するためのメモリと、前記メモリと通信するプロセッサと、を備え、前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサが、前記デバイスに、
前記5Gメディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理させるように構成され、
前記ARIイベントが、
コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、前記コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、または
MPD(Media Presentation description)イベント、
のうちの少なくとも1つを含み、
前記ARIイベントが、前記コンテンツセット内の前記1つまたは複数のメディアスライスの構成情報を搬送する、デバイス。
【請求項14】
前記inbandイベントおよび前記MPDイベントが各々、スキーム識別子によって識別されるか、または前記スキーム識別子と関連付けられ、前記スキーム識別子が、スキーム識別子URI(Uniform Resource Identifier)を含む、請求項13に記載のデバイス。
【請求項15】
前記コンテンツセットが、
前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)に従うときのアダプテーションセット、または
前記5Gメディアストリームが、CMAF(Common Media Application Format)に従うときのスイッチングセット、
のうちの少なくとも1つを含み、
前記第1のメディアスライスが、
前記アダプテーションセットの第1の表現内のセグメント、または
前記スイッチングセットの第1のトラック内のチャンク、
のうちの少なくとも1つを含む、
請求項13から14のいずれか一項に記載のデバイス。
【請求項16】
前記1つまたは複数のメディアスライスの前記構成情報が、
前記コンテンツセットを含むコンテナの開始時間に対する前記1つまたは複数のメディアスライスの各々のオフセットであって、前記コンテナが、CMAFプレゼンテーション、またはDASH期間のうちの少なくとも1つを含む、オフセット、
前記1つまたは複数のメディアスライスの前記各々のサイズ、あるいは
前記1つまたは複数のメディアスライスの前記各々の品質、
のうちの少なくとも1つを含む、請求項15に記載のデバイス。
【請求項17】
前記プロセッサが前記コンピュータ命令を実行すると、前記プロセッサが、前記デバイスに、
前記コンテンツセット内の前記1つまたは複数のメディアスライスの前記構成情報に基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定させる、
ようにさらに構成される、請求項15に記載のデバイス。
【請求項18】
コンピュータ可読命令を記憶するための非一時的記憶媒体であって、前記コンピュータ可読命令が、DASH(Dynamic Adaptive Streaming over HTTP)規格、またはCMAF(Common Media Application Format)に従う5Gメディアストリームを処理するためのデバイス内のプロセッサによって実行されると、前記プロセッサに、
前記5Gメディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理させ、
前記ARIイベントが、
コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、前記コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、または
MPD(Media Presentation description)イベント、
のうちの少なくとも1つを含み、
前記ARIイベントが、前記コンテンツセット内の前記1つまたは複数のメディアスライスの構成情報を搬送する、
非一時的記憶媒体。
【請求項19】
前記inbandイベントおよび前記MPDイベントが各々、スキーム識別子によって識別されるか、または前記スキーム識別子と関連付けられ、前記スキーム識別子が、スキーム識別子URI(Uniform Resource Identifier)を含む、請求項18に記載の非一時的記憶媒体。
【請求項20】
前記コンテンツセットが、
前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)に従うときのアダプテーションセット、または
前記5Gメディアストリームが、CMAF(Common Media Application Format)に従うときのスイッチングセット、
のうちの少なくとも1つを含み、
前記第1のメディアスライスが、
前記アダプテーションセットの第1の表現内のセグメント、または
前記スイッチングセットの第1のトラック内のチャンク、
のうちの少なくとも1つを含む、
請求項18から19のいずれか一項に記載の非一時的記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2023年3月27日に出願された米国非仮出願第18/190,713号に基づき、優先権の利益を主張し、これは、2022年7月12日に出願された米国仮出願第63/388,574号、2022年7月12日に出願された米国仮出願第63/388,568号、および2022年4月19日に出願された米国仮特許出願第63/332,585号に基づき、優先権の利益を主張し、これらの各々は、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は概して、Dynamic Adaptive Streaming over Hypertext transfer protocol(DASH)と、Common Media Application Format(CMAF)と、を含むメディアストリーミング技術に関する。より具体的には、本開示の技術は、DASH/CMAFイベントを使用してARI(Addressable Resource Index)情報を配信する方法および装置を含む。
【背景技術】
【0003】
本明細書で提供される背景技術の説明は、本開示の文脈を一般的に提示することを目的としている。本発明者らの研究は、その研究がこの背景技術の項に記載されている限りにおいて、またそれ以外の本出願の出願時に先行技術として認められない可能性のある説明の態様と共に、本開示に対する先行技術としては明示的にも暗示的にも認められない。
【0004】
MPEG(Moving picture expert group)DASH(dynamic adaptive streaming over hypertext transfer protocol)は、IPネットワークを介してマルチメディアコンテンツをストリーミングするための規格を提供する。DASH規格において、MPD(media presentation description)は、DASHクライアントがDASHサーバからメディアセグメントをダウンロードすることによってメディアコンテンツを適応的にストリーミングするための情報を提供する。DASH規格は、マルチレートのコンテンツのストリーミングを可能にする。DASH規格の一態様は、MPDイベントおよびinbandイベントの搬送と、当該イベントの当該取扱いに用いられるクライアント処理モデルと、を含む。
【0005】
CMAF(Common Media Application Format)は、HTTP(Hypertext transfer protocol)ベースのメディアの様々な形式をパッケージ化して配信するために用いられる規格である。当該規格では、例えば、HLS(HTTP Live Streaming)やDASHプロトコルと協働してデータを画一化されたトランスポートコンテナファイルに入れてパッケージ化することによって再生デバイスに対するメディアの配信を簡素化する。また、当該規格では、チャンク化を用いた符号化とチャンク化を用いたトランスファエンコーディングとを用いてレイテンシの短縮も行う。これにより、ストレージの必要量が削減される結果、コストが削減される。
【発明の概要】
【課題を解決するための手段】
【0006】
本開示の態様は、メディアストリーム処理のための、より具体的には、DASH/CMAFイベントを使用してARI(Addressable Resource Index)情報を配信するための方法および装置を提供する。いくつかの例示的な実装形態では、メディアストリームを処理する方法が開示されている。本方法は、メディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理すること、を含むことができ、ARIイベントは、コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、またはMPD(Media Presentation description)イベント、のうちの少なくとも1つを備え、ARIイベントは、コンテンツセット内の1つまたは複数のメディアスライスの構成情報を搬送する。
【0007】
本開示の態様はまた、上記の方法実装形態のいずれかを実行するように構成された回路を含むメディアストリーム処理デバイスまたは装置も提供する。
【0008】
本開示の態様では、ビデオのデコーディングおよび/またはエンコーディングのためにコンピュータによって実行されるとき、メディアストリーム処理のための方法を実施することをコンピュータに行わせる指示を記憶する非一時的コンピュータ可読媒体も提供する。
【0009】
開示した主題のさらなる特徴、性質および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【図面の簡単な説明】
【0010】
【
図1】本開示の一実施形態によるシステムを示す図である。
【
図2】本開示の一実施形態によるDASH(Dynamic Adaptive Streaming over HTTP)システムを示す図である。
【
図3】本開示の一実施形態によるDASHクライアントアーキテクチャを示す図である。
【
図4】メディアセグメントまたはチャンクと共に搬送される例示的なinband ARIイベントを示す図である。
【
図5】ARIイベントを後処理するためのフローチャー図である。
【
図6】本開示の例示的な実施形態による方法のフローチャート図である。
【
図7】本開示の例示的な実施形態によるコンピュータシステムの概略図である。
【発明を実施するための形態】
【0011】
DASH(Dynamic Adaptive Streaming Over Hypertext Transfer Protocol)およびMPD(Media Presentation Description)
メディアストリーミングのための1つの一般的なフォーマットは、ISO/IEC 23009-1で定義されているように、DASH(Dynamic adaptive streaming over hypertext transfer protocol)を含む。DASHは、ウェブサーバ、コンテンツ配信ネットワーク(CDN)、様々なプロキシおよびキャッシュなどのハイパーテキスト転送プロトコル(HTTP)インフラストラクチャを使用してメディアコンテンツのストリーミングを可能にする適応ビットレートストリーミング技術である。DASHは、DASHサーバからDASHクライアントへのオンデマンドストリーミングとライブストリーミングとの両方をサポートし、DASHクライアントがストリーミングセッションを制御することを可能にするので、DASHサーバは、大規模展開におけるストリーム適合化管理の追加負荷に対処する必要がない。DASHはまた、DASHクライアントが様々なDASHサーバからのストリーミングを選択することを可能にし、したがって、DASHクライアントの利益のためにネットワークのさらなる負荷分散を達成する。DASHは、例えば、ネットワーク状況に適応するようにビットレートを変えることによって、異なるメディアトラック間の動的切替えを提供する。
【0012】
DASHにおいて、MPD(media presentation description)ファイルは、DASHクライアントがDASHサーバからメディアセグメントをダウンロードすることによってメディアコンテンツを適応的にストリーミングするための情報を提供する。MPDは、拡張マークアップ言語(XML)文書の形態であってもよい。MPDファイルは、セッション開始遅延を低減するために断片化され、部分的に配信することができる。MPDファイルは、ストリーミングセッション中に更新することもできる。いくつかの例では、MPDファイルは、コンテンツのアクセシビリティ機能、評価、およびカメラビューの表現をサポートする。DASHはまた、多視点でスケーラブルな符号化コンテンツの配信をサポートする。
【0013】
MPDファイルは、1つまたは複数の期間のシーケンスを含むことができる。1つまたは複数の期間の各々を、例えば、MPDファイル内の期間要素により定義することができる。MPDファイルは、MPDのavailableStartTime属性と、期間毎のstart属性と、を含むことができる。(例えば、ライブサービスに使用される)動的タイプのメディアプレゼンテーションの場合、期間のstart属性とMPD属性availableStartTimeとメディアセグメントの時間幅(duration)との合計は、協定世界時(UTC)フォーマットにおける期間の、特に、対応する期間における各表現の第1のメディアセグメントの、利用可能時間を示すことができる。静的タイプ(例えば、オンデマンドサービスに使用される)でのメディアプレゼンテーションの場合、第1の期間のstart属性は、0とすることができる。任意の他の期間について、start属性は、第1の期間の開始時間に対する対応する期間の開始時間の間の時間オフセットを指定することができる。各期間は、次の期間の開始まで、または最後の期間の場合にはメディアプレゼンテーションの終了まで延長することができる。期間開始時間は正確であり得、すべての前の期間のメディアの再生から生じる実際のタイミングを反映することができる。例示的な実装形態では、MPDは、次の期間が前の期間、場合によっては直後の期間または後の期間(例えば、広告期間が挿入された後)におけるコンテンツの継続であるように提供される。
【0014】
各期間は、1つまたは複数のアダプテーションセットを含むことができ、アダプテーションセットの各々は、同じメディアコンテンツの1つまたは複数の表現を含むことができる。表現は、オーディオまたはビデオデータのいくつかの代替的なエンコーディングバージョンのうちの1つであり得る。表現は、エンコーディングタイプによって、例えば、ビデオデータおよびビットレートのビットレート、解決、および/もしくはコーデック、ならびに/またはオーディオデータのコーデックによって異なり得る。表現という用語は、マルチメディアコンテンツの特定の期間に対応し、特定の方法でエンコーディングされた、エンコーディングされたオーディオまたはビデオデータのセクションを指すために使用することができる。
【0015】
MPDファイルのグループ属性が示すグループには、特定の期間のアダプテーションセットを割り当てることができる。同じグループ内のアダプテーションセットは、一般に互いに対する代替と見なされる。例えば、デコーディングのために任意のアダプテーションセットを選択して、対応する期間のマルチメディアコンテンツのビデオデータを表示することができるように、特定の期間のビデオデータの各アダプテーションセットを同じグループに割り当てることができる。いくつかの例では、1つの期間内のメディアコンテンツを、存在する場合にはグループ0からの1つのアダプテーションセット、または非ゼロの各グループからの最大1つのアダプテーションセットの組合せのいずれかによって表すことができる。期間の表現毎のタイミングデータは、期間の開始時間に対して表現することができる。
【0016】
表現は、1つまたは複数のセグメントを含むことができる。各表現は初期化セグメントを含むことができ、または表現の各セグメントは自己初期化することができる。存在する場合、初期化セグメントは、表現にアクセスするための初期化情報を含むことができる。場合によっては、初期化セグメントはメディアデータを含まない。セグメントは、URL(uniform resource locator)、URN(uniform resource name)、またはURI(uniform resource identifier)などの識別子によって一意に参照することができる。
【0017】
例示的な実装形態では、URLは、例えば、「http」または「https」の固定スキームで、IETF RFC 3986に従って<absolute-URI>として定義することができ、範囲属性がURLと共に提供される場合、おそらくバイト範囲によって制限される。バイト範囲は、例えば、IETF RFC 2616に定義されているようなバイト範囲仕様(byte-range-spec)で表すことができる。これは、連続したバイト範囲を識別する単一の表現に制限することができる。一実施形態では、セグメントは、例えばIETF RFC 2397で定義されているように、データURLを有するMPDに含めることができる。
【0018】
MPDファイルは、セグメント毎に識別子を提供することができる。いくつかの例では、MPDファイルは、URL、URN、またはURIによってアクセス可能なファイル内のセグメントのデータに対応することができる範囲属性の形式のバイト範囲を提供することもできる。
【0019】
サブ表現は、規則的な表現に埋め込まれ(または包含され)、サブ表現要素(例えば、SubRepresentation)によって記述することができる。サブ表現要素は、表現に埋め込まれた1つまたはいくつかのメディアコンテンツ構成要素のプロパティを記述することができる。例えば、サブ表現要素は、埋め込みオーディオコンポーネント(例えば、コーデック、サンプリングレートなど)、埋め込みサブタイトル(例えば、コーデック)のプロパティを記述することができ、またはサブ表現要素は、いくつかの埋め込み低品質ビデオ層(例えば、いくつかのより低いフレームレートなど)を記述することができる。サブ表現および表現要素は、いくつかの共通の属性および要素を共有することができる。
【0020】
各表現はまた、1つまたは複数のメディアコンポーネントを含むことができ、各メディアコンポーネントは、オーディオ、ビデオ、または時限テキスト(例えば、クローズドキャプション用)などの1つの個々のメディアタイプのエンコーディングされたバージョンに対応することができる。メディアコンポーネントは、1つの表現内の連続するメディアセグメントの境界にわたって時間的に連続的であり得る。
【0021】
いくつかの例示的実装形態では、DASHクライアントは、DASHサーバからMPDファイルにアクセスしてダウンロードすることができる。すなわち、DASHクライアントは、ライブセッションの開始のために使用されるMPDファイルを取得することができる。MPDファイルに基づいて、および選択された表現毎に、DASHクライアントは、サーバ上で利用可能な最新のセグメントが何であるかを判定すること、次のセグメントおよび場合によっては将来のセグメントのセグメント可用性開始時間を判定すること、セグメント内のどのタイムラインから、セグメントの再生をいつ開始するかを判定すること、ならびに新しいMPDファイルをいつ取得/フェッチするかを判定することを含む、いくつかの決定を行うことができる。サービスが再生されると、クライアントはライブサービスとそれ自体の再生との間のドリフトを追跡し続けることができ、それは検出および補償される必要がある。
【0022】
Common Media Application Format(CMAF)
セグメント化されたメディアのCMAF(Common Media Application Format)は、適応的マルチメディアプレゼンテーションでエンドユーザデバイスにて配信およびデコーディングを行うために、セグメント化されたメディアオブジェクトのエンコーディングおよびパッケージングのための拡張可能な規格である。CMAF仕様により、後述したいくつかの論理メディアオブジェクトが定義される。
【0023】
CMAFトラックは、オーディオ、ビデオおよび字幕を含むエンコーディングされたメディアサンプルを含んでもよい。メディアサンプルは、ISO_BMFF(ISO Base Media File Format)から導出するCMAF指定コンテナに記憶される。メディアサンプルをMPEGコモンエンクリプションによって適宜保護してもよい。トラックは、CMAFヘッダと、1つまたは複数のCMAFフラグメントと、を含んでもよい。
【0024】
異なるビットレートおよび解像度で同じコンテンツを適応的にストリーミングするために、切替えが可能であり、CMAFフラグメントの境界での繋ぎ合せが可能である代替トラックをCMAFスイッチングセットが含んでもよい。アラインドCMAFスイッチングセットとは、別のエンコーディングが用いられた(例えば、異なるコーデックが用いられる)同じエンコーディング元からエンコーディングされ、時間的位置が揃えられた2つ以上のCMAFスイッチングセットである。
【0025】
CMAFセレクションセットとは、代替コンテンツ(例えば、異なる言語)または代替エンコーディング(例えば、異なるコーデック)を含むことができる同じメディアタイプのスイッチングセットのグループである。
【0026】
CMAFプレゼンテーションが、1つまたは複数のプレゼンテーション時間同期セレクションセットを含んでもよい。
【0027】
メディアコンテンツを異なるプラットフォームに配信することができるようにCMAFはアドレサブルオブジェクトをサポートする。CMAFアドレサブルオブジェクトは以下を含んでもよい:
・CMAFヘッダ:ヘッダは、トラックを初期化するための情報を含む情報を含む。
・CMAFセグメント:同じトラックから得られる一連の1つまたは複数の連続するフラグメント。
・CMAFチャンク:チャンクはフラグメントから得られるサンプルの連続する部分集合を含む。
・CMAFトラックファイル:1つのISO_BMFFファイル中の完全なトラック。
【0028】
DASHおよびCMAFイベント
DASHおよびCMAFでは、DASH/CMAFクライアント、およびその関連アプリケーションに追加情報をシグナリングする手段がイベントによって提供される。例示的な実装形態では、イベントが時間指定されるので、イベントには開始時間と時間幅とがある。イベント情報は、メディアプレゼンテーションのコンテンツを記述するメタデータを含むことができる。追加的または代替的に、イベント情報は、広告挿入キューなどのメディアプレゼンテーションの再生中の特定の時間に関連付けられたメディアプレーヤ用の制御メッセージを含むことができる。イベントは、例えば、MPDイベントまたはinbandイベントとして実現されてもよい。それらは、マニフェストファイル(例えば、MPD)の一部である、またはイベントメッセージ(emsg)ボックスのようなISOBMFFベースのメディアファイルに埋め込まれ得る。
【0029】
MPD(media presentation description)イベントは、MPDにおいてシグナリングされ得るイベントである。メディアプレゼンテーション時間に割り当てられた一連のイベントは、期間レベルでMPDに提供することができる。同じタイプのイベントは、期間要素内のイベントストリーム要素(例えば、EventStream)で指定することができる。開始時間が期間境界後であっても、またはイベントの時間幅が期間境界を超えて延びても、イベントは期間の終わりで終了する。イベントストリーム要素は、メッセージ方式識別情報(例えば、@schemeIdUri)と、イベントストリーム要素の任意の値(例えば、@value)と、を含む。さらに、イベントストリームは時限イベントを含むので、期間内の特定のメディアプレゼンテーション時間にイベントを割り当てるためにタイムスケール属性(例えば、@timescale)を提供することができる。時限イベント自体は、イベントストリーム要素に含まれるイベント要素によって記述することができる。
【0030】
inbandイベントストリームは、メディアセグメントの一部としてイベントメッセージを追加することによって表現と多重化することができる。イベントストリームは、選択された表現、1つまたはいくつかの選択されたアダプテーションセットのみ、あるいはすべての表現に存在することができる。例えば、1つの可能な構成は、オーディオアダプテーションセットのみがinbandイベントを含む、またはビデオアダプテーションセットのみがinbandイベントを含む構成である。表現内に存在するinbandイベントストリームを、アダプテーションセットレベルまたは表現レベルなどの様々なレベルのinbandイベントストリーム要素(例えば、InbandEventStream)によって示すことができる。さらに、1つの表現は、各々が別個のinbandイベントストリーム要素によって示される複数のinbandイベントストリームを含むことができる。
【0031】
図1は、本開示の一実施形態によるシステム(100)を示している。システム(100)は、コンテンツサーバ(110)と、情報処理装置(120)と、を含む。コンテンツサーバ(110)は、主コンテンツ(例えば、メインプログラム)、および1つまたは複数の時限メタデータトラックを含む、コンテンツストリームを提供することができる。
【0032】
情報処理装置(120)は、コンテンツサーバ(110)とインターフェースすることができる。例えば、情報処理装置(120)は、コンテンツサーバ(110)から受信したコンテンツを再生することができる。コンテンツの再生は、情報処理装置(120)が受信したマニフェストファイル(例えば、MPD)に基づいて実施することができる(例えば、コンテンツサーバ(110)から)。マニフェストファイルは、1つまたは複数の時限メタデータトラックについてのシグナリングをさらに含むことができる。
【0033】
図2には例示的なDASH/CMAFシステムを示している。DASHシステム(200)はコンテンツサーバ(210)、広告サーバ(220)および情報処理装置(230)を含むことができ、これらはネットワーク(250)に接続されている。DASHシステム(200)はまた、1つまたは複数の補足コンテンツサーバを含むことができる。
【0034】
コンテンツサーバ(210)は、主コンテンツ(例えば、メインプログラム)およびマニフェストファイル(例えば、MPD)を情報処理装置(230)に提供することができる。マニフェストファイルは、例えば、MPDジェネレータ(214)で生成することができる。主コンテンツおよびマニフェストファイルは、他の実施形態では異なるサーバによって提供することができる。
【0035】
情報処理装置(230)は、MPDを受信し、MPDに基づいてコンテンツサーバ(210)のHTTPサーバ(212)から主コンテンツを取得することができる。MPDは、情報処理装置(230)上で実行されるDASHクライアント(232)により処理することができる。さらに、DASHクライアント(232)は、広告サーバ(220)から広告コンテンツを取得したり、1つまたは複数の補足コンテンツサーバから他のコンテンツ(例えば、対話型コンテンツ)を取得したりすることができる。メインコンテンツおよび広告コンテンツは、DASHクライアント(232)により処理され、表示デバイス(236)に表示するために出力することができる。表示デバイス(236)は、情報処理装置(230)に統合されてもよく、または情報処理装置(230)の外部にあってもよい。さらに、DASHクライアント(232)は、1つまたは複数の時限メタデータトラックからイベント情報を抽出し、抽出したイベント情報をさらなる処理のためにアプリケーション(234)に送信することができる。アプリケーション(234)は、例えば、イベント情報に基づいて補足コンテンツを表示するように構成することができる。
【0036】
広告サーバ(220)は、広告コンテンツをメモリなどの広告記憶部に記憶することができる。情報処理装置(230)は、イベント情報に基づいて、記憶している広告コンテンツを要求することができる。
【0037】
図3は、本開示の実施形態による、DASHおよびCMAFイベントを処理するためのDASH/CMAFクライアントアーキテクチャの例を示している。DASH/CMAFクライアント(またはDASH/CMAFプレーヤ)は、アプリケーション(390)と通信し、(i)MPDイベント、(ii)inbandイベント、および(iii)時限メタデータイベントを含む様々なタイプのイベントを処理するように構成することができる。
【0038】
マニフェストパーサ(305)はマニフェスト(例えば、MPD)を解析する。マニフェストは、例えば、コンテンツサーバ(110、210)により提供される。マニフェストパーサ(305)は、時限メタデータトラックに埋め込まれた、MPDイベント、inbandイベント、および時限メタデータイベントに関するイベント情報を抽出する。抽出されたイベント情報を、DASH論理(310)(例えば、DASHプレーヤの制御、選択、および発見的論理)に提供することができる。DASH論理(310)は、イベント情報に基づいて、マニフェスト内でシグナリングされたイベントスキームをアプリケーション(390)に通知することができる。
【0039】
イベント情報は、異なるイベントストリームを区別するためのイベントスキーム情報を含むことができる。アプリケーション(390)は、イベントスキーム情報を使用して関心のあるイベントスキームにサブスクライブすることができる。アプリケーション(390)は、1つまたは複数のサブスクリプションAPIを介してサブスクライブされたスキーム毎に所望の発信モードをさらに示すことができる。例えば、アプリケーション(390)は、関心のある1つまたは複数のイベントスキームおよび任意の所望の対応発信モードを識別するサブスクリプション要求をDASHクライアントに送信することができる。
【0040】
アプリケーション(390)が、1つまたは複数の時限メタデータトラックの一部として配信される1つまたは複数のイベントスキームにサブスクライブする場合、inbandイベントおよび「moof」パーサ(325)は、1つまたは複数の時限メタデータトラックを時限メタデータトラックパーサ(330)にストリーミングすることができる。例えば、inbandイベントおよび「moof」パーサ(325)は、ムービーフラグメントボックス(「moof」)を解析し、続いて、DASH論理(310)からの制御情報に基づいて時限メタデータトラックを解析する。
【0041】
時限メタデータトラックパーサ(330)は、時限メタデータトラックに埋め込まれたイベントメッセージを抽出することができる。抽出されたイベントメッセージを、イベントバッファ(335)(例えば、イベントバッファ)に記憶することができる。シンクロナイザ/ディスパッチャモジュール(340)(例えば、イベントおよび時限メタデータのシンクロナイザおよびディスパッチャ)は、サブスクライブされたイベントをアプリケーション(390)に発信(または送信)することができる。
【0042】
MPDに記述されたMPDイベントを、マニフェストパーサ(305)によって解析し、かつバッファ(335)に記憶することができる。例えば、マニフェストパーサ(305)は、MPDの各イベントストリーム要素を解析し、かつ各イベントストリーム要素に記述された各イベントを解析する。MPD内でシグナリングされたイベント毎に、プレゼンテーション時間およびイベント時間幅などのイベント情報を、イベントに関連付けられたバッファ(335)に記憶することができる。
【0043】
inbandイベントおよび「moof」パーサ(325)は、メディアセグメントを解析して、inbandイベントメッセージを抽出することができる。任意のこのような識別されたinbandイベントおよび関連するプレゼンテーション時間および時間幅を、バッファ(335)に記憶することができる。
【0044】
したがって、バッファ(335)は、その中にMPDイベント、inbandイベントおよび/または時限メタデータイベントを記憶することができる。バッファ(335)は、例えば、先入れ先出し(FIFO)バッファであり得る。バッファ(335)は、メディアバッファ(350)に対応して管理することができる。例えば、メディアセグメントがメディアバッファ(350)内に存在する限り、そのメディアセグメントに対応する任意のイベントまたは時限メタデータを、バッファ(335)に記憶することができる。
【0045】
DASHアクセスAPI(Application Programming Interface)(315)は、HTTPプロトコルスタック(320)を介したメディアコンテンツや各種メタデータを含むコンテンツストリーム(あるいはデータフロー)のフェッチや受信を管理することができる。DASHアクセスAPI(315)は、受信したコンテンツストリームを異なるデータフローに分離することができる。inbandイベントおよびmoofパーサに提供されるデータフローは、メディアセグメント、1つまたは複数の時限メタデータトラック、およびメディアセグメントに含まれるinbandイベントシグナリングを含むことができる。一実施形態では、マニフェストパーサ305に提供されるデータフローは、MPDを含むことができる。
【0046】
DASHアクセスAPI(315)は、マニフェストをマニフェストパーサ(305)に転送することができる。イベントを記述することに加えて、マニフェストは、アプリケーション(390)、ならびにinbandイベントおよびmoofパーサ(325)と通信することができるDASH論理(310)にメディアセグメントに関する情報を提供することもできる。アプリケーション(390)を、DASHクライアントによって処理されるメディアコンテンツに関連付けることができる。アプリケーション(390)と、DASH論理(310)と、マニフェストパーサ(305)と、DASHアクセスAPI(315)との間でやりとりされる制御/同期信号は、マニフェストに記述されたメディアセグメントに関する情報に基づいて、HTTPスタック(320)からのメディアセグメントのフェッチを制御することができる。
【0047】
inbandイベントおよびmoofパーサ(325)は、メディアデータフローを解析して、メディアコンテンツ、時限メタデータトラック内の時限メタデータ、およびメディアセグメント内の任意のシグナリングされたinbandイベントを含むメディアセグメントにすることができる。メディアコンテンツを含むメディアセグメントを、ファイルフォーマットパーサ(345)によって解析し、メディアバッファ(350)に記憶することができる。
【0048】
バッファ(335)に記憶されたイベントは、シンクロナイザ/ディスパッチャ(340)が、イベント/メタデータAPIを介してアプリケーションに関連する利用可能なイベント(または関心のあるイベント)をアプリケーションに通信することを可能にする。利用可能なイベント(例えば、MPDイベント、inbandイベントまたは時限メタデータイベント)を処理し、かつシンクロナイザ/ディスパッチャ(340)に通知することによって特定のイベントまたは時限メタデータにサブスクライブするように、アプリケーションを構成することができる。アプリケーションに関連しないが、その代わりにDASHクライアント自体に関連するバッファ(335)に記憶された任意のイベントを、さらなる処理のためにシンクロナイザ/ディスパッチャ(340)によってDASH論理(310)に転送することができる。
【0049】
特定のイベントにサブスクライブするアプリケーション(390)に応答して、シンクロナイザ/ディスパッチャ(340)は、アプリケーションがサブスクライブしているイベントスキームに対応するアプリケーションイベントインスタンス(または時限メタデータのサンプル)と通信することができる。イベントインスタンスを、(例えば、特定のイベントスキームについて)サブスクリプション要求によって示される発信モードまたはデフォルトの発信モードに従って通信することができる。例えば、受信時発信モードでは、イベントインスタンスは、バッファ(335)での受信時にアプリケーション(390)に送信されてもよい。一方、開始時発信モードでは、イベントインスタンスは、例えば、メディアデコーダ(355)からのタイミング信号と同期して、それらの関連付けられたプレゼンテーション時間にアプリケーション(390)に送信されてもよい。
【0050】
DASH/CMAF Addressable Resource Index
いくつかの例示的な実装形態では、適応型ストリーミングクライアント(例えば、DASHまたはCMAFクライアント)が、同じアダプテーションセット/スイッチングセット内に存在する時限アラインドセグメントまたはチャンクのオフセット、サイズ、時間幅、および品質などのARI(Addressable Resource Index)情報の正確な知識を有することが望ましい。このようなARI情報と共に、例えば直近のチャンクまたはセグメントに関する相対的な情報をDASH/CMAFクライアントが使用して、クライアントのヒューリスティックを容易にしてもよい。アドレス指定可能なリソース(Addressable Resources)は、CMAFコンテキスト中のトラックファイル、セグメントやチャンクを含んでもよい。オンデマンドサービス場合、このような情報の正確なマップをセグメントインデックスによって提供してもよい。同様の概念と実装形態とをDASHコンテキストにも適用してもよいことに留意する。
【0051】
いくつかの例示的な実装形態では、ARI(Addressable Resource Index)を以下のように定めてもよい:
サンプルエントリタイプ:’cari’
コンテナ:サンプル記述ボックス(「stsd」)
必須:いいえ
数量:0または1
【0052】
当該メタデータは、アドレサブルリソースと、1つのインデックストラック中の例えばISO/IEC 23000-19で定義されているCMAFスイッチングセットの部分集合と、のものにおけるすべての詳細を記述する。
【0053】
以下の表1は、CMAF Addressable Resource Indexメタデータの例示的なサンプルエントリを示す。
【0054】
【0055】
以下の表2は、ARIサンプルの例示的なシンタックスを示す。
【0056】
【0057】
例えば、上記の構文のセマンティクスを以下に説明する:
・switching_set_identifierは、アプリケーションのコンテキスト中のスイッチングセットの固有の識別子を指定する。
・num_tracksは、ARIトラック中で付されているトラックの番号を示す。
・track_IDは、track_IDを使用してトラックのサンプル中で選択と配列とを行うものである。
・num_quality_indicatorsは、チャンクの品質を特定するために使用される品質指標の番号を指定する。
・quality_identifierは、サンプル中の品質値がどのように解釈されることになっているのかを示す識別子を指定する。これは登録することができる4CCコードである。
・segment_start_flagは、チャンクがセグメントの先頭であるか否かを示す。
・markerは、このチャンクが少なくとも1つのstypボックスを含むか否かを特定する。
・SAP_typeは、チャンクのSAPタイプを特定する。
・emsg_flagは、このチャンクが少なくとも1つのemsgボックスを提供するか否かを示す。
・prft_flagは、このチャンクが少なくとも1つのprftボックスを含むか否かを示す。
・offsetは、セグメントの先頭からのチャンクのオフセットを特定する。
・sizeは、チャンクのサイズをオクテット単位で提供する。
・qualityは、所定の品質スキーム識別子に従ってチャンクの品質を提供する。品質値のデータ型(整数または浮動小数点)が、品質スキームによって定義される。品質スキーム識別子が空文字列である場合、品質は、符号なし整数であり、値の増加に従って品質が増加するというものを用いて比例的に解釈される。
・lossは、チャンクのメディアデータが喪失したことを示す。
・num_prediction_pairsは、期待される予測値の組が何組提供されるのかを提供する。
・prediction_min_windowsは、MPD値と同一の最小バッファ時間(minbuffer time)の値を提供する。
・predicted_max_bitrateは、prediction_min_windows値の時間幅の間だけ保たれるMPDセマンティックと同一の帯域幅の値を提供する。
【0058】
イベントを用いたARIの搬送
DASH/CMAFの場合における例示的な実装形態では、同じアダプテーションセット/スイッチングセットに存在する時限アラインドセグメントまたはチャンクのオフセット、サイズ、品質などのARI関連情報を搬送するために専用のメタデータトラック、すなわちARIトラックが作成されることで、クライアントのヒューリスティックを容易にするために、クライアントが直近のチャンクまたはセグメントに関する相対的な情報を有することができ、例えば、当該情報をメディアトラックまたは表現の動的なスイッチングの際にクライアントが使用することができる。
【0059】
ARI情報(例えばARIサンプル)を搬送するためにメタデータトラックを使用する不利な点の1つが過度のシグナリングオーバーヘッドであることに留意する。例えば、ARI情報を必要とするセグメント毎に、余計なHTTP GETリクエストがクライアントによって必要とされる。
【0060】
本開示の実施形態はARIメタデータトラックを使用せずに、ARI(すなわち、ARI情報、ARIサンプル)を搬送する方法を含む。すなわち、ARIを搬送するためにメタデータトラックを使用する(この場合、(ARIサンプルがメディアセグメント/チャンクと共に別々に送られるのに応じて)余計なHTTP GETリクエストを受け付ける)のではなく、本開示では、ARIサンプルをinbandイベントやMPDイベントなどのイベントを介して送ってもよい。ARIサンプルを搬送する当該アプローチは、ARIサンプルがメディアセグメント/チャンクと共に送られるので、「メディアセグメント/チャンクが関連するARI伝送」であると考えられる。ARIを搬送するイベントをARIイベントと称する。ARIイベントを使用することで、少なくとも以下の利点を提供することができる:
【0061】
1.余計なメタデータトラックが必要でない結果、追加のARI情報が必要なセグメント/チャンク毎に、CMAF/DASHクライアントによるHTTP GETリクエストが1つ少なくなる。例えば、セグメント/チャンクの処理を容易にするために、追加のARI情報をCMAF/DASHクライアントが必要とする場合がある。この場合、ARI情報をセグメント/チャンクと共に搬送されるARIイベントから直接取得することができる。
【0062】
2.イベント処理モデルを用いることで、イベントメッセージの処理と、それをDASH/CMAFクライアントに送ることについての発信と、が可能になる。処理モデルを用いることで、ARIサンプルのタイミングをイベントタイミングモデルの一部として搬送することができる。
【0063】
3.柔軟性:ARI情報については、例えばinbandイベントが必要とするのに応じてDASHアダプテーションセットまたはCMAFスイッチングセット中の1つの表現中のイベントによって搬送してもよいし、一部の表現中のイベントによって搬送してもよいし、すべての表現中のイベントによって搬送してもよい。
【0064】
4.適応性および可搬性:ARIイベントをパッケージャ(例えば、inbandイベントや、エンコーダから受け取ったARIトラックから得られる)によって解析して、MPDイベントとしてMPDに付加することができる。
【0065】
いくつかの例示的な実装形態では、チャンク/セグメントのARI情報を同じチャンク/セグメントに含ませることができる。
【0066】
いくつかの例示的な実装形態では、チャンク/セグメントのARI情報を時間軸上に配置される後続のチャンク/セグメントに含ませることができる。
【0067】
いくつかの例示的な実装形態では、ARI情報を搬送するためにinbandイベントを使用するのではなく、ARI情報を搬送するためにMPDイベントを使用してもよい。特に、本実装形態は、オンデマンドコンテンツに好適であるといえる。
【0068】
本実施形態では、ARI情報は、emsgボックス内で搬送され得る。各emsgボックスは、スキームURN識別子によって定められた、またはURN識別子に関連する、イベントスキームに属してもよい。
【0069】
例えば、
図4を参照すると、ARIイベント410は、メディア1においてセグメント/チャンクc(n)と共に搬送される。ARIイベント410からのARI情報は、同じセグメント/チャンクc(n)に適用する。現在のチャンクARI情報が現在のチャンクイベントに含まれる場合、スキームURN識別子は、「urn:mpeg:dash:event:ari:2022」として定義されてもよい。
【0070】
別の例では、
図4を参照すると、ARIイベント412は、メディア2内のセグメント/チャンクc(n+1)と共に搬送される。ARIイベント412からのARI情報は、次のセグメント/チャンクc(n+2)に適用する。現在のチャンクイベントに次のチャンクARI情報が含まれる場合、スキームURN識別子は、「urn:mpeg:dash:event:ari-next:2022」として定義されてもよい。例えば、イベントの発信モードは受信時に設定されてもよい。
【0071】
以下の表3は、MPD中のARIイベントのパラメータの例を示す。
【0072】
【0073】
表3に示しているように、EventStreamとInbandEventStreamとの2つの要素を、ARIイベントを記述するために使用してもよい。両方のストリームがvalue属性を含んでもよい。value属性により、表1に記載されているCmafAriMetaDataSampleEntryフィールドを搬送してもよい。例えば、CmafAriMetaDataSampleEntryフィールドは以下のフィールドを含んでもよい:
・switching_set_identifier
・num_tracks
・num_quality_indicators
・track_idsの番号付きリスト
・quality_identifierのリスト
【0074】
いくつかの例示的な実装形態では、イベント要素がpresentaionTime属性(例えばEvent@presentationTime)を含んでもよく、これは、イベントのARI情報が適用される期間の先頭からのチャンクオフセットを示す。
【0075】
いくつかの例示的な実装形態では、イベント要素は、時間幅(duration)属性(例えばEvent@duration)を含んでもよく、これは、ARI情報を使用するべき時間幅を示す。例えば、これはチャンクの時間幅、またはセグメントの時間幅を含んでもよい。
【0076】
いくつかの例示的な実装形態では、イベントは、event bodyを含んでもよい。event bodyは、CmafAriFormatStructと同じ構成を共有してもよく、この構成は表2で定義されている。
【0077】
以下の表4は、inband ARIイベントのemsgパラメータの例を示す。
【0078】
【0079】
MPDイベント中のevent bodyと、inbandイベント中のmessage_dataとが同じCMAF ARIサンプル構造CmafAriFormatStructを共有することに留意する。したがって、イベントディスパッチャからイベントを受け取った後のARIサンプルの解析および処理が同じになる。すなわち、MPDイベントおよびinbandイベントについて同じ解析ロジックおよび処理ロジックが共有されるといえる。
【0080】
いくつかの実施形態では、ARIイベントに対して例えばISO/IEC 23009-1の第A.13項に従って処理および発信を行ってもよい。例えば、
図3に示している例示的なDASH/CMAFクライアントアーキテクチャでARIイベントに対して処理および発信を行ってもよい。
【0081】
いくつかの実施形態では、ARIイベントに対して発信が行われた後、このARIイベントの後処理が行われる。後処理のために、表5で示しているパラメータに依拠してもよい。
【0082】
【0083】
図5は、以下のステップを含む、ARIイベントの後処理のための例示的なフロー500を示す:
【0084】
ステップ510:
ARIイベント内のvalueフィールドを解析して、イベントに関する一般情報を抽出する。前述したように、一般情報は、switching_set_identifier、num_tracks、num_quality_indicators、track_idsの番号付きリスト、およびquality_identifierのリストを含み得る。
【0085】
ステップ520:
情報が適用されるチャンクまたはセグメントを識別するためにpresentation_timeを使用する。
【0086】
ステップ530:
イベントペイロード(例えば、event bodyまたはmessage_data)を解析して、CmafAriFormatStructを構築する。
【0087】
ステップ540:
valueおよびCmafAriFormatStructをそのヒューリスティックで処理して、新しい表現に切り替えるか同じ表現に留まるかを決定する。
【0088】
図6は、メディアストリームを処理するための例示的な方法600を示している。メディアストリームは、例えば、4Gメディアストリーム(4Gネットワークで配信されるメディアストリームについてのもの)、または5Gメディアストリーム(5Gネットワークで配信されるメディアストリームについてのもの)を含んでもよい。本方法は、例えば、後述するコンピュータシステムによって実施されてもよい。メディアストリームは、DASH規格に従っても、CMAF規格に従ってもよい。方法600は、メディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理するステップ610であって、ARIイベントが、コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、コンテンツセットが、1つまたは複数のメディアスライスを備える、inbandイベント、またはMPD(Media Presentation description)イベント、のうちの少なくとも1つを含み、ARIイベントが、コンテンツセット内の1つまたは複数のメディアスライスの構成情報を搬送する、ステップ610の一部または全部を含むことができる。メディアストリームは、例えば、クラウドコンピューティングネットワーク、無線ネットワーク(例えば、4G LTE(Long-Term Evolution)ネットワーク、または5G NR(New Radio)ネットワーク)、Wi-Fiネットワークによってサポートされる。メディアストリームは、4Gメディアストリーム、5Gメディアストリーム、Wi-Fiメディアストリーム、およびそれらの混合を含み得るが、これらに限定されない。
【0089】
いくつかの例示的な実装形態では、inbandイベントおよびMPDイベントは各々、スキーム識別子によって識別されるか、またはスキーム識別子と関連付けられ、スキーム識別子は、スキーム識別子URI(Uniform Resource Identifier)を含む。
【0090】
いくつかの例示的な実装形態では、方法600における1つまたは複数のメディアスライスの構成情報は、第1のメディアスライスの構成情報、または第1のメディアスライスの次の第2のメディアスライスの構成情報、のうちの少なくとも1つを含んでもよい。
【0091】
本開示の実施形態は、DASHとCMAFとの両方に適用する。方法600におけるコンテンツセットは、メディアストリームが、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)に従うときのアダプテーションセット、またはメディアストリームが、CMAF(Common Media Application Format)に従うときのスイッチングセット、のうちの少なくとも1つを含んでもよく、第1のメディアスライスは、アダプテーションセットの第1の表現内のメディアセグメント、またはスイッチングセットの第1のトラック内のメディアチャンク、のうちの少なくとも1つを含む。
【0092】
本開示の実施形態は、別々に使用されてもよく、任意の順序で組み合わされてもよい。さらに、方法(または実施形態)、DASHクライアント、CMAFクライアントの各々は、処理回路(例えば、1つまたは複数のプロセッサ、または1つまたは複数の集積回路)によって実施されてもよい。一例では、1つまたは複数のプロセッサは、非一時的コンピュータ可読媒体に記憶されたプログラムを実行する。本開示の実施形態をDASHおよび/またはCMAF技術/規格に適用してもよい。
【0093】
前述した技法は、コンピュータ可読命令を使用するコンピュータソフトウェアとして実装され、1つまたは複数のコンピュータ可読媒体に物理的に記憶することができる。例えば、
図7は、開示された主題の特定の実施形態を実装するために適したコンピュータシステム(1800)を示している。
【0094】
コンピュータソフトウェアは、1つまたは複数のコンピュータ中央処理装置(CPU)、グラフィックス処理装置(GPU)などによる、直接、または解釈、マイクロコード実行などを介して実行することができる命令を含むコードを作成するために、アセンブル、コンパイル、リンク、または同様のメカニズムを受けることができる任意の適切な機械語またはコンピュータ言語を使用して符号化することができる。
【0095】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、モノのインターネットデバイスなどを含む、様々なタイプのコンピュータまたはその構成要素上で実行することができる。
【0096】
コンピュータシステム(1800)に関して
図7に示す構成要素は、本質的に例示であり、本開示の実施形態を実施するコンピュータソフトウェアの使用または機能の範囲に関する限定を示唆することを意図しない。また、構成要素の構成が、コンピュータシステム(1800)の例示的な実施形態に示した構成要素のいずれか1つまたは組合せに関連する依存性または要件を有すると解釈すべきではない。
【0097】
コンピュータシステム(1800)は、特定のヒューマンインターフェース入力デバイスを含んでもよい。そのようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(キーストローク、スワイプ、データグローブの動きなど)、オーディオ入力(音声、拍手など)、視覚入力(ジェスチャなど)、嗅覚入力(図示せず)、を通じて1人または複数の人間のユーザによる入力に応答するものであってよい。ヒューマンインターフェースデバイスは、オーディオ(音声、音楽、周囲の音など)、画像(走査画像、静止画カメラから取得された写真画像など)、ビデオ(2次元ビデオ、立体ビデオを含む3次元ビデオなど)など、人間による意識的な入力に必ずしも直接関連しない特定のメディアを取り込むために使用することもできる。
【0098】
入力ヒューマンインターフェースデバイスは、キーボード(1801)、マウス(1802)、トラックパッド(1803)、タッチ画面(1810)、データグローブ(図示せず)、ジョイスティック(1805)、マイク(1806)、スキャナ(1807)、カメラ(1808)(各々が1つだけ図示している)のうちの1つまたは複数を含んでよい。
【0099】
さらに、コンピュータシステム(1800)は、特定のヒューマンインターフェース出力デバイスを含んでもよい。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚を通じて1人または複数の人間のユーザの感覚を刺激することができる。そのようなヒューマンインターフェース出力デバイスとして、触覚出力デバイス(例えば、タッチ画面(1810)、データグローブ(図示せず)、またはジョイスティック(1805)による触覚フィードバックであるが、入力デバイスとして機能することがない触覚フィードバックデバイスも存在し得る)、オーディオ出力デバイス(スピーカ(1809)、ヘッドホン(図示せず)など)、視覚出力デバイス(それぞれタッチ画面入力機能を有しても、有さなくてもよく、それぞれ触覚フィードバック機能を有しても、有さなくてもよく、一部は二次元視覚出力、あるいは立体グラフィック出力、仮想現実メガネ(図示せず)、ホログラフィック表示、またはスモークタンク(図示せず)などの手段による三次元を超える出力を出力可能であってよいCRT画面、LCD画面、プラズマ画面、またはOLED画面を含む画面(1810)など)、およびプリンタ(図示せず)を挙げることができる。
【0100】
コンピュータシステム(1800)は、CD/DVDまたは同様の媒体を用いるCD/DVD ROM/RW(1821)を含む光学媒体(1820)、サムドライブ(1822)、リムーバブルハードドライブまたはソリッドステートドライブ(1823)、テープおよびフロッピーディスクなどのレガシー磁気媒体(図示せず)、セキュリティドングルなどの特化型のROM/ASIC/PLDベースのデバイス(図示せず)、などの人間にとってアクセス可能な記憶デバイスおよびそれらの関連の媒体も含むことができる。
【0101】
当業者はまた、現在開示されている主題に関連して使用される「コンピュータ可読媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解するべきである。
【0102】
コンピュータシステム(1800)は、1つまたは複数の通信ネットワーク(1855)へのインターフェース(1854)も含むことができる。ネットワークは、例えば、無線ネットワーク、有線ネットワーク、または光ネットワークであってよい。ネットワークは更に、ローカル、ワイドエリア、メトロポリタン、車両用および産業用、リアルタイム、遅延耐性などであり得る。ネットワークの例には、Ethernetなどのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどを含むセルラネットワーク、ケーブルテレビ、衛星テレビおよび地上波テレビを含むテレビの有線または無線広域デジタルネットワーク、CAN busを含む車両用および産業用などが含まれる。任意のネットワークには、いくつかの汎用データポートまたは周辺バス(1849)(例えば、コンピュータシステム(1800)のUSBポート)に一般的な仕方で取り付けられる外部ネットワークインターフェースアダプタが必要であり、その他のネットワークについては、後述のようにシステムバスに取り付けることによってコンピュータシステム(1800)のコアに一般的な仕方で組み込まれる(例えば、PCコンピュータシステムにはEthernetインターフェースであったりスマートフォンコンピュータシステムにはセルラーネットワークインターフェースであったりする)。このようなネットワークのいずれを用いても、コンピュータシステム(1800)は他のエンティティと通信することができる。このような通信は、一方向受信専用(例えば、テレビ放送)、一方向送信専用(例えば、CANbusから特定のCANbusデバイスへ)、あるいは例えばローカルまたは広域デジタルネットワークを用いた他のコンピュータシステムに対する双方向であり得る。特定のプロトコルおよびプロトコルスタックは、前述されたこれらのネットワークおよびネットワークインターフェースの各々で使用することができる。
【0103】
前述のヒューマンインターフェースデバイス、人間にとってアクセス可能な記憶デバイス、およびネットワークインターフェースを、コンピュータシステム(1800)のコア(1840)に取り付けることができる。
【0104】
コア(1840)は、1つまたは複数の中央処理装置(CPU)(1841)、グラフィックス処理装置(GPU)(1842)、フィールドプログラマブルゲートエリア(FPGA)(1843)の形態をとる特化型プログラム可能処理装置、特定のタスク用のハードウェアアクセラレータ(1844)、グラフィックアダプタ(1850)、などを含むことができる。これらのデバイスは、読み出し専用メモリ(ROM)(1845)、ランダムアクセスメモリ(1846)、ならびにユーザがアクセスできない内蔵ハードドライブおよびSSDなどの内部大容量ストレージ(1847)と共に、システムバス(1848)を介して接続され得る。いくつかのコンピュータシステムにおいて、システムバス(1848)は、追加のCPUおよびGPUなどによる拡張を可能にするために、1つまたは複数の物理的なプラグの形態でアクセス可能であってよい。周辺デバイスを、コアのシステムバス(1848)に直接、あるいは周辺バス(1849)を介して、取り付けることができる。一例において、画面(1810)をグラフィックアダプタ(1850)に接続することができる。周辺バス用のアーキテクチャには、PCI、USBなどが含まれる。
【0105】
CPU(1841)、GPU(1842)、FPGA(1843)、およびアクセラレータ(1844)は、前述のコンピュータコードを組合せにて構築することができるいくつかの命令を実行することができる。このコンピュータコードを、ROM(1845)またはRAM(1846)に記憶することができる。RAM(1846)に過渡的データも記憶することができる一方で、恒久的なデータを、例えば内部大容量ストレージ(1847)に記憶することができる。任意のメモリデバイスに関する高速な記憶および検索を、1つまたは複数のCPU(1841)、GPU(1842)、大容量ストレージ(1847)、ROM(1845)、RAM(1846)、などに密接に関連付けられてよいキャッシュメモリを使用することによって可能にすることができる。
【0106】
コンピュータ可読媒体は、様々なコンピュータ実装動作を実施するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構築されたものであり得るか、またはそれらは、コンピュータソフトウェア技術のスキルを有する人々に周知かつ利用可能な種類であり得る。
【0107】
限定を課さない例として、アーキテクチャ(1800)を有し、特にコア(1840)を有するコンピュータシステムは、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つまたは複数の有形のコンピュータ可読媒体で実施されたソフトウェアを実行した結果として機能を提供することができる。このようなコンピュータ可読媒体は、前述されているような、ユーザが直接動作し得る大容量ストレージに関連する媒体であることが可能であり、さらには、コア内部大容量ストレージ(1847)やROM(1845)などの非一時性のストレージであるコア(1840)の特定のストレージであることも可能である。本開示の様々な実施形態を実施するソフトウェアを、このようなデバイスに記憶して、コア(1840)によって実行することができる。コンピュータ可読媒体は、個々の必要性に応じて、1つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアにより、コア(1840)、特にコア(1840)中のプロセッサ(CPU、GPU、FPGAなどを含む)が、RAM(1846)に記憶されているデータ構造の定義と、ソフトウェアによって定義されているプロセスに応じたこのようなデータ構造の修正とを含む、本出願で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行することができる。これに加えて、またはこれの代わりとして、本出願で説明されている特定のプロセスまたは特定のプロセスの特定の部分を実行するようにソフトウェアの代わりに動作したり、ソフトウェアと協働したりすることができる回路(例えばアクセラレータ(1844))にロジックがハードワイヤードされたり、ロジックが別の仕方で実施された結果としてコンピュータシステムは機能を提供することができる。必要に応じて、「ソフトウェア」と記載されている場合にはロジックを包含する場合があり、逆も可能である。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを記憶する回路(集積回路(IC)など)、実行のための論理を具現化する回路、またはその両方を包含することができる。本開示は、ハードウェアとソフトウェアの任意の適切な組合せを包含する。
【0108】
本開示はいくつかの例示的な実施形態を記載しているが、本開示の範囲内に入る変更、置換、および様々な代替の均等物が存在する。したがって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現化し、したがって本開示の趣旨および範囲内にある多数のシステムおよび方法を考案することができることが理解されよう。
【符号の説明】
【0109】
100 システム
110 コンテンツサーバ
120 情報処理装置
200 DASHシステム
210 コンテンツサーバ
212 HTTPサーバ
214 MPDジェネレータ
220 広告サーバ
230 情報処理装置
232 DASHクライアント
234 アプリケーション
236 表示デバイス
250 ネットワーク
305 マニフェストパーサ
310 DASH論理
315 DASHアクセスAPI
320 HTTPプロトコルスタック
325 inbandイベントおよび「moof」パーサ
330 時限メタデータトラックパーサ
335 イベントバッファ
340 シンクロナイザ/ディスパッチャモジュール
345 ファイルフォーマットパーサ
350 メディアバッファ
355 メディアデコーダ
390 アプリケーション
410 ARIイベント
412 ARIイベント
500 フロー
600 方法
1800 コンピュータシステム、アーキテクチャ
1801 キーボード
1802 マウス
1803 トラックパッド
1805 ジョイスティック
1806 マイク
1807 スキャナ
1808 カメラ
1809 スピーカ
1810 タッチ画面
1820 光学媒体
1821 CD/DVD ROM/RW
1822 サムドライブ
1823 リムーバブルハードドライブまたはソリッドステートドライブ
1840 コア
1841 中央処理装置(CPU)
1842 グラフィックス処理装置(GPU)
1843 フィールドプログラマブルゲートエリア(FPGA)
1844 ハードウェアアクセラレータ
1845 読み出し専用メモリ(ROM)
1846 ランダムアクセスメモリ(RAM)
1847 内部大容量ストレージ
1848 システムバス
1849 汎用データポートまたは周辺バス
1850 グラフィックアダプタ
1854 インターフェース
1855 通信ネットワーク
【手続補正書】
【提出日】2024-05-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサが実行する、5Gメディアストリームを処理する方法であって、前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over HTTP)規格、またはCMAF(Common Media Application Format)に従い、前記方法が、
前記5Gメディアストリームに関連付けられたARI(Addressable Resource Index)イベントを処理するステップであって、
前記ARIイベントが、
コンテンツセット内の第1のメディアスライスと共に送信されるinbandイベントであって、前記コンテンツセットが、1つまたは複数のメディアスライスを含む、inbandイベント、または、
MPD(Media Presentation description)イベント
のうちの少なくとも1つを含み、
前記ARIイベントが、前記コンテンツセット内の前記1つまたは複数のメディアスライスの構成情報を搬送する、ステップ
を含む、方法。
【請求項2】
前記inbandイベントおよび前記MPDイベントが各々、スキーム識別子によって識別されるか、または前記スキーム識別子と関連付けられ、前記スキーム識別子が、スキーム識別子URI(Uniform Resource Identifier)を含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数のメディアスライスの前記構成情報が、
前記第1のメディアスライスの構成情報、または
前記第1のメディアスライスの次の第2のメディアスライスの構成情報、
のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項4】
前記ARIイベントまたは前記MPDイベントのスキーム識別子が、前記構成情報が前記第1のメディアスライスまたは前記第2のメディアスライスに適用されるかを示す、請求項3に記載の方法。
【請求項5】
前記コンテンツセットが、
前記5Gメディアストリームが、DASH(Dynamic Adaptive Streaming over Hypertext transfer protocol)に従うときのアダプテーションセット、または
前記5Gメディアストリームが、CMAF(Common Media Application Format)に従うときのスイッチングセット、
のうちの少なくとも1つを含み、
前記第1のメディアスライスが、
前記アダプテーションセットの第1の表現内のセグメント、または
前記スイッチングセットの第1のトラック内のチャンク、
のうちの少なくとも1つを含む、
請求項
1に記載の方法。
【請求項6】
前記1つまたは複数のメディアスライスの前記構成情報が、
前記コンテンツセットを含むコンテナの開始時間に対する前記1つまたは複数のメディアスライスの各々のオフセットであって、前記コンテナが、CMAFプレゼンテーション、またはDASH期間のうちの少なくとも1つを含む、オフセット、
前記1つまたは複数のメディアスライスの前記各々のサイズ、あるいは
前記1つまたは複数のメディアスライスの前記各々の品質、
のうちの少なくとも1つを含む、請求項5に記載の方法。
【請求項7】
前記ARIイベントが、前記スイッチングセット内の少なくとも1つのチャンク、または前記アダプテーションセット内の少なくとも1つのセグメント、に関連するタイミング情報を搬送し、前記タイミング情報が、前記少なくとも1つのチャンクの各々、または前記少なくとも1つのセグメントの各々の開始時間を示す、請求項5に記載の方法。
【請求項8】
前記コンテンツセット内の前記1つまたは複数のメディアスライスの前記構成情報に基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップ、
をさらに含む、請求項5に記載の方法。
【請求項9】
前記コンテンツセット内の前記1つまたは複数のメディアスライスの前記構成情報、および前記第1のメディアスライスから抽出された情報に基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップ、
をさらに含む、請求項5に記載の方法。
【請求項10】
前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックから、1つまたは複数の追加のARIイベントを受信するステップ、をさらに含む、請求項5に記載の方法。
【請求項11】
前記ARIイベントが、メッセージ部分を含み、前記メッセージ部分が、
前記ARIイベントがinbandイベントであるときのmessage_dataフィールド、または
前記ARIイベントがMPDイベントであるときのevent bodyフィールド、
のうちの1つであり、
前記message_dataフィールドおよび前記event bodyフィールドが各々、1つまたは複数のARIサンプルを搬送し、
前記message_dataフィールド内の前記1つまたは複数のARIサンプル、および前記event bodyフィールド内の前記1つまたは複数のARIサンプルが、同じデータ構造を共有する、
請求項5に記載の方法。
【請求項12】
前記ARIイベントに関連付けられたプレゼンテーション時間を取得するために、前記ARIイベントを解析するステップと、
前記プレゼンテーション時間に基づいて、前記ARIイベントが適用するターゲットメディアスライスを判定するステップと、
前記データ構造に基づいて、前記1つまたは複数のARIサンプルを構築するステップと、
前記1つまたは複数のARIサンプルに基づいて、前記第1の表現とは異なる表現、または前記第1のトラックとは異なるトラックに切り替えるか否かを判定するステップと
をさらに含む、請求項11に記載の方法。
【請求項13】
請求項1~12のいずれか一項に記載の方法を行うように構成されたデバイス。
【請求項14】
コンピュータに、請求項1~12のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【国際調査報告】