(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-11-22
(45)【発行日】2022-12-01
(54)【発明の名称】新規コンテンツを取得する際の予想待ち時間に基づくコンテンツ修正の事前準備
(51)【国際特許分類】
H04N 21/458 20110101AFI20221124BHJP
H04L 67/02 20220101ALI20221124BHJP
H04N 21/438 20110101ALI20221124BHJP
H04N 21/442 20110101ALI20221124BHJP
【FI】
H04N21/458
H04L67/02
H04N21/438
H04N21/442
(21)【出願番号】P 2021502952
(86)(22)【出願日】2019-06-07
(86)【国際出願番号】 US2019035967
(87)【国際公開番号】W WO2020018191
(87)【国際公開日】2020-01-23
【審査請求日】2021-03-18
(32)【優先日】2018-07-19
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-10-22
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521212432
【氏名又は名称】ロク インコーポレイテッド
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100151987
【氏名又は名称】谷口 信行
(72)【発明者】
【氏名】ドゥンカー ペーター
(72)【発明者】
【氏名】クレーマー マルクス ケイ
(72)【発明者】
【氏名】マーチャント シャシャンク シー
(72)【発明者】
【氏名】シーレン カート アール
【審査官】鈴木 順三
(56)【参考文献】
【文献】特開2018-019404(JP,A)
【文献】特開2003-124983(JP,A)
【文献】国際公開第2008/056407(WO,A1)
【文献】特開2011-124940(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
H04L 67/00 - 67/75
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
メディアクライアントが新規コンテンツ
を使用してコンテンツ
置換を実行すべきメディアストリーム内の次の時点を決定するステップと、
前記次の時点における前記コンテンツ
置換の実行を容易にするために前記メディアクライアントが前記新規コンテンツの取得プロセスを開始すべき前倒し時点をスケジュールするステップであって、ここで、前記前倒し時点をスケジュールするステップは、コンテンツ取得期間を決定することと、少なくとも前記決定されたコンテンツ取得期間だけ前記次の時点よりも早くなるように前記前倒し時点を設定することとを含むステップと、
前記前倒し時点において、前記メディアクライアントが前記新規コンテンツの前記取得プロセスを開始するステップと、
前記次の時点において、前記メディアクライアントが前記取得された新規コンテンツを使用して前記コンテンツ
置換を実行するステップであって、ここで、前記コンテンツ
置換を実行するステップは、前記コンテンツ
置換の開始時にブラックフレームを追加すること及び/又は前記
新規コンテンツに置換されるコンテンツの最後にフェードアウトを追加することを含むステップと、
を含むことを特徴とする方法。
【請求項2】
前記コンテンツ取得期間を決定するステップは、過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測するステップを含む、
請求項1に記載の方法。
【請求項3】
前記予測を容易にするためにコンテンツ取得期間を追跡するステップをさらに含む、
請求項2に記載の方法。
【請求項4】
過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測するステップは、
前記新規コンテンツの取得に関連する少なくとも1つの動作要因の状態を決定するステップと、
前記決定された状態と相関する過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測するステップと、
を含む、請求項2に記載の方法。
【請求項5】
前記少なくとも1つの動作要因は、コンテンツソース、プロセッサ負荷、メモリ負荷、ネットワーク速度及び時刻から成る群から選択される少なくとも1つの要因を含む、
請求項4に記載の方法。
【請求項6】
前記コンテンツ取得期間を決定するステップは、前記予測されたコンテンツ取得期間に安全時間区分を加算するステップをさらに含む、
請求項2に記載の方法。
【請求項7】
前記コンテンツ取得期間は静的に定められる、
請求項1に記載の方法。
【請求項8】
前記メディアクライアントが前記メディアストリームをリニア放送フィードにおいて受け取っている間に実行される、
請求項1に記載の方法。
【請求項9】
前記コンテンツ
置換は、広告置換を含む、
請求項8に記載の方法。
【請求項10】
前記メディアクライアントが前記メディアストリームを再生している間に実行される、
請求項1に記載の方法。
【請求項11】
メディアクライアントであって、
プロセッシングユニットと、
非一時的データストレージと、
前記非一時的データストレージに記憶されて、前記プロセッシングユニットが前記メディアクライアントに動作を実行させるために実行できるプログラム命令と、
を備え、前記動作は、
前記メディアクライアントが新規コンテンツ
を使用してコンテンツ
置換を実行すべきメディアストリーム内の次の時点を決定することと、
前記次の時点における前記コンテンツ
置換の実行を容易にするために前記メディアクライアントが前記新規コンテンツの取得プロセスを開始すべき前倒し時点を設定することであって、ここで、前記前倒し時点を設定することは、コンテンツ取得期間を決定することと、少なくとも前記決定されたコンテンツ取得期間だけ前記次の時点よりも早くなるように前記前倒し時点を設定することとを含むことと、
前記前倒し時点において、前記新規コンテンツの前記取得プロセスを開始することと、
前記次の時点において、前記取得された新規コンテンツを使用して前記コンテンツ
置換を実行することとであって、ここで、前記コンテンツ
置換を実行することは、前記コンテンツ
置換の開始時にブラックフレームを追加すること及び/又は前記
新規コンテンツに置換されるコンテンツの最後にフェードアウトを追加することを含むことと、
を含む、
ことを特徴とするメディアクライアント。
【請求項12】
前記コンテンツ取得期間を決定することは、過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測することを含む、
請求項11に記載のメディアクライアント。
【請求項13】
前記動作は、前記予測を容易にするためにコンテンツ取得期間を追跡することをさらに含む、
請求項12に記載のメディアクライアント。
【請求項14】
過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測することは、
前記新規コンテンツの取得に関連する少なくとも1つの動作要因の状態を決定することと、
前記決定された状態と相関する過去のコンテンツ取得期間の事例に基づいて前記コンテンツ取得期間を予測することと、
を含む、請求項12に記載のメディアクライアント。
【請求項15】
前記少なくとも1つの動作要因は、コンテンツソース、プロセッサ負荷、メモリ負荷、ネットワーク速度及び時刻から成る群から選択される少なくとも1つの要因を含む、
請求項14に記載のメディアクライアント。
【請求項16】
前記コンテンツ取得期間を決定することは、前記予測されたコンテンツ取得期間に安全時間区分を加算することをさらに含む、
請求項12に記載のメディアクライアント。
【請求項17】
前記コンテンツ取得期間は静的に定められる、
請求項11に記載のメディアクライアント。
【請求項18】
前記動作は、前記メディアクライアントが前記メディアストリームをリニア放送フィードにおいて受け取っている間に実行される、
請求項11に記載のメディアクライアント。
【請求項19】
前記コンテンツ
置換は、広告置換を含む、
請求項11に記載のメディアクライアント。
【請求項20】
クライアントが備えるプロセッシングユニットが動作を実行するために実行できる命令を記憶した非一時的コンピュータ可読媒体であって、前記動作は、
前記クライアントが新規コンテンツ
を使用してコンテンツ
置換を実行すべき、前記クライアントが受け取っているメディアストリーム内の次の時点を決定することと、
前記メディアストリーム内の前記次の時点における前記コンテンツ
置換の実行を容易にするために前記クライアントが前記新規コンテンツの取得プロセスを開始すべき前倒し時点を設定することであって、ここで、前記前倒し時点を設定することは、コンテンツ取得期間を決定することと、少なくとも前記決定されたコンテンツ取得期間だけ前記次の時点よりも早くなるように前記前倒し時点を設定することとを含むことと、
前記前倒し時点において、前記新規コンテンツの前記取得プロセスを前記クライアントに開始させることと、
前記次の時点において、前記取得された新規コンテンツを使用して前記クライアントに前記コンテンツ
置換を実行させることであって、ここで、前記コンテンツ
置換を実行させることは、前記コンテンツ
置換の開始時にブラックフレームを追加させること及び/又は前記
新規コンテンツに置換されるコンテンツの最後にフェードアウトを追加させることを含むことと、
を含む、ことを特徴とする非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照〕
本出願は、2018年10月22日に出願された米国特許出願第16/166,962号、及び2018年7月19日に出願された米国仮特許出願第62/700,647号に対する優先権を主張するものであり、これらの各文献はその全体が引用により本明細書に組み入れられる。
【背景技術】
【0002】
典型的なメディアクライアントは、ビデオ及び/又はオーディオコンテンツなどのメディアコンテンツを表すアナログ又はデジタルメディアストリームを受け取り、メディアコンテンツの出力及び/又はストリームの転送を行って、ディスプレイ画面及び/又はオーディオスピーカなどのユーザインターフェイス上にコンテンツを提示するように動作する。このようなクライアントの例としては、テレビ、コンピュータモニタ、投影システム、スピーカ、ヘッドフォン、セットトップボックス(例えば、ケーブル又は衛星TV受信機)、デジタルビデオレコーダ、ラジオ、パーソナルコンピュータ、ゲーム機、ストリーミングメディアプレーヤなどが挙げられる。
【0003】
一例として、メディアクライアントは、メディアストリーム(例えば、無線放送ストリーム、セットトップボックスからのメディアストリーム出力、デジタル記憶媒体から再生されたメディアストリーム、インターネットストリーム、又は別のこのようなストリーム)を受信して、このストリームのメディアコンテンツをユーザに提示できるテレビとすることができる。別の例として、メディアクライアントは、多チャンネル映像番組配信事業者(multi-channel video program distributor)から放送ストリームを受信して、高精細マルチメディアインターフェイス(HDMI(登録商標))ケーブル又はその他のインターフェイスを介してストリームのメディアコンテンツをテレビ及び/又はオーディオ/ビデオ受信機に出力して再生できるセットトップボックスとすることもできる。さらに別の例として、メディアクライアントは、同様に放送ストリームを受信するが、このストリームを記憶して後で再生できるデジタルビデオ又はオーディオレコーダとすることもできる。さらに別の例として、メディアクライアントは、ラジオ、コンピュータ、或いは他の受信機又はオーディオ記憶装置からオーディオストリームを受信して、このストリームのオーディオコンテンツをユーザに提示できるスピーカ又はヘッドフォンとすることもできる。他にも数多くの例が考えられる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
いくつかの状況では、メディアクライアントが、メディアストリームの受信中にストリームのメディアコンテンツの一部を修正することが有用な場合がある。例えば、ユーザに対してコンテンツが再生される際に、ユーザが当初含まれていた広告の代わりに置換広告を受け取るように、クライアントがメディアコンテンツの広告又はその他のセグメントを置換広告又はその他の置換コンテンツに動的に置き換えることが有用な場合がある。別の例として、ユーザに対してコンテンツが再生される際に、ユーザが当初含まれていたコンテンツと共に補足コンテンツを受け取るように、クライアントがメディアコンテンツの一部をチャンネル識別、コンテキスト情報又は広告コンテンツなどのオーバーレイ又は分割画面コンテンツで動的に補足することが有用な場合がある。
【0005】
さらに、クライアントがメディアストリーム内の特定の時点でこのようなコンテンツ修正を実行することが望ましい場合もある。例えば、クライアントが既存の広告を置換広告に動的に置き換える場合には、メディアストリーム内で既存の広告が開始した時点でクライアントが置換広告を配置することが望ましいと考えられる。同様に、クライアントがメディアコンテンツの特定の部分をその部分に関連するオーバーレイで補足する場合には、この部分の開始時にクライアントがオーバーレイを開始することが望ましいと考えられる。その他の例も考えられる。
【0006】
具体的に言えば、このようなメディアストリームは、ビデオフレーム及び/又はオーディオフレームなどのフレームシーケンスを定めることができ、従ってクライアントはフレーム精度ベースで(on a frame-accurate basis)コンテンツ修正を実行することが望ましいと考えられる。例えば、広告置換の場合、クライアントは、既存の広告の最初のフレームから正確に開始する置換広告を既存の広告の代わりに挿入することが望ましいと考えられる。また、メディアストリームの特定の部分にオーバーレイを追加する場合、クライアントは、このメディアストリーム部分の最初のフレームから又は最初のフレームに特に関連してオーバーレイを開始することが望ましいと考えられる。
【0007】
このコンテンツ修正をクライアントに容易に実行させるには、クライアントが、所望のコンテンツ修正時点で挿入(置換又はオーバーレイ)すべき新たなストリームなどの新規コンテンツを取得することが必要となり得る。実際に、クライアントは、クライアントによる新規コンテンツの取得を可能にするアドレス又はその他の識別子などの新規コンテンツへのポインタを事前に又は動的に提供されることができる。例えば、クライアントは、クライアントが新規コンテンツの要求及び受信を行うことができるストリーミングメディアサーバ又はファイルサーバなどのネットワークアドレスを定める又はこれと相関するユニバーサルリソースロケータ(URL)を取得することができる。或いは、クライアントは、メディアストリーム内の指示された時点でコンテンツ修正を実行できるように、新規コンテンツを取得すべき場所及び/又は方法を別の方法で学習することもできる。
【0008】
ところが残念なことに、このプロセスで発生し得る問題点として、コンテンツ修正の実行に必要な新規コンテンツをクライアントが取得するのにある程度時間がかかることによって、コンテンツ修正を実行する際のタイミング問題、従ってユーザ体験の問題が生じ得る点が挙げられる。
【0009】
例えば、クライアントは、インターネットなどのコンテンツ配信ネットワークを介してストリーミングメディアサーバから新規コンテンツを取得する場合、サーバがクライアントに新規コンテンツをストリーミングするリアルタイムメディアセッションを確立するために最初にストリーミングメディアサーバとメッセージングを行うことが必要な場合があり、そして新規メディアコンテンツを使用してコンテンツ修正の実行を開始できるようになるまでに、ストリーミング送信が開始されて到来する新規メディアコンテンツをバッファリングするためにある程度待つことが必要な場合がある。これらの及びその他のこのようなステップは、クライアントによる新規コンテンツの取得を遅らせてしまう。さらに、クライアントがファイルサーバから又は別の方法で新規コンテンツを取得する場合にも同様の遅延が発生することがある。
【課題を解決するための手段】
【0010】
本開示では、この問題への対処に役立つように、クライアントがコンテンツ修正を開始すべき時点よりも十分に前に新規コンテンツ取得プロセスを開始して、クライアントが予定通りにコンテンツ修正を開始するのに十分な新規コンテンツを確実に有する支援を行うようにする。さらに、本開示では、それまでクライアントが新規コンテンツを取得するのにどれほどかかっていたかに基づいて、場合によっては数ある可能性の中でも特に、コンテンツソース、プロセッサ負荷、メモリ負荷、ネットワーク負荷、ネットワーク待ち時間及び/又は時刻などの様々な動作要因と相関させて、このプロセスをクライアントがどれほど前に開始すべきかを動的に決定できるようにする。
【0011】
例えば、本開示によれば、クライアントは、新規コンテンツの置換又はオーバーレイを含むコンテンツ修正を実行すべき(例えば、コンテンツ修正の実行を開始すべき)メディアコンテンツ内の次の時点を決定することができる。さらに、クライアントは、次の時点でのコンテンツ修正の実行を容易にするために新規コンテンツ取得プロセスを開始すべき前倒し時点(advanced time point)を決定することができる。例えば、クライアントは、過去のコンテンツ取得期間の過去の来歴に基づき、場合によっては1又は2以上の動作パラメータと相関させてコンテンツ取得期間を決定し、決定されたコンテンツ取得期間を次の時点から減算することなどによって適用して前倒し時点を決定することができる。クライアントは、前倒し時点において新規コンテンツの取得プロセスを開始することができる。また、クライアントは、次の時点でコンテンツ修正を実行することができる。
【0012】
必要に応じて添付図面を参照しながら以下の詳細な説明を読むことにより、当業者にはこれらの及びその他の態様、利点及び代替例が明らかになるであろう。さらに、本概要の説明及び後述する説明は、本発明を限定ではなく一例として示すものにすぎないと理解されたい。
【図面の簡単な説明】
【0013】
【
図1】開示する特徴を実装できるシステムを示す簡略ブロック図である。
【
図2】コンテンツ修正時点と、コンテンツ取得を開始するための前倒し時点とを示すタイムラインである。
【
図3】本開示に従って実行できる動作を示すフローチャートである。
【
図4】本開示に従って動作できるメディアクライアントのコンポーネントを示す簡略ブロック図である。
【発明を実施するための形態】
【0014】
図面を参照すると、
図1は、開示する様々な原理を適用できるシステム例の簡略ブロック図である。しかしながら、本明細書で説明するこの及びその他の構成及びプロセスは他の様々な形を取ることもできると理解されるであろう。例えば、要素及び動作は、並べ替え、分散させ、置換し、組み合わせ、省略し、追加し、又は別様に修正することができる。さらに、本明細書において1又は2以上のエンティティによって実行されるものとして説明する動作は、これらのエンティティが実行することも、及び/又はこれらのエンティティの代わりにプログラム命令を実行する1又は2以上のプロセッシングユニットなどがハードウェア、ファームウェア及び/又はソフトウェアを通じて実行することもできると理解されるであろう。
【0015】
図1に示すように、このシステム例は、メディアソース14からリアルタイムでメディアストリームを受け取るように構成されたメディアクライアント12を含む。
【0016】
メディアクライアント12は、上述したように、ビデオ及び/又はオーディオコンテンツなどのメディアコンテンツを表すアナログ又はデジタルメディアストリームをメディアソース14から受け取り、メディアコンテンツの出力及び/又はストリームの転送を行って、ディスプレイ画面及び/又はオーディオスピーカなどのユーザインターフェイス上にコンテンツを提示するように動作するよう構成することができる。メディアクライアントは、他にも可能性があるが、上述の形態のいずれかを取ることができる。
【0017】
メディアソース14は、場合によってはメディアクライアント12の形態に依存する様々な形態を取ることもできる。一例として、メディアクライアント12がテレビである場合、メディアソース14は、選択されたメディアストリームを出力してテレビが提示できるように構成されたローカルセットトップボックス(例えば、ケーブル又は衛星受信機)又はストリーミングメディアサーバとすることができ、或いはメディアソース14は、数ある可能性の中でも特に放送テレビ局などとすることもできる。また、メディアクライアントがコンピュータである場合、メディアソースは、インターネットストリーミングメディアサーバ又はその他のメディアプロバイダを含むことができる。或いは、メディアソース14は、メディアクライアント12に一体化された、及び/又はメディアクライアント12がメディアストリームの再生中又は再生のための転送中などに再生のためにローカルにアクセスしてメディアストリームを受け取る(例えば、取り出す)ことができるデータストレージとすることもできる。その他の例も考えられる。
【0018】
さらに
図1に示すように、メディアクライアント12は、1又は2以上のサーバ18との通信を可能にするネットワーク(例えば、インターネット又はプライベートネットワーク)16との通信インターフェイスを有することができる。サーバ18は、ファイルサーバ、メディアサーバ、及び/又はその他のタイプのコンテンツサーバなどを含むことができる。さらに、メディアソース14は、サーバ18とは別に示しているが、1又は2以上のサーバ18と共に含め又は一体化して、ネットワーク16を介してアクセスすることもできる。
【0019】
上述したように、クライアント12などのメディアクライアントは、メディアストリームを受け取っている時に、ストリームのコンテンツのセグメントを置換又は補足することなどのためにストリームのコンテンツの一部を修正することが有用な場合がある。さらに、上述したように、クライアントは、メディアストリーム内の特定の時点でこれを行うことが望ましい場合がある。例えば、ストリームがビデオフレーム及び/又はオーディオフレームなどのフレームシーケンスを定める場合、クライアントは、シーケンスの特定のフレームから開始する修正を実行することが望ましい場合がある。
【0020】
実際に、クライアントは、コンテンツ修正を行うべきメディアストリーム内の特定の時点を様々な方法で学習することができる。
【0021】
例えば、クライアントは、メディアストリームと共に又はこれに関連して、メディアストリーム内の各フレームを識別する又はこれにタイムスタンプする(例えば、メディアストリームにタイムスタンプが埋め込まれた、又はストリーム内シグナリングを通じて別様にタイムスタンプが提供された)データセットと、コンテンツ修正を開始すべきフレームの識別子又はタイムスタンプを指定するデータとを提供され又は受け取ることができる。従って、クライアントは、このデータに基づいて、コンテンツ修正を開始すべきメディアストリーム内の特定の時点を決定することができる。
【0022】
或いは、クライアントは、メディアストリームを受け取る際(例えば、メディアストリームを再生する際)に、コンテンツ修正を開始すべきメディアストリーム内の時点をネットワークサーバと協働して学習することもできる。例えば、サーバは、最初にクライアントが受け取っているメディアストリームを識別することができる。サーバは、メディアストリームを識別すると、クライアントがコンテンツ修正を実行すべきメディアストリーム内の特定の時点を決定し、この決定された時点をクライアントに通知することができる。
【0023】
クライアント(又は付属装置)は、クライアントが受け取っているメディアストリームをサーバが容易に識別できるように、ストリームを受け取る際にメディアコンテンツを表すデジタルフィンガープリントデータをリアルタイム生成することができ、サーバは、このフィンガープリントデータと、既知のメディアストリームのメディアコンテンツを表す基準フィンガープリントデータとを比較し、フィンガープリント照合を使用して、クライアントが受信及び/又は再生しているメディアストリームが既知のメディアストリームであることを示すことができる。
【0024】
サーバは、既知のメディアストリームを表す基準フィンガープリントデータを確立又は別様に入手することができる。例えば、サーバ又は関連する視聴ステーション(watching station)又はその他のエンティティは、既知のメディアストリームのブロードキャストを受け取り、その最中に既知のメディアストリームのフレームを表す基準デジタルフィンガープリントシーケンスを生成することができる。サーバ又は別のエンティティは、既知のメディアストリームのフレームをプログラム的に分析し、既知のメディアストリームのコピーを入力として受け取り、現在知られている又は後で開発されるメディアフィンガープリンティングプロセス又はアルゴリズムを適用して基準フィンガープリントを生成することによって、これらの基準フィンガープリントを確立することができる。或いは、サーバは、この既知のメディアストリームを表す基準フィンガープリントシーケンスを別様に確立又は取得することもできる。その後、サーバは、基準フィンガープリントを既知のメディアストリームの識別子に関連付けて記憶することができる。
【0025】
さらに、クライアントは、メディアストリームを受け取る際に、このストリームのフレームを表すクエリフィンガープリントをリアルタイムで生成して、分析のためにサーバに送信することができる。クライアントは、フィンガープリントの比較を容易にするために、基準フィンガープリントを確立するために適用する又は適用した同じフィンガープリンティングプロセス又はアルゴリズムを使用してこれらのクエリフィンガープリントを生成することができる。また、クライアントは、特定のフレームレートでクエリフィンガープリントを生成し、これらのフィンガープリントをまとめてサーバに送信することもできる。例えば、毎秒30フレームのビデオを含むメディアストリームの場合、クライアントは、リソースの節約に役立つように毎秒約2フレームの低フレームレートでクエリフィンガープリントを生成し、最新の一群のクエリフィンガープリントを1.5秒毎程度でサーバに送信することができる。その他の例も考えられる。
【0026】
サーバは、クライアントからクエリフィンガープリントデータを受け取ると、クエリフィンガープリントデータを既知のメディアストリームの基準フィンガープリントデータと比較することができる。そして、サーバは、この比較によってクエリフィンガープリントデータが基準フィンガープリントデータに一致すると十分な信頼度で判定した場合、クライアントが受け取っているメディアストリームが既知のメディアストリームであると結論付けることができる。
【0027】
サーバは、このフィンガープリント比較をフレームベースで実行することができる。例えば、ビデオコンテンツを考慮すると、サーバは、フレームのクエリフィンガープリントをフレームの基準フィンガープリントと比較する分析をビデオフレーム毎に実行することができる。この比較プロセスは、フィンガープリントの構造に応じて様々な形態のうちのいずれかを取ることができる。例えば、この比較は、フィンガープリント間の最大偏差を計算し、最大偏差が所定の許容差内に収まるかどうかを判定することを含むことができる。さらに、フィンガープリントが2進値である場合、この判定は、ブール型の判定とすることも、又は(フィンガープリントのそれぞれのビット位置間の不一致数としての)ハミング距離の計算を伴うこともできる。フィンガープリントが10進値又はベクトル(例えば、ビデオフレーム領域毎のグレイ値)などのより複雑な値である場合、この判定は、値又はベクトル間の距離を求めることを含むことができる。他にも数多くの例が考えられる。
【0028】
また、サーバは、このフィンガープリント比較プロセスを所望の許容差レベルで実行することもできる。例えば、この比較は、より多くの数の相違を認める許容差及び/又はより大きなサイズの相違を認める許容差などの、フィンガープリント間の相違の許容差が比較的大きな粗いものとすることができる。一例として、2つの32ビットのフィンガープリントを互いに比較する場合、粗い比較では、たとえ2つの又は別の指定数のビットが一致しない場合でも、一般にこれらのフィンガープリントを互いに一致するとみなすことができる。或いは、この比較は、このような相違の許容差が低い、及び/又は根本的なメディアの特定の部分を表すと思われる特定のフィンガープリント成分に比較の焦点を当てた、より粒度の細かいものとすることもできる。
【0029】
これにより、サーバは、このクライアントが生成したクエリフィンガープリントと既知のメディアストリームの基準フィンガープリントとの比較を通じて1又は2以上の一致を発見することができる。例えば、サーバは、クライアントが受け取っているメディアストリームのフレームのクエリフィンガープリントが既知のメディアストリームのフレームのそれぞれの基準フィンガープリントに一致する1又は2以上の場合を発見することができる。従って、この一致は、クライアントが受け取っているメディアストリームが既知のメディアストリームであるとの結論を立証又は裏付けることができる。
【0030】
或いは、サーバは、問題のメディアストリームを他の方法で識別することもできる。例えば、メディアストリームが、メディアストリームの素性に対応するウォーターマークデータを含む場合、クライアントは、このウォーターマークデータを読み取り又は別様に抽出してサーバにウォーターマークデータを報告することができる。すると、サーバは、報告されたウォーターマークデータを基礎として使用して、クライアントが受け取っているメディアストリームを識別することができる。例えば、サーバは、様々なウォーターマークデータを特定の既知のメディアストリームに相関させる基準データを調べて、クライアントによって報告されたウォーターマークデータが特定の既知のメディアストリームに一致すると判定することができる。
【0031】
サーバは、クライアントが受け取っているメディアストリームを識別し終えると、コンテンツ修正を行うべきメディアストリーム内の時点を決定することができる。例えば、サーバは、コンテンツ修正を開始すべき既知のメディアストリーム内の時点を指定する基準データを調べることができる。その後、サーバは、この時点を示す指令をクライアントに送信することができる。
【0032】
サーバの基準データによって指定される修正時点は、クライアントが理解できる方法で定めることができる。例えば、クライアントが、メディアストリーム内に定められた「実時間」タイムラインに沿ってメディアストリームの各フレームにタイムスタンプするデータを取得する場合、サーバが有する修正時点は、メディアストリームの次のフレームの実時間タイムスタンプとすることができる。従って、サーバは、この実時間タイムスタンプを、クライアントがコンテンツ修正を実行すべき時間の指標としてクライアントに提供することができる。
【0033】
さらに、クライアントは、コンテンツ修正を実行すべき時点を自機のクロック上で決定できるように、この実時間タイムスタンプをクライアントの内部クロックに従って定められた「クライアント時間」に対応付けることができる。例えば、クライアントは、(i)現在のフレームの実時間タイムスタンプとクライアントのクロック上の現在時刻との間の差分を計算し、(ii)この求められた差分を、修正を行うべき次のフレームの指示された実時間タイムスタンプに適用して、コンテンツ修正を実行すべきクライアント時間時点を決定することができる。
【0034】
或いは、サーバの基準データによって指定される修正時点は、クライアントが理解できない方法で定めることもできる。例えば、サーバが有する修正時点は、既知のメディアストリーム内の実時間タイムラインに従って定められたタイムスタンプであるが、実時間のコンテキスト又は観点をクライアントが有していないこともある。この場合、サーバは、実時間とクライアント時間との間のマッピング又は「同期ロック」を確立するプロセスを行った後に、コンテンツ修正を行うべき実時間時点を対応するクライアント時間時点に対応付け、このクライアント時間時点をクライアントに提供することができる。
【0035】
この非限定的な例として、テレビ放送内に出現し得る広告ポッドを定めるメディアストリームについて考察する。広告ポッドは、テレビコマーシャルなどの広告シーケンスを含む。この例では、特定のテレビチャンネルのリニア放送フィード(linear broadcast feed)を受信して提示しているテレビをクライアントとすることができ、このフィード内の任意の瞬間に広告ポッドが現れることができる。例えば、特にスポーツイベントなどのライブ放送では、このようなフィード内に広告ポッドが現れる時間を予測できないこともある。或いは、特別にスケジュールされた時点に広告ポッドが現れることもある。
【0036】
この例では、広告ポッド内の特定の広告の置換(例えば、広告を異なる広告又はその他の置換コンテンツに置き換えること)を望ましい修正とすることができる。例えば、広告ポッドが広告シーケンスA1、A2、A3、A4である場合、広告A3の置換を望ましい修正とすることができる。
【0037】
この状況では、広告ポッドが、T=0の時点から開始して広告ポッドの最後まで継続する内部タイムラインを定めることができ、広告A3は、このタイムライン上の時点TA3から開始することができる。しかしながら、クライアントにはこのタイムラインのコンテキストが存在しないことがある。クライアントは、クライアント時間を定めるタイムライン(例えば、時刻又はその他の内部時間基準)を有する独自の内部クロックを有することができる。しかしながら、クライアントは、クライアント時間内のどこに広告ポッドタイムラインが存在するかについての高度な知識を有していなければ、望ましいコンテンツ修正時点としての値TA3のみを与えられても、望ましい時に広告置換を実行することはできない。
【0038】
クライアントは、この状況でサーバが実時間とクライアント時間との間の同期ロックを確立できるように、サーバに送信するクエリフィンガープリントにタイムスタンプすることができる。具体的に言えば、クライアントは、メディアストリームを受け取ってクエリフィンガープリントを生成する際に、各クエリフィンガープリントに現在のクライアント時間値をタイムスタンプすることができる。サーバは、クエリフィンガープリントと既知のメディアストリームのタイムスタンプ付き基準フィンガープリントとの間の1又は2以上の一致を検出すると、これらの一致点を基礎として使用して実時間をクライアント時間に対応付けることができる。例えば、サーバは、少なくとも1つのこのような検出された一致点に基づいて、(i)照合用基準フィンガープリントの実時間タイムスタンプと、(ii)照合用クエリフィンガープリントのクライアント時間タイムスタンプとの間のマッピングを定めることができる。
【0039】
サーバは、同期ロックを確立し終えると、この確立された同期ロックを使用して、コンテンツ修正を行うべき実時間の時点を、コンテンツ修正を行うべき対応するクライアント時間時点に変換することができる。サーバは、クライアントが受け取っているメディアストリーム内の所望の時点でクライアントがコンテンツ修正を実行できるように、この決定されたクライアント時間時点をクライアントに送信することができる。
【0040】
さらに、別の実装では、コンテンツ修正を行うべきクライアント時間時点を決定するために、同期ロックを確立して適用するプロセスをサーバではなくクライアントが実行することができる。
【0041】
例えば、サーバは、クライアントが受け取っているメディアストリームを識別すると、基準フィンガープリントを定める何らかの基準データと、既知のメディアストリームの次の部分の実時間タイムスタンプとをクライアントに送信することができる。すると、クライアントは、クエリフィンガープリントと基準フィンガープリントとの間のフィンガープリント照合を実行して1又は2以上の一致点を発見し、少なくとも1つの一致点のタイムスタンプを同様に相関させることによって実時間とクライアント時間との間の同期ロックを確立することができる。クライアントは、同期ロックを確立し終えると、この同期ロックを基礎として使用して、コンテンツ修正を行うべき提供された実時間の時点を、コンテンツ修正を行うべき対応するクライアント時間時点に変換することができる。
【0042】
クライアントは、コンテンツ修正を開始すべきメディアストリーム内の特定の時点を学習することに加え、その時点から開始してどのコンテンツ修正を実行すべきかを様々な方法で学習することもできる。
【0043】
一例として、クライアントは、クライアントがメディアストリームの既存のコンテンツの代わりに特定のコンテンツに代替すべき旨の指示、及び/又はメディアストリームの既存のコンテンツにオーバーレイ又はその他の補完コンテンツを追加すべき旨の指示などの指示が行われた時点で、実行すべきコンテンツ修正の明細を予め提供されることができる。或いは、クライアントは、実行すべきコンテンツ修正の明細をサーバ又はその他のエンティティから受け取ることもできる。例えば、サーバは、クライアントがコンテンツ修正を実行すべきメディアストリーム内の時点をクライアントに知らせる指令をクライアントに送信する際に、実行すべきコンテンツ修正の明細をこの指令に含める(又は個別に提供する)ことができる。
【0044】
実際に、実行すべきコンテンツ修正の明細は、クライアントがメディアストリームの既存のコンテンツの代わりに又はその補完として取得して挿入すべき新規コンテンツへのポインタを含むことができる。例えば、上述したように、この明細は、クライアントが新規コンテンツの要求及び受信を行うことができるストリーミングメディアサーバ又はファイルサーバなどのネットワークアドレスを定める又はこれと相関するユニバーサルリソースロケータ(URL)を含むことができる。或いは、この明細は、メディアストリーム内の指示された時点でコンテンツ修正を容易に実行できるように、新規コンテンツを取得すべき場所及び/又は方法を別の方法で示すこともできる。さらに、この明細は、コンテンツ修正がコンテンツ置換であるか、それともオーバーレイであるかなどの、クライアントが適用すべきコンテンツ修正のタイプを示すこともできる。
【0045】
クライアントは、指示されたコンテンツ修正を開始すべき時点でコンテンツ修正を開始することができる。例えば、コンテンツ修正が、メディアストリームのコンテンツを新規コンテンツに置き換えるものである場合、クライアントは、既存のメディアストリームのフレームの代わりに新規コンテンツのフレームを使用し始めることができる。或いは、コンテンツ修正が、メディアストリームの既存のコンテンツに新規コンテンツをオーバーレイするものである場合、クライアントは、メディアストリームのフレームを既存のコンテンツと新規コンテンツとの組み合わせになるように修正し始めることができる。その他の例も考えられる。
【0046】
非限定的な例として、上述した広告ポッドについて再び考察する。実際に、サーバは、広告ポッドのフレームを表し且つ広告ポッドのフレームに対応するタイムスタンプ付き基準フィンガープリントを提供されることができる。さらに、サーバは、広告ポッド内の広告のうちの特定の1つを置換すべき旨の指示と、広告置換を開始すべきフレームの(例えば、実時間での)基準タイムスタンプとを提供されることができる。
【0047】
クライアントは、この広告ポッドを含むことができるリニア放送フィードを受け取る際に継続的に、或いは1又は2以上の他のトリガに応答してブロードキャストフィードのタイムスタンプ付きクエリフィンガープリントを生成し、これらのタイムスタンプ付きクエリフィンガープリントを分析のためにサーバに報告することができる。サーバは、このようなクエリフィンガープリントと、広告ポッドシーケンスのフレームを表す基準フィンガープリントとを比較することにより、クライアントが広告ポッドシーケンスを受け取っていることを検出することができる。
【0048】
サーバは、クライアントが広告ポッドシーケンスを受け取っていると判定すると、広告置換を開始すべきフレームの実時間時点を、例えば上述した方法で対応するクライアント時間時点に変換するとともに、クライアント時間時点を指定し、そのクライアント時間から開始してメディアストリームのフレームに代替すべき置換広告へのポインタを含み、指示されたコンテンツ置換を実行するようにクライアントに指示する指令をクライアントに送信することができる。従って、クライアントは、指示された置換広告を取得し、指示されたクライアント時間時点において開始するメディアストリームのフレームをこの広告で代替することができる。
【0049】
上述したように、このプロセスで発生し得る1つの問題点としては、コンテンツ修正の実行に必要な新規コンテンツをクライアントが取得するのにある程度時間がかかることによって、コンテンツ修正を実行する際のタイミング問題、従ってユーザ体験の問題が生じ得る点が挙げられる。例えば、上述したように、クライアントは、インターネットなどのコンテンツ配信ネットワークを介してストリーミングメディアサーバから新規コンテンツを取得する場合、サーバがクライアントに新規コンテンツをストリーミングするリアルタイムメディアセッションを確立するために最初にストリーミングメディアサーバとメッセージングを行うことが必要な場合があり、そして新規メディアコンテンツを使用してコンテンツ修正の実行を開始できるようになるまでに、ストリーミング送信が開始されて到来する新規メディアコンテンツをバッファリングするためにある程度待つことが必要な場合がある。
【0050】
この遅延には様々な原因が考えられる。例えば、クライアントのプロセッサ(例えば、中央処理装置(CPU))の使用率が特に高い時、及び/又はクライアントのメモリ又はその他のデータストレージの負荷が特に高い時に、クライアントが行える新規コンテンツの要求及び/又は受信(例えば、受信の開始)に遅れが生じることがある。さらに、クライアントとサーバ又はその他の新規コンテンツのソースとのネットワーク接続又はその他のインターフェイスの負荷が特に高く、又は別様にデータ転送速度が遅くなった時に、クライアントによる新規コンテンツの受信に遅れが生じることがある。他の要因が存在することもある。
【0051】
残念ながら、この遅延の結果、クライアントによるコンテンツ修正の開始が望ましい時点よりも遅れてしまうことがある。例えば、広告ポッド例では、クライアントが、広告置換を開始できるほど十分な置換広告を既存の広告の最初のフレームまでに取得していなかった場合、広告置換の開始が何フレームか遅れることがある。この結果、ユーザに対して広告ポッドが再生されている時に、既存の広告の最初の数フレームが提示された後に突然表示が置換広告に切り替わることがある。さらに、置換広告の開始が遅れると、クライアントは、置換広告と次の広告又は既存のメディアストリームの他のセグメントの開始との重複を避けるために置換広告を早めに終わらせる必要がある(ただし、そうならない場合もある)ので、置換広告の再生終了時に関連する問題が発生することもある。
【0052】
上述したように、本開示によれば、この問題への対処に役立つように、クライアントがコンテンツ修正を開始すべき時点よりも十分に前に新規コンテンツ取得プロセスを開始して、クライアントが予定通りにコンテンツ修正を開始するのに十分な新規コンテンツを確実に有する支援を行う。さらに、上述したように、クライアントは、それまで新規コンテンツを取得するのにどれほどかかっていたかに基づいて、場合によっては数ある例の中でも特に、コンテンツソース、CPU負荷、メモリ負荷、ネットワーク負荷及び/又はネットワーク待ち時間などの動作要因と相関させて、このプロセスをどれほど前に開始すべきかを動的に決定することができる。
【0053】
ある実装例では、クライアントが、通常は新規コンテンツの取得にどれほどかかるかをモニタすることができる。例えば、クライアントは、新規コンテンツを取得する度に、コンテンツ取得プロセスを開始した時点から関連するコンテンツ修正を容易に開始できるほど十分な新規コンテンツを取得し終える時点までにどれだけの時間が経過するかを求めることができる。
【0054】
ここでは、コンテンツ取得プロセスの開始動作が様々な形態を取ることができる。例えば、クライアントがストリーミングメディアサーバからコンテンツを受け取る場合、コンテンツ取得プロセスの開始動作は、クライアントがサーバとさらなる通信を行うためのTCPソケットの設定のためにストリーミングメディアサーバに転送制御プロトコル(TCP)ハンドシェイクメッセージを送信することとなり得る。或いは、コンテンツ取得プロセスの開始動作は、クライアントがストリーミングメディアサーバにリアルタイムストリーミングプロトコル(RSTP)SETUP要求などを送信して、新規コンテンツを受け取るためのストリーミングメディアセッションの設定を要求することとなり得る。その他の例も考えられる。
【0055】
次に、クライアントは、これらの求められた最近のコンテンツ取得期間を平均又はその他の尺度として統計的に丸めて、代表的コンテンツ取得期間を確立することができる。さらに、クライアントは、この評価を一定期間にわたって継続し、代表的コンテンツ取得期間を定期的に確認又は更新することができる。
【0056】
クライアントは、メディアストリーム内の次の時点でコンテンツ修正を実行する必要性に直面した時に、そのコンテンツ取得プロセスを開始する前倒し時点をスケジュール(例えば、決定及び設定)することができる。例えば、クライアントは、コンテンツ修正を開始すべきクライアント時間時点からその最新の確立されたコンテンツ取得期間を減算して、そのコンテンツ取得プロセスを開始すべき前倒し時点を計算することができる。次に、クライアントは、この計算された前倒し時点でコンテンツ取得プロセスを開始するように内部タイマを設定することができる。その後、クライアントは、計算された前倒し時点でコンテンツ取得プロセスを開始することができる。
【0057】
さらに、クライアントは、コンテンツ修正におけるタイミング問題を回避するのに役立つように、実際のコンテンツ取得期間のばらつき(例えば、ジッタ)及び分析時の誤差の可能性を考慮して、その最新の確立されたコンテンツ取得期間に安全時間区分(safety time segment)(例えば、数秒又は別の固定期間などの規定の一定時間区分)を加算することもできる。従って、クライアントが計算する前倒し時点は、最新の確立されたコンテンツ取得期間と安全時間区分とを加算した分だけコンテンツ修正時間よりも前に設定することができる。これに替えて、又はこれに加えて、クライアントは、このようなばらつきの可能性を考慮するために、望ましい時点よりも数フレーム後にコンテンツ修正を開始するように意図的に計画することができ、ビデオコンテンツの場合には、確実な継続に役立つように開始時のブラックフレーム及び/又は最後のフェードアウトを意図的に追加することもできる。
【0058】
また、クライアントは、その実際のコンテンツ取得期間がコンテンツソース、CPU負荷、メモリ負荷、ネットワーク負荷及び/又はネットワーク待ち時間などの動作要因に基づいて変動し得ることを考慮して、これらの又はその他の要因に(個別に及び/又はまとめて)基づいて様々な代表的コンテンツ取得期間を確立することができる。さらに、クライアントは、メディアストリーム内の次の時点でコンテンツ修正を実行する必要性に直面した際に、1又は2以上のこのような動作要因の現在の状態を決定(例えば、近似)し、決定された状態と相関させた、適切な場合には点間を外挿するコンテンツ取得期間を選択することができる。その後、クライアントは、選択されたコンテンツ取得期間に基づいて前倒し時点を計算して適用することができる。
【0059】
例えば、クライアントは、新規コンテンツの要求及び取得を行う先の特定のサーバ、ドメイン又はネットワークなどの1又は2以上のコンテンツソースの各々についてそれぞれの代表的コンテンツ取得期間を決定することができる。その後、クライアントは、所与のコンテンツソースからの新規コンテンツを使用して次の時点でコンテンツ修正を実行する必要性に直面すると、そのコンテンツソースについて(例えば、そのコンテンツソース自体について、及び/又は同じドメイン又はネットワークなどのコンテンツソースについて)確立した最新の代表的コンテンツ取得期間に基づいて前倒し時点を計算して適用することができる。
【0060】
別の例として、クライアントは、様々なレベルのCPU負荷(例えば、使用中の及び/又は利用可能な単位時間当たり処理サイクル)及び/又はメモリ負荷(例えば、使用中の又は残りのメモリ容量の程度)の各々についてそれぞれの代表的コンテンツ取得期間を決定することもできる。その後、クライアントは、次の時点でコンテンツ修正を実行する必要性に直面すると、そのCPU負荷及び/又はメモリ負荷レベルを評価し、このCPU負荷及び/又はメモリ負荷レベルについて確立した最新の代表的コンテンツ取得期間に基づいて前倒し時点を計算して適用することができる。
【0061】
同様に、クライアントは、様々なレベルのネットワーク待ち時間の各々についてそれぞれの代表的コンテンツ取得期間を決定することもできる。例えば実際に、クライアントは、インターネット制御メッセージプロトコル(ICMP)ping又はその他のエコー要求シグナリングの使用を通じてネットワーク待ち時間を推定することができる。或いは、クライアントは、サーバがクライアントからのクエリフィンガープリント送信の伝送遅延を測定し、クライアントがこれらの遅延測定レポートをサーバから受け取ることなどによる、フィンガープリント識別サーバとのクエリフィンガープリントシグナリングに基づいてネットワーク待ち時間を推定することもできる。(フィンガープリント識別サーバとコンテンツサーバとが同一でない場合、このネットワーク待ち時間は近似値になるが、特にサーバがまとめて配置されている場合にはこの近似値が妥当なものになり得る。)
【0062】
さらに、クライアントは、このようなネットワーク待ち時間尺度と相関するコンテンツ取得期間を決定して記録することもできる。従って、クライアントは、次の時点でコンテンツ修正を実行する必要性に直面すると、現在の又は最新のネットワーク待ち時間レベルを決定し、このネットワーク待ち時間レベルについて確立した最新の代表的コンテンツ取得期間に基づいて前倒し時点を計算して適用することができる。
【0063】
このプロセスの変形例又は拡張例として、クライアントは、実際のコンテンツ取得期間が時間と共に変化し得る可能性を考慮するために、その代表的コンテンツ取得期間を時刻(例えば、いずれかの所与の日の時刻、曜日、及び/又はその他のカレンダー又は時計基準)に基づいて追跡することもできる。例えば、クライアントのコンテンツ取得期間が長くなりがちである典型的な繁忙時(busy hours)と、クライアントのコンテンツ取得期間が短くなりがちである軽負荷時(light hours)とが存在することができる。クライアントは、次の時点でコンテンツ修正を実行する必要性に直面すると、現在の時刻を特定し、この時刻について確立した最新の代表的コンテンツ取得期間に基づいて前倒し時点を計算して適用することができる。
【0064】
さらに、別の実装では、クライアントは、クライアントがそのコンテンツ取得期間を十分に早く確実に開始するのに役立つ特定のコンテンツ取得期間を適用するように静的に提供されることができる。例えば、クライアントのメーカー、或いはクライアントのチップセット又はその他の部品のメーカーは、コンテンツ修正を容易にするためにいつクライアントがコンテンツ取得を開始すべきかを決定するための基礎として適用すべき前倒し期間を指定することができ、この前倒し期間を適用するようにクライアントを構成することができる。この期間は、例えば装置又は部品の規定の能力に基づいて装置毎及び/又は部品毎に異なることができる。クライアントは、次の時点でコンテンツ修正を実行する必要性に直面すると、この指定期間に基づいて前倒し時点を計算して適用することができる。
【0065】
また、上記のプロセスは、クライアントが(例えば、現在の再生及び/又は記憶のために)受け取っているリニア放送フィードのリアルタイム分析に関しても、クライアントがデータストレージなどから(例えば、現在の再生又は転送のために)受け取っているメディアストリームの分析に関しても適用することができる。他の実装も考えられる。
【0066】
図2は、上述したような動作の結果を示すタイムラインである。具体的には、
図2は、クライアントがメディアストリームを受け取る際のクライアント時間の経過を表すことができる。
図2に示すように、時点T
CURRENTは現在時刻を表し、時点T
REVISEは、クライアントがコンテンツ修正を実行すべき、例えばコンテンツのフレームの置換又はオーバーレイを開始すべき次の時点を表す。時点T
ADVANCEDは、時点T
REVISEにコンテンツ修正を実行するのに十分なコンテンツを時間内に有するためにクライアントがコンテンツ取得を開始すべき時点を表す。
【0067】
上記の説明によれば、クライアントは、時点TCURRENTにおいてコンテンツ取得期間を決定し、時点TREVISEよりも少なくともコンテンツ取得期間だけ前の時点である時点TADVANCEDを設定することができる。次に、クライアントは、計算された時点TADVANCEDが訪れるまで待機し、時点TADVANCEDが訪れたことに応答して、時点TREVISEにおけるコンテンツ修正の実行を容易にするのに役立つように新規コンテンツの取得を開始することができる。例えば、クライアントは、時点TADVANCEDにおいてストリーミングメディアサーバとのシグナリングを開始して、時点TREVISEにおけるコンテンツ修正の開始を容易にするように、新規コンテンツを受け取ってバッファリングするためのストリーミングメディアセッションを確立し、或いはコンテンツ取得プロセスを開始するための他の行動を取ることができる。
【0068】
図3は、上記の説明による、メディアクライアントなどのコンピューティングシステムが実行できる方法を示すフローチャートである。上述したように、この方法は、メディアクライアントがリニア放送フィード内で又はストレージからメディアストリームを受け取っている間、場合によってはメディアクライアントがメディアストリームを再生している間、又は再生などのためにメディアストリームを転送している間に実行することができる。上述したように、この方法は、広告置換などのタイムリーなコンテンツ修正を容易にするのに役立つことができる。
【0069】
図3に示すように、ブロック30において、方法は、新規コンテンツの挿入(例えば、置換又はオーバーレイ)を含むコンテンツ修正をメディアクライアントが実行すべきメディアストリーム内の次の時点を決定するステップを含む。さらに、ブロック32において、方法は、次の時点でコンテンツ修正を実行するのを容易にするためにメディアクライアントが新規コンテンツの取得プロセスを開始すべき前倒し時点をスケジュールするステップを含み、この前倒し時点をスケジュールするステップは、コンテンツ取得期間を決定するステップと、少なくとも決定されたコンテンツ取得期間だけ次の時点よりも早くなるように前倒し時点を設定するステップとを含む。次に、ブロック34において、方法は、前倒し時点においてメディアクライアントが新規コンテンツの取得を開始するステップを含む。ブロック36において、方法は、次の時点において、メディアクライアントが取得した新規コンテンツを使用してコンテンツ修正を行うステップを含む。
【0070】
上述したように、コンテンツ取得期間を決定する動作は、過去のコンテンツ取得期間の事例に基づいてコンテンツ取得期間を予測するステップを含むことができる。例えば、方法は、コンテンツ取得期間の予測を容易にするのに役立つように一定期間にわたってコンテンツ取得期間を追跡し、場合によっては平均値などの丸められた統計値を維持するステップをさらに含むことができる。
【0071】
さらに、上述したように、過去のコンテンツ取得期間の事例に基づいてコンテンツ取得期間を予測する動作は、新規コンテンツの取得に関連する少なくとも1つの動作要因を決定するステップと、決定された状態と相関する過去のコンテンツ取得期間の事例に基づいてコンテンツ取得期間を予測するステップとを含むことができる。例えば、少なくとも1つの動作要因は、コンテンツソース、プロセッサ負荷、メモリ負荷、ネットワーク負荷、ネットワーク速度及び時刻のうちの1つ又は2つ以上を含むことができる。従って、メディアクライアントは、1又は2以上のこのような動作要因の現在の状態を決定した後に、これらの1又は2以上の動作要因が同一又は同様の状態を有していた過去のコンテンツ取得期間の事例に基づく統計的尺度としてコンテンツ取得期間を予測することができる。
【0072】
また、上述したように、コンテンツ取得期間を決定する動作は、予測されたコンテンツ取得期間に安全時間区分を加算するステップと、少なくとも決定されたコンテンツ取得期間と安全時間区分とを加算した分だけ次のコンテンツ修正時点よりも前にコンテンツ取得プロセスを開始するように計画するステップとを含むこともできる。
【0073】
或いは、上述したように、コンテンツ取得期間を静的に定めることもできる。例えば、予定通りにコンテンツ修正を開始するのを容易にするためにクライアントがコンテンツ取得プロセスを開始すべき前倒し時点を計算するために、特定のコンテンツ取得期間を適用するようにメディアクライアントを設定することができる。
【0074】
次に、
図4は、上述した様々な動作を実行できるメディアクライアント例のブロック図である。
図4に示すように、メディアクライアントは、通信インターフェイス40と、ユーザインターフェイス42と、プロセッシングユニット44と、非一時的データストレージ46とを含み、これらは全て、ネットワーク、メッセージバス及び/又は1又は2以上の他の接続機構48を通じて共に結合又は通信可能に連結することができる。
【0075】
通信インターフェイス40は、HDMI(登録商標)インターフェイスなどのメディア入力インターフェイスと、外部メディアソースからメディアストリームを受け取るように構成された関連する回路及びソフトウェアとを含むことができる。さらに、通信インターフェイス40は、有線及び/又は無線イーサネットインターフェイスなどのネットワーク通信インターフェイスと、ネットワーク16などのネットワークを介した通信を容易にするように構成された関連する回路及びソフトウェアとを含むことができる。
【0076】
ユーザインターフェイス42は、メディアストリームのコンテンツを再生するためのメディア提示インターフェイスを含むことができる。例えば、メディアクライアントがテレビである場合、ユーザインターフェイス42は、放送局、ストリーミングメディア装置又はセットトップボックスから受け取ったリニアフィードのビデオ及びオーディオコンテンツを再生するためのディスプレイ画面及びサウンドスピーカを含むことができる。その他の例も考えられる。
【0077】
プロセッシングユニット44は、1又は2以上の汎用プロセッサ(例えば、マイクロプロセッサ)及び/又は1又は2以上の専用プロセッサ(例えば、特定用途向け集積回路など)を含むことができる。非一時的データストレージ46は、磁気、光学又はフラッシュストレージなどの1又は2以上の揮発性及び/又は不揮発性ストレージコンポーネントを含むことができる。さらに、非一時的データストレージ46は、ランダムアクセスメモリなどのメモリを含むことができ、全体的又は部分的にプロセッシングユニット44と一体化することもできる。
【0078】
図4に示すように、非一時的データストレージ46は、プロセッシングユニットが上述したような動作をコンピュータシステムに実行させるために実行できるプログラム命令50を記憶する(例えば、保持し、プログラム命令50によって符号化され、或いは別様に具体化し又は含む)。
【0079】
一例として、これらの動作は、メディアクライアントが新規コンテンツの挿入(例えば、置換又はオーバーレイ)を含むコンテンツ修正を実行すべきメディアストリーム内の次の時点を決定することを含むことができる。さらに、これらの動作は、次の時点でコンテンツ修正を実行するのを容易にするためにメディアクライアントが新規コンテンツの取得プロセスを開始すべき前倒し時点を設定することを含み、この前倒し時点を設定することは、コンテンツ取得期間を決定することと、少なくとも決定されたコンテンツ取得期間だけ次の時点よりも早くなるように前倒し時点を設定することとを含む。次に、これらの動作は、前倒し時点において(例えば、前倒し時点が訪れたことに応答して)新規コンテンツの取得プロセスを開始することを含むことができる。これらの動作は、次の時点において(例えば、次の時点が訪れたことに応答して)、取得した新規コンテンツを使用してコンテンツ修正を実行することを含むことができる。
【0080】
上述したように、メディアクライアントは、1又は2以上の動作要因と相関する過去のコンテンツ取得期間の事例に基づいてコンテンツ取得期間を予測することができる。1つのこのような動作要因は、数ある可能性の中でも特に、プロセッサタスクが実行される待ち行列の長さがどれほどであるか、プロセッサがアイドル状態でない頻度がどれほどであるか、及び/又はプロセッサが特定のタスクを実行するのにどれほどの時間がかかったかなどに基づいてメディアクライアントが決定できる、メディアクライアントのプロセッシングユニットの負荷とすることができる。別のこのような動作要因は、単位時間当たりに占められている自機のランダムアクセスメモリの割合などとしてメディアクライアントが決定できる、メディアクライアントのメモリの負荷とすることができる。さらに、別の動作要因は、標準的ネットワーク速度試験を実行することによって、及び/又は上述したようなシグナリング遅延に基づいてメディアクライアントが決定できるネットワーク速度とすることができる。その他の例も考えられる。
【0081】
上述した様々な特徴は、このメディアクライアントの文脈において実装することができ、逆もまた同様である。さらに、上述した様々な動作は、非一時的コンピュータ可読媒体に記憶された、プロセッシングユニットが動作を実行するために実行できるプログラム命令によって定めることができる。このような非一時的コンピュータ可読媒体は、メディアクライアント及び/又は別のエンティティにおいて提供、統合又は別様に実装することができる。さらに、これらの動作は他の形態を取ることもできる。
【0082】
以上、例示的な実施形態について説明した。しかしながら、当業者であれば、本発明の実際の範囲及び趣旨から逸脱することなくこれらの実施形態に変更及び修正を行うことができると理解するであろう。