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