(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0022】
[0053]以下の記述では、説明を目的として、本発明の実施形態の十分な理解を提供するために具体的詳細が示されている。しかし、これらの具体的詳細なしでも様々な実施形態が実施されうることは明らかであろう。図および説明は限定のためのものではない。
【0023】
[0054]以下の説明は、例示的実施形態を提供するものにすぎず、本開示の範囲、適用性、または構成を限定するためのものではない。以下の例示的実施形態の説明はむしろ、当業者に、例示的実施形態の実施可能要件を提供するものである。添付の特許請求の範囲に記載されている本発明の趣旨および範囲を逸脱することなく要素の機能および構成の様々な変更を行いうることを理解されたい。
【0024】
[0055]以下の説明では実施形態の十分な理解を提供するために具体的詳細が示されている。しかし、実施形態はこれらの具体的詳細なしでも実施されうることが当業者には理解されるであろう。例えば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、および他の構成要素をブロック図形式の構成要素として示す場合がある。場合によっては、各実施形態を不明瞭にしないように、周知の回路、プロセス、アルゴリズム、構造、および技術を不要な詳細なしで示すこともある。
【0025】
[0056]また、個々の実施形態を、流れ図、フロー図、データフロー図、構造図、またはブロック図として描かれたプロセスとして記述する場合があることにも留意されたい。流れ図は各動作を順次的なプロセスとして記述している場合もあるが、動作の多くは、並列に、または同時に行うことができる。加えて、動作の順序を並べ替えることもできる。プロセスは、その動作が完了したときに打ち切られるが、図には含まれていない追加のステップを有する可能性もある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応させることができる。プロセスが関数に対応する場合、その打ち切りは呼び出した関数またはメイン関数への関数の戻りに対応させることができる。
【0026】
[0057]「機械可読記憶媒体」または「コンピュータ可読記憶媒体」という用語には、可搬型または非可搬型の記憶装置、光記憶装置、ならびに(1つまたは複数の)命令および/またはデータを記憶、収容、または担持することができる様々な他の媒体が含まれるが、これらに限定されない。機械可読記憶媒体またはコンピュータ可読記憶媒体には、データを格納することができ、搬送波および/または無線で、または有線接続上で伝搬する一時的な電子信号を含まない非一時的な媒体が含まれる。非一時的な媒体の例には、磁気ディスクや磁気テープ、コンパクトディスク(CD)やデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスが含まれるが、これらに限定されない。コンピュータプログラム製品には、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、もしくは命令を表すコードセグメントもしくは機械実行可能命令、または命令、データ構造、もしくはプログラム文の任意の組み合わせが含まれる。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを渡し、かつ/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてよい。情報、引数、パラメータ、データ、または他の情報は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送、または他の伝送技術を含む任意の適切な手段を用いて、受け渡され、転送され、または伝送されてよい。
【0027】
[0058]さらに、各実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組み合わせによって実施されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードとして実施される場合、必要なタスクを行うプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、機械可読媒体に格納されてよい。(1つまたは複数の)プロセッサは必要なタスクを行うことができる。
【0028】
[0059]図のいくつかに示されるシステムは、様々な構成で提供されうる。いくつかの実施形態では、システムは、システムの1つまたは複数の構成要素がクラウド・コンピューティング・システムとして1つまたは複数のネットワークにわたって分散されている分散システムとして構成される。
【0029】
[0060]光ファイバおよびデジタル伝送技術の進歩により、テレビ業界は、チャンネル容量を急速に増加させ、全国規模で、何千ものテレビ番組のチャンネルおよび何十万ものオンデマンド番組のチャンネルを提供することができるようになっている。何百万ものアクティブなテレビ表示システムをモニタすることと、非常に多くの何千もの放送チャンネルおよび何万ものオンデマンドコンテンツ配信システムを、往々にしてほぼリアルタイムで迅速に識別することを伴う全国的なビジネスモデルをサポートし、これらを商業的に妥当なコンピューティングリソースを利用してサポートすることが、本明細書に記載するシステムおよび方法によって対処するまだ満たされていない課題である。
【0030】
[0061]さらに詳細に後述するように、本開示のある特定の態様および特徴は、未知のデータ点を1つまたは複数の基準データ点と比較することによって未知の映像セグメントを識別することに関するものである。本明細書に記載するシステムおよび方法は、未知の映像セグメントを識別するのに使用される大規模なデータセットの格納および探索の効率を改善する。例えば、これらのシステムおよび方法は、識別を行うのに必要な大規模なデータセットの密度を低減しつつ、未知のデータセグメントの識別を可能にする。この技術は、大量のデータを収集し、操作する任意のシステムに適用することができる。これらのシステムの実例には、自動化されたコンテンツベースの探索システム(例えば、映像関連アプリケーションや他の適切なアプリケーションの自動コンテンツ認識)、MapReduceシステム、Bigtableシステム、パターン認識システム、顔認識システム、分類システム、コンピュータ・ビジョン・システム、データ圧縮システム、クラスタ分析、または任意の他の適切なシステムが含まれる。当業者であれば、本明細書に記載する技術は、未知のデータと比較されるデータを格納する任意の他のシステムに適用できることを理解するであろう。自動コンテンツ認識(ACR)のコンテキストでは、例えば、これらのシステムおよび方法は、照合システムが未知のデータグループと既知のデータグループとの間の関係を探索し、発見するために格納しなければならないデータ量を削減する。
【0031】
[0062]限定ではなく例示にすぎないが、本明細書に記載するいくつかの例では、説明のために自動音声および/または映像コンテンツ認識システムを使用している。しかし、その他のシステムも同じ技術を使用できることを当業者は理解するであろう。
【0032】
[0063]ACRシステムおよび大量のデータを使用する他のシステムの重要な課題となりうるのは、システムが機能するために必要なデータ量を管理することである。もう1つの課題としては、入ってくるコンテンツを照合するための基準として機能する既知のコンテンツのデータベースを構築、維持する必要が含まれる。このようなデータベースを構築し、維持することは、膨大な量(例えば、何百、何千、またはそれ以上)のコンテンツ(例えば、多くの他の潜在的なコンテンツソースの中でも特に全国配信されるテレビ番組やより一層大量のローカルテレビ放送)を収集し、ダイジェストすることを伴う。ダイジェストは、生データ(例えば、映像や音声)を削減して圧縮された、探索可能なデータにする任意の利用可能な技術を用いて行うことができる。24時間、週7日間の動作スケジュールと、格納すべきおそらくは2週間分のコンテンツ(例えば、テレビ番組)のスライド窓とがあれば、ACRを行うのに必要なデータ量を迅速に構築することができる。上述の例示的システムのような、大量のデータを収集し、操作する他のシステムでも類似した課題が提示されうる。
【0033】
[0064]本明細書に記載する中央自動コンテンツ認識(ACR)システムは、リモート・クライアント・テレビ・システム上に現在表示されている映像番組を検出、識別するのに用いられ、ある特定のビジネスモデルをサポートするためにこれをほぼリアルタイムで行うことができる。メディア照合エンジンは、一般にバケットと呼ばれる複数のセグメントに分割されたメディア探索索引(例えば、ハッシュテーブル)を用いる。いくつかの実施形態では、複数の判断要因に基づいて、例えば、全国コンテンツをローカルコンテンツと分離することや、上位10%の評判のよいコンテンツを残り90%のあまり評判のよくないコンテンツから分離することや、放送メディアをオンデマンドメディアから分離することなどによって、キューデータ(例えば、コンテンツ識別子)を処理して独立した索引にする。分離されると、クライアント・テレビ・システムまたは他の装置からの未知のキューデータは中央サーバによって各索引に照らして検査される。1つまたは複数の索引の探索を並列に(すなわち、同時に)行うことができる。各索引のルックアップ(すなわち、探索)の結果は、参照によりその全体が本明細書に組み入れられる、米国特許第8595781(B2)号の経路追跡システムなどのコンテンツ照合システムに並列に適用することができる。
【0034】
[0065]より小さいデータセット(すなわち、バケット)ほどより正確な照合結果をもたらし、よって、コンテンツ照合システムの探索効率を高めることができる。
【0035】
[0066]
図1に、未知のコンテンツを識別することができる照合システム100を示す。いくつかの例では、未知のコンテンツは1つまたは複数の未知のデータ点を含むことができる。そのような例では、照合システム100は、未知のデータ点を基準データ点と照合して、未知のデータ点と関連付けられた未知の映像セグメントを識別することができる。基準データ点は基準データベース116に含めることができる。
【0036】
[0067]照合システム100は、クライアント機器102と照合サーバ104とを含む。クライアント機器102は、メディアクライアント106と、入力装置108と、出力装置110と、1つまたは複数のコンテキストアプリケーション126とを含む。メディアクライアント106(テレビシステム、コンピュータシステム、またはインターネットに接続できる他の電子機器を含むことができる)は、映像番組128と関連付けられたデータ(例えば、放送信号、データパケット、他のフレームデータ)を復号することができる。メディアクライアント106は、映像の各フレームの復号されたコンテンツを、映像フレームの画素情報の表示またはさらなる処理に備えて映像フレームバッファに入れることができる。クライアント機器102は、映像信号を受信し、復号することができる任意の電子復号システムとすることができる。クライアント機器102は、映像番組128を受信し、映像情報を映像バッファ(図示せず)に格納することができる。クライアント機器102は、映像バッファ情報を処理し、
図3に関連して以下でより詳細に説明する未知のデータ点(「キュー」と呼ぶことができる)を生成することができる。メディアクライアント106は、基準データベース116内の基準データ点と比較するために、未知のデータ点を照合サーバ104に送信することができる。
【0037】
[0068]入力装置108には、メディアクライアント106に要求または他の情報が入力されることを可能にする任意の適切な装置を含むことができる。例えば、入力装置108には、キーボード、マウス、音声認識入力装置、無線機器からの(例えば、リモートコントローラ、モバイル機器、他の適切な無線機器からの)無線入力を受信するための無線インターフェース)、または任意の他の適切な入力装置を含むことができる。出力装置110には、ディスプレイ、無線機器(例えば、モバイル機器や他の適切な無線機器)に無線出力を送信するための無線インターフェース、プリンタ、または他の適切な出力装置など、情報を提示し、またはそれ以外に出力することができる任意の適切な装置を含むことができる。
【0038】
[0069]照合システム100は、最初に既知の映像データソース118からデータサンプルを収集することによって映像セグメントを識別するプロセスを開始することができる。例えば、照合サーバ104は、様々な映像データソース118から基準データベース116を構築し、維持するためにデータを収集する。映像データソース118には、テレビ番組、映画、または任意の他の適切な映像ソースのメディアプロバイダを含むことができる。映像データソース118からの映像データは、無線放送として、ケーブルTVチャンネルとして、インターネットからのストリーミングソースとして、また任意の他の映像データソースから提供することができる。いくつかの例では、照合サーバ104は、後述するように、映像データソース118からの受信映像を、基準データベース116において基準映像データ点を生成、収集するように処理することができる。いくつかの例では、映像データソース118からの映像番組を基準映像番組インジェストシステム(図示せず)によって処理することができ、基準映像番組インジェストシステムは、基準映像データ点を生成し、それらを格納するために基準データベース116に送ることができる。基準データ点は、上述のように、後で未知のデータ点を分析するのに用いられる情報を決定するのに用いることができる。
【0039】
[0070]照合サーバ104は、ある期間(例えば、日数、週数、月数、または任意の他の適切な期間)にわたって受信された映像番組ごとの基準映像データ点を基準データベース116に格納することができる。照合サーバ104は、(例えば、キューまたはキュー値とも呼ばれる基準データ点を含む)テレビ番組サンプルの基準データベース116を構築し、絶えず、または定期的に更新することができる。いくつかの例では、収集されたデータは、周期的な映像フレーム(例えば、5番目ごとの映像フレーム、10番目ごとの映像フレーム、15番目ごとの映像フレーム、他の適切な数のフレーム)からサンプリングされた映像情報の圧縮表現である。いくつかの例では、1フレーム当たりのデータのバイト数(例えば、1フレーム当たり25バイト、50バイト、75バイト、100バイト、または任意の他のバイト数)が番組ソースごとに収集される。25チャンネル、50チャンネル、75チャンネル、100チャンネル、200チャンネル、または任意の他の数の番組ソースなど、任意の数の番組ソースを用いて映像を取得することができる。例示のデータ量を用いると、3日間にわたって24時間に収集される合計データは非常に大きくなる。したがって、実際の基準データ点集合の数を減らすことが、照合サーバ104の記憶負荷を低減させる上で有利である。
【0040】
[0071]メディアクライアント106は、照合サーバ104の照合エンジン112に通信122を送信することができる。通信122は、照合エンジン112が未知のコンテンツを識別することを求める要求を含むことができる。例えば、未知のコンテンツは、1つまたは複数の未知のデータ点を含むことができ、基準データベース116は、複数の基準データ点を含むことができる。照合エンジン112は、未知のデータ点を基準データベース116内の基準データと照合することによって未知のコンテンツを識別することができる。いくつかの例では、未知のコンテンツは、(映像ベースのACRの場合の)ディスプレイによって提示されている未知の映像データ、(MapReduceシステム、Bigtableシステム、または他のデータ・ストレージ・システムの場合の)探索クエリ、(顔認識の場合の)未知の顔の画像、(パターン認識の場合の)未知のパターンの画像、または基準データのデータベースと照合することができる任意の他の未知のデータを含むことができる。基準データ点は、映像データソース118から受信したデータから導出することができる。例えば、映像データソース118から提供された情報からデータ点を抽出することができ、それらのデータ点に索引付けして基準データベース116に格納することができる。
【0041】
[0072]照合エンジン112は、候補決定エンジン114に、基準データベース116から候補データ点を決定するよう求める要求を送信することができる。候補データ点は、未知のデータ点からある決められた距離である基準データ点とすることができる。いくつかの例では、基準データ点と未知のデータ点との距離は、基準データ点の1つまたは複数の画素(例えば、単一の画素、画素群を代表する値(例えば、算術平均値、平均値、中央値、他の値)、または他の適切な数の画素)を、未知のデータ点の1つまたは複数の画素と比較することによって決定することができる。いくつかの例では、基準データ点は、各サンプル位置のところの画素が特定の画素値範囲内にある場合に未知のデータ点からある決められた距離とすることができる。
【0042】
[0073]ある説明例では、画素の画素値は、(赤緑青(RGB)色空間における)赤色値、緑色値、および青色値を含むことができる。このような例では、対応する赤色値、緑色値、および青色値をそれぞれ比較し、各値がある一定の値範囲内(例えば、0〜5値内)にあるようにすることによって、第1の画素(または第1の画素群を表す値)を第2の画素(または第2の画素群を表す値)と比較することができる。例えば、(1)第1の画素の赤色値が第2の画素の赤色値の0〜255の値範囲の5値内(プラスまたはマイナス)にあり、(2)第1の画素の緑色値が第2の画素の緑色値の0〜255の値範囲の5値内(プラスまたはマイナス)にあり、(3)第1の画素の青色値が第2の画素の青色値の0〜255の値範囲の5値内(プラスまたはマイナス)にある場合に、第1の画素を第2の画素と照合することができる。そのような例では、候補データ点は、未知のデータ点に対する近似一致である基準データ点であり、未知のデータ点について(異なるメディアセグメントに関連した)複数の候補データ点が識別されることになる。候補決定エンジン114は、候補データ点を照合エンジン112に返すことができる。
【0043】
[0074]ある候補データ点について、照合エンジン112は、その候補データ点と関連付けられた、候補データ点の導出元である識別された映像セグメントに割り当てられたビンにトークンを付加することができる。対応するトークンを、識別された候補データ点に対応するすべてのビンに追加することができる。(視聴されている未知のコンテンツに対応する)さらに多くの未知のデータ点がクライアント機器102から照合サーバ104によって受信される際に、同様の候補データ点決定プロセスを行うことができ、識別された候補データ点に対応するビンにトークンを付加することができる。ビンのうちの1つだけが視聴されている未知の映像コンテンツのセグメントに対応し、その他のビンは、データ点値が類似しているために(例えば、類似した画素色値を有するために)照合されるが、視聴されている実際のセグメントは対応しない候補データ点に対応する。視聴されている未知の映像コンテンツセグメントのビンには、見られていないセグメントの他のビンよりも多くのトークンが割り当てることになる。例えば、より多くの未知のデータ点が受信されると、ビンに対応するより多数の基準データ点が候補データ点として識別され、より多くのトークンがビンに付加されることになる。ビンに特定の数のトークンが含められると、照合エンジン112は、ビンと関連付けられた映像セグメントが現在クライアント機器102で表示されていると判定することができる映像セグメントは、映像番組全体または映像番組の一部を含むことができる。例えば、映像セグメントは、映像番組、映像番組の場面、映像番組の1つもしくは複数のフレーム、または映像番組の任意の他の部分とすることができる。
【0044】
[0075]
図2に、未知のデータを識別するための照合システム200の構成要素を示す。例えば、照合エンジン212は、既知のコンテンツ(例えば、既知のメディアセグメント、探索対象としてデータベースに格納された情報、既知の顔やパターンなど)のデータベースを用いて未知のコンテンツ(例えば、未知のメディアセグメント、探索クエリ、顔の画像やパターンなど)を識別するための照合プロセスを行うことができる。例えば、照合エンジン212は、基準データベース内の基準データ点204のうちの基準データ点と照合されるべき未知のデータコンテンツ202(「キュー」と呼ぶことができる)を受け取る。未知のデータコンテンツ202は、候補決定エンジン214が受け取ることもでき、照合エンジン212から候補決定エンジン214に送ることもできる。候補決定エンジン214は、探索プロセスを実行して、基準データベース内の基準データ点204を探索することによって候補データ点206を識別することができる。一例では、探索プロセスは、(未知のデータコンテンツ202の未知の値からある一定の距離である)近傍値の集合を生成する最近傍探索プロセスを含むことができる。候補データ点206は、照合プロセスを実行して照合結果208を生成するために照合エンジン212に入力される。アプリケーションに応じて、照合結果208には、ディスプレイによって提示されている映像データ、探索結果、顔認識を用いて判定された顔、パターン認識を用いて判定されたパターン、または他の任意の結果を含むことができる。
【0045】
[0076]未知のデータ点(例えば、未知のデータコンテンツ202)の候補データ点206を決定する際に、候補決定エンジン214は、未知のデータ点と基準データベース内の基準データ点204との距離を決定する。未知のデータ点からある一定の距離である基準データ点は、候補データ点206として識別される。いくつかの例では、基準データ点と未知のデータ点との距離を、
図1に関連して上述したように、基準データ点の1つまたは複数の画素を未知のデータ点の1つまたは複数の画素と比較することによって決定することができる。いくつかの例では、基準データ点は、各サンプル位置のところの画素が特定の値範囲内にある場合に未知のデータ点からある一定の距離とすることができる。上述したように、候補データ点は、未知のデータ点に対する近似一致である基準データ点であり、近似一致であるため、未知のデータ点について(異なるメディアセグメントに関連した)複数の候補データ点が識別される。候補決定エンジン114は、候補データ点を照合エンジン112に返すことができる。
【0046】
[0077]
図3に、復号器のメモリバッファ302を含む映像インジェスト・キャプチャ・システム400の一例を示す。復号器は、照合サーバ104またはメディアクライアント106の一部とすることができる。復号器は、物理的なテレビ表示パネルまたはテレビ表示装置と共に動作せず、またはこれを必要としない場合もある。復号器は、デジタル映像番組を復号し、必要に応じて解読して、テレビ番組の非圧縮ビットマップ表現にすることができる。基準映像データの基準データベース(例えば、基準データベース316)を構築するために、照合サーバ104は、映像フレームバッファから読み出される映像画素の1つまたは複数の配列を取得することができる。映像画素の配列を映像パッチと呼ぶ。映像パッチは、任意の形状またはパターンとすることができるが、この具体例では、水平方向に10画素×垂直方向に10画素を含む、10×10画素配列として説明する。また、この例では、映像フレームバッファの境界内に均等に分布している、映像フレームバッファ内から抽出された25個の画素パッチ位置があるものと仮定する。
【0047】
[0078]
図3には画素パッチ割り振りの例(例えば、画素パッチ304)が示されている。上述のように、画素パッチは10×10配列などの画素の配列を含むことができる。例えば、画素パッチ304は10×10の画素配列を含む。画素は、赤色値、緑色値、青色値などの色値を含むことができる。例えば、赤緑青(RGB)色値を有する画素306が示されている。画素の色値は、色ごとに8ビットの2進値で表すことができる。画素の色を表すのに使用できる他の適切な色値には、輝度および彩度(Y、Cb、Cr)の値や任意の他の適切な色値が含まれる。
【0048】
[0079]各画素パッチの算術平均値(または場合によっては平均値)が取られ、結果として得られたデータレコードが作成され、タイムコード(またはタイムスタンプ)でタグ付けされる。例えば、10×10画素パッチ配列ごとに算術平均値が求められ、この場合、25個の表示バッファ位置当たり24ビットのデータが1フレーム当たり合計600ビットの画素情報のために生成される。一例では、画素パッチ304の算術平均値が計算され、これが画素パッチ算術平均値308によって示されている。ある説明例では、タイムコードは、1970年1月1日の午前零時からの総経過時間(何分1秒単位)を表す「エポックタイム」を含むことができる。例えば、画素パッチ算術平均値308はタイムコード412と共にアセンブルされる。エポックタイムは、例えばUnix(登録商標)ベースのシステムを含むコンピューティングシステムで受け入れられている規約である。データレコードにはメタデータと呼ばれる映像番組に関する情報が添付される。メタデータは、番組識別子、番組時間、番組長、任意の他の情報など、番組に関する任意の情報を含むことができる。画素パッチの算術平均値、タイムコード、およびメタデータを含むデータレコードは、「データ点」(「キュー」とも呼ばれる)を形成する。データ点310は、基準映像データ点の一例である。
【0049】
[0080]未知の映像セグメントを識別するプロセスは、基準データベースを作成するのと同様のステップから始まる。例えば、
図4に、復号器のメモリバッファ402を含む映像インジェスト・キャプチャ・システム400を示す。映像インジェスト・キャプチャ・システム400は、(例えば、スマートTV、モバイル機器、他のテレビ視聴機器など、インターネット接続テレビモニタ上で)ディスプレイによって提示されたデータを処理するクライアント機器102の一部とすることができる。映像インジェスト・キャプチャ・システム400は、システム300によって基準映像データ点310を作成するために用いられるプロセスと同様の未知の映像データ点410を生成するプロセスを利用することができる。一例では、メディアクライアント106は、照合サーバ104が未知の映像データ点410と関連付けられた映像セグメントを識別するように、未知の映像データ点410を照合エンジン112に送信することができる。
【0050】
[0081]
図4に示すように、映像パッチ404は、10×10の画素配列を含むことができる。映像パッチ404は、ディスプレイによって提示されている映像フレームから抽出することができる。映像フレームから複数のこのような画素パッチを抽出することができる。ある説明例では、映像フレームから25個のこのような画素パッチが抽出された場合、その結果は75次元空間内の位置を表す点になる。配列の色値(例えば、RGB色値、Y、Cr、Cb色値など)ごとに、算術平均値(または平均値)を計算することができる。算術平均画素値からデータレコード(例えば、未知の映像データ点410)が形成され、データに現在時刻が添付される。上述の技術を用いて基準データベース116からのデータと照合されるように、照合サーバ104に1つまたは複数の未知の映像データ点を送信することができる。
【0051】
[0082]本発明のいくつかの実施形態によれば、探索されるデータのサイズは前記データのより効率的な探索方法を生み出すように低減される。索引を生成するプロセスのブロック図が
図5に示されており、
図5では、入ってくる、映像フレーム501の領域の平均画素値の形態のキューがハッシュ関数502によって処理され、データベース510に格納される値503を生成する。データベース510はベクトル508とベクトル509とによって4つのセクションに分割されている。ハッシュ関数502を適用した結果は格納エリアをアドレス指定するのに用いられる。この例では、最上位2ビット505が記憶空間(すなわち、ベクトル空間)を決定し、この場合には、左上象限内のビット10と関連付けられた記憶空間である。残りのビット506はその記憶空間の下位区画をアドレス指定する。この例では、下位6ビット506は、バケット507とも呼ばれる64の下位区画のうちの1つをアドレス指定する。
【0052】
[0083]ACRに適したデータベースをさらに分割するプロセスが
図6および
図7にさらに示されている。
図6には、大規模なメディア・キュー・データベースのアドレス指定での使用に備えてデカルト空間を分割する擬似ランダム生成ベクトルをプロットするためのプロセスが図示されている。一実施形態では、ベクトルはモンテカルロ法で生成される。この例では、擬似ランダムプロセスは、十分均一に分布したベクトル集合をプロットしなかった。これは、ベクトル603とベクトル604との角度差と比較したベクトル601とベクトル602との角度差を調べれば明らかである。
【0053】
[0084]
図7では、ベクトル703とベクトル704との角度差と比較したベクトル701とベクトル702との角度差を調べれば、ベクトルがかなり均一に分布していることがわかる。一実施形態では、ベクトルはモンテカルロ法で生成される。このプロセスは、当業者には理解されるように、自動的に、または単に観察によって定量化し、測定することができる。ランダムなプロジェクション集合が見つかった後に、プロセスを繰り返す必要はない。
【0054】
[0085]ACRシステムの記憶探索空間の準備における後続のステップは、代表的なデータサンプルの選択を中心とするようにアドレス空間を正規化することを伴う。
図8に、キューデータのデータセット801を代表するベクトル空間に集中していないキューデータのデータセット801を示す。探索空間におけるこのデータのオフセットは、ACRシステムにおいて一致するデータを見つける際の精度の低下をもたらす。したがって、
図9に示すように、キューデータ901がベクトル空間に集中するようにデータセットの値にプロセスが適用される。
【0055】
[0086]ACRのためにキューデータのデータセットを最適化する際の別の考慮事項は、データベースの各バケットで見られるデータ密度を考慮することを伴う。例えば、
図10には、理想的なデータ密度を表す適当な数のデータ項目1001を含むバケット1002が示されている。対照的に、
図11には、過多なデータ項目1101を含むバケット1102を有する別のベクトル空間が示されている。いくつかの実施形態によれば、このプロセスがメディア照合エンジンの一部として用いられる場合、過度に満杯のバケットに遭遇すると、結果の発見は遅延されるが、データが廃棄され、探索が続行される。
【0056】
[0087]
図12は、すべての基準データ(例えば、映像データキュー)を、1アドレス空間セグメント当たり単一バケット1201を伴うアドレス指定方式に格納することを伴うシステムの図である。単一バケットの手法は、メディア照合エンジン1202が使用するための候補一致データ(例えば、「被疑点」)を捜し出すための探索空間を提供する。メディアソースの数によっては、多数のバケットが過度に満杯になり、ACRシステムの精度を低下させ、さらにフォールスポジティブな一致が増加し、または一致を見つける機会を逃す結果になる可能性がある。加えて、照合結果生成の遅延をもたらしうるシステム全体の計算負荷が増大し、ある特定の特徴またはビジネスモデルの機能を低下させ、または無効にさえする可能性もある。
【0057】
[0088]本発明の実施形態は、望ましくないバケット満杯の発生を最小化するようにデータ格納を最適化する複数の方法を提供する。例えば、本発明の一実施形態の図が
図13に示されている。
図13では、複数のバケット1301〜1303を用いて、この説明例では、メディアタイプまたは領域的考慮事項によって分離されたデータの下位区画が表されている。この複数バケットの手法も、メディア照合エンジン1304が使用するための候補一致データを捜し出すための探索空間を提供する。
【0058】
[0089]より効率的な格納のためにデータを分離する具体例として、
図14に、ビデオ・オン・デマンド(VoD)・コンテンツ・フィード1401が、キューを抽出し、キューに索引付けし、結果をデータベース1407に格納するインジェストプロセッサ1404に供給されるシステムを示す。同様に、主要テレビフィード1402も、キューを抽出し、キューに索引付けし、結果をデータベース1408に格納するインジェストプロセッサ1405に供給される。テレビ・イベント・フィード1403は、キューを抽出し、キューに索引付けし、結果をデータベース1409に格納するインジェストプロセッサ1406に供給される。VoDコンテンツフィード1401、主要テレビフィード1402、およびテレビ・イベント・フィード1403をまとめて、「既知のコンテンツ」と呼ぶ。テレビ・イベント・フィード1403は、例えば、イベントの正確で、適時な検出を必要とするターゲット広告を目的として
図14のシステムによって検出されるべきテレビ広告である。同様に、テレビ・イベント・フィード1403は、やはり正確さとリアルタイム応答を必要とするプロセスである、ある特定の番組場面中に表示されるべきである関連付けられたインタラクティブコンテンツを有する番組も含む。
【0059】
[0090]この例では、各種の番組1401〜1403が、メディアシステム上で表示されている未知のメディア1413と並列に(すなわち、同時に)処理される。しかし、他の実施形態では、番組1401〜1403が未知のメディア1413を受信する前に処理される場合もある。未知のメディア1413はキュー・クローニング・エンジン1414によって複製される。未知のキュー(すなわち、未知のコンテンツ識別子)はその場合、独立したメディア照合エンジン1410〜1412に提供される。メディア照合エンジン1410〜1412は、
図1の照合エンジン112と同様のものとすることができる。メディア照合エンジン1410は未知のキューをVoDコンテンツフィード1401と関連付けられたキューと比較する。メディア照合エンジン1411は未知のキューを主要テレビフィード1402と関連付けられたキューと比較する。メディア照合エンジン1412は未知のキューをテレビ・イベント・フィード1403と関連付けられたキューと比較する。各メディア照合エンジン1410〜1412は、1つまたは複数の一致(例えば、1バケットあたり1つの一致)を選択し、それらの一致を結果エンジン1415に提供する。結果エンジン1415は、
図1の結果エンジン120と同様のものとすることができる。結果エンジン1415は、一致を累積、処理し、最終結果1416を決定する。最終結果1416は、本明細書でさらに説明するように、データベースに格納され、番組センサスに使用され、かつ/またはコンテキスト的ターゲット情報を提供するのに用いられる。
【0060】
[0091]
図14のシステムによって用いられる方法を、
図15の流れ図を参照して説明する。ステップ1501で、少なくとも1種類の既知のメディアコンテンツが受信される(例えば、VoDコンテンツフィード1401、主要テレビフィード1402、テレビ・イベント・フィード1403など)。ステップ1502で、インジェストプロセッサ1404〜1406によって生成された既知のメディアコンテンツと関連付けられたキューにハッシュ関数が適用され、既知のキューが索引付けされる。ステップ1503で、ハッシュ化されたキュー索引はそれぞれのデータベース1407〜1409に格納される。
【0061】
[0092]ステップ1504で、未知のメディアコンテンツ1413が受信され、そのキューがキュー・クローニング・エンジン1414によってコピーされ、未知のキューはメディア照合エンジン1410〜1412に提供される。ステップ1506で、収集された被疑点(すなわち、一致)の数は索引のいずれか(例えば、VoDコンテンツフィード1401、主要テレビフィード1402、および/またはテレビ・イベント・フィード1403と関連付けられたキューの索引)の閾値より大きいかどうかが判定される。収集された被疑点の数が閾値より大きい場合、それらの被疑点はステップ1507で廃棄され、方法はステップ1505に戻る。ステップ1507は、例えば、多数の被疑点が多数のフォールスポジティブを含むために行われる。収集された被疑点の数が閾値以下である場合には、ステップ1508で未知のメディア・コンテンツ・キューと既知のメディア・コンテンツ・キューとの間の照合プロセスが実行され、一致する既知のメディアコンテンツの識別が得られる。ステップ1510で、一致する既知のメディアコンテンツの識別に基づいて、イベントがトリガされる(例えば、コンテキスト的ターゲット情報の表示)、統計が集計されるなど、結果が実行される。
【0062】
[0093]ACRシステムを最適化する別の例が
図16に示されている。
図16では、VoDコンテンツフィード1601、主要テレビフィード1602、およびテレビ・イベント・フィード1603は、インジェストプロセッサ1604〜1606によって別々に処理され(例えば、キューされ、索引付けされ、バケットに分離され)、個々のデータベース1607〜1609に格納される。
図16の実施形態は、データを独立してさらに処理する代わりに、バケットを独立してアドレス指定し、次いでそれらをバケット・コンバイナ・エンジン1610で結合する。一実施形態によれば、バケットが過度に満杯である場合、そのバケットは拒絶され、その他のバケットと結合されない。
【0063】
[0094]メディアシステムによって表示されている未知のメディア1613がメディア照合および結果処理エンジン1614に提供される。メディア照合および結果処理エンジン1614は、例えば、照合結果1615を見つけるために、結合されたバケットから、被疑点を抽出し、経路追跡システムを用いて照合プロセスを行う。メディア照合および結果処理エンジン1614は、例えば、
図1の照合エンジン112および結果エンジン120と同様のものとすることができる。
図16の実施形態は、各バケットが満杯かどうか調べられ、所定の閾値を上回る場合に拒絶された後でバケットが結合されるという点で有利である。
図16のシステムは、フィード1601〜1603の独立したデータグループを用いて、精度の向上および処理要件の低減を達成する。
【0064】
[0095]
図16のシステムによって用いられる方法を、
図17の流れ図を参照して説明する。ステップ1701で、少なくとも1種類の既知のメディアコンテンツが受信される(例えば、VoDコンテンツフィード1601、主要テレビフィード1602、テレビ・イベント・フィード1603など)。ステップ1702で、インジェストプロセッサ1604〜1606によって生成された既知のメディアコンテンツと関連付けられたキューにハッシュ関数が適用され、既知のキューが索引付けされ、バケット化される。ステップ1703で、ハッシュ化されたキュー索引はそれぞれのデータベース1607〜1609に格納される。ステップ1704で、索引はバケット・コンバイナ・エンジン1610によって結合される。
【0065】
[0096]ステップ1705で、未知のメディアコンテンツ1613が受信され、そのキューがコピーされ、未知のキューはメディア照合エンジン1614に提供される。ステップ1706で、メディア照合エンジン1614は結合されたバケットから被疑点を収集し、ステップ1707で既知のキューと未知のキューとの間の照合プロセスを実行して一致を識別する。ステップ1708で、一致する既知のメディアコンテンツの識別に基づいて、イベントがトリガされる(例えば、コンテキスト的ターゲット情報の表示)、統計が集計されるなど、結果が実行される。
【0066】
[0097]本発明の別の実施形態が
図18に示されている。
図18では、VoDコンテンツフィード1801、主要テレビフィード1802、およびテレビ・イベント・フィード1803は、インジェストプロセッサ1804〜1806によって別々に処理され(例えば、キューされ、索引付けされ、バケットに分離され)、個々のデータベース1807〜1809に格納される。本実施形態によれば、各索引は、索引タグ付けおよび重み付けエンジン1810〜1812によって独立してタグ付けされ、重み付けされる。タグ付けされ、重み付けされ、バケット化されたキューは次いで、バケット・コンバイナ・エンジン1810を用いてそれぞれのタグと結合される。一実施形態によれば、バケットが過度に満杯である場合、そのバケットは拒絶され、その他のバケットと結合されない。
【0067】
[0098]メディアシステムによって表示されている未知のメディア1813がメディア照合および結果処理エンジン1814に提供される。メディア照合および結果処理エンジン1814は、例えば、
図1の照合エンジン112および結果エンジン120と同様のものとすることができる。メディア照合および結果処理エンジン1814は、例えば、照合結果1815を見つけるために、結合されたバケットから、被疑点を抽出し、経路追跡システムを用いて照合プロセスを行う。結果1815はさらに、重み付け関数が索引に適用されているという利点を有する。
図18の実施形態は、各バケットが満杯かどうか調べられ、所定の閾値を上回る場合に拒絶された後でバケットが結合されるという点で有利である。
図18のシステムは、フィード1801〜1803の独立したデータグループを用いることによって、精度の向上および処理要件の低減を達成する。加えて、照合結果のそれぞれの索引に添付されたタグ情報を評価して、照合結果の肯定的な識別時のアクションの優先順位付けを提供することもできる。
【0068】
[0099]
図18のシステムによって用いられる方法を、
図19の流れ図を参照して説明する。ステップ1901で、少なくとも1種類の既知のメディアコンテンツが受信される(例えば、VoDコンテンツフィード1801、主要テレビフィード1802、テレビ・イベント・フィード1803など)。ステップ1902で、インジェストプロセッサ1804〜1806によって生成された既知のメディアコンテンツと関連付けられたキューにハッシュ関数が適用され、既知のキューが索引付けされ、バケット化される。ステップ1903で、ハッシュ化されたキュー索引はそれぞれのデータベース1807〜1809に格納される。ステップ1904で、索引は索引タグ付けおよび重み付けエンジン1810〜1812によってタグ付けされ、重み付けされる。ステップ1905で、索引はバケット・コンバイナ・エンジン1810によって結合される。
【0069】
[0100]ステップ1906で、未知のメディアコンテンツ1813が受信され、そのキューがコピーされ、未知のキューはメディア照合エンジン1814に提供される。ステップ1907で、メディア照合エンジン1814は結合されたバケットから被疑点を収集し、ステップ1908で既知のキューと未知のキューとの間の照合プロセスを実行して一致を識別する。ステップ1909で、イベントがトリガされる(例えば、コンテキスト的ターゲット情報の表示)、統計が集計されるなど、一致する既知のメディアコンテンツの識別に基づいて結果が実行される。
【0070】
[0101]
図20は、本発明の実施形態によるテレビ広告を検出するメディア処理センタ2000の図である。メディア処理センタ2000は、例えば、中央サーバである。メディア処理センタ2000は、テレビインジェスト2001で参加コンテンツソースから基準テレビ番組情報を受信する。テレビ番組は、例えばテレビデータベース2002によって、処理され、格納される。番組は、ケーブルと衛星の両方に基づく多チャンネル映像番組配信事業者(MVPD)によっても、インターネットを介してコンテンツを配信するソースによっても提供されることが企図されている。
【0071】
[0102]このテレビ広告置換の具体例では、
図20のシステムは、置換の候補であるテレビ広告などの特殊イベントを検出するために高速映像セグメント検出器2005と併用される第2の基準データベース(すなわち、映像セグメントデータベース2004)を用いる。これらのイベントはイベントマネージャ2006によって検出され、イベントマネージャ2006は候補映像セグメント(例えば、テレビ広告)のリストを維持し、映像セグメントが検出されるとテレビシステム2007に命令を発する。コンテキスト・イベント・マネージャ2008は、コマンドでテレビシステム2007によって実行されるべき命令を受信する。
【0072】
[0103]テレビクライアント2009は、表示しているテレビ番組から、映像または音声またはその両方のメディアキューを抽出する。メディアキューはネットワークを介して、メディア処理センタ2000の映像セグメント照合エンジン2003に送信される。特殊な映像セグメントとの一致が見つかった場合、現在、その映像セグメントを表示しているすべての登録されたテレビに(例えば、コンテキスト・イベント・マネージャ2008を介してテレビシステム2007に)メッセージ2011が発せられる。メッセージ2011を受信すると、コンテキスト・イベント・マネージャ2008は、置換されるべきであるテレビ広告の以前に供給されたアドレスを、置換時刻および持続期間と共に受信する。コンテキスト・イベント・マネージャ2008は次いで、供給開始時刻に2012で置換広告データベース2010をアドレス指定し、置換広告データベース2010は次いでアドレス指定された置換広告2013をテレビシステム2007にストリーミングする。イベントマネージャ2006によって伝えられる置換期間の終了時に、テレビシステム2007は、置換シーケンスの開始時に再生されていた元のテレビ番組に再度切り替わる。
【0073】
[0104]
図20のシステムによって用いられる方法を、
図21の流れ図を参照して説明する。ステップ2101で、テレビインジェストが受信され、未知の映像セグメントのメディアキューが抽出される。ステップ2102で、未知の映像セグメントのキューは映像セグメントデータベース2103から抽出された既知の映像セグメントのキューに照らして検査される。ステップ2104で、既知の映像セグメントにおいて一致が見つかったかどうかが判定される。一致が見つからなかった場合、方法はループしてステップ2102に戻り、未知の映像セグメントは別の既知の映像セグメントと比較される。一致が見つかった場合、方法はステップ2106に進む。
【0074】
[0105]ステップ2106で、一致する既知の映像セグメントと関連付けられた映像セグメント識別子が、広告置換識別子のデータベース2105に照らして検査される。ステップ2107で、広告置換イベント一致があるかどうか(すなわち、映像セグメント識別子がデータベース2105内の識別子と一致するかどうか)が判定される。一致が見つからなかった場合、方法はループしてステップ2106に戻り、映像セグメント識別子は別の広告置換識別子と比較される。一致が見つかった場合、方法はステップ2108に進む。
【0075】
[0106]ステップ2108で、まもなく放送される置換広告の通知がそれぞれのチャンネルに同調されたすべてのアクティブなテレビシステムに送信される。ステップ2109で、テレビシステムは置換広告の放送までのカウントダウンタイマを開始する。ステップ2110で、タイムアウトが発生しているかどうかが判定される。タイムアウトが発生していない場合、カウントダウンタイマは続行する。タイムアウトが発生している(すなわち、カウントダウンが満了している)場合、置換広告はステップ2111で置換広告サーバまたはデータベース2112から引き出される。ステップ2113で、テレビシステム上で表示されている映像および/または音声は置換広告に切り替わる。ステップ2114で、タイムアウトが発生しているかどうかが判定される。タイムアウトが発生していない場合、置換広告は放送を続行する。タイムアウトが発生している(すなわち、置換広告が終了している)場合、ステップ2115で映像および/または音声はテレビシステム上の元の番組に再度切り替わる。
【0076】
[0107]上述のテレビ広告置換のシステムおよび方法のタイミングをさらに理解するために、
図22に、テレビ広告グループ2204(「広告ポッド」2204とも呼ぶ)を伴う、メディア処理センタ(例えば、メディア処理センタ2000)で受信される映像セグメントタイムライン2201を示す。広告ポッド2204は、様々な持続期間の多数の個々のテレビ広告を含む。映像セグメント2201はメディア処理センタ(メディア処理センタ2000)によって処理され、映像照合基準データベースに付加される。2202で30秒の広告が開始し、その後に長短の広告が続き、次いで、2203で15秒の広告が放送される。2205で広告ポッド2204は終了し、番組が再開する。
【0077】
[0108]テレビシステム2007(例えば、一般家庭にある家庭用テレビ)は、メディア処理センタと同じテレビ番組2206を受信する。しかし、テレビ配信ネットワークの構造が原因で、メディア処理センタはテレビ番組を、同じテレビ番組がユーザのテレビ(例えば、テレビシステム2007)で受信される約4〜5秒前に受信する。この遅延を利用すれば、本発明の実施形態によるメディア処理センタには、追加処理の候補となる任意の特定の映像セグメントを検出し、次いで、時刻2208で映像セグメントデータベース2004にイベントが格納されているかどうか判定するのに十分な時間がある。イベントが格納されている場合には、イベントマネージャ2006は命令を供給し、適切な場合には、コンテキスト・イベント・マネージャ2008を介して適格なテレビクライアント(例えば、テレビシステム2007)に追加メディアを提供することができる。コンテキスト・イベント・マネージャ2008は次いで、これに応答して時刻2207で、置換映像セグメント2209bをアドレス指定し、元々放送されていた映像セグメント2209aの代わりにテレビシステム2007上で置換映像セグメントを表示させる。置換映像セグメント2209bは、メディア処理センタの構内の映像サーバからアドレス指定されてもよく、インターネットに接続された任意のサーバからアドレス指定されてもよい。
【0078】
[0109]本発明のさらに別の実施形態では、映像セグメントの検出は、追加情報をトリガしてテレビクライアント2309内で動作しているプロセスから表示させることができる。
図23に、多くのサービスの中から、例えば、映像フレーム2309bのキューを既知のコンテンツの既知のキューと比較することによってテレビクライアント2309上で表示されている映像セグメントを検出するメディア処理センタ2300を示す。既知のコンテンツはテレビインジェスト2301によって受信され、キューが抽出され、テレビデータベース2302に格納される。キューは映像セグメント照合エンジン2303によって照合される。次いで照合結果がイベントマネージャ2306に適用される。
【0079】
[0110]一致した映像セグメントの存在下でアクションをトリガするイベントが登録されている場合、例えば、コンテキスト・アセット・データベース2304によって格納されている、グラフィック・オーバレイ・ウィンドウの形態のメディアを供給するために、コンテキスト・アセット・マネージャ2305がアドレス指定される。次いで、グラフィック・オーバレイ・ウィンドウはある特定のタイミング情報と共に、ネットワーク2311を介して、映像セグメントを表示していると検出されている各テレビシステム2307のコンテキスト・イベント・マネージャ2308に送信される。コンテキスト的関連メディアを受信すると、コンテキスト・イベント・マネージャ2308はそのメディアを、例えば、表示エリアの一部分を占有し、通常は現在表示されている映像セグメントの話題に関連している情報を含むオーバレイウィンドウとして表示する。
【0080】
[0111]
図23のシステムによって用いられる方法を、
図24の流れ図を参照して説明する。ステップ2401で、テレビインジェストが受信され、未知の映像セグメントのメディアキューが抽出される。ステップ2402で、未知の映像セグメントのキューは映像セグメントデータベース2403から抽出された既知の映像セグメントのキューに照らして検査される。ステップ2404で、既知の映像セグメントにおいて一致が見つかったかどうかが判定される。一致が見つからなかった場合、方法はループしてステップ2402に戻り、未知の映像セグメントは別の既知の映像セグメントと比較される。一致が見つかった場合、方法はステップ2406に進む。
【0081】
[0112]ステップ2406で、一致する既知の映像セグメントと関連付けられた映像セグメント識別子が、コンテキスト関連付けメディアのデータベース2405に照らして検査される。ステップ2407で、コンテキスト的関連メディアイベントの一致があるかどうか(すなわち、映像セグメント識別子がデータベース2405内の識別子と一致するかどうか)が判定される。一致が見つからなかった場合、方法はループしてステップ2406に戻り、映像セグメント識別子は別のコンテキスト的関連イベント識別子と比較される。一致が見つかった場合、方法はステップ2408に進む。
【0082】
[0113]ステップ2408で、まもなく放送される映像セグメントの通知がそれぞれのチャンネルに同調されたすべてのアクティブなテレビシステムに送信される。ステップ2409で、テレビシステムは映像セグメントの放送までのカウントダウンタイマを開始する。ステップ2410で、タイムアウトが発生しているかどうかが判定される。タイムアウトが発生していない場合、カウントダウンタイマは続行する。タイムアウトが発生している(すなわち、カウンドダウンが満了している)場合、ステップ2411で、オーバレイ・メディア・データベース2412からのオーバレイメディアがトリガされる。ステップ2413で、オーバレイウィンドウが開き、元の番組上に表示される。ステップ2414で、タイマ終了時に(例えば、30秒の終了時に)、またはセグメント変更トリガ時に(例えば、映像セグメントの終了および新しい映像セグメントの開始時に)オーバレイウィンドウが閉じる。
【0083】
[0114]コンテキスト・メディア・オーバレイ・グラフィックのタイミングが
図25に示されている。テレビ番組チャンネル2501がメディア処理センタで受信され、映像セグメントが検出され、基準メディアデータベースに格納される。テレビシステム上でローカルに表示するための関連付けられたコンテキスト的関連メディアを有する映像セグメント2502が検出されると、2506で、同じテレビ番組チャンネル2504を表示している(すなわち、2501と2504とは同じテレビ番組チャンネルを表す)と検出されているテレビシステムに信号が送られる。テレビシステム上での映像セグメント2の開始時に(すなわち、時刻2505aに)、テレビシステムのローカルプロセッサは、メディア処理センタから受信した命令を実行する。命令は、グラフィック・オーバレイ・ウィンドウ(すなわち、補足的テレビコンテンツ2507)を、下にある映像番組に関連した追加情報と共に表示する。補足的テレビコンテンツ2507は、映像セグメント2 2505bの終了まで表示される。
【0084】
[0115]
図26の映像フレーム表現で、一実施形態による
図25のタイムラインに基づくアクションを示す。
図26では、映像セグメント2601が熱帯の島の場面を表示している。映像セグメント2602で、コンテンツ番組編成担当者は、視聴者にその熱帯の島への休暇旅行を予約するための情報を受信するよう勧めるオーバレイウィンドウを表示しようとする。上述のように、映像セグメント2602の開始時である時刻2505に、テレビシステムのプロセッサは、提供された命令に従って、補足情報2604と共にグラフィック・オーバレイ・ウィンドウを表示する。セグメント2505bの終了時に、テレビシステムのプロセッサへの命令により映像オーバレイウィンドウが除去され、遮られていない映像セグメント2603が得られる。
【0085】
[0116]次に、前述した最近傍および経路追跡技術について詳細に説明する。あいまいなキューを用いた映像送信の追跡の一例が与えられているが、この一般概念は、上述の分野など、任意の分野に適用することができる。
【0086】
[0117]効率的な映像追跡のための方法を提示する。多数の映像セグメントが与えられる場合、システムは、所与のクエリ映像入力が、どんなセグメントから、どんな時間オフセットで取得されるか識別できなければならない。セグメントとオフセットを併せて位置と呼ぶ。この方法を映像追跡と呼ぶのは、この方法は、一時停止、早送り、巻き戻し、他のセグメントへの急な切り替え、および未知のセグメントへの切り替えを効率的に検出し、適応させることができなければならないからである。ライブ映像を追跡する前に、データベースが処理される。視覚的キュー(少数の画素値)が、1秒の一定比率ごとにフレームから取得され、専用のデータ構造に入れられる(これもリアルタイムで行うことができることに留意されたい)。映像追跡は、入力映像からキューを連続して受信し、その現在位置に関する信頼値または推定値の集合を更新することによって行われる。各キューは推定値と合致し、または合致せず、新しい証拠を反映するよう調整される。この映像位置が真である信頼度が十分に高い場合、映像位置は正しい位置であると想定される。ごく少数の可能な「被疑点」位置を追跡することによって、これを効率的に行うことができる。
【0087】
[0118]映像追跡のための方法を説明しているが、数学的構造を用いてこの方法を説明し、考察する。この導入部の目的は、読者に2つのドメインを変換するのに必要なツールを提供することである。映像信号は連続するフレームで構成される。各フレームは静止画とみなすことができる。すべてのフレームは画素のラスタである。各画素は、その画素の色の赤、緑、および青(RGB)の構成に対応する3つの強度値からなる。本稿の用語では、キューとは、フレーム内の画素のサブセットのRGB値および対応するタイムスタンプのリストである。キュー内の画素数はフレーム内の画素数よりも大幅に小さく、通常は5〜15の間である。スカラ値の順序付きリストであるため、キュー値は、実際にはベクトルである。このベクトルを点とも呼ぶ。
【0088】
[0119]これらの点は高次元であり、通常は15〜150の間であるが、2次元の点と仮定することができる。その証拠に各説明図を2次元プロットとして示す。次に、映像の進行とそれに対応するキュー点を考察する。通常、時間がわずかに変化すると画素値もわずかに変化する。画素点はフレーム間でわずかに「移動している」とみなすことができる。フレーム間でのこれらのわずかな移動に従い、キューは、ビーズが曲がったワイヤ上をたどるように空間内の経路をたどる。
【0089】
[0120]この例えで言うと、映像追跡では空間内のビーズの位置(キュー点)が受け取られ、ビーズがたどるワイヤ(経路)の部分が探される。これは2つの事実により著しく困難になる。第1に、ビーズはワイヤを正確にたどらず、むしろワイヤからある変化する未知の距離を保つ。第2に、ワイヤはすべて相互に絡み合っている。これらの記述はセクション2で正確に述べられている。以下に記載するアルゴリズムは、これを2つの概念的ステップで行う。キューが受け取られると、アルゴリズムは、キュー点に十分に近いすべての既知の経路上のすべての点を探す。これらを被疑点と呼ぶ。これは、PPLEB(Probabilistic Point Location in Equal Balls(等しいボール内での確率論的点位置決定))アルゴリズムを用いて効率的に行われる。これらの被疑点は履歴データ構造に追加され、各被疑点が真の位置を指示している確率が計算される。このステップは、十分に可能性の低い被疑点位置を除去することも含む。この履歴更新プロセスは、一方ではわずかな履歴だけが保持され、他方では確度の高い位置がすっと削除されないようにする。汎用アルゴリズムはアルゴリズム1で与えられ、
図27に例示されている。
【0090】
【表1】
[0121]本明細書では、最初にセクション1でPPLEB(Probabilistic Point Location in Equal Balls)アルゴリズムについて説明する。PPLEBアルゴリズムは、アルゴリズム1の第5行を効率的に行うために用いられる。この被疑点の探索を迅速に行える能力は、この方法の適用性にとって非常に重要である。後のセクション2では、第6行および第7行を行うための1つの可能な統計モデルについて説明する。説明するモデルは、このセットアップのための自然な選択である。またモデルをどのようにして非常に効率的に使用できるかも示す。
【0091】
[0122]セクション1 PPLEB(Probabilistic Point Location in Equal Balls)
【0092】
[0123]以下のセクションでは、PPLEB(Probabilistic Point Location in Equal Balls)を行うための簡単なアルゴリズムについて説明する。従来のPLEB(point location in equal balls)では、1R dおよび半径rの指定されたボールにおける、n個の点の集合xから開始する。アルゴリズムは、効率的なデータ構造を生成するためにO(poly(n))の前処理時間を与えられる。次いで、クエリ点xが与えられた場合、アルゴリズムは、
【数1】
になるようにすべての点xを返す必要がある。
【数2】
になるような点の集合は、幾何学的には、クエリxを取り囲む半径rのボール内に位置する(
図28参照)。この関係をx、xに近い、またはx、およびxは近傍であるという。
【0093】
[0124]PPLEBの問題と最近傍探索の問題とは、学界で大きな注目を集めている2つの類似した問題である。実際、これらの問題は計算幾何学の分野で最初に研究されたものであった。周囲の次元が小さいかまたは一定である場合には多くの異なる方法が要求を満たす。これらの方法は、空間を異なるやり方で区分し、各部分を再帰的に探索する。これらの方法には、KDツリー、カバーツリーなどが含まれる。低次元では非常に効率的であるが、周囲の次元が高い場合、これらの方法は非常に不十分にしか機能しない傾向にある。これは「次元の呪い」として知られている。様々な手法が、次元の呪いを克服しつつこの問題を解決しようと試みている。本明細書で用いるアルゴリズムは、アルゴリズムのより単純で高速なバージョンを使用し、局所性鋭敏型ハッシュを利用することができる。
【0094】
[0125]セクション1.1 局所性鋭敏型ハッシュ
【0095】
[0126]局所性鋭敏型ハッシュの方式では、以下になるようなハッシュ関数Hのファミリが考案される。
【数3】
【0096】
[0127]言葉で説明すると、xとyがhによって同じ値にマップされる確率は、xとyとが互いに近い場合には著しく高くなる。
【0097】
[0128]明確にするために、最初に、すべての入力ベクトルが同じ長さr’のものであり、r’>
【数4】
である単純化されたシナリオを扱う。後者の条件の理由は後で明らかになる。最初に、xとyの間の角度に応じてxとyを分離するランダム関数u∈Uを定義する。
【数5】
を単位球S
d−1から一様に選ばれたランダムベクトルとし、u(x)=sign(
【数6】
)とする。Pr
u−U(u(x))≠u(y))=0
x,y/πであることを検証することは容易である。さらに、
【数7】
であるような円上の任意の点x、y、x’、y’について、0
x’,y≦20
x,yが達成される。pを定義して、以下の式が用いられる。
【数8】
【0098】
[0129]関数Hのファミリは、uのt個の独立したコピーの外積となるように設定され、すなわちh(x)=[u1(x),...,u
t(x)]である。直観的には、h(x)=h(y)の場合、xとyとが互いに近い可能性が高くなるようにしたい。これを定量化する。最初に、予期されるフォールスポジティブ誤りの数n
fpを計算する。これらは、h(x)=h(y)であるが、||x−y||>2rの場合である。n
fpが1以下である値tが見つかる。すなわち、1は間違っているとは予期されていない。
E[n
ft]≦n(1−2p)
t≦1
→t≧log(1/n)/log(1−2p)
【0099】
[0130]次に、xとyとが近傍である場合のh(x)=h(y)の確率を計算する。
【数9】
【0100】
[0131]ここでは、2p<1でなければならず、これにはr’>
【数10】
が必要であることに留意されたい。これはあまり高い成功確率のようには思われないであろう。確かに、1/
【数11】
は1/2より著しく小さい。次のセクションでは、どのようにしてこの確率を1/2まで上げるかについて説明する。
【0101】
[0132]セクション1.2 点探索アルゴリズム
【0102】
[0133]各関数hは、空間内のすべての点をバケットにマップする。ハッシュ関数hに関連する点xのバケット関数
【数12】
をB
h(x)≡{x
i|h(x
i)=h(x)}として定義する。維持されるデータ構造は、バケット関数のm=O(
【数13】
)個のインスタンス[Bh
1,…,Bh
m]である。点xを探索すると、関数は
【数14】
を返す。前セクションによれば、2つの望ましい結果が生じる。
【数15】
【0103】
[0134]言い換えると、少なくとも1/2の確率でxの各近傍が見つかるが、多くの非近傍を見つける可能性は低い。
【0104】
[0135]セクション1.3 異なる半径の入力ベクトルの処理
【0105】
[0136]前セクションでは、同じ長さ、すなわちr’のベクトルを探索することのみを扱った。次に、この構造をビルディングブロックとして用いて異なる半径での探索をどのようにサポートできるかについて説明する。
図30に示すように、空間は指数関数的に増加する幅の環に分割される。R
iと表記されている環iは、x
i∈[2r(1+∈)
i,2r(1+∈)
i+1]になるようなすべての点x
iを含む。これを行うことで2つの目的が達成される。第1に、x
iとx
jが同じ環に属している場合には、x
j/(1+∈)≦x
i≦x
j(1+∈)である。第2に、いかなる探索もせいぜい1/∈のそのような環で行うことができる。さらに、データセット内の最大長ベクトルがr’である場合には、システム内の環の総数はO(log(r’/r))である。
【0106】
[0137]セクション2 経路追跡問題
【0107】
[0138]経路追跡問題では、空間内の固定経路が、時点列内の粒子の位置と共に与えられる。粒子、キュー、および点という用語は、区別なく用いられる。アルゴリズムは、経路上の粒子の位置を出力する必要がある。これは以下のいくつかの要因、すなわち、粒子は、経路を近似的にたどるにすぎないこと、経路は不連続であり、何度も自己交差する可能性があること、粒子位置と経路位置の両方が(それぞれに異なる)時点列として与えられること、によってより困難になる。
【0108】
[0139]この問題は、任意の数の経路上の粒子の追跡をシミュレートできることに留意することが重要である。これは、各経路を連結して1本の長い経路にし、結果として得られる位置を個々の経路上の位置として解釈することによって簡単に行われる。
【0109】
[0140]より正確には、経路Pをパラメトリック曲線
【数16】
とする。曲線パラメータを時間と呼ぶ。既知である経路上の点は任意の時点t
iにおいて与えられ、すなわちn対の(t
i,P(t
i))が与えられる。粒子は経路をたどるが、その位置は
図31に示すように異なる時点において与えられる。さらに、m対の(t’
j,x(t’
j))が与えられ、x(t’
j)は時間t’
jにおける粒子の位置である。
【0110】
[0141]セクション2.1 尤度推定
【0111】
[0142]粒子は経路を正確にたどらず、経路は何度も自己交差する可能性があるため、粒子が実際にある経路上の位置を確実に識別することは通常は不可能である。したがって、すべての可能な経路位置上で確率分布が計算される。位置確率の確度が著しく高い場合、粒子位置は既知であると想定される。以下のセクションでは、これを効率的に行う方法について説明する。
【0112】
[0143]粒子が経路をたどっている場合には、粒子のタイムスタンプとP上の対応する点のオフセットとの間の時間差は比較的一定になるはずである。言い換えると、x(t’)が経路上で現在オフセットtにある場合には、x(t’)はP(t)に近いはずである。また、τ秒前には、x(t’)はオフセットt−τにあったはずである。よって、x(t’−τ)はP(t−τ)に近いはずである(粒子が経路と交差しており、x(t’)がP(t)に一時的に近い場合、x(t’−τ)とP(t−τ)も近い可能性は低いことに留意されたい)。相対オフセットをΔ=t−t’と定義する。粒子が経路をたどっている限り、相対オフセットΔは変化しないままであることに留意されたい。すなわち、x(t’)はP(t’+Δ)に近い。
【0113】
[0144]最尤相対オフセットは、以下を計算することによって得られる。
【数17】
【0114】
[0145]言葉で説明すると、最も可能性が高い相対オフセットは、粒子の履歴の可能性が最も高いオフセットである。しかし、この方程式は統計モデルなしでは解くことができない。このモデルは、xが経路をどれほど厳密にたどるか、xが位置間をジャンプする可能性がどれほど高いか、経路および粒子曲線が測定された点間でどれほど滑らかであるか、を定量化しなければならない。
【0115】
[0146]
セクション2.2 時間割引ビニング
【0116】
[0147]次に、尤度関数を推定するための統計モデルについて説明する。このモデルでは、経路からの粒子の逸脱が標準偏差arで正規分布していると仮定する。またこのモデルでは、任意の所与の時点で、粒子が急に別の経路に切り替わるある非ゼロの確率があるとも仮定する。これは、過去の点の時間による指数割引によって明示される。モデル化の観点から合理的な選択であること以外に、このモデルには効率的に更新可能であるという利点もある。ある一定の時間単位1にわたって、尤度関数を、以下のように定義されるfに比例するように設定する。
【数18】
【0117】
[0148]式中、α<<1はスケール係数であり、ζ>0は、粒子が所与の時間単位において経路上のランダムな位置にジャンプする確率である。
【0118】
[0149]関数fの効率的な更新は、以下の簡単な知見を用いて達成することができる。
【数19】
【0119】
[0150]さらに、α<<1であるため、||x(t’
m)−P(t
i)||≧rの場合、以下の式が生じる。
【数20】
【0120】
[0151]これは尤度関数の重要な特性である。というのは、合計の更新を、経路全体にわたってではなくx(t’
j)の近傍にわたってのみ行うことができるようになるからである。Sで、||x(t’
m)−P(t
i)||≧rになるような(t
i,P(t
i))の集合を表す。以下の式が生じる。
【数21】
【0121】
[0152]これについては以下のアルゴリズム2.2に記載する。項fは、負の整数インデックスも受け取る疎ベクトルとして用いられる。集合Sは、経路上のx(t
i)のすべての近傍の集合であり、PPLEBアルゴリズムを用いて迅速に計算することができる。x(t
i)の近傍の数がある定数n
nearによって制限される場合には、ベクトルfの非ゼロの数は一定の係数だけ大きいn
near/ζによって制限されることを検証することは容易である。アルゴリズムの最終段階は、
【数22】
がある閾値を上回る場合のδの特定の値を出力することである。
【表2】
【0122】
[0153]
図32に、3つの連続した点位置とそれらの周りの経路点とを示す。最下点だけでも中間点だけでも経路の正しい部分を十分に識別できなかったはずであることに留意されたい。しかし、これらの点を併せれば十分に識別できる。最上点を追加すれば、粒子が実際に経路の最終(左)曲線のものである確実性が増す。
【0123】
[0154]
図28では、n個の(灰色の)点の集合が与えられた場合、アルゴリズムはクエリ点(黒)を与えられ、クエリ点から距離r内にある点の集合(円内の点)を返す。従来の設定では、アルゴリズムはそのようなすべての点を返さなければならない。確率的設定では、そのような各点がある一定の確率でのみ返されるはずである。
【0124】
[0155]
図29に、u(x
1)、u(x
2)、およびu(x)の各値を示す。直感的には、関数uは、破線がx
1とx
2との間を通る場合はx
1とx
2とに異なる値を与え、そうでない場合は同じ値を与える。破線をランダムな方向に通せば、これが起こる確率は、x
1とx
2との角度に正比例するようになる。
【0125】
[0156]
図30に、環R
iが半径2r(1+∈)
iと2r(1+∈)
i+1との間にあるように空間を環に分割することによって、環内の任意の2つのベクトルが最大(1+∈)因子まで同じ長さであり、任意の探索がせいぜい1/∈環において行われることを確実にできることを示す。
【0126】
[0157]
図31に、自己交差経路とクエリ点(黒)とを示す。粒子位置の履歴がなければ、粒子が経路上のどこにあるか知ることは不可能であることが例示されている。
【0127】
[0158]
図32に、3つの連続した点位置とそれらの周りの経路点とを示す。x(t
1)だけでもx(t
2)だけでも経路の正しい部分を十分に識別できなかったはずであることに留意されたい。しかし、これらの点を併せれば十分に識別できる。x(t
3)を追加すれば、粒子が実際に経路の最終(左)曲線のものである確実性が増す。
【0128】
[0159]要約すると、本発明の実施形態は、基準データ(すなわち、既知のメディアコンテンツ)を、独立して、並行して、同時に、または組み合わせて探索することができる複数の基準データベースに分割することによってメディア照合および識別プロセスを改善する。探索プロセスの結果は次いで、最終結果を得るために重み付けし、得点をつけることができる。
【0129】
[0160]本明細書ではテレビ番組のリアルタイム識別に関連して説明されているが、本明細書に記載するシステムおよび方法は、データセットを好ましいサブセットに区分することによって多次元探索を高度化することができる任意の「ビッグデータ」問題に適用されることが企図されている。さらに、本明細書ではおおむね映像データおよびグラフィック表示に関するものとして説明されているが、本明細書に記載するシステムおよび方法は、音声データおよび可聴表示に関しても同様に使用されることが企図されている。例えば、ある特定の実施形態では置換音声データが提供される。
【0130】
[0161]具体的な要件に応じて大幅な変更がなされてもよい。例えば、カスタマイズされたハードウェアが使用されてもよく、かつ/または特定の要素がハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方で実装されてもよい。さらに、他のアクセスまたはネットワーク入力装置/出力装置などのコンピューティング機器への接続が用いられてもよい。
【0131】
[0162]以上の明細書では、本発明の態様がその具体的実施形態に関連して説明されているが、本発明はそれらだけに限定されないことを当業者は理解するであろう。上述の発明の様々な特徴および態様は、個別に用いられても一緒に用いられてもよいさらに、本明細書の幅広い趣旨および範囲から逸脱することなく、本明細書に記載した以外の任意の数の環境および用途において各実施形態を利用することができる。したがって、本明細書および図面は、限定ではなく例示とみなすべきである。
【0132】
[0163]以上の説明では、例示を目的として、方法を特定の順序で記載した。別の実施形態では、方法は記載した順序と異なる順序で行われてもよいことを理解されたい。また、上述の方法は、ハードウェア構成要素によって行われてもよく、機械実行可能命令でプログラムされた汎用または専用プロセッサや論理回路などの機械に方法を行わせるのに用いられる機械実行可能命令のシーケンスとして具体化されてもよいことも理解されたい。これらの機械実行可能命令は、CD−ROMや他の種類の光ディスク、フロッピー(登録商標)ディスケット、ROM、RAM、EPROM、EEPROM(登録商標)、磁気カードや光カード、フラッシュメモリ、または電子命令を格納するのに適した他の種類の機械可読媒体など、1つまたは複数の機械可読媒体に格納されていてよい。あるいは、これらの方法は、ハードウェアとソフトウェアの組み合わせによって行われてもよい。
【0133】
[0164]構成要素がある特定の動作を行うように構成されているものとして記述される場合、そのような構成は、例えば、その動作を行う電子回路または他のハードウェアを設計することによって、その動作を行うプログラマブル電子回路(例えば、マイクロプロセッサや他の適切な電子回路)をプログラムすることによって、またはそれらの任意の組み合わせによって実現することができる。
【0134】
[0165]本明細書では本出願の例示的実施形態を記載したが、本発明の概念は、それ以外にも様々に具体化され、用いられること、および添付の特許請求の範囲は、先行技術による限定を除いて、そうした変形を含むものと解釈すべきであることを理解されたい。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
〔1〕
1または複数のプロセッサと、
前記1つまたは複数のプロセッサ上で実行されると、前記1つまたは複数のプロセッサに動作を行わせる命令を含む1つまたは複数の非一時的な機械可読記憶媒体であって、前記動作は、
関連付けられた既知のコンテンツ識別子を有する複数の既知のメディアコンテンツを受信する動作と、
前記複数の既知のメディアコンテンツを第1の索引と第2の索引とに区分する動作と、
前記第1の索引を1つまたは複数の第1のバケットに分離する動作であって、前記第1の索引は、前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子を用いて第1のバケットに分離される、前記第1の索引を1つまたは複数の第1のバケットに分離する前記動作と、
前記第2の索引を1つまたは複数の第2のバケットに分離する動作であって、前記第2の索引は、前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子を用いて第2のバケットに分離される、前記第2の索引を1つまたは複数の第2のバケットに分離する前記動作と、
メディアシステムによって表示されている未知のメディアコンテンツに対応する未知のコンテンツ識別子を受信する動作と、
前記未知のコンテンツ識別子を求めて前記第1のバケットと前記第2のバケットとを同時に探索する動作と、
前記第1のバケットまたは前記第2のバケットの中から既知のメディアコンテンツを選択する動作であって、前記選択された既知のメディアコンテンツは前記未知のコンテンツ識別子と関連付けられている、既知のメディアコンテンツを選択する前記動作と、
前記未知のメディアコンテンツを前記選択された既知のメディアコンテンツとして識別する動作と
を含む、前記1つまたは複数の非一時的な機械可読記憶媒体と
を含む、システム。
〔2〕
前記複数の既知のメディアコンテンツは、前記既知のメディアコンテンツのパラメータを用いて前記第1の索引と前記第2の索引とに区分される、〔1〕に記載のシステム。
〔3〕
前記動作は、
前記選択された既知のメディアコンテンツと関連付けられたコンテキスト的ターゲットデータを取得する動作と、
前記コンテキスト的ターゲットデータを表示のために前記メディアシステムに送信する動作と
をさらに含む、〔1〕に記載のシステム。
〔4〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられたメタデータを含む、〔1〕に記載のシステム。
〔5〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられた画素データを含む、〔1〕に記載のシステム。
〔6〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられた音声データを含む、〔1〕に記載のシステム。
〔7〕
前記未知のコンテンツ識別子を求めて前記第1のバケットと前記第2のバケットとを探索する前記動作は、前記第1のバケット内の前記既知のメディアコンテンツと前記第2のバケット内の前記既知のメディアコンテンツとに音声認識技術を適用する動作を含む、〔6〕に記載のシステム。
〔8〕
前記動作は、
前記未知のコンテンツ識別子を用いて前記選択された既知のメディアコンテンツ内のオフセット時間を決定する動作であって、前記オフセット時間は前記メディアシステムによって表示されている前記未知のメディアコンテンツに対応する、前記選択された既知のメディアコンテンツ内のオフセット時間を決定する前記動作
をさらに含む、〔1〕に記載のシステム。
〔9〕
前記第1の索引を1つまたは複数の第1のバケットに分離する前記動作は、前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子をハッシュ化する動作を含み、前記第2の索引を1つまたは複数の第2のバケットに分離する前記動作は、前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子をハッシュ化する動作を含む、〔1〕に記載のシステム。
〔10〕
前記動作は、
前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記ハッシュ化された既知のコンテンツ識別子を正規化する動作と、
前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記ハッシュ化された既知のコンテンツ識別子を正規化する動作と
をさらに含む、〔9〕に記載のシステム。
〔11〕
前記動作は、
前記1つまたは複数の第1のバケットのうちの第1のバケット内の既知のメディアコンテンツの量が閾値を上回っていると判定する動作と、
前記第1のバケットを廃棄する動作と
をさらに含む、〔1〕に記載のシステム。
〔12〕
関連付けられた既知のコンテンツ識別子を有する複数の既知のメディアコンテンツを受信するステップと、
前記複数の既知のメディアコンテンツを第1の索引と第2の索引とに区分するステップと、
前記第1の索引を1つまたは複数の第1のバケットに分離するステップであって、前記第1の索引は、前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子を用いて第1のバケットに分離される、前記第1の索引を1つまたは複数の第1のバケットに分離する前記ステップと、
前記第2の索引を1つまたは複数の第2のバケットに分離するステップであって、前記第2の索引は、前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子を用いて第2のバケットに分離される、前記第2の索引を1つまたは複数の第2のバケットに分離する前記ステップと、
メディアシステムによって表示されている未知のメディアコンテンツに対応する未知のコンテンツ識別子を受信するステップと、
前記未知のコンテンツ識別子を求めて前記第1のバケットと前記第2のバケットとを同時に探索するステップと、
前記第1のバケットまたは前記第2のバケットの中から既知のメディアコンテンツを選択するステップであって、前記選択された既知のメディアコンテンツは前記未知のコンテンツ識別子と関連付けられている、既知のメディアコンテンツを選択する前記ステップと、
前記未知のメディアコンテンツを前記選択された既知のメディアコンテンツとして識別するステップと
を含む、方法。
〔13〕
前記複数の既知のメディアコンテンツは、前記既知のメディアコンテンツのパラメータを用いて前記第1の索引と前記第2の索引とに区分される、〔12〕に記載の方法。
〔14〕
前記選択された既知のメディアコンテンツと関連付けられたコンテキスト的ターゲットデータを取得するステップと、
前記コンテキスト的ターゲットデータを表示のために前記メディアシステムに送信するステップと
をさらに含む、〔12〕に記載の方法。
〔15〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられたメタデータを含む、〔12〕に記載の方法。
〔16〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられた画素データを含む、〔12〕に記載の方法。
〔17〕
前記未知のコンテンツ識別子は、前記未知のメディアコンテンツと関連付けられた音声データを含む、〔12〕に記載の方法。
〔18〕
前記未知のコンテンツ識別子を求めて前記第1のバケットと前記第2のバケットとを探索するステップは、前記第1のバケット内の前記既知のメディアコンテンツと前記第2のバケット内の前記既知のメディアコンテンツとに音声認識技術を適用するステップを含む、〔17〕に記載の方法。
〔19〕
前記未知のコンテンツ識別子を用いて前記選択された既知のメディアコンテンツ内のオフセット時間を決定するステップであって、前記オフセット時間は前記メディアシステムによって表示されている前記未知のメディアコンテンツに対応する、前記選択された既知のメディアコンテンツ内のオフセット時間を決定する前記ステップ
をさらに含む、〔12〕に記載の方法。
〔20〕
前記第1の索引を1つまたは複数の第1のバケットに分離する前記ステップは、前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子をハッシュ化するステップを含み、前記第2の索引を1つまたは複数の第2のバケットに分離する前記ステップは、前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記既知のコンテンツ識別子をハッシュ化するステップを含む、〔12〕に記載の方法。
〔21〕
前記第1の索引内の前記既知のメディアコンテンツと関連付けられている前記ハッシュ化された既知のコンテンツ識別子を正規化するステップと、
前記第2の索引内の前記既知のメディアコンテンツと関連付けられている前記ハッシュ化された既知のコンテンツ識別子を正規化するステップと
をさらに含む、〔20〕に記載の方法。
〔22〕
前記1つまたは複数の第1のバケットのうちの第1のバケット内の既知のメディアコンテンツの量が閾値を上回っていると判定するステップと、
前記第1のバケットを廃棄するステップと
をさらに含む、〔12〕に記載の方法。