JP5241832B2 - マルチメディアコンテンツの特定のためのシグネチャポインターを含む検索ツリーのインクレメンタル構造 - Google Patents

マルチメディアコンテンツの特定のためのシグネチャポインターを含む検索ツリーのインクレメンタル構造 Download PDF

Info

Publication number
JP5241832B2
JP5241832B2 JP2010514763A JP2010514763A JP5241832B2 JP 5241832 B2 JP5241832 B2 JP 5241832B2 JP 2010514763 A JP2010514763 A JP 2010514763A JP 2010514763 A JP2010514763 A JP 2010514763A JP 5241832 B2 JP5241832 B2 JP 5241832B2
Authority
JP
Japan
Prior art keywords
signature
signatures
content
nodes
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010514763A
Other languages
English (en)
Other versions
JP2010533322A (ja
Inventor
ジァン、ウェンユ
ラスロップ、デビッド・ニール
Original Assignee
ドルビー ラボラトリーズ ライセンシング コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ドルビー ラボラトリーズ ライセンシング コーポレイション filed Critical ドルビー ラボラトリーズ ライセンシング コーポレイション
Publication of JP2010533322A publication Critical patent/JP2010533322A/ja
Application granted granted Critical
Publication of JP5241832B2 publication Critical patent/JP5241832B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/71Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/61Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Signal Processing For Recording (AREA)

Description

本発明は、一般に、人の知覚に対する刺激を表現する信号のコンテンツを特定する大きなシグネチャの集合を体系付け検索するために用いることのできるプロセス及びデータ構造に関する。信号の典型的な2つのタイプはビデオ信号とオーディオ信号である。本明細書全般において、「ビデオ信号」及び「ビデオコンテンツ」の語は、視覚に訴えるイメージを表現する信号及びコンテンツを意味し、「オーディオ信号」及び「オーディオコンテンツ」の語は、聴覚に訴えるサウンドを表現する信号及びコンテンツを意味する。
ビデオ信号及びオーディオ信号から伝達された海賊版コンテンツを検出するためのもの、又は分離したビデオ信号とオーディオ信号とを再同期化するためのものを含めて、ビデオ信号コンテンツ又はオーディオ信号コンテンツを特定することを模索するアプリケーションは、一般に信号コンテンツを調べて、そのコンテンツを表現し特定するシグネチャセットを導き出すプロセスに依存している。多くのこれらのアプリケーションにとって、意図的にしろ、意図的ではないにしろ、改変したコンテンツが元のコンテンツと実質的に同じであると人が感じる程度に、このコンテンツの信号が改変されたときでも、高い信頼度で信号を特定することが重要である。元の信号のコンテンツと改変した信号のコンテンツとの感知できる差が小さい場合は、特定するプロセスでは元の信号からのシグネチャセットと、よく似た改変した信号のセットからのシグネチャセットとを導き出すことができることが好ましい。ビデオ信号とオーディオ信号のシグネチャセットを導き出すために用いることのできる少数の処理が、Regunathan Radhakrishnan他による、2006年11月30日付け米国暫定特許出願番号60/872090、表題「Extracting Features of Video and Audio Signal Content to Provide a Reliable Identification of the Signals」、及び、Regunathan Radhakrishnan他による、2007年5月17日付け米国暫定特許出願番号60/930905、表題「Deriving Video Signatures That Are to Picture Modification and Frame−Rate Conversion」に開示されており、開示内容は本出願に参照として組み込まれる。
テスト信号のコンテンツを特定しようとするアプリケーションは、一般に、参照コンテンツのライブラリを表す多くの参照シグネチャセットを取得し、この参照シグネチャをデータ構造の形式に整え、テスト信号のコンテンツからテストシグネチャを導き出し、データ構造を検索してテストシグネチャに一致する参照シグネチャが存在するかどうかを決める。満足できる程度に一致している場合は、テスト信号のコンテンツと対応する参照コンテンツとが同一の信号源である可能性が高い。参照コンテンツが元のコンテンツであれば、テスト信号のコンテンツは、参照コンテンツのコピーであると判断する。
多くのビデオ及びオーディオのアプリケーションに対して、上述のライブラリは非常に多くの参照コンテンツが含まれ、上記データ構造には多くのシグネチャセットが含まれる。このデータ構造を実行するために必要なすべてのシグネチャセットを記録するために、大量の記憶量が必要となり、このデータ構造を検索するために、非常に多くの処理リソースが必要となる。
映像やサウンドや人の感覚を対象とする他の刺激のような参照コンテンツを表現する参照シグネチャの構造を実行し検索するために必要な記憶リソースと処理リソースとを減らすことが本発明の1つの目的である。マッチングテストコンテンツに対応する参照コンテンツ内の位置を特定することを容易にすることが本発明のもう1つの目的である。
本発明の1つの特徴によれば、テストコンテンツのためのテストシグネチャセットと参照コンテンツのための参照シグネチャセットとを比較し、参照シグネチャのシーケンスに沿って選択窓を前進させ、選択窓内の参照シグネチャのグループに基づく参照シグネチャセットのメンバーシップに反映させるためにルート付きツリー構造を修正することにより、テストコンテンツを特定する。テストコンテンツの特定に関してテストコンテンツを表現するテストシグネチャセットを取得し、ルート付きツリー構造を検索することによりチェックし、リーフノードが参照シグネチャセットに対応するツリーの中に存在するかどうかを判断し、テストシグネチャセットとの閾値を越える類似のレベルを提供する。
本発明の他の1つの特徴によれば、テストコンテンツの特定に用いるツリー構造は、参照シグネチャのシーケンスに沿って選択窓を動かし、この選択窓内の参照シグネチャに基づき集められた参照シグネチャセットを表現するルート付きツリー構造を構築し、このルート付きツリー構造を表現するデータ構造を記録し、参照シグネチャのシーケンス内の選択窓の位置を表現し、データ構造を参照する位置指標を記録することにより、構築される。このことは、複数の選択窓の位置についての、複数のルート付きツリー構造を構築し、この複数のルート付きツリー構造と選択窓の位置を表現するデータ構造と位置指標とを記録するために、繰り返される。
本発明のさらに他の1つの特徴によれば、シグネチャのシーケンスを表現するデータ要素のストリング中のデータ要素のサブストリングとそれぞれ関連づけられた、複数の単一レベルノードと1以上の多レベルノードを含む、ルート付きツリー構造を表現するデータを、媒体が記録する。各単一レベルノードは、固定長のデータ要素のサブストリングと関連づけられる。各多レベルノードは、該固定長の2倍以上の整数に等しい長さを持つデータ要素のサブストリングと関連づけられる。単一レベルノード又は多レベルノードのいくつかは、シグネチャセットを構成するすべてのシグネチャを表現するデータ要素のサブストリングと関連付けられたリーフノードである。ポインターは、多レベルノードと、多レベルノードに関連づけられたシグネチャを表現するデータ要素のストリング内の参照位置とに関連づけられる。
本願発明の種々の特徴及び好ましい実施の形態は、以下の説明及び類似の参照番号は類似する要素を表す以下の図面を参照することによりよく理解されるであろう。以下の説明及び図面の内容は、例示であって、本願発明の技術的範囲を限定するためのものではない。
ビデオシグネチャ及びオーディオシグネチャを生成するために用いることのできるシステムの概略ブロック図である。 シグネチャ及びシグネチャセットのシーケンスの概略図である。 ビデオコンテンツ又はオーディオコンテンツを特定するためのシグネチャのデータベースを管理するシステムの概略ブロック図である。 参照シグネチャと、同期させたビデオコンテンツのストリームとオーディオコンテンツのストリームの配列情報とを捕捉するシステムの概略ブロック図である。 ビデオコンテンツのストリームとオーディオコンテンツのストリームとの間の同期を復元するために用いることのできるシステムの一部の概略ブロック図である。 ルート付きツリー構造の概略図である。 ルート付きツリー構造の概略図である。 圧縮されたノードを持つ、ルート付きツリー構造の概略図である。 圧縮されたノードとシグネチャポインターとを持つ、ルート付きツリー構造の概略図である。 シグネチャ及びシグネチャセットのシーケンスの概略図である。 図10Aに示したシグネチャのセットの検索ツリーの概略図である。 図10Bに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。 シグネチャ及びシグネチャセットのシーケンスの概略図である。 図11Aに示したシグネチャセットの検索ツリーの概略図である。 図11Bに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。 シグネチャ及びシグネチャセットのシーケンスの概略図である。 図12Aに示したシグネチャセットの検索ツリーの概略図である。 図12Bに示した検索ツリーに対応する圧縮されたノードを持つ検索ツリーの概略図である。 本発明の種々の特徴を実施するために用いることのできる装置の概略ブロック図である。
A.序論
図1は、本発明の種々の特徴を組み込むことのできる典型的なシステム300の概略ブロック図である。本システム300は、ビデオ信号/オーディオ信号のセグメント3a・・・3dのコンテンツを分析し、その信号の信頼できる同一性の証明を生成する。この例では、同一性の証明は、ビデオコンテンツを特定するビデオシグネチャ199a・・・199dのセットを生成するビデオシグネチャ生成器100と、オーディオコンテンツを特定するオーディオシグネチャ299a・・・299dのセットを生成するオーディオシグネチャ生成器200とによって、もたらされる。
ビデオコンテンツ及びオーディオコンテンツについてのビデオシグネチャとオーディオシグネチャとを生成するシステム300のようなシステムが、例示としてのみ示されている。本発明は、視覚映像、サウンド、あるいは、触覚で感じる感覚のような1以上の形の刺激を表現するコンテンツを伝達するための信号に対してシグネチャを生成する他のシステムに組み込むことができる。本明細書の残りで、視覚的刺激及び聴覚的刺激を表現するコンテンツについてさらに詳細に説明する。
1.シグネチャ及びシグネチャセット
シグネチャを生成するために種々のプロセスを用いることができる。このシグネチャを生成するプロセスの選択如何により、システムの能力に関して実際には顕著な影響を及ぼすかも知れないが、本発明において本質的に特定のプロセスを必要とするわけではない。例えば、先に引用した特許出願に記載されたプロセスを、ビデオシグネチャ及びオーディオシグネチャを生成するために用いることができる。
ビデオコンテンツ及びオーディオコンテンツに対する多くのアプリケーションにおいて、動画の区間及びサウンドの区間を表現するコンテンツのセグメントから導き出される情報から、ビデオシグネチャ及びオーディオシグネチャを生成する。図1に示す例では、ビデオコンテンツとオーディオコンテンツについての個々のシグネチャは、そのビデオ信号/オーディオ信号の個々のセグメントに対応している。このセグメントとシグネチャとの間の特定の対応関係は、単に一例として表示するものである。他の構成も可能である。例えば、ビデオコンテンツの、33msecで表現されるNTSCビデオ信号の1つのフレームに対して、1つのビデオシグネチャを生成することができ、オーディオコンテンツの、10msecで表現されるオーディオ信号サンプルの1つのブロックに対して、1つのオーディオシグネチャを生成することができる。他の例としては、NTSCビデオ信号の一連のフレームに対して、1つのビデオシグネチャを生成することができ、オーディオ信号サンプルの一連のブロックに対して、1つのオーディオシグネチャを生成することができる。
連続するシグネチャのセットは、関連する技術分野ではしばしば「フィンガープリント」と称されるが、ここでは、シグネチャセットと称し、コンテンツの1つの区間を特定するために用いる。コンテンツの変化が少ないか又はコンテンツの変化を感知できない場合は、顕著な変化がない先に引用した特許出願中に開示されているようなシグネチャ生成プロセスを用いることにより、識別の信頼性を改善することができる。
特定の信号のコンテンツが既に参照コンテンツのライブラリ中に存在するかどうかを判断するために図3に示したような識別システムに、信頼性のある識別を用いることができ、また信頼性のある識別は、関連づけられたオーディオコンテンツとビデオコンテンツとの間の時間配列のずれを測定し修正するために、図5に示したような同期システムに用いることができる。識別は、識別すべきコンテンツの1つの区間に対して1以上のシグネチャセットを生成し、これらのシグネチャセットと、一群の既知のコンテンツを表現するシグネチャとを比較することにより行われる。識別すべきコンテンツの1つの区間が既知のコンテンツの1つの区間のシグネチャセットと等しいか又は非常に類似している場合は、2つのコンテンツの区間は、発生源が同じであり、2つの区間は緊密に合致している。
説明を簡単にするために、識別すべきコンテンツとそのシグネチャ及びシグネチャセットとを、ここでは、それぞれ、テストコンテンツ、テストシグネチャ、及び、テストシグネチャセットと称し、既知のコンテンツとそれに関するシグネチャ及びシグネチャセットとを、ここでは、それぞれ、参照コンテンツ、参照シグネチャ、及び、参照シグネチャセットと称する。
2.シグネチャセットの解像度
テストコンテンツと参照コンテンツとの緊密な位置合わせはテストシグネチャセットと参照シグネチャセットとの意味のある比較を行うために重要である。比較の精度又は解像度は、シグネチャセットを生成するプロセスの解像度又はステップサイズにより制限される。例えば、各オーディオシグネチャが10msecのオーディオコンテンツを表現しているならば、1つのシグネチャと同じステップサイズを持つ一連のシグネチャセットを生成することにより、10msecの解像度をもつ一群のシグネチャセットを取得することができる。一例を図2に示す。この例では、シグネチャ5のシーケンスは、それぞれ10msecのコンテンツを表す12個のシグネチャS1,S2,・・・,S12からなる。一連のシグネチャセットSS1,SS2,・・・,SS4は、各々、90msecのコンテンツに対応する隣り合う9個のシグネチャを有する。各シグネチャセットの範囲は、シグネチャ5のシーケンス内で、各シグネチャの始まりと終わりを示す細線で示されている。
多くのアプリケーションにおいて、例えば2秒間というような長い区間のコンテンツを表現するシグネチャセットが生成される。この一連のシグネチャセットの時間分解能又は精度は、図示の例では1つのシグネチャの長さとなっている、連続するシグネチャセットの開始点間の区間、又は、ずれにより制御される。前述の特許出願に開示されているような技術は、テストコンテンツと参照コンテンツとの間の配置の小さな差異に対応するテストシグネチャと参照シグネチャとの間を緊密に整合させるようなシグネチャセットのシグネチャを生成するために用いることが好ましい。
3.シグネチャセットの整合
多くのアプリケーションは、テストシグネチャセットに似ているが同じではない参照シグネチャセットを探すプロセスを実行する。発生源を共通にするテストコンテンツ及び参照コンテンツのシグネチャセットは、2つのうちのどちらか又は両方の理由により、一般に同一ではない。第1の理由はテストコンテンツと参照コンテンツとは同一でない可能性があることであり、一方は他方を修正したものであることがあるからである。第2の理由は、テストコンテンツと参照コンテンツとが同一であったとしても、そのシグネチャを生成させるのに用いられたコンテンツセグメントが正確に整列されていなかったかもしれないからである。これらのうちのどちらか又は両方の理由により、異なったコンテンツのセグメントがテストシグネチャと参照シグネチャを生成するために用いられ、したがって、テストコンテンツと参照コンテンツとが同一の発生源からのものであっても、テストコンテンツと参照コンテンツについて生成されたシグネチャとシグネチャセットが一般に同一にはならない。2つの信号のコンテンツがお互いに同一であるか又は違ってはいるが同じオリジナルコンテンツの異なったバージョンを表す場合、2つの異なる信号のコンテンツは、「起源を共有する」と称される。
2つのシグネチャセット間で同一の程度を測るための測度が閾値を超えている場合、2つの異なるシグネチャセットは整合しているということができる。同一の程度を表す使用可能な1つの測度は、2つのシグネチャセット間のハミング距離の逆数である。2進数データの2つのアイテム間のハミング距離は、2つのアイテム中にあって、お互いに異なっている対応ビットの数に等しい。例えば、X1=010110でX2=110011であれば、2つの値のうち1番目と4番目と6番目のビットが異なるので、X1とX2との間のハミング距離は3に等しい。X1とX2との間のハミング距離がゼロに等しい場合は、2つのアイテムは同じであることを示している。シグネチャセットがシグネチャのシーケンスで成り立ち、各シグネチャがそれぞれ一連のビットで表されているならば、シグネチャセット自身は、その構成シグネチャについてのビット列を連結したもので表すことができる。2つのシグネチャセット間のハミング距離は、2つのそれぞれのビット列同士での異なるビットの数となる。
実施の形態によっては、上述の識別システム及び同期化システムでは、テストシグネチャセットから最小のハミング距離を持つ参照シグネチャセットを見つけることによりテストシグネチャセットに最も整合する参照シグネチャセットを見つけようと試みる。どのような類似性の測度を用いたとしても、しかしながら、最適の整合性を検索するために膨大な数のシグネチャセットを検査しなければならないので、このプロセスは普通は簡単にはいかない。
4.データ構造
シグネチャセットのデータ構造及びその要素のシグネチャのいくつかの形式は検索を簡単にするために使うべきである。使うことのできるデータ構造の1つの形式として、ルート付きツリー構造が知られている。
ルート付きツリー構造は、階層レベルに構成され、枝又はリンクにより相互に接続された要素又はノードにより構成されている。ツリーの1つのレベル内のノードは、ツリー内でそれより1つ低いレベルの1以上の各ノードとリンクによりつながっている。下位にノードを持たないノードはリーフノードと称する。上位にノードを持たないノードはルートノードと称する。一連のリンクにより定まる経路を追いかけるプロセスは、ここでは、リンクのトラバースと称する。
ルート付きツリー構造は、検索基準を各リンクと関連付けることにより検索プロセスを容易にするために用いることができる。これには多くの構成が可能となる。ルート付きツリー構造の一例を図6に示す。ツリーのノードは円で表され、ノード間のリンクは円同士をつなぐ線で表される。このツリーは対称的であり16のリーフノードを有する。各リンクの検索基準は、そのリンクの最下位にあるノードに現れる記号により表現されている。
図6に示したツリーは、連結された一連の2ビットの数により表されるリーフノードの検索に用いることができる。ルートノードNOから始まり、検索プロセスは検索値xの最初の2ビットをルートノードのすぐ下のリンクの基準とを比較する。例えば、ノードN1へのリンクの2ビット検索基準は00である。検索プロセスにより、どのリンクの基準が満足しているかを判断し、そのリンクを次のノードにトラバースする。このプロセスは、そのツリーより下のレベルへと続いてゆきリーフノードに至るまで続けられる。例えば、検索値xが0101に等しい場合は、検索プロセスはルートノードNOから始まり、ノードN2へのリンクの基準01が検索値の最初の2ビットと整合すると判断する。このプロセスはリンクをこのノードまでトラバースし、続いてノードN22へのリンクの基準01が検索値の次の2ビットと整合すると判断する。検索プロセスはノードN22へのリンクをトラバースして終了する。なぜなら、このノードはリーフノードだからである。
ツリー構造は対称でなくてもよく、「完全」あるいはノードがすべて満たされている状態になっている必要はない。例えば、図7に示すツリーは図6に示すツリーに対応しているが、いくつかのノードとリンクが欠けている。欠けているノードとリンクは破線で示されている。検索値xがリーフノードの1つと正確に対応していない場合は、検索プロセスは、整合するリーフノードは無いとリポートするか又は、検索値と最も近似するリーフノードを特定することができる。検索値xが、例えば、0000に等しい場合は、検索プロセスは、ルートノードNOから始まり、ノードN1へのリンクの基準00が検索値の最初の2ビットと正しく整合すると判断する。検索プロセスはノードN1へのリンクをトラバースし、続いて、ノードN13への基準10が、ノードN14への基準11より、検索値の次の2ビットと、より整合していると判断する。検索プロセスは、ノードN13がリーフノードなので、リンクをノードN13までトラバースして終了する。リーフノードN13で表される一連のビット0010は、検索値x=000とは正確には整合していないが、検索値からのハミング距離は1であり、これはこのツリーにおける他のどのリーフノードへのハミング距離よりも小さい。ハミング距離の逆数を類似性の測度として用いるなら、リーフノードN13と関連づけられたビットの連なりは、検索値xに最も近似しているものとなる。
ツリー構造中の各リーフノードは、ルートノードからリーフノードまでトラバースする経路に沿って遭遇する一連のリンクの基準に対応する。特定のリンクの基準は、一般に1つのシグネチャセットに対応するが、同じ一連の基準が1以上のシグネチャのシーケンスに対応することもある。その結果、リーフノードは1以上のシグネチャセットに対応することがある。ルートノードからリーフノードまでの経路に沿って存在する中間的なノードは、そのリーフノードに対応する1以上のシグネチャセット中のシグネチャを構成する、ひと連なりデータ要素の1以上のデータ要素を表す。シグネチャセットが、例えば、一連の2進数値のデータ要素又はビットで表されるならば、各中間的なノードは、1以上のビットを表す。ノードから下がってゆくリンクは、これらのビットで表すことのできる異なった値を表す。
多くのアプリケーションにおいて、各シグネチャは何バイトかの2進数値のデータからなり、各シグネチャセットは何百ものシグネチャの連なりからなる。これらのアプリケーションについて、使いやすいツリー構造の実施の形態は、中間的なノードをシグネチャセットの一連のデータ要素における8ビットすなわち1バイトの2進数データに関連付けることである。1バイトの2進数データは、0から255までの値を表現することができ、したがって、中間的な各ノードは256個の子ノードを持つことができる。ツリーにおけるレベルの数は、各シグネチャセットを表現するのに必要なデータのバイト数に等しい。
ツリー構造を記憶し、構成し、使用する技法について以下に説明する。
B.検索ツリー
1.記憶
本発明の種々の特徴を、ルート付きツリー構造を表すデータを記憶するのに必要な記憶容量を減少させるために用いることができる。
ビデオコンテンツ及びオーディオコンテンツの多くのアプリケーションにおいて、ツリー構造は何千ものレベルと何万ものノードとを有することがある。例えば、Miller他による、「Audio Fingerprinting: Nearest Neighbor Search in High Dimensional Binary Spaces」,2002 IEEE Workshop on Multimedia Signal Processing,2002年12月、182−185ページ、に記載されたシステムでは、8192ビットすなわち1024バイトの長さのシグネチャセットが使われている。可能なすべてのノードとブランチを持つ完全なツリーは、28192=2561024≒102466個のリーフノードを有する。この完全なツリーにおける全ノードの数も102466のオーダーとなる。このようなツリーを表現するデータを記憶するために必要な記憶容量は無限に大きくなる。幸いにして、普通のマルチメディアアプリケーションでは、完全なツリーを必要としない。
数千時間のマルチメディアコンテンツを表現するには、上述の完全なツリー中のリーフノードの数よりもはるかに少ない、Millerの論文に書かれているような何十億ものシグネチャセットを必要とするかも知れない。その結果、マルチメディアアプリケーションのためのルート付きツリー構造は、特にリーフノードに近い低いレベルでは非常にまばらになる。それにもかかわらず、10億(10)は大きな数であり、たくさんのシグネチャセットを表現するツリー構造を記憶するために必要な、非常に大きな記憶容量を必要とする。以下に記載の技術は、多くのマルチメディアアプリケーションのツリー構造を記憶するために必要な記憶量を減らすために用いることができる。
a)仮想的な表現
以下に説明する例では、ツリー中の中間的なノードは8ビットのシグネチャデータを表すと仮定している。ルートノードのすぐ下の、ツリーのレベル1は、(2=256個のノードを持つことができる。レベル1のすぐ下の、レベル2は、(2=65,536個のノードを持つことができる。レベル2のすぐ下の、レベル3は、(2=16,777,216個のノードを持つことができる。このツリーが10億のシグネチャセットを表す場合、各レベル3ノードの下に平均して約60個のリーフノードがある。レベル3ノードはすべて存在すると思われる。レベル1のノードとレベル2のノードとはほぼすべて存在することは間違いない。言い換えれば、レベル1とレベル2とレベル3にあるノードを表現するためには完全ツリー構造が必要になると思われる。
完全ツリー構造を効率的に表現するために、一次元配列を用いることができる。配列の各要素はノードに対応する。配列中の要素を望ましい順序に並べることができるが、1つの使い勝手の良い実施の形態では、左から右、上から下にノードを並べる。
あるいは、これらの上位レベルを、記憶装置に記憶されたデータによる方法ではなく仮想的な方法で表現することができる。これらの上位レベルにある特定のノードへの256個のリンクの各々は、1つのレベルから次のレベルへトラバースするときの検索プロセスにより表現することができる。例えば、後の技法は、レベル1のノードとレベル2のノードとに用いることができ、レベル3のノードは、各要素がレベル3のノードの1つを表す(2≒1.6×107個の要素からなる一次元配列で表現することができる。必要に応じて、配列の要素を、特定のツリー構造中に実際に存在するノードにのみ割り当て、ノードが存在するかしないかは、各ノードに関連づけられた1ビットのフラグにより表現することができる。
以下のソースコードプログラムは、ノードの仮想的な表現と共に用いることのできる検索プロセスの1つの方法を示している。このプログラムフラグメントには、C++プログラム言語の構文的特徴が含まれているが、このプログラムフラグメントが完全な又は実際の実施の形態を表現しようとするものではない。これは単に原理を示すためのものである。ソースコードの各ステートメントは、以下の説明のための参照に便利なように番号をつけてある。
Figure 0005241832
ルーチン「traversal」は、1ノードあたり256のリンクを持つツリーのレベル1とレベル2内のノードの仮想的な表現とともに、先に引用したMillerの論文に記載されたものに類似する検索プロセスを実施する、再帰的に呼び出されるサブルーチンである。3行目のステートメントはこのサブルーチンのエントリーポイントを定義する。入力パラメータには、ポインター「curNode」、検索により見つけようとしているテストシグネチャセット内のシグネチャを記録する要素の配列「searchValue」、検索中のツリーの現在のレベルを指定する値「level」、現在のノードの検索においてこれまで遭遇した全ハミング距離を定める値「dist_sofar」、及び、現在のノードまでの経路に沿ってトラバースしたツリー中のノードを記録する要素の配列「traversed_data」がある。ポインター「curNode」は、一般にツリー構造内で検索されている現在のノードを参照するが、この値は、ノードが仮想的に表現されているツリーの最初の2つのレベルには用いられない。この例では、このポインターは、ツリーの最初の2つのレベルに対してヌル値(null value)が設定されている。
6行目のifステートメントは、検索が現在、レベル1又はレベル2又はレベル3にあるかどうかを判断する。もしどこにもなければ、Millerの論文に記載されているような検索プロセスを表現する29行目のステートメントに続く。もし検索が、現在、レベル1又はレベル2又はレベル3のいずれかにあれば、7行目のステートメントから始まるforループに続く。
7行目から10行目までのforループでは、現在の仮想的なノードから降りてくる256のノードの仮想的な表現を表す要素の配列「virt_node」を初期化する。要素「virt_node[n].byte_val」は、次に続く仮想的なノードの検索基準を記録する。要素「virt_node[n].dist_thisbyte」は、これらの次に続く仮想的なノードと検索値との間のハミング距離を記録する。
11行目のステートメントでは、次の最小ハミング距離の検索で、より有望なノードを最初に調べるようにハミング距離の昇順に配列要素「virt_node」をソートする。
12行目から27行目までのforループでは、256の仮想的なノードのおのおのを調べて、どのノードが検索のよい候補であるかを判断する。この調査は、値「dist_new」を、現在の仮想的なノード「virt_node[n]」までの検索経路に沿って累積した全ハミング距離に等しくなるよう設定する。
12行目のifステートメントでは、現在の仮想的なノード間での経路に沿った検索を示す距離が有望かどうかを判断する。これは、Millerの論文に書かれたように、閾値までの距離を比べることにより行うことができる。もしこの距離が長すぎるなら、それは現在の仮想的なノード迄の検索が有望でないことを示しており、12行目から始まるforループを続け、次の仮想的なノードに対して繰り返す。もしハミング距離「dist_new」が、現在の仮想的なノード迄の検索が有望であることを示していたら、配列「traversed_data」を更新して検索に反映させ15行目の記載を現在の仮想的なノード迄のリンクに沿って続行する。ポインター「node_next」はヌル値に初期化される。
17行目のifステートメントでは、検索は現在、レベル3にあるかどうかを判断する。レベル3に無い場合、現在のレベルはレベル1又はレベル2であり、次のレベルでの検索に継続するよう「traversal」サブルーチンを再帰的に呼び出す25行目のステートメントの実行を続ける。もし検索が現在、レベル3にあるなら、18行目から23行目までのステートメントの実行を続ける。19行目から20行目までのforループでは、「traversed_data」の最初の3つの要素中に記録されている何バイトかのデータを、変数「idx」の整数値として記録されている24ビット列に鎖状に繋ぐ。この値は、その要素がレベル3でのツリー構造中の各ノードでのレコードを記録する配列「NodeArray」のインデックスとして用いられる。一般に、データ構造はレベル1、レベル2、及びレベル3で完成させる。従って、22行目ifステートメントでは、一般に、インデックスをつけたノードが存在し、検索は、25行目の再帰的なサブルーチンの呼び出しとともに続けられる。しかし、レベル3ノードが存在しないならば、12行目から始まるforループを仮想的なノードで反復する、23行目のステートメントの実施を続ける。
25行目のサブルーチン「traversal」の各再帰的な呼び出しが最後に27行目のforループの下端に戻り、forループに現在のレベルでの次の仮想的なノードを調べさせる。256のすべてのノードを調べ終わると、30行目のステートメントでこのサブルーチンが終わる。
b)圧縮ノード
多くのアプリケーションにおいて、ルート付きツリー構造はリーフノードに近い低いレベルではまばらになっている。一般に、子が1つしかない特定の経路に沿う2以上の隣り合うレベルにノードがある。子が1つしかない一連のノードを記録するのに必要な記憶量は、個々のノードを表すデータを記憶させることより、ノードの表示を結合又は圧縮したものを表現するデータを記憶することにより、減らすことができる。例えば、存在しない下位リンクを記録するための各ノードの記憶装置は必要ではない。一連のノードは、圧縮された構造の最初のレベルすなわち最高位のレベルのノード、圧縮された構造により表されるノードの番号すなわちノードのレベル、及び、これらのノード間の孤立したリンクをトラバースするあいだに遭遇する一連の値すなわちリンク基準を特定する圧縮された構造により表現することができる。
図7を参照すると、ノードN3はたった1つの子ノードを持つ。ノードN3とその子のノードN34は、図8に示されたツリー構造中のノードX3として概略的に示した圧縮された構造として表現することができる。圧縮ノードX3に示された表記「10.11」は、ノードN3とN34を通る経路に沿うリンクをトラバースするときに遭遇する一連のリンク基準10−11を表現している。
c)シグネチャポインター
多くのアプリケーションのツリー構造は非常に多くのシグネチャセットを表現する。前述のMillerの論文に記載されているオーディオコンテンツの典型的な実施の形態において、各シグネチャセットは1024バイトのデータからなる。もし、あるアプリケーションで10億(10)のリーフノードと、各リーフノードにつき1つのシグネチャセットを持つツリー構造するとするなら、そのシグネチャセット構成するデータを記録するために、1テラバイト(1012バイト)以上の容量の記憶装置が必要となる。
ツリー構造の各リーフノードのシグネチャセットを構成するデータは、そのリーフノードへの経路に沿って遭遇するリンク基準のシーケンスにより暗に表される。ツリー構造が圧縮ノードを含まないか、又は、圧縮ノードが上述のリンク基準を含むならば、追加のデータはシグネチャセットそのものを記録するためには必要ではなく、シグネチャセットを構成するデータに大量の重複が生じるので、多量の記憶容量が多くのアプリケーションで浪費されることになる。このような重複は、異なるシグネチャセットが重複する一連のシグネチャから構成されていることにより生じる。
上記のように、シグネチャセットは何百ものシグネチャにより成り立っており、異なるシグネチャセットの開始におけるステップサイズすなわちオフセットは1つのシグネチャの存続期間に等しくなることがある。もし各シグネチャセットが200のシグネチャにより構成され隣り合うシグネチャセット間のオフセットが1つのシグネチャであるなら、各シグネチャのデータは200個のシグネチャセット内に含まれる。各シグネチャのデータを別々に記録するために必要な記憶量は、構成シグネチャの全シーケンスについてのデータを記録するために必要な記憶量の200倍となることがある。各圧縮ノードについての一連のリンク基準を、それからすべてのシグネチャセットを取得することができるシグネチャを表すデータ要素の列の中の位置を参照するシグネチャポインターに置き換えることにより、ツリーの必要記憶容量を減らすことができる。多くのアプリケーションにおいて、シグネチャポインターの使用により、ツリーデータ構造の記録に必要な記憶量を90%減少させることができる。
1つの例を図9に示す。この例では、2進数値のデータ要素の列又はビットは、図のツリー構造で表現されるシグネチャのシーケンスを構成する。ビット、バイト、又はニブルを含む、本質的に如何なるデータ要素も、必要に応じて用いることができる。図に示されたシーケンス中の第1のシグネチャはデータ要素の列00で表されている。圧縮ノードX3は、データ要素1011で表されるシグネチャセットに対応する。このノードは、このノードと関係付けられた一連のシグネチャ内の第1のシグネチャを表すシグネチャ5のシーケンス内の位置を参照するシグネチャポインター6を有する。圧縮ノードX3は、リーフノードを含むツリーのすべてのレベルを表すので、このノードと関連づけられた一連のシグネチャは完全シグネチャセットである。
図に示された圧縮ノードはリーフノードで終了する。このことは必須ではない。圧縮ノードはツリー構造のどの部分にあってもよい。リーフノードを含まない圧縮ノードの例が図12Cに示されている。
必要に応じて、シグネチャポインターを圧縮ノード中に含まれていない各リーフノードと関連付けることができる。この関連付けはツリー構造をトラバースするために用いられる複雑なプロセスを単純化することができる。このためのひとつの方法は、さもなければ、圧縮ノード中に含まれなくなるすべてのリーフノードを、唯一のノードを表現する圧縮ノード中に含まれるように定義することである。
2.位置情報
関連するオーディオコンテンツとビデオコンテンツとを時間配置における誤差を測定し修正するためにシグネチャセットを用いる同期システムでは、各ビデオシグネチャセットとオーディオシグネチャセットに対応するビデオコンテンツとオーディオコンテンツ内の位置を定める情報を必要とする。この位置情報は、所望のどんな方法ででも得ることができる。2つの好ましい方法をここで説明する。
a)位置フィールド
シグネチャセットの位置情報を提供するひとつの方法は、構成要素となっているシグネチャがつくられたとき、シグネチャセットによって表されるコンテンツの位置を特定し、そのシグネチャセットに対応するリーフノードに関連づけられたこの位置を、記憶装置に記録する。例えば、位置情報は、コンテンツに埋め込まれた時間コードとして、又はコンテンツの開始からの相対時間として表現することができ、あるいは、この位置情報は、コンテンツの開始からの相対的なフレーム数、ブロック数、又はバイト数のようなものとして、位置を表現することができる。
b)シグネチャポインターで表される位置
シグネチャセットの位置情報を提供するもう1つの方法では、そのシグネチャセットに対応するリーフノードと関連づけられたシグネチャポインターから、シグネチャセットにより表されるコンテンツの位置を導き出す。リーフノードと関連づけられたシグネチャポインターは、シグネチャのシーケンス内に関連するシグネチャセットの位置を参照する。この位置は、シグネチャセット中のシグネチャが導き出されたコンテンツセグメントの相対位置に直接関連がある。1実施の形態において、シグネチャポインターは、シグネチャの第1のシグネチャの位置を参照する。この実施の形態の例を図9に概略的に示す。
図9を参照して、シグネチャセットのシーケンス5中の各シグネチャは、コンテンツセグメントのシーケンス3内のビデオコンテンツ又はオーディオコンテンツのそれぞれのセグメントから導き出されたものである。コンテンツセグメントとシグネチャとの間の対応は、隣接するシグネチャと、コンテンツの隣接するセグメントとの境界を結ぶ線で示されている。太い線で囲み、シグネチャポインターにより参照されたシグネチャセット内の2つのシグネチャはコンテンツセグメントC4及びC5から導き出されたものである。コンテンツセグメントのシーケンス3内のコンテンツセグメントC4の相対位置は、シグネチャポインター6により参照されるシグネチャのシーケンス5内の位置から導き出すことができる。
シグネチャのシーケンス内の各シグネチャが同じ数のデータ要素により表されており、シグネチャが1区間分だけお互いにずれた位置から始まるコンテンツセグメントから導き出されるならば、全体のコンテンツ中のコンテンツセグメンの相対位置は、シグネチャのシーケンス内にある対応するシグネチャの相対位置の一次関数として表現することができる。各シグネチャがM個のデータ要素で表されており、隣接するシグネチャが区間T分だけお互いにずれている、コンテンツのセグメントから導き出されるならば、シグネチャに対応するコンテンツセグメントの位置Lは以下のように表現することができる。
Figure 0005241832
ここで、Pはシグネチャ中の第1のデータ要素の位置である。
例えば、各シグネチャがM=60バイト(bytes)のデータからなり、T=10msecのコンテンツを表すなら、シグネチャのシーケンスの開始からP=510,000バイトの位置が、コンテンツ中の対応する位置Lを示し、以下に等しくなる。
Figure 0005241832
各シグネチャ中のデータ要素Mの数がバイトで表現され、位置Pがビットで表現されるならば、式(1)の表現は以下のように書き直すことができる。
Figure 0005241832
シグネチャ位置は、ツリー構造中の中間的位置から始まる圧縮ノードに対応するコンテンツの位置を導き出すために用いることもできる。例えば、ツリー中の各ノードが、シグネチャデータの1バイトすなわち8ビットに対応し、各シグネチャが、区間T分だけお互いにずれているコンテンツのセグメントから導き出されたMバイトのデータからなり、ビット位置pが、対応するシグネチャの位置を参照するならば、圧縮ノード中の第1のノードに対応するコンテンツの位置は、以下のように表すことができる。
Figure 0005241832
ここで、ρは、圧縮ノードで表された第1のノードのレベルである。
ルート付きツリー構造の1実施の形態において、各圧縮ノードは、圧縮ノード中に表された第1のノードに対応するシグネチャの位置pを参照するシグネチャポインターを有し、各リーフノードは、リーフノードに対応するシグネチャセット中の第1のシグネチャの位置pを参照するシグネチャポインターを有する。あるいは、リーフノードは、リーフノードに対応するシグネチャセット中の最後のシグネチャの位置pを参照するシグネチャポインターを有することもできる。必要に応じて、リーフノードを有する圧縮ノードは2つのポインターを有することができる。すなわち、1つのポインターは、圧縮ノード中に表される第1のノードに対応するシグネチャの位置を参照し、他のポインターは、リーフノードに対応するシグネチャセット中の最初のシグネチャ又は最後のシグネチャの位置を参照する。
C.アプリケーション
上述のルート付きツリー構造は、以下の章で説明するアプリケーションを含む種々のアプリケーションで用いることができる。
1.コンテンツの特定
コンテンツを特定するアプリケーションのいくつかの例には、許可されていないコピーを検出するもの、及び特定のコンテンツの送信又は受信を確認するものが含まれる。
ピア・ツー・ピア・サーバーのネットワークは、コンテンツの分配を容易にするが、コンテンツのコピーの多くがピア・ツー・ピア・サーバー中に存在することがあるので、所有権を有するコンテンツの、海賊版又は許可が得られていないコピーを検出することの難しさが増大する。このネットワークから入手可能なすべてのコンテンツについてシグネチャを生成し、これらのシグネチャを参照シグネチャのデータベースと照合することにより、このネットワーク中に、許可が得られていないコピーが存在するかどうかを自動的に判断することができる。
特定のコンテンツを配信するブロードキャストネットワークとの契約の本質は、ブロードキャスト受信器により受信した信号からシグネチャを生成し、生成したシグネチャを特定のコンテンツについての参照シグネチャと比較することにより、契約条件を満足していることを確認することができることである。
ブロードキャストネットワークの評価の本質は、受信した信号からシグネチャを生成し、生成したシグネチャを参照シグネチャと比較することにより、受信器により受信したコンテンツを特定することができることである。
図3は、上述のような種々のアプリケーションを実施するために用いることのできるシステムの概略ブロック図である。必要なら、オーディオコンテンツだけ又はビデオコンテンツだけのような単一のコンテンツを実施するために類似のシステムを用いることができる。図示のシステムを参照して、ビデオシグネチャ生成装置100及びオーディオシグネチャ生成装置200は、経路31から受け取ったビデオ/オーディオストリームのコンテンツから参照ビデオシグネチャ及び参照オーディオシグネチャを生成する。生成した参照ビデオシグネチャは複数のセットにまとめられビデオシグネチャデータベース(VSIG DB)180中に記録され、生成した参照オーディオシグネチャは、複数のセットにまとめられオーディオシグネチャデータベース(ASIG DB)280中に記録される。参照シグネチャセットは、例えばコンテンツのオーナーを特定するデータ、コンテンツのライセンス条件、コンテンツの表題又はコンテンツのテキスト記述のような、アプリケーションを実施するうえで有用な他の情報と共に記録することができる。ビデオ検索エンジン185は、ビデオシグネチャデータベース180中に記録されている参照ビデオシグネチャセットを表すルート付きツリー構造を検索する。オーディオ検索エンジン285は、オーディオシグネチャデータベース280中に記録されている参照オーディオシグネチャセットを表すルート付きツリー構造を検索する。これらのルート付きツリー構造の一方又は両方は、使用に先立ち組み立てて、記憶装置に記録することができ、あるいは、使用時に組み立てることもできる。特定のテストビデオコンテンツあるいはテストオーディオコンテンツの身元は、ビデオデータベース及びオーディオデータベースに保存されているシグネチャセットにより表される参照コンテンツにより点検することができる。テストビデオコンテンツの身元は、ビデオシグネチャ生成装置101に、経路33から受け取ったテストビデオコンテンツからテストビデオシグネチャセットを生成させ、このテストビデオシグネチャセットをビデオ検索エンジン185に送ることにより点検することができる。ビデオ検索エンジン185は、ビデオシグネチャデータベース180中の参照ビデオシグネチャセットがテストビデオシグネチャセットと正確に一致するか又は非常に近いかどうかをみようと試みる。テストオーディオコンテンツの身元は、オーディオシグネチャ生成装置201に、経路33から受け取ったテストオーディオコンテンツからテストオーディオシグネチャセットを生成させ、このテストオーディオシグネチャセットをオーディオ検索エンジン285に送ることにより点検することができる。オーディオ検索エンジン285は、オーディオシグネチャデータベース280中の参照オーディオシグネチャセットがテストオーディオシグネチャセットと正確に一致するか又は非常に近いかどうかをみようと試みる。
1実施の形態において、検索エンジンは、テストシグネチャセットと、データベース中に保存されている参照シグネチャセットとの間のハミング距離を計算し、テストビデオシグネチャセットに最も近い参照シグネチャセットを検索する。テストシグネチャセットと参照シグネチャセットとの間の距離が閾値より小さければ、テストシグネチャセットに関連づけられたテストコンテンツは、参照シグネチャセットに関連づけられた参照コンテンツのコピーであるか又は修正したコピーであるとみなす。経験的には、約2秒間のコンテンツを表現するシグネチャセットを用いる種々のビデオコンテンツ及びオーディオコンテンツに対して良い結果を得ることができる。
好ましい実施の形態において、ビデオシグネチャデータベース180中のすべてのビデオシグネチャセットを、データ要素の列の中の連結されたビデオシグネチャのシーケンスとして記録し、オーディオシグネチャデータベース280中のすべてのオーディオシグネチャセットを、もう1つのデータ要素の列の中の連結されたオーディオシグネチャのシーケンスとして記録する。シグネチャは、複数の映画、1つの映画における複数のシーン、複数の曲、あるいは、複数の商業的宣伝及び複数の政治的宣伝のような、複数の項目のコンテンツを表すことができる。1以上の項目のコンテンツがシグネチャのシーケンスにより表されるならば、各コンテンツの項目の開始位置を識別するコンテンツの一覧表が形成される。このコンテンツの一覧表は、コンテンツのどの項目がシグネチャポインターにより参照されるかを判断するために用いることができる。
例えば、コンテンツ識別システムが、10,000曲を表す1.5億のオーディオシグネチャを記録するオーディオシグネチャデータベースを有すると仮定する。このデータベースは、データ要素の列の中にすべてのオーディオシグネチャのシーケンスを記録する。シグネチャのシーケンス全体を表現するツリー構造は、上述の技術を用いる検索に先立ち、あるいは、検索と同時に組み立てられる。このツリー構造中の各圧縮ノード及び各リーフノードは、データ要素の列の中のそれぞれのシグネチャの位置を参照するシグネチャポインターを有する。コンテンツの一覧表は、10,000の記載項目を持つようにして作られる。コンテンツの一覧表中の記載項目は、それぞれの曲に対応し、その曲中のコンテンツの最初のセグメントを表すオーディオシグネチャの位置を参照するデータ要素の列にコンテンツポインターを含めさせる。システムがテストコンテンツを特定しようとするとき、リーフノードが、シグネチャセットと一致する、対応する参照シグネチャセットを有して存在しているかどうかを判断する。一致している場合、そのリーフノードと関連づけられたシグネチャポインターがコンテンツの一覧表内のコンテンツポインターと比較され、どの曲がテストコンテンツと一致するかを判断する。このシグネチャポインターより小さいか又は同じであるうちの最大のコンテンツポインターを有するものが、検索により特定された曲に対応する。コンテンツの一覧表内の項目が、位置の順にソートされるならば、シグネチャポインターとコンテンツポインターとを比較するために、バイナリー検索技法が用いられる。
合致「リーフノード」が2以上のシグネチャセットと関連づけられているならば、1以上の追加検索がテストコンテンツに対応する曲を特定するために必要となる。これは、いろいろな方法で実行することができる。1つの方法は、1つだけのリーフノードとシグネチャセットとの一致するまで、他のテストシグネチャセットについて追加の独立した検索を行うことである。2番目の方法は、連続した検索を行い、各検索に基づく候補となる曲の表示を記録し、そして、候補の中から複数の検索条件を満たす1つの曲に到達するまで追加の検索を続けるのである。3番目の方法は、2番目の方法と似ているが、次の検索のために、先の検索で特定された候補曲のシグネチャセットだけを表す、小さなツリーを作る。
2.コンテンツの同期
ビデオコンテンツとオーディオコンテンツのストリームは、記録又は作成されるときにはそれぞれ同期しているのがふつうであるが、その後の処理で同期が失われることがある。テレビジョン放送システムにおいて、例えば、同期させたビデオコンテンツとオーディオコンテンツは、送信のために一緒に組み立てられる前に2つの異なる経路を通すために分離することがある。2つの経路での異なる処理により同期化損失が生じる。ストリームは手動で再同期することができるが、これは単調で誤差を生じやすい。上述した位置情報を含むルート付きツリー構造は、自動的に同期化ができるシステムに用いることができる。放送システムにおいて、例えば、放送する直前の送信器又は聞く直前の受信器を含む、システムのどのような場所ででも同期を復元することができる。
好ましい実施の形態において、シグネチャは、ビデオストリーム/オーディオストリームが同期化されたと知られたとき、ビデオコンテンツ及びオーディオコンテンツのストリームから生成される。これらのシグネチャに内在するビデオコンテンツとオーディオコンテンツとのあいだの時間調整を定める調整情報も捕捉される。ビデオシグネチャとオーディオシグネチャ及び調整情報は2つのストリーム間の同期の復元を担う「同期装置」に送られる。この同期装置は、相互に同期を失ったビデオコンテンツとオーディオコンテンツのストリームを受け取り、現在の調整情報と共に新しいシグネチャを生成し、この新しく生成したシグネチャと現在の調整情報とを、元のシグネチャと調整情報とに関連づけ、そして、適切な同期を達成することができるまで現在の整合状態を調整する。これを行う1つの方法を以下に詳述する。
a)概要
図4は、同期したビデオストリームとオーディオストリームからビデオシグネチャセットとオーディオシグネチャセット及び調整情報を生成する典型的な捕捉装置350である。ビデオコンテンツとオーディオコンテンツ及びビデオストリームとオーディオストリームはここでは、参照コンテンツ及び参照ストリームと称する。参照ストリームから得られたシグネチャセット及び調整情報は、ここでは、それぞれ参照シグネチャセット及び参照調整情報のように称する。ビデオシグネチャセットは、ビデオシグネチャ生成装置100から取得し、続いて同期装置に使ってもらうために経路190に沿って送られる。オーディオシグネチャセットは、オーディオシグネチャ生成装置200から取得し、続いて同期装置により使ってもらうために経路290に沿って送られる。ビデオシグネチャセットとオーディオシグネチャセットを生成するために用いることのできる技術は、前述の特許出願に記載されている。
捕捉装置350も、いろいろな方法で記載されている調整情報を捕捉する。例えば、調整情報は、特定のビデオシグネチャセットの開始と、オーディオシグネチャセットの開始とが関連づけられ、実質的に同じ時間のビデオコンテンツのフレームのシーケンスとオーディオコンテンツのセグメントのシーケンスから2つのシグネチャセットが生成されることを含意している。本明細書において、ビデオコンテンツの開始時間とオーディオコンテンツの開始時間とは、もし人がどちらのコンテンツが先であるかを判断するのが困難な場合は、実質的に同じであるとみなす。他の例に示すように、調整情報は、ビデオシグネチャセットとオーディオシグネチャセットとに関連づけられたタイムスタンプ又は時間補正により表され、ビデオコンテンツとオーディオコンテンツに内在する相対的なタイミングを明示する。明示的な調整情報が与えられると、続いて再同期装置で用いるために経路390に沿って送られる。どのような調整情報であっても本発明にとって本質的ではない。
図5は、ビデオコンテンツのストリームとオーディオコンテンツのストリームとの間で同期を復元するために用いることのできる再同期装置400の部分を説明する概略ブロック図である。再同期装置400にはビデオシグネチャ生成装置100とオーディオシグネチャ生成装置200とが含まれる。ビデオシグネチャ生成装置100は経路33から受け取ったテストビデオコンテンツのストリームからテストビデオシグネチャセットを生成する。オーディオシグネチャ生成装置200は、経路33から受け取ったテストオーディオコンテンツのストリームからテストオーディオシグネチャセットを生成する。これらのストリームのコンテンツは変性されていて適切に同期させることができないかもしれない。ビデオシグネチャ生成装置100は、テストビデオシグネチャセットを生成するために用いられたテストビデオコンテンツの位置を特定するテストビデオ位置情報を取得し、このテストビデオ位置情報をそれぞれのテストビデオシグネチャセットと関連づける。オーディオシグネチャ生成装置200は、テストオーディオシグネチャセットを生成するために用いられたテストオーディオコンテンツの位置を特定するテストオーディオ位置情報を取得し、このテストオーディオ位置情報をそれぞれのテストオーディオシグネチャセットと関連づける。
コンテンツ時間遅れ計算器410は、参照ビデオシグネチャセットを表すリーフノードを有するルート付きツリー構造を検索し、これらの参照シグネチャセットがテストビデオシグネチャセットとまさに一致するか、非常に近似しているかを判断する。一致することがわかったら、参照ビデオコンテンツと関連する参照ビデオ位置を、一致する参照ビデオシグネチャセットのリーフノードと関連づけられた位置情報から取得する。テストビデオコンテンツと参照ビデオコンテンツとの間のビデオタイミングの相対的な差を、参照ビデオ位置とテストビデオ位置との間の差から計算する。このビデオタイミングの相対的な差は相対時間遅れ計算器430に送られる。
コンテンツ時間遅れ計算器420は、参照オーディオシグネチャセットを表すリーフノードを有するルート付きツリー構造を検索し、これらの参照シグネチャセットがテストオーディオシグネチャセットとまさに一致するか、非常に近似しているかを判断する。以下に説明するように、1以上の選択区間のコンテンツに対応するシグネチャセットを表すノードを含む部分的なツリー構造を用いることが好ましい。一致することがわかったら、参照オーディオコンテンツと関連する参照オーディオ位置を、一致する参照オーディオシグネチャセットのリーフノードと関連づけられた位置情報から取得する。テストオーディオコンテンツと参照オーディオコンテンツとの間のビデオタイミングの相対的な差を、参照オーディオ位置とテストオーディオ位置との間の差から計算する。このオーディオタイミングの相対的な差は相対時間遅れ計算器430に送られる。
相対時間遅れ計算器430は、適切な同期のためにテストビデオストリームとテストオーディオストリームの一方又は両方を調整するのに必要な時間遅れ量を計算するためにこれらの相対的な時間差を用いる。参照コンテンツの明示的な調整情報を経路390から受け取り、時間遅れ計算に用いる。この時間遅れを表現する情報は、他の装置二時間遅れを組み込むために経路490に沿って送られる。例えば、相対的なビデオタイミングの時間差が、対応するテストビデオコンテンツより4秒ほど参照ビデオコンテンツが進んでいることを表し、相対的なオーディオタイミングの時間差が、対応するテストオーディオコンテンツより5秒ほど参照オーディオコンテンツが進んでいると仮定する。相対時間遅れ計算器430は、適切に同期させるために、テストビデオストリームの時間遅れ量が1秒に等しいと計算することができる。
b)部分検索ツリー
テストコンテンツと参照コンテンツと相対的時間差は参照コンテンツ全体の継続時間よりはるかに小さい。多くの実施において、この相対的時間差は数秒程度である。したがって、調整のための参照シグネチャセットの検索は、テストシグネチャセットのために特定されたテスト位置である数秒以内の参照コンテンツを表す少ない数の参照シグネチャセットに限定することができる。結果として、上述の同期アプリケーションの効率は、数少ない参照シグネチャセットを表すノードとリンクを有する部分的なルート付きツリー構造を用いることにより改善することができる。
上述の同期システムに用いるのに適したルート付きツリー構造は、参照シグネチャのシーケンスの選択された区間又は選択された窓内のシグネチャに対応するノードで構成することができる。参照シグネチャの全シーケンスには、例えば、1以上の曲のオーディオシグネチャ、又は、1以上の動画の全部又は一部のオーディオシグネチャ又はビデオシグネチャのような、所望の長さのコンテンツのシグネチャを含めることができる。
部分的ツリー構造は、それを使う前に構成しておき既構成ツリーのセットとして保存することができる。この方法は、ツリー構造を用いる時に必要とする処理量を減らすが、既構成ツリー構造を表すデータを記録するための付加的な記憶装置を必要とする。代替的に、部分的ツリー構造を、それを用いるときに構築しても良い。この代替的な方法は、このツリー構造を使うときに処理を追加する必要があるが、ツリー構造を表すデータを記録するのに必要な記憶容量を最小限にすることができる。それぞれ方法を以下に述べる。
ツリーの中間的な各ノードは、シグネチャセットの1以上のシグネチャ又は、シグネチャセットの一連のシグネチャにおける1以上のシグネチャのいくつかのデータ要素に対応させることができる。説明と説明図を簡単にするために、以下の実施例では、ツリー構造の中間的な各ノードは1つのシグネチャに対応するものとする。図示した例では、図示を簡単にするために、ほんの少しのレベルとレベル毎にほんの少しのノードを示しているだけである。
(1)既構成ツリー構造
既構成・部分ツリー構造のセットは、参照コンテンツのいくつかの区間で、シグネチャセットの検索を繰り返すアプリケーションにおいて魅力的となることがある。このような状況は、ほんの少数の参照コンテンツのセグメントに対して多くのテストコンテンツのストリームの同一性を検査するとか、ほんの少数の参照ビデオ/オーディオコンテンツのセグメントからの調整情報を用いてテストビデオ/オーディオコンテンツに多くの修正を加えるアプリケーションにおいて生じることがある。
既構成・部分ツリー構造のセットを構築するために用いることのできる1つの方法では、参照シグネチャの複数の区間を選択し、各区間についてツリー構造を構築し、各ツリー構造を表すデータを記録し、そして、各ツリー構造のデータを参照するために用いることのできるインデックスその他の問合せメカニズムを構築する。例えば、インデックスには、関連する参照コンテンツ及びその参照コンテンツ内のそれぞれのシグネチャの区間位置の識別表示が含まれる。上述の技法は、必要な位置情報を取得し記録するために用いることができる。参照コンテンツと位置の特定の選択のためのツリー構造には、インデックスを経由してアクセスする。
(2)インクリメンタルツリー構造
既構成・部分ツリー構造の使用は、一般に、多くの異なる参照コンテンツの区間についてのシグネチャセットを検索するために必要なアプリケーションにとって魅力的ではない。このような状況は、多くの参照コンテンツのセグメントに対してテストコンテンツの同一性を検査するとか、多くの参照ビデオ/オーディオコンテンツのセグメントからの調整情報を用いてテストビデオ/オーディオコンテンツに修正を加えなければならないアプリケーションにおいて生じることがある。
使用時に部分ツリー構造を構築するために用いることのできる1つの方法では、参照シグネチャのシーケンスに沿って選択窓を進めさせ、その選択窓にすべて含まれるような参照シグネチャセットのみを表すようなツリー構造中でノードとリンクを更新するようなインクリメンタルな方法でツリー構造を構築する。選択窓内のシグネチャをここでは、選択シグネチャと称する。ツリー構造のあらゆる点で表される参照シグネチャセットは、単にその構成要素のシグネチャがすべて選択シグネチャのグループ内にあるような参照シグネチャセットである。
典型的な実施の形態において、各シグネチャは10msecのコンテンツであり、各シグネチャセットは200のシグネチャを有し、隣接するシグネチャセットは、シグネチャ1つ分だけずれた位置から始まる。選択窓は500シグネチャの長さを持ち、1つのシグネチャ分の長さのステップのつながり分だけ進んでいる。この特別な実施の形態において、選択窓の各位置についてのツリー構造には、301のシグネチャセットを表すノードとリンクが含まれている。選択窓が1シグネチャ分だけ進められると、選択シグネチャのグループ内で最も古いシグネチャは、グループから除去され新しいシグネチャがグループに追加される。ツリー構造は、この最も古いシグネチャに対応し、最も古いシグネチャを含むシグネチャセットに対応するすべてのノードとリンクを除去し、この新しいシグネチャを含む新しいシグネチャとシグネチャセットを表すノードとリンクを追加することにより、修正される。
類似する実施の形態の簡単な例を図10Aから図12Cに示す。この例では、シグネチャS1〜S12は、以下の値を持つデータ要素からなる。
Figure 0005241832
ここで、いくつかのシグネチャは、圧縮ノードであることを示すために同じ値を割り振っている。
図10Aを参照して、選択窓Wは、シグネチャS1〜S7を含む選択された一群のシグネチャを定めている。これらのシグネチャは、一群のシグネチャセットSS1〜SS5の構成要素となっている。各シグネチャセットは3つのシグネチャを含んでいる。図10Bのツリー構造は5つのシグネチャセットを表すノードとリンクが含んでいる。各リンクの検索基準は、そのリンクの下位にあるノードに現れる番号で表されている。例えば、ルートノードN0とノードN1との間のリンクの検索基準はノードN1に現れる番号で示された1である。ノードN1とノードN11との間のリンクの検索基準は2であり、ノードN11とノードN111との間のリンクの検索基準は1である。
ルートノードからリーフノードまでの経路の沿うリンクの検索基準は、そのリーフノードのシグネチャセットをの構成要素となるシグネチャ値のシーケンスを表す。例えば、リーフノードN111は、そのシグネチャ値1−2−1がルートノードからリーフノードまでの経路に沿って遭遇するリンクのシーケンスであるようなシグネチャセットSS1に対応する。
リーフノードN121は、そのシグネチャS3,S4,S5がそれぞれ1,4,5の値を持つようなシグネチャセットSS2を表す。ルートノードN0からノードN1までの検索基準は1である。したがって、このノードは、シグネチャセットSS1及びSS2を表すリーフノードN111及びリーフノードN121までの経路に沿って存在する。他のリーフノードN211,N311,及びN411はそれぞれシグネチャセットSS3,SS4,及びSS5を表す。
この例における各リーフノードは、1以上の中間的なノードが1つだけしか下位ノードを持たない経路で終了している。これらの中間的なノードは、上述のような圧縮ノードとして表される。このことは、図10Cに示されている。圧縮ノードX11は、ノードN11とノードN111とを表している。圧縮ノードX2は、ノードN2、ノードN21、及びノードN211を表している。圧縮ノードX3は、ノードN3、ノードN31、及びノードN311を表している。圧縮ノードX4は、ノードN4、ノードN41、及びノードN411を表している。圧縮ノードで表されるノードのリンク基準は、圧縮ノード中に現れる記号で表される。例えば、ノードX2に現れる記号「2.1.4」は、ルートノードN0からノードN211までの経路に沿って遭遇する、一連のリンク基準2−1−4を表す。
図10Cに示したツリー構造は、図10Aに示した選択窓Wにより選択された一群のシグネチャを含むシグネチャセットを表す。
図11Aに示すように、選択窓Wを1シグネチャ分だけ進めた後、選択窓は、シグネチャS2〜S8を含む選択された一群のシグネチャを定める。シグネチャS1は選択されたシグネチャから削除され、シグネチャS8が追加される。修正後の一群のシグネチャは、別のシグネチャセットSS2〜SS6のコレクションの構成要素となる。新しい、シグネチャセットのコレクションを表すツリー構造は、図10B又は図10Cに示したツリー構造を修正することによりインクリメンタリーに構築される。これは、シグネチャS1を表すすべての個々のノードを削除し、シグネチャS8を表すノードを追加することにより行われる。ツリーが圧縮ノードを含むならば、シグネチャS1の表現を含むすべての圧縮ノードは修正しなければならない。図11Bにその結果を示す。圧縮ノードに対応するツリーを図11Cに示す。この特別な例において、図11BにおけるノードN1の下にのみあるノードは、修正しなければならない。これは、図11Cに示されたノードN1の下にある、圧縮ノードの修正に対応する。図11Cを参照して、圧縮ノード「4.5」が先の圧縮ノード「2.1」に置き換わり、新しいノード「7.8」が追加される。
図12A〜図12Cは、選択窓WをシグネチャS6〜S12を含むように進ませた後生じる状況を示している。図12Bに示されたツリー構造は、2つの中間的なノードに共通する経路を共有する2つのリーフノードN111とN112とを示す。対応する圧縮ノードX1は図11Cに示される。図中に示される他の圧縮ノードとは異なり、この圧縮ノードはリーフノードを含まない。
これらの図は、選択窓のようなインクリメンタルな方法で構築され修正されるツリー構造は、シグネチャのシーケンスに沿って進められる。圧縮ノードが用いられるならば、1以上の圧縮ノードは、ツリーにより表現されるシグネチャセット中の変化を反映させるために修正する必要があるかもしれない。シグネチャを一群の選択されたシグネチャから削除することが、ノードの下位に続くものの数を1つだけになるまで減らすならば、既存の圧縮ノードがそのノードを含むように修正されるか、又は、そのノードを表すような新しい圧縮ノードがつくられる。修正に引き続き、2以上の圧縮ノードが同じ経路に沿って存在し、お互いに隣り合うならば、これらの圧縮ノードは単一の圧縮ノードに結合することができる。シグネチャを一群の選択されたシグネチャに加えることが、ノードの下位に続くものの数を1以上に増やすならば、既存の圧縮ノードがそのノードを除外するように修正されるか、または、既存の圧縮ノードが除去され、構成要素であるノードが個々に表示される。圧縮ノードの修正の最終的な結果は、1以上の個々のノードによりお互いに分離させられた同じ経路に沿う2以上の圧縮ノードとなるであろう。
インクリメンタルなツリー構造を構築する1つの方法は、
(1)一群の選択された参照シグネチャを定めるために参照シグネチャのシーケンスに沿って選択窓を前進させるステップと、
(2)選択窓を前進させた結果として新たに選択窓に入った参照シグネチャのシーケンス内の新しい参照シグネチャを特定するステップと、
(3)一群の選択された参照シグネチャに新しい参照シグネチャを追加するステップと、
(4)新しい参照シグネチャで終了する一群の選択された参照シグネチャ中の一連の参照シグネチャを具備する参照シグネチャセットのコレクションに新しい参照シグネチャを追加するステップと、
(5)新しいリーフノードと1以上の新しいリンクをツリー構造に追加するステップであって、新しいリーフノードは新しい参照シグネチャセットに対応し、1以上の新しいリンクは、ツリー構造中の他のノードとこの1以上の新しいノードとを結合することを特徴とするステップと、
(6)選択窓を前進させた結果得られた選択窓から外れた新たな、参照シグネチャのシーケンス中の古い参照シグネチャを特定するステップと、
(7)一群の選択された参照シグネチャから古い参照シグネチャを削除するステップと、
(8)参照シグネチャセットのコレクションから、一連の参照シグネチャを具備し古い参照シグネチャから始まる古い参照シグネチャセットを削除するステップと、
(9)ツリー構造から、古いリーフノードと1以上の古いリンクを含む古いノードを除去するステップであって、古いリーフノードは古い参照シグネチャセットに対応し、1以上の古いリンクはツリー構造中の他のノードと1以上の古いノードとを結合することを特徴とするステップと、
を具備する。
インクリメンタルななツリー構造を構築する代替的な方法も可能である。例えば、選択窓を、2以上のシグネチャを表す量だけ、又は、シグネチャセットの長さを越える量だけ、又は、選択窓の長さを越える量だけ、進めさせることもできる。必要に応じて、この量は変更しても良い。
D.実施
本発明のさまざまな特徴を組み込んだ装置は、コンピュータ又は汎用コンピュータに見られる構成要素と同様な構成要素と結合したディジタル信号プロセッサ(DSP)回路のような専用化した構成要素を含む他の装置により実行させるソフトウェアを含むさまざまな方法で実施することができる。図13は、本発明の特徴を実施するために用いることのできる装置の概略ブロック図である。プロセッサ72は計算手段を提供する。RAM73は処理のためのプロセッサ72により用いられるランダムアクセスメモリ(RAM)のシステムである。ROM74は、装置を動作させるのに必要なプログラムを保存するための、及び、おそらく本発明のさまざまな特徴を実行することのできるリードオンリーメモリ(ROM)のような固定記憶の形態を示す。I/O制御75は、通信チャンネル76,77を用いて信号を受信し送信するインターフェース回路を示す。図示の実施の形態では、すべての主要なシステム構成要素は、2以上の物理的または論理的バスを表すバス71に接続されているが、バス構成は本発明を実施するためにからなずしも必要ではない。
汎用コンピュータシステムにより実施される実施の形態では、キーボードやマウスやディスプレイのような装置とのインターフェースのための構成要素、及び、磁気テープ又はディスク或いは光学的記憶媒体のような記憶媒体を有する記憶装置78を制御するための構成要素を付加的に含めることができる。この記憶媒体はオペレーティングシステムに対する指令プログラム、ユーティリティープログラム、及びアプリケーションプログラムを記憶するために使うことができ、また、本発明のさまざまな特徴を実行するプログラムを含有することができる。
本発明のさまざまな特徴を実行するために必要な機能は、個別の論理要素、集積回路、1以上のASICs及び/又はプログラム制御されるプロセッサを含む広くさまざまな方法に用いられる構成要素により実行される。これらの構成要素を用いる方法は本発明にとって重要ではない。
本発明を実施するソフトウェアは、超音波から赤外周波数を含む範囲のスペクトルでのベースバンド通信経路又は変調通信経路のような機械的に読み出し可能なさまざまな媒体、又は、磁気テープ、磁気カード、磁気ディスク、光学カード又は光学ディスク、及び紙を含む媒体上の検出可能なマーキングを含んで、原則としてあらゆる記憶技術を含む、情報を伝達する記憶媒体により伝達することができる。

Claims (11)

  1. 視覚的又は聴覚的刺激を表現するテストコンテンツを特定する方法であって、
    (a)参照シグネチャのシーケンスに沿って選択窓を、1以上の参照シグネチャの区間分だけ前進させるステップであって、該参照シグネチャは視覚的又は聴覚的刺激を表す参照コンテンツのセグメントのシーケンスを表し、該選択窓の中にある参照シグネチャは、一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
    (b)ルート付きツリー構造中のノードと、該ノードを結合させるリンクとを、参照シグネチャセットのコレクション中の参照シグネチャセットの変化するメンバーシップを反映させるために、修正するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれの参照シグネチャセットに対応するリーフノードであることを特徴とするステップであって、前記ノードとリンクは、
    前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中に、新たな参照シグネチャを特定するステップと、
    前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
    前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
    新たなリーフノードを含む1以上の新たなノードと、1以上の新たなリンクとを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記1以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記1以上の新たなノードとを結合することを特徴とするステップと、
    前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
    前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
    前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
    古いリーフノードと1以上の古いリンクを含む1以上の古いノードを前記ルート付きツリー構造から削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記1以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記1以上の古いノードとを結合することを特徴とするステップと、
    からなる処理により修正されることを特徴とするステップと、
    (c)前記テストコンテンツの一連のセグメントを表す一連のテストシグネチャからなるテストシグネチャセットを取得するステップと、
    (d)参照シグネチャセットに対応し、閾値を越えるテストシグネチャセットとの類似の程度を提供する、前記ルート付きツリー構造中に整合リーフノードがあるかどうかを判断するために前記リンクをトラバースするステップと、
    (e)前記整合リーフノードが前記ルート付きツリー構造中に存在するかどうかを示す整合状態信号を生成するステップと、
    を具備することを特徴とする、
    方法。
  2. 前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、整合リーフノードに関連する参照位置情報を取得するステップを具備することを特徴とする請求項1に記載の方法。
  3. 前記参照位置情報は、前記参照シグネチャのシーケンス内に対応する位置を特定することを特徴とする請求項2に記載の方法。
  4. 前記参照シグネチャのシーケンス内に対応する位置とは、前記整合リーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中に特定されたシグネチャの位置であることを特徴とする請求項3に記載の方法。
  5. 前記テストコンテンツのセグメントのシーケンス内に対応する位置を特定するテストシグネチャセットと関連するテスト位置情報を取得するステップと、
    前記参照位置情報により特定される位置と前記テスト位置情報により特定される位置とのずれを導き出すステップと、
    前記ずれを表す信号を生成するステップと、
    を具備することを特徴とする請求項2乃至請求項4のいずれか1項に記載の方法。
  6. (a)視覚的又は聴覚的刺激を表現する参照コンテンツのセグメントのシーケンスを表す参照シグネチャのシーケンス内に選択窓を確立するステップであって、該選択窓の中にある参照シグネチャは、前記参照コンテンツの一部を表す一群の選択された参照シグネチャの構成要素であることを特徴とするステップと、
    (b)参照シグネチャセットのコレクション中の参照シグネチャセットのメンバーシップを反映させるために、ルートと、複数のノードと、該ノードを結合する複数のリンクからなるルート付きツリー構造を構築するステップであって、前記参照シグネチャセットのコレクション中の各参照シグネチャセットは、前記一群の選択された参照シグネチャ内の一連の参照シグネチャを具備し、前記ルート付きツリー構造中のノードは、前記一連の参照シグネチャ中の参照シグネチャと関連し、前記ノードのいくつかはそれぞれの参照シグネチャセットに対応するリーフノードであることを特徴とするステップと、
    (c)前記ルート付きツリー構造中の前記ルートと前記ノードと前記リンクとを表すデータ構造を記録するステップと、
    (d)参照シグネチャのシーケンス内の前記選択窓の位置を表し、前記データ構造を参照する、位置指標を記録するステップと、
    (e)前記参照コンテンツの異なる部分に対する複数の選択窓の位置に複数のルート付きツリー構造を構築するため、及び、前記複数のルート付きツリー構造と前記複数の選択窓の位置を表す、それぞれのデータ構造とそれぞれの位置指標を記録するために、(a)から(d)までのステップを繰り返すステップであって、
    ステップ(a)を繰り返すことにより、選択窓の隣り合う位置が重複するように、選択窓の長さより小さい区間だけ参照シグネチャのシーケンスに沿って選択窓を前進させることにより、複数の選択窓の位置を確立させ、
    ステップ(b)を繰り返すことには、
    前記選択窓を前進させた結果として新たに前記選択窓内に入った参照シグネチャのシーケンス中の、新たな参照シグネチャを特定するステップと、
    前記一群の選択された参照シグネチャに前記新たな参照シグネチャを加えるステップと、
    前記参照シグネチャセットのコレクションに新たな参照シグネチャセットを加えるステップであって、前記新たな参照シグネチャセットは、前記新たな参照シグネチャで終わる前記一群の選択された参照シグネチャ中の一連の参照シグネチャからなることを特徴とするステップと、
    新たなリーフノードを含む1以上の新たなノードと1以上の新たなリンクとを前記ルート付きツリー構造中に加えるステップであって、前記新たなリーフノードは、前記新たな参照シグネチャセットに対応し、前記1以上の新たなリンクは、前記ルート付きツリー構造中の他のノードと前記1以上の新たなノードとを結合することを特徴とするステップと、
    前記選択窓を前進させた結果として新たに前記選択窓から外れた参照シグネチャのシーケンス中に、古い参照シグネチャを特定するステップと、
    前記一群の選択された参照シグネチャから前記古い参照シグネチャを削除するステップと、
    前記参照シグネチャセットのコレクションから古い参照シグネチャセットを削除するステップであって、前記古い参照シグネチャセットは、前記古い参照シグネチャから始まる一連の参照シグネチャからなることを特徴とするステップと、
    古いリーフノードと1以上の古いリンクを含む1以上の古いノードを前記ルート付きツリー構造から削除するステップであって、前記古いリーフノードは、前記古い参照シグネチャセットに対応し、前記1以上の古いリンクは、前記ルート付きツリー構造中の他のノードと前記1以上の古いノードとを結合することを特徴とするステップと、
    が含まれることを特徴とする(a)から(d)までのステップを繰り返すステップと、 を具備することを特徴とする視覚的又は聴覚的刺激を表現するコンテンツを特定するために用いるツリー構造を構築する方法。
  7. 前記参照コンテンツのセグメントのシーケンス内に対応する位置を特定する、リーフノードの参照位置情報を取得するステップを具備することを特徴とする請求項6に記載の方法。
  8. 前記参照位置情報は、前記参照シグネチャのシーケンス内に対応する位置を特定することを特徴とする請求項7に記載の方法。
  9. 前記参照シグネチャのシーケンス内に対応する位置とは、それぞれのリーフノードにより表される参照シグネチャセットの構成要素となる一連のシグネチャ中の特定されたシグネチャの位置であることを特徴とする請求項8に記載の方法。
  10. 視覚的又は聴覚的刺激を表現するコンテンツを特定するための装置であって、該装置は請求項1乃至請求項9のいずれか1項に記載の各ステップを実行するデータ処理回路を具備することを特徴とする装置。
  11. 視覚的又は聴覚的刺激を表現するコンテンツを特定するためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、該プログラムは請求項1乃至請求項9のいずれか1項に記載の各ステップをコンピュータに実行させるためのプログラムであることを特徴とする記録媒体。
JP2010514763A 2007-06-27 2008-06-20 マルチメディアコンテンツの特定のためのシグネチャポインターを含む検索ツリーのインクレメンタル構造 Expired - Fee Related JP5241832B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US93732007P 2007-06-27 2007-06-27
US60/937,320 2007-06-27
PCT/US2008/007686 WO2009005602A2 (en) 2007-06-27 2008-06-20 Incremental construction of search tree with signature pointers for identification of multimedia content

Publications (2)

Publication Number Publication Date
JP2010533322A JP2010533322A (ja) 2010-10-21
JP5241832B2 true JP5241832B2 (ja) 2013-07-17

Family

ID=40226712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010514763A Expired - Fee Related JP5241832B2 (ja) 2007-06-27 2008-06-20 マルチメディアコンテンツの特定のためのシグネチャポインターを含む検索ツリーのインクレメンタル構造

Country Status (5)

Country Link
US (1) US8312051B2 (ja)
EP (1) EP2171615A2 (ja)
JP (1) JP5241832B2 (ja)
CN (1) CN101743512B (ja)
WO (1) WO2009005602A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2030131A1 (en) * 2006-06-06 2009-03-04 Haskolinn I Reykjavik Data mining using an index tree created by recursive projection of data points on random lines
EP2156583B1 (en) 2007-05-02 2018-06-06 The Nielsen Company (US), LLC Methods and apparatus for generating signatures
CN102982810B (zh) 2008-03-05 2016-01-13 尼尔森(美国)有限公司 生成签名的方法和装置
WO2010080857A2 (en) 2009-01-07 2010-07-15 Dolby Laboratories Licensing Corporation Scalable media fingerprint extraction
US9648380B2 (en) 2009-09-14 2017-05-09 Tivo Solutions Inc. Multimedia device recording notification system
US8549398B2 (en) 2009-09-17 2013-10-01 International Business Machines Corporation Method and system for handling non-presence of elements or attributes in semi-structured data
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
US8682145B2 (en) 2009-12-04 2014-03-25 Tivo Inc. Recording system based on multimedia content fingerprints
US8463797B2 (en) * 2010-07-20 2013-06-11 Barracuda Networks Inc. Method for measuring similarity of diverse binary objects comprising bit patterns
KR101110202B1 (ko) * 2010-08-02 2012-02-16 (주)엔써즈 동영상 데이터들의 상호 관계에 기초한 데이터베이스 형성 방법 및 데이터베이스 형성 시스템
US9113202B1 (en) * 2011-09-21 2015-08-18 Google Inc. Inverted client-side fingerprinting and matching
FR2983600B1 (fr) * 2011-12-01 2014-02-07 Airbus Operations Sas Procede et systeme de surveillance d'une interface graphique dans un cockpit d'aeronef
ES2692546T3 (es) * 2011-12-16 2018-12-04 Poseida Therapeutics, Inc. Moduladores TRPC4 para usar en el tratamiento o la prevención del dolor
US9202255B2 (en) * 2012-04-18 2015-12-01 Dolby Laboratories Licensing Corporation Identifying multimedia objects based on multimedia fingerprint
JP5696132B2 (ja) * 2012-12-25 2015-04-08 日本電信電話株式会社 部分的木構造に応じた適応型再構成装置及び方法及びプログラム
US9871606B1 (en) 2013-05-13 2018-01-16 Twitter, Inc. Identification of concurrently broadcast time-based media
US9336227B2 (en) * 2013-10-07 2016-05-10 Sap Se Selective synchronization in a hierarchical folder structure
US9323865B2 (en) * 2013-12-24 2016-04-26 TCL Research America Inc. Content alignment method and system
EP3114584B1 (en) * 2014-03-04 2021-06-23 Interactive Intelligence Group, Inc. Optimization of audio fingerprint search
KR102244135B1 (ko) * 2014-09-05 2021-04-23 삼성전자주식회사 모듈로 스케줄링 방법 및 장치
US9516377B1 (en) * 2015-06-12 2016-12-06 Sorenson Media, Inc. Detecting channel change in automatic content recognition fingerprint matching
GB2547249B (en) * 2016-02-12 2019-09-11 Advanced Risc Mach Ltd An apparatus and method for generating signed bounded pointers
US10909173B2 (en) 2016-12-09 2021-02-02 The Nielsen Company (Us), Llc Scalable architectures for reference signature matching and updating
US10747643B2 (en) * 2018-05-23 2020-08-18 Dropbox, Inc. System for debugging a client synchronization service
US10970193B2 (en) 2018-05-23 2021-04-06 Dropbox, Inc. Debugging a client synchronization service
US11648621B2 (en) 2018-11-02 2023-05-16 Illinois Tool Works Inc. Systems and methods to design part weld processes using media libraries
WO2021171259A1 (en) * 2020-02-27 2021-09-02 Ssimwave Inc. Real-time latency measurement of video streams
CN112347272B (zh) * 2020-09-18 2023-03-10 国家计算机网络与信息安全管理中心 一种基于音视频动态特征的流式匹配方法和装置
CN113704539A (zh) * 2021-09-09 2021-11-26 北京跳悦智能科技有限公司 一种视频序列存储与搜索方法及系统、计算机设备
US11683561B2 (en) * 2021-10-29 2023-06-20 The Nielsen Company (Us), Llc Methods and apparatus to create candidate reference signatures from signature fragments

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3467415B2 (ja) * 1998-12-01 2003-11-17 日本電信電話株式会社 音楽検索装置,音楽検索方法および音楽検索プログラムを記録した記録媒体
JP3597735B2 (ja) 1999-10-12 2004-12-08 日本電信電話株式会社 音楽検索装置,音楽検索方法および音楽検索プログラムを記録した記録媒体
FR2824159B1 (fr) 2001-04-30 2003-07-25 France Telecom Indexation dans une description de document multimedia
KR20040081191A (ko) 2002-02-06 2004-09-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 고속 해시-기반 멀티미디어 객체 메타데이터 검색
EP2030131A1 (en) * 2006-06-06 2009-03-04 Haskolinn I Reykjavik Data mining using an index tree created by recursive projection of data points on random lines
US7823094B2 (en) * 2007-01-09 2010-10-26 International Business Machines Corporation Pseudo-string based pattern recognition in L3GO designs
US8245209B2 (en) * 2007-05-29 2012-08-14 International Business Machines Corporation Detecting dangling pointers and memory leaks within software

Also Published As

Publication number Publication date
US8312051B2 (en) 2012-11-13
WO2009005602A2 (en) 2009-01-08
US20110022638A1 (en) 2011-01-27
EP2171615A2 (en) 2010-04-07
JP2010533322A (ja) 2010-10-21
CN101743512A (zh) 2010-06-16
WO2009005602A3 (en) 2009-05-22
CN101743512B (zh) 2012-09-05

Similar Documents

Publication Publication Date Title
JP5241832B2 (ja) マルチメディアコンテンツの特定のためのシグネチャポインターを含む検索ツリーのインクレメンタル構造
CN101821734B (zh) 时基媒体之间的匹配的检测和分类
JP4398242B2 (ja) 録音の多段階識別方法
US8594392B2 (en) Media identification system for efficient matching of media items having common content
US7181757B1 (en) Video summary description scheme and method and system of video summary description data generation for efficient overview and browsing
JP3780623B2 (ja) 動画像の記述方法
CN102170455B (zh) 用于在本地装置和远程装置间更新对象的方法和系统
US20130326573A1 (en) Video Identification And Search
TW200402654A (en) A system and method for providing user control over repeating objects embedded in a stream
US20120303663A1 (en) Text-based fuzzy search
JP2020027649A (ja) エンティティ関係データ生成方法、装置、機器、及び記憶媒体
BRPI0112901B1 (pt) métodos para reconhecer uma amostra de áudio, e, sistema de computador para realizar o mesmo
WO2010129630A1 (en) Storing and searching fingerprints derived from media content based on a classification of the media content
KR102614021B1 (ko) 오디오 컨텐츠 인식 방법 및 장치
JP5296598B2 (ja) 音声情報抽出装置
KR20120090101A (ko) 디지털 비디오 고속 정합 시스템
KR100896336B1 (ko) 영상 정보 기반의 동영상 연관 검색 시스템 및 방법
WO2002035388A1 (fr) Appareil de transmission d'informations de recherche
US20130198215A1 (en) Method for Forming Database on Basis of Relationship Between Video Data, and Database Formation System
KR100916310B1 (ko) 오디오 신호처리 기반의 음악 및 동영상간의 교차 추천 시스템 및 방법
US8131773B2 (en) Search information managing for moving image contents
JP2003224791A (ja) 映像の検索方法および装置
KR100896335B1 (ko) 오디오 기반의 동영상 파일 중복 검사와 관리를 위한 시스템 및 방법
CN106961626A (zh) 一种视频元信息自动补全整理的方法和装置
JP2000287166A (ja) データ記述方法及びデータ処理装置

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20111018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130115

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130402

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees