様々な図面における同じ参照番号および符号は同じ要素を示す。
以下に、ネットワークを介したコンピューティングデバイスとコンテンツ選択インフラストラクチャとの間のデータ要求のバランスを取るための方法、装置、およびシステムに関する様々な概念、ならびにこの方法、装置、およびシステムの実装形態についてより詳細に説明する。上記で紹介され以下により詳しく説明する様々な概念は多数の方法のうちの任意の方法で実現されてもよい。
本開示は、デジタルビデオの中断を低減または防止しながら、デジタルビデオコンテンツを組み合わせてより長い持続時間の間、補足コンテンツを提供し、同時にコンピューティングリソース利用度を低減させるシステムおよび方法を対象とする。たとえば、元のビデオコンテンツにはかかわらず限定された固定位置に重畳バナーとして設けられる補足ビデオコンテンツアイテムは、デジタルビデオのアクティブな部分もしくは重要な部分を妨害するかもしくは隠し、サーバにこのバナーコンテンツアイテム用の余分なデータを提供もしくは送信させることによって余分な帯域幅を使用させ、またはデジタルビデオの再生に遅延もしくはラグを生じさせることがある。この理由は、このバナーコンテンツアイテムに対応するデータパケットがデジタルビデオ用のデータパケットに優先されることがあるからである。さらに、インストリームに設けられるインタースティシャル補足コンテンツアイテムは、補足コンテンツアイテムに対応する持続時間の間、デジタルビデオの再生を停止し、それによってデジタルビデオの再生を中断し、デジタルビデオ全体の持続時間を延長し得る(したがって、追加のサーバリソースおよび帯域幅が必要となること、接続ソケットと対応するネットワークソケットが関連付けられることなどが生じる)。さらに、バナーコンテンツアイテムとインタースティシャルコンテンツアイテムはどちらも、全体的なユーザエクスペリエンスおよびデジタル再生グラフィカルユーザインターフェースに悪影響を与えることがある。
本解決策のシステムおよび方法は、デジタルビデオの中断を低減または防止しながら、デジタルビデオを組み合わせてより長い持続時間の間、補足コンテンツを提供し、同時にコンピューティングリソース利用度を低減させることができる。本解決策のシステムおよび方法は、補足コンテンツをデジタルビデオに没入的に埋め込むことによってユーザの注目度を高めることができる。たとえば、本解決策のデータ処理システムは、デジタルビデオアップローダユーザインターフェースを介してデジタルビデオコンテンツアイテムを受信することができる。デジタルビデオコンテンツアイテムは複数のフレームを含むことができる。データ処理システムは、ビデオアップローダインターフェースをコンテンツパブリッシャデバイスに提供することができる。コンテンツパブリッシャデバイスは、デジタルビデオコンテンツアイテムをアップローダインターフェースを介してデータ処理システムに送信することができる。デジタルビデオコンテンツアイテムは、複数の連続するフレームで形成することができ、各フレームは画像を含むことができる。データ処理では、デジタルビデオを前処理して、デジタルビデオコンテンツアイテムがさらなるダウンストリーム処理のために所定の最小基準を満たすかどうかを決定する(たとえば、最低フレームレート、最低解像度、主題、またはビデオ符号化プロトコル)ことができる。データ処理システムは、デジタルビデオコンテンツアイテムのフレームを分析して、静的部分を有するフレームのサブセットを特定することができる。静的部分は、時間領域または時間窓(たとえば、ビデオの2つ以上のフレーム)にわたって一致するピクセルまたは同様のピクセルを有し、したがって、空間次元と時間次元の両方を有する空間領域によって画定することができる。データ処理システムは、特定された静的部分が、リアルタイムコンテンツ選択プロセスを介して補足コンテンツアイテムを挿入することのできるスロットとなる候補であると決定することができる。
場合によっては、データ処理システムは、デジタルビデオにおける複数の候補スロットを特定することができる。データ処理システムは、機械学習モデルまたはアルゴリズムを利用して複数の候補スロットのうちの1つもしくは複数を選択することができる。たとえば、データ処理システムは、ロジスティック回帰、線形回帰、人工ニューラルネットワーク、または他の機械学習モデルもしくはアルゴリズムを使用して候補スロットを特定することができる。データ処理システムは、デジタルビデオをアップロードしたコンテンツパブリッシャデバイスに複数の候補スロットのうちの1つもしくは複数を選択させることができる。場合によっては、コンテンツパブリッシャデバイスは、1つもしくは複数の候補コンテンツスロットを放棄またはロックして、コンテンツアイテムがコンテンツスロットに挿入されるのを阻止することができる。
データ処理システムは、デジタルビデオコンテンツ用のコンテンツスロットを選択すると、デジタルビデオコンテンツアイテムのメタデータに挿入されるタグを生成することができる。タグは、スロットのサイズおよび位置などの、自動的に生成されたコンテンツスロットに関する情報を示すことができる。タグは、コンテンツについての要求を生成するために使用するか、または要求に応答してデータ処理システムによって実行されるリアルタイムコンテンツ選択プロセスを容易にするために使用することができるコンテンツスロットに関する追加の情報を含むことができる。たとえば、データ処理システムは、スロットに対応するフレームのサブセットに先立った再生中に時間オフセットを算出することができる。時間オフセットは、データ処理システムにコンテンツ選択プロセスを実行させコンテンツアイテムを選択させてデジタルビデオコンテンツアイテム内のコンテンツスロットに挿入するのを可能にするために、クライアントデバイスがコンテンツについての要求をいつ送信すべきかを示すことができる。
データ処理システムは、タグ付けされたデジタルビデオコンテンツをクライアントデバイスに提供してクライアントデバイスにデジタルビデオコンテンツを再生させることができる。クライアントデバイスは、デジタルビデオコンテンツをレンダリングし、メタデータを解析してタグおよび時間オフセットを特定し、次いでタグに応答してコンテンツについての要求を送信することができる。データ処理システムは、要求を受信したことに応答して、コンテンツアイテムを選択してクライアントデバイスに提供し、クライアントデバイスに、デジタルビデオ内の自動的に生成されたスロットにおいて選択されたコンテンツアイテムをレンダリングさせることができる。場合によっては、データ処理システムは、選択された補足コンテンツアイテムをデジタルビデオコンテンツとマージして対応するフレームをクライアントデバイスに提供するか、またはストリーミング送出して、クライアントデバイスに、デジタルビデオを補足コンテンツアイテムとともにレンダリングまたは再生させることができる。場合によっては、データ処理システムは、クライアントデバイスに、デジタルビデオコンテンツのメタデータ内の特定されたコンテンツスロットにおいて補足コンテンツアイテムをレンダリングさせるための命令とともに補足コンテンツアイテムを与えることができる。
次に図1Aを参照すると、デジタルビデオを組み合わせるかまたは修正するシステム用のディスプレイインターフェースの実装形態が示されている。図1Aは、デジタルビデオコンテンツアイテム102を再生し、レンダリングし、表示するビデオプレーヤアプリケーション100を示す。ビデオプレーヤアプリケーション100は、クライアントコンピューティングデバイス(たとえば、図2に示すクライアントコンピューティングデバイス228)によって実行することができる。ビデオプレーヤアプリケーション100は、いくつかの実装形態では再生時に停止ボタンに切り替えることができる再生ボタン108、早送りボタン110、音量制御インターフェース112、クローズキャプショントグル116、および全画面ボタン118などの1つまたは複数のビデオコントロールを含むことができる。様々な実装形態にはこれよりも多いかまたは少ない数のコントロールを含めることができる。ビデオプレーヤアプリケーション100は進捗バー106を備えることができ、進捗バー106は、デジタルビデオコンテンツアイテムの進捗を視覚化するように構成されたグラフィカル制御要素とすることができる。ビデオプレーヤアプリケーション100は、ビデオの現在の進捗の指示114をビデオの全持続時間にわたって与えることができる(たとえば、現在の進捗時間は0.56秒であってもよく、全持続時間は6:23であってもよい)。
ビデオプレーヤアプリケーション100は、デジタルビデオコンテンツ102に空間的に重畳されたバナーコンテンツスロット120を備えることができる。しかし、図示の例では、バナーコンテンツスロット120は、デジタルビデオコンテンツ102の一部を覆い隠すので、指定された部分において指定されたサイズ(たとえば、480x70)で限られた時間の間、ビデオの上部に重畳される。バナーコンテンツスロット120は、ビデオの一部を覆い隠してユーザを困惑させいらいらさせ、下方の覆い隠されたビデオの対応する部分をレンダリングする処理リソースを無駄にし得る。ビデオのアクティブな部分は、たとえば、復号のためにより微細なマクロブロックを必要とする頻繁に変化する画像または詳細な画像(たとえば、テキストまたは動き)に起因して、復号および/またはレンダリングにより多くの処理を必要とすることが多く、したがって、これらの部分をレンダリングし、その後オーバーレイバナーによって覆い隠すには、ユーザに視認可能な効果をもたらさないにもかかわらず処理リソースを使用する必要がある。
本解決策では、コンテンツパブリッシャがデジタルビデオコンテンツ102をデータ処理システム(たとえば、図2に示すデータ処理システム202)にアップロードすることができる。データ処理システム202は、デジタルビデオコンテンツを分析してブランクまたは静的スペース122を特定することができる。ブランクスペースまたは静的スペース122は、ピクセルが所定の持続時間またはいくつかのフレームにわたって実質的に変化しない場合があるデジタルビデオコンテンツの静的部分に対応することができる。たとえば、ピクセルは、前のフレーム内のピクセルまたは領域内のピクセルと比較して同じである場合もあり、またはある割合(たとえば、1%、2%、3%、4%、5%、10%など)未満変化する場合もある。ブランクスペースまたは静的スペース122は背景または他の領域を表すことができる。
たとえば、デジタルビデオコンテンツはニュースプログラムとすることができる。ニュースプログラムは、デジタルビデオ102における概ね一定の領域内に位置するニュースキャスター104を表示することができる。ニュースキャスター104は、静的な色の周囲の境界、静止した家具またはニュースセットなどの、ブランクスペースまたは静的スペース122によって周りを囲むことができる。したがって、デジタルビデオコンテンツ102を作成したか、またはデジタルビデオコンテンツ102を表示するコンテンツパブリッシャは、デジタルビデオコンテンツ102をデータ処理システム202にアップロードすることができ、データ処理システム202はデジタルビデオコンテンツアイテム102を分析することができる。データ処理システム202は、デジタルビデオコンテンツ102を受信すると、前処理を実行することができ、この前処理は、ビデオを複数のフォーマットに変換すること、解像度を変更すること、またはフレームレートを変更することを含むことができる。
次に、図1Bを参照すると、デジタルビデオを組み合わせるかまたは修正するためのディスプレイインターフェースおよびシステムの実装形態の別の図が示されている。図1Bは、システム101の動作を示し、この動作の間に、コンテンツパブリッシャ232は、ステップ140においてデジタルビデオコンテンツ102をデータ処理システム202にアップロードする。データ処理システム202はデジタルビデオコンテンツ102を分析することができる。データ処理システム202は、デジタルビデオコンテンツ102を分析して、図1Aに示すブランクスペース122に位置する候補コンテンツスロット124、126、128、130、132、および134を特定する。データ処理システム202は、候補コンテンツスロットの自動検出を実行することができる。
データ処理システム202は、画像解釈、画像処理、機械学習、またはその他の技法を利用して候補コンテンツスロット124、126、128、130、132、および134を特定することができる。たとえば、データ処理システム202は、デジタルビデオコンテンツ102内の連続するフレームを比較してしきい値よりも小さいピクセルの変化を特定し、1つまたは複数の候補コンテンツスロットを特定することができる。データ処理システム202は、機械学習を使用して、履歴性能または予測モデルに基づいて複数の候補コンテンツスロットのうちの1つまたは複数を選択することができる。たとえば、データ処理システム202は、ロジスティック回帰を使用して複数のフレームを分析し、2つ以上のフレームにわたって一致するピクセルを有する空間領域によって画定される第1の静的部分を特定することができる。データ処理システム202は、機械学習モデルまたはアルゴリズムを利用して複数の候補スロットのうちの1つまたは複数を選択することができる。データ処理システムは、ロジスティック回帰、線形回帰、人工ニューラルネットワーク、または他の機械学習モデルもしくはアルゴリズムを使用して候補スロットを特定することができる。たとえば、データ処理システム202は、すでに選択されたコンテンツスロットに基づく性能フィードバックを受信し、正のフィードバックに関連する特徴および負のフィードバックに関連する特徴を特定することができる。データ処理システム202は、正のフィードバック、負のフィードバック、および関連する特徴を使用して機械学習モデルを生成または構築することができ、データ処理システム202はこの機械学習モデルを使用して、正のフィードバックをもたらすためにコンテンツスロットを配置することができるビデオ内の静的領域を予測することができる。データ処理システム202は、機械学習モデルをさらに使用して、予測される負の性能に基づいてコンテンツスロットを配置すべきではないビデオ内の静的領域を予測することができる。
データ処理システム202は、人(たとえば、人104)、モニュメント、移動体、または他の所定のオブジェクトを含むデジタルビデオ102の1つまたは複数の部分を削除することを含む自動スロット検出技法を利用することができる。この自動スロット検出技法は、隣接するフレームについてピクセルごとに比較して、デジタルビデオ102が静的な背景を有する共通部分を特定することを含むことができる。自動スロット検出アルゴリズムの出力によって、図1Bに示すように複数の候補スロット(たとえば、静的な背景を有するデジタルビデオ102の複数の時間および位置)を得ることができる。たとえば、コンテンツスロット126、130、および134は持続時間142において静的な背景を有することができ、一方、コンテンツスロット124、128、および132は持続時間144において静的な背景を有することができる。
データ処理システム202は、複数の候補コンテンツスロット124、126、128、132、および134を特定すると、自動スロット検出技法を使用して、人(たとえば、人104)の近くの候補コンテンツスロットまたは興味をひく他の部分もしくは他の詳細な部分(たとえば、テキスト、動きなど)のうちの1つまたは複数をフィルタ処理してディストラクションを低減させることができる。データ処理システム202は、最大/最小規則を適用し複数の候補スロットをより少ない候補コンテンツスロットに統合して下流側処理を単純化し、それによってダウンストリーム処理の効率を向上させる。たとえば、候補コンテンツスロット124、128、および132は、最大コンテンツスロット136に統合することができ、候補コンテンツスロット126、130、および134は最大コンテンツスロット138に統合することができる。
データ処理システム202は、自動スロット検出プロセスを使用して、統合されたコンテンツスロット(または領域)136および138を機械学習アルゴリズムに転送して最良のコンテンツスロットを選択することができる。機械学習アルゴリズムは、以下の信号を利用して最良のコンテンツスロットを選択することができる。i)ビデオを見るエンドユーザ-エンドユーザは、これらの種類のビデオコンテンツアイテムを拒否するオプションを有し、ビデオの特定のセットを拒否する場合、利用されたスロットが不良または非最適であると見なされることがあり、対応する信号は、拒否するユーザに基づいて不良スロット位置を示すことができる。ii)ビデオアップローダ-ビデオを提供するビデオアップローダまたはユーザは、あるスロットの示唆を拒絶するまた受け入れることができ、したがって、この信号は、コンテンツパブリッシャがスロット位置を受け入れるかどうかに基づく統計的により優れたスロット位置およびパブリッシャがスロット位置を拒絶したかどうかに基づく不良なスロット位置を示すことができる。iii)クラウドソーシング情報-機械学習アルゴリズムに対してグランドトゥルースデータを提供して、(正の信号および負の信号を介して)スロットにおけるコンテンツの良好な配置および不良な配置を明示的に特定することについて訓練するクラウドソーシング評価システム、iv)ビデオ補足コンテンツアイテムの効果-コンテンツスロットにおけるレンダリングされたコンテンツアイテムに関連する様々なメトリクス(たとえば、性能、選択、ユーザ注視時間短縮)を観測し、A/Bテスト、バケットテスト、またはスプリットランテストに基づいてスロット選択を向上させる。
したがって、データ処理システム202は、自動スロット検出技法、自動スロット検出プロセス、機械学習アルゴリズムを含むことができる自動スロット検出アルゴリズムを利用して、デジタルビデオ内の静的部分に対応するコンテンツスロットをデジタルビデオ内に自動的に作成することができる。データ処理システム202は、コンテンツスロットのフレーム(持続時間142または144の開始時点に対応するコンテンツスロットについてのデジタルビデオ内の開始時間、コンテンツスロットについての座標、周囲の色、背景色、またはコンテンツスロットの持続時間)を決定することができる。たとえば、データ処理システム202は、候補コンテンツスロットの各々についての持続時間を決定することができる。データ処理システム202は、候補コンテンツスロットの各々が同じ持続時間を有するか、または候補コンテンツスロットのうちの1つまたは複数がそれぞれに異なる持続時間(たとえば、持続時間142および146)を有すると決定することができる。データ処理システム202は、所定の持続時間値に基づくか、または候補コンテンツスロットの位置に対応するピクセルが静的なままである持続時間に基づいて候補コンテンツスロットの各々についての持続時間を設定することができる。データ処理システム202は、フレームごとに調べて、デジタルビデオ内の領域が静的であるかまたは同じコンテンツに対応する(たとえば、同じピクセル、動きなしなど)のはどこかを特定することができる。データ処理システムは、さらなる処理を適用していくつかの領域を、その領域が変化しないにもかかわらず除外することができ、たとえば、領域がすでにテキストを含む(または放送局のコールサインなどの少量のテキストを有する領域を除外するのを阻止するために所定のしきい値よりも多いテキストを含む)か、補足コンテンツアイテムの提供に寄与しない色を有するか、顔もしくは補足コンテンツアイテムによって重畳されない他の特定可能なオブジェクトを含む場合などにこの除外を行うことができる。
場合によっては、データ処理システム202は、候補コンテンツスロットのコンテンツパブリッシャに指示を与えることができる。データ処理システム202は、コンテンツパブリッシャに候補コンテンツスロットのうちの1つまたは複数を受け入れるかまたは拒絶するように促すことができる。場合によっては、コンテンツパブリッシャは、デジタルビデオコンテンツアイテム上の追加の領域を候補コンテンツスロットとしてマーク付けすることができる。たとえば、コンテンツパブリッシャは、グラフィカルユーザインターフェースまたはその他の入力機構(たとえば、マウス、タッチインターフェース、または入力座標)を使用してボックス132を候補コンテンツスロットとしてマーク付けすることができる。
データ処理システム202は、候補コンテンツスロットのうちの1つまたは複数を選択することができる。データ処理システム202は、選択されたコンテンツスロットに関する情報をデジタルビデオにタグ付けすることができる。データ処理システム202は、デジタルビデオコンテンツ102のメタデータ内に情報を含めることができる。たとえば、データ処理システム202は、コンテンツスロットについての位置、背景色、サイズ、キーワード、または時間オフセットを含むことができる。この情報は以後のコンテンツ選択を容易にすることができる。たとえば、背景色は、コンテンツアイテムを選択するうえで有用である場合がある。その理由は、コンテンツアイテムは、所定の背景色上に表示されるアイテムとして選択されるか、または一方では、所定の背景色上に表示されるアイテムとして選択されない選好を示し得るコンテンツ選択基準を含むことができるからである。
図1Cを参照すると、デジタルビデオを組み合わせるかまたは修正するためのディスプレイインターフェースおよびシステムの実装形態の別の図が示されている。図1Cは、データ処理システム202がステップ150においてクライアントコンピューティングデバイス230にタグ付きデジタルビデオ102'を提供するシステム102の動作を示す。タグ付きデジタルビデオ102'は、選択されたコンテンツスロットに関する情報(たとえば、サイズ、位置、背景色など)および時間オフセットを含むことができる。時間オフセット160は、コンテンツスロットを含むフレームのサブセットに先立った再生中における時間を指すことができる。時間オフセット160は、所定の値とすることができ、またはデジタルビデオコンテンツ102'、クライアントコンピューティングデバイス230、またはクライアントコンピューティングデバイス230およびデータ処理システム202が通信するためのネットワーク(たとえば、図2に示すネットワーク205)に関連する特性に基づいて動的に決定することができる。この特性は、バッファリング量を含むことができる。たとえば、クライアントコンピューティングデバイス230上にバッファまたはプレロードされるビデオコンテンツが多いほど、時間オフセット160を大きくすることができ、それによって、補足コンテンツアイテムが確実に、データ処理システム202によって選択され、クライアントコンピューティングデバイス230上にプレロードまたはバッファされるデジタルビデオコンテンツとともにクライアントコンピューティングデバイス230に提供される。
いくつかの実装形態では、クライアントコンピューティングデバイス230がタグ付きデジタルビデオ102'の再生を開始するとき、タグは、クライアントコンピューティングデバイス230に、デジタルビデオコンテンツアイテム102'またはクライアントコンピューティングデバイス230に関連する情報とともに要求152をデータ処理システム202に送らせるための命令を含むことができる。要求152は、タグ付きデジタルビデオ102'の識別子を含むことができる。要求152は、タグ付きデジタルビデオコンテンツアイテム102'に関連するメタデータを含むことができる。データ処理システム202は、クライアントコンピューティングデバイス230がタグ付きデジタルビデオコンテンツ102'の再生を開始したことに応じてクライアントコンピューティングデバイス230から要求152を受信する。データ処理システム202は、要求152に応じて、要求152を介して受信されたメタデータに基づくか、または要求152を介して受信された識別子を使用してデータベースにおいて検索を実行することに基づいて、デジタルビデオコンテンツアイテム102'が没入型コンテンツスロットに適しているかどうかを特定することができる。
いくつかの実装形態では、クライアントコンピューティングデバイス230は、タグ付きデジタルビデオ102'の再生を開始すると、タグ付きデジタルビデオ102'、デバイスコンテキスト、およびデバイスプロファイル情報とともに要求152を送信する。データ処理システム202は、タグ付きデジタルビデオ102'に関する前処理済みメタデータを取り込み、タグ付きデジタルビデオ102'が埋め込みコンテンツスロットエクスペリエンスに適していると決定することができる。前処理済みメタデータはまた、埋め込みコンテンツスロット164のタイミングおよび位置付けに関する情報を含むことができる。たとえば、データ処理システム202は、データ処理システム202に関連するメタデータをデータベース内に記憶することができる。メタデータには、タグ付きデジタルビデオ102'の識別子を割り当てることができる。クライアントコンピューティングデバイス230は、タグ付きデジタルビデオ102'の再生時に、データ処理システム202に識別子を提供することができ、データ処理システム202は、受信された識別子を使用して検索を実行し、タグ付きデジタルビデオ102'についてのメタデータを取り出すことができる。クライアントコンピューティングデバイス230は、データ処理システム202にメタデータを記憶することによって、タグ付きデジタルビデオコンテンツ102'についての識別子を送信するだけでよく、それによって帯域幅使用量が削減されレイテンシが低減される。
いくつかの実装形態では、データ処理システム202は、没入型コンテンツスロットをいつどこでデジタルビデオコンテンツアイテム102'に表示すべきかに関する情報を含む応答154をクライアントコンピューティングデバイス230に送信することができる。クライアントコンピューティングデバイス230またはクライアントコンピューティングデバイス230上で実行されるビデオアプリケーションプレーヤは、受信された情報を記憶することができる。
いくつかの実装形態では、ステップ150において提供されたタグ付きデジタルビデオコンテンツアイテム102'は、この情報をデジタルビデオ102'のメタデータに含めることができ、要求ステップ152および応答ステップ154を不要にすることができ、それによってリモートプロシージャコールの数、ネットワーク使用量、およびレイテンシが低減される。
再生時にタグ付きデジタルビデオ102'が進行すると、ビデオは時間オフセット160の開始時点まで進むことができる。時間オフセット160まで進行すると、コンテンツについての要求156をトリガすることができる。時間オフセット160まで進行すると、ビデオアプリケーションプレーヤを実行するクライアントコンピューティングデバイス230に、コンテンツについての要求156をデータ処理システム202に送信させることができる。コンテンツについての要求156は、時間オフセット160に基づいて送信することができ、時間オフセット160は、コンテンツスロット持続時間162に先立った再生中に生じる。
データ処理システム202は、コンテンツについての要求156を受信し、コンテンツ選択プロセスを実行することができる。データ処理システム202は、要求に関連する情報を使用してコンテンツアイテム(たとえば、コンテンツスロットの背景色、タグ付きデジタルビデオ102'に関連するキーワード、コンテンツスロットの位置、コンテンツスロットのサイズ、クライアントコンピューティングデバイス230に関連するプロファイル情報など)を選択することができる。データ処理システム202は、選択されたコンテンツアイテムを送信158を介してクライアントコンピューティングデバイス230に提供することができる。データ処理システム202は、クライアントコンピューティングデバイス230に選択されたコンテンツアイテムのコンテンツスロット164への挿入、埋め込み、マージ、重畳、またはその他のレンダリングもしくは表示を行わせるための命令を、送信158時にさらに提供することができる。選択されたコンテンツアイテムは、コンテンツスロット持続時間162(たとえば、30秒、1分、2分、3分、またはそれよりも長い時間)についてのコンテンツスロット164においてレンダリングすることができる。
選択されたコンテンツアイテムは、静的画像などの画像とすることができる。データ処理システム202は、選択されたコンテンツアイテムに対応する静的画像を含むデータファイルをクライアントコンピューティングデバイス230に提供することができる。クライアントコンピューティングデバイス230またはクライアントコンピューティングデバイス230上で実行されるビデオプレーヤアプリケーションは、デジタルビデオコンテンツのフレームをレンダリングする。クライアントコンピューティングデバイス上で実行されるビデオプレーヤアプリケーションがデジタルビデオコンテンツのフレームをレンダリングすると、ビデオアプリケーションプレーヤは、データファイルにおいて受信された選択されたコンテンツアイテムに対応する画像を、(たとえば、コンテンツスロット164における)指定された位置において指定された持続時間162の間ビデオフレームとマージすることができる。したがって、システムは、選択されたコンテンツアイテムを単一の送信158において静的画像として提供し、クライアントコンピューティングデバイス230に、デジタルビデオのそれぞれのフレームにおける特定の位置において指定された持続時間の間、コンテンツアイテムをレンダリングするよう命令することによって、ネットワーク利用度を低減させることができる。
持続時間162が完了した後、クライアントコンピューティングデバイス230によって実行されるビデオプレーヤアプリケーションは、コンテンツスロット164なしでデジタルビデオ102'をレンダリングすることができる。ビデオプレーヤアプリケーションは、ビデオが進行するにつれてコンテンツアイテムを示すことができる次のコンテンツスロットを待機することができる。
次に図1Dを参照すると、デジタルビデオを組み合わせるかまたは修正するためのディスプレイインターフェースおよびシステムの実装形態の別の図が示されている。図1Dは、タグ付きデジタルビデオ120''が第2のコンテンツスロット174を含むシステム102の動作を示す。第2のコンテンツスロット174は、第2の時間オフセット176および第2のコンテンツスロット持続時間178に関連付けることができる。第2の時間オフセット176および第2のコンテンツスロット持続時間178は、時間オフセット160およびコンテンツスロット持続時間162に後続することができる。第2のコンテンツスロット174の位置およびサイズは、コンテンツスロット164の位置およびサイズと異ならせることができる。たとえば、コンテンツスロット164は、デジタルビデオコンテンツ102'の右上隅に位置させることができ、一方、第2のコンテンツスロット174は、タグ付きデジタルビデオコンテンツ120''の左下隅に位置させることができる。タグ付きデジタルビデオ102'および120''は、異なる表示時間における同じビデオとすることも、またはそれぞれに異なるビデオとすることもできる。タグ付きデジタルビデオ120''は、コンテンツスロット164とコンテンツスロット174の両方をそれぞれに異なる表示時間に含むことができる。場合によっては、コンテンツスロット164とコンテンツスロット174の両方が同じ時間または重複する時間に存在することができる。たとえば、第2の時間オフセット176はコンテンツスロット持続時間162の間に生じて、コンテンツスロット174において表示される第2のコンテンツアイテムを待ち行列に入れることができ、一方、レイテンシが最小限になるようにコンテンツスロット持続時間162の間にコンテンツアイテムが表示される。
クライアントコンピューティングデバイス230は、タグ付きデジタルビデオ120''が第2の時間オフセット176まで進行するかまたは再生が第2の時間オフセット176に達したことに応答して、コンテンツについての要求170を送信することができる。データ処理システム202は、第2のコンテンツアイテムを選択し、送信172の間に第2のコンテンツアイテムをクライアントコンピューティングデバイス230に提供することができる。データ処理システム202は、コンテンツ要求170に関連する情報を使用して第2のコンテンツアイテムを選択することができる。情報は、第2のコンテンツスロット174または周囲のピクセルに関連する情報(たとえば、サイズ、位置、背景色)を含むことができる。データ処理システム202は、コンテンツスロットに関連する特性をコンテンツアイテムに関連するコンテンツ選択基準と照合して、一致するコンテンツアイテムを選択することができる。
図2は、デジタルビデオを組み合わせるかまたは修正するための例示的なシステム200を示す。システム200は、コンテンツ選択インフラストラクチャを含むことができる。システム200は、コンテンツプロバイダコンピューティングデバイス234、コンテンツパブリッシャコンピューティングデバイス232、またはクライアントコンピューティングデバイス230のうちの1つまたは複数とネットワーク205を介して通信するデータ処理システム202を含むことができる。ネットワーク205は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声もしくはデータモバイル電話網などの他の通信ネットワークを含むことができる。ネットワーク205は、ラップトップ、デスクトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、またはモバイル通信デバイスなどの少なくとも1つのコンピューティングデバイス230上に表示することができる、ウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用することができる。たとえば、コンピューティングデバイス230のユーザは、少なくとも1つのウェブサイトオペレータまたはコンテンツパブリッシャ232によって提供されるウェブページにネットワーク205を介してアクセスすることができる。クライアントコンピューティングデバイス230のウェブブラウザ(たとえば、アプリケーション104)は、ウェブサイトオペレータまたはコンテンツパブリッシャ232のウェブサーバにアクセスしてウェブページをコンピューティングデバイス230のモニタ上に表示するために取り出すことができる。コンテンツパブリッシャデバイス232は、コンピューティングデバイス230上で実行されるアプリケーション104にコンテンツをレンダリングするよう命令することができる。ウェブサイトオペレータまたはコンテンツパブリッシャ232は一般に、ウェブページを運営するエンティティを含む。ウェブサイトオペレータまたはコンテンツパブリッシャ232は、ネットワーク205と通信してコンピューティングデバイス230がウェブページを利用できるようにする少なくとも1つのウェブページサーバを含む。データ処理システム202は、コンピューティングデバイス230上で実行されるアプリケーション104にコンテンツをレンダリングするよう命令することができる。
ネットワーク205は、任意の種類または形態のネットワークであってもよく、ポイントツーポイントネットワーク、ブロードキャストネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信網、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期型光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ)ネットワーク、ワイヤレスネットワーク、および回線ネットワークのうちのいずれかを含んでもよい。ネットワーク205は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含んでもよい。ネットワーク205のトポロジーは、バスネットワークトポロジー、スターネットワークトポロジー、またはリングネットワークトポロジーを含んでもよい。ネットワークは、アドバンストモバイルフォンプロトコル(“AMPS”)、時分割多元接続(“TDMA”)、符号分割多元接続(“CDMA”)、グローバルシステムフォーモバイルコミュニケーションズ(“GSM(登録商標)”)、汎用パケット無線サービス(“GPRS”)、またはユニバーサルモバイルテレコミュニケ-ションズシステム(“UMTS”)を含む、モバイルデバイス間で通信するために使用される任意のプロトコルを使用するモバイル電話網を含んでもよい。様々な種類のデータがそれぞれに異なるプロトコルを介して送信されてもよく、または同じ種類のデータがそれぞれに異なるプロトコルを介して送信されてもよい。
システム200は、少なくとも1つのデータ処理システム202を含むことができる。データ処理システム202は、ネットワーク205を介して、たとえばコンピューティングデバイス230、ウェブサイトオペレータまたはコンテンツパブリッシャデバイス232(もしくはコンテンツパブリッシャ232)、および少なくとも1つのコンテンツプロバイダコンピューティングデバイス234(もしくはプロバイダデバイス234もしくはコンテンツプロバイダ234)と通信するためにプロセッサを有するコンピティングデバイスなどの少なくとも1つの論理デバイスを含むことができる。データ処理システム202は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含むことができる。たとえば、データ処理システム202は、少なくとも1つのデータセンター内に位置する複数の計算リソースまたはサーバを含むことができる。データ処理システム202は、論理的にグループ分けされた複数のサーバを含み、分散コンピューティング技法を容易にすることができる。サーバの論理グループは、データセンター、サーバファーム、またはマシンファームと呼ばれることもある。サーバはまた、地理的に分散させることができる。データセンターまたはマシンファームは、単一のエンティティとして管理されてもよく、またはマシンファームは複数のマシンファームを含むことができる。各マシンファーム内のサーバは、互いに異種とすることができ、サーバまたはマシンのうちの1つまたは複数は、1つもしくは複数の種類のオペレーティングシステムプラットフォームに従って動作することができる。
マシンファーム内のサーバは、関連する記憶システムとともに高密度ラックシステムに格納し、エンタープライズデータセンター内に配置することができる。たとえば、サーバをこのように統合すると、ローカライズされた高性能ネットワーク上にサーバおよび高性能記憶システムを位置させることによって、システム管理性、データセキュリティ、システムの物理的セキュリティ、およびシステム性能が向上する場合がある。サーバおよび記憶システムを集中させ高度システム管理ツールと結合することによって、サーバリソースをより効率的に使用することができる。
データ処理システム202は、少なくとも1つの計算リソースまたはサーバを有するコンテンツ配置システムを含むことができる。データ処理システム202は、少なくとも1つのコンテンツセレクタ226を含むか、または少なくとも1つのコンテンツセレクタ226と通信することができる。コンテンツプロバイダデバイス234は、画像、電子ドキュメント、オンラインドキュメント、ウェブページ、またはテキストを含むことができる補足コンテンツアイテムなどのコンテンツを提供することができ、データ処理システム202は、コンテンツアイテムをクライアントコンピューティングデバイス230に提供することができる。
データ処理システム202は、少なくとも1つのコンテンツセレクタ構成要素226、少なくとも1つのインターフェース228、少なくとも1つのビデオ信号プロセッサ204、少なくとも1つのデータリポジトリ216を含むか、それらにアクセスするか、それらと相互作用するか、または場合によってはそれらと通信することができる。少なくとも1つのビデオ信号プロセッサは、少なくとも1つのビデオプレプロセッサ206、スロット検出器208、オフセット計算器210、メタデータタグ付け器212、またはビデオエディタ214を含むか、それらにアクセスするか、それらと相互作用するか、または場合によってはそれらと通信することができる。少なくとも1つのデータリポジトリ216は、1つもしくは複数のデータ構造またはデータベース内に、しきい値218、メタデータ220、時間オフセット222、コンテンツデータ224、またはデジタルビデオ238を含めるかまたは記憶することができる。コンテンツデータ224は、たとえば、コンテンツキャンペーン情報、コンテンツグループ、コンテンツ選択基準、コンテンツアイテムオブジェクト、あるいはコンテンツ選択を容易にするためにコンテンツプロバイダ234によって提供されるかまたはデータ処理システム202によって取得もしくは決定されるその他の情報を含むことができる。
ビデオ信号プロセッサ204、ビデオプレプロセッサ206、スロット検出器208、オフセット計算器210、メタデータタグ付け器212、ビデオエディタ214、インターフェース228、またはコンテンツセレクタ226の各々は、少なくとも1つの処理ユニット、またはデータリポジトリ216と通信するように構成されたプログラム可能な論理アレイエンジンもしくはモジュールなどの他の論理デバイスを含むことができる。ビデオ信号プロセッサ204、ビデオプレプロセッサ206、スロット検出器208、オフセット計算器210、メタデータタグ付け器212、ビデオエディタ214、インターフェース228、またはコンテンツセレクタ226は、別個の構成要素とすることも、単一の構成要素とすることも、またはデータ処理システム202の一部とすることもできる。データ処理システム202およびその構成要素は、1つもしくは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含むことができる。
データ処理システム202は、複数のコンピューティングデバイス230に関連する匿名コンピュータネットワークアクティビティ情報を取得することができる。コンピューティングデバイス230のユーザは、データ処理システム202がユーザのコンピューティングデバイス230に対応するネットワークアクティビティ情報を取得するのを肯定的に認可することができる。たとえば、データ処理システム202は、1つまたは複数の種類のネットワークアクティビティ情報を取得するための同意をコンピューティングデバイス230のユーザに促すことができる。コンピューティングデバイス230のユーザのIDは匿名のままとすることができ、コンピューティングデバイス230は、一意の識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスについての一意の識別子)に関連付けられてもよい。データ処理システムは、各観測を対応する一意の識別子に関連付けることができる。
データ処理システム202は、ネットワーキングインターフェース、通信ポート、入出力ポート、または1つまたは複数の入力テキストボックス、ボタン、ドロップダウンメニュー、ウィジェット、またはその他のユーザインターフェース要素を含むグラフィカルユーザインターフェースなどのインターフェースを含むか、そのようなインターフェースを実行するか、またはそのようなインターフェース228と通信することができる。データ処理システム202は、コンテンツプロバイダデバイス234上のレンダリングのためのグラフィカルユーザインターフェースを構成することができる。データ処理システム202は、コンテンツ選択プロセスを容易にするかまたはコンテンツ選択プロセスを確立するパラメータまたはその他の情報をグラフィカルユーザインターフェースを介して受信することができる。
データ処理システムのインターフェース228は、グラフィカルユーザインターフェースを含むことができる。インターフェース228は、コンテンツパブリッシャ232がデジタルビデオをアップロードするのを可能にすることができる。インターフェース228は、コンテンツパブリッシャが、デジタルビデオ用の候補コンテンツスロット(たとえば、図1Bに示す候補コンテンツスロット)としてのマークボックスなどの追加の入力を提供するのを可能にすることができる。データ処理システム202のインターフェース228は、コンテンツパブリッシャデバイス232から受信されたデータパケットを、ビデオ信号プロセッサ204またはデータリポジトリ216などのデータ処理システム202の1つまたは複数の構成要素に転送またはルーティングすることができる。
インターフェース228は、クライアントコンピューティングデバイス230に通信可能に結合された1つもしくは複数の入出力デバイスを介して入力された情報もしくは命令を受信するか、ネットワーク205を介してデータパケットを受信するか、またはネットワーク205を介してデータを送信するためのネットワークインターフェース、ユーザインターフェース、入出力インターフェース、通信ポート、バス、またはその他のソフトウェアもしくはハードウェアを含むことができる。インターフェース228は、グラフィカルユーザインターフェース、マルチタッチインターフェース、ジェスチャーベースインターフェース、オーディオベースインターフェース、または音声ベースインターフェースを含むことができる。
インターフェース228は、コンテンツプロバイダデバイス234、コンテンツパブリッシャデバイス232、またはデータ処理システム202にデータパケットまたは情報を提供し、コンテンツプロバイダデバイス234、コンテンツパブリッシャデバイス232、またはデータ処理システム202からデータパケットまたは情報を受信することができる。
インターフェース228は、1つまたは複数の入力テキストボックス、ボタン、ドロップダウンメニュー、ウィジェット、またはその他のユーザインターフェース要素を含むグラフィカルユーザインターフェースを含むか、グラフィカルユーザインターフェースを実行するか、またはグラフィカルユーザインターフェースと通信することができる。データ処理システム202は、グラフィカルユーザインターフェースをコンテンツプロバイダデバイス234、コンテンツパブリッシャデバイス232、またはクライアントコンピューティングデバイス230上でのレンダリング向けに構成することができる。データ処理システム202は、コンピューティングデバイス230のインターフェース228を介して、コンテンツ選択プロセスを容易にするパラメータまたはその他の情報を受信することができる。インターフェース228は、クライアントコンピューティングデバイス230の1つまたは複数の構成要素から受信されたデータパケットをデータ処理システム202、コンテンツパブリッシャデバイス234、またはコンテンツパブリッシャ232の構成要素に転送またはルーティングすることができる。
コンテンツパブリッシャ232はデジタルビデオを提供することができる。コンテンツパブリッシャ232はデジタルビデオを作成することができる。コンテンツパブリッシャ232は、マルチメディアコンテンツを作成または提供することができる。たとえば、コンテンツパブリッシャは、ニュースプログラム、ドキュメンタリー、ショー、映画、ビデオクリップ、またはその他のコンテンツを作成することができる。コンテンツパブリッシャ232は、デジタルビデオをデータ処理システム202に送信またはアップロードすることができ、それによってデータ処理システム202は、デジタルビデオをクライアントコンピューティングデバイス230上で再生できるようにクライアントコンピューティングデバイス230にストリーミング送出または提供することができる。
データ処理システム202はまた、インターフェース228を介してコンテンツプロバイダデバイス234と通信することができる。たとえば、データ処理システム202のインターフェース228は、コンテンツプロバイダデバイス234から受信されたデータパケットを、コンテンツセレクタ構成要素226またはデータリポジトリ216などのデータ処理システム202の1つまたは複数の構成要素に転送またはルーティングすることができる。データ処理システム202は、コンテンツプロバイダデバイス234、コンテンツパブリッシャデバイス216、またはコンピューティングデバイス230にデータパケットまたは情報を提供し、コンテンツプロバイダデバイス234、コンテンツパブリッシャデバイス216、またはコンピューティングデバイス230からデータパケットまたは情報を受信するためのネットワークインターフェース、ユーザインターフェース、入出力インターフェース、通信ポート、バス、またはその他のソフトウェアもしくはハードウェアを含むことができる。
コンテンツプロバイダデバイス234は、データ処理システム202によって選択される1つまたは複数のコンテンツアイテムオブジェクトを提供することができる。データ処理システム202は、コンテンツグループについて指定されたバジェット、コンテンツスケジュール、最大ビッド、キーワード、およびその他の選択基準と一致するコンテンツ配置機会(たとえば、自動的に作成されるコンテンツスロット164または174)が利用可能になったときにコンテンツアイテムオブジェクトを選択することができる。テキストコンテンツアイテム、画像コンテンツアイテム、ビデオコンテンツアイテム、オーディオコンテンツアイテム、マルチメディアコンテンツアイテム、コールコンテンツアイテム、コンテンツアイテムリンク、インタースティシャルコンテンツアイテム、またはバナーコンテンツアイテムなどの様々な種類のコンテンツアイテムオブジェクトをコンテンツグループに含めることができる。
クライアントコンピューティングデバイス230は、ビデオプレーヤアプリケーション236を含むか、ビデオプレーヤアプリケーション236を実行するか、またはビデオプレーヤアプリケーション236と通信することができる。ビデオプレーヤアプリケーション236は、ハードウェアまたはソフトウェア構成要素を含むかまたは利用することができる。ビデオプレーヤアプリケーション236は、たとえば、ウェブブラウザ、モバイルアプリケーション、またはメディアプレーヤを含むことができる。ビデオプレーヤアプリケーション236は、デジタルビデオ、映画、または音楽などのマルチメディアファイルを再生するコンピュータプログラムを含むことができる。ビデオプレーヤアプリケーション236は、デジタルビデオを圧縮または展開することができる1つまたは複数のビデオコーデックを含むように構成することができる。ビデオコーデックは、圧縮フォーマットのビデオを、クライアントコンピューティングデバイス230に通信可能に結合された表示デバイスを介してレンダリングまたは表示できるように生フォーマットに変換することができる。ビデオコーデックは、たとえばMPEG-2を含むことができ、MPEG-2は、ピクチャおよび関連するオーディオ情報を動かすコーディングについての規格を指す。
クライアントコンピューティングデバイス230は、1つもしくは複数のインターフェースを含むことができ、これらのインターフェースは同じ種類であってもよく、またはそれぞれに異なる種類であってもよい。インターフェースは、クライアントコンピューティングデバイス230に通信可能に結合された1つもしくは複数の入出力デバイスを介して入力された情報もしくは命令を受信するか、ネットワーク205を介してデータパケットを受信するか、またはネットワーク205を介してデータを送信するためのネットワークインターフェース、ユーザインターフェース、入出力インターフェース、通信ポート、バス、またはその他のソフトウェアもしくはハードウェアを含むことができる。インターフェース202は、グラフィカルユーザインターフェース、マルチタッチインターフェース、ジェスチャーベースインターフェース、オーディオベースインターフェース、または音声ベースインターフェースを含むことができる。インターフェースは、位置センサー(たとえば、地球測位システム、ワイヤレス送信、短距離ワイヤレス通信、近距離通信など)、加速度計、ジャイロスコープ、周囲光センサー、動き検出器、周囲音センサー、周囲温度センサーなどのセンサーを含むか、これらのセンサーと相互作用することができる。インターフェース202は、クライアントコンピューティングデバイス230の1つまたは複数の構成要素が互いに相互作用するのを可能にすることができる。
クライアントコンピューティングデバイス230は、クライアントデバイス上で実行されるアプリケーション236を介して表示されるコンテンツについての要求を送信することができる。この要求は、データ処理システム202による(たとえば、コンテンツセレクタ構成要素226による)コンテンツ選択を容易にするための情報を含むことができる。コンピューティングデバイス230上で動作するアプリケーション236は、要求を生成し、クライアントコンピューティングデバイス230に、要求をデータ処理システム202に送信するよう命令することができる。アプリケーション236は、指示イベント、相互作用イベント、またはトリガイベントに応答して要求を生成することができる。たとえば、アプリケーション236は、デジタルビデオ内のトリガまたはタグがアプリケーション236によって再生またはレンダリングされたことに応答して要求を生成することができる。要求は、コンテンツ選択基準、選好、コンテンツスロットのサイズ、コンテンツスロットの幅、コンテンツスロットの位置、ディスプレイのサイズ、クライアントコンピューティングデバイス230の種類(たとえば、モバイルデバイス、デスクトップ、タブレットコンピューティングデバイス)、デジタルコンテンツの種類(たとえば、静的、動的、画像、テキスト、ビデオ、オーディオ)、背景色、前景色などのデジタルコンテンツの選択を容易にする情報を含むことができるか、またはそのような情報に関連付けることができる。
データ処理システム202は、キーワードに基づいて、リアルタイムコンテンツ選択プロセスを介してコンテンツアイテムを受信し選択するためにコンテンツセレクタ構成要素226を含むか、コンテンツセレクタ構成要素226を実行するか、または場合によってはコンテンツセレクタ構成要素226と通信することができる。コンテンツ選択プロセスは、サードパーティコンテンツプロバイダ214によって提供されるスポンサー付きコンテンツアイテムオブジェクトを選択することを指すか、そのようなスポンサー付きコンテンツアイテムオブジェクトを選択することを含むことができる。リアルタイムコンテンツ選択プロセスは、複数のコンテンツプロバイダによって提供されるコンテンツアイテムが、1つまたは複数のコンテンツアイテムを選択してコンピューティングデバイス230に提供するために解析、処理、加重、または照合されるサービスを含むことができる。コンテンツセレクタ構成要素226は、コンテンツ選択プロセスをリアルタイムに実行することができる。コンテンツ選択プロセスをリアルタイムに実行することは、コンテンツについての要求がクライアントコンピューティングデバイス230を介して受信されたことに応答してコンテンツ選択プロセスを実行することを指すことができる。リアルタイムコンテンツ選択プロセスは、要求を受信する時間間隔(たとえば、5秒、10秒、20秒、30秒、1分、2分、3分、5分、10分、または20分)内に実行する(たとえば、開始または完了する)ことができる。リアルタイムコンテンツ選択プロセスは、クライアントコンピューティングデバイス230との通信セッションの間に実行するか、または通信セッションが終了した後の時間間隔内に実行することができる。
たとえば、データ処理システム202は、コンテンツアイテムオブジェクトを選択するように設計、構築、もしくは構成されるか、または選択するように動作可能なコンテンツセレクタ構成要素226を含むことができる。データ処理システム202は、表示されるコンテンツアイテムを選択するために、キーワードを使用して照合技法に基づいて一致するコンテンツアイテムを選択することができる。候補コンテンツアイテムは、候補コンテンツアイテムの主題を示すメタデータを含んでもよく、その場合、コンテンツセレクタ構成要素226は、メタデータを処理して、候補コンテンツアイテムの主題が入力されたキーワードに対応するかどうかを決定してもよい。
コンテンツセレクタ構成要素226は、デジタルビデオ内のコンテンツスロットに関連する特性またはメタデータに基づいてコンテンツアイテムを選択することができる。データ処理システム202(たとえば、ビデオ信号プロセッサ204)は、デジタルビデオを分析して、コンテンツスロット、ならびにコンテンツセレクタ構成要素226がコンテンツスロット用のコンテンツアイテムを選択するのを容易にすることのできるコンテンツスロットに関連する特性を自動的に検出することができる。コンテンツスロットの特性は、たとえば、コンテンツスロットのサイズ、コンテンツスロットの位置、コンテンツスロットの持続時間、コンテンツスロットの背景色、コンテンツスロットの周囲のオブジェクトタイプ、コンテンツスロットに近接する人、デジタルビデオの主題、デジタルビデオに関連するキーワード、デジタルビデオ上に表示されるテキストなどを含むことができる。
たとえば、データ処理システム202は、コンテンツスロットにおいてレンダリングされるコンテンツについての要求を含む1つまたは複数のデータパケットをコンピューティングデバイス230から受信することができる。コンテンツスロットは、コンピューティングデバイス230によって実行されるビデオプレーヤアプリケーション236を介して電子ディスプレイハードウェアによって表示することができる。データ処理システム202は(たとえば、コンテンツセレクタ構成要素226を介して)、要求を受信したことに応じて、リアルタイムコンテンツ選択プロセスを実行し、1つまたは複数のデータパケットに基づいて複数のコンテンツを特定することができる。コンテンツセレクタ構成要素226は、1つまたは複数のデータパケットによって搬送または指示される一致する1つまたは複数の基準をコンテンツプロバイダ234によって提供される1つまたは複数のコンテンツ選択基準と照合することに基づいて複数のコンテンツアイテムを特定することができる。1つまたは複数のデータパケットによって指示される基準は、コンテンツアイテムをレンダリングさせるコンテンツスロットに関する情報、アプリケーション104に関連する情報、ウェブページに関する情報、またはコンピューティングデバイス230に関連する情報を含むことができる。
データ処理システム202は、コンテンツパブリッシャ232によって提供されるデジタルビデオを分析し、デジタルビデオ内のスロットを検出し、デジタルビデオにメタデータをタグ付けするように設計され構築されたビデオ信号プロセッサ204を含むことができる。ビデオ信号プロセッサ204は、1つまたは複数のハードウェアもしくはソフトウェア構成要素、モジュール、または要素を含むことができる。ビデオ信号プロセッサ204はビデオプレプロセッサ206を含むことができる。ビデオプレプロセッサ206は、コンテンツパブリッシャ232によってアップロードされるデジタルビデオを受信し、デジタルビデオの初期分析を実行することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオのフォーマットを特定することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオを1つまたは複数の追加のビデオフォーマットに変換することができる。たとえば、ビデオプレプロセッサ206は、アップロードされたデジタルビデオを第1のフォーマットから、様々な種類のクライアントコンピューティングデバイス230上で再生するのに適した1つまたは複数の追加のフォーマットに変換することができる。ビデオプレプロセッサ206は、クライアントコンピューティングデバイス230によるレンダリングまたは再生効率を向上させるためのフォーマットを選択することができる。ビデオプレプロセッサ206は、帯域幅利用度を低減させるためにデジタルビデオのデータファイルサイズを縮小するフォーマットを選択することができる。ビデオプレプロセッサ206は、解像度(たとえば、互いに積層された480本のラインで構成され、各ラインが852ピクセル幅である480p、各々が1280ピクセル幅である720本のラインで構成される720pなど)またはフレームレート(たとえば、毎秒フレーム数“fps”は、動画表示において連続する画像またはフレームが表示される頻度を指すことができる)を変更することによって、アップロードされたデジタルビデオを変換または修正することができる。
ビデオプレプロセッサ206は、アップロードされたデジタルビデオがデータリポジトリ216内にすでに存在するかどうかを決定し、重複排除プロセスを実行してデータリポジトリ216内のストレージ消費量を削減することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオの識別子をデジタルビデオデータ構造238にすでに記憶されたデジタルビデオの識別子と比較することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオの識別子を使用してデジタルビデオデータ構造238における検索を実行することができる。ビデオプレプロセッサ206は、検索を介して一致を特定したことに応じて、識別子に対応するすでに記憶されたデジタルビデオのうちの1つを維持するか、それともすでに記憶されたデジタルビデオを新たにアップロードされたデジタルビデオで置き換えることを決定することができる。ビデオプレプロセッサ206は、元のデジタルビデオを維持するか、それともデジタルビデオの品質(たとえば、フレームレートもしくは解像度)、ファイルサイズ、またはコンテンツパブリッシャ232の証明書などのデジタルビデオに関連する特性に基づいて元のデジタルビデオを置き換えることを決定することができる。たとえば、ビデオプレプロセッサ206は、より高い品質のデジタルビデオ(たとえば、より高い解像度またはより高いフレームレート)を維持することを決定することができる。別の例では、ビデオプレプロセッサ206は、デジタルビデオをコピーした可能性があるコンテンツパブリッシャ232ではなく、デジタルビデオを作成したコンテンツパブリッシャ232などの、認可されたコンテンツパブリッシャ232によって提供されるデジタルビデオを維持することを決定することができる。
ビデオプレプロセッサ206は、アップロードされたデジタルビデオの特性を決定して、アップロードされたデジタルビデオが没入型コンテンツスロット検出に適しているかどうかを決定することができる。特性は、たとえば、フレームレート、解像度、データファイルサイズ、トピック、デジタルビデオの種類、ジャンル、またはビデオ作成日付を含むことができる。たとえば、ビデオプレプロセッサ206は、アップロードされたデジタルビデオのフレームを最小フレームレートしきい値と比較することができる。フレームレートが最小フレームレートしきい値以上である場合、ビデオプレプロセッサ206は、アップロードされたデジタルビデオが十分なフレームレートを有すると決定することができる。しかし、フレームレートが最小フレームレートしきい値未満である場合、ビデオプレプロセッサ206はデジタルビデオをロックして没入型コンテンツスロットの挿入を阻止することができる。
場合によっては、ビデオプレプロセッサ206は、アップロードされたデジタルビデオが自動的に検出されたコンテンツスロットによってタグ付けされていると決定することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオのメタデータを解析してタグ付けされたコンテンツスロットまたはトリガを検出することができる。ビデオプレプロセッサは、アップロードされたデジタルビデオがコンテンツスロットによってタグ付けされていないと決定した場合、ビデオプレプロセッサ206はアップロードされたデジタルビデオをスロット検出器208に提供することができる。ビデオプレプロセッサ206は、アップロードされたデジタルビデオに、コンテンツスロットを示すタグまたはメタデータがないと決定したことに応じて、スロット検出器208に、アップロードされたデジタルビデオを自動的に分析し、スロット検出技法を使用して1つまたは複数のコンテンツスロットを特定または検出するよう命令することができる。場合によっては、ビデオプレプロセッサ206は、アップロードされたデジタルビデオがコンテンツスロットおよびトリガによってすでにタグ付けされていることを検出し得るが、デジタルビデオを再分析してコンテンツスロットを検出することを決定してもよい。
ビデオ信号プロセッサ204は、デジタルビデオを分析してコンテンツスロットを検出するように設計され構築されたスロット検出器208を含むことができる。スロット検出器208は、上述のようなスロット検出プロセス、技法、またはアルゴリズムを含むように構成することができる。たとえば、スロット検出器208は、1つもしくは複数のフレーム内のテキストを特定するための光学文字認識エンジン、1つもしくは複数のフレーム内の顔の有無を特定するための顔認識システム、1つもしくは複数のフレーム内または1つもしくは複数のフレーム間の同一のピクセルの領域を特定するためのピクセル比較器、あるいは潜在的なコンテンツスロットを検出するための任意の他の種類または形態のシステムを備えてもよい。スロット検出器208は、スロット検出プロセスを使用して1つまたは複数のコンテンツスロットを検出すると、機械学習モデルを使用して、検出された1つまたは複数のコンテンツスロットから少なくとも1つのコンテンツスロットを選択することができる。
アップロードされたデジタルビデオは複数のフレームを含むことができる。たとえば、アップロードされたデジタルビデオの持続時間が6分23秒であり、フレームレートが24fpsである場合、アップロードされたデジタルビデオ内のフレームの総数は9192フレームとすることができる。スロット検出器208は、9192個のフレームを分析して静的部分を有する連続するフレームの第1のサブセットを特定することができる。静的部分は、連続するフレームのサブセットにわたって一致するピクセルを含む空間領域によって画定することができる。たとえば、図1Bに示すように、スロット検出器208は、デジタルビデオ102内の9192個のフレームを分析して静的領域124、126、128、130、132、および134を特定することができる。
場合によっては、スロット検出器208は、必ずしも9192個のフレームのすべてを分析しないことを決定することができる。その代わりに、スロット検出器208は、コンピューティングリソース利用度を低減させ効率を向上させるために、デジタルビデオの開始時点またはデジタルビデオの終了時点などの、ビデオ内のある時間間隔ではコンテンツスロットを生成しないように構成することができる。たとえば、スロット検出器208は、デジタルビデオの最初の30秒およびデジタルビデオの最後の30秒に没入型コンテンツスロットを配置することを阻止することができる。したがって、スロット検出器は、最初の30秒におけるフレーム(たとえば、最初の720個のフレーム)または最後の30秒におけるフレーム(たとえば、最後の720個のフレーム)を分析しないことを決定し、それによって合計で9192個のフレームのうちの1440個のフレームの分析を阻止し、コンピューティングリソース消費量を15%削減することができる。
スロット検出器208はまず、様々なスロット位置を検出することができる。それを行うために、スロット検出器208は、ビデオにおける、コンテンツスロットによって上書きされることもまたは置き換えられることもない人、モニュメント、またはその他のオブジェクトを有する部分を削除することができる。スロット検出器208は、画像解釈アルゴリズムを使用して、ビデオ内の人、モニュメント、または他の変更不能なオブジェクトなどの所定の形状またはオブジェクトに対応するピクセルを特定することができる。画像解釈アルゴリズムは、画像内に人がいることを特定するか、または画像内のあるオブジェクトを特定することができるデジタル画像処理技法を含むことができる。画像解釈アルゴリズムは、パターン認識、デジタルジオメトリ、信号処理を使用して画像内に人がいることを特定するか、または画像内のあるオブジェクトがあることを特定することができる。
スロット検出器208は、人またはオブジェクトを特定すると、画像における人またはオブジェクトの位置を決定することができる。スロット検出器208は、人またはオブジェクトを含むフレームをさらに特定することができる。スロット検出器208は次いで、フレームにおける人またはオブジェクトを含む領域をコンテンツスロットの候補から除外することができる。場合によっては、上書きされることもまたは置き換えられることもない人またはオブジェクトは、フレームの比較的大きい(たとえば、70%、80%、90%、95%、またはそれらを超える大きさの)領域を包含してもよい。フレームから人またはオブジェクトを削除した後、残りの利用可能な領域が最小スロットサイズ未満である場合、スロット検出器208は、そのフレームを検討対象から除外することができ、それによってダウンストリーム処理におけるコンピューティングリソース利用度を低減させる。図1Aに示すように、スロット検出器208は、人104を特定し、次いでデジタルビデオ102における人104を含まないブランクスペース122を特定することができる。
スロット検出器208は、上書きされない人またはオブジェクトを削除し、コンテンツスロット用の十分な残り領域を含むフレームを特定した後、フレームを分析して、第1の静的部分を有する複数のフレームから連続するフレームの第1のサブセットを特定することができる。第1の静的部分は、2つ以上のフレームにわたって一致するピクセルを有する空間領域によって画定することができる。たとえば、スロット検出器208は、互いに隣接するフレームについてピクセルごとに比較して、デジタルビデオが静的な背景を有する共通部分または静的領域を特定することができる。スロット検出器208は、この技法を使用して、ビデオにおける静的な背景または領域を含むそれぞれに異なる時間および位置に対応する複数の静的領域を特定することができる。たとえば、このアルゴリズムを使用するスロット検出器208は、図1Bに示す候補コンテンツスロット124、126、128、130、132、および134を特定することができる。別の例では、スロット検出器208は領域136および138を静的領域として特定することができる。
場合によっては、スロット検出器208は、候補コンテンツスロットを削除するか、または特定された候補スロットのサイズを調整してデジタルビデオ内の人104またはその他のオブジェクトに対するディストラクションまたは干渉を低減させることができる。たとえば、スロット検出器208は、人104の近くのエッジまたはその他の変化する部分を平滑化することができ、それによって図1Bに示すようにより小さい候補コンテンツスロット132および134が得られる。
スロット検出器208は、候補コンテンツスロットまたは静的領域(たとえば、136および138または124、126、128、130、132、および134)を特定すると、静的領域を機械学習アルゴリズムに入力して、静的領域をソートまたはランク付けしてコンテンツスロットを選択することができる。機械学習アルゴリズムは、様々な信号を使用して静的領域をソートすることができる。たとえば、第1の信号は、デジタルビデオの履歴ビューからのフィードバックに基づくことができる。大部分のユーザが候補コンテンツスロット124についての補足コンテンツアイテムを受信することを拒否したが、大部分のユーザが候補コンテンツスロット126についての補足コンテンツアイテムを受信することを許可した場合、機械学習モデルは、コンテンツスロット126をコンテンツスロット124よりも上位にスコアリングまたはランク付けすべきであると決定することができる。
第2の信号は、コンテンツパブリッシャデバイス232からのフィードバックに基づくことができる。コンテンツパブリッシャデバイス232がデジタルビデオをアップロードすると、データ処理システム202は、候補コンテンツスロットの初期指示(たとえば、図1Bに示す候補コンテンツスロット124、126、128、130、132、または134)を与えることができる。コンテンツパブリッシャ232は次いで、候補コンテンツスロットのうちの1つまたは複数を許容するかそれとも拒絶するかを決定することができる。データ処理システム202は、許容または拒絶された候補スロットを追跡し、フィードバックを使用して候補コンテンツスロットをスコアリングまたはランク付けすることができる。たとえば、大部分のコンテンツパブリッシャデバイス232が候補コンテンツスロット124を拒絶したが、候補コンテンツスロット126を許容した場合、データ処理システム202は、候補コンテンツスロット126を候補コンテンツスロット124よりも上位にランク付けすることを決定することができる。
機械学習アルゴリズムによって使用される第3の信号は、クラウドソーシングフィードバックを含むことができる。たとえば、データ処理システム202は、様々な候補コンテンツスロットに関するいくつかのコンテンツパブリッシャデバイス232またはクライアントコンピューティングデバイス230からのフィードバックを取得することができる。このフィードバックは、機械学習アルゴリズムを訓練するためのグランドトゥルースデータを形成することができる。
第4の信号は、様々なコンテンツスロットに配置された補足コンテンツアイテムの性能に基づくことができる。データ処理システム202、コンテンツパブリッシャ232、またはコンテンツプロバイダ234は、サービスされる補足コンテンツアイテムに関連する様々なメトリクスを観測することができる。メトリクスは、ユーザが特定の候補コンテンツスロットとともにデジタルビデオを注視する時間の長さと、ユーザが候補コンテンツスロットなしでまたは異なる候補コンテンツスロットとともにデジタルビデオを注視する時間の長さとの比較を含むことができる。データ処理システム202は、コンテンツスロットに起因する閲覧持続時間の短縮を追跡することができる。たとえば、コンテンツスロット126よりもコンテンツスロット124の方が、デジタルビデオの平均閲覧持続時間が短縮された場合、データ処理システム202は、コンテンツスロット126をコンテンツスロット124よりも上位にスコアリングまたはランク付けすることを決定することができる。
機械学習モデルは、これらの信号または追加の信号のうちの1つまたは複数を経時的に組み込むことができる。機械学習モデルが組み込むデータセットが大きくなるにつれて、機械学習アルゴリズムが経時的に発展して様々な候補コンテンツスロットをよりうまくスコアリングまたはランク付けできるようになる。スロット検出器208は、上位N個のコンテンツスロットをデジタルビデオに含めるコンテンツスロットとして選択することができる。
スロット検出器208は、コンテンツスロットの持続時間(たとえば、第1の静的部分の持続時間)を決定することができる。スロット検出器208は、様々な技法を使用して第1の静的部分の持続時間を決定することができる。スロット検出器208は、静的部分についての開始タイムスタンプおよび静的部分についての終了タイムスタンプに基づいて持続時間を決定することができる。スロット検出器208は、静的部分を含む連続するフレームの第1のサブセット内のフレームの数にフレームレートを乗じた値に基づいて静的部分の持続時間を決定することができる。スロット検出器208は、静的部分の第1の持続時間としきい値を比較して、第1の持続時間がデジタルビデオに挿入するのに適しているかどうかを決定することができる。
第1の持続時間がしきい値未満である場合、スロット検出器208は第1のコンテンツスロットを無視し、第2の最上位のコンテンツスロットの選択に進むことができる。スロット検出器208は次いで、第2の最上位のコンテンツスロットの持続時間を決定し、持続時間がしきい値を満たすことに応じて、デジタルビデオに第2のコンテンツスロットをタグ付けすることができる。
データ処理システム202は(インターフェース228を介して)、コンテンツパブリッシャデバイス232に、特定された静的部分に上書きするための認可を要求することができる。コンテンツパブリッシャデバイス232は、要求を許容または拒絶することができ、それによって静的部分の上書きを認可または不認可とする。場合によっては、データ処理システム202は、静的部分についてコンテンツパブリッシャデバイス232から負の認可を受信する。負の認可は、データ処理システム202に静的部分をロックさせて、サードパーティコンテンツプロバイダデバイス234によって提供される補足コンテンツによる静的部分の上書きを阻止することができる。
ビデオ信号プロセッサ208は、静的部分またはコンテンツスロットについての時間オフセットを決定するように設計され構築されたオフセット計算器を含むことができる。時間オフセットは、クライアントコンピューティングデバイス230(またはそのビデオプレーヤアプリケーション236)がコンテンツスロットのためにコンテンツについての要求を送信するコンテンツスロットを含む連続するフレームの第1のサブセットに先立った再生中における時間を示すことができる。時間オフセットは、数秒から数分までの範囲とすることができる。たとえば、時間オフセットは、1秒、2秒、3秒、4秒、5秒、10秒、15秒、30秒、45秒、60秒、90秒、2分、3分、またはそれ以上とすることができる。
時間オフセットは、オフセットデータ構造222から取り出される所定のオフセットとすることができる。オフセットデータ構造222はいくつかのオフセットを記憶することができる。オフセットは、クライアントコンピューティングデバイス230、デジタルビデオ、またはネットワーク205の特性にマップすることができる。たとえば、第1のオフセットはモバイルデバイスにマップすることができ、第2のオフセットはタブレットデバイスにマップすることができ、第3のオフセットは高解像度ビデオにマップすることができ、第4のオフセットはセルネットワーク205にマップすることができる。場合によっては、時間オフセットは、ネットワーク205の速度、クライアントコンピューティングデバイス230上で実行されるビデオアプリケーションプレーヤ236によって維持されるデジタルビデオバッファ、データ処理システム202の現在のプロセッサ利用度(たとえば、ピーク使用量である場合、時間オフセットを大きくして処理待ち行列における時間を延ばしレイテンシを低減させることができる)、またはデジタルビデオの持続時間に基づいて動的に決定することができる。
オフセット計算器210は、ビデオアプリケーションプレーヤ236によってバッファされるデジタルビデオデータの量に基づいて時間オフセットを決定することができる。オフセット計算器210は、ビデオアプリケーションプレーヤ236によってメモリにプレロードされるフレームの数に基づいて時間オフセットを決定することができる。時間オフセットは、コンテンツについての要求が送信され、コンテンツセレクタ226がコンテンツアイテムを選択して返し、その後、選択されたコンテンツアイテムが挿入されるフレームがビデオアプリケーションプレーヤ236によってバッファされるように計算されうる。たとえば、ビデオアプリケーションプレーヤ236が30秒分のデジタルビデオをバッファする(たとえば、24fpsにおける720フレーム)場合、時間オフセットを35秒とし、ビデオアプリケーションプレーヤがコンテンツについての要求を送信し、データ処理システム202がコンテンツスロットに挿入されるコンテンツアイテムを選択して返すのに5秒確保することができる。たとえば、コンテンツスロットがデジタルビデオ内の56秒の時点で出現し、時間オフセットが35秒である場合、コンテンツについての要求は、デジタルビデオ内の21秒の時点でクライアントコンピューティングデバイス230から送信することができる(たとえば、図1Cに示す時間オフセット160)。
ビデオ信号プロセッサ204は、自動的に検出されるコンテンツスロットに関する情報およびコンテンツスロットのためにコンテンツについての要求をトリガするために使用される時間オフセットをデジタルビデオにタグ付けするように設計され構築されたメタデータタグ付け器212を含むことができる。メタデータタグ付け器212は、デジタルビデオに関連するメタデータファイルを更新することができる。メタデータタグ付け器212は、キーワード、色、背景色、色のグラデーション、またはフォントなどの、デジタルビデオまたはコンテンツスロットに関連する追加の情報を含むことができる。
メタデータタグ付け器212は、デジタルビデオのメタデータにコンテンツスロットに関する情報をタグ付けすることができる。メタデータタグ付け器212は、コンテンツスロットごとのコンテンツスロットデータ構造を生成することができる。たとえば、コンテンツスロットデータ構造は、content_slot_1{begin_timestamp, end_timestamp, temporal_offset, height, width, x-coordinate, y-coordinate, background color}を含むことができる。別の例では、コンテンツスロットデータ構造は、content_slot_1{begin_timestamp, duration, temporal_offset, height, width, x-coordinate, y-coordinate}を含むことができる。時間オフセットは、MPEGトランスポートストリームまたはMPEGプログラムストリームにおけるタイムスタンプメタデータフィールドに表示タイムスタンプ(“PTS”)として記憶することができる。
メタデータタグ付け器212は、デジタルビデオの既存のメタデータに情報を挿入することができる。メタデータタグ付け器212はデジタルビデオの既存のメタデータに情報を付加することができる。メタデータタグ付け器212は、デジタルビデオの既存のメタデータの少なくとも一部を置き換えることができる。メタデータタグ付け器212は、デジタルビデオのメタデータに1つまたは複数のフィールドを追加することができる。メタデータタグ付け器212は、ビデオプレーヤアプリケーション236に、時間オフセットに基づいてコンテンツについての要求を送信させるための命令を含むことができる。
いくつかの実装形態では、ビデオ信号プロセッサ204は、デジタルビデオをタグ付けされたメタデータとともにクライアントコンピューティングデバイス230にストリーミング送出することができる。クライアントコンピューティングデバイス230はデジタルビデオを再生することができる。クライアントコンピューティングデバイス230は、時間オフセットに基づいてコンテンツについての要求をデータ処理システム202に送信し、補足コンテンツアイテムを受信し、次いでデジタルビデオのメタデータ内に指示されたコンテンツスロットにおいて受信されたコンテンツアイテムをレンダリングすることができる。
いくつかの実装形態では、ビデオ信号プロセッサ204はビデオエディタ214を含む。ビデオエディタ214は、選択されたコンテンツアイテムをコンテンツスロットにマージし、次いで修正されたフレームをクライアントコンピューティングデバイス230に送信して、ビデオプレーヤアプリケーション236に、すでにコンテンツスロットに挿入された選択されたコンテンツアイテムによってフレーム全体をレンダリングさせることができる。ビデオエディタ214は、引き続き、コンテンツスロットの持続時間の間、選択されたコンテンツアイテムを各フレームにマージすることができる。修正されたフレームをクライアントコンピューティングデバイス230に送信する前に、選択されたコンテンツアイテムをデータ処理システム202によってマージすると、クライアントコンピューティングデバイス230によるコンピューティングリソース消費量を低減させ、ならびにクライアントコンピューティングデバイス230(またはクライアントコンピューティングデバイス230上で実行されるソフトウェアプログラム)が選択されたコンテンツアイテムを妨害するのを防ぎ、選択されたコンテンツアイテムがコンテンツスロットにおいてレンダリングされるのを阻止することができる。
システム200、またはたとえばデータ処理システム202、ビデオ信号プロセッサ204、コンテンツセレクタ226、インターフェース228、クライアントコンピューティングデバイス230、コンテンツパブリッシャデバイス232、もしくはコンテンツプロバイダデバイス234を含む、システム200の1つもしくは複数の構成要素もしくは要素は、図1A〜図1Dに示す1つまたは複数の機能または態様を実行することができる。
図3は、デジタルビデオを組み合わせるかまたは修正する方法の実装形態のフローチャートである。この方法300は、デジタルビデオを組み合わせるかまたは修正するコンピュータによって実施される方法を含むことができる。方法300は、システム、またはたとえばデータ処理システム202、ビデオ信号プロセッサ204、コンテンツセレクタ226、インターフェース228、クライアントコンピューティングデバイス230、コンテンツパブリッシャデバイス232、もしくはコンテンツプロバイダデバイス234を含む、図1A〜図1D、図2、もしくは図4に示す1つもしくは複数の構成要素を介して実行することができる。概略的には、方法300は、ステップ302においてデータ処理システムがビデオを受信することを含むことができる。ステップ304において、データ処理システムは、ビデオのフレームレートを決定することができる。ステップ306において、データ処理システムは、フレームレートがしきい値を満たすかどうかを決定することができる。フレームレートがしきい値を満たさない場合、データ処理システムはステップ308に進むことができる。ステップ308において、データ処理システムは、ビデオをロックして編集を阻止し、次いでステップ310において、パブリッシャにビデオがロックされたことを通知することができる。ステップ306において、フレームレートがしきい値を満たすと決定された場合、データ処理システムはステップ312に進み、第1の静的部分を特定し、第1の静的部分の持続時間を決定することができる。データ処理システムは次いで、決定ステップ314において、持続時間がしきい値を満たすかどうかを決定することができる。データ処理システムが、ステップ314において、持続時間がしきい値を満たさないと決定した場合、データ処理システムはステップ316に進み、第1の静的部分をロックして編集を阻止することができる。データ処理システムは次いで、ステップ318に進み、特定された第2の静的部分がしきい値を満たすかどうかを決定することができる。特定された第2の静的部分が持続時間しきい値を満たさない場合、データ処理システムはステップ308に進み、次いでステップ310に進むことができる。特定された第2の静的部分が持続時間しきい値を満たす場合、データ処理システムはステップ320に進み、第2の静的部分をコンテンツスロットとして使用することを決定することができる。データ処理システムは、ステップ322において、第2の静的部分についての時間オフセットを算出することができる。さらに、データ処理システムは、ステップ314において、第1の静的部分の持続時間が持続時間しきい値を満たすと決定した場合、直接ステップ322に進み、第1の静的部分についての時間オフセットを算出することができる。データ処理システムは、ステップ324においてビデオをタグ付けすることができる。データ処理システムは、ステップ326においてビデオを送信することができる。データ処理システムは、ステップ328において要求を受信することができる。データ処理システムは、ステップ330においてコンテンツアイテムを選択することができる。データ処理システムは、ステップ332においてコンテンツアイテムを提供することができる。
引き続き図3を参照して詳細に説明すると、方法300は、ステップ302において、データ処理システムがビデオを受信するステップを含むことができる。ビデオはデジタルビデオとすることができる。データ処理システムは、デジタルビデオをコンテンツパブリッシャデバイスから受信することができる。データ処理システムは、ビデオアップローダインターフェースを提供することができる。コンテンツパブリッシャデバイスは、インターフェースを介してデジタルビデオを転送し、アップロードし、または場合によっては提供することができる。デジタルビデオは複数のフレームを含むことができ、各フレームは画像データを含むことができる。デジタルビデオは、タイトルなどのデジタルビデオに関するメタデータまたは情報を含むことができる。デジタルビデオは、プロトコルを使用して符号化することができる。デジタルビデオは、カラーまたは単色の2次元デジタルビデオ、3次元デジタルビデオ、動画、実写版デジタルビデオ、漫画とすることができる。デジタルビデオは、様々な実装形態において、オーディオを含むことができ、または無声であってもよい。いくつかの実装形態では、デジタルビデオは、(たとえば、それぞれに異なる言語の)複数のオーディオトラックを含んでもよい。
ステップ304において、データ処理システムは、ビデオのフレームレートを決定することができる。いくつかの実装形態では、データ処理システムは、デジタルビデオ内のフレームの数およびデジタルビデオの持続時間に基づいてフレームレートを決定することができる。たとえば、フレームレートは、デジタルビデオ内のフレームの数を秒単位のデジタルビデオの持続時間で除すことによって得られる、毎秒フレーム数としての割合とすることができる。いくつかの実装形態では、データ処理システムは、デジタルビデオを符号化するのに使用される符号化プロトコルまたは媒体プロトコルの種類に基づいてフレームレートを決定することができる。いくつかの実装形態では、データ処理システムは、デジタルビデオに関連するメタデータ情報に基づいてフレームレートを決定することができる(たとえば、フレームレートの明示的な特定)。いくつかの実装形態では、データ処理システムは、デジタルビデオの解像度、デジタルビデオの種類、デジタルビデオを再生のために構成する場合の対象となるデバイスの種類、デジタルビデオのトピック、またはデジタルビデオの持続時間などの、デジタルビデオに関連する追加の情報を決定することができる。
ステップ306において、データ処理システムは、フレームレートがしきい値を満たすかどうかを決定することができる。データ処理システムは、データリポジトリからフレームレートしきい値を取り出すことができる。フレームレートしきい値は毎秒24フレーム(fps)、12fps、または任意の他のそのようなフレームレートとすることができる。フレームレートしきい値は、デジタルビデオが再生されるフレームレートよりも低くすることができる。たとえば、デジタルビデオが動画を含む場合、ビデオは、毎秒12個のフレームを含むことができるが、2つの連続するフレームが同じ画像を含む場合には24fpsで再生することができる。他の実装形態では、媒体は、毎秒フレーム数が再生時よりも少なくてもよく、クライアントデバイスが、補間を実行して削除されたフレームを再生成する。これによってデータ記憶要件および帯域幅要件が低減し得る。
フレームレートがしきい値を満たさない場合、データ処理システムはステップ308に進み、ビデオをロックして編集を阻止することができる。データ処理システムは、フレームレートが補足コンテンツスロットに対して不十分であり、コンテンツスロットがデジタルビデオの再生に干渉する場合があることに起因して、ビデオをロックすることを決定することができる。デジタルビデオをロックすることは、デジタルビデオのメタデータにタグ付けして、デジタルビデオが自動コンテンツスロット検出および没入型コンテンツスロットに適していないことを示すことを含むことができる。デジタルビデオをロックすることは、デジタルビデオの識別子をデータ処理システムのデータリポジトリに記憶し、デジタルビデオが自動コンテンツスロット検出に適していないことの指示を含むことができる。
データ処理システムは、ステップ308においてビデオを編集に対してロックすると、ステップ310において、パブリッシャに、ビデオがロックされたことを通知することができる。データ処理システムは、ビデオがロックされたことを示すプロンプトをコンテンツパブリッシャに与えることができる。データ処理システムは、フレームレートのチェックに失敗したことなど、デジタルビデオがロックされたことの理由を示す指示をコンテンツパブリッシャに与えることができる。コンテンツパブリッシャは、フレームレートのチェックに失敗したことの指示を受信したことに応じて、十分なフレームレートを有する第2のデジタルビデオをアップロードしてもよい。第2のデジタルビデオは、同じデジタルビデオであるが適切なフレームレートでサンプリングされたデジタルビデオまたは異なるデジタルビデオとすることができる。
ステップ306において、データ処理システムは、デジタルビデオがフレームレートチェックを満たすと決定した場合、ステップ312に進むことができる。ステップ312において、データ処理システムは、第1の静的部分を特定し、第1の静的部分の持続時間を決定することができる。データ処理システムは、スロット検出アルゴリズムまたは機械学習アルゴリズムのうちの1つまたは複数を使用することに基づいて第1の静的部分を特定することができる。データ処理システムは、デジタルビデオのフレームにおける没入型コンテンツスロットに適した領域を特定し、次いで特定された領域をスコアリングして1つまたは複数のコンテンツスロットを選択することができる。
たとえば、データ処理システムは、デジタルビデオのフレームにおける画素を比較し、フレーム全体にわたってピクセルの変化がないことに基づいて静的部分を特定し、次いで静的領域をコンテンツスロットとしてマーク付けすることができる。複数のコンテンツスロットがある場合、データ処理システムは、機械学習モデルを使用して複数のコンテンツスロットをスコアリングすることができる。データ処理システムは、スコアに基づいてコンテンツスロットをランク付けすることができる(たとえば、第1のコンテンツスロット、第2のコンテンツスロット、および第3のコンテンツスロット)。データ処理システムは次いで、デジタルビデオに挿入する最上位コンテンツスロット(たとえば、第1のコンテンツスロット)を選択することができる。
データ処理システムは、決定ステップ314において、第1のコンテンツスロットの持続時間が持続時間しきい値を満たすかどうかを決定することができる。第1のコンテンツスロットは、開始タイムスタンプおよび終了タイムスタンプ(または持続時間)を含むことができる。持続時間は、第1のコンテンツスロットに対応する静的領域を含むフレームの数に対応することができる。たとえば、第1のコンテンツスロットに対応する静的領域がデジタルビデオの720個の連続するフレームに存在し、フレームレートが24fpsである場合、第1のコンテンツスロットの持続時間は30秒である(たとえば、720個のフレーム数を24bpsで除した結果は30秒に等しい)。
データ処理システムは、データリポジトリから持続時間しきい値を取り出すことができる。データ処理システムは、所定の持続時間しきい値を使用することができる。データ処理システムは、デジタルビデオに関連する特性(たとえば、持続時間、フレームレート、品質、解像度、トピック、色など)に基づいて変化することができる動的な持続時間しきい値を使用することができる。持続時間しきい値は、デジタルビデオの持続時間に対する割合または比率とすることができる。たとえば、持続時間しきい値は、デジタルビデオの持続時間の5%、10%、15%、20%、25%、30%以上とすることができる。持続時間しきい値は、最小持続時間および最大持続時間を含むことができる。最大持続時間は、60秒、90秒、12秒とすることができる。コンテンツスロットの持続時間が最大持続時間を超える場合、データ処理システムはコンテンツスロットの持続時間を短縮または削減することができる。
データ処理システムは、第1のコンテンツスロットが持続時間しきい値を満たすと決定した場合、ステップ322において時間オフセットを算出することができる。しかし、データ処理システムは、ステップ314において、持続時間がしきい値を満たさないと決定した場合、ステップ316に進み、第1の静的部分をロックして編集を阻止することができる。データ処理システムは次いで、ステップ318に進み、特定されたコンテンツスロットがしきい値を満たすかどうかを決定することができる。第2のコンテンツスロットは、機械学習モデルに基づいて決定されたスコアに基づく第2位のコンテンツスロットとすることができる。特定された第2の静的部分が持続時間しきい値を満たさない場合、いくつかの実装形態では、データ処理システムはステップ308に進み、次いでステップ310に進むことができる。特定された第2の静的部分が持続時間しきい値を満たす場合、データ処理システムは、ステップ320に進み、第1のコンテンツスロットではなく第2のコンテンツスロットを使用することを決定することができる。2つの静的部分を試験することのみが示されているが、多くの実装形態では、ステップ312〜320は、必要なしきい値を超える静的部分が特定されるか、または特定される静的部分がなくなるまで、複数の追加の特定された静的部分の各々について反復的に繰り返されてもよい。
ステップ322において、データ処理システムは、コンテンツスロット(たとえば、ステップ314において持続時間しきい値を満たす結果に基づく第1のコンテンツスロットまたは第2のコンテンツスロットの一方)についての時間オフセットを算出することができる。データ処理システムは、コンテンツスロットの開始タイムスタンプに先立ったデジタルビデオの再生中における時間オフセットを算出することができる。時間オフセットとしては、コンテンツスロットにおいてレンダリングされるコンテンツスロットを選択し提供する際にレイテンシを低減させるかまたはなくす時間オフセットを算出することができる。時間オフセットは、デジタルビデオについてのバッファリングメトリクス、デジタルビデオの解像度、ネットワーク特性、デジタルビデオの持続時間などに基づいて算出することができる。
データ処理システムは、ステップ324においてビデオにタグ付けすることができる。データ処理システムは、デジタルビデオにコンテンツスロットの指示をタグ付けすることができる。データ処理システムは、デジタルビデオにコンテンツスロットデータ構造をタグ付けすることができ、コンテンツスロットデータ構造は、コンテンツスロットに対応する静的部分を有する連続するフレームのサブセットの指示を含むことができる。データ処理システムは、算出された時間オフセットにおいてコンテンツについての要求を送信させるトリガをデジタルビデオにタグ付けすることができる。コンテンツスロットデータ構造は、たとえば、{start timestamp, duration, temporal offset, size, position}を含むことができる。
データ処理システムは、ステップ326においてビデオを送信することができる。データ処理システムは、デジタルビデオをクライアントデバイスに提供することができる。クライアントデバイスは、データ処理システムにデジタルビデオを要求することができる。クライアントデバイスは、デジタルビデオへのリンクまたはポインタを含むウェブページにアクセスしていてもよい。デジタルビデオは、クライアントデバイスによってアクセスされるウェブページに埋め込むことができる。データ処理システムは、コンテンツスロットおよびトリガの指示をデジタルビデオコンテンツに与えることができる。デジタルビデオコンテンツアイテムを受信すると、クライアントデバイスは、デジタルビデオコンテンツアイテムをレンダリングし、指示を解析して連続するフレームの第1のサブセットを特定し、トリガの実行に応じて、連続するフレームの第1のサブセットに先立った再生中における時間オフセットにおいて、コンテンツについての要求を送信することができる。
データ処理システムは、ステップ328において要求を受信することができる。データ処理システムは、クライアントデバイスから要求を受信することができる。クライアントデバイスは、概ね(たとえば、10%)時間オフセットにおいて要求を送信することができる。データ処理システムは、コンテンツについての要求を受信したことに応じて、ステップ330においてコンテンツアイテムを選択することができる。データ処理システムは、ステップ332においてクライアントデバイスにコンテンツアイテムを提供することができる。クライアントデバイスは、コンテンツスロットについての持続時間の間、コンテンツスロットにおいてコンテンツアイテムをレンダリングすることができる。クライアントデバイスは、コンテンツスロットの持続時間の間、コンテンツアイテムを1度だけ受信すればよく、それによってネットワーク帯域幅使用量およびリモートプロシージャコールが低減する。たとえば、コンテンツアイテムは、720個の連続するフレームに対応してコンテンツスロットにおいて720回レンダリングすることができるが、コンテンツアイテムは、データ処理システムからクライアントコンピューティングデバイスに1度だけ送信されればよく、それによって改善が図られる。
コンテンツスロットの持続時間が終了した後、クライアントデバイスは、コンテンツスロットを終了し、コンテンツアイテムを削除または消去することができる。クライアントデバイスは、第2のコンテンツスロットが開始するまで待機し、第2のコンテンツスロットに対応する第2の時間オフセットにおいてコンテンツについての第2の要求を送信することができる。
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム200、またはデータ処理システム202などのシステム200の構成要素を含むか、またはシステム200またはその構成要素を実装するために使用することができる。コンピューティングシステム400は、情報を通信するためのバス405またはその他の通信構成要素と、情報を処理するためにバス405に結合されたプロセッサ410または処理回路とを含む。コンピューティングシステム400はまた、情報を処理するためにバスに結合された1つまたは複数のプロセッサ410または処理回路を含むことができる。コンピューティングシステム400はまた、情報、およびプロセッサ410によって実行すべき命令を記憶するためにバス405に結合された、ランダムアクセスメモリ(RAM)またはその他の動的記憶デバイスなどのメインメモリ415を含む。メインメモリ415は、データリポジトリ104とすることができ、またはデータリポジトリ104を含むことができる。メインメモリ415はまた、プロセッサ410による命令の実行時に位置情報、一時変数、またはその他の中間情報を記憶するために使用することができる。コンピューティングシステム400は、プロセッサ410用の静的情報および命令を記憶するためにバス405に結合された、読取り専用メモリ(ROM)420またはその他の静的記憶デバイスをさらに含んでもよい。固体状態デバイス、磁気ディスク、または光ディスクなどの記憶デバイス425を、情報および命令を永久的に記憶するためにバス405に結合することができる。記憶デバイス425は、データリポジトリ104を含むことができ、またはデータリポジトリ104の一部とすることができる。
コンピューティングシステム400は、情報をユーザに表示するために、液晶ディスプレイまたはアクティブマトリクスディスプレイなどのディスプレイ435にバス405に介して結合されてもよい。英数字キーおよびその他のキーを含むキーボードなどの入力デバイス430は、選択された情報およびコマンドをプロセッサ410に通信するためにバス405に結合されてもよい。入力デバイス430は、タッチスクリーンディスプレイ435を含むことができる。入力デバイス430はまた、方向情報およびコマンド選択をプロセッサ410に通信し、ディスプレイ435上のカーソルの移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御装置を含むことができる。ディスプレイ435は、たとえば、データ処理システム202、クライアントコンピューティングデバイス150、または図2の他の構成要素の一部とすることができる。
本明細書で説明するプロセス、システム、および方法は、プロセッサ410がメインメモリ415に含まれる一連の命令を実行したことに応答してコンピューティングシステム400によって実現することができる。そのような命令は、記憶デバイス425などの別のコンピュータ可読媒体からメインメモリ415に読み込むことができる。メインメモリ415に含まれる一連の命令を実行すると、コンピューティングシステム400は、本明細書で説明する例示的なプロセスを実行する。メインメモリ415に含まれる命令を実行するためにマルチプロセシング構成における1つまたは複数のプロセッサが使用されてもよい。ソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて、ハード配線された回路を、本明細書で説明するシステムおよび方法とともに使用することができる。本明細書で説明するシステムおよび方法は、ハードウェア回路とソフトウェアの任意の特定の組合せに限定されない。
図4において例示的なコンピューティングシステムについて説明したが、本明細書で説明する動作を含む主題は、他の種類のデジタル電子回路、または本明細書で開示される構造およびその構造均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せにおいて実現することができる。
本明細書で説明するシステムがユーザに関する個人情報を収集するか、または個人情報を利用し得る状況では、個人情報(たとえば、ユーザのソーシャルネットワーク、社会行動もしくは活動、ユーザの選好、またはユーザの位置に関する情報)を収集し得るプログラムもしくは機能を制御するか、あるいはコンテンツサーバもしくはユーザとの関連性がより高い場合がある他のデータ処理システムからコンテンツを受信するかどうかまたはどのように受信するかを制御する機会がユーザに与えられてもよい。さらに、いくつかのデータは、記憶または使用される前に1つまたは複数の方法で匿名化されてもよく、それによって、個人を特定可能な情報は、パラメータを生成する際に削除される。たとえば、ユーザの識別情報は、ユーザについて個人を特定可能な情報を決定することができないように匿名化されてもよく、または位置情報が得られる場合にユーザの地理的位置が(市、郵便番号、または州などのレベルに)一般化されてもよく、それによってユーザの特定の位置を決定することはできなくなる。したがって、ユーザは自分に関する情報がどのように収集されコンテンツサーバによって使用されるかについての制御が可能であってもよい。
本明細書で説明する主題および動作は、デジタル電子回路、または本明細書で開示される構造およびその構造均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せにおいて実現することができる。本明細書で説明する主題は、データ処理装置によって実行されるようにまたはデータ処理装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、たとえば、コンピュータプログラム命令の1つまたは複数の回路として実現することができる。代替または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置による実行を目的として適切なレシーバ装置に送信されるように情報を符号化するために生成された機械生成電気信号、光信号、または電磁信号上に符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができ、あるいはそれらに含めることができる。コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号内に符号化されたコンピュータプログラム命令の送信元または送信先とすることができる。コンピュータ記憶媒体は、1つもしくは複数の別個の構成要素もしくは媒体(たとえば、複数のCD、ディスク、もしくはその他の記憶デバイス)とすることもでき、またはそれらに含めることができる。本明細書で説明する動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されるかまたは他の送信元から受信されるデータに対してデータ処理装置によって実行される動作として実現することができる。
「データ処理システム」、「コンピューティングデバイス」、「構成要素」、または「データ処理装置」という用語は、データを処理するための様々な装置、デバイス、および機械を包含し、一例としてプログラム可能なプロセッサ、コンピュータ、システムオンチップ、またはそれらのうちの複数もしくは組合せを含む。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、対象のコンピュータプログラム用の実行環境を作成するためのコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。コンテンツセレクタ構成要素226、動的コンテンツサーバ130、静的コンテンツサーバ132、およびその他のデータ処理システム202構成要素は、1つもしくは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかあるいは共有することができる。さらに、インターフェース228、ビデオ信号プロセッサ204、コンテンツセレクタ226、ビデオプレプロセッサ206、スロット検出器208、オフセット計算器210、メタデータタグ付け器212、ビデオエディタ214、およびデータリポジトリ216、またはその他のクライアントコンピューティングデバイス230構成要素は、1つもしくは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかあるいは共有することができる。
コンピュータプロセッサ(プログラム、ソフトウェア、ソフトウェアアプリケーション、app、スクリプト、またはコードとも呼ばれる)は、コンパイル型言語またはインタプリト型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラム、またはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニット任意の形態を含む任意の形態で装備することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができる。コンピュータプログラムは、ファイルにおける他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプト)を保持する部分、対象のプログラム専用の単一のファイル、あるいは複数の組織的ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で実行するか、または1つの場所に位置するかもしくは複数の場所にわたって分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように装備することができる。
本明細書で説明するプロセスおよび論理フローは、1つまたは複数のプログラム可能なプロセッサが1つまたは複数のコンピュータプログラム(たとえば、データ処理システム202の構成要素)を実行して、入力データに作用し出力を生成することによって動作を行うことによって実施することができる。プロセスおよび論理フローは、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、装置をこのような専用論理回路として実現することもできる。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、一例として半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含む、すべての形態の非揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補足することができ、または専用論理回路に組み込むことができる。
本明細書で説明する主題は、バックエンド構成要素を、たとえばデータサーバとして含むか、あるいはミドルウェア構成要素、たとえばアプリケーションサーバを含むか、あるいはフロントエンド構成要素、たとえば、ユーザが本明細書で説明する主題と相互作用するのを可能にするグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、あるいは1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の組合せを含むコンピューティングシステムにおいて実現することができる。システムの構成要素は、任意の形態のデジタルデータ通信、たとえば、通信ネットワークによって相互接続することができ、またはデジタルデータ通信を媒介として相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(“LAN”)およびワイドエリアネットワーク(“WAN”)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム200またはシステム400などのコンピューティングシステムはクライアントとサーバとを含むことができる。クライアントとサーバは一般に、互いに離れており、通常、通信ネットワーク(たとえば、ネットワーク205)を通じて相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。サーバは、データ(たとえば、コンテンツアイテムを表すデータパケット)を(たとえば、クライアントデバイスと相互作用するユーザに対してデータを表示し、ユーザからユーザ入力を受信するために)クライアントデバイスに送信することができる。(たとえば、ユーザ相互作用の結果として)クライアントデバイスにおいて生成されたデータは、クライアントデバイスからサーバにおいて受信する(たとえば、コンピューティングデバイス230またはコンテンツプロバイダコンピューティングデバイス234またはコンテンツパブリッシャデバイス232からデータ処理システム202によって受信する)ことができる。
本開示の態様は、デジタルビデオコンテンツを修正するシステムおよび方法を対象とする。たとえば、システムおよび方法は、ビデオコンテンツを組み合わせてもよい。たとえば、この方法は、ビデオ信号プロセッサおよびコンテンツセレクタを含むかまたは実行するデータ処理システムによって実行することができる。この方法は、複数のフレームを含むデジタルビデオコンテンツアイテムをパブリッシャデバイスから受信するデータ処理システムを含むことができる。ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムのフレームレートを決定することができる。ビデオ信号プロセッサは、複数のフレームを分析して、第1静的部分を有する複数のフレームから連続するフレームの第1のサブセットを特定することができる。第1の静的部分は、2つ以上のフレームにわたって一致するピクセルを含む空間領域によって画定することができる。ビデオ信号プロセッサは、連続するフレームの第1のサブセットにおけるフレームの数およびフレームレートに基づいて第1の静的部分の第1の持続時間を決定することができる。ビデオ信号プロセッサは、第1の静的部分の第1の持続時間をしきい値と比較することができる。ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムに、連続するフレームの第1のサブセットの指示およびトリガをタグ付けすることができる。ビデオ信号プロセッサは、第1の静的部分の持続時間がしきい値以上であることに応じてデジタルビデオコンテンツアイテムにタグ付けすることができる。トリガは、第1の静的部分を上書きするために使用されるコンテンツについての要求を送信させることができる。トリガは、連続するフレームの第1のサブセットに先立った再生中における時間オフセットにおいて要求を送信させることができる。ビデオ信号プロセッサは、指示およびトリガとともにデジタルビデオコンテンツアイテムをクライアントデバイスに提供することができる。クライアントデバイスによってデジタルビデオコンテンツアイテムを受信すると、クライアントデバイスは、デジタルビデオコンテンツアイテムをレンダリングし、指示を解析して連続するフレームの第1のサブセットを特定し、トリガの実行に応じて、連続するフレームの第1のサブセットに先立った再生中における時間オフセットにおいて、コンテンツについての要求を送信することができる。ビデオ信号プロセッサは、要求を受信することができ、この要求は、連続するフレームの第1のサブセットに先立った再生中における時間オフセットに基づいてクライアントデバイスによって送信されたものである。データ処理システムによって実行されるコンテンツセレクタは、コンテンツについての要求がクライアントデバイスから受信されたことに応じてコンテンツアイテムを選択することができる。データ処理システムは、コンテンツアイテムをクライアントデバイスに送信することができ、このコンテンツアイテムを受信すると、クライアントデバイスは、連続するフレームの第1のサブセットの第1の静的部分においてコンテンツアイテムをレンダリングする。
いくつかの実装形態では、パブリッシャデバイスおよびデータ処理システムは様々なデバイスを備えてもよい。他の実装形態では、パブリッシャデバイスはデータ処理システムの一部であってもよい。たとえば、いくつかの実装形態では、パブリッシャデバイスとデータ処理システムは同じデバイス上で実行されてもよい。デジタルビデオコンテンツアイテムを受信することは、デジタルビデオコンテンツアイテムをメモリまたはストレージからロードすることを含んでもよい。
いくつかの実装形態では、データ処理システムは、フレームを分析して、連続するフレームの第1のサブセットにおける第2の静的部分を特定する。データ処理システムは、第1の静的部分に関連する第1のパラメータおよび第2の静的部分に関連する第2のパラメータを特定することができる。データ処理システムは、第1のパラメータと第2のパラメータとの比較に基づいて、タグ付けのために第1の静的部分を選択することができる。いくつかの実装形態では、第1のパラメータは、背景色、色のグラデーション、サイズ、または位置のうちの少なくとも1つを含む。第2のパラメータは、背景色、色のグラデーション、サイズ、または位置のうちの少なくとも1つを含むことができる。
いくつかの実装形態では、データ処理システムは複数のフレームを分析して、連続するフレームの第1のサブセットにおける第2の静的部分を特定することができる。データ処理システムは、第2の静的部分の第2の持続時間を特定することができる。データ処理システムは、第1の持続時間が第2の持続時間を超えることに基づいて、タグ付けのために第1の静的部分を選択することができる。
いくつかの実装形態では、データ処理システムは、デジタルビデオコンテンツアイテムにおける第2の静的部分を特定することができる。データ処理システムは、第2の静的部分を上書きするための認可をパブリッシャデバイスに要求することができる。データ処理システムは、第2の静的部分についてパブリッシャデバイスから負の認可を受信することができる。データ処理システムは、第2の静的部分をロックして、データ処理システムによって選択されたコンテンツで第2の静的部分を上書きするのを阻止することができる。
いくつかの実装形態では、データ処理システムは、複数のフレームにおける連続するフレームにわたるピクセルの変化に基づいて第1の静的部分を特定することができる。いくつかの実装形態では、データ処理システムは、パブリッシャデバイスから背景色の指示を受信して第1の静的部分の特定を制御することができる。データ処理システムは、背景色の指示を使用して、複数のフレームにおける連続するフレームにわたるピクセル特性に基づいて第1の静的部分を特定することができる。
いくつかの実装形態では、データ処理システムは、第1の静的部分に関連する1つもしくは複数の特性を特定することができる。1つもしくは複数の特性は、テキスト、フォント、顔、オブジェクトタイプ、または色のうちの少なくとも1つを含むことができる。データ処理システムは、第1の静的部分に関連する1つもしくは複数の特性に基づいてコンテンツアイテムを選択することができる。
いくつかの実装形態では、データ処理システムは、クライアントデバイスのメモリにプレロードされるデジタルビデオコンテンツアイテムの量を特定することができる。データ処理システムは、この量に基づいて時間オフセットを設定し、クライアントデバイスに、この量がクライアントデバイスのメモリにプレロードされることに先立ってコンテンツについての要求を送信させることができる。
いくつかの実装形態では、データ処理システムは、デジタルビデオコンテンツアイテムの連続するフレームの第1のサブセットの第1の静的部分においてコンテンツアイテムをマージすることができる。データ処理システムは、コンテンツアイテムとマージされたデジタルビデオコンテンツアイテムの連続するフレームの第1のサブセットをクライアントデバイスに送信して、クライアントデバイスにコンテンツアイテムをレンダリングさせることができる。
少なくとも1つの態様は、デジタルビデオコンテンツを修正するためのシステムを対象とする。システムはデータ処理システムを含むことができる。データ処理システムは、少なくとも1つのプロセッサとメモリとを含むことができる。データ処理システムは、ビデオ信号プロセッサおよびコンテンツセレクタを実行することができる。ビデオ信号プロセッサは、複数のフレームを含むデジタルビデオコンテンツアイテムをパブリッシャデバイスから受信することができる。ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムのフレームレートを決定することができる。ビデオ信号プロセッサは、複数のフレームを分析して、第1の静的部分を有する複数のフレームから連続するフレームの第1のサブセットを特定することができる。第1の静的部分は、2つ以上のフレームにわたって一致するピクセルを含む空間領域によって画定することができる。ビデオ信号プロセッサは、連続するフレームの第1のサブセットにおけるフレームの数およびフレームレートに基づいて、第1の静的部分の第1の持続時間を決定することができる。ビデオ信号プロセッサは、第1の静的部分の第1の持続時間をしきい値と比較することができる。ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムに、連続するフレームの第1のサブセットの指示およびトリガをタグ付けすることができる。ビデオ信号プロセッサは、第1の静的部分の第1の持続時間がしきい値以上であることに応じて、このタグ付けを実行することができる。トリガは、第1の静的部分を上書きするために使用されるコンテンツについての要求を送信させることができる。この要求は、連続するフレームの第1のサブセットに先立った再生中における時間オフセットにおいて送信することができる。ビデオ信号プロセッサは、指示およびトリガとともにデジタルビデオコンテンツアイテムをクライアントデバイスに提供することができる。クライアントデバイスによってデジタルビデオコンテンツアイテムを受信すると、クライアントデバイスは、デジタルビデオコンテンツアイテムをレンダリングし、指示を解析して連続するフレームの第1のサブセットを特定し、トリガの実行に応じて、連続するフレームの第1のサブセットに先立った再生中における時間オフセットにおいて、コンテンツについての要求を送信することができる。コンテンツセレクタ構成要素は、コンテンツについての要求をクライアントデバイスから受信することができる。クライアントデバイスは、連続するフレームの第1のサブセットに先立った再生中における時間オフセットに基づいて要求を送信する。コンテンツセレクタ構成要素は、クライアントデバイスから受信されたコンテンツについての要求に応じてコンテンツアイテムを選択することができる。dpsは、コンテンツアイテムをクライアントデバイスに送信することができる。クライアントデバイスは、コンテンツアイテムを受信することができる。クライアントデバイスによってコンテンツアイテムを受信すると、クライアントデバイスは、連続するフレームの第1のサブセットの第1の静的部分においてコンテンツアイテムをレンダリングすることができる。
いくつかの実装形態では、ビデオ信号プロセッサは、複数のフレームを分析して、連続するフレームの第1のサブセットにおける第2の静的部分を特定する。ビデオ信号プロセッサは、第1の静的部分に関連する第1のパラメータおよび第2の静的部分に関連する第2のパラメータを特定することができる。ビデオ信号プロセッサは、第1のパラメータと第2のパラメータとの比較に基づいて、タグ付けのために第1の静的部分を選択することができる。いくつかの実装形態では、第1のパラメータは、背景色、色のグラデーション、サイズ、または位置のうちの少なくとも1つを含む。第2のパラメータは、背景色、色のグラデーション、サイズ、または位置のうちの少なくとも1つを含むことができる。
いくつかの実装形態では、ビデオ信号プロセッサは、複数のフレームを分析して、連続するフレームの第1のサブセットにおける第2の静的部分を特定することができる。ビデオ信号プロセッサは、第2の静的部分の第2の持続時間を特定することができる。ビデオ信号プロセッサは、第1の持続時間が第2の持続時間を超えることに基づいて、タグ付けのために第1の静的部分を選択することができる。
いくつかの実装形態では、ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムにおける第2の静的部分を特定することができる。ビデオ信号プロセッサは、第2の静的部分を上書きするための認可をパブリッシャデバイスに要求することができる。ビデオ信号プロセッサは、第2の静的部分についてパブリッシャデバイスから負の認可を受信することができる。ビデオ信号プロセッサは、第2の静的部分をロックして、データ処理システムによって選択されたコンテンツで第2の静的部分を上書きするのを阻止することができる。
いくつかの実装形態では、ビデオ信号プロセッサは、複数のフレームにおける連続するフレームにわたるピクセルの変化に基づいて第1の静的部分を特定することができる。いくつかの実装形態では、ビデオ信号プロセッサは、パブリッシャデバイスから背景色の指示を受信して第1の静的部分の特定を制御することができる。ビデオ信号プロセッサは、背景色の指示を使用して、複数のフレームにおける連続するフレームにわたるピクセル特性に基づいて第1の静的部分を特定することができる。
いくつかの実装形態では、コンテンツセレクタは、第1の静的部分に関連する1つもしくは複数の特性を特定する。1つもしくは複数の特性は、テキスト、フォント、顔、オブジェクトタイプ、または色のうちの少なくとも1つを含むことができる。コンテンツセレクタは、第1の静的部分に関連する1つもしくは複数の特性に基づいてコンテンツアイテムを選択することができる。
いくつかの実装形態では、ビデオ信号プロセッサは、クライアントデバイスのメモリにプレロードされるデジタルビデオコンテンツアイテムの量を特定することができる。ビデオ信号プロセッサは、この量に基づいて時間オフセットを設定し、クライアントデバイスに、この量がクライアントデバイスのメモリにプレロードされることに先立ってコンテンツについての要求を送信させることができる。
いくつかの実装形態では、ビデオ信号プロセッサは、デジタルビデオコンテンツアイテムの連続するフレームの第1のサブセットの第1の静的部分においてコンテンツアイテムをマージすることができる。ビデオ信号プロセッサは、コンテンツアイテムとマージされたデジタルビデオコンテンツアイテムの連続するフレームの第1のサブセットをクライアントデバイスに送信して、クライアントデバイスにコンテンツアイテムをレンダリングさせることができる。
いくつかの実装形態では、ビデオ信号プロセッサは、ロジスティック回帰を使用して複数のフレームを分析し、2つ以上のフレームにわたって一致するピクセルを有する空間領域によって画定される第1の静的部分を特定することができる。
動作は図面において特定の順序で示されているが、そのような動作を図示の特定の順序で実行することもまたは連続的に実行することも必要とされず、必ずしも図示の動作のすべてを実行する必要はない。本明細書で説明する動作は異なる順序で実行することができる。
様々な別々のシステム構成要素は、必ずしもすべての実装形態において分離する必要はなく、前述のプログラム構成要素は単一のハードウェアまたはソフトウェア製品に含めることができる。たとえば、ビデオプレプロセッサ206、コンテンツセレクタ226、またはビデオエディタ214は、単一の構成要素、app、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム202の1つもしくは複数のサーバの一部とすることができる。
いくつかの例示的な実装形態について説明したが、上記のことは例示的であり制限ではなく、一例として提示されていることは明らかである。特に、本明細書で提示された例の多くは方法のための行為またはシステム要素の特定の組合せを伴うが、それらの行為およびそれらの要素を他の方法で組み合わせて同じ目的を実現してもよい。一実装形態に関連して説明した行為、要素、および特徴は、他の実装形態における同様な役割から除外されるものではない。
本明細書で使用される表現および用語は、説明のためのものであり、限定と見なされるべきではない。「含む」、「備える」、「有する」、「含有する」、「伴う」、「を特徴とする」、「ということを特徴とする」、およびそれらの変形例の使用は、その後に列挙される項目、その均等物、追加の項目、ならびにその後に列挙される項目から排他的に構成される代替実装形態を包含することを意味する。一実装形態では、本明細書で説明するシステムおよび方法は、前述の要素、行為、または構成要素のうちの複数またはすべての要素、行為、または構成要素の各々の1つの組合せからなる。
単数形で参照されるシステムおよび方法の実装形態または要素または行為のあらゆる参照はまた、複数のこれらの要素を含む実装形態を包含してもよく、本明細書の任意の実装形態または要素または行為の複数形でのあらゆる参照は、単一の要素のみを含む実装形態を包含してもよい。単数形または複数形での参照は、現在開示されているシステムもしくは方法、その構成要素、行為、または要素を単一または複数の構成に限定するものではない。任意の情報、行為、または要素に基づく任意の行為または要素の参照は、その行為または要素が任意の情報、行為、または要素に部分的に基づく実装形態を含んでもよい。
本明細書で開示する任意の実装形態は、任意の他の実装形態または実施形態と組み合わされてもよく、「実装形態」、「いくつかの実装形態」、「一実装形態」などの参照は、必ずしも相互に排他的であるとは限らず、実装形態に関連して説明した特定の特徴、構造、または特性は、少なくとも1つの実装形態または実施形態に含まれてもよい。本明細書で使用するそのような用語は、必ずしもすべてが同じ実装形態を指すとは限らない。任意の実装形態が、本明細書で開示する態様および実装形態に整合する任意の方法で包括的または排他的に任意の他の実装形態と組み合わされてもよい。
「または」の参照は、「または」を使用して説明したあらゆる用語が、それらの用語のうちの1つ、複数、またはすべてのいずれも指し得るように包括的なものと解釈されてもよい。たとえば、「'A'および'B'の少なくとも1つ」の参照は、'A'のみ、'B'のみ、ならびに'A'と'B'の両方を含むことができる。「備える」または他のオープンな用語とともに使用されるそのような参照は、追加の項目を含むことができる。
図面、詳細な説明、または任意のクレームにおける技術的要素の後に参照符号が示されている場合、その参照符号は、図面、詳細な説明、およびクレームの明瞭さを増すために含められている。したがって、参照符号があってもなくてもクレーム要素の範囲に限定的な効果を有さない。
本明細書で説明するシステムおよび方法は、その特徴から逸脱せずに他の特定の形態で具体化されてもよい。上記の実装形態は例示的であり、前述のシステムおよび方法を限定しない。したがって、本明細書で説明するシステムおよび方法の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示され、クレームの均等の意味および範囲内の変更はその範囲内に含まれる。