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