(57)【要約】【課題】メディア番組に関連するフレームフィンガープリントをデータベースに記憶したコンピュータ可読ストレージを有する処理装置及び方法を提供する。【解決手段】処理装置は、一連のフレームと対応するタイムスタンプとを含む、消費されているコンテンツのフィンガープリントをメディア装置から受け取る。処理装置は、データベースにクエリを行って、一連のフレームのタイムスタンプを最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって一連の点を含む時間ベースの結果を生成する。処理装置は、一連の点に対してパターン認識アルゴリズムを実行して、消費されているコンテンツに対応するメディア番組を決定し、このメディア番組の識別を広告サーバに送信して、メディア番組を視聴しているユーザに広告サーバが追加コンテンツをターゲッティングできるようにする。【選択図】図３
2020025322.tif 000002
【特許請求の範囲】
【請求項１】
サーバであって、
少なくとも１つの処理装置と、
メディア番組に関連する複数のフレームフィンガープリントを有するデータベースを記憶するとともに命令を記憶するコンピュータ可読記憶媒体と、
を備え、前記複数のフレームフィンガープリントのそれぞれのフィンガープリントは、対応するタイムスタンプを含み、
前記少なくとも１つの処理装置は、前記命令を実行して、
メディア装置から、一連のフレーム及び対応するタイムスタンプを含む、消費されているコンテンツのフィンガープリントを受け取るステップと、
前記データベースの検索を実行して、前記フィンガープリントの前記一連のフレーム内のフレームと対応するタイムスタンプとに最も一致する前記複数のフレームフィンガープリントのフレームとタイムスタンプとを含む２次元データ構造における一連の時間ベースの結果を生成するステップと、
前記一連の時間ベースの結果に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行する、
ことを特徴とするサーバ。
【請求項２】
前記少なくとも１つの処理装置は、前記消費されているメディア番組の決定に応答して、
前記メディア番組の識別を広告サーバに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告サーバから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
をさらに実行する、
請求項１に記載のサーバ。
【請求項３】
前記少なくとも１つの処理装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記フィンガープリントの前記フレーム及び対応するタイムスタンプのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
請求項１に記載のサーバ。
【請求項４】
前記２次元データ構造は、前記複数のフレームフィンガープリントからの一致するフレームフィンガープリントのタイムスタンプに対してマッピングされた順に採取された、前記フィンガープリントの前記一連のフレームのタイムスタンプを含む、
請求項１に記載のサーバ。
【請求項５】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項１に記載のサーバ。
【請求項６】
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項１に記載のサーバ。
【請求項７】
前記タイムスタンプは、前記フィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含む、
請求項１に記載のサーバ。
【請求項８】
前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
請求項７に記載のサーバ。
【請求項９】
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
請求項１に記載のサーバ。
【請求項１０】
メモリ内のデータベースにおいて、メディア番組に対応する、それぞれが対応するタイムスタンプを含む複数のフレームフィンガープリントにコンピュータ装置を用いてアクセスするステップと、
順序化された一連のフレームと対応するタイムスタンプとを含む、消費されているコンテンツのフィンガープリントをメディア装置から受け取るステップと、
前記コンピュータ装置を用いて前記データベースにクエリを行って、前記フィンガープリントの前記順序化された一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記コンピュータ装置を用いて前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
前記メディア番組の識別を広告サーバに送信することにより、前記メディア番組を消費している間に前記メディア装置に追加コンテンツをターゲッティングするステップと、
を含むことを特徴とする方法。
【請求項１１】
前記広告サーバから前記メディア番組の主題に文脈的に関連する追加コンテンツを受け取るステップと、
前記メディア番組の符号化を、前記メディア番組へのオーバレイとして、又はコマーシャル中に視聴されるように前記追加コンテンツで増強するステップと、
をさらに含む請求項１０に記載の方法。
【請求項１２】
前記少なくとも１つの処理装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記フィンガープリントの前記フレーム及び対応するタイムスタンプのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
請求項１０に記載の方法。
【請求項１３】
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成する、
請求項１０に記載の方法。
【請求項１４】
前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項１３に記載の方法。
【請求項１５】
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項１３に記載の方法。
【請求項１６】
前記タイムスタンプは、前記フィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含み、前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
請求項１０に記載の方法。
【請求項１７】
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
請求項１０に記載の方法。
【請求項１８】
視聴されているコンテンツのフィンガープリントに関連するメディア番組を決定するためのデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの処理装置によって、
メディア番組に対応する、それぞれが対応するタイムスタンプを含む複数のフレームフィンガープリントを、コンピュータ装置を用いてメモリ内のデータベースに記憶するステップと、
消費されているコンテンツの、一連のフレームと対応するタイムスタンプとを含むフィンガープリントをメディア装置から受け取るステップと、
前記データベースにクエリを行って、前記フィンガープリントの前記一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行するように実行可能である、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記命令は、前記少なくとも１つの処理装置によって、
前記メディア番組の識別を広告ターゲッタに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告ターゲッタから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
を実行するようにさらに実行可能である、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成し、前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項１８に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動コンテンツ認識フィンガープリントシーケンス照合に関する。
【背景技術】
【０００２】
スマートテレビ（ＴＶ）などのメディア消費装置（media consumption device）は、放送デジタルコンテンツにアクセスして（インターネットなどの）データネットワークからストリーミングメディアなどのデータを受け取ることができる。ストリーミングメディアとは、要求時に電話回線、ケーブル、インターネットなどを介してエンドユーザに映画又はニュースなどのメディアコンテンツを提供できるサービスのことである。例えば、ユーザは、自宅から離れる必要なく映画を見ることができる。また、ユーザは、学校又は教育機関に物理的に出席する必要なくビデオ講義などの様々なタイプの教育コンテンツにアクセスすることもできる。
【０００３】
メディア消費装置の数が増え続けるにつれ、同様にビデオコンテンツの生成及び配信も増加すると考えられる。（スマートフォン、タブレット及びスマートテレビなどの）メディア消費装置を用いたストリーミングメディアへのアクセスが増えるとともに、（地方放送局、多チャンネルネットワーク及びその他のコンテンツ所有者／配信業者などの）コンテンツ又はネットワークプロバイダは、ストリーミングメディア（例えば、メディア番組）を消費している視聴者に文脈的に関連する題材を配信することができる。例えば、地方放送局は、ストリーミングメディアに文脈的に関連する広告及びインタラクティブコンテンツを含めることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態についての添付図面から完全に理解されるであろう。しかしながら、図面は、本開示を特定の実施形態に限定するものとして捉えるべきではなく、説明及び理解のためのものにすぎない。
【図面の簡単な説明】
【０００５】
【図１】１つの実施形態によるコンテンツ配信ネットワークのシステム図である。
【図２】１つの実施形態による、クライアント装置にオーバレイコンテンツを提供するコンテンツマネージャを示す図である。
【図３】図２のコンテンツマネージャのメディアコンテンツのフィンガープリントを採取するために使用される自動コンテンツ認識（ＡＣＲ）エンジンのシステム図である。
【図４】入力（又はクエリ）フィンガープリントの順序化された一連のフレームのタイムスタンプの、一致するフレームフィンガープリントのタイプスタンプに対するマッピングをグラフで示す図である。
【図５】１つの実施形態による、一連の入力（又はクエリ）フィンガープリントのフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識（ＡＣＲ）方法のフローチャートである。
【図６】別の実施形態による、一連の入力（又はクエリ）フィンガープリントのフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識（ＡＣＲ）方法のフローチャートである。
【図７】本明細書で説明する方法のうちのいずれか１つ又は２つ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形態の機械の図式表現である。
【発明を実施するための形態】
【０００６】
テレビ（ＴＶ）又はインターネット番組放送などのメディアコンテンツ放送又はストリーミングは、製品及びサービスの広告、視聴者への情報提供、又はこれらのいずれかの組み合わせのための魅力的なスポットになり得る。従って、放送局は、個々の視聴者がいつどのような番組を視聴しているかを把握することにより、これらの番組の主題を使用して、広告及びその他の有用な、任意に非営利的な情報を視聴者に正確にターゲッティングできるようにしたいと望んでいる。非営利的なものとしては、例えば、ニュースアラート、告知又は教育情報を挙げることができる。従って、ユーザが視聴している又は視聴しようとしている番組を決定し、このようなターゲッティング行動において使用される広告サーバに番組情報の識別を送信することが有利であると思われる。
【０００７】
メディア番組に関連するフレームフィンガープリント、例えば対応するタイムスタンプを含む発信元メディアコンテンツのフレームをデータベースに記憶したコンピュータ可読ストレージを有する処理装置及び方法を開示する。処理装置は、順序化された一連のフレームと対応するタイムスタンプとを含む、ユーザによって消費されているコンテンツのフィンガープリントをメディア装置から受け取る。処理装置は、データベースにクエリを行って、フィンガープリントの順序化された一連のフレームのタイムスタンプを最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる一連の点を含む時間ベースの結果を生成する。処理装置は、これらの一連の点に対してパターン認識アルゴリズムを実行して、消費されているコンテンツに対応するメディア番組を決定し、このメディア番組の識別を広告サーバに送信することにより、ユーザがメディア番組を視聴している間に広告サーバがユーザに追加コンテンツをターゲッティングできるようにする。パターン認識アルゴリズムは、線の特定の傾きを検出することができ、又はあらゆる線のあらゆる傾きを検出できるランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含むことができる。線を形成する一連の一致するフレームフィンガープリントは、この傾きを前提として、ユーザが視聴しているメディア番組に対応する。
【０００８】
これに加えて、又はこれとは別に、自動認識（ＡＣＲ）サーバが、少なくとも１つの処理装置と、メディア番組に関連する複数のフレームフィンガープリントを有するデータベースとを含むことができる。それぞれのフレームフィンガープリントは、メディア番組から選択されたフレーム、及びそのフレームの対応するタイムスタンプとすることができる。少なくとも１つの処理装置は、ユーザが消費しているコンテンツの、一連のフレームと対応するタイムスタンプとを含むフィンガープリントをメディア装置から受け取ることができる。少なくとも１つの処理装置は、データベースの検索を実行して、フィンガープリントの一連のフレーム内のフレームと対応するタイムスタンプとに最も一致する複数のフレームフィンガープリントの構造を含む２次元データ構造の形の一連の時間ベースの結果を生成することができる。１つの例では、フィンガープリントの一連のフレームのタイムスタンプを最も一致するフレームフィンガープリントのタイムスタンプにマッピングすると、タイムスタンプの２次元データ構造の形の点が形成される。少なくとも１つの処理装置は、一連の時間ベースの結果に対してパターン認識アルゴリズムをさらに実行して、例えばＲＡＮＳＡＣなどを使用することにより、消費されているコンテンツに対応するメディア番組を決定することができる。
【０００９】
少なくとも１つの処理装置は、メディア番組の識別を広告サーバに送信し、このメディア番組の主題に文脈的に関連する広告を広告サーバから受け取ることができる。その後、少なくとも１つの処理装置は、この広告（又はその他のコンテンツ）をメディア装置に配信して、メディア番組内のコマーシャル中にオーバレイ（overlay）又は広告（又は情報セグメント）として表示されるようにすることができる。
【００１０】
個人又は組織は、視聴者にメディアコンテンツを提供するために、インターネットを介して視聴者にメディアコンテンツを配信することなどによって視聴者にメディアコンテンツをストリーミングすることができる。個人又は組織が使用するメディアコンテンツは、１又は２以上のライブ放送メディアフィードから取得される（ビデオデータなどの）メディアコンテンツとすることができる。例えば、メディアコンテンツプロバイダは、インターネットを介してユーザに線形メディアチャンネル（例えば、ライブメディア供給源から視聴者に提供されるメディア）を提供することができる。
【００１１】
「コンテンツ」という単語は、メディア又はマルチメディアを示すために使用することができる。「コンテンツ」という単語は、メディア自体よりもむしろメディアの主題を意味する特定の用語とすることもできる。同様に、「メディア」という単語、及び「メディア」を含むいくつかの複合語（例えば、マルチメディア、ハイパーメディア）は、エンドユーザ／視聴者に情報を配信するチャンネルよりもむしろコンテンツを意味する。メディア又はメディアコンテンツは、ビデオ、映画、テレビ番組、コマーシャル及びストリーミングビデオなど、テキスト、グラフィクス、アニメーション、静止画像及び双方向コンテンツ形態などのグラフィック表現を含むことができる。一般にメディアタイプと呼ばれるコンテンツタイプの例には、「映画」と呼ばれる「動画」がある。
【００１２】
１つの実施形態では、コンテンツオーバレイシステム又はコンテンツオーバレイ装置が、メディアコンテンツと、広告などの特定のタイムリーな、及び／又は標的化されたオーバレイコンテンツとの組み合わせを可能にすることができる。コンテンツオーバレイシステム又はコンテンツオーバレイ装置は、オーバレイコンテンツプロバイダが、視聴者をコンテンツオーバレイ内の行動喚起に応答するように誘うこと（例えば、コンテンツオーバレイに関与するための誘導）によって視聴者との関わり合いを可能にすることができる。視聴者を行動喚起に誘う１つの利点は、視聴者が追加情報の要求、質問、入力の提供、広告されたサービス又は製品のプロバイダとの接触などを行うための戻り経路又は追跡経路を提供できる点である。視聴者を行動喚起に誘う別の利点は、広告主が追加情報の提供、視聴者とのさらなる交わり、視聴者に関する追加情報の収集、広告された製品又はサービスに関する視聴者の質問への回答などを行うための戻り経路又は追跡経路を提供できる点である。別の例では、視聴者がメディア番組のオーバレイコンテンツの視聴及び／又はオーバレイコンテンツとの相互作用を行うと、コンテンツオーバレイシステム又はコンテンツオーバレイ装置が、広告主によるプラットフォームを越えた再ターゲットキャンペーンの使用を可能にする。
【００１３】
図１は、１つの例によるコンテンツ配信ネットワーク１００のシステム図である。コンテンツ配信ネットワーク１００では、コンテンツプロバイダ１０２がローカルプロバイダ１０６にコンテンツフィードをブロードキャストすることができる。ローカルプロバイダ１０６は、ヘッドエンド１０４と、自動コンテンツ認識（ＡＣＲ）フィンガープリンタサーバ１０５とを含むことができる。コンテンツプロバイダ１０２からのコンテンツフィードは、ローカルプロバイダ１０６のヘッドエンド１０４において受け取ることができる。ヘッドエンド１０４は、受け取ったコンテンツフィードに基づいてローカルコンテンツフィードを生成することができる。例えば、ヘッドエンド１０４は、国内又は全世界の放送局からの番組及び広告を含むネットワークチャンネルを受け取る現地法人放送局とすることができる。
【００１４】
ヘッドエンド１０４は、ＡＣＲフィンガープリンタサーバ１０５、無線（ＯＴＡ）放送局１０８、及び／又は多チャンネル映像番組配信事業者（ＭＶＰＤ）１１０にローカルコンテンツフィードを通信することができる。ＯＴＡ放送局１０８及び／又はＭＶＰＤ１１０は、ローカルコンテンツフィードをメディア装置１１５に通信することができる。メディア装置１１５のいくつかの例としては、クライアント装置１１８及び１２０、クライアント装置１１８及び１２０にプロバイダコンテンツをストリーミングするセットトップボックス１１４、並びにユーザがローカルコンテンツフィードを無線などでストリーミングできるようにするその他の装置１１６が挙げられる。
【００１５】
１つの例では、ＯＴＡ放送局１０８が、従来のローカルなテレビチャンネル又はラジオチャンネルを用いてローカルコンテンツフィードを放送することができる。この例では、クライアント装置１１８及び１２０が（ＴＶアンテナ又はラジオアンテナなどの）アンテナを含んでいて、ローカルコンテンツフィードを受け取ることができる。別の例では、（ケーブル放送局又は衛星放送局などの）ＭＶＰＤ１１０が、ローカルコンテンツフィードをセットトップボックス１１４に通信することができる。この例では、セットトップボックス１１４が、コンテンツフィードをクライアント装置１１８及び１２０用にフォーマットし、フォーマットされたコンテンツフィードをクライアント装置１１８及び１２０に通信することができる。クライアント装置１１８及び１２０は、テレビ画面又はタッチ画面などの、視聴者にローカルコンテンツを表示するディスプレイ装置を含むことができる。コンテンツ配信ネットワーク１００の様々な構成要素は、クライアント装置１１８及び１２０に一体化又は結合することができる。例えば、スマートテレビは、単一のユニット内にアンテナ、セットトップボックス１１４及びディスプレイ装置を含むことができる。
【００１６】
ＡＣＲフィンガープリントサーバ１０５は、ローカルコンテンツフィードを分析してフィンガープリント情報（例えば、フィンガープリント）を決定することができる。ＡＣＲフィンガープリントサーバ１０５は、これらのフィンガープリントをＡＣＲシステム１２４及び／又は１２６に通信することができる。ＡＣＲシステム１２４及び１２６は、スマートＴＶメーカーなどの装置メーカーによって選択された異なるＡＣＲシステムとすることができる。いくつかの実施形態では、後述するように、ＡＣＲシステム１２４が、ＡＣＲフィンガープリントシーケンスマッチャー１２５を含む。ＡＣＲフィンガープリントシーケンスマッチャー１２５は、フレームフィンガープリントを、対応するビデオフレームに由来するオリジナルビデオコンテンツと照合することができる。ＡＣＲシステム１２６は、ＡＣＲフィンガープリントシーケンスマッチャー１２５を有していても、又は有していなくてもよい。ＡＣＲフィンガープリントシーケンスマッチャー１２５に関する詳細については図３に関して後述する。
【００１７】
ＡＣＲフィンガープリントサーバ１０５は、ローカルコンテンツフィードを分析し、ローカルコンテンツフィードから、順序化された一連のフレームを含むことができるフィンガープリントを取り込むことができる。ＡＣＲフィンガープリントサーバ１０５は、これらのフィンガープリントをＡＣＲシステム１２４及び／又は１２６に通信することができる。ＡＣＲシステム１２４及び１２６は、スマートＴＶメーカーなどの装置メーカーによって選択された異なるＡＣＲシステムとすることができる。１つの例では、ＡＣＲフィンガープリントサーバ１０５が、例えば異なるタイプのフィンガープリンティング技術を含む異なるＡＣＲシステム１２４及び１２６向けにフィンガープリントをフォーマットすることができる。ＡＣＲシステム１２４及び１２６は、クライアント装置１１８及び１２０をそれぞれ含む異なるメディア装置１１５との通信接続を確立することができる。クライアント装置１１８及び１２０は、ＡＣＲシステム１２４及び１２６にそれぞれフィンガープリント情報を通信することができる。ＡＣＲシステム１２４又は１２６は、クライアント装置１１８及び／又は１２０からＡＣＲフィンガープリント情報を受け取ると、受け取ったフィンガープリントとＡＣＲフィンガープリントサーバ１０５によって生成されたフィンガープリントとを照合し、一致が生じてコンテンツが識別されると、コンテンツマネージャ１２２にＡＣＲイベントを通信することができる。
【００１８】
別の例では、ＡＣＲシステム１２４及び／又は１２６が、クライアント装置１１８及び／又は１２０からＡＣＲフィンガープリント情報を受け取り、受け取ったフィンガープリントとＡＣＲフィンガープリントサーバ１０５によって生成されたフィンガープリントとを照合することができる。一致が生じてコンテンツが識別されると、ＡＣＲシステム１２４及び／又は１２６がクライアント装置１１８及び／又は１２０にＡＣＲイベントを通知し、その後にクライアント装置１１８及び／又は１２０がこれらのＡＣＲイベントをコンテンツマネージャ１２２に通信することができる。これとは別に、又はこれに加えて、ＡＣＲシステム１２４及び／又は１２６は、ＡＣＲイベントを直接コンテンツマネージャ１２２に通信することもできる。ＡＣＲフィンガープリント情報は、ローカルコンテンツフィード内における視聴者に対する広告の表示、ローカルコンテンツフィード内における視聴者に対する選択又はフラグ付けされたコンテンツの表示、及びクライアント装置１１８又は１２０のコンテンツチャンネルの変更などを含むことができる。
【００１９】
異なるＡＣＲシステム１２４及び１２６からのイベント情報はフォーマットが異なる場合があり、コンテンツマネージャ１２２は、これらのデータをデータベース１２３に記憶する前に共通フォーマットに標準化することができる。例えば、コンテンツマネージャ１２２は、ＡＣＲシステム１２４及び１２６から、コンテンツは同じであるがフォーマットが異なるデータなどの、類似するものの同一ではないデータを含む異種データセットを受け取ることができる。コンテンツマネージャ１２２は、これらの異種データセットを処理及び再フォーマットして、単一のデータモデル又はデータフォーマット（例えば、再フォーマットされたデータセット）を作成し、この再フォーマットされたデータセットをコンテンツマネージャ１２２のデータベース１２３に追加することができる。
【００２０】
１つの実施形態では、コンテンツマネージャ１２２が、ＡＣＲシステム１２４及び１２６からの異種データセットを標準化するために、データセット内のデータを清浄化又はフィルタ処理することができる。例えば、いくつかのデータセットが、コンテンツマネージャ１２２に無関係な可能性のあるフィールド又はデータを含んでいる場合もある。この例では、コンテンツマネージャ１２２が、無関係なデータを清浄化又はフィルタ処理することができる（例えば、データを除去又は無視することができる）。別の例では、いくつかのデータセットが、不完全な又は誤ったデータ又はデータセットの例を含んでいる場合があり、コンテンツマネージャ１２２は、これらの不完全な又は誤ったデータ又はデータセットを清浄化又はフィルタ処理することができる。別の実施形態では、コンテンツマネージャ１２２が、ＡＣＲシステム１２４及び１２６からの異種データセットを標準化するために、データセットのフィールドをマッピングすることができる。例えば、コンテンツマネージャ１２２は、ＡＣＲシステム１２４から第１のデータセットを受け取ってＡＣＲシステム１２６から第２のデータセットを受け取った時に、これらの第１のデータセット及び第２のデータセットのデータフィールドの少なくとも一部が第１及び第２のデータセットの両方に共通することがある。ところが、これらの共通するデータフィールドが第１及び第２のデータセットの異なる場所に存在することもある。この例では、コンテンツマネージャ１２２が、第１及び第２のデータセットの異なるデータフィールドを標準化フィールドにマッピングして、同じデータフィールドをデータベース１２３の同じデータフィールド位置に有することができる。
【００２１】
別の実施形態では、コンテンツマネージャ１２２が、ＡＣＲシステム１２４及び１２６からの異種データセットを標準化するために、データセットからデータを導出することができる。例えば、ＡＣＲシステム１２４及び／又は１２６からのデータは、データベース内にデータフィールドを満たすのに必要なフィールドを全て含んでいないことがある。しかしながら、コンテンツマネージャ１２２は、ＡＣＲシステム１２４及び１２６からデータセット内の他のフィールドを使用して、これらのデータフィールドのためのデータを導出することができる。
【００２２】
１つの例では、データベース１２３が、国内の州フィールド、指定視聴地域（ＤＭＡ）、並びに郡及び／又は市フィールドなどのデータフィールドを含んでいるのに対し、ＡＣＲシステム１２４及び１２６からのデータセットが、郵便番号制度（ＺＩＰ）コードしか含んでいないことがある。この例では、コンテンツマネージャ１２２が、ＺＩＰコードを使用してデータベース内のフィールドのためのデータを導出することができる。別の例では、データセットがいずれの地理的位置情報も含んでおらず、ＡＣＲシステム１２４及び１２６のインターネットプロトコル（ＩＰ）アドレスを含んでいることがある。この例では、コンテンツマネージャ１２２が、ジオＩＰ検索サービスを使用して、州、ＤＭＡ、郡、市及びＺＩＰコードの情報を取得することができる。
【００２３】
別の例では、データベース１２３が、年齢フィールド、性別フィールド及び世帯収入フィールドなどの人口統計フィールドを含むことができる。しかしながら、ＡＣＲシステム１２４及び１２６からのデータセットは、人口統計フィールド又は人口統計データを含んでいないことがある。この例では、ＡＣＲシステム１２４及び１２６が、コンテンツマネージャ１２２にクライアント装置１１８及び１２０のＩＰアドレスを提供することができる。コンテンツマネージャ１２２は、このＩＰアドレスを用いて人口統計データを決定して、データベースにデータフィールドを追加することができる。
【００２４】
別の例では、ＡＣＲシステム１２４からの第１のデータセット内のフィールドが、山岳部夏時間（ＭＤＴ）帯などの現地時間帯情報を含み、ＡＣＲシステム１２６からの第２のデータセットが、協定世界時（ＵＴＣ）帯などの別の時間帯からの情報を含むことがある。データベースは、ＵＴＣを使用する全てのデータを記憶することができ、コンテンツマネージャ１２２は、現地時間をＵＴＣに変換した後でデータベース１２３にデータを記憶することができる。
【００２５】
１つの実施形態では、コンテンツマネージャ１２２が、標準化データを使用して、異なるＡＣＲ技術ベンダ及びスマートＴＶ又は他のインターネット接続ビデオ装置にわたるユーザ視聴行動に関するレポート又はデータ（視聴データ）を生成することができる。コンテンツマネージャ１２２及びメディア装置１１５は、メディア装置１１５とコンテンツマネージャ１２２との間でオーバレイコンテンツなどの情報を通信するための通信インターフェイスを含むことができる。
【００２６】
１つの例では、通信インターフェイスが、セルラーネットワーク及び／又は無線ネットワークを使用して情報を通信することができる。１つの例では、通信ネットワークを、第３世代パートナシッププロジェクト（３ＧＰＰ）リリース８、９、１０、１１又は１２、或いは電気電子技術者協会（ＩＥＥＥ）８０２．１６ｐ、８０２．１６ｎ、８０２．１６ｍ−２０１１、８０２．１６ｈ−２０１０、８０２．１６ｊ−２００９、８０２．１６−２００９とすることができるセルラーネットワークとすることができる。別の実施形態では、通信ネットワークを、ＩＥＥＥ８０２．１１−２０１２、ＩＥＥＥ８０２．１１ａｃ又はＩＥＥＥ８０２．１１ａｄ規格などの、電気電子技術者協会によって開発されたＩＥＥＥ（登録商標）規格に従うことができる（Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって開発されたＷｉ−Ｆｉ（登録商標）技術を使用するネットワークなどの）無線ネットワークとすることができる。別の実施形態では、通信ネットワークを、Ｂｌｕｅｔｏｏｔｈ（登録商標）  ｖ１．０、Ｂｌｕｅｔｏｏｔｈ  ｖ２．０、Ｂｌｕｅｔｏｏｔｈ  ｖ３．０又はＢｌｕｅｔｏｏｔｈ  ｖ４．０などの、Ｂｌｕｅｔｏｏｔｈ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ（ＳＩＧ）によって開発されたＢｌｕｅｔｏｏｔｈ（登録商標）接続とすることができる。別の実施形態では、通信ネットワークを、ＩＥＥＥ８０２．１５．４−２００３（Ｚｉｇｂｅｅ２００３）、ＩＥＥＥ８０２．１５．４−２００６（Ｚｉｇｂｅｅ２００６）、ＩＥＥＥ８０２．１５．４−２００７（Ｚｉｇｂｅｅ  Ｐｒｏ）などの、ＺｉｇＢｅｅ  Ａｌｌｉａｎｃｅによって開発されたＺｉｇｂｅｅ（登録商標）接続とすることができる。
【００２７】
１つの例では、コンテンツマネージャ１２２が、メディア装置１１５に、ＯＴＡ放送局１０８又はＭＶＰＤ１１０から受け取ったローカルコンテンツフィードの一部をオーバレイコンテンツに差し換えるように指示することができる。別の例では、コンテンツマネージャ１２２が、メディア装置１１５に、ローカルコンテンツフィードの一部にオーバレイコンテンツをオーバレイし、又は重ね合わせるように指示することができる。コンテンツマネージャ１２２は、複数のＡＣＲシステム１２４及び１２６にわたるＡＣＲ情報を集約し、異なる装置メーカーからの装置とすることができるクライアント装置１１８及び１２０にオーバレイコンテンツを通信することができる。
【００２８】
コンテンツマネージャ１２２は、メディア装置１１５の他の装置１１６との通信接続を確立することもできる。１つの例では、他の装置１１６が、クライアント装置１１８又は１２０と通信して、オーバレイコンテンツを表示する追加画面（例えば、第２の画面など）を提供することができる。例えば、クライアント装置１１８及び１２０は、ＯＴＡ放送局１０８又はＭＶＰＤ１１０からローカルコンテンツフィードを受け取ってユーザに表示することができる。他の装置１１６は、前段で説明したようなＡＣＲイベントの発生時に、ＡＣＲシステム１２４及び１２６にＡＣＲイベント情報を通信することもできる。コンテンツマネージャ１２２は、ＡＣＲイベント情報を受け取ると、他の装置１１６にオーバレイコンテンツを通信することができる。
【００２９】
１つの例では、クライアント装置１１８及び１２０が、他の装置１１６がオーバレイコンテンツを表示している間にローカルコンテンツフィードを表示し続けることができる。別の例では、クライアント装置１１８及び１２０、並びに他の装置１１６が、いずれもオーバレイコンテンツを表示することができる。別の例では、クライアント装置１１８及び１２０、並びに他の装置１１６が、オーバレイコンテンツの一部及びローカルコンテンツフィードの一部を表示することができる。別の例では、クライアント装置１１８及び１２０、並びに他の装置１１６が、異なるローカルコンテンツフィード及び／又はオーバレイコンテンツを表示することができる。
【００３０】
１つの例では、クライアント装置１１８及び１２０、及び／又は他の装置１１６が、オーバレイコンテンツを受け取った時点でオーバレイコンテンツを表示することができる。別の例では、クライアント装置１１８及び１２０、及び／又は他の装置１１６が、オーバレイコンテンツの表示を閾値時間にわたって遅らせることができる。この閾値時間は、事前に定めた時間とすることも、或いはクライアント装置１１８及び１２０、及び／又は他の装置１１６がオーバレイコンテンツの表示を遅らせる時間をコンテンツマネージャ１２２が選択することもできる。
【００３１】
図２に、１つの実施形態による、クライアント装置２１８及び／又は２２０などのメディア装置１１５にオーバレイコンテンツを提供するコンテンツマネージャ２２２を示す。コンテンツプロバイダ２０２は、ネットワーク２１９を介してメディア装置１１５にメディアコンテンツをストリーミングすることができ、コンテンツマネージャ２２２は、メディア装置１１５にメディアコンテンツがストリーミングされる前に、又はこれと同時にこのストリーミングを傍受することができる。コンテンツマネージャ２２２は、広告サーバ（又は「ａｄ」サーバ）２３０と通信して、さらに詳細に説明するようにメディアコンテンツの主題及び／又はユーザの興味を標的とする広告がメディアコンテンツに（又はメディアコンテンツへのオーバレイとして）提供されることを要求する広告要求（ａｄｖｅｒｔｉｓｉｎｇ  ｃａｌｌ）をａｄサーバ２３０に送信することなどができる。ａｄサーバ２３０は、広告又はその他のオーバレイコンテンツを後でメディア装置１１５に配信できるようにコンテンツマネージャ２２２に提供する、又はコンテンツをオーバレイとして直接メディア装置１１５に提供できる第三者サーバ又は外部サーバとすることができる。
【００３２】
コンテンツマネージャ１２２は、ＡＣＲエンジン２０４と、ルックアップサーバ２０６と、オーバレイ決定エンジン２１０と、オーバレイコンテンツを記憶するオーバレイデータベース２１１と、ａｄターゲッタ２１２とを含むことができる。コンテンツプロバイダ２０２は、ＡＣＲエンジン２０４にメディアコンテンツをアップロードすることができる。
【００３３】
ＡＣＲエンジン２０４は、メディアコンテンツのフィンガープリントを検出することができる。１つの例では、フィードの全てのフレーム、フィードの１つおきのフレーム及び一連のフレームなどのフィンガープリントを採取することによってフィンガープリントを生成することができる。例えば、ＡＣＲエンジン２０４は、フレームの離散コサイン変換（ＤＣＴ）を実行し、結果として得られる係数のサブセット（例えば、低周波数係数）をフィンガープリントとして指定することによって、フィードのフレームのフィンガープリントを生成することができる。別の又は関連する実施形態では、ＡＣＲエンジン２０４がＡＣＲイベント情報を分析して、どのようなイベントが起きた可能性があるか、例えば一連のフレームのクエリフィンガープリントと、ＡＣＲシステム１２４又は１２６に記憶されているオリジナルコンテンツのフレームフィンガープリントとの間の肯定的一致を決定することができる。肯定的一致が存在する場合、ＡＣＲエンジン２０４は、肯定的一致が生じたコンテンツを識別するメディアコンテンツ識別子（ＩＤ）を含むことができる肯定的一致インジケータを要求側メディア装置１１５に送信することができる。メディア装置１１５は、メディアコンテンツオーバレイを要求するオーバレイ要求をオーバレイ決定エンジン２１０に送信することができる。１つの例では、このオーバレイ要求が、メディアコンテンツＩＤを含むことができる。別の例では、オーバレイ要求が、オーバレイ情報又はオーバレイパラメータを含むことができる。
【００３４】
図２をさらに参照すると、ＡＣＲエンジン２０４は、ＡＣＲシステム１２４又は１２６から受け取ったＡＣＲイベントに対応するテレビ番組（又は、例えばチャンネル）及びテレビ番組内の位置を検索して決定できるＡＣＲフィンガープリントをルックアップサーバ２０６に通信することができる。フィードのセグメントの各フィンガープリントには、タイムスタンプを関連付けることができる。このタイムスタンプは、ＡＣＲエンジン２０４が受け取った時のフィードのセグメントの個々のフレームに属することができる。タイムスタンプは、任意のフィード内の開始点からのフレーム番号とすることができる。ルックアップサーバ２０６は、フィンガープリントをそれぞれのタイムスタンプに関連付けて（例えばフィンガープリントデータベース２０７に）記憶し、ユーザが視聴しているフィードのメディアコンテンツ内でａｄターゲッタ２１２及びオーバレイ決定エンジン２１０がタイミング調整及びコンテンツターゲッティングを行うのを支援する。
【００３５】
１つの実施形態では、ＡＣＲエンジン２０４が、様々なメディア装置１１５のＡＣＲクライアント２１５と相互作用する。ＡＣＲクライアント２１５は、フィンガープリントをローカルに照合し、ユーザが異なるテレビ番組を視聴するためにチャンネルを変更したか否かを確認して、コンテンツマネージャ２２２にチャンネルの変更を報告することができる。従って、場合によっては、メディア装置１１５においてフィンガープリントの照合をローカルに行うこともできる。
【００３６】
さらに、ＡＣＲクライアント２１５は、ユーザフィンガープリント情報を、例えばメディア装置１１５上で視聴されているテレビ番組又はチャンネルの確認を要求するクエリフィンガープリントの形で定期的に、継続的に又は半継続的にルックアップサーバ２０６に通信することができる。ルックアップサーバ２０６は、（単複の）クエリフィンガープリントと、フィンガープリントデータベース２０７に記憶されている、又はルックアップサーバからネットワーク２１９を横切って記憶されている数多くのフレームフィンガープリントとが一致する時点を決定することができる。クエリフィンガープリントは、順序化された一連のフレームとすることができ、これらのそれぞれを、テレビ番組又はチャンネルに関連する十分な一致を発見するまでフレームフィンガープリントのそれぞれと照合することができる。肯定的な一致が存在すると、ルックアップサーバ２０６は、ＡＣＲクライアント２１５に肯定的一致インジケータを通信することができる。ＡＣＲクライアント２１５は、オーバレイ決定エンジン２１０に、メディアコンテンツのオーバレイを要求するオーバレイ要求を送信することができる。
【００３７】
１つの例では、オーバレイ要求が、メディアコンテンツ識別子（ＩＤ）を含むことができる。別の例では、オーバレイ要求が、オーバレイ情報又はオーバレイパラメータを含むことができる。１つの例では、オーバレイ決定エンジン２１０が、コンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータを使用して標的オーバレイコンテンツを識別することができる。別の例では、オーバレイ決定エンジン２１０が、コンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータを使用してオーバレイフォーマットを識別することができる。オーバレイ決定エンジン２１０は、コンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータをオーバレイデータベース２１１と比較して、標的オーバレイコンテンツ及び／又はオーバレイフォーマットを識別することができる。オーバレイデータベースは、コンテンツプロバイダ又は広告主（例えば、広告サーバ２３０）が定期的に又は継続的に新たなオーバレイコンテンツ及び／又はオーバレイフォーマットで更新することができる。オーバレイコンテンツは、チャンネルのテレビ番組のストリーミングされているメディアコンテンツのオーバレイ位置に配信される前又は後に、（オーバレイテンプレートなどの）オーバレイフォーマットを追加することができる。
【００３８】
ａｄターゲッタ２１２は、オーバレイ決定エンジンによってメディア装置１１５に配信された広告及びその他のオーバレイコンテンツに関するユーザの相互作用及び行動を追跡して分析することができる。ａｄターゲッタ２１２は、ユーザ行動を分析したユーザプロファイル情報をメディア装置毎に受け取って組み込み、ユーザにとって興味のある主題を決定することができる。このユーザ又はユーザグループについて収集した情報及びデータは、通常視聴されているテレビ番組及びチャンネルに関する好ましい視聴時間及び典型的な視聴習慣、並びに時間にまで及ぶことができる。その後、ａｄターゲッタ２１２は、興味のある異なる主題及び視聴習慣をパラメータなどの形でオーバレイ決定エンジン２１０に通知し、オーバレイ決定エンジン２１０は、それぞれのユーザへの配信にどのオーバレイコンテンツを選択すべきか、そのフォーマット方法、及びキャンペーン予算の投資利益率のためにはいつ配信するのが最良であるかを判断する上でこれらを使用することができる。
【００３９】
オーバレイ決定エンジン２１０は、ａｄターゲッタ２１２を利用して標的オーバレイコンテンツを識別すると、この標的オーバレイコンテンツをメディア装置１１５に戻すことができる。１つの例では、オーバレイ決定エンジン２１０が、標的オーバレイコンテンツを、無線通信ネットワークなどを介してメディア装置１１５に直接通信することができる。別の例では、オーバレイ決定エンジン２１０が、標的オーバレイコンテンツを、ユニバーサルリソースロケータ（ＵＲＬ）を介してメディア装置１１５に通信することができる。１つの例では、複数の標的オーバレイコンテンツがコンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータに一致する場合、オーバレイ決定エンジン２１０は、最も大きな数字パラメータ又はその他の情報を満たす標的コンテンツオーバレイを選択することができる。別の例では、複数の標的オーバレイコンテンツがコンテンツＩＤ、オーバレイ情報及びその他のオーバレイパラメータに一致する場合、オーバレイ決定エンジン２１０は、これらのパラメータ及びその他の情報を満たすオーバレイコンテンツをランダムに選択することができる。別の例では、複数の標的オーバレイコンテンツがコンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータに一致する場合、オーバレイ決定エンジン２１０は、コンテンツＩＤ、オーバレイ情報及び／又はオーバレイパラメータに一致する所定のオーバレイコンテンツを選択することができる。オーバレイコンテンツには、動的コンテンツ（例えば、定期的に更新又はリフレッシュできるコンテンツ）を追加することができる。動的コンテンツは、ローカルデータベース又は外部システムに記憶することができる。
【００４０】
ＡＣＲフィンガープリント情報がユーザフィンガープリント情報と一致した場合、メディア装置１１５のＡＣＲクライアント２１５は、コンテンツフィードにオーバレイコンテンツを重ねることができる。１つの例では、メディア装置１１５が、ハイパーテキストマークアップ言語（ＨＴＭＬ）ブラウザ内のコンテンツフィードにオーバレイコンテンツを重ねることができる。別の例では、メディア装置１１５が、ＯＴＡ放送局又はケーブル放送局からのコンテンツフィードにオーバレイコンテンツを重ねることができる。コンテンツフィード上にオーバレイコンテンツが配置されると、このオーバレイコンテンツを、メディア装置１１５のディスプレイを介してユーザに表示することができる。１つの例では、オーバレイコンテンツが、ユーザに表示できる１又は２以上の行動喚起オプションを含むことができる。この例では、ユーザが、（ＴＶリモコン、キーボード、スマートフォン又はタブレットなどの）入力装置を用いてオーバレイコンテンツと相互作用してフィードバック情報を作成することができる。ＡＣＲクライアント２１５は、このフィードバック情報を広告ターゲッタ２１２に通信することができる。広告主などの別の個人は、フィードバック情報にアクセスし、フィードバック情報を分析して、オーバレイコンテンツにおけるユーザの興味などの所望の情報を決定することができる。
【００４１】
ＡＣＲクライアント２１５は、コンテンツフィードをモニタして、オーバレイコンテンツとコンテンツフィードとの一致が終了する時点、及び／又は閾値時間が満了する時点を決定することができる。１つの例では、オーバレイコンテンツとコンテンツフィードとの一致が終了し、及び／又は閾値時間が満了すると、メディア装置１１５は、メディア装置１１５上に表示されるオーバレイコンテンツの重ね合わせを中止することができる。
【００４２】
図３は、図２のコンテンツマネージャの、メディアコンテンツのフィンガープリントを採取するために使用されるＡＣＲエンジン２０４のシステム図である。１つの実施形態によれば、ＡＣＲエンジン２０４は、フィンガープリントを採取すべきメディアコンテンツのコンテンツフレームと、フィンガープリンタ３０５と、フィンガープリントシーケンスマッチャー３２５と、フレームフィンガープリントを記憶するデータベース３２７とを受け取ることができる。コンテンツプロバイダ２０２は、クライアント装置２１８及び／又は２２０を含むメディア装置１１５にストリーミングされるマルチメディアコンテンツを生成することができる。
【００４３】
フィンガープリンタ３０５は、マルチメディアコンテンツから複数のコンテンツフレーム３０２をフィンガープリントとして検出又は選択することができる。１つの実施形態では、複数のコンテンツフレーム３０２を順に並べることができ、従って複数のコンテンツフレーム３０２は、フィンガープリントの最初から最後までの連続タイムスタンプを含む。１つの例では、コンテンツをオーディオデータ、ビデオデータ、又はこれらの両方とすることができる。この例では、ビデオコンテンツを未加工のビデオフレームとすることができる。
【００４４】
例えば、フィンガープリンタ３０５は、コンテンツフレーム３０２を受け取ると、フィンガープリントを生成する未加工のビデオ及び／又はオーディオフレームなどのコンテンツフレーム３０２の処理方法を決定することができる。１つの例では、フレームのフィンガープリント採取を個別に行うことができる。別の例では、フレームのフィンガープリント採取をまとめて又は順番に行うことができる。フィンガープリンタ３０５は、フィンガープリンタ３０５がフィンガープリントの採取中に実行するＡＣＲアルゴリズムに基づいて、ビデオフレームのフィンガープリント採取をいつ個別に又は順番に行うかを決定することができる。
【００４５】
別の例では、フィンガープリンタ３０５が、コンテンツフレーム３０２のフィンガープリント採取を異なる放送局又はユーザについて異なる形で行うことができる。この例では、フィンガープリンタ３０５が、異なるＡＣＲベンダのための異なるＡＣＲフィンガープリントアルゴリズムを含むことができる。１つの例では、異なるＡＣＲフィンガープリントアルゴリズムを予め決定してフィンガープリンタ３０５のメモリに記憶することができる。
【００４６】
さらに別の例では、第三者ＡＣＲベンダが異なるＡＣＲフィンガープリントアルゴリズムを提供することができる。このようなベンダが異なるＡＣＲフィンガープリントアルゴリズムを提供する際には、フィンガープリンタ３０５が、異なるＡＣＲフィンガープリントアルゴリズムを集約することができる。１つの例では、ＡＣＲフィンガープリンティングが、ＹＵＶ４：２：２の色空間を有する高解像度又はその他のレベルの解像度の未加工ビデオを使用することができる。ローカルプロバイダ１０６又は他のコンテンツプロバイダ２０２においてビデオコンテンツが受け取られると、フィンガープリンタ３０５は、ビデオコンテンツをＹＵＶ４：２：０の色空間に変換して、メディア装置１１５に送信される前に放送局又はディストリビュータが符号化できるように解像度を閾値解像度レベルまでスケールダウンすることができる。
【００４７】
いくつかの実施形態では、フィンガープリンタ３０５が、フィンガープリントシーケンスマッチャー３２５を含み、又はこれと通信することができる。フィンガープリントシーケンスマッチャー３２５は、以下で詳細に説明するように、一連のフィンガープリントを所与の一連の個々のフレームフィンガープリントの発生元であるオリジナルビデオコンテンツと照合することができる。
【００４８】
フィンガープリンタ３０５は、コンテンツフレーム３０２のフィンガープリントを採取すると、この（チャンネル情報、時間コード及びフィンガープリント情報を含む）フィンガープリントをオーバレイデータベース２１１及び／又はルックアップサーバ２０６に送信することができる。ルックアップサーバ２０６は、オーバレイデータベース２１１からフィンガープリント及び関連情報を検索することもできる。ルックアップサーバ２０６は、オーバレイ決定エンジン２１０及びａｄターゲッタ２１２とも通信又は結合し、オーバレイ決定エンジン２１０及びａｄターゲッタ２１２にオーバレイ及び主題照合情報を送信することにより、クライアント装置２１８及び２２０上でユーザを文脈的にターゲッティングできるようにする。
【００４９】
１つの例では、同じコンテンツに異なるＡＣＲフィンガープリントアルゴリズムを使用して、異なるＡＣＲベンダのルックアップサーバに異なるフィンガープリント情報を提供することができる。同じコンテンツ（例えば、コンテンツフレーム）３０２のフィンガープリントを別様に採取する利点は、文脈的に関連する広告及びインタラクティブコンテンツをメディア消費装置の異なる視聴者に提供できる点である。別の例では、コンテンツフレーム３０２が、異なるフィードからのメディアコンテンツを含むことができる。この例では、コンテンツフレーム３０２の異なるフィードのコンテンツに異なるＡＣＲフィンガープリントアルゴリズムを使用して、異なるＡＣＲベンダのルックアップサーバに異なるフィンガープリント情報を提供することができる。
【００５０】
異なるフィンガープリント情報は、異なるＡＣＲベンダのルックアップサーバにそれぞれアップロードすることができる。異なるＡＣＲベンダは、異なる契約装置メーカー（ＣＥＭ）によって製造された視聴装置上に統合することができる。例えば、Ｔｏｓｈｉｂａ社のテレビは、Ｓａｍｂａ（登録商標）のＡＣＲフィンガープリント技術を利用することができ、Ｓａｍｓｕｎｇ（登録商標）社のテレビは、Ｅｎｓｗｅｒ（登録商標）のＡＣＲフィンガープリント技術を使用することができる。フィンガープリンタ３０５が異なるＡＣＲベンダのためのＡＣＲフィンガープリントアルゴリズムを含む利点は、メディア消費装置のメーカーに関わらず、異なるＡＣＲベンダを通じて視聴者に提供されたコンテンツのフィンガープリントを採取できる点である。１つの例では、ＡＣＲフィンガープリント情報をデジタル広告差し換え（ＤＡＲ）に使用することができる。別の例では、ＡＣＲフィンガープリント情報を広告又はコンテンツ増強及びデータ収集に使用することができる。オーバレイ決定エンジン２１０及びａｄターゲッタ２１２（図２）は、フィンガープリント情報を使用して、符号化コンテンツを文脈的に関連する広告、情報及び／又はインタラクティブコンテンツと照合することができる。その後、一致したコンテンツ及び／又は広告をメディア装置１１５に提供してストリーミング表示することができる。別の例では、照合イベントに関する情報を放送クラウドに通信してコンテンツ照合を分析することができる。
【００５１】
１つの例では、フィンガープリンタ３０５が、システムにおける放送配信の開始時にＡＣＲフィンガープリンティングを実行することができる。別の例では、符号化／アップロードのために放送フィードを配信できる放送チェーンにおいてＡＣＲフィンガープリンティングを行うことができる。単一の放送フィードを使用すると、ＡＣＲフィンガープリンティング及び符号化／アップロードのために購入し、インストールし、モニタして維持するのに必要な装置及び／又はアプリケーションの数を低減することができる。例えば、低減されたシステムインフラ（ラック空間、電力及びイーサネット（登録商標）接続性）などの、資本支出（ＣＡＰＥＸ）及び／又は運営費（ＯＰＥＸ）を低減することができる。また、単一の放送フィードを使用すると、放送局の分配増幅器から生成される放送フィードの数を低減することもできる。
【００５２】
上述したように、フィンガープリンタ３０５は、マルチメディアコンテンツから、ユーザのメディア装置１１５のうちの１つに表示されるまでのルートにおいて放送サーバ、ヘッドエンド、スイッチ及び／又はセットトップボックスを通過できるような個々のフィンガープリントを生成することができる。フィンガープリントは、１つのフレーム又は複数のフレームを含むことができる。フレームは、時系列的なタイムスタンプ順に取り出すことも、又はやはり対応するタイムスタンプを用いて例えば１つおき（又は２つおき）などの何らかの間隔で取り出すこともできる。
【００５３】
フィンガープリントシーケンスマッチャー３２５は、これらの一組の又は一連の個々のフレームを（クエリフィンガープリントとして）処理して、これらのフィンガープリントによって表される対応するビデオフレームの発生元であるオリジナルビデオコンテンツの（データベース３２７に記憶されている）フレームフィンガープリントと照合することができる。フレームフィンガープリントは単一のフレームとすることができ、それぞれが対応するタイムスロット（又はメディア番組の最初からのフレーム番号又は時間量などの何らかの種類のインデックス）を含む。一致が見つかると、メディア装置１１５上でユーザが視聴しているメディア番組、チャンネル、番組の開始時刻及び終了時刻の面でのスケジュールの時間割、コマーシャルの時間割、並びに一致するメディア番組のこのような情報を決定することができる。
【００５４】
フィンガープリントシーケンスマッチャー３２５は、照合結果に信頼性を持たせるために、一連のフィンガープリントが時間的に順序化されており、従って一致するフィンガープリントも同じビデオに属するだけでなく同様に時間的に順序化されているという事実を利用することができる。フィンガープリントシーケンスマッチャー３２５は、この特性を利用して、クエリフィンガープリントのフレームのタイムスタンプを照合に使用される（例えば、二次元データ構造の）オリジナルコンテンツのフレームフィンガープリントにマッピングし、例えばマッピングされたタイムスタンプ点に対してパターン認識アルゴリズムを実行することによって外れ値をフィルタ除去することができる。
【００５５】
フィンガープリントシーケンスマッチャー３２５は、フィンガープリントの一連のフレームのこのような時間特性を使用して、一致するフィンガープリントシーケンスがどのように（高速で、低速で又は逆向きに）再生されたかを検出することができる。ＡＣＲフィンガープリントシーケンスマッチャー３２５内のアルゴリズムは、例えば、フルフレームレートでの通常速度、１／２フレームレートでの通常速度、又は１／３フレームレートでの通常速度などの特定の再生シナリオを検出するように実装することができる。
【００５６】
図４を参照すると、フィンガープリントシーケンスマッチャー３２５は、入力（又はクエリ）フィンガープリントの第１のタイムスタンプ（又はその他のタイプのインデックス）と、（単複の）一致するフレームフィンガープリントの第２のタイムスタンプ（又はその他のタイプのインデックス）とを使用することができる。第１のタイムスタンプ及び第２のタイムスタンプは、所与のシーケンスにおけるクエリフィンガープリントの第１のタイムスタンプ（又はインデックス）をＸi、クエリフィンガープリントのそれぞれのフレームの検索された一致するフレームフィンガープリントの第２のタイムスタンプ（又はインデックス）をＹjとする点（Ｘi、Ｙj）の２次元（２Ｄ）場を形成する。
【００５７】
具体的には、フィンガープリントシーケンスマッチャー３２５は、時点Ｘ0におけるフィンガープリントを所与としてフィンガープリントデータベース３２７におおよその一致を問い合わせ、密接に一致するフレームフィンガープリントの組がタイムスタンプＹj及びＹj＋３において識別される。この一致の組では、一致が（Ｘ0、Ｙj）又は（Ｘ0、Ｙj＋３）を含むことができるので、どちらが正確な一致であるかを決定することはできない。時点Ｘ1における次のフィンガープリントを所与とすると、最も近い一致の組は、Ｙj＋１及びＹj＋５を含む。これらのさらなる一致では、フレームのフィンガープリント採取及び再生が行われる速度に関する何かを仮定した場合、フィンガープリントシーケンスマッチャー３２５は、どちらの一致が正確及び不正確であるかを決定するのに十分な情報を既に有している。フィンガープリントシーケンスマッチャーが、フィンガープリントが照合のためにリアルタイムで（時間の引き伸ばし又は圧縮を伴わずに）提出されると仮定した場合、正しい一致は、傾き＝１の線上に並ぶようになる。すなわち、（Ｘ0、Ｙj）及び（Ｘ1、Ｙj＋１）が正しい一致であり、（Ｘ0、Ｙj＋３）及び（Ｘ1、Ｙj＋５）は、傾き＝２の線を形成するので誤一致（外れ値）である。
【００５８】
時点Ｘiにおけるさらなるフィンガープリントを所与とすると、潜在的な一致の組は、Ｘi−１及びＸi−２などにおける一致によって形成される同じ線を延ばした地点を含むはずである。従って、フィンガープリントシーケンスマッチャー３２５は、正しい一致を一斉に識別するために、同じ線に一致する地点（Ｘi、Ｙj）を識別する。１つの識別方法は、パターン認識アルゴリズムの使用を通じたものである。ランダムサンプルコンセンサス（ＲＡＮＳＡＣ）は、この線を発見するために使用できる１つのこのようなアルゴリズムであるが、他のアルゴリズムも使用することができる。ＲＡＮＳＡＣを使用すると、あらゆる傾きの線を検出することができる。
【００５９】
例えば、検出される線の傾きは、１である必要はない。ビデオを逆に再生した場合には、傾きが負になる。（恐らくはコマーシャルのための余地を広く取るために）ビデオをリアルタイムよりも速く再生した場合には、傾きが１よりも大きくなる。ビデオを低速にした場合には、傾きは１よりも小さくなる。例えば、恐らくオリジナルの位相反転線（ＰＡＬ）コンテンツは、２５フレーム／秒（ｆｐｓ）でフィンガープリントを採取されたものであるが、２３．９７６ｆｐｓの全国テレビ方式委員会（ＮＴＳＣ）放送では時間が引き伸ばされる。フィンガープリントシーケンスマッチャーが線の傾きを決定できるには、少なくとも３つのフィンガープリント（Ｘ0、Ｘ1、Ｘ2）が必要であるが、フィンガープリントがさらに多ければ、この決定はさらにロバストなものになる。フィンガープリントシーケンスマッチャーは、検出された線の傾きを所与として、オリジナルのコンテンツ再生速度に対するクライアント装置上のコンテンツの再生速度を決定することができる。
【００６０】
従って、フィンガープリントシーケンスマッチャー３２５は、所与の順序化された一連のクエリフィンガープリントのフレーム毎に、上位Ｎ個の一致するフレームフィンガープリントをデータベース３２７内で発見することができる。ここでの変数Ｎは、（例えば、１０などの）任意の整数又は他の予め決定した値とすることができる。１つの実施形態では、変数Ｎを、データベース３２７における所与のクエリフィンガープリントの一致するフレームの数とすることができる。別の実施形態では、実装及び設計因子に応じて、Ｎを一定の制限とすることも、制限なし（無限）とすることもできる。例えば、フィンガープリントシーケンスマッチャー３２５は、Ｘiにおける全てのフィンガープリントについて、データベース３２７内の上位１０個の最も一致するフィンガープリントを識別することを選択し、従ってＸiにおける考えられる一致の数を最大でも１０個のペアに制限することができる。或いは、フィンガープリントシーケンスマッチャー３２５は、データベース内の全てのほぼ一致するフィンガープリントを戻すことを選択することもでき、この場合、フィンガープリントシーケンスマッチャー３２５は、誤一致であるさらに多くのペアを有することができる。十分な大きな入力フィンガープリントシーケンス（Ｘ0．．．Ｘi）を所与とした場合、これらは一列に並ぶので、依然として正しい一致を識別できるはずであるが、誤一致の数が無制限になるので、このパターンの検出が困難になる場合もある。最も近い一致の数を制限すると、誤一致の数を減少させる役に立つとともに、線検出に単純かつ高速なアルゴリズムを使用できるようになる。最も近い一致の数を制限するリスクは、真の一致が除外される恐れがある点であるが、このリスクは、十分に大きなＮによって抑えられる。
【００６１】
さらに、（一時停止していない）ビデオ（又は他のメディア番組）の再生中には、各考えられる一致の組に最大で１つの正解値（ｉｎｌｉｅｒ）が存在する。フィンガープリントは順序化されているので、全ての正解値は一列に並ぶはずである。これは図４で確認することができ、正解値は、（Ｘ0、Ｙj）と（Ｘ7、Ｙj＋７）との間の１の傾きを有する線を形成する。場合によって、メディア番組の速度が上がった時には、この線が紛失した正解値を含むこともある。これとは逆に、メディア番組の速度が下がった時には、この線がさらなる正解値を含むことがある。
【００６２】
フィンガープリントシーケンスマッチャー３２５は、信頼性のある正解値を検出するために、点の場内の線を検出する。フィンガープリントシーケンスマッチャー３２５が線の傾き（例えば、１、２又は３の傾き）を知っている時には、単純な線検出器を用いてこれを行うことができる。この方法は、上述したように、クエリフィンガープリントとデータベース３２７に記憶されているフレームフィンガープリントとの一致を発見するために使用されるフレームフィンガープリントが同じアルゴリズムによって生成された時に、既知の傾きと連動する。複数の線が存在する場合、フィンガープリントシーケンスマッチャー３２５は、２つの線のうちの長い方を採用することができる。
【００６３】
或いは、上述したように、この線は、ＲＡＮＳＡＣなどのパターン認識アルゴリズムによって検出することもできる。ＲＡＮＳＡＣは、外れ値を含む観察されたデータの組から数学的モデルのパラメータを推定する反復方法である。ＲＡＮＳＡＣは、一定の確率の妥当な結果を生成する非決定的アルゴリズムであり、より多くの反復が可能な場合には、この確率が上昇する。基本前提は、データが、例えば何らかのモデルパラメータの組によって分布を説明することができるがノイズに影響されることもあるデータなどの「正解値」と、モデルに適合しないデータである「外れ値」とを含むことである。外れ値は、例えば極端なノイズの値、或いは誤測定又はデータの解釈に関する誤った仮説に由来することがある。ＲＡＮＳＡＣは、（通常は少ない）一連の正解値を所与とした時に、このデータを最適に説明する又はこのデータに最適に適合するモデルのパラメータを推定できる手順が存在することも想定する。フィンガープリントシーケンスマッチャー３２５は、ＲＡＮＳＡＣを使用して、一連のわずかな点からあらゆる傾きの線を検出することができる。十分な正解値があれば、フレームレートに関わらず線を検出できるので、この線はフレームレートに関わらず検出することができる。検出された線を使用して、入力フレームシーケンスの再生速度を識別することもできる。フィンガープリントシーケンスマッチャー３２５は、ユーザが再生テンポを変更した時点、又は（例えば負の傾きによって）ビデオが逆向きに再生している時点を検出することもできる。再生速度は、検出された線の傾きに反映させることができる。
【００６４】
上述したように、フィンガープリントシーケンスマッチャー３２５は、再生がオリジナルの（変更されていない）速度である場合に特定の傾きの線を検出することができる。例えば、１の値を有する傾きは、フレームレートを変更していない１：１の再生テンポに対応する。この実施形態では、フィンガープリントシーケンスマッチャー３２５が線検出アルゴリズムを単純化することができ、ＲＡＮＳＡＣなどのパターン検出アルゴリズムを使用しなくてもよい。別の実施形態では、フィンガープリントシーケンスマッチャー３２５が、１つおきのフレームが脱落している入力フィンガープリントシーケンスに対応する傾き２の線を探すこともできる。この動作は、例えばＨＴＴＰライブストリーミング（ＨＬＳ）出力における２番目に低いビットレートストリームについて行うことができる。別の実施形態では、フィンガープリントシーケンスマッチャー３２５が、全ての点が水平線のように並んでいるのを検出することによって、ユーザが再生を一時停止した時点を検出することもできる。
【００６５】
フィンガープリントシーケンスマッチャー３２５の実施形態は、順序化された一連の入力フレームを所与とする発生元ビデオの検出方法を形式化することができる。フィンガープリントシーケンスマッチャー３２５を使用すると、ユタ州ソルトレークシティのＳｏｒｅｎｓｏｎ  Ｍｅｄｉａ社によって開発されたＳｐａｒｋ  Ｃｏｒｅ  ＡＣＲなどのＡＣＲシステムにおける一致検出の信頼性を高めることができる。
【００６６】
シーケンスマッチングの１つの考えられる利点は、個々のフレームフィンガープリントの時間的順序を活用して個々のフレーム照合アルゴリズムの品質要件を緩和できる点である。例えば、個々のフレームマッチングアルゴリズムにおいて、さらに多くの誤検出を許容することができる。これらの実施形態では、再生フレームレート及びテンポ、又は再生が一時停止されているかどうかを検出することもできる。
【００６７】
図５は、１つの実施形態による、入力（又はクエリ）フィンガープリントの一連のフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識（ＡＣＲ）方法のフローチャート５００である。この方法は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（処理装置によって実行される命令など）、ファームウェア又はこれらの組み合わせを含むことができる処理ロジックによって少なくとも部分的に実行することができる。この方法は、クライアント装置２１８又は２２０などのクライアント装置の処理ロジックによって、図１のＡＣＲシステム１２４又は１２６、又は図２のＡＣＲシステム２２４又は２２６などのサーバシステムによって実行することができる。コンテンツマネージャ１２２又は２２２（図１及び図２）も、方法の実行に関与することができる。或いは、この方法は、様々なタイプのユーザ装置、ポータブル装置、テレビ、プロジェクタ又は他のメディア装置内の他の処理装置によって実行することもできる。
【００６８】
図５を参照すると、処理ロジックは、コンテンツ（又はメディア）装置においてコンテンツフィードからメディアコンテンツを受け取ることによって開始する（５０２）。次に、このロジックは、メディアコンテンツに対してフィンガープリンティングを実行して、一連のフレームと（対応するタイムスタンプなどの）対応する時間ベースのインデックスとを含む入力（又はクエリ）フィンガープリントを生成することができる（５０４）。次に、ログは、時間ベースのインデックスに従って、クエリフィンガープリントをオリジナルメディアコンテンツからの複数のフレームフィンガープリントと照合して、メディアコンテンツに対応するメディア番組を識別することができる（５０６）。
【００６９】
図６は、別の実施形態による、入力（又はクエリ）フィンガープリントの一連のフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識（ＡＣＲ）方法のフローチャート６００である。この方法は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（処理装置によって実行される命令など）、ファームウェア又はこれらの組み合わせを含むことができる処理ロジックによって少なくとも部分的に実行することができる。この方法は、クライアント装置２１８又は２２０などのクライアント装置の処理ロジックによって、図１のＡＣＲシステム１２４又は１２６、又は図２のＡＣＲシステム２２４又は２２６などのサーバシステムによって実行することができる。コンテンツマネージャ１２２又は２２２（図１及び図２）も、方法の実行に関与することができる。或いは、この方法は、様々なタイプのユーザ装置、ポータブル装置、テレビ、プロジェクタ又は他のメディア装置内の他の処理装置によって実行することもできる。
【００７０】
図６を参照すると、処理ロジックは、メディア番組の複数のフレームフィンガープリントをデータベースに記憶することによって開始する（６１０）。次に、処理ロジックは、ユーザが消費しているコンテンツのフィンガープリントをメディア装置から受け取る（６２０）。このフィンガープリントは、順序化された一連のフレーム及び対応するタイムスタンプを含む。次に、ロジックは、データベースにクエリを行って、フィンガープリントの順序化された一連のフレームのタイムスタンプを複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる一連の点を含む時間ベースの結果を生成する（６３０）。次に、ロジックは、一連の点に対して、ＲＡＮＳＡＣを実行していずれかの傾きの線を検出することなどのパターン認識アルゴリズムを実行して、消費されているコンテンツに対応するメディア番組を決定する（６４０）。次に、ロジックは、広告サーバにメディア番組の識別を送信して、ユーザがメディア装置を視聴している間にユーザに追加コンテンツをターゲッティングできるようにする（６５０）。ロジックは、メディア番組の識別（及び関連する情報）をオーバレイ決定エンジンに送信して、メディア番組内で及び／又はコマーシャル中にオーバレイとしてコンテンツに広告（又は他のコンテンツ）を配信する際に使用されるようにすることもできる。
【００７１】
例えば、ロジックは、メディア番組の識別を広告サーバに送信し、メディア番組の主題に文脈的に関連する広告を広告サーバから受け取ることができる。その後、ロジックは、メディア番組のコマーシャル中にオーバレイ又は広告（又は情報セグメント）としてメディア装置に広告（又は他のコンテンツ）を配信して表示されるようにすることができる。
【００７２】
図７は、本明細書で説明した方法のいずれか１つ又は２つ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステム７００の形態の機械の図式表現である。別の実施形態では、この機械を、ＬＡＮ、イントラネット、エクストラネット又はインターネット内で他の機械に接続（例えば、ネットワーク接続）することができる。この機械は、クライアント−サーバネットワーク環境内のサーバ又はクライアント装置として、又はピアツーピア（又は分散）ネットワーク環境内のピアマシンとして動作することができる。この機械は、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、携帯情報端末（ＰＤＡ）、携帯電話機、スマートフォン、ウェブ機器、サーバ、ネットワークルータ、スイッチ又はブリッジ、又は機械が取るべき行動を指定する（順次の又はその他の）命令セットを実行できるあらゆる機械とすることができる。さらに、図には１つの機械しか示していないが、「機械」という用語は、本明細書で説明した方法のうちのいずれか１つ又は２つ以上を実行するための命令セット（又は複数のセット）を個別に又は協働して実行する一群の機械を含むと解釈することもできる。
【００７３】
コンピュータシステム７００は、図１のＡＣＲシステム１２４又は１２６、図２及び図３のＡＣＲシステム２２４又は２２６、又は図１のコンテンツマネージャ１２２又は図２のコンテンツマネージャ２２２に対応することができる。コンピュータシステム７００は、図１のクライアント装置１１８又は１２０に対応することもできる。コンピュータシステム７００は、クラウドベースのコンピュータシステムの少なくとも一部に対応することもできる。
【００７４】
コンピュータシステム７００は、処理装置７０２、メインメモリ７０４（例えば、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、（同期ＤＲＡＭ（ＳＤＲＡＭ）又はＤＲＡＭ（ＲＤＲＡＭ）などの）ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックメモリ５０６（例えば、フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）など）、及びデータ記憶装置７１８を含み、これらはバス７３０を介して互いに通信する。
【００７５】
処理装置７０２は、マイクロプロセッサ又は中央処理装置などの１又は２以上の汎用処理装置を表す。具体的には、処理装置は、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、又は他の命令セットを実行するプロセッサ、或いは命令セットの組み合わせを実行するプロセッサとすることができる。処理装置７０２はまた、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）又はネットワークプロセッサなどの１又は２以上の特定用途向け処理装置とすることもできる。１つの実施形態では、処理装置７０２が、１又は２以上の処理コアを含むことができる。処理装置７０２は、本明細書で説明した動作を実行するためのミラーリングロジックの命令７２６を実行するように構成される。
【００７６】
コンピュータシステム７００は、ネットワーク７２０に通信可能に結合されたネットワークインターフェイス装置７０８をさらに含むことができる。コンピュータシステム７００は、ビデオディスプレイユニット７１０（例えば、液晶ディスプレイ（ＬＣＤ）又はブラウン管（ＣＲＴ））、英数字入力装置７１２（例えば、キーボード）、カーソル制御装置７１４（例えば、マウス）、信号生成装置７１６（例えば、スピーカ）、又はその他の周辺装置を含むこともできる。さらに、コンピュータシステム７００は、グラフィクス処理ユニット７２２、ビデオ処理ユニット７２８及びオーディオ処理ユニット７３２を含むこともできる。別の実施形態では、コンピュータシステム７００が、処理装置７０２と協働するように設計された、処理装置７０２と外部装置との間の通信を制御する一群の集積回路又はチップを示すチップセット（図示せず）を含むことができる。例えば、チップセットは、処理装置７０２をメインメモリ７０４及びグラフィックコントローラなどの超高速装置にリンクするとともに、処理装置７０２をＵＳＢ、ＰＣＩ又はＩＳＡバスなどの、周辺機器の低速周辺バスにもリンクするマザーボード上の一連のチップとすることができる。
【００７７】
データ記憶装置７１８は、本明細書で説明した機能の方法論のうちのいずれか１つ又は２つ以上を具体化する命令７２６を記憶するコンピュータ可読記憶媒体７２５を含むことができる。命令７２６は、コンピュータシステム７００による実行中に、やはりコンピュータ可読記憶媒体を構成するメインメモリ７０４内及び／又は処理装置７０２内に完全に又は少なくとも部分的に存在することもできる。
【００７８】
コンピュータ可読記憶媒体７２５は、上記のアプリケーションを呼び出す方法を含むロジック及び／又はソフトウェアライブラリを利用して命令７２６を記憶するために使用することもできる。例示的な実装では、コンピュータ可読記憶媒体７２５を単一の媒体として示しているが、「コンピュータ可読記憶媒体」という用語は、１又は２以上の命令セットを記憶する単一の媒体又は複数の媒体（例えば、集中データベース又は分散データベース、及び／又は関連するキャッシュ及びサーバ）を含むと解釈されたい。また、「コンピュータ可読記憶媒体」という用語は、機械が実行する命令セット７２６の記憶、符号化又は搬送を行い、本開示の方法論のうちのいずれか１つ又は２つ以上を機械に実行させることができるあらゆる媒体を含むとも理解されたい。従って、「コンピュータ可読記憶媒体」という用語は、限定するわけではないが、固体メモリ、光学媒体及び磁気媒体を含むと解釈されたい。以下の例は、さらなる実施形態に関する。
【００７９】
限定数の実施形態に関して本発明を説明したが、当業者であれば、数多くの修正及びこれらの実施形態からの変形例を理解するであろう。添付の特許請求の範囲は、このような全ての修正及び変形例を本発明の真の趣旨及び範囲内に含まれるものとして対象とすることが意図されている。
【００８０】
本明細書の説明では、本発明を完全に理解できるように、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステム要素、特定の測定／高さ、特定のプロセッサパイプラインステージ及び動作の例などの数多くの特定の詳細を示した。しかしながら、当業者には、本発明を実施するためにこれらの特定の詳細を使用する必要はないことが明らかであろう。その他の場合には、本発明を不必要に曖昧にしないように、特定の及び代替のプロセッサアーキテクチャ、説明したアルゴリズムのための特定の論理回路／コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術及び材料、特定のコンパイラ実装、コード内の特定のアルゴリズム表現、特定の出力低下及びゲーティング技術／ロジック、及びコンピュータシステムの他の特定の動作の詳細などの周知の構成要素又は方法については詳細に説明していない。
【００８１】
実施形態は、コンピュータプラットフォーム又はマイクロプロセッサなどの特定の集積回路内で再分割されるセキュアメモリを参照して説明したものである。実施形態は、他のタイプの集積回路及びプログラマブルロジック装置に適用することもできる。例えば、開示した実施形態は、デスクトップコンピュータシステム又はＩｎｔｅｌ（登録商標）Ｕｌｔｒａｂｏｏｋｓ（商標）コンピュータなどのポータブルコンピュータに限定されるものではない。また、ハンドヘルド装置、タブレット、他のスリムノートブック、システムオンチップ（ＳＯＣ）デバイス及び埋め込みアプリケーションなどの他の装置で使用することもできる。ハンドヘルド装置のいくつかの例としては、携帯電話機、インターネットプロトコル装置、スマートフォン、デジタルカメラ、携帯情報端末（ＰＤＡ）及びハンドヘルドＰＣが挙げられる。通常、埋め込みアプリケーションは、マイクロコントローラ、デジタルシグナルプロセッサ（ＤＳＰ）、システムオンチップ、ネットワークコンピュータ（ＮｅｔＰＣ）、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク（ＷＡＮ）スイッチ、又は以下で教示する機能及び動作を実行できる他のいずれかのシステムを含む。システムは、あらゆる種類のコンピュータ又は埋め込みシステムであってよいと説明した。開示した実施形態は、特にウェアラブル装置（例えば、腕時計）、電子インプラント、センサ型及び制御型インフラ装置、コントローラ、監視制御及びデータ収集（ＳＣＡＤＡ）システムなどのローエンド装置のために使用することもできる。さらに、本明細書で説明した装置、方法及びシステムは、物理的なコンピュータ装置に限定されず、エネルギ節約及び効率のためのソフトウェア最適化に関連することもできる。以下の説明で容易に明らかになるように、本明細書で説明した方法、装置及びシステムの実施形態は（ハードウェア、ファームウェア、ソフトウェア又はこれらの組み合わせのいずれを参照したかに関わらず）、性能考察とのバランスが取れた「環境保全技術」の未来にとって不可欠である。
【００８２】
本明細書では、プロセッサを参照しながら実施形態を説明したが、他の実施形態は、他のタイプの集積回路及びロジック装置に適用可能である。同様の技術及び本発明の実施形態の教示は、高パイプラインスループット及び改善された性能の恩恵を受けることができる他のタイプの回路又は半導体デバイスに適用することもできる。本発明の実施形態の教示は、データ操作を行うあらゆるプロセッサ又は機械に適用することができる。しかしながら、本発明は、５１２ビット、２５６ビット、１２８ビット、６４ビット、３２ビット又は１６ビットのデータ動作を実行するプロセッサ又は機械に限定されるものではなく、データの操作又は管理を行うあらゆるプロセッサ及び機械に適用することができる。また、本明細書の説明では例を示し、添付図面にも例示を目的として様々な例を示した。しかしながら、これらの例は、本発明の実施形態例を示すことのみを意図されたものとして限定的な意味で解釈するのではなく、むしろ本発明の実施形態の全ての考えられる実装の包括的リストを示すものとして解釈すべきである。
【００８３】
以下の例では、実行ユニット及び論理回路の文脈で命令の取り扱い及び分散について説明するが、本発明の他の実施形態は、機械によって実行された時に本発明の少なくとも１つの実施形態に一致する機能を機械に実行させる機械可読有形媒体に記憶されたデータ又は命令によって達成することもできる。１つの実施形態では、本発明の実施形態に関連する機能が、機械実行可能命令の形で具体化される。これらの命令を用いて、命令をプログラムされた汎用又は専用プロセッサに本発明のステップを実行させることができる。本発明の実施形態は、本発明の実施形態による１又は２以上の動作を実行するようにコンピュータ（又は他の電子装置）をプログラムするために使用できる命令を記憶する機械又はコンピュータ可読媒体を含むことができるコンピュータプログラム製品又はソフトウェアとして提供することもできる。或いは、本発明の実施形態の動作は、動作を実行するための固定機能ロジックを含む特定のハードウェア要素、又はプログラムされたコンピュータ要素及び固定機能ハードウェア要素のいずれかの組み合わせによって実行することもできる。
【００８４】
本発明の実施形態を実行するロジックをプログラムするために使用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ又はその他のストレージなどの、システムのメモリに記憶することができる。さらに、これらの命令は、ネットワークを介して又は他のコンピュータ可読媒体を用いて分散させることもできる。従って、機械可読媒体は、以下に限定されるわけではないが、フロッピーディスケット、光学ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ−ＲＯＭ）、及び磁気光学ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能リードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能リードオンリメモリ（ＥＥＰＲＯＭ）、磁気又は光学カード、フラッシュメモリ、又は電気信号、光信号、音響信号又は他の形の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）を通じインターネットを介した情報の送信に使用される有形機械可読ストレージを含む機械（コンピュータなど）による読み取りが可能な形で情報を記憶又は送信するいずれかの機構を含むことができる。従って、コンピュータ可読媒体は、機械（例えば、コンピュータ）による読み取りが可能な形で電子命令又は情報を記憶又は送信するのに適したあらゆるタイプの有形機械可読媒体を含む。
【００８５】
設計は、作成からシミュレーション、製造までの様々な段階を経ることができる。設計を表すデータは、多くの方法で設計を表すことができる。まず、シミュレーションにおいて有用なように、ハードウェアは、ハードウェア記述言語又は別の機能記述言語を用いて表すことができる。また、設計過程のいくつかの段階では、ロジック及び／又はトランジスタゲートを含む回路レベルモデルを生産することができる。さらに、ハードウェアモデルでは、ほとんどの設計が何らかの段階で様々な装置の物理的配置を表すデータレベルに達する。従来の半導体製造技術を使用する場合、ハードウェアモデルを表すデータは、集積回路を生産するために使用されるマスクの異なるマスク層における様々な特徴の有無を指定するデータとすることができる。あらゆる設計表現では、あらゆる形態の機械可読媒体にデータを記憶することができる。メモリ、又はディスクなどの磁気又は光学ストレージは、変調又はその他の方法で生成された光波又は電波を介して送信される情報を記憶してこのような情報を送信する機械可読媒体とすることができる。コード又は設計を指示又は搬送する電気搬送波が送信される際には、電気信号のコピー、バッファリング又は再送信が行われる範囲で新たなコピーが作成される。従って、通信プロバイダ又はネットワークプロバイダは、本発明の実施形態の技術を具体化する搬送波内に符号化された情報などの品目を有形機械可読媒体に少なくとも一時的に記憶することができる。
【００８６】
本明細書で使用するモジュールは、ハードウェア、ソフトウェア及び／又はファームウェアのあらゆる組み合わせを意味する。一例として、モジュールは、マイクロコントローラによって実行されるように適合されたコードを記憶する非一時的媒体に関連するマイクロコントローラなどのハードウェアを含む。従って、１つの実施形態におけるモジュールについての言及は、非一時的媒体に保持すべきコードを認識及び／又は実行するように特別に構成されたハードウェアを意味する。さらに、別の実施形態におけるモジュールの使用は、マイクロコントローラによって所定の動作を実行するように実行されるよう特別に適合されたコードを含む非一時的媒体を意味する。推測できるように、さらに別の実施形態では、（この例における）モジュールという用語が、マイクロコントローラと非一時的媒体との組み合わせを意味することができる。多くの場合、別個のものとして示すモジュール境界は、一般に変化して潜在的に重なり合う。例えば、第１のモジュールと第２のモジュールは、何らかの独立したハードウェア、ソフトウェア又はファームウェアを潜在的に保ちながら、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせを共有することができる。１つの実施形態におけるロジックという用語の使用は、トランジスタ、レジスタなどのハードウェア、又はプログラマブルロジック装置などの他のハードウェアを含む。
【００８７】
１つの実施形態における、「〜するように構成される」という表現の使用は、装置、ハードウェア、ロジック又は要素を、指定又は決定されたタスクを実行するように配置、編集、製造、募集、インポート及び／又は設計することを意味する。この例では、動作していない装置又はその要素も、上記の指定されたタスクを実行するように設計、結合及び／又は相互接続されている場合、やはりその指定されたタスクを実行するように「構成される」。完全に例示的な例として、ロジックゲートは、動作中に０又は１を提供することができる。しかしながら、クロックにイネーブル信号を提供する「ように構成された」ロジックゲートは、１又は０を提供できる全ての潜在的なロジックゲートを含むわけではない。むしろ、このロジックゲートは、動作中に１又は０の出力がクロックを有効にする何らかの形で結合されたロジックゲートである。今一度言うが、「〜するように構成される」という用語の使用は動作を必要とするものではなく、むしろ装置、ハードウェア及び／又は要素が動作時に特定のタスクを実行するように設計される、これらの潜伏状態に焦点を当てたものである。
【００８８】
さらに、１つの実施形態における「〜するための（ｔｏ）」、「〜することができる（ｃａｐａｂｌｅ  ｏｆ／ｔｏ）」、及び／又は「〜する（ｏｐｅｒａｂｌｅ  ｔｏ）」という表現の使用は、特別な形で使用できるように設計された何らかの装置、ロジック、ハードウェア及び／又は要素を意味する。なお、上記と同様に、「〜するための（ｔｏ）」、「〜することができる（ｃａｐａｂｌｅ  ｏｆ／ｔｏ）」、及び／又は「〜する（ｏｐｅｒａｂｌｅ  ｔｏ）」という表現の使用は、装置、ロジック、ハードウェア及び／又は要素の、動作せずに指定された形で使用できるように設計される潜伏状態を意味する。
【００８９】
本明細書で使用する値は、数字、状態、論理状態又は２進論理状態のうちのいずれかの既知の表現を含む。多くの場合、論理レベル又は論理値（ｌｏｇｉｃ  ｖａｌｕｅｓ又はｌｏｇｉｃａｌ  ｖａｌｕｅｓ）の使用は、２進論理状態を単純に表す１及び０として示される。例えば、１は高論理レベルを示し、０は低論理レベルを示す。１つの実施形態におけるトランジスタ又はフラッシュセルなどの記憶素子は、単一の論理値又は複数の論理値を保持することができる。しかしながら、コンピュータシステムでは他の値の表現も使用されてきた。例えば、１０進数の１０は、１０１０という２進値及び１６進文字Ａとして表すこともできる。従って、値は、コンピュータシステム内に保持できる情報のあらゆる表現を含む。
【００９０】
さらに、値又は値の一部によって状態を表すこともできる。一例として、論理１などの第１の値がデフォルト又は初期状態を表し、論理０などの第２の値が非デフォルト状態を表すことができる。また、１つの実施形態では、リセット及びセットという用語が、デフォルト値又はデフォルト状態、及び更新値又は更新状態をそれぞれ示す。例えば、デフォルト値は、潜在的に高論理値、すなわちリセットを含み、更新値は潜在的に低論理値、すなわちセットを含む。なお、あらゆる値の組み合わせを利用してあらゆる数の状態を表すことができる。
【００９１】
上述した方法、ハードウェア、ソフトウェア、ファームウェア又はコードセットの実施形態は、機械アクセス可能媒体、機械可読媒体、コンピュータアクセス可能媒体又はコンピュータ可読媒体に記憶された、処理要素によって実行可能な命令又はコードを通じて実装することができる。非一時的機械アクセス可能／可読媒体は、コンピュータ又は電子システムなどの機械による読み取りが可能な形の情報を提供（すなわち、記憶及び／又は送信）するいずれかの機構を含む。例えば、非一時的機械アクセス可能媒体は、スタティックＲＡＭ（ＳＲＡＭ）又はダイナミックＲＡＭ（ＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、ＲＯＭ、磁気又は光学記憶媒体、フラッシュメモリデバイス、電気記憶装置、光学記憶装置、音響記憶装置、非一時的媒体から情報を受け取ることができる、非一時的媒体とは区別すべき一時的（伝播）信号（例えば、搬送波、赤外線信号、デジタル信号）などから受け取った情報を保持する他の形態の記憶装置を含む。
【００９２】
本発明の実施形態を実行するロジックをプログラムするために使用される命令は、ＤＲＡＭ、キャッシュ、フラッシュメモリ又はその他のストレージなどの、システムのメモリに記憶することができる。さらに、これらの命令は、ネットワークを介して又は他のコンピュータ可読媒体を用いて分散させることもできる。従って、機械可読媒体は、以下に限定されるわけではないが、フロッピーディスケット、光学ディスク、コンパクトディスク、リードオンリメモリ（ＣＤ−ＲＯＭ）、及び磁気光学ディスク、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能プログラム可能リードオンリメモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能リードオンリメモリ（ＥＥＰＲＯＭ）、磁気又は光学カード、フラッシュメモリ、又は電気信号、光信号、音響信号又は他の形の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）を通じインターネットを介した情報の送信に使用される有形機械可読ストレージを含む機械（コンピュータなど）による読み取りが可能な形で情報を記憶又は送信するいずれかの機構を含むことができる。従って、コンピュータ可読媒体は、機械（例えば、コンピュータ）による読み取りが可能な形で電子命令又は情報を記憶又は送信するのに適したあらゆるタイプの有形機械可読媒体を含む。
【００９３】
本明細書を通じて、「１つの実施形態」又は「ある実施形態」に対する言及は、これらの実施形態に関連して説明した特定の特徴、構造又は特性が本発明の少なくとも１つの実施形態に含まれることを意味する。従って、本明細書を通じて様々な箇所で見られる「１つの実施形態では」又は「ある実施形態では」という表現は、必ずしも全てが同じ実施形態について言及しているわけではない。さらに、これらの特定の特徴、構造又は特性を１又は２以上の実施形態においてあらゆる好適な形で組み合わせることもできる。
【００９４】
上述した明細書では、特定の例示的な実施形態を参照しながら詳細な説明を行った。しかしながら、添付の特許請求の範囲に示す本発明の幅広い趣旨及び範囲から逸脱することなく、実施形態に様々な修正及び変更を行えることが明らかであろう。従って、明細書及び図面は、限定的な意味ではなく例示的な意味で捉えるべきである。さらに、上述した実施形態及びその他の例示的な言語の使用は、必ずしも同じ実施形態又は同じ例を示すものではなく、異なる実施形態及び別の実施形態を示すことも、潜在的に同じ実施形態を示すこともできる。
【００９５】
詳細な説明の一部は、コンピュータメモリ内のデータビットにおける演算のアルゴリズム及び記号表現の観点から示したものである。これらのアルゴリズムによる記述及び表現は、データ処理における当業者が自らの研究内容を他の当業者に最も効果的に伝えるために使用する方法である。ここで言うアルゴリズムとは、一般に望ましい結果をもたらす首尾一貫した一連の動作であると考えられる。これらの動作は、物理量の物理的操作を必要とするものである。これらの量は、必ずというわけではないが、通常は、記憶、転送、合成、比較及び他の形の操作が可能な電気又は磁気信号の形態を取る。主に共通使用という理由で、時にはこれらの信号を、ビット、値、要素、記号、文字、用語、番号などと呼ぶことが便利であることが分かっている。本明細書で説明したブロックは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとすることができる。
【００９６】
しかしながら、これらの及び同様の用語は、全て適当な物理量に関連付けられるべきものであり、またこれらの量に与えられた便利な表記に過ぎないことに留意されたい。上記の説明から明らかなように、特に別途述べていない限り、説明全体を通じて「定義する（ｄｅｆｉｎｉｎｇ）」、「受け取る（ｒｅｃｅｉｖｉｎｇ）」、「決定する（ｄｅｔｅｒｍｉｎｉｎｇ）」、「発行する（ｉｓｓｕｉｎｇ）」、「リンクする（ｌｉｎｋｉｎｇ）」、「関連付ける（ａｓｓｏｃｉａｔｉｎｇ）」、「取得する（ｏｂｔａｉｎｉｎｇ）」、「認証する（ａｕｔｈｅｎｔｉｃａｔｉｎｇ）」、「禁止する（ｐｒｏｈｉｂｉｔｉｎｇ）」、「実行する（ｅｘｅｃｕｔｉｎｇ）」、「要求する（ｒｅｑｕｅｓｔｉｎｇ）」又は「通信する（ｃｏｍｍｕｎｉｃａｔｉｎｇ）」などの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内の物理（例えば、電子）量として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又はその他のこのような情報記憶装置、送信又は表示装置内の物理量として同様に表される他のデータに変形させるコンピュータシステム又は同様の電子コンピュータ装置の動作及び処理を意味すると理解されたい。
【００９７】
本明細書で使用した「例」又は「例示的な」という単語は、例、事例又は例示としての役割を果たすことを意味する。本明細書において「例」又は「例示的なもの」として説明するあらゆる態様又は設計は、必ずしも他の態様又は設計よりも好ましいもの又は有利なものとして解釈すべきではない。むしろ、「例」又は「例示的な」という単語の使用は、本概念を具体的に示すことを意図するものである。本出願で使用する「又は（ｏｒ）」という用語は、排他的「ｏｒ」ではなく包含的「ｏｒ」を意味するように意図される。すなわち、別途明示していない限り、又は文脈から明らかでない限り、「ＸはＡ又はＢを含む」という表現は、自然な包含的置換のいずれかを意味するように意図される。すなわち、ＸがＡを含む場合、ＸがＢを含む場合、或いはＸがＡとＢの両方を含む場合、「ＸはＡ又はＢを含む」は、これらの事例のいずれの下でも満たされる。また、本明細書及び添付の特許請求の範囲で使用する「ａ」及び「ａｎ」という冠詞は、単数形を対象にしていることを別途明示していない限り、又は文脈から明らかでない限り、一般に「１又は２以上」を意味すると解釈すべきである。さらに、全体を通じて、「ある実施形態」又は「１つの実施形態」或いは「ある実装」又は「１つの実装」という用語は、同じ実施形態又は実装を意味するものとして説明していない限り、そのように意図するものではない。また、本明細書で使用する「第１の」、「第２の」、「第３の」、「第４の」などの用語は、異なる要素同士を区別するラベルとして意図されており、必ずしもこれらの数字指定に従う順序を意味するとは限らない場合もある。
【００９８】
（実施形態１）
サーバであって、
少なくとも１つの処理装置と、
メディア番組に関連する複数のフレームフィンガープリントを有するデータベースを記憶するとともに命令を記憶するコンピュータ可読記憶媒体と、
を備え、前記複数のフレームフィンガープリントのそれぞれは、対応するタイムスタンプを備え、
前記少なくとも１つの処理装置は、前記命令を実行して、
メディア装置から、一連のフレームを含む、消費されているコンテンツのクエリフィンガープリントを受け取るステップを実行し、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記データベースの検索を実行して、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む２次元データ構造における一連の時間ベースの結果を生成するステップと、
前記一連の時間ベースの結果に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行し、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とするサーバ。
（実施形態２）
前記少なくとも１つの処理装置は、前記消費されているメディア番組の決定に応答して、
前記メディア番組の識別を広告サーバに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告サーバから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
をさらに実行する、
実施形態１に記載のサーバ。
（実施形態３）
前記少なくとも１つの処理装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントの前記フレームのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
実施形態１に記載のサーバ。
（実施形態４）
前記２次元データ構造は、前記複数のフレームフィンガープリントからの一致するフレームフィンガープリントのタイムスタンプに対してマッピングされた順に採取された、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを含む、
実施形態１に記載のサーバ。
（実施形態５）
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
実施形態１に記載のサーバ。
（実施形態６）
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態１に記載のサーバ。
（実施形態７）
前記タイムスタンプは、前記クエリフィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含む、
実施形態１に記載のサーバ。
（実施形態８）
前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
実施形態７に記載のサーバ。
（実施形態９）
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
実施形態１に記載のサーバ。
（実施形態１０）
メモリ内のデータベースにおいて、メディア番組に対応する、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントにコンピュータ装置を用いてアクセスするステップと、
順序化された一連のフレームを含む、消費されているコンテンツのクエリフィンガープリントをメディア装置から受け取るステップと、
を含み、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記コンピュータ装置を用いて前記データベースにクエリを行って、前記クエリフィンガープリントの前記順序化された一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記コンピュータ装置を用いて前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
前記メディア番組の識別を広告サーバに送信することにより、前記メディア番組を消費している間に前記メディア装置に追加コンテンツをターゲッティングするステップと、
を含み、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とする方法。
（実施形態１１）
前記広告サーバから前記メディア番組の主題に文脈的に関連する追加コンテンツを受け取るステップと、
前記メディア番組へのオーバレイとして、又はコマーシャル中に視聴されるように、前記追加コンテンツを配信するステップと、
をさらに含む実施形態１０に記載の方法。
（実施形態１２）
前記コンピュータ装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントの前記フレームのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
実施形態１０に記載の方法。
（実施形態１３）
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成する、
実施形態１０に記載の方法。
（実施形態１４）
前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
実施形態１３に記載の方法。
（実施形態１５）
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態１３に記載の方法。
（実施形態１６）
前記タイムスタンプは、前記クエリフィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含み、前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
実施形態１０に記載の方法。
（実施形態１７）
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
実施形態１０に記載の方法。
（実施形態１８）
視聴されているコンテンツのフィンガープリントに関連するメディア番組を決定するためのデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも１つの処理装置によって、
メディア番組に対応する、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントを、コンピュータ装置を用いてメモリ内のデータベースに記憶するステップと、
消費されているコンテンツの、一連のフレームを含むクエリフィンガープリントをメディア装置から受け取るステップと、
を実行するように実行可能であり、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記データベースにクエリを行って、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行するように実行可能であり、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
（実施形態１９）
前記命令は、前記少なくとも１つの処理装置によって、
前記メディア番組の識別を広告ターゲッタに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告ターゲッタから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
を実行するようにさらに実行可能である、
実施形態１８に記載の非一時的コンピュータ可読記憶媒体。
（実施形態２０）
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成し、前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
実施形態１８に記載の非一時的コンピュータ可読記憶媒体。
【符号の説明】
【００９９】
２０２  コンテンツプロバイダ
２０４  ＡＣＲエンジン
２０６  ルックアップサーバ
３０２  コンテンツフレーム
３０５  フィンガープリンタ
３２５  フィンガープリントシーケンスマッチャー
３２７  フレームフィンガープリント
【図１】
2020025322.tif 000003
【図２】
2020025322.tif 000004
【図３】
2020025322.tif 000005
【図４】
2020025322.tif 000006
【図５】
2020025322.tif 000007
【図６】
2020025322.tif 000008
【図７】
2020025322.tif 000009
【手続補正書】
【提出日】令和1年10月30日(2019.10.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムであって、
少なくとも１つの処理装置と、
メディア番組に関連し、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントを記憶するコンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体に記憶され、動作を実行するように前記少なくとも１つの処理装置により実行される命令と、
を備え、
前記動作は、
（１）メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、（２）各々のフィンガープリントタイムスタンプを有する、前記複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む２次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とするシステム。
【請求項２】
前記動作は、前記提供されているメディアコンテンツの識別に応答して、
前記メディアコンテンツの識別を広告サーバに送信することと、
前記広告サーバから差し替え広告を受け取るステップと、
前記メディアクライアントを、前記差し替え広告を差し替えコンテンツとしてコマーシャル中に提供させるようにすることと、
をさらに含む、
請求項１に記載のシステム。
【請求項３】
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項１に記載のシステム。
【請求項４】
前記動作は、前記メディアクライアントによって実行される、
請求項１に記載のシステム。
【請求項５】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項１に記載のシステム。
【請求項６】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項１に記載のシステム。
【請求項７】
前記動作は、検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
請求項１に記載のシステム。
【請求項８】
（１）メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、（２）各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む２次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とする方法。
【請求項９】
前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
請求項８に記載の方法。
【請求項１０】
前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項８に記載の方法。
【請求項１１】
前記方法は、前記メディアクライアントによって実行される、
請求項８に記載の方法。
【請求項１２】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項８に記載の方法。
【請求項１３】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項８に記載の方法。
【請求項１４】
検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
請求項８に記載の方法。
【請求項１５】
動作を実行する少なくとも１つの処理装置によって実行可能なデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、
前記動作は、
（１）メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、（２）各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む２次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項１６】
前記動作は、前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１７】
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１８】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス（ＲＡＮＳＡＣ）を含む、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項１９】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。
【請求項２０】
前記動作は、検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
請求項１５に記載の非一時的コンピュータ可読記憶媒体。