CN116648716A - 通过指示特征图数据进行解码 - Google Patents

通过指示特征图数据进行解码 Download PDF

Info

Publication number
CN116648716A
CN116648716A CN202080108060.9A CN202080108060A CN116648716A CN 116648716 A CN116648716 A CN 116648716A CN 202080108060 A CN202080108060 A CN 202080108060A CN 116648716 A CN116648716 A CN 116648716A
Authority
CN
China
Prior art keywords
feature map
layer
information
layers
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080108060.9A
Other languages
English (en)
Inventor
谢尔盖·尤里耶维奇·伊科宁
米哈伊尔·维亚切斯拉沃维奇·索苏尔尼科夫
亚历山大•亚历山德罗维奇•卡拉布托夫
蒂莫菲·米哈伊洛维奇·索洛维耶夫
王彪
伊蕾娜·亚历山德罗夫娜·阿尔希娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116648716A publication Critical patent/CN116648716A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

本发明还涉及用于从码流中解码数据(用于静止图像或视频处理)的方法和装置。具体地,从所述码流中获取两个或多个特征图元素集。每个特征图元素集与特征图相关。然后,所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层。然后,获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。因此,可以在分层结构中以高效的方式从所述码流中解码所述数据。

Description

通过指示特征图数据进行解码
技术领域
本发明实施例大体上涉及使用多个处理层从码流中解码用于图像或视频处理的数据的领域。具体地,一些实施例涉及用于这种解码的方法和装置。
背景技术
几十年来,混合图像和视频编解码器一直被用于压缩图像和视频数据。在这些编解码器中,信号通常通过对块进行预测和通过进一步仅对原始块与其预测之间的差值进行译码来按块编码。具体地,这种译码可以包括变换、量化和生成码流,通常包括一些熵译码。通常,分别优化混合译码方法的三个组成部分,即变换、量化和熵译码。现代视频压缩标准(例如高效视频编码(high-efficiency video coding,HEVC)、多功能视频编码(versatilevideo coding,VVC)和基本视频编码(essential video coding,EVC))也使用变换的表示来在预测之后对残差信号进行译码。
最近,机器学习被应用于图像和视频译码。通常,机器学习可以以各种不同的方式应用于图像和视频译码。例如,已经讨论了一些端到端优化的图像或视频译码方案。此外,机器学习被用于确定或优化端到端译码的某些部分,例如预测参数的选择或压缩等。这些应用的共同点是,它们产生了一些特征图数据,这些特征图数据将在编码器与解码器之间传输。码流的高效结构可以大大有助于减少对图像/视频源信号进行编码的比特数。
神经网络通常包括两个或多个层。特征图是层的输出。在设备之间(例如在编码器与解码器之间、在设备与云之间或在不同设备之间)划分的神经网络中,划分站点(例如第一设备)的输出的特征图被压缩并发送到神经网络的其余层(例如,发送到第二设备)。
希望使用训练后的网络架构进一步改进编码和解码。
发明内容
本发明的一些实施例提供了用于以高效的方式对图像进行解码并实现一定的可扩展性以适应所需参数和内容的方法和装置。
上述和其它目的通过独立权利要求请求保护的主题实现。其它实现方式从从属权利要求、说明书和附图中是显而易见的。
根据实施例,提供了一种用于从码流中解码用于图像或视频处理的数据的方法,所述方法包括:从所述码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关,将所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层,获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。
这种方法可以提供改进的效率,因为它使得来自不同层的数据能够用于解码,从而能够从码流中解析特征或其它类型的层相关信息。
例如,在所述两个或多个特征图处理层中的每个中处理特征图,其中,分别在所述两个或多个特征图处理层中处理的特征图的分辨率不同。
在一些实施例中,在两个或多个特征图处理层中处理所述特征图包括上采样。
上采样的应用一方面能够降低处理的复杂性(因为第一层具有较低的分辨率),另一方面,还可以减少在码流中提供并在解码器处解析的数据。此外,处理不同分辨率的层可以以这种方式关注不同尺度的特征。因此,处理图像(静止图像或视频)的网络可以高效地运行。
在示例性实现方式中,所述方法还包括以下步骤:从所述码流中获取与所述两个或多个层相关的分割信息,其中,从所述码流中获取所述特征图元素基于所述分割信息;将所述特征图元素集分别输入两个或多个特征图处理层基于所述分割信息。
使用分割信息可以提供来自不同层的特征图的高效解码,使得原始分辨率(待重建)的每个区域可以仅由来自一个层的信息覆盖。尽管这并不限制本发明,但在一些情况下,本发明还可以为特征图(数据)中的特定区域提供层之间的重叠。例如,多个级联层还包括多个分割信息处理层,并且该方法还包括在多个分割信息处理层中处理分割信息。这种方法提供了控制来自不同层的特征元素解析的可能性。
在一些实施例中,在所述多个分割信息处理层中的至少一个中处理所述分割信息包括上采样。分割信息的分层结构可以提供待插入码流中的少量边信息,从而提高效率和/或减少处理时间。
例如,所述分割信息的所述上采样和/或所述特征图的所述上采样包括最近邻上采样。最近邻上采样具有较低的计算复杂度,并且可以很容易地实现。尽管如此,这种上采样是高效的,对于逻辑指示(如标志)尤其如此。
在一些实施例和示例中,分割信息的所述上采样和/或特征图的所述上采样包括转置卷积。使用卷积可以有助于减少块效应,并可以实现可训练的方案,其中,上采样滤波器是可选择的。
在示例性实现方式中,从所述码流中获取所述特征图元素基于所述多个分割信息处理层中的至少一个处理的处理后的分割信息。
在示例性实现方式中,将所述两个或多个特征图元素集中的每个分别输入两个或多个特征图处理层基于所述多个分割信息处理层中的至少一个处理的处理后的分割信息。
根据实施例,所获取的分割信息由语法元素集表示,其中,所述语法元素集中的元素的位置指示所述语法元素与哪个特征图元素位置相关,其中,处理所述特征图包括,对于所述语法元素中的每个:当所述语法元素为第一值时,从所述码流中解析所述码流中的所述语法元素的所述位置所指示的位置上的所述特征图的元素,否则,不从所述码流解析在由所述码流中的所述语法元素的所述位置指示的所述位置上的所述特征图的所述元素。
分割信息与特征图信息之间的这种关系能够高效地对频率信息进行译码,并通过考虑不同的分辨率在分层结构中进行解析。
例如,所述多个(N个)特征图处理层中的每个层j(1<j<N)处理所述特征图还包括:从所述码流中解析第j特征图处理层的分割信息元素;获取前一特征图处理层处理后的特征图,从所述码流中解析特征图元素,并将解析后的特征图元素与所获取的特征图关联,其中,所述特征图元素在所述处理后的特征图中的位置由所述解析后的分割信息元素指示,并且分割信息由前一分割信息处理层处理。
具体地,当所述语法元素为第一值时,从所述码流解析所述特征图的元素,当所述语法元素为第二值或由前一分割信息处理层处理的分割信息为第一值时,不从所述码流解析所述特征图的所述元素。
例如,从表示所述分割信息的所述码流解析的所述语法元素是二值化标志。具体地,所述处理后的分割信息由二值化标志集表示。
提供二值化标志可以实现高效的译码。在解码器侧,逻辑标志的处理可以以低复杂度执行。
根据一种示例性实现方式,对每个分割信息处理层j中的所述分割信息进行上采样还包括:对于输入的分割信息指示的所获取的特征图中的每个第p位置,将重建图像中与所述第p位置相同的区域中包括的特征图位置的指示确定为上采样分割信息。
例如,用于图像或视频处理的数据包括运动矢量场。由于期望具有与图像的分辨率相似的分辨率的密集光流或运动矢量场来建模运动,所以本发明的分层结构易用于高效地重建这种运动信息。通过层处理和指示,可以在速率与失真之间实现良好的权衡。
例如,所述用于图像或视频处理的数据包括图像数据和/或预测残差数据和/或预测信息数据。本发明可以用于各种不同的参数。但是,图像数据和/或预测残差数据和/或预测信息数据在空间域中仍然可以具有一些冗余,并且本文描述的分层方法可以使用不同分辨率从码流进行高效解码。
在一些实施例和示例中,所述特征图的上采样使用滤波器,所述滤波器的形状为正方形、水平矩形和垂直矩形中的任一种。
应用不同的上采样滤波器可以有助于适应内容的不同特征。例如,特征图的上采样使用滤波器,从码流输入信息还包括从码流中获取指示滤波器形状和/或滤波器系数的信息。
对应地,解码器可以根据在码流中传输的来自编码器的信息提供更好的重建质量。
例如,指示所述滤波器形状的所述信息指示由标志组成的掩码,所述掩码表示所述滤波器形状,因为具有第三值的标志指示非零滤波器系数,具有不同于所述第三值的第四值的标志指示零滤波器系数。这为设计任何形状的滤波器提供了灵活性。
例如,多个级联层包括卷积层,而不在具有不同分辨率的层之间进行上采样。
在级联层网络中提供这种附加层能够引入附加处理,例如各种类型的滤波,以提高译码的质量或效率。
根据实施例,提供了一种存储在非瞬时性介质中的计算机程序产品,当所述计算机程序产品在一个或多个处理器上执行时,执行上述方法中的任一种方法。
根据实施例,提供了一种用于解码图像或视频的设备,该设备包括处理电路,该处理电路用于执行根据上述实施例和示例中的任何一个的方法。
根据一方面,提供了一种用于从码流中解码用于图像或视频处理的数据的设备,所述设备包括:获取单元,用于从所述码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关,输入单元,用于将所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层,经解码的数据获取单元,用于获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。
上述装置中的任何一个都可以在集成芯片上实现。本发明可以通过硬件(hardware,HW)和/或软件(software,SW)实现。此外,基于HW的实现方式可以与基于SW的实现方式相结合。
需要说明的是,本发明不限于具体框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、图像生成和识别系统。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
附图说明
下面结合附图对本发明的实施例进行详细描述。
图1是神经网络的层处理的通道的示意图。
图2是神经网络的自动编码器类型的示意图。
图3A是包括超先验模型的编码器和解码器侧的示例性网络架构的示意图。
图3B是包括超先验模型的编码器侧的通用网络架构的示意图。
图3C是包括超先验模型的解码器侧的通用网络架构的示意图。
图4是包括超先验模型的编码器和解码器侧的示例性网络架构的示意图。
图5A是基于神经网络的端到端视频压缩框架的框图。
图5B是用于运动场压缩的神经网络应用的一些示例性细节的框图。
图5C是用于运动补偿的神经网络应用的一些示例性细节的框图。
图6是U-net的层示意图。
图7A是示例性混合编码器的框图。
图7B是示例性混合解码器的框图。
图8是用于对用于图像/视频处理(例如编码)的数据进行编码的示例性方法的流程图。
图9是从码流中不同分辨率的层传输信息的网络的结构的框图。
图10A是最大池化的示意图。
图10B是平均池化的示意图。
图11是示例性编码器侧处理特征图和分割信息的示意图。
图12是编码器侧和解码器侧对运动信息特征图的广义处理的框图。
图13是从比特流中不同分辨率的层传输信息的网络的结构的框图,用于处理运动矢量相关信息。
图14是具有较高成本张量分辨率的示例性成本计算单元的框图。
图15是具有较低成本张量分辨率的示例性成本计算单元的框图。
图16是举例说明信号选择逻辑的功能结构的框图。
图17是举例说明信号选择逻辑的功能结构的框图,其中,成本计算单元提供了若干个译码选项。
图18是具有卷积下采样和上采样层的码流中不同分辨率的层传输信息的网络的结构的框图。
图19是从码流中具有附加层的不同分辨率的层传输信息的结构的框图。
图20是从码流中不同分辨率的层传输信息的结构的框图,其中,层支持下采样或上采样滤波器选择。
图21是从码流中不同分辨率的层传输信息的网络的结构的框图,其中,层支持卷积滤波器选择。
图22是举例说明用于选择译码模式的基于网络的RDO决策单元的功能结构的框图。
图23是示例性成本计算单元的框图,该示例性成本计算单元可以用于基于网络的RDO决策单元,用于选择译码模式。
图24是示例性成本计算单元的框图,该示例性成本计算单元可以用于基于网络的RDO决策单元,用于选择支持多个选项的译码模式。
图25是可能的块分割或滤波器形状的示意图。
图26是分割信息的推导的示意图。
图27是在解码器侧处理分割信息的示意图。
图28是用于重建密集光流的示例性信号馈送逻辑的框图。
图29是用于重建密集光流的示例性信号馈送逻辑的框图。
图30是卷积滤波器集的框图。
图31是上采样滤波器组的框图。
图32A是在解码器侧使用最近邻复制的上采样处理的示意图。
图32B是在解码器侧使用卷积处理的上采样处理的示意图。
图33是用于对数据进行解码的示例性方法的流程图,该数据是图像或视频解码中使用的特征图信息等。
图34是用于对数据进行编码的示例性方法的流程图,该数据是图像或视频编码中使用的分割信息等。
图35是用于实现本发明的实施例的视频译码系统的示例的框图。
图36是用于实现本发明的实施例的视频译码系统的另一示例的框图。
图37是编码装置或解码装置的示例的框图。
图38是编码装置或解码装置的另一个示例的框图。
具体实施方式
在以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明的实施例的特定方面或可以使用本发明的实施例的具体方面。应理解,本发明的实施例可以用于其它方面,并且包括在附图中未示出的结构上或逻辑上的变化。因此,以下详细描述不作为限制意义,并且本发明的范围由所附权利要求限定。
例如,应理解,参考所描述的方法公开的内容对于用于执行该方法的对应的设备或系统也可以成立,反之亦然。例如,如果描述了一个或多个特定的方法步骤,则对应的设备可以包括一个或多个单元,例如用于执行所描述的一个或多个方法步骤的功能单元(例如,执行一个或多个步骤的一个单元;或者多个单元,每个单元执行多个步骤中的一个或多个),即使一个或多个单元在附图中未明确描述或示出时也是如此。此外,例如,如果根据一个或多个单元(例如功能单元)来描述特定装置,则对应的方法可以包括用于执行一个或多个单元的功能的一个步骤(例如执行一个或多个单元的功能的一个步骤,或多个步骤,每个步骤执行多个单元中的一个或多个单元的功能),即使一个或多个步骤在附图中未明确描述或示出时也是如此。此外,应理解,除非特别指出,否则本文描述的各种示例性实施例和/或方面的特征可以彼此组合。
一些实施例的目的是提高经编码和解码的图像或视频数据的质量和/或减少表示经编码的图像或视频数据所需的数据量。一些实施例提供了待从编码器向解码器指示的信息的高效选择。在下文中,提供了对可以使用本发明的实施例的一些使用的技术术语和框架的概述。
人工神经网络
人工神经网络(artificial neural network,ANN)或连接论系统是一种计算系统,它模糊地受到构成动物大脑的生物神经网络的启发。这些系统通过考虑示例来“学习”执行任务,通常不用特定任务规则编程。例如,在图像识别中,这些系统可能会通过分析手动标记为“猫”或“无猫”的示例性图像,并使用结果识别其它图像中的猫来学习识别包括猫的图像。这些系统事先对猫没有任何了解,例如,这些猫是否有毛皮、尾巴、胡须和猫一样的脸。相反,这些系统会从处理的示例中自动生成识别特征。
ANN是基于被称为人工神经元的连接单元或节点的集合,这些连接单元或节点松散地模拟生物大脑中的神经元。每一个连接,就像生物大脑中的突触一样,都可以向其它神经元传递信号。一个人工神经元接收信号,然后对该信号进行处理,并可以向连接到该神经元的神经元发出信号。
在ANN实现方式中,连接处的“信号”是实数,每个神经元的输出通过其输入之和的一些非线性函数计算。这些连接称为边(edge)。神经元和边通常具有随着学习进行调整的权重。权重可以增加或减少连接上的信号的强度。神经元可以有一个阈值,这样只有在聚合信号超过该阈值时,才会发送信号。通常,神经元被聚集到各层中。不同的层可以对其输入执行不同的变换。信号从第一层(输入层)传输到最后一层(输出层),在这期间可能多次遍历这些层。
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的核心构建块。该层的参数由一组可学习的滤波器(上述核)组成,这些滤波器具有一个小的接受域,但延伸到输入卷的整个深度。在正向传递期间,每个滤波器在输入卷的宽度和高度上卷积,计算滤波器条目与输入之间的点积,并生成该滤波器的2维激活图。因此,网络学习滤波器,这些滤波器在输入中的某个空间位置检测到某些特定类型的特征时激活。
沿深度维度堆叠所有滤波器的激活图形成卷积层的完整输出卷。因此,输出卷中的每个条目也可以被解释为神经元的输出,该神经元查看输入中的一个小区域,并与同一激活图中的神经元共享参数。特征图或激活图是给定滤波器的输出激活。特征图和激活具有相同的含义。在一些论文中称为激活图,因为它是对应于图像不同部分的激活的映射,也称为特征图,因为它也是图像中找到某种特征的映射。高激活是指找到了某个特征。
CNN的另一个重要概念是池化,池化是非线性下采样的一种形式。有若干种非线性函数可以实现池化,其中,最大池化是最常见的。最大池化将输入图像划分为一组非重叠矩形,并对于每个这样的子区域输出最大值。
直观地讲,特征的确切位置没有该特征相对于其它特征的粗略位置重要。这就是在卷积神经网络中使用池化的思想。池化层用于逐步减小表示的空间大小,以减少网络中的参数数量、内存占用空间和计算量,从而也控制过拟合。在CNN架构中,在连续的卷积层之间定期插入池化层是常见的。池化操作提供了另一种形式的平移不变性。
池化层对输入的每个深度条带(depth slice)独立操作,并在空间上对这些深度条带进行调整。最常见的形式是具有大小为2×2的滤波器的池化层,该池化层对输入的每个深度条带应用步长2,沿宽度和高度均应用步长2,丢弃75%的激活。在这种情况下,每个最大化操作都超过4个数字。深度维度保持不变。除了最大池化之外,池化单元还可以使用其它函数,如平均池化或l2-norm池化。历史上经常使用平均池化,但与最大池化相比,平均池化最近已经失没有了优势,最大池化在实践中通常表现更好。由于表示(representation)的大小大幅减少,最近有一种趋势是使用较小的滤波器或完全丢弃池化层。“感兴趣区域”池化(也称为ROI池化)是最大池化的变体,其中,输出大小是固定的,输入矩形是参数。池化是卷积神经网络的重要组成部分,用于基于Fast R-CNN架构进行对象检测。
上述ReLU是整流线性单元的缩写,ReLU应用非饱和激活函数。ReLU将负值设置为零,从而有效地从激活图中删除负值。ReLU增加了决策函数和整体网络的非线性性质,而不影响卷积层的接受域。其它函数也用于增加非线性,例如饱和双曲正切和sigmoid函数。ReLU通常比其它函数更受欢迎,因为ReLU训练神经网络的速度快若干倍,而不会对泛化精度造成重大影响。
在经过若干个卷积层和最大池化层之后,神经网络中的高级推理是通过全连接层完成的。全连接层中的神经元与前一层中的所有激活都有连接,如常规(非卷积)人工神经网络中所示。因此,它们的激活可以作为仿射变换计算,矩阵乘法后跟偏置偏移(学习或固定偏置项的矢量加法)。
“损失层”(包括损失函数的计算)指定训练如何惩罚预测标签(输出)与真实标签之间的偏差,通常是神经网络的最后一层。可以使用适合不同任务的各种损失函数。Softmax损失用于预测K个互斥类中的单个类。Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧几里德损失用于回归到实值标签。
总之,图1示出了典型卷积神经网络中的数据流。首先,输入图像通过卷积层,并抽象为包括若干个通道的特征图,对应于该层的可学习的滤波器集中的多个滤波器。然后,使用池化层等对特征图进行子采样,这减小了特征图中每个通道的维度。接下来,数据到达另一个卷积层,该卷积层可以具有不同数量的输出通道。如上所述,输入通道和输出通道的数量是层的超参数。为了建立网络的连接,这些参数需要在两个连接的层之间同步,以便当前层的输入通道的数量应等于前一层的输出通道的数量。对于处理输入数据(例如图像)的第一层,输入通道的数量通常等于数据表示的通道的数量,例如3个通道用于图像或视频的RGB或YUV表示,或1个通道用于灰度图像或视频表示。
自动编码器和无监督学习
自动编码器是一种人工神经网络,用于以无监督的方式学习高效的数据编码。其示意图如图2所示。自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表示(编码),通常是为了降维。除了降维侧,还学习了重建侧,其中,自动编码器尝试从简化的编码中生成尽可能接近其原始输入的表示,因此得名。在最简单的情况下,给定一个隐藏层,自动编码器的编码器级获取输入x并将其映射到h
h=σ(Wx+b)。
该图像h通常被称为码、潜在变量或潜在表示。这里,σ是逐元素激活函数(element-wise activation function),例如sigmoid函数或整流线性单位。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的潜在向量的概率分布通常比标准自动编码器更接近训练数据的概率分布。VAE的目标具有以下形式:
在这里,DKL代表KL散度。潜在变量的先验通常被设置为中心各向同性多元高斯通常,变分和似然分布的形状被选择为因子化高斯:
其中,ρ(x)和ω2(x)是编码器输出,而μ(h)和σ2(h)是解码器输出。
人工神经网络领域,特别是卷积神经网络的最新进展使研究人员有兴趣将基于神经网络的技术应用于图像和视频压缩任务。例如,提出了端到端优化图像压缩,端到端优化图像压缩使用基于变分自动编码器的网络。
因此,数据压缩被认为是工程中的一个基本的和深入研究的一个问题,通常以最小熵为了为给定的离散数据集合设计代码为目标。该方案在很大程度上依赖于对数据概率结构的了解,因此该问题与概率源建模密切相关。但是,由于所有实用码都必须具有有限熵,所以连续值数据(例如图像像素强度的矢量)必须量化为有限离散值集,这引入了误差。
在这种情况下,即有损压缩问题,必须权衡两个相互竞争的成本:离散表示的熵(速率)和量化产生的误差(失真)。不同的压缩应用(例如数据存储或通过有限容量通道传输)需要不同的率失真权衡。
速率和失真的联合优化是困难的。如果没有进一步的约束,高维空间中最优量化的一般问题是难以解决的。因此,大多数现有的图像压缩方法进行以下操作:将数据向量线性变换为合适的连续值表示,独立量化其元素,然后使用无损熵译码对得到的离散表示进行编码。由于变换的核心作用,此方案被称为变换编码。
例如,JPEG在像素块上使用离散余弦变换,JPEG 2000使用多尺度正交小波分解。通常,变换编码方法的三个组成部分(变换、量化器和熵译码)分别进行优化(通常通过手动参数调整)。现代视频压缩标准(例如HEVC、VVC和EVC)也使用变换的表示来编码预测后的残差信号。离散余弦(discrete cosine transform,DCT)变换、离散正弦变换(discrete sinetransform,DST)和低频不可分离手动优化变换(low frequency non-separable manuallyoptimized transform,LFNST)等若干种变换用于此目的。
变分图像压缩
变分自动编码器(variable auto-encoder,VAE)框架可以被认为是一种非线性变换译码模型。转化过程主要可分为四个部分,图3A中进行了举例说明,并示出了VAE框架。
转化过程主要可分为四个部分。图3A举例说明了VAE框架。在图3A中,编码器101通过函数y=f(x)将输入图像x映射到潜在表示(由y表示)。在下文中,这种潜在表示也可以被称为“潜在空间”的一部分或点。函数f()是一个变换函数,它将输入信号x变换为更可压缩的表示y。量化器102通过将潜在表示y变换为具有(离散)值的量化潜在表示/>其中,Q表示量化器函数。熵模型或超编码器/解码器(也称为超先验)103估计量化潜在表示/>的分布,以获得通过无损熵源编码可实现的最小速率。
潜在空间可以理解为压缩数据的表示,其中,类似的数据点在潜在空间中更接近。潜在空间对于学习数据特征和查找用于分析的数据的更简单表示非常有用。量化的潜在表示T和超先验3的和边信息/>使用算术编码(arithmetic coding,AE)包括在码流2中(被二值化)。此外,提供了解码器104,其将量化的潜在表示变换为重建图像/>信号/>是输入图像x的估计。希望x尽可能接近/>换句话说,重建质量尽可能高。但是,/>与x之间的相似性越高,发送所需的边信息的量就越大。边信息包括图3A所示的码流1和码流2,它们由编码器生成并发送到解码器。通常情况下,边信息的量越大,重建质量越高。但是,大量的边信息意味着压缩比低。因此,图3A中描述的系统的一个目的是平衡重建质量和码流中传输的边信息的量。
在图3A中,组件AE 105是算术编码模块,它将量化的潜在表示的样本和边信息/>的样本转换为二值化表示码流1。例如,/>的样本和/>的样本可以包括整数或浮点数。算术编码模块的一个目的是(通过二值化过程)将样本值转换为二值化数字字符串(然后,二值化数字字符串被包括在码流中,该码流可以包括对应于经编码的图像或其它边信息的其它部分)。
算术解码(arithmetic decoding,AD)106是恢复二值化过程的过程,其中,二值化数字被转换回样本值。算术解码由算术解码模块106提供。
需要说明的是,本发明不限于这种具体框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、图像生成和识别系统。
在图3A中,有两个子网相互级联。在该上下文中,子网是整个网络各部分之间的逻辑划分。例如,在图3A中,模块101、102、104、105和106被称为“编码器/解码器”子网。“编码器/解码器”子网负责对第一码流“码流1”进行编码(生成)和解码(解析)。图3A中的第二网络包括模块103、108、109、110和107,并被称为“超编码器/解码器”子网。第二子网负责生成第二码流“码流2”。这两个子网的目的不同。
第一个子网负责:
·将输入图像x变换(101)为其潜在表示y(这更容易压缩x),
·将所述潜在表示y量化(102)为量化后的潜在表示
·算术编码模块105使用AE压缩量化后的潜在表示以获取码流“码流1”,
·使用算术解码模块106经由AD解析码流1,以及
·使用解析的数据重建(104)重建图像
第二子网的目的是获取“码流1”的样本的统计性质(例如码流1的样本之间的平均值、方差和相关性),以便第一子网对码流1的压缩更高效。第二子网生成第二码流“码流2”,第二码流包括所述信息(例如码流1的样本之间的平均值、方差和相关性)。
第二网络包括编码部分,该编码部分包括将量化后的潜在表示变换(103)为边信息z,将边信息z量化为量化后的边信息/>以及将量化后的边信息/>编码(例如二值化)(109)到码流2中。在该示例中,二值化由算术编码(arithmetic encoding,AE)执行。第二网络的解码部分包括算术解码(arithmetic decoding,AD)110,AD 110将输入码流2变换为解码后的量化边信息/>可能与/>相同,因为算术编码结束解码操作是无损压缩方法。然后,解码后的量化边信息/>被变换(107)为解码后的边信息/>表示/>的统计性质(例如/>样本的平均值,或样本值的方差等)。然后,解码后的潜在表示/>被提供给上述算术编码器105和算术解码器106,以控制/>的概率模型。
图3A描述了VAE(变分自动编码器)的一个示例,其细节在不同的实现方式中可能有所不同。例如,在特定的实现方式中,可能存在附加组件,以更高效地获取码流1样本的统计属性。在一个这种实现方式中,可能存在上下文建模器,其目标是提取码流1的互相关信息。由第二子网提供的统计信息可以由算术编码器(arithmetic encoder,AE)105和算术解码器(arithmetic decoder,AD)106组件使用。
图3A在单个图中示出了编码器和解码器。本领域技术人员应知道,编码器和解码器可以而且经常嵌入在相互不同的设备中。
图3B示出了编码器,图3C示出了VAE框架的解码器组件。根据一些实施例,编码器接收图像作为输入。输入图像可以包括一个或多个通道,例如颜色通道或其它类型的通道,例如深度通道或运动信息通道等。编码器的输出(如图3B所示)是码流1和码流2。码流1是编码器的第一子网的输出,码流2是编码器的第二子网的输出。
类似地,在图3C中,两个码流(码流1和码流2)作为输入接收,并在输出端生成重建(解码)图像如上所述,VAE可以划分为执行不同操作的不同逻辑单元。这在图3B和图3C中进行了举例说明。图3B示出了参与信号(如视频和提供的编码信息)编码的组件。然后,例如,该编码信息由图3C中示出的解码器组件接收,以用于编码。需要说明的是,用数字12x和14x表示的编码器和解码器的组件在其功能上可以对应于上面在图3A中提到的并用数字10x表示的组件。
具体来说,如图3B中所示,编码器包括编码器121,编码器121将输入x变换为信号y,然后将信号y提供给量化器322。量化器122向算术编码模块125和超编码器123提供信息。超编码器123将上面已经讨论过的码流2提供给超解码器147,超解码器147又向算术编码模块105提供信息(125)。
算术编码模块的输出是码流1。码流1和码流2是信号编码的输出,然后码流1和码流2被提供(发送)给解码过程。尽管单元101(121)被称为“编码器”,但也可以将图3B中描述的完整子网称为“编码器”。编码过程通常是指单元(模块)将输入转换为编码(如压缩)输出。从图3B可以看出,单元121实际上可以被视为整个子网的核心,因为它执行输入x到y的转换,y是x的压缩版本。编码器121中的压缩可以通过应用神经网络或通常具有一个或多个层的任何处理网络来实现。在这种网络中,压缩可以通过包括下采样的级联处理来执行,该下采样减小了输入的大小和/或通道数量。因此,编码器可以被称为基于神经网络(neuralnetwork,NN)的编码器等。
图中的其余部分(量化单元、超编码器、超解码器、算术编码器/解码器)都是提高编码过程效率或负责将压缩输出y转换为一系列比特(码流)的部分。可以提供量化以通过有损压缩进一步压缩NN编码器121的输出。AE 125与用于配置AE 125的超编码器123和超解码器127结合可以执行二值化,二值化可以通过无损压缩进一步压缩量化信号。因此,也可以将图3B中的整个子网称为“编码器”。
大多数基于深度学习(deep learning,DL)的图像/视频压缩系统在将信号转换为二值化数字(位)之前会降低信号的维度。例如,在VAE框架中,编码器是非线性变换,该编码器将输入图像x映射到y中,其中,y的宽度和高度小于x。由于y具有较小的宽度和高度,因此大小较小,信号的维度(的大小)被减小,因此,更容易压缩信号y。需要说明的是,通常,编码器不一定需要在两个(或通常所有)维度上减小大小。相反,一些示例性实现方式可以提供仅在一个维度(或通常是一个子集)上减小大小的编码器。
在J.Balle、L.Valero Laparra和E.P.Simoncelli(2015)中,在arXiv电子版:“使用广义归一化变换对图像进行密度建模(Density Modeling of Images Using aGeneralized Normalization Transformation)”(在2016年第4届学习表示国际会议上发表)中(下文称为“Balle”),作者提出了基于非线性变换的图像压缩模型端到端优化框架。作者对均方误差(mean squared error,MSE)进行了优化,但使用了由线性卷积和非线性级联构建的更灵活的变换。具体地,作者使用了广义除法归一化(generalized divisivenormalization,GDN)联合非线性,该非线性受到生物视觉系统中神经元模型的启发,并已被证明在高斯化图像密度方面是有效的。这种级联变换之后是均匀标量量化(即,每个元素都四舍五入到最近的整数),这有效地在原始图像空间上实现了矢量量化的参数形式。使用近似参数非线性逆变换从这些量化值重建压缩图像。
VAE框架的这种示例如图4所示,它利用6个下采样层,标记为401至406。网络架构包括超先验模型。左侧(ga,gs)示出了图像自动编码器架构,右侧(ha,hs)对应于实现超先验的自动编码器。分解先验模型使用相同的架构进行分析和合成变换ga和gs。Q表示量化,AE、AD分别表示算术编码器和算术解码器。编码器将输入图像x置于ga,产生具有空间变化标准差的响应y(潜在表示)。编码ga包括多个卷积层,具有子采样和作为激活函数的广义除法归一化(generalized divisive normalization,GDN)。
响应被馈送到ha中,从而汇总z中的标准偏差分布。然后z被量化、压缩,并作为边信息发送。然后,编码器使用量化向量来估计/>即标准偏差的空间分布(用于获取算术译码(arithmetic coding,AE)的概率值(或频率值)),并使用它来压缩和发送量化图像表示/>(或潜在表示)。解码器首先从压缩信号中恢复/>然后,它使用hs获取/>这为它提供了正确的概率估计,以成功恢复/>然后,它将/>馈送到gs中,以获取重建图像。
在对层的描述中,包括下采样的层用向下的箭头表示。对层的描述“Conv N×5×5/2↓”是指该层是一个有N个通道的卷积层,卷积核的大小为5×5。如上所述,2↓是指在该层中执行因子为2的下采样。因子为2的下采样会导致输入信号的维度之一在输出端减少一半。在图4中,2↓表示输入图像的宽度和高度都减少了一半。由于有6个下采样层,如果输入图像414(也用x表示)的宽度和高度为w和h,则输出信号z 413的宽度和高度分别等于w/64和h/64。由AE和AD表示的模块是算术编码器和算术解码器,参考图3A至图3C进行解释。算术编码器和算术解码器是熵译码的具体实现方式。AE和AD可以被其它熵译码方式取代。在信息论中,熵编码是一种无损数据压缩方案,用于将符号的值转换为二值化表示,这是一个可恢复的过程。此外,图中的“Q”对应于上文关于图4提到的量化操作,在上面“量化”一节中进行了解释。此外,量化操作和作为组件413或415的一部分的对应的量化单元不一定存在和/或可以被另一个单元替换。
在图4中,还示出了包括上采样层407至412的解码器。在上采样层411和410之间以输入的处理顺序提供另一层420,该层420被实现为卷积层,但不对接收到的输入进行上采样。还示出了用于解码器的对应的卷积层430。可以在NN中提供这种层,以用于对输入执行不改变输入大小但改变具体特征的操作。但是,不是必须提供这种层。
当按照码流2通过解码器的处理顺序时,上采样层通过的顺序相反,即从上采样层412到上采样层407。这里示出了每个上采样层,以提供上采样比为2的上采样,上采样通过↑表示。当然,不一定所有上采样层都具有相同的上采样比,上采样层可以使用如3、4、8等其它上采样比。层407至412被实现为卷积层(conv)。具体来说,由于这些卷积层对输入进行与编码器所进行的操作相反的操作,所以上采样层可以对接收到的输入应用反卷积操作,使得该输入的大小增加与上采样比对应的因子。但是,本发明通常不限于反卷积,并且上采样可以以任何其它方式执行,例如通过两个相邻样本之间的双线性插值,或通过最近邻样本复制等。
在第一子网中,一些卷积层(401至403)在编码器侧跟随广义分散归一化(generalized divisive normalization,GDN),在解码器侧跟随逆GDN(inverse GDN,IGDN)。在第二个子网中,应用的激活函数是ReLu。需要说明的是,本发明不限于这种实现方式,并且通常可以使用其它激活函数来代替GDN或ReLu。
端到端图像或视频压缩
基于DNN的图像压缩方法可以利用大规模端到端训练和高度非线性变换,而这些方法在传统方法中并不使用。但是,直接应用这些技术来构建视频压缩的端到端学习系统并不容易。首先,学习如何生成和压缩为视频压缩定制的运动信息仍然是一个悬而未决的问题。视频压缩方法严重依赖运动息来减少视频序列中的时间冗余。
一个简单的方案是使用基于学习的光流来表示运动信息。但是,目前基于学习的光流方法旨在尽可能准确地生成流场。精确的光流通常不是特定视频任务的最佳选择。此外,与传统压缩系统中的运动信息相比,光流的数据量显著增加,直接应用现有的压缩方法来压缩光流值将显著增加存储运动信息所需的比特数。其次,目前还不知道如何通过最小化基于率失真的残差和运动信息目标来构建基于DNN的视频压缩系统。率失真优化(rate-distortion optimization,RDO)的目的是在给出压缩的比特数(或比特率)时,实现重建帧的较高质量(即较少失真)。RDO对于视频压缩性能非常重要。为了利用基于学习的压缩系统的端到端训练的能力,需要RDO策略来优化整个系统。
在Guo Lu、Wanli Ouyang、Dong Xu、Xiaoyun Zhang、Chunlei Cai、Zhiyong Gao的“DVC:端到端深度视频压缩框架(DVC:An End-to-end Deep Video CompressionFramework)”(IEEE/CVF计算机视觉和模式识别(CVPR)会议记录,2019年,第11006至11015页)中,作者提出了端到端深度视频压缩(deep video compression,DVC)模型,该模型联合学习运动估计、运动压缩和残差译码。
这种编码器如图5A所示。具体地,图5A示出了端到端可训练视频压缩框架的总体结构。为了压缩运动信息,指定CNN将光流变换为适合更好压缩的对应表示。具体地,使用自动编码器风格的网络来压缩光流。运动矢量(motion vector,MV)压缩网络如图5B所示。网络架构与图4中的ga/gs有些相似。具体地,光流被馈送到包括GDN和IGDN的一系列卷积运算和非线性变换中。除最后一个反卷积层之外的卷积(反卷积)的输出通道的数量为128,最后一个反卷积层的输出通道的数量等于2。给定大小为M×N×2的光流,MV编码器将生成大小为M/16×N/16×128的运动表示。然后,运动表示被量化、熵译码并发送到码流。MV解码器接收量化表示并使用MV编码器重建运动信息。
图5C示出了运动补偿部分的结构。这里,使用之前重建的帧xt–1和重建的运动信息,扭曲单元生成扭曲的帧(通常,借助于插值滤波器,例如双线性插值滤波器)。然后,具有三个输入的单独的CNN生成预测图像。运动补偿CNN的架构也如图5C所示。
原始帧与预测帧之间的残差信息由残差编码器网络编码。使用高度非线性的神经网络将残差变换为对应的潜在表示。与传统视频压缩系统中的离散余弦变换相比,该方法可以更好地利用非线性变换的能力,并实现更高的压缩效率。
从上面的概述可以看出,基于CNN的架构可以应用于图像和视频压缩,从而考虑视频框架的不同部分,包括运动估计、运动补偿和残差译码。熵译码是用于数据压缩的流行方法,被业界广泛采用,也适用于人类感知或计算机视觉任务的特征图压缩。
机器视频译码
机器视频译码(video coding for machine,VCM)是当今流行的另一个计算机科学方向。这种方法背后的主要思想是发送图像或视频信息的经译码的表示,以便通过计算机视觉(computer visio,CV)算法进一步处理,如对象分割、检测和识别。与针对人类感知的传统图像和视频译码相比,质量特征是计算机视觉任务的性能,例如对象检测精度,而不是重建质量。
最近的一项研究提出了一种新的部署范式,称为协作智能,深度模型可以在移动与云之间划分。在各种硬件配置和无线连接模式下的广泛实验表明,能耗和/或计算时延方面的最佳操作点涉及划分模型(通常在网络深处的某个点)。目前的常见方案(模型完全位于云中或完全位于移动中)很少(如果有的话)是最佳的。协作智能的概念也扩展到了模型训练。在这种情况下,数据双向流动:在训练以及推理中反向传播期间从云到移动,在训练以及推理中正向传递期间从移动到云。
在最近的对象检测深度模型的上下文中,基于HEVC帧内译码,研究了深度特征数据的有损压缩。需要说明的是,随着压缩水平的增加,检测性能的下降,并提出了压缩增强训练,用于通过生成对特征值中的量化噪声更鲁棒的模型,将这种损失降至最低。但是,这仍然是一个次优的方案,因为所使用的编解码器高度复杂,并针对自然场景压缩而不是深度特征压缩进行了优化。
通过一种使用流行的YOLOv2网络进行对象检测任务的方法,研究了压缩效率和识别精度的权衡,解决了协同智能的深度特征压缩问题。在这里,术语深度特征与特征图具有相同的含义。当捕获一些隐藏(深度)层的输出特征图并传输到云中执行推理时,“深度”一词来自协作智能思想。这似乎比将压缩的自然图像数据发送到云并使用重建图像执行对象检测更高效。
特征图的高效压缩有利于图像和视频压缩和重建,无论是对人类感知还是对机器视觉。关于最先进的基于自动编码器的压缩方法的缺点,在机器视觉任务中也存在。
具有跳跃连接的人工神经网络
残差神经网络(residual neural network,ResNet)是一种人工神经网络(artificial neural network,ANN),它建立在大脑皮层锥体细胞已知的结构之上。残差神经网络通过利用跳过连接或快捷方式跳过一些层来实现这一目标。典型的ResNet模型是用双层或三层跳过实现的,这些跳过包括非线性(ReLU)和中间的批量归一化。附加的权重矩阵可以用于学习跳过权重;这些模型被称为高速网络(HighwayNet)。具有若干个并行跳跃的模型称为密集连接网络(DenseNet)。在残差神经网络的上下文中,非残差网络可以描述为普通网络。
跳过层的一个动机是通过重用前一层的激活,直到相邻层学习其权重,避免梯度消失的问题。在训练期间,调整权重,以使上游层静音,并放大先前跳过的层。在最简单的情况下,只调整相邻层连接的权重,而不调整上游层的显式权重。当单个非线性层被跨过时,或当中间层都为线性时,这工作得最好。如果不是,则应为跳过的连接学习显式权重矩阵(应使用高速网络)。
跳过有效地简化了网络,从而在初始训练阶段使用较少的层。这通过减少梯度消失的影响来加快学习速度,因为要传播的层较少。然后,网络在学习特征空间时逐渐恢复跳过的层。在训练接近尾声时,当所有层都被扩展时,它将保持更接近流形,从而学习更快。没有残差部分的神经网络可以探索更多的特征空间。这使得它更容易受到导致它离开流形的扰动的影响,并需要附加的训练数据来恢复。
U-Net中引入了较长的跳过连接,如图6所示。U-Net架构源于Long和Shelhamer首次提出的所谓“全卷积网络”。主要的思想是通过连续的层来补充通常的承包网络,其中,池化操作被上采样运算符取代。因此,这些层提高了输出的分辨率。此外,连续的卷积层可以学习根据该信息组装精确的输出。
U-Net中的一个重要修改是,上采样部分有大量的特征通道,这支持网络将上下文信息传播到较高分辨率层。因此,扩展路径或多或少与收缩路径对称,并产生u形架构。网络只使用每个卷积的有效部分,没有任何完全连接的层。为了预测图像边界区域中的像素,通过镜像输入图像外推缺失的上下文。这种分块策略(tiling strategy)对于将网络应用于大型图像非常重要,因为否则分辨率将受到GPU内存的限制。
引入跳过连接可以更好地捕获不同空间分辨率的特征,这已成功地应用于计算机视觉任务,例如对象检测和分割。但是,暗示用于图像或视频压缩的这种跳过连接并不是微不足道的任务,因为来自编码侧的信息需要在通信通道中传输,并且层的直接连接将需要传输大量的数据。
传统混合视频编码和解码
神经网络框架也可以组合使用或在传统的混合编码和解码中使用,这将在后面举例说明。在下文中,给出了关于示例性混合编码和解码的非常简短的概述。
图7A是用于实现本申请的技术的示例性视频编码器20的示意性框图。在图7A的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(图中未示出)。图7A所示的视频编码器20也可以称为混合视频编码器或根据混合视频编解码器的视频编码器。
编码器20可以用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述中称为图像17。图像17也可以称为当前图像或待译码图像(具体地,在视频译码中,是为了将当前图像与同一视频序列(即同样包括当前图像的视频序列)中的其它图像(例如先前的经编码的图像和/或经解码的图像)区分开)。
(数字)图像是或可以看作具有强度值的二维样本阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像的水平和垂直方向(或轴线)上的样本数定义图像的大小和/或分辨率。通常使用三个颜色分量来表示颜色,即,可以通过三个样本阵列来表示图像或图像可以包括三个样本阵列。在RGB格式或色彩空间中,图像包括对应的红、绿、蓝样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,颜色空间为YCbCr,其中包括Y表示的亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。亮度分量Y表示亮度或灰度强度(例如在灰度级图像中),而两个色度分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度样本值的亮度样本阵列(Y)和色度值的两个色度样本阵列(Cb和Cr)。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然,该过程也称为颜色变换或转换。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
视频编码器20的实施例可以包括图像分割单元(图7A中未示出),用于将图像17分割成多个(通常为不重叠的)图像块203。这些块也可以称为根块或宏块(H.264/AVC标准)或称为编码树块(coding tree block,CTB)或编码树单元(coding tree unit,CTU)(H.265/HEVC和VVC标准)。图像分割单元可以用于对视频序列中的所有图像和定义块大小的对应的栅格使用相同的块大小,或者改变图像或子集或图像组之间的块大小,并将每个图像分割为对应的块。缩写AVC代表高级视频编码。
在其它实施例中,视频编码器可以用于直接接收图像17的块203,例如,组成图像17的一个、若干个或所有块。图像块203也可以称为当前图像块或待编码图像块。
尽管图像块203的尺寸小于图像17,但是与图像17一样,图像块203也是或也可以被认为是具有强度值(样本值)的样本的二维阵列或矩阵。换句话说,块203例如可以包括一个样本阵列(例如,在黑白图像17的情况下,亮度阵列)、三个样本阵列(例如,在彩色图像17的情况下,一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列,这取决于应用的颜色格式。块203在水平和垂直方向(或轴线)上的样本数定义了块203的大小。相应地,某图像块可以为M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
在图7A所示的视频编码器20的实施例中,视频编码器20可以用于对图像17逐块地进行编码,例如对每个块203执行编码和预测。
图7A所示的视频编码器20的实施例还可以使用条带(也称为视频条带)对图像进行分割和/或编码,其中,可以使用一个或多个条带(通常为不重叠的)对图像进行分割或编码,并且每个条带可以包括一个或多个块(例如,CTU)。
图7A所示的视频编码器20的实施例还可以使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码,其中,可以使用一个或多个分块组(通常为不重叠的)对图像进行分割或编码,每个分块组可以包括一个或多个块(例如,CTU)或一个或多个分块等,其中,每个分块可以为矩形等形状,可以包括一个或多个块(例如,CTU),例如完整或部分块。
图7B是用于实现本申请的技术的视频解码器30的示例。视频解码器30用于接收例如由编码器20编码的经编码的图像数据21(例如,经编码的码流21),以获取经解码的图像331。经编码的图像数据或码流包括用于对经编码的图像数据进行解码的信息,例如表示经编码的视频条带(和/或分块组或分块)的图像块的数据和相关的语法元素。
熵解码单元304用于解析码流21(或通常称为经编码的图像数据21),并对经编码的图像数据21进行熵解码,以获取量化系数309和/或经解码的译码参数(图3中未示出)等,例如帧间预测参数(如参考图像索引和运动矢量)、帧内预测参数(如帧内预测模式或索引)、变换参数、量化参数、环路滤波参数和/或其它语法元素等中的任一者或全部。熵解码单元304可以用于进行对应于编码器20的熵编码单元270所描述的编码方案的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,并向解码器30的其它单元提供其它参数。视频解码器30可以在视频条带级和/或视频块级接收语法元素。除了条带和相应语法元素之外或作为条带和相应语法元素的替代,还可以接收和/或使用分块组和/或分块以及相应语法元素。
重建单元314(例如,加法器或求和器314)可以用于将重建残差块313添加到预测块365,以获取样本域中的重建块315,例如,通过将重建残差块313的样本值添加到预测块365的样本值。
图7B中所示的视频解码器30的实施例可以用于使用条带(也称为视频条带)对图像进行分割和/或解码。一个图像可以分割成一个或多个(通常不重叠的)条带或使用一个或多个(通常不重叠的)条带进行解码,每个条带可以包括一个或多个块(例如CTU)。
在实施例中,图7B所示的视频解码器30可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码。一个图像可以分割成一个或多个分块组(通常为不重叠的)或使用一个或多个分块组(通常为不重叠的)进行解码;每个分块组可以包括一个或多个块(例如,CTU)或一个或多个分块等;每个分块可以为矩形等,可以包括一个或多个完整或部分块(例如,CTU)等。
视频解码器30的其它变型可以用于解码经编码的图像数据21。例如,解码器30可以在没有环路滤波单元320的情况下生成输出视频流。例如,对于某些块或帧,基于非变换的解码器30可以在没有逆变换处理单元312的情况下直接量化残差信号。在另一种实现方式中,视频解码器30可以将反量化单元310和逆变换处理单元312组合成单个单元。
应理解,在编码器20和解码器30中,可以针对当前环节的处理结果进行进一步处理,然后输出到下一环节。例如,在插值滤波、运动矢量推导或环路滤波等之后,可以对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行限幅(clip)或移位(shift)等操作。
提高译码效率
如上所述,基于变分自动编码器方法的图像和视频压缩方法缺乏空间自适应处理和对象分割目标来捕获真实对象边界。因此,内容适应性有限。此外,对于一些类型的视频信息,例如运动信息或残差信息,需要稀疏表示和译码来将指示开销保持在合理的水平。
因此,本发明的一些实施例引入来自自动编码器的不同空间分辨率层的分割信息译码和特征图译码,以实现内容适应性和稀疏信号表示和传输。
在一些示例性实现方式中,在除较低分辨率层(潜在空间)之外的编码器和解码器层之间引入连接,这些连接在码流中发送。在一些示例性实现方式中,码流中仅提供不同分辨率层的部分特征图,以节省带宽。例如,引入信号选择和信号馈送逻辑,以从不同分辨率层选择、发送和使用特征图的部分。在接收器侧,引入了张量组合逻辑,从而将前一分辨率层的输出与从对应于当前分辨率层的码流接收的信息组合在一起。
下面,提供了与编码器侧和解码器侧相关的一些详细实施例和示例。
编码方法和设备
根据实施例,提供了一种用于将用于图像或视频处理的数据编码为码流的方法。这种方法包括步骤:处理数据,并且数据的这种处理包括在多个级联层中生成特征图,每个特征图包括相应的分辨率,其中,生成的特征图中的至少两个的分辨率彼此不同。
换句话说,级联层中的两个或多个的分辨率可以相互不同。这里,当提到层的分辨率时,表示的是该层处理的特征图的分辨率。在示例性实现方式中,它是层输出的特征图的分辨率。包括分辨率的特征图意味着特征图的至少一部分具有所述分辨率。在某个实现方式中,整个特征图可以具有相同的分辨率。例如,特征图的分辨率可以由特征图中特征图元素的数量给出。但是,它也可以更具体地由一个或多个维度中的特征图元素的数量定义(例如x、y;替代地或此外,可以考虑通道的数量)。
这里的术语层指的是处理层。它不一定必须是一个具有可训练或经训练的参数(权重)的层,就像上面提到的一些神经网络的层。相反,层可以表示层输入的特定处理,以获取层输出。在一些实施例中,层可以是经训练的或可训练的。这里的训练指的是机器学习或深度学习。
当提到级联层时,表示的是这些层具有一定的预定顺序(序列),并且第一层的输入(以给定顺序)由第一层和(然后)其它层根据给定顺序依次处理。换句话说,第j层的输出是第j+1层的输入,j是从1到级联层总数的整数。在一个特定的非限制性示例中,对于所有可能的j值,第j+1层包括(或具有)与第j层相同或更低的分辨率。换句话说,层的分辨率不会随着级联(处理顺序)的序列(顺序)而增加(例如在编码器侧)。但是,需要说明的是,本发明不限于这种特定的级联层。在一些实施例中,级联处理的层还可以包括提高分辨率的层。在任何情况下,都可以存在不会改变分辨率的层。
例如,特征图的较低分辨率可能意味着每个特征图的特征元素较少。例如,特征图的较高分辨率可能意味着每个特征图的特征元素较多。
该方法还包括步骤:在多个层中选择与生成最低分辨率的特征图的层不同的层,并生成码流,包括将与所选择的层相关的信息插入码流。
换句话说,除了将级联中所有层的处理结果输出到码流中之外(或替代地),还向另一个(所选择的)层提供信息。可以有一个或多个所选择的层。与所选择的层相关的信息可以是任何类型的信息,例如层的输出或层的一些分割信息(后面将讨论),或者也与层处理的特征图和/或层执行的处理相关的其它信息。换句话说,在一些示例中,信息可以是特征图的元素和/或特征图内(层内)元素的位置。
级联处理的输入是用于图像或视频处理的数据。例如,这种数据可以与预测译码相关,例如帧间或帧内预测。它可以是运动矢量或预测的其它参数,例如预测模式或参考图像或方向,或除预测外的其它译码部分,例如变换、滤波、熵译码或量化。码流生成可以包括将值转换为比特(二值化)的任何转换,包括固定码字、可变长度码或算术译码。
这里,图像可以是静止图像或视频图像。图像指的是一个或多个样本,例如由摄像机捕获的样本或由计算机图形等生成的样本。图像可以包括以灰度级表示亮度水平的样本,或者可以具有包括亮度通道、色度通道、深度通道或其它通道中的一个或多个的若干通道。图像或视频编码可以是如以上所描述的混合译码(例如类似于HEVC或VVC等)或自动编码器中的任何一种。
图8是上述方法的流程图。因此,该方法包括步骤810:处理输入数据。从处理后的数据中,在选择步骤820中选择一部分,并在生成步骤830中包括在码流中。并非在处理步骤中生成的所有数据都必须包括在码流中。
根据示例性实现方式,处理还包括由级联层中的一个或多个进行下采样。图9中示出了实现(在操作中执行)这种处理的示例性网络900。
具体地,图9示出了进入网络900的用于图像或视频处理901的输入数据。用于图像或视频处理的输入数据可以是用于这种处理的任何类型的数据,例如直接如上所述的图像或视频的样本、预测模式、运动矢量等。图9中应用于输入901的处理由多个处理层911至913进行,每个处理层降低了每个运动矢量阵列的分辨率。换句话说,级联层911至913是下采样层。需要说明的是,当一个层被称为下采样层时,它执行下采样。存在下采样层911至913作为唯一任务执行下采样的实施例;以及可能存在下采样层911至913不作为唯一任务执行下采样的实施例。而是,下采样层通常也可以执行其它类型的处理。
如图9中所示,下采样层911至913除了具有处理后的数据输入和输出外,还具有导致信号选择逻辑920的附加选择输出。需要说明的是,这里的术语“逻辑”指的是实现该功能(这里是信号选择)的任何电路。信号选择逻辑920从任何层的选择输出中选择信息,以包括在码流930中。在图9的示例中,层911至913中的每个对层输入进行下采样。但是,在下采样层之间也可以添加不应用下采样的层。例如,这些层可以通过滤波或其它操作来处理输入。
在图9所示的示例中,信号选择逻辑920从层911至913的输出中选择包括在码流中的信息。该选择的目标可以是从由不同层输出的多个特征图中选择与重建图像或视频相关的信息。换句话说,下采样层和信号选择逻辑可以实现为编码器(图像或视频编码器)的一部分。例如,编码器可以是图3A所示的编码器101、图3B的编码器121、MV编码器网(图5A中端到端压缩的一部分)、图5B的MV编码器,或根据图7A的编码器的某部分(例如环路滤波220或模式选择单元260或预测单元244、254的一部分)等。
图9还包括解码器侧部分(可以称为扩展路径),包括信号馈送逻辑940和上采样层951至953。编码器侧的输入为码流930。输出911是重建的输入901等。解码器侧将在下面以更大的延迟描述。
例如,下采样可以通过最大(max)池化、平均池化或导致下采样的任何其它操作来完成。这种操作的另一个示例包括卷积操作。图10A示出了最大池化的示例。在该示例中,阵列1010的每四个元素(相邻的2×2正方形)被分组在一起,并用于确定阵列1020中的一个元素。阵列1020和1010可以对应于本发明的一些实施例中的特征图。但是,阵列也可以对应于本实施例的特征图的部分。阵列1020和1010中的字段(元素)可以对应于特征图的元素。在该图像中,特征图1020是通过下采样特征图1010确定的。阵列1010和1020的字段中的数字只是示例性的。例如,字段还可以包括运动矢量,而不是数字。在图10A所示的最大池化的示例中,阵列1010左上角的四个字段被分组在一起,并且它们的值中的最大值被选择。这组值通过为该字段分配最大值来确定阵列1020的左上角字段。换句话说,阵列1010的四个左上角值中最大的一个被插入阵列1020的左上角字段中。
替代地,在一些实现方式中,可以使用最小池化。在最小池化中选择值最小的字段,而不是选择值最大的字段。但是,这些下采样技术只是示例,各种下采样策略可以在不同的实施例中使用。一些实现方式可以在不同层中、特征图内的不同区域中和/或针对不同类型的输入数据,使用不同的下采样技术。
在一些实现方式中,下采样是使用平均池化执行的。在平均池化中,计算一组特征图元素的平均值,并与下采样特征图的特征图中的对应字段关联。
图10B示出了平均池化的示例。在该示例中,对特征图1050左上方中的特征图元素求平均值,并且特征图1060的左上方元素采用该平均值。图10B中同样示出了三个组:右上方、右下方和左下方。
在另一个实施例中,卷积操作用于部分或所有层中的下采样。在卷积中,滤波器核应用于输入特征图中的元素组或元素块。核本身可以是具有与输入元素块相同大小的元素阵列,其中,核的每个元素存储滤波器操作的权重。在下采样中,计算输入块中的元素的总和,每个元素都用从核中获取的对应值加权。如果核中所有元素的权重都是固定的,则该卷积可以对应于以上所描述的滤波器操作。例如,具有相同、固定权重和核大小步长的核的卷积对应于平均池化操作。但是,本实施例中使用的卷积的步长可以与核大小不同,权重可以不同。在一个示例中,核权重可以使得输入特征图中的某些特征可以被增强或彼此区分开。此外,核的权重可以是可学习的或事先学习的。
根据实施例,与所选择的层相关的信息包括该层的特征图的元素1120。例如,该信息可以传输特征图信息。通常,特征图可以包括与运动图像相关的任何特征。
图11示出了示例性实现方式,其中,特征图1110是具有宽度W和高度H的运动矢量的密集光流。运动分割网1140包括三个下采样层(例如对应于图9中的下采样层911至913)和信号选择电路(逻辑)1100(例如对应于信号选择逻辑920)。图11示出了右侧收缩路径中不同层的输出(L1至L3)的示例。
在该示例中,每层的输出(L1至L3)是分辨率逐渐降低的特征图。L1的输入是密集光流1110。在该示例中,从L1输出的特征图的一个元素从密集光流1110的十六(4×4)个元素确定。L1输出中的每个正方形(图11右下角)对应于通过从密集光流的16个运动矢量中下采样(downspl4)获取的运动矢量。例如,该下采样可以是平均池化或另一个操作,如以上所讨论。在该示例性实现方式中,信息1120中仅包括该层的特征图L1的一部分。层L1被选择,对应于与所选择的层相关的四个运动矢量(特征图元素)的部分在所选择的信息1120内指示。
然后,第一层的输出L1被输入第二层(downspl2)。从L1的四个元素中确定第二层的输出L2特征图元素。但是,在其它示例中,具有较低分辨率的特征图的每个元素也可以通过由具有次高分辨率的特征图的任何其它数量的元素组成的组确定。例如,确定下一层中一个元素的组中的元素的数量也可以是2的任何幂。在本示例中,输出L2特征图对应于三个运动矢量,这些运动矢量也包括在所选择的信息1120中,因此第二层也是所选择的层。第三层(downspl2)在两个维度中的每个维度中对第二层的输出L2进行因子为2的下采样。相应地,根据L2的四个元素,得到第三层的输出L3的一个特征图元素。在特征图L3中,没有任何元素被指示,即第三层不是该示例中的所选择的层。
运动分割网1140的信号选择模块1100选择上述运动矢量(来自第一层和第二层的输出的特征图的元素),并将它们提供给码流1150。该提供可以是简单的二值化,它可以,但不一定包括熵译码。
元素组可以以方形形状布置,如在图11的示例中所示。但是,这些组也可以布置成任何其它形状,例如矩形形状,其中,矩形形状的长边可以布置在水平或垂直方向上。这些形状只是示例。在一种实现方式中,可以使用任意形状。这种形状也可以在码流1150内指示。该指示可以通过指示哪些特征元素属于形状和哪些不属于形状的标志图来实现。替代地,该指示可以使用形状的更抽象的描述来完成。
在该示例性实现方式中,特征图元素被分组,使得每个元素正好属于确定下一层特征图的一个元素的一组元素。换句话说,特征图元素组是不重叠的,只有一个组有助于较高(在级联处理顺序中稍后的)层的特征图元素。但是,可以想象,一个层的元素可能有助于下一层的一个以上的元素。换句话说,在处理810中,当根据具有较高分辨率的层输出L1生成新的层输出(例如层输出L2)时,可以使用滤波器操作。
在本实施例中,选择820(例如通过信号选择1100)从多个输出特征图(L1至L3)中选择要包括在码流中的元素。选择可以被实现,使得指示所选择的数据所需的数据量较低,同时保持与解码相关的信息量尽可能大。例如,可以使用率失真优化或其它优化。
以上所描述的示例示出了三层的处理。通常,该方法不限于此。可以使用任何数量的处理层(一个或多个)。换句话说,根据更广义的示例,该方法包括获取待编码的数据。这可以是运动矢量的密集流1110,如上文所示。但是,本发明不限于此,并且替代运动矢量或除了运动矢量之外,可以处理其它数据,例如预测模式、预测方向、滤波参数,甚至空间图像信息(样本)或深度信息等。
待编码数据的处理810在该示例中包括由多个(N个)级联层中的每个层j处理。第j层的处理包括:
-如果j=1,则获取作为层输入的待编码数据,否则获取由第(j–1)层处理的特征图作为层输入(即,如果第j层是当前处理的层,则j–1是前一层);
-对获取的层输入进行处理,该处理包括下采样;
-输出下采样特征图。
在该示例中,j=1是N个处理层中分辨率最高的层。需要说明的是,该层的输入可以是密集光流(它也可以以一般的方式被视为特征图)。因此,在一些具体实施例中,j=1的层可以是输入层。但是,情况不一定如此,因为可以想象,N个处理层之前有一些预处理层。编码器的典型特征是,较早的处理层比较晚的处理层(收缩路径)具有较高的分辨率。对应地,这种情况在解码器侧可以相反。可以想象,一些处理层不改变分辨率,甚至不增强分辨率,本发明仍然可以适用。
在以上所描述的示例中,码流1150携带所选择的信息1120。例如,它可以是运动矢量或任何其它特征。换句话说,码流1150携带来自至少一个不是处理网络(编码器侧处理网络)输出层的特征图元素。在图11的示例中,仅在码流中传输所选择的特征图的一部分。该部分具有一个或多个特征元素。为了使解码器能够确定发送特征图的哪一部分,可以定义用于确定的规则。在一些实施例中,可以在码流1150中传输分割信息,以配置传输特征图的哪些部分。该示例性实施例将在下文中描述。但是,需要说明的是,以上所描述的实施例仅是示例性的,并且通常不需要这种附加信号化,因为可能存在用于导出信息并取决于其它已知或所指示的参数的规则。
在与分割信息相关的示例性实施例中,与所选择的层相关的信息包括(除了所选择的信息1120之外或替代地)信息1130,该信息指示从该层的特征图的哪一层和/或从该层的特征图的哪一部分选择该层的特征图的元素。
在图11所示的示例中,分割信息通过二值化标志来示出。例如,在右侧,每个较低分辨率的特征图或特征图部分都分配了0或1。例如,L3分配了零(0),因为它未被选择,并且没有为L3指示运动矢量(特征元素)。特征图L2有四个部分。层处理L2是所选择的层。四个部分中的三个部分的特征图元素(运动矢量)被指示,对应地,标志被设置为1。特征图L2的其余一部分不包括运动矢量,因此标志被设置为0,因为对应于该部分的运动矢量由L1特征图指示。由于L1是第一层,所以暗示在该层中提供其余的运动矢量。需要说明的是,当对应的特征图部分是部分选择的信息时,这里的二值化标志采用第一值(例如1),当对应的特征图部分不是部分选择的信息时,采用第二值(例如0)。由于它是二值化标志,所以它只能取这两个值中的一个。
这种分割信息可以在码流中提供。图11的左侧示出了分割信息1130的处理。需要说明的是,分割信息1130也可以由运动分割网1140的层处理。它可以在与特征图相同的层中处理,也可以在单独的层中处理。分割信息1130也可以解释如下。具有最低分辨率的层的一个超级像素覆盖通过对密集光流1110进行下采样downspl4得到的特征图的16×16单元。由于分配给覆盖16×16单元的超级像素的标志设置为0,这意味着特征图元素(这里是运动矢量)不为该层指示(未选择该层)。因此,特征图元素可以在对应于下一层的16×16单元的区域中指示,该区域由四个大小相等的超级像素表示,每个超级像素覆盖8×8特征元素的单元。这四个超级像素中的每个都关联了一个标志。对于那些与具有值1的标志关联的超级像素,特征图元素(运动矢量)被指示。对于标志设置为0的超级像素,不指示运动矢量。未指示的运动矢量是为具有覆盖4×4元素的单元的超级像素的层指示的。
更一般地讲,用于对用于图像/视频解码的数据进行编码的方法还可以包括选择(分割)信息以插入码流。该信息涉及由层j(j>1)处理的特征图中的第一区域(超级像素)。第一区域对应于特征图中的区域或待在包括多个元素的小于j的层中编码的初始数据。该方法还包括步骤:在从层k处理的特征图中进行的选择中,不选择对应于第一区域的区域,其中,k是等于或大于1且k<j的整数。不同层之间的区域的对应在本文中意味着对应的区域(超级像素)在空间上覆盖待编码的特征图(初始数据)中的相同特征元素(初始数据元素)。在图11的示例中,被分割的初始数据是L1数据。但是,也可以参考密集光流1110来获得对应关系。
通过图11中的特定布置,可以确保初始特征图(例如L1)的每个特征元素仅被N层中仅一个层的超级像素覆盖。这种布置提供了高效译码特征图和分割信息的优点。级联层处理框架对应于神经网络处理框架,可以通过这种方式对数据进行分割,并提供不同分辨率的各个分割部分的数据。具体地,在一些层中进行下采样的优点可以包括减少指示初始特征图的表示所需的数据量。具体地,在指示运动矢量的示例中,由于下采样,类似运动矢量的组可以由一个公共运动矢量指示。但是,为了实现良好的帧间预测,由分组运动矢量引起的预测误差应该较小。这可能意味着,对于图像的不同区域,运动矢量的不同分组水平可能是实现所需预测质量的最佳水平,同时,需要少量数据来指示运动矢量。这可以使用具有不同分辨率的多个层来实现。
在特征图元素是运动矢量的实施例中,为了下采样的目的,可以对运动矢量的长度和方向求平均值,并且平均运动矢量与下采样特征图的对应特征图元素关联。在通常的平均中,对应于下采样特征图中的一个元素的元素组的所有元素都具有相同的权重。这对应于将具有相等权重的滤波器应用于元素组或元素块,以计算下采样特征图元素。但是,在其它实现方式中,该滤波器可以针对层输入中的不同元素具有不同的权重。在其它实现方式中,可以计算相应元素组的中位数,而不是计算下采样中元素组或元素块的平均值。
在图11的示例中,下采样滤波器操作使用输入元素大小为2×2的方形滤波器,并根据所选择的滤波器操作计算映射到下采样特征图中的一个元素的滤波器输出。滤波器操作使用等于方形滤波器的边缘长度的步长2。这意味着,在两个滤波操作之间,滤波器将移动与滤波器大小相同的步长。因此,在下采样中,下采样元素是根据应用下采样滤波器的层中的非重叠块计算的。
但是,在一些进一步可以想象的实施例中,步长可以不同于滤波器的边缘的长度。例如,步长可能小于滤波器的边缘的长度。因此,用于确定下采样层中的元素的滤波器块可能重叠,这意味着待下采样的特征图中的一个元素有助于计算下采样特征图中的一个以上的元素。
通常,与所选择的层相关的数据包括特征图元素在所选择的层的特征图中的位置的指示。在这里,类似于图11(特征图L1至L3)的概念,所选择的层的特征图指的是来自所选择的层的输出,即由所选择的层处理的特征图。
例如,所选择的和未选择的特征图元素的位置由多个二值化标志指示,该指示基于码流中标志的位置。在上面参考图11的描述中,二值化标志作为分割信息1130包括在码流1150中。为了使解码器能够解析和正确解释分割信息,应定义由层处理的特征图内的标志和层和/或区域之间的分配。这可以通过定义编码器和解码器都知道的标志二值化顺序来实现。
已经针对在编码图像/视频中使用的数据是运动矢量的情况提供了上述示例。但是,本发明不限于这种实施例。在一个实施例中,待编码的数据包括图像信息和/或预测残差信息和/或预测信息。这里的图像信息是指原始图像(或待译码图像)的样本值。样本值可以是一个或多个颜色通道或其它通道的样本。
与所选择的层相关的信息不一定是运动矢量或超级像素的运动矢量。此外或替代地,在一些实施例中,该信息包括预测信息。预测信息可以包括参考索引和/或预测模式。例如,参考索引可以指示来自参考图像集中的哪个特定图像应该用于帧间预测。该索引可以相对于当前待预测块所在的当前图像。例如,预测模式可以指示是使用单个参考帧还是多个参考帧和/或不同预测的组合,如组合的帧内-帧间预测等。
但是,当待编码的数据是运动矢量场时,可以实现高效的运动矢量场译码和重建。图12示出了可以执行运动场的这种编码和解码的设备的对应通用块方案。在编码侧,运动信息是使用一些运动估计或光流估计模块(单元)1210获取的。对运动矢量(光流)估计的输入是当前图像和一个或多个参考图像(存储在参考图像缓冲器中)。在图12中,图像被称为“帧”,这个术语有时用于视频的图像。光流估计单元1210输出光流1215。在不同的实现方式中,运动估计单元可以针对一些N×N块或原始分辨率的每个像素等输出已经具有不同空间分辨率的运动信息,这可以被称为密集光流。运动矢量信息待被发送(嵌入到码流1250中)到解码侧,并用于运动补偿。为了获取运动补偿区域,区域的每个像素都应具有定义的运动矢量。为原始分辨率的每个像素发送运动矢量信息可能成本太高。为了减少指示开销,使用运动规范(或分割)模块1220。解码侧的对应模块1270执行运动生成(密集)任务以重建运动矢量场1275。运动规范(或分割)模块1220输出运动信息(例如运动矢量,和/或可能的参考图像)和分割信息。该信息被添加(编码)到码流中。
在本实施例中,运动分割单元1220和运动生成单元1270仅包括下采样层dwnspl和对应的上采样层upspl,如图13所示。最近邻方法可以用于下采样和上采样;平均池化可以用于下采样。来自不同空间分辨率的层的特征图数据由编码器选择,并作为所选择的信息1120与分割信息1130一起在码流中发送,该分割信息1130指示解码器如何解释和利用所选择的信息1120。运动分割(稀疏化)网1220在图13中示为网络1310。因此,密集光流1215被插入运动分割(稀疏化)网1310中。网络1310包括三个下采样层和信号选择逻辑1320,信号选择逻辑1320选择待包括在码流1350中的信息。该功能与已经参考更一般的图9讨论的功能类似。
在上述实施例中,与和输出层不同的层相关的信息的指示提高了系统的可扩展性。该信息可以是与隐藏层相关的信息。在下文中,给出了涉及利用所提供的可扩展性和灵活性的实施例和示例。换句话说,提供了一些关于如何选择层和信息外观的方法。
本文中的一些实施例示出了使用自动编码器架构的图像或视频压缩系统,该自动编码器架构包括编码部分中的一个或若干个维度(或空间分辨率)降低步骤(由结合下采样操作的层实现)。与降低(编码)侧一起,学习重建(解码)侧,其中,自动编码器尝试从降低的编码中生成尽可能接近其原始输入的表示,这通常意味着解码侧上的一个或若干个分辨率增加步骤(由结合上采样操作的层实现)。
在这里和之后,在编码器下,是指自动编码器的编码部分,该编码部分生成包括在码流中的潜在信号表示。例如,该编码器是上面提到的101或121。在解码器下,是指自动编码器的生成部分,该生成部分感知从码流中获取的潜在信号表示。例如,该解码器是上面提到的解码器104或144。
如参考图11已经描述的,编码器根据信号选择逻辑1100从不同空间分辨率的层中选择特征图信息(所选择的信息1120)的一部分(或多个部分),并在码流1150中发送所选择的信息1120。分割信息1130指示从哪一层以及对应层的特征图的哪一部分获取所选择的信息。
根据实施例,所述多个(N个)级联层中的第j层的处理包括:
-确定通过使用所述第j层输出的特征图元素重建重建图像的一部分而产生的第一成本;
-确定通过使用第(j–1)层输出的特征图元素重建图像的部分而产生的第二成本;
-如果第一成本高于第二成本,则选择第(j–1)层,并选择与第(j–1)层中的所述部分相关的信息。
选择哪一层的决定可以根据失真或基于失真函数执行。例如,对于运动矢量场译码,重建图像(或图像部分)可以是运动补偿图像(或图像部分)。
为了在本示例性实现方式中选择所选择的信息,编码器包括成本计算单元(模块),其估计在特定位置从特定分辨率层发送运动信息的成本。该成本是通过使用所选择的运动矢量的运动补偿引起的失真结合发送运动信息所需的比特量的估计乘以拉格朗日乘数来计算的。换句话说,根据实施例,执行率失真优化(rate-distortion optimization,RDO)。
换句话说,在一些实施例中,第一成本和第二成本包括数据量和/或失真。例如,数据量包括发送与所选择的层相关的数据所需的数据量。这可以是运动信息或其它信息。它还可以是或包括由残差译码引起的开销。失真是通过将重建图像与目标图像(待编码的原始图像或待编码的此类图像的一部分)进行比较来计算的。需要说明的是,RDO只是一种可能性。本发明不限于这种方法。此外,复杂性或其它因素可能包括在成本函数中。
图14示出了成本计算的第一部分。具体地,成本计算(或估计)单元1400获取由运动分割单元1140的下采样层(downspl4)下采样的光流L1。然后,成本计算单元1400将光流1415上采样到其原始分辨率,例如在这种情况下,它在两个方向(x和y)中的每个上进行4的上采样。然后,使用从1410输出的上采样运动矢量和参考图像1405执行运动补偿1420,以获取补偿帧(图像)或运动补偿帧(图像)1420的一部分运动。然后,通过比较运动补偿图像(部分)1420与目标图像1408来计算失真1430。例如,目标图像1408可以是待译码的图像(原始图像)。在一些示例性实现方式中,可以通过计算目标图像1408与运动补偿图像1420之间的均方误差(mean squared error,MSE)或绝对差值之和(sum of absolute difference,SAD)来执行比较。但是,替代地或此外,其它类型的度量可以使用,例如针对主观感知的更高级的度量,如MS-SSIM或VMAF。然后,所计算的失真1430被提供给成本计算模块1460。
此外,速率估计模块1440计算每个运动矢量的比特量的估计。速率估计不仅可以包括用于指示运动矢量的比特,而且还可以包括用于指示分割信息的比特(在一些实施例中)。所获取的比特数可以被归一化(1450),例如每像素(特征图元素)。所得到的速率(比特量)被提供给成本计算模块1460。为了获取速率(比特量)估计,例如使用运动信息译编码模块(例如通过执行译码并记录所产生的比特量),或在一些简化的实现方式中,使用其x或y分量的运动矢量的长度作为粗略估计,来执行每个运动矢量传输的比特量的评估。可以应用另一种估计技术。为了考虑分割信息,可以通过分割信息译码模块(例如,通过生成和译码分割信息并计数所得到的比特的数量)来评估,或者在更简单的实现方式中,通过将比特添加到总比特量中来评估。
在该示例中,成本计算的下一步是成本计算1460,然后是因子为4的下采样1470(downspl 4),以达到运动分割单元1100的对应下采样层的分辨率。每个点(图像样本值)只能发送一个运动矢量。因此,所得到的成本张量可以具有对应的大小(维度)。因此,比特评估值可以通过下采样滤波器形状的平方(例如4×4)归一化。
然后,成本估计单元1460使用拉格朗日乘数,使用如下公式计算成本:
Cost=D+λ*R,或
Cost=R+β*D
其中,D表示失真(由1430计算),R比特估计(由1440或1450输出的速率估计),λ和β是拉格朗日乘数。下采样1470输出成本张量1480。如本领域已知的,拉格朗日乘数以及λ和β可以凭经验获取。
因此,获取了具有特征图中每个位置(在这种情况下,是密集光流的W×H位置)的成本估计的张量1480。需要说明的是,使用顺序平均池化和利用最近邻方法的上采样的结果是在N×N(例如4×4)区域中对运动矢量求平均值,其中,N×N是上采样操作的平均池化滤波器形状和缩放因子。在使用最近邻方法上采样期间,较低分辨率层的值在对应于滤波器形状的较高分辨率层的所有点中复制(重复)。这对应于平移运动模型。
成本选择单元的各种实现方式是可能的。例如,图15示出了另一个示例性实现方式。在这个示例中,与图14不同的是,在x维度和y维度中的每个中对密集光流进行因子为4的下采样(1501)之后获取的运动矢量场不被上采样(1415)。相反,它直接提供给运动补偿1510和估计速率1540。相反,在运动补偿1510和失真评估1530之前,参考图像1505和目标图像1505可以被下采样(1515、1518)到对应的分辨率。这导致排除了图14中的初始运动场上采样(1415)到原始分辨率的步骤,以及排除了图14中的最终成本下采样步骤1470。这也使得比特归一化1450变得不必要。这种实现方式在处理期间可能需要较少的内存来存储张量,但可能提供较不准确的结果。需要说明的是,为了加速或降低RDO的复杂性,可以想象对密集光流以及参考和目标图像进行下采样,甚至比L1所做的更多。但是,这种RDO的精度可能会进一步降低。
将成本估计单元(1400、1500)应用于运动分割单元(1220、1310)的每个下采样层的结果是获取具有不同运动矢量平均级别(不同空间分辨率)的成本。在下一步骤中,信号选择逻辑1100使用来自每个下采样层的成本信息来选择不同空间分辨率的运动信息。为了实现信号选择逻辑1100执行来自顺序(级联)下采样层的成本的成对比较,信号选择逻辑1100在每个空间位置选择最小成本,并将其传播到(处理序列中的)下一个下采样层。图16示出了信号选择单元1600的示例性架构。
密集光流610进入三个下采样层:downspl4、downspl2和downspl2,类似于图11中所示的层。图16中的信号选择逻辑1600是图11中的信号选择逻辑1100的示例性实现方式。具体地,LayerMv张量611是进入成本计算单元613的子采样运动矢量场(特征图)。LayerMv张量611还进入第一层的层信息选择单元614。层信息选择单元614在该(第一)层上存在所选择的运动矢量的情况下,向码流提供所选择的运动矢量。其功能将在下文进一步描述。
成本计算单元613计算成本,例如,如参考图14为成本计算单元1400所描述的。它输出一个成本张量,然后将其进行因子为2的下采样,以匹配第二层操作的分辨率。在第二下采样层downspl 2处理之后,LayerMV张量621被提供给下一(第三)层以及第二层的成本计算单元623。成本计算单元623以与成本计算单元1400类似的方式操作。本领域技术人员应知道,与参考图14描述的示例中的因子为4的上采样/下采样不同,在每个方向上应用因子为2的下采样。
为了对来自成本计算单元613和623的成本张量进行成对比较,来自前一(第一)下采样层的成本张量已经被下采样(因子为2的下采样)到当前分辨率层(第二层)。然后,在两个成本张量之间执行池化操作625。换句话说,池化操作625在每个元素的成本张量中保持较低的成本。根据池化操作结果的元素索引,选择成本较低的层。例如,如果在一个特定张量元素中,第一张量的成本比第二张量的对应元素的成本低,则索引等于零,否则索引等于1。
为了确保用于训练目的的梯度传播,可以使用软arg max来获取具有梯度的池化索引。如果不需要梯度传播,择可以使用具有索引的正则池化。作为池化操作625的结果622,指示是否选择了来自当前分辨率层或先前分辨率层的运动矢量(LayerFlag张量)以及来自运动分割单元(LayerMv张量)的对应下采样层的运动矢量的索引被传输到当前(这里是第二)层的层信息选择单元624。最佳池化成本张量传播到下一下采样级别(downspl2),然后对第三层重复该操作。
具体地,第二层的输出LayerMv 621被第三层进一步下采样(downspl 2),并且所得到的运动矢量场LayerMv 631被提供给第三层的成本计算单元633。计算的成本张量与MinCost池化单元625提供的从第二层传播的下采样成本张量逐元素进行比较635。在MinCost池化635的处理之后,指示是否选择了来自当前(第三)分辨率层或先前(第二)分辨率层的运动矢量(LayerFlag张量)以及来自运动分割单元(LayerMv张量)的对应下采样层的运动矢量的索引被传输到当前(这里是第三)层的层信息选择单元634。在本示例中,仅有三个层用于示例性目的。但是,通常,可能不止三层,其中,其它层和这些层的信号选择逻辑具有类似于第二层和第三层所示的功能的功能。
为了从每个空间分辨率层收集池化信息,下一个处理以相反的顺序执行,即使用层信息选择单元634、624和614从较低分辨率层到较高分辨率层执行。首先,与最低分辨率层(这里是第三层)大小相同的TakeFromPrev张量通过0初始化(601)。然后,对不同分辨率的层重复相同的操作,如下所示。在张量(NOT TakeFromPrev)的值等于1的位置,选择(当前层中的)LayerFlag张量的值作为分割信息在码流中发送。(NOT TakeFromPrev)张量是TakeFromPrev张量的逐元素取反。因此,在第三层(这里是最后一层)中,(NOTTakeFromPrev)张量的所有值都设置为1(通过步骤601设置为取反的0)。因此,总是发送最后一个(这里是第三)层的分割信息1130(LayerFlag)。
TakeFromCurrent张量是使用逻辑运算TakeFromCurrent=(NOT TakeFromPrev)AND LayerFlag获取的。此张量TakeFromCurrent的标志指示运动矢量信息是否被选择来在来自当前分辨率层的码流中发送。层信息选择单元(634、624、614)通过取LayerMv张量的值,从运动分割单元的对应下采样层中选择运动矢量信息,其中,TakeFromCurrent张量的值等于1。该信息作为所选择的信息1120在码流中发送。
对于对应于最低分辨率的第三个(倒序第一个)处理层,所有标志都会发送,因为TakeFromPrevv初始化为零,然后(NOT TakeFromPrev)的所有值都将等于1。对于对应于最高分辨率层的最后一个处理层,不需要发送LayerFlag标志。假设对于未从前一层选择运动信息的所有位置,这些位置应从当前或下一(最高分辨率)层中选择。
需要说明的是,图16所示的成本计算是可以在GPU/NPU上运行的可并行方案。该方案也是可训练的,因为它正在传输梯度,从而支持在端到端可训练的视频译码方案中使用它。
需要说明的是,逆序处理与解码器在解析分割信息和运动矢量信息时执行的处理类似,如下面讨论解码器功能时所示。
图17中示出了信号选择逻辑1700的另一个示例性实现方式。与图16相比,图17的框图在同一分辨率层引入了多个译码选项。这通过第1层成本计算单元710中的选项1至N来示出。需要说明的是,通常,一个或多个层或所有层可以包括更多的选项。换句话说,成本计算单元613、623、633中的任何一个都可以提供更多的选项。例如,这些选项可以是以下中的一个或多个或全部:用于运动估计/补偿的不同参考图像,单、双或多假设预测,不同预测方法(例如帧间或帧内预测、不进行预测的直接译码、多假设预测),存在或不存在残差信息,残差的量化水平等。在成本计算单元710中,为每个译码选项计算成本。然后,使用最小成本池化720选择最佳选项。所选择的最佳选项的指示符(例如索引)705被发送到层信息选择模块730,然后,如果将选择当前层的对应点来发送信息,则在码流中传输指示符BestOpt。在给定的示例中,仅对第一层示出了选项,但是应理解,类似的选项选择逻辑也可以应用于不同分辨率的其它层,或应用于所有层。
上述方法还适用于逻辑信息的分割和传输,例如,该逻辑信息是控制图像重建过程的标志或切换器,以及在解码之后保持不变并与编码侧保持相同的信息。换句话说,不对在图16的示例性实现方式中处理的运动矢量场(密集光流)进行编码,而是可以以类似的方式(包括分割)对任何一个或多个其它参数进行编码。它可以是以下中的一个或多个或全部:指示用于运动估计/补偿的不同参考图像等的指示符,单、双或多假设预测指示符,不同预测方法(例如帧间或帧内预测),不进行预测的直接译码的指示符,多假设预测,存在或不存在残差信息,残差的量化水平,环内滤波器的参数等。
对上述实施例和示例的进一步修改
根据第一修改,运动分割单元1310的下采样层和/或运动生成单元1360的上采样层包括卷积操作。图18示出了这一点。如图18所示,与图13相比,下采样层“dwnspl”和上采样层“upspl”分别被运动分割单元1810中的下采样卷积层“conv↓”和运动生成单元1860中的上采样卷积层“conv↑”替换。卷积重新缩放(下采样、上采样)层的一些优点是实现了可学习的下采样和上采样过程。例如,在用于运动信息密集的情况下,这支持找到最佳的上采样变换,并因此可以减少由使用逐块平均运动矢量信息的运动补偿引起的块效应,如在上述实施例和示例中所描述。同样的情况也适用于原始图像强度值等的纹理恢复过程,或级联层处理的预测残差生成。
在图18的上面示例中,所有的下采样层和上采样层都是卷积层。通常,本发明不限于这些实现方式。通常,在分割单元(1310、1810)内和/或在生成单元(1360、1860)内,下采样和对应的上采样操作的子集(一个或多个)可以作为卷积实现。
尽管本文所描述的示例是针对密集光流/运动矢量场处理提供的,并且因此参考运动分割单元(1310、1810)和/或运动生成单元(1360、1860),但本发明不限于这种数据/特征图。相反,在本文的任何实施例和示例中,可以代替运动矢量场或除了运动矢量场之外,处理任何译码参数或甚至纹理,例如图像的样本或预测残差(预测误差)等。
需要说明的是,例如,具有运动信息平均作为下采样的编码器可以与包括卷积上采样层的解码器结合使用。此外,具有卷积层的想要寻找更好的潜在表示的编码器可以与实现基于最近邻的上采样层的运动生成网络(解码器)结合。进一步的组合是可能的。换句话说,上采样层和下采样层不一定是相似的类型。
根据可与上述实施例和示例中的任何一个(以及与第一修改)组合的第二修改,网络的处理包括具有上述不同分辨率的级联层之间的一个或多个附加卷积层。例如,运动分割单元1310和/或运动生成单元1360还包括在一些或全部下采样与上采样层之间的一个或多个中间卷积层。这在图19中示出,图19示出了这种运动分割网络(模块)1910和运动生成网络(模块)1860的示例性实现方式。需要说明的是,术语“模块”和“单元”在本文中可互换地用于表示功能单元。在该具体实施例中,单元1910和1960更具体地是具有多个级联层的网络结构。
例如,与运动分割单元1310相比,运动分割单元1910在每个下采样层“conv↓”(这也可以是其它类型的下采样)之前具有附加的卷积层“conv”。此外,与运动生成单元1360相比,运动生成单元1960在每个上采样层“conv↑”(也可以是其它类型的上采样)之前具有附加的卷积层“conv”。
这可以进一步减少运动信息稀疏化引起的块效应,并增加寻找更好的潜在表示的泛化效果。与上面关于第一修改提到的类似,来自以上所描述的不同实施例/修改的编码器和解码器可以组合在一个压缩系统中。例如,可以仅具有在下采样层之间具有附加层的编码器,并且具有没有这种附加层的解码器,反之亦然。替代地或此外,在编码器和解码器处,可以具有不同数量和位置的这种附加层。
根据第三修改,如图19所示,为输入和输出信号提供了直接连接。需要说明的是,尽管在这里的同一图中示出,但是第二修改和第三修改是独立的。它们可以一起或单独应用于先前描述的实施例和示例以及其它修改。直接连接用虚线示出。
除了自动编码器的潜在表示(最低分辨率层的输出)的瓶颈信息之外,在一些实施例中,来自较高分辨率层的信息被添加到码流中。为了优化指示开销,只有来自不同分辨率层的部分信息被插入码流中,由信号选择逻辑控制。在接收(解码器)侧,对应的信号馈送逻辑将信息从码流馈送到不同空间分辨率的层,如下文将更详细地描述。附加地,来自下采样层之前的输入信号的信息可以被添加到码流中,通过该码流可以进一步增加可变性和灵活性。例如,译码可以与具有较高空间分辨率的真实对象边界和分割部分对齐,并根据特定序列的特征调整。
根据第四修改,下采样和上采样滤波器的形状可以通过使用掩码操作而具有方形形状之外的形状,例如具有水平或垂直取向的矩形、非对称形状或其它任意形状。这支持进一步增加分割过程的可变性,以更好地捕获真实对象边界。图20中示出了这种修改。在运动分割单元2010中,在第一下采样层之后(可以与上述实施例中的任何一个相同),是两个另外的下采样层,这两个下采样层使用滤波器形状集合中的所选择的滤波器。这个修改不限于运动矢量信息的处理。
通常,在层下采样中,应用的是:使用第一滤波器对输入特征图进行下采样,以获取第一特征图,以及使用第二滤波器对输入特征图进行下采样,以获取第二特征图。所述成本计算包括确定通过使用所述第一特征图重建重建图像的一部分而产生的第三成本,以及确定通过使用所述第二特征图重建重建图像的一部分而产生的第四成本。然后,在选择中,如果第三成本小于第四成本,则选择第一特征图,如果第三成本大于第四成本,则选择第二特征图。在该示例中,选择在两个滤波器中进行。但是,本发明不限于两个滤波器,而是可以以类似的方式从预定义数量的滤波器中进行选择,例如通过估计所有可选择的滤波器的成本和通过选择滤波器最小化成本。
第一滤波器和第二滤波器的形状可以是方形、水平和垂直取向的矩形中的任何一个。但是,本发明不限于这些形状。通常,可以设计任何任意滤波器形状。滤波器还可以包括可以被定义为任意期望形状的滤波器。这种形状可以通过获取掩码来指示,其中,掩码由标志组成,其中,掩码表示任意滤波器形状,并且其中,第一滤波器和第二滤波器(通常来自滤波器组的任何可选择的滤波器)中的一个具有任意滤波器形状。
在示例性实现方式中,为了提供可变性,编码器还包括在借助具有相互不同形状的滤波器获取的成本张量之间池化。所选择的滤波器形状的索引在码流中作为分割信息的(一部分)指示,类似于以上所描述的运动矢量。例如,对于在水平和垂直方向的矩形形状之间进行选择,对应的标志可以在码流中指示。例如,参考图17描述的选择多个编码选项的方法可以用于在同一分辨率层选择不同的滤波器形状。
根据第五修改,可以在同一分辨率层中选择预定义的不同运动模型的集合中的运动模型。在之前的实施例中,已经描述了下采样和/或上采样滤波器的特定情况。在这些情况下,运动信息可以在表示平移运动模型的方形块上平均。在该第五修改中,除了平移运动模式之外,还可以使用其它运动模型。这些其它运动模型可以包括以下中的一个或多个:
-仿射运动模型,
-高阶运动模型,或
-专门训练来表示特定运动模型的CNN层,例如缩放、旋转、仿射、透视等。
在第五修改的示例性实现方式中,自动编码器还包括表示除平移运动模型之外的模型的CNN层和/或“手工”层的集合。图21中示出了这种自动编码器(和解码器)。在图21中,在编码器侧和解码器侧提供了包括表示为“卷积拟合集”的滤波器组的层。
例如,在每个空间层,编码器从滤波器集中选择对应于特定运动模型的适当滤波器,并将指示插入码流中。在接收侧,信号馈送逻辑解释指示符,并使用该集中对应的滤波器在特定层执行卷积。
以上所描述的方法的示例使用运动信息,具体是运动矢量,作为用于编码的示例性输入。需要再次说明的是,这些方法也适用于不同类型的图像或视频信息的压缩,例如直接图像采样值、预测残差信息、帧内和帧间预测参数等。
根据第六修改,上面参考图16或图17举例说明的RDO可以应用于传统的基于块的编解码器。
传统的视频译码方法,例如最先进的视频译码标准,例如AVC、HEVC、VVC或EVC,使用基于块的译码概念,根据该概念,图像被递归地划分成方形或矩形形状的块。对于这些块,信号重建参数在编码器侧估计或评估,并在码流中发送到解码器。通常,编码器的目标是在率失真成本方面为代表图像的块集找到最佳的重建参数,尝试最大限度地提高重建质量(即最大限度地减少原始图像的失真),并最大限度地减少发送重建过程参数所需的比特数。参数选择(或译码模式决策)的任务是一项复杂和资源密集型的任务,这也是编码器复杂度的主要原因。由于处理时间的限制,例如,在实时应用中,编码器可能会牺牲模式决策的质量,而模式决策又会影响重建信号的质量。优化模式决策过程一直是一种理想的技术改进。
译码模式决策之一是是否根据分割方法将当前块(或译码单元(coding unit,CU))划分为多个块的决策。
根据第六修改,上述运动分割单元1310(或1810)适用于基于最小化成本(例如速率失真优化准则)的划分模式决策。图22示出了这种优化的一个示例。
如图22所示,块分割结构用于表示不同空间分辨率的信息,而不是使用下采样层。对于图像或图像的一部分的给定大小N×N(考虑方形块)的每个块,成本计算单元计算失真张量,并进一步将分辨率进行因子为16的下采样(以匹配原始分辨率)。在图22的给定示例中,第一块大小为16×16;例如,下采样通过平均池化操作执行,以获取张量,其每个元素表示每个16×16块中的平均失真。在第一层中,图像以初始的最高分辨率分割为16×16块2201。在第二层中,分辨率降低,使得图像中的块大小2202为32×32(对应于连接前一层的四个块)。在第三层中,分辨率再次降低,使得块大小2203为64×64(对应于连接前一层的四个块)。需要说明的是,在这种情况下,来自前一层的四个块的连接可以被视为块相关信息的子采样。这是因为,在第一层中,为每个16×16块提供块相关信息,而在第二层中,仅为32×32块提供块相关信息,即提供的参数少了四分之一。类似地,在第三层中,仅为64×64块提供块相关信息,即提供的参数比第二层少四分之一,比第一层少十六分之一。
在该上下文中,块相关信息是每个块译码的任何信息,例如预测模式;预测模式特定信息,例如运动矢量、预测方向、参考图像等;滤波参数;量化参数;变换参数或可能在块(译码单元)级别上改变的其它设置。
然后,相应的第一层、第二层和第三层的成本计算单元2211、2212和2213根据用于相应块大小2201、2202和2203的块重建参数并根据大小为W×H的输入图像计算成本。
输出成本张量作为每个块中的平均失真获取,并结合使用拉格朗日乘数发送N×N(例如在第一层16×16中)块的译码参数所需的比特估计。图23示出了块N×N的成本计算单元2300(其可以对应于成本计算单元2211、2212和2213中的每个或任何一个)的示例性结构。
图23示出了N×N的一般块大小230x的成本计算单元2300的示例性框图。成本计算单元2300获取(2310)与大小为N×N的块关联的块重建参数(块相关参数)。该获取可以对应于从存储器等中获取参数(参数值)。例如,块相关参数可以是特定的预测模式,例如帧间预测模式。在单元2310中,获取块重建参数,在重建单元2320中,使用这些参数重建图像的部分(在该示例中,所有块都使用帧间预测模式重建)。失真计算单元2330通过将图像的重建部分与目标图像的对应部分进行比较,计算图像的重建部分的失真,目标图像可以是待编码的原始图像。由于失真可以每个样本计算,所以为了在块基础上获取它,可以执行失真的下采样2340(每N×N块一个值)。在较低的分支中,估计(2360)对图像进行译码所需的速率或比特数。具体地,比特估计单元2360可以估计每个N×N大小的块待指示的比特数。例如,可以计算帧间预测模式所需的每个块的比特数。具有估计的失真和比特量(或速率),成本可以根据上面提到的拉格朗日优化等计算(2350)。输出是一个成本张量。
需要说明的是,在整个描述中,如果仅仅观察到灰度图像等样本的2D图像,择这里的术语“张量”可以是矩阵。但是,图像可以有多个通道,例如颜色或深度通道,使得输出也可以具有更多的维度。一般特征图也可以超过2维或3维。
对于第一层(具有16×16块粒度)和下一级四叉树划分为大小为32×32样本的块,执行相同的成本评估过程。为了决定是使用一个32×32块作为重建参数(块相关参数)还是使用四个16×16块更好,对16×16块的评估的成本张量进行因子为2的下采样(参考图22)。然后,最小成本池化操作2222为每个32×32块提供最佳决策。池化成本的索引被传递到层信息选择单元2232,以作为split_flag在码流中发送。根据池化索引的最佳选择块的重建参数blk_rec_params也被传递到层信息选择单元2231。池化成本张量进一步传递(进行因子为2的下采样)到大小为64×64的块的下一个四叉树聚合级别,即传递到MinCost池化2223。MinCost池化2223还接收成本计算单元2213中针对64×64块分辨率2203计算的成本。它将池化成本的索引作为split_flags传递到层信息选择单元2233,以在码流中指示。它还根据池化索引将最佳选择块的重建参数blk_rec_params传递给层信息选择单元2233。
为了从每个块聚合级别收集池化信息,使用层信息选择单元2233、2232和2231以上面参考图16描述的方式,以从较高(在该示例中最高)聚合级别(64×64样本)到较低(在该示例中最低)聚合级别(16×16样本)的相反顺序执行处理。
结果是码流,该码流对通过优化获取的四叉树划分以及经编码的值和所得到的分割部分(块)的可能的进一步的译码参数进行编码。以上所描述的方法支持对块分割的划分标志做出决策。为了获得每个块的重建参数,可以使用基于评估每种或部分可能的译码模式的传统方法。
图24示出了第七修改的示例。第七修改是上面参考图22和图23描述的第六修改的演变。第七修改表示一种方案,其中,译码模式的评估被纳入设计。具体地,如图中所示,成本计算单元710可以评估N个选项。需要说明的是,术语“N”在这里是某个整数的占位符。表示选项数量的“N”不一定与表示一般块大小的“N×N”中的“N”相同。在成本计算单元710中,对于相同级别的块分割划分,例如对于大小为16×16样本的块(如在第一层中),编码器迭代每个块的所有可能(或其有限集合)译码模式。
考虑编码器,它有N个选项来对每个16×16块(表示为blk_rec_params 0、blk_rec_params 1……blk_rec_params N)进行译码。例如,参数组合blk_rec_params k(k是从0到N的整数)可以是某些预测模式(例如帧间预测和帧内预测中的)、某些变换(例如DCT和KLT中的)、某些滤波顺序或滤波器系数集(预定义的滤波器中的)等的组合。在一些实现方式中,如果只优化了一个参数,则blk_rec_params k可以是单个参数的值k。本领域技术人员应知道,任何一个或多个参数都可以通过检查它们的使用成本来优化。
对于每个给定的块重建参数集(blk_rec_params k),成本计算单元2410计算表示每个块的成本的张量。然后,使用最小成本池化2420,选择每个块的最佳译码模式,并将其传输到层信息选择单元2430。最佳池化成本张量进一步进行因子为2的下采样,并传输到下一个四叉树聚合级别(在这种情况下,第二层对应于块大小为32×32的聚合)。然后,以与上述第六个修改相同的方式做出划分(分割)决策。在图24中,选项0..N仅在第一层(聚合级别16×16)中评估。但是,本发明不限于这种方法。相反,可以在每个聚合级别执行0..N选项的评估。
例如,在四叉树聚合的下一级(32×32、64×64),编码器评估(通过评估相应成本单位中的成本)和池化(通过相应的MinCost池化单元)每个块的最佳译码模式(为了清晰起见,未在图中示出),将该最佳译码模式与前一聚合级别的最佳译码模式进行比较。关于最佳模式的决定和相应地设置的对应重建参数被提供给层信息选择单元(例如为第一层示出的层信息选择单元2430)。为了从每个块聚合级别收集池化信息,使用层信息选择单元以第六修改中所描述的方式,以从较高聚合级别(64×64)到较低聚合级别(16×16)的相反顺序执行处理。
不同的块形状可以用来表示更高级的分割方法,例如二叉树、三叉树、非对称和几何分割。图25举例说明了块的这种分割。换句话说,优化不一定只在不同的块大小上执行,它也可以针对不同的分割类型执行(例如通过对应的选项)。图25示出了以下示例:
-四叉树分割2510。在四叉树分割中,一个块被划分(分割)为四个大小相同的块。
-(对称)二叉树分割2520。在对称二值化分割中,一个块被划分为两个大小相同的块。划分可以是垂直划分或水平划分。垂直或水平是划分的附加参数。
-非对称二叉树分割2530。在非对称二值化分割中,一个块被划分为两个大小不同的块。大小比可以是固定的(以节省指示引起的开销)或可变的(在这种情况下,一些比率选项也可以优化,即可配置)。
-三元树分割2540。在三元分割中,一个块被两条垂直线或两条水平线划分为三个分割部分。垂直或水平是划分的附加参数。
本发明不限于这些示例性分割模式。可以使用三角形分割或任何其它类型或分割。
在第七修改中,适用于流行视频译码标准的混合架构得到基于强大(神经)网络的方法的支持和授权。所描述的方法的技术优点可以提供高度可并行的GPU/NPU友好方案,该方案可以支持加速模式决策过程所需的计算。它可以使全局图像优化成为可能,这是因为多个块在同一决策级别被考虑,合并可学习的部分,以加快决策速度,例如,用于评估重建参数译码所需的比特量。
总之,根据第六修改或第七修改的级联层结构的处理包括在不同的层中处理与被分割(即划分)为分别具有不同块大小和/或形状的块的相同图像相关的数据。层的选择包括:根据为预定的译码模式集计算的成本选择层。
换句话说,不同的层可以以不同的块大小处理图像数据。因此,级联层包括至少两个处理相互不同块大小的层。当在这里提到“块”时,表示的是一个单元,即执行译码的图像的一部分。该块也可以称为译码单元或处理单元等。
预定的编码模式集对应于译码参数值的组合。不同的块大小可以在单个译码模式集(一个或多个译码参数的值的组合)下评估。替代地,评估可以包括块大小和分割部分形状的各种组合(例如图25中的那些)。但是,本发明不限于此,并且,如在第七修改中特别提到的,可以有若干个预定的译码模式集(译码参数值的组合),其可以进一步包括每块的编码模式,例如帧内/帧间预测类型、帧内预测模式、残差跳过、残差数据等。
例如,该处理包括:对于至少一个层,确定不同译码模式集(译码参数的值的组合)的成本,并根据所确定的成本选择译码模式集中的一个。图24示出了只有第一层执行这种选择的情况。但是,这并不是限制。快速地,每个成本计算单元可以具有与第一成本计算单元2410的结构相同的结构,包括0..N选项。为了使图更简单,图中没有示出这一点。
如上所述,这是一个GPU友好的RDO,可以由编解码器执行,并选择每个块的最佳译码模式。在图24中,输入图像在每层中都是相同的。但是,图像的译码(用于计算成本)是在具有不同块大小的每层中执行的。除了块大小,对于一个或多个块大小,可以根据RDO测试和选择进一步的译码参数。
具体地,在这些修改中,与所选择的层相关的数据的指示包括所选择的译码模式集(例如blk_rec_params)。
总之,在一些实施例中,可以提供编码器,其在结构上对应于用于视频或图像信息译码的神经网络自动编码器。该编码器可以用于通过包括不同空间分辨率层的神经网络分析输入图像或视频信息;在码流中传输对应于最低分辨率层输出的潜在表示;在码流中传输除最低分辨率层之外的输出。
解码
以上所描述的编码器提供码流,该码流包括所选择的层的特征数据和/或分割信息。对应地,解码器在多层中对从码流接收的数据进行处理。此外,所选择的层从码流接收附加的(直接)输入。输入可以是一些特征数据信息和/或分割信息。
对应地,在下文中,描述侧重于与作为特征数据的所选择的层相关的信息的实施例。所描述的其它实施例侧重于与作为分割信息的所选择的层相关的信息。也存在码流承载特征数据和分割信息并且层处理特征数据和分割信息的混合实施例。
在一个简单的示例中,可以提供神经网络自动编码器的解码器用于视频或图像信息译码。解码器可以用于从码流读取对应于较低分辨率层输入的潜在表示;根据从码流读取的除较低分辨率层之外的对应信息获取层输入信息;根据从码流中获取的层信息和上一层的输出,获取层的组合输入;将组合后的输入馈入层;根据层的输出合成图像。
在这里,术语“较低分辨率”指的是处理具有较低分辨率的特征图(例如从码流提供的潜在空间的特征图)的层。较低分辨率实际上可能是网络的最低分辨率。
解码器还可以用于根据从码流中读取的对应信息获取分割信息;以及根据分割信息获取层的组合输入。分割信息可以是四叉树、双(二叉)树或三元树数据结构或它们的组合。例如,层输入信息可以对应于运动信息、图像信息和/或预测残差信息等。
在一些示例中,使用超先验神经网络解码从对应于层输入信息的码流获取的信息。从对应于分割信息的码流获取的信息可以使用超先验神经网络进行解码。
解码器可以容易地应用于运动矢量(例如运动矢量场或光流)的解码。这些运动矢量中的一些可以是相似的或相关的。例如,在示出对象在恒定背景上移动的视频中,可能有两组相似的运动矢量。作为运动矢量的第一组可以是用于预测示出对象的像素的矢量,第二组可以是用于预测背景的像素的矢量。因此,与其指示经编码的数据中的所有运动矢量,不如指示运动矢量组,以减少表示经编码的视频的数据量。这可以支持指示需要较小数据量的运动矢量场的表示。
图9示出了由编码器如以上所描述生成的在解码器处接收的码流930。在解码侧,系统900的解码器部分包括信号馈送逻辑940,在一些实施例中,信号馈送逻辑940解释从码流930获取的分割信息。根据分割信息,信号馈送逻辑940标识特征图部分的特定(所选择的)层、空间大小(分辨率)和位置,对应的所选择的信息(也从该码流获取)应该放置在其中。
需要说明的是,在一些实施例中,分割信息不一定由级联网络处理。它可以独立地提供,也可以从码流中的其它参数导出。在其它实施例中,特征数据不一定在级联网络中处理,但分割信息是。因此,“使用特征信息解码”和“使用分割信息解码”两个部分描述了这些实施例的示例以及这些实施例的组合。
需要说明的是,对于两个部分的实施例,以上所描述的编码器侧修改(第一至第七)对应地应用于解码器侧。为了更好的易懂性,修改的附加的功能不在两个部分中复制。但是,本领域技术人员应知道,它们可以替代地或组合地应用于两个部分的解码方法。
使用特征信息解码
在本实施例中,提供了一种用于从码流中解码用于图像或视频处理的数据的方法,如图33所示。对应地,提供了一种用于从码流中解码用于图像或视频处理的数据的装置。该装置可以包括处理电路,用于执行该方法的步骤。
该方法包括从码流中获取(3310)两个或多个特征图元素集,其中,每个特征图元素集与(相应的)特征图相关。获取可以通过解析码流执行。在一些示例性实现方式中,码流解析还可以包括熵解码。本发明不限于从码流中获取数据的任何特定方式。
该方法还包括步骤:将所述两个或多个特征图元素集中的每个分别输入(3320)多个级联层中的两个或多个特征图处理层。
级联层可以形成处理网络的一部分。在本发明中,术语“级联”是指一个层的输出随后由另一个层处理。级联层不必紧密相邻(其中一个级联层的输出直接进入级联层中的第二个的输入)。当参考图9时,来自码流930的数据被输入信号馈送逻辑940,信号馈送逻辑940将特征图元素集馈送到适当的层953、952和/或951(由箭头表示)。例如,第一特征元素集被插入第一层953(处理序列中的第一个),第二特征元素集被插入第三层951。没有必要将集合插入第二层。层的数量和位置(在处理顺序内)可以变化,本发明不限于任何具体的数量和位置。
该方法还包括:获取(3330)用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。例如,第一集合是网络的所有层处理的潜在特征图元素集。第二集合是提供给另一层的附加集合。当参考图9时,经解码的数据911是在三个层953、952和951(按此顺序)处理第一集合之后获取的。
在示例性实现方式中,在所述两个或多个特征图处理层中的每个中处理特征图,其中,分别在所述两个或多个特征图处理层中处理的特征图的分辨率不同。例如,第一层处理的第一特征图具有不同于第二层处理的第二特征图的分辨率的分辨率。
具体地,在两个或多个特征图处理层中处理特征图包括上采样。图9示出了一种网络,其中解码部分包括三个(直接)级联的上采样层953、952和951。
在示例性实现方式中,解码器仅包括不同空间分辨率的上采样层,并且最近邻方法用于上采样。最近邻方法在对应于给定形状的较高分辨率区域中重复较低分辨率的值。例如,如果一个较低分辨率的元素对应于四个较高分辨率的元素,则该一个元素的值在较高分辨率区域重复四次。在这种情况下,术语“对应”意味着描述最高分辨率数据(初始特征图,初始数据)中的相同区域。这种上采样的方式支持在不修改的情况下将信息从较低分辨率层发送到较高分辨率层(这可以适合于某种数据,例如逻辑标志或指示符信息),或希望保持与在编码器侧获取的信息相同的信息,而不需要某些卷积层修改。这种数据的一个示例是预测信息,例如可以包括在编码器侧估计的运动矢量的运动信息、指示应该使用来自参考图像集中的哪个特定图像的参考索引、指示是使用单个或多个参考帧的预测模式、不同预测的组合(如组合的帧内-帧间预测)、存在或不存在,或残差信息等。
但是,本发明不限于通过最近邻方法执行的上采样。替代地,上采样可以通过应用一些插值或外推,或通过应用卷积等来执行。这些方法可能特别适合于对预期具有平滑特性的数据进行上采样,例如运动矢量或残差或其它与样本相关的数据。
在图9中,编码器(例如符号911至920)和解码器(例如符号940至951)对应地具有相同数量的下采样和上采样层,最近邻方法可以用于上采样,平均池化可以用于下采样。池化层的形状和大小与上采样层的比例因子对齐。在一些其它可能的实现方式中,可以使用另一种池化方法,例如最大池化。
如在若干个编码器实施例中已经举例说明的,用于图像或视频处理的数据可以包括运动矢量场。例如,图12示出了编码器和解码器侧。在解码器侧,解析码流1250,并从中获取运动信息1260(可能具有下文将讨论的分割信息)。然后,所获取的运动信息被提供给运动生成网络1270。运动生成网络可以增加运动信息的分辨率,即,致密运动信息。然后,重建的运动矢量场(例如密集光流)1275被提供给运动补偿单元1280。运动补偿单元1280使用重建的运动矢量场,以根据参考帧获取预测的图像/视频数据,并根据预测的图像/视频数据重建运动补偿帧(例如,通过添加经解码的残差–如图5A中举例说明的编码器的解码器部分,或图7B中举例说明的重建单元314)。
图13还示出了解码器侧运动生成(致密)网络1360。网络1360包括信号馈送逻辑1370,在功能上类似于图9的信号馈送逻辑940,以及三个上采样(处理)层。与上面参考图9描述的实施例的主要区别在于,在图13中,网络1360专门用于运动矢量信息处理,输出运动矢量场。
如上所述,根据实施例,该方法还包括从码流中获取与所述两个或多个层相关的分割信息。然后,从码流中获取特征图元素基于分割信息。将所述特征图元素集分别输入两个或多个特征图处理层基于所述分割信息。下面在与使用分割信息解码相关的部分中提供了与在解析和处理中使用分割信息相关的一些详细示例。例如,图28和图29提供了非常具体的(并且仅仅是示例性的)层处理选项。
在一些实施例中,所述多个级联层还包括多个分割信息处理层。该方法还包括在多个分割信息处理层中处理分割信息。例如,在所述多个分割信息处理层中的至少一个中处理所述分割信息包括上采样。在一些实施例中,分割信息的这种上采样和/或特征图的所述上采样包括最近邻上采样。通常,应用于特征图信息的上采样和应用于分割信息的上采样可能不同。此外,同一网络内的上采样可能不同,因此一个网络(分割信息处理或特征图处理)可以包括不同类型的上采样层。例如,在图20或21中示出了该示例。需要说明的是,除最近邻之外的上采样类型可以包括一些插值方法,例如多项式方法,例如双线性、三次等。
根据示例性实现方式,所述分割信息的上采样和/或所述特征图的上采样包括(转置)卷积。这对应于上面讨论的编码器的第一修改。图18在解码器侧示出了运动生成单元1869,所述运动生成单元包括卷积操作“conv↑”而不是最近邻上采样。这样可以实现可学习上采样过程,例如,在将上采样过程用于运动信息密集化的情况下,支持找到最佳的上采样变换,并可以通过使用如上所述的块平均运动矢量信息来减少由运动补偿产生的块效应。同样的情况也适用于纹理恢复过程,例如原始图像强度值或预测残差生成。运动生成单元1869还包括信号馈送逻辑,所述信号馈送逻辑的功能对应于图13的信号馈送逻辑940或图9或1370的功能。
图30示出了根据第一修改的示例性解码器侧层处理的框图。具体地,解析码流3030,并且信号馈送逻辑3040(功能对应于信号馈送逻辑940或1370)向卷积上采样滤波器300提供选择指令。在一些实施例中,卷积滤波器可从一组N个滤波器(指示为滤波器1至N)中选择。滤波器选择可以基于指示所选滤波器并从码流中解析的信息。可以由编码器感觉RDO等优化方法提供(生成并插入码流中)所选滤波器的指示。具体地,可以应用图17或图24中举例说明的RDO(将滤波器大小/形状/顺序处理为选项(即待优化的译码参数)之一)。但是,本发明不限于此,并且通常,滤波器可以根据其它信号参数(例如译码模式、插值方向等)推导出。
总之,信号馈送逻辑单元控制具有不同滤波器形状的不同层的输入,并根据从码流中获取的分割和运动信息选择性地绕过输出到下一层的层。卷积滤波器单元3000对应于由一个层执行的卷积。若干个这样的卷积淹没滤波器可以级联,如图18所示。需要说明的是,本发明不限于可变或可训练的滤波器设置。通常,卷积上采样也可以用固定的卷积操作执行。
本实施例的各方面可以与其它实施例的各方面结合。例如,在下采样层中具有运动信息平均的编码器可以与包括卷积上采样层的解码器组合使用。具有卷积层的编码器想要寻找更好的潜在表示,可以与包括基于最近邻的上采样层的运动生成网络组合。也可以设想其它的组合。即,编码器和解码器的实现不必是对称的。
图32A说明了应用最近邻方法重建的两个示例。具体地,示例1示出了最低分辨率层的分割信息具有标志集的值(为1)的情况。对应地,运动信息指示一个运动矢量。由于运动矢量已经在最低分辨率层中指示,因此在码流中没有其它运动矢量和其它分割信息。网络通过在最近邻上采样期间复制一个指示的运动矢量,从一个信号运动矢量生成具有较高分辨率(2×2)和最高分辨率(4×4)的相应运动矢量场。结果是4×4区域,所有16个运动矢量相同并等于指示的运动矢量。
图32B说明了应用基于卷积层的方法的重建的两个示例。示例1具有与图32A的示例1相同的输入。具体地,最低分辨率层的分割信息具有标志集的值(为1)。对应地,运动信息指示一个运动矢量。但是,在应用卷积层(可能训练)之后,较高层和最高层中的运动矢量并不完全一样,而不是仅仅复制一个运动矢量。
类似地,图32A中的示例2示出了最低分辨率层中0的分割信息,以及以下(较高分辨率)层的分割信息0101。对应地,由分割信息指示的位置的两个运动矢量作为运动信息在码流中指示。这些信息显示在中间层。从底层可以看出,信号运动矢量被复制,每个矢量都被复制四次,以覆盖最高分辨率区域。最高分辨率(底部)层的其余8个运动矢量在码流中指示。图32B的示例2应用卷积而不是最近邻复制。不再复制运动矢量。图32A中复制的运动矢量之间的过渡现在更加平滑,从而减少了块效应。
与上面讨论的编码器的第二修改类似,在解码器侧,多个级联层包括卷积层,而不在具有不同分辨率的层之间进行上采样。需要说明的是,编码器和解码器在这方面不一定是对称的:编码器可以具有这些附加层,而解码器则不具有或反之亦然。当然,编码器和解码器也可以对称设计,并在编码器和解码器的对应下采样和上采样层之间具有附加层。
关于分割信息处理和特征图处理的组合,从码流中获取特征图元素是基于由多个分割信息处理层中的至少一个处理的处理后的分割信息。分割层可以解析和解释分割信息,如下面在《使用分割信息的解码》部分中更详细地描述的那样。需要说明的是,描述的实施例和示例可与本节中的实施例结合使用。具体地,下面参考图26至图32B描述的分割信息的层处理也可以与本文描述的特征图处理结合执行。
例如,将所述两个或多个特征图元素集中的每个分别输入两个或多个特征图处理层是基于所述多个分割信息处理层中的至少一个分割信息处理层处理的处理后的分割信息。所获取的分割信息由一组语法元素表示,其中,该组语法元素中的元素的位置指示该语法元素与哪个特征图元素位置相关。例如,语法元素集是码流部分,其可以使用固定码、可变长度码或算术码的熵译码进行二值化,其中,这些码中的任何一个都可以是上下文自适应的。如果码流具有编码器侧和解码器侧都已知的预定义结构,则本发明不限于码流的任何特定译码或形式。这样,分割信息和特征图信息的解析和处理可以关联地完成。例如,特征图的处理包括,对于每个语法元素:(i)当语法元素为第一值时,在由语法元素在码流中的位置指示的位置上从码流中解析特征图的元素,以及(ii)否则(或更一般地,当语法元素为第二值时),在由码流中的语法元素的位置指示的位置上不从码流中解析特征图的元素。语法元素可以是二值化标志,其在编码器侧被排序到码流中,并由处理网络的特定层结构以正确的顺序从解码器中解析。
需要说明的是,选项(i)和(ii)也可以提供给非二值化的语法元素。在这种情况下,第一值意味着解析,第二值意味着不解析。语法元素可以采取除了第一值和第二值之外的一些其它值。这些值还可以导致解析或不解析,或者可以指示特定类型的解析等。解析的特征图元素的数量可以对应于等于第一值的语法元素的数量。
根据一种示例性实现方式,所述多个(N个)特征图处理层中的每个层j(1<j<N)处理所述特征图还包括:从所述码流中解析第j特征图处理层的分割信息元素;获取前一特征图处理层处理后的特征图,以及从所述码流中解析特征图元素,并将解析后的特征图元素与所获取的特征图关联,其中,所述特征图元素在所述处理后的特征图中的位置由所述解析后的分割信息元素指示,并且分割信息由前一分割信息处理层处理。例如,关联可以是之前处理的特征图元素的替换,或组合,例如加法、减法或乘法。下面提供了一些示例性实现方式。解析可以取决于之前处理的分割信息,这提供了非常紧凑和高效的语法的可能性
例如,所述方法可以包括,当语法元素为第一值时,从码流中解析特征图的元素;当语法元素为第二值或由前一分割信息处理层处理的分割信息为第一值时,不从码流中解析特征图的元素。这意味着,如果相关部分在前一层解析,则不进行解析。例如,从表示所述分割信息的所述码流解析的所述语法元素是二值化标志。如上所述,处理后的分割信息由一组二值化标志表示可以是有益的。二值化标志的集合是具有每个值1或0(对应于上述第一值和第二值)的二值化标志的序列。
在一些实施例中,每个分割信息处理层j中的分割信息的上采样还包括:对于输入的分割信息指示的所获取的特征图中的每个第p位置,将重建图像中与第p位置相同的区域中包括的特征图位置的指示确定为上采样的分割信息。这提供了重建图像(或重建特征图或一般数据)、子采样特征图中的位置和对应的分割标志之间的空间关系。
如上所述,以及在编码器实施例中,用于图像或视频处理的数据可以包括图像数据(例如图像样本)和/或预测残差数据和/或预测信息数据。当在本发明中提到“残差”时,需要说明的是,这些可以是像素域残差或变换(光谱)系数(即变换残差,在不同于样本/像素域的域中表示的残差)。
类似于上面针对编码器侧描述的第四修改,根据示例性实现方式,滤波器用于特征图的上采样,并且滤波器的形状是方形、水平矩形和垂直矩形中的任何一个。需要说明的是,滤波器形状可以类似于图25中所示的分割形状。
图20中示出了示例性解码器侧层处理。运动生成网络(单元)2060包括信号馈送逻辑和使用滤波器(上采样滤波器)的一个或多个(这里是两个)上采样层,该滤波器可以从预定或预定义的滤波器集中选择。选择可以在编码器侧执行,例如通过RDO或其它设置,并在码流中指示。在解码器侧,从码流中解析滤波器选择的指示并应用。替代地,可以在解码器处选择滤波器,而不基于根据码流导出的其它译码参数显式地指示。这些参数可以是与内容相关的任何参数,例如预测类型、方向、运动信息、残差、环路滤波特性等。
图31示出了支持在N个滤波器1至N中选择一个滤波器的上采样滤波器单元3100的框图。滤波器选择的指示可以直接包括N个滤波器中的一个滤波器的索引。它可以包括滤波器方向、滤波器等级、滤波器形状和/或系数。在解码侧,信号馈送逻辑解释滤波器选择标志(例如用于区分垂直和水平滤波器或其它方向的方向标志),并将特征图值馈送到具有对应滤波器形状集的层。在图31中,从信号馈送逻辑到选择性旁路逻辑的直接连接支持不选择任何滤波器。滤波器选择指示符的对应值也可以在码流中指示或推导出。
通常,特征图的上采样使用滤波器,从码流输入信息还包括:从码流中获取指示滤波器形状和/或滤波器方向和/或滤波器系数的信息。可以存在每层具有一组要选择的滤波器的实现方式,或者每层是一个滤波器并且信号馈送逻辑是基于滤波器选择标志(指示符)确定哪些层被选择和哪些层不被选择的实现方式。
在一些实施例中,可以提供柔性滤波器形状,其中,指示滤波器形状的所述信息指示由标志组成的掩码,并且所述掩码表示滤波器形状,因为具有第三值的标志指示非零滤波器系数,并且与第三值不同的第四值的标志指示零滤波器系数。换句话说,正如已经为编码器侧描述的那样,滤波器形状可以通过指示非零系数的位置来定义。非零系数可以根据预定义的规则导出,也可以指示。
上述解码器实施例可以实现为存储在非瞬时性介质上的计算机程序产品,当该计算机程序产品在一个或多个处理器上执行时,执行上述任何方法的步骤。类似地,上述解码器实施例可以实现为用于解码图像或视频的设备,包括处理电路,该处理电路用于执行上述任何方法的步骤。具体地,可以提供一种用于从码流中解码用于图像或视频处理的数据的设备,所述设备包括:获取单元,用于从码流中获取两组或更多组特征图元素,其中,每组特征图元素与特征图相关;输入单元,用于将所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层;经解码的数据获取单元,用于获取用于图像或视频处理的所述经解码的数据,作为所述多个级联层的处理结果。这些单元可以以软件或硬件或两者的组合实现,如下面更详细地讨论的那样。
使用分割信息解码
在接收侧,本实施例的解码器执行分割信息的解析和解译。因此,提供了一种方法,如图34所示,用于从码流中解码用于图像或视频处理的数据。对应地,提供了一种用于从码流中解码用于图像或视频处理的数据的装置。该装置可以包括处理电路,用于执行该方法的步骤。
所述方法包括从码流中获取(3410)两个或多个分割信息元素集。获取可以通过解析码流执行。在一些示例性实现方式中,码流解析还可以包括熵解码。本发明不限于从码流中获取数据的任何特定方式。所述方法还包括将所述两个或多个分割信息元素集中的每个分割信息元素集分别输入(3420)到多个级联层中的两个或多个分割信息处理层。需要说明的是,分割信息处理层可以是与特征图处理层相同的层或不同的层。换句话说,一个层可以具有一个或多个功能。
此外,在两个或多个分割信息处理层中的每个分割信息处理层中,所述方法包括处理相应的分割信息集。根据由多个级联层处理的分割信息,获取(3430)用于图像或视频处理的经解码的数据。
图26示出了用于三层解码的示例性分割信息。分割信息可以被视为选择(参见编码器侧描述)将被解析或以其它方式获取特征图元素的层。未选择特征图元素2610。因此,编码器将标志2611设置为0。这意味着,具有最低分辨率的特征图元素2610不包括在码流中。但是,指示特征图元素未被选择的标志2611包括在码流中。例如,如果特征图元素是运动矢量,这可以意味着最大块的运动矢量2610没有被选择,并且不包括在码流中。
在图26所示的示例中,在特征图2620中,在用于确定特征图2610的特征图元素的四个特征图元素中,选择三个特征图元素用于指示(由标志2621、2622和2624指示),而一个特征图元素2623未被选择。在使用运动矢量的示例中,这可以意味着从特征图2620中选择三个运动矢量,并将它们各自的标志设置为1,而不选择一个特征图元素,并将其各自的标志2623设置为0。
然后,码流可以包括所有四个标志2621至2624和三个所选择的运动矢量。通常,码流可以包括四个标志2621至2624和三个所选择的特征图元素。在特征图2630中,可以选择确定特征图2620的未选择特征图元素的一个或多个元素。
在该示例中,当选择特征图元素时,不会选择较高分辨率的特征图的任何元素。在该示例中,没有选择用于确定由标志2621、2622和2624指示的特征图元素的特征图2630的特征图元素。在一个实施例中,这些特征图元素的标志中没有一个包括在码流中。相反,码流中仅包括特征图2630的特征图元素的标志,其确定具有标志2623的特征图元素。
在特征图元素是运动矢量的示例中,特征图元素2621、2622和2624中的每个可以由特征图2630中的四个运动矢量的组确定。在确定具有标志2621、2622和2624的运动矢量的每个组中,这些运动矢量可以比特征图2630中确定特征图2620中未被选择的运动矢量(特征图元素)(由标志2623发出信号)的四个运动矢量具有彼此更多的相似性。
图26是由码流的特征描述的。需要说明的是,解码器相应地解码(解析)这种码流:根据如上所述的标志的值确定包括(指示)哪些信息,并相应地解析/解译所述解析的信息。
在示例性实现方式中,分割信息如图27所示组织。对于被视为图像序列的图像或视频等2D信息,一些层的特征图可以在二维空间中表示。分割信息包括用于2D空间位置的指示符(二值化标志),指示是否在码流中呈现与该位置对应的特征图值。
在图27中,有一个起始层(第0层)用于解码分割信息,例如,最低分辨率的层,即潜在表示层。对于此起始层,每个2D位置包括二值化标志。如果该标志等于1,则所选信息包括该特定层上该位置的特征图值。另一方面,如果所述标志等于0,则在此特定层上没有此位置的信息。所述标志集(或通常的标志张量,这里是标志矩阵)将被称为TakeFromCurrent。TakeFromCurrent张量被上采样到下一层分辨率,例如使用最近邻方法。将这个张量表示为TakeFromPrev。此张量中的标志指示对应的样本位置是否在前一层(此处为第0层)填充。
作为下一步,信号馈送逻辑读取当前分辨率层(LayerFlag)位置的标志。在该示例性实现方式中,仅指示在之前层中未填充的位置(未设置为1,未填充特征图元素值)。使用逻辑运算,它可以表示为TakeFromPrev==0或!TakeFromPrev==1,其中,“!”表示逻辑NOT操作(取反)。
此层所需的标志量可以计算为TakeFromPrev张量中的零(逻辑假)元素量,或倒(!TakeFromPrev)张量中具有1(逻辑真)的值量。对于TakeFromPrev张量中的非零元素,码流中不需要任何标志。这在图中通过在不需要读取的位置上显示“-”来表示。从实现的角度来看,将倒张量上的元素之和计算为和(!TakeFromPrev)可能更容易。信号馈送逻辑可以使用此算法来确定需要从码流中解析多少标志。读取标志放置在!TakeFromPrev的值等于1的位置,获取LayerFlag张量。然后,通过将标志保持在从当前分辨率层的码流读取的位置,并将在前一个分辨率层读取的位置(在LayerFlag中标记为“-”的位置)的值归零,获取当前分辨率层(此处为第1层)的TakeFromCurrent张量作为TakeFromPrev和LayerFlag张量的组合。可以使用逻辑AND运算符表示和实现,如下所示:TakeFromCurrent=!TakeFromPrev ANDLayerFlag。然后,为了考虑在之前分辨率层读取的位置,使用逻辑OR运算获取TakeFromCurrent张量,如TakeFromCurrent=TakeFromCurrent OR TakeFromPrev。应该理解的是,布尔运算可以使用常规数学运算来实现,例如AND的乘法和OR的求和。这将提供保留和转移梯度的好处,支持在端到端训练中使用上述方法。
然后,将获取的TakeFromCurrent张量上采样到下一个分辨率层(这里是第2层),并重复上述操作。
为了通用性和简化实现,统一所有解析层的处理是有益的,而不特别考虑第一解析层,第一解析层的所有标志都从码流中解析。这可以通过在第一(较低分辨率)层(第0层)中处理之前将TakeFromPrev初始化为零,并对每个分辨率层重复上述步骤来实现。
为了进一步减少指示开销,在一些其它实现方式中,最后一个解析层(这里是第三层,即第2层)的LayerFlag不需要传输(包括在编码器侧,在解码器侧解析)到码流中。这意味着,对于最后一个分辨率层,特征图值作为最后一个分辨率层的所有位置的所选择的信息(参见图11中的1120)在码流中发送,这些信息不是在(所有)前一个分辨率层(在任何前一个分辨率层)获取的。换句话说,对于最后一个分辨率层,TakeFromCurrent=!TakeFromPrev,即TakeFromCurrent对应于取反的TakeFromPrev。同样,为了保持最后一个解析层处理的通用性,LayerFlag可以由1初始化,并且可以使用相同的公式:TakeFromCurrent=!TakeFromPrev AND LayerFlag。
在一些其它可能的实现方式中,最后分辨率层具有与原始图像相同的分辨率。如果最后一个分辨率层没有附加的处理步骤,这意味着发送原始张量的一些值,不进行自动编码器中的压缩。
下面,参考图28描述信号馈送逻辑2800的示例。在图28中,解码器的信号馈送逻辑2800使用分割信息(LayerFlag)来获取和利用在码流中发送的所选择的信息(LayerMv)。具体地,在每一层,解析码流以获取相应语法解释单元2823、2822和2821中的分割信息(LayerFlag),以及可能的选择信息(LayerMv)(按此顺序)。如上所述,为了在第一层(语法解译2823)中启用与在其它层中相同的操作,TakeFromPrev张量在2820中初始化为所有零。TakeFromPrev张量按从早期层的语法解译(如2823)到后期层的语法解译(如2822)的处理顺序传播。这里的传播包括2的上采样,如上面的图27所解释的。
在解译每个分辨率层的分割信息(LayerFlag)时,获取(生成)张量TakeFromCurrent。此张量TakeFromCurrent包括指示当前分辨率层的每个特定位置的码流中是否存在特征图信息(LayerMv)的标志。解码器从码流中读取特征图LayerMv的值,并将它们放置在TakeFromCurrent张量的标志等于1的位置。当前分辨率层的码流中包括的特征图值的总量可以根据TakeFromCurrent中的非零元素的数量或作为和(TakeFromCurrent)计算——TakeFromCurrent张量的所有元素的总和。作为下一步,每个层中的张量组合逻辑2813、2812和2811(例如在2812)通过将TakeFromCurrent张量的值等于1的位置处的特征图值替换为在码流中作为所选择的信息发送的特征图值(LayerMv)来组合前一分辨率层(例如,由2813生成,并经过上采样2801,以匹配下一层处理2812的分辨率)。如上所述,为了在第一层(张量组合2813)中启用与在其它层中相同的操作,在2810中,组合张量被初始化为所有零。在处理了所有层的LayerFlag并生成最后一层的输出张量(在2811中)之后,在2801中,合并张量进行4的上采样,以获取密集光流的原始尺寸,即,W×H。
图28的示例性实现方式提供了一个完全可并行的方案,该方案可以在GPU/NPU上运行,并支持利用并行性。传输梯度的完全可训练方案支持在端到端可训练的视频编码方案中使用该方案。
图29示出了信号馈送逻辑2900的另一种可能的示例性实现方式。此实现生成一个LayerIdx张量(在图29中称为LayerIdxUp),包括不同分辨率的层的索引,指示应使用哪一层来接收码流中传输的运动信息(包括在编码器中,在解码器中解析)。在每个语法解释块(2923、2922、2923),通过添加TakeFromCurrent张量乘以从最高分辨率到最低分辨率编号的上采样层索引来更新LayerIdx张量。然后,LayerIdx张量被上采样并按处理顺序传输(传递)到下一层,例如从2923到2922,从2922到2921。为了使所有层中的处理相似,张量LayerIdx在2920中初始化为零,并传递给第一层的语法解译2923。
在最后一层(这里是第三层)之后,LayerIdx张量被上采样到原始分辨率(进行4的上采样2995)。因此,LayerIdx的每个位置都包括要从中获取运动信息的层的索引。LayerIdx的位置以相同的分辨率对应于特征图数据的原始分辨率(这里是密集光流),在该示例中是2D(矩阵)。因此,对于重建光流中的每个位置,LayerIdx指定从哪里(从哪一层的MayerMV)获取运动信息。
运动信息(LayerMv,在图29中也称为LayerMvUp)通过以下方式生成。在每个空间分辨率层,张量组合块(2913、2912、2911)将从码流中获取的LayerMv(通过相应的语法解译单元2923、2922、2921)与基于根据从码流中获取的分割信息(LayerFlag)的中间张量和根据上述方法的中间TakeFromCurrent布尔张量。中间张量可以由零(参见初始化单元2910、2919、2918)或任何其它值初始化。初始化值并不重要,因为最终在完成所有步骤之后,根据该方法,这些值不会被选择用于密集光流重建2990。包括运动信息的组合张量(从2913、2912、2911中的每个输出)被上采样并与前一空间分辨率层的组合张量级联(2902、2901)。级联沿着与从不同分辨率的层获取的运动信息相对应的附加维度执行(即级联前的2D张量2902成为级联后的3D张量;级联前的3D张量2901在级联后保持43D张量,但张量的大小增加)。最后,在完成LayerIdxUp和LayerMvUp的所有上采样步骤后,通过从LayerMvUp中选择运动信息,使用LayerIdxUp的值作为LayerMvUp中轴上的索引,获取重建的密集光流,其中,轴是在LayerMvUp级联步骤期间增加的维度。换句话说,LayerMvUp中添加的维度是层数上的维度,LayerIdxUp为每个位置选择合适的层。
上述特定的示例性实现方式并不限制本发明。通常,分割可以以各种可想象的方式在码流中执行和指示。通常,分割信息元素集的获取是基于由多个级联层中的至少一个分割信息处理层处理的分割信息。如图28所示,这样的层可以包括语法解译单元(2823、2822、2821),其解析/解译所述解析后的分割信息LayerFlag的含义(语义)。
更具体地,所述分割信息元素集的输入是基于由所述多个级联层中的至少一个级联层输出的处理后的分割信息。这在图28中通过在语法解译单元(2823、2822、2821)之间传递TakeFromPrev张量来说明。如在编码器侧的描述中已经解释的,在一些示例性实现方式中,分别在两个或多个分割信息处理层中处理的分割信息的分辨率不同。
此外,在两个或多个分割信息处理层中对分割信息的处理包括上采样,如已经参考图9、13和其它图中所示出。例如,所述分割信息的上采样包括最近邻上采样。需要说明的是,在本实施例中以及在上述实施例中,本发明不通过应用最近邻上采样来限制。上采样可以包括插值,而不是仅复制相邻样本(元素)值。插值可以是任何已知的插值,例如线性或多项式,例如三次上采样等。关于复制,需要说明的是,最近邻执行的复制是从预定义(可用)最近邻(例如顶部或左侧)复制元素值。如果与要填充的位置有相同距离的邻居,则可能需要对从中复制该邻居的预定义。
如上文针对第一修改所述,在一些示例性实现方式中,所述上采样包括转置卷积。除了将卷积上采样应用于特征图信息之外,或替代地,卷积上采样也可以应用于分割信息。需要说明的是,为分割信息执行的上采样类型不一定是应用于特征图元素的相同上采样类型。
通常,对于多个级联层中的多个(N个)分割信息处理层中的每个分割信息处理层j,输入包括:
-如果j=1,则从码流输入初始分割信息(和/或基于初始化,例如在步骤2820中初始化为零),否则,输入由第(j–1)分割信息处理层处理的分割信息;
-输出处理后的分割信息。
这是与输入层相关的分割信息,不一定(仍然可能)来自码流的整个分割信息。第j层中的上采样分割信息是第j层中上采样的分割信息,即由第j层输出。通常,分割层的处理包括上采样(TakeFromPrev)和包括来自码流的新元素(LayerFlag)。
例如,由多个(N个)分割信息处理层中的每个层j<N对输入的分割信息的处理还包括从码流中解析分割信息元素(LayerFlag),并将(例如在图28中的语法解译单元282x中)解析后的分割信息元素与前一层输出的分割信息(TakeFromPrev)关联。解析后的分割信息元素(LayerFlag)在关联的分割信息中的位置是根据前一层输出的分割信息确定的。如在图28和29中可以看到的,可以有各种不同的方式来关联和传播位置信息。本发明不限于任何具体的实现方式。
例如,根据前一层输出的分割信息确定从码流中解析出的分割信息元素的数量。具体地,如果某些区域已经被前一层的分割信息覆盖,则不必在以下层上再次覆盖。需要说明的是,这种设计提供了一种高效的解析方法。与所得重建分割信息的位置相对应的所得重建特征图数据的每个位置仅与关于单层(在N个处理层中)的分割信息关联。没有重叠。但是,本发明不限于这种方法。可以想象,分割信息是重叠的,但是它可能导致保持一些冗余。
如图27中已经所示,在一些实施例中,解析的分割信息元素由一组二值化标志表示。码流(语法)中标志的排序可以传输标志与标志所属的层之间的关联。排序(序列)可以由编码器侧的预定义处理顺序给出,因此也可以由解码器侧的预定义处理顺序给出。例如,图16和图28中举例说明了这些示例。
在一些示例性实施例中,例如,上面参考第七修改提到的实施例中,获取用于图像或视频处理的经解码的数据包括基于分割信息确定以下参数中的至少一个。分割信息可以与运动信息类似的方式确定附加信息的解析,例如译码参数,其可以包括图像内或图像间预测模式;图像参考索引;单参考或多参考预测(包括双预测);存在或不存在预测残差信息;量化步长;运动信息预测类型;运动矢量的长度;运动矢量分辨率;运动矢量预测索引;运动矢量差大小;运动矢量差分分辨率;运动插值滤波器;环内滤波器参数;和/或后滤波器参数等。换句话说,当被分割信息处理层处理时,分割信息可以指定译码参数的哪个处理层可以获取译码参数。例如,在图22或23的上述编码器方法中,代替运动信息(LayerMv)(或除了运动信息(LayerMv)之外),重建(译码)参数可以从码流接收。这种重建(译码)参数blk_rec_params可以在解码器侧以与图28和图29中所示的运动信息相同的方式被解析。
通常,分割信息用于特征图元素(运动信息或上述任何重建参数或样本相关数据)解析和输入。该方法还可以包括从码流中获取特征图元素集,并根据由分割信息处理层处理的分割信息,将特征图元素集分别输入多个层中的特征图处理层。此外,所述方法还包括根据由多个级联层处理的特征图获取用于图像或视频处理的经解码的数据。具体地,在一些实施例中,多个级联层中的至少一个级联层是分割信息处理层以及特征图处理层。如上所述,网络可以设计有分离的分割信息处理层和特征图处理层,或者设计有具有这两种功能的组合层。在一些实现方式中,多个层中的每一层要么是分割信息处理层,要么是特征图处理层。
上述方法可以体现为存储在非瞬时性介质上的计算机程序产品,当该计算机程序产品在一个或多个处理器上执行时,使处理器执行这些方法中的任何一个的步骤。类似地,提供了一种用于解码图像或视频的设备,包括处理电路,该处理电路用于执行上述任何方法的方法步骤。本发明还提供的装置的功能结构可以对应于上述实施例和步骤提供的功能。例如,提供了一种用于从码流中解码用于图像或视频处理的数据的设备,该设备包括:获取单元,用于从码流中获取两个或多个分割信息元素集;输入单元,用于将所述两个或多个分割信息元素集中的每个分别输入多个级联层中的两个或多个分割信息处理层;处理单元,用于在所述两个或多个分割信息处理层中的每个中处理相应的分割信息集;经解码的数据获取单元,用于根据在多个级联层中处理的分割信息获取用于图像或视频处理的经解码的数据。这些单元和其它单元可以执行上述方法的所有功能。
一些实施例的简要概述
关于使用特征信息或分割信息进行编码的实施例
根据本发明的一方面,提供了一种用于将用于图像或视频处理的数据编码到码流中的方法,该方法包括:处理数据,该处理包括在多个级联层中生成特征图,每个特征图包括相应的分辨率,其中,所生成的特征图中的至少两个的分辨率彼此不同;从多个层中选择与生成最低分辨率的特征图的层不同的层;生成码流,包括将与所选择的层相关的信息插入码流中。
这种方法可以提高这种编码的效率,因为它支持对来自不同层的数据进行编码,从而将不同分辨率的特征或其它类型的层相关信息包括在码流中。
根据本发明的一方面,提供了一种用于将用于图像或视频处理的数据编码到码流中的设备,该设备包括:处理单元,用于处理所述数据,该处理包括:在多个级联层中生成分辨率相互不同的特征图,每个特征图包括相应的分辨率;选择单元,用于从多个层中选择与生成最低分辨率的特征图的层不同的层;生成单元,用于生成码流,包括将与所选择的层相关的数据的指示插入码流中。处理单元、选择单元和生成单元可以由处理电路实现,例如一个或多个处理器或软件和硬件的任何组合。
这种设备可以提高这种解码的效率,因为它能够解码来自不同层的数据并用于重建,从而能够使用不同分辨率的特征或其它类型的层相关信息。
在示例性实现方式中,所述处理还包括由一个或多个级联层进行下采样。下采样的应用一方面能够降低处理的复杂性,另一方面也可以减少在码流中提供的数据。此外,处理不同分辨率的层可以以这种方式关注不同尺度的特征。因此,处理图像(静止图像或视频)的网络可以高效地运行。
例如,一个或多个下采样层包括用于下采样的平均池化或最大池化。平均池化和最大池化操作是若干个框架的一部分,它们为低复杂性的下采样提供了高效的方法。
在另一个示例中,卷积用于下采样。卷积可以提供一些更复杂的下采样方法,使用核可以适当地选择特定应用,甚至可以训练。这使得可学习的下采样过程能够找到更适当的运动信息的潜在表示,并保持表示和传输不同空间分辨率信息的优势,从而提高了自适应能力。
在示例性实现方式中,与所选择的层相关的信息包括该层的特征图的元素。
通过提供具有不同分辨率的特征,编码/解码的可扩展性提高,并且由此产生的码流可以提供更多的灵活性,以满足速率、失真、复杂性等优化标准,最终可能提高译码效率。
例如,在上述任何示例中,与所选择的层相关的信息包括指示从哪一层和/或从该层的特征图的哪一部分选择该层的特征图的元素的信息。
指示分割信息可以提供来自不同层的特征图的高效译码,使得原始(待译码)特征图(数据)的每个区域可以仅由来自一层的信息覆盖。虽然这并不是限制本发明,在一些情况下,本发明还可以为待编码的特征图(数据)中的特定区域提供层之间的重叠。
上述方法在示例性实现方式中包括获取待编码数据的步骤;其中,对待编码数据的处理包括由多个(N个)级联层中的每个层j进行处理,包括:如果j=1,则获取待编码数据作为层输入,否则获取由第(j–1)层处理的特征图作为层输入;处理所获取的层输入,所述处理包括下采样;输出下采样特征图。
对应地,在示例性实现方式中,上述装置具有处理单元,所述处理单元用于获取待编码数据,并执行待编码数据的处理,包括由多个(N个)级联层中的每个层j进行处理,包括:如果j=1,则获取待编码数据作为层输入,否则,获取第(j–1)层处理的特征图作为层输入;处理所获取的层输入,所述处理包括下采样;输出下采样的特征图。
在一些实施例中,根据上述任一示例的方法包括:选择用于插入码流中的信息,该信息与层j(j>1)处理的特征图中的第一区域相关,其中,所述第一区域对应于特征图中的区域或在包括多个元素的小于j的层中待编码的初始数据;在从层k处理的特征图中进行的选择中,不选择对应于第一区域的区域,其中,k是等于或大于1的整数,且k<j。
在一些实施例中,根据上述任一示例的装置包括处理电路,该处理电路还用于:选择用于插入码流中的信息,该信息与层j(j>1)处理的特征图中的第一区域相关,其中,所述第一区域对应于特征图中的区域或在包括多个元素的小于j的层中待编码的初始数据;在从层k处理的特征图中进行的选择中,不选择对应于第一区域的区域,其中,k是等于或大于1的整数,且k<j。
就译码开销而言,在某些层中的这种选择不覆盖由其它层覆盖的原始特征图的区域可能特别高效。
例如,在上述任何示例中,待编码的数据包括图像信息和/或预测残差信息和/或预测信息。
替代地,与所选择的层相关的信息包括预测信息。
例如,在上述任何示例中,与所选择的层相关的数据包括特征图元素在所选择的层的特征图中的位置的指示。
这种指示能够将不同分辨率的特征图元素与输入数据区域正确关联。
例如,在上述任何示例中,所选择的和未选择的特征图元素的位置由多个二值化标志指示,该指示基于码流中标志的位置。
二值化标志提供了对分割信息进行译码的特别高效的方式。
根据一个实施例,在上述方法或装置中,多个(N个)级联层中的层j的处理包括:确定使用第j层输出的特征图元素来重建经重建图像的一部分所产生的第一成本,确定使用第(j–1)层输出的特征图元素重建图像的一部分所产生的第二成本;如果第一成本高于第二成本,则选择第(j–1)层并选择与第(j–1)层中的所述部分相关的信息。
提供包括失真的优化提供了实现所需质量的高效手段。
例如,第一成本和第二成本包括数据量和/或失真。通过考虑速率(编码器产生的数据量)和重建图像的失真进行优化,可以灵活地满足各种应用或用户的需求。
替代地或此外,待编码的数据是运动矢量场。上述方法容易适用于压缩运动矢量场,例如密集光流或子采样光流。应用这些方法可以提供运动矢量的高效(在速率和失真或其它标准方面)译码,并能够进一步减小经编码的图像或视频数据的码流大小。
在一些实施例中,预测信息包括参考索引和/或预测模式。除了运动矢量场之外或替代地,可以处理与预测相关的其它信息。参考索引和预测模式可以类似于运动矢量场,与图像的内容相关,因此,对具有不同分辨率的特征图元素进行编码可以提高效率。
例如,数据量包括发送与所选择的层相关的数据所需的数据量。这样,在优化过程中,可以考虑通过提供与输出层不同的层相关的信息而产生的开销。
此外或替代地,通过比较重建图像与目标图像来计算失真。这种端到端质量比较确保了重建图像中的失真得到适当考虑。因此,优化可以能够以高效的方式选择译码方法,并以更准确的方式满足应用程序或用户提出的质量要求。
例如,在上述任何示例中,处理包括具有不同分辨率的级联层之间的附加卷积层。
在级联层网络中提供这种附加层能够引入附加处理,例如各种类型的滤波,以提高译码的质量或效率。
根据示例性实现方式,根据上述实施例的装置的方法或处理电路包括:在层下采样中,使用第一滤波器对输入特征图进行下采样以获取第一特征图;使用第二滤波器对输入特征图进行下采样以获取第二特征图;确定使用第一特征图来重建经重建图像的一部分所产生的第三成本;确定使用第二特征图来重建经重建图像的一部分所产生的第四成本;在选择中,如果第三成本小于第四成本,则选择第一特征图。
应用不同的下采样滤波器可能有助于适应内容的不同特征。
例如,第一滤波器和第二滤波器的形状可以是任何非正方形、水平定向矩形和垂直定向矩形。
这些滤波器的形状仍然简单,但可能会在适应对象边界方面提供附加的改进。
由装置的处理电路执行的方法步骤或步骤还可以包括获取掩码,其中,所述掩码由标志组成,所述掩码表示任意滤波器形状,并且所述第一滤波器或所述第二滤波器具有任意滤波器形状。
这为设计任何形状的滤波器提供了灵活性。
方法步骤或由装置的处理电路执行的步骤还可以包括在不同层中处理与被分割成具有不同块大小和形状的块的相同图像相关的数据,其中,选择包括:根据为预定的译码模式集计算的成本来选择层。
在一些示例性实现方式中,所述处理包括至少一个层确定不同译码模式集的成本,并根据所确定的成本选择译码模式集之一。
将优化应用于译码模式可以实现高效的率失真优化,从而提高译码效率。
例如,与所选择的层相关的数据的指示包括所选择的译码模式集。
根据本发明的一方面,提供了一种存储在非瞬时性介质中的计算机程序,该计算机程序包括代码,当该代码由一个或多个处理器执行时,执行上述任何方法的步骤。
根据本发明的一方面,提供了一种用于编码图像或视频的设备,包括处理电路,所述处理电路用于执行根据上述任何示例的方法。
上述装置中的任何一个都可以在集成芯片上实现。本发明可以通过硬件(hardware,HW)和/或软件(software,SW)实现。此外,基于HW的实现方式可以与基于SW的实现方式相结合。
需要说明的是,本发明不限于具体框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、图像生成和识别系统。
为了清楚起见,上述任一实施例可以与上述其它实施例中任何一个或多个组合以创建本发明范围内的新实施例。
关于使用分割信息解码的实施例
根据一方面,提供了一种用于从码流中解码用于图像或视频处理的数据的方法,所述方法包括:从码流中获取两个或多个分割信息元素集;将两个或多个分割信息元素集中的每个分割信息元素集分别输入多个级联层中的两个或多个分割信息处理层中;在所述两个或多个分割信息处理层中的每个分割信息处理层中,处理各自的分割信息集,其中,获取用于图像或视频处理的经解码的数据是根据多个级联层处理的分割信息进行的。
这种方法可以提高效率,因为它能够解码可在分层结构中基于层配置的各种片段中的数据。分割部分的提供可以考虑经解码的数据的特征。
例如,获取分割信息元素集是根据由多个级联层中的至少一个分割信息处理层处理的分割信息进行的。
在一些示例性实施例中,输入分割信息元素集是根据由多个级联层中的至少一个级联层输出的处理后的分割信息进行的。
级联分割信息处理能够高效地解析分割信息。
例如,在两个或多个分割信息处理层中分别处理的分割信息的分辨率不同。
在一些实施例和示例中,在两个或多个分割信息处理层中对分割信息的处理包括上采样。
分割信息的分层结构可以提供待插入码流中的少量边信息,从而提高效率和/或减少处理时间。
具体地,分割信息的所述上采样包括最近邻上采样。最近邻上采样具有较低的计算复杂度,并且可以很容易地实现。尽管如此,这种上采样是高效的,对于逻辑指示(如标志)尤其如此。例如,所述分割信息的上采样包括转置卷积。执行上采样可以提高上采样质量。此外,这种卷积上采样层可以被提供为可训练的,或者在解码器侧被提供为可配置的,使得卷积核可以由从码流中解析或以其它方式推导出的指示控制。
在示例性实现方式中,对于多个级联层中的多个(N个)分割信息处理层中的每个分割信息处理层j:输入包括,如果j=1,则从码流输入初始分割信息,否则输入由第(j–1)分割信息处理层处理的分割信息;输出处理后的分割信息。
例如,所述多个(N个)分割信息处理层中的每个层j(j<N)对输入的分割信息的处理还包括:从码流中解析分割信息元素,并将解析后的分割信息元素与前一层输出的分割信息关联,其中,解析后的分割信息元素在关联的分割信息中的位置是根据前一层输出的分割信息确定的。具体地,根据前一层输出的分割信息确定从码流中解析的分割信息元素的量。例如,解析后的分割信息元素由一组二值化标志表示。
这种分层结构提供了可以并行的处理,并且可以容易地在GPU/NPU上运行,并能够利用并行性。传输梯度的完全可训练方案支持在端到端可训练的视频编码方案中使用该方案。
在一些示例性实施例和示例中,获取用于图像或视频处理的经解码的数据包括根据分割信息确定以下中的至少一个:帧内或帧间预测模式;图像参考索引;单参考或多参考预测(包括双向预测);存在或不存在预测残差信息;量化步长;运动信息预测类型;运动矢量的长度;运动矢量分辨率;运动矢量预测索引;运动矢量差大小;运动矢量差分辨率;运动插值滤波器;环内滤波器参数;后滤波器参数。本发明的解码通常适用于与图像或视频译码相关的任何类型的数据。
上述实施例或示例的方法还可以包括:根据分割信息处理层处理的分割信息,从码流中获取特征图元素集,并将特征图元素集分别输入多个层中的特征图处理层中;根据多个级联层处理的特征图,获取用于图像或视频处理的经解码的数据。
具体地,多个级联层中的至少一个级联层是分割信息处理层和特征图处理层。在其它实施例中,多个层中的每个层是分割信息处理层,或特征图处理层。
分离的层功能提供了干净的设计和功能分离。但是,如果层实现这两个功能,本发明也可以工作。
根据一个方面,提供了一种存储在非瞬时性介质上的计算机程序产品,当所述计算机程序产品在一个或多个处理器上执行时,执行根据上述任何示例和实施例的方法。
根据一个方面,提供了一种用于解码图像或视频的设备,包括处理电路,所述处理电路用于执行根据上述任何示例和实施例的方法。
根据一个方面,提供了一种用于从码流中解码用于图像或视频处理的数据的设备,所述设备包括:获取单元,用于从码流中获取两个或多个分割信息元素集;输入单元,用于将两个或多个分割信息元素集中的每个分割信息元素集分别输入多个级联层中的两个或多个分割信息处理层;处理单元,用于在两个或多个分割信息处理层中的每个分割信息处理层中处理各自的分割信息集;经解码的数据获取单元,用于根据在多个级联层中处理的分割信息,获取用于图像或视频处理的经解码的数据。
上述装置中的任何一个都可以在集成芯片上实现。本发明可以通过硬件(hardware,HW)和/或软件(software,SW)实现。此外,基于HW的实现方式可以与基于SW的实现方式相结合。
需要说明的是,本发明不限于具体框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、图像生成和识别系统。
硬件和软件中的一些示例性实现方式
可以部署上述编码器-解码器处理链的对应系统如图35所示。图35是可以使用本申请中的技术的一种示例性译码系统(例如,视频、图像、音频和/或其它译码系统(或简称为译码系统))的示意性框图。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可以用于根据本申请中描述的各种示例执行技术的设备的示例。例如,视频编码和解码可以使用神经网络或通常使用上述实施例和示例中描述的那些处理网络。
如图35所示,译码系统10包括源设备12,源设备12用于将经编码的图像数据21提供给目的地设备14等,以用于对经编码的图像数据13进行解码。
源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
图像源16可以包括或可以是:任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机;和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器;或用于获取和/或提供真实世界图像、计算机动画图像(例如屏幕内容、虚拟现实(virtual reality,VR)图像),和/或其任何组合(例如增强现实(augmented reality,AR)图像)的任何类型的设备。图像源可以为存储上述图像中任何图像的任何类型的存储器或存储装置。
为了与预处理单元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封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理经编码的图像数据,以便在通信链路或通信网络上进行传输。
例如,通信接口28(与通信接口22对应)可以用于接收所发送的数据,并使用任何类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获取经编码的图像数据21。
通信接口22和通信接口28都可以用作如图35中从源设备12指向目的地设备14的通信通道13的箭头所表示的单向通信接口,或用作双向通信接口,并且可以用于发送和接收消息,建立连接,确认并交换与通信链路和/或数据传输(例如经编码的图像数据传输)相关的任何其它信息等。解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(例如,使用如上所述的实施例和示例中描述的神经网络)。
目的地设备14的后处理器32用于对经解码的图像数据31(也称为重建图像数据),例如经解码的图像31,进行后处理,以获取后处理图像数据33,例如后处理图像33。由后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr到RGB)、颜色校正、修剪或重新采样或任何其它处理,以例如准备经解码的图像数据31,用于通过显示设备34等进行显示。
目的地设备14的显示设备34用于接收后处理图像数据33,以例如向用户或观看者显示图像。显示设备34可以是或包括用于呈现重建图像的任何类型的显示器,例如集成的或外部的显示器或监控器。例如,显示器可以包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微LED显示器,硅上液晶(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
尽管图35将源设备12和目的地设备14示出为单独的设备,但是设备的实施例也可以包括这两种设备或这两种设备的功能,即包括源设备12或对应的功能与目的地设备14或对应的功能。在此类实施例中,源设备12或对应的功能与目的地设备14或对应的功能可以通过相同的硬件和/或软件、通过单独的硬件和/或软件或其任何组合来实现。
根据以上描述,对于本领域技术人员来说显而易见的是,图35中所示的源设备12和/或目的地设备14的不同单元或功能的存在和(精确)功能划分可以根据实际设备和应用而变化。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30),或编码器20和解码器30两者都可通过处理电路实现,处理电路是一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任何组合等。编码器20可以通过处理电路46实现,以体现包括神经网络的各种模块。解码器30可以通过处理电路46实现,以实现如上述实施例和示例中讨论的各种模块。处理电路可以用于执行本文所描述的各种操作。如果这些技术部分地在软件中实现,则设备可以将软件指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器在硬件中执行这些指令,以实现本发明的技术。视频编码器20和视频解码器30中的任一个可作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中,如图36所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以使用或不使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可以用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图35所示的视频译码系统10仅是示例性的,并且本申请的技术可应用于视频译码设置(例如,视频编码或视频解码),这些设置未必包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据可以从本地存储器检索、通过网络流式传输等。视频编码设备可以对数据进行编码并将数据存储到存储器,和/或视频解码设备可以从存储器检索和解码数据。在一些示例中,编码和解码由不彼此通信但简单地将数据编码到存储器和/或从存储器检索和解码数据的设备执行。
图37是根据本发明的实施例的视频译码设备3700的示意图。视频译码设备3700适合于实现如本文所描述的公开实施例。在一个实施例中,视频译码设备3700可以是解码器(如图35的视频解码器30)或编码器(如图35的视频编码器20)。
视频译码设备3700包括:用于接收数据的入端口3710(或输入端口3710)和接收单元(Rx)3720;用于处理所述数据的处理器、逻辑单元或中央处理器(central processingunit,CPU)3730;用于发送所述数据的发送单元(Tx)3740和出端口3750(或输出端口3750);用于存储所述数据的存储器3760。视频译码设备3700还可以包括耦合到入端口3710、接收单元3720、发送单元3740和出端口3750的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器3730通过硬件和软件实现。处理器3730可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器3730与入端口3710、接收单元3720、发送单元3740、出端口3750和存储器3760通信。处理器3730包括译码模块3770。译码模块3770实现以上所描述的公开实施例。例如,译码模块3770执行、处理、准备或提供各种译码操作。因此,将译码模块3770包括在内,这为视频译码设备3700的功能提供了实质性的改进,并且影响了视频译码设备3700到不同状态的变换。替代地,以存储在存储器3760中并由处理器3730执行的指令来实现译码模块3770。
存储器3760可以包括一个或多个磁盘、磁带机和固态硬盘,并且可以用作溢出数据存储设备,以在选择此类程序用于执行时存储程序,以及存储在程序执行期间读取的指令和数据。例如,存储器3760可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图38是根据示例性实施例的装置3800的简化框图,该装置3800可以用作图35中的源设备12和目的地设备14中的任一个或两者。
装置3800中的处理器3802可以是中央处理器。替代地,处理器3802可以是能够操纵或处理现在存在或以后开发的信息的任何其它类型的设备或多个设备。尽管所公开的实现方式可以通过单个处理器(例如处理器3802)实施,但是可以通过一个以上的处理器来提高速度和效率。
装置1100中的存储器3804在一种实现方式中可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。可以使用任何其它合适类型的存储设备作为存储器3804。存储器3804可以包括处理器3802使用总线3812存取的代码和数据3806。存储器3804还可以包括操作系统3808和应用程序3810,应用程序3810包括使处理器3802执行本文描述的方法的至少一个程序。例如,应用程序3810可以包括应用程序1到N,其还包括执行本文所述方法的图像译码(编码或解码)应用程序。
装置3800还可以包括一个或多个输出设备,例如显示器3818。在一个示例中,显示器3818可以是触摸敏感显示器,触摸敏感显示器将显示器与可操作以感测触摸输入的触摸敏感元件相结合。显示器3818可以通过总线3812耦合到处理器3802。
尽管在这里描述为单个总线,但装置3800的总线3812可以由多个总线组成。此外,辅助存储装置可以直接耦合到装置3800的其它组件,或者可以通过网络存取,并且可以包括单个集成单元(例如存储卡)或多个单元(例如多个存储卡)。因此,可以以多种配置实现装置3800。
总之,本发明涉及用于将数据编码(用于静止图像或视频处理)到码流中的方法和装置。具体地,数据由包括多个级联层的网络处理。在处理中,特征图是由层生成的。至少两个不同层处理(输出)的特征图具有不同的分辨率。在处理中,从级联层中选择一个层,该层不同于生成最低分辨率(如潜在空间)特征图的层。码流包括与所选择的层相关的信息。通过这种方法,提供了可以在不同分辨率上操作的可扩展处理,使得码流可以传输与这种不同分辨率相关的信息。因此,数据可以根据分辨率在码流中高效地译码,所述分辨率可以根据译码的图像数据的内容而变化。
本发明还涉及用于从码流中解码数据(用于静止图像或视频处理)的方法和装置。具体地,从所述码流中获取两个或多个特征图元素集。每个特征图元素集与特征图相关。然后,所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层。然后,获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。因此,可以在分层结构中以高效的方式从所述码流中解码所述数据。
本发明还涉及用于从码流中解码数据(用于静止图像或视频处理)的方法和装置。从码流中获取两个或多个分割信息元素集。然后,将所述两个或多个分割信息元素集中的每个分割信息元素集分别输入多个级联层中的两个或多个分割信息处理层。在两个或多个分割信息处理层中的每个分割信息处理层中,处理各自的分割信息集。用于图像或视频处理的经解码的数据是根据由多个级联层处理的分割信息获取的。因此,可以在分层结构中以高效的方式从所述码流中解码所述数据。

Claims (25)

1.一种用于从码流中解码用于图像或视频处理的数据的方法,其特征在于,所述方法包括:
从所述码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关,
将所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层,
获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。
2.根据权利要求1所述的方法,其特征在于,
在所述两个或多个特征图处理层中的每个中处理特征图,其中,分别在所述两个或多个特征图处理层中处理的特征图的分辨率不同。
3.根据权利要求2所述的方法,其特征在于,
在两个或多个特征图处理层中处理所述特征图包括上采样。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
从所述码流中获取与所述两个或多个层相关的分割信息,其中,
从所述码流中获取所述特征图元素基于所述分割信息;
将所述特征图元素集分别输入两个或多个特征图处理层基于所述分割信息。
5.根据权利要求4所述的方法,其特征在于,
所述多个级联层还包括多个分割信息处理层,
所述方法还包括:
在所述多个分割信息处理层中处理所述分割信息。
6.根据权利要求5所述的方法,其特征在于,
在所述多个分割信息处理层中的至少一个中处理所述分割信息包括上采样。
7.根据权利要求6所述的方法,其特征在于,所述分割信息的上采样和/或所述特征图的上采样包括最近邻上采样。
8.根据权利要求6或7所述的方法,其特征在于,所述分割信息的上采样和/或所述特征图的上采样包括转置卷积。
9.根据权利要求5至8中任一项所述的方法,其特征在于,
从所述码流中获取所述特征图元素基于所述多个分割信息处理层中的至少一个处理的处理后的分割信息。
10.根据权利要求5至9中任一项所述的方法,其特征在于,
将所述两个或多个特征图元素集中的每个分别输入两个或多个特征图处理层基于所述多个分割信息处理层中的至少一个处理的处理后的分割信息。
11.根据权利要求4至10中任一项所述的方法,其特征在于,
所获取的分割信息由语法元素集表示,其中,所述语法元素集中的元素的位置指示所述语法元素与哪个特征图元素位置相关,
其中,处理所述特征图包括,对于所述语法元素中的每个:
-当所述语法元素为第一值时,从所述码流中解析所述码流中的所述语法元素的所述位置所指示的位置上的所述特征图的元素,
-否则,不从所述码流解析在由所述码流中的所述语法元素的所述位置指示的所述位置上的所述特征图的所述元素。
12.根据权利要求5至11中任一项所述的方法,其特征在于,所述多个(N个)特征图处理层中的每个层j(1<j<N)处理所述特征图还包括:
从所述码流中解析第j特征图处理层的分割信息元素;
获取前一特征图处理层处理后的特征图,
从所述码流中解析特征图元素,并将解析后的特征图元素与所获取的特征图关联,其中,所述特征图元素在所述处理后的特征图中的位置由所述解析后的分割信息元素指示,并且分割信息由前一分割信息处理层处理。
13.根据权利要求11或12所述的方法,其特征在于,
-当所述语法元素为第一值时,从所述码流解析所述特征图的元素,
-当所述语法元素为第二值或由前一分割信息处理层处理的分割信息为第一值时,不从所述码流解析所述特征图的所述元素。
14.根据权利要求11至13中任一项所述的方法,其特征在于,
从表示所述分割信息的所述码流解析的所述语法元素是二值化标志。
15.根据权利要求14所述的方法,其特征在于,
所述处理后的分割信息由二值化标志集表示。
16.根据权利要求12至15中任一项所述的方法,其特征在于,对每个分割信息处理层j中的所述分割信息进行上采样还包括:
-对于输入的分割信息指示的所获取的特征图中的每个第p位置,
-将重建图像中与所述第p位置相同的区域中包括的特征图位置的指示确定为上采样分割信息。
17.根据权利要求1至16中任一项所述的方法,其特征在于,所述用于图像或视频处理的数据包括图像数据和/或预测残差数据和/或预测信息数据。
18.根据权利要求1至17中任一项所述的方法,其特征在于,所述用于图像或视频处理的数据包括运动矢量场。
19.根据权利要求4至18中任一项所述的方法,其特征在于,所述特征图的上采样使用滤波器,所述滤波器的形状为正方形、水平矩形和垂直矩形中的任一种。
20.根据权利要求4至19中任一项所述的方法,其特征在于,所述特征图的上采样使用滤波器,从所述码流中输入信息还包括:
从所述码流中获取指示所述滤波器形状和/或滤波器系数的信息。
21.根据权利要求20所述的方法,其特征在于,指示所述滤波器形状的所述信息指示由标志组成的掩码,所述掩码表示所述滤波器形状,因为具有第三值的标志指示非零滤波器系数,具有不同于所述第三值的第四值的标志指示零滤波器系数。
22.根据权利要求4至21中任一项所述的方法,其特征在于,所述多个级联层包括卷积层,不同分辨率的层之间不进行上采样。
23.一种存储在非瞬时性介质中的计算机程序产品,其特征在于,当所述计算机程序产品在一个或多个处理器上执行时,执行根据权利要求1至22中任一项所述的方法。
24.一种用于解码图像或视频的设备,其特征在于,包括处理电路,所述处理电路用于执行根据权利要求1至22中任一项所述的方法。
25.一种用于从码流中解码用于图像或视频处理的数据的设备,其特征在于,所述设备包括:
获取单元,用于从所述码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关,
输入单元,用于将所述两个或多个特征图元素集中的每个分别输入多个级联层中的两个或多个特征图处理层,
经解码的数据获取单元,用于获取用于图像或视频处理的经解码的数据,作为所述多个级联层处理的结果。
CN202080108060.9A 2020-12-24 2020-12-24 通过指示特征图数据进行解码 Pending CN116648716A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2020/000748 WO2022139616A1 (en) 2020-12-24 2020-12-24 Decoding with signaling of feature map data

Publications (1)

Publication Number Publication Date
CN116648716A true CN116648716A (zh) 2023-08-25

Family

ID=82159960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080108060.9A Pending CN116648716A (zh) 2020-12-24 2020-12-24 通过指示特征图数据进行解码

Country Status (5)

Country Link
US (1) US20230353764A1 (zh)
EP (1) EP4211899A4 (zh)
KR (1) KR20230070492A (zh)
CN (1) CN116648716A (zh)
WO (1) WO2022139616A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230186435A1 (en) * 2021-12-14 2023-06-15 Netflix, Inc. Techniques for component-based image preprocessing
WO2024020112A1 (en) * 2022-07-19 2024-01-25 Bytedance Inc. A neural network-based adaptive image and video compression method with variable rate
WO2024043617A1 (ko) * 2022-08-23 2024-02-29 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법
KR20240032707A (ko) * 2022-08-29 2024-03-12 주식회사 딥엑스 인공신경망의 분산 연산 시스템 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282864B1 (en) * 2018-09-17 2019-05-07 StradVision, Inc. Method and device for encoding image and testing method and testing device using the same
US10869036B2 (en) 2018-09-18 2020-12-15 Google Llc Receptive-field-conforming convolutional models for video coding
WO2020106871A1 (en) * 2018-11-20 2020-05-28 Google Llc Image processing neural networks with dynamic filter activation
US11887005B2 (en) * 2018-12-03 2024-01-30 Intel Corporation Content adaptive attention model for neural network-based image and video encoders
CN111382832A (zh) * 2018-12-29 2020-07-07 佳能株式会社 多层神经网络模型的训练和应用方法、装置及存储介质

Also Published As

Publication number Publication date
EP4211899A4 (en) 2023-11-22
EP4211899A1 (en) 2023-07-19
US20230353764A1 (en) 2023-11-02
WO2022139616A1 (en) 2022-06-30
KR20230070492A (ko) 2023-05-23

Similar Documents

Publication Publication Date Title
TWI830107B (zh) 通過指示特徵圖資料進行編碼
US20230336759A1 (en) Decoding with signaling of segmentation information
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
US20230336784A1 (en) Decoding and encoding of neural-network-based bitstreams
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
CN116965029A (zh) 使用卷积神经网络对图像进行译码的装置和方法
JP2023528641A (ja) チャネル間相関情報を用いた適応的画像向上
WO2023172153A1 (en) Method of video coding by multi-modal processing
EP4210327A1 (en) Intra frame prediction method and device
KR20240050435A (ko) 조건부 이미지 압축
TWI834087B (zh) 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品
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
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
WO2023160835A1 (en) Spatial frequency transform based image modification using inter-channel correlation information
WO2023091040A1 (en) Generalized difference coder for residual coding in video compression
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
WO2023121499A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
KR20230072491A (ko) 신경망을 사용하여 픽처를 인코딩 또는 디코딩하는 방법 및 장치
CN117501696A (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