(57)【特許請求の範囲】
【請求項１】
第１のビデオおよび該第１のビデオと関連づけられた第２のビデオを格納するデータストアと、
前記データストアに結合されたコンピュータプロセッサであって、
前記データストアに格納されている前記第１のビデオの第１のモデルセグメント内の第１のモデルフレーム内の画素に基づいて、前記第１のビデオの第１のモデルフィンガープリントを生成し、
前記データストアに格納されている前記第２のビデオ内の第１のテストフレーム内の画素に基づいて、前記第２のビデオの第１のテストフィンガープリントを生成し、
前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントに含まれる類似する項目の数の前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントに含まれる全項目数に対する比に基づいて、前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントとの間の第１の近さの値を決定し、
前記第１の近さの値に基づいて、前記第１のテストフレームが、前記第１のビデオ内の前記第１のモデルセグメントに類似している前記第２のビデオ内の第１のセグメントの第１の境界であるか否かを決定する
ようプログラムされたコンピュータプロセッサと
を含むことを特徴とするビデオ処理システム。
【請求項２】
前記コンピュータプロセッサが、前記第１のテストフレームが前記第１の境界であると決定されたことに応答して、前記第１の境界が前記第２のビデオ内の前記第１のセグメントの終了境界であるか否かを決定し、肯定された場合には、前記終了境界を示す値を、前記第２のビデオを再生するよう構成されたクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、前記値が、前記ビデオプレイヤーに前記終了境界までスキップさせる、請求項１記載のビデオ処理システム。
【請求項３】
前記コンピュータプロセッサが、
前記第１のテストフレームが前記第１の境界であると決定されたことに応答して、前記第１の境界が前記第２のビデオ内の前記第１のセグメントの開始境界であるか否かを決定し、肯定された場合には、前記開始境界を示す値を、前記第２のビデオを再生するよう構成されたクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、前記値が、前記ビデオプレイヤーに、前記第２のビデオの再生を停止させ、前記第１のビデオと関連づけられた第３のビデオを要求させ、ユーザのために前記第３のビデオの再生を開始させる、請求項１記載のビデオ処理システム。
【請求項４】
前記コンピュータプロセッサが、
前記データストアに格納されている前記第１のビデオの前記第１のモデルセグメント内の第２のモデルフレーム内の画素に基づいて、第２のモデルフィンガープリントを生成し、
前記データストアに格納されている前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、第２のテストフィンガープリントを生成し、
前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる類似する項目の数の前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる全項目数に対する比に基づいて、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定し、
前記第１の境界が前記第２のビデオ内の前記第１のセグメントの開始境界であり、第２の境界が前記第２のビデオ内の前記第１のセグメントの終了境界であり、前記第２の近さの値に基づいて、前記第２のテストフレームが前記第２のビデオ内の前記第１のセグメントの前記第２の境界であるか否かを決定し、
前記第１のテストフレームが前記第１の境界であり、且つ、前記第２のテストフレームが前記第２の境界であると決定されたことに応答して、前記開始境界を示す第１の値および前記終了境界を示す第２の値をクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、
前記第１の値および前記第２の値が、前記ビデオプレイヤーが前記開始境界に到達した際に、前記ビデオプレイヤーに前記第２のビデオ内の前記終了境界までスキップさせる、請求項１記載のビデオ処理システム。
【請求項５】
前記コンピュータプロセッサが、
前記第１のモデルフレーム内の第１の組のモデル画素に基づいて、第１のモデル色分布であって、該第１のモデル色分布内の各特定の色が、該特定の色が割り当てられた前記第１の組のモデル画素内の画素の数を示す値と関連づけられた、第１のモデル色分布を決定することによって、前記第１のモデルフィンガープリントを生成し、
前記第１のテストフレーム内の第１の組のテスト画素に基づいて、第１のテスト色分布であって、該第１のテスト色分布内の各特定の色が、該特定の色が割り当てられた前記第１の組のテスト画素内の画素の数を示す値と関連づけられた、第１のテスト色分布を決定することによって、前記第１のテストフィンガープリントを生成する
ようプログラムされた、請求項１記載のビデオ処理システム。
【請求項６】
前記コンピュータプロセッサが、
１組の差分値であって、該１組の差分値内の各差分値が或る色に対応しており、前記第１のテスト色分布内の前記色が割り当てられた画素の数と比較した前記第１のモデル色分布内の前記色が割り当てられた画素の数を示す、１組の差分値を決定し、
前記１組の差分値内の各差分値を加算することによって総和を決定し、
前記総和を前記第１の組のモデル画素内の画素の数によって除算することによって、前記第１の近さの値を決定する
ようプログラムされた、請求項５記載のビデオ処理システム。
【請求項７】
前記コンピュータプロセッサが、前記第１のモデル色分布を前記第１のモデルフィンガープリントとして前記データストアに格納するようプログラムされた、請求項５記載のビデオ処理システム。
【請求項８】
前記コンピュータプロセッサが、
前記第１の組のモデル画素および前記第１の組のテスト画素からの第１の色空間内の各画素の１以上の第１の色成分を、前記第１の色空間とは異なる第２の色空間において定義される１以上の第２の色成分に変換し、
前記第１の組のモデル画素内の各画素の前記１以上の第２の色成分に基づいて、前記第１のモデル色分布を決定し、
前記第１の組のテスト画素内の各画素の前記１以上の第２の色成分に基づいて、前記第１のテスト色分布を決定する
ようプログラムされた、請求項５記載のビデオ処理システム。
【請求項９】
前記コンピュータプロセッサが、
前記データストアに格納されている前記第１のビデオの前記第１のモデルセグメント内の、前記第１のモデルフレームとは異なる第２のモデルフレーム内の画素に基づいて、第２のモデルフィンガープリントを生成し、
前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、第２のテストフィンガープリントを生成し、
前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる類似する項目の数の前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる全項目数に対する比に基づいて、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定し、
前記第２のビデオ内の第１のセグメントが前記第１のビデオ内の前記第１のモデルセグメントに類似しており、前記第２の近さの値に基づいて、前記第１のテストフレームが前記第２のビデオ内の前記第１のセグメントの第１の境界であるか否かを決定する
ようプログラムされた、請求項１記載のビデオ処理システム。
【請求項１０】
前記コンピュータプロセッサが、前記第１の近さの値および前記第２の近さの値の両方が特定の閾値より低い場合に、前記第１のフレームが前記第２のビデオ内の前記第１のセグメントの前記第１の境界であると決定するようプログラムされた、請求項９記載のビデオ処理システム。
【請求項１１】
前記コンピュータプロセッサが、
前記第１のテストフレーム内に顔があるか否かを検出し、
前記第１のフレーム内において顔が検出されたと決定されたことに応答して、クライアントコンピュータ上のビデオプレイヤーからの、前記第１のテストフレームにおいて開始する前記第１のセグメントを前記ビデオプレイヤーがスキップしてもよいことを示すデータを保留する
ようプログラムされた、請求項１記載のビデオ処理システム。
【請求項１２】
前記第１のモデルフレームが、前記第１のテストフレームと同じ数の画素を有する、請求項１記載のビデオ処理システム。
【請求項１３】
１以上のコンピューティング装置によって行われる、クライアントコンピュータ上で再生するためにサーバコンピュータからのビデオを要求する方法であって、
第２のビデオタイトルと関連づけられ、該第２のビデオタイトルと共通の１以上のビデオセグメントを含む第１のビデオタイトルを選択するユーザからの入力を受信する工程であって、該共通の１以上のビデオセグメントは、該第１のビデオタイトルに関連づけられた第１のフィンガープリントと該第２のビデオタイトルに関連づけられた第２のフィンガープリントとに含まれる類似する項目の数の該第１のフィンガープリントと該第２のフィンガープリントとに含まれる項目の合計数に対する比に基づいた近さの値を使って、共通であると決定されるものである、工程と、
前記サーバコンピュータからの、前記第１のビデオタイトルと関連づけられた、スキップされてよい１以上の共通のセグメントを示す１組のメタデータを要求する工程と、
前記第１のビデオタイトルと関連づけられた前記メタデータを受信し、それに応答して、前記１以上の共通のビデオセグメント内に含まれるフレームを含む１以上の第２のビデオチャンクを要求せずに、前記第１のビデオタイトルと関連づけられた１以上の第１のビデオチャンクを要求する工程と
を含むことを特徴とする方法。
【請求項１４】
前記１以上の第２のビデオチャンクと関連づけられた第２の組の音声データを要求せずに、前記１以上の第１のビデオチャンクと関連づけられた第１の組の音声データを要求する工程を含む、請求項１３記載の方法。
【請求項１５】
前記第１のビデオタイトルと関連づけられたビデオおよび音声を再生する工程と、前記スキップされてよい１以上の共通のセグメントの各境界において１以上の視覚的効果および１以上の聴覚的効果を適用する工程とを含む、請求項１３記載の方法。
【請求項１６】
メモリと、
前記メモリに結合された１以上のプロセッサと、
前記１以上のプロセッサおよび前記メモリに結合されたフィンガープリント生成ロジックであって、第１のビデオのモデルセグメント内の第１のモデルフレーム内の画素に基づいて、前記第１のビデオの第１のモデルフィンガープリントを生成し、第１のテストフレーム内の画素に基づいて、第２のビデオの第１のテストフィンガープリントを生成するよう構成されたフィンガープリント生成ロジックと、
前記メモリおよび前記１以上のプロセッサに結合されたフィンガープリント比較ロジックであって、前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントに含まれる類似する項目の数の前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントに含まれる全項目数に対する比に基づいて、前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントとの間の第１の近さの値を決定するよう構成されたフィンガープリント比較ロジックと、
前記メモリおよび前記１以上のプロセッサに結合されたセグメント検出ロジックであって、前記第１の近さの値に基づいて、前記第１のテストフレームが前記第２のビデオ内のセグメントの第１の境界であることを決定するよう構成されたセグメント検出ロジックと
を含むことを特徴とする、デジタルビデオ配布システム。
【請求項１７】
前記フィンガープリント生成ロジックが、前記第１のビデオの前記モデルセグメント内の第２のモデルフレーム内の画素に基づいて、前記第１のビデオの第２のモデルフィンガープリントを生成し、前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、前記第２のビデオの第２のテストフィンガープリントを生成するよう構成され、
前記フィンガープリント比較ロジックが、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる類似する項目の数の前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントに含まれる全項目数に対する比に基づいて、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定するよう構成され、
前記セグメント検出ロジックが、前記第２の近さの値に基づいて、前記第２のテストフレームが前記第２のビデオ内の前記セグメントの第２の境界であることを決定するよう構成された、
請求項１６記載のデジタルビデオ配布システム。
【請求項１８】
前記セグメント検出ロジックに結合されたストレージを含み、前記セグメント検出ロジックが、前記ストレージ内にある前記第２のビデオと関連づけられた１組のメタデータであって、前記第１のテストフレームが前記第２のビデオ内の前記セグメントの前記第１の境界であり、且つ、前記第２のテストフレームが前記第２のビデオ内の前記セグメントの前記第２の境界であることを示すメタデータを格納するよう構成された、請求項１７記載のデジタルビデオ配布システム。
【請求項１９】
前記ストレージに結合されたビデオカタログサーバコンピュータを含み、該ビデオカタログサーバコンピュータが、クライアントビデオプレイヤーコンピュータからの、前記第２のビデオと関連づけられたメタデータに対する要求を受信し、それに応答して、前記第２のビデオと関連づけられた前記１組のメタデータを読み出し、前記１組のメタデータを前記クライアントビデオプレイヤーコンピュータに送信するよう構成された、請求項１８記載のデジタルビデオ配布システム。
【請求項２０】
前記クライアントビデオプレイヤーコンピュータが、１以上のコンピュータネットワークを介して前記ビデオカタログサーバコンピュータに結合されており、前記１組のメタデータにおいて識別されている前記第２のビデオ内の前記セグメントの少なくとも一部を要求、ダウンロード、または再生せずに、前記第２のビデオを再生するよう構成された、請求項１９記載のデジタルビデオ配布システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般的に、コンピュータによって実装されるデジタル画像およびビデオ処理技術に関し、より具体的には、コンピュータによって実装される、第２の関連するデジタルビデオ内の１以上のセグメントと類似しているが同一ではない第１のデジタルビデオ内の１以上のセグメントの検出の精度を改善する技術に関する。
【背景技術】
【０００２】
この項に記載される手法は、追及され得る手法であるが、必ずしも、既に想到または追及された手法ではない。従って、特に明記しない限り、この項に記載されている手法のいずれも、単にこの項に含まれていることから従来技術とされるべきではない。
【０００３】
コンテンツプロバイダは、ダウンロードするためのテレビシリーズまたは映画シリーズのエピソードを格納し得る。ユーザは、クライアントコンピュータを介して、コンテンツプロバイダからダウンロードして視聴するためのシリーズのエピソードを選択し得る。ユーザが、クライアントコンピュータ上において第１のエピソードのダウンロードおよび視聴を完了した際、ユーザは、クライアントコンピュータを介して、シリーズ内の第２のエピソード等を視聴するために選択し得る。シリーズの複数のエピソードを続けて視聴することは、一般的に「一気視聴（binge watching）」と称される。
【０００４】
クライアントコンピュータがシリーズの選択されたエピソードの再生を完了した後、クライアントコンピュータは、一気視聴を促すために、コンテンツプロバイダからのシリーズ内の次のエピソードを自動的に要求して再生し得る。しかし、シリーズ内の各エピソードは、そのエピソードの制作に関与した人々を識別するクレジット画像（クレジット）を表示するためのビデオセグメントを含む場合があり、クレジットは通して再生するのに数分間かかる場合がある（このビデオセグメントは、本明細書においてはクロージングクレジットセグメントとして参照される）。シリーズを一気視聴するユーザは、シリーズ内の各エピソードのクロージングクレジットセグメントを視聴せずに、次のエピソードまでスキップすることを望む場合がある。
【０００５】
ユーザは、エピソード内の他のセグメントを自動的にスキップすることを望み得る。例えば、シリーズ内の各エピソードは、しばしばフィーチャーされているキャストおよびクルーメンバーの名前を載せた、エピソードを紹介するためのビデオセグメントを含み得る（このビデオセグメントは、本明細書においてはオープニングクレジットセグメントまたはタイトルセグメントとして参照される）。シリーズを一気視聴するユーザは、シリーズ内の各エピソードのオープニングクレジットセグメントをスキップすることを望み得る。
【０００６】
エピソード内において、例えばオープニングクレジットセグメントまたはクロージングクレジットセグメント等のビデオセグメントが開始するときおよび終了するときを検出するようコンピュータを構成することは、困難であり得る。例えば、同じビデオセグメントが、エピソード間では異なり得るので、エピソード間の同一のフレームをチェックすることは、有効ではない場合がある。
【０００７】
ビデオセグメントが開始するときおよび終了するときを検出するようコンピュータを構成することは、他の理由でも困難であり得る。例えば、シリーズ内の各エピソードについて、オープニングクレジットセグメントまたはクロージングクレジットセグメントはそれぞれ異なり得る。シリーズ内の１以上のエピソードは、オープニングクレジットセグメントの前に、それぞれ長さが異なる見どころ紹介のセグメントを再生して開始し得る。シリーズ内の１以上のエピソードは、クロージングクレジットセグメントの後に、最後のギャグを有するセグメントを含み得る。１以上のエピソードは、クロージングクレジットセグメント中に再生されるＮＧ集を含む場合があり、その場合には、ユーザは、クライアントコンピュータがクロージングクレジットセグメントを再生することを望み得る。
【０００８】
ビデオセグメントの開始および終了を正確に決定することは、ユーザの体験を改善し得ると共に、マルチメディアコンテンツを１以上のクライアントコンピュータにストリーミングするために必要な全体的な帯域幅を低減し得る。例えば、エピソード内のオープニングクレジットセグメントおよびクロージングクレジットセグメントが正しく決定される場合には、クライアントコンピュータは、そのエピソード内の独自のコンテンツを見出すためにビデオを前後にスキップするためのユーザ入力を必要とせずに、それらのセグメントをスキップし得る。また、例えば、クライアントコンピュータは、シリーズ内の１以上の共通のセグメント（例えばオープニングクレジットセグメントまたはクロージングクレジットセグメント等）の一部である音声セグメントまたは視覚的セグメントをダウンロードする必要がない。
【発明の概要】
【０００９】
添付の特許請求の範囲が、本発明の要約の役割をし得る。
【図面の簡単な説明】
【００１０】
【図１Ａ】例示的な一実施形態における、シリーズ内の或るエピソードの第１のフレーム
【図１Ｂ】例示的な一実施形態における、シリーズ内の或るエピソードの１つのフレーム
【図１Ｃ】例示的な一実施形態における、シリーズ内の或るエピソードの１つのフレーム
【図１Ｄ】例示的な一実施形態における、図１Ａのフレームの色分布を示すヒストグラム
【図１Ｅ】例示的な一実施形態における、図１Ｂのフレームの色分布を示すヒストグラム
【図１Ｆ】例示的な一実施形態における、図１Ｃのフレームの色分布を示すヒストグラム
【図２】例示的な一実施形態における、ビデオ処理コンピュータ、ビデオデータストア、ビデオサーバコンピュータ、ビデオカタログサーバコンピュータ、および、複数の相互接続されたネットワークにわたって分散されたクライアントコンピュータを含むシステムを示す
【図３】例示的な一実施形態における、同じテレビシリーズまたは映画シリーズの第１のモデルエピソード内の一連のビデオチャンク内の一連のフレーム、および異なるエピソード内の一連のビデオチャンク内の一連のフレームを示す
【図４】例示的な一実施形態における、第１のビデオ内のセグメントに対応する第２のビデオ内のセグメントを検出する処理を示す
【図５】例示的な一実施形態における、１以上の共通のビデオセグメントまたは音声セグメントを要求および／または再生せずに、クライアントコンピュータ上においてビデオを再生する処理を示す
【図６】実施形態が実装され得るコンピュータシステムを示す
【発明を実施するための形態】
【００１１】
各図面は、明確な例を示す目的で、特定の実施形態を示しているが、他の実施形態では、図面に示されている要素の任意のものに対して省略、追加、並べ替え、および／または変更が行われ得る。明確な例を示す目的で、１以上の図面は、１以上の他の図面を参照して説明され得るが、他の実施形態において、１以上の他の図面に示されている特定の構成を用いる必要はない。
【００１２】
以下の説明において、説明の目的で、本発明のより完全な理解を提供するために、多くの具体的な詳細が述べられる。しかし、本発明が、これらの具体的な詳細を含まずに実施され得ることは明らかである。他の例では、本発明を不必要に不明瞭にすることを避けるために、周知の構造および装置はブロック図の形態で示されている。
【００１３】
本明細書において、以下の骨子に沿って実施形態を説明する：
１．０  全体的概観
２．０  プロセスの概観
３．０  シリーズのエピソード内のセグメントを検出し、そのエピソードを１以上のクライアント装置に配布するための例示的なネットワークトポロジー
３．１  ビデオ配信ネットワーク
３．１．１  ビデオデータストア
３．１．１．１  エピソードの構造
３．１．２  ビデオサーバコンピュータ
３．２  メタデータストア
３．３  ビデオ処理ロジック
３．４  ビデオカタログサーバコンピュータ
３．５  クライアントビデオプレイヤーコンピュータ
４．０  エピソード間の共通のビデオセグメントを識別するための例示的なプロセス
４．１  モデルフィンガープリントを生成する
４．１．１  色分布を生成する
４．１．２  スーパー色分布を生成する
４．１．３  色および色分布の表現
４．２  テストフィンガープリントを生成する
４．３  テストフィンガープリントとモデルフィンガープリントとが一致するか否かを決定する
４．３．１  色分布に基づいて近さの値を決定する
４．３．２  顔検出に基づいて近さの値を決定する
４．３．３  特徴認識に基づいて近さの値を決定する
４．３．４  複数の近さの値に基づいて近さベクトルまたは近さの値の集合体を決定する
４．４  モデルフレームとテストフレームとが一致する否かを決定する
４．５  セグメント境界を決定する
４．５．１  順方向または逆方向検索によってセグメント境界を見出す
４．５．２  時間に基づいてセグメント境界を見出す
４．５．３  エピソード内の２以上のフレームに基づいて開始境界を決定する
４．５．４  エピソード内の２以上のフレームに基づいて終了境界を決定する
４．５．５  黙示的境界を決定する
４．６  エピソード内の複数のセグメントを見出す
４．７  任意選択セグメントを決定し、それに対して応答する
４．８  メタデータを格納する
４．８．１  同じエピソードの異なるバージョンについてのメタデータ
５．０  １以上の検出されたセグメントを用いてビデオをクライアントコンピュータに配布するための例示的なプロセス
５．１  ユーザ入力に基づいてセグメントをスキップする、および／またはダウンロードしない
５．２  １以上の効果を適用する
６．０  実装機構−ハードウェアの概観
７．０  本開示の他の態様
【００１４】
１．０  全体的概観
一実施形態において、ビデオ処理システムは、第１のビデオおよび第１のビデオと関連づけられた第２のビデオを格納するデータストアと、データストアに結合されたコンピュータプロセッサであって、データストアに格納されている第１のビデオの第１のモデルセグメント内の第１のモデルフレーム内の画素に基づいて、第１のビデオの第１のモデルフィンガープリントを生成し、データストアに格納されている第２のビデオ内の第１のテストフレーム内の画素に基づいて、第２のビデオの第１のテストフィンガープリントを生成し、第１のモデルフィンガープリントと第１のテストフィンガープリントとの間の第１の近さの値を決定し、第１の近さの値に基づいて、第１のテストフレームが、第１のビデオ内の第１のモデルセグメントに類似している第２のビデオ内の第１のセグメントの第１の境界であるか否かを決定するようプログラムされたコンピュータプロセッサとを含む。
【００１５】
一実施形態において、コンピュータプロセッサは、データストアに格納されている第１のビデオの第１のモデルセグメント内の第２のモデルフレーム内の画素に基づいて、第２のモデルフィンガープリントを生成し、データストアに格納されている第２のビデオ内の第２のテストフレーム内の画素に基づいて、第２のテストフィンガープリントを生成し、第２のモデルフィンガープリントと第２のテストフィンガープリントとの間の第２の近さの値を決定し、第１の境界が第２のビデオ内の第１のセグメントの開始境界であり、第２の境界が第２のビデオ内の第１のセグメントの終了境界であり、第２の近さの値に基づいて、第２のテストフレームが第２のビデオ内の第１のセグメントの第２の境界であるか否かを決定し、第１のテストフレームが第１の境界であり、且つ、第２のテストフレームが第２の境界であると決定されたことに応答して、開始境界を示す第１の値および終了境界第２のを示す値をクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、第１の値および第２の値は、ビデオプレイヤーが開始境界に到達した際に、ビデオプレイヤーに第２のビデオ内の終了境界までスキップさせる。
【００１６】
一実施形態において、コンピュータプロセッサは、第１のモデルフレーム内の第１の組のモデル画素に基づいて、第１のモデル色分布であって、該第１のモデル色分布内の各特定の色が、該特定の色が割り当てられた第１の組のモデル画素内の画素の数を示す値と関連づけられた、第１のモデル色分布を決定することによって、第１のモデルフィンガープリントを生成し、第１のテストフレーム内の第１の組のテスト画素に基づいて、第１のテスト色分布であって、該第１のテスト色分布内の各特定の色が、該特定の色が割り当てられた第１の組のテスト画素内の画素の数を示す値と関連づけられた、第１のテスト色分布を決定することによって、第１のテストフィンガープリントを生成するようプログラムされる。
【００１７】
一実施形態において、コンピュータプロセッサは、１組の差分値であって、該１組の差分値内の各差分値が或る色に対応しており、第１のテスト色分布内の色が割り当てられた画素の数と比較した第１のモデル色分布内の色が割り当てられた画素の数を示す、１組の差分値を決定し、１組の差分値内の各差分値を加算することによって総和を決定し、総和を第１の組のモデル画素内の画素の数によって除算することによって、第１の近さの値を決定するようプログラムされる。
【００１８】
一実施形態において、クライアントコンピュータ上で再生するためにサーバコンピュータからのビデオを要求する方法は、第２のビデオタイトルと関連づけられ、該第２のビデオタイトルと共通の１以上のビデオセグメントを含む第１のビデオタイトルを選択するユーザからの入力を受信する工程と、サーバコンピュータからの、第１のビデオタイトルと関連づけられた、スキップされてよい１以上の共通のセグメントを示す１組のメタデータを要求する工程と、メタデータを受信し、それに応答して、１以上の共通のビデオセグメントを要求せずに、第１のビデオタイトル内の１以上のビデオセグメントを要求する工程とを含む。
【００１９】
一実施形態において、デジタルビデオ配布システムは、メモリと、メモリに結合された１以上のプロセッサと、１以上のプロセッサおよびメモリに結合されたフィンガープリント生成ロジックであって、第１のビデオのモデルセグメント内の第１のモデルフレーム内の画素に基づいて、第１のビデオの第１のモデルフィンガープリントを生成し、第１のテストフレーム内の画素に基づいて、第２のビデオの第１のテストフィンガープリントを生成するよう構成されたフィンガープリント生成ロジックと、メモリおよび１以上のプロセッサに結合されたフィンガープリント比較ロジックであって、第１のモデルフィンガープリントと第１のテストフィンガープリントとの間の第１の近さの値を決定するよう構成されたフィンガープリント比較ロジックと、メモリおよび１以上のプロセッサに結合されたセグメント検出ロジックであって、第１の近さの値に基づいて、第１のテストフレームが第２のビデオ内のセグメントの第１の境界であることを決定するよう構成されたセグメント検出ロジックとを含む。
【００２０】
本明細書において述べる実施形態は、ビデオの一部をスキップするという概念を超えた、多くの利益および改善を提供する。例えば、本明細書において述べる実施形態の１以上は、様々なデジタル画像およびビデオ処理技術を用いて、テレビシリーズまたは映画シリーズ内の複数のエピソード間の類似および／または共通であるが同一ではないセグメントの開始および終了境界を自動的に検出するために、コンピュータに基づく画像解析技術を用い得る。更に、本明細書において述べる方法を用いれば、シリーズ内のビデオの表示する必要がない共通の部分をスキップする、および／またはダウンロードしないことにより、クライアントビデオプレイヤーコンピュータ上におけるデジタルビデオの再生のマシン効率が改善され、それにより、ストリーミングビデオ送信の場合には、伝送時間および帯域幅消費が低減される。
【００２１】
２．０  プロセスの概観
本明細書において述べるように、エピソード内のビデオセグメント（例えば、オープニングクレジットセグメントまたはクロージングクレジットセグメント等）が開始および終了するときを検出するようにコンピュータを構成するのは、困難であり得る。例えば、図１Ａは、特定のシリーズ内の第１のエピソードのオープニングクレジットセグメントからの第１のフレームであるとし、図１Ｂは、同じ特定のシリーズ内の第２のエピソードのオープニングクレジットセグメントからの第１のフレームであるとする。図１Ａおよび図１Ｂに示されているように、第１のエピソードの監督は、第２のエピソードとは異なる人物である。従って、図１Ａに対応するフレームが、オープニングクレジットセグメントの第１のフレームとしてデザインされている場合には、コンピュータは、図１Ａのフレームを図１Ｂのフレームと比較することにより、図１Ｂに対応するフレームは第２のエピソード内のオープニングクレジットセグメントの開始ではないと不正確に決定し得る。
【００２２】
ビデオ処理コンピュータは、たとえ、各エピソード内の共通のセグメント内のフレームが、それぞれ同一ではなくても、特定のシリーズの複数のエピソード内の共通のセグメントを検出し得る。例えば、ビデオ処理コンピュータは、シリーズ内の第１のエピソードの特定のセグメントがオープニングクレジットセグメントであることを示す入力を受信し得る。第１のエピソード内の特定のセグメントは、モデルセグメントとして参照され得る。ビデオ処理コンピュータは、モデルセグメント内の１以上のフレームにそれぞれ対応する１以上のフレームフィンガープリントを生成して格納し得る。フィンガープリントまたはフレームフィンガープリントは、対応するフレーム内の１以上の特徴を表すデータであり得る。モデルセグメント内のフレームに対応するフレームフィンガープリントは、モデルフィンガープリントまたはモデルフレームフィンガープリントとして参照され得る。従って、モデルセグメントの１以上のフレームフィンガープリントは、１以上のモデルフレームフィンガープリントまたは１以上のモデルフレームフィンガープリントとして参照され得る。明確な例を示す目的で、図１Ｄは、シリーズのモデルエピソード内のモデルオープニングクレジットセグメント内のフレームであり得る図１Ａに示されている画像に基づいて生成されたフレームフィンガープリントの視覚化である。図１Ｄは、例示的な一実施形態における、図１Ａのフレームの色分布を示すヒストグラムである。
【００２３】
ビデオ処理コンピュータは、シリーズ内の第２のエピソード、即ちテストエピソード内の１以上のフレームに対応する１以上のテストフレームフィンガープリントを生成し得る。テストエピソードは、シリーズ内のモデルエピソードではない、シリーズ内のエピソードであり得る。テストフレームは、テストエピソード内のフレームであり得る。明確な例を示す目的で、図１Ｅおよび図１Ｆは、シリーズのテストエピソードからのテストフレームであり得る図１Ｂおよび図１Ｃに示されている画像に基づいて生成されたフレームフィンガープリントの視覚化である。図１Ｅおよび図１Ｆは、例示的な一実施形態における、図１Ｂおよび図１Ｃのフレームの色分布をそれぞれ示すヒストグラムである。
【００２４】
ビデオ処理コンピュータは、１以上のモデルフレームフィンガープリントを１以上のテストフレームフィンガープリントと比較し得る。１以上のモデルフレームフィンガープリントが、１以上のテストフレームフィンガープリントに近い、および／または「一致する」と決定されたことに応答して、ビデオ処理コンピュータは、１以上のテストフレームフィンガープリントに対応する第２のエピソード内の１以上のフレームが、第１のエピソード内のセグメント（この例ではオープニングクレジットセグメント）と共通の第２のエピソード内のセグメントの少なくとも一部であることを決定し得る。
【００２５】
クライアントコンピュータからの第２のエピソードに対する要求を受信したことに応答して、サーバコンピュータは、クライアントコンピュータが、第２のエピソード内の共通のセグメント（この例ではオープニングクレジットセグメント）内にある１以上のフレームをスキップしてもよいおよび／またはダウンロードする必要がないことを示すデータを、クライアントコンピュータに送信し得る。
【００２６】
３．０  シリーズのエピソード内のセグメントを検出し、そのエピソードを１以上のクライアント装置に配布するための例示的なネットワークトポロジー
図２は、例示的な一実施形態における、ビデオ処理コンピュータ、ビデオデータストア、ビデオサーバコンピュータ、ビデオカタログサーバコンピュータ、および、複数の相互接続されたネットワークにわたって分散されたクライアントコンピュータを含むシステムを示す。図２において、デジタルビデオ配布システム２００は、ビデオ処理コンピュータ２１０と、ビデオデータストア２３０およびビデオサーバコンピュータ２４０を含むコンテンツ配信ネットワーク２２０と、メタデータストア２５５と、ビデオカタログサーバコンピュータ２５０と、複数の相互接続されたネットワークにわたって分散されたクライアントビデオプレイヤーコンピュータ２６０とを含む。
【００２７】
「コンピュータ」は、１以上の物理的コンピュータ、仮想コンピュータ、および／またはコンピューティング装置であり得る。一例として、コンピュータは、１以上のサーバコンピュータ、クラウドに基づくコンピュータ、クラウドに基づくコンピュータのクラスタ、仮想マシンインスタンスもしくは仮想マシンコンピューティング要素（例えば、仮想プロセッサ、ストレージ、およびメモリ等）、データセンター、ストレージ装置、デスクトップコンピュータ、ラップトップコンピュータ、モバイル装置、並びに／または、他の任意の専用コンピューティング装置であり得る。本明細書において「コンピュータ」と言う場合には、特に明記しない限り、１以上のコンピュータを意味し得る。
【００２８】
サーバコンピュータは、データに対する要求を受信し、データで応答するコンピュータであり得る。例えば、ウェブサーバコンピュータは、ＨＴＴＰを要求受信し、ＨＴＭＬ、ＣＳＳ、ＪａｖａＳｃｒｉｐｔ（登録商標）、ビデオ、および／または音声データを含むデータで応答するＨＴＴＰに基づくコンピュータであり得る。それに加えて、またはその代わりに、サーバコンピュータは、コンテンツ配信ネットワーク２２０の内側および／または外側の他のサーバコンピュータ上のデータ（例えば、ビデオまたは音声データ等）を参照するデータで応答し得る。
【００２９】
構成要素は、互いから別々のリモートコンピュータ上で実行されるかのように図示され得るが、上記に挙げた構成要素の１以上は、同じコンピュータの一部であってもよく、および／または、同じコンピュータ上で実行されてもよい。例えば、ビデオ処理コンピュータ２１０、メタデータストア３５５、およびビデオカタログサーバコンピュータ２５０は、同じコンピュータ、ローカルエリアネットワーク、および／またはワイドエリアネットワーク上で実行され得る。
【００３０】
３．１  ビデオ配信ネットワーク（「ＣＤＮ」）
ＣＤＮ２２０は、例えばクライアントビデオプレイヤーコンピュータ２６０またはビデオ処理コンピュータ４１０等の１以上のコンピュータを介したユーザからのビデオおよび／または音声データに対する要求を受信する１以上のサーバコンピュータ（例えば、ビデオデータストア２３０およびビデオサーバコンピュータ２４０等）を含み得る。ＣＤＮ２２０は、ビデオおよび／または音声データを、要求を送信したクライアントコンピュータに送信することによって応答し得る。ＣＤＮ２２０内の１以上のコンピュータは、１以上の独立したエンティティによって所有および／または管理され得ると共に、１以上のコンピュータネットワークおよび／または地理的領域にわたり得るが、そうである必要はない。
【００３１】
３．１．１  ビデオデータストア
ビデオデータストア２３０は、１以上のシリーズ内の複数のエピソードを格納し得る。例えば、ビデオデータストア２３０は、本明細書において更に詳細に述べる、ビデオおよび音声データを含み得るモデルエピソード３０１およびエピソード３０２のコピーを含み得る。ビデオデータストア２３０は、１以上のエピソードの１以上のバージョンを含み得る。様々なクライアントコンピュータおよびスループットをサポートするために、１つのバージョンは解像度がより低いもの、および／または、異なるフォーマットのものであり得る。ビデオデータストア２３０は、ビデオデータストア２３０に格納されている各ビデオチャンクに対応する音声チャンクを格納し得る。それに加えて、またはその代わりに、ビデオチャンクは音声データを含み得る。図２では、ビデオデータストア２３０は単一のデータストレージシステムとして図示されているが、ビデオデータストア２３０は、複数のコンピュータネットワークおよび／または地理的領域にわたって分散された１以上のストレージ装置を含み得る。
【００３２】
３．１．１．１  エピソードの構造
図３は、例示的な一実施形態における、同じテレビシリーズまたは映画シリーズの第１のモデルエピソード内の一連のビデオチャンク内の一連のフレームと、異なるエピソード内の一連のビデオチャンク内の一連のフレームとを示す。図３において、モデルエピソード３０１は、モデルフレーム３１２〜モデルフレーム３３６の一連のフレームを含む。エピソード３０２は、フレーム３５２〜フレーム３７６の一連のフレームを含む。モデルエピソード３０１およびエピソード３０２は、音声データを含み得る、および／または、参照し得る。フレームは、フレーム内の各画素についての色を示す画素データの集合（例えば、画像等）を含み得る。
【００３３】
エピソードは、１以上のビデオチャンクを含み得る。１以上のフレームは、ビデオチャンクによって参照され、ビデオチャンクと関連づけられ、および／またはビデオチャンクに含まれ得る。例えば、モデルエピソード３０１は、ビデオチャンク３１０、ビデオチャンク３２０、およびビデオチャンク３３０を含む。エピソード３０２は、ビデオチャンク３４０、ビデオチャンク３５０、およびビデオチャンク３６０を含む。ビデオチャンク３１０はモデルフレーム３１２〜３１６を含み、ビデオチャンク３２０はモデルフレーム３２２〜３２６を含み、ビデオチャンク３３０はモデルフレーム３３２〜３３６を含み、ビデオチャンク３５０はモデルフレーム３５２〜３５６を含み、ビデオチャンク３６０はモデルフレーム３６２〜３６６を含み、ビデオチャンク３７０はモデルフレーム３７２〜３７６を含む。
【００３４】
明確な例を示す目的で、図３の各エピソードは３つのビデオチャンクを有するものとして図示されており、各ビデオチャンクは３つのフレームを有するものとして図示されているが、エピソードは任意の数のビデオチャンクを含んでよく、ビデオチャンクは任意の数のフレームを含んでよい。更に、各エピソードは、同じ数のビデオチャンクを有するものとして図示されているが、シリーズ内の各エピソードが同じ数のビデオチャンクを含む必要はない。各ビデオチャンクは、ビデオチャンク毎に同じ数のフレームを有するものとして図示されているが、各ビデオチャンクが同じ数のフレームを含む必要はない。各ビデオチャンクは、ビデオチャンク内のフレームに対応する音声データを含み得る、および／または参照し得る。
【００３５】
クライアントビデオコンピュータは、エピソード内のビデオチャンクを別々におよび／または非同期的にダウンロードし得る。明確な例を示す目的で、エピソード内の各ビデオチャンクは、エピソード内の２秒間のフレームを含み、特定のタイムスタンプまたは一意的な指標値と関連づけられているとする。エピソードの再生の前処理として、ビデオプレイヤーコンピュータは、ビデオサーバコンピュータから、３つのタイムスタンプ００：００：００．００、００：００：０２．００、および００：００：０４とそれぞれ関連づけられた第１の３つの２秒間のビデオチャンクを非同期的に要求してダウンロードし得る。クライアントビデオプレイヤーコンピュータは、エピソード内の各ビデオチャンクを、各ビデオチャンクが表示されるべき時間の早さに基づく順序で要求および／またはダウンロードし得る。例えば、ビデオプレイヤーは、ビデオチャンク３３０を要求するより前に、ビデオチャンク３１０を要求し得るが、ビデオプレイヤーは、ビデオチャンク３１０より前に、および／またはそれとは非同期的に、ビデオチャンク３３０を受信してもよい。
【００３６】
クライアントビデオコンピュータは、ダウンロードされたビデオチャンクを、それらに関連づけられたタイムスタンプまたは指標値に基づく順序で、エピソードが単一のファイルに格納されているかのように連続的に再生し得る。先の例を続けると、クライアントビデオプレイヤーが、００：００：００．００のタイムスタンプと関連づけられた第１のビデオチャンクをダウンロードした後、クライアントビデオプレイヤーは第１のビデオチャンクを再生し得る。ビデオチャンクまたはセグメントを再生するとは、第１のビデオチャンクまたはセグメント内のフレームを特定の時間（この例では２秒間）にわたって立て続けに表示させることを意味し得る。クライアントビデオプレイヤーが、００：００：０２．００のタイムスタンプと関連づけられた第２のビデオチャンクをダウンロードした後であって、第１のビデオチャンクが再生された後、クライアントビデオプレイヤーは第２のビデオチャンクを再生し得る。クライアントビデオプレイヤーが、００：００：０４．００のタイムスタンプと関連づけられた第３のビデオチャンクをダウンロードした後であって、第２のビデオチャンクが再生された後、クライアントビデオプレイヤーは第３のビデオチャンクを再生し得る（以下同様である）。
【００３７】
３．１．２  ビデオサーバコンピュータ
図２に戻ると、ビデオサーバコンピュータ２４０は、１以上のクライアントコンピュータ（例えば、クライアントビデオプレイヤーコンピュータ２６０等）から、１以上のビデオ、音声、ビデオチャンク、および／または音声チャンクに対する要求を受信し得る。ビデオサーバコンピュータ２４０は、要求されたビデオおよび／またはビデオチャンクをビデオデータストア２３０から読み出して、そのビデオおよび／またはビデオチャンクをクライアントビデオプレイヤーに返し得る。図２では、ビデオサーバコンピュータ２４０は単一のコンピュータとして図示されているが、ビデオサーバコンピュータ２４０は、複数のコンピュータネットワークおよび／または地理的領域にわたって分散された１以上のコンピュータを含み得る。ビデオサーバコンピュータ２４０およびビデオデータストア２３０は、図２に示されているように、それぞれ異なる組の１以上のコンピュータであり得る。しかし、一実施形態において、ビデオサーバコンピュータ２４０は、ビデオデータストア２３０と同じ１以上のコンピュータ上で実行され得る。
【００３８】
３．２  メタデータストア
メタデータストア２５５は、１以上のシリーズ内の１以上のエピソードと関連づけられたメタデータを格納し得る。例えば、メタデータストア２５５は、モデルエピソード３０１内のオープニングクレジットセグメントおよび／またはクロージングクレジットセグメントの一部であるフレームを識別するメタデータを含み得る。モデルエピソード（例えば、モデルエピソード３０１等）と関連づけられたメタデータは、ユーザによって生成され得る。例えば、ユーザは、モデルエピソード３０１を視聴して、クライアントコンピュータ（図２には図示せず）を介して、１以上のフレームが１以上のセグメントに属することを示すメタデータをメタデータストア２５５に保存し得る。
【００３９】
また、メタデータストア２５５は、ビデオ処理ロジック２１２および／またはビデオ処理コンピュータ２１０からメタデータを受信して格納し得る。例えば、メタデータストア２５５は、ビデオ処理ロジック２１２から、モデルエピソード３０１内のオープニングクレジットセグメントおよびクロージングクレジットセグメントに対応するエピソード３０２内のオープニングクレジットセグメントおよび／またはクロージングクレジットセグメントに属する１以上のフレームを識別するメタデータを受信し得る。メタデータは、バージョンに固有のデータ（例えば、エピソード３０２の特定のバージョン内において特定のセグメントが検出されたか否か等）を含み得る。メタデータストア２５５は、持続的なストレージであり得る。図４では、メタデータストア２５５は単一のデータストレージシステムとして図示されているが、メタデータストア２５５は、複数のコンピュータネットワークおよび／または地理的領域にわたって分散された１以上のストレージ装置を含み得る。
【００４０】
３．３  ビデオ処理ロジック
ビデオ処理コンピュータ２１０は、ビデオ処理ロジック２１２を含む。本明細書において詳細に述べるように、ビデオ処理コンピュータ２１０および／またはビデオ処理ロジック２１２は、ビデオデータストア２３０に格納されているモデルエピソードおよび／もしくはテストエピソードを処理し、モデルエピソードについてのメタデータをメタデータストア２５５から読み出しおよび／もしくは処理し、１以上のエピソード内の対応するセグメントを検出し、並びに／または、どのエピソード内でどのセグメントが検出されたかおよび／もしくはどのフレームが各エピソード内の検出された各セグメントの一部であるかを示すメタデータをメタデータストア２５５に格納し得る。従って、ビデオ処理コンピュータ２１０は、ビデオデータストア２３０および／またはメタデータストア２５５に結合され得る。
【００４１】
ビデオ処理ロジック２１２は、ビデオ処理コンピュータ２１０に結合され、および／またはビデオ処理コンピュータ２１０によって実行されるソフトウェアおよび／またはハードウェアであり得る。ビデオ処理ロジック２１２は、単一のコンピュータ（ビデオ処理コンピュータ２１０）によって実行されるソフトウェアアプリケーション、および／または単一のコンピュータ（ビデオ処理コンピュータ２１０）に結合されたコンピューティング装置として図示されているが、ビデオ処理ロジック２１２は、複数のコンピュータによって実行され、および／または複数のコンピュータに結合されていてもよい。例えば、ビデオ処理コンピュータ２１０は、１以上のコンピュータネットワークおよび／または地理的領域にわたって分散された複数のコンピュータを含んでもよく、ビデオ処理ロジック２１２は、ビデオデータストア２３０に格納されている１以上のエピソードを処理するために協働する複数のコンピュータの各々の上で実行されてもよい。
【００４２】
ビデオ処理ロジック２１２は、本明細書において述べる１以上の処理を行うよう構成された１以上の構成要素を含み得る。例えば、図２では、ビデオ処理ロジック２１２は、フィンガープリント生成ロジック２１３、フィンガープリント比較ロジック２１４、およびセグメント検出ロジック２１５を含む。ビデオ処理ロジック２１２および／またはその構成要素の各々は、動作可能に結合され得る。フィンガープリント生成ロジック２１３、フィンガープリント比較ロジック２１４、および／またはセグメント検出ロジック２１５は、ビデオ処理コンピュータ２１０に結合され、および／またはビデオ処理コンピュータ２１０によって実行されるソフトウェアおよび／またはハードウェアであり得る。フィンガープリント生成ロジック２１３、フィンガープリント比較ロジック２１４、および／またはセグメント検出ロジック２１５は、同じコンピュータ上で実行されるかのように図示されているが、ビデオ処理ロジック２１２の構成要素のうちの１以上は、１以上のコンピュータにわたって実行および／または分散されてもよい。本明細書において明確な例を示す目的で、ビデオ処理ロジック２１２、および／またはビデオ処理ロジック２１２の構成要素のうちの１以上は、本明細書において述べる１以上の処理を行い得るが、各処理は、ビデオ処理ロジック２１２によって、および／またはビデオ処理ロジック２１２の構成要素のうちの１以上によって行われ得る。
【００４３】
ビデオ処理ロジック２１２、および／またはビデオ処理ロジック２１２の構成要素のうちの１以上は、専用回路を含み得る。例えば、フィンガープリント生成ロジック２１３は、専用デジタル画像および／または信号プロセッサを用いて、色分布を生成、テキスト認識処理を実行、および／または顔認識処理を実行し得る。デジタル画像および／または信号プロセッサは、画像を変換する、画像内の特定の色空間の画素を異なる色空間に変換する、画像の色分布を生成する、画像内の特徴および／もしくは文字を検出する、画像上で顔認識処理を行う、複数の画像を比較する、並びに／または複数の画像の特徴を比較するための１組の指示、および／もしくはそれらを行うために有用な１組の指示をサポートするよう配線され、および／もしくは持続的にプログラムされ得る。デジタル画像プロセッサは、これらの処理を、同じ処理を行うために１以上の指示を実行する汎用中央処理装置（「ＣＰＵ」）（例えば、縮小命令セットコンピューティングプロセッサ等）よりも迅速におよび／または効率的に行い得る。それに加えて、またはその代わりに、ビデオ処理コンピュータ２１０は、１以上の汎用ＣＰＵ並びに１以上のデジタル画像および／または信号プロセッサを含み得る。
【００４４】
図４に示されている実施形態では、ビデオデータストア２３０に格納されているビデオデータは、ビデオ処理コンピュータ２１０および／またはビデオ処理ロジック２１２によって処理される。しかし、ビデオ処理コンピュータ２１０および／またはビデオ処理ロジック２１２は、１以上の他のストレージシステムに格納されているエピソードを処理してもよい。例えば、エピソードは、ビデオデータストア２３０からビデオ処理コンピュータ２１０にコピーされ得る。ビデオ処理ロジック２１２は、ビデオ処理コンピュータ２１０上でビデオデータストアを処理して、得られたメタデータをメタデータストア２５５に格納し得る。
【００４５】
一実施形態において、ビデオ処理コンピュータ２１０は、本明細書において図６に関して更に記載される技術の任意のものを用いて実装され得る。例えば、ビデオ処理コンピュータは、実行された際に、本明細書において仲介コンピュータについて記載される機能を行わせる１以上のプログラムが格納されるよう構成された汎用コンピュータ、または、これらの機能を実行するよう構成されたデジタルロジックを有する専用コンピュータ、または、他のコンピューティング装置において用いられるデジタルロジックを含み得る。図面は、通信可能に結合された様々な装置および／またはモジュールを示す線を含むが、コンピュータ、装置、モジュール、ストレージ、および構成の各々は、互いに通信可能に結合され得る。一実施形態では、複数のエピソーは、ビデオ処理コンピュータに動作可能に結合されたビデオデータストアに格納され得る。
【００４６】
３．４  ビデオカタログサーバコンピュータ
ビデオカタログサーバコンピュータ２５０は、コンテンツ配信ネットワーク２２０内において、特定のエピソード、および／またはエピソードの一部がどのサーバに格納されているかを示すデータを含み得る、またはデータをメタデータストア２５５から読み出し得る。例えば、クライアントビデオプレイヤーコンピュータ２６０からの、エピソード３０２についてのメタデータに対する要求に応答して、ビデオカタログサーバコンピュータ２５０は、メタデータをクライアントビデオプレイヤーコンピュータ２６０に送信し得る。メタデータは、クライアントビデオプレイヤーコンピュータ２６０が、コンテンツ配信ネットワーク２２０内のビデオサーバコンピュータ２４０から、エピソード３０２をダウンロードし得ることを示し得る。それに加えて、またはその代わりに、メタデータは、エピソード３０２内の１以上のセグメントを識別し得る。
【００４７】
３．５  クライアントビデオプレイヤーコンピュータ
クライアントビデオプレイヤーコンピュータ２６０は、１以上のビデオサーバコンピュータから受信されるビデオを要求および／またはダウンロードし、そのビデオをユーザに対して表示および／またはを再生する機能があるコンピュータ（例えば、パーソナルコンピュータ、タブレット、ビデオゲームコンソール、および／または本明細書において述べる他の任意のコンピュータ等）であり得る。例えば、クライアントビデオプレイヤーコンピュータ２６０は、実行された際にユーザが視聴するシリーズのエピソードを選択するのを可能にするアプリケーションを有するタブレットであり得る。特定のエピソード（例えば、エピソード３０２等）を選択するユーザ入力の受信に応答して、クライアントビデオプレイヤーコンピュータ２６０は、ビデオカタログサーバコンピュータ２５０からのメタデータを要求し得る。このメタデータに基づいて、クライアントビデオプレイヤーコンピュータ２６０は、クライアントビデオプレイヤーコンピュータ２６０によって格納および／または受信されたメタデータ、１以上の構成設定、および／またはユーザ入力に従ってスキップされるべきセグメントに属さない少なくとも１つのフレームを含むエピソード３０２内の各ビデオチャンクを要求することによって、エピソード３０２をダウンロードし得る。
【００４８】
４．０  エピソード間の共通のビデオセグメントを識別するための例示的なプロセス
図４は、例示的な一実施形態における、第１のビデオ内のセグメントに対応する第２のビデオ内のセグメントを検出する処理を示す。明確な例を示す目的で、これらのステップは、１以上の他の図面中の１以上の要素を参照して説明され得るが、他の実施形態において、１以上の他の図面に示されている特定の構成を用いることは必要ではない。
【００４９】
４．１  モデルフィンガープリントを生成する
ステップ４１０において、ビデオ処理コンピュータは、データストアに格納されている第１のビデオの第１のモデルセグメント内の第１のモデルフレーム内の画素に基づいて、第１のモデルフィンガープリントを生成する。例えば、ビデオ処理ロジック２１２は、メタデータストア２５５から、オープニングクレジットセグメントがモデルエピソード３０１内のモデルフレーム３１２において開始し、モデルフレーム３３６において終了することを示すメタデータを受信し得る。フィンガープリント生成ロジック２１３は、モデルフレーム３１２についてのモデルフレームフィンガープリントを生成し得る。
【００５０】
本明細書において述べるように、フレームフィンガープリントは、対応するフレーム内の１以上の特徴を表すデータであり得る。フレームフィンガープリントは様々な方法で生成され得る。例えば、フィンガープリント生成ロジック２１３は、フレームの色分布を生成し得る。フレームフィンガープリントは、色分布を含み得る。それに加えて、またはその代わりに、フィンガープリント生成ロジック２１３は、フレーム内に顔があるか否かを検出するために、顔認識プログラムおよび／またはモジュールを実行し得る。フレームフィンガープリントは、フレーム内において検出された顔を記述するデータを含み得る。データは、フレーム内において検出された１以上の顔のサイズ、位置、および／または色を示し得る。それに加えて、またはその代わりに、フィンガープリント生成ロジック２１３は、フレーム内に１以上の線、角、文字、数字、単語、および／または他の任意の特徴および／または文字が記載されているか否かを検出するために、特徴および／または文字認識プログラムを実行し得る。フレームフィンガープリントは、フレーム内において検出された特徴および／または文字を記述するデータを含み得る。
【００５１】
フレームフィンガープリントは、フレーム内の２以上の組の特徴を記述し得る。例えば、フレームフィンガープリントは、フレームについての色分布、フレーム内において１以上の顔が検出されたことを示すデータ、および／または、フレーム内において１以上のテキスト文字が検出されたことを示すデータを含み得る。
【００５２】
４．１．１  色分布を生成する
色分布は、１組の色に対応し、１組の色のうちの各色について、フレーム内にあるその色と同じおよび／またはその色に近い画素の数を示す。明確な例を示す目的で、画像がグレースケール画像であるとすると、各画素は２５６諧調のグレーのうちの１つであり得、最も暗い諧調のグレー（黒）は数字の０で表され、最も明るい諧調のグレー（白）は数字の２５５で表される。グレースケール画像についての色分布は、０、１、２、３…２５５までの各諧調のグレーに割り当てられた画素の数を示し得る。
【００５３】
カラー画像についての色分布が生成され得る。色空間は、或る領域にわたって定義された１組の色である。例えば、ＲＧＢ色空間は、赤成分、緑成分、および青成分の三成分領域によって定義された１組の色である。ＨＳＶ色空間は、色相成分、飽和成分、および値成分の三成分領域によって定義された１組の色である。ＣＭＹＫ色空間は、シアン成分、マゼンタ成分、イエロー成分、およびキー（黒）成分の四成分領域によって定義された１組の色である。
【００５４】
色は、色空間内において定義され得る。例えば、色空間は、色成分を囲む山括弧（例えば<A,B,C>等であり、ここで、Aはその色の第１の成分であり、Bはその色の第２の成分であり、Cはその色の第３の成分である）を有するベクトルとして示され得る。
【００５５】
カラー画素を有するフレームについての色分布は、色空間内の特定の色を有する画素の数を示し得る。例えば、色分布は、そのフレーム内にＲＧＢ色空間における色<10,20,25>を有する５つの画素があり、そのフレーム内にＲＧＢ色空間にける色<0,20,10>を有する７つの画素があり、そのフレーム内にＲＧＢ色空間における色<0,0,0>を有する３００個の画素があることを示し得る。
【００５６】
フィンガープリント生成ロジック２１３は、第１の色空間における画素を第２の色空間に変換し、第２の色空間に基づいて色分布を生成し得る。例えば、フィンガープリント生成ロジック２１３は、ＲＧＢ空間における画素を有するフレームをＨＳＶ空間に変換して、ＨＳＶ成分に基づく色分布を生成し得る。
【００５７】
４．１．２  スーパー色分布を生成する
スーパー色分布は、フレーム内の１以上の色成分の１以上の色分布で構成され得る、および／またはそれらの色分布を参照し得るものであり、従って、簡潔のために、スーパー色分布は色分布として参照され得る。明確な例を示す目的で、フレームは、ＨＳＶ空間における画素を含むものとする。フィンガープリント生成ロジック２１３は、他の成分における値に関係なく、第１の成分（この例では色相成分）に基づく第１の色分布を生成し得る。従って、第１の画素がＨＳＶ空間において<10,0,0>であり、第２の画素がＨＳＶにおいて<10,455,255>である場合には、両方の画素が、第１の色分布においては同じ色としてカウントされる。フィンガープリント生成ロジック２１３は、他の成分における値に関係なく、第２の成分（この例では飽和成分）に基づく第２の色分布も生成し得る。従って、第３の画素がＨＳＶ空間において<0,90,0>であり、第４の画素がＨＳＶにおいで<10,90,255>である場合には、両方の画素が、第２の色分布においては同じ色としてカウントされる。フィンガープリント生成ロジック２１３は、第２の色分布から第１の色分布へとデータを連結させることによって、スーパー色分布を生成し得る。
【００５８】
４．１．３  色および色分布の表現
上記に示した例において、色および色成分は、０〜２５５の範囲の１以上の整数値で表される。しかし、色および／または色成分は他の方法で表されてもよい。例えば、色および／または色成分は、０〜１（これらの値を含む）の浮動小数点値としての１以上として、表され得る。一実施形態において、色または色成分は、０．０〜１．０（これらの値を含む）から、０〜２５５（これらの値を含む）の整数値へと変換されてもよく、その逆が行われてもよい。それに加えて、またはその代わりに、色または色成分は、異なる範囲または組の値へと変換され得る。
【００５９】
上記に示した例において、色分布における各色および／または色成分は、０〜２５５（これらの値を含む）の個々の値であった。しかし、色分布における各色および／または色成分は、値の範囲であってもよい。例えば、色分布における１つの色は、１つの成分の値が或る範囲（例えば、[0.0-0.01)等、ここで、角括弧はその値を含むことを示し、丸括弧はその値を含まないことを示す）である全ての色であり得る。更に、１以上の成分は、例えば、<[0.0-0.01),[0.5-0.6),[0.2-0.3)>等の範囲を有し得る。その範囲内に含まれる色成分を有する画素に割り当てられた各色は、それぞれ、同じ色としてカウントされる。
【００６０】
色分布はヒストグラムとして視覚化され得る。例えば、図１Ｄは、例示的な一実施形態における、図１Ａに示されているフレームの色分布を示すヒストグラムである。図１Ｄにおいて、下の軸は０〜２５５（これらの値を含む）の個々の色の範囲を示す。明確な例を示す目的で、図１Ａの各画素はＲＧＢ空間において定義された色であるものとする。フィンガープリント生成ロジック２１３は、図１Ａの各画素をＲＧＢ空間からＨＳＶ空間へと変換し得る。フィンガープリント生成ロジック２１３は、０、１、２、３…２５５までに割り当てられた色相値を有する変換された画素の数を決定することによって、第１の成分（この例では０〜２５５の範囲の「色相成分」）に基づく色分布（図１Ｄにおいてヒストグラムとして図示されている）を生成し得る。従って、図１Ｄのヒストグラムにおける各垂直線の高さは、特定の色相値を有する変換された画素の数を示す。例えば、図１Ｄに示されているように、図１Ａに示されているフレームは、色相値５１が割り当てられた４９７個の画素を有する。また、例えば、図１Ｃに示されているフレームに基づくヒストグラムである図１Ｆでは、色相値４０に割り当てられた２７個の画素を有する。
【００６１】
４．２  テストフィンガープリントを生成する
図４に戻ると、ステップ４２０において、ビデオ処理コンピュータは、データストアに格納されている第２のビデオ内の第１のテストフレーム内の画素に基づいて、第１のテストフィンガープリントを生成する。例えば、フィンガープリント生成ロジック２１３は、本明細書において述べる方法のうちの１以上に従って、フレーム３５２についてのテストフレームフィンガープリントを生成し得る。
【００６２】
４．３  テストフィンガープリントとモデルフィンガープリントとが一致するか否かを決定する
ステップ４３０において、ビデオ処理コンピュータは、第１のモデルフィンガープリントと第１のテストフィンガープリントとの間の第１の近さの値を決定する。例えば、フィンガープリント比較ロジック２１４は、モデルフレーム３１２について生成されたモデルフレームフィンガープリントとフレーム３５２について生成されたテストフレームフィンガープリントとを比較することによって、近さの値を生成し得る。
【００６３】
４．３．１  色分布に基づいて近さの値を決定する
近さの値は、比較されるフィンガープリントのタイプに基づいて決定され得る。明確な例を示す目的で、モデルフレームフィンガープリントおよびテストフレームフィンガープリントは、それぞれ、モデルフレーム３１２およびフレーム３５２の色分布であるものとする。モデルフレームフィンガープリント（色分布）および／またはテストフレームフィンガープリント（色分布）が対応する１組の色のうちの各色について、フィンガープリント比較ロジック２１４は、モデル色分布フィンガープリントにおいてその色について見出された画素の数とテスト色分布フィンガープリントにおいてその同じ色について見出された画素の数との間の差分を算出し得る。フィンガープリント比較ロジック２１４は、各差分についての絶対値を算出し、各絶対値を加算して、デルタ値を生成し得る。フィンガープリント比較ロジック２１４は、デルタ値を、モデルフレームフィンガープリントを生成するために用いられたモデルフレーム３１２内の画素の数および／またはテスト色分布フィンガープリントを生成するためのフレーム３５２内の画素の数によって除算することによって、近さの値を算出し得る。一実施形態において、モデルフレームフィンガープリントを生成するために用いられたモデルフレーム３１２内の画素の数は、モデルフレーム３１２内の画素の総数であり、および／または、テスト色分布フィンガープリントを生成するためのフレーム３５２内の画素の数は、フレーム３５２内の画素の総数である。
【００６４】
以下の式は、上述の公式を示すものである。
【００６５】
【数１】
0006564464.tif 000002
【００６６】
上記の式において、pixelsm,cはモデルフレームおよび／またはモデル色分布ｍ内の特定の色ｃについての画素の数であり、pixelst,cはテストフレームおよび／またはテスト色分布ｔ内の特定の色ｃについての画素の数である。分子（本明細書においてはデルタ値とも称する）は、モデルフレーム色分布およびテストフレーム色分布内の各色についてのpixelsm,cとpixelst,cとの間の差分の絶対値の総和である。値total_pixelsは、モデルフレーム色分布および／またはテストフレーム色分布内において表されている画素の総数である。近さの値closenessは、画素の総数total_pixelsに対するデルタ値の割合である。
【００６７】
明確な例を示す目的で、図１Ａのフレームはモデルフレーム３１２を示しており、図１Ｂのフレームはフレーム３６２を示しており、図１Ｃのフレームはフレーム３５２を示しているものとする。従って、図１Ｄに示されているヒストグラムはモデルフレーム３１２の色分布の視覚化であり、図１Ｅに示されているヒストグラムはフレーム３６２の色分布の視覚化であり、図１Ｆに示されているヒストグラムはフレーム３５２の色分布の視覚化である。図１Ｄのヒストグラムは図１Ｅのヒストグラムに類似しており、従って、フィンガープリント比較ロジック２１４は、モデルフレーム３１２とフレーム３６２との間の０に近いおよび／または特定の閾値以下である第１の近さの値を算出し、それに応答して、モデルフレーム３１２とフレーム３６２とが一致することを決定し得る。一方、図１Ｄのヒストグラムは、図１Ｅのヒストグラムに対するほどには図１Ｆのヒストグラムに類似しておらず、従って、フィンガープリント比較ロジック２１４は、モデルフレーム３１２とフレーム３５２との間の、第１の近さの値より大きく、０に近くない、および／または特定の閾値以上である第２の近さの値を算出し、それに応答して、モデルフレーム３１２とフレーム３５２とが一致しないことを決定し得る。 
【００６８】
４．３．２  顔検出に基づいて近さの値を決定する
モデルフレームフィンガープリントおよびテストフレームフィンガープリントが、モデルフレームおよびテストフレーム内においてそれぞれ見出された１以上の顔（あれば）を記述するデータを含む場合には、近さの値は、モデルフレームおよび／またはテストフレーム内において検出された１以上の顔（あれば）に基づき得る。例えば、フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントおよびテストフレームフィンガープリントに基づいて、モデルフレームおよびテストフレームの両方において同じ位置および／またはサイズを有する顔の数を示す分子を決定し得る。また、フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントおよびテストフレームフィンガープリントに基づいて、モデルフレームおよび／またはテストフレーム内において検出された顔の総数を示す分母を決定し得る。フィンガープリント比較ロジック２１４は、分子を分母によって除算することによって、近さの値を決定し得る。
【００６９】
４．３．３  特徴認識に基づいて近さの値を決定する
モデルフレームフィンガープリントおよびテストフレームフィンガープリントが、モデルフレームおよびテストフレームにおいてそれぞれ見出された他の特徴を記述している場合には、近さの値は、モデルフレームおよび／またはテストフレーム内において検出された特徴に基づき得る。明確な例を示す目的で、モデルフレームフィンガープリントは、モデルフレーム内において検出された文字（あれば）を識別し、テストフレームフィンガープリントは、テストフレーム内において検出された文字（あれば）を識別するものとする。フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントおよびテストフレームフィンガープリントの両方において識別された文字を比較し得る。フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントおよびテストフレームフィンガープリントの両方において見出された文字の数をカウントすることにより、分子を決定し得る。フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントおよび／またはテストフレームフィンガープリント内の文字の総数を示す分母を計算し得る。フィンガープリント比較ロジック２１４は、分子を分母によって除算することによって、近さの値を決定し得る。この例は文字認識について述べているが、ビデオ処理ロジック２１２は、例えば、線、角、および／または画像認識等の他の特徴認識モデルを用いてもよい。
【００７０】
４．３．４  複数の近さの値に基づいて近さベクトルまたは近さの値の集合体を決定する
モデルフレームフィンガープリントおよび／またはテストフレームフィンガープリントが２以上のタイプのフィンガープリントで構成されている場合には、近さの値は、近さの値のベクトルおよび／または近さの値の集合体であり得る。明確な例を示す目的で、モデルフレームフィンガープリントは、色分布と、対応するモデルフレーム内に顔があるか否かを示すデータとを含み、テストフレームフィンガープリントは、色分布と、対応するテストフレーム内に顔があるか否かを示すデータとを含むものとする。フィンガープリント比較ロジック２１４は、上述のように、モデルフレームフィンガープリントおよびテストフレームフィンガープリント内の色分布に基づいて、第１の近さの値を計算し得る。フィンガープリント比較ロジック２１４は、モデルフレーム内には存在せずテストフレーム内に存在した顔の数、またはその逆の顔の数を示す第２の近さの値を計算し得る。フィンガープリント比較ロジック２１４は、２つの近さの値を統合して、近さの値の集合体（例えば、第１の近さの値と第２の近さの値との合計等）にし得る。それに加えて、またはその代わりに、フィンガープリント比較ロジック２１４は、第１の近さの値と第２の近さの値とをグループ化して、各近さの値がモデルフレームおよび／またはテストフレームと関連づけられたフレームフィンガープリントのタイプに対応する近さの値ベクトルにし得る。
【００７１】
４．４  モデルフレームとテストフレームとが一致する否かを決定する
図４に戻ると、ステップ４４０において、ビデオ処理コンピュータは、近さの値が特定の閾値以下であるか否かを決定する。近さの値が閾値に等しいおよび／またはより低い場合には、制御はステップ４５０に進み、そうでない場合には、制御はステップ４２０に進む。例えば、モデル色分布およびテスト色分布から決定された近さの値が０．０００１より低い場合には、フィンガープリント比較ロジック２１４は、モデルフレームとテストフレームとが一致することを決定して、ステップ４５０に進み得る。そうでない場合には、フィンガープリント比較ロジック２１４は、テストエピソード内の次のフレーム（この例では、フレーム３５４）を取得して、ステップ４２０に戻り得る。
【００７２】
近さの値が、１以上の他の近さの値のベクトルである場合には、各近さの値は閾値ベクトルと比較され得る。近さの値のベクトル内の１以上の値がそれぞれ、閾値ベクトル内の１以上の値以下である場合には、フィンガープリント比較ロジック２１４は、モデルフレームとテストフレームとが一致することを決定し得る。
【００７３】
明確な例を示す目的で、近さベクトルは３つの近さの値を含み、第１の近さの値は、モデルフレームフィンガープリントおよびテストフレームフィンガープリントに格納されている色分布に対応し、第２の近さの値は、テストフレーム内において検出された顔に対応しない、モデルフレーム内において検出された顔の総数に対応し、第３の近さの値は、モデルフレームおよびテストフレームの両方においてテキストが見出された場合には１に設定され、そうでない場合には０に設定されるものとする。また、閾値ベクトルは０．００２５、０、および０であるものとする。第１の近さの値が０．００２５未満であり、および／または、第２のマイナーな近さの値が０に等しく、および／または、第３のマイナーな近さの値が０である場合には、フィンガープリント比較ロジック２１４は、モデルフレームとテストフレームとが一致することを決定し、そうでない場合には、フィンガープリント比較ロジック２１４は、モデルフレームとテストフレームとが一致しないことを決定し得る。
【００７４】
表現の便宜上、フィンガープリント比較ロジック２１４が、本明細書において述べる１以上の方法を用いて、対応するフレームフィンガープリントどうしが互いに近いことを決定した場合に、２つのフレームは「一致する」。２つのフレームフィンガープリントは、２つのフレームフィンガープリントに基づく１以上の近さの値が特定の閾値以下である場合に、近いとされ得る。それに加えて、またはその代わりに、２つのフレームフィンガープリントは、１以上の近さの値が特定の閾値以上である場合に、近いとされ得る。例えば、フィンガープリント比較ロジック２１４は、対応するモデルフレームフィンガープリントおよびテストフレームフィンガープリント内の値に基づいて、モデルフレームおよびテストフレームの両方にある文字の数を算出し得る。文字の数が特定の閾値（例えば、５）以上である場合には、フィンガープリント比較ロジック２１４は、モデルフレームフィンガープリントとテストフレームフィンガープリントとが近いことを決定し得る。従って、フィンガープリント比較ロジック２１４は、モデルフレームとテストフレームとが一致することを決定し得る。
【００７５】
４．５  セグメント境界を決定する
図４に戻ると、ステップ４５０において、ビデオ処理コンピュータは、第１のテストフレームが第１のセグメントの境界であることを決定する。例えば、フレーム３５２、フレーム３５４、フレーム３５６、およびフレーム３６２についてのテストフレームフィンガープリントを生成し、各テストフレームについてステップ４２０〜ステップ４４０を繰り返した後、フィンガープリント比較ロジック２１４は、フレーム３６２がモデルフレーム３１２と一致することを決定し得る。モデルフレーム３１２とフレーム３６２とが一致すると決定されたことに応答して、セグメント検出ロジック２１５は、フレーム３６２がセグメントの境界であることを決定し得る。モデルメタデータが、モデルフレーム３１２がセグメントの開始境界であることを示す場合には、セグメント検出ロジック２１５は、フレーム３６２がエピソード３０２内の同じセグメントの開始境界であることを決定し得る。モデルメタデータが、モデルフレーム３１２がセグメントの終了境界であることを示す場合には、セグメント検出ロジック２１５は、フレーム３６２がエピソード３０２内の同じセグメントの終了境界であることを決定し得る。
【００７６】
４．５．１  順方向または逆方向検索によってセグメント境界を見出す
一実施形態において、セグメントの開始境界を見出した後、ビデオ処理コンピュータは、同じセグメントの終了境界を見出すために、図２のステップを繰り返し得る。明確な例を示す目的で、モデルメタデータは、現在のセグメントについての終了境界がモデルフレーム３３６であることを示しているものとする。セグメント検出ロジック２１５は、フィンガープリント生成ロジック２１３および／またはフィンガープリント比較ロジック２１４を介して、セグメント検出ロジック２１５がモデルフレーム３３６と一致するテストフレーム（この例ではフレーム３７４）を見出すまで、セグメントの開始境界であると決定されたテストフレーム（エピソード３０２内のフレーム３６２）の後の各テストフレームのテストを繰り返し得る。
【００７７】
それに加えて、またはその代わりに、セグメントの終了境界を見出した後、ビデオ処理コンピュータは、同じセグメントの開始境界を見出すために、図２のステップを繰り返し得る。明確な例を示す目的で、モデルメタデータは、現在のセグメントについての終了境界がモデルフレーム３３６であることを示し、フィンガープリント比較ロジック２１４は、フレーム３７４がモデルフレーム３３６と一致することを決定するものとする。セグメント検出ロジック２１５は、フィンガープリント生成ロジック２１３および／またはフィンガープリント比較ロジック２１４を介して、セグメント検出ロジック２１５がモデルフレーム３１２と一致するテストフレーム（この例ではフレーム３６２）を見出すまで、セグメントの終了境界であると決定されたテストフレーム（エピソード３０２内のフレーム３７４）の前の各テストフレームのテストを繰り返し得る。
【００７８】
４．５．２  時間に基づいてセグメント境界を見出す
一実施形態において、セグメントは、シリーズ内の各エピソードについて同じ量の時間であり得る。例えば、セグメントの開始が、テストエピソード内の第１のタイムスタンプ（例えば００：００：４０．００等）に対応するテストフレームであると決定され、モデルエピソードと関連づけられたメタデータが、そのセグメントが１０秒間の長さであることを示す場合には、セグメント検出ロジック２１５は、タイムスタンプ００：００：５０．００に対応するフレームが、セグメントの最後のフレーム、即ち終了境界であることを決定し得る。同様に、セグメントの終了が、特定のテストエピソード内の特定のタイムスタンプ（例えば０１：２０：３０．００等）に対応するテストフレームであると決定され、モデルエピソードと関連づけられたメタデータが、そのセグメントが１０秒間の長さであることを示す場合には、セグメント検出ロジック２１５は、タイムスタンプ０１：２０：２０．００に対応するフレームが、セグメントの第１のフレーム、即ち、開始境界であることを決定し得る。
【００７９】
モデルエピソード内のセグメントは、テストエピソードにおいて見出されたセグメントと同じ長さの時間である必要はない。モデルエピソード内のセグメントは、テストエピソードにおいて見出されたセグメントと同じ数のフレームを含む必要はない。例えば、モデルエピソード３０１内において定義されたセグメントは、エピソード３０２において見出された対応するセグメントより多くのフレームを含んでもよく、この場合、モデルエピソード３０１内のセグメントは、エピソード３０２内のセグメントより長い時間にわたって再生され得る。
【００８０】
４．５．３  エピソード内の２以上のフレームに基づいて開始境界を決定する
ビデオ処理コンピュータは、２以上のモデルフレームを２以上のテストフレームとそれぞれ比較することによってセグメント境界を決定し得る。２以上のモデルフレームおよび２以上のテストフレームは、連続したフレームであり得る。明確な例を示す目的で、モデルフレーム３１２はセグメントの開始境界であるものとする。モデルフレーム３１２がフレーム３５６と一致すると決定したことに応答して、セグメント検出ロジック２１５は、フィンガープリント生成ロジック２１３および／またはフィンガープリント比較ロジック２１４を介して、モデルフレーム３１４がフレーム３６２と一致するか否かを決定し得る。モデルフレーム３１４がフレーム３６２と一致しないと決定されたことに応答して、セグメント検出ロジック２１５は、フレーム３５６がエピソード３０２内のセグメントの開始境界ではないことを決定し得る。
【００８１】
後続のフレームがモデルエピソード内の第２のモデルフレームと一致しないことを理由に、第１のテストフレームがテストエピソード内のセグメントの開始境界ではないと決定されたことに応答して、ビデオ処理コンピュータは、第１のテストフレームの後にある第２のテストフレームに戻って、第２のテストフレームとモデルエピソード内のセグメントの開始境界にあるモデルフレームとの間の一致を見出し得る。先の例を続けると、モデルフレーム３１４がフレーム３６２と一致しない、および／または、フレーム３５６がエピソード３０２内のセグメントの開始境界ではないと決定されたことに応答して、セグメント検出ロジック２１５は、モデルフレーム３１２がフレーム３６２と一致するか否かを決定し得る。
【００８２】
ビデオ処理コンピュータが、第１のモデルフレームと第２のテストフレームとが一致することを決定した場合には、ビデオ処理コンピュータは、第２のモデルフレームが第３のテストフレームと一致するか否かを決定し得る。１以上の後続のモデルフレームが１以上の後続のテストフレームとそれぞれ一致することが決定された後、ビデオ処理コンピュータは、第１のモデルフレームと一致する最後のテストフレーム（この例ではフレーム３６２）、がエピソード３０２内のセグメントの第１のフレーム、即ち開始境界であることを決定し得る。例えば、モデルフレーム３１２がフレーム３６２と一致し、１以上の後続のおよび／または連続するモデルフレームが１以上の後続のおよび／または連続するテストフレームと一致する（例えばモデルフレーム３１６およびフレーム３６４等）と決定されたことに応答して、セグメント検出ロジック２１５は、フレーム３６２がエピソード３０２内のセグメントの開始境界であることを決定し得る。
【００８３】
明確な例を示す目的で、モデルエピソードおよびテストエピソード内の１つの更なるフレームを、開始境界を確認するために用いた。しかし、モデルエピソードおよび／またはテストエピソード内の５、１０、または他の任意の数のフレームが、開始境界を確認するために用いられ得る。
【００８４】
４．５．４  エピソード内の２以上のフレームに基づいて終了境界を決定する
終了境界も同様にして見出され得るが、１以上の後続のフレームを比較する代わりに、ビデオ処理コンピュータは、セグメントの終了境界を見出すために、１以上の先行するモデルフレームとテストフレームとをそれぞれ比較し得る。明確な例を示す目的で、モデルフレーム３３６はセグメントの終了境界であるものとする。モデルフレーム３３６がフレーム３７６と一致すると決定したことに応答して、セグメント検出ロジック２１５は、フィンガープリント生成ロジック２１３および／またはフィンガープリント比較ロジック２１４を介して、モデルフレーム３３４がフレーム３７４と一致するか否かを決定し得る。モデルフレーム３３４がフレーム３７４と一致しないと決定されたことに応答して、セグメント検出ロジック２１５は、フレーム３７６がエピソード３０２内のセグメントの終了境界ではないことを決定し得る。
【００８５】
先行するフレームがモデルエピソード内の第２のモデルフレームと一致しないことを理由として、第１のテストフレームがテストエピソード内のセグメントの終了境界ではないと決定されたことに応答して、ビデオ処理コンピュータは、第１のテストフレームの前の第２のテストフレームに戻って、第２のテストフレームとモデルエピソード内のセグメントの終了境界にあるモデルフレームとの間の一致を見出し得る。先の例を続けると、モデルフレーム３３４がフレーム３７４と一致しない、および／または、フレーム３７４がエピソード３０２内のセグメントの終了境界ではないと決定されたことに応答して、セグメント検出ロジック２１５は、フィンガープリント生成ロジック２１３および／またはフィンガープリント比較ロジック２１４を介して、モデルフレーム３３６がフレーム３７４と一致するか否かを決定し得る。
【００８６】
ビデオ処理コンピュータが、第１のモデルフレームと第２のテストフレームとが一致することを決定した場合には、ビデオ処理コンピュータは、第２のモデルフレームが第３のテストフレームと一致するか否かを決定し得る。１以上の先行するモデルフレームが１以上の先行するテストフレームとそれぞれ一致することが決定された後、ビデオ処理コンピュータは、終了境界モデルフレーム（この例ではモデルフレーム３３６）と一致する最後のテストフレームが、エピソード３０２内のセグメントの最後のフレーム、即ち終了境界であることを決定し得る。例えば、モデルフレーム３３６がフレーム３７４と一致し、１以上の先行するおよび／または連続するモデルフレームが１以上の先行するおよび／または連続するテストフレームと一致する（例えばモデルフレーム３３４およびフレーム３７２等）と決定されたことに応答して、セグメント検出ロジック２１５は、フレーム３７２がエピソード３０２内のセグメントの終了境界であることを決定し得る。
【００８７】
明確な例を示す目的で、モデルエピソードおよびテストエピソード内の１つの更なるフレームを、終了境界を確認するために用いた。しかし、モデルエピソードおよび／またはテストエピソード内の５、１０、または他の任意の数のフレームが、終了境界を確認するために用いられ得る。
【００８８】
４．５．５  黙示的境界を決定する
セグメントは黙示的境界を有し得る。例えば、第１のモデルフレームのフィンガープリントに関係なく、モデルエピソードと関連づけられたメタデータは、モデルエピソードの開始がオープニングクレジットセグメントの開始境界であることを示し得る。従って、ビデオ処理コンピュータは開始セグメントの開始境界を求めて順に検索する必要はないが、依然として、本明細書において述べる方法の１以上に従って、テストエピソード内のオープニングクレジットセグメントを見出すために、オープニングクレジットセグメントの終了境界を求めてテストエピソードを検索し得る。
【００８９】
一実施形態において、シリーズ内の１以上のエピソードは、新たなコンテンツの前のオープニングクレジットセグメントの前に、前のエピソードを要約する要約セグメントを含み得る。シリーズのエピソードを一気視聴しているユーザは、クライアントビデオプレイヤーコンピュータ２６０が要約セグメントおよびオープニングクレジットセグメントの両方を自動的にスキップすることを望み得る。しかし、シリーズ内の各エピソードについての要約セグメントは異なり得る。シリーズおよび／またはモデルエピソードと関連づけられたメタデータが、各エピソードの開始がオープニングクレジットセグメントの開始であることを示す場合には、セグメント検出ロジック２１５は、シリーズ内の各エピソードについてのオープニングクレジットセグメントと共に要約セグメントを含み得る。従って、クライアントビデオプレイヤーコンピュータ２６０が、オープニングクレジットセグメントをスキップするよう構成される場合には、クライアントビデオプレイヤーコンピュータ２６０は、シリーズ内の各エピソードの要約セグメントおよびオープニングクレジットセグメントの両方をスキップし得る。
【００９０】
それに加えて、またはその代わりに、最後のモデルフレームのフィンガープリントに関係なく、モデルエピソードと関連づけられたメタデータは、モデルエピソードの最後が、クロージングクレジットセグメントのクロージング境界であることを示し得る。従って、セグメント検出ロジック２１５は、テストエピソード内のクロージングクレジットセグメントを見出すために、クロージングクレジットセグメントの開始境界を求めて、シリーズ内のテストエピソードを検索し得る。しかし、セグメント検出ロジック２１５は、クロージングクレジットセグメントの終了境界を求めて、テストエピソードを順に検索する必要はなく、セグメント検出ロジック２１５は、終了境界はテストエピソード内の最後のフレームであるとし得る。
【００９１】
４．６  エピソード内の複数のセグメントを見出す
モデルエピソードは複数のセグメントを含み得る。例えば、モデルエピソード３０１と関連づけられたメタデータは、モデルエピソード３０１がオープニングクレジットセグメントおよびクロージングクレジットセグメントを有することを示し得る。従って、ビデオ処理ロジック２１２は、本明細書において述べる方法の１以上を用いて、オープニングクレジットエピソード３０２内のセグメントの開始境界および終了境界、並びにクロージングクレジットエピソード３０２内のセグメントの開始境界および終了境界を見出し得る。
【００９２】
第１のセグメントの境界を決定するために、第２のセグメントとは異なる基準が用いられ得る。例えば、ビデオ処理ロジック２１２は、色分布を有するフレームフィンガープリントに基づいて、オープニングクレジットセグメントの境界を決定し得る。しかし、ビデオ処理ロジック２１２は、色分布、顔検出、およびテキスト検出を有するフレームフィンガープリントに基づいて、エンディングクレジットセグメントの境界を決定し得る。
【００９３】
４．７  任意選択セグメントを決定し、それに対して応答する
モデルエピソードと関連づけられたメタデータは、セグメントが任意選択であることを示し得る。任意選択セグメントは、シリーズ内の各エピソードが含み得るが、含む必要はないセグメントであり得る。例えば、シリーズ内のモデルエピソードはクロージングクレジットセグメントを有し得る。しかし、シリーズ内の１以上のエピソードは、ユーザが視聴することを望み得る、クライアントビデオプレイヤーコンピュータがデフォルトでスキップすべきではない新たなコンテンツ（例えば、ギャグリール等）を含むクロージングクレジットセグメントを含み得る。ビデオ処理ロジック２１２は、モデルフレームフィンガープリントおよびテストフレームフィンガープリント内の色分布に基づいて、シリーズ内の特定のエピソード内のクロージングクレジットセグメントの境界を決定し得るが、クロージングクレジットセグメントが任意選択であると決定されたことに応答して、ビデオ処理コンピュータは、本明細書において述べる方法の１以上を用いて、クロージングクレジットセグメント内の１以上のフレーム内において顔が検出されたか否かを決定し得る。ビデオ処理ロジック２１２が１以上の顔を検出した場合には、ビデオ処理ロジック２１２は、テストエピソードがクロージングクレジットセグメントを含まないこと、および／または、クライアントビデオプレイヤーがそのテストエピソードについてはクロージングクレジットセグメントをスキップすべきではないことを決定して、そのテストエピソードと関連づけられた、そのことを示すメタデータを格納し得る。一実施形態において、ビデオ処理ロジック２１２は、テストエピソードがクロージングクレジットセグメントを含まないことを示すメタデータを保留してもよく、および／または、含まなくてもよい。従って、クライアントビデオプレイヤーコンピュータ２６０は、そのテストエピソード内のクロージングビデオセグメントをダウンロードおよび／または再生し得る。
【００９４】
それに加えて、またはその代わりに、モデルエピソードと関連づけられたメタデータが、特定のセグメント（例えばクロージングクレジットセグメント等）が任意選択であることを示す場合には、ビデオ処理コンピュータは、シリーズ内のテストエピソードと関連づけられた、対応するセグメントが任意選択であることを示すメタデータを格納し得る。従って、クライアントビデオプレイヤーコンピュータ（例えば、クライアントビデオプレイヤーコンピュータ２６０等）は、任意選択クロージングクレジットセグメントの再生を開始するよう構成され得るが、ユーザが特定の量の時間内に特定のボタンを選択しない場合には、クライアントビデオプレイヤーコンピュータ２６０は、任意選択クロージングクレジットセグメントの残りの部分をスキップしてもよく、および／または、シリーズ内の次のエピソードの再生を開始してもよい。一実施形態において、クライアントビデオプレイヤーコンピュータ２６０は、クロージングクレジットセグメントを再生すると共に、ユーザに対してボタンを表示するよう構成されてもよく、このボタンが選択された場合には、クライアントビデオプレイヤーコンピュータ２６０にクロージングクレジットセグメントをスキップし、および／またはシリーズ内の次のエピソードの再生を開始し、選択されない場合には、クライアントビデオプレイヤーコンピュータ２６０は任意選択クロージングクレジットセグメントを再生し得る。
【００９５】
４．８  メタデータを格納する
ビデオ処理コンピュータは、テストエピソードにおいて見出された１以上のセグメント、各セグメントの境界、および／または、本明細書において述べるようにビデオ処理コンピュータによって決定された１以上の他の特性を識別するための、各テストエピソードと関連づけられたメタデータを生成し得る。例えば、テストエピソード（例えば、エピソード３０２等）内の開始クレジットセグメントについての境界を決定したことに応答して、ビデオ処理ロジック２１２は、エピソード３０２と関連づけられた、エピソード３０２内のどのフレームがオープニングクレジットセグメントを含むかを示すメタデータを生成して格納し得る。
【００９６】
４．８．１  同じエピソードの異なるバージョンについてのメタデータ
ビデオ処理コンピュータは、モデルエピソードに基づいて、テストエピソード内の１以上のセグメントであって、両方のエピソード内のフレームが同じ特性（例えば解像度、幅、および／または高さ等）を有するテストエピソード内のセグメントを検索し得る。同じテストエピソードの複数のバージョンがビデオデータストアに格納されている場合には、同じエピソードの異なるバージョン内の対応するフレームは同じタイムスタンプおよび／または他の指標値を有し得るので、ビデオ処理サーバコンピュータは、１以上のセグメントを求めてテストエピソードの各バージョンを検索する必要はない。ビデオ処理システムは、或るエピソードの特定のバージョンについて生成されたメタデータを、同じエピソードの１以上のバージョンに関連づけ得る。
【００９７】
例えば、シリーズ内の特定のエピソードの第１のバージョンに基づいて、ビデオ処理ロジック２１２は、特定のエピソードを識別する特定の１組のメタデータをメタデータストア２５５に格納し得る。特定の１組のメタデータは、特定のエピソードが、第１のタイムスタンプから第２のタイムスタンプまで（これらのタイムスタンプを含む、または含まない）に対応するフレームを有するオープニングクレジットセグメントを有することを示し得る。クライアントビデオプレイヤーコンピュータ２６０が、特定のエピソードの第２の異なるバージョンダウンロードおよび／または再生した場合には、クライアントビデオプレイヤーコンピュータ２６０は、メタデータストア２５５からの特定の１組のメタデータを要求し得る。従って、クライアントビデオプレイヤーコンピュータ２６０は、特定の１組のメタデータに基づいて、特定のエピソードの第２の異なるバージョン内の、第１のタイムスタンプおよび第２のタイムスタンプに等しいタイムスタンプおよび／またはそれらの間のタイムスタンプに対応するフレームをスキップしてもよく、および／またはダウンロードしなくてもよい。
【００９８】
５．０  １以上の検出されたセグメントを用いてビデオをクライアントコンピュータに配布するための例示的なプロセス
図５は、例示的な一実施形態における、１以上の共通のビデオセグメントまたは音声セグメントを要求および／または再生せずに、クライアントコンピュータ上においてビデオを再生する処理を示す。ステップ５１０において、クライアントコンピュータは、第１のビデオタイトルを選択するユーザからの入力を受信し得る。例えば、クライアントビデオプレイヤーコンピュータ２６０は、エピソード３０２を選択するユーザからの入力を受信し得る。
【００９９】
ステップ５２０において、クライアントコンピュータは、第１のビデオタイトルと関連づけられた１組のメタデータを要求する。例えば、クライアントビデオプレイヤーコンピュータ２６０は、ビデオカタログサーバコンピュータ２５０からの、エピソード３０２と関連づけられたメタデータを要求し得る。メタデータは、クライアントビデオプレイヤーコンピュータ２６０がエピソード３０２および／またはエピソード３０２内の１以上のセグメントをダウンロードし得る１以上のサーバコンピュータを識別し得る。
【０１００】
ステップ５３０において、クライアントコンピュータはメタデータを受信する。例えば、クライアントビデオプレイヤーコンピュータ２６０は、ビデオカタログサーバコンピュータ２５０を介して、メタデータストア２５５に格納されているメタデータを受信し得る。メタデータは、クライアントビデオプレイヤーコンピュータ２６０がビデオサーバコンピュータ２４０および／またはコンテンツ配信ネットワーク２２０からエピソード３０２をダウンロードし得ることを示し得る。メタデータは、タイムスタンプ０１：５０：００．００において開始し、タイムスタンプ０１：５９：３２．００において終了する（これらのタイムスタンプを含む）クロージングクレジットセグメントを識別し得る。明確な例を示す目的で、タイムスタンプ０１：５０：００．００および０１：５９：３２．００は、フレーム３６２およびフレーム３７４にそれぞれ対応するものとする。
【０１０１】
ステップ５４０において、クライアントコンピュータは、１以上の特定のビデオセグメントを要求せずに、第１のビデオタイトル内のビデオデータを要求する。例えば、クライアントビデオプレイヤーコンピュータ２６０は、ビデオサーバコンピュータ２４０からのエピソード３０２の、クロージングクレジットセグメントを定義するタイムスタンプの外側にあるタイムスタンプと関連づけられた１以上のチャンク、および／または、それらのタイムスタンプと関連づけられたフレームを含む１以上のチャンクを要求してダウンロードし得る。
【０１０２】
クライアントビデオプレイヤーコンピュータ２６０は、クロージングクレジットセグメントの範囲に含まれるフレームのみを含むエピソード３０２のビデオチャンクをダウンロードする必要がないことを決定し得る。明確な例を示す目的で、クライアントビデオプレイヤーコンピュータ２６０は、エピソード３０２の他のビデオチャンク（ビデオチャンク３６０）をダウンロードするか否かを決定しているものとする。ビデオチャンク３６０内の第１のフレームおよび最後のフレームが、クロージングクレジットセグメントと関連づけられたタイムスタンプの範囲（それらのタイムスタンプを含む）に含まれるタイムスタンプに対応すると決定されたことに応答して、クライアントビデオプレイヤーコンピュータ２６０は、ビデオサーバコンピュータ２４０からのビデオチャンク３６０を要求および／またはダウンロードしなくてよい。
【０１０３】
クライアントコンピュータが、ビデオチャンク内の１以上のフレームが特定のセグメントの範囲に含まれないことを決定した場合には、クライアントコンピュータは、そのセグメントの範囲に含まれないビデオチャンクをダウンロードしてもよく、および／または、ビデオチャンク内のフレームを再生してもよい。例えば、クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３７０が、クロージングクレジットセグメント内である０１：５９：３２．００に対応する第１のフレーム（フレーム３７２）を有することを決定し得るが、ビデオチャンク３７０の長さは３秒間であるので、クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３７０が、クロージングクレジットセグメントの範囲に含まれない１以上のフレームを含むことを決定し得る。従って、クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３７０をダウンロードして、ビデオチャンク３７０内のクロージングクレジットセグメント境界（０１：５９：３２．００）の後のタイムスタンプに対応するフレーム（この例ではフレーム３７６を含む）を再生し得る。
【０１０４】
５．１  ユーザ入力に基づいてセグメントをスキップする、および／またはダウンロードしない
クライアントコンピュータは、プレイヤーが特定のセグメント（例えば、オープニングクレジットセグメントおよび／またはクロージングクレジットセグメント等）を自動的にスキップすべきであることを示すユーザからの入力を受信し得る。それに応答して、クライアントコンピュータは、エピソードの、スキップされるべきであることをユーザが示した１以上のセグメントに対応するフレームをダウンロードおよび／または再生する必要はない。
【０１０５】
５．２  １以上の効果を適用する
クライアントコンピュータは、セグメントの境界において、１以上の視覚的効果および／または聴覚的効果を適用し得る。例えば、クライアントコンピュータは、クライアントコンピュータが特定のセグメントをスキップする前に、クライアントコンピュータがビデオセグメントの開始境界における、または開始境界付近のフレームを再生する際に、１以上のフレームにわたって黒へとフェードしてもよく、および／またはミュートへとフェードしてもよい。それに加えて、またはその代わりに、クライアントコンピュータは、クライアントコンピュータがセグメントの終了境界における、または終了境界付近のフレームを再生する際に、１以上のフレームにわたって黒からフェードしてもよく、および／またはミュートからフェードしてもよい。一実施形態において、クライアントコンピュータは、効果を実行する間に、スキップされるべきセグメント内の１以上のフレームを再生してもよい。
【０１０６】
クライアントコンピュータは、スキップされるべきセグメントと関連づけられた他のデータをダウンロードおよび／または処理する必要はない。例えば、クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３５０と関連づけられた音声データを要求、ダウンロード、および／または再生し得る。しかし、クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３６０と関連づけられた音声データを要求、ダウンロード、および／または再生する必要はない。クライアントビデオプレイヤーコンピュータ２６０は、ビデオチャンク３７０と関連づけられた、または、少なくともビデオチャンク３７０内のクロージングクレジットセグメントの範囲に含まれない１以上のフレームと関連づけられた音声データを要求、ダウンロード、および／または再生し得る。
【０１０７】
６．０  実装機構−ハードウェアの概観
一実施形態によれば、本明細書において記載される技術は、１以上の専用コンピューティング装置によって実装される。専用コンピューティング装置は、この技術を実行するために配線されたものであってもよく、または、この技術を実行するよう持続的にプログラムされたデジタル電子装置（例えば、１以上の特定用途向け集積回路（ＡＳＩＣ）もしくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）等）を含んでもよく、または、ファームウェア、メモリ、他のストレージ、もしくはそれらの組合せ内にあるプログラム指示に従ってこの技術を実行するようプログラムされた１以上の汎用ハードウェアプロセッサを含んでもよい。また、そのような専用コンピューティング装置は、この技術を達成するために、カスタムのハードワイヤードロジック、ＡＳＩＣ、またはＦＰＧＡを、カスタムプログラミングと組わせてもよい。専用コンピューティング装置は、この技術を実装するためのハードワイヤードロジックおよび／またはプログラムロジックを組み込んだ、デスクトップコンピュータシステム、可搬型コンピュータシステム、携帯装置、ネットワーキング装置、または他の任意の装置であり得る。
【０１０８】
例えば、図６は、本発明の実施形態が実装され得るコンピュータシステム６００を示すブロック図である。コンピュータシステム６００は、情報を通信するためのバス６０２または他の通信機構と、情報を処理するためにバス６０２に結合されたハードウェアプロセッサ６０４とを含む。ハードウェアプロセッサ６０４は、例えば、汎用マイクロプロセッサであり得る。
【０１０９】
コンピュータシステム６００は、情報およびプロセッサ６０４によって実行される指示を格納するためにバス６０２に結合された主メモリ６０６（例えば、ランダムアクセスメモリ（ＲＡＭ）または他の動的ストレージ装置等）も含む。主メモリ６０６は、プロセッサ６０４によって実行される指示の実行中に、一時変数または他の中間情報を格納するためにも用いられ得る。そのような指示は、プロセッサ６０４がアクセス可能な非一過性のストレージ媒体に格納された際、コンピュータシステム６００を、指示において指定されている処理を実行するようカスタマイズされた専用マシンにする。
【０１１０】
コンピュータシステム６００は、プロセッサ６０４のための静的な情報および指示を格納するためにバス６０２に結合された読み出し専用メモリ（ＲＯＭ）６０８または他の静的ストレージ装置を更に含む。情報および指示を格納するために、例えば、磁気ディスクまたは光ディスク等のストレージ装置６１０が設けられて、バス６０２に結合される。
【０１１１】
コンピュータシステム６００は、コンピュータのユーザに対して情報を表示するために、バス６０２を介してディスプレイ６１２（例えば、陰極線管（ＣＲＴ）等）に結合され得る。情報およびコマンド選択をプロセッサ６０４に通信するために、英数字キーおよび他のキーを含む入力装置６１４がバス６０２に結合される。別のタイプのユーザ入力装置は、方向情報およびコマンド選択をプロセッサ６０４に通信するため、およびディスプレイ６１２上におけるカーソルの動きを制御するためのカーソル制御６１６（例えば、マウス、トラックボール、またはカーソル方向キー等）である。この入力装置は、典型的には、装置が平面内の位置を指定するのを可能にする２つの軸（第１の軸（例えば、ｘ）および第２の軸（例えば、ｙ））における２自由度を有する。
【０１１２】
コンピュータシステム６００は、カスタマイズされたハードワイヤードロジック、１以上のＡＳＩＣもしくはＦＰＧＡ、ファームウェア、および／または、コンピュータシステムと組み合わせてコンピュータシステム６００を専用マシンとして機能させるまたはプログラムするプログラムロジックを用いて、本明細書において記載される技術を実装し得る。一実施形態によれば、本明細書における技術は、主メモリ６０６に収容されている１以上の指示の１以上のシーケンスをプロセッサ６０４が実行することに応答して、コンピュータシステム６００によって行われる。そのような指示は、別のストレージ媒体（例えば、ストレージ装置６１０等）から主メモリ６０６に読み込まれ得る。主メモリ６０６に収容されている指示のシーケンスの実行は、プロセッサ６０４に、本明細書において記載された処理ステップを行わせる。別の実施形態では、ソフトウェア指示の代わりに、またはそれと組み合わせて、ハードワイヤード回路が用いられ得る。
【０１１３】
本明細書において用いられる「ストレージ媒体」という用語は、マシンを特定の方法で動作させるデータおよび／または指示を格納する任意の非一過性の媒体を指す。そのようなストレージ媒体は、不揮発性媒体および／または揮発性媒体を含み得る。不揮発性媒体は、例えば、光ディスクまたは磁気ディスク（例えばストレージ装置６１０等）を含む。揮発性媒体は、動的メモリ（例えば、主メモリ６０６等）を含む。ストレージ媒体の一般的な形態としては、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープまたは他の任意の磁気データストレージ媒体、ＣＤ−ＲＯＭ、他の任意の光データストレージ媒体、穴のパターンを有する任意の物理的媒体、ＲＡＭ、ＰＲＯＭ、およびＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、他の任意のメモリチップまたはカートリッジが挙げられる。
【０１１４】
ストレージ媒体は伝送媒体とは区別されるが、伝送媒体と関連して用いられ得る。伝送媒体は、ストレージ媒体間での情報の転送に関与する。例えば、伝送媒体は、バス６０２を構成するワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体は、例えば電波データ通信および赤外線データ通信において生成されるような音響波または光波の形態もとり得る。
【０１１５】
１以上の指示の１以上のシーケンスを、実行のためにプロセッサ６０４へと搬送することには、様々な形態の媒体が関与し得る。例えば、指示は、まず、リモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送され得る。リモートコンピュータは、指示をリモートコンピュータの動的メモリにロードして、モデムを用いて電話回線を介して指示を送信し得る。コンピュータシステム６００に対してローカルなモデムは、電話回線上のデータを受信し、赤外線送信器を用いて、データを赤外線信号に変換し得る。赤外線検出器は、赤外線信号において搬送されたデータを受信し、適切な回路が、データをバス６０２上に配置し得る。バス６０２は、データを主メモリ６０６へと搬送し、そこから、プロセッサ６０４が指示を読み出して実行する。主メモリ６０６が受け取った指示は、プロセッサ６０４による実行前または実行後に、必要に応じてストレージ装置６１０に格納され得る。
【０１１６】
コンピュータシステム６００は、バス６０２に接続された通信インターフェース６１８も含む。通信インターフェース６１８は、ローカルネットワーク６２２に接続されたネットワークリンク６２０に接続する双方向データ通信を提供する。例えば、通信インターフェース６１８は、総合デジタル通信網（ＩＳＤＮ）カード、ケーブルモデム、衛星モデム、または対応するタイプの電話回線へのデータ通信接続を提供するモデムであり得る。別の例として、通信インターフェース６１８は、適合するＬＡＮへのデータ通信接続を提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクも実装され得る。そのような任意の実装において、通信インターフェース６１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【０１１７】
ネットワークリンク６２０は、典型的には、１以上のネットワークを介した他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク６２０は、ローカルネットワーク６２２を介して、ホストコンピュータ６２４への、またはインターネットサービスプロバイダ（ＩＳＰ）６２６によって運営されているデータ装置への接続を提供し得る。ＩＳＰ６２６は、現在では一般的に「インターネット」６２８と称される世界規模のパケットデータ通信網を介したデータ通信サービスを提供する。ローカルネットワーク６２２およびインターネット６２８は共に、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を用いる。コンピュータシステム６００へのおよびコンピュータシステム６００からのデジタルデータを搬送する、様々なネットワークを通る信号、並びに、ネットワークリンク６２０上および通信インターフェース６１８を通る信号は、伝送媒体の例示的な形態である。
【０１１８】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０、および通信インターフェース６１８を介して、メッセージを送信し、データ（プログラムコードを含む）を受信し得る。インターネットの例では、サーバ６３０は、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２、および通信インターフェース６１８を介して、アプリケーションプログラムのための要求されたコードを送信し得る。
【０１１９】
受信されたコードは、受信された際にプロセッサ６０４によって実行され得るか、および／または、後で実行するためにストレージ装置６１０もしくは他の不揮発性ストレージに格納され得る。
【０１２０】
上記の明細書において、本発明の実施形態を、実装毎に異なり得る多くの具体的な詳細を参照して説明した。従って、明細書および図面は、本発明を限定するものではなく、説明するものと見なされるべきである。本発明の範囲、および本発明の範囲であることが出願人によって意図されるものは、本願の特許請求の範囲が発行される特定の形態における、その後の修正（あれば）を含む、本願の特許請求の範囲の文言およびその等価の範囲のみによって示される。
【０１２１】
７．０  本開示の他の態様
上記の明細書において、本発明の実施形態を、実装毎に異なり得る多くの具体的な詳細を参照して説明した。従って、本発明であるもの、および、出願人が本発明であると意図するものは、本願の特許請求の範囲が発行される特定の形態における、その後の修正（あれば）を含む、本願の１組の請求項のみによって示される。そのような特許請求の範囲に含まれる用語について、本明細書において明示的に述べられている定義はいずれも、特許請求の範囲において用いられているそのような用語の意味を支配するものである。よって、特許請求の範囲において明示的に述べられていないいかなる限定、要素、特性、特徴、長所、または属性も、そのような特許請求の範囲を決して限定すべきではない。従って、明細書および図面は、本発明を限定するものではなく、説明するものであると見なされるべきである。
【０１２２】
本明細書に記載された主題の複数の態様を、以下の番号を付した項において述べる。
【０１２３】
１．第１のビデオおよび該第１のビデオと関連づけられた第２のビデオを格納するデータストアと、前記データストアに結合されたコンピュータプロセッサであって、前記データストアに格納されている前記第１のビデオの第１のモデルセグメント内の第１のモデルフレーム内の画素に基づいて、前記第１のビデオの第１のモデルフィンガープリントを生成し、前記データストアに格納されている前記第２のビデオ内の第１のテストフレーム内の画素に基づいて、前記第２のビデオの第１のテストフィンガープリントを生成し、前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントとの間の第１の近さの値を決定し、前記第１の近さの値に基づいて、前記第１のテストフレームが、前記第１のビデオ内の前記第１のモデルセグメントに類似している前記第２のビデオ内の第１のセグメントの第１の境界であるか否かを決定するようプログラムされたコンピュータプロセッサとを含むことを特徴とするビデオ処理システム。
【０１２４】
２．前記コンピュータプロセッサが、前記第１のテストフレームが前記第１の境界であると決定されたことに応答して、前記第１の境界が前記第２のビデオ内の前記第１のセグメントの終了境界であるか否かを決定し、肯定された場合には、前記終了境界を示す値を、前記第２のビデオを再生するよう構成されたクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、前記値が、前記ビデオプレイヤーに前記終了境界までスキップさせる、項１に記載のビデオ処理システム。
【０１２５】
３．前記コンピュータプロセッサが、前記第１のテストフレームが前記第１の境界であると決定されたことに応答して、前記第１の境界が前記第２のビデオ内の前記第１のセグメントの開始境界であるか否かを決定し、肯定された場合には、前記開始境界を示す値を、前記第２のビデオを再生するよう構成されたクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、前記値が、前記ビデオプレイヤーに、前記第２のビデオの再生を停止させ、前記第１のビデオと関連づけられた第３のビデオを要求させ、ユーザのために前記第３のビデオの再生を開始させる、項１〜２に記載のビデオ処理システム。
【０１２６】
４．前記コンピュータプロセッサが、前記データストアに格納されている前記第１のビデオの前記第１のモデルセグメント内の第２のモデルフレーム内の画素に基づいて、第２のモデルフィンガープリントを生成し、前記データストアに格納されている前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、第２のテストフィンガープリントを生成し、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定し、前記第１の境界が前記第２のビデオ内の前記第１のセグメントの開始境界であり、第２の境界が前記第２のビデオ内の前記第１のセグメントの終了境界であり、前記第２の近さの値に基づいて、前記第２のテストフレームが前記第２のビデオ内の前記第１のセグメントの前記第２の境界であるか否かを決定し、前記第１のテストフレームが前記第１の境界であり、且つ、前記第２のテストフレームが前記第２の境界であると決定されたことに応答して、前記開始境界を示す第１の値および前記終了境界を示す第２の値をクライアントコンピュータ上のビデオプレイヤーに送信するようプログラムされ、前記第１の値および前記第２の値が、前記ビデオプレイヤーが前記開始境界に到達した際に、前記ビデオプレイヤーに前記第２のビデオ内の前記終了境界までスキップさせる、項１〜３に記載のビデオ処理システム。
【０１２７】
５．前記コンピュータプロセッサが、前記第１のモデルフレーム内の第１の組のモデル画素に基づいて、第１のモデル色分布であって、該第１のモデル色分布内の各特定の色が、該特定の色が割り当てられた前記第１の組のモデル画素内の画素の数を示す値と関連づけられた、第１のモデル色分布を決定することによって、前記第１のモデルフィンガープリントを生成し、前記第１のテストフレーム内の第１の組のテスト画素に基づいて、第１のテスト色分布であって、該第１のテスト色分布内の各特定の色が、該特定の色が割り当てられた前記第１の組のテスト画素内の画素の数を示す値と関連づけられた、第１のテスト色分布を決定することによって、前記第１のテストフィンガープリントを生成するようプログラムされた、項１〜４に記載のビデオ処理システム。
【０１２８】
６．前記コンピュータプロセッサが、１組の差分値であって、該１組の差分値内の各差分値が或る色に対応しており、前記第１のテスト色分布内の前記色が割り当てられた画素の数と比較した前記第１のモデル色分布内の前記色が割り当てられた画素の数を示す、１組の差分値を決定し、前記１組の差分値内の各差分値を加算することによって総和を決定し、前記総和を前記第１の組のモデル画素内の画素の数によって除算することによって、前記第１の近さの値を決定するようプログラムされた、項１〜５に記載のビデオ処理システム。
【０１２９】
７．前記コンピュータプロセッサが、前記第１のモデル色分布を前記第１のモデルフィンガープリントとして前記データストアに格納するようプログラムされた、項１〜６に記載のビデオ処理システム。
【０１３０】
８．前記コンピュータプロセッサが、前記第１の組のモデル画素および前記第１の組のテスト画素からの第１の色空間内の各画素の１以上の第１の色成分を、前記第１の色空間とは異なる第２の色空間において定義される１以上の第２の色成分に変換し、前記第１の組のモデル画素内の各画素の前記１以上の第２の色成分に基づいて、前記第１のモデル色分布を決定し、前記第１の組のテスト画素内の各画素の前記１以上の第２の色成分に基づいて、前記第１のテスト色分布を決定するようプログラムされた、項１〜７に記載のビデオ処理システム。
【０１３１】
９．前記コンピュータプロセッサが、前記データストアに格納されている前記第１のビデオの前記第１のモデルセグメント内の、前記第１のモデルフレームとは異なる第２のモデルフレーム内の画素に基づいて、第２のモデルフィンガープリントを生成し、前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、第２のテストフィンガープリントを生成し、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定し、前記第２のビデオ内の第１のセグメントが前記第１のビデオ内の前記第１のモデルセグメントに類似しており、前記第２の近さの値に基づいて、前記第１のテストフレームが前記第２のビデオ内の前記第１のセグメントの第１の境界であるか否かを決定するようプログラムされた、項１〜８に記載のビデオ処理システム。
【０１３２】
１０．前記コンピュータプロセッサが、前記第１の近さの値および前記第２の近さの値の両方が特定の閾値より低い場合に、前記第１のフレームが前記第２のビデオ内の前記第１のセグメントの前記第１の境界であると決定するようプログラムされた、項１〜９に記載のビデオ処理システム。
【０１３３】
１１．前記コンピュータプロセッサが、前記第１のテストフレーム内に顔があるか否かを検出し、前記第１のフレーム内において顔が検出されたと決定されたことに応答して、クライアントコンピュータ上のビデオプレイヤーからの、前記第１のテストフレームにおいて開始する前記第１のセグメントを前記ビデオプレイヤーがスキップしてもよいことを示すデータを保留するようプログラムされた、項１〜１０に記載のビデオ処理システム。
【０１３４】
１２．前記第１のモデルフレームが、前記第１のテストフレームと同じ数の画素を有する、項１〜１１に記載のビデオ処理システム。
【０１３５】
１３．実行された際に、１以上のプロセッサに、項１〜１２に記載されている特徴のうちの任意のものを行わせる指示の１以上のシーケンスを格納していることを特徴とする非一過性のコンピュータ可読データストレージ媒体。
【０１３６】
１４．１以上のプロセッサ上において実装された際に、項１〜１２に記載されている特徴のうちの任意のものを実行する指示を含むことを特徴とするコンピュータプログラム製品。
【０１３７】
１５．１以上のプロセッサ上において実装された際に、項１〜１２に記載されている特徴のうちの任意のものを実行することを特徴とする方法。
【０１３８】
１６．１以上のコンピューティング装置によって行われる、クライアントコンピュータ上で再生するためにサーバコンピュータからのビデオを要求する方法であって、第２のビデオタイトルと関連づけられ、該第２のビデオタイトルと共通の１以上のビデオセグメントを含む第１のビデオタイトルを選択するユーザからの入力を受信する工程と、前記サーバコンピュータからの、前記第１のビデオタイトルと関連づけられた、スキップされてよい１以上の共通のセグメントを示す１組のメタデータを要求する工程と、前記第１のビデオタイトルと関連づけられた前記メタデータを受信し、それに応答して、前記１以上の共通のビデオセグメント内に含まれるフレームを含む１以上の第２のビデオチャンクを要求せずに、前記第１のビデオタイトルと関連づけられた１以上の第１のビデオチャンクを要求する工程とを含むことを特徴とする方法。
【０１３９】
１７．前記１以上の第２のビデオチャンクと関連づけられた第２の組の音声データを要求せずに、前記１以上の第１のビデオチャンクと関連づけられた第１の組の音声データを要求する工程を含む、項１６記載の方法。
【０１４０】
１８．前記第１のビデオタイトルと関連づけられたビデオおよび音声を再生する工程と、前記スキップされてよい１以上の共通のセグメントの各境界において１以上の視覚的効果および１以上の聴覚的効果を適用する工程とを含む、項１６〜１７記載の方法。
【０１４１】
１９．実行された際に、１以上のプロセッサに、項１６〜１８に記載されている方法のうちの任意のものを行わせる指示の１以上のシーケンスを格納していることを特徴とする非一過性のコンピュータ可読データストレージ媒体。
【０１４２】
２０．１以上のプロセッサ上において実装された際に、項１６〜１８に記載されている方法のうちの任意のものを実行する指示を含むことを特徴とするコンピュータプログラム製品。
【０１４３】
２１．項１６〜１８に記載されている方法のうちの任意のものを行うよう構成されたプロセッサを有することを特徴とするコンピューティング装置。
【０１４４】
２２．メモリと、前記メモリに結合された１以上のプロセッサと、前記１以上のプロセッサおよび前記メモリに結合されたフィンガープリント生成ロジックであって、第１のビデオのモデルセグメント内の第１のモデルフレーム内の画素に基づいて、前記第１のビデオの第１のモデルフィンガープリントを生成し、第１のテストフレーム内の画素に基づいて、第２のビデオの第１のテストフィンガープリントを生成するよう構成されたフィンガープリント生成ロジックと、前記メモリおよび前記１以上のプロセッサに結合されたフィンガープリント比較ロジックであって、前記第１のモデルフィンガープリントと前記第１のテストフィンガープリントとの間の第１の近さの値を決定するよう構成されたフィンガープリント比較ロジックと、前記メモリおよび前記１以上のプロセッサに結合されたセグメント検出ロジックであって、前記第１の近さの値に基づいて、前記第１のテストフレームが前記第２のビデオ内のセグメントの第１の境界であることを決定するよう構成されたセグメント検出ロジックとを含むことを特徴とする、デジタルビデオ配布システム。
【０１４５】
２３．前記フィンガープリント生成ロジックが、前記第１のビデオの前記モデルセグメント内の第２のモデルフレーム内の画素に基づいて、前記第１のビデオの第２のモデルフィンガープリントを生成し、前記第２のビデオ内の第２のテストフレーム内の画素に基づいて、前記第２のビデオの第２のテストフィンガープリントを生成するよう構成され、前記フィンガープリント比較ロジックが、前記第２のモデルフィンガープリントと前記第２のテストフィンガープリントとの間の第２の近さの値を決定するよう構成され、前記セグメント検出ロジックが、前記第２の近さの値に基づいて、前記第２のテストフレームが前記第２のビデオ内の前記セグメントの第２の境界であることを決定するよう構成された、項２２記載のデジタルビデオ配布システム。
【０１４６】
２４．前記セグメント検出ロジックに結合されたストレージを含み、前記セグメント検出ロジックが、前記ストレージ内にある前記第２のビデオと関連づけられた１組のメタデータであって、前記第１のテストフレームが前記第２のビデオ内の前記セグメントの前記第１の境界であり、且つ、前記第２のテストフレームが前記第２のビデオ内の前記セグメントの前記第２の境界であることを示すメタデータを格納するよう構成された、項２２〜２３記載のデジタルビデオ配布システム。
【０１４７】
２５．前記ストレージに結合されたビデオカタログサーバコンピュータを含み、該ビデオカタログサーバコンピュータが、クライアントビデオプレイヤーコンピュータからの、前記第２のビデオと関連づけられたメタデータに対する要求を受信し、それに応答して、前記第２のビデオと関連づけられた前記１組のメタデータを読み出し、前記１組のメタデータを前記クライアントビデオプレイヤーコンピュータに送信するよう構成された、項２２〜２４記載のデジタルビデオ配布システム。
【０１４８】
２６．前記クライアントビデオプレイヤーコンピュータが、１以上のコンピュータネットワークを介して前記ビデオカタログサーバコンピュータに結合されており、前記１組のメタデータにおいて識別されている前記第２のビデオ内の前記セグメントの少なくとも一部を要求、ダウンロード、または再生せずに、前記第２のビデオを再生するよう構成された、項２２〜２５記載のデジタルビデオ配布システム。
【０１４９】
２７．実行された際に、１以上のプロセッサに、項２２〜２５に記載されている特徴のうちの任意のものを行わせる指示の１以上のシーケンスを格納していることを特徴とする非一過性のコンピュータ可読データストレージ媒体。
【０１５０】
２８．１以上のプロセッサ上において実装された際に、項２２〜２５に記載されている特徴のうちの任意のものを実行する指示を含むことを特徴とするコンピュータプログラム製品。
【０１５１】
２９．１以上のプロセッサ上において実装された際に、項２２〜２５に記載されている特徴のうちの任意のものを実行することを特徴とする方法。
【符号の説明】
【０１５２】
２００  デジタルビデオ配布システム
２１０  ビデオ処理コンピュータ
２１２  ビデオ処理ロジック
２１３  フィンガープリント生成ロジック
２１４  フィンガープリント比較ロジック
２１５  セグメント検出ロジック
２２０  コンテンツ配信ネットワーク
２３０  ビデオデータストア
２４０  ビデオサーバコンピュータ
２５０  ビデオカタログサーバコンピュータ
２５５  メタデータストア
２６０  クライアントビデオプレイヤーコンピュータ
６００  コンピュータシステム
【図１Ａ】
0006564464.tif 000003
【図１Ｂ】
0006564464.tif 000004
【図１Ｃ】
0006564464.tif 000005
【図１Ｄ】
0006564464.tif 000006
【図１Ｅ】
0006564464.tif 000007
【図１Ｆ】
0006564464.tif 000008
【図２】
0006564464.tif 000009
【図３】
0006564464.tif 000010
【図４】
0006564464.tif 000011
【図５】
0006564464.tif 000012
【図６】
0006564464.tif 000013