(57)【要約】  コンテンツを特定するためのシステムは、ビデオコンテンツのセグメントとオーディオコンテンツのセグメントから導き出したシグネチャを表すノード付き検索ツリーを、コンテンツを特定し、関連付けがなされていなかったビデオコンテンツとオーディオコンテンツとを正しく整列させるために用いる。シグネチャポインターを、記憶されたシグネチャセットに置き換えることにより、ツリー構造を表すデータを記録するために必要な記憶容量を小さくすることができる。ツリー構造において、部分ツリー構造を構築して用いることで、検索する効率を改善することができる。
2010533322.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）人の知覚に対する刺激を表現する参照コンテンツのセグメントのシーケンスを表す参照シグネチャのシーケンスに沿って選択窓を前進させるステップであって、該選択窓の中にある参照シグネチャは、一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
（ｂ）ルート付きツリー構造中のノードと結合するノードとリンクを、参照シグネチャセットのコレクション中の参照シグネチャセットのメンバーシップの変化を反映させるために修正するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれのシグネチャセットに対応するリーフノードであることを特徴とするステップと、
（ｃ）前記テストコンテンツの一連のセグメントを表す一連のテストシグネチャからなるテストシグネチャを取得するステップと、
（ｄ）参照シグネチャに対応し、閾値を越えるテストシグネチャセットとの類似の程度を提供する、整合リーフノードが前記ルート付きツリー構造中にあるかどうかを判断するために前記リンクをトラバースするステップと、
（ｅ）前記ルート付きツリー構造中に整合ノードが存在するかどうかを示す整合状態を生成するステップと、
を具備することを特徴とする人の知覚に対する刺激を表現するテストコンテンツを特定する方法。
【請求項２】
前記ステップ（ａ）は、１つの参照シグネチャと等しい区間だけ参照シグネチャのシーケンスに沿って前記選択窓を前進させ、
前記ステップ（ｂ）は、
前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中に、新たな参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
新たなリーフノードと１以上の新たなリンクを含む１以上の新たなノードを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記１以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の新たなノードとを結合することを特徴とするステップと、
前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
古いリーフノードと１以上の古いリンクを含む１以上の古いノードを削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記１以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の古いノードとを結合することを特徴とするステップと、
を具備することを特徴とする、
請求項１に記載の方法。
【請求項３】
前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、整合リーフに関連する参照位置情報を取得するステップを具備することを特徴とする請求項１又は請求項２に記載の方法。
【請求項４】
前記参照位置情報は、前記一連の参照シグネチャ中の対応する位置を特定することを特徴とする請求項３に記載の方法。
【請求項５】
前記一連の参照シグネチャ中の対応する位置とは、前記整合リーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中に特定されたシグネチャの位置であることを特徴とする請求項４に記載の方法。
【請求項６】
前記テストコンテンツのセグメントのシーケンス内に対応する位置を特定するテストシグネチャセットと関連するテスト位置情報を取得するステップと、
前記参照位置情報により特定される位置と前記テスト位置情報により特定される位置とのずれを導き出すステップと、
前記ずれを表す信号を生成するステップと、
を具備することを特徴とする請求項３乃至請求項５のいずれか１項に記載の方法。
【請求項７】
（ａ）人の知覚に対する刺激を表現する参照コンテンツのセグメントのシーケンスを表す参照シグネチャのシーケンス内に選択窓を確立するステップであって、該選択窓の中にある参照シグネチャは、前記参照コンテンツの一部を表す一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
（ｂ）参照シグネチャセットのコレクション中の参照シグネチャセットのメンバーシップを反映させるために、ルートと、複数のノードと、該ノードを結合する複数のリンクからなるルート付きツリー構造を構築するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれのシグネチャセットに対応するリーフノードであることを特徴とするステップと、
（ｃ）前記ルート付きツリー構造中の前記ルートと前記ノードと前記リンクとを表すデータ構造を記録するステップと、
（ｄ）参照シグネチャのシーケンス内の前記選択窓の位置を表し、前記データ構造を参照する位置指標を記録するステップと、
（ｅ）前記参照コンテンツの異なる部分に対する複数の選択窓の位置に複数のルート付きツリー構造を構築するため、及び、前記複数のルート付きツリー構造と前記複数の選択窓の位置を表す、それぞれのデータ構造とそれぞれの位置指標を記録するために、（ａ）から（ｄ）までのステップを繰り返すステップと、
を具備することを特徴とする人の知覚に対する刺激を表現するコンテンツを特定するために用いるツリー構造を構築する方法。
【請求項８】
（ａ）選択窓の隣り合う位置が重複するように、選択窓の長さより小さい区間だけ参照シグネチャのシーケンスに沿って選択窓を前進させることにより、複数の選択窓の位置を確立するステップを繰り返すステップと、
（ｂ）前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中に、新たな参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
新たなリーフノードと１以上の新たなリンクを含む１以上の新たなノードを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記１以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の新たなノードとを結合することを特徴とするステップと、
前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
古いリーフノードと１以上の古いリンクを含む１以上の古いノードを削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記１以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の古いノードとを結合することを特徴とするステップと、
を具備するステップを繰り返すステップと、
を具備することを特徴とする請求項７に記載の方法。
【請求項９】
前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、リーフノードの参照位置情報を取得するステップを具備することを特徴とする請求項７又は請求項８に記載の方法。
【請求項１０】
前記参照位置情報は、前記一連の参照シグネチャ中の対応する位置を特定することを特徴とする請求項９に記載の方法。
【請求項１１】
前記一連の参照シグネチャ中の対応する位置とは、前記整合リーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中に特定されたシグネチャの位置であることを特徴とする請求項１０に記載の方法。
【請求項１２】
人の知覚に対する刺激を表現するコンテンツを特定するための装置であって、該装置は請求項１乃至請求項１１のいずれか１項に記載の各ステップを実行するデータ処理回路を具備することを特徴とする装置。
【請求項１３】
人の知覚に対する刺激を表現するコンテンツを特定するための方法を実行するための装置により実行可能な命令プログラムを伝達する媒体であって、該方法は請求項１乃至請求項１１のいずれか１項に記載の各ステップを実行することを特徴とする媒体。
【請求項１４】
ルートノードと、複数の単一レベルノードと、人の知覚に対する刺激を表現するコンテンツのセグメントのシーケンスに対応するシグネチャのシーケンスを表すデータ要素のストリング中の、データ要素のサブストリングにそれぞれが関連する１以上の多レベルノードと、を具備する複数のノードであって、
各単一レベルノードは、固定数量のデータ要素に等しい長さを持つデータ要素のそれぞれのストリングに対応し、
各多レベルノードは、前記固定数量のデータ要素２倍以上の整数に等しい長さを持つデータ要素のそれぞれのサブストリングに対応し、
前記単一レベルノードの少なくともいくつかはリーフノードであるか、又は、前記多レベルノードの少なくともいくつかはリーフノードを表し、各リーフノードは、前記コンテンツの一部を特定するそれぞれのシグネチャセットの要素となるシグネチャのシーケンス中のすべてのシグネチャを表すデータ要素のストリングと関連する、
ことを特徴とする、複数のノードと、
前記複数のノード中のノード同士を結合させる複数のリンクであって、
各リンクは１組のノードを結合させ、
すべてのノードは他のノードと結合し、
いくつかのノードはルートノードと結合している、
ことを特徴とする、複数のリンクと、
シグネチャのシーケンスを表すデータ要素のストリング内の、多レベルノードと参照位置とに関連する複数のポインターであって、それぞれのノードに関連するポインターは、それぞれのノードに関連する一連のシグネチャの中の最初のシグネチャを表すデータ要素のサブストリングの位置を参照する、
ことを特徴とする、複数のポインターと、
を具備することを特徴とする、ルート付きツリー構造を表すデータを記録する媒体。
【請求項１５】
前記単一レベルノードの少なくともいくつかはリーフノードであり、前記多レベルノードの少なくともいくつかはリーフノードを表すことを特徴とする、請求項１４に記載の媒体。
【請求項１６】
前記複数のポインター中のいくつかのポインターは、リーフノードである単一レベルノードと関連していることを特徴とする請求項１４に記載の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、人の知覚に対する刺激を表現する信号のコンテンツを特定する大きなシグネチャの集合を体系付け検索するために用いることのできるプロセス及びデータ構造に関する。信号の典型的な２つのタイプはビデオ信号とオーディオ信号である。本明細書全般において、「ビデオ信号」及び「ビデオコンテンツ」の語は、視覚に訴えるイメージを表現する信号及びコンテンツを意味し、「オーディオ信号」及び「オーディオコンテンツ」の語は、聴覚に訴えるサウンドを表現する信号及びコンテンツを意味する。
【背景技術】
【０００２】
ビデオ信号及びオーディオ信号から伝達された海賊版コンテンツを検出するためのもの、又は分離したビデオ信号とオーディオ信号とを再同期化するためのものを含めて、ビデオ信号コンテンツ又はオーディオ信号コンテンツを特定することを模索するアプリケーションは、一般に信号コンテンツを調べて、そのコンテンツを表現し特定するシグネチャセットを導き出すプロセスに依存している。多くのこれらのアプリケーションにとって、意図的にしろ、意図的ではないにしろ、改変したコンテンツが元のコンテンツと実質的に同じであると人が感じる程度に、このコンテンツの信号が改変されたときでも、高い信頼度で信号を特定することが重要である。元の信号のコンテンツと改変した信号のコンテンツとの感知できる差が小さい場合は、特定するプロセスでは元の信号からのシグネチャセットと、よく似た改変した信号のセットからのシグネチャセットとを導き出すことができることが好ましい。ビデオ信号とオーディオ信号のシグネチャセットを導き出すために用いることのできる少数の処理が、Ｒｅｇｕｎａｔｈａｎ  Ｒａｄｈａｋｒｉｓｈｎａｎ他による、２００６年１１月３０日付け米国暫定特許出願番号６０／８７２０９０、表題「Ｅｘｔｒａｃｔｉｎｇ  Ｆｅａｔｕｒｅｓ  ｏｆ  Ｖｉｄｅｏ  ａｎｄ  Ａｕｄｉｏ  Ｓｉｇｎａｌ  Ｃｏｎｔｅｎｔ  ｔｏ  Ｐｒｏｖｉｄｅ  ａ  Ｒｅｌｉａｂｌｅ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｏｆ  ｔｈｅ  Ｓｉｇｎａｌｓ」、及び、Ｒｅｇｕｎａｔｈａｎ  Ｒａｄｈａｋｒｉｓｈｎａｎ他による、２００７年５月１７日付け米国暫定特許出願番号６０／９３０９０５、表題「Ｄｅｒｉｖｉｎｇ  Ｖｉｄｅｏ  Ｓｉｇｎａｔｕｒｅｓ  Ｔｈａｔ  Ａｒｅ     ｔｏ  Ｐｉｃｔｕｒｅ  Ｍｏｄｉｆｉｃａｔｉｏｎ  ａｎｄ  Ｆｒａｍｅ−Ｒａｔｅ  Ｃｏｎｖｅｒｓｉｏｎ」に開示されており、開示内容は本出願に参照として組み込まれる。
【０００３】
テスト信号のコンテンツを特定しようとするアプリケーションは、一般に、参照コンテンツのライブラリを表す多くの参照シグネチャセットを取得し、この参照シグネチャをデータ構造の形式に整え、テスト信号のコンテンツからテストシグネチャを導き出し、データ構造を検索してテストシグネチャに一致する参照シグネチャが存在するかどうかを決める。満足できる程度に一致している場合は、テスト信号のコンテンツと対応する参照コンテンツとが同一の信号源である可能性が高い。参照コンテンツが元のコンテンツであれば、テスト信号のコンテンツは、参照コンテンツのコピーであると判断する。
【０００４】
多くのビデオ及びオーディオのアプリケーションに対して、上述のライブラリは非常に多くの参照コンテンツが含まれ、上記データ構造には多くのシグネチャセットが含まれる。このデータ構造を実行するために必要なすべてのシグネチャセットを記録するために、大量の記憶量が必要となり、このデータ構造を検索するために、非常に多くの処理リソースが必要となる。
【発明の概要】
【０００５】
映像やサウンドや人の感覚を対象とする他の刺激のような参照コンテンツを表現する参照シグネチャの構造を実行し検索するために必要な記憶リソースと処理リソースとを減らすことが本発明の１つの目的である。マッチングテストコンテンツに対応する参照コンテンツ内の位置を特定することを容易にすることが本発明のもう１つの目的である。
【０００６】
本発明の１つの特徴によれば、テストコンテンツのためのテストシグネチャセットと参照コンテンツのための参照シグネチャセットとを比較し、参照シグネチャのシーケンスに沿って選択窓を前進させ、選択窓内の参照シグネチャのグループに基づく参照シグネチャセットのメンバーシップに反映させるためにルート付きツリー構造を修正することにより、テストコンテンツを特定する。テストコンテンツの特定に関してテストコンテンツを表現するテストシグネチャセットを取得し、ルート付きツリー構造を検索することによりチェックし、リーフノードが参照シグネチャセットに対応するツリーの中に存在するかどうかを判断し、テストシグネチャセットとの閾値を越える類似のレベルを提供する。
【０００７】
本発明の他の１つの特徴によれば、テストコンテンツの特定に用いるツリー構造は、参照シグネチャのシーケンスに沿って選択窓を動かし、この選択窓内の参照シグネチャに基づき集められた参照シグネチャセットを表現するルート付きツリー構造を構築し、このルート付きツリー構造を表現するデータ構造を記録し、参照シグネチャのシーケンス内の選択窓の位置を表現し、データ構造を参照する位置指標を記録することにより、構築される。このことは、複数の選択窓の位置についての、複数のルート付きツリー構造を構築し、この複数のルート付きツリー構造と選択窓の位置を表現するデータ構造と位置指標とを記録するために、繰り返される。
【０００８】
本発明のさらに他の１つの特徴によれば、シグネチャのシーケンスを表現するデータ要素のストリング中のデータ要素のサブストリングとそれぞれ関連づけられた、複数の単一レベルノードと１以上の多レベルノードを含む、ルート付きツリー構造を表現するデータを、媒体が記録する。各単一レベルノードは、固定長のデータ要素のサブストリングと関連づけられる。各多レベルノードは、該固定長の２倍以上の整数に等しい長さを持つデータ要素のサブストリングと関連づけられる。単一レベルノード又は多レベルノードのいくつかは、シグネチャセットを構成するすべてのシグネチャを表現するデータ要素のサブストリングと関連付けられたリーフノードである。ポインターは、多レベルノードと、多レベルノードに関連づけられたシグネチャを表現するデータ要素のストリング内の参照位置とに関連づけられる。
【０００９】
本願発明の種々の特徴及び好ましい実施の形態は、以下の説明及び類似の参照番号は類似する要素を表す以下の図面を参照することによりよく理解されるであろう。以下の説明及び図面の内容は、例示であって、本願発明の技術的範囲を限定するためのものではない。
【図面の簡単な説明】
【００１０】
【図１】ビデオシグネチャ及びオーディオシグネチャを生成するために用いることのできるシステムの概略ブロック図である。
【図２】シグネチャ及びシグネチャセットのシーケンスの概略図である。
【図３】ビデオコンテンツ又はオーディオコンテンツを特定するためのシグネチャのデータベースを管理するシステムの概略ブロック図である。
【図４】参照シグネチャと、同期させたビデオコンテンツのストリームとオーディオコンテンツのストリームの配列情報とを捕捉するシステムの概略ブロック図である。
【図５】ビデオコンテンツのストリームとオーディオコンテンツのストリームとの間の同期を復元するために用いることのできるシステムの一部の概略ブロック図である。
【図６】ルート付きツリー構造の概略図である。
【図７】ルート付きツリー構造の概略図である。
【図８】圧縮されたノードを持つ、ルート付きツリー構造の概略図である。
【図９】圧縮されたノードとシグネチャポインターとを持つ、ルート付きツリー構造の概略図である。
【図１０Ａ】シグネチャ及びシグネチャセットのシーケンスの概略図である。
【図１０Ｂ】図１０Ａに示したシグネチャのセットの検索ツリーの概略図である。
【図１０Ｃ】図１０Ｂに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。
【図１１Ａ】シグネチャ及びシグネチャセットのシーケンスの概略図である。
【図１１Ｂ】図１１Ａに示したシグネチャセットの検索ツリーの概略図である。
【図１１Ｃ】図１１Ｂに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。
【図１２Ａ】シグネチャ及びシグネチャセットのシーケンスの概略図である。
【図１２Ｂ】図１２Ａに示したシグネチャセットの検索ツリーの概略図である。
【図１２Ｃ】図１２Ｂに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。
【図１３】本発明の種々の特徴を実施するために用いることのできる装置の概略ブロック図である。
【発明を実施するための形態】
【００１１】
Ａ．序論
図１は、本発明の種々の特徴を組み込むことのできる典型的なシステム３００の概略ブロック図である。本システム３００は、ビデオ信号／オーディオ信号のセグメント３ａ・・・３ｄのコンテンツを分析し、その信号の信頼できる同一性の証明を生成する。この例では、同一性の証明は、ビデオコンテンツを特定するビデオシグネチャ１９９ａ・・・１９９ｄのセットを生成するビデオシグネチャ生成器１００と、オーディオコンテンツを特定するオーディオシグネチャ２９９ａ・・・２９９ｄのセットを生成するオーディオシグネチャ生成器２００とによって、もたらされる。
【００１２】
ビデオコンテンツ及びオーディオコンテンツについてのビデオシグネチャとオーディオシグネチャとを生成するシステム３００のようなシステムが、例示としてのみ示されている。本発明は、視覚映像、サウンド、あるいは、触覚で感じる感覚のような１以上の形の刺激を表現するコンテンツを伝達するための信号に対してシグネチャを生成する他のシステムに組み込むことができる。本明細書の残りで、視覚的刺激及び聴覚的刺激を表現するコンテンツについてさらに詳細に説明する。
【００１３】
１．シグネチャ及びシグネチャセット
シグネチャを生成するために種々のプロセスを用いることができる。このシグネチャを生成するプロセスの選択如何により、システムの能力に関して実際には顕著な影響を及ぼすかも知れないが、本発明において本質的に特定のプロセスを必要とするわけではない。例えば、先に引用した特許出願に記載されたプロセスを、ビデオシグネチャ及びオーディオシグネチャを生成するために用いることができる。
【００１４】
ビデオコンテンツ及びオーディオコンテンツに対する多くのアプリケーションにおいて、動画の区間及びサウンドの区間を表現するコンテンツのセグメントから導き出される情報から、ビデオシグネチャ及びオーディオシグネチャを生成する。図１に示す例では、ビデオコンテンツとオーディオコンテンツについての個々のシグネチャは、そのビデオ信号／オーディオ信号の個々のセグメントに対応している。このセグメントとシグネチャとの間の特定の対応関係は、単に一例として表示するものである。他の構成も可能である。例えば、ビデオコンテンツの、３３ｍｓｅｃで表現されるＮＴＳＣビデオ信号の１つのフレームに対して、１つのビデオシグネチャを生成することができ、オーディオコンテンツの、１０ｍｓｅｃで表現されるオーディオ信号サンプルの１つのブロックに対して、１つのオーディオシグネチャを生成することができる。他の例としては、ＮＴＳＣビデオ信号の一連のフレームに対して、１つのビデオシグネチャを生成することができ、オーディオ信号サンプルの一連のブロックに対して、１つのオーディオシグネチャを生成することができる。
【００１５】
連続するシグネチャのセットは、関連する技術分野ではしばしば「フィンガープリント」と称されるが、ここでは、シグネチャセットと称し、コンテンツの１つの区間を特定するために用いる。コンテンツの変化が少ないか又はコンテンツの変化を感知できない場合は、顕著な変化がない先に引用した特許出願中に開示されているようなシグネチャ生成プロセスを用いることにより、識別の信頼性を改善することができる。
【００１６】
特定の信号のコンテンツが既に参照コンテンツのライブラリ中に存在するかどうかを判断するために図３に示したような識別システムに、信頼性のある識別を用いることができ、また信頼性のある識別は、関連づけられたオーディオコンテンツとビデオコンテンツとの間の時間配列のずれを測定し修正するために、図５に示したような同期システムに用いることができる。識別は、識別すべきコンテンツの１つの区間に対して１以上のシグネチャセットを生成し、これらのシグネチャセットと、一群の既知のコンテンツを表現するシグネチャとを比較することにより行われる。識別すべきコンテンツの１つの区間が既知のコンテンツの１つの区間のシグネチャセットと等しいか又は非常に類似している場合は、２つのコンテンツの区間は、発生源が同じであり、２つの区間は緊密に合致している。
【００１７】
説明を簡単にするために、識別すべきコンテンツとそのシグネチャ及びシグネチャセットとを、ここでは、それぞれ、テストコンテンツ、テストシグネチャ、及び、テストシグネチャセットと称し、既知のコンテンツとそれに関するシグネチャ及びシグネチャセットとを、ここでは、それぞれ、参照コンテンツ、参照シグネチャ、及び、参照シグネチャセットと称する。
【００１８】
２．シグネチャセットの解像度
テストコンテンツと参照コンテンツとの緊密な位置合わせはテストシグネチャセットと参照シグネチャセットとの意味のある比較を行うために重要である。比較の精度又は解像度は、シグネチャセットを生成するプロセスの解像度又はステップサイズにより制限される。例えば、各オーディオシグネチャが１０ｍｓｅｃのオーディオコンテンツを表現しているならば、１つのシグネチャと同じステップサイズを持つ一連のシグネチャセットを生成することにより、１０ｍｓｅｃの解像度をもつ一群のシグネチャセットを取得することができる。一例を図２に示す。この例では、シグネチャ５のシーケンスは、それぞれ１０ｍｓｅｃのコンテンツを表す１２個のシグネチャＳ１，Ｓ２，・・・，Ｓ１２からなる。一連のシグネチャセットＳＳ１，ＳＳ２，・・・，ＳＳ４は、各々、９０ｍｓｅｃのコンテンツに対応する隣り合う９個のシグネチャを有する。各シグネチャセットの範囲は、シグネチャ５のシーケンス内で、各シグネチャの始まりと終わりを示す細線で示されている。
【００１９】
多くのアプリケーションにおいて、例えば２秒間というような長い区間のコンテンツを表現するシグネチャセットが生成される。この一連のシグネチャセットの時間分解能又は精度は、図示の例では１つのシグネチャの長さとなっている、連続するシグネチャセットの開始点間の区間、又は、ずれにより制御される。前述の特許出願に開示されているような技術は、テストコンテンツと参照コンテンツとの間の配置の小さな差異に対応するテストシグネチャと参照シグネチャとの間を緊密に整合させるようなシグネチャセットのシグネチャを生成するために用いることが好ましい。
【００２０】
３．シグネチャセットの整合
多くのアプリケーションは、テストシグネチャセットに似ているが同じではない参照シグネチャセットを探すプロセスを実行する。発生源を共通にするテストコンテンツ及び参照コンテンツのシグネチャセットは、２つのうちのどちらか又は両方の理由により、一般に同一ではない。第１の理由はテストコンテンツと参照コンテンツとは同一でない可能性があることであり、一方は他方を修正したものであることがあるからである。第２の理由は、テストコンテンツと参照コンテンツとが同一であったとしても、そのシグネチャを生成させるのに用いられたコンテンツセグメントが正確に整列されていなかったかもしれないからである。これらのうちのどちらか又は両方の理由により、異なったコンテンツのセグメントがテストシグネチャと参照シグネチャを生成するために用いられ、したがって、テストコンテンツと参照コンテンツとが同一の発生源からのものであっても、テストコンテンツと参照コンテンツについて生成されたシグネチャとシグネチャセットが一般に同一にはならない。２つの信号のコンテンツがお互いに同一であるか又は違ってはいるが同じオリジナルコンテンツの異なったバージョンを表す場合、２つの異なる信号のコンテンツは、「起源を共有する」と称される。
【００２１】
２つのシグネチャセット間で同一の程度を測るための測度が閾値を超えている場合、２つの異なるシグネチャセットは整合しているということができる。同一の程度を表す使用可能な１つの測度は、２つのシグネチャセット間のハミング距離の逆数である。２進数データの２つのアイテム間のハミング距離は、２つのアイテム中にあって、お互いに異なっている対応ビットの数に等しい。例えば、Ｘ１＝０１０１１０２でＸ２＝１１００１１２であれば、２つの値のうち１番目と４番目と６番目のビットが異なるので、Ｘ１とＸ２との間のハミング距離は３に等しい。Ｘ１とＸ２との間のハミング距離がゼロに等しい場合は、２つのアイテムは同じであることを示している。シグネチャセットがシグネチャのシーケンスで成り立ち、各シグネチャがそれぞれ一連のビットで表されているならば、シグネチャセット自身は、その構成シグネチャについてのビット列を連結したもので表すことができる。２つのシグネチャセット間のハミング距離は、２つのそれぞれのビット列同士での異なるビットの数となる。
【００２２】
実施の形態によっては、上述の識別システム及び同期化システムでは、テストシグネチャセットから最小のハミング距離を持つ参照シグネチャセットを見つけることによりテストシグネチャセットに最も整合する参照シグネチャセットを見つけようと試みる。どのような類似性の測度を用いたとしても、しかしながら、最適の整合性を検索するために膨大な数のシグネチャセットを検査しなければならないので、このプロセスは普通は簡単にはいかない。
【００２３】
４．データ構造
シグネチャセットのデータ構造及びその要素のシグネチャのいくつかの形式は検索を簡単にするために使うべきである。使うことのできるデータ構造の１つの形式として、ルート付きツリー構造が知られている。
【００２４】
ルート付きツリー構造は、階層レベルに構成され、枝又はリンクにより相互に接続された要素又はノードにより構成されている。ツリーの１つのレベル内のノードは、ツリー内でそれより１つ低いレベルの１以上の各ノードとリンクによりつながっている。下位にノードを持たないノードはリーフノードと称する。上位にノードを持たないノードはルートノードと称する。一連のリンクにより定まる経路を追いかけるプロセスは、ここでは、リンクのトラバースと称する。
【００２５】
ルート付きツリー構造は、検索基準を各リンクと関連付けることにより検索プロセスを容易にするために用いることができる。これには多くの構成が可能となる。ルート付きツリー構造の一例を図６に示す。ツリーのノードは円で表され、ノード間のリンクは円同士をつなぐ線で表される。このツリーは対称的であり１６のリーフノードを有する。各リンクの検索基準は、そのリンクの最下位にあるノードに現れる記号により表現されている。
【００２６】
図６に示したツリーは、連結された一連の２ビットの数により表されるリーフノードの検索に用いることができる。ルートノードＮＯから始まり、検索プロセスは検索値ｘの最初の２ビットをルートノードのすぐ下のリンクの基準とを比較する。例えば、ノードＮ１へのリンクの２ビット検索基準は００である。検索プロセスにより、どのリンクの基準が満足しているかを判断し、そのリンクを次のノードにトラバースする。このプロセスは、そのツリーより下のレベルへと続いてゆきリーフノードに至るまで続けられる。例えば、検索値ｘが０１０１に等しい場合は、検索プロセスはルートノードＮＯから始まり、ノードＮ２へのリンクの基準０１が検索値の最初の２ビットと整合すると判断する。このプロセスはリンクをこのノードまでトラバースし、続いてノードＮ２２へのリンクの基準０１が検索値の次の２ビットと整合すると判断する。検索プロセスはノードＮ２２へのリンクをトラバースして終了する。なぜなら、このノードはリーフノードだからである。
【００２７】
ツリー構造は対称でなくてもよく、「完全」あるいはノードがすべて満たされている状態になっている必要はない。例えば、図７に示すツリーは図６に示すツリーに対応しているが、いくつかのノードとリンクが欠けている。欠けているノードとリンクは破線で示されている。検索値ｘがリーフノードの１つと正確に対応していない場合は、検索プロセスは、整合するリーフノードは無いとリポートするか又は、検索値と最も近似するリーフノードを特定することができる。検索値ｘが、例えば、００００に等しい場合は、検索プロセスは、ルートノードＮＯから始まり、ノードＮ１へのリンクの基準００が検索値の最初の２ビットと正しく整合すると判断する。検索プロセスはノードＮ１へのリンクをトラバースし、続いて、ノードＮ１３への基準１０が、ノードＮ１４への基準１１より、検索値の次の２ビットと、より整合していると判断する。検索プロセスは、ノードＮ１３がリーフノードなので、リンクをノードＮ１３までトラバースして終了する。リーフノードＮ１３で表される一連のビット００１０は、検索値ｘ＝０００とは正確には整合していないが、検索値からのハミング距離は１であり、これはこのツリーにおける他のどのリーフノードへのハミング距離よりも小さい。ハミング距離の逆数を類似性の測度として用いるなら、リーフノードＮ１３と関連づけられたビットの連なりは、検索値ｘに最も近似しているものとなる。
【００２８】
ツリー構造中の各リーフノードは、ルートノードからリーフノードまでトラバースする経路に沿って遭遇する一連のリンクの基準に対応する。特定のリンクの基準は、一般に１つのシグネチャセットに対応するが、同じ一連の基準が１以上のシグネチャのシーケンスに対応することもある。その結果、リーフノードは１以上のシグネチャセットに対応することがある。ルートノードからリーフノードまでの経路に沿って存在する中間的なノードは、そのリーフノードに対応する１以上のシグネチャセット中のシグネチャを構成する、ひと連なりデータ要素の１以上のデータ要素を表す。シグネチャセットが、例えば、一連の２進数値のデータ要素又はビットで表されるならば、各中間的なノードは、１以上のビットを表す。ノードから下がってゆくリンクは、これらのビットで表すことのできる異なった値を表す。
【００２９】
多くのアプリケーションにおいて、各シグネチャは何バイトかの２進数値のデータからなり、各シグネチャセットは何百ものシグネチャの連なりからなる。これらのアプリケーションについて、使いやすいツリー構造の実施の形態は、中間的なノードをシグネチャセットの一連のデータ要素における８ビットすなわち１バイトの２進数データに関連付けることである。１バイトの２進数データは、０から２５５までの値を表現することができ、したがって、中間的な各ノードは２５６個の子ノードを持つことができる。ツリーにおけるレベルの数は、各シグネチャセットを表現するのに必要なデータのバイト数に等しい。
【００３０】
ツリー構造を記憶し、構成し、使用する技法について以下に説明する。
【００３１】
Ｂ．検索ツリー
１．記憶
本発明の種々の特徴を、ルート付きツリー構造を表すデータを記憶するのに必要な記憶容量を減少させるために用いることができる。
【００３２】
ビデオコンテンツ及びオーディオコンテンツの多くのアプリケーションにおいて、ツリー構造は何千ものレベルと何万ものノードとを有することがある。例えば、Miller他による、「Audio  Fingerprinting:  Nearest  Neighbor  Search  in  High  Dimensional  Binary  Spaces」，2002  IEEE  Workshop on  Multimedia  Signal  Processing,２００２年１２月、１８２−１８５ページ、に記載されたシステムでは、８１９２ビットすなわち１０２４バイトの長さのシグネチャセットが使われている。可能なすべてのノードとブランチを持つ完全なツリーは、２８１９２＝２５６１０２４≒１０２４６６個のリーフノードを有する。この完全なツリーにおける全ノードの数も１０２４６６のオーダーとなる。このようなツリーを表現するデータを記憶するために必要な記憶容量は無限に大きくなる。幸いにして、普通のマルチメディアアプリケーションでは、完全なツリーを必要としない。
【００３３】
数千時間のマルチメディアコンテンツを表現するには、上述の完全なツリー中のリーフノードの数よりもはるかに少ない、Millerの論文に書かれているような何十億ものシグネチャセットを必要とするかも知れない。その結果、マルチメディアアプリケーションのためのルート付きツリー構造は、特にリーフノードに近い低いレベルでは非常にまばらになる。それにもかかわらず、１０億（１０９）は大きな数であり、たくさんのシグネチャセットを表現するツリー構造を記憶するために必要な、非常に大きな記憶容量を必要とする。以下に記載の技術は、多くのマルチメディアアプリケーションのツリー構造を記憶するために必要な記憶量を減らすために用いることができる。
【００３４】
ａ）仮想的な表現
以下に説明する例では、ツリー中の中間的なノードは８ビットのシグネチャデータを表すと仮定している。ルートノードのすぐ下の、ツリーのレベル１は、（２８）１＝２５６個のノードを持つことができる。レベル１のすぐ下の、レベル２は、（２８）２＝６５，５３６個のノードを持つことができる。レベル２のすぐ下の、レベル３は、（２８）３＝１６，７７７，２１６個のノードを持つことができる。このツリーが１０億のシグネチャセットを表す場合、各レベル３ノードの下に平均して約６０個のリーフノードがある。レベル３ノードはすべて存在すると思われる。レベル１のノードとレベル２のノードとはほぼすべて存在することは間違いない。言い換えれば、レベル１とレベル２とレベル３にあるノードを表現するためには完全ツリー構造が必要になると思われる。
【００３５】
完全ツリー構造を効率的に表現するために、一次元配列を用いることができる。配列の各要素はノードに対応する。配列中の要素を望ましい順序に並べることができるが、１つの使い勝手の良い実施の形態では、左から右、上から下にノードを並べる。
【００３６】
あるいは、これらの上位レベルを、記憶装置に記憶されたデータによる方法ではなく仮想的な方法で表現することができる。これらの上位レベルにある特定のノードへの２５６個のリンクの各々は、１つのレベルから次のレベルへトラバースするときの検索プロセスにより表現することができる。例えば、後の技法は、レベル１のノードとレベル２のノードとに用いることができ、レベル３のノードは、各要素がレベル３のノードの１つを表す（２８）３≒１．６×１０７個の要素からなる一次元配列で表現することができる。必要に応じて、配列の要素を、特定のツリー構造中に実際に存在するノードにのみ割り当て、ノードが存在するかしないかは、各ノードに関連づけられた１ビットのフラグにより表現することができる。
【００３７】
以下のソースコードプログラムは、ノードの仮想的な表現と共に用いることのできる検索プロセスの１つの方法を示している。このプログラムフラグメントには、Ｃ＋＋プログラム言語の構文的特徴が含まれているが、このプログラムフラグメントが完全な又は実際の実施の形態を表現しようとするものではない。これは単に原理を示すためのものである。ソースコードの各ステートメントは、以下の説明のための参照に便利なように番号をつけてある。
【００３８】
2010533322.tif 000003
ルーチン「traversal」は、１ノードあたり２５６のリンクを持つツリーのレベル１とレベル２内のノードの仮想的な表現とともに、先に引用したMillerの論文に記載されたものに類似する検索プロセスを実施する、再帰的に呼び出されるサブルーチンである。３行目のステートメントはこのサブルーチンのエントリーポイントを定義する。入力パラメータには、ポインター「curNode」、検索により見つけようとしているテストシグネチャセット内のシグネチャを記録する要素の配列「searchValue」、検索中のツリーの現在のレベルを指定する値「level」、現在のノードの検索においてこれまで遭遇した全ハミング距離を定める値「dist_sofar」、及び、現在のノードまでの経路に沿ってトラバースしたツリー中のノードを記録する要素の配列「traversed_data」がある。ポインター「curNode」は、一般にツリー構造内で検索されている現在のノードを参照するが、この値は、ノードが仮想的に表現されているツリーの最初の２つのレベルには用いられない。この例では、このポインターは、ツリーの最初の２つのレベルに対してヌル値（null  value）が設定されている。
【００３９】
６行目のｉｆステートメントは、検索が現在、レベル１又はレベル２又はレベル３にあるかどうかを判断する。もしどこにもなければ、Millerの論文に記載されているような検索プロセスを表現する２９行目のステートメントに続く。もし検索が、現在、レベル１又はレベル２又はレベル３のいずれかにあれば、７行目のステートメントから始まるｆｏｒループに続く。
【００４０】
７行目から１０行目までのｆｏｒループでは、現在の仮想的なノードから降りてくる２５６のノードの仮想的な表現を表す要素の配列「virt_node」を初期化する。要素「virt_node[n].byte_val」は、次に続く仮想的なノードの検索基準を記録する。要素「virt_node[n].dist_thisbyte」は、これらの次に続く仮想的なノードと検索値との間のハミング距離を記録する。
【００４１】
１１行目のステートメントでは、次の最小ハミング距離の検索で、より有望なノードを最初に調べるようにハミング距離の昇順に配列要素「virt_node」をソートする。
【００４２】
１２行目から２７行目までのｆｏｒループでは、２５６の仮想的なノードのおのおのを調べて、どのノードが検索のよい候補であるかを判断する。この調査は、値「dist_new」を、現在の仮想的なノード「virt_node[n]」までの検索経路に沿って累積した全ハミング距離に等しくなるよう設定する。
【００４３】
１２行目のｉｆステートメントでは、現在の仮想的なノード間での経路に沿った検索を示す距離が有望かどうかを判断する。これは、Millerの論文に書かれたように、閾値までの距離を比べることにより行うことができる。もしこの距離が長すぎるなら、それは現在の仮想的なノード迄の検索が有望でないことを示しており、１２行目から始まるｆｏｒループを続け、次の仮想的なノードに対して繰り返す。もしハミング距離「dist_new」が、現在の仮想的なノード迄の検索が有望であることを示していたら、配列「traversed_data」を更新して検索に反映させ１５行目の記載を現在の仮想的なノード迄のリンクに沿って続行する。ポインター「node_next」はヌル値に初期化される。
【００４４】
１７行目のｉｆステートメントでは、検索は現在、レベル３にあるかどうかを判断する。レベル３に無い場合、現在のレベルはレベル１又はレベル２であり、次のレベルでの検索に継続するよう「traversal」サブルーチンを再帰的に呼び出す２５行目のステートメントの実行を続ける。もし検索が現在、レベル３にあるなら、１８行目から２３行目までのステートメントの実行を続ける。１９行目から２０行目までのｆｏｒループでは、「traversed_data」の最初の３つの要素中に記録されている何バイトかのデータを、変数「idx」の整数値として記録されている２４ビット列に鎖状に繋ぐ。この値は、その要素がレベル３でのツリー構造中の各ノードでのレコードを記録する配列「NodeArray」のインデックスとして用いられる。一般に、データ構造はレベル１、レベル２、及びレベル３で完成させる。従って、２２行目ｉｆステートメントでは、一般に、インデックスをつけたノードが存在し、検索は、２５行目の再帰的なサブルーチンの呼び出しとともに続けられる。しかし、レベル３ノードが存在しないならば、１２行目から始まるｆｏｒループを仮想的なノードで反復する、２３行目のステートメントの実施を続ける。
【００４５】
２５行目のサブルーチン「traversal」の各再帰的な呼び出しが最後に２７行目のｆｏｒループの下端に戻り、ｆｏｒループに現在のレベルでの次の仮想的なノードを調べさせる。２５６のすべてのノードを調べ終わると、３０行目のステートメントでこのサブルーチンが終わる。
【００４６】
ｂ）圧縮ノード
多くのアプリケーションにおいて、ルート付きツリー構造はリーフノードに近い低いレベルではまばらになっている。一般に、子が１つしかない特定の経路に沿う２以上の隣り合うレベルにノードがある。子が１つしかない一連のノードを記録するのに必要な記憶量は、個々のノードを表すデータを記憶させることより、ノードの表示を結合又は圧縮したものを表現するデータを記憶することにより、減らすことができる。例えば、存在しない下位リンクを記録するための各ノードの記憶装置は必要ではない。一連のノードは、圧縮された構造の最初のレベルすなわち最高位のレベルのノード、圧縮された構造により表されるノードの番号すなわちノードのレベル、及び、これらのノード間の孤立したリンクをトラバースするあいだに遭遇する一連の値すなわちリンク基準を特定する圧縮された構造により表現することができる。
【００４７】
図７を参照すると、ノードＮ３はたった１つの子ノードを持つ。ノードＮ３とその子のノードＮ３４は、図８に示されたツリー構造中のノードＸ３として概略的に示した圧縮された構造として表現することができる。圧縮ノードＸ３に示された表記「１０．１１」は、ノードＮ３とＮ３４を通る経路に沿うリンクをトラバースするときに遭遇する一連のリンク基準１０−１１を表現している。
【００４８】
ｃ）シグネチャポインター
多くのアプリケーションのツリー構造は非常に多くのシグネチャセットを表現する。前述のMillerの論文に記載されているオーディオコンテンツの典型的な実施の形態において、各シグネチャセットは１０２４バイトのデータからなる。もし、あるアプリケーションで１０億（１０９）のリーフノードと、各リーフノードにつき１つのシグネチャセットを持つツリー構造するとするなら、そのシグネチャセット構成するデータを記録するために、１テラバイト（１０１２バイト）以上の容量の記憶装置が必要となる。
【００４９】
ツリー構造の各リーフノードのシグネチャセットを構成するデータは、そのリーフノードへの経路に沿って遭遇するリンク基準のシーケンスにより暗に表される。ツリー構造が圧縮ノードを含まないか、又は、圧縮ノードが上述のリンク基準を含むならば、追加のデータはシグネチャセットそのものを記録するためには必要ではなく、シグネチャセットを構成するデータに大量の重複が生じるので、多量の記憶容量が多くのアプリケーションで浪費されることになる。このような重複は、異なるシグネチャセットが重複する一連のシグネチャから構成されていることにより生じる。
【００５０】
上記のように、シグネチャセットは何百ものシグネチャにより成り立っており、異なるシグネチャセットの開始におけるステップサイズすなわちオフセットは１つのシグネチャの存続期間に等しくなることがある。もし各シグネチャセットが２００のシグネチャにより構成され隣り合うシグネチャセット間のオフセットが１つのシグネチャであるなら、各シグネチャのデータは２００個のシグネチャセット内に含まれる。各シグネチャのデータを別々に記録するために必要な記憶量は、構成シグネチャの全シーケンスについてのデータを記録するために必要な記憶量の２００倍となることがある。各圧縮ノードについての一連のリンク基準を、それからすべてのシグネチャセットを取得することができるシグネチャを表すデータ要素の列の中の位置を参照するシグネチャポインターに置き換えることにより、ツリーの必要記憶容量を減らすことができる。多くのアプリケーションにおいて、シグネチャポインターの使用により、ツリーデータ構造の記録に必要な記憶量を９０％減少させることができる。
【００５１】
１つの例を図９に示す。この例では、２進数値のデータ要素の列又はビットは、図のツリー構造で表現されるシグネチャのシーケンスを構成する。ビット、バイト、又はニブルを含む、本質的に如何なるデータ要素も、必要に応じて用いることができる。図に示されたシーケンス中の第１のシグネチャはデータ要素の列００で表されている。圧縮ノードＸ３は、データ要素１０１１で表されるシグネチャセットに対応する。このノードは、このノードと関係付けられた一連のシグネチャ内の第１のシグネチャを表すシグネチャ５のシーケンス内の位置を参照するシグネチャポインター６を有する。圧縮ノードＸ３は、リーフノードを含むツリーのすべてのレベルを表すので、このノードと関連づけられた一連のシグネチャは完全シグネチャセットである。
【００５２】
図に示された圧縮ノードはリーフノードで終了する。このことは必須ではない。圧縮ノードはツリー構造のどの部分にあってもよい。リーフノードを含まない圧縮ノードの例が図１２Ｃに示されている。
【００５３】
必要に応じて、シグネチャポインターを圧縮ノード中に含まれていない各リーフノードと関連付けることができる。この関連付けはツリー構造をトラバースするために用いられる複雑なプロセスを単純化することができる。このためのひとつの方法は、さもなければ、圧縮ノード中に含まれなくなるすべてのリーフノードを、唯一のノードを表現する圧縮ノード中に含まれるように定義することである。
【００５４】
２．位置情報
関連するオーディオコンテンツとビデオコンテンツとを時間配置における誤差を測定し修正するためにシグネチャセットを用いる同期システムでは、各ビデオシグネチャセットとオーディオシグネチャセットに対応するビデオコンテンツとオーディオコンテンツ内の位置を定める情報を必要とする。この位置情報は、所望のどんな方法ででも得ることができる。２つの好ましい方法をここで説明する。
【００５５】
ａ）位置フィールド
シグネチャセットの位置情報を提供するひとつの方法は、構成要素となっているシグネチャがつくられたとき、シグネチャセットによって表されるコンテンツの位置を特定し、そのシグネチャセットに対応するリーフノードに関連づけられたこの位置を、記憶装置に記録する。例えば、位置情報は、コンテンツに埋め込まれた時間コードとして、又はコンテンツの開始からの相対時間として表現することができ、あるいは、この位置情報は、コンテンツの開始からの相対的なフレーム数、ブロック数、又はバイト数のようなものとして、位置を表現することができる。
【００５６】
ｂ）シグネチャポインターで表される位置
シグネチャセットの位置情報を提供するもう１つの方法では、そのシグネチャセットに対応するリーフノードと関連づけられたシグネチャポインターから、シグネチャセットにより表されるコンテンツの位置を導き出す。リーフノードと関連づけられたシグネチャポインターは、シグネチャのシーケンス内に関連するシグネチャセットの位置を参照する。この位置は、シグネチャセット中のシグネチャが導き出されたコンテンツセグメントの相対位置に直接関連がある。１実施の形態において、シグネチャポインターは、シグネチャの第１のシグネチャの位置を参照する。この実施の形態の例を図９に概略的に示す。
【００５７】
図９を参照して、シグネチャセットのシーケンス５中の各シグネチャは、コンテンツセグメントのシーケンス３内のビデオコンテンツ又はオーディオコンテンツのそれぞれのセグメントから導き出されたものである。コンテンツセグメントとシグネチャとの間の対応は、隣接するシグネチャと、コンテンツの隣接するセグメントとの境界を結ぶ線で示されている。太い線で囲み、シグネチャポインターにより参照されたシグネチャセット内の２つのシグネチャはコンテンツセグメントＣ４及びＣ５から導き出されたものである。コンテンツセグメントのシーケンス３内のコンテンツセグメントＣ４の相対位置は、シグネチャポインター６により参照されるシグネチャのシーケンス５内の位置から導き出すことができる。
【００５８】
シグネチャのシーケンス内の各シグネチャが同じ数のデータ要素により表されており、シグネチャが１区間分だけお互いにずれた位置から始まるコンテンツセグメントから導き出されるならば、全体のコンテンツ中のコンテンツセグメンの相対位置は、シグネチャのシーケンス内にある対応するシグネチャの相対位置の一次関数として表現することができる。各シグネチャがＭ個のデータ要素で表されており、隣接するシグネチャが区間Ｔ分だけお互いにずれている、コンテンツのセグメントから導き出されるならば、シグネチャに対応するコンテンツセグメントの位置Ｌは以下のように表現することができる。
【数１】
2010533322.tif 000004
【００５９】
ここで、Ｐはシグネチャ中の第１のデータ要素の位置である。
【００６０】
例えば、各シグネチャがＭ＝６０バイト（ｂｙｔｅｓ）のデータからなり、Ｔ＝１０ｍｓｅｃのコンテンツを表すなら、シグネチャのシーケンスの開始からＰ＝５１０，０００バイトの位置が、コンテンツ中の対応する位置Ｌを示し、以下に等しくなる。
【数２】
2010533322.tif 000005
【００６１】
各シグネチャ中のデータ要素Ｍの数がバイトで表現され、位置Ｐがビットで表現されるならば、式（１）の表現は以下のように書き直すことができる。
【数３】
2010533322.tif 000006
【００６２】
シグネチャ位置は、ツリー構造中の中間的位置から始まる圧縮ノードに対応するコンテンツの位置を導き出すために用いることもできる。例えば、ツリー中の各ノードが、シグネチャデータの１バイトすなわち８ビットに対応し、各シグネチャが、区間Ｔ分だけお互いにずれているコンテンツのセグメントから導き出されたＭバイトのデータからなり、ビット位置ｐが、対応するシグネチャの位置を参照するならば、圧縮ノード中の第１のノードに対応するコンテンツの位置は、以下のように表すことができる。
【数４】
2010533322.tif 000007
【００６３】
ここで、ρは、圧縮ノードで表された第１のノードのレベルである。
【００６４】
ルート付きツリー構造の１実施の形態において、各圧縮ノードは、圧縮ノード中に表された第１のノードに対応するシグネチャの位置ｐを参照するシグネチャポインターを有し、各リーフノードは、リーフノードに対応するシグネチャセット中の第１のシグネチャの位置ｐを参照するシグネチャポインターを有する。あるいは、リーフノードは、リーフノードに対応するシグネチャセット中の最後のシグネチャの位置ｐを参照するシグネチャポインターを有することもできる。必要に応じて、リーフノードを有する圧縮ノードは２つのポインターを有することができる。すなわち、１つのポインターは、圧縮ノード中に表される第１のノードに対応するシグネチャの位置を参照し、他のポインターは、リーフノードに対応するシグネチャセット中の最初のシグネチャ又は最後のシグネチャの位置を参照する。
【００６５】
Ｃ．アプリケーション
上述のルート付きツリー構造は、以下の章で説明するアプリケーションを含む種々のアプリケーションで用いることができる。
【００６６】
１．コンテンツの特定
コンテンツを特定するアプリケーションのいくつかの例には、許可されていないコピーを検出するもの、及び特定のコンテンツの送信又は受信を確認するものが含まれる。
【００６７】
ピア・ツー・ピア・サーバーのネットワークは、コンテンツの分配を容易にするが、コンテンツのコピーの多くがピア・ツー・ピア・サーバー中に存在することがあるので、所有権を有するコンテンツの、海賊版又は許可が得られていないコピーを検出することの難しさが増大する。このネットワークから入手可能なすべてのコンテンツについてシグネチャを生成し、これらのシグネチャを参照シグネチャのデータベースと照合することにより、このネットワーク中に、許可が得られていないコピーが存在するかどうかを自動的に判断することができる。
【００６８】
特定のコンテンツを配信するブロードキャストネットワークとの契約の本質は、ブロードキャスト受信器により受信した信号からシグネチャを生成し、生成したシグネチャを特定のコンテンツについての参照シグネチャと比較することにより、契約条件を満足していることを確認することができることである。
【００６９】
ブロードキャストネットワークの評価の本質は、受信した信号からシグネチャを生成し、生成したシグネチャを参照シグネチャと比較することにより、受信器により受信したコンテンツを特定することができることである。
【００７０】
図３は、上述のような種々のアプリケーションを実施するために用いることのできるシステムの概略ブロック図である。必要なら、オーディオコンテンツだけ又はビデオコンテンツだけのような単一のコンテンツを実施するために類似のシステムを用いることができる。図示のシステムを参照して、ビデオシグネチャ生成装置１００及びオーディオシグネチャ生成装置２００は、経路３１から受け取ったビデオ／オーディオストリームのコンテンツから参照ビデオシグネチャ及び参照オーディオシグネチャを生成する。生成した参照ビデオシグネチャは複数のセットにまとめられビデオシグネチャデータベース（ＶＳＩＧ  ＤＢ）１８０中に記録され、生成した参照オーディオシグネチャは、複数のセットにまとめられオーディオシグネチャデータベース（ＡＳＩＧ  ＤＢ）２８０中に記録される。参照シグネチャセットは、例えばコンテンツのオーナーを特定するデータ、コンテンツのライセンス条件、コンテンツの表題又はコンテンツのテキスト記述のような、アプリケーションを実施するうえで有用な他の情報と共に記録することができる。ビデオ検索エンジン１８５は、ビデオシグネチャデータベース１８０中に記録されている参照ビデオシグネチャセットを表すルート付きツリー構造を検索する。オーディオ検索エンジン２８５は、オーディオシグネチャデータベース２８０中に記録されている参照オーディオシグネチャセットを表すルート付きツリー構造を検索する。これらのルート付きツリー構造の一方又は両方は、使用に先立ち組み立てて、記憶装置に記録することができ、あるいは、使用時に組み立てることもできる。特定のテストビデオコンテンツあるいはテストオーディオコンテンツの身元は、ビデオデータベース及びオーディオデータベースに保存されているシグネチャセットにより表される参照コンテンツにより点検することができる。テストビデオコンテンツの身元は、ビデオシグネチャ生成装置１０１に、経路３３から受け取ったテストビデオコンテンツからテストビデオシグネチャセットを生成させ、このテストビデオシグネチャセットをビデオ検索エンジン１８５に送ることにより点検することができる。ビデオ検索エンジン１８５は、ビデオシグネチャデータベース１８０中の参照ビデオシグネチャセットがテストビデオシグネチャセットと正確に一致するか又は非常に近いかどうかをみようと試みる。テストオーディオコンテンツの身元は、オーディオシグネチャ生成装置２０１に、経路３３から受け取ったテストオーディオコンテンツからテストオーディオシグネチャセットを生成させ、このテストオーディオシグネチャセットをオーディオ検索エンジン２８５に送ることにより点検することができる。オーディオ検索エンジン２８５は、オーディオシグネチャデータベース２８０中の参照オーディオシグネチャセットがテストオーディオシグネチャセットと正確に一致するか又は非常に近いかどうかをみようと試みる。
【００７１】
１実施の形態において、検索エンジンは、テストシグネチャセットと、データベース中に保存されている参照シグネチャセットとの間のハミング距離を計算し、テストビデオシグネチャセットに最も近い参照シグネチャセットを検索する。テストシグネチャセットと参照シグネチャセットとの間の距離が閾値より小さければ、テストシグネチャセットに関連づけられたテストコンテンツは、参照シグネチャセットに関連づけられた参照コンテンツのコピーであるか又は修正したコピーであるとみなす。経験的には、約２秒間のコンテンツを表現するシグネチャセットを用いる種々のビデオコンテンツ及びオーディオコンテンツに対して良い結果を得ることができる。
【００７２】
好ましい実施の形態において、ビデオシグネチャデータベース１８０中のすべてのビデオシグネチャセットを、データ要素の列の中の連結されたビデオシグネチャのシーケンスとして記録し、オーディオシグネチャデータベース２８０中のすべてのオーディオシグネチャセットを、もう１つのデータ要素の列の中の連結されたオーディオシグネチャのシーケンスとして記録する。シグネチャは、複数の映画、１つの映画における複数のシーン、複数の曲、あるいは、複数の商業的宣伝及び複数の政治的宣伝のような、複数の項目のコンテンツを表すことができる。１以上の項目のコンテンツがシグネチャのシーケンスにより表されるならば、各コンテンツの項目の開始位置を識別するコンテンツの一覧表が形成される。このコンテンツの一覧表は、コンテンツのどの項目がシグネチャポインターにより参照されるかを判断するために用いることができる。
【００７３】
例えば、コンテンツ識別システムが、１０，０００曲を表す１．５億のオーディオシグネチャを記録するオーディオシグネチャデータベースを有すると仮定する。このデータベースは、データ要素の列の中にすべてのオーディオシグネチャのシーケンスを記録する。シグネチャのシーケンス全体を表現するツリー構造は、上述の技術を用いる検索に先立ち、あるいは、検索と同時に組み立てられる。このツリー構造中の各圧縮ノード及び各リーフノードは、データ要素の列の中のそれぞれのシグネチャの位置を参照するシグネチャポインターを有する。コンテンツの一覧表は、１０，０００の記載項目を持つようにして作られる。コンテンツの一覧表中の記載項目は、それぞれの曲に対応し、その曲中のコンテンツの最初のセグメントを表すオーディオシグネチャの位置を参照するデータ要素の列にコンテンツポインターを含めさせる。システムがテストコンテンツを特定しようとするとき、リーフノードが、シグネチャセットと一致する、対応する参照シグネチャセットを有して存在しているかどうかを判断する。一致している場合、そのリーフノードと関連づけられたシグネチャポインターがコンテンツの一覧表内のコンテンツポインターと比較され、どの曲がテストコンテンツと一致するかを判断する。このシグネチャポインターより小さいか又は同じであるうちの最大のコンテンツポインターを有するものが、検索により特定された曲に対応する。コンテンツの一覧表内の項目が、位置の順にソートされるならば、シグネチャポインターとコンテンツポインターとを比較するために、バイナリー検索技法が用いられる。
【００７４】
合致「リーフノード」が２以上のシグネチャセットと関連づけられているならば、１以上の追加検索がテストコンテンツに対応する曲を特定するために必要となる。これは、いろいろな方法で実行することができる。１つの方法は、１つだけのリーフノードとシグネチャセットとの一致するまで、他のテストシグネチャセットについて追加の独立した検索を行うことである。２番目の方法は、連続した検索を行い、各検索に基づく候補となる曲の表示を記録し、そして、候補の中から複数の検索条件を満たす１つの曲に到達するまで追加の検索を続けるのである。３番目の方法は、２番目の方法と似ているが、次の検索のために、先の検索で特定された候補曲のシグネチャセットだけを表す、小さなツリーを作る。
【００７５】
２．コンテンツの同期
ビデオコンテンツとオーディオコンテンツのストリームは、記録又は作成されるときにはそれぞれ同期しているのがふつうであるが、その後の処理で同期が失われることがある。テレビジョン放送システムにおいて、例えば、同期させたビデオコンテンツとオーディオコンテンツは、送信のために一緒に組み立てられる前に２つの異なる経路を通すために分離することがある。２つの経路での異なる処理により同期化損失が生じる。ストリームは手動で再同期することができるが、これは単調で誤差を生じやすい。上述した位置情報を含むルート付きツリー構造は、自動的に同期化ができるシステムに用いることができる。放送システムにおいて、例えば、放送する直前の送信器又は聞く直前の受信器を含む、システムのどのような場所ででも同期を復元することができる。
【００７６】
好ましい実施の形態において、シグネチャは、ビデオストリーム／オーディオストリームが同期化されたと知られたとき、ビデオコンテンツ及びオーディオコンテンツのストリームから生成される。これらのシグネチャに内在するビデオコンテンツとオーディオコンテンツとのあいだの時間調整を定める調整情報も捕捉される。ビデオシグネチャとオーディオシグネチャ及び調整情報は２つのストリーム間の同期の復元を担う「同期装置」に送られる。この同期装置は、相互に同期を失ったビデオコンテンツとオーディオコンテンツのストリームを受け取り、現在の調整情報と共に新しいシグネチャを生成し、この新しく生成したシグネチャと現在の調整情報とを、元のシグネチャと調整情報とに関連づけ、そして、適切な同期を達成することができるまで現在の整合状態を調整する。これを行う１つの方法を以下に詳述する。
【００７７】
ａ）概要
図４は、同期したビデオストリームとオーディオストリームからビデオシグネチャセットとオーディオシグネチャセット及び調整情報を生成する典型的な捕捉装置３５０である。ビデオコンテンツとオーディオコンテンツ及びビデオストリームとオーディオストリームはここでは、参照コンテンツ及び参照ストリームと称する。参照ストリームから得られたシグネチャセット及び調整情報は、ここでは、それぞれ参照シグネチャセット及び参照調整情報のように称する。ビデオシグネチャセットは、ビデオシグネチャ生成装置１００から取得し、続いて同期装置に使ってもらうために経路１９０に沿って送られる。オーディオシグネチャセットは、オーディオシグネチャ生成装置２００から取得し、続いて同期装置により使ってもらうために経路２９０に沿って送られる。ビデオシグネチャセットとオーディオシグネチャセットを生成するために用いることのできる技術は、前述の特許出願に記載されている。
【００７８】
捕捉装置３５０も、いろいろな方法で記載されている調整情報を捕捉する。例えば、調整情報は、特定のビデオシグネチャセットの開始と、オーディオシグネチャセットの開始とが関連づけられ、実質的に同じ時間のビデオコンテンツのフレームのシーケンスとオーディオコンテンツのセグメントのシーケンスから２つのシグネチャセットが生成されることを含意している。本明細書において、ビデオコンテンツの開始時間とオーディオコンテンツの開始時間とは、もし人がどちらのコンテンツが先であるかを判断するのが困難な場合は、実質的に同じであるとみなす。他の例に示すように、調整情報は、ビデオシグネチャセットとオーディオシグネチャセットとに関連づけられたタイムスタンプ又は時間補正により表され、ビデオコンテンツとオーディオコンテンツに内在する相対的なタイミングを明示する。明示的な調整情報が与えられると、続いて再同期装置で用いるために経路３９０に沿って送られる。どのような調整情報であっても本発明にとって本質的ではない。
【００７９】
図５は、ビデオコンテンツのストリームとオーディオコンテンツのストリームとの間で同期を復元するために用いることのできる再同期装置４００の部分を説明する概略ブロック図である。再同期装置４００にはビデオシグネチャ生成装置１００とオーディオシグネチャ生成装置２００とが含まれる。ビデオシグネチャ生成装置１００は経路３３から受け取ったテストビデオコンテンツのストリームからテストビデオシグネチャセットを生成する。オーディオシグネチャ生成装置２００は、経路３３から受け取ったテストオーディオコンテンツのストリームからテストオーディオシグネチャセットを生成する。これらのストリームのコンテンツは変性されていて適切に同期させることができないかもしれない。ビデオシグネチャ生成装置１００は、テストビデオシグネチャセットを生成するために用いられたテストビデオコンテンツの位置を特定するテストビデオ位置情報を取得し、このテストビデオ位置情報をそれぞれのテストビデオシグネチャセットと関連づける。オーディオシグネチャ生成装置２００は、テストオーディオシグネチャセットを生成するために用いられたテストオーディオコンテンツの位置を特定するテストオーディオ位置情報を取得し、このテストオーディオ位置情報をそれぞれのテストオーディオシグネチャセットと関連づける。
【００８０】
コンテンツ時間遅れ計算器４１０は、参照ビデオシグネチャセットを表すリーフノードを有するルート付きツリー構造を検索し、これらの参照シグネチャセットがテストビデオシグネチャセットとまさに一致するか、非常に近似しているかを判断する。一致することがわかったら、参照ビデオコンテンツと関連する参照ビデオ位置を、一致する参照ビデオシグネチャセットのリーフノードと関連づけられた位置情報から取得する。テストビデオコンテンツと参照ビデオコンテンツとの間のビデオタイミングの相対的な差を、参照ビデオ位置とテストビデオ位置との間の差から計算する。このビデオタイミングの相対的な差は相対時間遅れ計算器４３０に送られる。
【００８１】
コンテンツ時間遅れ計算器４２０は、参照オーディオシグネチャセットを表すリーフノードを有するルート付きツリー構造を検索し、これらの参照シグネチャセットがテストオーディオシグネチャセットとまさに一致するか、非常に近似しているかを判断する。以下に説明するように、１以上の選択区間のコンテンツに対応するシグネチャセットを表すノードを含む部分的なツリー構造を用いることが好ましい。一致することがわかったら、参照オーディオコンテンツと関連する参照オーディオ位置を、一致する参照オーディオシグネチャセットのリーフノードと関連づけられた位置情報から取得する。テストオーディオコンテンツと参照オーディオコンテンツとの間のビデオタイミングの相対的な差を、参照オーディオ位置とテストオーディオ位置との間の差から計算する。このオーディオタイミングの相対的な差は相対時間遅れ計算器４３０に送られる。
【００８２】
相対時間遅れ計算器４３０は、適切な同期のためにテストビデオストリームとテストオーディオストリームの一方又は両方を調整するのに必要な時間遅れ量を計算するためにこれらの相対的な時間差を用いる。参照コンテンツの明示的な調整情報を経路３９０から受け取り、時間遅れ計算に用いる。この時間遅れを表現する情報は、他の装置二時間遅れを組み込むために経路４９０に沿って送られる。例えば、相対的なビデオタイミングの時間差が、対応するテストビデオコンテンツより４秒ほど参照ビデオコンテンツが進んでいることを表し、相対的なオーディオタイミングの時間差が、対応するテストオーディオコンテンツより５秒ほど参照オーディオコンテンツが進んでいると仮定する。相対時間遅れ計算器４３０は、適切に同期させるために、テストビデオストリームの時間遅れ量が１秒に等しいと計算することができる。
【００８３】
ｂ）部分検索ツリー
テストコンテンツと参照コンテンツと相対的時間差は参照コンテンツ全体の継続時間よりはるかに小さい。多くの実施において、この相対的時間差は数秒程度である。したがって、調整のための参照シグネチャセットの検索は、テストシグネチャセットのために特定されたテスト位置である数秒以内の参照コンテンツを表す少ない数の参照シグネチャセットに限定することができる。結果として、上述の同期アプリケーションの効率は、数少ない参照シグネチャセットを表すノードとリンクを有する部分的なルート付きツリー構造を用いることにより改善することができる。
【００８４】
上述の同期システムに用いるのに適したルート付きツリー構造は、参照シグネチャのシーケンスの選択された区間又は選択された窓内のシグネチャに対応するノードで構成することができる。参照シグネチャの全シーケンスには、例えば、１以上の曲のオーディオシグネチャ、又は、１以上の動画の全部又は一部のオーディオシグネチャ又はビデオシグネチャのような、所望の長さのコンテンツのシグネチャを含めることができる。
【００８５】
部分的ツリー構造は、それを使う前に構成しておき既構成ツリーのセットとして保存することができる。この方法は、ツリー構造を用いる時に必要とする処理量を減らすが、既構成ツリー構造を表すデータを記録するための付加的な記憶装置を必要とする。代替的に、部分的ツリー構造を、それを用いるときに構築しても良い。この代替的な方法は、このツリー構造を使うときに処理を追加する必要があるが、ツリー構造を表すデータを記録するのに必要な記憶容量を最小限にすることができる。それぞれ方法を以下に述べる。
【００８６】
ツリーの中間的な各ノードは、シグネチャセットの１以上のシグネチャ又は、シグネチャセットの一連のシグネチャにおける１以上のシグネチャのいくつかのデータ要素に対応させることができる。説明と説明図を簡単にするために、以下の実施例では、ツリー構造の中間的な各ノードは１つのシグネチャに対応するものとする。図示した例では、図示を簡単にするために、ほんの少しのレベルとレベル毎にほんの少しのノードを示しているだけである。
【００８７】
（１）既構成ツリー構造
既構成・部分ツリー構造のセットは、参照コンテンツのいくつかの区間で、シグネチャセットの検索を繰り返すアプリケーションにおいて魅力的となることがある。このような状況は、ほんの少数の参照コンテンツのセグメントに対して多くのテストコンテンツのストリームの同一性を検査するとか、ほんの少数の参照ビデオ／オーディオコンテンツのセグメントからの調整情報を用いてテストビデオ／オーディオコンテンツに多くの修正を加えるアプリケーションにおいて生じることがある。
【００８８】
既構成・部分ツリー構造のセットを構築するために用いることのできる１つの方法では、参照シグネチャの複数の区間を選択し、各区間についてツリー構造を構築し、各ツリー構造を表すデータを記録し、そして、各ツリー構造のデータを参照するために用いることのできるインデックスその他の問合せメカニズムを構築する。例えば、インデックスには、関連する参照コンテンツ及びその参照コンテンツ内のそれぞれのシグネチャの区間位置の識別表示が含まれる。上述の技法は、必要な位置情報を取得し記録するために用いることができる。参照コンテンツと位置の特定の選択のためのツリー構造には、インデックスを経由してアクセスする。
【００８９】
（２）インクリメンタルツリー構造
既構成・部分ツリー構造の使用は、一般に、多くの異なる参照コンテンツの区間についてのシグネチャセットを検索するために必要なアプリケーションにとって魅力的ではない。このような状況は、多くの参照コンテンツのセグメントに対してテストコンテンツの同一性を検査するとか、多くの参照ビデオ／オーディオコンテンツのセグメントからの調整情報を用いてテストビデオ／オーディオコンテンツに修正を加えなければならないアプリケーションにおいて生じることがある。
【００９０】
使用時に部分ツリー構造を構築するために用いることのできる１つの方法では、参照シグネチャのシーケンスに沿って選択窓を進めさせ、その選択窓にすべて含まれるような参照シグネチャセットのみを表すようなツリー構造中でノードとリンクを更新するようなインクリメンタルな方法でツリー構造を構築する。選択窓内のシグネチャをここでは、選択シグネチャと称する。ツリー構造のあらゆる点で表される参照シグネチャセットは、単にその構成要素のシグネチャがすべて選択シグネチャのグループ内にあるような参照シグネチャセットである。
【００９１】
典型的な実施の形態において、各シグネチャは１０ｍｓｅｃのコンテンツであり、各シグネチャセットは２００のシグネチャを有し、隣接するシグネチャセットは、シグネチャ１つ分だけずれた位置から始まる。選択窓は５００シグネチャの長さを持ち、１つのシグネチャ分の長さのステップのつながり分だけ進んでいる。この特別な実施の形態において、選択窓の各位置についてのツリー構造には、３０１のシグネチャセットを表すノードとリンクが含まれている。選択窓が１シグネチャ分だけ進められると、選択シグネチャのグループ内で最も古いシグネチャは、グループから除去され新しいシグネチャがグループに追加される。ツリー構造は、この最も古いシグネチャに対応し、最も古いシグネチャを含むシグネチャセットに対応するすべてのノードとリンクを除去し、この新しいシグネチャを含む新しいシグネチャとシグネチャセットを表すノードとリンクを追加することにより、修正される。
【００９２】
類似する実施の形態の簡単な例を図１０Ａから図１２Ｃに示す。この例では、シグネチャＳ１〜Ｓ１２は、以下の値を持つデータ要素からなる。
【００９３】
2010533322.tif 000008
【００９４】
ここで、いくつかのシグネチャは、圧縮ノードであることを示すために同じ値を割り振っている。
【００９５】
図１０Ａを参照して、選択窓Ｗは、シグネチャＳ１〜Ｓ７を含む選択された一群のシグネチャを定めている。これらのシグネチャは、一群のシグネチャセットＳＳ１〜ＳＳ５の構成要素となっている。各シグネチャセットは３つのシグネチャを含んでいる。図１０Ｂのツリー構造は５つのシグネチャセットを表すノードとリンクが含んでいる。各リンクの検索基準は、そのリンクの下位にあるノードに現れる番号で表されている。例えば、ルートノードＮ０とノードＮ１との間のリンクの検索基準はノードＮ１に現れる番号で示された１である。ノードＮ１とノードＮ１１との間のリンクの検索基準は２であり、ノードＮ１１とノードＮ１１１との間のリンクの検索基準は１である。
【００９６】
ルートノードからリーフノードまでの経路の沿うリンクの検索基準は、そのリーフノードのシグネチャセットをの構成要素となるシグネチャ値のシーケンスを表す。例えば、リーフノードＮ１１１は、そのシグネチャ値１−２−１がルートノードからリーフノードまでの経路に沿って遭遇するリンクのシーケンスであるようなシグネチャセットＳＳ１に対応する。
【００９７】
リーフノードＮ１２１は、そのシグネチャＳ３，Ｓ４，Ｓ５がそれぞれ１，４，５の値を持つようなシグネチャセットＳＳ２を表す。ルートノードＮ０からノードＮ１までの検索基準は１である。したがって、このノードは、シグネチャセットＳＳ１及びＳＳ２を表すリーフノードＮ１１１及びリーフノードＮ１２１までの経路に沿って存在する。他のリーフノードＮ２１１，Ｎ３１１，及びＮ４１１はそれぞれシグネチャセットＳＳ３，ＳＳ４，及びＳＳ５を表す。
【００９８】
この例における各リーフノードは、１以上の中間的なノードが１つだけしか下位ノードを持たない経路で終了している。これらの中間的なノードは、上述のような圧縮ノードとして表される。このことは、図１０Ｃに示されている。圧縮ノードＸ１１は、ノードＮ１１とノードＮ１１１とを表している。圧縮ノードＸ２は、ノードＮ２、ノードＮ２１、及びノードＮ２１１を表している。圧縮ノードＸ３は、ノードＮ３、ノードＮ３１、及びノードＮ３１１を表している。圧縮ノードＸ４は、ノードＮ４、ノードＮ４１、及びノードＮ４１１を表している。圧縮ノードで表されるノードのリンク基準は、圧縮ノード中に現れる記号で表される。例えば、ノードＸ２に現れる記号「２．１．４」は、ルートノードＮ０からノードＮ２１１までの経路に沿って遭遇する、一連のリンク基準２−１−４を表す。
【００９９】
図１０Ｃに示したツリー構造は、図１０Ａに示した選択窓Ｗにより選択された一群のシグネチャを含むシグネチャセットを表す。
【０１００】
図１１Ａに示すように、選択窓Ｗを１シグネチャ分だけ進めた後、選択窓は、シグネチャＳ２〜Ｓ８を含む選択された一群のシグネチャを定める。シグネチャＳ１は選択されたシグネチャから削除され、シグネチャＳ８が追加される。修正後の一群のシグネチャは、別のシグネチャセットＳＳ２〜ＳＳ６のコレクションの構成要素となる。新しい、シグネチャセットのコレクションを表すツリー構造は、図１０Ｂ又は図１０Ｃに示したツリー構造を修正することによりインクリメンタリーに構築される。これは、シグネチャＳ１を表すすべての個々のノードを削除し、シグネチャＳ８を表すノードを追加することにより行われる。ツリーが圧縮ノードを含むならば、シグネチャＳ１の表現を含むすべての圧縮ノードは修正しなければならない。図１１Ｂにその結果を示す。圧縮ノードに対応するツリーを図１１Ｃに示す。この特別な例において、図１１ＢにおけるノードＮ１の下にのみあるノードは、修正しなければならない。これは、図１１Ｃに示されたノードＮ１の下にある、圧縮ノードの修正に対応する。図１１Ｃを参照して、圧縮ノード「４．５」が先の圧縮ノード「２．１」に置き換わり、新しいノード「７．８」が追加される。
【０１０１】
図１２Ａ〜図１２Ｃは、選択窓ＷをシグネチャＳ６〜Ｓ１２を含むように進ませた後生じる状況を示している。図１２Ｂに示されたツリー構造は、２つの中間的なノードに共通する経路を共有する２つのリーフノードＮ１１１とＮ１１２とを示す。対応する圧縮ノードＸ１は図１１Ｃに示される。図中に示される他の圧縮ノードとは異なり、この圧縮ノードはリーフノードを含まない。
【０１０２】
これらの図は、選択窓のようなインクリメンタルな方法で構築され修正されるツリー構造は、シグネチャのシーケンスに沿って進められる。圧縮ノードが用いられるならば、１以上の圧縮ノードは、ツリーにより表現されるシグネチャセット中の変化を反映させるために修正する必要があるかもしれない。シグネチャを一群の選択されたシグネチャから削除することが、ノードの下位に続くものの数を１つだけになるまで減らすならば、既存の圧縮ノードがそのノードを含むように修正されるか、又は、そのノードを表すような新しい圧縮ノードがつくられる。修正に引き続き、２以上の圧縮ノードが同じ経路に沿って存在し、お互いに隣り合うならば、これらの圧縮ノードは単一の圧縮ノードに結合することができる。シグネチャを一群の選択されたシグネチャに加えることが、ノードの下位に続くものの数を１以上に増やすならば、既存の圧縮ノードがそのノードを除外するように修正されるか、または、既存の圧縮ノードが除去され、構成要素であるノードが個々に表示される。圧縮ノードの修正の最終的な結果は、１以上の個々のノードによりお互いに分離させられた同じ経路に沿う２以上の圧縮ノードとなるであろう。
【０１０３】
インクリメンタルなツリー構造を構築する１つの方法は、
（１）一群の選択された参照シグネチャを定めるために参照シグネチャのシーケンスに沿って選択窓を前進させるステップと、
（２）選択窓を前進させた結果として新たに選択窓に入った参照シグネチャのシーケンス内の新しい参照シグネチャを特定するステップと、
（３）一群の選択された参照シグネチャに新しい参照シグネチャを追加するステップと、
（４）新しい参照シグネチャで終了する一群の選択された参照シグネチャ中の一連の参照シグネチャを具備する参照シグネチャセットのコレクションに新しい参照シグネチャを追加するステップと、
（５）新しいリーフノードと１以上の新しいリンクをツリー構造に追加するステップであって、新しいリーフノードは新しい参照シグネチャセットに対応し、１以上の新しいリンクは、ツリー構造中の他のノードとこの１以上の新しいノードとを結合することを特徴とするステップと、
（６）選択窓を前進させた結果得られた選択窓から外れた新たな、参照シグネチャのシーケンス中の古い参照シグネチャを特定するステップと、
（７）一群の選択された参照シグネチャから古い参照シグネチャを削除するステップと、
（８）参照シグネチャセットのコレクションから、一連の参照シグネチャを具備し古い参照シグネチャから始まる古い参照シグネチャセットを削除するステップと、
（９）ツリー構造から、古いリーフノードと１以上の古いリンクを含む古いノードを除去するステップであって、古いリーフノードは古い参照シグネチャセットに対応し、１以上の古いリンクはツリー構造中の他のノードと１以上の古いノードとを結合することを特徴とするステップと、
を具備する。
【０１０４】
インクリメンタルななツリー構造を構築する代替的な方法も可能である。例えば、選択窓を、２以上のシグネチャを表す量だけ、又は、シグネチャセットの長さを越える量だけ、又は、選択窓の長さを越える量だけ、進めさせることもできる。必要に応じて、この量は変更しても良い。
【０１０５】
Ｄ．実施
本発明のさまざまな特徴を組み込んだ装置は、コンピュータ又は汎用コンピュータに見られる構成要素と同様な構成要素と結合したディジタル信号プロセッサ（ＤＳＰ）回路のような専用化した構成要素を含む他の装置により実行させるソフトウェアを含むさまざまな方法で実施することができる。図１３は、本発明の特徴を実施するために用いることのできる装置の概略ブロック図である。プロセッサ７２は計算手段を提供する。ＲＡＭ７３は処理のためのプロセッサ７２により用いられるランダムアクセスメモリ（ＲＡＭ）のシステムである。ＲＯＭ７４は、装置を動作させるのに必要なプログラムを保存するための、及び、おそらく本発明のさまざまな特徴を実行することのできるリードオンリーメモリ（ＲＯＭ）のような固定記憶の形態を示す。Ｉ／Ｏ制御７５は、通信チャンネル７６，７７を用いて信号を受信し送信するインターフェース回路を示す。図示の実施の形態では、すべての主要なシステム構成要素は、２以上の物理的または論理的バスを表すバス７１に接続されているが、バス構成は本発明を実施するためにからなずしも必要ではない。
【０１０６】
汎用コンピュータシステムにより実施される実施の形態では、キーボードやマウスやディスプレイのような装置とのインターフェースのための構成要素、及び、磁気テープ又はディスク或いは光学的記憶媒体のような記憶媒体を有する記憶装置７８を制御するための構成要素を付加的に含めることができる。この記憶媒体はオペレーティングシステムに対する指令プログラム、ユーティリティープログラム、及びアプリケーションプログラムを記憶するために使うことができ、また、本発明のさまざまな特徴を実行するプログラムを含有することができる。
【０１０７】
本発明のさまざまな特徴を実行するために必要な機能は、個別の論理要素、集積回路、１以上のＡＳＩＣｓ及び／又はプログラム制御されるプロセッサを含む広くさまざまな方法に用いられる構成要素により実行される。これらの構成要素を用いる方法は本発明にとって重要ではない。
【０１０８】
本発明を実施するソフトウェアは、超音波から赤外周波数を含む範囲のスペクトルでのベースバンド通信経路又は変調通信経路のような機械的に読み出し可能なさまざまな媒体、又は、磁気テープ、磁気カード、磁気ディスク、光学カード又は光学ディスク、及び紙を含む媒体上の検出可能なマーキングを含んで、原則としてあらゆる記憶技術を含む、情報を伝達する記憶媒体により伝達することができる。
【図１】
2010533322.tif 000009
【図２】
2010533322.tif 000010
【図３】
2010533322.tif 000011
【図４】
2010533322.tif 000012
【図５】
2010533322.tif 000013
【図６】
2010533322.tif 000014
【図７】
2010533322.tif 000015
【図８】
2010533322.tif 000016
【図９】
2010533322.tif 000017
【図１０Ａ】
2010533322.tif 000018
【図１０Ｂ】
2010533322.tif 000019
【図１０Ｃ】
2010533322.tif 000020
【図１１Ａ】
2010533322.tif 000021
【図１１Ｂ】
2010533322.tif 000022
【図１１Ｃ】
2010533322.tif 000023
【図１２Ａ】
2010533322.tif 000024
【図１２Ｂ】
2010533322.tif 000025
【図１２Ｃ】
2010533322.tif 000026
【図１３】
2010533322.tif 000027
【手続補正書】
【提出日】平成21年10月22日(2009.10.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
（ａ）参照シグネチャのシーケンスに沿って選択窓を、１以上の参照シグネチャの区間分だけ前進させるステップであって、該参照シグネチャは視覚的又は聴覚的刺激を表す参照コンテンツのセグメントのシーケンスを表し、該選択窓の中にある参照シグネチャは、一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
（ｂ）ルート付きツリー構造中のノードと、該ノードを結合させるリンクとを、参照シグネチャセットのコレクション中の参照シグネチャセットの変化するメンバーシップを反映させるために、修正するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれの参照シグネチャセットに対応するリーフノードであることを特徴とするステップであって、前記ノードとリンクは、
前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中に、新たな参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
新たなリーフノードを含む１以上の新たなノードと、１以上の新たなリンクとを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記１以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の新たなノードとを結合することを特徴とするステップと、
前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
古いリーフノードと１以上の古いリンクを含む１以上の古いノードを前記ルート付きツリー構造から削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記１以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の古いノードとを結合することを特徴とするステップと、
からなる処理により修正されることを特徴とするステップと、
（ｃ）前記テストコンテンツの一連のセグメントを表す一連のテストシグネチャからなるテストシグネチャセットを取得するステップと、
（ｄ）参照シグネチャセットに対応し、閾値を越えるテストシグネチャセットとの類似の程度を提供する、前記ルート付きツリー構造中に整合リーフノードがあるかどうかを判断するために前記リンクをトラバースするステップと、
（ｅ）前記ルート付きツリー構造中に整合ノードが存在するかどうかを示す整合状態を生成するステップと、
を具備することを特徴とする視覚的又は聴覚的刺激を表現するテストコンテンツを特定する方法。
【請求項２】
前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、整合リーフノードに関連する参照位置情報を取得するステップを具備することを特徴とする請求項１に記載の方法。
【請求項３】
前記参照位置情報は、前記参照シグネチャのシーケンス内に対応する位置を特定することを特徴とする請求項２に記載の方法。
【請求項４】
前記参照シグネチャのシーケンス内に対応する位置とは、前記整合リーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中に特定されたシグネチャの位置であることを特徴とする請求項３に記載の方法。
【請求項５】
前記テストコンテンツのセグメントのシーケンス内に対応する位置を特定するテストシグネチャセットと関連するテスト位置情報を取得するステップと、
前記参照位置情報により特定される位置と前記テスト位置情報により特定される位置とのずれを導き出すステップと、
前記ずれを表す信号を生成するステップと、
を具備することを特徴とする請求項２乃至請求項４のいずれか１項に記載の方法。
【請求項６】
（ａ）視覚的又は聴覚的刺激を表現する参照コンテンツのセグメントのシーケンスを表す参照シグネチャのシーケンス内に選択窓を確立するステップであって、該選択窓の中にある参照シグネチャは、前記参照コンテンツの一部を表す一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
（ｂ）参照シグネチャセットのコレクション中の参照シグネチャセットのメンバーシップを反映させるために、ルートと、複数のノードと、該ノードを結合する複数のリンクからなるルート付きツリー構造を構築するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれのシグネチャセットに対応するリーフノードであることを特徴とするステップと、
（ｃ）前記ルート付きツリー構造中の前記ルートと前記ノードと前記リンクとを表すデータ構造を記録するステップと、
（ｄ）参照シグネチャのシーケンス内の前記選択窓の位置を表し、前記データ構造を参照する、位置指標を記録するステップと、
（ｅ）前記参照コンテンツの異なる部分に対する複数の選択窓の位置に複数のルート付きツリー構造を構築するため、及び、前記複数のルート付きツリー構造と前記複数の選択窓の位置を表す、それぞれのデータ構造とそれぞれの位置指標を記録するために、（ａ）から（ｄ）までのステップを繰り返すステップであって、
ステップ（ａ）を繰り返すことにより、選択窓の隣り合う位置が重複するように、選択窓の長さより小さい区間だけ参照シグネチャのシーケンスに沿って選択窓を前進させることにより、複数の選択窓の位置を確立させ、
ステップ（ｂ）を繰り返すことには、
前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中の、新たな参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
新たなリーフノードを含む１以上の新たなノードと１以上の新たなリンクとを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記１以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の新たなノードとを結合することを特徴とするステップと、
前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
古いリーフノードと１以上の古いリンクを含む１以上の古いノードを前記ルート付きツリー構造から削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記１以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記１以上の古いノードとを結合することを特徴とするステップと、
が含まれることを特徴とする（ａ）から（ｄ）までのステップを繰り返すステップと、  を具備することを特徴とする視覚的又は聴覚的刺激を表現するコンテンツを特定するために用いるツリー構造を構築する方法。
【請求項７】
前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、リーフノードの参照位置情報を取得するステップを具備することを特徴とする請求項６に記載の方法。
【請求項８】
前記参照位置情報は、前記参照シグネチャのシーケンス内に対応する位置を特定することを特徴とする請求項７に記載の方法。
【請求項９】
前記参照シグネチャのシーケンス内に対応する位置とは、前記整合リーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中に特定されたシグネチャの位置であることを特徴とする請求項８に記載の方法。
【請求項１０】
視覚的又は聴覚的刺激を表現するコンテンツを特定するための装置であって、該装置は請求項１乃至請求項９のいずれか１項に記載の各ステップを実行するデータ処理回路を具備することを特徴とする装置。
【請求項１１】
視覚的又は聴覚的刺激を表現するコンテンツを特定するための方法を実行するための装置により実行可能な命令プログラムを伝達する媒体であって、該方法は請求項１乃至請求項９のいずれか１項に記載の各ステップを実行することを特徴とする媒体。
【請求項１２】
ルートノードと、視覚的又は聴覚的刺激を表現するコンテンツのセグメントのシーケンスに対応するシグネチャのシーケンスを表すデータ要素のストリング中の、データ要素のサブストリングにそれぞれが関連する複数の単一レベルノードと、１以上の多レベルノードと、を具備する複数のノードであって、
各単一レベルノードは、固定数量のデータ要素に等しい長さを持つデータ要素のそれぞれのストリングに対応し、
各多レベルノードは、前記固定数量のデータ要素の２以上の整数倍に等しい長さを持つデータ要素のそれぞれのサブストリングに対応し、
前記単一レベルノードの少なくともいくつかはリーフノードであるか、又は、前記多レベルノードの少なくともいくつかはリーフノードを表し、各リーフノードは、前記コンテンツの一部を特定するそれぞれのシグネチャセットの構成要素となるシグネチャのシーケンス中のすべてのシグネチャを表すデータ要素のサブストリングと関連する、
ことを特徴とする、複数のノードと、
前記複数のノード中のノード同士を結合させる複数のリンクであって、
各リンクは１組のノードを結合させ、
すべてのノードは他のノードと結合し、
いくつかのノードはルートノードと結合し、
前記リーフノードの各々は他の１つのノードとのみ結合している、
ことを特徴とする、複数のリンクと、
シグネチャのシーケンスを表すデータ要素のストリング内の、多レベルノードと参照位置とに関連する複数のポインターであって、それぞれのノードに関連するポインターは、該それぞれのノードに関連する一連のシグネチャの中の最初のシグネチャを表すデータ要素のサブストリングの位置を参照する、
ことを特徴とする、複数のポインターと、
を具備することを特徴とする、ルート付きツリー構造を表すデータを記録する媒体。
【請求項１３】
前記単一レベルノードの少なくともいくつかはリーフノードであり、前記多レベルノードの少なくともいくつかはリーフノードを表すことを特徴とする、請求項１２に記載の媒体。
【請求項１４】
前記複数のポインター中のいくつかのポインターは、リーフノードとなる単一レベルノードと関連していることを特徴とする請求項１２に記載の媒体。
【国際調査報告】
2010533322.tif 000028
2010533322.tif 000029
2010533322.tif 000030