JP2024026023A - オプティカル・フローを使用したフレーム・レート・アップコンバージョン - Google Patents

オプティカル・フローを使用したフレーム・レート・アップコンバージョン Download PDF

Info

Publication number
JP2024026023A
JP2024026023A JP2022159253A JP2022159253A JP2024026023A JP 2024026023 A JP2024026023 A JP 2024026023A JP 2022159253 A JP2022159253 A JP 2022159253A JP 2022159253 A JP2022159253 A JP 2022159253A JP 2024026023 A JP2024026023 A JP 2024026023A
Authority
JP
Japan
Prior art keywords
motion vector
frame
motion vectors
pixel
pixel data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022159253A
Other languages
English (en)
Inventor
マハラナ オーロビンダ
Maharana Aurobinda
セクカッパン カルシック
Sekkappan Karthick
ナスクルワール ロイット.
Naskulwar Rohit
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of JP2024026023A publication Critical patent/JP2024026023A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0135Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
    • H04N7/014Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Studio Devices (AREA)

Abstract

【課題】オプティカル・フローを使用したフレーム・レート・アップコンバージョンを提供する。【解決手段】実例で、2つの隣接するフレームの運動ベクトルに基づくフレームの内挿又は外挿を試みるとき、フレーム内の所与の位置にマップされた複数の画素値が存在し得る。所与の位置の矛盾する画素値から選択するために、矛盾及びグローバル・フローを引き起こすソース画素の運動ベクトル間の類似性が、評価され得る。たとえば、運動ベクトルの類似性のレベルは、グローバル運動ベクトルの角度と運動ベクトルの角度との差に少なくとも基づく類似性メトリックを使用して計算され得る。類似性メトリックはまた、グローバル運動ベクトルの大きさと運動ベクトルの大きさとの差に少なくとも基づき得る。類似性メトリックは、グローバル運動ベクトルの大きさに比例して角度の差を量り得る。【選択図】図1

Description

フレーム・レート・アップコンバージョン(FRUC:Frame Rate Up-Conversion)は、同じ存続期間に表示するために使用可能なフレームの数を増やすことによってビデオのフレーム・レートを増やすための技法を指す。いくつかの一般的なFRUC技法は、完全レンダリング・パイプラインを使用する代わりに、既にレンダリングされたフレームを参考として使用して1つ又は複数の新しいフレームの画素データを生成することによって、利用可能なフレームの数を増やす。これらの新しいフレームは、ビデオ内のフレームの総数を増やすために、ビデオに追加フレームとして挿入され得る。これらのFRUC技法は、オプティカル・フローを使用して場面内の運動に基づいて参照レンダリング済みフレーム間の画素の挙動のパターンを認識し得る。これらのパターンは、参照フレームからのソース画素をワープして中間フレームの画素の画素データを生成することによって新しいフレームの画素における画素データを予測するために使用され得る。画素ワープを実行するとき、同じ又は異なる参照フレームからの複数のソース画素が中間フレームの同じ位置にマップされる場合、たとえば、ソース画素が、フレームにおいて描写された環境内の異なる深度に位置する特徴(たとえば、物体及び物体表面)に対応する場合などに、コリジョンが生じ得る。よりリアルな中間フレームを製作するために、これらのコリジョンは、中間フレームにおけるソース画素の相対深度を反映するために、解消されるべきである。
参照フレームのソース画素間のコリジョンを解消するための従来の手法は、画素の深度値を使用して中間フレーム内の位置の前景画素を選択し得る。いくつかの実例では、深度値は、フレームをレンダリングするために使用されたゲーム・エンジンによって、提供される。しかしながら、ゲーム・エンジンからの深度値にアクセスするには、常に実現可能又は入手可能でないことがある、ゲーム・エンジンとの緊密な統合が必要である。他の実例において、深度値は、フレーム自体に対応するデータを使用して、生成され得る。しかしながら、フレームから深度値を生成することは、計算コストが高く、非常に時間がかかることがあり、リアルタイムの又はほぼリアルタイムのレートでFRUCを実行する能力を妨げ得る。
本開示の実施例は、フレーム・レート・アップコンバージョン・アプリケーションにおけるコリジョン解消のためのオプティカル・フローの使用に関する。特に、本開示は、オプティカル・フローを使用して計算されたグローバル運動ベクトルに画素の運動ベクトルがいかに類似しているかに少なくとも基づいて、別のフレームからの画素を使用して、フレーム内の位置の画素データを生成するかどうかを決定するための手法に関する。開示される手法は、グローバル運動ベクトルにより類似していない運動ベクトルを有する画素を選択すること-たとえば、コリジョンと関連する画素から-に少なくとも基づいて、中間フレームを生成するときに、異なるソース又は参照フレームの画素間のコリジョンを解消するために使用され得る。
前述のものなどの従来の手法とは対照的に、開示される手法は、1つ又は複数のグローバル運動ベクトルとその他のフレームの部分の1つ又は複数の運動ベクトルとの間の類似性のレベルに少なくとも基づいて、1つ又は複数の他のフレームの1つ又は複数の部分を使用して、1つ又は複数のフレーム内の少なくとも1つの位置の画素データを生成することができる。フレームのグローバル運動ベクトルは、フレーム全体の運動を表し得る。類似性のレベルは、たとえば、フレーム内の位置の画素及び/又は画素の重み付けを使用して、画像内の位置の画素データを生成するかどうかを決定するために、使用され得る。類似性のレベルは、グローバル運動ベクトルの1つ又は複数の角度と1つ又は複数の部分に対応する運動ベクトルの1つ又は複数の角度との差に少なくとも基づく類似性メトリックを使用して、類似性スコアとして計算され得る(1つ又は複数の実施例において)。加えて、又は別法として、類似性メトリックは、グローバル運動ベクトルの1つ又は複数の大きさと1つ又は複数の部分に対応する運動ベクトルの1つ又は複数の大きさとの差に少なくとも基づき得る。類似性メトリックは、グローバル運動ベクトルの大きさに比例して1つ又は複数の角度の差を量り得る。
フレーム・レート・アップコンバージョンにおけるコリジョン解消のためにグローバル運動を使用する本システム及び方法について、以下のような添付の図面を参照して、詳しく後述する。
本開示のいくつかの実施例による、フレーム生成システムの一実例を描いた図である。 本開示のいくつかの実施例による、画像部分間のコリジョンの一実例を示す図である。 本開示のいくつかの実施例による、フレーム及びフレームから生成され得る外挿されたフレームの画像コンテンツの実例を示す図である。 本開示のいくつかの実施例による、グローバル運動ベクトル及びグローバル運動ベクトルと比較され得る運動ベクトルの実例を示すグラフである。 本開示のいくつかの実施例による、複数の画像部分の位置を決定することに少なくとも基づいて画像内の位置の画素データを決定するための方法を示す流れ図である。 本開示のいくつかの実施例による、複数の画像部分間の位置の矛盾を識別することに少なくとも基づいて画像内の位置の画素データを決定するための方法を示す流れ図である。 本開示のいくつかの実施例による、グローバル運動と1つ又は複数の画像部分に対応する運動との類似性のレベルに少なくとも基づいて画像内の位置の画素データを決定するための方法を示す流れ図である。 本開示のいくつかの実施例を実装する際に使用するのに適した例示的コンテンツ・ストリーミング・システムのブロック図である。 本開示のいくつかの実施例を実装する際に使用するのに適した例示的コンピューティング・デバイスのブロック図である。 本開示のいくつかの実施例を実装する際に使用するのに適した例示的データ・センタのブロック図である。
本開示は、フレーム・レート・アップコンバージョンにおけるコリジョン解消のためのグローバル運動の使用に関する。特に、本開示は、画素の運動ベクトルがグローバル運動ベクトルにいかに類似しているかに少なくとも基づいて別のフレームからの画素を使用してフレーム内の位置の画素データを生成するかどうかを決定するための手法に関する。開示される手法は、グローバル運動ベクトルにより類似していない運動ベクトルを有する画素を選択することに少なくとも基づいて異なるフレームの画素間のコリジョンを解消するために使用され得る。
開示される手法は、1つ又は複数のグローバル運動ベクトルと1つ又は複数の他のフレームの1つ又は複数の部分の1つ又は複数の運動ベクトルとの類似性のレベルに少なくとも基づいて、1つ又は複数の他のフレームの1つ又は複数の部分を使用して、1つ又は複数のフレーム内の少なくとも1つの位置の画素データを生成することができる。画素の運動ベクトルが、フレームのグローバル運動ベクトルに類似しているとき、それは、その画素がフレームの背景内の物体又は表面を描写していることを示し得る。同様に、画素の運動ベクトルが、フレームのグローバル運動ベクトルと有意に異なるとき、それは、その画素がフレームの前景内の物体又は表面を描写していることを示し得る。したがって、類似性のレベルは、たとえば、位置の画素及び/又は画素の重み付けを使用して画像内の位置の画素データを生成するかどうかを決定するために、使用され得る。たとえば、画素は、その画素の運動ベクトルは他の画素の運動ベクトルよりもグローバル運動ベクトルに類似していないと決定することに少なくとも基づいて、その少なくとも1つの他の画素よりもその位置について選択され得る。
フレームのグローバル運動ベクトルは、フレーム全体の運動を表し得る。少なくとも1つの実施例において、グローバル運動ベクトルは、フレームの運動ベクトルを使用して、計算され得る。たとえば、グローバル運動ベクトルは、運動ベクトルの統計的組合せに少なくとも基づいて計算され得る。統計的組合せの実例には、平均値、モード、中央値、及び/又は1つ又は複数の他の統計的に導出された値が含まれる。
少なくとも1つの実施例において、1つ又は複数のフレームの1つ又は複数の部分の類似性のレベルは、類似性メトリックを使用して類似性スコアとして計算され得る。類似性メトリックは、1つ又は複数のグローバル運動ベクトルの1つ又は複数の角度と1つ又は複数の部分の1つ又は複数の運動ベクトルの1つ又は複数の角度との差に少なくとも基づき得る。加えて、又は別法として、類似性メトリックは、1つ又は複数のグローバル運動ベクトルの1つ又は複数の大きさと1つ又は複数の部分の1つ又は複数の運動ベクトル(たとえば、ローカル運動ベクトル)の1つ又は複数の大きさとの差に少なくとも基づき得る。少なくとも1つの実施例において、類似性メトリックは、1つ又は複数のグローバル運動ベクトルの1つ又は複数の大きさに比例して1つ又は複数の角度の差を量り得る。たとえば、角度差は、グローバル運動ベクトルの大きさが増えるにつれて、より大きい重みを与えられ得、その大きさが減るにつれて、より少ない重みを与えられ得る。
開示される手法は、フレーム・レート・アップコンバージョン(FRUC)のために使用されているものとして主として説明されているが、これは限定を意図していない。たとえば、開示される手法は、一般に、1つ又は複数の画像位置の(たとえば、同じ又は異なる画像内の、画像内挿のための、画像生成のための、画像修正のための、などの)画素データを決定する際に使用するための1つ又は複数の画像の1つ又は複数の部分を評価するために使用され得る。加えて、運動ベクトルは、運動推定値の実例として主として説明されているが、運動推定値の任意の適切な表現が、使用され得る。
本明細書に記載のシステム及び方法は、様々な目的で使用することができ、例として及び制限せずに、これらの目的には、機械制御、機械移動、機械運転、合成データ生成、モデル・トレーニング、認知、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、自律又は半自律機械アプリケーション、深層学習、環境シミュレーション、データ・センタ処理、会話型AI、光輸送シミュレーション(たとえば、レイ・トレーシング、進路トレーシングなど)、3D資産の共同コンテンツ作成、デジタル・ツイン・システム、クラウド計算のためのシステム又はアプリケーション、及び/又は任意の他の適切なアプリケーションが含まれ得る。
開示される実施例は、自動車システム(たとえば、自律又は半自律機械のための制御システム、自律又は半自律機械のための認知システム)、ロボットを使用して実装されるシステム、航空システム、中間システム、船舶システム、スマート・エリア・モニタリング・システム、深層学習動作を実行するためのシステム、シミュレーション動作を実行するためのシステム、エッジ・デバイスを使用して実装されるシステム、1つ又は複数の仮想機械(VM:virtual machine)を組み込むシステム、合成データ生成動作を実行するためのシステム、データ・センタにおいて少なくとも部分的に実装されるシステム、会話型AI動作を実行するためのシステム、光輸送シミュレーションを実行するためのシステム、3D資産の共同コンテンツ作成を実行するためのシステム、物理物体のデジタル・ツイン表現を生成又は保守するためのシステム、クラウド計算資源を使用して少なくとも部分的に実装されるシステム、及び/又は他のタイプのシステムなどの様々な異なるシステムに含まれ得る。
図1は、本開示のいくつかの実施例による、フレーム生成システム100(本明細書で「システム100」とも称される)の一実例を示す。本明細書に記載のこの及び他の配列は単に実例として説明されていることを理解されたい。他の配列及び要素(たとえば、機械、インターフェイス、機能、順番、機能のグループなど)が、示されているものに加えて又はその代わりに使用され得、いくつかの要素は、ともに省略され得る。さらに、本明細書に記載の要素の多数は、個別の若しくは分散された構成要素として又は他の構成要素と併せて、及び任意の適した組合せ及び場所で実装され得る機能エンティティである。エンティティによって実行されているものとして本明細書に記載された様々な機能は、ハードウェア、ファームウェア、及び/又はソフトウェアによって、実施され得る。たとえば、様々な機能は、メモリに記憶された命令を実行するプロセッサによって実施され得る。
システム100は、追加又は代替構成要素の中でも、運動推定器104、グローバル運動決定器106、類似性評価器108、及び/又は画素データ決定器110を使用して、実装され得る。
概要として、運動推定器104は、ビデオ102のフレーム102A及びフレーム102Bなどの1つ又は複数のフレームの間の運動を推定するように構成され得る。運動推定値(たとえば、運動ベクトル)は、1つ又は複数のフレームの1つ又は複数の特定の画素及び/又は画像部分(たとえば、ブロック)の1つ又は複数の運動推定値を含み得る。グローバル運動決定器106は、運動推定器104を使用して決定された1つ又は複数の運動推定値に対応する1つ又は複数のグローバル運動推定値(たとえば、グローバル運動ベクトル)を決定するように構成され得る。類似性評価器108は、運動推定器104を使用して決定された画素及び/又は画像部分の(たとえば、フレーム102A及び/又はフレーム102Bの)1つ又は複数の運動推定値とグローバル運動決定器106を使用して決定された1つ又は複数のグローバル運動推定値との類似性のレベルを評価するように構成され得る。画素データ決定器110は、類似性評価器108を使用して実行された1つ又は複数の類似性のレベルの評価に少なくとも基づいて、フレーム、たとえば、フレーム112、内の1つ又は複数の位置の画素データを決定するように構成され得る。
少なくとも1つの実施例において、システム100は、フレーム・レート・アップコンバージョン(FRUC)のために使用され得る。1つ又は複数の実施例によれば、FRUCのシステム又はアプリケーションは、その実例にはフレーム112が含まれる、ビデオ102の1つ又は複数の中間又は外挿フレームを生成するために、ビデオ102からのフレーム、たとえば、フレーム102A及び102B、を使用することができる。たとえば、画素データ決定器110は、フレーム112内の少なくとも1つの位置の画素データを決定するために、フレーム102A及び/又はフレーム102Bの1つ又は複数の画像部分と、フレーム112内の少なくとも1つの位置との間のマッピングの決定に少なくとも基づいて、FRUCを実行し得る。一実例として、画素データ決定器110は、位置にマップされた画素データ(たとえば、1つ又は複数の画素の)の1つ又は複数の部分を、少なくとも部分的に、使用して、その位置の画素データ(たとえば、1つ又は複数の画素の)を生成し得る。1つ又は複数の実施例において、システム100は、目標フレーム・レートに少なくとも基づいてビデオ102の1つ又は複数の中間又は外挿フレームを生成し得る。たとえば、ビデオ102が、30フレーム/秒(FPS)のフレーム・レートを有する場合、60FPSの目標フレーム・レートに達するために、システムは、ビデオ102の一連のフレーム内のフレームのペアごとに中間フレームを生成し得る。少なくとも1つの実施例において、目標フレーム・レートは、ユーザ設定可能であり得る。
ここで図2を参照すると、図2は、本開示のいくつかの実施例による、画像部分230と画像部分234との間のコリジョン200の一実例を示す。少なくとも1つの実施例において、画素データ決定器110は、コリジョン(たとえば、画素コリジョン)をもたらす、フレーム102Bからの画像部分について画素データ決定器110が決定する位置と少なくとも部分的に重なるフレーム102Aからの画像部分の位置を決定し得る。たとえば、画素データ決定器110は、画像部分230(たとえば、画素)のフレーム112内の位置232(たとえば、画素位置)を決定し得、画像部分234(たとえば、画素)のフレーム112内の位置232を決定し得る。画像部分について決定された位置が、少なくとも部分的に重なるとき、これは矛盾をもたらし得る。たとえば、環境を正確に表すフレーム112の画素データを生成するために、画素データ決定器110は、画素データ及び/又は画素データを生成するために使用される画像部分の重み付けのためにどの画像部分を使用するかを決定する必要があり得る。少なくとも1つの実施例において、それを行うために、画素データ決定器110は、位置にマップされた画像部分のうちの1つ又は複数の1つ又は複数の評価-類似性評価器108を使用して実行される-を使用し得る。評価は、1つ又は複数の対応する運動推定値と1つ又は複数のグローバル運動推定値との類似性のレベルについてでもよい。画像部分234及び230は、異なるフレームに属するものとして示されているが、少なくとも1つの実施例において、画像部分234及び230は、同じフレームに対応し得る。
ここで図3を参照すると、図3は、本開示のいくつかの実施例による、フレーム102A及び102Bの画像コンテンツとフレーム102A及び102Bから生成され得る外挿フレーム110A及び110Bとの実例を示す。図3の各ブロックは、画像の1つ又は複数の画像部分(たとえば、画素)を表し得る。
図3は、フレーム102A及び102Bの画像コンテンツが背景330の前(カメラ視点又はビューポートに関して)に物体310(又は表面)及び物体320(又は表面)を含む、実例を示す。少なくとも1つの実施例において、フレーム102Bは、ビデオ102内のフレーム102Aの後である(たとえば、すぐに又は他の方法で続く)。たとえば、フレーム102Bは、フレーム102Aよりも後の時間における環境の状態を表し得る。図3に示すように、物体310及び320(又は表面)のうちの1つ又は複数は、背景330に関して移動してあることがある。この移動は、画素データ決定器110が画像部分間の1つ又は複数のコリジョン、たとえば、図2のコリジョン200、を検出する結果をもたらし得る。グローバル運動推定値は、フレームの運動(たとえば、50%以上)を表し得るので、フレームの画像コンテンツが、主として背景330である場合、グローバル運動推定値は、背景330の運動に対応し得る。物体が、背景330又はその近くにある場合、ビデオ102をキャプチャするカメラがパンしているとき、物体(又は表面)に対応する運動推定値は、背景330に対応するグローバル運動推定値と類似し得る。運動推定値は、物体が背景330から遠くに移動するにつれて、似なくなり得る。同様に、フレームの画像コンテンツが、主として前景である場合、グローバル運動推定値は、前景の運動に対応し得る。画素データ決定器110は、フレームの画素データを決定するとき、運動推定値におけるこれらの関係を使用して、どの画像部分が背景又は前景からより近い又は遠いかを決定することができる。したがって、たとえば、画像部分のコリジョンは、これらの関係に少なくとも基づいて、解消され得る。
フレーム310Aは、画素データ決定器110が、画像部分234の上の位置232における画素データについて使用するための画像部分230を選択する、フレーム112に対応し得る。加えて、又は別法として、フレーム310Aは、画素データ決定器110が画像部分234よりも位置232における画素データについてより高く画像部分230を量る、フレーム112に対応し得る。たとえば、類似性評価器108を使用して実行される評価が、物体310の1つ又は複数の運動推定値は物体320の1つ又は複数の運動推定値よりも1つ又は複数のグローバル運動推定値に類似していることを示す場合、フレーム310Aが、生じ得る。たとえば、フレーム102A及び102Bの画像コンテンツは、主として、背景330を含むので、フレームのグローバル運動は、背景330の運動と同じ又はそれに類似し得る。したがって、物体320が、物体310に関して前景にある場合、物体310の運動推定値は、物体320よりもグローバル運動推定値に類似し得る。そのようなものとして、より高い類似性に基づいて、画素データ決定器110は、物体310の画像部分よりも物体320の画像部分を選択してフレーム310Aを生成し得る。
同様に、画素データ決定器110が、画像部分230よりも位置232における画素データについて使用するために画像部分234を選択する場合、フレーム310Bは、フレーム112に対応し得る。加えて、又は別法として、画素データ決定器110が、画像部分230よりも位置232における画素データについてより高く画像部分234を量る場合、フレーム310Bは、フレーム112に対応し得る。たとえば、類似性評価器108を使用して実行される評価が、物体320の1つ又は複数の運動推定値は物体310の1つ又は複数の運動推定値よりも1つ又は複数のグローバル運動推定値に類似していると示す場合、フレーム310Bが、生じ得る。たとえば、本明細書に記載のように、フレーム102A及び102Bの画像コンテンツは、主として、背景330を含むので、フレームのグローバル運動は、背景330の運動と同じ又は類似し得る。したがって、物体310が、物体320に関して前景にある場合、物体320の運動推定値は、物体310よりもグローバル運動推定値に類似し得る。そのようなものとして、より高い類似性に基づいて、画素データ決定器110は、物体320の画像部分よりも物体310の画像部分を選択してフレーム310Bを生成し得る。
本明細書に記載のように、運動推定器104は、1つ又は複数のフレーム、たとえば、ビデオ102のフレーム102A及びフレーム102B(又はより一般的には一連のフレーム又は画像)、の間の運動を推定するように構成され得る。運動推定値(たとえば、運動ベクトル)は、1つ又は複数のフレームの1つ又は複数の特定の画素及び/又は画像部分(たとえば、ブロック)の1つ又は複数の運動推定値を含み得る。フレームの運動推定値は、1つの画像から別の参照画像への変形の少なくとも一部分を集合的に記述し得る。少なくとも1つの実施例において、運動推定値は、運動ベクトルを含み得る。運動ベクトルは、たとえば、1つのフレームにおける座標から別のフレームにおける座標へのオフセットを提供するベクトル(たとえば、2Dベクトル)を含み得る。1つ又は複数の実施例において、運動ベクトルは、画素のX構成要素へのXオフセット及び画素のY構成要素へのYオフセットを含み得る。少なくとも1つの実施例において、運動推定器104は、フレーム内の各画素及び/又はブロックの1つ又は複数の運動推定値を決定し得る。
運動推定器104は、任意の適切な手法を使用して、たとえば、ブロック・マッチング・アルゴリズム、フェーズ相関関係アルゴリズム、画素再帰アルゴリズム、及び/又はオプティカル・フロー・アルゴリズムのうちの1つ又は複数を使用して、運動推定値を決定し得る。様々な実施例において、運動推定器104は、順方向及び/又は逆方向運動の運動推定値を計算し得る。順方向運動の運動推定値は、入力画像としてのフレーム102A及び参考画像としてのフレーム102Bを使用し得る。逆方向運動の運動推定値は、入力画像としてのフレーム102B及び参考画像としてのフレーム102Aを使用し得る。
運動推定器104は、密運動推定及び/又は疎運動推定を実行し得る。密運動推定は、個々の画素の運動推定値を計算し得る。疎運動推定は、画素のグループ、たとえば、ブロック(たとえば、2x2、4x4、6x6、8x8など)、の運動推定値を計算し得る。開示される手法は、任意の組合せの密及び/又は疎運動推定値を使用し得る。少なくとも1つの実施例において、運動推定器104は、疎運動推定値を決定し得る。運動推定器104は、次いで、開示される実施例において使用され得る、密な及び/又はより疎でない運動推定値に疎な運動推定値の1つ又は複数の部分をアップコンバート又はアップスケールし得る。少なくとも1つの実施例において、アップスケールは、画像強度及びエッジ位置などのファクタに少なくとも基づき得る。
少なくとも1つの実施例において、運動推定器104は、1つ又は複数の運動推定値を分析し、分析に少なくとも基づいて少なくとも1つの運動推定値を破棄し得る。たとえば、運動推定器104は、分析を使用して、運動推定値は不正確であると決定し、その運動推定値を破棄し得る。実例として、及び限定ではなく、分析は、順方向運動推定値を使用して第1の画像位置を第1の参照画像位置に投影する順方向、及び逆方向運動推定値を使用して第2の画像位置を第2の参照画像位置に投影する逆方向を含み得る。逆方向投影に由来する第2の参照画像位置が、第1の画像位置から閾値距離内にない(たとえば、同じ画素位置に又はその閾値画素距離内マップされない)場合、運動推定値は、破棄され得る。少なくとも1つの実施例において、運動推定器104は、あらゆる矛盾する運動推定値を破棄した後、アップスケールを実行し得る。
少なくとも1つの実施例において、画素データ決定器110は、画像部分の運動推定値を使用して外挿フレーム内の画像部分の位置を決定する。たとえば、画素データ決定器110は、運動推定値240を使用して画像部分230を位置232にマップすることができ、運動推定値242を使用して画像部分234を位置232にマップすることができる。少なくとも1つの実施例において、マッピングは、ソース画素をフレーム102A及び/又は102Bからワープしてフレーム112を生成することを含み得る。しかしながら、画像部分を位置にマップするための任意の適切な手法が、使用され得る。図2のコリジョン200は、フレーム102Aとフレーム102Bとの途中に時間的にあるようにフレーム112を画素データ決定器110が生成しようと試みているときに、生じ得るが、そうである必要はない。たとえば、複数のフレーム112が、フレーム102A及び102Bに対する任意の適切な時間的関係を有して生成され得る。図示された実例では、画像部分230及び234は、フレーム112に関する対応する運動ベクトルに沿って画像部分230及び234を仮想的に移動又は投影することと、フレーム102Aとフレーム102Bとの途中に位置する、フレーム112と画像部分230及び234がどこで交差するかを決定することとに少なくとも基づいて、位置232にマップされ得る。このプロセスは、コリジョン200に類似の複数のコリジョンをもたらし得る、フレーム102A及び/又はフレーム102Bの任意の数の画像部分について実行され得る。画素データ決定器110は、類似性評価器108を使用して実行される類似性のレベルの対応する評価に基づいてこれらのコリジョンのうちの1つ又は複数を解消するように構成され得る。
本明細書に記載のように、グローバル運動決定器106は、運動推定器104を使用して決定された1つ又は複数の運動推定値(たとえば、ローカル運動推定値又はベクトル)に対応する1つ又は複数のグローバル運動推定値(たとえば、グローバル運動ベクトル)を決定するように構成され得る。フレーム、たとえば、フレーム102A、のグローバル運動推定値は、フレーム全体の運動を表し得る。少なくとも1つの実施例において、グローバル運動推定値は、運動推定器104を使用してフレームについて決定された運動推定値のうちの1つ又は複数を使用して、計算され得る。たとえば、グローバル運動決定器106は、フレーム102Aの運動推定値(たとえば、密運動推定値)の統計的組合せに少なくとも基づいてフレーム102Aのグローバル運動推定値(たとえば、グローバル運動ベクトル)を計算し得る。統計的組合せの実例には、平均値、モード、中央値、及び/又は1つ又は複数の他の統計的に導出された値が含まれる。少なくとも1つの実施例において、グローバル運動決定器106は、フレームごとのグローバル運動推定値を計算し得る。加えて、又は別法として、グローバル運動決定器106は、複数のフレームに対応するグローバル運動推定値を計算し得る。たとえば、グローバル運動決定器106は、複数のフレーム(たとえば、フレームのウインドウ)にわたるグローバル運動推定の移動平均又は他の統計的組合せに対応するマルチフレーム・グローバル運動推定値を計算し得る。
実例として及び制限なしに、少なくとも1つの実施例において、グローバル運動決定器106は、1つ又は複数の画像処理技法を実行する、或いはグローバル運動推定値が背景又は前景に対応するかどうか及び/又はどの程度対応するかを他の方法で決定することができる。画素データ決定器110は、類似性のレベルの評価を解釈するとき、この決定を使用することができる。たとえば、本明細書に記載のように、グローバル運動推定値が、背景に対応する場合、画像部分の高い類似性は、画像部分が背景に又はその近くにあるということを示し得る。グローバル運動推定値が、前景に対応する場合、画像部分の高い類似性は、画像部分が背景から遠くにある-したがって、前景内に又は前景の近くにある-ということを示し得る。したがって、画素データ決定器110は、それに応じて画像コンテンツに類似性のレベルの解釈を適合させ得る。他の実例において、画素データ決定器110は、類似性のレベルの解釈を画像コンテンツに適合させなくてもよく、たとえば、グローバル運動推定値が背景に対応するという又は、別法として、グローバル運動推定値が前景に対応するという想定の下で動作し得る。
少なくとも1つの実施例において、グローバル運動決定器106は、グローバル運動推定値(たとえば、マルチフレーム・グローバル推定値)と揃えた画像の画素の数量に少なくとも基づいて、画像が背景又は前景に対応するかどうか及び/又はどの程度対応するか(たとえば、パーセンテージ)を決定し得る。たとえば、グローバル運動決定器106は、グローバル運動推定値と揃えた画像の画素の数量を決定し得る。画素の数量が、閾値未満である場合、グローバル運動決定器106は、画像は主として前景に対応すると決定し得る。画素の数量が閾値を超えた場合、グローバル運動決定器106は、画像は主として背景に対応すると決定し得る。画素データ決定器110は、それに応じて画像コンテンツに類似性のレベルの解釈を適合させ得る。
ここで図4を参照すると、図4は、本開示のいくつかの実施例による、グローバル運動ベクトル402並びにグローバル運動ベクトル402と比較され得る運動ベクトル406及び408(たとえば、ローカル運動ベクトル)の実例を示すグラフ400を示す。図4は、類似性評価器108が、運動推定器104を使用して決定された画素及び/又は画像部分の(たとえば、フレーム102A及び/又はフレーム102Bの)1つ又は複数の運動推定値とグローバル運動決定器106を使用して決定された1つ又は複数のグローバル運動推定値との類似性のレベルを評価するとき、考慮し得る、様々なファクタを説明するために使用され得る。
類似性評価器108は、様々な潜在的ファクタに基づいて類似性のレベルを評価し得る。少なくとも1つの実施例において、1つ又は複数の画像部分の類似性のレベルは、1つ又は複数のグローバル運動ベクトルの1つ又は複数の角度と1つ又は複数の画像部分の1つ又は複数の運動ベクトルの1つ又は複数の角度との差に少なくとも基づき得る。たとえば、類似性評価器108は、運動ベクトル404の角度414とグローバル運動ベクトル402の角度412との差に少なくとも基づいて、グローバル運動ベクトル402と画像部分の運動ベクトル404との類似性のレベルを評価し得る。同様に、類似性評価器108は、運動ベクトル406の角度416とグローバル運動ベクトル402の角度412との差に少なくとも基づいて、グローバル運動ベクトル402と画像部分の運動ベクトル406との類似性のレベルを評価し得る。類似性のレベルは、差が減少するにつれて、増加し得る。
加えて、又は別法として、1つ又は複数の画像部分の類似性のレベルは、1つ又は複数のグローバル運動ベクトルの1つ又は複数の大きさと1つ又は複数の画像部分の1つ又は複数の運動ベクトルの1つ又は複数の大きさとの差に少なくとも基づき得る。たとえば、類似性評価器108は、運動ベクトル404の大きさとグローバル運動ベクトル402の大きさとの差に少なくとも基づいて、グローバル運動ベクトル402と画像部分の運動ベクトル404との類似性のレベルを評価し得る。同様に、類似性評価器108は、運動ベクトル406の大きさとグローバル運動ベクトル402の大きさとの差に少なくとも基づいて、グローバル運動ベクトル402と画像部分の運動ベクトル406との類似性のレベルを評価し得る。類似性のレベルは、差が減少するにつれて、増加し得る。
少なくとも1つの実施例において、類似性評価器108は、1つ又は複数のグローバル運動ベクトルの1つ又は複数の大きさに比例して1つ又は複数の角度の差を量り得る。たとえば、運動ベクトル404が、より大きくなるにつれて、運動ベクトル404の角度差は、運動ベクトル406の角度差よりもより多い重みを与えられ得る。
少なくとも1つの実施例において、類似性評価器108は、1つ又は複数の類似性メトリックを使用して、1つ又は複数の画像部分の類似性の1つ又は複数のレベルを表す又はそれに対応する1つ又は複数の値(たとえば、類似性スコア)を計算し得る。類似性メトリックは、画像部分及び/又は運動推定値の1つ又は複数の態様又は特徴を表す1つ又は複数のパラメータを含み得る。態様の実例には、運動推定値の大きさ、運動ベクトル角度などが含まれる。
類似性メトリックの少なくとも一部分を計算するためのアルゴリズムの一実例が、提供される。しかしながら、アルゴリズム及び類似性メトリックへの多数の変更形態が可能である。Global_Fxは、グローバル運動ベクトル(たとえば、フレーム102Aのグローバル運動ベクトル402)のX構成要素を指し得、Global_Fyは、グローバル運動ベクトルのY構成要素を指し得る。Fxは、画像部分の運動ベクトル(たとえば、フレーム102A内の画素の運動ベクトル404)のX構成要素を指し得、Fyは、運動ベクトルのY構成要素を指し得る。
類似性評価器108は、たとえば、方程式(1)を使用して、グローバル運動ベクトルの大きさrGlobalを計算し得る:
類似性評価器108は、たとえば、方程式(2)を使用して、グローバル運動ベクトルの角度thetaGlobalを計算し得る:
thetaGlobal=atan2(Global_Fy,Global_Fx) (2)
類似性評価器108はまた、たとえば、方程式(3)を使用して、運動ベクトルの大きさrPixelを計算し得る:
さらに、類似性評価器108は、たとえば、方程式(4)を使用して、運動ベクトルの角度thetaPixelを計算し得る:
thetaPixel=atan2(Fy,Fx) (4)
thetaGlobalが、ゼロ未満である場合、類似性評価器108は、たとえば、方程式(5)を使用して、角度を正の角度に変換し得る:
thetaGlobal=2*π+thetaGlobal (5)
同様に、thetaPixelが、ゼロ未満である場合、類似性評価器108は、たとえば、方程式(6)を使用して、角度を正の角度に変換し得る:
thetaPixel=2*π+thetaPixel (6)
類似性評価器108は、次いで、たとえば、方程式(7)を使用して、thetaGlobalとthetaPixelとの差thetaDiffを計算し得る:
thetaDiff=|thetaPixel-thetaGlobal| (7)
thetaDiffが、πより大きい場合、類似性評価器108は、たとえば、方程式(8)を使用して、thetaDiffを調整し得る:
thetaDiff=2*π-thetaDiff (8)
類似性評価器108は、たとえば、方程式(9)を使用して、角度ベースの類似性メトリックWarpCostAngleを計算し得る:
CostAngle=α*rGlobal*(β*thetaDiff+thetaDiff*thetaDiff) (9)
ここで、α及びβは定数であり、ヒューリスティックで導出され得る。方程式(9)を使用して、thetaDiffの貢献度は、rGlobalに比例し得る。
類似性評価器108は、たとえば、方程式(10)を使用して、ユークリッドの差ベースの類似性メトリックEuclidDistを計算し得る:

ここで、delta_fx=Fx-Global_Fx、そして、delta_fy=Fy-Global_Fy。
類似性評価器108は、次いで、たとえば、方程式(11)を使用して、類似性メトリックWarpCostを計算し得る:
WarpCost=EuclidDist+WarpCostAngle (11)
画素データ決定器110は、これらの類似性メトリックの任意の組合せを使用してフレーム、たとえば、フレーム112、内の位置の画素データを決定し得る。少なくとも1つの実施例において、複数のソース画素の間のコリジョンが存在するとき、画素データ決定器110は、内挿及び/又は外挿フレームの画素データを提供する画素として最も高いWarpCostを有するソース画素を選択し得る。
画素データ決定器110は、フレーム112内の位置のフレーム102A内の画像部分の類似性メトリックの順方向運動値を決定し得る(たとえば、順方向運動推定値及び順方向グローバル運動推定値を使用)。加えて、又は別法として、画素データ決定器110は、フレーム112内の位置のフレーム102B内の画像部分の類似性メトリックの逆方向運動値を決定し得る(たとえば、逆方向運動推定値及び逆方向グローバル運動推定値を使用)。少なくとも1つの実施例において、画素データ決定器110は、対応する順方向運動値及び逆方向運動値に少なくとも基づいて、フレーム112内の位置について使用する(及び/又は画像部分を量る)ための画像部分から選択し得る。たとえば、順方向運動値及び逆方向運動値は、画像部分を選択する及び/又は画像部分重み付けを決定するために使用される合成値を計算するために、結合(たとえば、平均化)され得る。さらなる実例として、順方向運動値が、デフォルトとして使用され得、そして、順方向運動値が、入手不可能な場合、逆方向運動値が、使用され得る。1つ又は複数の実施例において、類似性評価器108は、順方向運動値のみ、又は逆方向運動値のみを使用し得る。少なくとも1つの実施例において、順方向運動推定値及び順方向グローバル運動推定値は、逆方向運動推定値及び逆方向グローバル運動推定値と結合され得、類似性評価器108は、集められた運動推定値を使用して類似性メトリックの値を計算し得る。
ここで図5~7を参照すると、方法500、600、及び700、並びに本明細書に記載の他の方法の各ブロックは、ハードウェア、ファームウェア、及び/又はソフトウェアの任意の組合せを使用して実行され得る計算プロセスを含み得る。たとえば、様々な機能は、メモリに記憶されたプロセッサ実行命令によって実施され得る。方法はまた、コンピュータ記憶媒体に記憶されたコンピュータ使用可能命令として実施され得る。方法は、いくつか例を挙げると、スタンドアロン・アプリケーション、サービス若しくはホスト型サービス(スタンドアロンの若しくは別のホスト型サービスと組み合わせた)、又は別の製品へのプラグインによって提供され得る。加えて、方法は、例として、特定の図に関して説明される。しかしながら、方法は、本明細書に記載のものを含むがこれらに限定されない、任意の1つのシステム、又は任意の組合せのシステムによって、加えて又は別法として、実行され得る。
少なくとも1つの実施例において、システム100は、図8のコンテンツ・ストリーミング・システム800の1つ又は複数の構成要素を含み得る。たとえば、システム100は、アプリケーション・サーバ802に含まれ得る。加えて、又は別法として、図8のコンテンツ・ストリーミング・システム800の1つ又は複数の構成要素は、本明細書に記載の様々な方法のうちのいずれかの1つ又は複数の部分を実行し得る。
図5は、本開示のいくつかの実施例による、複数の画像部分の位置を決定することに少なくとも基づいて画像内の位置の画素データを決定するための方法500を示す流れ図である。方法500は、ブロックB502において、1つ又は複数の第1の画像部分の少なくとも1つの位置を決定することを含む。たとえば、画素データ決定器110は、画像部分230の位置232を決定し得る。
ブロックB504において、方法500は、1つ又は複数の第2の画像部分の少なくとも1つの位置を決定することを含む。たとえば、画素データ決定器110は、画像部分234の位置232を決定し得る。
ブロックB506において、方法500は、グローバル運動と1つ又は複数の第1の画像部分に対応する運動との類似性のレベルを評価することを含む。たとえば、類似性評価器108は、フレーム102Aに対応するグローバル運動ベクトル402と画像部分230に対応する運動ベクトル404との類似性のレベルを評価し得る(たとえば、運動ベクトル404が、図2の運動ベクトル240に対応する場合)。少なくとも1つの実施例において、方法500はさらに、グローバル運動と1つ又は複数の第2の画像部分に対応する運動との類似性のレベルを評価することを含み得る。たとえば、類似性評価器108は、フレーム102Aに対応するグローバル運動ベクトル402と画像部分234に対応する運動ベクトル406との類似性のレベルを評価し得る(たとえば、運動ベクトル406が、図2の運動ベクトル242に対応する場合)。
ブロックB508において、方法500は、類似性のレベルに少なくとも基づいて少なくとも1つの位置の画素データを決定することを含む。たとえば、画素データ決定器110は、運動ベクトル404に対応する類似性のレベルに少なくとも基づいて画像部分230を使用して位置232の画素データを生成し得る。少なくとも1つの実施例において、画素データ決定器110はさらに、運動ベクトル406に対応する類似性のレベルに少なくとも基づいて画像部分230を使用して位置232の画素データを生成し得る。
ここで図6を参照すると、図6は、本開示のいくつかの実施例による、複数の画像部分間の位置の矛盾を識別することに少なくとも基づいて画像内の位置の画素データを決定するため方法を示す流れ図である。方法600は、ブロックB602において、1つ又は複数の第1の画像部分及び1つ又は複数の第2の画像部分の少なくとも1つの位置における少なくとも1つの矛盾を識別することを含む。たとえば、画素データ決定器110は、ビデオ102内のフレーム102Aの画像部分230とビデオ102内のフレーム102Bの画像部分230との位置232における少なくとも1つの矛盾を識別し得る。
ブロックB604において、方法600は、グローバル運動と1つ又は複数の第1の画像部分に対応する運動との類似性のレベルを評価することを含む。たとえば、類似性評価器108は、フレーム102Aに対応するグローバル運動ベクトル402と画像部分230に対応する運動ベクトル404との類似性のレベルを評価し得る。少なくとも1つの実施例において、類似性評価器108はまた、フレーム102Aに対応するグローバル運動ベクトル402と画像部分234に対応する運動ベクトル406との類似性のレベルを評価し得る。
ブロックB608において、方法600は、類似性のレベルに少なくとも基づいて少なくとも1つの位置の画素データを決定することを含む。たとえば、画素データ決定器110は、運動ベクトル404の類似性のレベルに少なくとも基づいて画像部分230を使用して位置232の画素データを生成し得る。少なくとも1つの実施例において、画素データ決定器110はさらに、運動ベクトル406の類似性のレベルに少なくとも基づいて画像部分230を使用して位置232の画素データを生成し得る。
ここで図7を参照すると、図7は、本開示のいくつかの実施例による、グローバル運動と1つ又は複数の画像部分に対応する運動との類似性のレベルに少なくとも基づいて画像内の位置の画素データを決定するため方法700を示す流れ図である。方法700は、ブロックB702において、グローバル運動と1つ又は複数の画像部分に対応する運動との類似性のレベルを評価することを含む。たとえば、類似性評価器108は、フレーム102Aに対応するグローバル運動ベクトル402と画像部分230に対応する運動ベクトル404との類似性のレベルを評価し得る。
ブロックB704において、方法700は、類似性のレベルに少なくとも基づいて少なくとも1つの位置の画素データを決定することを含む。たとえば、画素データ決定器110は、類似性のレベルに少なくとも基づいて画像部分230を使用して位置232の画素データを生成し得る。
例示的コンテンツ・ストリーミング・システム
ここで図8を参照すると、図8は、本開示のいくつかの実施例による、コンテンツ・ストリーミング・システム800の例示的システム図である。図8は、アプリケーション・サーバ802(図9の例示的コンピューティング・デバイス900に類似の構成要素、特徴、及び/又は機能性を含み得る)、クライアント・デバイス804(図9の例示的コンピューティング・デバイス900に類似の構成要素、特徴、及び/又は機能性を含み得る)、及びネットワーク806(本明細書に記載のネットワークに類似し得る)を含む。本開示のいくつかの実施例において、システム800が、実装され得る。アプリケーション・セッションは、ゲーム・ストリーミング・アプリケーション(たとえば、NVIDIA GeForce NOW)、リモート・デスクトップ・アプリケーション、シミュレーション・アプリケーション(たとえば、自律又は半自律車両シミュレーション)、コンピュータ支援設計(CAD:computer aided design)アプリケーション、仮想現実(VR:virtual reality)、拡張現実(AR:augmented reality)、及び/又は複合現実(MR:mixed reality)ストリーミング・アプリケーション、深層学習アプリケーション、及び/又は他のアプリケーション・タイプに対応し得る。
システム800において、アプリケーション・セッションについて、クライアント・デバイス804は、単に、入力デバイスへの入力に応答して入力データを受信し、入力データをアプリケーション・サーバ802に送信し、エンコードされたディスプレイ・データをアプリケーション・サーバ802から受信し、ディスプレイ・データをディスプレイ824に表示することができる。そのようなものとして、よりコンピュータ負荷の重い計算及び処理は、アプリケーション・サーバ802にオフロードされる(たとえば、アプリケーション・セッションのグラフィック出力のレンダリング- 特に光線又はパス・トレース- は、ゲーム・サーバ802のGPUによって実行される)。言い換えれば、アプリケーション・セッションは、アプリケーション・サーバ802からクライアント・デバイス804にストリーミングされ、それによって、グラフィックス処理及びレンダリングのためのクライアント・デバイス804の要件を減らす。
たとえば、アプリケーション・セッションのインスタンス化に関して、クライアント・デバイス804は、ディスプレイ・データをアプリケーション・サーバ802から受信することに基づいてディスプレイ824にアプリケーション・セッションのフレームを表示し得る。クライアント・デバイス804は、入力デバイスのうちの1つへの入力を受信し、応答して入力データを生成することができる。クライアント・デバイス804は、通信インターフェイス820を介して及びネットワーク806(たとえば、インターネット)を介してアプリケーション・サーバ802に入力データを送信することができ、アプリケーション・サーバ802は、通信インターフェイス818を介して入力データを受信することができる。CPUは、入力データを受信し、入力データを処理し、アプリケーション・セッションのレンダリングをGPUに生成させるデータをGPUへ送信することができる。たとえば、入力データは、ゲーム・アプリケーションのゲーム・セッションにおけるユーザのキャラクタの移動、武器を発砲すること、リローディング、ボールをパスすること、車両を回転させることなどを表し得る。レンダリング構成要素812は、アプリケーション・セッション(たとえば、入力データの結果を表す)をレンダリングすることができ、レンダリング・キャプチャ構成要素814は、アプリケーション・セッションのレンダリングをディスプレイ・データとして(たとえば、アプリケーション・セッションのレンダリングされたフレームをキャプチャする画像データとして)キャプチャすることができる。アプリケーション・セッションのレンダリングは、アプリケーション・サーバ802の1つ又は複数の並列処理装置- たとえば、1つ又は複数の専用ハードウェア・アクセラレータ又は処理コアの使用をさらに用いて光線又はパス・トレース技法を実行し得る、GPU- を使用して計算される、光線又はパス・トレース照明及び/又は陰効果を含み得る。いくつかの実施例において、1つ又は複数の仮想機械(VM:virtual machine)- たとえば、1つ又は複数の仮想構成要素、たとえば、vGPU、vCPUなど、を含む- は、アプリケーション・セッションをサポートするために、アプリケーション・サーバ802によって使用され得る。エンコーダ816は、次いで、ディスプレイ・データをエンコードして、エンコードされたディスプレイ・データを生成することができ、エンコードされたディスプレイ・データは、通信インターフェイス818を介してネットワーク806を介してクライアント・デバイス804に送信され得る。クライアント・デバイス804は、エンコードされたディスプレイ・データを通信インターフェイス820を介して受信することができ、デコーダ822は、エンコードされたディスプレイ・データを復号してディスプレイ・データを生成することができる。クライアント・デバイス804は、次いで、ディスプレイ824を介してディスプレイ・データを表示することができる。
本明細書に記載のシステム及び方法は、様々な目的のために、例として及び制限せずに、機械制御、機械移動、機械運転、合成データ生成、モデル・トレーニング、認知、拡張現実、仮想現実、複合現実、ロボット工学、セキュリティ及び監視、シミュレーション及びデジタル・ツイニング、自律又は半自律機械アプリケーション、深層学習、環境シミュレーション、データ・センタ処理、会話型AI、光輸送シミュレーション(たとえば、レイ・トレーシング、進路トレーシングなど)、3D資産の共同コンテンツ作成、クラウド計算及び/又は任意の他の適切なアプリケーションのために、使用され得る。
開示される実施例は、自動車システム(たとえば、自律又は半自律機械のための制御システム、自律又は半自律機械のための認知システム)、ロボットを使用して実装されるシステム、航空システム、中間システム、船舶システム、スマート・エリア・モニタリング・システム、深層学習動作を実行するためのシステム、シミュレーション動作を実行するためのシステム、デジタル・ツイン動作を実行するためのシステム、エッジ・デバイスを使用して実装されるシステム、1つ又は複数の仮想機械(VM)を組み込むシステム、合成データ生成動作を実行するためのシステム、データ・センタにおいて少なくとも部分的に実装されるシステム、会話型AI動作を実行するためのシステム、光輸送シミュレーションを実行するためのシステム、3D資産の共同コンテンツ作成を実行するためのシステム、クラウド計算資源を使用して少なくとも部分的に実装されるシステム、及び/又は他のタイプのシステムなどの様々な異なるシステムに含まれ得る。
例示的コンピューティング・デバイス
図9は、本開示のいくつかの実施例の実装において使用するのに適した例示的コンピューティング・デバイス900のブロック図である。コンピューティング・デバイス900は、以下のデバイスを直接に又は間接に結合する相互接続システム902を含み得る:メモリ904、1つ又は複数の中央処理装置(CPU:central processing unit)906、1つ又は複数のグラフィックス・プロセッシング・ユニット(GPU:graphics processing unit)908、通信インターフェイス910、入力/出力(I/O:input/ouput)ポート912、入力/出力構成要素914、電力供給装置916、1つ又は複数のプレゼンテーション構成要素918(たとえば、ディスプレイ)、及び1つ又は複数の論理ユニット920。少なくとも1つの実施例において、コンピューティング・デバイス900は、1つ又は複数の仮想機械(VM)を含み得る、及び/又は、その構成要素のいずれかは、仮想構成要素(たとえば、仮想ハードウェア構成要素)を含み得る。非限定的実例として、GPU908のうちの1つ又は複数は、1つ又は複数のvGPUを含み得、CPU906のうちの1つ又は複数は、1つ又は複数のvCPUを含み得、及び/又は論理ユニット920のうちの1つ又は複数は、1つ又は複数の仮想論理ユニットを含み得る。そのようなものとして、コンピューティング・デバイス900は、個別の構成要素(たとえば、コンピューティング・デバイス900専用の完全なGPU)、仮想構成要素(たとえば、コンピューティング・デバイス900専用のGPUの一部分)、又はその組合せを含み得る。
図9の様々なブロックは、線を有する相互接続システム902を介して接続されるものとして示されているが、これは限定を意図しておらず、単に明確にすることを目的としている。たとえば、いくつかの実施例において、プレゼンテーション構成要素918、たとえば、ディスプレイ・デバイス、は、I/O構成要素914と考えられ得る(たとえば、ディスプレイがタッチスクリーンである場合)。別の実例として、CPU906及び/又はGPU908は、メモリを含み得る(たとえば、メモリ904は、GPU908、CPU906、及び/又は他の構成要素のメモリに加えた記憶デバイスを表し得る)。言い換えれば、図9のコンピューティング・デバイスは、単に、例示である。「ワークステーション」、「サーバ」、「ラップトップ」、「デスクトップ」、「タブレット」、「クライアント・デバイス」、「モバイル・デバイス」、「ハンドヘルド・デバイス」、「ゲーム機」、「電子制御ユニット(ECU)」、「仮想現実システム」、及び/又は他のデバイス又はシステムタイプのようなカテゴリは、すべて、図9のコンピューティング・デバイスの範囲内にあることが企図されているので、区別されない。
相互接続システム902は、1つ又は複数のリンク又はバス、たとえば、アドレス・バス、データ・バス、制御バス、又はその組合せ、を表し得る。相互接続システム902は、1つ又は複数のバス又はリンク・タイプ、たとえば、業界標準アーキテクチャ(ISA:industry standard Architecture)バス、拡張業界標準アーキテクチャ(EISA:extended industry standard Architecture)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA:video electronics standards association)バス、周辺構成要素相互接続(PCI:peripheral component interconnect)バス、周辺構成要素相互接続エクスプレス(PCIe:peripheral component interconnect express)バス、及び/又は別のタイプのバス若しくはリンク、を含み得る。いくつかの実施例において、構成要素間の直接接続が存在する。一実例として、CPU906は、メモリ904に直接接続され得る。さらに、CPU906は、GPU908に直接接続され得る。構成要素間に直接、又は2地点間接続があるとき、相互接続システム902は、接続を実施するためのPCIeリンクを含み得る。これらの実例において、PCIバスは、コンピューティング・デバイス900に含まれる必要はない。
メモリ904は、様々なコンピュータ可読媒体のいずれかを含み得る。コンピュータ可読媒体は、コンピューティング・デバイス900によってアクセスされ得る任意の利用可能な媒体でもよい。コンピュータ可読媒体は、揮発性媒体及び不揮発性媒体の両方、並びに取り外し可能な媒体及び取り外し不可能な媒体を含み得る。実例として、そして限定ではなく、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含み得る。
コンピュータ記憶媒体は、情報、たとえば、コンピュータ可読命令、データ構造、プログラム・モジュール、及び/又は他のデータ・タイプ、を記憶するための任意の方法又は技術において実装される揮発性媒体及び不揮発性媒体の両方及び/又は取り外し可能な媒体及び取り外し不可能な媒体を含み得る。たとえば、メモリ904は、コンピュータ可読命令(たとえば、プログラム及び/又はプログラム要素、たとえば、オペレーティング・システム、を表すを記憶し得る。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュ・メモリ又は他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD:digital versatile disk)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶デバイス、或いは、所望の情報を記憶するために使用され得る及びコンピューティング・デバイス900によってアクセスされ得る任意の他の媒体を含み得るが、これらに限定されない。本明細書では、コンピュータ記憶媒体は、信号それ自体を含まない。
コンピュータ記憶媒体は、変調されたデータ信号、たとえば、搬送波又は他のトランスポート機構、においてコンピュータ可読命令、データ構造、プログラム・モジュール、及び/又は他のデータ・タイプを実施し得、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号において情報をエンコードするための方式などで設定又は変更されたそれの特徴のうちの1つ又は複数を有する信号を指し得る。実例として、及び限定ではなく、コンピュータ記憶媒体は、有線媒体、たとえば、有線ネットワーク又は直接有線接続、とワイヤレス媒体、たとえば、音響、RF、赤外線及び他のワイヤレス媒体、とを含み得る。前述のうちのいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
CPU906は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。CPU906は、多数のソフトウェア・スレッドを同時に処理する能力を有する1つ又は複数のコア(たとえば、1、2、4、8、28、72など)をそれぞれ含み得る。CPU906は、任意のタイプのプロセッサを含み得、実装されるコンピューティング・デバイス900のタイプ(たとえば、モバイル・デバイスのためのより少数のコアを有するプロセッサ及びサーバのためのより多数のコアを有するプロセッサ)に応じて、異なるタイプのプロセッサを含み得る。たとえば、コンピューティング・デバイス900のタイプに応じて、プロセッサは、縮小命令セット・コンピューティング(RISC:Reduced Instruction Set Computing)を使用して実装されるアドバンストRISC機械(ARM:Advanced RISC Machine)プロセッサ又は複合命令セット・コンピュータ(CISC:Complex Instruction Set Computing)を使用して実装されるx86プロセッサでもよい。コンピューティング・デバイス900は、1つ又は複数のマイクロプロセッサ又は補足のコプロセッサ、たとえば、数値演算コプロセッサ、に加えて、1つ又は複数のCPU906を含み得る。
CPU906に加えて、又はその代わりに、GPU908は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。GPU908のうちの1つ又は複数は、統合型GPUでもよく(たとえば、CPU906のうちの1つ又は複数を有する、及び/或いは、GPU908のうちの1つ又は複数は、個別のGPUでもよい。実施例において、GPU908のうちの1つ又は複数は、CPU906のうちの1つ又は複数のCPUのコプロセッサでもよい。GPU908は、グラフィックス(たとえば、3Dグラフィックス)をレンダリングする又は汎用計算を実行するために、コンピューティング・デバイス900によって使用され得る。たとえば、GPU908は、GPUでの汎用計算(GPGPU:General-Purpose computing on GPU)のために使用され得る。GPU908は、数百又は数千のソフトウェア・スレッドを同時に処理する能力を有する数百又は数千のコアを含み得る。GPU908は、レンダリング・コマンド(たとえば、ホスト・インターフェイスを介して受信されるCPU906からのレンダリング・コマンド)に応答して出力画像の画素データを生成し得る。GPU908は、画素データ又は任意の他の適したデータ、たとえば、GPGPUデータ、を記憶するためのグラフィックス・メモリ、たとえば、ディスプレイ・メモリ、を含み得る。ディスプレイ・メモリは、メモリ904の一部として含まれ得る。GPU908は、並行して(たとえば、リンクを介して)動作する2つ以上のGPUを含み得る。リンクは、GPUを直接接続する(たとえば、NVLINKを使用して)ことができる、又はスイッチを介して(たとえば、NVSwitchを使用して)GPUを接続することができる。ともに結合されるとき、各GPU908は、出力の異なる部分の又は異なる出力の画素データ又はGPGPUデータ(たとえば、第1の画像の第1のGPU及び第2の画像の第2のGPU)を生成することができる。各GPUは、それ自体のメモリを含むことができる、又は他のGPUとメモリを共用することができる。
CPU906及び/又はGPU908に加えて又はその代わりに、論理ユニット920は、コンピューティング・デバイス900の1つ又は複数の構成要素を制御して本明細書に記載の方法及び/又はプロセスのうちの1つ又は複数を実行するためのコンピュータ可読命令のうちの少なくともいくつかを実行するように構成され得る。実施例において、CPU906、GPU908、及び/又は論理ユニット920は、方法、プロセス及び/又はそれの部分の任意の組合せを別個に又はともに実行することができる。論理ユニット920のうちの1つ又は複数は、CPU906及び/又はGPU908のうちの1つ又は複数の部分でもよい及び/又はそれに統合することができ、及び/又は、論理ユニット920のうちの1つ又は複数は、個別の構成要素でもよい又は他の方法でCPU906及び/又はGPU908の外部でもよい。実施例において、論理ユニット920のうちの1つ又は複数は、CPU906のうちの1つ又は複数及び/又はGPU908のうちの1つ又は複数のコプロセッサでもよい。
論理ユニット920の実例は、1つ又は複数の処理コア及び/又はその構成要素、たとえば、データ処理ユニット(DPU:Data Processing Unit)、テンソル・コア(TC:Tensor Core)、テンソル・プロセッシング・ユニット(TPU:Tensor Processing Unit)、画素ビジュアル・コア(PVC:Pixel Visual Core)、ビジョン・プロセッシング・ユニット(VPU:Vision Processing Unit)、グラフィックス・プロセッシング・クラスタ(GPC:Graphics Processing Cluster)、テクスチャ・プロセッシング・クラスタ(TPC:Texture Processing Cluster)、ストリーミング・マルチプロセッサ(SM:Streaming Multiprocessor)、木の走査ユニット(TTU:Tree Traversal Unit)、人工知能アクセラレータ(AIA:Artificial Intelligence Accelerator)、深層学習アクセラレータ(DLA:Deep Learning Accelerator)、演算論理ユニット(ALU:Arithmetic-Logic Unit)、特定用途向け集積回路(ASIC:Application-Specific Integrated Circuit)、浮動小数点ユニット(FPU:Floating Point Unit)、入力/出力(I/O)要素、周辺構成要素相互接続(PCI)又は周辺構成要素相互接続エクスプレス(PCIe)要素、及び/又は同類のものを含む。
通信インターフェイス910は、有線及び/又はワイヤレス通信を含む、電子通信ネットワークを介してコンピューティング・デバイス900が他のコンピューティング・デバイスと通信することを可能にする1つ又は複数の受信器、送信器、及び/又は送受信器を含み得る。通信インターフェイス910は、いくつかの異なるネットワーク、たとえば、ワイヤレス・ネットワーク(たとえば、Wi-Fi、Z-Wave、ブルートゥース(登録商標)、ブルートゥース(登録商標)LE、ZigBee(登録商標)など)、有線ネットワーク(たとえば、イーサネット(登録商標)又はInfiniBandを介して通信する)、低電力ワイド・エリア・ネットワーク(たとえば、LoRaWAN、SigFoxなど)、及び/又はインターネット、のいずれかを介する通信を可能にするための構成要素及び機能性を含み得る。1つ又は複数の実施例において、論理ユニット920及び/又は通信インターフェイス910は、1つ又は複数のGPU908(たとえば、そのメモリ)に直接にネットワークを介して及び/又は相互接続システム902を介して受信されたデータを送信するための1つ又は複数のデータ処理ユニット(DPU)を含み得る。
I/Oポート912は、それらのうちのいくつかはコンピューティング・デバイス900に組み込む(たとえば、統合する)ことができる、I/O構成要素914、プレゼンテーション構成要素918、及び/又は他の構成要素を含む他のデバイスに、コンピューティング・デバイス900が論理的に結合されることを可能にし得る。例示的I/O構成要素914は、マイクロフォン、マウス、キーボード、ジョイスティック、ゲーム・パッド、ゲーム・コントローラ、サテライト・ディッシュ、スキャナ、プリンタ、ワイヤレス・デバイスなどを含む。I/O構成要素914は、ユーザによって生成されるエア・ジェスチャ、音声、又は他の生理的入力を処理するナチュラル・ユーザ・インターフェイス(NUI:natural user interfac)を提供し得る。いくつかの事例において、入力は、さらに処理するために適切なネットワーク要素に送信され得る。NUIは、音声認識、スタイラス認識、顔認識、生体認識、画面上の及び画面付近両方でのジェスチャの認識、エア・ジェスチャ、頭部及び視標追跡、及びコンピューティング・デバイス900のディスプレイに関連するタッチ認識(さらに詳しく後述するような)の任意の組合せを実装し得る。コンピューティング・デバイス900は、ジェスチャ検出及び認識のための深度カメラ、たとえば、ステレオ・カメラ・システム、赤外線カメラ・システム、RGBカメラ・システム、タッチスクリーン技術、及びこれらの組合せを含み得る。加えて、コンピューティング・デバイス900は、動きの検出を可能にする加速度計又はジャイロスコープ(たとえば、慣性測定ユニット(IMU:inertia measurement unit)の一部としての)を含み得る。いくつかの実例において、加速度計又はジャイロスコープの出力は、没入型拡張現実又は仮想現実をレンダリングするためにコンピューティング・デバイス900によって使用され得る。
電力供給装置916は、ハードワイヤード電力供給装置、バッテリ電力供給装置、又はその組合せを含み得る。電力供給装置916は、コンピューティング・デバイス900の構成要素が動作することを可能にするために、コンピューティング・デバイス900に電力を提供することができる。
プレゼンテーション構成要素918は、ディスプレイ(たとえば、モニタ、タッチスクリーン、テレビジョン画面、ヘッドアップディスプレイ(HUD:heads-up-display)、他のディスプレイ・タイプ、又はその組合せ)、スピーカ、及び/又は他のプレゼンテーション構成要素を含み得る。プレゼンテーション構成要素918は、他の構成要素(たとえば、GPU908、CPU906、DPUなど)からデータを受信し、データを出力する(たとえば、画像、ビデオ、サウンドなどとして)ことができる。
例示的データ・センタ
図10は、本開示の少なくとも1つの実施例において使用され得る例示的データ・センタ1000を示す。データ・センタ1000は、データ・センタ・インフラストラクチャ層1010、フレームワーク層1020、ソフトウェア層1030、及び/又はアプリケーション層1040を含み得る。
図10に示すように、データ・センタ・インフラストラクチャ層1010は、資源オーケストレータ1012、グループ化された計算資源1014、及びノード計算資源(「ノードC.R.」)1016(1)~1016(N)を含むことができ、そこで、「N」は、任意の完全な、正の整数を表す。少なくとも1つの実施例において、ノードC.R.1016(1)~1016(N)は、任意の数の中央処理装置(CPU)又は他のプロセッサ(DPU、アクセラレータ、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、グラフィックス・プロセッサ又はグラフィックス・プロセッシング・ユニット(GPU)などを含む)、メモリ・デバイス(たとえば、ダイナミック・リードオンリ・メモリ)、記憶デバイス(たとえば、ソリッド・ステート又はディスク・ドライブ)、ネットワーク入力/出力(NW I/O:network input/output)デバイス、ネットワーク・スイッチ、仮想機械(VM)、電力モジュール、及び/又は冷却モジュールなどを含み得るが、これらに限定されない。いくつかの実施例において、ノードC.R.1016(1)~1016(N)のうちの1つ又は複数のノードC.R.は、前述の計算資源のうちの1つ又は複数を有するサーバに対応し得る。加えて、いくつかの実施例において、ノードC.R.1016(1)~10161(N)は、1つ又は複数の仮想構成要素、たとえば、vGPU、vCPU、及び/又は同類のもの、を含み得る、及び/又は、ノードC.R.1016(1)~1016(N)のうちの1つ又は複数は、仮想機械(VM)に対応し得る。
少なくとも1つの実施例において、グループ化された計算資源1014は、1つ又は複数のラック(図示せず)に格納された別個のグループのノードC.R.1016、或いは様々な地理的場所にあるデータ・センタに格納された多数のラック(やはり図示せず)を含み得る。グループ化された計算資源1014内のノードC.R.1016の別個のグループは、1つ又は複数のワークロードをサポートするために構成され得る又は割り当てられ得るグループ化された計算、ネットワーク、メモリ又はストレージ資源を含み得る。少なくとも1つの実施例において、CPU、GPU、DPU、及び/又は他のプロセッサを含むいくつかのノードC.R.1016は、1つ又は複数のワークロードをサポートするための計算資源を提供するために、1つ又は複数のラック内にグループ化され得る。1つ又は複数のラックはまた、任意の数の電力モジュール、冷却モジュール、及び/又はネットワーク・スイッチを、任意の組合せで、含み得る。
資源オーケストレータ1012は、1つ又は複数のノードC.R.1016(1)~1016(N)及び/又はグループ化された計算資源1014を構成又は他の方法で制御することができる。少なくとも1つの実施例において、資源オーケストレータ1012は、データ・センタ1000のためのソフトウェア設計インフラストラクチャ(SDI:software design infrastructure)管理エンティティを含み得る。資源オーケストレータ1012は、ハードウェア、ソフトウェア、又はその何らかの組合せを含み得る。
少なくとも1つの実施例において、図10に示すように、フレームワーク層1020は、ジョブ・スケジューラ1028、構成マネージャ1034、資源マネージャ1036、及び/又は分散型ファイル・システム1038を含み得る。フレームワーク層1020は、ソフトウェア層1030のソフトウェア1032及び/又はアプリケーション層1040の1つ若しくは複数のアプリケーション1042をサポートするために、フレームワークを含み得る。ソフトウェア1032又はアプリケーション1042は、ウェブベースのサービス・ソフトウェア又はアプリケーション、たとえば、アマゾン・ウェブ・サービス、グーグル・クラウド及びMicrosoft Azureによって提供されるもの、をそれぞれ含み得る。フレームワーク層1020は、大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システム1038を使用し得るApache Spark(商標)(以下「Spark」)などのフリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。少なくとも1つの実施例において、ジョブ・スケジューラ1028は、データ・センタ1000の様々な層によってサポートされるワークロードのスケジューリングを容易にするために、Sparkドライバを含み得る。構成マネージャ1034は、異なる層、たとえば、ソフトウェア層1030と、大規模データ処理をサポートするためのSpark及び分散型ファイル・システム1038を含むフレームワーク層1020、を構成する能力を有し得る。資源マネージャ1036は、分散型ファイル・システム1038及びジョブ・スケジューラ1028のサポートのためにマップされた又は割り当てられたクラスタ化された又はグループ化された計算資源を管理する能力を有し得る。少なくとも1つの実施例において、クラスタ化された又はグループ化された計算資源は、データ・センタ・インフラストラクチャ層1010にグループ化された計算資源1014を含み得る。資源マネージャ1036は、資源オーケストレータ1012と調整してこれらのマップされた又は割り当てられた計算資源を管理することができる。
少なくとも1つの実施例において、ソフトウェア層1030に含まれるソフトウェア1032は、ノードC.R.1016(1)~1016(N)の少なくとも部分、グループ化された計算資源1014、及び/又はフレームワーク層1020の分散型ファイル・システム1038によって使用されるソフトウェアを含み得る。1つ又は複数のタイプのソフトウェアは、インターネット・ウェブ・ページ検索ソフトウェア、電子メール・ウイルス・スキャン・ソフトウェア、データベース・ソフトウェア、及びストリーミング・ビデオ・コンテンツ・ソフトウェアを含み得るが、これらに限定されない。
少なくとも1つの実施例において、アプリケーション層1040に含まれるアプリケーション1042は、ノードC.R.1016(1)~1016(N)の少なくとも部分、グループ化された計算資源1014、及び/又はフレームワーク層1020の分散型ファイル・システム1038によって使用される1つ又は複数のタイプのアプリケーションを含み得る。1つ又は複数のタイプのアプリケーションは、任意の数のゲノミクス・アプリケーション、認知計算、並びに、トレーニング若しくは推論ソフトウェア、機械学習フレームワーク・ソフトウェア(たとえば、PyTorch、TensorFlow、Caffeなど)、及び/又は1つ又は複数の実施例と併せて使用される他の機械学習アプリケーションを含む、機械学習アプリケーションを含み得るが、これらに限定されない。
少なくとも1つの実施例において、構成マネージャ1034、資源マネージャ1036、及び資源オーケストレータ1012のうちのいずれかは、任意の技術的に可能な方式で取得される任意の量及びタイプのデータに基づいて任意の数及びタイプの自己書換え型アクションを実装することができる。自己書換え型アクションは、よくない可能性のある構成決定を行うこと及びデータ・センタの十分に活用されていない及び/又は実行の不十分な部分をおそらく回避することからデータ・センタ1000のデータ・センタ・オペレータを解放し得る。
データ・センタ1000は、1つ又は複数の機械学習モデルをトレーニングする或いは本明細書に記載の1つ又は複数の実施例による1つ又は複数の機械学習モデルを使用して情報を予測する又は推論するために、ツール、サービス、ソフトウェア或いは他の資源を含み得る。たとえば、機械学習モデルは、データ・センタ1000に関して前述されたソフトウェア及び/又は計算資源を使用するニューラル・ネットワーク・アーキテクチャによる重量パラメータの計算によって、トレーニングされ得る。少なくとも1つの実施例において、1つ又は複数のニューラル・ネットワークに対応するトレーニングされた又は配備された機械学習モデルは、たとえば、本明細書に記載のものに限定されない、1つ又は複数のトレーニング技法を介して計算された重量パラメータを使用することによって、データ・センタ1000に関して前述された資源を使用する情報の推論又は予測のために使用され得る。
少なくとも1つの実施例において、データ・センタ1000は、前述の資源を使用するトレーニング及び/又は推論の実行のために、CPU、特定用途向け集積回路(ASIC)、GPU、FPGA、及び/又は他のハードウェア(若しくはそれに対応する仮想計算資源)を使用することができる。さらに、前述の1つ又は複数のソフトウェア及び/又はハードウェア資源は、情報の推論をユーザがトレーニング又は実行することを可能にするためのサービス、たとえば、画像認識、音声認識、又は他の人工知能サービス、として構成され得る。
例示的ネットワーク環境
本開示の実施例の実装において使用するのに適したネットワーク環境は、1つ又は複数のクライアント・デバイス、サーバ、ネットワーク接続型ストレージ(NAS:network attached storage)、他のバックエンド・デバイス、及び/又は他のデバイス・タイプを含み得る。クライアント・デバイス、サーバ、及び/又は他のデバイス・タイプ(たとえば、各デバイス)は、図9のコンピューティング・デバイス900の1つ又は複数のインスタンスで実装され得る- たとえば、各デバイスは、コンピューティング・デバイス900の類似の構成要素、特徴、及び/又は機能性を含み得る。加えて、バックエンド・デバイス(たとえば、サーバ、NASなど)が、実装される場合、バックエンド・デバイスは、データ・センタ1000の一部として含まれ得、その実例は、図10に関して本明細書でさらに詳述される。
ネットワーク環境の構成要素は、有線、ワイヤレス、又はその両方でもよい、ネットワークを介して互いに通信し得る。ネットワークは、複数のネットワーク、又はネットワークのネットワークを含み得る。実例として、ネットワークは、1つ又は複数のワイド・エリア・ネットワーク(WAN)、1つ又は複数のローカル・エリア・ネットワーク(LAN)、1つ又は複数のパブリック・ネットワーク、たとえば、インターネット及び/又は公衆交換電話網(PSTN)、及び/又は1つ又は複数のプライベート・ネットワークを含み得る。ネットワークが、ワイヤレス電気通信ネットワークを含む場合、構成要素、たとえば、基地局、通信塔、又はアクセス・ポイントなどさえも(他の構成要素と同様に)、ワイヤレス接続を提供し得る。
互換性のあるネットワーク環境は、1つ又は複数のピア・ツー・ピア・ネットワーク環境- サーバがネットワーク環境に含まれないことがある場合- と、1つ又は複数のクライアント・サーバ・ネットワーク環境- 1つ又は複数のサーバがネットワーク環境に含まれ得る場合- とを含み得る。ピア・ツー・ピア・ネットワーク環境では、サーバに関して本明細書に記載した機能性は、任意の数のクライアント・デバイスに実装され得る。
少なくとも1つの実施例において、ネットワーク環境は、1つ又は複数のクラウドベースのネットワーク環境、分散された計算環境、その組合せなどを含み得る。クラウドベースのネットワーク環境は、フレームワーク層、ジョブ・スケジューラ、資源マネージャ、並びに、1つ又は複数のコア・ネットワーク・サーバ及び/又はエッジ・サーバを含み得る、サーバのうちの1つ又は複数に実装された分散型ファイル・システムを含み得る。フレームワーク層は、ソフトウェア層のソフトウェア及び/又はアプリケーション層の1つ又は複数のアプリケーションをサポートするために、フレームワークを含み得る。ソフトウェア又はアプリケーションは、それぞれ、ウェブベースのサービス・ソフトウェア又はアプリケーションを含み得る。実施例において、クライアント・デバイスのうちの1つ又は複数は、ウェブベースのサービス・ソフトウェア又はアプリケーションを使用し得る(たとえば、1つ又は複数のアプリケーション・プログラミング・インターフェイス(API:application programming interface)を介してサービス・ソフトウェア及び/又はアプリケーションにアクセスすることによって)。フレームワーク層は、たとえば大規模データ処理(たとえば、「ビッグ・データ」)のための分散型ファイル・システムを使用し得る、フリー及びオープン・ソース・ソフトウェア・ウェブ・アプリケーション・フレームワークのタイプでもよいが、これに限定されない。
クラウドベースのネットワーク環境は、本明細書に記載の計算及び/又はデータ・ストレージ機能(又は1つ若しくは複数のその部分)の任意の組合せを実施するクラウド計算及び/又はクラウド・ストレージを提供し得る。これらの様々な機能のいずれも、セントラル又はコア・サーバ(たとえば、州、領域、国、世界に分散され得る1つ又は複数のデータ・センタなどの)から複数の場所に分散され得る。ユーザ(たとえば、クライアント・デバイス)への接続が、エッジ・サーバに比較的近い場合、コア・サーバは、機能性の少なくとも一部分をエッジ・サーバに任じ得る。クラウドベースのネットワーク環境は、プライベート(たとえば、単一の組織に限定される)でもよく、パブリック(たとえば、多数の組織に利用可能)、及び/又はその組合せ(たとえば、ハイブリッド・クラウド環境)でもよい。
クライアント・デバイスは、図9に関して本明細書に記載の例示的コンピューティング・デバイス900の構成要素、特徴、及び機能性のうちの少なくともいくつかを含み得る。実例として、及び限定ではなく、クライアント・デバイスは、パーソナル・コンピュータ(PC)、ラップトップ・コンピュータ、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、スマート・ウォッチ、ウェアラブル・コンピュータ、パーソナル・デジタル・アシスタント(PDA:Personal Digital Assistant)、MP3プレーヤ、仮想現実ヘッドセット、全地球測位システム(GPS)又はデバイス、ビデオプレーヤ、ビデオカメラ、監視デバイス又はシステム、車両、船、飛行船、仮想機械、ドローン、ロボット、ハンドヘルド通信デバイス、病院デバイス、ゲーミング・デバイス又はシステム、娯楽システム、車両コンピュータ・システム、組み込み型システム・コントローラ、リモート制御、器具、民生用電子デバイス、ワークステーション、エッジ・デバイス、これらの描写されたデバイスの任意の組合せ、或いは任意の他の適切なデバイスとして実施され得る。
本開示は、コンピュータ又は他の機械、たとえば、パーソナル・データ・アシスタント又は他のハンドヘルド・デバイス、によって実行されている、プログラム・モジュールなどのコンピュータ実行可能命令を含む、コンピュータ・コード又は機械使用可能命令との一般的関連において説明され得る。一般に、ルーティン、プログラム、オブジェクト、構成要素、データ構造などを含む、プログラム・モジュールは、特定のタスクを実行する又は特定の抽象データ・タイプを実装するコードを指す。本開示は、ハンドヘルド・デバイス、民生用電子機器、汎用コンピュータ、より専門的コンピューティング・デバイスなどを含む、様々なシステム構成において実施され得る。本開示はまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散型計算環境において実施され得る。
本明細書では、2つ以上の要素に関する「及び/又は」の記述は、1つのみの要素、又は要素の組合せを意味すると解釈されるべきである。たとえば、「要素A、要素B、及び/又は要素C」は、要素Aのみ、要素Bのみ、要素Cのみ、要素A及び要素B、要素A及び要素C、要素B及び要素C、或いは要素A、B、及びCを含み得る。加えて、「要素A又は要素Bのうちの少なくとも1つ」は、要素Aのうちの少なくとも1つ、要素Bのうちの少なくとも1つ、或いは要素Aのうちの少なくとも1つ及び要素Bのうちの少なくとも1つを含み得る。さらに、「要素A及び要素Bのうちの少なくとも1つ」は、要素Aのうちの少なくとも1つ、要素Bのうちの少なくとも1つ、或いは要素Aのうちの少なくとも1つ及び要素Bのうちの少なくとも1つを含み得る。
本開示の主題は、法的要件を満たすために、本明細書に記載の特異性を有して説明されている。しかしながら、その説明自体は、本開示の範囲を限定することを意図していない。そうではなくて、本発明者により、他の現在又は未来の技術と併せて、本文書に記載されているものと類似の異なるステップ又はステップの組合せを含むために、本請求の主題は他のやり方でも実施され得ることが企図されている。さらに、「ステップ」及び/又は「ブロック」という用語が、用いられる方法の異なる要素を含意するために、本明細書で使用され得るが、それらの用語は、個々のステップの順番が明示的に記載されていない限り及びそのように記載されているときを除いて、本明細書に記載の様々なステップの間の任意の特定の順番を暗示するものとして解釈されるべきではない。

Claims (20)

  1. 一連のフレームの第1の参照フレームと前記一連のフレームの第2の参照フレームとの間のオプティカル・フローを計算するステップと、
    前記オプティカル・フローに少なくとも基づいて、第1のセットの1つ又は複数のローカル運動ベクトル及び第2のセットの1つ又は複数のローカル運動ベクトルを生成するステップであって、前記第1のセットの1つ又は複数のローカル運動ベクトルが、前記第1の参照フレーム内の1つ又は複数の第1の画素位置に表示された第1の視覚的コンテンツを、前記第1の参照フレームの前記第1の視覚的コンテンツに対応する中間フレーム内の1つ又は複数の画素位置にマップし、前記第2のセットの1つ又は複数のローカル運動ベクトルが、前記第2の参照フレーム内の1つ又は複数の第2の画素位置に表示された第2の視覚的コンテンツを、前記第2の参照フレームの前記第2の視覚的コンテンツに対応する前記中間フレーム内の1つ又は複数の画素位置にマップする、ステップと、
    前記中間フレーム内の前記1つ又は複数の画素位置のうちの少なくとも1つの画素位置における前記第1の視覚的コンテンツと前記第2の視覚的コンテンツとの間の矛盾を検出するステップと、
    前記検出するステップに応答して、前記中間フレーム内の前記少なくとも1つの画素位置について、前記第1のセットの1つ若しくは複数のローカル運動ベクトル又は前記第2のセットの1つ若しくは複数のローカル運動ベクトルのうちのどちらがグローバル運動ベクトルに対してより高い類似性スコアを有するかを決定するステップと、
    前記より高い類似性スコアに対応する1つ又は複数のローカル運動ベクトルを使用して、前記中間フレーム内の前記少なくとも1つの画素位置の画素データを生成するステップと
    を含む方法。
  2. 前記画素データを前記生成するステップが、前記第1の参照フレームと前記第2の参照フレームとの間に前記画素データを内挿すること、又は前記第1の参照フレーム若しくは前記第2の参照フレームのうちの1つ若しくは複数から前記画素データを外挿することのうちの1つ又は複数に少なくとも基づく、請求項1に記載の方法。
  3. 前記矛盾を前記検出するステップが、第1の表面の少なくとも一部分が前記第1の表面とは異なる第2の表面の前にあることを示す前記第1のセットの1つ又は複数のローカル運動ベクトル、及び前記第1の表面の前記少なくとも一部分が前記第2の表面の後ろにあることを示す前記第2のセットの1つ又は複数のローカル運動ベクトルに少なくとも基づく、請求項1に記載の方法。
  4. 前記グローバル運動ベクトルの角度と前記第1のセットの1つ若しくは複数のローカル運動ベクトルの1つ若しくは複数の角度との間の差、又は、
    前記グローバル運動ベクトルの大きさと前記第1のセットの1つ若しくは複数のローカル運動ベクトルの1つ若しくは複数の大きさとの間の差
    のうちの1つ又は複数に少なくとも基づいて、前記より高い類似性スコアを計算するステップをさらに含む、請求項1に記載の方法。
  5. 前記画素データを前記生成するステップが、1つ又は複数の期間にわたってディスプレイ・デバイスを使用して表示される場合に目標フレーム・レートを達成するために、前記一連のフレームの1つ又は複数の追加のフレームを生成することである、請求項1に記載の方法。
  6. 前記第1のセットの1つ若しくは複数のローカル運動ベクトル又は前記第2のセットの1つ若しくは複数のローカル運動ベクトルのうちのどちらが前記グローバル運動ベクトルに対してより高い類似性スコアを有するかを前記決定するステップが、前記グローバル運動ベクトルの大きさに比例して前記グローバル運動ベクトルの角度と前記第1のセットの1つ又は複数の運動ベクトルの1つ又は複数の角度との間の差に重み付けする類似性メトリックを計算することに少なくとも基づく、請求項1に記載の方法。
  7. 前記第1のセットの1つ若しくは複数のローカル運動ベクトル又は前記第2のセットの1つ若しくは複数のローカル運動ベクトルのうちのどちらが前記より高い類似性スコアを有するかを前記決定するステップが、
    前記第1のセットの1つ又は複数のローカル運動ベクトルの第1の類似性スコアを計算するステップと、
    前記第2のセットの1つ又は複数のローカル運動ベクトルの第2の類似性スコアを計算するステップと、
    前記第1の類似性スコアを前記第2の類似性スコアと比較するステップと
    を含む、請求項1に記載の方法。
  8. 前記グローバル運動ベクトルが、前記第1の参照フレームと前記第2の参照フレームとの間の運動ベクトルの統計的組合せを使用して計算される、請求項1に記載の方法。
  9. 前記少なくとも1つの画素位置の前記画素データを前記生成するステップが、前記第1のセットの1つ又は複数のローカル運動ベクトルに対応する前記より高い類似性スコアに少なくとも基づく前記第2の視覚的コンテンツに対応しない、請求項1に記載の方法。
  10. 動作を実行するための1つ又は複数の処理ユニットを備えるシステムであって、前記動作が、
    第1の参照フレームと第2の参照フレームとの間のオプティカル・フローに少なくとも基づいて、前記第1の参照フレームの第1の視覚的コンテンツを中間フレーム内の画素位置にマップする第1の運動ベクトル、及び前記第2の参照フレームの第2の視覚的コンテンツを前記中間フレーム内の前記画素位置にマップする第2の運動ベクトルを生成するステップと、
    前記第1の視覚的コンテンツ及び前記第2の視覚的コンテンツに少なくとも基づいて、前記画素位置における前記第1の運動ベクトルと前記第2の運動ベクトルとの間の矛盾を決定するステップと、
    前記第1の運動ベクトルが前記第2の運動ベクトルよりもグローバル運動ベクトルへのより高い類似性を有することに少なくとも基づいて、前記第1の運動ベクトルを使用して前記画素位置に対応する画素データを生成するステップと
    を含む、システム。
  11. 前記画素データを前記生成するステップが、前記第1の参照フレームと前記第2の参照フレームとの間に前記画素データを内挿すること、又は前記第1の参照フレーム若しくは前記第2の参照フレームのうちの1つ若しくは複数から前記画素データを外挿することのうちの1つ又は複数に少なくとも基づく、請求項10に記載のシステム。
  12. 前記矛盾を前記決定するステップが、第1の表面の少なくとも一部分が前記画素位置において前記第1の表面とは異なる第2の表面の前にあることを示す前記第1の運動ベクトル、及び前記第1の表面の前記少なくとも一部分が前記画素位置において前記第2の表面の後ろにあることを示す前記第2の運動ベクトルに少なくとも基づく、請求項10に記載のシステム。
  13. 前記グローバル運動ベクトルの第1の角度と前記第1の運動ベクトルの第2の角度との間の差、又は
    前記グローバル運動ベクトルの第1の大きさと前記第1の運動ベクトルの第2の大きさとの間の差
    のうちの1つ又は複数を計算することに少なくとも基づいて、前記第1の運動ベクトルが前記第2の運動ベクトルよりも前記グローバル運動ベクトルへのより高い類似性を有すると決定するステップをさらに含む、請求項10に記載のシステム。
  14. 前記システムが、
    自律機械若しくは半自律機械のための制御システム、
    自律機械若しくは半自律機械のための認知システム、
    シミュレーション動作を実行するためのシステム、
    デジタル・ツイン動作を実行するためのシステム、
    光輸送シミュレーションを実行するためのシステム、
    3D資産の共同コンテンツ作成を実行するためのシステム、
    深層学習動作を実行するためのシステム、
    エッジ・デバイスを使用して実装されるシステム、
    ロボットを使用して実装されるシステム、
    会話型AI動作を実行するためのシステム、
    合成データを生成するためのシステム、
    仮想現実コンテンツ、拡張現実コンテンツ、若しくは複合現実コンテンツのうちの少なくとも1つを提示するためのシステム、
    1つ若しくは複数の仮想機械(VM)を組み込むシステム、
    データ・センタにおいて少なくとも部分的に実装されるシステム、又は
    クラウド計算資源を使用して少なくとも部分的に実装されるシステム
    のうちの少なくとも1つに含まれる、請求項10に記載のシステム。
  15. 内挿されたフレームの画素位置の画素データを、1つ又は複数のグローバル運動ベクトルと前記内挿されたフレームを生成するために使用される1つ又は複数のフレームの1つ又は複数の矛盾する部分の1つ又は複数のローカル運動ベクトルとの間の類似性に少なくとも基づいて決定する1つ又は複数の回路
    を備えるプロセッサ。
  16. 前記画素位置の前記画素データが、前記1つ又は複数の矛盾する部分の第1の部分を使用して、前記1つ又は複数の矛盾する部分の第2の部分に対応するローカル運動ベクトルが前記第1の部分に対応する少なくとももう1つのローカル運動ベクトルよりも前記1つ又は複数のグローバル運動ベクトルに類似していないと少なくとも決定することに少なくとも基づいて決定される、請求項15に記載のプロセッサ。
  17. 前記内挿されたフレームが、少なくとも、前記1つ又は複数のフレームのうちの第1のフレームと前記1つ又は複数のフレームのうちの第2のフレームとの間に前記画素データを内挿することによって生成される、請求項15に記載のプロセッサ。
  18. 前記1つ又は複数の矛盾する部分が、前記1つ又は複数のフレームの1つ又は複数の第1のフレームと前記1つ又は複数のフレームの1つ又は複数の第2のフレームとの間の画素コリジョンを識別することに少なくとも基づいて決定される、請求項15に記載のプロセッサ。
  19. 前記類似性が、
    前記1つ若しくは複数のグローバル運動ベクトルの1つ若しくは複数の第1の角度と前記1つ若しくは複数のローカル運動ベクトルの1つ若しくは複数の第2の角度との間の差、又は
    前記1つ若しくは複数のグローバル運動ベクトルの1つ若しくは複数の第1の大きさと前記1つ若しくは複数のローカル運動ベクトルの1つ若しくは複数の第2の大きさとの間の差
    のうちの1つ又は複数に少なくとも基づいて計算される、請求項15に記載のプロセッサ。
  20. 前記プロセッサが、
    自律機械若しくは半自律機械のための制御システム、
    自律機械若しくは半自律機械のための認知システム、
    シミュレーション動作を実行するためのシステム、
    デジタル・ツイン動作を実行するためのシステム、
    光輸送シミュレーションを実行するためのシステム、
    3D資産の共同コンテンツ作成を実行するためのシステム、
    深層学習動作を実行するためのシステム、
    エッジ・デバイスを使用して実装されるシステム、
    ロボットを使用して実装されるシステム、
    会話型AI動作を実行するためのシステム、
    合成データを生成するためのシステム、
    仮想現実コンテンツ、拡張現実コンテンツ、若しくは複合現実コンテンツのうちの少なくとも1つを提示するためのシステム、
    1つ若しくは複数の仮想機械(VM)を組み込むシステム、
    データ・センタにおいて少なくとも部分的に実装されるシステム、又は
    クラウド計算資源を使用して少なくとも部分的に実装されるシステム
    のうちの少なくとも1つに含まれる、請求項15に記載のプロセッサ。
JP2022159253A 2022-08-15 2022-10-03 オプティカル・フローを使用したフレーム・レート・アップコンバージョン Pending JP2024026023A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/888,185 2022-08-15
US17/888,185 US20240054657A1 (en) 2022-08-15 2022-08-15 Frame rate up-conversion using optical flow

Publications (1)

Publication Number Publication Date
JP2024026023A true JP2024026023A (ja) 2024-02-28

Family

ID=89809316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022159253A Pending JP2024026023A (ja) 2022-08-15 2022-10-03 オプティカル・フローを使用したフレーム・レート・アップコンバージョン

Country Status (4)

Country Link
US (1) US20240054657A1 (ja)
JP (1) JP2024026023A (ja)
CN (1) CN117596406A (ja)
DE (1) DE102023120493A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI108900B (fi) * 1999-12-28 2002-04-15 Martti Kesaeniemi Optinen vuo ja kuvan muodostaminen
KR100699261B1 (ko) * 2005-06-24 2007-03-27 삼성전자주식회사 움직임 에러 검출장치와 이를 포함하는 움직임 에러보정장치와 이에 의한 움직임 에러 검출방법 및 움직임에러 보정방법
US20150022677A1 (en) * 2013-07-16 2015-01-22 Qualcomm Incorporated System and method for efficient post-processing video stabilization with camera path linearization
GB2521491B (en) * 2014-06-17 2016-10-19 Imagination Tech Ltd Motion estimation

Also Published As

Publication number Publication date
CN117596406A (zh) 2024-02-23
US20240054657A1 (en) 2024-02-15
DE102023120493A1 (de) 2024-02-15

Similar Documents

Publication Publication Date Title
US11557085B2 (en) Neural network processing for multi-object 3D modeling
US20200364901A1 (en) Distributed pose estimation
US11790594B2 (en) Ray-tracing with irradiance caches
WO2022250796A1 (en) Synthesizing high resolution 3d shapes from lower resolution representations for synthetic data generation systems and applications
JP2023532285A (ja) アモーダル中心予測のためのオブジェクト認識ニューラルネットワーク
CN114424239A (zh) 用于光线追踪应用中的循环模糊的去噪技术
US20240177394A1 (en) Motion vector optimization for multiple refractive and reflective interfaces
US20240037788A1 (en) 3d pose estimation in robotics
US20230267063A1 (en) Real-time latency measurements in streaming systems and applications
US11922558B2 (en) Hybrid differentiable rendering for light transport simulation systems and applications
WO2022251619A1 (en) Hybrid differentiable rendering for light transport simulation systems and applications
JP2024026023A (ja) オプティカル・フローを使用したフレーム・レート・アップコンバージョン
US20220222780A1 (en) Using intrinsic functions for shadow denoising in ray tracing applications
WO2021034772A1 (en) Ray-tracing for auto exposure
US20240160888A1 (en) Realistic, controllable agent simulation using guided trajectories and diffusion models
US20230290057A1 (en) Action-conditional implicit dynamics of deformable objects
US20230377324A1 (en) Multi-domain generative adversarial networks for synthetic data generation
US20230144458A1 (en) Estimating facial expressions using facial landmarks
US20240153188A1 (en) Physics-based simulation of dynamic character motion using generative artificial intelligence
US20240161377A1 (en) Physics-based simulation of human characters in motion
US11593988B2 (en) Fractional visibility estimation using particle density for light transport simulation
CN116246026B (zh) 三维重建模型的训练方法、三维场景渲染方法及装置
US20240127572A1 (en) Real-time occlusion detection between frames for video streaming systems and applications
US20240111894A1 (en) Generative machine learning models for privacy preserving synthetic data generation using diffusion
US20240171788A1 (en) High-resolution video generation using image diffusion models