(57)【要約】　　　（修正有）【課題】安全でＩＰベースのストリーミングをフォーマットに無関係な方法で実現するシステム、方法、およびコンピュータ読み取り可能な媒体を提供する。【解決手段】エンコードされたメディア・ファイル４０２からメタデータを読み取る。次に、コンテンツ・データと付随するメタデータを含むエンコードされたメディア・ファイル４０２を暗号化する。次いで、ストリーミング・サーバ・システムで、エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割したのち、メタデータ中の少なくとも１つのパラメータに従ってストリーミングする。次いで、データ・パケットをクライアント情報処理システム（すなわちクライアント）にネットワークを介してストリーミングする。【選択図】図４
2004007476.tif 000002
【特許請求の範囲】
【請求項１】
サーバ情報処理システムでストリーミング・データを供給する方法であって、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを受信するステップであって、前記メディア・ファイルが既にエンコードされ／暗号化されている、ステップと、
前記メディア・ファイルに付随するプレーン・メタデータを受信するステップと、
前記エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割するステップであって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、ステップと、
前記メディア・ファイルに付随する前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記複数のデータ・パケットをネットワークを介してクライアントにストリーミングするステップと
を備えた
方法。
【請求項２】
第１の受信するステップが、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルを受信するステップであって、前記メディア・ファイルがストリーム暗号を用いて既に暗号化されている、ステップ
を備えている、
請求項１に記載の方法。
【請求項３】
第１の受信するステップにおいて、さらに、
前記メディア・ファイルがＭＰＥＧ２圧縮アルゴリズムをを用いて既にエンコードされている、
請求項２に記載の方法。
【請求項４】
第２の受信するステップが、
前記メディア・ファイルに付随するプレーン・メタデータを受信するステップであって、前記プレーン・メタデータがビットレート値を含んでいる、ステップを備えている、
請求項３に記載の方法。
【請求項５】
前記ストリーミングするステップが、
前記複数のデータ・パケットをネットワークを介してクライアントにＲＴＰプロトコルを用いてストリーミングするステップ
を備えている、
請求項４に記載の方法。
【請求項６】
クライアント情報処理システムでストリーミング・データを受信する方法であって、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを要求するステップと、
前記要求したメディア・ファイルに関連付けられた少なくとも１つのデータ・パケットを受信するステップであって、各データ・パケットが既に暗号化され／エンコードされている前記メディア・ファイルの一部を含み、かつ、各データ・パケットが前記メディア・ファイル内の位置に対応するオフセット値を含んでいる、ステップと、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号するステップと、
各データ・パケットをデコードするステップと、
各データ・パケット中のコンテンツ・データをレンダーするステップと
を備えた
方法。
【請求項７】
前記復号するステップが、
各データパケット中のオフセット値を用いて各データ・パケットを復号するステップであって、前記復号にストリーム復号アルゴリズムを用いる、ステップ
を備えている、
請求項６に記載の方法。
【請求項８】
前記デコードするステップが、
各データ・パケットをデコードするステップであって、前記デコードにＭＰＥＧ２デコード・アルゴリズムを用いる、ステップ
を備えている、
請求項７に記載の方法。
【請求項９】
サーバ情報処理システムでストリーミング・データを供給するコンピュータ命令を備えたコンピュータ読み取り可能な媒体であって、前記コンピュータ命令が、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを受信する命令であって、前記メディア・ファイルが既にエンコードされ／暗号化されている、命令と、
前記メディア・ファイルに付随するプレーン・メタデータを受信する命令と、
前記エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割する命令であって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、命令と、
前記メディア・ファイルに付随する前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記複数のデータ・パケットをネットワークを介してクライアントにストリーミングする命令と
を備えた
コンピュータ読み取り可能な媒体。
【請求項１０】
受信する第１の命令が、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルを受信する命令であって、前記メディア・ファイルがストリーム暗号を用いて既に暗号化されている、命令
を備えている、
請求項９に記載のコンピュータ読み取り可能な媒体。
【請求項１１】
受信する第１の命令において、さらに、
前記メディア・ファイルがＭＰＥＧ２圧縮アルゴリズムをを用いて既にエンコードされている、
請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
受信する第２の命令が、
前記メディア・ファイルに付随するプレーン・メタデータを受信する命令であって、前記プレーン・メタデータがビットレート値を含んでいる、命令を備えている、
請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記ストリーミングする命令が、
前記複数のデータ・パケットをネットワークを介してクライアントにＲＴＰプロトコルを用いてストリーミングする命令
を備えている、
請求項１２に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
クライアント情報処理システムでストリーミング・データを受信するコンピュータ命令を備えたコンピュータ読み取り可能な媒体であって、前記コンピュータ命令が、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを要求する命令と、
前記要求したメディア・ファイルに関連付けられた少なくとも１つのデータ・パケットを受信する命令であって、各データ・パケットが既にエンコードされ／暗号化されている前記メディア・ファイルの一部を含み、かつ、各データ・パケットが前記メディア・ファイル内の位置に対応するオフセット値を含んでいる、命令と、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する命令と、
各データ・パケットをデコードする命令と、
各データ・パケット中のコンテンツ・データをレンダーする命令と
を備えた
コンピュータ読み取り可能な媒体。
【請求項１５】
前記復号する命令が、
各データパケット中のオフセット値を用いて各データ・パケットを復号する命令であって、前記復号にストリーム復号アルゴリズムを用いる、命令
を備えている、
請求項１４に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
前記デコードする命令が、
各データ・パケットをデコードする命令であって、前記デコードにＭＰＥＧ２デコード・アルゴリズムを用いる、命令
を備えている、
請求項１５に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
ストリーミング・データを供給するサーバ情報処理システムであって、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルと、
前記コンテンツ・データおよび前記付随するメタデータを含む前記メディア・ファイルを暗号化する暗号化手段と、
既にエンコードされ／暗号化されているメディア・ファイルを複数のデータ・パケットに分割するストリーミング・サーバであって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでおり、前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記データ・パケットをクライアントにネットワークを介してストリーミングするストリーミング・サーバと
を備えた
システム。
【請求項１８】
前記暗号化手段が、
前記コンテンツ・データおよび前記付随するメタデータを含む前記メディア・ファイルを暗号化する暗号化手段であって、暗号化するのにストリーム暗号を用いる、暗号化手段
を備えている、
請求項１７に記載のシステム。
【請求項１９】
ストリーミング・データを受信するクライアント情報処理システムであって、コンテンツ・データおよび付随するメタデータを含むメディア・ファイルに対するリクエストと、
少なくとも１つのデータ・パケットであって、各データ・パケットが、既にエンコードされ／暗号化されているメディア・ファイルの一部と、前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、少なくとも１つのデータ・パケットと、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する復号手段と、
各データ・パケットをデコードするデコーダと、
各データ・パケット中のコンテンツ・データをレンダーするレンダラーとを備えた
システム。
【請求項２０】
前記復号手段が、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する復号手段であって、復号するのにストリーム復号を用いる、復号手段
を備えている、
請求項１９に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にストリーミングの分野に関し、特にセキュアなＩＰベースのストリーミングに関する。
【０００２】
【従来の技術】
近年、インターネットの利用が盛んになるのにつれて、情報とアイディアの交換も盛んになった。特に、ファイル共有がますます盛んになりつつある。ファイル共有は初めのうち、ＦＴＰとｇｏｐｈｅｒを用いて実現していた。次いで、ＴＣＰ／ＩＰとウェブの利用が盛んになるのにつれて、ユーザはウェブ・ブラウザを用いてファイルをダウンロードし始めた。現在では、ストリーミングの利用が普及した。というのは、ストリーミングを利用すれば、ユーザはメディア・ファイルをダウンロードするのと同時にそれを体験することができるからである。しかしながら、インターネットが拡大した結果、保護されたコンテンツをアクセス制御する分野において奇妙な障害が生じるようになった。すなわち、ユーザがますます大量のファイルを迅速に送受信するのにつれて、アクセス制御よりも情報の自由な流れが優先される可能性が出てきた。この結果、保護されたコンテンツのセキュア・ストリーミングが必要になった。しかし、セキュア・ストリーミングには欠点がある。
【０００３】
図１はセキュア・ストリーミング用の典型的な従来技術システムのシステム・アーキテクチャ全体を説明するブロック図である。ストリーミング・サーバ・コンピュータ・システム１０８はクライアントへのストリーミング用にＭＰＥＧ２ビデオ・ファイルなどのメディア・ファイルを供給する。コンテンツ・マスタリング・システム１１０はメディア・ファイルを生成し、オーサリングし、それをストリーミング・サーバ１０８に供給するシステム機能を備えている。サーバ１０８は供給されたメディア・ファイルをネットワーク１０６、たとえばインターネットを介してストリーミングする。ユーザ１０２はクライアント・コンピュータ・システム１０４（たとえば家庭用パーソナル・コンピュータ）を用いてストリーミング・メディア・ファイルをサーバ１０８からネットワーク１０６を介して受信する。クライアント１０４、サーバ１０８、およびコンテンツ・マスタリング・システムのコンピュータ・システム、ならびにネットワーク１０６は、下で詳細に説明する。
【０００４】
セキュア・ストリーミングの問題に対する周知の方法を図２に示す。図２はセキュア・ストリーミング用の従来技術システムのプロセス全体を示す機能図である。図２には、エンコードされたコンテンツ・データ部と付随するプレーン（平文）メタデータ部を備えたエンコードされた（すなわち圧縮された）メディア・ファイル２０２が示されている。（メタデータとは、データに関するデータのことである。）メディア・ファイル２０２はＭＰＥＧ２ビデオ・ファイル、Ｗｉｎｄｏｗｓ（Ｒ）　Ｍｅｄｉａ　Ｐｌａｙｅｒビデオ・ファイル、ＱｕｉｃｋＴｉｍｅビデオ・ファイル、ＭＰ３音声ファイル、その他ストリーミングしうるエンコードされた任意のメディア・ファイルである。コンテンツ・マスタリング・システム１１０（図１参照）上で、暗号化モジュール２０４がメディア・ファイル２０２を読み取る。暗号化モジュール２０４は、プレーン・メタデータとエンコードされ／暗号化されたコンテンツ・データを含むメディア・ファイル２０６を生成する。
【０００５】
次いで、ストリーミング・サーバ１０８がメディア・ファイル２０６を読み取る。ストリーミング・サーバ１０８はＷｉｎｄｏｗｓ（Ｒ）　Ｍｅｄｉａ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ、ＱｕｉｃｋＴｉｍｅ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ、Ｄａｒｗｉｎ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ　、その他ネットワークを介してメディア・ファイルをストリーミングすることのできる任意のサーバである。ストリーミング・サーバ１０８はメディア・ファイル２０６を有限個のデータ・バケットに分割する。これらのデータ・パケットはネットワーク１０６を介してクライアント１０４にストリーミングされる。クライアント１０４では、ストリーミング・クライアント２０９がデータ・パケットを受信する。次いで、復号／デコード・モジュール２１０がこれらのデータ・パケットを処理する。復号／デコード・モジュール２１０はプレーン・コンテンツ・データを含むメディア・ファイル２１２を生成する。次いで、メディア・ファイル２１２はレンダラー２１４に供給される。レンダラー２１４はメディア・ファイル２１２を再生したり読み取ったりする。
【０００６】
図３は図２の従来技術システムのプロセス全体の動作と制御フローを示すフローチャートを示す図である。コンテンツ・マスタリング・システム１１０（図１参照）では、図３の制御フローはステップ３０２で開始したのち、直ちにステップ３０４に進む。ステップ３０４では、エンコードされたコンテンツ・データ部と付随するプレーン・メタデータ部を備えたエンコードされたメディア・ファイル２０２（図２参照）を暗号化モジュール２０４に供給する。ステップ３０６では、暗号化モジュール２０４がメディア・ファイル２０２のエンコードされたコンテンツ・データ部を暗号化する。この結果、プレーン・メタデータとエンコードされ／暗号化されたコンテンツ・データが生成される。ステップ３０８では、メディア・ファイル２０６をストリーミング・サーバ１０８に供給する。ステップ３１０では、ストリーミング・サーバ１０８はメディア・ファイル２０６を有限個のデータ・パケットに分割し、分割したパケットをクライアント１０４にネットワーク１０６を介してストリーミングする。また、ステップ３１０では、ストリーミング・サーバ１０８はエンコードされ／暗号化されたメディア・ファイル２０６中のメタデータに従ってストリーミング・パラメータの設定も行なう。
【０００７】
クライアント１０４では、ステップ３１２で、ストリーミング・クライアント２０９がデータ・パケットをネットワーク１０６経由で受信する。次いで、ステップ３１４で、復号／デコード・モジュール２１０が受信したデータ・パケットを復号したのちデコードする。ステップ３１４の結果、プレーン・コンテンツ・データを含むメディア・ファイル２１２が生成される。ステップ３１６では、メディア・ファイル２１２をレンダラー３１６に供給する。レンダラー３１６はメディア・ファイル２１２中のコンテンツ・データをレンダーする。ステップ３１８で、制御フローは終了する。
【０００８】
しかしながら、図２と図３に示した方法には欠点がある。１つの欠点は、ステップ３０６の暗号化プロセス（モジュール２０４参照）とステップ３１４の復号プロセス（モジュール２１０参照）がフォーマットを知っていなければならない、という点である。すなわち、暗号化プロセスと復号プロセスはメディア・ファイル２０２のメディア・フォーマットを特定している情報を保持していなければならない。コンテンツ・マスタリング・システム１１０では、ステップ３０６の暗号化プロセスはメディア・ファイル２０２に付随するメタデータを読み取ることにより、メディア・ファイル２０２のメディア・フォーマットを特定している。同様に、クライアント１０４では、ステップ３１４の復号プロセスはクライアント１０４に送られてきたデータ・パケットに含まれている、メディア・ファイル２０２に付随するメタデータを読み取ることにより、メディア・ファイル２０２のメディア・フォーマットを特定している。従来技術プロセスのフォーマット依存性は、システムの互換性を低下させるから、不都合である。さらに、新たなフォーマットが普及すると、システムの使用可能性が制限される。
【０００９】
従来技術システムの別の欠点は、データ・パケット・ロスが生じたときに、クライアント１０４におけるメディア・ファイルの質が低下する可能性がある点である。すなわち、暗号化プロセスでブロック暗号化を用いている場合、ストリーミング・プロセスの間におけるデータ・パケット・ロスはクライアント１０４が受信するメディア・ファイル・データの質に悪影響を及ぼす。これは、高品質のストリーミング・メディアが必要な場合には、不都合である。従来技術システムのさらに別の欠点は、暗号化プロセスがコンテンツ・データのサイズを変更したら、データ・パケットのコンテンツを作りなおす必要がある点である。これは、時間と資源を消費するプロセスをさらにシステムに付加するから、不都合である。以上のとおりであるから、上述したような従来技術に付随する課題を解決することが求められている。特に、データを効率的かつ安全にストリーミングする方法が求められている。
【００１０】
【課題を解決するための手段】
手短に言えば、本発明に従いここに開示するのは、セキュアなＩＰベースのストリーミングをフォーマットに無関係な方法で実現するシステム、方法、およびコンピュータ読み取り可能な媒体である。本発明の一実例において、本発明に係る方法はコンテンツ・マスタリング・システムでコンテンツ・データと付随するメタデータを含むメディア・ファイルを処理することから開始する。まず、エンコードされたメディア・ファイルからメタデータを読み取る。次に、コンテンツ・データと付随するメタデータを含むエンコードされたメディア・ファイルを暗号化する。次いで、コンテンツ・データをストリーミング・サーバ・システムにメタデータと無関係にロードする。次いで、ストリーミング・サーバ・システムで、エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割したのち、メタデータ中の少なくとも１つのパラメータに従ってストリーミングする。各データ・パケットはエンコードされ／暗号化されたメディア・ファイルの一部と、エンコードされ／暗号化されたメディア・ファイル中の場所に対応するオフセット値とを含んでいる。次いで、データ・パケットをクライアント情報処理システム（すなわちクライアント）にネットワークを介してストリーミングする。
【００１１】
本発明の一実例において、本発明に係る方法はクライアント情報処理システムで（上述した）複数のデータ・パケットをネットワークを介して受信することから開始する。まず、クライアントは各データ・パケットに含まれているオフセット値を用いて各データ・パケットを復号する。次いで、クライアントは各データ・パケットをデコードする。最後に、クライアントは各データ・パケット中のコンテンツ・データをレンダーする。
【００１２】
本発明の上述した実例は、メディア・ファイルをフォーマットと無関係にストリーミングすることができるから、好都合である。エンコードされたメディア・ファイルを暗号化してストリーミングする前に、プリプロセッサがエンコードされたメディア・ファイルから必要なメタデータを読み取る。これにより、サーバはメディア・ファイルのフォーマットをまったく考慮することなく、エンコードされ／暗号化されたメディア・ファイルをストリーミングすることができる。この結果、セキュア・ストリーミング・システムの使用可能性と互換性が向上する。本発明の別の利点は、パケット・ロスが発生しても暗号化／復号プロセスがストリーミング・データの質に影響しない、という点である。この結果、ストリーミング・データの質が向上するとともに、システム効率も向上する。
【００１３】
【発明の実施の形態】
〔用語〕
本発明をより明瞭に指摘して記述するために、本明細書を通じて次に示す用語の定義をできるかぎり守るように努めた。
【００１４】
頭字語「ＵＤＰ」はＵｓｅｒ　Ｄａｔａｇｒａｍ　Ｐｒｏｔｏｃｏｌを指している。ＵＤＰはネットワーク層プロトコル、トランスポート層プロトコル、およびセッション層プロトコルを組み合わせたものであり、インターネット上のデータ交換用に広く用いられている。
【００１５】
頭字語「ＩＰ」はＩｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ　を指している。ＩＰはパケット交換型ネットワーク層プロトコルであり、イーサネット（Ｒ）とインターネット上のデータ交換用に広く用いられている。
【００１６】
頭字語「ＴＣＰ」はＴｒａｎｓｍｉｓｓｉｏｎ　ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌ　を指している。ＴＣＰはＩＰ上に構築されたトランスポート層プロトコルである。ＴＣＰは通常、ＴＣＰ／ＩＰと記載される。
【００１７】
頭字語「ＲＴＰ」はＲｅａｌ　Ｔｉｍｅ　Ｔｒａｎｓｐｏｒｔ　Ｐｒｏｔｏｃｏｌを指している。ＲＴＰは通常、ＵＤＰ上で実行され普通に使用されるストリーミング・プロトコルである。
【００１８】
頭字語「ＲＴＣＰ」はＲｅａｌ　Ｔｉｍｅ　Ｔｒａｎｓｐｏｒｔ　Ｃｏｎｔｒｏｌ　Ｐｒｏｔｏｃｏｌを指している。ＲＴＣＰは通常、ＲＴＰ上で実行されるトランスポート層プロトコルである。
【００１９】
頭字語「ＲＴＳＰ」はＲｅａｌ　Ｔｉｍｅ　Ｓｔｒｅａｍｉｎｇ　Ｐｒｏｔｏｃｏｌを指している。ＲＴＳＰはストリーミング・データをブロードキャストするために提案されたプロトコルである。
【００２０】
頭字語「ＭＰＥＧ」はＭｏｔｉｏｎ　Ｐｉｃｔｕｒｅ　Ｅｘｐｅｒｔｓ　Ｇｒｏｕｐを指している。ＭＰＥＧはマルチメディア圧縮標準を開発し規制している国際的な組織である。ＭＰＥＧ１とＭＰＥＧ２は圧縮アルゴリズムであり、音声ファイル、ビデオ・ファイル、およびマルチメディア・ファイルを圧縮するのに広く用いられている。ＭＰＥＧ１とＭＰＥＧ２はストリーミング・メディア・プロトコルでもある。
【００２１】
頭字語「ＳＥＡＬ」は特殊なストリーム暗号を指している。ストリーム暗号はデータ・ストリーム中の各ビットに適用される対称暗号アルゴリズムである。これに対して、ブロック暗号はデータ・ストリーム中のデータのブロックに適用される。
【００２２】
頭字語「ＤＥＳ」はＤａｔａ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄを指している。ＤＥＳは６４ビットのブロックを処理する５６ビットのブロック暗号である。
【００２３】
頭字語「ＡＥＳ」はＡｄｖａｎｃｅｄ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄを指している。ＡＥＳはＤＥＳの後継として開発された１２８ビット暗号である。ＡＥＳはカウンタ・モードで使用する場合、ブロック暗号またはストリーム暗号として使用することができる。
【００２４】
用語「プレーン」または「クリア」は正常に読み取りまたはレンダーされないように行なう暗号化、圧縮、またはエンコードがなされていないデータを指すのに使用する。すなわち、プレーン・データとは、そのようなデータを読み取るまたはレンダーするのに通常使われるアプリケーションによって読み取りまたはレンダーしうるデータのことである。テキスト・ファイルはワードプロセッサで読み取ることができるから、プレーン・データである。しかし、暗号化されたテキスト・ファイルは、復号アプリケーションで復号しないとワードプロセッサで閲読できないから、プレーン・データではない。
【００２５】
〔概要〕
好適な実施形態による本発明は、フォーマットに無関係な方法でのデータのセキュアＩＰベースのストリーミングを実現することより、従来技術の課題を解決している。本発明の典型的な実施形態は、メディア・ファイルをフォーマットに無関係な方法でクライアントに安全にストリーミングするサーバ・システムを提供するものである。さらに、本発明の典型的な実施形態は、メディア・ファイルをフォーマットに無関係な方法でサーバからセキュア・ストリームを介して受信するクライアント・システムを提供するものである。
【００２６】
上述したように、図１はセキュア・ストリーミング用の典型的な従来技術システムのシステム・アーキテクチャ全体を示すブロック図である。本発明のシステム・アーキテクチャ全体は、図１の従来技術のシステム・アーキテクチャを踏襲している。上述したように、ストリーミング・サーバ・コンピュータ・システム１０８は、クライアントにストリーミングするメディア・ファイルを供給する。コンテンツ・マスタリング・システム１１０はメディア・ファイルを生成し、それをストリーミング・サーバ１０８に供給する。ストリーミング・サーバ１０８は供給されたメディア・ファイルを、クライアント・コンピュータ・システム１０４を利用しているユーザ１０２にネットワーク１０６を介してストリーミングする。
【００２７】
本発明の一実施形態では、クライアント１０４、ストリーミング・サーバ１０８、コンテンツ・マスタリング・システム１１０など、本発明の実施に必要なコンピュータは、少なくとも１つのパーソナル・コンピュータ（ＰＣ）（たとえばＭｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（Ｒ）　９５／９８／２０００／ＭＥ／ＣＥ／ＮＴ／ＸＰオペレーティング・システムまたはＬＩＮＵＸ　オペレーティング・システムが実行されているＩＢＭ　ＰＣワークステーションまたは互換ＰＣワークステーション、Ｍａｃ　ＯＳオペレーティング・システムが実行されているＭａｃｉｎｔｏｓｈ　コンピュータ、または、これらの等価物）、ＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔ：　携帯情報端末）、ゲーム機、その他のコンピュータ処理装置から成る。本発明の別の実施形態では、ストリーミング・サーバ１０８とコンテンツ・マスタリング・システム１１０のコンピュータ・システムは、少なくとも１つのサーバ・システム（たとえばＳｕｎＯＳ　またはＡＩＸ　オペレーティング・システムが実行されているＳＵＮ　Ｕｌｔｒａ　ワークステーション、またはＡＩＸ　オペレーティング・システムが実行さているＩＢＭ　ＲＳ／６０００　ワークステーションおよびサーバ）から成る。
【００２８】
本発明の一実施形態では、図１はクライアント１０４をストリーミング・サーバ１０８に接続するネットワーク１０６を示している。本発明の一実施形態では、ネットワーク１０６は回路交換型ネットワーク、たとえばＰＳＴＮ（Ｐｕｂｌｉｃ　Ｓｗｉｔｃｈｅｄ　Ｔｅｌｅｐｈｏｎｅ　Ｎｅｔｗｏｒｋ：公衆交換電話網）である。本発明の別の実施形態では、ネットワーク１０６はパケット交換型ネットワークである。このパケット交換型ネットワークはＷＡＮ（ｗｉｄｅ　ａｒｅａ　ｎｅｔｗｏｒｋ　、たとえば地球規模のインターネット）、専用ＷＡＮ、ＬＡＮ（ｌｏｃａｌ　ａｒｅａ　ｎｅｔｗｏｒｋ）、通信ネットワーク、またはこれらネットワークの任意の組み合わせである。本発明の別の実施形態では、ネットワーク０１６は有線ネットワーク、無線ネットワーク、ブロードキャスト・ネットワーク、またはポイントツーポイント・ネットワークである。本発明の別の実施形態では、クライアント１０４はストリーミング・サーバ１０８のコンピュータ・システムと同じコンピュータ・システム上で実行している。この場合、ネットワーク１０６は不要になる。
【００２９】
〔本発明の動作〕
図４は本発明の一実施形態のプロセス全体を示す機能図である。図４には、エンコードされたデータ部と付随するメタデータ部とから成るエンコードされたメディア・ファイル４０２が示されている。本発明の一実施形態では、エンコードされたメディア・ファイル４０２は、ＭＰＥＧ　２ビデオ・ファイル、Ｗｉｎｄｏｗｓ（Ｒ）　Ｍｅｄｉａ　Ｐｌａｙｅｒビデオ・ファイル、ＱｕｉｃｋＴｉｍｅ　ビデオ・ファイル、ＭＰ３　音声ファイル、その他ストリーミングしうる任意のメディア・ファイルである。このエンコードされたメディア・ファイル４０２は、コンテンツ・マスタリング・システム１１０（図１参照）においてプリプロセッサ４０４が読み取る。本発明の一実施形態では、プリプロセッサ４０４はハードウェア、ソフトウェア、またはこれらの任意の組み合わせで実現する。プリプロセッサ４０４はコンテンツ・データおよびメタデータの双方が暗号化されたエンコードされ／暗号化されたメディア・ファイル４０６と、プレーン・メタデータ４０５とを生成する。
【００３０】
次いで、ストリーミング・サーバ１０８がエンコードされ／暗号化されたメディア・ファイル４０６とプレーン・メタデータ４０５を読み取る。本発明の一実施形態では、ストリーミング・サーバ１０８は市販のストリーミング・サーバ、たとえばＷｉｎｄｏｗｓ（Ｒ）　Ｍｅｄｉａ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ、ＱｕｉｃｋＴｉｍｅ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ、Ｄａｒｗｉｎ　Ｓｔｒｅａｍｉｎｇ　Ｓｅｒｖｅｒ　などの変更版である。この実施形態では、上述した市販のストリーミング・サーバを変更してストリーミング用のエンコードされ／暗号化されたメディア・ファイル、たとえばエンコードされ／暗号化されたメディア・ファイル４０６を受信しうるようにする必要がある。上述した市販のストリーミング・サーバは、図３のステップ３１０のように受信したメディア・ファイルからメタデータを読み取る代わりに、プレーン・メタデータ、たとえばプレーン・メタデータ４０５を受容しうるようにも変更する必要がある。
【００３１】
次いで、ストリーミング・サーバ１０８がメディア・ファイル４０６を有限個のデータ・パケットに分割する。分割されたデータ・パケットはクライアント１０４にネットワーク１０６を介してストリーミングされる。各データ・パケットはオフセット値を備えている。オフセット値については下で詳述する。クライアント１０４では、ストリーミング・クライアント／復号モジュール４１０がデータ・パケットを受信する。本発明の一実施形態では、ストリーミング・クライアント／復号モジュール４１０はハードウェア、ソフトウェア、またはこれらの任意の組み合わせで実現する。
ストリーミング・クライアント／復号モジュール４１０は、復号されたコンテンツ・データと付随するメタデータとを含む復号されているがエンコードされたままのメディア・ファイル４１２を生成する。
【００３２】
次に、復号されているがエンコードされたままのメディア・ファイル４１２をデコーダ・モジュール４１４に供給する。本発明の一実施形態によれば、デコーダ・モジュール４１４はハードウェア、ソフトウェア、またはこれらの任意の組み合わせで実現することができる。デコーダ・モジュール４１４はプレーン・コンテンツ・デコーダを含むメディア・ファイル４１６を生成する。次いで、メディア・ファイル４１６をレンダラー４１８に供給する。レンダラー４１８はメディア・ファイル４１６を再生するか読み取るかする。本発明の一実施形態では、レンダラー４１８はＭｉｃｒｏｓｏｆｔ　Ｗｉｎｄｏｗｓ（Ｒ）　Ｍｅｄｉａ　Ｐｌａｙｅｒ、ＱｕｉｃｋＴｉｍｅ　、ＷｉｎＡｍｐ、ｉＴｕｎｅｓ、その他上述したメディア・ファイルの再生または閲覧用の任意のコンピュータ・プログラムである。
【００３３】
図５は本発明の一実施形態のプロセス全体の動作と制御フローを示すフローチャートを示す図である。図５は図４の機能図をより詳細に示すものである。図５の制御フローはステップ５０２で開始し、直ちにステップ５０４に進む。ステップ５０４では、コンテンツ・マスタリング・システム１１０において、エンコードされたメディア・ファイル４０２をプリプロセッサ４０４に供給する。ステップ５０６では、プリプロセッサ４０４はメディア・ファイル４０２からプレーン・メタデータ４０５を抽出したのち、エンコードされたメディア・ファイル４０２全体を暗号化する。
【００３４】
本発明の一実施形態では、プリプロセッサ４０４は最小限、エンコードされたメディア・ファイル４０２に付随するビットレート値とメディア種別を抽出する。このビットレート値はメディア・ファイル４０２をクライアント１０４にストリーミングする際に依拠すべき速度をストリーミング・サーバ１０８に指示するものである。本発明の別の実施形態では、プリプロセッサ４０４はメディア・ファイル４０２中のＩフレームの位置を記述したインデックス・データを抽出する。インデックス・データはクライアント１０４にストリーミングするためにメディア・ファイル４０２中にデータを準備する方法をストリーミング・サーバ１０８に指示するものである。本発明の別の実施形態では、プリプロセッサ４０４はメディア・ファイル４０２をクライアント１０４にストリーミングするのに必要な他のすべてのメタデータを抽出する。
【００３５】
本発明の一実施形態では、プリプロセッサ４０４はストリーム暗号アルゴリズム、たとえばＳＥＡＬストリーム暗号またはカウンタ・モードのＡＥＳを用いて、エンコードされたメディア・ファイル４０２を暗号化する。この結果、エンコードされ／暗号化されたメディア・ファイル４０６が得られる。本発明の別の実施形態では、プリプロセッサ４０４は当業者に公知の任意の暗号化アルゴリズムを用いてデータを暗号化する。
【００３６】
ステップ５０８では、エンコードされ／暗号化されたメディア・ファイル４０６とプレーン・メタデータ４０５をストリーミング・サーバ１０８に供給する。上述したように、ストリーミング・サーバ１０８に供給するプレーン・メタデータ４０５、たとえばビットレートまたはＩフレーム・インデックス・データはメディア・ファイル４０２をストリーミングするのに付随する情報を提供するものである。ステップ５１０では、ストリーミング・サーバ１０８はプレーン・メタデータ４０５を用いてエンコードされ／暗号化されたメディア・ファイル４０６をデータ・パケットに分割する。各データ・パケットはオフセット値を含んでいる。次いで、ストリーミング・サーバ１０８はデータ・パケットをクライアント１０４にストリーミングし始める。本発明の一実施形態では、ストリーミング・サーバ１０８はＵＤＰ上で実行されるＲＴＰプロトコルを用いてデータ・パケットをクライアント１０４にストリーミングする。本発明の別の実施形態では、ストリーミング・サーバ１０８はＲＴＰと協働するＲＴＳＰプロトコルまたはＲＴＣＰプロトコルを用いてデータ・パケットをクライアント１０４にストリーミングする。本発明のさらに別の実施形態では、ストリーミング・サーバ１０８はＭＰＥＧ１ストリーミング・プロトコルまたはＭＰＥＧ２ストリーミング・プロトコルを用いてデータ・パケットをクライアント１０４にストリーミングする。
【００３７】
ステップ５１２では、ストリーミング・クライアント／復号モジュール４１０がストリーミング・サーバ１０８から送られてくるデータ・パケットを受信し、各データ・パケット中のオフセット値を使って各データ・パケットを復号し始める。オフセット値はあるデータ・パケットと分割前のメディア・ファイル４０６全体との間の関係を示すものである。オフセット値については下で詳述する。ストリーミング・クライアント／復号モジュール４１０はステップ５０６でプリプロセッサが使用した暗号化アルゴリズムに対応する復号アルゴリズムを使用しなければならない。通常、ステップ５１２の前にクライアント１０４と別の主体との間でセッションを行ない、クライアント１０４はステップ５０６で使われた暗号化アルゴリズムに対応する復号アルゴリズムで使用するキーを受け取る。
【００３８】
本発明の一実施形態では、ステップ５１２の前にクライアント１０４とストリーミング・サーバ１０８との間でハンドシェーク・セッションを行ない、クライアント１０４は受信したデータ・パケットを復号するのに適したキーを受け取る。本発明の別の実施形態では、クライアント１０４は自分が認証を受けている第三者、たとえばクリアリングハウスからの通信を経由して復号に適したキーを受け取る。本発明のさらに別の実施形態では、クライアント１０４は事前定義のアルゴリズムを用いて復号に適したキーを動的に決める。
【００３９】
ステップ５１４では、復号されたがエンコードされたままのメディア・ファイル４１２をデコーダ４１４に供給する。デコーダ４１４は復号されたがエンコードされたままのメディア・ファイル４１２を復号し始める。デコーダ４１４はプレーン・コンテンツ・データを含むメディア・ストリーム４１６を生成する。デコーダ４１４は、レンダラー４１８がレンダーしうるようにメディア・ファイル４１２のフレームを再構築しなければならないから、メディア・ファイル４１２のフォーマットに依存している。ステップ５１６では、メディア・ストリーム４１６をレンダラー４１８に供給する。レンダラー４１８はメディア・ストリーム４１６をレンダーし始める。ステップ５１８で、図５の制御フローは終了する。
【００４０】
本発明のシステムの１つの利点によって、エンコードされたメディア・ファイル４０２のフォーマットをステップ５０６の暗号化プロセスおよびステップ５１０のストリーミング・プロセスと無関係にしうる。メディア・ファイル４０２をストリーミングするのに必要なメタデータ４０５はエンコードされ／暗号化されたメディア・ファイル４０６とは別にストリーミング・サーバ１０８に供給されるから、ストリーミング・サーバ１０８はエンコードされ／暗号化されたメディア・ファイル４０６からこの情報を抽出する必要がない。これにより、ストリーミング・サーバ１０８はメディア・ファイル４０２のフォーマットと無関係に動作することができる。この利点により、システムの使用可能性と拡張性が増大する。本発明のシステムのさらに別の利点は、クライアント１０４がパケット・ロスから容易に回復しうる点である。ステップ５０６の暗号化の間にストリーム暗号を使用するとともに各パケットがオフセット値を含んでいるから、モジュール４１０とデコーダ４１４はデータ・パケット・ロスが発生しても先行するデータ・パケットに再同期することができる。この利点により、クライアント１０４でレンダーされるストリーミング・データの質が高くなる。
【００４１】
本発明のさらに別の利点は、エンコードされ／暗号化されたメディア・ファイル４０６をクライアント１０４のダウンロード用に再利用しうる点である。ストリーミング・サーバ１０８は完全にエンコードされ／暗号化されたメディア・ファイル４０６を受け取るから、同じファイルをストリーミングの代わりにダウンロード用としてもクライアント１０４に供給することができる。これはストリーミングに加えダウンロード用にメディア・ファイルを供給しているコンテンツ供給者にとって好都合である。本発明のシステムのさらに別の利点は、本発明のシステムと互換性をとるために既存のストリーミング・システムを容易に改造しうる点である。留意点を挙げると、ステップ５１２の暗号化はメディア・ファイルのフォーマットとは無関係に行なわれ、暗号化はパケット・レベルで行なわれる。ステップ５１４の復号機能とステップ５１６のレンダー機能は既存のストリーミング・システム中にすでに存在するから、クライアント１０４の既存のストリーミング・システムを復号用のモジュール、たとえばストリーミング・クライアント／復号モジュール４１０を用いて改造するだけでよい。これにより本発明のシステムの導入が容易になるらから、好都合である。
【００４２】
〔パケットの生成〕
図６は本発明の一実施形態においてメディア・ファイルを有限個のデータ・パケットに分割する様子を示すブロック図である。特に、図６は図５のステップ５１０のデータ・パケット生成プロセスの一実施形態を示す図である。図６には、１３１０７２バイトのファイル・サイズから成るメディア・ファイル６０２が示されている。メディア・ファイル６０２は図４のエンコードされ／暗号化されたメディア・ファイル４０６に対応している。図４において述べたように、エンコードされ／暗号化されたメディア・ファイル４０６はストリーミング・サーバ１０８がクライアント１０４にストリーミングするために準備する。本発明の一実施形態では、ストリーミング・サーバ１０８はメディア・ファイル６０２を４０９２バイト（１６メガバイトのトークンリングで現在標準的なパケット・サイズ）のデータ・パケットに分割する。しかし、他の実施形態では、ストリーミング・サーバ１０８が生成するデータ・パケットのサイズはネットワーク１０６を介してクライアント１０４にストリーミングするのに適した任意のサイズにすることができる。
【００４３】
図６には、第１番目のデータ・パケット６０４、第２番目のデータ・パケット６０６、および第３２番目のデータ・パケット６０８が示されている。メディア・ファイル６０２のサイズは１３１０７２バイトであるから、ストリーミング・サーバ１０８はメディア・ファイル６０２を４０９２バイトの等しいサイズの３２個のデータ・パケットに分割する。したがって、データ・パケット６０４はメディア・ファイル６０２の第１番目の４０９２バイトを含み、データ・パケット６０６はメディア・ファイル６０２の第２番目の４０９２バイトを含み、という具合に、メディア・ファイル６０２の１３１０７２バイトがすべて、３２個のデータ・パケットに分配される。
【００４４】
図６には、各データ・パケットがオフセット値を含んでいる様子も示されている。上述したように、オフセット値はメディア・ファイル６０２中の場所を指示する数である。具体的には、この典型的な実施形態では、あるデータ・パケット中のオフセット値は分割する前のメディア・ファイル６０２において当該データ・パケットの第１バイトが占める位置を指示している。したがって、データ・パケット６０４のオフセット「０」はデータ・パケット６０４の第１バイトがメディア・ファイル６０２の第１番目のバイトであることを示している。さらに、データ・パケット６０６のオフセット「４０９６」はデータ・パケット６０６の第１バイトがメディア・ファイル６０２の第４０９６番目のバイトであることを示している。最後に、データ・パケット６０８のオフセット「１２６９７６」はデータ・パケット６０８の第１バイトがメディア・ファイル６０２の第１２６９７６番目のバイトであることを示している。ストリーミング・サーバ１０８がデータ・パケットをクライアント１０４にストリーミングするのにＲＴＰを用いる一実施形態では、データ・パケットのオフセット値はＲＴＰデータ・パケットのペイロード・データ部またはＲＴＰデータ・パケットのヘッダ部に位置している。ステップ５１２で上述したように、クライアント１０４がデータ・パケットを復号すると、データ・パケットのオフセット値はメディア・ファイル６０２をどのように復号すべきであるかを示している。（オフセット値が指し示す位置に復号されたデータ・パケットを挿入することにより、メディア・ファイル６０２を復元することができる。）
【００４５】
〔典型的な実装〕
本発明はハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせで実現することができる。本発明の好適な実施形態によるシステムは１つのコンピュータ・システムから成る集中形態、またはいくつかの相互接続されたコンピュータ・システムに様々な構成要素を分散させた分散形態で実現することができる。あらゆる種類のコンピュータ・システム（またはここで述べた方法を実行するのに適した他の装置）を用いることができる。ハードウェアとソフトウェアの典型的な組み合わせは、ロードし実行したときにここで述べた方法を実行しうるようにコンピュータ・システムを制御するコンピュータ・プログラムを備えた汎用コンピュータ・システムであろう。
【００４６】
本発明の一実施形態はコンピュータ・プログラム製品に組み込むこともできる。そのコンピュータ・プログラム製品は、ここで述べた方法を実装しうるようにする機能をすべて備えているとともに、コンピュータ・システムにロードしたときに上記方法を実行することのできるものである。コンピュータ・プログラム手段すなわちこの文脈におけるコンピュータ・プログラムは、情報処理機能を備えたシステムが直接に、または、（ａ）別の言語への変換、および（ｂ）異なる物質形態での再生産の一方もしくは両方を経たのちに特定の機能を実行しうるように意図された１組の命令から成る任意の言語、コード、または表記法での任意の表現を意味する。
【００４７】
コンピュータ・システムは特に、少なくとも１つのコンピュータと少なくとも１つのコンピュータ読み取り可能な媒体とを備えている。これにより、コンピュータ・システムはコンピュータ読み取り可能な媒体から命令、メッセージまたはメッセージ・パケット、その他のコンピュータ読み取り可能な情報を読み取ることができる。コンピュータ読み取り可能な媒体には不揮発性メモリ、たとえばＲＯＭ、フラッシュ・メモリ、ディスク駆動装置メモリ、その他の永続記憶装置がある。さらに、コンピュータ読み取り可能な媒体には、たとえばＲＡＭ、バッファ、キャッシュ・メモリ、ネットワーク回路のような揮発性記憶装置も含まれる。また、コンピュータ読み取り可能な媒体は一時状態媒体、たとえばネットワーク・リンクおよび／またはネットワーク・インタフェースにおけるコンピュータ読み取り可能な情報を備えている。（「Ａおよび／またはＢ」は「ＡおよびＢ、Ａ、またはＢ」を表わす。）上記ネットワークには、コンピュータ・システムが上記コンピュータ読み取り可能な情報を読み取るのを可能にするものであり、有線ネットワークと無線ネットワークが含まれる。
【００４８】
図７は本発明の一実施形態を実装するのに役立つコンピュータ・システムのハードウェア階層を示すブロック図である。図示したコンピュータ・システムは少なくとも１つのプロセッサ、たとえばプロセッサ７０４を備えている。プロセッサ７０４は通信基盤７０２（たとえば通信バス、クロスオーバー・バー、またはネットワーク）に接続されている。また、この典型的なコンピュータ・システムに関し、ソフトウェアによる様々な実現方法が述べられている。さらに、この記述を読んだあとで、他のコンピュータ・システムおよび／またはコンピュータ・アーキテクチャを用いて本発明を実現する方法が当業者にとって明らかになる。
【００４９】
上記コンピュータ・システムはディスプレイ・インタフェース７０８を備えることができる。ディスプレイ・インタフェース７０８は通信基盤７０２（または図示しないフレーム・バッファ）が出力するグラフィックス・データ、テキスト・データ、その他のデータをディスプレイ装置７１０に転送して表示させる。上記コンピュータ・システムはメインメモリ７０６（ＲＡＭ〔ｒａｎｄｏｍ　ａｃｃｅｓｓ　ｍｅｍｏｒｙ〕が望ましい）と二次メモリ７１２をも備えている。二次メモリ７１２には、たとえばハード・ディスク駆動装置７１４および／または着脱可能記憶装置駆動装置７１６がある。着脱可能記憶装置駆動装置７１６はフレキシブル・ディスク駆動装置、磁気テープ駆動装置、光ディスク駆動装置などを表わしている。着脱可能記憶装置駆動装置７１６は当業者にとって周知の方法で着脱可能記憶装置７１８から読み取り、および／または、それに書き込む。着脱可能記憶装置７１８は着脱可能記憶装置駆動装置７１６によって読み書きされるフレキシブル・ディスク、磁気テープ、光ディスクなどを表わしている。認識しうるように、着脱可能記憶装置７１８にはコンピュータ・ソフトウェアおよび／またはデータを内蔵したコンピュータ使用可能な記憶媒体が含まれる。
【００５０】
別の実施形態では、二次メモリ７１２としてコンピュータ・プログラムその他の命令をコンピュータ・システムにロードするのを可能にする他の同様の手段を用いる。そのような手段には、たとえば着脱可能な記憶装置７２２とインタフェース７２０がある。着脱可能な記憶装置７２２とインタフェース７２０の例として、（ゲーム機に存在するような）プログラム・カートリッジとカートリッジ・インタフェース、（ＥＰＲＯＭやＰＲＯＭのような）着脱可能なメモリ・チップと付随するソケット、その他ソフトウェアとデータを着脱可能な記憶装置７２２からコンピュータ・システムに転送可能にする着脱可能な記憶装置７２２とインタフェース７２０がある。
【００５１】
上記コンピュータ・システムは通信インタフェース７２４をも備えている。通信インタフェース７２４によって、上記コンピュータ・システムと外部装置との間でソフトウェアとデータを転送することが可能になる。通信インタフェース７２４の例としては、モデム、（イーサネット（Ｒ）・カードのような）ネットワーク・インタフェース、通信ポート、ＰＣＭＣＩＡスロットとカードなどがある。通信インタフェース７２４を経由して転送されるソフトウェアとデータは、たとえば電子信号、電磁信号、光信号、その他通信インタフェース７２４が受信しうる信号の形態をしている。これらの信号は通信経路（すなわちチャネル）７２６を経由して通信インタフェース７２４に供給される。このチャネル７２６は信号を搬送するものであるが、ワイヤまたはケーブル、光ファイバ、電話線、携帯電話リンク、ＲＦリンク、および／または、他の通信チャネルを用いて実現することができる。
【００５２】
この文書では、用語「コンピュータ・プログラム媒体」、「コンピュータ使用可能な媒体」、および「コンピュータ読み取り可能な媒体」は一般に、メインメモリ７０６と二次メモリ７１２、着脱可能な記憶装置駆動装置７１６、ハード・ディスク駆動装置７１４に装着されたハード・ディスク、および信号を指すのに用いている。これらのコンピュータ・プログラム製品はコンピュータ・システムにソフトウェアを供給する手段である。コンピュータ読み取り可能な媒体は、コンピュータ・システムが当該コンピュータ読み取り可能な媒体からデータ、命令、メッセージまたはメッセージ・パケット、その他のコンピュータ読み取り可能な情報を読み取るのを可能にするものである。コンピュータ読み取り可能な媒体には、たとえばフレキシブル・ディスク、ＲＯＭ、フラッシュ・メモリ、ディスク駆動装置メモリ、ＣＤ−ＲＯＭ、その他の永続記憶装置などの不揮発性メモリがある。コンピュータ読み取り可能な媒体は、たとえばコンピュータ・システム間でデータやコンピュータ命令などの情報を転送するのに役立つ。さらに、コンピュータ読み取り可能な情報には一時状態媒体中のコンピュータ読み取り可能な情報が含まれる。一時状態媒体とは、たとえばコンピュータがこのようなコンピュータ読み取り可能な情報を読み取るのを可能にするネットワーク・リンクおよび／またはネットワーク・インタフェースであり、有線ネットワークや無線ネットワークが含まれる。
【００５３】
コンピュータ・プログラム（コンピュータ制御論理とも呼ばれる）はメインメモリ７０６および／または二次メモリ７１２に格納されている。コンピュータ・プログラムは通信インタフェース７２４を経由して受け取ることもできる。このようなコンピュータ・プログラムが実行されると、コンピュータ・システムはここで述べた本発明の機能を実行することができる。特に、コンピュータ・プログラムが実行されると、プロセッサ７０４はコンピュータ・システムの機能を実行することができる。したがって、このようなコンピュータ・プログラムはコンピュータ・システムのコントローラを代表している。
【００５４】
以上、本発明の特定の実施形態を開示したけれども、当業者が理解しうるように、本発明の本旨と範囲のうちで上記特定の実施形態を変更することができる。したがって、本発明の範囲は特定の実施形態に限定すべきでない。さらに、特許請求の範囲は本発明の範囲内のすべての応用、変更、および実施形態を包含するものである。
【００５５】
まとめとして以下の事項を開示する。
（１）
サーバ情報処理システムでストリーミング・データを供給する方法であって、コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを受信するステップであって、前記メディア・ファイルが既にエンコードされ／暗号化されている、ステップと、
前記メディア・ファイルに付随するプレーン・メタデータを受信するステップと、
前記エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割するステップであって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、ステップと、
前記メディア・ファイルに付随する前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記複数のデータ・パケットをネットワークを介してクライアントにストリーミングするステップと
を備えた
方法。
（２）
第１の受信するステップが、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルを受信するステップであって、前記メディア・ファイルがストリーム暗号を用いて既に暗号化されている、ステップ
を備えている、
上記（１）に記載の方法。
（３）
第１の受信するステップにおいて、さらに、
前記メディア・ファイルがＭＰＥＧ２圧縮アルゴリズムをを用いて既にエンコードされている、
上記（２）に記載の方法。
（４）
第２の受信するステップが、
前記メディア・ファイルに付随するプレーン・メタデータを受信するステップであって、前記プレーン・メタデータがビットレート値を含んでいる、ステップを備えている、
上記（３）に記載の方法。
（５）
前記ストリーミングするステップが、
前記複数のデータ・パケットをネットワークを介してクライアントにＲＴＰプロトコルを用いてストリーミングするステップ
を備えている、
上記（４）に記載の方法。
（６）
クライアント情報処理システムでストリーミング・データを受信する方法であって、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを要求するステップと、
前記要求したメディア・ファイルに関連付けられた少なくとも１つのデータ・パケットを受信するステップであって、各データ・パケットが既に暗号化され／エンコードされている前記メディア・ファイルの一部を含み、かつ、各データ・パケットが前記メディア・ファイル内の位置に対応するオフセット値を含んでいる、ステップと、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号するステップと、
各データ・パケットをデコードするステップと、
各データ・パケット中のコンテンツ・データをレンダーするステップと
を備えた
方法。
（７）
前記復号するステップが、
各データパケット中のオフセット値を用いて各データ・パケットを復号するステップであって、前記復号にストリーム復号アルゴリズムを用いる、ステップ
を備えている、
上記（６）に記載の方法。
（８）
前記デコードするステップが、
各データ・パケットをデコードするステップであって、前記デコードにＭＰＥＧ２デコード・アルゴリズムを用いる、ステップ
を備えている、
上記（７）に記載の方法。
（９）
サーバ情報処理システムでストリーミング・データを供給するコンピュータ命令を備えたコンピュータ読み取り可能な媒体であって、前記コンピュータ命令が、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを受信する命令であって、前記メディア・ファイルが既にエンコードされ／暗号化されている、命令と、
前記メディア・ファイルに付随するプレーン・メタデータを受信する命令と、
前記エンコードされ／暗号化されたメディア・ファイルを複数のデータ・パケットに分割する命令であって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、命令と、
前記メディア・ファイルに付随する前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記複数のデータ・パケットをネットワークを介してクライアントにストリーミングする命令と
を備えた
コンピュータ読み取り可能な媒体。
（１０）
受信する第１の命令が、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルを受信する命令であって、前記メディア・ファイルがストリーム暗号を用いて既に暗号化されている、命令
を備えている、
上記（９）に記載のコンピュータ読み取り可能な媒体。
（１１）
受信する第１の命令において、さらに、
前記メディア・ファイルがＭＰＥＧ２圧縮アルゴリズムをを用いて既にエンコードされている、
上記（１０）に記載のコンピュータ読み取り可能な媒体。
（１２）
受信する第２の命令が、
前記メディア・ファイルに付随するプレーン・メタデータを受信する命令であって、前記プレーン・メタデータがビットレート値を含んでいる、命令を備えている、
上記（１１）に記載のコンピュータ読み取り可能な媒体。
（１３）
前記ストリーミングする命令が、
前記複数のデータ・パケットをネットワークを介してクライアントにＲＴＰプロトコルを用いてストリーミングする命令
を備えている、
上記（１２）に記載のコンピュータ読み取り可能な媒体。
（１４）
クライアント情報処理システムでストリーミング・データを受信するコンピュータ命令を備えたコンピュータ読み取り可能な媒体であって、前記コンピュータ命令が、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルを要求する命令と、
前記要求したメディア・ファイルに関連付けられた少なくとも１つのデータ・パケットを受信する命令であって、各データ・パケットが既にエンコードされ／暗号化されている前記メディア・ファイルの一部を含み、かつ、各データ・パケットが前記メディア・ファイル内の位置に対応するオフセット値を含んでいる、命令と、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する命令と、
各データ・パケットをデコードする命令と、
各データ・パケット中のコンテンツ・データをレンダーする命令と
を備えた
コンピュータ読み取り可能な媒体。
（１５）
前記復号する命令が、
各データパケット中のオフセット値を用いて各データ・パケットを復号する命令であって、前記復号にストリーム復号アルゴリズムを用いる、命令
を備えている、
上記（１４）に記載のコンピュータ読み取り可能な媒体。
（１６）
前記デコードする命令が、
各データ・パケットをデコードする命令であって、前記デコードにＭＰＥＧ２デコード・アルゴリズムを用いる、命令
を備えている、
上記（１５）に記載のコンピュータ読み取り可能な媒体。
（１７）
ストリーミング・データを供給するサーバ情報処理システムであって、
コンテンツ・データおよび付随するメタデータを含むエンコードされたメディア・ファイルと、
前記コンテンツ・データおよび前記付随するメタデータを含む前記メディア・ファイルを暗号化する暗号化手段と、
既にエンコードされ／暗号化されているメディア・ファイルを複数のデータ・パケットに分割するストリーミング・サーバであって、各データ・パケットが前記メディア・ファイルの一部と前記メディア・ファイル内の位置に対応するオフセット値とを含んでおり、前記メタデータ中の少なくとも１つのパラメータが指示するとおりに、前記データ・パケットをクライアントにネットワークを介してストリーミングするストリーミング・サーバと
を備えた
システム。
（１８）
前記暗号化手段が、
前記コンテンツ・データおよび前記付随するメタデータを含む前記メディア・ファイルを暗号化する暗号化手段であって、暗号化するのにストリーム暗号を用いる、暗号化手段
を備えている、
上記（１７）に記載のシステム。
（１９）
ストリーミング・データを受信するクライアント情報処理システムであって、
コンテンツ・データおよび付随するメタデータを含むメディア・ファイルに対するリクエストと、
少なくとも１つのデータ・パケットであって、各データ・パケットが、既にエンコードされ／暗号化されているメディア・ファイルの一部と、前記メディア・ファイル内の位置に対応するオフセット値とを含んでいる、少なくとも１つのデータ・パケットと、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する復号手段と、
各データ・パケットをデコードするデコーダと、
各データ・パケット中のコンテンツ・データをレンダーするレンダラーとを備えた
システム。
（２０）
前記復号手段が、
各データ・パケット中のオフセット値を用いて各データ・パケットを復号する復号手段であって、復号するのにストリーム復号を用いる、復号手段
を備えている、
上記（１９）に記載のシステム。
【図面の簡単な説明】
【図１】セキュア・ストリーミング用の典型的な従来技術システムのシステム・アーキテクチャ全体を示すブロック図である。
【図２】セキュア・ストリーミング用の従来技術システムのプロセス全体を示す機能図である。
【図３】図２の従来技術システムのプロセス全体の動作と制御フローを示すフローチャートを示す図である。
【図４】本発明の一実施形態のプロセス全体を示す機能図である。
【図５】本発明の一実施形態のプロセス全体の動作と制御フローを示すフローチャートを示す図である。
【図６】本発明の一実施形態においてメディア・ファイルを有限個のデータ・パケットに分割する様子を示すブロック図である。
【図７】本発明の一実施形態を実装するのに有益なコンピュータ・システムを示すブロック図である。
【符号の説明】
１０２　ユーザ
１０４　クライアント・コンピュータ・システム
１０６　ネットワーク
１０８　ストリーミング・サーバ・コンピュータ・システム
１１０　コンテンツ・マスタリング・システム
２０２　エンコードされたメディア・ファイル
２０４　暗号化モジュール
２０６　プレーン・メタデータとエンコードされ／暗号化されたコンテンツ・データを備えたメディア・ファイル
２０９　ストリーミング・クライアント
２１０　復号／デコード・モジュール
２１２　プレーン・コンテンツ・データを含むメディア・ファイル
２１４　レンダラー
４０２　エンコードされたメディア・ファイル
４０４　プリプロセッサ
４０５　プレーン・メタデータ
４０６　エンコードされ／暗号化されたメディア・ファイル
４１０　ストリーミング・クライアント／復号モジュール
４１２　復号されているがエンコードされたままのメディア・ファイル
４１４　デコーダ・モジュール
４１６　プレーン・コンテンツ・デコーダを含むメディア・ファイル
４１８　レンダラー
７０２　通信基盤
７０４　プロセッサ
７０６　メインメモリ
７０８　ディスプレイ・インタフェース
７１０　ディスプレイ装置
７１２　二次メモリ
７１４　ハード・ディスク駆動装置
７１６　着脱可能な記憶装置駆動装置
７１８　着脱可能な記憶装置
７２０　インタフェース
７２２　着脱可能な記憶装置
７２４　通信インタフェース
７２６　通信経路
【図１】
2004007476.tif 000003
【図２】
2004007476.tif 000004
【図３】
2004007476.tif 000005
【図４】
2004007476.tif 000006
【図５】
2004007476.tif 000007
【図６】
2004007476.tif 000008
【図７】
2004007476.tif 000009