CN117980916A - 用于媒体的变换译码的基于变换器的架构 - Google Patents
用于媒体的变换译码的基于变换器的架构 Download PDFInfo
- Publication number
- CN117980916A CN117980916A CN202280063767.1A CN202280063767A CN117980916A CN 117980916 A CN117980916 A CN 117980916A CN 202280063767 A CN202280063767 A CN 202280063767A CN 117980916 A CN117980916 A CN 117980916A
- Authority
- CN
- China
- Prior art keywords
- transformer
- decoder
- patches
- patch
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 198
- 238000005192 partition Methods 0.000 claims abstract description 71
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000015654 memory Effects 0.000 claims description 51
- 230000006870 function Effects 0.000 claims description 46
- 238000012549 training Methods 0.000 claims description 42
- 230000009466 transformation Effects 0.000 claims description 36
- 230000002441 reversible effect Effects 0.000 claims description 9
- 239000002131 composite material Substances 0.000 claims description 8
- 230000002123 temporal effect Effects 0.000 claims description 8
- 238000005549 size reduction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 84
- 238000013528 artificial neural network Methods 0.000 abstract description 79
- 230000011218 segmentation Effects 0.000 description 31
- 238000013527 convolutional neural network Methods 0.000 description 24
- 210000002569 neuron Anatomy 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 238000013139 quantization Methods 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 15
- 239000013598 vector Substances 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 8
- 241000023320 Luma <angiosperm> Species 0.000 description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 7
- 230000006835 compression Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 5
- 239000000470 constituent Substances 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000006837 decompression Effects 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 241000288105 Grus Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/0895—Weakly supervised learning, e.g. semi-supervised or self-supervised learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, repositioning or otherwise geometrically modifying originals
- H04N1/3876—Recombination of partial images to recreate the original image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/543—Motion estimation other than block-based using regions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
- H04N9/877—Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0088—Synthesising a monoscopic image signal from stereoscopic images, e.g. synthesising a panoramic or high resolution monoscopic image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Discrete Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本文描述了用于使用神经网络系统来处理媒体数据的系统和技术。例如,过程可包括:获得经编码图像数据帧的潜在表示;以及通过解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧。该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块用于生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎用于减小该一个或多个补丁中的每个补丁的相应大小。
Description
技术领域
本公开整体涉及图像和视频译码,包括图像和/或视频的编码(或压缩)和解码(解压缩)。例如,本公开的各方面涉及用于使用具有移位自注意力窗口的变换器层来执行变换译码和非线性变换的技术。
背景技术
许多设备和系统允许处理和输出视频数据以供消费。数字视频数据包括大量数据,以满足消费者和视频提供者的需求。例如,视频数据的消费者期望包括高保真度、分辨率、帧速率等的高质量的视频。结果,为了满足这些需求所需要的大量视频数据为处理和存储视频数据的通信网络和设备带来了负担。
视频译码(coding)技术可以用于压缩视频数据。视频译码的目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好的译码效率的编码技术。
发明内容
在一些示例中,描述了用于使用基于变换器的神经网络架构来对媒体数据进行译码(例如,编码和/或解码)的系统和技术。根据至少一个例示性示例,提供了一种用于处理媒体数据的方法,包括:获得经编码图像数据帧的潜在表示;以及通过解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块用于生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎用于减小该一个或多个补丁中的每个补丁的相应大小。
在另一示例中,提供了一种用于处理媒体数据的装置,该装置包括至少一个存储器(例如,该至少一个存储器被配置为存储数据,诸如虚拟内容数据、一个或多个图像等)以及耦合到该至少一个存储器的一个或多个处理器(例如,该一个或多个处理器被实现在电路中)。该一个或多个处理器被配置为并且可:获得经编码图像数据帧的潜在表示;以及基于解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块被配置为生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎被配置为减小该一个或多个补丁中的每个补丁的相应大小。
在另一示例中,提供了一种在其上存储有指令的非暂态计算机可读介质,这些指令在由一个或多个处理器执行时使该一个或多个处理器:获得经编码图像数据帧的潜在表示;以及基于解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块被配置为生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎被配置为减小该一个或多个补丁中的每个补丁的相应大小。
提供了一种用于处理媒体数据的装置。该装置包括:用于获得经编码图像数据帧的潜在表示的构件;和用于基于解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧的构件,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块被配置为生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎被配置为减小该一个或多个补丁中的每个补丁的相应大小。
在一些方面中,为了生成该经解码图像数据帧,上文描述的方法、装置和计算机可读介质可包括:通过该多个解码器变换器层中的第一解码器变换器层的第一变换器块来在应用于该一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力;通过该第一解码器变换器层的第二变换器块来在应用于该一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力,其中该一个或多个第二窗口分区被移位以与该一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠;以及通过该补丁去合并引擎来将该一个或多个补丁中的每个补丁分段成多个去合并补丁,其中该多个去合并补丁是非重叠的。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:向该多个解码器变换器层中的第二解码器变换器层的第一变换器块提供该多个去合并补丁。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:通过该第二解码器变换器层的补丁去合并引擎来对该多个去合并补丁进行分段;以及向该多个解码器变换器层中的第三解码器变换器层提供该补丁去合并引擎的输出。
在一些方面中,该多个去合并补丁中的每个去合并补丁具有均匀的补丁大小,并且该补丁去合并引擎应用为二的补丁大小缩减因子。
在一些方面中,为了将该一个或多个补丁中的每个补丁分段成该多个去合并补丁,上文描述的方法、装置和计算机可读介质可包括:减小该多个去合并补丁的特征维度。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:通过该多个解码器变换器层来接收该经编码图像数据帧的该潜在表示作为输入,并且应用非线性变换以生成经解码图像数据帧。
在一些方面中,该非线性变换是合成变换,并且该经解码图像数据帧是与该经编码图像数据帧相关联的输入图像的重构。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:使用至少部分地基于率失真的损失函数来训练该多个解码器变换器层中的一个或多个解码器变换器层。在一些情况下,该损失函数包括用于率失真的拉格朗日乘数。
在一些方面中,包括在该至少一个解码器变换器层中的该一个或多个变换器块的至少一部分具有相同的架构。
在一些方面中,包括在该至少一个解码器变换器层中的该一个或多个变换器块中的每个变换器块具有相同的架构。
在一些方面中,该经编码图像数据帧包括经编码静止图像。
在一些方面中,该经编码图像数据帧包括经编码视频帧。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:利用至少第一训练数据集和第二训练数据集来训练该多个解码器变换器层,其中与该第一训练数据集的数据相比,该第二训练数据集的数据具有相反的时间顺序。
在一些方面中,该多个解码器变换器层包括一系列连续解码器变换器层。
根据另一例示性示例,提供了一种用于处理媒体数据的方法。该方法包括:将帧分段成多个补丁;以及通过编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧。
在另一示例中,提供了一种用于处理媒体数据的装置,该装置包括至少一个存储器(例如,该至少一个存储器被配置为存储数据,诸如虚拟内容数据、一个或多个图像等)以及耦合到该至少一个存储器的一个或多个处理器(例如,该一个或多个处理器被实现在电路中)。该一个或多个处理器被配置为并且可:将帧分段成多个补丁;以及基于编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧。
在另一示例中,提供了一种在其上存储有指令的非暂态计算机可读介质,这些指令在由一个或多个处理器执行时使该一个或多个处理器:将帧分段成多个补丁;以及基于编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧。
提供了一种用于处理媒体数据的装置。该装置包括:用于将帧分段成多个补丁的构件;和用于基于编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧的构件。
在一些方面中,为了生成该经编码图像数据帧,上文描述的方法、装置和计算机可读介质可包括:通过该多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力;通过该第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力,其中该一个或多个移位窗口分区与该一个或多个窗口分区重叠;通过该第一变换器块和该第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁;以及通过补丁合并引擎来增大该第一编码器变换器层和第二编码器变换器层之间的补丁大小。
在一些方面中,该补丁合并引擎被配置为将来自该第一编码器变换器层的多个相邻补丁组合成提供给该第二编码器变换器层的合并补丁。
在一些方面中,该第一编码器变换器层的该第二变换器块的输出耦合到该第二编码器变换器层的输入。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:通过该编码器子网络的该多个编码器变换器层使用该多个补丁作为输入来生成所分段帧的分层级特征图;以及从该分层级特征图生成该经编码图像数据帧。
在一些方面中,该多个补丁中的每个补丁具有均匀大小并且包括所分段帧的一个或多个像素。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:使用该补丁合并引擎通过级联从相邻补丁的一个或多个子集获得的特征来增大该补丁大小,相邻补丁的每个子集由该补丁合并引擎合并成合并补丁输出。
在一些方面中,该第一变换器块和该第二变换器块具有相同的架构。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:在该第一编码器变换器层之前向该编码器子网络的线性嵌入层提供该多个补丁。
在一些方面中,该经编码图像数据帧是图像数据的潜在表示。
在一些方面中,该潜在表示是由该编码器子网络的该多个编码器变换器层生成的分层级特征图。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:使用基于率失真损失的损失函数来训练该多个编码器变换器层中的一个或多个编码器变换器层。在一些情况下,该损失函数包括用于率失真的拉格朗日乘数。
在一些方面中,从包括静止图像帧或视频帧的输入分段出该多个补丁。
在一些方面中,上文描述的方法、装置和计算机可读介质可包括:利用因数化先验对经编码图像数据进行熵译码。
在一些方面中,该装置包括移动设备(例如,移动电话或所谓的“智能电话”、平板计算机、或其他类型的移动设备)、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、视频服务器、电视机、车辆(或车辆的计算设备)、或其他设备。在一些方面中,该装置包括用于捕捉一个或多个图像或视频帧的至少一个照相机。例如,该装置可包括用于捕捉一个或多个图像和/或一个或多个包括视频帧的视频的一个相机(例如,RGB相机)或多个相机。在一些方面中,该装置包括用于显示一个或多个图像、视频、通知或其它可显示数据的显示器。在一些方面中,该装置包括发射器,该发射器被配置为在传输介质上向至少一个设备传输一个或多个视频帧和/或语法数据。在一些方面中,处理器包括神经处理单元(NPU)、中央处理单元(CPU)、图形处理单元(GPU)或其它处理设备或部件。
该发明内容不旨在标识所要求保护的主题的关键或必要特征,其也不旨在孤立地用于确定所要求保护的主题的范围。本主题应当参考本专利的整个说明书的合适部分、任何或所有附图、以及每项权利要求来理解。
前述内容以及其他特征和实施方案将在参考以下说明书、权利要求书和附图时变得更明显。
附图说明
本申请的例示性实施方案在下文参照以下附图进行了详细的描述:
图1示出了片上系统(SOC)的示例实现方式;
图2A示出了全连接的神经网络的示例;
图2B示出了局部连接的神经网络的示例;
图3是示出根据一些示例的包括可操作为使用基于神经网络的系统来执行图像和/或视频译码(编码和解码)的设备的系统的示例的图示;
图4是示出根据一些示例的用于具有红绿蓝(RGB)格式的输入的基于端到端神经网络的图像和视频译码系统的示例的图示;
图5A是示出根据一些示例的用于基于神经网络的图像和视频译码系统的编码器的基于变换器的神经网络架构的示例的图示;
图5B是示出根据一些示例的用于基于神经网络的图像和视频译码系统的解码器的基于变换器的神经网络架构的示例的图示;
图5C是示出根据一些示例的用于基于神经网络的图像和视频译码系统的基于变换器的端到端神经网络架构的示例的图示;
图6A是示出根据一些示例的一对移位窗口变换器块的示例架构的图示;
图6B是示出根据一些示例的使用一个或多个基于变换器的神经网络架构的视频译码系统的示例的图示;
图7A是示出根据一些示例可在基于编码器或解码器神经网络的图像和视频译码系统的变换器层之间应用的补丁合并或补丁去合并过程的示例的图示;
图7B是示出根据一些示例的在基于编码器或解码器神经网络的图像和视频译码系统的两个自注意力层之间的移位窗口自注意力计算的示例的图示;
图8是示出根据一些示例的用于处理图像和/或视频数据的过程的示例的流程图;
图9是示出根据一些示例的用于处理图像和/或视频数据的过程的另一示例的流程图;并且
图10示出了可实现本文描述的各种技术的示例计算设备的示例计算设备架构。
具体实施方式
以下提供本公开的某些方面和实施方案。这些方面和实施方案中的一些可独立地应用,并且它们中的一些可组合应用,这对于本领域技术人员来说是显而易见的。在以下描述中,出于解释目的阐述了具体细节以提供对本申请的各实施方案的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各个实施方案。各附图和描述不旨在是限制性的。
随后的描述仅提供示例实施方案,而并不旨在限制本公开的范围、适用性或配置。相反,对示例实施例的以下描述将向本领域技术人员提供用于实现示例实施例的赋能描述。应当理解的是,在不脱离如所附权利要求所阐述的本申请的实质和范围的情况下,可以对元素的功能和排列做出各种改变。
数字视频数据可包括大量数据,尤其是随着对高质量视频数据的需求持续增长。例如,视频数据的消费者通常期望具有高保真度、高分辨率、高帧速率等越来越高质量的视频。然而,满足高需求所需的大量视频数据通常与大带宽和存储需要相关联,这给通信网络以及处理和存储视频数据的设备带来显著的负担。
可使用各种技术来对视频数据进行译码。例如,可根据特定视频译码标准来执行视频译码。示例视频译码标准包括由运动图像专家组(MPEG)开发的高效视频译码(HEVC)、高级视频译码(AVC)和通用视频译码(VVC),以及由开放媒体联盟(AOM)开发的AOMediaVideo 1(AV1)。视频译码通常使用预测方法(诸如帧间预测或帧内预测),该预测方法利用在视频图像或序列中存在的冗余。视频译码技术的共同目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级,例如当经压缩视频数据被解压缩时。随着对视频服务的需求增长以及新的视频服务变得可用,需要具有更好的译码效率、性能和速率控制的译码技术。
本文描述了用于使用一个或多个机器学习(ML)系统来执行图像和/或视频译码的系统、装置、过程(也称为方法)和计算机可读介质(统称为“系统和技术”)。一般来讲,ML可被认为是人工智能(AI)的子集。ML系统可包括算法和统计模型,计算机系统可使用这些算法和统计模型通过依赖模式和推测来执行各种任务,而无需使用显式指令。ML系统的一个示例是神经网络(也称为人工神经网络),该神经网络可包括互连的人工神经元(例如神经元模型)的群组。神经网络可用于各种应用和/或设备,诸如图像和/或视频译码、图像分析和/或计算机视觉应用、互联网协议(IP)相机、物联网(IoT)设备、自主车辆、服务机器人等。
神经网络中的各个节点可以通过获取输入数据并对数据执行简单操作来模拟生物神经元。对输入数据执行的简单运算的结果被选择性地传递给其他神经元。权重值与网络中的每个向量和节点相关联,并且这些值限制了输入数据与输出数据相关的方式。例如,可以将每个节点的输入数据乘以对应的权重值,并且可以将乘积相加。乘积之和可通过任选的偏差进行调整,并且可将激活函数应用于结果,从而产生节点的输出信号或“输出激活”(有时称为特征图或激活图)。权重值最初可以由通过网络的训练数据的迭代流来确定(例如,权重值是在网络学习如何通过其典型输入数据特性标识特定类的训练阶段期间建立的)。
存在不同类型的神经网络,诸如卷积神经网络(CNN)、递归神经网络(RNN)、生成对抗网络(GAN)、多层感知器(MLP)神经网络、变换器神经网络等。例如,卷积神经网络(CNN)是一种前馈人工神经网络。卷积神经网络可包括人工神经元的集合,这些人工神经元各自具有感受野(例如,输入空间的空间局部区域)并且共同地拼出一输入空间。RNN针对以下原理工作:保存层的输出并将该输出反馈给输入,以帮助预测该层的结果。GAN是一种生成神经网络,它可学习输入数据中的模式,以便神经网络模型可生成新合成输出,这些新合成输出合理地可能来自原始数据集。GAN可包括一起操作的两个神经网络,包括生成合成输出的生成神经网络和评估输出的真实性的辨别神经网络。在MLP神经网络中,数据可以被馈送到输入层,并且一个或多个隐藏层为数据提供抽象级别。然后可以基于抽象数据对输出层进行预测。
深度学习(DL)是机器学习技术的一个示例,并且可被认为是ML的子集。许多DL方法基于神经网络,诸如RNN或CNN,并且利用多个层。在深度神经网络中使用多个层可允许从给定的原始数据输入中逐渐提取更高级别的特征。例如,第一层人工神经元的输出变成第二层人工神经元的输入,第二层人工神经元的输出变成第三层人工神经元的输入,依此类推。位于整个深度神经网络的输入和输出之间的层通常被称为隐藏层。隐藏层学习(例如,被训练)将来自先前层的中间输入变换成可提供给后续层的略微更抽象和复合的表示,直到获得最终或期望表示作为深度神经网络的最终输出。
CNN(并且在一些情况下,RNN)通常在基于图像的输入的上下文中使用,诸如用于实现计算机视觉或执行图像/视频译码。例如,在图像/视频译码的上下文中,现有方法利用自回归CNN来实现用于执行熵编码和解码的先验模型。尽管一些现有方法已经实现了与传统编解码器持平或超过传统编解码器的率失真性能,但由于由自回归CNN执行的自回归解码的复杂性和时延,不能实现低时延(例如,实时或近实时)译码。
需要用于以低时延准确且更高效地执行图像和视频译码的系统和技术。虽然基于ML和DL的方法已经在率失真性能方面表现出优于现有编解码器的理论改进,但这些现有方法通常受到它们不能以低时延运行(例如,基于由自回归CNN执行的自回归解码,如上面提到的)的限制。此外,随着图像和视频数据的分辨率持续提高,这些现有方法的计算运行时将很可能只会持续增加。
在一些方面中,本文描述的系统和技术包括基于变换器的图像和视频译码系统,该系统可执行具有比其他基于神经网络的图像和/或视频译码系统(诸如基于CNN的变换)快的译码(例如,解码)的低时延图像和/或视频译码。例如,使用基于变换器的变换,本文描述的系统和技术可在科达图像压缩数据集上实现至少7%的译码效率增益,并且在超视频组(UVG)视频压缩数据集上实现12%的译码效率增益(低延迟模式)。
变换器是一种深度学习模型,其利用注意力机制来对输入数据的每个部分的重要性进行差分加权,并且对长期依赖关系进行建模。虽然变换器通常用于处置顺序输入数据,但变换器不一定以最初接收或排列数据的相同顺序次序来处理数据。此外,由于变换器可使用注意力来确定输入数据的子部分之间的上下文关系,因此变换器可并行地处理子部分中的一些或全部,诸如当计算注意力或自注意力时。与例如被训练来执行相同任务的RNN、CNN或其他神经网络相比,这种并行化可提供更大的计算灵活性。
在一些情况下,本文描述的基于变换器的图像和视频译码系统包括各自包括多个连续移位窗口变换器层的编码器子网络和解码器子网络。编码器子网络应用变换以将输入图像转换为潜在表示,而解码器子网络应用变换以将潜在表示转换为经重构的图像,该经重构的图像是输入图像的经重构的版本。输入图像可包括静止图像(例如,照片和其他类型的静止图像)和视频图像(例如,视频帧)。在一些示例中,编码器和解码器子网络可应用结合因数化先验(例如,与基于CNN的方法中所用的计算更复杂的自回归先验相反)使用的非线性变换,从而实现图像数据的低时延编码和解码。此外,本文描述的基于变换器的图像和视频译码系统可以匹配或改善与现有神经网络图像和视频译码系统(例如,基于CNN的图像和视频译码系统)相关联的率失真损失的率失真损失来实现该低时延编码和解码。
在一些示例中,解码器子网络与编码器子网络对称,不同之处在于替换和反转包括在编码器子网络中的补丁合并引擎的功能性的补丁去合并引擎。编码器子网络和解码器子网络在一系列补丁(本文也称为“补丁令牌”)上操作。在一些情况下,一系列补丁最初形成在编码器子网络处,作为输入图像的非重叠分段。
在一些方面中,编码器子网络和解码器子网络利用具有移位窗口方法的经修改自注意力计算。移位窗口方法基于成对自注意力层(也称为自注意力层对),这些成对自注意力层将自注意力计算限于非重叠的局部窗口,同时还实现跨窗口连接。在一些示例中,跨窗口连接可在更深自注意力层中用来确定各自跨越更低自注意力层的多个离散注意力窗口(例如,基于来自这些窗口的元素)的注意力向量。在例示性示例中,自注意力层对中的第一层可应用第一分割配置以将一组补丁划分成各自包含多个补丁的非重叠窗口,然后在每个窗口内局部地计算自注意力。在自注意力层对中的第二层中,窗口分割被移位,从而产生与来自第一自注意力层的窗口重叠的新窗口。第二自注意力层的移位窗口中的自注意力计算跨过第一自注意力层中先前窗口的边界,从而提供它们之间的连接。
通过将自注意力计算限于第一自注意力层的非重叠局部窗口,本文描述的基于变换器的图像和视频译码系统可实现支持低时延图像和视频编码和解码(并且在一些情况下,实时或近实时编码和解码,诸如当使用快速熵模型时)的更高效率和计算性能。例如,在一些方面中,基于变换器的图像和视频译码系统具有相对于图像大小的线性计算复杂性。通过引入通过第二自注意力层的移位窗口分割确定的跨窗口连接,本文描述的基于变换器的图像和视频译码系统可实现匹配或改进与基于CNN以及其他现有图像和视频译码方法相关联的率失真损失的率失真损失。
将关于各图来描述本公开的各个方面。图1示出片上系统(SOC)100的示例实现方式,SOC可以包括被配置为执行本文描述的功能中的一个或多个功能的中央处理单元(CPU)102或多内核CPU。参数或变量(例如,神经信号和突触权重)、与计算设备(例如,具有权重的神经网络)相关联的系统参数、延迟、频率仓信息、任务信息以及其他信息可存储在与神经处理单元(NPU)108相关联的存储器块中,存储在与CPU 102相关联的存储器块中,存储在与图形处理单元(GPU)104相关联的存储器块中,存储在与数字信号处理器(DSP)106相关联的存储器块中,存储在存储器块118中,和/或可分布在多个块中。在CPU 102处执行的指令可从与CPU 102相关联的程序存储器加载,或者可从存储器块118加载。
SOC 100还可包括为特定功能定制的附加处理块,诸如GPU 104、DSP 106、连通性块110(其可包括第五代(5G)连通性、第四代长期演进(4GLTE)连通性、Wi-Fi连通性、USB连通性、蓝牙连通性等)、以及可例如检测和识别姿势的多媒体处理器112。在一种实现方式中,NPU实现在CPU 102、DSP 106、和/或GPU 104中。SOC 100还可包括传感器处理器114、图像信号处理器(ISP)116和/或导航模块120,该导航模块可包括全球定位系统。
SOC 100可基于ARM指令集。在本公开的一方面,加载到CPU 102中的指令可包括用于在查找表(LUT)中搜索与输入值和过滤器权重的乘法乘积相对应的所存储的乘法结果的代码。加载到CPU 102中的指令还可以包括用于当检测到乘法乘积的查找表命中时在乘法乘积的乘法运算期间禁用乘法器的代码。另外,加载到CPU 102中的指令可以包括用于当检测到乘法乘积的查找表缺失时存储输入值和滤波器权重的计算出的乘法乘积的代码。
SOC 100和/或其部件可被配置为使用根据本文所讨论的本公开的各方面的机器学习技术来执行视频压缩和/或解压缩(也称为视频编码和/或解码,统称为视频译码)。通过使用深度学习架构来执行视频压缩和/或解压缩,本公开的各方面可提高设备上视频压缩和/或解压缩的效率。例如,使用所描述的视频译码技术的设备可使用基于机器学习的技术更高效地压缩视频,可将经压缩视频传输给另一设备,并且另一设备可使用本文描述的基于机器学习的技术更高效地解压缩经压缩视频。
如上面提到的,神经网络是机器学习系统的示例,并且可包括输入层、一个或多个隐藏层以及输出层。从输入层的输入节点提供数据,由一个或多个隐藏层的隐藏节点执行处理,并通过输出层的输出节点产生输出。深度学习网络通常包括多个隐藏层。神经网络的每一层都可以包括特征图或激活图,特征图或激活图可以包括人工神经元(或节点)。特征图可以包括滤波器、内核等。节点可以包括一个或多个权重,用于指示一个或多个层的节点的重要性。在一些情况下,深度学习网络可具有一系列许多隐藏层,其中早期层用于确定输入的简单和低级别特性,并且后期层建立更复杂和抽象特性的层级。
深度学习架构可以学习特征的层级。例如,如果用视觉数据呈现,则第一层可以学习以识别输入流中相对简单的特征,诸如边。在另一个示例中,如果用听觉数据呈现,则第一层可以学习以识别特定频率中的频谱功率。第二层以第一层的输出作为输入,可以学习识别特征的组合,诸如视觉数据的简单形状或听觉数据的声音组合。例如,更高的层可以学习在视觉数据中表示复杂的形状或在听觉数据中表示词语。再更高层可以学习识别常见的视觉对象或口语短语。
当应用于具有自然层次结构的问题时,深度学习架构可以表现得尤其出色。例如,机动车辆的分类可以受益于首先学习识别车轮、挡风玻璃和其他特征。这些特征可以在更高层以不同的方式进行组合,以识别汽车、卡车和飞机。
神经网络可以被设计成具有多种连接模式。在前馈网络中,信息从较低层传递到较高层,其中,给定层中的每个神经元都与较高层中的神经元进行通信。如上所述,可以在前馈网络的连续的层中构建分层级表示。神经网络还可以具有循环或反馈(也被称为自上而下)连接。在循环连接中,来自给定层中的神经元的输出可被传达给相同层中的另一神经元。循环架构可以有助于识别跨越按顺序被传递给神经网络的输入数据块中的多于一个输入数据块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自上而下)连接。当高层级概念的识别可辅助辨别输入的特定低层级特征时,具有许多反馈连接的网络可能是有帮助的。
神经网络各层之间的连接可以是全连接的,也可以是局部连接的。图2A示出了全连接的神经网络202的示例。在全连接的神经网络202中,第一层中的神经元可以将其输出传送到第二层中的每个神经元,使得第二层中的每个神经元将接收到来自第一层中每个神经元的输入。图2B示出了局部连接的神经网络204的示例。在局部连接的神经网络204中,第一层中的神经元可以连接到第二层中有限数量的神经元。更一般地,局部连接的神经网络204的局部连接层可以被配置为使得层中的每个神经元将具有相同或相似的连接模式,但其中,连接强度可以具有不同的值(例如,210、212、214和216)。局部连接的连接模式可在较高层中产生空间上相异感受野,因为给定区域中的较高层神经元可接收输入,这些输入通过训练被调谐到网络的总输入的受限部分的属性。
如先前提到的,数字视频数据可包括大量数据,这可给通信网络以及处理和存储视频数据的设备带来显著的负担。例如,录制未压缩视频内容通常产生大的文件大小,该文件大小随着所录制的视频内容分辨率的增加而大幅增加。在一个例示性示例中,以1080p/24格式(例如,分辨率为1920像素宽和1080像素高,其中每秒捕获24帧)录制的未压缩每通道16比特视频可占用每帧12.4兆字节,或每秒297.6兆字节。以每秒24帧的4K分辨率录制的未压缩的每通道16比特视频可能占用每帧49.8兆字节,或每秒1195.2兆字节。
网络带宽是大视频文件可能成问题的另一约束。例如,视频内容常常通过无线网络(例如,经由LTE、高级LTE、新空口(NR)、WiFiTM、BluetoothTM、或其他无线网络)进行递送,并且可构成消费者互联网流量的大部分。尽管无线网络中的可用带宽量有所提升,但可能仍然期望减少用于在这些网络中传递视频内容的带宽量。
由于未压缩视频内容可产生大文件,这些大文件可涉及用于物理存储的颇大的存储器以及用于传输的相当大的带宽,因此可利用视频译码技术来压缩并且然后解压缩此类视频内容。
为了减小视频内容的大小—并且因此减小存储视频内容所涉及的存储量—以及递送视频内容涉及的带宽量,可根据特定视频译码标准诸如HEVC、AVC、MPEG、VVC等来执行各种视频译码技术。视频译码通常使用预测方法(诸如帧间预测或帧内预测),该预测方法利用在视频图像或序列中存在的冗余。视频译码技术的共同目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级。随着对视频服务的需求增长以及新的视频服务变得可用,需要具有更好的译码效率、性能和速率控制的译码技术。
一般来讲,编码设备根据视频译码标准对视频数据进行编码以生成经编码视频比特流。在一些示例中,经编码视频比特流(或“视频比特流”或“比特流”)是一系列的一个或多个经译码视频序列。编码设备可通过将每个图片分割为多个切片来生成图片的经译码表示。一切片是独立于其它切片的,使得可以对该切片中的信息进行译码,而不依赖于来自在相同的图片内的其它切片的数据。切片包括一个或多个切片段,其包括独立的切片段以及(如果存在的话)依赖于先前切片段的一个或多个从属切片段。在HEVC中,将切片分割为亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一个或多个CTB连同用于样本的语法一起被称为译码树单元(CTU)。CTU还可被称为“树块”或“最大译码单元”(LCU)。CTU是用于HEVC编码的基本处理单元。CTU可以被拆分为大小不同的多个译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样本阵列。
亮度和色度CB可以被进一步拆分为预测块(PB)。PB是亮度分量或色度分量的样本块,其使用相同的运动参数来进行帧间预测或块内复制(IBC)预测(当可用或被启用时)。亮度PB和一个或多个色度PB连同相关联的语法一起形成预测单元(PU)。对于帧间预测,运动参数集合(例如,一个或多个运动矢量、参考索引等)是在用于每个PU的比特流中用信号发出的,以及用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB表示色彩分量的样本的正方形块,其中对其应用了残差变换(例如,在一些情况下,相同的二维变换)以对预测残差信号进行译码。变换单元(TU)表示亮度和色度样本的TB以及相应的语法元素。下文更加详细地描述了变换译码。
根据HEVC标准,可使用TU来执行变换。可以基于给定的CU内的PU的大小来设定TU的大小。TU可以具有与PU相同的大小或者小于PU。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构来将与CU相对应的残差样本细分为更小的单元。RQT的叶节点可以对应于TU。与TU相关联的像素差值可以被变换以产生变换系数。然后,这些变换系数可由编码设备进行量化。
一旦视频数据的图片被分割为CU,编码设备就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(下文描述)。对于每个CU,可以使用语法数据在比特流内用信号发出预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用在图片内的空间上相邻的样本之间的相关性。例如,使用帧内预测,每个PU是使用例如DC预测来从相同的图片中的相邻图像数据进行预测的以找到用于PU的平均值,使用平面预测以使平面表面适配PU,使用方向预测来从相邻数据进行推断,或者使用任何其它合适的预测类型。帧间预测使用在图片之间的时间相关性,以便推导出用于图像样本块的运动补偿预测。例如,使用帧间预测,每个PU是使用运动补偿预测来从一个或多个参考图片(按照输出次序在当前图片之前或之后)中的图像数据预测的。例如,可以在CU级别处作出是使用图片间预测还是使用图片内预测来对图片区域进行译码的决定。
在使用帧内预测和/或帧间预测执行预测之后,编码设备可执行变换和量化。例如,在预测之后,编码设备可计算对应于PU的残差值。残差值可以包括在正被译码的当前像素块(PU)与用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,使用帧间预测或帧内预测)之后,编码设备可通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括像素差值集合,其对在当前块的像素值与预测块的像素值之间的差进行量化。在一些示例中,可以用二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在此类示例中,残差块是对像素值的二维表示。
使用块变换来对在执行预测之后可能剩余的任何残差数据进行变换,块变换可以是基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数、或者它们的任何组合。在一些情况下,可以将一个或多个块变换(例如,大小32×32、16×16、8×8、4×4或其他合适的大小)应用于每个CU中的残差数据。在一些实施方案中,可将TU用于由编码设备实现的变换和量化过程。具有一个或多个PU的给定的CU也可以包括一个或多个TU。如下文进一步详细描述的,残差值可以使用块变换而被变换为变换系数,并且然后可以使用TU进行量化和扫描,以产生用于熵译码的串行化变换系数。
编码设备可执行对变换系数的量化。量化通过对变换系数进行量化以减少用于表示系数的数据量来提供进一步的压缩。例如,量化可以减小与系数中的一些或所有系数相关联的比特深度。在一个示例中,具有n比特的值的系数可以在量化期间向下舍入为m比特的值,其中n大于m。
一旦执行了量化,则经译码视频比特流包括所量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、分割信息以及任何其他合适的数据(诸如其他语法数据)。然后,经译码视频比特流的不同元素可由编码设备进行熵编码。在一些示例中,编码设备可利用预定义扫描次序来扫描所量化的变换系数,以产生可被熵编码的序列化向量。在一些示例中,编码设备可执行自适应扫描。在扫描所量化的变换系数以形成向量(例如,一维向量)之后,编码设备可对矢量进行熵编码。例如,编码设备可使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间分割熵译码或另一合适的熵编码技术。
编码设备可存储经编码视频比特流和/或可通过通信链路将经编码视频比特流数据发送到可包括解码设备的接收设备。解码设备可通过熵解码(例如,使用熵解码器)并且提取构成经编码视频数据的一个或多个经译码视频序列的元素来对经编码视频比特流数据进行解码。然后,解码设备可重新缩放经编码的视频比特流数据并且对其执行逆变换。然后,残差数据被传递到解码设备的预测级。然后,解码设备使用帧内预测、帧间预测、IBC和/或其他类型的预测来预测像素块(例如,PU)。在一些示例中,将预测与逆变换的输出(残差数据)相加。解码设备可将经解码视频输出到视频目标设备,该视频目标设备可包括用于将经解码视频数据显示给内容的消费者的显示器或其他输出设备。
由各种视频译码标准定义的视频译码系统和技术(例如,上文描述的HEVC视频译码技术)可能够保留原始视频内容中的许多信息并且可基于信号处理和信息论概念来先验地定义。然而,在一些情况下,基于机器学习(ML)的图像和/或视频系统可提供优于基于非ML的图像和视频译码系统诸如基于端到端神经网络的图像和视频译码(E2E-NNVC)系统的益处。如上所述,许多E2E-NNVC系统被设计为自动编码器子网络(编码器子网络)和第二子网络的组合,该第二子网络负责在用于熵译码的量化潜数据上学习概率模型。这种架构可被视为变换加量化模块(编码器子网络)和熵建模子网络模块的组合。
图3描绘了包括被配置为使用E2E-NNVC系统310来执行图像和/或视频编码和解码的设备302的系统300。设备302耦合到照相机307和存储介质314(例如,数据存储设备)。在一些实现方式中,相机307被配置为向处理器304提供图像数据308(例如,视频数据流)以由E2E-NNVC系统310进行编码。在一些实现方式中,设备302可耦合到和/或可包括多个相机(例如,双相机系统、三个相机或其他数量的相机)。在一些情况下,设备302可耦合到麦克风和/或其他输入设备(例如,键盘、鼠标、触摸输入设备诸如触摸屏和/或触摸板、和/或其他输入设备)。在一些示例中,相机307、存储介质314、麦克风和/或其他输入设备可以是设备302的一部分。
设备302还经由传输介质318诸如一个或多个无线网络、一个或多个有线网络或它们的组合耦合到第二设备390。例如,传输介质318可以包括由无线网络、有线网络、或者有线网络和无线网络的组合提供的信道。传输介质318可形成诸如以下各项的基于分组的网络的一部分:局域网、广域网、或全球网络诸如互联网。传输介质318可包括路由器、交换器、基站、或对于促进从源设备到接收设备的通信而言可有用的任何其他装备。无线网络可包括任何无线接口或无线接口的组合,并且可包括任何合适的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi直连、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、基于同轴电缆的以太网、数字信号线(DSL)等)。有线网络和/或无线网络可以是使用各种装备(诸如基站、路由器、接入点、网桥、网关、交换器等)来实现的。经编码视频比特流数据可以根据通信标准(诸如无线通信协议之类的)进行调制,并且被传输给接收设备。
设备302包括耦合到存储器306、第一接口(“I/F 1”)312和第二接口(“I/F 2”)316的一个或多个处理器(本文称为“处理器”)304。处理器304被配置为从相机307、从存储器306和/或从存储介质314接收图像数据308。处理器304经由第一接口312(例如,经由存储器总线)耦合到存储介质314,并且经由第二接口316(例如,网络接口设备、无线收发器和天线、一个或多个其它网络接口设备、或者它们的组合)耦合到传输介质318。
处理器304包括E2E-NNVC系统310。E2E-NNVC系统310包括编码器部分362和解码器部分366。在一些实现方式中,E2E-NNVC系统310可包括一个或多个自编码器。编码器部分362被配置为接收输入数据370并且处理输入数据370,以至少部分地基于输入数据370来生成输出数据374。
在一些实现方式中,E2E-NNVC系统310的编码器部分362被配置为对输入数据370执行有损压缩以生成输出数据374,使得输出数据374具有与输入数据370相比更少的比特。可以对编码器部分362进行训练以对输入数据370(例如,图像或视频帧)进行压缩,而不使用基于任何先前的表示(例如,一个或多个经先前重构的帧)的运动补偿。例如,编码器部分362可以仅使用来自视频帧的视频数据来压缩该视频帧,而不使用经先前重构的帧的任何数据。由编码器部分362处理的视频帧在本文中可以称为经帧内预测的帧(I帧)。在一些示例中,可以使用传统的视频译码技术(例如,根据HEVC、VVC、MPEG-4或其它视频译码标准)来生成I帧。在此类示例中,处理器304可以包括被配置为执行基于块的帧内预测(诸如上文关于HEVC标准所述的帧内预测)的视频译码设备(例如,编码设备),或者与该视频译码设备耦合。在此类示例中,处理器304可不包括E2E-NNVC系统310。
在一些实现方式中,可对E2E-NNVC系统310的编码器部分362进行训练以使用基于先前表示(例如,一个或多个经先前重构的帧)的运动补偿来压缩输入数据370(例如,视频帧)。例如,编码器部分362可以使用来自视频帧的视频数据并且使用经先前重构的帧的数据来压缩该视频帧。由编码器部分362处理的视频帧在本文中可以称为经帧内预测的帧(P帧)。运动补偿可以用于通过描述来自经先前重构的帧的像素如何移动到在当前帧中的新位置上以及残差信息来确定当前帧的数据。
如图所示,E2E-NNVC系统310的编码器部分362可包括神经网络363和量化器364。神经网络363可包括生成中间数据372的一个或多个变换器、一个或多个卷积神经网络(CNN)、一个或多个全连接的神经网络、一个或多个门控循环单元(GRU)、一个或多个长短期记忆(LSTM)网络、一个或多个ConvRNN、一个或多个ConvGRU、一个或多个ConvLSTM、一个或多个GAN、它们的任何组合、和/或其他类型的神经网络架构。中间数据372被输入到量化器364。图5A和图6A中示出了可包括在编码器部分362中的部件的示例。
量化器364被配置为对中间数据372执行量化以及在一些情况下执行熵译码,以产生输出数据374。输出数据374可以包括经量化的(并且在一些情况下,经熵译码的)数据。由量化器364执行的量化操作可导致根据中间数据372生成量化码(或表示由E2E-NNVC系统310生成的量化码的数据)。量化码(或表示量化码的数据)也可称为潜码(latent code)或潜数据(latent)(表示为z)。应用于潜数据的熵模型在本文中可称为“先验”。在一些示例中,量化和/或熵译码操作可使用当根据现有视频译码标准来对视频数据进行编码和/或解码时执行的现有量化和熵译码操作来执行。在一些示例中,量化和/或熵译码操作可由E2E-NNVC系统310来完成。在一些例示性示例中,E2E-NNVC系统310可使用有监督训练来进行训练,其中在训练期间,残差数据被用作输入,并且量化码和熵码被用作已知输出(标签)。
E2E-NNVC系统310的解码器部分366被配置为(例如,直接地从量化器364和/或从存储介质314)接收输出数据374。解码器部分366可处理输出数据374,以至少部分地基于输出数据374来生成输入数据370的表示376。在一些示例中,E2E-NNVC系统310的解码器部分366包括神经网络368,该神经网络可包括一个或多个变换器、一个或多个CNN、一个或多个全连接的神经网络、一个或多个GRU、一个或多个LSTM网络、一个或多个ConvRNN、一个或多个ConvGRU、一个或多个ConvLSTM、一个或多个GAN、它们的任何组合、和/或其他类型的神经网络架构。图5B和图6A中示出了可包括在解码器部分366中的部件的示例。
处理器304被配置为向传输介质318或存储介质314中的至少一者发送输出数据374。例如,输出数据374可以存储在存储介质314,以由解码器部分366稍后取得和解码(或解压缩)以生成对输入数据370的表示376作为经重构的数据。经重构的数据可用于各种目的,诸如用于回放已被编码/压缩以生成输出数据374的视频数据。在一些实现方式中,输出数据374可以在与解码器部分366匹配的另一解码器设备(例如,在设备302中、在第二设备390、或在另一设备中)处进行解码,以生成对输入数据370的表示376作为经重构的数据。例如,第二设备390可包括与解码器部分366匹配(或基本上匹配)的解码器,并且输出数据374可经由传输介质318传输给第二设备390。第二设备390可以处理输出数据374,以生成对输入数据370的表示376作为经重构的数据。
系统300的部件可包括电子电路或其他电子硬件,和/或可使用电子电路或其他电子硬件来实现,该电路或其他电子硬件可包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其他合适的电子电路),和/或可包括计算机软件、固件或它们的任何组合,和/或可使用计算机软件、固件或它们的任何组合来实现,以执行本文描述的各种操作。
虽然系统300被示出为包括某些部件,但本领域普通技术人员将理解,系统300可包括相比图3所示的部件更多或更少的部件。例如,系统300还可以包括输入设备和输出设备(未示出),或者可以是包括输入设备和输出设备的计算设备的一部分。在一些实现方式中,系统300还可包括以下各项或者可以是包括以下各项的计算设备的一部分:一个或多个存储器设备(例如,一个或多个随机存取存储器(RAM)部件、只读存储器(ROM)部件、高速缓存存储器部件、缓冲区部件、数据库部件、和/或其他存储器设备)、与一个或多个存储器设备通信和/或电连接到一个或多个存储器设备的一个或多个处理设备(例如,一个或多个CPU、GPU和/或其他处理设备)、用于执行无线通信的一个或多个无线接口(例如,包括用于每个无线接口的一个或多个收发器和基带处理器)、用于通过一个或多个硬接线连接来执行通信的一个或多个有线接口(例如,诸如通用串行总线(USB)输入的串行接口、照明连接器、和/或其他有线接口)、和/或在图3中未示出的其他部件。
在一些实现方式中,系统300可由计算设备本地实现和/或被包括在计算设备中。例如,计算设备可包括移动设备、个人计算机、平板计算机、虚拟现实(VR)设备(例如,头戴式显示器(HMD)或其他VR设备)、增强现实(AR)设备(例如,HMD、AR眼镜或其他AR设备)、可穿戴设备、服务器(例如,在软件作为服务(SaaS)系统或其他基于服务器的系统中)、电视机、和/或具有执行本文描述的技术的资源能力的任何其他计算设备。
在一个示例中,E2E-NNVC系统310可被并入到便携式电子设备中,该便携式电子设备包括:存储器306,该存储器耦合到处理器304并且被配置为存储可由处理器304执行的指令,以及无线收发器,该无线收发器耦合到天线并且耦合到处理器304并且可操作为将输出数据374传输给远程设备。
图4是示出使用卷积神经网络层来实现用于图像和/或视频译码的超先验模型的E2E-NNVC系统的示例的图示。图4的E2E-NNVC系统中的ga和gs子网络分别对应于编码器子网络(例如,编码器部分362)和解码器子网络(例如,解码器部分366)。图4的ga和gs子网络被设计用于三通道RGB输入,其中所有三个R、G和B输入通道穿过相同的神经网络层(卷积层和广义分裂归一化(GDN)层)并由它们处理。E2E-NNVC系统(诸如图4所示的系统)可以具有类似统计特性诸如RGB数据(其中不同R、G和B通道的统计特性是类似的)和/或YUV数据的输入通道为目标。然而,如先前所讨论,被训练来执行图像译码的CNN仍不能实现编码操作或解码操作的低时延性能,诸如基于自回归先验(其导致解码时间缓慢)的使用。
如先前提到的,本文描述了用于使用一个或多个变换器神经网络来执行图像和/或视频译码(例如,低时延编码和解码)的系统和技术。变换器神经网络可包括根据例如下文描述的图4的超先验架构和/或图6B的尺度空间流(SSF)架构组织的变换器块和/或变换器层。例如,图4中描绘的四个卷积网络ga、gs、ha和hs可替代地被提供为对应四个变换器神经网络,如将在下面更深入地解释。
在一些示例中,本文描述的一个或多个基于变换器的神经网络可使用至少部分地基于率失真的损失函数来训练。失真可被确定为原始图像(例如,将作为输入提供给编码器子网络的图像)和经解压缩/经解码图像(例如,由解码器子网络重构的图像)之间的均方误差(MSE)。在一些示例中,在训练基于变换器的媒体译码神经网络时使用的损失函数可基于拉格朗日乘数在失真和速率之间的折衷。这种率失真损失函数的一个示例是L=D+β*R,其中D表示失真,R表示速率,并且不同β值表示针对不同比特率和/或峰值信噪比(PSNR)训练的模型。
在一个例示性示例中,可使用无监督学习技术(没有监督)来训练本文描述的基于变换器的神经网络中的一个或多个基于变换器的神经网络。在无监督训练过程中,可能不需要对训练数据的部分或其内的元素进行标记或分类。例如,可使用反向传播训练过程来调整神经网络的节点的权重(并且在一些情况下的其他参数,诸如偏置),该神经网络例如编码器和/或解码器子网络(诸如图5A和图5B中分别描绘的那些)。反向传播包括前向传递、损失函数、反向传递和权重更新。在一些示例中,损失函数可包括上文描述的基于率失真的损失函数。可以对一次训练迭代执行前向传递、损失函数、反向传递和参数更新。过程针对每组训练数据重复一定迭代次数,直到编码器或解码器子网络的参数的权重被准确调谐。
对于第一训练数据输入,损失(或误差)可能很高,因为实际输出值可能与训练数据输出显著不同。训练的目标是最小化用于预测输出的损失量(例如,率失真损失,诸如使用损失函数L=D+β*R)。神经网络通过确定哪些输入(权重)对神经网络的损失贡献最大来执行反向传递,并且调整权重以使得损失减小并最终减到最小化。计算损失相对于权重的导数(表示为dL/dW,其中W是特定层处的权重),以确定对神经网络损失贡献最大的权重。例如,更新权重,使得它们在梯度的相反方向上变化。权重更新表示为其中w表示权重,wi表示初始权重,并且η表示学习率。学习率被设置为任何合适的值,其中高学习率包括较大权重更新,并且较低值指示较小权重更新。编码器或解码器子网络或者一个此类子网络的组成移位窗口变换器层或块持续以此方式训练,直到实现期望输出。在一些情况下,以类似方式训练编码器子网络和/或解码器子网络的部件中的每个部件。
下面简要介绍图5A和图5B,然后转到图6至图7B的讨论,图6至图7B提供了移位窗口变换器块的示例架构(图6A)、移位窗口变换器层之间的补丁合并的示例(图7A)以及由给定变换器层内的变换器块对执行的移位窗口自注意力的示例(图7B)。在以上示例之后,讨论然后更详细地返回到图5A和图5B。
图5A描绘了具有一系列变换器层520、530、540、550的编码器子网络500a的示例架构。在一些示例中,可对编码器子网络500a进行训练以执行将输入图像502转换为潜在表示555a的非线性变换。在一些情况下,非线性变换也是分析变换。如图所示,每个编码器变换器层可分别包括一组连续排列的移位窗口变换器块524、534、544及554(本文也称为“编码器变换器块组”或“变换器块组”)。在一些示例中,编码器变换器块组524-554可包括一对或多对移位窗口变换器块,诸如图6A所示的示例移位窗口变换器块对。例如,来自编码器块组524-554的编码器变换器块组中所提供的移位窗口变换器块的总数可以是2的倍数(例如,变换器块组524中为两个移位窗口变换器块、变换器块组534中为两个移位窗口变换器块、变换器块组544中为六个移位窗口变换器块并且变换器块组554中为两个移位窗口变换器块,如图5A中的“x2”、“x6”和类似符号所示)。图6A中示出并在下文描述了具有两个移位窗口变换器块的变换器块组的示例。在一些情况下,成对的移位窗口变换器块可对应于两步自注意力计算过程,该过程在两个分割配置之间交替使用以计算连续移位窗口变换器块上的自注意力(例如,如将关于图6A和图7B描述)。
图5B描绘了具有补丁分割引擎510b及一系列变换器层560、570、580、590的解码器子网络500b的示例架构。补丁分割引擎510b可与编码器子网络500a的补丁分割引擎510a类似地操作。在一些示例中,可对解码器子网络500b进行训练以执行将潜在表示555b转换为重构图像504的非线性变换。在一些情况下,非线性变换也是合成变换。潜在表示555b可与由编码器子网络500a输出的潜在表示555a相同,诸如在将潜在表示555a从编码器子网络500a传送到解码器子网络500b的量化、熵译码和/或数据传输过程中没有信息损失或损坏的情况下。如图所示,每个解码器变换器层可分别包括一组连续排列的移位窗口变换器块564、574、584及594(本文也称为“解码器变换器块组”或“变换器块组”)。在一些示例中,解码器变换器块组564-594可包括一对或多对移位窗口变换器块,诸如图6A所示的示例移位窗口变换器块对。例如,来自变换器解码器块组564-594的解码器变换器块组中所提供的移位窗口变换器块的总数可以是2的倍数(例如,变换器块组564中为两个移位窗口变换器块、变换器块组574中为六个移位窗口变换器块、变换器块组584中为两个移位窗口变换器块并且变换器块组594中为两个移位窗口变换器块,如图5B中的“x2”、“x6”和类似符号所示)。在一些情况下,成对的移位窗口变换器块可对应于两步自注意力计算过程,该过程在两个分割配置之间交替使用以计算连续移位窗口变换器块上的自注意力(例如,如将关于图6A和图7B)。
需注意,在一些示例中,本文参照编码器子网络500a进行的描述中的一些或全部也可适用于解码器子网络500b。例如,在一些情况下,解码器变换器层560-590中的一者或多者可利用与编码器变换器层520-550的移位窗口变换器块相同或以其他方式共享共同架构的移位窗口变换器块。此外,在一些示例中,解码器子网络500b的架构可与编码器子网络500a的架构对称,其中解码器子网络500b使用补丁去合并引擎563、573、583而不是编码器子网络500a的补丁合并引擎532、542、552。解码器子网络500b和编码器子网络500a的架构之间的对称性可包括使用解码器和编码器子网络中所提供的组成移位窗口变换器块的相同架构排列或配置。
图5C是示出用于基于神经网络的图像和视频译码系统的基于变换器的端到端神经网络架构的示例的图示。在一些情况下,图5C的基于变换器的端到端神经网络架构可包括图5A的编码器子网络500a和图5B的解码器子网络500b。补丁拆分引擎(在图5C中被示出为“补丁拆分”)可类似于图5B所示的补丁去合并引擎并且执行与其相同的操作。
在返回到图5A和图5B之前,讨论现在转向图6至图7B所描绘的示例。如先前所提及的,图6至图7B提供了移位窗口变换器块的示例架构(图6A)、移位窗口变换器层之间的补丁合并的示例(图7A)以及由给定变换器层内的变换器块对执行的移位窗口自注意力的示例。
图6A描绘了第一移位窗口变换器块601和第二移位窗口变换器块603(统称为变换器块对)的示例架构600。如图所示,第一移位窗口变换器块601包括层范数610a;自注意力部件622(也称为“第一自注意力层”);层范数612a;以及前馈神经网络部件630a,被描绘为多层感知器(MLP)。第二移位窗口变换器块603包括层范数610b;自注意力部件624(也称为“第二自注意力层”);层范数612b;以及前馈神经网络部件630b,同样被描绘为MLP。
在一些示例中,第一移位窗口变换器块601可与第二移位窗口变换器块603相同,不同之处在于它们的应用不同窗口分割配置的相应自注意力层622和624。在一些情况下,第一自注意力层622可包括窗口化多头自注意力(W-MSA),并且第二自注意力层624可包括移位窗口多头自注意力(SW-MSA)。
在一些示例中,第一移位窗口变换器块601的第一自注意力层622可使用具有移位大小=0(对应于无移位)的移位窗口。例如,当窗口大小为8时,第一注意力层(例如,第一自注意力层622)可使用移位大小=0,第二注意力层(在第一注意力层之后,诸如第二自注意力层624)可使用移位大小=4,第三注意力层(在第二注意力层之后)可再次使用移位大小=0,第四注意力层(在第三注意力层之后)可使用移位大小=4,并且针对给定变换器块组中的移位窗口变换器块的数量以此类推(例如,如由图5A和图5B中的“x2”、“x6”和类似符号所示)。交替移位大小值(例如,交替移位=0和移位=4)导致跨窗口传播信号的效果。在一些情况下,在移位=0之后不必具有移位=4,因为移位大小可以是可变的。
在一些示例中,第一自注意力层622可应用非重叠窗口分割配置(诸如图7B的配置720)以将一组补丁划分成各自包含多个补丁的非重叠窗口。然后,第一自注意力层622可在每个窗口内局部地计算自注意力。第一自注意力层622可向层范数612a层(例如,Softmax层)提供自注意力信息。例如,第一自注意力层622可通过如下计算输出矩阵来计算自注意力值:
其中矩阵Q=WqX,矩阵K=WkX,并且矩阵V=WvX,并且对Q、K、V的输入是相同的X(因此是“自身”)。Wq、Wk和Wv项是将输入向量X投影或映射到查询(Q)、键(K)和值(V)矩阵的线性层。项dk是指键k的维度,其中充当缩放系数。Softmax是指用于获得自注意力值的权重的softmax函数。层范数612a可将权重输出到前馈神经网络部件630a(例如,多层感知器(MLP)层)。然后,可将第一移位窗口变换器块601的输出作为输入提供到第二移位窗口变换器块603。
在第二自注意力层624中,窗口分割被移位,从而产生与第一自注意力层622的窗口重叠的新窗口。例如,移位窗口分割配置(诸如图7B的配置730)可由第二自注意力层624应用。第二自注意力层624的移位窗口中的自注意力计算跨过第一自注意力层622中的先前窗口的边界,从而产生可提供给层范数612b的跨窗口连接。层范数612b可向前馈神经网络部件630b提供输出。
通过局部地确定自注意力,本文描述的基于变换器的图像和视频译码系统可实现支持低时延编码和解码的更高效率和计算性能。例如,在一些方面中,基于变换器的图像和视频译码系统具有相对于图像大小的线性计算复杂性。通过经由第二自注意力层获得跨窗口连接,基于变换器的图像和视频译码系统可实现匹配或优于与基于CNN以及其他现有方法相关联的率失真损失的率失真损失。
图7A示出了在编码器子网络500a的上下文中在更深的编码器变换器层(例如,从底部到顶部)中合并图像补丁的示例过程,并且将在下文更详细地描述。图7B示出了包括窗口分割配置720和窗口分割配置730的两个不同窗口分割配置的示例。窗口分割配置720描绘了应用于一组补丁令牌上的非重叠窗口分割,并且在一些示例中可由图6A的第一自注意力层622利用。非重叠窗口分割的示例在722处指示,并且其组成补丁令牌中的一者的示例在711处指示。在一些示例中,图6A的第一移位窗口变换器块601可使用自注意力部件622来应用非重叠窗口分割配置720。
窗口分割配置730描绘了应用于一组补丁令牌上的移位窗口分割,并且在一些示例中可由图6A的第二自注意力层624利用。在一些情况下,两个窗口分割配置720和730可应用于同一组补丁令牌上。
在一些示例中,非重叠窗口分割配置720将该组输入补丁令牌划分成相等大小的窗口,此处示出为包含16个补丁令牌的4×4窗口,但也可利用其他窗口几何形状和/或大小。移位窗口分割配置730可利用相对于非重叠分割配置720的那些窗口位移的窗口。例如,移位窗口732和734已经被位移,使得它们各自包含先前包含在分割配置720的非重叠窗口中的多个不同窗口中的一组令牌。由于单个移位窗口包含来自先前自注意力层的多个非重叠窗口的补丁令牌,因此可由此引入先前提及的跨窗口连接。如图所示,移位窗口分割配置730使用与非重叠窗口分割配置相同的4×4窗口大小,其中在窗口大小延伸超出补丁令牌组的边界的情况下对窗口大小进行裁剪或截断。然而,在一些示例中,移位窗口分割配置730和非重叠窗口分割配置720可使用不同的窗口大小。
现在返回到图5A和图5B所描绘的编码器和解码器子网络,如图5A所描绘的,编码器子网络500a的第一变换器层520包括两个移位窗口变换器块(例如,由移位窗口变换器块524下面的“x2”标签表示);变换器层530包括两个移位窗口变换器块;变换器层540包括六个移位窗口变换器块;并且变换器层550包括两个移位窗口变换器块。需注意,在一些示例中,本文描述的变换器层中的一个或多个变换器层可各自包括相比图5A的示例所描绘的更多或更少数量的移位窗口变换器块。
在一些示例中,变换器层520-550(以及它们的组成移位窗口变换器块)可基于视觉变换器。视觉变换器是被配置为对基于图像的输入进行操作的一种变换器架构类型。基于图像的输入可包括静止图像(例如,照片或其他类型的静止图像)和视频图像(例如,视频帧)。在视觉变换器架构下,首先将输入图像分割成多个非重叠补丁,然后将该多个补丁投影到线性空间中以便获得视觉变换器可对其操作的向量。
编码器子网络500a包括将输入图像502拆分成非重叠补丁的补丁分割引擎510a(图7A中描绘了两个补丁分割操作的示例)。输入图像502被指示为具有H×W×3的维度,其中H指示像素高度,W指示像素宽度,并且数字3指示输入图像的维度(输入图像的每个颜色通道(例如,R、G和B)一个维度)。每个补丁可具有相同或类似大小,例如,由高度和宽度维度中的多个像素给出。在一些示例中,由补丁分割引擎510a生成的补丁的大小可以是预先确定的。如图所示,预先确定的补丁大小为4×4,使得由补丁分割引擎510a生成的补丁包括以每侧四个像素的正方形排列的16个像素,但也可利用其他大小和/或高宽比。另外,需注意,补丁分割引擎510可将输入图像502分割成补丁,作为编码器子网络500a的处理流程的一部分,或者可提前将输入图像502分割成补丁。在一些示例中,由补丁分割引擎510a生成的补丁被视为令牌(也称为“补丁令牌”),其中每个令牌的特征被设定为补丁的组成原始像素RGB值的级联。在例示的示例中,每个4×4补丁的特征维度是48(例如,4×4×3=48),如详述提供给变换器层520的一组输入补丁的标签所指示。
从补丁分割模型510a,将根据输入图像502生成的一组非重叠补丁提供给第一变换器层520。如图所示,第一变换器层520包括线性嵌入层521,该线性嵌入层被应用于每个补丁的原始值特征,以便诸如通过应用线性变换来将它们投影到任意维度C。在一些示例中,线性嵌入层521可在第一变换器层520外部或以其他方式与第一变换器层分离,并且例如可与补丁分割引擎510a组合提供。另外,需注意,线性嵌入层521仅出现在第一变换器层520中—连续变换器层530、540、550缺少线性嵌入层,但分别包括补丁合并引擎532、542、552。
然后将移位窗口变换器块524应用于补丁令牌上。如先前提及的,一系列移位窗口变换器块524被示出为包括两个连续移位窗口变换器块,例如,诸如图6A中所见的两个移位窗口变换器块。移位窗口变换器块524执行经修改的自注意力计算(关于图6和图7A至图7B更深入地描述)以生成一个或多个注意力向量,这些注意力向量然后用于特征变换。移位窗口变换器块524的输出随后作为输入提供给第二变换器层530,其中保持补丁令牌的数量(例如,)和线性嵌入。
为了从输入图像502产生分层级表示或特征图,变换器层530、540和550各自包括相应补丁合并引擎532、542、552。可应用补丁合并引擎532、542、552以减少变换器层将在其上操作的补丁令牌的数量。如图所示,在每个变换器层中的移位窗口变换器块534-554之前提供补丁合并引擎532-552。在一些示例中,变换器层530-550中的一者或多者可被配置为使得其补丁合并引擎的输出直接耦合到其移位窗口变换器块系列的输入。
在一些示例中,补丁合并引擎532被配置为将来自先前变换器层520的一组补丁划分成相邻补丁或块的非重叠群组。补丁合并引擎532可级联每个群组内的补丁特征,并且可针对每个级联群组生成单个新补丁。在一个例示性示例中,由补丁合并引擎532、542、552执行的补丁合并操作可包括将空间数据块重新排列到深度中。具体地,补丁合并操作可包括输出输入张量的副本,其中来自高度和宽度维度的值被移动到深度维度。将大小为block_size×block_size的非重叠补丁或块(其中block_size表示待重新排列到深度/通道维度的输入块或补丁的空间大小)重新排列到块或补丁的每个位置处的深度中(由于大小为block_size×block_size的每个输入补丁将塌缩到输出中的一个像素)。输出张量的深度是block_size*block_size*input_depth。输入的每个块内的竖直(Y)和水平(X)坐标变成输出通道索引的高阶分量。输入张量的高度和宽度可被block_size整除。在一些示例中,编码器子网络500a可在补丁合并操作之后应用线性层以改变特征的通道数量。类似操作可由补丁合并引擎542和补丁合并引擎552执行。因此,补丁合并引擎532-552可将提供给每个连续变换器层530-550的补丁令牌的数量减少等于每个合并群组的补丁数量的因子。如上面提到的,图7A示出了在编码器子网络500a的上下文中在更深的编码器变换器层(例如,从底部到顶部)中合并图像补丁的示例过程。
参考图5B,解码器子网络500b的变换器层560、570和580各自包括相应补丁去合并引擎563、573和583(也称为补丁拆分引擎)。补丁去合并引擎563、573、583可执行补丁去合并过程以对特征图进行上采样(增加其大小)。补丁去合并过程是由补丁合并引擎532-552执行的补丁合并过程的逆过程。在一些示例中,补丁去合并引擎563被配置为将来自先前块或层(例如,同一变换器层中的移位窗口变换器块)的相邻补丁的非重叠群组从具有四个通道的一个像素拆分成具有一个通道的四个像素(在放大因子为2的情况下)。例如,在一个例示性示例中,由补丁去合并引擎563、573和583执行的补丁去合并操作可包括将形状张量(*,C×r2,H,W)中的元素重新排列成形状张量(*,C,H×r,W×r),其中r是放大因子。在一些示例中,解码器子网络500b可在补丁去合并操作之后应用线性层以改变特征的通道数量。图7A还可被视为示出了在解码器子网络500b的上下文中在更深的解码器变换器层(例如,从顶部到底部)中去合并图像补丁的示例过程。
在第一层702处,图像数据被表示为已被分割成的16×16网格补丁,其中每个补丁包含来自原始输入图像502的一定数量的离散像素。在第一层702和第二层704之间以及在第二层704和第三层706之间应用补丁合并。在一些示例中,层702、704、706可分别与变换器层520、530、540相同,并且上文描述的补丁合并过程可由补丁合并引擎532和542执行。
在第一层702和第二层704之间,通过将来自(例如,第一层702的)相邻补丁的2×2群组的特征级联到(例如,第二层704的)单个补丁中并且在级联特征上应用线性层来执行补丁合并。因此,第二层704中的单个合并补丁包含来自第一层702中的四个单独补丁的级联特征。补丁的总数被减少了四倍,分辨率下采样了二倍,并且补丁合并过程的输出维度是2C。
在第二层704和第三层706之间,可应用相同的补丁合并过程(例如,其中2×2个相邻补丁群组被合并成单个补丁)。第三层706中所得的合并补丁包含来自第二层704中四个单独补丁的级联特征,或者另选地可被视为包含来自第一层702中16个单独补丁的级联特征。与第一层702和第二层704之间的情况一样,第二层704和第三层706之间的补丁合并过程再次将补丁的总数减少四倍,并将分辨率下采样了两倍。因此,该补丁合并过程的输出维度是4C。
因此,当利用重复补丁合并逻辑时,补丁合并引擎532-552可彼此相同,即使每个补丁合并引擎具有不同的输入和输出分辨率(例如,补丁合并引擎532具有的输入补丁令牌分辨率和/>的输出分辨率;补丁合并引擎542具有/>的输入分辨率和/>的输出分辨率;并且补丁合并引擎552具有/>的输入分辨率和/>的输出分辨率)。
图6B是示出其中可利用本文描述的一个或多个基于变换器的神经网络架构的视频译码架构的示例的图示。使用基于变换器的神经网络允许视频译码架构以低时延操作(例如,低延迟视频译码架构)。图6B的视频译码系统的架构基于尺度空间流(SSF),该SSF至少部分地通过添加尺度参数来扩展或推广光流以更好地允许系统对不确定性建模。在图6B的上下文中,尺度参数与尺度空间翘曲部件相关联。如图所示,SSF视频译码架构使用SSF编码器和SSF解码器(共同被标记为“流AE”或流自动编码器)来执行运动补偿。SSF编码器和SSF解码器均可基于一个或多个卷积变换。类似地,残差编码器和残差解码器两者也可基于一个或多个卷积变换。在一些情况下,SSF编码器和解码器以及残差编码器和解码器可各自被实现为CNN。在一些示例中,可将所有四个编码器和解码器部件提供为四层CNN。
如图6B所描绘,在一些示例中,本文描述的一个或多个移位窗口变换器神经网络可用于替换SSF架构中的CNN和/或卷积变换。例如,可提供一个或多个移位窗口变换器神经网络来替换SSF编码器、SSF解码器、残差编码器和/或残差解码器。在一些示例中,四个移位窗口变换器神经网络可替换SSF视频译码架构中的四个卷积部件,如将在下文更深入地描述。
图8是示出用于处理图像和/或视频数据的过程800的示例的流程图。在框802处,过程800包括获得经编码图像数据帧的潜在表示。在一些示例中,经编码图像数据帧包括经编码静止图像。在一些示例中,经编码图像数据帧包括经编码视频帧。
在框804处,过程800包括:通过解码器子网络的多个解码器变换器层使用经编码图像数据帧的潜在表示作为输入来生成经解码图像数据帧。在一些情况下,多个解码器变换器层包括一系列连续解码器变换器层(例如,图5B所示的一系列解码器变换器层560、570、580和590)。多个解码器变换器层中的至少一个解码器变换器层包括一个或多个变换器块,该一个或多个变换器块用于生成一个或多个特征补丁并且在应用于一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力。多个解码器变换器层中的至少一个解码器变换器层还包括补丁去合并引擎,该补丁去合并引擎用于减小一个或多个补丁中的每个补丁的相应大小。例如,参考作为例示性示例的图5B,解码器变换器层560包括移位窗口变换器块564和补丁去合并引擎563。在一些方面中,包括在该至少一个解码器变换器层中的该一个或多个变换器块的至少一部分具有相同的架构。在一些方面中,包括在至少一个解码器变换器层中的一个或多个变换器块中的每个(例如,全部)变换器块具有相同的架构。
在一些示例中,为了生成经解码图像数据帧,过程800可包括:通过多个解码器变换器层中的第一解码器变换器层的第一变换器块在应用于一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力。过程800还可包括:通过第一解码器变换器层的第二变换器块在应用于一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力。例如,一个或多个第二窗口分区可被移位以与一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠(例如,如图7A和图7B所示)。过程800可包括:通过补丁去合并引擎将一个或多个补丁中的每个补丁分段成多个去合并补丁。多个去合并补丁是非重叠的。在一些示例中,多个去合并补丁中的每个去合并补丁具有均匀的补丁大小。在一些情况下,补丁去合并引擎应用为二或其他值的补丁大小缩减因子。在一些方面中,为了将一个或多个补丁中的每个补丁分段成多个去合并补丁,过程800可包括:减小多个去合并补丁的特征维度。
在一些情况下,过程800可包括:向多个解码器变换器层中的第二解码器变换器层的第一变换器块提供多个去合并补丁。例如,解码器变换器层560的补丁去合并引擎563可向解码器变换器层570的变换器块574提供去合并补丁。在一些示例中,过程800可包括:通过第二解码器变换器层的补丁去合并引擎对多个去合并补丁进行分段。过程800还可包括:向多个解码器变换器层中的第三解码器变换器层提供补丁去合并引擎的输出。例如,解码器变换器层570的补丁去合并引擎573可向解码器变换器层580(例如,解码器变换器层580的变换器块584)提供去合并补丁。在另一示例中,解码器变换器层590的线性嵌入引擎591可将线性变换应用于从变换器块594输出的特征,并且可将经线性变换特征输出到补丁分割引擎510b。
在一些方面中,过程800可包括:通过多个解码器变换器层来接收经编码图像数据帧的潜在表示作为输入。过程800可包括:应用非线性变换以生成经解码图像数据帧。在一些情况下,非线性变换是合成变换,并且经解码图像数据帧是与经编码图像数据帧相关联的输入图像的重构。
在一些示例中,过程800可包括:使用至少部分地基于率失真的损失函数来训练多个解码器变换器层中的一个或多个解码器变换器层。在一些情况下,该损失函数包括用于率失真的拉格朗日乘数。例如,如本文所述,率失真损失函数可包括L=D+β*R,其中D表示失真,R表示速率,并且不同β值表示针对不同比特率和/或峰值信噪比(PSNR)训练的模型。
在一些示例中,过程800可包括:利用至少第一训练数据集和第二训练数据集(例如,使用无监督训练或学习)来训练多个解码器变换器层。在此类示例中,与第一训练数据集的数据相比,第二训练数据集的数据具有相反的时间顺序。在一些情况下,可去除变换器块内的所有LayerNorm层。在一些示例中,变换器块中所用的窗口大小可从8减小到4。与第一训练集的数据相比,对第二训练集的数据使用相反的时间顺序,去除变换器块内的LayerNorm层,和/或将窗口大小从8减小到4可导致稳定的训练。
图9是示出用于处理图像和/或视频数据的过程900的示例的流程图。在框902处,过程900包括将帧分段成多个补丁。在一些示例中,帧包括静止图像。在一些示例中,帧包括视频帧(例如,未经编码视频帧)。在一些情况下,多个补丁中的每个补丁具有均匀大小并且包括所分段帧的一个或多个像素。例如,可从包括静止图像帧或视频帧的输入分段出该多个补丁。
在框904处,过程900包括:通过编码器子网络的多个编码器变换器层使用多个补丁作为输入来生成经编码图像数据帧。在一些示例中,经编码图像数据帧是图像数据的潜在表示。在一些情况下,潜在表示是由编码器子网络的多个编码器变换器层生成的分层级特征图。在一些示例中,过程900可包括:通过编码器子网络的多个编码器变换器层使用多个补丁作为输入来生成所分段帧的分层级特征图。过程900可包括:从分层级特征图生成经编码图像数据帧。
在一个例示性示例中,为了生成经编码图像数据帧,过程900可包括:通过多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力。过程900可包括:通过第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力。在一些方面中,该第一变换器块和该第二变换器块具有相同的架构。一个或多个移位窗口分区与一个或多个窗口分区重叠。过程900还可包括:通过第一变换器块和第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁。过程900可包括:通过补丁合并引擎来增大第一编码器变换器层和第二编码器变换器层之间的补丁大小。如本文所述,补丁合并引擎被配置为将来自第一编码器变换器层的多个相邻补丁组合成提供给第二编码器变换器层的合并补丁。在一些情况下,第一编码器变换器层的第二变换器块的输出耦合到第二编码器变换器层的输入。
在一些情况下,过程900可包括:使用补丁合并引擎通过级联从相邻补丁的一个或多个子集获得的特征来增大补丁大小。补丁合并引擎可将相邻补丁的每个子集合并成合并补丁输出。
在一些示例中,过程900可包括:在第一编码器变换器层之前向编码器子网络的线性嵌入层(例如,图5A的线性嵌入层521)提供多个补丁。线性嵌入层可将线性变换应用于多个补丁。
在一些方面中,过程900可包括:使用基于率失真损失的损失函数来训练多个编码器变换器层中的一个或多个编码器变换器层。在一些情况下,该损失函数包括用于率失真的拉格朗日乘数。如上面提到的,率失真损失可表示为L=D+β*R。
在一些方面中,过程900可包括:利用因数化先验对经编码图像数据进行熵译码。
在一些示例中,本文描述的过程(例如,过程800、过程900和/或本文描述的任何其他过程)可由计算设备、装置或系统来执行。在一个示例中,过程800和/或过程900可由具有图10的计算设备架构1000的计算设备或系统来执行。计算设备、装置或系统可包括任何合适的设备,诸如移动设备(例如,移动电话)、台式计算设备、平板计算设备、可穿戴设备(例如,VR头戴式耳机、AR头戴式耳机、AR眼镜、网络连接手表或智能手表、或者其他可穿戴设备)、服务器计算机、自动驾驶车辆或自动驾驶车辆的计算设备、机器人设备、膝上型计算机、智能电视机、相机、和/或具有用于执行本文描述的过程(包括过程800和/或过程900和/或本文描述的其他过程)的资源能力的任何其他计算设备。在一些情况下,计算设备或装置可以包括各种部件,诸如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个相机、一个或多个传感器、和/或被配置为实施本文中所描述的过程的步骤的其他部件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、它们的任何组合和/或其他部件。网络接口可以被配置为传送和/或接收基于互联网协议(IP)的数据或其他类型的数据。
计算设备的部件可以被实现在电路中。例如,部件可以包括电子电路或其他电子硬件,并且/或者可以使用电子电路或其他电子硬件来实现,该电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)、和/或其他合适的电子电路),并且/或者可以包括用于执行本文中描述的各种操作的计算机软件、固件或它们的任何组合并且/或者可以使用用于执行本文中描述的各种操作的计算机软件、固件或它们的任何组合来实现。
过程800和过程900被示出为逻辑流程图,这些逻辑流程图的操作表示可在硬件、计算机指令或它们的组合中实现的操作序列。在计算机指令的上下文中,各操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所叙述的操作。一般,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、部件、数据结构等。操作以其描述的顺序不旨在被解释为限制,并且任何数量的所描述的操作可以以任何顺序和/或并行地组合以实现过程。
另外,过程800、过程900和/或本文描述的任何其他过程可在配置有可执行指令的一个或多个计算机系统的控制下执行,以及可作为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用)来实现,通过硬件来实现,或它们的组合。如上面提到的,代码可以被存储在计算机可读或机器可读存储介质上,例如,以包括能够由一个或多个处理器执行的多个指令的计算机程序的形式。计算机可读或机器可读存储介质可以是非暂态的。
图10示出了可实现本文描述的各种技术的示例计算设备的示例计算设备架构1000。在一些示例中,计算设备可以包括移动设备、可穿戴设备、扩展现实设备(例如,虚拟现实(VR)设备、增强现实(AR)设备或混合现实(MR)设备)、个人计算机、膝上型计算机、视频服务器、车辆(或车辆的计算设备)、或其它设备。例如,计算设备架构1000可实现图6A的系统。计算设备架构1000的部件被示出为使用连接件1005诸如总线来彼此电通信。示例计算设备架构1000包括处理单元(CPU或处理器)1010以及将包括计算设备存储器1015(诸如只读存储器(ROM)1020和随机存取存储器(RAM)1025)的各种计算设备部件耦合到处理器1010的计算设备连接件1005。
计算设备架构1000可包括直接与处理器1010连接、非常接近该处理器或被集成作为该处理器的一部分的高速存储器的高速缓存。计算设备架构1000可将数据从存储器1015和/或存储设备1030复制到高速缓存1012,以供处理器1010快速访问。这样,高速缓存可提供避免处理器1010在等待数据时延迟的性能提升。这些引擎和其他引擎可控制或被配置为控制处理器1010以执行各种动作。也可使用其他计算设备存储器1015。存储器1015可包括具有不同性能特性的多种不同类型的存储器。处理器1010可包括任何通用处理器和被配置为控制处理器1010的硬件或软件服务(诸如存储在存储设备1030中的服务1 1032、服务21034和服务3 1036),以及其中软件指令被并入到处理器设计中的专用处理器。处理器1010可以是自含式系统,包含多个核心或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是对称或非对称的。
为了实现与计算设备架构1000的用户交互,输入设备1045可表示任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等。输出设备1035还可以是本领域技术人员已知的多个输出机构中的一者或多者,诸如显示器、投影器、电视机、扬声器设备等。在一些情况下,多模式计算设备可使用户能够提供多种类型的输入以与计算设备架构1000通信。通信接口1040通常可控制和管理用户输入和计算设备输出。对在任何特定硬件布置上进行的操作不存在任何限制,并且因此可以容易地替换此处的基础特征以随着它们被开发而获得改进的硬件或固件布置。
存储设备1030是非易失性存储器,并且可以是可存储可由计算机访问的数据的硬盘或其他类型的计算机可读介质,诸如磁带盒、闪存卡、固态存储器设备、数字多功能光盘、盒式磁带、随机存取存储器(RAM)1025、只读存储器(ROM)1020以及它们的混合物。存储设备1030可包括用于控制处理器1010的服务1032、1034、1036。构想了其他硬件或软件模块或引擎。存储设备1030可连接到计算设备连接件1005。在一个方面,执行特定功能的硬件模块可包括存储在与必要硬件部件(诸如处理器1010、连接件1005、输出设备1035等)连接的计算机可读介质中的软件部件,以执行功能。
本公开的各方面适用于包括或耦合到一个或多个主动深度感测系统的任何合适的电子设备(诸如安全系统、智能电话、平板计算机、膝上型计算机、车辆、无人机或其他设备)。虽然下文关于具有或耦合到一个光投影器的设备进行描述,但本公开的各方面可适用于具有任何数量的光投影器的设备,并且因此不限于特定设备。
术语“设备”不限于一个或特定数量的物理对象(诸如一部智能手机、一个控制器、一个处理系统等)。如本文所用,设备可以是具有可实现本公开的至少一些部分的一个或多个部分的任何电子设备。虽然下面的描述和示例使用术语“设备”来描述本公开的各个方面,但是术语“设备”不限于特定配置、类型或对象的数量。另外,术语“系统”不限于多个部件或特定实施方案。例如,系统可在一个或多个印刷电路板或其他基板上实现,并且可具有可移动或静态的部件。虽然以下描述和示例使用术语“系统”来描述本公开的各个方面,但术语“系统”不限于特定配置、类型、或对象数量。
在以上描述中提供了具体细节以提供对本文提供的实施方案和示例的详尽理解。然而,本领域普通技术人员将理解,没有这些具体细节也可以实践这些实施方案。为了清楚说明,在一些情况下,本技术可以被呈现为包括单独的功能块,包括包含设备、设备部件、以软件或硬件和软件的组合体现的方法中的步骤或例程的功能块。可以使用除了附图中所示和/或本文中所描述的那些部件之外的附加部件。例如,电路、系统、网络、过程和其他部件可以用框图形式示为部件以避免使这些实施方案由于不必要的细节而模糊。在其他实例中,可以在没有必要的细节的情况下示出公知的电路、过程、算法、结构和技术以避免混淆各实施方案。
单独的实施方案可以在上文被描述为被描绘为流程图、流图、数据流图、结构图或框图的过程或方法。尽管流程图可以将操作描述为顺序过程,但是操作中的许多操作可以被并行或同时执行。另外,可以重新排列操作的次序。当过程的操作完成时,过程终止,但是过程可具有附图中未包括的附加步骤。过程可对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,它的终止可以对应于该函数返回调用函数或主函数。
根据上述示例的过程和方法可使用被存储的计算机可执行指令或以其他方式从计算机可读介质可用的计算机可执行指令来实施。这些指令可包括例如使或以其他方式将通用计算机、专用计算机或处理设备配置为执行某一功能或功能群组的指令和数据。可通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、中间格式指令(诸如汇编语言)、固件、源代码等。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括非暂态介质,该非暂态介质中可以存储数据并且不包括无线地或在有线连接上传播的载波和/或暂态电子信号。非暂态介质的示例可以包括但不受限于磁盘或磁带、光学存储介质(诸如闪速存储器)、存储器或存储器设备、磁盘或光盘、闪速存储器、被提供有非易失性存储器的USB设备、网络存储设备、压缩光盘(CD)或数字多功能光盘(DVD)、它们的任何合适的组合等。计算机可读介质可在其上存储有代码和/或机器可执行指令,其可表示过程、函数、子程序、程序、例程、子例程、模块、引擎、软件包、类,或者指令、数据结构或程序语句的任何组合。通过传递和/或接收信息、数据、自变量、参数或存储器内容,代码段可以耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段来传递、转发或传送,这些手段包括存储器共享、消息传递、令牌传递、网络传输等。
在一些实施方案中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,在被提及时,非暂态计算机可读存储介质明确排除诸如能量、载波信号、电磁波以及信号本身等介质。
实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或它们的任何组合,并且可以采取多种形状因子中的任何形状因子。当以软件、固件、中间件或微代码实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可被存储在计算机可读或机器可读介质中。处理器可执行必要任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其他小形状因子个人计算机、个人数字助理、机架安装设备、独立设备等。本文中描述的功能也可以被体现在外围设备或内插式卡中。借由进一步的示例,此类功能性还可被实施在单个设备上执行的不同芯片或不同过程当中的电路板上。
指令、用于传达此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例手段。
在前述描述中,参照本申请的具体实施方案描述了本申请的各方面,但是本领域技术人员将认识到,本申请不限于此。因而,尽管本申请的例示性实施方案已经在本文中详细描述,但是要理解,发明概念可以以其他各种方式被实施和采用,并且所附权利要求书旨在被解释为包括这些变型,除非受到现有技术的限制。上述应用的各种特征和方面可以单独地或联合地使用。此外,在不脱离本说明书的更广泛的实质和范围的情况下,实施方案可以用于超出本文中描述的环境和应用的任何数量的环境和应用中。因此,说明书和附图应当被认为是例示性的而非限制性的。出于例示的目的,按照特定顺序来描述各方法。应当理解,在另选实施方案中,各方法可以按与所描述的不同顺序来执行。
本领域普通技术人员将理解,本文所使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于等于(“≤”)和大于等于(“≥”)符号来代替而不背离本说明书的范围。
在部件被描述为“被配置为”执行某些操作的情况下,可以例如通过设计电子电路或其它硬件以执行操作、通过对可编程电子电路(例如,微处理器或其它合适的电子电路)进行编程以执行操作、或它们的任何组合来实现此类配置。
短语“耦合到”是指任何部件直接或间接物理连接到另一部件,并且/或者任何部件直接或间接与另一部件进行通信(例如,通过有线或无线连接和/或其他合适的通信接口连接到另一部件)。
记载集合“中的至少一个”和/或集合中的“一个或多个”的权利要求语言或其他语言指示集合中的一个成员或集合中的多个成员(以任何组合)满足权利要求。例如,表述“A和B中的至少一个”或者“A或B中的至少一个”的权利要求语言意指A、B或A和B。在另一示例中,表述“A、B和C中的至少一个”或者“A、B或C中的至少一个”的权利要求语言意指A、B、C、或A和B、或A和C、或B和C、A和B和C。语言集合“中的至少一个”和/或集合中的“一个或多个”不将集合限制为集合中所列的项目。例如,表述“A和B中的至少一者”或“A或B中的至少一者”的权利要求语言可以意指A、B、或A和B,并且可以另外包括在A和B的集合中未列出的项目。
结合本文公开的实施方案描述的各种例示性逻辑块、模块、引擎、电路和算法步骤可实现为电子硬件、计算机软件、固件或它们的组合。为了清楚地例示硬件和软件的这种可互换性,已经在其功能性方面大致描述了各种例示性部件、块、模块、电路和步骤。将这种功能性实现为硬件还是软件取决于具体的应用和对整个系统提出的设计约束条件。技术人员可针对每种具体的应用以不同方式来实现所描述的功能性,但此类实现方式决策不应被解读为致使脱离本申请的范围。
本文中描述的技术还可以被实现在电子硬件、计算机软件、固件或它们的任何组合中。此类技术可以被实现在多种设备中的任何设备中,多种设备诸如通用计算机、无线通信设备手持机、或具有多种用途的集成电路设备,多种用途包括在无线通信设备手机和其它设备中的应用。被描述为模块或部件的任何特征可以一起被实施在集成逻辑设备中或分开地实施为分立但可互操作的逻辑设备。如果以软件来实现,则这些技术可以至少部分地由包括程序代码的计算机可读数据存储介质来实现,这些程序代码包括指令,这些指令在被执行时执行上述方法中的一者或多者。计算机可读数据存储介质可形成计算机程序产品的一部分,其可包括封装材料。计算机可读介质可包括存储器或数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存存储器、磁性或光学数据存储介质等。附加地或另选地,技术可以至少部分地由计算机可读通信介质来实现,该计算机可读通信介质承载或传送以指令或数据结构形式的且可由计算机访问、读取和/或执行的程序代码,诸如传播的信号或波。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或分立逻辑电路。此类处理器可被配置为执行本公开中所描述的技术中的任何技术。通用处理器可以是微处理器;但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可被实施为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可以指前述结构中的任何结构、前述结构的任何组合或适合于实施本文中所描述的技术的任何其它结构或装置。
本公开的例示性方面包括:
方面1:一种用于处理媒体数据的装置,包括:至少一个存储器;和耦合到该至少一个存储器的至少一个处理器,该至少一个处理器被配置为:获得经编码图像数据帧的潜在表示;以及基于解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块被配置为生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎被配置为减小该一个或多个补丁中的每个补丁的相应大小。
方面2:根据方面1所述的装置,其中为了生成该经解码图像数据帧,该至少一个处理器被配置为:使用该多个解码器变换器层中的第一解码器变换器层的第一变换器块来在应用于该一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力;使用该第一解码器变换器层的第二变换器块来在应用于该一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力,其中该一个或多个第二窗口分区被移位以与该一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠;以及使用该补丁去合并引擎来将该一个或多个补丁中的每个补丁分段成多个去合并补丁,其中该多个去合并补丁是非重叠的。
方面3:根据方面2所述的装置,其中该至少一个处理器被配置为:向该多个解码器变换器层中的第二解码器变换器层的第一变换器块提供该多个去合并补丁。
方面4:根据方面3所述的装置,其中该至少一个处理器被配置为:使用该第二解码器变换器层的补丁去合并引擎来对该多个去合并补丁进行分段;以及向该多个解码器变换器层中的第三解码器变换器层提供该补丁去合并引擎的输出。
方面5:根据方面2至4中任一方面所述的装置,其中该多个去合并补丁中的每个去合并补丁具有均匀的补丁大小,并且该补丁去合并引擎应用为二的补丁大小缩减因子。
方面6:根据方面2至5中任一方面所述的装置,其中为了将该一个或多个补丁中的每个补丁分段成该多个去合并补丁,该至少一个处理器被配置为:减小该多个去合并补丁的特征维度。
方面7:根据方面1至6中任一方面所述的装置,其中该多个解码器变换器层被配置为:接收该经编码图像数据帧的该潜在表示作为输入,并且应用非线性变换以生成经解码图像数据帧。
方面8:根据方面7所述的装置,其中该非线性变换是合成变换,并且该经解码图像数据帧是与该经编码图像数据帧相关联的输入图像的重构。
方面9:根据方面1至8中任一方面所述的装置,其中该至少一个处理器被配置为:使用至少部分地基于率失真的损失函数来训练该多个解码器变换器层中的一个或多个解码器变换器层。
方面10:根据方面9所述的装置,其中该损失函数包括用于率失真的拉格朗日乘数。
方面11:根据方面1至10中任一方面所述的装置,其中包括在该至少一个解码器变换器层中的该一个或多个变换器块的至少一部分具有相同的架构。
方面12:根据方面1至11中任一方面所述的装置,其中包括在该至少一个解码器变换器层中的该一个或多个变换器块中的每个变换器块具有相同的架构。
方面13:根据方面1至12中任一方面所述的装置,其中该经编码图像数据帧包括经编码静止图像。
方面14:根据方面1至13中任一方面所述的装置,其中该经编码图像数据帧包括经编码视频帧。
方面15:根据方面1至14中任一方面所述的装置,其中该至少一个处理器被配置为:利用至少第一训练数据集和第二训练数据集来训练该多个解码器变换器层,其中与该第一训练数据集的数据相比,该第二训练数据集的数据具有相反的时间顺序。
方面16:根据方面1至15中任一方面所述的装置,其中该多个解码器变换器层包括一系列连续解码器变换器层。
方面17:一种用于处理媒体数据的装置,包括:至少一个存储器;和耦合到该至少一个存储器的至少一个处理器,该至少一个处理器被配置为:将帧分段成多个补丁;以及基于编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧。
方面18:根据方面17所述的装置,其中为了生成该经编码图像数据帧,该至少一个处理器被配置为:使用该多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力;使用该第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力,其中该一个或多个移位窗口分区与该一个或多个窗口分区重叠;使用该第一变换器块和该第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁;以及使用补丁合并引擎来增大该第一编码器变换器层和第二编码器变换器层之间的补丁大小。
方面19:根据方面18所述的装置,其中该补丁合并引擎被配置为将来自该第一编码器变换器层的多个相邻补丁组合成提供给该第二编码器变换器层的合并补丁。
方面20:根据方面18或19中任一方面所述的装置,其中该第一编码器变换器层的该第二变换器块的输出耦合到该第二编码器变换器层的输入。
方面21:根据方面18至20中任一方面所述的装置,其中该至少一个处理器被配置为:使用该编码器子网络的该多个编码器变换器层使用该多个补丁作为输入来生成所分段帧的分层级特征图;以及从该分层级特征图生成该经编码图像数据帧。
方面22:根据方面18至21中任一方面所述的装置,其中该多个补丁中的每个补丁具有均匀大小并且包括所分段帧的一个或多个像素。
方面23:根据方面18至22中任一方面所述的装置,其中该补丁合并引擎被配置为:通过级联从相邻补丁的一个或多个子集获得的特征来增大该补丁大小,相邻补丁的每个子集由该补丁合并引擎合并成合并补丁输出。
方面24:根据方面18至23中任一方面所述的装置,其中该第一变换器块和该第二变换器块具有相同的架构。
方面25:根据方面18至24中任一方面所述的装置,其中该至少一个处理器被配置为:在该第一编码器变换器层之前向该编码器子网络的线性嵌入层提供该多个补丁。
方面26:根据方面17至25中任一方面所述的装置,其中该经编码图像数据帧是图像数据的潜在表示。
方面27:根据方面26所述的装置,其中该潜在表示是由该编码器子网络的该多个编码器变换器层生成的分层级特征图。
方面28:根据方面17至27中任一方面所述的装置,其中该至少一个处理器被配置为:使用基于率失真损失的损失函数来训练该多个编码器变换器层中的一个或多个编码器变换器层。
方面29:根据方面28所述的装置,其中该损失函数包括用于率失真的拉格朗日乘数。
方面30:根据方面17至29中任一方面所述的装置,其中从包括静止图像帧或视频帧的输入分段出该多个补丁。
方面31:根据方面17至30中任一方面所述的装置,其中该至少一个处理器被配置为:利用因数化先验对该经编码图像数据进行熵译码。
方面32:一种处理媒体数据的方法,该方法包括:获得经编码图像数据帧的潜在表示;以及通过解码器子网络的多个解码器变换器层使用该经编码图像数据帧的该潜在表示作为输入来生成经解码图像数据帧,其中该多个解码器变换器层中的至少一个解码器变换器层包括:一个或多个变换器块,该一个或多个变换器块用于生成一个或多个特征补丁并且在应用于该一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和补丁去合并引擎,该补丁去合并引擎用于减小该一个或多个补丁中的每个补丁的相应大小。
方面33:根据方面32所述的方法,其中通过该多个解码器变换器层生成该经解码图像数据帧包括:通过该多个解码器变换器层中的第一解码器变换器层的第一变换器块来在应用于该一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力;通过该第一解码器变换器层的第二变换器块来在应用于该一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力,其中该一个或多个第二窗口分区被移位以与该一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠;以及通过该补丁去合并引擎来将该一个或多个补丁中的每个补丁分段成多个去合并补丁,其中该多个去合并补丁是非重叠的。
方面34:根据方面33所述的方法,还包括:向该多个解码器变换器层中的第二解码器变换器层的第一变换器块提供该多个去合并补丁。
方面35:根据方面34所述的方法,还包括:通过该第二解码器变换器层的补丁去合并引擎来对该多个去合并补丁进行分段;以及向该多个解码器变换器层中的第三解码器变换器层提供该补丁去合并引擎的输出。
方面36:根据方面33至35中任一方面所述的方法,其中该多个去合并补丁中的每个去合并补丁具有均匀的补丁大小,并且该补丁去合并引擎应用为二的补丁大小缩减因子。
方面37:根据方面33至36中任一方面所述的方法,其中将该一个或多个补丁中的每个补丁分段成该多个去合并补丁还包括:减小该多个去合并补丁的特征维度。
方面38:根据方面32至37中任一方面所述的方法,还包括:通过该多个解码器变换器层接收该经编码图像数据帧的该潜在表示作为输入,并且应用非线性变换以生成经解码图像数据帧。
方面39:根据方面38所述的方法,其中该非线性变换是合成变换,并且该经解码图像数据帧是与该经编码图像数据帧相关联的输入图像的重构。
方面40:根据方面32至方面39中任一方面所述的方法,还包括:使用至少部分地基于率失真的损失函数来训练该多个解码器变换器层中的一个或多个解码器变换器层。
方面41:根据方面40所述的方法,其中该损失函数包括用于率失真的拉格朗日乘数。
方面42:根据方面32至41中任一方面所述的方法,其中包括在该至少一个解码器变换器层中的该一个或多个变换器块的至少一部分具有相同的架构。
方面43:根据方面32至42中任一方面所述的方法,其中包括在该至少一个解码器变换器层中的该一个或多个变换器块中的每个变换器块具有相同的架构。
方面44:根据方面32至43中任一方面所述的方法,其中该经编码图像数据帧包括经编码静止图像。
方面45:根据方面32至44中任一方面所述的方法,其中该经编码图像数据帧包括经编码视频帧。
方面46:根据方面32至45中任一项所述的方法,还包括:利用至少第一训练数据集和第二训练数据集来训练该多个解码器变换器层,其中与该第一训练数据集的数据相比,该第二训练数据集的数据具有相反的时间顺序。
方面47:根据方面32至46中任一方面所述的方法,其中该多个解码器变换器层包括一系列连续解码器变换器层。
方面48:一种处理媒体数据的方法,该方法包括:将帧分段成多个补丁;以及通过编码器子网络的多个编码器变换器层使用该多个补丁作为输入来生成经编码图像数据帧。
方面49:根据方面48所述的方法,其中生成该经编码图像数据帧包括:通过该多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力;通过该第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力,其中该一个或多个移位窗口分区与该一个或多个窗口分区重叠;通过该第一变换器块和该第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁;以及;以及通过补丁合并引擎来增大该第一编码器变换器层和第二编码器变换器层之间的补丁大小。
方面50:一种在其上存储有指令的非暂态计算机可读存储介质,这些指令在由一个或多个处理器执行时使该一个或多个处理器执行根据方面1至16和方面32至47所述的任何操作。
方面51:一种装置,包括用于执行根据方面1至16和方面32至47所述的任何操作的构件。
方面52:一种执行根据方面17至31所述的操作中的任何操作的方法。
方面53:一种在其上存储有指令的非暂态计算机可读存储介质,这些指令在由一个或多个处理器执行时使该一个或多个处理器执行根据方面17至31所述的任何操作。
方面54:一种装置,包括用于执行根据方面17至31所述的操作中的任何操作的构件。
Claims (49)
1.一种用于处理媒体数据的装置,包括:
至少一个存储器;和
耦合到所述至少一个存储器的至少一个处理器,所述至少一个处理器被配置为:
获得经编码图像数据帧的潜在表示;以及
基于解码器子网络的多个解码器变换器层使用所述经编码图像数据帧的所述潜在表示作为输入来生成经解码图像数据帧,其中所述多个解码器变换器层中的至少一个解码器变换器层包括:
一个或多个变换器块,所述一个或多个变换器块被配置为生成一个或多个特征补丁并且在应用于所述一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和
补丁去合并引擎,所述补丁去合并引擎被配置为减小所述一个或多个补丁中的每个补丁的相应大小。
2.根据权利要求1所述的装置,其中为了生成所述经解码图像数据帧,所述至少一个处理器被配置为:
使用所述多个解码器变换器层中的第一解码器变换器层的第一变换器块来在应用于所述一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力;
使用所述第一解码器变换器层的第二变换器块来在应用于所述一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力,其中所述一个或多个第二窗口分区被移位以与所述一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠;以及
使用所述补丁去合并引擎来将所述一个或多个补丁中的每个补丁分段成多个去合并补丁,其中所述多个去合并补丁是非重叠的。
3.根据权利要求2所述的装置,其中所述至少一个处理器被配置为:向所述多个解码器变换器层中的第二解码器变换器层的第一变换器块提供所述多个去合并补丁。
4.根据权利要求3所述的装置,其中所述至少一个处理器被配置为:
使用所述第二解码器变换器层的补丁去合并引擎来对所述多个去合并补丁进行分段;以及
向所述多个解码器变换器层中的第三解码器变换器层提供所述补丁去合并引擎的输出。
5.根据权利要求2所述的装置,其中所述多个去合并补丁中的每个去合并补丁具有均匀的补丁大小,并且所述补丁去合并引擎应用为二的补丁大小缩减因子。
6.根据权利要求2所述的装置,其中为了将所述一个或多个补丁中的每个补丁分段成所述多个去合并补丁,所述至少一个处理器被配置为:减小所述多个去合并补丁的特征维度。
7.根据权利要求1所述的装置,其中所述多个解码器变换器层被配置为:接收所述经编码图像数据帧的所述潜在表示作为输入,并且应用非线性变换以生成经解码图像数据帧。
8.根据权利要求7所述的装置,其中所述非线性变换是合成变换,并且所述经解码图像数据帧是与所述经编码图像数据帧相关联的输入图像的重构。
9.根据权利要求1所述的装置,其中所述至少一个处理器被配置为:使用至少部分地基于率失真的损失函数来训练所述多个解码器变换器层中的一个或多个解码器变换器层。
10.根据权利要求9所述的装置,其中所述损失函数包括用于率失真的拉格朗日乘数。
11.根据权利要求1所述的装置,其中包括在所述至少一个解码器变换器层中的所述一个或多个变换器块的至少一部分具有相同的架构。
12.根据权利要求1所述的装置,其中包括在所述至少一个解码器变换器层中的所述一个或多个变换器块中的每个变换器块具有相同的架构。
13.根据权利要求1所述的装置,其中所述经编码图像数据帧包括经编码静止图像。
14.根据权利要求1所述的装置,其中所述经编码图像数据帧包括经编码视频帧。
15.根据权利要求1所述的装置,其中所述至少一个处理器被配置为:利用至少第一训练数据集和第二训练数据集来训练所述多个解码器变换器层,其中与所述第一训练数据集的数据相比,所述第二训练数据集的数据具有相反的时间顺序。
16.根据权利要求1所述的装置,其中所述多个解码器变换器层包括一系列连续解码器变换器层。
17.一种用于处理媒体数据的装置,包括:
至少一个存储器;和
耦合到所述至少一个存储器的至少一个处理器,所述至少一个处理器被配置为:
将帧分段成多个补丁;以及
基于编码器子网络的多个编码器变换器层使用所述多个补丁作为输入来生成经编码图像数据帧。
18.根据权利要求17所述的装置,其中为了生成所述经编码图像数据帧,所述至少一个处理器被配置为:
使用所述多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力;
使用所述第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力,其中所述一个或多个移位窗口分区与所述一个或多个窗口分区重叠;
使用所述第一变换器块和所述第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁;以及
使用补丁合并引擎来增大所述第一编码器变换器层和第二编码器变换器层之间的补丁大小。
19.根据权利要求18所述的装置,其中所述补丁合并引擎被配置为将来自所述第一编码器变换器层的多个相邻补丁组合成提供给所述第二编码器变换器层的合并补丁。
20.根据权利要求18所述的装置,其中所述第一编码器变换器层的所述第二变换器块的输出耦合到所述第二编码器变换器层的输入。
21.根据权利要求18所述的装置,其中所述至少一个处理器被配置为:
使用所述编码器子网络的所述多个编码器变换器层使用所述多个补丁作为输入来生成所分段帧的分层级特征图;以及
从所述分层级特征图生成所述经编码图像数据帧。
22.根据权利要求18所述的装置,其中所述多个补丁中的每个补丁具有均匀大小并且包括所分段帧的一个或多个像素。
23.根据权利要求18所述的装置,其中所述补丁合并引擎被配置为:通过级联从相邻补丁的一个或多个子集获得的特征来增大所述补丁大小,相邻补丁的每个子集由所述补丁合并引擎合并成合并补丁输出。
24.根据权利要求18所述的装置,其中所述第一变换器块和所述第二变换器块具有相同的架构。
25.根据权利要求18所述的装置,其中所述至少一个处理器被配置为:在所述第一编码器变换器层之前向所述编码器子网络的线性嵌入层提供所述多个补丁。
26.根据权利要求17所述的装置,其中所述经编码图像数据帧是图像数据的潜在表示。
27.根据权利要求26所述的装置,其中所述潜在表示是由所述编码器子网络的所述多个编码器变换器层生成的分层级特征图。
28.根据权利要求17所述的装置,其中所述至少一个处理器被配置为:使用基于率失真损失的损失函数来训练所述多个编码器变换器层中的一个或多个编码器变换器层。
29.根据权利要求28所述的装置,其中所述损失函数包括用于率失真的拉格朗日乘数。
30.根据权利要求17所述的装置,其中从包括静止图像帧或视频帧的输入分段出所述多个补丁。
31.根据权利要求17所述的装置,其中所述至少一个处理器被配置为:利用因数化先验对所述经编码图像数据进行熵译码。
32.一种处理媒体数据的方法,所述方法包括:
获得经编码图像数据帧的潜在表示;以及
通过解码器子网络的多个解码器变换器层使用所述经编码图像数据帧的所述潜在表示作为输入来生成经解码图像数据帧,其中所述多个解码器变换器层中的至少一个解码器变换器层包括:
一个或多个变换器块,所述一个或多个变换器块用于生成一个或多个特征补丁并且在应用于所述一个或多个补丁上的一个或多个窗口分区和移位窗口分区内局部地确定自注意力;和
补丁去合并引擎,所述补丁去合并引擎用于减小所述一个或多个补丁中的每个补丁的相应大小。
33.根据权利要求32所述的方法,其中通过所述多个解码器变换器层来生成所述经解码图像数据帧包括:
通过所述多个解码器变换器层中的第一解码器变换器层的第一变换器块来在应用于所述一个或多个补丁上的一个或多个第一窗口分区内局部地确定自注意力;
通过所述第一解码器变换器层的第二变换器块来在应用于所述一个或多个补丁上的一个或多个第二窗口分区内局部地确定自注意力,其中所述一个或多个第二窗口分区被移位以与所述一个或多个第一窗口分区中的相邻第一窗口分区之间的一个或多个边界重叠;以及
通过所述补丁去合并引擎来将所述一个或多个补丁中的每个补丁分段成多个去合并补丁,其中所述多个去合并补丁是非重叠的。
34.根据权利要求33所述的方法,还包括:向所述多个解码器变换器层中的第二解码器变换器层的第一变换器块提供所述多个去合并补丁。
35.根据权利要求34所述的方法,还包括:
通过所述第二解码器变换器层的补丁去合并引擎来对所述多个去合并补丁进行分段;以及
向所述多个解码器变换器层中的第三解码器变换器层提供所述补丁去合并引擎的输出。
36.根据权利要求33所述的方法,其中所述多个去合并补丁中的每个去合并补丁具有均匀的补丁大小,并且所述补丁去合并引擎应用为二的补丁大小缩减因子。
37.根据权利要求33所述的方法,其中将所述一个或多个补丁中的每个补丁分段成所述多个去合并补丁还包括:减小所述多个去合并补丁的特征维度。
38.根据权利要求32所述的方法,还包括:通过所述多个解码器变换器层来接收所述经编码图像数据帧的所述潜在表示作为输入,并且应用非线性变换以生成经解码图像数据帧。
39.根据权利要求38所述的方法,其中所述非线性变换是合成变换,并且所述经解码图像数据帧是与所述经编码图像数据帧相关联的输入图像的重构。
40.根据权利要求32所述的方法,还包括:使用至少部分地基于率失真的损失函数来训练所述多个解码器变换器层中的一个或多个解码器变换器层。
41.根据权利要求40所述的方法,其中所述损失函数包括用于率失真的拉格朗日乘数。
42.根据权利要求32所述的方法,其中包括在所述至少一个解码器变换器层中的所述一个或多个变换器块的至少一部分具有相同的架构。
43.根据权利要求32所述的方法,其中包括在所述至少一个解码器变换器层中的所述一个或多个变换器块中的每个变换器块具有相同的架构。
44.根据权利要求32所述的方法,其中所述经编码图像数据帧包括经编码静止图像。
45.根据权利要求32所述的方法,其中所述经编码图像数据帧包括经编码视频帧。
46.根据权利要求32所述的方法,还包括:利用至少第一训练数据集和第二训练数据集来训练所述多个解码器变换器层,其中与所述第一训练数据集的数据相比,所述第二训练数据集的数据具有相反的时间顺序。
47.根据权利要求32所述的方法,其中所述多个解码器变换器层包括一系列连续解码器变换器层。
48.一种处理媒体数据的方法,所述方法包括:
将帧分段成多个补丁;以及
通过编码器子网络的多个编码器变换器层使用所述多个补丁作为输入来生成经编码图像数据帧。
49.根据权利要求48所述的方法,其中生成所述经编码图像数据帧包括:
通过所述多个编码器变换器层中的第一编码器变换器层的第一变换器块来在一个或多个窗口分区内局部地确定自注意力;
通过所述第一编码器变换器层的第二变换器块来在一个或多个移位窗口分区内局部地确定自注意力,其中所述一个或多个移位窗口分区与所述一个或多个窗口分区重叠;
通过所述第一变换器块和所述第二变换器块中的一者或多者来确定用于将非线性变换应用于所分段帧的一个或多个特征补丁;以及
通过补丁合并引擎来增大所述第一编码器变换器层和第二编码器变换器层之间的补丁大小。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/486,732 US20230100413A1 (en) | 2021-09-27 | 2021-09-27 | Transformer-based architecture for transform coding of media |
US17/486,732 | 2021-09-27 | ||
PCT/US2022/076496 WO2023049655A1 (en) | 2021-09-27 | 2022-09-15 | Transformer-based architecture for transform coding of media |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117980916A true CN117980916A (zh) | 2024-05-03 |
Family
ID=83598683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280063767.1A Pending CN117980916A (zh) | 2021-09-27 | 2022-09-15 | 用于媒体的变换译码的基于变换器的架构 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230100413A1 (zh) |
CN (1) | CN117980916A (zh) |
TW (1) | TW202318878A (zh) |
WO (1) | WO2023049655A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116595421B (zh) * | 2023-06-10 | 2024-04-09 | 北京航空航天大学 | 基于时频谱图和变换器算法的飞行器电信号预测方法 |
-
2021
- 2021-09-27 US US17/486,732 patent/US20230100413A1/en active Pending
-
2022
- 2022-09-15 CN CN202280063767.1A patent/CN117980916A/zh active Pending
- 2022-09-15 WO PCT/US2022/076496 patent/WO2023049655A1/en active Application Filing
- 2022-09-16 TW TW111135102A patent/TW202318878A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023049655A1 (en) | 2023-03-30 |
TW202318878A (zh) | 2023-05-01 |
US20230100413A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11405626B2 (en) | Video compression using recurrent-based machine learning systems | |
KR20230074137A (ko) | 머신 러닝 시스템들을 이용한 인스턴스 적응적 이미지 및 비디오 압축 | |
US11477464B2 (en) | End-to-end neural network based video coding | |
US20220191523A1 (en) | Front-end architecture for neural network based video coding | |
US12003734B2 (en) | Machine learning based flow determination for video coding | |
KR20240054975A (ko) | 기계 학습 시스템들을 사용하여 네트워크 파라미터 서브공간에서의 인스턴스 적응적 이미지 및 비디오 압축 | |
WO2022081307A1 (en) | Joint termination of bidirectional data blocks for parallel coding | |
KR20230118693A (ko) | 병렬 엔트로피 코딩을 위한 비트스트림 인덱스 압축 | |
US11399198B1 (en) | Learned B-frame compression | |
CN117980916A (zh) | 用于媒体的变换译码的基于变换器的架构 | |
KR20240090145A (ko) | 미디어의 변환 코딩을 위한 트랜스포머 기반 아키텍처 | |
US20240214578A1 (en) | Regularizing neural networks with data quantization using exponential family priors | |
US20240015318A1 (en) | Video coding using optical flow and residual predictors | |
US11825090B1 (en) | Bit-rate estimation for video coding with machine learning enhancement | |
US20240013441A1 (en) | Video coding using camera motion compensation and object motion compensation | |
WO2022182651A1 (en) | Machine learning based flow determination for video coding | |
KR20230117346A (ko) | 뉴럴 네트워크 기반 비디오 코딩을 위한 프론트-엔드 아키텍처 | |
CN116965032A (zh) | 用于视频译码的基于机器学习的流确定 | |
CN116547965A (zh) | 用于基于神经网络的视频译码的前端架构 | |
WO2024015665A1 (en) | Bit-rate estimation for video coding with machine learning enhancement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |