CN118120233A - 基于注意力的图像和视频压缩上下文建模 - Google Patents
基于注意力的图像和视频压缩上下文建模 Download PDFInfo
- Publication number
- CN118120233A CN118120233A CN202180103439.5A CN202180103439A CN118120233A CN 118120233 A CN118120233 A CN 118120233A CN 202180103439 A CN202180103439 A CN 202180103439A CN 118120233 A CN118120233 A CN 118120233A
- Authority
- CN
- China
- Prior art keywords
- segments
- super
- tensor
- potential
- neural network
- 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
- 238000007906 compression Methods 0.000 title description 26
- 230000006835 compression Effects 0.000 title description 25
- 238000000034 method Methods 0.000 claims abstract description 136
- 238000013528 artificial neural network Methods 0.000 claims abstract description 116
- 238000012545 processing Methods 0.000 claims abstract description 109
- 230000008569 process Effects 0.000 claims description 33
- 230000009466 transformation Effects 0.000 claims description 33
- 230000001537 neural effect Effects 0.000 claims description 30
- 238000013527 convolutional neural network Methods 0.000 claims description 26
- 238000000926 separation method Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 36
- 230000006854 communication Effects 0.000 description 25
- 238000004891 communication Methods 0.000 description 25
- 230000007246 mechanism Effects 0.000 description 25
- 238000011176 pooling Methods 0.000 description 23
- 230000004913 activation Effects 0.000 description 18
- 238000001994 activation Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 210000002569 neuron Anatomy 0.000 description 13
- 230000002829 reductive effect Effects 0.000 description 13
- 238000013139 quantization Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000013135 deep learning Methods 0.000 description 7
- 238000012549 training Methods 0.000 description 7
- 241000282326 Felis catus Species 0.000 description 6
- 238000013500 data storage Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 4
- 230000001364 causal effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000023320 Luma <angiosperm> Species 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 239000000945 filler Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 108091026890 Coding region Proteins 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 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
- 238000007667 floating Methods 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000857 visual cortex Anatomy 0.000 description 1
- 230000003313 weakening effect Effects 0.000 description 1
Classifications
-
- 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/088—Non-supervised learning, e.g. competitive learning
-
- 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
-
- 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
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- 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/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- 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/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
-
- 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/044—Recurrent networks, e.g. Hopfield 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/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明描述了用于对潜在张量进行熵编码和熵解码的方法和装置。所述方法包括:在空间维度中将所述潜在张量分离为分段,其中,每个分段包括至少一个潜在张量元素;通过神经网络处理所述分段的布置,其中,所述神经网络包括至少一个注意力层;根据所述处理的分段,获取用于对潜在张量元素进行熵编码或熵解码的概率模型。
Description
本发明的实施例涉及基于人工智能(AI)的视频或图像压缩技术领域,尤其涉及使用神经网络内的注意力层来处理潜在张量的元素进行上下文建模。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视(TV)、基于互联网和移动网络的视频传输、视频聊天、视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。
即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中进行流式传输或以其它方式传输时,这样可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当在存储设备上存储视频时,该视频的大小也可能成为问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行编码,然后进行传输或存储,从而减少表示数字视频图像的数据量。然后,由对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不牺牲图像质量的前提下提高压缩比。
近年来,深度学习在图像和视频编码和解码领域越来越受欢迎。
发明内容
本发明的实施例提供了用于对潜在张量进行熵编码和熵解码的装置和方法。所述方法包括:将所述潜在张量分离为分段;通过包括注意力层的神经网络的一层或多层处理一组元素,获取用于对所述潜在张量的当前元素进行熵编码的概率模型。
本发明的实施例由独立权利要求的特征定义,并且实施例的其它有利实现方式由从属权利要求的特征定义。
根据一个实施例,提供了一种用于对潜在张量进行熵编码的方法,包括:在空间维度中将所述潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层的神经网络的一个或多个层处理所述多个分段的布置;根据所述处理的多个分段,获取用于对所述潜在张量的当前元素进行熵编码的概率模型。
所述方法考虑了所述潜在张量的空间相关性和隐式熵估计的空间自适应性。注意力机制自适应地对之前译码的潜在分段的重要性进行加权。所述分段对所述当前元素进行熵建模的贡献对应于它们各自的重要性。因此,提高了所述熵估计的性能。
在一种示例性实现方式中,所述分离所述潜在张量包括在所述信道维度中将所述潜在张量分离为两个或两个以上分段。
在信道维度中将所述潜在张量分离为分段可以将跨信道相关性用于所述上下文建模,从而提高所述熵估计的性能。
例如,所述处理布置包括以预定义的顺序布置所述分段,具有相同空间坐标的分段被分组在一起。
这样的布置可以通过关注由于相关处理顺序而产生的跨信道相关性来提高所述熵估计的性能。
在一种示例性实现方式中,所述处理布置包括布置所述分段,具有不同空间坐标的分段以预定义的顺序连续布置。
这样的布置可以通过关注由于相关处理顺序而产生的空间相关性来提高所述熵估计的性能。
例如,所述神经网络进行的处理包括:应用第一神经子网以提取所述多个分段的特征;提供所述第一神经子网的输出作为所述神经网络内的后续层的输入。
处理所述神经网络的输入以提取所述多个分段的特征可以使注意力层集中在所述输入的独立深度特征上。
在示例性实现方式中,所述神经网络进行的处理还包括:提供所述多个分段的位置信息作为所述至少一个注意力层的输入。
位置编码可以使所述注意力层利用输入序列的顺序。
在一种示例性实现方式中,所述处理所述多个分段的布置包括:从所述多个分段中选择分段的子集;提供所述子集作为所述神经网络内的后续层的输入。
选择分段的子集可以通过要求减小的内存大小和/或减少的处理量来支持更大大小的潜在张量。
例如,所述神经网络中的所述至少一个注意力层进行的处理还包括:应用掩码,其中,所述掩码屏蔽在所述潜在张量的处理顺序内在当前元素之后的注意力张量中的元素。
应用掩码可确保仅处理之前编码的元素,从而保留编码顺序。所述掩码将解码侧信息的可用性镜像到编码侧。
在一种示例性实现方式中,所述神经网络包括第二神经子网,第二神经子网处理所述注意力层的输出。
所述神经子网可以处理由所述注意力层输出的特征,以提供编码中使用的符号的概率,从而实现高效的编码和/或解码。
例如,所述第一神经子网络和所述第二神经子网络中的至少一个是多层感知器。
多层感知器可以提供神经网络的有效实现方式。
在一种示例性实现方式中,所述神经网络中的至少一个注意力层是多头注意力层。
多头注意力层可以通过并行处理所述输入的不同表示,从而提供更多的投影和注意力计算来改进对概率的估计,这对应于同一输入的不同视角。
例如,所述神经网络中的所述至少一个注意力层包括在变换子网中。
变换子网可以提供注意力机制的有效实现方式。
在一种示例性实现方式中,所述方法还包括:在由所述神经网络处理之前,用零分段填充所述多个分段的所述布置的开始。
在布置开始时用零填充反映了解码侧信息的可用性,因此保留了编码顺序中的因果关系。
例如,所述方法还包括:使用所述获取的概率模型将所述当前元素熵编码到第一码流中。
使用通过包括注意力层的神经网络处理所述多个分段而获取的概率模型可以减小所述码流的大小。
在一种示例性实现方式中,所述方法还包括:在分离成分段之前量化所述潜在张量。
量化的潜在张量产生了简化的概率模型,从而实现了更高效的编码过程。此外,这种潜在张量被压缩,并且可以以降低的复杂性进行处理,并在码流中更高效地表示。
例如,所述方法还包括根据计算复杂性和/或所述第一码流的性质选择用于所述熵编码的概率模型。
启用所述上下文建模策略的选择可以允许在编码过程期间更好的性能,并可以提供使经编码码流适应所需应用的灵活性。
在一种示例性实现方式中,所述方法还包括:对所述潜在张量进行超编码,获取超潜在张量;将所述超潜在张量熵编码到第二码流中;对所述第二码流进行熵解码;通过对所述超潜在张量进行超解码,获取超解码器输出。
引入超先验模型可以通过确定所述潜在张量中的其它冗余来进一步改进所述概率模型,从而提高编码速率。
例如,所述方法还包括:将所述超解码器输出分离为多个超解码器输出分段,其中,每个超解码器输出分段包括一个或多个超解码器输出元素;对于多个分段中的每个分段,在获取所述概率模型之前,将所述分段和所述多个超解码器输出分段中的超解码器输出分段集合合并。
通过将所述超解码器输出与所述多个分段中的相应分段合并,可以进一步改进所述概率模型。
在一个示例性实现方式中,所述待与相应分段合并的超解码器输出分段集合包括以下中的一个或多个:对应于所述相应分段的超解码器输出分段,或对应于与所述相应分段相同的信道的多个超解码器输出分段,或在空间上与所述相应分段相邻的多个超解码器输出分段,或包括在空间上与所述相应分段相邻的相邻分段和对应于与所述相邻分段相同的信道的分段的多个超解码器输出分段。
通过包括相应的超解码器输出段集合,可以进一步改进所述概率模型。性能和复杂性的行为可能取决于所述超解码器输出分段集合和待编码的内容。
例如,所述方法还包括根据计算复杂性和/或所述第一码流的性质自适应地选择所述超解码器输出分段集合。
启用其它超先验建模策略的选择可以允许在编码过程期间更好的性能,并可以提供使经编码码流适应所需应用的灵活性。
在一种示例性实现方式中,对于所述多个分段中的每个分段,并行执行以下步骤中的一个或多个:由神经网络处理;对所述当前元素进行熵编码。
所述分段的并行处理可能会导致更快地编码到所述码流中。
根据一个实施例,提供了一种用于对图像数据进行编码的方法,其中,包括:通过使用自动编码卷积神经网络处理所述图像数据,获取潜在张量;根据上述任一方法所述的使用生成的概率模型将所述潜在张量熵编码到码流中。
熵编码可以容易且有利地应用于图像编码,以有效地降低数据速率,例如,当需要传输或存储图像或视频时,用于图像重建的潜在张量仍然可以具有相当大的大小。
根据一个实施例,提供了一种用于对潜在张量进行熵解码的方法,其中,包括:用零初始化所述潜在张量;在空间维度中将所述潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层的神经网络的一个或多个层处理所述多个分段的布置;根据所述处理的多个分段,获取用于对所述潜在张量的当前元素进行熵解码的概率模型。
所述方法考虑了所述潜在张量的空间相关性和隐式熵估计的空间自适应性。注意力机制自适应地对之前译码的潜在分段的重要性进行加权。所述分段对所述当前元素进行熵建模的贡献对应于它们各自的重要性。因此,提高了所述熵估计的性能。
在一种示例性实现方式中,所述分离所述潜在张量包括在所述信道维度中将所述潜在张量分离为两个或两个以上分段。
在信道维度中将所述潜在张量分离为分段可以将跨信道相关性用于所述上下文建模,从而提高所述熵估计的性能。
例如,所述处理布置包括以预定义的顺序布置所述分段,具有相同空间坐标的分段被分组在一起。
这样的布置可以通过关注由于相关处理顺序而产生的跨信道相关性来提高所述熵估计的性能。
在一种示例性实现方式中,所述处理布置包括布置所述分段,具有不同空间坐标的分段以预定义的顺序连续布置。
这样的布置可以通过关注由于相关处理顺序而产生的空间相关性来提高所述熵估计的性能。
例如,所述神经网络进行的处理包括:应用第一神经子网以提取所述多个分段的特征;提供所述第一神经子网的输出作为所述神经网络内的后续层的输入。
处理所述神经网络的输入以提取所述多个分段的特征可以使注意力层集中在所述输入的独立深度特征上。
在示例性实现方式中,所述神经网络进行的处理还包括:提供所述多个分段的位置信息作为所述至少一个注意力层的输入。
位置编码可以使所述注意力层利用输入序列的顺序。
在一种示例性实现方式中,所述处理所述多个分段的布置包括:从所述多个分段中选择分段的子集;提供所述子集作为所述神经网络内的后续层的输入。
选择分段的子集可以通过要求减小的内存大小和/或减少的处理量来支持更大大小的潜在张量。
在一种示例性实现方式中,所述神经网络包括第二神经子网,第二神经子网处理所述注意力层的输出。
所述神经子网可以处理由所述注意力层输出的特征,以提供编码中使用的符号的概率,从而实现高效的编码和/或解码。
例如,所述第一神经子网络和所述第二神经子网络中的至少一个是多层感知器。
多层感知器可以提供神经网络的有效实现方式。
在一种示例性实现方式中,所述神经网络中的至少一个注意力层是多头注意力层。
多头注意力层可以通过并行处理所述输入的不同表示,从而提供更多的投影和注意力计算来改进对概率的估计,这对应于同一输入的不同视角。
例如,所述神经网络中的所述至少一个注意力层包括在变换子网中。
变换子网可以提供注意力机制的有效实现方式。
在一种示例性实现方式中,所述方法还包括:在由所述神经网络处理之前,用零分段填充所述多个分段的所述布置的开始。
在布置开始时用零填充反映了解码侧信息的可用性,因此保留了编码顺序中的因果关系。
例如,所述方法还包括:使用所述获取的概率模型从第一码流中熵解码所述当前元素。
使用通过包括注意力层的神经网络处理所述多个分段而获取的概率模型可以减小所述码流的大小。
例如,所述方法还包括根据计算复杂性和/或所述第一码流的性质选择用于所述熵编码的概率模型。
启用所述上下文建模策略的选择可以允许在编码过程期间更好的性能,并可以提供使经编码码流适应所需应用的灵活性。
在一种示例性实现方式中,所述方法还包括:从第二码流中熵解码超潜在张量;通过对所述超潜在张量进行超解码,获取超解码器输出。
引入超先验模型可以通过确定所述潜在张量中的其它冗余来进一步改进所述概率模型,从而提高编码速率。
例如,所述方法还包括:将所述超解码器输出分离为多个超解码器输出分段,其中,每个超解码器输出分段包括一个或多个超解码器输出元素;对于多个分段中的每个分段,在获取所述概率模型之前,将所述分段和所述多个超解码器输出分段中的超解码器输出分段集合合并。
通过将所述超解码器输出与所述多个分段中的相应分段合并,可以进一步改进所述概率模型。
在一个示例性实现方式中,所述待与相应分段合并的超解码器输出分段集合包括以下中的一个或多个:对应于所述相应分段的超解码器输出分段,或对应于与所述相应分段相同的信道的多个超解码器输出分段,或在空间上与所述相应分段相邻的多个超解码器输出分段,或包括在空间上与所述相应分段相邻的相邻分段和对应于与所述相邻分段相同的信道的分段的多个超解码器输出分段。
通过包括相应的超解码器输出段集合,可以进一步改进所述概率模型。性能和复杂性的行为可能取决于所述超解码器输出分段集合和待编码的内容。
例如,所述方法还包括根据计算复杂性和/或所述第一码流的性质自适应地选择所述超解码器输出分段集合。
启用其它超先验建模策略的选择可以允许在编码过程期间更好的性能,并可以提供使经编码码流适应所需应用的灵活性。
根据一个实施例,提供一种用于对图像数据进行解码的方法,其中,包括:根据上述任一方法从码流中熵解码潜在张量;通过使用自解码卷积神经网络处理所述潜在张量,获取所述图像数据。
熵解码可以容易且有利地应用于图像解码,以有效地降低数据速率,例如,当需要传输或存储图像或视频时,用于图像重建的潜在张量仍然可以具有相当大的大小。
在一种示例性实现方式中,一种计算机程序存储在非瞬时性介质中并包括代码指令,当在一个或多个处理器上执行时,使所述一个或多个处理器执行根据上述任一方法所述的方法的步骤。
根据一个实施例,提供了一种用于对潜在张量进行熵编码的装置,其中,包括:处理电路,用于在空间维度中将所述潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层的神经网络的一个或多个层处理所述多个分段的布置;根据所述处理的多个分段,获取用于对所述潜在张量的当前元素进行熵编码的概率模型。
根据一个实施例,提供了一种用于对潜在张量进行熵解码的装置,其中,包括:处理电路,用于用零初始化所述潜在张量;在空间维度中将所述潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层的神经网络的一个或多个层处理所述多个分段的布置;根据所述处理的多个分段,获取用于对所述潜在张量的当前元素进行熵解码的概率模型。
所述装置提供了上述方法的优点。
本发明可以在硬件(HW)和/或软件(SW)或其组合中实现。此外,基于硬件的实现可以与基于软件的实现相结合。
一个或多个实施例的细节在附图和说明书中阐述。其它特征、目标和优点将从说明书、附图和权利要求中显而易见。
附图说明
下文参考以下附图详细描述本发明实施例,其中:
图1为由神经网络的层处理的信道的示意图;
图2为神经网络的自动编码器类型的示意图;
图3a为包括超先验模型的编码端和解码端的示例性网络架构的示意图;
图3b为包括超先验模型的编码端的一般网络架构的示意图;
图3c为包括超先验模型的解码端的一般网络架构的示意图;
图4为从输入图像获取的潜在张量的示意图;
图5a示出了变换网络的第一示例性实现方式;
图5b示出了变换网络的第二示例性实现方式;
图6a为注意力网络的示意图;
图6b为多头注意力网络的示意图;
图7a示出了第一示例性实施例提供的使用注意力和布置进行上下文建模的示例性实现方式;
图7b示出了第二示例性实施例或第三示例性实施例提供的使用注意力和布置进行上下文建模的示例性实现方式;
图8示出了将潜在张量分离成分段的示例性分离和所述分段的示例性布置;
图9示出了将潜在张量分离成分段的示例性分离(包括信道维度中的分离)和所述段的示例性布置;
图10a示出了分段布置的填充;
图10b示出了在包括信道维度中分离的分段的第一编码顺序中的布置的填充;
图10c示出了在包括信道维度中分离的分段的第二编码顺序中的布置的填充;
图11示出了合并潜在张量的处理分量和超先验输出分段集合的示例性实现方式;
图12示出了合并潜在张量的处理分段和超先验输出分段集合的其它示例性实现方式;
图13a示出了潜在张量的分段的示例性处理顺序;
图13b示出了包括信道维度中的分离的潜在张量的分段的示例性处理顺序,其中,相同空间坐标的分段被连续处理;
图13c示出了包括信道维度中的分离的潜在张量的分段的示例性处理顺序,其中,具有相同信道段索引的分段被连续处理;
图14a示出了潜在张量的分段的示例性处理顺序,其中,分段子集用于上下文建模;
图14b示出了包括信道维度中的分离的潜在张量的分段的示例性处理顺序,其中,相同空间坐标的分段被连续处理且分段子集用于上下文建模;
图14c示出了包括信道维度中的分离的潜在张量的分段的示例性处理顺序,其中,具有相同信道段索引的分段被连续处理且分段子集用于上下文建模;
图15为用于实现本发明实施例的视频编码系统的示例的框图;
图16为用于实现本发明实施例的视频译码系统的另一示例的框图;
图17为编码装置或解码装置的示例的框图;
图18为编码装置或解码装置的另一示例的框图。
具体实施方式
在以下描述中,参考构成本发明一部分的附图,附图通过说明的方式示出了本发明实施例的特定方面或可使用本发明实施例的特定方面。应理解,本发明的实施例可用于其它方面,并且包括未在附图中描绘的结构或逻辑变化。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。
可以理解的是,与所描述的方法有关的公开内容对于与用于执行方法对应的设备或系统也同样适用,反之亦然。例如,如果描述了一个或多个特定方法步骤,则对应的设备可以包括一个或多个单元,例如,功能单元,用于执行所描述的一个或多个方法步骤(例如,执行所述一个或多个步骤的一个单元,或各自执行所述多个步骤中的一个或多个步骤的多个单元),即使图中未明确描述或说明此类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述特定装置,对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,执行所述一个或多个单元的功能的一个步骤,或各自执行所述多个单元中的一个或多个单元的功能的多个步骤),即使图中未明确描述或说明此类一个或多个步骤。此外,应理解,除非另外具体指出,否则本文中描述的各种示例性实施例和/或方面的特征可彼此组合。
在图像/视频压缩算法中,熵估计是其中一个组成部分,它提供了显著的增益。例如,熵估计包括显式熵估计和/或隐式熵估计。显式熵估计可以通过压缩熵估计参数并通过第二码流发送边信息的超先验来实现。隐式熵估计可以使用第一码流的已经解码的元素,并将所述经解码元素包括在主码流的熵估计中,同时考虑译码顺序的因果关系。隐式熵估计通常称为自回归上下文模型,通常可以通过二维(two-dimension,2D)屏蔽卷积实现。然而,2D屏蔽卷积提供了有限小的支持。这限制了隐式熵模型的性能,因为不考虑远距离依赖关系。
此外,一旦经过训练,卷积核固有地不适应码流性质,即潜在张量元素。相同的核应用于压缩码流中的每个位置,因此,卷积核与位置无关。这限制了隐式模型的性能,因为只能学习位置有界依赖关系。即使当屏蔽卷积的核大小增加时,隐式模型的性能也会略有增加,因为由于非适应性,可以利用之前译码的元素之间的一组固定的位置有界内部关系。
此外,具有2D屏蔽卷积的隐式模型对潜在张量的所有信道同时进行编码/解码,并且不利用任何跨信道相关性。由于没有信道自回归,当前经译码潜在元素的任何信道元素都不能访问具有不同信道索引的其它空间共址元素的信息。缺乏信道自回归也会导致性能下降。
自动编码器和无监督学习
自动编码器是人工神经网络的一种用于以无监督的方式学习高效的数据译码。示意图如图2所示。自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表示(编码),通常用于降维。与简化侧一起,学习重建侧,其中,自动编码器尝试从简化的编码中生成尽可能接近其原始输入的表示,因此得名。在最简单的情况下,给定一个隐藏层,自动编码器的编码器级获取输入x并将其映射到h
h=σ(Wx+b)。
此图像h通常称为代码、潜在变量或潜在表示。此处,σ是逐元素激活函数,例如,sigmoid函数或修正线性单元。W是权重矩阵,b是偏置向量。权重和偏置通常经随机初始化,然后在训练期间通过反向传播迭代更新。之后,自动编码器的解码器级将h映射到与x相同的形状的重建x′:
x′=σ′(W′h′+b′)
其中,解码器σ′、的W′和b′可以与编码器的对应σ、W和b无关。
变分自动编码器模型对潜在变量的分布做出了强假设。这些模型使用变分方法进行潜在表示学习,产生了额外的损失分量,和训练算法的特定估计器,称为随机梯度变分贝叶斯(Stochastic GradientVariational Bayes,SGVB)估计器。假设数据由有向图模型pθ(x|h)生成,并且编码器正在学习后验分布pθ(h|x)的近似qφ(h|x),其中,φ和θ分别表示编码器(识别模型)和解码器(生成模型)的参数。VAE的潜在矢量的概率分布通常比标准自动编码器更接近训练数据的概率分布。
人工神经网络领域,特别是卷积神经网络的最新进展使研究人员有兴趣将基于神经网络的技术应用于图像和视频压缩任务。例如,提出了端到端优化的图像压缩,使用基于变分自动编码器的网络。
因此,数据压缩被认为是工程中一个基本且充分研究的问题,通常是为了为给定的离散数据集设计具有最小熵的代码。该技术方案在很大程度上依赖于对数据概率结构的了解,因此该问题与概率源建模密切相关。但是,由于所有实用代码都必须具有有限熵,因此连续值数据(例如图像像素强度的向量)必须量化为离散值的有限集,这引入了误差。
在这种情况下,即有损压缩问题,必须权衡两个相互矛盾的成本:离散化表示的熵(速率)和量化引起的误差(失真)。不同的压缩应用,例如数据存储或有限容量信道上的传输,需要不同地平衡速率和失真。
速率和失真的联合优化是困难的。如果没有进一步的约束,高维空间中最优量化的一般问题是难以解决的。因此,大多数现有的图像压缩方法通过将数据向量线性转换为合适的连续值表示,独立量化其元素,然后使用无损熵代码编码得到的离散表示来操作。由于变换的核心作用,此方案称为变换编码。
例如,JPEG在像素块上使用离散余弦变换,JPEG2000使用多尺度正交小波分解。通常,分别对变换编码方法的三个组成部分(变换、量化和熵编码)进行优化(通常通过手动调整参数)。现代视频压缩标准,如HEVC、VVC和EVC也使用变换表示对预测后的残差信号进行译码。这几个变换用于此目的,如离散余弦变换(discrete cosine transform,DCT)和离散正弦变换(discrete sine transform,DST),以及手动优化的低频不可分离变换(lowfrequency non-separable manually optimized transform,LFNST)。
变分图像压缩
变分自动编码器(VariableAuto-Encoder,VAE)框架可以认为是一个非线性变换编码模型。变换过程主要可分为四个部分:图3a举例说明了VAE框架。在图3a中,编码器310通过函数y=f(x)将输入图像x 311映射到潜在表示(由y表示)。在下文中,这种潜在表示也可以称为“潜在空间”的一部分或其中的点。函数f()是一个转换函数,它将输入信号311转换为可以进一步压缩的表示y。
待压缩的输入图像311表示为大小为H×W×C的3D张量,其中,H和W是图像的高度和宽度,C是颜色信道的数量。在第一步骤中,输入图像通过编码器310。编码器310通过应用多个卷积和非线性变换对输入图像311进行下采样,并产生潜在空间特征张量(下文中的潜在张量)y。(虽然这不是经典意义上的重采样,但在深度学习中,下采样和上采样是改变张量高度和宽度大小的常见术语)。如图4中举例示出,对应于输入图像4010的潜在张量y4020的大小为而De是编码器的下采样因子,Ce是信道的数量。
输入/输出图像的像素和潜在张量之间的差异如图4所示。潜在张量4020是多维元素阵列,通常不表示图像信息。其中两个维度与图像的高度和宽度关联,信息和内容与图像的低分辨率表示有关。第三维度,即信道维度与同一图像在潜在空间中的不同表示有关。
潜在空间可以理解为压缩数据的表示,其中,类似的数据点在潜在空间中更靠近。潜在空间对于学习数据特征和查找用于分析的数据的更简单表示非常有用。量化器330将潜在表示y转换为量化潜在表示其中,(离散)值为/>Q表示量化器函数。
潜在张量y的熵估计可以通过额外应用可选的超先验模型来改进。
在获取超先验模型的第一步骤中,超编码器320应用于潜在张量y,使用卷积和非线性变换将潜在张量下采样为超潜在张量z。潜在张量z的大小为
在下一步骤中,可以对潜在张量z执行量化331。分解熵模型342产生量化超潜在张量的统计性质的估计。算术编码器使用这些统计性质来创建张量/>的码流表示141。在不需要自回归过程的情况下,张量/>的所有元素都被写入码流中。
分解熵模型342用作码本,其参数在解码器侧可用。熵解码器343通过使用分解熵模型342从码流341恢复量化的超潜在张量。通过应用多个卷积操作和非线性变换,在超解码器350中对恢复的量化的超潜在张量进行上采样。超解码器输出张量430表示为ψ。
超编码器/解码器(也称为超先验)330/350估计量化潜在表示的分布,以获得无损熵源译码可实现的最小速率。此外,还提供了解码器380,其将量化潜在表示转换为重建图像/>381,/>信号/>是输入图像x的估计。希望x尽可能接近/>即,重建质量尽可能高。然而,/>和x之间的相似性越高,传输所需的边信息量就越大。边信息包括图3a中所示的y码流和z码流,它们由编码器生成并传输到解码器。通常情况下,边信息量越大,重建质量越高。然而,大量的边信息意味着压缩比低。因此,图3a中描述的系统的一个目的是平衡重建质量和码流中传输的边信息的量。
在图3a中,组件AE 370是算术编码模块,将量化潜在表示和边信息/>的样本分别转换为二值化表示:y码流和z码流。例如,/>和/>的示例可以包括整数或浮点数。算术编码模块的一个目的是(通过二值化过程)将样本值转换为二值化数字字符串(然后,二值化数字被包括在码流中,码流可以包括对应于经编码图像或其它边信息的其它部分)。
算术解码(arithmetic decoding,AD)372是恢复二值化过程的过程,其中二值化数字被转换回样本值。算术解码由算术解码模块372提供。
在图3a中,有两个子网相互合并。在此上下文中,子网是整个网络各部分之间的逻辑划分。例如,在图3a中,模块310、320、370、372和380被称为“编码器/解码器”子网。“编码器/解码器”子网负责对第一码流“y码流”进行编码(生成)和解码(解析)。图3a中的第二网络包括模块330、331、340、343、350和360,并被称为“超编码器/解码器”子网。第二子网负责生成第二码流“z码流”。这两个子网的目的不同。
第一个子网负责:
·将输入图像311转换310为其潜在表示y(这更容易压缩x),
·将潜在表示y量化320为量化潜在表示
·算术编码模块370使用AE压缩量化潜在表示以获得码流“y码流”。
·算术解码模块372通过AD解析y码流,
·使用经解析的数据重建380重建图像381。
第二子网的目的是获得“y码流”样本的统计性质(例如,y码流样本之间的平均值、方差和相关性),使得第一子网对y码流的压缩更高效。第二子网生成第二码流“z码流”,其包括所述信息(例如,y码流样本之间的平均值、方差和相关性)。
第二网络包括编码部分,编码部分包括将量化潜在表示变换330为边信息z,将边信息z量化为经量化的边信息/>以及将所述经量化的边信息/>编码340(例如,二值化)到z码流中。在本示例中,二值化由算术编码(arithmetic encoding,AE)执行。第二网络的解码部分包括算术解码(arithmetic decoding,AD)343,其将输入z码流变换为经解码的量化边信息/> 可能与/>相同,因为算术编码和算术解码操作是无损压缩方法。然后,经解码的量化边信息/>被变换350为经解码的边信息/> 表示/>的统计性质(例如,/>的样本的平均值,或样本值的方差等)。然后,经解码的潜在表示/>被提供给上述算术编码器370和算术解码器372,以控制/>的概率模型。
图3a描述了变分自动编码器(variational auto encoder,VAE)的示例,其细节在不同的实现方式中可能不同。例如,在特定的实现方式中,可以存在其它组件,以更高效地获取第一码流的样本的统计性质。在该实现方式中,可以存在上下文建模器,其目的是提取y码流的相关信息。由第二子网提供的统计信息可以由算术编码器(arithmetic encoder,AE)370和算术解码器(arithmetic decoder,AD)372组件使用。
图3a在单个图中描绘了编码器和解码器。本领域技术人员明白,编码器和解码器可以而且经常嵌入在相互不同的设备中。
图3b描述了编码器,图3c描述了VAE框架的解码器组件。根据一些实施例,编码器接收图像作为输入。输入图像可以包括一个或多个信道,例如,颜色信道或其它类型的信道,例如,深度信道或运动信息信道等。编码器的输出(如图3b所示)是y码流和z码流。y码流是编码器的第一子网的输出,z码流是编码器的第二子网的输出。
类似地,在图3c中,两个码流(y码流和z码流)被接收作为输入,并且在输出端生成重建(解码)图像如上所述,VAE可以分为执行不同操作的不同逻辑单元。这在图3b和图3c中举例说明,图3b描绘了参与视频等信号编码的组件,并提供了编码信息。然后,该编码信息由图3c中的解码器等组件接收,用于编码。需要说明的是,编码器和解码器的组件的功能可以对应于上面在图3a中提到的组件。
具体来说,如图3b中所示,编码器包括编码器310,所述编码器310将输入x转换为信号y,然后将信号y提供给量化器320。量化器320向算术编码模块370和超编码器330提供信息。超编码器330可以接收信号y而不是量化版本。超编码器330将上文所述的z码流提供给超解码器350,超解码器350又将信息提供给算术编码模块370。如上面参考图3a讨论的子步骤也可以是所述编码器的一部分。
算术编码模块的输出为y码流。y码流和z码流是信号编码的输出,然后将该输出提供(传输)给解码过程。虽然单元310被称为“编码器”,但也可以将图3b中描述的完整子网称为“编码器”。编码过程通常是指将输入转换为编码(例如,压缩)输出的单元(模块)。从图3b可以看出,单元310实际上可以被视为整个子网的核心,因为它执行输入x到y的转换,这是x的压缩版本。例如,编码器310中的压缩可以通过应用神经网络或通常具有一个或多个层的任何处理网络来实现。在这种网络中,压缩可以通过包括下采样的合并处理来执行,该下采样减小了输入的大小和/或信道数量。因此,例如,编码器可以被称为基于神经网络(neuralnetwork,NN)的编码器等。
图中的其余部分(量化单元、超编码器、超解码器、算术编码器/解码器)都是提高编码过程效率或负责将压缩输出y转换为一系列比特(码流)的部分。可以提供量化以通过有损压缩进一步压缩NN编码器310的输出。AE 370可以与用于配置AE 370的超编码器330和超解码器350一起执行二值化,可以通过无损压缩进一步压缩量化信号。因此,也可以将图3b中的整个子网称为“编码器”。
大多数基于深度学习(Deep Learning,DL)的图像/视频压缩系统在将信号转换为二值化数字(比特)之前会降低信号的维度。例如,在VAE框架中,进行非线性变换的编码器将输入图像x映射到y中,其中,y的宽度和高度小于x。由于y具有较小的宽度和高度,因此大小较小,信号的(大小)维度被减小,因此,更容易压缩信号y。需要说明的是,一般来说,编码器不一定需要在两个(或通常所有)维度中减小大小。相反,一些示例性实现方式可以提供仅在一个(或通常是一个子集)维度中减小大小的编码器。
算术编码器和解码器是熵译码的具体实现方式。AE和AD可以被其它熵译码方式取代。此外,量化操作和对应的量化单元不一定存在和/或可以被另一个单元替换。
人工神经网络
人工神经网络(artificial neural network,ANN)或连接主义系统是模糊地受构成动物大脑的生物神经网络的启发而建立的计算系统。这些系统通过举例来“学习”执行任务,通常不使用特定于任务的规则进行编程。例如,在图像识别中,这些系统可能会学习标识包含猫的图像,即通过分析手动标记为“猫”或“没有猫”的示例性图像并使用结果识别其它图像中的猫。这些系统这样做之前并不知道猫有毛皮、尾巴、胡须和猫脸等信息。相反,这些系统会从其处理的示例中自动生成识别特征。
ANN以一组称为人工神经元的连接单元或节点为基础,这些单元或节点以松散方式建模生物大脑中的神经元。每个连接就像生物大脑中的突触一样,可以向其它神经元传递信号。人工神经元接收信号,然后处理这个信号,并可以向与其相连的神经元发出信号。
在ANN实现方式中,连接处的“信号”是一个实数,而且每个神经元的输出是通过其输入和的某一非线性函数计算得到的。这些连接称为边。神经元和边通常具有随着学习的进行而调整的权重。权重增加或减少连接处的信号强度。神经元可以具有阈值,使得只有在聚合信号超过该阈值时,才发送信号。通常,神经元聚集成一层一层的。不同的层可以对其输入执行不同的变换。信号可能在多次遍历各层之后,从第一层(输入层)传输到最后一层(输出层)。
ANN方法的最初目标是以与人脑相同的方式解决问题。随着时间的推移,注意力转移到执行特定任务上,导致偏离生物学。ANN已经用于各种任务,包括计算机视觉、语音识别、机器翻译、社交网络过滤、棋盘和视频游戏、医学诊断,甚至在传统上被认为是为人类保留的活动,如绘画。
“卷积神经网络”(convolutional neural network,CNN)这一名称表示该网络采用一种称为卷积的数学运算。卷积是一种专门的线性运算。卷积网络是神经网络,在其至少一个层中使用卷积代替一般矩阵乘法。
图1示意性地示出了神经网络(例如,CNN)的处理的一般概念。卷积神经网络由输入层和输出层以及多个隐藏层组成。输入层是提供输入(例如,图1所示的图像的一部分)进行处理的层。CNN的隐藏层通常由一系列卷积层组成,这些卷积层与乘法或其它点积进行卷积。层的结果是一个或多个特征图(图1中为f.maps),有时也称为信道。一些或所有层中可能涉及子采样。因此,特征图可能会变小,如图1所示。CNN中的激活函数通常是修正线性单元(rectified linear unit,ReLU)层,随后是附加卷积,例如池化层、全连接层和归一化层,称为隐藏层,因为它们的输入和输出被激活函数和最终卷积掩盖。虽然这些层被通俗地称为卷积,但这只是按照惯例。从数学上讲,它在技术上是一个滑动点积或互相关。这对矩阵中的索引具有重要意义,因为它会影响在特定索引点确定权重的方式。
当对CNN进行编程以处理图像时,如图1所示,输入是形状(图像数量)×(图像宽度)×(图像高度)×(图像深度)的张量。然后,在通过卷积层后,图像被抽象为特征图,具有形状(图像数量)×(特征图宽度)×(特征图高度)×(特征图信道)。神经网络中的卷积层应具有以下性质。由宽度和高度(超参数)定义的卷积核。输入信道和输出信道的数量(超参数)。卷积滤波器(输入信道)的深度应等于输入特征映射的数量信道(深度)。
过去,传统的多层感知器(multilayer perceptron,MLP)模型被用于图像识别。但是,由于节点之间的完全连接,它们受到了高维度的影响,并且在较高分辨率图像中无法充分扩展。具有RGB颜色信道的1000×1000像素图像具有300万权重,权重太高,无法在完全连接的情况下高效地进行大规模处理。此外,这种网络架构不考虑数据的空间结构,以与距离近的像素相同的方式处理距离远的输入像素。这忽略了图像数据中的参考局部性,无论是在计算上还是在语义上。因此,神经元的完全连接对于由空间局部输入模式主导的图像识别等目的是浪费的。
卷积神经网络是多层感知器的生物学启发变体,专门设计用于模拟视觉皮层的行为。这些模型通过利用自然图像中存在的强空间局部相关性,减轻了MLP架构带来的挑战。卷积层是CNN的核心构建块。该层的参数由一组可学习的滤波器(上述内核)组成,这些滤波器具有一个小的接受场,但延伸到输入卷的整个深度。在正向传递期间,每个滤波器在输入体积的宽度和高度上卷积,计算滤波器条目和输入之间的点积,并生成该滤波器的二维激活映射。因此,网络学习滤波器,当滤波器在输入中的某个空间位置检测到某些特定类型的特征时激活。
沿深度维度堆叠所有滤波器的激活映射形成卷积层的完整输出体积。因此,输出体积中的每个条目也可以被解释为神经元的输出,该神经元查看输入中的一个小区域,并与同一激活映射中的神经元共享参数。特征映射或激活映射是指定滤波器的输出激活。特征映射和激活具有相同的含义。在一些论文中,特征映射被称为激活映射,因为它是对应于图像不同部分激活的映射,也是特征映射,因为它也是图像中找到某种特征的映射。高激活意味着找到了某个功能。
CNN的另一个重要概念是池化,是非线性下采样的一种形式。有几个非线性函数来实现池化,其中最大池化是最常见的。将输入图像划分为一组非重叠矩形,并对于每个这种子区域输出最大值。
直觉上,特征的确切位置不如其相对于其它特征的粗略位置重要。这就是在卷积神经网络中使用池化的想法。池化层用于逐步减小表示的空间大小,减少网络中参数的数量、内存占用空间和计算量,因此也用于控制过拟合。在CNN架构中,在连续的卷积层之间定期插入池化层是常见的。池化操作提供了另一种形式的变换不变性。
池化层在输入的每个深度分块上独立操作,并在空间上重新调整大小。最常见的形式是池化层,应用大小为2×2的滤波器,步长在输入中每个深度切片处为2,沿宽度和高度均为2,舍弃75%的激活。在这种情况下,每个最大值操作都超过4个数字。深度维度保持不变。除了最大池化之外,池化单元还可以使用其它函数,例如平均池化或l2-norm池化。平均池化在过去经常使用,但与最大池化相比,最近已经鲜少使用,实际上后者常常表现更好。由于表示大小的大幅减小,最近有一种趋势是使用较小的滤波器或完全舍弃池化层。“感兴趣区域(Region of Interest)”池化(还称为ROI池化)是最大池化的变体,其中的输出大小是固定的,输入矩形是参数。池化是卷积神经网络基于快速R-CNN架构进行目标检测的重要组成部分。
上述ReLU是修正线性单元的缩写,应用非饱和激活函数。它通过将负值设置为0,有效地从激活图中去除这些负值。它增加了决策函数和整体网络的非线性性质,而不影响卷积层的接受场。其它函数也用于增加非线性,例如饱和双曲正切和sigmoid函数。ReLU通常比其它函数更受欢迎,因为它训练神经网络的速度快几倍,而不会对泛化精度造成很大影响。
经过几个卷积层和最大池化层之后,神经网络中的高级推理是通过全连接层完成的。全连接层中的神经元与前一个层中的所有激活都有连接,如常规(非卷积)人工神经网络中所示。因此,这些激活可以作为仿射变换计算,矩阵乘法之后是偏置偏移(学习或固定偏置项的矢量加法)。
“损失层”(包括损失函数的计算)指定训练如何惩罚预测(输出)标签与真实标签之间的偏差,通常是神经网络的最后一层。可以使用适合不同任务的各种损失函数。Softmax损失用于预测K个互斥类的单个类。Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧氏损失(Euclidean loss)用于回归到实值标签。
总之,图1示出了典型卷积神经网络中的数据流。首先,输入图像通过卷积层,并抽象到包括几个信道的特征图,对应于该层的一组可学习滤波器中的多个滤波器。然后,使用池化层等对特征图进行子采样,该层减小了特征图中每个信道的维度。数据接着到达另一个卷积层,该卷积层可以具有不同数量的输出信道。如上所述,输入信道和输出信道的数量是层的超参数。要建立网络的连接,这些参数需要在两个连接的层之间同步,使得当前层的输入信道的数量应等于上一层的输出信道的数量。对于处理图像等输入数据的第一层,输入信道的数量通常等于数据表示的信道的数量,例如,3个信道用于图像或视频的RGB或YUV表示,或1个信道用于灰度图像或视频表示。
深度学习中的注意力机制
注意力机制是一种深度学习技术,它使神经网络可以增强或重点关注输入的重要部分,弱化不相关的部分。这个简单而强大的概念可以应用于自然语言处理、推荐、医疗保健分析、图像处理或语音识别等任何领域。
最初,注意力是在整个输入序列(全局注意力)上计算的。尽管这种方法很简单,但计算成本高。使用局部注意力可能是一种技术方案。
注意力机制的一种示例性实现方式是变换模型(transformer model)。变换模型应用了注意力层,然后是前馈神经网络。图5a和图5b中示出了变换块的两个示例性实现方式。在变换模型中,输入张量x首先输入到神经网络层,以便提取输入张量的特征。因此,获取到嵌入张量e5010,包括用作变换输入的潜在空间元素。输入张量x和嵌入张量e的大小为S×dinput和S×de,其中,S是顺序元素的数量,d是每个顺序元素的维数。位置编码5020可以添加到嵌入张量。位置编码5020使变换能够考虑输入序列的顺序。这种位置编码提供了一个元素在输入张量元素的布置内的位置的表示。可以使用表示序列顺序的预定义张量学习这些编码。
当计算位置编码5020时,按照分段添加到嵌入向量5010中。然后,输入向量准备进入变换块。图5a中变换块的示例性实现方式包括两个相应的步骤:多头注意力5030和线性变换5032,非线性激活函数分别以相同方式应用于每个位置。添加5031和归一化5033的两个步骤将注意力层5030和MLP 5032的输出分别与残差连接5034和5035组合在一起。图5b中变换块的示例性实现方式还包括两个相应的步骤:多头注意力5051和线性变换5053,非线性激活函数分别以相同方式应用于每个位置。图5b的示例性实现方式示出了归一化块5050和5052以及残差连接5054和5055的不同布置。这里的注意力块的作用类似于循环单元,但是,计算要求较少。变换块不一定需要使用多头注意力层或L次多头注意力层。在这些示例中,多头注意力层可以被任何其它类型的注意力机制所取代。
在自注意力模块中,所有三个向量都来自相同的序列,并表示内置位置编码的向量。
由查询Q 620、键K 621和值V 622组成的通用注意力机制示例性地如图6所示。这种命名的起源可以在搜索引擎中找到,在搜索引擎中,用户的查询与内部引擎的键匹配,结果由几个值表示。
在将嵌入向量与位置编码pe组合之后,由前馈神经网络层获取三种不同的表示,即查询Q、键K和值V。查询、键和值的大小分别为S×dq、S×dk和S×dv。通常,查询、键和值可能具有相同的维数d。为了计算自注意力,首先可以计算查询和键之间的缩放点积并可以应用softmax函数来获得注意力分数。接下来,将这些分数与值相乘,以实现自注意力。自注意力机制可表述为:
其中,dk是键的维数,的大小为S×S。
然后,通过创建残差连接的形式,将计算出的注意力添加到嵌入向量中,并使用归一化层进行归一化。最后,应用具有残差连接的多层前馈神经网络(又名多层感知器),并将最终输出归一化。上述所有步骤(在创建嵌入张量之后)描述了变换的一层,该层可以重复L次,以创建具有L层的变换网络。
换句话说,注意力层获取输入序列的多个表示,例如键、查询和值。为了从所述多个表示中获取表示,输入序列由相应的权重集处理。所述权重集可以在训练阶段获取。这个权重集可以与包括这样的注意力层的神经网络的其余部分联合学习。在推理期间,输出计算为处理后的输入序列的加权和。
上述注意力机制的一个扩展是多头注意力。在此版本中,查询、键和值的最终维度被拆分为h个子表示,对于每个子表示,单独计算注意力。最终的注意力是通过合并每个子注意力并将其输入到前馈神经网络(feedforwardneuralnetwork,FFN)来计算的。多头注意力的表述如下:
MultiHeadAttention(Q,K,V)=FFN(concat(Attention1(Q1,K1,V1),…,Attentionh(Qh,Kh,Vh)))
其中,Qi、Ki和Vi的大小分别为和/>
多头注意力实现并行化,每个嵌入张量都有多个表示。
图6a示出了单个注意力函数,图6b示出了多头注意力中的并行应用。通过执行更多的投影和注意力计算,模型可以具有相同输入序列的不同视角。共同关注不同角度的信息,这些信息通过不同的线性子空间以数学方式表示。
如上所述,图6a中的示例性单个注意力函数执行键610和查询611之间的对齐620,并通过将加权和630应用于注意力分数和值612来获取输出640。图6b中的示例性多头注意力执行每对键650和查询651的对齐660。每对可以属于不同的线性子空间。对于每个获得的注意力分数和相应的值652,计算加权和670。结果进行合并680以获取输出690。
变换块中的多头注意力后的下一步骤是一个简单的位置全连接前馈网络。每个块周围都有一个残差连接,然后是层归一化。残差连接有助于网络跟踪它所查看的数据。层归一化在减少特征方差方面发挥了作用。
文献中变换有几种不同的架构,这些架构可能在其组件的顺序和类型上有所不同。然而,基本逻辑是相似的,其中某种类型的注意力机制后面跟着另一个神经网络,封装变换层的一层,而这种架构的多层形成了变换网络。如上所述,图5a和图5b中给出了两个示例。本发明不限于注意力机制的所述示例性实现方式。
基于注意力的上下文建模
通过应用包括注意力层的神经网络获取上下文模型的过程示例性地在图7a和图7b中示出。
待压缩图像数据可以表示为大小为H×W×C的三维张量311,其中,H和W是图像的高度和宽度,C是颜色信道的数量。输入图像可以由自动编码卷积神经网络310处理,如上文参考图3a所解释的。这种自动编码器310通过应用多个卷积和非线性变换对输入图像进行下采样,并产生潜在张量y。潜在张量y的大小为而De是编码器310的下采样因子,Ce是信道的数量。可以使用由基于注意力的上下文建模生成的概率模型将获取的潜在张量编码到码流371中。
潜在张量y可以被量化。量化可以由量化块320执行。
用于对潜在张量进行熵编码的上下文模型可以通过应用注意力层732来确定。包括一个或多个元素的潜在空间特征张量在空间维度中被分离700成如图7a和图8中所示的多个分段820。每个分段包括至少一个潜在张量元素。分段可以具有维度(pH×pW×Ce),其中,Ce是潜在张量的信道维度中的元素数量,潜在张量的空间维度被拆分为分块,每个分块包括(Ce)个元素。分离700在图8中示例性地示出,其中示例性4×4×Ce维潜在张量810在空间维度中被分成16个分段820,每个分段具有维度(1×1×Ce)。
待熵编码的潜在张量可以是如上所述的由自动编码神经网络处理的图像数据。然而,本发明并不限于自动编码器中的图像数据。待熵编码的潜在张量也可以在处理任何其它类型的输入日期期间出现,例如多维点云、音频数据、视频数据等。
多个分段的布置830由神经网络的一个或多个层处理。所述布置可以是预定义的,即在空间和/或信道方向上的指定扫描顺序。第一示例性实施例的布置可以包括将潜在张量重塑为顺序形式830。重塑张量可以具有维度/>其中,(pH,pW)对应于分块的大小。这在图8中示例性地示出,其中两个分块大小pH、pW都被设置为1,并且示例性4×4×Ce维潜在张量810的16个分段820被布置成重塑16×Ce维张量830。图13a示例性地描绘了空间维度中分段的处理顺序。
神经网络包括至少一个注意力层。注意力机制在上面的深度学习中的注意力机制一节中参考图5和图6进行了解释。注意力层可以是多头注意力层,如关于图6b示例性描述的。注意力层可以包括在变换子网中,将参考图5a和图5b进行举例解释。变换子网中要包括的注意力层可以是任何类型的注意力层或多头注意力层。
根据处理的多个分段获取用于对潜在张量的当前元素进行熵编码的概率模型。可以使用获取的用于熵编码的概率模型将当前元素熵编码到第一码流(例如图3的y码流371)中。例如,熵编码的具体实现方式可以是算术编码,这在变分图像压缩一节中讨论。本发明不限于这种示例性算术编码。任何能够基于每个元素估计的熵进行编码的熵编码都可以使用本发明获得的概率。
潜在张量的分离可以包括在信道维度中将潜在张量分离701成两个或更多个分段,如图7b所示。这样分成Ncs个信道分段的分离可以创建形状为的张量/>在图9中示例性地示出了信道维度920中的分离,其中两个贴片大小pH和pW都设置为1。示例性潜在张量910的每个空间分段在信道维度中被分成三个分段920、921和922。示例性4×4×Ce维潜在张量910被分离成形状为/> 的张量。
最大信道分段数Ncs等于潜在张量的信道数Ce。这种空间-信道注意力机制充分考虑了跨信道的相关性。Ncs<Ce的任何其它值都可能导致更快的编码和解码,但可能会降低上下文模型的性能。
在第二示例性实施例中,分段可以以预定义的顺序布置,其中,具有相同空间坐标931、932和933的分段被分组在一起。换句话说,例如,在范围[0,Ncs-1]内具有不同信道分段索引的第一空间坐标930的分段可以分组在一起。连续地,具有不同信道索引的第二空间坐标931的分段可以分组在一起。布置930可以包括将潜在张量段重塑为形状为的张量/>图9中示例性地示出了分段的这种布置930,所述重塑可以对应于在处理第二信道的分段之前处理第一信道的分段的编码顺序,即对应于首先处理信道维度的编码顺序。图13b示例性地描绘了用于这种布置的分段的处理顺序。在处理具有不同空间坐标的另一个信道的分段之前,可以处理同一信道的分段。
在第三示例性实施例中,具有不同空间坐标941、942和943的分段可以以预定义的顺序连续布置701。换句话说,与第一信道分段索引940对应的分段可以分组在一起。连续地,与第二信道分段索引491对应的分段可以分组在一起。布置940可以包括将潜在张量段重塑为形状为的张量/>这种布置940示例性地示出在图9中。所述重塑可以对应于首先处理空间维度的编码顺序。图13c示例性地描绘了用于这种布置的分段的处理顺序。可以在处理具有另一个信道分段索引的分段之前处理统一信道分段索引的分段。
为简单起见,描述的顺序元素数量的第一维度可以用S表示。在上面的示例中,S等于/>
在由神经网络处理之前,上述任何示例性实施例的多个分段的布置的开始可以用零段1000填充710、711。零段可以具有与多个分段中的每个分段相同的尺寸。零段中的每个元素都可以为0。图10a示出了用于第一示例性实施例的这种填充物710,图10b和图10c示出了对应于潜在张量的不同布置的第二和第三示例性实施例的填充711。图10a示例性地示出了第一示例性实施例的不在信道维度中执行分离的情况下潜在张量的分段。在布置的开始处填充包括信道维度中的Ce个元素的零段1000,以获取填充布置1030。图10b示出了用编码顺序填充第二示例性实施例的布置,该编码顺序首先编码相同空间坐标的分段。在本示例中,零段1001包括为零的个元素。类似地,在图10c中,示例性地描述了用于第三示例性实施例的布置的填充,该填充具有首先编码相同信道分段索引的分段的编码顺序。在本示例中,零段1002包括/>个元素。填充保证编码序列的因果关系不受干扰,即解码器能够在没有额外先验知识的情况下从码流中解码数据。
潜在张量的多个分段可以由第一神经子网720处理。这样的第一神经网络可以从多个分段中提取特征。所述特征可以是独立的深度特征(也称为嵌入)。因此,所述第一神经子网720是所谓的嵌入层,以提取高维实值向量空间中的上下文嵌入。第一神经子网720可以是全连接的神经网络,例如多层感知器,这在上面已经解释。例如,可以使用卷积神经网络(convolutionalneuralnetwork,CNN)或递归神经网络(recurrent neural network,RNN)。第一神经子网720的输出,即上下文嵌入,可以作为神经网络的后续层的输入提供。
多个分段的位置信息721可以作为注意力层的输入提供。例如,这种位置信息721可以通过合并、加法等与第一神经子网720的输出组合。可以与位置信息721组合的上下文嵌入可以被归一化731。位置编码包含位置信息,例如线性空间中的坐标。位置编码可以使注意力层理解输入序列的顺序。例如,可以学习这些编码,或者可以使用表示序列顺序的预定义张量。
在注意力层732的处理中,可以应用掩码,其中,所述掩码屏蔽在所述潜在张量的处理顺序内在当前元素之后的注意力张量中的元素。掩码防止在计算注意力张量时使用后续元素。换句话说,注意力机制可以适应自回归任务,以确保解码器侧的因果关系。这种被屏蔽的注意力机制是被屏蔽的注意力机制,使得它不处理任何不在注意力层输入序列中当前位置之前的位置的数据。屏蔽在图13a至图13c中示例性地示出,表示当前分段的分段的处理顺序。显示了尚未编码的分段。
默认情况下,注意力机制应用于整个序列S。这意味着S中的每个顺序元素si都将注意力应用于自身和其它元素。此行为对于自回归任务是不可取的,因为网络不能使用任何尚未处理的元素。为了解决这个问题,注意力机制可以通过屏蔽注意力机制中的缩放点积来限制。掩码可以用S×S矩阵来描述,其中,其下三角形(包括对角线)包含1,上三角形部分(不包括对角线)由负无穷大(softmax(-∞)=0)组成。屏蔽的注意力可表述为:
其中,⊙是元素乘法,是掩码。
然而,掩码M的定义并不限于上述三角形矩阵。通常,序列的不希望或尚未处理的部分可以被屏蔽,例如通过与-∞相乘,而其余部分可以与1相乘。屏蔽也可以应用于多头注意力,其中,每个注意力头被单独屏蔽。
本发明的屏蔽不限于该示例性矩阵M的应用。可以应用任何其它屏蔽技术。
注意力层732的输出可以由第二神经子网735处理。第二神经子网735可以是多层感知器。在用第二神经子网735处理之前,注意力层732的输出可以被归一化734。注意力层732的输出可以与上下文嵌入或通过残差连接737与上下文嵌入和位置信息721的组合表示进行组合。
基于注意力的上下文模型的输出用φ表示。
用于熵编码的概率模型770可以根据第一码流的计算复杂性和/或性质来选择。第一码流731的性质可以包括预定义的目标速率或帧大小。可以预定义使用一组规则中的哪个选项。在这种情况下,规则可以被解码器知道,因此不需要额外的指示。
选择可以包括选择是否在信道维度中执行潜在张量的分离。选择可以包括在如何执行布置的不同方式之间选择,例如,空间维度优先或信道维度优先。
例如,在不执行信道维度中的分离的情况下,上下文模型的性能可能会受到限制,因为熵建模不考虑跨信道相关性。然而,由于所需的自回归步骤的数量减少,这种情况可以提供更快的编码和解码。
例如,在使用Ncs>1的情况下,考虑跨信道相关性,这可能会提高上下文模型的性能。在极端情况下,信道分段数Ncs等于潜在张量的信道数Ce,模型充分考虑了跨信道相关性。任何其它数量的信道分段1<Ncs<Ce都简化了平衡模型性能和复杂性之间权衡的极端情况。
在获取可选的超先验模型的第一步骤中,如图3a所示的超编码器320被应用于潜在张量以获取超潜在张量。超潜在张量可以编码到第二码流中,例如z码流341。第二码流可以被熵解码,并且通过超潜在张量的超解码获取超解码器输出。超先验模型可以如变分图像压缩一节所述获取。然而,本发明不限于这种示例性实现方式。
与潜在张量类似,可选的超解码器ψ的输出可以被分离成多个超解码器输出分段740。每个超解码器输出分段可以包括一个或多个超解码器输出元素。对于多个分段中的每个分段,可以在获取概率模型770之前,将分段和多个超解码器输出分段中的超解码器输出分段集合合并750。换句话说,张量φ和ψ可以在信道维度(最后一个维度)中合并,并可能导致合并的二维张量。
超解码器输出分段可以根据多个分段的布置进行布置。超解码器的输出ψ可以被带入与潜在张量的顺序格式相同的顺序格式。
超编码器输出分段集合的示例如图11所示。潜在张量的分段的布置可以根据第二示例性实施例或第三示例性实施例执行。在第四示例性实施例中,待与相应分段1100合并的超解码器输出分段集合可以包括对应于所述相应分段的超解码器输出分段1110。所述超解码器输出分段1110可以具有与相应分段1100相同的空间坐标和相同的信道分段索引,即超解码器输出分段1110可以共定位到相应分段1100。在合并中使用共定位的超解码器输出分段1110可以降低计算复杂性,从而使得处理更快。
在第五示例性实施例中,待与相应分段1100合并的超解码器输出分段集合可以包括对应于与所述相应分段相同的信道的多个超解码器输出分段。换句话说,所述多个超解码器输出分段可以包括超解码器输出分段,其具有与相应分段相同的空间坐标,即属于共定位信道。在图11的示例中,有三个共定位的超解码器输出分段1120、1121和1122,其中,第一超解码器输出分段1120具有与潜在张量y的示例性相应分段1100相同的信道段索引和空间坐标。剩余的两个超解码器输出分段1121和1122可以具有与示例性相应分段1100相同的空间坐标。多个超解码器输出分段1120、1121和1122可以属于相应分段1100的共定位信道。所述超解码器输出分段集合可以提高概率估计的性能,因为考虑了超解码器输出的额外跨信道相关性。
在第六示例性实施例中,将与相应分段1100合并的超解码器输出分段集合可以包括在空间上与所述相应分段1100相邻的多个超解码器输出分段1130。图11中示例性示出的在空间上与相应分段1100相邻的所述多个超解码器输出分段1130可以具有与相应分段1100相同的信道分段索引。多个超解码器输出分段1130可以属于相应分段1100的共定位空间邻域。所述超解码器输出分段集合可以提高概率估计的性能,因为考虑了超解码器输出的额外空间相关性。
在第七示例性实施例中,将与相应分段合并的超解码器输出分段集合可以包括在空间上与所述相应分段相邻的相邻分段1140和与所述相邻分段1140在同一信道1141和1142对应的分段的多个超解码器输出分段。换句话说,超解码器输出分段集合可以包括图11中示例性示出的在空间上与相应分段1100相邻的所述多个超解码器输出分段1140,并且可以具有与相应分段1100相同的信道分段索引。此外,超解码器输出分段集合可以包括超解码器输出分段1141和1142,所述分段可以与空间相邻的超解码器输出分段1140具有相同的空间坐标,所述分段的信道分段索引与空间相邻的超解码器输出分段1140的信道分段索引不同。待合并的超解码器输出分段可以属于相应分段1100的共定位局部邻域。所述超解码器输出分段集合可以提高概率估计的性能,因为考虑了超解码器输出的额外空间和跨信道相关性。
待合并到相应分段的超解码器输出分段集合并不限于上述示例。任何其它超解码器输出分段集合可以与潜在张量的相应分段合并。例如,可以使用上述第四示例性实施例至第七示例性实施例的任何组合。上述任何第四示例性实施例至第七示例性实施例及其任何组合可以与第二示例性实施例或第三示例性实施例的任何布置组合。
图12示出了在不在信道维度中执行分离成分段的情况下合并750的示例。潜在张量的分段的布置可以根据第一示例性实施例执行。例如,待与相应分段1200合并的超解码器输出分段集合可以包括对应于所述相应分段的超解码器输出分段1210。所述超解码器输出段1210可以具有与相应分段1200相同的空间坐标和相同的信道分段索引。例如,将与相应分段1200合并的超解码器输出分段集合可以包括在空间上与所述相应分段1200相邻的多个超解码器输出分段1230。在空间上与所述相应分段1100相邻的所述多个超解码器输出分段1230在图12中示例性地示出。
合并张量的大小为S×(Cφ+Cψ′),其中,Cφ和Cψ′分别是张量φ的信道数和张量ψ的信道数。合并的结果可以由收集过程760处理。例如,收集可以由全连接神经网络和最后维度中的一组非线性变换执行。例如,收集可以通过具有核大小1×1和非线性变换的一层或多层卷积来实现。熵模型770产生量化潜在张量的统计性质的估计。熵编码器370可以使用这些统计性质来创建张量/>的码流表示371。
与选择用于熵编码的概率模型类似,可以根据第一码流的计算复杂性和/或性质自适应地选择超解码器输出分段集合。第一码流的性质可以包括预定义的目标速率或帧大小。可以预定义使用一组规则中的哪个选项。在这种情况下,规则可以被解码器知道,因此不需要额外的指示。
在编码过程中,潜在张量的所有元素都可用。因此,神经网络进行的处理和/或对当前元素进行熵编码可以针对多个分段中的每个分段并行执行。
神经网络对布置的处理可以包括选择分段的子集。这样的分段子集是从多个分段中选择的。子集可以提供给神经网络的后续层。例如,可以在应用至少一个注意力层之前选择子集。例如,可以在应用第一神经子网之前选择子集。所述分段子集可以包括空间维度中局部邻域中的分段。这在图14a至图14c中示例性地示出。在图14a至图14c中的示例中,示出了可由上下文建模使用的当前分段空间附近的分段。图14a示出了当可以不执行信道维度中的分离时的情况。图14b示出了当第一信道的分段在第二信道的分段之前被处理时的示例性情况。图14c示出了当具有第一信道分段索引的分段在具有第二信道分段索引的分段之前被处理时的示例性情况。上下文模型中注意力机制的大小受序列长度的限制。然而,在有限的可用内存和/或具有固定大小的位置编码的情况下,用于上下文模型的之前编码元素的数量可能会受到限制。在这种情况下,上下文模型可以以滑动窗口的方式应用于潜在张量,其中,在每次迭代中,上下文模型从潜在张量/>中提取和处理子网格。之后,子网格将移动到其下一个位置。
对于从第一码流中解码潜在空间特征张量,由于解码器与潜在张量及其统计性质无关,潜在张量用零初始化。包括一个或多个元素的潜在空间特征张量在空间维度中被分离700成如图7a和图8中所示的多个分段820。每个分段包括至少一个潜在张量元素。与编码侧类似,多个分段的布置由神经网络的一个或多个层处理。对应于编码侧的第一示例性实施例的布置可以包括将潜在张量重塑为顺序形式830。重塑张量可以具有维度这已经在上面为编码解释过,并在图8中示例性地示出。
神经网络包括至少一个注意力层。注意力机制在上面的深度学习中的注意力机制一节中参考图5和图6进行了解释。对应于编码,注意力层可以是多头注意力层,如关于图6b示例性描述的。注意力层可以包括在变换子网中,将参考图5a和图5b进行举例解释。
根据处理的多个分段获取用于对潜在张量的当前元素进行熵解码的概率模型。可以使用获取的用于熵解码的概率模型从第一码流(例如图3的y码流371)中解码当前元素。例如,熵解码的具体实现方式可以是算术解码,这在变分图像压缩一节中讨论。本发明不限于这种示例性算术解码。任何能够基于每个元素估计的熵进行解码的熵解码都可以使用本发明获得的概率。
潜在张量的分离可以包括在信道维度中将潜在张量分离701成两个或更多个分段,如图9所示。编码侧详细解释了这种分离。
分段可以以预定义的顺序布置,其中,具有相同空间坐标931、932和933的分段被分组在一起。所述布置930对应于第二示例性实施例,上面针对编码详细解释了所述实施例。
具有不同空间坐标941、942和943的分段可以以预定义的顺序连续布置。所述布置940类似于第三示例性实施例,上面针对编码详细解释了所述实施例。
在由神经网络处理之前,上述任何示例性实施例的多个分段的布置的开始可以用零段1000填充710、711。零分段可以具有与多个分段中的每个分段相同的尺寸,这在图10a至图10c中示例性地示出。上面参考图10a至图10c详细解释了填充。
根据编码侧,潜在张量的多个分段可以由第一神经子网720处理。这样的第一神经网络可以从多个分段中提取特征。所述特征可以是独立的深度特征。第一神经子网720可以是多层感知器。多个分段的位置信息721可以作为注意力层的输入提供。例如,这种位置信息721可以通过合并、加法等与第一神经子网720的输出组合。
注意力层732的输出可以由类似于编码侧的第二神经子网735处理。第二神经子网735可以是多层感知器。注意力层732的输出可以与上下文嵌入或通过残差连接737与上下文嵌入和位置信息721的组合表示进行组合。
类似于编码,用于熵编码的概率模型770可以根据第一码流的计算复杂性和/或性质来选择。第一码流731的性质可以包括预定义的目标速率或帧大小。可以预定义使用一组规则中的哪个选项。在这种情况下,规则可以被解码器知道。
可以从第二码流341中熵解码超潜在张量。获取的超潜在张量可以被超解码为超解码器输出ψ。
与潜在张量类似,可选的超解码器ψ的输出可以被分离成多个超解码器输出分段740。每个超解码器输出分段可以包括一个或多个超解码器输出元素。对于多个分段中的每个分段,可以在获取概率模型770之前,将分段和多个超解码器输出分段中的超解码器输出分段集合合并750。
超编码器输出分段集合的示例在图11中示出,并在第四示例性实施例、第五示例性实施例、第六示例性实施例和第七示例性实施例中针对编码侧进行了详细解释。超解码器输出分段集合可以包括以下中的一个或多个:对应于相应分段的超解码器输出分段,或对应于与相应分段相同的信道的多个超解码器输出分段,或在空间上与相应分段相邻的多个超解码器输出分段,或包括在空间上与相应分段相邻的相邻分段和对应于与相邻分段相同的信道的分段的多个超解码器输出分段。上述任何第四示例性实施例至第七示例性实施例及其任何组合可以与第二示例性实施例或第三示例性实施例的任何布置组合。
与选择用于熵编码的概率模型类似,可以根据第一码流的计算复杂性和/或性质自适应地选择超解码器输出分段集合。例如,第一码流的性质包括预定义的目标速率或帧大小。可以预定义使用一组规则中的哪个选项。在这种情况下,规则可以被解码器知道。
神经网络对布置的处理可以包括选择分段的子集。这样的分段子集是从多个分段中选择的。子集可以提供给神经网络的后续层。上面参考图14a至图14c详细解释示例。
使用注意力层的概率模型可以应用于潜在张量的熵解码,潜在张量可以由自动解码卷积神经网络处理,以获取如上所述的图像数据。
图像编码中的实现
编码器20可用于接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收的图像或图像数据也可以是预处理图像19(或预处理图像数据19)。为了简单起见,以下描述使用图像17。图像17也可称为当前图像或待译码的图像(尤其是在视频译码中将当前图像与其它图像区分开时,其它图像例如同一视频序列,即也包括当前图像的视频序列中的之前经编码图像和/或经解码图像)。
(数字)图像是或可为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简短形式)。阵列或图像的水平和垂直方向(或轴)的样本数限定了图像的大小和/或分辨率。为了表示颜色,通常使用三种颜色分量,即,该图像可以表示为或包括三个样本阵列。在RGB格式或颜色空间中,图像包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或在颜色空间中表示,例如,YCbCr,包括Y表示的亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰阶强度(例如,如同灰阶图像中),两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度样本值(Y)的亮度样本阵列和色度值(Cb和Cr)的两个色度样本阵列。RGB格式的图像可以转换成YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是单色的,则图像可以仅包括亮度样本阵列。相应地,例如,图像可以为单色格式的亮度像素点阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度像素点阵列和两个对应的色度像素点阵列。
硬件和软件中的实现
硬件和软件中的一些进一步实现将在下文中描述。
参考图15至图18描述的任何编码设备可以提供用于执行潜在张量的熵编码的装置。这些示例性设备的任一个中的处理电路用于:在空间维度中将潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层的神经网络的一个或多个层处理多个分段的布置;根据处理的多个分段,获取用于对潜在张量的当前元素进行熵编码的概率模型。
图15至图18中任何一个中的解码设备可以包括处理电路,适用于执行解码方法。如上文所述的方法包括:用零初始化潜在张量;在空间维度中将潜在张量分离为多个分段,其中,每个分段包括至少一个潜在张量元素;通过包括至少一个注意力层神经网络的的一个或多个层处理多个分段的布置;根据处理的多个分段,获取用于对潜在张量的当前元素进行熵解码的概率模型。
描述了用于对潜在张量进行熵编码和熵解码的方法和装置,方法包括:在空间维度中将潜在张量分离为分段,每个分段包括至少一个潜在张量元素。通过神经网络处理所述分段的布置,其中,所述神经网络包括至少一个注意力层;根据所述处理的分段,获取用于对潜在张量元素进行熵编码或熵解码的概率模型。
在以下实施例中,根据图15和图16描述了视频译码系统10、视频编码器20和视频解码器30。
图15为可以利用本申请技术的示例性译码系统10,例如,视频译码系统10(或简称为译码系统10)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可用于根据本申请中描述的各种示例执行各技术的设备示例。
如图16所示,译码系统10包括源设备12,例如,所述源设备12用于将经编码图像数据21提供到目的地设备14以对经编码图像数据13进行解码。
源设备12包括编码器20,另外即可选地,可包括图像源16、图像预处理器18等预处理器(或预处理单元)18、通信接口或通信单元22。
图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机,和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供真实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任何组合(例如,增强现实(augmented reality,AR)图像)的任何类型的其它设备。所述图像源可以为存储任一上述图像的任何类型的存储器(memory/storage)。
区别于预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,对图像数据17进行预处理,以获得预处理图像19或预处理图像数据19。预处理器18执行的预处理可包括修剪(trimming)、颜色格式转换(例如从RGB转换为YCbCr)、颜色校正或去噪等。应理解,预处理单元18可以是可选组件。
视频编码器20用于接收预处理图像数据19并提供经编码图像数据21。
源设备12中的通信接口22可用于:接收经编码图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码图像数据21(或其它任何处理后的版本),以便存储或直接重建。
目的地设备14包括解码器30(例如,视频解码器30),另外即可选地,可包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任何其它源设备接收经编码图像数据21(或其它任何处理后的版本),例如,存储设备为经编码图像数据存储设备,并将经编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任何组合,或任何类型的专用和公共网络),或其任何组合发送或接收经编码图像数据21或经编码数据13。
例如,通信接口22可用于将经编码图像数据21封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理经编码图像数据,以便在通信链路或通信网络上进行传输。
例如,与通信接口22对应的通信接口28可用于接收发送的数据,并使用任何类型的对应传输解码或处理和/或解封装对发送的数据进行处理,以获得经编码图像数据21。
通信接口22和通信接口28均可配置为图15中从源设备12指向目的地设备14的通信信道13的箭头所表示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码的图像数据传输)相关的任何其它信息等。
解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31。
目的地设备14的后处理器32用于对经解码图像数据31(也称为经重建图像数据)(例如,经解码图像31)进行后处理,以获取后处理图像数据33(例如,后处理图像33)。后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样,或者任何其它处理,以便提供经解码图像数据31由显示设备34等显示,等等。
目的地设备14中的显示设备34用于接收后处理图像数据33,以向用户或观看者等显示图像。显示设备34可以是或可以包括任何类型的用于表示经重建图像的显示器,例如集成或外部显示器或显示屏。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
译码系统10还包括训练引擎25。训练引擎25用于训练编码器20(或编码器20内的模块)或解码器30(或解码器30内的模块)以处理输入图像或生成如上所述的用于熵编码的概率模型。
尽管图15将源设备12和目的地设备14描绘为单独的设备,但是设备的实施例也可以包括源设备12和目的地设备14或同时包括源设备12的对应功能和目的地设备14的对应功能。在这些实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据所述描述,技术人员将清楚地看到,如图15所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而变化。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30),或编码器20和解码器30两者均可通过如图16所示的处理电路实现,例如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图3b中的编码器描述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以包含参照图3c中的解码器描述的各种模块和/或本文描述的任何其它解码器系统或子系统。处理电路可用于执行稍后将论述的各种操作。如图18中所示,当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20或视频解码器30可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图16所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图15所示的视频译码系统10仅仅是示例性的,本申请提供的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。
为便于描述,本文参考由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合工作组(Joint Collaboration Team on Video Coding,JCT-VC)开发的高效视频编码(High-Efficiency Video Coding,HEVC)或通用视频编码(Versatile Video coding,VVC)参考软件或下一代视频编码标准描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于HEVC或VVC。
图17为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(如图15的视频解码器30)或编码器(如图15的视频编码器20)。
视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收单元(receiver unit,Rx)420,用于处理数据的处理器、逻辑单元或中央处理单元(centralprocessing unit,CPU)430,用于发送数据的发送单元(transmitter unit,Tx)440和出端口450(或输出端口450)以及用于存储数据的存储器460。视频译码设备400还可包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于光信号或电信号的出口或入口。
处理器430通过硬件和软件来实现。处理器430可实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,通过译码模块470为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的切换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
存储器460可以包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储这些程序,并且存储在程序执行过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图18为示例性实施例提供的装置500的简化框图,所述装置500可用作图15中的源设备12和目的地设备14中的任一个或两个。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用一个以上的处理器可以提高速度和效率。
在一种实现方式中,装置500中的存储器504可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括使得处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用程序1到N,应用程序1到N还包括执行本文所述方法的视频编码应用程序,包括使用具有部分可更新层子集的神经网络进行编码和解码。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。
虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合到装置500的其它组件或可以通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。
尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即,对视频译码中独立于任何之前或连续图像的单个图像进行处理或译码。一般情况下,如果图像处理译码仅限于单个图像17,帧间预测单元244(编码器)和344(解码器)可能不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可用于静态图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。
编码器20和解码器30等的实施例,以及本文描述的与编码器20和解码器30等有关的功能可以使用硬件、软件、固件或其任意组合来实现。如果使用软件来实现,那么各种功能可作为一或多个指令或代码在计算机可读媒体上存储或发送,且由基于硬件的处理单元执行。计算机可读介质可包括计算机可读存储介质,对应于有形介质,例如数据存储介质,或包括任何促进将计算机程序从一处传送到另一处的介质(例如根据通信协议)的通信介质。以此方式,计算机可读介质通常可以对应(1)非瞬时性的有形计算机可读存储介质,或(2)信号或载波等通信介质。数据存储介质可为可由一个或多个计算机或一个或多个处理器存取以检索用于实现本发明中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以被适当地定义为计算机可读介质。例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光缆、双绞线、数字用户线(digital subscriber line,DSL)或以红外、无线和微波等无线方式发送的,也被包含在所定义的介质中。但是,应理解,所述计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是实际上针对于非瞬时性有形存储介质。本文中使用的磁盘(disk)和光盘(disc)包括压缩磁盘(compact disc,CD)、镭射盘、光盘、数字多功能光盘(digital versatiledisc,DVD)、软盘和蓝光光盘,磁盘通常以磁性复制数据,而光盘通常以激光进行光学复制数据。上述的组合也可以包括在计算机可读介质范畴中。
可通过一个或多个数字信号处理器(digital signal processor,DSP)、通用微处理器、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其它等效集成或离散逻辑电路等一个或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实现本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入到组合编解码器中。而且,所述技术可以完全在一个或多个电路或逻辑元件中实现。
本发明的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明中描述各种组件、模块或单元是为了强调用于执行所公开技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元(包括如上所述的一个或多个处理器)的集合来提供。
Claims (44)
1.一种用于对潜在张量(4020)进行熵编码的方法,其特征在于,包括:
在空间维度中将所述潜在张量(4020)分离(700)为多个分段(820、920),其中,每个分段包括至少一个潜在张量元素;
通过包括至少一个注意力层(732)的神经网络的一个或多个层处理所述多个分段的布置(830、930、940);
根据所述处理的多个分段(820、920),获取用于对所述潜在张量(4020)的当前元素进行熵编码的概率模型(770)。
2.根据权利要求1所述的方法,其特征在于,所述分离所述潜在张量包括在所述信道维度中将所述潜在张量分离(701)为两个或两个以上分段。
3.根据权利要求2所述的方法,其特征在于,所述处理布置包括以预定义的顺序(930)布置所述分段,其中,具有相同空间坐标的分段被分组在一起。
4.根据权利要求2所述的方法,其特征在于,所述处理布置包括布置所述分段,其中,具有不同空间坐标的分段以预定义的顺序(940)连续布置。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述神经网络进行的处理包括:应用第一神经子网(720)以提取所述多个分段(820、920)的特征;提供所述第一神经子网(720)的输出作为所述神经网络内的后续层的输入。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述神经网络进行的处理还包括:
提供所述多个分段(820、920)的位置信息(721)作为所述至少一个注意力层(732)的输入。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述处理所述多个分段的布置(830、930、940)包括:从所述多个分段中选择分段的子集;提供所述子集作为所述神经网络内的后续层的输入。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述神经网络中的所述至少一个注意力层(732)进行的处理还包括:
应用掩码,其中,所述掩码屏蔽在所述潜在张量(4020)的处理顺序内在当前元素之后的注意力张量中的元素。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述神经网络包括第二神经网络(735),其中,所述第二神经网络(735)处理所述注意力层(732)的输出。
10.根据权利要求5或9所述的方法,其特征在于,所述第一神经网络(720)和所述第二神经网络(735)中的至少一个是多层感知器。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述神经网络中的所述至少一个注意力层(732)是多头注意力层。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述神经网络中的所述至少一个注意力层(732)包括在变换子网络中。
13.根据权利要求1至12中任一项所述的方法,其特征在于,还包括:
在通过所述神经网络进行处理之前,用零分段填充(710、711)所述多个分段的所述布置的开始。
14.根据权利要求1至13中任一项所述的方法,其特征在于,还包括:
使用所述获取的概率模型(770)将所述当前元素熵编码到第一码流(371)中。
15.根据权利要求1至14中任一项所述的方法,其特征在于,还包括:在分离成分段之前量化(320)所述潜在张量(4020)。
16.根据权利要求1至15中任一项所述的方法,其特征在于,还包括:根据以下各者选择用于所述熵编码的所述概率模型(770):
-计算复杂性和/或
-所述第一码流(371)的性质。
17.根据权利要求1至16中任一项所述的方法,其特征在于,还包括:
对所述潜在张量(4020)进行超编码,获取超潜在张量;
将所述超潜在张量熵编码到第二码流(341)中;
对所述第二码流(341)进行熵解码;
通过对所述超潜在张量进行超解码,获取超解码器输出。
18.根据权利要求17所述的方法,其特征在于,还包括:
将所述超解码器输出分离(740、741)为多个超解码器输出分段,其中,每个超解码器输出分段包括一个或多个超解码器输出元素;
对于多个分段(820、920)中的每个分段,在获取所述概率模型(770)之前,将所述分段和所述多个超解码器输出分段中的超解码器输出分段集合合并。
19.根据权利要求18所述的方法,其特征在于,所述待与相应分段(1100)合并的超解码器输出分段集合包括以下中的一个或多个:
-对应于所述相应分段(1100)的超解码器输出分段(1110),或
-对应于与所述相应分段(1100)相同的信道的多个超解码器输出分段(1120、1121、1122),或
-在空间上与所述相应分段(1100)相邻的多个超解码器输出分段(1130),或
-包括在空间上与所述相应分段(1100)相邻的相邻分段和对应于与所述相邻分段相同的信道的分段的多个超解码器输出分段(1140、1141、1142)。
20.根据权利要求17至19中任一项所述的方法,其特征在于,还包括:根据以下各者自适应地选择所述超解码器输出分段集合:
-计算复杂性和/或
-所述第一码流(371)的性质。
21.根据权利要求1至20中任一项所述的方法,其特征在于,对于所述多个分段中的每个分段,并行执行以下步骤中的一个或多个:
-通过神经网络处理;
-对所述当前元素进行熵编码。
22.一种用于对图像数据进行编码的方法,其特征在于,包括:
通过使用自动编码卷积神经网络处理所述图像数据,获取潜在张量(4020);
使用根据权利要求1至21生成的概率模型(770)将所述潜在张量(4020)熵编码到码流(371)中。
23.一种用于对潜在张量(4020)进行熵解码的方法,其特征在于,包括:
用零初始化所述潜在张量(4020);
在空间维度中将所述潜在张量(4020)分离(700)为多个分段(820、920),其中,每个分段包括至少一个潜在张量元素;
通过包括至少一个注意力层(732)的神经网络的一个或多个层处理所述多个分段的布置(830、930、940);
根据所述处理的多个分段(820、920),获取用于对所述潜在张量(4020)的当前元素进行熵解码的概率模型(770)。
24.根据权利要求23所述的方法,其特征在于,所述分离所述潜在张量包括在所述信道维度中将所述潜在张量分离(701)为两个或两个以上分段。
25.根据权利要求24所述的方法,其特征在于,所述处理布置包括以预定义的顺序(930)布置所述分段,其中,具有相同空间坐标的分段被分组在一起。
26.根据权利要求24所述的方法,其特征在于,所述处理布置包括布置所述分段,其中,具有不同空间坐标的分段以预定义的顺序(940)连续布置。
27.根据权利要求23至26中任一项所述的方法,其特征在于,所述神经网络进行的处理包括:应用第一神经子网(720)以提取所述多个分段(820、920)的特征;提供所述第一神经子网(720)的输出作为所述神经网络内的后续层的输入。
28.根据权利要求23至27中任一项所述的方法,其特征在于,所述神经网络进行的处理还包括:
提供所述多个分段(820、920)的位置信息(721)作为所述至少一个注意力层(732)的输入。
29.根据权利要求23至28中任一项所述的方法,其特征在于,所述处理所述多个分段的布置(830、930、940)包括:从所述多个分段中选择分段的子集;提供所述子集作为所述神经网络内的后续层的输入。
30.根据权利要求23至29中任一项所述的方法,其特征在于,所述神经网络包括第二神经网络(735),其中,所述第二神经网络(735)处理所述注意力层(732)的输出。
31.根据权利要求27或30所述的方法,其特征在于,所述第一神经网络(720)和所述第二神经网络(735)中的至少一个是多层感知器。
32.根据权利要求23至31中任一项所述的方法,其特征在于,所述神经网络中的所述至少一个注意力层(732)是多头注意力层。
33.根据权利要求23至32中任一项所述的方法,其特征在于,所述神经网络中的所述至少一个注意力层(732)包括在变换子网络中。
34.根据权利要求33所述的方法,其特征在于,还包括:
在通过所述神经网络进行处理之前,用零分段填充(710、711)所述多个分段的所述布置的开始。
35.根据权利要求23至34中任一项所述的方法,其特征在于,还包括:
使用所述获取的概率模型(770)从第一码流(371)中熵解码所述当前元素。
36.根据权利要求23至35中任一项所述的方法,其特征在于,还包括:根据以下各者选择用于所述熵编码的所述概率模型(770):
-计算复杂性和/或
-所述第一码流(371)的性质。
37.根据权利要求23至36中任一项所述的方法,其特征在于,还包括:
从第二码流(341)中熵解码超潜在张量;
通过对所述超潜在张量进行超解码,获取超解码器输出。
38.根据权利要求37所述的方法,其特征在于,还包括:
将所述超解码器输出分离(740、741)为多个超解码器输出分段,其中,每个超解码器输出分段包括一个或多个超解码器输出元素;
对于多个分段(820、920)中的每个分段,在获取所述概率模型(770)之前,将所述分段和所述多个超解码器输出分段中的超解码器输出分段集合合并。
39.根据权利要求38所述的方法,其特征在于,所述待与相应分段(1100)合并的超解码器输出分段集合包括以下中的一个或多个:
-对应于所述相应分段(1100)的超解码器输出分段(1110),或
-对应于与所述相应分段(1100)相同的信道的多个超解码器输出分段(1120、1121、1122),或
-在空间上与所述相应分段(1100)相邻的多个超解码器输出分段(1130),或
-包括在空间上与所述相应分段(1100)相邻的相邻分段和对应于与所述相邻分段相同的信道的分段的多个超解码器输出分段(1140、1141、1142)。
40.根据权利要求37至39中任一项所述的方法,其特征在于,还包括根据以下各者自适应地选择所述超解码器输出分段集合:
-计算复杂性和/或
-所述第一码流(371)的性质。
41.一种用于对图像数据进行解码的方法,其特征在于,包括:
根据权利要求23至40从码流(371)中熵解码潜在张量(4020);
通过使用自解码卷积神经网络处理所述潜在张量(4020),获取所述图像数据。
42.一种计算机程序,其特征在于,存储在非瞬时性介质中并包括代码指令,当在一个或多个处理器上执行时,使得所述一个或多个处理器执行根据权利要求1至41中任一项所述的方法的步骤。
43.一种用于对潜在张量进行熵编码的装置,其特征在于,包括:
处理电路,用于:
在空间维度中将所述潜在张量(4020)分离(700)为多个分段(820、920),其中,每个分段包括至少一个潜在张量元素;
通过包括至少一个注意力层(732)的神经网络的一个或多个层处理所述多个分段的布置(830、930、940);
根据所述处理的多个分段(820、920),获取用于对所述潜在张量(4020)的当前元素进行熵编码的概率模型(770)。
44.一种用于对潜在张量进行熵解码的装置,其特征在于,包括:
处理电路,用于:
用零初始化所述潜在张量(4020);
在空间维度中将所述潜在张量(4020)分离(700)为多个分段(820、920),其中,每个分段包括至少一个潜在张量元素;
通过包括至少一个注意力层(732)的神经网络的一个或多个层处理所述多个分段的布置(830、930、940);
根据所述处理的多个分段(820、920),获取用于对所述潜在张量(4020)的当前元素进行熵解码的概率模型(770)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/079028 WO2023066473A1 (en) | 2021-10-20 | 2021-10-20 | Attention based context modelling for image and video compression |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118120233A true CN118120233A (zh) | 2024-05-31 |
Family
ID=78302777
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180103439.5A Pending CN118120233A (zh) | 2021-10-20 | 2021-10-20 | 基于注意力的图像和视频压缩上下文建模 |
CN202280070788.6A Pending CN118160305A (zh) | 2021-10-20 | 2022-07-15 | 基于注意力的图像和视频压缩上下文建模 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280070788.6A Pending CN118160305A (zh) | 2021-10-20 | 2022-07-15 | 基于注意力的图像和视频压缩上下文建模 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20240244274A1 (zh) |
EP (2) | EP4388738A1 (zh) |
CN (2) | CN118120233A (zh) |
WO (2) | WO2023066473A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116862915A (zh) * | 2023-09-05 | 2023-10-10 | 西南石油大学 | 一种风机内部视频流缺陷识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220112783A (ko) * | 2019-12-19 | 2022-08-11 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 블록 기반 압축 자동 인코더 |
CN113347422B (zh) * | 2021-05-13 | 2022-07-12 | 北京大学 | 一种粗粒度上下文熵编码方法 |
-
2021
- 2021-10-20 CN CN202180103439.5A patent/CN118120233A/zh active Pending
- 2021-10-20 EP EP21794833.0A patent/EP4388738A1/en active Pending
- 2021-10-20 WO PCT/EP2021/079028 patent/WO2023066473A1/en active Application Filing
-
2022
- 2022-07-15 WO PCT/EP2022/069824 patent/WO2023066536A1/en active Application Filing
- 2022-07-15 CN CN202280070788.6A patent/CN118160305A/zh active Pending
- 2022-07-15 EP EP22747031.7A patent/EP4388739A1/en active Pending
-
2024
- 2024-03-28 US US18/620,667 patent/US20240244274A1/en active Pending
- 2024-04-18 US US18/639,170 patent/US20240267568A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN118160305A (zh) | 2024-06-07 |
WO2023066536A1 (en) | 2023-04-27 |
US20240267568A1 (en) | 2024-08-08 |
TW202318265A (zh) | 2023-05-01 |
US20240244274A1 (en) | 2024-07-18 |
EP4388739A1 (en) | 2024-06-26 |
WO2023066473A1 (en) | 2023-04-27 |
EP4388738A1 (en) | 2024-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI806199B (zh) | 特徵圖資訊的指示方法,設備以及電腦程式 | |
US20230336776A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
US20240078414A1 (en) | Parallelized context modelling using information shared between patches | |
US20240267568A1 (en) | Attention Based Context Modelling for Image and Video Compression | |
US20240296593A1 (en) | Conditional Image Compression | |
EP4193595A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
WO2024005660A1 (en) | Method and apparatus for image encoding and decoding | |
WO2023160835A1 (en) | Spatial frequency transform based image modification using inter-channel correlation information | |
WO2024002496A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
WO2023177317A1 (en) | Operation of a neural network with clipped input data | |
EP4449312A1 (en) | Neural network with approximated activation function | |
TWI850806B (zh) | 基於注意力的圖像和視訊壓縮上下文建模 | |
JP2024538685A (ja) | 画像及びビデオ圧縮のためのアテンションベースのコンテキストモデリング | |
Le | Still image coding for machines: an end-to-end learned approach | |
WO2024083405A1 (en) | Neural network with a variable number of channels and method of operating the same | |
KR20240071400A (ko) | 가변 보조 입력을 이용하는 트랜스포머 기반 신경망 | |
EP4396942A1 (en) | Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data | |
WO2024002497A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
KR20240129013A (ko) | 조건화된 가중치에 의한 신경망의 동작 | |
CN118872266A (zh) | 基于多模态处理的视频译码方法 |
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 |