CN116648906A - 通过指示特征图数据进行编码 - Google Patents
通过指示特征图数据进行编码 Download PDFInfo
- Publication number
- CN116648906A CN116648906A CN202080108179.6A CN202080108179A CN116648906A CN 116648906 A CN116648906 A CN 116648906A CN 202080108179 A CN202080108179 A CN 202080108179A CN 116648906 A CN116648906 A CN 116648906A
- Authority
- CN
- China
- Prior art keywords
- layer
- information
- feature map
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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)
- Signal Processing (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- General Physics & Mathematics (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)、多功能视频编码(Versatile Video Coding,VVC)和基本视频编码(Essential Video Coding,EVC)也使用变换表示对预测后的残差信号进行译码。
最近,机器学习已应用于图像和视频译码。通常,机器学习可以以各种不同的方式应用于图像和视频译码。例如,已经讨论了一些端到端优化的图像或视频译码方案。此外,机器学习已被用于确定或优化端到端译码的某些部分,例如预测参数的选择或压缩等。这些应用的共同点是,产生了一些特征图数据,这些数据将在编码器和解码器之间发送。码流的高效结构可以大大有助于减少对图像/视频源信号进行编码的比特数。
神经网络通常包括两个或两个以上的层。特征图是层的输出。在设备之间(例如,在编码器和解码器之间、设备和云之间或在不同设备之间)划分的神经网络中,划分位置(例如,第一设备)输出处的特征图被压缩并传输到神经网络的其余层(例如,传输到第二设备)。
可能需要使用经过训练的网络架构进一步改进编码和解码。
发明内容
本发明的一些实施例提供了用于以高效的方式对图像进行编码并使一些可扩展性适应所需参数和内容的方法和装置。
上述和其它目的通过独立权利要求请求保护的主题实现。根据从属权利要求、说明书以及附图,其他实现方式是显而易见的。
根据本发明的一个方面,提供了一种将用于图像或视频处理的数据编码到码流中的方法。所述方法包括:处理所述数据,所述处理包括在多个级联层中生成特征图,每个特征图包括各自的分辨率,其中,所述生成的特征图中的至少两个特征图的分辨率相互不同;从所述多个层中选择与生成最低分辨率特征图的层不同的层;生成所述码流,包括将与所述选定层相关的信息插入到所述码流中。
这种方法可以改进这种编码的效率,因为它可以对来自不同层的数据进行编码,从而将不同分辨率的特征或其它类型的层相关信息包括在所述码流中。
根据本发明的一个方面,提供了一种将用于图像或视频处理的数据编码到码流中的设备。所述设备包括:处理单元,用于处理所述数据,其中,所述处理包括在多个级联层中生成分辨率相互不同的特征图,每个特征图包括各自的分辨率,选择单元,用于从所述多个层中选择与生成最低分辨率特征图的层不同的层;生成单元,用于生成所述码流,包括将与所述选定层相关的数据的指示插入到所述码流中。所述处理单元、所述选择单元和所述生成单元可以由处理电路实现,例如,一个或多个处理器或软件和硬件的任何组合。
这种设备可以改进解码效率,因为它可以对来自不同层的数据进行解码并用于重建,从而使能够使用不同分辨率的特征或其它类型的层相关信息。
在示例性实现方式中,所述处理还包括由一个或多个级联层进行下采样。应用下采样一方面可以降低处理的复杂度,另一方面也可以减少在所述码流中提供的数据。此外,处理不同分辨率的层可以以这种方式关注不同尺度的特征。因此,处理图片(静态或视频)的网络可以高效地运行。
例如,一个或多个下采样层包括用于下采样的平均池化或最大池化。平均池化和最大池化操作是几个框架的一部分,这些操作为低复杂度的下采样提供了高效的方法。
在另一个示例中,卷积用于下采样。卷积可以提供一些更复杂的下采样方法,可以针对特定应用适当地选择内核,甚至可以训练内核。这使得可学习的下采样过程能够找到更合适的运动信息的潜在表示,并保持表示和传输不同空间分辨率信息的优势,从而提高了自适应能力。
在一个示例性实现方式中,与所述选定层相关的信息包括该层的特征图的元素。
通过提供具有不同分辨率的特征,编码/解码的可扩展性提高,并且这样产生的码流可以提供更高的灵活性,以满足优化标准,如速率、失真、复杂度等,最终可以提高译码效率。
在以上任一示例中,例如,与所述选定层相关的信息包括表示该层的所述特征图的所述元素是从哪个层和/或从该层的所述特征图的哪个部分中选择的信息。
指示(signal)分割(segmentation)信息可以对来自不同层的特征图进行高效译码,使得原始(待译码)特征图(数据)的每个区域可以仅包括在一个层的信息中。虽然这并不是限制本发明,在某些情况下,本发明中待编码特征图(数据)中的特定区域的层间信息可以有一定的重复。
上述方法在示例性实现方式中包括获取待编码数据的步骤,其中,对待编码数据的处理包括由所述多个(N个)级联层中的每个层j进行处理,包括:如果j=1,则获取所述待编码数据作为层输入,否则获取第(j-1)层处理的特征图作为层输入;对所述获取的层输入进行处理,所述处理包括下采样;输出所述经下采样的特征图。
相应地,上述装置在示例性实现方式中具有处理单元,其中,所述处理单元用于获取所述待编码数据,并对所述待编码数据执行处理,包括:所述多个(N个)级联层的每个层j的处理包括:如果j=1,则获取所述待编码数据作为层输入,否则获取第(j-1)层处理的特征图作为层输入;对所述获取的层输入进行处理,所述处理包括下采样;输出所述经下采样的特征图。
根据上述任一示例的方法包括:在一些实施例中,选择用于插入到所述码流中的信息,所述信息与由j>1的层处理的特征图中的第一区域相关,其中,所述第一区域对应于所述特征图中的区域或在包括多个元素的小于j的层中待编码的初始数据;在k个层处理的特征图进行选择时,不选择与所述第一区域对应的区域,其中,k为等于或大于1的整数且k<j。
根据上述任一示例的装置包括:在一些实施例中,所述处理电路还用于选择用于插入到所述码流中的信息,所述信息与由j>1的层处理的特征图中的第一区域相关,其中,所述第一区域对应于所述特征图中的区域或在包括多个元素的小于j的层中待编码的初始数据;在k个层处理的特征图进行选择时,不选择与所述第一区域对应的区域,其中,k为等于或大于1的整数且k<j。
在某些层中的这种选择不包括由其它层包括的原始特征图的区域,在译码开销方面特别高效。
在上述任一示例中,例如,所述待编码数据包括图像信息和/或预测残差信息和/或预测信息。
或者,与所述选定层相关的信息包括预测信息。
在上述任一示例中,例如,与所述选定层相关的所述数据包括所述特征图元素在所述选定层的特征图中的位置的指示。
这种指示能够将所述不同分辨率的特征图元素与所述输入数据区域正确关联。
在上述任一示例中,例如,选定和非选定特征图元素的位置由多个二值化标志指示,该指示基于所述标志在所述码流中的位置。
所述二值化标志提供了对所述分割信息进行译码的特别高效的方式。
根据一个实施例,在上述方法或装置中,所述多个(N个)级联层中的第j层的处理包括:确定通过使用所述第j层输出的特征图元素来重建重建图像的一部分所产生的第一成本,确定通过使用由所述第(j-1)层输出的特征图元素来重建所述重建图像的所述部分所产生的第二成本;如果所述第一成本高于所述第二成本,则选择所述第(j-1)层,并选择与所述第(j-1)层中的所述部分相关的信息。
提供包括失真在内的优化以更高效的方式达到所需质量。
例如,所述第一成本和所述第二成本包括数据量和/或失真。通过考虑速率(所述编码器生成的数据量)和所述重建图像的失真进行优化,可以灵活地满足各种应用或用户的要求。
可替代地,或者另外,所述待编码数据是运动矢量场。上述方法适用于压缩运动矢量场,例如密集光流或子采样光流。这些方法的应用可以对运动矢量进行高效译码(在速率和失真或其它标准方面),并能够进一步减小经编码图像或视频数据的码流大小。
在一些实施例中,所述预测信息包括参考索引和/或预测模式。除了运动矢量场之外或可替代地,可以处理与预测有关的其它信息。参考索引和预测模式可以类似于运动矢量场,与图像的内容相关,因此,对具有不同分辨率的特征图元素进行编码可以提高效率。
例如,所述数据量包括传输与所述选定层相关的数据所需的数据量。这样,在优化期间,可以计算通过提供与输出层不同的层相关的信息而产生的开销。
另外或可替代地,通过比较重建图像与目标图像来计算失真。这种端到端质量比较确保了所述重建图像中的失真得到适当考虑。因此,优化能够以高效的方式选择译码方法,并以更准确的方式满足应用或用户提出的质量要求。
在上述任一示例中,例如,所述处理包括具有不同分辨率的级联层之间的附加卷积层。
在所述级联层网络中提供这种附加层能够引入额外的处理,例如各种类型的滤波,以提高译码的质量或效率。
根据示例性实现方式,根据上述实施例所述的方法或所述的装置的处理电路包括:在层进行下采样时,使用第一滤波器对输入特征图进行下采样得到第一特征图,使用第二滤波器对所述输入特征图进行下采样得到第二特征图,确定通过使用所述第一特征图来重建重建图像的一部分而产生的第三成本,确定通过使用所述第二特征图来重建所述重建图像的所述部分而产生的第四成本;在进行选择时,如果所述第三成本低于所述第四成本,则选择所述第一特征图。
应用不同的下采样滤波器有助于适应内容的不同特点。
例如,所述第一滤波器和所述第二滤波器的形状可以是方形、水平方向的矩形和垂直方向的矩形中的任何一个。
这些滤波器的形状仍然简单,但可以在其它方面改进,例如,适应对象边界。
所述方法步骤或由装置的所述处理电路执行的步骤还可以包括:获取掩码,其中,所述掩码由标志组成,所述掩码表示任意滤波器形状,所述第一滤波器或所述第二滤波器具有任意滤波器形状。
可以更灵活地设计任何形状的滤波器。
所述方法步骤或由装置的所述处理电路执行的步骤还可以包括:在所述不同层中处理与被分割成具有不同块大小和形状的块的相同图像相关的数据,所述选择包括:根据预定译码模式集的计算成本来选择层。
在一些示例性实现方式中,所述处理包括为至少一个层确定不同译码模式集的成本,并根据所确定的成本选择所述译码模式集中的一个。
将优化应用于译码模式可以实现高效的速率失真优化,从而提高译码效率。
例如,与所述选定层相关的数据的所述指示包括所述选定的译码模式集。
根据本发明的一个方面,提供了一种存储在非瞬时性介质中的计算机程序,所述计算机程序包括代码,当所述代码在一个或多个处理器上执行时执行上文所述的任一方法的步骤。
根据本发明的一个方面,提供了一种用于对图像或视频进行编码的设备,包括处理电路,所述处理电路用于执行根据上述任一示例所述的方法。
上述任一装置都可以实施在集成芯片上。本发明可以在硬件(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实现方式中,连接处的“信号”是实数,每个神经元的输出通过其输入之和的某个非线性函数计算。这些连接称为边。神经元和边通常具有随着学习进行调整的权重。权重增加或减少连接处信号的强度。神经元可以具有阈值,使得只有在聚合信号超过该阈值时才会发送信号。通常,神经元被聚集成层。不同的层可以对其输入进行不同的变换。信号可能在多次遍历各层之后从第一层(输入层)传输到最后一层(输出层)。
ANN方法的最初目标是以与人脑相同的方式解决问题。随着时间的推移,关注点转移到执行特定任务上,导致偏离生物学。ANN已经用于各种任务,包括计算机视觉、语音识别、机器翻译、社交网络过滤、棋盘和视频游戏、医学诊断,甚至在传统上被认为是为人类保留的活动,如绘画。
“卷积神经网络”(convolutional neural network,CNN)的名称表示该网络采用了一种称为卷积的数学运算。卷积是一种专门的线性运算。卷积网络是神经网络,在其至少一个层中使用卷积代替一般矩阵乘法。
图1示意性地示出了神经网络(例如,CNN)的处理的一般概念。卷积神经网络由输入层和输出层以及多个隐藏层组成。输入层是提供输入(例如,图1所示的图像的一部分)进行处理的层。CNN的隐藏层通常由一系列卷积层组成,这些卷积层与乘法或其它点积进行卷积。层的结果是一个或多个特征图(图1中为f.maps),有时也称为通道。一些或所有层中可能涉及子采样。因此,特征图可能会变小,如图1所示。CNN中的激活函数通常是修正线性单元(rectified linear unit,ReLU)层,随后是附加卷积,例如池化层、全连接层和归一化层,称为隐藏层,因为它们的输入和输出被激活函数和最终卷积掩盖。虽然层被通俗地称为卷积,但这只是根据惯例。从数学上讲,它在技术上是滑动点积或互相关。这对矩阵中的索引具有重要意义,因为它会影响在特定索引点确定权重的方式。
当对CNN进行编程以处理图像时,如图1所示,输入是形状(图像数量)×(图像宽度)×(图像高度)×(图像深度)的张量。然后,在通过卷积层后,图像被抽象为特征图,具有形状(图像数量)×(特征图宽度)×(特征图高度)×(特征图通道)。神经网络内的卷积层应具有以下属性:由宽度和高度定义的卷积核(超参数);输入通道和输出通道的数量(超参数);卷积滤波器(输入通道)的深度应等于输入特征图的数量通道(深度)。
在过去,使用传统的多层感知器(multilayer perceptron,MLP)模型进行图像识别。但是,由于节点之间的完全连接,它们受到了高维度的影响,并且在较高分辨率图像中无法充分扩展。具有RGB颜色通道的1000×1000像素图像具有300万个权重,权重太高,无法在完全连接的情况下高效地进行大规模处理。此外,这种网络架构不考虑数据的空间结构,以与距离近的像素相同的方式处理距离远的输入像素。这忽略了图像数据中的参考局部性,无论是在计算上还是在语义上。因此,神经元的完全连接对于由空间局部输入模式主导的图像识别等目的是浪费的。
卷积神经网络是多层感知器的生物学启发变体,专门用于模拟视觉皮层的行为。这些模型通过利用自然图像中存在的强空间局部相关性,减少了MLP架构带来的挑战。卷积层是CNN的核心构建块。该层的参数由一组可学习滤波器(上述核)组成,这些滤波器具有一个小的接受视野,但扩展到输入卷的整个深度。在前向传递期间,每个滤波器在输入卷的宽度和高度上卷积,计算滤波器的条目与输入之间的点积,并生成该滤波器的二维激活图。因此,网络学习滤波器,这些滤波器在输入中的某个空间位置处检测到某个特定类型的特征时激活。
沿深度维度堆叠所有滤波器的激活图形成卷积层的完整输出卷。因此,输出卷中的每个条目也可以解释为神经元的输出,该神经元查看输入中的小区域,并与同一激活图中的神经元共享参数。特征图或激活图是给定滤波器的输出激活。特征图和激活图含义相同。在一些论文中,它被称为激活图,因为它是对应于图像不同部分的激活的图,也是特征图,因为它也是图像中找到某种特征的映射。高激活表示找到了某个特征。
CNN的另一个重要概念是池化,这是非线性下采样的一种形式。有几个非线性函数来实现池化,其中最常见的是最大池化。它将输入图像划分为一组非重叠矩形,并对于每个这种子区域输出最大值。
直观地讲,特征的确切位置不如其相对于其它特征的粗略位置重要。这就是在卷积神经网络中使用池化的想法。池化层用于逐步减小表示的空间大小,减少网络中的参数数量、内存占用和计算量,从而也控制过拟合。在CNN架构中,通常在连续的卷积层之间周期性插入池化层。池化操作提供了另一种形式的平移不变性。
池化层在输入的每个深度切片上独立运行,并调整其空间大小。最常见的形式是池化层,应用大小为2×2的滤波器,步长在输入中每个深度切片处为2,沿宽度和高度均为2,舍弃75%的激活。在这种情况下,每个最大值操作都超过4个数字。深度维度保持不变。除了最大池化之外,池化单元还可以使用其它函数,例如平均池化或l2-norm池化。平均池化在过去经常使用,但与最大池化相比,最近已经鲜少使用,实际上后者常常表现更好。由于表示大小的大幅减小,最近有一种趋势是使用较小的滤波器或完全舍弃池化层。“感兴趣区域”池化(也称为ROI池化)是最大池化的变体,其中,输出大小是固定的,输入矩形是参数。池化是卷积神经网络基于快速R-CNN架构进行目标检测的重要组成部分。
上述ReLU是修正线性单元的缩写,它应用非饱和激活函数。它通过将负值设置为0,有效地从激活图中去除这些负值。它增加了决策函数和整体网络的非线性属性,而不影响卷积层的接受视野。其它函数也用于增加非线性,例如饱和双曲正切和sigmoid函数。ReLU通常比其它函数更受欢迎,因为它训练神经网络的速度快几倍,而不会对泛化精度造成重大影响。
在经过几个卷积层和最大池化层之后,神经网络中的高阶推理通过全连接层完成。全连接层中的神经元与前一个层中的所有激活都有连接,如常规(非卷积)人工神经网络中所示。因此,它们的激活可以作为仿射变换计算,矩阵乘法之后跟偏置偏移(学习或固定偏置项的向量加法)。
“损失层”(包括损失函数的计算)指定训练如何惩罚预测(输出)标签与真实标签之间的偏差,通常是神经网络的最后一层。可以使用适合不同任务的各种损失函数。Softmax损失用于预测K个互斥类的单个类。Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧氏损失(Euclidean loss)用于回归到实值标签。
总之,图1示出了典型卷积神经网络中的数据流。首先,输入图像通过卷积层,并抽象到包括几个通道的特征图,对应于该层的一组可学习滤波器中的多个滤波器。然后,使用池化层等对特征图进行子采样,该层减小了特征图中每个通道的维度。数据接着到达另一个卷积层,该卷积层可以具有不同数量的输出通道。如上所述,输入通道和输出通道的数量是层的超参数。要建立网络的连接,这些参数需要在两个连接的层之间同步,使得当前层的输入通道数应等于上一层的输出通道数。对于处理图像等输入数据的第一层,输入通道的数量通常等于数据表示的通道的数量,例如,3个通道用于图像或视频的RGB或YUV表示,或1个通道用于灰度图像或视频表示。
自动编码器和无监督学习
自动编码器是人工神经网络的一种用于以无监督的方式学习高效的数据译码。示意图如图2所示。自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表示(编码),通常用于降维。与简化侧一起,学习重建侧,其中,自动编码器尝试从简化的编码中生成尽可能接近其原始输入的表示,因此得名。在最简单的情况下,给定一个隐藏层,自动编码器的编码器级获取输入x并将其映射到h
λ=σ(Wx+b)。
此图像h通常称为代码、潜在变量或潜在表示。此处,σ是逐元素激活函数,例如,sigmoid函数或修正线性单元。W是权重矩阵,b是偏置向量。权重和偏置通常经随机初始化,然后在训练期间通过反向传播迭代更新。之后,自动编码器的解码器级将h映射到与x相同的形状的重建x′:
x′=σ′(W′λ′+b′)
其中,解码器的σ′、W′和b′可以与编码器的对应σ、W和b无关。
变分自动编码器模型对潜在变量的分布做出了强假设。这些模型使用变分方法进行潜在表示学习,这产生了额外的损失分量和用于训练算法的特定估计器,称为随机梯度变分贝叶斯(stochastic gradient variational Bayes,SGVB)估计器。假设数据由有向图模型pθ(x|h)生成,并且编码器正在学习后验分布pθ(h|x)的近似qφ(h|x),其中,φ和θ分别表示编码器(识别模型)和解码器(生成模型)的参数。VAE的潜在向量的概率分布通常比标准自动编码器更接近匹配训练数据的概率分布。VAE的目标具有以下形式:
此处,DKL表示KL散度(Kullback–Leibler divergence)。潜在变量的先验通常设置为中心各向同性多变量高斯(centered isotropic multivariate Gaussian)通常,对变分和似然分布的形状进行选择,使得它们为因子化高斯:
其中,ρ(x)和ω2(x)是编码器输出,而μ(h)和σ2(h)是解码器输出。
人工神经网络领域,特别是卷积神经网络的最新进展使研究人员有兴趣将基于神经网络的技术应用于图像和视频压缩任务。例如,提出了端到端优化的图像压缩,使用基于变分自动编码器的网络。
因此,数据压缩被认为是工程中一个基本且充分研究的问题,通常是为了为给定的离散数据集设计具有最小熵的代码。该方案在很大程度上依赖于对数据概率结构的了解,因此该问题与概率源建模密切相关。但是,由于所有实用代码都必须具有有限熵,因此连续值数据(例如图像像素强度的向量)必须量化为离散值的有限集,这引入了误差。
在这种情况下,即有损压缩问题,必须权衡两个相互矛盾的成本:离散化表示的熵(速率)和量化引起的误差(失真)。不同的压缩应用,例如数据存储或通过有限容量通道的传输,需要不同的速率-失真权衡。
速率和失真的联合优化较困难。如果没有进一步的约束,高维空间中最优量化的一般问题就难以解决。因此,大多数现有的图像压缩方法通过如下方式来操作:将数据向量线性变换为合适的连续值表示,独立量化其元素,然后使用无损熵编码编码生成的离散表示。由于变换的核心作用,此方案称为变换译码。
例如,JPEG对像素块使用离散余弦变换,JPEG 2000使用多尺度正交小波分解。通常,变换译码方法的三个组成部分(变换、量化器和熵编码)分别进行优化(通常通过手动参数调整)。如HEVC、VVC和EVC等现代视频压缩标准也使用变换表示对预测后的残差信号进行译码。这几个变换用于此目的,例如离散余弦变换(discrete cosine transform,DCT)和离散正弦变换(discrete sine transform,DST),以及低频不可分离手动优化变换(lowfrequency non-separable manually optimized transform,LFNST)。
变分图像压缩
变分自动编码器(Variable Auto-Encoder,VAE)可以认为是一个非线性变换译码模型。变换过程主要可分为四个部分。这在示出VAE框架的图3A中进行了举例说明。
变换过程主要可分为四个部分:图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(bitstream1)”进行编码(生成)和解码(解析)。图3A中的第二网络包括模块103、108、109、110和107,并被称为“超级编码器/解码器”子网。第二子网负责生成第二码流“码流2(bitstream2)”。这两个子网的目的不同。
第一个子网负责:
·将输入图像x转换101为其潜在表示y(这更容易压缩x),
·将潜在表示y量化102为量化潜在表示
·算术编码模块105使用AE压缩量化潜在表示以获得码流“码流1(bitstream1)”,
·算术解码模块106通过AD解析码流1,
·使用经解析的数据重建104重建重建图像
第二子网的目的是获得“码流1”样本的统计属性(例如,码流1样本之间的平均值、方差和相关性),使得第一子网对码流1的压缩更高效。第二子网生成第二码流“码流2”,其包括所述信息(例如,码流1样本之间的平均值、方差和相关性)。
第二网络包括编码部分,编码部分包括将量化潜在表示变换103为边信息z,将边信息z量化为经量化的边信息/>以及将所述经量化的边信息/>编码109(例如,二值化)到码流2中。在本示例中,二值化由算术编码(arithmetic encoding,AE)执行。第二网络的解码部分包括算术解码(arithmetic decoding,AD)110,其将输入码流2变换为经解码的量化边信息/>可能与/>相同,因为算术编码和算术解码操作是无损压缩方法。然后,经解码的量化边信息/>被变换107为经解码的边信息/>表示/>的统计属性(例如,/>的样本的平均值,或样本值的方差等)。然后,经解码的潜在表示/>被提供给上述算术编码器105和算术解码器106,以控制/>的概率模型。
图3A描述了变分自动编码器(variational auto encoder,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是信号编码的输出,然后将该输出提供(传输)给解码过程。虽然单元101(121)被称为“编码器”,但也可以将图3B中描述的完整子网称为“编码器”。编码过程通常是指将输入转换为编码(例如,压缩)输出的单元(模块)。从图3B可以看出,单元121实际上可以被视为整个子网的核心,因为它执行输入x到y的转换,这是x的压缩版本。例如,编码器121中的压缩可以通过应用神经网络或通常具有一个或多个层的任何处理网络来实现。在这种网络中,压缩可以通过包括下采样的级联处理来执行,该下采样减小了输入的大小和/或通道数量。因此,例如,编码器可以被称为基于神经网络(neural network,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 Lapara和E.P.Simoncelli(2015年)“使用广义归一化变换对图像进行密度建模(Density Modeling of Images Using a GeneralizedNormalization Transformation)”,2016年第四届国际会议学习表示会议(以下称为“Balle”)发表的arXiv电子打印版本中,作者提出了一个基于非线性变换的图像压缩模型端到端优化框架。作者对均方误差(Mean Squared Error,MSE)进行了优化,但使用了由线性卷积和非线性级联构建的更灵活的变换。具体来说,作者使用了广义除法归一化(generalized divisive normalization,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↓表示输入图像的宽度和高度都减少了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的解码器。另一层420以输入的处理顺序提供在上采样层411和410之间,该输入被实现为卷积层,但不对接收到的输入提供上采样。还显示了用于解码器的相应卷积层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在2019年IEEE/CVF计算机视觉与模式识别大会(Computer Vision and PatternRecognition,CVPR)的会议记录“DVC:端到端深度视频压缩框架(DVC:An End-to-end DeepVideo Compression Framework)”第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 vision,CV)算法进一步处理,如对象分割、检测和识别。与针对人类感知的传统图像和视频编码相比,质量特征是计算机视觉任务的性能,例如,物体检测精度,而不是重建质量。
最近的一项研究提出了一种新的部署范式,称为协作智能,在移动端和云端之间划分深度模型。在各种硬件配置和无线连接模式下的广泛实验表明,能耗和/或计算时延方面的最佳操作点涉及划分模型,通常在网络深处的某个点。现在常见解决方案,即模型完全位于云端中或完全位于移动端中,很少(如果有的话)是最佳的。协作智能的概念也扩展到了模型训练。在这种情况下,数据流双向流动:在训练中反向传播期间从云端到移动端,在训练中正向传递期间从移动端到云端,以及推理。
在最近的目标检测深度模型的背景下,基于HEVC帧内编码,研究了深度特征数据的有损压缩。随着压缩水平的增加,检测性能的下降,提出了压缩增强训练,以通过生成一个对特征值中的量化噪声更稳定的模型来最大限度地减少这种损失。然而,这仍然是一个次优的技术方案,因为所使用的编解码器非常复杂,并针对自然场景压缩而不是深度特征压缩进行了优化。
通过一种利用流行的YOLOv2网络进行目标检测任务的方法,研究了压缩效率和识别精度之间的权衡,解决了协同智能的深度特征压缩问题。在这里,术语“深度特征”与“特征图”具有相同的含义。“深度”一词来自捕获某些隐藏(深度)层的输出特征图并传输到云端中执行推理情况下的协作智能思想。这似乎比将压缩的自然图像数据发送到云并使用重建图像执行对象检测更高效。
特征图的高效压缩有利于图像和视频压缩和重建,无论是人类感知还是机器视觉。关于最先进的基于自动编码器的压缩方法的缺点,也适用于机器视觉任务。
具有跳跃连接的人工神经网络
残差神经网络(residual neural network,ResNet)是一种人工神经网络(artificial neural network,ANN),它建立在大脑皮层锥体细胞已知的结构之上。残差神经网络通过利用跳过连接或快捷方式跳过某些层来实现这一目标。典型的ResNet模型是用双层或三层跳过实现的,这些跳过包括非线性(ReLU)和中间的批量归一化。额外的权重矩阵可用于学习跳过权重;这些模型被称为公路网(HighwayNets)。具有多个并行跳过的模型称为DenseNets。在残差神经网络的背景下,非残差网络可以描述为普通网络。
跳过层的一个目的是通过重用前一个层的激活,直到相邻层学习其权重,避免梯度消失的问题。在训练期间,权重调整以静音上游层,并放大先前跳过的层。在最简单的情况下,只调整相邻层连接的权重,而不调整上游层的显式权重。当单个非线性层被跨过时,或当中间层都是线性时,效果最好。如果没有,则应为跳过的连接学习显式权重矩阵(应使用公路网)。
这种跳过简化了网络,从而在初始训练阶段减少使用的层数。这通过减少渐变消失的影响来加快学习速度,因为要传播的层较少。然后,网络在学习特征空间时逐渐恢复跳过的层。在训练接近尾声时,当所有层都被扩展时,它将保持更接近流形,从而学习更快。没有残差部分的神经网络可以探索更多的特征空间。这使得它更容易受到导致它离开流形的扰动的影响,并需要额外的训练数据来恢复。
U-Net中引入了更长的跳过连接,如图6所示。U-Net架构源于Long和Shelhamer首次提出的“全卷积网络”。主要的想法是通过连续的层来补充通常的收缩网络,在这些层中,池化运算被上采样运算符取代。因此,这些层提高了输出的分辨率。此外,连续的卷积层可以学习基于此信息集合精确的输出。
U-Net中的一个重要修改是,上采样部分有大量的特征通道,这样网络可以将上下文信息传播到较高分辨率层。因此,扩展路径或多或少与收缩路径对称,并产生u形架构。网络只使用每个卷积的有效部分,没有任何完全连接的层。要预测图像边界区域中的像素,通过镜像输入图像外推缺失的上下文。这种平铺策略对于将网络应用于大图像非常重要,因为不使用这种平铺策略,分辨率将受到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也可称为当前图像或待译码的图像(尤其是在视频译码中将当前图像与其它图像区分开时,其它图像例如同一视频序列,即也包括当前图像的视频序列中的之前经编码图像和/或经解码图像)。
(数字)图像是或可为具有强度值的样本的二维阵列或矩阵。阵列中的样本也可以称为像素(图像元素的简短形式)。阵列或图像的水平和垂直方向(或轴)的样本数限定了图像的大小和/或分辨率。为了表示颜色,通常使用三种颜色分量,即,该图像可以表示为或包括三个样本阵列。在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也可以称为当前图像块或待译码图像块。
与图像17一样,图像块203同样是或可认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的大小比图像17的小。即,例如,块203可以包括,例如,一个样本阵列(例如黑白图像17情况下的亮度阵列,或者在彩色图像情况下的亮度或色度阵列)或三个样本阵列(例如,在彩色图像17情况下的亮度阵列和两个色度阵列)或依据所应用的色彩格式的任何其它数量和/或类型的阵列。块203的水平和垂直方向(或轴)的样本数限定了块203的大小。因此,块可以为M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
图7A所示的视频编码器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(例如,求和器(adder或summer)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的输入数据。用于图像或视频处理的输入数据可以是用于这种处理的任何类型的数据,例如直接如上所述的图像(image/picture)或视频的样本、预测模式、运动矢量等。图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。解码端在下文稍后描述。
例如,下采样可以通过最大池化、平均池化或任何其它导致下采样的操作来完成。这种操作的另一个示例包括卷积运算。图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)层处理的特征图作为层输入(即,如果第i层为当前处理层,则第(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>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 absolutedifference,SAD)来执行比较。但是,其它类型的测量/度量也可以替代或另外使用,例如,针对主观感知的更高级的度量,例如,MS-SSIM或VMAF。然后,计算出的失真1430被提供给成本计算模块1460。
此外,速率估计模块1440计算每个运动矢量的比特量的估计值。速率估计不仅可以包括用于指示运动矢量信号的比特,而且还可以包括用于指示分割信息的比特(在一些实施例中)。例如,如此获得的比特数可以被逐个像素(特征图元素)归一化1450。得到的速率(比特量)提供给成本计算模块1460。为了获得速率(比特量)估计值,例如,使用运动信息译码模块(例如,通过执行译码并记录结果比特量)或在一些简化的实现方式中,使用其x或y分量的运动矢量长度作为粗略估计值。可以应用另一种估计技术。为了考虑分割信息,可以通过分割信息译码模块(例如,通过生成和译码分割信息并计数结果比特的数量)或在更简单的实现方式中通过将比特添加到总比特量中来评估。
在本示例中,成本计算的下一步是成本计算1460,然后进行4的下采样1470(downspl4),以达到运动分割单元1100的对应下采样层的分辨率。每个点(图像样本值)只能传输一个运动矢量。因此,得到的成本张量可以具有对应大小(维度)。因此,比特评估值可以通过下采样滤波器形状的平方(例如4×4)归一化。
然后,使用拉格朗日乘子,成本估计单元1460使用以下公式计算成本:
Cost=D+λ*R,或
Cost=R+β*D
其中,D表示失真(由1430计算),R表示比特估计值(由1440或1450输出的速率估计值),λ和β是拉格朗日乘子。下采样1470输出成本张量1480。如本领域中已知的,拉格朗日乘子以及λ和β可以通过经验获得。
这样得到了具有特征图中每个位置的成本估计的张量1480(在这种情况下,密集光流的W×H位置)。需要说明的是,使用顺序平均池化和上采样与最近邻居方法会导致在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的下采样,以匹配第二层工作的分辨率。在由第二下采样层downspl2处理之后,LayerMV张量621被提供给下一(第三层)层以及第二层的成本计算单元623。成本计算单元623以与成本计算单元1400类似的方式操作。如本领域技术人员清楚的那样,与参考图14描述的示例中的4的上采样/下采样不同,在每个方向上应用2的下采样。
为了对来自成本计算单元613和623的成本张量进行成对比较,来自前一(第一)下采样层的成本张量已被下采样(2)到当前分辨率层(第二层)。然后,在两个成本张量之间执行池化操作625。即,池化操作625在每个元素的成本张量中保持较低的成本。根据池化操作结果的元素索引,捕获成本较低的层的选择。例如,如果在一个特定张量元素中,第一张量的成本比第二张量的相应元素的成本低,则索引等于0,否则索引等于1。
为了确保用于训练目的的梯度传播,可以使用软arg max来获得具有梯度的池化索引。如果不需要梯度传播,可以使用带索引的常规池化。作为池化操作625的结果622,表示是否选择了来自当前分辨率层或前一分辨率层的运动矢量(LayerFlag张量)以及来自运动分割单元(LayerMv张量)的对应下采样层的运动矢量的索引是传输到当前(这里是第二)层的层信息选择单元624。最佳池化成本张量传播到下一个下采样级别(downspl2),然后对第三层重复操作。
具体地,第二层的输出LayerMv 621被第三层进一步下采样(downspl2),并且所得运动矢量场LayerMv 631被提供给第三层的成本计算单元633。将计算的成本张量与从第二层传播并由MinCost池化单元625提供的下采样成本张量逐个元素进行比较635。在MinCost池化635处理之后,索引表示是否选择了来自当前(第三)分辨率层或前一(第二)分辨率层的运动矢量(LayerFlag张量)以及来自运动分割单元(LayerMv张量)的对应下采样层的运动矢量的索引是传输到当前(这里是第三)层的层信息选择单元634。在本示例中,仅显示了三层作为示例。然而,一般来说,可能有不止三层,其中,这些层的其它层和信号选择逻辑具有类似于第二层和第三层所示的功能。
为了从每个空间分辨率层收集池化信息,下一个处理以相反的顺序执行——使用层信息选择单元634、624和614从较低分辨率层到较高分辨率层。首先,与最低分辨率层(这里是第三层)大小相同的TakeFromPrev张量被初始化601为0。然后,对不同分辨率的层重复相同的操作,如下所示。在张量(NOT TakeFromPrev)的值等于1的位置,选择LayerFlag张量(当前层中)的值作为分割信息在码流中传输。(Not TakeFromPrev)张量是TakeFromPrev张量的逐个元素否定。因此,在第三层(这里是最后一层)中,(Not TakeFromPrev)张量将所有值设置为1(601设置的否定0值)。因此,总是传输最后(这里是第三)层的分割信息1130(LayerFlag)。
使用逻辑运算TakeFromCurrent=(NOT TakeFromPrev)AND LayerFlag获得TakeFromCurrent张量。此张量TakeFromCurrent的标志表示是否选择在当前分辨率层的码流中传输运动矢量信息。层信息选择单元(634、624、614)通过取LayerMv张量的值,从运动分割单元的对应下采样层选择运动矢量信息,其中,TakeFromCurrent张量的值等于1。该信息作为选定信息1120在码流中传输。
对于最低分辨率对应的第三个(倒序中的第一个)处理层,所有标志都将传输,因为TakeFromPrev初始化为0,然后(Not TakeFromPrev)的所有值都等于1。对于最高分辨率层对应的最后一个处理层,不需要传输LayerFlag标志。假设对于未从前一个层选择运动信息的所有位置,这些位置应从当前或下一层(最高分辨率)层选择。
需要说明的是,如图16所示的成本计算是可以在GPU/NPU上运行的可并行方案。该方案也是可训练的,因为它正在传输梯度,可以在端到端可训练的视频译码技术方案中使用该方案。
需要说明的是,相反顺序处理与解码器在解析分割信息和运动矢量信息时执行的处理类似,如下面讨论解码器功能时所示。
信号选择逻辑1700的另一个示例性实现方式在图17中示出。与图16相比,图17的框图在同一分辨率层引入了多个译码选项。这由第一层成本计算单元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块提供,即提供的参数少4倍。类似地,在第三层中,块相关信息仅为64×64块提供,即提供的参数比第二层少4个定时参数,比第一层少16倍。
在此上下文中,块相关信息是每个块译码的任何信息,例如,预测模式;预测模式特定信息,例如运动矢量、预测方向、参考图像等;滤波参数;量化参数;转换参数或其它可能在块(编码单元)级别更改的设置。
然后,相应的第一层、第二层和第三层的成本计算单元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_flags在码流中传输。根据池化索引的最佳选定块的重建参数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中,输入图像(image/picture)在每一层中都是相同的。然而,图像的译码(计算成本)是在具有不同块大小的每一层中执行的。除了块大小,对于一个或多个块大小,可以根据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,信号馈送逻辑1370的功能类似于图9的信号馈送逻辑940的功能,以及包括三个上采样(处理)层。与上面参考图9描述的实施例的主要区别是,在图13中,网络1360专门用于运动矢量信息处理,输出运动矢量场。
如上所述,根据一个实施例,所述方法还包括从码流中获取与两层或多个层相关的分割信息。然后,根据分割信息从码流中获取特征图元素。根据分割信息,将特征图元素集分别输入到两个或多个特征图处理层中。下面在与使用分割信息解码有关的部分中提供了与在解析和处理中使用分割信息有关的一些详细示例。例如,图28和图29提供了非常具体的(并且仅仅是示例性的)层处理选项。
在一些实施例中,多个级联层还包括多个分割信息处理层。所述方法还包括在多个分割信息处理层中处理分割信息。例如,在多个分割信息处理层中的至少一个中处理分割信息包括上采样。在一些实施例中,分割信息的这种上采样和/或特征图的所述上采样包括最近邻居上采样。通常,应用于特征图信息的上采样和应用于分割信息的上采样可以不同。此外,同一网络内的上采样可以不同,因此一个网络(分割信息处理或特征图处理)可以包括不同类型的上采样层。例如,在图20或图21中显示了这样的示例。需要说明的是,除最近邻居之外的上采样类型可以包括一些插值方法,例如多项式方法,例如双线性、三次方等。
根据示例性实现方式,所述分割信息的上采样和/或所述特征图的上采样包括(转置)卷积。这对应于上文讨论的编码器的第一修改。图18在解码端示出了运动生成单元1869,包括卷积运算“conv↑”而不是最近邻上采样。所述运动生成单元可以进行可学习上采样过程,例如,在用于运动信息密集的情况下,有助于找到最佳的上采样变换,并可以通过使用如上文参考编码器描述的块平均运动矢量信息来减少由运动补偿引起的方块效应。同样的情况也适用于纹理恢复过程,例如,用于原始图像强度值或预测残差生成。运动生成单元1869还包括信号馈送逻辑,信号馈送逻辑的功能与图9的信号馈送逻辑940和图13的信号馈送逻辑1370的功能相同。
图30示出了根据第一修改的示例性解码端的层处理的框图。具体地,解析码流3030,并且信号馈送逻辑3040(功能与信号馈送逻辑940或1370的功能相同)向卷积上采样滤波器300提供选择指令。在一些实施例中,可从N个滤波器(表示为滤波器1至N)的集合中选择卷积滤波器。可以根据表示选定滤波器并从码流中解析的信息来选择滤波器。选定滤波器的指示可以由编码器根据RDO等优化方法提供(生成并插入到码流中)。具体地,可以应用图17或图24中举例说明的RDO(将滤波器大小/形状/顺序作为选项之一处理,即要优化的译码参数)。然而,本发明并不限于此,并且通常,滤波器可以根据其它指示参数(例如,译码模式、插值方向等)推导出。
总之,信号馈送逻辑单元控制具有不同滤波器形状的不同层的输入,并根据从码流中获取的分割信息和运动信息选择性地旁路绕过输出到下一层的层。卷积滤波器单元3000对应于由一个层执行的卷积。可以级联几个这样的卷积淹没滤波器,如图18所示。需要说明的是,本发明不限于可变的或可训练的滤波器设置。通常,卷积上采样也可以用固定的卷积运算执行。
本实施例的方面可以与其它实施例的方面结合。例如,具有在下采样层中平均的运动信息的编码器可以与包括卷积上采样层的解码器结合使用。具有卷积层的编码器的目的是寻找更好的潜在表示,可以与包括基于最近邻居的上采样层的运动生成网络结合。可以有其它组合。即,编码器和解码器的实现方式不必是对称的。
图32A示出了应用最近邻居方法的重建的两个示例。具体地,示例1示出了最低分辨率层的分割信息具有标志集的值(为1)的情况。相应地,运动信息表示一个运动矢量。由于运动矢量已经在最低分辨率层中表示,因此在码流中没有其它运动矢量和其它分割信息。网络通过在最近邻居上采样期间复制一个指示的运动矢量,从一个指示的运动矢量生成分别具有较高分辨率(2×2)的运动矢量场和最高分辨率(4×4)的运动矢量场。得到所有16个运动矢量相同且等于指示的运动矢量的4×4区域。
图32B示出了应用基于卷积层的方法的重建的两个示例。示例1具有与图32A的示例1相同的输入。具体地,最低分辨率层的分割信息具有标志集的值(为1)。相应地,运动信息表示一个运动矢量。然而,在应用卷积层(可能经过训练)之后,较高层和最高层中的运动矢量并不完全一样,而不是仅仅复制一个运动矢量。
类似地,图32A中的示例2示出了最低分辨率层中0的分割信息,以及下一个(较高分辨率)层的分割信息0101。相应地,由分割信息表示的位置的两个运动矢量在码流中指示为运动信息。这些显示在中间层。从底层可以看出,指示的运动矢量被复制,每个运动矢量都被复制四次,以包括最高分辨率区域。最高分辨率(底)层的其余8个运动矢量在码流中指示。图32B的示例2应用卷积而不是最近邻居复制。不再复制运动矢量。图32A中复制的运动矢量之间的过渡现在更加平滑,从而减少了方块伪影。
与上面讨论的编码器的第二修改类似,在解码端,多个级联层包括卷积层,而不在具有不同分辨率的层之间进行上采样。需要说明的是,编码器和解码器在这方面不一定是对称的:编码器可以具有这些附加层,而解码器则不具有,反之亦然。当然,编码器和解码器也可以对称设计,并在编码器和解码器的对应下采样和上采样层之间具有附加层。
关于分割信息处理和特征图处理的组合,从码流中获取特征图元素是根据由多个分割信息处理层中的至少一个处理的经处理分割信息进行的。分割层可以解析和解译分割信息,如下面在使用分割信息解码章节中更详细地描述的那样。需要说明的是,这部分中描述的实施例和示例可与本章节中的实施例结合使用。具体地,参考图26至图32B描述的分割信息的层处理也可以与本文描述的特征图处理结合执行。
例如,将两个或多个特征图元素集中的每个集合分别输入到两个或多个特征图处理层中是根据多个分割信息处理层中的至少一个处理的经处理分割信息进行的。获取的分割信息由语法元素集表示,其中,元素在语法元素集中的位置表示语法元素与哪个特征图元素位置相关。例如,语法元素集是码流部分,码流可以使用固定代码、熵代码(例如,可变长度代码或算术代码)进行二值化,这些代码中的任何一个可以是上下文自适应的。如果本发明具有编码端和解码端都已知的预定义结构,本发明不限于码流的任何特定译码形式。这样,解析和处理分割信息和特征图信息可以关联地进行。例如,对于每个语法元素,特征图的处理包括:(i)当语法元素具有第一值时,在由语法元素在码流中的位置表示的位置上从码流中解析特征图的元素,(ii)否则(或更一般地,当语法元素具有第二值时),在由语法元素在码流中的位置表示的位置上不从码流中解析特征图的元素。语法元素可以是二值化标志,这些标志在编码端被有序地排列到码流中,并由处理网络的特定层结构以正确的顺序从解码器中解析出来。
需要说明的是,选项(i)和(ii)也可以提供给未二值化的语法元素。在这种情况下,第一值指解析,第二值指不解析。语法元素可以取除第一值和第二值之外的一些其它值。这些还可以导致解析或不解析,或者可以表示特定类型的解析等。解析出的特征图元素的数量可以对应于等于第一值的语法元素的数量。
根据示例性实现方式,多个(N个)特征图处理层中的每个1<j<N的层对特征图的处理还包括:从码流中解析第j个特征图处理层的分割信息元素;获取由前一特征图处理层处理的特征图,以及从码流中解析特征图元素并将解析出的特征图元素与获取的特征图关联,其中,特征图元素在经处理特征图中的位置由解析出的分割信息元素表示,所述分割信息由前一分割信息处理层处理。例如,关联可以是之前处理的特征图元素的替换,或组合,例如,加法、减法或乘法。下面提供了一些示例性实现方式。解析可以取决于之前处理的分割信息,可以提供非常紧凑和高效的语法。
例如,所述方法可以包括:当语法元素具有第一值时,从码流中解析特征图的元素;当语法元素具有第二值或前一分割信息处理层处理的分割信息具有第一值时,不从码流中解析特征图的元素。即,如果相关部分在前一个层解析,则不进行解析。例如,从表示分割信息的码流中解析的语法元素是二值化标志。如上所述,经处理分割信息由二值化标志的集合表示是有益的。二值化标志的集合是各自的值为1或0(对应于上文提到的第一值和第二值)的二值化标志的序列。
在一些实施例中,每个分割信息处理层j中的分割信息的上采样还包括:对于输入的分割信息表示的获取的特征图中的每个位置p,确定用于重建图像中与第p个位置相同的区域中包括的特征图位置的指示,作为上采样的分割信息。这样提供了重建图像(或重建特征图或一般数据)、子采样特征图中的位置和对应的分割标志之间的空间关系。
如上所述,以及在编码器实施例中,用于图像或视频处理的数据可以包括图像数据(例如,图像样本)和/或预测残差数据和/或预测信息数据。当在本发明中提到“残差”时,需要说明的是,这些残差可以是像素域残差或变换(光谱)系数(即,变换残差,与样本/像素域不同的域中表示的残差)。
类似于上面针对编码端描述的第四修改,根据示例性实现方式,滤波器用于特征图的上采样,并且滤波器的形状是方形、水平矩形和垂直矩形中的任一个。需要说明的是,滤波器的形状可以与图25中所示的分块形状类似。
图20中示出了示例性解码端的层处理。运动生成网络(单元)2060包括信号馈送逻辑和使用滤波器(上采样滤波器)的一个或多个(这里是两个)上采样层,该滤波器可以从预定或预定义的滤波器集中选择。选择可以在编码端执行,例如,通过RDO或其它设置,并在码流中指示。在解码端,从码流中解析滤波器选择的指示并应用。或者,可以在解码端选择滤波器,不用根据码流推导出的其它译码参数来指示所述滤波器。这些参数可以是与内容相关的任何参数,例如,预测类型、方向、运动信息、残差、环路滤波特性等。
图31示出了支持在N个滤波器1至N中选择一个滤波器的上采样滤波器单元3100的框图。滤波器选择的指示可以直接包括N个滤波器中的一个滤波器的索引。所述索引可以包括滤波器方向、滤波器顺序、滤波器形状和/或系数。在解码端,信号馈送逻辑解译滤波器选择标志(例如,用于区分垂直滤波器和水平滤波器的方向标志或其它方向),并将特征图值馈送到具有对应滤波器形状集的层。在图31中,从信号馈送逻辑到选择性旁路逻辑的直接连接可以不选择任何滤波器。滤波器选择指示符的对应值也可以在码流中指示或推导出。
通常,特征图的上采样使用滤波器,从码流输入信息还包括:从码流中获取表示滤波器形状和/或滤波器方向和/或滤波器系数的信息。可以存在每层具有要选择的滤波器集合的实现方式,或者每层是一个滤波器,并且根据滤波器选择标志(指示符)确定哪些层要被选择,哪些层要被旁路绕过的信号馈送逻辑的实现方式。
在一些实施例中,可以提供柔性滤波器形状,其中,表示滤波器形状的所述信息表示由标志组成的掩码,并且掩码表示滤波器形状,因为具有第三值的标志表示非零滤波器系数,并且具有与第三值不同的第四值的标志表示滤波器系数为0。即,正如已经为编码端描述的那样,滤波器形状可以通过表示非零系数的位置来定义。非零系数可以根据预定义的规则推导出,也可以指示。
上述解码器实施例可以实现为存储在非瞬时性介质中的计算机程序产品,当在一个或多个处理器上执行时,该计算机程序产品执行上述任何方法的步骤。类似地,上述解码器实施例可以实现为用于对图像或视频进行解码的设备,包括处理电路,该处理电路用于执行上述任何方法的步骤。具体地,可以提供一种用于从码流中解码用于图像或视频处理的数据的设备,所述设备包括:获取单元,用于从码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关;输入单元,用于将两个或多个特征图元素集中的每个特征图元素集分别输入到多个级联层中的两个或多个特征图处理层;经解码数据获取单元,用于获取用于图像或视频处理的所述经解码数据,作为多个级联层的处理结果。这些单元可以以软件或硬件或两者的组合实现,如下文更详细地讨论。
使用分割信息解码
在接收端,本实施例的解码器执行分割信息的解析和解译。因此,如图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的运动矢量的每个组中,运动矢量可以比未选择的(由标志2623指示)特征图2630中确定特征图2620中的运动矢量(特征图元素)的四个运动矢量彼此具有更多的相似性。
图26是上文通过码流的特征描述的。需要说明的是,解码器相应地解码(解析)这些码流:所述解码器根据如上所述的标志的值确定包括(指示)哪些信息,并相应地解析/解译所述解析的信息。
在示例性实现方式中,分割信息被组织如图27所示。对于被视为图像序列的图像或视频等2D信息,一些层的特征图可以在二维空间中表示。分割信息包括用于2D空间位置的指示符(二值化标志),表示是否在码流中呈现与该位置对应的特征图值。
在图27中,存在用于对分割信息进行解码的起始层(层0),例如,最低分辨率层,即潜在表示层。对于此起始层,每个2D位置包括一个二值化标志。如果这种标志等于1,则选定信息包括此特定层上此位置的特征图值。另一方面,如果这种标志等于0,则在此特定层上没有此位置的信息。这组标志(或通常为标志张量,这里是标志矩阵)被称为TakeFromCurrent。TakeFromCurrent张量被上采样到下一层分辨率,例如,使用最近邻居方法。让我们将此张量表示为TakeFromPrev。此张量中的标志表示对应的样本位置是否在前一个层(此处为第0层)填充。
作为下一步,信号馈送逻辑读取当前分辨率层位置的标志(LayerFlag)。在该示例性实现方式中,仅指示在之前层中未填充的位置(未设置为1,未填充特征图元素值)。使用逻辑运算,可以表示为TakeFromPrev==0或!TakeFromPrev==1,其中“!”表示逻辑NOT运算(取反)。
此层所需的标志量可以计算为TakeFromPrev张量中的0(逻辑假)元素量,或反转(!TakeFromPrev)张量中值为1(逻辑真)的量。对于TakeFromPrev张量中的非零元素,码流中不需要任何标志。这在图中通过在不需要读取的位置上显示“-”来表示。从实现的角度来看,将倒张量上的元素之和计算为sum(!TakeFromPrev)可能更容易。信号馈送逻辑可以使用此算法来标识需要从码流中解析多少标志。读取标志放置在!TakeFromPrev值等于1的位置,以获取LayerFlag张量。然后,通过将标志保持在从当前分辨率层的码流读取的位置,并将在之前分辨率层(LayerFlag标记为“-”的位置)读取的位置的值归零,获取当前分辨率层(此处为第1层)的TakeFromCurrent张量作为TakeFromPrev和LayerFlag张量的组合。可以使用逻辑AND运算符表示和实现,如下所示:TakeFromCurrent=!TakeFromPrev ANDLayerFlag。然后,为了考虑在之前分辨率层读取的位置,使用TakeFromCurrent=TakeFromCurrent OR TakeFromPrev等逻辑OR运算获取TakeFromCurrent张量。应该理解的是,布尔运算可以使用常规数学运算来实现,例如,AND的乘法和OR的求和。这将提供保留和转移梯度的好处,可以在端到端训练中使用上述方法。
然后,将获取的TakeFromCurrent张量上采样到下一个分辨率层(此处为第2层),并重复上述操作。
为了通用性和简化实现方式,不特别考虑第一分辨率层的情况下统一所有分辨率层的处理是有益的,其中,所有标志都是针对第一分辨率层从码流中解析的。这可以通过在第一个(较低分辨率)层(第0层)中处理之前将TakeFromPrev初始化为0,并为每个分辨率层重复上述步骤来实现。
为了进一步减少指示开销,在一些其它实现方式中,最后一个分辨率层(这里是第三层,即第2层)的LayerFlags不需要传输(包括在编码器处,在解码端解析)到码流中。即,对于最后一个分辨率层,特征图值作为最后一个分辨率层的所有位置的选定信息(参见图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中初始化为0。TakeFromPrev张量按从早期层的语法解译(例如,从2823)到之后层的语法解译(例如,2822)的处理顺序传播。这里的传播包括2的上采样,如上面参考图27所解释的。
在解译每个分辨率层的分割信息(LayerFlag)时,获取(生成)张量TakeFromCurrent。此张量TakeFromCurrent包括表示当前分辨率层的每个特定位置的码流中是否存在特征图信息(LayerMv)的标志。解码器从码流中读取特征图LayerMv的值,并将这些值放置在TakeFromCurrent张量的标志等于1的位置。当前分辨率层的码流中包括的特征图值的总量可以根据TakeFromCurrent中的非零元素的数量或作为sum(TakeFromCurrent)(TakeFromCurrent张量的所有元素的总和)计算。在下一步,每个层(例如,在2812)中的张量通过将TakeFromCurrent张量的值等于1的位置处的特征图的值替换为作为选定信息的码流中传输的特征图值(LayerMv)的方式,组合逻辑2813、2812和2811组合之前分辨率层(例如,由2813生成和上采样2801生成,以匹配之后的层处理2812)的输出。如上所述,为了在第一层(张量组合2813)中启用与其它层相同的操作,组合张量在2810中初始化为0。在处理来自所有层的LayerFlags并生成最后一个层的输出张量(在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中初始化为0,并传递给第一层的语法解译2923。
在最后一层(这里是第三层)之后,LayerIdx张量被上采样到原始分辨率(4的上采样2995)。因此,LayerIdx的每个位置都包括要从中获取运动信息的层的索引。LayerIdx的位置以相同的分辨率对应于特征图数据的原始分辨率(这里是密集光流),在本示例中是2D(矩阵)。因此,对于重建光流中的每个位置,LayerIdx表示从中获取运动信息的位置(哪一层的MayerMV)。
运动信息(LayerMv,在图29中也称为LayerMvUp)用以下方式生成。在每个空间分辨率层,张量组合块(2913、2912、2911)根据上文所述的方法,根据从码流中获取的分割信息(LayerFlag)将从码流中获取的LayerMv(经过相应的语法解译单元2923、2922、2921)与中间张量以及中间TakeFromCurrent布尔张量组合。中间张量可以初始化为0(参见初始化单元2910、2919、2918)或初始化为任何其它值。初始化值并不重要,因为最终在完成所有步骤之后,根据该方法,这些值不会被选择用于密集光流重建2990。包括运动信息的组合张量(从2913、2912、2911中的每一个输出)被上采样并与之前空间分辨率层的组合张量级联(2902、2901)。级联沿着对应于从不同分辨率的层获取的运动信息的附加维度执行(即,级联2902之前的2D张量成为级联之后的3D张量;级联2901之前的3D张量在级联后保持3D张量,但张量的大小增大)。最后,在完成LayerIdxUp和LayerMvUp的所有上采样步骤后,通过使用LayerIdxUp的值作为LayerMvUp中轴上的索引,从LayerMvUp中选择运动信息,获取重建的密集光流,其中,轴是在LayerMvUp级联步骤期间增加的维度。即,LayerMvUp中添加的维度是层数上的维度,LayerIdxUp为每个位置选择适当的层。
上述特定的示例性实现方式并不限制本发明。一般来说,分割可以以各种可想象的方式在码流中执行和指示。通常,获取分割信息元素集是根据由多个级联层中的至少一个分割信息处理层处理的分割信息进行的。如图28所示,这样的层可以包括语法解译单元(2823、2822、2821),所述语法解译单元解析/解译所述解析后的分割信息LayerFlag的含义(语义)。
更具体地,输入分割信息元素集是根据由多个级联层中的至少一个级联层输出的经处理分割信息进行的。例如,在图28中,通过在语法解译单元(2823、2822、2821)之间传递TakeFromPrev张量来说明这一点。如在编码端的描述中已经解释的,在一些示例性实现方式中,分别在两个或多个分割信息处理层中处理的分割信息的分辨率不同。
此外,在两个或多个分割信息处理层中对分割信息的处理包括上采样,如已经参考图9、13和其它图举例说明。例如,分割信息的所述上采样包括最近邻居上采样。需要说明的是,在本实施例中以及在上述实施例中,本发明不因应用最近邻居上采样而受到限制。上采样可以包括插值,而不是简单复制相邻样本(元素)值。插值可以是任何已知的插值,例如,线性或多项式插值,例如三次上采样等。关于复制,需要说明的是,最近邻居执行的复制是从预定义(可用)最近邻居(例如,上或左)复制元素值。如果与要填充的位置有相同距离的邻居,则可能需要复制该邻居的预定义。
如上文针对第一修改所述,在一些示例性实现方式中,所述上采样包括转置卷积。除了或可替代地将卷积上采样应用于特征图信息之外,卷积上采样也可以应用于分割信息。需要说明的是,针对分割信息执行的上采样类型不一定是应用于特征图元素的相同上采样类型。
通常,对于多个级联层中的多个(N个)分割信息处理层中的每个分割信息处理层j,输入包括:
-如果j=1,则从码流输入初始分割信息(和/或基于初始化,例如,在2820中初始化为0),
否则输入由第(j-1)个分割信息处理层处理的分割信息;
-输出经处理分割信息。
这是与输入层相关的分割信息,不一定(仍然可能)来自码流的整个分割信息。第j层中的上采样分割信息是第j层中上采样的分割信息,即由第j层输出。通常,分割层的处理包括上采样(TakeFromPrev)和包括来自码流的新元素(LayerFlag)。
例如,多个(N个)分割信息处理层中的每个j<N的层对输入的分割信息的处理还包括从码流中解析分割信息元素(LayerFlag),以及将解析后的分割信息元素与前一个层输出的分割信息(TakeFromPrev)相关联(例如,在图28中的语法解译单元282x中)。解析后的分割信息元素(LayerFlag)在关联的分割信息中的位置是根据前一个层输出的分割信息确定的。正如在图28和图29中可见,可以有各种不同的方式来关联和传播位置信息。本发明不限于任何特定的实现方式。
例如,根据前一个层输出的分割信息确定从码流中解析的分割信息元素的数量。具体地,如果某些区域已经被前一个层的分割信息覆盖,则不必在之后层上再次覆盖。值得说明的是,这种设计提供了一种高效的解析方法。与结果重建分割信息的位置相对应的结果重建特征图数据的每个位置仅与属于单层(在N个处理层中)的分割信息相关联。因此,没有信息重复。然而,本发明不限于这种方法。可以想象,分割信息是重复的,即使这样可能导致一些冗余信息。
如图27中已经所示,在一些实施例中,解析后的分割信息元素由一组二值化标志表示。码流(语法)中标志的排序可以传达标志与其所属层之间的关联关系。顺序(序列)可以由编码端的预定义处理顺序给出,相应地,也可以由解码端的预定义处理顺序给出。例如,图16和图28中举例说明了。
在一些示例性实施例中,例如上面参考第七修改提到的实施例中,获取用于图像或视频处理的经解码数据包括根据分割信息确定以下参数中的至少一个。分割信息可以与运动信息类似的方式确定译码参数等附加信息的解析,所述译码参数可以包括:帧内或帧间预测模式;图像参考索引;单参考或多参考预测(包括双向预测);存在或不存在预测残差信息;量化步长;运动信息预测类型;运动矢量长度;运动矢量分辨率;运动矢量预测索引;运动矢量差大小;运动矢量差分辨率;运动插值滤波器;环内滤波器参数;和/或后滤波器参数等。即,当被分割信息处理层处理时,分割信息可以表示从译码参数的哪个处理层可以获取译码参数。例如,在图22或图23的上述编码器方法中,重建(译码)参数可以从码流中接收,而不是(或除了)从运动信息(LayerMv)中接收。这种重建(译码)参数blk_rec_params可以在解码端以与图28和图29中所示的运动信息相同的方式被解析。
通常,分割信息用于特征图元素(运动信息或上述任何重建参数或样本相关数据)解析和输入。所述方法还可以包括从码流中获取特征图元素集,并根据由分割信息处理层处理的分割信息,将特征图元素集分别输入到多个层中的特征图处理层。此外,所述方法还包括根据多个级联层处理的特征图,获取用于图像或视频处理的经解码数据。具体地,在一些实施例中,多个级联层中的至少一个是分割信息处理层以及特征图处理层。如上所述,网络可以设计有分离的分割信息处理层和特征图处理层,或者设计有两种功能的组合层。在一些实现方式中,多个层中的每一层要么是分割信息处理层,要么是特征图处理层。
上述方法可以体现为存储在非瞬时性介质中的计算机程序产品,当在一个或多个处理器上执行时,该计算机程序产品使处理器执行这些方法中的任何一个的步骤。类似地,提供了一种用于对图像或视频进行解码的设备,包括处理电路,用于执行上文所论述的任一方法的方法步骤。本发明提供的装置的功能结构可以对应于上述实施例和步骤提供的功能。例如,提供了一种用于从码流中解码用于图像或视频处理的数据的设备,其中,所述设备包括:获取单元,用于从码流中获取两个或多个分割信息元素集;输入单元,用于将两个或多个分割信息元素集中的每个分割信息元素集分别输入到多个级联层中的两个或多个分割信息处理层;处理单元,用于在两个或多个分割信息处理层的每个分割信息处理层中,处理各自的分割信息集;经解码数据获取单元,用于根据在多个级联层中处理的分割信息,获取用于图像或视频处理的所述经解码数据。这些单元和其它单元可以执行上述方法的所有功能。
一些实施例的简要概述
关于使用特征信息解码的实施例
根据一个实施例,提供了一种用于从码流中解码用于图像或视频处理的方法,其中,所述方法包括:从码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关;将两个或多个特征图元素集中的每个特征图元素集分别输入到多个级联层中的两个或多个特征图处理层;获取用于图像或视频处理的所述经解码数据,作为多个级联层的处理结果。
这种方法可以提高效率,因为所述方法使来自不同层的数据能够用于解码,从而从码流中解析特征或其它类型的层相关信息。
例如,在两个或多个特征图处理层中的每一个中处理特征图,其中,在两个或多个特征图处理层中分别处理的特征图的分辨率不同。
在一些实施例中,在两个或多个特征图处理层中对特征图进行的处理包括上采样。
应用上采样一方面可以降低处理的复杂度(因为第一层具有较低分辨率),另一方面也可以减少在码流中提供并在解码端解析的数据。此外,处理不同分辨率的层可以以这种方式关注不同尺度的特征。因此,处理图片(静态或视频)的网络可以高效地运行。
在示例性实现方式中,所述方法还包括以下步骤:从码流中获取与两个或多个层相关的分割信息,其中,从码流中获取特征图元素是根据分割信息进行的,将特征图元素集分别输入到两个或多个特征图处理层中是根据分割信息进行的。
使用分割信息可以对来自不同层的特征图进行高效解码,使得原始(待重建)的每个区域可以仅包括在一个层的信息中。虽然这并不是限制本发明,在某些情况下,本发明还可以为特征图(数据)中的特定区域的层间信息可以有一定的重复。例如,多个级联层还包括多个分割信息处理层,所述方法还包括对多个分割信息处理层中的分割信息的处理。这种方法提供了控制来自不同层的特征元素的解析的可能性。
在一些实施例中,在多个分割信息处理层中的至少一个中处理分割信息包括上采样。分割信息的分层结构可以提供要插入码流中的少量边信息,从而提高效率和/或缩短处理时间。
例如,分割信息的这种上采样和/或特征图的所述上采样包括最近邻居上采样。最近邻居上采样具有较低的计算复杂度,并且可以很容易地实现。尽管如此,最近邻居上采样还是很高效的,特别是对于标志等逻辑指示。
在一些实施例和示例中,所述分割信息的上采样和/或所述特征图的上采样包括转置卷积。卷积的使用有助于减少方块伪影,并启用可训练的解决方案,其中,上采样滤波器是可选择的。
在示例性实现方式中,从码流中获取特征图元素是根据由多个分割信息处理层中的至少一个处理的经处理分割信息进行的。
在示例性实现方式中,将两个或多个特征图元素集中的每个集合分别输入到两个或多个特征图处理层中是根据多个分割信息处理层中的至少一个处理的经处理分割信息进行的。
根据一个实施例,获取的分割信息由语法元素集表示,其中,元素在语法元素集中的位置表示语法元素与哪个特征图元素位置相关。对于每个语法元素,特征图的处理包括:当语法元素具有第一值时,在由语法元素在码流中的位置表示的位置上从码流中解析特征图的元素,否则,在由语法元素在码流中的位置表示的位置上不从码流中解析特征图的元素。
分割信息和特征图信息之间的这种关系能够高效地译码频率信息,并通过考虑不同的分辨率在分层结构中进行解析。
例如,多个(N个)特征图处理层中的每个1<j<N的层对特征图的处理还包括:从码流中解析第j个特征图处理层的分割信息元素;获取由前一特征图处理层处理的特征图;从码流中解析特征图元素并将解析出的特征图元素与获取的特征图关联,其中,特征图元素在经处理特征图中的位置由解析出的分割信息元素表示,所述分割信息由前一分割信息处理层处理。
具体地,所述方法可以包括:当语法元素具有第一值时,从码流中解析特征图的元素;当语法元素具有第二值或前一分割信息处理层处理的分割信息具有第一值时,不从码流中解析特征图的元素。
例如,从表示分割信息的码流中解析的语法元素是二值化标志。具体地,经处理分割信息由二值化标志的集合表示。
提供二值化标志可实现高效译码。在解码端,逻辑标志的处理可以以低复杂度执行。
根据示例性实现方式,每个分割信息处理层j中的分割信息的上采样还包括:对于输入的分割信息表示的获取的特征图中的每个位置p,确定用于重建图像中与第p个位置相同的区域中包括的特征图位置的指示,作为上采样的分割信息。
例如,用于图像或视频处理的数据包括运动矢量场。由于需要具有与图像分辨率相似的分辨率的密集光流或运动矢量场来建模运动,因此本发明的分层结构适用于高效地重建这种运动信息。通过层处理和指示,可以在速率和失真之间实现良好的权衡。
例如,用于图像或视频处理的数据包括图像数据和/或预测残差数据和/或预测信息数据。本发明可用于各种不同的参数。然而,图像数据和/或预测残差数据和/或预测信息数据在空域中仍然可以具有一些冗余,并且本文描述的分层方法可以提供使用不同分辨率从码流中进行高效解码。
在一些实施例和示例中,滤波器用于特征图的上采样,并且滤波器的形状是方形、水平矩形和垂直矩形中的任一个。
应用不同的上采样滤波器有助于适应内容的不同特征。例如,特征图的上采样使用滤波器,从码流输入信息还包括:从码流中获取表示滤波器形状和/或滤波器系数的信息。
相应地,解码器可以根据在码流中发送的来自编码器的信息提供更好的重建质量。
例如,表示滤波器形状的所述信息表示由标志组成的掩码,并且掩码表示滤波器形状,因为具有第三值的标志表示非零滤波器系数,并且具有与第三值不同的第四值的标志表示滤波器系数为0。可以更灵活地设计任何形状的滤波器。
例如,多个级联层包括卷积层,而不在具有不同分辨率的层之间进行上采样。
在所述级联层网络中提供这种附加层能够引入额外的处理,例如各种类型的滤波,以提高译码的质量或效率。
根据一个实施例,提供了一种存储在非瞬时性介质中的计算机程序产品,当在一个或多个处理器上执行时,执行根据上述任一方法所述的方法。
根据一个实施例,提供了一种用于对图像或视频进行解码的设备,包括处理电路,用于执行根据上述实施例和示例中的任何一个所述的方法。
根据一个方面,可以提供一种用于从码流中解码用于图像或视频处理的数据的设备,所述设备包括:获取单元,用于从码流中获取两个或多个特征图元素集,其中,每个特征图元素集与特征图相关;输入单元,用于将两个或多个特征图元素集中的每个特征图元素集分别输入到多个级联层中的两个或多个特征图处理层;经解码数据获取单元,用于获取用于图像或视频处理的所述经解码数据,作为多个级联层的处理结果。
上述任一装置都可以实施在集成芯片上。本发明可以在硬件(HW)和/或软件(SW)中实现。此外,基于硬件的实现可以与基于软件的实现相结合。
需要说明的是,本发明不限于特定框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、图像生成和识别系统。
关于使用分割信息解码的实施例
根据一个方面,提供了一种用于从码流中解码用于图像或视频处理的数据的方法,其中,所述方法包括:从码流中获取两个或多个分割信息元素集;将两个或多个分割信息元素集中的每个分割信息元素集分别输入到多个级联层中的两个或多个分割信息处理层;在两个或多个分割信息处理层的每个分割信息处理层中,处理各自的分割信息集,其中,获取用于图像或视频处理的所述经解码数据是根据在多个级联层中处理的分割信息进行的。
这种方法可以提高效率,因为它能够解码可在分层结构中基于层配置的各种分割中的数据。提供分割可以考虑经解码数据的特征。
例如,获取分割信息元素集是根据由多个级联层中的至少一个分割信息处理层处理的分割信息进行的。
在一些示例性实施例中,输入分割信息元素集是根据由多个级联层中的至少一个级联层输出的经处理分割信息进行的。
级联分割信息处理能够高效地解析分割信息。
例如,在两个或多个分割信息处理层中分别处理的分割信息的分辨率不同。
在一些实施例和示例中,在两个或多个分割信息处理层中对特征图进行的处理包括上采样。
分割信息的分层结构可以提供要插入码流中的少量边信息,从而提高效率和/或缩短处理时间。
具体地,分割信息的所述上采样包括最近邻居上采样。最近邻居上采样具有较低的计算复杂度,并且可以很容易地实现。尽管如此,最近邻居上采样还是很高效的,特别是对于标志等逻辑指示。例如,分割信息的所述上采样包括转置卷积。执行上采样可以提高上采样质量。此外,这种卷积上采样层可以提供为可训练的,或者在解码端提供为可配置的,使得卷积内核可以由从码流中解析或以其它方式推导出的指示控制。
在示例性实现方式中,对于多个级联层中的多个(N个)分割信息处理层中的每个分割信息处理层j,输入包括:如果j=1,则从码流输入初始分割信息,否则,输入第(j-1)个分割信息处理层处理的分割信息;输出经处理分割信息。
例如,多个(N个)分割信息处理层中的每个j<N的层对输入的分割信息的处理还包括:从码流中解析分割信息元素,以及将解析后的分割信息元素与前一个层输出的分割信息相关联,其中,解析后的分割信息元素在关联分割信息中的位置是根据前一个层输出的分割信息确定的。具体地,从码流中解析的分割信息元素的数量是根据前一个层输出的分割信息确定的。例如,解析后的分割信息元素由二值化标志集表示。
这种分层结构提供了可以并行的处理,并且可以容易地在GPU/NPU上运行,并可以利用并行性。传输梯度的完全可训练方案可以在端到端可训练的视频译码技术方案中使用它。
在一些示例性实施例和示例中,获取用于图像或视频处理的经解码数据包括根据分割信息确定以下中的至少一个:帧内或帧间预测模式;图像参考索引;单参考或多参考预测(包括双向预测);存在或不存在预测残差信息;量化步长;运动信息预测类型;运动矢量长度;运动矢量分辨率;运动矢量预测索引;运动矢量差大小;运动矢量差分辨率;运动插值滤波器;环内滤波器参数;后滤波器参数。本发明的解码通常适用于与图像或视频译码相关的任何类型的数据。
上述实施例或示例提供的方法还可以包括:从码流中获取特征图元素集,并根据由分割信息处理层处理的分割信息,将特征图元素集分别输入到多个层中的特征图处理层;根据多个级联层处理的特征图,获取用于图像或视频处理的经解码数据。
具体地,多个级联层中的至少一个是分割信息处理层以及特征图处理层。在其它实施例中,多个层中的每一层要么是分割信息处理层,要么是特征图处理层。
分离的层功能提供了简洁的设计和功能分离。然而,如果层实现了这两个功能,本发明也可以工作。
根据一个方面,提供了一种存储在非瞬时性介质中的计算机程序产品,当在一个或多个处理器上执行时,执行根据上述示例和实施例所述的方法。
根据一个方面,提供了一种用于对图像或视频进行解码的设备,包括处理电路,用于执行根据上述示例和实施例中的任何一个所述的方法。
根据一个方面,提供了一种用于从码流中解码用于图像或视频处理的数据的设备,其中,所述设备包括:获取单元,用于从码流中获取两个或多个分割信息元素集;输入单元,用于将两个或多个分割信息元素集中的每个分割信息元素集分别输入到多个级联层中的两个或多个分割信息处理层;处理单元,用于在两个或多个分割信息处理层的每个分割信息处理层中,处理各自的分割信息集;经解码数据获取单元,用于根据在多个级联层中处理的分割信息,获取用于图像或视频处理的所述经解码数据。
上述任一装置都可以实施在集成芯片上。本发明可以在硬件(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)图像)的任何类型的其它设备。所述图像源可以为存储任一上述图像的任何类型的存储器(memory/storage)。
区别于预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,对图像数据17进行预处理,以获得经预处理图像19或经预处理图像数据19。预处理器18执行的预处理可包括修剪(trimming)、颜色格式转换(例如从RGB转换为YCbCr)、颜色校正或去噪等。应理解,预处理单元18可以是可选组件。需要说明的是,预处理也可以采用神经网络。
视频编码器20用于接收经预处理图像数据19并提供经编码图像数据21。
源设备12中的通信接口22可用于:接收经编码图像数据21并通过通信信道13向目的地设备14等另一设备或任何其它设备发送经编码图像数据21(或其它任何处理后的版本),以便存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),另外即可选地,可包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任何其它源设备接收经编码图像数据21(或其它任何处理后的版本),例如,存储设备为经编码图像数据存储设备,并将经编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接),或通过任何类型的网络(例如,有线或无线网络或其任何组合,或任何类型的专用和公共网络),或其任何组合发送或接收经编码图像数据21或经编码数据13。
例如,通信接口22可用于将经编码图像数据21封装为报文等合适的格式,和/或使用任何类型的传输编码或处理来处理经编码图像数据,以便在通信链路或通信网络上进行传输。
例如,与通信接口22对应的通信接口28可用于接收发送的数据,并采用任何类型的对应传输解码或处理和/或解封装对发送的数据进行处理,以获得经编码图像数据21。
通信接口22和通信接口28均可配置为图35中从源设备12指向目的地设备14的通信通道13的箭头所表示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码的图像数据传输)相关的任何其它信息等。解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(例如,使用上文所述实施例或示例中描述的神经网络)。
目的地设备14的后处理器32用于对经解码图像数据31(也称为经重建图像数据)(例如,经解码图像31)进行后处理,以获取后处理图像数据33(例如,后处理图像33)。例如,后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样,或者用于产生供显示设备34等显示的经解码图像数据31等任何其它处理。
目的地设备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的对应功能。在这些实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据所述描述,技术人员将清楚地看到,如图35所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而变化。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30)或两者都可以通过处理电路实现,例如,一个或多个微处理器,数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以涵盖包括神经网络的各种模块。解码器30可以通过处理电路46实现,以包含以上实施例和示例中论述的各种模块。处理电路可用于执行稍后将论述的各种操作。当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20或视频解码器30可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图36所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图35所示的视频译码系统10仅仅是示例性的,本申请提供的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。
图37为本发明实施例提供的视频译码设备3700的示意图。视频译码设备3700适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备3700可以是解码器(如图35的视频解码器30)或编码器(如图35的视频编码器20)。
视频译码设备3700包括用于接收数据的入端口3710(或输入端口3710)和接收单元(receiver unit,Rx)3720,用于处理数据的处理器、逻辑单元或中央处理单元(centralprocessing unit,CPU)3730,用于发送数据的发送单元(transmitter unit,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在本文中描述为单个总线,但是总线3812可以包括多个总线。此外,辅助存储器可以直接与装置3800的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置3800可以具有各种各样的配置。
概括地说,本发明涉及用于将(用于静止或视频处理的)数据编码到码流中的方法和装置。具体地,数据由包括多个级联层的网络处理。在处理中,特征图是由层生成的。至少两个不同层处理(输出)的所述特征图具有不同的分辨率。在所述处理中,从所述级联层中选择一个层,所述层与生成最低分辨率特征图的层(例如,潜在空间)不同。所述码流包括与所述选定层相关的信息。通过这种方法,提供了可以应用在不同分辨率上的可扩展处理,以便所述码流可以发送与这类不同分辨率相关的信息。因此,所述数据可以根据分辨率在所述码流中高效地译码,所述分辨率可以根据经编码图像数据的内容而变化。
本发明还涉及用于从码流中解码(用于静止或视频处理的)数据的方法和装置。具体地,从码流中获取两个或多个特征图元素集。每个特征图元素集都与特征图相关。将两个或多个特征图元素集中的每一个分别输入到多个级联层中的两个或多个特征图处理层中。然后,获取用于图像或视频处理的经解码数据作为多个级联层的处理结果。因此,可以在分层结构中以高效的方式从码流中解码数据。
本发明还涉及用于从码流中解码(用于静止或视频处理的)数据的方法和装置。从码流中获取两个或多个分割信息元素集。然后,将两个或多个分割信息元素集中的每一个分别输入到多个级联层中的两个或多个分割信息处理层中。在两个或多个分割信息处理层中的每一个中,处理各自的分割信息集。根据多个级联层处理的分割信息,获取用于图像或视频处理的经解码数据。因此,可以在分层结构中以高效的方式从码流中解码数据。
Claims (28)
1.一种将用于图像或视频处理的数据编码到码流中的方法,其特征在于,所述方法包括:
处理所述数据,所述处理包括在多个级联层中生成特征图,每个特征图包括各自的分辨率,其中,所述生成的特征图中的至少两个特征图的分辨率相互不同;
从所述多个层中选择与生成最低分辨率特征图的层不同的层;
生成所述码流,包括将与所述选定层相关的信息插入到所述码流中。
2.根据权利要求1所述的方法,其特征在于,所述处理还包括由一个或多个级联层进行下采样。
3.根据权利要求2所述的方法,其特征在于,所述层包括用于所述下采样的平均池化或最大池化。
4.根据权利要求2所述的方法,其特征在于,卷积用于所述下采样。
5.根据权利要求1至4中任一项所述的方法,其特征在于,
与所述选定层相关的信息包括该层的特征图的元素。
6.根据权利要求1至5中任一项所述的方法,其特征在于,
与所述选定层相关的信息包括表示该层的所述特征图的所述元素是从哪个层和/或从该层的所述特征图的哪个部分中选择的信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法包括:
获取待编码数据,
其中,所述待编码数据的处理包括由所述多个(N个)级联层中的每个层j进行处理,包括:
-如果j=1,则获取所述待编码数据作为层输入,否则获取第(j-1)层处理的特征图作为层输入;
-对所述获取的层输入进行处理,所述处理包括下采样;
-输出所述经下采样的特征图。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
选择用于插入到所述码流中的信息,所述信息与由j>1的层处理的特征图中的第一区域相关,其中,所述第一区域对应于所述特征图中的区域或在包括多个元素的小于j的层中待编码的初始数据;
在k个层处理的特征图进行选择时,不选择与所述第一区域对应的区域,其中,k为等于或大于1的整数且k<j。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述待编码数据包括图像信息和/或预测残差信息和/或预测信息。
10.根据权利要求1至8中任一项所述的方法,其特征在于,与所述选定层相关的所述信息包括预测信息。
11.根据权利要求1至10中任一项所述的方法,其特征在于,
与所述选定层相关的所述数据包括所述特征图元素在所述选定层的特征图中的位置的指示。
12.根据权利要求11所述的方法,其特征在于,
选定和非选定特征图元素的位置由多个二值化标志指示,该指示基于所述标志在所述码流中的位置。
13.根据权利要求8至12中任一项所述的方法,其特征在于,所述多个(N个)级联层中的第j层的处理包括:
确定通过使用所述第j层输出的特征图元素来重建重建图像的一部分所产生的第一成本;
确定通过使用由所述第(j-1)层输出的特征图元素来重建所述重建图像的所述部分所产生的第二成本;
如果所述第一成本高于所述第二成本,则选择所述第(j-1)层,并选择与所述第(j-1)层中的所述部分相关的信息。
14.根据权利要求13所述的方法,其特征在于,所述第一成本和所述第二成本包括数据量和/或失真。
15.根据权利要求1至14中任一项所述的方法,其特征在于,所述待编码数据是运动矢量场。
16.根据权利要求10至13中任一项所述的方法,其特征在于,所述预测信息包括参考索引和/或预测模式。
17.根据权利要求14至16中任一项所述的方法,其特征在于,所述数据量包括传输与所述选定层相关的数据所需的数据量。
18.根据权利要求14至17中任一项所述的方法,其特征在于,所述失真是通过将重建图像与目标图像进行比较来计算的。
19.根据权利要求1至18中任一项所述的方法,其特征在于,所述处理包括具有不同分辨率的级联层之间的附加卷积层。
20.根据权利要求3至19中任一项所述的方法,其特征在于,所述方法还包括:
在层进行下采样时,使用第一滤波器对输入特征图进行下采样得到第一特征图,使用第二滤波器对所述输入特征图进行下采样得到第二特征图,
确定通过使用所述第一特征图来重建重建图像的一部分而产生的第三成本,
确定通过使用所述第二特征图来重建所述重建图像的所述部分而产生的第四成本;
在进行选择时,如果所述第三成本低于所述第四成本,则选择所述第一特征图。
21.根据权利要求20所述的方法,其特征在于,
所述第一滤波器和所述第二滤波器的形状可以是方形、水平方向的矩形和垂直方向的矩形中的任何一个。
22.根据权利要求20或21所述的方法,其特征在于,所述方法还包括:
获取掩码,其中,所述掩码由标志组成,所述掩码表示任意滤波器形状,
所述第一滤波器或所述第二滤波器具有任意滤波器形状。
23.根据权利要求1所述的方法,其特征在于,所述处理包括:
在所述不同层中处理与被分割成具有不同块大小和形状的块的相同图像相关的数据,所述选择包括:
根据预定译码模式集的计算成本来选择层。
24.根据权利要求23所述的方法,其特征在于,所述处理包括为至少一个层确定不同译码模式集的成本,并根据所确定的成本选择所述译码模式集中的一个。
25.根据权利要求24所述的方法,其特征在于,与所述选定层相关的数据的所述指示包括所述选定的译码模式集。
26.一种存储在非瞬时性介质中的计算机程序产品,其特征在于,当在一个或多个处理器上执行所述计算机程序产品时,执行根据权利要求1至25中任一项所述的方法。
27.一种用于对图像或视频进行编码的设备,其特征在于,包括处理电路,所述处理电路用于执行根据权利要求1至25中任一项所述的方法。
28.一种将用于图像或视频处理的数据编码到码流中的设备,其特征在于,所述设备包括:
处理单元,用于处理所述数据,其中,所述处理包括在多个级联层中生成分辨率相互不同的特征图,每个特征图包括各自的分辨率;
选择单元,用于从所述多个层中选择与生成最低分辨率特征图的层不同的层;
生成单元,用于生成所述码流,包括将与所述选定层相关的数据的指示插入到所述码流中。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2020/000749 WO2022139617A1 (en) | 2020-12-24 | 2020-12-24 | Encoding with signaling of feature map data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116648906A true CN116648906A (zh) | 2023-08-25 |
Family
ID=82159968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080108179.6A Pending CN116648906A (zh) | 2020-12-24 | 2020-12-24 | 通过指示特征图数据进行编码 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230336758A1 (zh) |
EP (1) | EP4205395A4 (zh) |
CN (1) | CN116648906A (zh) |
TW (1) | TWI830107B (zh) |
WO (1) | WO2022139617A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11445252B1 (en) * | 2021-07-08 | 2022-09-13 | Meta Platforms, Inc. | Prioritizing encoding of video data received by an online system to maximize visual quality while accounting for fixed computing capacity |
CN117173442A (zh) * | 2022-05-24 | 2023-12-05 | 鸿海精密工业股份有限公司 | 图像识别方法、电子设备及存储介质 |
AU2022204911A1 (en) * | 2022-07-08 | 2024-01-25 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a tensor |
WO2024015639A1 (en) * | 2022-07-15 | 2024-01-18 | Bytedance Inc. | Neural network-based image and video compression method with parallel processing |
WO2024015638A2 (en) * | 2022-07-15 | 2024-01-18 | Bytedance Inc. | A neural network-based image and video compression method with conditional coding |
WO2024020053A1 (en) * | 2022-07-18 | 2024-01-25 | Bytedance Inc. | Neural network-based adaptive image and video compression method |
WO2024070273A1 (ja) * | 2022-09-28 | 2024-04-04 | 日本電気株式会社 | データ符号化装置、データ復号装置およびデータ処理システム |
AU2022252784A1 (en) * | 2022-10-13 | 2024-05-02 | Canon Kabushiki Kaisha | Method, apparatus and system for encoding and decoding a tensor |
WO2024208149A1 (en) * | 2023-04-01 | 2024-10-10 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for visual data processing |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102008078B1 (ko) * | 2012-09-28 | 2019-08-06 | 브이아이디 스케일, 인크. | 다층 비디오 코딩을 위한 적응적 업샘플링 |
CN106937121B (zh) * | 2015-12-31 | 2021-12-10 | 中兴通讯股份有限公司 | 图像解码和编码方法、解码和编码装置、解码器及编码器 |
WO2019009448A1 (ko) * | 2017-07-06 | 2019-01-10 | 삼성전자 주식회사 | 영상을 부호화 또는 복호화하는 방법 및 장치 |
CN112204617B (zh) * | 2018-04-09 | 2023-09-05 | 杜比实验室特许公司 | 使用神经网络映射的hdr图像表示 |
EP3743855A1 (en) * | 2018-09-18 | 2020-12-02 | Google LLC | Receptive-field-conforming convolution models for video coding |
US11405626B2 (en) * | 2020-03-03 | 2022-08-02 | Qualcomm Incorporated | Video compression using recurrent-based machine learning systems |
-
2020
- 2020-12-24 EP EP20967129.6A patent/EP4205395A4/en active Pending
- 2020-12-24 WO PCT/RU2020/000749 patent/WO2022139617A1/en active Application Filing
- 2020-12-24 CN CN202080108179.6A patent/CN116648906A/zh active Pending
-
2021
- 2021-12-23 TW TW110148378A patent/TWI830107B/zh active
-
2023
- 2023-06-22 US US18/339,772 patent/US20230336758A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
TW202234890A (zh) | 2022-09-01 |
WO2022139617A1 (en) | 2022-06-30 |
EP4205395A4 (en) | 2023-07-12 |
US20230336758A1 (en) | 2023-10-19 |
EP4205395A1 (en) | 2023-07-05 |
TWI830107B (zh) | 2024-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI830107B (zh) | 通過指示特徵圖資料進行編碼 | |
CN116671106A (zh) | 使用分割信息的信令解码 | |
TWI834087B (zh) | 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品 | |
US20240064318A1 (en) | Apparatus and method for coding pictures using a convolutional neural network | |
US20230353764A1 (en) | Method and apparatus for decoding with signaling of feature map data | |
CN116547969A (zh) | 基于机器学习的图像译码中色度子采样格式的处理方法 | |
CN118872266A (zh) | 基于多模态处理的视频译码方法 | |
CN117501696A (zh) | 使用在分块之间共享的信息进行并行上下文建模 | |
KR20240050435A (ko) | 조건부 이미지 압축 | |
TW202420815A (zh) | 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq | |
CN118786462A (zh) | 使用通道间关联信息进行基于空间频率变换的图像修改 | |
US20240296594A1 (en) | Generalized Difference Coder for Residual Coding in Video Compression | |
WO2024217530A1 (en) | Method and apparatus for image encoding and decoding | |
TW202416712A (zh) | 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq | |
WO2024083405A1 (en) | Neural network with a variable number of channels and method of operating the same | |
WO2024005659A1 (en) | Adaptive selection of entropy coding parameters |
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 |