(57)【要約】      （修正有）【課題】メディアデバイスにおけるチャンネル変更を検出すること。【解決手段】コンテンツの順序付けられた一連のフレームを含む問い合わせフィンガープリントをメディアデバイスから受信し、それぞれのフレームフィンガープリントと順序付けられた一連のフレームの対応するフレームとの間の距離を判定することによって、問い合わせフィンガープリントをフレームフィンガープリントとマッチングする。マッチングは、2分木構造の葉ノードを横断して時系列的にそれぞれの距離を2分木構造に投入し、ルートノードの値を記すことによって実行され得る。また、2分木構造の部分木を走査し、部分木の第1のまたは第2のノードにおいて低い値(またはゼロ)を見つけることによってメディアデバイスにおけるチャンネル変更を検出し、このチャンネル変更は、コンテンツにメディアのターゲットを定める際に有用である。【選択図】図５
2019179557.tif 000002
【特許請求の範囲】
【請求項１】
命令、および複数のチャンネルにストリーミングされているメディアプログラムに対応付けられている複数のフレームフィンガープリントを有するデータベースを記憶するコンピュータ可読ストレージ媒体と、
少なくとも1つの処理デバイスであって、
消費されているコンテンツの問い合わせフィンガープリントをメディアデバイスから受信することであって、前記問い合わせフィンガープリントが、順序付けられた一連のフレームを含む、受信することと、
前記問い合わせフィンガープリントと、前記データベースに記憶された前記複数のフレームフィンガープリントとを、それぞれの前記複数のフレームフィンガープリントと前記順序付けられた一連のフレームのフレームフィンガープリントとの間の距離を判定することによって、マッチングすることであって、マッチングすることが、2分木構造にそれぞれの距離を投入することを含む、マッチングすることと、
前記2分木構造を下に向かって走査するときにルートノードから閾値の数の子ノード以内にゼロ値を見つけることに応じて第1のチャンネルから第2のチャンネルへのチャンネル変更を検出することと、
前記問い合わせフィンガープリントの前記順序付けられた一連のフレームの終わりのフレームに一致するフレームを有するコンテンツをストリーミングするチャンネルを特定することによって前記第2のチャンネルが何であるかを決定することと
を行うために前記命令を実行する、少なくとも1つの処理デバイスと
を含むシステム。
【請求項２】
前記チャンネル変更を検出するために、前記処理デバイスが、前記ルートノードの下に位置付けられた右部分木または左部分木の第1のノードにおいて前記ゼロ値を見つける請求項1に記載のシステム。
【請求項３】
前記チャンネル変更を検出するために、前記処理デバイスが、前記ルートノードの下に位置付けられた右部分木または左部分木の第2のノードにおいて前記ゼロ値を見つける請求項1に記載のシステム。
【請求項４】
前記2分木構造にそれぞれの距離を投入するために、前記少なくとも1つの処理デバイスが、さらに、
1つの側から反対側に向かって時系列的に前記それぞれの距離の値を前記2分木構造の葉ノードに投入し、
親ノードに接続された子ノードの値を足すことによって導出された値を前記親ノードに投入する請求項1に記載のシステム。
【請求項５】
前記少なくとも1つの処理デバイスが、さらに、広告(「アド」)ターゲッタが前記第2のチャンネルにストリーミングされるコンテンツにターゲットを定めるメディアを調整し得るように、前記チャンネル変更を検出することに応じて、見られている前記第2のチャンネルが何であるかを前記アドターゲッタに知らせる請求項1に記載のシステム。
【請求項６】
前記第2のチャンネルにストリーミングされる前記コンテンツにターゲットを定めるメディアを調整することが、前記第2のチャンネルにストリーミングされる広告の上を覆うために、または前記第2のチャンネルにストリーミングされる前記広告を置き換えるために、オーバーレイまたは差し替え広告を更新することを含む請求項5に記載のシステム。
【請求項７】
前記アドターゲッタが、さらに、
前記チャンネル変更および前記第2のチャンネルが何であるかの通知をネットワークを介して配置されたアドサーバに送信し、
前記第2のチャンネルのターゲットのコマーシャルスロットへの差し替え広告またはオ
ーバーレイコンテンツを前記アドサーバから受信することである請求項5に記載のシステ
ム。
【請求項８】
消費されているコンテンツの問い合わせフィンガープリントをメディアデバイスから受信するステップであって、前記問い合わせフィンガープリントが、順序付けられた一連のフレームを含む、受信するステップと、
少なくとも1つの処理デバイスを使用して、前記問い合わせフィンガープリントと、メモリ内のデータベースに記憶された複数のフレームフィンガープリントとを、それぞれの複数のフレームフィンガープリントと前記順序付けられた一連のフレームの対応するフレームとの間の距離を判定することによって、マッチングするステップであって、
2分木構造の1つの側から反対側に向かって時系列的にそれぞれの距離の値を前記2分木構造の葉ノードに投入するステップと、
前記2分木構造の親ノードに接続された子ノードの値を足すことによって導出された値を前記親ノードに投入するステップと、
前記2分木構造のルートノードにおいて予め設定された最大の閾値以下の値を、一致を示すものとして検出するステップと
を含む、マッチングするステップと、
コンテンツマネージャ論理が、一致する問い合わせフィンガープリントに対応するチャンネルにストリーミングされるコンテンツにメディアのターゲットを定め得るように、前記コンテンツマネージャ論理に前記チャンネルを知らせるステップと
を含む方法。
【請求項９】
前記予め設定された最大の閾値が、ゼロであり、前記問い合わせフィンガープリントの前記順序付けられた一連のフレームの終わりのフレームに一致するフレームを有するコンテンツをストリーミングするチャンネルを特定することによって前記第2のチャンネルが何であるかを決定するステップをさらに含む請求項8に記載の方法。
【請求項１０】
決定されたチャンネルが、第1のチャンネルであり、前記方法が、
前記2分木構造を下に向かって走査するときに前記ルートノードから閾値の数の子ノード以内に低い値を見つけることに応じて前記第1のチャンネルから第2のチャンネルへのチャンネル変更を検出するステップであって、前記低い値が、前記予め設定された最大の閾値以下である、検出するステップと、
前記第2のチャンネルへの前記チャンネル変更を前記コンテンツマネージャ論理に知らせるステップと
をさらに含む請求項8に記載の方法。
【請求項１１】
前記予め設定された最大の閾値が、ゼロである請求項10に記載の方法。
【請求項１２】
前記チャンネル変更を検出するステップが、前記ルートノードの下に位置付けられた右部分木または左部分木の第1のノードにおいて前記低い値を見つけることを含む請求項10に記載の方法。
【請求項１３】
前記チャンネル変更を検出するステップが、前記ルートノードの下に位置付けられた右部分木または左部分木の第2のノードにおいて前記低い値を見つけることを含む請求項10に記載の方法。
【請求項１４】
前記第2のチャンネルの通知をネットワークを介して配置されたアドサーバに送信するステップと、
前記第2のチャンネルのターゲットのコマーシャルスロットへの差し替え広告またはオーバーレイコンテンツを前記アドサーバから受信するステップと
をさらに含む請求項10に記載の方法。
【請求項１５】
命令、および複数のチャンネルにストリーミングされているメディアプログラムに関連する複数のフレームフィンガープリントを有するデータベースを記憶するコンピュータ可読ストレージ媒体と、
少なくとも1つの処理デバイスであって、
それぞれのフレームフィンガープリントと順序付けられた一連のフレームの対応するフレームとの間の距離を判定することによって、問い合わせフィンガープリントを、前記データベースに記憶された複数のフレームフィンガープリントとマッチングすることであって、
2分木構造の1つの側から反対側に向かって時系列的にそれぞれの距離の値を前記2分木構造の葉ノードに投入することと、
前記2分木構造の親ノードに接続された子ノードの値を足すことによって導出された値を前記親ノードに投入することと、
前記2分木構造のルートノードにおいて予め設定された最大の閾値以下の値を、一致を示すものとして検出することと
を含む、マッチングすることと、
コンテンツマネージャ論理が、一致する問い合わせフィンガープリントに対応するチャンネルにストリーミングされるコンテンツにメディアのターゲットを定め得るように、前記コンテンツマネージャ論理に前記チャンネルを知らせることと
を行うために前記命令を実行する、少なくとも1つの処理デバイスと
を含むサーバ。
【請求項１６】
決定されたチャンネルが、第1のチャンネルであり、前記少なくとも1つの処理デバイスが、さらに、
前記2分木構造を下に向かって走査するときに前記ルートノードから閾値の数の子ノード以内に低い値を見つけることに応じて前記第1のチャンネルから第2のチャンネルへのチャンネル変更を検出することであって、前記低い値が、前記予め設定された最大の閾値以下である、検出することと、
前記問い合わせフィンガープリントの前記順序付けられた一連のフレームの終わりのフレームに一致するフレームを有するコンテンツをストリーミングするチャンネルを特定することによって前記第2のチャンネルが何であるかを決定することと、
前記チャンネル変更および前記第2のチャンネルが何であるかを前記コンテンツマネージャ論理に知らせることと
を行う請求項15に記載のサーバ。
【請求項１７】
前記予め設定された最大の閾値が、ゼロである請求項16に記載のサーバ。
【請求項１８】
前記チャンネル変更を検出することが、前記ルートノードの下に位置付けられた右部分木または左部分木の第1のノードにおいてゼロ値を見つけることを含む請求項17に記載のサーバ。
【請求項１９】
前記チャンネル変更を検出することが、前記ルートノードの下に位置付けられた右部分木または左部分木の第2のノードにおいてゼロ値を見つけることを含む請求項17に記載のサーバ。
【請求項２０】
前記少なくとも1つの処理デバイスが、さらに、
前記第2のチャンネルの通知をネットワークを介して配置されたアドサーバに送信し、  前記第2のチャンネルのターゲットのコマーシャルスロットへの差し替え広告またはオーバーレイコンテンツを前記アドサーバから受信する請求項16に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動コンテンツ認識のフィンガープリントマッチングにおけるチャンネル変更の検出に関する。
【背景技術】
【０００２】
スマートテレビ(TV)などのメディア消費デバイスは、放送デジタルコンテンツにアクセスし、(インターネットなどの)データネットワークからストリーミングメディアなどのデータを受信し得る。ストリーミングメディアは、映画またはニュースなどのメディアコンテンツが要求に応じて電話回線、ケーブル、インターネットなどを介してエンドユーザに提供され得るサービスを指す。たとえば、ユーザは、それらのユーザの住居を離れる必要なしに映画を見る可能性がある。また、ユーザは、学校または教育施設に物理的に行く必要なしにビデオ講義などの様々な種類の教育コンテンツにアクセスする可能性がある。
【０００３】
メディア消費デバイスの数が増え続けるにつれて、ビデオコンテンツの生成および配信が同様に増える可能性がある。ストリーミングメディアにアクセスするための(スマートフォン、タブレット、およびスマートテレビなどの)メディア消費デバイスの使用の増加によって、(ローカル放送局、マルチチャンネルネットワーク、およびその他のコンテンツの所有者/配信者などの)コンテンツまたはネットワークプロバイダは、ストリーミングメディア(たとえば、メディアプログラム)を消費している視聴者に文脈的に関連する素材を配信する可能性がある。たとえば、ローカル放送局は、ストリーミングメディアとともに文脈的に関連する広告およびインタラクティブコンテンツを含める可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、以下で与えられる詳細な説明および本開示の様々な実施形態の添付の図面からより完全に理解されるであろう。しかし、図面は、本開示を特定の実施形態に限定すると受け取られるべきでなく、説明および理解のためのものであるに過ぎない。
【図面の簡単な説明】
【０００５】
【図１】一実施形態によるコンテンツ配信ネットワークのシステム図である。
【図２】一実施形態によるクライアントデバイスにオーバーレイコンテンツを提供するためのコンテンツマネージャを示す図である。
【図３】図2のコンテンツマネージャのためにメディアコンテンツにフィンガープリントを付ける(fingerprint)ために使用される自動コンテンツ認識(ACR)エンジンのシステム図である。
【図４】一実施形態による、対応するテレビプログラムを特定するために入力(または問い合わせ)フィンガープリントの一連のフレームをマッチングする自動コンテンツ認識(ACR)の方法の流れ図である。
【図５】64フレーム問い合わせフィンガープリント(query fingerprint)の途中のメディアデバイスのチャンネル変更を示すデータを投入された2分木構造の例示的な図である。
【図６】64フレーム問い合わせフィンガープリントに12フレームが入った後のチャンネル変更を示すデータを投入された2分木構造の例示的な図である。
【図７】64フレーム問い合わせフィンガープリントの終わりから16フレームでのチャンネル変更を示すデータを投入された2分木構造の例示的な図である。
【図８】フィンガープリントをマッチングし、メディアデバイスのチャンネル変更を検出するために2分木構造を使用するACRの方法の流れ図である。
【図９】本明細書において検討される方法のうちのいずれか1つまたは複数をマシンに実行させるための1組の命令が実行され得るコンピュータシステムの例示的な形態のマシンの概略図である。
【発明を実施するための形態】
【０００６】
テレビ(TV)またはインターネット番組放送などのメディアコンテンツ放送またはストリーミングは、製品およびサービスを広告するか、視聴者に情報を提供するか、またはこれらの任意の組合せを行うための魅力的な場になり得る。したがって、放送局は、個々の視聴者がどのプログラムをいつ見ているかを、それらのプログラムの主題が広告のおよびその他の有用な、場合によっては非商業的な情報のターゲットを視聴者に正確に定めるために使用できるようにするために知りたい。非商業的なとは、たとえば、ニュースのお知らせ、告知、または教育の情報を含む可能性がある。したがって、ユーザが見ているかまたは見ようとしているプログラムを判定し、そのようなターゲットを定める行為で使用するためにプログラム情報の識別情報を広告(「アド」)ターゲッタ(targeter)またはサーバに送信することが有利である。そのようなターゲットを定める行為をさらに進める際、チャンネル変更のすぐ後に続く可能性があるターゲットを定める機会を逃さないために、チャンネル変更を迅速に検出することが有利である。
【０００７】
開示されるシステムおよび方法は、ユーザによって消費されているコンテンツの順序付けられた一連のフレームを含む問い合わせフィンガープリントをメディアデバイスから受信する。システムおよび方法は、それぞれのフレームフィンガープリント(frame fingerprint)と順序付けられた一連のフレームの対応するフレームとの間の距離を判定することによって、問い合わせフィンガープリントを、複数のテレビチャンネルにストリーミングされるプログラムの個々のフレームに関してシステムによって記憶されるフレームフィンガープリントとマッチングする。距離は、たとえば、2つのフレームが互いにどれだけ異なるか、または2つのそれぞれのフレームがストリーミングされているチャンネルの間の違いを示す数値を含む可能性がある。別の実施形態において、距離は、2つのフィンガープリントの間の各フレームの対の絶対的な距離を合計することによって導出される。
【０００８】
問い合わせフィンガープリントを、知られているプログラムまたはチャンネルからのフィンガープリントとマッチングすることは、2分木構造の葉ノードを横断して時系列的に(それぞれのフレームの間で)それぞれの距離を2分木構造に投入し、それから、ルートノードの値を記すことによって実行され得る。値が予め設定された最大の閾値未満であるとき、一致するものがある。一例において、最大の閾値は、たとえば、非常に小さな差および統計的に近い一致を示す小さな数またはゼロである。
【０００９】
2分木構造にデータを投入することは、2分木構造の葉ノード(または第1の子)を左から右に向かって(または右から左に向かって)それぞれのフレームフィンガープリントと順序付けられた一連のフレームとの間のそれぞれの距離を投入することによって行われ得る。それから、さらに詳細に述べられるように、2分木構造がルートノードに向かって上がりながらデータを投入されるときに、親がそれ自体の2つの子の値の和または加算を取る。
【００１０】
場合によっては、テレビチャンネルが、たとえば、第1のチャンネルから第2のチャンネルへの変更の遷移中に、問い合わせフィンガープリントの順序付けられた一連のフレームの途中で変更される可能性がある。これは、問い合わせフィンガープリントの順序付けられた一連のフレームの後半部分が元のコンテンツのフレームフィンガープリントと実際に一致する可能性があるが、ルートノードにおいて中間値を生じ、したがって、不一致を示す可能性がある。システムおよび方法は、2分木構造の右(または左)部分木を走査し、部分木の第1のまたは第2のノードにおいて閾値の低い値(またはゼロ)を見つけることによってメディアデバイスにおけるチャンネル変更を検出し得る。そのとき、順序付けられた一連のフレームの終わりで問い合わせフィンガープリントの順序付けられた一連のフレームに一致するチャンネルストリーミングメディアコンテンツは、新しい(または第2の)チャンネルと考えられる可能性がある。チャンネル変更を検出することは、できる限り迅速に、チャンネル変更にもかかわらず連続的に、メディアのターゲットを、メディアデバイスにストリーミングされているコンテンツに定める際に有用である可能性がある。
【００１１】
システムおよび方法は、広告サーバにチャンネルの識別情報を送信し、そのチャンネルで再生されているメディアプログラムの主題に文脈的に関連する広告を広告サーバから受信し得る。それから、システムおよび方法は、メディアプログラムの中断(たとえば、特定のスロットまたは位置)の間にオーバーレイまたは差し替え広告(replacement advertisement)(もしくは情報のセグメント)として表示するためにメディアデバイスに広告(またはその他のコンテンツ)を配信し得る。
【００１２】
視聴者にメディアコンテンツを提供するために、個人または組織が、視聴者にインターネットを介してメディアコンテンツを配信することによるなどして、視聴者にメディアコンテンツをストリーミングする可能性がある。個人または組織によって使用されるメディアコンテンツは、1つまたは複数のライブ放送メディアフィードから獲得された(ビデオデータなどの)メディアコンテンツである可能性がある。たとえば、メディアコンテンツプロバイダは、インターネットを介してユーザにリニアメディアチャンネル(たとえば、ライブメディアフィードソースから視聴者に提供されるメディア)を提供する可能性がある。
【００１３】
用語「コンテンツ」は、メディアまたはマルチメディアを指すために使用される可能性がある。用語「コンテンツ」は、メディア自体ではなくメディアの主題を意味する特定の用語である可能性もある。同様に、用語「メディア」および「メディア」を含む一部の複合語(たとえば、マルチメディア、ハイパーメディア)が、その代わりに、情報がエンドユーザ/視聴者に配信されるチャンネルではなくコンテンツを指している。メディアまたはメディアコンテンツは、ビデオ、フィルム(film)、テレビ番組、コマーシャル、ストリーミングビデオなど、テキスト、グラフィックス、アニメーション、静止画、インタラクティブ性コンテンツ形態などのグラフィカルな表現を含み得る。メディアの種類とよく呼ばれるコンテンツの種類の例は、「フィルム」と呼ばれる「映画」である。
【００１４】
一実施形態において、コンテンツオーバーレイシステムまたはコンテンツオーバーレイデバイスは、メディアコンテンツを、広告などの特定の、適時の、および/またはターゲットを定められたオーバーレイコンテンツと組み合わせることを可能にし得る。コンテンツオーバーレイシステムまたはコンテンツオーバーレイデバイスは、コンテンツオーバーレイ内の行為の呼びかけ(たとえば、コンテンツオーバーレイを関与させるための要請)に応答するように視聴者に求めることによってオーバーレイコンテンツプロバイダが視聴者と関わり合うことを可能にし得る。視聴者を行為の呼びかけに誘うことの1つの利点は、視聴者が追加的な情報を要求する、質問をする、入力を与える、広告されたサービスまたは製品のプロバイダに連絡するといったことのための帰りの経路(return path)またはフォローアップの経路(follow-up path)を提供することである可能性がある。視聴者を行為の呼びかけに誘うことの別の利点は、広告主が追加的な情報を提供する、さらに視聴者を関与させる、視聴者についての追加的な情報を収集する、広告された製品またはサービスについての視聴者の質問に答えるといったことのための帰りの経路またはフォローアップの経路を提供することである可能性がある。別の例において、コンテンツオーバーレイシステムまたはコンテンツオーバーレイデバイスは、視聴者がメディアプログラムのオーバーレイコンテンツを見るおよび/またはメディアプログラムのオーバーレイコンテンツとインタラクションすると、広告主がクロスプラットフォームリターゲティングキャンペーン(cross platform retargeting campaigns)を使用することを可能にし得る。
【００１５】
図1は、一例によるコンテンツ配信ネットワーク100のシステム図を示す。コンテンツ配信ネットワーク100において、コンテンツプロバイダ102は、ローカルプロバイダ106にコンテンツフィードを放送し得る。ローカルプロバイダ106は、ヘッドエンド104および自動コンテンツ認識(ACR)フィンガープリントサーバ105を含み得る。コンテンツプロバイダ102からのコンテンツフィードは、ローカルプロバイダ106のヘッドエンド104において受信され得る。ヘッドエンド104は、受信されたコンテンツフィードに基づいてローカルコンテンツフィードを生成し得る。たとえば、ヘッドエンド104は、国内のまたは国際的な放送局からプログラムおよび広告を有するネットワークチャンネルを受信するローカル系列放送局である可能性がある。
【００１６】
ヘッドエンド104は、ACRフィンガープリントサーバ105、無線(OTA)放送局108、および/または多チャンネルビデオプログラム配信事業者(MVPD:multichannel video programming distributor)110にローカルコンテンツフィードを伝達し得る。OTA放送局108および/またはMVPD110は、メディアデバイス115にローカルコンテンツフィードを伝達し得る。メディアデバイス115のいくつかの例は、クライアントデバイス118および120、クライアントデバイス118および120にプロバイダのコンテンツをストリーミングするセットトップボックス114、ならびにユーザが、たとえば、ワイヤレスでローカルコンテンツフィードをストリーミングし得るその他のデバイス116を含む。
【００１７】
一例において、OTA放送局108は、通常のローカルテレビまたはラジオチャンネルを使用してローカルコンテンツフィードを放送する可能性がある。この例において、クライアントデバイス118および120は、(TVまたはラジオアンテナなどの)アンテナを含み、ローカルコンテンツフィードを受信し得る。別の例において、(ケーブルまたは衛星放送局などの)MVPD110は、セットトップボックス114にローカルコンテンツフィードを伝達し得る。この例において、セットトップボックス114は、クライアントデバイス118および120のためにコンテンツフィードをフォーマットする可能性があり、クライアントデバイス118および120にフォーマットされたコンテンツフィードを伝達する可能性がある。クライアントデバイス118および120は、視聴者に対してローカルコンテンツを表示するためのテレビスクリーンまたはタッチスクリーンなどのディスプレイデバイスを含み得る。コンテンツ配信ネットワーク100の様々な構成要素は、クライアントデバイス118および120に統合されるまたは結合され得る。たとえば、スマートテレビは、アンテナ、セットトップボックス114、およびディスプレイデバイスを単一のユニットに含む可能性がある。
【００１８】
ACRフィンガープリントサーバ105は、ローカルコンテンツフィードを分析し、フィンガープリント情報(たとえば、フィンガープリント)を決定し得る。ACRフィンガープリントサーバ105は、フィンガープリントをACRシステム124および/または126に伝達し得る。ACRシステム124および126は、スマートTVの製造業者などのデバイスの製造業者によって選択された異なるACRシステムである可能性がある。一部の実施形態においては、以下で説明されるように、ACRシステム124は、ACRフィンガープリントシーケンスマッチャ(ACR fingerprint sequence matcher)125を含む。ACRフィンガープリントシーケンスマッチャ125は、フレームフィンガープリントを、対応するビデオフレームが生じる元のビデオコンテンツとマッチングし得る。ACRシステム126は、ACRフィンガープリントシーケンスマッチャ125を持つ可能性がありまたは持たない可能性がある。ACRフィンガープリントシーケンスマッチャ125に関する詳細は、以下で図3に関連して説明される。
【００１９】
ACRフィンガープリントサーバ105は、ローカルコンテンツフィードを分析し、ローカルコンテンツフィードからの順序付けられた一連のフレームを含み得るフィンガープリントを捕捉し得る。ACRフィンガープリントサーバ105は、フィンガープリントをACRシステム124および/または126に伝達し得る。ACRシステム124および126は、スマートTVの製造業者などのデバイスの製造業者によって選択された異なるACRシステムである可能性がある。一例において、ACRフィンガープリントサーバ105は、たとえば、異なるフィンガープリント付与アルゴリズムなどの異なる種類のフィンガープリント付与テクノロジーを含む異なるACRシステム124および126のためにフィンガープリントをフォーマットし得る。ACRシステム124および126は、クライアントデバイス118および120をそれぞれ含む異なるメディアデバイス115との通信接続を確立し得る。クライアントデバイス118および120は、フィンガープリント情報をACRシステム124および126にそれぞれ伝達し得る。ACRシステム124または126は、クライアントデバイス118および/または120からACRフィンガープリント情報を受信するとき、受信されたフィンガープリントをACRフィンガープリントサーバ105によって生成されたフィンガープリントとマッチングする可能性があり、一致が起こり、コンテンツが特定されたとき、ACRイベントをコンテンツマネージャ122に伝達する可能性がある。
【００２０】
別の例において、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におけるコンテンツチャンネルの変更などを含む可能性がある。
【００２１】
異なるACRシステム124および126からのイベント情報は、異なるフォーマットである可能性があり、コンテンツマネージャ122は、データをデータベース123に記憶する前にデータを共通のフォーマットに正規化する可能性がある。たとえば、コンテンツマネージャ122は、同じコンテンツを有するが異なってフォーマットされたデータなどの同様であるが同一ではないデータを含む異なるデータセットをACRシステム124および126から受信する可能性がある。コンテンツマネージャ122は、異なるデータセットを処理し、再フォーマットして、単一のデータモデルまたはフォーマット(たとえば、再フォーマットされたデータセット)を生成する可能性があり、再フォーマットされたデータセットは、コンテンツマネージャ122内のデータベース123に投入される可能性がある。
【００２２】
一実施形態においては、ACRシステム124および126からの異なるデータセットを正規化するために、コンテンツマネージャ122が、データセット内のデータをクレンジングまたはフィルタリングする可能性がある。たとえば、一部のデータセットは、コンテンツマネージャ122とは無関係である可能性があるフィールドまたはデータを含む可能性がある。この例において、コンテンツマネージャ122は、無関係なデータをクレンジングまたはフィルタリングする可能性がある(たとえば、データは、取り除かれるかまたは無視される可能性がある)。別の例において、一部のデータセットは、不完全なまたは不正確なデータまたはデータセットのインスタンスを含む可能性があり、コンテンツマネージャ122は、不完全なまたは不正確なデータまたはデータセットをクレンジングまたはフィルタリングする可能性がある。別の実施形態においては、ACRシステム124および126からの異なるデータセットを正規化するために、コンテンツマネージャ122が、データセットのフィールドをマッピングする可能性がある。たとえば、コンテンツマネージャ122がACRシステム124から第1のデータセットを受信し、ACRシステム126から第2のデータセットを受信するとき、第1のデータセットおよび第2のデータセットのデータフィールドの少なくとも一部は、第1のデータセットと第2のデータセットとの両方に共通である可能性がある。しかし、共通のデータフィールドは、第1のおよび第2のデータセット内で異なる場所に置かれる可能性がある。この例において、コンテンツマネージャ122は、第1のおよび第2のデータセットの異なるデータフィールドを正規化されたフィールドにマッピングし、データベース123内の同じデータフィールドの場所に同じデータフィールドを有する可能性がある。
【００２３】
別の実施形態においては、ACRシステム124および126からの異なるデータセットを正規化するために、コンテンツマネージャ122が、データセットからデータを導出する可能性がある。たとえば、ACRシステム124および/または126からのデータは、データベース内のデータフィールドを満たすために必要とされるフィールドのすべてを含むとは限らない可能性がある。しかし、コンテンツマネージャ122は、ACRシステム124および126からのデータセット内のその他のフィールドを使用してこれらのデータフィールドのためのデータを導出する可能性がある。
【００２４】
一例において、データベース123は、国内の州フィールド、指定市場エリア(DMA:designated market area)、ならびに群および/または市フィールドなどに関するデータフィールドを含む可能性があるが、ACRシステム124および126からのデータセットは、郵便集配区域改善計画(ZIP:zone improvement plan)コードのみを含む可能性がある。この例において、コンテンツマネージャ122は、ZIPコードを使用してデータベース内のフィールドのためのデータを導出する可能性がある。別の例において、データセットは、任意の地理的位置情報を含まない可能性があるが、ACRシステム124および126のインターネットプロトコル(IP)アドレスを含む可能性がある。この例において、コンテンツマネージャ122は、ジオIP(geo-IP)検索サービスを使用して州、DMA、群、市、およびZIPコード情報を導出する可能性がある。
【００２５】
別の例において、データベース123は、年齢フィールド、性別フィールド、世帯収入フィールドなどの人口統計フィールドを含む可能性がある。しかし、ACRシステム124および126からのデータセットは、人口統計フィールドまたは人口統計データを含まない可能性がある。この例において、ACRシステム124および126は、コンテンツマネージャ122にクライアントデバイス118および120のIPアドレスを提供する可能性がある。コンテンツマネージャ122は、IPアドレスを使用して、データベース内のデータフィールドに投入するための人口統計データを決定する可能性がある。
【００２６】
別の例において、ACRシステム124からの第1のデータセット内のフィールドが、山岳部夏時間(MDT:mountain daylight time)ゾーンなどのローカル時間帯の情報を含む可能性があり、ACRシステム126からの第2のデータセットが、協定世界時(UTC)ゾーンなどの別の時間帯からの情報を含む可能性がある。データベースは、すべてのデータをUTCを使用して記憶する可能性があり、コンテンツマネージャ122は、データベース123にデータを記憶する前にローカル時間をUTCに変換する可能性がある。
【００２７】
一実施形態において、コンテンツマネージャ122は、正規化されたデータを使用して、異なるACRテクノロジーベンダーおよびスマートTVまたはその他のインターネットに接続されたビデオデバイスにまたがってユーザの視聴行動についてのレポートまたはデータ(視聴データ)を生成する可能性がある。コンテンツマネージャ122およびメディアデバイス115は、メディアデバイス115とコンテンツマネージャ122との間でオーバーレイコンテンツなどの情報を伝達するための通信インターフェースを含む可能性がある。
【００２８】
一例において、通信インターフェースは、セルラーネットワークおよび/またはワイヤレスネットワークを使用して情報を伝達する可能性がある。一例において、通信ネットワークは、第3世代パートナーシッププロジェクト(3GPP)リリース8、9、10、11、もしくは12または米国電気電子学会(IEEE)802.16p、802.16n、802.16m-2011、802.16h-2010、802.16j-2009、802.16-2009である可能性があるセルラーネットワークである可能性がある。別の実施形態において、通信ネットワークは、IEEE 802.11-2012、IEEE 802.11ac、またはIEEE 802.11ad規格などの米国電気電子学会によって開発されたIEEE(登録商標)規格に従う可能性がある(Wi-Fiアライアンスによって開発されたWi-Fi(登録商標)テクノロジーを使用するネットワークなどの)ワイヤレスネットワークである可能性がある。別の実施形態において、通信ネットワークは、Bluetooth(登録商標) v1.0、Bluetooth(登録商標) v2.0、Bluetooth(登録商標) v3.0、またはBluetooth(登録商標) v4.0などのBluetooth(登録商標)スペシャルインタレストグループ(SIG)によって開発されたBluetooth(登録商標)接続である可能性がある。別の実施形態において、通信ネットワークは、IEEE 802.15.4-2003(Zigbee 2003)、IEEE 802.15.4-2006(Zigbee 2006)、IEEE 802.15.4-2007(Zigbee Pro)などのZigBeeアライアンスによって開発されたZigbee(登録商標)接続である可能性がある。
【００２９】
一例において、コンテンツマネージャ122は、OTA放送局108またはMVPD110から受信されたローカルコンテンツフィードの一部をオーバーレイコンテンツによって置き換えるようにメディアデバイス115に命じる可能性もある。別の例において、コンテンツマネージャ122は、ローカルコンテンツフィードの一部にオーバーレイコンテンツを被せるまたは重ね合わせるようにメディアデバイス115に命じる可能性がある。コンテンツマネージャ122は、複数のACRシステム124および126にまたがってACR情報を集約する可能性があり、異なるクライアントデバイス118および120にオーバーレイコンテンツを伝達する可能性があり、クライアントデバイス118および120は、異なるデバイスの製造業者からのものである可能性がある。
【００３０】
コンテンツマネージャ122は、広くメディアデバイス115にカテゴリー分けされるその他のデバイス116との通信接続を確立する可能性もある。一例において、その他のデバイス116は、クライアントデバイス118または120と通信し、オーバーレイコンテンツを表示するための追加的な画面(たとえば、第2の画面)を提供する可能性がある。たとえば、クライアントデバイス118および120は、OTA放送局108またはMVPD110からローカルコンテンツフィードを受信し、ローカルコンテンツフィードをユーザに対して表示する可能性がある。その他のデバイス116は、前の段落において検討されたように、ACRイベントが起きるときにACRイベント情報をACRシステム124および126に伝達する可能性もある。コンテンツマネージャ122は、ACRイベント情報を受信するとき、その他のデバイス116にオーバーレイコンテンツを伝達する可能性がある。
【００３１】
一例においては、その他のデバイス116がオーバーレイコンテンツを表示する一方で、クライアントデバイス118および120はローカルコンテンツフィードを表示し続ける可能性がある。別の例において、クライアントデバイス118および120ならびにその他のデバイス116は、両方とも、オーバーレイコンテンツを表示する可能性がある。別の例において、クライアントデバイス118および120ならびにその他のデバイス116は、オーバーレイコンテンツの一部およびローカルコンテンツフィードの一部を表示する可能性がある。別の例において、クライアントデバイス118および120ならびにその他のデバイス116は、異なるローカルコンテンツフィードおよび/またはオーバーレイコンテンツを表示する可能性がある。
【００３２】
一例において、クライアントデバイス118および120ならびに/またはその他のデバイス116は、オーバーレイコンテンツが受信されるときにオーバーレイコンテンツを表示する可能性がある。別の例において、クライアントデバイス118および120ならびに/またはその他のデバイス116は、閾値期間中、オーバーレイコンテンツの表示を遅らせる可能性がある。閾値期間は、予め定義された期間である可能性があり、またはコンテンツマネージャ122が、オーバーレイコンテンツの表示を遅らせるためにクライアントデバイス118および120ならびに/またはその他のデバイス116のための期間を選択する可能性がある。
【００３３】
図2は、一実施形態によるクライアントデバイス218および/または220などのメディアデバイス115にオーバーレイコンテンツを提供するためのコンテンツマネージャ222を示す。コンテンツプロバイダ202は、ネットワーク219を介してメディアデバイス115にメディアコンテンツをストリーミングする可能性があり、そのストリーミングは、メディアデバイス115へのメディアコンテンツのストリーミングの前にまたはメディアデバイス115へのメディアコンテンツのストリーミングと同時に、コンテンツマネージャ222によって傍受される可能性がある。コンテンツマネージャ222は、より詳細に説明されるように、メディアコンテンツの主題および/またはユーザの関心にターゲットを定めるために、広告がメディアコンテンツと共に(またはメディアコンテンツへのオーバーレイとして)提供されることを要求する広告の呼び出しを広告サーバ(または「アド」サーバ)230に送信することなどのために、アドサーバ230と通信する可能性もある。アドサーバ230は、メディアデバイス115に後で配信するためにコンテンツマネージャ222に広告もしくはその他のオーバーレイコンテンツを提供する第三者もしくは外部サーバである可能性があり、またはオーバーレイまたは差し替え広告として配信するためにメディアデバイス115にコンテンツを直接提供する可能性がある。
【００３４】
コンテンツマネージャ222は、ACRエンジン204、検索サーバ206、オーバーレイ決定エンジン210、オーバーレイコンテンツを記憶するためのオーバーレイデータベース211、およびアドターゲッタ212を含み得る。コンテンツプロバイダ202は、ACRエンジン204にメディアコンテンツをアップロードする可能性がある。
【００３５】
ACRエンジン204は、メディアコンテンツにフィンガープリントを付ける可能性がある。一例において、フィンガープリントは、フィードのあらゆるフレーム、フィードの1つおきのフレーム、一連のフレームなどにフィンガープリントを付けることによって生成され得る。たとえば、ACRエンジン204は、フレームの離散コサイン変換(DCT)を実行し、結果として得られる係数(たとえば、低周波数係数)のサブセットをフィンガープリントとして指定することによってフィードのフレームに関するフィンガープリントを生成する可能性がある。追加的にまたは代替的に、ACRエンジン204は、メディアデバイス115にストリーミングされているコンテンツの順序付けられた一連のフレームに対応するフィンガープリントのターゲットブロックを生成する(または特定する)可能性がある。さらに、検索サーバ206は、何であるかが知られている元のメディアプログラム(たとえば、元のコンテンツ)に関する、フィンガープリントデータベース207に記憶されたフレームフィンガープリントの一致するソースブロックを見つけ得る。
【００３６】
別のまたは関連する実施形態において、ACRエンジン204は、ACRイベント情報を分析して、どのイベントが起こった可能性があるか、たとえば、一連フレーム問い合わせフィンガープリント(sequence-of-frames query fingerprint)とACRシステム124または126に記憶された元のコンテンツのフレームフィンガープリントとの間のポジティブマッチを判定する可能性もある。ポジティブマッチがあるとき、ACRエンジン204は、ポジティブマッチが生じるコンテンツを特定するメディアコンテンツ識別子(ID)を含む可能性があるポジティブマッチインジケータを要求元のメディアデバイス115に送信する可能性がある。メディアデバイス115は、オーバーレイ要求をオーバーレイ決定エンジン210に送信し、メディアコンテンツのオーバーレイを要求し得る。一例において、オーバーレイ要求は、メディアコンテンツIDを含む可能性がある。別の例において、オーバーレイ要求は、オーバーレイ情報またはオーバーレイパラメータを含む可能性がある。
【００３７】
図2をさらに参照すると、ACRエンジン204は、ACRシステム124または126から受信されたACRイベントに対応するテレビプログラム(またはたとえばチャンネル)およびテレビプログラム内の位置を検索し、決定し得る検索サーバ206にフィンガープリントを伝達する可能性がある。フィードのセグメントの各フィンガープリントは、タイムスタンプに対応付けられる可能性がある。タイムスタンプは、ACRエンジン204によって受信されたとき、フィードのセグメントの個々のフレームに属する可能性がある。タイムスタンプは、任意の開始点からのフィード内のフレーム番号である可能性がある。検索サーバ206は、フィンガープリントをそれらのフィンガープリントのそれぞれのタイムスタンプに関連して(たとえば、フィンガープリントデータベース207に)記憶し、アドターゲッタ212およびオーバーレイ決定エンジン210がユーザが見ているフィードのメディアコンテンツ内でタイミングを取り、コンテンツのターゲットを定めるのを助け得る。
【００３８】
一実施形態において、ACRエンジン204は、様々なメディアデバイス115のACRクライアント215とインタラクションする。ACRクライアント215は、フィンガープリントをローカルでマッチングし、ユーザが異なるテレビプログラムを見るためおよびコンテンツマネージャ222にチャンネル変更をレポートするためにチャンネルを変えたか否かを確かめ得る。したがって、フィンガープリントのマッチングは、場合によってはメディアデバイス115のローカルで行われる可能性がある。
【００３９】
さらに、ACRクライアント215は、メディアデバイス115上で見られているテレビプログラムまたはチャンネルを確かめるように要求する、ターゲットブロックを含む、たとえば、問い合わせフィンガープリントの形態のユーザフィンガープリント情報を検索サーバ206に周期的、継続的、または半継続的に伝達する可能性がある。検索サーバ206は、問い合わせフィンガープリント(またはターゲットブロック)と、フィンガープリントデータベース207内のまたは検索サーバからネットワーク219をまたがったフィンガープリントのソースブロックとして記憶される可能性がある多数のフレームフィンガープリントとの間の一致があるときを判定し得る。問い合わせフィンガープリントは、順序付けられた一連のフレームである可能性があり、それらのフレームのそれぞれのフレームが、ストリーミングされるテレビプログラムまたはチャンネルに対応付けられるのに十分な一致を見つけるまで、フレームフィンガープリントの個々のフレームフィンガープリントとマッチングされる可能性がある。ポジティブマッチがあるとき、検索サーバ206は、ポジティブマッチインジケータをACRクライアント215に伝達し得る。ACRクライアント215は、オーバーレイ要求をオーバーレイ決定エンジン210に送信し、メディアコンテンツのオーバーレイを要求し得る。
【００４０】
一例において、オーバーレイ要求は、メディアコンテンツ識別子(ID)を含む可能性がある。別の例において、オーバーレイ要求は、オーバーレイ情報またはオーバーレイパラメータを含む可能性がある。一例において、オーバーレイ決定エンジン210は、コンテンツID、オーバーレイ情報、および/またはオーバーレイパラメータを使用してターゲットを定められたオーバーレイコンテンツを特定する可能性がある。別の例において、オーバーレイ決定エンジン210は、コンテンツID、オーバーレイ情報、および/またはオーバーレイパラメータを使用してオーバーレイフォーマットを特定する可能性がある。オーバーレイ決定エンジン210は、コンテンツID、オーバーレイ情報、および/またはオーバーレイパラメータをオーバーレイデータベース211と比較して、ターゲットを定められたオーバーレイコンテンツおよびオーバーレイフォーマットを特定する可能性がある。オーバーレイデータベースは、コンテンツプロバイダまたは広告主(たとえば、アドサーバ230)によって、新しいオーバーレイコンテンツおよびオーバーレイフォーマットを用いて周期的にまたは継続的に更新される可能性がある。オーバーレイコンテンツは、チャンネルのテレビプログラムのストリーミングされるメディアコンテンツのオーバーレイ位置に配信される前または配信された後に(オーバーレイテンプレート(overlay template)などの)オーバーレイフォーマットを投入する可能性がある。
【００４１】
アドターゲッタ212は、オーバーレイ決定エンジンによってメディアデバイス115に配信される広告およびその他のオーバーレイコンテンツとのユーザのインタラクションならびにそれらの広告およびその他のオーバーレイコンテンツに関する挙動を追跡し、分析し得る。アドターゲッタ212は、メディアデバイス毎にユーザプロファイル情報を受信し、ユーザの挙動の分析と合わせて、ユーザが関心のある主題を決定する可能性もある。ユーザまたはユーザのグループに関して収集されたこの情報およびデータは、通常見られるテレビプログラムおよびチャンネルに関連する好ましい視聴時間および典型的な視聴習慣にまで及ぶ可能性がある。そして、アドターゲッタ212は、オーバーレイ決定エンジン210がそれぞれのユーザに配信するためにどのオーバーレイコンテンツを選択すべきか、そのオーバーレイコンテンツをどのようにフォーマットすべきか、およびキャンペーン予算の最大の投資利益率を得るためにいつが配信するのに最良であるかを決定する際に使用し得る異なる関心のある主題および視聴習慣を、たとえば、パラメータの形態でオーバーレイ決定エンジン210に知らせる可能性がある。
【００４２】
オーバーレイ決定エンジン210がアドターゲッタ212の助けを借りてターゲットを定められたオーバーレイコンテンツを特定するとき、オーバーレイ決定エンジンは、ターゲットを定められたオーバーレイコンテンツをメディアデバイス115に返す可能性がある。一例において、オーバーレイ決定エンジン210は、ワイヤレス通信ネットワークを介するなどして、ターゲットを定められたオーバーレイコンテンツをメディアデバイス115に直接伝達する可能性がある。別の例において、オーバーレイ決定エンジン210は、ユニバーサルリソースロケータ(URL)によって、ターゲットを定められたオーバーレイコンテンツをメディアデバイス115に伝達する可能性がある。一例においては、複数のターゲットを定められたオーバーレイコンテンツがコンテンツID、オーバーレイ情報、および/またはオーバーレイパラメータと一致するとき、オーバーレイ決定エンジン210は、最も大きな数のパラメータまたはその他の情報を満たすターゲットを定められたコンテンツオーバーレイを選択する可能性がある。別の例においては、複数のターゲットを定められたオーバーレイコンテンツがコンテンツID、オーバーレイ情報、およびオーバーレイパラメータと一致するとき、オーバーレイ決定エンジン210は、パラメータおよびその他の情報を満たすオーバーレイコンテンツを無作為に選択する可能性がある。別の例においては、複数のターゲットを定められたオーバーレイコンテンツがコンテンツID、オーバーレイ情報、およびオーバーレイパラメータと一致するとき、オーバーレイ決定エンジン210は、コンテンツID、オーバーレイ情報、および/またはオーバーレイパラメータと一致する所定のオーバーレイコンテンツを選択する可能性がある。オーバーレイコンテンツは、動的コンテンツ(たとえば、周期的な間隔で更新またはリフレッシュされ得るコンテンツ)を投入される可能性がある。動的コンテンツは、ローカルデータベースまたは外部システムに記憶される可能性がある。
【００４３】
メディアデバイス115のACRクライアント215は、ACRフィンガープリント情報がユーザフィンガープリント情報と一致するときにコンテンツフィード上にオーバーレイコンテンツを重ね合わせる可能性がある。一例において、メディアデバイス115は、ハイパーテキストマークアップ言語(HTML)ブラウザ内でコンテンツフィード上にオーバーレイコンテンツを重ね合わせる可能性がある。別の例において、メディアデバイス115は、OTA放送局またはケーブル放送局からのコンテンツフィード上にオーバーレイコンテンツを重ね合わせる可能性がある。オーバーレイコンテンツがコンテンツフィード上に置かれるとき、オーバーレイコンテンツは、メディアデバイス115のディスプレイによってユーザに対して表示される可能性がある。一例において、オーバーレイコンテンツは、ユーザに対して表示され得る1つまたは複数の行動喚起オプション(call-to-action option)を含む可能性がある。この例において、ユーザは、フィードバック情報を生成するために、(TVのリモコン、キーボード、スマートフォン、またはタブレットなどの)入力デバイスを使用してオーバーレイコンテンツとインタラクションし得る。ACRクライアント215は、フィードバック情報をアドターゲッタ212に伝達する可能性がある。広告主などの別の個人が、フィードバック情報にアクセスし、フィードバック情報を分析して、オーバーレイコンテンツへのユーザの関心などの所望の情報を決定し得る。
【００４４】
ACRクライアント215は、オーバーレイコンテンツおよびコンテンツフィードの一致が終わるかつ/または閾値期間が終わるときを判定するためにコンテンツフィードを監視する可能性がある。一例において、オーバーレイコンテンツおよびコンテンツフィードの一致が終わるまたは閾値期間が終わるとき、メディアデバイスは、メディアデバイス115上に表示するためにオーバーレイコンテンツを重ね合わせることをやめる可能性がある。
【００４５】
図3は、図2のコンテンツマネージャのためにメディアコンテンツにフィンガープリントを付けるために使用されるACRエンジン204のシステム図である。一実施形態によれば、ACRエンジン204は、フィンガープリントを付けられるメディアコンテンツのコンテンツフレームを受信し、フィンガープリンタ(fingerprinter)305、フィンガープリントシーケンスマッチャ(fingerprint sequence matcher)325、およびフレームフィンガープリントが記憶されるデータベース327を含む可能性がある。コンテンツプロバイダ202は、クライアントデバイス218および/または220を含むメディアデバイス115にストリーミングされるマルチメディアコンテンツを生成し得る。
【００４６】
フィンガープリンタ305は、マルチメディアコンテンツからのいくつかのコンテンツフレーム302をフィンガープリントとして検出または選択し得る。一実施形態において、いくつかのコンテンツフレーム302は、(たとえば、ターゲットブロックとして)連続的に順序付けられ、したがって、フィンガープリントの初めから終わりまで連続的なタイムスタンプを含む可能性がある。一例において、コンテンツは、オーディオデータ、ビデオデータ、またはこれらの両方である可能性がある。この例において、ビデオコンテンツは、生ビデオフレームである可能性がある。
【００４７】
たとえば、フィンガープリンタ305は、コンテンツフレーム302を受信するとき、フィンガープリントを生成するために生ビデオおよび/またはオーディオフレームなどのコンテンツフレーム302をどのように処理すべきかを決定し得る。一例において、フレームは、個々にフィンガープリントを付けられる可能性がある。別の例において、フレームは、コレクションまたはシーケンス単位でフィンガープリントを付けられる可能性がある。フィンガープリンタ305は、フィンガープリントを付けている間にフィンガープリンタ305が実行するACRアルゴリズムに基づいて、いつフレームに個々にまたは連続的にフィンガープリントを付けるべきかを決定する可能性があり、ACRアルゴリズムの例が、検討される。
【００４８】
加えて、フィンガープリンタ305は、異なる放送局またはユーザに関して異なるようにコンテンツフレーム302にフィンガープリントを付ける可能性がある。この例において、フィンガープリンタ305は、異なるACRベンダーのために異なるACRフィンガープリント付与アルゴリズムを含む可能性がある。一例において、異なるACRフィンガープリント付与アルゴリズムは、予め決められており、フィンガープリンタ305のメモリに記憶される可能性がある。
【００４９】
さらに別の例において、異なるACRフィンガープリント付与アルゴリズムは、サードパーティACRベンダーによって提供される可能性がある。異なるACRフィンガープリント付与アルゴリズムがそのようなベンダーによって提供されるとき、フィンガープリンタ305は、異なるACRフィンガープリント付与アルゴリズムを集約する可能性がある。一例において、ACRフィンガープリント付与は、YUV 4:2:2色空間内の、高解像度またはその他のレベルの解像度の生ビデオを使用する可能性がある。ビデオコンテンツがローカルプロバイダ106またはその他のコンテンツプロバイダ202において受信されるとき、フィンガープリンタ305は、メディアデバイス115に送信される前に放送局または配信者によって符号化するために、ビデオコンテンツをYUV 4:2:0色空間に変換し、そのビデオコンテンツの解像度を閾値の解像度レベルまで下げる可能性がある。
【００５０】
一部の実施形態において、フィンガープリンタ305は、フィンガープリントシーケンスマッチャ325を含む可能性がある、またはフィンガープリントシーケンスマッチャ325と通信する可能性がある。フィンガープリントシーケンスマッチャ325は、以下でより詳細に説明されるように、一連のフィンガープリントを、個々のフレームフィンガープリントの所与の組が生じた元のビデオコンテンツとマッチングする可能性がある。
【００５１】
フィンガープリンタ305は、コンテンツフレーム302にフィンガープリントを付けたとき、(チャンネル情報、タイムコード、およびフィンガープリント情報を含む)フィンガープリントをオーバーレイデータベース211および/または検索サーバ206に送信し得る。検索サーバ206は、オーバーレイデータベース211からフィンガープリントおよび関連する情報を取り出し得る。検索サーバ206は、オーバーレイおよび主題マッチング情報を送信するためにオーバーレイ決定エンジン210およびアドターゲッタ212と通信するまたは結合される可能性もあり、オーバーレイ決定エンジン210およびアドターゲッタ212によって、クライアントデバイス218または220上のユーザに文脈的にターゲットを定めるべきである。
【００５２】
一例においては、異なるACRベンダーの検索サーバに異なるフィンガープリント情報を提供するために、異なるACRフィンガープリント付与アルゴリズムが、同じコンテンツに対して使用される可能性がある。同じコンテンツ(たとえば、コンテンツフレーム)302に異なるようにフィンガープリントを付けることの利点は、メディア消費デバイスの異なる視聴者に文脈的に関連する広告およびインタラクティブコンテンツを提供することである可能性がある。別の例において、コンテンツフレーム302は、異なるフィードからのメディアコンテンツを含む可能性がある。この例においては、異なるACRベンダーの検索サーバに異なるフィンガープリント付与情報を提供するために、異なるACRフィンガープリント付与アルゴリズムが、コンテンツフレーム302の異なるフィードのコンテンツに対して使用される可能性がある。
【００５３】
異なるフィンガープリント付与情報が、異なるACRベンダーの検索サーバにそれぞれアップロードされる可能性がある。異なるACRベンダーが、異なる契約機器製造業者(CEM:contract equipment manufacturer)によって製造された視聴デバイス上でまとめられる可能性がある。たとえば、Toshibaのテレビは、Samba(登録商標) ACRフィンガープリント付与を利用する可能性があり、Samsung(登録商標)のテレビは、Enswer(登録商標) ACRフィンガープリント付与を使用する可能性がある。フィンガープリンタ305が異なるACRベンダーのためのACRフィンガープリント付与アルゴリズムを含むことの利点は、メディア消費デバイスの製造業者に関係なく、異なるACRベンダーによって視聴者に提供されるコンテンツにフィンガープリントを付けることである可能性がある。一例において、ACRフィンガープリント付与情報は、デジタル広告差し替え(DAR:digital advertisement replacement
)のために使用される可能性がある。別の例において、ACRフィンガープリント付与情報は、広告またはコンテンツの増強およびデータの収集のために使用される可能性がある。オーバーレイ決定エンジン210およびアドターゲッタ212(図2)は、フィンガープリント付与情報を使用して、符号化されたコンテンツを文脈的に関連する広告、情報、および/またはインタラクティブコンテンツとマッチングし得る。それから、マッチングされたコンテンツおよび/または広告が、メディアデバイス115上にストリーミング表示するためにメディアデバイス115に提供され得る。別の例においては、マッチングイベントについての情報が、コンテンツマッチングの分析のために放送クラウド(broadcast cloud)に伝達される可能性がある。
【００５４】
一例において、フィンガープリンタ305は、システム内の放送配信の上流でACRフィンガープリント付与を実行する可能性がある。別の例において、フィンガープリント付与は、放送フィードが符号化/アップロードのために配信され得る放送チェーン(broadcast chain)内で行われる可能性がある。単一の放送フィードが使用されるとき、ACRフィンガープリント付与および符号化/アップロードのために購入され、インストールされ、監視され、保守される必要がある可能性があるデバイスおよび/またはアプリケーションの数が、削減され得る。たとえば、削減されたシステムインフラストラクチャ(ラックスペース、電力、およびイーサネット(登録商標)接続性)など、資本的支出(CAPEX:capital expenses)および/または運営支出(OPEX:operational expenses)が削減され得る。加えて、単一の放送フィードが使用されるとき、放送局の分配増幅器から生成される放送フィードの数が削減され得る。
【００５５】
検討されるように、フィンガープリンタ305は、メディアデバイス115のうちの1つに表示されるまでの経路内の放送サーバ、ヘッドエンド、スイッチ、および/またはセットトップボックスを通り抜ける可能性があるなど、マルチメディアコンテンツから個々のフィンガープリントを生成し得る。フィンガープリントは、1つのフレームまたはいくつかのフレームを含む可能性がある。フレームは、時系列的なタイムスタンプとともに順番に取得される可能性がある、またはたとえばやはり対応するタイムスタンプとともに1つおき(もしくは2フレームおき)などの何らかの間隔で取得される可能性がある。
【００５６】
フィンガープリントシーケンスマッチャ325は、組または一連のこれら個々のフレームを(問い合わせフィンガープリントとして)処理して、フレームを、これらのフィンガープリントによって表される対応するビデオフレームが生じた元のビデオコンテンツの(データベース327に記憶された)フレームフィンガープリントとマッチングし得る。フレームフィンガープリントは、単一のフレームであり、それぞれが、対応するタイムスロット(またはメディアプログラムの初めからのフレーム数もしくは時間の量などのある種のインデックス)を含む可能性がある。一致を見つけることは、メディアデバイス115上でユーザが見ているメディアプログラム、チャンネルまたはチャンネル変更、プログラムの開始時間および終了時間によるスケジュールのタイムスロット、コマーシャルのタイムスロット、ならびに一致するメディアプログラムまたはテレビチャンネルのそのような情報を決定する結果となる可能性がある。
【００５７】
マッチング結果を信頼するために、フィンガープリントシーケンスマッチャ325は、一連のフィンガープリントが時間的に順序付けられ、したがって、一致するフィンガープリントが同じビデオに属するだけでなく、時間的に同様に順序付けられるという事実を利用し得る。フィンガープリントシーケンスマッチャ325は、より詳細に説明されるように、2分木構造の葉ノードを横断して時系列的に2分木構造にデータを投入し、それから、完全にデータを投入された2分木構造を走査してチャンネル変更を検出するためにこの特性を利用する。
【００５８】
フィンガープリントシーケンスマッチャ325は、フィンガープリント内の一連のフレームのそのような時間的特性を使用して、一致するフィンガープリントシーケンスがどのように行われたか(より速く、より遅く、または逆に)を検出する可能性もある。ACRフィンガープリントシーケンスマッチャ325のアルゴリズムは、たとえば、最高のフレームレートで通常の速度、1/2のフレームレートで通常の速度、1/3のフレームレートで通常の速度などの特定の再生シナリオを検出するために実装される可能性がある。
【００５９】
図4は、一実施形態による、対応するテレビプログラムを特定するために入力(または問い合わせ)フィンガープリントの一連のフレームをマッチングする自動コンテンツ認識(ACR)の方法の流れ図400を示す。方法は、ハードウェア(たとえば、回路、専用論理、プログラミング可能な論理、マイクロコードなど)、ソフトウェア(たとえば、処理デバイスによって実行される命令)、ファームウェア、またはこれらの組合せを含む可能性がある処理論理によって少なくとも部分的に実行され得る。方法は、クライアントデバイス218もしくは220などのクライアントデバイスの処理論理によって、図1のACRシステム124もしくは126または図2のACRシステム224もしくは226などのサーバシステムによって実行される可能性がある。コンテンツマネージャ122または222(図1および図2)も、方法の実行に関与する可能性がある。代替的に、方法は、様々な種類のユーザデバイス、ポータブルデバイス、テレビ、プロジェクタ、またはその他のメディアデバイス内のその他の処理デバイスによって実行される可能性がある。
【００６０】
図4を参照すると、処理論理は、コンテンツ(またはメディア)デバイスにおいてコンテンツフィードからのメディアコンテンツを受信することから始まる(402)。論理は、一連のフレームおよび(対応するタイムスタンプなどの)対応する時間に基づくインデックスを含む入力(または問い合わせ)フィンガープリントを生成するためにメディアコンテンツに対してフィンガープリント付与を実行し続ける可能性がある(404)。論理は、メディアコンテンツに対応するメディアプログラムを特定するために、時間に基づくインデックスによって、問い合わせフィンガープリントを、元のメディアコンテンツからの複数のフレームフィンガープリントとマッチングし続ける可能性がある(406)。
【００６１】
図5は、64フレーム問い合わせフィンガープリントの途中のメディアデバイスのチャンネル変更を示すデータを投入された2分木構造500の例示的な図である。問い合わせフィンガープリント(またはターゲットブロック)およびフレームフィンガープリントのソースブロックは本明細書においてはソースコンテンツの64フレームの範囲に及ぶものとして示されるが、32フレームまたは128フレーム、および2のべき乗であるその他のサイズなどのターゲットブロックおよびソースブロックの異なるサイズが使用され得る。
【００６２】
メディアフレームがフレーム毎にマッチングされる通常の方法は、フレーム間の距離を計算することによる可能性があり、距離が問い合わせフィンガープリントのそれぞれのフレーム間ですべてゼロであるときにのみ一致が見つかる。図5に示されるように、2分木構造は、この通常の方法の代替的方法を提供し得る。たとえば、ACRエンジンは、問い合わせフィンガープリントおよび元のコンテンツからのソースブロックのフレームフィンガープリントのそれぞれのフレームの間の距離を2分木構造の葉ノード504に投入する可能性がある。葉ノード504のこのデータ投入は、左から右に向かって時系列的に行われる可能性がある。代替的な実施形態において、葉ノードは、右から左に向かってデータを投入される可能性がある。タイムスタンプは、ACRエンジン(またはその他のサーバ)がターゲットブロックおよびソースブロックの適切なフレームを合わせ、時系列的に葉ノードにデータを投入することを確認するのを助け得る。それから、複数の親ノード506が、それらの親ノード506のそれぞれの子ノードの値を足すこと(または合計すること)から得られる値を投入される可能性がある。ルートノード508が(8、10、12などの小さな数またはさらにはゼロなどの)閾値の最大数以内の値を含むとき、フィンガープリントは、一致すると言われ得る。そうでない場合、一致するものはない。
【００６３】
より詳細には、図5の例は、2分木構造500に距離を投入することを示し、ターゲットブロックは、チャンネル8からチャンネル9への64フレームの途中の(たとえば、フレーム33における)チャンネル変更を示す。ソースブロックは、そのソースブロックがチャンネル9から既にストリーミングしており、メディアデバイス115に到着する実際のコンテンツがまだ追いついていない(したがって、チャンネル変更の途中でメディアデバイスを捕まえる)のでずっとチャンネル9である。葉ノードの64フレームすべてを示す紙幅はないが、2分木構造は、左部分木512および右部分木516を含む。最初の32フレームを通じてすべてのチャンネル8および9の間の距離「1」が、2分木を上に伝播し、したがって、左部分木のルートノードおよび2分木構造全体のルートノード508において値32で終わる。これは、特に閾値の最大数が比較的小さいと、不一致に見える。
【００６４】
しかし、チャンネルが途中で変更されたので、問い合わせフィンガープリントの後半はフィンガープリントと一致し、右部分木516全体に渡って距離ゼロをもたらす。2分木構造内のこの挙動のために、ACRエンジン(またはサーバ)は、右部分木516を走査し、右部分木の第1のまたは第2のノードにおいてゼロを特定すると、チャンネル変更を検出し得る。(2分木が代替的な実施形態において示されるように右から左に向かってデータを投入されるならば、走査は左部分木で行われることに留意されたい。)別の実施形態において、ACRエンジンは、チャンネル変更をやはり示すための閾値の最大距離(ゼロを超える何らかの距離)未満の低い値を検出する可能性がある。新しいチャンネルは、問い合わせフィンガープリントの終わりのフレーム、たとえば、順序付けられた一連のフレームと一致するメディアコンテンツを有するチャンネルとして特定され得る。この新しいチャンネルは、前述のように、コンテンツIDと対応付けられ、コンテンツマネージャ222によってコンテンツおよび広告のターゲットを定めるために直ちに使用され得る。有利なことに、これは、メディアデバイス115が新しいチャンネル(たとえば、図5のチャンネル9)からメディアコンテンツを受信し始める時点の直後のいかなるオーバーレイまたは差し替え広告の機会を見逃すことも防止する。
【００６５】
図6は、64フレーム問い合わせフィンガープリントに12フレームが入った後のチャンネル変更を示すデータを投入された2分木構造600の例示的な図である。複数の葉ノード604内で、チャンネルは、13番目のノードにおいて、現在の問い合わせフィンガープリントの順序付けられた一連のフレームに変更される。複数の親ノード606は、2分木構造の左部分木612を上に向かって距離を伝播し、ルートノード608においてより小さな距離の値12で終わる。値12は、一実施形態において、一致と考えられるためのルートノードにおける閾値の最大距離よりも十分に低い可能性がある。この場合、一致は、図6において「9」と示された現在のチャンネルまたはプログラムとすることになる。
【００６６】
しかし、別の実施形態においては、ルートノードの値12は、一致と考えられない可能性があり、したがって、ACRエンジンは、チャンネル変更を検出するために右部分木の第1のまたは第2のノードに十分に小さな距離(たとえば、閾値の最大値以下)があるかどうかを判定するために、2分木構造の右部分木616を下に向かって2分木構造600を走査し続ける可能性がある。閾値の最大値は、ゼロまたはたとえば8、10、12、もしくは16などの比較的小さな値である可能性がある。
【００６７】
図7は、64フレーム問い合わせフィンガープリントの終わりから16フレームでのチャンネル変更を示すデータを投入された2分木構造700の例示的な図である。この実施形態において、チャンネルは、終わりから17フレームで、問い合わせフィンガープリントが生成されるメディアデバイスにおいて変更され、チャンネル変更を検出すべきより少ない時間を与える。したがって、複数の葉ノード704は、終わりから17番目のフレームまで距離「1」を投入され、その時点で、メディアデバイスへのストリーミングは、チャンネル変更に追いつき、距離ゼロをもたらす。複数の親ノード706は、ルートノード708が距離の値48を取るまでそれぞれのフレームにおける距離のますます高い値を伝播する。
【００６８】
距離の値48は、問い合わせフィンガープリントと新しいテレビチャンネルからの元のコンテンツとの間の不一致を反映する。しかし、開示されるプロセスによれば、ACRエンジン(サーバ)は、2分木構造の右部分木716を走査し、右部分木716を下に向かって第1のノードではなく第2のノードにおいてゼロを見つけ得る。前述のように、ゼロの代わりに、それは、チャンネル変更の検出をトリガするための低い値(たとえば、閾値の最大値以下)の検出である可能性がある。したがって、ルートノード708が不一致を示す可能性があるが、右部分木を下に向かって第2のノードにおいてゼロ(または閾値の低い値)を見つけることが、ACRエンジンにチャンネル変更を示す。有利なことに、新しいチャンネル(または新しいチャンネルに関連するメディアプログラム)を知ることによって、アドターゲッタ212および/またはアドサーバ230は、中断なしにまたは次の問い合わせフィンガープリントにおけるチャンネル変更の判定を待つことなしに、チャンネルが変わったメディアデバイス115にオーバーレイまたは差し替えメディアコンテンツのターゲットを定め続ける可能性がある。
【００６９】
図8は、フィンガープリントをマッチングし、メディアデバイスのチャンネル変更を検出するために2分木構造を使用するACRの方法の流れ図800を示す。方法は、ハードウェア(たとえば、回路、専用論理、プログラミング可能な論理、マイクロコードなど)、ソフトウェア(たとえば、処理デバイスによって実行される命令)、ファームウェア、またはこれらの組合せを含む可能性がある処理論理によって少なくとも部分的に実行され得る。方法は、クライアントデバイス218もしくは220などのクライアントデバイスの処理論理によって、図1のACRシステム124もしくは126または図2のACRシステム224もしくは226などのサーバシステムによって実行される可能性がある。コンテンツマネージャ122または222(図1および図2)も、方法の実行に関与する可能性がある。代替的に、方法は、様々な種類のユーザデバイス、ポータブルデバイス、テレビ、プロジェクタ、またはその他のメディアデバイス内のその他の処理デバイスによって実行される可能性がある。
【００７０】
図4を参照すると、処理論理は、消費されているコンテンツの問い合わせフィンガープリントをメディアデバイスから受信することから始まり、問い合わせフィンガープリントは、順序付けられた一連のフレームを含む(810)。さらに、処理論理は、それぞれのフレームフィンガープリントと順序付けられた一連のフレームの対応するフレームとの間の距離を判定することによって、問い合わせフィンガープリントを、データベースに記憶された複数のフレームフィンガープリントとマッチングする可能性がある(820)。マッチングは、いくつかのステップを含む可能性があるが、一実施形態において、マッチングは、左から右に向かって時系列的にそれぞれの距離の値を2分木構造の葉ノードに投入すること(822)と、親ノードに接続された子ノードの値を足すことによって導出された値を親ノードに投入すること(824)とを含む可能性がある。
【００７１】
さらに、処理論理は、2分木構造を下に向かって走査するときにルートノードから閾値の数の子ノード以内にゼロ値を見つけることに応じて第1のチャンネルから第2のチャンネルへのチャンネル変更を検出する可能性がある(830)。さらに、処理論理は、問い合わせフィンガープリントの順序付けられた一連のフレームの終わりのフレームに一致するフレームを有するコンテンツをストリーミングするチャンネルを特定することによって第2のチャンネルが何であるかを決定する可能性がある(840)。さらに、処理論理は、アドターゲッタが第2のチャンネルにストリーミングされるコンテンツにターゲットを定めるメディアを調整し得るように、チャンネル変更を検出することに応じて、見られている第2のチャンネルが何であるかを広告(「アド」)ターゲッタに知らせる可能性がある(850)。
【００７２】
たとえば、論理は、広告サーバにメディアプログラムの識別情報を送信し、メディアプログラムの主題に文脈的に関連する広告を広告サーバから受信する可能性がある。それから、論理は、メディアプログラムのコマーシャルのための中断の間にオーバーレイまたは差し替え広告(もしくは情報のセグメント)として表示するためにメディアデバイスに広告(またはその他のコンテンツ)を配信し得る。
【００７３】
図9は、本明細書において検討される方法のうちのいずれか1つまたは複数をマシンに実行させるための1組の命令が実行され得るコンピュータシステム900の例示的な形態のマシンの概略図を示す。代替的な実施形態において、マシンは、LAN、イントラネット、エクストラネット、またはインターネット内のその他のマシンに接続される(たとえば、ネットワーク接続される)可能性がある。マシンは、クライアント-サーバネットワーク環境内のサーバもしくはクライアントデバイスの能力内で、またはピアツーピア(もしくは分散型)ネットワーク環境内のピアマシンとして動作する可能性がある。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、スマートフォン、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって行われるべきアクションを指定する(逐次的またはその他の)命令の組を実行することができる任意のマシンである可能性がある。さらに、単一のマシンだけが示されているが、用語「マシン」は、本明細書において検討された方法のうちのいずれか1つまたは複数を実行するための命令の1組(または複数組)を個々にまたは連携して実行するマシンの任意の集合を含むとも受け取られる。
【００７４】
コンピュータシステム900は、図1のACRシステム124もしくは126、図2および図3のACRシステム224もしくは226、または図1のコンテンツマネージャ122もしくは図2のコンテンツマネージャ222に対応する可能性がある。コンピュータシステム900は、図1のクライアントデバイス118または120などの任意のメディアデバイス115に対応する可能性がある。コンピュータシステム900は、クラウドに基づくコンピュータシステムの少なくとも一部に対応する可能性がある。
【００７５】
コンピュータシステム900は、バス930を介して互いに通信する処理デバイス902、メインメモリ904(たとえば、読み出し専用メモリ(ROM)、フラッシュメモリ、(同期DRAM(SDRAM)またはDRAM(RDRAM)などの)ダイナミックランダムアクセスメモリ(DRAM))、スタティックメモリ906(たとえば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータストレージデバイス918を含む。
【００７６】
処理デバイス902は、マイクロプロセッサ、中央演算処理装置などの1つまたは複数の汎用処理デバイスを表す。より詳細には、処理デバイスは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、またはその他の命令セットを実装するプロセッサ、または命令セットの組合せを実装するプロセッサである可能性がある。処理デバイス902は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなど1つまたは複数の専用処理デバイスである可能性もある。一実施形態において、処理デバイス902は、1つまたは複数の処理コアを含む可能性がある。処理デバイス902は、本明細書において検討された動作を実行するためのミラーリング論理(mirroring logic)の命令926を実行し得る。
【００７７】
コンピュータシステム900は、ネットワーク920に通信可能なように結合されたネットワークインターフェースデバイス908をさらに含み得る。コンピュータシステム900は、ビデオディスプレイユニット910(たとえば、液晶ディスプレイ(LCD)もしくはブラウン管(CRT))、英数字入力デバイス912(たとえば、キーボード)、カーソル制御デバイス914(たとえば、マウス)、信号生成デバイス916(たとえば、スピーカ)、またはその他の周辺デバイスも含む可能性がある。さらに、コンピュータシステム900は、グラフィックス処理ユニット922、ビデオ処理ユニット928、およびオーディオ処理ユニット952を含む可能性がある。別の実施形態において、コンピュータシステム900は、集積回路のグループを指すチップセット(図示せず)、または処理デバイス902とともに働き、処理デバイス902と外部デバイスとの間の通信を制御するように設計されるチップを含む可能性がある。たとえば、チップセットは、処理デバイス902をメインメモリ904およびグラフィックコントローラなどの非常に高速なデバイスにリンクし、処理デバイス902をUSB、PCI、またはISAバスなどの周辺機器のより低速な周辺バスにリンクするマザーボード上の1組のチップである可能性がある。
【００７８】
データストレージデバイス918は、本明細書において説明された機能の方法のうちの任意の1つまたは複数を具現化する命令926が記憶されるコンピュータ可読ストレージ媒体925を含む可能性がある。命令926は、コンピュータシステム900による命令926の実行中、メインメモリ904および/または処理デバイス902内にすべてまたは少なくとも部分的に存在する可能性もあり、メインメモリ904および処理デバイス902も、コンピュータ可読ストレージ媒体を構成する。
【００７９】
コンピュータ可読ストレージ媒体925は、上述のアプリケーションを呼び出す方法を含む論理および/またはソフトウェアライブラリを利用する命令926を記憶するために使用される可能性もある。コンピュータ可読ストレージ媒体925は例示的な実装においては単一の媒体であるように示されているが、用語「コンピュータ可読ストレージ媒体」は、命令の1つまたは複数の組を記憶する単一の媒体または複数の媒体(たとえば、集中的なもしくは分散型のデータベース、ならびに/または関連するキャッシュおよびサーバ)を含むものと受け取られるべきである。また、用語「コンピュータ可読ストレージ媒体」は、マシンによる実行のために命令926の組を記憶するか、符号化するか、または運ぶことができ、本開示の方法のうちのいずれか1つまたは複数をマシンに実行させる任意の媒体を含むものとも受け取られる。したがって、用語「コンピュータ可読ストレージ媒体」は、ソリッドステートメモリ、光学式媒体、および磁気式媒体を含むがこれらに限定されないと受け取られる。以下の例は、さらなる実施形態に関する。
【００８０】
本発明が限られた数の実施形態に関連して説明されたが、当業者は、それらの実施形態から多数の修正および変更を理解するであろう。添付の特許請求の範囲は、本発明の真の趣旨および範囲内に入るようなすべての修正および変更を包含することが意図される。
【００８１】
本明細書の説明においては、本発明を完全に理解させるために、特定の種類のプロセッサおよびシステム構成、特定のハードウェア構造、特定のアーキテクチャおよびマイクロアーキテクチャの詳細、特定のレジスタ構成、特定の命令の種類、特定のシステム構成要素、特定の測定値/高さ、特定のプロセッサパイプラインステージおよび動作などの例などの多数の特定の詳細が、記載されている。しかし、これらの特定の詳細が本発明を実施するために必ずしも使用される必要がないことは、当業者に明らかであろう。その他の場合、特定のおよび代替的なプロセッサアーキテクチャ、説明されたアルゴリズムのための特定の論理回路/コード、特定のファームウェアコード、特定の相互接続動作、特定の論理構成、特定の製造技術および材料、特定のコンパイラの実装、コード内のアルゴリズムの特定の表現、特定の電力低減およびゲート制御技術/論理、ならびにコンピュータシステムのその他の特定の動作の詳細などのよく知られている構成要素または方法は、本発明を不必要に不明瞭にすることを避けるために詳細に説明されていない。
【００８２】
実施形態は、コンピューティングプラットフォームまたはマイクロプロセッサなどの特定の集積回路内の安全なメモリの再パーティショニングに関連して説明されている。実施形態は、その他の種類の集積回路およびプログラマブルロジックデバイスにも適用され得る可能性がある。たとえば、開示された実施形態は、デスクトップコンピュータシステムまたはIntel(登録商標) Ultrabooks(商標)コンピュータなどのポータブルコンピュータに限定されない。開示された実施形態は、ハンドヘルドデバイス、タブレット、その他の薄型ノートブック、システムオンチップ(SoC)デバイス、および組み込みアプリケーションなどのその他のデバイスにおいても使用され得る。ハンドヘルドデバイスのいくつかの例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、携帯情報端末(PDA)、およびハンドヘルドPCを含む。概して、組み込みアプリケーションは、マイクロコントローラ、デジタル信号プロセッサ(DSP)、システムオンチップ、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークハブ、広域ネットワーク(WAN)スイッチ、または以下で教示される機能および動作を実行し得る任意のその他のシステムを含む。システムは任意の種類のコンピュータまたは組み込みシステムである可能性があることが、説明される。開示された実施形態は、ウェアラブルデバイス(たとえば、腕時計)、電子インプラント(electronic implant)、知覚および制御インフラストラクチャデバイス、コントローラ、監視制御データ収集(SCADA)システムなどのような廉価なデバイスのために特に使用される可能性がある。さらに、本明細書において説明された装置、方法、およびシステムは、物理的なコンピューティングデバイスに限定されず、エネルギーの節約および効率に関するソフトウェアの最適化に関連する可能性もある。以下の説明で容易に明らかになるであろうように、(ハードウェアに関するか、ファームウェアに関するか、ソフトウェアに関するか、またはこれらの組合せに関するかにかかわらず)本明細書において説明された方法、装置、およびシステムの実施形態は、性能的な考慮事項とバランスのとれた「グリーンテクノロジー」の未来にとって不可欠である。
【００８３】
本明細書の実施形態はプロセッサに関連して説明されているが、その他の実施形態が、その他の種類の集積回路および論理デバイスに適用され得る。本発明の実施形態の同様の技術および教示は、より高いパイプラインのスループットおよび改善された性能の恩恵を受ける可能性があるその他の種類の回路または半導体デバイスに適用され得る。本発明の実施形態の教示は、データの操作を実行する任意のプロセッサまたはマシンに適用され得る。しかし、本発明は、512ビット、256ビット、128ビット、64ビット、32ビット、または16ビットのデータ操作を実行するプロセッサまたはマシンに限定されず、データの操作または管理が実行される任意のプロセッサおよびマシンに適用され得る。加えて、本明細書の説明は、例を与え、添付の図面は、例示を目的とする様々な例を示す。しかし、これらの例は、本発明の実施形態のすべての可能な実装の網羅的なリストを与えるのではなく本発明の実施形態の例を与えるように意図されているに過ぎないので、限定的な意味に解釈されるべきでない。
【００８４】
以下の例は実行ユニットおよび論理回路の文脈で命令の処理および配信を説明するが、本発明のその他の実施形態は、マシンによって実行されるときにマシンに本発明の少なくとも1つの実施形態に合致する機能を実行させる機械可読有形媒体に記憶されたデータまたは命令によって実現され得る。一実施形態において、本発明の実施形態に関連する機能は、機械実行可能命令に具現化される。命令は、命令を用いてプログラミングされる汎用または専用プロセッサに本発明のステップを実行させるために使用され得る。本発明の実施形態は、本発明の実施形態に従って1つまたは複数の動作を実行するようにコンピュータ(またはその他の電子デバイス)をプログラミングするために使用され得る命令を記憶する機械またはコンピュータ可読媒体を含む可能性があるコンピュータプログラム製品またはソフトウェアとして提供される可能性がある。代替的に、本発明の実施形態の動作は、動作を実行するための機能の決まった論理を含む特定のハードウェア構成要素によって、またはプログラミングされたコンピュータ構成要素と機能の決まったハードウェア構成要素との任意の組合せによって実行される可能性がある。
【００８５】
本発明の実施形態を実行するように論理をプログラミングするために使用される命令は、DRAM、キャッシュ、フラッシュメモリ、またはその他のストレージなどのシステム内のメモリに記憶される可能性がある。さらに、命令は、ネットワークを介して、またはその他のコンピュータ可読媒体によって配信される可能性がある。したがって、機械可読媒体は、マシン(たとえば、コンピュータ)によって読み取り可能な形態で情報を記憶または送信するための任意のメカニズムを含む可能性があるが、フロッピーディスケット、光ディスク、コンパクトディスク、読み出し専用メモリ(CD-ROM)、および光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、磁気式もしくは光学式カード、フラッシュメモリ、または電気的、光学的、音響的、もしくはその他の形式の伝播信号(たとえば、搬送波、赤外線信号、デジタル信号など)によるインターネット上の情報の送信において使用される有形の機械可読ストレージに限定されない。したがって、コンピュータ可読媒体は、マシン(たとえば、コンピュータ)によって読み取り可能な形態で電子的な命令または情報を記憶または送信するのに好適な任意の種類の有形の機械可読媒体を含む。
【００８６】
設計は、作成からシミュレーション、そして製造までの様々な段階を経る可能性がある。設計を表すデータは、いくつかの方法で設計を表す可能性がある。第1に、シミュレーションにおいて有用であるように、ハードウェアが、ハードウェア記述言語または別の機能記述言語を使用して表される可能性がある。加えて、論理および/またはトランジスタゲートを用いる回路レベルのモデルが、設計プロセスのいくつかの段階で生成される可能性がある。さらに、ほとんどの設計は、ある段階で、ハードウェアモデルにおいて様々なデバイスの物理的な配置を表すデータのレベルに達する。通常の半導体製造技術が使用される場合、ハードウェアモデルを表すデータは、集積回路を製造するために使用されるマスクのための異なるマスクレイヤ上の様々な特徴の有無を指定するデータである可能性がある。設計の任意の表現において、データは、任意の形態の機械可読媒体に記憶される可能性がある。メモリまたはディスクなどの磁気式もしくは光学式ストレージは、情報を送信するために変調されたまたはそれ以外の方法で生成された光または電波によって送信されるそのような情報を記憶するための機械可読媒体である可能性がある。コードまたは設計を示すまたは運ぶ電気的な搬送波が送信されるとき、電気信号のコピー、バッファリング、または再送信が実行される限り、新しいコピーが作られる。したがって、通信プロバイダまたはネットワークプロバイダは、本発明の実施形態の技術を具現化する搬送波に符号化される情報などの製品を少なくとも一時的に有形の機械可読媒体に記憶する可能性がある。
【００８７】
本明細書において使用されるモジュールは、ハードウェア、ソフトウェア、および/またはファームウェアの任意の組合せを指す。例として、モジュールは、マイクロコントローラによって実行されるように適合されたコードを記憶するための非一時的媒体に関連するマイクロコントローラなどのハードウェアを含む。したがって、モジュールとの言及は、一実施形態において、非一時的媒体上に保持されるべきコードを認識および/または実行するように特に構成されるハードウェアを指す。さらに、別の実施形態において、モジュールの使用は、所定の動作を実行するためにマイクロコントローラによって実行されるように特に適合されるコードを含む非一時的媒体を指す。そして、推測され得るように、さらに別の実施形態において、(この例における)用語モジュールは、マイクロコントローラと非一時的媒体との組合せを指す可能性がある。多くの場合、別れているものとして示されるモジュールの境界は、通常変化し、潜在的に重なり合う。たとえば、第1のおよび第2のモジュールが、何らかの独立したハードウェア、ソフトウェア、またはファームウェアを潜在的に維持しながら、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せを共有する可能性がある。一実施形態において、用語、論理の使用は、トランジスタ、レジスタ、またはプログラマブルロジックデバイスなどのその他のハードウェアなどのハードウェアを含む。
【００８８】
語句「〜ように構成された(configured to)」の使用は、一実施形態において、指定されたまたは決められたタスクを実行するための装置、ハードウェア、論理、または要素を配列し、組み立て、製造し、売り出し、輸入し、かつ/または設計することを指す。この例において、動作していない装置またはその装置の要素は、指定されたタスクを実行するために設計され、結合され、かつ/または相互に接続される場合、やはり、前記指定されたタスクを実行する「ように構成される」。純粋に例示的な例として、論理ゲートは、動作中、0または1を与える可能性がある。しかし、クロックにイネーブル信号を与える「ように構成された」論理ゲートは、1または0を与える可能性があるあらゆる潜在的な論理ゲートを含むわけではない。その代わりに、論理ゲートは、動作中に1または0の出力がクロックを有効化することになる何らかの方法で結合された論理ゲートである。用語「〜ように構成された」の使用は動作を必要としないが、その代わりに、装置、ハードウェア、および/または要素の休眠状態(latent state)に焦点を当て、休眠状態において、装置、ハードウェア、および/または要素は、装置、ハードウェア、および/または要素が動作しているときに特定のタスクを実行するように設計されることにもう一度留意されたい。
【００８９】
さらに、語句「〜するための(to)」、「〜することができる(capable of/to)」、および/または「〜するように動作可能な(operable to)」は、一実施形態において、指定された方法で装置、論理、ハードウェア、および/または要素を使用することを可能にするようにして設計された何らかの装置、論理、ハードウェア、および/または要素を指す。するための、することができる、またはするように動作可能なの使用は、一実施形態において、装置、論理、ハードウェア、および/または要素は、動作していないが、指定された方法で装置の使用を有効化するようにして設計される、装置、論理、ハードウェア、および/または要素の休止状態を指すことに、上述のように留意されたい。
【００９０】
本明細書において使用されるとき、値は、数、状態、論理的状態、または2値論理状態の任意の知られている表現を含む。多くの場合、論理レベル、論理値、または論理的値を使用することは、1と0ともいい、単純に2値論理状態を表す。たとえば、1は、高論理レベルを指し、0は、低論理レベルを指す。一実施形態において、トランジスタまたはフラッシュセルなどの記憶セルは、単一の論理値または複数の論理値を保持することができる可能性がある。しかし、コンピュータシステムにおける値のその他の表現が、使用されてきた。たとえば、10進数の10は、2進数の値1010および16進数の文字Aとしても表され得る。したがって、値は、コンピュータシステムにおいて保持され得る情報の任意の表現を含む。
【００９１】
さらに、状態は、値または値の一部によって表される可能性がある。例として、論理1などの第1の値が、既定または初期状態を表す可能性がある一方、論理0などの第2の値は、既定でない状態を表す可能性がある。加えて、用語、予め設定されたおよび設定されたは、一実施形態において、それぞれ、既定のかつ更新された値または状態を指す。たとえば、既定値は、高論理値、つまり、予め設定された値を潜在的に含み、一方、更新された値は、低論理値、つまり、設定された値を潜在的に含む。値の任意の組合せが、任意の数の状態を表すために利用される可能性があることに留意されたい。
【００９２】
上述の方法、ハードウェア、ソフトウェア、ファームウェア、またはコードの実施形態は、処理要素によって実行され得る、機械アクセス可能、機械可読、コンピュータアクセス可能、またはコンピュータ可読媒体に記憶された命令またはコードによって実装され得る。非一時的機械アクセス可能/可読媒体は、コンピュータまたは電子システムなどのマシンによって読み取り可能な形態で情報を提供する(つまり、記憶するかつ/または送信する)任意のメカニズムを含む。たとえば、非一時的機械アクセス可能媒体は、情報を受信し得る非一時的媒体と区別されるべきである、スタティックRAM(SRAM)またはダイナミックRAM(DRAM)などのランダムアクセスメモリ(RAM)、ROM、磁気式または光学式ストレージ媒体、フラッシュメモリデバイス、電気式ストレージデバイス、光学式ストレージデバイス、音響式ストレージデバイス、一時的(伝播)信号(たとえば、搬送波、赤外線信号、デジタル信号)から受け取られた情報を保持するためのその他の形態のストレージデバイスなどを含む。
【００９３】
本発明の実施形態を実行するように論理をプログラミングするために使用される命令は、DRAM、キャッシュ、フラッシュメモリ、またはその他のストレージなどのシステム内のメモリに記憶される可能性がある。さらに、命令は、ネットワークを介して、またはその他のコンピュータ可読媒体によって配信される可能性がある。したがって、機械可読媒体は、マシン(たとえば、コンピュータ)によって読み取り可能な形態で情報を記憶または送信するための任意のメカニズムを含む可能性があるが、フロッピーディスケット、光ディスク、コンパクトディスク、読み出し専用メモリ(CD-ROM)、および光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、磁気式もしくは光学式カード、フラッシュメモリ、または電気的、光学的、音響的、もしくはその他の形式の伝播信号(たとえば、搬送波、赤外線信号、デジタル信号など)によるインターネット上の情報の送信において使用される有形の機械可読ストレージに限定されない。したがって、コンピュータ可読媒体は、マシン(たとえば、コンピュータ)によって読み取り可能な形態で電子的な命令または情報を記憶または送信するのに好適な任意の種類の有形の機械可読媒体を含む。
【００９４】
本明細書全体を通じて「一実施形態(one embodiment)」または「実施形態(an embodiment)」との言及は、実施形態に関連して説明された特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書中の様々な箇所に現れる語句「一実施形態において(in one embodiment)」または「実施形態において(in an embodiment)」は、必ずしもすべてが同じ実施形態を指しているとは限らない。さらに、特定の機能、構造、または特性は、1つまたは複数の実施形態において任意の好適な方法で組み合わされる可能性がある。
【００９５】
上述の明細書においては、詳細な説明が、特定の例示的な実施形態を参照して与えられた。しかし、添付の特許請求の範囲に記載された本発明のより広い趣旨および範囲を逸脱することなく本発明に対して様々な修正および変更がなされ得ることは明らかであろう。したがって、明細書および図面は、限定的な意味ではなく例示的な意味に解釈されるべきである。さらに、実施形態およびその他の例示的な言葉の上述の使用は、必ずしも同じ実施形態または同じ例を指すとは限らないが、異なるおよび別個の実施形態、ならびに潜在的に同じ実施形態を指す可能性がある。
【００９６】
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の観点で提示されている。これらのアルゴリズムの記述および表現は、データ処理技術に精通した者によって、それらの者の成果の内容を当該技術に精通したその他の者に最も効果的に伝えるために使用される手段である。ここでかつ概して、アルゴリズムは、所望の結果をもたらす自己矛盾のない一連の動作であると考えられる。動作とは、物理量の物理的操作を必要とするステップである。必ずではないが通常は、これらの量は、記憶、転送、組合せ、比較、およびその他の操作を行われ得る電気的または磁気的信号の形態をとる。これらの信号をビット、値、要素、シンボル、文字、語、数などと呼ぶことが、主に共通使用の理由で便利な場合があることが分かっている。本明細書において説明されたブロックは、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せである可能性がある。
【００９７】
しかし、これらのおよび同様の用語のすべては、適切な物理量に関連付けられるべきであり、これらの量に付される便宜的なラベルであるに過ぎないことに留意されたい。上述の検討から明らかなように、別途はっきりと記載されていない限り、説明全体を通じて、「定義する」、「受信する」、「決定する」、「発行する」、「リンクする」、「関連付ける」、「取得する」、「認証する」、「禁止する」、「実行する」、「要求する」、「通信する」などの用語を利用する検討は、コンピューティングシステムのレジスタおよびメモリ内の物理的(たとえば、電子的)量として表されるデータを操作し、コンピューティングシステムのメモリまたはレジスタまたはその他のそのような情報ストレージ、送信、もしくは表示デバイス内の物理量として同様に表されるその他のデータに変形するコンピューティングシステムまたは同様の電子的なコンピューティングデバイスのアクションおよびプロセスを指すことが理解される。
【００９８】
語「例」または「例示的な」は、本明細書においては、例、具体例、または事例としての役割を果たすという意味で使用される。本明細書において「例」または「例示的な」と記載されたいずれの態様または設計も、必ずしもその他の態様または設計よりも好ましいまたは有利であると解釈されるべきでない。むしろ、語「例」または「例示的な」の使用は、概念を具体化して提示するように意図される。本出願において使用されるとき、用語「または(or)」は、排他的な「または(or)」ではなく包含的な「または(or)」を意味するように意図される。つまり、別途指定されない限り、または文脈から明らかでない限り、「XはAまたはBを含む」は、自然な包含的順列(natural inclusive permutation)のいずれかを意味するように意図される。つまり、XがAを含む、XがBを含む、またはXがAとBとの両方を含む場合、「XがAまたはBを含む」は、上記の場合のいずれかの下で満たされる。加えて、本出願および添付の特許請求の範囲において使用される冠詞「a」および「an」は、別途指定されない限り、または文脈から単数形を対象とすることが明らかでない限り、通常「1つまたは複数の(one or more)」を意味するとみなされるべきである。さらに、用語「実施形態(an embodiment)」、または「一実施形態(one embodiment)」、または「実装(an implementation)」、または「1つの実装(one implementation)」の使用は、全体を通じて、そのように説明されない限り同じ実施形態または実装を意味するように意図されていない。また、本明細書において使用される用語「第1の」、「第2の」、「第3の」、「第4の」などは、異なる要素を区別するためのラベルとして意図されており、必ずしも、それらの用語の数の指定に従った順序の意味を持たない可能性がある。
【符号の説明】
【００９９】
100  コンテンツ配信ネットワーク
102  コンテンツプロバイダ
104  ヘッドエンド
105  自動コンテンツ認識(ACR)フィンガープリントサーバ
106  ローカルプロバイダ
108  無線(OTA)放送局
110  多チャンネルビデオプログラム配信事業者(MVPD)
114  セットトップボックス
115  メディアデバイス
116  その他のデバイス
118  クライアントデバイス
120  クライアントデバイス
122  コンテンツマネージャ
123  データベース
124  ACRシステム
125  ACRフィンガープリントシーケンスマッチャ
126  ACRシステム
202  コンテンツプロバイダ
204  ACRエンジン
206  検索サーバ
207  フィンガープリントデータベース
210  オーバーレイ決定エンジン
211  オーバーレイデータベース
212  アドターゲッタ
215  ACRクライアント
218  クライアントデバイス
219  ネットワーク
220  クライアントデバイス
222  コンテンツマネージャ
224  ACRシステム
226  ACRシステム
230  広告サーバ、アドサーバ
302  コンテンツフレーム
305  フィンガープリンタ
325  フィンガープリントシーケンスマッチャ
327  データベース
400  流れ図
500  2分木構造
504  葉ノード
506  親ノード
508  ルートノード
512  左部分木
516  右部分木
600  2分木構造
604  葉ノード
606  親ノード
608  ルートノード
612  左部分木
616  右部分木
700  2分木構造
704  葉ノード
706  親ノード
708  ルートノード
716  右部分木
800  流れ図
900  コンピュータシステム
902  処理デバイス
904  メインメモリ
906  スタティックメモリ
908  ネットワークインターフェースデバイス
910  ビデオディスプレイユニット
912  英数字入力デバイス
914  カーソル制御デバイス
916  信号生成デバイス
918  データストレージデバイス
920  ネットワーク
922  グラフィックス処理ユニット
925  コンピュータ可読ストレージ媒体
926  命令
928  ビデオ処理ユニット
930  バス
952  オーディオ処理ユニット
【図１】
2019179557.tif 000003
【図２】
2019179557.tif 000004
【図３】
2019179557.tif 000005
【図４】
2019179557.tif 000006
【図５】
2019179557.tif 000007
【図６】
2019179557.tif 000008
【図７】
2019179557.tif 000009
【図８】
2019179557.tif 000010
【図９】
2019179557.tif 000011
【手続補正書】
【提出日】令和1年6月19日(2019.6.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
命令、および第１のチャンネルにストリーミングされているメディアプログラムに対応付けられている複数のフレームフィンガープリントを有するデータベースを記憶するコンピュータ可読ストレージ媒体と、
少なくとも１つの処理デバイスであって、
時系列的に順序付けられた一連のフレームを含む、コンテンツの問い合わせフィンガープリントをメディアデバイスから受信することと、
前記フレームフィンガープリントと、前記時系列的に順序付けられた一連のフレームの対応するフレームとの間の距離を判定することと、
２分木構造の葉ノードに前記距離をそれぞれ投入することと、
前記２分木構造の１組の親ノードに前記葉ノードのそれぞれの対の合計を投入することと、
時系列的に前記１組の親ノードの他の全ての親ノードの後にくる、前記１組の親ノードの２以上の親ノードの合計が閾値以下であることを判定することによって第２のチャンネルから前記第１のチャンネルへのチャンネル変更を検出することと、
を含む機能を実行するために前記命令を実行するよう構成された、少なくとも１つの処理デバイスと、
を含むシステム。
【請求項２】
前記２以上の親ノードが、前記１組の親ノードの少なくとも半分である、請求項１に記載のシステム。
【請求項３】
前記２以上の親ノードが、前記１組の親ノードの少なくとも４分の１である、請求項１に記載のシステム。
【請求項４】
前記機能が更に、前記チャンネル変更を検出することに応じて、前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にすることを含む、請求項１に記載のシステム。
【請求項５】
前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にすることが、第１のチャンネルにストリーミングされるオーバーレイを更新することを含む、請求項４に記載のシステム。
【請求項６】
前記機能が更に、
前記チャンネル変更および前記第１のチャンネルの通知をアドサーバに送信することと、
前記第１のチャンネルに対応付けられる差し替え広告又はオーバーレイコンテンツを前記アドサーバから受信することと、
を含む、請求項４に記載のシステム。
【請求項７】
時系列的に順序付けられた一連のフレームを含む、コンテンツの問い合わせフィンガープリントをメディアデバイスから受信することと、
第１のチャンネルにストリーミングされているメディアプログラムに対応付けられているフレームフィンガープリントと、前記時系列的に順序付けられた一連のフレームの対応するフレームとの間の距離を判定することと、
２分木構造の葉ノードに前記距離をそれぞれ投入することと、
前記２分木構造の１組の親ノードに前記葉ノードのそれぞれの対の合計を投入することと、
時系列的に前記１組の親ノードの他の全ての親ノードの後にくる、前記１組の親ノードの２以上の親ノードの合計が閾値以下であることを判定することによって第２のチャンネルから前記第１のチャンネルへのチャンネル変更を検出することと、
を含む、方法。
【請求項８】
前記２以上の親ノードが、前記１組の親ノードの少なくとも半分である、請求項７に記載の方法。
【請求項９】
前記２以上の親ノードが、前記１組の親ノードの少なくとも４分の１である、請求項７に記載の方法。
【請求項１０】
前記チャンネル変更を検出することに応じて、前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にするステップを更に含む、請求項７に記載の方法。
【請求項１１】
前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にするステップが、第１のチャンネルにストリーミングされるオーバーレイを更新するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記チャンネル変更および前記第１のチャンネルの通知をアドサーバに送信するステップと、
前記第１のチャンネルに対応付けられる差し替え広告又はオーバーレイコンテンツを前記アドサーバから受信するステップと、
を更に含む、請求項１０に記載の方法。
【請求項１３】
少なくとも１つの処理デバイスによって実行されたときに、
時系列的に順序付けられた一連のフレームを含む、コンテンツの問い合わせフィンガープリントをメディアデバイスから受信することと、
第１のチャンネルにストリーミングされているメディアプログラムに対応付けられているフレームフィンガープリントと、前記時系列的に順序付けられた一連のフレームの対応するフレームとの間の距離を判定することと、
２分木構造の葉ノードに前記距離をそれぞれ投入することと、
前記２分木構造の１組の親ノードに前記葉ノードのそれぞれの対の合計を投入することと、
時系列的に前記１組の親ノードの他の全ての親ノードの後にくる、前記１組の親ノードの２以上の親ノードの合計が閾値以下であることを判定することによって第２のチャンネルから前記第１のチャンネルへのチャンネル変更を検出することと、
を含む機能を前記少なくとも１つの処理デバイスに実行させる命令を記憶した、コンピュータ可読ストレージ媒体。
【請求項１４】
前記２以上の親ノードが、前記１組の親ノードの少なくとも半分である、請求項１３に記載のコンピュータ可読ストレージ媒体。
【請求項１５】
前記２以上の親ノードが、前記１組の親ノードの少なくとも４分の１である、請求項１３に記載のコンピュータ可読ストレージ媒体。
【請求項１６】
前記機能が更に、前記チャンネル変更を検出することに応じて、前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にすることを含む、請求項１３に記載のコンピュータ可読ストレージ媒体。
【請求項１７】
前記第１のチャンネルに対応付けられる広告コンテンツを提供することを容易にすることが、第１のチャンネルにストリーミングされるオーバーレイを更新することと含む、請求項１６に記載のコンピュータ可読ストレージ媒体。
【請求項１８】
前記機能が更に、
前記チャンネル変更および前記第１のチャンネルの通知をアドサーバに送信することと、
前記第１のチャンネルに対応付けられる差し替え広告又はオーバーレイコンテンツを前記アドサーバから受信することと、
を含む、請求項１６に記載のコンピュータ可読ストレージ媒体。
【外国語明細書】
2019179557000001.pdf