(57)【要約】      （修正有）【課題】複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶための方法を提供する。【解決手段】ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定する。ビデオシーケンスの中のフレームの第１のセットは、第１のサンプリングパターンを用いてサンプリングされる。フレームは、第１のサンプリングパターンに従って、ビデオシーケンス全体にわたって低頻度でサンプリングされる。候補フレームが、サンプリングされたフレームから画質に基づいて決定される。決定された候補フレームの近くの狭い範囲のビデオシーケンス中のフレームの１以上を含むフレームの第２のセットが、第２のサンプリングパターンに応じて決定される。サンプリングされたフレームから画質に基づいてビデオフレームの少なくとも１つが選択される。【選択図】図４
2018056990.tif 000002
【特許請求の範囲】
【請求項１】
複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶための方法であって、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定し、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定し、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングし、
サンプリングされたフレームから画質に基づいて候補フレームを決定し、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲のビデオシーケンス中のフレームの１以上を含む前記フレームの第２のセットをサンプリングし、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択することを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、
更なる解析のために残された時間があるか判定することをさらに含むことを特徴とする方法。
【請求項３】
請求項１に記載の方法であって、
前記第２のサンプリングパターンは、前記候補フレームと比較した前記ビデオシーケンスの中の近くのフレームの類似度に基づくことを特徴とする方法。
【請求項４】
請求項１に記載の方法であって、
前記画質は、顔認識、表情認識、瞬き認識、注視方向、先鋭度、露光、彩度、型通りのシーンの存在、特定の人物の識別、ペットの識別、および関係の識別の少なくとも１つに基づいて決定されることを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、
前記ビデオシーケンスを静的な部分と動的な部分とに分割することをさらに含む方法。
【請求項６】
請求項５に記載の方法であって、フレームのサンプリングは、前記ビデオシーケンスの動的な部分において頻度が高く、前記ビデオシーケンスの静的な部分において頻度が低いことを特徴とする方法。
【請求項７】
請求項５に記載の方法であって、
前記静的な部分と動的な部分の決定は、或る時間間隔を隔てたフレーム間の色差の量に基づくことを特徴とする方法。
【請求項８】
請求項１に記載の方法であって、
前記第１のサンプリングパターンはＩフレームのサンプリングを含むことを特徴とする方法。
【請求項９】
請求項１に記載の方法であって、
サンプリングされた前記フレームから、各ビデオ部分について決定されたフレーム数に応じた数のビデオフレームを、前記ビデオ部分の長さ及びタイプの少なくとも一方に基づいて選択することを更に含むことを特徴とする方法。
【請求項１０】
請求項２に記載の方法であって、
更なる解析のための時間がある場合、
サンプリングされた前記フレームから前記画質に基づいて更なる候補フレームを決定し、
更なるサンプリングパターンを用いて前記ビデオシーケンスをサンプリングすることであって、前記更なるサンプリングパターンは前記更なる候補フレーム近隣の狭い範囲で１以上のフレームをサンプリングすることを更に含むことを特徴とする方法。
【請求項１１】
複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶための装置であって、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定する手段と、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定する手段と、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングする手段と、
サンプリングされたフレームから画質に基づいて候補フレームを決定する手段と、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲のビデオシーケンス中のフレームの１以上を含む前記フレームの第２のセットをサンプリングする手段と、
サンプリングされた前記フレームから画質に基づいてビデオフレームの少なくとも１つを選択する手段とを有することを特徴とする装置。
【請求項１２】
複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶシステムであって、
データ及びコンピュータプログラムを含むメモリと、
前記コンピュータプログラムを実行するために前記メモリと結合されたプロセッサとを含み、前記コンピュータプログラムは、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定し、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定し、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングし、
サンプリングされたフレームから画質に基づいて候補フレームを決定し、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲のビデオシーケンス中のフレームの１以上を含む前記フレームの第２のセットをサンプリングし、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択するための命令を含むことを特徴とするシステム。
【請求項１３】
複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶためのプログラムであって、、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定するコードと、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定するコードと、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングするコードと、
サンプリングされたフレームから画質に基づいて候補フレームを決定するコードと、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲のビデオシーケンス中のフレームの１以上を含む前記フレームの第２のセットをサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいてビデオフレームの少なくとも１つを選択するコードとを含むことを特徴とするプログラム。
【請求項１４】
複数のビデオフレームを含むビデオシーケンスから少なくとも１つのビデオフレームを選ぶためのプログラムであって、
第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングされるコードと、
サンプリングされた前記フレームから画質に基づいて候補フレームを決定するコードと、
第２のサンプリングパターンに応じて、前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の１以上の前記フレームを含む前記フレームの第２のセットをサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択するコードとを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に画像処理および、特にビデオシーケンスのビデオフレームを選ぶための方法、システム、および装置と関連する。本発明はまた、ビデオシーケンスのビデオフレームを選ぶためのコンピュータプログラムを記録したコンピュータ読取り可能媒体を含むコンピュータプログラム製品と関連する。
【背景技術】
【０００２】
ビデオは、シーンまたは展開するイベントを捕らえる効果的な方法である。人はしばしば誕生会、結婚式、旅行、およびスポーツイベントのためにビデオシーケンスを記録する。静止画像と違って、ビデオは、特定の自然な表情および人間の交流（例えば会話、微笑み合い、キス、抱擁、握手）などの、展開していく非構造化イベントを記録する利点を持っている。静止画像が使われるのと同じ方法でディスプレイのために又は出版された本の内容として使用するために、ビデオフレームのシーケンスから個々のフレームを選ぶことが多くの場合に望ましい。
【０００３】
携帯電話および他の消費者指向のカメラデバイスの需要とアクセスしやすさを増大させることによって、より多くのビデオデータが撮影され、保存されている。印刷またはディスプレイのための選択の候補であるビデオシーケンスのフレームの数は多いため、ビデオは問題になる。１０分のビデオは１万８０００フレームを持つことがある。
【０００４】
フレーム選択のためのよくある状況は、ユーザが、多数のビデオシーケンスを選び、印刷またはディスプレイのためのフレームを選択するよう、選択システムに、選択されたビデオシーケンスを処理することを要求する、というものである。一例は、ユーザが特定の年の内に記録したビデオシーケンスのセットを提供し、選ばれたビデオシーケンスから選ばれたフレームで作成されたその年のフォトブックを要求することである。ユーザは、選択システムが直ちに動作することを期待している。ユーザは、例えば、１時間の長さのビデオシーケンスのセットを選択システムプロセスが１０分未満で処理すると期待するかもしれない。その様な期待は、処理システムがパーソナルコンピュータまたはモバイル機器である能性がある場合には難題である。
【発明の概要】
【０００５】
本発明の目的は、既存の構成の少なくとも一つの不利益を実質的に克服するか、少なくとも改善することである。
【０００６】
本開示の一側面によると、複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶ方法が提供され、前記方法は、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定し、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定し、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングし、
サンプリングされた前記フレームから画質に基づいて候補フレームを決定し、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の前記フレームの１以上を含む前記フレームの第２のセットをサンプリングし、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択する。
【０００７】
本開示の他の一側面によると、複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶ装置が提供され、前記装置は、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定する手段と、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定する手段と、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングする手段と、
サンプリングされた前記フレームから画質に基づいて候補フレームを決定する手段と、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の前記フレームの１以上を含む前記フレームの第２のセットをサンプリングする手段と、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択する手段とを有する。
【０００８】
本開示のさらに他の一側面によると、複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶシステムが提供され、前記システムは、
データ及びコンピュータプログラムを含むメモリと、
前記コンピュータプログラムを実行するために前記メモリと結合されたプロセッサとを含み、前記コンピュータプログラムは、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定し、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定し、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングし、
サンプリングされたフレームから画質に基づいて候補フレームを決定し、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の前記フレームの１以上を含む前記フレームの第２のセットをサンプリングし、
サンプリングされた前記フレームから画質に基づいてビデオフレームの少なくとも１つを選択する命令を有する。
【０００９】
本開示のさらに他の一側面によると、複数のビデオフレームを含むビデオシーケンスの少なくとも１つのビデオフレームを選ぶプログラムが提供され、前記プログラムは、
前記ビデオシーケンスの長さと実行デバイスの処理能力とに基づいて解析時間を決定するコードと、
決定された前記解析時間に基づいて第１のサンプリングパターンを決定するコードと、
前記第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいて候補フレームを決定するコードと、
第２のサンプリングパターンに応じて、決定された前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の前記フレームの１以上を含む前記フレームの第２のセットをサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択するコードとを含む。
【００１０】
本開示のさらに他の一側面によると、複数のビデオフレームを含むビデオシーケンスから少なくとも１つのビデオフレームを選ぶプログラムが提供され、前記プログラムは、
第１のサンプリングパターンを使って前記ビデオシーケンスの前記フレームの第１のセットを、前記第１のサンプリングパターンに従って前記ビデオシーケンス全体にわたって低頻度でサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいて候補フレームを決定するコードと、
第２のサンプリングパターンに応じて、前記候補フレームの近くの狭い範囲の前記ビデオシーケンス中の１以上の前記フレームを含む前記フレームの第２のセットをサンプリングするコードと、
サンプリングされた前記フレームから画質に基づいて前記ビデオフレームの少なくとも１つを選択するコードとを有する。
他の側面もまた開示される。
【図面の簡単な説明】
【００１１】
本発明の１つ以上の実施形態が、以下の図を参照してこれから説明されるであろう。
【図１】、
【図２】説明された装置が実施され得る汎用コンピュータの概略ブロック図を形成する。
【図３】入力されたビデオシーケンスのセットの少なくとも１つのビデオフレームを選ぶ方法を示す概略フローダイアグラムである。
【図４】ビデオシーケンスの少なくとも１つのビデオフレームを選ぶ方法を示す概略フローダイアグラムである。
【図５】図４の方法において用いられる初期のビデオ処理およびサンプリング戦略を決定する方法を示す概略フローダイアグラムである。
【図６】図４の方法において用いられるフレームのリストを決定し、品質解析を実行する方法を示す概略フローダイアグラムである。
【図７】図４の方法において用いられる候補フレームを決定する方法を示す概略フローダイアグラムである。
【図８】図４の方法において用いられるサンプルフレームを解析する方法を示す概略フローダイアグラムである。
【図９】図４の方法において用いられるフレームを選ぶ方法を示す概略フローダイアグラムである。
【図１０Ａ】３８の復号済みフレームを２つのセグメントに分けるシーケンスを示す。
【図１０Ｂ】潜在的候補フレームとみなされる十分な品質を有する３つのサンプルフレームを示す。
【図１０Ｃ】解析されるサンプルフレームの数が４つに設定された例を示す。
【発明を実施するための形態】
【００１２】
添付図面のいずれか１つ以上において、同じ参照番号を有するステップおよび/または機構に言及する場合、それらのステップおよび/または機構は本明細書の目的のために、反対の意図が現れない限り同じ機能または動作を有する。
【００１３】
手動でビデオシーケンスのフレームを選ぶことはコレクションから画像を選ぶことよりも長い時間が掛かる。完全自動選択方法が、完全な選択をするために必要である。代わりに、部分的に自動的な選択方法が、初期の選択をするため、または可能性のある選択のフィルタをかけられたセットを少なくとも提供するために必要とされることもある。ビデオシーケンスの望ましいフレームを選ぶためにビデオシーケンスを解析することは処理集中的なタスクである。ビデオシーケンスの望ましいフレームを選ぶための、ビデオシーケンスを解析する高速で有効な方法が必要とされている。
【００１４】
複数のビデオフレームを含むビデオシーケンスの望ましいビデオフレームを選ぶための方法は以下で説明される。この方法は処理能力が制限されたパーソナルコンピュータ或いはモバイル機器のようなシステムに実装されてもよい。これらのシステムは、フレーム選択のために直ちにビデオシーケンスのすべてのフレームを処理することが可能ではない。この説明された方法は、印刷または表示のためのフレームの効率的な選択を可能にする処理のために潜在的に望ましいビデオシーケンスのビデオフレームのサブセットを決定する。
【００１５】
図１および図２は、上述した様々な構成を実行できる汎用コンピュータシステム１００を示す。
【００１６】
図１において見られるように、コンピュータシステム１００は、コンピュータモジュール１０１、キーボード１０２、マウスポインタデバイス１０３、スキャナ１２６、カメラ１２７、およびマイクロホン１８０などの入力装置、およびプリンタ１１５、表示装置１１４、および拡声器１１７を含む出力装置、を含む。外部変復調装置（モデム）トランシーバデバイス１１６は、接続１２１経由で通信ネットワーク１２０に（から）通信するためにコンピュータモジュール１０１によって使用することができる。通信ネットワーク１２０は、インターネット、セルラ通信ネットワーク、またはプライベートＷＡＮなどの広域ネットワーク（ＷＡＮ）であってよい。接続１２１が電話回線である場合、モデム１１６は伝統的な「ダイヤルアップ」モデムであっよい。代わりに、接続１２１が高容量（例えばケーブル）接続である場合、モデム１１６はブロードバンドモデムであってよい。無線モデムはまた通信ネットワーク１２０との無線接続のために使うことができる。
【００１７】
コンピュータモジュール１０１は一般に少なくとも１つプロセッサユニット１０５とメモリユニット１０６とを含む。例えば、メモリユニット１０６は半導体ランダムアクセスメモリ（ＲＡＭ）と半導体読出し専用メモリ（ＲＯＭ）を有することがある。コンピュータモジュール１０１はまた、ビデオディスプレイ１１４と拡声器１１７とマイクロホン１８０とを結合するオーディオビデオインターフェイス１０７と、キーボード１０２とマウス１０３とスキャナ１２６とカメラ１２７とオプションでジョイスティックまたは他のヒューマンインターフェイスデバイス（不図示）とを接続する入出力インターフェイス１１３と、外部変復調装置１１６とプリンタ１１５のためのインターフェイス１０８と、を含む多数の入出力（Ｉ／Ｏ）インターフェイスを含む。いくつかの実装において、モデム１１６はコンピュータモジュール１０１の内部、例えばインターフェイス１０８の内部に含まれていてもよい。コンピュータモジュール１０１はまた、ローカルエリアネットワーク（ＬＡＮ）として知られているローカルエリア通信ネットワーク１２２にコネクション１２３経由でコンピュータシステム１００が接続できるローカルネットワークインターフェイス１１１を有する。図１において説明されるように、ローカル通信ネットワーク１２２はまた、広域ネットワーク１２０にコネクション１２４経由で接続してもよい（それは一般にいわゆる「ファイアウォール」デバイスまたは同様な機能性のデバイスを含むであろう）。ローカルネットワークインターフェイス１１１は、イーサネット回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線装置、またはＩＥＥＥ８０２．１１無線装置を含んでもよい。しかし、たくさんの他のタイプのインターフェイスがインターフェイス１１１のために実施されてもよい。
【００１８】
コンピュータモジュール１０１はまた、イメージの作成を早めるために、メモリ（例えばメモリ１０６）を操作し、変更するためのグラフィクスプロセッサ１７１を含む。プロセッサ１７４はコネクション１７２を用いてバス１０４に接続される。
【００１９】
入出力インターフェイス１０８および１１３は、シリアルおよびパラレル接続性のどちらかまたは両方を与えることができ、一般に前者はユニバーサルシリアルバス（ＵＳＢ）標準に従って実施され、対応するＵＳＢコネクタ（不図示）を有する。記憶デバイス１０９が提供され、一般に、ハードディスクドライブ（ＨＤＤ）１１０を含む。フロッピーディスクドライブおよび磁気テープドライブ（不図示）などの他の記憶装置もまた使われてよい。光ディスクドライブ１１２は、一般に、不揮発性のデータソースとして作動するために提供される。例えば、たとえば、光ディスク（例えばＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイディスク（登録商標））、ＵＳＢ−ＲＡＭ、携帯型外付けハードドライブ、およびフロッピィディスクなどの携帯型メモリ装置は、システム１００への適切なデータソースとして使うことができる。
【００２０】
コンピュータモジュール１０１の構成部品１０５〜１１３は一般的に、相互接続されたバス１０４を介して、当業者に知られた、コンピュータシステム１００の動作の従来のモードをもたらすやり方で通信する。例えば、プロセッサ１０５はコネクション１１８を用いてシステムバス１０４に接続される。同様に、メモリ１０６と光ディスクドライブ１１２はコネクション１１９によってシステムバス１０４に接続される。説明した装置を実施できるコンピュータの例はＩＢＭ−ＰＣと互換機、サンのＳｐａｒｃｓｔａｔｉｏｎｓ、アップルのＭａｃ（登録商標）、または同様なコンピュータシステムを含む。
【００２１】
説明する方法は、コンピュータシステム１００を用いて実施でき、説明する図３〜図１０のプロセスが、コンピュータシステム１００内部で実行可能な１つ以上のソフトウェアアプリケーションプログラム１３３として実施できる。特に、説明する方法のステップは、コンピュータシステム１００内で実行されるソフトウェア１３３の命令１３１（図２参照）により達成される。ソフトウェア命令１３１は、それぞれが１つ以上の特定のタスクを実行するための１つ以上のコードモジュールとして形成できる。ソフトウェアはまた２つの別個の部分に分割されてもよく、そこにおいて、第１の部分および対応するコードモジュールは説明した方法を実行し、第２の部分および対応するコードモジュールは第１の部分とユーザとの間のユーザインターフェイスを管理する。
【００２２】
ソフトウェアは、例えば以下で説明されるメモリデバイスを含むコンピュータ読取り可能媒体の中に記憶されてもよい。ソフトウェア１３３は一般にＨＤＤ１１０またはメモリ１０６の中に記憶される。ソフトウェアはコンピュータ読取り可能媒体からコンピュータシステム１００の中にロードされ、それからコンピュータシステム１００によって実行される。従って、例えばソフトウェア１３３は、光ディスクドライブ１１２によって読まれる光学的に読取り可能のディスク記憶媒体（例えばＣＤ−ＲＯＭ）１２５上に記憶できる。コンピュータ読取り可能媒体に記録されたそのようなソフトウェアまたはコンピュータプログラムを有するコンピュータ読取り可能媒体はコンピュータプログラム製品である。コンピュータシステム１００におけるコンピュータプログラム製品の使用は、好適には、説明する方法を実施するための有利な装置をもたらす。
【００２３】
場合によっては、アプリケーションプログラム１３３は１つ以上ＣＤ−ＲＯＭ１２５上で符号化されてユーザに供給され、対応するドライブ１１２経由で読まれてよいし、代わりに、ネットワーク１２０または１２２からユーザによって読まれてもよい。さらにまた、ソフトウェアはまた、他のコンピュータ読取り可能媒体からコンピュータシステム１００中にロードされてもよい。コンピュータ読取り可能記憶媒体は、実行および／または処理のために、記録された命令および／またはデータをコンピュータシステム１００に提供する任意の非一時的有形記憶媒体を参照する。そのような記憶媒体の例は、フロッピィディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、ブルーレイ（登録商標）ディスク、ハードディスクドライブ、ＲＯＭまたは集積回路、ＵＳＢメモリ、光磁気ディスク、またはＰＣＭＣＩＡカードなどのコンピュータ読取可能カードを含み、それらのデバイスがコンピュータモジュール１０１の内部または外部であるかどうかにかかわらない。コンピュータモジュール１０１へのソフトウェア、アプリケーションプログラム、命令および／またはデータの提供にも関与できる一時的または非有形的コンピュータ読取可能転送媒体の例は、無線または赤外線伝送チャネルのほかに、他のコンピュータまたはネットワークデバイスへのネットワーク接続、および、電子メール送信およびウェブサイトなどに記録された情報を含むインターネットまたはイントラネットも含む。
【００２４】
ディスプレイ１１４上に描画されるか又は別のやり方で表現される１つ以上のグラフィカルユーザインターフェイス（ＧＵＩ）を実装するために、上述したアプリケーションプログラム１３３の第２の部分および対応するコードモジュールを実行することができる。一般にキーボード１０２とマウス１０３の操作を通して、コンピュータシステム１００のユーザおよびアプリケーションは、ＧＵＩと関連づけられたアプリケーションにコントロールコマンドを提供するために、および／または入力をするために、機能的に適応可能な方法でインターフェイスを操作することができる。拡声器１１７を用いて出力される音声プロンプトおよびマイクロホン１８０を用いて入力されるユーザ音声コマンドを利用しているオーディオインターフェイスなどの機能的に適応可能なユーザインターフェイスの他の形も実装できる。
【００２５】
図２はプロセッサ１０５と「メモリ」１３４の詳細概略ブロック図である。メモリ１３４は、図１中のコンピュータモジュール１０１によってアクセスできるすべてのメモリモジュール（ＨＤＤ１０９と半導体メモリ１０６とを含む）の論理的な集合体を表している。
【００２６】
コンピュータモジュール１０１が最初パワーアップされるときに、パワーオンセルフテスト（ＰＯＳＴ）プログラム１５０が実行される。ＰＯＳＴプログラム１５０は一般に図１の半導体メモリ１０６のＲＯＭ１４９中に記憶される。ソフトウェアを記憶しているＲＯＭ１４９などのハードウェアデバイスは時にファームウェアと称される。適切な機能を保証するために、ＰＯＳＴプログラム１５０はコンピュータモジュール１０１中でハードウェアを検査し、一般に、プロセッサ１０５、メモリ１３４（１０９、１０６）、および基本入出力システムソフトウェア（ＢＩＯＳ）モジュール１５１（これも一般にＲＯＭ１４９に記憶される）を、正しい動作のためにチェックする。ＰＯＳＴプログラム１５０が首尾よく動いたら、ＢＩＯＳ１５１は図１のハードディスクドライブ１１０を起動させる。ハードディスクドライブ１１０の起動は、ハードディスクドライブ１１０上に常駐するブートストラップローダプログラム１５２をプロセッサ１０５を用いて実行させる。これによりＲＡＭメモリ１０６にオペレーティングシステム１５３をロードし、そこでオペレーティングシステム１５３が動作を開始する。オペレーティングシステム１５３は、プロセッサ管理、メモリ管理、デバイス管理、記憶管理、ソフトウェアアプリケーションインターフェイス、および一般的なユーザインターフェイスを含む様々な高レベル機能を果たすためにプロセッサ１０５によって実行可能なシステムレベルアプリケーションである。
【００２７】
コンピュータモジュール１０１上で実行される各プロセスまたはアプリケーションが、別のプロセスに割り当てられたメモリと衝突することなく実行されるための十分なメモリを有することを保証するために、オペレーティングシステム１５３はメモリ１３４（１０９、１０６）を管理する。さらに、各プロセスが効果的に実行できるように、図１のシステム１００において使用可能なさまざまなタイプのメモリが適切に使われなければならない。それによって、統合されたメモリ１３４は、メモリの特定のセグメントがどのように割り当てられるかを示すことを意図されておらず（違った形で述べられない限り）、むしろコンピュータシステム１００によってアクセス可能なメモリの全体図を提供することを意図している。
【００２８】
図２に示すように、プロセッサ１０５は、制御ユニット１３９、算術論理演算ユニット（ＡＬＵ）１４０、および時にキャッシュメモリと呼ばれるローカルまたは内部メモリ１４８を含む多くの機能モジュールを含む。キャッシュメモリ１４８は一般にレジスタ部の中に多くの記憶レジスタ１４４−１４６を含む。１つ以上の内部バス１４１は機能的にこれらの機能モジュールを相互接続する。コネクション１１８を用いてシステムバス１０４経由で外部デバイスと通信するために、プロセッサ１０５は一般に１つ以上インターフェイス１４２も持っている。メモリ１３４はコネクション１１９を用いてバス１０４に接続される。
【００２９】
アプリケーションプログラム１３３は、条件付き分岐およびループ命令を含み得る命令シーケンス１３１を含む。プログラム１３３は、プログラム１３３の実行において用いられるデータ１３２も含むことがある。命令１３１とデータ１３２は記憶場所１２８、１２９、１３０、および１３５、１３６、１３７にそれぞれ記憶される。命令１３１の相対的なサイズと記憶場所１２８−１３０に依存して、記憶場所１３０内に示された命令によって示されるように、個別の命令が１つの記憶場所に記憶されてもよい。代わりに、命令は、記憶場所１２８と１２９において示された命令セグメントによって示されるように、それぞれが別個の記憶場所に記憶される多くの部分に分割されてもよい。
【００３０】
一般に、プロセッサ１０５は、その中で実行される命令セットを与えられる。プロセッサ１０５はその後の入力を待ち、その入力に対してプロセッサ１０５が別の命令セットを実行することによって反応する。各入力は、多くのソースのうちの１以上から提供され、入力デバイス１０２、１０３のうちの１以上によって生成されるデータ、ネットワーク１２０、１０２の１つを超えて外部ソースから受信したデータ、記憶デバイス１０６、１０９の１つから検索したデータ、または、対応するリーダ１１２に挿入された記憶媒体１２５から検索されたデータを含み、すべて図１に描かれている。命令セットの実行は場合によってはデータの出力を生じることがある。実行はまた、メモリ１３４にデータまたは変数を記憶することを伴うことがある。
【００３１】
開示された装置は入力変数１５４を使用し、それは対応する記憶場所１５５、１５６、１５７内のメモリ１３４に記憶される。開示された装置は、出力変数１６１を生み出す。それは、対応する記憶場所１６２、１６３、１６４内のメモリ１３４に記憶される。中間変数１５８は記憶場所１５９、１６０、１６６、および１６７内に記憶できる。
【００３２】
図２のプロセッサ１０５を参照して、プログラム１３３を構成している命令セットの中で、すべての命令に対して「フェッチ−デコード−実行」サイクルを遂行するために必要なマイクロオペレーションのシーケンスを遂行するために、レジスタ１４４、１４５、１４６、算術論理演算ユニット（ＡＬＵ）１４０、および制御ユニット１３９は協働する。各フェッチ−デコード−実行サイクルは以下を含む：
記憶場所１２８、１２９、１３０から命令１３１をフェッチするか或いは読むフェッチオペレーション、
制御ユニット１３９が、どの命令がフェッチされたを判定するデコードオペレーション、
制御ユニット１３９および／またはＡＬＵ１４０が命令を実行する実行オペレーション。
【００３３】
その後、次の命令のためのさらなるフェッチ−デコード−実行サイクルが実行されてもよい。同様に、制御ユニット１３９が記憶場所１３２に値を記憶するかまたは書き込む記憶サイクルが実行されてもよい。
【００３４】
図１及び図２のプロセスの中の各ステップまたはサブプロセスはプログラム１３３の１つ以上のセグメントと関連づけられ、プログラム１３３の上記セグメントに関する命令セットの中のすべての命令のためのフェッチ−デコード−実行サイクルを遂行するために協働しているプロセッサ１０５内のレジスタ部１４４、１４５、１４７、ＡＬＵ１４０、および制御ユニット１３９によって実行される。
【００３５】
説明する方法は代わりに、携帯電話、携帯型メディアプレーヤ、またはデジタルカメラなど汎用電子装置上で実行されてもよい（その中では処理リソースは制限される）。
【００３６】
説明する方法は代わりに、説明する方法の機能またはサブ機能を実行している１つ以上の集積回路などの専用のハードウェアで実施されてもよい。そのような専用のハードウェアは、グラフィックプロセッサ、信号処理プロセッサまたは、１つ以上のマイクロプロセッサおよび結合したメモリを含んでもよい。
【００３７】
図３は、入力された１セットのビデオシーケンスの少なくとも１つのビデオフレームを選ぶ方法３００を示すフローダイアグラムである。方法３００は自動選択方法と称されてもよい。
【００３８】
方法３００のひとつのアレンジメントにおいて、時間バジェットが、入力セットの中のビデオシーケンスのそれぞれを処理するために決定される。時間バジェットはビデオシーケンスの解析のための時間を表している。時間バジェットは、ビデオシーケンスの長さとコンピュータモジュール１０１などの実行デバイスの処理能力とに基づいて決定されてもよい。時間バジェットを割り当てることは、処理が直ちに実行されて、方法３００の応答性がよいことを保証する。
【００３９】
方法３００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実行できる。
【００４０】
方法３００は決定ステップ３１０で始まり、そこでは方法３００の処理ステップの実行におけるコンピュータシステム１００の性能特性が、プロセッサ１０５の実行の下で決定される。例えば、システム１００中のグラフィクスプロセッサ１７１の存在をステップ３１０で検出してもよい。そのようなグラフィクスプロセッサ１７１はビデオシーケンスのデコーディングと品質解析の両方の速度を上げる。プロセッサ１０５のタイプだけでなくグラフィクスプロセッサ１７１の可用性およびそのタイプに関する知識により、特定の時間バジェット内でデコードされ、解析され得るサンプルフレームの数の計算ができる。
【００４１】
代わりのアレンジメントにおいては、ステップ３１０は必要なく、性能特性はオペレーティングシステム１５３によって固定されている。例えば、いくつかのモバイル機器は固定された動作環境を持っている。
【００４２】
ステップ３１０には決定ステップ３２０が続き、そこでは、プロセッサ１０５の実行の下で、デフォルトの処理時間バジェットが、入力された１セットのビデオシーケンスの個々のビデオシーケンスのために決定される。
【００４３】
用語デコーディングは、圧縮されたビデオファイルからビデオフレーム（例えばジョイントフォトグラフィックエキスパートグループイメージ（ＪＰＥＧ））のピクセル表現を生み出すことを指す。デコーディングによるシステム１００への要求は高い。
【００４４】
用語品質解析は、着目する画質および内容についてフレームを解析することを指す。品質の要素は以下のものを含んでよいがそれに限られない。
・顔の特徴−数、位置、サイズ、相対的なサイズ、切り取り状態、瞬き状態、注視方向、および微笑み状態、
・ピクセルの特徴−先鋭度、露光、および色の彩度、
・意味的な特徴−誕生日のろうそくを吹き消すことなど型通りのシーンの存在、共通の顔を認識すること、ペットを認識すること、関係を認識すること。
【００４５】
上述した品質の要素を使って、顔認識、表情認識、瞬き認識、注視方向、先鋭度、露光、彩度、型通りのシーンの存在、特定の人物の識別、ペットの識別、および関係の識別の少なくとも１つに基づいて画質が決定されてもよい。
【００４６】
品質解析によるシステム１００への要求は高い。解析の出力は、品質「スコア」または以前にリストにされた品質の要素のコンビネーションから導き出された１セットの品質スコアである。一例において、品質スコアに達するために重みが各品質の要素に割り付けられてもよい。
【００４７】
ここで述べるように、サンプルフレームは、品質について解析されたデコード済みフレームとして定義される。
【００４８】
ステップ３２０に戻り、処理バジェットは、方法３００が実行されるのにかかるであろう時間を定義する。すべてのビデオシーケンスの上で結合された処理バジェットは特定のシステム目標によって設定できる。システム目標の例は例えば以下のものを含んでよい。
・方法３００は５分以内に完了しなければならない、
・方法３００は結合されたビデオ持続時間の１０分の１以内で完了しなければならない。
【００４９】
方法３００に対する時間的制約は、個別のビデオシーケンスに割る振ることができる。ひとつのアレンジメントにおいて、時間的制約は、ビデオの長さに基づいて個々のビデオシーケンスに比例的に割り付けてよい。代わりに、ビデオシーケンス各々の中ではサンプルフレームの最小数が要求され、それから残りのサンプルフレームがビデオシーケンスに比例配分されてよい。
【００５０】
上述したように、フレームのデコードおよび品質解析によるシステム１００のような処理システムに対する要求は高い。他のアレンジメントにおいては、個々のビデオシーケンスに課される処理バジェットは、ビデオシーケンスの中でサンプリングされるであろうフレームの最大数に設定されてもよい。代わりのアレンジメントにおいては、処理バジェットは、サンプリング対象のフレームの最大数および、ビデオシーケンス中でデコード対象のフレームの最大数に設定されてよい。ビデオシーケンス処理に課された他の制約があってもよく、それは、デコードされるＰ（前方予測された）及びＢ(双方向予測された）インターフレームなどの非Ｉフレームの最大数などの項目を含み得る。
【００５１】
ステップ３２０には選択ステップ３３０が続き、そこではプロセッサ１０５の実行の下で、個々のビデオシーケンスから少なくとも１フレームが選択される。ステップ３２０への入力は処理バジェット及び望ましいフレームが選択されるビデオシーケンスである。ステップ３３０で実行されたとき、ビデオシーケンスの少なくとも１フレームを選択する方法４００は、図４を参照して以下に詳述される。
【００５２】
判定３４０において、処理対象の残りのビデオシーケンスがあれば、その場合には方法３００はステップ３５０に進む。さもなければ、方法３００は終了する。
【００５３】
ひとつのアレンジメントにおいて、ステップ３３０での個々のビデオシーケンスの処理の後、隣接するステップ３５０において、ステップ３３０で割り付けられた処理バジェットの使いすぎか或いは使い足りないかに基づいて、残りのバジェットが再評価される。ステップ３２０で実行された同じ方法がステップ３５０でも適用できる。
【００５４】
入力されたビデオシーケンスのセットの少なくとも１つのビデオフレームを選択する方法３００は説明したが、ステップ３３０で実行されたときに入力ビデオシーケンスの少なくとも１つのビデオフレームを選択する方法４００を、これから図４を参照して詳細に説明する。
【００５５】
方法４００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実行できる。
【００５６】
方法４００は、２つ以上のパス（多重パスサンプリング）中のビデオシーケンスのビデオフレームのサンプルを選択し、サンプリングされたフレームから印刷または表示のために最も望ましいフレームを選ぶ。
【００５７】
既存の方法は、例えばフレーム間の色差から導出されるアクティビティによって決定されたサンプリングパターンを用いてサンプリングされたフレームを利用する。方法４００は、ビデオフレームのサンプルを選択するための目標とされた方法を提供し、その方法は、潜在的な選択可能なフレームを識別することにおいて、既存の方法よりもより効率的で、より効果的である。
【００５８】
方法４００はステップＳ３２０に関連して前述した処理バジェットとともに提供される。
【００５９】
処理ステップ４１０において、プロセッサ１０５の実行の下で、処理バジェットが、初期処理及びフレームサンプリング戦略を決定するために使用される。初期処理およびフレームサンプリング戦略は、メモリ１０６に記憶してよい。
【００６０】
フレームサンプリング戦略は、ビデオシーケンスのビデオフレームをデコードするサブステップ、対応するタイプのセグメント中で利用されるフレームサンプリング密度を判定するためのビデオシーケンスの静的セグメントおよび動的セグメントを決定するサブステップ、およびビデオシーケンスの一連のパスの中で起こるサンプリングの量を決定するサブステップを用いて、ステップ４１０で決定されてもよい。静的部分および動的部分へのビデオシーケンスの分割はプロセッサ１０５の実行の下でステップ４１０で起きてもよい。以下で説明されるように、ビデオシーケンスの静的部分および動的部分の決定は、離れた期間におけるフレーム間の色差の量に基づいてよい。ステップ４１０で実行されたとき、ビデオシーケンスのための初期ビデオ処理およびサンプリング戦略を決定する方法５００は、図５を参照して以下に詳述される。
【００６１】
最初のステップ４１０には、第１のパスサンプリングステップ４２０を実行するステップが続く。ステップ４２０において、プロセッサ１０による実行の下で、第１のサンプリングパターンが、ステップ４１０で決定された解析のための処理バジェットに基づいて決定される。サンプリングするビデオシーケンスのフレームは、ステップ４１０で提供されたサンプリング密度を含む考慮に基づいてステップ４２０で決定される。ステップ４２０で決定されたフレームは、決定された第１のサンプリングパターンを使ってサンプリング対象のフレームの第１のセットを成形する。フレームは、第１のサンプリングパターンに従って、ビデオシーケンス全体にわたって低頻度でサンプリングされてよい。さらに、フレームのサンプリングは、ビデオシーケンスの動的な部分においてより頻繁で、ビデオシーケンスの静的な部分においてあまり頻繁でなくてよい。
【００６２】
またステップ４１０において、品質解析が、ステップS４１０で決定されたフレーム上で実行される。ステップ４１０で実行されるような、フレームを決定し品質解析を実行する方法６００は、図６を参照して以下に詳述される。
【００６３】
ステップ４２０にはステップ４３０が続き、そこでは、プロセッサ１０５の実行の下で、ステップ４２０でサンプリングされたフレームからビデオシーケンスの候補フレームが決定される。候補フレームは十分に高品質のサンプリング済みフレームである。候補フレームは、近くのフレームのよりいっそうの高品質の可能性という理由から、ビデオシーケンスのその後のサンプリングパスの中でのサンプリングのために、ビデオシーケンスの近くのフレームを選択するために使用されるインジケータである。候補フレームは画質に基づいてステップ４３０で決定される。ステップ４３０は、以前のパスサンプルを使用して、最も選択可能でありそうで、かつ次のパスでサンプリングする価値があるフレームを予測するために、他の従来の方法よりも高い利点を提供する。より高品質のフレームの可能性がより高いところでのサンプリングが目標とされるので、選択をするために十分なサイズと品質のプールを決定するために少ないフレーム数でサンプリングされる必要がある。結果として、処理はより効率的で、代わりの方法より時間がかからない。
【００６４】
候補フレームを決定することにおける考慮は以下を含む：現在のパスの中で割り当てられるサンプルフレームの数、サンプリングされたフレームの品質スコア、サンプルフレームの中の多様性についての要件。ステップ４３０で実行されるような、候補フレームを決定する方法７００は、図７を参照して以下でより詳細に説明されるであろう。
【００６５】
ステップ４３０の後に次のパスサンプリングステップ４４０が続き、そこでは、サンプルフレームの別のセット（例えば第２のセット）が第２のサンプリングパターンに従って決定されて、解析される。ステップ４４０で決定されたフレームのセットは、決定された候補フレームの近くの狭い範囲のビデオシーケンスにおいて１つ以上のフレームを含む。ステップ４４０で選ばれたサンプルフレームはステップ４３０で決定された候補フレームに近い。第２のサンプリングパターンは、候補フレームと比較したビデオシーケンスの中の近くのフレームの類似に基づく。
【００６６】
対応する候補フレームへの類似性が高いフレームはステップ４３０でサンプルフレームとして除外してよい。ステップ４３０で、追加のフレームは、ステップ４４０でサンプルフレームとして使用されるためにデコードされてよい。サンプルフレームがステップ４３０で選ばれた後に、選ばれたサンプルフレームの上で品質解析が実行される。ステップ４４０で実行されるようなサンプルフレームを解析する方法８００は、図８を参照して以下でより詳細に説明される。
【００６７】
ステップ４４０の後に、判定ステップ４５０が続き、そこでは、さらなるサンプルパスが実行されることになっているなら、方法４００はステップ４６０に進む。さもなければ、方法４００はステップS４６０に進む。方法４００の中で実行されたサンプルパスの数はステップ４１０で出力されたサンプリング戦略によって指定できる。例えば、２パスだけが指定されるならば、ステップ４５０における決定は否になるであろうし、それから、方法４００は選択ステップ４６０に進む。さもなければ、２パスより多くが指定されるならば、ステップ４３０および４４０を繰り返すために、方法４００はステップ４３０に戻る。
【００６８】
代わりのアレンジメントにおいては、ステップ４１０で決定された処理バジェットの中に解析のための処理時間が残存しているならば、パス数が、ステップ４１０で出力されたサンプリング戦略によって設定されたパス数を越えていても、ステップ４３０と４４０は繰り返されるであろう。
【００６９】
選択ステップ４６０で、ステップ４４０またはステップ４２０で決定されたフレームのセットのビデオフレームの少なくとも１つは、プロセッサ１０５の実行の下で、画質に基づいて、印刷または表示のために選択される。印刷または表示のためのフレームは高品質のサンプルフレームからステップ４６０で選ばれる。選択は、高い画質スコアを持つサンプリングされたフレームからステップ４６０で行われる。フレームは、ステップ４２０において第１のサンプリングパターンを用いて、またはステップ４４０において第２のサンプリングパターンを用いてサンプリングされていてよい。サンプリングされたフレームが高い画質スコアを持っている限り、選択は、どのサンプリングパターンが使われるかに無関係である。例えば、高画質のフレームはステップ４２０でサンプリングされるかもしれず、その後にステップ４４０でサンプリングされたフレームは低画質である。そのような例においては、ステップ４２０でサンプリングされたフレームがステップ４６０で選ばれるであろう。
【００７０】
ほぼ複製のフレームはステップ４６０で考慮されず、多様性は、ビデオシーケンスの異なるセグメントからサンプルフレームを選ぶことによってもたらされる。ステップ４６０で実行されるような、印刷または表示のためのフレームの選択方法９００は、図９を参照して以下で詳細に説明されるであろう。
【００７１】
入力されたビデオシーケンスから少なくとも１つのビデオフレーム（例えば望ましいビデオセグメントまたはフレーム）を選ぶための方法４００を説明したが、ステップ４１０で実行されるような初期のビデオ処理とサンプリング戦略を決定する方法５００が、これから図５を参照して詳細に説明されるであろう。
【００７２】
方法５００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実装できる。
【００７３】
上述したように、ステップ３２０への入力は、処理バジェット及び、望ましいフレームが選択されるビデオシーケンスである。方法５００は、ステップS３２０におけるように処理バジェットとともに提供される。ステップ３２０で使用される処理バジェットは、サンプリング対象のフレームの推定最大数として定義される。代わりに、処理バジェットは、サンプリング対象のフレームの最大数および、デコード対象のフレームの最大数の両方として定義されてもよい。
【００７４】
方法５００はデコーディングステップ５１０で開始され、そこでは、プロセッサ１０５の実行の下で、入力ビデオシーケンスのビデオフレームがデコードされる。システム１００は、入力ビデオシーケンスのビデオフレームのデコードで利用するためにアプリケーションプログラミングインターフェイス（ＡＰＩ）を含んでもよい。全ての適したＡＰＩをビデオフレームをデコードするために利用できる。移動デバイスなどの他の環境は、ビデオフレームのデコードで利用するためのデコーダを有してもよい。代わりに、デコーダは、例えばネットワーク１２０を渡ってダウンロードしてもよい。デコーダの一例はＦＦｍｐｅｇライブラリであり得る。
【００７５】
ひとつのアレンジメントにおいては、ステップ５１０で決定された各デコード済みフレームはＪＰＥＧファイルまたはｇｉｆ，ｔｉｆｆを含む代わりのタイプの画像ファイルである。代わりのアレンジメントにおいては、ステップ５１０の出力はメモリ１１０に保持されたビットマップ画像であってよい。
【００７６】
上述したように、１０分の長さのビデオシーケンスは一般的に１８０００フレームを持つ。デコーディングはプロセッサ集中タスクであり、それなので総ビデオシーケンス時間が短くない限り、すべてのフレームをデコードすることができない可能性がある。従って通常はフレームのサブセットがデコードされるであろう。１つの効率的なアレンジメントにおいては、方法５００はビデオシーケンスのＩフレームだけをデコードする。Ｉフレームはビデオ圧縮の一部分として作成される。圧縮において、完全に特定されたフレームの後に、その完全に特定されたフレームからの「差分」として特定される多くのフレームが続く。その完全に特定されたフレームがＩフレームである。Ｉフレームは完全に特定されているので、Ｉフレームは、フレーム画像を決定するためにデコードするにはより効率的であり、その画像の圧縮アーチファクトは少ない。Ｉフレームがビデオの１秒ごとに１つ現れるのは一般的である。
【００７７】
説明した方法のひとつのアレンジメントにおいて、第１のサンプリングパターンでは、Ｉフレームのみがサンプリングされる。Ｉフレームのみをデコードすることは、処理する必要のあるフレーム数を減らすだけでなく、分散した多くのフレームをデコードする最も効率的な方法である。ステップ５１０では、ビデオシーケンスの全フレーム、またはＩフレーム、またはＩフレームと非Ｉフレームとのコンビネーションをデコードしてよい。
【００７８】
代わりのアレンジメントにおいて、ステップ３２０に関連して以前に説明したように、処理バジェットは、フレームの最大数がステップ５１０で適用されるであろう場合に、デコード対象のフレームの最大数の指定を含む。
【００７９】
ステップ５１０の代わりのアレンジメントにおいては、フレームはＪＰＥＧまたは他の画像フォーマットにデコードされなくてもよい。そのような代わりのアレンジメントにおいては、デコードすることは、ビデオシーケンス中でアクティビティを判定するために利用できる動きベクタを出力してよい。動きベクタはステップ５２０に入力できる。代わりのアレンジメントにおいては、動きベクタがステップ５１０で決定される場合、画像フレームをＪＰＥＧまたは他の画像フォーマットへとデコードすることがステップ４２０及び方法６００で必要である。
【００８０】
ひとつのアレンジメントにおいて、ビデオシーケンス内で検知されたアクティビティはサンプリングパターンを形成するために利用される。より多くのサンプルフレームが、より高いアクティビティを持つビデオシーケンス（動的セグメント）から、より少ないサンプルフレームが、ほとんどアクティビティがないビデオシーケンス（静的セグメント）から決定できる。動的セグメントの中により高いサンプル密度を持つことは次の通り多くの利点を持っている：
・動的セグメントの中のフレームには、モーションブラー及びまずく構成された内容を含む欠陥を持つ可能性が高い。サンプルフレームがより多いことは、欠陥サンプルフレームのための代替サンプルフレームが利用可能である可能性がより高いことを意味している。
・多種多様なコンテンツがあり、その結果、より高い密度によってビデオシーケンスの異なるコンテンツのカバレッジが保証される。
・移動する物体などの関心を引くコンテンツは高いビデオアクティビティを結果として生じており、それは、動的セグメントからより高密度でサンプルを選ぶことの他の有利な理由である。
【００８１】
方法５００は次のステップ５２０を続行し、そこではプロセッサ１０５の実行の下でサンプリングセグメントが設定される。ビデオシーケンスの中の動きを判定するための１つの方法が、隣接するデコード済みフレームの色差を比較することによるものである。色ヒストグラムにおける差が、そのような差がビデオフレームの類似性の良い目安を提供するものとして決定されてもよい。類似していない隣接するデコード済みフレームの高い密度が、高いアクティビティを示す。類似していない隣接するデコード済みフレームの高い密度は、動的セグメントおよび静的セグメントを決定するために使われてもよい。
【００８２】
代わりのアレンジメントにおいて、高いアクティビティは相対的に大きな規模の多くの動きベクタの存在によって示されてよい。スケール不変特徴変換（ＳＩＦＴ）などの既知の方法も、隣接するデコード済みフレームの間で類似の程度を決定するために使用することができ、従って、アクティビティを検出するために使うことができる。
【００８３】
説明した方法の代わりのアレンジメントにおいて、ビデオシーケンスの中のアクティビティはサンプリングの密度に影響するために利用されず、ステップ５２０は飛び越される。そのような代わりの場合のサンプルはビデオシーケンス全体にわたって均等に割り当てられてもよい。
【００８４】
方法５００は次のステップ５３０を続行し、そこでは、サンプリング戦略が、多重パスサンプリングのためのパラメータを定義することによって決定される。サンプルの総数はステップ３２０で設定された。ステップ５３０で設定されるパラメータは、サンプリングパスの数と各パスでサンプリング対象のフレームの数である。例えば、１つのサンプリング戦略は、２パスを持ち、第１のパスの中でサンプルフレームの７５％を割り当て、第２のパスのためにサンプルフレームの２５％を残すことである。低品質のフレームが比較的高い割合であるであろうと予測されるならば、有効の可能性がある第２の戦略は、より多くのパスを割り当てることである。例えば、第１のパスの中での割り当てがサンプルフレームの６０％、第２のパスのためにサンプルフレームの３０％、最終パスのためにサンプルパスの１０％の３つパスが利用されてもよい。
【００８５】
ステップ４１０で実行されるような、フレームを決定し品質解析を実行する方法６００が、図６を参照してここで以下に詳述される。方法５００はサンプルフレームの第１のセットを決定する。
【００８６】
方法６００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実装できる。
【００８７】
方法６００は判定ステップ６１０で開始され、そこではサンプリングされるビデオシーケンスのフレームが決定される。第１のパスで割り当てられるサンプルフレームの数はステップ５３０で決定され、サンプルフレームはステップ５２０で設定されたセグメント間に分散される、サンプルフレームは、ビデオセグメントの長さ及びタイプに基づいてセグメント間に分散されてよい。ステップ５２０に関して前述したように、静的セグメントよりも比例的に多くのサンプルフレームを動的セグメントに割り当てることには利点がある。ひとつのアレンジメントにおいては、サンプルフレームの相対的な割り当ては「動的対静的サンプリング密度比」Ｒdsとして表され、それは１より大きく、かつ、静的セグメント内のサンプルに対する動的セグメント内のサンプルの相対密度であると定義される。例えば、Ｒds＝２の場合、動的セグメント及び静的セグメントの両方が同じフレーム数を持つなら、動的セグメントには静的セグメントの２倍のサンプルフレーム数が割り当てられるであろう。
【００８８】
図１０Ａは、２つのセグメント（動的セグメント１０２０及び静的セグメント１０２５）に分割される３８個のデコード済みフレーム１０００のシーケンスを示す。セグメント１０２０と１０２５の両方は、同じフレーム数を有する（すなわち１９フレーム）。黒く長くマークされた九つのフレーム１０１５はサンプリングされたフレームである。動的セグメント１０２０は、静的セグメント１０２５の２倍のフレーム数を持ち、サンプルはセグメント内で均等に配置されている。
【００８９】
全ての動的セグメントにわたって割り当てられるサンプル数Ｎdは数式（１）に従って以下のように決定される。
Nd = Td x Rds x N / (Ts + (Td x Rds))    （１）
ここで、Ndは全ての動的セグメントにわたって割り当てられるサンプル数である。
Tdは全ての動的セグメントにわたる総フレーム数である。
Rdsは前述した動的対静的サンプリング密度比である。
Nは、動的セグメントと静的セグメントとの間で分割される総サンプル数である。
Tsは全ての静的セグメントにわたる総フレーム数である。
全ての静的セグメントにわたって割り当てられるサンプル数Ｎsは数式（２）に従って以下のように決定される。
Ns = N - Nd    (２)
ここで、Nsは全静的セグメントにわたって割り当てられるサンプル数である。
特定の動的セグメントの中で割り当てられるサンプル数NPdは数式（３）に基づいて以下のように決定される。
NPd = Pd x Nd / Td    (３)
ここで、NPdは特定の動的セグメントの中で割り当てられるサンプル数である。
Pdは特定の動的セグメントの中のフレーム数である。
式（３）に対する同様な数式が、静的セグメントの中のサンプル数を決定するために適用されてもよい。
【００９０】
上記式（１）、（２）、（３）の変形は、セグメントのそれぞれの中で少なくとも一つのサンプルが確実に生じるようにすることができる。他の変形もまた可能である。
【００９１】
ひとつのアレンジメントにおいては、サンプルフレームはセグメント内部に均等に分散される。たとえば、図１０Ａに示すように、セグメント１０２０内で６つのサンプルが均等に分けられ、セグメント１０２５内で３つのサンプルが均等に分けられる。代わりのアレンジメントにおいては、よりアクティビティの高いフレームを有するセグメントの部分の周りのサンプル群が利用されてもよい。
【００９２】
ステップ６１０の後、ステップ６２０で、ステップ６１０で決定されたサンプルフレーム上で品質解析が実行される。品質解析の要素は上述されており、三分割法への位置合わせを伴う位置、類似サイズの顔、切り取られていない顔、微笑の存在などの顔の特徴など、高品質フレームに寄与するであろう全てを含むがそれに限定されない。顔の特徴は多くの顔検出ライブラリによって提供され得る。全ての適切な顔検出ライブラリがステップ６２０で使用できる。
【００９３】
先鋭度、露光、コントラスト、彩度を含むがそれに限定されないピクセル派生特徴はすべて、フレームに欠陥がないことを保証するためにステップ６２０で測定できる。すべての適切なアルゴリズムが、そのような測定をするためにステップ６２０で利用できる。さらに、型通りの表現および関係の識別などの意味的特徴は、フレームの品質を決定するために利用できる。
【００９４】
ステップ６２０で決定されたサンプリングされたフレームの特徴または決定された特徴のサブセットは、１つの品質スコアに達するために結合されてもよい。
【００９５】
ステップ４３０で実行されるような、候補フレームを決定する方法７００が、図７を参照してここで以下に詳述される。方法６００においてサンプリングされたフレームは割り当てられた品質スコアを持つ。高い品質スコアを持つサンプルは次のパスでサンプリングされるであろうフレームを決定する。高い品質スコアを持つサンプルに近いフレームを対象とすることで、良好なフレームが一緒に集まる傾向がある。弱い光に起因する露光不足とつまらないシーンに起因する低コントラストを含む特徴は、次のシーンが捕捉されるまで、複数秒の期間について存在する可能性がある。その様な特徴がサンプルフレーム中で検出されたなら、次のパスの中ではそのフレームに近くをサンプリングしない方がよい。
【００９６】
方法７００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実装できる。
【００９７】
方法７００は優先度付けステップ７１０で開始され、そこでは、プロセッサ１０５の実行の下で、ステップ４２０で決定されたサンプルフレームが、各フレームに関連付けられた品質スコアに基づいて優先度が付けられる。優先度が付けられたフレームはメモリ１０６に格納されてよい。ステップ４２０で決定されたサンプルフレームは、セグメント内部で最高品質から下へ単一の品質スコアに基づいてサンプルフレームを順序付けすることで優先度付けできる代わりに、サンプルフレームの優先度付けの際に、多様性を考慮してもよい。
【００９８】
セグメント内部の多様性を保証する一つの方法は、高いスコアを持つサンプルフレームに対する類似度が高いサンプルフレームを考慮しないことによる。セグメント内部の多様性を保証する他の方法は、時間的に離れたサンプルを優先度付けするために、品質スコアと共に時間差を考慮することである。
【００９９】
図１０Ｂは、潜在的候補フレームとみなされる十分な品質を有する３つのサンプルフレーム１０３５、１０４０、１０４５を示す。サンプルフレーム１０４０はサンプルフレーム１０４５に比べてより高品質であるが、２つのサンプルフレームの最高品質のサンプル１０３５に対する時間差に起因する重み付けが計算に含まれる場合には、サンプルフレーム１０４５はサンプルフレーム１０４０に比べてよりよい候補であり得る。
【０１００】
割り当てステップ７２０で、隣りが次のサンプリングパスの中で選ばれるであろうサンプリング済みフレームであると定義される「候補フレーム」が割り当てられる。次のパスの中で処理対象のサンプルフレームの数は方法５００に従って決定される。ステップ５２０に関連して説明されたように、サンプルフレームは方程式（１）、（２）、および（３）に従って異なるセグメントに割り当てられることができる。
【０１０１】
ひとつのアレンジメントにおいて、同じ方程式（１）、（２）、（３）のセットが、いくつの候補フレームがセグメントのそれぞれの中にあるであろうかを決定するために利用される。ひとつのアレンジメントにおいて、候補フレームのそれぞれは１つのサンプルと関連している。ステップ７１０において決定されるスコアは、上位Ｎ個の候補フレームを選ぶために使われ、ここでＮは方法５００によって決定されたような次のパスの中で解析されるサンプルフレームの数である。これは図１０Ｃの中で示され、ここで、解析されるサンプルフレームの数が４として設定され、その結果、１０５５として示された４つの最高品質のサンプルフレームが候補フレームとして選ばれる。
【０１０２】
代わりのアレンジメントにおいては、候補フレームの数は、サンプルフレームの数を必要な数まで減らすために図８の方法８００内の後のステップとして存在するフィルタリングを有するパス中で得られるサンプルフレームの数を超えてもよい。
【０１０３】
セグメント内に、候補フレームとして資格を与えるために十分な品質スコアを持つサンプルフレームがない可能性もある。ひとつのアレンジメントにおいて、候補フレームとして資格を与えるために十分な品質スコアを持つサンプルフレームがない場合、ステップ７２０では候補フレームが割り当てられず、その結果方法４００の次のパスではサンプルは選択されないだろう。他のアレンジメントにおいては、縮小された数の候補フレームは、セグメント内の無作為な位置に割り当てられたサンプルフレームを用いて、ステップ７２０で割り当てられてよい。
【０１０４】
ステップ４４０で実行されるような、サンプルフレームを解析する方法８００が、図８を参照してここで以下に詳述される。
【０１０５】
方法８００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実装できる。
【０１０６】
方法８００はフィルタリングステップ８１０から始まり、そこでは、ステップ４３０で決定されたフレームが、候補フレームに隣接するフレームのうち解析対象のサンプルフレームとして選択されるフレームを決定するためにフィルタリングされる。ひとつのアレンジメントにおいて、候補フレームの隣接フレームは、サンプリングのために選択された、候補フレームに最も似ていないフレームであるフレームと共に考慮される。例えば、図１０Ｃは、サンプリング対象のフレーム１０６５を示し、候補フレーム１０５５に対して最高の非類似度を持つ候補フレーム１０５５の隣接フレームである。
【０１０７】
代わりのアレンジメントにおいて、候補フレームに対して或る閾値を超える類似度を持つ隣接フレームは、サンプルフレームとして選択されないであろう。すぐ隣に、候補フレームに対して十分に非類似なフレームがなければ、候補フレームに隣接するフレームの隣接フレームが考慮される。処理はそれから候補フレームから最大時間距離まで繰り返される。さらなるアレンジメントにおいて、隣接フレームは、類似度を考慮することなしに２つの隣接フレームの最大値から無作為に選択される。
【０１０８】
方法８００は解析ステップ８２０で完了し、そこでは、解析がステップ８１０で選択されたフレーム上で、前述したステップ６２０と同じ要領で実行される。
【０１０９】
ステップ４６０で実行されるような、印刷または表示のためのフレームの選択方法９００は、図９を参照して以下でこれから詳細に説明されるであろう。方法９００は、ハードディスクドライブ１１０上に常駐で、かつその実行中にはプロセッサ１０５により制御されるソフトウェアアプリケーションプログラム１３３の１つ以上のソフトウェアコードモジュールとして実装できる。
【０１１０】
方法９００は、全てのデコードと解析が行われた後で、ステップ４６０で実行される。方法９００に従って選択されたフレームは表示のために（例えばディスプレイ１１４上に）、或いは印刷された本の内容として利用してよい。
【０１１１】
方法９００は決定ステップ９１０で開始され、そこではビデオシーケンス中で選択されるフレーム数がプロセッサ１０５の実行の下で決定されてメモリ１０６に格納される。選択されるフレーム数は選択されたフレームの目的によって決定されてよい。例えばフォトブックには、そのフォトブックの中に入るフレーム数の上限と下限とがある。システム１００のようなシステムはまた、ビデオシーケンス全体にわたってサンプリング対象のフレーム数を、フォトブックに入るであろう画像の上限を超えるように設定してもよい。ステップ９１０は、可能な各ビデオセグメントから選択することによって多様性を保証する。選択されるフレーム数はメモリ１０６に格納されてよい。
【０１１２】
ひとつのアレンジメントにおいて、決定した選択されるフレーム数はビデオの部分の長さとタイプとに基づく。例えば、この方法は、ビデオシーケンスの異なる部分の中で選択されるフレーム数を決定することを含む。効果的には、より多くの数のフレームを、ビデオのより短い部分よりも、ビデオのより長い部分について決定できる。また、ビデオの静的セグメント及び動的セグメントが決定されたアレンジメントにおいて、ビデオシーケンスの静的な部分よりも動的な部分のたにてより多くのフレームを決定できる。
【０１１３】
次の選択ステップ９２０において、プロセッサ１０５の実行の下で、ビデオシーケンス内で最高品質スコアを持つサンプリング済みフレームが選択される。代わりに、選択はサンプル済みフレームの第２のセットまたは任意の後続のセットからすることができる。その後、フィルタリングステップ９３０において、ステップ９２０で選択されたフレームの近くの重複したフレームが除去される。
【０１１４】
方法９００は提供ステップ９４０で終了し、そこでは、ステップ９２０で選択されたフレームが、ステップ９３０で除去されたフレームを除いて提供される。提供されるフレームはメモリ１０６に格納されてよい。選択されたフレームが、ＪＰＥＧファイルや任意の他の適切な画像フォーマットなどのフレーム画像ファイルとして提供される。代わりに、選択されたフレームのフレーム番号あるいはフレームタイムスタンプが提供されてもよい。
【０１１５】
説明した方法が、ビデオシーケンスからフレームをサンプリングするための効率の優位性を提供する。最高の品質スコアを持つ映像のサンプリングに集中することで、望ましいフレームを発見するチャンスがより大きくなる。また、より低い品質スコアを持つフレーム周辺のフレームのサンプリングをより少なくすることで、望ましいフレームを発見するチャンスがより少ないビデオの映像の部分に費やす時間バジェットがより少ない。
【０１１６】
望ましいフレームは、ビデオフレームのごくわずかで相対的に短い部分にまとまる傾向があるので、説明した方法に従って決定したサンプリングパターンは、通常のビデオシーケンスの中の望ましいフレームの分散に適合するよう設定される。
【０１１７】
周期的な間隔でフレームをサンプリングするような従来のサンプリング方法と比較した場合、方法４００は速度および精度の両方で良好に機能する。方法４００と、映像の３秒ごとに１フレームをサンプリングした周期的なサンプリング方法の性能を比較するために実施された実験では、方法４００が周期的なサンプリング方法よりも平均２２％速かったことが分かった。この実験ではまた、方法４００は、ビデオシーケンスの時間に応じた望ましいフレーム選択の精度及びリコールの点において、２乃至３倍正確であることが分かった。
【０１１８】
この実験はまた、方法４００の精度の優位は、ビデオシーケンスが長くなれば高くなる傾向にあることを示した。より短いビデオシーケンスよりもより長いビデオシーケンス中の同じビデオ映像の量について望ましいフレームが少ない可能性があるために、方法４００の精度の優位は、より長いビデオシーケンスの方が高くなる可能性がある。より長い映像を用いれば、周期的なサンプリングではより多くの望ましくないフレームを選択し、その結果精度が低下する。一方、説明したアレンジメントのサンプリングパターンを用いることで、より長いビデオシーケンスを解析することの方法４００の精度へのインパクトはより小さい。
【産業上の利用可能性】
【０１１９】
説明したアレンジメントはコンピュータ、および、データ処理産業、特に画像処理に適用可能である。
【０１２０】
前の説明は、本発明のいくつかの実施形態のみを述べており、本発明お範囲および精神から離れることなく、それらに対する変形および／または変更が可能であり、実施形態は説明であって制限的なものではない。
【０１２１】
本明細書の文脈において、単語「包含している」は「基本的に含んでいるが、必ずしもそれだけではない」或いは「持っている」または「含んでいる」であり、かつ、「のみから成る」ではない。「包含する(comprise)」および「包含する(comprises)」のような「包含している」のバリエーションは、それに応じて変化した意味を持つ。
【図１】
2018056990.tif 000003
【図２】
2018056990.tif 000004
【図３】
2018056990.tif 000005
【図４】
2018056990.tif 000006
【図５】
2018056990.tif 000007
【図６】
2018056990.tif 000008
【図７】
2018056990.tif 000009
【図８】
2018056990.tif 000010
【図９】
2018056990.tif 000011
【図１０Ａ】
2018056990.tif 000012
【図１０Ｂ】
2018056990.tif 000013
【図１０Ｃ】
2018056990.tif 000014