(57)【要約】動きベクトルを利用して空間ブロックレベルのピクセルアクティビティ抽出の最適化を実施するシステム、装置及び方法が開示される。エンコーダに結合された制御ロジックは、基準フレームからの以前に計算されたブロックレベルのピクセルアクティビティに基づいて、新たなフレームのブロックレベルのピクセルアクティビティメトリックを生成する。コストは、基準フレームの対応するブロックに対して、新たなフレームのブロック毎に計算される。コストが第１の閾値未満である場合に、制御ロジックは、ブロックのピクセルアクティビティメトリックの推定値を、基準フレームの対応するブロックの以前に計算されたピクセルアクティビティメトリックに等しくなるように生成する。コストが第１の閾値を超えるが第２の閾値未満である場合、ピクセルアクティビティメトリックの推定値は、以前に計算されたピクセルアクティビティメトリックから推定することによって生成される。【選択図】図９
2022501893.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
ビデオストリームの新たなビデオフレームを受信するように構成されたインタフェースと、
前記インタフェースに結合された制御ロジックと、
エンコーダと、を備え、
前記制御ロジックは、
前記新たなビデオフレームの動き推定データと、基準ビデオフレームから以前に計算されたブロックレベルのピクセルアクティビティと、に基づいて、前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を推定するように構成されており、
前記エンコーダは、
前記推定値に基づいて、前記新たなフレームを表す符号化されたビデオフレームを生成するように構成されている、
システム。
【請求項２】
前記制御ロジックは、前記新たなビデオフレームのブロック毎に、
前記基準ビデオフレームの対応するブロックに対する前記新たなビデオフレームのブロックのコストを第１の閾値と比較し、
前記コストが前記第１の閾値未満である場合に、前記ブロックのピクセルアクティビティの推定値を、前記基準ビデオフレームの対応するブロックの以前に計算されたピクセルアクティビティと等しくなるように生成する、
ように構成されている、
請求項１のシステム。
【請求項３】
前記制御ロジックは、前記新たなビデオフレームのブロック毎に、
前記ブロックのコストを第２の閾値と比較し、
前記コストが前記第１の閾値以上であって、前記第２の閾値未満であると判別したことに応じて、
伝達関数を使用して前記コストを補正係数にマッピングし、
前記補正係数を、前記基準ビデオフレームの対応するブロックの以前に計算されたピクセルアクティビティに適用することによって、前記ブロックのピクセルアクティビティの推定値を生成する、
ように構成されている、
請求項２のシステム。
【請求項４】
前記制御ロジックは、前記コストが前記第２の閾値以上である場合に、前記以前に計算されたピクセルアクティビティと関係無く、前記ブロックのピクセルアクティビティを計算するように構成されている、
請求項３のシステム。
【請求項５】
前記制御ロジックは、前記推定値に基づいて前記新たなビデオフレームを分類するように構成されており、前記ブロックレベルのピクセルアクティビティは、勾配、共起行列、又は、第１のピクセル値、及び、前記第１のピクセル値に対する所定の相対変位の第２のピクセルに対する数学的演算の結果が、前記新たなビデオフレームのブロックに集約される他のメトリックを表す、
請求項１のシステム。
【請求項６】
前記以前に計算されたブロックレベルのピクセルアクティビティが第１の粒度であり、前記エンコーダは、前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を第２の粒度で生成するように構成されており、前記第１の粒度は前記第２の粒度よりも細かい粒度である、
請求項１のシステム。
【請求項７】
前記エンコーダは、前記基準ビデオフレームからの複数のブロックのピクセルアクティビティを合計することによって、前記新たなビデオフレームのブロック毎に前記ブロックレベルのピクセルアクティビティの累積推定値を生成するように構成されている、
請求項６のシステム。
【請求項８】
方法であって、
サーバが、ビデオストリームの新たなビデオフレームを受信することと、
制御ロジックが、新たなビデオフレームの動き推定データと、基準ビデオフレームから以前に計算されたブロックレベルのピクセルアクティビティと、に基づいて、前記ビデオストリームの前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を生成することと、
エンコーダが、前記推定値に基づいて、前記新たなビデオフレームを表す符号化されたビデオフレームを生成することと、を含む、
方法。
【請求項９】
前記基準ビデオフレームの対応するブロックに対する前記新たなビデオフレームのブロックのコストを第１の閾値と比較することと、
前記コストが前記第１の閾値未満である場合に、前記ブロックのピクセルアクティビティの推定値を、前記基準ビデオフレームの対応するブロックの以前に計算されたピクセルアクティビティと等しくなるように生成することと、を含む、
請求項８の方法。
【請求項１０】
前記ブロックのコストを第２の閾値と比較することと、
前記コストが、前記第１の閾値以上であって、前記第２の閾値未満であると判別したことに応じて、
伝達関数を使用して前記コストを補正係数にマッピングすることと、
前記補正係数を、前記基準ビデオフレームの対応するブロックの以前に計算されたピクセルアクティビティに適用することによって、前記ブロックのピクセルアクティビティの推定値を生成することと、を含む、
請求項９の方法。
【請求項１１】
前記コストが前記第２の閾値以上である場合に、前記以前に計算されたピクセルアクティビティと関係無く、前記ブロックのピクセルアクティビティを計算することを含む、
請求項１０の方法。
【請求項１２】
前記推定値に基づいて前記新たなビデオフレームを分類することを含み、前記ブロックレベルのピクセルアクティビティは、勾配、共起行列、又は、第１のピクセル値、及び、前記第１のピクセル値に対する所定の相対変位の第２のピクセルに対する数学的演算の結果が、前記新たなビデオフレームのブロックに集約される他のメトリックを表す、
請求項８の方法。
【請求項１３】
前記以前に計算されたブロックレベルのピクセルアクティビティが第１の粒度であり、前記方法は、前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を第２の粒度で生成することを含み、前記第１の粒度は前記第２の粒度よりも細かい粒度である、
請求項８の方法。
【請求項１４】
前記基準ビデオフレームからの複数のブロックのピクセルアクティビティを合計することによって、前記新たなビデオフレームのブロック毎に前記ブロックレベルのピクセルアクティビティの累積推定値を生成することを含む、
請求項１３の方法。
【請求項１５】
装置であって、
メモリと、
前記メモリに結合されたエンコーダと、
前記エンコーダに結合された制御ロジックと、を備え、
前記制御ロジックは、新たなビデオフレームの動き推定データと、前記メモリに記憶された基準ビデオフレームから以前に計算されたブロックレベルのピクセルアクティビティと、に基づいて、前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を生成するように構成されており、
前記エンコーダは、前記推定値に基づいて、前記新たなビデオフレームを表す符号化されたビデオフレームを生成するように構成されている、
装置。
【請求項１６】
前記制御ロジックは、前記新たなビデオフレームのブロック毎に、
前記基準ビデオフレームの対応するブロックに対する前記新たなビデオフレームのブロックのコストを第１の閾値と比較し、
前記コストが前記第１の閾値未満である場合に、前記ブロックのピクセルアクティビティの推定値を、前記基準ビデオフレームの対応するブロックの以前に計算されたピクセルアクティビティと等しくなるように生成する、ように構成されている、
請求項１５の装置。
【請求項１７】
前記制御ロジックは、前記新たなビデオフレームのブロック毎に、
前記ブロックのコストを第２の閾値と比較し、
前記コストが前記第１の閾値以上であって、前記第２の閾値未満であると判別したことに応じて、
伝達関数を使用して前記コストを補正係数にマッピングし、
前記補正係数を、前記基準フレームの対応するブロックの以前に計算されたピクセルアクティビティに適用することによって、前記ブロックのピクセルアクティビティの推定値を生成する、ように構成されている、
請求項１６の装置。
【請求項１８】
前記制御ロジックは、前記コストが前記第２の閾値以上である場合に、前記以前に計算されたピクセルアクティビティと関係無く、前記ブロックのピクセルアクティビティを計算するように構成されている、
請求項１７の装置。
【請求項１９】
前記制御ロジックは、前記推定値に基づいて前記新たなビデオフレームを分類するように構成されており、前記ブロックレベルのピクセルアクティビティは、勾配、共起行列、又は、第１のピクセル値、及び、前記第１のピクセル値に対する所定の相対変位の第２のピクセルに対する数学的演算の結果が、前記新たなビデオフレームのブロックに集約される他のメトリックを表す、
請求項１５の装置。
【請求項２０】
前記以前に計算されたブロックレベルのピクセルアクティビティが第１の粒度であり、前記エンコーダは、前記新たなビデオフレームのブロックレベルのピクセルアクティビティの推定値を第２の粒度で生成するように構成されており、前記第１の粒度は前記第２の粒度よりも細かい粒度である、
請求項１５の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連技術の説明）
様々なアプリケーションが、画像又はビデオコンテンツの符号化及び復号化を実行する。例えば、ビデオトランスコーディング、デスクトップ共有、クラウドゲーミング、ゲーミング観戦は、コンテンツの符号化及び復号化に対するサポートを含むアプリケーションの一部である。ブロック内のピクセルアクティビティの計算は、一般的に、異なるビデオ処理アルゴリズム及び分析アルゴリズムで実行される。例えば、ブロックレベルのピクセルアクティビティを使用して、一部のアプリケーションで画像内のテクスチャタイプを決定することができる。ブロックの例は、高効率ビデオコーディング（ＨＥＶＣ）規格で使用されるコーディングツリーブロック（ＣＴＢ）、又は、Ｈ．２６４規格で使用されるマクロブロックを含む。他のタイプの規格で使用される他のタイプのブロックも考えられる。
【０００２】
画像又はビデオフレームのブロックのピクセルアクティビティを計算するために、異なる方法を使用することができる。例えば、一実施形態では、フレームのブロック毎に、グレイレベル共起行列（ＧＬＣＭ）が計算される。ＧＬＣＭデータは、ブロック内でピクセル輝度の異なる変動が発生する頻度を示す。ＧＬＣＭデータは、距離ｄ及び角度θのピクセルについて計算することができる。別の実施形態では、所定のブロックについて２次元（２Ｄ）空間平均勾配が計算される。この勾配は、垂直及び水平のエッジをキャプチャすることができる。さらなる実施形態では、ウェーブレット変換や他のタイプの変換が、所定のブロックのアクティビティパラメータを測定するために使用される。したがって、本明細書で使用する場合、「ピクセルアクティビティメトリック」、「ピクセルアクティビティ（pixel activity）」又は「ピクセルアクティビティ（pixel activities）」という用語は、ブロックのＧＬＣＭ、勾配、ウェーブレット変換、又は、他のメトリック若しくは要約統計量として定義される。「ピクセルアクティビティ」及び「ブロックレベルのピクセルアクティビティ」という用語は、本明細書において互換的に使用することができることに留意されたい。場合によって、ピクセルアクティビティは、行列を用いて表される。他の場合、ピクセルアクティビティは、１つ以上の値を使用して表される。
【０００３】
ビデオの各フレームのブロック毎にブロックレベルのピクセルアクティビティを計算することは、使用されるアクティビティメトリックのタイプに応じて、時間がかかる、及び／又は、不要な電力を消費する計算となる場合がある。例えば、ピクセルの共起関係を最初から計算するには、ブロック内の全てのピクセルのピクセル対を評価する必要がある。このタイプの計算には、フレーム全体の処理が必要になる。並列計算を実行することが可能である場合もあるが、処理需要は依然として高い。
【０００４】
添付の図面と併せて以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点をより良く理解することができる。
【図面の簡単な説明】
【０００５】
【図１】コンテンツを符号化及び復号化するためのシステムの一実施形態のブロック図である。
【図２】サーバの一実施形態のブロック図である。
【図３】ビデオフレームのシーケンスに対する動きベクトルのセットの一実施形態のブロック図である。
【図４】動きベクトルを利用して空間ブロックレベルのピクセルアクティビティ抽出の最適化を実施する方法の一実施形態を示す一般化されたフロー図である。
【図５】新たなフレームのブロックのブロックレベルのピクセルアクティビティを生成する方法の別の実施形態を示す一般化されたフロー図である。
【図６】ピクセルアクティビティメトリック生成スキームを決定する方法の一実施形態を示す一般化されたフロー図である。
【図７】ビデオシーケンスの連続フレーム及び対応する動きベクトルの一実施形態を示すブロック図である。
【図８】異なるブロックメトリック粒度レベルを有するフレームの一実施形態のブロック図である。
【図９】異なる粒度でピクセルアクティビティメトリックを計算する方法の一実施形態を示す一般化されたフロー図である。
【発明を実施するための形態】
【０００６】
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解をもたらすために、多数の具体的な詳細が記載される。しかしながら、当業者は、これらの具体的な詳細無しに様々な実施形態を実施し得ることを認識すべきである。場合によっては、本明細書で説明されるアプローチを曖昧にすることを避けるために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図に示される要素は、必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張される場合がある。
【０００７】
空間ブロックレベルのピクセルアクティビティ抽出の最適化技術を実施するためのシステム、装置及び方法が本明細書に開示される。一実施形態では、システムは、エンコーダと、エンコーダに結合された制御ロジックと、を含む。一実施形態では、制御ロジックは、動き推定データを使用して、ピクセルアクティビティの不必要且つ高価な計算を回避する。本実施形態では、制御ロジックは、ピクセルアクティビティの近似値を計算する。例えば、一実施形態では、制御ロジックは、基準フレームについて計算された局所的な動きベクトル及びブロックレベルのピクセルアクティビティを使用して、新たなフレームのブロックのピクセルアクティビティの推定値を生成する。本明細書で使用される「基準フレーム」という用語は、ビデオストリームの１つ以上の将来のフレームを定義及び／又は符号化するために使用されるビデオストリームのフレームとして定義される。一実施形態では、制御ロジックは、ブロック単位で新たなフレームを処理する。一実施形態では、ピクセルアクティビティは、新たなフレームのブロックについて計算された勾配である。別の実施形態では、ピクセルアクティビティは、新たなフレームのブロックのテクスチャ分析を含む。他の実施形態では、ピクセルアクティビティは、様々な要約統計量又は他の数学的量（例えば、平均、最大値、分散）の何れかを含む。
【０００８】
一実施形態では、制御ロジックは、新たなフレームのブロックと、基準フレームの対応するブロックと、の差（つまり、差のコストの総計）を計算し、基準フレームの対応するブロックは、動きベクトルによって識別される。差（又は「誤差」）が第１の閾値未満である場合、制御ロジックは、新たなフレームのブロックのピクセルアクティビティを再計算するのではなく、基準フレームの対応するブロックからピクセルアクティビティをコピーする。誤差が第１の閾値以上であるが第２の閾値未満である場合、制御ロジックは、動き推定データを使用して、基準フレームの対応するブロックのピクセルアクティビティから推定（extrapolate）して、新たなフレームのブロックのピクセルアクティビティの推定値を生成する。そうでなく、誤差が第２の閾値以上である場合、制御ロジックは、従来のアプローチを使用して、新たなフレームのブロックのピクセルアクティビティを計算する。
【０００９】
図１を参照すると、コンテンツを符号化及び復号化するためのシステム１００の一実施形態のブロック図が示されている。システム１００は、サーバ１０５と、ネットワーク１１０と、クライアント１１５と、ディスプレイ１２０と、を含む。他の実施形態では、システム１００は、ネットワーク１１０を介してサーバ１０５に接続された複数のクライアントを含み、複数のクライアントは、サーバ１０５によって生成された同じビットストリーム又は異なるビットストリームを受信する。また、システム１００は、複数のクライアントのために複数のビットストリームを生成する２つ以上のサーバ１０５を含む場合もある。
【００１０】
一実施形態では、システム１００は、ビデオコンテンツの符号化及び復号化を実施する。様々な実施形態では、ビデオゲームアプリケーション、クラウドゲーミングアプリケーション、仮想デスクトップインフラストラクチャアプリケーション、又は、画面共有アプリケーション等の様々なアプリケーションが、システム１００によって実施される。他の実施形態では、システム１００は、他のタイプのアプリケーションを実行する。一実施形態では、サーバ１０５は、ビデオ又は画像のフレームをレンダリングし、フレームのブロックのピクセルアクティビティメトリックを生成し、フレームをビットストリームに符号化し、次いで、符号化されたビットストリームを、ネットワーク１１０を介してクライアント１１５に伝送する。クライアント１１５は、符号化されたビットストリームを復号化し、ビデオ又は画像のフレームを生成してディスプレイ１２０又はディスプレイコンポジタに送る。
【００１１】
一実施形態では、サーバ１０５は、ピクセルアクティビティメトリックを最初から計算するのではなく、フレームのブロックのピクセルアクティビティメトリックの推定値を生成する。例えば、フレームｆにおけるブロック（ｉ，ｊ）を、ブロック（f，ｉ，ｊ）として示す。一実施形態では、ピクセルアクティビティメトリックは、基準フレーム（ｆ１）内のブロック（ｆ１，ｉ，ｊ）について利用可能である。一実施形態では、動きベクトルは、現在のフレームｆ内の全てのブロックについて計算される。動き推定データを計算する１つの方法は、基準画像内の基準ブロックのピクセルサンプルと、現在の画像内の別の候補ブロックとの間の差分絶対値和（ＳＡＤ）を決定することである。現在のブロックの候補は、「検索領域」内の複数の位置であり、その各々は、ｄｘ及びｄｙの水平及び垂直変位を有する。動き推定は、検索領域内で最小のＳＡＤを有するベクトル（ｄｘ，ｄｙ）を見つける。この場合、ＳＡＤは、「コスト」と呼ばれる。他のコスト関数も考えられる。基準画像は、現在の画像と異なる画像（時間的）であってもよいし、同じ画像（空間的）であってもよい。動きベクトルＭＶ（ｄｘ，ｄｙ，ｉ，ｊ，Ｃ）は、ブロックｉ及びｊのｄｘ変位及びｄｙ変位を有し、コストＣを有する動きベクトルを表す。ブロック（ｉ，ｊ，ｆ）のピクセルアクティビティメトリックは、ブロック（ｉ−ｄｘ，ｊ−ｄｙ，ｆ１）のピクセルアクティビティメトリックに基づいて計算される。ここで、ｆ１は、動きベクトル（ｄｘ，ｄｙ，ｉ，ｊ，Ｃ）を有する基準フレームである。
【００１２】
一実施形態では、Ｃ＜閾値１である場合、２つのブロックは類似しており、新たなブロックのピクセルアクティビティメトリックは、基準フレーム内の関連するブロックのピクセルアクティビティメトリックとして推定される。Ｃ≧閾値１及びＣ＜閾値２の場合、２つのブロックは類似しているが、いくつかの違いがある。この場合、要件に応じて、伝達関数を使用してコストＣを補正係数にマッピングする。補正係数は、基準ブロックのピクセルアクティビティメトリックを更新して、現在のブロックのピクセルアクティビティメトリックの推定値を生成するために使用される。代わりに、動き推定コスト及び基準ブロックのピクセルアクティビティメトリックを含むいくつかの情報を収集して、新たなブロックのピクセルアクティビティメトリックを計算するために、機械学習ソリューションが使用される。Ｃ＞閾値２の場合、２つのブロックは異なっており、そのブロックのピクセルアクティビティメトリックは最初から計算される。
【００１３】
ネットワーク１１０は、無線接続、直接ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、広域エリアネットワーク（ＷＡＮ）、イントラネット、インターネット、ケーブルネットワーク、パケット交換網、光ファイバネットワーク、ルータ、ストレージエリアネットワーク、若しくは、他のタイプのネットワークを含む、任意のタイプのネットワーク又はネットワークの組み合わせを表す。ＬＡＮの例は、イーサネット（登録商標）ネットワーク、光ファイバ分散データインタフェース（ＦＤＤＩ）ネットワーク、及び、トークンリングネットワークを含む。様々な実施形態では、ネットワーク１１０は、リモートダイレクトメモリアクセス（ＲＤＭＡ）ハードウェア及び／若しくはソフトウェア、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）ハードウェア及び／若しくはソフトウェア、ルータ、リピータ、スイッチ、グリッド、並びに／又は、他の構成要素を含む。
【００１４】
サーバ１０５は、ビデオ／画像フレームをレンダリングし、フレームをビットストリームに符号化するためのソフトウェア及び／又はハードウェアの任意の組み合わせを含む。一実施形態では、サーバ１０５は、１つ以上のサーバの１つ以上のプロセッサで実行される１つ以上のソフトウェアアプリケーションを含む。また、サーバ１０５は、ネットワーク通信機能、１つ以上の入出力装置、及び／又は、他の構成要素を含む。サーバ１０５のプロセッサ（複数可）は、任意の数及びタイプ（例えば、グラフィックスプロセッシングユニット（ＧＰＵ）、中央演算処理装置（ＣＰＵ）、デジタルシグナルプロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ））のプロセッサを含む。プロセッサ（複数可）は、プロセッサ（複数可）によって実行可能なプログラム命令を記憶する１つ以上のメモリデバイスに結合されている。同様に、クライアント１１５は、ビットストリームを復号化し、フレームをディスプレイ１２０に送るためのソフトウェア及び／又はハードウェアの任意の組み合わせを含む。一実施形態では、クライアント１１５は、１つ以上のコンピューティングデバイスの１つ以上のプロセッサで実行される１つ以上のソフトウェアアプリケーションを含む。様々な実施形態では、クライアント１１５は、コンピューティングデバイス、ゲームコンソール、モバイル機器、ストリーミングメディアプレーヤ、又は、他のタイプのデバイスである。
【００１５】
図２を参照すると、ビデオのフレームを符号化するためのサーバ２００のソフトウェア構成要素の一実施形態のブロック図が示されている。他の実施形態では、サーバ２００は、他の構成要素を含み、及び／又は、図２に示されている以外の他の適切な方法で構成されることに留意されたい。ビデオの新たなフレーム２０５は、インタフェース２０８上でサーバ２００によって受信され、動きベクトルユニット２１０、制御ロジック２２０及びエンコーダ２３０に結合される。実施形態に応じて、インタフェース２０８は、バスインタフェース、メモリインタフェース、又は、通信ファブリック及び／若しくは他のタイプ（複数可）のデバイス（複数可）への相互接続である。動きベクトルユニット２１０、制御ロジック２２０及びエンコーダ２３０の各々は、ハードウェア及び／又はソフトウェアの任意の適切な組み合わせを使用して実装されている。動きベクトルユニット２１０は、新たなフレーム２０５と基準フレーム２０７との比較に基づいて、新たなレーム２０５のブロックの動きベクトル２１５を生成する。一実施形態では、基準フレーム２０７は、メモリ２４０に記憶される。メモリ２４０は、符号化プロセスに関連するデータ及び／又は命令を記憶するための任意の数及びタイプのメモリ又はキャッシュデバイス（複数可）を表す。
【００１６】
動きベクトル２１５は、制御ロジック２２０及びエンコーダ２３０に提供される。制御ロジック２２０は、動きベクトル２１５に基づいて、基準フレームで計算されたピクセルアクティビティ２２２から、推定されたピクセルアクティビティ２２５を生成する。例えば、一実施形態では、制御ロジック２２０は、ブロック単位で新たなフレーム２０５を処理する。制御ロジック２２０は、ブロック毎に、ブロックと、対応する動きベクトル２１５によって識別された基準フレーム２０７の対応するブロックと、の間の差分コストの計算された和を取得する。ブロックの差分コストの和が第１の閾値未満である場合、制御ロジック２２０は、ブロックの推定されたピクセルアクティビティ２２５を、基準フレーム２０７の対応するブロックに対する、以前に計算されたピクセルアクティビティ２２２として生成する。
【００１７】
ブロックの差分コストの和が第１の閾値以上であるが第２の閾値未満である場合、制御ロジック２２０は、ブロックの動きベクトル２１５に基づいて、基準フレーム２０７の対応するブロックのピクセルアクティビティ２２２から推定（extrapolating）することによって、ブロックの推定されたピクセルアクティビティ２２５を生成する。例えば、一実施形態では、制御ロジック２２０は、伝達関数を使用して、差分コストの和を、基準フレーム２０７からの対応するブロックのピクセルアクティビティ２２２を更新するのに使用される補正係数にマッピングする。基準フレーム２０７からの対応するブロックからの更新されたピクセルアクティビティは、次に、新たなフレーム２０５のブロックの推定されたピクセルアクティビティ２２５として使用される。一実施形態では、伝達関数は、ルックアップテーブルを使用して適用される。ブロックの差分コストの和が第２の閾値以上である場合、制御ロジック２２０は、従来の技術を使用して、ブロックのピクセルアクティビティを最初から生成する。
【００１８】
図３を参照すると、ビデオフレーム３０５Ａ〜３０５Ｄのシーケンスに対する動きベクトル３１５Ａ〜３１５Ｃのセットの一実施形態のブロック図が示されている。フレーム３０５Ａ〜３０５Ｄは、ビデオシーケンスの連続フレームを表す。ボックス３１０Ａは、フレーム３０５Ａ内のピクセルの個々のブロックを表す。また、ボックス３１０Ａは、マクロブロックとも呼ばれる。矢印３１５Ａは、ビデオシーケンスがフレーム３０５Ａから３０５Ｂに移動するときのボックス３１０Ａ内の画像の既知の動きを表す。矢印３１５Ａによって示される既知の動きは、動きベクトルによって定義することができる。動きベクトル３１５Ａ〜３１５Ｃは、後続のフレームにおけるボックス３１０の動きの方向を示すが、別の実施形態では、動きベクトルは、画像の動きと反対の方向を示すように定義される場合があることに留意されたい。例えば、いくつかの圧縮規格では、マクロブロックに関連する動きベクトルは、基準フレーム内のそのブロックのソースを指す。基準フレームは、時間的に前後する場合がある。動きベクトルは、いくつかの実施形態において、エントロピーを表す場合があることにも留意されたい。
【００１９】
一実施形態では、ボックス３１０Ｂ〜３１０Ｄは、動きベクトル３１５Ａ〜３１５Ｃを使用して、後続のフレームで追跡することができる。例えば、動きベクトル３１５Ａは、フレーム３０５Ａのボックス３１０Ａと比較した、フレーム３０５Ｂのボックス３１０Ｂの位置の変化を示す。同様に、動きベクトル３１５Ｂは、フレーム３０５Ｂのボックス３１０Ｂと比較した、フレーム３１０Ｃのボックス３１０Ｃの位置の変化を示す。また、動きベクトル３１５Ｃは、フレーム３０５Ｃのボックス３１０Ｃと比較した、フレーム３１０Ｄのボックス３１０Ｄの位置の変化を示す。別の実施形態では、動きベクトルは、所定のフレームから以前のフレームに戻るブロックの逆方向の動きを追跡するために定義される。
【００２０】
一実施形態では、エンコーダが、新たなフレームのブロックについて様々なピクセルアクティビティメトリックを生成する必要がある場合、エンコーダは、以前のフレームの対応するブロックの以前に計算されたピクセルアクティビティメトリックに基づいて、ピクセルアクティビティメトリックの推定値を生成する。一実施形態では、エンコーダは、動きベクトル３１５Ａ〜３１５Ｃを使用して、以前のフレームの何れの対応するブロックが新たなフレームの所定のブロックと一致するのかを識別する。次に、エンコーダは、新たなフレームのブロックのピクセルアクティビティメトリックの推定値を生成するのに役立てるために、以前のフレームの識別されたブロックについて以前に計算されたピクセルアクティビティメトリックを使用する。一実施形態では、エンコーダは、以前に計算されたピクセルアクティビティメトリックを、補正無しに、新たなフレームのブロックのピクセルアクティビティメトリックの推定値として使用する。別の実施形態では、エンコーダは、伝達関数を使用して差分コストの和又はブロック間の任意の他のコストを補正係数にマッピングすることによって、以前に計算されたピクセルアクティビティメトリックから推定（extrapolate）する。次に、補正係数は、新たなフレームのブロックのピクセルアクティビティメトリックの推定値を生成するために、以前に計算されたピクセルアクティビティに適用される。
【００２１】
図４に参照すると、動きベクトルを利用して空間ブロックレベルのピクセルアクティビティ抽出の最適化を実施する方法４００の一実施形態が示されている。説明のために、本実施形態のステップ及び図５〜図６のステップは、順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素の１つ以上が、同時に実行されてもよいし、図示した順序と異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。また、必要に応じて、他の追加の要素も実行される。本明細書で説明する様々なシステム又は装置の何れも、方法４００を実施するように構成されている。
【００２２】
動きベクトルユニットは、１つ以上の基準フレームの対応するブロックと比較して、ビデオストリームの新たなフレームのブロックの差分コスト絶対値和を計算する（ブロック４０５）。一実施形態では、コストは、差分コスト絶対値和である。他の実施形態では、コストは、新たなフレームのブロックと、１つ以上の基準フレームの対応するブロックと、から計算された他のタイプのコスト又は誤差である。一実施形態では、動きベクトルユニットは、エンコーダの一部であり、エンコーダは、制御ロジックも含む。一実施形態では、エンコーダは、少なくとも１つのメモリデバイスに結合された少なくとも１つのプロセッサを備えるシステム上に実装される。一実施形態では、エンコーダは、クラウドコンピューティング環境の一部であるサーバ上に実装される。動きベクトルユニットは、基準フレーム（複数可）の対応するブロックとの比較に基づいて、新たなフレームのブロックの動きベクトルを生成する（ブロック４１０）。エンコーダ制御ロジックは、新たなフレームのブロックのコスト及び動きベクトルを受信する（ブロック４１５）。
【００２３】
また、制御ロジックは、基準フレーム（複数可）のブロックの以前に計算されたブロックレベルのピクセルアクティビティも受信する（ブロック４２０）。次に、制御ロジックは、新たなフレームのブロックのコスト及び動きベクトルに基づいて、並びに、基準フレーム（複数可）のブロックの以前に計算されたブロックレベルのピクセルアクティビティに基づいて、新たなフレームのブロックのブロックレベルのピクセルアクティビティの推定値を生成する（ブロック４２５）。ブロック４２５の後に、方法４００は終了する。ブロック４２５を実行するための実施形態の一例は、図５の説明において以下により詳細に説明される。様々な実施形態では、新たなフレームのブロックのブロックレベルのピクセルアクティビティは、新たなフレームを分類するための、及び／又は、新たなフレームのさらなる分析を実行するための、新たなフレームの符号化に役立つ。一実施形態では、新たなフレームのブロックのブロックレベルのピクセルアクティビティを使用して、新たなフレームを複数のカテゴリのうち何れかに分類し、新たなフレームに何れのタイプのオブジェクトが存在するのかを識別し、及び／又は、他のアクションを実行する。
【００２４】
図５を参照すると、新たなフレームのブロックのブロックレベルのピクセルアクティビティを生成する方法５００の一実施形態が示されている。エンコーダ制御ロジックは、符号化する新たなフレームを受信する（ブロック５０５）。エンコーダ制御ロジックは、ハードウェア及び／又はソフトウェアの任意の適切な組み合わせを使用して実装される。制御ロジックは、ブロック単位で新たなフレームを分析する（ブロック５１０）。この説明のために、制御ロジックが、符号化する新たなフレームを受信した場合、動き推定データ（例えば、動きベクトル）及びコストは、新たなフレームのブロックについて既に計算されていると仮定する。動き推定データ又はコストが計算されていない実施形態では、制御ロジックは、符号化する新たなフレームを受信したことに応じて、これらの値を計算する。実施形態に応じて、任意のタイプのコストを計算することができる。
【００２５】
新たなフレームのブロック毎にブロックのコストが第１の閾値未満である場合（条件付きブロック５１５：ｙｅｓ）、制御ロジックは、１つ以上の基準フレームの対応するブロックの以前に計算されたピクセルアクティビティに等しいものとして、ブロックのピクセルアクティビティの推定値を推定する（ブロック５２０）。ブロックのコストが第１の閾値以上である場合（条件付きブロック５１５：ｎｏ）、制御ロジックは、ブロックのコストが第２の閾値未満であるかどうかを判別する（条件付きブロック５２５）。ブロックのコストが第２の閾値未満である場合（条件付きブロック５２５：ｙｅｓ）、制御ロジックは、ブロックの動き推定データに基づいて、基準フレーム（複数可）の対応するブロックの以前に計算されたピクセルアクティビティから推定（extrapolating）することによって、ブロックのピクセルアクティビティの推定値を生成する（ブロック５３０）。ブロックのコストが第２の閾値以上である場合（条件付きブロック５２５：ｎｏ）、制御ロジックは、基準フレーム（複数可）の対応するブロックの以前に計算されたピクセルアクティビティ、及び、ブロックの動き推定データとは関係無く、ブロックのピクセルアクティビティを計算する（ブロック５３５）。言い換えると、制御ロジックは、ブロック５３５において、従来の方法でブロックのピクセルアクティビティを最初から計算する。ブロック５２０，５３０，５３５の後に、方法５００は終了する。
【００２６】
図６を参照すると、ピクセルアクティビティメトリック生成スキームを決定する方法６００の一実施形態が示されている。エンコーダは、１つ以上の基準フレームの対応するブロックと比較して、新たなフレームのブロックのコストのヒストグラムを生成する（ブロック６０５）。少なくとも所定の割合のブロックが閾値を超えるコストを有する場合（条件付きブロック６１０：ｙｅｓ）、エンコーダは、従来の方法で、新たなフレームのブロックのピクセルアクティビティメトリックを計算する（ブロック６１５）。所定の割合及び閾値の値は、実施形態によって異なる。所定の割合未満のブロックが閾値を超えるコストを有する場合（条件付きブロック６１０：ｎｏ）、エンコーダは、基準フレーム（複数可）の以前に計算されたピクセルアクティビティメトリック、コスト、及び、新たなフレームのブロックの動きベクトルに基づいて、新たなフレームのブロックのピクセルアクティビティメトリックの推定値を生成する（ブロック６２０）。ブロック６２０を実行する一例は、図５に関連する説明において説明されている。ブロック６１５，６２０の後に、方法６００は終了する。
【００２７】
図７を参照すると、ビデオストリームの連続フレーム及び対応する動きベクトルの一実施形態のブロック図が示されている。いくつかの実施形態では、ピクセルアクティビティメトリックは、任意の基準ブロックについて利用できない場合がある。例えば、アクティビティは、マクロブロック粒度においてのみ利用可能であり、これは、ｉ及びｊが整数である場合に、位置（１６×ｉ，１６×ｊ）における基準ブロックのみが利用可能であることを意味し得る。１６ピクセル×１６ピクセルのブロックサイズの例は、一実施形態を示すに過ぎないことに留意されたい。他の実施形態では、マクロブロック又はコーディングユニットは、他のサイズを有する場合がある。他の動きベクトルの場合、ピクセルアクティビティメトリックの値の推定値は、誤差が許容できる場合に、１つ以上のピクセルの元となるブロックに基づいて推定することができる。特定のケースでは、１つ以上のピクセルは、１つのブロックが元となるであろう。他のケースでは、１つ以上のピクセルは、最大４つのブロックが元となるであろう。図７に示す例では、１つ以上のピクセルは、２つのブロックが元となっている。
【００２８】
時間「ｔ−２」及び「ｔ−１」における２つの連続ビデオフレーム７０５，７１０が図７に示されている。時間「ｔ−２」におけるビデオフレーム７０５内では、ブロック（０，２，ｔ−２）がピクセルアクティビティメトリックＡ０，２を有しており、ブロック（１，２，ｔ−２）がピクセルアクティビティメトリックＡ１，２を有している。時間「ｔ−１」におけるビデオフレーム７１０内では、ブロック（１，２，ｔ−１）がピクセルアクティビティメトリックＮ１，２を有している。一実施形態では、フレーム７０５の一致するピクセルと比較されたブロック（１，２，ｔ−１）のコストが第１の閾値未満である場合、動きベクトル７１５の一致は、僅差の一致（close match）と考えられるので、以下の推定方法を使用することができる。この説明のために、ブロック（０，２，ｔ−２）は、そのピクセルのｗ０パーセントがブロック（１，２，ｔ−１）に寄与し、ブロック（１，２，ｔ−２）は、そのピクセルのｗ１パーセントがブロック（１，２，ｔ−１）に寄与すると仮定する。考えられる誤差は、ｗ０及びｗ１の最大値に反比例する。考えられる誤差に基づいて、単に推定値を生成するのではなく、アクティビティの計算を必要とするブロックを決定することができる。一実施形態では、推定値は、Ａ０，２若しくはＡ１，２の高い方、又は、ｗ０＋ｗ１＝１である場合に、Ｎ１，２＝ｗ０×Ａ０，２＋ｗ１×Ａ１，２等の補間であってもよい。
【００２９】
場合によっては、候補推定領域を、考えられる誤差に関わらずに随時計算することができる。例えば、候補推定領域は、ランダムに生成された値ｘがランダムな閾値を超える場合に、計算することができる。これは、推定されたピクセルアクティビティメトリックが実際の信号から大きくずれないことを確実にするためである。１つのシナリオでは、ランダムな閾値が．９に設定されており、これは、ピクセルアクティビティメトリックの実際の計算が９０％省略されることを意味する。より高い精度が必要とされる場合には、ランダムな閾値の値を低減することができる。
【００３０】
図８を参照すると、異なるブロックメトリック粒度レベルを有するフレームの一実施形態のブロック図が示されている。離散勾配等の多くのピクセルアクティビティメトリックが、領域上で累積される。一実施形態では、これらのピクセルアクティビティメトリックは、より細かい粒度でメトリックを記憶することによって、合計領域テーブルを記憶することによって、又は、特定の数学的特性（例えば、同次（homogeneous）、加法的（additive））を有するメトリックの高速計算を可能にする他の加速データ構造（acceleration data structures）を使用することによって、高速推定のために構造化される。これらのデータ構造から適切な値を集約することによって、推定値が迅速に計算される。例えば、低メトリック粒度フレーム８１０の領域８３０のピクセルアクティビティメトリックは、高メトリック粒度フレーム８０５の領域８１５Ａ〜８１５Ｄのピクセルアクティビティメトリックを互いに加算することによって、推定される。領域８１５Ｂ，８１５Ｄによって含まれる余分な領域が有意でないと考えられるので、この推定値は許容される（つまり、誤差が許容されるものとして計算される）。同様に、領域８１５Ａ，８１５Ｃのすぐ隣で欠落した領域も有意でないと考えられる。追加の精度が必要とされる場合、追加の必要とされる領域及び不要な領域でのメトリックの寄与度を計算及び調整することによって、補正が行われる。
【００３１】
高メトリック粒度フレーム８０５の推定値が十分に正確でないと考えられる場合、推定値を補正することができる。例えば、一実施形態では、拡大図８２０に示す補正８２５Ａは、対応するマーク領域におけるメトリックの寄与度について計算される。別の補正８２５Ｂが、対応するマーク領域におけるメトリックの寄与度について計算される。次に、基準ブロックのピクセルアクティビティメトリックが、補正８２５Ａを加え、補正８２５Ｂを差し引いた領域８１５Ａ〜８１５Ｄのメトリックを互いに加算することによって推定される。この例では、必要とされる補正は、水平オフセットによって生じる誤差に起因する。異なる位置合わせにより、垂直オフセット誤差を処理するために補正が必要とされる場合がある。或いは、他の位置合わせの場合、垂直オフセットと水平オフセットの両方について調整するために補正が必要とされる場合がある。
【００３２】
図９を参照すると、異なる粒度でピクセルアクティビティメトリックを計算する方法９００の一実施形態が示されている。エンコーダは、基準フレームのブロックのピクセルアクティビティメトリックを第１の粒度で計算する（ブロック９０５）。エンコーダは、新たなフレームのブロックのピクセルアクティビティメトリックの推定値を第２の粒度で生成し、第１の粒度は、第２の粒度よりも細かい粒度であり、推定値は、基準フレームのブロックのピクセルアクティビティメトリックに基づいて生成される（ブロック９１０）。第２の粒度で新たなフレームのブロックのピクセルアクティビティメトリックの推定値を生成することの一部として、エンコーダは、動きベクトルに基づいて、新たなフレームの各ブロックに対応する基準フレームの複数のブロックを識別する（ブロック９１５）。次に、エンコーダは、新たなフレームのブロック毎に、基準フレームから複数のブロックのピクセルアクティビティメトリックを合計することによって、ピクセルアクティビティメトリックの累積推定値を生成する（ブロック９２０）。ブロック９２０の後に、方法９００は終了する。
【００３３】
様々な実施形態では、本明細書で説明した方法及び／又はメカニズムを実施するために、ソフトウェアアプリケーションのプログラム命令が使用される。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態では、このようなプログラム命令は、高水準プログラミング言語によって表されている。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ形式、中間形式、又は、他の形式にコンパイルされる。或いは、ハードウェアの動作及び設計を記述するプログラム命令が生成される。このようなプログラム命令は、Ｃ言語等の高水準プログラミング言語で表される。或いは、Ｖｅｒｉｌｏｇ等のハードウェア設計言語（ＨＤＬ）が用いられる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体に記憶される。記憶媒体は、使用中にコンピューティングシステムによってアクセスされ、プログラムを実行するためにコンピューティングシステムにプログラム命令を提供する。一般的に、このようなコンピューティングシステムは、少なくとも１つ以上のメモリと、プログラム命令を実行するように構成された１つ以上のプロセッサと、を含む。
【００３４】
上述した実施形態は、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に理解されれば、多くの変形及び修正が当業者に明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含するように解釈されることが意図される。
【図１】
2022501893.tif 000003
【図２】
2022501893.tif 000004
【図３】
2022501893.tif 000005
【図４】
2022501893.tif 000006
【図５】
2022501893.tif 000007
【図６】
2022501893.tif 000008
【図７】
2022501893.tif 000009
【図８】
2022501893.tif 000010
【図９】
2022501893.tif 000011
【国際調査報告】
2022501893.tif 000012
2022501893.tif 000013