(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-22
(45)【発行日】2022-08-30
(54)【発明の名称】自動コンテンツ認識フィンガープリントシーケンス照合
(51)【国際特許分類】
H04N 21/258 20110101AFI20220823BHJP
H04N 21/83 20110101ALI20220823BHJP
H04N 21/262 20110101ALI20220823BHJP
H04N 21/466 20110101ALI20220823BHJP
G06F 16/73 20190101ALI20220823BHJP
【FI】
H04N21/258
H04N21/83
H04N21/262
H04N21/466
G06F16/73
(21)【出願番号】P 2020218559
(22)【出願日】2020-12-28
(62)【分割の表示】P 2019197011の分割
【原出願日】2016-04-25
【審査請求日】2020-12-28
(32)【優先日】2015-04-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2015-07-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521212432
【氏名又は名称】ロク インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100098475
【氏名又は名称】倉澤 伊知郎
(74)【代理人】
【識別番号】100130937
【氏名又は名称】山本 泰史
(74)【代理人】
【識別番号】100144451
【氏名又は名称】鈴木 博子
(74)【代理人】
【識別番号】100162824
【氏名又は名称】石崎 亮
(72)【発明者】
【氏名】コシェヴォイ パヴェル エイ
【審査官】富樫 明
(56)【参考文献】
【文献】米国特許出願公開第2012/0078894(US,A1)
【文献】特開2014-064179(JP,A)
【文献】特表2014-519660(JP,A)
【文献】国際公開第2014/120965(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
G06F 16/73
(57)【特許請求の範囲】
【請求項1】
システムであって、
少なくとも1つの処理装置と、
メディア番組に関連し、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントを記憶するコンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体に記憶され、動作を実行するように前記少なくとも1つの処理装置により実行される命令と、
を備え、
前記動作は、
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、前記複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々の
フレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、前記線の傾きゼロの検出に基づき、再生が一時停止されたタイミングを検出することと、
を含む、
ことを特徴とするシステム。
【請求項2】
前記動作は、前記提供されているメディアコンテンツの識別に応答して、
前記メディアコンテンツの識別を広告サーバに送信することと、
前記広告サーバから差し替え広告を受け取るステップと、
前記メディアクライアントを、前記差し替え広告を差し替えコンテンツとしてコマーシャル中に提供させるようにすることと、
をさらに含む、
請求項1に記載のシステム。
【請求項3】
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項1に記載のシステム。
【請求項4】
前記動作は、前記メディアクライアントによって実行される、
請求項1に記載のシステム。
【請求項5】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
請求項1に記載のシステム。
【請求項6】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項1に記載のシステム。
【請求項7】
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々の
フレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、前記線の傾きゼロの検出に基づき、再生が一時停止されたタイミングを検出することと、
を含む、
ことを特徴とする方法。
【請求項8】
前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
請求項7に記載の方法。
【請求項9】
前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項7に記載の方法。
【請求項10】
前記方法は、前記メディアクライアントによって実行される、
請求項7に記載の方法。
【請求項11】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
請求項7に記載の方法。
【請求項12】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項7に記載の方法。
【請求項13】
動作を実行する少なくとも1つの処理装置によって実行可能なデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、
前記動作は、
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々の
フレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、前記線の傾きゼロの検出に基づき、再生が一時停止されたタイミングを検出することと、
を含む、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項14】
前記動作は、前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項15】
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項16】
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
請求項13に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動コンテンツ認識フィンガープリントシーケンス照合に関する。
【背景技術】
【0002】
スマートテレビ(TV)などのメディア消費装置(media consumption device)は、放送デジタルコンテンツにアクセスして(インターネットなどの)データネットワークからストリーミングメディアなどのデータを受け取ることができる。ストリーミングメディアとは、要求時に電話回線、ケーブル、インターネットなどを介してエンドユーザに映画又はニュースなどのメディアコンテンツを提供できるサービスのことである。例えば、ユーザは、自宅から離れる必要なく映画を見ることができる。また、ユーザは、学校又は教育機関に物理的に出席する必要なくビデオ講義などの様々なタイプの教育コンテンツにアクセスすることもできる。
【0003】
メディア消費装置の数が増え続けるにつれ、同様にビデオコンテンツの生成及び配信も増加すると考えられる。(スマートフォン、タブレット及びスマートテレビなどの)メディア消費装置を用いたストリーミングメディアへのアクセスが増えるとともに、(地方放送局、多チャンネルネットワーク及びその他のコンテンツ所有者/配信業者などの)コンテンツ又はネットワークプロバイダは、ストリーミングメディア(例えば、メディア番組)を消費している視聴者に文脈的に関連する題材を配信することができる。例えば、地方放送局は、ストリーミングメディアに文脈的に関連する広告及びインタラクティブコンテンツを含めることができる。
【発明の概要】
【課題を解決するための手段】
【0004】
本開示は、以下に示す詳細な説明及び本開示の様々な実施形態についての添付図面から完全に理解されるであろう。しかしながら、図面は、本開示を特定の実施形態に限定するものとして捉えるべきではなく、説明及び理解のためのものにすぎない。
【図面の簡単な説明】
【0005】
【
図1】1つの実施形態によるコンテンツ配信ネットワークのシステム図である。
【
図2】1つの実施形態による、クライアント装置にオーバレイコンテンツを提供するコンテンツマネージャを示す図である。
【
図3】
図2のコンテンツマネージャのメディアコンテンツのフィンガープリントを採取するために使用される自動コンテンツ認識(ACR)エンジンのシステム図である。
【
図4】入力(又はクエリ)フィンガープリントの順序化された一連のフレームのタイムスタンプの、一致するフレームフィンガープリントのタイプスタンプに対するマッピングをグラフで示す図である。
【
図5】1つの実施形態による、一連の入力(又はクエリ)フィンガープリントのフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識(ACR)方法のフローチャートである。
【
図6】別の実施形態による、一連の入力(又はクエリ)フィンガープリントのフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識(ACR)方法のフローチャートである。
【
図7】本明細書で説明する方法のうちのいずれか1つ又は2つ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステムの形態の機械の図式表現である。
【発明を実施するための形態】
【0006】
テレビ(TV)又はインターネット番組放送などのメディアコンテンツ放送又はストリーミングは、製品及びサービスの広告、視聴者への情報提供、又はこれらのいずれかの組み合わせのための魅力的なスポットになり得る。従って、放送局は、個々の視聴者がいつどのような番組を視聴しているかを把握することにより、これらの番組の主題を使用して、広告及びその他の有用な、任意に非営利的な情報を視聴者に正確にターゲッティングできるようにしたいと望んでいる。非営利的なものとしては、例えば、ニュースアラート、告知又は教育情報を挙げることができる。従って、ユーザが視聴している又は視聴しようとしている番組を決定し、このようなターゲッティング行動において使用される広告サーバに番組情報の識別を送信することが有利であると思われる。
【0007】
メディア番組に関連するフレームフィンガープリント、例えば対応するタイムスタンプを含む発信元メディアコンテンツのフレームをデータベースに記憶したコンピュータ可読ストレージを有する処理装置及び方法を開示する。処理装置は、順序化された一連のフレームと対応するタイムスタンプとを含む、ユーザによって消費されているコンテンツのフィンガープリントをメディア装置から受け取る。処理装置は、データベースにクエリを行って、フィンガープリントの順序化された一連のフレームのタイムスタンプを最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる一連の点を含む時間ベースの結果を生成する。処理装置は、これらの一連の点に対してパターン認識アルゴリズムを実行して、消費されているコンテンツに対応するメディア番組を決定し、このメディア番組の識別を広告サーバに送信することにより、ユーザがメディア番組を視聴している間に広告サーバがユーザに追加コンテンツをターゲッティングできるようにする。パターン認識アルゴリズムは、線の特定の傾きを検出することができ、又はあらゆる線のあらゆる傾きを検出できるランダムサンプルコンセンサス(RANSAC)を含むことができる。線を形成する一連の一致するフレームフィンガープリントは、この傾きを前提として、ユーザが視聴しているメディア番組に対応する。
【0008】
これに加えて、又はこれとは別に、自動認識(ACR)サーバが、少なくとも1つの処理装置と、メディア番組に関連する複数のフレームフィンガープリントを有するデータベースとを含むことができる。それぞれのフレームフィンガープリントは、メディア番組から選択されたフレーム、及びそのフレームの対応するタイムスタンプとすることができる。少なくとも1つの処理装置は、ユーザが消費しているコンテンツの、一連のフレームと対応するタイムスタンプとを含むフィンガープリントをメディア装置から受け取ることができる。少なくとも1つの処理装置は、データベースの検索を実行して、フィンガープリントの一連のフレーム内のフレームと対応するタイムスタンプとに最も一致する複数のフレームフィンガープリントの構造を含む2次元データ構造の形の一連の時間ベースの結果を生成することができる。1つの例では、フィンガープリントの一連のフレームのタイムスタンプを最も一致するフレームフィンガープリントのタイムスタンプにマッピングすると、タイムスタンプの2次元データ構造の形の点が形成される。少なくとも1つの処理装置は、一連の時間ベースの結果に対してパターン認識アルゴリズムをさらに実行して、例えばRANSACなどを使用することにより、消費されているコンテンツに対応するメディア番組を決定することができる。
【0009】
少なくとも1つの処理装置は、メディア番組の識別を広告サーバに送信し、このメディア番組の主題に文脈的に関連する広告を広告サーバから受け取ることができる。その後、少なくとも1つの処理装置は、この広告(又はその他のコンテンツ)をメディア装置に配信して、メディア番組内のコマーシャル中にオーバレイ(overlay)又は広告(又は情報セグメント)として表示されるようにすることができる。
【0010】
個人又は組織は、視聴者にメディアコンテンツを提供するために、インターネットを介して視聴者にメディアコンテンツを配信することなどによって視聴者にメディアコンテンツをストリーミングすることができる。個人又は組織が使用するメディアコンテンツは、1又は2以上のライブ放送メディアフィードから取得される(ビデオデータなどの)メディアコンテンツとすることができる。例えば、メディアコンテンツプロバイダは、インターネットを介してユーザに線形メディアチャンネル(例えば、ライブメディア供給源から視聴者に提供されるメディア)を提供することができる。
【0011】
「コンテンツ」という単語は、メディア又はマルチメディアを示すために使用することができる。「コンテンツ」という単語は、メディア自体よりもむしろメディアの主題を意味する特定の用語とすることもできる。同様に、「メディア」という単語、及び「メディア」を含むいくつかの複合語(例えば、マルチメディア、ハイパーメディア)は、エンドユーザ/視聴者に情報を配信するチャンネルよりもむしろコンテンツを意味する。メディア又はメディアコンテンツは、ビデオ、映画、テレビ番組、コマーシャル及びストリーミングビデオなど、テキスト、グラフィクス、アニメーション、静止画像及び双方向コンテンツ形態などのグラフィック表現を含むことができる。一般にメディアタイプと呼ばれるコンテンツタイプの例には、「映画」と呼ばれる「動画」がある。
【0012】
1つの実施形態では、コンテンツオーバレイシステム又はコンテンツオーバレイ装置が、メディアコンテンツと、広告などの特定のタイムリーな、及び/又は標的化されたオーバレイコンテンツとの組み合わせを可能にすることができる。コンテンツオーバレイシステム又はコンテンツオーバレイ装置は、オーバレイコンテンツプロバイダが、視聴者をコンテンツオーバレイ内の行動喚起に応答するように誘うこと(例えば、コンテンツオーバレイに関与するための誘導)によって視聴者との関わり合いを可能にすることができる。視聴者を行動喚起に誘う1つの利点は、視聴者が追加情報の要求、質問、入力の提供、広告されたサービス又は製品のプロバイダとの接触などを行うための戻り経路又は追跡経路を提供できる点である。視聴者を行動喚起に誘う別の利点は、広告主が追加情報の提供、視聴者とのさらなる交わり、視聴者に関する追加情報の収集、広告された製品又はサービスに関する視聴者の質問への回答などを行うための戻り経路又は追跡経路を提供できる点である。別の例では、視聴者がメディア番組のオーバレイコンテンツの視聴及び/又はオーバレイコンテンツとの相互作用を行うと、コンテンツオーバレイシステム又はコンテンツオーバレイ装置が、広告主によるプラットフォームを越えた再ターゲットキャンペーンの使用を可能にする。
【0013】
図1は、1つの例によるコンテンツ配信ネットワーク100のシステム図である。コンテンツ配信ネットワーク100では、コンテンツプロバイダ102がローカルプロバイダ106にコンテンツフィードをブロードキャストすることができる。ローカルプロバイダ106は、ヘッドエンド104と、自動コンテンツ認識(ACR)フィンガープリンタサーバ105とを含むことができる。コンテンツプロバイダ102からのコンテンツフィードは、ローカルプロバイダ106のヘッドエンド104において受け取ることができる。ヘッドエンド104は、受け取ったコンテンツフィードに基づいてローカルコンテンツフィードを生成することができる。例えば、ヘッドエンド104は、国内又は全世界の放送局からの番組及び広告を含むネットワークチャンネルを受け取る現地法人放送局とすることができる。
【0014】
ヘッドエンド104は、ACRフィンガープリンタサーバ105、無線(OTA)放送局108、及び/又は多チャンネル映像番組配信事業者(MVPD)110にローカルコンテンツフィードを通信することができる。OTA放送局108及び/又はMVPD110は、ローカルコンテンツフィードをメディア装置115に通信することができる。メディア装置115のいくつかの例としては、クライアント装置118及び120、クライアント装置118及び120にプロバイダコンテンツをストリーミングするセットトップボックス114、並びにユーザがローカルコンテンツフィードを無線などでストリーミングできるようにするその他の装置116が挙げられる。
【0015】
1つの例では、OTA放送局108が、従来のローカルなテレビチャンネル又はラジオチャンネルを用いてローカルコンテンツフィードを放送することができる。この例では、クライアント装置118及び120が(TVアンテナ又はラジオアンテナなどの)アンテナを含んでいて、ローカルコンテンツフィードを受け取ることができる。別の例では、(ケーブル放送局又は衛星放送局などの)MVPD110が、ローカルコンテンツフィードをセットトップボックス114に通信することができる。この例では、セットトップボックス114が、コンテンツフィードをクライアント装置118及び120用にフォーマットし、フォーマットされたコンテンツフィードをクライアント装置118及び120に通信することができる。クライアント装置118及び120は、テレビ画面又はタッチ画面などの、視聴者にローカルコンテンツを表示するディスプレイ装置を含むことができる。コンテンツ配信ネットワーク100の様々な構成要素は、クライアント装置118及び120に一体化又は結合することができる。例えば、スマートテレビは、単一のユニット内にアンテナ、セットトップボックス114及びディスプレイ装置を含むことができる。
【0016】
ACRフィンガープリントサーバ105は、ローカルコンテンツフィードを分析してフィンガープリント情報(例えば、フィンガープリント)を決定することができる。ACRフィンガープリントサーバ105は、これらのフィンガープリントをACRシステム124及び/又は126に通信することができる。ACRシステム124及び126は、スマートTVメーカーなどの装置メーカーによって選択された異なるACRシステムとすることができる。いくつかの実施形態では、後述するように、ACRシステム124が、ACRフィンガープリントシーケンスマッチャー125を含む。ACRフィンガープリントシーケンスマッチャー125は、フレームフィンガープリントを、対応するビデオフレームに由来するオリジナルビデオコンテンツと照合することができる。ACRシステム126は、ACRフィンガープリントシーケンスマッチャー125を有していても、又は有していなくてもよい。ACRフィンガープリントシーケンスマッチャー125に関する詳細については
図3に関して後述する。
【0017】
ACRフィンガープリントサーバ105は、ローカルコンテンツフィードを分析し、ローカルコンテンツフィードから、順序化された一連のフレームを含むことができるフィンガープリントを取り込むことができる。ACRフィンガープリントサーバ105は、これらのフィンガープリントをACRシステム124及び/又は126に通信することができる。ACRシステム124及び126は、スマートTVメーカーなどの装置メーカーによって選択された異なるACRシステムとすることができる。1つの例では、ACRフィンガープリントサーバ105が、例えば異なるタイプのフィンガープリンティング技術を含む異なるACRシステム124及び126向けにフィンガープリントをフォーマットすることができる。ACRシステム124及び126は、クライアント装置118及び120をそれぞれ含む異なるメディア装置115との通信接続を確立することができる。クライアント装置118及び120は、ACRシステム124及び126にそれぞれフィンガープリント情報を通信することができる。ACRシステム124又は126は、クライアント装置118及び/又は120からACRフィンガープリント情報を受け取ると、受け取ったフィンガープリントとACRフィンガープリントサーバ105によって生成されたフィンガープリントとを照合し、一致が生じてコンテンツが識別されると、コンテンツマネージャ122にACRイベントを通信することができる。
【0018】
別の例では、ACRシステム124及び/又は126が、クライアント装置118及び/又は120からACRフィンガープリント情報を受け取り、受け取ったフィンガープリントとACRフィンガープリントサーバ105によって生成されたフィンガープリントとを照合することができる。一致が生じてコンテンツが識別されると、ACRシステム124及び/又は126がクライアント装置118及び/又は120にACRイベントを通知し、その後にクライアント装置118及び/又は120がこれらのACRイベントをコンテンツマネージャ122に通信することができる。これとは別に、又はこれに加えて、ACRシステム124及び/又は126は、ACRイベントを直接コンテンツマネージャ122に通信することもできる。ACRフィンガープリント情報は、ローカルコンテンツフィード内における視聴者に対する広告の表示、ローカルコンテンツフィード内における視聴者に対する選択又はフラグ付けされたコンテンツの表示、及びクライアント装置118又は120のコンテンツチャンネルの変更などを含むことができる。
【0019】
異なるACRシステム124及び126からのイベント情報はフォーマットが異なる場合があり、コンテンツマネージャ122は、これらのデータをデータベース123に記憶する前に共通フォーマットに標準化することができる。例えば、コンテンツマネージャ122は、ACRシステム124及び126から、コンテンツは同じであるがフォーマットが異なるデータなどの、類似するものの同一ではないデータを含む異種データセットを受け取ることができる。コンテンツマネージャ122は、これらの異種データセットを処理及び再フォーマットして、単一のデータモデル又はデータフォーマット(例えば、再フォーマットされたデータセット)を作成し、この再フォーマットされたデータセットをコンテンツマネージャ122のデータベース123に追加することができる。
【0020】
1つの実施形態では、コンテンツマネージャ122が、ACRシステム124及び126からの異種データセットを標準化するために、データセット内のデータを清浄化又はフィルタ処理することができる。例えば、いくつかのデータセットが、コンテンツマネージャ122に無関係な可能性のあるフィールド又はデータを含んでいる場合もある。この例では、コンテンツマネージャ122が、無関係なデータを清浄化又はフィルタ処理することができる(例えば、データを除去又は無視することができる)。別の例では、いくつかのデータセットが、不完全な又は誤ったデータ又はデータセットの例を含んでいる場合があり、コンテンツマネージャ122は、これらの不完全な又は誤ったデータ又はデータセットを清浄化又はフィルタ処理することができる。別の実施形態では、コンテンツマネージャ122が、ACRシステム124及び126からの異種データセットを標準化するために、データセットのフィールドをマッピングすることができる。例えば、コンテンツマネージャ122は、ACRシステム124から第1のデータセットを受け取ってACRシステム126から第2のデータセットを受け取った時に、これらの第1のデータセット及び第2のデータセットのデータフィールドの少なくとも一部が第1及び第2のデータセットの両方に共通することがある。ところが、これらの共通するデータフィールドが第1及び第2のデータセットの異なる場所に存在することもある。この例では、コンテンツマネージャ122が、第1及び第2のデータセットの異なるデータフィールドを標準化フィールドにマッピングして、同じデータフィールドをデータベース123の同じデータフィールド位置に有することができる。
【0021】
別の実施形態では、コンテンツマネージャ122が、ACRシステム124及び126からの異種データセットを標準化するために、データセットからデータを導出することができる。例えば、ACRシステム124及び/又は126からのデータは、データベース内にデータフィールドを満たすのに必要なフィールドを全て含んでいないことがある。しかしながら、コンテンツマネージャ122は、ACRシステム124及び126からデータセット内の他のフィールドを使用して、これらのデータフィールドのためのデータを導出することができる。
【0022】
1つの例では、データベース123が、国内の州フィールド、指定視聴地域(DMA)、並びに郡及び/又は市フィールドなどのデータフィールドを含んでいるのに対し、ACRシステム124及び126からのデータセットが、郵便番号制度(ZIP)コードしか含んでいないことがある。この例では、コンテンツマネージャ122が、ZIPコードを使用してデータベース内のフィールドのためのデータを導出することができる。別の例では、データセットがいずれの地理的位置情報も含んでおらず、ACRシステム124及び126のインターネットプロトコル(IP)アドレスを含んでいることがある。この例では、コンテンツマネージャ122が、ジオIP検索サービスを使用して、州、DMA、郡、市及びZIPコードの情報を取得することができる。
【0023】
別の例では、データベース123が、年齢フィールド、性別フィールド及び世帯収入フィールドなどの人口統計フィールドを含むことができる。しかしながら、ACRシステム124及び126からのデータセットは、人口統計フィールド又は人口統計データを含んでいないことがある。この例では、ACRシステム124及び126が、コンテンツマネージャ122にクライアント装置118及び120のIPアドレスを提供することができる。コンテンツマネージャ122は、このIPアドレスを用いて人口統計データを決定して、データベースにデータフィールドを追加することができる。
【0024】
別の例では、ACRシステム124からの第1のデータセット内のフィールドが、山岳部夏時間(MDT)帯などの現地時間帯情報を含み、ACRシステム126からの第2のデータセットが、協定世界時(UTC)帯などの別の時間帯からの情報を含むことがある。データベースは、UTCを使用する全てのデータを記憶することができ、コンテンツマネージャ122は、現地時間をUTCに変換した後でデータベース123にデータを記憶することができる。
【0025】
1つの実施形態では、コンテンツマネージャ122が、標準化データを使用して、異なるACR技術ベンダ及びスマートTV又は他のインターネット接続ビデオ装置にわたるユーザ視聴行動に関するレポート又はデータ(視聴データ)を生成することができる。コンテンツマネージャ122及びメディア装置115は、メディア装置115とコンテンツマネージャ122との間でオーバレイコンテンツなどの情報を通信するための通信インターフェイスを含むことができる。
【0026】
1つの例では、通信インターフェイスが、セルラーネットワーク及び/又は無線ネットワークを使用して情報を通信することができる。1つの例では、通信ネットワークを、第3世代パートナシッププロジェクト(3GPP)リリース8、9、10、11又は12、或いは電気電子技術者協会(IEEE)802.16p、802.16n、802.16m-2011、802.16h-2010、802.16j-2009、802.16-2009とすることができるセルラーネットワークとすることができる。別の実施形態では、通信ネットワークを、IEEE802.11-2012、IEEE802.11ac又はIEEE802.11ad規格などの、電気電子技術者協会によって開発されたIEEE(登録商標)規格に従うことができる(Wi-Fi Allianceによって開発されたWi-Fi(登録商標)技術を使用するネットワークなどの)無線ネットワークとすることができる。別の実施形態では、通信ネットワークを、Bluetooth(登録商標) v1.0、Bluetooth v2.0、Bluetooth v3.0又はBluetooth v4.0などの、Bluetooth Special Interest Group(SIG)によって開発されたBluetooth(登録商標)接続とすることができる。別の実施形態では、通信ネットワークを、IEEE802.15.4-2003(Zigbee2003)、IEEE802.15.4-2006(Zigbee2006)、IEEE802.15.4-2007(Zigbee Pro)などの、ZigBee Allianceによって開発されたZigbee(登録商標)接続とすることができる。
【0027】
1つの例では、コンテンツマネージャ122が、メディア装置115に、OTA放送局108又はMVPD110から受け取ったローカルコンテンツフィードの一部をオーバレイコンテンツに差し換えるように指示することができる。別の例では、コンテンツマネージャ122が、メディア装置115に、ローカルコンテンツフィードの一部にオーバレイコンテンツをオーバレイし、又は重ね合わせるように指示することができる。コンテンツマネージャ122は、複数のACRシステム124及び126にわたるACR情報を集約し、異なる装置メーカーからの装置とすることができるクライアント装置118及び120にオーバレイコンテンツを通信することができる。
【0028】
コンテンツマネージャ122は、メディア装置115の他の装置116との通信接続を確立することもできる。1つの例では、他の装置116が、クライアント装置118又は120と通信して、オーバレイコンテンツを表示する追加画面(例えば、第2の画面など)を提供することができる。例えば、クライアント装置118及び120は、OTA放送局108又はMVPD110からローカルコンテンツフィードを受け取ってユーザに表示することができる。他の装置116は、前段で説明したようなACRイベントの発生時に、ACRシステム124及び126にACRイベント情報を通信することもできる。コンテンツマネージャ122は、ACRイベント情報を受け取ると、他の装置116にオーバレイコンテンツを通信することができる。
【0029】
1つの例では、クライアント装置118及び120が、他の装置116がオーバレイコンテンツを表示している間にローカルコンテンツフィードを表示し続けることができる。別の例では、クライアント装置118及び120、並びに他の装置116が、いずれもオーバレイコンテンツを表示することができる。別の例では、クライアント装置118及び120、並びに他の装置116が、オーバレイコンテンツの一部及びローカルコンテンツフィードの一部を表示することができる。別の例では、クライアント装置118及び120、並びに他の装置116が、異なるローカルコンテンツフィード及び/又はオーバレイコンテンツを表示することができる。
【0030】
1つの例では、クライアント装置118及び120、及び/又は他の装置116が、オーバレイコンテンツを受け取った時点でオーバレイコンテンツを表示することができる。別の例では、クライアント装置118及び120、及び/又は他の装置116が、オーバレイコンテンツの表示を閾値時間にわたって遅らせることができる。この閾値時間は、事前に定めた時間とすることも、或いはクライアント装置118及び120、及び/又は他の装置116がオーバレイコンテンツの表示を遅らせる時間をコンテンツマネージャ122が選択することもできる。
【0031】
図2に、1つの実施形態による、クライアント装置218及び/又は220などのメディア装置115にオーバレイコンテンツを提供するコンテンツマネージャ222を示す。コンテンツプロバイダ202は、ネットワーク219を介してメディア装置115にメディアコンテンツをストリーミングすることができ、コンテンツマネージャ222は、メディア装置115にメディアコンテンツがストリーミングされる前に、又はこれと同時にこのストリーミングを傍受することができる。コンテンツマネージャ222は、広告サーバ(又は「ad」サーバ)230と通信して、さらに詳細に説明するようにメディアコンテンツの主題及び/又はユーザの興味を標的とする広告がメディアコンテンツに(又はメディアコンテンツへのオーバレイとして)提供されることを要求する広告要求(advertising call)をadサーバ230に送信することなどができる。adサーバ230は、広告又はその他のオーバレイコンテンツを後でメディア装置115に配信できるようにコンテンツマネージャ222に提供する、又はコンテンツをオーバレイとして直接メディア装置115に提供できる第三者サーバ又は外部サーバとすることができる。
【0032】
コンテンツマネージャ122は、ACRエンジン204と、ルックアップサーバ206と、オーバレイ決定エンジン210と、オーバレイコンテンツを記憶するオーバレイデータベース211と、adターゲッタ212とを含むことができる。コンテンツプロバイダ202は、ACRエンジン204にメディアコンテンツをアップロードすることができる。
【0033】
ACRエンジン204は、メディアコンテンツのフィンガープリントを検出することができる。1つの例では、フィードの全てのフレーム、フィードの1つおきのフレーム及び一連のフレームなどのフィンガープリントを採取することによってフィンガープリントを生成することができる。例えば、ACRエンジン204は、フレームの離散コサイン変換(DCT)を実行し、結果として得られる係数のサブセット(例えば、低周波数係数)をフィンガープリントとして指定することによって、フィードのフレームのフィンガープリントを生成することができる。別の又は関連する実施形態では、ACRエンジン204がACRイベント情報を分析して、どのようなイベントが起きた可能性があるか、例えば一連のフレームのクエリフィンガープリントと、ACRシステム124又は126に記憶されているオリジナルコンテンツのフレームフィンガープリントとの間の肯定的一致を決定することができる。肯定的一致が存在する場合、ACRエンジン204は、肯定的一致が生じたコンテンツを識別するメディアコンテンツ識別子(ID)を含むことができる肯定的一致インジケータを要求側メディア装置115に送信することができる。メディア装置115は、メディアコンテンツオーバレイを要求するオーバレイ要求をオーバレイ決定エンジン210に送信することができる。1つの例では、このオーバレイ要求が、メディアコンテンツIDを含むことができる。別の例では、オーバレイ要求が、オーバレイ情報又はオーバレイパラメータを含むことができる。
【0034】
図2をさらに参照すると、ACRエンジン204は、ACRシステム124又は126から受け取ったACRイベントに対応するテレビ番組(又は、例えばチャンネル)及びテレビ番組内の位置を検索して決定できるACRフィンガープリントをルックアップサーバ206に通信することができる。フィードのセグメントの各フィンガープリントには、タイムスタンプを関連付けることができる。このタイムスタンプは、ACRエンジン204が受け取った時のフィードのセグメントの個々のフレームに属することができる。タイムスタンプは、任意のフィード内の開始点からのフレーム番号とすることができる。ルックアップサーバ206は、フィンガープリントをそれぞれのタイムスタンプに関連付けて(例えばフィンガープリントデータベース207に)記憶し、ユーザが視聴しているフィードのメディアコンテンツ内でadターゲッタ212及びオーバレイ決定エンジン210がタイミング調整及びコンテンツターゲッティングを行うのを支援する。
【0035】
1つの実施形態では、ACRエンジン204が、様々なメディア装置115のACRクライアント215と相互作用する。ACRクライアント215は、フィンガープリントをローカルに照合し、ユーザが異なるテレビ番組を視聴するためにチャンネルを変更したか否かを確認して、コンテンツマネージャ222にチャンネルの変更を報告することができる。従って、場合によっては、メディア装置115においてフィンガープリントの照合をローカルに行うこともできる。
【0036】
さらに、ACRクライアント215は、ユーザフィンガープリント情報を、例えばメディア装置115上で視聴されているテレビ番組又はチャンネルの確認を要求するクエリフィンガープリントの形で定期的に、継続的に又は半継続的にルックアップサーバ206に通信することができる。ルックアップサーバ206は、(単複の)クエリフィンガープリントと、フィンガープリントデータベース207に記憶されている、又はルックアップサーバからネットワーク219を横切って記憶されている数多くのフレームフィンガープリントとが一致する時点を決定することができる。クエリフィンガープリントは、順序化された一連のフレームとすることができ、これらのそれぞれを、テレビ番組又はチャンネルに関連する十分な一致を発見するまでフレームフィンガープリントのそれぞれと照合することができる。肯定的な一致が存在すると、ルックアップサーバ206は、ACRクライアント215に肯定的一致インジケータを通信することができる。ACRクライアント215は、オーバレイ決定エンジン210に、メディアコンテンツのオーバレイを要求するオーバレイ要求を送信することができる。
【0037】
1つの例では、オーバレイ要求が、メディアコンテンツ識別子(ID)を含むことができる。別の例では、オーバレイ要求が、オーバレイ情報又はオーバレイパラメータを含むことができる。1つの例では、オーバレイ決定エンジン210が、コンテンツID、オーバレイ情報及び/又はオーバレイパラメータを使用して標的オーバレイコンテンツを識別することができる。別の例では、オーバレイ決定エンジン210が、コンテンツID、オーバレイ情報及び/又はオーバレイパラメータを使用してオーバレイフォーマットを識別することができる。オーバレイ決定エンジン210は、コンテンツID、オーバレイ情報及び/又はオーバレイパラメータをオーバレイデータベース211と比較して、標的オーバレイコンテンツ及び/又はオーバレイフォーマットを識別することができる。オーバレイデータベースは、コンテンツプロバイダ又は広告主(例えば、広告サーバ230)が定期的に又は継続的に新たなオーバレイコンテンツ及び/又はオーバレイフォーマットで更新することができる。オーバレイコンテンツは、チャンネルのテレビ番組のストリーミングされているメディアコンテンツのオーバレイ位置に配信される前又は後に、(オーバレイテンプレートなどの)オーバレイフォーマットを追加することができる。
【0038】
adターゲッタ212は、オーバレイ決定エンジンによってメディア装置115に配信された広告及びその他のオーバレイコンテンツに関するユーザの相互作用及び行動を追跡して分析することができる。adターゲッタ212は、ユーザ行動を分析したユーザプロファイル情報をメディア装置毎に受け取って組み込み、ユーザにとって興味のある主題を決定することができる。このユーザ又はユーザグループについて収集した情報及びデータは、通常視聴されているテレビ番組及びチャンネルに関する好ましい視聴時間及び典型的な視聴習慣、並びに時間にまで及ぶことができる。その後、adターゲッタ212は、興味のある異なる主題及び視聴習慣をパラメータなどの形でオーバレイ決定エンジン210に通知し、オーバレイ決定エンジン210は、それぞれのユーザへの配信にどのオーバレイコンテンツを選択すべきか、そのフォーマット方法、及びキャンペーン予算の投資利益率のためにはいつ配信するのが最良であるかを判断する上でこれらを使用することができる。
【0039】
オーバレイ決定エンジン210は、adターゲッタ212を利用して標的オーバレイコンテンツを識別すると、この標的オーバレイコンテンツをメディア装置115に戻すことができる。1つの例では、オーバレイ決定エンジン210が、標的オーバレイコンテンツを、無線通信ネットワークなどを介してメディア装置115に直接通信することができる。別の例では、オーバレイ決定エンジン210が、標的オーバレイコンテンツを、ユニバーサルリソースロケータ(URL)を介してメディア装置115に通信することができる。1つの例では、複数の標的オーバレイコンテンツがコンテンツID、オーバレイ情報及び/又はオーバレイパラメータに一致する場合、オーバレイ決定エンジン210は、最も大きな数字パラメータ又はその他の情報を満たす標的コンテンツオーバレイを選択することができる。別の例では、複数の標的オーバレイコンテンツがコンテンツID、オーバレイ情報及びその他のオーバレイパラメータに一致する場合、オーバレイ決定エンジン210は、これらのパラメータ及びその他の情報を満たすオーバレイコンテンツをランダムに選択することができる。別の例では、複数の標的オーバレイコンテンツがコンテンツID、オーバレイ情報及び/又はオーバレイパラメータに一致する場合、オーバレイ決定エンジン210は、コンテンツID、オーバレイ情報及び/又はオーバレイパラメータに一致する所定のオーバレイコンテンツを選択することができる。オーバレイコンテンツには、動的コンテンツ(例えば、定期的に更新又はリフレッシュできるコンテンツ)を追加することができる。動的コンテンツは、ローカルデータベース又は外部システムに記憶することができる。
【0040】
ACRフィンガープリント情報がユーザフィンガープリント情報と一致した場合、メディア装置115のACRクライアント215は、コンテンツフィードにオーバレイコンテンツを重ねることができる。1つの例では、メディア装置115が、ハイパーテキストマークアップ言語(HTML)ブラウザ内のコンテンツフィードにオーバレイコンテンツを重ねることができる。別の例では、メディア装置115が、OTA放送局又はケーブル放送局からのコンテンツフィードにオーバレイコンテンツを重ねることができる。コンテンツフィード上にオーバレイコンテンツが配置されると、このオーバレイコンテンツを、メディア装置115のディスプレイを介してユーザに表示することができる。1つの例では、オーバレイコンテンツが、ユーザに表示できる1又は2以上の行動喚起オプションを含むことができる。この例では、ユーザが、(TVリモコン、キーボード、スマートフォン又はタブレットなどの)入力装置を用いてオーバレイコンテンツと相互作用してフィードバック情報を作成することができる。ACRクライアント215は、このフィードバック情報を広告ターゲッタ212に通信することができる。広告主などの別の個人は、フィードバック情報にアクセスし、フィードバック情報を分析して、オーバレイコンテンツにおけるユーザの興味などの所望の情報を決定することができる。
【0041】
ACRクライアント215は、コンテンツフィードをモニタして、オーバレイコンテンツとコンテンツフィードとの一致が終了する時点、及び/又は閾値時間が満了する時点を決定することができる。1つの例では、オーバレイコンテンツとコンテンツフィードとの一致が終了し、及び/又は閾値時間が満了すると、メディア装置115は、メディア装置115上に表示されるオーバレイコンテンツの重ね合わせを中止することができる。
【0042】
図3は、
図2のコンテンツマネージャの、メディアコンテンツのフィンガープリントを採取するために使用されるACRエンジン204のシステム図である。1つの実施形態によれば、ACRエンジン204は、フィンガープリントを採取すべきメディアコンテンツのコンテンツフレームと、フィンガープリンタ305と、フィンガープリントシーケンスマッチャー325と、フレームフィンガープリントを記憶するデータベース327とを受け取ることができる。コンテンツプロバイダ202は、クライアント装置218及び/又は220を含むメディア装置115にストリーミングされるマルチメディアコンテンツを生成することができる。
【0043】
フィンガープリンタ305は、マルチメディアコンテンツから複数のコンテンツフレーム302をフィンガープリントとして検出又は選択することができる。1つの実施形態では、複数のコンテンツフレーム302を順に並べることができ、従って複数のコンテンツフレーム302は、フィンガープリントの最初から最後までの連続タイムスタンプを含む。1つの例では、コンテンツをオーディオデータ、ビデオデータ、又はこれらの両方とすることができる。この例では、ビデオコンテンツを未加工のビデオフレームとすることができる。
【0044】
例えば、フィンガープリンタ305は、コンテンツフレーム302を受け取ると、フィンガープリントを生成する未加工のビデオ及び/又はオーディオフレームなどのコンテンツフレーム302の処理方法を決定することができる。1つの例では、フレームのフィンガープリント採取を個別に行うことができる。別の例では、フレームのフィンガープリント採取をまとめて又は順番に行うことができる。フィンガープリンタ305は、フィンガープリンタ305がフィンガープリントの採取中に実行するACRアルゴリズムに基づいて、ビデオフレームのフィンガープリント採取をいつ個別に又は順番に行うかを決定することができる。
【0045】
別の例では、フィンガープリンタ305が、コンテンツフレーム302のフィンガープリント採取を異なる放送局又はユーザについて異なる形で行うことができる。この例では、フィンガープリンタ305が、異なるACRベンダのための異なるACRフィンガープリントアルゴリズムを含むことができる。1つの例では、異なるACRフィンガープリントアルゴリズムを予め決定してフィンガープリンタ305のメモリに記憶することができる。
【0046】
さらに別の例では、第三者ACRベンダが異なるACRフィンガープリントアルゴリズムを提供することができる。このようなベンダが異なるACRフィンガープリントアルゴリズムを提供する際には、フィンガープリンタ305が、異なるACRフィンガープリントアルゴリズムを集約することができる。1つの例では、ACRフィンガープリンティングが、YUV4:2:2の色空間を有する高解像度又はその他のレベルの解像度の未加工ビデオを使用することができる。ローカルプロバイダ106又は他のコンテンツプロバイダ202においてビデオコンテンツが受け取られると、フィンガープリンタ305は、ビデオコンテンツをYUV4:2:0の色空間に変換して、メディア装置115に送信される前に放送局又はディストリビュータが符号化できるように解像度を閾値解像度レベルまでスケールダウンすることができる。
【0047】
いくつかの実施形態では、フィンガープリンタ305が、フィンガープリントシーケンスマッチャー325を含み、又はこれと通信することができる。フィンガープリントシーケンスマッチャー325は、以下で詳細に説明するように、一連のフィンガープリントを所与の一連の個々のフレームフィンガープリントの発生元であるオリジナルビデオコンテンツと照合することができる。
【0048】
フィンガープリンタ305は、コンテンツフレーム302のフィンガープリントを採取すると、この(チャンネル情報、時間コード及びフィンガープリント情報を含む)フィンガープリントをオーバレイデータベース211及び/又はルックアップサーバ206に送信することができる。ルックアップサーバ206は、オーバレイデータベース211からフィンガープリント及び関連情報を検索することもできる。ルックアップサーバ206は、オーバレイ決定エンジン210及びadターゲッタ212とも通信又は結合し、オーバレイ決定エンジン210及びadターゲッタ212にオーバレイ及び主題照合情報を送信することにより、クライアント装置218及び220上でユーザを文脈的にターゲッティングできるようにする。
【0049】
1つの例では、同じコンテンツに異なるACRフィンガープリントアルゴリズムを使用して、異なるACRベンダのルックアップサーバに異なるフィンガープリント情報を提供することができる。同じコンテンツ(例えば、コンテンツフレーム)302のフィンガープリントを別様に採取する利点は、文脈的に関連する広告及びインタラクティブコンテンツをメディア消費装置の異なる視聴者に提供できる点である。別の例では、コンテンツフレーム302が、異なるフィードからのメディアコンテンツを含むことができる。この例では、コンテンツフレーム302の異なるフィードのコンテンツに異なるACRフィンガープリントアルゴリズムを使用して、異なるACRベンダのルックアップサーバに異なるフィンガープリント情報を提供することができる。
【0050】
異なるフィンガープリント情報は、異なるACRベンダのルックアップサーバにそれぞれアップロードすることができる。異なるACRベンダは、異なる契約装置メーカー(CEM)によって製造された視聴装置上に統合することができる。例えば、Toshiba社のテレビは、Samba(登録商標)のACRフィンガープリント技術を利用することができ、Samsung(登録商標)社のテレビは、Enswer(登録商標)のACRフィンガープリント技術を使用することができる。フィンガープリンタ305が異なるACRベンダのためのACRフィンガープリントアルゴリズムを含む利点は、メディア消費装置のメーカーに関わらず、異なるACRベンダを通じて視聴者に提供されたコンテンツのフィンガープリントを採取できる点である。1つの例では、ACRフィンガープリント情報をデジタル広告差し換え(DAR)に使用することができる。別の例では、ACRフィンガープリント情報を広告又はコンテンツ増強及びデータ収集に使用することができる。オーバレイ決定エンジン210及びadターゲッタ212(
図2)は、フィンガープリント情報を使用して、符号化コンテンツを文脈的に関連する広告、情報及び/又はインタラクティブコンテンツと照合することができる。その後、一致したコンテンツ及び/又は広告をメディア装置115に提供してストリーミング表示することができる。別の例では、照合イベントに関する情報を放送クラウドに通信してコンテンツ照合を分析することができる。
【0051】
1つの例では、フィンガープリンタ305が、システムにおける放送配信の開始時にACRフィンガープリンティングを実行することができる。別の例では、符号化/アップロードのために放送フィードを配信できる放送チェーンにおいてACRフィンガープリンティングを行うことができる。単一の放送フィードを使用すると、ACRフィンガープリンティング及び符号化/アップロードのために購入し、インストールし、モニタして維持するのに必要な装置及び/又はアプリケーションの数を低減することができる。例えば、低減されたシステムインフラ(ラック空間、電力及びイーサネット(登録商標)接続性)などの、資本支出(CAPEX)及び/又は運営費(OPEX)を低減することができる。また、単一の放送フィードを使用すると、放送局の分配増幅器から生成される放送フィードの数を低減することもできる。
【0052】
上述したように、フィンガープリンタ305は、マルチメディアコンテンツから、ユーザのメディア装置115のうちの1つに表示されるまでのルートにおいて放送サーバ、ヘッドエンド、スイッチ及び/又はセットトップボックスを通過できるような個々のフィンガープリントを生成することができる。フィンガープリントは、1つのフレーム又は複数のフレームを含むことができる。フレームは、時系列的なタイムスタンプ順に取り出すことも、又はやはり対応するタイムスタンプを用いて例えば1つおき(又は2つおき)などの何らかの間隔で取り出すこともできる。
【0053】
フィンガープリントシーケンスマッチャー325は、これらの一組の又は一連の個々のフレームを(クエリフィンガープリントとして)処理して、これらのフィンガープリントによって表される対応するビデオフレームの発生元であるオリジナルビデオコンテンツの(データベース327に記憶されている)フレームフィンガープリントと照合することができる。フレームフィンガープリントは単一のフレームとすることができ、それぞれが対応するタイムスロット(又はメディア番組の最初からのフレーム番号又は時間量などの何らかの種類のインデックス)を含む。一致が見つかると、メディア装置115上でユーザが視聴しているメディア番組、チャンネル、番組の開始時刻及び終了時刻の面でのスケジュールの時間割、コマーシャルの時間割、並びに一致するメディア番組のこのような情報を決定することができる。
【0054】
フィンガープリントシーケンスマッチャー325は、照合結果に信頼性を持たせるために、一連のフィンガープリントが時間的に順序化されており、従って一致するフィンガープリントも同じビデオに属するだけでなく同様に時間的に順序化されているという事実を利用することができる。フィンガープリントシーケンスマッチャー325は、この特性を利用して、クエリフィンガープリントのフレームのタイムスタンプを照合に使用される(例えば、二次元データ構造の)オリジナルコンテンツのフレームフィンガープリントにマッピングし、例えばマッピングされたタイムスタンプ点に対してパターン認識アルゴリズムを実行することによって外れ値をフィルタ除去することができる。
【0055】
フィンガープリントシーケンスマッチャー325は、フィンガープリントの一連のフレームのこのような時間特性を使用して、一致するフィンガープリントシーケンスがどのように(高速で、低速で又は逆向きに)再生されたかを検出することができる。ACRフィンガープリントシーケンスマッチャー325内のアルゴリズムは、例えば、フルフレームレートでの通常速度、1/2フレームレートでの通常速度、又は1/3フレームレートでの通常速度などの特定の再生シナリオを検出するように実装することができる。
【0056】
図4を参照すると、フィンガープリントシーケンスマッチャー325は、入力(又はクエリ)フィンガープリントの第1のタイムスタンプ(又はその他のタイプのインデックス)と、(単複の)一致するフレームフィンガープリントの第2のタイムスタンプ(又はその他のタイプのインデックス)とを使用することができる。第1のタイムスタンプ及び第2のタイムスタンプは、所与のシーケンスにおけるクエリフィンガープリントの第1のタイムスタンプ(又はインデックス)をX
i、クエリフィンガープリントのそれぞれのフレームの検索された一致するフレームフィンガープリントの第2のタイムスタンプ(又はインデックス)をY
jとする点(X
i、Y
j)の2次元(2D)場を形成する。
【0057】
具体的には、フィンガープリントシーケンスマッチャー325は、時点X0におけるフィンガープリントを所与としてフィンガープリントデータベース327におおよその一致を問い合わせ、密接に一致するフレームフィンガープリントの組がタイムスタンプYj及びYj+3において識別される。この一致の組では、一致が(X0、Yj)又は(X0、Yj+3)を含むことができるので、どちらが正確な一致であるかを決定することはできない。時点X1における次のフィンガープリントを所与とすると、最も近い一致の組は、Yj+1及びYj+5を含む。これらのさらなる一致では、フレームのフィンガープリント採取及び再生が行われる速度に関する何かを仮定した場合、フィンガープリントシーケンスマッチャー325は、どちらの一致が正確及び不正確であるかを決定するのに十分な情報を既に有している。フィンガープリントシーケンスマッチャーが、フィンガープリントが照合のためにリアルタイムで(時間の引き伸ばし又は圧縮を伴わずに)提出されると仮定した場合、正しい一致は、傾き=1の線上に並ぶようになる。すなわち、(X0、Yj)及び(X1、Yj+1)が正しい一致であり、(X0、Yj+3)及び(X1、Yj+5)は、傾き=2の線を形成するので誤一致(外れ値)である。
【0058】
時点Xiにおけるさらなるフィンガープリントを所与とすると、潜在的な一致の組は、Xi-1及びXi-2などにおける一致によって形成される同じ線を延ばした地点を含むはずである。従って、フィンガープリントシーケンスマッチャー325は、正しい一致を一斉に識別するために、同じ線に一致する地点(Xi、Yj)を識別する。1つの識別方法は、パターン認識アルゴリズムの使用を通じたものである。ランダムサンプルコンセンサス(RANSAC)は、この線を発見するために使用できる1つのこのようなアルゴリズムであるが、他のアルゴリズムも使用することができる。RANSACを使用すると、あらゆる傾きの線を検出することができる。
【0059】
例えば、検出される線の傾きは、1である必要はない。ビデオを逆に再生した場合には、傾きが負になる。(恐らくはコマーシャルのための余地を広く取るために)ビデオをリアルタイムよりも速く再生した場合には、傾きが1よりも大きくなる。ビデオを低速にした場合には、傾きは1よりも小さくなる。例えば、恐らくオリジナルの位相反転線(PAL)コンテンツは、25フレーム/秒(fps)でフィンガープリントを採取されたものであるが、23.976fpsの全国テレビ方式委員会(NTSC)放送では時間が引き伸ばされる。フィンガープリントシーケンスマッチャーが線の傾きを決定できるには、少なくとも3つのフィンガープリント(X0、X1、X2)が必要であるが、フィンガープリントがさらに多ければ、この決定はさらにロバストなものになる。フィンガープリントシーケンスマッチャーは、検出された線の傾きを所与として、オリジナルのコンテンツ再生速度に対するクライアント装置上のコンテンツの再生速度を決定することができる。
【0060】
従って、フィンガープリントシーケンスマッチャー325は、所与の順序化された一連のクエリフィンガープリントのフレーム毎に、上位N個の一致するフレームフィンガープリントをデータベース327内で発見することができる。ここでの変数Nは、(例えば、10などの)任意の整数又は他の予め決定した値とすることができる。1つの実施形態では、変数Nを、データベース327における所与のクエリフィンガープリントの一致するフレームの数とすることができる。別の実施形態では、実装及び設計因子に応じて、Nを一定の制限とすることも、制限なし(無限)とすることもできる。例えば、フィンガープリントシーケンスマッチャー325は、Xiにおける全てのフィンガープリントについて、データベース327内の上位10個の最も一致するフィンガープリントを識別することを選択し、従ってXiにおける考えられる一致の数を最大でも10個のペアに制限することができる。或いは、フィンガープリントシーケンスマッチャー325は、データベース内の全てのほぼ一致するフィンガープリントを戻すことを選択することもでき、この場合、フィンガープリントシーケンスマッチャー325は、誤一致であるさらに多くのペアを有することができる。十分な大きな入力フィンガープリントシーケンス(X0...Xi)を所与とした場合、これらは一列に並ぶので、依然として正しい一致を識別できるはずであるが、誤一致の数が無制限になるので、このパターンの検出が困難になる場合もある。最も近い一致の数を制限すると、誤一致の数を減少させる役に立つとともに、線検出に単純かつ高速なアルゴリズムを使用できるようになる。最も近い一致の数を制限するリスクは、真の一致が除外される恐れがある点であるが、このリスクは、十分に大きなNによって抑えられる。
【0061】
さらに、(一時停止していない)ビデオ(又は他のメディア番組)の再生中には、各考えられる一致の組に最大で1つの正解値(inlier)が存在する。フィンガープリントは順序化されているので、全ての正解値は一列に並ぶはずである。これは
図4で確認することができ、正解値は、(X
0、Y
j)と(X
7、Y
j+7)との間の1の傾きを有する線を形成する。場合によって、メディア番組の速度が上がった時には、この線が紛失した正解値を含むこともある。これとは逆に、メディア番組の速度が下がった時には、この線がさらなる正解値を含むことがある。
【0062】
フィンガープリントシーケンスマッチャー325は、信頼性のある正解値を検出するために、点の場内の線を検出する。フィンガープリントシーケンスマッチャー325が線の傾き(例えば、1、2又は3の傾き)を知っている時には、単純な線検出器を用いてこれを行うことができる。この方法は、上述したように、クエリフィンガープリントとデータベース327に記憶されているフレームフィンガープリントとの一致を発見するために使用されるフレームフィンガープリントが同じアルゴリズムによって生成された時に、既知の傾きと連動する。複数の線が存在する場合、フィンガープリントシーケンスマッチャー325は、2つの線のうちの長い方を採用することができる。
【0063】
或いは、上述したように、この線は、RANSACなどのパターン認識アルゴリズムによって検出することもできる。RANSACは、外れ値を含む観察されたデータの組から数学的モデルのパラメータを推定する反復方法である。RANSACは、一定の確率の妥当な結果を生成する非決定的アルゴリズムであり、より多くの反復が可能な場合には、この確率が上昇する。基本前提は、データが、例えば何らかのモデルパラメータの組によって分布を説明することができるがノイズに影響されることもあるデータなどの「正解値」と、モデルに適合しないデータである「外れ値」とを含むことである。外れ値は、例えば極端なノイズの値、或いは誤測定又はデータの解釈に関する誤った仮説に由来することがある。RANSACは、(通常は少ない)一連の正解値を所与とした時に、このデータを最適に説明する又はこのデータに最適に適合するモデルのパラメータを推定できる手順が存在することも想定する。フィンガープリントシーケンスマッチャー325は、RANSACを使用して、一連のわずかな点からあらゆる傾きの線を検出することができる。十分な正解値があれば、フレームレートに関わらず線を検出できるので、この線はフレームレートに関わらず検出することができる。検出された線を使用して、入力フレームシーケンスの再生速度を識別することもできる。フィンガープリントシーケンスマッチャー325は、ユーザが再生テンポを変更した時点、又は(例えば負の傾きによって)ビデオが逆向きに再生している時点を検出することもできる。再生速度は、検出された線の傾きに反映させることができる。
【0064】
上述したように、フィンガープリントシーケンスマッチャー325は、再生がオリジナルの(変更されていない)速度である場合に特定の傾きの線を検出することができる。例えば、1の値を有する傾きは、フレームレートを変更していない1:1の再生テンポに対応する。この実施形態では、フィンガープリントシーケンスマッチャー325が線検出アルゴリズムを単純化することができ、RANSACなどのパターン検出アルゴリズムを使用しなくてもよい。別の実施形態では、フィンガープリントシーケンスマッチャー325が、1つおきのフレームが脱落している入力フィンガープリントシーケンスに対応する傾き2の線を探すこともできる。この動作は、例えばHTTPライブストリーミング(HLS)出力における2番目に低いビットレートストリームについて行うことができる。別の実施形態では、フィンガープリントシーケンスマッチャー325が、全ての点が水平線のように並んでいるのを検出することによって、ユーザが再生を一時停止した時点を検出することもできる。
【0065】
フィンガープリントシーケンスマッチャー325の実施形態は、順序化された一連の入力フレームを所与とする発生元ビデオの検出方法を形式化することができる。フィンガープリントシーケンスマッチャー325を使用すると、ユタ州ソルトレークシティのSorenson Media社によって開発されたSpark Core ACRなどのACRシステムにおける一致検出の信頼性を高めることができる。
【0066】
シーケンスマッチングの1つの考えられる利点は、個々のフレームフィンガープリントの時間的順序を活用して個々のフレーム照合アルゴリズムの品質要件を緩和できる点である。例えば、個々のフレームマッチングアルゴリズムにおいて、さらに多くの誤検出を許容することができる。これらの実施形態では、再生フレームレート及びテンポ、又は再生が一時停止されているかどうかを検出することもできる。
【0067】
図5は、1つの実施形態による、入力(又はクエリ)フィンガープリントの一連のフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識(ACR)方法のフローチャート500である。この方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(処理装置によって実行される命令など)、ファームウェア又はこれらの組み合わせを含むことができる処理ロジックによって少なくとも部分的に実行することができる。この方法は、クライアント装置218又は220などのクライアント装置の処理ロジックによって、
図1のACRシステム124又は126、又は
図2のACRシステム224又は226などのサーバシステムによって実行することができる。コンテンツマネージャ122又は222(
図1及び
図2)も、方法の実行に関与することができる。或いは、この方法は、様々なタイプのユーザ装置、ポータブル装置、テレビ、プロジェクタ又は他のメディア装置内の他の処理装置によって実行することもできる。
【0068】
図5を参照すると、処理ロジックは、コンテンツ(又はメディア)装置においてコンテンツフィードからメディアコンテンツを受け取ることによって開始する(502)。次に、このロジックは、メディアコンテンツに対してフィンガープリンティングを実行して、一連のフレームと(対応するタイムスタンプなどの)対応する時間ベースのインデックスとを含む入力(又はクエリ)フィンガープリントを生成することができる(504)。次に、ログは、時間ベースのインデックスに従って、クエリフィンガープリントをオリジナルメディアコンテンツからの複数のフレームフィンガープリントと照合して、メディアコンテンツに対応するメディア番組を識別することができる(506)。
【0069】
図6は、別の実施形態による、入力(又はクエリ)フィンガープリントの一連のフレームを照合して対応するテレビ番組を識別する自動コンテンツ認識(ACR)方法のフローチャート600である。この方法は、ハードウェア(例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど)、ソフトウェア(処理装置によって実行される命令など)、ファームウェア又はこれらの組み合わせを含むことができる処理ロジックによって少なくとも部分的に実行することができる。この方法は、クライアント装置218又は220などのクライアント装置の処理ロジックによって、
図1のACRシステム124又は126、又は
図2のACRシステム224又は226などのサーバシステムによって実行することができる。コンテンツマネージャ122又は222(
図1及び
図2)も、方法の実行に関与することができる。或いは、この方法は、様々なタイプのユーザ装置、ポータブル装置、テレビ、プロジェクタ又は他のメディア装置内の他の処理装置によって実行することもできる。
【0070】
図6を参照すると、処理ロジックは、メディア番組の複数のフレームフィンガープリントをデータベースに記憶することによって開始する(610)。次に、処理ロジックは、ユーザが消費しているコンテンツのフィンガープリントをメディア装置から受け取る(620)。このフィンガープリントは、順序化された一連のフレーム及び対応するタイムスタンプを含む。次に、ロジックは、データベースにクエリを行って、フィンガープリントの順序化された一連のフレームのタイムスタンプを複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる一連の点を含む時間ベースの結果を生成する(630)。次に、ロジックは、一連の点に対して、RANSACを実行していずれかの傾きの線を検出することなどのパターン認識アルゴリズムを実行して、消費されているコンテンツに対応するメディア番組を決定する(640)。次に、ロジックは、広告サーバにメディア番組の識別を送信して、ユーザがメディア装置を視聴している間にユーザに追加コンテンツをターゲッティングできるようにする(650)。ロジックは、メディア番組の識別(及び関連する情報)をオーバレイ決定エンジンに送信して、メディア番組内で及び/又はコマーシャル中にオーバレイとしてコンテンツに広告(又は他のコンテンツ)を配信する際に使用されるようにすることもできる。
【0071】
例えば、ロジックは、メディア番組の識別を広告サーバに送信し、メディア番組の主題に文脈的に関連する広告を広告サーバから受け取ることができる。その後、ロジックは、メディア番組のコマーシャル中にオーバレイ又は広告(又は情報セグメント)としてメディア装置に広告(又は他のコンテンツ)を配信して表示されるようにすることができる。
【0072】
図7は、本明細書で説明した方法のいずれか1つ又は2つ以上を機械に実行させる命令セットを実行できる例示的なコンピュータシステム700の形態の機械の図式表現である。別の実施形態では、この機械を、LAN、イントラネット、エクストラネット又はインターネット内で他の機械に接続(例えば、ネットワーク接続)することができる。この機械は、クライアント-サーバネットワーク環境内のサーバ又はクライアント装置として、又はピアツーピア(又は分散)ネットワーク環境内のピアマシンとして動作することができる。この機械は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話機、スマートフォン、ウェブ機器、サーバ、ネットワークルータ、スイッチ又はブリッジ、又は機械が取るべき行動を指定する(順次の又はその他の)命令セットを実行できるあらゆる機械とすることができる。さらに、図には1つの機械しか示していないが、「機械」という用語は、本明細書で説明した方法のうちのいずれか1つ又は2つ以上を実行するための命令セット(又は複数のセット)を個別に又は協働して実行する一群の機械を含むと解釈することもできる。
【0073】
コンピュータシステム700は、
図1のACRシステム124又は126、
図2及び
図3のACRシステム224又は226、又は
図1のコンテンツマネージャ122又は
図2のコンテンツマネージャ222に対応することができる。コンピュータシステム700は、
図1のクライアント装置118又は120に対応することもできる。コンピュータシステム700は、クラウドベースのコンピュータシステムの少なくとも一部に対応することもできる。
【0074】
コンピュータシステム700は、処理装置702、メインメモリ704(例えば、リードオンリメモリ(ROM)、フラッシュメモリ、(同期DRAM(SDRAM)又はDRAM(RDRAM)などの)ダイナミックランダムアクセスメモリ(DRAM)、スタティックメモリ506(例えば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、及びデータ記憶装置718を含み、これらはバス730を介して互いに通信する。
【0075】
処理装置702は、マイクロプロセッサ又は中央処理装置などの1又は2以上の汎用処理装置を表す。具体的には、処理装置は、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は他の命令セットを実行するプロセッサ、或いは命令セットの組み合わせを実行するプロセッサとすることができる。処理装置702はまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)又はネットワークプロセッサなどの1又は2以上の特定用途向け処理装置とすることもできる。1つの実施形態では、処理装置702が、1又は2以上の処理コアを含むことができる。処理装置702は、本明細書で説明した動作を実行するためのミラーリングロジックの命令726を実行するように構成される。
【0076】
コンピュータシステム700は、ネットワーク720に通信可能に結合されたネットワークインターフェイス装置708をさらに含むことができる。コンピュータシステム700は、ビデオディスプレイユニット710(例えば、液晶ディスプレイ(LCD)又はブラウン管(CRT))、英数字入力装置712(例えば、キーボード)、カーソル制御装置714(例えば、マウス)、信号生成装置716(例えば、スピーカ)、又はその他の周辺装置を含むこともできる。さらに、コンピュータシステム700は、グラフィクス処理ユニット722、ビデオ処理ユニット728及びオーディオ処理ユニット732を含むこともできる。別の実施形態では、コンピュータシステム700が、処理装置702と協働するように設計された、処理装置702と外部装置との間の通信を制御する一群の集積回路又はチップを示すチップセット(図示せず)を含むことができる。例えば、チップセットは、処理装置702をメインメモリ704及びグラフィックコントローラなどの超高速装置にリンクするとともに、処理装置702をUSB、PCI又はISAバスなどの、周辺機器の低速周辺バスにもリンクするマザーボード上の一連のチップとすることができる。
【0077】
データ記憶装置718は、本明細書で説明した機能の方法論のうちのいずれか1つ又は2つ以上を具体化する命令726を記憶するコンピュータ可読記憶媒体725を含むことができる。命令726は、コンピュータシステム700による実行中に、やはりコンピュータ可読記憶媒体を構成するメインメモリ704内及び/又は処理装置702内に完全に又は少なくとも部分的に存在することもできる。
【0078】
コンピュータ可読記憶媒体725は、上記のアプリケーションを呼び出す方法を含むロジック及び/又はソフトウェアライブラリを利用して命令726を記憶するために使用することもできる。例示的な実装では、コンピュータ可読記憶媒体725を単一の媒体として示しているが、「コンピュータ可読記憶媒体」という用語は、1又は2以上の命令セットを記憶する単一の媒体又は複数の媒体(例えば、集中データベース又は分散データベース、及び/又は関連するキャッシュ及びサーバ)を含むと解釈されたい。また、「コンピュータ可読記憶媒体」という用語は、機械が実行する命令セット726の記憶、符号化又は搬送を行い、本開示の方法論のうちのいずれか1つ又は2つ以上を機械に実行させることができるあらゆる媒体を含むとも理解されたい。従って、「コンピュータ可読記憶媒体」という用語は、限定するわけではないが、固体メモリ、光学媒体及び磁気媒体を含むと解釈されたい。以下の例は、さらなる実施形態に関する。
【0079】
限定数の実施形態に関して本発明を説明したが、当業者であれば、数多くの修正及びこれらの実施形態からの変形例を理解するであろう。添付の特許請求の範囲は、このような全ての修正及び変形例を本発明の真の趣旨及び範囲内に含まれるものとして対象とすることが意図されている。
【0080】
本明細書の説明では、本発明を完全に理解できるように、特定のタイプのプロセッサ及びシステム構成、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令タイプ、特定のシステム要素、特定の測定/高さ、特定のプロセッサパイプラインステージ及び動作の例などの数多くの特定の詳細を示した。しかしながら、当業者には、本発明を実施するためにこれらの特定の詳細を使用する必要はないことが明らかであろう。その他の場合には、本発明を不必要に曖昧にしないように、特定の及び代替のプロセッサアーキテクチャ、説明したアルゴリズムのための特定の論理回路/コード、特定のファームウェアコード、特定の相互接続動作、特定のロジック構成、特定の製造技術及び材料、特定のコンパイラ実装、コード内の特定のアルゴリズム表現、特定の出力低下及びゲーティング技術/ロジック、及びコンピュータシステムの他の特定の動作の詳細などの周知の構成要素又は方法については詳細に説明していない。
【0081】
実施形態は、コンピュータプラットフォーム又はマイクロプロセッサなどの特定の集積回路内で再分割されるセキュアメモリを参照して説明したものである。実施形態は、他のタイプの集積回路及びプログラマブルロジック装置に適用することもできる。例えば、開示した実施形態は、デスクトップコンピュータシステム又はIntel(登録商標)Ultrabooks(商標)コンピュータなどのポータブルコンピュータに限定されるものではない。また、ハンドヘルド装置、タブレット、他のスリムノートブック、システムオンチップ(SOC)デバイス及び埋め込みアプリケーションなどの他の装置で使用することもできる。ハンドヘルド装置のいくつかの例としては、携帯電話機、インターネットプロトコル装置、スマートフォン、デジタルカメラ、携帯情報端末(PDA)及びハンドヘルドPCが挙げられる。通常、埋め込みアプリケーションは、マイクロコントローラ、デジタルシグナルプロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、ワイドエリアネットワーク(WAN)スイッチ、又は以下で教示する機能及び動作を実行できる他のいずれかのシステムを含む。システムは、あらゆる種類のコンピュータ又は埋め込みシステムであってよいと説明した。開示した実施形態は、特にウェアラブル装置(例えば、腕時計)、電子インプラント、センサ型及び制御型インフラ装置、コントローラ、監視制御及びデータ収集(SCADA)システムなどのローエンド装置のために使用することもできる。さらに、本明細書で説明した装置、方法及びシステムは、物理的なコンピュータ装置に限定されず、エネルギ節約及び効率のためのソフトウェア最適化に関連することもできる。以下の説明で容易に明らかになるように、本明細書で説明した方法、装置及びシステムの実施形態は(ハードウェア、ファームウェア、ソフトウェア又はこれらの組み合わせのいずれを参照したかに関わらず)、性能考察とのバランスが取れた「環境保全技術」の未来にとって不可欠である。
【0082】
本明細書では、プロセッサを参照しながら実施形態を説明したが、他の実施形態は、他のタイプの集積回路及びロジック装置に適用可能である。同様の技術及び本発明の実施形態の教示は、高パイプラインスループット及び改善された性能の恩恵を受けることができる他のタイプの回路又は半導体デバイスに適用することもできる。本発明の実施形態の教示は、データ操作を行うあらゆるプロセッサ又は機械に適用することができる。しかしながら、本発明は、512ビット、256ビット、128ビット、64ビット、32ビット又は16ビットのデータ動作を実行するプロセッサ又は機械に限定されるものではなく、データの操作又は管理を行うあらゆるプロセッサ及び機械に適用することができる。また、本明細書の説明では例を示し、添付図面にも例示を目的として様々な例を示した。しかしながら、これらの例は、本発明の実施形態例を示すことのみを意図されたものとして限定的な意味で解釈するのではなく、むしろ本発明の実施形態の全ての考えられる実装の包括的リストを示すものとして解釈すべきである。
【0083】
以下の例では、実行ユニット及び論理回路の文脈で命令の取り扱い及び分散について説明するが、本発明の他の実施形態は、機械によって実行された時に本発明の少なくとも1つの実施形態に一致する機能を機械に実行させる機械可読有形媒体に記憶されたデータ又は命令によって達成することもできる。1つの実施形態では、本発明の実施形態に関連する機能が、機械実行可能命令の形で具体化される。これらの命令を用いて、命令をプログラムされた汎用又は専用プロセッサに本発明のステップを実行させることができる。本発明の実施形態は、本発明の実施形態による1又は2以上の動作を実行するようにコンピュータ(又は他の電子装置)をプログラムするために使用できる命令を記憶する機械又はコンピュータ可読媒体を含むことができるコンピュータプログラム製品又はソフトウェアとして提供することもできる。或いは、本発明の実施形態の動作は、動作を実行するための固定機能ロジックを含む特定のハードウェア要素、又はプログラムされたコンピュータ要素及び固定機能ハードウェア要素のいずれかの組み合わせによって実行することもできる。
【0084】
本発明の実施形態を実行するロジックをプログラムするために使用される命令は、DRAM、キャッシュ、フラッシュメモリ又はその他のストレージなどの、システムのメモリに記憶することができる。さらに、これらの命令は、ネットワークを介して又は他のコンピュータ可読媒体を用いて分散させることもできる。従って、機械可読媒体は、以下に限定されるわけではないが、フロッピーディスケット、光学ディスク、コンパクトディスク、リードオンリメモリ(CD-ROM)、及び磁気光学ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能リードオンリメモリ(EPROM)、電気的消去可能プログラム可能リードオンリメモリ(EEPROM)、磁気又は光学カード、フラッシュメモリ、又は電気信号、光信号、音響信号又は他の形の伝播信号(例えば、搬送波、赤外線信号、デジタル信号など)を通じインターネットを介した情報の送信に使用される有形機械可読ストレージを含む機械(コンピュータなど)による読み取りが可能な形で情報を記憶又は送信するいずれかの機構を含むことができる。従って、コンピュータ可読媒体は、機械(例えば、コンピュータ)による読み取りが可能な形で電子命令又は情報を記憶又は送信するのに適したあらゆるタイプの有形機械可読媒体を含む。
【0085】
設計は、作成からシミュレーション、製造までの様々な段階を経ることができる。設計を表すデータは、多くの方法で設計を表すことができる。まず、シミュレーションにおいて有用なように、ハードウェアは、ハードウェア記述言語又は別の機能記述言語を用いて表すことができる。また、設計過程のいくつかの段階では、ロジック及び/又はトランジスタゲートを含む回路レベルモデルを生産することができる。さらに、ハードウェアモデルでは、ほとんどの設計が何らかの段階で様々な装置の物理的配置を表すデータレベルに達する。従来の半導体製造技術を使用する場合、ハードウェアモデルを表すデータは、集積回路を生産するために使用されるマスクの異なるマスク層における様々な特徴の有無を指定するデータとすることができる。あらゆる設計表現では、あらゆる形態の機械可読媒体にデータを記憶することができる。メモリ、又はディスクなどの磁気又は光学ストレージは、変調又はその他の方法で生成された光波又は電波を介して送信される情報を記憶してこのような情報を送信する機械可読媒体とすることができる。コード又は設計を指示又は搬送する電気搬送波が送信される際には、電気信号のコピー、バッファリング又は再送信が行われる範囲で新たなコピーが作成される。従って、通信プロバイダ又はネットワークプロバイダは、本発明の実施形態の技術を具体化する搬送波内に符号化された情報などの品目を有形機械可読媒体に少なくとも一時的に記憶することができる。
【0086】
本明細書で使用するモジュールは、ハードウェア、ソフトウェア及び/又はファームウェアのあらゆる組み合わせを意味する。一例として、モジュールは、マイクロコントローラによって実行されるように適合されたコードを記憶する非一時的媒体に関連するマイクロコントローラなどのハードウェアを含む。従って、1つの実施形態におけるモジュールについての言及は、非一時的媒体に保持すべきコードを認識及び/又は実行するように特別に構成されたハードウェアを意味する。さらに、別の実施形態におけるモジュールの使用は、マイクロコントローラによって所定の動作を実行するように実行されるよう特別に適合されたコードを含む非一時的媒体を意味する。推測できるように、さらに別の実施形態では、(この例における)モジュールという用語が、マイクロコントローラと非一時的媒体との組み合わせを意味することができる。多くの場合、別個のものとして示すモジュール境界は、一般に変化して潜在的に重なり合う。例えば、第1のモジュールと第2のモジュールは、何らかの独立したハードウェア、ソフトウェア又はファームウェアを潜在的に保ちながら、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせを共有することができる。1つの実施形態におけるロジックという用語の使用は、トランジスタ、レジスタなどのハードウェア、又はプログラマブルロジック装置などの他のハードウェアを含む。
【0087】
1つの実施形態における、「~するように構成される」という表現の使用は、装置、ハードウェア、ロジック又は要素を、指定又は決定されたタスクを実行するように配置、編集、製造、募集、インポート及び/又は設計することを意味する。この例では、動作していない装置又はその要素も、上記の指定されたタスクを実行するように設計、結合及び/又は相互接続されている場合、やはりその指定されたタスクを実行するように「構成される」。完全に例示的な例として、ロジックゲートは、動作中に0又は1を提供することができる。しかしながら、クロックにイネーブル信号を提供する「ように構成された」ロジックゲートは、1又は0を提供できる全ての潜在的なロジックゲートを含むわけではない。むしろ、このロジックゲートは、動作中に1又は0の出力がクロックを有効にする何らかの形で結合されたロジックゲートである。今一度言うが、「~するように構成される」という用語の使用は動作を必要とするものではなく、むしろ装置、ハードウェア及び/又は要素が動作時に特定のタスクを実行するように設計される、これらの潜伏状態に焦点を当てたものである。
【0088】
さらに、1つの実施形態における「~するための(to)」、「~することができる(capable of/to)」、及び/又は「~する(operable to)」という表現の使用は、特別な形で使用できるように設計された何らかの装置、ロジック、ハードウェア及び/又は要素を意味する。なお、上記と同様に、「~するための(to)」、「~することができる(capable of/to)」、及び/又は「~する(operable to)」という表現の使用は、装置、ロジック、ハードウェア及び/又は要素の、動作せずに指定された形で使用できるように設計される潜伏状態を意味する。
【0089】
本明細書で使用する値は、数字、状態、論理状態又は2進論理状態のうちのいずれかの既知の表現を含む。多くの場合、論理レベル又は論理値(logic values又はlogical values)の使用は、2進論理状態を単純に表す1及び0として示される。例えば、1は高論理レベルを示し、0は低論理レベルを示す。1つの実施形態におけるトランジスタ又はフラッシュセルなどの記憶素子は、単一の論理値又は複数の論理値を保持することができる。しかしながら、コンピュータシステムでは他の値の表現も使用されてきた。例えば、10進数の10は、1010という2進値及び16進文字Aとして表すこともできる。従って、値は、コンピュータシステム内に保持できる情報のあらゆる表現を含む。
【0090】
さらに、値又は値の一部によって状態を表すこともできる。一例として、論理1などの第1の値がデフォルト又は初期状態を表し、論理0などの第2の値が非デフォルト状態を表すことができる。また、1つの実施形態では、リセット及びセットという用語が、デフォルト値又はデフォルト状態、及び更新値又は更新状態をそれぞれ示す。例えば、デフォルト値は、潜在的に高論理値、すなわちリセットを含み、更新値は潜在的に低論理値、すなわちセットを含む。なお、あらゆる値の組み合わせを利用してあらゆる数の状態を表すことができる。
【0091】
上述した方法、ハードウェア、ソフトウェア、ファームウェア又はコードセットの実施形態は、機械アクセス可能媒体、機械可読媒体、コンピュータアクセス可能媒体又はコンピュータ可読媒体に記憶された、処理要素によって実行可能な命令又はコードを通じて実装することができる。非一時的機械アクセス可能/可読媒体は、コンピュータ又は電子システムなどの機械による読み取りが可能な形の情報を提供(すなわち、記憶及び/又は送信)するいずれかの機構を含む。例えば、非一時的機械アクセス可能媒体は、スタティックRAM(SRAM)又はダイナミックRAM(DRAM)などのランダムアクセスメモリ(RAM)、ROM、磁気又は光学記憶媒体、フラッシュメモリデバイス、電気記憶装置、光学記憶装置、音響記憶装置、非一時的媒体から情報を受け取ることができる、非一時的媒体とは区別すべき一時的(伝播)信号(例えば、搬送波、赤外線信号、デジタル信号)などから受け取った情報を保持する他の形態の記憶装置を含む。
【0092】
本発明の実施形態を実行するロジックをプログラムするために使用される命令は、DRAM、キャッシュ、フラッシュメモリ又はその他のストレージなどの、システムのメモリに記憶することができる。さらに、これらの命令は、ネットワークを介して又は他のコンピュータ可読媒体を用いて分散させることもできる。従って、機械可読媒体は、以下に限定されるわけではないが、フロッピーディスケット、光学ディスク、コンパクトディスク、リードオンリメモリ(CD-ROM)、及び磁気光学ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラム可能リードオンリメモリ(EPROM)、電気的消去可能プログラム可能リードオンリメモリ(EEPROM)、磁気又は光学カード、フラッシュメモリ、又は電気信号、光信号、音響信号又は他の形の伝播信号(例えば、搬送波、赤外線信号、デジタル信号など)を通じインターネットを介した情報の送信に使用される有形機械可読ストレージを含む機械(コンピュータなど)による読み取りが可能な形で情報を記憶又は送信するいずれかの機構を含むことができる。従って、コンピュータ可読媒体は、機械(例えば、コンピュータ)による読み取りが可能な形で電子命令又は情報を記憶又は送信するのに適したあらゆるタイプの有形機械可読媒体を含む。
【0093】
本明細書を通じて、「1つの実施形態」又は「ある実施形態」に対する言及は、これらの実施形態に関連して説明した特定の特徴、構造又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。従って、本明細書を通じて様々な箇所で見られる「1つの実施形態では」又は「ある実施形態では」という表現は、必ずしも全てが同じ実施形態について言及しているわけではない。さらに、これらの特定の特徴、構造又は特性を1又は2以上の実施形態においてあらゆる好適な形で組み合わせることもできる。
【0094】
上述した明細書では、特定の例示的な実施形態を参照しながら詳細な説明を行った。しかしながら、添付の特許請求の範囲に示す本発明の幅広い趣旨及び範囲から逸脱することなく、実施形態に様々な修正及び変更を行えることが明らかであろう。従って、明細書及び図面は、限定的な意味ではなく例示的な意味で捉えるべきである。さらに、上述した実施形態及びその他の例示的な言語の使用は、必ずしも同じ実施形態又は同じ例を示すものではなく、異なる実施形態及び別の実施形態を示すことも、潜在的に同じ実施形態を示すこともできる。
【0095】
詳細な説明の一部は、コンピュータメモリ内のデータビットにおける演算のアルゴリズム及び記号表現の観点から示したものである。これらのアルゴリズムによる記述及び表現は、データ処理における当業者が自らの研究内容を他の当業者に最も効果的に伝えるために使用する方法である。ここで言うアルゴリズムとは、一般に望ましい結果をもたらす首尾一貫した一連の動作であると考えられる。これらの動作は、物理量の物理的操作を必要とするものである。これらの量は、必ずというわけではないが、通常は、記憶、転送、合成、比較及び他の形の操作が可能な電気又は磁気信号の形態を取る。主に共通使用という理由で、時にはこれらの信号を、ビット、値、要素、記号、文字、用語、番号などと呼ぶことが便利であることが分かっている。本明細書で説明したブロックは、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせとすることができる。
【0096】
しかしながら、これらの及び同様の用語は、全て適当な物理量に関連付けられるべきものであり、またこれらの量に与えられた便利な表記に過ぎないことに留意されたい。上記の説明から明らかなように、特に別途述べていない限り、説明全体を通じて「定義する(defining)」、「受け取る(receiving)」、「決定する(determining)」、「発行する(issuing)」、「リンクする(linking)」、「関連付ける(associating)」、「取得する(obtaining)」、「認証する(authenticating)」、「禁止する(prohibiting)」、「実行する(executing)」、「要求する(requesting)」又は「通信する(communicating)」などの用語を利用した説明は、コンピュータシステムのレジスタ及びメモリ内の物理(例えば、電子)量として表されるデータを操作し、コンピュータシステムのメモリ、レジスタ、又はその他のこのような情報記憶装置、送信又は表示装置内の物理量として同様に表される他のデータに変形させるコンピュータシステム又は同様の電子コンピュータ装置の動作及び処理を意味すると理解されたい。
【0097】
本明細書で使用した「例」又は「例示的な」という単語は、例、事例又は例示としての役割を果たすことを意味する。本明細書において「例」又は「例示的なもの」として説明するあらゆる態様又は設計は、必ずしも他の態様又は設計よりも好ましいもの又は有利なものとして解釈すべきではない。むしろ、「例」又は「例示的な」という単語の使用は、本概念を具体的に示すことを意図するものである。本出願で使用する「又は(or)」という用語は、排他的「or」ではなく包含的「or」を意味するように意図される。すなわち、別途明示していない限り、又は文脈から明らかでない限り、「XはA又はBを含む」という表現は、自然な包含的置換のいずれかを意味するように意図される。すなわち、XがAを含む場合、XがBを含む場合、或いはXがAとBの両方を含む場合、「XはA又はBを含む」は、これらの事例のいずれの下でも満たされる。また、本明細書及び添付の特許請求の範囲で使用する「a」及び「an」という冠詞は、単数形を対象にしていることを別途明示していない限り、又は文脈から明らかでない限り、一般に「1又は2以上」を意味すると解釈すべきである。さらに、全体を通じて、「ある実施形態」又は「1つの実施形態」或いは「ある実装」又は「1つの実装」という用語は、同じ実施形態又は実装を意味するものとして説明していない限り、そのように意図するものではない。また、本明細書で使用する「第1の」、「第2の」、「第3の」、「第4の」などの用語は、異なる要素同士を区別するラベルとして意図されており、必ずしもこれらの数字指定に従う順序を意味するとは限らない場合もある。
【0098】
(実施形態1-1)
サーバであって、
少なくとも1つの処理装置と、
メディア番組に関連する複数のフレームフィンガープリントを有するデータベースを記憶するとともに命令を記憶するコンピュータ可読記憶媒体と、
を備え、前記複数のフレームフィンガープリントのそれぞれは、対応するタイムスタンプを備え、
前記少なくとも1つの処理装置は、前記命令を実行して、
メディア装置から、一連のフレームを含む、消費されているコンテンツのクエリフィンガープリントを受け取るステップを実行し、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記データベースの検索を実行して、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む2次元データ構造における一連の時間ベースの結果を生成するステップと、
前記一連の時間ベースの結果に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行し、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とするサーバ。
(実施形態1-2)
前記少なくとも1つの処理装置は、前記消費されているメディア番組の決定に応答して、
前記メディア番組の識別を広告サーバに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告サーバから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
をさらに実行する、
実施形態1-1に記載のサーバ。
(実施形態1-3)
前記少なくとも1つの処理装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントの前記フレームのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
実施形態1-1に記載のサーバ。
(実施形態1-4)
前記2次元データ構造は、前記複数のフレームフィンガープリントからの一致するフレームフィンガープリントのタイムスタンプに対してマッピングされた順に採取された、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを含む、
実施形態1-1に記載のサーバ。
(実施形態1-5)
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態1-1に記載のサーバ。
(実施形態1-6)
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態1-1に記載のサーバ。
(実施形態1-7)
前記タイムスタンプは、前記クエリフィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含む、
実施形態1-1に記載のサーバ。
(実施形態1-8)
前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
実施形態1-7に記載のサーバ。
(実施形態1-9)
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
実施形態1-1に記載のサーバ。
(実施形態1-10)
メモリ内のデータベースにおいて、メディア番組に対応する、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントにコンピュータ装置を用いてアクセスするステップと、
順序化された一連のフレームを含む、消費されているコンテンツのクエリフィンガープリントをメディア装置から受け取るステップと、
を含み、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記コンピュータ装置を用いて前記データベースにクエリを行って、前記クエリフィンガープリントの前記順序化された一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記コンピュータ装置を用いて前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
前記メディア番組の識別を広告サーバに送信することにより、前記メディア番組を消費している間に前記メディア装置に追加コンテンツをターゲッティングするステップと、
を含み、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とする方法。
(実施形態1-11)
前記広告サーバから前記メディア番組の主題に文脈的に関連する追加コンテンツを受け取るステップと、
前記メディア番組へのオーバレイとして、又はコマーシャル中に視聴されるように、前記追加コンテンツを配信するステップと、
をさらに含む実施形態1-10に記載の方法。
(実施形態1-12)
前記コンピュータ装置は、誤検出による一致を排除するために、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントの前記フレームのいずれかに最も一致する所定数の前記フレームフィンガープリントをさらに選択する、
実施形態1-10に記載の方法。
(実施形態1-13)
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成する、
実施形態1-10に記載の方法。
(実施形態1-14)
前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態1-13に記載の方法。
(実施形態1-15)
前記パターン認識アルゴリズムは、前記コンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態1-13に記載の方法。
(実施形態1-16)
前記タイムスタンプは、前記クエリフィンガープリント及び前記複数のフレームフィンガープリントのそれぞれのフレームに対応するフレーム番号を含み、前記タイムスタンプは、所定の間隔の一定数のフレームにおいて採取される、
実施形態1-10に記載の方法。
(実施形態1-17)
前記タイムスタンプは、それぞれのメディア番組の先頭からの時間ベースの位置を含む、
実施形態1-10に記載の方法。
(実施形態1-18)
視聴されているコンテンツのフィンガープリントに関連するメディア番組を決定するためのデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、前記命令は、少なくとも1つの処理装置によって、
メディア番組に対応する、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントを、コンピュータ装置を用いてメモリ内のデータベースに記憶するステップと、
消費されているコンテンツの、一連のフレームを含むクエリフィンガープリントをメディア装置から受け取るステップと、
を実行するように実行可能であり、
前記クエリフィンガープリントの前記フレームが対応するタイムスタンプを備え、
更に、
前記データベースにクエリを行って、前記クエリフィンガープリントの前記一連のフレームのタイムスタンプを、前記複数のフレームフィンガープリントからの最も一致するフレームフィンガープリントのタイムスタンプにマッピングすることによって得られる、一連の点を含む時間ベースの結果を生成するステップと、
前記一連の点に対してパターン認識アルゴリズムを実行して、前記消費されているコンテンツに対応するメディア番組を決定するステップと、
を実行するように実行可能であり、
前記パターン認識アルゴリズムは、前記一連の点から形成される線の傾きを検出し、この一連の点から形成される線の傾きに基づき前記コンテンツの再生速度を識別し、更に、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出するように実行される、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
(実施形態1-19)
前記命令は、前記少なくとも1つの処理装置によって、
前記メディア番組の識別を広告ターゲッタに送信するステップと、
前記メディア番組の主題に文脈的に関連する広告を前記広告ターゲッタから受け取るステップと、
前記広告を前記メディア装置に配信して、前記メディア番組にオーバレイとして又はコマーシャル中に表示されるようにするステップと、
を実行するようにさらに実行可能である、
実施形態1-18に記載の非一時的コンピュータ可読記憶媒体。
(実施形態1-20)
前記一連の点は、前記メディア番組に対応する前記クエリからの実質的に連続するヒットの線を形成し、前記パターン認識アルゴリズムは、あらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態1-18に記載の非一時的コンピュータ可読記憶媒体。
(実施形態2-1)
システムであって、
少なくとも1つの処理装置と、
メディア番組に関連し、それぞれが対応するタイムスタンプを備える複数のフレームフィンガープリントを記憶するコンピュータ可読記憶媒体と、
前記コンピュータ可読記憶媒体に記憶され、動作を実行するように前記少なくとも1つの処理装置により実行される命令と、
を備え、
前記動作は、
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、前記複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とするシステム。
(実施形態2-2)
前記動作は、前記提供されているメディアコンテンツの識別に応答して、
前記メディアコンテンツの識別を広告サーバに送信することと、
前記広告サーバから差し替え広告を受け取るステップと、
前記メディアクライアントを、前記差し替え広告を差し替えコンテンツとしてコマーシャル中に提供させるようにすることと、
をさらに含む、
実施形態2-1に記載のシステム。
(実施形態2-3)
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
実施形態2-1に記載のシステム。
(実施形態2-4)
前記動作は、前記メディアクライアントによって実行される、
実施形態2-1に記載のシステム。
(実施形態2-5)
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態2-1に記載のシステム。
(実施形態2-6)
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態2-1に記載のシステム。
(実施形態2-7)
前記動作は、検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
実施形態2-1に記載のシステム。
(実施形態2-8)
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とする方法。
(実施形態2-9)
前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
実施形態2-8に記載の方法。
(実施形態2-10)
前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
実施形態2-8に記載の方法。
(実施形態2-11)
前記方法は、前記メディアクライアントによって実行される、
実施形態2-8に記載の方法。
(実施形態2-12)
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態2-8に記載の方法。
(実施形態2-13)
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態2-8に記載の方法。
(実施形態2-14)
検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
実施形態2-8に記載の方法。
(実施形態2-15)
動作を実行する少なくとも1つの処理装置によって実行可能なデータ及び命令を含む非一時的コンピュータ可読記憶媒体であって、
前記動作は、
(1)メディアクライアントにより提供され且つ各々のクエリフィンガープリントタイムスタンプを有するコンテンツを表す各々のクエリフィンガープリントと、(2)各々のフィンガープリントタイムスタンプを有する、複数のフレームフィンガープリントにおける各々のフレームフィンガープリントと、の間の各々における一致を検出するように、前記複数のフレームフィンガープリントの検索を実行することと、
各々が前記検出された一致の各々の一つに対応し、且つ、前記検出された一致の各々における前記各々のフレームフィンガープリントの前記フィンガープリントタイムスタンプに各々一致すると検出された、前記各々のクエリフィンガープリントの前記各々のクエリフィンガープリントタイムスタンプをマッピングした、一連の点を含む2次元データ構造における一連の時間ベースの結果を、前記検出された一致に基づき生成することと、
前記一連の点により形成される線を検出し、提供されているメディアコンテンツの識別を促進するように、前記一連の時間ベースの結果に対してパターン認識アルゴリズムを適用することと、
コマーシャル中に提供される、前記メディアクライアントのための差し替え広告コンテンツの取得を促進するように、前記メディアコンテンツの識別を広告サーバに送信することと、
前記一連の点により形成される前記検出された線の傾きを決定し、この一連の点により形成される線の傾きに基づき前記メディアコンテンツの再生速度を識別し、経時的な前記線の傾きの変化に基づき前記再生速度の変化を検出することと、
を含む、
ことを特徴とする非一時的コンピュータ可読記憶媒体。
(実施形態2-16)
前記動作は、前記コマーシャル中に提供される、前記メディアクライアントのための前記差し替えコンテンツを、広告サーバから受け取ることをさらに含む、
実施形態2-15に記載の非一時的コンピュータ可読記憶媒体。
(実施形態2-17)
前記動作は、前記複数のフレームフィンガープリントから、前記クエリフィンガープリントのいずれかに最も一致する所定数の前記フレームフィンガープリントを選択することをさらに含み、
前記所定数のフレームフィンガープリントは、誤検出による一致の排除を支援するために選ばれている、
実施形態2-15に記載の非一時的コンピュータ可読記憶媒体。
(実施形態2-18)
前記パターン認識アルゴリズムは、一連の疎らな点からあらゆる傾きの線を検出するランダムサンプルコンセンサス(RANSAC)を含む、
実施形態2-15に記載の非一時的コンピュータ可読記憶媒体。
(実施形態2-19)
前記パターン認識アルゴリズムは、前記メディアコンテンツの再生速度が不変の場合の特定の傾きの線を決定する傾き検出アルゴリズムを含む、
実施形態2-15に記載の非一時的コンピュータ可読記憶媒体。
(実施形態2-20)
前記動作は、検出された前記線の傾きを基準として用いて、再生が一時停止されたことを判断することをさらに含む、
実施形態2-15に記載の非一時的コンピュータ可読記憶媒体。
【符号の説明】
【0099】
202 コンテンツプロバイダ
204 ACRエンジン
206 ルックアップサーバ
302 コンテンツフレーム
305 フィンガープリンタ
325 フィンガープリントシーケンスマッチャー
327 フレームフィンガープリント