CN116917926A - 特征图数据的指示 - Google Patents

特征图数据的指示 Download PDF

Info

Publication number
CN116917926A
CN116917926A CN202180071715.4A CN202180071715A CN116917926A CN 116917926 A CN116917926 A CN 116917926A CN 202180071715 A CN202180071715 A CN 202180071715A CN 116917926 A CN116917926 A CN 116917926A
Authority
CN
China
Prior art keywords
region
feature map
code stream
decoding
indicator
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
CN202180071715.4A
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 CN116917926A publication Critical patent/CN116917926A/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/167Position within a video image, e.g. region of interest [ROI]
    • 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/17Methods 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 an image region, e.g. an object
    • 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/17Methods 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 an image region, e.g. an object
    • H04N19/176Methods 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 an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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
    • 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
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明涉及一种用于采用神经网络的系统的特征图信息的高效指示。特别地,在解码器侧,根据从码流中解析的信息,获取存在指示符。根据所述获取的存在指示符的值,解析与特征图区域相关的其它数据或不进行所述解析。例如,所述存在指示符可以是表示所述码流中是否包括特征图数据的区域存在指示符,或者可以是表示所述码流中是否包括与所述特征图数据相关的边信息。类似地,本发明提供了一种编码方法以及编码和解码设备。因此,可以更高效地处理所述特征图数据,包括通过应用旁路降低解码复杂性以及减少传输数据的量。

Description

特征图数据的指示
技术领域
本发明的实施例大体上涉及与神经网络处理有关的指示(signal)信息领域,例如,特征图或其它边信息。
背景技术
几十年来,混合图像和视频编解码器一直被用于压缩图像和视频数据。在这种编解码器中,通常通过对块进行预测和通过对原始块与其预测块之间的差异进行译码来逐块对信号进行编码。具体地,这种译码可以包括变换、量化和生成码流,通常包括一些熵译码。通常,混合译码方法的三个组成部分——变换、量化和熵译码——分别进行优化。现代视频压缩标准,如高效视频编码(High-Efficiency Video Coding,HEVC)、通用视频编码(Versatile Video Coding,VVC)和基本视频编码(Essential Video Coding,EVC)也使用变换表示对预测后的残差信号进行译码。
最近,机器学习已应用于图像和视频译码。通常,机器学习可以以各种不同的方式应用于图像和视频译码。例如,人们已经讨论了一些端到端优化的图像或视频编码方案。此外,机器学习已被用于确定或优化端到端译码的某些部分,例如预测参数的选择或压缩等。这些应用的共同点是,产生了一些特征图数据,这些数据将在编码器和解码器之间发送。码流的高效结构可以大大有助于减少对图像/视频源信号进行编码的比特数。
特征图数据的有效指示也有利于其它机器学习应用或在机器学习系统的层之间传送特征图数据或相关信息,机器学习系统可以是分布式的。
协作智能一直是跨移动云基础设施高效部署深度神经网络的几种新范式之一。通过划分网络,例如在(移动)设备和云之间,可以分配计算工作负载,从而将系统的总能量和/或延迟最小化。一般来说,分配计算工作负载使得在神经网络部署中使用资源有限的设备。此外,计算机视觉任务或机器的图像/视频编码是应用程序,它们也可以以分布式的方式运行,并可以利用协作智能。
神经网络通常包括两个或两个以上的层。特征图是层的输出。在设备之间(例如设备和云之间或在不同设备之间)划分的神经网络中,划分位置(例如,第一设备)输出处的特征图被压缩并传输到神经网络的其余层(例如,传输到第二设备)。
传输资源通常是有限的,因此需要减少传输的数据量,同时仍然提供支持关于质量的不同要求的可配置性。
发明内容
本发明涉及用于压缩神经网络中使用的数据的方法和装置。这样的数据可以包括但不限于特征(例如,特征图)。
本发明由独立权利要求的范围限定。从属权利要求中提供了一些有利的实施例。
特别地,本发明的一些实施例涉及神经网络可用的特征图的数据的指示。通过仔细设计码流结构,可以提高效率。特别地,存在指示符被指示,以指示存在或不存在特征图数据(或者通常,边信息)。根据所述存在指示符,执行或不执行对所述特征图或其区域的编码和/或解码。
根据一个方面,提供了一种用于根据码流对供神经网络处理的特征图进行解码的方法,其中,所述方法包括:根据所述码流中的信息,为所述特征图的区域获取区域存在指示符;对所述区域进行解码,包括:当所述区域存在指示符具有第一值时,从所述码流中解析用于对所述区域进行解码的数据;当所述区域存在指示符具有第二值时,不执行从所述码流中解析用于对所述区域进行解码的数据。因此,所述特征图数据可以高效地编码到码流中。特别地,不解析可以降低熵解码的复杂性以及降低速率(减少要包括在所述码流中的数据量)。
在一些实施例中,从所述码流中解码所述区域存在指示符。
在一些实施例中,所述区域存在指示符是根据所述码流中指示的信息推导的。例如,当所述区域存在指示符具有第二值时,所述对所述区域进行解码还包括:根据预定规则设置所述区域。在不存在所述特征图数据的情况下,具有如何填充特征图数据部分的规则的可能性,使所述解码器能够适当地补偿非指示数据。
例如,所述预定规则表示将所述区域的特征设置为常数。常数填充是一种计算简单且高效的填充缺失部分的方法,也不涉及每个特征元素的熵解码。在一些实施例中,常数为0。
所述方法可以包括从所述码流中解码所述常数的步骤。指示所述常数提供了灵活性,并可以改善重建结果。
在一个示例性实现方式中,所述方法包括:从所述码流中获取边信息存在指示符;当所述边信息存在指示符具有第三值时,从所述码流中解析所述边信息;当所述边信息存在指示符具有第四值时,不执行从所述码流中解析所述边信息,其中,所述边信息可以包括所述区域存在指示符和供神经网络处理以获取用于对所述区域进行熵解码的估计概率模型的信息中的至少一个。其它边信息可能会启用更复杂的设置。所述边信息的存在指示符可以使其编码模式变得高效。
例如,当所述边信息存在指示符具有所述第四值时,所述方法包括将所述边信息设置为预定边信息值。提供填充所述边信息可以处理丢失的(非指示)数据。
在一些实施例中,所述区域存在指示符是能够取仅由所述第一值和所述第二值形成的两个值中的一个值的标志。二进制标志提供了一个特别高效的速率指示。
在一些实施例中,所述区域是所述特征图的信道。信道等级是一个自然的层粒度。由于信道已经单独(可分离)可用,因此不需要进一步划分。因此,利用信道级粒度是缩放速率和失真的高效方法。然而,应理解,所述信道的区域可以具有任何其它粒度,例如,所述信道的子区域或单元,对应于所述子区域或单元的相同空间位置的不同信道的值;特征图的单个值,不同信道中相同空间位置的值。
所述方法还可以包括:获取表示所述特征图的多个信道的重要性的重要性顺序;获取最不重要信道指示符;根据所述最不重要信道指示符,获取所述区域存在指示符。对所述信道或特征图的一般区域进行排序可能有助于简化所述区域存在的指示。在一些实施例中,所述最不重要信道的指示对应于所述重要性顺序内的所述最不重要信道的索引。代替每个区域的指示标志,作为所述码流中的边信息传输的最不重要区域的指示可以更高效。
最不重要信道的指示可以对应于从所述码流中解码的质量指示符,所述质量指示符指示由压缩所述特征图的所述区域产生的所述经编码特征图的质量。因此,所述区域信道存在可以在没有额外指示的情况下推导,因为质量通常被指示为所述码流中的边信息也用于其它目的。
例如,所述获取所述重要性顺序包括:从所述码流中解码所述重要性顺序的指示。显式指示可以非常灵活地设置/配置顺序。然而,本发明并不限于重要性顺序的显式指示。
在一个示例性实现方式中,所述获取所述重要性顺序包括:根据之前解码的关于已生成所述特征图的源数据的信息,推导所述重要性顺序。所述实现方式的优点之一是较低额外指示开销。
例如,所述获取所述重要性顺序包括:根据之前解码的关于已生成所述特征图的源数据类型的信息,推导所述重要性顺序。源数据的类型可以很好地表明所述数据的目的和特征,从而也可以很好地表明数据重建所需的质量。
例如,所述方法包括:从所述码流中解码根据从最重要单元到最不重要信道的重要性顺序在所述码流中排序的信道。这将启用比特率可扩展性功能,有助于通过根据所需的质量水平丢弃(切割)最不重要信道来降低比特率,而无需重新编码。
在一个示例性实现方式中,所述方法还包括以下步骤:从所述码流中解码指示将特征图的区域划分为单元的区域划分信息;根据所述划分信息,从所述码流中解码或不解码用于对所述区域的单元进行解码的待解析特征图数据的单元存在表示。区域的进一步划分(分割),如信道到单元(分割),可以在表示这些单元存在时提供更精细的粒度,从而更灵活地扩展开销。
例如,所述区域的所述区域划分信息包括表示所述码流是否包括指定所述区域的所述单元的维度和/或位置的单元信息的标志;所述方法包括从所述码流中解码所述区域的每个单元的单元存在指示;根据单元的单元存在指示的值,从所述码流中解析或不解析用于所述单元的特征图数据。通过指示所述划分的参数,速率和失真关系可以以其它自由度控制。
在一些实施例中,所述单元信息指定所述区域的分层划分,包括四叉树、二叉树、三叉树或三角形划分中的至少一个。这些划分的优点是,例如针对混合编解码器促进了高效指示。
在一些示例性实现方式中,所述从所述码流中解码所述区域包括:从所述码流中提取表示所述区域的系数中最后一个系数的位置的最不重要系数指示符;从所述码流中解码所述区域的重要系数;根据预定规则,设置所述最不重要系数指示符之后的系数;通过对所述区域的所述系数进行逆变换,获取所述区域的特征数据。应用变换和在变换后对系数进行编码能够很容易地表示重要系数,因为它们通常位于较低索引系数区域。这可以进一步提高指示效率。
例如,所述逆变换是离散余弦逆变换、离散正弦逆变换或修改通过所述离散余弦逆变换或离散正弦逆变换得到的逆变换,或卷积神经网络变换。这些示例性变换已经用于残差编码目的,并且可以有效地实现,例如,使用预先存在的硬件/软件/算法方法。
所述方法还可以包括:从所述码流中解码表示所述码流是否包括所述特征图的任何边信息的边信息存在标志,其中,所述边信息包括供神经网络处理的以获取用于对所述特征图进行熵解码的估计概率模型的信息。所述边信息的存在指示可以提供更高效的指示,类似于特征图区域存在指示。
例如,所述对所述区域存在指示符进行解码包括由上下文自适应熵解码器进行解码。使用自适应熵编码的进一步编码/解码进一步压缩所述码流。
根据一个方面,提供了一种用于从码流中解码供神经网络处理的特征图的方法,其中,所述方法包括:从所述码流中获取关于所述特征图的边信息指示符;对所述特征图进行解码,包括:当所述边信息指示符具有第五值时,从所述码流中解析用于对所述特征图进行解码的所述边信息;当所述边信息指示符具有第六值时,不执行从所述码流中解析用于对所述特征图进行解码的所述边信息。所述边信息的存在指示可以提供更高效的指示,类似于特征图区域存在指示。
所述方法可以包括熵解码,其中,所述熵解码基于由神经网络处理的所述经解码特征图。这使得熵编码器能够高效地适应内容。
例如,当所述边信息指示符具有所述第六值时,所述方法包括将所述边信息设置为预定边信息值。因此,可以省略对边信息值的指示,使速率提高。例如,所述预定边信息值为0。
在一些实施例中,所述方法包括从所述码流中解码所述预定边信息值的步骤。提供用作默认值的值增加了其设置的灵活性。
根据一个方面,提供了一种用于对图像进行解码的方法,其中,包括:根据上文所述的任一方法,从码流中解码供神经网络处理的特征图;获取经解码图像的步骤包括用所述神经网络处理所述经解码特征图。将上述方法应用于基于机器学习的图像或视频编码可以显著提高这种编码的效率。例如,所述特征图表示:经编码图像数据和/或用于对图像数据进行解码的经编码边信息。
在另一个方面,提供了一种用于机器视觉的方法,其中,包括:根据上文所述的任一方法,用于从码流中解码供神经网络处理的特征图;执行机器视觉任务的步骤包括用所述神经网络处理所述经解码特征图。将上述方法应用于机器视觉任务可以有助于降低基于机器学习的模型(如神经网络)内信息传输所需的速率,特别是在以分布式方式实现的情况下。例如,所述计算机视觉任务是物体检测、物体分类和/或物体识别。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的方法,其中,所述方法包括:为所述特征图的区域,获取区域存在指示符;根据所述获取的区域存在指示符,作出决定:当所述区域存在指示符具有第一值时,对所述特征图的所述区域进行编码;或者当所述区域存在指示符具有第二值时,不对所述特征图的所述区域进行编码。
在一些实施例中,所述区域存在指示符在所述码流中指示。
在一些实施例中,所述区域存在指示符是根据所述码流中已经指示的信息推导的。
这里提到的编码方法为所述码流提供了特定结构,这使得上述对应解码方法的优点能够实现。
例如,决定(或获取区域存在指示)包括评估所述区域的特征的值。基于上下文/内容的指示的调整能够利用特定的相关性,并相应地降低编码流的速率。以这种方式,所述决定(或获取区域存在指示符)可以包括评估所述区域的所述上下文中的值,换句话说,评估与所述特征图的所述区域在空间上相邻的值。
在一些实施例中,所述决定基于所述区域对所述神经网络处理的结果质量的影响。这种决定会降低对信息切割造成的扭曲敏感的速率。
根据示例性实现方式,所述决定包括:增量确定传输所述特征图需要的比特的总和,从最重要区域的比特开始向重要性递减的区域继续,直到所述和超过预配置阈值;对所述和未超过所述预配置阈值的区域和所述经编码区域的具有所述第一值的所述区域存在指示符进行编码;对非经编码区域的具有所述第二值的所述区域存在指示符进行编码。这种方法提供了计算高效的方法,以满足对结果流的速率和失真施加的限制。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的方法,其中,所述方法包括:获取所述特征图;决定是否指示关于所述特征图的边信息,并且在所述码流中:指示表示第三值和所述边信息的边信息指示符;或者指示表示没有第四值且没有边信息的边信息指示符。因此,所述编码可以仅指示实现所需质量/速率所需的有效信息。
在一些实施例中,所述区域存在指示符和/或所述边信息指示符是能够取仅由所述第一值和所述第二值形成的两个值中的一个值的标志。二进制标志提供了一个特别高效的速率指示。在一些实施例中,所述区域是所述特征图的信道。
应理解,所述特征图的所述区域可以具有不同的粒度,例如,所述信道的子区域或单元,对应于所述子区域或单元的相同空间位置的不同信道的值;特征图的单个值,不同信道中相同空间位置的值。
所述方法还可以包括:获取表示所述特征图的多个信道的重要性的重要性顺序;获取最不重要信道指示符;根据所述最不重要信道指示符,获取所述区域存在指示符。在一些实施例中,所述最不重要信道的指示对应于所述重要性顺序内的所述最不重要信道的索引。
最不重要信道的指示可以对应于作为边信息编码(插入)到所述码流中的质量指示符,所述质量指示符指示由压缩所述特征图的所述区域产生的所述经编码特征图的质量。
例如,重要顺序指示作为边信息插入(编码)到所述码流中。
在一个示例性实现方式中,所述获取所述重要性顺序包括:根据之前编码的关于已生成所述特征图的源数据的信息,推导所述重要性顺序。例如,所述获取所述重要性顺序包括:根据之前编码的关于已生成所述特征图的源数据类型的信息,推导所述重要性顺序。
例如,所述方法包括:将根据从最重要单元到最不重要信道的重要性顺序在所述码流中排序的信道编码到所述码流中。
在一个示例性实现方式中,所述方法还包括以下步骤:将指示将特征图的区域划分为单元的区域划分信息编码到所述码流中;根据所述划分,将表示所述码流中是否包括用于对所述区域的单元进行解码的特征图数据的单元存在指示编码(插入)或者不编码(插入)到所述码流中。
例如,所述区域的所述区域划分信息包括表示所述码流是否包括指定所述区域的所述单元的维度和/或位置的单元信息的标志;所述方法包括从所述码流中解码所述区域的每个单元的单元存在指示;根据单元的单元存在指示的值,从所述码流中解析或不解析用于所述单元的特征图数据。通过指示所述划分的参数,速率和失真关系可以以其它自由度控制。
在一些实施例中,所述单元信息指定所述区域的分层划分,包括四叉树、二叉树、三叉树或三角形划分中的至少一个。
在一些示例性实现方式中,所述将所述区域编码到所述码流中包括:在所述码流中包括表示所述区域的系数中的最后一个系数的位置的最不重要系数指示符;将所述区域的重要系数编码到所述码流中;通过变换来变换所述区域的特征数据,因此获取所述区域的系数。
例如,所述逆变换是离散余弦逆变换、离散正弦逆变换或修改通过所述离散余弦逆变换或离散正弦逆变换得到的逆变换,或卷积神经网络变换。
所述方法还可以包括:将表示所述码流是否包括所述特征图的任何边信息的边信息存在标志编码到所述码流中,其中,所述边信息包括供神经网络处理的以获取用于对所述特征图进行熵解码的估计概率模型的信息。
例如,所述对所述区域存在指示符和/或所述边信息指示符进行编码包括由上下文自适应熵编码器进行编码。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的方法,其中,所述方法包括:在所述码流中包括关于所述特征图的边信息指示符;对所述特征图进行编码包括:将所述边信息指示符的第五值插入到所述码流中,其中,所述边信息用于对所述特征图进行解码并且在所述码流中包括所述边信息;或者在所述码流中包括所述边信息指示符的第六值并且不将用于所述特征图区域的所述边信息插入到所述码流中。
所述方法可以包括熵经编码,其中,所述熵编码基于由神经网络处理的所述经解码特征图。
例如,当所述边信息指示符具有所述第六值时,所述编码器控制因此将所述边信息设置为预定边信息值经解码。在一些实施例中,所述方法包括将所述预定边信息值编码到所述码流中的步骤。
根据一个方面,提供了一种用于对图像进行编码的方法,其中,包括:通过使用所述神经网络处理输入图像,获取经编码图像,从而获取特征图;根据上文所述的任一方法的用于将所述特征图编码到码流中的方法。例如,所述特征图表示:经编码图像数据和/或用于对图像数据进行解码的经编码边信息。
在另一个方面,提供了一种用于机器视觉的方法,其中,包括:根据上文所述的任一方法,用于将供神经网络处理的特征图编码到码流中;通过所述神经网络处理图像,从而获取特征图的步骤,以向解码器提供用于根据计算机视觉任务执行的特征图。例如,所述计算机视觉任务是物体检测、物体分类和/或物体识别。
根据一个方面,提供了一种存储在非瞬时性介质中的计算机程序,所述计算机程序包括代码,当所述代码在一个或多个处理器上执行时执行上文所述的任一方法的步骤。
根据一个方面,提供了一种用于根据码流对供神经网络处理的特征图进行解码的设备,其中,所述设备包括:区域存在指示符,用于根据所述码流中的信息,为所述特征图的区域获取区域存在指示符;解码模块,用于对所述区域进行解码,包括:当所述区域存在指示符具有第一值时,从所述码流中解析用于对所述区域进行解码的数据;当所述区域存在指示符具有第二值时,不执行从所述码流中解析用于对所述区域进行解码的数据。
根据一个方面,提供了一种用于从码流中解码供神经网络处理的特征图的设备,其中,所述设备包括:边信息指示符获取模块,用于从所述码流中获取关于所述特征图的边信息指示符;解码模块,用于对所述特征图进行解码,包括:当所述边信息指示符具有第五值时,从所述码流中解析用于对所述特征图进行解码的所述边信息;当所述边信息指示符具有第六值时,不执行从所述码流中解析用于对所述特征图进行解码的所述边信息。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的设备,其中,所述设备包括:特征图获取模块,用于获取所述特征图;编码控制模块,用于根据所述获取的特征图,获取区域存在指示符,并根据所述获取的区域存在指示符,作出决定:当所述特征图区域存在指示符具有第一值时,对所述特征图的区域进行编码;当所述特征图区域存在指示符具有第二值时,不对所述特征图的所述区域进行编码。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的设备,其中,所述设备包括:特征图获取模块,用于获取所述特征图;编码控制模块,用于决定是否指示关于所述特征图的边信息,并且在所述码流中:指示表示第三值和所述边信息的边信息指示符;或者指示表示没有第四值且没有所述边信息的边信息指示符。
根据一个方面,提供了一种用于根据码流对供神经网络处理的特征图进行解码的设备,其中,所述设备包括处理电路,用于执行上文所述的任一方法的步骤。
根据一个方面,提供了一种用于将供神经网络处理的特征图编码到码流中的设备,其特征在于,所述设备包括处理电路,用于执行上文所述的任一方法的步骤。
根据一个方面,所述解码设备通过云实现。在这种情况下,一些实施例可以在传输所需的速率和神经网络精度之间提供良好的权衡。
上述任一装置都可以实施在集成芯片上。
上述实施例和示例性实现方式中的任何一个都可以被组合。
附图说明
下文参考以下附图详细描述本发明实施例,其中:
图1为由神经网络的层处理的信道的示意图;
图2为神经网络的自动编码器类型的示意图;
图3为包括超先验模型的网络架构的示意图;
图4为用于机器视觉任务等基于机器的任务的云技术方案的结构的框图;
图5为端到端可训练视频压缩框架的结构的框图;
图6为用于运动矢量(motion vector,MV)压缩的网络的框图;
图7为用于运动补偿的网络的框图;
图8为用于对图像区域的特征图数据进行解码的示例性方法的流程图;
图9为用于对图像区域的特征图数据进行编码的示例性方法的流程图;
图10为用于对图像区域的包括默认值设置的特征图数据进行解码的示例性方法的流程图;
图11为用于对图像区域的特征图数据进行编码的示例性方法的流程图;
图12为根据特征图数据的重要性并在速率约束下对特征图数据进行编码的示例性方法的流程图;
图13为用于对图像区域的包括边信息的特征图数据进行解码的示例性方法的流程图;
图14为用于对图像区域的包括边信息的特征图数据进行编码的示例性方法的流程图;
图15为用于根据包括最不重要信道指示符的码流对特征数据进行解码的示例性方法的流程图;
图16为信道的质量水平和设计顺序以及质量参数之间的隐式关系的示意图;
图17为根据包括最不重要信道指示符和重要顺序的码流对特征数据进行解码的示例性方法的流程图;
图18为信道的重要顺序和设计顺序以及质量参数之间的显式关系的示意图;
图19为包括按信道信息的重要性顺序存储的信道信息以及质量可扩展等级的码流结构的示意图;
图20为由四叉树方法划分的特征图单元以及包含特征图数据的单元的示意图;
图21为用于对特征数据进行解码(包括对最不重要系数位置进行解码)的示例性方法的流程图;
图22为用于对特征数据进行编码(包括对最不重要系数位置进行编码)的示例性方法的流程图;
图23为用于对特征图数据进行解码和编码的示例性装置的框图;
图24为用于对边信息数据进行解码和编码的示例性装置的框图;
图25为用于实现本发明实施例的视频编码系统的示例的框图;
图26为用于实现本发明实施例的视频译码系统的另一示例的框图;
图27为编码装置或解码装置的示例的框图;
图28为编码装置或解码装置的另一示例的框图。
具体实施方式
在以下描述中,参考构成本发明一部分的附图,附图通过说明的方式示出了本发明实施例的特定方面或可使用本发明实施例的特定方面。应理解,本发明的实施例可用于其它方面,并且包括未在附图中描绘的结构或逻辑变化。因此,以下详细的描述并不当作限定,本发明的范围由所附权利要求书界定。
可以理解的是,与所描述的方法有关的公开内容对于与用于执行方法对应的设备或系统也同样适用,反之亦然。例如,如果描述了一个或多个特定方法步骤,则对应的设备可以包括一个或多个单元,例如,功能单元,用于执行所描述的一个或多个方法步骤(例如,执行所述一个或多个步骤的一个单元,或各自执行所述多个步骤中的一个或多个步骤的多个单元),即使图中未明确描述或说明此类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述特定装置,对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,执行所述一个或多个单元的功能的一个步骤,或各自执行所述多个单元中的一个或多个单元的功能的多个步骤),即使图中未明确描述或说明此类一个或多个步骤。此外,应理解,除非另外具体指出,否则本文中描述的各种示例性实施例和/或方面的特征可彼此组合。
一些实施例旨在为神经网络提供数据的低复杂度压缩。例如,数据可以包括特征图,或神经网络中使用的其它数据,如权重或其它参数。在一些示例性实现中,提供了信令,其可以能够为神经网络产生高效的码流。根据协作智能范式,如果需要,移动或边缘设备可能会从云中获得反馈。但是,需要说明的是,本发明并不限于包括云在内的协作网络的框架。可以用于任何分布式神经网络系统中。此外,也可以用于在神经网络中存储特征图,神经网络不一定是分布式的。
在下文中,概述了一些使用的技术术语。
人工神经网络
人工神经网络(artificial neural network,ANN)或连接主义系统是模糊地受构成动物大脑的生物神经网络的启发而建立的计算系统。这些系统通过举例“学习”执行任务,通常不使用任务特定规则进行编程。例如,在图像识别中,这些系统可能会学习识别包括猫的图像,即通过分析手动标记为“猫”或“没有猫”的示例性图像并使用结果识别其它图像中的猫。这些系统这样做之前并不知道猫有毛皮、尾巴、胡须和猫脸等信息。相反,这些系统会从处理的示例中自动生成识别特征。
ANN是称为人工神经元(artificial neuron)的连接单元或节点的集合,这些单元或节点以松散方式建模生物大脑中的神经元。每个连接如同生物大脑中的突触(synapse)一样,可以向其它神经元发送信号。然后,接收信号的人工神经元处理这个信号,并可以向连接到该人工神经元的神经元发出信号。
在ANN实现方式中,连接处的“信号”是实数,每个神经元的输出都是通过对其输入求和,再进行非线性函数计算而得到的。这些连接称为边。神经元和边通常具有随着学习进行调整的权重。权重增加或减少连接处的信号强度。神经元可以设置阈值,仅当聚合信号超过该阈值时才发送该信号。通常,神经元聚集成一层一层的。不同的层可以对其输入执行不同的变换。信号可能在多次遍历各层之后从第一层(输入层)传输到最后一层(输出层)。
ANN方法的最初目标是以与人类大脑相同的方式解决问题。随着时间的推移,注意力转移到执行特定任务,导致偏离生物学。ANN已用于各种任务,包括计算机视觉、语音识别、机器翻译、社交网络过滤、棋盘和视频游戏、医学诊断,甚至在传统上被认为是为人类保留的活动,例如绘画。
卷积神经网络
“卷积神经网络”(convolutional neural network,CNN)的名称表示该网络采用了一种称为卷积的数学运算。卷积是一种专门的线性运算。卷积网络是简单的神经网络,在其至少一个层中使用卷积代替一般矩阵乘法。
图1示意性地示出了神经网络(例如,CNN)的处理的一般概念。卷积神经网络由输入层和输出层以及多个隐藏层组成。输入层是提供输入(例如,图1所示的图像的一部分)进行处理的层。CNN中的隐藏层通常包括一系列卷积层,这些卷积层通过乘法或其它点积进行卷积。层的结果是一个或多个特征图(图1中为f.maps),有时也称为信道。一些或所有层中可能涉及子采样。因此,特征图可能会变小,如图1所示。CNN中的激活函数通常是修正线性单元(Rectified Linear Unit,ReLU)层,后面是其它卷积层,例如池化层、全连接层和归一化层,它们称为隐藏层,因为它们的输入和输出被激活函数和最终卷积所掩盖。虽然这些层通俗地称为卷积,但这只是依照惯例。从数学上讲,卷积在技术上是滑动点积(sliding dotproduct)或互相关(cross-correlation)。这对矩阵中的索引具有重要意义,因为影响到在特定索引点确定权重的方式。
当对CNN进行编程以处理图像时,如图1所示,输入是形状(图像数量)×(图像宽度)×(图像高度)×(图像深度)的张量。然后,在通过卷积层后,图像被抽象为特征图,具有形状(图像数量)×(特征图宽度)×(特征图高度)×(特征图信道)。神经网络内的卷积层可以具有以下属性:由宽度和高度定义的卷积核(超参数);输入信道和输出信道的数量(超参数);卷积滤波器(输入信道)的深度可以等于输入特征图的数量信道(深度)。
在过去,传统的多层感知机(multilayer perceptron,MLP)模型已经用于图像识别。但是,由于节点之间的完全连接,它们受到了高维度的影响,并且在较高分辨率图像中无法充分扩展。具有RGB颜色信道的1000×1000像素图像具有3百万个权重,权重太高,无法在全连接的情况下切实高效地进行大规模处理。此外,这种网络架构不考虑数据的空间结构,以与距离近的像素相同的方式处理距离远的输入像素。这忽略了图像数据中的参考局部性,无论是在计算上还是在语义上。因此,神经元的全连接对于由空间局部输入模式占主导的图像识别等目的是浪费的。
卷积神经网络是多层感知机的生物学启发变体,专门设计用于模拟视觉皮层的行为。这些模型通过利用自然图像中存在的强空间局部相关性,减轻了MLP架构带来的挑战。卷积层是CNN中的核心构建块。该层的参数包括一组可学习的滤波器(上述内核),这些滤波器具有一个小的感受野(receptive filed),但延伸到输入体积(input volume)的整个深度。在前向传播(forward pass)期间,每个滤波器跨输入体积的宽度和高度进行卷积,从而计算滤波器的系数(entry)与输入之间的点积,并生成该滤波器的二维激活图(activationmap)。因此,当网络在输入中的某个空间位置上检测到某种特定类型的特征时,网络学习滤波器激活它们。
沿深度维度堆叠所有滤波器的激活图形成卷积层的完整输出体积。因此,输出体积中的每个系数还可以被解释为神经元的输出,该神经元观察输入中的一个小区域,并与同一激活图中的神经元共享参数。特征图或激活图是给定滤波器的输出激活。特征图和激活具有相同的含义。在一些论文中,称为激活图,是因为它是一种与图像中不同部分的激活对应的映射关系,也称为特征图,是因为它也是一种在图像中找到某种特征所在的映射关系。高激活表示找到了某个特征。
CNN的另一个重要概念是池化(pooling),它是非线性下采样的一种形式。有几个非线性函数可以实现池化,其中,最常见的是最大池化(max pooling),将输入图像划分为一组非重叠矩形,并对于每个这种子区域输出最大值。
直观地,特征的确切位置没有该特征相对于其它特征的粗略位置重要。这就是在卷积神经网络中使用池化背后的原因。池化层用于逐步减小表示的空间大小,减少网络中的参数数量、内存占用和计算量,从而也控制过拟合。在CNN架构中的连续卷积层之间定期插入池化层是很常见的。池化操作提供了另一种形式的平移不变性。
池化层在输入的每个深度切片(slice)上独立运行,并在空间上调整每个深度切换的大小。最常见的形式是池化层具有大小为2×2的滤波器,这些滤波器在输入中的每个深度切片上应用步幅为2的下采样,沿宽度和高度均缩小二分之一,从而丢弃75%的激活。在这种情况下,每个最大值操作都超过4个数字。深度维度保持不变。
除了最大池化之外,池化单元还可以使用其它函数,例如平均池化或l2-norm池化。过去经常使用的是平均池化,但与实践中表现更好的最大池化相比,平均池化最近已经不受欢迎。由于表示大小的大幅减小,最近有一种趋势是使用较小的滤波器或完全舍弃池化层。“感兴趣区域(Region of Interest)”池化(还称为ROI池化)是最大池化的变体,其中的输出大小是固定的,输入矩形是参数。池化是卷积神经网络中基于快速R-CNN架构进行对象检测的重要组成部分。
上述ReLU是修正线性单元的缩写,使用非饱和激活函数(non-saturatingactivation function)。它通过将负值设置为0,有效地从激活图中去除这些负值。增加了决策函数和整体网络的非线性,但不影响卷积层的感受野。其它函数也用于增加非线性,例如饱和双曲正切(saturating hyperbolic tangent)和S形函数(sigmoid function)。ReLU通常比其它函数更受欢迎,因为它训练神经网络的速度快几倍,但不会对泛化精度造成重大影响。
在经过几个卷积层和最大池化层之后,神经网络中的高阶推理通过全连接层完成。全连接层中的神经元与前一个层中的所有激活都有连接,如常规(非卷积)人工神经网络中所示。因此,神经元的激活可以计算为仿射变换,矩阵乘法之后是偏差偏移(biasoffset)(学习到或固定的偏差项的矢量加法)。
“损失层(loss layer)”指定训练如何影响预测(输出)标签与真实标签之间的偏差(deviation),并且通常是神经网络的最后一层。可以使用适合不同任务的各种损失函数。softmax损失用于预测K个互斥类(mutually exclusive class)的单类。Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧氏损失(Euclidean loss)用于回归到实值标签。
总之,图1示出了典型卷积神经网络中的数据流。首先,输入图像通过卷积层,并被抽象到包括几个信道的特征图,对应于该层的一组可学习滤波器中的滤波器数量(例如,每个滤波器一个信道)。然后,使用池化层等对特征图进行子采样,该层减小了特征图中每个信道的维度。下一个数据到达另一个卷积层,该卷积层可能具有不同数量的输出信道,导致特征图中的信道数量不同。如上所述,输入信道和输出信道的数量是层的超参数。要建立网络的连接,这些参数需要在两个连接的层之间同步,使得当前层的输入信道数应等于上一层的输出信道数。对于处理图像等输入数据的第一层,输入信道的数量通常等于数据表示的信道的数量,例如,3个信道用于图像或视频的RGB或YUV表示,或1个信道用于灰度图像或视频表示。
自动编码器和无监督学习
自动编码器是人工神经网络的一种用于以无监督的方式学习高效的数据译码。示意图如图2所示。自动编码器的目的是通过训练网络忽略信号“噪声”来学习一组数据的表示(编码),通常用于降维。与简化侧一起,学习重建侧,其中,自动编码器尝试从简化的编码中生成尽可能接近其原始输入的表示,因此得名。在最简单的情况下,给定一个隐藏层,自动编码器的编码器级获取输入x并将其映射到h
h=σ(Wx+b)。
此图像h通常称为代码、潜在变量或潜在表示。此处,σ是逐元素激活函数,例如,sigmoid函数或修正线性单元。W是权重矩阵,b是偏置向量。权重和偏置通常经随机初始化,然后在训练期间通过反向传播迭代更新。之后,自动编码器的解码器级将h映射到与x相同的形状的重建x′:
x′=σ′(W′h′+b′)
其中,解码器σ′、的W′和b′可以与编码器的对应σ、W和b无关。
变分自动编码器(variational autoencoder,VAE)模型对潜在变量的分布做出了强假设。这些模型使用变分方法进行潜在表示学习,产生了额外的损失分量,和训练算法的特定估计器,称为随机梯度变分贝叶斯(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)和μ(h)是解码器输出。
人工神经网络领域,特别是卷积神经网络的最新进展使研究人员有兴趣将基于神经网络的技术应用于图像和视频压缩任务。例如,人们已经提出了端到端优化的图像压缩,这种技术使用基于变分自动编码器的网络。因此,数据压缩被认为是工程中一个基本且充分研究的问题,通常是为了为给定的离散数据集设计具有最小熵的代码。该技术方案在很大程度上依赖于对数据概率结构的了解,因此该问题与概率源建模密切相关。但是,由于所有实用代码都必须具有有限熵,因此连续值数据(例如图像像素强度的向量)必须量化为离散值的有限集,这会引入误差。在这种情况下,即有损压缩问题,必须权衡两个相互矛盾的成本:离散化表示的熵(速率)和量化引起的误差(失真)。不同的压缩应用,例如数据存储或有限容量信道上的传输,需要不同地平衡速率和失真。速率和失真的联合优化比较困难。如果没有进一步的限制条件,高维空间中的最佳量化的一般问题就难以解决。出于这个原因,大多数现有的图像压缩方法通过如下方式来操作:将数据矢量线性地变换为合适的连续值表示,独立地量化其元素,然后使用无损熵编码对所得到的离散表示进行编码。由于变换起核心作用,所以该方案称为变换编码(transform coding)。例如,JPEG对像素块使用离散余弦变换,而JPEG 2000使用多尺度正交小波分解(multi-scale orthogonal waveletdecomposition)。通常,变换编码方法的三个组成部分是变换、量化器和熵编码,它们单独进行优化(通常通过手动参数调整)。HEVC、VVC和EVC等现代视频压缩标准也使用变换后的表示对预测之后的残差信号进行译码。下面几种变换用于此目的,例如离散余弦变换(discrete cosine transform,DCT)和离散正弦变换(discrete sine transform,DST),以及手动优化的低频不可分离变换(low frequency non-separable transform,LFNST)。
变分图像压缩
在J.Balle、L.Valero Lapara和E.P.Simoncelli(2015年)“使用广义归一化变换对图像进行密度建模(Density Modeling of Images Using a GeneralizedNormalization Transformation)”,2016年第四届国际会议学习表示会议(以下称为“Balle”)发表的arXiv电子打印版本中,作者提出了一个基于非线性变换的图像压缩模型端到端优化框架。此前,作者证明,与针对均方差(mean squared error,MSE)优化的模型相比,由线性-非线性块变换组成的模型在视觉上表现出优越的性能,该模型针对感知失真测量进行了优化。在此,作者对MSE进行了优化,但使用了由线性卷积和非线性级联构建的更灵活的变换。具体来说,作者使用了广义除法归一化(generalized divisivenormalization,GDN)联合非线性,该非线性受到生物视觉系统中神经元模型的启发,并已被证明在高斯化图像密度方面是有效的。这种级联变换之后是均匀标量量化(即,每个元素都四舍五入到最近的整数),有助于在原始图像空间上实现矢量量化的参数形式。使用近似参数非线性逆变换从这些量化值重建压缩图像。
对于沿速率-失真曲线的任何期望点,分析和合成变换的参数都使用随机梯度下降联合优化。为了在存在量化(几乎在任何地方都产生零梯度)的情况下实现这一目标,作者使用了基于概率模型连续松弛的代理损失函数,用加性均匀噪声取代量化步骤。宽松的速率失真优化问题与用于拟合生成图像模型的问题,特别是变分自动编码器的问题有一些相似之处,但作者为确保它沿着速率失真曲线近似离散问题而施加的约束不同。最后,作者没有报告差分或离散熵估计,而是使用实际比特率实现熵代码并报告性能,从而证明了技术方案作为完全有损压缩方法的可行性。
在J.Balle中,描述了一种基于变分自动编码器的端到端可训练图像压缩模型。该模型包含了超先验,以有效地捕获潜在表示中的空间依赖关系。这种超先验涉及也发送到解码端的边信息,这是一个对几乎所有现代图像编解码器都通用的概念,但在使用ANN的图像压缩中基本上没有经过探索。与现有的自动编码器压缩方法不同,这种模型与底层自动编码器联合训练复杂的先验。作者证明,在使用流行的MS-SSIM索引测量视觉质量时,该模型会导致最先进的图像压缩,并在使用基于平方差(squared error,PSNR)的更传统度量评估时,产生的速率失真性能超过了已发表的基于ANN的方法。
图3示出了包括超先验模型的网络架构。左侧(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以获得重建图像。
在进一步的工作中,例如,通过引入基于PixelCNN++架构的自回归模型,进一步改进了超先验的概率建模,该模型允许利用潜在空间的已经解码符号的上下文,以更好地估计待解码的其它符号,例如,就像L.Zhou、Zh.Sun、X.Wu、J.Wu在CVPR 2019“通过注意机制进行端到端优化图像压缩(End-to-end Optimized Image Compression with AttentionMechanism)”(下文称为“Zhou”)的图2中所描述。
适用于机器任务的云技术方案
机器视频编码(Video Coding for Machine,VCM)是当今流行的另一个计算机科学方向。这种方法背后的主要思想是传输图像或视频信息的编码表示,以便通过计算机视觉(computer vision,CV)算法进一步处理,如对象分割、检测和识别。与针对人类感知的传统图像和视频编码相比,质量特征是计算机视觉任务的性能,例如,物体检测精度,而不是重建质量。这在图4中示出。
机器视频编码也被称为协作智能,它是在移动云基础设施中高效部署深度神经网络的一个相对较新的范式。通过在移动和云之间划分网络,可以分配计算工作负载,从而将系统的整体能量和/或延迟降至最低。一般来说,协作智能是一种范式,其中,神经网络的处理分布在两个或多个不同的计算节点之间;例如设备,但通常,任何功能定义的节点。这里,术语“节点”并不指上述神经网络节点。相反,这里的(计算)节点指的是(物理上或至少逻辑上)单独的设备/模块,它们实现了神经网络的部分。这样的设备可以是不同的服务器、不同的终端用户设备、服务器和/或用户设备和/或云和/或处理器等的混合物。换句话说,计算节点可以被视为属于同一神经网络的节点,并相互通信以在神经网络内/为神经网络传输经译码数据。例如,为了能够执行复杂的计算,可以在第一设备上执行一个或多个层,并且可以在另一个设备上执行一个或多个层。然而,分布也可以更精细,并且可以在多个设备上执行单层。在本发明中,术语“多个”是指两个或超过两个。在一些现有技术方案中,神经网络功能的一部分在设备(用户设备或边缘设备等)或多个这样的设备中执行,然后将输出(特征图)传递到云。云是位于设备外部的处理或计算系统的集合,设备正在操作神经网络的部分。协作智能的概念也扩展到了模型训练。在这种情况下,数据流双向流动:在训练中反向传播期间从云端到移动端,在训练中正向传递期间从移动端到云端,以及推理。
一些作品通过对深度特征进行编码,然后从这些特征中重建输入图像,提出了语义图像压缩。显示了基于均匀量化的压缩,然后是H.264的基于上下文的自适应算术编码(context-based adaptive arithmetic coding,CABAC)。在一些场景中,从移动部分向云传输隐藏层(深度特征图)的输出可能更高效,而不是向云发送压缩的自然图像数据并使用重建图像执行对象检测。特征图的高效压缩有利于图像和视频压缩和重建,无论是人类感知还是机器视觉。熵编码方法,例如算术编码是深度特征(即特征图)压缩的流行方法。
如今,视频内容对互联网流量的贡献超过80%,预计这一比例将进一步上升。因此,建立一个高效的视频压缩系统,并在给定的带宽预算下生成更高质量的帧是至关重要的。此外,大多数视频相关的计算机视觉任务,如视频对象检测或视频对象跟踪,对压缩视频的质量敏感,高效的视频压缩可能为其它计算机视觉任务带来好处。同时,视频压缩技术也有助于动作识别和模型压缩。然而,在过去的几十年里,视频压缩算法依赖于手工制作的模块,例如基于块的运动估计和离散余弦变换(Discrete Cosine Transform,DCT),以减少视频序列中的冗余,如上所述。虽然每个模块都设计得很好,但整个压缩系统并没有端到端优化。希望通过联合优化整个压缩系统来进一步提高视频压缩性能。
端到端图像或视频压缩
最近,基于深度神经网络(deep neural network,DNN)的图像压缩自动编码器取得了与JPEG、JPEG2000或BPG等传统图像编解码器相当甚至更好的效果。一种可能的解释是,基于DNN的图像压缩方法可以利用大规模端到端训练和高度非线性变换,而这些方法在传统方法中并不使用。然而,直接应用这些技术来构建视频压缩的端到端学习系统并不常见。首先,学习如何生成和压缩为视频压缩量身定制的运动信息仍然是一个悬而未决的问题。视频压缩方法非常依赖运动信息来减少视频序列中的时间冗余。一个简单的技术方案是使用基于学习的光流来表示运动信息。然而,当前基于学习的光流方法的目的是尽可能准确地生成流场。精确的光流通常不是特定视频任务的最佳选择。此外,与传统压缩系统中的运动信息相比,光流的数据量显著增加,直接应用现有的压缩方法来压缩光流值将显著增加存储运动信息所需的比特数。其次,目前还不清楚如何通过最小化残差和运动信息的基于速率失真的目的来构建基于DNN的视频压缩系统。速率失真优化(Rate-distortionoptimization,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)模型。
这种编码器在图5中示出。具体地,图5示出了端到端可训练视频压缩框架的总体结构。为了压缩运动信息,指定了CNN将光流转换为适合更好压缩的相应表示。具体来说,使用自动编码器风格的网络来压缩光流。运动矢量(motion vector,MV)压缩网络如图6所示。网络架构与图3中的ga/gs有些相似。具体地,光流被馈送到包括GDN和IGDN在内的一系列卷积运算和非线性变换中。卷积(反卷积)的输出信道数为128,但最后一个反卷积层等于2。给定光流大小为M×N×2,MV编码器将生成大小为M/16×N/16×128的运动表示。然后,运动表示被量化,被熵译码并发送到码流。MV解码器接收量化表示并使用MV编码器重建运动信息。
图7C示出了运动补偿部分的结构。在这里,使用先前重建的帧xt–1和重建的运动信息,扭曲单元生成扭曲的帧(通常,借助于插值滤波器,例如,双线性插值滤波器)。然后,一个具有三个输入的单独CNN生成预测图像。运动补偿CNN的架构也如图7所示。
原始帧和预测帧之间的残差信息由残差编码器网络编码。使用高度非线性的神经网络将残差转换为相应的潜在表示。与传统视频压缩系统中的离散余弦变换相比,该方法可以更好地利用非线性变换的力量,实现更高的压缩效率。
从上面的概述可以看出,考虑到视频框架的不同部分,包括运动估计、运动补偿和残差编码,基于CNN的架构可以应用于图像和视频压缩。熵译码是用于数据压缩的流行方法,被业界广泛采用,也适用于人类感知或计算机视觉任务的特征图压缩。
提高译码效率
信道信息对于最终任务并不同样重要。据观察,一些信道的信息可以被丢弃,例如不传输到解码器,而不会对最终图像、视频重建质量或物体检测精度造成重大损害。同时,由于丢弃非重要信息而节省的比特数可以改善总体速率失真平衡。
此外,编解码延迟是压缩系统实际实现的重要参数之一。由于人工神经网络的性质,一层内的操作可以并行执行,整体网络延迟由后续连接的层数决定,通常不会那么高。利用现代图形处理单元(graphic processing unit,GPU)或网络处理单元(networkprocessing unit,NPU),它们可以支持大规模并行性,可以实现可接受的运行时间。然而,算术编码或范围编码等熵编码方法意味着范围区间计算、归一化和概率区间匹配的顺序操作。在不牺牲压缩效率的情况下,这些操作很难并行化。因此,熵编码可能成为限制整体系统延迟的瓶颈。希望减少通过熵编码传递的数据量。
本公开的一些实施例可以提高压缩效率。此外,它们可以加快从基于CNN的图像和视频编解码器的潜在空间跳过一些特征图数据的传输。根据这些方法,可以实现熵编码和解码过程的提高速度,这可以被认为对实际实现是重要的。
具体地,可以跳过一些特征图区域或信道的信息传输。具体地,可以跳过这些特征图数据,如果缺乏这些特征图数据,则确定不会导致重建质量的显著下降。因此,可以提高压缩效率。此外,通过熵编码和解码的数据量可以减少,这可以进一步减少编码和解码时间,并降低整体端到端压缩系统延迟。
根据一个实施例,提供了一种用于解码特征图的方法,以便由神经网络根据码流进行处理。这种方法在图8中示出。方法包括步骤S110:根据码流中的信息,为特征图的区域获取区域存在指示符。获取步骤S110之后是对区域进行解码的解码步骤S150。解码步骤S150包括当区域存在指示符具有第一值时,从码流中解析用于对区域进行解码的步骤S130。在判断步骤S120中,可以确定区域存在指示符是否具有第一值。另一方面,当(例如在步骤S120中)区域存在指示符具有第二值时,解码S150可以包括步骤S140,绕过从码流中解析对区域进行解码的数据。
获取区域存在指示符的S110可以对应于从码流中解析存在指示符。换句话说,码流可以包括指示符。所述获取还可以包括例如通过熵解码器对存在指示符进行解码。区域存在指示符可以是可以在第一值和第二值中取一个的标志。例如,它可以由单个比特编码。然而,本发明并不限于此。通常,获取步骤S110可以对应于根据从码流中解析出的其它参数的值间接获取。
解码S150可以指码流的广义处理,其可以包括以下一个或多个:解析信息、熵解码信息、绕过(跳过)信息解析、基于已经解析的信息元素中的一个或多个推导用于进一步解析的信息等。
根据一个实施例,提供了一种用于将供神经网络处理的特征图编码到码流中的方法。该方法在图9中示出,并且可以提供码流部分,该码流部分可以容易地通过参考图8描述的解码方法进行解码。该方法包括步骤S160,获取特征图的区域的区域存在指示符。这特征图的区域可以从神经网络的一个或多个层生成的特征图获取。特征图可以存储在存储器或其它存储器中。此外,该方法包括步骤S170,根据获得的区域存在指示符,决定是否指示码流中的特征图的区域。因此,如果在步骤S170中决定指示码流中的区域,则码流应包括特征图的区域。如果在步骤S170中决定不指示码流中的区域,则码流不应包括特征图的区域。步骤S170至S190可以被认为是生成码流(也称为编码码流)的一般步骤S165的一部分。
在可能的实施例中,区域存在指示符在码流中指示。因此,如果在步骤S170中决定指示码流中的区域,则码流应包括具有第一值和特征图的区域的区域存在指示符。如果在步骤S170中决定不指示码流中的区域,则码流应包括具有第二值但没有特征图区域的区域存在指示符。
应当注意,术语“包括具有特定值的区域存在指示符”在这里实际上是指将特定值包括到码流中,例如以二进制化的和可能的熵编码的形式。通过约定的方式,例如标准定义的语义,赋予区域存在指示符的含义。
处理缺少的特征图区域
根据示例性实现方式,当所述区域存在指示符具有第二值时,所述对所述区域进行解码还包括:根据预定规则设置所述区域。例如,所述预定规则表示将所述区域的特征设置为常数。然而,需要说明的是,本发明并不限于预定规则是指定特征将被设置为常数的规则。相反,规则可以定义特征的确定/计算方式,例如基于之前解码的特征或码流中的信息。
图10示出了用于对码流进行解码的方法。在本示例中,特征图的区域对应于CNN信道。具体地,图像或视频信息解码方法包括从码流中解析语法元素,语法元素表示码流中是否存在对应的CNN信道信息。CNN信道信息可以包括对应信道的特征图或与特定信道相关的其它信息。在图10中所示的示例性实现方式中,解码器在生成模型(或重建网络)的输入信道上迭代S205。在每个迭代S205中,从码流中读取S210信道存在标志(对应于上述区域存在标志)。如果信道存在标志等于真,则从码流中读取S235对应的信道信息。数据可以进一步由熵解码器(例如算术解码器)解码S240。否则,如果信道存在标志等于假,则旁路读取信道信息,并通过预定义规则初始化S230对应的信道信息,例如通过将所有信道值设置为常数。例如,常数为零。然后对每个信道重复步骤S210至S240。然后,在步骤S244中,重建的信道被输入到神经网络(例如,输入到神经网络的适当层,该层可以是神经网络的隐藏层或输出层之一。然后,神经网络进一步处理输入信道信息。
在下表中,提供了位流语法的示例性实现方式:
/>
可变channels_num定义了迭代的信道的数量(参见图10的步骤S205)。可以根据有关图像宽度和高度以及生成模型(例如重建网络)的架构的高级语法信息推导变量latent_space_height和latent_space_width。导致相同逻辑的其他实现方式是可能的。例如,channel_presence_flag的条件检查可以在迭代潜在空间宽度和高度的循环之外执行。因为输入信道值y_cap[i]可以在单独的循环中初始化,而不是信道数据读取循环中初始化。
或者,信道存在指示符可以具有相反的解释,例如channel_skip_flag(或信道旁路标志),表示应跳过对应信道信息的读取。换句话说,信道(或一般区域)指示可以是存在指示或不存在指示。这种指示可以采取两个值中的一个,第一值和第二值。这些值中的一个表示存在,这些值中的另一个表示信道(特征图)数据不存在。还需说明的是,在图10中,信道指示符被用信号指示整个信道存在/不存在。然而,本发明并不限于此,并且可以为特征图的一部分(区域),或为以某种预定义的方式组织成组的信道组发送指示符。
本实施例的技术优点之一可以是通过排除用于图像或视频重建的不必要或不重要的信息或次不重要的信息的传输来减少指示开销。另一个技术优点是加快了熵解码过程,熵解码过程是图像和视频压缩系统的瓶颈,通过排除熵解码处理不必要或不重要的信息。
decode_latent_value()子过程(对应于语法部分的解析过程)可以包括熵解码。通过使用上下文自适应熵编码(表示为ae(v))或不使用上下文自适应熵编码(表示为u(1)),channel_presence_flag可以编码为无符号整数一个二进制位标志。使用上下文自适应熵编码可以减少由channel_presence_flag引入的指示开销,并进一步提高压缩效率。
在上述语法中,如果channel_presence_flag指示信道数据未指示,则输入信道值将设置为常数,此处为零(y_cap[i][y][x]=0)。然而,本发明不限于常数的零值。该常数可以采用不同的值,或者甚至可以预先设置,例如由编码器,然后在码流中指示。换句话说,在一些实施例中,该方法还包括从码流中解码所述常数的步骤。
对应于结合图10描述的解码方法,可以提供如图11所示的编码方法。编码方法可以生成遵循上面讨论的语法的码流。相应地,图像或视频编码器可以包括用于决定是否向接收端发送或旁路对应信道信息的单元。对于编码模型的每个输出信道(应该是生成模型的输入信道),编码器决定相应信道对于图像或视频重建或机器视觉任务的重要性。
图11的这种编码方法包括在所有信道上的循环。在每个步骤S208中,采取信道,并且在步骤S250中做出关于信道存在的决定。编码器可以根据一些先验知识或度量做出决策,有助于评估信道重要性。
例如,潜在表示中对应信道的特征图的绝对值之和可以用作编码器侧决策的度量:
其中,ChannelPresenceFlagi是表示编码器对码流中第i个CNN信道存在的决定的标志,w、h相应地是第i信道的潜在表示的宽度和高度,threshold是一些预定义的值,例如零。在另一种实现方式中,绝对值的总和可以在信道中的元素量上归一化:
在另一种可能的实现方式中,可以使用平方值的和来代替绝对值的和。另一个可能的标准可以是潜在表示中相应信道的特征图的方差,定义为信道中每个特征图元素与信道中特征图元素平均值的平方距离之和,除以信道中特征图元素的数量:
其中,μ是信道中特征图元素的平均值,threshold_var是阈值。本发明不限于任何特定的决策算法或度量。其它替代实现方式是可能的。
在决定步骤S250之后,将确定的信道存在标志写入S255到码流中。然后,根据信道存在标志的值,在步骤S260中决定将信道数据(特征图数据的区域)写入或不写入码流中。具体地,如果信道存在标志为真,则在步骤270中,信道数据被写入码流中,可以包括通过算术编码器等熵编码器对信道数据进行编码S280。另一方面,如果信道存在标志为假,则在步骤270中,信道数据不被写入码流中,即,写入被旁路(或跳过)。
图12示出了用于根据信道对重建图像质量的相对重要性来决定码流中的特定信道存在的编码端方法的示例性实现方式。编码方法的步骤是针对每个信道执行的。在图12中,信道上的环路由步骤S410示出,该步骤设置了执行以下步骤的信道。
在第一步骤S420中,对于每个信道确定重要性度量。例如,可以通过计算信道中所有特征图元素的绝对值之和来确定度量,或者作为信道中特征图元素的方差来确定度量。特征图的值分布可以是特征图对重建数据的影响的指示。执行排序的另一个可能的度量可以是对传输信道信息所需的比特量的估计(换句话说,传输特定信道的特征图数据所需的比特量),其对应于速率。执行排序的另一个可能的度量可以是特定信道对重建图像质量的贡献,例如以dB或其它质量度量,如多尺度结构相似性指数度量(MS-SSIM),或任何其它目标或感知加权/设计度量。上述指标和其它指标可以组合在一起。可能存在其它适合于例如机器视觉任务的性能标准,如对象检测精度,例如通过比较全信道重建性能减去除特定信道重建性能外的所有信道重建性能来评估。换句话说,信道数据对机器视觉任务的质量/准确性的贡献的一些估计可以用作排序标准。
在下一步骤中,根据计算的重要性度量对所有信道进行排序或排序,例如从最重要性(索引=0或索引=1取决于计数索引的开始)到最不重要性。
在以下步骤(S430至S470)中,编码器以每个信道对码流的贡献(传输信道特征图值所需的比特量)和期望的目标比特率的估计作为输入参数,做出关于将特定信道信息放入码流中的决定。具体地,在步骤S430中,所得码流部分的比特数numOfBits被初始化为零。此外,每个信道的信道存在标志被初始化为零,表示该信道不被包括在码流中。然后,在步骤S440中开始信道上的循环。循环按从最重要到最不重要的顺序扫描信道。对于循环中的每个信道,在步骤S450中,获得对信道的数据进行编码所需的比特数channelNumOfBits,并且总比特数numOfBits通过获得的对信道数据channelNumOfBits进行编码所需的比特数增加:numOfBits+=channelNumOfBits(即numOfBits=numOfBits+channelNumOfBits)。
在循环的步骤S460中,将总比特数numOfBits与所需比特数requiredNumOfBits进行比较。requiredNumOfBits是可以根据所需的速率设置的参数。如果比较numOfBits>=requiredNumOfBits的结果为真,则表示总比特数达到或超过所需的比特数,在这种情况下,方法结束。即,对于当前信道i,如在步骤S430中初始化的那样,信道存在标志保持零,并且信道数据不包括在码流中。如果在步骤S460中,比较numOfBits>=requiredNumOfBits的结果为假,则意味着当信道i的数据被添加到码流中时,总比特数还没有达到所需的比特数。因此,在步骤S470中,当前信道i的信道存在标志被设置为1,并且信道的数据被包括在码流中。
总之,编码器从最重要信道开始计算信道传输所需的增量比特和,并将channel_presence_flag[i]设置为真。一旦总比特数达到所需的比特数,则决定不传输剩余的最不重要信道,并且这些信道的channel_presence_flag[i]设置为假。
或者,所需的重建图像质量水平(例如,以dB或MS-SSIM等其它度量)可用作确定要传输的信道数量的标准。从最重要信道开始,编码器通过最重要信道的贡献来评估重建的质量,一旦达到所需的质量,其余的信道就被决定不需要,并将其对应的channel_presence_flag[i]设置为假。换句话说,迭代S440-S470可以通过累积随每个信道i增加的质量计数器,并通过在当前信道i的添加达到或超过所需质量水平时停止迭代来执行。如本领域技术人员所清楚的,比特率和质量只是示例性的,并且可以使用两者的组合,或者可以添加或使用进一步的标准,例如复杂性。
参考图12描述的方法仅是示例性的。决定传输哪些信道的另一种替代方法是使用速率失真优化(Rate-Distortion Optimization,RDO)程序,所述程序将成本值最小化为:
成本=失真+λ*速率,或
成本=速率+β*失真,
其中,λ和β是约束优化方法的拉格朗日乘子。上述技术方案的技术优点之一是它能够匹配所需重建质量的所需目标比特率,这是压缩系统实际使用的一个重要方面。
在参考图10和图11描述的实施例中,特征图的区域是整个特征图。然而,如稍后所示,本发明不限于这种数据粒度。
边信息指示
如参考图3所描述的,Balle中提出的超先验可用于生成要与输入信号的潜在表示一起传输的边信息,以获得算术解码器所需的概率(或频率)估计值,这允许编码系统捕获特定于给定输入信号的统计属性。正如Zhou进一步证明的那样,通过结合根据已经解码的潜在表示符号的上下文,可能的估计可以进一步改进。从图3可以看出,边信息z基于卷积层的输出。在一般情况下,特征图本身可以被认为是表示边信息。
根据本公开的实施例,提供了一种用于从码流中解码由神经网络处理的特征图的方法。方法在图13中示出,并包括步骤S310,从码流中获取表示码流中是否存在边信息的边信息指示符。方法还包括对特征图进行解码S350。特征图的解码S350还包括步骤S320,其中对边信息指示符的值进行判断和作用。具体地,当边信息指示符具有第五值时,方法包括不执行从码流中解析用于对特征图进行解码的边信息的步骤S330。否则,当边信息指示符具有第六值时,方法还包括不执行从码流中解析S340用于对特征图进行解码的边信息。第五值表示码流包括边信息,而第六值表示码流不包括特征图的某一部分(例如区域)或整个特征图等的边信息。
由于超先验模型可以包括根据已经解码符号的自回归上下文建模,因此可能不需要传输边信息,并且超先验网络可以高效地仅基于上下文建模分布。同时,上下文建模的效率在很大程度上取决于输入图像或视频内容的统计特性。一些内容可能是很好的可预测的,但有些内容可能不是。为了灵活性,有一个边信息传输和利用的选项是有益的,该选项可以由编码器根据输入内容的统计属性确定。这将进一步增加压缩系统适应输入内容属性的可能性。
对应图13的解码器过程,码流的实施例可以包括语法元素side_information_available,其控制码流中边信息(z_cap)的存在。如果边信息不可用(例如,编码器决定为不需要获得算术编码的符号概率),解码器跳过读取边信息值,并在发送到超先验的生成部分(gs)之前用一些值(例如零)进行初始化。这允许进一步优化信令。下面示出了示例性码流。/>
对应于解码方法,根据一个实施例,提供了一种用于将供神经网络处理的特征图编码到码流中的方法。所述方法在图14中示出,并且可以包括获取特征图(或至少特征图的区域)的步骤S360。所述方法还包括编码步骤S365,该步骤可以包括步骤S370,以决定是否表示关于码流中的特征图的边信息。如果决定是肯定的,则所述方法还可以包括将表示第三值(例如对应于上述第五值,以便编码器和解码器可以相互理解或是同一系统的一部分)和边信息的边信息指示符插入S380到码流中。如果决定是肯定的,则所述方法还可以包括将表示第四值(例如,对应于上述第六值,以便编码器和解码器可以相互理解或是同一系统的一部分)但没有边信息的边信息指示符插入S390到码流中。边信息可以对应于特征图的区域,也可以对应于整个特征图。
需要说明的是,边信息可以对应于参考图3的自动编码器描述的边信息。例如,解码方法还可以包括熵解码,其中,所述熵解码基于由神经网络处理的经解码特征图。相应地,编码方法还可以包括根据神经网络处理的编码特征图进行的熵编码。具体地,特征图可以对应于来自图3中所示的超先验ha/hs的特征图。基于特征图的边信息可以对应于在z中总结的标准偏差的分布。z可以被量化,进一步被压缩(例如,熵编码),并作为边信息传输。编码器(以及解码器)使用量化向量来估计/>标准偏差的空间分布,该标准偏差实际上用于获取算术编码(或通常的另一种熵编码)的概率值(或频率值、出现次数),并使用它来编码量化图像表示/>(或潜在表示)。解码器首先从压缩信号中恢复/>并据此解码潜在表示。如上所述,分布建模网络可以通过根据已经解码的潜在表示符号的上下文建模进一步增强。在一些情况下,可能不需要传输z,并且超先验网络(hs)的生成部分的输入可以根据规则由值初始化,例如通过常数。
需要说明的是,图3的编码器和解码器只是示例。通常,边信息可以携带其它信息(与不同)。例如,熵编码的概率模型可以直接指示,或者从边信息中指示的其它参数推导。熵编码不需要是算术编码,它可以是另一种熵编码或可变长度编码,例如,可以是上下文自适应并由边信息控制。
在示例性实现方式中,当边信息指示符具有第六值时,解码方法包括将边信息设置为预定边信息值。例如,预定边信息值为0。解码方法可以包括从码流中解码所述预定边信息值的步骤。
相应地,在示例性实现方式的编码方法中,当边信息指示符具有第四值时,编码方法可以适用于对根据零等预定边信息值推导的参数。编码方法还可以包括将预定边信息值编码到码流中的步骤。换句话说,码流可以携带预定的边信息,例如对于多个特征图区域或对于整个特征图或多个特征图一次。换句话说,预定值(可以是常数)可以比边信息指示符更少地进行指示。然而,这不一定是这样,并且在一些实施例中,预定值可以在每个信道(特征图数据的一部分)或每个信道区域等单独地指示。
本发明不限于指示预定值,该预定值可以由标准指定,或者从码流中包括的一些其它参数推导。此外,可以指示表示确定预定信息的规则的信息,而不是指示预定值。
因此,所描述的方法也适用于优化边信息的潜在表示的传输。如上所述,边信息/>(图3)基于包括几个输出信道的卷积层的输出。在一般情况下,特征图本身可以被认为是表示边信息。因此,上述和图10所示的方法也适用于优化边信息的指示,并且可以与边信息存在指示符组合。
下面是示例性语法表,说明了如何组合这两种方法。
用于解析码流的方法可以包括从码流中获取边信息存在指示符(side_information_available)。所述方法还可以包括当边信息存在指示符具有第三值(例如,side_information_available为真)时,从码流中解析边信息(z_cap),以及当边信息存在指示符具有第四值(例如,side_information_available为假)时,完全不执行从码流中解析边信息。此外,在码流中指示的边信息可以包括区域存在指示符(例如,在上面的语法中示出并参考图8至图11描述的side_infromation_channel_presence_flag)中的至少一个,以及供神经网络处理以获得用于区域熵解码的估计概率模型的信息(z_cap)。根据区域存在指示符(side_infromation_channel_presence_flag)的值,特征图数据(z_cap)可以包括在码流中。
换句话说,在这个示例中,类似于对潜在空间y_cap描述的方法被应用于边信息z_cap,边信息z_cap也可以是包含信道的特征图。z_cap由decode_latent_value解码。它可以使用与y_cap相同的解码过程,但不一定是这样。
相应的编码方法和解码方法可以包括参考图8到图14一起描述的步骤。
此外,编码器可以决定应使用哪个常量值来初始化超先验的潜在表示中的值。在这种情况下,在码流中传输值(side_information_init_value),如以下语法所示。
换句话说,在一些实施例中,边信息存在指示符具有第四值,方法包括在解码器侧将边信息设置为预定的边信息值(如果在编码中使用边信息,也可以在编码器侧执行)。在上述示例性语法中,如果side_information_channel_presence_flag为假,特征图值(z_cap)被设置为零(或设置为作为side_information_init_value语法元素在码流中预定或传输的另一个值,在这种情况下,它应该在预先分配之前被解析)。然而,常数零只是示例性的。如在上述实施例中已经讨论的,特征图数据可以被设置为预定的特征图数据,该预定的特征图数据可以由标准预定义,在码流中指示(例如,作为上面示例的side_information_init_value语法元素,如果在这种情况下,应该在预先分配之前解析),或根据预定义或指示的规则推导。
在一些实施例中,所述区域存在指示符是能够取仅由所述第一值和所述第二值形成的两个值中的一个值的标志。在一些实施例中,边信息存在指示符是能够取仅由第三值和第四值形成的两个值中的一个值的标志。在一些实施例中,边信息存在指示符是能够取仅由第五值和第六值形成的两个值中的一个值的标志。这些实施例可以仅使用一个比特来实现高效指示。
跳过一些不那么重要的深度特征或特征图的传输可以提高编码和解码的速率和复杂性的效率。可以逐信道进行跳过,也可以是信道的每个区域等。本发明不限于跳过的任何特定粒度。
还应理解,上述方法适用于任何要传输和从码流中获取的特征图,这些特征图应该输入到生成模型(或重建网络)。生成模型可用于例如图像重建、运动信息重建、残差信息重建、获得用于算术编码(例如通过如上所述的超先验)的概率值(或频率值)、对象检测和识别或用于其它应用。
排序顺序
本发明的另一个实施例是根据信道的相对重要性对信道进行排序。在一些示例性实现中,可以在码流中携带关于顺序的信息,简化指示,并启用比特率可扩展性特性。换句话说,在本实施例中,通过在码流中传输或参考预定信息,应用信道重要性排序,并且排序顺序在编码器和解码器侧都是已知的。
具体地,用于对特征图数据(信道数据)进行解码的方法可以包括获取重要性顺序的步骤,该重要性顺序指示特定层的多个信道(特征图数据的一部分)的重要性。这里的术语信道重要性是指信道对神经网络执行的任务质量的重要性的度量。例如,如果任务是视频编码,则重要性可以是测量经编码视频的重建质量和/或结果速率的度量。如果任务是机器视觉,如物体识别,重要性可以测量信道对识别精度的贡献等。重要性顺序的获取可以通过一般的任何方式进行。例如,重要性顺序可以在码流中显式地指示,或在标准或其它约定中预先定义,或例如根据其它信号参数隐式地推导。
方法还可以包括获取最不重要信道指示符,然后根据最不重要信道指示符获取区域存在指示符。最不重要信道指示符表示特定层或网络部分或网络的信道中的最不重要信道。“最后”一词应在重要性顺序的背景下理解。根据一些实施例,这种最不重要信道指示也可以被解释为最不重要信道指示符。最不重要信道是根据其重要性排序的信道中的信道,具有较低重要性的信道紧随其后,这些信道被认为对神经网络任务不重要。例如,如果信道1至M根据其重要性(从最重要到最不重要)按降序排序,如果信道k+1至M不被认为对神经网络任务重要,则信道k是最不重要信道。这样的信道k+1到M,例如,不需要包括在码流中。在这种情况下,最不重要信道指示符可用于指示码流中不存在这些信道k+1到M,以便它们的编码/解码可以被旁路。然后,在码流中传送与信道1至k有关的数据,以便执行它们的编码/解码。
在一个示例性实现方式中,排序顺序在设计阶段是预定义的,并且在解码端(以及编码端)已知,而不需要传输。最不重要系数的索引被插入编码器侧的码流中。图15示出了解码器侧的方法的示例。在步骤S510中,从解码器侧的码流中获取最不重要系数的索引。最不重要信道索引可以以直接形式在码流中指示,即语法元素last_significant_channel_idx可以包括在码流中(可能是熵编码的)。下文将讨论替代方法和间接指示。
在步骤S520中,在神经网络层或多层的所有信道上执行循环。当前信道是当前迭代i中的信道,即,第i信道。然后,对于每个第i信道解码器,通过比较S530索引i与最不重要信道索引,确定channel_presence_flag[i]。如果i在最不重要索引之上,则在步骤S540中,channel_presence_flag[i]被设置为等于假。否则,在步骤S550中,channel_presence_flag[i]被设置为真。需要说明的是,在本实施例中,关于最不重要信道的指示,信道存在标志不是码流中实际包括的标志。相反,在这种情况下,信道存在标志仅仅是内部变量,其从指示的最不重要信道索引推导,如上文步骤S520至S550中所示。
下面给出了说明码流生成和解析过程的对应示例性语法表:
然后,在信道信息(数据)解析阶段,在步骤S560中,解码器使用推导的channel_presence_flag[i]来决定是在步骤S570中从码流中解析信道信息(如果channel_presence_flag[i]=真)还是在步骤S580中跳过(不)解析(如果channel_presence_flag[i]=假)。如在前面的实施例中提到的,旁路可以包括在步骤S580中使用预定义的值(例如零)初始化信道信息。图15的流程图显示了信道存在标志的推导是出于解释目的,并且仅代表了一个示例。通常,步骤S530可以直接决定是继续步骤S570还是步骤S580,而不需要中间推导信道存在标志。换句话说,信道存在标志仅隐式地推导,如果有利于解析或语义解释过程的其它部分进一步使用,则可以根据实现方式存储信道存在标志。这也适用于上述语法。
在此示例中,通过从所述码流中解码根据从最重要单元到最不重要信道的重要性顺序在所述码流中排序的信道的方式,执行解码。信道信息(数据)可以被熵编码,在这种情况下,上述方法可以包括对信道数据进行熵解码的步骤S590。在收集所有信道之后,在步骤S595中,信道被馈送到神经网络的对应层。
然而,本发明并不限于在编码端和解码端推导或已知重要性顺序的情况。根据示例性实现方式,获取重要性顺序包括:从码流中解码重要性顺序的指示。
具体地,在示例性实现方式中,解码器通过解析对应的语法元素从码流中获取重要性顺序。重要性顺序有助于建立每个重要性索引和信道设计索引之间的对应关系。在这里,在信道设计索引下,理解在模型设计中对信道进行索引的索引。例如,信道设计顺序可以是在神经网络处理期间,根据与信道内容无关的预定义约定对一层的信道进行编号的顺序。
包括重要性索引和对应设计索引在内的重要性顺序信息的示例见图18的(A)部分。从图中可以看出,值0到191的设计索引表示信道,例如神经网络中特定层的信道。在如上所述根据预定重要性执行索引的特定情况下,将索引分配给信道被称为重要性顺序。在图18的(A)部分中,最不重要信道索引是190,这意味着191个信道0到190的数据在码流中被指示,而索引191的第192个信道的数据不被指示。
类似地,图17示出了一种方法,其中在步骤S610中,从码流中获取最不重要信道指示符。然后,步骤S620表示信道上的循环。对于每个第i信道,根据从码流中获取的重要性顺序,解码器确定S630设计索引d,并通过比较S635索引i与最不重要信道索引来确定对应的channel_presence_flag[d]。如果i高于最不重要索引,则在步骤S645中,channel_presence_flag[d]被设置为等于假。否则,在步骤S640中,channel_presence_flag[d]被设置为真。然后,在信道信息解析阶段,解码器使用channel_presence_flag[d]来定义(例如在决定步骤S650中)是在步骤S670中从码流中解析信道信息(如果channel_presence_flag[d]=真)还是在步骤S660中用预定义值(例如,零)初始化信道信息(如果channel_presence_flag[d]=假)。此外,在步骤S680中,信道信息还可以通过算术解码器等熵解码器进行解码。最后,在步骤S690中,将所有信道的经解码信道信息提供给对应的神经网络层。
下面给出了示例性语法表,说明了在码流中指示重要性顺序的实施例的码流生成和解析过程:
/>
重要性顺序获取元素的示例语法如下:
从obtain_significance_order()的语法可以看出,重要性顺序是通过迭代信道索引i并将设计信道索引design_channel_idx分配给每个信道i来获取的,该索引具有第i个最高重要性。语法也可以被视为设计信道索引的列表,这些索引根据相应信道的重要性排序。然而,需要说明的是,该语法仅是示例性的,而不限制在编码器和解码器之间传递重要性顺序的方式。
这种方法的技术好处之一(指示最不重要信道指示符)是内容适应性。事实上,CNN的不同信道可以代表自然图像或视频的不同特征。为了通用性起见,在设计和训练阶段,CNN可以被瞄准,以涵盖可能输入信号的更广泛可变性。在一些实施例中,编码器具有识别和优化用于指示的信息量的灵活性,例如通过使用如上所述的方法之一。需要说明的是,重要性顺序信息(指示符)可以以不同的粒度等级传输,例如每个图像一次,每个图像的一部分一次,每个序列或图像组一次。粒度可以是预先设置的,也可以是由标准预先定义的。或者,编码器可以具有根据内容属性决定何时以及多久指示重要性顺序信息的灵活性。例如,一旦在序列中检测到新场景,由于统计属性的更改,发送或更新重要性顺序信息可能是有益的。
在一些实施例中,在解码器侧,获取重要性顺序包括:根据之前经解码的关于已生成特征图的源数据的信息,推导重要性顺序。具体地,解码器可以使用关于在码流中传输的经编码内容的类型的补充信息来确定重要性顺序。例如,补充信息可以区分专业生成的内容、用户生成的内容、摄像机捕获或计算机生成的内容、视频游戏等。或者,补充信息可以区分不同的色度采样率类型,如YUV420、YUV422或YUV444。另外或可替换地使用描述信息的其它源。
根据示例性实现方式,获取重要性顺序包括:根据之前解码的关于已生成特征图的源数据类型的信息,推导重要性顺序。
在上述实施例和实现方式中的任何一个中,经编码码流可以以提供一些比特率可扩展性支持的方式组织。这是可以实现的,例如,因为CNN信道信息根据信道的相对重要性放置在码流中,最重要的信道最先,最不重要的信道最后。如上所述,定义码流中信道顺序的相对信道重要性可以在设计阶段定义,并且编码器和解码器都可以知道,使得它不需要在码流中传输。或者,重要性顺序信息可以在编码过程期间定义或调整,并可以包括在码流中。后一种选项提供了更多的灵活性和对内容的特定功能的适应性,这可能会实现更好的压缩效率。
根据示例性实现方式,最不重要信道的指示可以对应于从码流中解码的质量指示符,所述质量指示符表示由压缩特征图的区域产生的所述经编码特征图的质量。例如,最不重要信道索引可以通过使用在码流中传输的质量指示符和查找表以间接形式指示,查找表定义了质量等级和用于重建具有期望质量等级的图像的信道之间的对应关系。例如,图16的(A)部分和(B)部分示出了每个质量等级与相应的最不重要信道的设计索引关联的查找表。换句话说,对于输入(所需)质量水平,查找表提供最不重要信道索引。因此,如果码流的质量水平在解码器侧被指示或推导,则最不重要信道指示不需要在码流中指示。
需要说明的是,质量等级的量可能与模型中的信道量不对应。例如,在(图16的(B)部分)中的给定示例中,质量等级的量为100(从0到99),信道的量为192(从0到191)。例如,在给定的示例中,对于质量等级0,最不重要信道索引是1,对于质量等级98,最不重要信道索引是190。
图18示出了查找表的其它示例。如上所述,例如参考图17,最不重要信道索引可以例如通过使用在码流中传输的质量指示符和查找表,以直接形式或间接形式在码流中指示,查找表定义了质量等级和用于重建具有期望质量等级的图像的信道之间的对应关系。同样在图18中,质量等级的量是100(从0到99),信道的量是192(从0到191)。在这种情况下,最不重要信道被定义为与指定(所需)质量水平相对应的重要性顺序中的最后一个信道。例如,在给定的示例中,对于质量等级0,最不重要信道索引是1,对于质量等级98,最不重要信道索引是190。在图18的(B)部分中,显示了质量水平、重要性索引和设计索引之间的关系。可以看出,重要性索引可能与设计索引有很大差异。
通常,最不重要信道的指示对应于重要性顺序内的最不重要信道的索引。换句话说,M个信道按从1到M的重要性顺序排序和索引。
例如,在包括图像或视频编码的应用中,可以在编码器侧(例如由用户或应用等)选择质量设置。这样的质量设置(指示符)然后可以与最不重要信道的特定值关联,如图16和图18中所示。例如,重建后所需的图像/视频质量越高,指示的信道就越多,即,最不重要信道索引越高(在所有信道的索引中,根据其重要性降序排序)。需要说明的是,这些只是示例,信道排序可以以升序执行,或者升序/降序甚至可以是可选择的并且可以指示。
例如,根据由应用要求定义的所需粒度等级,可伸缩性等级可以在每个CNN信道上定义,也可以通过将几个信道分组到一个可伸缩性等级中定义,如图19所示。这提供了额外的灵活性,以更好地适应特殊应用任务,允许通过丢弃与可扩展性等级对应的最不重要的特征图信道来降低比特率,而无需重新编码。
信道排序的另一个标准可能是信道的相似性。例如,这种相似性可以估计为对信道信息进行编码所需的比特量。表示信道信息所需的比特量相似,可被视为信道信息性的相似水平。信息量可用作对信道(从最大到最小的比特量或从最小到最大)进行排序的标准,以将相似的信道依次放入码流中。这在使用上下文自适应算术编码(context adaptivearithmetic coding,CABAC)的情况下带来了额外的压缩效率好处,因为概率模型随着符号解码而更新。这提供了模型更准确的概率估计,从而提高了压缩效率。
存在特征图的一部分
区域存在指示符和/或边信息存在指示符的指示可以针对特征图的区域执行。在一些实施例中,区域是特征图的信道。由卷积层生成的特征图可以保留(至少部分)特征图值之间的空间关系,类似于输入图像样本的空间关系。因此,特征图信道可以具有对重建质量具有不同重要性的区域,例如包括对象边缘的平坦和非平坦区域。将特征图数据拆分为单元有助于捕获这种区域结构,并利用这种结构来提高压缩效率,例如,通过跳过平坦区域特征值的传输。
根据示例性实现方式,包括信道特征图的信道信息具有一个或多个指示符,指示信道的特定空间区域是否存在于码流中。换句话说,CNN区域是CNN信道的任意区域,码流还包括用于任意区域定义的信息。要指定区域,可以使用已知的二维空间分区方法。例如,可以应用四叉树分区或其它分层树分区方法。四叉树分区是一种分区方法,有助于通过递归地将二维空间细分为四个象限或区域来分区它。
例如,解码方法(例如根据上述实施例和示例性实现方式中的任一项的方法)还可以包括从码流中解码指示特征图的区域划分为单元的区域划分信息的步骤,并且根据划分信息,解码(从码流中解析)或不解码(不解析)单元存在指示,指示是否要从不解码区域的单元的码流中解析特征图数据。
相应地,编码方法判断特征图的区域是否应进一步划分为单元。如果是,则将指示将特征图的区域划分为单元的划分信息插入到码流中。否则,指示特征图的区域不划分为单元的划分信息被插入到码流中。需要说明的是,划分信息可以是可以进一步熵编码的标志。然而,本发明并不限于此,在应用划分的情况下,划分信息还可以联合指示划分的参数。
如果应用了划分,编码器可以进一步决定码流中是否存在特定单元。相应地,提供了表示码流中是否包括与该单元对应的特征图数据的单元存在指示。需要说明的是,单元存在指示符可以被认为是上述区域存在指示符的特殊情况,并且上述描述也适用于本实施例。
在一些实施例中,区域的区域划分信息包括指示码流是否包括指定区域单元的维度和/或位置的单元信息的标志。解码方法包括从码流中解码每单元区域的单元存在指示。解码方法包括:根据单元的单元存在指示的值,从码流中解析或不解析单元的特征图数据。
在一些实施例中,所述单元信息指定所述区域的分层划分,包括四叉树、二叉树、三叉树或三角形划分中的至少一个。
四叉树是一种树数据结构,其中每个内部节点正好有四个子节点。四叉树最常用于通过递归地将二维空间细分为四个象限或区域来划分二维空间。与叶单元关联的数据因应用而异,但叶单元代表“有趣的空间信息单元”。在四叉树划分方法中,细分的区域是正方形,每个区域可以进一步划分为四个子区域。二叉树和三叉树方法还可以包括矩形形状的单元,每个内部节点相应地具有两个或三个子节点。此外,可以通过使用掩模或几何规则(例如获得三角形单位形状)来实现任意的划分形状。此数据结构被命名为分割树。分割方法可以包括在一个树结构中的不同树的组合,如四叉树、二叉树和/或三叉树。具有不同的单元形状和划分规则可以更好地捕获特征图数据的空间结构,并以最有效的方式在码流中指示。所有形式的分割树都有一些共同的特征:它们将空间分解为可适应的单元;每个单元(或桶)都有最大容量;当达到最大容量时,桶将被划分;树目录遵循分割树的空间分解。
图20为块(二维图像或特征图的单元)2000的四叉树分割的示意图。在分层划分为四个块的每个步骤中,每个块可以被划分,但不是必须被划分。在第一步骤中,块2000被分成四个相等的块,其中一个是2010。在第二步骤中,四个块中的两个(在本例中位于右侧的块)被进一步分割,每个块再次划分为四个大小相等的块,包括块2020。在第三步骤中,八个块中的一个进一步划分成四个大小相等的块,包括块2030。
需要说明的是,其它分割方法,如二叉树和三叉树分割,也可以用来实现任意区域定义和解析相应的存在标志的相同目的。下面显示的是一个语法表,说明了语法的可能实现方式和对应的解析过程(以及对应的码流生成过程)。对于每个CNN信道,首先调用parse_quad_tree_presence函数,该函数读取有关任意区域定义的信息(split_qt_flag),填充有关区域大小(宽度,高度)和位置(x,y)的信息,解析与信道的每个任意区域对应的presence_flag。
需要说明的是,导致相同结果的其它实现方式的变化是可能的,例如,区域存在标志的解析可以与解析循环的一次迭代中的信道信息解析相结合,或者区域划分信息可以在所有信道的信道组中共享,以减少分割信息的指示开销。换句话说,区域划分信息可以指定(将)应用于划分特征图的多个(两个或多个或全部)信道(区域)的划分。
/>
在下面的语法表中,提供了解析区域划分信息的实现方式。以四叉树方法为例。
以下语法表说明了在一组信道中共享区域划分信息(channel_regions_info)的示例,这些信道也可以是特征图的所有信道。
可以分层组织存在信息。例如,如果某个信道(在上述一些示例和实施例中描述)的channel_presence_flag等于码流中的假(表示省略所有信道相关信息),则不对该信道执行信道相关信息的进一步解析。如果channel_presence_flag等于真,则解码器解析与特定信道相对应的区域存在信息,然后从码流中检索可能与信道单元相关的区域信道信息。下面所示的示例性语法说明了这一点。
/>
或者,或与上述实施例结合,可以使用附加语法元素来指示是否应启用任意区域存在指示机制。具体地,启用标志可用于指示信道分割是否启用(允许)。
/>
如果每个信道i存在于码流中(由channel_presence_flag[i]标志控制),则为每个信道i指示元素enable_channel_regions_flag[i],并指示是否启用将信道划分为单元。如果启用了分割,解码器通过调用parse_quad_tree_presence()函数,解析码流中的区域拆分信息以及与拆分单元对应的存在标志。一旦获取单元存在标志(channel_regions_info[i][n].presence_flag),解码器就会迭代划分单元的特征图元素。如果单元存在标志等于真,则解码器解析特征图值(decode_latent_value(i,x,y))。否则,特征图值y_cap[i][y][x]被设置为等于常数,例如在此给定示例中的零。
应用变换
根据本实施例,表示信道信息的(CNN)信道特征图在码流中指示之前被变换。码流还包括定义最不重要变换的信道特征图系数的位置的语法元素。变换(在此也称为变换)可以是任何合适的变换,例如,该变换可以造成一些能量压缩。在完成特征图数据的正向变换后,编码器对从变换后的系数矩阵的左上角开始的最后一个非零系数进行曲折扫描(左上角是x=0,y=0的开始)。在另一种可能的实现方式中,编码器可以决定丢弃一些非零系数,认为它们最不重要。最后一个有效系数的位置(x,y)在码流中指示。
例如,在接收侧,解码器解析对应的语法元素,以定义对应信道的特征图的最不重要变换系数的位置。一旦定义了位置,解码器就会解析属于从左上角(x=0,y=0)开始的区域的变换后的特征图数据,并在最不重要系数位置(x=last_significant_x,y=last_significant_y)结束。转换后的特征图数据的其余部分由常数值(例如零)初始化。当对应CNN信道的变换系数已知时,可以执行逆变换。基于此,可以获取信道特征图数据。对于所有输入信道,这种过程可以完成。然后,特征图数据可以被馈送到表示生成模型的重建网络。
一般来说,从码流中解码区域在图21中示出,区域是信道。具体地,在步骤S710中,在所有待处理的信道中提取信道。步骤S710对应于待处理的信道上的循环。解码还包括从码流中提取S720,表示区域(这里,示例性地是信道)系数中最后一个系数的位置的最不重要系数指示符。步骤S730对应于系数上的循环。具体地,循环从最重要系数到最不重要系数遍历每个系数。在循环中,所述方法实现从码流(对于S710循环的区域)中解码(包括解析S750和可能的熵解码S760)重要性系数,并根据预定义的规则设置S740最不重要系数指示符之后的系数。在图21的示例性流程图中,预定义规则将重要性顺序中最不重要系数之后的系数设置为零。然而,如前面对术语“预定义规则”所描述的,规则还可以定义将系数设置为不同的值,或者可以定义待设置的值将从码流或通过某种方法(例如从先前使用的值推导)等获取。通常,本实施例不限于任何特定的预定义规则。
就方法步骤而言,在步骤S735中,测试(判断、检查)当前系数(由循环步骤S730给出的系数)是重要系数还是非重要系数。在这里,重要系数是样本位置低于并等于最不重要系数的系数。非重要系数是高于(超过)最不重要系数的系数。在本示例中,假设重要性顺序对应于变换后的样本顺序。通常假设DC和低频系数比高频系数更重要。样本位置是由区域特征图的1D变换(可能事先扫描为1D)产生的变换系数的位置(索引)。需要说明的是,本发明不限于1D变换的应用或任何特定的数据格式。系数的重要性顺序可以以不同的方式定义,例如,在标准或约定中,甚至在码流等中提供。
在获取所有系数之后(在完成循环S730之后),解码方法包括通过区域系数的逆变换获取S770区域特征数据。如图21所示,当对所有信道的数据进行解码时,解码方法还可以包括步骤S780,将所有信道的数据馈送到重建网络。
根据示例性实现方式,逆变换是离散余弦逆变换、离散正弦逆变换或修改通过所述离散余弦逆变换或离散正弦逆变换得到的逆变换,或卷积神经网络变换。例如,卷积神经网络层可以被视为变换,并且使用如上所述的最不重要系数指示方法训练将导致所需的能量压缩。此外,自动编码器的最后一层分析部分(生成潜在空间表示y)和自动编码器的第一层生成部分(接受量化的潜在表示)可以相应地视为正反变换。因此,在特征图编码阶段期间,在中间具有如上所述的最不重要系数指示方法将导致在联合训练期间获得的前向卷积层变换的期望能量压缩。本发明不限于这些变换种类。相反,可以使用其它变换,如KLT、傅里叶、哈达马或其它正交的和可能的酉变换。
下面显示的是一个语法表,说明了当变换应用于二维信道的特征图数据时的解析过程,维度由索引x和y表示。需要说明的是,本发明不限于特征图数据的任何特定维度。变换可以在扫描之后或在将一些预定义重要性顺序内的位置分配给数据之后应用。
在上面的示例中,最不重要系数位置由对应于2D特征图(或其区域)中最不重要系数位置的x和y坐标的两个数字表示。在另一种可能的实现方式中,最不重要系数位置可以在语法中由与2D特征图(其区域)的曲折扫描顺序相对应的单个数字表示。
图22为可在编码端执行的示例性方法的流程图。需要说明的是,图22的编码与图21的解码可以都进行,使得由图22的编码方法生成的码流可以由图21的解码方法解析/解码。
编码方法包括在特征图(由神经网络等机器学习模型的层输出的数据)的信道上的循环S810。在步骤S820中,通过正向变换来变换当前信道(循环S810的当前步骤的信道)的数据。如上所述,前向变换在这里可以包括将信道特征扫描成1D样本序列,然后用1D变换对其进行变换,以获取1D系数序列。这种1D系数序列可以被认为遵循重要性顺序。如上所述,此示例并不限制。变换可以具有更多的维度,扫描顺序和/或重要性顺序可以不同。
在步骤S830中,确定最不重要位置。最不重要位置的确定可以根据所需的重建质量和/或速率执行。例如,类似于参考图12所示的方法,可以累积系数的质量和/或速率,并且一旦质量和/或速率或两者的组合超过所需阈值,当前系数就被视为最不重要系数。然而,其它方法也是可能的。在步骤S840中,将在步骤S830中确定的最不重要系数的位置(其指示)插入码流中。在插入码流中之前,位置的指示可以通过算术编码或其它可变长度编码方法等熵编码进行编码。步骤S850表示在每个变换系数上的循环。在系数位置低于或等于最不重要系数的位置的情况下,在步骤S880(在步骤S870中可能用算术编码器进行编码)将当前系数插入码流中。在对所有信道的系数进行编码之后,码流可以被馈送(或发送)到重建网络。
如本领域技术人员所清楚的,本实施例可以与上述任何实施例结合。换句话说,最不重要系数指示可以与最不重要信道一起指示。指示可以对比信道小(例如通过分割获取)或更大的区域执行。还可以提供边信息。通常,可以组合上述实施例,以便提供更多的灵活性。
此外,如上所述,本发明还提供了用于执行上述方法的步骤的设备。图23示出了用于根据码流对供神经网络处理的特征图进行解码的设备2300。设备包括区域存在指示符获取模块2310,用于根据码流中的信息,为特征图的区域,获取区域存在指示符。此外,设备2300还可以包括解码模块,用于对区域进行解码,包括:当区域存在指示符具有第一值时,从码流中解析用于对区域进行解码的数据;当区域存在指示符具有第二值时,不执行从码流中解析用于对区域进行解码的数据。
此外,图24示出了用于根据码流对供神经网络处理的特征图进行解码的设备2400。设备包括:边信息指示符获取模块2410,用于从码流中获取关于特征图的边信息指示符;解码模块2420,用于对特征图进行解码,包括:当边信息指示符具有第五值时,从码流中解析用于对特征图进行解码的边信息;当边信息指示符具有第六值时,不执行从码流中解析用于对特征图进行解码的边信息。
对应于上述解码设备2300,图23中示出了用于将由神经网络处理的特征图编码2350到码流中的设备。设备包括特征图区域存在指示获取模块2360,用于获取特征图的区域的区域存在指示符。此外,设备包括编码控制模块2370,用于根据获取的特征图区域存在指示符,作出决定:当特征图区域存在指示符具有第一值时,将特征图的区域编码到码流中;当特征图区域存在指示符具有第二值时,不将特征图的区域编码到码流中。
对应于上述解码设备2400,图24中示出了用于将供神经网络处理的特征图编码到码流中的设备2450。设备可以包括:特征图获取模块2460,用于获取特征图。此外,设备2450还可以包括编码控制模块2470,用于决定是否指示关于特征图的边信息,并且在码流中:指示表示第三值和边信息的边信息指示符;或者指示表示第四值且没有边信息的边信息指示符。
需要说明的是,这些设备可以进一步用于执行包括上述示例性实现方式的任何附加特征。例如,提供了一种用于根据码流对供神经网络处理的特征图进行解码的设备,其中,所述设备包括处理电路,用于执行上文所述的任一解码方法的步骤。类似地,提供了一种用于将供神经网络处理的特征图编码到码流中的设备,其中,所述设备包括处理电路,用于执行上文所述的任一编码方法的步骤。
可以提供利用设备2300、2350、2400和/或2450的其它设备。例如,用于图像或视频编码的设备可以包括编码设备2400和/或2450。此外,可以包括解码设备2300或/或2350。用于图像或视频解码的设备可以包括解码设备2300和/或2350。
总之,在本发明的一些实施例中,解码器(视频或图像或特征图)可以包括用于从码流中获取特征图数据的人工神经网络。解码器可用于从码流中读取区域存在标志;如果区域存在标志为真,则读取与区域对应的特征图数据;如果区域存在标志为假,则用预定义值(预定义值为示例性0)初始化特征图数据的区域;根据获取的特征图数据将数据馈送给人工神经网络。人工神经网络可以是卷积神经网络。该区域可以是卷积神经网络的信道输出。可选地或附加地,区域可以是卷积神经网络信道输出的一部分,码流还可以包括用于区域定义(位置、形状、大小)的信息。换句话说,区域参数可以在码流中定义。人工神经网络不一定非得是CNN。通常,神经网络可以是全连接的神经网络。
解码器还可以用于通过熵解码读取(从码流中提取)特征图数据,例如哈夫曼(解)编码、范围编码、算术编码、非对称数字系统(Asymmetric numeral system,ANS)或其它类型的可变长度代码的熵。区域存在标志可以被编码为具有相应概率更新的上下文编码二进制位。
硬件和软件中的一些示例性实现方式
图25示出了可以部署上述编码器-解码器处理链的对应系统。图25为示例性译码系统的示意性框图,例如可以利用本申请技术的视频、图像、音频和/或其它译码系统(或简称为译码系统)。视频译码系统10的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)表示可用于根据本申请中描述的各种示例执行各技术的设备示例。例如,视频编码和解码可以采用神经网络,例如图1至图7中所示的神经网络,该神经网络可以是分布式的并且可以进行上述码流解析和码流生成以在分布式计算节点(两个或两个以上)之间传送特征图。
如图25所示,译码系统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可以是可选组件。需要说明的是,预处理还可以使用利用存在指示符指示的神经网络(例如在图1至图7中的任何一个中)。
视频编码器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均可配置为图25中从源设备12指向目的地设备14的通信信道13的箭头所表示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码的图像数据传输)相关的任何其它信息等。解码器30用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(例如,使用基于图1至图7中的一个或多个的神经网络)。
目的地设备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)或任何类型的其它显示器。
尽管图25将源设备12和目的地设备14描绘为单独的设备,但是设备的实施例也可以包括源设备12和目的地设备14或同时包括源设备12的对应功能和目的地设备14的对应功能。在这些实施例中,源设备12或对应功能以及目的地设备14或对应功能可以使用相同的硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据所述描述,技术人员将清楚地看到,如图25所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(精确)划分可以根据实际设备和应用而变化。
编码器20(例如,视频编码器20)或解码器30(例如,视频解码器30)或两者都可以通过处理电路实现,例如,一个或多个微处理器,数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以体现包括神经网络的各种模块,例如图1至图7中任一个所示的神经网络或其部分。解码器30可以由处理电路46实现,以体现结合图1至图7所述的各种模块和/或本文描述的任何其它解码器系统或子系统。处理电路可用于执行稍后将论述的各种操作。当所述技术部分地以软件形式实现时,设备可将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以使用一个或多个处理器以硬件形式执行所述指令,以执行本发明的技术。视频编码器20或视频解码器30可作为组合编码器/解码器(编解码器)的一部分集成在单个设备中,如图26所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发射器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图25所示的视频译码系统10仅仅是示例性的,本申请提供的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是将数据编码到存储器和/或从存储器中检索数据并对数据进行解码的设备来执行。
图27为本发明实施例提供的视频译码设备1000的示意图。视频译码设备1000适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备1000可以是解码器(如图25的视频解码器30)或编码器(如图25的视频编码器20)。
视频译码设备1000包括用于接收数据的入端口1010(或输入端口1010)和接收单元(receiver unit,Rx)1020,用于处理数据的处理器、逻辑单元或中央处理单元(centralprocessing unit,CPU)1030,用于发送数据的发送单元(transmitter unit,Tx)1040和出端口1050(或输出端口1050)以及用于存储数据的存储器1060。视频译码设备1000还可包括耦合到入端口1010、接收单元1020、发送单元1040和出端口1050的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于光信号或电信号的出口或入口。
处理器1030通过硬件和软件来实现。处理器1030可实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器1030与入端口1010、接收单元1020、发送单元1040、出端口1050和存储器1060通信。处理器1030包括译码模块1070。译码模块1070实现上文所公开的实施例。例如,译码模块1070执行、处理、准备或提供各种译码操作。因此,通过译码模块1070为视频译码设备1000的功能提供了实质性的改进,并且影响了视频译码设备1000到不同状态的切换。或者,以存储在存储器1060中并由处理器1030执行的指令来实现译码模块1070。
存储器1060可以包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储这些程序,并且存储在程序执行过程中读取的指令和数据。例如,存储器1060可以是易失性和/或非易失性的,并且可以是只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图28为示例性实施例提供的装置800的简化框图,所述装置800可用作图25中的源设备12和目的地设备14中的任一个或两个。
装置1100中的处理器1102可以是中央处理器。或者,处理器1102可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器1102等单个处理器来实现所公开的实现方式,但使用一个以上的处理器可以提高速度和效率。
在一种实现方式中,装置1100中的存储器1104可以是只读存储器(read onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器1104。存储器1104可以包括处理器1102通过总线1112访问的代码和数据1106。存储器1104还可包括操作系统1108和应用程序1110,应用程序1110包括使得处理器1102执行本文所述方法的至少一个程序。例如,应用程序1110可以包括应用1至N,还包括执行本文所述方法的视频译码应用。
装置1100还可以包括一个或多个输出设备,例如显示器1118。在一个示例中,显示器1118可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器1118可以通过总线1112耦合到处理器1102。
虽然装置1100中的总线1112在本文中描述为单个总线,但是总线1112可以包括多个总线。此外,辅助存储器可以直接与装置1100的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置1100可以具有各种各样的配置。
一些数学运算符和符号
本申请中使用的示例性语法描述中的数学运算符类似于用于描述现有编解码器中的语法的运算符。编号和计数规范通常从0开始,例如,“第一”相当于第0个,“第二”相当于第1个,等等。
以下算术运算符定义如下:
+加法
–减法(作为双参数运算符)或者非运算(作为一元前缀运算符)
*乘法,包括矩阵乘法
x%y取模运算。x除y的余数,这里x和y都必须是整数,并且x≥0和y>0。
以下逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”
x||y x和y的布尔逻辑“或”
!布尔逻辑“非”
x?y:z如果x为真或不等于0,则求y的值,否则,求z的值。
以下关系运算符定义如下:
>大于
>=大于或等于
<小于
<=小于或等于
==等于
!=不等于
当一个关系运算符应用于一个已被赋值“na”(不适用,not applicable)的语法元素或变量时,值“na”为该语法元素或变量的不同值。值“na”不等于任何其它值。
以下按位运算符定义如下:
&按位“与”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
|按位“或”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
^按位“异或”。当对整数参数进行运算时,运算的是整数值的二补数表示法。当对二进制参数进行运算时,如果该二进制参数包含的位比另一个参数包含的位少,则通过添加更多等于0的有效位来扩展较短的参数。
x>>y x的二补数整数表示算术右移y个二进制数位。只有y为非负整数值时才有这个函数定义。右移的结果是移进最高有效位(most significant bit,MSB)的比特位等于移位运算之前的x的MSB。
x<<y x的二补数整数表示算术左移y个二进制数位。只有y为非负整数值时才有这个函数定义。左移的结果是移进最低有效位(least significant bit,LSB)的比特位等于0。
以下算术运算符定义如下:
=赋值运算符
++增,即,x++等于x=x+1;当在阵列索引中使用时,等于增运算之前变量的值。
––减,即,x––等于x=x–1;当在阵列索引中使用时,等于减运算之前变量的值。
+=增加指定量,即,x+=3等于x=x+3,x+=(–3)等于x=x+(–3)。
–=减少指定量,即,x–=3等于x=x–3,x–=(–3)等于x=x–(–3)。
以下表示法用来说明值的范围:
x=y..z x取从y到z(包括y和z)的整数值,其中,x、y和z都是整数,z大于y。
当没有使用括号来显式指示表达式中的优先顺序时,适应以下规则:
–高优先级的运算在低优先级的任何运算之前计算。
–相同优先级的运算从左到右依次计算。
下表从最高到最低说明运算的优先级,表中位置越高,优先级越高。
对于C编程语言中也使用的运算符,本规范中运算符优先级顺序与C编程语言中优先级顺序相同。
表:从最高(表格顶部)到最低(表格底部)的运算优先级
在文本中,逻辑运算的语句用数学形式描述如下:
if(condition 0)
statement 0
else if(condition 1)
statement 1
……
else/*剩余条件的信息备注*/
statement n
可以使用如下方式描述:
……如下/……则:
–如果条件0,则为语句0
–否则,如果条件1,则为语句1
–……
–否则(剩余条件的信息备注),则为语句n
文本中的每个“如果……否则,如果……否则,……”表述通过“如果……”接着是“……如下:”或“……则:”引出。“如果……,否则,如果……否则,……”的最后一个条件总是“否则,……”。通过将“……如下:”或“……则”与结尾语句“……否则”相匹配来识别中间有“如果……否则,如果……否则,……”的语句。
在文本中,逻辑运算的语句用数学形式描述如下:
if(condition 0a&&condition 0b)
statement 0
else if(condition 1a||condition 1b)
statement 1
……
else
statement n
可以使用如下方式描述:
……如下/……则:
–如果以下所有条件都为真,则为语句0:
–条件0a
–条件0b
–否则,如果以下条件中的一个或多个为真,则为语句1:
–条件1a
–条件1b
–……
–否则,为语句n
在文本中,逻辑运算的语句用数学形式描述如下:
if(condition 0)
statement 0
if(condition 1)
statement 1
可以使用如下方式描述:
当条件0,则为语句0,
当条件1,则为语句1,
总之,本发明涉及一种用于采用神经网络的系统的特征图信息的高效指示。具体地,在解码端,存在指示符从码流中解析或根据从码流中解析的信息推导。根据解析的存在指示符的值,解析与特征图区域相关的其它数据或不进行所述解析。例如,所述存在指示符可以是表示所述码流中是否包括特征图数据的区域存在指示符,或者可以是表示所述码流中是否包括与所述特征图数据相关的边信息。类似地,提供了一种编码方法以及编码和解码设备。

Claims (48)

1.一种用于根据码流对供神经网络处理的特征图进行解码的方法,其特征在于,所述方法包括:
根据所述码流中的信息,为所述特征图的区域获取(S110)区域存在指示符;
对所述区域进行解码(S150),包括:
当所述区域存在指示符具有第一值时,从所述码流中解析(S130)用于对所述区域进行解码的数据;
当所述区域存在指示符具有第二值时,不执行(S140)从所述码流中解析用于对所述区域进行解码的数据。
2.根据权利要求1所述的方法,其特征在于,当所述区域存在指示符具有第二值时,所述对所述区域进行解码(S150)还包括:
根据预定规则设置(S230)所述区域。
3.根据权利要求2所述的方法,其特征在于,所述预定规则表示将所述区域的特征设置为常数。
4.根据权利要求3所述的方法,其特征在于,所述常数为0。
5.根据权利要求3或4所述的方法,其特征在于,包括从所述码流中解码所述常数的步骤(S240)。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述码流包括所述区域存在指示符。
7.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:从所述码流中获取边信息;根据所述边信息获取所述区域存在指示符。
8.根据权利要求7所述的方法,其特征在于,包括:
从所述码流中获取(S310)边信息存在指示符;
当所述边信息存在指示符具有第三值时,从所述码流中解析(S330)所述边信息;
当所述边信息存在指示符具有第四值时,不执行(S340)从所述码流中解析所述边信息,
其中,所述边信息包括所述区域存在指示符和供神经网络处理以获取用于对所述区域进行熵解码的估计概率模型的信息中的至少一个。
9.根据权利要求8所述的方法,其特征在于,当所述边信息存在指示符具有所述第四值时,所述方法包括将所述边信息设置(S580)为预定边信息值。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述区域存在指示符是能够取仅由所述第一值和所述第二值形成的两个值中的一个值的标志。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述区域是所述特征图的信道。
12.根据权利要求11所述的方法,其特征在于,还包括:
获取(S610)表示所述特征图的多个信道的重要性的重要性顺序;
获取(S630)最不重要信道指示符;
根据所述最不重要信道指示符,获取(S640、S645)所述区域存在指示符。
13.根据权利要求12所述的方法,其特征在于,最不重要信道的指示对应于从所述码流中解码的质量指示符,所述质量指示符指示压缩所述特征图的所述区域产生的经编码特征图的质量。
14.根据权利要求12所述的方法,其特征在于,所述最不重要信道的指示对应于所述重要性顺序内的所述最不重要信道的索引。
15.根据权利要求12至14中任一项所述的方法,其特征在于,所述获取所述重要性顺序包括:从所述码流中解码所述重要性顺序的指示。
16.根据权利要求12至15中任一项所述的方法,其特征在于,所述获取(S630)所述重要性顺序包括:根据之前解码的关于已生成所述特征图的源数据的信息,推导所述重要性顺序。
17.根据权利要求12至16中任一项所述的方法,其特征在于,所述获取(S630)所述重要性顺序包括:根据之前解码的关于已生成所述特征图的源数据类型的信息,推导所述重要性顺序。
18.根据权利要求12至17中任一项所述的方法,其特征在于,还包括:从所述码流中解码(S680)按照从最重要信道到最不重要信道的重要性顺序在所述码流中排序的信道。
19.根据权利要求1至18中任一项所述的方法,其特征在于,所述方法还包括以下步骤:
从所述码流中解码指示将所述特征图的区域划分为单元的区域划分信息;
根据所述划分信息,获取指示是否从所述码流中解析特征图数据以对所述区域的单元进行解码的单元存在指示。
20.根据权利要求18所述的方法,其特征在于,
所述区域的所述区域划分信息包括指示所述码流是否包括指定所述区域单元的维度和/或位置的单元信息的标志;
所述方法包括:根据所述码流中的信息,获取所述区域的每个单元的单元存在指示;
根据所述单元的单元存在指示的值,从所述码流中解析或不解析所述单元的特征图数据。
21.根据权利要求19或20所述的方法,其特征在于,所述码流包括所述单元存在指示符。
22.根据权利要求20或21所述的方法,其特征在于,所述单元信息指定所述区域(2000)的分层划分,包括四叉树、二叉树、三叉树或三角形划分中的至少一个。
23.根据权利要求1至22中任一项所述的方法,其特征在于,所述从所述码流中解码所述区域包括:
·从所述码流中提取(S720)指示区域系数中最后一个系数的位置的最不重要系数指
示符;
·从所述码流中解码(S750、S760)所述区域的重要系数;
·根据预定义规则设置(S740)所述最不重要系数指示符之后的系数;
·通过对所述区域的所述系数进行逆变换,获取(S770)所述区域的特征数据。
24.根据权利要求23所述的方法,其特征在于,所述逆变换(S770)是离散余弦逆变换、离散正弦逆变换或通过修改所述离散余弦逆变换或离散正弦逆变换得到的逆变换,或卷积神经网络变换。
25.根据权利要求1至24中任一项所述的方法,其特征在于,还包括:从所述码流中解码指示所述码流是否包括所述特征图的任何边信息的边信息存在标志,其中,所述边信息包括用于供神经网络处理的以获取用于对所述特征图进行熵解码的估计概率模型的信息。
26.根据权利要求1至25中任一项所述的方法,其特征在于,所述对所述区域存在指示符进行解码包括:由上下文自适应熵解码器进行解码。
27.一种用于从码流中解码供神经网络处理的特征图的方法,其特征在于,所述方法包括:
从所述码流中获取(S310)关于所述特征图的边信息指示符;
对所述特征图进行解码(S350)包括:
当所述边信息指示符具有第五值时,从所述码流中解析(S330)用于对所述特征图进行解码的所述边信息;
当所述边信息指示符具有第六值时,不执行(S340)从所述码流中解析用于对所述特征图进行解码的所述边信息。
28.根据权利要求27所述的方法,其特征在于,还包括熵解码(S590),其中,所述熵解码基于由神经网络处理的所述经解码特征图。
29.根据权利要求28所述的方法,其特征在于,当所述边信息指示符具有所述第六值时,所述方法包括将所述边信息设置(S580)为预定边信息值。
30.根据权利要求29所述的方法,其特征在于,所述预定边信息值为0。
31.根据权利要求29或30所述的方法,其特征在于,包括从所述码流中解码(S590)所述预定边信息值的步骤。
32.一种用于对图像进行解码的方法,其特征在于,包括:
根据权利要求1至31中任一项所述的从码流中解码供神经网络处理的特征图的方法;
获取经解码图像,包括通过所述神经网络处理所述经解码特征图。
33.根据权利要求32所述的方法,其特征在于,所述特征图表示:
·经编码图像数据,和/或
·用于对所述图像数据进行解码的经编码边信息。
34.一种用于计算机视觉的方法,其特征在于,包括:
根据权利要求1至31中任一项所述的从码流中解码供神经网络处理的特征图的方法;
执行计算机视觉任务,包括通过所述神经网络处理所述经解码特征图。
35.根据权利要求32所述的方法,其特征在于,所述计算机视觉任务是物体检测、物体分类和/或物体识别。
36.一种用于将供神经网络处理的特征图编码到码流中的方法,其特征在于,所述方法包括:
为所述特征图的区域,获取(S160)区域存在指示符;
根据所述获取的区域存在指示符,作出决定(S170):
当所述区域存在指示符具有第一值时,将所述特征图的所述区域编码(S180)到所述码流中;
或者当所述区域存在指示符具有第二值时,不执行(S190)将所述特征图的所述区域编码到所述码流中。
37.根据权利要求36所述的方法,其特征在于,所述区域存在指示符在所述码流中指示。
38.根据权利要求36所述的编码方法,其特征在于,所述决定(S170)包括评估所述区域的特征的值。
39.根据权利要求36至38中任一项所述的编码方法,其特征在于,所述决定(S170)基于所述区域对所述神经网络处理结果质量的影响。
40.根据权利要求36至39中任一项所述的编码方法,其特征在于,所述决定(S170)包括:
增量确定(S450)传输所述特征图需要的比特的总和,从最重要区域的比特开始向重要性递减的区域继续,直到所述和超过预配置阈值;
对所述和未超过所述预配置阈值的区域和所述经编码区域的具有所述第一值的所述区域存在指示符进行编码(S270、S280);
对非经编码区域的具有所述第二值的所述区域存在指示符进行编码(S470)。
41.一种用于将供神经网络处理的特征图编码到码流中的方法,其特征在于,所述方法包括:
获取(S360)所述特征图;
决定(S370)是否指示关于所述特征图的边信息,并且在所述码流中:
指示(S380)表示第三值和所述边信息的边信息指示符;
或者指示(S390)表示第四值且没有边信息的边信息指示符。
42.一种存储在非瞬时性介质中的计算机程序,其特征在于,包括代码,当所述代码在一个或多个处理器上执行时执行根据权利要求1至41中任一项所述的方法的步骤。
43.一种用于根据码流对供神经网络处理的特征图进行解码的设备(2300),其特征在于,所述设备包括:
区域存在指示符获取模块(2310),用于根据所述码流中的信息,为所述特征图的区域,获取区域存在指示符;
解码模块(2320),用于对所述区域进行解码,包括:
当所述区域存在指示符具有第一值时,从所述码流中解析用于对所述区域进行解码的数据;
当所述区域存在指示符具有第二值时,不执行从所述码流中解析用于对所述区域进行解码的数据。
44.一种用于从码流中解码供神经网络处理的特征图的设备(2400),其特征在于,所述设备包括:
边信息指示符获取模块(2410),用于从所述码流中获取关于所述特征图的边信息指示符;
解码模块(2420),用于对所述特征图进行解码,包括:
当所述边信息指示符具有第五值时,从所述码流中解析用于对所述特征图进行解码的所述边信息;
当所述边信息指示符具有第六值时,不执行从所述码流中解析用于对所述特征图进行解码的所述边信息。
45.一种用于将供神经网络处理的特征图编码到码流中的设备(2350),其特征在于,所述设备包括:
特征图区域存在指示符获取模块(2360),用于获取所述特征图区域存在指示符;
编码控制模块(2370),用于根据所述获取的特征图区域存在指示符,作出决定:
当所述特征图区域存在指示符具有第一值时,将所述特征图的所述区域编码到所述码流中;
当所述特征图区域存在指示符具有第二值时,不执行将所述特征图的所述区域编码到所述码流中。
46.一种用于将供神经网络处理的特征图编码到码流中的设备(2450),其特征在于,所述设备包括:
特征图获取模块(2460),用于获取所述特征图;
编码控制模块(2470),用于决定是否指示关于所述特征图的边信息,并且在所述码流中:
指示表示第三值和所述边信息的边信息指示符;
或者指示表示第四值且没有所述边信息的边信息指示符。
47.一种用于根据码流对供神经网络处理的特征图进行解码的设备,其特征在于,所述设备包括处理电路,用于执行根据权利要求1至31中任一项所述的方法的步骤。
48.一种用于将供神经网络处理的特征图编码到码流中的设备,其特征在于,所述设备包括处理电路,用于执行根据权利要求36至41中任一项所述的方法的步骤。
CN202180071715.4A 2020-10-20 2021-10-20 特征图数据的指示 Pending CN116917926A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
RU2020000559 2020-10-20
RUPCT/RU2020/000559 2020-10-20
PCT/RU2021/050347 WO2022086376A1 (en) 2020-10-20 2021-10-20 Signaling of feature map data

Publications (1)

Publication Number Publication Date
CN116917926A true CN116917926A (zh) 2023-10-20

Family

ID=81290913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180071715.4A Pending CN116917926A (zh) 2020-10-20 2021-10-20 特征图数据的指示

Country Status (7)

Country Link
US (1) US20230262243A1 (zh)
EP (1) EP4197193A1 (zh)
JP (1) JP2023542876A (zh)
KR (1) KR20230046310A (zh)
CN (1) CN116917926A (zh)
TW (1) TWI806199B (zh)
WO (1) WO2022086376A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024015639A1 (en) * 2022-07-15 2024-01-18 Bytedance Inc. Neural network-based image and video compression method with parallel processing
WO2024017173A1 (en) * 2022-07-16 2024-01-25 Douyin Vision (Beijing) Co., Ltd. Method, apparatus, and medium for visual data processing
WO2024057721A1 (ja) * 2022-09-16 2024-03-21 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 復号装置、符号化装置、復号方法、及び符号化方法
WO2024078920A1 (en) * 2022-10-12 2024-04-18 Interdigital Ce Patent Holdings, Sas Latent coding for end-to-end image/video compression
WO2024080623A1 (ko) * 2022-10-12 2024-04-18 삼성전자 주식회사 Ai에 기반한 영상 부호화 장치 및 영상 복호화 장치, 및 이들에 의한 영상의 부호화 및 복호화 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9137664B2 (en) * 2007-05-01 2015-09-15 Qualcomm Incorporated Application logging interface for a mobile device
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
WO2019009448A1 (ko) * 2017-07-06 2019-01-10 삼성전자 주식회사 영상을 부호화 또는 복호화하는 방법 및 장치
US10869036B2 (en) * 2018-09-18 2020-12-15 Google Llc Receptive-field-conforming convolutional models for video coding
CN110971901B (zh) * 2018-09-29 2022-08-02 杭州海康威视数字技术股份有限公司 卷积神经网络的处理方法、装置、设备及存储介质
US11159789B2 (en) * 2018-10-24 2021-10-26 City University Of Hong Kong Generative adversarial network based intra prediction for video coding
EP3672241A1 (en) * 2018-12-17 2020-06-24 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding
US11019360B2 (en) * 2019-03-21 2021-05-25 Qualcomm Incorporated Generalized reference sample derivation methods for intra prediction in video coding
US11843784B2 (en) * 2019-09-25 2023-12-12 Intel Corporation Method and system of multiple channel video coding with cross-channel referencing

Also Published As

Publication number Publication date
TW202223762A (zh) 2022-06-16
WO2022086376A1 (en) 2022-04-28
KR20230046310A (ko) 2023-04-05
EP4197193A1 (en) 2023-06-21
TWI806199B (zh) 2023-06-21
JP2023542876A (ja) 2023-10-12
US20230262243A1 (en) 2023-08-17

Similar Documents

Publication Publication Date Title
CN116917926A (zh) 特征图数据的指示
TWI830107B (zh) 通過指示特徵圖資料進行編碼
US20230336759A1 (en) Decoding with signaling of segmentation information
US20230353764A1 (en) Method and apparatus for decoding with signaling of feature map data
US20230336776A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20230336736A1 (en) Method for chroma subsampled formats handling in machine-learning-based picture coding
US20240064318A1 (en) Apparatus and method for coding pictures using a convolutional neural network
TW202337211A (zh) 條件圖像壓縮
WO2023177318A1 (en) Neural network with approximated activation function
WO2023177317A1 (en) Operation of a neural network with clipped input data
CN116939218A (zh) 区域增强层的编解码方法和装置
WO2023066473A1 (en) Attention based context modelling for image and video compression
WO2024005660A1 (en) Method and apparatus for image encoding and decoding
Le Still image coding for machines: an end-to-end learned approach
Abbas Adapting Computer Vision Models To Limitations On Input Dimensionality And Model Complexity
WO2024005659A1 (en) Adaptive selection of entropy coding parameters
WO2023113635A1 (en) Transformer based neural network using variable auxiliary input
WO2024083405A1 (en) Neural network with a variable number of channels and method of operating the same
WO2023121499A1 (en) Methods and apparatus for approximating a cumulative distribution function for use in entropy coding or decoding data
WO2023172153A1 (en) Method of video coding by multi-modal processing
TW202416712A (zh) 使用神經網路進行圖像區域的並行處理-解碼、後濾波和rdoq
TW202345034A (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