Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7840973B2 - Machine learning-based flow decision for video coding - Google Patents
[go: Go Back, main page]

JP7840973B2 - Machine learning-based flow decision for video coding - Google Patents

Machine learning-based flow decision for video coding

Info

Publication number
JP7840973B2
JP7840973B2 JP2023550114A JP2023550114A JP7840973B2 JP 7840973 B2 JP7840973 B2 JP 7840973B2 JP 2023550114 A JP2023550114 A JP 2023550114A JP 2023550114 A JP2023550114 A JP 2023550114A JP 7840973 B2 JP7840973 B2 JP 7840973B2
Authority
JP
Japan
Prior art keywords
current frame
luminance component
motion information
component
machine learning
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.)
Active
Application number
JP2023550114A
Other languages
Japanese (ja)
Other versions
JP2024508772A (en
JP2024508772A5 (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/en
Publication of JP2024508772A5 publication Critical patent/JP2024508772A5/ja
Application granted granted Critical
Publication of JP7840973B2 publication Critical patent/JP7840973B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised 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/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
    • 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 OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth 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)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

[0001] 本開示は、概して、画像および/またはビデオの符号化(または圧縮)と復号(解凍)とを含む、画像およびビデオのコーディングに関する。たとえば、本開示の態様は、1つまたは複数の画像フレームまたはピクチャ(たとえば、ビデオフレーム/ピクチャ)のルーマおよびクロマ成分のフロー情報を決定するための技術に関する。 [0001] This disclosure generally relates to image and video coding, including encoding (or compression) and decoding (decompression) of images and/or videos. For example, aspects of this disclosure relate to techniques for determining flow information of rumor and chroma components of one or more image frames or pictures (e.g., video frames/pictures).

[0002] 多くのデバイスおよびシステムは、ビデオデータ(video data)が消費のために処理および出力されることを可能にする。デジタルビデオデータは、消費者およびビデオプロバイダの需要を満たすための大量のデータを含む。たとえば、ビデオデータの消費者は、高い忠実度、解像度、フレームレートなどを含む高い品質のビデオを望む。その結果、これらの需要を満たすために必要とされる大量のビデオデータは、ビデオデータを処理および記憶する通信ネットワークおよびデバイスに負担をかける。 [0002] Many devices and systems enable video data to be processed and output for consumption. Digital video data contains large amounts of data to meet the demands of consumers and video providers. For example, consumers of video data desire high-quality video, including high fidelity, resolution, and frame rate. As a result, the large amounts of video data required to meet these demands burden communication networks and devices that process and store the video data.

[0003] ビデオコーディング技法は、ビデオデータを圧縮するために使用され得る。ビデオコーディングの目標は、ビデオ品質に対する劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。常に発展しつつあるビデオサービスが利用可能になるとともに、より良いコーディング効率を有する符号化技法が必要とされる。 [0003] Video coding techniques can be used to compress video data. The goal of video coding is to compress video data into a format that uses a lower bitrate while avoiding or minimizing degradation of video quality. As video services are constantly evolving and more readily available, coding techniques with better coding efficiency are needed.

[0004] 1つまたは複数の機械学習システム(machine learning system)を使用して画像および/またはビデオのコンテンツをコーディング(たとえば、符号化および/または復号)するためのシステムおよび技法が記載される。少なくとも1つの例によれば、ビデオデータを処理するための方法が提供される。この方法は、機械学習システムによって、現在のフレーム(current frame)の少なくとも1つのルミナンス成分(luminance component)を含む入力ビデオデータ(input video data)を取得することと、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報(motion information)と、現在のフレームの1つまたは複数のクロミナンス成分(chrominance component)の動き情報とを決定することと、を含む。 [0004] Systems and techniques for coding (e.g., encoding and/or decoding) image and/or video content using one or more machine learning systems are described. According to at least one example, a method for processing video data is provided. This method includes: obtaining input video data containing at least one luminance component of the current frame using a machine learning system; and using the at least one luminance component of the current frame, determining motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame using a machine learning system.

[0005] 別の例では、少なくとも1つのメモリ(たとえば、仮想コンテンツデータ、1つまたは複数の画像などのデータを記憶するように構成される)と、少なくとも1つのメモリに結合された(たとえば、回路内に実装された)1つまたは複数のプロセッサとを含むビデオデータを処理するための装置が提供される。1つまたは複数のプロセッサは、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成されており、それを行うことができる。 [0005] In another example, a device for processing video data is provided, comprising at least one memory (for example, configured to store data such as virtual content data, one or more images) and one or more processors coupled to the at least one memory (for example, implemented in circuitry). The one or more processors are configured to use a machine learning system to acquire input video data including at least one luminance component of the current frame, and to use the machine learning system to determine, and can determine, the motion information of at least one luminance component of the current frame and the motion information of one or more chrominance components of the current frame.

[0006] 別の例では、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を行わせる命令を記憶した非一時的コンピュータ可読媒体(non-transitory computer-readable medium)が提供される。 [0006] In another example, a non-transitory computer-readable medium is provided that, when executed by one or more processors, stores instructions causing one or more processors to: use a machine learning system to acquire input video data including at least one luminance component of the current frame; and use the machine learning system to determine, using at least one luminance component of the current frame, the motion information of at least one luminance component of the current frame and the motion information of one or more chrominance components of the current frame.

[0007] 別の例では、ビデオデータを処理するための装置が提供される。この装置は、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得するための手段と、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するための手段と、を含む。 [0007] In another example, a device for processing video data is provided. This device includes means for acquiring input video data including at least one luminance component of the current frame, and means for determining motion information of at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame, using at least one luminance component of the current frame.

[0008] いくつかの態様では、上記の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数は、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータ(warping parameter)と、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測(inter-frame prediction)を決定することと、をさらに備える。 [0008] In some embodiments, one or more of the above methods, apparatus, and computer-readable media further comprises: determining a warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame by a machine learning system using motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame; and determining one or more inter-frame predictions of the current frame using the warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame.

[0009] いくつかの態様では、1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算(interpolation operation)を適用することによって、少なくとも部分的に決定される。 [0009] In some embodiments, one or more interframe predictions are determined at least partially by applying an interpolation operation using a warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame.

[0010] いくつかの態様では、補間演算は、トリリニア補間演算(trilinear interpolation operation)を含む。 [0010] In some embodiments, the interpolation operation includes a trilinear interpolation operation.

[0011] いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータおよび現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF:space-scale flow)ワーピングパラメータを含む。 [0011] In some embodiments, the warping parameters of at least one luminance component of the current frame and the warping parameters of one or more chrominance components of the current frame include space-scale flow (SSF) warping parameters.

[0012] いくつかの態様では、SSFワーピングパラメータは、学習されたスケールフローベクトル(learned scale-flow vector)を含む。 [0012] In some embodiments, the SSF warping parameters include a learned scale-flow vector.

[0013] いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するために、上記の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数はさらに、現在のフレームの少なくとも1つのルミナンス成分および前のフレーム(previous frame)の少なくとも1つの復元されたルーマ成分(reconstructed luma component)に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することと、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を備える。 [0013] In some embodiments, to determine motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame using at least one luminance component of the current frame, one or more of the above methods, apparatus, and computer-readable media further include: determining motion information for at least one luminance component of the current frame based on at least one luminance component of the current frame and at least one reconstructed luma component of the previous frame; and determining motion information for one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame.

[0014] いくつかの態様では、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤ(convolutional layer)を使用して決定される。 [0014] In some embodiments, motion information for one or more chrominance components of the current frame is determined using a convolutional layer of a machine learning system.

[0015] いくつかの態様では、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するために、上述の方法、装置、およびコンピュータ可読媒体のうちの1つまたは複数は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることをさらに備える。 [0015] In some embodiments, one or more of the methods, apparatus, and computer-readable media described above further comprises sampling the determined motion information for at least one luminance component of the current frame in order to determine the motion information for one or more chrominance components of the current frame.

[0016] いくつかの態様では、現在のフレームはビデオフレーム(video frame)を含む。 [0016] In some embodiments, the current frame includes a video frame.

[0017] いくつかの態様では、1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分(chrominance-blue component)と少なくとも1つのクロミナンス赤成分(chrominance-red component)とを含む。 [0017] In some embodiments, one or more chrominance components include at least one chrominance-blue component and at least one chrominance-red component.

[0018] いくつかの態様では、現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマット(luminance-chrominance (YUV) format)を有する。場合によっては、YUVフォーマットはYUV4:2:0フォーマットである。 [0018] In some embodiments, the current frame has a luminance-chrominance (YUV) format. In some cases, the YUV format is the YUV 4:2:0 format.

[0019] いくつかの態様では、本明細書に記載される装置は、モバイルデバイス(たとえば、携帯電話もしくはいわゆる「スマートフォン」、タブレットコンピュータ、もしくはその他のタイプのモバイルデバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、テレビジョン、車両(もしくは車両のコンピューティングデバイス)、または他のデバイスを備えるか、それらの一部であり得る。いくつかの態様では、装置は、1つまたは複数の画像またはビデオフレームをキャプチャするための少なくとも1つのカメラを含む。たとえば、装置は、1つもしくは複数の画像および/またはビデオフレームを含む1つもしくは複数のビデオをキャプチャするためのカメラ(たとえば、RGBカメラ)または複数のカメラを含むことができる。いくつかの態様では、装置は、1つまたは複数の画像、ビデオ、通知、または他の表示可能なデータを表示するためのディスプレイを含む。いくつかの態様では、装置は、少なくとも1つのデバイスに伝送媒体を介して1つまたは複数のビデオフレームおよび/またはシンタックスデータを送信するように構成された送信機を含む。いくつかの態様では、プロセッサには、ニューラル処理装置(NPU)、中央処理装置(CPU)、グラフィックス処理装置(GPU)、または他の処理デバイスもしくは構成要素が含まれる。 [0019] In some embodiments, the apparatus described herein may comprise or be part of a mobile device (e.g., a mobile phone or so-called “smartphone”, a tablet computer, or other type of mobile device), a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a television, a vehicle (or a computing device in a vehicle), or other device. In some embodiments, the apparatus includes at least one camera for capturing one or more images or video frames. For example, the apparatus may include a camera (e.g., an RGB camera) or multiple cameras for capturing one or more videos containing one or more images and/or video frames. In some embodiments, the apparatus includes a display for displaying one or more images, videos, notifications, or other displayable data. In some embodiments, the apparatus includes a transmitter configured to transmit one or more video frames and/or syntax data to at least one device via a transmission medium. In some embodiments, the processor includes a neural processing unit (NPU), a central processing unit (CPU), a graphics processing unit (GPU), or other processing devices or components.

[0020] 本概要は、請求される主題の主要または本質的な特徴を識別するものではなく、請求される主題の範囲を決定するために切り離して使用されるものでもない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照して理解されるべきである。 [0020] This summary does not identify the principal or essential features of the claimed subject matter, nor is it to be used in isolation to determine the scope of the claimed subject matter. The subject matter should be understood by referring to the entire specification of this patent, any or all of the drawings, and the appropriate portions of each claim.

[0021] 上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになるであろう。 [0021] The above, along with other features and embodiments, will become more apparent with reference to the following specification, claims, and accompanying drawings.

[0022] 本出願の例示的な実施形態は、以下の図を参照して以下で詳細に記載される。 [0022] Exemplary embodiments of this application are described in detail below with reference to the following figures.

[0023] システムオンチップ(SOC)の例示的な実装形態を示す図。[0023] A diagram showing an exemplary implementation of a system-on-a-chip (SOC). [0024] 全結合ニューラルネットワークの一例を示す図。[0024] A diagram showing an example of a fully connected neural network. [0025] 局所結合ニューラルネットワークの一例を示す図。[0025] A diagram showing an example of a locally connected neural network. [0026] 畳み込みニューラルネットワークの一例を示す図。[0026] A diagram showing an example of a convolutional neural network. [0027] 画像から視覚特徴を認識するように設計された深層畳み込みネットワーク(DCN::deep convolutional network)の詳細な一例を示す図。[0027] A detailed example of a deep convolutional network (DCN) designed to recognize visual features from an image. [0028] 深層畳み込みネットワーク(DCN)を示すブロック図。[0028] A block diagram showing a deep convolutional network (DCN). [0029] いくつかの例による、ニューラルネットワークベースのシステムを使用して画像および/またはビデオのコーディング(符号化および復号)を実行するように動作可能なデバイスを含むシステムの一例を示す図。[0029] A diagram illustrating an example of a system that includes a device capable of performing image and/or video coding (encoding and decoding) using a neural network-based system, by several examples. [0030] いくつかの例による、赤緑青(RGB)フォーマットを有する入力用のエンドツーエンドニューラルネットワークベースの画像およびビデオのコーディングシステムの一例を示す図。[0030] A figure illustrating an example of an end-to-end neural network-based image and video coding system for inputs having a red-green-blue (RGB) format, by several examples. [0031] いくつかの例による、エンドツーエンドのニューラルネットワークベースの画像およびビデオコーディングシステムの一部であり得る、1つまたは複数のルミナンス-クロミナンス(YUV)入力フォーマット(たとえば、4:2:0YUV入力フォーマット)を処理するように構成された空間スケールフロー(SSF)ニューラルネットワークアーキテクチャの一例を示す図。[0031] A figure showing an example of a spatial-scale flow (SSF) neural network architecture configured to process one or more luminance-chrominance (YUV) input formats (e.g., 4:2:0 YUV input format), which may be part of an end-to-end neural network-based image and video coding system, by several examples. [0032] いくつかの例による、ルーマ入力で動作する機械学習ベースのフローエンジンの一例を示す図。[0032] A diagram illustrating an example of a machine learning-based flow engine that operates with rumor input, using several examples. [0033] いくつかの例による、クロマ動き情報を取得するためのルーマ動き情報のサブサンプリングの一例を示す図。[0033] A figure showing an example of subsampling of lumar motion information to obtain chroma motion information, using several examples. [0034] いくつかの例による、YUV(たとえば、YUV4:2:0)残差を有する機械学習ベースのアーキテクチャの一例を示す図。[0034] A figure illustrating an example of a machine learning-based architecture with YUV (e.g., YUV4:2:0) residuals, by several examples. [0035] いくつかの例による、1×1畳み込みレイヤの例示的な動作を示す図。[0035] A diagram illustrating the exemplary operation of a 1x1 convolutional layer by several examples. [0036] いくつかの例による、YUV4:2:0入力などのYUV入力(Y、U、およびV)と直接連携する機械学習ベースのアーキテクチャ(たとえば、エンドツーエンドニューラルネットワークベースの画像およびビデオコーディングシステム)の一例を示す図。[0036] A figure illustrating an example of a machine learning-based architecture (e.g., an end-to-end neural network-based image and video coding system) that directly interacts with YUV inputs (Y, U, and V), such as YUV4:2:0 inputs, by several examples. [0037] いくつかの例による、YUV4:2:0入力などのYUV入力(Y、U、およびV)と直接連携する機械学習ベースのアーキテクチャ(たとえば、エンドツーエンドニューラルネットワークベースの画像およびビデオコーディングシステム)の別の例を示す図。[0037] A figure illustrating another example of a machine learning-based architecture (e.g., an end-to-end neural network-based image and video coding system) that directly interacts with YUV inputs (Y, U, and V), such as YUV4:2:0 inputs, by several examples. [0038] いくつかの例による、ビデオデータを処理するためのプロセスの一例を示す流れ図。[0038] A flowchart illustrating an example of a process for processing video data, using several examples. [0039] 本明細書で説明する様々な技法を実装できる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャを示す図。[0039] A diagram showing an exemplary computing device architecture of an exemplary computing device capable of implementing the various techniques described herein.

[0040] 本開示のいくつかの態様および実施形態が以下に提供される。当業者に明らかであるように、これらの態様および実施形態のうちのいくつかは独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の記載では、説明の目的で、本出願の実施形態の完全な理解を提供するために具体的な詳細が記載される。しかしながら、様々な実施形態は、これらの具体的な詳細なしに実践され得ることが明らかであろう。図および説明は限定するものではない。 [0040] Several aspects and embodiments of the present disclosure are provided below. As will be apparent to those skilled in the art, some of these aspects and embodiments may be applied independently, and some of them may be applied in combination. Specific details are provided below for illustrative purposes to provide a complete understanding of the embodiments of this application. However, it will be apparent that various embodiments can be practiced without these specific details. The figures and descriptions are not limiting.

[0041] その後の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用性、または構成を限定するものではない。むしろ、例示的な実施形態のその後の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供するであろう。添付の特許請求の範囲に記載されるように、本出願の趣旨および範囲から逸脱することなく、要素の機能および構成において様々な変更が行われ得ることを理解されたい。 [0041] The subsequent description provides only exemplary embodiments and does not limit the scope, applicability, or configuration of the present disclosure. Rather, the subsequent description of exemplary embodiments will provide a description that enables the implementation of exemplary embodiments for those skilled in the art. It should be understood that various modifications can be made to the function and configuration of the elements without departing from the spirit and scope of this application, as described in the appended claims.

[0042] デジタルビデオデータは、特に、高品質のビデオデータに対する需要が成長し続けるにつれて大量のデータを含むことができる。たとえば、ビデオデータの消費者は、通常、高い忠実度、解像度、フレームレートなどを有するますます高い品質のビデオを望む。しかしながら、そのような需要を満たすために必要とされる大量のビデオデータは、通信ネットワーク、ならびにビデオデータを処理し記憶するデバイスに著しい負担をかける可能性がある。 [0042] Digital video data can contain large amounts of data, especially as the demand for high-quality video data continues to grow. For example, consumers of video data typically desire increasingly higher quality video with high fidelity, resolution, frame rate, etc. However, the large amounts of video data required to meet such demands can place a significant burden on communication networks, as well as on devices that process and store the video data.

[0043] ビデオデータをコーディングするために、様々な技法が使用され得る。ビデオコーディングは、特定のビデオコーディング規格に従って実行され得る。例示的なビデオコーディング規格には、高効率ビデオコーディング(HEVC)、アドバンストビデオコーディング(AVC)、ムービングピクチャエキスパートグループ(MPEG)コーディング、および多用途ビデオコーディング(VVC)が含まれる。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。 [0043] Various techniques can be used to code video data. Video coding may be performed according to a specific video coding standard. Exemplary video coding standards include High Efficiency Video Coding (HEVC), Advanced Video Coding (AVC), Moving Picture Expert Group (MPEG) coding, and Multipurpose Video Coding (VVC). Video coding often uses predictive methods such as inter-prediction or intra-prediction, which utilize redundant configurations present in video images or sequences. A common goal of video coding techniques is to compress video data into a format that uses a lower bitrate while avoiding or minimizing degradation of video quality. As demand for video services increases and new video services become available, coding techniques with better coding efficiency, performance, and rate control are needed.

[0044] 機械学習(ML)ベースのシステムを使用して、画像および/またはビデオコーディングを実行することができる。一般に、MLは人工知能(AI)のサブセットである。MLシステムは、明示的な命令を使用せずにパターンおよび推測に依存することによって様々なタスクを実行するためにコンピュータシステムが使用することができるアルゴリズムと統計モデルとを含むことができる。MLシステムの一例は、人工ニューロン(たとえば、ニューロンモデル)の相互接続されたグループを含む場合がある、(人工ニューラルネットワークとも呼ばれる)ニューラルネットワークである。ニューラルネットワークは、とりわけ、画像および/またはビデオのコーディング、画像解析および/またはコンピュータビジョンアプリケーション、インターネットプロトコル(IP)カメラ、モノのインターネット(IoT)デバイス、自律車両、サービスロボットなどの様々なアプリケーションおよび/またはデバイスに使用される場合がある。 [0044] Image and/or video coding can be performed using machine learning (ML) based systems. Generally, ML is a subset of artificial intelligence (AI). ML systems can include algorithms and statistical models that computer systems can use to perform various tasks by relying on patterns and inferences without using explicit instructions. An example of an ML system is a neural network (also called an artificial neural network), which may include an interconnected group of artificial neurons (e.g., neuron models). Neural networks may be used in a variety of applications and/or devices, including, among others, image and/or video coding, image analysis and/or computer vision applications, Internet Protocol (IP) cameras, Internet of Things (IoT) devices, autonomous vehicles, and service robots.

[0045] ニューラルネットワーク内の個々のノードは、入力データを取得し、データに対して単純な演算を実行することにより、生体ニューロンをエミュレートすることができる。入力データに対して実行された単純な演算の結果は、他のニューロンに選択的に渡される。重み値がネットワーク内の各々のベクトルおよびノードに関連付けられ、これらの値は、入力データがどのように出力データに関係するかを制約する。たとえば、各ノードの入力データは、対応する重み値によって乗算される場合があり、積は合計される場合がある。積の合計は任意選択のバイアスによって調整される場合があり、活性化関数が結果に適用され、ノードの出力信号または(活性化マップもしくは特徴マップと呼ばれることがある)「出力活性化」をもたらす。重み値は、最初に、ネットワークを介して訓練データの反復フローによって決定される場合がある(たとえば、重み値は、ネットワークが特定のクラスの典型的な入力データ特性によってそれらのクラスをどのように識別するべきかを学習する訓練フェーズ中に確立される)。 [0045] Individual nodes within a neural network can emulate biological neurons by acquiring input data and performing simple operations on the data. The results of the simple operations performed on the input data are selectively passed to other neurons. Weight values are associated with each vector and node in the network, and these values constrain how the input data relates to the output data. For example, the input data of each node may be multiplied by the corresponding weight value, and the product may be summed. The sum of the products may be adjusted by an arbitrary bias, and an activation function is applied to the result, yielding the node's output signal or "output activation" (sometimes called an activation map or feature map). The weight values may initially be determined by an iterative flow of training data through the network (for example, the weight values are established during the training phase, when the network learns how to identify those classes by typical input data characteristics of those classes).

[0046] とりわけ、畳み込みニューラルネットワーク(CNN)、再帰型ニューラルネットワーク(RNN)、敵対的生成ネットワーク(GAN)、多層パーセプトロン(MLP)ニューラルネットワークなどの、異なるタイプのニューラルネットワークが存在する。たとえば、畳み込みニューラルネットワーク(CNN)は、フィードフォワード人工ニューラルネットワークのタイプである。畳み込みニューラルネットワークは、各々が受容野(たとえば、入力空間の空間的に局所化された領域)を有し、入力空間を集合的にタイリングする人工ニューロンの集合を含む場合がある。RNNは、レイヤの出力を節約し、この出力を、レイヤの結果を予測するのに役立つために入力にフィードバックするという原理で動作する。GANは、ニューラルネットワークモデルが合理的に元のデータセットからである可能性がある新しい合成出力を生成することができるように、入力データ内のパターンを学習することができる生成ニューラルネットワークの一形態である。GANは、合成された出力を生成する生成ニューラルネットワークと、信頼性について出力を評価する識別ニューラルネットワークとを含む、一緒に動作する2つのニューラルネットワークを含むことができる。MLPニューラルネットワークでは、データは入力レイヤに供給される場合があり、1つまたは複数の隠れレイヤがデータに抽象化レベルを提供する。次いで、抽象化されたデータに基づいて出力レイヤ上で予測が行われる場合がある。 [0046] In particular, there are different types of neural networks, such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), generative adversarial networks (GANs), and multilayer perceptron (MLP) neural networks. For example, a convolutional neural network (CNN) is a type of feedforward artificial neural network. A convolutional neural network may contain a set of artificial neurons that collectively tile the input space, each having a receptive field (e.g., a spatially localized region of the input space). RNNs operate on the principle of saving the output of a layer and feeding this output back into the input to help predict the outcome of the layer. A GAN is a form of generative neural network that can learn patterns in input data so that the neural network model can generate a new synthetic output that may reasonably be from the original dataset. A GAN can include two neural networks working together, one which is a generative neural network that generates the synthetic output, and the other which is a discriminative neural network that evaluates the output for reliability. In an MLP neural network, data may be fed into the input layer, and one or more hidden layers may provide a level of abstraction to the data. Predictions may then be made on the output layer based on the abstracted data.

[0047] (複数の隠れレイヤが存在するときに深層ニューラルネットワークと呼ばれる)階層型ニューラルネットワークアーキテクチャでは、人工ニューロンの第1のレイヤの出力は人工ニューロンの第2のレイヤへの入力になり、人工ニューロンの第2のレイヤの出力は人工ニューロンの第3のレイヤの入力になり、以下同様である。CNNは、たとえば、特徴の階層を認識するように訓練される場合がある。CNNアーキテクチャにおける計算は、1つまたは複数の計算チェーンにおいて構成され得る処理ノードの集団にわたって分散される場合がある。これらの多層化アーキテクチャは、一度に1つのレイヤを訓練される場合があり、逆伝搬を使用して微調整される場合がある。 [0047] In a hierarchical neural network architecture (called a deep neural network when multiple hidden layers exist), the output of the first layer of artificial neurons becomes the input to the second layer of artificial neurons, the output of the second layer of artificial neurons becomes the input to the third layer of artificial neurons, and so on. A CNN may be trained, for example, to recognize a hierarchy of features. Computation in a CNN architecture may be distributed across a set of processing nodes that may constitute one or more computation chains. These multilayer architectures may be trained one layer at a time and may be fine-tuned using backpropagation.

[0048] 多くの場合、深層学習ベースのシステム(deep learning-based system)は、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する(場合によってはハイパープライアネットワークとも呼ばれる)第2のサブネットワーク(デコーダサブネットワーク)の組合せとして設計される。場合によっては、デコーダの他のサブネットワークが存在する可能性がある。そのような深層学習ベースのシステムアーキテクチャは、変換プラス量子化モジュール(またはエンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。 [0048] In many cases, deep learning-based systems are designed as a combination of an autoencoder subnetwork (encoder subnetwork) and a second subnetwork (decoder subnetwork) that is involved in learning a probabilistic model on a quantization latent used for entropy coding (sometimes also called a hyperplier network). In some cases, other subnetworks of the decoder may be present. Such a deep learning-based system architecture can be seen as a combination of a transformation-plus-quantization module (or encoder subnetwork) and an entropy modeling subnetwork module.

[0049] ビデオ圧縮のためのほとんどの既存の深層学習ベースのアーキテクチャは、RGB、YUV4:4:4、または他の非サブサンプル入力フォーマットなどの非サブサンプル入力フォーマットで動作するように設計されている。しかしながら、HEVCおよびVVCなどのビデオコーディング規格は、それらそれぞれのメインプロファイル内でYUV4:2:0色フォーマットをサポートするように設計される。4:2:0 YUVフォーマットをサポートするために、非サブサンプル入力フォーマットで動作するように設計された深層学習ベースのアーキテクチャは、修正される必要がある。 [0049] Most existing deep learning-based architectures for video compression are designed to operate with non-subsampled input formats such as RGB, YUV4:4:4, or other non-subsampled input formats. However, video coding standards such as HEVC and VVC are designed to support the YUV4:2:0 color format within their respective main profiles. Deep learning-based architectures designed to operate with non-subsampled input formats need to be modified to support the 4:2:0 YUV format.

[0050] システム、装置、プロセス(方法とも呼ばれる)、およびコンピュータ可読媒体(総称して「システムおよび技法」と呼ばれる)は、本明細書では、1つまたは複数のフレーム(たとえば、ビデオフレーム)の1つの色成分を使用して、フレームの色成分および別の色成分に関する情報を推定することができるMLベースのシステム(たとえば、深層学習ベースのシステム)を提供すると説明される。いくつかの態様では、MLベースのシステムは、ルミナンス-クロミナンス(YUV)入力フォーマットを有する入力データを処理するために設計され得る。このような態様では、MLベースのシステムは、現在のフレームと以前に復元されたフレーム(たとえば、MLベースのシステムによって復元された)の両方のルーマ成分(luma component)を使用して、ルーマ成分と1つまたは複数のクロマ成分の両方についての動き情報(たとえば、光フロー情報などのフロー情報)を推定することができる。場合によっては、ルーマ成分の動き情報を学習した後、ダウンサンプリングを備えた畳み込みレイヤを使用して、1つまたは複数のクロマ成分の動き情報(たとえば、フロー情報)を学習することができる。場合によっては、1つまたは複数のクロマ成分の動き情報は、ルーマ成分の動き情報を直接サブサンプリングすることによって(たとえば、畳み込みレイヤを使用せずに)取得することができる。このような技法は、フレームのすべての成分に対して実行することができる。このような技法を使用して、MLベースのシステムは、ラテントデータまたはビットストリームの一部としてコーディングされたクロマ情報を必要とせずに、クロマ動き情報(たとえば、フロー情報)を決定することができる(たとえば、クロマ情報とともにサイド情報を送信する必要性を減らす)。 [0050] Systems, apparatus, processes (also called methods), and computer-readable media (collectively referred to as “Systems and Techniques”) are described herein as providing ML-based systems (e.g., deep learning-based systems) that can use one color component of one or more frames (e.g., video frames) to estimate information about the color components of a frame and other color components. In some embodiments, ML-based systems may be designed to process input data having a luminance-chrominance (YUV) input format. In such embodiments, the ML-based system can use the luma component of both the current frame and a previously reconstructed frame (e.g., reconstructed by the ML-based system) to estimate motion information (e.g., flow information such as optical flow information) about both the luma component and one or more chroma components. In some cases, after learning the motion information of the luma component, a convolutional layer with downsampling can be used to learn the motion information (e.g., flow information) of one or more chroma components. In some cases, motion information for one or more chroma components can be obtained by directly subsampling the motion information for lumen components (e.g., without using convolutional layers). Such techniques can be performed for all components of a frame. Using such techniques, ML-based systems can determine chroma motion information (e.g., flow information) without requiring chroma information coded as part of latent data or a bitstream (e.g., reducing the need to transmit side information along with chroma information).

[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ベースのシステムは、スタンドアロンフレーム(画像とも呼ばれる)および/または複数のフレームを含むビデオデータを符号化および/または復号することができる。 [0051] As described above, ML-based systems may be designed to process input data having a YUV input format. The YUV format includes a luminance channel (Y) and a pair of chrominance channels (U and V). The U channel may be called the chrominance (or chroma)-blue channel, and the U channel may be called the chrominance (or chroma)-red channel. In some cases, the luminance (Y) channel or component may also be called the luma channel or component. In some cases, the chrominance (U and V) channels or components may also be called the chroma channel or component. The YUV input format may include, among other things, YUV4:2:0, YUV4:4:4, and YUV4:2:2. In some cases, the systems and techniques described herein may be designed to process other input formats such as the Y-chroma blue (Cb)-chroma red (Cr) (YCbCr) format, the red-green-blue (RGB) format, and/or other formats. The ML-based systems described herein can encode and/or decode video data containing standalone frames (also called images) and/or multiple frames.

[0052] 本開示のさらなる詳細および追加の態様が、図に関して説明される。 [0052] Further details and additional aspects of this disclosure will be described with reference to the figures.

[0053] 図1は、本明細書に記載された機能のうちの1つまたは複数を実行するように構成された中央処理装置(CPU)102またはマルチコアCPUを含む場合があるシステムオンチップ(SOC)100の例示的な実装形態を示す。いくつかある情報の中で特に、パラメータまたは変数(たとえば、ニューラル信号およびシナプス荷重)、算出デバイスに関連付けられたシステムパラメータ(たとえば、重みを有するニューラルネットワーク)、遅延、周波数ビン情報、タスク情報は、ニューラル処理装置(NPU)108に関連付けられたメモリブロック、CPU102に関連付けられたメモリブロック、グラフィックス処理装置(GPU)104に関連付けられたメモリブロック、デジタル信号プロセッサ(DSP)106に関連付けられたメモリブロック、メモリブロック118に記憶される場合があり、および/または複数のブロックにわたって分散される場合がある。CPU102において実行される命令は、CPU102に関連付けられたプログラムメモリからロードされてもよく、メモリブロック118からロードされてもよい。 [0053] Figure 1 shows an exemplary implementation of a system-on-a-chip (SOC) 100, which may include a central processing unit (CPU) 102 or a multi-core CPU configured to perform one or more of the functions described herein. Among some of the information, parameters or variables (e.g., neural signals and synaptic weights), system parameters associated with computation devices (e.g., weighted neural networks), delays, frequency bin information, and task information may be stored in memory blocks associated with the neural processing unit (NPU) 108, memory blocks associated with the CPU 102, memory blocks associated with the graphics processing unit (GPU) 104, memory blocks associated with the digital signal processor (DSP) 106, memory block 118, and/or distributed across multiple blocks. Instructions executed in the CPU 102 may be loaded from program memory associated with the CPU 102 or from memory block 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を含む場合がある。 [0054] The SOC 100 may also include additional processing blocks adapted to specific functions, such as a GPU 104 and a DSP 106, a connectivity block 110 which may include fifth-generation (5G) connectivity, fourth-generation Long-Term Evolution (4G LTE®) connectivity, Wi-Fi® connectivity, USB connectivity, Bluetooth® connectivity, etc., and a multimedia processor 112 which can detect and recognize gestures, for example. In one implementation, the NPU is implemented within the CPU 102, DSP 106, and/or GPU 104. The SOC 100 may also include a navigation module 120 which may include a sensor processor 114, an image signal processor (ISP) 116, and/or a global positioning system.

[0055] SOC100はARM命令セットに基づく場合がある。本開示の一態様では、CPU102にロードされる命令は、入力値とフィルタ重みの乗算積に対応するルックアップテーブル(LUT)内の記憶された乗算結果を探索するためのコードを備えることができる。CPU102にロードされる命令はまた、乗算積のルックアップテーブルヒットが検出されたとき、乗算積の乗算演算中に乗算器を無効にするためのコードを備えることができる。さらに、CPU102にロードされる命令は、乗算積のルックアップテーブルミスが検出されたとき、入力値とフィルタ重みの算出された乗算積を記憶するためのコードを備えることができる。 [0055] The SOC 100 may be based on an ARM instruction set. In one aspect of this disclosure, instructions loaded into the CPU 102 may include code for retrieving the stored multiplication result in a lookup table (LUT) corresponding to the multiplication product of the input value and the filter weights. Instructions loaded into the CPU 102 may also include code for disabling the multiplier during the multiplication operation of the multiplication product when a lookup table hit is detected for the multiplication product. Furthermore, instructions loaded into the CPU 102 may include code for storing the calculated multiplication product of the input value and the filter weights when a lookup table miss is detected for the multiplication product.

[0056] SOC100および/またはその構成要素は、本明細書で説明された本開示の態様に従って機械学習技法を使用して、(ビデオ符号化および/または復号とも呼ばれ、ビデオコーディングと総称される)ビデオ圧縮および/または解凍を実行するように構成される場合がある。ビデオ圧縮および/または解凍を実行するために深層学習アーキテクチャを使用することにより、本開示の態様は、デバイス上でのビデオ圧縮および/または解凍の効率を増大させることができる。たとえば、記載されたビデオコーディング技法を使用するデバイスは、機械学習ベースの技法を使用してより効率的にビデオを圧縮することができ、別のデバイスに圧縮されたビデオを送信することができ、他のデバイスは、本明細書に記載された機械学習ベースの技法を使用してより効率的に圧縮されたビデオを解凍することができる。 [0056] The SOC 100 and/or its components may be configured to perform video compression and/or decompression (also known as video coding and/or decoding, collectively referred to as video coding) using machine learning techniques in accordance with the embodiments of the disclosure described herein. By using a deep learning architecture to perform video compression and/or decompression, embodiments of the disclosure can increase the efficiency of video compression and/or decompression on a device. For example, a device using the described video coding techniques can compress video more efficiently using machine learning-based techniques and transmit the compressed video to another device, which can then decompress the compressed video more efficiently using the machine learning-based techniques described herein.

[0057] 上述されたように、ニューラルネットワークは機械学習システムの一例であり、入力レイヤと、1つまたは複数の隠れレイヤと、出力レイヤとを含むことができる。データは入力レイヤの入力ノードから提供され、処理は1つまたは複数の隠れレイヤの隠れノードによって実行され、出力は出力レイヤの出力ノードを介して生成される。深層学習ネットワークは、通常、複数の隠れレイヤを含む。ニューラルネットワークの各レイヤは、人工ニューロン(またはノード)を含むことができる特徴マップまたは活性化マップを含むことができる。特徴マップは、フィルタ、カーネルなどを含むことができる。ノードは、レイヤのうちの1つまたは複数のノードの重要度を示すために使用される1つまたは複数の重みを含むことができる。場合によっては、深層学習ネットワークは、一連の多くの隠れレイヤを有することができ、初期のレイヤは、入力の単純で低レベルの特性を決定するために使用され、後のレイヤは、より複雑で抽象的な特性の階層を構築する。 [0057] As described above, a neural network is an example of a machine learning system and may include an input layer, one or more hidden layers, and an output layer. Data is provided from the input nodes of the input layer, processing is performed by the hidden nodes of one or more hidden layers, and the output is produced via the output nodes of the output layer. Deep learning networks typically include multiple hidden layers. Each layer of a neural network may include a feature map or activation map that may contain artificial neurons (or nodes). Feature maps may include filters, kernels, etc. Nodes may include one or more weights used to indicate the importance of one or more nodes in the layer. In some cases, a deep learning network may have a series of many hidden layers, with early layers used to determine simple, low-level characteristics of the input, and later layers building a hierarchy of more complex and abstract characteristics.

[0058] 深層学習アーキテクチャは特徴の階層を学習することができる。たとえば、視覚データが提示された場合、第1のレイヤは、入力ストリーム内のエッジなどの比較的単純な特徴を認識するように学習することができる。別の例では、聴覚データが提示された場合、第1のレイヤは、特定の周波数のスペクトル電力を認識するように学習することができる。第1のレイヤの出力を入力として取得する第2のレイヤは、視覚データの場合の単純な形状、または聴覚データの場合の音の組合せなどの特徴の組合せを認識するように学習することができる。たとえば、上位レイヤは、視覚データ内の複雑な形状、または聴覚データ内の単語を表すように学習することができる。さらに上位のレイヤは、共通の視覚オブジェクトまたは発話フレーズを認識するように学習することができる。 [0058] Deep learning architectures can learn feature hierarchies. For example, when visual data is presented, a first layer can be learned to recognize relatively simple features, such as edges in the input stream. In another example, when auditory data is presented, a first layer can be learned to recognize spectral powers of specific frequencies. A second layer, which takes the output of the first layer as input, can be learned to recognize combinations of features, such as simple shapes in the case of visual data, or combinations of sounds in the case of auditory data. For example, a higher layer can be learned to represent complex shapes in visual data, or words in auditory data. A higher layer can be learned to recognize common visual objects or speech phrases.

[0059] 深層学習アーキテクチャは、自然階層構造を有する問題に適用されたときに特にうまく実行することができる。たとえば、原動機付き車両の分類は、ホイール、フロントガラス、および他の特徴を認識するための最初の学習から恩恵を受けることができる。これらの特徴は、車、トラック、および飛行機を認識するために、異なる方法で上位レイヤにおいて組み合わされる場合がある。 [0059] Deep learning architectures can perform particularly well when applied to problems with natural hierarchical structures. For example, the classification of motorized vehicles can benefit from initial learning to recognize wheels, windshields, and other features. These features may be combined in different ways in higher layers to recognize cars, trucks, and airplanes.

[0060] ニューラルネットワークは、様々な接続パターンを用いて設計される場合がある。フィードフォワードネットワークでは、情報が下位レイヤから上位レイヤに渡され、所与のレイヤにおける各ニューロンは、上位レイヤにおけるニューロンに伝える。上述されたように、フィードフォワードネットワークの連続するレイヤにおいて、階層表現が構築される場合がある。ニューラルネットワークはまた、再帰型接続または(トップダウンとも呼ばれる)フィードバック接続を有する場合がある。再帰型接続では、所与のレイヤにおけるニューロンからの出力は、同じレイヤにおける別のニューロンに伝えられる場合がある。再帰型アーキテクチャは、ニューラルネットワークに順次配信される入力データチャンクのうちの2つ以上にわたるパターンを認識する際に役立つ場合がある。所与のレイヤにおけるニューロンから下位レイヤにおけるニューロンへの接続は、フィードバック(またはトップダウン)接続と呼ばれる。高レベルの概念の認識が、入力の特定の低レベルの特徴を区別するのに役立つ場合があるとき、多くのフィードバック接続を有するネットワークが役立つ場合がある。 [0060] Neural networks can be designed using various connection patterns. In a feedforward network, information is passed from lower layers to higher layers, with each neuron in a given layer communicating with neurons in higher layers. As described above, a hierarchical representation can be constructed in the consecutive layers of a feedforward network. Neural networks can also have recurrent or (also called top-down) feedback connections. In recurrent connections, the output from a neuron in a given layer may be communicated to another neuron in the same layer. Recurrent architectures can be useful when recognizing patterns across two or more chunks of input data delivered sequentially to the neural network. The connection from a neuron in a given layer to a neuron in a lower layer is called a feedback (or top-down) connection. Networks with many feedback connections can be useful when recognizing a high-level concept can help distinguish specific low-level features of the input.

[0061] ニューラルネットワークのレイヤ間の接続は、全結合または局所結合であり得る。図2Aは、全結合ニューラルネットワーク202の一例を示す。全結合ニューラルネットワーク202では、第2のレイヤにおける各ニューロンが第1のレイヤにおけるあらゆるニューロンから入力を受け取るように、第1のレイヤにおけるニューロンはその出力を第2のレイヤにおけるあらゆるニューロンに通信することができる。図2Bは、局所結合ニューラルネットワーク204の一例を示す。局所結合ニューラルネットワーク204では、第1のレイヤにおけるニューロンは、第2のレイヤにおける限られた数のニューロンに接続される場合がある。より一般的には、局所結合ニューラルネットワーク204の局所結合レイヤは、レイヤにおける各ニューロンが同じまたは同様の接続パターンを有するように構成される場合があるが、異なる値を有する場合がある接続強度で構成される場合がある(たとえば、210、212、214、および216)。局所結合の接続パターンは、所与の領域内の上位レイヤニューロンが、ネットワークへの総入力のうちの制限された部分のプロパティに訓練を介して調節された入力を受け取るので、上位レイヤにおいて空間的に別個の受容野を生じる場合がある。 [0061] The connections between layers of a neural network can be fully connected or locally connected. Figure 2A shows an example of a fully connected neural network 202. In the fully connected neural network 202, neurons in the first layer can communicate their outputs to any neuron in the second layer, so that each neuron in the second layer receives input from any neuron in the first layer. Figure 2B shows an example of a locally connected neural network 204. In the locally connected neural network 204, neurons in the first layer may be connected to a limited number of neurons in the second layer. More generally, the locally connected layers of the locally connected neural network 204 may be configured such that each neuron in the layer has the same or similar connection pattern, but may be configured with connection strengths that may have different values (e.g., 210, 212, 214, and 216). The connection patterns of local connections can create spatially distinct receptive fields in the upper layers, as higher-layer neurons within a given region receive inputs that have been trained to be tuned to the properties of a limited portion of the total input to the network.

[0062] 局所結合ニューラルネットワークの一例は、畳み込みニューラルネットワークである。図2Cは、畳み込みニューラルネットワーク206の一例を示す。畳み込みニューラルネットワーク206は、第2のレイヤにおける各ニューロンのための入力に関連付けられた接続強度が共有されるように構成される場合がある(たとえば、208)。畳み込みニューラルネットワークは、入力の空間位置が有意味である問題に好適であり得る。畳み込みニューラルネットワーク206は、本開示の態様による、ビデオ圧縮および/または解凍の1つまたは複数の態様を実行するために使用される場合がある。 [0062] An example of a locally connected neural network is a convolutional neural network. Figure 2C shows an example of a convolutional neural network 206. The convolutional neural network 206 may be configured such that the connection strength associated with the input for each neuron in the second layer is shared (e.g., 208). The convolutional neural network may be suitable for problems where the spatial location of the input is meaningful. The convolutional neural network 206 may be used to perform one or more embodiments of video compression and/or decompression according to embodiments of this disclosure.

[0063] 1つのタイプの畳み込みニューラルネットワークは、深層畳み込みネットワーク(DCN)である。図2Dは、車載カメラなどの画像キャプチャデバイス230から入力された画像226から視覚特徴を認識するように設計されたDCN200の詳細な例を示す。本例のDCN200は、交通標識および交通標識上に提供された数字を識別するように訓練される場合がある。当然、DCN200は、車線マーキングを識別すること、または交通信号を識別することなどの他のタスクのために訓練される場合がある。 [0063] One type of convolutional neural network is a deep convolutional network (DCN). Figure 2D shows a detailed example of a DCN 200 designed to recognize visual features from an image 226 input from an image capture device 230, such as an in-vehicle camera. The DCN 200 in this example may be trained to identify traffic signs and the numbers provided on them. Naturally, the DCN 200 may be trained for other tasks, such as identifying lane markings or traffic signals.

[0064] DCN200は、教師あり学習を用いて訓練される場合がある。訓練中に、DCN200は、速度制限標識の画像226などの画像を提示される場合があり、次いで、出力222を生成するために、フォワードパスが算出される場合がある。DCN200は、特徴抽出セクションと分類セクションとを含む場合がある。画像226を受信すると、畳み込みレイヤ232は、特徴マップの第1のセット218を生成するために、畳み込みカーネル(図示せず)を画像226に適用することができる。一例として、畳み込みレイヤ232用の畳み込みカーネルは、28×28特徴マップを生成する5×5カーネルであり得る。本例では、4つの異なる特徴マップが特徴マップの第1のセット218において生成されるので、4つの異なる畳み込みカーネルが、畳み込みレイヤ232において画像226に適用された。畳み込みカーネルは、フィルタまたは畳み込みフィルタと呼ばれる場合もある。 [0064] The DCN 200 may be trained using supervised learning. During training, the DCN 200 may be presented with images, such as image 226 of a speed limit sign, and then a forward pass may be calculated to generate output 222. The DCN 200 may include a feature extraction section and a classification section. Upon receiving image 226, the convolutional layer 232 may apply a convolutional kernel (not shown) to image 226 to generate a first set 218 of feature maps. As an example, the convolutional kernel for the convolutional layer 232 may be a 5x5 kernel that generates a 28x28 feature map. In this example, four different feature maps are generated in the first set 218 of feature maps, so four different convolutional kernels were applied to image 226 in the convolutional layer 232. Convolutional kernels are sometimes called filters or convolutional filters.

[0065] 特徴マップの第1のセット218は、特徴マップの第2のセット220を生成するために、最大プーリングレイヤ(図示せず)によってサブサンプリングされる場合がある。最大プーリングレイヤは、特徴マップの第1のセット218のサイズを削減する。すなわち、14×14などの特徴マップの第2のセット220のサイズは、28×28などの特徴マップの第1のセット218のサイズよりも小さい。削減されたサイズは、メモリ消費を削減しながら、後続のレイヤに同様の情報を提供する。特徴マップの第2のセット220は、特徴マップの1つまたは複数の後続のセット(図示せず)を生成するために、1つまたは複数の後続の畳み込みレイヤ(図示せず)を介してさらに畳み込まれる場合がある。 [0065] The first set of feature maps 218 may be subsampled by a max pooling layer (not shown) to generate a second set of feature maps 220. The max pooling layer reduces the size of the first set of feature maps 218. That is, the size of the second set of feature maps 220, such as 14x14, is smaller than the size of the first set of feature maps 218, such as 28x28. The reduced size provides similar information to subsequent layers while reducing memory consumption. The second set of feature maps 220 may be further convolved through one or more subsequent convolutional layers (not shown) to generate one or more subsequent sets of feature maps (not shown).

[0066] 図2Dの例では、特徴マップの第2のセット220は、第1の特徴ベクトル224を生成するために畳み込まれる。さらに、第1の特徴ベクトル224は、第2の特徴ベクトル228を生成するためにさらに畳み込まれる。第2の特徴ベクトル228の各特徴は、「標識」、「60」、および「100」などの画像226の可能な特徴に対応する数を含む場合がある。ソフトマックス関数(図示せず)が、第2の特徴ベクトル228内の数を確率に変換することができる。したがって、DCN200の出力222は、画像226が1つまたは複数の特徴を含む確率である。 [0066] In the example of Figure 2D, a second set of feature maps 220 is convolved to generate a first feature vector 224. Furthermore, the first feature vector 224 is further convolved to generate a second feature vector 228. Each feature in the second feature vector 228 may contain a number corresponding to possible features of image 226, such as "label", "60", and "100". A softmax function (not shown) can convert the numbers in the second feature vector 228 into probabilities. Thus, the output 222 of DCN 200 is the probability that image 226 contains one or more features.

[0067] 本例では、「標識」および「60」についての出力222における確率は、「30」、「40」、「50」、「70」、「80」、「90」、および「100」などの出力222の他のものの確率よりも高い。訓練の前に、DCN200によって生成される出力222は、不正確である可能性がある。したがって、出力222とターゲット出力との間で誤差が計算される場合がある。ターゲット出力は、画像226(たとえば、「標識」および「60」)のグランドトゥルースである。次いで、DCN200の重みは、DCN200の出力222がターゲット出力とより密接に整合されるように調整される場合がある。 [0067] In this example, the probabilities in output 222 for “label” and “60” are higher than the probabilities for other outputs 222 such as “30”, “40”, “50”, “70”, “80”, “90”, and “100”. Before training, the outputs 222 generated by DCN200 may be inaccurate. Therefore, an error may be calculated between output 222 and the target output. The target output is the ground truth of image 226 (e.g., “label” and “60”). The weights of DCN200 may then be adjusted so that the output 222 of DCN200 is more closely matched to the target output.

[0068] 重みを調整するために、学習アルゴリズムは、重みのための勾配ベクトルを算出することができる。勾配は、重みが調整された場合に誤差が増加または減少する量を示すことができる。最上レイヤにおいて、勾配は、最後から2番目のレイヤにおける活性化ニューロンと出力レイヤにおけるニューロンとを接続する重みの値に直接対応することができる。下位レイヤでは、勾配は、重みの値、および上位レイヤの算出された誤差勾配に依存する場合がある。次いで、重みは、誤差を低減するために調整される場合がある。重みを調整するこの方式は、それがニューラルネットワークを介する「バックワードパス」を伴うので、「逆伝搬」と呼ばれる場合がある。 [0068] To adjust the weights, the learning algorithm can calculate a gradient vector for the weights. The gradient can indicate the amount by which the error increases or decreases when the weights are adjusted. In the top layer, the gradient can directly correspond to the weight values connecting the activated neurons in the second-to-last layer to the neurons in the output layer. In lower layers, the gradient may depend on the weight values and the calculated error gradients in the upper layers. The weights may then be adjusted to reduce the error. This method of adjusting weights is sometimes called "backpropagation" because it involves a "backward path" through the neural network.

[0069] 実際には、重みの誤差勾配は、計算された勾配が真の誤差勾配を近似するように、少数の例にわたって計算される場合がある。この近似方法は、確率的勾配降下法と呼ばれる場合がある。確率的勾配降下法は、システム全体の達成可能な誤差レートが減少しなくなるまで、または誤差レートがターゲットレベルに達するまで繰り返される場合がある。学習の後に、DCNは新しい画像を提示される場合があり、ネットワークを介するフォワードパスは、DCNの推論または予測と見なされ得る出力222をもたらすことができる。 [0069] In practice, the error gradient of the weights may be calculated over a small number of examples so that the calculated gradient approximates the true error gradient. This approximation method is sometimes called stochastic gradient descent. Stochastic gradient descent may be repeated until the achievable error rate for the entire system no longer decreases, or until the error rate reaches a target level. After training, the DCN may be presented with a new image, and a forward pass through the network may yield an output 222 that can be considered an inference or prediction of the DCN.

[0070] 深層信念ネットワーク(DBN:Deep belief networks)は、隠れノードの複数のレイヤを備える確率モデルである。DBNは、訓練データセットの階層表現を抽出するために使用される場合がある。DBNは、制限ボルツマンマシン(RBM)のレイヤを積層することによって取得される場合がある。RBMは、入力のセットにわたる確率分布を学習することができる人工ニューラルネットワークのタイプである。RBMは、各入力がそれに分類されるべきクラスに関する情報の不在下で確率分布を学習することができるので、RBMは教師なし学習においてしばしば使用される。ハイブリッド教師なしおよび教師ありパラダイムを使用して、DBNの下部RBMは、教師なし方式で訓練される場合があり、特徴抽出器として機能することができ、上部RBMは、(前のレイヤからの入力およびターゲットクラスの同時分布上で)教師あり方式で訓練される場合があり、分類器として機能することができる。 [0070] Deep belief networks (DBNs) are probabilistic models with multiple layers of hidden nodes. DBNs can be used to extract hierarchical representations of training datasets. DBNs can be obtained by stacking layers of restricted Boltzmann machines (RBMs). RBMs are a type of artificial neural network that can learn probability distributions across a set of inputs. RBMs are often used in unsupervised learning because they can learn probability distributions in the absence of information about the class to which each input should be classified. Using hybrid unsupervised and supervised paradigms, the lower RBMs of a DBN can be trained unsupervised and can function as feature extractors, while the upper RBMs can be trained supervised (on a joint distribution of inputs from previous layers and target classes) and can function as classifiers.

[0071] 深層畳み込みネットワーク(DCN)は、追加のプーリングレイヤおよび正規化レイヤで構成された畳み込みネットワークのネットワークである。DCNは、多くのタスクに関して最先端の性能を実現している。DCNは、入力ターゲットと出力ターゲットの両方が、多くの標本について知られており、勾配降下法の使用によってネットワークの重みを修正するために使用される教師あり学習を使用して訓練され得る。 [0071] A deep convolutional network (DCN) is a network of convolutional networks composed of additional pooling and normalization layers. DCNs achieve state-of-the-art performance for many tasks. DCNs can be trained using supervised learning, where both the input and output targets are known for many samples, and the network weights are modified using gradient descent.

[0072] DCNは、フィードフォワードネットワークであり得る。加えて、上述されたように、DCNの第1のレイヤにおけるニューロンから次の上位レイヤにおけるニューロンのグループへの接続は、第1のレイヤにおけるニューロンにわたって共有される。DCNのフィードフォワード接続および共有接続は、高速処理のために活用される場合がある。DCNの計算負担は、たとえば、再帰型接続またはフィードバック接続を備える同様のサイズのニューラルネットワークのそれよりもはるかに少ない場合がある。 [0072] A DCN can be a feedforward network. In addition, as described above, the connections from neurons in the first layer of a DCN to groups of neurons in the next higher layer are shared across the neurons in the first layer. The feedforward and shared connections of a DCN can be leveraged for high-speed processing. The computational burden of a DCN can be significantly less than that of a similarly sized neural network with, for example, recurrent or feedback connections.

[0073] 畳み込みネットワークの各レイヤの処理は、空間的に不変のテンプレートまたは基底投影と見なされる場合がある。入力が、カラー画像の赤色、緑色、および青色のチャネルなどの複数のチャネルに最初に分解された場合、その入力に関して訓練された畳み込みネットワークは、画像の軸に沿った2つの空間次元と、色情報をキャプチャする第3の次元とを有する3次元であると見なされる場合がある。畳み込み接続の出力は、後続のレイヤにおいて特徴マップを形成すると見なされる場合があり、特徴マップ(たとえば、220)の各要素が、前のレイヤ(たとえば、特徴マップ218)における様々なニューロンから、および複数のチャネルの各々から入力を受信する。特徴マップにおける値は、整流、max(0,x)などの非線形性を用いてさらに処理される場合がある。隣接するニューロンからの値はさらにプールされる場合があり、これはダウンサンプリングに対応し、さらなる局所不変性および次元削減を提供することができる。 [0073] The processing of each layer of a convolutional network may be considered as a spatially invariant template or basis projection. If the input is initially decomposed into multiple channels, such as the red, green, and blue channels of a color image, the convolutional network trained on that input may be considered three-dimensional, having two spatial dimensions along the image axes and a third dimension for capturing color information. The output of the convolutional connections may be considered to form a feature map in subsequent layers, where each element of the feature map (e.g., 220) receives input from various neurons in the previous layer (e.g., feature map 218) and from each of the multiple channels. The values in the feature map may be further processed using nonlinearities such as rectification and max(0,x). Values from adjacent neurons may be further pooled, which corresponds to downsampling and can provide further local invariance and dimensionality reduction.

[0074] 図3は、深層畳み込みネットワーク350の一例を示すブロック図である。深層畳み込みネットワーク350は、接続および重みの共有に基づく複数の異なるタイプのレイヤを含む場合がある。図3に示されたように、深層畳み込みネットワーク350は、畳み込みブロック354A、354Bを含む。畳み込みブロック354A、354Bの各々は、畳み込みレイヤ(CONV)356、正規化レイヤ(LNorm)358、および最大プーリングレイヤ(MAX POOL)360で構成される場合がある。 [0074] Figure 3 is a block diagram showing an example of a deep convolutional network 350. The deep convolutional network 350 may include several different types of layers based on connectivity and weight sharing. As shown in Figure 3, the deep convolutional network 350 includes convolutional blocks 354A and 354B. Each of the convolutional blocks 354A and 354B may consist of a convolutional layer (CONV) 356, a normalization layer (LNorm) 358, and a maximum pooling layer (MAX POOL) 360.

[0075] 畳み込みレイヤ356は、1つまたは複数の畳み込みフィルタを含む場合があり、それらは、特徴マップを生成するために入力データ352に適用される場合がある。2つの畳み込みブロック354A、354Bのみが示されているが、本開示はそのように限定しておらず、代わりに、設計上の選好に応じて、任意の数の畳み込みブロック(たとえば、ブロック354A、354B)が深層畳み込みネットワーク350に含まれてもよい。正規化レイヤ358は、畳み込みフィルタの出力を正規化することができる。たとえば、正規化レイヤ358は、白色化または側方抑制を提供することができる。最大プーリングレイヤ360は、局所不変性および次元削減のために、空間にわたってダウンサンプリングアグリゲーションを提供することができる。 [0075] The convolutional layer 356 may include one or more convolutional filters, which may be applied to the input data 352 to generate feature maps. Although only two convolutional blocks 354A and 354B are shown, this disclosure is not limited in that way, and instead, any number of convolutional blocks (e.g., blocks 354A and 354B) may be included in the deep convolutional network 350, depending on design preferences. A normalization layer 358 can normalize the output of the convolutional filters. For example, the normalization layer 358 can provide whitening or lateral suppression. A maximum pooling layer 360 can provide downsampling aggregation across space for local invariance and dimensionality reduction.

[0076] たとえば、深層畳み込みネットワークの並列フィルタバンクは、高性能および低電力消費を実現するために、SOC100のCPU102またはGPU104にロードされる場合がある。代替実施形態では、並列フィルタバンクは、SOC100のDSP106またはISP116にロードされてもよい。加えて、深層畳み込みネットワーク350は、それぞれ、センサおよびナビゲーションに専用のセンサプロセッサ114およびナビゲーションモジュール120などの、SOC100上に存在する場合がある他の処理ブロックにアクセスすることができる。 [0076] For example, the parallel filter bank of the deep convolutional network may be loaded onto the CPU 102 or GPU 104 of the SOC 100 to achieve high performance and low power consumption. In an alternative embodiment, the parallel filter bank may be loaded onto the DSP 106 or ISP 116 of the SOC 100. In addition, the deep convolutional network 350 can access other processing blocks that may reside on the SOC 100, such as the sensor processor 114 and navigation module 120, which are dedicated to sensors and navigation, respectively.

[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は、確率のセットであり得、ここで、各確率は、入力データが特徴のセットからの特徴を含む確率である。 [0077] The deep convolutional network 350 may also include one or more fully connected layers, such as layer 362A (labeled "FC1") and layer 362B (labeled "FC2"). The deep convolutional network 350 may further include a logistic regression (LR) layer 364. Between each layer 356, 358, 360, 362A, 362B, and 364 of the deep convolutional network 350 are weights (not shown) that need to be updated. Each output of a layer (e.g., 356, 358, 360, 362A, 362B, 364) can serve as input to one of the subsequent layers (e.g., 356, 358, 360, 362A, 362B, 364) in the deep convolutional network 350 to learn a hierarchical feature representation from the input data 352 (e.g., image, audio, video, sensor data, and/or other input data) supplied in the first convolutional block 354A. The output of the deep convolutional network 350 is a classification score 366 for the input data 352. The classification score 366 can be a set of probabilities, where each probability is the probability that the input data contains a feature from the set of features.

[0078] 上述されたように、デジタルビデオデータは大量のデータを含むことができ、それは、通信ネットワークならびにビデオデータを処理し記憶するデバイスにかなりの負担をかける可能性がある。たとえば、圧縮されていないビデオコンテンツを記録することは、概して、記録されるビデオコンテンツの解像度が増大するにつれて大幅に増加する大きいファイルサイズをもたらす。1つの例示的な例では、1080p/24(たとえば、24フレーム毎秒でキャプチャされた幅が1920ピクセルで高さが1080ピクセルの解像度)で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり12.4メガバイトまたは毎秒297.6メガバイトを占有する場合がある。24フレーム毎秒において4K解像度で記録された圧縮されていないチャネル当たり16ビットのビデオは、フレーム当たり49.8メガバイトまたは毎秒1195.2メガバイトを占有する場合がある。 [0078] As described above, digital video data can contain large amounts of data, which can place a considerable burden on communication networks and devices that process and store video data. For example, recording uncompressed video content generally results in large file sizes that increase significantly as the resolution of the video content being recorded increases. In one exemplary example, uncompressed 16-bit per channel video recorded at 1080p/24 (for example, a resolution of 1920 pixels wide and 1080 pixels high captured at 24 frames per second) may occupy 12.4 megabytes per frame or 297.6 megabytes per second. Uncompressed 16-bit per channel video recorded at 4K resolution at 24 frames per second may occupy 49.8 megabytes per frame or 1195.2 megabytes per second.

[0079] ネットワーク帯域幅は、大きいビデオファイルが問題になる可能性がある別の制約である。たとえば、ビデオコンテンツは、しばしば、ワイヤレスネットワークを介して(たとえば、LTE、LTEアドバンスト、新無線(NR)、WiFi(登録商標)、Bluetooth、または他のワイヤレスネットワークを介して)配信され、消費者のインターネットトラフィックの大部分を構成する可能性がある。ワイヤレスネットワークにおける利用可能な帯域幅の量の進歩にもかかわらず、これらのネットワークにおいてビデオコンテンツを配信するために使用される帯域幅の量を削減することが依然として望ましい場合がある。 [0079] Network bandwidth is another constraint that can be problematic for large video files. For example, video content is often delivered over wireless networks (e.g., LTE, LTE Advanced, New Wireless (NR), Wi-Fi®, Bluetooth, or other wireless networks) and can constitute a significant portion of a consumer's internet traffic. Despite advancements in the amount of available bandwidth on wireless networks, it may still be desirable to reduce the amount of bandwidth used to deliver video content over these networks.

[0080] 圧縮されていないビデオコンテンツは、物理記憶用のかなりのメモリと送信用のかなりの帯域幅とを要する場合がある大きいファイルをもたらす可能性があるので、そのようなビデオコンテンツを圧縮し、次いで解凍するためにビデオコーディング技法が利用され得る。 [0080] Uncompressed video content can result in large files that may require considerable memory for physical storage and considerable bandwidth for transmission; therefore, video coding techniques may be used to compress and then decompress such video content.

[0081] ビデオコンテンツのサイズ、したがってビデオコンテンツを記憶するために要するストレージの量、およびビデオコンテンツを配信する際に要する帯域幅の量を削減するために、とりわけ、HEVC、AVC、MPEG、VVCなどの特定のビデオコーディング規格に従って、様々なビデオコーディング技法が実行され得る。ビデオコーディングは、しばしば、ビデオ画像またはシーケンス内に存在する冗長構成を利用するインター予測またはイントラ予測などの予測方法を使用する。ビデオコーディング技法の共通の目標は、ビデオ品質の劣化を回避または最小化しながら、より低いビットレートを使用する形式にビデオデータを圧縮することである。ビデオサービスに対する需要が高まり、新しいビデオサービスが利用可能になるにつれて、より良いコーディング効率、性能、およびレート制御を有するコーディング技法が必要とされる。 [0081] To reduce the size of video content, and therefore the amount of storage required to store it, and the amount of bandwidth required to deliver it, various video coding techniques can be employed, particularly according to specific video coding standards such as HEVC, AVC, MPEG, and VVC. Video coding often uses prediction methods such as inter-prediction or intra-prediction, which utilize redundant configurations present in video images or sequences. A common goal of video coding techniques is to compress video data into a format that uses a lower bitrate while avoiding or minimizing degradation of video quality. As the demand for video services increases and new video services become available, coding techniques with better coding efficiency, performance, and rate control are needed.

[0082] 概して、符号化デバイスは、符号化ビデオビットストリームを生成するためにビデオコーディング規格に従ってビデオデータを符号化する。いくつかの例では、符号化ビデオビットストリーム(または「ビデオビットストリーム」または「ビットストリーム」)は、一連の1つまたは複数のコード化ビデオシーケンスである。符号化デバイスは、各ピクチャを複数のスライスに区分化することによってピクチャのコード化表現を生成することができる。スライスは、スライス内の情報が、同じピクチャ内の他のスライスからのデータへの依存関係なしにコード化されるように、他のスライスから独立している。スライスは、独立しているスライスセグメントを含む1つまたは複数のスライスセグメントと、存在する場合、前のスライスセグメントに依存する1つまたは複数の依存しているスライスセグメントとを含む。HEVCでは、スライスは、ルーマサンプルおよびクロマサンプルのコーディングツリーブロック(CTB)に区分化される。ルーマサンプルのCTBおよびクロマサンプルの1つまたは複数のCTBは、サンプル用のシンタックスとともに、コーディングツリーユニット(CTU)と呼ばれる。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)と呼ばれる場合もある。CTUは、HEVC符号化のための基本処理単位である。CTUは、様々なサイズの複数のコーディングユニット(CU)に分割され得る。CUは、コーディングブロック(CB)と呼ばれるルーマおよびクロマのサンプル配列を含んでいる。 [0082] Generally, encoding devices encode video data according to a video coding standard to produce an encoded video bitstream. In some examples, an encoded video bitstream (or “video bitstream” or “bitstream”) is a series of one or more encoded video sequences. An encoding device can produce an encoded representation of a picture by dividing each picture into multiple slices. A slice is independent of other slices so that the information within the slice is encoded without dependencies on data from other slices within the same picture. A slice includes one or more slice segments containing independent slice segments and one or more dependent slice segments that, if present, depend on previous slice segments. In HEVC, a slice is divided into coding tree blocks (CTBs) of lumane samples and chromane samples. One or more CTBs of lumane samples and chromane samples, along with the syntax for the samples, are called coding tree units (CTUs). CTUs are sometimes called “tree blocks” or “maximum coding units” (LCUs). The CTU is the basic processing unit for HEVC coding. A CTU can be divided into multiple coding units (CUs) of varying sizes. Each CU contains sample sequences of lumens and chromens, called coding blocks (CBs).

[0083] ルーマCBおよびクロマCBは、予測ブロック(PB)にさらに分割され得る。PBは、(利用可能なとき、または使用のために有効にされたとき)インター予測またはイントラブロックコピー(IBC)予測のために同じ動きパラメータを使用するルーマ成分またはクロマ成分のサンプルのブロックである。ルーマPBおよび1つまたは複数のクロマPBは、関連するシンタックスとともに、予測ユニット(PU)を形成する。インター予測の場合、動きパラメータのセット(たとえば、1つまたは複数の動きベクトル、参照インデックスなど)は、PUごとにビットストリーム内でシグナリングされ、ルーマPBおよび1つまたは複数のクロマPBのインター予測のために使用される。動きパラメータは動き情報と呼ばれる場合もある。CBはまた、1つまたは複数の変換ブロック(TB)に区分化され得る。TBは、予測残差信号をコーディングするために残差変換(たとえば、場合によっては、同じ2次元変換)が適用される色成分のサンプルの正方形ブロックを表す。変換ユニット(TU)は、ルーマサンプルおよびクロマサンプルのTBと、対応するシンタックス要素とを表す。変換コーディングが以下でより詳細に記載される。 [0083] The lumana CB and chroma CB may be further divided into prediction blocks (PBs). A PB is a block of samples of a lumana or chroma component that uses the same motion parameters for inter-prediction or intra-block copy (IBC) prediction (when available or enabled for use). The lumana PB and one or more chroma PBs, along with the associated syntax, form a prediction unit (PU). For inter-prediction, a set of motion parameters (e.g., one or more motion vectors, reference indices, etc.) is signaled in the bitstream for each PU and used for inter-prediction of the lumana PB and one or more chroma PBs. The motion parameters are sometimes called motion information. The CB may also be divided into one or more transformation blocks (TBs). A TB represents a square block of samples of a color component to which a residual transformation (e.g., possibly the same two-dimensional transformation) is applied to code the prediction residual signal. A conversion unit (TU) represents the TB of the lumens and chroma samples and their corresponding syntax elements. The conversion coding is described in more detail below.

[0084] HEVC規格によれば、変換はTUを使用して実行される場合がある。TUは、所与のCU内のPUのサイズに基づいてサイズ決定される場合がある。TUは、PUと同じサイズであるか、またはPUよりも小さい場合がある。いくつかの例では、CUに対応する残差サンプルは、残差4分木(RQT)として知られる4分木構造を使用して、より小さいユニットに再分割される場合がある。RQTのリーフノードはTUに対応することができる。TUに関連付けられたピクセル差分値は、変換係数を生成するために変換される場合がある。変換係数は、次いで、符号化デバイスによって量子化される場合がある。 [0084] According to the HEVC standard, the conversion may be performed using a TU. The TU may be sized based on the size of the PU within a given CU. The TU may be the same size as the PU or smaller. In some examples, the residual samples corresponding to the CU may be subdivided into smaller units using a quadtree structure known as a residual quadtree (RQT). The leaf nodes of the RQT may correspond to the TU. The pixel difference values associated with the TU may be converted to generate conversion coefficients. The conversion coefficients may then be quantized by the encoding device.

[0085] ビデオデータのピクチャがCUに区分化されると、符号化デバイスは予測モードを使用して各PUを予測する。予測ユニットまたは予測ブロックは、次いで、(以下に記載される)残差を得るために元のビデオデータから減算される。CUごとに、シンタックスデータを使用してビットストリーム内で予測モードがシグナリングされる場合がある。予測モードは、イントラ予測(もしくはイントラピクチャ予測)またはインター予測(もしくはインターピクチャ予測)を含む場合がある。イントラ予測は、ピクチャ内の空間的に隣接するサンプル間の相関関係を利用する。たとえば、イントラ予測を使用して、各PUは、たとえば、PUに関する平均値を見つけるためのDC予測、平坦面をPUに適合させるための平面予測、隣接データから外挿するための方向予測、または任意の他の適切なタイプの予測を使用して、同じピクチャ内の隣接する画像データから予測される。インター予測は、画像サンプルのブロックについての動き補償予測を導出するためにピクチャ間の時間的な相関関係を使用する。たとえば、インター予測を使用して、各PUは、(出力順序で現在ピクチャの前または後の)1つまたは複数の参照ピクチャ内の画像データからの動き補償予測を使用して予測される。インターピクチャ予測を使用してピクチャエリアをコード化するべきか、イントラピクチャ予測を使用してピクチャエリアをコード化するべきかの決定は、たとえば、CUレベルにおいて行われる場合がある。 [0085] Once the picture of the video data is segmented into CUs, the encoding device uses a prediction mode to predict each PU. The prediction unit or prediction block is then subtracted from the original video data to obtain the residual (described below). For each CU, the prediction mode may be signaled in the bitstream using syntax data. The prediction mode may include intra-prediction (or intra-picture prediction) or inter-prediction (or inter-picture prediction). Intra-prediction takes advantage of the correlation between spatially adjacent samples within a picture. For example, using intra-prediction, each PU is predicted from adjacent image data within the same picture using, for example, a DC prediction to find the mean value about the PU, a plane prediction to fit a plane to the PU, a direction prediction to extrapolate from adjacent data, or any other appropriate type of prediction. Inter-prediction uses the temporal correlation between pictures to derive motion-compensated predictions about blocks of image samples. For example, using inter-picture prediction, each PU is predicted using motion-compensated predictions from image data in one or more reference pictures (before or after the current picture in output order). The decision of whether to encode a picture area using inter-picture prediction or intra-picture prediction may be made, for example, at the CU level.

[0086] イントラ予測および/またはインター予測を使用して予測を実行した後に、符号化デバイスは、変換と量子化とを実行することができる。たとえば、予測の後に、符号化デバイスは、PUに対応する残差値を計算することができる。残差値は、コーディングされているピクセルの現在ブロック(PU)と、現在ブロックを予測するために使用される予測ブロック(たとえば、現在ブロックの予測されたバージョン)との間のピクセル差分値を備えることができる。たとえば、予測ブロックを生成した(たとえば、インター予測またはイントラ予測を発行した)後に、符号化デバイスは、現在ブロックから予測ユニットによって生成された予測ブロックを減算することによって残差ブロックを生成することができる。残差ブロックは、現在ブロックのピクセル値と予測ブロックのピクセル値との間の差分を定量化するピクセル差分値のセットを含む。いくつかの例では、残差ブロックは、2次元ブロックフォーマット(たとえば、ピクセル値の2次元行列または2次元配列)で表される場合がある。そのような例では、残差ブロックはピクセル値の2次元表現である。 [0086] After performing predictions using intra-prediction and/or inter-prediction, the coding device can perform transformations and quantization. For example, after prediction, the coding device can calculate residual values corresponding to the PU. The residual values may comprise pixel difference values between the current block (PU) of the pixels being coded and the prediction block used to predict the current block (e.g., the predicted version of the current block). For example, after generating a prediction block (e.g., issuing an inter-prediction or intra-prediction), the coding device can generate a residual block by subtracting the prediction block generated by the prediction unit from the current block. The residual block contains a set of pixel difference values that quantify the difference between the pixel values of the current block and the pixel values of the prediction block. In some examples, the residual block may be represented in a two-dimensional block format (e.g., a two-dimensional matrix or array of pixel values). In such examples, the residual block is a two-dimensional representation of the pixel values.

[0087] 予測が実行された後に残存している場合があるいずれの残差データも、離散コサイン変換、離散サイン変換、整数変換、ウェーブレット変換、他の適切な変換関数、またはそれらの任意の組合せに基づく場合があるブロック変換を使用して変換される。場合によっては、1つまたは複数のブロック変換(たとえば、サイズ32×32、16×16、8×8、4×4、または他の適切なサイズ)が各CUにおける残差データに適用される場合がある。いくつかの実施形態では、TUは、符号化デバイスによって実装される変換プロセスおよび量子化プロセスに使用される場合がある。1つまたは複数のPUを有する所与のCUはまた、1つまたは複数のTUを含む場合がある。以下でさらに詳細に記載されるように、残差値は、ブロック変換を使用して変換係数に変換される場合があり、次いで、エントロピーコーディング用のシリアル化変換係数を生成するために、TUを使用して量子化および走査される場合がある。 [0087] Any residual data that may remain after the prediction has been performed is transformed using block transforms, which may be based on discrete cosine transforms, discrete sine transforms, integer transforms, wavelet transforms, other suitable transform functions, or any combination thereof. In some cases, one or more block transforms (e.g., of sizes 32x32, 16x16, 8x8, 4x4, or other suitable sizes) may be applied to the residual data in each CU. In some embodiments, TUs may be used for the transform and quantization processes implemented by the coding device. A given CU having one or more PUs may also include one or more TUs. As will be described in more detail below, the residual values may be transformed into transform coefficients using block transforms, and then quantized and scanned using TUs to generate serialized transform coefficients for entropy coding.

[0088] 符号化デバイスは変換係数の量子化を実行することができる。量子化は、係数を表すために使用されるデータの量を低減するために変換係数を量子化することによってさらなる圧縮を提供する。たとえば、量子化は、係数の一部または全部に関連付けられたビット深度を低減することができる。一例では、nビット値を有する係数は、量子化中にmビット値に切り捨てられる場合があり、nはmよりも大きい。 [0088] The encoding device can perform quantization of the conversion coefficients. Quantization provides further compression by quantizing the conversion coefficients to reduce the amount of data used to represent the coefficients. For example, quantization can reduce the bit depth associated with some or all of the coefficients. In one example, a coefficient with an n-bit value may be truncated to an m-bit value during quantization, where n is greater than m.

[0089] 量子化が実行されると、コード化ビデオビットストリームは、量子化変換係数と、予測情報(たとえば、予測モード、動きベクトル、ブロックベクトルなど)と、区分化情報と、他のシンタックスデータなどの任意の他の適切なデータとを含む。コード化ビデオビットストリームの異なる要素は、次いで、符号化デバイスによってエントロピー符号化される場合がある。いくつかの例では、符号化デバイスは、量子化変換係数を走査してエントロピー符号化され得るシリアル化ベクトルを生成するために、あらかじめ定義された走査順序を利用することができる。いくつかの例では、符号化デバイスは適応型走査を実行することができる。ベクトル(たとえば、1次元ベクトル)を形成するために量子化変換係数を走査した後に、符号化デバイスは、ベクトルをエントロピー符号化することができる。たとえば、符号化デバイスは、コンテキスト適応型可変長コーディング、コンテキスト適応型バイナリ算術コーディング、シンタックスベースコンテキスト適応型バイナリ算術コーディング、確率間隔区分化エントロピーコーディング、または別の適切なエントロピー符号化技法を使用することができる。 [0089] Once quantization is performed, the coded video bitstream includes quantization transformation coefficients, prediction information (e.g., prediction mode, motion vector, block vector, etc.), segmentation information, and any other appropriate data such as other syntax data. Different elements of the coded video bitstream may then be entropy coded by the coding device. In some examples, the coding device can utilize a predefined scan order to scan the quantization transformation coefficients to generate a serialized vector that can be entropy coded. In some examples, the coding device can perform adaptive scanning. After scanning the quantization transformation coefficients to form a vector (e.g., a one-dimensional vector), the coding device can entropy coded the vector. For example, the coding device can use context-adaptive variable-length coding, context-adaptive binary arithmetic coding, syntax-based context-adaptive binary arithmetic coding, probability-interval segmentation entropy coding, or another appropriate entropy coding technique.

[0090] 符号化デバイスは、符号化ビデオビットストリームを記憶することができ、および/または復号デバイスを含むことができる受信デバイスに通信リンクを介して符号化ビデオビットストリームデータを送ることができる。符号化デバイスは、(たとえば、エントロピーデコーダを使用して)エントロピー復号し、符号化ビデオデータを構成する1つまたは複数のコード化ビデオシーケンスの要素を抽出することにより、符号化ビデオビットストリームデータを復号することができる。復号デバイスは、次いで、符号化ビデオビットストリームデータを再スケーリングし、符号化ビデオビットストリームデータに対して逆変換を実行することができる。次いで、残差データが復号デバイスの予測段階に渡される。復号デバイスは、次いで、イントラ予測、インター予測、IBC、および/または他のタイプの予測を使用してピクセルのブロック(たとえば、PU)を予測する。いくつかの例では、予測は逆変換の出力(残差データ)に加算される。復号デバイスは、ビデオ宛先デバイスに復号ビデオを出力することができ、ビデオ宛先デバイスは、コンテンツの消費者に復号ビデオデータを表示するためのディスプレイまたは他の出力デバイスを含む場合がある。 [0090] The encoding device can store the encoded video bitstream and/or send the encoded video bitstream data over a communication link to a receiving device which may include a decoding device. The encoding device can decode the encoded video bitstream data by entropy decoding (e.g., using an entropy decoder) and extracting elements of one or more encoded video sequences that make up the encoded video data. The decoding device can then rescale the encoded video bitstream data and perform an inverse transform on the encoded video bitstream data. The residual data is then passed to the prediction stage of the decoding device. The decoding device then predicts blocks of pixels (e.g., PU) using intra-prediction, inter-prediction, IBC, and/or other types of prediction. In some examples, the predictions are added to the output of the inverse transform (residual data). The decoding device can output the decoded video to a video destination device which may include a display or other output device for displaying the decoded video data to a consumer of the content.

[0091] 様々なビデオコーディング規格(たとえば、上述されたHEVCビデオコーディング技法)によって定義されたビデオコーディングのシステムおよび技法は、未加工のビデオコンテンツ内の情報の大部分を保持することができる場合があり、信号処理および情報理論の概念に基づいてアプリオリに定義される場合がある。しかしながら、場合によっては、機械学習(ML)ベースの画像および/またはビデオシステムは、深層学習ベースのエンドツーエンドビデオコーディング(DLEC)システムなどの、非MLベースの画像およびビデオコーディングシステムと比べて利益を提供することができる。上述されたように、多くの深層学習ベースのシステムは、オートエンコーダサブネットワーク(エンコーダサブネットワーク)、およびエントロピーコーディングに使用される量子化ラテント上で確率モデルを学習することに関与する第2のサブネットワークの組合せとして設計される。そのようなアーキテクチャは、変換、量子化モジュール(エンコーダサブネットワーク)およびエントロピーモデリングサブネットワークモジュールの組合せとして見ることができる。 [0091] Video coding systems and techniques, as defined by various video coding standards (e.g., the HEVC video coding technique described above), may be able to retain a large portion of the information in the raw video content and may be defined a priori based on concepts of signal processing and information theory. However, in some cases, machine learning (ML)-based image and/or video systems can offer advantages over non-ML-based image and video coding systems, such as deep learning-based end-to-end video coding (DLEC) systems. As described above, many deep learning-based systems are designed as a combination of an autoencoder subnetwork (encoder subnetwork) and a second subnetwork involved in learning a probabilistic model on a quantization latent used for entropy coding. Such architectures can be seen as a combination of a transform, quantization module (encoder subnetwork) and an entropy modeling subnetwork module.

[0092] 図4は、深層学習ベースのシステム410を使用してビデオの符号化および復号を実行するように構成されたデバイス402を含むシステム400を描写する。デバイス402は、カメラ407および記憶媒体414(たとえば、データストレージデバイス)に結合される。いくつかの実装形態では、カメラ407は、深層学習ベースのシステム410によって符号化するためにプロセッサ404に画像データ408(たとえば、ビデオデータストリーム)を提供するように構成される。いくつかの実装形態では、デバイス402は、複数のカメラ(たとえば、デュアルカメラシステム、3つのカメラ、または他の数のカメラ)に結合され得、および/またはそれらを含むことができる。場合によっては、デバイス402は、マイクロフォンならびに/または他の入力デバイス(たとえば、キーボード、マウス、タッチスクリーンおよび/もしくはタッチパッドなどのタッチ入力デバイス、ならびに/または他の入力デバイス)に結合され得る。いくつかの例では、カメラ407、記憶媒体414、マイクロフォン、および/または他の入力デバイスは、デバイス402の一部であり得る。 [0092] Figure 4 depicts a system 400 including a device 402 configured to perform video encoding and decoding using a deep learning-based system 410. Device 402 is coupled to a camera 407 and a storage medium 414 (e.g., a data storage device). In some implementations, the camera 407 is configured to provide image data 408 (e.g., a video data stream) to a processor 404 for encoding by the deep learning-based system 410. In some implementations, device 402 may be coupled to and/or include multiple cameras (e.g., a dual-camera system, three cameras, or any other number of cameras). In some cases, device 402 may be coupled to a microphone and/or other input devices (e.g., touch input devices such as a keyboard, mouse, touchscreen and/or touchpad, and/or other input devices). In some examples, the camera 407, storage medium 414, microphone, and/or other input devices may be part of device 402.

[0093] デバイス402はまた、1つもしくは複数のワイヤレスネットワーク、1つもしくは複数の有線ネットワーク、またはそれらの組合せなどの伝送媒体418を介して、第2のデバイス490に結合される。たとえば、伝送媒体418は、ワイヤレスネットワーク、有線ネットワーク、または有線ネットワークとワイヤレスネットワークの組合せによって提供されるチャネルを含むことができる。伝送媒体418は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースネットワークの一部を形成することができる。伝送媒体418は、ルータ、スイッチ、基地局、またはソースデバイスから受信デバイスへの通信を容易にするために有用であり得る任意の他の機器を含む場合がある。ワイヤレスネットワークは、任意のワイヤレスインターフェースまたはワイヤレスインターフェースの組合せを含む場合があり、任意の適切なワイヤレスネットワーク(たとえば、インターネットまたは他のワイドエリアネットワーク、パケットベースネットワーク、WiFi、無線周波数(RF)、UWB、WiFi-Direct、セルラー、ロングタームエボリューション(LTE)、WiMax(登録商標)など)を含む場合がある。有線ネットワークは、任意の有線インターフェース(たとえば、ファイバ、イーサネット(登録商標)、電力線イーサネット、同軸ケーブルを介したイーサネット、デジタル信号線(DSL)など)を含む場合がある。有線および/またはワイヤレスのネットワークは、基地局、ルータ、アクセスポイント、ブリッジ、ゲートウェイ、スイッチなどの様々な機器を使用して実装される場合がある。符号化ビデオビットストリームデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、受信デバイスに送信される場合がある。 [0093] Device 402 is also coupled to a second device 490 via a transmission medium 418, such as one or more wireless networks, one or more wired networks, or a combination thereof. For example, the transmission medium 418 may include channels provided by a wireless network, a wired network, or a combination of wired and wireless networks. The transmission medium 418 may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. The transmission medium 418 may include routers, switches, base stations, or any other equipment that may be useful to facilitate communication from a source device to a receiving device. The wireless network may include any wireless interface or combination of wireless interfaces, and may include any suitable wireless network (e.g., the Internet or other wide area networks, packet-based networks, Wi-Fi, radio frequency (RF), UWB, Wi-Fi-Direct, cellular, Long-Term Evolution (LTE), WiMax®, etc.). A wired network may include any wired interface (e.g., fiber optic, Ethernet®, power line Ethernet, Ethernet over coaxial cable, digital signaling line (DSL), etc.). Wired and/or wireless networks may be implemented using various devices such as base stations, routers, access points, bridges, gateways, and switches. Encoded video bitstream data may be modulated according to communication standards such as wireless communication protocols and transmitted to a receiving device.

[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に結合される。 [0094] Device 402 includes one or more processors 404 (referred to herein as “processors”) coupled to memory 406, a first interface (“I/F1”) 412, and a second interface (“I/F2”) 416. The processors 404 are configured to receive image data 408 from the camera 407, from memory 406, and/or from the storage medium 414. The processors 404 are coupled to the storage medium 414 via the first interface 412 (e.g., via a memory bus) and to the transmission medium 418 via the second interface 416 (e.g., a network interface device, a wireless transceiver and antenna, one or more other network interface devices, or a combination thereof).

[0095] プロセッサ404は深層学習ベースのシステム410を含む。深層学習ベースのシステム410は、エンコーダ部分462とデコーダ部分466とを含む。いくつかの実装形態では、深層学習ベースのシステム410は、1つまたは複数のオートエンコーダを含むことができる。エンコーダ部分462は、入力データ470を受け取り、入力データ470に少なくとも部分的に基づいて出力データ474を生成するために入力データ470を処理するように構成される。 [0095] The processor 404 includes a deep learning-based system 410. The deep learning-based system 410 includes an encoder section 462 and a decoder section 466. In some implementations, the deep learning-based system 410 may include one or more autoencoders. The encoder section 462 is configured to receive input data 470 and process the input data 470 to generate output data 474 based at least partially on the input data 470.

[0096] いくつかの実装形態では、深層学習ベースのシステム410のエンコーダ部分462は、出力データ474を生成するために入力データ470の不可逆圧縮を実行するように構成され、その結果、出力データ474は入力データ470よりも少ないビットを有する。エンコーダ部分462は、任意の前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用せずに入力データ470(たとえば、画像またはビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータのみを使用し、前に復元されたフレームのいかなるデータも使用せずに圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Iフレーム)と呼ばれ得る。いくつかの例では、Iフレームは、旧来のビデオコーディング技法を使用して(たとえば、HEVC、VVC、MPEG-4、または他のビデオコーディング規格に従って)生成され得る。そのような例では、プロセッサ404は、HEVC規格に関して上述されたものなどの、ブロックベースのイントラ予測を実行するように構成されたビデオコーディングデバイス(たとえば、符号化デバイス)を含むか、またはそれと結合される場合がある。そのような例では、深層学習ベースのシステム410は、プロセッサ404から除外される場合がある。 [0096] In some implementations, the encoder portion 462 of the deep learning-based system 410 is configured to perform lossy compression of the input data 470 to produce output data 474, so that the output data 474 has fewer bits than the input data 470. The encoder portion 462 may be trained to compress the input data 470 (e.g., image or video frame) without using motion compensation based on any previous representation (e.g., one or more previously restored frames). For example, the encoder portion 462 may compress a video frame using only the video data from that video frame and without using any data from previously restored frames. The video frame processed by the encoder portion 462 may be referred to herein as an intra-prediction frame (I-frame). In some examples, I-frames may be generated using legacy video coding techniques (e.g., HEVC, VVC, MPEG-4, or according to other video coding standards). In such examples, the processor 404 may include, or be coupled with, a video coding device (e.g., an encoding device) configured to perform block-based intra-prediction, such as those described above with respect to the HEVC standard. In such examples, the deep learning-based system 410 may be excluded from the processor 404.

[0097] いくつかの実装形態では、深層学習ベースのシステム410のエンコーダ部分462は、前の表現(たとえば、1つまたは複数の前に復元されたフレーム)に基づいて、動き補償を使用して入力データ470(たとえば、ビデオフレーム)を圧縮するように訓練され得る。たとえば、エンコーダ部分462は、ビデオフレームを、そのビデオフレームからのビデオデータを使用し、前に復元されたフレームのデータを使用して圧縮することができる。エンコーダ部分462によって処理されるビデオフレームは、本明細書ではイントラ予測フレーム(Pフレーム)と呼ばれ得る。動き補償は、前に復元されたフレームからのピクセルが残差情報とともに現在フレーム内の新しい位置にどのように移動するかを記述することにより、現在フレームのデータを決定するために使用され得る。 [0097] In some implementations, the encoder portion 462 of the deep learning-based system 410 may be trained to compress input data 470 (e.g., video frames) using motion compensation based on previous representations (e.g., one or more previously reconstructed frames). For example, the encoder portion 462 may compress a video frame using video data from that video frame and data from previously reconstructed frames. The video frame processed by the encoder portion 462 may be referred to herein as an intra-predicted frame (P-frame). Motion compensation may be used to determine the data of the current frame by describing how pixels from previously reconstructed frames move to new positions in the current frame along with residual information.

[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に示されている。 [0098] As illustrated, the encoder portion 462 of the deep learning-based system 410 may include a neural network 463 and a quantizer 464. The neural network 463 may include one or more convolutional neural networks (CNNs), one or more fully connected neural networks, one or more gated recurrent units (GRUs), one or more long short-term memory (LSTM) networks, one or more ConvRNNs, one or more ConvGRUs, one or more ConvLSTMs, one or more GANs, any combination thereof, and/or other types of neural network architectures that generate intermediate data 472. The intermediate data 472 is the input to the quantizer 464. Examples of components that may be included in the encoder portion 462 are shown in Figures 6 to 10.

[0099] 量子化器464は、出力データ474を生成するために中間データ472の量子化と、場合によってはエントロピーコーディングとを実行するように構成される。出力データ474は、量子化(および場合によってはエントロピーコード化)データを含むことができる。量子化器464によって実行される量子化演算は、中間データ472から、量子化コード(または深層学習ベースのシステム410によって生成された量子化コードを表すデータ)の生成をもたらすことができる。量子化コード(または量子化コードを表すデータ)はまた、(zと表記された)ラテントコードまたはラテントと呼ばれ得る。ラテントに適用されるエントロピーモデルは、本明細書では「プライア」と呼ばれ得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、既存のビデオコーディング規格に従ってビデオデータを符号化および/または復号するときに実行される既存の量子化およびエントロピーコーディング演算を使用して実行され得る。いくつかの例では、量子化および/またはエントロピーコーディング演算は、深層学習ベースのシステム410によって行われ得る。1つの例示的な例では、深層学習ベースのシステム410は、教師あり訓練を使用して訓練され得、訓練中に残差データが入力として使用され、量子化コードおよびエントロピーコードが既知の出力(ラベル)として使用される。 [0099] The quantizer 464 is configured to perform quantization and, optionally, entropy coding of intermediate data 472 to generate output data 474. The output data 474 may include quantized (and optionally entropy-coded) data. The quantization operation performed by the quantizer 464 can result in the generation of a quantized code (or data representing a quantized code generated by a deep learning-based system 410) from the intermediate data 472. The quantized code (or data representing a quantized code) may also be called a laten code or laten (denoted as z). The entropy model applied to the laten may be called a “prior” in this specification. In some examples, the quantization and/or entropy coding operation may be performed using existing quantization and entropy coding operations performed when encoding and/or decoding video data according to existing video coding standards. In some examples, the quantization and/or entropy coding operation may be performed by a deep learning-based system 410. In one exemplary example, a deep learning-based system 410 may be trained using supervised training, where residual data is used as input during training, and quantization codes and entropy codes are used as known outputs (labels).

[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に示されている。 [0100] The decoder portion 466 of the deep learning-based system 410 is configured to receive output data 474 (for example, directly from the quantizer 464 and/or from the storage medium 414). The decoder portion 466 can process the output data 474 to generate a representation 476 of the input data 470 based at least partially on the output data 474. In some examples, the decoder portion 466 of the deep learning-based system 410 may include a neural network 468 that may include one or more CNNs, one or more fully connected neural networks, one or more GRUs, one or more long short-term memory (LSTM) networks, one or more ConvRNNs, one or more ConvGRUs, one or more ConvLSTMs, one or more GANs, any combination thereof, and/or other types of neural network architectures. Examples of components that may be included in the decoder portion 466 are shown in Figures 6 to 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を処理することができる。 [0101] The processor 404 is configured to send output data 474 to at least one of the transmission medium 418 or the storage medium 414. For example, the output data 474 may be stored in the storage medium 414 for later retrieval and decoding (or restoration) by the decoder portion 466 to generate a representation 476 of the input data 470 as restoration data. The restoration data may be used for various purposes, such as for playback of the video data encoded/compressed to generate the output data 474. In some implementations, the output data 474 may be decoded in another decoder device matching the decoder portion 466 (for example, in device 402, in a second device 490, or in another device) to generate a representation 476 of the input data 470 as restoration data. For example, the second device 490 may contain a decoder matching (or substantially matching) the decoder portion 466, and the output data 474 may be sent to the second device 490 via the transmission medium 418. The second device 490 can process the output data 474 to generate a representation 476 of the input data 470 as reconstructed data.

[0102] システム400の構成要素は、本明細書に記載された様々な動作を実行するために、1つもしくは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。 [0102] The components of System 400 may include, and/or be implemented using, one or more programmable electronic circuits (e.g., microprocessors, graphics processing units (GPUs), digital signal processors (DSPs), central processing units (CPUs), and/or other suitable electronic circuits) to perform the various operations described herein, and may also include, and/or be implemented using, computer software, firmware, or any combination thereof.

[0103] システム400はいくつかの構成要素を含むように示されているが、システム400が図4に示された構成要素よりも多いかまたは少ない構成要素を含むことができることを当業者は諒解されよう。たとえば、システム400はまた、入力デバイスと出力デバイス(図示せず)とを含むコンピューティングデバイスを含むことができるか、またはその一部であり得る。いくつかの実装形態では、システム400はまた、1つもしくは複数のメモリデバイス(たとえば、1つもしくは複数のランダムアクセスメモリ(RAM)構成要素、読取り専用メモリ(ROM)構成要素、キャッシュメモリ構成要素、バッファ構成要素、データベース構成要素、および/もしくは他のメモリデバイス)、1つもしくは複数のメモリデバイスと通信している、および/またはそれらに電気的に接続された1つもしくは複数の処理デバイス(たとえば、1つもしくは複数のCPU、GPU、および/もしくは他の処理デバイス)、ワイヤレス通信を実行するための(たとえば、ワイヤレスインターフェースごとに1つもしくは複数のトランシーバとベースバンドプロセッサとを含む)1つもしくは複数のワイヤレスインターフェース、1つもしくは複数のハードウェア接続を介した通信を実行するための1つもしくは複数の有線インターフェース(たとえば、ユニバーサルシリアルバス(USB)入力などのシリアルインターフェース、ライトニングコネクタ、および/もしくは他の有線インターフェース)、ならびに/または図4に示されていない他の構成要素を含むコンピューティングデバイスを含む場合があるか、もしくはその一部であり得る。 [0103] Although the system 400 is shown to include several components, those skilled in the art will understand that the system 400 may include more or fewer components than those shown in Figure 4. For example, the system 400 may also include, or be part of, a computing device including input devices and output devices (not shown). In some implementations, System 400 may also include, or be part of, a computing device including one or more memory devices (e.g., one or more random access memory (RAM) components, read-only memory (ROM) components, cache memory components, buffer components, database components, and/or other memory devices), one or more processing devices (e.g., one or more CPUs, GPUs, and/or other processing devices) communicating with and/or electrically connected to one or more memory devices, one or more wireless interfaces for performing wireless communication (e.g., including one or more transceivers and baseband processors per wireless interface), one or more wired interfaces for performing communication via one or more hardware connections (e.g., serial interfaces such as Universal Serial Bus (USB) inputs, Lightning connectors, and/or other wired interfaces), and/or other components not shown in Figure 4.

[0104] いくつかの実装形態では、システム400は、コンピューティングデバイスによって局所的に実装され、および/またはコンピューティングデバイスに含まれ得る。たとえば、コンピューティングデバイスは、モバイルデバイス、パーソナルコンピュータ、タブレットコンピュータ、仮想現実(VR)デバイス(たとえば、ヘッドマウントディスプレイ(HMD)もしくは他のVRデバイス)、拡張現実(AR)デバイス(たとえば、HMD、ARグラス、もしくは他のARデバイス)、ウェアラブルデバイス、(たとえば、サービスとしてのソフトウェア(SaaS)システムもしくは他のサーバベースシステム内の)サーバ、テレビジョン、および/または本明細書に記載された技法を実行するリソース能力を有する任意の他のコンピューティングデバイスを含むことができる。 [0104] In some implementations, the system 400 may be locally implemented by and/or included in a computing device. For example, the computing device may include a mobile device, a personal computer, a tablet computer, a virtual reality (VR) device (e.g., a head-mounted display (HMD) or other VR device), an augmented reality (AR) device (e.g., an HMD, AR glasses, or other AR device), a wearable device, a server (e.g., in a Software as a Service (SaaS) system or other server-based system), a television, and/or any other computing device having the resource capacity to perform the techniques described herein.

[0105] 一例では、深層学習ベースのシステム410は、プロセッサ404に結合され、プロセッサ404によって実行可能な命令を記憶するように構成されたメモリ406と、アンテナおよびプロセッサ404に結合され、リモートデバイスに出力データ474を送信するように動作可能なワイヤレストランシーバとを含むポータブル電子デバイスに組み込まれ得る。 [0105] In one example, a deep learning-based system 410 may be incorporated into a portable electronic device that includes a memory 406 coupled to a processor 404 and configured to store instructions executable by the processor 404, and an antenna and a wireless transceiver coupled to the processor 404 and operable to transmit output data 474 to a remote device.

[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年に記載されており、それらの全体がすべての目的のために参照により本明細書に組み込まれている。 [0106] As described above, deep learning-based systems are typically designed to handle non-subsample input formats such as RGB or YUV4:4:4. Examples of image and video coding schemes targeting RGB input include J. Balle, D. Minnen, S. Singh, S. J. Hwang, N. Johnson, "Variational image compression with a scale hyperprior", ICLR, 2018 (referred to as "J. Balle Paper"), and D. Minnen, J. Balle, G. Toderici, “Joint Autoregressive and Hierarchical Priors for Learned Image Compression,” CVPR, 2018, is included herein by reference in its entirety for all purposes.

[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チャネルの統計特性は同様である)。 [0107] Figure 5 shows an example of a deep learning-based system 500. The g a subnetwork and g s subnetwork in the deep learning-based system in Figure 5 correspond to an encoder subnetwork (e.g., encoder portion 462) and a decoder subnetwork (e.g., decoder portion 466), respectively. The g a subnetwork and g s subnetwork in Figure 5 are designed for 3-channel RGB input, and all three R input channels, G input channels, and B input channels pass through and are processed by the same neural network layers (convolutional layers and generalized neural activity normalization (GDN) layers). The neural network layers may include a convolutional layer (including convolutional layer 510) that performs convolution operations and a GDN and/or inverse GDN (IGDN) nonlinear layer that implements local partition normalization. Local neural activity normalization is a type of transformation shown to be particularly suitable for image density modeling and compression. Deep learning-based systems (such as those shown in Figure 5) target input channels with similar statistical properties, such as RGB data (where the statistical properties of different R, G, and B channels are similar).

[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倍の大きさである。別の例では、コーデックは、とりわけ、クロミナンスおよびルミナンスに対してどのくらいのピクセルが符号化または復号されようとするかを決定することができる。 [0108] While many deep learning-based systems are designed to handle RGB inputs, most image and video coding systems use the YUV input format (e.g., the YUV4:2:0 input format, often). In the YUV format, the chrominance (U and V) channels can be subsampled relative to the luminance (Y) channel. Subsampling has minimal impact on visual quality (e.g., no significant or noticeable impact on visual quality). Subsampling formats include the YUV4:2:0 format, the YUV4:2:2 format, and/or other YUV formats. The correlation between channels is reduced in the YUV format, which may not be the case in other color formats (e.g., the RGB format). Furthermore, the statistics of the luminance (Y) channel and the chrominance (U and V) channels are different. For example, the U and V channels have less variability compared to the luminance channel, while in the RGB format, for example, the statistical properties of the R, G, and B channels are quite similar. A video codec is designed according to the characteristics of the input data (for example, a codec can encode and/or decode data according to the input format of the data). For example, if the chrominance channel of a frame is subsampled (for example, the chrominance channel has half the resolution compared to the luminance channel), when the codec predicts blocks of the frame for motion compensation, the luminance blocks will be twice as large in both width and height compared to the chrominance blocks. In another example, the codec can, among other things, determine how many pixels will be encoded or decoded for chrominance and luminance.

[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フレーム)である。 [0109] To support the YUV format (e.g., the YUV4:2:0 format), the deep learning-based architecture must be modified. For example, replacing RGB input data (which most deep learning-based systems are designed to process, as described above) with YUV4:4:4 input data (where all channels have the same dimensions) will degrade the performance of the deep learning-based system processing the input data due to the different statistical properties of the luminance (Y) channel and the chrominance (U and V) channels. As described above, the chrominance (U and V) channels are subsampled in some YUV formats, such as YUV4:2:0. For example, for content with the YUV4:2:0 format, the resolution of the U and V channels is half that of the Y channel (the U and V channels are one-quarter the size of the Y channel due to their half width and height). Such subsampling can make the input data incompatible with the input of the deep learning-based system. The input data is the information that the deep learning-based system is attempting to encode and/or decode (for example, a YUV frame containing three channels: a luminance (Y) channel and chrominance (U and V) channels).

[0110] いくつかのエンドツーエンドビデオコーディング深層学習ベースのシステムでは、オートエンコーダは、イントラフレーム、動きベクトル(たとえば、密な光フロー)、および元のフレームに対する動き補償されたフレームの残差をコーディングするために使用される。一例では、フローオートエンコーダを使用して、光フローとスケール空間を共同でコーディングすることを学ぶことができ、残差オートエンコーダは、すべてRGBドメイン内のワープ予測フレームと元のフレームの間の残差をコーディングする。 [0110] In some end-to-end video coding deep learning-based systems, autoencoders are used to code intraframes, motion vectors (e.g., dense optical flow), and residuals of motion-compensated frames relative to the original frame. For example, a flow autoencoder can be used to learn to code optical flow and scale space together, while a residual autoencoder codes the residuals between warp-predicted frames and the original frame, all within the RGB domain.

[0111] 上で述べたように、本明細書では、1つまたは複数のYUVフォーマット(たとえば、YUV4:2:0フォーマット)を効率的にサポートするMLベースのシステム(たとえば、1つまたは複数の深層学習ベースのアーキテクチャを含む)を提供するシステムおよび技法について説明する。深層学習ベースのアーキテクチャは、スタンドアロンフレーム(もしくは画像)および/または複数のフレームを含むビデオデータを符号化および/または復号できる。たとえば、MLベースのシステムは、現在のフレームのルーマ成分と以前に復元されたフレームのルーマ成分を入力として取得でき、これは、MLベースのシステムの以前のインスタンスによって復元され得る。MLベースのシステムは、現在および前のフレームのルーマ成分を処理して、現在のフレームのルーマ成分の動き情報(たとえば、光フロー情報などのフロー情報)を推定することができる。次に、現在のフレームのルーマ成分を使用して、MLベースのシステムは、現在のフレームの1つまたは複数のクロマ成分の動き推定(たとえば、光フロー情報などのフロー情報)を決定(たとえば、推定)できる。このような技法は、フレームのすべての成分に対して実行され得る。以下にさらなる詳細を説明する。 [0111] As stated above, this specification describes systems and techniques that provide ML-based systems (including, for example, one or more deep learning-based architectures) that efficiently support one or more YUV formats (e.g., YUV4:2:0 format). Deep learning-based architectures can encode and/or decode video data containing standalone frames (or images) and/or multiple frames. For example, an ML-based system can take the rumor components of the current frame and the rumor components of previously restored frames as input, which can be restored by previous instances of the ML-based system. The ML-based system can process the rumor components of the current and previous frames to estimate the motion information (e.g., flow information such as optical flow information) of the rumor components of the current frame. Then, using the rumor components of the current frame, the ML-based system can determine (e.g., estimate) the motion estimate (e.g., flow information such as optical flow information) of one or more chroma components of the current frame. Such techniques can be performed for all components of a frame. Further details are described below.

[0112] 図6は、ビデオコーディングを実行するように構成された深層学習ベースのシステム600のニューラルネットワークアーキテクチャの一例を示す図である。図6のニューラルネットワークアーキテクチャは、イントラ予測エンジン602と、インター予測エンジン610とを含む。イントラ予測エンジン602およびインター予測エンジン610は、図6に示すようにオートエンコーダ(たとえば、変分オートエンコーダ(VAE))を含み得るが、他の実装形態における他のタイプのニューラルネットワークアーキテクチャを含み得る。図示のように、イントラ予測エンジン602は、入力フレーム604のピクセル情報を処理して、入力フレーム604のラテント表現( [0112] Figure 6 shows an example of a neural network architecture for a deep learning-based system 600 configured to perform video coding. The neural network architecture in Figure 6 includes an intra-prediction engine 602 and an inter-prediction engine 610. The intra-prediction engine 602 and the inter-prediction engine 610 may include autoencoders (e.g., variational autoencoders (VAEs)) as shown in Figure 6, but may include other types of neural network architectures in other implementations. As shown, the intra-prediction engine 602 processes the pixel information of the input frame 604 to obtain a latent representation of the input frame 604 (

として示される)を生成する。入力フレーム604は、入力フレーム604の各ピクセルについて、ルーマ成分( It generates (shown as follows). For each pixel of the input frame 604, the luma component (

として示される)と2つのクロマ成分( (shown as) and two chromatic components ( )

および and

として示される)とを含む。ラテント表現は、ビットストリームと呼ぶこともでき、これは、入力フレーム604のコーディングされたバージョンであるビットの数を含む。ラテント表現 (As shown) and includes. The latent representation can also be called a bitstream, which contains the number of bits that are the coded version of the input frame 604. Latent representation

(または別のデバイスから受信したラテント表現/ビットストリーム)に基づいて、イントラ予測エンジン602のデコーダサブネットワークは、復元されたフレーム606(成分上の「ハット」が復元された値を示す、 Based on (or a latent representation/bitstream received from another device), the decoder subnetwork of the intra-prediction engine 602 reconstructs the frame 606 (where the "hat" on the component indicates the reconstructed value).

,

,

として示される)を生成することができ、これは、入力フレーム604の復元されたバージョンである。 This can generate (shown as shown), which is the restored version of input frame 604.

[0113] インター予測エンジン610は、フローエンジン618、残差エンジン620、およびワーピングエンジン622を含む。図示のように、フローエンジン618は、現在のフレーム614(時間tにおける)のルーマ成分( [0113] The interpretation engine 610 includes a flow engine 618, a residual engine 620, and a warping engine 622. As shown in the figure, the flow engine 618 calculates the lumen component of the current frame 614 (at time t) (

として示される)と、前のフレーム615(前の時間t-1における)の復元されたルーマ成分( (shown as) and the restored luma component of the previous frame 615 (at the previous time t-1) (

として示される)を入力として取得する。ルーマ成分 The input is obtained as (as shown). Ruma component

とルーマ成分 and luma components

を使用すると、フローエンジン618は、現在のフレーム614のルーマ成分 Using this, the flow engine 618 generates the rumor component of the current frame 614.

の動き情報(たとえば、フロー情報)のラテント表現( The latent representation of motion information (for example, flow information) (

として示される)を生成する。動き情報は、光フロー情報(たとえば、複数の動きベクトルまたは変位ベクトル、場合によってはピクセルまたはサンプルごとのスケール成分)を含み得、これは、前のフレーム615(時間t-1における)に対する現在のフレーム614(時間tにおける)のピクセルの動きを示す。ラテント表現 This generates (as shown). The motion information may include optical flow information (e.g., multiple motion or displacement vectors, possibly per pixel or per sample scale component), which indicates the motion of the pixels in the current frame 614 (at time t) relative to the previous frame 615 (at time t-1). Latent representation.

は、ビットストリームとも呼ばれることができ、現在のフレーム614のルーマ成分 This can also be called a bitstream, and is the rumor component of the current frame 614.

のコーディングバージョンを表すビットの数を含むことができる。フローエンジン618は、クロマ成分ではなく、現在のフレーム614のルーマ成分 It can include a number of bits representing the coding version. The flow engine 618 uses the lumen component of the current frame 614, rather than the chroma component.

を処理するため、ラテント表現 To process this, use latent representation.

(ビットストリーム)は、動き情報を決定するために現在のフレーム614のすべての成分を使用する場合と比較して、サイズが縮小される。 The bitstream is smaller in size compared to using all components of the current frame 614 to determine motion information.

[0114] ルーマ成分 [0114] Luma component

のラテント表現 Latent expression of

(または、フレームのルーマ成分を表す別のデバイスから受信したラテント表現またはビットストリーム)を使用して、フローエンジン618は、現在のフレーム614のルーマ成分 (Or, using a latent representation or bitstream received from another device representing the rumor components of the frame), the flow engine 618 calculates the rumor components of the current frame 614.

についての動き情報(fLとして示される)を決定し、また、現在のフレーム614のクロマ成分 The motion information (shown as f L ) is determined, and the chroma component of the current frame 614 is also determined.

,

についての動き情報(fCとして示される)を決定する。ルーマ成分の決定された動き情報に基づいてクロマ成分の動き情報を決定または推定する詳細を、図7Aおよび図7Bに関して以下に説明する。 The motion information (shown as f C ) for the chroma component is determined. Details of determining or estimating the motion information for the chroma component based on the determined motion information for the chroma component are described below with reference to Figures 7A and 7B.

[0115] ワーピングエンジン622は、現在のフレーム614(時間tにおける)のルーマ [0115] The warping engine 622 is the current frame 614 (at time t).

およびクロマ成分 and chroma components

,

について決定された動き情報(fLおよびfC)を使用してワーピングを実行するように構成される。たとえば、ワーピングエンジン622は、現在のフレーム614のルーマ The system is configured to perform warping using motion information ( fL and fC ) determined for the current frame 614. For example, the warping engine 622 is configured to perform warping using motion information (fL and fC) determined for the current frame 614.

およびクロマ成分 and chroma components

,

の動き情報(fLおよびfC)によって示される量だけ、現在のフレーム614(時間tにおける)のピクセルをワープすることができる。いくつかの態様では、ワーピングエンジン622は、空間スケールフロー(SSF)ワーピングを実行することができる。たとえば、SSFワーピングは、トリリニア補間を適用して、学習したスケールフローベクトルからインターフレーム予測を生成することができ、ここで、予測子は次のように定式化され得る。 The pixels of the current frame 614 (at time t) can be warped by an amount indicated by the motion information (f L and f C ). In some embodiments, the warping engine 622 can perform spatial scale flow (SSF) warping. For example, SSF warping can apply trilinear interpolation to generate interframe predictions from a learned scale flow vector, where the predictor can be formulated as follows:

[0116] 上記のトリリニア補間は、ルーマ [0116] The above trilinear interpolation is a lunar interpolation.

およびクロマ成分 and chroma components

の動き情報(fLおよびfC)に基づいて決定される1つまたは複数のワーピングパラメータに基づいて、成分ごとに(たとえば、各ルーマ成分および各個別のUおよびVクロマ成分ごとに)実行することができる。たとえば、ワーピングパラメータは、動きベクトルまたは変位ベクトルの水平成分(x方向)を表す Based on the motion information (f L and f C ), one or more warping parameters can be determined and performed component by component (for example, for each lumen component and each individual U and V chroma component). For example, the warping parameters represent the horizontal component (x direction) of the motion vector or displacement vector.

と、動きベクトルまたは変位ベクトルの垂直成分(y方向)を表す This represents the vertical component (y-direction) of the motion vector or displacement vector.

と、空間的な動き/変位情報(vxおよびvy)と結合された、復元されたフレームの段階的に平滑化されたバージョンを表すs(スケールフィールドと呼ばれる)とを含み得る。 This may include s (called the scale field), which represents a steppedly smoothed version of the reconstructed frame, combined with spatial motion/displacement information (v x and v y ).

[0117] ワーピングエンジン622からの出力(ワーピングがワーピングエンジン622によって実行された後)は、PY、PU、PVとして図6に示す予測を含む。ここでPYはルーマ成分のルーマ [0117] The output from the warping engine 622 (after warping has been performed by the warping engine 622) includes the predictions shown in Figure 6 as PY , PU , and PV , where PY is the rumor component

の予測に対応し、PUはクロマ成分 In response to the prediction, PU is the chroma component

の予測に対応し、PVは現在のフレーム614のクロマ成分 In response to the prediction, PV is the chroma component of the current frame 614.

の予測に対応する。 This corresponds to the prediction.

[0118] 次いで、深層学習ベースのシステム600は、現在のフレーム614の対応するルーマ [0118] Next, the deep learning-based system 600 processes the corresponding rumor for the current frame 614.

およびクロマ and chroma

,

成分から予測PY、PU、PVを減算して、残差信号を取得することができ、これには、ルーマ成分の残差信号rY、クロマ成分 The residual signal can be obtained by subtracting the predicted PY , PU , and PV from the components, which includes the residual signal rY of the lumens component and the chromens component.

の残差信号rU、およびクロマ成分 The residual signal rU and the chromatic component

の残差信号rVが含まれる。残差エンジン620は、残差のラテント表現( The residual signal r V is included. The residual engine 620 provides a latent representation of the residual (

として示される)を生成することができる。残差のラテント表現 It is possible to generate (as shown below). Latent representation of residuals

(または別のデバイスから受信した残差のラテント表現)を使用して、残差エンジン620は、ルーマ成分の復元された残差信号 Using (or a latent representation of the residual received from another device), the residual engine 620 generates the restored residual signal of the luma component.

、クロマ成分 Chroma components

の復元された残差信号 The restored residual signal

、およびクロマ成分 , and chroma components

の復元された残差信号 The restored residual signal

を含む、現在のフレームの復元された残差を生成することができる。深層学習ベースのシステム600は、予測PY、PU、PVを復元された残差 It can generate the reconstructed residuals of the current frame, including the predicted PY , PU , and PV . The deep learning-based system 600 then generates the reconstructed residuals.

,

,

に追加して、復元されたフレーム616を生成することができる。 In addition, the restored frame 616 can be generated.

[0119] 図7Aは、現在のフレーム(時間tにおける)のルーマ成分 [0119] Figure 7A shows the luma component of the current frame (at time t).

および前のフレーム(時間t-1における)の復元されたルーマ成分 and the restored luma component of the previous frame (at time t-1).

で動作するフローエンジン718の一例を示す図であり、ルーマ成分722として集合的に示される。上述のように、場合によっては、フローエンジン718は、オートエンコーダ(VAEflow)として実装され得る。場合によっては、図7Aに示すように、組み合わされた深層学習ベースのアーキテクチャを設計することができ、フローエンジン718は、現在のフレーム This figure shows an example of a flow engine 718 operating in a manner collectively represented as a luma component 722. As mentioned above, in some cases, the flow engine 718 may be implemented as an autoencoder (VAE flow ). In some cases, as shown in Figure 7A, a combined deep learning-based architecture can be designed, in which the flow engine 718 operates in the current frame

と以前に復元されたフレーム And the previously restored frame

の両方のルーマ成分を使用して、ルーマ動き情報(たとえば、SSFfL)とクロマ動き情報(たとえば、SSFfC)とを推定する。たとえば、本明細書で説明するように、クロマ動き情報(たとえば、fC)は、ルーマ動き情報(たとえば、fL)に基づいて導出され得る。 Both lumern components are used to estimate lumern motion information (e.g., SSFf L ) and chromern motion information (e.g., SSFf C ). For example, as described herein, chromern motion information (e.g., f C ) may be derived based on lumern motion information (e.g., f L ).

[0120] 図7Aに示すように、現在のフレームのルーマ成分 [0120] As shown in Figure 7A, the rumor component of the current frame

の動き情報(fL)を決定するために、現在のフレームのルーマ成分 To determine the motion information ( fL ), the rumor component of the current frame is used.

、および前のフレームの復元されたルーマ成分 , and the restored luma component of the previous frame.

は、いくつかの畳み込みレイヤと活性化レイヤ(まとめてフォワードパス723として示される)によって処理される。図7Aの「↓2」および「↑2」という表記法は、ストライド値を指し、↓2はストライド2(「↓」で示されるダウンサンプリングの場合)を指し、↑2もストライド2(「↑」で示されるアップサンプリングの場合)を指す。たとえば、畳み込みレイヤ724は、ストライド値2によって水平および垂直次元で5×5畳み込みフィルタを適用することによって、入力ルーマ成分 This is processed by several convolutional and activation layers (collectively shown as forward pass 723). The notation "↓2" and "↑2" in Figure 7A refers to stride values, where ↓2 refers to stride 2 (in the case of downsampling indicated by "↓") and ↑2 also refers to stride 2 (in the case of upsampling indicated by "↑"). For example, convolutional layer 724 applies a 5x5 convolutional filter in the horizontal and vertical dimensions with a stride value of 2 to process the input luma components.

および and

を4分の1でダウンサンプリングする。畳み込みレイヤ724の結果として得られる出力は、現在のフレームのルーマ成分 This is downsampled by 1/4. The output obtained as a result of convolutional layer 724 is the rumor component of the current frame.

のルーマ動き情報(fL)を表す特徴値のN個の配列(N個のチャネルに対応する)である。「2/N」という表記法は、2つの入力チャネルとN個の出力チャネルとを表す。次に、畳み込みレイヤ724に続く非線形レイヤは、畳み込みレイヤ724によって出力された特徴値を処理することができる。連続する畳み込みレイヤおよび非線形レイヤのそれぞれは、フォワードパス723の最終畳み込みレイヤ725がフローエンジン718のボトルネック部分726に特徴を出力するまで、前のレイヤによって出力された特徴を処理することができる。 This is an array of N feature values (corresponding to N channels) representing the rumor motion information (f L ). The notation "2/N" represents two input channels and N output channels. Next, the nonlinear layer following the convolutional layer 724 can process the feature values output by the convolutional layer 724. Each successive convolutional and nonlinear layer can process the features output by the previous layer until the final convolutional layer 725 of the forward pass 723 outputs features to the bottleneck portion 726 of the flow engine 718.

[0121] フォワードパス723の出力は、フローエンジン718のボトルネック部分726によって処理されて、現在のフレームのルーマ成分 [0121] The output of the forward pass 723 is processed by the bottleneck portion 726 of the flow engine 718 to obtain the rumor component of the current frame.

のルーマ動き情報(fL)を表すビットストリームまたはラテントを生成する。ボトルネック部分726は、フォワードパス723における量子化エンジンおよびエントロピー符号化エンジン、ならびにフローエンジン718のバックワードパス728上のエントロピー復号エンジンおよび逆量子化エンジンを含み得る。たとえば、量子化エンジンは、フォワードパス723の最終畳み込みレイヤ725によって出力された特徴に対して量子化を実行して、量子化出力を生成することができる。エントロピー符号化エンジンは、量子化エンジンからの量子化出力をエントロピー符号化してビットストリームを生成することができる。場合によっては、エントロピー符号化エンジンは、ハイパープライアネットワークによって生成されたプライアを使用してエントロピー符号化を実行することができる。ニューラルネットワークシステムは、ストレージ用に、別のデバイスに送信するために、サーバデバイスもしくはシステムにビットストリームを出力すること、および/または、他の方法でビットストリームを出力することができる。 A bitstream or latent representing the lumens motion information (f L ) is generated. The bottleneck portion 726 may include a quantization engine and an entropy coding engine in the forward pass 723, as well as an entropy decoding engine and an inverse quantization engine on the backward pass 728 of the flow engine 718. For example, the quantization engine can perform quantization on the features output by the final convolutional layer 725 of the forward pass 723 to produce a quantized output. The entropy coding engine can entropy code the quantized output from the quantization engine to produce a bitstream. In some cases, the entropy coding engine can perform entropy coding using pliers generated by the hyperplier network. The neural network system can output the bitstream to a server device or system for storage, to send to another device, and/or output the bitstream in other ways.

[0122] バックワードパス728は、場合によっては、フローエンジン718のニューラルネットワークシステムのデコーダサブネットワーク、または(別のデバイスの)別のフローエンジンのニューラルネットワークシステムのデコーダサブネットワークであり得る。フローエンジン718のエントロピー復号エンジンは、ボトルネック726のエントロピー符号化エンジン(または別のフローエンジンのボトルネックのエントロピー符号化エンジン)によって出力されたビットストリームをエントロピー復号し、エントロピー復号データをバックワードパス728の逆量子化エンジンに出力することができる。エントロピー復号エンジンは、ハイパープライアネットワークによって生成されたプライアを使用して、エントロピー復号を実行できる。脱量子化エンジンは、データを脱量子化できる。 [0122] The backward path 728 may, in some cases, be a decoder subnetwork of the neural network system of the flow engine 718, or a decoder subnetwork of the neural network system of another flow engine (in another device). The entropy decoding engine of the flow engine 718 can entropy decode the bitstream output by the entropy coding engine of the bottleneck 726 (or the entropy coding engine of the bottleneck of another flow engine) and output the entropy-decoded data to the inverse quantization engine of the backward path 728. The entropy decoding engine can perform entropy decoding using pliers generated by the hyperplier network. The dequantization engine can dequantize the data.

[0123] 次に、バックワードパス728の畳み込みレイヤおよび逆活性化レイヤは、ボトルネック726からの脱量子化されたデータを処理して、現在のフレームのルーマ成分 [0123] Next, the convolutional and deactivation layers of the backward pass 728 process the dequantized data from the bottleneck 726 to obtain the lumen components of the current frame.

の動き情報729(fL)を生成することができる。動き情報729(fL)は、現在のフレームのルーマ成分 Motion information 729( fL ) can be generated. Motion information 729( fL ) is the rumor component of the current frame.

の各サンプルの動きベクトルなどの動きベクトル(たとえば、水平またはx方向の大きさと、垂直またはy方向の大きさとを有する)を含むことができる。場合によっては、動き情報729(fL)は、スケール成分をさらに含むことができる。たとえば、説明のために図7Aに示すように、動き情報729は、 Motion vectors such as the motion vector of each sample (for example, having a magnitude in the horizontal or x direction and a magnitude in the vertical or y direction) may be included. In some cases, motion information 729( fL ) may further include a scale component. For example, as shown in Figure 7A for illustrative purposes, motion information 729 is

成分と、 Ingredients and

成分と、SL成分とを含む。上述のように、 It contains the component and the SL component. As described above,

,

、およびSL成分は、ワーピングエンジン622によって式(1)で使用され、現在のフレーム614(時間tにおける)のピクセルをワーピングして、予測PY、PU、PVを生成することができる。 The SL components are used by the warping engine 622 in equation (1) to warp the pixels of the current frame 614 (at time t) to generate predicted PY , PU , and PV .

[0124] 現在のフレームのルーマ成分 [0124] Current frame's lunar components

の動き情報729(fL)を学習した後、フローエンジン718は、現在のフレームのクロマ成分の動き情報731(fC)を決定または予測することができる。たとえば、フローエンジン718は、クロマ成分の動き情報731(fC)を取得するために、ルーマ成分 After learning the motion information 729 (f L ), the flow engine 718 can determine or predict the motion information 731 (f C ) of the chroma component of the current frame. For example, the flow engine 718 can learn the motion information 731 (f C ) of the chroma component

の動き情報729(fL)をサブサンプリングすることができる。クロマ成分の動き情報731(fC)は、現在のフレームのクロマ成分の各サンプルの動きベクトルなどの動きベクトル(たとえば、水平またはx方向の大きさと、垂直またはy方向の大きさとを有する)を含むことができる。場合によっては、動き情報731(fC)は、スケール成分をさらに含むことができる。たとえば、説明のために図7Aに示すように、現在のフレームのクロマ成分の動き情報731(fC)は、 The motion information 729( fL ) can be subsampled. The motion information 731( fC ) of the chroma component may include motion vectors (for example, having a magnitude in the horizontal or x direction and a magnitude in the vertical or y direction), such as the motion vector of each sample of the chroma component in the current frame. In some cases, the motion information 731( fC ) may further include a scale component. For example, as shown in Figure 7A for illustrative purposes, the motion information 731( fC ) of the chroma component in the current frame is:

成分と、 Ingredients and

成分と、SC成分とを含む。ルーマ成分の動き情報729(fL)と同様に、クロマ動き情報731(fC)の It includes the component and the S C component. Similar to the motion information 729 (f L ) of the chroma component, the chroma motion information 731 (f C )

,

、およびSC成分は、ワーピングエンジン622によって式(1)で使用され、現在のフレーム614(時間tにおける)のピクセルをワーピングして、予測PY、PU、PVを生成することができる。 The S C components are used by the warping engine 622 in equation (1) to warp the pixels of the current frame 614 (at time t) to generate predicted P Y , PU , and PV .

[0125] いくつかの態様では、ダウンサンプリングを伴う畳み込みレイヤ730は、現在のフレームのルーマ成分 [0125] In some embodiments, the convolutional layer 730 with downsampling is used to obtain the lumen component of the current frame.

の動き情報729(fL)に基づいて、現在のフレームのクロマ成分の動き情報731(fC)を学習するように(たとえば、教師なし学習または訓練を使用して)訓練され得る。1つの例示的な例では、フローエンジン718を訓練するために使用され得る訓練セットは、(グランドトゥルースとして)ルーマおよびクロマ動き情報を含むことができる。ルーマ動き情報は、フローエンジン718のニューラルネットワークに入力され得、フローエンジン718から出力される結果として得られるクロマ動き情報は、損失関数を使用するグランドトゥルースのクロマ動き情報を使用して最小化され得る(たとえば、L1または絶対差の合計、L2Normまたは二乗差の合計、または他の損失関数)。 Based on the motion information 729 (f L ), the motion information 731 (f C ) of the chroma component of the current frame can be trained (for example, using unsupervised learning or training). In one exemplary example, a training set that can be used to train the flow engine 718 may include lumar and chroma motion information (as ground truth). The lumar motion information may be input to the neural network of the flow engine 718, and the resulting chroma motion information output from the flow engine 718 may be minimized using the chroma motion information of the ground truth with a loss function (e.g., L1 or sum of absolute differences, L2 Normal or sum of squared differences, or other loss function).

[0126] 畳み込みレイヤ730は、|3/3|5×5conv↓2|として図7Aに示されている。「3/3」という表記法は、3つの出力チャネルになる3つの入力チャネルがあることを示す。上記のように、「↓2」および「↑2」という表記法はストライド値を指し、↓2はダウンサンプリングのストライド2(「↓」で示す)を指し、↑2はアップサンプリングのストライド2(「↑」で示す)を指す。たとえば、畳み込みレイヤ730は、ストライド値2だけ水平および垂直次元で5×5畳み込みフィルタを適用することによって、ルーマ成分 [0126] The convolutional layer 730 is shown in Figure 7A as |3/3|5×5conv↓2|. The notation "3/3" indicates that there are three input channels that result in three output channels. As described above, the notations "↓2" and "↑2" refer to stride values, where ↓2 refers to a downsampling stride of 2 (indicated by "↓") and ↑2 refers to an upsampling stride of 2 (indicated by "↑"). For example, the convolutional layer 730 applies a 5×5 convolutional filter in the horizontal and vertical dimensions with a stride value of 2 to create the lumen component.

の動き情報729(fL)を4分の1(たとえば、YUV4:2:0フォーマットの場合)でダウンサンプリングする。いくつかの例では、畳み込みレイヤ730は、他のフォーマット(たとえば、YUV4:2:2フォーマットなど)の他の要因によってダウンサンプリングするように訓練され得る。畳み込みレイヤ724の結果として得られる出力は、特徴値の3×3配列(3つのチャネルに対応する)であり、これは、ルーマ成分 The motion information 729( fL ) is downsampled by a quarter (for example, in the YUV4:2:0 format). In some examples, the convolutional layer 730 may be trained to downsample by other factors in other formats (for example, the YUV4:2:2 format). The output resulting from the convolutional layer 724 is a 3x3 array of feature values (corresponding to the three channels), which is the luma component.

の動き情報729(fL)のダウンサンプリングされたバージョンである。 This is a downsampled version of motion information 729( fL ).

[0127] 他の態様(図7Aには図示せず)では、現在のフレームのクロマ成分の動き情報731(fC)は、ルーマ成分 [0127] In other embodiments (not shown in Figure 7A), the motion information 731(f C ) of the chroma component of the current frame is the luma component

の動き情報729(fL)を直接サブサンプリングすることによって取得され得る。たとえば、フローエンジン718は、畳み込みレイヤ730を使用してルーマフローを処理することなく、クロマフローを決定することができる。1つの例示的な例では、畳み込みレイヤ730の代わりに、フローエンジン718は、ルーマ動き情報729(fL)を直接サブサンプリングしてクロマ動き情報731(fC)を取得することができるサブサンプラ(フローエンジン718のニューラルネットワークから分離され得る)を含むことができる。 The motion information 729( fL ) can be obtained by directly subsampling it. For example, the flow engine 718 can determine the chroma flow without processing the luma flow using the convolutional layer 730. In one exemplary example, instead of the convolutional layer 730, the flow engine 718 may include a subsampler (which may be separated from the neural network of the flow engine 718) that can directly subsample the luma motion information 729( fL ) to obtain the chroma motion information 731( fC ).

[0128] 図7Bは、現在のフレームについて決定された(たとえば、図7Aのフローエンジン718を使用して)ルーマ動き情報をサブサンプリングするためのサブサンプリングエンジン(subsampling engine)735の一例を示す図であり、現在のフレームのクロマ動き情報を取得する。説明のために、簡略化された例は、合計16のフローの動きまたは変位ベクトルを有する4×4(4行および4列)の解像度を有するルーマ動き情報732の各チャネルN(N=2)で提供される。サブサンプリングエンジン735は、ルーマ動き情報732をサブサンプリングまたはダウンサンプリングして、ルーマ動き情報732のサブサンプリングされた/ダウンサンプリングされたバージョンであるクロマ動き情報738を生成または取得する。 [0128] Figure 7B shows an example of a subsampling engine 735 for subsampling lumar motion information determined for the current frame (for example, using the flow engine 718 in Figure 7A) to obtain chroma motion information for the current frame. For illustrative purposes, a simplified example is provided with each channel N (N=2) of lumar motion information 732 having a 4x4 (4 rows and 4 columns) resolution with a total of 16 flow motion or displacement vectors. The subsampling engine 735 subsamples or downsamples the lumar motion information 732 to generate or obtain chroma motion information 738, which is a subsampled/downsampled version of the lumar motion information 732.

[0129] 図7Bの例示的な例は、ルーマ動き情報732のサイズの4分の1であるクロマ動き情報738を示している。たとえば、前述したように、YUV4:2:0フォーマットを有するコンテンツの場合、UチャネルとVチャネルの解像度はYチャネル解像度の半分である(幅と高さが半分になるため、UチャネルとVチャネルのサイズはYチャネルの4分の1になる)。サブサンプリングエンジン735は、4:2:0フォーマット以外の他のフォーマットを処理するように訓練または他の方法で構成され得、この場合、サブサンプリングは、図7Aに示されるものとは異なる解像度を有するクロマ情報を生成することを含み得る。 [0129] The exemplary example in Figure 7B shows chroma motion information 738, which is one-quarter the size of chroma motion information 732. For example, as mentioned above, for content with the YUV 4:2:0 format, the resolution of the U and V channels is half the resolution of the Y channel (the size of the U and V channels is one-quarter of the Y channel because the width and height are halved). The subsampling engine 735 may be trained or otherwise configured to handle formats other than the 4:2:0 format, in which case subsampling may include generating chroma information with a different resolution than that shown in Figure 7A.

[0130] いくつかの態様では、上記のように、サブサンプリングエンジン735は、図7Aの畳み込みレイヤ730を含むことができ、(たとえば、教師なし学習または訓練を使用して)訓練して、ルーマ動き情報732からクロマ動き情報738を決定することができる。他の態様では、サブサンプリングエンジン735は、クロマ動き情報738を取得するために、ルーマ動き情報732を直接サブサンプリングするサブサンプラを含むことができる。 [0130] In some embodiments, as described above, the subsampling engine 735 may include the convolutional layer 730 in Figure 7A, which can be trained (for example, using unsupervised learning or training) to determine chroma motion information 738 from luma motion information 732. In other embodiments, the subsampling engine 735 may include a subsampler that directly subsamples luma motion information 732 to obtain chroma motion information 738.

[0131] フォワードパス723およびバックワードパス728の畳み込みまたは変換レイヤ、ならびにボトルネック(M)におけるチャネルの数(図7AではNとして示される)は、任意の適切な値に設定され得る。1つの例示的な例では、チャネルの数Nは、N=192およびM=128として選択され得る。復元されたフレームの連続する平滑化されたバージョン(スケールフィールドsに関連付けられている)は、フィルタリングまたは平滑化演算子を使用して取得され得る。一例では、異なる幅のガウスぼかしフィルタを使用できる。別の例では、連続フィルタリングと補間を備えたガウスピラミッドを使用して、復元されたフレームの平滑化されたバージョンを生成できる。さらに、任意に多数のスケールSを用いることができる。一例では、スケールSをS=3に設定でき、スケールレベルは [0131] The convolution or transformation layers of the forward pass 723 and backward pass 728, as well as the number of channels in the bottleneck (M) (shown as N in Figure 7A), can be set to any appropriate value. In one exemplary example, the number of channels N may be selected as N = 192 and M = 128. Sequential smoothed versions of the restored frames (associated with scale fields s) can be obtained using filtering or smoothing operators. In one example, Gaussian blur filters of different widths can be used. In another example, a Gaussian pyramid with sequential filtering and interpolation can be used to generate smoothed versions of the restored frames. Furthermore, an arbitrary number of scales S can be used. In one example, the scale S can be set to S = 3, and the scale level is

として選択され得る。ここで、σ0はガウスフィルタ幅を表すことができる。 This can be selected as follows: Here, σ₀ can represent the Gaussian filter width.

[0132] 一方、図7Aの非線形活性化レイヤは、説明のためにPReLUとして示されており、一般化分割正規化(GDN)レイヤ、PReLUレイヤとGDNレイヤの組合せなど、他のタイプの非線形活性化レイヤを使用することができる。 [0132] On the other hand, the nonlinear activation layer in Figure 7A is shown as PReLU for illustrative purposes, but other types of nonlinear activation layers can be used, such as a generalized division-normalization (GDN) layer, or a combination of a PReLU layer and a GDN layer.

[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)残差で動作する残差オートエンコーダを含む。 [0133] In some examples, to effectively support one or more YUV formats (e.g., YUV4:2:0), the intra-prediction engine 602 and residual engine 620 in Figure 6 may be designed based on the general neural network architectures shown in Figures 8A, 9, or 10. For example, the architectures shown in Figures 8A, 9, and 10 may be configured to process input data having the YUV4:2:0 format. In some examples, neural network architectures similar to those shown in Figures 8A, 9, or 10 may be used to encode and/or decode other types of YUV content (e.g., content having the YUV4:4:4 format, YUV4:2:2 format, etc.) and/or other input formats. In some cases, each architecture shown in Figures 8A, 9, and 10 includes a residual autoencoder operating with YUV (e.g., 4:2:0) residuals.

[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を使用して処理される。 [0134] Figure 8A shows an example of a front-end neural network system 800 that can be configured to directly link 4:2:0 input (Y, U, and V) data. As shown in Figure 8A, in the encoder subnetwork (also called the forward path) of the neural network system, the branched lumen and chroma channels (lumen Y channel 802 and U and V chroma channels 804) are combined using a 1x1 convolutional layer 806, and then a nonlinear layer 808 (also called a nonlinear operator) is applied. Similar operations are performed in the decoder subnetwork (also called the backward path) of the neural network system, but in the reverse order. For example, as shown in Figure 8A, an inverse nonlinear layer 809 (also called an inverse nonlinear operator) is applied, the Y and U, V channels are separated using a 1x1 convolutional layer 813, and the separate Y and U, V channels are processed using their respective inverse nonlinear layers 815, 816 and convolutional layers 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のストライドを指す。 [0135] The first two neural network layers in the encoder subnetwork of the neural network system 800 in Figure 8A include a first convolutional layer 811 (indicated as Nconv|3×3|↓1), a second convolutional layer 810 (indicated as Nconv|5×5|↓2), a first nonlinear layer 814, and a second nonlinear layer 812. The last two neural network layers in the decoder subnetwork of the front-end neural network architecture in Figure 8A include a first inverse nonlinear layer 816, a second inverse nonlinear layer 815, a first convolutional layer 818 (indicated as 2conv|3×3|↑1) for generating the restored chrominance (U and V) components of the frame, and a second convolutional layer 817 (indicated as 1conv|5×5|↑2) for generating the restored luminance (Y) component of the frame. The notation "Nconv" refers to the number of output channels (N) of a given convolutional layer (corresponding to the number of output features), where N is the value defining the number of output channels. The notations 3x3 and 5x5 indicate the size of each convolutional kernel (e.g., a 3x3 kernel and a 5x5 kernel). The notations "↓1" and "↓2" refer to stride values, where ↓1 refers to a stride of 1 (for downsampling indicated by "↓") and ↓2 refers to a stride of 2 (for downsampling). The notations "↑1" and "↑2" refer to stride values, where ↑1 refers to a stride of 1 (for upsampling indicated by "↑") and ↑2 refers to a stride of 2 (for upsampling).

[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によって出力された特徴値を処理することができる。 [0136] For example, the convolutional layer 810 downsamples the input lumen channel 802 by a factor of four by applying a 5x5 convolutional filter in the horizontal and vertical dimensions with a stride value of 2. The resulting output from the convolutional layer 810 is an array of N feature values (corresponding to N channels). The convolutional layer 811 processes the input chroma (U and V) channel 804 by applying a 3x3 convolutional filter in the horizontal and vertical dimensions with a stride value of 1. The resulting output from the convolutional layer 811 is an array of N feature values (corresponding to N channels). The array of feature values output by the convolutional layer 810 has the same dimensions as the array of feature values output by the convolutional layer 811. Then, the nonlinear layer 812 can process the feature values output by the convolutional layer 810, and the nonlinear layer 814 can process the feature values output by the convolutional layer 811.

[0137] 次いで、1×1畳み込みレイヤ806は、非線形レイヤ812、814によって出力された特徴値を処理することができる。1×1畳み込みレイヤ806は、ルーマチャネル802およびクロマチャネル804に関連付けられた特徴の線形結合を生成することができる。線形結合演算は、Y成分およびUV成分の値当たりのクロスチャネル混合として動作し、コーディング性能を向上させるクロス成分(たとえば、クロス-ルミナンスおよびクロミナンス成分)の予測をもたらす。1×1畳み込みレイヤ806の各1×1畳み込みフィルタは、ルーマチャネル802の対応するN番目のチャネルおよびクロマチャネル804の対応するN番目のチャネルに適用されるそれぞれのスケーリングファクタを含むことができる。 [0137] Next, the 1x1 convolutional layer 806 can process the feature values output by the nonlinear layers 812 and 814. The 1x1 convolutional layer 806 can generate a linear combination of the features associated with the lumern channel 802 and the chroma channel 804. The linear combination operation acts as a cross-channel mixture per value of the Y and UV components, resulting in predictions of cross-components (e.g., cross-luminance and chrominance components) that improve coding performance. Each 1x1 convolutional filter in the 1x1 convolutional layer 806 can include its respective scaling factor applied to the corresponding Nth channel of the lumern channel 802 and the corresponding Nth channel of the chroma channel 804.

[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からの出力であり得る。 [0138] Figure 8B shows an exemplary operation of a 1x1 convolutional layer 838. As described above, N represents the number of output channels. As shown in Figure 8B, 2N channels are provided as input to the 1x1 convolutional layer 838, including N channel chroma (combined U and V) outputs 832 and N channel lumer (Y) outputs 834. In the example in Figure 8B, the value of N is equal to 2, indicating two channels of value for the N channel chroma outputs 832 and two channels of value for the N channel lumer outputs 834. Referring to Figure 8A, the N channel chroma outputs 832 may be outputs from the nonlinear layer 814, and the N channel lumer outputs 834 may be outputs from the nonlinear layer 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における各値に適用されることを示す。 [0139] The 1x1 convolutional layer 838 processes 2N channels, performs a feature-specific linear combination of the 2N channels, and then outputs N channel sets of features or coefficients. The 1x1 convolutional layer 838 includes two 1x1 convolutional filters (based on N=2). The first 1x1 convolutional filter is denoted by the value S1 , and the second 1x1 convolutional filter is denoted by the value S2 . The value S1 represents the first scaling factor, and the value S2 represents the second scaling factor. In one exemplary example, the value S1 is equal to 3 and the value S2 is equal to 4. Each of the 1x1 convolutional filters in the 1x1 convolutional layer 838 has a stride value of 1, indicating that the scaling factors S1 and S2 are applied to the respective values in the UV output 832 and the Y output 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に結合される。 [0140] For example, the scaling factor S1 of the first 1x1 convolutional filter is applied to each value in the first channel (C1) of the UV output 832 and each value in the first channel (C1) of the Y output 834. When each value in the first channel (C1) of the UV output 832 and each value in the first channel (C1) of the Y output 834 are scaled by the scaling factor S1 of the first 1x1 convolutional filter, the scaled values are combined into the first channel (C1) of the output value 839. The scaling factor S2 of the second 1x1 convolutional filter is applied to each value in the second channel (C2) of the UV output 832 and each value in the second channel (C2) of the Y output 834. After each value of the second channel (C2) of the UV output 832 and each value of the second channel (C2) of the Y output 834 are scaled by the scaling factor S2 of the second 1x1 convolutional filter, the scaled values are combined into the second channel (C2) of the output value 839. As a result, the four Y and UV channels (two Y channels and two combined UV channels) are mixed and combined into two output channels C1 and C2.

[0141] 図8Aに戻ると、1×1畳み込みレイヤ806の出力は、エンコーダサブネットワークの追加の非線形レイヤおよび追加の畳み込みレイヤによって処理される。ボトルネック820は、エンコーダサブネットワーク(またはフォワードパス)上の量子化エンジンおよびエントロピー符号化エンジン、ならびにデコーダサブネットワーク上のエントロピー復号エンジンおよび逆量子化エンジン(またはバックワードパス)を含むことができる。量子化エンジンは、量子化出力を生成するために、エンコーダサブネットワークの最後のニューラルネットワークレイヤ819によって出力された特徴に対して量子化を実行することができる。エントロピー符号化エンジンは、ビットストリームを生成するために、量子化エンジンからの量子化出力をエントロピー符号化することができる。場合によっては、エントロピー符号化エンジンは、エントロピー符号化を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。ニューラルネットワークシステムは、格納のため、別のデバイス、サーバデバイス、もしくはサーバシステムへの送信のためにビットストリームを出力し、および/またはそうでない場合、ビットストリームを出力することができる。 [0141] Returning to Figure 8A, the output of the 1x1 convolutional layer 806 is processed by additional nonlinear and additional convolutional layers of the encoder subnetwork. The bottleneck 820 may include a quantization engine and an entropy coding engine on the encoder subnetwork (or forward path), as well as an entropy decoding engine and an inverse quantization engine (or backward path) on the decoder subnetwork. The quantization engine can perform quantization on the features output by the last neural network layer 819 of the encoder subnetwork to generate a quantized output. The entropy coding engine can entropy code the quantized output from the quantization engine to generate a bitstream. In some cases, the entropy coding engine can use pliers generated by the hyperplier network to perform entropy coding. The neural network system may output a bitstream for storage, transmission to another device, server device, or server system, and/or otherwise output the bitstream.

[0142] ニューラルネットワークシステムのデコーダサブネットワークまたは(別のデバイスの)別のニューラルネットワークシステムのデコーダサブネットワークは、ビットストリームを復号することができる。(デコーダサブネットワークの)ボトルネック820のエントロピー復号エンジンは、ビットストリームをエントロピー復号し、エントロピー復号データをデコーダサブネットワークの逆量子化エンジンに出力することができる。エントロピー復号エンジンは、エントロピー復号を実行するためにハイパープライアネットワークによって生成されたプライアを使用することができる。逆量子化エンジンは、データを逆量子化することができる。逆量子化データは、デコーダサブネットワークのいくつかの畳み込みレイヤおよびいくつかの逆非線形レイヤによって処理され得る。 [0142] A decoder subnetwork of a neural network system or a decoder subnetwork of another neural network system (in another device) can decode a bitstream. The entropy decoding engine of the (decoder subnetwork) bottleneck 820 can entropy decode the bitstream and output the entropy-decoded data to the inverse quantization engine of the decoder subnetwork. The entropy decoding engine can use pliers generated by the hyperplier network to perform entropy decoding. The inverse quantization engine can inverse quantize the data. The inverse quantized data can be processed by several convolutional layers and several inverse nonlinear layers of the decoder subnetwork.

[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まで)についてこの演算を実行することができる。 [0143] After being processed by several convolutional and nonlinear layers, the 1x1 convolutional layer 813 can process the data output by the final inverse nonlinear layer 809. The 1x1 convolutional layer 813 may include 2N convolutional filters that can split the data into Y channel features and combined UV channel features. For example, each of the N channels output by the inverse nonlinear layer 809 may be processed using 2N 1x1 convolutions (which result in scaling) of the 1x1 convolutional layer 813. For each scaling factor n i corresponding to the output channels (from a total of 2N output channels) applied to the N input channels, the decoder subnetwork can perform a sum over the N input channels, resulting in 2N outputs. In one exemplary example, with a scaling factor n i , the decoder subnetwork can apply the scaling factor n i to the N input channels, sum the results, thereby resulting in one output channel. The decoder subnetwork can perform this operation for 2N different scaling factors (for example, scaling factor n1 , scaling factor n2 , and up to scaling factor n2N ).

[0144] 1×1畳み込みレイヤ813によって出力されたYチャネル特徴は、逆非線形815によって処理され得る。1×1畳み込みレイヤ813によって出力された結合UVチャネル特徴は、逆非線形816によって処理され得る。畳み込みレイヤ817は、Yチャネル特徴を処理し、復元Y成分824として示された、ピクセル当たりの復元Yチャネルまたは復元フレームのサンプル(たとえば、ルミナンスサンプルもしくはピクセル)を出力することができる。畳み込みレイヤ818は、結合UVチャネル特徴を処理し、復元UおよびV成分825として示された、ピクセル当たりの復元Uチャネルまたは復元フレームのサンプル(たとえば、クロミナンス青サンプルもしくはピクセル)およびピクセル当たりの復元Vチャネルまたは復元フレームのサンプル(たとえば、クロミナンス赤サンプルもしくはピクセル)を出力することができる。 [0144] The Y channel features output by the 1x1 convolutional layer 813 can be processed by the inverse nonlinear layer 815. The combined UV channel features output by the 1x1 convolutional layer 813 can be processed by the inverse nonlinear layer 816. The convolutional layer 817 can process the Y channel features and output a sample of the reconstructed Y channel or reconstructed frame per pixel (e.g., luminance sample or pixel), indicated as the reconstructed Y component 824. The convolutional layer 818 can process the combined UV channel features and output a sample of the reconstructed U channel or reconstructed frame per pixel (e.g., chrominance blue sample or pixel) and a sample of the reconstructed V channel or reconstructed frame per pixel (e.g., chrominance red sample or pixel), indicated as the reconstructed U and V components 825.

[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の変形を使用することができる。 [0145] In some examples, different variations of the architecture of Figure 8A with different nonlinear operators can be used as the intra-prediction engine 602 and the residual engine 620. For example, Figures 9 and 10 show the front-end architecture of Figure 8A configured to process data having a YUV format (e.g., YUV4:2:0 input data with Y, U, and V components). In the neural network system 900 of Figure 9, on the encoder side, the branched lumen and chroma channels are combined using a 1x1 convolutional layer (similar to that in Figure 8A), and then the GDN nonlinear operator is applied. In the neural network system 1000 of Figure 10, on the encoder side, the branched lumen and chroma channels are combined using a 1x1 convolutional layer (similar to that in Figure 8A), and then the PReLU nonlinear operator is applied. In one example, both VAE res and VAE intra can use the variations shown in Figure 9. In another example, both VAE res and VAE intra can use the modification shown in Figure 10. In another example, VAE res can use the modification shown in Figure 9, and VAE intra can use the modification shown in Figure 10. In another example, VAE intra can use the modification shown in Figure 9, and VAE res can use the modification shown in Figure 10.

[0146] 図11は、ビデオデータを処理するためのプロセス1100の一例を示す流れ図である。ブロック1102において、プロセス1100は、機械学習システムによって、入力ビデオデータを取得することを含む。入力ビデオデータは、現在のフレーム(たとえば、図7Aの現在のフレーム(時間tにおける)のルーマ成分 [0146] Figure 11 is a flowchart showing an example of a process 1100 for processing video data. In block 1102, process 1100 includes acquiring input video data by a machine learning system. The input video data is the lumen component of the current frame (for example, the current frame (at time t) in Figure 7A).

)の少なくとも1つのルミナンス成分を含む。場合によっては、入力ビデオデータは、以前に復元されたフレームの少なくとも1つのルミナンス成分(たとえば、図7Aの前のフレーム(時間t-1における)の復元されたルーマ成分 It includes at least one luminance component of the ) . In some cases, the input video data includes at least one luminance component of a previously restored frame (for example, the restored luminance component of the previous frame (at time t-1) in Figure 7A).

)を含み、少なくとも1つの復元されたルミナンス成分と呼ぶことができる。いくつかの態様では、現在のフレームはビデオフレームを含む。場合によっては、1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分と、少なくとも1つのクロミナンス赤成分とを含む。いくつかの態様では、現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する。場合によっては、YUVフォーマットはYUV4:2:0フォーマットである。 It includes at least one restored luminance component, which can be called a chrominance component. In some embodiments, the current frame includes a video frame. In some cases, one or more chrominance components include at least one chrominance blue component and at least one chrominance red component. In some embodiments, the current frame has a luminance-chrominance (YUV) format. In some cases, the YUV format is a YUV4:2:0 format.

[0147] ブロック1104で、プロセスは、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することを含む。いくつかの態様では、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することを含み得る。場合によっては、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することをさらに含むことができる。場合によっては、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される。たとえば、説明的な例として図7Aを参照すると、フローエンジン718は、現在のフレーム [0147] In block 1104, the process includes using a machine learning system to determine motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame, using at least one luminance component of the current frame. In some embodiments, process 1100 may include determining motion information for at least one luminance component of the current frame based on at least one luminance component of the current frame and at least one restored lumen component of the previous frame. In some cases, process 1100 may further include determining motion information for one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame. In some cases, the motion information for one or more chrominance components of the current frame is determined using a convolutional layer of the machine learning system. For example, referring to Figure 7A as an illustrative example, the flow engine 718 uses the current frame

と以前に復元されたフレーム And the previously restored frame

の両方のルーマ成分を使用して、現在のフレーム Using both of the luma components, the current frame

のルーマ動き情報(たとえば、SSFfL)とクロマ動き情報(たとえば、SSFfC)とを推定することができる。上述のように、クロマ動き情報(たとえば、fC)731は、畳み込みレイヤ730を使用して、ルーマ動き情報(たとえば、fL)729に基づいて導出され得る。場合によっては、現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることによって少なくとも部分的に決定される。 Luminance information (e.g., SSFf L ) and chroma motion information (e.g., SSFf C ) can be estimated. As described above, chroma motion information (e.g., f C ) 731 can be derived using the convolutional layer 730 based on luma motion information (e.g., f L ) 729. In some cases, motion information for one or more chrominance components of the current frame is determined at least partially by sampling motion information determined for at least one luminance component of the current frame.

[0148] いくつかの態様では、プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分の動き情報と現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することを含む。いくつかの態様では、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータおよび現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む。場合によっては、空間スケールフロー(SSF)ワーピングパラメータは、学習したスケールフローベクトルを含む。説明的な例として図6を参照すると、ワーピングパラメータは、動きまたは変位ベクトルの(x方向の)水平成分を表す [0148] In some embodiments, process 1100 includes determining warping parameters for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame by a machine learning system using motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame. In some embodiments, the warping parameters for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame include spatial scale flow (SSF) warping parameters. In some cases, the spatial scale flow (SSF) warping parameters include learned scale flow vectors. Referring to Figure 6 as an illustrative example, the warping parameters represent the horizontal component (in the x-direction) of the motion or displacement vector.

と、動きまたは変位ベクトルの(y方向の)垂直成分を表す This represents the vertical component (in the y-direction) of the motion or displacement vector.

と、空間的な動き/変位情報(vxおよびvy)と結合された復元されたフレームの段階的に平滑化されたバージョンを表すs(スケールフィールドと呼ばれる)とを含むことができる。 This can include s (called the scale field), which represents a steppedly smoothed version of the reconstructed frame combined with spatial motion/displacement information (v x and v y ).

[0149] プロセス1100は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測(たとえば、図6の予測子PY、PU、およびPV)を決定することをさらに含むことができる。場合によっては、1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって、少なくとも部分的に決定される。1つの例示的な例では、補間演算は、トリリニア補間演算を含む。 [0149] Process 1100 may further include determining one or more interframe predictions of the current frame (e.g., predictors PY , PU , and PV in Figure 6) using a warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame. In some cases, one or more interframe predictions are determined at least partially by applying an interpolation operation using a warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame. In one exemplary example, the interpolation operation includes a trilinear interpolation operation.

[0150] いくつかの例では、本明細書で説明されるプロセスは、図11に示されるコンピューティングデバイスアーキテクチャ1200を有するコンピューティングデバイスなどのコンピューティングデバイスまたは装置によって実行され得る。一例では、1つまたは複数のプロセスは、コンピューティングデバイスアーキテクチャ1200を有するコンピューティングデバイスによって実行され得、図6に示すニューラルネットワークアーキテクチャおよび/または図7A、図7B、図8A、図9、および/または図10に示されるニューラルネットワークアーキテクチャのうちの任意の1つまたは複数を実装する。いくつかの例では、コンピューティングデバイスは、モバイルデバイス(たとえば、携帯電話、タブレットコンピューティングデバイスなど)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、テレビジョン、車両(もしくは車両のコンピューティングデバイス)、ロボティックデバイス、ならびに/または、本明細書に記載されたプロセスを実行するリソース能力を有する任意の他のコンピューティングデバイスを含むか、またはその一部であることができる。 [0150] In some examples, the processes described herein may be executed by a computing device or apparatus, such as a computing device having the computing device architecture 1200 shown in Figure 11. In one example, one or more processes may be executed by a computing device having the computing device architecture 1200, which implements any one or more of the neural network architectures shown in Figure 6 and/or Figures 7A, 7B, 8A, 9, and/or 10. In some examples, the computing device may include, or be part of, a mobile device (e.g., a mobile phone, a tablet computing device), a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a television, a vehicle (or a computing device in a vehicle), a robotic device, and/or any other computing device having the resource capacity to perform the processes described herein.

[0151] 場合によっては、コンピューティングデバイスまたは装置は、1つもしくは複数の入力デバイス、1つもしくは複数の出力デバイス、1つもしくは複数のプロセッサ、1つもしくは複数のマイクロプロセッサ、1つもしくは複数のマイクロコンピュータ、1つもしくは複数の送信機、受信機、もしくは(たとえば、トランシーバと呼ばれる)組み合わされた送信機-受信機、1つもしくは複数のカメラ、1つもしくは複数のセンサ、および/または本明細書に記載されたプロセスのステップを実行するように構成された他の構成要素などの様々な構成要素を含む場合がある。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信および/もしくは受信するように構成されたネットワークインターフェース、それらの任意の組合せ、ならびに/または他の構成要素を含む場合がある。ネットワークインターフェースは、インターネットプロトコル(IP)ベースのデータまたは他のタイプのデータを通信および/または受信するように構成される場合がある。 [0151] In some cases, a computing device or apparatus may include various components such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more transmitters, receivers, or combined transmitter-receivers (for example, called transceivers), one or more cameras, one or more sensors, and/or other components configured to perform the steps of the process described herein. In some examples, a computing device may include a display, a network interface configured to communicate and/or receive data, any combination thereof, and/or other components. The network interface may be configured to communicate and/or receive Internet Protocol (IP) based data or other types of data.

[0152] コンピューティングデバイスの構成要素は、回路内に実装され得る。たとえば、構成要素は、本明細書に記載された様々な動作を実行するために、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、ニューラル処理装置(NPU)、および/または他の適切な電子回路)を含むことができる、電子回路もしくは他の電子ハードウェアを含むことができ、および/またはそれらを使用して実装され得、ならびに/あるいは、コンピュータソフトウェア、ファームウェア、もしくはそれらの任意の組合せを含むことができ、および/またはそれらを使用して実装され得る。 [0152] Components of a computing device may be implemented within a circuit. For example, a component may include, and/or be implemented using, one or more programmable electronic circuits (e.g., a microprocessor, a graphics processing unit (GPU), a digital signal processor (DSP), a central processing unit (CPU), a neural processing unit (NPU), and/or other suitable electronic circuits) to perform the various operations described herein, and/or may include, and/or be implemented using, computer software, firmware, or any combination thereof.

[0153] 本明細書に記載されたプロセスは論理流れ図として示されることができ、それらの動作は、ハードウェア、コンピュータ命令、またはそれらの組合せにおいて実施され得る動作のシーケンスを表す。コンピュータ命令のコンテキストでは、動作は、1つまたは複数のプロセッサによって実行されたとき、列挙された動作を実行する、1つまたは複数のコンピュータ可読記憶媒体に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実行するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が記載される順序は限定として解釈されるものではなく、任意の数の記載された動作は、プロセスを実装するために任意の順序で、および/または並行して組み合わされ得る。 [0153] The processes described herein may be represented as logical flowcharts, where their operations represent a sequence of operations that can be performed in hardware, computer instructions, or a combination thereof. In the context of computer instructions, an operation represents a computer-executable instruction stored in one or more computer-readable storage media that, when executed by one or more processors, performs the enumerated operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc., that perform a particular function or implement a particular data type. The order in which operations are described is not to be interpreted as limiting, and any number of described operations may be combined in any order and/or in parallel to implement a process.

[0154] さらに、本明細書に記載されたプロセスは、実行可能命令で構成された1つまたは複数のコンピュータシステムの制御下で実行される場合があり、1つまたは複数のプロセッサ上で、ハードウェアによって、またはそれらの組合せで一括して実行するコード(たとえば、実行可能命令、1つもしくは複数のコンピュータプログラム、または1つもしくは複数のアプリケーション)として実装される場合がある。上述されたように、コードは、たとえば、1つまたは複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体または機械可読記憶媒体に記憶される場合がある。コンピュータ可読記憶媒体または機械可読記憶媒体は、非一時的であり得る。 [0154] Furthermore, the processes described herein may be executed under the control of one or more computer systems consisting of executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) executed collectively by hardware or in combination thereof on one or more processors. As stated above, the code may be stored in a computer-readable or machine-readable storage medium in the form of a computer program comprising multiple instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-temporary.

[0155] 図12は、本明細書に記載された様々な技法を実装することができる例示的なコンピューティングデバイスの例示的なコンピューティングデバイスアーキテクチャ1200を示す。いくつかの例では、コンピューティングデバイスは、モバイルデバイス、ウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、ビデオサーバ、車両(もしくは車両のコンピューティングデバイス)、または他のデバイスを含むことができる。たとえば、コンピューティングデバイスアーキテクチャ1200は、図6のシステムを実装することができる。コンピューティングデバイスアーキテクチャ1200の構成要素は、バスなどの接続1205を使用して互いに電気通信しているように図示されている。例示的なコンピューティングデバイスアーキテクチャ1200は、処理ユニット(CPUまたはプロセッサ)1210と、読取り専用メモリ(ROM)1220およびランダムアクセスメモリ(RAM)1225などのコンピューティングデバイスメモリ1215を含む様々なコンピューティングデバイス構成要素をプロセッサ1210に結合するコンピューティングデバイス接続1205とを含む。 [0155] Figure 12 shows an exemplary computing device architecture 1200 of an exemplary computing device that can implement various techniques described herein. In some examples, the computing device may include a mobile device, a wearable device, an extended reality device (e.g., a virtual reality (VR) device, an augmented reality (AR) device, or a mixed reality (MR) device), a personal computer, a laptop computer, a video server, a vehicle (or a computing device in a vehicle), or other device. For example, the computing device architecture 1200 can implement the system shown in Figure 6. The components of the computing device architecture 1200 are shown communicating with each other using a connection 1205 such as a bus. The exemplary computing device architecture 1200 includes a processing unit (CPU or processor) 1210 and a computing device connection 1205 that connects various computing device components to the processor 1210, including a computing device memory 1215 such as read-only memory (ROM) 1220 and random access memory (RAM) 1225.

[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は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含んでいる自給式システムであり得る。マルチコアプロセッサは、対称であっても、非対称であってもよい。 [0156] The computing device architecture 1200 may include a cache of high-speed memory that is directly connected to the processor 1210, very close to the processor 1210, or integrated as part of the processor 1210. The computing device architecture 1200 may copy data from memory 1215 and/or storage device 1230 to the cache 1212 for rapid access by the processor 1210. In this way, the cache can provide performance improvements that avoid delays in the processor 1210 while waiting for data. These and other modules may be able to control the processor 1210 to perform various actions, or may be configured to control the processor 1210. Other computing device memories 1215 may also be available for use. Memory 1215 may include several different types of memory with different performance characteristics. The processor 1210 may include any general-purpose processor, hardware or software services such as services 1232, 2234, and 31236 stored in the storage device 1230 and configured to control the processor 1210, as well as a dedicated processor in which software instructions are incorporated into the processor design. The processor 1210 may be a self-contained system including multiple cores or processors, a bus, a memory controller, a cache, etc. The multi-core processor may be symmetrical or asymmetrical.

[0157] コンピューティングデバイスアーキテクチャ1200とのユーザ対話を可能にするために、入力デバイス1245は、音声用のマイクロフォン、ジェスチャまたはグラフィカル入力用のタッチ式スクリーン、キーボード、マウス、動き入力、音声などの、任意の数の入力機構を表すことができる。出力デバイス1235も、ディスプレイ、プロジェクタ、テレビジョン、スピーカデバイスなどの、当業者に知られたいくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、マルチモーダルコンピューティングデバイスは、ユーザがコンピューティングデバイスアーキテクチャ1200と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース1240は、概して、ユーザ入力とコンピューティングデバイス出力とを統制および管理することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、本明細書での基本的な特徴は、改善されたハードウェア構成またはファームウェア構成が開発されるにつれて、それらで容易に代用されてもよい。 [0157] To enable user interaction with the computing device architecture 1200, the input device 1245 can represent any number of input mechanisms, such as a microphone for voice, a touch screen for gesture or graphical input, a keyboard, a mouse, motion input, or voice. The output device 1235 can also be one or more of several output mechanisms known to those skilled in the art, such as a display, projector, television, or speaker device. In some cases, a multimodal computing device can allow the user to provide multiple types of inputs for communication with the computing device architecture 1200. The communication interface 1240 can generally control and manage user inputs and computing device outputs. There are no restrictions on operating on any particular hardware configuration, and therefore the basic features described herein may be readily substituted with improved hardware or firmware configurations as they are developed.

[0158] ストレージデバイス1230は不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)1225、読取り専用メモリ(ROM)1220、およびそれらのハイブリッドなどの、コンピュータによってアクセス可能なデータを記憶することができる、ハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。ストレージデバイス1230は、プロセッサ1210を制御するためのサービス1232、1234、1236を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールが考えられる。ストレージデバイス1230は、コンピューティングデバイス接続1205に接続され得る。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ1210、接続1205、出力デバイス1235などの必要なハードウェア構成要素とともに、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。 [0158] The storage device 1230 is a non-volatile memory and may be a hard disk or other type of computer-readable medium capable of storing computer-accessible data, such as a magnetic cassette, flash memory card, solid-state memory device, digital versatile disk, cartridge, random access memory (RAM) 1225, read-only memory (ROM) 1220, and hybrids thereof. The storage device 1230 may include services 1232, 1234, and 1236 for controlling the processor 1210. Other hardware or software modules are possible. The storage device 1230 may be connected to the computing device connection 1205. In one embodiment, a hardware module performing a particular function may include software components stored on a computer-readable medium, along with the necessary hardware components such as the processor 1210, the connection 1205, and the output device 1235, in order to perform that function.

[0159] 本開示の態様は、1つまたは複数のアクティブ深度検知システムを含むか、またはそれに結合された(セキュリティシステム、スマートフォン、タブレット、ラップトップコンピュータ、車両、ドローン、または他のデバイスなどの)任意の適切な電子デバイスに適用可能である。1つの光プロジェクタを有するか、またはそれに結合されたデバイスに関して以下に記載されるが、本開示の態様は、任意の数の光プロジェクタを有するデバイスに適用可能であり、したがって、特定のデバイスに限定されない。 [0159] Aspects of this disclosure are applicable to any suitable electronic device (such as a security system, smartphone, tablet, laptop computer, vehicle, drone, or other device) that includes or is coupled with one or more active depth sensing systems. While the following describes a device having or being coupled with one optical projector, aspects of this disclosure are applicable to devices having any number of optical projectors and are therefore not limited to any particular device.

[0160] 「デバイス」という用語は、(1つのスマートフォン、1つのコントローラ、1つの処理システムなどの)1つまたは特定の数の物理オブジェクトに限定されない。本明細書で使用されるデバイスは、本開示の少なくともいくつかの部分を実装することができる1つまたは複数の部分を有する任意の電子デバイスであり得る。以下の説明および例は、本開示の様々な態様を記載するために「デバイス」という用語を使用するが、「デバイス」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。さらに、「システム」という用語は、複数の構成要素または特定の実施形態に限定されない。たとえば、システムは、1つまたは複数のプリント回路基板または他の基板上に実装される場合があり、可動または静的な構成要素を有する場合がある。以下の説明および例は、本開示の様々な態様を記載するために「システム」という用語を使用するが、「システム」という用語は、特定の構成、タイプ、またはオブジェクトの数に限定されない。 [0160] The term “device” is not limited to one or a specific number of physical objects (such as one smartphone, one controller, or one processing system). As used herein, a device may be any electronic device having one or more parts that can implement at least some parts of this disclosure. The following descriptions and examples use the term “device” to describe various aspects of this disclosure, but the term “device” is not limited to a specific configuration, type, or number of objects. Furthermore, the term “system” is not limited to multiple components or a specific embodiment. For example, a system may be mounted on one or more printed circuit boards or other substrates and may have movable or static components. The following descriptions and examples use the term “system” to describe various aspects of this disclosure, but the term “system” is not limited to a specific configuration, type, or number of objects.

[0161] 本明細書で提供される実施形態および例の完全な理解を提供するために、上記の説明で具体的な詳細が提供されている。しかしながら、実施形態はこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明確にするために、いくつかの事例では、本技術は、デバイス、デバイス構成要素、ソフトウェアで具現された方法におけるステップもしくはルーチン、またはハードウェアとソフトウェアの組合せを備える機能ブロックを含む、個々の機能ブロックを含むものとして提示される場合がある。図に示された、および/または本明細書に記載された構成要素以外のさらなる構成要素が使用されてもよい。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、不要な詳細で実施形態を不明瞭にしないためにブロック図の形態で構成要素として示される場合がある。他の事例では、実施形態を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不要な詳細なしに示される場合がある。 [0161] Specific details are provided in the above description in order to provide a complete understanding of the embodiments and examples provided herein. However, it will be understood by those skilled in the art that embodiments can be practiced without these specific details. For clarity of the description, in some cases the technology may be presented as including individual functional blocks, which include devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software. Further components other than those shown in the figures and/or described herein may be used. For example, circuits, systems, networks, processes, and other components may be shown as components in the form of block diagrams in order to avoid obscuring the embodiments with unnecessary details. In other cases, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary details in order to avoid obscuring the embodiments.

[0162] 個々の実施形態は、フローチャート、流れ図、データフロー図、構造図、またはブロック図として描写されたプロセスまたは方法として上述されている場合がある。フローチャートは動作を逐次プロセスとして記載する場合があるが、動作の多くは並行してまたは同時に実行され得る。加えて、動作の順序は並べ替えられてもよい。プロセスの動作が完了したときにプロセスは終了するが、図に含まれない追加のステップを有する可能性がある。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応することができる。プロセスが関数に対応するとき、その終了は、呼出し関数またはメイン関数への関数のリターンに対応することができる。 [0162] Individual embodiments may be described above as processes or methods depicted as flowcharts, flow diagrams, data flow diagrams, structural diagrams, or block diagrams. While flowcharts may describe operations as sequential processes, many operations may be performed in parallel or simultaneously. In addition, the order of operations may be rearranged. A process terminates when its operations are complete, but it may have additional steps not shown in the diagram. A process can correspond to a method, function, procedure, subroutine, subprogram, etc. When a process corresponds to a function, its termination may correspond to the function's return to the calling function or main function.

[0163] 上述された例によるプロセスおよび方法は、記憶されるかまたはさもなければコンピュータ可読媒体から利用可能であるコンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスにある機能または機能のグループを実行させるか、またはさもなければそれらを実行するように構成する、命令とデータとを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、ソースコードなどであり得る。 [0163] The processes and methods described above may be implemented using computer-executable instructions that are stored or otherwise available from a computer-readable medium. Such instructions may include instructions and data that cause, for example, a general-purpose computer, a dedicated computer, or a processing device to execute or otherwise configure a function or group of functions to execute. The portion of computer resources used may be accessible via a network. Computer-executable instructions may include, for example, binaries, intermediate format instructions such as assembly language, firmware, source code, etc.

[0164] 「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルのストレージデバイス、光ストレージデバイス、ならびに命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得、ワイヤレスに、または有線接続を介して伝搬する搬送波および/または一時的電子信号を含まない非一時的媒体を含む場合がある。非一時的媒体の例には、限定はしないが、とりわけ、磁気ディスクまたは磁気テープ、フラッシュメモリなどの光記憶媒体、メモリまたはメモリデバイス、磁気ディスクまたは光学ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続されたストレージデバイス、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)、それらの任意の適切な組合せが含まれ得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表すことができるコードおよび/または機械実行可能命令をその上に記憶している場合がある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することにより、別のコードセグメントまたはハードウェア回路に結合される場合がある。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介してパス、転送、または送信される場合がある。 [0164] The term “computer-readable media” includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or transporting instructions and/or data. Computer-readable media may include non-temporary media on which data may be stored and which do not contain carrier waves and/or temporary electronic signals that propagate wirelessly or via wired connections. Examples of non-temporary media may include, but are not limited to, magnetic disks or magnetic tapes, optical storage media such as flash memory, memory or memory devices, magnetic disks or optical disks, flash memory, USB devices with non-volatile memory, network-attached storage devices, compact discs (CDs) or digital multipurpose discs (DVDs), and any appropriate combination thereof. Computer-readable media may store thereon code and/or machine-executable instructions that can represent any combination of procedures, functions, subprograms, programs, routines, subroutines, modules, software packages, classes, or instructions, data structures, or program statements. Code segments may be coupled to other code segments or hardware circuits by passing and/or receiving information, data, arguments, parameters, or memory content. Information, arguments, parameters, data, etc., may be passed, transferred, or transmitted via any appropriate means, including memory sharing, message passing, token passing, and network transmission.

[0165] いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含んでいるケーブルまたはワイヤレス信号を含むことができる。しかしながら、述べられるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号自体などの媒体を明確に除外する。 [0165] In some embodiments, computer-readable storage devices, media, and memory may include cables or wireless signals containing bitstreams, etc. However, as stated, non-transient computer-readable storage media explicitly exclude media such as energy, carrier signals, electromagnetic waves, and the signals themselves.

[0166] これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードに実装されると、必要なタスクを実行するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶される場合がある。プロセッサが必要なタスクを実行することができる。フォームファクタの典型的な例には、ラップトップ、スマートフォン、携帯電話、タブレットデバイス、または他のスモールフォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが含まれる。本明細書に記載された機能はまた、周辺機器またはアドインカード内で具現化され得る。そのような機能はまた、さらなる例として、単一のデバイス内で実行する異なるチップまたは異なるプロセスの間の回路基板上に実装され得る。 [0166] Devices implementing the processes and methods described herein may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take any of a variety of form factors. When implemented in software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) for performing the required tasks may be stored in computer-readable or machine-readable media. The processor can then perform the required tasks. Typical examples of form factors include laptops, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mount devices, and standalone devices. The functions described herein may also be embodied within peripheral devices or add-in cards. Such functions may also, as a further example, be implemented on a circuit board between different chips or different processes running within a single device.

[0167] 命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示に記載された機能を提供するための例示的な手段である。 [0167] Instructions, a medium for transmitting such instructions, computing resources for executing them, and other structures for supporting such computing resources are exemplary means for providing the functions described herein.

[0168] 上記の説明では、本出願の態様がその特定の実施形態を参照して記載されているが、本出願はそれに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に記載されているが、従来技術によって限定される場合を除き、本発明の概念は、場合によっては様々に具現化および採用される場合があり、添付の特許請求の範囲は、そのような変形形態を含むように解釈されるものであることを理解されたい。上述された適用例の様々な特徴および態様は、個々にまたは一緒に使用されてもよい。さらに、実施形態は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書に記載されたもの以外に、任意の数の環境および適用例において利用され得る。したがって、本明細書および図面は、限定的ではなく例示的と見なされるべきである。説明の目的で、方法は特定の順序で記載された。代替の実施形態では、方法は、記載された順序とは異なる順序で実行されてもよいことを諒解されたい。 [0168] While the above description refers to aspects of this application with reference to specific embodiments, those skilled in the art will recognize that this application is not limited thereto. Therefore, although exemplary embodiments of this application are described in detail herein, it should be understood that, except as limited by the prior art, the concepts of the present invention may be embodied and employed in various ways, and the appended claims should be construed to include such variations. The various features and aspects of the above-described examples of application may be used individually or together. Furthermore, embodiments may be used in any number of environments and applications other than those described herein without departing from the broader spirit and scope of this specification. Therefore, this specification and the drawings should be considered illustrative, not restrictive. For illustrative purposes, the methods are described in a specific order. It should be understood that in alternative embodiments, the methods may be performed in a different order than described.

[0169] 本明細書で使用される、より小さい(「<」)およびより大きい(「>」)というシンボルまたは用語は、本明細書の範囲から逸脱することなく、それぞれ、より小さいかまたはそれに等しい(「≦」)およびより大きいかまたはそれに等しい(「≧」)というシンボルと置き換えられ得ることを当業者は諒解されよう。 [0169] Those skilled in the art will understand that the symbols or terms less than ("<") and greater than (">") used herein may be replaced, without departing from the scope of this specification, with the symbols less than or equal to ("≦") and greater than or equal to ("≧"), respectively.

[0170] 構成要素が特定の動作を実行する「ように構成される」ものとして記載される場合、そのような構成は、たとえば、その動作を実行するように電子回路もしくは他のハードウェアを設計することにより、その動作を実行するようにプログラム可能な電子回路(たとえば、マイクロプロセッサ、もしくは他の適切な電子回路)をプログラムすることにより、またはそれらの任意の組合せで達成され得る。 [0170] Where a component is described as “configured” to perform a particular operation, such configuration may be achieved, for example, by designing electronic circuitry or other hardware to perform that operation, by programming programmable electronic circuitry (e.g., a microprocessor or other suitable electronic circuitry) to perform that operation, or by any combination thereof.

[0171] 「に結合された」という句は、直接的または間接的のいずれかで別の構成要素に物理的に接続された任意の構成要素、ならびに/あるいは直接的または間接的のいずれかで別の構成要素と通信している(たとえば、有線もしくはワイヤレス接続、および/または他の適切な通信インターフェースを介して他の構成要素に接続された)任意の構成要素を指す。 [0171] The phrase “combined” refers to any component that is physically connected to another component, either directly or indirectly, and/or any component that communicates with another component, either directly or indirectly (for example, connected to another component via a wired or wireless connection, and/or other appropriate communication interface).

[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のセット内に列挙されていない項目を含むことができる。 [0172] Claim language or other language listing “at least one of” a set and/or “one or more” of a set indicates that one or more members of a set (any combination of) satisfy the claim. For example, claim language listing “at least one of A and B” or “at least one of A or B” means A, B, or A and B. In another example, claim language listing “at least one of A, B, and C” or “at least one of A, B, or C” means A, B, C, or A and B, or A and C, or B and C, or A and B and C. The language “at least one of” a set and/or “one or more” of a set does not limit the set to the items listed within it. For example, claim wording that lists "at least one of A and B" or "at least one of A or B" can mean A, B, or A and B, and may also include items not listed within the set of A and B.

[0173] 本明細書に開示された実施形態に関して記載された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装される場合がある。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概してそれらの機能に関して上述されている。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、記載された機能を特定の適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本出願の範囲からの逸脱を生じるものと解釈されるべきではない。 [0173] Various exemplary logic blocks, modules, circuits, and algorithmic steps described in relation to embodiments disclosed herein may be implemented as electronic hardware, computer software, firmware, or a combination thereof. To clearly demonstrate this hardware- and software compatibility, various exemplary components, blocks, modules, circuits, and steps are described above in general terms of their function. Whether such functions are implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functions in various ways for each specific application, but such implementation decisions should not be construed as resulting in a departure from the scope of this application.

[0174] 本明細書に記載された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装される場合がある。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイス内のアプリケーションを含む複数の用途を有する集積回路デバイスなどの様々なデバイスのいずれかに実装される場合がある。モジュールまたは構成要素として記載された任意の特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別個に実装される場合がある。ソフトウェアに実装された場合、技法は、実行されると、上述された方法のうちの1つまたは複数を実行する命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって少なくとも部分的に実現される場合がある。コンピュータ可読データ記憶媒体は、パッケージング材料を含む場合があるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読媒体は、同期型ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM(登録商標))、FLASH(登録商標)メモリ、磁気または光学データ記憶媒体などのメモリまたはデータ記憶媒体を備えることができる。技法は、追加または代替として、伝搬信号または電波などの、命令またはデータ構造の形式でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、および/または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現される場合がある。 [0174] The techniques described herein may also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques may be implemented in any of a variety of devices, such as general-purpose computers, wireless communication device handsets, or integrated circuit devices having multiple applications, including applications in wireless communication device handsets and other devices. Any feature described as a module or component may be implemented together in an integrated logic device, or separately as individual but interoperable logic devices. If implemented in software, the techniques may be at least partially implemented by a computer-readable data storage medium having program code that, when executed, includes instructions to perform one or more of the methods described above. The computer-readable data storage medium may form part of a computer program product, which may include packaging materials. Computer-readable media may include random access memory (RAM), such as synchronous dynamic random access memory (SDRAM), read-only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable programmable read-only memory (EEPROM®), FLASH® memory, and magnetic or optical data storage media. The technique may, as an addition or alternative, be at least partially implemented by computer-readable communication media, such as propagating signals or radio waves, that carry or communicate program code in the form of instructions or data structures, and can be accessed, read, and/or executed by a computer.

[0175] プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路もしくはディスクリート論理回路などの、1つまたは複数のプロセッサを含む場合があるプロセッサによって実行される場合がある。そのようなプロセッサは、本開示に記載された技法のうちのいずれかを実行するように構成される場合がある。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装される場合がある。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書に記載された技法の実装に適切な任意の他の構造もしくは装置のいずれかを指すことができる。 [0175] The program code may be executed by a processor which may include one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Such a processor may be configured to perform any of the techniques described herein. A general-purpose processor may be a microprocessor, but alternatively, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, for example, a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working with a DSP core, or any other such configuration. Thus, the term “processor” as used herein may refer to any of the above structures, any combination thereof, or any other structure or device suitable for implementing the techniques described herein.

[0176] 本開示の例示的な例には、以下が含まれる。 [0176] Illustrative examples of the present disclosure include:

[0177] 態様1:ビデオデータを処理する方法であって、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を備える、方法。 [0177] Embodiment 1: A method for processing video data, comprising: acquiring input video data containing at least one luminance component of the current frame using a machine learning system; and using the machine learning system to determine motion information for at least one luminance component of the current frame and motion information for one or more chrominance components of the current frame, using at least one luminance component of the current frame.

[0178] 態様2:現在のフレームの少なくとも1つのルミナンス成分の動き情報と現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを使用する機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測を決定することと、をさらに備える、態様1に記載の方法。 [0178] Embodiment 2: The method according to Embodiment 1, further comprising: determining the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame by a machine learning system using motion information of at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame; and determining one or more interframe predictions of the current frame using the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame.

[0179] 態様3:1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、態様2に記載の方法。 [0179] Embodiment 3: The method according to Embodiment 2, wherein one or more interframe predictions are determined at least partially by applying an interpolation operation using a warping parameter for at least one luminance component of the current frame and one or more warping parameters for one or more chrominance components of the current frame.

[0180] 態様4:補間演算がトリリニア補間演算を含む、態様3に記載の方法。 [0180] Embodiment 4: The method according to Embodiment 3, wherein the interpolation operation includes trilinear interpolation.

[0181] 態様5:現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む、態様2から4のいずれか1つに記載の方法。 [0181] Embodiment 5: The method according to any one of Embodiments 2 to 4, wherein the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame include a spatial scale flow (SSF) warping parameter.

[0182] 態様6:SSFワーピングパラメータが、学習されたスケールフローベクトルを含む、態様5に記載の方法。 [0182] Embodiment 6: The method according to Embodiment 5, wherein the SSF warping parameters include a learned scale flow vector.

[0183] 態様7:現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することは、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定することと、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を含む、態様1から6のいずれか1つに記載の方法。 [0183] Embodiment 7: The method according to any one of Embodiments 1 to 6, wherein determining the motion information of at least one luminance component of the current frame and the motion information of one or more chrominance components of the current frame using at least one luminance component of the current frame comprises: determining the motion information of at least one luminance component of the current frame based on at least one luminance component of the current frame and at least one restored lumen component of the previous frame; and determining the motion information of one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame.

[0184] 態様8:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される、態様7に記載の方法。 [0184] Embodiment 8: The method according to Embodiment 7, wherein motion information of one or more chrominance components of the current frame is determined using a convolutional layer of a machine learning system.

[0185] 態様9:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングすることによって少なくとも部分的に決定される、態様7に記載の方法。 [0185] Embodiment 9: The method according to Embodiment 7, wherein the motion information of one or more chrominance components of the current frame is determined at least partially by sampling motion information determined for at least one luminance component of the current frame.

[0186] 態様10:現在のフレームがビデオフレームを含む、態様1から9のいずれか1つに記載の方法。 [0186] Embodiment 10: The method according to any one of Embodiments 1 to 9, wherein the current frame includes a video frame.

[0187] 態様11:1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、態様1から10のいずれか1つに記載の方法。 [0187] Embodiment 11: The method according to any one of Embodiments 1 to 10, wherein one or more chrominance components include at least one chrominance blue component and at least one chrominance red component.

[0188] 態様12:現在のフレームが、ルミナンス-クロミナンス(YUV)フォーマットを有する、態様1から11のいずれか1つに記載の方法。 [0188] Embodiment 12: The method according to any one of Embodiments 1 to 11, wherein the current frame has a luminance-chrominance (YUV) format.

[0189] 態様13:YUVフォーマットが、YUV4:2:0フォーマットである、態様12に記載の方法。 [0189] Embodiment 13: The method according to Embodiment 12, wherein the YUV format is the YUV4:2:0 format.

[0190] 態様14:ビデオデータを処理するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合された1つまたは複数のプロセッサと、を備え、1つまたは複数のプロセッサは、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成される、装置。 [0190] Embodiment 14: An apparatus for processing video data, comprising at least one memory and one or more processors coupled to the at least one memory, wherein the one or more processors are configured to use a machine learning system to acquire input video data including at least one luminance component of the current frame, and to use the machine learning system to determine motion information of at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame.

[0191] 態様15:1つまたは複数のプロセッサが、現在のフレームの少なくとも1つのルミナンス成分の動き情報および現在のフレームの1つまたは複数のクロミナンス成分の動き情報に基づいて、機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定し、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用して、現在のフレームの1つまたは複数のインターフレーム予測を決定するように構成される、態様14に記載の装置。 [0191] Embodiment 15: The apparatus according to Embodiment 14, wherein one or more processors are configured to use a machine learning system to determine the warping parameters of at least one luminance component and one or more chrominance components of the current frame, based on motion information of at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame, and to determine one or more interframe predictions of the current frame using the warping parameters of at least one luminance component and one or more chrominance components of the current frame.

[0192] 態様16:1つまたは複数のインターフレーム予測は、現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、態様15に記載の装置。 [0192] Embodiment 16: The apparatus according to Embodiment 15, wherein one or more interframe predictions are determined at least partially by applying an interpolation operation using a warping parameter of at least one luminance component of the current frame and one or more warping parameters of one or more chrominance components of the current frame.

[0193] 態様17:補間演算が、トリリニア補間演算を含む、態様16に記載の装置。 [0193] Embodiment 17: The apparatus according to Embodiment 16, wherein the interpolation operation includes trilinear interpolation.

[0194] 態様18:現在のフレームの少なくとも1つのルミナンス成分のワーピングパラメータと、現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータは、空間スケールフロー(SSF)ワーピングパラメータを含む、態様15から17のいずれか1つに記載の装置。 [0194] Embodiment 18: The apparatus according to any one of Embodiments 15 to 17, wherein the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame include a spatial scale flow (SSF) warping parameter.

[0195] 態様19:SSFワーピングパラメータが、学習されたスケールフローベクトルを含む、態様18に記載の装置。 [0195] Embodiment 19: The apparatus according to Embodiment 18, wherein the SSF warping parameters include a learned scale flow vector.

[0196] 態様20:現在のフレームの少なくとも1つのルミナンス成分を使用して、現在のフレームの少なくとも1つのルミナンス成分の動き情報と、現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するために、1つまたは複数のプロセッサは、現在のフレームの少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、現在のフレームの少なくとも1つのルミナンス成分の動き情報を決定し、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報を使用して、現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するように構成される、態様14から19のいずれか1つに記載の装置。 [0196] Embodiment 20: An apparatus according to any one of embodiments 14 to 19, wherein one or more processors are configured to determine the motion information of at least one luminance component of the current frame and the motion information of one or more chrominance components of the current frame, using at least one luminance component of the current frame, by determining the motion information of at least one luminance component of the current frame based on at least one luminance component of the current frame and at least one restored lumen component of the previous frame, and then determining the motion information of one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame.

[0197] 態様21:現在のフレームの1つまたは複数のクロミナンス成分の動き情報は、機械学習システムの畳み込みレイヤを使用して決定される、態様20に記載の装置。 [0197] Embodiment 21: The apparatus according to Embodiment 20, wherein motion information of one or more chrominance components of the current frame is determined using a convolutional layer of a machine learning system.

[0198] 態様22:現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定するために、1つまたは複数のプロセッサは、現在のフレームの少なくとも1つのルミナンス成分について決定された動き情報をサンプリングするように構成される、態様20に記載の装置。 [0198] Embodiment 22: The apparatus according to Embodiment 20, wherein one or more processors are configured to sample motion information determined for at least one luminance component of the current frame in order to determine motion information for one or more chrominance components of the current frame.

[0199] 態様23:現在のフレームがビデオフレームを含む、態様14から22のいずれか1つに記載の装置。 [0199] Embodiment 23: The apparatus according to any one of Embodiments 14 to 22, wherein the current frame includes a video frame.

[0200] 態様24:1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、態様14から23のいずれか1つに記載の装置。 [0200] Embodiment 24: The apparatus according to any one of Embodiments 14 to 23, wherein one or more chrominance components include at least one chrominance blue component and at least one chrominance red component.

[0201] 態様25:現在のフレームがルミナンス-クロミナンス(YUV)フォーマットを有する、態様14から24に記載の装置。 [0201] Embodiment 25: The apparatus according to embodiments 14 to 24, wherein the current frame has a luminance-chrominance (YUV) format.

[0202] 態様26:YUVフォーマットが、YUV4:2:0フォーマットである、態様25に記載の装置。 [0202] Embodiment 26: The apparatus according to Embodiment 25, wherein the YUV format is the YUV4:2:0 format.

[0203] 態様27:1つまたは複数のフレームをキャプチャするように構成された少なくとも1つのカメラをさらに備える、態様14から26のいずれか1つに記載の装置。 [0203] Embodiment 27: The apparatus according to any one of embodiments 14 to 26, further comprising at least one camera configured to capture one or more frames.

[0204] 態様28:1つまたは複数のフレームを表示するように構成された少なくとも1つのディスプレイをさらに備える、態様14から27のいずれか1つに記載の装置。 [0204] Embodiment 28: The apparatus according to any one of embodiments 14 to 27, further comprising at least one display configured to display one or more frames.

[0205] 態様29:モバイルデバイスを含む、態様14から28のいずれか1つに記載の装置。 [0205] Embodiment 29: The apparatus according to any one of Embodiments 14 to 28, including a mobile device.

[0206] 態様30:実行されると、1つまたは複数のプロセッサに、態様1から29に記載の動作のいずれかを実行させる命令を記憶する、コンピュータ可読記憶媒体。 [0206] Embodiment 30: A computer-readable storage medium that, when executed, stores instructions causing one or more processors to perform any of the operations described in Embodiments 1 to 29.

[0207] 態様31:態様1から29に記載の動作のいずれかを実行するための手段を備える、装置。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを処理する方法であって、
機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、
前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を備える、方法。
[C2]
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを使用する前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分のワーピングパラメータと、前記現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用して、前記現在のフレームの1つまたは複数のインターフレーム予測を決定することと、をさらに備える、C1に記載の方法。
[C3]
前記1つまたは複数のインターフレーム予測は、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、C2に記載の方法。
[C4]
前記補間演算は、トリリニア補間演算を含む、C3に記載の方法。
[C5]
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとが、空間スケールフロー(SSF)ワーピングパラメータを含む、C2に記載の方法。
[C6]
前記SSFワーピングパラメータは、学習されたスケールフローベクトルを含む、C5に記載の方法。
[C7]
前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを決定することが、
前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報を決定することと、
前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定することと、を含む、C1に記載の方法。
[C8]
前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記機械学習システムの畳み込みレイヤを使用して決定される、C7に記載の方法。
[C9]
前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報をサンプリングすることによって少なくとも部分的に決定される、C7に記載の方法。
[C10]
前記現在のフレームはビデオフレームを含む、C1に記載の方法。
[C11]
前記1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、C1に記載の方法。
[C12]
前記現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、C1に記載の方法。
[C13]
前記YUVフォーマットは、YUV4:2:0フォーマットである、C12に記載の方法。
[C14]
ビデオデータを処理するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得し、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定するように構成される、装置。
[C15]
前記1つまたは複数のプロセッサは、
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報および前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報に基づいて前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分のワーピングパラメータと前記現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定し、
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用して、前記現在のフレームの1つまたは複数のインターフレーム予測を決定するように構成される、C14に記載の装置。
[C16]
前記1つまたは複数のインターフレーム予測は、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、C15に記載の装置。
[C17]
前記補間演算は、トリリニア補間演算を含む、C16に記載の装置。
[C18]
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとが、空間スケールフロー(SSF)ワーピングパラメータを含む、C15に記載の装置。
[C19]
前記SSFワーピングパラメータは、学習されたスケールフローベクトルを含む、C18に記載の装置。
[C20]
前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを決定するために、前記1つまたは複数のプロセッサは、
前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルーマ成分に基づいて、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報を決定し、
前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定するように構成される、C14に記載の装置。
[C21]
前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記機械学習システムの畳み込みレイヤを使用して決定される、C20に記載の装置。
[C22]
前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報を決定するために、前記1つまたは複数のプロセッサは、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報をサンプリングするように構成される、C20に記載の装置。
[C23]
前記現在のフレームはビデオフレームを含む、C14に記載の装置。
[C24]
前記1つまたは複数のクロミナンス成分は、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、C14に記載の装置。
[C25]
前記現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、C14に記載の装置。
[C26]
前記YUVフォーマットは、YUV4:2:0フォーマットである、C25に記載の装置。
[C27]
1つまたは複数のフレームをキャプチャするように構成された少なくとも1つのカメラをさらに備える、C14に記載の装置。
[C28]
1つまたは複数のフレームを表示するように構成された少なくとも1つのディスプレイをさらに備える、C14に記載の装置。
[C29]
モバイルデバイスを含む、C14に記載の装置。
[C30]
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分を含む入力ビデオデータを取得することと、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報と、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報とを決定することと、を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
[0207] Embodiment 31: An apparatus comprising means for performing any of the operations described in Embodiments 1 to 29.
The invention described in the original claims of this application is listed below.
[C1]
A method for processing video data,
The machine learning system acquires input video data containing at least one luminance component of the current frame,
A method comprising: using the machine learning system to determine motion information of the at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame, using the at least one luminance component of the current frame.
[C2]
The machine learning system determines the warping parameter of the at least one luminance component of the current frame and the warping parameter of the one or more chrominance components of the current frame, using the motion information of the at least one luminance component of the current frame and the motion information of the one or more chrominance components of the current frame.
The method according to C1, further comprising determining one or more interframe predictions of the current frame using the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame.
[C3]
The method according to C2, wherein the one or more interframe predictions are at least partially determined by applying an interpolation operation using the warping parameter of the at least one luminance component of the current frame and the one or more warping parameters of the one or more chrominance components of the current frame.
[C4]
The interpolation operation is the method described in C3, which includes a trilinear interpolation operation.
[C5]
The method according to C2, wherein the warping parameter of the at least one luminance component of the current frame and the warping parameter of the one or more chrominance components of the current frame include a spatial scale flow (SSF) warping parameter.
[C6]
The method of C5 wherein the SSF warping parameters include a learned scale flow vector.
[C7]
Using the at least one luminance component of the current frame, the motion information of the at least one luminance component of the current frame and the motion information of the one or more chrominance components of the current frame are determined.
Based on the at least one luminance component of the current frame and the at least one restored lumens component of the previous frame, the motion information of the at least one luminance component of the current frame is determined.
The method according to C1, comprising determining the motion information of one or more chrominance components of the current frame using the motion information determined for the at least one luminance component of the current frame.
[C8]
The method according to C7, wherein the motion information of one or more chrominance components of the current frame is determined using a convolutional layer of the machine learning system.
[C9]
The method according to C7, wherein the motion information of one or more chrominance components of the current frame is determined at least partially by sampling the motion information determined for at least one luminance component of the current frame.
[C10]
The method according to C1, wherein the current frame includes a video frame.
[C11]
The method according to C1, wherein the one or more chrominance components include at least one chrominance blue component and at least one chrominance red component.
[C12]
The present frame is the method according to C1, having a luminance-chrominance (YUV) format.
[C13]
The method according to C12, wherein the YUV format is the YUV4:2:0 format.
[C14]
A device for processing video data,
At least one memory,
The system comprises one or more processors coupled to at least one memory, and the one or more processors are
Using a machine learning system, we obtain input video data that includes at least one luminance component of the current frame.
An apparatus configured to use the machine learning system to determine motion information of the at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame, using the at least one luminance component of the current frame.
[C15]
The one or more processors described above are
Based on the motion information of the at least one luminance component of the current frame and the motion information of the one or more chrominance components of the current frame, the machine learning system is used to determine the warping parameter of the at least one luminance component of the current frame and the warping parameter of the one or more chrominance components of the current frame.
The apparatus according to C14, configured to determine one or more interframe predictions of the current frame using the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame.
[C16]
The apparatus according to C15, wherein the one or more interframe predictions are at least partially determined by applying an interpolation operation using the warping parameter of the at least one luminance component of the current frame and the one or more warping parameters of the one or more chrominance components of the current frame.
[C17]
The apparatus according to C16, wherein the interpolation operation includes a trilinear interpolation operation.
[C18]
The apparatus according to C15, wherein the warping parameter of the at least one luminance component of the current frame and the warping parameters of the one or more chrominance components of the current frame include a spatial scale flow (SSF) warping parameter.
[C19]
The apparatus according to C18, wherein the SSF warping parameters include a learned scale flow vector.
[C20]
Using the at least one luminance component of the current frame, the one or more processors determine the motion information of the at least one luminance component of the current frame and the motion information of the one or more chrominance components of the current frame.
Based on the at least one luminance component of the current frame and the at least one restored lumens component of the previous frame, the motion information of the at least one luminance component of the current frame is determined.
The apparatus according to C14, configured to determine the motion information of one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame.
[C21]
The apparatus according to C20, wherein the motion information of one or more chrominance components of the current frame is determined using a convolutional layer of the machine learning system.
[C22]
The apparatus according to C20, wherein, in order to determine the motion information of one or more chrominance components of the current frame, one or more processors are configured to sample the motion information determined for at least one luminance component of the current frame.
[C23]
The apparatus described in C14, wherein the current frame includes a video frame.
[C24]
The apparatus according to C14, wherein the one or more chrominance components include at least one chrominance blue component and at least one chrominance red component.
[C25]
The present frame is the apparatus according to C14, having a luminance-chrominance (YUV) format.
[C26]
The apparatus described in C25, wherein the YUV format is the YUV4:2:0 format.
[C27]
The apparatus according to C14, further comprising at least one camera configured to capture one or more frames.
[C28]
The apparatus according to C14, further comprising at least one display configured to display one or more frames.
[C29]
The apparatus described in C14, including a mobile device.
[C30]
When executed by one or more processors, the one or more processors will
Using a machine learning system, acquire input video data containing at least one luminance component of the current frame,
A non-temporary computer-readable medium storing instructions for using the machine learning system to determine, using the at least one luminance component of the current frame, motion information of the at least one luminance component of the current frame and motion information of one or more chrominance components of the current frame.

Claims (15)

ビデオデータを処理する方法であって、
機械学習システムによって、現在のフレームの少なくとも1つのルミナンス成分のラテント表現を取得することと、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ラテント表現は、前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルミナンス成分に基づく、
前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ラテント表現を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報を決定することと、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を備える、方法。
A method for processing video data,
A machine learning system obtains a latent representation of at least one luminance component of the current frame, and the latent representation of the at least one luminance component of the current frame is based on the at least one luminance component of the current frame and the at least one restored luminance component of the previous frame.
The machine learning system determines the motion information of the at least one luminance component of the current frame using the latent representation of the at least one luminance component of the current frame.
A method comprising: determining motion information for one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame using the machine learning system.
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記動き情報と、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報とを使用する前記機械学習システムによって、前記現在のフレームの前記少なくとも1つのルミナンス成分のワーピングパラメータと、前記現在のフレームの1つまたは複数のクロミナンス成分の1つまたは複数のワーピングパラメータとを決定することと、
前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用して、前記現在のフレームの1つまたは複数のインターフレーム予測を決定することと、をさらに備える、請求項1に記載の方法。
The machine learning system determines the warping parameter of the at least one luminance component of the current frame and the warping parameter of the one or more chrominance components of the current frame, using the motion information of the at least one luminance component of the current frame and the motion information of the one or more chrominance components of the current frame.
The method according to claim 1, further comprising determining one or more interframe predictions for the current frame using the warping parameter of at least one luminance component of the current frame and the warping parameter of one or more chrominance components of the current frame.
前記1つまたは複数のインターフレーム予測は、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとを使用する補間演算を適用することによって少なくとも部分的に決定される、請求項2に記載の方法。 The method according to claim 2, wherein the one or more interframe predictions are at least partially determined by applying an interpolation operation using the warping parameter of the at least one luminance component of the current frame and the one or more warping parameters of the one or more chrominance components of the current frame. 前記補間演算は、トリリニア補間演算を含む、請求項3に記載の方法。 The method according to claim 3, wherein the interpolation operation includes a trilinear interpolation operation. 前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ワーピングパラメータと、前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記1つまたは複数のワーピングパラメータとが、空間スケールフロー(SSF)ワーピングパラメータを含む、請求項2に記載の方法。 The method according to claim 2, wherein the warping parameter of the at least one luminance component of the current frame and the warping parameters of the one or more chrominance components of the current frame include a spatial-scale flow (SSF) warping parameter. 前記SSFワーピングパラメータは、学習されたスケールフローベクトルを含む、請求項5に記載の方法。 The method according to claim 5, wherein the SSF warping parameters include a learned scale flow vector. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記機械学習システムの畳み込みレイヤを使用して決定される、請求項1に記載の方法。 The method according to claim 1, wherein the motion information of the one or more chrominance components of the current frame is determined using a convolutional layer of the machine learning system. 前記現在のフレームの前記1つまたは複数のクロミナンス成分の前記動き情報は、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報をサンプリングすることによって少なくとも部分的に決定される、請求項1に記載の方法。 The method according to claim 1, wherein the motion information of one or more chrominance components of the current frame is at least partially determined by sampling the motion information determined for at least one luminance component of the current frame. 前記現在のフレームはビデオフレームを含む、請求項1に記載の方法。 The method according to claim 1, wherein the current frame includes a video frame. 前記1つまたは複数のクロミナンス成分が、少なくとも1つのクロミナンス青成分と少なくとも1つのクロミナンス赤成分とを含む、請求項1に記載の方法。 The method according to claim 1, wherein the one or more chrominance components include at least one chrominance blue component and at least one chrominance red component. 前記現在のフレームは、ルミナンス-クロミナンス(YUV)フォーマットを有する、請求項1に記載の方法。 The present frame has a luminance-chrominance (YUV) format, according to claim 1. 前記YUVフォーマットは、YUV4:2:0フォーマットである、請求項11に記載の方法。 The method according to claim 11, wherein the YUV format is the YUV4:2:0 format. ビデオデータを処理するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分のラテント表現を取得することと、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ラテント表現は、前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルミナンス成分に基づく、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分のラテント表現を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報を決定することと、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を行うように構成される、装置。
A device for processing video data,
At least one memory,
The system comprises one or more processors coupled to at least one memory, and the one or more processors are
Using a machine learning system, obtain a latent representation of at least one luminance component of the current frame, and the latent representation of the at least one luminance component of the current frame is based on the at least one luminance component of the current frame and the at least one restored luminance component of the previous frame.
Using the machine learning system, the motion information of the at least one luminance component of the current frame is determined using the latent representation of the at least one luminance component of the current frame.
An apparatus configured to determine motion information for one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame using the machine learning system.
1つまたは複数のフレームをキャプチャするように構成された少なくとも1つのカメラをさらに備える、または、
1つまたは複数のフレームを表示するように構成された少なくとも1つのディスプレイをさらに備える、または、
モバイルデバイスを含む、請求項13に記載の装置。
It further comprises at least one camera configured to capture one or more frames, or
The system further comprises at least one display configured to display one or more frames, or
The apparatus according to claim 13, including a mobile device.
1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
機械学習システムを使用して、現在のフレームの少なくとも1つのルミナンス成分のラテント表現を取得することと、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ラテント表現は、前記現在のフレームの前記少なくとも1つのルミナンス成分および前のフレームの少なくとも1つの復元されたルミナンス成分に基づく、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の前記ラテント表現を使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分の動き情報を決定することと、
前記機械学習システムを使用して、前記現在のフレームの前記少なくとも1つのルミナンス成分について決定された前記動き情報を使用して、前記現在のフレームの1つまたは複数のクロミナンス成分の動き情報を決定することと、を行わせる命令を記憶した、非一時的コンピュータ可読媒体。
When executed by one or more processors, the one or more processors will
Using a machine learning system, obtain a latent representation of at least one luminance component of the current frame, and the latent representation of the at least one luminance component of the current frame is based on the at least one luminance component of the current frame and the at least one restored luminance component of the previous frame.
Using the machine learning system, the motion information of the at least one luminance component of the current frame is determined using the latent representation of the at least one luminance component of the current frame.
A non-temporary computer-readable medium storing instructions to perform the following actions: to use the machine learning system to determine motion information for one or more chrominance components of the current frame using the motion information determined for at least one luminance component of the current frame.
JP2023550114A 2021-02-25 2022-02-22 Machine learning-based flow decision for video coding Active JP7840973B2 (en)

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 (3)

Publication Number Publication Date
JP2024508772A JP2024508772A (en) 2024-02-28
JP2024508772A5 JP2024508772A5 (en) 2025-01-31
JP7840973B2 true JP7840973B2 (en) 2026-04-06

Family

ID=80683155

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023550114A Active JP7840973B2 (en) 2021-02-25 2022-02-22 Machine learning-based flow decision for video coding

Country Status (5)

Country Link
EP (1) EP4298795A1 (en)
JP (1) JP7840973B2 (en)
KR (1) KR20230150274A (en)
BR (1) BR112023016294A2 (en)
WO (1) WO2022182651A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504760A (en) 2003-09-07 2007-03-01 マイクロソフト コーポレーション Innovations in encoding and decoding macroblocks and motion information for interlaced and progressive video
WO2020107877A1 (en) 2018-11-29 2020-06-04 北京市商汤科技开发有限公司 Video compression processing method and apparatus, electronic device, and storage medium

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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504760A (en) 2003-09-07 2007-03-01 マイクロソフト コーポレーション Innovations in encoding and decoding macroblocks and motion information for interlaced and progressive video
WO2020107877A1 (en) 2018-11-29 2020-06-04 北京市商汤科技开发有限公司 Video compression processing method and apparatus, electronic device, and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Eirikur Agustsson, et al.,Scale-Space Flow for End-to-End Optimized VideoCompression,2020 IEEE/CVFConference onComputer Vision andPattern Recognition(CVPR),2020年06月13日,pp.8500-8509

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7628550B2 (en) Video Compression Using a Recursion-Based Machine Learning System
CN116114247B (en) Apparatus and method for processing video data
US12003734B2 (en) Machine learning based flow determination for video coding
US12231666B2 (en) Front-end architecture for neural network based video coding
JP7815247B2 (en) A Front-End Architecture for Neural Network-Based Video Coding
KR102831175B1 (en) Bit-rate estimation for video coding with machine learning enhancements
US11399198B1 (en) Learned B-frame compression
US12177473B2 (en) Video coding using optical flow and residual predictors
US20240214578A1 (en) Regularizing neural networks with data quantization using exponential family priors
JP7840973B2 (en) Machine learning-based flow decision for video coding
TWI914390B (en) End-to-end neural network based video coding
CN116965032A (en) Machine learning-based flow determination for video decoding
CN116547965A (en) Front-end architecture for neural network-based video coding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250122

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20251031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20260206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20260224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260325

R150 Certificate of patent or registration of utility model

Ref document number: 7840973

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150