(57)【特許請求の範囲】
【請求項１】
メディアストリームを復号化する装置であって、当該装置は、
メモリモジュールと、
前記メモリモジュールに結合されたプロセッサモジュールと
を有し、
前記メモリモジュールは、前記プロセッサによって実行されたときに、当該装置に、
セグメントシグナリング情報と複数のセグメントとを有するメディアストリームを受信することであり、前記複数のセグメントは、暗号化されたセグメント及び暗号化されていないセグメントを有し、前記セグメントシグナリング情報は、少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループを特定するものを有する、受信することと、
前記メディアストリーム内の前記セグメントシグナリング情報を用いて、少なくとも１つのセグメントグループを特定することと、
前記少なくとも１つのセグメントグループに関する少なくとも１つのセグメント復号化アルゴリズムを特定することと、
前記少なくとも１つのセグメントグループに関する少なくとも１つの復号化キーを特定することと、
前記少なくとも１つのセグメント復号化アルゴリズムと前記少なくとも１つの復号化キーとを用いて、前記少なくとも１つのセグメントグループ内の各暗号化されたセグメントを復号化することと、
を実行させる命令を格納し、
前記セグメントシグナリング情報は、
一連の正数及び負数であり、正数ｎは、ｎ個の隣接する暗号化されたセグメントからなるセグメントグループを指し示し、負数−ｍは、ｍ個の暗号化されていないセグメントからなるセグメントグループを指し示す、一連の正数及び負数
を有する、
装置。
【請求項２】
前記セグメントシグナリング情報は、メディアストリーム初期化セグメント内に含まれない、請求項１に記載の装置。
【請求項３】
少なくとも１つのセグメントグループを特定することは、第１のセグメントグループと第２のセグメントグループとを特定することを有し、前記少なくとも１つのセグメント復号化アルゴリズムを特定することは、前記第１のセグメントグループ用の第１のセグメント復号化アルゴリズムと、前記第２のセグメントグループ用の第２のセグメント復号化アルゴリズムとを特定することを有し、前記第１のセグメント復号化アルゴリズムと前記第２のセグメント復号化アルゴリズムとは異なる、請求項１又は２に記載の装置。
【請求項４】
少なくとも１つのセグメントグループを特定することは、第１のセグメントグループと第２のセグメントグループとを特定することを有し、前記少なくとも１つの復号化キーを特定することは、前記第１のセグメントグループ用の第１の復号化キーと、前記第２のセグメントグループ用の第２の復号化キーとを特定することを有し、前記第１の復号化キーと前記第２の復号化キーとは異なる、請求項１又は２に記載の装置。
【請求項５】
前記少なくとも１つのセグメントグループに関する少なくとも１つの初期化ベクトルを特定することを更に有し、前記復号化のステップは更に前記少なくとも１つの初期化ベクトルを用いる、請求項１乃至４の何れか一項に記載の装置。
【請求項６】
前記メディアストリームは更に初期化ベクトルテンプレートを有し、該初期化ベクトルテンプレートが、初期化ベクトル生成用のテンプレートを規定する、請求項５に記載の装置。
【請求項７】
暗号化されたメディアストリームを送信する装置であって、当該装置は、
メモリモジュールと、
前記メモリモジュールに結合されたプロセッサモジュールと
を有し、
前記メモリモジュールは、前記プロセッサによって実行されたときに、当該装置に、
複数の暗号化されたセグメント及び暗号化されていないセグメントと、
セグメントシグナリング情報であり、
少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループ、
少なくとも１つのセグメント復号化アルゴリズム、
少なくとも１つの復号化キー、及び
少なくとも１つの初期化ベクトルであり、
前記少なくとも２つのセグメントグループの各々の暗号化されたセグメントが、前記少なくとも１つの復号化アルゴリズム、前記少なくとも１つの復号化キー、及び前記少なくとも１つの初期化ベクトルを用いて復号化されることができるもの、
を特定するのに十分な情報を有するセグメントシグナリング情報と、
を有するメディアストリームを送信させる命令を格納し、
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、
一連の正数及び負数であり、正数ｎは、ｎ個の隣接する暗号化されたセグメントからなるセグメントグループを指し示し、負数−ｍは、ｍ個の暗号化されていないセグメントからなるセグメントグループを指し示す、一連の正数及び負数
を有する、
装置。
【請求項８】
前記少なくとも１つの初期化ベクトルを特定するのに十分な前記情報は、ユニフォームリソースロケータ（ＵＲＬ）を有する、請求項７に記載の装置。
【請求項９】
前記少なくとも１つの初期化ベクトルを特定するのに十分な前記情報は更に、初期化ベクトル生成用の初期化ベクトルテンプレートを有し、且つ初期化ベクトルを生成するためのサードパーティとの連携を可能にするのに十分である、請求項７に記載の装置。
【請求項１０】
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、暗号化されたセグメントを有する少なくとも２つのセグメントグループを特定するのに十分であり、少なくとも１つの復号化キーを特定するのに十分な前記情報は、前記複数の暗号化されたセグメントを復号化するための少なくとも２つの復号化キーを特定するのに十分であり、各復号化キーが、暗号化されたセグメントを有する１つのセグメントグループと関連付けられる、請求項７乃至９の何れか一項に記載の装置。
【請求項１１】
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、暗号化されたセグメントを有する少なくとも２つのセグメントグループを特定するのに十分であり、少なくとも１つのセグメント復号化アルゴリズムを特定するのに十分な前記情報は、少なくとも２つのセグメント復号化アルゴリズムを特定するのに十分であり、各セグメント復号化アルゴリズムが、暗号化されたセグメントを有する１つのセグメントグループと関連付けられる、請求項１０に記載の装置。
【請求項１２】
前記セグメントシグナリング情報は、メディアストリーム初期化セグメント内に含まれない、請求項７乃至１１の何れか一項に記載の装置。
【請求項１３】
メディアストリームを復号化する方法であって、
複数の暗号化されたセグメント及び暗号化されていないセグメントを有するメディアストリームを受信することであり、前記メディアストリームは更に、
少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループを特定し、どのセグメントグループも、暗号化されたセグメント及び暗号化されていないセグメントの双方ともは有さず、
少なくとも１つのセグメント復号化アルゴリズムを特定し、
前記暗号化されたセグメントに関する少なくとも１つの復号化キーを特定し、且つ
前記暗号化されたセグメントを復号化する、
のに十分なセグメントシグナリング情報を有する、受信することと、
暗号化されたセグメントを有する少なくとも１つのセグメントグループを特定することと、
少なくとも１つのセグメント復号化アルゴリズムを特定することと、
少なくとも１つの復号化キーを特定することと、
前記少なくとも１つのセグメント復号化アルゴリズムと前記少なくとも１つの復号化キーとを用いて、暗号化されたセグメントを有する少なくとも１つのセグメントグループを復号化することと、
を有し、
前記セグメントシグナリング情報は、一連の正数及び負数を有し、正数ｎは、ｎ個の隣接する暗号化されたセグメントからなるセグメントグループを指し示し、負数−ｍは、ｍ個の暗号化されていないセグメントからなるセグメントグループを指し示す、
方法。
【請求項１４】
前記セグメントシグナリング情報は更に、サードパーティに初期化ベクトルをクエリーするのに十分な情報を有し、当該方法は更に、
前記サードパーティに前記初期化ベクトルをクエリーすることと、
前記初期化ベクトルを受信することと、
前記初期化ベクトルを結び付けることと
を有し、
前記暗号化されたセグメントグループを復号化することのステップは更に前記初期化ベクトルを用いることを有する、
請求項１３に記載の方法。
【請求項１５】
前記セグメントシグナリング情報は更に、初期化ベクトル生成用のテンプレートを規定する初期化ベクトルテンプレートを有する、請求項１４に記載の方法。
【請求項１６】
前記メディアストリームは更に、第２のセグメント復号化アルゴリズムを特定するのに十分な情報を有し、当該方法は更に、
第２のセグメント復号化アルゴリズムを特定することと、
暗号化されたセグメントを有する第２のセグメントグループを特定することと、
前記第２のセグメント復号化アルゴリズムを用いて、前記第２のセグメントグループを復号化することと
を有する、請求項１３乃至１５の何れか一項に記載の方法。
【請求項１７】
前記セグメントシグナリング情報は、メディアストリーム初期化セグメント内に含まれない、請求項１３に記載の方法。
【請求項１８】
メディアストリームを送信することを有し、前記メディアストリームは、
複数の暗号化されたセグメント及び暗号化されていないセグメントと、
セグメントシグナリング情報であり、
少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループ、
少なくとも１つのセグメント復号化アルゴリズム、
少なくとも１つの復号化キー、及び
少なくとも１つの初期化ベクトルであり、
前記少なくとも２つのセグメントグループの各々の暗号化されたセグメントが、前記少なくとも１つの復号化アルゴリズム、前記少なくとも１つの復号化キー、及び前記少なくとも１つの初期化ベクトルを用いて復号化されることができるもの、
を特定するのに十分な情報を有するセグメントシグナリング情報と、
を有し、
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、
一連の正数及び負数であり、正数ｎは、ｎ個の隣接する暗号化されたセグメントからなるセグメントグループを指し示し、負数−ｍは、ｍ個の暗号化されていないセグメントからなるセグメントグループを指し示す、一連の正数及び負数
を有する、
方法。
【請求項１９】
前記少なくとも１つの初期化ベクトルを特定するのに十分な前記情報は、ユニフォームリソースロケータ（ＵＲＬ）を有する、請求項１８に記載の方法。
【請求項２０】
前記少なくとも１つの初期化ベクトルを特定するのに十分な前記情報は更に、初期化ベクトル生成用の初期化ベクトルテンプレートを有し、且つ初期化ベクトルを生成するためのサードパーティとの連携を可能にするのに十分である、請求項１８に記載の方法。
【請求項２１】
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、暗号化されたセグメントを有する少なくとも２つのセグメントグループを特定するのに十分であり、少なくとも１つの復号化キーを特定するのに十分な前記情報は、前記複数の暗号化されたセグメントを復号化するための少なくとも２つの復号化キーを特定するのに十分であり、各復号化キーが、暗号化されたセグメントを有する１つのセグメントグループと関連付けられる、請求項１８乃至２０の何れか一項に記載の方法。
【請求項２２】
少なくとも２つのセグメントグループを特定するのに十分な前記情報は、暗号化されたセグメントを有する少なくとも２つのセグメントグループを特定するのに十分であり、少なくとも１つのセグメント復号化アルゴリズムを特定するのに十分な前記情報は、少なくとも２つのセグメント復号化アルゴリズムを特定するのに十分であり、各セグメント復号化アルゴリズムが、暗号化されたセグメントを有する１つのセグメントグループと関連付けられる、請求項２１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、適応ストリーミングのためのシステム及び方法に関する。
【背景技術】
【０００２】
本出願は、Ｘｉｎ  Ｗａｎｇ等によって２０１２年４月２６日に出願された“System  and  Method  for  Signaling  Segment  Encryption  and  Key  Derivation  for  Adaptive  Streaming”と題する米国仮出願第６１／６３８９６３号の優先権を主張するものであり、ここにそれを援用する。
【０００３】
メディアコンテンツプロバイダ又は配信業者は、加入者又はユーザに、様々なメディアコンテンツを、例えばテレビジョン、ノートブックコンピュータ、及びモバイルハンドセットなどの異なる装置に適した異なる暗号化スキーム及び／又は符号化スキームを用いて配信することがある。メディアコンテンツプロバイダは、複数の、メディアエンコーダ及び／又はデコーダ（コーデック）、メディアプレーヤ、ビデオフレームレート、空間解像度、ビットレート、ビデオフォーマット、又はこれらの組み合わせをサポートし得る。メディアコンテンツの断片（ピース）が、ソース表現又はオリジナル表現から、異なるユーザ装置に適する様々な他の表現へと変換され得る。
【０００４】
メディアコンテンツの断片は、メディアプレゼンテーション記述（media  presentation  description；ＭＰＤ）と複数のセグメントとを有し得る。ＭＰＤは、そのメディアコンテンツに関する情報を記述するようにプログラムされる複数の要素（エレメント）及び属性（アトリビュート）を有し得る。拡張マークアップ言語（ＸＭＬ）プログラミングにおいて、要素は、＜要素名＞によって指し示される開始タグと、要素コンテンツと、＜／要素名＞によって指し示される終了タグとを含む３つの部分を有し得る。また、要素は、１つ以上の属性及び／又は子要素を包含し得る。属性は属性名及び属性値を有し得る。ＭＰＤは、メディアコンテンツ、例えば、その様々な表現（以下にて定義）、ユニフォームリソースロケータ（ＵＲＬ）アドレス及びその他の特性など、を記述するＸＭＬファイル又はＸＭＬ文書とし得る。例えば。メディアコンテンツは、幾つかのメディアコンポーネント（例えば、オーディオ、ビデオ、及びテキスト）を有することができ、それらの各々が、ＭＰＤ内で規定される異なる特性を有し得る。各メディアコンポーネントは、実際のメディアコンテンツの部分を収容する複数のセグメントを有し、それらのセグメントが、単一のファイルに集合的に格納され、あるいは複数のファイルに個別に格納され得る。各セグメントは、メディアコンテンツのうちの、所定のバイトサイズ（例えば、１０００バイト）又は再生時間区間（例えば、２秒若しくは５秒）を収容し得る。セグメントは、ＭＰＤを介してアドバタイズされるＵＲＬを用いてダウンロードされることが可能なエンティティである最小個別アドレス可能データユニットを有し得る。
【０００５】
アプリケーションに応じて、メディアコンテンツは様々な階層に分割されることがある。例えば、メディアコンテンツは、１つの期間がセグメントよりも相対的に長い時間区間であるような複数の期間を有し得る。例えば、或る１つのテレビジョン番組が、幾つかの長さ２分のコマーシャル期間によって隔てられた、幾つかの長さ５分の番組期間に分割され得る。さらに、或る１つの期間が、１つ又は複数のアダプテーションセット（ＡＳ）を有し得る。ＡＳは、１つ又は複数のメディアコンポーネントについての情報と、その／それらの様々な符号化された表現とを提供し得る。表現は、例えば、多重化されていない２．５メガビット毎秒（Ｍｂｐｓ）７２０画素（ｐ）アドバンストビデオコーディング（ＡＶＣ）ビデオを含む国際標準化機構（ＩＳＯ）ベースメディアファイルフォーマット（ＩＳＯ−ＢＭＦＦ）、及び、複数の異なる言語の９６キロビット毎秒（Ｋｂｐｓ）ＭＰＥＧ−４（Moving  Picture  Experts  Group-4）アドバンストオーディオコーディング（ＡＡＣ）オーディオ用の別のＩＳＯ−ＢＭＦＦ表現といった、そのコンポーネントのアセット全体又はサブセットの、単一の符号化されたバージョンとして定義され得る。例えば、或るＡＳが、メディアコンテンツの、複数の異なるビットレートのビデオコンポーネントを包含し、別のＡＳが、同じメディアコンテンツの、複数の異なるビットレートのオーディオコンポーネントを包含し得る。表現は、他の表現とはビットレート、解像度、チャンネル数、若しくはその他の特性、又はこれらの組み合わせにより異なった、メディアコンテンツの符号化された選択肢であるとし得る。各表現は、時系列でメディアコンテンツをぶつ切りにしたもの（チャンク）である複数のセグメントを有する。また、１つのセグメントを複数の部分にてダウンロードすることを可能にするために、各サブセグメントが特定の期間及び／又はバイトサイズを有するサブセグメントが使用されることがある。当業者は、メディアコンテンツを配信するために使用可能な様々な階層を理解するであろう。
【０００６】
適応ストリーミングにおいて、メディアコンテンツをユーザ装置に配信するとき、ユーザ装置は、例えばネットワーク状態、装置能力、及びユーザ選択などの多様な要因に基づいて、適切なセグメントを動的に選択し得る。適応ストリーミングは、例えばダイナミックアダプティブストリーミング・オーバー・ハイパーテキスト転送プロトコル（ＨＴＴＰ）（ＤＡＳＨ）、ＨＴＴＰライブストリーミング（ＨＬＳ）、又はインターネット情報サービス（ＩＩＳ）スムーズストリーミングなど、実装済み又は開発中の様々な技術又は規格を含み得る。例えば、ユーザ装置は、再生中に失速又は再バッファリングを生じさせずに再生に間に合うようにダウンロードされることができる可能な限り高い品質（例えば、解像度又はビットレート）のセグメントを選択し得る。故に、ユーザ装置は、そのメディアコンテンツ再生を、変わりゆくネットワーク状態に途切れなく適応させ得る。メディアコンテンツに対する改ざん、攻撃、及び／又は不正アクセスを防止するため、メディアコンテンツのセグメントは、ここでは暗号化スキーム又は符号化スキームとして参照する認証スキームによって保護される必要があり得る。
【０００７】
例えばＭＰＥＧ（Moving  Picture  Experts  Group）−ＤＡＳＨ規格などの適応ストリーミング技術において、セグメントは、例えば、ペイ・パー・ビュー方式のビデオストリームモデルを提供するために、認証スキームの部分として暗号化あるいは符号化され得る。一例は、ＩＳＯ／ＩＥＣ２３００９−４という番号で“Dynamic  Adaptive  Streaming  over  HTTP  (DASH)―Part  4：Segment  Encryption  and  Authentication”（ＩＳＯ／ＩＥＣ  ２３００９−４）というタイトルの規格案に規定されるセグメント認証スキームであり、ここにそれを援用する。なお、ＩＥＣは国際電気標準会議（International  Electrotechnical  Commission；ＩＥＣ）を表す。ＭＰＥＧストリーム全体を符号化することは、必要以上に大きいストリームを生成することになり、それ相応に大きい処理能力を必要とするか遅延をもたらすかになり得るので、結果として、一部のプロトコルは一部のセグメントのみを符号化している。従来からの取り組みは、例えば偶数セグメントを符号化して奇数セグメントは符号化しないままにするといった、交互スキームを用いて選択的にセグメントを符号化している。ストリーム全体に満たないものを符号化してはいるとはいえ、この取り組みは、必要以上に多くのセグメントを符号化してしまい得る。従来からの取り組みは、さらに、ストリームの符号化に関して単一アルゴリズム手法に頼っており、これは、例えば第１のソースからの娯楽コンテンツ及び第２のソースからのコマーシャルといった複数の異なるソースからのコンテンツを、単一のＭＰＥＧストリームへと結合することを可能にしない。従来からの取り組みは、さらに、ストリームの符号化解除又は暗号解読の情報を備えた初期化ベクトルを含んでおり、初期化ベクトルのレイトバインディングを受け入れていない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
適応ストリーミングのためのシステム及び方法を提供する。
【課題を解決するための手段】
【０００９】
一実施形態において、本開示は、メディアストリームを復号化する装置を含み、当該装置は、メモリモジュールと、前記メモリモジュールに結合されたプロセッサモジュールとを有し、前記メモリモジュールは、前記プロセッサによって実行されたときに、当該装置に、セグメントシグナリング情報と複数のセグメントとを有するメディアストリームを受信することであり、前記複数のセグメントは、符号化されたセグメント及び符号化されていないセグメントを有し、前記セグメントシグナリング情報は、少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループを特定するものを有する、受信することと、前記メディアストリーム内の前記セグメントシグナリング情報を用いて、少なくとも１つのセグメントグループを特定することと、前記少なくとも１つのセグメントグループに関する少なくとも１つのセグメント復号化アルゴリズムを特定することと、前記少なくとも１つのセグメントグループに関する少なくとも１つの復号化キーを特定することと、前記少なくとも１つのセグメント復号化アルゴリズムと前記少なくとも１つの復号化キーとを用いて、前記少なくとも１つのセグメントグループ内の各符号化されたセグメントを復号化することと、を実行させる命令を格納する。
【００１０】
他の一実施形態において、本開示は、符号化されたメディアストリームを送信する装置を含み、当該装置は、メモリモジュールと、前記メモリモジュールに結合されたプロセッサモジュールとを有し、前記メモリモジュールは、前記プロセッサによって実行されたときに、当該装置に、複数の符号化されたセグメント及び符号化されていないセグメントと、セグメントシグナリング情報であり、少なくとも１つのセグメントを各々が有する少なくとも２つのセグメントグループ、少なくとも１つのセグメント復号化アルゴリズム、少なくとも１つの復号化キー、及び少なくとも１つの初期化ベクトルであり、前記少なくとも２つのセグメントグループの各々の符号化されたセグメントが、前記少なくとも１つの復号化アルゴリズム、前記少なくとも１つの復号化キー、及び前記少なくとも１つの初期化ベクトルを用いて復号化されることができるもの、を特定するのに十分な情報を有するセグメントシグナリング情報と、を有するメディアストリームを送信させる命令を格納する。
【００１１】
他の一実施形態において、本開示は、メディアストリームを復号化する方法を含み、当該方法は、複数の符号化されたセグメント及び符号化されていないセグメントを有するメディアストリームを受信することであり、前記メディアストリームは更に、少なくとも１つのセグメントを各々が有する複数の少なくとも２つのセグメントグループを特定し、どのセグメントグループも、符号化されたセグメント及び符号化されていないセグメントの双方ともは有さず、少なくとも１つのセグメント復号化アルゴリズムを特定し、前記符号化されたセグメントに関する少なくとも１つの復号化キーを特定し、且つ前記符号化されたセグメントを復号化する、のに十分なセグメントシグナリング情報を有する、受信することと、符号化されたセグメントを有する少なくとも１つのセグメントグループを特定することと、少なくとも１つのセグメント復号化アルゴリズムを特定することと、少なくとも１つの復号化キーを特定することと、前記少なくとも１つのセグメント復号化アルゴリズムと前記少なくとも１つの復号化キーとを用いて、符号化されたセグメントを有する少なくとも１つのセグメントグループを復号化することとを有する。
【図面の簡単な説明】
【００１２】
本開示の、より完全なる理解のため、同様の部分を同様の参照符号が表す添付図面及び詳細説明に関連して、ここで以下の簡単な説明を参照しておく。
【図１】メディアストリーミングスキームの一実施形態を例示する図である。
【図２】ネットワーク要素の一実施形態の模式図である。
【図３】セグメント及びコンテンツ保護エンコーディングを生成するスキームの一実施形態の模式図である。
【図４】図３に記載される実施形態の下でデータを伝送するためのプロトコル図である。
【図５】セグメント及びコンテンツ保護エンコーディングを生成するスキームの一実施形態の模式図である。
【図６】図５に記載される実施形態の下でデータを伝送するためのプロトコル図である。
【発明を実施するための形態】
【００１３】
最初に、理解されるべきことには、１つ以上の実施形態の例示的な実装を以下にて提示するが、開示されるシステム及び／又は方法は、現に知られていようとなかろうと、あるいは現に存在していようとなかろうと、様々な技術を用いて実装され得る。本開示は決して、ここに図示して記述される代表的な設計及び実装を含めて、以下に例示される実装、図面及び技術に限定されるべきものでなく、添付の請求項の範囲及びそれらの完全なる均等範囲の中で変更され得るものである。
【００１４】
ここに、例えばＭＰＥＧ−ＤＡＳＨストリームといった適応ストリーミング環境におけるコンテンツ保護のための順応性あるシグナリング（信号伝達）機構に関するシステム及び方法を開示する。例えば、本開示は、初期化ベクトルのレイトバインディングを受け入れるための新規な取り組みを含む。また、本開示は、メディアストリーム内の暗号化／符号化セグメント又は非暗号化／非符号化セグメントを、ストリーミングクライアントに通知する新規な取り組みを含む。さらに、本開示はまた、メディアストリーム当たり複数の暗号化／符号化アルゴリズムを利用するための取り組みを含む。本開示は更に、ＭＰＥＧ−ＤＡＳＨ規格の発展に関して、柔軟、効率的且つコンパクトな手法で、どのセグメントが暗号化される（そして、一般に、符号化される）かを信号伝達するシステム及び方法を含む。
【００１５】
従来からのセグメント暗号保護スキームは、セグメント全体の保護が必要とされるときに使用され得る標準的な暗号化及びキーマッピングの方法を規定している。そのようなスキームは、セグメントをビットの集合として取り扱い且つセグメント全体に暗号化を適用することによって機能し得る。暗号化されたセグメントの範囲を特定するため、及びＤＡＳＨ  ＭＰＤ内に必要とされる関連キー（鍵）及び初期化ベクトルを指定するため、定義が提供され得る。例えば、ＩＳＯ／ＩＥＣ  ＣＤ  ２３００９−４の第５．１．２．２節は、以下のセマンティックス表を提供している。
【００１６】
【表１】
0005923661.tif 000002
特段に定義しない限り、ここで使用される用語は、ＩＳＯ／ＩＥＣ  ＣＤ  ２３００９−４のセマンティックス及び定義を用いて定義され得る。
【００１７】
例えば上述のものなどの従来からのスキームにおいて、暗号化は、@startSegment及び@endSegment（又は、これらの暗黙値）の双方によって信号伝達される。初期化ベクトルが存在する場合、これは、属性@IVとして伝えられる。メディアセグメント暗号化／解読キー情報は、CryptoPeriod要素の属性@keyURLとして、あるいは@keyURLTemplate属性を介して提供される。コンテンツキーを得るために、各CryptoRepiodに対してＨＴＴＰＳプロトコルが起動される必要がある。
【００１８】
このような従来スキームは、暗号化されるセグメントの全てにわたって同じ初期化ベクトル（ＩＶ）／キーの対を用いて、立て続けのセグメントの“範囲”又は“チャンク”上で暗号化を実行し得る。暗号化されるセグメントを交互にするために、例えば、表現内の奇数番号のセグメントのみを暗号化するために、複数のCryptoPeriod要素が必要とされて、ＭＰＤサイズ及び始動時間を増大させ得る。ＭＰＤ内でＩＶ要素及びｋｅｙＵＲＬ要素を伝達することは、ＭＰＤサイズを更に増大させ得る。規格内で例えばマーリンファイルフォーマット、セキュアリアルタイムプロトコル等々の“ハードコードされた”セグメント暗号化フォーマットの使用を規定することは、従来スキームを、順応性がなく、異なるキー長さ又はその他のモードを使用する暗号化フォーマットに対応することができないものにし得る。
【００１９】
本開示は、例えばＭＰＥＧ−ＤＡＳＨストリームといった適応ストリーミング環境において、ＭＰＤを拡張して順応性及びコンテンツ保護のシグナリング機構を提供するために使用され得る要素を導入する。導入されるシステム及び方法を表現するセマンティックスの例（更に後述する）は、以下の表に記述されたものを含む。
【００２０】
【表２】
0005923661.tif 000003
【００２１】
【表３】
0005923661.tif 000004
先ず、@segmentEncryptionFlag属性及び@segmentEncryptionSignaling属性を参照するに、@segmentEncryptionFlag属性は、CryptoPeriod要素、又は、例えばＤＡＳＨ  ＭＰＤ内のContentProtection要素といったセグメント暗号化を信号伝達するのに必要な何らかの要素、に導入され得る。@segmentEncryptionFlag値は、例えばベース６４フォーマットや１６進フォーマットなどで符号化されるような２進列を表現し得る。この列内のｉ番目のビットの０−１値は、CryptoPeriod内のｉ番目のセグメントが符号化又は暗号化されているかを信号伝達し、例えば、符号化又は暗号化されていない場合に０を使用し、符号化又は暗号化されている場合に１を使用する。例えば、ＡＡＡＡ（１６進数）＝１０１０１０１０１０１０１０１０（２進数）なる値は、奇数番号のセグメント１，３，５，７，９，１１，１３，１５が暗号化され、偶数番号のセグメント２，４，６，８，１０，１２，１４が暗号化されていないことを指し示すセグメントマップを提供することができ、５ＥＢ５２（１６進数）＝０１０１１１１０１０１１０１０１００１０（２進数）なる値は、セグメント２，４，５，６，７，９，１１，１２，１４，１６，１９が暗号化され、セグメント１−２０のうちのその他が暗号化されていないことを指し示すことができる。
【００２２】
@segmentEncryptionSignaling属性は、@segmentEncryptionFlagと同様の機能を、異なる手法で果たす。@segmentEncryptionSignaling属性は、暗号化されたセグメント及び／又は暗号化されていないセグメントをグループ分けし、また更なる情報を提供するために、正及び負の整数をテキストの文字列として用いて暗号化セグメントのセグメントマッピングを作成し得る。例えば、@segmentEncryptionSignalingの値が“３，−４，３，１”である場合、これが意味するのは、１１個のセグメントが存在し、これらのセグメントは、隣接するセグメントからなる４つのグループに分けられており、これら４つのグループに含まれる隣接セグメントの数は、それぞれ、３，−４，３，１であり、２番目のグループの全てのセグメントが暗号化されておらず、残りのグループの全てのセグメントが暗号化されており、そして、これら４つのグループ内のセグメントは、それらの対応する整数の順に従って時間的に順序づけられている、ということである。
【００２３】
@segmentEncryptionFlag数のバイナリ変換内のビット又は@segmentEncryptionSignalingで説明されるセグメントの総数が、CryptoPeriodで及ばれるセグメントの総数より多い場合、列内の余分なビットは無視され得る。@segmentEncryptionFlag数のバイナリ変換内のビットの総数がセグメントの総数より少ない場合（例えば、期間に終わりがないとき）、デフォルト設定により、これらのビットによって信号伝達されない）余分なセグメントの全てが暗号化され得る。とりわけ、その暗号化がｎ桁の１６進数によって信号伝達されることができるセグメントの最大数は、４ｎとなり得る。これが意味することは、CryptoPeriod内に１００個の暗号化又は符号化されたセグメントが存在する場合、それらが暗号化されたかを信号伝達することには２５桁の１６進数で十分であり得るということである。
【００２４】
@iterates値は、適用可能なセグメントを復号化するために必要な@segmentEncryptionFlag属性及び／又は@segmentEncryptionSignaling属性の繰り返し数を指し示す正数とし得る。存在しない場合、デフォルトは単一の繰り返しのみとし得る。故に、必要に応じて、セグメントマップは、多数のセグメントに対して、よりコンパクトな形態で表現され、例えば、@segmentEncryptionFlag＝１１０１（２進数）及び@iterates＝１０００（１０進法）で表現される。
【００２５】
@algorithm属性は、この属性に関連付けられたセグメントを符号化又は暗号化するのに使用されたアルゴリズムを指し示し得る。これは、複数のアルゴリズムを用いて単一のストリームを符号化することを受け入れる助けとなり得る。
【００２６】
@ivURL属性及び@ivURLTemplate属性は、ＩＶのレイトバインディングをサポートするために導入される。@ivURL属性及び@ivURLTemplate属性の実装は、従来からの取り組みに含まれた@keyURLTemplate属性及び@keyURL属性を用いたキーのレイトバインディングの実装と同様とし得る。
【００２７】
@keyLicenseURL及び@keyLicenseURLTemplate要素は、ライセンスの形態でのキー輸送をサポートするために導入される。これらの属性は、デジタル著作権管理（ＤＲＭ）の枠組みで現在利用されているのと同様の手法で権利客体を取得するために、ライセンスサーバにコンタクトを取るための位置及びフォーマットを規定し得る。
【００２８】
当業者が認識するように、複数のグループのセグメントに対して複数のCryptoPeriod要素を持つことは必ずしも必要でない。或る表現又はアダプテーションセットに必要なセグメント暗号化情報の全体を提供することには、３つの属性、例えば@segmentEncryptionSignaling、@ivURLTemplate及び@keyURLTemplate、を備えた唯一のCryptoProtection要素で十分である。
【００２９】
図１は、メディアストリーミングスキーム１００の一実施形態を例示しており、これは、ＨＴＴＰサーバ１２０からストリーミングクライアント１１０にメディアコンテンツを配信するように実装され得る。例えば、ストリーミングスキーム１００は、ＤＡＳＨ又はその他の種類のストリーミングスキームとし得る。ストリーミングクライアント１１０は、スタンドアローン装置、ユーザ装置のオペレーティングシステムに実装されたプログラム若しくはアプリケーション、又はウェブプラットフォーム内でアクセスされるウェブクライアントとし得る。ＨＴＴＰサーバ１２０に格納されるメディアコンテンツが、ストリーミングメディア準備ユニット１３０によって生成あるいは準備され得る。メディア準備ユニット１３０は、ＨＴＴＰサーバ１２０と同じ場所に配置されていてもよいし、その他の場所（例えば、コンテンツプロバイダの位置）に配置されていてもよい。ＨＴＴＰサーバ１２０は、コンテンツプロバイダネットワークの一部であってもよいし、コンテンツ配信ネットワーク（ＣＤＮ）内のノードであってもよい。メディアコンテンツは、少なくとも部分的に１つ以上のコンテンツプロバイダによって生成されて、その後にＣＤＮノードに伝送され得る。ＨＴＴＰサーバ１２０内のメディアコンテンツは、ＭＰＤと複数のセグメントとを有し得る。なお、望ましい場合には、ＭＰＤ及びセグメントは、複数の異なるサーバに格納されて、ストリーミングクライアント１１０によって異なるサーバから検索されてもよい。さらに、ここに記載されるＨＴＴＰサーバは、単にサーバの一例としての役割を果たすものであり、故に、理解されるべきことには、ここに開示される実施形態はまた、如何なる他の好適種類のサーバに実装されてもよい。
【００３０】
ストリーミングスキーム１００において、ストリーミングクライアント１１０は、メディアコンテンツに関してＨＴＴＰサーバ１２０に要求を送信し得る。応答して、ＨＴＴＰサーバ１２０は、先ず、ＭＰＤ配信機能１４０を用いて、ストリーミングクライアント１１０にＭＰＤを配信し得る。ＭＰＤは、ＨＴＴＰ、ＨＴＴＰセキュア（ＨＴＴＰＳ）、電子メール、ユニバーサルシリアルバス（ＵＳＢ）ドライブ、放送、又は何らかの他の輸送を用いて届けられ得る。ＭＰＤを構文解析することにより、ストリーミングクライアント１１０は、メディアコンテンツに関する情報、例えば、番組のタイミング、メディアコンテンツの利用可能性、メディア種類、解像度、最小及び最大の帯域幅、マルチメディアコンポーネントの様々な符号化された選択肢の存在、アクセス可能にする機構及び要求されるＤＲＭ、ネットワーク上の各メディアコンポーネントの位置、並びにメディアコンテンツ及び配信環境のその他の特性、を学習し得る。この情報を用いて、ストリーミングクライアント１１０は、適切な符号化された表現又は複数の表現の組み合わせを選択し、ＨＴＴＰ  Ｇｅｔ要求を用いてセグメントを取り出すことによってメディアコンテンツのストリーミングを開始し得る。ＨＴＴＰサーバ１２０は、セグメント配信機能を用いて、ストリーミングクライアント１１０にセグメントを配信し得る。なお、ストリーミングクライアント１１０は、例えばネットワーク帯域幅の使用を最小化するために、複数のＨＴＴＰサーバからセグメントをダウンロードしてもよい。ストリーミングクライアント１１０は、ストリーミングクライアント１１０のユーザにストリーミングサービスを提供するように、ダウンロードしたメディアを適切にレンダリングし得る。ストリーミングクライアント１１０は、ＭＰＤ内に含まれるＵＲＬによって規定される位置からに基づいてセグメントを取得し得るが、セグメントは、これに代えて、ストリーミングクライアント１１０の受信の効率を向上させるようにＨＴＴＰキャッシュ１５０（例えば、ＨＴＴＰサーバ１２０又はＣＤＮノード内）に格納されてもよい。
【００３１】
バッファリングが望ましい場合、ネットワークスループット変化を許容するように適切にバッファリングした後に、ストリーミングクライアント１１０は、ネットワークの帯域幅揺動を監視しながら、後続のセグメントをダウンロードすることを継続し得る。その測定結果に応じて、ストリーミングクライアント１１０は、十分なバッファを維持するように異なる表現（例えば、より低いビットレート又はより高いビットレートを有する）のセグメントをダウンロードすることによって、利用可能な帯域幅に合わせて適応的にストリーミングを調整し得る。
【００３２】
本開示にて記述される機構／方法の少なくとも一部は、ネットワーク要素に実装され得る。例えば、本開示に係る機構／方法は、ハードウェア、ファームウェア、及び／又はハードウェア上で実行されるようにインストールされたソフトウェアを用いて実装され得る。ネットワーク要素は、例えば交換機、ルータ、ブリッジ、サーバ、クライアントなど、ネットワークを介してデータを輸送する如何なる装置であってもよい。図２は、ネットワーク要素２００の一実施形態の模式図であり、これは、ネットワークを介してデータの輸送及び処理を行う如何なる装置であってもよい。例えば、ネットワーク要素２００は、コンテンツルータ、又は、ここに記載されるスキームのうちの１つを移植したコンテンツセントリックネットワーク（ＣＣＮ）／ネームドデータネットワーク（ＮＤＮ）内の何らかの装置若しくはルータとし得る。ネットワーク要素２００は、上述の適応式転送の方策を実装あるいはサポートするように構成され得る。
【００３３】
ネットワーク要素２００は、送信器、受信器又はこれらの組み合わせとし得るトランシーバ（Ｔｘ／Ｒｘ）２１２に結合された１つ以上のダウンストリームポート２１０を有し得る。このＴｘ／Ｒｘ２１２は、ダウンストリームポート２１０を介して、他のノードからのフレームの送信及び／又は受信を行い得る。同様に、ネットワーク要素２００は、複数のアップストリームポート２３０に結合された別のＴｘ／Ｒｘ２１２を有することができ、このＴｘ／Ｒｘ２１２は、アップストリームポート２３０を介して、他のノードからのフレームの送信及び／又は受信を行い得る。プロセッサ２２５が、これらのＴｘ／Ｒｘ２１２に結合され、フレームを処理するように、及び／又はフレームを送信すべきノードがどれかを決定するように構成され得る。プロセッサ２２５は、１つ以上のマルチコアプロセッサ及び／又はデータ格納部やバッファなどとして機能し得るメモリモジュール２２２を有し得る。プロセッサ２２５は、汎用プロセッサとして実装されてもよいし、１つ以上の特定用途向け集積回路（ＡＳＩＣ）及び／又はデジタル信号プロセッサ（ＤＳＰ）の部分であってもよい。ダウンストリームポート２１０及び／又はアップストリームポート２３０は、電気的及び／又は光学的な送信及び／又は受信コンポーネントを含み得る。ネットワーク要素２００は、経路決定を行うルーティングコンポーネントであってもよいし、そうでなくてもよい。メモリモジュール２２２は、ここに記載されるシステム及び方法を、例えばストリーミングクライアント１１０として、ＨＴＴＰサーバ１２０として等々で、実行に移すための命令を収容することに使用され得る。メモリモジュール２２２は、プロセッサ２２５上で実行され得るプログラム可能なコンテンツ転送プレーンブロック２２８を有し得る。代わりに、転送プレーンブロック２２８は、プロセッサ２２５上に直接実装されてもよい。プログラム可能コンテンツ転送プレーンブロック２２８は、例えばオープンシステムインターコネクション（ＯＳＩ）モデルのアプリケーション層又はレイヤ３（Ｌ３）などで、コンテンツの転送及び処理の機能を実装するように構成されることができ、その場合、コンテンツは、コンテンツの名称若しくはプレフィックスと、場合により、コンテンツをネットワークトラフィックにマッピングするその他のコンテンツ関連情報と、に基づいて転送され得る。このようなマッピング情報は、メモリモジュール２２２の位置のコンテンツテーブル２２９にて維持管理され得る。プログラム可能コンテンツ転送プレーンブロック２２８は、コンテンツに関するユーザ要求を解釈して、それに従って、例えばメタデータ及び／又はコンテンツ名に基づいて、ネットワーク又はその他のコンテンツルータからコンテンツを取り出し得るとともに、そのコンテンツを、例えば一時的に、メモリモジュール２２２に格納し得る。そして、プログラム可能コンテンツ転送プレーンブロック２２８は、キャッシュしたコンテンツをユーザに転送し得る。プログラム可能コンテンツ転送プレーンブロック２２８は、ソフトウェア、ハードウェア、又はこれら双方を用いて実装されることができ、また、ＯＳＩモデルの、例えばリンク層２（Ｌ２）又はリンク層３（Ｌ３）といった、インターネットプロトコル（ＩＰ）層より上の層で動作し得る。メモリモジュール２２２は、例えばランダムアクセスメモリ（ＲＡＭ）といった、コンテンツを一時的に格納するためのキャッシュを有し得る。加えて、メモリモジュール２２２は、例えば読み出し専用メモリ（ＲＯＭ）といった、比較的長くコンテンツを格納するための長期ストレージを有し得る。例えば、キャッシュ及び長期ストレージは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ソリッドステートドライブ（ＳＳＤ）、ハードディスク、又はこれらの組み合わせを含み得る。
【００３４】
理解されるように、ネットワーク要素２００への実行可能命令のプログラム及び／又はロードを行うことにより、プロセッサ２２５、キャッシュ、及び長期ストレージのうちの少なくとも１つが変更され、ネットワーク要素２００は部分的に、本開示によって教示される新規な機能を有する例えばマルチコア転送アーキテクチャといった特別なマシン又は装置へと転換される。実行可能なソフトウェアをコンピュータにロードすることによって実装されることが可能な機能が、周知の設計ルールによってハードウェア実装へと変換され得ることは、電気工学及びソフトウェア工学の技術にとって基本的なことである。コンセプトをソフトウェアで実装することとハードウェアで実装することとの間での決定は、典型的に、ソフトウェアドメインからハードウェアドメインへの変換に伴う問題というよりむしろ、設計の安定性及び作製すべきユニットの個数の検討次第である。一般に、ハードウェア実装を再設計することはソフトウェア設計を再設計することより高価であるので、依然として頻繁に変更されている設計はソフトウェアで実装されることが好ましいと云い得る。一般に、大量生産工程にとっては、ハードウェア実装の方がソフトウェア実装より安価となり得るので、安定しており且つ大量生産されることになる設計は、例えばＡＳＩＣにて、ハードウェア実装されることが好ましいと云い得る。しばしば、設計は、ソフトウェアの形態で開発されてテストされ、その後に、周知の設計ルールによって、そのソフトウェアの命令をハードワイヤする特定用途向け集積回路にて、等価なハードウェア実装へと転換され得る。新たなＡＳＩＣによって制御されるマシンが特別なマシン又は装置であるのと同じように、実行可能な命令をプログラム及び／又はロードされたコンピュータも同様に特別なマシン又は装置として見ることができる。
【００３５】
図３は、セグメント及びコンテンツ保護エンコーディングを生成するスキーム３００の一実施形態を例示する図である。スキーム３００は、例えば図１のＨＴＴＰサーバ１２０などのＨＴＴＰサーバによって、あるいは、例えば図２のネットワーク要素２００の形態でメディアコンテンツプロバイダによって実行され得る。例えば、スキーム３００は、転送プレーンブロック２２８の部分とし得る。メディアコンテンツ３０２が、セグメンテーションユニット又はモジュール３０４によって、例えば表現３０６及び／又は３０８（集合的あるいは二者択一的に、３０６／３０８）として、複数のセグメントへと分割される。先述のように、アプリケーションに応じて、メディアコンテンツを表すために様々な階層が使用され得る。サブセグメントが使用される場合、ここに記載されるスキームは、セグメントに適用されるのと同じように、サブセグメントに適用され得る。
【００３６】
各表現３０６／３０８は、例えば、初期化（イニシャライゼーション）セグメント（ＩＳ）３１０及び／又は３１２、並びに少なくとも１つのメディアセグメント（ＭＳ）３１８及び／又は３２０といった、複数のセグメントを有し得る。例えば、図３に示すように、表現３０６は、１つのＩＳ３１０とｍ個のＭＳ３１８とを有する。同様に、表現３０８は、１つのＩＳ３１２とｋ個のＭＳ３２０とを有する。各表現３０６／３０８は、等しい総数又は異なる総数のセグメントを有し得る。例えば、図３において、表現３０６がｍ個のＭＳ３１８を有する一方で、表現３０８はｋ個のＭＳ３２０を有するが、ｋとｍは同じであってもよいし、異なってもよい。さらに、セグメント暗号化シグナリングモジュール３２６が、ここに記載されるセグメント暗号化シグナリングを作成して、該セグメント暗号化シグナリングをContentProtection要素３２４及び保護システム３２２に送信し得る。
【００３７】
保護システム３２２は、例えば特定のコンテンツ保護システムを適用することによって、表現３０６及び３０８をＤＡＳＨ準拠であるように処理し得る。保護システム３２２は、どのＭＳ３１８及び／又は３２０が符号化を必要とするかを決定し、セグメント暗号化シグナリング／セグメントマッピングに使用する好適な@segmentEncryptionSignalingを作成し得る。保護システム３２２は、サードパーティライセンスサーバと連携してライセンスサーバＵＲＬを取得し得るとともに、サードパーティＩＶサーバと連携してｉｖＵＲＬを取得し得る。スキーム３００は、ＭＰＤストリームに３２４にてContentProtection要素を投入し得るとともに、@segmentEncryptionSignaling属性、@ivURLTemplate属性、@keyURLTemplate属性、及び@LicenseServerURL属性を作成して結び付け得る。保護システム３２２は、１つ以上の予め選択されたアルゴリズムを用いる所定の手法でＭＳ３１８及び／又は３２０を符号化あるいは暗号化して、表現３２８及び３３０を作成し得る。表現３２８及び３３０は、ＩＳ３３２及び３３４と、符号化されたＭＳ３３６及び３３８とを有し得る。複数のアルゴリズム又は非標準アルゴリズムが使用される場合、ＭＰＤストリームに１つ以上の@algorithm属性が投入されて結び付けられ得る。
【００３８】
一部の実施形態において、時変的又は時不変的の何れかのセグメントシグナリング情報が、メディアからの別々のストリーム内に置かれる。例えば、これは、パケット識別子（ＰＩＤ）をストリームに割り当て、それを、例えばＭＰＥＧ−２トランスポートストリームにて、番組の一部とすることによって行われることができる。代わりに、この情報は、暗号化あるいは符号化されないままの索引（インデックス）セグメント内に置かれてもよい。更なる別の選択肢は、この情報をＭＰＤファイル内に置くものである。この第３のケースでは、時不変部分は、個々のセグメントに繰り返し関連付けられるものではないＭＰＤ要素又は属性の中に置かれ得る。
【００３９】
図４は、図３に記載した実施形態の下でデータを伝送するためのプロトコル図である。図４は、例えば図１のクライアント１１０といった、コンテンツ保護スキーム３００をサポートするように構成されたＤＡＳＨクライアント４０２と、例えば図１のＨＴＴＰサーバ１２０といった、スキーム３００を実行するように構成されたウェブサーバ４０４と、例えば図２のネットワーク要素２００といったライセンスサーバ４０６とを有している。４０８にて、クライアント４０２が、ＭＰＤに関するＨＴＴＰ要求をウェブサーバ４０４に対して行い得る。４１０にて、ウェブサーバ４０４が、例えば図３のＩＳ３３２及び３３４を含んだ、ＭＰＤに関するＨＴＴＰ応答を、クライアント４０２に送信し得る。クライアント４０２は、リソース統計、ネットワーク環境又は状態、装置能力、ユーザ選択などに従って、適切な復号化の選択及び／又は設定を行い得る。４１２にて、クライアント４０２が、ＭＰＤを構文解析して、ＭＰＤに含まれる情報を解釈し、４１４にて、クライアント４０２が、権利客体プロセス４１４を実行し得る。具体的には、４１６にて、クライアント４０２が、@keyLicenseURLのＵＲＬを用いてライセンスサーバ４０６からの権利客体を要求し、そして４１８にて、ライセンスサーバ４０６が、要求されたライセンス及び／又は権利客体でクライアント４０２に応答し得る。４２０にて、クライアント４０２が、@ivURLのＵＲＬを用いてライセンスサーバ４０６からのＩＶを要求し得る。４２２にて、ライセンスサーバ４０６が、要求されたＩＶデータでクライアント４０２に応答し得る。@keyLicenseURLTemplate及び@ivURLTemplateのデータを用いて、クライアント４０２は、該当するセグメントを復号化するのに必要なＩＶ／キー対を取得し得る。ライセンスとＩＶとが同じライセンスサーバ４０６から送信されているが、当業者が認識するように、他の実施形態において、ライセンス及びＩＶは、異なるサーバに保管されて異なるサーバから送信されてもよい。４２４にて、クライアント４０２が、セグメントに関するＨＴＴＰ要求をウェブサーバ４０４に送信し得る。４２６にて、ウェブサーバ４０４が、例えば図３のＭＳ３３６及び３３８といった、符号化されたメディアセグメントを含んだ、セグメントに関するＨＴＴＰ応答を、クライアント４０２に送信し得る。ＭＰＤとセグメントとが同じウェブサーバ４０４から送信されているが、当業者が認識するように、他の実施形態において、メディアコンテンツを記述するＭＰＤと、そのメディアコンテンツのセグメントとは、異なるサーバに保管されて異なるサーバから送信されてもよい。例えば、ＭＰＤがコンテンツ配信業者から送信される一方で、セグメントはサードパーティのコンテンツ配信ノード（ＣＤＮ）から送信されてもよい。クライアント４０２は、@segmentEncryptionSignaling情報に従って適切なアルゴリズム解読ＩＶ／キー対を適用することによって、暗号化されたメディアを解読し得る。４２８にて、クライアント４０２が、プレイアウト開始シーケンスを始めて、クライアント４０２のユーザ（図示せず）にメディアストリームを提供し得る。４３０にて、クライアント４０２は、リソース統計を更新することができ、４３２にて、クライアント４０���は、更新された統計に従って適応的にセグメントを選択し得る。データストリームを維持することの要求に応じて、クライアント４０２は、ストリーミングが完了するまで、１つ以上のステップ４０８−４２６を再開し得る。とりわけ、上述のステップの順序付けは単に例示的なものであり、当業者が認識するように、一部のステップが同時又は別の順序で行われてもよい。
【００４０】
図５は、セグメント及びコンテンツ保護エンコーディングを生成するスキーム５００の一実施形態を例示する図である。別段の注記がなければ、図５に列挙されたコンポーネントは、図３のコンポーネントと実質的に同様とし得る。スキーム５００は、例えば図１のＨＴＴＰサーバ１２０などのＨＴＴＰサーバによって、あるいは、例えば図２のネットワーク要素２００の形態でメディアコンテンツプロバイダによって実行され得る。例えば、スキーム５００は、図２の転送プレーンブロック２２８の部分とし得る。メディアコンテンツ５０２が、セグメンテーションユニット又はモジュール５０４によって、例えば表現５０６及び／又は５０８（集合的あるいは二者択一的に、５０６／５０８）として、複数のセグメントへと分割される。先述のように、アプリケーションに応じて、メディアコンテンツを表すために様々な階層が使用され得る。サブセグメントが使用される場合、ここに記載されるスキームは、セグメントに適用されるのと同じように、サブセグメントに適用され得る。
【００４１】
各表現５０６／５０８は、例えば、ＩＳ５１０及び／又は５１２、索引（インデックス）セグメント５１４及び／又は５１６、並びに少なくとも１つのＭＳ５１８及び／又は５２０といった、複数のセグメントを有し得る。例えば、図５に示すように、表現５０６は、１つのＩＳ５１０と、１つの索引セグメント５１４と、ｍ個のＭＳ５１８とを有する。同様に、表現５０８は、１つのＩＳ５１２と、１つの索引セグメント５１６と、ｋ個のＭＳ５２０とを有する。各表現５０６／５０８は、等しい総数又は異なる総数のセグメントを有し得る。例えば、図５において、表現５０６がｍ個のＭＳ５１８を有する一方で、表現５０８はｋ個のＭＳ５２０を有するが、ｋとｍは同じであってもよいし、異なってもよい。
【００４２】
保護システム５２２は、例えば特定のコンテンツ保護システムを適用することによって、表現５０６及び５０８をＤＡＳＨ準拠であるように処理し得る。保護システム５２２は、どのＭＳ５１８及び／又は５２０が符号化を必要とするかを決定し、セグメント暗号化シグナリング又はセグメントマッピングに使用する好適な@segmentEncryptionFlagを作成し得る。保護システム５２２は、サードパーティライセンスサーバと連携してライセンスサーバＵＲＬを取得し、ＭＰＤに５２４にてContentProtection要素を投入し、そして、５２６にて@segmentEncryptionFlagを作成して結び付け得る。スキーム５００は、ＭＰＤストリームに５２４にてContentProtection要素を投入し得るとともに、@segmentEncryptionFlag属性、@iv属性、@keyURLTemplate属性、及び@LicenseServerURL属性を作成して結び付け得る。保護システム５２２は、１つ以上の予め選択されたアルゴリズムを用いる所定の手法でＭＳ５１８及び／又は５２０を符号化あるいは暗号化して、表現５２８及び５３０を作成し得る。表現５２８及び５３０は、ＩＳ５３２及び５３４と、索引セグメント５４０及び５４２と、符号化されたＭＳ５３６及び５３８とを有し得る。複数のアルゴリズム又は非標準アルゴリズムが使用される場合、ＭＰＤストリームに１つ以上の@algorithm属性が投入されて結び付けられ得る。
【００４３】
一部の実施形態において、例えば暗号化アルゴリズム及び暗号化動作モードといった、時不変的（time-invariant）なコンテンツ保護情報（ＴＩ−ＣＰＩ）、又は、例えば暗号化キー及び初期化ベクトルといった、時変的（time-variant）なコンテンツ保護情報（ＴＶ−ＣＰＩ）が、ストリームに付加されてもよく、例えば、図５に示すように、暗号化されたメディアセグメントに関するＩＳ５３２及び／又は５３４内、又は索引セグメント５４０及び／又は５４２内に付加され得る。
【００４４】
図６は、図５に記載した実施形態の下でデータを伝送するためのプロトコル図である。図６は、コンテンツ保護スキーム５００をサポートするように構成されたＤＡＳＨクライアント４０２と、スキーム５００を実行するように構成されたウェブサーバ４０４と、ライセンスサーバ４０６とを有している。６０８にて、クライアント４０２が、ＭＰＤに関するＨＴＴＰ要求をウェブサーバ４０４に対して行い得る。６１０にて、ウェブサーバ４０４が、例えば図５のＩＳ５３２及び５３４並びに索引セグメント５４０及び５４２を含み得るＭＰＤに関するＨＴＴＰ応答を、クライアント４０２に送信し得る。クライアント４０２は、リソース統計、ネットワーク環境又は状態、装置能力、ユーザ選択などに従って、適切な復号化の選択及び／又は設定を行い得る。６１２にて、クライアント４０２が、ＭＰＤを構文解析して、ＭＰＤに含まれる情報を解釈し、６１４にて、クライアント４０２が、権利客体プロセス６１４を実行し得る。具体的には、６１６にて、クライアント４０２が、@keyLicenseURLのＵＲＬを用いてライセンスサーバ４０６からの権利客体を要求し、そして６１８にて、ライセンスサーバ４０６が、要求されたライセンス及び／又は権利客体でクライアント４０２に応答し得る。@keyLicenseURLTemplateを用いて、クライアント４０２は、該当するセグメントを復号化するのに必要なＩＶ／キー対のためのライセンス及び／又はキーを取得し得る。ＩＶ、及び他の実施形態においてセグメント暗号化キーが、索引セグメントから取得され得る。６２４にて、クライアント４０２が、セグメントに関するＨＴＴＰ要求をウェブサーバ４０４に送信し得る。６２６にて、ウェブサーバ４０４が、例えば図５のＭＳ５３６及び５３８といった、符号化されたメディアセグメントを含んだ、セグメントに関するＨＴＴＰ応答を、クライアント４０２に送信し得る。ＭＰＤとセグメントとが同じウェブサーバ４０４から送信されているが、当業者が認識するように、他の実施形態において、メディアコンテンツを記述するＭＰＤと、そのメディアコンテンツのセグメントとは、異なるサーバに保管されて異なるサーバから送信されてもよい。例えば、ＭＰＤがコンテンツ配信業者から送信される一方で、セグメントはサードパーティのコンテンツ配信ノード（ＣＤＮ）から送信されてもよい。クライアント４０２は、６２７にて、@segmentEncryptionFlag情報に従って適切なアルゴリズム解読ＩＶ／キー対を適用することによって、暗号化されたメディアを解読し得る。６２８にて、クライアント４０２が、プレイアウト開始シーケンスを始めて、クライアント４０２のユーザ（図示せず）にメディアストリームを提供し得る。６３０にて、クライアント４０２は、リソース統計を更新することができ、６３２にて、クライアント４０２は、更新された統計に従って適応的にセグメントを選択し得る。データストリームを維持することの要求に応じて、クライアント４０２は、ストリーミングが完了するまで、１つ以上のステップ６０８−６２６を再開し得る。とりわけ、上述のステップの順序付けは単に例示的なものであり、当業者が認識するように、一部のステップが同時又は別の順序で行われてもよい。
【００４５】
少なくとも１つの実施形態を開示したが、当業者によって為されるこれらの実施形態及び／又はそれらの特徴の変形、組み合わせ及び／又は変更も、本開示の範囲内である。これらの実施形態の特徴を組み合わせ、統合し、且つ／或いは省略することから得られる他の実施形態もまた、本開示の範囲内である。数値的な範囲又は限度が明示的に述べられている場合、そのような明示的な範囲又は限度は、明示的に述べられた範囲又は限度の範囲内に入る同様の大きさの反復的な範囲又は限度も含むと理解されるべきである（例えば、約１から約１０までは、２、３、４等々を含み、０．１０より大きいは、０．１１、０．１２、０．１３等々を含む）。例えば、下限Ｒｌと条件Ｒｕとを有する数値範囲が開示されるときには、その範囲内に入る如何なる数も具体的に開示されている。特に、範囲内の以下の数：Ｒ＝Ｒｌ＋ｋ×（Ｒｕ−Ｒｌ）、ただし、ｋは１％刻みで１％から１００％までの範囲の変数、すなわち、ｋは１％、２％、３％、４％、５％、・・・、５０％、５１％、５２％、・・・、９５％、９６％、９７％、９８％、９９％又は１００％、は具体的に開示されている。また、上で定めたように２つのＲ数値によって定められる如何なる数値範囲もまた具体的に開示されている。約なる用語の使用は、特段の断りがない限り、それに続く数の±１０％を意味する。請求項の何らかの要素に関する“必要に応じて”なる用語の使用は、その要素が必要とされること、あるいはそれに代えて、その要素は必要とされないこと、双方の選択肢がその請求項の範囲内であること、を意味する。例えば、を有する、を含む、及び、を持つなどの、広めの用語の使用は、例えば、から成る、から本質的に成る、及び、から実質的に成るなどの、より狭い用語のサポートを提供するものと理解されるべきである。ここに記載した全ての文献をここに援用する。
【００４６】
本開示にて幾つかの実施形態を提示したが、理解されるべきことには、開示されたシステム及び方法は、本開示の精神又は範囲を逸脱することなく、数多くのその他の具体的形態でも具現化され得るものである。ここでの例は、限定的なものではなく、例示的なものと見なされるべきであり、意図することは、ここに与えられた詳細事項に限定されるべきでないということである。例えば、これらの様々な要素又はコンポーネントは、他のシステムにおいて結合あるいは統合されてもよく、あるいは、特定の機構が省略されたり、実装されなかったりしてもよい。
【００４７】
また、様々な実施形態において個別あるいは別個であるように記載・図示された技術、システム、サブシステム及び方法が、本開示の範囲を逸脱することなく、他のシステム、モジュール、技術又は方法と結合あるいは統合され得る。互いに結合され、直接的に結合され、あるいは通信するように図示あるいは説明された品目が、電気的、機械的、あるいはその他であろうと、何らかのインタフェース、装置又は中間コンポーネントを介して間接的に結合され、あるいは通信してもよい。変形、代用及び改変のその他の例も、当業者によって解明可能であり、ここに開示された精神及び範囲を逸脱することなく為され得る。
【図１】
0005923661.tif 000005
【図２】
0005923661.tif 000006
【図３】
0005923661.tif 000007
【図４】
0005923661.tif 000008
【図５】
0005923661.tif 000009
【図６】
0005923661.tif 000010