CN117321989A - 基于神经网络的图像处理中的辅助信息的独立定位 - Google Patents

基于神经网络的图像处理中的辅助信息的独立定位 Download PDF

Info

Publication number
CN117321989A
CN117321989A CN202180096510.1A CN202180096510A CN117321989A CN 117321989 A CN117321989 A CN 117321989A CN 202180096510 A CN202180096510 A CN 202180096510A CN 117321989 A CN117321989 A CN 117321989A
Authority
CN
China
Prior art keywords
data
neural network
stage
image
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
CN202180096510.1A
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 CN117321989A publication Critical patent/CN117321989A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Abstract

本申请提供了用于使用具有两个或两个以上层的神经网络处理图像数据或图像特征数据的方法和装置。本发明可应用于基于人工智能(artificial intelligence,AI)的视频或图像压缩技术领域,尤其应用于基于神经网络的视频压缩技术领域。根据一些实施例,在包括由所述神经网络处理等处理期间组合两种数据。所述两种数据是由所述网络从不同处理级获得的。一些优点可以包括神经网络架构具有更大的可扩展性和更灵活的设计,从而可以进一步提高编码/解码性能。

Description

基于神经网络的图像处理中的辅助信息的独立定位
本发明的实施例涉及基于人工智能(artificial intelligence,AI)的视频或图像压缩技术领域,尤其涉及用于处理图像特征数据以生成码流或用于进行处理以使用神经网络解码到码流的图像特征数据的方法和装置。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字电视、基于互联网和移动网络的视频传输、视频聊天和视频会议等实时会话应用、DVD和蓝光光盘、视频内容采集和编辑系统以及安全应用的可携式摄像机。
用于描述甚至相对较短的视频所需的视频数据量也可能很大,当要在带宽容量有限的通信网络上流式传输数据或以其它方式传输数据时,可能会造成困难。因此,视频数据通常要先压缩,然后通过现代电信网络进行传输。由于内存资源可能有限,因此当在存储设备中存储视频时,视频的大小也可能是个问题。视频压缩设备通常在源侧使用软件和/或硬件对视频数据进行编码,然后传输或存储视频数据,从而减少表示数字视频图像所需的数据量。然后,对视频数据进行解码的视频解压缩设备在目的地侧接收经压缩数据。在网络资源有限以及对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
近年来,深度学习在图像和视频编解码领域愈受欢迎。
发明内容
本申请提供了可以提高神经网络的可配置性从而实现更高效率的方法和装置。
上述和其它目的通过独立权利要求请求保护的主题来实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。
特定实施例在所附独立权利要求中概述,其它实施例在从属权利要求中概述。
根据第一方面,本发明涉及一种用于使用包括两个或两个以上级的神经网络处理码流中的一个或多个图像的特征数据的方法,所述两个或两个以上级包括第一级和第二级。所述方法包括以下步骤:基于所述码流获得第一数据;使用所述神经网络处理所述第一数据;输出所述处理结果。所述处理包括:从所述神经网络的所述第二级获得基于先前由所述神经网络处理的数据的第二数据;将所述第一数据与所述第二数据一起使用,以生成所述神经网络的所述第一级的输入,其中,在所述神经网络的所述特征数据处理中,所述第一级位于所述第二级之前。
获得在一个级中一起使用的两种数据,其中,至少一种数据的获得在另一级上执行进一步增加了所述神经网络架构的灵活性,并且可以降低复杂度或时延或速率,从而实现更高的效率,或更高的质量。
在可能的实现方式中,所述第一数据是在所述神经网络的第三级中获得的,在所述神经网络的所述特征数据处理中,所述第三级在所述第一级和所述第二级之前或等于所述第一级。
从不同级获得所述第一数据和所述第二数据可以进一步提高效率。
在可能的实现方式中,所述第一数据表示预测误差,并且所述第二数据表示预测。
本发明容易地应用于所述预测误差和所述预测信号。通过以不同于组合它们的分辨率的分辨率获得它们中的至少一个可以降低复杂度、缩短码流长度和时延。此外,预测是辅助数据,所述辅助数据可以提高使用神经网络进行解码(和编码)的性能,就像在图像译码中一样,在空间域和时间域中具有高度的相关性。此外,本领域存在对于提供预测可能非常高效的许多已知方法。
在可能的实现方式中,所述预测通过以下操作获得:获得参考特征数据,所述参考特征数据是由所述神经网络在所述第二级输出的特征数据;基于所述码流获得包括与所述参考特征数据相关的运动信息或空间信息的预测信息;基于所述参考特征数据和所述预测信息生成所述预测。
此实现方式是借助可能有助于进一步提高预测质量的附加预测信息获得预测的示例。
在可能的实现方式中,所述预测误差是通过使用所述神经网络处理当前图像获得的。所述预测信息是运动信息,并且所述参考特征数据是通过所述神经网络以解码顺序处理表示所述当前图像之前的图像的图像数据生成的。
时间预测通常比空间预测或仅无损译码更高效。因此,上述神经网络架构可以进一步提高解码(以及编码)的性能。
在可能的实现方式中,所述将所述第一数据与所述第二数据一起使用包括将所述预测或经缩放的预测与所述预测误差或经缩放的预测误差进行逐元素相加。
这样的组合可能与处理图像或图像特征数据、预测和残差尤其相关。
在可能的实现方式中,所述运动信息包括运动矢量。
运动矢量是用于指示运动信息的高效手段,并且存在许多可用的方法来获得和指示(signal)它们,这些方法可以容易地应用于本文描述的实施例。
在可能的实现方式中,所述第二级是所述神经网络的输出。
所述神经网络的输出是重建图像(在解码端)。从此级获得所述第二数据提供了全分辨率,这可以提高质量。
在可能的实现方式中,所述第一级是所述神经网络的输入。
所述神经网络在解码端的输入是经编码码流。本发明的实施例可以有效地应用于瓶颈(bottleneck)特征数据的解码。
在可能的实现方式中,所述第一级是所述神经网络的输入;所述第一数据是熵编码数据;所述第二级是不同于所述神经网络的输出级的级;并且所述第二数据是与所述第二级的所述特征数据相关的概率模型数据。例如,所述第二数据是用于第一数据的熵解码的概率模型数据。
概率模型数据的收集可以进一步减小码流大小。从不同级获取所述概率模型数据可以提供灵活的架构,以便在性能与复杂度之间更好地进行平衡。
在可能的实现方式中,所述第一级和/或所述第二级的位置可以在所述神经网络内配置;并且所述方法包括根据基于一个或多个图像译码参数的收集条件对所述第一级和/或所述第二级的位置进行配置。
对所述神经网络内的所述第一级和所述第二级的位置进行配置的可能性增加了灵活性。它可以实现动态神经网络架构的变化。这样的灵活性可以实现基于收集条件的更好的自适应,并且实现更高效的编码和/或解码。
所述收集条件是为了将所述第二数据和/或所述第一数据输入至特定处理级而要满足的条件或先决条件。所述收集条件可以包括将一些图像特性或图像特征特性与阈值进行比较,以确定是否要收集某一位置的辅助信息。所述图像特性或图像特征特性对于所述编码器和所述解码器可以是已知的,使得不需要附加指示。或者或另外,所述收集条件可以由编码端借助于设置是否针对预配置位置收集所述辅助信息的指示符来进行配置。所述指示符可以提供在所述解码器处可用的码流内。
具体地,所述方法还包括:从所述码流解析指定所述第一级和/或所述第二级的级选择指示符,其中,所述第一级和所述第二级在所述神经网络内的位置是根据所述解析的级选择指示符进行配置的。
根据第二方面,本发明涉及一种用于使用包括两个或两个以上级的神经网络处理至少一个图像以生成码流的方法,所述两个或两个以上级包括第一级和第二级,所述方法包括使用所述神经网络处理所述至少一个图像。所述处理包括:基于所述至少一个图像获得第一数据;在所述处理的所述第二级处获得第二数据,所述第二数据基于先前由所述神经网络处理的数据;将所述第一数据与所述第二数据一起使用,以在所述神经网络的所述第一级处生成输入,其中,在所述神经网络的所述特征数据处理中,所述第一级位于所述第二级之前。所述方法还包括将通过所述处理获得的特征数据插入至所述码流中。
本发明的编码部分可以提供与上述解码部分相同的优点。所述编码器准备所述码流并且将其提供给所述解码器,使得所述解码器可以考虑到期望的质量和应用对所述数据进行解码或重建。
为了避免冗余,为对应解码处理提供的优点以类似的方式适用于编码。
在可能的实现方式中,所述第一数据是在所述神经网络的第三级中获得的,在所述神经网络的所述特征数据处理中,所述第三级在所述第一级和所述第二级之前或等于所述第一级。
在可能的实现方式中,所述第一数据表示预测误差,并且所述第二数据表示预测。
在可能的实现方式中,所述预测通过以下操作获得:获得参考特征数据,所述参考特征数据是由所述神经网络在所述第二级输出的特征数据;基于所述至少一个图像,获得包括与所述参考特征数据相关的运动信息或空间信息的预测信息;基于所述参考特征数据和所述预测信息生成所述预测;将所述获得的预测信息插入至所述码流中。
在可能的实现方式中,所述预测误差是通过使用所述神经网络处理当前图像获得的;并且所述预测信息是运动信息,并且所述参考特征数据是通过所述神经网络以解码顺序处理表示所述当前图像之前的图像的图像数据生成的。
在可能的实现方式中,所述将所述第一数据与所述第二数据一起使用包括从所述第一数据或经缩放的第一数据逐元素减去所述预测或经缩放的预测。
在可能的实现方式中,所述运动信息包括运动矢量。
在可能的实现方式中,所述第二级是所述解码神经网络的表示重建图像数据的输出。
在可能的实现方式中,所述第一级是所述神经网络的输出。
在可能的实现方式中,所述第一级是所述神经网络的输出;所述第一数据是待熵编码的经处理数据;所述第二级是不同于所述神经网络的输入级的级;并且所述第二数据是与所述第二级的所述特征数据相关的概率模型数据。
在可能的实现方式中,所述第二数据是用于所述第一数据的熵编码的概率模型数据。
在可能的实现方式中,所述第一级和/或所述第二级的位置可以在所述神经网络内配置;并且所述方法包括根据基于一个或多个图像译码参数的收集条件对所述第一级和/或所述第二级的位置进行配置。
在可能的实现方式中,所述方法还包括:确定指定所述第一级和/或所述第二级的级选择指示符并且将所述级选择指示符包括到所述码流中,并且其中,所述第一级和所述第二级在所述神经网络内的位置是根据所述确定的级选择指示符进行配置的。
在可能的实现方式中,所述级选择指示符的所述确定基于根据成本函数执行的优化过程,所述成本函数包括速率、失真、时延、精度和复杂度中的一个或多个。
基于成本函数确定一个或多个级可以提高所述神经网络和结果对期望要求的适应性。因此,这样的优化可以提高性能。结合指示如此获得的一个或多个级位置,灵活性进一步提高。
根据第三方面,本发明涉及一种用于使用包括两个或两个以上级的神经网络处理码流中的一个或多个图像的特征数据的装置,所述两个或两个以上级包括第一级和第二级,所述装置包括处理电路。所述处理电路用于:基于所述码流获得第一数据;使用所述神经网络处理所述第一数据;输出所述处理结果。所述处理包括:从所述神经网络的所述第二级获得基于先前由所述神经网络处理的数据的第二数据;将所述第一数据与所述第二数据一起使用,以生成所述神经网络的所述第一级的输入,其中,在所述神经网络的所述特征数据处理中,所述第一级位于所述第二级之前。
为了本发明的有利效果,参考所述第一方面的描述。本文不再赘述。所述解码装置具有实现所述第一方面的所述方法示例中的动作的功能。所述功能可以通过硬件实现,也可以通过硬件执行对应软件实现。所述硬件或软件包括对应于上述功能的一个或多个模块。在可能的实现方式中,所述解码装置包括:码流解码模块,用于基于所述码流获得所述第一数据;神经网络模块,用于执行上述处理和输出。这些模块可以执行所述第一方面的所述方法示例中的对应功能。对于细节,参考所述方法示例中的详细描述。本文不再赘述。
根据第四方面,本发明涉及一种用于使用包括两个或两个以上级的神经网络处理至少一个图像以生成码流的装置,所述两个或两个以上级包括第一级和第二级,所述装置包括处理电路。所述处理电路用于使用所述神经网络处理所述至少一个图像。所述处理包括:基于所述至少一个图像获得第一数据;在所述处理的所述第二级处获得第二数据,所述第二数据基于先前由所述神经网络处理的数据;将所述第一数据与所述第二数据一起使用,以在所述神经网络的所述第一级处生成输入,其中,在所述神经网络的所述特征数据处理中,所述第一级位于所述第二级之前。所述方法还包括将通过所述处理获得的特征数据包括到所述码流中。
对于本发明的有利效果,参考所述第二方面的描述。本文不再赘述。所述编码装置具有实现所述第二方面的所述方法示例中的动作的功能。所述功能可以通过硬件实现,也可以通过硬件执行对应软件实现。所述硬件或软件包括对应于上述功能的一个或多个模块。在可能的实现方式中,所述编码装置包括:神经网络模块,用于执行上述处理;码流输出模块,用于将通过神经网络处理所述图像获得的数据插入至所述码流中并且输出所述码流。这些模块可以执行所述第二方面的所述方法示例中的对应功能。对于细节,参考所述方法示例中的详细描述。本文不再赘述。
根据本发明的所述第一方面的所述方法可以由根据本发明的所述第三方面的所述装置执行。根据本发明的所述第一方面的所述方法的其它特征和实现方式直接取决于根据本发明的所述第三方面的所述装置的功能和实现方式。
根据本发明的所述第二方面的所述方法可以由根据本发明的所述第四方面的所述装置执行。根据本发明的所述第二方面的所述方法的其它特征和实现方式直接取决于根据本发明的所述第四方面的所述装置的功能和实现方式。
根据第五方面,本发明涉及一种包括处理器和存储器的视频流解码装置。所述存储器存储使所述处理器执行根据所述第一方面的所述方法的指令。
根据第六方面,本发明涉及一种包括处理器和存储器的视频流编码装置。所述存储器存储使所述处理器执行根据所述第二方面的所述方法的指令。
根据第七方面,提出了一种上面存储有指令的计算机可读存储介质,所述指令在被执行时使一个或多个处理器对视频数据进行编码。所述指令使所述一个或多个处理器执行根据所述第一方面或所述第二方面的所述方法或所述第一方面或所述第二方面的任何可能实施例。
根据第八方面,本发明涉及一种计算机程序产品,包括用于在计算机上执行时执行根据所述第一方面或所述第二方面的所述方法或所述第一方面或所述第二方面的任何可能实施例的程序代码。
在附图和以下描述中阐述了一个或多个实施例的细节。其它特征、目的和优点在说明书、附图以及权利要求中是显而易见的。
附图说明
在下面,参考附图更详细地描述本发明的实施例,在附图中:
图1是包括超先验模型的编码端和解码端的示例性网络架构的框图。
图2是包括超先验模型的编码端的一般网络架构的框图。
图3是包括超先验模型的解码端的一般网络架构的框图。
图4是基于神经网络的编码器和解码器的一般方案的示意图。
图5是示例性变分自动编码器和解码器的框图。
图6是辅助信息在编码和解码神经网络的预定义级上的应用的一般框图。
图7是处理包括下采样的一个处理层之后以及处理包括下采样的N个层之后的信号域中的预测信号的可视化。
图8是具有传统基于块的编解码器与基于深度学习的方法结合的示例性视频译码流水线(pipeline)的框图。
图9是具有用于收集辅助信息的多个可选择位置的示例性可配置条件自动编码器的框图。
图10是具有用于收集辅助信息的一个可选择位置的示例性可配置条件自动编码器的框图。
图11是包括用于收集预测信息以及残差信息作为辅助信息的多个收集机会(位置)的示例性神经网络处理的框图。
图12是用于对具有不同特性的两个示例性图像进行下采样和重建的性能比较的示意图。
图13是用于输入概率模型的指示作为辅助信息的可配置收集单元的应用的框图。
图14是具有处理级(或层)的示例性编号的编码端和解码端神经网络的框图。
图15是在流水线的第0位置具有预测和残差的编码端和解码端神经网络的框图。
图16是在流水线的第1位置具有预测和残差的编码端和解码端神经网络的框图。
图17是在流水线的第i级具有预测并且在第(i+r)级具有残差的编码端和解码端神经网络的框图。
图18是在流水线的第0级具有预测并且在第K级具有残差的编码端和解码端神经网络的框图。
图19是在流水线的第1级具有预测并且在第K级具有残差的编码端和解码端神经网络的框图。
图20是在流水线的第1级具有预测并且在第(K–1)级具有残差的编码端和解码端神经网络的框图。
图21是第一示例性实现方式提供的残差和预测的可能处理的框图。
图22是第二示例性实现方式提供的残差和预测的可能处理的框图。
图23是信号域中的处理预测和残差的示例性概述架构的框图。
图24是处理潜在空间中的预测和残差的示例性概述架构的框图。
图25是处理潜在空间中的预测和残差的示例性概述架构的框图,但预测的潜在空间来自对先前图像的处理。
图26是用于实现本发明的实施例的视频译码系统的示例的框图,其中,该系统使用神经网络对视频图像进行编码或解码。
图27是用于实现本发明的实施例的视频译码系统的另一示例的框图,其中,视频编码器和/或视频解码器使用神经网络对视频图像进行编码或解码。
图28是用于实现本发明的实施例的视频译码装置的框图。
图29是用于实现本发明的实施例的视频译码装置的框图。
具体实施方式
本申请的实施例提供一种基于AI的视频图像压缩技术,尤其提供一种基于神经网络的视频压缩技术。
视频译码通常是指对图像序列的处理,其中,图像序列形成视频或视频序列。在视频译码领域,术语“图像(picture)”、“帧(frame)”与“图像(image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码这两个部分。视频编码在源侧执行,通常包括处理(例如通过压缩)原始视频图像,以减少表示视频图像所需的数据量(从而更高效地存储和/或传输)。视频解码在目的地侧执行,并且通常包括与编码器的处理相比的逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应当被理解为视频图像或相应视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(编码和解码)。
在无损视频译码的情况下,可以重建原始视频图像。换句话说,重建视频图像与原始视频图像具有相同的质量(假设在存储或传输过程中未发生传输丢失或其它数据丢失)。在有损视频译码的情况下,通过例如量化来进行进一步的压缩,以减少表示视频图像所需的数据量,并且视频图像不能在解码端完全重建。换句话说,重建视频图像的质量低于或差于原始视频图像的质量。
几种H.26x视频译码标准(例如H.261、H.263、H.264、H.265、H.266)用于“有损混合视频译码”(即,样本域中的空间和时间预测与2D变换译码相结合以用于在变换域中应用量化)。视频序列中的每个图像通常被分割成不重叠块的集合,而且译码通常是在块级别执行的。具体地,在编码端,视频通常在块(视频块)级别处理,即编码。例如,通过空间(帧内)预测和时间(帧间)预测生成预测块,从当前块(正在处理或待处理的块)减去预测块以得到残差块,并且残差块在变换域中被变换并量化以减少要传输(压缩)的数据量。在解码端,相对于编码器的逆处理部分被应用于编码块或压缩块,以重建当前块以用于表示。此外,编码器复制解码器处理循环,使得编码器和解码器生成相同的预测(例如帧内和帧间预测)和/或重建以对后续块进行处理,即译码。
本发明涉及使用神经网络处理图像数据以对图像数据进行编码和解码。这样的编码和解码仍然可以参考或包括从上述标准的框架已知的一些组件。
在下文中,简要介绍本文中使用的一些术语。
图像大小:指图像的宽高或宽高对。图像的宽度和高度通常以亮度样本的数量来测量。
下采样:下采样是降低离散输入信号采样率的过程。例如,如果输入信号大小h和w并且下采样的输出为h2和w2的图像,则以下至少一项成立:
h2<h
w2<w
在一个示例性实现方式中,下采样可以实现为仅保留每个第m样本,丢弃输入信号的其余部分(例如图像)。但是,下采样可以通过其它手段执行,例如通过卷积或其它滤波等。
上采样:上采样是提高离散输入信号采样率的过程。例如,如果输入图像具有大小h和w并且下采样的输出为h2和w2,则以下至少一项成立:
h<h2
w<w2
重采样:下采样和上采样过程都是重采样的示例。重采样是改变输入信号的采样率(采样间隔)的过程。
采样比:如果在重采样过程(上采样或下采样)期间改变了图像大小,则输出图像大小与输入图像大小之间的比称为采样比。水平维度与垂直维度的采样比可能不同。
插值滤波:在上采样或下采样期间,可以应用滤波来提高重采样信号的精度并且减少混叠影响。插值滤波器通常包括重采样位置周围采样位置处的样本值的加权组合。它可以实现为:
f(xr,yr)=∑s(x,y)C(k)
其中,f()是重采样信号,(xr,yr)是重采样图像中的坐标,C(k)是插值滤波器系数,s(x,y)是输入信号的样本。对位于(xr,yr)附近的(x,y)执行求和运算。
裁剪:修剪(purn)数字图像的外边缘。裁剪可以用于使图像更小(在样本数方面)和/或更改图像的宽高比(长比宽)。
填充:填充是指通过生成新的样本(通常在图像的边界)来增加图像的大小,通过例如使用预定义的样本值或通过使用图像中的位置的样本值等。
调整大小:调整大小是更改输入图像大小的一般术语。它可以使用填充或裁剪的方法之一来完成。或者,它可以通过重采样来完成。
整数除法:整数除法是丢弃小数部分(余数)的除法。
卷积:卷积由以下一般等式给出。低于f()可以被定义为输入信号,g()可以被定义为滤波器。
这个卷积是离散卷积,n和m是样本索引并且因此是整数。索引n和m的范围可能取决于信号大小(尺寸)和滤波器大小。通常,理论上,它可以从负无穷大到无穷大。
NN模块:神经网络模块,神经网络的组件。它可以是神经网络中的层或子网。神经网络是一个或多个NN模块的序列。
流水线内的位置(级):指定处理网络中的处理流水线内的位置,该位置可以是或包括神经网络。网络内的位置可以例如由位置之前的NN模块(或层)的数量指定。在流水线的第i位置处应用变换表示将变换应用于第i NN模块的输出,并且将变换的结果用作第(i+1)NN模块的输入。在流水线的第0位置应用变换被解释为将变换应用于NN的输入。在流水线的第K位置应用变换被解释为将变换应用于NN的输出。
潜在空间:神经网络处理的中间步骤,潜在空间表示包括输入层或一个或多个隐藏层(通常不应该被查看)的输出。
有损NN模块:有损NN模块处理的信息会导致信息丢失,有损模块使其处理的信息不可恢复。
无损NN模块:无损NN模块处理的信息不会导致信息丢失,无损处理使其处理的信息可恢复。
瓶颈:可以输入至无损译码模块的潜在空间张量。术语瓶颈涉及通道大小通常小于先前级。
NN层:神经网络对输入数据执行一次处理操作的处理步骤。
变分自动编码器(Variational Auto-Encoder,VAE)
示例性的基于深度学习的图像和视频压缩算法遵循变分自动编码器(Variational Auto-Encoder,VAE)框架,例如Z.Cui、J.Wang、B.Bai、T.Guo、Y.Feng的《G-VAE:连续可变速率深度图像压缩框架(G-VAE:A Continuously Variable Rate DeepImage Compression Framework)》,arXiv preprint arXiv:2003.02012,2020。
图1举例说明VAE框架。VAE框架可以被认为是非线性变换译码模型。在网络的编码端,编码器1通过函数y=f(x)将图像x映射至潜在表示中。编码器可以包括神经网络或由神经网络组成。量化器2通过y_hat=Q(y)将潜在表示变换为具有期望位长度和/或精度的离散值。经量化信号(潜在空间)y_hat使用算术编码(表示为AE,代表算术编码器5)被包括到码流(码流1)中。
在网络的解码端,经编码潜在空间由算术解码器AD 6从码流解码。解码器4将从AD6输出的经量化潜在表示变换为经解码图像,x_hat=g(y_hat)。解码器4可以包括或由神经网络组成。
在图1中,两个子网彼此级联。第一网络包括上述处理单元1(编码器1)、2(量化器)、4(解码器)、5(AE)和6(AD)。至少单元1、2和4称为自动编码器/解码器或简称为编码器/解码器网络。
第二子网至少包括单元3和7,并且称为超编码器/解码器或上下文建模器。具体地,第二子网为AE 5和AD 6对概率模型进行建模(上下文)。熵模型(或在此情况下超编码器3)估计经量化信号y_hat的分布z,以接近可用无损熵源译码实现的最小速率。估计的分布由量化器8量化,以获得经量化概率模型z_hat,该模型表示可以在码流内传输至解码端的边信息。出于此目的,算术编码器(arithmetic encoder,AE)9可以将概率模型编码为到码流2中。码流2可以与码流1一起被传输至解码端,并且也被提供给编码器。具体地,为了被提供给AE 5和AD 6,经量化概率模型z_hat由AD 10算术解码,然后用超解码器7解码,并插入至AD 6和AE 5。
图1在单个图中描述了编码器和解码器。另一方面,图2和图3分别示出了编码器和解码器,因为它们可以单独工作。换句话说,编码器可以生成码流1和码流2。解码器可以从存储器或通过通道等接收这样的码流,并且可以在不与编码器进行任何进一步通信的情况下对码流进行解码。对编码器和解码器元件的以上描述也适用于图2和图3。
大多数基于深度学习的图像/视频压缩系统在将信号转换为二进制数字(比特)之前降低信号的维数。
例如,在VAE框架中,作为非线性变换的编码器将输入图像x映射到y中,其中,y的宽度和高度小于x。由于y具有较小的宽度和高度,因此大小较小,信号的维度被减小,因此,更容易压缩信号y。
压缩一般原理如图4举例说明。输入图像x对应于输入数据,该输入数据是编码器的输入。变换后的信号y对应于潜在空间,该潜在空间具有比输入信号小的维数,因此也称为瓶颈。通常,在编码器-解码器流水线内的此处理位置,通道的维数最小。图4中的每列圆表示编码器或解码器的处理链中的一层。每层中的圆数指示该层信号的大小或维数。作为编码器的输出和解码器的输入的潜在空间表示经压缩数据y。在解码端,潜在空间信号y(经编码图像)由解码器神经网络处理,从而扩展通道的维度,直到获得重建数据x_hat为止,该重建数据x_hat可以与输入数据x具有相同的维度,但与输入数据x不同,尤其是在应用有损处理的情况下。由解码器层处理的通道的维度通常高于瓶颈数据y维度。换句话说,通常,编码运算对应于输入信号大小的减小,而解码运算对应于图像原始大小的重建——因此名为瓶颈。
如上所述,信号大小的减小可以通过下采样或缩放实现。信号大小的减小通常沿着处理层链逐步发生,而不是同时发生。例如,如果输入图像x具有h和w的尺寸(指示高度和宽度),而潜在空间y具有尺寸h/16和w/16,则在编码期间,大小的减小可能发生在4个层,其中,每个层在每个维度上将信号的大小减小一半。
已知的基于深度学习的视频/图像压缩方法通常使用多个下采样层。示例性VAE在图5中示出,并且利用标记为51至56的6个下采样层。包括下采样的层在层描述中用向下箭头指示。层描述“Conv N×5×5/2↓”表示该层是具有N个通道的卷积层(“Conv”),卷积核大小为5×5个样本。“2↓”表示在此层中执行因子为2的下采样。因子为2的下采样会导致输入信号的一个维度在输出处减少一半。在图5中,2↓表示输入图像的宽度和高度都减少了一半。由于有6个下采样层在一个维度上的大小减半,因此如果输入图像x(514)的宽度和高度表示为w和h,则输出信号z_hat(513)的宽度和高度分别等于w/64和h/64。
在第一子网中,一些卷积层在编码端遵循广义除归一化(generalized divisivenormalization,GDN),在解码端遵循逆GDN(inverse GDN,IGDN)。在第二子网中,应用的激活函数是整流线性单元(reectified linear unit,ReLU)。需要说明的是,本发明不限于这样的实现方式,并且通常可以使用其它激活函数来代替GDN或ReLu。
图5中的网络架构包括超先验模型。左侧(ga,gs)示出了图像自动编码器架构,并且右侧(ha,hs)对应于实现如上面参考图1至图3所描述的超先验的自动编码器。该模型使用类似的架构对ga和gs进行分析和合成变换。Q表示量化,并且AE、AD分别表示算术编码器和算术解码器,同样如上面参考图1至图3所描述。编码器将输入图像x置于ga,从而产生具有空间变化的标准差的潜在表示y。
结果被馈送到ha中,总结z中的标准差分布。z然后作为边信息被量化、压缩和传输。编码器使用经量化矢量z_hat 513来估计标准差的空间分布该标准差用于获得用于算术编码(arithmetic encoding,AE)的概率值(或频率值),并且使用它来压缩和传输经量化潜在表示y_hat 515。解码器首先从经压缩信号恢复z_hat。然后,它使用hs获得y_hat,这为它提供了正确的概率估计以成功恢复y_hat。然后,它将y_hat馈送至gs中以获得重建图像。
解码器包括上采样层57至59和510至512。另一层420按被实现为卷积层但不对接收的输入提供上采样的输入的处理顺序提供在上采样层411与410之间。解码器还示出了对应卷积层“conv M×3×3/1”。这样的层可以在NN中提供,用于对输入执行不改变输入大小但改变具体特性的操作。但是,并非必须提供这样的层。
当按通过解码器的码流2的处理顺序看时,上采样层以相反的顺序(即从上采样层512至上采样层57)排列。这里示出了每个上采样层,以提供上采样比为2的上采样,由↑指示。当然,不一定所有上采样层都具有相同的上采样比,并且也可以使用其它上采样比,如3、4、8等。层57至512被实现为卷积层(conv)。具体地,由于它们可能旨在在输入上提供与编码器相反的运算,上采样层可以对接收到的输入应用反卷积运算,使得其大小以对应于上采样比的因子增加。但是,本发明通常不限于反卷积,并且上采样可以以任何其它方式执行,例如通过两个相邻样本之间的双线性插值,或通过最近邻样本复制等。
图6示出了基于深度学习的图像(静态图像或视频)编解码器的一般示图,其中,在第一层之后应用辅助信息。深度学习架构可以是包括条件自动编码器和超先验的任何架构。条件VAE表示通过收集在本文称为辅助信息的附加信息来调节网络。这样的辅助信息与特征数据一起由NN的一个或多个层处理。例如,图像编码器的输入602是图像,该图像可以在多个通道中提供。图6的示例性表示示出了具有一个亮度和两个子采样色度(例如,在YUV颜色空间等中)的三个颜色通道,这是图像译码中通常使用的方法之一。通常,可以存在更多通道(例如,白色等附加颜色,或深度或其它特征,例如运动等)或更少通道(例如,仅一个灰度通道、黑白或调色板等)。输入图像通道602被布置成输入张量x,并且被输入至编码器神经网络600A。编码器神经网络600A可以包括多个层或层级,这些层或层级可以包括下采样层,所述下采样层可以例如通过具有或不具有某些步长的卷积、sigmoid、ReLU或GDN等非线性激活、不改变张量的尺寸的一些掩码卷积等实现。需要说明的是,层可以还包括熵编码或其它处理层。
输入信号X可以由一个或多个层处理,包括卷积(“conv”)和下采样(“↓”)以及一些非线性运算(NonLinAct)和掩码卷积(MaskConv)。编码器包括两个或两个以上层,并且可以将潜在空间中的压缩信息写入至一个或多个码流620和/或630中。例如,码流中的一个(例如码流620)可以对应于码流1,而另一个(例如码流630)可以对应于图1至图3所示的码流2。在图6中,级或层被示出为缩小尺寸(在处理方向上更窄)。但是,这是出于说明性目的,并且通常网络可以还包括不修改张量大小的一个或多个层和/或甚至增大张量大小的一个或多个层。在层1之后,可以执行辅助信息的收集610。收集器610可以收集辅助信息,并且将其与层1的输出数据组合。然后,组合的信息被输入至第2层进行进一步处理。
对应地,网络的解码器部分600B解析一个或多个码流620和/或630,并且使用一个或多个层重建信号,例如(去)卷积、上采样(“↑”)、非线性运算和掩码卷积。此示例性解码器网络600B与编码器网络600A对称(这通常不是必要的)。收集器650收集辅助信息,并且将收集到的辅助信息与倒数第二层的输出的组合应用于最后一个解码层(与编码器的层1对称)。在由最后一个层进行的处理之后,获得输出张量,例如在此示例中,重建图像692。
编码/解码流水线内的辅助信息
在图像编解码器中,辅助信息可以用于帮助编码器和解码器。这些辅助信息与经编码或经解码张量一起可以应用于译码(编码和/或解码)流水线中的具体一个或多个位置。在图6的示例中,辅助信息用于帮助对第一层之后的经处理信号进行编码和解码。这些辅助信息的应用通常被固定至处理流水线内的某个固定位置,如图6中的收集块610和650所示,因为网络架构主要是针对某些应用(例如图像编码和解码)预定义和固定的。应用在神经网络中的参数(例如权重)通常是预训练的(例如在编码和/或解码之前提供)。因此,神经网络的架构是预定,因为权重和应用辅助信息的位置是预定义的。这可能会限制网络的灵活性及其对经编码或经解码内容的不同参数和特性的适应性。
辅助信息的可能示例是应用在输入信号x的域中的帧间预测帧(预测)。帧间预测利用视频中的相邻帧与当前帧之间的时间冗余,因为相邻帧的内容通常不会完全改变。相反,内容通常会在帧之间略微移动。因此,帧间预测需要两个信息片断,即一个或多个相邻帧作为参考图像以及运动信息(例如一个或多个运动矢量)。帧间预测将这两者视作输入,并且应用运动补偿来生成当前帧的预测。
另一种形式的预测是一个帧(图像)内(内部)的帧内预测。帧内预测利用帧内的空间冗余。鉴于帧内部的区域,区域的样本值通常是相关的。因此,帧内预测使用帧的重建相邻样本来预测同一帧中的当前位置处的样本的值。
在图7中,提供了作为辅助信息的预测的视觉示例。左上角图像是来自公共测试序列BasketballDrill的预测帧710。预测在与输入信号x相同的域中执行,即在此示例中的NN输入图像域中执行。亮度帧的原始宽度和高度分别表示为W和H。位于左下角的较小帧720是相同的预测帧,但是在具有一个通道且下采样比为2的一个卷积层con(1,↓2)之后。因此,宽度和高度都是原始分辨率的一半,即W/2和H/2。在右侧,示出了N个卷积层之后的潜在空间域中的预测的示例730,每个卷积层的下采样为2x。因此,预测的宽度和高度现在小了2N。该图是下采样帧的网格,其中,网格大小由通道740的数量K确定。在这里,总共有K=13*11=143个通道。换句话说,马赛克图像730示出了具有K个通道的n个卷积层N*con(K,↓2)之后的潜在空间域中的辅助信息(此处为预测)。
图8示出了使用传统的基于块的视频编解码器(HEVC)和深度学习来捕获各种后续帧的特性的组合方法,如下所示Lu、Z.Ma、L.Xu、D.Wang,《基于分解、压缩、合成的技术测试》(Tests on Decomposition,Compression,Synthesis(DCS)-based Technology),JVET-U0096,联合视频专家组(Joint Video Experts Team,JVET)第21次电话会议,2021年1月6日至15日。在译码码流水线中的多个位置使用预测等辅助信息。图8中的译码流水线可以分成三个级:分解、压缩和合成。在图中,↓表示下采样,↑表示上采样,并且E和D分别表示HEVC视频编码器和解码器。STF表示空间纹理帧,它们是图像组(group of pictures,GOP)中的帧内预测帧。TMF表示时间纹理帧,它们是GOP中的帧间预测帧。HEVC编码器和解码器的预测和残差译码位于HEVC视频编解码器流水线中的静态(固定)位置。
在图8中,输入GOP在分解级首先被分为两个类别STF和TMF。TMF中的运动信息可以以粗粒度捕获,并且因此它们在被编码之前被下采样,表示为It L(即TMF的低分辨率输入)。相比之下,STF以原始高分辨率进行编码,符号为Is H(即STF的原始高分辨率输入)。STF和下采样的TMF都在第二压缩级使用传统HEVC编解码器进行编码,其中,HEVC的编码器和解码器分别由标记为E和D的框表示。当对TMF进行编码时,其参考图像是STF的重建信号的下采样版本,表示为(即STF的经重建和下采样低分辨率信号)。STF和TMF的经编码信息被写入至一个或多个码流中。之后,它们被解析并且由HEVC解码器用于重建STF和TMF。同样,当对TMF进行解码时,其参考帧是STF/>的下采样版本。压缩级的输出是STF和TMF的重建信号,分别表示为/>和/>
在合成级,重建STF和TMF用于以其原生分辨率生成高保真视频。首先利用运动补偿网络(表示为运动补偿)通过在相邻TMF上聚合信息生成当前TMF的时间平滑和空间细粒度运动表示(Ft L)。然后,由运动补偿网络生成的时间运动特征与经解码和上采样的TMF经解码STF及其重采样的版本一起被馈送至非局部纹理传输网络中,以学习和传输交叉分辨率信息,以实现具有空间细节和时间平滑性的高保真帧恢复。混合译码流水线在编解码器中的不同位置使用辅助信息,例如由运动补偿网络生成的时间运动特征、HEVC编码器和解码器中使用的预测和残差信息(图8未示出,但它们用于框E和D)。但是,辅助信息在译码流水线中的固定位置应用。
这样的实现方式可能无法有效地适应图像和视频序列的特性,因此产生次优的译码结果。
通过从原始信号(也称为预测误差信号或残差信号)减去预测信号获得的残差信号也可以用作辅助信息。在本发明的一些实施例中,预测信号和残差信号不仅可以发生在与输入信号x相同的域上,而且可以发生在编码器部分600A的处理顺序中的一层或几层之后的域中,或者对应地,发生在解码器部分600B的处理顺序中的一层或几层之前的域中。传统上,将这些辅助信息与编码器和/或解码器中的经编码和/或经解码张量一起使用的位置是固定的。
但是,取决于内容,尤其取决于输入图像的特性,辅助信息在译码流水线中预先设计的固定位置上可能表现不佳。因此,在译码流水线中的固定位置利用辅助信息可能产生次优的译码结果。因此,基于输入特性在不同位置处有条件地应用这些辅助信息的自适应方案可能是可取的。
基于收集条件的辅助信息输入位置选择
根据实施例,提供了一种用于使用神经网络处理码流中的图像特征数据的方法。神经网络包括多个(即两个或两个以上)神经网络层,在下文中也称为层。这样的神经网络900B在图9中示出。术语图像特征数据是指在编码端通过图像处理获得的任何潜在空间数据。换句话说,图像特征数据可以是编码处理的输出。
该方法包括基于码流940获得图像特征数据。例如,可以直接解析图像特征数据,也可以从码流解析和解码。此外,图像特征数据可以是通过一些处理基于经解码数据获得的。该方法还包括使用神经网络900B处理图像特征数据。对于神经网络内的一个或多个预配置位置中的每个预配置位置,处理包括:
(a)基于收集条件910_1、910_2、910_3确定是否要收集960_1、960_2、960_3辅助数据950,以供所述预配置位置(位于特征数据处理方向上的预配置位置之后)处的多个神经网络层中的一个进行处理。
(b)在确定要收集辅助数据950的情况下,使用所述预配置位置处的层进行的处理基于辅助数据950。
预配置位置是神经网络内的位置,在这些位置上可以收集(相同)辅助信息。可以存在一个这种位置,也可以存在两个或两个以上(甚至所有)这种位置。在图9中,存在三个预配置位置,即收集960_1、960_2、960_3的位置。如上所述,网络内的位置可以例如由按图像特征数据的处理顺序在该位置之前的NN模块(这里是层)的数量指定。预配置位置可以固定为神经网络架构的一部分。但是,可以通过允许或禁止辅助数据被输入至一个或多个层中,提高灵活性。但是,本发明不限于固定位置。或者,预配置位置可以通过也包括到码流中的边信息直接或间接配置。在此,直接配置可以指示实际位置,而间接配置可以是基于编码器和解码器处已知的相同规则并且基于例如编码参数(例如来自码流)的值执行的。
当确定辅助数据不被收集以供某一层处理时,使用该某一层进行的处理不基于辅助数据。在图6的示例性架构中,在图6的示例中输入辅助数据的位置是固定的,位于第一层之后。相比之下,在图9中,所述辅助信息可以被插入至神经网络中的多个潜在位置。这由收集单元960_1、960_2和960_3指示,受神经网络中的条件(标记为问号圆)910_1、910_2和910_3控制。
类似的处理在编码端执行。提供了编码端方法来使用包括多个神经网络层的神经网络900A处理图像902以生成码流940。该方法包括使用神经网络900A处理图像902。处理包括对于神经网络内的一个或多个预配置位置中的每个预配置位置:基于收集条件910_1、910_2和910_3确定是否要收集(例如,通过相应的收集器920_1、920_2以及920_3)辅助数据950以供所述预配置位置处的层处理,并且在确定要收集辅助数据的情况下,使用所述预配置位置处的层进行的处理基于辅助数据950。该方法还包括将通过神经网络处理图像获得的数据插入至码流940中。如图9中可见,在应用用于将概率模型参数提供给无损编码的超先验子网的情况下,可以提供附加码流(或码流部分)945。
以这种方式,应用辅助信息的位置可以取决于视频序列中的图像或帧的内容和/或特性动态地改变。因此,本发明可配置神经网络具有动态架构,因为应用辅助信息和对应收集参数可以发生在不同的位置。
本文的术语收集条件是指例如在被满足时确定收集器是否收集辅助信息950的要求。相应收集单元960_1、960_2和960_3(以及相应编码端收集单元920_1、920_2和920_3)的要求可能不同。这样的确定与选择输入辅助信息的位置具有相同的效果。根据要求的设计,辅助信息可能是只针对预配置位置中的一个选择的。例如,这可以通过为相应收集器提供相互排斥的要求(收集条件)来实现。换句话说,作为在确定步骤中应用收集条件的结果,针对一个或多个预配置位置中的单个预配置位置收集辅助数据。
但是,上述示例并不限制本发明。如图9中可见,存在可以在预配置位置收集到的一条或一种类型的辅助信息950。在一些示例性实现方式中,作为在确定步骤中应用收集条件的结果,针对所述预配置位置中的多于一个预配置位置收集相同的辅助数据。关于收集辅助信息的上述方法可以应用于多于一种类型的辅助信息。然后,对于每个辅助信息类型,一个或多个收集位置可以从预配置位置的集合中确定。需要说明的是,对于不同类型的辅助信息,预配置位置的集合可能不同。但是,对于某些类型的辅助信息,这些集合可能重叠或甚至是相同的。例如,辅助信息可以是预测信号、预测误差信号、概率模型等。其中的一些可以适用于对应位置处的相同或重叠级,例如,预测信号与预测误差信号可以一起使用。一些辅助信息类型可能适用于不同的级,例如,用于对潜在空间信号进行熵编码的概率模型。
本文提及的信号主要是指是离散信号,例如编码网络的输入图像或解码网络的输入图像特征数据,或任何级的潜在空间,或表示辅助信息的数据等。
如上所述,神经网络的不同层可以处理具有不同大小的特征张量。在图像处理中,特征张量通常具有三个维度,如已经参考图7讨论的,即宽度、高度和通道数量。具有宽度和高度的特征图像可以被认为对应于通道。因此,为了支持在流水线的多个级(可选择地)收集相同的辅助信息,可以实现一些调整大小或缩放。例如,在示例性实现方式中,所述预配置位置中的多于一个被预配置。辅助数据在大小上是可收缩的,以匹配由层在所述预配置位置中的两个或两个以上处理的输入通道的维度。因此,在此示例性实现方式中,作为在确定步骤中应用收集条件的结果,辅助信息(数据)可以针对所述预配置位置中的单个预配置位置(i)被收集或(ii)被收集并缩放。这相当于在预配置位置中选择收集辅助信息的单个预配置位置,并且调整辅助信息(如果必要)以适应由要输入辅助信息的层处理的分辨率。但是,本发明不限于总是在至少一个位置应用辅助信息。可以设想,设计收集条件,以使得由于应用这些收集条件,辅助信息不会在一些图像的任何预配置信息处被收集。换句话说,可以实现(iii)不收集辅助信息的第三种可能性。
本文描述的实施例侧重于辅助信息的可选择收集。但是,除了这样的可选择收集之外,神经网络架构可以提供一个或多个收集级,其中,总是收集某些类型的辅助信息(而不依赖于满足收集条件等先决条件),就像传统条件VAE框架中的情况一样。
此实施例可以使应用辅助信息的位置根据收集条件自适应地改变。
需要说明的是,本发明不限于VAE等特定NN框架。此外,本发明不限于图像或视频压缩,并且也可以应用于对象检测、对象识别或分类系统——通常是任何图像处理系统,包括为人类视觉目的重建图像的人类视觉系统或不一定重建图像的机器视觉系统,但是处理适合于推导期望输出的图像特征,例如分割图、深度图、对象分类、对象检测等。
图10示出了收集条件是基于从码流获得的图像特性或图像特征数据特性的示例性实施例。图10的神经网络处理输入图像1002并且输出处理图像1092。
例如,图像特性或图像特征数据特性包括分辨率。收集条件包括分辨率与预配置分辨率阈值的比较。例如,如果图像分辨率超出预配置阈值,则针对预配置位置中的第一位置收集辅助数据。另一方面,如果图像分辨率不超出预配置阈值,则针对预配置位置中的不同于第一位置的第二位置收集辅助数据。经验上,阈值可以定义为神经网络架构设计的一部分,或者通过将对应参数包括到码流中来进行训练和/或可配置。
作为基于分辨率的条件的补充或替代,在示例性实施例中,图像是视频图像,并且图像特性包括图像类型。收集条件包括确定图像类型是时间预测的图像类型还是空间预测的图像类型。空间预测的图像仅使用其自己的图像内的样本进行预测。在这种情况下,不使用其它图像的样本。时间预测的图像必须包括基于其它图像上的样本时间预测的一些区域。但是,它也可能包括一些使用空间预测的一些区域,即使用其自己的图像中的样本。
图像类型和图像分辨率或其它图像特性对于编码器和解码器是已知的,因此双方可以以相同方式进行操作,而不需要任何附加边信息。
在图10中,第一处理层是编码器1010A中的下采样层1010和解码器1010B中的上采样层1070。在此示例中,下采样1010和上采样1070在帧的宽度和高度上都是以2为因子进行。预测等辅助信息可以潜在地应用在多于一个位置:在编码器的第一层1010和解码器的对应层1070之前和之后。
在编码端,在此示例中,收集单元1030是两个输入信号的加权和:一个是要编码的原始帧的全尺寸,另一个是原始帧大小(全尺寸)的四分之一,对应于原始帧的下采样版本。
例如,权重对(1,0)表示使用辅助信息按全尺寸(由权重因子1指示)而不是四分之一尺寸(由权重因子0指示)进行编码,而权重对(0,1)表示使用辅助信息按四分之一尺寸而不是全尺寸进行编码。以这种方式,可以使应用辅助信息的位置在神经网络中可配置。例如,控制辅助信息使用位置的条件可以是原始帧的帧大小(分辨率)和/或帧类型。
例如,条件可以是帧大小是否大于或等于4K分辨率以及帧类型是否为帧间。在示例性实现方式中,当条件成立时,使用权重对(0,1),因此使用辅助信息按四分之一尺寸对这些输入帧进行编码。其它帧使用辅助信息按其原始分辨率进行编码。应用辅助信息的位置可以基于帧类型和/或帧大小在帧级别动态改变。
换句话说,在图10中,示出了收集单元1030(并且对应地在解码器1060处)仅仅是加权和的示例。权重可以具有如上所述的值(1,0)或(0,1)。权重(1,0)表示对全尺寸图像编码,权重(0,1)表示对四分之一尺寸的信号(对应于进行因子为2的下采样的信号)执行译码。在此示例中,收集条件1050是视频是否具有4K或更高的分辨率,并且同时,所考虑的帧是时间预测的帧。但是,如上所述,本发明不限于这样的组合式收集条件。相反,阈值分辨率可以仅仅是分辨率是否超出某个值或属于某一分辨率集。或者,帧类型可以是唯一评估的条件,而不考虑分辨率。另外的示例是可能的,涉及单独或组合使用的其它条件。
例如,译码参数,例如预测模式、运动信息(以推导例如运动强度或类型)等,可以应用于收集条件中。上述示例性实施例中的神经网络的可配置性是通过基于内容自适应条件在具体位置使用/不使用辅助信息实现的。内容可以包括图像的直接特性,例如图10的示例中所示的帧大小和帧类型。但是,特性也可以是内容的间接特性,例如给定区域中样本值的直方图。内容的粒度也可以是可变的。例如,确定辅助信息位置的条件可以在帧级别、块级别或在图像组或任何数量的图像的级别更新。换句话说,在一些实施例中,神经网络被训练以执行视频图像的处理。确定是否要收集辅助数据以供所述预配置位置处的层处理是针对每预定数量的视频图像执行的,其中,视频图像的预定数量是一个或多个。
条件也可以具有不同的形式。它可以根据解码器中的解析标志确定,如下所述。在编码器处,标志值可以是基于一些RDO计算或基于其它成本函数确定的。该条件也可能不是显式地指示的,而是由视频序列中的图像/帧的其它信息确定的。
应用辅助信息的灵活位置的好处之一在于,它可以自适应地对图像或帧进行编码和解码,因此可以提高性能。更好的性能可以包括在相同质量下产生的码流1055的速率较低,或者反之亦然(在相同速率下质量更高)。
根据一个实施例,该方法在解码端包括从码流获得指示的步骤,该指示针对一个或多个预配置位置指定是否要收集辅助数据。针对一个或多个预配置位置中的每个位置的收集条件如下:
如果指示针对预配置位置指定要收集辅助数据,则确定是肯定的;并且
如果指示针对预配置位置指定不要收集辅助数据,则确定为否定的。
指示可以是由码流语法支持并且直接指示是否在某一位置收集某些辅助信息的标志。或者,该指示可以根据其语法直接包括在码流中,并且指定预配置位置中要收集辅助信息的单个预配置位置。指示符还可以被设计为取指示不在任何预配置位置收集辅助信息的值。在此实施例中,收集条件基于评估指示符。
上述实施例是参考辅助信息描述的。通常,辅助信息(或辅助数据)提供关于由神经网络处理以生成输出的图像特征数据的一些(补充)信息。在图11中也示出的特定示例中,辅助数据包括预测数据,该预测数据是在由神经网络的一个或多个层处理后图像的预测(例如,在编码器的输入图像域中)或图像特征数据的预测(例如,在编码器的输入图像域之外)。
如图11所示,在一些示例性实现方式中,辅助数据是预测数据与要与预测数据组合的补充数据的耦合对。术语“耦合”在这里是指预测数据和补充数据取自同一流水线位置(级)。补充数据可以是例如预测误差数据(表示预测误差的数据),该预测误差数据在具体情况下可以是预测残差(预测图像与图像预测之间的差异)。预测信号和残差信号可以在神经网络中的零层、一层或几层之后获得,如图11所示。在第i位置应用辅助信息表示在流水线内的第i位置使用辅助信息进行变换。这里的变换可以是由层执行的一般变换,也可以是作为网络的处理步骤(层)执行的实际频域变换,例如正交变换,如傅里叶变换(例如快速傅里叶变换(fast Fourier transformation,FFT)或离散余弦变换(discrete cosinetransformation,DCT)或它们的整数版本等)。如上所述,通常,辅助信息是张量,该张量可以与编码端输入信号或与译码流水线中的潜在空间表示具有相同的大小,这取决于收集位置。
通常,可以应用预测信号和残差信号的位置的数量为N+1。这对应于在解码端表示输入信号(NN的输入)并且在编码端表示输出信号的位置0以及N个另外的位置1至N。需要说明的是,预配置位置不一定设置在每层之后。图11示出了辅助信息为预测信号和残差信号的示例。它们可以在几个位置被收集,这通过在神经网络的编码器部分1100A和解码器部分1100B中多次提供收集单元1150示出。
在图11的示例中,这些位置中的单个位置在编码和解码期间应用预测信号和残差信号。换句话说,辅助信息的应用位置在译码流水线中不会重复,而是改变。收集级1150包括收集预测信号(predi)1110作为辅助信息,并且通过从第i位置的图像特征数据(在解码器处理的方向上计算)减去预测计算残差(resii)1120。然后,残差在码流1140中被编码。因此,可以通过将残差1160添加至通过处理获得的预测中在解码器1100B处收集残差,该处理可以包括例如运动补偿处理或帧内预测处理等。
在编码端,该方法可以还包括基于成本函数的优化针对一个或多个预配置位置选择是否要收集辅助数据的步骤,该成本函数包括速率、失真、精度、时延或复杂度中的至少一个。换句话说,位置可以通过RDO或类似方法确定。例如,在编码端,关于应用辅助信息的流水线内级的决定可以通过多遍编码执行。在一个示例中,如上所述,仅允许在一个位置应用辅助信息。在这种情况下,i=0、1、2、……、N个预配置位置的编码器尝试在流水线的第i位置应用辅助信息,并且获得每个变体的失真和速率。然后,选择定义的速率/失真比的最佳变体(位置)。
在另一示例中,如果可以在流水线内的任何一个或多个位置应用辅助信息,则对于长度为(N+1)的每个布尔矢量,编码器尝试在与此布尔矢量中的位置对应的位置处应用辅助信息,因此尝试2N+1个变体。如果考虑一些先验知识,搜索空间可能会减小。布尔矢量指示针对每个位置i是否在该位置收集辅助信息。
但是,本发明不限于作为辅助信息的预测和预测残差。相反,辅助数据被应用为在解码处理中实现方向性的一种引导数据。换句话说,辅助数据通过一些补充信息调节处理。通常,辅助数据可以是帮助生成网络或其它数据的标签。
需要说明的是,在本发明中,预测信号和残差信号的含义略微归一化,即与在输入信号x的同一域中生成预测信号和残差信号的HEVC等传统编解码器不同,本文的预测信号和残差信号可以指示神经网络中的一层或几层之后的信号,如图11所示。在图11的实施例中,预测信号与残差信号耦合,即,当满足收集条件时,并置的预测信号predi和残差信号resii同时被启用或禁用。
但是,在一些实施例中,预测数据和补充数据具有由网络中的相互不同位置处的层处理的数据的维度。换句话说,它们是从不同级收集的。预测的(选定)收集位置与残差的(选定)收集位置可能不同。这样的方法的一些实施例将在下面的“组合来自神经网络不同处理级的数据”部分中描述,并且可以与改变如本文所描述的收集位置相结合。
图12示出了一些实验数据。在实验中,网络配置可以根据输入信号的分析进行选择。此分析是在频域中进行的。图12给出了示例,其中,对应于二维快速傅里叶变换的变换FFT2(参见https://www.mathworks.com/help/matlab/ref/fft2.html)用作变换工具来执行频谱分析。对于给定图像,可以预测(或测量)在2x的下采样的网络层之前或之后由FFT2变换引入的频谱变化。如果保留了主要信号能量,则将辅助信号应用于低分辨率表示是有利的,因为原始图像与重建图像之间的误差可能是可忽略不计的。图12示出了以下分析级。级(a)示出了输入(原始)图像。这里的实验是针对两张不同的图像(见(a),顶部和底部)进行的。如果FFT2应用于原始图像,则级(b)示出FFT2结果。级(c)示出了FFT2在下采样2后应用于原始图像时的FFT2结果。级(d)示出了基于经子采样信号重建的图像。级(e)示出了应用于重建图像的FFT2。级(f)示出了重建图像与原始图像之间的差异。级(g)示出了差分图像的FFT2。如图可见,图12中的顶部的上图像具有较少的高频分量。重建帧是通过首先以下采样分辨率应用辅助信号然后执行上采样得到的。这样的重采样对信号内容的影响很小。相比之下,对于底部图像,高频能量的损失在图像细节和频率分量方面都是明显的,在底部图像中可以观察到更多高频分量。这一观察结果可能也适用于其它变换。总体上,网络是以这样的方式自适应配置的,使得辅助信号以适当的分辨率应用至卷积层,其中,输入信号的频谱能量得到充分保留。可以设想,收集条件基于FFT2或可以提供一些频谱信息的另一种变换。例如,频谱分布的一些统计参数可以被阈值化,以定义在哪个位置上收集辅助信息。
需要说明的是,本发明不限于提供预测信号和残差信号作为辅助信息。另一示例性可能性是在无损压缩中应用辅助信息。
因此,辅助信息可以应用于的潜在位置包括信号可以被无损处理的位置。如图13所示,神经网络可以包括子网,其中,信号y_hat可以从解码器无损地恢复,如上面已参考图1至图3所描述。根据一个实施例,在获得信号y_hat之后,存在收集单元1310,其中,辅助信息可以随后应用于神经网络中。
换句话说,在该实施例中,神经网络包括用于使用至少一个层进行无损解码的子网,并且辅助数据被输入至所述子网中用于无损解码。因此,收集条件1320可以控制用于熵译码(如上面针对VAE框架所描述的编码和解码)的概率模型是否作为来自无损译码子网的辅助信息提供。如果不要提供辅助信息,则概率模型可以例如通过默认概率分布或通过码流指示等确定。收集条件可以基于根据成本函数等的优化,一方面考虑子网造成的复杂度和时延,另一方面考虑子网对减小产生的码流大小的影响。或者,收集条件可以基于先前译码的数据的统计,例如它们的方差。在几乎固定或缓慢变化的情况下,可能没有必要应用来自子网的辅助信息。
通常,神经网络可以被训练成执行以下各项中的至少一个:静态图像解码、视频图像解码、静态图像滤波、视频图像滤波和包括对象检测、对象识别或对象分类的机器视觉处理。
上述编码和/或解码可以针对包括第一辅助数据和第二辅助数据的多个辅助数据中的每个辅助数据执行,其中,第一辅助数据与一个或多个预配置位置的第一集合相关联,并且第二辅助数据与一个或多个预配置位置的第二集合相关联。换句话说,本发明可以应用于同一网络中的不同类型的辅助数据。例如,第一辅助数据是预测信号和残差信号,并且第二辅助数据是无损译码的概率模型。在一些实施例中,一个或多个预配置位置的第一集合与一个或多个预配置位置的第二集合共享至少一个预配置位置。但是,这仅仅是示例性的,在某些情况下,集合不一定共享任何预配置位置。例如,在作为第一数据的预测/残差和作为第二数据的概率模型的示例中,情况可以如此。
如图9所示,提供了可配置的条件自动编码器神经网络作为示例性实施例。在此架构内,可以基于条件自适应地确定应用预测和/或残差等辅助信息的位置。因此,神经网络的架构可以根据视频序列中的图像或帧的特性动态地改变。
通常,本发明的实施例提供了一种使基于神经网络的图像编解码器可动态配置的方法,其中,在译码流水线中应用辅助信息的位置取决于条件。辅助信息可以是预测信号与残差信号的耦合对。成对的预测信号与残差信号可以位于与输入信号x相同的域中,也可以位于由神经网络的一个或多个层进行处理后的域中。应用辅助信息的位置是可变的,这可以是通过基于收集条件在神经网络中的潜在位置中的仅一个具体位置使用辅助信息来实现的。这样的收集条件以内容自适应方式控制应用辅助信息的位置,即,条件可以是基于输入信号(图像)的一个或多个特性确定的。此外,控制应用辅助信息位置的条件可以动态地更新,例如,当对视频序列进行编码时,条件可以在块(帧中)级别、帧级别或帧组级别更新。应用辅助信息的潜在位置中的一个是对信号进行无损译码的位置,如图13所示。位置变化可以应用于两个或两个以上独立辅助信号。鉴于是两个独立辅助信号A1和A2,应分别存在应用A1和A2的两个对应的潜在位置集合。假设这两个对应的潜在位置集合是S1和S2,则S1和S2中的位置不受限制,即它们可能重叠或可能不重叠。这同样适用于多于两个独立辅助信号。
实施例已主要从方法方面予以描述。但是,本发明不限于此。相反,本发明还涉及一种用于使用包括多个神经网络层的神经网络处理码流中的图像特征数据的装置。装置包括处理电路,该处理电路用于:从码流获得图像特征数据;使用神经网络处理图像特征数据,其中,对于神经网络内的一个或多个预配置位置中的每个预配置位置,处理包括:基于收集条件,确定是否要收集辅助数据以供所述预配置位置处的多个神经网络层中的一个层处理,并且在确定要收集辅助数据的情况下,使用所述预配置位置处的层进行的处理基于辅助数据。处理电路可以是例如由对应软件配置的一个或多个处理器,如将参考图26至图29详细描述。
类似地,本发明涉及本发明涉及一种用于使用包括多个神经网络层的神经网络处理图像以生成码流的装置。处理电路用于:使用神经网络处理图像,其中,处理包括对于神经网络内的一个或多个预配置位置中的每个预配置位置:基于收集条件,确定是否要收集辅助数据以供所述预配置位置处的层处理,并且在确定要收集辅助数据的情况下,使用所述预配置位置处的层进行的处理基于辅助数据;并且处理电路用于将通过神经网络处理图像获得的数据插入至码流中。处理电路可以是例如由对应软件配置的一个或多个处理器,如将参考图26至图29详细描述。
组合来自神经网络不同处理级的数据
图14是用于处理图像数据的神经网络的架构并且尤其示出应用于编码端和解码端的层的编号的框图。输入图像1402堆叠至输入数据张量中,并且被输入至编码端的神经网络1400A中。如图中可见,编码端网络1400A包括从1至K编号的多个级联处理层(或层块)。级在这里表示经处理的特征张量的级。输入数据张量对应于第0级,用第1层处理输入数据张量后的特征张量对应于第1级,以此类推,直至最后一(第K)级,该级对应于瓶颈处的神经网络的输出。这里的输出对应于可以被编码(例如由如上所述的算术编码器)以形成码流1450的瓶颈特征张量(也称为输出或潜在空间张量或输出特征数据)。
解码端网络1400B包括从K到1编号的多个级联处理层(或层块)。在此示例中,为了解释简单起见,本文的处理层(或层块)对应于编码端的相应处理层(或层块)。通常,需要说明的是,编码端网络与解码端网络不一定需要严格对称,这表示它们不需要具有相同数量的层,但仍然可以具有相同数量的层。特定架构可能取决于部署它们的任务。即使对于同一任务(例如视频/图像译码),NN的结构可以不同。但是,在大多数情况下,编码端的下采样层的数量等于解码端的上采样层的数量。
在此示例中,解码端网络的输出是重建图像1492。但是,通常,解码端的输出不需要是供人类观看的重建图像。它可以是用于计算机视觉处理等计算机处理的特征数据或结果。
图15更详细地示出了神经网络中的处理和数据流,该神经网络利用预测和预测残差来对流水线的同一级处的图像数据进行编码和解码。具体地,这些预测和残差在流水线的同一级(即第0级)使用。这可以是固定布置或如上所述的上述辅助信息输入位置选择的结果。在此示例中,参考图11所描述的网络被更详细地示出。图15在底部示出了处理当前图像(即时刻t+1处的帧)的编码和解码网络1586。网络1586基本上对应于参考图14所描述的网络1400A和1400B。但是,在编码端和解码端的级0处,收集1560、1565辅助信息(类似地如图11所示)。
编码端处收集的信息是预测信号。预测信号在部分1560(对应于收集器)中的第0级处与输入图像数据(输入张量)组合。即,计算输入张量和预测之间的逐元素差异,并且获得被进一步编码(即使用网络1586的编码端处理并且被插入至码流1572中)的残差。需要说明的是,逐元素差异仅仅是实现数据的共同使用或组合的一种示例性可能性。通常,组合可以以不同方式执行。例如,如果两种组合的数据具有不同的分辨率或维度,则组合可能进一步涉及缩放。取决于神经网络架构和网络的训练,通常可以使用其它类型的组合,例如级联等。因此,即使在指示加法或减法的附图中提供了一些示例,但本发明不限于这样的操作。相反,它们可以指示数据的一般组合,如参考图21和图22进一步解释的。
解码端使用层K至1处理来自码流1572的潜在空间数据。第0级(解码端的第1层或层块的输出)中的所得数据是经解码残差。它们与在表示为1565的单元中收集的预测组合在一起。这里的收集包括预测与经解码残差的组合。这里的组合是经解码残差张量与预测的逐元素和。需要说明的是,这里的预测具有与残差信号相同的大小(尺寸),以便在收集单元1560和1565中执行逐元素处理。如上所述,本文所示的逐元素和仅仅是两个信号(数据种类)的示例性组合。通常,组合可以以不同方式执行,并且可以表示将张量级联或堆叠在一起和/或缩放等。
图15的上部1506示出了如何获得为处理当前图像而收集的预测。具体地,预测是基于由同一网络为前一图像(时刻t处)生成的参考帧(参考数据)并且可能基于可以在当前图像(时刻t+1处)的码流1590中提供的运动信息等另外的数据获得的。网络1506的编码部分对第t(先前)图像的神经网络处理包括当前图像的如上所述的类似处理。在t=0的情况下,通常不存在先前译码帧。因此,只有当前(t=0)帧的经解码样本才能用作预测。例如,可以应用帧内预测。或者,这些帧可以以不同方式编码,例如仅通过无损译码等。
网络1506的编码部分对第t(先前)图像的神经网络处理包括提供参考帧(通过将经解码残差添加至先前获得的参考帧在第0级处生成)以供用于进一步处理,即编码端的运动估计1510和解码端1530的运动补偿。
在运动估计1510中,估计参考图像(在时刻t中解码)与当前图像(在t+1中)之间的运动。运动然后由运动信息表示,并且被插入至码流1590中。此外,估计的运动用于运动补偿1520。运动补偿是根据任何众所周知的方法执行的。运动信息可以包括图像的某些部分的整个光流或子采样的(并且可能通过无损或有损译码进一步编码的)光流。通常,运动信息能够从参考图像生成预测。运动信息指定参考图像中的哪些样本值对每个样本值或预测图像的影响(以及如何影响)。运动补偿1520生成预测图像,该预测图像然后在收集单元1560中被收集以生成残差信号(预测误差)。
在解码端,运动信息是从码流1590解码的。在当前图像的解码期间,运动补偿1530基于来自前一图像解码的第0级的参考图像并且基于运动信息生成预测图像,其方式与对于编码端的运动补偿1520所描述相同。
需要说明的是,图15主要示出了信号流。在实践中,缓冲可以在某些级执行,例如,参考图像可以在编码端和解码端存储在参考图像缓冲区中。预测图像可以使用如上所述的一个参考图像生成。但是,本发明不限于这样的处理,并且预测图像可以使用多于一个预测图像生成。现有技术提供了使用两个参考图像(例如,以显示顺序位于当前图像之前的图像和以显示顺序位于当前图像之后的图像(双向预测))的各种方法(双预测)。还需要说明的是,时刻t和t+1以经处理的图像的单位测量。但是,它们也仅仅是示例性的。本发明不限于使用紧靠的前一图像作为参考。具体地,为了时间可扩展性,可以使用以显示顺序位于当前图像之前或之后(但以编码和解码顺序位于当前图像之前)的参考图像。码流1590和1572可以复用成一个码流。
图16类似于图15,因为它示出了预测在与残差相同的级中的收集,但预测和残差的收集在级1中执行。因此,预测不必在输入信号域中执行。在这种情况下,它是在第1级的潜在空间域中执行的。这里的第1级是使用第1层或层块1605处理当前输入图像(时刻t+1中)1601之后的级。具体地,第1层1605可以包括下采样,在这种情况下,处理潜在空间中的预测可以例如在复杂度和时延方面提高效率。如图16中可见,残差是通过例如从第1层1605的输出减去预测张量(通常将其组合)在收集器单元1660中获得的。在这种情况下,第1层1605的输出可以是与预测张量大小相同的经子采样的(并且可能经过进一步处理,例如经滤波)输入图像张量;预测张量是基于从前一图像(网络1606)的解码器流水线的第1级获得的参考帧获得的。然后,对应运动信息还可以导致在码流1690中传输的数据较少,码流1690可以与残差码流1672复用。在解码端,收集1665也在对应级(这里是第1级,例如,在解码处理顺序中由第1层或层块处理之前的级)执行。同样如图15所示,收集包括第1级的潜在空间中的预测信号与经解码残差的组合(在这种情况下是逐元素和)。
如本领域技术人员所清楚,遵循图15和图16,预测信号收集可以在2到K中的任何级中执行。级越高,预测可能变得越不精确,特别是在层(或层块)包括子采样的情况下。另一方面,随着级的增加,生成的码流的速率以及复杂度和时延可能会降低。因此,对于低码率/质量译码,使上述级靠后(对应于较大级索引)是有益的,而对于高码率/质量,使上述级靠前(对应于较小级索引)是有益的。随着独立选择预测/残差收集的级的可能性,可以改善网络运行。此外,级选择可以取决于内容特性(例如频谱)自适应地执行,如在以上实施例和参考图1至图13所描述的示例中所描述。
图15和图16示出了预测和残差是从同一处理级(在这些示例中,第0级或第1级)获得的示例。但是,根据本发明的实施例,情况不一定如此。从不同级获得预测和残差可能是有利的。
图17示出了在NN流水线的第i级内获得预测并且在第(i+r)级执行残差译码的示例性实施例。
根据这样的实施例,提供了一种用于使用神经网络处理码流1772(也可能是1790)中的一个或多个图像的特征数据的方法。神经网络1786包括两个或两个以上级(K–1),包括第一级和第二级。这里的“第一”级和“第二”级是级K至1中的任一个,术语“第一”和“第二”用作级编号的占位符。
该方法包括基于码流获得第一数据1760,并且使用神经网络处理第一数据。例如,图17中的第一数据是从码流1772解码并且还可能由一个或多个层处理的残差。在图17中,第一数据是从码流1772解码并且由层K至i+r+1处理的残差。换句话说,残差用于解码流水线的第(i+r)级。
需要说明的是,通常,第一数据不一定由一个或多个层处理,它可以是直接来自码流的经熵译码特征数据。如稍后将讨论,本发明还可以应用于熵编码/解码。
使用神经网络的处理包括:
–从神经网络1706的第二级获得基于先前由神经网络处理的数据的第二数据1765;
–使用第一数据与第二数据一起生成神经网络的第一级的输入,其中,第一级在神经网络的特征数据处理中位于第二级之前(图17的示例中网络的解码部分中的处理顺序,即从级K到级0的顺序);
这里的术语“先前”是指前一帧或先前块(帧内)等。该方法还包括输出处理1702的结果(例如,重建图像或图像特征数据)。通常,当所述第一级和所述第二级不同时,本实施例是适用的。但是,如参考图1至图16所描述的实施例所示,所述第一级与所述第二级也可以是同一级。
此示例中的第二数据可以是预测帧。获得第二数据可以包括获得参考帧和运动信息。但是,通常,参考帧或一般参考数据可以作为预测直接获得(例如,如果运动未被指示或如果使用帧内预测或另一种类型的预测)。需要说明的是,图17示出了图像(帧)级别上的处理。但是,本发明不限于此,并且通常,图像部分可以被编码/解码。
在图17的示例中,第一级是解码流水线的第(i+r)级,并且第二级是解码流水线的第i级。
在示例性实现方式中,第一数据(例如残差)是在神经网络的第三级中获得的,在神经网络的特征数据处理中,第三级在第一级和第二级之前或等于第一级。换句话说,第一数据可以是在与第二数据组合的级不同的级中获得的。这可能对一些神经网络架构是有益的,并且可以对应于一种跳跃连接。从第K至第(i+r+1)的层可以用于预处理经解码残差信号,并且将其变换至与使用从(i+1)至(i+r)的层处理的第二数据相同的特征空间。基本上,在图17所示的示例性实现方式中,层(i+1)至(i+r)和层K至(i+r+1)用于将第一数据和第二数据变换至同一特征空间(同一域)。一旦经处理的第一数据和经处理的第二数据位于同一域中,则它们可以如图21和图22中所描述地组合。
在图17中,第一数据表示预测误差(预测残差),并且第二数据表示预测。具体地,预测通过以下操作获得:
–获得参考特征数据,该参考特征数据是由神经网络在所述第二级输出的特征数据。由于在第i级的一般情况下,参考数据不位于图像域中而是位于潜在空间域中,因此在这里通常称为“参考特征数据”。第0级的参考特征是参考图像,如已经参考图15所讨论。
–基于所述码流获得包括与参考特征数据相关的运动信息或空间信息的预测信息(在同一级或不同级)。本文中关系是通过这一事实提供的,即预测信息是相对于网络的编码部分中的参考特征数据确定的。在图17中,包括到码流1790中的运动信息是通过对参考特征数据与由编码端的层1至i处理的特征数据之间的运动执行运动估计获得的。其它示例性实现方式是可能的,例如,使用堆叠至张量中的输入图像数据1701来产生运动信息,然后对其进行下采样等。如对于本领域技术人员所清楚的,必要时可以应用缩放或调整大小。
–基于参考特征数据和预测信息生成预测。在图17中,预测的生成是通过如上面参考图15所描述的运动补偿执行的。因此,第二数据是对应于运动补偿的输出的预测1765。
在图17中,预测误差是通过使用神经网络处理当前图像获得的。预测信息是运动信息,并且参考特征数据是通过神经网络以解码顺序并且可能通过进一步应用运动估计处理表示当前图像之前的图像的图像数据生成的。如上所述,解码顺序不一定是显示顺序;预测可以基于多于一个参考。
上述将第一数据1760与第二数据1765一起使用包括将预测或经缩放的预测与预测误差或经缩放的预测误差进行逐元素相加。预测数据的这样的缩放如图17所示,例如包括在层i+1至i+r(可以是卷积层)的处理中。如上所述,逐元素相加可以替换成不同种类的组合,例如级联或其它运算或一系列运算。
需要说明的是,本发明不限于作为预测的辅助数据。如下文所述,在一些实施例中,辅助(第二)数据可以作为超先验从不同(子)网络获得,并且与第0级上的经编码数据一起使用以在神经网络的解码端的输入处产生潜在空间特征数据。在这样的情况下,一起使用是指将概率模型信息例如应用于图像特征数据的算术解码。
在图17中,运动信息包括运动矢量。但是,本发明不限于运动估计和补偿的任何特定方式。因此,通常,运动信息不限于运动矢量。相反,它可能包括仿射变换参数。除了运动矢量之外,运动信息可以还包括指示的运动矢量的位置(在非规则运动场采样的情况下)。
图18是图17的更一般实施例的具体情况。具体地,在图18中,所述第二级是(解码器)神经网络的输出,即第0级。换句话说,参考帧取自如图15也已示出的解码处理的第0级。需要说明的是,在这种情况下,第0级是前一图像的处理级(时刻t)。但是,在此示例中,假设网络架构对于当前图像或图像特征数据(时刻t+1)的处理和对于先前图像或图像特征数据(时刻t)的处理没有改变。
在图18中,所述第一级(等于上述第三级)是K,即残差是在流水线的第K级中计算(在编码器处)并且使用(在解码器处)的。但是,本发明不限于此,并且所述第一级可以是解码端的神经网络的输入,尤其在与无损译码相关的实施例的情况下,如下面将更详细地描述。
图19示出了在流水线的级1中获得参考图像(因此也获得预测)的另一示例,即所述第二级是解码流水线的级1。这对应于图16。用于计算和使用残差的所述第一级仍然是编码和解码流水线的级K,如上述图18所示。
另一示例如在图20中示出。在图20中,用于获得参考帧的所述第二级是图16和图19中的级1。但是,用于计算和使用残差的所述第一级是编码和解码流水线的级(K–1)。换句话说,在编码端,在获得残差之后(在将第一数据与第二数据组合之后),在将经处理数据插入至码流2050中之前,组合的数据可以由神经网络的一个或多个层2020处理。在此示例性处理流水线中以及在图17至图19的示例中,预测(对应于第二数据)也可以由编码端的神经网络的一个或多个层2010处理。对应地,在解码端,在组合级(K–1)中的另外的经处理的预测之前,来自码流的数据可以由一个(在图20,层K中)或多个层2022处理。此外,预测可以由解码端的神经网络的一个或多个层2012处理。如上所述,第一数据与第二数据在组合之前的处理可以包括但不限于它们对公共大小(分辨率)的适应。
以上示例示出了对称编码和解码流水线以及编码和解码流水线中的对应级处的对称预测收集。需要说明的是,情况不一定如此。随着缩放和调整大小的可能性,不对称方案是可以设想的。
图15至图20描述了应用预测以获得残差或获得图像(特征)数据的特定示例性实施例。示例性地,在编码端,从输入至神经网络(并且可能由一些层处理)的图像(特征)数据减去预测数据(第二数据)以获得残差。减去是逐元素计算的。类似地,在解码端,残差与预测逐元素组合。这样的方法在图21中示出。在图21中,差值在预测块与原始块之间逐元素确定并且包括到码流中。差值(在本发明中也被表示为残差或预测误差)然后从解码端的码流获得,并且被添加至预测块中以获得重建块。此示例仅是示意性的,块可以直接表示图像数据或图像特征数据。
但是,在一些实施例中,原始块与预测块的直接组合和/或残差块与预测块的组合可能并不总是以逐块方式进行。例如,如上所述,预测、输入(原始数据)数据和残差可以具有不同的大小(分辨率)。因此,图22示出了编码器和解码器处的一般化组合。例如,在编码器处,获得残差可以包括原始数据和预测数据中的至少一个的上采样或下采样。类似地,在解码端,将残差应用于预测可以包括残差的缩放/调整大小和/或预测等。在一个示例中,输入(原始)数据与预测数据堆叠,因此通道的数量成为原始数据通道和预测数据通道的数量的总和;这样的组合数据由一个或多个卷积层进一步处理(可能使用下采样或跨步卷积),并且结果是残差。在解码端,残差的应用以以下方式执行:残差与预测数据堆叠,然后由一个或多个卷积层处理(可能使用下采样或跨步卷积),并且这样的处理的结果是重建数据(可以具有多于一个通道,因为它是潜在空间)。如果在编码端原始数据与预测数据具有不同大小(分辨率),则可以在堆叠通道之前应用缩放/调整大小。如果在解码端残差与预测数据具有不同大小(分辨率),则可以在堆叠通道之前应用缩放/调整大小。此外,在组合之前,几个卷积层可以用于预处理预测和/或预测误差。通常,这样的预处理对于预测和预测误差可能是不同的。
在以下实施例中,提供了关于在无损编码和解码中的应用的实施例。通常,第一数据可以在自动编码器编码部分后获得,并且在算术编码之前被进一步量化。在这样的情况下,具有第二数据作为熵模型的这样的实施例仍然可以用于无损译码之前的有损译码。
因此,所述第一级是神经网络的输入。第一数据是经熵编码数据。第二数据是与第二级的特征数据相关的概率模型数据。例如,所述第二数据是用于第一数据的熵解码的概率模型数据。
在此示例性实现方式中,第二数据用于预测第一数据中的符号的概率,这可以基本改进算术编码。技术效果与从信号减去预测和编码差值(残差)相当,例如接近零。如果通过算术编码编码的符号是自动编码器的编码部分的经量化输出(这是有利实施例之一),则实现有损译码。如果符号是原始图像样本(已经是整数并且可以通过算术编码编码),则实现无损译码。
此实施例是参考图14所描述的实施例的扩展。在图14中,概率模型是基于第0级的特征数据确定的,并且应用于编码和解码的第0级(用于算术编码和算术解码)。但是,通常情况不必如此。相反,对应于概率模型信息的第二数据可以例如通过基于潜在空间的图像特征数据应用超先验子网例如从大于0的级获得。
通常,在任何先前示例或实施例中,所述第一级和/或所述第二级的位置可以是可配置的。例如,第一级和/或第二级的位置可以在神经网络内配置,并且编码端和/或解码端的处理方法包括根据基于一个或多个图像译码参数的收集条件对第一级和/或第二级的位置进行配置。换句话说,用于基于收集条件选择收集位置的方法可以应用于所述第一和/或所述第二级。收集条件可以基于对编码器和解码器都可用的参数(信息)。
或者或另外,收集条件可以取决于在编码器处执行并且指示给解码器的选择。例如,解码方法可以包括从码流解析指定所述第一级和/或所述第二级的级选择指示符。第一级和第二级在神经网络内的位置是根据解析的级选择指示符进行配置的。在编码端,级选择指示被生成并且插入至码流中。如上所述,编码器可以基于根据成本函数的一些优化决定选择某些级,所述成本函数包括速率、失真、复杂度、时延、精度等。或者,可以应用其它方法,例如丢失的信息量(例如上述FFT2分析)。
总之,本发明提供了可以使基于神经网络的图像/视频编解码器或一般图像处理可动态配置的一些实施例,其中,在译码流水线中应用辅助信息的位置可以取决于条件。在参考帧的某个流水线级获得的辅助信息可以在当前帧的另一流水线级使用的架构可以促使另外的或替代的改进。参考图17讨论了用于预测和残差辅助信息的这样的方案的示例。例如,从参考帧侧的流水线的第i级获得的预测可以由后续的r个NN模块进一步处理,并且在针对当前帧的流水线的第i+r级内使用以用于计算残差。在这种情况下,计算由NN模块i+1、i+2、……i+r处理的预测与由NN模块1、……、i+r处理的当前帧之间的残差。然后,残差由NN模块(i+r+1)、……、K进一步处理。第K NN模块的输出(在编码端)是瓶颈,并且在码流中指示。在解码端,应用相同的方案:预测由NN模块i+1、i+2、……i+r处理;从码流获得的残差由模块K、……、(i+r+1)处理。然后,从预测和残差获得的组合信号由模块(i+r)、……、1处理。
如上所述,对于单级选择,在编码端,关于应用辅助信息的流水线内级的决定可以通过多遍编码执行。在一个示例中,仅允许在一个位置应用辅助信息。在这种情况下,k=0、1、2、……、K的编码器尝试在流水线的第k位置应用辅助信息,并且获得每个变体的失真和速率。然后,选择定义的速率/失真比的最佳变体。在另一示例中,如果可以在流水线内的每个位置应用辅助信息,则长度为(K+1)的每个布尔矢量的编码器尝试在对应于此布尔矢量中的布尔矢量的位置处应用辅助信息,因此尝试2K+1个变体。
在可能选择两个或两个以上级的上下文下,可以尝试i与r的所有组合。应当满足以下条件:0≤i≤i+r≤K。为了避免尝试所有可能的位置来应用辅助信息,从而降低编码器的复杂度,可以使用启发式方法来代替穷举搜索。例如,可以使用上述频谱(例如使用FFT2)分析。
在图15至图20所示的示例性实现方式中,预测仅计算一次,并且残差仅应用一次。通常,译码(编码和/或解码)方案可以包括不同级处的多于一个预测获取/残差应用块(例如,以供不同的NN层进行处理)。总之,在上述实施例中,辅助信息可以包括预测信号和/或残差信号。预测信号从先前译码帧的第i流水线位置获得,并且残差信号在当前帧处理期间应用于第k流水线位置。在一些实施例中,i与k彼此不同。值i和k可以是预定义的,例如在神经网络架构内固定或可以在神经网络架构内配置。例如,值i和k取决于在编码器和解码端推导的条件。或者或另外,值i和k是基于从码流解析的语法元素确定的。
在一些实施例中,k等于i+r,其中,r大于或等于零。这样的示例示出在图17中的一般方案中。图20示例了i=1、i+r=K–1的方案,其中,K是编码器流水线内的NN模块的数量。模块可以表示为块,并且包括一个或多个层。在可能的实现方式中,i等于0,即预测是在信号域(流水线内的第0位置)中执行的。在一些其它可能的实现方式中,i+r等于K,其中,K是编码器流水线内的NN模块的数量。残差译码在瓶颈处执行,即在流水线内的第K位置执行。图18示出了针对i=0、i+r=K的方案。图19示出了针对i=1、i+r=K的方案。
在以上示例中的任一个中,预测信号可以是基于来自一个或多个先前译码帧的第p流水线位置的信息和附加指示的信息计算的。例如,附加指示的信息包括运动信息。例如,残差信号由具有以下两个输入的模块计算:预测信号和流水线内的第k NN模块的输出。在一些实施例中,残差信号被计算为预测信号与流水线内的第k NN模块的输出之间的差值。此外,残差信号的应用由具有以下两个输入的模块执行:残差信号和预测信号。最后,残差信号的应用是通过将残差信号添加至预测信号中执行的。
图23至图25总结了处理流水线的一些可能架构。
图23示出了原始图像、预测和残差位于信号域中(即处于编码神经网络处理的第0级)的示例。将原始图像和预测组合为获得的残差。残差用包括超先验的VAE编码。结果是包括经译码残差并且可能包括一些边信息的码流。解码端是码流的输入端。解码器在这里是输出重建残差的具有超先验的VAE。重建残差可以与预测信号组合以获得重建图像。重建图像可以进一步与原始图像进行比较,例如通过应用距离量度,例如客观或感知质量量度。
图24示出了原始图像、预测和残差位于潜在空间域中(即处于编码神经网络处理的第1级)的示例。在这种情况下,原始图像和预测首先由VAE编码器的一个或多个层处理,然后被组合以获得潜在空间域中的残差。这些由超先验编码器编码,并且由此产生码流。码流可以由超先验解码器解码以获得重建潜在空间残差。重建潜在空间残差在潜在空间域中与预测(也在潜在空间域中)组合,从而获得重建图像特征张量,该重建图像特征张量被输入至VAE解码器以获得重建图像。重建图像可以进一步与原始图像进行比较,例如通过应用距离量度,例如客观或感知质量量度。
图25示出了由VAE编码器编码的示例性原始图像,然后通过将编码图像与从前一帧的潜在空间获得的预测相减(或组合)获得潜在空间中的残差。使用超先验编码器将残差编码至码流中。码流可以由超先验解码器解码,从而获得潜在空间中的重建残差。这些重建残差与从前一帧的潜在空间获得的预测组合,并且以此方式获得潜在空间中的重建图像特征张量。通过使用VAE解码器对获得的重建图像特征张量进行变换,得到重建图像。重建图像可以进一步与原始图像进行比较,例如通过应用距离量度,例如客观或感知质量量度。
这三种架构中的任一种都可以是采用如上所述的实施例和示例性实现方式的基础。这些架构包括VAE编码器和解码器。但是,通常,本发明不限于具有超先验的VAE。算术编码的符号概率估计的其它方法也是可以应用的。例如,可以使用基于上下文的方法。在这种情况下,关于先前解码的样本的信息另外由符号概率估计NN使用。在图13中描述了具有上下文方法的概率估计NN的示例。
一些实施例的概要
本申请提供了用于使用具有两个或两个以上层的神经网络处理图像数据或图像特征数据的方法和装置。本发明可应用于基于人工智能(artificial intelligence,AI)的视频或图像压缩技术领域,尤其应用于基于神经网络的视频压缩技术领域。根据一些实施例,所述神经网络内可以输入辅助信息进行处理的位置是可以基于收集条件选择的。所述收集条件可以评估是否满足了某些先决条件。由于神经网络可配置性的灵活性增加,一些优点可以包括在速率和/或公开方面实现更好的性能。
根据第一方面,本发明涉及一种用于使用包括多个神经网络层的神经网络处理码流中的图像特征数据的方法。所述方法包括:从所述码流获得所述图像特征数据;使用所述神经网络处理所述图像特征数据,其中,对于所述神经网络内的一个或多个预配置位置中的每个预配置位置,所述处理包括:基于收集条件,确定是否要收集辅助数据以供所述预配置位置处的所述多个神经网络层中的一个层处理,并且在确定要收集所述辅助数据的情况下,使用所述预配置位置处的所述层进行的处理基于所述辅助数据。
所述预配置位置是所述神经网络内的可以收集所述辅助信息的位置。在上述确定步骤中确定是否在特定预配置位置中实际收集到所述辅助信息。术语“位置”是指所述神经网络内的节点。节点对应于被输入至层(或层块或模块,取决于所述神经网络的架构)和/或从所述层输出的特征张量。具体地,它可以由处理方向上的位置之前的神经网络层的数量指定。
所述辅助信息是被添加至所述神经网络的与所述图像数据或图像特征数据相关的任何信息。这样的信息可以被输入至所述神经网络以进一步改进所述处理。在下面的示例性实现方式中提供了所述辅助信息的一些特定示例。
收集条件是为了将所述辅助数据输入至特定预配置位置而需要满足的条件或先决条件。所述收集条件可以包括将一些图像特性或图像特征特性与阈值进行比较,以确定是否要收集某一位置的辅助信息。所述图像特性或图像特征特性对于所述编码器和所述解码器可以是已知的,使得不需要附加指示。或者或另外,所述收集条件可以由编码端借助于设置是否针对预配置位置收集所述辅助信息的指示符来进行配置。所述指示符可以提供在所述解码器处可用的码流内。
对将辅助信息输入至神经网络的位置进行配置可以提高灵活性,并且支持动态神经网络架构改变。这样的灵活性可以实现基于收集条件的更好的自适应,并且实现更高效的编码和/或解码。
在可能的实现方式中,作为在所述确定中应用所述收集条件的结果,针对所述一个或多个预配置位置中的单个预配置位置收集所述辅助数据。
这样的实现方式提供了类似于为特定辅助信息选择所述神经网络中的要收集所述辅助信息的位置的效果。这使得能够将根据译码效率等某些标准可能最适合的辅助提供给该位置,所述标准可以包括处理时间或复杂性和/或速率或失真。
在可能的替代实现方式中,作为在所述确定中应用所述收集条件的结果,针对所述预配置位置中的多于一个预配置位置收集所述辅助数据。
作为上述实现方式的替代的这样的实现方式可以确保所述辅助信息在可能从中受益的任何层上可用。它可以进一步增加所述网络的可配置性,从而提高所述网络的灵活性。
在可能的实现方式中,存在多于一个所述预配置位置(所述处理是针对两个或两个以上预配置位置执行的);所述辅助数据在大小上是可收缩的,以匹配由所述层在所述预配置位置中的两个或两个以上处理的输入通道的维度;并且作为在所述确定中应用所述收集条件的结果,所述辅助数据针对所述预配置位置中的单个预配置位置(i)被收集或(ii)被收集并缩放。
因此,所述辅助数据可以被适当地缩放,以使其能够与所述特征数据组合。这样的缩放支持提供可能来自不同级或来源的各种辅助信息。
在可能的实现方式中,所述收集条件基于从所述码流获得的图像特性或图像特征数据特性。
此实现方式实现了所述神经网络的内容自适应,并且可以提高由所述神经网络执行的编码或解码或其它处理的性能。
在可能的实现方式中,所述图像特性或所述图像特征数据特性包括分辨率;并且所述收集条件包括所述分辨率与预配置分辨率阈值的比较。
分辨率是合适的决策基础,因为它影响详细特征的水平,当进一步下采样或以其它方式有损处理时,这些特征可能会导致质量下降。
在可能的实现方式中,所述图像是视频图像,并且所述图像特性包括图像类型;并且所述收集条件包括确定所述图像类型是时间预测的图像类型还是空间预测的图像类型。
图像类型是合适的决策基础,因为它影响预测的质量。此外,期望以更高质量对帧内图像进行编码,因为它也可能影响通常利用经帧内译码图像作为时间预测的参考的帧间图像。
根据示例性实现方式,所述方法还包括:从所述码流获得针对所述一个或多个预配置位置指定是否要收集所述辅助数据的指示,并且用于所述一个或多个预配置位置中的每个预配置位置的收集条件如下:如果所述指示针对所述预配置位置指定要收集所述辅助数据,则所述确定是肯定的;并且如果所述指示针对所述预配置位置指定不要收集所述辅助数据,则确定是否定的。
所述一个或多个收集位置的显式指示进一步增加了可配置性,并且能够更紧密地适应所述图像的内容,即使所述一个或多个预定义收集条件可能无法捕获内容。
在可能的实现方式中,所述辅助数据提供关于由所述神经网络处理以生成输出的所述图像特征数据的信息。
提供关于所述图像特征数据的附加信息可以改进重建处理和/或其它种类的处理。根据处理类型,不同辅助信息可以是相关的并且被应用。
在可能的实现方式中,所述辅助数据包括预测数据,所述预测数据是所述图像的预测或由所述神经网络的一个或多个层处理后的图像特征数据的预测。
运动图像(视频)译码效率可能在很大程度上取决于从相邻图像去除时间相关性。因此,提供预测数据或预测误差数据可以改进神经网络处理。
在可能的实现方式中,所述辅助数据是所述预测数据与要与所述预测数据组合的补充数据的耦合对。
在同一域中收集所述预测和所述预测误差可以提供相对简单且有效的收集级选择方式。
在可能的实现方式中,所述预测数据和所述补充数据具有所述神经网络中的相互不同位置处的层处理的数据的维度。
换句话说,预测可以在与提供所述预测残差或其它补充信息的级不同的级中提供。因此,通过更好地适应内容,可以实现效率。
在可能的实现方式中,所述神经网络包括用于使用至少一个层进行无损解码的子网,并且辅助数据被输入至所述子网中用于无损解码。
具有超先验的变分自动编码器最近被投入使用,并且可以高效地由所述超先验的条件收集(基于所述收集条件)支持。在一些情况下,所述子网用于推导所述概率模型参数可能是有益的(产生更紧凑的码流)。在其它情况下,如果默认或基于上下文的概率模型已经工作良好,则它可能在计算上过于昂贵。
在可能的实现方式中,所述训练神经网络执行以下各项中的至少一个:静态图像解码、视频图像解码、静态图像滤波、视频图像滤波和包括对象检测、对象识别或对象分类的机器视觉处理。
这种实现方式能够为许多重要应用部署本文所描述的方法,这些应用可能受益于灵活的辅助信息位置(以及可能的分辨率)。
在一个实施例中,所述方法针对包括第一辅助数据和第二辅助数据的多个辅助数据中的每个辅助数据执行,其中,所述第一辅助数据与一个或多个预配置位置的第一集合相关联,并且所述第二辅助数据与一个或多个预配置位置的第二集合相关联。
这使得所述神经网络能够高效地收集多于一种类型的辅助信息,即使它们相当不同,例如,预测相关辅助信息和无损译码相关辅助信息,这些辅助信息将自然地用于不同位置。
在可能的实现方式中,一个或多个预配置位置的所述第一集合与一个或多个预配置的所述第二集合位置共享至少一个预配置位置。
这是可能适用于某些应用的示例性实现方式。例如,在预测和预测误差的情况下,所有预配置位置都可以共享。
在可能的实现方式中,所述神经网络被训练以执行视频图像的处理;并且所述确定是否要收集辅助数据以供所述预配置位置处的层处理是针对每预定数量的视频图像执行的,其中,视频图像的预定数量是一个或多个。
为收集位置自适应设置一些粒度可以有助于效率,因为它可能涉及更低的复杂度,并且在一些实施例中涉及更少的指示开销。
根据第二方面,本发明涉及一种用于使用包括多个神经网络层的神经网络处理图像以生成码流的方法。所述方法包括用所述神经网络处理所述图像。所述处理包括对于所述神经网络内的一个或多个预配置位置中的每个预配置位置:基于收集条件,确定是否要收集辅助数据以供所述预配置位置处的层处理;并且在确定要收集所述辅助数据的情况下,使用所述预配置位置处的所述层进行的处理基于所述辅助数据。所述方法还包括将通过所述神经网络处理所述图像获得的数据插入至所述码流中。
本发明的编码部分可以提供与上述解码部分相同的优点。所述编码器准备所述码流并且将其提供给所述解码器,使得所述解码器可以考虑到期望的质量和应用对所述数据进行解码或重建。
为了避免冗余,为对应解码处理提供的优点以类似的方式适用于编码。
在可能的实现方式中,作为在所述确定中应用所述收集条件的结果,针对所述一个或多个预配置位置中的单个预配置位置收集所述辅助数据。
在可能的实现方式中,作为在所述确定中应用所述收集条件的结果,针对所述预配置位置中的多于一个预配置位置收集所述辅助数据。
在可能的实现方式中,存在多于一个所述预配置位置(所述处理是针对两个或两个以上预配置位置执行的);所述辅助数据在大小上是可收缩的,以匹配由所述层在所述预配置位置中的两个或两个以上处理的输入通道的维度;并且作为在所述确定中应用所述收集条件的结果,所述辅助数据针对所述预配置位置中的单个预配置位置(i)被收集或(ii)被收集并缩放。
在可能的实现方式中,所述收集条件是基于包括到所述码流中图像特性或图像特征数据特性的。
在可能的实现方式中,所述图像特性或所述图像特征数据特性包括分辨率;并且所述收集条件包括所述分辨率与预配置分辨率阈值的比较。
在可能的实现方式中,所述图像是视频图像,并且所述图像特性包括图像类型;并且所述收集条件包括确定所述图像类型是时间预测的图像类型还是空间预测的图像类型。
在一些实施例中,所述方法还包括:生成针对所述一个或多个预配置位置指定是否要收集所述辅助数据的指示并且将所述指示包括到所述码流中。
根据示例性实现方式,所述方法还包括:基于成本函数的优化针对一个或多个预配置位置选择是否要收集所述辅助数据的步骤,所述成本函数包括速率、失真、精度、速度或复杂度中的至少一个。
基于成本函数确定用于收集的位置可以提高所述神经网络和结果对期望要求的适应性。因此,这样的优化可以提高性能。结合指示如此获得的收集位置,灵活性进一步提高。
在可能的实现方式中,所述辅助数据提供关于由所述神经网络处理以生成输出的所述图像特征数据的信息。
在可能的实现方式中,所述辅助数据包括预测数据,所述预测数据是所述图像的预测或由所述神经网络的一个或多个层处理后的图像特征数据的预测。
在可能的实现方式中,所述辅助数据是所述预测数据与要与所述预测数据组合的补充数据的耦合对。
在可能的实现方式中,所述预测数据和所述补充数据具有所述神经网络中的相互不同位置处的层处理的数据的维度。
在可能的实现方式中,所述神经网络包括用于使用至少一个层进行无损解码的子网,并且辅助数据被输入至所述子网中用于无损解码。
在可能的实现方式中,所述训练神经网络执行静态图像编码、视频图像编码、静态图像滤波、视频图像滤波和包括对象检测、对象识别或对象分类的机器视觉处理中的至少一个。
根据示例性实现方式,所述方法针对包括第一辅助数据和第二辅助数据的多个辅助数据中的每个辅助数据执行,其中,所述第一辅助数据与一个或多个预配置位置的第一集合相关联,并且所述第二辅助数据与一个或多个预配置位置的第二集合相关联。
在可能的实现方式中,一个或多个预配置位置的所述第一集合与一个或多个预配置的所述第二集合位置共享至少一个预配置位置。
在可能的实现方式中,所述神经网络被训练以执行视频图像的处理;并且所述确定是否要收集辅助数据以供所述预配置位置处的层处理是针对每预定数量的视频图像执行的,其中,视频图像的预定数量是一个或多个。
根据第三方面,本发明涉及一种用于使用包括多个神经网络层的神经网络处理码流中的图像特征数据的装置。所述装置包括处理电路,所述处理电路用于从所述码流获得所述图像特征数据;使用所述神经网络处理所述图像特征数据,其中,对于所述神经网络内的一个或多个预配置位置中的每个预配置位置。所述处理包括:基于收集条件,确定是否要收集辅助数据以供所述多个神经网络层中的一个在所述预配置位置处处理,并且在确定要收集所述辅助数据的情况下,使用所述预配置位置处的所述层进行的处理基于所述辅助数据。
为了本发明的有利效果,参考所述第一方面的描述。本文不再赘述。所述解码装置具有实现所述第一方面的所述方法示例中的动作的功能。所述功能可以通过硬件实现,也可以通过硬件执行对应软件实现。所述硬件或软件包括对应于上述功能的一个或多个模块。在可能的实现方式中,所述解码装置包括:特征数据输入模块,用于从所述码流获得所述图像特征数据;神经网络模块,用于执行上述处理。这些模块可以执行所述第一方面的所述方法示例中的对应功能。对于细节,参考所述方法示例中的详细描述。本文不再赘述。
根据第四方面,本发明涉及一种用于使用包括多个神经网络层的神经网络处理图像以生成码流的装置。所述装置包括:处理电路,用于:使用所述神经网络处理所述图像,其中,所述处理包括对于所述神经网络内的一个或多个预配置位置中的每个预配置位置:基于收集条件,确定是否要收集辅助数据以供所述预配置位置处的层处理,并且在确定要收集所述辅助数据的情况下,使用所述预配置位置处的所述层进行的处理基于所述辅助数据;将通过所述神经网络处理所述图像获得的数据插入至所述码流中。
对于本发明的有利效果,参考所述第二方面的描述。本文不再赘述。所述编码装置具有实现所述第二方面的所述方法示例中的动作的功能。所述功能可以通过硬件实现,也可以通过硬件执行对应软件实现。所述硬件或软件包括对应于上述功能的一个或多个模块。在可能的实现方式中,所述编码装置包括:神经网络模块,用于执行上述处理;码流输出模块,用于将通过神经网络处理所述图像获得的数据插入至所述码流中并且输出所述码流。这些模块可以执行所述第二方面的所述方法示例中的对应功能。对于细节,参考所述方法示例中的详细描述。本文不再赘述。
根据本发明的所述第一方面的所述方法可以由根据本发明的所述第三方面的所述装置执行。根据本发明的所述第一方面的所述方法的其它特征和实现方式直接取决于根据本发明的所述第三方面的所述装置的功能和实现方式。
根据本发明的所述第二方面的所述方法可以由根据本发明的所述第四方面的所述装置执行。根据本发明的所述第二方面的所述方法的其它特征和实现方式直接取决于根据本发明的所述第四方面的所述装置的功能和实现方式。
根据第五方面,本发明涉及一种包括处理器和存储器的视频流解码装置。所述存储器存储使所述处理器执行根据所述第一方面的所述方法的指令。
根据第六方面,本发明涉及一种包括处理器和存储器的视频流编码装置。所述存储器存储使所述处理器执行根据所述第二方面的所述方法的指令。
根据第七方面,提出了一种上面存储有指令的计算机可读存储介质,所述指令在被执行时使一个或多个处理器对视频数据进行编码。所述指令使所述一个或多个处理器执行根据所述第一方面或所述第二方面的所述方法或所述第一方面或所述第二方面的任何可能实施例。
根据第八方面,本发明涉及一种计算机程序产品,包括用于在计算机上执行时执行根据所述第一方面或所述第二方面的所述方法或所述第一方面或所述第二方面的任何可能实施例的程序代码。
在软件和硬件中实现
在视频译码系统10的以下实施例中,基于图26和图27描述视频编码器20和视频解码器30。
图26是可以利用本申请的技术的示例性译码系统10(例如,视频译码系统10(或简称为译码系统10))的示意性框图。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)是可以用于根据本申请中描述的各种示例执行各种技术的设备的两个示例。视频编码器20和视频解码器30可以使用(包括或是)如以上实施例和示例中描述的神经网络来实现。系统10的剩余部分可以但不必由神经网络实现。
如图26所示,译码系统10包括源设备12,该源设备12用于将经编码图像数据21例如提供给目的地设备14,以对经编码图像数据13进行解码。
源设备12包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
图像源16可以包括或者可以是任何类型的图像捕获设备,例如,用于捕获现实世界图像的相机,和/或任何类型的图像生成设备,例如,用于生成计算机动画图像的计算机图形处理器,或用于获取和/或提供现实世界图像、计算机生成的图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像)和/或其任意组合(例如增强现实(augmentedreality,AR)图像)的其它设备。图像源可以是存储任一上述图像的任何类型的存储器(memory/storage)。
为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17并且对图像数据17执行预处理以获得经预处理的图像19或经预处理的图像数据19。预处理器18执行的预处理可以例如包括修剪(trimming)、颜色格式转换(例如从RGB转换为YCbCr)、调色或去噪等。可以理解的是,预处理单元18可以是可选组件。可以理解的是,预处理单元18可以是可选组件。
视频编码器20用于接收经预处理的图像数据19并且提供经编码图像数据21(另外的细节在上面例如基于图1至图25加以描述)。
源设备12中的通信接口22可以用于接收经编码图像数据21,并且通过通信通道13将经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据)发送给另一个设备,例如,目的地设备14或任何其它设备,以便进行存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14中的通信接口28用于从源设备12或从存储设备(例如经编码图像数据存储设备)等任何其它源直接接收经编码图像数据21(或对经编码图像数据21进一步处理后得到的数据),并且将经编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接)、通过任何类型的网络(例如,有线网络或无线网络或其任何组合、任何类型的私网和公网或其任何类型的组合)传输或接收经编码图像数据21或经编码数据13。
例如,通信接口22可以用于将经编码图像数据21封装成合适的格式(例如数据包)和/或通过任何类型的传输编码或处理方式处理经编码图像数据,以便通过通信链路或通信网络进行传输。
形成通信接口22的对应部分的通信接口28可例如用于接收传输的数据并使用任何类型的对应传输解码或处理和/或解包来处理传输数据,以获得经编码图像数据21。
通信接口22和通信接口28都可以用于图26中的从源设备12指向目的地设备14的通信通道13的箭头所表示的单向通信接口,或者用于双向通信接口并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码图像数据传输)相关的任何其它信息等。
视频编码器(或解码器)30用于接收经编码图像数据21并且提供经解码图像数据31或经解码图像31(另外的细节在上面例如基于图1至图25加以描述)。
目的地设备14的后处理器32用于对经解码图像数据31(也称为重建图像数据)(例如,经解码图像31)进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。由后处理单元32执行的后处理可以包括颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样、或任何其它处理,以便准备好经解码图像数据31来例如由显示设备34显示。
目的地设备14中的显示设备34用于接收经后处理的图像数据33,以便向例如用户或观看者显示图像。显示设备34可以是或可以包括用于表示重建图像的任何类型的显示器,例如集成或外部显示器或显示屏。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶(liquid crystal on silicon,LCoS)显示器、数字光处理器(digital light processor,DLP)或任何类型的其它显示器。
译码系统10还包括训练引擎25。训练引擎25用于训练编码器20(特别是编码器20中的神经网络模块)或解码器30(特别是解码器30中的神经网络模块)处理输入图像、图像区域或图像块。需要说明的是,上面描述的实施例和示例是针对处理图像(有时称为帧)的神经网络解释的。但是,本发明也适用于任何其它粒度:在编码和解码期间,全图像的部分(区域)可以作为图像加以处理。
需要说明的是,训练引擎不需要在本发明的系统中提供,因为基于神经网络的实施例可以采用预训练的网络。
训练数据可以存储在数据库(未示出)中。训练引擎25根据训练数据进行训练,以得到目标模型(例如,目标模型可以是用于对象识别、对象分类、图像分割或图像编码重建等的神经网络)。需要说明的是,本申请的实施例对训练数据的来源不做限定。例如,可以从云端或其它地方获得训练数据进行模型训练。
通过训练引擎25训练获得的目标模型可以应用于译码系统10和40,例如应用于图26所示的源设备12(例如编码器20)或目的地设备14(例如解码器30)。训练引擎25可以通过在云端训练得到目标模型,而译码系统10从云端下载目标模型并且使用目标模型。或者,训练引擎25可以通过在云端训练得到目标模型并且使用目标模型,而译码系统10直接从云端获得处理结果。
尽管图26将源设备12和目的地设备14描述为单独的设备,但是设备的实施例可以还包括两种设备或两种功能,即源设备12或对应功能以及目的地设备14或对应功能。在这些实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
如基于描述对技术人员来说将是显而易见的,如图26所示的源设备12和/或目的地设备14内的不同单元或功能的存在和(准确)划分的可能取决于实际设备和应用而有所不同。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或编码器20和解码器30两者都可通过如图27所示的处理电路实现,如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以体现关于编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以体现关于解码器30和/或本文描述的任何其它解码器系统或子系统所讨论的各种模块。处理电路可以用于执行下文论述的各种操作。如图29所示,如果技术部分地以软件实现,则设备可将用于软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件方式执行指令以执行本发明的技术。视频编码器20或视频解码器30可以作为组合编码器/解码器(encoder/decoder,CODEC)的一部分集成在单个设备中,如图27所示。
源设备12和目的地设备14可以包括多种设备中的任何一种,包括任何类型的手持式或固定式设备,例如笔记本或手提电脑、移动电话、智能电话、平板电脑或平板计算机、相机、台式计算机、机顶盒、电视、显示设备、数字介质播放器、视频游戏机、视频流设备(例如内容服务服务器或内容传送服务器)、广播接收设备、广播发射设备等,并且可不使用任何操作系统。在一些情况下,源设备12和目的地设备14可以被配备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图26所示的视频译码系统10仅仅是示例性的,并且本申请提供的技术可以适用于视频译码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器检索、通过网络流式传输,等等。视频编码设备可以对数据进行编码并且将编码数据存储至存储器中,并且/或者视频解码设备可以从存储器检索数据并且对数据进行解码。在一些示例中,编码和解码由相互不通信而是仅仅将数据编码到存储器和/或从存储器检索数据并且对数据进行解码的设备执行。
图27是根据示例性实施例的包括编码器20和/或解码器30的视频译码系统40的示例的说明性示意图。视频译码系统40可以包括成像设备41、视频编码器20、视频解码器30(和/或由处理电路46实现的视频编码器/解码器)、天线42、一个或多个处理器43、一个或多个存储器44和/或显示设备45。
如图27所示,成像设备41、天线42、处理电路46、视频编码器20、视频解码器30、处理器43、存储器44和/或显示设备45可以相互通信。在不同示例中,视频译码系统40可以仅包括视频编码器20或仅包括视频解码器30。
在一些示例中,天线42可以用于传输或接收视频数据的经编码码流。此外,在一些示例中,显示设备45可以用于呈现视频数据。处理电路46可以包括专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频译码系统40可以还包括可选的处理器43。可选的处理器43类似地可以包括专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。此外,存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,SRAM)或动态随机存取存储器(dynamic random accessmemory,DRAM)或非易失性存储器(例如,闪存)。在非限制性示例中,存储器44可以由高速缓冲存储器实现。在其它示例中,逻辑电路47和/或处理电路46可以包括用于实现图像缓冲器的存储器(例如,高速缓存)。
在一些示例中,通过使用逻辑电路实现的视频编码器20可以包括图像缓冲器(例如由处理电路46或存储器44实现)和图形处理单元(例如由处理电路46实现)。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包括通过逻辑电路46实现的视频编码器20,以体现本文所述的各种功能模块。逻辑电路可以用于执行本说明书中描述的各种操作。
在一些示例中,解码器30可以由逻辑电路46以类似的方式实现,以实现参考解码器30和/或本文中描述的任何其它解码器系统或子系统所描述的各种模块。在一些示例中,通过使用逻辑电路实现的解码器30可以包括图像缓冲器(由处理电路46或存储器44实现)和图形处理单元(例如由处理电路46实现)。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包括通过逻辑电路46实现的视频编码器30,以体现本文所述的各种模块。
在一些示例中,天线42可以用于接收视频数据的经编码码流。如上所述,经编码码流可以包括与本文中描述的视频帧译码相关的数据、指示符、索引值、模式选择数据等,例如与译码分割相关的数据(例如,变换系数或经量化变换系数、可选指示符(如所描述)和/或定义译码分割的数据)。视频译码系统40可以还包括耦合至天线42并且用于对经编码码流进行解码的解码器30。显示设备45用于呈现视频帧。
应当理解,在本申请的实施例中,结合参考编码器20所描述的示例,解码器30可以用于执行反向过程。关于指示语法元素,解码器30可以用于接收和解析这样的语法元素,并且对应地对相关视频数据进行解码。在一些示例中,编码器20可以将语法元素熵编码为经编码视频码流。在这样的示例中,解码器30可以解析这样的语法元素并且相应地对相关视频数据进行解码。
图28是根据本发明的实施例的视频译码设备400的示意图。视频译码设备400适用于实现本文中描述的公开的实施例。在一个实施例中,视频译码设备400可以是解码器,例如图26的视频解码器30,或编码器,例如图26的视频编码器20。如上所述,当参考本文的图像(视频)编码器和解码器时,它不一定是为人类观众提供图像数据编码解码(包括重建)的编码器和解码器。相反,编码器可以提供码流,并且解码器可以对图像数据或图像特征数据进行解码以用于计算机视觉任务。
视频译码设备400包括用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420,用于处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)430;用于传输数据的发送单元(Tx)440和出端口450(或输出端口450)以及用于存储数据的存储器460。视频译码设备400可以还包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430由硬件和软件实现。处理器430可以被实现为一个或多个CPU芯片、一个或多个核(例如多核处理器)、一个或多个FPGA、一个或多个ASIC和一个或多个DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470(例如,基于神经网络(neural network,NN)的译码模块470)。译码模块470实现上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,包括编码/解码模块470为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的切换。或者,译码模块470被实现为存储在存储器460中并且由处理器430执行的指令。
存储器460包括一个或多个磁盘、磁带驱动器和固态驱动器,并且可用作溢出数据存储设备,以在选择要执行的程序时存储程序,并存储在程序执行期间读取的指令和数据。存储器460可以是易失性的和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容可寻址存储器(ternarycontent-addressable memory,TCAM)和/或静态随机存取存储器(static random-accessmemory,SRAM)。
图29是根据示例性实施例的可用作图26中的源设备12和目的地设备14中的任一个或两者的装置500的简化框图。
装置500中的处理器502可以是中央处理单元。或者,处理器502可以是现有的或今后将开发出的能够操作或处理信息的任何其它类型的设备或多个设备。虽然所公开的实现方式可以使用如图所示的处理器502等单个处理器来实施,但使用多于一个处理器可以提高速度和效率。
在一个实现方式中,装置500中的存储器504可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504可以还包括操作系统508和应用程序510,其中,应用程序510包括使得处理器502执行本文描述的方法的至少一个程序。例如,应用程序510可以包括应用程序1至应用程序N,这些程序包括执行本文描述的方法的视频译码应用。
装置500可以还包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是组合显示器与触敏元件的触敏显示器,其中,触敏元件能够用于感测触摸输入。显示器518可以通过总线512耦合至处理器502。
虽然装置500中的总线512在本文被描述为单个总线,但是总线512可以包括多个总线。此外,辅助存储器514可以直接耦合至装置500中的其它组件或可以通过网络被访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以通过多种配置实现。
本申请的实施例涉及神经网络的应用。为了便于理解,下面首先对本申请的实施例中使用的一些名词或术语进行解释。名词或术语也用作本发明的内容的一部分。
(1)神经网络
神经网络(neural network,NN)是一种机器学习模型。神经网络可以包括神经元。神经元可以是以xs和截距1作为输入的操作单元,其中,操作单元的输出可以如下:
其中,s=1、2、……或n,n为大于1的自然数,Ws为xs的权重,并且b为神经元的偏置。f为神经元的激活函数(activation function),并且激活函数用于将非线性特征引入至神经网络中,从而将神经元中的输入信号转换为输出信号。激活函数的输出信号可以用作下一卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多单个神经元连接在一起形成的网络。具体地,一个神经元的输出可以是另一个神经元的输入。每个神经元的输入可以连接至前一层的局部感受野,以提取局部感受野的特征。局部感受野可以是包括几个神经元的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称为多层神经网络,可以被理解为具有许多隐藏层的神经网络。本文的“许多”没有特殊的测量标准。DNN是基于不同层的位置划分的,并且DNN中的神经网络可以分成三种类型:输入层、隐藏层和输出层。通常,第一层是输入层,最后一层是输出层,中间层是隐藏层。这些层完全连接。具体地,第i层的任何神经元当然与第(i+1)层处的任何神经元连接。虽然DNN看起来复杂,但实际上DNN在每一层的工作方面并不复杂,简单地表示为以下线性关系表达式:其中,/>为输入矢量,/>为输出矢量,/>为偏置矢量,W为权重矩阵(也称为系数),并且α()为激活函数。在每一层处,输出矢量/>是通过对输入矢量/>执行如此简单的运算获得的。因为DNN中存在很多层,所以也存在很多系数W和偏置矢量/>DNN中这些参数的定义如下:以系数W为例。假设在三层DNN中,从第二层的第四神经元至第三层的第二神经元的线性系数定义为/>上标3表示系数W所在的层,并且下标对应于输出的第三层索引2和输入的第二层索引4。总之,从(L–1)层处的第k神经元至第L层的第j神经元的系数定义为/>需要说明的是,在输入层处不存在参数W。在深度神经网络中,更多隐藏层使网络更有能力描述现实世界中的复杂案例。理论上,参数数量越多的模型表示复杂度越高并且“容量”越大,并且表示模型可以完成更复杂的学习任务。训练深度神经网络是学习权重矩阵的过程,并且训练的最终目标未获得经过训练的深度神经网络的所有层的权重矩阵(由多层处的矢量W组成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种具有卷积结构的深度神经网络,并且是深度学习(deep learning)架构。在深度学习架构中,多层学习是通过使用机器学习算法在不同的抽象级别执行的。作为深度学习架构,CNN是前馈(feed-forward)人工神经网络。前馈人工神经网络中的神经元可以对输入至神经元中的图像作出响应。卷积神经网络包括由卷积层和池化层组成的特征提取器。特征提取器可以被视为滤波器。卷积过程可以被认为是使用可训练滤波器对输入图像或卷积特征平面(特征图)执行卷积。
卷积层是卷积神经网络中的神经元层,在该神经元层上对输入信号进行卷积处理。卷积层221可以包括多个卷积算子。卷积算子也称为核。在图像处理中,卷积算子充当从输入图像矩阵提取具体信息的滤波器。卷积算子本质上可以是权重矩阵,并且该权重矩阵通常是预定义的。在对图像执行卷积运算的过程中,权重矩阵通常在输入图像的水平方向上处理一个像素(或两个像素,取决于步长(stride)的值)的粒度级别的像素,以从图像提取具体特征。权重矩阵的大小应当与图像的大小相关。需要说明的是,权重矩阵的深度维度(depth dimension)与输入图像的深度维度相同。在卷积运算期间,权重矩阵延伸至输入图像的整个深度。因此,通过使用单个权重矩阵的卷积生成单个深度维度的卷积输出。但是,在大多数情况下,不使用单个权重矩阵,而是应用具有相同大小(行×列)的多个权重矩阵,即多个相同类型的矩阵。权重矩阵的输出被堆叠以形成卷积图像的深度维度。本文的维度可以被理解为基于上述“多个”确定。不同的权重矩阵可以用于从图像提取不同的特征。例如,一个权重矩阵用于提取图像的边信息,另一权重矩阵用于提取图像的具体颜色,并且另外的权重矩阵用于模糊图像中不必要的噪声。多个权重矩阵(行×列)的大小相同。从大小相同的多个权重矩阵提取的特征图的也大小相同,然后大小相同的提取的多个特征图被组合以形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要通过海量的训练得到。利用训练得到的权重值形成的每个权重矩阵可以用于从输入图像提取信息,以使得卷积神经网络能够执行正确的预测。当卷积神经网络具有多个卷积层时,相对较多的一般特征通常在初始卷积层提取到。一般特征也可以称为低级特征。随着卷积神经网络的深度增加,在后续卷积层提取的特征更加复杂,例如高级语义特征。具有高级语义的特征更适用于待解决的问题。
训练参数的数量往往需要减少。因此,通常需要在卷积层之后周期性地引入池化层。一个卷积层后面可以是一个池化层,或者多个卷积层后面可以是一个或多个池化层。在图像处理过程中,池化层仅用于减小图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以对输入图像执行采样,得到大小相对较小的图像。平均池化算子可以用于计算具体范围内图像中的像素值,以生成平均值。平均值用作平均池化结果。最大池化算子可以用于选择具有具体范围内的最大值的像素作为最大池化结果。此外,类似于卷积层的权重矩阵的大小需要与图像的大小相关,池化层处的算子也需要与图像的大小相关。从池化层输出的处理图像的大小可以小于被输入至池化层的图像的大小。从池化层输出的图像中的每个像素表示被输入至池化层的图像的对应子区域的平均值或最大值。
在卷积层/池化层处执行处理后,卷积神经网络并未准备好输出所需的输出信息,因为如上所述,在卷积层/池化层处仅仅提取特征,并且由输入图像产生的参数减少。但是,为了生成最终输出信息(所需的类信息或其它相关信息),卷积神经网络需要使用神经网络层生成一个所需类或一组所需类的输出。因此,卷积神经网络层可以包括多个隐藏层。包括在多个隐藏层中的参数可以是基于具体任务类型的相关训练数据通过预训练得到的。例如,任务类型可以包括图像识别、图像分类和超分辨率图像重建。
可选地,在神经网络层处,多个隐藏层之后是整个卷积神经网络的输出层。输出层具有类似于分类交叉熵的损失函数,并且该损失函数具体用于计算预测误差。一旦整个卷积神经网络的正向传播完成,就开始反向传播以更新上述各层的权重值和偏差,以减少卷积神经网络的损失以及卷积神经网络通过使用输出层输出的结果与理想结果之间的误差。
(4)递归神经网络
递归神经网络(recurrent neural network,RNN)用于处理序列数据。在传统神经网络模型中,从输入层到隐藏层,再到输出层,各层是全连接的,并且每个层处的节点不连接。这样的共同神经网络解决了许多棘手的问题,但仍然无法解决许多其它问题。例如,如果要预测句子中的单词,通常需要使用前一单词,因为句子中的相邻单词不是独立的。RNN称为递归神经网络的原因在于,序列的当前输出也与序列的先前输出相关。一种具体表示形式是,网络记忆先前信息,并将先前信息应用于当前输出的计算。具体地,隐藏层的节点是连接的,并且隐藏层的输入不仅包括输入层的输出,还包括隐藏层在前一时刻的输出。理论上,RNN可以处理具有任何长度的序列数据。RNN的训练与传统CNN或DNN的训练相同。也使用误差反向传播算法,但存在区别:如果RNN被扩展,则RNN的W等参数将被共享。这与上述示例中描述的传统神经网络不同。此外,在使用梯度下降算法时,每个步骤中的输出不仅取决于当前步骤中的网络,而且还取决于前几个步骤中的网络状态。学习算法称为通过时间的反向传播(backward propagation through time,BPTT)算法。
既然有了卷积神经网络,为什么需要递归神经网络?原因很简单。在卷积神经网络中,假设元素彼此独立,输入和输出也是独立的,例如猫和狗。但是,在现实世界中,许多元素是相互关联的。例如,股票会随着时间的推移而变化。又例如,一个人说:我喜欢旅行,我最喜欢的地方是云南。如果有机会,我就去。在这里,人们应该知道这个人将去“云南”。一个原因是人们可以根据上下文的内容推断答案。但是,机器如何做到这一点呢?RNN出现了。RNN的目的是使机器能够像人类一样记忆。因此,RNN的输出需要依赖于当前输入信息和历史记忆信息。
(5)递归残差卷积神经网络(recursive residual convolutional neuronnetwork,RR-CNN)
(5)人工神经网络(artificial neural network,ANN)
(6)损失函数
在训练深度神经网络的过程中,由于期望深度神经网络的输出尽可能接近实际期望的预测值,因此可以将当前网络的预测值与实际期望的目标值进行比较。然后基于预测值与目标值之间的差值更新神经网络每层的权重矢量(当然,在第一次更新之前通常存在初始化过程,具体地,参数对于深度神经网络的所有层都是预配置的)。例如,如果网络的预测值较大,则调整权重矢量以减小预测值,并且持续进行调整,直到深度神经网络能够预测实际期望的目标值或非常接近实际期望的目标值。因此,“如何通过比较获得预测值与目标值之间的差值”需要预定义。这是损失函数(loss function)或目标函数(objectivefunction)。损失函数和目标函数是用于测量预测值与目标值之间的差值的重要等式。以损失函数为例。损失函数的输出值(损失)越高,差值越大。因此,深度神经网络的训练是尽可能减少损失的过程。
(7)反向传播算法
卷积神经网络可以根据误差反向传播(backward propagation,BP)算法对训练过程中的初始超分辨率模型中的参数值进行修正,使得重建超分辨率模型的误差损失变得更小。具体地,输入信号被前传,直到在输出端发生误差损失,并且初始超分辨率模型中的参数是基于反向传播误差损失信息更新的,以使误差损失收敛。反向传播算法是一种以误差损失为中心的反向传播运动,旨在获得最优超分辨率模型的参数,例如权重矩阵。
(8)生成对抗网络
生成对抗网络(generative adversarial network,GAN)是一种深度学习模型。该模型至少包括两个模块:生成模型(generative model)和判别模型(discriminativemodel)。这两个模块相互学习以产生更好的输出。生成模型和判别模型都可以是神经网络,尤其可以是深度神经网络或卷积神经网络。GAN的基本原理如下:以生成图像的GAN为例,假设存在两个网络:G(生成器)和D(判别器)。G是生成图像的网络。G接收随机噪声z,并且使用噪声生成图像,其中,图像表示为G(z)。D是用于确定图像是否“真实”的判别器网络。D的输入参数为x,x表示图像,并且输出D(x)表示x为真实图像的概率。如果D(x)的值为1,则表示图像是100%真实的。如果D(x)的值为0,则表示图像不能是真实的。在训练生成对抗网络的过程中,生成网络G的目标是生成尽可能真实的图像来欺骗判别网络D,并且判别网络D的目标是尽可能区分G生成的图像和真实图像。以这种方式,G与D之间存在动态的“游戏”过程,具体地,“生成对抗网络”中的“对手”。最终游戏结果是,在理想状态下,G可以生成难以与真实图像区分的图像G(z),并且D很难确定G生成的图像是否真实,即D(G(z))=0.5。以这种方式,获得优秀的生成模型G,并且该生成模型G可用于生成图像。
本领域技术人员可以理解,参考本说明书中公开和描述的各种说明性逻辑块、模块和算法步骤所描述的功能可以通过硬件、软件、固件或其任何组合来实现。如果通过软件实现,参考说明性逻辑块、模块和步骤描述的所功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过计算机可读介质传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于数据存储介质等有形介质,或者可以包括有助于计算机程序从一个地方传输至另一个地方(例如,根据通信协议)的任何通信介质。以这种方式,计算机可读介质通常可以对应于:(1)非瞬时性有形计算机可读存储介质,或(2)信号或载波等通信介质。数据存储介质可以是任何可用介质,这些介质可以由一个或多个计算机或一个或多个处理器访问,以检索指令、代码和/或数据结构,从而实现本申请中描述的技术。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁存储装置、闪存或可以用于以指令或数据结构的形式存储所需的程序代码并且可以由计算机访问的任何其它可存储介质。此外,任何连接都被适当地称为计算机可读介质。例如,如果指令是通过同轴电缆、光纤电缆、双绞线、数字用户线(digital subscriber line,DSL)或无线技术(例如红外线、无线电或微波)从网站、服务器或另一种远程源传输的,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(例如红外线、无线电和微波)都包括在介质的定义中。但是,应当理解,计算机可读存储介质和数据存储介质实际上是指非瞬时性有形存储介质,不包括连接、载波、信号或其它瞬时介质。本说明书中使用的磁盘和光盘包括光盘(compact disc,CD)、激光光盘、光盘、数字多功能光盘(igital versatiledisc,DVD)和蓝光光盘。磁盘通常以磁性方式再现数据,而磁盘使用激光以光学方式再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
指令可以通过一个或多个数字信号处理器(digital signal processor,DSP)、通用微处理器、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其它同等集成或离散逻辑电路等一个或多个处理器来执行。因此,本说明书中使用的术语“处理器”可以是上述结构中的任一者,也可以是适用于实现本说明书中描述的技术的任何其它结构。此外,在一些方面,参考本说明书中描述的说明性逻辑块、模块和步骤描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或可以结合在组合的编解码器中。此外,这些技术可以全部在一个或多个电路或逻辑元件中实现。
本申请中的技术可以在各种装置或设备中实现,包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本申请中描述的各种组件、模块或单元是为了强调用于实现所公开技术的装置的功能方面,但不一定由不同的硬件单元实现。实际上,如上所述,各种单元可以与适当的软件和/或固件组合成编解码器硬件单元,或者可以由可互操作的硬件单元(包括如上所述的一个或多个处理器)提供。
上述描述仅仅是本申请的具体实现方式的示例,并不旨在限制本申请的保护范围。在本申请公开的技术范围内,本技术领域的技术人员轻易想到的变化或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求书的保护范围为准。
总之,本发明提供了用于使用具有两个或两个以上层的神经网络处理图像数据或图像特征数据的方法和装置。本发明可应用于基于人工智能(artificial intelligence,AI)的视频或图像压缩技术领域,尤其应用于基于神经网络的视频压缩技术领域。根据一些实施例,在包括由所述神经网络处理等处理期间组合两种数据。所述两种数据是由所述网络从不同处理级获得的。一些优点可以包括神经网络架构具有更大的可扩展性和更灵活的设计,从而可以进一步提高编码/解码性能。

Claims (30)

1.一种用于使用包括两个或两个以上级(K至0)的神经网络(1786)处理码流(1772)中的一个或多个图像的特征数据的方法,其特征在于,所述两个或两个以上级包括第一级(i+r)和第二级(i),所述方法包括:
基于所述码流(1772)获得第一数据(1760),
使用所述神经网络(1786)处理所述第一数据(1760),包括:
从所述神经网络的所述第二级获得基于先前由所述神经网络(1786)处理的数据的第二数据(1765);
将所述第一数据(1760)与所述第二数据(1765)一起使用,以生成所述神经网络的所述第一级的输入,其中,在所述神经网络(1765)的所述特征数据处理中,所述第一级(i+r)位于所述第二级(i)之前;
输出所述处理的结果(1702)。
2.根据权利要求1所述的方法,其特征在于,所述第一数据(1760)是在所述神经网络(1786)的第三级中获得的,在所述神经网络(1786)的所述特征数据处理中,所述第三级在所述第一级和所述第二级之前或等于所述第一级。
3.根据权利要求2所述的方法,其特征在于,所述第一数据(1760)表示预测误差,所述第二数据(1765)表示预测。
4.根据权利要求3所述的方法,其特征在于,所述预测通过以下操作获得:
获得参考特征数据,所述参考特征数据是由所述神经网络(1786)在所述第二级输出的特征数据;
基于所述码流(1790)获得包括与所述参考特征数据相关的运动信息或空间信息的预测信息;
基于所述参考特征数据和所述预测信息生成所述预测。
5.根据权利要求4所述的方法,其特征在于,
所述预测误差是通过使用所述神经网络(1786)处理当前图像获得的;
所述预测信息是运动信息,并且所述参考特征数据是通过所述神经网络(1786)处理表示按解码顺序在所述当前图像之前的图像的图像数据生成的。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述将所述第一数据与所述第二数据(1765)一起使用包括将所述预测或经缩放的预测与所述预测误差或经缩放的预测误差进行逐元素相加。
7.根据权利要求5或6所述的方法,其特征在于,所述运动信息包括运动矢量。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第二级是所述神经网络(1786)的输出。
9.根据权利要求2至8中任一项所述的方法,其特征在于,所述第一级是所述神经网络(1786)的输入。
10.根据权利要求1或2所述的方法,其特征在于,
所述第一级是所述神经网络(1786)的输入;
所述第一数据是熵编码数据;
所述第二级是不同于所述神经网络(1786)的输出级的级;
所述第二数据是与所述第二级的所述特征数据相关的概率模型数据。
11.根据权利要求10所述的方法,其特征在于,所述第二数据是用于所述第一数据的熵解码的概率模型数据。
12.根据权利要求1至11任一项所述的方法,其特征在于,
所述第一级和/或所述第二级的位置可以在所述神经网络(1786)内配置;
所述方法包括根据基于一个或多个图像译码参数的收集条件对所述第一级和/或所述第二级的位置进行配置。
13.根据权利要求1至12任一项所述的方法,其特征在于,还包括:
从所述码流(1772)解析指定所述第一级和/或所述第二级的级选择指示符,
其中,所述第一级和所述第二级在所述神经网络(1786)内的位置是根据所述解析的级选择指示符进行配置的。
14.一种用于使用包括两个或两个以上级的神经网络(1706)处理至少一个图像以生成码流(1772)的方法,其特征在于,所述两个或两个以上级包括第一级和第二级,所述方法包括:
使用所述神经网络(1706)处理所述至少一个图像,包括:
基于所述至少一个图像获得第一数据(1760);
在所述处理的所述第二级获得第二数据(1765),所述第二数据(1765)基于先前由所述神经网络(1706)处理的数据;
将所述第一数据(1760)与所述第二数据(1765)一起使用,以在所述神经网络(1706)的所述第一级生成输入,其中,在所述神经网络(1706)的所述特征数据处理中,所述第一级位于所述第二级之前;
将通过所述处理获得的特征数据包括到所述码流(1772)中。
15.根据权利要求14所述的方法,其特征在于,所述第一数据(1760)是在所述神经网络(1706)的第三级中获得的,在所述神经网络(1706)的所述特征数据处理中,所述第三级在所述第一级和所述第二级之前或等于所述第一级。
16.根据权利要求15所述的方法,其特征在于,所述第一数据(1760)表示预测误差,所述第二数据(1765)表示预测。
17.根据权利要求16所述的方法,其特征在于,所述预测通过以下操作获得:
获得参考特征数据,所述参考特征数据是由所述神经网络(1706)在所述第二级输出的特征数据;
基于所述至少一个图像,获得包括与所述参考特征数据相关的运动信息或空间信息的预测信息;
基于所述参考特征数据和所述预测信息生成所述预测;
将所述获得的预测信息插入至所述码流(1790)中。
18.根据权利要求17所述的方法,其特征在于,
所述预测误差是通过使用所述神经网络(1706)处理当前图像获得的;
所述预测信息是运动信息,并且所述参考特征数据是通过所述神经网络(1706)处理表示按解码顺序在所述当前图像之前的图像的图像数据生成的。
19.根据权利要求15至18中任一项所述的方法,其特征在于,所述将所述第一数据(1760)与所述第二数据(1765)一起使用包括从所述第一数据(1760)或经缩放的第一数据(1760)逐元素减去所述预测或经缩放的预测。
20.根据权利要求18或19所述的方法,其特征在于,所述运动信息包括运动矢量。
21.根据权利要求14至20中任一项所述的方法,其特征在于,所述第二级是所述解码神经网络(1706)的表示重建图像数据的输出。
22.根据权利要求15至21中任一项所述的方法,其特征在于,所述第一级是所述神经网络(1706)的输出。
23.根据权利要求14或15所述的方法,其特征在于,
所述第一级是所述神经网络(1706)的输出;
所述第一数据是待熵编码的经处理数据;
所述第二级是不同于所述神经网络(1706)的输入级的级;
所述第二数据是与所述第二级的所述特征数据相关的概率模型数据。
24.根据权利要求23所述的方法,其特征在于,所述第二数据是用于所述第一数据的熵编码的概率模型数据。
25.根据权利要求1至24任一项所述的方法,其特征在于,
所述第一级和/或所述第二级的位置可以在所述神经网络(1706)内配置;并且
所述方法包括根据基于一个或多个图像译码参数的收集条件对所述第一级和/或所述第二级的位置进行配置。
26.根据权利要求1至25任一项所述的方法,其特征在于,还包括:
确定指定所述第一级和/或所述第二级的级选择指示符并且将所述级选择指示符包括到所述码流(1772)中,
其中,所述第一级和所述第二级在所述神经网络(1706)内的位置是根据所述确定的级选择指示符进行配置的。
27.根据权利要求26所述的方法,其特征在于,所述级选择指示符的所述确定基于根据成本函数执行的优化过程,所述成本函数包括速率、失真、时延、精度和复杂度中的一个或多个。
28.一种存储在计算机可读非瞬时性介质(540)上并且包括代码指令的计算机程序(510),其特征在于,所述代码指令当在一个或多个处理器上执行时使所述一个或多个处理器执行根据权利要求1至27中任一项所述的方法。
29.一种用于使用包括两个或两个以上级的神经网络(1786)处理码流(1772)中的一个或多个图像的特征数据的装置,其特征在于,所述两个或两个以上级包括第一级和第二级,所述装置包括:
处理电路,用于:
基于所述码流(1772)获得第一数据(1760),
使用所述神经网络(1786)处理所述第一数据(1760),包括:
从所述神经网络(1786)的所述第二级获得基于先前由所述神经网络(1786)处理的数据的第二数据(1765);
将所述第一数据(1760)与所述第二数据(1765)一起使用,以生成所述神经网络(1786)的所述第一级的输入,其中,在所述神经网络(1786)的所述特征数据处理中,所述第一级位于所述第二级之前;
输出所述处理的结果。
30.一种用于使用包括两个或两个以上级的神经网络(1706)处理至少一个图像以生成码流(1772)的装置,其特征在于,所述两个或两个以上级包括第一级和第二级,所述装置包括:
处理电路,用于:
使用所述神经网络(1706)处理所述至少一个图像,包括:
基于所述至少一个图像获得第一数据(1760);
在所述处理的所述第二级获得第二数据(1765),所述第二数据(1765)基于先前由所述神经网络(1706)处理的数据;
将所述第一数据(1760)与所述第二数据(1765)一起使用,以在所述神经网络(1706)的所述第一级生成输入,其中,在所述神经网络(1706)的所述特征数据处理中,所述第一级位于所述第二级之前;
将通过所述处理获得的特征数据包括到所述码流(1772)中。
CN202180096510.1A 2021-04-01 2021-04-01 基于神经网络的图像处理中的辅助信息的独立定位 Pending CN117321989A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2021/000137 WO2022211658A1 (en) 2021-04-01 2021-04-01 Independent positioning of auxiliary information in neural network based picture processing

Publications (1)

Publication Number Publication Date
CN117321989A true CN117321989A (zh) 2023-12-29

Family

ID=75954235

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180096510.1A Pending CN117321989A (zh) 2021-04-01 2021-04-01 基于神经网络的图像处理中的辅助信息的独立定位

Country Status (5)

Country Link
EP (1) EP4272437A1 (zh)
JP (1) JP2024511587A (zh)
KR (1) KR20230145096A (zh)
CN (1) CN117321989A (zh)
WO (1) WO2022211658A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024083250A1 (en) * 2022-10-21 2024-04-25 Douyin Vision Co., Ltd. Method, apparatus, and medium for video processing

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10979718B2 (en) * 2017-09-01 2021-04-13 Apple Inc. Machine learning video processing systems and methods

Also Published As

Publication number Publication date
WO2022211658A1 (en) 2022-10-06
JP2024511587A (ja) 2024-03-14
KR20230145096A (ko) 2023-10-17
WO2022211658A8 (en) 2023-11-30
EP4272437A1 (en) 2023-11-08

Similar Documents

Publication Publication Date Title
US20230209096A1 (en) Loop filtering method and apparatus
WO2022128105A1 (en) Decoding and encoding of neural-network-based bitstreams
JP2023548507A (ja) セグメンテーション情報のシグナリングを用いた復号化
WO2022106013A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20240037802A1 (en) Configurable positions for auxiliary information input into a picture data processing neural network
CN115604485A (zh) 视频图像的解码方法及装置
CN115442609A (zh) 特征数据编解码方法和装置
CN114915783A (zh) 编码方法和装置
WO2022106014A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
WO2023193629A1 (zh) 区域增强层的编解码方法和装置
TWI826160B (zh) 圖像編解碼方法和裝置
CN117321989A (zh) 基于神经网络的图像处理中的辅助信息的独立定位
US20240161488A1 (en) Independent positioning of auxiliary information in neural network based picture processing
CN115118972A (zh) 视频图像的编解码方法及相关设备
TWI834087B (zh) 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品
US20240015314A1 (en) Method and apparatus for encoding or decoding a picture using a neural network
CN116797674A (zh) 图像编解码方法和装置
WO2024002497A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
WO2024002496A1 (en) Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
WO2023091040A1 (en) Generalized difference coder for residual coding in video compression
WO2023172153A1 (en) Method of video coding by multi-modal processing
CN115604486A (zh) 视频图像的编解码方法及装置
EP4226633A1 (en) A method and apparatus for encoding or decoding a picture using a neural network comprising sub-networks
CN116743993A (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