(57)【特許請求の範囲】
【請求項１】
メディアデータを取り出す方法であって、
回路に実装されたプロセッサを含むデバイスによって、メディアコンテンツが第1のピリオドと第2のピリオドとを含むことを前記メディアコンテンツに関するマニフェストファイルが示していると、前記第1のピリオドおよび前記第2のピリオドが連続することを前記マニフェストファイルが示していると、および前記第1のピリオドと前記第2のピリオドとの間に挿入するために広告メディアデータが利用可能であると決定するステップと、
前記マニフェストファイルが第1のアダプテーションセットおよび第2のアダプテーションセットの資産識別子に関して同じ値をシグナリングし、前記第1のアダプテーションセットおよび前記第2のアダプテーションセットがそれぞれの「@id」属性に関して同じ値を有することを前記マニフェストファイルが示すとき、前記第2のアダプテーションセットが前記第1のアダプテーションセットと関連付けられると決定するステップと、
前記デバイスによって、前記第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、前記第1のピリオド内の前記第1のアダプテーションセットを選択するステップと、
前記デバイスによって、前記第1のアダプテーションセットの前記選択に基づいて、前記第1のアダプテーションセットのメディアデータを取り出すステップと、
前記デバイスによって、前記第1のアダプテーションセットの前記選択と前記第2のアダプテーションセットが前記第1のアダプテーションセットと関連付けられるとの決定とに基づいて前記第1のアダプテーションセットと関連付けられた前記第2のピリオド内の前記第2のアダプテーションセットのメディアデータを取り出すステップと
を含む、方法。
【請求項２】
前記マニフェストファイルがメディアプレゼンテーション記述(MPD)を含む、請求項1に記載の方法。
【請求項３】
プレゼンテーション持続時間を指定する@presentationTimeDurationシンタックス要素に関する値をシグナリングするデータ、または前記第1のアダプテーションセットに関して「urn:mpeg:dash:period_continuity:2014」に設定された@scheme_id_URI要素を有する補足記述子をシグナリングするデータのうちの少なくとも1つを使用して、前記マニフェストファイルが前記第1のアダプテーションセットのリプレゼンテーションに関する前記プレゼンテーション持続時間を示していると決定するステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記第1のアダプテーションセットが、前記マニフェストファイル内に記述されたピリオドの「@id」要素の値、アダプテーションセット識別子を表す「AdaptationSet@id」要素に関する値、および前記第1のアダプテーションセットに関する「@presentationTimeOffset」の値に整合するパケット識別子(PID)の「@value」要素をさらに含む、請求項3に記載の方法。
【請求項５】
前記第2のアダプテーションセットが前記第1のアダプテーションセットと共通の1つまたは複数の特性を有すると決定するステップであって、前記共通の特性が、言語、メディア構成要素タイプ、ピクチャアスペクト比、役割プロパティ、アクセス性プロパティ、または視点プロパティのうちの1つまたは複数を含む、決定するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記第1のアダプテーションセットと前記第2のアダプテーションセットとが関連付けられ、
「@presentationTimeOffset」が前記マニフェストファイル内に存在するか、または両方のアダプテーションセット内のすべてのリプレゼンテーションに関して0と推論され得、
前記マニフェストファイルが、前記第1のアダプテーションセットおよび前記第2のアダプテーションセットの少なくとも1つに関して、「@presentationTimeOffset」の値がすべてのリプレゼンテーションに関して同一であることを示し、
前記「@presentationTimeOffset」の前記値と前記第1のアダプテーションセット内のすべてのリプレゼンテーションのプレゼンテーション持続時間の合計が、前記第2のアダプテーションセットの前記「@presentationTimeOffset」の前記値と同一であるとき
前記第2のアダプテーションセットが前記第1のアダプテーションセットとピリオド的に連続すると決定するステップをさらに含む、請求項1に記載の方法。
【請求項７】
前記第1のアダプテーションセット内のリプレゼンテーションおよび前記第2のアダプテーションセット内の対応するリプレゼンテーションが@id属性に関して同じ値を有するとき、前記第2のアダプテーションセット内の前記対応するリプレゼンテーションの初期化セグメントとして、前記第1のアダプテーションセット内の前記リプレゼンテーションの初期化セグメントを使用するステップをさらに含む、請求項1に記載の方法。
【請求項８】
メディアデータを取り出すためのデバイスであって、
メディアデータを記憶するように構成されたメモリと、
回路に実装された1つまたは複数のハードウェアベースのプロセッサとを含み、前記1つまたは複数のハードウェアベースのプロセッサが、
メディアコンテンツが第1のピリオドと第2のピリオドとを含むことを前記メディアコンテンツに関するマニフェストファイルが示していると、前記第1のピリオドおよび前記第2のピリオドが連続することを前記マニフェストファイルが示していると、および前記第1のピリオドと前記第2のピリオドとの間に挿入するために広告メディアデータが利用可能であると決定することと、
前記マニフェストファイルが第1のアダプテーションセットおよび第2のアダプテーションセットの資産識別子に関して同じ値をシグナリングし、前記第1のアダプテーションセットおよび前記第2のアダプテーションセットがそれぞれの「@id」属性に関して同じ値を有することを前記マニフェストファイルが示すとき、前記第2のアダプテーションセットが前記第1のアダプテーションセットと関連付けられると決定することと、
前記第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、前記第1のピリオド内の前記第1のアダプテーションセットを選択することと、
前記第1のアダプテーションセットの前記選択に基づいて、前記第1のアダプテーションセットのメディアデータを取り出すことと、
前記デバイスによって、前記第1のアダプテーションセットの前記選択と前記第2のアダプテーションセットが前記第1のアダプテーションセットと関連付けられるとの決定とに基づいて前記第1のアダプテーションセットと関連付けられた前記第2のピリオド内の前記第2のアダプテーションセットのメディアデータを取り出すことと、
前記取り出したメディアデータを前記メモリに記憶することと
を行うように構成される、デバイス。
【請求項９】
前記マニフェストファイルがメディアプレゼンテーション記述(MPD)を含む、請求項8に記載のデバイス。
【請求項１０】
前記1つまたは複数のハードウェアベースのプロセッサが、前記第2のアダプテーションセットが前記第1のアダプテーションセットと共通の1つまたは複数の特性を有すると決定することであって、前記共通の特性が、言語、メディア構成要素タイプ、ピクチャアスペクト比、役割プロパティ、アクセス性プロパティ、または視点プロパティのうちの1つまたは複数を含む、決定することを行うように構成される、請求項8に記載のデバイス。
【請求項１１】
前記1つまたは複数のハードウェアベースのプロセッサが、
前記第1のアダプテーションセットと前記第2のアダプテーションセットとが関連付けられ、
「@presentationTimeOffset」が前記マニフェストファイル内に存在するか、または両方のアダプテーションセット内のすべてのリプレゼンテーションに関して0と推論され得、
前記マニフェストファイルが、前記第1のアダプテーションセットおよび前記第2のアダプテーションセットの少なくとも1つに関して、「@presentationTimeOffset」の値がすべてのリプレゼンテーションに関して同一であることを示し、
前記「@presentationTimeOffset」の前記値と前記第1のアダプテーションセット内のすべてのリプレゼンテーションのプレゼンテーション持続時間の合計が、前記第2のアダプテーションセットの前記「@presentationTimeOffset」の前記値と同一であるとき
前記第2のアダプテーションセットが前記第1のアダプテーションセットとピリオド的に連続すると決定するように構成される、請求項8に記載のデバイス。
【請求項１２】
前記1つまたは複数のハードウェアベースのプロセッサが、前記第1のアダプテーションセット内のリプレゼンテーションおよび前記第2のアダプテーションセット内の対応するリプレゼンテーションが@id属性に関して同じ値を有するとき、前記第2のアダプテーションセット内の前記対応するリプレゼンテーションの初期化セグメントとして、前記第1のアダプテーションセット内の前記リプレゼンテーションの初期化セグメントを使用するように構成される、請求項8に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体が参照により本明細書に組み込まれている、2014年3月24日に出願した米国仮出願第61/969,777号の利益を主張するものである。
【０００２】
本開示は、メディアデータのトランスポート、たとえば、ネットワークを介したメディアデータのストリーミングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、ビデオ会議デバイスなどを含む、幅広いデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263またはITU-T H.264/MPEG-4, Part 10, Advanced Video Coding(AVC)、ITU-T H.265/MPEG-H Part 2によって定義される規格、およびそのような規格の拡張に記載されるようなビデオ圧縮技法を実装して、デジタルビデオ情報をより効率的に送信および受信する。
【０００４】
ビデオ圧縮技法は、空間的予測および/または時間的予測を実行して、ビデオシーケンスに固有の冗長性を低減または除去する。ブロックベースのビデオコーディングの場合、ビデオフレームまたはスライスがマクロブロックに区分され得る。各マクロブロックはさらに区分され得る。イントラコード化(I)フレームまたはスライスにおけるマクロブロックは、近接マクロブロックに関する空間的予測を使用して符号化される。インターコード化(PまたはB)フレームまたはスライスにおけるマクロブロックは、同じフレームもしくはスライスにおける近接マクロブロックに関する空間的予測または他の参照フレームに関する時間的予測を使用し得る。
【０００５】
ビデオデータ(ならびに/または、オーディオおよび/もしくは時限テキストデータなど、他のメディアデータ)が符号化された後で、メディアデータは送信または記憶のためにパケット化され得る。パケット化されたメディアデータは、ハイパーテキスト転送プロトコル(HTTP)などのユニキャストプロトコル、または拡張マルチメディアブロードキャストマルチキャストサービス(eMBMS)などのブロードキャストプロトコルまたはマルチキャストプロトコルを使用して送ることができる。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】http://www.3gpp.org/ftp/Information/WORK_PLAN/Description_Releases/Rel-12_description_20131224.zip、Overview of 3GPP Release 12 V0.1.1、2013年12月
【非特許文献２】R. Fielding他による、RFC 2616、「Hypertext Transfer Protocol-HTTP/1.1」、Network Working Group、IETF、1999年6月
【発明の概要】
【課題を解決するための手段】
【０００７】
概して、本開示は、再生およびストリーミングの場合など、メディアデータの既存のセット内への追加のメディアデータ(たとえば、広告メディアデータ)が、たとえば、そのコンテンツを使用する送信者における判断によってまたはそのコンテンツを受信する受信者によって、ピリオドの境界をシグナリングすることによって結合(splice)され、追加され得るが、同時に、何の追加のメディアコンテンツも追加されないとき、受信者が、受信者におけるコンテンツの復号および再生がそのピリオドの境界を越えて連続する、すなわち、ピリオドの連続性を維持する十分な情報を有するように、アダプティブストリーミングのために使用されるメディアコンテンツを準備するための技法について説明する。メディアコンテンツは、別個のピリオドに分離可能であり、この場合、各ピリオドは、各々が1つまたは複数のリプレゼンテーションを包含する、1つまたは複数のアダプテーションセットを含む。概して、同じアダプテーションセット内のリプレゼンテーションは、クライアントデバイスが、たとえば、変化するネットワーク帯域幅に適応するために、リプレゼンテーションを切り替えることができるように、互いの代替と見なされ得る。あるピリオド内のアダプテーションセットは、そのような切替え可能リプレゼンテーション、すなわち、共通のコーディングおよびレンダリング特性を共有するが、ビットレートの点で異なるリプレゼンテーションを含み得る。
【０００８】
本開示は、追加のメディアデータが連続的なピリオドの間に挿入され得るように、あるピリオド内に提供されたコンテンツを2つの連続的なピリオドに分割するための技法について説明する。このようにして、連続的なピリオドのリプレゼンテーションに関する特性は、追加されたメディアデータに続いて再度シグナリングされる必要がない。代わりに、あるピリオドにおけるリプレゼンテーションのデータに関する同じシグナリングされた特性を(連続的なピリオド同士の間に追加のメディアデータが挿入され得る)次の連続的なピリオドにおけるリプレゼンテーションのデータに関して使用することができる。このようにして、メディアコンテンツのメディアデータおよび追加のメディアデータを連続する形で提示することができる。たとえば、クライアントデバイスは、第1のピリオドのアダプテーションセットの選択に基づいて(たとえば、第2のピリオドのアダプテーションセットの特性を再度解析せずに、かつクライアント内のメディアをパースおよび復号するエンティティを再初期化せずに)第1のピリオドのアダプテーションセットに相当する第2のピリオドのアダプテーションセットを使用することができる。
【０００９】
一例では、メディアデータを取り出すための方法は、メディアコンテンツに関するマニフェストファイルが、そのメディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定するステップと、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択するステップと、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出すステップと、広告メディアデータを取り出すステップと、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットと関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出すステップとを含む。
【００１０】
別の例では、メディアデータを取り出すためのデバイスは、メディアデータを記憶するように構成されたメモリと、1つまたは複数のハードウェアベースのプロセッサとを含み、1つまたは複数のハードウェアベースのプロセッサは、メディアコンテンツに関するマニフェストファイルが、そのメディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定し、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択し、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出し、広告メディアデータを取り出し、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットと関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出して、取り出したメディアデータをメモリに記憶するように構成される。
【００１１】
別の例では、メディアデータを送る方法は、メディアサーバによって、メディアデータの主コンテンツを第1のピリオドと第2のピリオドとを含む複数のピリオドに分割するステップであって、第1のピリオドおよび第2のピリオドが時間的に連続する、分割するステップと、メディアサーバによって、第1のピリオドと第2のピリオドとの間に副メディアコンテンツを挿入するステップと、メディアサーバによって、複数のピリオドの各々に関する時間インジケータをシグナリングするステップであって、時間インジケータが複数のピリオドの各々に関する1つまたは複数の時間特性を定義する、シグナリングするステップと、メディアサーバによって、複数のピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求を動的アダプティブストリーミングオーバーHTTP(DASH)クライアントから受信するステップとを含む。
【００１２】
別の例では、メディアデータを送るためのデバイスは、メディアデータを記憶するように構成されたメモリと、1つまたは複数のハードウェアベースのプロセッサとを含み、1つまたは複数のハードウェアベースのプロセッサは、メディアデータの主コンテンツを時間的に連続する第1のピリオドと第2のピリオドとを含む複数のピリオドに分割することと、第1のピリオドと第2のピリオドとの間に副メディアコンテンツを挿入することと、複数のピリオドの各々に関する時間インジケータをシグナリングすることであって、時間インジケータが複数のピリオドの各々に関する1つまたは複数の時間特性を定義する、シグナリングすることと、複数のピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求を動的アダプティブストリーミングオーバーHTTP(DASH)クライアントから受信することとを行うように構成される。
【００１３】
1つまたは複数の例の詳細が、以下の添付の図面および説明で述べられる。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】ネットワークを介してメディアデータをストリーミングするための技法を実装する例示的なシステムを示すブロック図である。
【図２】例示的なマルチディアコンテンツの要素を示す概念図である。
【図３】本開示の技法を実装し得る別の例示的なシステムを示すブロック図である。
【図４】本開示の様々な態様による、1つまたは複数の技法を示すフロー図である。
【図５】本開示の様々な態様による、1つまたは複数の技法を示すフロー図である。
【図６】本開示の様々な態様による、1つまたは複数の技法を示すフロー図である。
【図７】メディアサーバによって本開示のいくつかの技法を実行する例示的な方法を示すフローチャートである。
【図８】クライアントデバイスによって本開示のいくつかの技法を実行する例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１５】
概して、本開示は、連続的マルチピリオドストリーム内の広告(広告)挿入のための技法について説明する。これらの技法は、たとえば、ユニキャストサービス(HTTPなど)、ブロードキャスト、または拡張マルチメディアブロードキャストマルチキャストサービス(eMBMS)などのマルチキャストサービスに従って、メディアデータをストリーミングするときに使用され得る。たとえば、本開示の技法は、MBMS改善拡張MBMS動作(MI-EMO:MBMS Improvements-Enhanced MBMS Operation)の技法に関して、またはその技法を拡張するために使用され得る。MI-EMOは、たとえば、http://www.3gpp.org/ftp/Information/WORK_PLAN/Description_Releases/Rel-12_description_20131224.zipにおいて入手可能な、Overview of 3GPP Release 12 V0.1.1、2013年12月で説明されている。
【００１６】
広告データはメディアデータ、すなわち、主メディアデータのプレゼンテーションの1つまたは複数の短い合間の間にユーザに提示されるデータであることを理解されたい。追加のメディアデータ(たとえば、広告メディアデータ)は、概して、主メディアデータと実質的に同じように提示される。たとえば、主メディアデータがオーディオデータとビデオデータの両方を含む場合、広告メディアデータもオーディオデータとビデオデータを含む可能性が高い。したがって、広告データは、概してユーザに提示されないクライアントデバイスに対するサーバ広告と混同すべきではない。
【００１７】
本開示の技法は、動的アダプティブストリーミングオーバーHTTP(DASH)など、ストリーミングネットワークプロトコルのコンテキストで適用され得る。DASHでは、メディアコンテンツはリプレゼンテーションのセットに分割され、この場合、各リプレゼンテーションは、特徴の特定の組合せ、たとえば、コーディング特性(コーデック、プロファイル、レベルなど)、レンダリング特性(たとえば、視野角、ピクチャ寸法、フレームレートなど)、およびビットレートに相当する。メディアコンテンツはアダプテーションセットをさらに含むことが可能であり、この場合、各アダプテーションセットは、リプレゼンテーションが同じレンダリング特性を共有するが、たとえば、帯域幅に適応するために、ビットレートの点で異なるように、互いに切替え可能な代替として機能する複数のリプレゼンテーションを含む。リプレゼンテーションのこれらの特性、ならびにアダプテーションセットの表示は、一般に、マニフェストファイル内でシグナリングされる。さらに、各アダプテーションセットは、メディアコンテンツの特定のピリオドに対応し得、この場合、各ピリオドは1つまたは複数のアダプテーションセットを含み得る。1つのピリオドは、概して、後続のピリオドに関する再生開始時間まで、そのピリオドに関する再生開始時間によって定義されるメディアコンテンツのセクションに相当する。メディアコンテンツは、1つまたは複数のピリオドを含んでもよい。
【００１８】
本開示は、複数のピリオドがピリオドの連続性を提供しながら、メディアプレゼンテーション記述(MPD:Media Presentation Description)などのマニフェストファイル、およびオンデマンドコンテンツまたはライブコンテンツとして生成されたコンテンツのMPD(または、他のマニフェストファイル)への変換に関する。複数のピリオドを有するコンテンツは、様々な理由で作成され得る。たとえば、複数のピリオドは、たとえば、広告挿入のためのコンテンツの結合を可能にするために作成され得る。別の例では、複数のピリオドは、セグメント番号付けにおけるドリフトを回避するために同期点を提供するために作成され得る。別の例では、複数のピリオドは、アダプテーションセット内のあるリプレゼンテーションを除去するために、またはそのようなリプレゼンテーションを追加するために作成され得る。別の例では、複数のピリオドは、あるアダプテーションセットを除去または追加するために作成され得る。別の例では、複数のピリオドは、あるコンテンツ配信ネットワーク(CDN)上で提供されるコンテンツを追加または除去するために作成され得る。別の例では、複数のピリオドは、エンコーダによって作り出された場合、より短いセグメントのシグナリングを可能にするために作成され得る。これらの例示的な技法は、単独で、または何らかの組合せで使用され得る。
【００１９】
ピリオドは、キューとしても知られている、広告挿入のための機会を提供する。しかしながら、広告は、送信者またはクライアントによって行われる判断に基づいて、追加されてよく、または追加されなくてもよい。したがって、それに関して何の広告も挿入されないコンテンツは、一般に、メディアのパースおよびレンダリングの点で連続する。ピリオドが連続する場合、クライアントが、再初期化する必要がなく、ピリオドの境界における不具合(glitch)についての何らかの考えられる結果を回避するように、クライアントに関して連続する再生がシグナリングされる。連続する再生に対処するために、本開示は様々な技法について説明する。一例では、コンテンツプロバイダは、通常のオンデマンドコンテンツを複数のピリオドに分割して、ピリオドの連続性シグナリングを提供する。別の例では、コンテンツプロバイダは、通常のライブコンテンツを複数のピリオドに分割して、ピリオドの連続性シグナリングを提供する。別の例では、コンテンツプロバイダはピリオドの連続性を可能にするためにコンテンツをシグナリングする。別の例では、コンテンツプロバイダは、メディアコンテンツ、すなわち、リプレゼンテーションを修正せずに、MPD情報のみに基づいて、複数のピリオドをシグナリングする。
【００２０】
いくつかの例では、ブロードキャストまたはマルチキャストを使用してメディアコンテンツを受信するとき、MBMSクライアントまたはeMBMSクライアントは、メディアコンテンツを受信し、次いで、そのメディアコンテンツをDASHクライアントなどのストリーミングクライアントに利用可能にすることができる。DASHクライアントは、たとえば、HTTP取出し動作を使用して、メディアコンテンツをMBMSクライアントから取り出すことができる。DASHなどのHTTPストリーミングにおいて、頻繁に使用される動作には、HEAD、GETおよび部分GETがある。HEAD動作は、所与のユニフォームリソースロケータ(URL)またはユニフォームリソースネーム(URN)と関連付けられたファイルのヘッダを取り出し、この場合、URLまたはURNと関連付けられたペイロードを取り出すことはない。GET動作は、所与のURLまたはURNと関連付けられたファイル全体を取り出す。部分GET動作は、入力パラメータとしてバイト範囲を受信し、ファイルの連続した数のバイトを取り出し、この場合、バイトの数は受信されるバイト範囲に相当する。したがって、部分GET動作が、1つまたは複数の個々の動画フラグメントを取得できるので、動画フラグメントはHTTPストリーミングのために提供され得る。動画フラグメントにおいて、異なるトラックのいくつかのトラックフラグメントが存在し得る。HTTPストリーミングでは、メディアプレゼンテーションは、クライアントにアクセス可能であり得るデータの構造化された集合体であり得る。クライアントは、メディアデータ情報を要求およびダウンロードして、ユーザにストリーミングサービスを提示する場合がある。
【００２１】
HTTPストリーミングを使用して3GPPデータをストリーミングする例では、マルチメディアコンテンツのビデオデータおよび/またはオーディオデータに関して複数のリプレゼンテーションが存在し得る。下で説明するように、異なるリプレゼンテーションは、異なるコーディング特性(たとえば、ビデオコーディング規格の異なるプロファイルまたはレベル)、異なるコーディング規格もしくはコーディング規格の拡張(マルチビューおよび/またはスケーラブル拡張など)、または異なるビットレートに対応し得る。そのようなリプレゼンテーションのマニフェストは、メディアプレゼンテーション記述(MPD)データ構造において定義され得る。メディアプレゼンテーションは、HTTPストリーミングクライアントデバイスにアクセス可能であり得るデータの構造化された集合体に対応し得る。HTTPストリーミングクライアントデバイスは、メディアデータ情報を要求およびダウンロードして、クライアントデバイスのユーザにストリーミングサービスを提示する場合がある。メディアプレゼンテーションは、MPDの更新を含み得るMPDデータ構造で記述され得る。
【００２２】
メディアプレゼンテーションは、1つまたは複数のピリオドのシーケンスを包含し得る。ピリオドは、MPDにおいてピリオドの要素によって定義され得る。MPSはピリオドごとにstart属性とavailableStartTime属性とを含み得る。ライブのサービスの場合、ピリオドのstart属性とMPD属性availableStartTimeとの合計が、UTCフォーマットによるピリオドの利用可能時間、特に、対応するピリオドにおける各リプレゼンテーションの第1のメディアセグメントを指定し得る。オンデマンドサービスの場合、第1のピリオドのstart属性は0であり得る。任意の他のピリオドでは、start属性は、対応するピリオドの開始時間と第1のピリオドの開始時間との間の時間オフセットを指定し得る。各ピリオドは、次のピリオドの開始まで、または最後のピリオドの場合にはメディアプレゼンテーションの終了まで及び得る。ピリオド開始時間は、正確であり得る。ピリオド開始時間は、すべての先行ピリオドのメディアの再生から生じる実際のタイミングを反映することができる。
【００２３】
各ピリオドは、同じメディアコンテンツのための1つまたは複数のリプレゼンテーションを包含し得る。リプレゼンテーションは、オーディオデータまたはビデオデータの、多数の符号化バージョンの選択肢の1つであってもよい。リプレゼンテーションは、符号化のタイプ、たとえば、ビデオデータのビットレート、解像度、および/またはコーデック、ならびにオーディオデータのビットレート、言語、および/またはコーデックによって異なり得る。リプレゼンテーションという用語は、マルチメディアコンテンツのある特定のピリオドに対応し、ある特定の方法で符号化された、符号化オーディオデータまたは符号化ビデオデータのあるセクションを指すために使用され得る。
【００２４】
ある特定のピリオドのリプレゼンテーションは、リプレゼンテーションが属するアダプテーションセットを示すMPD内の属性によって示されるグループに割り当てられ得る。同じアダプテーションセット内のリプレゼンテーションは、概して、クライアントデバイスが、たとえば帯域幅に適応するためにこれらのリプレゼンテーションの間で動的かつシームレスに切り替わることができる点で、互いに対する代替物と見なされる。たとえば、ある特定のピリオドのビデオデータの各リプレゼンテーションは、同じアダプテーションセットに割り当てられ得るので、リプレゼンテーションのうちのいずれもが、対応するピリオドのマルチメディアコンテンツの、ビデオデータまたはオーディオデータなど、メディアデータを提示するように復号するために、選択され得る。いくつかの例では、1つのピリオド内のメディアコンテンツは、存在する場合には、グループ0からの1つのリプレゼンテーション、または各々の非ゼロのグループからの最大でも1つのリプレゼンテーションの組合せのいずれかによって表され得る。あるピリオドの各リプレゼンテーションのタイミングデータは、ピリオドの開始時間に対して表され得る。
【００２５】
リプレゼンテーションは、1つまたは複数のセグメントを含み得る。各リプレゼンテーションは、初期化セグメントを含んでもよく、またはリプレゼンテーションの各セグメントは自己初期化するものであってもよい。初期化セグメントは、存在する場合、リプレゼンテーションにアクセスするための初期化情報を包含し得る。一般に、初期化セグメントは、メディアデータを包含しない。セグメントは、ユニフォームリソースロケータ(URL)、ユニフォームリソースネーム(URN)、またはユニフォームリソース識別子(URI)などの識別子によって一意に参照され得る。MPDは、セグメントごとに識別子を提供することができる。いくつかの例では、MPDはまた、URL、URN、またはURIによってアクセス可能なファイル内のセグメントのためのデータに対応し得る、range属性の形式で、バイト範囲を提供することができる。
【００２６】
異なるタイプのメディアデータに関して実質的に同時に取り出すために異なるリプレゼンテーションを選択することができる。たとえば、クライアントデバイスは、そこからセグメントを取り出すオーディオリプレゼンテーション、ビデオリプレゼンテーション、および時限のテキストリプレゼンテーションを選択することができる。いくつかの例では、クライアントデバイスは、帯域幅に適応するために特定のアダプテーションセットを選択することができる。すなわち、クライアントデバイスは、ビデオリプレゼンテーションを含むアダプテーションセット、オーディオリプレゼンテーションを含むアダプテーションセット、および/または時限のテキストを含むアダプテーションセットを選択することができる。代替として、クライアントデバイスは、あるタイプのメディア(たとえば、ビデオ)に関するアダプテーションセットを選択し、他のタイプのメディア(たとえば、オーディオおよび/または時限のテキスト)に関するリプレゼンテーションを直接選択することができる。
【００２７】
一般に、コンテンツ提供の点で、ピリオドの境界において連続性は必要ない。異なるコーデック、language属性、コンテンツ保護などを備えたコンテンツが提供され得る。クライアントは複数のピリオドにわたってそのコンテンツを連続して再生することが予想されるが、プレイアウトを完全に連続的、かつシームレスにするための実装の点で影響が存在し得る。
【００２８】
概して、ピリオドの境界を越えたオーディオ/ビデオ切替えは、シームレスでない場合がある。ISO/IEC 23009-1、section 7.2.1によれば、新しいピリオドの開始時に、メディアコンテンツ構成要素の再生手順は、新しいピリオドのperiodStart時間に整合するために、前のピリオドの終了時に調整される必要があり得るが、これは前のピリオドの終了時にそのリプレゼンテーションとの小さな重複またはギャップが存在し得るためである。重複(それぞれギャップ)は、そのピリオド持続時間によって示されるよりも長い(それぞれ短い)メディアストリームの実際のプレゼンテーション持続時間を備えたメディアセグメントに起因し得る。またピリオドの始まりにおいて、リプレゼンテーションの任意のアクセスユニットの最先のプレゼンテーション時間が@presentationTimeOffset内でシグナリングされるプレゼンテーション時間オフセットと等しくない可能性がある場合、それに応じて、再生手順を調整する必要がある。
【００２９】
しかしながら、ある条件下で、特に、コンテンツが適切に条件付けされている場合、複数のピリオドにわたるプレゼンテーションのシームレスな連続性が達成され得る。このセクションは、複数のピリオドにわたってコンテンツをダウンロードして、プレゼンテーションするときの、複数のピリオドにわたるコンテンツ提供要件および推奨およびクライアント行動に関する概要を提供する。
【００３０】
下記の議論は、静的メディアプレゼンテーションと動的メディアプレゼンテーションの両方に適用され、下記で説明する技法は、xlinkの使用とは無関係であり得ることに留意されたい。下記で説明する規則は、遠隔要素がデリファレンスされた後の事例に適用され得る。
【００３１】
リプレゼンテーションのプレゼンテーション持続時間は、リプレゼンテーションの終了プレゼンテーション時間とリプレゼンテーションの最先のプレゼンテーション時間との間の差分であり得る。プレゼンテーション時間持続時間は、たとえば、プレゼンテーション時間オフセットと同じ単位、すなわち、@timescaleを有してよく、リプレゼンテーションの正確なプレゼンテーション持続時間を表現する。
【００３２】
プレゼンテーション持続時間は、以下の例示的な技法、または同様の技法のうちの1つによってシグナリングされ得る。1つの例示的な技法は、@timescale属性の時間スケール内に含まれたリプレゼンテーションのプレゼンテーション持続時間を指定する新しい任意選択の属性@presentationTimeDurationに関連する。第2の例示的な技法は、MPD内に包含され得るピリオドの@idの値に整合する記述個の@value、PIDと、AIDであるAdaptationSet@idの値とを有するアダプテーションセットに関して提供可能であり、このアダプテーションセットに関する@presentationTimeOffsetの値が提供され得、かつPTOであり得る、「urn:mpeg:dash:period_continuity:2014」に設定された@scheme_id_URIを備えた補足記述子に関連する。
【００３３】
この信号が存在する場合、period@idの値がPIDであるピリオドの間、AIDであるAdaptationSet@idのアダプテーションセットに関して、このアダプテーションセット内の各リプレゼンテーションのプレゼンテーション持続時間は、PTOから@presentationTimeOffsetの値を差し引いた差分として得ることができる。
【００３４】
コンテンツが複数のピリオドを用いて提供され得る場合、コンテンツプロバイダは、実際のメディアプレゼンテーション時間が可能な限り実際のピリオド持続時間に近接し得るように、そのコンテンツを提供することができる。ピリオド持続時間は、そのピリオド内に包含されたすべてのリプレゼンテーションのプレゼンテーション持続時間の最大時間であり得ることが推奨され得る。
【００３５】
ある状況では、コンテンツプロバイダは、前のピリオド内のコンテンツの連続であり得る次のピリオド内に、場合によっては、直後のピリオド内で、または後のピリオド内で、コンテンツを提供する。後者の事例は、たとえば、広告ピリオドが挿入された後に適用される。コンテンツプロバイダは、等価の資産識別子を両方のピリオドに割り当てることによって、および属性@idに関する同一の値を有する両方のアダプテーションセットを特定することによって、2つの異なるピリオド内の2つのアダプテーションセット内に包含されたメディア構成要素が関連付けられることを表現することができる。
【００３６】
2つの異なるピリオド内のアダプテーションセットが関連付けられる場合、以下のパラメータのうちのいずれかまたはすべてが2つのアダプテーションセットに関して同一であり得る:すなわち、@lang属性によって記述された言語、@contentType属性によって記述されたメディア構成要素タイプ、@par属性によって記述されたピクチャアスペクト比(picture aspect ratio)、役割要素によって記述された任意の役割プロパティ、アクセス性要素によって記述された任意のアクセス性プロパティ、および視点要素によって記述された任意の視点プロパティである。一例では、DASH規格は、2つの異なるピリオド内のアダプテーションセットが関連付けられる場合、上記のパラメータの各々が2つのアダプテーションセットに関して同一であることを要求する、本開示の技法に従って修正され得る。
【００３７】
さらに、以下の条件の各々が2つのアダプテーションセットに関して当てはまる場合、1つのMPD内の2つのアダプテーションセットはピリオド的に連続すると考えてよい。
アダプテーションセットが、関連付けられているとして、および/または関連付けられると決定されるとして示されている、
@presentationTimeOffsetが存在し得るか、または両方のアダプテーションセット内のすべてのリプレゼンテーションに関して0と推論され得る、
1つのアダプテーションセット内で、@presentationTimeOffsetの値がすべてのリプレゼンテーションに関して同一であり得る、
@presentationTimeOffsetの値と1つのアダプテーション内のすべてのリプレゼンテーションのプレゼンテーション持続時間の総和が、他のアダプテーションセットの@presentationTimeOffsetの値と同一である、
両方のアダプテーションセット内のリプレゼンテーションが@idに関して同じ値を有する場合、これらのリプレゼンテーションは機能的に等しい初期化セグメントを有する、すなわち、1つのリプレゼンテーションの初期化セグメントを使用して、他のリプレゼンテーションの再生を続けることができる。
【００３８】
コンテンツ作者は、上で紹介した2つの例示的な技法のうちの1つを使用して(たとえば、@presentationTimeDuration属性などのプレゼンテーション持続時間シグナリング、および/または「urn:mpeg:dash:period_continuity:2014」に設定された@scheme_id_URIを有する補足記述子を使用して)、プレゼンテーション持続時間をシグナリングすることによってピリオド的に連続するアダプテーションセットをシグナリングすることができる。MPDが同一の資産識別子を有するピリオドを包含する場合、コンテンツ作者は、ピリオド的に連続するアダプテーションセットを有するMPDを提供することができる。さらに、1つのMPD内の2つのアダプテーションセットがピリオド的に連続し、第2のアダプテーションセットが補足記述子を@schemeIDURI=「urn:mpeg:dash:period-switchable」に関連付けている場合、第1のアダプテーションの任意のリプレゼンテーションと初期化セグメントなしの第2のアダプテーションセットからの何らかのリプレゼンテーションとの連結は、第1のアダプテーションセット内でシグナリングされる、使用中のメディアフォーマットに適合するビットストリームフォーマットをもたらす。このプロパティは、ピリオド連結アダプテーションセットと呼ばれる場合がある。クライアントにおける簡素化された処理では、MPDが同一の資産識別子を有するピリオドを包含する場合、コンテンツ作者は、ピリオド連結可能アダプテーションセットを有するMPDを提供することができる。
【００３９】
一般に、コンテンツ提供の点で、ピリオドの境界において何の連続性も保証されない。中でも、異なるコーデック、language属性、および異なる保護を備えたコンテンツが提供され得る。クライアントは複数のピリオドにわたってそのコンテンツを連続して再生することができるが、再生を完全に連続的かつシームレスに提供するためにの実装の点で影響が存在し得る。(たとえば、何の連続性も存在しない)ピリオドの境界において、たとえばフォーマット、コーデック、または他のプロパティの変化により、プレゼンテーションエンジンが再初期化され得る場合があり得る。これは、再初期化遅延もたらし得る。そのような再初期化遅延は削減または低減され得る。
【００４０】
MPDが静的なタイプのものである場合、実際のメディアプレゼンテーションは初期化遅延によって延長され得る。しかしながら、動的サービスの場合、再生に対する再初期化遅延の追加はエンコーダとプレゼンテーションエンジンとの間にドリフトをもたらし得る。したがって、再生は、MPD内で文書化された時間と実際の再生との間にドリフトを追加せずに、連続したプレゼンテーションを提供するように、各ピリオドの終了において調整可能であり、すなわち、実際の再生時間とピリオド開始時間との間の差分は一定の状態に留まり得る。
【００４１】
クライアントが1つのピリオド内にあるアダプテーションセットのメディア構成要素を提示した場合、および続くピリオドに同一の資産識別子を割り当てた場合、クライアントは、関連付けられたピリオドを識別して、他の情報がない場合、その関連付けられたアダプテーションセット内でコンテンツを再生し続けることができる。
【００４２】
さらに、アダプテーションセットがピリオド的に連続する場合、すなわち、プレゼンテーション時間が連続し、これがMPD内でシグナリングされる場合、クライアントはピリオドの境界を越えてそのコンテンツをシームレスに再生することができる。最も適切には、クライアントは同じ@idを用いてアダプテーションセット内のリプレゼンテーションを再生し続けることができるが、このリプレゼンテーションが利用可能であり得るという保証は何も存在しない場合がある。この場合、クライアントは、アダプテーションセット内の任意の他のリプレゼンテーションにシームレスに切り替えなければならない。
【００４３】
入力フォーマットは、オンデマンドプロファイルに適合するMPDであり得る。関連要素およびMPDの属性が下の表で提供される。下の例では、MPDは2つのアダプテーションセットを含む。
【００４４】
【表１】
0006474830.tif 000002
【００４５】
各リプレゼンテーションに関して、baseURLとして示されるBaseURL内で提供されるリプレゼンテーションのURLと次のようにinitとして示されるSegmentBase@indexRangeの値とを有するセグメントインデックスをダウンロードすることができる。
GET baseURL HTTP/1.1
範囲:バイト=0-(init-1)
【００４６】
次いで、そのセグメントインデックスに関して受信されたバイト範囲をパースすることができる。第1のセグメントインデックスボックスから、情報を抽出することができる。トラックの時間スケールはセグメントインデックス時間スケールから抽出可能であり、時間スケールとして示すことができる。サブセグメントの総数Nsubをreference_countとしてセグメントインデックスから抽出することができる。最先のプレゼンテーション時間eptをearliest_presentation_timeとして、セグメントインデックスから抽出することができる。第1のオフセットfoをfirst_offsetとしてセグメントインデックスから抽出することができる。各リーフセグメントiに関して、各リーフサブセグメントのセグメントインデックス内のサブセグメント持続時間はsdur[i]、サブセグメントのサイズはsize[i]、他のサブセグメント関連情報はssi[i]として示される。
【００４７】
オンデマンドストリームの一例では、プレゼンテーションはピリオド開始時間に対して表現されるメディアプレゼンテーション時間tsplitにおいて最先の2つのピリオド内で分割され得る。2つのアダプテーションセットが存在する可能性があり、各アダプテーションセットは1つのリプレゼンテーションを有し得る。いくつかの例では、アダプテーションセットのサブセグメント境界の整合が適用され得る。
【００４８】
以下の情報が、単一のピリオドのコンテンツに関して利用可能であると想定してもよい。
period@start ps
MPD@mediaPresentationDuration mpDUR
BaseURL bu1, bu2
SegmentBase@indexRange ir1, ir2
SegmentBase@timecale ts1, ts2
SegmentBase@presentationDuration pd1, pd2
リプレゼンテーションのセグメントインデックス
Nsub1, Nsub2
ept1, ept2
fo1, fo2
sdur1[i], sdur2[i]
fo1[i], fo2[i]
ssi1[i], ssi2[i]
【００４９】
新しいメディアプレゼンテーションを生成するために、以下の情報が生成され得る。
各アダプテーションセットの各リプレゼンテーションに関する第1のピリオド内の属性および要素の更新:
a.period@start ps1
b.add period@duration  pdur1=tsplit
c.BaseURL bu11,bu12
d.SegmentBase@indexRange ir11,ir12
e.SegmentBase@presentationTimeOffset pto11,pto12
f.SegmentBase@presentationDuration pd11,pd12
g.リプレゼンテーションのセグメントインデックス
i.Nsub11,Nsub12
ii.ept11,ept12
iii.fo11,fo12
iv.sdur11[i],sdur12[i]
v.ssi11[i],ssi12[i]
h.リプレゼンテーション自体を短縮することができる
各リプレゼンテーションに関する新しい第2のピリオド内の要素および属性の更新および追加:
a.add period@duration  pdur2
b.BaseURL bu21, bu22
c.SegmentBase@indexRange ir21, ir22
d.SegmentBase@presentationTimeOffset pto21, pto22
e.SegmentBase@presentationDuration pd21, pd22
f.リプレゼンテーションのセグメントインデックス
i.Nsub21, Nsub22
ii.ept21, ept22
iii.fo21, fo22
iv.sdur21[i], sdur22[i]
v.ssi21[i], ssi22[i]
リプレゼンテーション自体を生成することができる。
【００５０】
セグメント境界に整合する第1のリプレゼンテーションに関して新しい情報を次のように生成することができる。まず、たとえば、以下のアルゴリズムに従って、tsplitに相当するNsub11を見出すことができる。
time=ept1-pto1
Nsub11=0
while(time<tsplit*ts1 && Nsub11<Nsub1))
do
time+=sdur[Nsub11]
Nsub11++
done
【００５１】
このアルゴリズムによって、Nsub11を決定することができる。Nsub11はNsub1よりも小さくてよい。Nsub11がNsub1よりも小さくない場合、何のピリオド分割も行う必要はない。
【００５２】
正確なセグメント境界における分割が所望され得るため、リプレゼンテーション1に関する分割時間はtsplit1=time/ts1>=tsplitであってよい。告知される分割はtsplitであってよいが、リプレゼンテーションレベルでは、セグメント境界だけが分割されることに留意されたい。新しいセグメントインデックスサイズは前のセグメントインデックスサイズよりも小さくてよく、すなわち、新しいセグメントインデックスサイズは(Nsub1 - Nsub11)*12バイトさらに小さくてよい。これは第1のオフセットから推論され得る。
【００５３】
時間はプレゼンテーション持続時間pd11であってよい。ピリオド1のperiod@startを維持することができる。period@durationはtsplitに設定され得る。以下のアルゴリズムは、ピリオド1内でリプレゼンテーション1に関して新しい情報がどのように生成され得るかの一例である。
bu11=bu1_period1
ir11=ir1-(Nsub1-Nsub11)*12
pto11=pto1
pd11=time
ept11=ept1
fo11=fo1-(Nsub1-Nsub11)*12
i=0
while(while(i<Nsub11))
do
ssi11[i]=ssi1[i]
i++
done
【００５４】
次いで、たとえば、以下のアルゴリズムに従って、tsplitに相当するNsub12を見出すことができる。
time=ept2-pto2
Nsub12=0
while(time<tsplit*ts2 && Nsub12<Nsub2))
do
time+=sdur[Nsub12]
Nsub12++
done
【００５５】
リプレゼンテーション2に関する現実の分割時間はtsplit2=time/ts2>=tsplitであってよく、正確なサブセグメント境界における分割が所望され得る。新しいセグメントインデックスサイズは前のセグメントサイズよりも小さくてよく、すなわち、新しいセグメントインデックスサイズは(Nsub2-Nsub12)*12バイトさらに小さくてよい。これは第1のオフセットから推論され得る。
【００５６】
時間はプレゼンテーション持続時間pd21であってよい。下のアルゴリズムは、ピリオド1内でリプレゼンテーション2に関して新しい情報がどのように生成され得るかの一例である。
bu12=bu2_period1
ir12=ir2-(Nsub2-Nsub12)*12
pto12=pto2
pd12=time
ept12=ept2
fo12=fo2-(Nsub2-Nsub12)*12
i=0
while(while(i<Nsub12))
do
ssi12[i]=ssi2[i]
i++
done
【００５７】
新しいピリオド2を生成することができる。具体的には、一例では、サーバデバイスが新しいピリオド2を生成し得る。第一に、サーバデバイス60は、ピリオド1から情報(また、資産識別子、およびidsを有するアダプテーションセットなど)を複写することができる。新しいピリオドのperiod@startは提供されなくてよい。新しいピリオドのperiod@duration pdur2は、mpDUR-tsplitであり得る。以下のアルゴリズムは、ピリオド2内でリプレゼンテーション1に関して新しい情報がどのように生成され得るかの一例である。
Nsub12=Nsub1-Nsub11
bu21=bu1_period2
ir21=ir1-(Nsub1-Nsub12)*12
pto21=(tsplit1-tsplit)*ts1
pd21=pd1-pd11
ept21=pd11
fo21=fo1-(Nsub1-Nsub12)*12
i=0
while(while(i<Nsub12))
do
ssi21[i]=ssi1[i+Nsub11]
i++
done
【００５８】
以下のアルゴリズムは、ピリオド2内でリプレゼンテーション2に関して新しい情報がどのように生成され得るかの一例である。
Nsub22=Nsub2-Nsub12
bu22=bu2_period2
ir22=ir2-(Nsub2-Nsub22)*12
pto22=(tsplit2-tsplit)*ts2
pd22=pd2-pd12
ept22=pd12
fo22=fo2-(Nsub2-Nsub22)*12
i=0
while(while(i<Nsub22))
do
ssi22[i]=ssi2[i+Nsub12]
i++
done
【００５９】
他の例では、pto21が0であるために、スプリット時間としてtsplit1を使用することができる。これは、IDRフレームにおいて分割を実行することができる場合であり得る。
【００６０】
上記の情報を同じ情報を有する完全なMPDにマッピングし戻すことができるが、上で論じたアルゴリズムによって、時間tsplitにおいてスプライスポイント(splice point)が生成され得る。任意のピリオドをスプライスポイントにおいて挿入することができる。上の取り組みは、MPD@mediaPresentationDurationを除去し、上で文書化したように追加および置換することができる。
【００６１】
本開示の別の例示的な技法では、ライブストリームを使用することができる。ライフプロファイル情報の場合、情報はMPDおよびセグメントから利用可能であり得る。トラックの時間スケールはセグメントインデックス時間スケールから抽出可能であり、時間スケールとして示すことができる。セグメントの総数Nsegをセグメント情報から抽出することができる。最先のプレゼンテーション時間eptをearliest_presentation_timeとしてセグメントインデックスから抽出することができる。第1のオフセット@startNumberをMPDから抽出することができる。各セグメントIに関して、各リーフサブセグメントのセグメントインデックス内のセグメント持続時間はsdur[i]、他のセグメント関連情報はsi[i]として示される。
【００６２】
1つの例示的なプレゼンテーションでは、プレゼンテーションはピリオド開始時間に対して表されるメディアプレゼンテーション時間tsplitにおいて最先の2つのピリオドに分割され得る。この分割は第2のアダプテーションセットのセグメント境界と整合しなくてよい。2つのアダプテーションセットが存在する可能性があり、各アダプテーションセットは1つのリプレゼンテーションを有し得る。
【００６３】
以下の情報が、単一のピリオドのコンテンツに関して利用可能であると想定してもよい。
period@start ps
MPD@mediaPresentationDuration mpDUR
SegmentTemplate@media mt1, mt2
SegmentTemplate@timecale ts1, ts2
SegmentTemplate@presentationDuration pd1, pd2
セグメント情報
Nseg1, Nseg2
ept1, ept2
sn1, sn2
sdur1[i], sdur2[i]
si1[i], si2[i]
【００６４】
新しいメディアプレゼンテーションを生成するために、以下の情報が生成され得る。
サーバデバイスは、次のように、各アダプテーションセットの各リプレゼンテーションに関する第1のピリオド内の属性および要素を更新することができる。
period@start ps1
add period@duration  pdur1=tsplit
SegmentTemplate@media mt11, mt12
SegmentTemplate@presentationTimeOffset pto11, pto12
SegmentTemplate@presentationDuration pd11, pd12
リプレゼンテーションのセグメント情報
Nseg11, Nseg12
ept11, ept12
sn11, sn12
sdur11[i], sdur12[i]
si11[i], si12[i]
リプレゼンテーション自体を短縮することができる
サーバデバイスは、次のように、属性および要素を更新して、各リプレゼンテーションに関する新しい第2のピリオド内に追加することができる。
add period@duration  pdur2
SegmentTemplate@media mt21, mt22
SegmentTemplate@presentationTimeOffset pto21, pto22
SegmentTemplate@presentationDuration pd21, pd22
リプレゼンテーションのセグメント情報
Nseg21, Nseg22
ept21, ept22
sn21, sn22
sdur21[i], sdur22[i]
si21[i], si22[i]
リプレゼンテーション自体を生成することができる
【００６５】
サーバデバイスは、セグメント境界に整合する第1のリプレゼンテーションに関して新しい情報を次のように生成することができる。まず、以下のアルゴリズムに従って、tsplitに相当するNseg11を見出すことができる。
time=ept1-pto1
Nseg11=0
while(time<tsplit*ts1 && Nseg11<Nseg1))
do
time+=sdur[Nseg11]
Nseg11++
done
【００６６】
このアルゴリズムによって、サーバデバイスはNseg11を決定することができる。Nseg11はNseg1よりも小さくてよい。Nseg11がNseg1よりも小さくない場合、何のピリオド分割も行う必要はない。時間はプレゼンテーション持続時間pd11であってよい。正確なセグメント境界における分割が所望され得るため、リプレゼンテーション1に関する分割時間はtsplit1=time/ts1>=tsplitであってよい。告知される分割はtsplitであってよいが、リプレゼンテーションレベルでは、セグメント境界だけが分割され得ることに留意されたい。ピリオド1のperiod@startを維持することができる。period@durationはtsplitに設定され得る。以下のアルゴリズムは、ピリオド1内でリプレゼンテーション1に関して新しい情報がどのように生成され得るかの一例である。
mt11=mt1
pto11=pto1
pd11=time
ept11=ept1
sn11=sn1
i=0
while(while(i<Nseg11))
do
si11[i]=si1[i]
i++
done
【００６７】
次いで、たとえば、以下のアルゴリズムの例に従って、tsplitに相当するNseg12を見出すことができる。
time=ept2-pto2
Nseg12=0
while(time<tsplit*ts2 && Nseg12<Nseg2))
do
time+=sdur[Nseg12]
Nseg12++
done
【００６８】
正確なサブセグメント境界における分割が所望され得るため、リプレゼンテーション2に関する現実の分割時間はtsplit2=time/ts2>=tsplitであってよい。時間はプレゼンテーション持続時間pd12であってよい。以下のアルゴリズムは、ピリオド1内でリプレゼンテーション2に関して新しい情報がどのように生成され得るかの一例である。
mt12=mt2
pto12=pto2
pd12=time
ept12=ept2
sn12=sn2
i=0
while(while(i<Nseg12))
do
si12[i]=si2[i]
i++
done
【００６９】
新しいピリオド2を生成することができる。第一に、ピリオド1から情報(また、資産識別子、およびidsを有するアダプテーションセットなど)を複写することができる。新しいピリオドのperiod@startは提供されなくてよい。新しいピリオドのperiod@duration pdur2は、mpDUR-tsplitであり得る。以下のアルゴリズムは、ピリオド2内でリプレゼンテーション1に関して新しい情報がどのように生成され得るかの一例である。
Nseg12=Nseg1-Nseg11
mt21=mt1
pto21=(tsplit1-tsplit)*ts1
pd21=pd1-pd11
ept21=pd11
sn21=sn1+Nseg11
i=0
while(while(i<Nseg12))
do
si21[i]=si1[i+Nseg11]
i++
done
【００７０】
以下のアルゴリズムは、ピリオド2内でリプレゼンテーション2に関して新しい情報がどのように生成され得るかの一例である。
Nseg22=Nseg2-Nseg12
mt22=mt2
pto22=(tsplit1-tsplit)*ts2
pd22=pd2-pd12
ept22=pd12
sn22=sn2+Nseg12
i=0
while(while(i<Nseg22))
do
si22[i]=si2[i+Nseg12]
i++
done
【００７１】
いくつかの例では、pto21が0であるために、スプリット時間としてtsplit1を使用することができる。これは、IDRフレームにおいて分割を実行することができる場合であり得る。
【００７２】
上記の情報を同じ情報を有する完全なMPDにマッピングし戻すことができるが、これによって、時間tsplitにおいてスプライスポイントが生成され得る。何らかのピリオドをここで挿入することができる。上の取り組みは、MPD@mediaPresentationDurationを除去し、上で文書化した情報を追加および置換することができる。
【００７３】
本開示の技法を使用して、オンデマンドプロファイルを最適化することができる。オンデマンドプロファイル提供に伴う課題は、広告挿入のためのピリオド構築を実行するために、ファイルを物理的に修正しなければならないことである。これは2つの結果を有する。第1に、修正はファイルレベルの修正を必要とし、比較的複雑である。これは、広告挿入の場合、コンテンツが変更される場合があることを意味する。第2に、異なる広告スプライシングポイントが考慮される場合、異なるコンテンツおよび異なるURLが使用される場合がある。これは、同じコンテンツの場合、記憶、特に、キャッシング効率が低減し得ることを意味する。したがって、以下では、MPDレベル情報だけに基づいて、ピリオドおよび広告挿入を可能にすることが提案され得る。これは、MPD内のわずかな修正を必要とし、これらのツールは、xlinkを含む新しく開発された広告挿入プロファイルに追加されなければならない。
【００７４】
オンデマンドストリームの一例では、プレゼンテーションはピリオド開始時間に対して表現されるメディアプレゼンテーション時間tsplitにおいて2つの最先ピリオド内で分割され得る。2つのアダプテーションセットが存在する可能性があり、各アダプテーションセットは1つのリプレゼンテーションを有し得る。いくつかの例では、アダプテーションセットのサブセグメント境界の整合が適用され得る。以下の情報が、単一のピリオドのコンテンツに関して利用可能であると想定してもよい。
period@start ps
MPD@mediaPresentationDuration mpDUR
BaseURL bu1, bu2
SegmentBase@indexRange ir1,ir2
SegmentBase@timecale ts1, ts2
SegmentBase@presentationDuration pd1, pd2
リプレゼンテーションのセグメントインデックス
Nsub1, Nsub2
ept1, ept2
fo1, fo2
sdur1[i],sdur1[i], sdur2[i]
fo1[i], fo2[i]
ssi1[i], ssi2[i]
【００７５】
新しいメディアプレゼンテーションを生成するために、以下の情報が生成され得る。
各アダプテーションセットの各リプレゼンテーションに関する第1のピリオド内の属性および要素の更新:
period@start ps1
add period@duration  pdur1=tsplit
SegmentBase@indexRange
SegmentBase@presentationTimeOffset pto11, pto12
SegmentBase@presentationDuration pd11, pd12
各リプレゼンテーションに関する新しい第2のピリオド内への要素および属性の更新および追加:
add period@duration  pdur2
SegmentBase@indexRange
SegmentBase@presentationTimeOffset pto21, pto22
SegmentBase@presentationDuration pd21, pd22
【００７６】
ptoおよびpdに関する上の情報は、オンデマンドプロファイルに関するのと同じように生成され得る。唯一の差は、セグメントインデックス内の情報を使用して、ptoとpdとの間の時間だけがこのリプレゼンテーションに関して再生され得ることをリプレゼンテーション内で明示的に示すことができることであり得る。
【００７７】
以下の例は、図3を参照する。単一のピリオドのプレゼンテーションを包含するCDN上でオンデマンドコンテンツを指すMPDが利用可能であり得る。MPDは、キュー(広告挿入機会)に基づいて、サーバ上のコンテンツを変更せずに、広告複数ピリオドに対して修正され得る。各機会に関して、広告判定サーバに対するxlinkを提供することができる。MPDをDASHクライアントに提供することができる。MPD内の各xlinkの場合、場合によっては、ユーザを対象とした、広告が追加される場合、それをチェックすることができる。そうでない場合、ピリオドは0に分解され得る。そうである場合、他のコンテンツを追加することができる。DASHクライアントはコンテンツを連続して再生し、ゼロに分解される場合、メディアエンジンは新しく初期化されなくてよい。
【００７８】
図1は、ネットワークを介してメディアデータをストリーミングするための技法を実施する例示的なシステム10を示すブロック図である。この例では、システム10は、コンテンツ準備デバイス20と、サーバデバイス60と、クライアントデバイス40とを含む。クライアントデバイス40およびサーバデバイス60は、インターネットを含み得るネットワーク74によって通信可能に結合される。いくつかの例では、コンテンツ準備デバイス20およびサーバデバイス60も、ネットワーク74もしくは別のネットワークによって結合されてもよく、または直接通信可能に結合されてもよい。いくつかの例では、コンテンツ準備デバイス20およびサーバデバイス60は、同じデバイスを構成してもよい。
【００７９】
図1の例では、コンテンツ準備デバイス20は、オーディオソース22とビデオソース24とを備える。オーディオソース22は、たとえば、オーディオエンコーダ26によって符号化されるべきキャプチャされたオーディオデータを表す電気信号を生成するマイクロフォンを備え得る。あるいは、オーディオソース22は、以前に記録されたオーディオデータを記憶する記憶媒体、コンピュータ化されたシンセサイザのようなオーディオデータ生成器、またはオーディオデータの任意の他のソースを備え得る。ビデオソース24は、ビデオエンコーダ28によって符号化されるべきビデオデータを生成するビデオカメラ、以前に記録されたビデオデータで符号化された記憶媒体、コンピュータグラフィックスソースのようなビデオデータ生成ユニット、またはビデオデータの任意の他のソースを備え得る。コンテンツ準備デバイス20は必ずしも、すべての例においてサーバデバイス60に通信可能に結合されるとは限らないが、サーバデバイス60によって読み取られる別個の媒体に、マルチメディアコンテンツを記憶する場合がある。
【００８０】
生のオーディオデータおよびビデオデータは、アナログデータまたはデジタルデータを含んでもよい。アナログデータは、オーディオエンコーダ26および/またはビデオエンコーダ28によって符号化される前にデジタル化されてもよい。オーディオソース22は、話している参加者から、その参加者が話している間にオーディオデータを取得する場合があり、ビデオソース24は、話している参加者のビデオデータを同時に取得する場合がある。他の例では、オーディオソース22は、記憶されたオーディオデータを含むコンピュータ可読記憶媒体を備えてよく、ビデオソース24は、記憶されたビデオデータを含むコンピュータ可読記憶媒体を備え得る。このようにして、本開示で説明する技法は、ライブの、ストリーミングの、リアルタイムのオーディオデータおよびビデオデータに、または保管された、以前に記録されたオーディオデータおよびビデオデータに、適用されてもよい。
【００８１】
ビデオフレームに対応するオーディオフレームは一般に、ビデオフレーム内に包含されるビデオソース24によってキャプチャ(または、生成)されたビデオデータと同時に、オーディオソース22によってキャプチャ(または、生成)されたオーディオデータを含む、オーディオフレームである。たとえば、話している参加者が一般に話すことによってオーディオデータを生成している間、オーディオソース22はオーディオデータをキャプチャし、ビデオソース24は同時に、すなわちオーディオソース22がオーディオデータをキャプチャしている間に、話している参加者のビデオデータをキャプチャする。したがって、オーディオフレームは、1つまたは複数の特定のビデオフレームに時間的に対応し得る。したがって、ビデオフレームに対応するオーディオフレームは一般に、オーディオデータおよびビデオデータが同時にキャプチャされた状況に対応し、その状況に対して、オーディオフレームおよびビデオフレームがそれぞれ、同時にキャプチャされたオーディオデータおよびビデオデータを含む。
【００８２】
いくつかの例では、オーディオエンコーダ26は、各符号化オーディオフレームにおいて、符号化オーディオフレームに関するオーディオデータが記録された時間を表すタイムスタンプを符号化することができ、同様に、ビデオエンコーダ28は、各符号化ビデオフレームにおいて、符号化ビデオフレームに関するビデオデータが記録された時間を表すタイムスタンプを符号化することができる。そのような例では、ビデオフレームに対応するオーディオフレームは、タイムスタンプを含むオーディオフレームおよび同じタイムスタンプを含むビデオフレームを含み得る。コンテンツ準備デバイス20は、オーディオエンコーダ26および/またはビデオエンコーダ28がタイムスタンプを生成し得るようにする、またはオーディオソース22およびビデオソース24がそれぞれオーディオデータおよびビデオデータをタイムスタンプと関連付けるために使用し得る、内部クロックを含み得る。
【００８３】
いくつかの例では、オーディオソース22は、オーディオデータが記録された時間に相当するデータをオーディオエンコーダ26に送ることができ、ビデオソース24は、ビデオデータが記録された時間に相当するデータをビデオエンコーダ28に送ることができる。いくつかの例では、オーディオエンコーダ26は、符号化オーディオデータにおいて、符号化オーディオデータの相対的な時間順序を示すために、オーディオデータが記録された絶対的な時間を必ずしも示すとは限らないが、シーケンス識別子を符号化することができ、同様に、ビデオエンコーダ28も、符号化ビデオデータの相対的な時間順序を示すためにシーケンス識別子を使用することができる。同様に、いくつかの例では、シーケンス識別子がタイムスタンプとともにマップされるか、あるいはタイムスタンプと相関することがある。
【００８４】
オーディオエンコーダ26は一般に、符号化オーディオデータのストリームを生成する一方、ビデオエンコーダ28は、符号化ビデオデータのストリームを生成する。データの個別の各ストリーム(オーディオかビデオかにかかわらず)は、エレメンタリストリームと呼ばれることがある。エレメンタリストリームは、リプレゼンテーションの、単一のデジタル的にコード化された(場合によっては、圧縮された)構成要素である。たとえば、リプレゼンテーションのコード化されたビデオまたはオーディオの部分は、エレメンタリストリームであり得る。エレメンタリストリームは、ビデオファイル内にカプセル化される前に、パケット化されたエレメンタリストリーム(PES:packetized elementary stream)に変換され得る。同じリプレゼンテーション内で、ストリームIDが、あるエレメンタリストリームに属するPESパケットを他のエレメンタリストリームに属するPESパケットと区別するために使用され得る。エレメンタリストリームのデータの基本単位は、パケット化されたエレメンタリストリーム(PES)パケットである。したがって、コード化ビデオデータは一般に、エレメンタリビデオストリームに対応する。同様に、オーディオデータは、1つまたは複数のそれぞれのエレメンタリストリームに対応する。
【００８５】
ITU-T H.264/AVCおよび今度の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格など、多くのビデオコーディング規格は、エラーのないビットストリームのためのシンタックス、意味論、および復号プロセスを定義し、それらのいずれもが、一定のプロファイルまたはレベルに準拠する。ビデオコーディング規格は、一般的にエンコーダを規定しないが、エンコーダは、生成されたビットストリームがデコーダのための規格に準拠することを保証する役割を課される。ビデオコーディング規格のコンテキストでは、「プロファイル」は、アルゴリズム、機能、またはツールのサブセット、およびこれらに適用される制約に相当する。H.264規格によって定義されるように、たとえば、「プロファイル」は、H.264規格によって規定される全体のビットストリームシンタックスのサブセットである。「レベル」は、たとえば、デコーダメモリおよび計算のような、デコーダのリソース消費の制限に相当し、これは、ピクチャの解像度、ビットレート、およびブロック処理速度に関連する。プロファイルは、profile_idc(プロファイルインジケータ)値によってシグナリングされ得るが、レベルは、level_idc(レベルインジケータ)値によってシグナリングされ得る。
【００８６】
たとえば、所与のプロファイルのシンタックスによって課される範囲内で、復号されるピクチャの規定されたサイズのようなビットストリーム内のシンタックス要素のとる値に応じて、エンコーダおよびデコーダの性能に大きい変動を要求することが依然として可能であることを、H.264規格は認める。多くの用途において、特定のプロファイル内でのシンタックスのすべての仮想的な使用を扱うことが可能なデコーダを実装するのは、現実的でも経済的でもないことを、H.264規格はさらに認める。したがって、H.264規格は、ビットストリーム内のシンタックス要素の値に課される制約の規定されたセットとして、「レベル」を定義する。これらの制約は、値に対する単純な制限であってもよい。あるいは、これらの制約は、値の算術的な組合せの制約の形式(たとえば、1秒当たりに復号されるピクチャの数と、ピクチャの高さと、ピクチャの幅との積)をとってもよい。個々の実装形態が、サポートされるプロファイルごとに異なるレベルをサポートしてもよいことを、H.264規格はさらに規定する。
【００８７】
プロファイルに準拠するデコーダは普通、プロファイル中で定義されるすべての機能をサポートする。たとえば、コーディング機能として、Bピクチャコーディングは、H.264/AVCのベースラインプロファイルではサポートされないが、H.264/AVCの他のプロファイルではサポートされる。あるレベルに準拠するデコーダは、レベル中で定義された制限を超えるリソースを要求しない、あらゆるビットストリームを復号することが可能であり得る。プロファイルおよびレベルの定義は、互換性のために有用である場合がある。たとえば、ビデオ送信の間、プロファイルとレベルの定義のペアが、送信セッション全体に対して取り決められ合意されてもよい。より具体的には、H.264/AVCにおいて、レベルは、処理される必要があるマクロブロックの数、復号されたピクチャバッファ(DPB:decoded picture buffer)のサイズ、コード化ピクチャバッファ(CPB:coded picture buffer)のサイズ、垂直方向の運動ベクトルの範囲、2つの連続するMBあたりの運動ベクトルの最大の数に対する制限、および、Bブロックが8×8ピクセルよりも小さいサブマクロブロック区画を有し得るかどうかを定義することができる。このようにして、デコーダは、デコーダが適切にビットストリームを復号できるかどうかを決定することができる。
【００８８】
図1の例では、コンテンツ準備デバイス20のカプセル化ユニット30は、ビデオエンコーダ28からのコード化ビデオデータを含むエレメンタリストリームと、オーディオエンコーダ26からのコード化オーディオデータを含むエレメンタリストリームとを受信する。いくつかの例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのパケタイザを含む場合がある。他の例では、ビデオエンコーダ28およびオーディオエンコーダ26は各々、符号化データからPESパケットを形成するためのそれぞれのパケタイザとインターフェースをとる場合がある。さらに他の例では、カプセル化ユニット30は、符号化オーディオデータおよび符号化ビデオデータからPESパケットを形成するためのパケタイザを含む場合がある。
【００８９】
ビデオエンコーダ28は、種々の方法でマルチメディアコンテンツのビデオデータを符号化し、ピクセル解像度、フレームレート、様々なコーディング規格に対する準拠、様々なコーディング規格のための様々なプロファイルおよび/もしくはプロファイルのレベルに対する準拠、1つもしくは複数の表示を有するリプレゼンテーション(たとえば、2次元または3次元の再生用)、または他のそのような特性などの、様々な特性を有する様々なビットレートのマルチメディアコンテンツの様々なリプレゼンテーションを生成してもよい。本開示で使用される場合、リプレゼンテーションは、オーディオデータ、ビデオデータ、(たとえば、クローズドキャプション用の)テキストデータ、または他のそのようなデータのうちの1つを含み得る。このリプレゼンテーションは、オーディオエレメンタリストリームまたはビデオエレメンタリストリームなどのエレメンタリストリームを含み得る。各PESパケットは、PESパケットが属するエレメンタリストリームを特定するstream_idを含んでもよい。カプセル化ユニット30は、様々なリプレゼンテーションのビデオファイル(たとえば、セグメント)へとエレメンタリストリームを組み立てる役割を担う。
【００９０】
カプセル化ユニット30は、オーディオエンコーダ26およびビデオエンコーダ28からのリプレゼンテーションのエレメンタリストリームのためのPESパケットを受信し、PESパケットから対応するネットワーク抽象化層(NAL)ユニットを形成する。H.264/AVC(Advanced Video Coding)の例では、コード化ビデオセグメントはNALユニットへと編成され、NALユニットは、ビデオ電話、記憶、ブロードキャスト、またはストリーミングのような、「ネットワークフレンドリ」なビデオリプレゼンテーションのアドレッシング適用(addressing application)を提供する。NALユニットは、ビデオコーディング層(VCL)NALユニットおよび非VCL NALユニットに分類されてもよい。VCLユニットは、コア圧縮エンジンを含んでもよく、ブロック、マクロブロック、および/またはスライスレベルのデータを含んでもよい。他のNALユニットは、非VCL NALユニットであってもよい。いくつかの例では、1つの時間インスタンスにおけるコード化ピクチャは、通常は一次コード化ピクチャとして提示され、1つまたは複数のNALユニットを含み得るアクセスユニットに含まれ得る。
【００９１】
非VCL NALユニットは特に、パラメータセットのNALユニットおよびSEI NALユニットを含み得る。パラメータセットは、(シーケンスパラメータセット(SPS)内に)シーケンスレベルヘッダ情報を含み、(ピクチャパラメータセット(PPS)内に)頻繁には変化しないピクチャレベルヘッダ情報を含み得る。パラメータセット(たとえば、PPSおよびSPS)があれば、この頻繁には変化しない情報は、各シーケンスまたはピクチャに対して繰り返される必要がなく、したがって、コーディング効率が向上し得る。さらに、パラメータセットの使用が、重要なヘッダ情報の帯域外送信を可能にでき、エラーの復元のための冗長な送信の必要がなくなる。帯域外送信の例では、パラメータセットのNALユニットが、SEI NALユニットなどの他のNALユニットとは異なるチャネルで送信され得る。
【００９２】
補足エンハンスメント情報(SEI:Supplemental Enhancement Information)は、VCL NALユニットからコード化ピクチャサンプルを復号するために必要ではない情報を含み得るが、復号、表示、エラーの復元、および他の目的に関係するプロセスを支援し得る。SEIメッセージは、非VCL NALユニットに包含され得る。SEIメッセージは、いくつかの標準仕様の規範的部分であり、したがって、規格に準拠するデコーダの実装において常に必須であるとは限らない。SEIメッセージは、シーケンスレベルSEIメッセージまたはピクチャレベルSEIメッセージであり得る。いくつかのシーケンスレベル情報は、SVCの例におけるスケーラビリティ情報SEIメッセージおよびMVCにおける表示スケーラビリティ情報SEIメッセージなどのSEIメッセージに包含され得る。これらの例示的なSEIメッセージは、たとえば、動作点の抽出および動作点の特性に関する情報を伝達することができる。加えて、カプセル化ユニット30は、リプレゼンテーションの特性を記述するメディアプレゼンテーション記述(MPD)などのマニフェストファイルを形成することができる。カプセル化ユニット30は、拡張可能マークアップ言語(XML)に従ってMPDをフォーマットすることができる。
【００９３】
カプセル化ユニット30は、マニフェストファイル(たとえば、MPD)とともに、マルチメディアコンテンツの1つまたは複数のリプレゼンテーションのためのデータを出力インターフェース32に提供してもよい。出力インターフェース32は、ユニバーサルシリアルバス(USB)インターフェースのような記憶媒体へ書き込むためのネットワークインターフェースもしくはインターフェース、CDもしくはDVDのライターまたはバーナー、磁気記憶媒体もしくはフラッシュ記憶媒体へのインターフェース、または、メディアデータを記憶もしくは送信するための他のインターフェースを含んでもよい。カプセル化ユニット30は、マルチメディアコンテンツのリプレゼンテーションの各々のデータを出力インターフェース32に提供することができ、出力インターフェース32は、ネットワーク送信または記憶媒体を介してデータをサーバデバイス60に送ることができる。図1の例では、サーバデバイス60は、各々がそれぞれのマニフェストファイル66および1つまたは複数のリプレゼンテーション(表現)68A〜68N(リプレゼンテーション68)を含む様々なマルチメディアコンテンツ64を記憶する記憶媒体62を含む。いくつかの例では、出力インターフェース32はネットワーク74にデータを直接送ることもできる。
【００９４】
いくつかの例では、リプレゼンテーション68は、アダプテーションセットへと分割され得る。つまり、リプレゼンテーション68の様々なサブセットは、コーデック、プロファイルおよびレベル、解像度、表示の数、セグメント用のファイルフォーマット、たとえば、話者による、復号され提示されるべきリプレゼンテーションおよび/またはオーディオデータとともに表示されるべきテキストの言語または他の特性を特定し得るテキストタイプ情報、カメラの角度またはアダプテーションセット内のリプレゼンテーションに関する風景の現実世界のカメラの視野を表し得るカメラ角度情報、特定の視聴者に対するコンテンツの適切性を表すレーティング情報のような、特性のそれぞれの共通のセットを含み得る。
【００９５】
マニフェストファイル66は、特定のアダプテーションセットに相当するリプレゼンテーション68のサブセットを示すデータ、さらには、アダプテーションセットに関する共通の特性を含んでもよい。マニフェストファイル66はまた、アダプテーションセットの個々のリプレゼンテーションのための、ビットレートのような個々の特性を表すデータを含んでもよい。このようにして、アダプテーションセットは、簡略化されたネットワーク帯域幅の適応を行ってもよい。アダプテーションセット内のリプレゼンテーションは、マニフェストファイル66のアダプテーションセット要素の子要素を使用して示されてもよい。本開示の技法によれば、サーバデバイス60は、マルチメディアコンテンツ64が、その間に広告コンテンツを挿入することができる2つ以上の連続的なピリオドを含むことを示すために、マニフェストファイル66を修正することができる。
【００９６】
具体的には、サーバデバイス60は、追加のコンテンツ(広告コンテンツなど)が連続的なピリオドの間に挿入され得るように、マルチメディアコンテンツ64内に連続的なピリオドが存在することを示すために、上で説明した様々な技法、または同様の技法のうちのいずれかを使用して、マニフェストファイル66を構築することができる。たとえば、サーバデバイス60は、2つの連続的なピリオドに分割された各ピリオドに対してPeriod@duration属性をマニフェストファイル66に追加することができる。同様に、サーバデバイス60は、Period@duration要素、baseURL要素、SegmentBase@indexRange要素、SegmentBase@presentationTimeOffset要素、およびSegmentBase@presentationDuration要素など、新しい連続的なピリオドを示すデータをマニフェストファイル66に追加することができる。さらに、サーバデバイス60は、上で論じた様々なセグメントインデックス要素をシグナリングし、既存のリプレゼンテーションから新しいピリオドに関する新しいリプレゼンテーションを生成することができる。
【００９７】
したがって、いくつかの例では、サーバデバイス60は、メディアデータの主コンテンツを、第1のピリオドと第2のピリオドとを含む複数のピリオドに分割することができ、この場合、第1のピリオドおよび第2のピリオドは時間的に連続する。すなわち、第1のピリオドおよび第2のピリオドは、連続して再生されることが意図される主コンテンツに関するデータを含む。サーバデバイス60は、第1のピリオドと第2のピリオドとの間に副メディアコンテンツ(たとえば、広告メディアコンテンツを)挿入することができる。さらに、サーバデバイス60は、複数のピリオドの各々に関して1つまたは複数の時間特性を定義する、複数のピリオドの各々に関する時間インジケータをシグナリングすることができる。時間インジケータは、たとえば、そのピリオドに関するマニフェストファイル66内にPeriod@duration属性を含み得る。サーバデバイス60は、次いで、それらのピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求を、たとえば、クライアントデバイス40から受信することができる。この要求は、クライアントデバイス40からメディアストリームのデータを取り出すための複数の要求のうちの1つであり得る。たとえば、複数の要求は、HTTP GET要求または部分的なGET要求であり得る。
【００９８】
上記の技法はサーバデバイス60に関して説明されたが、コンテンツ準備デバイス20も、(すなわち、追加または代替として)ピリオドを2つの連続的なピリオドに分割し、広告メディアデータをそれらの連続的なピリオドの間に挿入するように構成され得ることを理解されたい。
【００９９】
サーバデバイス60は、要求処理ユニット70とネットワークインターフェース72とを含む。いくつかの例では、サーバデバイス60は、複数のネットワークインターフェースを含み得る。さらに、サーバデバイス60の機能のいずれかまたはすべてが、ルータ、ブリッジ、プロキシデバイス、スイッチ、または他のデバイスのような、コンテンツ配信ネットワークの他のデバイス上で実装され得る。いくつかの例では、コンテンツ配信ネットワークの中間デバイスは、マルチメディアコンテンツ64のデータをキャッシュし、サーバデバイス60の構成要素に実質的に準拠する構成要素を含み得る。一般に、ネットワークインターフェース72は、ネットワーク74を介してデータを送信および受信するように構成される。
【０１００】
要求処理ユニット70は、記憶媒体62のデータに対するネットワーク要求を、クライアントデバイス40のようなクライアントデバイスから受信するように構成される。たとえば、要求処理ユニット70は、R. Fielding他による、RFC 2616、「Hypertext Transfer Protocol-HTTP/1.1」、Network Working Group、IETF、1999年6月で説明されるような、ハイパーテキスト転送プロトコル(HTTP)バージョン1.1を実装する場合がある。すなわち、要求処理ユニット70は、HTTP GET要求または部分GET要求を受信して、それらの要求に応答してマルチメディアコンテンツ64のデータを提供するように構成されてもよい。要求は、たとえば、セグメントのURLを使用して、リプレゼンテーション68のうちの1つのセグメントを指定してもよい。いくつかの例では、要求はまた、セグメントの1つまたは複数のバイト範囲を指定することができ、したがって、部分GET要求を含む。要求処理ユニット70はさらに、リプレゼンテーション68のうちの1つのセグメントのヘッダデータを提供するために、HTTP HEAD要求に対応するように構成されてもよい。いずれの場合でも、要求処理ユニット70は、要求されたデータをクライアントデバイス40のような要求側デバイスに提供するために、要求を処理するように構成されてもよい。
【０１０１】
追加または代替として、要求処理ユニット70は、eMBMSなど、ブロードキャストまたはマルチキャストプロトコルを介してメディアデータを配信するように構成され得る。コンテンツ準備デバイス20は、DASHセグメントおよび/またはサブセグメントを、説明したものと実質的に同じ方法で作成することができるが、サーバデバイス60は、これらのセグメントまたはサブセグメントを、eMBMSまたは別のブロードキャストもしくはマルチキャストのネットワークトランスポートプロトコルを使用して配信することができる。たとえば、要求処理ユニット70は、クライアントデバイス40からマルチキャストグループ参加要求を受信するように構成され得る。すなわち、サーバデバイス60は、マルチキャストグループと関連付けられたインターネットプロトコル(IP)アドレスを、クライアントデバイス40を含む、特定のマルチメディアコンテンツ(たとえば、ライブのイベントのブロードキャスト)と関連付けられたクライアントデバイスに広告することができる。次にクライアントデバイス40は、マルチキャストグループに参加することを求める要求を提出することができる。この要求は、ネットワーク74、たとえば、ネットワーク74を構成するルータを通じて伝搬され、それにより、ルータに、マルチキャストグループと関連付けられたIPアドレス宛のトラフィックを、クライアントデバイス40などの加入側クライアントデバイスに向けさせることができる。
【０１０２】
図1の例で示すように、マルチメディアコンテンツ64は、メディアプレゼンテーション記述(MPD)に相当し得るマニフェストファイル66を含む。マニフェストファイル66は、様々な代替のリプレゼンテーション68(たとえば、品質が異なるビデオサービス)の説明を含んでもよく、この説明は、たとえば、コーデック情報、プロファイル値、レベル値、ビットレート、およびリプレゼンテーション68の他の説明のための特性を含んでもよい。クライアントデバイス40は、メディアプレゼンテーションのMPDを取り出して、リプレゼンテーション68のセグメントにどのようにアクセスするかを決定してもよい。
【０１０３】
特に、(本開示の技法を実装することができる)取出しユニット52は、クライアントデバイス40の構成データ(図示せず)を取り出して、ビデオデコーダ48の復号能力およびビデオ出力44のレンダリング能力を判定することができる。構成データはまた、クライアントデバイス40のユーザによって選択される言語の選好、クライアントデバイス40のユーザによって設定される深さの選好に相当する1つもしくは複数のカメラ視野、および/または、クライアントデバイス40のユーザによって選択されるレーティングの選好のいずれかまたはすべてを含み得る。取出しユニット52は、たとえば、HTTP GET要求および部分GET要求を提出するように構成されたウェブブラウザまたはメディアクライアントを含み得る。取出しユニット52は、クライアントデバイス40の1つまたは複数のプロセッサまたは処理ユニット(図示せず)によって実行されるソフトウェア命令に対応し得る。いくつかの例では、取出しユニット52に関して説明された機能のすべてまたは一部は、ハードウェア、ハードウェアの組合せ、ソフトウェア、および/またはファームウェアで実装されてよく、必須のハードウェアは、ソフトウェアまたはファームウェアのための命令を実行するために提供され得る。
【０１０４】
取出しユニット52は、クライアントデバイス40の復号能力およびレンダリング能力を、マニフェストファイル66の情報によって示されるリプレゼンテーション68の特性と比較することができる。取出しユニット52は最初に、マニフェストファイル66の少なくとも一部分を取り出して、リプレゼンテーション68の特性を判定することができる。たとえば、取出しユニット52は、1つまたは複数のアダプテーションセットの特性を説明する、マニフェストファイル66の一部分を要求する場合がある。取出しユニット52は、クライアントデバイス40のコーディング能力およびレンダリング能力によって満たされ得る特性を有する、リプレゼンテーション68のサブセット(たとえば、アダプテーションセット)を選択することができる。取出しユニット52は、アダプテーションセット内のリプレゼンテーションに対するビットレートを決定し、ネットワーク帯域幅の現在利用可能な量を決定し、ネットワーク帯域幅によって満たされ得るビットレートを有するリプレゼンテーションのうちの1つからセグメントを取り出すことができる。
【０１０５】
一般に、リプレゼンテーションのビットレートが高くなると、ビデオ再生の品質が高くなる一方、リプレゼンテーションのビットレートが低くなると、利用可能なネットワーク帯域幅が縮小したときに、ビデオ再生の品質が十分なものになる場合がある。したがって、利用可能なネットワーク帯域幅が比較的高いときには、取出しユニット52は、ビットレートが比較的高いリプレゼンテーションからデータを取り出すことができ、利用可能なネットワーク帯域幅が低いときには、取出しユニット52は、ビットレートが比較的低いリプレゼンテーションからデータを取り出すことができる。このようにして、クライアントデバイス40は、ネットワーク74を介してマルチメディアデータをストリーミングすることができる一方、ネットワーク74の変化するネットワーク帯域幅の利用可能性に適応することもできる。
【０１０６】
追加または代替として、取出しユニット52は、eMBMSまたはIPマルチキャストなど、ブロードキャストまたはマルチキャストネットワークプロトコルに従ってデータを受信するように構成され得る。そのような例では、取出しユニット52は、特定のメディアコンテンツと関連付けられたマルチキャストネットワークグループに参加するための要求を提出することができる。取出しユニット52は、マルチキャストグループに参加した後、サーバデバイス60またはコンテンツ準備デバイス20にさらなる要求を出すことなしに、マルチキャストグループのデータを受信することができる。取出しユニット52は、マルチキャストグループのデータが必要ではなくなったときにマルチキャストグループを離れること、たとえば、再生を止めること、または異なるマルチキャストグループにチャネルを変えることを求める要求を出すことができる。
【０１０７】
さらに、本開示の技法によれば、取出しユニット52は、マニフェストファイル66がマルチメディアコンテンツ64の2つ以上のピリオドが連続することを示すかどうかを決定するように構成され得る。たとえば、取出しユニット52は、アダプテーションセットが関連付けられ、マニフェストファイル66が、アダプテーションセット内のすべてのリプレゼンテーションに関する@presentationTimeOffset要素を含むか、または@presentationTimeOffset要素が0と推論され得、1つのアダプテーションセット内で、@presentationTimeOffsetの値がすべてのリプレゼンテーションに関して同一であり、@presentationTimeOffsetの値と1つのアダプテーションセット内のすべてのリプレゼンテーションのプレゼンテーション持続ピリオドの合計が他のアダプテーションセットの@presentationTimeOffsetの値と同一であるとき、2つのピリオドの2つのアダプテーションセットがピリオド連続すると決定することができる。
【０１０８】
さらに、取出しユニット52は、別のピリオドの別のアダプテーションセットのリプレゼンテーションに関する初期化セグメントとして、1つのピリオドの1つのアダプテーションセット内の1つのリプレゼンテーションの初期化セグメントを使用することができ、この場合、@idに関してそれらのリプレゼンテーションが同じ値を有する場合、アダプテーションセットはピリオド的に連続する。同様に、2つのアダプテーションセットがピリオド的に連続し、後のアダプテーションセットが@schemeIDURI=「urn:mpeg:dash:period-switchable」を有する関連する補足記述子を有する場合、取出しユニット52は、アダプテーションセットのうちの1つの中のリプレゼンテーションが、他のアダプテーションセットの初期化セグメントなしに、他のアダプテーションセットからの任意のリプレゼンテーションと連結され得ると決定することができる。このようにして、取出しユニット52は、第1のピリオドおよび第2のピリオドが連続すると推定して、第1のピリオドのアダプテーションセットの選択に基づいて、(たとえば、第2のピリオドのアダプテーションセットの特性をさらに解析せずに)第2のピリオドのアダプテーションセットを選択することができる。
【０１０９】
このようにして、取出しユニット52は、メディアコンテンツに関するマニフェストファイルがメディアコンテンツが第1のピリオドと第2のピリオドとを含むこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定するように構成され得る。取出しユニット52はまた、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択するように構成され得る。そのような特性は、たとえば、コーデック、プロファイル、レベル、ピクチャ寸法、フレームレートなど、コーディング特性およびレンダリング特性を含み得る。アダプテーションセットを選択するために、取出しユニット52は、クライアントデバイス40のコーディング能力およびレンダリング能力をすべての利用可能なアダプテーションセットの特性と比較し、クライアントデバイス40によってコーディングおよびレンダリングされ得るアダプテーションセットを選択することができる。
【０１１０】
取出しユニット52は、次いで、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出すことができる。より具体的には、取出しユニット52は、リプレゼンテーションに関するビットレートが利用可能なネットワーク帯域幅を超えないように、たとえば、アダプテーションセットのリプレゼンテーションに関して利用可能なネットワーク帯域幅およびビットレートに基づいて、(2つ以上のリプレゼンテーションが利用可能である場合)アダプテーションセットのあるリプレゼンテーションを選択することができる。取出しユニット52は、広告メディアデータを取り出すこともできる。ささらに、取出しユニット52は、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットに関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出すことができる。したがって、取出しユニット52は、第2のアダプテーションセットが第1のアダプテーションセットとピリオド的に連続すると単に決定し、第2のアダプテーションセットはすでに選択された第1のアダプテーションセットとピリオド的に連続するため、第1のアダプテーションセットに関して実行したように、第2のピリオドのアダプテーションセットの特性を解析するのではなく、第2のアダプテーションセットを単に選択することができる。
【０１１１】
ネットワークインターフェース54は、選択されたリプレゼンテーションのセグメントのデータを受信し、取出しユニット52に提供することができ、次に取出しユニット52は、セグメントをカプセル化解除ユニット50に提供することができる。カプセル化解除ユニット50は、ビデオファイルの要素を、構成要素であるPESストリームへとカプセル化解除し、PESストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部かビデオストリームの一部かに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送ることができる。オーディオデコーダ46は、符号化オーディオデータを復号し、復号したオーディオデータをオーディオ出力42に送り、一方でビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号したビデオデータを、ビデオ出力44に送る。
【０１１２】
ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、およびカプセル化解除ユニット50は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組合せのような、種々の適切な処理回路のいずれかとして、適宜実装され得る。ビデオエンコーダ28およびビデオデコーダ48の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれもが、結合されたビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。同様に、オーディオエンコーダ26およびオーディオデコーダ46の各々は、1つまたは複数のエンコーダまたはデコーダに含まれてよく、これらのいずれもが、結合されたコーデックの一部として統合され得る。ビデオエンコーダ28、ビデオデコーダ48、オーディオエンコーダ26、オーディオデコーダ46、カプセル化ユニット30、取出しユニット52、および/またはカプセル化解除ユニット50を含む装置は、集積回路、マイクロプロセッサ、および/または携帯電話のようなワイヤレス通信デバイスを含み得る。
【０１１３】
クライアントデバイス40、サーバデバイス60、および/またはコンテンツ準備デバイス20は、本開示の技法に従って動作するように構成され得る。例として、本開示は、クライアントデバイス40およびサーバデバイス60に関するこれらの技法について説明する。しかしながら、コンテンツ準備デバイス20は、サーバデバイス60の代わりに(または、加えて)これらの技法を実行するように構成され得ることを理解されよう。
【０１１４】
カプセル化ユニット30は、NALユニットが属するプログラム、ならびにペイロード、たとえば、オーディオデータ、ビデオデータ、またはNALユニットが対応するトランスポートまたはプログラムストリームの記述データを特定するヘッダを含むNALユニットを形成することができる。たとえば、H.264/AVCにおいて、NALユニットは、1バイトのヘッダおよび可変サイズのペイロードを含む。そのペイロード内にビデオデータを含むNALユニットは、ビデオデータの様々な粒度レベルを含むことができる。たとえば、NALユニットは、ビデオデータのブロック、複数のブロック、ビデオデータのスライス、またはビデオデータの全ピクチャを含むことができる。カプセル化ユニット30は、ビデオエンコーダ28からの符号化ビデオデータをエレメンタリストリームのPESパケットの形で受信することができる。カプセル化ユニット30は、各エレメンタリストリームを対応するプログラムと関連付けることができる。
【０１１５】
カプセル化ユニット30はまた、複数のNALユニットからアクセスユニットを組み立てることができる。一般に、アクセスユニットは、ビデオデータのフレームならびにそのようなオーディオデータが利用可能であるときにそのフレームに相当するオーディオデータを表すために1つまたは複数のNALユニットを含むことができる。アクセスユニットは、一般に、1つの出力時間インスタンスに対するすべてのNALユニット、たとえば、1つの時間インスタンスに対するすべてのオーディオデータおよびビデオデータを含む。たとえば、各ビューが20フレーム毎秒(fps)のフレームレートを有する場合、各時間インスタンスは、0.05秒の時間間隔に対応し得る。この時間間隔の間、同じアクセスユニット(同じ時間インスタンス)のすべてのビューに対する特定のフレームは、同時にレンダリングされ得る。一例では、アクセスユニットは、一次コード化ピクチャとして提示され得る、1つの時間インスタンス内のコード化ピクチャを含むことができる。
【０１１６】
したがって、アクセスユニットは、共通の時間インスタンスのすべてのオーディオフレームおよびビデオフレーム、たとえば、時間Xに対応するすべてのビューを含むことができる。本開示はまた、特定のビューの符号化ピクチャを「ビューコンポーネント(view component)」と呼ぶ。すなわち、ビューコンポーネントは、特定の時間における特定のビューに対する符号化ピクチャ(またはフレーム)を含むことができる。したがって、アクセスユニットは、共通の時間インスタンスのすべてのビューコンポーネントを含むものとして定義され得る。アクセスユニットの復号順序は、必ずしも出力または表示の順序と同じである必要はない。
【０１１７】
メディアプレゼンテーションは、異なる代替リプレゼンテーション(たとえば、異なる品質を有するビデオサービス)の記述を含み得るメディアプレゼンテーション記述(MPD)を含むことができ、記述は、たとえば、コーデック情報、プロファイル値、およびレベル値を含むことができる。MPDは、マニフェストファイル66など、マニフェストファイルの一例である。クライアントデバイス40は、メディアプレゼンテーションのMPDを取り出して、様々なプレゼンテーションの動画フラグメントにどのようにアクセスするかを決定することができる。動画フラグメントは、ビデオファイルの動画フラグメントボックス(ムーフボックス(moof box))内に配置され得る。
【０１１８】
(たとえば、MPDを含むことができる)マニフェストファイル66は、リプレゼンテーション68のセグメントの利用可能性を広告することができる。すなわち、MPDは、リプレゼンテーション68のうちの1つの第1のセグメントが利用可能になる壁時計時間を示す情報、ならびにリプレゼンテーション68内のセグメントの持続時間を示す情報を含むことができる。このようにして、クライアントデバイス40の取出しユニット52は、開始時間ならびに特定のセグメントに先行するセグメントの持続時間に基づいて、各セグメントが利用可能になるときを判定することができる。
【０１１９】
カプセル化ユニット30が、受信されたデータに基づいてNALユニットおよび/またはアクセスユニットをビデオファイルに組み立てた後、カプセル化ユニット30は、ビデオファイルを出力のために出力インターフェース32に渡す。いくつかの例では、カプセル化ユニット30は、ビデオファイルを直接クライアントデバイス40に送る代わりに、ビデオファイルをローカルに記憶するかまた出力インターフェース32を介してはビデオファイルをリモートサーバに送ることができる。出力インターフェース32は、たとえば、送信機、トランシーバ、たとえばオプティカルドライブ、磁気媒体ドライブ(たとえば、フロッピードライブ)などのコンピュータ可読媒体にデータを書き込むためのデバイス、ユニバーサルシリアルバス(USB)ポート、ネットワークインターフェース、または他の出力インターフェースを含むことができる。出力インターフェース32は、たとえば、送信信号、磁気媒体、光学媒体、メモリ、フラッシュドライブ、または他のコンピュータ可読媒体など、コンピュータ可読媒体34にビデオファイルを出力する。
【０１２０】
ネットワークインターフェース54は、ネットワーク74を介してNALユニットまたはアクセスユニットを受信し、NALユニットまたはアクセスユニットを取出しユニット52を介してカプセル化解除ユニット50に提供する。カプセル化解除ユニット50は、ビデオファイルの要素を、構成要素であるPESストリームへとカプセル化解除し、PESストリームをパケット化解除して符号化データを取り出し、たとえば、ストリームのPESパケットヘッダによって示されるように、符号化データがオーディオストリームの一部かビデオストリームの一部かに応じて、符号化データをオーディオデコーダ46またはビデオデコーダ48のいずれかに送ることができる。オーディオデコーダ46は、符号化オーディオデータを復号し、復号したオーディオデータをオーディオ出力42に送り、一方でビデオデコーダ48は、符号化ビデオデータを復号し、ストリームの複数のビューを含み得る復号したビデオデータをビデオ出力44に送る。
【０１２１】
一例では、メディアデータを取り出す方法について説明し、この方法は、メディアサーバによって、メディアデータの主コンテンツを複数のピリオドに分割するステップと、メディアサーバによって、第1のピリオドと第2のピリオドとの間に副メディアコンテンツを挿入するステップであって、第1のピリオドおよび第2のピリオドが時間的連続する、挿入するステップと、メディアサーバによって、複数のピリオドの各々に関する時間インジケータをシグナリングするステップであって、時間インジケータが複数のピリオドの各々に関する1つまたは複数の時間特性を定義する、シグナリングするステップと、メディアサーバによって、複数のピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求を動的アダプティブストリーミングオーバーHTTP(DASH)クライアントから受信するステップとを含む。
【０１２２】
別の例では、メディアデータを取り出すための方法について説明し、この方法は、メディアコンテンツに関するマニフェストファイルが、そのメディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定するステップと、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択するステップと、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出すステップと、広告メディアデータを取り出すステップと、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットと関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出すステップとを含む。
【０１２３】
別の例では、メディアデータを取り出す方法について説明し、この方法は、メディアコンテンツが第1のピリオドと第2のピリオドとを含むかどうかを決定するステップと、第1のピリオドおよび第2のピリオドが連続するかどうかを決定するステップと、第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であるかどうかを決定するステップと、マニフェストファイルを形成するステップであって、マニフェストファイルが、メディアコンテンツが第1のピリオドと第2のピリオドとを含むかどうか、第1のピリオドおよび第2のピリオドが連続するかどうか、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であるかどうかの表示を含む、形成するステップとを含む。
【０１２４】
図2は、例示的なマルチメディアコンテンツ102の要素を示す概念図である。マルチメディアコンテンツ102は、マルチメディアコンテンツ64(図1)、またはメモリ62に記憶された別のマルチメディアコンテンツに対応し得る。図2の例では、マルチメディアコンテンツ102は、メディアプレゼンテーション記述(MPD)104と複数のリプレゼンテーション(表現)110A〜110Nとを含む。リプレゼンテーション110Aは、任意選択のヘッダデータ112とセグメント114A〜114N(セグメント114)とを含み、一方でリプレゼンテーション110Nは、任意選択のヘッダデータ122とセグメント124A〜124N(セグメント124)とを含む。文字Nが、便宜的に、リプレゼンテーション110A、110Nの各々内の最後の動画フラグメントを指定するために使用される。いくつかの例では、リプレゼンテーション110A、110Nの間に、異なる数の動画フラグメントが存在し得る。
【０１２５】
MPD104は、リプレゼンテーション110A〜110Nとは別個のデータ構造を含み得る。MPD104は、図1のマニフェストファイル66に対応し得る。同様に、リプレゼンテーション110A〜110Nは、図1のリプレゼンテーション68に対応する場合がある。一般に、MPD104は、コーディング特性およびレンダリングの特性、アダプテーションセット、MPD104が対応するプロファイル、テキストタイプ情報、カメラ角度情報、レーティング情報、トリックモード情報(たとえば、時間的なサブシーケンスを含むリプレゼンテーションを示す情報)、および/または離れたピリオドを取り出すための情報(たとえば、再生中のメディアコンテンツへの、ターゲットを定めた広告の挿入)のような、リプレゼンテーション110A〜110Nの特性を一般に表す、データを含み得る。
【０１２６】
ヘッダデータ112は、存在する場合、セグメント114の特性、たとえば、ランダムアクセスポイント(RAP、ストリームアクセスポイント(SAP)とも呼ばれる)の時間ロケーション、セグメント114のいずれがランダムアクセスポイントを含むか、セグメント114内のランダムアクセスポイントに対するバイトオフセット、セグメント114のユニフォームリソースロケータ(URL)、またはセグメント114の他の側面を表すことができる。ヘッダデータ122は、存在する場合、セグメント124の同様の特性を表すことができる。追加または代替として、そのような特性はMPD104内に完全に含まれ得る。
【０１２７】
セグメント114、124は、1つまたは複数のコード化ビデオサンプルを含み、ビデオサンプルの各々が、ビデオデータのフレームまたはスライスを含み得る。セグメント114のコード化ビデオサンプルの各々は、同様の特性、たとえば、高さ、幅、および帯域幅の要件を有し得る。そのような特性は、MPD104のデータによって記述され得るが、そのようなデータは図2の例には示されていない。MPD104は、本開示で説明されるシグナリングされた情報のいずれかまたはすべてが加えられた、3GPP仕様によって記述されるような特性を含み得る。
【０１２８】
セグメント114、124の各々は、固有のユニフォームリソースロケータ(URL)と関連付けられ得る。したがって、セグメント114、124の各々は、DASHのようなストリーミングネットワークプロトコルを使用して、独立して取出し可能であり得る。このようにして、クライアントデバイス40のような宛先デバイスは、HTTP GET要求を使用して、セグメント114または124を取り出すことができる。いくつかの例では、クライアントデバイス40は、HTTP部分GET要求を使用して、セグメント114または124の特定のバイト範囲を取り出すことができる。
【０１２９】
メディアプレゼンテーション記述104は、本開示の技法によれば、リプレゼンテーション110A〜110Nが対応するピリオドは後続のリプレゼンテーション(図示せず)が対応し得る別のピリオドに連続することを示し得る。したがって、リプレゼンテーション110A〜110Nを含むアダプテーションセットを他のピリオドのアダプテーションセットと関連付けられることが可能である。したがって、リプレゼンテーション110A〜110Nを含むアダプテーションセットの1つまたは複数の特性は、他のアダプテーションセットと同じであり得、この場合、そのような特性は、メディアプレゼンテーション記述104の@lang属性によって記述される言語、メディアプレゼンテーション記述104の@contentType属性によって記述されるメディア構成要素タイプ、メディアプレゼンテーション記述104の@par属性によって記述されるピクチャアスペクト比、メディアプレゼンテーション記述104の役割要素によって記述される役割プロパティ、メディアプレゼンテーション記述104のアクセス可能性要素によって記述されるアクセス可能性属性、および/またはメディアプレゼンテーション記述104の視点要素によって記述される任意の視点プロパティのうちのいずれかまたはすべてを含み得る。
【０１３０】
このようにして、クライアントデバイス40は、メディアプレゼンテーション記述104内でシグナリングされる特性に基づいて、リプレゼンテーション110A〜110Nを含むアダプテーションセットを選択し、次いで、リプレゼンテーション110A〜110Nを含むアダプテーションセットの選択に基づいて、(後続の連続的なピリオドの)他のアダプテーションセットのメディアデータを取り出すことができる。すなわち、(後続のピリオドのアダプテーションセットがリプレゼンテーション110A〜110Nを含むアダプテーションセットと関連付けられているという、メディアプレゼンテーション記述104内の表示に基づいて)そのような特性は同一であるためであるため、クライアントデバイス40は関連するアダプテーションセットの特性を評価する必要がない。
【０１３１】
図3は、本開示の技法を実装し得る別の例示的なシステム200を示すブロック図である。図4のシステム200の要素は、概して、図1の要素に対応し得る。たとえば、システム200は、広告(広告)判定サーバ208と、コンテンツ配信システム212と、クライアントデバイス206とを含む。コンテンツ配信システム212の要素は、概して、図1の図1のコンテンツ準備デバイス20および/またはサーバデバイス60に対応し得るが、クライアントデバイス206の要素は図1のクライアントデバイス40に対応し得る。いくつかの例では、クライアントデバイス206の要素は、図1の取出しユニット52に対応し得る。
【０１３２】
この例では、クライアントデバイス206は、メディアエンジン202とDASHアクセスクライアント204とを含む。コンテンツ配信システム212は、MPD生成器214と、パッケージャ(packager)216と、コンテンツ配信ネットワーク(CDN)/オリジンサーバ218とを含む。オリジンサーバ218は、MPD220と、主コンテンツ222A〜222Cと、広告データ224A〜224Cとを記憶する。
【０１３３】
メディアエンジン202、DASHアクセスクライアント204、MPD生成器214、およびパッケージャ216は、ハードウェアまたはソフトウェアで実装され得る。ソフトウェアで実装されるとき、1つまたは複数の処理ユニットおよび1つまたは複数のコンピュータ可読記憶媒体などの必須ハードウェアも提供されると推定される。コンピュータ可読記憶媒体は、ソフトウェア用の命令を記憶することができ、処理ユニットは、上で説明した機能を実行するための命令を実行することができる。
【０１３４】
単一のピリオドのプレゼンテーションを含むCDN上でオンデマンドコンテンツを指すMPDが利用可能である。MPDは、キュー(広告挿入機会)に基づいて、サーバ上のコンテンツを変更せずに、複数ピリオドを広告するために修正される。各機会に関して、広告判定サーバに対するxlinkが提供される。MPDはDASHクライアントに提供される。MPD内の各xlinkに関して、場合によっては、ユーザを対象とした、広告が追加されるかどうかをチェックすることができる。そうでない場合、ピリオドは0に分解される。そうである場合、他のコンテンツが追加される。DASHクライアントはコンテンツを連続して再生し、ゼロに分解される場合、メディアエンジンは新しく初期化されない。
【０１３５】
図3のMPD生成器214は、2つ以上のピリオドが連続することを示すように構成され得る。したがって、MPD生成器214は、本開示の技法に従って、MPD(または、他のマニフェストファイル)内で、上で論じたように、関連するピリオドのアダプテーションセットを示すことができる。したがって、クライアントデバイス206は、MPD生成器214によって生成されたMPD内でシグナリングされる第1のピリオドのアダプテーションセットの特性に基づいて、あるピリオドのアダプテーションセットと別の連続するピリオドの関連するアダプテーションセットとを選択することができる。
【０１３６】
このようにして、コンテンツ配信システム212およびCDN/オリジンサーバ218は、メディアデータを送るためのデバイスの一例を表し、デバイスは、メディアデータを記憶するように構成されたメモリと、1つまたは複数のハードウェアベースのプロセッサとを含み、1つまたは複数のハードウェアベースのプロセッサは、メディアデータの主コンテンツを時間的に連続する第1のピリオドと第2のピリオドとを含む複数のピリオドに分割することと、第1のピリオドと第2のピリオドとの間に副メディアコンテンツを挿入することと、複数のピリオドの各々に関する時間インジケータをシグナリングすることであって、時間インジケータが複数のピリオドの各々に関する1つまたは複数の時間特性を定義する、シグナリングすることと、複数のピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求を動的アダプティブストリーミングオーバーHTTP(DASH)クライアントからの受信することとを行うように構成される。
【０１３７】
同様に、クライアントデバイス206は、メディアデータを取り出すためのデバイスの一例を表し、デバイスは、メディアデータを記憶するように構成されたメモリと、1つまたは複数のハードウェアベースのプロセッサとを含み、1つまたは複数のハードウェアベースのプロセッサは、メディアコンテンツに関するマニフェストファイルが、そのメディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定し、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択し、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出し、広告メディアデータを取り出し、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットと関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出して、取り出したメディアデータをメモリに記憶するように構成される。
【０１３８】
図4は、本開示の1つまたは複数の技法によるメディアデータを送る方法を示すフロー図である。この例では、メディアサーバは、メディアデータの主コンテンツを複数のピリオドに分割することができる(300)。メディアサーバは、第1のピリオドと第2のピリオドの間に副メディアコンテンツを挿入することができ(302)、この場合、第1のピリオドおよび第2のピリオドは時間的に連続する。副メディアコンテンツは、たとえば、実質的に主メディアコンテンツと同じように提示されるべき広告メディアコンテンツであり得る。メディアサーバは、複数のピリオドの各々に関する時間インジケータをシグナリングすることができ(304)、この場合、時間インジケータは、複数のピリオドの各々に関する1つまたは複数の時間特性を定義する。メディアサーバは、メディアストリームを取り出すための要求をたとえば、動的アダプティブストリーミングオーバーHTTP(DASH)クライアントから受信することができる(306)。メディアストリームに対する要求は、複数のピリオドと、副メディアコンテンツと、時間インジケータとを含むメディアストリームを取り出すための要求に対応し得る。
【０１３９】
図5は、本開示の1つまたは複数の技法によるメディアデータを取り出す方法を示すフロー図である。この例では、デバイスはマニフェストファイルの特性を決定する(310)。たとえば、デバイスは、メディアコンテンツに関するマニフェストファイルが、メディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定する。デバイスは第1のアダプテーションセットを選択することができる(312)。一例では、第1のアダプテーションセットは第1のピリオド内にあり得、選択は、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づき得る。デバイスは、次いで、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出すことができる(314)。デバイスは、次いで、広告メディアデータを取り出すことができる(316)。さらに、デバイスは、第1のアダプテーションセットの選択に基づいて、第2のアダプテーションセットのメディアデータを取り出すことができる(318)。第2のアダプテーションセットは第2のピリオド内にあり得、マニフェストファイルは、第2のアダプテーションセットが第1のアダプテーションセットと関連付けられることを示し得る。
【０１４０】
図6は、本開示の1つまたは複数の技法によるメディアデータを送る方法を示すフロー図である。この例では、デバイスはメディアコンテンツが第1のピリオドと第2のピリオドとを含むかどうかを決定することができる(320)。デバイスは、第1のピリオドおよび第2のピリオドが連続するかどうかを決定することができる(322)。デバイスは、たとえば、第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータがに利用可能であるかどうかを決定することができる(324)。デバイスはマニフェストファイルを形成することができ(326)、マニフェストファイルは、メディアコンテンツが第1のピリオドと第2のピリオドとを含むかどうか、第1のピリオドおよび第2のピリオドが連続するかどうか、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であるかどうかの表示を含む。
【０１４１】
図7は、メディアサーバによって本開示のいくつかの技法を実行する例示的な方法を示すフローチャートである。例示的な方法は、メディアサーバによって、メディアデータの主コンテンツを第1のピリオドと第2のピリオドとを含む複数のピリオドに分割するステップであって、第1のピリオドおよび第2のピリオドが時間的に連続する、分割するステップを含む(350)。この例示的な方法はまた、メディアサーバによって、第1のピリオドと第2のピリオドとの間に挿入するために副メディアコンテンツが利用可能であることを示す情報をシグナリングするステップを含む(352)。この例示的な方法は、メディアサーバによって、複数のピリオドの各々に関する時間インジケータをシグナリングするステップであって、時間インジケータが複数のピリオドの各々に関する1つまたは複数の時間特性を定義する、シグナリングするステップをさらに含む(354)。
【０１４２】
図8は、クライアントデバイスによって本開示のいくつかの技法を実行する例示的な方法を示すフローチャートである。この例示的な方法は、メディアコンテンツに関するマニフェストファイルが、メディアコンテンツが第1のピリオドと第2のピリオドとを含むことを示すこと、マニフェストファイルが第1のピリオドおよび第2のピリオドが連続することを示すこと、および第1のピリオドと第2のピリオドとの間に挿入するために広告メディアデータが利用可能であることを決定するステップを含む(370)。この例示的な方法はまた、第1のアダプテーションセットに関してシグナリングされた特性に少なくとも部分的に基づいて、第1のピリオド内の第1のアダプテーションセットを選択するステップを含む(372)。この例示的な方法は、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットのメディアデータを取り出すステップをさらに含む(374)。最終的に、この例示的な方法は、第1のアダプテーションセットの選択に基づいて、第1のアダプテーションセットと関連付けられた第2のピリオド内の第2のアダプテーションセットのメディアデータを取り出すステップを含む(376)。
【０１４３】
いくつかの例では、クライアントデバイスは、上で説明した第1の例、第2の例、および第3の例のうちのいずれかまたはすべての技法を実行するように構成され得ることを理解されたい。たとえば、異なるコンテンツ配信ネットワークがターゲット広告挿入のための様々な機構をサポートすることができ、クライアントデバイスは、第1の例、第2の例、および/または第3の例のうちのいずれかまたはすべての技法を実装することができる。別の例では、コンテンツ配信ネットワークは、上で説明した第1の例、第2の例、および/または第3の例の技法うちのいずれかまたはすべてをサポートすることができる。さらに、上で説明した第1の例、第2の例、および/または第3の例の技法は任意の組合せで一緒に実行され得る。
【０１４４】
1つまたは複数の例において、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶され、またはコンピュータ可読媒体を介して送信されてよく、かつハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含むこと、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含むことがある。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号または搬送波などの通信媒体に対応する場合がある。データ記憶媒体は、本開示で説明した技法を実装するための命令、コード、および/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでもよい。
【０１４５】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形式の所望のプログラムコードを記憶するために使用され、コンピュータによってアクセスされ得る任意の他の媒体を含んでもよい。また、任意の接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに非一時的な有形記憶媒体を指すことを理解されたい。ディスク(disk)およびディスク(disc)は、本明細書において使用されるときに、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記のものの組合せも、コンピュータ可読媒体の範囲内に含まれ得る。
【０１４６】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積またはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行されてもよい。したがって、本明細書で使用される「プロセッサ」という用語は、いずれかの前述の構造、または本明細書で説明する技術の実装に適した任意の他の構造のいずれかを指す場合がある。さらに、いくつかの態様では、本明細書で説明する機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内に提供されてもよく、あるいは複合コーデックに結合されてもよい。また、技術は、1つまたは複数の回路または論理要素において完全に実装されてもよい。
【０１４７】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットを説明したが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。そうではなくて、上で説明されたように、様々なユニットは、コーデックハードウェアユニットにおいて結合されてよく、または適切なソフトウェアおよび/もしくはファームウェアとともに、前述のような1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合によって提供されてよい。
【０１４８】
様々な例を説明してきた。これらおよび他の例は以下の特許請求の範囲内に入る。
【符号の説明】
【０１４９】
10  システム
20  コンテンツ準備デバイス
22  オーディオソース
24  ビデオソース
26  オーディオエンコーダ
28  ビデオエンコーダ
30  カプセル化ユニット
32  出力インターフェース
40  クライアントデバイス
42  オーディオ出力
44  ビデオ出力
46  オーディオデコーダ
48  ビデオデコーダ
50  カプセル化解除ユニット
52  取出しユニット
54  ネットワークインターフェース
60  サーバデバイス
62  記憶媒体
64  マルチメディアコンテンツ
66  マニフェストファイル
68  リプレゼンテーション
68A〜68N  リプレゼンテーション
70  要求処理ユニット
72  ネットワークインターフェース
74  ネットワーク
102  マルチメディアコンテンツ
104  メディアプレゼンテーション記述(MPD)
110A〜110N  リプレゼンテーション
112  ヘッダデータ
114  セグメント
114A〜114N  セグメント
122  ヘッダデータ
124  セグメント
124A〜124N  セグメント
200  システム
202  メディアエンジン
204  DASHアクセスクライアント
206  クライアントデバイス
208  広告(広告)判定サーバ
212  コンテンツ配信システム
214  MPD生成器
216  パッケージャ
218  コンテンツ配信ネットワーク(CDN)/オリジンサーバ
220  MPD
222A〜222C  主コンテンツ
224A〜224C  広告データ
【図１】
0006474830.tif 000003
【図２】
0006474830.tif 000004
【図３】
0006474830.tif 000005
【図４】
0006474830.tif 000006
【図５】
0006474830.tif 000007
【図６】
0006474830.tif 000008
【図７】
0006474830.tif 000009
【図８】
0006474830.tif 000010