JP2024508772A - ビデオコーディングのための機械学習ベースのフロー決定 - Google Patents

ビデオコーディングのための機械学習ベースのフロー決定 Download PDF

Info

Publication number
JP2024508772A
JP2024508772A JP2023550114A JP2023550114A JP2024508772A JP 2024508772 A JP2024508772 A JP 2024508772A JP 2023550114 A JP2023550114 A JP 2023550114A JP 2023550114 A JP2023550114 A JP 2023550114A JP 2024508772 A JP2024508772 A JP 2024508772A
Authority
JP
Japan
Prior art keywords
current frame
motion information
luminance component
component
chrominance
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
JP2023550114A
Other languages
English (en)
Inventor
シン、アンキテシュ・クマー
エギルメス、ヒルミ・エネス
コバン、ムハンメド・ゼイド
カルチェビチ、マルタ
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Priority claimed from US17/676,510 external-priority patent/US12003734B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2024508772A publication Critical patent/JP2024508772A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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/186Methods 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 colour or a chrominance component

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本明細書では、ビデオデータを処理するためのシステムおよび技法が説明される。いくつかの態様では、方法は、機械学習システムによって入力ビデオデータを取得することを含むことができる。入力ビデオデータは、現在のフレームの1つまたは複数のルミナンス成分を含む。この方法は、機械学習システムによって、現在のフレームのルミナンス成分の動き情報と、現在のフレームのルミナンス成分を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することを含むことができる。いくつかの例では、この方法は、現在のフレームのルーマ成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、ルミナンス成分の動き情報を決定することを含むことができる。いくつかの例では、この方法は、現在のフレームのルミナンス成分について決定された動き情報を使用して、現在のフレームのクロミナンス成分の動き情報を決定することをさらに含むことができる。

Description

[0001] 本開示は、概して、画像および/またはビデオの符号化(または圧縮)と復号(解凍)とを含む、画像およびビデオのコーディングに関する。たとえば、本開示の態様は、1つまたは複数の画像フレームまたはピクチャ(たとえば、ビデオフレーム/ピクチャ)のルーマおよびクロマ成分のフロー情報を決定するための技術に関する。
[0002] 多くのデバイスおよびシステムは、ビデオデータ(video data)が消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを含む高い品質のビデオを望む。その結果、これらの需要を満たすために必要とされる大量のビデオデータは、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。
[0003] ビデオコーディング技法は、ビデオデータを圧縮するために使用され得る。ビデオコーディングの目標は、ビデオ品質に対する劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。常に発展しつつあるビデオサービスが利用可能になるとともに、より良いコーディング効率を有する符号化技法が必要とされる。
[0004] 1つまたは複数の機械学習システム(machine learning system)を使用して画像および/またはビデオのコンテンツをコーディング(たとえば、符号化および/または復号)するためのシステムおよび技法が記載される。少なくとも1つの例によれば、ビデオデータを処理するための方法が提供される。この方法は、機械学習システムによって、現在のフレーム(current frame)の少なくとも1つのルミナンス成分(luminance component)を含む入力ビデオデータ(input video data)を取得することと、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報(motion information)と、現在のフレームの1つまたは複数のクロミナンス成分(chrominance component)の動き情報とを決定することと、を含む。
[0005] 別の例では、少なくとも1つのメモリ(たとえば、仮想コンテンツデータ、1つまたは複数の画像などのデータを記憶するように構成される)と、少なくとも1つのメモリに結合された(たとえば、回路内に実装された)1つまたは複数のプロセッサとを含むビデオデータを処理するための装置が提供される。1つまたは複数のプロセッサは、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成されており、それを行うことができる。
[0006] 別の例では、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を行わせる命令を記憶した非一時的コンピュータ可読媒体(non-transitory computer-readable medium)が提供される。
[0007] 別の例では、ビデオデータを処理するための装置が提供される。この装置は、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得するための手段と、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するための手段と、を含む。
[0008] いくつかの態様では、上記の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数は、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータ(warping parameter)と、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測(inter-frame prediction)を決定することと、をさらに備える。
[0009] いくつかの態様では、1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算(interpolation operation)を適用することによって、少なくとも部分的に決定される。
[0010] いくつかの態様では、補間演算は、トリリニア補間演算(trilinear interpolation operation)を含む。
[0011] いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータおよび現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF:space-scale flow)ワーピングパラメータを含む。
[0012] いくつかの態様では、SSFワーピングパラメータは、学習されたスケールフローベクトル(learned scale-flow vector)を含む。
[0013] いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するために、上記の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数はさらに、現在のフレームの少なくとも1つのルミナンス成分および前のフレーム(previous frame)の少なくとも1つの復元されたルーマ成分(reconstructed luma component)に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することと、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を備える。
[0014] いくつかの態様では、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤ(convolutional layer)を使用して決定される。
[0015] いくつかの態様では、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するために、上述の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることをさらに備える。
[0016] いくつかの態様では、現在のフレームはビデオフレーム(video frame)を含む。
[0017] いくつかの態様では、1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分(chrominance-blue component)と少なくとも1つのクロミナンス赤成分(chrominance-red component)とを含む。
[0018] いくつかの態様では、現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマット(luminance-chrominance (YUV) format)を有する。場合によっては、YUVフォーマットはYUV4:2:0フォーマットである。
[0019] いくつかの態様では、本明細書に記載される装置は、モバイルデバイス(たとえば、携帯電話もしくはいわゆる「スマートフォン」、タブレットコンピュータ、もしくはその他のタイプのモバイルデバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、テレビジョン、車両(もしくは車両のコンピューティングデバイス)、または他のデバイスを備えるか、それらの一部であり得る。いくつかの態様では、装置は、1つまたは複数の画像またはビデオフレームをキャプチャするための少なくとも1つのカメラを含む。たとえば、装置は、1つもしくは複数の画像および/またはビデオフレームを含む1つもしくは複数のビデオをキャプチャするためのカメラ(たとえば、RGBカメラ)または複数のカメラを含むことができる。いくつかの態様では、装置は、1つまたは複数の画像、ビデオ、通知、または他の表示可能なデータを表示するためのディスプレイを含む。いくつかの態様では、装置は、少なくとも1つのデバイスに伝送媒体を介して1つまたは複数のビデオフレームおよび/またはシンタックスデータを送信するように構成された送信機を含む。いくつかの態様では、プロセッサには、ニューラル処理装置(NPU)、中央処理装置(CPU)、グラフィックス処理装置(GPU)、または他の処理デバイスもしくは構成要素が含まれる。
[0020] 本概要は、請求される主題の主要または本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために切り離して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照して理解されるべきである。
[0021] 上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるであろう。
[0022] 本出願の例示的な実施形態は、以下の図を参照して以下で詳細に記載される。
[0023] システムオンチップ(SOC)の例示的な実装形態を示す図。 [0024] 全結合ニューラルネットワークの一例を示す図。 [0025] 局所結合ニューラルネットワークの一例を示す図。 [0026] 畳み込みニューラルネットワークの一例を示す図。 [0027] 画像から視覚特徴を認識するように設計された深層畳み込みネットワーク(DCN::deep convolutional network)の詳細な一例を示す図。 [0028] 深層畳み込みネットワーク(DCN)を示すブロック図。 [0029] いくつかの例による、ニューラルネットワークベースのシステムを使用して画像および/またはビデオのコーディング(符号化および復号)を実行するように動作可能なデバイスを含むシステムの一例を示す図。 [0030] いくつかの例による、赤緑青(RGB)フォーマットを有する入力用のエンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一例を示す図。 [0031] いくつかの例による、エンドツーエンドのニューラルネットワークベースの画像およびビデオコーディングシステムの一部であり得る、1つまたは複数のルミナンス-クロミナンス(YUV)入力フォーマット(たとえば、4:2:0YUV入力フォーマット)を処理するように構成された空間スケールフロー(SSF)ニューラルネットワークアーキテクチャの一例を示す図。 [0032] いくつかの例による、ルーマ入力で動作する機械学習ベースのフローエンジンの一例を示す図。 [0033] いくつかの例による、クロマ動き情報を取得するためのルーマ動き情報のサブサンプリングの一例を示す図。 [0034] いくつかの例による、YUV(たとえば、YUV4:2:0)残差を有する機械学習ベースのアーキテクチャの一例を示す図。 [0035] いくつかの例による、1×1畳み込みレイヤの例示的な動作を示す図。 [0036] いくつかの例による、YUV4:2:0入力などのYUV入力(Y、U、およびV)と直接連携する機械学習ベースのアーキテクチャ(たとえば、エンドツーエンドニューラルネットワークベースの画像およびビデオコーディングシステム)の一例を示す図。 [0037] いくつかの例による、YUV4:2:0入力などのYUV入力(Y、U、およびV)と直接連携する機械学習ベースのアーキテクチャ(たとえば、エンドツーエンドニューラルネットワークベースの画像およびビデオコーディングシステム)の別の例を示す図。 [0038] いくつかの例による、ビデオデータを処理するためのプロセスの一例を示す流れ図。 [0039] 本明細書で説明する様々な技法を実装できる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャを示す図。
[0040] 本開示のいくつかの態様および実施形態が以下に提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の記載では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が記載される。しかしながら、様々な実施形態は、これらの具体的な詳細なしに実践され得ることが明らかであろう。図および説明は限定するものではない。
[0041] その後の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用性、または構成を限定するものではない。むしろ、例示的な実施形態のその後の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供するであろう。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。
[0042] デジタルビデオデータは、特に、高品質のビデオデータに対する需要が成長し続けるにつれて大量のデータを含むことができる。たとえば、ビデオデータの消費者は、通常、高い忠実度、解像度、フレームレートなどを有するますます高い品質のビデオを望む。しかしながら、そのような需要を満たすために必要とされる大量のビデオデータは、通信ネットワーク、ならびにビデオデータを処理し記憶するデバイスに著しい負担をかける可能性がある。
[0043] ビデオデータをコーディングするために、様々な技法が使用され得る。ビデオコーディングは、特定のビデオコーディング規格に従って実行され得る。例示的なビデオコーディング規格には、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、ムービングピクチャエキスパートグループ(MPEG)コーディング、および多用途ビデオコーディング(VVC)が含まれる。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。
[0044] 機械学習(ML)ベースのシステムを使用して、画像および/またはビデオコーディングを実行することができる。一般に、MLは人工知能(AI)のサブセットである。MLシステムは、明示的な命令を使用せずにパターンおよび推測に依存することによって様々なタスクを実行するためにコンピュータシステムが使用することができるアルゴリズムと統計モデルとを含むことができる。MLシステムの一例は、人工ニューロン(たとえば、ニューロンモデル)の相互接続されたグループを含む場合がある、(人工ニューラルネットワークとも呼ばれる)ニューラルネットワークである。ニューラルネットワークは、とりわけ、画像および/またはビデオのコーディング、画像解析および/またはコンピュータビジョンアプリケーション、インターネットプロトコル(IP)カメラ、モノのインターネット(IoT)デバイス、自律車両、サービスロボットなどの様々なアプリケーションおよび/またはデバイスに使用される場合がある。
[0045] ニューラルネットワーク内の個々のノードは、入力データを取得し、データに対して単純な演算を実行することにより、生体ニューロンをエミュレートすることができる。入力データに対して実行された単純な演算の結果は、他のニューロンに選択的に渡される。重み値がネットワーク内の各々のベクトルおよびノードに関連付けられ、これらの値は、入力データがどのように出力データに関係するかを制約する。たとえば、各ノードの入力データは、対応する重み値によって乗算される場合があり、積は合計される場合がある。積の合計は任意選択のバイアスによって調整される場合があり、活性化関数が結果に適用され、ノードの出力信号または(活性化マップもしくは特徴マップと呼ばれることがある)「出力活性化」をもたらす。重み値は、最初に、ネットワークを介して訓練データの反復フローによって決定される場合がある(たとえば、重み値は、ネットワークが特定のクラスの典型的な入力データ特性によってそれらのクラスをどのように識別するべきかを学習する訓練フェーズ中に確立される)。
[0046] とりわけ、畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN)、敵対的生成ネットワーク(GAN)、多層パーセプトロン(MLP)ニューラルネットワークなどの、異なるタイプのニューラルネットワークが存在する。たとえば、畳み込みニューラルネットワーク(CNN)は、フィードフォワード人工ニューラルネットワークのタイプである。畳み込みニューラルネットワークは、各々が受容野(たとえば、入力空間の空間的に局所化された領域)を有し、入力空間を集合的にタイリングする人工ニューロンの集合を含む場合がある。RNNは、レイヤの出力を節約し、この出力を、レイヤの結果を予測するのに役立つために入力にフィードバックするという原理で動作する。GANは、ニューラルネットワークモデルが合理的に元のデータセットからである可能性がある新しい合成出力を生成することができるように、入力データ内のパターンを学習することができる生成ニューラルネットワークの一形態である。GANは、合成された出力を生成する生成ニューラルネットワークと、信頼性について出力を評価する識別ニューラルネットワークとを含む、一緒に動作する2つのニューラルネットワークを含むことができる。MLPニューラルネットワークでは、データは入力レイヤに供給される場合があり、1つまたは複数の隠れレイヤがデータに抽象化レベルを提供する。次いで、抽象化されたデータに基づいて出力レイヤ上で予測が行われる場合がある。
[0047] (複数の隠れレイヤが存在するときに深層ニューラルネットワークと呼ばれる)階層型ニューラルネットワークアーキテクチャでは、人工ニューロンの第1のレイヤの出力は人工ニューロンの第2のレイヤへの入力になり、人工ニューロンの第2のレイヤの出力は人工ニューロンの第3のレイヤの入力になり、以下同様である。CNNは、たとえば、特徴の階層を認識するように訓練される場合がある。CNNアーキテクチャにおける計算は、1つまたは複数の計算チェーンにおいて構成され得る処理ノードの集団にわたって分散される場合がある。これらの多層化アーキテクチャは、一度に1つのレイヤを訓練される場合があり、逆伝搬を使用して微調整される場合がある。
[0048] 多くの場合、深層学習ベースのシステム(deep learning-based system)は、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する(場合によってはハイパープライアネットワークとも呼ばれる)第2のサブネットワーク(デコーダサブネットワーク)の組合せとして設計される。場合によっては、デコーダの他のサブネットワークが存在する可能性がある。そのような深層学習ベースのシステムアーキテクチャは、変換プラス量子化モジュール(またはエンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。
[0049] ビデオ圧縮のためのほとんどの既存の深層学習ベースのアーキテクチャは、RGB、YUV4:4:4、または他の非サブサンプル入力フォーマットなどの非サブサンプル入力フォーマットで動作するように設計されている。しかしながら、HEVCおよびVVCなどのビデオコーディング規格は、それらそれぞれのメインプロファイル内でYUV4:2:0色フォーマットをサポートするように設計される。4:2:0 YUVフォーマットをサポートするために、非サブサンプル入力フォーマットで動作するように設計された深層学習ベースのアーキテクチャは、修正される必要がある。
[0050] システム、装置、プロセス(方法とも呼ばれる)、およびコンピュータ可読媒体(総称して「システムおよび技法」と呼ばれる)は、本明細書では、1つまたは複数のフレーム(たとえば、ビデオフレーム)の1つの色成分を使用して、フレームの色成分および別の色成分に関する情報を推定することができるMLベースのシステム(たとえば、深層学習ベースのシステム)を提供すると説明される。いくつかの態様では、MLベースのシステムは、ルミナンス-クロミナンス(YUV)入力フォーマットを有する入力データを処理するために設計され得る。このような態様では、MLベースのシステムは、現在のフレームと以前に復元されたフレーム(たとえば、MLベースのシステムによって復元された)の両方のルーマ成分(luma component)を使用して、ルーマ成分と1つまたは複数のクロマ成分の両方についての動き情報(たとえば、光フロー情報などのフロー情報)を推定することができる。場合によっては、ルーマ成分の動き情報を学習した後、ダウンサンプリングを備えた畳み込みレイヤを使用して、1つまたは複数のクロマ成分の動き情報(たとえば、フロー情報)を学習することができる。場合によっては、1つまたは複数のクロマ成分の動き情報は、ルーマ成分の動き情報を直接サブサンプリングすることによって(たとえば、畳み込みレイヤを使用せずに)取得することができる。このような技法は、フレームのすべての成分に対して実行することができる。このような技法を使用して、MLベースのシステムは、ラテントデータまたはビットストリームの一部としてコーディングされたクロマ情報を必要とせずに、クロマ動き情報(たとえば、フロー情報)を決定することができる(たとえば、クロマ情報とともにサイド情報を送信する必要性を減らす)。
[0051] 上記のように、MLベースのシステムは、YUV入力フォーマットを有する入力データを処理するために設計され得る。YUVフォーマットは、ルミナンスチャネル(Y)と一対のクロミナンスチャネル(UおよびV)とを含む。Uチャネルはクロミナンス(またはクロマ)-青チャネルと呼ばれることがあり、Uチャネルはクロミナンス(またはクロマ)-赤チャネルと呼ばれることがある。場合によっては、ルミナンス(Y)チャネルまたは成分は、ルーマチャネルまたは成分と呼ぶこともできる。場合によっては、クロミナンス(UおよびV)チャネルまたは成分は、クロマチャネルまたは成分と呼ぶこともできる。YUV入力フォーマットは、とりわけ、YUV4:2:0、YUV4:4:4、YUV4:2:2を含むことができる。場合によっては、本明細書に記載されたシステムおよび技法は、Y-クロマ青(Cb)-クロマ赤(Cr)(YCbCr)フォーマット、赤緑青(RGB)フォーマット、および/または他のフォーマットなどの他の入力フォーマットを処理するように設計され得る。本明細書に記載のMLベースのシステムは、スタンドアロンフレーム(画像とも呼ばれる)および/または複数のフレームを含むビデオデータを符号化および/または復号することができる。
[0052] 本開示のさらなる詳細および追加の態様が、図に関して説明される。
[0053] 図1は、本明細書に記載された機能のうちの1つまたは複数を実行するように構成された中央処理装置(CPU)102またはマルチコアCPUを含む場合があるシステムオンチップ(SOC)100の例示的な実装形態を示す。いくつかある情報の中で特に、パラメータまたは変数(たとえば、ニューラル信号およびシナプス荷重)、算出デバイスに関連付けられたシステムパラメータ(たとえば、重みを有するニューラルネットワーク)、遅延、周波数ビン情報、タスク情報は、ニューラル処理装置(NPU)108に関連付けられたメモリブロック、CPU102に関連付けられたメモリブロック、グラフィックス処理装置(GPU)104に関連付けられたメモリブロック、デジタル信号プロセッサ(DSP)106に関連付けられたメモリブロック、メモリブロック118に記憶される場合があり、および/または複数のブロックにわたって分散される場合がある。CPU102において実行される命令は、CPU102に関連付けられたプログラムメモリからロードされてもよく、メモリブロック118からロードされてもよい。
[0054] SOC100はまた、GPU104、DSP106などの特定の機能に適合された追加の処理ブロックと、第5世代(5G)接続、第4世代ロングタームエボリューション(4G LTE(登録商標))接続、Wi-Fi(登録商標)接続、USB接続、Bluetooth(登録商標)接続などを含む場合がある接続ブロック110と、たとえば、ジェスチャを検出および認識することができるマルチメディアプロセッサ112とを含む場合がある。一実装形態では、NPUは、CPU102、DSP106、および/またはGPU104内に実装される。SOC100はまた、センサプロセッサ114、画像信号プロセッサ(ISP)116、および/または全地球測位システムを含む場合があるナビゲーションモジュール120を含む場合がある。
[0055] SOC100はARM命令セットに基づく場合がある。本開示の一態様では、CPU102にロードされる命令は、入力値とフィルタ重みの乗算積に対応するルックアップテーブル(LUT)内の記憶された乗算結果を探索するためのコードを備えることができる。CPU102にロードされる命令はまた、乗算積のルックアップテーブルヒットが検出されたとき、乗算積の乗算演算中に乗算器を無効にするためのコードを備えることができる。さらに、CPU102にロードされる命令は、乗算積のルックアップテーブルミスが検出されたとき、入力値とフィルタ重みの算出された乗算積を記憶するためのコードを備えることができる。
[0056] SOC100および/またはその構成要素は、本明細書で説明された本開示の態様に従って機械学習技法を使用して、(ビデオ符号化および/または復号とも呼ばれ、ビデオコーディングと総称される)ビデオ圧縮および/または解凍を実行するように構成される場合がある。ビデオ圧縮および/または解凍を実行するために深層学習アーキテクチャを使用することにより、本開示の態様は、デバイス上でのビデオ圧縮および/または解凍の効率を増大させることができる。たとえば、記載されたビデオコーディング技法を使用するデバイスは、機械学習ベースの技法を使用してより効率的にビデオを圧縮することができ、別のデバイスに圧縮されたビデオを送信することができ、他のデバイスは、本明細書に記載された機械学習ベースの技法を使用してより効率的に圧縮されたビデオを解凍することができる。
[0057] 上述されたように、ニューラルネットワークは機械学習システムの一例であり、入力レイヤと、1つまたは複数の隠れレイヤと、出力レイヤとを含むことができる。データは入力レイヤの入力ノードから提供され、処理は1つまたは複数の隠れレイヤの隠れノードによって実行され、出力は出力レイヤの出力ノードを介して生成される。深層学習ネットワークは、通常、複数の隠れレイヤを含む。ニューラルネットワークの各レイヤは、人工ニューロン(またはノード)を含むことができる特徴マップまたは活性化マップを含むことができる。特徴マップは、フィルタ、カーネルなどを含むことができる。ノードは、レイヤのうちの1つまたは複数のノードの重要度を示すために使用される1つまたは複数の重みを含むことができる。場合によっては、深層学習ネットワークは、一連の多くの隠れレイヤを有することができ、初期のレイヤは、入力の単純で低レベルの特性を決定するために使用され、後のレイヤは、より複雑で抽象的な特性の階層を構築する。
[0058] 深層学習アーキテクチャは特徴の階層を学習することができる。たとえば、視覚データが提示された場合、第1のレイヤは、入力ストリーム内のエッジなどの比較的単純な特徴を認識するように学習することができる。別の例では、聴覚データが提示された場合、第1のレイヤは、特定の周波数のスペクトル電力を認識するように学習することができる。第1のレイヤの出力を入力として取得する第2のレイヤは、視覚データの場合の単純な形状、または聴覚データの場合の音の組合せなどの特徴の組合せを認識するように学習することができる。たとえば、上位レイヤは、視覚データ内の複雑な形状、または聴覚データ内の単語を表すように学習することができる。さらに上位のレイヤは、共通の視覚オブジェクトまたは発話フレーズを認識するように学習することができる。
[0059] 深層学習アーキテクチャは、自然階層構造を有する問題に適用されたときに特にうまく実行することができる。たとえば、原動機付き車両の分類は、ホイール、フロントガラス、および他の特徴を認識するための最初の学習から恩恵を受けることができる。これらの特徴は、車、トラック、および飛行機を認識するために、異なる方法で上位レイヤにおいて組み合わされる場合がある。
[0060] ニューラルネットワークは、様々な接続パターンを用いて設計される場合がある。フィードフォワードネットワークでは、情報が下位レイヤから上位レイヤに渡され、所与のレイヤにおける各ニューロンは、上位レイヤにおけるニューロンに伝える。上述されたように、フィードフォワードネットワークの連続するレイヤにおいて、階層表現が構築される場合がある。ニューラルネットワークはまた、再帰型接続または(トップダウンとも呼ばれる)フィードバック接続を有する場合がある。再帰型接続では、所与のレイヤにおけるニューロンからの出力は、同じレイヤにおける別のニューロンに伝えられる場合がある。再帰型アーキテクチャは、ニューラルネットワークに順次配信される入力データチャンクのうちの2つ以上にわたるパターンを認識する際に役立つ場合がある。所与のレイヤにおけるニューロンから下位レイヤにおけるニューロンへの接続は、フィードバック(またはトップダウン)接続と呼ばれる。高レベルの概念の認識が、入力の特定の低レベルの特徴を区別するのに役立つ場合があるとき、多くのフィードバック接続を有するネットワークが役立つ場合がある。
[0061] ニューラルネットワークのレイヤ間の接続は、全結合または局所結合であり得る。図2Aは、全結合ニューラルネットワーク202の一例を示す。全結合ニューラルネットワーク202では、第2のレイヤにおける各ニューロンが第1のレイヤにおけるあらゆるニューロンから入力を受け取るように、第1のレイヤにおけるニューロンはその出力を第2のレイヤにおけるあらゆるニューロンに通信することができる。図2Bは、局所結合ニューラルネットワーク204の一例を示す。局所結合ニューラルネットワーク204では、第1のレイヤにおけるニューロンは、第2のレイヤにおける限られた数のニューロンに接続される場合がある。より一般的には、局所結合ニューラルネットワーク204の局所結合レイヤは、レイヤにおける各ニューロンが同じまたは同様の接続パターンを有するように構成される場合があるが、異なる値を有する場合がある接続強度で構成される場合がある(たとえば、210、212、214、および216)。局所結合の接続パターンは、所与の領域内の上位レイヤニューロンが、ネットワークへの総入力のうちの制限された部分のプロパティに訓練を介して調節された入力を受け取るので、上位レイヤにおいて空間的に別個の受容野を生じる場合がある。
[0062] 局所結合ニューラルネットワークの一例は、畳み込みニューラルネットワークである。図2Cは、畳み込みニューラルネットワーク206の一例を示す。畳み込みニューラルネットワーク206は、第2のレイヤにおける各ニューロンのための入力に関連付けられた接続強度が共有されるように構成される場合がある(たとえば、208)。畳み込みニューラルネットワークは、入力の空間位置が有意味である問題に好適であり得る。畳み込みニューラルネットワーク206は、本開示の態様による、ビデオ圧縮および/または解凍の1つまたは複数の態様を実行するために使用される場合がある。
[0063] 1つのタイプの畳み込みニューラルネットワークは、深層畳み込みネットワーク(DCN)である。図2Dは、車載カメラなどの画像キャプチャデバイス230から入力された画像226から視覚特徴を認識するように設計されたDCN200の詳細な例を示す。本例のDCN200は、交通標識および交通標識上に提供された数字を識別するように訓練される場合がある。当然、DCN200は、車線マーキングを識別すること、または交通信号を識別することなどの他のタスクのために訓練される場合がある。
[0064] DCN200は、教師あり学習を用いて訓練される場合がある。訓練中に、DCN200は、速度制限標識の画像226などの画像を提示される場合があり、次いで、出力222を生成するために、フォワードパスが算出される場合がある。DCN200は、特徴抽出セクションと分類セクションとを含む場合がある。画像226を受信すると、畳み込みレイヤ232は、特徴マップの第1のセット218を生成するために、畳み込みカーネル(図示せず)を画像226に適用することができる。一例として、畳み込みレイヤ232用の畳み込みカーネルは、28×28特徴マップを生成する5×5カーネルであり得る。本例では、4つの異なる特徴マップが特徴マップの第1のセット218において生成されるので、4つの異なる畳み込みカーネルが、畳み込みレイヤ232において画像226に適用された。畳み込みカーネルは、フィルタまたは畳み込みフィルタと呼ばれる場合もある。
[0065] 特徴マップの第1のセット218は、特徴マップの第2のセット220を生成するために、最大プーリングレイヤ(図示せず)によってサブサンプリングされる場合がある。最大プーリングレイヤは、特徴マップの第1のセット218のサイズを削減する。すなわち、14×14などの特徴マップの第2のセット220のサイズは、28×28などの特徴マップの第1のセット218のサイズよりも小さい。削減されたサイズは、メモリ消費を削減しながら、後続のレイヤに同様の情報を提供する。特徴マップの第2のセット220は、特徴マップの1つまたは複数の後続のセット(図示せず)を生成するために、1つまたは複数の後続の畳み込みレイヤ(図示せず)を介してさらに畳み込まれる場合がある。
[0066] 図2Dの例では、特徴マップの第2のセット220は、第1の特徴ベクトル224を生成するために畳み込まれる。さらに、第1の特徴ベクトル224は、第2の特徴ベクトル228を生成するためにさらに畳み込まれる。第2の特徴ベクトル228の各特徴は、「標識」、「60」、および「100」などの画像226の可能な特徴に対応する数を含む場合がある。ソフトマックス関数(図示せず)が、第2の特徴ベクトル228内の数を確率に変換することができる。したがって、DCN200の出力222は、画像226が1つまたは複数の特徴を含む確率である。
[0067] 本例では、「標識」および「60」についての出力222における確率は、「30」、「40」、「50」、「70」、「80」、「90」、および「100」などの出力222の他のものの確率よりも高い。訓練の前に、DCN200によって生成される出力222は、不正確である可能性がある。したがって、出力222とターゲット出力との間で誤差が計算される場合がある。ターゲット出力は、画像226(たとえば、「標識」および「60」)のグランドトゥルースである。次いで、DCN200の重みは、DCN200の出力222がターゲット出力とより密接に整合されるように調整される場合がある。
[0068] 重みを調整するために、学習アルゴリズムは、重みのための勾配ベクトルを算出することができる。勾配は、重みが調整された場合に誤差が増加または減少する量を示すことができる。最上レイヤにおいて、勾配は、最後から2番目のレイヤにおける活性化ニューロンと出力レイヤにおけるニューロンとを接続する重みの値に直接対応することができる。下位レイヤでは、勾配は、重みの値、および上位レイヤの算出された誤差勾配に依存する場合がある。次いで、重みは、誤差を低減するために調整される場合がある。重みを調整するこの方式は、それがニューラルネットワークを介する「バックワードパス」を伴うので、「逆伝搬」と呼ばれる場合がある。
[0069] 実際には、重みの誤差勾配は、計算された勾配が真の誤差勾配を近似するように、少数の例にわたって計算される場合がある。この近似方法は、確率的勾配降下法と呼ばれる場合がある。確率的勾配降下法は、システム全体の達成可能な誤差レートが減少しなくなるまで、または誤差レートがターゲットレベルに達するまで繰り返される場合がある。学習の後に、DCNは新しい画像を提示される場合があり、ネットワークを介するフォワードパスは、DCNの推論または予測と見なされ得る出力222をもたらすことができる。
[0070] 深層信念ネットワーク(DBN:Deep belief networks)は、隠れノードの複数のレイヤを備える確率モデルである。DBNは、訓練データセットの階層表現を抽出するために使用される場合がある。DBNは、制限ボルツマンマシン(RBM)のレイヤを積層することによって取得される場合がある。RBMは、入力のセットにわたる確率分布を学習することができる人工ニューラルネットワークのタイプである。RBMは、各入力がそれに分類されるべきクラスに関する情報の不在下で確率分布を学習することができるので、RBMは教師なし学習においてしばしば使用される。ハイブリッド教師なしおよび教師ありパラダイムを使用して、DBNの下部RBMは、教師なし方式で訓練される場合があり、特徴抽出器として機能することができ、上部RBMは、(前のレイヤからの入力およびターゲットクラスの同時分布上で)教師あり方式で訓練される場合があり、分類器として機能することができる。
[0071] 深層畳み込みネットワーク(DCN)は、追加のプーリングレイヤおよび正規化レイヤで構成された畳み込みネットワークのネットワークである。DCNは、多くのタスクに関して最先端の性能を実現している。DCNは、入力ターゲットと出力ターゲットの両方が、多くの標本について知られており、勾配降下法の使用によってネットワークの重みを修正するために使用される教師あり学習を使用して訓練され得る。
[0072] DCNは、フィードフォワードネットワークであり得る。加えて、上述されたように、DCNの第1のレイヤにおけるニューロンから次の上位レイヤにおけるニューロンのグループへの接続は、第1のレイヤにおけるニューロンにわたって共有される。DCNのフィードフォワード接続および共有接続は、高速処理のために活用される場合がある。DCNの計算負担は、たとえば、再帰型接続またはフィードバック接続を備える同様のサイズのニューラルネットワークのそれよりもはるかに少ない場合がある。
[0073] 畳み込みネットワークの各レイヤの処理は、空間的に不変のテンプレートまたは基底投影と見なされる場合がある。入力が、カラー画像の赤色、緑色、および青色のチャネルなどの複数のチャネルに最初に分解された場合、その入力に関して訓練された畳み込みネットワークは、画像の軸に沿った2つの空間次元と、色情報をキャプチャする第3の次元とを有する3次元であると見なされる場合がある。畳み込み接続の出力は、後続のレイヤにおいて特徴マップを形成すると見なされる場合があり、特徴マップ(たとえば、220)の各要素が、前のレイヤ(たとえば、特徴マップ218)における様々なニューロンから、および複数のチャネルの各々から入力を受信する。特徴マップにおける値は、整流、max(0,x)などの非線形性を用いてさらに処理される場合がある。隣接するニューロンからの値はさらにプールされる場合があり、これはダウンサンプリングに対応し、さらなる局所不変性および次元削減を提供することができる。
[0074] 図3は、深層畳み込みネットワーク350の一例を示すブロック図である。深層畳み込みネットワーク350は、接続および重みの共有に基づく複数の異なるタイプのレイヤを含む場合がある。図3に示されたように、深層畳み込みネットワーク350は、畳み込みブロック354A、354Bを含む。畳み込みブロック354A、354Bの各々は、畳み込みレイヤ(CONV)356、正規化レイヤ(LNorm)358、および最大プーリングレイヤ(MAX POOL)360で構成される場合がある。
[0075] 畳み込みレイヤ356は、1つまたは複数の畳み込みフィルタを含む場合があり、それらは、特徴マップを生成するために入力データ352に適用される場合がある。2つの畳み込みブロック354A、354Bのみが示されているが、本開示はそのように限定しておらず、代わりに、設計上の選好に応じて、任意の数の畳み込みブロック(たとえば、ブロック354A、354B)が深層畳み込みネットワーク350に含まれてもよい。正規化レイヤ358は、畳み込みフィルタの出力を正規化することができる。たとえば、正規化レイヤ358は、白色化または側方抑制を提供することができる。最大プーリングレイヤ360は、局所不変性および次元削減のために、空間にわたってダウンサンプリングアグリゲーションを提供することができる。
[0076] たとえば、深層畳み込みネットワークの並列フィルタバンクは、高性能および低電力消費を実現するために、SOC100のCPU102またはGPU104にロードされる場合がある。代替実施形態では、並列フィルタバンクは、SOC100のDSP106またはISP116にロードされてもよい。加えて、深層畳み込みネットワーク350は、それぞれ、センサおよびナビゲーションに専用のセンサプロセッサ114およびナビゲーションモジュール120などの、SOC100上に存在する場合がある他の処理ブロックにアクセスすることができる。
[0077] 深層畳み込みネットワーク350はまた、(「FC1」とラベル付けされた)レイヤ362Aおよび(「FC2」とラベル付けされた)レイヤ362Bなどの1つまたは複数の全結合レイヤを含む場合がある。深層畳み込みネットワーク350は、ロジスティック回帰(LR)レイヤ364をさらに含む場合がある。深層畳み込みネットワーク350の各レイヤ356、358、360、362A、362B、364の間には、更新されるべき重み(図示せず)がある。レイヤ(たとえば、356、358、360、362A、362B、364)の各々の出力は、最初の畳み込みブロック354Aにおいて供給された入力データ352(たとえば、画像、オーディオ、ビデオ、センサデータ、および/または他の入力データ)から階層特徴表現を学習するために、深層畳み込みネットワーク350内のレイヤ(たとえば、356、358、360、362A、362B、364)のうちの後続の1つの入力として機能することができる。深層畳み込みネットワーク350の出力は、入力データ352についての分類スコア366である。分類スコア366は、確率のセットであり得、ここで、各確率は、入力データが特徴のセットからの特徴を含む確率である。
[0078] 上述されたように、デジタルビデオデータは大量のデータを含むことができ、それは、通信ネットワークならびにビデオデータを処理し記憶するデバイスにかなりの負担をかける可能性がある。たとえば、圧縮されていないビデオコンテンツを記録することは、概して、記録されるビデオコンテンツの解像度が増大するにつれて大幅に増加する大きいファイルサイズをもたらす。1つの例示的な例では、1080p/24(たとえば、24フレーム毎秒でキャプチャされた幅が1920ピクセルで高さが1080ピクセルの解像度)で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり12.4メガバイトまたは毎秒297.6メガバイトを占有する場合がある。24フレーム毎秒において4K解像度で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり49.8メガバイトまたは毎秒1195.2メガバイトを占有する場合がある。
[0079] ネットワーク帯域幅は、大きいビデオファイルが問題になる可能性がある別の制約である。たとえば、ビデオコンテンツは、しばしば、ワイヤレスネットワークを介して(たとえば、LTE、LTEアドバンスト、新無線(NR)、WiFi(登録商標)、Bluetooth、または他のワイヤレスネットワークを介して)配信され、消費者のインターネットトラフィックの大部分を構成する可能性がある。ワイヤレスネットワークにおける利用可能な帯域幅の量の進歩にもかかわらず、これらのネットワークにおいてビデオコンテンツを配信するために使用される帯域幅の量を削減することが依然として望ましい場合がある。
[0080] 圧縮されていないビデオコンテンツは、物理記憶用のかなりのメモリと送信用のかなりの帯域幅とを要する場合がある大きいファイルをもたらす可能性があるので、そのようなビデオコンテンツを圧縮し、次いで解凍するためにビデオコーディング技法が利用され得る。
[0081] ビデオコンテンツのサイズ、したがってビデオコンテンツを記憶するために要するストレージの量、およびビデオコンテンツを配信する際に要する帯域幅の量を削減するために、とりわけ、HEVC、AVC、MPEG、VVCなどの特定のビデオコーディング規格に従って、様々なビデオコーディング技法が実行され得る。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。
[0082] 概して、符号化デバイスは、符号化ビデオビットストリームを生成するためにビデオコーディング規格に従ってビデオデータを符号化する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。符号化デバイスは、各ピクチャを複数のスライスに区分化することによってピクチャのコード化表現を生成することができる。スライスは、スライス内の情報が、同じピクチャ内の他のスライスからのデータへの依存関係なしにコード化されるように、他のスライスから独立している。スライスは、独立しているスライスセグメントを含む1つまたは複数のスライスセグメントと、存在する場合、前のスライスセグメントに依存する1つまたは複数の依存しているスライスセグメントとを含む。HEVCでは、スライスは、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分化される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。CTUは、HEVC符号化のための基本処理単位である。CTUは、様々なサイズの複数のコーディングユニット(CU)に分割され得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマのサンプル配列を含んでいる。
[0083] ルーマCBおよびクロマCBは、予測ブロック(PB)にさらに分割され得る。PBは、(利用可能なとき、または使用のために有効にされたとき)インター予測またはイントラブロックコピー(IBC)予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリーム内でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは動き情報と呼ばれる場合もある。CBはまた、1つまたは複数の変換ブロック(TB)に区分化され得る。TBは、予測残差信号をコーディングするために残差変換(たとえば、場合によっては、同じ2次元変換)が適用される色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマサンプルおよびクロマサンプルのTBと、対応するシンタックス要素とを表す。変換コーディングが以下でより詳細に記載される。
[0084] HEVC規格によれば、変換はTUを使用して実行される場合がある。TUは、所与のCU内のPUのサイズに基づいてサイズ決定される場合がある。TUは、PUと同じサイズであるか、またはPUよりも小さい場合がある。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割される場合がある。RQTのリーフノードはTUに対応することができる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換される場合がある。変換係数は、次いで、符号化デバイスによって量子化される場合がある。
[0085] ビデオデータのピクチャがCUに区分化されると、符号化デバイスは予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、次いで、(以下に記載される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされる場合がある。予測モードは、イントラ予測(もしくはイントラピクチャ予測)またはインター予測(もしくはインターピクチャ予測)を含む場合がある。イントラ予測は、ピクチャ内の空間的に隣接するサンプル間の相関関係を利用する。たとえば、イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャ内の隣接する画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間的な相関関係を使用する。たとえば、インター予測を使用して、各PUは、(出力順序で現在ピクチャの前または後の)1つまたは複数の参照ピクチャ内の画像データからの動き補償予測を使用して予測される。インターピクチャ予測を使用してピクチャエリアをコード化するべきか、イントラピクチャ予測を使用してピクチャエリアをコード化するべきかの決定は、たとえば、CUレベルにおいて行われる場合がある。
[0086] イントラ予測および/またはインター予測を使用して予測を実行した後に、符号化デバイスは、変換と量子化とを実行することができる。たとえば、予測の後に、符号化デバイスは、PUに対応する残差値を計算することができる。残差値は、コーディングされているピクセルの現在ブロック(PU)と、現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を備えることができる。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を発行した)後に、符号化デバイスは、現在ブロックから予測ユニットによって生成された予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(たとえば、ピクセル値の2次元行列または2次元配列)で表される場合がある。そのような例では、残差ブロックはピクセル値の2次元表現である。
[0087] 予測が実行された後に残存している場合があるいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適切な変換関数、またはそれらの任意の組合せに基づく場合があるブロック変換を使用して変換される。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の適切なサイズ)が各CUにおける残差データに適用される場合がある。いくつかの実施形態では、TUは、符号化デバイスによって実装される変換プロセスおよび量子化プロセスに使用される場合がある。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含む場合がある。以下でさらに詳細に記載されるように、残差値は、ブロック変換を使用して変換係数に変換される場合があり、次いで、エントロピーコーディング用のシリアル化変換係数を生成するために、TUを使用して量子化および走査される場合がある。
[0088] 符号化デバイスは変換係数の量子化を実行することができる。量子化は、係数を表すために使用されるデータの量を低減するために変換係数を量子化することによってさらなる圧縮を提供する。たとえば、量子化は、係数の一部または全部に関連付けられたビット深度を低減することができる。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられる場合があり、nはmよりも大きい。
[0089] 量子化が実行されると、コード化ビデオビットストリームは、量子化変換係数と、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)と、区分化情報と、他のシンタックスデータなどの任意の他の適切なデータとを含む。コード化ビデオビットストリームの異なる要素は、次いで、符号化デバイスによってエントロピー符号化される場合がある。いくつかの例では、符号化デバイスは、量子化変換係数を走査してエントロピー符号化され得るシリアル化ベクトルを生成するために、あらかじめ定義された走査順序を利用することができる。いくつかの例では、符号化デバイスは適応型走査を実行することができる。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後に、符号化デバイスは、ベクトルをエントロピー符号化することができる。たとえば、符号化デバイスは、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分化エントロピーコーディング、または別の適切なエントロピー符号化技法を使用することができる。
[0090] 符号化デバイスは、符号化ビデオビットストリームを記憶することができ、および/または復号デバイスを含むことができる受信デバイスに通信リンクを介して符号化ビデオビットストリームデータを送ることができる。符号化デバイスは、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することにより、符号化ビデオビットストリームデータを復号することができる。復号デバイスは、次いで、符号化ビデオビットストリームデータを再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実行することができる。次いで、残差データが復号デバイスの予測段階に渡される。復号デバイスは、次いで、イントラ予測、インター予測、IBC、および/または他のタイプの予測を使用してピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、予測は逆変換の出力(残差データ)に加算される。復号デバイスは、ビデオ宛先デバイスに復号ビデオを出力することができ、ビデオ宛先デバイスは、コンテンツの消費者に復号ビデオデータを表示するためのディスプレイまたは他の出力デバイスを含む場合がある。
[0091] 様々なビデオコーディング規格(たとえば、上述されたHEVCビデオコーディング技法)によって定義されたビデオコーディングのシステムおよび技法は、未加工のビデオコンテンツ内の情報の大部分を保持することができる場合があり、信号処理および情報理論の概念に基づいてアプリオリに定義される場合がある。しかしながら、場合によっては、機械学習(ML)ベースの画像および/またはビデオシステムは、深層学習ベースのエンドツーエンドビデオコーディング(DLEC)システムなどの、非MLベースの画像およびビデオコーディングシステムと比べて利益を提供することができる。上述されたように、多くの深層学習ベースのシステムは、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する第2のサブネットワークの組合せとして設計される。そのようなアーキテクチャは、変換、量子化モジュール(エンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。
[0092] 図4は、深層学習ベースのシステム410を使用してビデオの符号化および復号を実行するように構成されたデバイス402を含むシステム400を描写する。デバイス402は、カメラ407および記憶媒体414(たとえば、データストレージデバイス)に結合される。いくつかの実装形態では、カメラ407は、深層学習ベースのシステム410によって符号化するためにプロセッサ404に画像データ408(たとえば、ビデオデータストリーム)を提供するように構成される。いくつかの実装形態では、デバイス402は、複数のカメラ(たとえば、デュアルカメラシステム、3つのカメラ、または他の数のカメラ)に結合され得、および/またはそれらを含むことができる。場合によっては、デバイス402は、マイクロフォンならびに/または他の入力デバイス(たとえば、キーボード、マウス、タッチスクリーンおよび/もしくはタッチパッドなどのタッチ入力デバイス、ならびに/または他の入力デバイス)に結合され得る。いくつかの例では、カメラ407、記憶媒体414、マイクロフォン、および/または他の入力デバイスは、デバイス402の一部であり得る。
[0093] デバイス402はまた、1つもしくは複数のワイヤレスネットワーク、1つもしくは複数の有線ネットワーク、またはそれらの組合せなどの伝送媒体418を介して、第2のデバイス490に結合される。たとえば、伝送媒体418は、ワイヤレスネットワーク、有線ネットワーク、または有線ネットワークとワイヤレスネットワークの組合せによって提供されるチャネルを含むことができる。伝送媒体418は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成することができる。伝送媒体418は、ルータ、スイッチ、基地局、またはソースデバイスから受信デバイスへの通信を容易にするために有用であり得る任意の他の機器を含む場合がある。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含む場合があり、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(登録商標)など)を含む場合がある。有線ネットワークは、任意の有線インターフェース(たとえば、ファイバ、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含む場合がある。有線および/またはワイヤレスのネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装される場合がある。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信される場合がある。
[0094] デバイス402は、メモリ406、第1のインターフェース(「I/F1」)412、および第2のインターフェース(「I/F2」)416に結合された(本明細書では「プロセッサ」と呼ばれる)1つまたは複数のプロセッサ404を含む。プロセッサ404は、カメラ407から、メモリ406から、および/または記憶媒体414から画像データ408を受け取るように構成される。プロセッサ404は、第1のインターフェース412を介して(たとえば、メモリバスを介して)記憶媒体414に結合され、第2のインターフェース416(たとえば、ネットワークインターフェースデバイス、ワイヤレストランシーバおよびアンテナ、1つもしくは複数の他のネットワークインターフェースデバイス、またはそれらの組合せ)を介して伝送媒体418に結合される。
[0095] プロセッサ404は深層学習ベースのシステム410を含む。深層学習ベースのシステム410は、エンコーダ部分462とデコーダ部分466とを含む。いくつかの実装形態では、深層学習ベースのシステム410は、1つまたは複数のオートエンコーダを含むことができる。エンコーダ部分462は、入力データ470を受け取り、入力データ470に少なくとも部分的に基づいて出力データ474を生成するために入力データ470を処理するように構成される。
[0096] いくつかの実装形態では、深層学習ベースのシステム410のエンコーダ部分462は、出力データ474を生成するために入力データ470の不可逆圧縮を実行するように構成され、その結果、出力データ474は入力データ470よりも少ないビットを有する。エンコーダ部分462は、任意の前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用せずに入力データ470(たとえば、画像またはビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータのみを使用し、前に復元されたフレームのいかなるデータも使用せずに圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Iフレーム)と呼ばれ得る。いくつかの例では、Iフレームは、旧来のビデオコーディング技法を使用して(たとえば、HEVC、VVC、MPEG-4、または他のビデオコーディング規格に従って)生成され得る。そのような例では、プロセッサ404は、HEVC規格に関して上述されたものなどの、ブロックベースのイントラ予測を実行するように構成されたビデオコーディングデバイス(たとえば、符号化デバイス)を含むか、またはそれと結合される場合がある。そのような例では、深層学習ベースのシステム410は、プロセッサ404から除外される場合がある。
[0097] いくつかの実装形態では、深層学習ベースのシステム410のエンコーダ部分462は、前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用して入力データ470(たとえば、ビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータを使用し、前に復元されたフレームのデータを使用して圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Pフレーム)と呼ばれ得る。動き補償は、前に復元されたフレームからのピクセルが残差情報とともに現在フレーム内の新しい位置にどのように移動するかを記述することにより、現在フレームのデータを決定するために使用され得る。
[0098] 図示されたように、深層学習ベースのシステム410のエンコーダ部分462は、ニューラルネットワーク463と量子化器464とを含むことができる。ニューラルネットワーク463は、1つもしくは複数の畳み込みニューラルネットワーク(CNN)、1つもしくは複数の全結合ニューラルネットワーク、1つもしくは複数のゲート付き再帰型ユニット(GRU)、1つもしくは複数の長短期記憶(LSTM)ネットワーク、1つもしくは複数のConvRNN、1つもしくは複数のConvGRU、1つもしくは複数のConvLSTM、1つもしくは複数のGAN、それらの任意の組合せ、および/または中間データ472を生成する他のタイプのニューラルネットワークアーキテクチャを含むことができる。中間データ472は量子化器464への入力である。エンコーダ部分462に含まれ得る構成要素の例が、図6~図10に示されている。
[0099] 量子化器464は、出力データ474を生成するために中間データ472の量子化と、場合によってはエントロピーコーディングとを実行するように構成される。出力データ474は、量子化(および場合によってはエントロピーコード化)データを含むことができる。量子化器464によって実行される量子化演算は、中間データ472から、量子化コード(または深層学習ベースのシステム410によって生成された量子化コードを表すデータ)の生成をもたらすことができる。量子化コード(または量子化コードを表すデータ)はまた、(zと表記された)ラテントコードまたはラテントと呼ばれ得る。ラテントに適用されるエントロピーモデルは、本明細書では「プライア」と呼ばれ得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、既存のビデオコーディング規格に従ってビデオデータを符号化および/または復号するときに実行される既存の量子化およびエントロピーコーディング演算を使用して実行され得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、深層学習ベースのシステム410によって行われ得る。1つの例示的な例では、深層学習ベースのシステム410は、教師あり訓練を使用して訓練され得、訓練中に残差データが入力として使用され、量子化コードおよびエントロピーコードが既知の出力(ラベル)として使用される。
[0100] 深層学習ベースのシステム410のデコーダ部分466は、(たとえば、量子化器464から直接、および/または記憶媒体414から)出力データ474を受け取るように構成される。デコーダ部分466は、出力データ474に少なくとも部分的に基づいて入力データ470の表現476を生成するために、出力データ474を処理することができる。いくつかの例では、深層学習ベースのシステム410のデコーダ部分466は、1つもしくは複数のCNN、1つもしくは複数の全結合ニューラルネットワーク、1つもしくは複数のGRU、1つもしくは複数の長短期記憶(LSTM)ネットワーク、1つもしくは複数のConvRNN、1つもしくは複数のConvGRU、1つもしくは複数のConvLSTM、1つもしくは複数のGAN、それらの任意の組合せ、および/または他のタイプのニューラルネットワークアーキテクチャを含む場合があるニューラルネットワーク468を含む。デコーダ部分466に含まれ得る構成要素の例が、図6~図10に示されている。
[0101] プロセッサ404は、伝送媒体418または記憶媒体414のうちの少なくとも1つに出力データ474を送るように構成される。たとえば、出力データ474は、復元データとして入力データ470の表現476を生成するためにデコーダ部分466による後の検索および復号(または復元)のために記憶媒体414において記憶される場合がある。復元データは、出力データ474を生成するために符号化/圧縮されたビデオデータの再生用などの様々な目的に使用され得る。いくつかの実装形態では、出力データ474は、復元データとして入力データ470の表現476を生成するために、(たとえば、デバイス402内の、第2のデバイス490内の、または別のデバイス内の)デコーダ部分466に一致する別のデコーダデバイスにおいて復号される場合がある。たとえば、第2のデバイス490は、デコーダ部分466に一致する(または実質的に一致する)デコーダを含む場合があり、出力データ474は、伝送媒体418を介して第2のデバイス490に送信される場合がある。第2のデバイス490は、復元データとして入力データ470の表現476を生成するために、出力データ474を処理することができる。
[0102] システム400の構成要素は、本明細書に記載された様々な動作を実行するために、1つもしくは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。
[0103] システム400はいくつかの構成要素を含むように示されているが、システム400が図4に示された構成要素よりも多いかまたは少ない構成要素を含むことができることを当業者は諒解されよう。たとえば、システム400はまた、入力デバイスと出力デバイス(図示せず)とを含むコンピューティングデバイスを含むことができるか、またはその一部であり得る。いくつかの実装形態では、システム400はまた、1つもしくは複数のメモリデバイス(たとえば、1つもしくは複数のランダムアクセスメモリ(RAM)構成要素、読取り専用メモリ(ROM)構成要素、キャッシュメモリ構成要素、バッファ構成要素、データベース構成要素、および/もしくは他のメモリデバイス)、1つもしくは複数のメモリデバイスと通信している、および/またはそれらに電気的に接続された1つもしくは複数の処理デバイス(たとえば、1つもしくは複数のCPU、GPU、および/もしくは他の処理デバイス)、ワイヤレス通信を実行するための(たとえば、ワイヤレスインターフェースごとに1つもしくは複数のトランシーバとベースバンドプロセッサとを含む)1つもしくは複数のワイヤレスインターフェース、1つもしくは複数のハードウェア接続を介した通信を実行するための1つもしくは複数の有線インターフェース(たとえば、ユニバーサルシリアルバス(USB)入力などのシリアルインターフェース、ライトニングコネクタ、および/もしくは他の有線インターフェース)、ならびに/または図4に示されていない他の構成要素を含むコンピューティングデバイスを含む場合があるか、もしくはその一部であり得る。
[0104] いくつかの実装形態では、システム400は、コンピューティングデバイスによって局所的に実装され、および/またはコンピューティングデバイスに含まれ得る。たとえば、コンピューティングデバイスは、モバイルデバイス、パーソナルコンピュータ、タブレットコンピュータ、仮想現実(VR)デバイス(たとえば、ヘッドマウントディスプレイ(HMD)もしくは他のVRデバイス)、拡張現実(AR)デバイス(たとえば、HMD、ARグラス、もしくは他のARデバイス)、ウェアラブルデバイス、(たとえば、サービスとしてのソフトウェア(SaaS)システムもしくは他のサーバベースシステム内の)サーバ、テレビジョン、および/または本明細書に記載された技法を実行するリソース能力を有する任意の他のコンピューティングデバイスを含むことができる。
[0105] 一例では、深層学習ベースのシステム410は、プロセッサ404に結合され、プロセッサ404によって実行可能な命令を記憶するように構成されたメモリ406と、アンテナおよびプロセッサ404に結合され、リモートデバイスに出力データ474を送信するように動作可能なワイヤレストランシーバとを含むポータブル電子デバイスに組み込まれ得る。
[0106] 上述のように、深層学習ベースのシステムは、典型的には、RGBまたはYUV4:4:4のような非サブサンプル入力フォーマットを処理するように設計されている。RGB入力を対象にする画像およびビデオのコーディング方式の例は、(「J.Balle Paper」と呼ばれる)J.Balle、D.Minnen、S.Singh、S.J.Hwang、N.Johnston、「Variational image compression with a scale hyperprior」、ICLR、2018年、および(「D.Minnen Paper」と呼ばれる)D.Minnen、J.Balle、G.Toderici、「Joint Autoregressive and Hierarchical Priors for Learned Image Compression」、CVPR、2018年に記載されており、それらの全体がすべての目的のために参照により本明細書に組み込まれている。
[0107] 図5は、深層学習ベースのシステム500の一例を示す図である。図5の深層学習ベースのシステム内のgaサブネットワークおよびgsサブネットワークは、それぞれ、エンコーダサブネットワーク(たとえば、エンコーダ部分462)およびデコーダサブネットワーク(たとえば、デコーダ部分466)に対応する。図5のgaサブネットワークおよびgsサブネットワークは、3チャネルRGB入力向けに設計され、すべての3つのR入力チャネル、G入力チャネル、およびB入力チャネルは、同じニューラルネットワークレイヤ(畳み込みレイヤおよび一般化神経活動正規化(GDN)レイヤ)を通過し、それらによって処理される。ニューラルネットワークレイヤは、畳み込み演算を実行する畳み込みレイヤ(畳み込みレイヤ510を含む)と、局所分割正規化を実装するGDNおよび/または逆GDN(IGDN)非線形レイヤとを含むことができる。局所神経活動正規化は、特に画像の密度モデリングおよび圧縮に適切であるように示された変換のタイプである。(図5に示されたものなどの)深層学習ベースのシステムは、RGBデータなどの同様の統計特性を有する入力チャネルを対象とする(ここで、異なるRチャネル、Gチャネル、およびBチャネルの統計特性は同様である)。
[0108] 多くの深層学習ベースのシステムは、RGB入力を処理するように設計されるが、ほとんどの画像およびビデオのコーディングシステムは、YUV入力フォーマット(たとえば、多くの場合YUV4:2:0入力フォーマット)を使用する。YUVフォーマットにおけるクロミナンス(UおよびV)チャネルは、ルミナンス(Y)チャネルに対してサブサンプリングされ得る。サブサンプリングは視覚的品質に対して最小の影響しかもたらさない(たとえば、視覚的品質に対して重要または顕著な影響がない)。サブサンプリングフォーマットには、YUV4:2:0フォーマット、YUV4:2:2フォーマット、および/または他のYUVフォーマットが含まれる。チャネル間の相関関係はYUVフォーマットでは低減され、それは他の色フォーマット(たとえば、RGBフォーマット)には当てはまらない場合がある。さらに、ルミナンス(Y)チャネルならびにクロミナンス(UおよびV)チャネルの統計値は異なる。たとえば、UチャネルおよびVチャネルはルミナンスチャネルと比較してばらつきが少ないが、たとえば、RGBフォーマットは、Rチャネル、Gチャネル、およびBチャネルの統計特性はよく似ている。ビデオコーダ-デコーダ(またはコーデック)は、データの入力特性に応じて設計される(たとえば、コーデックはデータの入力フォーマットに従ってデータを符号化および/または復号することができる)。たとえば、フレームのクロミナンスチャネルがサブサンプリングされる場合(たとえば、クロミナンスチャネルはルミナンスチャネルと比較して半分の解像度である)、コーデックが動き補償のためにフレームのブロックを予測するとき、ルミナンスブロックは、クロミナンスブロックと比較して幅と高さの両方で2倍の大きさである。別の例では、コーデックは、とりわけ、クロミナンスおよびルミナンスに対してどのくらいのピクセルが符号化または復号されようとするかを決定することができる。
[0109] YUVフォーマット(たとえば、YUV4:2:0フォーマット)をサポートするには、深層学習ベースのアーキテクチャを変更しなければならない。たとえば、(上記のように、ほとんどの深層学習ベースのシステムは処理するように設計される)RGB入力データを(すべてのチャネルが同じ次元を有する)YUV4:4:4入力データに置き換えると、入力データを処理する深層学習ベースのシステムの性能は、ルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルの異なる統計特性に起因して低下する。上記のように、クロミナンス(UおよびV)チャネルは、YUV4:2:0の場合など、いくつかのYUVフォーマットでサブサンプリングされる。たとえば、YUV4:2:0フォーマットを有するコンテンツの場合、UチャネルおよびVチャネルの解像度は、Yチャネルの解像度の半分である(UチャネルおよびVチャネルは、幅および高さが半分であることに起因して、Yチャネルの4分の1のサイズを有する)。そのようなサブサンプリングは、入力データを深層学習ベースのシステムの入力と互換性がないようにする可能性がある。入力データは、深層学習ベースのシステムが符号化および/または復号しようと試みている情報(たとえば、ルミナンス(Y)チャネルとクロミナンス(UおよびV)チャネルとを含む3つのチャネルを含むYUVフレーム)である。
[0110] いくつかのエンドツーエンドビデオコーディング深層学習ベースのシステムでは、オートエンコーダは、イントラフレーム、動きベクトル(たとえば、密な光フロー)、および元のフレームに対する動き補償されたフレームの残差をコーディングするために使用される。一例では、フローオートエンコーダを使用して、光フローとスケール空間を共同でコーディングすることを学ぶことができ、残差オートエンコーダは、すべてRGBドメイン内のワープ予測フレームと元のフレームの間の残差をコーディングする。
[0111] 上で述べたように、本明細書では、1つまたは複数のYUVフォーマット(たとえば、YUV4:2:0フォーマット)を効率的にサポートするMLベースのシステム(たとえば、1つまたは複数の深層学習ベースのアーキテクチャを含む)を提供するシステムおよび技法について説明する。深層学習ベースのアーキテクチャは、スタンドアロンフレーム(もしくは画像)および/または複数のフレームを含むビデオデータを符号化および/または復号できる。たとえば、MLベースのシステムは、現在のフレームのルーマ成分と以前に復元されたフレームのルーマ成分を入力として取得でき、これは、MLベースのシステムの以前のインスタンスによって復元され得る。MLベースのシステムは、現在および前のフレームのルーマ成分を処理して、現在のフレームのルーマ成分の動き情報(たとえば、光フロー情報などのフロー情報)を推定することができる。次に、現在のフレームのルーマ成分を使用して、MLベースのシステムは、現在のフレームの1つまたは複数のクロマ成分の動き推定(たとえば、光フロー情報などのフロー情報)を決定(たとえば、推定)できる。このような技法は、フレームのすべての成分に対して実行され得る。以下にさらなる詳細を説明する。
[0112] 図6は、ビデオコーディングを実行するように構成された深層学習ベースのシステム600のニューラルネットワークアーキテクチャの一例を示す図である。図6のニューラルネットワークアーキテクチャは、イントラ予測エンジン602と、インター予測エンジン610とを含む。イントラ予測エンジン602およびインター予測エンジン610は、図6に示すようにオートエンコーダ(たとえば、変分オートエンコーダ(VAE))を含み得るが、他の実装形態における他のタイプのニューラルネットワークアーキテクチャを含み得る。図示のように、イントラ予測エンジン602は、入力フレーム604のピクセル情報を処理して、入力フレーム604のラテント表現(
Figure 2024508772000002
として示される)を生成する。入力フレーム604は、入力フレーム604の各ピクセルについて、ルーマ成分(
Figure 2024508772000003
として示される)と2つのクロマ成分(
Figure 2024508772000004
および
Figure 2024508772000005
として示される)とを含む。ラテント表現は、ビットストリームと呼ぶこともでき、これは、入力フレーム604のコーディングされたバージョンであるビットの数を含む。ラテント表現
Figure 2024508772000006
(または別のデバイスから受信したラテント表現/ビットストリーム)に基づいて、イントラ予測エンジン602のデコーダサブネットワークは、復元されたフレーム606(成分上の「ハット」が復元された値を示す、
Figure 2024508772000007
Figure 2024508772000008
Figure 2024508772000009
として示される)を生成することができ、これは、入力フレーム604の復元されたバージョンである。
[0113] インター予測エンジン610は、フローエンジン618、残差エンジン620、およびワーピングエンジン622を含む。図示のように、フローエンジン618は、現在のフレーム614(時間tにおける)のルーマ成分(
Figure 2024508772000010
として示される)と、前のフレーム615(前の時間t-1における)の復元されたルーマ成分(
Figure 2024508772000011
として示される)を入力として取得する。ルーマ成分
Figure 2024508772000012
とルーマ成分
Figure 2024508772000013
を使用すると、フローエンジン618は、現在のフレーム614のルーマ成分
Figure 2024508772000014
の動き情報(たとえば、フロー情報)のラテント表現(
Figure 2024508772000015
として示される)を生成する。動き情報は、光フロー情報(たとえば、複数の動きベクトルまたは変位ベクトル、場合によってはピクセルまたはサンプルごとのスケール成分)を含み得、これは、前のフレーム615(時間t-1における)に対する現在のフレーム614(時間tにおける)のピクセルの動きを示す。ラテント表現
Figure 2024508772000016
は、ビットストリームとも呼ばれることができ、現在のフレーム614のルーマ成分
Figure 2024508772000017
のコーディングバージョンを表すビットの数を含むことができる。フローエンジン618は、クロマ成分ではなく、現在のフレーム614のルーマ成分
Figure 2024508772000018
を処理するため、ラテント表現
Figure 2024508772000019
(ビットストリーム)は、動き情報を決定するために現在のフレーム614のすべての成分を使用する場合と比較して、サイズが縮小される。
[0114] ルーマ成分
Figure 2024508772000020
のラテント表現
Figure 2024508772000021
(または、フレームのルーマ成分を表す別のデバイスから受信したラテント表現またはビットストリーム)を使用して、フローエンジン618は、現在のフレーム614のルーマ成分
Figure 2024508772000022
についての動き情報(fLとして示される)を決定し、また、現在のフレーム614のクロマ成分
Figure 2024508772000023
Figure 2024508772000024
についての動き情報(fCとして示される)を決定する。ルーマ成分の決定された動き情報に基づいてクロマ成分の動き情報を決定または推定する詳細を、図7Aおよび図7Bに関して以下に説明する。
[0115] ワーピングエンジン622は、現在のフレーム614(時間tにおける)のルーマ
Figure 2024508772000025
およびクロマ成分
Figure 2024508772000026
Figure 2024508772000027
について決定された動き情報(fLおよびfC)を使用してワーピングを実行するように構成される。たとえば、ワーピングエンジン622は、現在のフレーム614のルーマ
Figure 2024508772000028
およびクロマ成分
Figure 2024508772000029
Figure 2024508772000030
の動き情報(fLおよびfC)によって示される量だけ、現在のフレーム614(時間tにおける)のピクセルをワープすることができる。いくつかの態様では、ワーピングエンジン622は、空間スケールフロー(SSF)ワーピングを実行することができる。たとえば、SSFワーピングは、トリリニア補間を適用して、学習したスケールフローベクトルからインターフレーム予測を生成することができ、ここで、予測子は次のように定式化され得る。
Figure 2024508772000031
[0116] 上記のトリリニア補間は、ルーマ
Figure 2024508772000032
およびクロマ成分
Figure 2024508772000033
の動き情報(fLおよびfC)に基づいて決定される1つまたは複数のワーピングパラメータに基づいて、成分ごとに(たとえば、各ルーマ成分および各個別のUおよびVクロマ成分ごとに)実行することができる。たとえば、ワーピングパラメータは、動きベクトルまたは変位ベクトルの水平成分(x方向)を表す
Figure 2024508772000034
と、動きベクトルまたは変位ベクトルの垂直成分(y方向)を表す
Figure 2024508772000035
と、空間的な動き/変位情報(vxおよびvy)と結合された、復元されたフレームの段階的に平滑化されたバージョンを表すs(スケールフィールドと呼ばれる)とを含み得る。
[0117] ワーピングエンジン622からの出力(ワーピングがワーピングエンジン622によって実行された後)は、PY、PU、PVとして図6に示す予測を含む。ここでPYはルーマ成分のルーマ
Figure 2024508772000036
の予測に対応し、PUはクロマ成分
Figure 2024508772000037
の予測に対応し、PVは現在のフレーム614のクロマ成分
Figure 2024508772000038
の予測に対応する。
[0118] 次いで、深層学習ベースのシステム600は、現在のフレーム614の対応するルーマ
Figure 2024508772000039
およびクロマ
Figure 2024508772000040
Figure 2024508772000041
成分から予測PY、PU、PVを減算して、残差信号を取得することができ、これには、ルーマ成分の残差信号rY、クロマ成分
Figure 2024508772000042
の残差信号rU、およびクロマ成分
Figure 2024508772000043
の残差信号rVが含まれる。残差エンジン620は、残差のラテント表現(
Figure 2024508772000044
として示される)を生成することができる。残差のラテント表現
Figure 2024508772000045
(または別のデバイスから受信した残差のラテント表現)を使用して、残差エンジン620は、ルーマ成分の復元された残差信号
Figure 2024508772000046
、クロマ成分
Figure 2024508772000047
の復元された残差信号
Figure 2024508772000048
、およびクロマ成分
Figure 2024508772000049
の復元された残差信号
Figure 2024508772000050
を含む、現在のフレームの復元された残差を生成することができる。深層学習ベースのシステム600は、予測PY、PU、PVを復元された残差
Figure 2024508772000051
Figure 2024508772000052
Figure 2024508772000053
に追加して、復元されたフレーム616を生成することができる。
[0119] 図7Aは、現在のフレーム(時間tにおける)のルーマ成分
Figure 2024508772000054
および前のフレーム(時間t-1における)の復元されたルーマ成分
Figure 2024508772000055
で動作するフローエンジン718の一例を示す図であり、ルーマ成分722として集合的に示される。上述のように、場合によっては、フローエンジン718は、オートエンコーダ(VAEflow)として実装され得る。場合によっては、図7Aに示すように、組み合わされた深層学習ベースのアーキテクチャを設計することができ、フローエンジン718は、現在のフレーム
Figure 2024508772000056
と以前に復元されたフレーム
Figure 2024508772000057
の両方のルーマ成分を使用して、ルーマ動き情報(たとえば、SSFfL)とクロマ動き情報(たとえば、SSFfC)とを推定する。たとえば、本明細書で説明するように、クロマ動き情報(たとえば、fC)は、ルーマ動き情報(たとえば、fL)に基づいて導出され得る。
[0120] 図7Aに示すように、現在のフレームのルーマ成分
Figure 2024508772000058
の動き情報(fL)を決定するために、現在のフレームのルーマ成分
Figure 2024508772000059
、および前のフレームの復元されたルーマ成分
Figure 2024508772000060
は、いくつかの畳み込みレイヤと活性化レイヤ(まとめてフォワードパス723として示される)によって処理される。図7Aの「↓2」および「↑2」という表記法は、ストライド値を指し、↓2はストライド2(「↓」で示されるダウンサンプリングの場合)を指し、↑2もストライド2(「↑」で示されるアップサンプリングの場合)を指す。たとえば、畳み込みレイヤ724は、ストライド値2によって水平および垂直次元で5×5畳み込みフィルタを適用することによって、入力ルーマ成分
Figure 2024508772000061
および
Figure 2024508772000062
を4分の1でダウンサンプリングする。畳み込みレイヤ724の結果として得られる出力は、現在のフレームのルーマ成分
Figure 2024508772000063
のルーマ動き情報(fL)を表す特徴値のN個の配列(N個のチャネルに対応する)である。「2/N」という表記法は、2つの入力チャネルとN個の出力チャネルとを表す。次に、畳み込みレイヤ724に続く非線形レイヤは、畳み込みレイヤ724によって出力された特徴値を処理することができる。連続する畳み込みレイヤおよび非線形レイヤのそれぞれは、フォワードパス723の最終畳み込みレイヤ725がフローエンジン718のボトルネック部分726に特徴を出力するまで、前のレイヤによって出力された特徴を処理することができる。
[0121] フォワードパス723の出力は、フローエンジン718のボトルネック部分726によって処理されて、現在のフレームのルーマ成分
Figure 2024508772000064
のルーマ動き情報(fL)を表すビットストリームまたはラテントを生成する。ボトルネック部分726は、フォワードパス723における量子化エンジンおよびエントロピー符号化エンジン、ならびにフローエンジン718のバックワードパス728上のエントロピー復号エンジンおよび逆量子化エンジンを含み得る。たとえば、量子化エンジンは、フォワードパス723の最終畳み込みレイヤ725によって出力された特徴に対して量子化を実行して、量子化出力を生成することができる。エントロピー符号化エンジンは、量子化エンジンからの量子化出力をエントロピー符号化してビットストリームを生成することができる。場合によっては、エントロピー符号化エンジンは、ハイパープライアネットワークによって生成されたプライアを使用してエントロピー符号化を実行することができる。ニューラルネットワークシステムは、ストレージ用に、別のデバイスに送信するために、サーバデバイスもしくはシステムにビットストリームを出力すること、および/または、他の方法でビットストリームを出力することができる。
[0122] バックワードパス728は、場合によっては、フローエンジン718のニューラルネットワークシステムのデコーダサブネットワーク、または(別のデバイスの)別のフローエンジンのニューラルネットワークシステムのデコーダサブネットワークであり得る。フローエンジン718のエントロピー復号エンジンは、ボトルネック726のエントロピー符号化エンジン(または別のフローエンジンのボトルネックのエントロピー符号化エンジン)によって出力されたビットストリームをエントロピー復号し、エントロピー復号データをバックワードパス728の逆量子化エンジンに出力することができる。エントロピー復号エンジンは、ハイパープライアネットワークによって生成されたプライアを使用して、エントロピー復号を実行できる。脱量子化エンジンは、データを脱量子化できる。
[0123] 次に、バックワードパス728の畳み込みレイヤおよび逆活性化レイヤは、ボトルネック726からの脱量子化されたデータを処理して、現在のフレームのルーマ成分
Figure 2024508772000065
の動き情報729(fL)を生成することができる。動き情報729(fL)は、現在のフレームのルーマ成分
Figure 2024508772000066
の各サンプルの動きベクトルなどの動きベクトル(たとえば、水平またはx方向の大きさと、垂直またはy方向の大きさとを有する)を含むことができる。場合によっては、動き情報729(fL)は、スケール成分をさらに含むことができる。たとえば、説明のために図7Aに示すように、動き情報729は、
Figure 2024508772000067
成分と、
Figure 2024508772000068
成分と、SL成分とを含む。上述のように、
Figure 2024508772000069
Figure 2024508772000070
、およびSL成分は、ワーピングエンジン622によって式(1)で使用され、現在のフレーム614(時間tにおける)のピクセルをワーピングして、予測PY、PU、PVを生成することができる。
[0124] 現在のフレームのルーマ成分
Figure 2024508772000071
の動き情報729(fL)を学習した後、フローエンジン718は、現在のフレームのクロマ成分の動き情報731(fC)を決定または予測することができる。たとえば、フローエンジン718は、クロマ成分の動き情報731(fC)を取得するために、ルーマ成分
Figure 2024508772000072
の動き情報729(fL)をサブサンプリングすることができる。クロマ成分の動き情報731(fC)は、現在のフレームのクロマ成分の各サンプルの動きベクトルなどの動きベクトル(たとえば、水平またはx方向の大きさと、垂直またはy方向の大きさとを有する)を含むことができる。場合によっては、動き情報731(fC)は、スケール成分をさらに含むことができる。たとえば、説明のために図7Aに示すように、現在のフレームのクロマ成分の動き情報731(fC)は、
Figure 2024508772000073
成分と、
Figure 2024508772000074
成分と、SC成分とを含む。ルーマ成分の動き情報729(fL)と同様に、クロマ動き情報731(fC)の
Figure 2024508772000075
Figure 2024508772000076
、およびSC成分は、ワーピングエンジン622によって式(1)で使用され、現在のフレーム614(時間tにおける)のピクセルをワーピングして、予測PY、PU、PVを生成することができる。
[0125] いくつかの態様では、ダウンサンプリングを伴う畳み込みレイヤ730は、現在のフレームのルーマ成分
Figure 2024508772000077
の動き情報729(fL)に基づいて、現在のフレームのクロマ成分の動き情報731(fC)を学習するように(たとえば、教師なし学習または訓練を使用して)訓練され得る。1つの例示的な例では、フローエンジン718を訓練するために使用され得る訓練セットは、(グランドトゥルースとして)ルーマおよびクロマ動き情報を含むことができる。ルーマ動き情報は、フローエンジン718のニューラルネットワークに入力され得、フローエンジン718から出力される結果として得られるクロマ動き情報は、損失関数を使用するグランドトゥルースのクロマ動き情報を使用して最小化され得る(たとえば、L1または絶対差の合計、L2Normまたは二乗差の合計、または他の損失関数)。
[0126] 畳み込みレイヤ730は、|3/3|5×5conv↓2|として図7Aに示されている。「3/3」という表記法は、3つの出力チャネルになる3つの入力チャネルがあることを示す。上記のように、「↓2」および「↑2」という表記法はストライド値を指し、↓2はダウンサンプリングのストライド2(「↓」で示す)を指し、↑2はアップサンプリングのストライド2(「↑」で示す)を指す。たとえば、畳み込みレイヤ730は、ストライド値2だけ水平および垂直次元で5×5畳み込みフィルタを適用することによって、ルーマ成分
Figure 2024508772000078
の動き情報729(fL)を4分の1(たとえば、YUV4:2:0フォーマットの場合)でダウンサンプリングする。いくつかの例では、畳み込みレイヤ730は、他のフォーマット(たとえば、YUV4:2:2フォーマットなど)の他の要因によってダウンサンプリングするように訓練され得る。畳み込みレイヤ724の結果として得られる出力は、特徴値の3×3配列(3つのチャネルに対応する)であり、これは、ルーマ成分
Figure 2024508772000079
の動き情報729(fL)のダウンサンプリングされたバージョンである。
[0127] 他の態様(図7Aには図示せず)では、現在のフレームのクロマ成分の動き情報731(fC)は、ルーマ成分
Figure 2024508772000080
の動き情報729(fL)を直接サブサンプリングすることによって取得され得る。たとえば、フローエンジン718は、畳み込みレイヤ730を使用してルーマフローを処理することなく、クロマフローを決定することができる。1つの例示的な例では、畳み込みレイヤ730の代わりに、フローエンジン718は、ルーマ動き情報729(fL)を直接サブサンプリングしてクロマ動き情報731(fC)を取得することができるサブサンプラ(フローエンジン718のニューラルネットワークから分離され得る)を含むことができる。
[0128] 図7Bは、現在のフレームについて決定された(たとえば、図7Aのフローエンジン718を使用して)ルーマ動き情報をサブサンプリングするためのサブサンプリングエンジン(subsampling engine)735の一例を示す図であり、現在のフレームのクロマ動き情報を取得する。説明のために、簡略化された例は、合計16のフローの動きまたは変位ベクトルを有する4×4(4行および4列)の解像度を有するルーマ動き情報732の各チャネルN(N=2)で提供される。サブサンプリングエンジン735は、ルーマ動き情報732をサブサンプリングまたはダウンサンプリングして、ルーマ動き情報732のサブサンプリングされた/ダウンサンプリングされたバージョンであるクロマ動き情報738を生成または取得する。
[0129] 図7Bの例示的な例は、ルーマ動き情報732のサイズの4分の1であるクロマ動き情報738を示している。たとえば、前述したように、YUV4:2:0フォーマットを有するコンテンツの場合、UチャネルとVチャネルの解像度はYチャネル解像度の半分である(幅と高さが半分になるため、UチャネルとVチャネルのサイズはYチャネルの4分の1になる)。サブサンプリングエンジン735は、4:2:0フォーマット以外の他のフォーマットを処理するように訓練または他の方法で構成され得、この場合、サブサンプリングは、図7Aに示されるものとは異なる解像度を有するクロマ情報を生成することを含み得る。
[0130] いくつかの態様では、上記のように、サブサンプリングエンジン735は、図7Aの畳み込みレイヤ730を含むことができ、(たとえば、教師なし学習または訓練を使用して)訓練して、ルーマ動き情報732からクロマ動き情報738を決定することができる。他の態様では、サブサンプリングエンジン735は、クロマ動き情報738を取得するために、ルーマ動き情報732を直接サブサンプリングするサブサンプラを含むことができる。
[0131] フォワードパス723およびバックワードパス728の畳み込みまたは変換レイヤ、ならびにボトルネック(M)におけるチャネルの数(図7AではNとして示される)は、任意の適切な値に設定され得る。1つの例示的な例では、チャネルの数Nは、N=192およびM=128として選択され得る。復元されたフレームの連続する平滑化されたバージョン(スケールフィールドsに関連付けられている)は、フィルタリングまたは平滑化演算子を使用して取得され得る。一例では、異なる幅のガウスぼかしフィルタを使用できる。別の例では、連続フィルタリングと補間を備えたガウスピラミッドを使用して、復元されたフレームの平滑化されたバージョンを生成できる。さらに、任意に多数のスケールSを用いることができる。一例では、スケールSをS=3に設定でき、スケールレベルは
Figure 2024508772000081
として選択され得る。ここで、σ0はガウスフィルタ幅を表すことができる。
[0132] 一方、図7Aの非線形活性化レイヤは、説明のためにPReLUとして示されており、一般化分割正規化(GDN)レイヤ、PReLUレイヤとGDNレイヤの組合せなど、他のタイプの非線形活性化レイヤを使用することができる。
[0133] いくつかの例では、1つまたは複数のYUVフォーマット(たとえば、YUV4:2:0)を効果的にサポートするために、図6のイントラ予測エンジン602および残差エンジン620は、図8A、図9、または図10に示す一般的なニューラルネットワークアーキテクチャに基づいて設計され得る。たとえば、図8A、図9、および図10に示すアーキテクチャは、YUV4:2:0フォーマットを有する入力データを処理するように構成され得る。いくつかの例では、図8A、図9、または図10に示されるものと同様のニューラルネットワークアーキテクチャは、他のタイプのYUVコンテンツ(たとえば、YUV4:4:4フォーマット、YUV4:2:2フォーマットなどを有するコンテンツ)および/または他の入力フォーマットを有するコンテンツを符号化および/または復号するために使用され得る。場合によっては、図8A、図9、および図10に示す各アーキテクチャは、YUV(たとえば、4:2:0)残差で動作する残差オートエンコーダを含む。
[0134] 図8Aは、4:2:0の入力(Y、UおよびV)データを直接連携するように構成され得るフロントエンドニューラルネットワークシステム800の一例を示す図である。図8Aに示すように、ニューラルネットワークシステムのエンコーダサブネットワーク(フォワードパスとも呼ばれる)では、分岐されたルーマチャネルとクロマチャネル(ルーマYチャネル802とUおよびVクロマチャネル804)が1×1畳み込みレイヤ806を使用して組み合わされ、次に、非線形レイヤ808(非線形演算子とも呼ばれる)が適用される。同様の演算は、ニューラルネットワークシステムのデコーダサブネットワーク(バックワードパスとも呼ばれる)で実行されるが、逆の順序で実行される。たとえば、図8Aに示すように、逆非線形レイヤ809(逆非線形演算子とも呼ばれる)が適用され、YおよびU、Vチャネルは1×1畳み込みレイヤ813を使用して分離され、別個のYおよびU、Vチャネルはそれぞれの逆非線形レイヤ815、816および畳み込みレイヤ817、818を使用して処理される。
[0135] 図8Aのニューラルネットワークシステム800のエンコーダサブネットワークにおける第1の2つのニューラルネットワークレイヤは、第1の畳み込みレイヤ811(Nconv|3×3|↓1と示される)と、第2の畳み込みレイヤ810(Nconv|5×5|↓2と示される)と、第1の非線形レイヤ814と、第2の非線形レイヤ812とを含む。図8Aのフロントエンドニューラルネットワークアーキテクチャのデコーダサブネットワークの最後の2つのニューラルネットワークレイヤは、第1の逆非線形レイヤ816と、第2の逆非線形レイヤ815と、フレームの復元されたクロミナンス(UおよびV)成分を生成するための第1の畳み込みレイヤ818(2conv|3×3|↑1で示される)と、フレームの復元されたルミナンス(Y)成分を生成するための第2の畳み込みレイヤ817(1conv|5×5|↑2で示される)とを含む。「Nconv」という表記法は、(出力チャネルの数を定義するNの値を有する)所与の畳み込みレイヤの(出力特徴の数に対応する)出力チャネルの数(N)を指す。3×3および5×5という表記法は、それぞれの畳み込みカーネル(たとえば、3×3カーネルおよび5×5カーネル)のサイズを示す。「↓1」および「↓2」という表記法はストライド値を指し、ここで↓1は(「↓」によって示されたダウンサンプリング用の)1のストライドを指し、↓2は(ダウンサンプリング用の)2のストライドを指す。「↑1」および「↑2」という表記法はストライド値を指し、ここで↑1は(「↑」によって示されたアップサンプリング用の)1のストライドを指し、↑2は(アップサンプリング用の)2のストライドを指す。
[0136] たとえば、畳み込みレイヤ810は、2のストライド値によって水平次元および垂直次元の5×5畳み込みフィルタを適用することにより、入力ルーマチャネル802を4倍にダウンサンプリングする。畳み込みレイヤ810の結果として得られた出力は、特徴値の(N個のチャネルに対応する)N個の配列である。畳み込みレイヤ811は、1のストライド値によって水平次元および垂直次元の3×3畳み込みフィルタを適用することにより、入力クロマ(UおよびV)チャネル804を処理する。畳み込みレイヤ811の結果として得られた出力は、特徴値の(N個のチャネルに対応する)N個の配列である。畳み込みレイヤ810によって出力された特徴値の配列は、畳み込みレイヤ811によって出力された特徴値の配列と同じ次元を有する。次いで、非線形レイヤ812は、畳み込みレイヤ810によって出力された特徴値を処理することができ、非線形レイヤ814は、畳み込みレイヤ811によって出力された特徴値を処理することができる。
[0137] 次いで、1×1畳み込みレイヤ806は、非線形レイヤ812、814によって出力された特徴値を処理することができる。1×1畳み込みレイヤ806は、ルーマチャネル802およびクロマチャネル804に関連付けられた特徴の線形結合を生成することができる。線形結合演算は、Y成分およびUV成分の値当たりのクロスチャネル混合として動作し、コーディング性能を向上させるクロス成分(たとえば、クロス-ルミナンスおよびクロミナンス成分)の予測をもたらす。1×1畳み込みレイヤ806の各1×1畳み込みフィルタは、ルーマチャネル802の対応するN番目のチャネルおよびクロマチャネル804の対応するN番目のチャネルに適用されるそれぞれのスケーリングファクタを含むことができる。
[0138] 図8Bは、1×1畳み込みレイヤ838の例示的な動作を示す図である。上述されたように、Nは出力チャネルの数を表す。図8Bに示されたように、N個のチャネルクロマ(結合されたUおよびV)出力832とN個のチャネルルーマ(Y)出力834とを含む、2N個のチャネルが1×1畳み込みレイヤ838への入力として提供される。図8Bの例では、Nの値は2に等しく、N個のチャネルクロマ出力832用の値の2つのチャネルと、N個のチャネルルーマ出力834用の値の2つのチャネルとを示す。図8Aを参照すると、N個のチャネルクロマ出力832は非線形レイヤ814からの出力であり得、N個のチャネルルーマ出力834は非線形レイヤ812からの出力であり得る。
[0139] 1×1畳み込みレイヤ838は、2N個のチャネルを処理し、2N個のチャネルの特徴別線形結合を実行し、次いで、特徴または係数のN個のチャネルセットを出力する。1×1畳み込みレイヤ838は、(N=2に基づいて)2つの1×1畳み込みフィルタを含む。第1の1×1畳み込みフィルタはS1の値で示され、第2の1×1畳み込みフィルタはS2の値で示されている。S1の値は第1のスケーリングファクタを表し、S2の値は第2のスケーリングファクタを表す。1つの例示的な例では、S1の値は3に等しく、S2の値は4に等しい。1×1畳み込みレイヤ838の1×1畳み込みフィルタの各々は1のストライド値を有し、スケーリングファクタS1およびS2がUV出力832およびY出力834における各値に適用されることを示す。
[0140] たとえば、第1の1×1畳み込みフィルタのスケーリングファクタS1は、UV出力832の第1のチャネル(C1)内の各値およびY出力834の第1のチャネル(C1)内の各値に適用される。UV出力832の第1のチャネル(C1)の各値およびY出力834の第1のチャネル(C1)の各値が第1の1×1畳み込みフィルタのスケーリングファクタS1によってスケーリングされると、スケーリング値は出力値839の第1のチャネル(C1)に結合される。第2の1×1畳み込みフィルタのスケーリングファクタS2は、UV出力832の第2のチャネル(C2)内の各値およびY出力834の第2のチャネル(C2)内の各値に適用される。UV出力832の第2のチャネル(C2)の各値およびY出力834の第2のチャネル(C2)の各値が第2の1×1畳み込みフィルタのスケーリングファクタS2によってスケーリングされた後、スケーリング値は出力値839の第2のチャネル(C2)に結合される。結果として、4つのYおよびUVチャネル(2つのYチャネルおよび2つの結合UVチャネル)は混合され、2つの出力チャネルC1およびC2に結合される。
[0141] 図8Aに戻ると、1×1畳み込みレイヤ806の出力は、エンコーダサブネットワークの追加の非線形レイヤおよび追加の畳み込みレイヤによって処理される。ボトルネック820は、エンコーダサブネットワーク(またはフォワードパス)上の量子化エンジンおよびエントロピー符号化エンジン、ならびにデコーダサブネットワーク上のエントロピー復号エンジンおよび逆量子化エンジン(またはバックワードパス)を含むことができる。量子化エンジンは、量子化出力を生成するために、エンコーダサブネットワークの最後のニューラルネットワークレイヤ819によって出力された特徴に対して量子化を実行することができる。エントロピー符号化エンジンは、ビットストリームを生成するために、量子化エンジンからの量子化出力をエントロピー符号化することができる。場合によっては、エントロピー符号化エンジンは、エントロピー符号化を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。ニューラルネットワークシステムは、格納のため、別のデバイス、サーバデバイス、もしくはサーバシステムへの送信のためにビットストリームを出力し、および/またはそうでない場合、ビットストリームを出力することができる。
[0142] ニューラルネットワークシステムのデコーダサブネットワークまたは(別のデバイスの)別のニューラルネットワークシステムのデコーダサブネットワークは、ビットストリームを復号することができる。(デコーダサブネットワークの)ボトルネック820のエントロピー復号エンジンは、ビットストリームをエントロピー復号し、エントロピー復号データをデコーダサブネットワークの逆量子化エンジンに出力することができる。エントロピー復号エンジンは、エントロピー復号を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。逆量子化エンジンは、データを逆量子化することができる。逆量子化データは、デコーダサブネットワークのいくつかの畳み込みレイヤおよびいくつかの逆非線形レイヤによって処理され得る。
[0143] いくつかの畳み込みレイヤおよび非線形レイヤによって処理された後、1×1畳み込みレイヤ813は、最終的な逆非線形レイヤ809によって出力されたデータを処理することができる。1×1畳み込みレイヤ813は、データをYチャネル特徴および結合UVチャネル特徴に分割することができる2N個の畳み込みフィルタを含むことができる。たとえば、逆非線形レイヤ809によって出力されたN個のチャネルの各々は、1×1畳み込みレイヤ813の(スケーリングをもたらす)2N個の1×1畳み込みを使用して処理され得る。N個の入力チャネルに適用される(合計2N個の出力チャネルからの)出力チャネルに対応するスケーリングファクタniごとに、デコーダサブネットワークは、N個の入力チャネルにわたって合計を実行することができ、2N個の出力をもたらす。1つの例示的な例では、スケーリングファクタn1の場合、デコーダサブネットワークは、N個の入力チャネルにスケーリングファクタn1を適用することができ、結果を合計することができ、それにより、1つの出力チャネルがもたらされる。デコーダサブネットワークは、2N個の異なるスケーリングファクタ(たとえば、スケーリングファクタn1、スケーリングファクタn2、スケーリングファクタn2Nまで)についてこの演算を実行することができる。
[0144] 1×1畳み込みレイヤ813によって出力されたYチャネル特徴は、逆非線形815によって処理され得る。1×1畳み込みレイヤ813によって出力された結合UVチャネル特徴は、逆非線形816によって処理され得る。畳み込みレイヤ817は、Yチャネル特徴を処理し、復元Y成分824として示された、ピクセル当たりの復元Yチャネルまたは復元フレームのサンプル(たとえば、ルミナンスサンプルもしくはピクセル)を出力することができる。畳み込みレイヤ818は、結合UVチャネル特徴を処理し、復元UおよびV成分825として示された、ピクセル当たりの復元Uチャネルまたは復元フレームのサンプル(たとえば、クロミナンス青サンプルもしくはピクセル)およびピクセル当たりの復元Vチャネルまたは復元フレームのサンプル(たとえば、クロミナンス赤サンプルもしくはピクセル)を出力することができる。
[0145] いくつかの例では、異なる非線形演算子を有する図8Aのアーキテクチャの異なる変形は、イントラ予測エンジン602および残差エンジン620として使用され得る。たとえば、図9および図10は、YUVフォーマットを有するデータ(たとえば、Y、UおよびV成分を有するYUV4:2:0入力データ)を処理するように構成されている図8Aのフロントエンドアーキテクチャを示す図である。図9のニューラルネットワークシステム900では、エンコーダ側では、分岐されたルーマチャネルとクロマチャネルが、1×1畳み込みレイヤ(図8Aのものと同様)を使用して組み合わされ、その後、GDN非線形演算子が適用される。図10のニューラルネットワークシステム1000では、エンコーダ側では、分岐されたルーマチャネルとクロマチャネルが1×1畳み込みレイヤ(図8Aのものと同様)を使用して組み合わされ、次に、PReLU非線形演算子が適用される。一例では、VAEresとVAEintraの両方が、図9に示す変形を使用することができる。別の例では、VAEresとVAEintraの両方が図10の変形を使用することができる。別の例では、VAEresは図9の変形を使用することができ、VAEintraは図10の変形を使用することができる。別の例では、VAEintraは図9の変形を使用することができ、VAEresは図10の変形を使用することができる。
[0146] 図11は、ビデオデータを処理するためのプロセス1100の一例を示す流れ図である。ブロック1102において、プロセス1100は、機械学習システムによって、入力ビデオデータを取得することを含む。入力ビデオデータは、現在のフレーム(たとえば、図7Aの現在のフレーム(時間tにおける)のルーマ成分
Figure 2024508772000082
)の少なくとも1つのルミナンス成分を含む。場合によっては、入力ビデオデータは、以前に復元されたフレームの少なくとも1つのルミナンス成分(たとえば、図7Aの前のフレーム(時間t-1における)の復元されたルーマ成分
Figure 2024508772000083
)を含み、少なくとも1つの復元されたルミナンス成分と呼ぶことができる。いくつかの態様では、現在のフレームはビデオフレームを含む。場合によっては、1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分と、少なくとも1つのクロミナンス赤成分とを含む。いくつかの態様では、現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する。場合によっては、YUVフォーマットはYUV4:2:0フォーマットである。
[0147] ブロック1104で、プロセスは、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することを含む。いくつかの態様では、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することを含み得る。場合によっては、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することをさらに含むことができる。場合によっては、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される。たとえば、説明的な例として図7Aを参照すると、フローエンジン718は、現在のフレーム
Figure 2024508772000084
と以前に復元されたフレーム
Figure 2024508772000085
の両方のルーマ成分を使用して、現在のフレーム
Figure 2024508772000086
のルーマ動き情報(たとえば、SSFfL)とクロマ動き情報(たとえば、SSFfC)とを推定することができる。上述のように、クロマ動き情報(たとえば、fC)731は、畳み込みレイヤ730を使用して、ルーマ動き情報(たとえば、fL)729に基づいて導出され得る。場合によっては、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることによって少なくとも部分的に決定される。
[0148] いくつかの態様では、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分の動き情報と現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することを含む。いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータおよび現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む。場合によっては、空間スケールフロー(SSF)ワーピングパラメータは、学習したスケールフローベクトルを含む。説明的な例として図6を参照すると、ワーピングパラメータは、動きまたは変位ベクトルの(x方向の)水平成分を表す
Figure 2024508772000087
と、動きまたは変位ベクトルの(y方向の)垂直成分を表す
Figure 2024508772000088
と、空間的な動き/変位情報(vxおよびvy)と結合された復元されたフレームの段階的に平滑化されたバージョンを表すs(スケールフィールドと呼ばれる)とを含むことができる。
[0149] プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測(たとえば、図6の予測子PY、PU、およびPV)を決定することをさらに含むことができる。場合によっては、1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって、少なくとも部分的に決定される。1つの例示的な例では、補間演算は、トリリニア補間演算を含む。
[0150] いくつかの例では、本明細書で説明されるプロセスは、図11に示されるコンピューティングデバイスアーキテクチャ1200を有するコンピューティングデバイスなどのコンピューティングデバイスまたは装置によって実行され得る。一例では、1つまたは複数のプロセスは、コンピューティングデバイスアーキテクチャ1200を有するコンピューティングデバイスによって実行され得、図6に示すニューラルネットワークアーキテクチャおよび/または図7A、図7B、図8A、図9、および/または図10に示されるニューラルネットワークアーキテクチャのうちの任意の1つまたは複数を実装する。いくつかの例では、コンピューティングデバイスは、モバイルデバイス(たとえば、携帯電話、タブレットコンピューティングデバイスなど)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、テレビジョン、車両(もしくは車両のコンピューティングデバイス)、ロボティックデバイス、ならびに/または、本明細書に記載されたプロセスを実行するリソース能力を有する任意の他のコンピューティングデバイスを含むか、またはその一部であることができる。
[0151] 場合によっては、コンピューティングデバイスまたは装置は、1つもしくは複数の入力デバイス、1つもしくは複数の出力デバイス、1つもしくは複数のプロセッサ、1つもしくは複数のマイクロプロセッサ、1つもしくは複数のマイクロコンピュータ、1つもしくは複数の送信機、受信機、もしくは(たとえば、トランシーバと呼ばれる)組み合わされた送信機-受信機、1つもしくは複数のカメラ、1つもしくは複数のセンサ、および/または本明細書に記載されたプロセスのステップを実行するように構成された他の構成要素などの様々な構成要素を含む場合がある。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信および/もしくは受信するように構成されたネットワークインターフェース、それらの任意の組合せ、ならびに/または他の構成要素を含む場合がある。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成される場合がある。
[0152] コンピューティングデバイスの構成要素は、回路内に実装され得る。たとえば、構成要素は、本明細書に記載された様々な動作を実行するために、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、ニューラル処理装置(NPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。
[0153] 本明細書に記載されたプロセスは論理流れ図として示されることができ、それらの動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、列挙された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が記載される順序は限定として解釈されるものではなく、任意の数の記載された動作は、プロセスを実装するために任意の順序で、および/または並行して組み合わされ得る。
[0154] さらに、本明細書に記載されたプロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行される場合があり、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで一括して実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装される場合がある。上述されたように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶される場合がある。コンピュータ可読記憶媒体または機械可読記憶媒体は、非一時的であり得る。
[0155] 図12は、本明細書に記載された様々な技法を実装することができる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャ1200を示す。いくつかの例では、コンピューティングデバイスは、モバイルデバイス、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、車両(もしくは車両のコンピューティングデバイス)、または他のデバイスを含むことができる。たとえば、コンピューティングデバイスアーキテクチャ1200は、図6のシステムを実装することができる。コンピューティングデバイスアーキテクチャ1200の構成要素は、バスなどの接続1205を使用して互いに電気通信しているように図示されている。例示的なコンピューティングデバイスアーキテクチャ1200は、処理ユニット(CPUまたはプロセッサ)1210と、読取り専用メモリ(ROM)1220およびランダムアクセスメモリ(RAM)1225などのコンピューティングデバイスメモリ1215を含む様々なコンピューティングデバイス構成要素をプロセッサ1210に結合するコンピューティングデバイス接続1205とを含む。
[0156] コンピューティングデバイスアーキテクチャ1200は、プロセッサ1210と直接接続された、プロセッサ1210に極めて近接した、またはプロセッサ1210の一部として統合された高速メモリのキャッシュを含むことができる。コンピューティングデバイスアーキテクチャ1200は、プロセッサ1210による迅速なアクセスのために、メモリ1215および/またはストレージデバイス1230からキャッシュ1212にデータをコピーすることができる。このようにして、キャッシュは、データを待つ間のプロセッサ1210の遅延を回避する性能の向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実行するためにプロセッサ1210を制御することができるか、またはプロセッサ1210を制御するように構成され得る。他のコンピューティングデバイスメモリ1215も、使用のために利用可能であり得る。メモリ1215は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ1210は、任意の汎用プロセッサ、プロセッサ1210を制御するように構成された、ストレージデバイス1230に記憶されたサービス1 1232、サービス2 1234、およびサービス3 1236などのハードウェアまたはソフトウェアサービス、ならびにソフトウェア命令がプロセッサ設計に組み込まれる専用プロセッサを含むことができる。プロセッサ1210は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含んでいる自給式システムであり得る。マルチコアプロセッサは、対称であっても、非対称であってもよい。
[0157] コンピューティングデバイスアーキテクチャ1200とのユーザ対話を可能にするために、入力デバイス1245は、音声用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチ式スクリーン、キーボード、マウス、動き入力、音声などの、任意の数の入力機構を表すことができる。出力デバイス1235も、ディスプレイ、プロジェクタ、テレビジョン、スピーカデバイスなどの、当業者に知られたいくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、マルチモーダルコンピューティングデバイスは、ユーザがコンピューティングデバイスアーキテクチャ1200と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース1240は、概して、ユーザ入力とコンピューティングデバイス出力とを統制および管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、本明細書での基本的な特徴は、改善されたハードウェア構成またはファームウェア構成が開発されるにつれて、それらで容易に代用されてもよい。
[0158] ストレージデバイス1230は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1225、読取り専用メモリ(ROM)1220、およびそれらのハイブリッドなどの、コンピュータによってアクセス可能なデータを記憶することができる、ハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。ストレージデバイス1230は、プロセッサ1210を制御するためのサービス1232、1234、1236を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールが考えられる。ストレージデバイス1230は、コンピューティングデバイス接続1205に接続され得る。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ1210、接続1205、出力デバイス1235などの必要なハードウェア構成要素とともに、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
[0159] 本開示の態様は、1つまたは複数のアクティブ深度検知システムを含むか、またはそれに結合された(セキュリティシステム、スマートフォン、タブレット、ラップトップコンピュータ、車両、ドローン、または他のデバイスなどの)任意の適切な電子デバイスに適用可能である。1つの光プロジェクタを有するか、またはそれに結合されたデバイスに関して以下に記載されるが、本開示の態様は、任意の数の光プロジェクタを有するデバイスに適用可能であり、したがって、特定のデバイスに限定されない。
[0160] 「デバイス」という用語は、(1つのスマートフォン、1つのコントローラ、1つの処理システムなどの)1つまたは特定の数の物理オブジェクトに限定されない。本明細書で使用されるデバイスは、本開示の少なくともいくつかの部分を実装することができる1つまたは複数の部分を有する任意の電子デバイスであり得る。以下の説明および例は、本開示の様々な態様を記載するために「デバイス」という用語を使用するが、「デバイス」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。さらに、「システム」という用語は、複数の構成要素または特定の実施形態に限定されない。たとえば、システムは、1つまたは複数のプリント回路基板または他の基板上に実装される場合があり、可動または静的な構成要素を有する場合がある。以下の説明および例は、本開示の様々な態様を記載するために「システム」という用語を使用するが、「システム」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。
[0161] 本明細書で提供される実施形態および例の完全な理解を提供するために、上記の説明で具体的な詳細が提供されている。しかしながら、実施形態はこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明確にするために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現された方法におけるステップもしくはルーチン、またはハードウェアとソフトウェアの組合せを備える機能ブロックを含む、個々の機能ブロックを含むものとして提示される場合がある。図に示された、および/または本明細書に記載された構成要素以外のさらなる構成要素が使用されてもよい。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不要な詳細で実施形態を不明瞭にしないためにブロック図の形態で構成要素として示される場合がある。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不要な詳細なしに示される場合がある。
[0162] 個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として描写されたプロセスまたは方法として上述されている場合がある。フローチャートは動作を逐次プロセスとして記載する場合があるが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並べ替えられてもよい。プロセスの動作が完了したときにプロセスは終了するが、図に含まれない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、その終了は、呼出し関数またはメイン関数への関数のリターンに対応することができる。
[0163] 上述された例によるプロセスおよび方法は、記憶されるかまたはさもなければコンピュータ可読媒体から利用可能であるコンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスにある機能または機能のグループを実行させるか、またはさもなければそれらを実行するように構成する、命令とデータとを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードなどであり得る。
[0164] 「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルのストレージデバイス、光ストレージデバイス、ならびに命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的電子信号を含まない非一時的媒体を含む場合がある。非一時的媒体の例には、限定はしないが、とりわけ、磁気ディスクまたは磁気テープ、フラッシュメモリなどの光記憶媒体、メモリまたはメモリデバイス、磁気ディスクまたは光学ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続されたストレージデバイス、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)、それらの任意の適切な組合せが含まれ得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができるコードおよび/または機械実行可能命令をその上に記憶している場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することにより、別のコードセグメントまたはハードウェア回路に結合される場合がある。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介してパス、転送、または送信される場合がある。
[0165] いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含んでいるケーブルまたはワイヤレス信号を含むことができる。しかしながら、述べられるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明確に除外する。
[0166] これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードに実装されると、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶される場合がある。プロセッサが必要なタスクを実行することができる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、または他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書に記載された機能はまた、周辺機器またはアドインカード内で具現化され得る。そのような機能はまた、さらなる例として、単一のデバイス内で実行する異なるチップまたは異なるプロセスの間の回路基板上に実装され得る。
[0167] 命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示に記載された機能を提供するための例示的な手段である。
[0168] 上記の説明では、本出願の態様がその特定の実施形態を参照して記載されているが、本出願はそれに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に記載されているが、従来技術によって限定される場合を除き、本発明の概念は、場合によっては様々に具現化および採用される場合があり、添付の特許請求の範囲は、そのような変形形態を含むように解釈されるものであることを理解されたい。上述された適用例の様々な特徴および態様は、個々にまたは一緒に使用されてもよい。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書に記載されたもの以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的と見なされるべきである。説明の目的で、方法は特定の順序で記載された。代替の実施形態では、方法は、記載された順序とは異なる順序で実行されてもよいことを諒解されたい。
[0169] 本明細書で使用される、より小さい(「<」)およびより大きい(「>」)というシンボルまたは用語は、本明細書の範囲から逸脱することなく、それぞれ、より小さいかまたはそれに等しい(「≦」)およびより大きいかまたはそれに等しい(「≧」)というシンボルと置き換えられ得ることを当業者は諒解されよう。
[0170] 構成要素が特定の動作を実行する「ように構成される」ものとして記載される場合、そのような構成は、たとえば、その動作を実行するように電子回路もしくは他のハードウェアを設計することにより、その動作を実行するようにプログラム可能な電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることにより、またはそれらの任意の組合せで達成され得る。
[0171] 「に結合された」という句は、直接的または間接的のいずれかで別の構成要素に物理的に接続された任意の構成要素、ならびに/あるいは直接的または間接的のいずれかで別の構成要素と通信している(たとえば、有線もしくはワイヤレス接続、および/または他の適切な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。
[0172] セット「のうちの少なくとも1つ」、および/またはセットのうちの「1つもしくは複数」を列挙するクレームの文言または他の文言は、(任意の組合せの)セットのうちの1つのメンバーまたはセットのうちの複数のメンバーがクレームを満たすことを示す。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」または「A、B、もしくはCのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セットの「うちの少なくとも1つ」および/またはセットのうちの「1つもしくは複数」という文言は、セット内に列挙された項目にそのセットを限定しない。たとえば、「AおよびBのうちの少なくとも1つ」または「AもしくはBのうちの少なくとも1つ」を列挙するクレームの文言は、A、B、またはAおよびBを意味することができ、さらに、AおよびBのセット内に列挙されていない項目を含むことができる。
[0173] 本明細書に開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述されている。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、記載された機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本出願の範囲からの逸脱を生じるものと解釈されるべきではない。
[0174] 本明細書に記載された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装される場合がある。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイス内のアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのいずれかに実装される場合がある。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装される場合がある。ソフトウェアに実装された場合、技法は、実行されると、上述された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現される場合がある。コンピュータ可読データ記憶媒体は、パッケージング材料を含む場合があるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気または光学データ記憶媒体などのメモリまたはデータ記憶媒体を備えることができる。技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形式でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現される場合がある。
[0175] プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサを含む場合があるプロセッサによって実行される場合がある。そのようなプロセッサは、本開示に記載された技法のうちのいずれかを実行するように構成される場合がある。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装される場合がある。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実装に適切な任意の他の構造もしくは装置のいずれかを指すことができる。
[0176] 本開示の例示的な例には、以下が含まれる。
[0177] 態様1:ビデオデータを処理する方法であって、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を備える、方法。
[0178] 態様2:現在のフレームの少なくとも1つのルミナンス成分の動き情報と現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測を決定することと、をさらに備える、態様1に記載の方法。
[0179] 態様3:1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、態様2に記載の方法。
[0180] 態様4:補間演算がトリリニア補間演算を含む、態様3に記載の方法。
[0181] 態様5:現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む、態様2から4のいずれか1つに記載の方法。
[0182] 態様6:SSFワーピングパラメータが、学習されたスケールフローベクトルを含む、態様5に記載の方法。
[0183] 態様7:現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することは、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することと、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を含む、態様1から6のいずれか1つに記載の方法。
[0184] 態様8:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される、態様7に記載の方法。
[0185] 態様9:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることによって少なくとも部分的に決定される、態様7に記載の方法。
[0186] 態様10:現在のフレームがビデオフレームを含む、態様1から9のいずれか1つに記載の方法。
[0187] 態様11:1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、態様1から10のいずれか1つに記載の方法。
[0188] 態様12:現在のフレームが、ルミナンス-クロミナンス(YUV)フォーマットを有する、態様1から11のいずれか1つに記載の方法。
[0189] 態様13:YUVフォーマットが、YUV4:2:0フォーマットである、態様12に記載の方法。
[0190] 態様14:ビデオデータを処理するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサは、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成される、装置。
[0191] 態様15:1つまたは複数のプロセッサが、現在のフレームの少なくとも1つのルミナンス成分の動き情報および現在のフレームの1つまたは複数のクロミナンス成分の動き情報に基づいて、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定し、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測を決定するように構成される、態様14に記載の装置。
[0192] 態様16:1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、態様15に記載の装置。
[0193] 態様17:補間演算が、トリリニア補間演算を含む、態様16に記載の装置。
[0194] 態様18:現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む、態様15から17のいずれか1つに記載の装置。
[0195] 態様19:SSFワーピングパラメータが、学習されたスケールフローベクトルを含む、態様18に記載の装置。
[0196] 態様20:現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するために、1つまたは複数のプロセッサは、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定し、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するように構成される、態様14から19のいずれか1つに記載の装置。
[0197] 態様21:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される、態様20に記載の装置。
[0198] 態様22:現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するために、1つまたは複数のプロセッサは、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングするように構成される、態様20に記載の装置。
[0199] 態様23:現在のフレームがビデオフレームを含む、態様14から22のいずれか1つに記載の装置。
[0200] 態様24:1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、態様14から23のいずれか1つに記載の装置。
[0201] 態様25:現在のフレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様14から24に記載の装置。
[0202] 態様26:YUVフォーマットが、YUV4:2:0フォーマットである、態様25に記載の装置。
[0203] 態様27:1つまたは複数のフレームをキャプチャするように構成された少なくとも1つのカメラをさらに備える、態様14から26のいずれか1つに記載の装置。
[0204] 態様28:1つまたは複数のフレームを表示するように構成された少なくとも1つのディスプレイをさらに備える、態様14から27のいずれか1つに記載の装置。
[0205] 態様29:モバイルデバイスを含む、態様14から28のいずれか1つに記載の装置。
[0206] 態様30:実行されると、1つまたは複数のプロセッサに、態様1から29に記載の動作のいずれかを実行させる命令を記憶する、コンピュータ可読記憶媒体。
[0207] 態様31:態様1から29に記載の動作のいずれかを実行するための手段を備える、装置。

Claims (30)

  1. ビデオデータを処理する方法であって、
    機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、
    前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を備える、方法。
  2. 前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを使用する前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分のワーピングパラメータと、前記現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、
    前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用して、前記現在のフレームの1つまたは複数のインターフレーム予測を決定することと、をさらに備える、請求項1に記載の方法。
  3. 前記1つまたは複数のインターフレーム予測は、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、請求項2に記載の方法。
  4. 前記補間演算は、トリリニア補間演算を含む、請求項3に記載の方法。
  5. 前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとが、空間スケールフロー(SSF)ワーピングパラメータを含む、請求項2に記載の方法。
  6. 前記SSFワーピングパラメータは、学習されたスケールフローベクトルを含む、請求項5に記載の方法。
  7. 前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを決定することが、
    前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報を決定することと、
    前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定することと、を含む、請求項1に記載の方法。
  8. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記機械学習システムの畳み込みレイヤを使用して決定される、請求項7に記載の方法。
  9. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報をサンプリングすることによって少なくとも部分的に決定される、請求項7に記載の方法。
  10. 前記現在のフレームはビデオフレームを含む、請求項1に記載の方法。
  11. 前記1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、請求項1に記載の方法。
  12. 前記現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項1に記載の方法。
  13. 前記YUVフォーマットは、YUV4:2:0フォーマットである、請求項12に記載の方法。
  14. ビデオデータを処理するための装置であって、
    少なくとも1つのメモリと、
    前記少なくとも1つのメモリに結合された1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
    機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、
    前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成される、装置。
  15. 前記1つまたは複数のプロセッサは、
    前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報および前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報に基づいて前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分のワーピングパラメータと前記現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定し、
    前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用して、前記現在のフレームの1つまたは複数のインターフレーム予測を決定するように構成される、請求項14に記載の装置。
  16. 前記1つまたは複数のインターフレーム予測は、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、請求項15に記載の装置。
  17. 前記補間演算は、トリリニア補間演算を含む、請求項16に記載の装置。
  18. 前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとが、空間スケールフロー(SSF)ワーピングパラメータを含む、請求項15に記載の装置。
  19. 前記SSFワーピングパラメータは、学習されたスケールフローベクトルを含む、請求項18に記載の装置。
  20. 前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを決定するために、前記1つまたは複数のプロセッサは、
    前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報を決定し、
    前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定するように構成される、請求項14に記載の装置。
  21. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記機械学習システムの畳み込みレイヤを使用して決定される、請求項20に記載の装置。
  22. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定するために、前記1つまたは複数のプロセッサは、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報をサンプリングするように構成される、請求項20に記載の装置。
  23. 前記現在のフレームはビデオフレームを含む、請求項14に記載の装置。
  24. 前記1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、請求項14に記載の装置。
  25. 前記現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項14に記載の装置。
  26. 前記YUVフォーマットは、YUV4:2:0フォーマットである、請求項25に記載の装置。
  27. 1つまたは複数のフレームをキャプチャするように構成された少なくとも1つのカメラをさらに備える、請求項14に記載の装置。
  28. 1つまたは複数のフレームを表示するように構成された少なくとも1つのディスプレイをさらに備える、請求項14に記載の装置。
  29. モバイルデバイスを含む、請求項14に記載の装置。
  30. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
    機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、
    前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
JP2023550114A 2021-02-25 2022-02-22 ビデオコーディングのための機械学習ベースのフロー決定 Pending JP2024508772A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163153475P 2021-02-25 2021-02-25
US63/153,475 2021-02-25
US17/676,510 2022-02-21
US17/676,510 US12003734B2 (en) 2021-02-25 2022-02-21 Machine learning based flow determination for video coding
PCT/US2022/017296 WO2022182651A1 (en) 2021-02-25 2022-02-22 Machine learning based flow determination for video coding

Publications (1)

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

Family

ID=80683155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023550114A Pending JP2024508772A (ja) 2021-02-25 2022-02-22 ビデオコーディングのための機械学習ベースのフロー決定

Country Status (5)

Country Link
EP (1) EP4298795A1 (ja)
JP (1) JP2024508772A (ja)
KR (1) KR20230150274A (ja)
BR (1) BR112023016294A2 (ja)
WO (1) WO2022182651A1 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding

Also Published As

Publication number Publication date
KR20230150274A (ko) 2023-10-30
EP4298795A1 (en) 2024-01-03
WO2022182651A1 (en) 2022-09-01
BR112023016294A2 (pt) 2023-11-07

Similar Documents

Publication Publication Date Title
US11405626B2 (en) Video compression using recurrent-based machine learning systems
CN116114247B (zh) 用于处理视频数据的装置和方法
US12003734B2 (en) Machine learning based flow determination for video coding
US20220191523A1 (en) Front-end architecture for neural network based video coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
US11399198B1 (en) Learned B-frame compression
JP2024509881A (ja) Pフレームコーディングシステムを使用する学習型bフレームコーディング
TW202318878A (zh) 用於媒體變換譯碼的基於變換器的架構
JP2023553369A (ja) ニューラルネットワークベースのビデオコーディングのためのフロントエンドアーキテクチャ
JP2024508772A (ja) ビデオコーディングのための機械学習ベースのフロー決定
US20240015318A1 (en) Video coding using optical flow and residual predictors
US20240214578A1 (en) Regularizing neural networks with data quantization using exponential family priors
CN116965032A (zh) 用于视频译码的基于机器学习的流确定
CN116547965A (zh) 用于基于神经网络的视频译码的前端架构
US20240013441A1 (en) Video coding using camera motion compensation and object motion compensation
WO2024015665A1 (en) Bit-rate estimation for video coding with machine learning enhancement