(57)【要約】【課題】  ストリーミング方式のメディア・コンテンツを保護するための新規な方法を提供する。【解決手段】  本方法では、保護されているデジタルビット・ストリームを受信し、これをメディアプレーヤに送り、メディアプレーヤは第１のヘッダ情報を読み取ってデジタルビット・ストリームを処理するための第１のプラグインを呼び出し、デジタルビット・ストリームを第１のプラグインに送り、ここで少なくともその一部を解読する。さらに、第１のプラグインは第２のヘッダ情報を読み取って第２のプラグインを呼び出し、解読されたデジタルビット・ストリームを第２のプラグインに送り、第２のプラグインはその一部を解凍するなどの処理を行ってメディアプレーヤに送り、さらにメディアプレーヤが解読され処理されたデジタルビット・ストリームのレンダリングを許可する。【選択図】      図１
2006025436.tif 000002
【特許請求の範囲】
【請求項１】
保護されているデジタルビット・ストリームを受信するステップ；
前記保護されているデジタルビット・ストリームをメディアプレーヤに送るステップであって、前記メディアプレーヤは、前記保護されているデジタルビット・ストリームを処理するために使用されるプラグインを識別し第１のプラグインが要求されることを示す第１のヘッダ情報を読み取るものであり；
前記メディアプレーヤが前記第１のプラグインを呼び出すステップ；
前記メディアプレーヤが前記保護されているデジタルビット・ストリームを前記第１のプラグインに送るステップ；
前記第１のプラグインが前記保護されているデジタルビット・ストリームの少なくとも一部を解読するステップ；
前記第１のプラグインが、前記解読されたデジタルビット・ストリームをレンダリングするために必要な第２のプラグインを識別する第２のヘッダ情報を読み取るステップ；
前記第１のプラグインが前記第２のプラグインを呼び出すステップ；
前記第１のプラグインが前記解読されたデジタルビット・ストリームを前記第２のプラグインに送るステップ；
前記第２のプラグインが前記解読されたデジタルビット・ストリームを処理するステップであって、前記処理は前記解読されたデジタルビット・ストリームの少なくとも一部の解凍を含み；
前記第２のプラグインが前記解読され処理されたデジタルビット・ストリームをメディアプレーヤに送るステップ；および
前記メディアプレーヤが前記解読され処理されたデジタルビット・ストリームのレンダリングを許可するステップ；
を含み、
これにより多段階のプラグイン処理用に設計されていないアーキテクチャにおいて前記第１のプラグインを使用可能とすることを特徴とする、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項２】
請求項１に記載の方法であって、前記第１のプラグインはストリーム・コントローラを含み、前記保護されたデジタルビット・ストリームの少なくとも一部分を解読することは、前記保護されたデジタルビット・ストリームのサブ・ストリームの少なくとも一部分を解読することを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項３】
請求項１に記載の方法であって、さらに、前記第１のプラグインに、前記保護されたデジタルビット・ストリームの少なくとも一部分を解読するためのキーを送るステップを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項４】
請求項１に記載の方法であって、前記デジタルビット・ストリームはＭＰＥＧ−４フォーマットで符号化されている、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項５】
請求項１に記載の方法であって、前記デジタルビット・ストリームはＭＰ３フォーマットで符号化されている、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項６】
請求項１に記載の方法であって、前記デジタルビット・ストリームは、少なくとも１個のサブ・ストリームまたはオブジェクトの管理に関係するルールあるいはルールセットを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項７】
請求項６に記載の方法であって、前記ルールまたはルールセットは外部ソースから配信される、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項８】
請求項６に記載の方法であって、前記ルールまたはルールセットは、前記管理されたサブ・ストリームまたはオブジェクトが解読される条件を特定する、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項９】
請求項６に記載の方法であって、さらに、前記管理されたサブ・ストリームまたはオブジェクトへのアクセスまたは使用の少なくとも一態様を管理するために、前記ルールあるいはルールセットを使用するステップを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１０】
請求項９に記載の方法であって、前記管理された態様は管理されたサブ・ストリームまたはオブジェクトのコピーを作成することを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１１】
請求項９に記載の方法であって、前記管理された態様は、管理されたサブ・ストリームまたはオブジェクトをデジタル出力ポートを介して送信することを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１２】
請求項１１に記載の方法であって、前記ルールまたはルールセットは、前記管理されたサブ・ストリームまたはオブジェクトが第２のデバイスに転送されうること、しかしながら前記管理されたサブ・ストリームまたはオブジェクトのレンダリングが第２のデバイスに転送されること、しかしながら前記管理されたサブ・ストリームまたはオブジェクトのレンダリングが、前記転送以前、転送の間および／または転送後において前記メディアプレーヤ内でディスエーブルとされねばならないことを特定する、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１３】
請求項６に記載の方法であって、前記メディアプレーヤ内の制御装置は、前記同じ管理されたサブ・ストリームまたはオブジェクトへのアクセスまたは使用を管理する少なくとも１個の追加のルールを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１４】
請求項１３に記載の方法であって、前記ルールまたはルールセットは第１のエンティティによって供給され、さらに前記追加のルールは第２のエンティティによって供給される、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１５】
請求項１４に記載の方法であって、前記ルールまたはルールセットは前記追加のルールのオペレーションの少なくとも一態様を制御する、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１６】
請求項９に記載の方法であって、前記管理された態様は、少なくとも１個のバジェットを使用することを含む、保護されているデジタルビット・ストリームのレンダリング方法。
【請求項１７】
請求項９に記載の方法であって、前記管理された態様は、情報の監査が提供されるべきであるとの要求を含む、保護されているデジタルビット・ストリームのレンダリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主にコンピュータおよび／または電子セキュリティに関する。より詳しくは、本発明はストリーミングしたフォーマットで情報を保護するためのシステムおよび方法に関する。
【背景技術】
【０００２】
デジタルメディアのストリーミングは、主にパケットの「ストリーム」で受け取り、表示またはレンダリングするよう設計されたデジタル情報のシーケンスからなる。例には、ストリーミングしたオーディオ・コンテンツ、ストリーミングされたビデオ等が含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
デジタルメディア・ストリームはますますコンテンツ配送の重要な手段となりつつあり、いくつかの採用、提案あるいはデファクトの標準の基礎を形成している。しかしながら、このフォーマットの受け入れは、デジタルメディア・ストリームを複製して不正に普及する容易さから遅れており、コンテンツオーナーがデジタル手段のストリーミングによって重要なプロパティを配布させることに難色を示すことになっている。このため、デジタルメディア・ストリームを保護できる方法論が必要となっている。
【課題を解決するための手段】
【０００４】
本発明に一致して、本明細書は、ストリーミングしたフォーマットで与えられる情報の保護のための新しいアーキテクチャを説明する。このアーキテクチャは、ＭＰＥＧ−４仕様（ＩＳＯ／ＩＥＣ１４４９６．１）に従ってコード化したコンテンツ（内容）をレンダリングするシステムに似た一般的システムの文脈で説明するが、一定の修正と、説明するシステムがＭＰＥＧ−４標準とある点で異なるという条件付である。ＭＰＥＧ−４実施例およびＭＰ３仕様（ＩＳＯ／ＩＥＣ  ＴＲ１１１７２）によりコード化したコンテンツをレンダリングするよう設計したシステムを含む広範囲な実施例を説明する。
【０００５】
本発明の態様によると、このアーキテクチャはシステム設計態様および情報フォーマット態様に関与する。システム設計態様には、コンテンツ保護機能、制御機能、およびシステムの活動をモニタするためのフィードバックイネーブル制御機能の組み込みを含む。情報フォーマット態様には、ルール／制御情報の情報ストリームへの組み込みと、暗号化および電子すかし（ウォーターマーキング）などのメカニズムによるコンテンツの保護が含まれる。
【０００６】
本発明に一致するシステムおよび方法は、コンテンツ保護およびデジタル権利管理を実行する。本発明に一致するストリーミング・メディア・プレイヤーは、デジタルビット・ストリームを受け入れるよう設計されたポートを含む。デジタルビット・ストリームは、少なくとも部分的に暗号化されたコンテンツと、少なくともコンテンツの一部の解読に適した少なくとも１つのキーを含むコンテンツの利用を制御するよう設計された制御情報を含む安全なコンテナとを含む。メディア・プレイヤーはまた、安全なコンテナを開いて暗号キーを取り出すための手段と、コンテンツの暗号化部分を解読するための手段を含む制御装置を含む。
【発明を実施するための最良の形態】
【０００７】
ここで本発明の原理に一致した添付の図面に示す実施例を詳細に参照する。
次の米国特許および出願は、それぞれ本出願の被譲受人に譲渡されており、参照文献としてその全体を本書に組み込む。Ｇｉｎｔｅｒ他、「セキュア・トランザクション・マネージメントおよび電子的権利保護のためのシステムおよび方法」、１９９７年１１月４日出願米国特許出願番号第０８／９６４，３３３号（「Ｇｉｎｔｅｒ’３３３」）、Ｇｉｎｔｅｒ他、「安全な電子商取引、電子トランザクション、商業プロセス制御オートメーション、分散コンピューティング、および権利保護のための信頼されるインフラサポートシステム」１９９６年８月１２日出願米国特許出願番号０８／６９９，７１２号（「Ｇｉｎｔｅｒ’７１２」）、Ｖａｎ  Ｗｉｅ他、「デジタル権利管理情報を安全でない通信チャンネルを通じて安全に配信するためのステガノグラフィック技術」１９９６年８月１２日出願米国特許出願番号第０８／６８９，６０６号（「Ｖａｉ  Ｗｉｅ」）、Ｇｉｎｔｅｒ他、「ソフトウェアいたずら防止および安全な通信」、１９９６年８月３０日出願、米国特許出願番号第０８／７０６，２０６号（「Ｇｉｎｔｅｒ’２０６」」、Ｓｈｅａｒ他、「閉じた＆接続された機器中の保存メディア電子権利管理のための暗号方法、装置＆システム」、１９９７年５月１５日出願米国特許出願番号第０８／８４８，０７７号（「Ｓｈｅａｒ」）、Ｃｏｌｌｂｅｒｇ他、「ソフトウェアセキュリティ強化のための混乱技術」、１９９８年６月９日出願米国特許出願番号第０９／０９５，３４６号（「Ｃｏｌｌｂｅｒｇ」）、Ｓｈｅａｒ、「データベース利用計量および保護システムおよび方法」、１９８９年５月２日発行米国特許第４，８２７，５０８号（「Ｓｈｅａｒ特許」）。
【０００８】
図１は、ストリーミングしたマルチメディア・コンテンツを受け入れ、デコードおよびレンダリングすることができるメディアシステム１を示す。これは一般的なシステムだが、ＭＰＥＧ−４仕様に基づく要素を含む。メディアシステム１は、ソフトウェアモジュール、ハードウェア（集積回路を含む）または組み合わせを含むことができる。ある実施例では、メディアシステム１は、Ｇｉｎｔｅｒ’３３３出願に述べる保護された処理環境（ＰＰＥ）を含むことができる。
【０００９】
図１では、ビット・ストリーム２はシステム１が受ける入力情報を表す。ビット・ストリーム２は、接続を介して外部ネットワーク（インターネット接続、ケーブルフックアップ、衛星放送のラジオ送信等）に受け取られるか、またはＤＶＤプレイヤーなどのポータブルメモリデバイスから受けることができる。
ビット・ストリーム２は、編成ストリーム３、オーディオ・ストリーム４、ビデオ・ストリーム５、制御ストリーム６、およびＩｎｆｏストリーム３１を含む関連情報ストリームのグループからなる。これらストリームはそれぞれビット・ストリーム２全体にコード化される。これらはそれぞれストリームのカテゴリーを表し、例えば、ビデオ・ストリーム５は多数の別個のビデオ・ストリームから構成することができる。
【００１０】
これらストリームは一般に次のようなＭＰＥＧ−４フォーマットで記述されるストリームに対応する。
編成ストリーム３は一般に、ＢＩＦＳストリームおよびＯＤ（「オブジェクト・ディスクリプタ」）ストリームに対応する。
オーディオ・ストリーム４およびビデオ・ストリーム５は一般にオーディオおよびビデオ・ストリームに対応する。
【００１１】
制御ストリーム６は一般にＩＰＭＰストリームに対応する。
オーディオ・ストリーム４は、圧縮した（そしておそらく暗号化した）デジタル・オーディオ情報を含む。この情報を使って、メディア（媒体）システム１でレンダリングし(再生し）、出力する音を作成する。オーディオ・ストリーム１は複数のオーディオ・ストリームを表すことができる。これら複数のストリームが共に作用してオーディオ出力を構成したり、代替オーディオ出力を表すことができる。
【００１２】
ビデオ・ストリーム５は、圧縮した（そしておそらく暗号化した）デジタルビデオ情報を含む。この情報を使って、メディアシステム１でレンダリングし、出力する画像とビデオを作成する。ビデオ・ストリーム５は複数のビデオ・ストリームを表すことができる。これら複数のストリームが共に作用してビデオ出力を構成したり、代替ビデオ出力を表すことができる。
【００１３】
編成ストリーム３は、レンダリングする作品に関連する編成情報とメタデータを含む。この情報は、オーディオおよびビデオ・ストリームをオブジェクトにグループ化するツリーその他編成デバイスを含むことができる。この情報はまた、作品全体、オブジェクトまたは個々のストリームに関連するメタデータを含むことができる。
【００１４】
制御ストリーム６は、一般にヘッダ情報とメッセージに分かれる制御情報を含む。ヘッダ情報は、各離散メッセージの識別子を含む。メッセージのコンテンツについては以下に詳しく述べるが、暗号キーとコンテンツ（内容）の利用に関するルールを含むことができる。
Ｉｎｆｏストリーム３１は、カバーアートを表すグラフィックス、詩のテキスト、コード化したシート音楽その他表記、独立した宣伝コンテンツ、コンサート情報、ファンクラブ情報などを限定せずに含むビット・ストリーム２の他のコンポーネントのコンテンツに関連する追加情報を運ぶ。Ｉｎｆｏストリーム３１はまた、メディアシステム１のソフトウェアまたはファームウェアの更新、ウォーターマーク等のコンテンツ固有機能のアルゴリズムのインプリメンテーション等のシステム管理と制御情報および／またはコンポーネントを運ぶことができる。
【００１５】
これらストリームはそれぞれ情報のパケットからなる。ある実施例では、各パケットは長さ３２バイトである。１つの通信チャンネル（ケーブル、バス、赤外線または無線接続等）にストリームそれぞれからのパケットが入っているため、パケットは特定のストリームに属すると特定する必要がある。ある実施例では、これは特定のストリームを特定し、そのストリームの一部である次のパケットの数を指定するヘッダを含むことによって行う。他の実施例では、各パケットは個々のストリーム情報を含むことができる。
【００１６】
例としてのヘッダ２０１を図２に示す。このヘッダは、主に編成、オーディオおよびビデオ・ストリームに用いる。制御ストリームのヘッダは以下に説明する。ヘッダ２０１はフィールド２０２を含み、これはヘッダ２０１をヘッダとして特定するビット・パターンを含む。フィールド２０３は、特定タイプのストリーム（オーディオ・ストリーム、編成ストリーム、制御ストリーム等）を識別する。フィールド２０４はエレメンタリー・ストリーム識別子（ＥＳ＿ＩＤ）が入り、これは特定のストリームの識別に用いられ、同時に複数の特定ストリームタイプのストリームに遭遇する場合に用いることができる。フィールド２０７にはタイム・スタンプが入り、システムがストリームのレンダリングを含む各種ストリームの同期に用いる。合成ブロック１１は、例えばレンダリング開始からの経過時間を記録することができる。タイム・スタンプ２０７は、合成ブロック１１が用いて、各オブジェクトをいつレンダリングすることになっているか決定する。そのため、タイム・スタンプ２０７はレンダリング開始からの経過時間を指定し、合成ブロック１１はその経過時間を用いて関連するオブジェクトをいつレンダリングするか決定することができる。
【００１７】
フィールド２０５には統御（ガバナンス）インジケータが入っている。フィールド２０６は識別されたストリームの一部である次のパケット数を識別する。その場合、関連情報はバイナリ・フォーマットでコード化される。例えば、フィールド２０２はヘッダを示すと識別される任意のビット・シーケンスを含むことがあり、フィールド２０３は２ビット含むことがあるため、４種類のストリームタイプのコード化が可能である。
【００１８】
図１に戻ると、システム１はＤｅｍｕｘ（デマルチプレクサ）７を含み、これは入力ビット・ストリーム２を受け入れ、個々のストリーム（エレメンタリー・ストリームまたは「ＥＳ」と呼ばれることがある）をシステムの該当する機能ブロックにルーチングする。
ビット・ストリーム２は、図３に示すフォーマットでコード化することができる。この図において、ヘッダ３０１はビット・ストリーム中でパケット３０２からパケット３０８に遭遇する。
【００１９】
Ｄｅｍｕｘ７がヘッダ３０１に遭遇すると、Ｄｅｍｕｘ７はヘッダ３０１をヘッダと認識し、ヘッダ情報を使ってパケット３０２−３０５を編成ストリームパケットと認識する。Ｄｅｍｕｘ７はこの情報を使ってこれらパケットを編成ブロック８にルーチングする。Ｄｅｍｕｘ７は、入っている情報を使ってヘッダ３０６を同様に取り扱い、パケット３０７から３０８をＡＶ（「オーディオ・ビデオ」）ブロック９にルーチングする。
【００２０】
ＡＶブロック９はデコンプレッサ１０を含み、これはオーディオ・ストリーム４およびビデオ・ストリーム５からエレメンタリー・ストリームを受け取り、これらストリームを解凍する。解凍されると、ストリーム情報は（ビデオ・ディスプレイ、スピーカー等を通して）操作および出力可能なフォーマットに入れられる。複数のストリームが存在する場合（２個のビデオ・ストリームがそれぞれビデオ・シーケンスの態様を記述する）、ＡＶブロック９はＥＤ ＩＤを使って各パケットを該当するストリームに割り当てる。
【００２１】
編成ブロック８は、特定のオブジェクトに入った特定のオーディオ・ストリームとビデオ・ストリームを識別するポインタ情報と、例えばオブジェクトの場所、いつ表示するか（オブジェクトに関連するタイム・スタンプ等）、他のオブジェクトとの関係（あるビデオ・オブジェクトが他のビデオ・オブジェクトの前か後か等）を記述するメタデータ情報を保存する。この編成は階層的に維持し、個々のストリームを最下位レベルで表し、ストリームをその上のレベルでオブジェクトにグループ化し、完全なシーンをさらに上のレベルにして、作品全体を最高レベルにすることができる。
【００２２】
図４は、編成ブロック８が作品の表現を保存する１方法を示す。この図において、ツリー４０１はオーディオ・ビジュアル作品全体を表す。ブランチ４０２は、作品の高レベルの編成を表す。これには、例えば、特定のシーンに関連するビデオあるいはオーディオとビデオを全て含むことができる。
サブブランチ４０３は、関連するビデオ・オブジェクトのグループを表す。このようなオブジェクトはそれぞれスクリーン全体、あるいはスクリーン内の個々のエンティティを含むことができる。例えば、サブブランチ４０３は、あるショットから次にかけて大きく変化しない背景を表すことができる。ビデオが２つの参照ポイント間を動く場合（カメラ視点が１つの顔から別の顔に変化する会話等）、サブブランチ４０４は第２の視点に用いられる第２の背景を表すことができる。
【００２３】
ノード４０５および４０６は、関連グループに入っている特定のビデオ・オブジェクトを表す。ノード４０５は、例えば遠い山脈を表しながら、ノード４０６は人物の１人の直後の木を表すことができる。
ノードはそれぞれ、ノードが用いる情報の入ったストリームを表す特定のＥＳ＿  ＩＤを指定しあるいは含む。ノード４０５には例えば、山脈を表す圧縮した（そしておそらく暗号化した）デジタル情報の入った特定のビデオ・ストリームを識別するＥＳ＿ＩＤ４０が入る。
【００２４】
合成ブロック１１は、編成ブロック８およびＡＶブロック９から入力を受け入れる。合成ブロック１１は編成ブロック８からの入力を使って、ある時に特定のオーディオ・ビジュアル・エレメントのどれが必要かを決定し、それらエレメントの編成と関係を決定する。合成ブロック１１はＡＶブロック９から解凍したオーディオ・ビジュアル・オブジェクトを受け取り、これらオブジェクトを編成ブロック８からの情報の指定する通りに編成する。そして合成ブロック１１は編成された情報をレンダリング・デバイス１２に渡すが、これはテレビ・スクリーン、ステレオ・スピーカ等である。
【００２５】
制御ブロック１３は制御ストリーム６を介して受け取るか、および／またはオーディオ・ストリーム４およびビデオ・ストリーム５を含む他のストリームにウォーターマークあるいはステガノグラフィックにコード化される制御メッセージを保存する。１つの制御フォーマットを図５に示すが、これは制御メッセージ５０１を示す。制御メッセージ５０１はヘッダ５０２およびメッセージ５０３からなる。ヘッダ５０２はフィールド６０８からなり、これは次の情報をヘッダとして識別するビット・パターンを含む。すなわち、これを編成ストリームにとってヘッダとして識別するストリーム・タイプ・フィールド５０９、この特定の制御メッセージを識別するＩＤフィールド５０４、このメッセージが制御するＥＳを識別するポインタ・フィールド５０５、この制御メッセージが制御するストリームの特定の部分を識別するタイム・スタンプ・フィールド５０７（これはストリーム全体が制御されていることを示すことができる）、メッセージ５０３の長さ（バイト）を指定する長さフィールド５０６である。メッセージ５０３は、図３に示す一般的フォーマットを使って、ヘッダ５０２の次のパケットを含むことができる。図示の例では、制御メッセージ５０１は、ＩＤフィールド５０４でコード化された一意のＩＤ１１１０００を持つ。この制御メッセージは、ポインタ・フィールド５０５に示すように、ＥＳ１４および９５を制御する。関連するメッセージは、長さフィールド５０６に示すように１，０２４バイト入る。
【００２６】
別の実施例では、制御とコンテンツの関連は編成ブロック８で作り、これはストリーム、オブジェクト等に関連するメタデータと共に、特定の制御メッセージへのポインタを保存する。しかしながら、これはユーザの発見やいたずらからこの関連を保護するのに望ましいという点で不利である。制御ブロック１３は一般にあらゆる出来事で保護しなければならないため、このブロックに関連を保護することは、編成ブロック８の保護を必要ないものとする。
【００２７】
制御ブロック１３はシステム１において制御ライン１４、１５および１６を介して制御を実施し、編成ブロック８、ＡＶブロック９および合成ブロック１１の態様をそれぞれ制御する。これら制御ラインはそれぞれ両方向通信が可能である。
制御ライン１４および１５がＡＶブロック・ストリームフロー・コントローラ１８および編成ブロックストリームフロー・コントローラ１７と通信しているところを示す。これらストリームフロー・コントローラは、制御ブロック１３が制御する機能性を持つ。図の実施例では、ストリームフロー・コントローラは、ストリームフロー・コントローラの処理している情報と共に２段階パイプラインの第１段階として、関連する機能ブロックに渡されるところを示す。これによって制御機能をシステムのコンテンツ操作およびディスプレイ機能から隔離することが可能となり、ブロックの基礎となる機能を変えることなく制御を追加できる。別の実施例では、ストリームフロー・コントローラは関連する機能ブロックに直接統合される。
【００２８】
ストリームフロー・コントローラ１７および１８は、暗号エンジン１９および２０をそれぞれ含む。これら暗号エンジンは、制御ブロック１３の制御の下で動き、Ｄｅｍｕｘ７から受け取った暗号化されたパケットストリームを解読および／または暗号的に検証する（セキュアなハッシュ、メッセージ認証コード、および／またはデジタル署名機能等）。解読と検証は、ストリームの保護要件に従って選択的あるいは任意に行うことができる。
【００２９】
暗号エンジン１９および２０は比較的複雑で、例えば、暗号ハッシュ、メッセージ認証コード計算、および／または暗号的検証プロセスを実行する検証カルキュレータを含むことができる。さらに、以下に詳しく説明するように、追加タイプの統御関連処理も用いることができる。別の実施例では、１つのストリームフロー・コントローラを編成ストリーム３およびオーディオ・ビデオ・ストリーム４−５両方に用いることができる。これによって、システム１によって使用されるコストとスペースが減る。システム１は複数のＡＶブロックを含み、それぞれが別のオーディオまたはビデオ・ストリームを平行して取り扱うことができるため、これらの減少は大きい。
【００３０】
ストリームフロー・コントローラが１つのブロックに集中している場合、これらはＤｅｍｕｘ７に直接組み込むことができ、Ｄｅｍｕｘ７はストリームを機能ブロックにルーチングする前に統御処理を取り扱うことができる。このような実施例によってビット・ストリーム２全体の制御された解読または検証が可能になり、この解読または検証は個々の機能ブロックへストリームをルーチングする前に発生させることができる。Ｄｅｍｕｘ７は（ヘッダ情報を暗号化するであろう）機能ブロックへのストリームのルーチングに必要なヘッダ情報を検出あるいは読み取る能力がないため、ビット・ストリーム２全体の暗号化は（個々のＥＳの個々の暗号化とは反対に）、ストリーム・コントローラ機能をＤｅｍｕｘ７に組み込むこと無しでは困難あるいは不可能である。
【００３１】
上述の通り、ビット・ストリーム２に含まれる個々のストリームはそれぞれ個々に暗号化できる。暗号化したストリームは、統御インジケータ２０５として図２に示すように、ストリームのヘッダの特定のインジケータによって識別される。
Ｄｅｍｕｘ７によって該当する機能ブロックにヘッダが渡されると、そのブロックに関連するストリームフロー・コントローラはヘッダを読み取り、次のパケットが暗号化されているか、そうでなければ統御の対象か否かを判断する。統御を用いていないことをヘッダが示すと、ストリームフロー・コントローラはヘッダとパケットを機能ブロックを介して変更なしに渡す。統御インジケータ２０５は、従来通りにコード化したコンテンツ（未保護のＭＰＥＧ−４コンテンツ等）を統御インジケータなしと認識して、通常処理を介して渡すよう設計することができる。
【００３２】
ストリームフロー・コントローラがセットされた統御インジケータを検出した場合、そのストリームに関連するＥＳ＿ＩＤと現在のパケットに関連するタイム・スタンプを制御ライン１４または１５によって制御ブロック１３に渡す。すると制御ブロック１３はＥＳ＿ＩＤとタイム・スタンプ情報を使ってどの制御メッセージがそのＥＳに関連するか識別する。そして関連するメッセージが呼び出され、おそらく処理されて統御のために用いられる。
【００３３】
単純な統御ケースを図６に示すが、これは図１の機能ブロックを使って発生するステップを示す。ステップ６０１において、Ｄｅｍｕｘ７はヘッダに遭遇し、ヘッダがＡＶストリームの一部であると判断する。ステップ６０２において、Ｄｅｍｕｘ７はヘッダをＡＶストリーム・コントローラ１８に渡す。ステップ６０３において、ＡＶストリーム・コントローラ１８はヘッダを読み取り、統御インジケータがセットされていると判断し、パス６０４に沿ったそれ以降の処理をトリガする。ステップ６０５では、ＡＶストリーム・コントローラ１８はヘッダからＥＳ＿ＩＤとタイム・スタンプを取得し、これらを制御ライン１５に沿って制御ブロック１３に送る。ステップ６０６において、制御ブロック１３はＥＳ＿ＩＤを調べ、ＥＳ＿ＩＤが特定の制御メッセージに関連すると判断する。ステップ６１１において、特定のＥＳに関連する制御メッセージが１個以上ある場合、制御ブロック１３はタイム・スタンプ情報を使って制御情報から選択する。ステップ６０７において制御ブロック１３は該当する制御メッセージにアクセスし、解読および／または検証のための暗号キーを取得する。ステップ６０８において、制御ブロック１３は制御ライン１５に沿ってＡＶストリーム・コントローラ１８に暗号キーを渡す。ステップ６０９において、ＡＶストリーム・コントローラ１８は暗号キーを暗号エンジン２０への入力として用い、エンジンはヘッダの次のパケットを、Ｄｅｍｕｘ７から受け取ると同時に解読および／または検証する。そしてステップ６１０において、解読したパケットはＡＶブロック９に渡され、これが従来の方法でパケットを解凍および処理する。
【００３４】
タイム・スタンプ情報は、特定のＥＳに該当する制御メッセージを変更することが望ましい時に有益である。たとえば、１つのキー（あるいは多数のキーであっても）を破壊する攻撃者がコンテンツを利用できないよう、キーの異なるストリームの様々な部分をコード化することは有益である。これは、同じストリームを持った多数の制御メッセージを特定期間有効な各制御メッセージに関連させることで可能である。するとタイム・スタンプ情報を使って特定の時にどの制御メッセージ（およびキー）を使うかを選択することができる。あるいは、１つの制御メッセージを用いることができるが、制御ストリームを介して更新した情報が渡され、この更新は新しいタイム・スタンプと新しいキーから構成される。
【００３５】
別の実施例では、制御ブロック１３は、タイム・スタンプ情報を使って適切なストリームフロー・コントローラに適切なキーをプロアクティブに送り、いつキーが必要か決定することができる。これによって全体の待ち時間が減少する。
図１の制御ライン１６は、情報が編成ブロック８およびＡＶブロック９から合成ブロック１１に渡された時に活動を開始し、完成した作品をレンダリング装置１２によってレンダリングする準備をする。合成ブロック１１がオブジェクトをレンダリング装置１１に送ると、合成ブロック１１はスタート・メッセージを制御ブロック１３に送る。このメッセージはオブジェクト（関連するＥＳ＿ＩＤを含む）を識別し、そのオブジェクトのディスプレイ（あるいは他のレンダリング）の開始時間を指定する。オブジェクトがレンダリングされなくなると、合成ブロック１１はエンドメッセージを制御ブロック１３に送り、オブジェクトのレンダリングが終わったことと、終了が発生した時間を指定する。特定のオブジェクトの複数のコピーを同時にレンダリングすることができる。このため、合成ブロック１１が送るスタートおよびストップ・メッセージは、オブジェクトのどのインスタンスをレンダリングしているか指定する割り当てのインスタンスＩＤを含むことができる。
【００３６】
制御ブロック１３は特定のオブジェクトのスタートおよびストップ時間に関連する情報を保存することができ、および／またはこの情報をポート２１を通じて外部装置（外部サーバ３０等）に渡すことができる。この情報によって、制御ブロック１３はどのオブジェクトが解読されたかのみでなく、どのオブジェクトが実際に使われたかを記録することができる。システム１は、実際に使われるより多いオブジェクトを解読、検証および／または解凍することができるため、これを用いることができる。制御ブロック１３はまた、オブジェクトの利用の長さを決定し、どのオブジェクトを共に用いたか決定することができる。この種の情報を高度な請求書発行や監査システムに用いることができるが、これについては以下に詳しく述べる。
【００３７】
制御ライン１６はまた、合成ブロック１１の動作の制御に用いることができる。特に、制御ブロック１３は特定のオブジェクトのレンダリングが有効な時を指定する情報を保存し、オブジェクトをレンダリングした回数を記録することができる。制御ブロック１３がオブジェクトが違法にレンダリングされている（すなわち、レンダリングを制御するルールに違反して）と判断した場合、制御ブロック１３は合成ブロック１１の動作を終結するか、違法オブジェクトの消去を強制することができる。
【００３８】
別の実施例では、制御ライン１６による制御レベルは少なくとも部分的にはそのラインの存在を必要とせずに与えられる。その代わり、制御ブロック１３は編成ブロック８について現在有効な編成情報のハッシュを保存することができる。このハッシュは制御ストリーム６を介して受け取るか、あるいは編成ブロック８に入っている情報に基づいて制御ブロック１３によって生成することができる。
【００３９】
制御ブロック１３は編成ブロック８に現在常駐する情報のハッシュを定期的に作成し、これを保存したハッシュと比較する。相違は、編成ブロック８の情報に対して未認証の改変が行われ、これによってユーザがその情報に関連するルールに違反して情報をレンダリングする可能性があることを示す。このような場合、制御ブロック１３は、編成ブロック８に現在常駐する情報の削除を含む適切な行動を取ることができる。
【００４０】
編成ブロック８が合成ブロック１１によるコンテンツの利用を制御し、編成情報に指定される場合を除いてコンテンツをレンダリングできないようシステム１が設計されている場合、制御ブロック１３は現在の編成ブロックのコンテンツが制御ブロック１３の受け取ったハッシュに一致することを検証し、これによって、制御ライン１６の存在の少なくとも１つの理由を取り除くことによって、情報のレンダリングを制御することができる。
【００４１】
制御ブロック１３はまた、セキュアなハッシング、メッセージ認証コード、および／またはデジタル署名等の暗号検証手段により、受け取ったコンテンツのオリジン、整合性、真正性、その他特性を安全に確認する責任を負う。
システム１はまた、ＩＲＰ２２として示すインターライト・ポイントを含むことができる。ＩＲＰ２２は保護された処理環境（ＰＰＥ等）で、ここではルール／制御を処理することができ、暗号キー等の重要な情報を保存することができる。ＩＲＰ２２は制御ブロック１３内に組み込むか、別個モジュールとすることができる。図示のように、ＩＲＰ２２はＣＰＵ２３（あらゆるタイプの処理ユニットでよい）、暗号エンジン２４、乱数発生器２５、リアルタイムクロック２６およびセキュアメモリ２７を含むことができる。特定の実施例では、これら要素のいずれかを省略することができ、追加機能を含むことができる。
【００４２】
（統御ルール）
制御ブロック１３の保存する制御メッセージは非常に複雑である。図７に、制御メッセージを制御ブロック１３に保存する方式を示すが、これはアレイ７１７から構成される。コラム７０１は、制御メッセージを保存するアドレスから構成される。コラム７０２は各制御メッセージの識別子からなる。この機能は、コラム７０１の所在地情報を識別子として用いるか、または識別子に対応する場所にメッセージを保存することによって、コラム７０１のものと組み合わせることができる。コラム７０３は制御メッセージが制御する各ストリームのＥＳ＿ＩＤからなる。コラム７０４はメッセージそのものからなる。そのため、所在地１に保存された制御メッセージはＩＤ１５を持ち、ストリーム９０３を制御する。
【００４３】
単純なケースでは、メッセージは、メッセージの制御するストリームに関連するコンテンツの解読に用いる暗号キーを含むことができる。これを図７の暗号キー７０５によって示す。暗号キーおよび／または検証値も含んで、ストリームの整合性またはオリジンの暗号検証が可能である。
より複雑なケースでは、メッセージは規制されたコンテンツへのアクセスまたは利用を規制するよう設計された１個以上のルールを含むことができる。ルールは多数のカテゴリーに当てはまる。
【００４４】
ルールでは、システム１の特定の態様またはシステム１のユーザを、規制コンテンツの解読または利用前に検証するよう求めることができる。たとえば、システム１はシステムＩＤ２８を含み、これがシステムの一意の識別子を保存する。制御メッセージに含まれる特定のルールは、システムＩＤ２８に特定の値が入っているシステムでのみ特定のストリームを解読できるよう指定することができる。これを図７の行２に示すが、ここではメッセージはルールとコマンドからなるよう示される。ルールは暗示的なものであるため、表には明示的に保存できない（表はルール、ルールが呼び出すルール固有機能（コマンド）または機能のみ保存することができる）。
【００４５】
この場合、ストリーム・コントローラ１８がセット統御インジケータの入ったストリーム２０３１のヘッダに遭遇すると、ストリーム・コントローラ１８は関連するＥＳ＿ＩＤ（２０３１）を制御ブロック１３に渡す。すると制御ブロック１３はＥＳ＿ＩＤを使ってストリーム２０３１を規制する制御メッセージ２０を識別する。制御メッセージ２０は、コマンド７０７および認証されたシステムＩＤ７０８を含む（または呼び出す）ルール７０６を含む。認証されたシステムＩＤ７０８は、制御メッセージ２０の一部として、あるいは他の制御メッセージ（制御メッセージ９等）の一部としてシステム１に受け取られており、制御メッセージ２０が認証されたシステムＩＤへのアクセスを得るため参照することができる。たとえば、ケーブル加入者がプレミアムショーを予め登録している場合にこのようなケースが存在することになる。ケーブルシステムはその登録を認識し、ユーザにシステムＩＤに対応するＩＤを送ることによって、ユーザがそのショーを見ることを認める。
【００４６】
ルール７０６を呼び出すと、対応するコマンド７０７はシステムＩＤ２８にアクセスし、システムＩＤ番号を取得する。するとコマンドはこの番号をルール７０６の指定する認証されたシステムＩＤ７０８と比較する。２つの数が一致すると、コマンド７０７は暗号キー７０９をストリーム・コントローラ１８に放出し、これが暗号キー７０９を使ってＥＳ＿ＩＤ２０３１に対応するストリームを解読する。２つの数が一致しない場合、コマンド７０７は暗号キー７０９を発行できず、ストリーム・コントローラ１８はストリームを解読することができない。
【００４７】
これらの機能を実行するため、ある実施例では、制御ブロック１３は処理ユニットおよびメモリを含むか、これにアクセスできる。処理ユニットは、ルールに含まれるか呼び出されるコマンドを実行できることが望ましい。メモリはルールと関連情報（制御メッセージのＩＤと規制されるＥＳのＩＤ）を保存する。
制御ブロックが実行する機能は感度が高く、貴重なコンテンツの規制に関与するため、制御ブロック１３は部分的あるいは完全にいたずらや観測に抵抗するバリアによって保護される。上述の通り、処理ユニット、セキュアメモリ、および各種のその他統御関連要素をＩＲＰ２２に含み、これを制御ブロック１３内に含むか、あるいは別にすることができる。
【００４８】
制御ブロック１３はまた、より複雑な動作を実行することができる。ある例では、制御メッセージはシステム１から情報にアクセスし予想される情報と比較するだけでなく、将来の利用のために保存することを求める。たとえば、制御メッセージはストリームの解読が可能だが、システムＩＤ２８がダウンロードされ、制御ブロック１３に保存された後のみである。これによって、制御メッセージは定期的に、あるいは特定のストリームの再表示の試みの度にシステムＩＤ２８に対して保存されたシステムＩＤをチェックし、これによってストリームが１つのシステムでのみ活動することを制御メッセージが保証できるようになる。
【００４９】
制御ブロック１３はまた、情報をダイナミックに取得する。たとえば、システム１はユーザ・インターフェース２９を含み、これはあらゆるタイプのユーザのインプット機能（ハードウェアのボタン、ビデオ・スクリーンに表示される情報等）を含むことができる。制御メッセージからの特定のルールは、ユーザがストリームの解読または利用できるようになる前に情報の入力を求める。この情報は、たとえばパスワードで、ルールによって保存されたパスワードに対してチェックし、そのユーザがストリームのレンダリングを許されていることを保証する。
【００５０】
ユーザから取得した情報はさらに複雑である。たとえば、あるルールでは、暗号キーの放出ができるようになる前にユーザが支払いまたは個人情報を入力することを求める。支払い情報は、たとえば、クレジットカードまたはデビット・カードの番号を構成することができる。個人情報は、ユーザの氏名、年齢、住所、Ｅメール・アドレス、電話番号等を含むことができる。入力した情報はポート２１を介して外部サーバ３０に送られ、検証される。外部サーバ３０からの検証メッセージ受信後、ルールは暗号キーの放出を認める。あるいは、制御ブロック１３が、後で接続するまで外部装置（またはネットワーク）に情報を保存し、「オフライン」モードで動作するよう設計できる。このような場合、制御ブロック１３は接続を定期間隔で行うことを求めるか、あるいは外部接続の確立まで取得できる認証数を制限することがある。
【００５１】
より複雑なシナリオでは、制御メッセージは条件付ルールを含むことができる。図７に示す表の行４で示す特定の例では、制御メッセージ７００は制御ストリーム４９−５３として示される。制御メッセージ７００はさらにルール７１０、コマンド７１１および暗号キー７１２−７１６からなる。メッセージには当然ながらさらに多数の暗号キーを保存することができる。
【００５２】
この場合、ルール７１０は一定額の支払い（あるいは一定量の情報の提供）に同意したユーザはストリーム４９を見ることができるが、その他のユーザは全員ストリーム５０、またはストリーム４９と５０の組み合わせを見なければならないと指定する。この場合、ストリーム４９は映画またはテレビ番組を表し、ストリーム５０は広告を表す。ある実施例では、第１部分をキー７１２、第２部分をキー７１３、第３部分をキー７１４で解読するというように、ストリーム４９の様々な部分を異なるキーで解読する。ルール７１０はストリーム４９の全体を解読するために使用する全てのキーを含んでいる。ユーザが当初ストリーム４９のコード化されたビデオにアクセスしようとすると、ルール７１０は、ユーザがペイ・フォー・ビュー・モードあるいは広告モードを望むかを尋ねるメッセージを出す。ユーザがペイ・フォー・ビュー・モードを選択すると、ルール７１０は支払い情報を保存（あるいは送信）し、ストリーム・コントローラ１８に暗号キー７１２を渡す。ストリーム・コントローラ１８は、次のパケットセットの解読に別のキーが必要なことを示すヘッダを受け取るまで、暗号キー７１２を使って第１ストリームを解読する。ストリーム・コントローラ１８の要求により、制御ブロック１３は支払いが行われたか判断するためチェックしてから、暗号キー７１３を放出し、これが次のパケットの解読に使われる。ルール７１０はさらに編成ストリーム５２に対応する暗号キー７１６を放出するが、このキーは広告のないビデオに対応する。
【００５３】
一方、ユーザが広告モードを選択していると、ルール７１０はストリーム・コントローラ１８に暗号キー７１２を放出し、ストリーム４９の解読を可能とする。ルール７１０はまた広告の入ったストリーム５０の解読を認める。ルール７１０はさらに、編成ブロック８に暗号キー７１５を放出する。暗号キー７１５は編成ストリーム５１に一致する。編成ストリーム５１はストリーム４９からビデオを参照するが、ストリーム５０から広告も参照する。ルール７１０は暗号キー７１６の放出を拒否するが、このキーは広告のないビデオに対応する編成ストリーム５２に対応する。
【００５４】
動作中、制御ブロック１３は制御ライン１６を介して合成ブロック１１からの情報をモニタすることができる。この情報は、実際にレンダリングされた各オブジェクトのアイデンティティと、レンダリングのスタートおよびストップ時間を含むことができる。制御ブロック１３はこの情報を使って、ストリーム４９からのビデオの第２部分の解読のため暗号キー７１３を放出する前に、広告が実際にレンダリングされていることを判断する。このフィードバック・ループによって、制御ブロック１３は広告が解読されているだけでなく表示されていることを確認できる。合成ブロック１１は比較的保護されておらず、無節操なユーザが、見る前に広告を除去することができるため、この確認が必要になる。
【００５５】
さらに様々な比較的複雑なシナリオが考えられる。たとえば、制御ブロック１３のルールは、条件付解読または利用を制御する所在地または視聴者に関する情報を使って、特定の地理的位置または特定タイプの視聴者のためにプログラミングをカスタマイズすることができる。この情報はシステム１に保存するか、ユーザが入力することができる。
【００５６】
アレイ７１７の行５で示す別の例では、ルール７１９は予算(バジェット）７１８を指定することができ、これはユーザが利用できる使用回数、ユーザが使った金額等に関する情報を含むことができる。動作中、ルール７１９は、予算対象の活動が発生するたびに（関連作品が再生されるたび等）、予算７１８を安全に保存およびデクリメントすることを求める。予算がゼロに達すると、ルール７１９はその作品をもう再生しないか、ユーザがたとえばクレジットカード番号またはパスワードを入力するか、外部サーバにコンタクトすることによって追加予算を取得できることを示すメッセージを表示することを指定できる。
【００５７】
別の例では、ルールはユーザが作品を他の装置にコピーする能力を制御できる。このルールは、たとえば、１個以上の装置上でユーザが規制された作品を使用することを認めるように指定することができるが、その使用は常に一回のみが有効である。ルールは、ユーザが作品を「チェックアウト」したか否かに関する表示を安全に保存することを指定する。ユーザが作品を他の装置に（例えばポート２１を介して）作品をコピーする場合、ルールは、その作品を暗号化フォームでのみ送信し、関連制御メッセージをそれと共に送信することを求める。ルールはさらに、インジケータを安全に設定し、ユーザが作品を利用しまたはコピーしようとするたびにインジケータをチェックするよう求めることができる。インジケータが設定されると、ユーザが一度に１個の装置で作品を利用する権利のみを有し、その作品が現在他の装置に「チェックアウト」されていてチェックインされていないことをインジケータが確立しているために、ルールは作品を解読しあるいは使用されないように求めるだろう。
【００５８】
受信装置は同じタイプのインジケータを含むことができ、ユーザはインジケータがセットされていない限り、作品を利用することができる。ユーザが元の装置で作品を利用することを欲する場合、２個の装置が通信することができ、インジケータは第２をセット、第１をリセットする。これによって、２箇所に作品を保存することができるが、１箇所でのみ利用する。
【００５９】
別の実施例では、関連する制御メッセージを１個の装置から他方へコピーしてオリジナルの装置から消去することで同じ結果に到達できる。制御メッセージには解読に用いるキーが含まれるため、これによって、作品が一度に１個の装置でのみ利用されるようにする。
ある実施例では、この技術を使って、ユーザが同時利用のため複数の選択ができないようにして、パーソナルコンピュータから民生用電子装置へデジタル・メディア・ファイル（音楽、ビデオ等）を通信することができる。そのため、より大型の高度な装置（パーソナルコンピュータ）がファイルをダウンロードしてから、パーソナルコンピュータに存在する一定の機能がないポータブル装置（ハンドヘルド音楽プレイヤー等）にファイルを「チェックアウト」することができる。
【００６０】
ルールを使って、当初のユーザが、ファイルの制御を譲ることで、ファイルを別のユーザに転送することを指定できる。このようなルールは、１個の装置から別の装置へのファイルの転送について上述した技術と同様に動作でき、または、転送後、元の装置からオリジナルのファイルを完全に消去することを求めることができる。
【００６１】
制御ブロック１３のルールを少なくとも２個のチャンネルを介して追加または更新することができる。新しいルールは、制御ストリーム６を介して取得する。制御メッセージに制御ブロック１３にすでに存在する制御メッセージに対応する識別子が入っている場合、その制御メッセージ（入っているルールを含む）はオリジナルの制御メッセージに上書きできる。新しいルールは、たとえば、既存のルールと同じであることができるが、新しいタイム・スタンプと新しいキーを持っているため、複数のキーで暗号化したストリームの解読ができる。システム１は、一定のルールが上書きされないよう設計することができる。これは、アレイ７１７のある位置を上書き不可と指定するか、または特定のルールは上書きあるいは改変できないことを示すフラグその他インジケータを設けることによって実行できる。これによって、下流のディストリビュータが上流ディストリビュータの追加したルールを除去または改変できないようにしながら、下流ディストリビュータがルールを追加できることを含めて、ある種のスーパー流通モデルが可能となる。
【００６２】
さらに、新しいルールは、編成ストリーム３、オーディオ・ストリーム４またはビデオ・ストリーム５に、ウォーターマークまたはステガノグラフィック・コード化の形式でコード化することができる。
新しいコードはまた、ポート２１を介して取得することができる。ポート２１は、外部装置（スマートカード、ポータブルメモリ等）に接続するか、外部ネットワーク（外部サーバ３０）に接続することができる。ルールはポート２１を介して特別に、または制御ブロック１３が送る要求の結果として取得される。たとえば、制御メッセージ１４（図７、行６）は、新しいルールを特定のＵＲＬからダウンロードし、ストリーム１２０１の規制に用いるよう指定するルールを含むことができる。
【００６３】
ルールを含む制御メッセージは、ＤｉｇｉＢｏｘなどの安全な送信フォーマットを使ってコード化できる。ＤｉｇｉＢｏｘは、ビジネスルール、コンテンツ記述情報、コンテンツ解読情報および／またはコンテンツ検証情報のセットを配信するための安全な容器手段である。１個以上のＤｉｇｉＢｏｘをメディア・コンテンツのヘッダ、またはメディア内のデータ・ストリームの中に入れることができる。
【００６４】
図１２はＤｉｇｉＢｏｘフォーマットのある実施例と、そのフォーマットを制御メッセージに組み込む方法を示す。制御メッセージ１２０１は、制御メッセージ・ヘッダ１２０２および制御メッセージ・コンテンツからなる。他で述べるように、制御メッセージ・ヘッダ１２０２はＤｅｍｕｘ７（図１）が制御ブロック１３にメッセージを適切にルーチングするために用いる情報を含む。
【００６５】
制御メッセージ１２０１の制御メッセージ・コンテンツ１２０３はＤｉｇｉＢｏｘ１２０４からなり、また追加情報を含むことができる。ＤｉｇｉＢｏｘ１２０４は、ＤｉｇｉＢｏｘヘッダ１２０５、ルール１２０６およびデータ１２０７からなる。ルール１２０６は１個以上のルールを含むことができる。データ１２０７は、ＥＳ＿ＩＤ１２０８、暗号キー１２０９、検証データ１２１０を含む各種データを含むことができる。データ１２０７はまた、暗号アルゴリズム、アルゴリズムと用いるチューニング・モード、解読およびチェーニングが用いるキーおよび初期化ベクトルの仕様など、暗号情報を含むことができる。
【００６６】
データ１２０７に入っている初期化ベクトルは、オリジナルの暗号化プロセスへの入力を構成するため、解読に必要な点で暗号キーに似ている。ある周知の先行技術実施例では、初期化ベクトルはベースの初期化ベクトル（６４ビット乱数）とフレーム数中のｘｏｒ（イクスクルーシブ・オア）またはコンテンツ・アイテムのスタート時間で起動することで生成できる。
【００６７】
データ１２０７内の検証データ１２１０は、暗号または認証値、キーインした認証値を計算するための暗号キー（メッセージ認証コード等）、デジタル署名、および／またはデジタル署名検証に用いるパブリックキー証明書を含む。
そのため、ＤｉｇｉＢｏｘは上述の情報を、ルール、ストリームＩＤおよび暗号キーと値を含む制御メッセージの一部として組み込む。
【００６８】
別の実施例では、ＤｉｇｉＢｏｘヘッダ１２０５は、Ｄｅｍｕｘ７が読み取り、制御ブロック１３にルーチングできるように設計する。このような実施例では、ＤｉｇｉＢｏｘ１２０４はそれ自身が制御メッセージ全体を構成するため、制御メッセージ１２０１内にＤｉｇｉＢｏｘ１２０４を入れ子にする必要がなくなる。
【００６９】
ＤｉｇｉＢｏｘ１２０４のコンテンツの一部または全部は一般に暗号化される。これには、ルール１２０６、データ１２０７およびヘッダ１２０５の一部あるいは全部が含まれる。システム１は、ＤｉｇｉＢｏｘがＩＲＰ２２などの保護された環境でのみ解読（開放）されるよう設計できる。別の実施例では、制御ブロック１３はＤｉｇｉＢｏｘをＩＲＰ２２に処理のためルーチングする必要なく制御ブロック１３で開けるよう、ＩＲＰ２２の機能を直接組み込むことができる。ある実施例では、ＤｉｇｉＢｏｘ１２０４の解読に用いる暗号キーは、ＩＲＰ２２（または制御ブロック１３）に保存し、ＤｉｇｉＢｏｘが保護された環境でのみ開かれるようにする。
【００７０】
ルール１２０６は、ＤｉｇｉＢｏｘデータ１２０７へのアクセスまたは利用を規制するルールである。ある実施例では、これらルールは規制されるストリームを直接制御しない。しかし、暗号キー１２０９はルール１２０６に準拠しないとアクセスおよび利用ができないため、ルール１２０６は事実上規制されるストリームを間接的に制御するが、それは、これらストリームがルールに準拠しないと取得できないキーの利用によってしか解読できないためである。別の実施例では、データ１２０７はＤｉｇｉＢｏｘから取りだし、図７のアレイ７１７などの表に保存することのできる追加ルールを含む。
【００７１】
ＤｉｇｉＢｏｘへのアクセスまたは利用を規制するルールは、ＤｉｇｉＢｏｘを伴うか（図１２に示すように）あるいは別に送信することができ、その時、イベントルール１２０６はデータ１２０７へのアクセスに用いるルールへのポインタまたは参照を含む。ＤｉｇｉＢｏｘを受け取ると、制御ブロック１３は制御ストリーム６を介して別にルールを受け取るか、またはポート２１を介してルールを要求し、受け取る。
【００７２】
（パイプライン化したインプリメンテーション）
図１に示すシステムの潜在的欠点の１つは、このシステムがリアルタイムにコンテンツをレンダリングするよう設計されたパイプライン・システムに複雑さとフィードバックを導入する点である。パイプラインのレンダリングは一般にＤｅｍｕｘ７、編成ブロック８およびＡＶブロック９、合成ブロック１１およびレンダリング装置１２からなる。コンテンツはストリーミングして受け取り、リアルタイムでレンダリングしなければならないため、パイプライン処理は高度の効率的に厳しい時間的制約の下で行われなければならない。利用可能な時間内に処理できないと、レンダリング装置１２への出力が中断されるか、受信ビット・ストリーム２が利用可能なバッファをオーバフローし、これによって、受信データの一部が失われることになる。
【００７３】
システム１の別の実施例は、これら問題に対処するよう設計されているが、標準システムのコンポーネントを利用する能力とシステム全体のセキュリティが犠牲になる可能性がある。この代替実施例を図１１に示し、これはシステム１１０１を示す。
システム１１０１は図１のシステム１と多くの点で似ている。これは、編成ストリーム１１０３、オーディオ・ストリーム１１０４、ビデオ・ストリーム１１０５および制御ストリーム１１０６からなるビット・ストリームを受信する。これらストリームはＤｅｍｕｘ１１０７が受信し、これが編成ストリーム１１０３を編成ブロックに渡し、オーディオ・ストリーム１１０４とビデオ・ストリーム１１０５をＡＶブロック１１０９に渡す。編成ブロック１１０８とＡＶブロック１１０９は図１中の対応物と同様に動作し、情報を合成ブロック１１１０に渡し、これはその情報を首尾一貫した全体に編成し、レンダリング装置１１１１に渡す。編成ブロック１１０８に送られたストリームは、ストリームフロー・コントローラ１１１２によって解読および／または検証され、ＡＶブロック１１０９に送られたストリームはストリームフロー・コントローラ１１１３によって解読および／または検証される。
【００７４】
しかしながら、システム１１０１は、制御とフィードバックが分散し、処理およびレンダリングパイプラインに直接統合される点でシステム１と異なる。そのため、システム１１０１は独立した制御ブロックがなく、また合成ブロック１１１０から戻るフィードバックパスがない。
システム１１０１では、制御は編成ブロック１１０８とＡＶブロック１１０９で直接行う。システム１同様、暗号キーは制御ストリーム１１０６を介して受け取る（別の実施例では、キーは編成ストリーム１１０３またはオーディオ・ビデオ・ストリーム１１０４および１１０５のヘッダその他情報に直接組み込むことができる）。これらのキーは暗号化したコンテンツのストリームの種類と、複数のストリームタイプが可能な場合は、特定の制御されたストリームの識別子に関する情報を含むデータフォーマットに含まれる。
【００７５】
Ｄｅｍｕｘ１１０７は、制御ストリーム１１０６のキーに遭遇すると、システムの種類に関する情報を読み取り、適切なストリームフロー・コントローラにキーをルーチングする。Ｄｅｍｕｘ１１０７がたとえば編成ストリーム１１０３の解読または検証のために設計されたキーに遭遇すると、これはストリームフロー・コントローラ１１１２にキーをルーチングする。
【００７６】
ストリームフロー・コントローラ１１１２は受け取ったキーをストレージ位置１１１４に保存する。ストレージ位置１１１４はキーを保存し、また制御されたストリームＩＤのインジケータを保存する。
ストリームフロー・コントローラ１１１２は暗号エンジン１１１５を含み、これは受け取ったキーを使って編成ストリーム１１０３の暗号化および／または保護された部分を解読および／または検証する。キーは自身を暗号化して受け取り、一定程度のセキュリティを提供することができる。このような場合、ストリームフロー・コントローラは、保存された情報をキーまたはキーシードとして用いるなど、様々な技術を使ってキーを解読することができる。保存された情報は、たとえばビット・ストリーム１１０２または別個のポートを介して早期に提供される「メタキー」を構成する。
【００７７】
ＡＶブロック１１０９と関連するストリームフロー・コントローラ１１１３は、対応するストレージ位置１１１６および暗号エンジン１１１７を含み、ストリームフロー・コントローラ１１１２について説明した動作と同様に動作する。
このインプリメンテーションにより、ストリームフロー・コントローラと別個の制御ブロックとの間の通信の必要性において本来備わっている、待ち時間ペナルティを回避する。
【００７８】
この代替インプリメンテーションはまた、合成ブロックからのフィードバック・チャンネルを取り除く（図１、制御ライン１６）。このフィードバック・チャンネルは、合成ブロック１１からレンダリング装置１２に渡されるコンテンツが、レンダリングを認証されたコンテンツであることを保証するために用いる。図１１に示す別の実施例では、このフィードバック・チャンネルは存在しない。その代わり、この実施例は、合成ブロック１１１０が、レンダリング装置１１１１に送られる情報の正確な構造の決定を編成ブロック１１０８からの情報に依存するという事実に頼っている。合成ブロック１１１０は編成ブロック１１０８の指令する編成に反して情報を合成することはできない。
【００７９】
ある実施例では、編成ブロック１１０８によるこの制御は、あらゆるフィードバックの必要性を取り除くに十分である。これは、編成ブロック１１０８を、ストリーム・コントローラ１１１２を介してのみ情報を受け入れるよう設計し、ストリーム・コントローラ１１１２をストレージ位置１１１４に保存したルールの制御下でのみ情報を解読しまたは検証するよう設計することができるためである。
【００８０】
このような実施例では、セキュリティは編成ブロック１１０８にセキュアメモリ１１１８を組み込むことでさらに増加する。セキュアメモリ１１１８はストリーム・コントローラ１１１８が有効に解読し、現在、メイン編成ブロックメモリ１１１９が使用している編成ツリーのコピーまたはハッシュを保存することができる。編成ブロック１１０８を使って、メイン編成ブロックメモリ１１１９に保存された編成ツリーをセキュアメモリ１１１８に保存されたツリーと定期的に比較することができる。不一致が見つかったら、これは、攻撃者がメイン編成ブロック１１１９に保存された編成ツリーを改変しているため該当するルールに違反してコンテンツがレンダリング可能であることを示す。このような状況では、編成ブロック１１０８を使って、メイン編成ブロックメモリ１１１９のコンテンツをセキュアメモリ１１１８のコンテンツに置きかえることを含む、保護対策を取ることができる。
【００８１】
（ＭＰＥＧ−４インプリメンテーション）
上述の一般的システムは、図８に示すように、ＭＰＥＧ−４システム８０１としてＭＰＥＧ−４システムで実施することができる。
ＭＰＥＧ−４システム８０１は、ＭＰＥＧ−４ビット・ストリーム８０２を入力として受け入れる。ＭＰＥＧ−４ビット・ストリーム８０２は、ＢＩＦＳストリーム８０３、ＯＤストリーム８０４、オーディオ・ストリーム８０５、ビデオ・ストリーム８０６およびＩＰＭＰストリーム８０７を含む。これらのストリームはＤｅｍｕｘ８０８に渡され、これがヘッダ情報を調べて、パケットを適宜ＢＩＦＳ８０９、ＡＶＯ８１０、ＯＤ８１１またはＩＰＭＰシステム８１２にルーチングする。
【００８２】
ＩＰＭＰシステム８１２はＩＰＭＰメッセージをＩＰＭＰストリーム８０７を介して受け取る。これらのメッセージは、特定のメッセージおよび関連するＩＰＭＰメッセージを識別するヘッダ情報を含む。ＩＰＭＰメッセージは制御情報を含むことができ、これは暗号キー、検証情報を含み、および／または上述のような複雑な統御ルールを含むことができる。
【００８３】
ストリーム・コントローラ８１３、８１４および８１５は、ＢＩＦＳ８０９、ＡＶＯ８１０およびＯＤ８１１にそれぞれ渡されるストリームの解読、検証および／または規制を行う。
ＯＤ８１１はオブジェクト・ディスクリプタを保持し、これは特定のオブジェクトを記述するメタデータを含む。このメタデータは特定のエレメンタリー・ストリームまたはオブジェクトを含むストリームの識別子を含み、またオブジェクトを規制する特定のＩＰＭＰメッセージへのポインタを含むことができる。あるいは、ＩＰＭＰメッセージと特定のオブジェクトまたはストリームとの関係をＩＰＭＰストリーム８１２内の表またはその他の形式に保存することができる。
【００８４】
ＩＰＭＰシステム８１２は制御ライン８１６、８１７、８１８および８１９を介して他の機能ブロックを制御し、これらはそれぞれＩＰＭＰシステム８１２からの制御／統御信号および他の機能ブロックからの情報と要求をＩＰＭＰシステム８１２に送る。情報要求はＥＳ＿ＩＤおよびタイム・スタンプを含むことができ、ＩＰＭＰシステム８１２がこれを使って、どのメッセージ（キー等）をいつ使うべきか決定する。
【００８５】
別の実施例では、ＩＰＭＰシステム８１２は、現在有効なＢＩＦＳツリー（おそらくＩＰＭＰシステム８０７を介して）のハッシュを受け取り、このハッシュをＢＩＦＳ８０９に保存されたＢＩＦＳツリーに対して定期的にチェックすることで、合成およびレンダー８２１を制御する。ＢＩＦＳ８０９はＩＰＭＰシステム８１２が合成およびレンダー８２１が情報をレンダリングする方法を制御するため、現在のＢＩＦＳツリーがＢＩＦＳストリーム８０３を介して受け取った認証済みツリーと同じであることをＩＰＭＰシステム８１２が確認すると、ＩＰＭＰシステム８１２は、合成およびレンダー８２１から直接フィードバックを受け取らなくとも、正しいコンテンツがレンダリングされていることを確認できる。ＢＩＦＳ８０９はポート８２２と通信して、これによりユーザはＢＩＦＳ８０９に情報を挿入し、ユーザが未認証のＢＩＦＳツリーを作成してコンテンツに対し未認証のアクセスを得ることができるため、これが必要となる。
【００８６】
ストリーム・コントローラは、暗号化またはその他規制された情報を受け取ると、ＥＳ＿ＩＤとタイム・スタンプをＩＰＭＰシステム８１２に直接送る。あるいは、この情報をＯＤ８１１に送り、これがオブジェクトまたはストリームを規制するＩＰＭＰメッセージのＩＤで回答することができる。するとストリーム・コントローラはＩＰＭＰメッセージＩＤを使ってＩＰＭＰシステム８１２からの解読、検証および／または統御を要求する。あるいは、ＯＤ８１１はＩＰＭＰＩＤをＩＰＭＰシステム８１２に渡し、これによってシステム８１２は該当するストリーム・コントローラとの接触を開始することができる。
【００８７】
ＩＰＭＰシステム８１２はＩＰＭＰストリーム８０７以外の２個のチャンネルを介してＩＰＭＰ情報を取得する。これらのチャンネルの第１はポート８２０で、装置またはメモリ（スマートカード、ＤＶＤディスク等）または外部ネットワーク（インターネット等）に接続されている。ＩＰＭＰメッセージは、ＵＲＬ、ＤＶＤディスク上のアドレス等、ポート８１２を介して取得可能な情報へのポインタを含むことができる。このＵＲＬには、ＩＰＭＰメッセージが必要とする特定の制御を含むことができ、またたとえば特定のユーザの予算に関連する情報のような補助的必要情報を含むことができる。
【００８８】
ＩＰＭＰシステム８１２はまた、ＯＤストリーム８０４に含まれるＯＤ更新を介してＩＰＭＰ情報を取得する。ＯＤストリーム８０４は特定のオブジェクトを識別するメタデータを含む。特定のＯＤメッセージは図９に示すフォーマットを取る。この図では、ＯＤメッセージ９０１はヘッダ９０２を含み、これはＯＤストリームの一部として次のパケットを識別し、パケットの数を識別する。ＯＤメッセージ９０１はさらにメッセージ９０３からなり、これは、一連のポインタ９０４と関連するメタデータ９０５を含む。各ポインタ９０４は、特定のエレメンタリー・ストリームを識別し、関連するメタデータはそのストリームに適用される。最後に、ＯＤメッセージ９０１はＩＰＭＰポインタ９０６を含むことができ、これは特定のＩＰＭＰメッセージを識別する。
【００８９】
全体で、ＯＤメッセージ９０１に含まれる情報は、オブジェクトを構成する各エレメンタリー・ストリームを識別・記述し、オブジェクトを規制するＩＰＭＰメッセージを識別するため、オブジェクト・ディスクリプタを構成する。ＯＤメッセージ９０１は、それぞれオブジェクト・ディスクリプタを構成する他のメッセージと共にＯＤ８１１に保存することができる。
【００９０】
ＯＤ８１１に保存されたオブジェクト・ディスクリプタは、ＯＤストリーム８０４を介して更新され、これは同じオブジェクトに対応する新しいオブジェクト・ディスクリプタを介して渡される。すると新しいオブジェクト・ディスクリプタは既存のオブジェクト・ディスクリプタに上書きされる。このメカニズムを使って、ＩＰＭＰポインタを例外として既存のオブジェクト・ディスクリプタと同じ新しいオブジェクト・ディスクリプタを利用し、特定のオブジェクトを制御するＩＰＭＰメッセージを変更することができる。
【００９１】
ＯＤストリーム８０４は、ＩＰＭＰ＿ディスクリプタ更新メッセージを運ぶこともできる。このようなメッセージはそれぞれ、ＩＰＭＰＩＤおよびＩＰＭＰメッセージを含むＩＰＭＰシステムで運ぶＩＰＭＰメッセージと同じフォーマットを持つことができる。
ＩＰＭＰディスクリプタ更新メッセージは、ＯＤ８１１の表またはアレイに保存するか、ＩＰＭＰシステム８１２に渡すことができ、ここで保存された既存のＩＰＭＰメッセージに上書きするか、保存されたメッセージに追加される。
【００９２】
ＩＰＭＰ情報はＯＤストリームまたはＩＰＭＰストリームを介して別個に運ばれるため、ＭＰＥＧ−４システム８０１は、これらチャンネルの一方または他方を介してのみ情報を受け取るよう設計できる。
別の実施例では、２個のチャンネルの存在を使って、後の段階で追加される統御により、後の改変が初期の段階で追加された統御に優先するリスクなしに、多段階配分を行うことができる。
【００９３】
このようなシステムを図１０に示す。この図において、ＩＰＭＰシステム８１２はＩＰＭＰ表１００２を含み、これは２５６個のＩＰＭＰメッセージのためのスロットを持つ。この表は、情報を保存する場所として、コラム１００３に示すようにＩＰＭＰ＿ＩＤを暗示的に保存する。ＩＰＭＰ＿ＩＤ４に関連するＩＰＭＰメッセージは、たとえばＩＰＭＰ表１００２のスロット４に保存する。
【００９４】
ＩＰＭＰ表１００２の各場所には、有効インジケータ１００４およびソース・インジケータ１００５を含む。有効インジケータ１００４は、ＩＰＭＰメッセージをその場所に保存した時、特定の場所にセットする。これによって、ＩＰＭＰシステム８１２は、空のスロットを識別することができるが、これは、起動時はスロットにランダムな情報が入っているため、他では困難なことである。これによってまた、ＩＰＭＰシステム８１２は、すでに有効でなく置換可能なメッセージを識別できる。有効インジケータ１００４は、ＩＰＭＰシステム８１２について保存されたタイム・スタンプ情報を現在有効な時間に対してチェックすることで有効性を判断し、メッセージが有効な期間のタイム・スタンプ情報を保存する。
【００９５】
ソース・インジケータ１００５は、関連するＩＰＭＰメッセージがＩＰＭＰストリーム８０７またはＯＤストリーム８０４から受け取ったか否かに基づきセットされる。
これらインジケータにより、ＩＰＭＰシステム８１２はメッセージの階層を確立し、メッセージを追加および更新する方法を制御することができる。ＩＰＭＰシステム８１２は、その場所に対応するメッセージを受信したら、特定の場所のインジケータを評価するよう設計することができる。有効インジケータが無効にセットされたら、ＩＰＭＰシステム８１２はそのスロットにＩＰＭＰメッセージを自動的に書きこむよう設計する。有効インジケータが有効にセットされたら、ＩＰＭＰシステム８１２はソース・インジケータをチェックするよう設計する。ソース・インジケータが関連メッセージをＯＤストリーム８０４を介して受信したことを示す場合、ＩＰＭＰシステム１８１２は既存メッセージを新しいメッセージで上書きするよう設計できる。しかしながら、ソース・インジケータが関連メッセージをＩＰＭＰストリーム８０７を介して受信したと示す場合、ＩＰＭＰシステム８１２は新しいメッセージのソースをチェックするよう設計できる。このチェックは、新しいメッセージに関連するヘッダを調べ、新しいメッセージがＯＤストリーム８０４の一部であるか、ＩＰＭＰストリーム８０７の一部であるかを判断することで達成できる。あるいは、ＩＰＭＰシステム８１２は、メッセージをＤｅｍｕｘ８０８から直接、あるいはＯＤ８１１を介して受け取ったか否かを判断することでこの情報を引き出せる。
【００９６】
新しいメッセージがＩＰＭＰストリーム８０７から来た場合、ＩＰＭＰシステム８１２は、既存メッセージに上書きして表１００２に新しいメッセージを保存するよう設計できる。一方、新しいメッセージがＯＤストリーム８０４から来た場合、ＩＰＭＰシステム８１２は新しいメッセージを拒絶するよう設計できる。  このメッセージ階層を使って、制御の階層化が可能である。たとえば、スタジオではＭＰＥＧ−４フォーマットで映画をコード化できる。スタジオではＩＰＭＰメッセージをＩＰＭＰストリームに保存する。これらメッセージは、ＩＰＭＰシステム８１２が特集映画の表示前に同じスタジオの他の映画の予告編を表示しなければならないという要件を含むことができる。ＩＰＭＰシステム８１２を使って、予告編のレンダリングの開始と終了をモニタし（制御ライン８１９を介したフィードバックを使って）、予告編全体が再生され、ユーザが早送りをしないようにできる。
【００９７】
映画スタジオは、ＩＰＭＰストリームを含む各種エレメンタリー・ストリームを暗号化することができる。そして映画スタジオはケーブルチャンネルなどの配給者に映画を提供することができる。映画スタジオは、配給者がＯＤストリームを解読できるキー、およびそのストリームに当たらしメッセージを挿入する能力を配給者に与える（またはＯＤストリームを暗号化しないままでおく）ことができる。ケーブルチャンネルは、たとえばＩＰＭＰシステムにユーザがプレミアム視聴の支払いを行っているか判断し、プレミアム視聴の支払いを行っている場合は映画を解読するが、プレミアム視聴を支払っていない場合は広告を挿入（そのレンダリングを要求する）することを指定するルールをＯＤストリームに含めることができる。
【００９８】
ケーブルチャンネルはそのため、自身のルールをＭＰＥＧ−４ビット・ストリームに追加する能力を持つが、ケーブルチャンネルが映画スタジオの用いるルールを除去したり改変したりするリスクはない（スタジオがプロモートしている映画の予告編をケーブルチャンネルがプロモートしているライバル映画に変更する等）。スタジオのルールは、ＯＤストリームを介して可能な新しいルールの種類を指定でき、これによって、スタジオに高度の制御を与える。
【００９９】
この同じメカニズムを使って、あるユーザから別のユーザへコンテンツのスーパー配分が可能となる。ユーザは、ＯＤストリームにメッセージを挿入できるプログラミングインターフェースを与えられる。ユーザは、たとえば映画を視聴する前にユーザの口座に１．００ドルの支払いを求めるメッセージを挿入する。そしてユーザは映画を別のユーザに与え（またはインターネット等のコピーが未制御であるメディアを通じて配布し）ながら、支払いを受け取ることができる。しかしながら、ユーザのルールはスタジオのルールに優先できないため、スタジオはそのルールが守られていることを確認できる。これには、ユーザが追加できるタイプのルールを指定するルールが含まれる（再配給の価格制限等）。
【０１００】
ＭＰＥＧ−４システム８０１はまた、特定タイプのＩＰＭＰシステムを含み、これが他のＭＰＥＧ−４システムに設計されるＩＰＭＰシステムと非互換であるよう設計することができる。ＭＰＥＧ−４標準はＩＰＭＰストリームに含まれる情報のフォーマットを指定しないため、異なるコンテンツ・プロバイダが異なる方法で情報をコード化できるのでこれが可能である。
【０１０１】
ＭＰＥＧ−４システム８０１のＩＰＭＰシステム８１２は、異なるＩＰＭＰフォーマットが存在するような環境について設計することができる。このシステムはＩＰＭＰシステム８１２と互換のヘッダについてＩＰＭＰストリームをスキャンする。他すべてのヘッダ（および関連パケット）は放棄される。このようなメカニズムにより、コンテンツ・プロバイダはＩＰＭＰシステムが故障するような未知のフォーマットに遭遇する心配なく、複数のフォーマットで同じＩＰＭＰメッセージを組み込むことができる。特に、ＩＰＭＰヘッダはＩＰＭＰシステムタイプ識別子を組み込むことができる。これら識別子は、中央当局が割り当て、２つの非互換システムが同じ識別子を選択する可能性を避けることができる。
【０１０２】
ＩＰＭＰシステム８０１は、複数のフォーマットと互換になるよう設計できる。このような場合、ＩＰＭＰシステム８０１はヘッダをスキャンしてＩＰＭＰシステム８０１と互換のＩＰＭＰシステム識別子を含む第１ヘッダを見つける。そしてＩＰＭＰシステム８０１はそのＩＰＭＰシステム識別子に対応するヘッダのみ選択し、ＩＰＭＰシステムが認識する別のＩＰＭＰシステム識別子を組み込んだヘッダを含む他すべてのヘッダを放棄することができる。
【０１０３】
このような設計により、コンテンツ・プロバイダは複数のフォーマットを提供し、最も好まれるフォーマットを最初に、次に好まれるフォーマットを第２にと含めることによって、最高から最低まで好みを順序付けることができる。ＩＰＭＰシステム８０１はそれが見つけた第１の互換フォーマットにロックされるため、ＩＰＭＰストリーム８０１のこの順序付けによって、ＩＰＭＰシステムがコンテンツ・プロバイダの最も好むフォーマットを選択するようにできる。
【０１０４】
異なるＩＰＭＰフォーマットを用いる場合でも、複数バージョンのコンテンツを送ることは帯域幅に大きな負担をかけるため、１つのアルゴリズムを使ってコンテンツはコード化（および暗号化）される。そのため、通常は、認められた共通の暗号化スキームを使ってコンテンツを暗号化する必要がある。このようなスキームは出力フィードバック・モードでＤＥＳアルゴリズムを使うことができる。
【０１０５】
このようなＩＰＭＰヘッダ選択と特定のフォーマットにロックする方法はまた、特定のＭＰＥＧ−４システムの機能についてＭＰＥＧ−４ストリームをカスタマイズするのにも使える。ＭＰＥＧ−４コンテンツをレンダリングできるシステムは、ハイエンドのホームシアターからハンドヘルド装置まで広範囲な機能性を含有する。あるタイプのシステムに適した統御オプションは他のシステムには関連しないことがある。
【０１０６】
たとえば、ＭＰＥＧ−４システム８０１はポート８２０を介してインターネットへの接続を含む一方、第２のＭＰＥＧ−４システム（たとえばハンドヘルドのウォークマン（登録商標）タイプ装置）はこのような接続を持っていないことがある。コンテンツ・プロバイダは、視聴者にオプションを提供し、視聴者が視聴者に関する情報を提供する見返りに無料でコンテンツを見られるようにしたいと望むとする。コンテンツ・プロバイダは、ユーザが料金を払ってコンテンツを見たいか、識別情報を入力したいかどうか尋ねるルールを挿入できる。そしてこのルールはポートを介してインターネットのルールに指定するＵＲＬに情報を送ることができる。そのＵＲＬのサイトはユーザ情報を評価し、特定のユーザに向けて広告をダウンロードすることができる。
【０１０７】
これはコンテンツ・プロバイダにとっては貴重なオプションだが、インターネットに必ずしも接続しない装置にとっては意味を持たないことは明白である。ユーザが情報を入力しても、ルールにはその情報を外部ＵＲＬに与えるか広告をダウンロードする方法がないため、非接続装置のユーザにこのオプションを提示することは意味がない。このような場合、コンテンツ・プロバイダは、ユーザにオリジナルのＭＰＥＧ−４ビット・ストリームに含まれる予め選択した広告を視聴させる方を好む。
【０１０８】
ＩＰＭＰストリームのヘッダ情報を使って、特定装置のためにＭＰＥＧ−４ビット・ストリームをカスタマイズすることができる。ＩＰＭＰシステムタイプ情報同様、ＩＰＭＰヘッダ情報にはＭＰＥＧ−４システムタイプを含むことができる。これらは８または１６ビット値を含み、ビットマップで表す特定の機能を持つ。そのため、たとえばポジション２のビットの存在は、装置がインターネットに一貫して接続することを示す。
【０１０９】
そしてＩＰＭＰシステムはヘッダを評価し、ＩＰＭＰシステムを埋め込んだＭＰＥＧ−４装置に含まれる機能よりも低いかまたは等しい機能を記述する第１ヘッダにロックする。ヘッダがＭＰＥＧ−４装置の機能に完全に一致する場合、ＩＰＭＰシステムはロックを中止する。ヘッダが完全な一致に至らない場合（インターネット接続を持つが、デジタル出力ポートのないシステムのヘッダで、システムが両方を持つ時）、ＩＰＭＰシステムはそのヘッダにロックするが、より良い一致を求めてスキャンし、もしより良い一致が見つかった場合はそれにロックする。
【０１１０】
特定のヘッダが識別するＩＰＭＰメッセージは、ＭＰＥＧ−４装置の特定の機能に適しているもので、その機能のＭＰＥＧ−４ビット・ストリームのカスタマイゼーションが可能である。上述の例のコンテキストでは、インターネット接続を含むＭＰＥＧ−４装置のＩＰＭＰシステムは特定のヘッダにロックし、そのヘッダで特徴付けられるＩＰＭＰメッセージをダウンロードする。これらメッセージはユーザに情報を求め、その情報をＵＲＬに与え、適切なスポットに広告を挿入して、映画の解読とレンダリングを許可する。
【０１１１】
一方、インターネット接続のないＭＰＥＧ−４装置の場合、ＩＰＭＰシステムはインターネット接続を示すビットのないヘッダのセットにロックし、そのヘッダに関連するルールをダウンロードする。これらルールは、ユーザにどのようなオプションも提供しない。このルールはコンテンツの解読を許すが、ＭＰＥＧ−４ストリームからの追加ＥＳの解読も指定する。この追加ＥＳは広告を含み、ＩＰＭＰシステムは広告の解読とレンダリングを求め、制御ライン８１９をチェックしてこれが発生したことを確認する。しかし、インターネット接続のないシステムの場合、広告の入ったＥＳの解読を許しレンダリングを求めるルールは、誤ったタイプのヘッダが識別するメッセージに含まれるためロードされない。そのため広告ＥＳは解読されず、ＭＰＥＧ−４装置から無視される。
【０１１２】
図２１は、保護されたＭＰＥＧ−４ファイルを作成するある方法を示す。この図では、ＣｒｅａｔｅＢｏｘ２１０１はＤｉｇｉＢｏｘ作成ユーティリティを表し、これはキーとルールを受け取る。ある実施例では、ＣｒｅａｔｅＢｏｘ２１０１はこれらキーとルールをＩＲＰ２１０２に渡し、ＩＲＰ２１０２からＤｉｇｉＢｏｘ２１０３を受け取る。別の実施例では、ＩＲＰ２１０２はＣｒｅａｔｅＢｏｘ２１０１に組み込まれ、これがキーとルールを受け入れ、ＤｉｇｉＢｏｘ２１０３を出力する。
【０１１３】
ＤｉｇｉＢｏｘ２１０３は統御ルール、初期化ベクトルおよびキーを含む。ＤｉｇｉＢｏｘ２１０３はＣｒｅａｔｅＢｏｘ２１０１からＢｉｆエンコーダ２１０４へ渡される。Ｂｉｆエンコーダ２１０４は従来のものでよいが、ＤｉｇｉＢｏｘ２１０３のようなＤｉｇｉＢｏｘを受け入れ、処理するよう設計する点が異なる。Ｂｉｆエンコーダ２１０４はまたシーングラフの入った .ｔｘｔファイルと、イニシャルオブジェクト・ディスクリプタ・コマンドを受け入れる。
【０１１４】
Ｂｉｆエンコーダ２１０４はシーン・グラフ・ストリーム（圧縮バイナリフォーム）の入った .ｂｉｆファイルと、イニシャルオブジェクト・ディスクリプタ・コマンド、オブジェクト・ディスクリプタ・ストリームおよびＤｉｇｉＢｏｘ２１０３の入った .ｏｄファイルを出力する。
Ｂｉｆエンコーダ２１０４は .ｂｉｆファイルと .ｏｄファイルをＭｕｘ２１０５に渡す。Ｍｕｘ２１０５はまた、圧縮されたオーディオおよびビデオファイルと、ストリーム記述の入った .ｓｃｒファイルを受け取る。Ｍｕｘ２１０５はＩＰＭＰストリーム、ディスクリプタおよびメッセージを作成し、コンテンツ・ストリームを暗号化し、受け取ったストリームをインターリーブし、イニシャルオブジェクト・ディスクリプタ２１０７と暗号化コンテンツ２１０８からなる保護されたＭＰＥＧ−４コンテンツファイル２１０６を出力する。イニシャルオブジェクト・ディスクリプタ２１０７はＤｉｇｉＢｏｘ２１０３と他の情報を含む。暗号化コンテンツ２１０８はシーン・グラフ・ストリーム（すなわちＢＩＦＳストリーム）、オブジェクト・ディスクリプタ・ストリーム、ＩＰＭＰストリームおよび暗号化コンテンツ・ストリームを含むことができる。
【０１１５】
ＤｉｇｉＢｏｘ２１０３がコンテンツのすべてをレンダリングするのに必要なすべてのキーおよびルールを持っている場合、Ｍｕｘ２１０５がＩＰＭＰストリームを作成する必要はない。コンテンツの少なくとも一部に追加キーまたはルールが必要な場合、Ｍｕｘ２１０５はこれらルールおよびキーを１個以上の追加ＤｉｇｉＢｏｘに組み込み、これらＤｉｇｉＢｏｘをＩＰＭＰストリームまたはＯＤ更新ストリームに組み込むことができる。
【０１１６】
図２２は、既存のＭＰＥＧ−４ストリームに制御を組み込む方法を示す。この図では、未保護ＭＰＥＧ−４コンテンツファイル２２０１はイニシャルオブジェクト・ディスクリプタ２２０２とコンテンツ２２０３を含む。コンテンツは、シーン・ディスクリプタ・ストリーム（またはＢＩＦストリーム）、オブジェクト・ディスクリプタ・ストリーム、ビデオ・ストリーム、オーディオ・ストリームおよびおそらく追加コンテンツ・ストリームを含むことができる。
【０１１７】
未保護ＭＰＥＧ−４コンテンツファイル２２０１はリパッケージャ２２０４に渡され、これはまたキーとルールを受け入れる。リパッケージャ２２０４は、キーおよびルールをＩＲＰ２２０５に渡し、その返りに、キー、ルールおよび初期化ベクトルを含むＤｉｇｉＢｏｘ２２０６を受け取る。別の実施例では、ＩＲＰ２２０５はリパケージャ２２０４に直接組み込むことができる。
【０１１８】
リパッケージャ２２０４は未保護ＭＰＥＧ−４コンテンツファイル２２０１をＤＥＭＵＸする。ＤｉｇｉＢｏｘ２２０６をイニシャルオブジェクト・ディスクリプタに挿入し、各種コンテンツ・ストリームを暗号化する。リパッケージャ２２０４はまた、必要な場合（追加ＤｉｇｉＢｏｘが必要な場合を含む）ＩＰＭＰストリームを追加する。
【０１１９】
リパッケージャ２２０４は、イニシャルオブジェクト・ディスクリプタ２２０８（ＤｉｇｉＢｏｘ２２０６を含む）と暗号化されたコンテンツ２２０９（必要な場合ＩＰＭＰストリームを含む各種ストリームからなる）からなる保護されたＭＰＥＧ−４コンテンツファイル２２０７を出力する。
【０１２０】
（リアルネットワーク・インプリメンテーション）
ある実施例では、上述の要素をリアルネットワーク社の設定するフォーマットに準拠してコード化した情報に関連して用いることができる。
リアルネットワーク・ファイルフォーマット（ＲＭＦＦ）を図１３に示す。このフォーマットは、はじめにヘッダのブロック（ヘッダ１３０１）、次にコンテンツ・パケットの集合（コンテンツ１３０２）、次にシークおよびゴー・トゥー・オペレーションで用いるインデックス（インデックス１３０３）を含む。各ファイルは複数のタイプの異なるストリームを含むことができる。各ストリームについて、メディア・コンテンツのフォーマット記述（圧縮フォーマット等）に用いる「メディア・プロパティ・ヘッダ」（１３０４）があり、ストリーム固有の情報（デコンプレッサのパラメータ等）を与える。
【０１２１】
リアルネットワーク・ストリームは、ＤｉｇｉＢｏｘをヘッダ１３０１に挿入し、コンテンツ１３０２に含まれるデータパケットを暗号化することで保護できる。改変したフォーマットを図１４に示すが、これは、メディア・プロパティ・ヘッダ１４０２および１４０３を含み、さらにＤｉｇｉＢｏｘ１４０４および１４０５をそれぞれ含むヘッダ１４０１を示す。このフォーマットはまた、暗号化したコンテンツ１４０６およびインデックス１４０７を含む。
【０１２２】
ある実施例では、宣言されたデータのタイプは、標準のリアルネットワーク・フォーマットから新しいタイプ（ＲＮＷＫ保護等）に変わる。そして古いタイプがセーブされる。タイプの変更によって、リアルネットワーク・プレーヤが「トラスト・プラグイン」をロードするが、これは、このプラグインが「ＲＮＷＫ保護」タイプのストリームを処理できる唯一のデコーダモジュールとして登録されているためである。トラスト・プラグインはＤｉｇｉＢｏｘを開き、ユーザから承認を得て、必要な場合はオリジナルのコンテンツ・タイプを決定し、オリジナルのコンテンツのためのデコーダ・プラグインをロードしてから、コンテンツを解読および／または検証し、コンテンツ・デコーダ・プラグインに送って解凍およびユーザに提示する。
【０１２３】
ある実施例では、リアルネットワーク・ファイルフォーマットに対する固有の改変は次の通りである。
・プレロール時間を増やして大きなバッファを再生する。本実施例では３秒増を用いる。コンテンツの解読に余分なステップが必要なため、大きなバッファが必要になる。
【０１２４】
・ｍｉｍｅタイプを「ＲＮＷＫ保護」に変更し、古いｍｉｍｅタイプをデコーダ固有情報にセーブし、コンテンツ識別子とＤｉｇｉＢｏｘをデコーダ固有情報に追加することで、各ストリーム固有ヘッダを修正する。ＤｉｇｉＢｏｘには、キー、初期化ベクトル（ＩＶ）、バージョン情報、ウォーターマーク指示が含まれる。キー、ＩＶおよびコンテンツ識別子は自動的に生成されるか、コマンドライン・パラメータとして与えられる。同じキー、ＩＶおよびコンテンツ識別子をすべてのストリームに用いる。
【０１２５】
・コンテンツ・パケットを選択的に暗号化する。ある実施例では、ミリ秒でのスタート時間が各５秒の前半の半秒である（すなわち、スタート時間％５０００＜５００）コンテンツ・パケットが暗号化される。これでコンテンツの約１０分の１が暗号化され、暗号および解読のコストとコンテンツの損傷が減り、再販売を防ぐ。暗号化アルゴリズムは、出力フィードバック・モードまたは同様のアルゴリズムを使うＤＥＳでよい。初期化ベクトルは、ストリームのＩＶをパケットのミリ秒でのスタート時間とｘｏｒすることで各パケットについて計算する。ストリームに一意の一部情報もＩＶにｘｏｒしなければならない。ある実施例では、２個以上のストリームがスタート時間の同じパケットを持っている場合は常に同じＩＶを複数のパケットに用いる。これは、各ストリームの第１パケットに通常発生するが、これらが通常はスタート時間０のためである。第１パケット以外は、スタート時間が同じパケットが２個あることは少ない。
【０１２６】
ある実施例では、リアルネットワーク・ファイルフォーマットへのこのような変更は、図１５に示すように行う。図示の通り、ＲＭＦＦファイル１５０１は標準リアルネットワーク・ＲＭＦＦフォーマットでフォーマットする。このファイルをパッケージャ１５０２に渡す。また、パッケージャ１５０２には権利ファイル１５０３も渡される。パッケージャ１５０３は保護ＲＭＦＦファイル１５０４を生成し、これは上述し、図１５に一覧するように、ヘッダへの１個以上のＤｉｇｉＢｏｘの組み込み、コンテンツの暗号化、ｍｉｍｅタイプの修正等、各種改変を含む。
【０１２７】
ある実施例において、上述のトラスト・プラグインを図１６および図１７に示す。図１６は標準リアルネットワーク・アーキテクチャを示す。ファイル１６０１（リアルネットワーク・フォーマットのストリーミングオーディオファイル）をリアルネットワークＧ２・クライアントコア１６０１に与える。ファイル１６０１はサーバ１６０３から、または直接接続１６０４を介してリアルネットワークＧ２・クライアントコア１６０２に与えることができる。
【０１２８】
ファイル１６０１を受け取ると、リアルネットワークＧ２・クライアントコア１６０２は、ファイル１６０１に関連するヘッダから取得した情報に基づき、ファイル１６０１に適したレンダリング・プラグインにアクセスする。レンダリング・プラグイン１６０５および１６０６を示す。ファイル１６０１がレンダリング・プラグイン１６０５またはレンダリング・プラグイン１６０６でレンダリングできないタイプである場合、リアルネットワークＧ２・クライアントコア１６０２は、ユーザの支援を求めるか、特定のファイルタイプに関連するサイトにアクセスすること等により、適切なプラグインにアクセスしようとする。
【０１２９】
レンダリング・プラグイン１６０５または１６０６は従来の方法でファイル１６０１を処理する。この処理は、ファイル１６０１の解凍を含む可能性が高く、コンテンツのレンダリングに役立つ他のタイプの処理を含むことができる。この処理が完了すると（コンテンツはストリーミングされているので、処理は他のパケットセットのレンダリングと同じ時にあるパケットセットに発生していることを念頭に置く）、ファイル１６０１がリアルネットワークＧ２・クライアントコア１６０２に戻され、これが情報をレンダリング装置１６０７に渡す。レンダリング装置１６０７は、たとえばステレオ・スピーカ、テレビ受信機等でよい。
【０１３０】
図１７に、トラスト・プラグインがリアルネットワーク・アーキテクチャ全体内で動作する方法を示す。図１７に示すアーキテクチャの多くは図１６に示すものと同じである。そのため、ファイル１７０１は、サーバ１７０３または直接接続１７０４を介してリアルネットワークＧ２・クライアントコア１７０２に与えられる。ファイルは、レンダリング・プラグイン１７０５および１７０６を含むプラグインを使ってリアルネットワークＧ２・クライアントコア１７０２で処理され、レンダリング装置１７０７に渡される。
【０１３１】
図１７は、トラスト・プラグイン１７０８および１７０９とＩＲＰ１７１０の組み込みの点で図１６と異なる。リアルネットワークＧ２・クライアントコア１７０２で当初登録した時、トラスト・プラグイン１７０８および１７０９はリアルネットワークＧ２・クライアントコア１７０２に、ＲＮＷＫ保護タイプのコンテンツを処理できることを知らせる。リアルネットワークＧ２・クライアントコア１７０２がこのタイプのストリームに遭遇すると常に、トラスト・プラグイン１７０８等のストリームを処理するトラスト・プラグインのインスタンスを作成することが可能になる。そして、このストリームをトラスト・プラグインに渡す。
【０１３２】
トラスト・プラグイン１７０８に渡されたストリームは、多分図１４に示すフォーマットである。この場合、トラスト・プラグイン１７０８はメディア・プロパティ・ヘッダ１４０２からＤｉｇｉＢｏｘ１４０４を取り出す。また、メディア・プロパティ・ヘッダ１４０２からコンテンツＩＤとオリジナルのｍｉｍｅタイプを取り出す。トラスト・プラグインはまず、同じコンテンツ識別子を持つ他のストリームが開いていないかチェックする。開いている場合、ＤｉｇｉＢｏｘ１４０４はそれ以上処理されない。その代わり、この他のストリームのボックスからのキーおよびＩＶが使われる。これによって、第２のボックスを開く時間コストを避ける。また、これによって、保護されたストリームが複数あっても、ユーザは支払いを一度しか尋ねられないようにする。コンテンツＩＤ、キー、ＩＶを共有することで、ユーザが一度しか支払いを行わずに複数のファイルを再生できる。これは、ＳＭＩＬを使って複数のＲＭＦＦファイルを１つのプレゼンテーションで再生する時に有益である。
【０１３３】
別のおそらくより安全な実施例では、このチェックは実行せず、コンテンツ識別子を持つ他のストリームが既に開かれている時でも現在のＤｉｇｉＢｏｘからのキーおよびＩＶを用いる。
同じコンテンツ識別子を持つほかのストリームが識別されなかった場合、トラスト・プラグイン１７０８はＤｉｇｉＢｏｘ１４０４をＩＲＰ１７１０に渡す。ＩＲＰ１７１０は、リアルネットワークＧ２・クライアントコアおよびトラスト・プラグイン１７０８と同じコンピュータで動くソフトウエア・プロセスである。ＩＲＰ１７１０は保護された環境で動くことができ、また、ＩＲＰ１７１０を攻撃に対して抵抗させるよう設計されたいたずら抵抗技術を組み込むことができる。
【０１３４】
ＩＲＰ１７０８はＤｉｇｉＢｏｘ１４０４を処理し、暗号キーおよびＩＶを取りだし、これらはトラスト・プラグイン１７０８に渡される。トラスト・プラグイン１７０８はこの情報を使って暗号化コンテンツ１４０６を解読する。
トラスト・プラグイン１７０８は、メディア・プロパティ・ヘッダ１４０２から取り出したオリジナルのｍｉｍｅタイプ情報を使ってコンテンツに用いるレンダリング・プラグインのインスタンスを作成する（レンダリング・プラグイン１７０５等）。これが終わると、トラスト・プラグイン１７０８はリアルネットワークＧ２・クライアントコア１７０２への通常の連弾リングプラグインのように行動し、リアルネットワークＧ２・クライアントコア１７０２はストリーミングした情報をトラスト・プラグイン１７０８に渡し、これがその情報を解読してレンダリング・プラグイン１７０５に渡す。リアルネットワークＧ２・クライアントコア１７０２の視点からは、トラスト・プラグイン１７０８は適切なレンダリング・プラグインを構成し、コアは情報がトラスト・プラグイン１７０８によって第２のプラグイン（レンダリング・プラグイン１７０５等）に渡されていることを知らない。
【０１３５】
同様に、レンダリング・プラグイン１７０５の視点からは、トラスト・プラグイン１７０８はリアルネットワークＧ２・クライアントコア１７０２のように行動する。そのため、レンダリング・プラグイン１７０５は解読したストリーム情報をトラスト・プラグイン１７０８から受け取るが、レンダリング・プラグイン１７０５は情報がリアルネットワークＧ２・クライアントコアから直接受け取ったとまったく同じように動作する。このように、レンダリング・プラグイン１７０５のためにフォーマットしたコンテンツは、代わりにまずトラスト・プラグイン１７０８によって処理され、リアルネットワークＧ２・クライアントコア１７０２またはレンダリング・プラグイン１７０５を改変する必要がない。
【０１３６】
トラスト・プラグイン１７０８はまた、セキュリティに役立つ他の処理を実行することができる。たとえば、トラスト・プラグイン１７０８は解読したファイルをレンダリング・プラグイン１７０５に渡す前にこれをウォーターマークすることができるが、ウォーターマークアルゴリズムはレンダリング・プラグイン１７０５によるファイルの解凍の影響を受けないものでなければならない。
【０１３７】
（ＭＰ３実施例）
上述の技術はまた、ＭＰ３ストリーミングコンテンツに適用できる。
ＭＰ−３仕様は、標準ファイルフォーマットを定義していないが、ビット・ストリームを定義しており、これを図１８に示す。図１８では、ＭＰ−３ビット・ストリーム１８０１はコンテンツ１８０２を含む。コンテンツ１８０２は、フレーム１８０３、フレーム１８０４、フレーム１８０５として示すフレームに分けられる。フレーム１８０４と１８０５の間の点は、コンテンツ１８０２が多数のフレームを含むことができる事実を象徴している。
【０１３８】
各フレームは、図１８にヘッダ１８０６、１８０７および１８０８として示すように自身の小さいヘッダを含む。
多くのＭＰ３プレーヤは、トレーラー１８０９として示す、ＩＤ３Ｖ１仕様で定義する小さいトレーラーをサポートする。これは、フィールド１８１０、１８１１および１８１２として示すアーティスト、タイトルおよび年度等のフィールドを持つ１２８バイトのトレーラーである。ＩＤ３Ｖ１トレーラーは、有効なＭＰ３データに見えないため、このようなトレーラーを読み取るよう設計されていないプレーヤには無視される。
【０１３９】
図１９に、ＭＰ３フォーマットに適用される保護の実施例を示す。この保護されたフォーマットはファイル１９０８を構成し、次のアイテムを含む。
・暗号化されていないＭＰ３コンテンツ１９１２。これはプレーヤが遭遇する最初の情報で、あらゆる標準ＭＰ３プレーヤがレンダリングする。これは、コンテンツが保護されていることを示し、コンテンツへのアクセス方法に関する指示を与えるメッセージを含むことができる（トラスト・プラグインのＵＲＬ、支払いメカニズムに関する指示等）。暗号化されていないＭＰ３コンテンツ１９１２は、コンテンツの最初の部分（３０秒等）からなる「ティーザー」を含むことができ、これはコストなしにレンダリングされるため、ユーザは購入の決定を行う前にコンテンツをサンプリングすることができる。
【０１４０】
・暗号化したＭＰ−３コンテンツ１９０１で、数千のＭＰ−３フレームを含むことができる。ある実施例では、フレーム３２個毎の最初の８個のフレームを暗号化する。そのため、プレーヤが解読できない限り、フレームの４分の１が無用にレンダリングされる。実際には、これは過度の暗号化または解読コストを課すことなく、コンテンツを販売不可または利用不可にレンダリングすることができる。暗号化および解読のコストをさらに削減するには、各フレームの３２バイトのみ暗号化する。この実施例では、これらはヘッダおよびＣＲＣ情報の後の最初の３２バイトである。別の実施例では、各フレームの別の３２バイトを暗号化することができる。この実施例では、コンテンツはアルゴリズム出力フィードバック・モードを使ってＤＥＳで暗号化する。ファイルの最初のＩＶはランダムに生成してから、フレーム番号でｘｏｒして各フレームの一意のＩＶを生成する。
【０１４１】
何らかの情報の暗号化を含み、別の暗号化アルゴリズムを使う多くの別の実施例が存在する。
・１２８バイト含むＩＤ３  Ｖ１トレーラー１９０２。
・１６バイト含むコンテンツＩＤ１９０３。これは、既に開いているＤｉｇｉＢｏｘを開くのを避けるため、プレーヤ・アプリケーションが用いる。
【０１４２】
・約１８ＫバイトからなるＤｉｇｉＢｏｘ１９０４。これは、キー１９０９、ＩＶ１９１０、ウォーターマーク指示１９１１を含む。ウォーターマーク指示１９１１は関連コンテンツのウォーターマークのプロセスで用いることができる。
・コンテンツＩＤ１９０３のファイルにアドレスを含み４バイトからなるアドレス１９０５。
【０１４３】
・トレーラー１９０２のコピーであるＩＤ３Ｖ１トレーラー１９０７。
ファイル１９０８に遭遇した従来のＭＰ３プレーヤでは、コンテンツの少なくとも一部が暗号化されているため、コンテンツ１９０１をレンダリングすることができない。このようなプレーヤはトレーラー１９０２まで読み取り、その時点で処理を中止する可能性が高い。ＩＤ３トレーラー情報を探す従来のプレーヤは終了を探し、それを見つける。
【０１４４】
図２０に、保護されたコンテンツを処理およびレンダリングするよう設計されたＭＰ３プレーヤの実施例を示す。この図は、バッファ２００６およびデコンプレッサ２００７を含み、レンダリング装置２００８にコンテンツをレンダリングするＭＰ３プレーヤ２００１を示す。ある実施例では、これはＳｏｎｉｑｕｅが販売するプレーヤの修正バージョンである。
【０１４５】
プレーヤ２００１は、標準インターフェースを介して保護されたＭＰ３ファイル２００２を取得する。保護されたＭＰ３ファイル２００２は図１９に示すフォーマットを持つ。
プレーヤ２００１が保護されたＭＰ３ファイル２００２を再生するよう求められると、プレーヤ２００１はまずトラスト・プラグイン２００３を呼び出すが、これは承認機能２００９と解読機能２００５を含む。トラスト・プラグイン２００３は承認機能２００９を呼び出し、保護されたＭＰ３ファイル２００２が保護されているか、ファイル再生の認証が存在するか判断する。承認機能２００９はまず保護されたＭＰ３ファイル２００２へのポインタを与えられる。そして保護されたＭＰ３ファイル２００２をトラストＩＤ１９０６の存在についてチェックする。トラストＩＤ１９０６が見つからない場合、承認機能２００９はファイルが保護されてないというインジケータを返す。するとプレーヤ２００１はノーマルなＭＰ３ファイルとしてファイルをレンダリングする。
【０１４６】
トラストＩＤ１９０６が見つかると、承認機能２００９はコンテンツＩＤ１９０３をチェックして、既に開かれているファイルのコンテンツＩＤと一致するか調べる。
保護されたＭＰ３ファイル２００２が以前に開かれていると、ＤｉｇｉＢｏｘ１９０４は承認機能２００９によって取り出され、ＩＲＰ２００４に渡されるが、これは保護された環境で動くか、いたずら抵抗を組み込むソフトウェアを含む。ＩＲＰ２００４はＤｉｇｉＢｏｘに関連するルールに準拠してＤｉｇｉＢｏｘ１９０４を開こうとする。このようなルールでは、たとえばユーザがコンテンツの利用に対する支払いに同意することを求める。ＤｉｇｉＢｏｘ１９０４を開けないと（ユーザが支払いを拒否する等）、承認機能２００９に、ファイルが保護されており、再生できないことを示す値が返される。
【０１４７】
ＤｉｇｉＢｏｘ１９０４を該当するルールに準拠して開くと、キーおよびＩＶが取り出され、解読機能２００５に渡される。キーおよびＩＶは後の再利用のためコンテンツＩＤと共に保存され、解読機能２００５が初期化される。これによって、ＤｉｇｉＢｏｘを開く回数が減るため、システム全体のパフォーマンスが改善される。このような行為は毎回大きな待ち時間を導入することになる。
【０１４８】
一方、未保護メモリにこの情報を保存するとシステム全体のセキュリティが低下する。セキュリティは、この情報を保存せず（それによって、対応するファイルが既に他のＤｉｇｉＢｏｘを通じて開かれている場合でも各ＤｉｇｉＢｏｘを開かせることによって）、あるいは保護された形式あるいは安全な場所にこの情報を保存することによって強化する。
【０１４９】
保存されたキー、ＩＶおよびコンテンツＩＤは、承認機能２００９が最初にコンテンツＩＤをチェックして既に開かれているファイルのコンテンツＩＤに一致するか判断する時に参照される。新しいコンテンツＩＤが保存されたコンテンツＩＤに一致する場合、一致するコンテンツＩＤに対応する解読機能２００５は保存されたキーおよびＩＶを使って再初期化され、これが保護されたファイルで再生が許されることを示す値が承認機能２００９に返される。
【０１５０】
保護されたＭＰ３ファイル２００２が開かれると、プレーヤ２００１がパケットを必要とする度に、プレーヤ２００１はこれをバッファ２００６に読みこみ、ヘッダとＣＲＣを取りだし、残りのデータとフレーム番号を解読機能２００５に渡し、これが必要ならフレームを解読してプレーヤ２００１に戻す。
この実施例では、オーディオ・コンテンツを暗号化したが、ヘッダまたはトレーラーは暗号化していない。これによって、プレーヤ２００１はヘッダまたはトレーラーの情報を承認機能２００９または解読機能２００５の介入なしに処理できる。これによって、プレーヤ２００１は再生時間、アーティスト、タイトルなどの情報をプレイリストディスプレイに入れ、トラスト・プラグイン２００３からのアクションを必要とせずにデコンプレッサ２００７を初期化できる。
【０１５１】
（コマース・アプライアンス実施態様）
この節では、消費者用エレクトロニクス装置におけるデジタル作品を一貫して制御できるように設計されるコマース・アプライアンス・アーキテクチャから成る実施態様について説明する。これは別個の実施態様として説明されるが、この実施態様の特徴は、本説明の他の部分において示される他の実施態様の特徴と組み合わせることができ、またはこれに取って代わることができるものと解釈すべきである。
【０１５２】
１つの実施態様において、この節は、一貫したルールおよび制御とＭＰＥＧ−４のコンテンツとの対応付けをサポートするよう考案されたＭＰＥＧ−４標準の修正、ならびにコマース・アプライアンスが前記のコンテンツを使用するために必要なエレメントについて説明する。ただし、これは単なる１例である。
図２３に示される１つの実施態様において、各コマース・アプライアンス２３０１は、ＣＭＰＳ（コンテンツ管理・保護システム）２３０２を含む。各ＣＭＰＳは、コンテンツを解読することおよびコンテンツが関連ルールにより許可されるとおりに使用されるようにすることを含めて、被制御コンテンツの使用を統御する役割を果たす。
【０１５３】
統御対象の各デジタル作品は、１つまたはそれ以上のＣＭＰＯ（コンテンツ管理・保護オブジェクト）例えばＣＭＰＯ２３０３と対応付けられる。各ＣＭＰＯは、デジタル作品の使用に適用されるルールを指定することができ、作品を解読するために使われるキーを含むことができる。
ＣＭＰＯは、階層式に編成することができる。１つの実施態様においては、コンテンツアグリゲータ（例えば、ケーブルチャンネル、ウェブ・サイトなど）は、特定のグローバル・ルールをそのチャンネルにある全てのコンテンツと対応付けるために使用されるチャンネルＣＭＰＯ（“ＣＣＭＰＯ”）を指定する。独立した各作品は、作品全体に適用されるルールを対応付けるために使用される連想マスターＣＭＰＯ（“ＭＣＭＰＯ”）を持つ。各オブジェクト（またはＭＰＥＧ−４における基本ストリーム）は、その特定のオブジェクトに適用されるルールを含んでいるＣＭＰＯに対応付けられる。
【０１５４】
１つの応用例において、コマース・アプライアンス２３０１は、ＣＭＰＳ２３０２を含んでいるＭＰＥＧ−４である。特定の作品をプレイするよう求めるユーザ・コマンドを受け取ると、ＣＭＰＳ２３０２は、その作品と対応付けられるＭＣＭＰＯをダウンロードして、ルールを入手する。ルールは、作品の解読および視聴のために要求される条件を含む。ルールが満たされると、ＣＭＰＳ２３０２は、ＭＣＭＰＯから得るキーを使用して、基本ストリーム（“ＥＳ”）を解読し、解読したＥＳをバッファに送る。その後、明文の作品を含んでいる記憶ロケーションまたはバスが安全でなければならないこと、および、ＣＭＰＳ２３０２が、ダウンストリーム処理を統御し、かつ実際に視聴のためにどのＡＶＯがリリースされたかに関する情報を入手することができることを除いて、ＭＰＥＧ−４作品の合成（コンポジット）およびレンダリング（再生）はＭＰＥＧ−４標準に従って進行する。
【０１５５】
変形として、作品を入手し統御するプロセスは、この作品およびその他の作品を統御するルールを適用するＣＣＭＰＯのダウンロードを含むことができる。ＣＣＭＰＯに含まれるルールが満たされると、ＣＭＰＳ２３０２は、視聴される特定の作品に対応付けられるＭＣＭＰＯを解読するために使用されるキーを入手できる。
【０１５６】
別の変形事例においては、ＣＭＰＯは各ＥＳと対応付けられる。この変形事例においては、ＭＣＭＰＯは、各ＣＭＰＯの解読のために１つまたはそれ以上のキーを提供し、一方ＣＭＰＯは、連想ＥＳの解読のためにキーを提供する。
コマース・アプライアンス２３０１は、コンテンツの使用を統御するために確実にルールおよび制御を適用することによってコンテンツ関係の権利の分散同等管理をサポートする機能を含んだ、コンテンツレンダリング装置である。コマース・アプライアンス２３０１は、コンテンツの入手およびその管理されたレンダリングのための汎用機能を含むことができる（例えばＤＶＤプレーヤおよび／またはその他の光ディスク・フォーマット・プレーヤはＤＶＤディスクおよび／またはその他の光ディスク・フォーマット・ディスクをプレイして、コンテンツをテレビジョンに出力することができる）。前記のＳｈｅａｒ特許出願において説明されるとおり、コマース・アプライアンス２３０１は、高容量光ディスク（非限定的例としてＤＶＤディスク）のデジタルコンテンツを保護し使用するためのどのような手段でも使用できる。
【０１５７】
コマース・アプライアンス２３０１は、また、コンテンツ機能のその他の管理および保護に関する特別目的の機能も含む。この特別目的の機能は、単一のＣＭＰＳまたは協同ＣＭＰＳ装置の形で埋め込まれるまたはその他の方法で含まれる１つまたはそれ以上のＣＭＰＳ２３０２によりサポートされ、制御関係の情報をユーザに表示しかつ（または）制御関係の情報および指示をユーザから受け取るよう設計されるユーザ・インターフェース（例えばユーザ・インターフェース２３０４）を含む。コマース・アプライアンス２３０１は、また、他のコマース・アプライアンス（例えばＤＶＤプレーヤおよびデジタル・テレビと接続されるセットトップ・ボックス）および（または）コンピュータ装置など（これも１つまたはそれ以上のＣＭＰＳを含むことができる）他の装置とネットワーク化することができるように設計できる。
【０１５８】
コマース・アプライアンスの重要な形態は、定期的または継続的に、コンピュータ管理のドッキング環境（例えば、スタンドアローン・コンピュータまたはそれ自体がコマース・アプライアンスであるその他のコンピュータ管理の装置）と確実に結合し、コマース・アプライアンスの１つまたはそれ以上のＣＭＰＳがドッキング環境とインターオペレートして、特定の機能および（または）特定のコンテンツの使用イベントの実行が前記のインターオペレートにより少なくとも部分的にコマース・アプライアンスのＣＭＰＳおよびコンテンツ使用管理情報とドッキング環境のトラスト環境機能（例えば、さらに１つまたはそれ以上のＣＭＰＳおよび例えばＣＩの使用により提供される情報など使用管理情報）の協力を通じて可能になることを特に想定している。
【０１５９】
コマース・アプライアンスの実施例は、ビデオおよびその他のタイプの情報のフォーマット、マルチプレックス、伝送、合成およびレンダリングに関する新たに出現するＭＰＥＧ−４標準に従って設計できる。
コマース・アプライアンス２３０１は、どのようなコンピュータ装置でも可能であり、その非制限的例としては、コンテンツをレンダリングするためのＭＰＥＧ−４ソフトウェア（および／またはハードウェア）を含むパソコン（ＰＣ）がある。本発明に従って、ＰＣは、本文書において説明するとおり１つまたはそれ以上のＣＭＰＳを使用できる。
【０１６０】
コマース・アプライアンス機能は、ストリーミング方式のチャンネルコンテンツに限定されず、静止画像、テキスト、合成および未加工のビデオおよびオーディオおよびアプレット、アニメーション・モデルなどの機能コンテンツなど、集合合成コンテンツから成る様々なブラウザ・タイプのアプリケーションを含むことができる。この種の装置には、ブラウザ、セットトップ・ボックスなどが含まれる。
【０１６１】
（コンテンツ管理・保護システム（ＣＭＰＳ））
各コマース・アプライアンスは、１つまたはそれ以上のＣＭＰＳ（例えばＣＭＰＳ２３０２）を含んでいる。ＣＭＰＳは、被制御コンテンツの使用方法に適用されるルールおよび制御の使用を含めて、ルールおよび制御の呼び出しおよび適用を担当する。
【０１６２】
ＣＭＰＳ２３０２の特別な機能は、以下のとおりである：
（ａ）ルールの識別および解釈
ＣＭＰＳ２３０２は、どのルールが適用されるかを決定し、既存の状態情報を考慮してこのルールをどのように解釈すべきかを決定しなければならない。１つの実施態様においては、このために、ＣＭＰＳ２３０２は、作品と対応付けられる１つまたはそれ以上のＣＭＰＯ２３０３を入手し、これを解読しなければならない。
【０１６３】
（ｂ）特定のルールと対応付けられるコンテンツの識別
ＣＭＰＳは、どのコンテンツが特定の１つまたはそれ以上のルールの適用を受けるかを決定しなければならない。これは、１つまたはそれ以上のＣＭＰＯ２３０３および（または）その他のＣＩから情報を入手することによって遂行される。１つの実施態様においては、ＣＣＭＰＯは１組の作品を識別し、ＭＣＭＰＯは特定の作品を識別し、ＣＭＰＯは特定のＥＳまたはオーディオ・ビジュアル・オブジェクト（“ＡＶＯ”）を識別する。
【０１６４】
（ｃ）ルールが許容するとおりのコンテンツの解読
ＣＭＰＳ２３０３は、関連標準が要求するデータ・フローへの再挿入の前に、解読のために全てのコンテンツがＣＭＰＳ２３０２に送られるように設計することができる。例えば、ＭＰＥＧ−４の場合、デマルチプレクサ２３０５からの出力はＣＭＰＳ２３０２に送られる。ＣＭＰＳ２３０２はコンテンツを解読し、関連ルールおよび制御が満たされれば、コンテンツをＭＰＥＧ−４バッファに送る。この点以降は、コンテンツ関係のデータ・フローはＭＰＥＧ−４によって説明されるとおりである。
【０１６５】
（ｄ）ルールに基づくコンテンツの制御
ＣＭＰＳ２３０２は、例えば本文書に組み込まれるＧｉｎｔｅｒ’３３３特許出願において説明されるとおり安全イベント管理を使用することにより初期解読後のコンテンツの使用を制御するために使用される。ＭＰＥＧ−４システムの場合、このためには、ＣＭＰＳ２３０２が以下の機能、デマルチプレクス（デマルチプレクサ２３０５によって行われる）、解凍／バッファリング／ＡＶＯへのデコード（シーンディスクリプタグラフ２３０６、ＡＶＯデコード２３０７およびオブジェクト・ディスクリプタ２３０８によって行われる）、シーン・レンダリング（合成およびレンダリング・ブロック２３０９で行われる）、を果たすハードウェアおよび（または）ソフトウェアを制御しなければならない。
【０１６６】
ＣＭＰＳ２３０２は、また、以下のものに従って、使用および結果を制御するためにも使用することができる：（１）ＣＧＭＳおよび（または）ＳＧＭＳ標準など世代コピー保護ルール；（２）ＭＰＥＧ−４書類Ｍ２９５９、ＤＡＶＩＣ「著作権管理枠組み」およびその他の出版物において説明されるとおりＮＤＳにより提案および（または）実現されるものなど各種の条件付きアクセス制御方法；（３）Ｇｉｎｔｅｒ’３３３特許出願において提案されものおよび（または）Ｓｔｅｆｉｋその他に対する米国特許第５，６３８，４４３号に説明されるものなど権利管理言語；（４）Ｂｌａｚｅ、ＦｅｉｇｅｎｂａｕｍおよびＬａｃｙによって説明されるＡＴ＆Ｔのポリシー・メーカーに従って説明される使用ポリシー；（５）ＤＶＤコピー保護技術作業委員会のＤＴＤＧ小委員会が指定するおよび（または）日立、Ｉｎｔｅｌ、松下、ソニーおよび東芝が提案する標準（以後これを「５社提案」と呼ぶ）により実現されるＩＥＥＥ１３９４シリアル・バス伝送のためのＣＣＩレイヤー・ビット；（６）例えばＩＢＭＣｒｙｐｔｏｌｏｐｅなど安全コンテナ技術を使って伝送される制御：（７）使用ルールおよび結果を指定するためのその他の手段、など。
【０１６７】
（ｅ）コンテンツの使用のモニタ
ＣＭＰＳ２３０３を使って、１）ルールが守られるようにするため、２）システムまたは保護されるコンテンツを不正変更しようとする試みがなされないようにするため、および３）支払いのために必要な使用情報を含めてルールが使用する情報を記録するため、にコンテンツをモニタすることができる。
【０１６８】
（ｆ）ユーザ予算の更新
ＣＭＰＳ２３０２を使って、使用量に合わせてユーザの予算またはその他の予算を更新することができる。
（ｇ）排出情報
ＣＭＰＳ２３０２を使って、支払いおよび使用量情報（「排出情報」）を１つまたはそれ以上のコマース・ユーティリティ・システムを含めて外部プロセスに出力ことができる。
【０１６９】
（ｈ）ハードウェア識別および構成
（ｉ）外部プロセスからの新規の、追加のおよび（または）増大されたルールの入手。その非限定的例は、本文書に組み込まれているＳｈｅａｒ特許出願において説明される権利および許可クリアリングハウス（情報処理センター）である。
【０１７０】
（ｊ）証明オーソリティ、配備マネージャ、クリアリングハウスおよび（または）その他の信頼されるインフラ・サービスからのキー、証明書などデジタル信任状および（または）管理情報の受け取り。
（ｋ）ユーザおよび（または）機器のプロファイリングおよび（または）属性情報の安全な送受信。
【０１７１】
（ｌ）コンテンツおよび（または）ＣＭＰＯおよび（または）ＣＭＰＳ使用を要求するユーザまたはあるユーザ・クラスのメンバーの確実な識別。
（ｍ）アプリケーション・コードの信憑性の確実な証明またはその他の保証。例えば、ＣＭＰＯ２３０１および（または）ＣＭＰＳ２３０２内で、ルールおよび（または）コマース・アプライアンス内での条件付き実行のためにＪａｖａ（登録商標）コードで書かれた情報などその他のアプリケーション情報を含むアプリケーション・コード、および（または）少なくとも部分的にＣＭＰＯ２３０１および（または）ＣＭＰＳ２３０２外で実行されるアプリケーション・コードが変更されておらずかつ（または）保証済み（例えば信任される）当事者により引き渡されていることの保証。
【０１７２】
（ｎ）１つのコマース・バリュー・チェーンの中で複数の独立した当事者の権利を保護するコンテンツ使用制御を行うために、本文書に組み込まれているＧｉｎｔｅｒ’３３３において説明されるような個別に引き渡されるＣＩの確実な処理。
（ｏ）例えばコンテンツ使用を制御するためおよび（または）イベント・メッセージを発行するためにウォーターマーキング情報を解釈して、イベント・メッセージを例えばＭＣＭＰＯ権利クリアリングハウス管理ロケーションなど遠隔オーソリティに戻すことを含めて、たとえば本文書に組み込まれているＧｉｎｔｅｒ’３３３特許出願において説明されるとおりのウォーターマーキング（例えばフィンガープリンティングを含めて）機能の確実な実施。
【０１７３】
ＣＭＰＳ２３０２は、コマース・アプライアンスおよび接続される装置の現在のハードウェア構成を識別し（例えば、どのラウドスピーカが使用可能か、特定のモニタがデジタル出力ポートを持っているか否かを含めて付属モニターの識別など）、記録するために使用できる。付属装置（ラウドスピーカなど）もＣＭＰＳを含む場合、ＣＭＰＳを使って、調整のための通信できる（例えば、セットトップ・ボックスおよび（または）ラウドスピーカ装置の中のＣＭＰＳは、ダウンストリームのデジタル・テレビジョンまたはその他のディスプレイ装置中のＣＭＰＳと通信して、仮想権利プロセスを通じて統御を担当するＣＭＰＳまたは協同統御の性質を決定することができる。仮想権利プロセスは、例えば単一ユーザコンテンツ処理および使用装置のために複数のＣＭＰＳを使用するために前記のＳｈｅａｒ特許出願において説明されるように権利プロセスを探し、ロケートし、提供し、集合し、分配し、管理する権利オーソリティ・サーバを任意に含む）。
【０１７４】
本発明には、最適の商業的フレキシビリティおよび効率を保証し、プロバイダの財政的権利および著作権、アプライアンス・プロバイダのインフラの権利、政府および（または）社会的団体の社会的権利、および消費者を含めた全当事者のプライバシーの権利を含めてコマース・バリューチェーン参加者の権利の行使を保証するために、１つまたはそれ以上のユーザ・ロケーションにおいて複数のコマース・アプライアンスおよび（または）ＣＭＰＳを含む装置が含まれる。ユーザ・ロケーションの非限定的な例としては、少なくともときに相互に通信でき、少なくとも部分的にＣＭＰＳを使用することにより論理的に協同して動作する仮想ネットワークを構成できる、家、アパートメント、ロフト、オフィスおよび（または）乗用車、トラック、スポーツ用車両、ボート、船舶または飛行機などの車両が含まれる。コンテンツ使用監査、コンテンツ使用結果およびＣＩ仕様を含めてこのようなバリュー・チェーン参加者のネットワーク間の対話に関する情報は、少なくとも部分的に例えばＶＤＥノードの情報報告機能に関する前記のＧｉｎｔｅｒ’７１２特許出願に説明されるＣＭＰＳを使用することにより、前記の情報に対して権利を有する当事者に確実に可変的に報告される。
【０１７５】
図２４に示される１つの実施態様においては、ＣＭＰＳ２４０１は、特別目的ハードウェアおよび常駐ソフトウェアまたはファームウェアによって構成される。これには、以下のものが含まれる。
（ａ）１つまたはそれ以上のプロセッサまたはマイクロコントローラ、例えばＣＰＵ２４０２。ＣＰＵ２４０２は、必要なソフトウェアの実行を含めてＣＭＰＳ２４０１の処理全体を制御する。
【０１７６】
（ｂ）１つまたはそれ以上の外部通信ポート、例えばポート２４０３。ポート２４０３は、外部ネットワーク２４０４と通信する。外部ネットワークには、ＬＡＮ、ＷＡＮまたはインターネットなど分散ネットワークが含まれる。外部通信ポートは、１つまたはそれ以上のＩＥＥＥ１３９４シリアル・バス・インターフェースも含むことができる。
【０１７７】
（ｃ）メモリ２４０５。メモリ２４０５に含まれるメモリのタイプ−およびそれが記憶する情報の例−は、以下のとおりである。
１）ＲＯＭ２４０６。ＲＯＭ２４０６は、（１）ＣＭＰＳオペレーティング・システム２４０７および（または）ＣＭＰＳＢＩＯＳ２４０８、（２）ＣＭＰＳに恒久的に記憶されるルール／制御２４０９、（３）ルールおよび制御を組み立てるために使用できる制御基本要素２４１０、（４）パブリック／プライベート・キー・ペアを含めてＣＭＰＳと対応付けられるキー２４１１、（５）バージョン情報を含めてＣＭＰＳ２４０１および（または）装置を識別するために設計される１つまたはそれ以上の証明書２４１２、（６）不正変更をチェックするために使用されるハードウェア署名情報２４１３（例えば、装置の予想されるハードウェア情報を反映するハッシュ署名）、など、ＣＭＰＳ２４０１に恒久的に記憶される情報を含むことができる。
【０１７８】
２）ＲＡＭ２４１４。ＲＡＭ２４１４は、ＣＭＰＳ２４０１が必要とする現在状態情報、並びに後に使用するためにＣＭＰＳ２４０１が一時的に記憶する情報を保持することができる。ＲＡＭ２４１４に記憶される情報には、以下のものが含まれる：（１）現在ＣＰＵ２４０２で実行中のソフトウェア２４１５；（２）現在アクティブのＣＭＰＯ２４１６；（３）現在アクティブのコンテンツ・オブジェクトのコンテンツ・オブジェクト識別符号２４１７（例えばＭＰＥＧ−４システムにおいては、これはアクティブＡＶＯの識別符号である）；（４）現在アクティブのルール２４１８；（５）高位の編成の識別符号を含めてコンテンツ使用の現在状態に関する状態情報２４１９（ＭＰＥＧ−４システムにおいてこれはシーン識別子ツリーの識別符号および合成およびレンダリングの現在状態である）；（６）外部伝送のために設計される使用および（または）ユーザに関して記憶される排出情報２４２０；（７）更新済み予算情報２４２１；（８）コンテンツ２４２２；（９）アクティブコンテンツクラス情報２４２３；および（１０）識別特性情報を含むアクティブ・ユーザ識別２４２４。
【０１７９】
３）ＮＶＲＡＭ２４２５（例えば、フラッシュ・メモリ）。このタイプのメモリは、少なくとも次のものを含めて持続するが変化する可能性のある情報を保持することができる：（１）予算情報２４２６；（２）識別符号、クレジットカード番号、所望のクリアリングハウスおよびその他のコマース・ユーティリティ・システムなどユーザ情報２４２７；（３）嗜好、プロフィルおよび（または）属性情報などユーザ嗜好２４２８；および（４）属性および（または）状態情報など機器情報２４２９。
【０１８０】
上に説明するＣＭＰＳメモリ２４０５に記憶されるタイプの情報は、以上のタイプのメモリに択一的に記憶される。例えば、ある種の予算情報はＲＯＭにロケートされ、特定の１つまたはそれ以上のクリアリングハウスに関する情報はＲＯＭに記憶され、特定のアクティブ情報はＮＶＲＡＭに移動できる。
予算情報は、例えば下記のものから成る記憶された予算を含むことができる：
（１）電子キャッシュ
（２）予め許可を受けている使用（例えば、前払いに基づいてユーザは１２時間のプログラムを見る権利を有する）
（３）例えば本文書に組み込まれているＳｈｅａｒ特許において説明されるとおり、異常なおよび（または）無許可の使用を反映するパターンに関するセキュリティ予算。この種の予算はある種の反復的使用行為を制限しかつ（または）これを報告する。
【０１８１】
（４）販促用資材への関心、および（または）１つまたはそれ以上のクラスの作品（例えば特定の発行者の作品）から複数の作品をプレイして、この発行者が提供する他の作品などこの発行者の作品を１つまたはそれ以上を将来プレイする際に、クレジットまたはキャッシュ払い戻しおよび（または）割引のきっかけをつくるなど、使用イベントから生じるクレジットを含む電子クレジット。
【０１８２】
ユーザ情報は、コマース・アプライアンスの許可を受けたユーザに関する下記のタイプの情報を含むことができる：
（１）名前、住所、電話番号、社会保障番号またはその他の識別子
（２）ユーザの認証のために使われる情報。この中には、ユーザが選択したパスワードおよび（または）指紋、目の色データなど生体測定データが含まれる。
【０１８３】
（３）ユーザのパブリック／プライベート・キー・ペア
（４）ユーザ属性および（または）プロファイリング情報
４）着脱式メモリ２４３０。これには、スマートカード、フロッピー（登録商標）・ディスクまたはＤＶＤディスクなどどのようなタイプの着脱式メモリ記憶装置でも含まれる。コマース・アプライアンスが着脱式メモリ装置（例えば、ＤＶＤプレーヤ）で受信したコンテンツをプレイするよう設計される場合、この機能をＣＭＰＳのために使用できる。
【０１８４】
メモリ２４０５は、保護されたデータベースを含むことができ、この場合、特定の制御、予算、監査、セキュリティおよび（または）暗号化情報が安全なメモリに記憶され、情報全体は安全でないメモリに暗号化されて記憶される。
（ｄ）暗号化／解読エンジン２４３１。ＣＭＰＳ２４０１は、コンテンツおよびＣＭＰＯ及び（または）その他を含めて受信した情報を解読するための機構を含まなければならない。ＣＭＰＳ２４０１は、また、情報がＣＭＰＳ２４０１の安全な境界外で伝送される場合には情報を暗号化するための機構も含むことができる。この情報には、クリアリングハウスまたはその他の外部レポジトリに送られる排出、およびＩＥＥＥ１３９４シリアル・バス２４３２を通じてコンピュータ中央処理装置またはモニタなどビュー装置に送信されるコンテンツなど使用のために安全でないバスで送信されるコンテンツが含まれる。この場合、例えばコンテンツの解読を含めてコンテンツの使用を制御するために受信側ＣＭＰＳを使用することができる。暗号化／解読エンジン２４３１は、ＣＭＰＳの一意性を識別し保証し安全なコンテンツ制御と安全な暗号化／解読装置の間の安全な通信チャンネルをサポートするために使用できるキーまたはキー・ペアを作成するために使用される乱数ジェネレータ２４３３を含むことができる。
【０１８５】
（ｅ）安全なクロック／カレンダー２４３４。ＣＭＰＳ２４０１は、日付および時刻に関する絶対的情報、絶対的経過時間に関する情報および（または）システムが行う操作の経過時間を判定するために使用される相対的タイミング情報を示すように設計される安全なクロック／カレンダー２４３４を含むことができる。安全なクロック／カレンダー２４３４は、バッテリー・バックアップ２４３５を含むことができる。さらに、電力損失の場合に正確な時間を回復するためまたは不正変更をチェックするために使用される外部タイミング情報と同期化するための同期化メカニズム２４３６を含むことができる。
【０１８６】
（ｆ）コンテンツのレンダリングおよび表示に使用されるブロックへのインターフェース２４３７。このインターフェースは、ルールに基づいてレンダリングおよび表示を制御するためおよびフィードバック情報を入手するために使用される。フィードバック情報は予算作成のためまたは外部サーバに情報を提供するために使用できる（例えば、どのコンテンツが実際に表示されたか、どの選択肢をユーザが選んだかなどに関する情報）。図２３に示されるＭＰＥＧ−４プレーヤの場合、例えばバッファリング、シーンディスクリプタグラフ、ＡＶＯデコード、オブジェクト・ディスクリプタおよび合成およびレンダリングを処理するコマース・アプライアンス回路に対する制御を含むことができる（例えば制御ライン２３１０、２３１１および２３１２）。
【０１８７】
合成およびレンダリング・ブロック２３０９からのフィードバック・パス２３１３は、コンテンツが実際に視聴者にリリースされたか否か、およびそれがいつであるかをＣＭＰＳ２３０２が判定できるようにする。例えば、合成およびレンダリング・ブロック２３０９は、ＡＶＯオブジェクトが視聴のためにリリースされるときＣＭＰＳ２３０２に開始イベントを発行し、ＡＶＯオブジェクトが視聴されなくなったらＣＭＰＳ２３０２に停止イベントを発行することができる。
【０１８８】
合成およびレンダリング・ブロック２３０９からのフィードバックは、視聴のために実際にリリースされたオブジェクトの識別符号とリリースが許可されたオブジェクトの識別符号をＣＭＰＳ２３０２が照合できるようにすることによって、不正変更を検出するために使用することもできる。開始および終了時間も、予想経過時間と比較でき、これが一致しない場合には無許可のイベントの発生を示す可能性がある。
【０１８９】
１つの実施態様においては、フィードバック・データに下記のプロトコルが使用される：
ｓｔａｒｔ＜ｉｄ＞，Ｔ，＜インスタンス番号＞＜クロック時間＞＜レンダリング・オプション＞
基本ストリーム＜ｉｄ＞が時間ＴにＳＤグラフにおいて到達可能であるが、時間Ｔ−１では到達不能の場合、に送信される。
【０１９０】
ｅｎｄ＜ｉｄ＞，Ｔ，＜インスタンス番号＞＜クロック時間＞＜レンダリング・オプション＞
Ｔはプレゼンテーション時間、クロック時間は曜日および日付情報を含む壁時計時間であり、レンダリング・オプションはＱｏＳおよびプレイ速度（例えば早送り）などの情報を含む。
【０１９１】
基本ストリーム＜ｉｄ＞がＳＤグラフにおいて時間Ｔ−１に到達可能であるが、時間Ｔに到達不能である場合に送信される。ＳＤグラフ・ストリームは、表示更新のためにＳＤグラフを横断中、レンダラがＳＤグラフ更新ストリーム＜ｉｄ＞が作成または修正したノードに遭遇する場合、到達可能である。これは、ツリーの全てのノードが更新履歴リストを必要とすることを暗示する。このリストは、ストリームの数ほど大きい必要はない。さらに、ＣＭＰＳがストリームを監視しているかどうかを示すためにラベルをつけることができ、ラベルが付けられない場合、リストはストリームを記録しない。ＡＶ基本ストリームは、ストリームのコンテンツがレンダリングされた場合到達可能である。
【０１９２】
ＳＤグラフ更新ストリームの場合、オブジェクト・インスタンス番号は無視される。ＡＶストリームの場合、インスタンス番号はディスプレイが同一のデータ・ストリームの２つ以上のインスタンスを同時に示す場合に曖昧さを排除するために使用できる。インスタンス番号は、数え上げる必要はない。この場合、インスタンス番号は、単にＣＭＰＳが開始イベントと終了イベントを照合できるようにする一意のｉｄに過ぎない。
【０１９３】
第二の実施態様において、ＣＭＰＳ２３０２は、装置の他の機能のためにも使用される汎用ハードウェアと組み合わせて特別目的のハードウェアを含む。この実施態様においては、汎用ハードウェアを使っても、商業的に信頼できるＣＭＰＳ機能が安全で不正変更できない方法で実行されるように注意しなければならない。上に述べたエレメントの各々は、以下のとおり専用ＣＭＰＳ機能および汎用装置機能を含むことができる。
【０１９４】
（ａ）ＣＰＵ／マイクロコントローラ。これは、１つまたはそれ以上の装置を含むことができる。複数の装置が含まれる場合（例えば、ＣＰＵおよびＤＳＰ、マス・コプロセッサまたはコマース・コプロセッサ）、装置は不正変更できないように同じパッケージ内に含まれるか、安全なバスを通じて通信する。ＣＰＵは、２つのモード、すなわち安全なＣＭＰＳモードおよび安全でない汎用モードを含むことができる。安全なＣＭＰＳモードは、汎用モードのプロセッサが利用できない安全なメモリ・ロケーションのアドレス指定を可能にする。これは、例えば、安全でないモードのときＣＰＵが安全なメモリ・ロケーションをアドレス指定できないように利用可能なメモリ・スペースの一部をリマップする回路によって、実現される。
【０１９５】
（ｂ）外部通信ポート。装置、例えばコマース・アプライアンスが通信ポート（例えば、ケーブル接続、インターネット接続）を通じてコンテンツまたはその他の情報を受信できる場合、この通信ポートはＣＭＰＳ用に使用できる。この場合、外部通信ポートへのＣＭＰＳのアクセスは、コンテンツ受信のためにこのポートの使用を妨害することを避けるようにまたは最小限に抑えるように設計されることが望ましい。
【０１９６】
（ｃ）メモリ。一部のアプリケーションおよび実施態様においては、ＮＶＲＡＭなしでコマース・アプライアンスを操作することが可能であり、この場合、ＮＶＲＡＭを使用するＣＭＰＳの操作に必要とされる情報は必要に応じてＲＡＭにロードされる。ＲＯＭ、ＲＡＭおよびＮＶＲＡＭは、ＣＭＰＳ使用および一般使用の間で共用できる。これは、以下の方法のいずれかでまたはその組み合わせで実現できる：（１）メモリ・スペースの一部を、例えばリマップによって汎用をオフリミットにする；（２）安全でない目的に使用されるメモリのたとえ一部でも、安全な許可された方法でない限り観察または変更できないように、メモリ全体を安全にする；（３）ＣＭＰＳはＲＡＭに記憶される非暗号化情報に直接アクセスする必要があるので、少なくともＲＡＭの一部を安全にする必要があるが、ＣＭＰＳ情報を暗号化して記憶する。
【０１９７】
（ｄ）暗号化／解読エンジン。キー生成を含めて暗号化および解読機能は、汎用プロセッサ装置特に例えば浮動小数点プロセッサまたはＤＳＰ装置で実行される特別目的ソフトウェアにより処理できる。このプロセッサ装置は、コンテンツを解凍し表示するためおよび（または）ウォーターマーク／フィンガープリントの挿入および読み取りを処理するためにも使用できる。その代わりに装置は、固有の暗号化および解読機能を含むことができる。例えば、新たに出現する各種の標準は、「５社提案」およびその他のＩＥＥＥ１３９４関連の提唱のように、ＤＶＤプレーヤなどの装置内および装置間で安全でないバスを通じて送られるよう設計されるコンテンツの少なくともある程度の暗号化および解読を要求するだろう。この種の暗号化および解読を行うために設計される回路は、ＣＭＰＳアプリケーションにも使用可能である。
【０１９８】
（ｅ）安全なクロック／カレンダー。基礎装置は、すでに少なくともある種のクロック情報を必要とするだろう。例えばＭＰＥＧ−４は、基本ストリームの同期化のためにクロック情報を使用する必要がある。安全なＣＭＰＳクロックは、このためにも使用できる。
第３の実施態様において、ＣＭＰＳ２３０２は、主に、最小限のセキュリティ関係の機能を含む汎用装置で実行されるよう設計されるソフトウェアとすることができる。この場合、ＣＭＰＳ２３０２は、コンテンツと同じチャンネルでまたは側波帯チャンネルで受信される。Ｉ−ＣＭＰＳおよび（または）その他のＣＩは、ＣＭＰＳの特定のタイプを指定する場合があり、その場合、コマース・アプライアンス２３０１はこれを持つか入手しなければならない（例えば、Ｉ−ＣＭＰＯにより指定されるロケーションからダウンロードする）。また、例えばＩ−ＣＭＰＯと一緒にＣＭＰＳ２３０２が含まれる場合がある。
【０１９９】
ソフトウェアＣＭＰＳは、コマース・アプライアンスのＣＰＵで実行される。この方法は専用ハードウェアを使用するより本来的に安全性に欠けるかもしれない。コマース・アプライアンスが安全なハードウェアを含む場合、ソフトウェアＣＭＰＳは、コマース・アプリケーションの特定のタイプのためにハードウェアをカスタマイズするダウンロード可能なＯＳおよび（または）ＢＩＯＳを構成することができる。
【０２００】
１つの実施態様において、ソフトウェアＣＭＰＳは、ソフトウェアを実質的に「強化」できる１つまたはそれ以上のソフトウェア不正変更抵抗手段を使用できる。この手段は、ＣＭＰＳの一部または全てを逆行分析することを非常に困難にしさらに所与の１つまたはそれ以上のＣＭＰＳの逆行分析から一般化することを困難にするために、アルゴリズム手段を使用するソフトウェア不明瞭化テクニックを含む。この不明瞭化は、ソース・コードから独立することが望ましく、オブジェクト・コードは、ＣＭＰＳごとにおよびプラットフォームごとに変えることができるので、複雑性および役割の分離をさらに増す。この不明瞭化は、ＣＭＰＯなどＣＩ並びにＣＭＰＳ自体の一部または全部の両方に「独立して」採用できるので、処理環境およびおよびプロセスのための実行可能コードの両方を不明瞭にする。この方法は、また、上に説明した統合化ソフトウェアおよびハードウェア・インプリメンテーションＣＭＰＳインプリメンテーションにも応用できる。ある種の状態情報を他の目的に使用されるＮＶメモリのロケーションなどはっきりしない予期されないロケーションに記憶するための「場所隠し」およびウォーターマーキング／フィンガープリンティングなどのデータ隠しテクニックを使用することを含めて、他の不正変更抵抗手段も、採用できる。
【０２０１】
（ＣＭＰＳとコマース・アプライアンスの対応付け）
ＣＭＰＳは、特定の装置に恒久的に付属させるか、部分的または全面的に着脱式にすることができる。着脱式ＣＭＰＳは、コマース・アプライアンスおよび（または）着脱式ハードウェアに安全にロードされるソフトウェアを含むことができる。着脱式ＣＭＰＳは、ユーザ・キー、予算情報、嗜好などを含めて１人またはそれ以上のユーザのために個人化できるので、様々なユーザが予算および（または）他の権利を混合することなく、同じコマース・アプライアンスを使用できるようにする。
【０２０２】
ＣＭＰＳは、特定のタイプのコンテンツに作用するようにおよび（または）特定のタイプのビジネス・モデルに作用するように設計できる。コマース・アプライアンスは、複数のタイプのＣＭＰＳを含むことができる。例えば、異なる標準に従ってコンテンツを受け入れて表示するよう設計されるコマース・アプライアンスは、各フォーマット・タイプごとに１つのＣＭＰＳを含むことができる。さらに、コマース・アプライアンスは、優先的に特定のタイプのコンテンツを表示し、優先的に特定のチャンネルを通るコンテンツについて料金を請求するよう設計される、特定のプロバイダが提供するＣＭＰＳを含むことができる（例えば、１つまたはそれ以上の特定のクレジットカードに料金を請求し、かつ（または）１つまたはそれ以上の特定のクリアリングハウスを使用する）。
【０２０３】
（ルールのソース）
ＣＭＰＳは、特定のコンテンツに適用されるルールを認識しなければならない。ＣＭＰＳは、このルールを、使用される実施態様に応じて多様なソースから受け取ることができる：
（ａ）ＣＭＰＯ。ルールはＣＭＰＯ（例えば、ＣＭＰＯ２３０３）および（または）その他のＣＩ内に含めることができる。ＣＭＰＯおよび（または）その他のＣＩは、コンテンツ・オブジェクトまたはストリーム内に（例えば、ＭＰＥＧ−４ＥＳのヘッダとして）組み込み、かつ（または）基礎標準に従ってコード化され受信される専用コンテンツ・オブジェクト（例えばＭＰＥＧ−４ＣＭＰＯＥＳ）内に含め、かつ（または）通常のストリーム外で受信することができる。この場合、基礎標準にしたがってコード化することはできない（たとえば、側波帯チャンネルを通じて暗号化オブジェクトとして受信されるＣＭＰＳ）。
【０２０４】
（ｂ）ＣＭＰＳ。ルールは、ＣＭＰＳ内に恒常的にかつ（または）持続的に記憶できる。例えば、ルール２４０９。ＣＭＰＳは、例えば、ＣＭＰＯおよびその他の必要なＣＩが受信されない状況（例えば、ＭＰＥＧ−４バージョン１を含めてＣＭＰＯを組み込んでいない以前のバージョンの標準に基づいてコード化されたコンテンツの場合）を処理するために設計されるデフォルト・ルールを含むことができる。ＣＭＰＳ内に記憶される完全なルールは、ＣＭＰＯおよびまたはその他のＣＩによって直接的または間接的に呼び出すことができる。これは、ＣＩがポインタを通じて特定のルールを識別することによるか、またはＣＩが自身およびそれが必要とする制御の一般的クラスを識別することによって行われ、ＣＭＰＳはその後、このＣＭＰＳに固有の特定のルールを適用する。
【０２０５】
ルール「基本要素」もＣＭＰＳ内に記憶できる（例えば、制御基本要素２４１０）。ＣＭＰＯ及び（または）その他のＣＩは、各々が一連のＣＭＰＳ基本要素をトリガする一連のマクロタイプのコマンドを含むことによってルール基本要素を呼び出すことができる。
（ｃ）ユーザ。ユーザは、特定のユーザの嗜好に関するルールを作成することができる。このルールは、一般に、コンテンツの使用をさらに限定することが許されるが、許容範囲を超えてコンテンツの使用を拡大することは許されない。例には次のようなものがある：（ａ）特定のタイプのコンテンツ（例えば、成人映画）をパスワードを入力した後でかつ（または）特定のＣＭＰＳユーザ（例えば、両親および（または）政府機関など社会的団体が指定する成人−子供ではなく−）しかアクセスできないように設計されるルール；（ｂ）特定のユーザだけがある限度を超える支払いを必要とする操作を呼び出すまたはある金額を超える総額となることを許容されるように設計されるルール。
【０２０６】
ユーザが、前記のＧｉｎｔｅｒ’３３３特許出願（本文書に組み込まれている）において説明したようなルールのテンプレートを作成できるようにすることができる。さらに、ＣＭＰＳ装置および（または）特定のＣＭＰＯおよび（または）その他のＣＩは、ユーザが指定を許容されるルールを制限できる。例えば、ＣＩは、あるユーザがある作品をコピーできるが、追加のコピーを作るための受け手の能力を制限するルールを（または、第１のユーザに支払いを行った後初めて視聴することができる）作品に追加することはできないことを、指定することができる。ユーザが提供する１つまたはそれ以上のルールは、支払い、監査、プロファイリング、嗜好および（または）その他の種類の情報（例えば、保護されているコンテンツの使用を含めてＣＭＰＳ装置の使用の結果としての情報）の使用−これに関するプライバシーの制限を含めて−に適用される。ユーザ提供の１つまたはそれ以上のルールは、情報が１つまたはそれ以上の基準に従って集合されるか否かおよびユーザおよび（または）機器識別情報が集合中および（または）その後の報告、分散またはその他の使用中除去されるか否かに関係なく、ユーザ装置において、ユーザおよび（または）１つまたはそれ以上のコマース・アプライアンスと対応付けが可能である。
【０２０７】
親は各視聴者がどのようなタイプの情報を見ることが許されるかを正確に指定するためにコンテンツ格付け情報を使用することができるので、ユーザがルールを指定できるということは、ＣＭＰＳがＶチップを包括できるように（それにより置き換えられるように）する。（例えば、暴力的コンテンツは、ユーザが保有する着脱式のハードウェア・カード（スマートカードまたは権利カード）の挿入を含めて特定のパスワードおよび（または）その他の識別子を入力した後にしか表示できない）。
【０２０８】
（ｄ）外部ネットワーク・ソース。ルールは、外部サーバに記憶できる。ルールは、必要であればＣＭＰＳによってアドレス指定され、ダウンロードされる（例えば、ＣＭＰＯおよび（または）その他のＣＩおよび（または）ＣＭＰＳは、１つまたはそれ以上のＵＲＬなど特定のルール・ロケーションのポインタを含む）。さらに、コンテンツ・プロバイダおよび（または）クリアリングハウスは一般適用のために設計されたルールを同報通信できる。例えば、コンテンツ・プロバイダは、販促イベントに参加するユーザに対して割引を定める１組のルールを同報通信することできる（例えば、特定のユーザ情報を提供することにより）。この種のルールは全ての接続された装置が受信できるか、コンテンツ・プロバイダが重要と識別する特定の装置が受信でき（例えば、ＣＭＰＳがクリアリングハウスおよび（または）１つまたはそれ以上のクラスのメンバーなど特定のアイデンティティ特性を持つ全てのメンバーに提供する排出情報により識別される特定のプログラムの最近の視聴者全て）、かつ（または）中央ロケーションに掲示できる。
【０２０９】
（実施態様例）
１つの実施態様において、１組のＭＰＥＧ−４基本ストリームが１つの作品を構成する。基本ストリームは、一緒に暗号化され、多重化されて、１つの集合ストリームを構成する。１つまたはそれ以上のＣＭＰＯがこのストリームの中に存在するか、ストリームに対応付けられる。選択肢は以下のとおりである。
【０２１０】
１．コンテンツをストリーム方式にするか、あるいは静止データ構造として受信する。
２．作品を単一のストリームまたはデータ構造から構成するか、あるいは各々１つのオブジェクトを構成する多くの別個にアドレス指定可能なストリームまたはデータ構造から構成する。
【０２１１】
３．１つの作品が別個にアドレス指定可能なストリームまたはデータ構造から構成される場合、このストリームまたはデータ構造を一緒に多重化して集合ストリームとするか、あるいは別個に受信する。
４．ストリームまたはデータ構造が一緒に多重化されて集合ストリームとされる場合、ストリームまたはデータ構造を多重化前に暗号化できる。基礎ストリームまたはデータ構造が暗号化されるか否かに関係なく、集合ストリーム自体を暗号化できる。従って、以下の可能性が存在する：（ａ）個々のストリーム／データ構造が暗号化されず（明文であり）、集合ストリームが暗号化されない；（ｂ）個々のストリーム／データ構造が多重化前に暗号化されず、集合ストリームが多重化後に暗号化される；（ｃ）個々のストリーム／データ構造が多重化前に暗号化され、集合ストリームが多重化後に暗号化されない；（ｄ）個々のストリーム／データ構造が多重化前に暗号化され、集合ストリームが多重化後に暗号化される。
【０２１２】
５．ＣＭＰＯを、チャンネル（ＣＣＭＰＯ）、作品（ＭＣＭＰＯ）または個々のオブジェクト（ＣＭＰＯ）と対応付けることができる。
６．ＣＭＰＯを、被制御データ前に受信するか、データと同時に受信するか、あるいはデータの後に受信できる（この場合データの使用は、ＣＭＰＯが受信されるまで待たなければならない）。
【０２１３】
７．ＣＭＰＯを、集合ストリームの一部としてあるいは別個に受信できる。
８．ＣＭＰＯが集合ストリームの一部として受信される場合、これを、個々のストリームまたはデータ構造と一緒に多重化するか、あるいは、別個のストリームまたはデータ構造を構成することができる。
９．ＣＭＰＯが集合ストリーム内で多重化される場合、これを暗号化するか、あるいは暗号化しない。暗号化する場合、多重化前に暗号化するか、あるいは集合ストリーム全体が暗号化される場合には多重化後に暗号化することができる。
【０２１４】
１０．ＣＭＰＯが集合ストリームの一部として受信される場合、ＣＭＰＯを、（ａ）コンテンツを保持するストリームまたはデータ構造の一部（例えばヘッダ）とするか、（ｂ）コンテンツを保持するストリームまたはデータ構造と同じフォーマットに従ってコード化された別個のストリームまたはデータ構造（例えばＭＰＥＧ−４ＥＳ）とするか、あるいは（ｃ）ＣＭＰＯのために設計される異なるフォーマットに基づいてコード化された別個のストリームまたはデータ構造とすることができる。
【０２１５】
１１．ＣＭＰＯがコンテンツを保持するストリームまたはデータ構造の一部である場合、ＣＭＰＯを、（ａ）受信されたらその後コンテンツの制御のために持続的に維持されるヘッダとするか、（ｂ）ストリームまたはデータ構造内で定期的な間隔で受信されるヘッダとするか、あるいは、（ｃ）ストリームまたはデータ構造全体に分散されるデータとすることができる。
【０２１６】
以上のような様々なシナリオは、ＣＭＰＯの非多重化および解読のための様々な要件を生じる。図２５は、以下の実施態様を図解している。
１．集合ストリーム２５０１は多重化ＥＳ（例えばＥＳ２５０２および２５０３）によって構成される。このＥＳの組み合わせは、単一の作品を構成する。集合ストリーム２５０１は、ケーブル・アグリゲータによって生成され、多数のチャンネルの１つとしてユーザのセットトップ・ボックスによって受信される。
【０２１７】
２．各チャンネルに対応するＣＣＭＰＯ２５０４は定期的に（例えば１秒に１回）ヘッダ２５０５においてケーブルに沿って送られる。セットトップ・ボックスは、オンになると各チャンネルをポーリングし、全ての現在ＣＣＭＰＯをダウンロードする。これは持続的に記憶されて、前のＣＣＭＰＯと異なる新しいＣＣＭＰＯが受信される場合のみ変更される。
【０２１８】
３．ユーザがチャンネルを選択すると、セットトップ・ボックスは、連想ＣＣＭＰＯをアドレス指定する。ＣＣＭＰＯは、例えば、この特定のチャンネルのコンテンツがこのチャンネルの加入者しかアクセスできないと指定できる。セットトップ・ボックス内のＣＭＰＳは、ＮＶＲＡＭに持続的に記憶されているユーザ・プロフィルにアクセスして、ユーザが加入者かどうか判定する。ＣＭＰＳは、ＣＣＭＰＯルールが満たされたと見なす。
【０２１９】
４．ＣＭＰＳは、現在チャンネルに流れている作品（ビデオ）に対応付けられるＭＣＭＰＯの識別子およびＭＣＭＰＯのキーを入手する。作品がチャンネルで連続的に受信される場合（例えば、１度に１つの作品が提供されるテレビ・チャンネル）受信されるＭＣＭＰＯ識別子は、現在チャンネルにあるどのＭＣＭＰＯでもアドレス指定できるように、ドント・ケア・ビットを含むことができる。
【０２２０】
５．ＣＭＰＳは、集合ストリーム２５０１の非多重化を開始し（これは前のステップと並行して行うことができる）、ＭＣＭＰＯを入手し、ＭＣＭＰＯは集合ストリーム内で多重化されるＥＳにコード化される（例えばＭＣＭＰＯ２５０６）。集合ストリーム２５０１内の各ＥＳは暗号化されているが、集合ストリームは多重化後暗号化されていない。そのため、ＣＭＰＳは集合ストリーム全体を解読することなく集合ストリーム２５０１を非多重化できる。
【０２２１】
６．ＣＭＰＳはＭＣＭＰＯを構成するＥＳ（例えばＥＳ２５０３）を識別する。ＣＭＰＳは、ＭＣＭＰＯ２５０６の１つの完全なインスタンスを内部バッファにダウンロードし、ＣＣＭＰＯ２５０４から受け取ったキーを使ってＭＣＭＰＯ２５０６を解読する。
７．ＣＭＰＳは、ＭＣＭＰＯ２５０６によりどのルールが適用されるかを判定する。ＣＭＣＰＯ２５０６は、例えば、ユーザは広告と一緒であれば作品を低料金で視聴することができるが、広告なしで作品を視聴するためには高い料金を支払わなければならないことを定めるルールを含むかも知れない。
【０２２２】
８．ＣＭＰＳは、オプション・メニューを生成し、ユーザのためのこれを画面に表示する。メニューは、オプションおよび各オプションのコストを示す。支払いタイプを含めて追加のオプションを指定することができる。
９．ユーザは、広告を挟むが低料金で作品を見ることを選択するためにリモコン装置を使用する。ユーザは、支払いは、ＣＭＰＳに記憶される電子キャッシュ予算から行えることを指定する。
【０２２３】
１０．ＣＭＰＳは、ＮＶＲＡＭに持続的に記憶される予算から指定される金額を差し引き、ケーブルに結合されるサーバに対するメッセージを生成し、暗号化する。メッセージは、電子キャッシュを転送することによってあるいはユーザの口座からケーブル・プロバイダの口座に金額を移すことを財務クリアリングハウスに許可することによって、要求される予算をサーバに伝える。１個のメッセージは、すぐに送信されるか、あるいはバッファリングして後に（例えばユーザが装置をインターネットに接続するとき）送信することができる。このステップは、コンテンツの解読と並行して行うことができる。
【０２２４】
１１．ＣＭＰＳはＭＣＭＰＯ２５０６から作品と対応付けられる基本ストリーム（例えば、ＥＳ２５０２）を解読するために使用される１組のキーを入手する。ＣＭＰＳは、また、使用される特定のＥＳの識別子も入手する。ユーザは、広告を含めることを指定してあるので、ＭＣＭＰＯは広告と対応付けられるＥＳを識別し、広告を含んでいるシーンディスクリプタグラフを識別する。広告を含まないシーンディスクリプタグラフは識別されず、ＣＭＰＳはこれを通過しない。
【０２２５】
１２．ＣＭＰＳは、解読済みＥＳをＭＰＥＧ−４バッファに送る。ＭＰＥＧ−４デコード、合成およびレンダリングの通常のプロセスが行われる。合成およびレンダリング・ブロックは、視聴のためにリリースされる各オブジェクトごとに開始および停止イベントを出力する。ＣＭＰＳはこの情報をモニタして、これを予想イベントと比較する。特に、ＣＭＰＳは、広告が視聴のためにリリースされたこと、および各操作がほぼ予想時間量を占めたことを確認する。
【０２２６】
別の実施態様においては、ＣＭＰＳ（例えば、図２３のＣＭＰＳ２３０２）が収められるセットトップ・ボックスはケーブル入力を持つ（例えば、Ｍ４ビット・ストリーム２３１４およびＣＭＰＯ２３０３）。ケーブルは、各々２つのサブチャンネルから成る多重チャンネルを持ち、１つのサブチャンネルはＭＰＥＧ−４ＥＳ（例えば、Ｍ４ビット・ストリーム２３１４）を搬送し、他方のサブチャンネルはＣＭＰＯ（例えば、ＣＭＰＯ２３０３）を搬送する。ＣＭＰＯ２３０３を搬送するサブチャンネルは直接ＣＭＰＳ２３０２に向けられ、ＥＳチャンネルは解読ブロック（ＣＭＰＳの制御下で動作する、例えばＣＲ＆Ｄ２３１５）に向けられ、その後ＭＰＥＧ−４バッファ（例えば、シーンディスクリプタグラフ２３０６、ＡＶＯデコード２３０７およびオブジェクト・ディスクリプタ２３０８に対応付けられるバッファ）に向けられる。この場合、ＥＳが暗号化されなければ、ＥＳは変更されずに解読ブロックを通り抜けバッファにまで進む。例えば、ＥＳが制限なしに無料で放送される場合、および（または）パブリック・ドメイン情報である場合、および（または）ＭＰＥＧ−４標準にＣＭＰＯが含まれる前に作成された場合、これが生じる。
【０２２７】
この実施態様は、ＣＭＰＯが連想ＥＳと同期化できるように、ＣＭＰＯサブチャンネルにタイミング同期化情報を含むことができる。
１つは制御情報からなり直接ＣＭＰＳに接続され、１つはＥＳから成る、２つの別個のストリームを合体させるというコンセプトは、基礎のＥＳフォーマットを変更することなくＣＭＰＯおよび特定タイプのＣＭＰＳのフォーマットを変更するという高度な変調をサポートできる。例えば、コンテンツＥＳをリフォーマットすることなくＣＭＰＯフォーマットを変更することが可能である。他の例をあげると、コンテンツＥＳの非多重化、合成およびレンダリングのために設計される回路には一切変更を加える必要なく、新しいまたは異なるＣＭＰＳを含めることによってコマース・アプライアンスをアップグレードすることが可能である。ユーザは、スマートカードまたはその他の着脱式装置上でＣＭＰＳを入手し、この装置をコマース・アプライアンスに差し込むことができる。こうすることによって、特定のアプリケーションまたは特定のコンテンツに合わせてコマース・アプライアンスをカスタマイズすることができるだろう。
【０２２８】
（ＣＥ装置へのＣＭＰＳインターフェース）
ＣＭＰＳは、消費者用エレクトロニクス装置の汎用機能と関連ＣＭＰＯおよび（または）その他のＣＩおよび保護されているコンテンツの間の標準化インターフェースを提供するよう設計できる。例えば、ＣＭＰＳは、ＣＩおよび暗号化されたＥＳを受け取り、解読されたＥＳを装置のバッファに出力するよう設計できる。この場合、装置の製造者は、プロバイダによって異なる可能性のある標準のコマース関係の拡張について心配することなく、仕様（例えばＭＰＥＧ−４）に従って装置を設計することができるだろう。前記の拡張は、全てＣＭＰＳが処理する。
【０２２９】
（初期化）
１．ＣＭＰＳの初期化
ＣＭＰＳを使って、ＣＭＰＳがインストールされているコマース・アプライアンスの機能を識別することができる。恒常的に特定のコマース・アプライアンスと結合されるＣＭＰＳは、ＣＭＰＳが最初にインストールされるときに組み込まれる情報を持つことができる（例えば、図２４に示されるＲＯＭ２４０６に記憶される情報）。着脱式のＣＭＰＳは、装置の機能に関する情報を入手するために初期化操作を実行するために使用できる。この情報は、ＮＶＲＡＭ２４２５に記憶されるデータ構造に記憶することができる。その代わりに、この情報の一部または全部を装置がオンにされるたびに集めて、ＲＡＭ２４１４に記憶することができる。
【０２３０】
例えば、ＤＶＤプレーヤは、外部サーバおよび（または）プロセスへの接続を含む場合も含まない場合もある。ＤＶＤ（あるいはその他のフォーマット光ディスク）プレーヤに挿入されるＤＶＤ（あるいはその他のフォーマット光ディスク）に記憶されるＣＭＰＯおよび（または）その他のＣＩは、サーバに情報を出力する可能性に基づくルールを含むか（例えば、ユーザ識別情報が出力される場合コンテンツは無料）、例えばコンテンツを解読するために使用されるキーをダウンロードするために直接接続を要求できる。この場合、ＣＭＰＳ装置は、ＣＭＰＯが期待または要求するハードウェア機能を判定し、これを実際に存在するハードウェアと比較する。ＣＭＰＳがＣＭＰＯおよび（または）その他のＣＩがネットワーク接続を必要とし、ＤＶＤプレーヤがこの接続を含んでいないと判定すると、ＣＭＰＳは、以下のステップを含めて多様な措置を講じることができる：（１）ネットワーク接続があるアプションには必要で他のオプションには必要ない場合、可能なオプションのみユーザに表示させる；（２）必要なハードウェアが欠けていることをユーザに知らせる；または（３）ユーザに拒絶の理由を知らせることを含めてディクスを丁寧に拒絶する。
【０２３１】
別の例をあげると、ＣＭＰＯおよび（または）その他のＣＩは、品質水準（またはある所与の作品のその他の変形形態、例えば時間が長いおよび（または）大きいなど）の中からユーザが選べるようなビジネス・モデルを含むことができ、ユーザが高水準の品質を選択すると高い価格が請求される（例えば、低い分解能の音楽は無料でプレイできるが、高分解能デプレイするには支払いが必要である）。この場合、コマース・アプライアンスは、高分解能のサウンドを出力できるラウドスピーカを含まないかも知れない。ＣＭＰＳ装置はこの状況を識別し、ユーザのオプションとして高分解能の出力を排除するか、このオプションはもっとコストがかかるが、現在のコマース・アプライアンスの機能ではまたは高品質のラウドスピーカーを備えるユーザ装置にコマース・アプライアンスがドッキングされていない状態ではこのオプションは何の利益ももたらさないことをユーザに知らせることが望ましい。
【０２３２】
コマース・アプライアンスが外部装置（例えばラウドスピーカ、ディスプレイなど）に接続される場合、ＣＭＰＳは、この装置を識別し登録するためのメカニズムを必要とする。各装置を使って、標準ＩＤおよび機能情報をいつでも利用可能にできるので、ＣＭＰＳは、例えば接続される装置の１つまたはそれ以上の内部のＣＭＰＳ装置を認証することを含めて、接続される全ての装置を定期的にポーリングできる。別の方法を使用すると、全ての装置を使って、電源をオンするときにＣＭＰＳ識別情報を出力し、後に、接続される装置を使って接続確立時にこの情報を出力することができる。識別情報は、例えば、「５社提案」に基づき提供される認証情報の形をとることができ、認証方法は参照により本文書に組み込まれる。
【０２３３】
前に述べたとおり、コマース・アプライアンスは、各々独自のＣＭＰＳ装置を含んでいる複数の装置に接続することができる（例えば、ＤＶＤプレーヤをデジタル・テレビに接続することができる）。この場合、ＣＭＰＳは、安全な通信を開始し（例えばＩＥＥＥ１３９４シリアル・バスに関する「５社提案」などのスキームを使って）、ＣＭＰＳがＣＭＰＳ間のコンテンツ通信に関しておよび実施態様によっては本文書に組み込まれているＳｈｅａｒの特許出願において説明されるようなコンテンツの協力的統御に関してどのように対話するかを決定できなければならない。１つの実施態様においては、コンテンツを受信する第１のＣＭＰＳ装置が、初期ＣＭＰＯおよび（または）その他のＣＩをダウンロードすることにより制御プロセスを統御し、ユーザにルールのうち１つまたはそれ以上を表示するかも知れない。第二のＣＭＰＳ装置は、２つのＣＭＰＳ装置間の通信の結果としてまたは第１のＣＭＰＳ装置によって作成されたコンテンツ・ストリームへの変更（コンテンツを解読して、非多重化、合成およびレンダリングを可能にした）の結果として、それ以上果たすべき役割を持たないことを認識するかも知れない。
【０２３４】
アップストリームとダウンストリームのＣＭＰＳ装置間の関係は、一方の装置がＭＰＥＧ−４レンダリングのある面を処理し、他方の装置が他の面を処理する場合、複雑化するかも知れない。例えば、ＤＶＤプレーヤが、非多重化およびバッファリングを処理し、生ＥＳをデジタルＴＶに転送し、その後デジタルＴＶが合成およびレンダリング並びに表示を処理する場合があるかも知れない。このような場合、合成およびレンダリング・ブロックからアップストリームのＣＭＰＳ装置へのバックチャンネルがないかも知れない。ＣＭＰＳ装置は、独立のケース（ＣＭＰＳを持たない処理能力のないＴＶにＣＭＰＳが付属しているＤＶＤ（またはその他光ディスク）プレーヤ）、１つのＣＭＰＳ装置が全ての処理を扱う多重ＣＭＰＳ装置のケース（合成およびレンダリングを通じてＤＶＤ（またはその他の光ディスク）プレーヤが全てを処理し、デジタルＴＶにビデオ・ストリームが出力される）（非限定的例としてはＩＥＥＥ１３４９シリアル・バスを通じて）（出力ストリームは、ＩＥＥＥ１３９４シリアル・バス伝送を使用するコピー保護に関する「５社提案」に従って暗号化される）、および（または）処理の一部または場合によって全部に関する２つ以上のＣＭＰＳ装置間での共用処理、を処理するよう設計されることが望ましい。
【０２３５】
２．特定のコンテンツ・ストリームの初期化
ＣＭＰＳは、特定のコンテンツ・ストリームまたはチャンネルについてＣＭＰＳを初期化する初期化情報を受け入れられるように設計することができる。ＣＭＰＯおよび（または）その他のＣＩであるこのヘッダは、特定のコンテンツ・ストリーム並びにこのストリームに対応付けられるＣＩをロケートしかつ（または）解釈するためにＣＭＰＳが使用する情報を含むことができる。この初期ヘッダは、側波帯チャンネルを通じて受信するか、あるいはＣＭＰＯＥＳなどのＣＩＥＳとして受信することができる。
【０２３６】
図２６に示される１つの例においては、ヘッダＣＭＰＯ２６０１は以下の情報を含む。
（ａ）ヘッダＣＭＰＯ２６０１によって統御されるコンテンツ・ストリーム／オブジェクトおよび各コンテンツ・ストリームまたはオブジェクトに対応付けられるＣＭＰＯの識別符号を識別するストリーム／オブジェクト／ＣＭＰＯＩＤ２６０２。
【０２３７】
１つの実施態様においては、ヘッダＣＭＰＯ２６０１は特定のコンテンツ・ストリームと対応付けられるルールおよびキーを含む他のＣＭＰＯを識別する。別の実施態様においては、ヘッダＣＭＰＯ２６０１は、コンテンツ・ストリームに対応付けられるキーおよびルールを組み込むことによって、全てのコンテンツ・ストリームを直接制御する。後者の場合、他のＣＭＰＯは使用されない。
【０２３８】
１つの実施態様においては、ヘッダＣＭＰＯ２６０１は１つまたはそれ以上のＣＭＰＯ、ＣＣＭＰＯ、ＭＣＭＰＯおよび（または）その他のＣＩである。
（ｂ）識別された各ＣＭＰＯを解読するためのＣＭＰＯキー２６０３。
（ｃ）全体としての作品に対応付けられ、従って作品を構成する全てのコンテンツ・ストリームに潜在的に適用可能な基本制御情報から成る、作品レベル制御２６０４。この基本制御情報は、ユーザに提供されるオプションを含めて全体としての作品に適用されるルールを含むことができる。
【０２３９】
（ｄ）この態様の１つの実施態様においては、ヘッダＣＭＰＯは、現在特定のコンテンツを使用することを許可されている特定のユーザまたはサイトに関するユーザ／サイト情報２６０５およびユーザの許可取得の基礎となった１つまたはそれ以上のルール・セットを含めるために更新可能である。現在視聴されている作品に対応付けられるヘッダＣＭＰＯは、ＲＡＭまたはＮＶＲＡＭに記憶できる。これは、更新情報を含むことができる。１つの実施態様においては、ＣＭＰＯは、過去に視聴された特定の作品に関するヘッダＣＭＰＯも記憶する。１つの実施態様においては、ヘッダＣＭＰＯは、各ヘッダＣＭＰＯが変更されていないことを識別し認証するために充分な情報と一緒に安全でないメモリに記憶される。
【０２４０】
この実施態様のこのようなヘッダＣＭＰＯ実施態様においては、ヘッダＣＭＰＯは下記のとおりに動作する：
（ａ）ヘッダＣＭＰＯは、ＣＭＰＳ装置によって受信される。現在すでに使用可能になっている以前に未受信のコンテンツの場合、ヘッダＣＭＰＯは、入力ポートで受信できる。すでに使用可能であるが、現在使用されていないコンテンツの場合（例えば、５００チャンネルを持つセットトップ・ボックス。０または１が常に表示されている）、ユーザが特定のコンテンツを呼び出す（例えば特定のチャンネルに切り替える）場合使用できるように、ＣＭＰＳ装置が各チャンネルのＣＣＭＰＯをバッファリングすることができる。
【０２４１】
いずれの場合も、ヘッダＣＭＰＯは、ＣＭＰＳ装置がそれをヘッダＣＭＰＯとして識別できるようにする情報を含まなければならない。
（ｂ）ＣＭＰＳ装置は、ヘッダＣＭＰＯに明文で保持されるビジネス・モデル情報を入手する。ビジネス・モデル情報は、例えば、広告が含まれる場合コンテンツを無料で見ることができる、またはユーザが例えばニールソン・タイプの情報、ユーザおよび（または）視聴率測定情報を是認する場合コンテンツをサーバに出力できる、またはその他の方法で有料で１回コピーできる、などのステートメントを含むことができる。
【０２４２】
（ｃ）ＣＭＰＳ装置は、ＣＭＰＳ装置が特定のタイプのモデルを受け取ることをユーザが是認した場合には（例えば、ユーザが無料で広告入りでプレイすることを常に受け入れるようにＣＭＰＳ装置をプログラムした場合）ビジネス・モデルを受け入れ、ユーザが特定のモデルを常に拒否するよう指示した場合には、ビジネス・モデルを拒否し、あるいはユーザにビジネス・モデルを表示する（例えば、画面にオプションを提示することによって）。
【０２４３】
（ｄ）ビジネス・モデルが受け入れられる場合、ＣＭＰＳ装置は、ヘッダＣＭＰＯの残りを解読する。コマース・アプライアンスが外部サーバへのライブ出力接続（例えば、インターネット接続、セットトップ・ボックスのバックチャンネルなど）を含む場合、および待ち時間の問題が処理される場合、このキーの解読は、外部サーバと通信し、各サイドが他方を認証し、安全なチャンネルを確立し、サーバからキーを受信することによって処理できる。コマース・アプライアンスが少なくとも一時的に外部サーバに接続されない場合、解読は、コマース・アプライアンスに安全に記憶される１つまたはそれ以上のキーに基づいて行われなければならない。
【０２４４】
（ｅ）ヘッダＣＭＰＯが解読されると、ＣＭＰＳ装置は、コンテンツを含んでいるストリームを識別しロケートするために使用される情報およびコンテンツに対応付けられるＣＭＰＯを解読するためにあるいはコンテンツ自体を直接解読するために使用されるキーを入手する。
（ｆ）このヘッダ実施態様の１つの実施態様においては、ヘッダＣＭＰＯは、ＣＭＰＳ装置によって追加される情報の記憶のためのデータ構造を含む。この情報は、下記のものを含むことができる。
【０２４５】
（１）ユーザおよび（または）コマース・アプライアンスおよび（または）ＣＭＰＳ装置の識別符号。この実施態様において、この情報は、作品（ヘッダＣＭＰＯを含めて）が転送される場合監査証跡を示すために、ヘッダＣＭＰＯに記憶することができる（これは、ヘッダＣＭＰＯが書き込み可能な形態で転送される場合にのみ作用する）。この情報を使って、ヘッダＣＭＰＯに対応付けられるルール情報により下記の転送が許容される場合、ユーザは、追加コストを支払わずにユーザが所有する他のコマース・アプライアンスに作品を転送することができる。例えば、ユーザは、特定のケーブル・サービスに加入しており、前払いしてあるとする。ＣＭＰＳ装置がケーブル・サービスからヘッダＣＭＰＯをダウンロードすると、ＣＭＰＳ装置はヘッダＣＭＰＯにユーザの識別符号を記憶する。ＣＭＰＳ装置は、次に、コンテンツがコピーまたは転送される場合には更新されたヘッダＣＭＰＯが含まれるよう要求する。ヘッダＣＭＰＯは、ユーザ情報が満たされたら、その連想コンテンツをそのユーザおよび（または）そのユーザと対応付けられるコマース・アプライアンスのみが視聴できることを定めるルールを含むことができる。これによって、ユーザは、作品のコピーを複数作り、複数のコマース・アプライアンスで作品を表示することができるが、このコピーを、無許可のユーザおよび（または）無許可のコマース・アプライアンスが表示または使用することはできない。ヘッダＣＭＰＯは、許可されたユーザしかユーザ情報を変更できないことを示すルールを含むこともできる（例えば、ユーザ１が作品をユーザ２に転送する場合、ユーザ２のＣＭＰＳ装置はヘッダＣＭＰＯの中のユーザ情報を更新できるので、ユーザ２は作品を見ることができるが、これはユーザ２もそのケーブル・サービスの加入者である場合に限る）。
【０２４６】
（２）使用に適用される特定のルール・オプションの識別符号。ヘッダＣＭＰＯに含まれるルールセットは、オプションを含むことができる。場合によっては、特定のオプションを行使すると、異なるオプションを後で行使できなくなる場合がある。例えば、ユーザは、ある価格で未変更の作品を見るか、あるいはそれより高い価格で作品に変更を加えて、変更済みの作品を見るか、の選択肢が与えられるとする。ユーザが作品を変更し、変更済み作品を見ることにすると、低価格の未変更のオリジナル作品を見るオプションはもはや使用不能なので、この選択がヘッダＣＭＰＯに記憶されることが望ましい。ユーザは、さらにコストを値上げして変更済み作品を配給する権利を取得しているかまたはその権利のプションを提示され、その結果、ユーザおよびオリジナル作品の利害関係者の両方に第三者派生収益および使用情報が流れることになるかも知れない。
【０２４７】
（３）使用履歴情報。ヘッダＣＭＰＯは、使用の回数およびタイプに関する情報を含むことができる。例えば、基礎の作品がコピーされる場合、その作品に対応付けられるルールはコピーを１つだけ許容していると（例えば、バックアップおよび（または）不在時ビデオ録画のため）、ヘッダＣＭＰＯはコピーが作られたことを反映するために更新される。別の例を挙げると、ユーザは、ある作品を１回だけ見るか、ある特定の回数見る権利を取得する場合がある。ヘッダＣＭＰＯはその使用ごとにこれを反映するために更新される。
【０２４８】
使用情報を使って、ヘッダＣＭＰＯに対応付けられるルールによりそれ以上の使用が許可されるか否かを判定できる。この情報はまた監査のためにも使用できる。この情報は、外部サーバに報告される使用情報排出としても提供される。例えば、ルールは、使用履歴情報がサーバにダウンロードされる場合にのみある作品を無料で見ることができると定めるかも知れない。
（コンテンツ管理・保護オブジェクト（ＣＭＰＯ））
コンテンツ管理・保護オブジェクト（ＣＭＰＯ）は、特定のコンテンツの使用を統御するためにＣＭＰＳが使用する情報を含んでいるデータ構造である。ＣＭＰＯは、特定の標準（例えば、ＭＰＥＧ−４ＥＳ）により指定されるデータ構造としてフォーマットするか、あるいは標準によって定義されないデータ構造としてフォーマットすることができる。ＣＭＰＯが標準によって指定されるデータ構造としてフォーマットされる場合、これは、その標準が利用するチャンネルで受信するか（例えば合成ＭＰＥＧ−４ストリームの一部として）、あるいは他の側波帯方法を通じて受信できる。ＣＭＰＯが関連標準によって指定されないデータ構造としてフォーマットされる場合、ある種の側波帯方法を使用して提供され、デコードされる。側波帯方法としては、フォーマット済みコンテンツと同じポートを通じての受信および（または）別個のポートを通じての受信が含まれる。
【０２４９】
コンテンツは、事実上どのレベルでも制御できる。ここでは３つのレベルの例、すなわち「チャンネル」、「作品」および「オブジェクト」について論じる。  「チャンネル」は、作品の集合をあらわす。作品は、ユーザの選択によって利用可能であるか（例えば、ウェブ・サイトまたはビデオ・ライブラリ）、または連続的に受信する（例えば、ケーブル・テレビ・チャンネル）。
【０２５０】
「作品」は、統合された完全体としてユーザによって消費される（視聴、読み取りなど）単一のオーディオ・ビジュアル、文章またはその他の作品を表す。例えば、作品は、映画、歌、雑誌記事、高度なビデオゲームなどのマルチメディア製品などである。作品は、例えば歌、ビデオ、テキストなどを組み込むマルチメディア作品において、他の作品を組み込むことができる。このような場合、権利が関係する場合がある。
【０２５１】
「オブジェクト」は、作品の別個にアドレス可能な部分を表す。オブジェクトは、例えば、個々のＭＰＥＧ−４ＡＶＯ、シーンディスクリプタグラフ、オブジェクト・ディスクリプタ、映画のサウンドトラック、ビデオゲームの武器、またはその他の論理的に定義可能な部分である。
コンテンツは、どのレベルでも制御できる（本文書においては論じられない中間レベルにおいても）。この制御の望ましい実施態様のメカニズムは、ＣＭＰＯまたはＣＭＰＯ装置（１つまたはそれ以上のＣＭＰＯから成り、複数の場合複数の協同するＣＭＰＯ）である。ＣＭＰＯおよびＣＭＰＯ装置は、階層的に編成でき、チャンネルＣＭＰＯ装置が、含まれる全ての作品に適用されるルールを課し、ＭＣＭＰＯまたはＳＧＣＭＰＯは作品内の全てのオブジェクトに適用されるルールを課し、ＣＭＰＯ装置は、特定のオブジェクトに適用されるルールを課す。
【０２５２】
図２７に示される実施態様において、ＣＭＰＳは、ＣＣＭＰＯ２７０１をダウンロードする。ＣＣＭＰＯ２７０１は、チャンネルの全てのコンテンツに適用可能な１つまたはそれ以上のルール２７０２、並びに１つまたはそれ以上のＭＣＭＰＯおよび（または）ＳＧＣＭＰＯの解読に使用される１つまたはそれ以上のキー２７０３を含む。ＭＣＭＰＯ２７０４は、単一の作品および（または）それ以上の作品、１つまたはそれ以上のクラスおよび（または）１人またはそれ以上のユーザおよび（または）ユーザ・クラスに適用されるルール２７０５を含み、ＣＭＰＯを解読するために使用されるキー２７０６も含む。ＣＭＰＯ２７０７は、個々のオブジェクトに適用されるルール２７０８並びにそのオブジェクトを解読するために使用されるキー２７０９を含む。
【０２５３】
全てのオブジェクトがあるレベルで制御の対象である限り、各オブジェクトが個別に制御される必要はない。例えば、ＣＣＭＰＯ２７０１は、そのチャンネルに含まれるコンテンツを見るための単一のルールを指定することができる（例えば、加入者だけがコンテンツを見ることができ、加入者は、コンテンツ・プロバイダに対してそれ以上の義務を負わずにコンテンツを自由に再配給できるかも知れない）。このような場合、ルールは、必ずしもＭＣＭＰＯ（例えば、ルール２７０５）、ＳＧＣＭＰＯ、またはＣＭＰＯ（例えば、ルール２７０）には使用されない。１つの実施態様においては、ＭＣＭＰＯ、ＳＧＣＭＰＯおよびＣＭＰＯは、省略することができ、ＣＣＭＰＯ２７０１は、全てのコンテンツを解読するために使用される全てのキーを含むか、あるいは、このキーをロケートできるロケーションを指定することができる。別の実施態様においては、ＣＣＭＰＯ２７０１は、ＭＣＭＰＯ２７０４を解読するために使用されるキー２７０３を提供する。ＭＣＭＰＯ２７０４は、ＣＭＰＯを解読するために使用されるキー（例えば、キー２７０６）を含むが、追加のルール２７０５を含まないかも知れない。ＣＭＰＯ２７０７は、オブジェクトを解読するために使用されるキー２７０９を含むが、追加ルール２７０８を含まないかも知れない。実施態様によっては、ＳＧＣＭＰＯがない場合がある。
【０２５４】
ＣＭＰＯは、関連標準が指定するコンテンツデータ構造内に含めることができる（例えば、ＣＭＰＯをＭＰＥＧ−４ＥＳのヘッダの一部とすることができる）。ＣＭＰＯは、関連標準が指定する自身の専用データ構造内に含めることができる（例えば、ＣＭＰＯＥＳ）。ＣＭＰＯは、どのコンテンツ標準も指定しないデータ構造に含めることができる（例えば、ＤｉｇｉＢｏｘに含まれるＣＭＰＯ）。
【０２５５】
ＣＣＭＰＯは以下のエレメントを含むことができる。
（ａ）ＩＤ２７１０。これは次のような形態をとる：＜チャンネルＩＤ＞＜ＣＭＰＯタイプ＞＜ＣＭＰＯＩＤ＞＜バージョン番号＞。階層的ＣＭＰＯ編成の場合（例えば、ＣＭＰＯを制御するＭＣＭＰＯを制御するＣＣＭＰＯ）、ＣＭＰＯＩＤ２７１１は、階層の各レベルごとに１つのフィールドを含むことができるので、ＣＭＰＯＩＤ２７１１は編成における特定のＣＭＰＯのロケーションを指定できる。ＣＣＭＰＯのＩＤ２７１０は、例えば１２３−０００−０００である。このチャンネル内の作品のＭＣＭＰＯのＩＤ２７１２は、例えば１２３−４５６−０００なので、“１２３”として識別されるＣＣＭＰＯにより制御されるものとして１０００個のＭＣＭＰＯを指定することができる。特定の作品内のオブジェクトに対応付けられるＣＭＰＯのＩＤ２７１１は、例えば１２３−４５６−７８９なので、各ＭＣＭＰＯに対応付けられるものとして１，０００個のＣＭＰＯを指定することができる。
【０２５６】
このＣＭＰＯ・ＩＤの指定方法は、ＣＭＰＯの階層内のどのＣＭＰＯについても正確なロケーションを伝える。これより高いレベルの階層が存在しない場合（例えば、連想ＣＣＭＰＯを持たないＭＣＭＰＯ）、そのレベルの階層に対応付けられる数字はゼロで指定することができる。
（ｂ）チャンネル内の全てのコンテンツに適用されるルール２７０２。これは、自蔵ルールかあるいは他のところから入手可能なルールのポインタである。ルールは、このレベルではオプショナルである。
【０２５７】
（ｃ）ユーザがルールを遵守できない場合に表示するよう設計される情報２７１３（例えば、ある費用で加入が可能であることをユーザに知らせ、そのチャンネルで利用可能なコンテンツのリストを示す広告画面）。
（ｄ）このＣＣＭＰＯによって制御される各ＭＣＭＰＯを解読するためのキー２７０３。１つの実施態様においては、ＣＣＭＰＯは、全てのＭＣＭＰＯを解読する１つまたはそれ以上のキーを含む。代替実施態様においては、ＣＣＭＰＯは各ＭＣＭＰＯ固有のキーを１つまたはそれ以上含む。
【０２５８】
（ｅ）ＣＭＰＳタイプ（２７１４）またはこのチャンネルに対応付けられるコンテンツを使用するために必要なまたは望ましいハードウェア／ソフトウェアの指定。
ＭＣＭＰＯのコンテンツは、ＣＣＭＰＯのコンテンツと同様であるが、ＭＣＭＰＯは単一の作品に適用されるルールを含み、各オブジェクトに関連付けられるＣＭＰＯを識別する点で異なる。
【０２５９】
各ＣＭＰＯのコンテンツはＭＣＭＰＯのコンテンツと同様であるが、ＣＭＰＯは単一のオブジェクトに適用されるルールおよびキーを含む点で異なる。
ＳＧＣＭＰＯのコンテンツは、ＣＣＭＰＯのコンテンツと同様であるが、ＳＧＣＭＰＯは特定の１つまたはそれ以上の権利のクラス、特定の１つまたはそれ以上の作品のクラスおよび（または）特定の１つまたはそれ以上のユーザおよび（または）ユーザ装置のクラス（例えばＣＭＰＯ装置および（または）その装置）にのみ適用されるルールを含む点で異なる。
【０２６０】
図２８に示される別の実施態様においては、ＣＭＰＯデータ構造２８０１は以下のとおりに定義される。
ＣＭＰＯデータ構造２８０１はエレメントによって構成される。各エレメントは、自蔵の情報アイテムを含む。ＣＭＰＳは１回に１エレメントづつＣＭＰＯデータ構造を構文解析する。
【０２６１】
タイプ・エレメント２８０２は、データ構造をＣＭＰＯとして識別するので、ＣＭＰＳはこれをコンテンツＥＳから区別できる。実施態様例において、このエレメントは、４ビット含むことができ、その各々が、データ構造がＣＭＰＯであることを示すために“１”に設定される。
第二のエレメントはＣＭＰＯ識別子２８０３であり、この特定のＣＭＰＯを識別し、ＣＭＰＯがＣＭＰＯの階層編成の一部であるか否か、またその一部である場合このＣＭＰＯはその編成のどこに属するのかを伝えるために使用される。
【０２６２】
ＣＭＰＯ識別子２８０３は、４つのサブエレメントに分割され、各々が３ビットから成る。これは、サブエレメントＡ、Ｂ、ＣおよびＤとして示されている。第１のサブエレメント（２８０３Ａ）は、以下のとおり、ＣＭＰＯタイプを識別し、ＣＭＰＯが他のＣＭＰＯによって統御または制御されるか否かを識別する。  １００：これはトップレベルＣＭＰＯであり（チャンネルまたは作品の集合に対応付けられる）、他のＣＭＰＯの制御を受けない。
【０２６３】
０１０：これは中レベルＣＭＰＯであり（特定の作品に対応付けられる）、他のＣＭＰＯの制御を受けない。
１１０：これは中レベルＣＭＰＯであり、トップレベルＣＭＰＯの制御を受ける。
００１：これは低レベルＣＭＰＯであり（作品内のオブジェクトに対応付けられる）であり、他のＣＭＰＯの制御を受けない。低レベルＣＭＰＯは通常少なくとも１つのこれより高いレベルのＣＭＰＯの制御を受けるので、このケースは稀である。
【０２６４】
０１１：これは低レベルＣＭＰＯであり、中レベルＣＭＰＯの制御を受けるがトップレベルＣＭＰＯの制御を受けない。
１１１：これは低レベルＣＭＰＯであり、トップレベルＣＭＰＯおよび中レベルＣＭＰＯの制御を受ける。
ＣＭＰＯＩＤ２８０３の第二のサブエレメント（サブエレメントＢ）は、トップレベルＣＭＰＯを識別する。トップレベルＣＭＰＯの場合、この識別子は、ＣＭＰＯの作成者によって割り当てられる。トップレベルＣＭＰＯの制御を受ける中レベルまたは低レベルＣＭＰＯの場合、このサブエレメントは、前記の制御を行うＣＭＰＯの識別符号を含む。トップレベルＣＭＰＯの制御を受けない中レベルまたは低レベルＣＭＰＯの場合、このサブエレメントはゼロを含む。
【０２６５】
ＣＭＰＯＩＤ２８０３の第３のサブエレメント（サブエレメントＣ）は、中レベルＣＭＰＯを識別する。トップレベルＣＭＰＯの場合、このサブエレメントはゼロを含む。中レベルＣＭＰＯの場合、このサブエレメントは、特定のＣＭＰＯの識別符号を含む。中レベルＣＭＰＯの制御を受ける低レベルＣＭＰＯの場合、このサブエレメントは、前記の制御を行う中レベルＣＭＰＯの識別符号を含む。中レベルＣＭＰＯの制御を受けない低レベルＣＭＰＯの場合、このサブエレメントはゼロを含む。
【０２６６】
ＣＭＰＯＩＤ２８０３の第四のサブエレメント（サブエレメントＤ）は、低レベルＣＭＰＯを識別する。トップレベルまたは中レベルＣＭＰＯの場合、このサブエレメントはゼロを含む。低レベルＣＭＰＯの場合、このサブエレメントは特定のＣＭＰＯの識別符号を含む。
識別子エレメントの次は、ＣＭＰＯデータ構造のサイズを示すサイズ・エレメント２８０４である。このエレメントは、データ構造の最終エレメントまでのエレメント（またはバイト）数を含む。このエレメントは、ＣＭＰＯに変更が加えられる場合に書き直される。変更が加えられると異なるサイズになるので、ＣＭＰＳは、このサイズ情報を使って、エレメントが許可なしに変更されたかどうかを判定できる。このために、ＣＭＰＳは、このエレメントに含まれる情報を保護データベースに記憶することができる。この情報は、また、処理を進めようとする前にＣＭＰＯ全体が受信され、使用可能であることを確認するためにも使用できる。
【０２６７】
サイズ・エレメント２８０４の次は、所有権および制御連鎖情報を含む１つまたはそれ以上の所有権／制御エレメントである（例えば、所有権／制御エレメント２８０５、２８０６および２８０７）。この最初のエレメント（２８０５）に、ＣＭＰＯの作成者はこの作成者に対応付けられる特定の識別子を含めることができる。以後のエレメント（例えば、２８０６、２８０７）において追加の参加者を識別できる。例えば、エレメント２８０５はＣＭＰＯの作成者を識別し、エレメント２８０６は関連作品の発行者を識別し、エレメント２８０７は作品の作者を識別することができる。
【０２６８】
固有の終了エレメント２８０８シーケンス（例えば、００００）は、所有権連鎖エレメントの終了を示す。最初のエレメントにこのシーケンスがある場合、これは、所有権連鎖情報が存在しないことを示す。
ＣＭＰＯ２８０１に対応付けられるルールが追加を許可する場合、所有権連鎖情報を追加することができる。例えば、ユーザがＣＭＰＯ２８０１に対応付けられる作品を購入する場合、ユーザの識別符号が所有権連鎖エレメントの新しいエレメントとして追加される（例えば、２８０７後の新しいエレメント。ただし２８０８より前に）。これは、購入時点で行われるか、あるいは、ＣＭＰＯ２８０１に遭遇して、ユーザが関連作品を購入したとＣＭＰＳが判断したら、ＣＭＰＳによって行われる。この場合、ＣＭＰＳは、ＣＭＰＳがＮＶＲＡＭに記憶するデータ構造からユーザ識別子を入手できる。
【０２６９】
所有権連鎖エレメントの次は、ハンドリング連鎖を示す１つまたはそれ以上のハンドリング・エレメント（例えば、２８０９、２８１０）である。このエレメントは、ＣＭＰＯ２８０１をダウンロードしデコードしたＣＭＰＳの識別符号を含むことができる。また（あるいは）このＣＭＰＳと対応付けられるユーザの識別符号を含むことができる。この情報は、監査のために使用して、作品が不当に回覧されたと判定される場合にハンドリングを追跡できるようにする。この情報は、また、クリアリングハウスまたは中央サーバに対する排出として報告される場合もある。ハンドリング連鎖情報は、報告されるまで不変であることが望ましい。この情報のために必要なエレメントの数が指定される量を超える場合（例えば、２０の別個のユーザ識別子）、ＣＭＰＳは、ＣＭＰＳが外部サーバに接続されてハンドリング連鎖情報を報告するまでは、ＣＭＰＯ２８０１またはその関連作品のそれ以上の処理を許容することを拒否できる。
【０２７０】
ハンドリング連鎖エレメントの最後のエレメント（例えば、２８１１）は、このエレメント・グループの終了を示す。このエレメントのコンテンツは、例えば、すべてゼロである。
ハンドリング連鎖エレメントの次は、このＣＭＰＯに対応付けられるデジタル証明書を含むまたはこれをポイントする１つまたはそれ以上の証明書エレメントである。このデジタル証明書を使って、ＣＭＰＳはＣＭＰＯを認証できる。デジタル証明書連鎖の最後のエレメントは、全てゼロである（２８１４）。デジタル証明書が存在しない場合には、全てゼロのエレメントが１つこのロケーションに存在する。
【０２７１】
証明書エレメントの次は、ＣＭＰＯ２８０１により統御されるまたはこれに対応付けられる１つまたはそれ以上のコンテンツ・オブジェクトおよび（または）ＣＭＰＯを指定する１組の統御対象オブジェクト・エレメント（例えば、２８１５、２８１６、２８１７、２８１８）である。各統御対象オブジェクトまたはＣＭＰＯは、固有の識別子によっておよび（または）そのオブジェクトまたはＣＭＰＯを見つけることのできるロケーションによって識別される（例えば、ロケーション２８１５および２８１７に記憶される）。前記の各識別子の次は、このＣＭＰＯまたはオブジェクトを解読するために使用される１つまたはそれ以上のキーである（例えば、ロケーション２８１６および２８１８に記憶される）。識別子／キーのセットは、全てゼロから成る終了エレメント（２８１９）で終了する。
【０２７２】
識別子および（または）キーを指定するエレメント・セットの次は、統御対象オブジェクト・エレメント（例えば、ロケーション２８１５および２８１７）において識別されるコンテンツ・オブジェクトおよび（または）ＣＭＰＯの使用と対応付けられるルール／制御および条件を指定する１組のルール・エレメント（例えば、２８２０、２８２１、２８２２）である。ルールの例について下に説明する。エレメントは、明示的ルールを含むか、あるいは、他のロケーションに記憶されるルールのポインタを含むことができる。条件は、連想コンテンツ・オブジェクトを使用するためまたは特定のルールを満たすために必要なハードウェア・リソース、または連想コンテンツ・オブジェクトを使用するために必要または望ましい特定のタイプのＣＭＰＳを含むことができる。
【０２７３】
ルール／制御および条件エレメントの次は、ＣＭＰＯの作成者が指定する情報を含む情報エレメント２８２３である。特に、この情報はコンテンツ、コンテンツのポインタ、プログラミングまたはプログラミングのポインタを含むことができる。
ＣＭＰＯは、最終終了エレメント２８２４で終了する。
【０２７４】
１つの実施態様において、ＣＭＰＯ２８０１のルール・エレメント２８２０−２８２２に含まれるルールは、例えば、下記の操作を含むことができる。
（１）プレイ。この操作は、ユーザがコンテンツを制限なしにプレイできるようにする（ただしこれをコピーすることはできない）。
（２）ナビゲート。これは、ユーザが早送り、巻戻し、停止およびサーチを含めて特定のタイプのナビゲーション機能を果たせるようにする。サーチは、インデックス付きまたはなしで行える。
【０２７５】
（３）コピー。コピーは１回だけ（例えば、不在時のビデオ録画、アーカイビング）許容されるか、特定の回数許容されるか、あるいは限定期間許容されるか、関連予算を含めて他のルールに違反しない限りまたは超過しない限り無制限期間許容される場合がある。ＣＭＰＳ装置は、コピー操作によって、コンテンツ・オブジェクトには変更を生じずに、また特に連想コンテンツ・オブジェクトを非多重化、解読または解凍する必要なしに、連想ＣＭＰＯが更新されるように設計することができる（例えば、連想コンテンツがコピーされたことの指示、コピーの日付およびコピー作成の責任サイトの識別を含めて）。例えば、ＭＰＥＧ−４の場合、このためには、以下の多段階非多重化プロセスが必要である。
【０２７６】
１）ＣＭＰＳ装置がユーザからまたはヘッダＣＭＰＯからコピー命令を受け取る。
２）第１の非多重化段階において、コピーされるＭＰＥＧ−４ストリームに対応付けられるＣＭＰＯＥＳがコンテンツ・ストリームから分離される。
３）ＣＭＰＯがＣＭＰＳ装置により解読され更新される。ＣＭＰＯは、コンテンツＥＳ（相互に非多重化されていない）と再び多重化されて、ストリーム全体がそれ以上の変更なしに出力ポートに送られる。
【０２７７】
このプロセスにより、コピー操作は、コンテンツ・ストリームを非多重化し解読する必要なしに行うことができる。このためには、ＣＭＰＳ装置は、２つの出力、すなわちデジタル出力ポートに接続される出力（例えば、図２３、デジタル出力ポート２３１７に接続するライン２３１６）およびＭＰＥＧ−４バッファに接続される出力（例えば、図２３、ライン２３１０、２３１１、２３１２）、並びにいずれか一方（または、コンテンツが同時に視聴されコピーされる場合、両方）の出力にコンテンツを送るよう設計されるスイッチ（例えば、スイッチ２３１９）を、含む必要がある。スイッチ２３１９は、デジタル出力ポート２３１７の唯一のパスとなり得るので、ＣＭＰＳ２３０２はこのポートを直接制御することができ、制御が許可しない限りこのポートにコンテンツが送られることがないようにできる。デジタル出力ポート２３１７がデジタル表示装置に対するコネクタでもある場合、ＣＭＰＳ２３０２は、たとえコピー操作が許可されない場合も、このポートにコンテンツを送ることを許可しなければならない。
【０２７８】
１つの実施態様例において、デジタル出力ポート２３１７を通じて情報を受け取る受信装置は、送信装置（例えば、ＣＭＰＳ２３０２）を認証しなければならない。認証は、装置の特性および（または）装置と一緒に使用される１つまたはそれ以上のＣＭＰＳに関するものである。従って、例えば、送信機器は、互換性のあるＣＭＰＳが欠けている記憶装置にはコンテンツを伝送しない。
【０２７９】
別の非限定的例においては、ＣＭＰＳ２３０２は、送信インターフェースから１つまたはそれ以上の外部装置インターフェース（例えば、デジタル・モニタ）まで安全なチャンネルを確立し、受信インターフェースが送信インターフェースを認証した場合１つまたはそれ以上の認証済み装置インターフェースだけが解読できるようにコンテンツを暗号化する、セッション暗号化機能（例えば、「５社提案」）を、組み込むことができる。この場合、ＣＭＰＳ２３０２は、適切なＩＥＥＥ１３９４シリアル・バスかどうかチェックし、（ａ）許可されたプレイ操作が呼び出され、装置との間に安全なチャンネルが確立されており、かつコンテンツがセッション暗号化されている場合、または（ｂ）許可されたコピーまたは再伝送操作が呼び出され、コンテンツが上記の説明に従って処理された場合（すなわちＣＭＰＯが非多重化され、変更され、再多重化され、コンテンツが解読または非多重化されていない場合）、のみ、コンテンツをデジタル出力ポート２３１７に送ることを許容する。
【０２８０】
これは、ＣＭＰＯが初期の非多重化段階で別個に識別可能の場合のみ可能である。このためには、ほとんどの場合、ＣＭＰＯが別個のＣＭＰＯＥＳに記憶される必要がある。ＣＭＰＯがコンテンツＥＳにヘッダとして記憶される場合、ストリーム全体の完全非多重化および解読操作前にＣＭＰＯを識別することは不可能かも知れない。
【０２８１】
（４）変更。ユーザは、コンテンツを変更するための許可を受けることができる。
（５）削除。このコマンドを使って、ユーザは、消費者用機器のメモリに記憶されるコンテンツを削除することができる。この操作は、作品全体に作用する。ユーザが作品の一部を削除したい場合、変更操作を使わなければならない。
【０２８２】
（６）転送。ユーザは、作品を第三者に転送するための許可を受けることができる。これは、ユーザがコンテンツまたはコンテンツに対する権利を保持しない点でコピー操作と異なる。転送操作は、コピー操作と削除操作を組み合わせることによって行うことができる。転送のためには、作品に対する権利を第三者と対応付けるように、作品に対応付けられるヘッダＣＭＰＯの変更（例えば、図２８のエレメント２８０５−２８０７など所有権／制御エレメントの追加または変更）が必要である。
【０２８３】
以上の基本的操作は、以下のような修正の対象となり得る：
１）支払い。ユーザの支払のタイプによっては操作を条件付きにすることができる。支払いは、プロバイダへの現金支払いの形で（例えば、クレジットカード、予算からの差し引き）または指定される情報を外部サイトに送信する形で（例えば、ニールソン・タイプの情報）行うことができる。
【０２８４】
２）サービスの質。操作は、要請される解凍レベル、要請／要求される表示、レンダリング装置のタイプ（例えば、より高品質のラウドスピーカ、特定のタイプのゲーム・コントローラなど）を含めて、特定のサービスの質のパラメータを指定することができる（例えば、ＭＰＥＧ−４において要請されるＱｏＳを指定することにより）。
【０２８５】
３）時間。操作は、特定の時間後に操作が許容されるようにまたは操作の価格が時間と結合されるように条件付けることができる（例えば、リアルタイム情報がある価格だとすると、遅延情報はこれより低価格または無料で、例えば、特定の日付以降に限り被制御コピーを許容する）。
４）特定タイプのコンテンツの表示。操作は、ユーザが特定のコンテンツの表示を許可することを条件とすることができる（例えば、プレイ操作が、ユーザが広告の表示に同意する場合無料になる）。
【０２８６】
以上の全てのケースにおいて、１つのルールを、他の１つまたはそれ以上のルールによって修正することができる。ルールは、他のルールによって修正できることを指定するか、修正不能であると指定することができる。ルールが修正可能である場合、他のソースから送信されるルールによって修正される場合がある。このようなルールは、ユーザが別個に受信するか、ユーザがまとめて受信することができる。
【０２８７】
ＭＰＥＧ−４実施態様例に使用されるデータ・タイプには、以下のものを含むことができる：
ａ．ＣＭＰデータ・ストリーム
ＣＭＰ−ｄｓは、オブジェクト・ディスクリプタの中に自身のＣＭＰＯおよび参照を含む基本ストリームの全ての特性を持つ新しい基本ストリーム・タイプである。各ＣＭＰ−ｄｓストリームは、一連の１つまたはそれ以上のＣＭＰメッセージを持つ。ＣＭＰ＿Ｍｅｓｓａｇｅは、下記の４つの部分を持つ：
１．Ｃｏｕｎｔ：このＩＰＥＳがサポートする［１…ｎ］のＣＭＰＳタイプ。各々一意のタイプによって識別される複数のＣＭＰＳシステムをサポートできる（タイプの中央記録がなければならない場合がある）。
【０２８８】
２．ＣＭＰＳ＿ｔｙｐｅ＿ｉｄｅｎｔｉｆｉｅｒ：各々ストリームにおけるオフセットおよび長さを持つ［１…ｎ］の識別子。オフセットは、このＣＭＰＳタイプのデータが見つかるＣＭＰＯにおけるバイトをポイントする。長さはこのデータのバイト数で表される長さである。
３．ＤａｔａＳｅｇｍｅｎｔ：ＣＭＰＳサプライヤが財産権を有するフォーマットでコード化されたｎ個のＣＭＰＳタイプの各々について１つのセグメント。
【０２８９】
４．ＣＭＰ＿Ｍｅｓｓａｇｅ＿ＵＰＬ：別のＣＭＰ＿Ｍｅｓｓａｇｅを参照する。（これはストリームをポイントするためにＵＲＬを使用する標準に従っている）。
ｂ．ＣＭＰＯ
ＣＭＰＯは、詳細なＣＭＰ制御を個々の基本ストリームに付与するために使用されるデータ構造である。各ＣＭＰＯは以下のものを含む。
【０２９０】
１．ＣＭＰＯ＿ＩＤ：制御下にあるコンテンツの識別子。この識別子は、基本ストリームを一意に識別しなければならない。
２．ＣＭＰＯ＿ｃｏｕｎｔ：このＣＭＰＯがサポートする［１…ｎ］のＣＭＰＳタイプ。
３．ＣＭＰＳ＿ｔｙｐｅ＿ｉｄｅｎｔｉｆｉｅｒｓ：各々ストリームにおけるオフセットおよび長さを持つ［１…ｎ］の識別子。オフセットは、このＣＭＰＳタイプに関するデータが見つかるＣＭＰＯにおけるバイトをポイントする。長さは、このデータのバイト数で表される長さである。
【０２９１】
３．ＤａｔａＳｅｇｍｅｎｔ：ｎ個のデータ・セグメント。各データ・セグメントはＣＭＰＳサプライヤが財産権を有するフォーマットである。
４．ＣＭＰＯ＿ＵＰＬ：このＣＭＰＯの情報に情報を追加する追加ＣＭＰＯを参照するオプショナルのＵＲＬ（これは、新しいＣＭＰＳのサポートを大幅に追加する方法である）。
【０２９２】
ｃ．フィードバック・イベント
フィードバック・イベントは次の２つの形をとる：開始および終了。各フィードバック・イベントは、下記の３つの情報ピースを含む：
１．Ｅｌｅｍｅｎｔａｒｙ＿ｓｔｒｅａｍ＿ＩＤ
２．Ｔｉｍｅ：プレゼンテーション時間
３．Ｏｂｊｅｃｔ＿ｉｎｓｔａｎｃｅ＿ｎｕｍｂｅｒ
【０２９３】
（ユーザ・インターフェース）
コマース・アプライアンス２３０１は、制御関係の情報をユーザに伝え、ユーザからコマンドおよび情報を受け取るために設計されるユーザ・インターフェースを含むことができる。このインターフェースには、特別目的ディスプレイ（例えば、現在動作が支払いを必要とする場合には点灯するライト）、特別目的ボタン（例えば、コンテンツ表示のために要求される支払いまたはその他の条件を受諾するボタン）、および（または）画面に提示されるビジュアル情報が含まれる。
【０２９４】
ＭＰＥＧ−４コンテクストにおける操作の例
１．ユーザが、特定の作品またはチャンネルを選択する。例えば、ユーザはリモコン装置を使ってデジタルＴＶを特定のチャンネルに合わせることができる。  ２．チャンネル選択は、ＣＭＰＳ装置に通信され、ＣＭＰＳ装置は、この情報を使って、ＣＣＭＰＯをダウンロードするか、以前にダウンロードされたＣＣＭＰＯを識別する（例えば、ＣＭＰＳ装置がセットトップ・ボックスに含まれている場合、セットトップ・ボックスは、ボックスが潜在的にアクセスできる全てのチャンネルについてＣＣＭＰＯを自動的にダウンロードできる）。
【０２９５】
３．ＣＭＰＳ装置は、ＣＣＭＰＯを使って、このチャンネルにある全てのコンテンツに対応付けられるルールを識別する。例えば、ＣＣＭＰＯは、コンテンツが加入者しか視聴できないと指定でき、またユーザが加入者でない場合、ユーザに加入を勧める広告画面を掲示するよう指定することができる。
４．ＣＣＭＰＯが指定するルールが満たされたら、ＣＣＭＰＯは、そのチャンネルで使用可能な特定の作品に対応付けられるＭＣＭＰＯのロケーションを指定する。チャンネルＣＭＰＯは、ＭＣＭＰＯの解読のために使用される１つまたはそれ以上のキーを提供することもできる。
【０２９６】
５．ＣＭＰＳ装置は、ＭＣＭＰＯをダウンロードする。ＭＰＥＧ−４実施態様の場合、ＭＣＭＰＯは基本ストリームの場合がある。この基本ストリームは、ＭＰＥＧ−４デコード・プロセスの比較的早い段階に識別可能でなければならない。
６．ＣＭＰＳ装置は、ＭＣＭＰＯを解読し、コンテンツにアクセスしこれを使用するために使用されるルールを判定する。ＣＭＰＳ装置は、広告入りで無料で見るかあるいは広告なしで有料で見るか、を含めて、１組のオプションをユーザに提示する。
【０２９７】
７．ユーザは、例えば、リモコン装置を使って画面上のオプションをハイライトして選択することによって、広告入りを無料で見ることを選択する。
８．ＣＭＰＳ装置は、ＭＣＭＰＯから１つまたはそれ以上のキーを入手して、このキーを使ってビデオに対応付けられるＥＳを解読する。ＣＭＰＳ装置は、２つの可能なシーンディスクリプタグラフ、すなわち広告入りおよび広告なし、を識別する。ＣＭＰＳ装置は、広告入りシーンディスクリプタグラフを通り抜けて、他方のシーンディスクリプタグラフをブロックする。
【０２９８】
９．ＣＭＰＳ装置は、合成およびレンダリング・ブロックをモニタして、広告ＡＶＯが実際に画面にリリースされたかどうかチェックする。ＣＭＰＳ装置がこのＡＶＯが実際に画面にリリースされていないと判定する場合、エラーまたは警告メッセージを掲示して、その後の解読を終了する。
【０２９９】
（プロバイダおよび配給チェーンにおけるＣＭＰＳ権利管理）
他の実施態様においては、ルールをデジタル情報と対応付けるためにまたこのルールを作成、製作、配給、表示および（または）放映プロセス全体を通じて施行するために、消費者用装置に加えて、１つまたはそれ以上のＣＭＰＳが、デジタル情報の作成、捕捉、修正、拡大、動画化、編集、抜粋、抽出、埋め込み、エンハンスメント、補正、フィンガーピリンティング、ウォーターマーキングおよび（または）レンダリングに使用される。
【０３００】
非限定的例においては、ＣＭＰＳ（その非徹底的例としては、前記のＧｉｎｔｅｒその他の特許出願において説明されるＶＤＥノードの少なくとも安全な部分が含まれる）は、ビデオおよびデジタル・カメラ、オーディオ・マイクロフォン、録音、再生、編集および（または）騒音低減装置および（または）その他のデジタル装置に組み込まれる。画像、ビデオおよび（または）オーディオまたはその他の関連デジタル情報は、少なくとも１つのＣＭＰＳおよび（または）少なくとも１つのＣＭＰＯを使って捕捉され、記録され、持続的に保護される。ＣＭＰＳは、上記の装置の圧縮／解凍、暗号化／解読、ＤＳＰ、デジタル−アナログ変換、アナログ−デジタル変換および通信ハードウェアおよび（または）ソフトウェア・コンポーネントと対話する。
【０３０１】
別の非限定的例においては、コンピュータ・アニメーション、特殊効果、デジタル編集、カラー補正、騒音低減およびデジタル情報を作成および（または）使用するその他のアプリケーションは、少なくとも１つのＣＭＰＳおよび（または）少なくとも１つのＣＭＰＯを使って、デジタル情報に関連する権利を保護および（または）管理できる。
【０３０２】
別の例では、少なくとも１つのデジタル・ライブラリ、アセット・ストア、フィルムおよび（または）オーディオ・ライブラリ、デジタル・ボールトおよび（または）その他のデジタルコンテンツ記憶・管理手段においてデジタル資産を管理するためにＣＭＰＳおよび（または）ＣＭＰＯを使用する。
本出願に従って、ＣＭＰＳおよび（または）ＣＭＰＯを使って、デジタル作品の公開および（または）放映に関連する権利を管理できる。非限定的例として、平面スクリーン、ディスプレイ、モニタ、ＴＶプロジェクタ、ＬＣＤプロジェクタ、および（または）デジタル情報を表示するためのその他の手段は、デジタル作品の使用を制御する少なくとも１つのハードウェアおよび（または）ソフトウェアＣＭＰＳインスタンスを組み込むことができる。ＣＭＰＳは、１つまたはそれ以上のデジタル信任状がある場合のみ使用を許容するようにできる。この信任状の非限定的例は、デジタル情報の使用が公開および（または）放映のためのあるセッティング、ロケーションおよび（または）その他の状況で行われることを証明するデジタル証明書である。この状況の非限定的例には、劇場、バー、クラブ、電子ビルボード、公共エリアの電子表示または飛行機、船舶、列車およびその他の公共輸送機関のＴＶが含まれる。上記の信任状は、証明当局など信頼できる第三者が発行でき、その非限定的例は、前期のＧｉｎｔｅｒ’７１２特許出願において開示されている。
【０３０３】
（付加的ＭＰＥＧ−４実施態様情報）
この文書は、進化しつつあるＭＰＥＧ−４の現在もっとも完璧な説明であるバージョン１システム委員会草案（ＣＤ）におけるＭＰＥＧ−４説明に基づいている。
【０３０４】
この節では、ＭＰＥＧ−４プレーヤ・アーキテクチャの構造的修正を示し、データ・ラインおよびこれに付随する機能的変更について論じる。図２３は、オリジナルのＭＰＥＧ−４プレーヤの機能コンポーネントを示している。コンテンツは、シリアル・ストリーム（例えば、ＭＰＥＧ−４ビット・ストリーム２３１４）にパッケージされてプレーヤ２３０１に到達する。コンテンツは、一連の３段階非多重化（例えば、デマルチプレクサ２３０５）によって非多重化され、基本ストリームになる。基本ストリームには、ＡＶオブジェクト（ＡＶＯ）、シーンディスクリプタグラフ（ＳＤＧ）およびオブジェクト・ディスクリプタ（ＯＤ）の３つの主要タイプがある。これらのストリームはそれぞれの処理エレメントに送られる（例えば、ＡＶＯデコード２３０７、シーンディスクリプタグラフ２３０６、オブジェクト・ディスクリプタ２３０８）。ＡＶＯは、オーディオ・ビデオ、合成グラフなどマルチメディア・コンテンツ・ストリームである。これは、プレーヤの圧縮／コード化サブシステムによって処理される。シーンディスクリプタグラフ・ストリームは、シーンディスクリプタグラフを構成するために使用される。このストリームは、シーンをどのように構成するかを合成およびレンダリング・ブロック２３０９に知らせルものであり、「スクリプト」として考えることができる。オブジェクト・ディスクリプタは、ＡＶＯおよびＳＤグラフ更新に関する記述情報を含む。
【０３０５】
ＣＭＰＳ（例えば、ＣＭＰＳ２３０２）を収めるためおよびコンテンツを効果的に保護するために、プレーヤ構造は、いくつかの方法で修正されなければならない。
・一部のデータ・パスはＣＭＰＳにまたＣＭＰＳからルート変更されなければならない。
【０３０６】
・ＳＤＧ、ＡＶＯデコードおよびオブジェクト・ディスクリプタモジュールの一部のバッファを保護しなければならない。
・ユーザおよび合成およびレンダリング装置からＣＭＰＳへのフィードバック・パスを追加しなければならない。
ＣＭＰＳ２３０２がＭＰＥＧ−４ユニットと通信するため、およびＣＭＰＳがコンテンツを効果的に管理するために、ＣＭＰＯ構造および対応付けプロトコルを指定し、フィードバック・システム（合成者またはユーザからの）に関する通信プロトコルを定めなければならない。
【０３０７】
プレーヤの構造的修正は図２３に示されるとおりである。主要な変更は、以下のとおりである。
・全ての基本ストリームがＣＭＰＳ２３０２を通じて送られる。
・デマルチプレクサ２３０５とＣＭＰＳ２３０２の間の直接通信パス
・ＣＭＰＳ２３０２に、要求される「コンテンツリリースおよび解読」モジュール
・合成およびレンダリング２３０９からＣＭＰＳ２３０２へのフィードバック・ループ（例えば、ライン２３１３）の追加
・ライン２３１６を通じてのＣＭＰＳ２３０２とユーザの両方向直接対話
さらに、Ｍ４ｖ２Ｐの場合、ＣＭＰオブジェクトは、全ての基本ストリームと対応付けられることが望ましい。作者が保護しない選択をした基本ストリームは、まだ「未保護コンテンツ」ＣＭＰＯによりマーキングされている。ＣＭＰＯは、ルール情報をコンテンツに付与するための初歩的手段である。コンテンツは、ＡＶＯを参照するだけでなく、シーンディスクリプタグラフも参照する。シーンディスクリプタグラフは、大きな価値を持つ可能性があるので、ＣＭＰＳ２３０２により保護し管理する必要があるだろう。
【０３０８】
デマルチプレクサ２３０５からＣＭＰＳ２３０２への直接パスは、潜在的にビジネス・モデル情報を含みユーザ・セッションの始めにビジネス・モデル情報を伝達するＣＭＰＳ固有のヘッダを送るために使われる。このヘッダは、ユーザ識別および認証を開始し、ルールおよび結果を伝達し、ルールとの直接的対話（サービスの質ＱｏＳの選択、請求書作成など）を開始するために使用できる。ＣＭＰＳ２３０２とのユーザの通信は、非標準化チャンネル（例えば、ライン２３１６）を通じて行われる。ＣＭＰＳ設計者は、この対話をフレーミングするために独立ＡＰＩを提供することができる。
【０３０９】
合成およびレンダリング・ブロック２３０９からのフィードバック・パス２３１３は、重要な目的に役立つ。このパスは、システムがユーザに実際に所定のシーンを提示したかどうかクロスチェックするために使用される。それぞれのモジュールによって処理される基本ストリームは、必ずしもユーザに提示されない場合がある。さらに、アタッカーが１回の支払いで何回も見るという、詐欺的状況がいくつもある。フィードバック・パスは、ＣＭＰＳ２３０２がレンダリングをクロスチェックして、より正確な料金算出を行えるようにする。このフィードバックは、合成およびレンダリング・ブロック２３０９が所定のオブジェクトのレンダリング開始を知らせる開始イベントを発し、このレンダリングの終了時に停止イベントによって補完されることによって、実現される。フィードバック信号プロセスは、ＣＭＰＳ２３０２に通知すべきか否かを示すために切り替えられるＣＭＰ通知フラグを用意することによってオプションとすることができる。全てのＣＭＰＯは、このフラグを持つ必要があるだろう。
【０３１０】
構造への最後の修正は、ＡＶＯ、ＳＤＧおよびオブジェクト・ディスクリプタプロセッサおよび合成およびレンダリング・ブロックの平文バッファを保護する必要性である。これは、著作権侵害者がバッファのコンテンツを盗むのを防ぐためである。実際には、この構造の不正変更はストリームの同期化をかなり破壊するので、これは難しいかも知れない。しかし、このバッファを保護処理環境に置けば、より高いセキュリティ状態が得られるだろう。
【０３１１】
ＣＭＰＳ２３０２は、下記のものと整合的にプレーヤ２３０１の機能を統御する。
・ＣＭＰＳ２３０２とＭＰＥＧ−４プレーヤの間の通信メカニズム（ＣＭＰＯを通じて）
・コンテンツリリースおよび解読サブシステム
・バージョン認証サブシステム
・ＭＰＥＧ−４コンポーネントでのストリーム処理を妨害しないような充分な性能
ＣＭＰＳ２３０２は、ＣＭＰ情報交換のためにも使用されるＭＰＥＧ−４プレーヤの外部にある両方向サイドチャンネルを持つことができる。さらに、ＣＭＰＳ設計者は、ユーザにストリーム管理のコンテンツおよび権利管理サイドと通信する（例えば、ライン２３１６を通じて）能力を与えるユーザ・インターフェースＡＰＩを提供することができる。
【０３１２】
暗号化されたコンテンツは、保護されるコンテンツに対応付けられるルールの関数として、またＣＭＰＳ２３０２とユーザの対話の結果として、ＣＭＰＳ２３０２によって解読され、リリースされる。暗号化されないコンテンツは、ＣＭＰＳ２３０２を通り抜け、関連ルールおよびＣＭＰＳ２３０２とユーザとの対話の統御を受ける。このルールおよびユーザ対話の結果として、ＣＭＰＳ２３０２は、シーン構造および（または）ＱｏＳ等級を変更するためにＳＤＧおよびＡＶＯコーディング・モジュール（例えば、２３１０、２３１１）とトランザクションを行う必要があるかも知れない。
【０３１３】
最後に、ＣＭＰＳ設計者は、ＣＭＰＳ２３０２に、ＣＭＰＳサイドチャンネル・ポート２３１８を通じてまたはＭＰＥＧ−４ビット・ストリームにパッケージされる暗号化コンテンツとしてクリアリングハウス・オーソリティに送られる監査証跡情報を、生成させることができる。
ＭＰＥＧ−４・ｖ１システムＣＤは、「オブジェクト」という用語を曖昧に使用している。この文書においては、「オブジェクト」は、特に、図２３において１つまたはそれ以上のデータ・パスから流れるデータ構造を意味するために使用される。
【０３１４】
各々独自のＣＭＰＯを持つ多重ＳＤグラフ更新ストリームを使用することにより、作者はＳＤグラフに固有の制御を自由に適用することができる。例えば、ＳＤグラフの各ノードを、別個のＳＤグラフ更新ストリームによって作成または修正することができる。このストリームは各々、異なるＣＭＰＯおよびＩＤを持つ。従って、ＣＭＰＳは、各ノードの作成および修正をリリースし解読し、各ノードについて個別にフィードバック情報を受け取ることができる。リリースを制御し結果をインプリメントすることの実際的な意味は、各グラフ・ノードにＣＭＰＯを持つ労力を払わずに、ＳＤグラフの各ノードにＣＭＰＯを持つことに匹敵するはずである。
【０３１５】
本発明に従う原則は、以下の例を使って説明することができる：
第１の例においては、英語またはフランス語のサウンドトラック付きの二ヶ国語ビデオがある。ユーザは、再生中英語かフランス語を聞くことができる。基本プレゼンテーションは＄１かかる。フランス語サウンドトラックが流される場合＄０．５０の追加料金がかかる。１回のプレゼンテーション視聴中にユーザがフランス語と英語の間で切り替えると、１回だけ＄０．５０の追加料金が発生する。
【０３１６】
この例においては、以下の４つの基本ストリームがある：
シーン記述グラフ更新ストリームは、１つのＣＭＰＯを持っている。このＣＭＰＯは、コンテンツの使用に対応付けられる＄１．００の料金を暗示する。シーン記述グラフはビデオを表示し、英語の音響を流し、ユーザがフランス語に切り替えることができるようにボタンを提示する。ユーザがこのボタンをクリックすると、英語が停止して、その時点からフランス語が流れて、ボタンは英語への切り替えボタンに変わる（任意に、ユーザが最初の言語を選択できるように始めに多少の対話がある場合もある。これをＳＤグラフで行うのは非常に簡単である）。
【０３１７】
ＣＭＰＯを持つビデオ・ストリームは、上記のシーン記述グラフ更新ストリームがリリースされる場合にのみこれをリリースできることを示す。
英語オーディオ・ストリームは、ビデオ・ストリームと同様である。
フランス語オーディオ・ストリームは、ビデオ・ストリームと同様であるが、これをフィードバック・チャンネルで見る場合＄０．５０の料金がつく。（ＣＭＰＳは、ユーザが１回のプレゼンテーションで２つの言語の間で切り替えても、２回カウントしてはならない。
【０３１８】
重要な要件は、ＳＤグラフ更新ストリームのＩＤがフィードバック・パス（例えば、フィードバック・パス２３１３）に現れることである。したがって、ＣＭＰＳ２３０２は、プレゼンテーションが停止し終了するときこれを知るので、フランス語の音響について正しく請求できる。
ビデオおよびオーディオ・ストリームのリリースに適用されるルールは、いくつか変形を含むことができる。このストリームに関するルールは、例えば、「もしフィードバック・チャンネルにシーン記述グラフ更新ストリームＸのｉｄがなければ、このストリームのリリースを停止すること」という意味のことを定めることができる。メイン・プレゼンテーションがディスプレイ上にない場合、ビデオがディスプレイ上にあってはならない。これによって、ビデオをこの１回のプレゼンテーションに結びつける。他のプレゼンテーションにおいてビデオを使用するためには、この保護されているバージョンではなく、オリジナルのビデオにアクセスする必要がある。
【０３１９】
第二の例においては、作者が、無料のアトラクト・シーケンスすなわち「トレーラ（予告編）」付きのプレゼンテーションにしたいとする。ユーザが、正確なボタンをクリックすると、システムは、無料プレゼンテーションに移行する。これは、１組の「行為」として編成される。
多重ＳＤグラフ更新ストリームは、シーン記述グラフを更新できる。多重ＳＤグラフ更新ストリームは並行して開くことができる。ストリームのＡＬＵのタイプ・スタンプが同期化および調整のために使われる。
【０３２０】
トレーラおよび各行為は、別個のＣＭＰＯを持つ別個のＳＤグラフ更新ストリームによって表される。不可視で無音の単純なルート・ノードを作成するＳＤグラフ更新ストリームが追加されるだろう。このノードは、必要に応じて、プレゼンテーションの他のコンポーネントをもたらす。
発明の実施についての以上の説明は、例証および説明のためのものである。これは徹底的なものではなく、発明を開示される正確な形態に限定するものではない。修正および変形が以上の教訓から可能であり、あるいは発明の実施から修正および変形が得られるかも知れない。例えば、以上に説明した実現例はソフトウェアを含んでいるが、本発明は、ハードウェアおよびソフトウェアの組み合わせとして、またはハードウェアだけで実現可能である。発明は、オブジェクト指向および非オブジェクト指向の両方のプログラミング・システムを使って実現できる。発明の範囲は請求の範囲およびそれと同等のものによって定義される。
【図面の簡単な説明】
【０３２１】
【図１】本発明に一致する一般的システムを示す。
【図２】本発明に一致する例としてのヘッダ２０１を示す。
【図３】本発明に一致する一般的コード化フォーマットを示す。
【図４】本発明に一致する作品の表現を保存する１方法を示す。
【図５】制御メッセージフォーマットの例を示す。
【図６】図１の機能ブロックを使って行うステップの１実施例を示すフロー図である。
【図７】制御メッセージをコントロールブロック１３に保存する形式を示す。
【図８】本発明に一致したＭＰＥＧ−４システム８０１を示す。
【図９】メッセージフォーマットの例を示す。
【図１０】本発明に一致したＩＰＭＰテーブルを示す。
【図１１】本発明に一致したシステムを示す。
【図１２】ＤｉｇｉＢｏｘフォーマットの１実施例を示す。
【図１３】Ｒｅａｌ  Ｎｅｔｗｏｒｋファイルフォーマット（ＲＭＦＦ）の例を示す。
【図１４】本発明に一致したＲＮＰＦＦフォーマットを示す。
【図１５】本発明に一致したアーキテクチャでのＲｅａｌ  Ｎｅｔｗｏｒｋファイルフォーマットでのデータ変更フローを示す。
【図１６】標準的ＲｅａｌＮｅｔｗｏｒｋアーキテクチャを示す。
【図１７】ＲｅａｌＮｅｔｗｏｒｋアーキテクチャ全体内でトラスト・プラグインが動作する例としてのアーキテクチャを示す。
【図１８】本発明の原理に一致したビット・ストリームフォーマットを示す。
【図１９】ＭＰ３フォーマットに適用される保護の１実施例である。
【図２０】保護されたコンテンツを処理およびレンダリングするよう設計されたＭＰ３プレーヤの１実施例である。
【図２１】本発明に一致して保護されたＭＰＥＧ−４ファイルを作成できる１実施例のデータフローを示す。
【図２２】本発明に一致して制御を既存ＭＰＥＧ−４ストリームに組み込むことのできる１実施例のデータフローを示す。
【図２３】本発明の原理に一致したシステムを示す。
【図２４】本発明の原理に一致したシステムを示す。
【図２５】本発明に一致した集合ストリームの例を示す。
【図２６】本発明に一致したヘッダＣＭＰＯ２６０１を示す。
【図２７】本発明の原理に一致したコンテンツ・マネージメント・プロテクション・オブジェクトの例を示す。
【図２８】本発明に一致したＣＭＰＯデータ構造２８０１の例を示す。
【符号の説明】
【０３２２】
１    メディアシステム
２    ビット・ストリーム
３    編成ストリーム
４    オーディオ・ストリーム
５    ビデオ・ストリーム
６    制御ストリーム
【図１】
2006025436.tif 000003
【図２】
2006025436.tif 000004
【図３】
2006025436.tif 000005
【図４】
2006025436.tif 000006
【図５】
2006025436.tif 000007
【図６】
2006025436.tif 000008
【図７】
2006025436.tif 000009
【図８】
2006025436.tif 000010
【図９】
2006025436.tif 000011
【図１０】
2006025436.tif 000012
【図１１】
2006025436.tif 000013
【図１２】
2006025436.tif 000014
【図１３】
2006025436.tif 000015
【図１４】
2006025436.tif 000016
【図１５】
2006025436.tif 000017
【図１６】
2006025436.tif 000018
【図１７】
2006025436.tif 000019
【図１８】
2006025436.tif 000020
【図１９】
2006025436.tif 000021
【図２０】
2006025436.tif 000022
【図２１】
2006025436.tif 000023
【図２２】
2006025436.tif 000024
【図２３】
2006025436.tif 000025
【図２４】
2006025436.tif 000026
【図２５】
2006025436.tif 000027
【図２６】
2006025436.tif 000028
【図２７】
2006025436.tif 000029
【図２８】
2006025436.tif 000030