(57)【特許請求の範囲】
【請求項１】
ＭＰＥＧ-２コンテンツの配信と保護のための融通性ある共通ＩＰＭＰシステムにおける、コンテンツプロバイダ側の装置であって、
所定の符号化技術を用いてコンテンツをコンテンツストリームに符号化する符号化手段と、
特定の制御ポイントにおいて複数のＩＰＭＰツールの中の少なくとも一つを用いて前記符号化されたコンテンツストリームを暗号化する暗号化手段と、
前記暗号化手段が前記符号化されたコンテンツストリームを暗号化するために使用した全てのＩＰＭＰツールの中の少なくとも１つのＩＰＭＰツールを特定するＩＰＭＰツールリストを生成する手段と、
前記少なくとも一つのＩＰＭＰツールがどのように前記コンテンツストリームを保護しているかを示し、かつ前記コンテンツストリームを暗号化するために前記少なくとも１つのＩＰＭＰツールが使用される特定の制御ポイントを示す情報を含むＩＰＭＰ制御グラフを生成する手段と、
前記ＩＰＭＰツールリスト及び前記ＩＰＭＰ制御グラフを、前記暗号化されたコンテンツストリームとともに、ＭＰＥＧ-２システムを利用するＭＰＥＧ−２コンテンツストリームに多重化する手段とを備え、
前記特定の制御ポイントは前記符号化手段と前記多重化する手段の間のコンテンツプロバイダ側のデータフローに沿った位置を定義し、各ＩＰＭＰツールは単独でまたは組み合わされて、所定の機能を実現するモジュールとして機能する、
ことを特徴とする装置。
【請求項２】
既存の透かしツールを用いて前記コンテンツストリームに透かし情報を埋め込む、透かし手段をさらに備えたことを特徴とする請求項１記載の装置。
【請求項３】
前記コンテンツストリームにおいて前記複数のＩＰＭＰツールの中の少なくとも１つを搬送するＩＰＭＰツール容器を生成する手段をさらに備えたことを特徴とする請求項１記載の装置。
【請求項４】
端末側でのコンテンツ利用時に個別のツールインスタンスの各々に送信すべき経時可変のＩＰＭＰに関連する情報を搬送するＩＰＭＰストリームを生成する手段と、
ＩＰＭＰストリームをＭＰＥＧ−２コンテンツストリームへ多重化する手段と
を更に備えたことを特徴とする請求項１記載の装置。
【請求項５】
ＭＰＥＧ-２コンテンツの配信と保護のための融通性ある共通ＩＰＭＰシステムにおける、ＭＰＥＧ-２  ＩＰＭＰ端末側の装置であって、
複数の制御ポイントと、
コンテンツプロバイダから受信したＭＰＥＧ-２コンテンツストリームから、暗号化されたコンテンツストリームと、ＩＰＭＰツールリストを含むＩＰＭＰ制御情報と、ＩＰＭＰ制御グラフとを分離して得るデマルチプレクサ手段と、
前記デマルチプレクサ手段により得られたＩＰＭＰツールリストを解釈し、かつ、前記デマルチプレクサ手段により得られたＩＰＭＰ制御グラフを解釈して、どのツールが、どの制御ポイントで、どのストリームを制御するかについての情報を得る解釈手段と、
前記解釈手段により得られた情報に基づき、前記暗号化されたコンテンツストリームを復号して再生するコンテンツ再生手段とを備え、
前記複数の制御ポイント中の特定の制御ポイントにおいて、複数のＩＰＭＰツールの少なくとも１つが使用され、
前記特定の制御ポイントは、前記デマルチプレクサ手段と前記コンテンツ再生手段の間にある、コンテンツプロバイダ側のデータフローに沿った位置を定義し、
各ＩＰＭＰツールは単独でまたは組み合わされて所定の機能を実現するモジュールとして機能し、
前記ＩＰＭＰツールリストは前記複数のＩＰＭＰツールの少なくとも１つを特定し、
前記ＩＰＭＰ制御グラフは、前記少なくとも１つのＩＰＭＰツールによる前記コンテンツストリームの保護方法を示し、かつ、前記少なくとも１つのＩＰＭＰツールが前記暗号化されたコンテンツストリームを復号するために使用される特定の制御ポイントを示す情報を含み、
前記コンテンツ再生手段は、前記解釈手段により得られたＩＰＭＰツールリストが特定するＩＰＭＰツールを、前記解釈手段により得られた制御グラフが示す制御ポイントに、前記制御グラフが示す保護方法に基づき作用させることで前記暗号化されたコンテンツストリームを復号する
ことを特徴とする装置。
【請求項６】
前記少なくとも１つの制御ポイントにおいて、インターフェースを介して、透かしの検索及び透かしの埋め込みのうちの少なくとも１つを実行する手段をさらに備えたことを特徴とする請求項５記載の装置。
【請求項７】
ＩＰＭＰツールリスト及びＩＰＭＰツールリストが特定するＩＰＭＰツールと同等の機能を有する代替ツールを示す情報がパラメータ記述に記述されており、
前記解釈手段は、前記パラメータ記述を解釈し、その解釈結果に基づき、暗号化されたコンテンツストリームを復号するために使用するＩＰＭＰツールの選択を行うことを特徴とする請求項６記載の装置。
【請求項８】
ＩＰＭＰツールリスト及びＩＰＭＰツールリストが特定するＩＰＭＰツールと同等の機能を有する代替ツールを示す情報がパラメータ記述に記述されており、
前記解釈手段は、前記パラメータ記述を解釈し、その解釈結果に基づき、暗号化されたコンテンツストリームを復号するために使用するＩＰＭＰツールの選択を行い、ＩＰＭＰ制御情報内のＩＰＭＰツール容器からＩＰＭＰツールを抽出して、関連する各ＩＰＭＰツールのツールＩＤ、ツールフォーマットＩＤ及びツールパッケージＩＤを取得する
ことを特徴とする請求項５記載の装置。
【請求項９】
経時可変のＩＰＭＰに関連するメッセージを、所定のＩＰＭＰツールインスタンスまたは当該装置自体へ転送するルーターをさらに備えたことを特徴とする請求項５記載の装置。
【請求項１０】
ＩＰＭＰツールを、当該装置内部に実装する手段をさらに備えたことを特徴とする請求項５記載の装置。
【請求項１１】
前記ＭＰＥＧ-２コンテンツストリームには、ＩＰＭＰ制御情報ストリームとＩＰＭＰストリームとを含むＩＰＭＰ関連ストリームが含まれ、
ＩＰＭＰ制御情報ストリームから、ＩＰＭＰツールリストと、少なくとも１つのＩＰＭＰツールを含むＩＰＭＰツール容器とを抽出する手段をさらに備えたことを特徴とする請求項５記載の装置。
【請求項１２】
前記ＭＰＥＧ-２コンテンツストリームはＩＰＭＰツールにより保護され、
前記ＭＰＥＧ-２コンテンツストリームから、ツールＩＤ、ツール位置、ツールリスト及びツール制御グラフを含むＩＰＭＰツールに関する情報を取り出す手段をさらに備えた、ことを特徴とする請求項５記載の装置。
【請求項１３】
前記ＭＰＥＧ-２コンテンツストリームはＩＰＭＰツールにより保護されており、いくつかのＩＰＭＰツールは、定義付けされたＩＰＭＰツール容器に入れられてコンテンツストリームで搬送され、
前記ＩＰＭＰツール容器からＩＰＭＰツールを取り出して実装する手段をさらに備えたことを特徴とする請求項５記載の装置。
【請求項１４】
前記ＭＰＥＧ-２コンテンツストリームはいくつかのＩＰＭＰツールにより保護されており、当該装置において欠如しているツールを所定の位置から検索する手段をさらに備えた、ことを特徴とする請求項５記載の装置。
【請求項１５】
前記ＭＰＥＧ-２コンテンツストリームはいくつかのＩＰＭＰツールにより保護されており、ＩＰＭＰツールが事前に当該装置に実装されている、ことを特徴とする請求項５記載の装置。
【請求項１６】
前記コンテンツ再生手段は、前記ＭＰＥＧ-２コンテンツストリームを、同じＭＰＥＧ-２ストリームに搬送されている、ＩＰＭＰツールリスト、ＩＰＭＰ制御グラフ、ＩＰＭＰツール容器及びＩＰＭＰストリームを含むＩＰＭＰ情報を用いて処理する、ことを特徴とする請求項５記載の装置。
【請求項１７】
前記解釈手段は、前記ＭＰＥＧ-２コンテンツストリーム中で搬送されているＩＰＭＰ制御情報を解釈し、ＩＰＭＰツールリストを構文解析し、ＩＰＭＰ制御グラフを解釈し、
前記コンテンツ再生手段は、前記解釈結果に基づき、欠如しているツールを検索し、関連するＩＰＭＰツールを定義付けされた制御ポイントで、オーディオ及びビデオストリームに適用することにより、前記ＭＰＥＧ-２ストリームを処理する、ことを特徴とする請求項５記載の装置。
【請求項１８】
前記コンテンツ再生手段は、前記ＭＰＥＧ-２コンテンツストリームを、必要なＩＰＭＰツールを取得し、それを関連するオーディオおよびビデオストリームに適用する概念的なＩＰＭＰマネジャーによって処理する、ことを特徴とする請求項５記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＭＰＥＧ-２コンテンツ配信と保護のためのフレキシブルで共通のＩＰＭＰシステムの装置に関する。
詳述すれば、本発明はＭＰＥＧ-２でのコンテンツの配信と保護、特に、ＭＰＥＧ-２による保護されたコンテンツが異なったＩＰＭＰ端末により使われ、同一コンテンツが異なったＩＰＭＰシステムにより保護されるアプリケーションに関する。
【０００２】
【従来の技術】
マルチメディアとしてコンテンツ配信が一層求められるようになっており、いつでもどこからでもそのコンテンツにアクセスできるようになっている。ユーザにとっては、その利便性と融通性が喜ばれており、そのために娯楽が容易かつ効果的に楽しめるようになっている。他方では、コンテンツの所有者からみれば、財産の不法利用に気をもまざるを得ない。両者間でバランスをとっている。
【０００３】
コンテンツを保護する技法として幾つかが知られており、その一つにデータ符号化や電子透かし法などが知られている。何れも幾多のコンテンツ配信の分野で使われている。コンテンツに保護をかけて配信するのに、システムが異なるれば、そのための機構や保護策も異なっているようである。その場合、全ての端末ないしコンテンツ利用装置は、同一コンテンツプロバイダが提供するコンテンツしか再生したり利用できない。異なったコンテンツを再生するのに端末ないし装置を交換するわけには行かない。
【０００４】
ＭＰＥＧ-４の分野では、標準化グループがＭＰＥＧ-４ＩＰＭＰ拡張版の開発を進めている。これでは下記の両方が達成できるようになる。
１．  保護されている同一コンテンツが異なったベンダーのＭＰＥＧ-４ＩＰＭＰ端末で利用できるようになる。これは完全に可能化される。
２．  異なったベンダーのＩＰＭＰツールで同一コンテンツを保護することが出きる。これは出きるだけ広範囲にわたって対応されることになる。
【０００５】
ＭＰＥＧ-２の分野では、異なったＣＡ(条件付きアクセス)システムとの間での相互運用性を確保するのに必要な最小数の共通ＣＡエレメントを規定するものとしてＣＡシステムがある。しかしながら、充分なコンポーネントが定義されていないので、現実には相互運用性があるわけでもなく、ＣＡによりもたらされるアーキテクチャには融通性がない。
【０００６】
そのような場合では、異なったコンテンツプロバイダが提供する異なったＭＰＥＧ-２コンテンツを再生する同じ端末を生産するのは困難である。換言すれば、保護されている同一ＭＰＥＧ-２コンテンツは異なったＣＡシステムでは再生できないのである。
【０００７】
他方、ＣＡシステムでは共通するスクランブルアルゴリズムを規定しており、これによりハードウェア実現を簡単にしているが、全体のアーキテクチャがあまりにも硬直しすぎている。ＩＰＭＰツールとしては予め特定のものに決めておくべきではなく、ベンダー側が自分のＩＰＭＰシステムに適したツールを選べるように融通性を持たすべきである。その場合、良好な融通性と安全性との両方が得られるように何らかの標準的な方法とインターフェースとを定めておく必要がある。
【０００８】
【発明が解決しようとする課題】
従って、ＭＰＥＧ-２システムにあってはコンテンツ保護のために融通が効き、相互運用のできるＩＰＭＰシステムが求められているのである。
その要件は、
１．  保護されている同一コンテンツが異なったベンダーのＭＰＥＧ-４ＩＰＭＰ端末で利用できること。これは完全に可能化されなければならない。
２．  異なったベンダーのＩＰＭＰツールで同一コンテンツを保護することができること。これはできるだけ広範囲にわたって保証されなければならない。
符号化器からチャンネル配信を経て端末まで安全にＭＰＥＧ-２のための全ＩＰＭＰシステムを構築する、ＩＰＭＰシステム実施者用の標準方法を提供しなければならない。
【０００９】
【課題を解決するための手段】
課題を解消するために、ＭＰＥＧ-４  ＩＰＭＰ拡張版を、修正を施した上でＭＰＥＧ-２に適用する。
ＩＰＭＰ制御情報は、コンテンツを再生するのに必要なＩＰＭＰツールの種類と、コンテンツが保護されている態様とを説明するものとして当該コンテンツの内部に入れる必要がある。それには、ＩＰＭＰツールリストとＩＰＭＰツール容器を使用する。
【００１０】
ＩＰＭＰツールリストは、ツールが独立したものか、或いは代替のツールがあるかを示す。ＩＰＭＰツールリスト内の各ツールごとに下記の情報が設けられている。
１．  ＩＰＭＰツール識別子。特定のＩＰＭＰツールが、そのＩＰＭＰツール識別子と、オプションのパラメータ記述とを通して他者に識別される。
２．  特定のツールに対して考えられる代替ツール。
３．  オプショナルツールリストのシグネチャ。
【００１１】
ＩＰＭＰツール容器には、そのコンテンツとしてバイナリツールそれ自身が入れられている。与えられたツールは、ＩＰＭＰツール容器のペイロードとして搬送され、ツールのフォーマットと、パッケージ情報と、ＩＰＭＰツールＩＤも、ツール容器の中で指定されている。
【００１２】
ＩＰＭＰ制御グラフは、異なったプログラムのもとでの異なったエレメンタリーストリームと、異なったＩＰＭＰツールとを、そのＩＰＭＰツールが動作すべき制御ポイントで両者の間の関係を説明するものである。
【００１３】
ＩＰＭＰツールマネジャーは、与えられたＩＰＭＰ端末における概念的な実体(entity)である。端末がツールリストを受け取ると、端末はそれをＩＰＭＰツールマネジャーに引き渡して構文解析とツール検索を行う。また、このツールマネジャーはパラメータ記述を処理すると共に、代替ツールを特定し、コンテンツ中に入って到着するバイナリツールを受け取る。
【００１４】
全てのＩＰＭＰツールメッセージは端末を介する経路をとる。この機能を表すために、メッセージルーター(ＭＲ)と称する実体がアーキテクチャに定められている。ＭＲは、サポートされているＩＰＭＰツールと接続して通信する。従って、ＭＲは、通信しようとしている他のＩＰＭＰツールから一つのＩＰＭＰツールへの物理的インターフェースを抽象化したものである。メッセージ経路選択(routing)は瞬間的になされると仮定される。
【００１５】
【作用】
コンテンツプロバイダ側では、メディアコンテンツをＭＰＥＧ-２やＭＰＥＧ-４などの既存の符号化技術を利用して符号化すると共に、ＤＥＳやＡＥＳの如くの既存のＩＰＭＰツールを利用して暗号化する。コンテンツには、符号化に先立って透かしツールＡＡＡ(一例)を利用して透かしが埋め込まれていてもよい。その後、このメディアコンテンツを、ＭＰＥＧ２システムを利用して多重化する。
【００１６】
同時に、ＩＰＭＰ制御情報を構築する必要があるのではあるが、この情報にはＩＰＭＰツールリストと選択的なツール容器とを含ませる。ＩＰＭＰ制御情報は、ＭＰＥＧ-２伝送ストリームにおけるＰＳＩまたはＭＰＥＧ-２プログラムストリームにおける特別ＰＥＳパケットに入れる。
【００１７】
また、コンテンツを保護するのに使われるＩＰＭＰツールに基づいてＩＰＭＰツールリストが生成される。このＩＰＭＰツールリストには、特定のツールを指定するＩＰＭＰツールＩＤが含まれている。それには、端末で同一機能(例えばＤＥＳ)を行う、それに好ましいツールを選択できるようにするオプショナルパラメータ記述も含まれていてもよいし、また、端末において、同一タスクの達成が可能な既知のツール類からどれかを選択できるようにするために一組の代替ツールが含まれていてもよい。
【００１８】
ＩＰＭＰ制御グラフもコンテンツ製作時に構築する。例えば、ＤＥＳツールが、符号化の後でビデオエレメンタリストリーム0x01を暗号化するのに使われるとすると、制御グラフでは、エレメンタリストリーム0x01を保護するのにＤＥＳツールが使われている旨の手掛りと、どの制御ポイント(復号化前)で呼ばれるべきであるかの情報が必要である。透かしを符号化前にオーディオエレメンタリストリーム0x02に入れるのにツールＡＡＡを利用したのであれば、制御グラフでは、どの制御ポイント(復号化後)においてエレメンタリストリーム0x02用に透かしツールＡＡＡを呼び出す必要があるかの旨の手掛りが必要である。
【００１９】
端末側では、ＩＰＭＰツールリストはＭＰＥＧ-２端末内にあるＩＰＭＰツールマネジャーに転送される。このツールマネジャーはコンテンツを利用するのに必要な全てのツールが端末にあるかどうかをチェックし、欠けているものがある場合、端末はＩＰＭＰツールＩＤまたはパラメータ記述に従い、欠けているＩＰＭＰツールを独自の方法に従って、検索する。得られたＩＰＭＰツールはこれで端末で利用可能になり、予め定義付けされたメッセージインターフェースでの利用に備えてＩＰＭＰ端末に保存される。
【００２０】
ＩＰＭＰ制御グラフも端末で構文解析されるので、端末としては、どの制御ポイントでどのエレメンタリストリームに作用させるべきＩＰＭＰツールはどれかを知ることができる。
その後、コンテンツストリームは、コンテンツデコーダにかけられ、必要なＩＰＭＰツールが呼び出され、コンテンツが復号化されて端末で再生される。
【００２１】
【発明の実施の形態】
ＭＰＥＧ-２での既存のＣＡシステムは、コンテンツ所有者と端末ベンダーとの両者にとって相互運用ができて融通に富んだコンテンツ保護機構をもたらしていない。
図１は、現在では典型的な従来のＣＡシステムを示している。
ユニット１.０におけるコンテンツ所有者は、ユニット１.１、１.４、１.７における異なったコンテンツプロバイダＸ、Ｙ、Ｚを介してコンテンツを提供している。ここでは、ユニット１.２、１.５、１.８に示した異なったそれぞれのコンテンツプロバイダごとコンテンツを保護するのに異なったＣＡシステムが用いられている。
【００２２】
従って、コンテンツ復号ないしコンテンツ利用端末も、ユニット１.３、１.６、１.９で示すように互いに異なっている。
このことから、ＣＡシステムＡで保護されているＭＰＥＧ-２コンテンツは、ＣＡシステムＢをサポートする端末では再生できないし、異なったベンダーからの異なったＣＡシステムがどのように同一コンテンツを保護すべきか、また、端末側がそのことを知る方法についての完全な仕様はない。
【００２３】
本発明では、ＭＰＥＧ-２ＩＰＭＰシステムで下記の事項を可能にする。
１)  ツールリストとツール容器を含むＩＰＭＰ制御情報をストリームに含ませて、コンテンツプロバイダとコンテンツ配信者としてはどのＩＰＭＰツールを使うべきか、また、どうやってコンテンツ内にバイナリツールを含ませるべきかを知らせること。
２)  ツールリスト、ＩＰＭＰ制御グラフ、ＩＰＭＰツール容器を保有するためにＭＰＥＧ-２システムに５つの新しい記述子を定めること。
３)  ２つの新しいストリームを定めること。個別のツールインスタンスに送るべきＩＰＭＰ情報を搬送するＩＰＭＰストリームと、トランスポートストリームを用いてＩＰＭＰ制御情報を搬送するＩＰＭＰ制御情報ストリーム。
４)  ＭＰＥＧ-４ＩＰＭＰ拡張版からＭＰＥＧ-２端末へツールマネジャーとメッセージルーターの概念を導入すること。
【００２４】
図２は、出願人の提案したコンプライアントＭＰＥＧ-２ＩＰＭＰシステムを示す概略図である。
モジュール２.１はサーバーであって、異なったアプリケーションのシナリオごとにコンテンツプロバイダか、コンテンツ配信者の何れかとして稼働する。
サーバーから端末へのコンテンツストリームの送信を含むサーバーとコンプライアントＭＰＥＧ-２ＩＰＭＰ端末との間の通信のためのネットワークレイヤーをモジュール２.３に示す。
【００２５】
先ず、モジュール２.４の権利認証モジュールがサーバーと相互作用して、コンテンツアクセスと利用権利のみならず、詳細な利用ルールを入手する。モジュール２.４でコンテンツへのアクセス権が認可されれば、サーバからネットワークレイヤーを経て端末へ要求されたコンテンツストリームが送られる。
モジュール２.２では、コンテンツストリームが、ツールリスト、ツール容器、ＩＰＭＰストリームを含むＩＰＭＰ制御情報と共に送信される。ＩＰＭＰ制御情報とＩＰＭＰストリームの詳細なところについては後述する。
【００２６】
モジュール２.５に示したＩＰＭＰツールマネジャーは、ＩＰＭＰ制御情報を構文解析または解釈するものである。それはツールリストを構文解析して、コンテンツを処理するのに必要なＩＰＭＰツールはどれかを見つけだす。何らかのツールがない場合、ツールマネジャーがツール容器からそのツールを検索するか、または、独自の方法を介してどこからかそのツールを検索する。また、ツールマネジャーは、代替選択のリストからツールを選択するか、または、パラメータ記述を解釈して望ましいツールを選択する責任がある。
ＩＰＭＰツールマネジャーは、ＩＰＭＰ制御グラフをも構文解析して、どのツールをどの制御ポイントにおいてどのエレメンタリストリームに使うべきかを見つけだす。これの詳細なことについては後述する。
【００２７】
ライセンス/キーと利用ルールとは、モジュール２.６として示した端末のメモリーに保存されている。バイナリＩＰＭＰツールは、それに対応するツールＩＤと共に、モジュール２.７として端末のメモリーに保存されている。各ツールは、一般的な標準化されているインターフェースに従って構築されており、プラットフォームに適合させるコンパイラを利用して予めコンパイルされている。例えば、データ暗号化と復号化のツールは、一つの一般的な標準化されているインターフェースに基づいて組み込んでもよい。それは、ジャバ仮想マシンで、全てのプラットフォーム/端末用にジャババイトコード(ＪＢＣ)に予めコンパイルされていてもよいし、また、ウィンドウズ（登録商標）準拠プラットフォーム/端末のためにダイナミックリンクライブラリー(ＤＬＬ)に予めコンパイルされていてもよい。
【００２８】
モジュール２.８は、ＩＰＭＰツールプロバイダと端末実装者とが従うべき、予め定義付けされたＩＰＭＰツールのメッセージ通信インターフェースを示す。
ここでは、発明された各項目を示すために詳細な説明を四つに項目分けしている。
【００２９】
（１．  ＩＰＭＰ制御情報）
ＩＰＭＰ制御情報はコンテンツストリームで搬送される必要がある。このＩＰＭＰ制御情報には、ツールリストやツール容器の如くの必要な情報が含まれている。ＩＰＭＰツールリストはコンテンツを処理するのに要するＩＰＭＰツールを特定し、その選択を可能とする。ツール容器は、コンテンツストリームでバイナリツールを運ばせるものである。
【００３０】
簡単に言えば、ＩＰＭＰ制御情報は、コンテンツを再生するのに必要なＩＰＭＰツールは何か、また、どうやってそのツールがコンテンツを保護しているのかを説明するものである。トランスポートストリームにあっては、ＩＰＭＰ制御情報テーブルの形で存在し、プログラムストリームにあっては、stream_idがＩＰＭＰ制御情報ストリームＩＤである時のＰＥＳパケットの形で存在する。
【００３１】
（１．１  トランスポートストリームでのＩＰＭＰ制御情報テーブル）
ＰＳＩ(プログラム特有情報)にはもう一つのテーブル「ＩＰＭＰ制御情報テーブル」が含まれていなければならない。これは、後述するＩＰＭＰツールリスト記述子やツール容器などを含むＩＰＭＰ制御情報を保持するのに使われる。ＰＩＤ割当てを以下に示す。
【００３２】
【表１】
0004308493.tif 000002
0004308493.tif 000003
【００３３】
（１．１．１  ＩＰＭＰ制御情報テーブルのセクションへの割付け）
ＩＰＭＰ制御情報テーブルは、トランスポートストリームパケットへ挿入するに先立って、下記のシンタックスで一つかそれ以上のセクションにセグメント化してもよい。
【００３４】
【表２】
0004308493.tif 000004
0004308493.tif 000005
【００３５】
（ＩＰＭＰ制御情報テーブルセクションにおけるフィールドの意味論的定義）
table_id --  これは、表１に示したように常に0x02に設定されているべき８ビットフィールド。
section_syntax_indicator --  このsection_syntax_indicatorは、'1'に設定しておくべき１ビットフィールド。
section_length --  これは２０ビットフィールド。これはCRCを含む、section_lengthフィールドの直ぐ後に始まり、ＣＲＣを含むセクションのバイト数を定義する。このフィールドの値は１０４８５７３を超えてはいけない。その長さは大きな値に設定される。なぜならば、それに続く記述子が後述のTool_Container_Descriptorを含むかもしれないからである。
ipmp_control_info_version --  この５ビットフィールドは、全ＩＰＭＰ制御情報テーブルのバージョン番号である。バージョン番号は、ＩＰＭＰ情報テーブル内の情報に変化が起きたときに１モジュロ３２だけ増加する。current_next_indicatorが'1'に設定されていると、version_numberは、その時に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。current_next_indicatorが'0'に設定されている場合では、version_numberは次に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。
【００３６】
current_next_indicator --  '1'に設定されていると、送ったＩＰＭＰ制御情報テーブルが現在適用可能であることを意味する１ビットインジケータ。ビットが'0'に設定されていると、送ったＩＰＭＰ制御情報テーブルはまだ適用できず、次に有効になるＩＰＭＰ制御情報テーブルであることを意味する。
section_number --  この８ビットフィールドでこのセクションの番号が与えられる。ＩＰＭＰ制御情報テーブルにおける最初のセクションのsection_numberは0x00でなければならない。ＩＰＭＰ制御情報テーブルに一つのセクションが増える都度１モジュロ２５６ずつ増加する。
【００３７】
last_section_number --  この８ビットフィールドで、ＩＰＭＰ制御情報テーブルの最後のセクション(即ち、section_numberの一番大きいセクション)の番号を指定する。
descriptor_length --  この１６ビットフィールドで、このフィールドの直後に来る記述子の全長を指定する。ToolList_Descriptorがこのフィールドの直後にこなければならない。二つの記述子の詳細なところについてはセクション３で説明する。
isSigned --  この１ビットフィールドは、ＩＰＭＰ制御情報テーブルに署名があることを示している。
【００３８】
Signature --  ツールリスト記述子、ツール容器記述子などを含む全てのＩＰＭＰ制御情報の署名。
CertType --  使っている証明機構の種類。
NumCerts --  含まれる証明の数。
Certificate --  証明のアレー。
Verifying_Tool_Id --  証明を認証するのに必要なツールのＩＤ。これは端末のＩＤであってもよい。
CRC_32 --  これは、ＩＰＭＰセクション全体を処理した後に参考文献[１]の付録Ｂにおいて定めた復号化器のレジスタの出力を０にするＣＲＣ値を含む３２ビットフィールドである。
【００３９】
（１．２  プログラムストリームにおけるＩＰＭＰ制御情報）
ＩＰＭＰ制御情報で、プログラムストリームにおけるツールリスト記述子を含む全体のＩＰＭＰ情報が得られる。stream_idの値が所定値である場合、ＰＥＳパケットとしてＩＭＰＭ制御情報が与えられる。
【００４０】
【表３】
0004308493.tif 000006
0004308493.tif 000007
【００４１】
（ＩＰＭＰ制御情報におけるフィールドの意味論的定義）
packet_start_code_prefix --  このpacket_start_code_prefixは２４ビットコードである。これに続くmap_stream_idと共に、パケットの始まりを識別するパケット開始コードを構成する。このpacket_start_code_prefixは、'0000 0000 0000 0000 0000 0001'(１６進数で0x000001)のビットストリングである。
map_stream_id --  これは、値が１６進数で常に0x??となる８ビットフィールドである。
ipmp_control_info_version --  この５ビットフィールドは、全ＩＰＭＰ制御情報テーブルのバージョン番号である。バージョン番号は、ＩＰＭＰ情報テーブル内の情報に変化が起きたときに１モジュロ３２だけ増加する。current_next_indicatorが'1'に設定されていると、version_numberは、その時に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。current_next_indicatorが'0'に設定されている場合では、version_numberは次に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。
【００４２】
ipmp_control_info_length --  このipmp_control_info_lengthは１９ビットフィールドであって、このフィールドの直後にくるipmp_control_infoにおける全バイト数を表している。このフィールドの最大値は524288(バイト)である。
current_next_indicator --  '1'に設定されていると、送ったＩＰＭＰ制御情報テーブルが現在適用しうることを意味する１ビットフィールド。ビットが'0'に設定されていると、送ったＩＰＭＰ制御情報テーブルであるず、次のＩＰＭＰ制御情報テーブルを有効にすべきことを意味する。
ipmp_control_info_version --  この５ビットフィールドは、全ＩＰＭＰ制御情報テーブルのバージョン番号である。バージョン番号は、ＩＰＭＰ情報の定義が変わる都度１モジュロ３２だけ増加する。current_next_indicatorが'1'に設定されていると、このipmp_control_info_versionは、その時に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。current_next_indicatorが'0'に設定されている場合では、ipmp_control_info_versionは次に適用しうるＩＰＭＰ制御情報テーブルのそれでなければならない。
descriptor_length --  このdescriptor_lengthは１６ビットフィールドで、このフィールドの直後に来る記述子の全長を指定する。ToolList_DescriptorとＩＰＭＰシーングラフ記述子とがこのフィールドの直後にこなければならない。この記述子の詳細なところについてはセクション３で説明する。
marker_bit --  このmarker_bitは、'1'をその値とする１ビットフィールドである。
isSigned --  この１ビットフィールドは、ＩＰＭＰ制御情報テーブルに署名があることを示している。ifブラケットにおける後続フィールドは最終セクションにおけるのと同じ意味を持っている。
【００４３】
（２．  新たな記述子）
プログラムとプログラムエレメント記述子とは、プログラムとプログラムエレメントの定義を拡張するのに利用し得る構造である。全ての記述子は、８ビットタグ値から始まるフォーマットになっている。タグ値の後には、８ビット記述子長とデータフィールドが続く。本発明では、ＩＰＭＰツールリストを保持する新しいＩＰＭＰツールリスト記述子と、全ＩＰＭＰ構造を表すＩＰＭＰ制御グラフ記述子と、コンテンツとしてバイナリＩＰＭＰツールを搬送するＩＰＭＰツール容器記述子とを定めている。
【００４４】
下記のセマンティックは本発明で定める記述子とＭＰＥＧ−２における既存の記述子との両方にあてはまる。
descriptor_tag --  このdescriptor_tagは、各記述子を識別する８ビットフィールドである。その意味は、下記の表に示されている。ＴＳないしＰＳカラムにおける'Ｘ'は、当該記述子がトランスポートストリームか、プログラムストリームの何れかにあてはまることを示している。本発明では５つの新しい記述子を導入している。
【００４５】
【表４】
0004308493.tif 000008
0004308493.tif 000009
descriptor_length --  このdescriptor_lengthは、descriptor_lengthフィールドの直後にくるバイト数を指定する８ビットフィールドである。
【００４６】
（２．１  ＩＰＭＰツールリスト記述子）
ＩＰＭＰツールリスト記述子には、ＩＰＭＰツールのリストが含まれている。これは、コンテンツを再生するために利用すべき全てのＩＰＭＰツールを特定している。
【００４７】
【表５】
0004308493.tif 000010
0004308493.tif 000011
IpmpTool_Descriptor()については、次のセクションで定義付けする。
【００４８】
（２．２  ＩＰＭＰツール記述子）
IPMP_Tool_Descriptorには、端末が要する論理ＩＰＭＰツールの情報が含まれている。論理ツールは下記のどれか一つであってもよい。
１.  IPMP_ToolIDで指定されるベンダー特有ＩＰＭＰツール、
２.  代替ＩＰＭＰツールのリストの一つ、
３.  パラメータ記述で指定されるＩＰＭＰツール。
【００４９】
【表６】
0004308493.tif 000012
0004308493.tif 000013
【００５０】
（ＩＰＭＰツール記述子におけるフィールドの意味論的定義）
代替ツールのリストの場合、端末は代替ＩＰＭＰツールのリストからＩＰＭＰツールを選択することになる。ＩＰＭＰツールのパラメータ記述の場合、端末は、そのパラメータ記述において指定されている基準に合致するＩＰＭＰツールを選択することになる。
IPMP_ToolID --  端末が要求する論理ＩＰＭＰツールの識別子
isAltGroup --  IPMP_Toolには、代替ＩＰＭＰツールのリストが含まれている。この場合、IPMP_ToolIDは、代替ＩＰＭＰツールのリストのための識別子であり、端末はIPMP_ToolIDのビットストリームに指定されている情報を、端末が実装する特定のＩＰＭＰツールへ転送することになる。
numAlternates --  IPMP_Tool[]で指定されている代替ＩＰＭＰツールの数。
Alt_IPMP_ToolID --  コンテンツの利用を許容する一群の代替ＩＰＭＰツールのＩＤ。
isParametric --  IPMP_Toolには、ＩＰＭＰツールのパラメータ記述が含まれている。この場合、ipmp_ToolIDは、パラメータで記述されているＩＰＭＰツールの識別であり、端末はIPMP_ToolIDのビットストリームに指定されている情報を、端末が実装する特定のＩＰＭＰツールへ転送することになる。
【００５１】
（２．３  ＩＰＭＰツール容器記述子）
コンテンツそれ自体がバイナリＩＰＭＰツール(軽量)を搬送しているケースが多くある。端末はコンテンツからＩＰＭＰツールを検索、ロードして、それを実装すると共に、コンテンツを再生するために直ちにそれを利用してもよい。
ＭＰＥＧ４  ＩＰＭＰ拡張版では、ＩＰＭＰツールはツールＥＳで搬送される。しかし、ＭＰＥＧ２の場合、新たに定義付けしたＩＰＭＰツール容器記述子内でバイナリＩＰＭＰツールを搬送する方がより容易である。与えられたツールの一つの実装が、一つのＩＰＭＰツール容器のペイロード、記述フォーマット、パッケージ情報、容器内で指定されるＩＰＭＰツールＩＤとして搬送される。
【００５２】
【表７】
0004308493.tif 000014
0004308493.tif 000015
【００５３】
（ＩＰＭＰツール容器記述子におけるフィールドの意味論的定義）
IPMP_Tool_ID --  このストリームで搬送されるツールのＩＤ。
Tool_Format_ID --  これは構造的に記述されているツールの場合、0x0001として定義されている。そうでない場合、Tool_Format_IDは、ツールのバイナリ表現を示し、登録権威により割り当てられる。
注意：  構造的に記述されているツールとは、コンテンツの利用に必要な一部ないし全てのＩＰＭＰ機能を提供するために組み合わされるプリミティブのネットワークとしてのＩＰＭＰツールを含んでいる。例えば、ＤＥＳ解読アルゴリズムは、入力として暗号コード(ciphercode)を受け、出力として平文で出力する演算コード呼出しのシーケンスとして説明できる。
【００５４】
Tool_Package_Idは、ツールのパッケージの詳細を示している。一例にはＣＡＢないしWinzip、自己インストール実行等がある。値は登録認証者により割り当てられる。
【００５５】
（２．４  ＩＰＭＰ制御グラフ記述子）
ＩＰＭＰ制御グラフ記述子には、全体のＩＰＭＰ保護スキームの説明が含まれている。それはＩＰＭＰツールを、保護されている個々のストリームと関連付ける。
【００５６】
【表８】
0004308493.tif 000016
0004308493.tif 000017
【００５７】
（ＩＰＭＰ制御グラフ記述子におけるフィールドの意味論的定義）
numProtectedProgram --  この８ビットフィールドで、ＩＰＭＰ保護範囲に入るプログラムは幾つあるかを表している。数が０であれば、それはプログラムストリームであることを意味する。それが１以上であれば、それはトランスポートストリームであることを意味し、for loopが各プログラムにトレースすべく続く。
【００５８】
トランスポートストリームの場合(numProtectedProgram>０)：
program_number --  このprogram_numberは１６ビットフィールドである。これは、ＩＰＭＰで保護されているプログラムを特定する。このフィールドは、ＩＰＭＰ制御情報の一つのバージョン内で一度以外、単一の値をとることはできない。
ipmp_length --  これは１６ビットフィールド。これは、ipmp_lengthフィールドの直後に続くＩＰＭＰ記述子のバイト数を指定する。
NumProtectedStreams --  ＩＰＭＰで保護されているエレメンタリストリーム(上記のプログラムに属する)の数を指定する。
stream_type --  これは、elementary_PIDで指定される値を有するＰＩＤのあるパケット内に搬送されるプログラムエレメントの種類を指定する８ビットフィールドである。stream_typeの値は後述するテーブル１１に規定されている。
elementary_PID --  これは、関連付けられたプログラムエレメントを搬送するトランスポートストリームパケットのＰＩＤを指定する１３ビットフィールドである。このelementary_PIDの直後にＩＰＭＰ記述子があれば、それは、この特定のエレメンタリストリームがこのＩＰＭＰ記述子で定義付けされている保護範囲内にあることを意味する。
【００５９】
プログラムストリームの場合(numProtectedProgram=０)：
elementary_stream_id --  このelementary_stream_idは、このエレメンタリストリームが保存されているＰＥＳパケットのＰＥＳパケットヘッダにおけるstream_idの値を表す８ビットフィールドである。
【００６０】
ＩＰＭＰ記述子は下記のように更に定義付けられている。
【００６１】
（２．５  ＩＰＭＰ記述子）
ＩＰＭＰ記述子は、特定の範囲でＩＰＭＰ保護を指定する。制御ポイント、シーケンス、ＩＰＭＰツールＩＤなどの仕様を含む。
【表９】
0004308493.tif 000018
0004308493.tif 000019
【００６２】
（ＩＰＭＰ記述子のフィールドの意味論的定義）
IPMP_DescriptorID --  このＩＰＭＰ記述子に特有のＩＤ。この特定の記述子(保護範囲)を参照するのに利用できる。
IPMP_ToolID --  この範囲で保護しているＩＰＭＰツールに特有のＩＤ。
NumControlPoints --  ＩＰＭＰツールがアクティブになっている制御ポイントの数。
controlPoint --  ＩＰＭＰツールが常駐しているＩＰＭＰ制御ポイントを指定する値であって、下記の値のうちのいずれか一つの値をとる。
【表１０】
0004308493.tif 000020
【００６３】
sequenceCode --  同一制御ポイントにあるＩＰＭＰツールに対するＩＰＭＰツールの関係を特定する値であって、下記の内の一つをとる。このsequenceCodeが0x01と0x02の何れかであれば、ＩＰＭＰ記述子ＩＤがcontrolPointと共に直ちに続いて、どのツール(インスタンス)が前または後ろにつづくＩＰＭＰツールであるかを指定する。
【表１１】
0004308493.tif 000021
【００６４】
OpaqueData --  ＩＰＭＰツールを制御するための不透明データ。
【００６５】
（３．  新しいストリーム）
Stream_idが、下記の表で定めているエレメンタリストリームの種類と数を特定する。本実施形態では、Stream_id=1111 1001がＩＰＭＰストリームに割り当てられている。
【００６６】
【表１２】
0004308493.tif 000022
0004308493.tif 000023
【表１３】
0004308493.tif 000024
0004308493.tif 000025
【００６７】
（３．１  ＩＰＭＰストリーム）
ＩＰＭＰストリームは、ＩＰＭＰ情報を搬送する新しいエレメンタリストリームである。一つのコンテンツに、各ＩＰＭＰ ＥＳが一つのＩＰＭＰシステムに関連付けられて沢山のＩＰＭＰエレメンタリストリームがあるＭＰＥＧ４拡張版とは異なって、ＭＰＥＧ２では、全ての制御ポイントにある全てのＩＰＭＰツールの全てのＩＰＭＰ情報が一つのＩＰＭＰストリームに搬送されている。
【００６８】
従って、ＩＰＭＰストリームにおける全てのＩＰＭＰ情報の宛先を明確に示す必要はない。
【００６９】
本発明では、ＩＰＭＰストリームは、下記の如く定めたシンタックスを有するＩＰＭＰ情報メッセージの連鎖(concatenation)でなければならないと定めている。
【表１４】
0004308493.tif 000026
0004308493.tif 000027
ipmp_descriptor_idとcontrol_pointとは、このIPMP_info_messageの宛先を明確に定めている。このメッセージは、メッセージルーターを介して、特定のcontrol_pointにある対応するＩＰＭＰ記述子に定められているＩＰＭＰツールへ転送されていなければならない。
【００７０】
（４．  ＭＰＥＧ２  ＩＰＭＰ端末）
ＩＰＭＰツールマネジャーとメッセージルーターとは、ＭＰＥＧ４  ＩＰＭＰ拡張端末からＭＰＥＧ２  ＩＰＭＰ端末へと直接移植し得る。
図３は、ＭＰＥＧ-２ＩＰＭＰ端末のアーキテクチャを示す。
【００７１】
（４．１  ＩＰＭＰツールマネジャー）
ＩＰＭＰツールマネジャーは、ある特定のＩＰＭＰ端末における概念的なエンティティである。端末は、ツールリストを受け取ると、それを構文解析とツール検索に備えてＩＰＭＰツールマネジャーに転送しなければならない。また、ツールマネジャーは、パラメータ記述を処理して、代替ツールを求め、コンテンツとして到達するバイナリツールを受け取る。
【００７２】
下記のステップは、ＭＰＥＧ-２端末でのツールの構文解析と検索のプロセスを詳細に説明したものである。
１.  ＩＰＭＰツールリスト記述子がＰＳＩにおけるＩＰＭＰ制御情報テーブルに記載されて、ツールマネジャーに転送される。
２.  ＩＰＭＰツールマネジャーは、前節で説明したシンタックスによりＩＰＭＰツールの情報を構文解析する。
３.  ツールマネジャーは、所要ツールを持っているかどうかをチェックする。ツールを持っていない場合、ツールを得る試みがなされる。得られないツールを得る方法は実装上の問題である。
４.  また、ＩＰＭＰツールマネジャーは、ＩＰＭＰツール容器記述子の構文解析を行って、ＰＳＩに含まれるバイナリＩＰＭＰツールを検索する責任がある。
５.  更に、ＩＰＭＰツールマネジャーは、パラメータ記述を処理する責任がある。
【００７３】
（４．２  ＩＰＭＰメッセージルーター）
全てのＩＰＭＰツールメッセージは、端末を介して転送される。この機能を表すためには、メッセージルーター（ＭＲ）と称する実体がアーキテクチャに定められている。ＭＲは、サポートされているＩＭＰＭツールと接続し、通信する。従って、それは一つのＩＰＭＰツールと、それと通信したがっている他のＩＰＭＰツールとの物理的インターフェースとなる。メッセージ転送は瞬間的になされると想定される。ＭＲエラーの場合、ＭＲにより適当なエラーステータスが返される。他の全ての場合では、ＭＲは、意味論的意味を変えないで、情報と受信返答とを転送するように求められている。
【００７４】
メッセージインターフェースはＭＰＥＧ４  ＩＰＭＰ拡張版から変更を加えることなく移植される。しかし、ＭＰＥＧ２でのツールインスタンスにためのコンテクストＩＤを定める必要はない。ＩＰＭＰ記述子ＩＤが、制御ポイントと共に、特定のエレメンタリストリームを保護するために特定の制御ポイントで作用する特定のツールインスタンスを明確に定めるべきである。
【００７５】
（４．３  手動認証）
互いに、或いは、端末と通信しなければならないツールは、ツールと端末のセキュリティ要件を満たすようなやり方でそのようにしなければならない。ツールは、端末に対して、また、恐らくは互いに信頼関係を築いて通信を確かなものとしなければならない。ツール間の信頼できる通信チャンネルを確立することは、確実で、信頼性のある認証チャンネルを利用することにより達成される。
相互認証をサポートするメッセージは、ＭＰＥＧ４  ＩＰＭＰ拡張版からＭＰＥＧ２フレームワークへ直接移植できる。
【００７６】
【発明の効果】
本発明は、異なった種類の端末において同じ方法で保護されたＭＰＥＧ-２コンテンツを再生すると共に、異なったベンダーのＩＰＭＰシステムを利用して同じＭＰＥＧ-２コンテンツを保護する問題を、ＭＰＥＧ２  ＩＰＭＰフレームワークを導入することにより解消している。
【００７７】
ＩＰＭＰ制御情報は、ＭＰＥＧ-２トランスポートストリームの場合ではＰＳＩに、また、ＭＰＥＧ-２プログラムストリームの場合ではＰＥＳパケットに搬送することができる。ＩＰＭＰ制御情報は、ＩＰＭＰツールリスト、またはＩＰＭＰツール容器を５つの新しい記述子の形で搬送している。
【００７８】
ＩＰＭＰツールリストは、コンテンツを処理するのに必要なＩＰＭＰツールを識別すると共に、その選択を可能にしている。ＩＰＭＰ制御グラフは、ＩＰＭＰツールとその保護範囲(制御ポイント)との関連を表している。ツール容器は、コンテンツストリームにおいてバイナリツールを搬送している。
【００７９】
ＩＰＭＰストリームはＭＰＥＧ-２システム内でのエレメンタリストリームで、各個々ＩＰＭＰツールインスタンスにＩＰＭＰメッセージを搬送するためのものである。
【００８０】
ＩＰＭＰツールマネジャーとメッセージルーターとは、ＭＰＥＧ-４ＩＰＭＰ拡張版からＭＰＥＧ-２ＩＰＭＰシステムに移植できる。
【図面の簡単な説明】
【図１】  従来例としてのＭＰＥＧ-２の異なったＣＡシステムでのコンテンツ配信と保護を示す。
【図２】  コンプライアントＭＰＥＧ-２ＩＰＭＰシステムの概略図。
【図３】  ＭＰＥＧ-２ＩＰＭＰ端末の図を示す（"ＤＢ"：デコーダバッファ、"ＲＢ"：レンダーバッファ）。
【図１】
0004308493.tif 000028
【図２】
0004308493.tif 000029
【図３】
0004308493.tif 000030