CN117501696A - 使用在分块之间共享的信息进行并行上下文建模 - Google Patents
使用在分块之间共享的信息进行并行上下文建模 Download PDFInfo
- Publication number
- CN117501696A CN117501696A CN202180099227.4A CN202180099227A CN117501696A CN 117501696 A CN117501696 A CN 117501696A CN 202180099227 A CN202180099227 A CN 202180099227A CN 117501696 A CN117501696 A CN 117501696A
- Authority
- CN
- China
- Prior art keywords
- elements
- tensor
- potential
- super
- tiles
- 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
- 238000005192 partition Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 claims abstract description 168
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000013528 artificial neural network Methods 0.000 claims abstract description 51
- 238000000638 solvent extraction Methods 0.000 claims abstract description 15
- 238000013527 convolutional neural network Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims 2
- 239000000758 substrate Substances 0.000 claims 2
- 230000006870 function Effects 0.000 description 39
- 230000008569 process Effects 0.000 description 37
- 230000006854 communication Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 27
- 238000007906 compression Methods 0.000 description 24
- 238000011176 pooling Methods 0.000 description 24
- 230000006835 compression Effects 0.000 description 23
- 230000004913 activation Effects 0.000 description 17
- 238000001994 activation Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 238000012549 training Methods 0.000 description 16
- 210000002569 neuron Anatomy 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 12
- 230000009466 transformation Effects 0.000 description 12
- 238000013139 quantization Methods 0.000 description 11
- 238000012512 characterization method Methods 0.000 description 10
- 238000010276 construction Methods 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 241000023320 Luma <angiosperm> Species 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 5
- 238000007781 pre-processing Methods 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 241000282326 Felis catus Species 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 238000012952 Resampling Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003278 mimic effect Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000009966 trimming 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
- 230000002411 adverse Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000011664 signaling Effects 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
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000857 visual cortex Anatomy 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/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/084—Backpropagation, e.g. using gradient descent
-
- 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/047—Probabilistic or stochastic 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Image Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
描述了用于对潜在张量进行熵编码和解码的装置和方法,其中,包括将潜在张量划分为分块,通过神经网络的一个或多个层处理来自不同分块的一组元素来获取用于对潜在张量的当前元素进行熵编码的概率模型。通过应用卷积核对该一组元素进行处理实现在划分的分块之间共享信息。
Description
本发明的实施例涉及基于人工智能(AI)的视频或图片压缩技术的领域,尤其涉及使用潜在张量的元素的在分块之间共享的信息进行上下文建模。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天和视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。
即使视频相对较短,也需要大量的视频数据来描述,当数据要在带宽容量有限的通信网络中流式传输或以其它方式传输时,这样可能会造成难题。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,当将视频存储在存储设备中时,该视频的大小也可能是一个问题。视频压缩设备通常在信源侧使用软件和/或硬件对视频数据进行译码,然后再传输或存储视频数据,从而减少表示数字视频图片所需的数据量。然后,由对视频数据进行解码的视频解压缩设备在目的地侧接收压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
近年来,深度学习在图像和视频编解码的领域越来越受欢迎。
发明内容
本发明的实施例提供了对潜在张量进行熵编码和解码的装置和方法,该方法包括将潜在张量划分为分块,并且通过神经网络的一个或多个层处理一组元素来获取对潜在张量的当前元素进行熵编码的概率模型。
本发明的实施例由独立权利要求的特征限定,并且实施例的另外的有利实现方式由从属权利要求的特征限定。
根据一个实施例,提供了一种对潜在张量进行熵编码的方法,该方法包括:将潜在张量划分为多个分块,每个分块包括一个或多个元素;通过神经网络的一个或多个层处理多个分块,包括通过应用卷积核来处理一子组分块中的一组共址元素;基于该经处理的一组元素来获取对潜在张量的当前元素进行熵编码的概率模型。
对不同分块内的一组共址元素应用卷积核可以实现在这些划分的分块之间共享信息。除了信息共享之外,对每个分块进行的处理可以独立于对其它分块进行的处理。这样可以对多个分块进行并行熵编码。
在一种示例性实现方式中,一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;一组元素具有对应于K×M分块网格的维度K×M并且包括在一子组分块内的每个分块中的一个元素,并且该一个元素是当前元素;所述卷积核是二维B×C卷积核,其中,B和C是正整数,B和C中的至少一个大于1。
这种形式的卷积核可以实现在一子组分块内(例如,在空间域中)的当前的共址元素之间共享信息,从而提高熵估计的性能。
在一种示例性实现方式中,一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;一组元素具有对应于K×M分块网格的维度L×K×M并且包括每个分块中的L个元素,该L个元素包括当前元素以及一个或多个先前已编码的元素,L是大于1的整数;所述卷积核是三维A×B×C卷积核,其中,A是大于1的整数且B和C是正整数,B和C中的至少一个大于1。
这种形式的卷积核可以实现在一子组分块内的当前的共址元素和指定数量的先前已编码的共址元素(时域)之间共享信息,从而提高熵估计的性能。
例如,该方法还包括:将先前已编码的元素存储在历史存储器中。
将先前经编码的元素存储在存储设备中可以改进编码处理和提高编码速度,因为不需要实时整理处理流程。
在一种示例性实现方式中,该方法还包括:在进行所述处理之前,通过根据一子组分块内的相应分块位置将共址元素投影到相同的空间平面上,对包括在一子组分块中的一组共址元素中的元素进行重排序。
重排序使得卷积等数学运算高效地应用在共址张量元素上。
例如,可在神经网络中对卷积核进行训练。
经训练的内核可以改进使用所述内核进行卷积的元素的处理过程,从而能够获得更精细的概率模型,实现更高效的编码和/或解码。
在一种示例性实现方式中,该方法还包括:将掩码卷积应用于包括在多个分块中的分块中的每个元素,即使用零按编码顺序对所述分块内的当前元素和后续元素进行卷积。
应用掩码卷积确保仅处理先前已编码的元素,从而保护译码顺序。掩码卷积将解码侧的信息的可用性镜像到编码侧。
例如,该方法还包括:使用获取的概率模型将当前元素熵编码成第一码流。
使用通过应用卷积核处理一子组元素获取的概率模型可以减小码流的大小。
在一种示例性实现方式中,该方法还包括:将分块尺寸包括到第一码流中。
通过将分块尺寸包括到码流中来将分块尺寸通过信号发送到解码侧,使得分块尺寸的选择更加灵活,因为也可以使用除了预定义分块尺寸之外的其它分块尺寸。
例如,多个分块内的分块不重叠,并且多个分块中的每个分块具有相同的分块尺寸。
相同尺寸的不重叠分块可以实现更高效地处理一组元素。
在一种示例性实现方式中,该方法还包括:填充潜在张量,使得潜在张量的新尺寸是所述相同的分块尺寸的倍数,然后将潜在张量划分为多个分块。
填充潜在张量使得能够将任何潜在张量划分为相同尺寸的不重叠分块。这使得能够对所有分块进行统一处理,从而实现更容易且更高效的实现方式。
例如,使用零填充潜在张量。
使用零填充可以提供如下优点,即在处理分块期间,不通过填充后的元素添加额外的信息,因为与零相乘得到的结果是零。
在一种示例性实现方式中,该方法还包括:对潜在张量进行量化,然后划分为分块。
经量化的潜在张量产生简化的概率模型,从而实现更高效的编码过程。此外,压缩这种潜在张量,可以降低对其进行处理的复杂度,并且可以更高效地将其呈现在码流内。
例如,该方法还包括:使用以下各项来选择进行熵编码的概率模型:当前待编码的共址元素的信息,或当前的共址元素的信息以及先前已经编码的共址元素的信息。
启用上下文模型构建策略的选择可以在编码过程期间实现更好的性能,并且可以灵活地根据所需应用调整经编码的码流。
在一种示例性实现方式中,该方法还包括:根据以下各项来选择概率模型:关于先前经编码的元素的信息和/或穷尽搜索和/或第一码流的特性。
根据所提及的选项调整上下文模型构建的选择,可以在码流内产生更高的速率和/或改进编码时间和/或解码时间。
例如,该方法还包括:对潜在张量进行超编码,获取超潜在张量;将该超潜在张量熵编码成第二码流;对该第二码流进行熵解码;通过对超潜在张量进行超解码,获取超解码器输出。
引入超先验模型还可以通过确定潜在张量中的另外的冗余来进一步改进概率模型,从而提高译码速率。
在一种示例性实现方式中,该方法还包括:将超解码器输出划分为多个超解码器输出分块,其中,每个超解码器输出分块包括一个或多个超解码器输出元素;对多个超解码器输出分块中的超解码器输出分块和多个分块中的对应分块进行级联,然后进行所述处理。
通过将超解码器输出包括在对一组元素进行的使不同分块之间共享信息的处理中,可以进一步改进概率模型。
例如,该方法还包括:通过将共址元素投影到相同的空间平面上,对包括在一子组分块中的一组共址元素中的超解码器输出元素进行重排序。
重排序使得卷积等数学运算高效地应用于共址超解码器输出元素。
在一种示例性实现方式中,针对多个分块中的每个分块,并行执行以下步骤中的一个或多个步骤:应用卷积核,对当前元素进行熵解码。
对划分的分块进行并行处理可以实现更快地编码到码流中。
根据一个实施例,提供了一种用于对图像数据进编码的方法,该方法包括:通过使用自动编码卷积神经网络处理图像数据来获取潜在张量;使用根据任何上述方法生成的概率模型将潜在张量熵编码成码流。
可以便利地且有利地将熵译码应用于图像编码,以有效地降低数据速率,例如,当需要对图像或视频进行传输或存储时,因为用于进行图像重建的潜在张量的尺寸可能仍然相当大。
根据一个实施例,提供了一种用于对潜在张量进行熵解码的方法,该方法包括:使用零对潜在张量进行初始化;将该潜在张量划分为多个分块,每个分块包括一个或多个元素;通过神经网络的一个或多个层处理该多个分块,其中,包括通过应用卷积核处理在一子组分块中共址的一组元素;基于该经处理的一组元素来获取用于对潜在张量的当前元素进行熵解码的概率模型。
对在不同分块内共址的一组元素应用卷积核可以实现在这些划分的分块之间共享信息。除了信息共享之外,对每个分块进行的处理可以独立于对其它分块进行的处理。这使得对多个分块并行执行熵解码成为可能。
在示例性实现方式中,一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;一组元素具有对应于K×M分块网格的维度K×M并且包括在一子组分块内的每个分块中的一个元素,并且该一个元素是当前元素;所述卷积核是二维B×C卷积核,其中,B和C是正整数,B和C中的至少一个大于1。
这种形式的卷积核可以实现在一子组分块内(例如,在空间域中)的当前的共址元素之间共享信息,从而提高熵估计的性能。
在示例性实现方式中,一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;一组元素具有对应于K×M分块网格的维度L×K×M并且包括每个分块中的L个元素,该L个元素包括当前元素以及一个或多个先前经编码的元素,L是大于1的整数;所述卷积核是三维A×B×C卷积核,其中,A是大于1的整数且B和C是正整数,B和C中的至少一个大于1。
这种形式的卷积核可以实现在一子组分块内的当前的共址元素和指定数量的先前经解码的共址元素(时域)之间共享信息,从而提高熵估计的性能。
例如,该方法还包括:将先前经解码的元素存储在历史存储器中。
将先前经编码的元素存储在存储设备中可以改进解码处理和提高解码速度,因为不需要实时整理处理流程。
在示例性实现方式中,该方法还包括:在进行所述处理之前,通过根据一子组分块内的相应分块位置将共址元素投影到相同的空间平面上,对包括在一子组分块中的一组共址元素中的元素进行重排序。
重排序可以允许将卷积等数学运算高效地应用在共址张量元素上。
例如,可在神经网络中对卷积核进行训练。
经训练的内核可以改进针对元素进行的处理,使用所述内核对该元素进行卷积,从而能够获得更精细的概率模型,实现更高效的编码和/或解码。
在示例性实现方式中,该方法还包括:使用获取的概率模型对来自第一码流的当前元素进行熵解码。
使用通过应用卷积核处理一子组元素获取的概率模型可以减小码流的大小。
例如,该方法还包括:从第一码流提取分块尺寸。
通过将分块尺寸包括到码流中来将分块尺寸通过信号发送到解码侧,使得分块尺寸的选择更加灵活,因为也可以使用除了预定义分块尺寸之外的其它分块尺寸。
在示例性实现方式中,多个分块内的分块不重叠,并且多个分块中的每个分块具有相同的分块尺寸。
相同尺寸的不重叠分块可以实现更高效地处理一组元素。
例如,该方法还包括:填充潜在张量,使得潜在张量的新尺寸是所述相同的分块尺寸的倍数,然后将潜在张量划分为多个分块。
填充潜在张量使得能够将任何潜在张量划分为相同尺寸的不重叠分块。这使得能够对所有分块进行统一处理,从而实现更容易且更高效的实现方式。
例如,使用零填充潜在张量。
使用零填充可以提供这样的优点,即在处理分块期间,不通过填充后的元素添加额外的信息,因为例如,与零相乘得到的结果是零。
在示例性实现方式中,该方法还包括:使用以下各项来确定用于进行熵解码的概率模型:当前待解码的共址元素的信息,或当前的共址元素的信息以及先前已经解码的共址元素的信息。
启用上下文模型构建策略的确定可以在解码过程期间实现更好的性能。
例如,该方法还包括根据以下各项来确定概率模型:关于先前经解码的元素的信息和/或第一码流的特性。
所确定的上下文模型构建策略可以在码流内实现更高的速率和/或改进解码时间。
在示例性实现方式中,该方法还包括:对来自第二码流的超潜在张量进行熵解码;通过对超潜在张量进行超解码来获取超解码器输出。
引入超先验模型还可以通过确定潜在张量中的另外的冗余来进一步改进概率模型,从而提高译码速率。
例如,该方法还包括:将超解码器输出划分为多个超解码器输出分块,其中,每个超解码器输出分块包括一个或多个超解码器输出元素;对多个超解码器输出分块中的超解码器输出分块和多个分块中的对应分块进行级联,然后进行所述处理。
通过将超解码器输出包括在对一组元素进行的使不同分块之间共享信息的处理中,可以进一步改进概率模型。
在示例性实现方式中,该方法还包括:通过将共址元素投影到相同的空间平面上,对包括在一子组分块中的一组共址元素中的超解码器输出元素进行重排序。
重排序可以允许将卷积等数学运算高效地应用于共址超解码器输出元素。
在示例性实现方式中,针对多个分块中的每个分块,并行执行以下步骤中的一个或多个步骤:应用卷积核,对当前元素进行熵编码。
对划分的分块进行并行处理可以实现更快地解码到码流中。
根据一个实施例,提供了一种用于对图像数据进行解码的方法,该方法包括:根据任何上述方法,对来自码流中的潜在张量进行熵解码;通过使用自动解码卷积神经网络处理潜在张量来获取图像数据。
可以便利地且有利地将熵解码应用于图像解码,以有效地降低数据速率,例如,当需要对图像或视频进行传输或存储时,因为用于进行图像重建的潜在张量的尺寸可能仍然相当大。
在示例性实现方式中,一种存储在非瞬时性介质上并且包括代码指令的计算机程序,当在一个或多个处理器上执行时,该代码指令使一个或多个处理器执行根据上述方法中任一项的方法的步骤。
根据一个实施例,提供了一种用于对潜在张量进行熵编码的装置,该装置包括:处理电路,该处理电路用于:将潜在张量划分为多个分块,每个分块包括一个或多个元素;通过神经网络的一个或多个层处理多个分块,其中,包括通过应用卷积核处理在一子组分块中共址的一组元素;基于该经处理的一组元素来获取用于对潜在张量的当前元素进行熵编码的概率模型。
根据一个实施例,提供了一种用于对潜在张量进行熵解码的装置,该装置包括:处理电路,该处理电路用于:使用零对潜在张量进行初始化;将潜在张量划分为多个分块,每个分块包括一个或多个元素;通过神经网络的一个或多个层处理多个分块,其中,包括通过应用卷积核处理在一子组分块中共址的一组元素;基于该经处理的一组元素来获取用于对潜在张量的当前元素进行熵解码的概率模型。
这些装置实现上述方法的优点。
可以在硬件(hardware,HW)和/或软件(software,SW)或它们的任何组合中实现本发明。此外,基于HW的实现方式可以与基于SW的实现方式组合。
以下附图和说明书详细阐述了一个或多个实施例。根据说明书、附图以及权利要求书,其它特征、目的和优点将会显而易见。
附图说明
下文结合附图对本发明的实施例进行详细描述。在附图中:
图1是神经网络层处理的通道的示意图;
图2是一种神经网络的自动编码器类型的示意图;
图3a是一种包括超先验模型的编码器侧和解码器侧的示例性网络架构的示意图;
图3b是一种包括超先验模型的编码器侧的通用网络架构的示意图;
图3c是一种包括超先验模型的解码器侧的通用网络架构的示意图;
图4是从输入图像获取潜在张量的示意性图解;
图5示出了示例性的掩码卷积核;
图6是一种包括超先验模型和上下文模型构建的编码器侧和解码器侧的示例性网络架构的示意图;
图7示出了示例性地将掩码卷积核应用于潜在张量;
图8示出了示例性地将潜在张量划分为分块以及将掩码卷积核应用于分块;
图9示例性地示出了填充潜在张量以及将填充后的张量划分为尺寸相同的分块;
图10是一种包括在分块之间共享信息的示例性上下文模型构建的示意图;
图11示例性地示出了对分块进行重排序以及应用卷积核;
图12a示出了示例性地对潜在张量进行串行处理;
图12b示出了示例性地对潜在张量进行并行处理;
图13a示出了使用当前的共址潜在张量元素的信息进行信息共享;
图13b示出了使用当前的共址潜在张量元素和先前的共址潜在张量元素的信息进行信息共享;
图14是实现本发明的实施例的视频译码系统的一个示例的框图;
图15是实现本发明的实施例的视频译码系统的另一个示例的框图;
图16是编码装置或解码装置的一个示例的框图;
图17是编码装置或解码装置的另一个示例的框图。
具体实施方式
在以下描述中,参考构成本发明一部分的附图,这些附图通过说明的方式示出了本发明实施例的具体方面或可以使用本发明实施例的具体方面。应当理解的是,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
例如,应当理解的是,与描述的方法有关的公开内容也同样适用于用于执行所述方法的对应设备或系统,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元),用于执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元各自执行多个步骤中的一个或多个步骤),即使附图中未明确描述或图示此类一个或多个单元。另一方面,例如,如果基于一个或多个单元(例如,功能单元)描述具体装置,则对应的方法可以包括用于执行一个或多个单元的功能的一个步骤(例如,一个步骤执行一个或多个单元的功能,或多个步骤各自执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或图示此类一个或多个步骤。此外,应当理解的是,除非另外明确说明,否则,本文中所描述的各个示例性实施例和/或方面的特征可以相互组合。
人工神经网络
人工神经网络(Artificial neural network,ANN)或联结主义系统是受到构成动物大脑的生物神经网络模糊启发的计算系统。此类系统通过斟酌示例来“学习”执行任务,通常无需使用特定于任务的规则进行编程。例如,在图像识别中,此类系统可能会通过分析已经手动标记为“猫”或“无猫”的示例性图像,并且使用结果识别其它图像中的猫来学习识别含有猫的图像。此类系统在事先不了解猫(例如,它们有皮毛、尾巴、触须和类似猫的脸)的情况下执行这样的操作。相反,此类系统根据所处理的示例自动生成识别特征。
ANN基于称为人工神经元的连接单元或节点的集合,这些连接单元或节点松散地模拟生物大脑中的神经元。每个连接(类似于生物大脑中的突触)都可以向其它神经元发送信号。然后,接收信号的人工神经元对其进行处理,并且可以向连接到该人工神经元的神经元发送信号。
在ANN实现方式中,在连接处的“信号”是实数,并且每个神经元的输出通过其输入之和的一些非线性函数计算得出。这些连接称为边。神经元和边通常具有随着学习进行而调整的权重。权重增加或减少在连接处的信号强度。神经元可以具有阈值,使得只有在集合信号超过该阈值时,才发送信号。通常,神经元集合成层。不同的层可以对其输入执行不同的变换。信号从第一层(输入层)传播到最后一层(输出层),可以在多次遍历这些层之后进行。
ANN方法的最初目标是以与人类大脑相同的方式解决问题。随着时间的推移,注意力转移到执行特定任务上,从而导致偏离生物学。ANN已用于执行各种任务,包括计算机视觉、语音识别、机器翻译、社交网络过滤、玩棋盘游戏和视频游戏、医疗诊断,甚至用于执行传统上一直视为专属于人类的活动,如绘画
“卷积神经网络”(convolutional neural network,CNN)顾名思义就是网络采用称为卷积的数学运算。卷积是一种特殊的线性运算。卷积网络是使用卷积代替在它们的层中的至少一个层中的一般矩阵乘法的神经网络。
图1示意性地示出了CNN等神经网络执行处理的一般概念。卷积神经网络由输入层和输出层以及多个隐藏层组成。输入层是向其提供输入(诸如图1中所示的图像的一部分)以供处理的层。CNN的隐藏层通常由一系列卷积层组成,这些卷积层与乘法或其它点积进行卷积。层的结果是一个或多个特征面(图1中的f.maps),有时也称为通道。一些层或所有层可能涉及子采样。因此,特征面可能会变得更小,如图1中所示。CNN中的激活函数通常是ReLU(线性整流函数)层,以及随后是额外的卷积,诸如池化层、全连接层和归一化层,称为隐藏层,因为它们的输入和输出被激活函数和最终卷积掩蔽。虽然这些层通俗地称为卷积,但是这只是惯例。从数学上,它在技术上是滑动点积或互相关。这对矩阵中的索引具有重要意义,因为它影响在特定索引点确定权重的方式。
当编程CNN处理图像时,如图1所示,输入是具有形状(图像数量)×(图像宽度)×(图像高度)×(图像深度)的张量。然后,在穿过卷积层后,图像被抽象为具有形状(图像数量)×(特征面宽度)×(特征面高度)×(特征面通道)的特征面。神经网络内的卷积层应具有以下属性。由宽度和高度(超参数)限定的卷积核。输入通道和输出通道的数量(超参数)。卷积滤波器(输入通道)的深度应等于输入特征面的通道数量(深度)。
过去,传统多层感知器(multilayer perceptron,MLP)模型已用于图像识别。然而,由于节点之间的全连接,它们受到高维度数的影响,无法很好地与更高分辨率的图像进行扩展。具有RGB颜色通道的1000×1000像素图像具有300万权重,该权重过高以致无法在全连接的情况下可行且高效地进行大规模处理。此外,此类网络架构没有考虑数据的空间结构,以与靠近在一起的像素相同的方式处理相距较远的输入像素。这在计算和语义两者上均忽略了图像数据中的引用局部性。因此,对于实现诸如由空间局部输入模式主导的图像识别等目的,神经元的全连接是一种浪费。
卷积神经网络是受生物学启发的多层感知器的变体,其具体地设计用于模拟视觉皮层的行为。这些模型通过利用存在于自然图像中的强空间局部相关性,缓解MLP架构带来的挑战。卷积层是CNN的核心构建块。该层的参数由一组能够学习的滤波器(上述内核)组成,这些滤波器的感受野较小,但延伸穿过输入卷的完整深度。在前向传播期间,每个滤波器跨过输入卷的宽度和高度进行卷积,计算滤波器的条目与输入之间的点积,并且生成该滤波器的二维激活图。因此,当网络检测到在输入中的某个空间位置处的某些特定类型的特征时,网络会学习激活的滤波器。
沿深度维度堆叠所有滤波器的激活图形成卷积层的完整输出卷。因此,输出卷中的每个条目也可以理解为神经元的输出,该神经元观察输入中的较小区域并且与相同的激活图中的神经元共享参数。特征面或激活图是给定滤波器的输出激活。特征面和激活具有相同的含义。在一些文献中,它称为激活图,因为它是对应于图像的不同部分的激活的映射,并且也称为特征面,因为它也是在图像中找到的某种特征的所在位置的映射。高激活意味着找到了某种特征。
CNN的另一个重要概念是池化,池化是一种非线性下采样形式。存在若干种用于实现池化的非线性函数,其中,最大池化是最常见的类型。最大池化将输入图像划分为一组不重叠的矩形,并且针对每个此类子区域,输出最大值。
直观地,特征的确切位置的重要性不如其相对于其它特征的粗略位置。这就是在卷积神经网络中使用池化背后的理念。池化层用于逐步减小表示的空间尺寸,减少网络中的参数的数量、存储器占用和计算量,因此也用于控制过拟合。在CNN架构中,在连续的卷积层之间定期插入池化层很常见。池化操作提供了另一种形式的平移不变性。
池化层在输入的每个深度切片上独立运行,并且在空间上调整其大小。最常见的形式是池化层,该池化层具有尺寸为2×2的滤波器,该滤波器在以2为输入中的每个深度切片上沿宽度和高度以2为步长应用,丢弃75%的激活。在这种情况下,每个最大操作均超过4个数字。深度维度保持不变。除了最大池化之外,池化单元可以使用其它函数,诸如平均池化或l2范数池化。平均池化在历史上经常使用,但与最大池化相比,最近已不再流行,最大池化通常在实践中表现更好。由于表征的尺寸急剧减小,最近趋向于使用较小的滤波器或完全丢弃池化层。“感兴趣区域”池化(也称为ROI池化)是最大池化的变体,其中,输出尺寸是固定的并且输入矩形是参数。池化是基于Fast R-CNN架构的用于目标检测的卷积神经网络的重要组成部分。
上述ReLU的全称是线性整流函数,其应用非饱和激活函数。通过将负值设置为零,它有效地删除了激活图中的这些负值。它增加了决策函数和整个网络的非线性特性,而不会对卷积层的感受野产生影响。其它函数也用于增加非线性,例如,饱和双曲正切函数和S形函数(sigmoid function)。与其它函数相比,通常优选ReLU,因为它训练神经网络的速度快若干倍,而不会对泛化准确度产生显著不利影响。
经过若干个卷积层和最大池化层后,通过全连接层完成神经网络中的高级推理。全连接层中的神经元与先前层中的所有激活均有连接,如常规(非卷积)人工神经网络中所示。因此,它们的激活可以计算为仿射变换,其中,进行矩阵乘法之后,接着进行偏置偏移(所学习的偏置项或固定偏置项的矢量相加)。
“损失层”(包括损失函数的计算)指定训练如何惩罚预测(输出)标签和真实标签之间的偏差,并且“损失层”通常是神经网络的最后一个层。可以使用适合于不同任务的各种损失函数。Softmax损失用于预测K个互斥类中的单个类。Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧式损失(Euclidean loss)用于回归到实值标签。
总之,图1示出了典型卷积神经网络中的数据流。首先,使输入图像通过卷积层,并且将其抽象化为包括若干个通道的特征面,该若干个通道对应于该层的一组能够学习的滤波器中的多个滤波器。然后,使用例如池化层对特征面进行子采样,这减少了特征面中的每个通道的维度。接下来,数据达到另一个卷积层,该另一个卷积层可能具有不同数量的输出通道。如上所述,输入通道的数量和输出通道的数量是层的超参数。为了建立网络的连接性,这些参数需要在两个连接层之间同步,以便当前层的输入通道的数量等于前一层的输出通道的数量。对于处理输入数据(例如,图像)的第一层,输入通道的数量在正常情况下等于数据表征的通道的数量,例如,图像或视频的RGB表征或YUV表征的通道数量为3个,或灰度图像表征或视频表征的通道数量为1个。
自动编码器和无监督学习
自动编码器是一种用于以无监督的方式学习高效的数据译码的人工神经网络。图2中示出了其示意图。自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表征(编码),通常是为了降低维度数。除了降低侧,还学习了重建侧,在重建侧,自动编码器试图从降低的编码生成尽可能接近其原始输入的表征,因此得名。在最简单的情况下,给定一个隐藏层,自动编码器的编码器级获取输入x并且将其映射到h
h=σ(Wx+b)。
该图像h通常称为代码、潜在变量或潜在表征。这里,σ是逐元素激活函数,诸如S形函数(sigmoid function)或线性整流函数。W是权重矩阵,b是偏置向量。通常随机对权重和偏置进行初始化,然后在训练期间通过后向传播对它们进行迭代更新。之后,自动编码器的解码器级将h映射到与x相同形状的重建x′:
x′=σ′(W′h′+b′)
其中,解码器的σ′、W′、b′可能与编码器的对应的σ、W、b无关。
变分自动编码器模型对潜在变量的分布做出强假设。变分自动编码器模型使用变分方法进行潜在表征学习,这导致产生额外的损失分量并且需要用于训练算法的特定估计器,该特定估计器称为随机梯度变分贝叶斯(Stochastic Gradient Variational Bayes,SGVB)估计器。它假设数据由有向图模型pθ(x|h)生成,并且编码器正在学习后验分布pθ(h|x)的近似值qφ(h|x),其中,φ和θ分别表示编码器(识别模型)和解码器(生成模型)的参数。VAE的潜在向量的概率分布通常与训练数据的概率分布相匹配,比标准自动编码器更接近。
人工神经网络领域,尤其是卷积神经网络取得的最新进展激发研究人员有兴趣将基于神经网络的技术应用于图像压缩和视频压缩任务。例如,已经提出了端到端优化图像压缩算法,端到端优化图像压缩算法使用基于变分自动编码器的网络。
因此,数据压缩被视为工程中的一种基本的且得到充分研究的问题,通常以为给定的具有最小熵的离散数据集合设计代码为目的。该方案在很大程度上依赖于对数据的概率结构的了解,因此该问题与概率信源模型构建密切相关。然而,由于所有实用代码均必须具有有限的熵,因此,必须将连续值数据(诸如图像像素强度的向量)量化为有限的一组离散值,这引入了误差。
在这种情况下,称为有损压缩问题,必须权衡两种竞争成本:离散化表征的熵(速率)和因量化引起的误差(失真)。不同的压缩应用(诸如数据存储或通过有限容量信道进行的数据传输)需要进行不同的速率-失真权衡。
难以对速率和失真进行联合优化。如果没有进一步进行约束,就会很难解决高维度空间普遍出现的最优量化问题。为此,大多数现有的图像压缩方法的工作原理是将数据向量线性变换为合适的连续值表征,独立对其元素进行量化,然后使用无损熵代码对所得的离散表征进行编码。由于变换发挥核心作用,因此,这种方案称为变换译码。
例如,JPEG对像素块使用离散余弦变换,并且JPEG 2000使用多尺度正交小波分解。通常,对变换译码方法的三个组成部分,即变换、量化器和熵代码,分别进行优化(通常通过手动调整参数)。现代视频压缩标准,如HEVC、VVC和EVC,也使用变换表征来对预测后的残余信号进行译码。这若干种变换用于实现此目的,诸如离散余弦变换和离散正弦变换(discrete cosine transform,DCT、discrete sine transform,DST),以及低频不可分手动优化变换(low frequency non-separable manually optimized transform,LFNST)。
变分图像压缩
可以将可变自动编码器(Variable Auto-Encoder,VAE)框架视为非线性变换译码模型。变换过程主要可以分为四个部分:图3a示例性地示出了VAE框架。在图3a中,编码器310通过函数y=f(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之间的相似度越高,需要传输的辅助信息(sideinformation)的量就越大。辅助信息包括图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码流,并且
•使用解析后的数据对重建图像381进行重建380。
第二子网的目的是获取“y码流”的样本的统计特性(例如,y码流的样本之间的平均值、方差和相关性),使得第一子网对y码流进行的压缩更高效。第二子网生成第二码流“z码流”,其包括所述信息(例如,y码流的样本之间的平均值、方差和相关性)。
第二网络包括编码部分,该编码部分包括将量化潜在表征变换330成辅助信息z,将辅助信息z量化成量化辅助信息/>将量化辅助信息/>编码(例如,二值化)340成z码流。在本示例中,由算术编码(arithmetic encoding,AE)执行二值化。第二网络的解码部分包括算术解码(arithmetic decoding,AD)343,算术解码将输入z码流变换成解码量化辅助信息可能与/>相同,因为算术编码操作和算术解码操作是无损压缩方法。然后,将解码量化辅助信息/>变换350成解码辅助信息/>表示/>(例如,/>的样本的平均值,或样本值的方差等)的统计特性。然后,将解码潜在表征/>提供给上述算术编码器370和算术解码器372,以控制/>的概率模型。
图3a描述了VAE(变分自动编码器)的示例,其细节在不同的实现方式中可能不相同。例如,在特定实现方式中,可以存在附加组件,以更高效地获取第一码流的样本的统计特性。在一种这样的实现方式中,可能存在上下文模型构建器,其目标是提取y码流中的互相关信息。由第二子网提供的统计信息可以由AE(算术编码器)370组件和AD(算术解码器)372组件使用。
图3a在单个图中描绘编码器和解码器。如本领域技术人员所清楚知道,编码器和解码器可以嵌入并且经常嵌入相互不同的设备中。
图3b和图3c分别单独描绘了VAE框架的编码器组件和解码器组件。根据一些实施例,作为输入,编码器接收图像。输入图像可以包括一个或多个通道,诸如颜色通道或其它类型的通道,例如深度通道或运动信息通道等。编码器的输出(如图3b所示)是y码流和z码流。y码流是编码器的第一子网的输出,z码流是编码器的第二子网的输出。
类似地,在图3c中,将两个码流,即y码流和z码流,接收作为输入并且在输出端处生成重建(解码)图像如上所述,VAE可以拆分为执行不同动作的不同逻辑单元。图3b和图3c示例性地示出了这一点,以便图3b描绘参与对信号(如视频和所提供的编码信息)进行编码的组件。然后,该编码信息由图3c中描绘的解码器组件接收以例如进行编码。需要注意的是,用表示的编码器和解码器的组件在功能上可以对应于上述图3a中提到的组件。
具体地,如图3b所示,编码器包括编码器310,其将输入x变换成信号y,然后将信号y提供给量化器320。量化器320向算术编码模块370和超编码器330提供信息。超编码器330可以接收信号y而不是量化版本的信号。超编码器330将上文已经论述的z码流提供给超解码器350,该超解码器继而向算术编码模块370提供信息。如上文参考图3a论述的子步骤也可以是该编码器的一部分。
算术编码模块的输出是y码流。y码流和z码流是信号编码的输出,然后向解码过程提供(传输)该y码流和z码流。虽然单元310称为“编码器”,但是也可以将图3b中描述的完整子网称为“编码器”。编码的过程通常是指将输入转换为编码(例如,压缩)输出的单元(模块)。从图3b可以看出,单元310实际上可以视为整个子网的核心,因为它执行将输入x转换成y,y是x的压缩版本。可以例如通过应用神经网络或通常应用具有一个或多个层的任何处理网络来实现编码器310中的压缩。在这种网络中,可以通过包括下采样的级联处理来执行压缩,这减小了输入的尺寸和/或减少输入的通道数量。因此,编码器可以称为,例如,基于神经网络(neural network,NN)的编码器等。
图中的其余部分(量化单元、超编码器、超解码器、算术编码器/解码器)是提高编码过程的效率或负责将压缩输出y转换成一系列比特(码流)的部分。可以提供量化以通过有损压缩进一步压缩NN编码器310的输出。AE 370与用于配置AE 370的超编码器330和超解码器350组合可以执行二值化,其可以通过无损压缩进一步压缩量化信号。因此,也可以将图3b中的整个子网称为“编码器”。
大多数基于深度学习(Deep Learning,DL)的图像/视频压缩系统降低信号的维度数,然后将信号转换成二进制数字(比特)。例如,在VAE框架中,作为非线性变换的编码器将输入图像x映射到y,其中,y的宽度和高度小于x。由于y的宽度和高度更小,因此尺寸更小,信号的(大小)维度得到降低,因此,更容易压缩信号y。需要注意的是,一般而言,编码器不一定需要降低两个(或通常所有)维度的大小。相反,一些示例性实现方式可以提供仅降低一个(或通常一子组)维度的大小的编码器。
算术编码器和算术解码器是熵译码的具体实现方式。可以用任何其它熵译码方法取代AE和AD。此外,量化操作和对应的量化单元不一定存在和/或可以用另一种单元取代。
自回归上下文模型构建
潜在张量y的熵估计360可以通过额外应用如上论述的可选超先验模型进行改进。
量化潜在张量可以与超解码器的可选输出级联,并且通过自回归的方式估计量化潜在张量/>的熵。自回归熵模型360产生量化潜在张量/>的统计特性的估计。熵编码器370使用这些统计特性来创建张量/>的码流表征371。
自回归熵估计360可以包括以下子步骤:应用掩码卷积,将掩码潜在张量与超解码器ψ的输出级联,收集和熵模型构建,下文将结合图6解释这些子步骤。
在编码期间,的潜在张量元素同时可用,并且掩码卷积610保证译码序列的因果关系不会受到干扰。因此,可以对/>的每个元素并行地进行熵估计。掩码卷积620的输出张量由φ表示。
图5中描绘了可用于上下文模型构建的两种示例性掩码卷积,用于不同的内核尺寸,其中,内核的零值对潜在张量的看不见区域进行掩码。然而,本发明不限于3×3掩码卷积5010,也不限于5×5掩码卷积5020。可以使用任何m×n掩码卷积核,其中,m和n是正整数。
图7示例性地示出将3×3掩码卷积5010应用于第10个潜在张量元素。先前已经编码了第1个至第9个潜在张量元素。这种示例性掩码卷积使用第1个、第2个、第3个和第9个潜在张量元素。
熵解码器372对潜在张量及其统计特性不可知。因此,在解码期间,上下文模型构建始于空白的潜在张量,在这个潜在张量中,每个潜在张量元素均设置为零。通过使用初始零的统计数据(可选地与超解码器输出ψ630级联),熵解码器372恢复第一元素。通过使用先前解码的元素按顺序恢复/>的每个第i个元素。在解码期间,以自回归方式针对/>中的每个元素重复熵估计360和熵解码372的步骤。这导致总共有/>有序步骤。
在下一步骤中,掩码卷积φ620的输出张量和超解码器ψ630的可选输出可以在通道维度上级联,从而产生尺寸为的级联3D张量,其中,Cφ和Cψ分别是张量φ和ψ的通道数量。
可以通过收集过程650处理级联的结果,该收集过程可以包括内核尺寸为1×1并且具有非线性变换的一个或若干个卷积层。熵模型660产生量化潜在张量的统计特性的估计。熵编码器370使用这些统计特性来创建张量/>的码流表征371。
可以针对潜在空间特征张量的每个元素,按顺序执行如上文论述的上下文模型构建方法和熵编码。这在图12a中示例性地示出,该图按译码顺序以及潜在张量内的排序示出单个当前元素和所有先前元素。为了缩短解码时间,可以将潜在张量810拆划分为分块820,如图8示例性地描绘。可以并行处理所述分块。图12b中的示例性图示示出了九个分块,每个分块包括在每个分块内的按译码顺序的当前元素和先前元素。分块尺寸限制了哪些潜在张量元素可用于上下文模型构建。
图8中的示例将潜在张量的64个元素划分为四个分块821至824。因此,有四个共址元素,每个分块中有一个共址元素,可以并行处理这些共址元素,即元素18、22、50和54。通过应用示例性3×3掩码卷积核来处理这些元素。应用于第一分块821中的潜在张量元素18的掩码卷积考虑先前经编码的元素9、10、11和17;应用于第二分块822中的元素22的掩码卷积考虑第三分块823和第四分块824的元素13、14、15和21等。但是,在该实现方式中,无法在分块之间共享信息。例如,潜在张量元素21不接收第一分块821内的潜在张量元素的信息。
采用在分块之间共享信息的上下文模型构建
图10示例性地示出了包括在不同分块之间共享信息的获取上下文模型的过程。如上所述,为了可以进行并行化,将包括一个或多个元素的潜在空间特征张量划分为多个分块1010。每个分块包括一个或多个潜在张量元素。通过神经网络的一个或多个层处理这种多个分块。这些分块可以不重叠,并且多个分块中的每个分块可以具有相同的分块尺寸PH×PW,其中,PH是分块的高度,PW是分块的宽度。分块的总数量可以计算为:
而Npatch,H是垂直方向上的分块的数量,Npatch,W是水平方向上的分块的数量,De是编码器的下采样因子,H和W是图像的高度和宽度。分块形成Npatch,H×Npatch,W网格。划分为分块的潜在张量是具有维度Npatch,H×Npatch,W×Cφ×(PH·PW)的四维张量。
为了获取尺寸相同的分块,可以填充潜在张量,使得潜在张量的新尺寸是分块尺寸的倍数,然后将潜在张量划分为分块。例如,可以对张量的右侧和底部进行填充。元素的数量可以计算为:
其中,是上取整函数(ceiling function),其将x映射到大于或等于x的最小整数。然而,本发明并不限于这种填充。可替换地,或此外,特征元素的填充行和/或填充列可以分别添加在顶部和/或添加在左侧。
可以用零填充潜在张量。在图9的示例中,用一行零和一列零填充7×7潜在张量910,然后将经填充的潜在张量920拆划分为尺寸为4×4的四个分块930。由零填充只是一种示例性可选方案。可以通过任何值的比特或符号执行填充。可以通过重复潜在张量元素等进行填充。然而,用零填充具有一个优点,即被填充的特征元素不会影响卷积的结果,因此不会使卷积的结果失真。
给定原始图像尺寸H和W,以及分块尺寸,可以在解码器侧以与在编码器侧类似的方式计算应当进行填充的区域的尺寸。为了使解码器正常工作,除了H和W之外,可以通过将分块尺寸包括到y码流中以通过信号向解码器发送分块尺寸。
在将潜在张量划分为分块之前,可以对潜在张量进行量化,例如,可以将连续值数据映射到有限的一组离散值,这会引入误差,如自动编码器和无监督学习章节中进一步解释。
如上论述,可以将掩码卷积应用于分块内的每个元素。将掩码卷积独立应用于每个分块。如图5中示例性所示的这种掩码卷积核使用零按编码顺序(通常与解码顺序相同)对所述分块内的当前元素和后续元素进行卷积。这对尚未编码的潜在张量元素进行掩码;因此,后续的卷积操作作用于先前经编码的张量元素。掩码卷积的输出张量由φ表示。在编码过程中,所有潜在张量元素均可用,因此掩码卷积保证了译码序列的因果关系不会受到干扰。
图5中的空矩阵条目是指可以在神经网络训练期间进行学习的任意值。例如,应用于每个潜在张量元素y(i,j)的卷积操作5010意味着将3x3网格中的所有相邻元素乘以3x3内核5010的相应元素,并且将乘积相加以获取单个张量元素φ(i,j)。这里,i和j是每个分块中的相对空间索引。
对于K×L分块网格,获取张量φ(i,j,k,l)。这里,k和l是分块网格中的索引。该张量的元素表示在每个单个分块内的相应当前元素的邻接元素之间共享的信息。示例性符号φ(i,j,k,l)省略了通道维度Cφ并且是指五维张量φ的四个维度PH×PW×Npatch,H×Npatch,W,其中,分块的数量由两个索引k和l表示。
在掩码卷积对每个分块进行并行处理之后,可以将重排序块1030应用于被拆划分为分块1110的掩码潜在张量φ上。图11中示例性地示出了重排序操作。重排序块对潜在张量元素进行重新排列,使得来自不同分块的共址张量元素被投影到相同的空间平面上。重排序允许将卷积等数学运算高效地应用于共址张量元素。图11中的示例将四个分块1110的共址元素重排序成经重排序的分块1120至1132中。
在获取可选的超先验模型的第一步骤中,可以将超编码器320应用于潜在张量以获取超潜在张量。可以将超潜在张量编码成第二码流,例如,z码流341。可以对第二码流进行熵解码,并且通过对超潜在张量进行超解码来获取超解码器输出。获取超先验模型的方式可以如变分图像压缩章节中所述。然而,本发明并不限于本示例。
类似地,可选的超解码器ψ的输出可以划分为多个分块1011。可以通过重排序块1031对超解码器输出分块进行重排序。可以将超解码器输出分块与潜在张量的分块进行级联。在这种情况下,在已经执行了重排序的情况下,对潜在张量的经重排序的分块和超解码器输出的经重排序的分块进行级联。在经重排序的张量φ和ψ的通道维度上进行的级联1040产生尺寸为Npatch,H×Npatch,W×(Cφ+Cψ)×(PH·PW)的级联4D张量,其中,Cφ和Cψ分别是张量φ和ψ的通道的数量。
为了在分块之间共享信息1050以进行熵估计,通过应用卷积核来处理在一子组分块中共址的潜在张量的一组元素。基于经处理的一组元素,获取用于对当前元素进行编码的概率模型。一子组分块可以在所有分块的Npatch,H×Npatch,W网格内形成K×M网格,K和M是正整数,K和M中的至少一个大于1。
第一示例性实施例中的一组元素可以具有对应于K×M子组分块的维度K×M。该组可以包括在一子组分块内的每个分块中的一个元素,并且该一个元素是当前元素(当前处理的元素)。该组可能已经通过形成当前元素1130的经重排序的分块的上述重排序进行了重排序。
为了在分块之间共享信息,卷积核可以是二维B×C卷积核,其中,B和C是正整数,B和C中的至少一个大于1,其应用于一组当前元素1130。B和C可以分别与K和M相同,也可以不同于K和M。二维B×C卷积核可以应用作为具有非线性变换的多层二维B×C卷积神经网络的一部分,其应用于级联张量的前三个维度。换言之,二维B×C卷积核可以应用于2D特征元素,每个特征元素属于相应分块。
在图11的示例中,二维K×K卷积核应用于当前元素18、22、50和54的经重排序的分块。
卷积核的尺寸不限于经重排序的张量的维度。内核可能比一组元素更大,可以按类似于潜在张量的方式填充该一组元素,如上文所解释。
例如,具有一子组4×3个分块和每个分块的对应一组共址元素(例如,第一元素),卷积核可以具有任意的B×C,其中,B>1并且C>1,例如,3×3,3×5等。此外,也可以是B=1并且C>1或B>1并且C=1,这使得能够水平或垂直共享信息。
通过应用这种二维卷积,在分块之间共享信息,如图13a中示例性所示。在本示例中,3×3卷积应用于一组3×3当前元素。因此,在中心处的分块的当前元素接收每个相应当前元素的四个邻接元素的信息。如果不进行额外的卷积,元素将接收其自身的四个邻接分块的信息。所考虑的邻接元素的数量取决于掩码卷积的维度。在本示例中,使用3×3掩码卷积核5010。
第二示例性实施例中的一组元素可以具有对应于K×M子组分块的维度L×K×M。该组可以包括在一子组分块内的每个分块中的L元素,包括当前元素和一个或多个先前经编码的元素,L是大于1的整数。该组可能已经通过形成当前元素和先前元素1140的L个经重排序的分块的上述重排序进行了重排序,如图11中示例性所示。第一示例性实施例可以视为在空域中(在当前编码的多个分块的元素上)执行卷积。另一方面,第二示例性实施例可以视为在空域和时域(或时空域)中(在当前编码的一子组分块的元素上以及在先前经编码的一子组分块的“历史”元素上)执行卷积。
为了在分块之间共享信息,第二示例性实施例中的卷积核通常可以是三维A×B×C卷积核,其中,A是大于1的整数,B和C是正整数并且B和C中的至少一个大于1,其应用于一组当前元素1140。B和C可以与K和M相同,也可以不同于K和M。可以将三维A×B×C卷积核应用于级联张量的所有四个维度。可以由多层卷积神经(子)网络跟进三维A×B×C卷积核的应用,该网络可以包括一个或多个三维A×B×C卷积核和/或一个或多个具有非线性变换的二维B×C卷积核。将三维A×B×C卷积核应用于级联4D张量的四个维度,将二维B×C卷积核应用于级联4D张量的前三个维度。
在图11的示例中,三维L×K×K卷积核应用于L个经重排序的分块,包括当前元素18、22、50和54的分块,先前元素17、21、49和53的第一分块,先前元素12、16、44和48的第二分块,等等。
卷积核的尺寸不限于经重排序的张量的维度。内核可能比一组元素更大,可以按类似于潜在张量的方式填充该一组元素,如上文所解释。
例如,具有12×8子组分块的一组元素可以具有64×12×8个元素的维度,其中,每个分块的尺寸为8×8,总共64个元素。
对于最后2个维度,卷积核可以是任意的,如结合第一示例性实施例所解释。然而,对于本示例,对于第一维度,内核尺寸应当大于1,并且小于或等于64(分块内的元素的数量)。
此外,也可以是B=1并且C>1或B>1并且C=1,这使得能够水平或垂直共享信息。在A=1的情况下,附加维度中将不会共享任何信息。因此,对于在A=1的情况下,第二示例性实施例与第一示例性实施例相同。
通过应用这种三维卷积,在分块之间共享信息,如图13b中示例性所示。在本示例中,将5×3×3卷积应用于一组元素,该一组元素包括3×3子组当前元素和四个3×3子组先前经译码的元素。因此,在中心处的分块的当前元素接收每个相应当前元素中的四个邻接元素以及每个相应先前元素中的四个邻接元素的信息。如果不进行额外的卷积,元素将接收其自身的四个邻接分块的信息。所考虑的邻接元素的数量取决于掩码卷积的维度。在本示例中,使用3×3掩码卷积核5010。
可以对用于神经网络的一个或多个层的卷积核进行训练,如自动编码器和无监督学习章节中所论述。例如,在训练阶段,对内核进行训练并且在推理阶段期间应用经训练的内核。在推理阶段期间也可以执行在线训练。换言之,本发明不限于任何特定的训练方法。通常,训练可能有助于针对特定的应用调整神经网络。
历史存储器1060可以存储先前经编码的元素。可以向信息共享过程1050提供这些先前经编码的元素的信息。这可能尤其与上述第二示例性实施例相关,该第二示例性实施例还处理先前经译码(经编码和/或经解码)的元素中的元素。
在信息共享之后,可以例如通过收集1070和熵模型构建1080对元素进行进一步处理,以获取用于当前元素进行编码的熵模型,对如上文所解释。
可以使用获取的用于进行熵编码的概率模型将当前元素编码到第一码流(例如,图6的y码流)中。熵编码的具体实现方式可以是例如在变分图像压缩章节中论述的算术编码。
可以使用(i)当前待编码的共址元素的信息(第一示例性实施例)或(ii)当前的共址元素的信息和先前已经编码的共址元素的信息(第二示例性实施例)来选择用于对当前元素进行编码的概率模型。术语“共址在这里是指相应元素在相应分块内具有相同的相对空间坐标。
可以根据(i)关于先前经编码的元素的信息和/或(ii)穷尽搜索和/或(iii)第一码流的特性来执行概率模型的所述选择。
关于先前经编码的元素的信息可以包括统计特性,例如,方差(或另一个统计矩),也可以包括之前已经处理的元素的数量。
在穷尽搜索中,编码器可以尝试每个可选方案,即是否包括关于先前经编码的元素的信息,并且可以测量性能。可以通过信号向解码器发送采用哪种可选方案的指示。
第一码流的特性可以包括预定义的目标速率或框架尺寸。可以预定义采用哪种可选方案的一组规则。在这种情况下,解码器可以知道这些规则,因此不需要额外的信令。
可以针对多个分块中的每个分块,并行执行卷积核的应用(可包括掩码卷积和/或信息共享)以及对当前元素进行熵编码。此外,在编码期间,所有潜在张量元素均可用,因此可以针对潜在张量的每个元素并行执行信息共享,因为掩码卷积可以保证译码序列的正确排序。
可以将使用在分块之间共享的信息的概率模型应用于对潜在张量进行熵编码,从如上文论述的自动编码卷积神经网络获取该潜在张量。
为了对来自第一码流中的潜在空间特征张量进行解码,使用零对潜在张量进行初始化,因为解码器对潜在张量及其统计特性不可知。为了可以在编码器侧进行并行化,将包括一个或多个元素的潜在空间特征张量划分为多个分块1010,每个分块包括一个或多个潜在张量元素。通过神经网络的一个或多个层处理这种多个分块。可以从第一码流提取分块尺寸。这些分块可以不重叠,并且多个分块中的每个分块的分块尺寸PH×PW可以相同。
为了获取尺寸相同的分块,可以填充潜在张量,使得潜在张量的新尺寸是分块尺寸的倍数,然后将潜在张量划分为分块。可以类似于上文所解释的编码侧来执行填充。可以用零填充潜在张量。类似于编码侧,由零填充仅仅是一种示例性可选方案。可以通过任何值的比特或符号执行填充,也可以通过重复潜在张量元素执行填充。给定原始图像尺寸H和W,以及可能已经从第一码流提取到的分块尺寸,可以在解码器侧以与在编码器侧类似的方式计算应当填充的区域的尺寸。
可以将重排序块1030应用于拆划分为分块1110的潜在张量。重排序块对潜在张量元素进行重新排列,使得来自不同分块的共址张量元素被投影到相同的空间平面上,这在图11中示例性地示出。重排序简化了数学运算的应用,例如对共址张量元素应用卷积。图11中的示例将四个分块1110的共址元素重排序成经重排序的分块1120至1132。
可以对来自第二码流的超潜在张量进行熵解码。可以将获取的超潜在张量超解码成超解码器输出ψ。
对应于编码侧,可以将可选的超解码器的输出ψ划分为多个分块1011,并且可以通过重排序块1031对超解码器输出分块进行重排序。可以将超解码器输出分块与潜在张量的分块进行级联。如果已经执行了重排序,则对潜在张量的经重排序的分块和超解码器输出的经重排序的分块进行级联。在经重排序的张量φ和ψ的通道维度上进行的级联1040产生尺寸为Npatch,H×Npatch,W×(Cφ+Cψ)×(PH·PW)的级联4D张量,其中,Cφ和Cψ分别是张量φ和ψ的通道的数量。
为了在分块之间共享信息1050以进行熵估计,通过应用卷积核来处理在一子组分块中共址的潜在张量的一组元素。基于经处理的一组元素,获取用于对当前元素进行编码的概率模型。
卷积核可以是如在第一示例性实施例的空间方法中定义的二维卷积核,可以将其应用于具有如在编码侧定义的维度的一子组分块内的一组元素。所述二维卷积核可以是具有非线性变换的多层二维卷积神经网络的一部分。
卷积核可以是如在第二示例性实施例的时空方法中定义的三维卷积核,可以将其应用于具有如在编码侧定义的维度的一子组分块内的一组元素。可以由多层卷积神经(子)网络跟进三维卷积核的应用,如上文针对编码侧所解释。
详细解释了针对编码侧的通过根据空间方法或时空方法应用卷积核在分块之间共享信息的过程,其工作原理类似于在解码侧。
可以对用于神经网络的一个或多个层的卷积核进行训练,如自动编码器和无监督学习章节中所论述。如上所述,本发明不限于任何特定的训练方法。在训练阶段期间,可以执行编码和解码,以便确定用于进行自回归熵估计的自动编码神经网络的权重和/或神经网络的权重。可以一起训练也可以独立训练用于进行熵估计的自动编码神经网络和神经网络。在进行训练之后,可以通过信号向解码器发送获取的权重。在进行连续微调或在线训练的情况下,可以在编码期间对编码器概率模型进行(进一步)训练,并且可以例如定期通过信号向解码器额外发送概率模型的更新后的权重。可以将权重进行压缩(量化和/或熵译码),然后将其包括到码流中。可以按类似于针对潜在张量的方式对针对权重张量的熵译码进行优化。
历史存储器1060可以存储先前经编码的元素。可以向信息共享过程1050提供这些先前经编码的元素的信息。这可能尤其与上述时空方法相关,该时空方法还处理先前经译码(经编码和/或经解码)的元素中的元素。
可以使用获取的用于进行熵解码的概率模型对来自第一码流(例如,图6的y码流)的当前元素进行解码。熵解码的具体实现方式可以是例如在变分图像压缩章节中论述的算术编码。
可以使用(i)当前待解码的共址元素的信息(空间方法,二维卷积核)或(ii)当前的共址元素的信息和先前已经解码的共址元素的信息(时空方法,三维卷积核)确定用于对当前元素进行编码的概率模型。
可以根据(i)关于先前经编码的元素的信息和/或(ii)第一码流的特性进行概率模型的所述确定。
关于先前经编码的元素的信息可以包括统计特性,例如,方差(或另一个统计矩),也可以包括之前已经处理的元素的数量。
如果可能已经在编码器处执行了穷尽搜索,则解码器可以接收已经采用哪种可选方案的指示。
第一码流的特性可以包括预定义的目标速率或框架尺寸。可以预定义采用哪种可选方案的一组规则。在这种情况下,解码器可以知道这些规则。
可以针对多个分块中的每个分块,并行执行卷积核的应用(可包括信息共享)以及对当前元素进行熵解码。在解码期间,按照顺序对单个分块内的每个元素重复进行自回归熵估计360和熵解码372。
可以将使用在分块之间共享的信息的概率模型应用于对潜在张量进行熵解码,可以通过自动解码卷积神经网络处理该潜在张量,以获取如上文论述的图像数据。
图片译码内的实现方式
编码器20可用于接收图片17(或图片数据17),例如,形成视频或视频序列的一连串图片中的图片。接收到的图片或图片数据还可以是预处理图片19(或预处理图片数据19)。为了简单起见,以下描述涉及图片17。图片17还可以称为当前图片或待译码图片(尤其是在视频译码中,以将当前图片与同一视频序列(也就是同样包括当前图片的视频序列)中的其它图片(例如,先前经编码和/或经解码的图片)区分开)。
(数字)图片是或可以视为由具有强度值的样本(sample)组成的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图片元素的简称)。阵列或图片的在水平方向和垂直方向(或轴线)上的样本的数量限定了图片的尺寸和/或分辨率。为了表示颜色,通常采用3个颜色分量,即图片可以表示为或可以包括3个样本阵列。在RGB格式或颜色空间中,图片包括对应的红色、绿色和蓝色样本阵列。但是,在视频译码中,每个像素通常以亮度格式和色度格式或颜色空间表示,例如,YCbCr,其包括由Y表示的亮度分量(有时也用L表示)以及由Cb和Cr表示的2个色度分量。亮度(luminance,简写为luma)分量Y表示亮度或灰度级强度(例如,在灰度等级图片中两者相同),而2个色度(chrominance,简写为chroma)分量Cb和Cr表示色度或颜色信息分量。因此,YCbCr格式的图片包括由亮度样本值(Y)组成的亮度样本阵列,以及由色度值(Cb和Cr)组成的2个色度样本阵列。RGB格式的图片可以转换或变换成YCbCr格式,反之亦然。该过程也称为颜色变换或转换。如果图片是单色图片,则该图片可以只包括亮度样本阵列。因此,图片可以是例如单色格式的亮度样本阵列,也可以是4:2:0颜色格式、4:2:2颜色格式和4:4:4颜色格式的亮度样本阵列和两个对应的色度样本阵列。
在硬件和软件中的实现方式
下文描述在硬件和软件中的一些另外的实现方式。
参考图14至图17进行描述的任何编码设备均可以提供装置,以便对潜在张量进行熵编码。在这些示例性设备中的任何一种设备内的处理电路用于将潜在张量划分为多个分块,每个分块包括一个或多个元素,通过神经网络的一个或多个层处理多个分块,其中,包括通过应用卷积核处理在一子组分块中共址的一组元素,基于经处理的一组元素来获取用于对潜在张量的当前元素进行熵编码的概率模型。
在图14至图17中的任何一个中的解码设备均可以包含处理电路,该处理电路适用于执行解码方法。如上文描述的方法包括使用零对潜在张量进行初始化,将潜在张量划分为多个分块,每个分块包括一个或多个元素,通过神经网络的一个或多个层处理多个分块,包括通过应用卷积核处理在一子组分块中共址的一组元素,基于经处理的一组元素来获取用于对潜在张量的当前元素进行熵解码的概率模型。
总结,描述了用于对潜在张量进行熵编码和解码的装置和方法,其中,包括将潜在张量划分为分块,通过神经网络的一个或多个层处理来自不同分块的一组元素来获取用于对潜在张量的当前元素进行熵编码的概率模型。通过应用卷积核对一组元素进行处理实现在划分的分块之间共享信息。
在视频译码系统10的以下实施例中,基于图14和图15对视频编码器20和视频解码器30进行描述。
图14是示出可以利用本申请技术的示例性译码系统10,例如,视频译码系统10(或简称为译码系统10)的示意性方块图。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示设备的示例,该设备可以用于执行根据本申请中描述的各种示例的技术。
如图14中所示,译码系统10包括源设备12,该源设备用于将经编码的图片数据21例如提供给目的地设备14,以对经编码的图片数据13进行解码。
源设备12包括编码器20,并且可以另外(即,可选地)包括图片源16、预处理器(或预处理单元)18(例如,图片预处理器18)和通信接口或通信单元22。
图片源16可以包括或可以是:任何类型的图片捕获设备,例如,用于捕获真实世界图片的摄像机;和/或任何类型的图片生成设备,例如,用于生成计算机动画图片的计算机图形处理器;或用于获取和/或提供真实世界图片、计算机生成图片(例如,屏幕内容、虚拟现实(virtual reality,VR)图片)和/或它们的任何组合(例如,增强现实(augmentedreality,AR)图片)的任何类型的其它设备。图片源可以是任何类型的存储任一上述图片的存储器或存储设备。
为了区分预处理器18以及由预处理单元18执行的处理,图片或图片数据17还可以称为原始图片或原始图片数据17。
预处理器18用于接收(原始)图片数据17并对图片数据17执行预处理,以获取经预处理的图片19或经预处理的图片数据19。由预处理器18执行的预处理可以包括修整、颜色格式转换(例如,从RGB转换成YCbCr)、色彩校正或去噪等。可以理解的是,预处理单元18可以是可选组件。
视频编码器20用于接收经预处理的图片数据19并提供经编码的图片数据21。
源设备12中的通信接口22可以用于接收经编码的图片数据21,通过通信信道13将经编码的图片数据21(或对该经编码的图片数据进一步处理后得到的数据)发送到另一设备,例如,目的地设备14或任何其它设备,以便进行存储或直接重建。
目的地设备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均可以用作如图14中的从源设备12指向目的地设备14的通信信道13的箭头所表示的单向通信接口,也可以用作双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认和交换与通信链路和/或数据传输(例如,经编码的图片数据传输)相关的任何其它信息等。
解码器30用于接收经编码的图片数据21并提供经解码的图片数据31或经解码的图片31。
目的地设备14中的后处理器32用于对经解码的图片数据31(也称为经重建的图片数据)(例如,经解码的图片31)进行后处理,以获取经后处理的图片数据33(例如,经后处理的图片33)。由后处理单元32执行的后处理可以包括颜色格式转换(例如,从YCbCr转换成RGB)、色彩校正、修整或重采样,或者任何其它处理,以制备经解码的图片数据31以供显示设备34等显示,等等。
目的地设备14中的显示设备34用于接收经后处理的图片数据33,以便向用户或观看者等显示图片。显示设备34可以是或可以包括任何类型的用于呈现经重建的图片的显示器,例如,集成式或外部显示器或显示屏。例如,显示器可以包括液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(liquid crystal on silicon,LCoS)显示器、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
译码系统10还包括训练引擎25。训练引擎25用于对编码器20(或编码器20内的模块)或解码器30(或解码器30内的模块)进行训练以处理输入图片或生成如上文论述的用于熵编码的概率模型。
尽管图14将源设备12和目的地设备14作为单独的设备进行描绘,但是设备的实施例还可以包括这两种设备或这两种功能,即源设备12或对应的功能以及目的地设备14或对应的功能。在这些实施例中,可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现源设备12或对应的功能以及目的地设备14或对应的功能。
根据描述,对技术人员而言显而易见的是,如图14所示的源设备12和/或目的地设备14中具有的和(准确)划分的功能或不同单元的功能可能随实际设备和应用而异。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30),或编码器20和解码器30两者均可通过如图15所示的处理电路实现,诸如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑部件、硬件、视频译码专用处理器或其任意组合。可以通过处理电路46实现编码器20,以体现结合图3b的编码器和/或本文描述的任何其它编码器系统或子系统论述的各种模块。可以通过处理电路46实现解码器30,以体现结合图3c的解码器和/或本文描述的任何其它解码器系统或子系统论述的各种模块。处理电路可以用于执行如下文论述的各种操作。如图17所示,如果所述技术部分地在软件中实现,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器执行硬件中的该指令,以实现本发明的技术。视频编码器20和视频解码器30中的任一个可以作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中,例如,如图15所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持式设备或固定设备,例如,笔记本或膝上型电脑、移动电话、智能电话、平板或平板电脑、摄像机、台式计算机、机顶盒、电视、显示设备、数字媒体播放器、视频游戏机、视频流设备(诸如内容业务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以不使用操作系统,也可以使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以配备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在某些情况下,图14中示出的视频译码系统10仅仅是示例,本申请的技术可适用于不一定包括在编码设备与解码设备之间的任何数据通信的视频译码设置(例如,视频编码或视频解码)。在其它示例中,从本地存储器检索数据,通过网络流式传输该数据,等等。视频编码设备可以对数据进行编码并且将数据存储到存储器中和/或视频解码设备可以从存储器检索数据并且对数据进行解码。在一些示例中,由相互不通信而是仅仅将数据编码到存储器和/或从存储器检索数据并对数据进行解码的设备执行编码和解码。
为了便于描述,本文(例如)参考由ITU-T视频编码专家组(Video Coding ExpertsGroup,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。
图16是根据本发明实施例的视频译码设备400的示意图。视频译码设备400适用于实现如本文中描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器(诸如图14的视频解码器30)或编码器(诸如图14的视频编码器20)。
视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,CPU)430;用于传输数据的发送单元(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变换到不同状态。可选地,译码模块470实现为存储在存储器460中并由处理器430执行的指令。
存储器460可以包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。
图17是根据示例性实施例的装置500的简化框图,该装置可用作图14中的源设备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,其进一步包括执行本文描述的方法(包括使用具有一子组部分可更新的层的神经网络进行编码和解码)的视频译码应用程序。
装置500还可以包括一个或多个输出设备,诸如显示器518。在一个示例中,显示器518可以是组合了显示器与触敏元件的触敏显示器,其中,该触敏元件能够用于感测触摸输入。显示器518可以通过总线512耦合到处理器502。
虽然装置500中的总线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)、或红外线、无线电和微波等无线技术从网站、服务器或其它远程源进行传输,则同轴缆线、光纤缆线、双绞线和DSL、或红外线、无线电和微波等无线技术也包括在上述介质的定义中。但是,应当理解的是,计算机可读存储介质和数据存储介质并不包括连接件、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包括压缩光盘(compact disc,CD)、激光光盘、光学光盘、数字多功能光盘(digital versatiledisc,DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
指令可以通过一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integratedcircuit,ASIC)、一个或多个现场可编程逻辑阵列(field programmable logic array,FPGA)或其它同等集成逻辑电路或离散逻辑电路等一或多个处理器来执行。因此,本文使用的术语“处理器”可以指任何上述结构或任何适合于实现本文所描述的技术的任何其它结构。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入组合编解码器中。此外,完全可以在一个或多个电路或逻辑元件中实现这些技术。
本发明中的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如,芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开的技术的设备的各个功能方面,但是这些组件、模块或单元不一定需要由不同的硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
Claims (41)
1.一种对潜在张量(4020)进行熵编码的方法,其特征在于,所述方法包括:
将所述潜在张量(4020)划分为(1010)多个分块(1110),其中,每个分块包括一个或多个元素;
通过神经网络的一个或多个层处理所述多个分块(1110),包括通过应用卷积核来处理(1050)一子组分块中的一组共址元素;
基于所述经处理的一组元素来获取对所述潜在张量(4020)的当前元素进行所述熵编码的概率模型(1080)。
2.根据权利要求1所述的方法,其特征在于,
所述一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;
所述一组元素具有对应于所述K×M分块网格的维度K×M并且包括所述一子组分块内的每个分块中的一个元素,所述一个元素是所述当前元素;
所述卷积核是二维B×C卷积核,其中,B和C是正整数,B和C中的至少一个大于1。
3.根据权利要求1所述的方法,其特征在于,
所述一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;
所述一组元素具有对应于所述K×M分块网格的维度L×K×M并且包括每个分块中的L个元素,其中,所述L个元素包括所述当前元素以及一个或多个先前已编码的元素,L是大于1的整数;
所述卷积核是三维A×B×C卷积核,其中,A是大于1的整数,B和C是正整数,B和C中的至少一个大于1。
4.根据权利要求3中任一项所述的方法,其特征在于,所述方法还包括:将所述先前已编码的元素存储在历史存储器(1060)中。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
在进行所述处理之前,通过根据所述一子组分块内的相应分块位置将所述共址元素投影到相同的空间平面上,对包括在所述一子组分块中的所述一组共址元素中的元素进行重排序(1030)。
6.根据权利要求1至5中任一项所述的方法,其特征在于,可在所述神经网络内对所述卷积核进行训练。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
将掩码卷积(1020)应用于包括在所述多个分块(1110)的分块中的每个所述元素,即使用零按编码顺序对所述分块内的所述当前元素和后续元素进行卷积。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
使用所述获取的概率模型(1080)将所述当前元素熵编码到第一码流(371)中。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:将所述分块尺寸包括到所述第一码流(371)中。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述多个分块(1110)内的分块不重叠,并且所述多个分块(1110)中的每个分块具有相同的分块尺寸。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
填充所述潜在张量(4020),使得所述潜在张量(4020)的新尺寸是所述相同的分块尺寸的倍数,然后将所述潜在张量(4020)划分为所述多个分块(1110)。
12.根据权利要求11所述的方法,其特征在于,所述潜在张量(4020)由零填充。
13.根据权利要求1至12中任一项所述的方法,其特征在于,所述方法还包括:对所述潜在张量(4020)进行量化,然后划分为分块(1110)。
14.根据权利要求8至13中任一项所述的方法,其特征在于,所述方法还包括:使用以下各项来选择进行所述熵编码的所述概率模型(1080):
-当前待编码的共址元素的信息,或
-当前的共址元素的信息以及先前已经编码的共址元素的信息。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:根据以下各项来选择所述概率模型(1080):
-关于先前已编码的元素的信息,和/或
-穷尽搜索,和/或
-所述第一码流(371)的特性。
16.根据权利要求1至15中任一项所述的方法,其特征在于,所述方法还包括:
对所述潜在张量(1110)进行超编码来获取超潜在张量;
将所述超潜在张量熵编码到第二码流(341)中;
对所述第二码流(341)进行熵解码;通过对所述超潜在张量进行超解码来获取超解码器输出(630)。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
将所述超解码器输出(630)划分为(1011)多个超解码器输出分块,其中,每个超解码器输出分块包括一个或多个超解码器输出元素;
对所述多个超解码器输出分块中的超解码器输出分块和所述多个分块中的对应分块进行级联(1040),然后进行所述处理。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
通过将所述共址元素投影到所述相同的空间平面上,对包括在所述一子组分块中的所述一组共址元素中的所述超解码器输出元素进行重排序(1031)。
19.根据权利要求1至18中任一项所述的方法,其特征在于,对所述多个分块(1110)中的每个分块,并行执行以下步骤中的一个或多个步骤:
-应用所述卷积核,以及
-对所述当前元素进行熵编码。
20.一种对图像数据进行编码的方法,其特征在于,所述方法包括:
通过使用自动编码卷积神经网络(310)处理所述图像数据(4010)来获取潜在张量(4020);使用根据权利要求1至19生成的概率模型(1080)将所述潜在张量(4020)熵编码成码流。
21.一种对潜在张量(4020)进行熵解码的方法,其特征在于,所述方法包括:
使用零对所述潜在张量(4020)进行初始化;
将所述潜在张量(4020)划分为(1010)多个分块(1110),其中,每个分块包括一个或多个元素;
通过神经网络的一个或多个层处理所述多个分块(1110),包括通过应用卷积核处理(1050)一子组分块中的一组共址元素;
基于所述经处理的一组元素来获取对所述潜在张量(4020)的当前元素进行所述熵解码的概率模型(1080)。
22.根据权利要求21所述的方法,其特征在于,
所述一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;
所述一组元素具有对应于所述K×M分块网格的维度K×M并且包括在所述一子组分块的每个分块中的一个元素,并且所述一个元素是所述当前元素;
所述卷积核是二维B×C卷积核,其中,B和C是正整数,B和C中的至少一个大于1。
23.根据权利要求21所述的方法,其特征在于,
所述一子组分块形成K×M分块网格,其中,K和M是正整数,K和M中的至少一个大于1;
所述一组元素具有对应于所述K×M分块网格的维度L×K×M并且包括每个分块中的L个元素,其中,所述L个元素包括所述当前元素以及一个或多个先前已编码的元素,L是大于1的整数;
所述卷积核是三维A×B×C卷积核,其中,A是大于1的整数,B和C是正整数,B和C中的至少一个大于1。
24.根据权利要求23中任一项所述的方法,其特征在于,所述方法还包括:将所述先前已解码元素存储在历史存储器(1060)中。
25.根据权利要求21至24中任一项所述的方法,其特征在于,所述方法还包括:
在进行所述处理之前,通过根据所述一子组分块内的相应分块位置将所述共址元素投影到相同的空间平面上,对包括在所述一子组分块中的所述一组共址元素中的元素进行重排序(1030)。
26.根据权利要求21至25中任一项所述的方法,其特征在于,可在所述神经网络内对所述卷积核进行训练。
27.根据权利要求21至26中任一项所述的方法,其特征在于,所述方法还包括:
使用所述获取的概率模型(1080)对来自第一码流(371)的所述当前元素进行熵解码。
28.根据权利要求27所述的方法,其特征在于,所述方法还包括:从所述第一码流(371)提取所述分块尺寸。
29.根据权利要求21至28中任一项所述的方法,其特征在于,所述多个分块(1110)内的分块不重叠,并且所述多个分块(1110)中的每个分块具有相同的分块尺寸。
30.根据权利要求29所述的方法,其特征在于,所述方法还包括:
填充所述潜在张量(4020),使得所述潜在张量(4020)的新尺寸是所述相同的分块尺寸的倍数,然后将所述潜在张量(4020)划分为所述多个分块(1110)。
31.根据权利要求30所述的方法,其特征在于,所述潜在张量(4020)由零填充。
32.根据权利要求27至31中任一项所述的方法,其特征在于,还包括使用以下各项来确定进行所述熵解码的所述概率模型(1080):
-当前待解码的共址元素的信息,或
-当前共址元素的信息以及先前已经解码的共址元素的信息。
33.根据权利要求32所述的方法,其特征在于,所述方法还包括:根据以下各项来确定所述概率模型(1080):
-关于先前已解码元素的信息,和/或
-所述第一码流(371)的特性。
34.根据权利要求21至33中任一项所述的方法,其特征在于,所述方法还包括:
对来自第二码流(341)的超潜在张量进行熵解码;以及
通过对所述超潜在张量进行超解码来获取超解码器输出(630)。
35.根据权利要求34所述的方法,其特征在于,所述方法还包括:
将所述超解码器输出(630)划分为(1011)多个超解码器输出分块,其中,每个超解码器输出分块包括一个或多个超解码器输出元素;
对所述多个超解码器输出分块中的超解码器输出分块和所述多个分块中的对应分块进行级联(1040),然后进行所述处理。
36.根据权利要求35所述的方法,其特征在于,所述方法还包括:
通过将所述共址元素投影到所述相同的空间平面上,对包括在所述一子组分块中的所述一组共址元素中的所述超解码器输出元素进行重排序(1031)。
37.根据权利要求21至36中任一项所述的方法,其特征在于,针对所述多个分块(1110)中的每个分块,并行执行以下步骤中的一个或多个步骤:
-应用所述卷积核,以及
-对所述当前元素进行熵解码。
38.一种用于对图像数据进行解码的方法,其特征在于,所述方法包括:
根据权利要求21至37对来自码流的潜在张量(4020)进行熵解码;以及
通过使用自动解码卷积神经网络(380)处理所述潜在张量(4020)来获取所述图像数据(4010)。
39.一种计算机程序,其特征在于,所述计算机程序存储在非瞬时性介质上并且包括代码指令,当在一个或多个处理器上执行时,所述代码指令使所述一个或多个处理器执行根据权利要求1至38中任一项所述的方法的步骤。
40.一种用于对潜在张量进行熵编码的装置,其特征在于,所述装置包括:
处理电路,所述处理电路用于:
将所述潜在张量(4020)划分为(1010)多个分块(1110),每个分块包括一个或多个元素;
通过神经网络的一个或多个层处理所述多个分块(1110),其中,包括通过应用卷积核处理(1050)一子组分块中的一组共址元素;
基于所述一组经处理元素来获取用于对所述潜在张量(4020)的当前元素进行所述熵编码的概率模型(1080)。
41.一种用于对潜在张量进行熵解码的装置,其特征在于,所述装置包括:
处理电路,所述处理电路用于:
使用零对所述潜在张量进行初始化;
将所述潜在张量(4020)划分为(1010)多个分块(1110),每个分块包括一个或多个元素;
通过神经网络的一个或多个层处理所述多个分块(1110),其中,包括通过应用卷积核处理(1050)一子组分块中的一组共址元素;
基于所述一组经处理元素来获取用于对所述潜在张量(4020)的当前元素进行所述熵解码的概率模型(1080)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/065394 WO2022258162A1 (en) | 2021-06-09 | 2021-06-09 | Parallelized context modelling using information shared between patches |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117501696A true CN117501696A (zh) | 2024-02-02 |
Family
ID=76444399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180099227.4A Pending CN117501696A (zh) | 2021-06-09 | 2021-06-09 | 使用在分块之间共享的信息进行并行上下文建模 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240078414A1 (zh) |
EP (1) | EP4285283A1 (zh) |
CN (1) | CN117501696A (zh) |
BR (1) | BR112023025919A2 (zh) |
WO (1) | WO2022258162A1 (zh) |
-
2021
- 2021-06-09 CN CN202180099227.4A patent/CN117501696A/zh active Pending
- 2021-06-09 BR BR112023025919A patent/BR112023025919A2/pt unknown
- 2021-06-09 EP EP21732240.3A patent/EP4285283A1/en active Pending
- 2021-06-09 WO PCT/EP2021/065394 patent/WO2022258162A1/en active Application Filing
-
2023
- 2023-11-13 US US18/507,949 patent/US20240078414A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240078414A1 (en) | 2024-03-07 |
BR112023025919A2 (pt) | 2024-02-27 |
WO2022258162A1 (en) | 2022-12-15 |
EP4285283A1 (en) | 2023-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230336758A1 (en) | Encoding with signaling of feature map data | |
US20230336784A1 (en) | Decoding and encoding of neural-network-based bitstreams | |
US20230336759A1 (en) | Decoding with signaling of segmentation information | |
US20230353764A1 (en) | Method and apparatus for decoding with signaling of feature map data | |
US20230336776A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
US20240064318A1 (en) | Apparatus and method for coding pictures using a convolutional neural network | |
US20230336736A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
TW202318265A (zh) | 基於注意力的圖像和視訊壓縮上下文建模 | |
WO2023172153A1 (en) | Method of video coding by multi-modal processing | |
WO2023177317A1 (en) | Operation of a neural network with clipped input data | |
WO2023177318A1 (en) | Neural network with approximated activation function | |
CN116939218A (zh) | 区域增强层的编解码方法和装置 | |
WO2023085962A1 (en) | Conditional image compression | |
US20240078414A1 (en) | Parallelized context modelling using information shared between patches | |
TWI834087B (zh) | 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品 | |
CN118120233A (zh) | 基于注意力的图像和视频压缩上下文建模 | |
CN118160305A (zh) | 基于注意力的图像和视频压缩上下文建模 | |
WO2023121499A1 (en) | Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data | |
WO2024083405A1 (en) | Neural network with a variable number of channels and method of operating the same | |
WO2024002496A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
WO2024002497A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
WO2024005660A1 (en) | Method and apparatus for image encoding and decoding | |
WO2023160835A1 (en) | Spatial frequency transform based image modification using inter-channel correlation information | |
TW202416712A (zh) | 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq | |
KR20240071400A (ko) | 가변 보조 입력을 이용하는 트랜스포머 기반 신경망 |
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 |