(57)【要約】  メディアクライアントが、（ｉ）クライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントとの間の複数の一致点を確認し、ここで、各識別される一致点が、クライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと、既知のメディアストリーム内のタイムラインに従って定められた実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定める。さらに、クライアントは、確認された複数の一致点のタイムスタンプに基づいて線形回帰を実行して、実時間とクライアント時間との間のマッピングを確立する。次に、クライアントは、この確立されたマッピングを基礎として使用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定する。また、クライアントは、決定されたクライアント時間時点で動作を実行する。【選択図】図４
2021530928.tif 000002
【特許請求の範囲】
【請求項１】
（ｉ）クライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントの間の複数の一致点を確認するステップであって、ここで、各識別される一致点が、（ｉ）前記クライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと、（ｉｉ）既知のメディアストリーム内のタイムラインに従う実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定めるステップと、
前記確認された複数の一致点の前記タイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行するステップと、
前記確立されたマッピングを基礎として使用して、前記メディアクライアントが受け取っているメディアストリームに対して前記クライアントが動作を実行すべきクライアント時間時点を決定するステップと、
前記決定されたクライアント時間時点で、前記クライアントが受け取っている前記メディアストリームに対して前記動作を実行するステップと、
を含むことを特徴とする方法。
【請求項２】
前記クライアントによって実行される、
請求項１に記載の方法。
【請求項３】
前記複数の一致点を確認するステップは、前記複数の一致点を示すデータセットを前記クライアントが受け取るステップを含む、
請求項２に記載の方法。
【請求項４】
前記複数の一致点を確認するステップは、
前記クライアントが前記クエリフィンガープリントを生成するステップと、
前記クライアントが前記基準フィンガープリントを受け取るステップと、
前記クライアントが、前記生成されたクエリフィンガープリントを前記受け取った基準フィンガープリントと比較し、該比較に基づいて前記複数の一致点を確認するステップと、
を含む、請求項２に記載の方法。
【請求項５】
各一致点は、（ｉ）前記クエリフィンガープリントのそれぞれのバンドルと（ｉｉ）前記基準フィンガープリントとの間の比較に基づき、前記方法は、
前記クエリフィンガープリントの所与のバンドルのクエリフィンガープリントが互いに一致することを検出するステップと、
前記所与のバンドルのクエリフィンガープリントが互いに一致することを検出したことに応答して、前記所与のバンドルを前記線形回帰の一致点の確立に使用することから除外するステップと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記クライアントが受け取っている前記メディアストリームに対する前記動作は、コンテンツ修正を含む、
請求項１に記載の方法。
【請求項７】
前記クライアントが受け取っている前記メディアストリームは、広告シーケンスを定める広告ポッドを含み、前記コンテンツ修正は、前記シーケンスの広告を置換メディアコンテンツに置き換えることを含む、
請求項６に記載の方法。
【請求項８】
前記クライアントが受け取っている前記メディアストリームに対する前記動作は、コンテンツ修正の準備を含む、
請求項１に記載の方法。
【請求項９】
前記確立されたマッピングを基礎として使用して、前記クライアントが受け取っている前記メディアストリームに対して前記クライアントが前記動作を実行すべきクライアント時間時点を決定するステップは、前記確立されたマッピングを基礎として使用して、前記既知のメディアストリームに対して前記動作を実行すべき所定の実時間時点を、前記クライアントが受け取っている前記メディアストリームに対して前記クライアントが前記動作を実行すべき対応するクライアント時間時点に対応付けるステップを含む、
請求項１に記載の方法。
【請求項１０】
メディアクライアントであって、
プロセッシングユニットと、
非一時的データストレージと、
前記非一時的データストレージに記憶されて、前記プロセッシングユニットが前記メディアクライアントに動作を実行させるために実行できるプログラム命令と、
を備え、前記動作は、
（ｉ）前記メディアクライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントの間の複数の一致点を確認することであって、ここで、各識別される一致点が、（ｉ）前記メディアクライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと、（ｉｉ）既知のメディアストリーム内のタイムラインに従う実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定めることと、
前記確認された複数の一致点の前記タイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行することと、
前記確立されたマッピングを基礎として使用して、前記メディアクライアントが受け取っているメディアストリームに対して前記メディアクライアントが動作を実行すべきクライアント時間時点を決定することと、
前記決定されたクライアント時間時点で、前記メディアクライアントが受け取っている前記メディアストリームに対して前記動作を実行することと、
を含む、
ことを特徴とするメディアクライアント。
【請求項１１】
前記複数の一致点を確認することは、前記複数の一致点を示すデータセットを受け取ることを含む、
請求項１０に記載のメディアクライアント。
【請求項１２】
前記複数の一致点を確認することは、
前記クエリフィンガープリントを生成することと、
前記基準フィンガープリントを受け取ることと、
前記生成されたクエリフィンガープリントを前記受け取った基準フィンガープリントと比較し、該比較に基づいて前記複数の一致点を確認することと、
を含む、請求項１０に記載のメディアクライアント。
【請求項１３】
各一致点は、（ｉ）前記クエリフィンガープリントのそれぞれのバンドルと（ｉｉ）前記基準フィンガープリントとの間の比較に基づき、前記動作は、
前記クエリフィンガープリントの所与のバンドルのクエリフィンガープリントが互いに一致することを検出することと、
前記所与のバンドルのクエリフィンガープリントが互いに一致することを検出したことに応答して、前記所与のバンドルを前記線形回帰の一致点の確立に使用することから除外することと、
をさらに含む、請求項１２に記載のメディアクライアント。
【請求項１４】
前記メディアクライアントが受け取っている前記メディアストリームに対する前記動作は、コンテンツ修正を含む、
請求項１０に記載のメディアクライアント。
【請求項１５】
前記メディアクライアントが受け取っている前記メディアストリームは、広告シーケンスを定める広告ポッドを含み、前記コンテンツ修正は、前記シーケンスの広告を置換メディアコンテンツに置き換えることを含む、
請求項１４に記載のメディアクライアント。
【請求項１６】
前記メディアクライアントが受け取っている前記メディアストリームに対する前記動作は、コンテンツ修正の準備を含む、
請求項１０に記載のメディアクライアント。
【請求項１７】
前記確立されたマッピングを基礎として適用して、前記メディアクライアントが受け取っている前記メディアストリームに対して前記メディアクライアントが前記動作を実行すべきクライアント時間時点を決定することは、前記確立されたマッピングを基礎として使用して、前記既知のメディアストリームに対して前記動作を実行すべき所定の実時間時点を、前記メディアクライアントが受け取っている前記メディアストリームに対して前記メディアクライアントが前記動作を実行すべき対応するクライアント時間時点に対応付けることを含む、
請求項１０に記載のメディアクライアント。
【請求項１８】
プロセッシングユニットが動作を実行するために実行できる命令を記憶した非一時的コンピュータ可読媒体であって、前記動作は、
（ｉ）クライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントの間の複数の一致点を確認することであって、ここで、各識別される一致点が、（ｉ）前記クライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと、（ｉｉ）既知のメディアストリーム内のタイムラインに従う実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定めることと、
前記確認された複数の一致点の前記タイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行することと、
前記確立されたマッピングを基礎として使用して、前記メディアクライアントが受け取っているメディアストリームに対して前記クライアントが動作を実行すべきクライアント時間時点を決定することと、
前記決定されたクライアント時間時点で、前記クライアントが受け取っている前記メディアストリームに対して前記動作を実行することと、
を含む、ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１９】
前記クライアントに実装される、
請求項１８に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記クライアントが受け取っている前記メディアストリームに対する前記動作は、前記メディアストリームのコンテンツを修正することを含む、
請求項１８に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照〕
本出願は、２０１８年１０月２２日に出願された米国特許出願第１６／１６６，９８１号、及び２０１８年７月１９日に出願された米国仮特許出願第６２／７００，６６０号に対する優先権を主張するものであり、これらの各文献はその全体が引用により本明細書に組み入られる。
【０００２】
本出願は、２０１８年１０月２２日に出願された別の米国特許出願第１６／１６６，９７１号にも関連し、この文献はその全体が引用により本明細書に組み入れられる。
【背景技術】
【０００３】
典型的なメディアクライアントは、ビデオ及び／又はオーディオコンテンツなどのメディアコンテンツを表すアナログ又はデジタルメディアストリームを受け取り、メディアコンテンツの出力及び／又はストリームの転送を行って、ディスプレイ画面及び／又はオーディオスピーカなどのユーザインターフェイス上にコンテンツを提示するように動作する。このようなクライアントの例としては、テレビ、コンピュータモニタ、投影システム、スピーカ、ヘッドフォン、セットトップボックス（例えば、ケーブル又は衛星ＴＶ受信機）、デジタルビデオレコーダ、ラジオ、パーソナルコンピュータ、モバイル通信装置、ゲーム機、ストリーミングメディアプレーヤなどが挙げられる。
【０００４】
一例として、メディアクライアントは、メディアストリーム（例えば、無線放送ストリーム、セットトップボックスからのメディアストリーム出力、デジタル記憶媒体から再生されたメディアストリーム、インターネットストリーム、又は別のこのようなストリーム）を受信して、このストリームのメディアコンテンツをユーザに提示できるテレビとすることができる。別の例として、メディアクライアントは、多チャンネル映像番組配信事業者（ｍｕｌｔｉ−ｃｈａｎｎｅｌ  ｖｉｄｅｏ  ｐｒｏｇｒａｍ  ｄｉｓｔｒｉｂｕｔｏｒ）から放送ストリームを受信して、高精細マルチメディアインターフェイス（ＨＤＭＩ(登録商標)）ケーブル又はその他のインターフェイスを介してストリームのメディアコンテンツをテレビ及び／又はオーディオ／ビデオ受信機に出力して再生できるセットトップボックスとすることもできる。さらに別の例として、メディアクライアントは、同様に放送ストリームを受信するが、このストリームを記憶して後で再生できるデジタルビデオ又はオーディオレコーダとすることもできる。さらに別の例として、メディアクライアントは、ラジオ、コンピュータ、或いは他の受信機又はオーディオ記憶装置からオーディオストリームを受信して、このストリームのオーディオコンテンツをユーザに提示できるスピーカ又はヘッドフォンとすることもできる。他にも数多くの例が考えられる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
いくつかの状況では、メディアクライアントが、メディアストリームの受信中にストリームのメディアコンテンツの一部を修正することが有用な場合がある。例えば、ユーザに対してコンテンツが再生される際に、ユーザが当初含まれていた広告の代わりに置換広告を受け取るように、クライアントがメディアコンテンツの広告又はその他のセグメントを置換広告又はその他の置換コンテンツに動的に置き換えることが有用な場合がある。別の例として、ユーザに対してコンテンツが再生される際に、ユーザが当初含まれていたコンテンツと共に補足コンテンツを受け取るように、クライアントがメディアコンテンツの一部をチャンネル識別、コンテキスト情報又は広告コンテンツなどのオーバレイ又は分割画面コンテンツで動的に補足することが有用な場合がある。
【０００６】
さらに、クライアントがメディアストリーム内の特定の時点でこのようなコンテンツ修正を実行することが望ましい場合もある。例えば、クライアントが既存の広告を置換広告に動的に置き換える場合には、メディアストリーム内で既存の広告が開始した時点でクライアントが置換広告を配置することが望ましいと考えられる。同様に、クライアントがメディアコンテンツの特定の部分をその部分に関連するオーバレイで補足する場合には、この部分の開始時にクライアントがオーバレイを開始することが望ましいと考えられる。その他の例も考えられる。
【０００７】
具体的に言えば、このようなメディアストリームは、ビデオフレーム及び／又はオーディオフレームなどのフレームシーケンスを定めることができ、従ってクライアントはフレーム精度ベースで（ｏｎ  ａ  ｆｒａｍｅ−ａｃｃｕｒａｔｅ  ｂａｓｉｓ）コンテンツ修正を実行することが望ましいと考えられる。例えば、広告置換の場合、クライアントは、既存の広告の最初のフレームから正確に開始する置換広告を既存の広告の代わりに挿入することが望ましいと考えられる。また、メディアストリームの特定の部分にオーバレイを追加する場合、クライアントは、このメディアストリーム部分の最初のフレームから又は最初のフレームに特に関連してオーバレイを開始することが望ましいと考えられる。
【０００８】
クライアントによるこのコンテンツ修正の実行を容易にするには、クライアントが修正を行うべき特定の時点を学習することが必要となり得る。しかしながら、実際には、クライアントにとって未知のタイムライン上に修正時点が定められていることがある。例えば、修正時点は、メディアストリーム自体の基準タイムライン上に定められることがあるが、クライアントがこのタイムラインのコンテキストを有していないことがある。従って、この修正時点をクライアントに提供しても、クライアントがメディアストリーム内の望ましい時点で修正を実行できないこともある。
【０００９】
この非限定的な例として、テレビ放送内に現れることがある広告ポッドを定めるメディアストリームについて考察する。広告ポッドは、テレビコマーシャルなどの広告シーケンスを含む。この例では、特定のテレビチャンネルのリニア放送フィード（ｌｉｎｅａｒ  ｂｒｏａｄｃａｓｔ  ｆｅｅｄ）を受信して提示しているテレビをクライアントとすることができ、このフィード内の任意の瞬間に広告ポッドが現れることができる。例えば、特にスポーツイベントなどのライブ放送では、このようなフィード内に広告ポッドが現れる時間を予測できないこともある。或いは、特別にスケジュールされた時点に広告ポッドが現れることもある。
【００１０】
この例では、広告ポッド内の特定の広告の置換（例えば、広告を異なる広告又はその他の置換コンテンツに置き換えること）を望ましい修正とすることができる。例えば、広告ポッドが広告シーケンスＡ１、Ａ２、Ａ３、Ａ４である場合、広告Ａ３の置換を望ましい修正とすることができる。
【００１１】
この状況では、広告ポッドが、Ｔ＝０の時点から開始して広告ポッドの最後まで継続する内部タイムラインを定めることができ、広告Ａ３は、このタイムライン上の時点ＴＡ３から開始することができる。しかしながら、クライアントにはこのタイムラインのコンテキストが存在しないことがある。クライアントは、「クライアント時間」を定めるタイムライン（例えば、時刻又はその他の内部時間基準）を有する独自の内部クロックを有することができる。しかしながら、クライアントは、クライアント時間内のどこに広告ポッドタイムラインが存在するかについての高度な知識を有していなければ、望ましいコンテンツ修正時点としての値ＴＡ３のみを与えられても、望ましい時に広告置換を実行することはできない。
【００１２】
この問題に対処する１つの方法は、クライアントが受け取っているメディアストリームのタイムスタンプ付きクエリフィンガープリントと、既知の広告ポッドシーケンスなどの既知のメディアストリームのタイムスタンプ付き基準フィンガープリントとを比較するフィンガープリント照合を実行することである。
【００１３】
例えば、クライアントは、受け取っているメディアストリームのフレームのクエリフィンガープリントを生成し、クライアントの内部クロックに基づいてこれらのクエリフィンガープリントにタイムスタンプすることができ、これらのタイムスタンプ付きクエリフィンガープリントをコンピュータシステムが受け取って分析することができる。さらに、コンピュータシステムは、既知の広告ポッドシーケンスなどの既知のメディアストリームのフレームの、既知のメディアストリーム内のタイムラインに沿って定められた基準時間又は「実時間（ｔｒｕｅ  ｔｉｍｅ）」に基づいてタイムスタンプされた基準フィンガープリントを提供されることもできる。
【００１４】
従って、コンピュータシステムは、クエリフィンガープリントが基準フィンガープリントに一致する一致点を発見するためにタイムスタンプ付きクエリフィンガープリントとタイムスタンプ付き基準フィンガープリントを比較して、一致点が見つかった時に、照合用クエリフィンガープリントのタイムスタンプが照合用基準フィンガープリントのタイムスタンプに一致すると結論付けることができる。
【００１５】
照合用クエリフィンガープリントのタイムスタンプと基準フィンガープリントのタイムスタンプとの間の相関を確立することは、クライアント時間と実時間との間の「同期ロック」又は時間マッピングを確立することに相当することができる。例えば、照合用クエリフィンガープリントのタイムスタンプと照合用基準フィガープリントのタイムスタンプとの間の差分は、既知のメディアストリーム内の実時間と、クライアントがメディアストリームを受け取った時のクライアント時間との間の時間オフセットを定めることができる。従って、コンピュータシステムは、既知のメディアストリーム内のフレームの実時間時点の知識を与えられると、確立された同期ロックを使用して、クライアントが受け取っているメディアストリーム内の同じフレームの関連するクライアント時間時点を決定することができる。例えば、コンピュータシステムは、所与の実時間時点に一致するクライアント時間時点を決定するために、実時間とクライアント時間との間の時間オフセットを適用することができる。
【００１６】
従って、上記の広告ポッドの例を続けると、コンピュータシステムは、確立された同期ロックを使用して、クライアントが受け取っているメディアストリーム内の広告Ａ３を置換すべきクライアント時間時点を示すクライアント時間値（例えば、クライアントが広告置換を開始すべきクライアント時間時点）に実時間値ＴＡ３を対応付けることができる。その後、クライアントは、この決定されたクライアント時間時点で広告Ａ３の置換を実行することができる。
【００１７】
しかしながら、このプロセスで発生し得る技術的課題として、クエリフィンガープリントと基準フィンガープリントとの間の信頼性の高いフィンガープリント照合を容易にできるほど十分な速さでクライアントがクエリフィンガープリントを生成しない場合がある。具体的に言えば、クライアントは、その限られた処理能力、メモリ及び／又はその他のリソースの節約に役立つように、受け取っているメディアストリームのフレームレートよりも大幅に低いことがある比較的低いフレームレートでフィンガープリントを生成するように構成されることがある。この結果、検出されたフィンガープリントの一致が不正確であったり、確立された同期ロックが不正確であったりすることがある。
【００１８】
例えば、毎秒３０フレームを有するビデオでは、毎秒２フレームなどの低いフレームレートでクエリフィンガープリントを生成するようにクライアントが設定されることがある。しかしながら、低レートでフィンガープリント照合を実行すると、フィンガープリント照合の信頼度が低くなってしまうことがある。
【００１９】
この困難性の１つの理由は、メディアストリームが、一定期間にわたってメディアコンテンツが実質的に変化しないメディアシーケンス部分に対応する同一又はほぼ同一のフレームの様々なサブシーケンスを含み得るからである。この例としては、一定期間にわたって静止画像を提示するビデオを挙げることができる。このシナリオでは、クエリフィンガープリントが、規定の一致許容差内で複数の連続する基準フィンガープリントに一致することがある。
【００２０】
この結果、コンピュータシステムによる所与の一致点の検出が比較的信頼度の低いものになってしまうことがある。従って、コンピュータシステムによる実時間とクライアント時間との間の確立されたマッピングが潜在的に不正確になり、ユーザ体験の問題を引き起こす恐れがある。例えば、不正確な時間マッピングの結果、クライアントが指示されたコンテンツ修正を実行するのが早すぎたり又は遅すぎたりしてしまうことがある。コンテンツ置換（例えば、広告置換）では、ユーザが、このタイミングの悪いコンテンツ修正を、提示されたメディアコンテンツの不連続性又は不一致性と認識してしまうことがある。
【課題を解決するための手段】
【００２１】
本開示によれば、複数の検出された一致点を考慮し、これらの点間を補間して実時間とクライアント時間との間の改善されたマッピングを確立することにより、この問題を少なくとも部分的に解決することができる。
【００２２】
代表的実装では、コンピュータシステムが、クライアントによって生成された低レートのクエリフィンガープリントを所与として上述したようなフィンガープリント比較を実行し、それぞれが実時間時点とクライアント時間時点との間の決定された相関を表す複数の一致点を一定期間にわたって検出することができる。コンピュータシステムは、これらの一致点を検出すると、これらの点の散布図をプログラム的に確立して線形回帰を実行し、実時間とクライアント時間との間の改善されたマッピングを表す最良適合線（ｂｅｓｔ−ｆｉｔ  ｌｉｎｅ）を確立することができる。
【００２３】
次に、コンピュータシステムは、次の時点でクライアントにコンテンツ修正を実行させ、又は他の関連する動作（例えば、コンテンツ修正の準備）を行うのを支援するように、この改善されたマッピングを基礎として使用して、クライアント時間のどの点が実時間の次の点に相関するかを予測することができる。例えば、コンピュータシステムは、改善されたマッピングを基礎として使用して、クライアントがコンテンツ修正を実行すべき次のフレームの実時間基準タイムスタンプにクライアント時間のどの点が相関するかを予測することができる。その後、コンピュータシステムは、この予測されたクライアント時間時点でクライアントにコンテンツ修正を実行させることができる。
【００２４】
必要に応じて添付図面を参照しながら以下の詳細な説明を読むことにより、当業者にはこれらの及びその他の態様、利点及び代替例が明らかになるであろう。さらに、本概要の説明及び後述する説明は、本発明を限定ではなく一例として示すものにすぎないと理解されたい。
【図面の簡単な説明】
【００２５】
【図１】開示する特徴を実装できるシステムを示す簡略ブロック図である。
【図２】それぞれの実時間値及びそれぞれのクライアント時間値をそれぞれが有する一致点の散布図例である。
【図３】本開示に従って実行できる動作を示すフローチャートである。
【図４】本開示に従って実行できる動作を示す別のフローチャートである。
【図５】本開示に従って動作できるコンピュータシステムのコンポーネントを示す簡略ブロック図である。
【発明を実施するための形態】
【００２６】
図面を参照すると、図１は、開示する様々な原理を適用できるシステム例の簡略ブロック図である。しかしながら、本明細書で説明するこの及びその他の構成及びプロセスは他の様々な形を取ることもできると理解されるであろう。例えば、要素及び動作は、並べ替え、分散させ、置換し、組み合わせ、省略し、追加し、又は別様に修正することができる。さらに、本明細書において１又は２以上のエンティティによって実行されるものとして説明する動作は、これらのエンティティが実行することも、及び／又はこれらのエンティティの代わりにプログラム命令を実行する１又は２以上のプロセッシングユニットなどがハードウェア、ファームウェア及び／又はソフトウェアを通じて実行することもできると理解されるであろう。
【００２７】
図１に示すように、このシステム例は、メディアソース１４からリアルタイムでメディアストリームを受け取るように構成されたメディアクライアント１２を含む。
【００２８】
実際に、メディアクライアント１２は、上述したように、ビデオ及び／又はオーディオコンテンツなどのメディアコンテンツを表すアナログ又はデジタルメディアストリームをメディアソース１４から受け取り、メディアコンテンツの出力及び／又はストリームの転送を行って、ディスプレイ画面及び／又はオーディオスピーカなどのユーザインターフェイス上にコンテンツを提示するように動作するよう構成することができる。メディアクライアントは、数ある可能性の中でも特に上述した形態のうちのいずれかを取ることができる。
【００２９】
メディアソース１４は、場合によってはメディアクライアント１２の形態に依存する様々な形態を取ることもできる。一例として、メディアクライアント１２がテレビである場合、メディアソース１４は、選択されたメディアストリームを出力してテレビが提示できるように構成されたローカルセットトップボックス（例えば、ケーブル又は衛星受信機）又はストリーミングメディアサーバとすることができ、或いはメディアソース１４は、数ある可能性の中でも特に放送テレビ局などとすることもできる。また、メディアクライアントがコンピュータである場合、メディアソースは、インターネットストリーミングメディアサーバ又はその他のメディアプロバイダを含むことができる。或いは、メディアソース１４は、メディアクライアント１２に一体化された、及び／又はメディアクライアント１２が再生のためにローカルにアクセスしてメディアストリームを受け取る（例えば、取り出す）ことができるデータストレージとすることもできる。その他の例も考えられる。
【００３０】
さらに図１に示すように、メディアクライアント１２は、ネットワーク（例えば、インターネット又はプライベートネットワーク）１６を介して、メディアソース１４に関連及び／又は一体化することもしないこともできるネットワークサーバ１８と通信することができる。
【００３１】
ある実装例では、メディアクライアント１２及びネットワークサーバ１８が、上述したような動作の実行を容易にするデータ通信に関与することができる。例えば、代表的なコンピュータシステムの態様をサーバ１８が実装し、クライアント１２と相互運用して同期ロックを確立し、同期ロックを適用してクライアントがコンテンツ修正を実行すべきクライアント時間時点を決定し、決定されたクライアント時間時点にクライアントにコンテンツ修正を実行させることもできる。さらに又は或いは、代表的なコンピュータシステムの態様をクライアント１２が実装し、サーバ１８と相互運用して同様の動作を実行することもできる。
【００３２】
上述したように、クライアント１２などのメディアクライアントは、メディアストリームを受け取っている時に、ストリームのコンテンツのセグメントを置換又は補足することなどのためにストリームのコンテンツの一部を修正することが有用な場合がある。さらに、上述したように、クライアントは、メディアストリーム内の特定の時点でこれを行うことが望ましい場合がある。例えば、ストリームがビデオフレーム及び／又はオーディオフレームなどのフレームシーケンスを定める場合、クライアントは、シーケンスの特定のフレームから開始する修正を実行することが望ましい場合がある。
【００３３】
コンピュータシステムは、このようなコンテンツ修正を容易にするために、最初にクライアントが受け取っているメディアストリームを識別することができる。例えば、コンピュータシステムは、最初にクライアントが受け取っているメディアストリームが修正すべき特定のコンテンツを含むメディアストリームであると判定することができる。コンピュータシステムは、メディアストリームを識別すると、クライアントがコンテンツ修正を実行すべきメディアストリーム内の特定の時点を決定し、この決定された時点でクライアントにコンテンツ修正を実行させることができる。
【００３４】
クライアントが受け取っているメディアストリームを識別する１つの方法は、クライアントが受け取っているメディアコンテンツを表すデジタルフィンガープリントデータをクライアント（又は付属装置）に生成させて、このフィンガープリントデータと既知のメディアストリームのメディアコンテンツを表す基準フィンガープリントデータとをサーバ１８に比較させ、フィンガープリント照合を使用してクライアントが既知のメディアストリームを受け取っていることを示すことである。
【００３５】
ある実装例では、サーバ１８又は別のこのようなエンティティが、既知のメディアストリームを表す基準フィンガープリントデータを確立し又は別様に入手することができる。例えば、サーバは、メディアストリームのフレームを表す基準デジタルフィンガープリントシーケンスを確立し又は提供されることができる。サーバ又は別のエンティティは、既知のメディアストリームのフレームをプログラム的に分析し、既知のメディアストリームのコピーを入力として受け取り、現在知られている又は後で開発されるメディアフィンガープリンティングプロセス又はアルゴリズムを適用して基準フィンガープリントを生成することによって、これらの基準フィンガープリントを確立することができる。これらの基準フィンガープリントは、フィンガープリント照合を容易にするように比較的高い粒度で生成することができる。例えば、毎秒３０フレームのビデオを含むメディアストリームの場合、シーケンスは、全てのフレームの、従って同様に毎秒３０フレームのレート又は別の妥当な高レートの基準ビデオフィンガープリントを含むことができる。
【００３６】
さらに、クライアント１２は、メディアストリームを受け取ると、受け取っているストリームのメディアコンテンツを表すクエリフィンガープリントデータをリアルタイムで生成し、これを分析のためにサーバ１８に送信することができる。クライアントは、フィンガープリント比較を容易にするために、基準フィンガープリントを確立するために適用される同じフィンガープリンティングプロセス又はアルゴリズムを使用してこれらのクエリフィンガープリントを確立することができる。しかしながら、上述したように、クライアントは、そのリソース限界（例えば、処理能力、メモリ及びネットワーク速度の限界）又はその他の理由に起因して、またこのクエリフィンガープリント生成がクライアントの進行中のプロセスとなり得ることによって、これらのクエリフィンガープリントを比較的低いレートで生成するように構成されることがある。例えば、ビデオを含むメディアストリームの場合、クライアントは、これらのクエリフィンガープリントを毎秒たった２フレームのレートで生成するように構成され、生成されたクエリフィンガープリントを１．５秒毎かそこらでサーバに送信することがある。その他の例も考えられる。
【００３７】
サーバは、クライアントからクエリフィンガープリントデータを受け取ると、クエリフィンガープリントデータを既知のメディアストリームの基準フィンガープリントデータと比較することができる。そして、サーバは、この比較によってクエリフィンガープリントデータが基準フィンガープリントデータに一致すると十分な信頼度で判定した場合、クライアントが受け取っているメディアストリームが既知のメディアストリーム（すなわち、既知のメディアストリームのコピー）であると結論付けることができる。
【００３８】
サーバは、このフィンガープリント比較をフレーム毎に実行することができる。例えば、ビデオコンテンツを考慮すると、サーバは、フレームのクエリフィンガープリントをフレームの基準フィンガープリントと比較する分析をビデオフレーム毎に実行することができる。この比較プロセスは、フィンガープリントの構造に応じて様々な形態のうちのいずれかを取ることができる。例えば、この比較は、フィンガープリント間の最大偏差を計算し、最大偏差が所定の許容差内に収まるかどうかを判定することを含むことができる。さらに、フィンガープリントが２進値である場合、この判定は、ブール型の判定とすることも、又は（フィンガープリントのそれぞれのビット位置間の不一致数としての）ハミング距離の計算を伴うこともできる。フィンガープリントが１０進値又はベクトル（例えば、ビデオフレーム領域毎のグレイ値）などのより複雑な値である場合、この判定は、値又はベクトル間の距離を求めることを含むことができる。他にも数多くの例が考えられる。
【００３９】
また、サーバは、このフィンガープリント比較プロセスを所望の許容差レベルで実行することもできる。例えば、この比較は、より多くの数の相違を認める許容差及び／又はより大きなサイズの相違を認める許容差などの、フィンガープリント間の相違の許容差が比較的大きな粗いものとすることができる。一例として、２つの３２ビットのフィンガープリントを互いに比較する場合、たとえ２つの又は別の指定数のビットが一致しない場合でも、粗い比較では、一般にこれらのフィンガープリントを互いに一致するとみなすことができる。或いは、この比較は、このような相違の許容差が低い、及び／又は根本的なメディアの特定の部分を表すと思われる特定のフィンガープリント成分に比較の焦点を当てた、より粒度の細かいものとすることもできる。
【００４０】
さらに、サーバは、一度に１つのクエリフィンガープリントに関してフィンガープリント比較を行うことができる。例えば、サーバは、規定の一致許容差内でクエリフィンガープリントに一致する基準フィンガープリントを発見するために、各順番に提供されるクエリフィンガープリントを基準フィンガープリントと比較することができる。
【００４１】
或いは、サーバは、一度にフィンガープリントのバンドル（ｂｕｎｄｌｅ  ｏｆ  ｆｉｎｇｅｒｐｒｉｎｔｓ）に関して比較を行うこともできる。例えば、サーバは、規定の一致許容差内で４つのクエリフィンガープリントのバンドルに一致する４つの基準フィンガープリントのバンドルを発見するために、（スライディングウィンドウベースで（ｏｎ  ａ  ｓｌｉｄｉｎｇ  ｗｉｎｄｏｗ  ｂａｓｉｓ）、又は離散的連続群として（ａｓ  ｄｉｓｃｒｅｔｅ，  ｓｅｑｕｅｎｔｉａｌ  ｇｒｏｕｐｓ））４つの連続するクエリフィンガープリントの各連続するバンドルを基準フィンガープリントと比較することができる。これを容易にするために、クエリフィンガープリントと基準フィンガープリントとが互いに異なるフレームレートで生成されている場合、サーバは、互いにクエリフィンガープリントのバンドルと同じ時間的間隔を空けた一致する基準フィンガープリントのバンドルのためにその検索を構成することができる。例えば、クエリフィンガープリントが毎秒２フレームで（すなわち、互いに５００ミリ秒間隔を空けて）生成され、基準フィンガープリントが毎秒３０フレームで生成されている場合、サーバは、互いに５００ミリ秒離れた４つの連続する一群のクエリフィンガープリントに規定の一致許容差内で一致する４つの基準フィンガープリントのバンドルを検索することができる。
【００４２】
従ってサーバは、一致するコンテンツを十分な信頼度で検出すると、メディアストリームの１又は２以上の一致点を識別したことになる。サーバが一度に１つのフィンガープリントを使用してフィンガープリント比較を実行した場合、各一致点は、照合用基準フィンガープリントが表すフレームになる。これに対し、サーバが一度に一群のフィンガープリントを使用してフィンガープリント比較を実行した場合、各一致点は、一致する群内の最初の又は別の指定された基準フィンガープリントが表すフレームになる。いずれにせよ、この一致は、クライアントが受け取っているメディアストリームが既知のメディアストリームであるとの結論を立証又は裏付けることができる。
【００４３】
或いは、サーバは、問題のメディアストリームを他の方法で識別することもできる。例えば、メディアストリームが、メディアストリームのエンティティに対応するウォーターマークデータを含む場合、クライアントは、このウォーターマークデータを読み取り又は別様に抽出してサーバにウォーターマークデータを報告することができる。すると、サーバは、報告されたウォーターマークデータを基礎として使用して、クライアントが受信及び／又は再生しているメディアストリームを識別することができる。
【００４４】
サーバは、クライアントが受け取っているメディアストリームを識別し終えると、クライアントがコンテンツ修正を実行すべきメディアストリームの時点を決定することができる。例えば、代表的な実装では、サーバが、既知のメディアストリーム内のコンテンツ修正を行うべき時点と、その時点で行うべきコンテンツ修正とを示す基準データを入手することができる。例えば、この基準データは、コンテンツ修正を開始すべき既知のメディアストリームの特定のフレームを識別することができる。従って、サーバは、基準データを参照してこの所望のコンテンツ修正時点を決定することができる。
【００４５】
次に、サーバは、メディアストリーム内の決定された時点でクライアントにコンテンツ修正を実行させる指令をクライアントに送信することができる。例えば、サーバは、ネットワーク１６を介して、メディアストリーム内の決定された時点を指定してクライアントに置換又はオーバレイ用のメディアを提供するメッセージ、或いはメディアストリーム内のその時点でクライアントが実行すべきコンテンツ修正についてクライアントに別様に指示するメッセージをクライアントに送信することができる。また、クライアントは、この指令を受け取って解釈し、これに応答してメディアストリーム内の指示された時点でコンテンツ修正を実行するように構成することができる。
【００４６】
このプロセスでは、サーバが、クライアントがメディアストリームのコンテンツ修正を実行すべき特定の時点を知ることができる。例えば、サーバがアクセスできる基準データは、この時点を既知のメディアストリーム内の、すなわち上述した「実時間」内のタイムラインで測定された特定の時間として指定することができる。例えば、上述したように、このタイムラインは、既知のメディアストリームの開始時における基点時間（ｏｒｉｇｉｎ  ｔｉｍｅ）（例えば、Ｔ＝０）から開始することができ、既知のメディアストリームの各フレームは、このタイムライン上の特定の時点で発生することができる。従って、サーバは、クライアントがメディアストリームのコンテンツ修正を実行すべき実時間時点を基準データから決定することができる。
【００４７】
しかしながら、クライアントの時間基準は異なる場合がある。上述したように、クライアントの時間基準は、クライアントの内部クロックに従って定められた「クライアント時間」とすることができる。クライアント時間及び実時間は、互いに同じ速度で進むことができれば最も有利であるが、これらの基準点が異なる可能性もある。従って、単に既知のメディアストリームの実時間時点が分かっていても、これ自体によってクライアント時間のコンテキストが得られるわけではない。この結果、上述したように、クライアントがコンテンツ修正の実行を開始すべきメディアストリーム内の時点をクライアントが理解できる形でサーバがどのように特徴付けることができるかが問題となる。
【００４８】
上記で提案したように、この問題に対処する１つの方法は、クライアントによって提供された照合用クエリフィンガープリントのタイムスタンプを、サーバがメディアストリームのクライアント時間基準を決定する方法としてサーバに使用させた後に、このクライアント時間基準を、クライアントがコンテンツ修正を開始すべきメディアストリーム内の時点を特徴付ける基礎としてサーバに使用させることである。
【００４９】
これを容易にするために、クライアントは、そのクエリフィンガープリントを生成する際に、クライアントの内部クロックに基づいて各クエリフィンガープリントにタイムスタンプすることができる。従って、クライアントが分析のためにサーバに送信するクエリフィンガープリントは、タイムスタンプ付きクエリフィンガープリントとすることができる。さらに、サーバは、既知のメディアストリームフレームのタイムスタンプ付き基準フィンガープリントを提供され又は別様に入手することができる。例えば、サーバは、（ｉ）フレームの基準フィンガープリントと、（ｉｉ）既知のメディアストリーム内の関連する実時間タイムスタンプとを既知のメディアストリームのフレーム毎に指定する基準データを提供されることができる。
【００５０】
サーバは、クライアントからタイムスタンプ付きクエリフィンガープリントを受け取ると、一致点、すなわちクエリフィンガープリントが基準フィンガープリントに一致するインスタンスを検出するために、クエリフィンガープリントを基準フィンガープリントと比較することができる。サーバは、１又は２以上のこのような一致点を検出すると、検出された一致点毎に、（ｉ）一致点の実時間タイムスタンプと、（ｉｉ）一致点のクライアント時間タイムスタンプとが分かるようになる。
【００５１】
従って、サーバは、実時間とクライアント時間との間の同期ロックを効果的に確立するようになる。すなわち、サーバは、この時点で、一致フレームがメディアストリーム内のどこに存在していたか、及びこのメディアストリーム内の時点におけるクライアント時間が何であったかが分かるようになるので、（ｉ）メディアストリーム内の実時間タイムスタンプと、（ｉｉ）クライアントの内部クロックに従うクライアント時間との間のマッピングを効果的に確立するようになる。上述したように、この同期ロックは時間オフセットに相当することができるので、サーバは、メディアストリーム内の所与の実時間時点に時間オフセットを適用して、メディアストリーム内の対応するクライアント時間時点を決定できるようになる。
【００５２】
サーバは、このメディアストリーム内の一致点を発見して同期ロックを確立すると、クライアントがメディアストリームのコンテンツ修正を実行すべきクライアント時間時点、すなわちクライアントがメディアストリーム内のコンテンツを開始すべき場所を計算することができる。例えば、サーバは、コンテンツ修正を行うべき実時間時点の基準データ指示を与えられると、同期ロックによって定められたオフセットを適用して、コンテンツ修正を行うべき関連するクライアント時間時点を決定することができる。或いは、サーバは、コンテンツ修正を開始すべき関連するクライアント時間時点を決定するために、既知のメディアストリーム内の一致点の実時間時点からコンテンツ修正を開始すべきフレーム時間までの期間を計算した後に、この計算された期間を一致点のクライアント時間時点に加算することもできる。他の例も考えられる。
【００５３】
次に、サーバは、この決定されたクライアント時間時点の明細を、このクライアント時間時点から開始するコンテンツ修正をクライアントが実行するための指令と共にクライアントに送信することができる。また、この時点から開始して実行すべきコンテンツ修正に関する情報をクライアントが未だ提供されていない場合、サーバは、このコンテンツ修正情報をクライアントに送信することもできる。例えば、サーバは、クライアントが受け取っているメディアストリームのコンテンツの代わりにクライアントが代替する特定の置換コンテンツをデータストレージから取り出してクライアントに送信することができる。或いは、サーバは、クライアントが置換コンテンツを取得できるネットワーク又はローカルストレージアドレスなどの、このような置換コンテンツへのポインタをクライアントに送信することもできる。
【００５４】
従って、クライアントは、指示されたクライアント時間時点からコンテンツ修正を開始するための指令をサーバから受け取ることができる。また、クライアントは、このクライアント時間時点で実行すべき修正を定めるデータを未だ提供されていない場合、サーバ又はサーバによって指定されたアドレスなどからこのデータを受け取ることもできる。その後、クライアントは、クライアントの内部クロックを参照することによって、指示されたクライアント時間時点から正確にコンテンツ修正を開始するように機能することができる。例えば、クライアントは、数ある可能性の中でも特に、クライアントが受け取っているメディアストリームのフレームを置換コンテンツのフレームに置き換え、又はクライアントが受け取っているメディアストリームのフレームに補足コンテンツを重ね合わせることを、指示されたクライアント時間時点から開始することができる。
【００５５】
しかしながら、上述したように、このプロセスでは、クライアントがそのクエリフィンガープリントを上述したような毎秒２フレームのビデオフィンガープリントなどの比較的低いレートで生成する場合、別の問題が発生することがある。このような低レートで生成されたクエリフィンガープリントをサーバに提供すると、メディアストリームの一致点をサーバが確信を持って識別することが困難になり、及び／又は同期ロックの信頼度が低下してしまうことがある。
【００５６】
上述したように、この困難性の１つの理由は、メディアストリームが、一定期間にわたってメディアコンテンツが全く変化しないメディアシーケンスの部分に相当する同一又はほぼ同一のフレームの様々なサブシーケンスを含む可能性があるからである。このシナリオでは、あるクエリフィンガープリントが、規定の一致許容差内で複数の連続する基準フィンガープリントに一致することがある。さらに、あるクエリフィンガープリントのバンドルが、規定の一致許容差内で複数の基準フィンガープリントのバンドルに一致することもある（例えば、恐らくはフェージング又はその他のばらつきに起因して、バンドル内の一部のクエリフィンガープリントが対応する基準フィンガープリントにほぼ一致する）。この結果、サーバによる一致の検出及び同期ロックの確立の信頼度が比較的低くなってしまうことがある。
【００５７】
上述したように、本開示によれば、この問題は、複数の検出された一致点を考慮し、これらの点間を補間して実時間とクライアント時間との間の改善されたマッピングを確立することによって少なくとも部分的に解決することができる。
【００５８】
代表的実装では、サーバが、クライアントから低レートのクエリフィンガープリントを受け取って（様々なクエリフィンガープリントの各々について、又は様々なクエリフィンガープリントのバンドルの各々について）上述したようなフィンガープリント比較を実行した時に、それぞれが実時間時点とクライアント時間時点との間の決定された相関を表す複数の一致点を一定期間にわたって検出することができる。サーバは、これらの一致点を検出すると、一方の軸に実時間が沿って他方の軸にクライアント時間が沿ったデカルト座標内でこれらの点の散布図をプログラム的に確立し、線形回帰を実行して、これらの点に基づいて最良適合線を確立することができる。
【００５９】
図２に、これを一例として示す。具体的に言えば、図２は、ｘ軸に沿って実時間を示し、ｙ軸に沿ってクライアント時間を示す散布図である。この散布図は、複数の代表的一致点を含み、図には、一致点間に確立された最良適合線を示す。この最良適合線は、実時間とクライアント時間との間の改善されたマッピング、仮想タイミング又は同期ロックを効果的に表す。従って、サーバは、十分な量の一致点にわたって線形回帰を実行することにより、低レートのクエリフィンガープリントに直面した際に、この改善されたマッピングを確立することができる。
【００６０】
なお、ここで説明する散布図及び最良適合分析は、幾何学的又は視覚的に行う必要はない。サーバは、検出された一致点の実時間−クライアント時間座標に基づいて、現在知られている又は後で開発されるいずれかの線形回帰アルゴリズムを使用して、このプロセスをアルゴリズム的に実行することができる。
【００６１】
また、クライアントのメディアストリームレート（毎秒フレーム）がサーバのものと同じであると仮定すれば、通常、このプロセスで確立される最良適合線は１の傾きを有することができる。これを所与とすると、最良適合線がプロット内のどこに垂直又は水平に存在するか、従って実時間とクライアント時間との間の時間オフセットが何であるかが問題となり得る。また、クライアントのメディアストリームレートがサーバのメディアストリームレートと若干異なるシナリオが存在することもでき、この場合は線の傾きが１ではないこともある。
【００６２】
次に、サーバは、この改善されたマッピングを基礎として使用して、コンテンツ修正又は関連する動作を行うべきフレームの基準タイムスタンプなどを用いて、クライアント時間のどの点が実時間の次の点に相関するかを予測することができる。また、サーバは、決定されたクライアント時間を指定して、このクライアント時間に達した時にクライアントに所望の動作を実行するように指示する指令をクライアントに送信することができる。
【００６３】
このプロセスの非限定的な例として、テレビ放送内に出現し得る広告ポッドを定めるメディアストリームについて考察する。上述したように、広告ポッドは、テレビコマーシャルなどの広告シーケンスを含み、クライアントが受け取っているリニア放送フィードなどのリニアメディアフィード内に任意の所与の時点で現れることができる。
【００６４】
実際に、サーバは、広告ポッドのフレームを表してこれに対応する、広告ポッド内に（実時間として）定められるタイムラインに沿った時点であるタイムスタンプ付きの基準フィンガープリントを提供されることができる。さらに、サーバは、広告ポッド内の広告のうちの特定の１つを置換すべき旨の指示と、広告置換を開始すべきフレームのタイムスタンプとを提供されることができる。
【００６５】
クライアントは、メディアフィードを受け取っている時に、継続的に或いは１又は２以上のその他のトリガに応答して、毎秒２フレームなどの低レートで放送フィードのタイムスタンプ付きクエリフィンガープリントを生成し、これらのタイムスタンプ付きクエリフィンガープリントを分析のためのサーバに報告することができる。サーバは、このような各クエリフィンガープリントと、広告ポッドシーケンスのフレームを表す基準フィンガープリントとを比較することにより、クライアントが既知の広告ポッドシーケンスを受け取っていることを検出することができる。
【００６６】
サーバは、クライアントが広告ポッドシーケンスを受け取っていると判定すると、実時間とクライアント時間との間の改善されたマッピングを確立して、クライアントが広告置換を開始すべきクライアント時間を決定するように機能することができる。
【００６７】
例えば、サーバは、報告されたクエリフィンガープリントのバンドルと、対応して間隔を空けた基準フィンガープリントのバンドルとを比較することによって、（場合によっては、クライアントが広告ポッドシーケンスを受け取っていることを最初の段階で検出するための基礎としてサーバが識別した１又は２以上の一致点から開始して）一定期間にわたって複数の一致点を発見することができる。上述したように、各一致点は、実時間時点（代表的な照合用基準フィンガープリントのタイムスタンプ）をクライアント時間時点（代表的な照合用クエリフィンガープリントのタイムスタンプ）に相関させる。さらに、サーバは、これらの一致点間の線形回帰を実行して、実時間とクライアント時間との間の改善されたマッピングを実時間とクライアント時間との間のオフセットの形で効果的に表す最良適合線を発見することができる。
【００６８】
サーバは、実時間とクライアント時間との間の改善されたマッピングを確立すると、このマッピングを基礎として適用して、広告置換を開始すべき実時間時点に対応するクライアント時間時点を決定することができる。具体的に言えば、サーバは、広告置換を開始すべきフレームの実時間時点（基準時間）が分かると、改善されたマッピングによって定められたオフセットを適用して、この実時間時点をクライアント時間時点に変換することができる。
【００６９】
次に、サーバは、この決定されたクライアント時間時点から広告置換を開始するための指令をクライアントに送信し、クライアントが未だ置換広告（又は置換広告へのポインタ）を提供されていない場合にはこの情報もクライアントに送信することができる。これに従って、クライアントは、指示されたクライアント時間時点で広告置換を実行することができる。
【００７０】
なお、上述したプロセスは、多くの方法で変更又は強化することができる。
【００７１】
一例として、サーバは、メディアストリームのセグメントが静的である（一定期間にわたって実質的に変化しない）可能性を考慮するのに役立つように、互いに一致する（すなわち、規定の一致許容差内の）あらゆるクエリフィンガープリントのバンドルを無視するように構成することができる。具体的に言えば、サーバは、クライアントからクエリフィンガープリントを受け取って連続するクエリフィンガープリントのバンドルを比較しようとする際に、このようなクエリフィンガープリントのそれぞれのバンドルを評価してバンドルのクエリフィンガープリントが互いに一致するかどうかを判定することができる。サーバは、バンドルのクエリフィンガープリントが全て互いに一致すると判定した場合、これに応答してこのクエリフィンガープリントのバンドルを一致点分析から除外することができる。例えば、サーバは、これに応答して、このクエリフィンガープリントのバンドルに一致する基準フィンガープリントのバンドルを発見しようとするのをやめることができる。一方で、サーバは、バンドルのクエリフィンガープリントが全て互いに一致するわけではないと判定した場合、その散布図及び最良適合分析に含めることができる一致点を発見するために、上述したような一致点分析に進むことができる。
【００７２】
この例では、バンドル内のクエリフィンガープリントが全て互いに一致するかどうかが問題となり得る。このような低レートクエリフィンガープリントの一致は、メディアストリームの十分に長い静的セグメントに関して発生することがある。従って、非常に信頼度の低い一致点を計算から外すのに役立つように、このクエリフィンガープリントのバンドルを一致点分析から除外することが有用となり得る。
【００７３】
一方で、４つの低レートクエリフィンガープリントのバンドルが１つの静的セグメントから別の異なる静的セグメントへの変化をまたぐシナリオについて考察する。例えば、ビデオコンテンツでは、バンドルの最初の２つのクエリフィンガープリントがシーン変化発生前のフレームを表し、バンドルの最後の２つのクエリフィンガープリントがシーン変化発生後のフレームを表すことがある。この状況では、バンドルの４つのクエリフィンガープリントが全て互いに一致するわけではなく、従ってサーバは、その一致点分析にこのバンドルを含めて、その散布図及び最良適合分析に含めるべき一致点を検出することができる。しかしながら、この例では、第２及び第３のクエリフィンガープリントによって表されるフレーム間のシーン変化が時間的にどこで発生したかが不明であるため、一致点が最良適合線上に正しく位置するかどうかが不確かである。しかしながら、上述したように、一致点の量が十分であれば、依然として最良適合分析は有用な改善されたマッピングをもたらすはずである。
【００７４】
従って、別の例として、サーバは、補間を進める条件として、問題のメディアストリーム内に少なくとも閾値最低量の一致点が存在することを必要とすることができる。例えば、サーバは、問題のメディアストリーム（例えば、広告ポッド）内でどれほどの一致点を発見したかをカウントし続けることができる。サーバは、メディアストリーム内の一致点の数が所定の閾値を満たしていると判定すると、これに応答して、識別された一致点に基づく改善された時間マッピングを確立するために上述した散布図及び最良適合分析を実行し、この時間マッピングを上述したように使用することができる。具体的に言えば、一致点の閾値最低量は、３つの一致点、又は工学的設計によってこの目的のために十分と見なされる別の数の一致点とすることができる。
【００７５】
さらに別の例として、サーバは、その散布図及び最良適合分析を開始した後に、サーバば最良適合マッピングが使用可能であるとみなす停止点に到達するまで、一致点の発見及びその最良適合時間マッピングの精緻化を継続することができる。この停止点は、様々な形態を取ることができる。例えば、停止点は、上述した閾値最低量などの所定の閾値量の一致点をサーバが計算に入れた時点とすることができる。これに替えて、又はこれに加えて、停止点は、分析に含められるさらなる一致点の各々に対して最良適合線（又は実時間とクライアント時間との間の関連する時間オフセット）が（例えば、工学的設計によって予め定められた）最小閾値量よりも大きく変化していないことを検出することなどによって、サーバが分析の安定性を検出した時点とすることもできる。サーバは、停止点を検出すると一致点の収集を停止し、最新の最良適合分析を使用して、動作（例えば、コンテンツ修正）を行うべき実時間時点を関連するクライアント時間時点に対応付けることができる。また、サーバは、これに従って、決定されたクライアント時間時点で動作を実行するようにクライアントに指示することができる。
【００７６】
さらに別の例として、サーバは、上記のプロセスを使用してコンテンツ修正などを行うべきクライアント時間時点を決定することに加え、このプロセスを使用して、クライアントがコンテンツ修正の準備を開始するのに有用と思われる前倒しクライアント時間時点（ａｄｖａｎｃｅｄ  ｃｌｉｅｎｔ−ｔｉｍｅ  ｐｏｉｎｔ）を決定することもできる。例えば、クライアントがインターネットＵＲＬ又はその他のネットワークアドレス又はソースからのストリーミング又はダウンロードを通じて置換又はオーバレイコンテンツを取得し始める必要があり、クライアントがこの置換又はオーバレイコンテンツを実際に取得し又は受け取り始めるのにある程度の時間がかかる場合、サーバは、クライアントが置換又はオーバレイコンテンツを取得し又は受け取り始めるのに十分な時間を残すように、コンテンツ修正の開始時間よりも十分に手前の前倒しクライアント時間時点を計算することができる。その後、サーバは、前倒しクライアント時間時点を指定して置換又はオーバレイコンテンツを取得するプロセスをクライアント時間時点でクライアントに開始させる指令をクライアントに送信することができ、クライアントは、これに従って続行することができる。従って、クライアントは、コンテンツ修正を実行する必要がある時間までに置換又はオーバレイコンテンツを取得し又は受け取り始めることができる。
【００７７】
さらに別の例として、上記の説明ではサーバが様々な動作を実行するように示しているが、代わりにクライアント又は別の装置が動作の一部又は全部を実行することもできる。例えば、上記の説明では、実時間とクライアント時間との間の改善されたマッピングを確立するように機能するサーバ、及びコンテンツ修正又はその他の動作を行うべきクライアント時間時点を決定するように機能するサーバについて説明しているが、クライアントがこれらの動作自体の一部を実行するように構成することもできる。
【００７８】
例えば、代表的変形例では、クライアントが既知のメディアストリームを受け取っていて、実時間をクライアント時間に相関させる複数の一致点を発見したとサーバが判定し、又はサーバがこれらの一致点を発見すると、サーバがクライアントにこれらの一致点を報告して、各一致点の実時間及びクライアント時間座標をクライアントに通知する。その後、クライアントは、実時間とクライアント時間との間の改善されたマッピングを確立するために、この提供されたデータを使用して上述した散布図及び最良適合分析を実行することができる。さらに、サーバは、クライアントが特定の動作（例えば、コンテンツ修正又はコンテンツ修正の準備）に関与すべき実時間時点を指定する指令をクライアントに提供することができ、クライアントは、上述したような確立されたマッピングを適用して、この実時間時点をクライアント時間時点に変換することができる。その後、クライアントは、決定されたクライアント時間時点で指示された動作を実行するように機能することができる。
【００７９】
さらに、クライアント自体がフィンガープリント照合プロセスを実行することもできる。例えば、サーバは、クライアントが既知のメディアストリームを受け取っていると判定すると、メディアストリームの次の部分のタイムスタンプ付き基準フィンガープリントの組をクライアントに提供して、所望の動作を実行すべきメディアストリーム内のフレームの基準タイムスタンプをクライアントに通知することができる。
【００８０】
例えば、クライアントが既知のメディアストリームを受け取っているとサーバが判定すると、クライアントは、（ｉ）メディアストリーム内の実時間タイムスタンプと（ｉｉ）クライアントの内部クロックに従う時間との間の同期ロックを確立してコンテンツ修正を行うべきクライアント時間時点を決定するプロセスを実行することができる。ある実装例では、これを容易にするために、サーバが、クライアントに高レートのフィンガープリンティングに切り替えるように指示することに加え、メディアストリームの次の部分の一連の実時間タイムスタンプ付き基準フィンガープリントをクライアントに提供して、コンテンツ修正を開始すべきメディアストリーム内のフレームの実時間タイムスタンプをクライアントに知らせることができる。
【００８１】
従って、クライアントは、サーバからこれらのタイムスタンプ付き基準フィンガープリントを受け取ることができる。また、クライアントは、一致点を発見するために、その低レートクエリフィンガープリントと提供された基準フィンガープリントとを比較することができる。クライアントは、複数の一致点を発見した時又はその後に、上述した散布図及び最良適合分析を同様に実行して、実時間とクライアント時間との間の改善されたマッピングを確立することができる。さらに、クライアントは、この確立されたマッピングを上述した方法で適用して、指示されたコンテンツ修正又はその他の動作を行うべきクライアント時間時点を決定することができる。その後、クライアントは、決定されたクライアント時間時点で指示された動作を実行することができる。
【００８２】
また、上記のプロセスは、クライアントが（例えば、現在の再生及び／又は記憶のために）受け取っているリニア放送フィードのリアルタイム分析に関しても、クライアントがデータストレージなどから（例えば、現在の再生又は転送のために）取り出しているメディアストリームの分析に関しても適用することができる。他の実装も考えられる。
【００８３】
図３は、上記の説明に従ってコンピュータシステムが実行できる方法を示すフローチャートである。この図には、方法の動作を特定の順序で実行されるものとして示しているが、動作によっては他の動作と当時に実行できるものもあり、他の修正も考えられる。
【００８４】
図３に示すように、ブロック３０において、コンピュータシステムは、クライアントが受け取っているメディアストリームを表す、クライアントのクロックに従うクライアント時間がタイムスタンプされたクエリフィンガープリントを受け取る。さらに、ブロック３２において、場合によってはブロック３０と並行して、コンピュータシステムは、受け取ったクエリフィンガープリントと、既知のメディアストリームを表す、既知のメディアストリーム内のタイムラインに従う実時間がタイムスタンプされた基準フィンガープリントとを比較する。ブロック３４において、コンピュータシステムは、検出された一致点に基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行する。
【００８５】
次に、ブロック３６において、コンピュータシステムは、確立されたマッピングを基礎として適用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定することができる。ブロック３８において、コンピュータシステムは、決定されたクライアント時間時点でクライアントに動作を実行させる。
【００８６】
上記の説明によれば、決定されたクライアント時間時点でコンピュータシステムがクライアントに実行させる動作は、コンテンツ修正を含むことができる。例えば、クライアントが受け取っているメディアストリームは、広告シーケンスを定める広告ポッドを含むことができ、コンテンツ修正は、シーケンスの広告を置換メディアコンテンツに置き換えることを含むことができる。或いは、この動作は、コンテンツ修正を容易にする新たなコンテンツを取得するプロセスを開始することなどの、このようなコンテンツ修正の準備を含むこともできる。他の動作も可能である。
【００８７】
さらに、上述したように、確立されたマッピングを基礎として適用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定する動作は、確立されたマッピングを基礎として使用して、既知のメディアストリームに対して動作を実行すべき所定の実時間時点を、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべき対応するクライアント時間時点に対応付けることを含むことができる。例えば、確立されたマッピングを適用することは、コンテンツ修正を行うべき既知のメディアストリームのフレームの実時間時点を所与として、この実時間時点を、クライアントが受け取っているメディアストリームのコンテンツ修正をクライアントが実行すべき対応するクライアント時間時点に変換することを含むことができる。
【００８８】
また、上述したように、このようなコンピュータシステムは、クライアントとネットワーク通信するサーバが実装することもできる。この場合、決定されたクライアント時間時点でクライアントに動作を実行させる動作は、決定されたクライアント時間時点で動作を実行することによってクライアントが応答する指令をサーバからクライアントに送信することを含むことができる。
【００８９】
さらに、上述したように、このプロセスの各一致点は、（ｉ）クエリフィンガープリントのそれぞれのバンドルと（ｉｉ）基準フィンガープリントとの間の比較に基づくことができる。この場合、方法は、内部的に一致するバンドルをこのプロセスから除外するステップをさらに含むことができる。例えば、方法は、クエリフィンガープリントの所与のバンドルのクエリフィンガープリントが互いに一致することを検出するステップと、所与のバンドルのクエリフィンガープリントが互いに一致することを検出したことに応答して、この所与のバンドルを線形回帰の一致点の確立に使用することから除外するステップを含むことができる。
【００９０】
さらに、上記の説明によれば、方法は、コンピュータシステムが、検出された一致点のうちの１つ又は２つ以上を基礎として使用して、クライアントが受け取っているメディアストリームが既知のメディアストリームであると判定するステップを含むことができる。例えば、コンピュータシステムは、最初にこの判定を行った後に、少なくともこの判定を行ったことに応答して線形回帰を実行し、マッピングを適用し、決定されたクライアント時間時点でクライアントに動作を実行させることができる。換言すれば、この状況では、線形回帰を実行し、マッピングを適用し、決定されたクライアント時間時点でクライアントに動作を実行させることによって、少なくともクライアントが受け取っているメディアストリームが既知のメディアストリームであるとの判定にまとめて応答することができる。
【００９１】
図４は、クライアント又は他の１又は２以上のエンティティが本開示に従って実行できる方法を示す別のフローチャートである。ここでも、方法の動作を特定の順序で実行されるものとして示しているが、動作によっては他の動作と当時に実行できるものもあり、他の修正も考えられる。
【００９２】
図４に示すように、ブロック４０において、方法は、（ｉ）クライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントとの間の複数の一致点を確認するステップを含み、各識別される一致点は、（ｉ）クライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと、（ｉｉ）既知のメディアストリーム内のタイムラインに従う実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定める。
【００９３】
さらに、ブロック４２において、方法は、確認された複数の一致点のタイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行するステップを含む。次に、ブロック４４において、方法は、確立されたマッピングを基礎として使用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定するステップを含む。ブロック４６において、方法は、決定されたクライアント時間時点で、クライアントが受け取っているメディアストリームに対して動作を実行するステップを含む。
【００９４】
上記の説明によれば、複数の一致点を確認する動作は様々な形態を取ることができる。例えば、この動作は、複数の一致点を示すデータセットをクライアントが受け取ることを含むことができる。上述したような実装例では、クライアントが線形回帰を実行できるように、サーバがフィンガープリント比較を実行して一致点を決定し、各一致点のクライアント時間タイムスタンプと実時間タイムスタンプとを含む一致点に関する情報をクライアントに送信することもできる。
【００９５】
或いは、上述したように、複数の一致点を確認する動作は、クライアントが実時間タイムスタンプ付き基準フィンガープリントを受け取り、クライアントがクライアント時間タイムスタンプ付きクエリフィンガープリントを生成し、比較に基づいて一致点を確認するために、生成されたクエリフィンガープリントと受け取られた基準フィンガープリントとをクライアントが比較することを含むこともできる。さらに、上述したように、各一致点は、（ｉ）クエリフィンガープリントのそれぞれのバンドルと（ｉｉ）基準フィンガープリントとの間の比較に基づくことができる。この場合、方法は、所与のバンドルのクエリフィンガープリントが互いに一致することを検出し、所与のバンドルのクエリフィンガープリントが互いに一致することを検出したことに応答して、この所与のバンドルを線形回帰の一致点の確立に使用することから除外するステップをさらに含むことができる。
【００９６】
また、上述したように、クライアントが受け取っているメディアストリームに対する動作は、様々な形態を取ることができる。例えば、この動作は、広告ポッド内の広告置換などのコンテンツ修正を含むことができる。或いは、この動作は、コンテンツ修正を容易にするコンテンツの取得を開始することなどの、このようなコンテンツ修正の準備を含むこともできる。他の例も考えられる。
【００９７】
さらに、上記の説明によれば、確立されたマッピングを基礎として使用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定する動作は、確立されたマッピングを基礎として使用して、既知のメディアストリームに対して動作を実行すべき所定の実時間時点を、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべき対応するクライアント時間時点に対応付けることを含むことができる。
【００９８】
次に、図５は、上述した様々な動作を実行できるコンピュータシステム例のブロック図である。上述したように、このようなコンピュータシステムの態様は、数ある可能性の中でも特にメディアクライアント１２及び／又はサーバ１８が実装することができる。従って、図４のブロック図は、１又は２以上のこのようなエンティティのコンポーネントを表すことができる。
【００９９】
図５に示すように、コンピュータシステム例は、ネットワーク通信インターフェイス５２と、プロセッシングユニット５４と、非一時的データストレージ５６とを含み、これらは全て、ネットワーク、メッセージバス及び／又は１又は２以上の他の接続機構５８を通じて互いに結合又は通信可能に連結することができる。
【０１００】
ネットワーク通信インターフェイス５２は、コンピュータシステムが送信及び受信を行えるようにすることができる。ネットワーク通信インターフェイス５２は、数ある可能性の中でも特に、有線及び／又は無線イーサネットインターフェイスと、関連する回路及びソフトウェアとを含むことができる。プロセッシングユニット５４は、１又は２以上の汎用プロセッサ（例えば、マイクロプロセッサ）及び／又は１又は２以上の専用プロセッサ（例えば、特定用途向け集積回路など）を含むことができる。非一時的データストレージ４６は、磁気、光学又はフラッシュストレージなどの１又は２以上の揮発性及び／又は不揮発性ストレージコンポーネントを含むことができる。
【０１０１】
さらに図５に示すように、非一時的データストレージ５６は、プロセッシングユニットがコンピュータシステムに上述したような動作を実行させるために実行できるプログラム命令６０を記憶する（例えば、保持し、プログラム命令６０によって符号化され、或いは別様に具体化し又は含む）。
【０１０２】
一例として、これらの動作は、（ｉ）メディアクライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントとの間の複数の一致点を識別するステップを含むことができ、各識別される一致点は、（ｉ）メディアクライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと（ｉｉ）既知のメディアストリーム内のタイムラインに従って定められた実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定める。さらに、この動作は、識別された複数の一致点のタイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行するステップを含むことができる。次に、この動作は、確立されたマッピングを基礎として使用して、メディアクライアントが受け取っているメディアストリームのコンテンツ修正をメディアクライアントが実行すべきクライアント時間時点を決定するステップを含むことができる。また、この動作は、決定されたクライアント時間時点で、メディアクライアントにコンテンツ修正を実行させるステップを含むことができる。
【０１０３】
さらに、このコンテキストには上述した様々な特徴を組み入れることができ、逆もまた同様である。例えば、マッピングを使用するステップは、コンテンツ修正の所定の実時間時点を対応するクライアント時間時点に対応付けるステップを含むことができる。また、コンテンツ修正は、数ある可能性の中でも特に、広告ポッド内の広告を置き換えることなどのコンテンツ置換を含むことも、或いはコンテンツをオーバレイすることを含むこともできる。
【０１０４】
また、コンピュータシステムがサーバに配置及び／又は実装される場合、決定されたクライアント時間時点でメディアクライアントにコンテンツ修正を実行させる動作は、これをメディアクライアントに行わせる指令を出力してメディアクライアントに送信し、及び／又はメディアクライアントに送るステップを含むことができる。さらに、これらの動作は、互いに一致するクエリフィンガープリントのバンドルを分析から除外するステップを含むことができる。また、この動作は、識別された一致点のうちの１つ又は２つ以上を基礎として使用して、クライアントが受け取っているメディアストリームが既知のメディアストリームであると判定するステップをさらに含むことができ、この場合、他の動作は、この判定に応答してまとめて実行することができる。
【０１０５】
これに替えて、又はこれに加えて、これらの動作は、（ｉ）クライアントが受け取っているメディアストリームを表すクエリフィンガープリントと（ｉｉ）基準フィンガープリントとの間の複数の一致点を確認するステップを含むこともでき、各識別される一致点は、（ｉ）クライアントのクロックに従って定められたクライアント時間がタイムスタンプされたクエリフィンガープリントと（ｉｉ）既知のメディアストリーム内のタイムラインに従って定められた実時間がタイムスタンプされた基準フィンガープリントとの間のそれぞれの一致を定める。さらに、これらの動作は、確認された複数の一致点のタイムスタンプに基づいて、実時間とクライアント時間との間のマッピングを確立する線形回帰を実行するステップを含むことができる。次に、これらの動作は、確立されたマッピングを基礎として使用して、クライアントが受け取っているメディアストリームに対してクライアントが動作を実行すべきクライアント時間時点を決定するステップを含むことができる。これらの動作は、決定されたクライアント時間時点で、クライアントが受け取っているメディアストリームに対して動作を実行するステップを含むことができる。
【０１０６】
ここでも、このコンテキストには上述した様々な特徴を組み入れることができ、逆もまた同様である。例えば、コンピュータシステムがサーバに配置及び／又は実装される場合、一致点を確認する動作は、一致点の一部又は全部を示すデータを受け取るステップを含むことができ、及び／又は（ｉ）クエリフィンガープリントを生成し、（ｉｉ）基準フィンガープリントを受け取り、（ｉｉｉ）クエリフィンガープリントと基準フィンガープリントを比較して一致点を確認するステップを含むことができる。さらに、クライアントが受け取っているメディアストリームに対する動作は、広告置換などのコンテンツ修正、又はコンテンツ修正の準備を含むことができる。
【０１０７】
また、上述した様々な動作は、非一時的コンピュータ可読媒体に記憶された、プロセッシングユニットが動作を実行するために（例えば、動作を実行させるために）実行できるプログラム命令によって定めることができる。このような非一時的コンピュータ可読媒体は、クライアント、サーバ及び／又は別のエンティティにおいて提供、統合又は別様に実装することができる。さらに、このような動作は他の形態を取ることもできる。
【０１０８】
以上、例示的な実施形態について説明した。しかしながら、当業者であれば、本発明の実際の範囲及び趣旨から逸脱することなくこれらの実施形態に変更及び修正を行うことができると理解するであろう。
【図１】
2021530928.tif 000003
【図２】
2021530928.tif 000004
【図３】
2021530928.tif 000005
【図４】
2021530928.tif 000006
【図５】
2021530928.tif 000007
【国際調査報告】
2021530928.tif 000008
2021530928.tif 000009