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