(57)【特許請求の範囲】
【請求項１】
複数のネットワークサーバーと、上記複数のネットワークサーバーを複数のユーザ装置に接続するのに使用する通信ネットワークとを備えたシステムであって、上記ネットワークサーバーの少なくとも１つは、
照合データベースを含むメモリストアを備え、上記照合データベースは、複数のデジタル化コンテンツマスターの各々に対応する情報を含み、且つ、上記照合データベースは、各デジタル化コンテンツマスターについて、該デジタル化コンテンツマスターに対応するコンテンツ情報テーブルと、上記デジタル化コンテンツマスターから生成された少なくとも１つのソングプリント識別子とを含み；
上記メモリストアに接続された少なくとも１つのプロセッサを備え、上記少なくとも１つのプロセッサは、
上記複数のユーザ装置のうちの１つのユーザ装置からコンテンツ情報テーブルを受け取り、
上記１つのユーザ装置においてデジタル化コンテンツから生成された少なくとも１つのソングプリント識別子を受け取り、そして
上記照合データベース、上記受け取ったコンテンツ情報テーブル及び上記受け取った少なくとも１つのソングプリント識別子を使用して、上記ユーザ装置における上記デジタル化コンテンツの再生を認証する情報を提供すべきかどうかを判断する、
ように構成された；
ことを特徴とするシステム。
【請求項２】
上記受け取ったソングプリント識別子の各々は、デジタル化コンテンツのコピーから生成された請求項１に記載のシステム。
【請求項３】
上記受け取ったコンテンツ情報テーブル及び少なくとも１つのソングプリント識別子は上記デジタル化コンテンツのコピーに対応し、上記少なくとも１つのプロセッサは、更に、上記受け取ったコンテンツ情報テーブル及び少なくとも１つのソングプリント識別子を使用して上記照合データベースに記憶された対応する情報を有するデジタル化コンテンツマスターと上記デジタル化コンテンツのコピーとの間の相関を識別するように構成された請求項２に記載のシステム。
【請求項４】
上記少なくとも１つのプロセッサは、更に、上記相関するデジタル化コンテンツマスターに対応する上記照合データベースに記憶された情報を使用して上記デジタル化コンテンツコピーを照合するように構成された請求項３に記載のシステム。
【請求項５】
上記コンテンツ情報テーブルは、デジタル化コンテンツの少なくとも１つの長さ情報を含む請求項１に記載のシステム。
【請求項６】
上記少なくとも１つのプロセッサは、更に、上記ユーザ装置にデジタル化コンテンツの複数の領域のうちの少なくとも１つを要求するように構成された請求項１に記載のシステム。
【請求項７】
デジタル化コンテンツの１つ以上の領域に対する要求は、擬似ランダムシーケンスの関数として発生される請求項６に記載のシステム。
【請求項８】
上記擬似ランダムシーケンスは、上記ユーザ装置のネットワークアドレスの関数である請求項７に記載のシステム。
【請求項９】
上記擬似ランダムシーケンスは、１日の時刻の関数である請求項７に記載のシステム。
【請求項１０】
上記擬似ランダムシーケンスは、上記ユーザ装置のネットワークアドレス及び１日の時刻の両方の関数である請求項７に記載のシステム。
【請求項１１】
上記少なくとも１つのプロセッサは、更に、上記ユーザ装置にデジタル化コンテンツの複数のおとり領域のうちの少なくとも１つを要求するように構成された請求項７に記載のシステム。
【請求項１２】
上記デジタル化コンテンツの複数のおとり領域の少なくとも１つに対する要求は、擬似ランダムシーケンスの関数である請求項１１に記載のシステム。
【請求項１３】
上記擬似ランダムシーケンスは、上記ユーザ装置の少なくとも１つのネットワークアドレスの関数である請求項１２に記載のシステム。
【請求項１４】
上記擬似ランダムシーケンスは、１日の時刻の関数である請求項１２に記載のシステム。
【請求項１５】
上記擬似ランダムシーケンスは、上記ユーザ装置の少なくとも１つのネットワークアドレス及び１日の時刻の両方の関数である請求項１２に記載のシステム。
【請求項１６】
上記少なくとも１つのプロセッサは、更に、上記ユーザ装置にデジタル化コンテンツの非おとり領域を１つだけ要求するように構成された請求項１１に記載のシステム。
【請求項１７】
上記照合データベースは、更に、デジタル化コンテンツマスターから生成された１つのソングプリント識別子のみで構成された請求項１に記載のシステム。
【請求項１８】
上記少なくとも１つのプロセッサは、更に、上記受け取ったコンテンツ情報テーブルが上記複数のデジタル化コンテンツマスターのいずれかに対応するコンテンツ情報テーブルに相関するかどうか照合するように構成された請求項１に記載のシステム。
【請求項１９】
上記少なくとも１つのプロセッサは、更に、上記受け取ったコンテンツ情報テーブルが上記複数のデジタル化コンテンツマスターのいずれかに対応するコンテンツ情報テーブルに一致するかどうか照合するように構成された請求項１に記載のシステム。
【請求項２０】
上記少なくとも１つのプロセッサは、更に、上記受け取ったソングプリント識別子が上記複数のデジタル化コンテンツマスターのいずれかから生成されたソングプリント識別子に相関するかどうか照合するように構成された請求項１に記載のシステム。
【請求項２１】
上記少なくとも１つのプロセッサは、更に、上記受け取ったソングプリント識別子が上記複数のデジタル化コンテンツマスターのいずれかから生成されたソングプリント識別子に一致するかどうか照合するように構成された請求項１に記載のシステム。
【請求項２２】
複数のネットワークサーバーと、上記複数のネットワークサーバーを複数のユーザ装置に接続するのに使用する通信ネットワークとを備えたシステムであって、上記ネットワークサーバーの少なくとも１つは、
照合データベースを含むメモリストアを備え、上記照合データベースは、複数のデジタル化コンテンツマスターの各々に対応する情報を含み、且つ、上記照合データベースは、各デジタル化コンテンツマスターについて、該デジタル化コンテンツマスターに対応するコンテンツ情報テーブルと、上記デジタル化コンテンツマスターから生成された少なくとも１つのソングプリント識別子とを含み；
上記メモリストアに接続された少なくとも１つのプロセッサを備え、上記少なくとも１つのプロセッサは、
上記複数のユーザ装置のうちの１つのユーザ装置からコンテンツ情報テーブルを受け取り、
上記１つのユーザ装置においてデジタル化コンテンツから生成された少なくとも１つのソングプリント識別子を受け取り、そして
上記受け取ったコンテンツ情報テーブルが上記照合データベースのコンテンツ情報テーブルのいずれかに相関するかどうかの関数として、上記１つのユーザ装置にデジタル化コンテンツの複数の領域のうちの少なくとも１つを要求する、
ように構成された；
ことを特徴とするシステム。
【請求項２３】
上記少なくとも１つのプロセッサは、更に、上記受け取ったコンテンツ情報テーブルが上記複数のデジタル化コンテンツマスターのいずれかに対応するコンテンツ情報テーブルに一致するかどうか照合するように構成された請求項２２に記載のシステム。
【請求項２４】
複数のネットワークサーバーと、上記複数のネットワークサーバーを複数のユーザ装置に接続するのに使用する通信ネットワークとを備えたシステムであって、上記ネットワークサーバーの少なくとも１つは、
照合データベースを含むメモリストアを備え、上記照合データベースは、複数のデジタル化コンテンツマスターの各々に対応する情報を含み、且つ、上記照合データベースは、各デジタル化コンテンツマスターについて、該デジタル化コンテンツマスターに対応するコンテンツ情報テーブルと、上記デジタル化コンテンツマスターに対応する少なくとも１つのソングプリント識別子とを含み；
上記メモリストアに接続された少なくとも１つのプロセッサを備え、上記少なくとも１つのプロセッサは、
上記複数のユーザ装置のうちの１つのユーザ装置からコンテンツ情報テーブルを受け取り、
上記１つのユーザ装置においてデジタル化コンテンツから生成された少なくとも１つのソングプリント識別子を受け取り、そして
上記受け取ったソングプリント識別子が上記照合データベースのソングプリント識別子のいずれかに相関するかどうかの関数として、上記１つのユーザ装置にデジタル化コンテンツの複数の領域のうちの少なくとも１つを要求する、
ように構成された；
ことを特徴とするシステム。
【請求項２５】
上記少なくとも１つのプロセッサは、更に、上記受け取ったソングプリント識別子が上記照合データベースのソングプリント識別子のいずれかに一致するかどうか照合するように構成された請求項２４に記載のシステム。
【請求項２６】
複数のネットワークサーバーと、上記複数のネットワークサーバーを複数のユーザ装置に接続するのに使用する通信ネットワークとを備えたシステムであって、上記ネットワークサーバーの１つは、
照合データベースを含むメモリストアを備え、上記照合データベースは、複数のデジタル化コンテンツマスターの各々に対応する情報を含み、且つ、上記照合データベースは、各デジタル化コンテンツマスターについて、該デジタル化コンテンツマスターに対応するコンテンツ情報テーブルと、上記デジタル化コンテンツマスターに対応する少なくとも１つのソングプリント識別子とを含み；
上記メモリストアに接続された少なくとも１つのプロセッサを備え、上記少なくとも１つのプロセッサは、
上記複数のユーザ装置のうちの１つのユーザ装置からコンテンツ情報テーブルを受け取り、
上記１つのユーザ装置においてデジタル化コンテンツから生成された少なくとも１つのソングプリント識別子を受け取り、そして
上記受け取ったコンテンツ情報テーブル及び少なくとも１つのソングプリント識別子が上記照合データベースのコンテンツ情報テーブル及びソングプリント識別子のいずれかに相関するかどうかの関数として、上記１つのユーザ装置にデジタル化コンテンツの複数の領域のうちの少なくとも１つを要求する、
ように構成された；
ことを特徴とするシステム。
【請求項２７】
上記少なくとも１つのプロセッサは、更に、上記受け取ったコンテンツ情報テーブルが上記照合データベースのコンテンツ情報テーブルのいずれかに一致し且つ上記受け取ったソングプリント識別子が上記照合データベースのソングプリント識別子のいずれかに完全に相関するかどうか照合するように構成された請求項２６に記載のシステム。
【請求項２８】
通信ネットワークと、複数のネットワークサーバーのうちの少なくとも１つのネットワークサーバーと、複数のユーザ装置のうちの少なくとも１つのユーザ装置とを備え、上記少なくとも１つのネットワークサーバーが、複数のデジタル化コンテンツマスターの各々に対応する情報を含む照合データベースを有し、且つ、上記照合データベースが、各デジタル化コンテンツマスターについて、該デジタル化コンテンツマスターに対応するコンテンツ情報テーブルと、上記デジタル化コンテンツマスターから生成された少なくとも１つのソングプリント識別子とを含むシステムにおいて、媒体に記憶されたデジタル化コンテンツを識別する方法であって、
上記ネットワークサーバーが、１つのユーザ装置からコンテンツ情報テーブルを受け取り、
上記ネットワークサーバーが、上記１つのユーザ装置においてデジタル化コンテンツから生成された少なくとも１つのソングプリント識別子を受け取り、そして
上記ネットワークサーバーが、上記照合データベース、上記受け取ったコンテンツ情報テーブル及び上記受け取った少なくとも１つのソングプリント識別子を使用して、上記デジタル化コンテンツの再生を認証する情報を提供すべきかどうかを判断する、
という段階を備えた方法。
【請求項２９】
上記受け取ったコンテンツ情報テーブルが上記照合データベースのコンテンツ情報テーブルのいずれかに相関するかどうか照合する段階を更に備えた請求項２８に記載の方法。
【請求項３０】
上記受け取ったコンテンツ情報テーブルが上記照合データベースのコンテンツ情報テーブルのいずれかに一致するかどうか照合する段階を更に備えた請求項２８に記載の方法。
【請求項３１】
上記受け取った少なくとも１つのソングプリント識別子が上記照合データベースのソングプリント識別子のいずれかに相関するかどうか照合する段階を更に備えた請求項２８に記載の方法。
【請求項３２】
上記受け取った少なくとも１つのソングプリント識別子が上記照合データベースのソングプリント識別子のいずれかに一致するかどうか照合する段階を更に備えた請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オンラインのデジタルコンテンツディストリビューションの分野に係り、より詳細には、通信ネットワークにわたって音楽を配信し認証するためのシステム及び方法に係る。
【背景技術】
【０００２】
インターネットは、ユーザや会社がデジタル化コンテンツを共用するためのハイウェイを形成した。オンラインサービスは、サーバーに記憶されたデジタル化コンテンツを多数のユーザがインターネットを経て共用するのを許す。又、オンラインサービスは、インターネット接続されたリポジトリに記憶されたデジタル化コンテンツをユーザが再生するのを許す。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オンラインサービスプロバイダーにとって、デジタル化コンテンツへのユーザアクセスを許す前に、ＣＤ又はＤＶＤのようなデジタル化コンテンツの物理的なコピーをユーザが有するかどうか検出し照合するのが好都合である。
【課題を解決するための手段】
【０００４】
本発明のシステムは、コンピュータのＣＤオーディオ適合ドライブに常駐するコンパクトオーディオディスク（以下「ＣＤオーディオ」又は「ＣＤ」という）のようなデジタル化コンテンツを識別して認証し、そしてＣＤが本物であり又は厳密なレプリカであることを照合する。しかしながら、本発明は、ＣＤの照合に限定されない。本発明のある実施形態では、ＤＶＤや、物理的ディスク、ディスクドライブ、又はソリッドステートメモリデバイスを含む他の媒体に記憶されたデジタル化コンテンツを照合することができる。本発明は、パーソナルコンピュータ、ＣＤプレーヤやＤＶＤプレーヤのようなディスクプレーヤ、及び他の電子装置を含む多数の電子装置において実施することができる。本発明によるある実施形態では、マスターＣＤのセットから照合データベースが形成される。照合データベースは、ＣＤの記録と、コンテンツ識別子テーブル（以下「ＴＯＣ」）としても知られているそれに対応するコンテンツテーブルと、ＣＤから選択された対応するオーディオデータとを備えている。
【０００５】
照合データベースが形成された後に、マスターＣＤに対するＣＤの照合を行うことができる。ＣＤは、最初に、ＣＤからのＴＯＣを照合データベースに対して一致させることにより識別される。ＴＯＣデータを使用して、システムは、１つ以上のマスターＣＤを同様のＴＯＣで識別する。識別されたＣＤは、次いで、ＣＤから選択されたオーディオデータを、マスターＣＤのセットから形成された照合データベースに対して一致させることにより認証される。
【発明を実施するための最良の形態】
【０００６】
本発明の以下の実施形態では、同じ参照番号を使用して同じ要素を示す。実施形態の特徴が単一のシステムに組み込まれる場合には、これらの要素を共用することができ、これらの要素は、ここに述べる実施形態の全ての機能を実行する。
図１において、サーバー１１１及びクライアント１２１は、デジタルコンテンツを識別及び認証又は照合するために通信ネットワーク１１３を経て互いに通信する。本発明の一実施形態では、ユーザは、ＣＤを照合のためにＣＤリーダー１２３に挿入し、クライアント１２１は、ＣＤリーダー１２３を必要に応じて制御してＣＤからデータを収集する。クライアント１２１は、データをサーバー１１１へ通信する。
【０００７】
クライアント１２１は、ＣＤリーダー１２３からＣＤを読み取るようにプログラムされた汎用パーソナルコンピュータである。クライアント１２１は、通常、リモート位置１１７に配置され、これは、通信リンク１１９を経てネットワーク１１３に接続される。一実施形態では、クライアント１２１は、インターネットユーザによりそれらの家やオフィスから計算を行うのに使用される。通信リンク１１９は、インターネットサービスプロバイダーや、ブロードバンドサービス、例えば、ＤＳＬ又はケーブルインターネットアクセスに接続されるダイヤルインモデムでよい。
【０００８】
サーバー１１１は、クライアント１２１からの情報を受け取って、照合データベース１０６に記憶された情報で照合するようにプログラムされる。サーバー１１１は、通常、各々ＣＤリーダー１２３及び１３１を伴うクライアント１２１及び１２９からの多数の接続を容易にするようにプログラムされ、通信リンク１１５を経てネットワーク１１３に接続される。又、クライアント１２１及び１２９は、通信リンク１１９及び１２７を各々経てネットワーク１１３に接続される。通常、サーバー１１１及び照合データベース１０６は、システム性能を最適化するためにサーバーファシリティ１０１に配置される。別の実施形態では、サーバー１１１は、照合データベース１０６とは個別のファシリティに配置されてもよい。本発明の好ましい実施形態では、サーバー１１１は、ＵＮＩＸオペレーティングシステムを実行する高性能マイクロコンピュータである。
【０００９】
サーバー１１１がクライアント１２１に対してＣＤを識別し照合することができる前に、それに対応するＣＤデータを照合データベース１０６に記憶しなければならない。エンコードコンピュータ１０３は、ＣＤリーダー１０５からマスターＣＤを読み取り、そしてＣＤに関するデータを照合データベース１０６に記憶する。或いは又、ＣＤに関するデータは、マスターＣＤに見られるオーディオデータのコピーを含むコンピュータに記憶されたデジタルオーディオファイルから計算される。
【００１０】
照合データベース１０６は、照合テーブル１０７及び識別テーブル１０９で構成される。照合データベース１０６の形成は、エンコードコンピュータ１０３により識別及び照合されるべき各ＣＤに対してエントリーを計算してデータベースに記憶することにより遂行される。各データベースエントリーは、オリジナルの本物のＣＤタイトルから抽出されたＴＯＣ及びオーディオデータから計算された識別及び照合データの多数のエレメントを含む。
【００１１】
本発明の一実施形態では、システムの種々の要素及びコンピュータは、参考としてここに取り上げる「Internetworking with TCP/IP」、第３版、Douglas E. Comer（１９９５年）に掲載された「送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）」のような一般的な接続指向のプロトコルを使用して互いに通信する。しかしながら、本発明は、ＴＣＰ／ＩＰや、ここに述べる他の特定のネットワークアーキテクチャー、ソフトウェア又はハードウェアに限定されない。本発明の原理は、本発明の時点での現状技術に匹敵するか又はそれに取って代わる他の通信プロトコル、ネットワークアーキテクチャー、ハードウェア及びソフトウェアにも適用できる。
【００１２】
図２において、照合データベース１０６は、２つのテーブル、即ち識別テーブル１０９及び照合テーブル１０７で構成される。識別テーブル１０９の各エントリーは、対応するＣＤタイトルからのＴＯＣデータのサブセットを含み、各対応するＣＤタイトルに対してＴＯＣデータの多数のサブセットが記憶される。このデータは、ディスク照合手順の識別段階中に、識別されているＣＤと同様のＴＯＣを有するＣＤを迅速に探索するために使用される。識別テーブル１０９は、次のフィールドで構成される。
【００１３】
ディスク識別子：データベース形成中に指定され、ＣＤを独特に識別する値。
ＴＯＣ識別子：ＣＤ  ＴＯＣから計算されたハッシュ値。
ディスク長さ：ＣＤのオーディオ部分の全長（ブロック単位）。
最初のトラック長さ：ＣＤ上の最初のオーディオトラックの長さ（ブロック単位）。
最後のトラック長さ：ＣＤ上の最後のオーディオトラックの長さ（ブロック単位）。
最短トラック長さ：ＣＤ上の最短オーディオトラックの長さ（ブロック単位）。
最長トラック長さ：ＣＤ上の最長オーディオトラックの長さ（ブロック単位）。
ディスクソングプリント(songprint)：ＣＤオーディオデータから計算された識別値。
【００１４】
いったん計算されると、全識別テーブル１０９は、高速ルックアップを容易にするためにディスク長さフィールドの値を使用して増加順又は減少順に分類され記憶される。
図２において、照合テーブル１０７は、エンコードコンピュータ１０３により対応ＣＤタイトルからコピーされ計算された識別及び照合データで構成される。このデータは、ディスク照合手順の間に、照合されているＣＤの認識及び有効性をテストするのに使用される。照合テーブル１０７は、多数の個々のキーで構成される。各キーは、エンコードコンピュータ１０３により計算され、照合テーブル１０７に記憶される。各キーの値は、照合テーブル１０７により命令されて、ＣＤリーダー１０５によりＣＤのある領域から読み取られたオーディオデータから導出される。照合テーブル１０７のエントリーは、次のフィールドで構成される。
【００１５】
記述データ：ＣＤタイトル及びアーティストを含む。
ディスク識別子：データベース形成中に指定され、ＣＤを独特に識別する値。
ＴＯＣ識別子：ＣＤ  ＴＯＣから計算されたハッシュ値。
ディスクソングプリント：ＣＤオーディオデータから計算された識別値。
トラックデータ：トラックごとに次のフィールドが含まれる。
長さ：トラックの長さ（ブロック単位）。
整列ガイドデータ：トラックのオーディオデータから導出されるデータ。
タイトル：トラックのテキストタイトル。
トラックソングプリント：トラックのオーディオデータから計算された識別値。
キーデータ：キーごとに次のフィールドが含まれる。
トラック：キー領域を含むトラックの数。
オフセット：指定トラック内のキー領域の位置。
整列ガイドデータ：キー領域のオーディオデータから導出されたデータ。
ハッシュデータ：キー領域のオーディオデータから計算されたハッシュ値。
キーソングプリント：キー領域のオーディオデータから計算された識別値。
【００１６】
エンコードコンピュータ１０３は、ＴＯＣ識別子を計算する。ＴＯＣ識別子は、４バイト値として表わされたＣＤ上の各トラックの長さ（ブロック単位）の連結のＳＨＡ−１（セキュア・ハッシュ・アルゴリズム）を使用して暗号ハッシュ値を計算し、そしてそれにより得られる２０バイトのハッシュ値を８バイトに裁断することにより、ＣＤ  ＴＯＣ値から計算される。
【００１７】
エンコードコンピュータ１０３は、ソングプリント(songprint)を計算する。ソングプリントは、デジタルオーディオ記録の領域のスペクトルコンテンツを表わす１２８バイト値である。これは、次のステップにより計算される。
２つのステレオチャンネルを平均化して、単一チャンネルを形成する。
ソングプリント領域を５１２バイトのチャンクに分割する。部分チャンクを破棄する。更に、チャンクごとに、次の計算を行う。
直線的な回帰を計算し、その結果を除去することにより、データをデトレンド(detrend)する。
ハンニング(Hanning)ウインドウをデータに適用する。
データに対して高速フーリエ変換（ＦＦＴ）を計算する。
その結果のＤＣ成分を破棄する。
残りのスペクトル成分各々の２乗の大きさを計算する。
スペクトル成分を４のグループに分割し、平均化して、６４個のスペクトル成分を形成する。
ソングプリント値の最初の６４バイトの各々は、次のように計算される。
各チャンクから生じる６４個のスペクトル成分各々の平均を計算する。
この平均は、ｌｏｇ１０を計算して１０を乗算することにより対数値に変換する。１ｘ１０-20未満の値には、値−２００を指定する。それにより得られたｄＢ値をスケーリングし、シフトし、次いで、符号のない整数バイト値に変換する。スケーリング及びシフト量は、単一バイトで表現し得る範囲（０−２５５）内で解像度を最大にするように選択する。
ソングプリント値の最終的な６４バイトの各々は、次のように計算される。
各チャンクから得られた６４個のスペクトル成分各々の標準偏差を計算する。
この標準偏差は、ｌｏｇ１０を計算して１０を乗算することで対数値に変換する。
それにより得られたｄＢ値をスケーリングし、シフトし、次いで、符号のない整数バイト値に変換する。スケーリング及びシフト量は、単一バイトで表現し得る範囲（０−２５５）内で解像度を最大にするように選択する。
【００１８】
エンコードコンピュータ１０３は、その領域を使用して、ソングプリントを発生し、その領域は、ディスク及びトラックソングプリントと、キーソングプリントとの間で変化する。エンコードコンピュータ１０３は、先ず、トラックの始めに「サイレント」オーディオの長さを識別することによりソングプリント領域を選択する。これは、オーディオデータの４０９６バイトブロックを読み取り、そしてサンプルの振幅の実効値（ＲＭＳ）を計算することにより達成される（この計算中に各サンプルに対して２つのチャンネルを平均化する）。
【００１９】
トラックの初期サイレント部分の終りは、規定のスレッシュホールドを越えるＲＭＳ振幅を有する第１ブロックを見出すことにより探索される。次いで、規定のオフセットを追加することにより、ソングプリント領域の開始が計算される。ソングプリント領域の長さは、規定値である。
トラックのソングプリントの場合に、初期サイレントの終りを検出するためのＲＭＳ振幅スレッシュホールドは、０．００１である。初期サイレントの終りからソングプリント領域の始めまでの規定のオフセットは、３０秒である（３０＊７５＊２３５２バイト）。ソングプリント領域の規定長さは、５秒である（５＊７５＊２３５２バイト）。
【００２０】
ディスクのソングプリントは、ＣＤの最初のトラックについてはトラックソングプリントとして定義される。キーソングプリント領域は、キー領域と同じである。これは、サイレント検出も領域オフセットも適用されないからである。キーソングプリント領域の長さは、キー領域長さと同様に、４０９６バイトである。
エンコードコンピュータ１０３は、トラック整列ガイドを発生する。このトラック整列ガイドは、トラックを通るオーディオデータブロックの中央から計算された４バイトサンプルサーチ値及び４バイトハッシュ値を含む。トラックの長さがブロック奇数個分である場合には、中間点のブロックが使用される。トラックの長さがブロック偶数個分である場合には、中間点の直後のブロックが使用される。
【００２１】
４バイトのサンプルサーチ値は、オーディオデータブロックの最初の４バイトである。４バイトのハッシュ値は、ＳＨＡ−１アルゴリズムを使用してオーディオデータブロックの最初の６４バイトをハッシュ処理し、それにより得られたものを４バイトに裁断することにより、計算される。
エンコードコンピュータ１０３は、キー整列ガイドを発生する。キー整列ガイドは、キー領域内に含まれたオーディオデータから取り出された８個の２バイトサンプルより成る。これらサンプルは、キー領域内に含まれた第１のサンプルでスタートして２９２のサンプル間隔で取り出される（サンプルオフセット０、２９２、５８４、８７６、１１６８、１４６０、１７５２及び２０４４）。
【００２２】
エンコードコンピュータ１０３は、キーハッシュデータを発生する。キーハッシュデータは、ＳＨＡ−１アルゴリズムを使用してキー領域内に含まれた全てのバイトをハッシュ処理し、そして全２０バイトハッシュ結果を記憶することにより計算される。
図１において、照合手順は、照合されるべきＣＤが配置されたクライアント１２１と、図３に詳細に示すように照合データベース１０６に問合せするサーバー１１１との間で交換される一連のプロセス及びメッセージにより達成される。クライアント１２１及びサーバー１１１は、ネットワーク１１３を使用して通信する。本発明の別の実施形態では、サーバー１１１は、照合データベース１０６を内部に含んでいる。
【００２３】
図３のブロック３０１において、クライアントは、照合プロセスを開始する。通常、クライアントは、ＣＤリーダー１２３にディスクが挿入されたときにプロセスを開始するようにプログラムされる。ブロック３０３において、クライアントは、クライアントオペレーティングシステムの適当な特徴を使用してＣＤから「テーブル・オブ・コンテンツ（ＴＯＣ）」データを読み取る。又、ブロック３０３では、ＴＯＣデータがフォーマットされて、「初期要求」メッセージに入れられる。この初期要求メッセージは、ＴＯＣデータのサブセット又は完全なＴＯＣデータを含むようにフォーマットされる。又、ブロック３０３では、クライアントは、前記したアルゴリズムに基づいてＣＤに対するディスクソングプリントを計算し、そしてそれを「初期要求」メッセージに入れ、これがサーバーに送信される。
【００２４】
ブロック３０５において、クライアントから「初期要求」メッセージが受け取られると、「初期要求処理」がサーバーにより実行される。サーバーは、クライアントから「初期要求」メッセージを受け取り、そしてＴＯＣ及びディスクソングプリントを抽出するように進行する。次いで、サーバーは、識別テーブルを使用して、クライアントにより送られたＴＯＣ及びディスクソングプリントに最良に一致するエントリーを探索する。サーバーは、識別テーブル（ディスクの長さで分類された）の２進サーチを実行して、ＴＯＣで指定されたディスク長さにほぼ一致するエントリーを見出す。
【００２５】
ブロック３０５では、上述した識別テーブルのエントリーで始めて、サーバーは、全ての隣接エントリーを、クライアントにより与えられたＴＯＣ及びディスクソングプリントと比較する。各エントリーに対して、サーバーは、先ず、ＴＯＣにより指定されたディスク長さ及びテーブルエントリーに記録されたディスク長さが指定の範囲内にあるかどうかテストする。次いで、サーバーは、テーブルエントリーの最初の、最後の、最短の及び最長のトラックフィールドと、ＴＯＣからの対応データとの間の差の実効値（ＲＭＳ）を計算する。このＲＭＳ差は、指定の範囲内に入らねばならない。最終的に、サーバーは、テーブルエントリーソングプリントにおける対応データポイント（各々１２８バイト）と、クライアントにより与えられたディスクソングプリントとの間のＲＭＳ差を計算する。
【００２６】
ブロック３０７では、サーバーは、ソングプリントと、クライアントにより与えられたものとの間のＲＭＳ差が最小の、即ち最良一致の、識別テーブルのエントリーを選択する。このＲＭＳ差が規定の範囲内に入らない場合には、照合が失敗であり、サーバーは、ブロック３０９において「ディスク見つからず」メッセージを構成する。最良一致に対するＲＭＳが規定の範囲内に入る場合には、プロセスがブロック３１１へ進む。
【００２７】
別の実施形態では、サーバーは、ディスク長さ、即ち最初の、最後の、最短の及び最長のトラックフィールドの各々と、ソングプリントの１２８バイトの各々とに対して、クライアントにより与えられる値と、データベースにより与えられる値との間のＲＭＳ差を計算し、そしてこれらの個々の差を重み付けし、クライアントにより与えられるデータと、データベースにより与えられるデータとの間の全体的な適合性を表わす単一の重み付けされた差の値を計算する。サーバーは、最小の重み付けされた差を生じさせる識別テーブルのエントリーを最良の一致として選択する。別の実施形態では、サーバーは、重み付けされた差の値が規定のスレッシュホールドより小さい全てのエントリーを選択し、そしてこれらの一致の各々を照合するように試みる。
【００２８】
ブロック３１１では、サーバーは、最良一致の値に対応する照合テーブルのエントリーを探索する。照合テーブルの各エントリーは、多数の使用可能な照合キーを含んでいるので、ブロック３１３において、サーバーは、現在のディスク照合に使用されるキー候補の小さなサブセットを選択する。このサブセットは、クライアントのネットワークアドレスと、半日解像度に減少された現在時間とをシードとする擬似ランダムシーケンスを使用して選択される（即ち、所与の半日の間に所与のネットワークアドレスに対して同じキー候補が選択される）。
【００２９】
ブロック３１３では、キー領域（各キーが計算されたところのＣＤにおけるオーディオデータの領域）が、この擬似ランダムシーケンスを使用して拡大され、従って、実際のキー領域は、その拡大されたキー領域内の擬似ランダムオフセットでスタートする。照合テーブルエントリーから選択される真のキー候補に加えて、アドレス／時間をシードとする擬似ランダムシーケンスを使用して、おとり(decoy)キーのセットも発生される（即ち、所与の半日の間に所与のネットワークアドレスに対して同じおとりキー候補が選択される）。これらのおとりキーは、真のキーが導出されるところのオーディオデータ領域に重畳しないように選択される。別の実施形態では、ランダムシーケンスを使用して、キーを選択及び調整すると共に、おとりキーを発生して、クライアントによる各照合の試みでサーバーが照合領域の異なるセットを指定するようにさせる。
【００３０】
次いで、サーバーは、照合応答メッセージを構成するように進む。この照合応答メッセージは、クライアントからの初期要求メッセージに応答してサーバーにより構成される。又、これは、以下に述べるように照合テストに失敗するクライアントからの照合要求メッセージにも応答して構成される。
又、ブロック３１３では、初期要求処理中に選択されたキー候補から、サーバーは、１つ以上のキーを選択し、そして各キー領域に対するオフセット及び長さデータを照合応答メッセージに含ませる。キー候補は、単一のディスク照合中に一度だけ使用される。全てのキー候補が使用されそしてディスクが首尾良く照合されなかった場合には、照合は失敗となる。
【００３１】
初期要求処理中に選択されたおとりキー候補から、サーバーは、１つ以上のおとりキーを選択し、そして各キー領域に対するオフセット及び長さデータを照合応答メッセージに含ませる。おとりキー候補は、単一のディスク照合中に一度だけ使用される。サーバーは、ディスクキーの前におとりキーが尽きることがないように初期要求処理中に充分なおとりキーを発生する。
【００３２】
ディスク照合プロセスの状態は、暗号化されて、照合応答メッセージに含まれる。これは、ディスクの推定認識と、選択されたキー候補と、発生されたおとりキー候補と、キー使用情報（どのキー／おとりがクライアントから要求されたか）とを含む。状態情報は、照合要求メッセージにおいてクライアントによりサーバーへ返送され、サーバーにより暗号解読され、そして照合プロセスの状態を回復するのに使用される。照合データベースエントリーに記憶されたトラック整列ガイドデータは、照合応答メッセージに含まれる。最終的に、照合応答メッセージは、クライアントに送信される。
【００３３】
ブロック３１５では、サーバーにより要求されたキー領域の各々に対し、クライアントは、どのトラックに領域が存在するか決定し、トラックの整列をチェックし、そして要求されたデータを読み取る。クライアントは、そのトラックの中点からブロックを読み取り、そしてサーバーにより供給されたトラック整列ガイドデータに一致するオーディオデータを探索するよう試みることにより、トラック整列を開始する。トラック整列データが見つからない場合には、クライアントは、整列データが見つかるか又は所定数のブロックがサーチされるまで、隣接ブロックを読み取りサーチする。
【００３４】
クライアントは、次いで、トラック整列データの予想位置と、その明確な位置との間のオフセットを計算する。計算された整列オフセットによりその要求されたオーディオデータ領域の位置を調整した後に、クライアントは、ディスクからオーディオデータを読み取り、そしてそれを照合要求メッセージに含ませる。サーバーがクライアント状態を保存しないので、クライアントは、ＴＯＣデータを照合要求メッセージに含ませる。サーバーにより照合応答メッセージに含まれたエンコードされた状態情報は、クライアントにより、変更されずに、照合要求メッセージにコピーされる。この照合要求メッセージは、サーバーへ送信される。別の実施形態では、クライアント状態情報は、サーバーによりクライアント照合セッションの間に維持され、クライアントに送信されたりクライアントから受け取られたりしない。
【００３５】
ブロック３１７では、サーバーは、クライアントから照合応答メッセージを受け取り、そしてキー領域データを抽出するように進む。次いで、クライアントから照合要求メッセージが受け取られたときに、照合要求処理が実行される。エンコードされた状態情報が抽出され、デコードされ、そして照合プロセスの状態を回復するのに使用される。クライアントにより供給される各キー領域に対して、サーバーは、クライアントから供給されたデータを、照合テーブルのディスクエントリーに記憶された対応するキーデータに対してテストする。おとりキー領域に対してクライアントにより供給されたデータは破棄される。
【００３６】
次いで、サーバーは、キー整列ガイドデータの対応値に一致する値を最も多く備えた領域を探索することにより、クライアントにより供給される拡大されたキー領域データ内で実際のキー領域を探索するように試みる。サーバーは、整列ステップで識別されたキー領域のハッシュ値を、ＳＨＡ−１アルゴリズムを使用して計算する。このハッシュ値は、照合テーブルのディスクエントリーにキーデータと共に記憶された値と比較される。値が厳密に一致する場合には、照合が成功であり、サーバーは、照合された応答メッセージを構成する。一方、値が厳密に一致しない場合には、キーソングプリントがサーバーにより計算される。
【００３７】
ブロック３１９において、整列ステップで識別されたキー領域からキーソングプリントが計算される。クライアントにより供給されたデータから計算されたソングプリントの対応する個々のバイト値と、照合テーブルのディスクエントリーにキーデータと共に記憶されたソングプリントとの間のＲＭＳ差が計算される。このＲＭＳ差が所定のスレッシュホールド値以下である場合には、照合が成功であり、プロセスは、ブロック３１９から「イエス」経路をたどってブロック３２１へ至り、そこで、サーバーは、照合済み応答メッセージを構成する。
【００３８】
ブロック３１９に戻ると、ＲＭＳ差がスレッシュホールドを越えるとサーバーが決定する場合には、プロセスは、ブロック３２３へと続き、初期要求処理中に選択されたキー候補の１つ以上がクライアントからまだ要求されていない場合には、プロセスは、ブロック３２３から「イエス」経路をたどってブロック３１３へ至り、サーバーは、新たな照合応答メッセージを構成するように進む。
【００３９】
ブロック３２１へ戻ると、成功裡な照合が完了した際に照合済み応答メッセージがサーバーにより構成される。サーバーは、例えば、ディスクのタイトル及びアーティストを含む照合済みディスクに対する識別情報を含む。全アプリケーションにより必要とされるときには、付加的な情報が含まれる。
又、サーバーは、拡大されたキー領域内のキー領域の予想位置と、実際の位置との間のオフセットも計算する。このオフセット値は、クライアントが将来の照合におけるデータ読み取り動作を調整できるように、照合済み応答メッセージに含まれる。サーバーは、全アプリケーションにより必要とされるときに、許可データを計算して暗号化し、クライアントは、これを、ディスクが照合されたことを承認する証明書として第三者に与えることができる。照合済み応答メッセージは、クライアントに送信される。
【００４０】
ブロック３２３へ戻ると、ＲＭＳ差がスレッシュホールドを越えそして全てのキー候補が尽きた場合に、照合は失敗となる。次いで、プロセスは、「ノー」経路をたどってブロック３２５へ至り、照合されているディスクに満足に一致するエントリーが識別テーブルにおいて探索されなかったときに、サーバーにより否照合応答メッセージが構成される。
【００４１】
又、クライアントは、照合済みメッセージ、否照合メッセージ、又は否発見メッセージを含むシステムメッセージのいずれかに特定のやり方で応答するようにプログラムされてもよい。例えば、ＣＤが照合された場合には、クライアントは、ＣＤに関する情報を表示するか、又はＣＤを自動的に再生するようにプログラムされてもよい。
【図面の簡単な説明】
【００４２】
【図１】システムの全アーキテクチャーを示す図である。
【図２】照合データベース形成システムを示す図である。
【図３】識別及び照合中の重要なクライアント及びサーバーオペレーションを示す図である。
【図１】
0004226330.tif 000002
【図２】
0004226330.tif 000003
【図３】
0004226330.tif 000004