CN115769576A - 通过后滤波的神经图像压缩中的分块内容自适应在线训练 - Google Patents

通过后滤波的神经图像压缩中的分块内容自适应在线训练 Download PDF

Info

Publication number
CN115769576A
CN115769576A CN202280003599.7A CN202280003599A CN115769576A CN 115769576 A CN115769576 A CN 115769576A CN 202280003599 A CN202280003599 A CN 202280003599A CN 115769576 A CN115769576 A CN 115769576A
Authority
CN
China
Prior art keywords
regions
boundary
deblocking
blocks
video
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
CN202280003599.7A
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.)
Tencent America LLC
Original Assignee
Tencent America LLC
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 Tencent America LLC filed Critical Tencent America LLC
Publication of CN115769576A publication Critical patent/CN115769576A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/186Methods 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 a colour or a chrominance component
    • 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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Landscapes

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

Abstract

本公开内容的各方面提供了用于视频解码的方法、设备和非暂态计算机可读存储介质。该设备可以包括处理电路系统。处理电路系统被配置成根据编码视频比特流重构图像的块。处理电路系统可以利用至少一个后处理神经网络(NN)对重构块中的第一两个相邻重构块的多个区域中的一个区域执行后处理。第一两个相邻重构块具有第一共享边界并且包括具有在第一共享边界的两侧上的样本的边界区域。第一两个相邻重构块的所述多个区域包括边界区域和在边界区域外部的非边界区域。将所述多个区域中的所述一个区域替换为第一两个相邻重构块的所述多个区域中的经后处理的一个区域。

Description

通过后滤波的神经图像压缩中的分块内容自适应在线训练
通过引用并入
本申请要求于2022年4月26日提交的美国专利申请第17/730,040号,“BLOCK-WISECONTENT-ADAPTIVE ONLINE TRAINING IN NEURAL IMAGE COMPRESSION WITH POSTFILTERING”的优先权的权益,该美国专利申请要求于2021年4月30日提交的美国临时申请第63/182,506号,“BLOCK-WISE CONTENT-ADAPTIVE ONLINE TRAINING IN NEURAL IMAGECOMPRESSION WITH POST FILTERING”的优先权的权益。在先申请的公开内容在此通过引用整体并入。
技术领域
本公开内容描述了总体上涉及视频编码的实施方式。
背景技术
本文中提供的背景技术描述的目的在于总体上呈现本公开内容的背景。就在该背景技术部分中描述的工作的程度而言,目前署名的发明人的工作以及在提交时可能未以其他方式描述为现有技术的描述的各方面既没有明确地也没有隐含地被承认为针对本公开内容的现有技术。
可以使用带有运动补偿的图片间预测来执行图像和/或视频编码和解码。未压缩的数字图像和/或视频可以包括一系列图片,每个图片具有例如,1920×1080的亮度样本和相关联的色度样本的空间维度。这一系列图片可以具有例如,每秒60幅图片或60Hz的固定或可变的图片速率(非正式地也称为帧速率)。未压缩的图像和/或视频具有特定的比特率要求。例如,每个样本8比特的1080p60 4:2:0视频(60Hz帧速率下的1920×1080亮度样本分辨率)需要接近1.5Gbit/s的带宽。一小时这样的视频需要超过600千兆字节的存储空间。
图像/视频编码和解码的一个目的可以是通过压缩减少输入图像和/或视频信号中的冗余。压缩可以有助于降低前面提到的带宽和/或存储空间要求,在一些情况下可以降低两个数量级或更多。尽管本文中的描述使用视频编码/解码作为说明性示例,但是在不脱离本公开内容的精神的情况下,相同的技术可以以类似的方式应用于图像编码/解码。可以采用无损压缩和有损压缩两者,以及其组合。无损压缩是指可以根据压缩的原始信号重构原始信号的精确副本的技术。当使用有损压缩时,重构的信号可能与原始信号不同,但是原始信号与重构的信号之间的失真足够小,以使得重构的信号能够用于预期应用。在视频的情况下,广泛地采用有损压缩。容忍的失真量取决于应用;例如,某些消费者流媒体应用的用户可能比电视分配应用的用户容忍更高的失真。可实现的压缩比可以反映出:越高的可允许/可容忍的失真可以产生越高的压缩比。
视频编码器和解码器可以利用来自包括例如,运动补偿、变换、量化和熵编码的若干大类的技术。
视频编解码器技术可以包括被称为帧内编码的技术。在帧内编码中,在不参考来自先前重构的参考图片的样本或其他数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当所有的样本块都以帧内模式编码时,该图片可以是帧内图片。帧内图片及其派生(例如,独立解码器刷新图片)可以用于重置解码器状态,并且因此可以用作编码视频比特流和视频会话中的第一幅图片,或用作静止图像。可以使帧内块的样本经受变换,并且可以在熵编码之前对变换系数进行量化。帧内预测可以是使预变换域中的样本值最小化的技术。在一些情况下,变换之后的DC值越小并且AC系数越小,在给定量化步长下表示熵编码之后的块所需的比特就越少。
传统的帧内编码,例如从例如MPEG-2代编码技术中已知的帧内编码,不使用帧内预测。然而,一些较新的视频压缩技术包括根据周围样本数据和/或例如在对空间上邻近并且解码顺序在先的数据块的编码和/或解码期间获得的元数据进行尝试的技术。这样的技术在下文中称为“帧内预测”技术。注意,在至少一些情况下,帧内预测使用仅来自重构下的当前图片的参考数据,而不使用来自参考图片的参考数据。
可以存在许多不同形式的帧内预测。当在给定视频编码技术中可以使用多于一种的这样的技术时,使用的技术可以在帧内预测模式下进行编码。在某些情况下,模式可以具有子模式和/或参数,并且这些子模式和/或参数可以被单独编码或被包括在模式码字中。针对给定模式、子模式和/或参数组合使用哪个码字可以通过帧内预测影响编码效率增益,并且因此用于将码字转换成比特流的熵编码技术也可以通过帧内预测影响编码效率增益。
帧内预测的某些模式通过H.264引入、在H.265中被细化,并且在诸如联合开发模型(joint exploration model,JEM)、通用视频编码(versatile video coding,VVC)和基准集(benchmark set,BMS)的较新编码技术中被进一步细化。使用属于已可用样本的邻近样本值,可以形成预测器块。根据方向将邻近样本的样本值复制到预测器块中。可以将对使用的方向的参考编码在比特流中,或者可以自己预测对使用的方向的参考。
参照图1A,右下方描绘的是从H.265的33个可能预测器方向(对应于35个帧内模式的33个角度模式)已知的九个预测器方向的子集。箭头相交的点(101)表示正被预测的样本。箭头表示对样本进行预测的方向。例如,箭头(102)指示根据右上方的与水平线成45度角的一个或多个样本对样本(101)进行预测。类似地,箭头(103)指示根据样本(101)左下方的与水平线成22.5度角的一个或多个样本对样本(101)进行预测。
仍然参照图1A,左上方描绘的是4×4个样本的正方形块(104)(由黑体虚线指示)。正方形块(104)包括16个样本,每个样本均用“S”、其在Y维度上的位置(例如,行索引)以及其在X维度上的位置(例如,列索引)来标记。例如,样本S21是Y维度上(从顶部起)的第二样本并且是X维度上(从左侧起)的第一样本。类似地,样本S44是在Y维度和X维度两者上块(104)中的第四个样本。由于块的大小是4×4个样本,因此S44在右下方。另外示出的是遵循类似的编号方案的参考样本。参考样本用R、其相对于块(104)的Y位置(例如,行索引)和X位置(列索引)来标记。在H.264和H.265二者中,预测样本与重构下的块相邻;因此不需要使用负值。
帧内图片预测可以通过从沿着用信令通知的预测方向合适的相邻样本复制参考样本值来工作。例如,假设编码视频比特流包括信令,针对该块,该信令指示与箭头(102)一致的预测方向——即,根据与水平线成45度角的右上方的一个或多个预测样本来预测样本。在这种情况下,根据同一参考样本R05来预测样本S41、S32、S23和S14。然后,根据参考样本R08来预测样本S44。
在某些情况下,可以例如,通过插值将多个参考样本的值进行组合以便计算参考样本;尤其是当方向不能以45度均匀可分割时。
随着视频编码技术的发展,可能的方向的数量也在增加。在H.264(2003年)中,可以表示九个不同的方向。在H.265(2013年)中,增加到33个,并且JEM/VVC/BMS在公开时可以支持多至65个方向。已经进行了实验来识别最可能的方向,并且熵编码中的某些技术被用于以少量的比特表示这些可能的方向,代价是较少的可能的方向。此外,有时可以根据在相邻的已解码的块中使用的相邻方向来预测方向本身。
图1B示出了示意图(110),其描绘根据JEM的65个帧内预测方向以示出预测方向的数量随时间增加。
编码视频比特流中表示方向的帧内预测方向比特的映射可以根据不同的视频编码技术而不同;并且该映射的范围可以例如从预测方向的简单直接映射到帧内预测模式,码字,涉及最可能模式的复杂自适应方案以及类似技术。然而,在所有情况下,可能存在与某些其他方向相比统计上较不可能在视频内容中出现的某些方向。由于视频压缩的目标是减少冗余,因此在运转良好的视频编码技术中,与更可能的方向相比,那些较不可能的方向将由更大数量的比特来表示。
运动补偿可以是有损压缩技术,并且可以涉及下述技术:在该技术中,来自先前重构的图片或其部分(参考图片)的样本数据的块,在由运动矢量(下文中为MV)指示的方向上空间移位之后,被用于预测重新重构的图片或图片部分。在一些情况下,参考图片可以与当前重构下的图片相同。MV可以具有两个维度X和Y,或者具有三个维度,第三个维度是使用中的参考图片的指示(间接地,第三个维度可以是时间维度)。
在一些视频压缩技术中,可以根据其他MV预测适用于样本数据的特定区域的MV,例如根据与样本数据的与重构下的区域在空间上相邻的另一区域有关并且在解码顺序上在该MV之前的MV,来预测该MV。上述预测可以大幅减少对MV进行编码所需的数据量,从而消除冗余并且增加压缩。MV预测可以有效地工作,例如,原因是在对从摄像机得出的输入视频信号(称为自然视频)进行编码时,存在比可适用单个MV的区域更大的区域在相似方向上移动的统计上的可能性,并且因此在一些情况下可以使用从相邻区域的MV得出的相似运动矢量来预测所述更大的区域。这使得针对给定区域得到的MV与根据周围MV预测的MV相似或相同,并且又可以在熵编码之后以与在直接对MV进行编码的情况下将使用的比特相比更少数量的比特来表示MV。在一些情况下,MV预测可以是根据原始信号(即,样本流)得出的信号(即,MV)的无损压缩的示例。在其他情况下,MV预测本身可以是有损的,例如由于在根据若干周围MV计算预测器时的舍入误差而是有损的。
在H.265/HEVC(ITU-T H.265建议书,“High Efficiency Video Coding”,2016年12月)中描述了各种MV预测机制。在H.265提供的多种MV预测机制中,在此描述的是在下文中称为“空间合并”的技术。
参照图2,当前块(201)包括能够根据已经空间移位的相同大小的先前块预测的在运动搜索过程期间由编码器得到的样本。代替直接对该MV进行编码,可以使用与用A0、A1和B0、B1、B2(分别对应202至206)表示的五个周围样本中的任一样本相关联的MV,从与一个或更多个参考图片相关联的例如从最近(在解码顺序上)的参考图片得出MV。在H.265中,MV预测可以使用来自相邻块正在使用的同一参考图片的预测器。
发明内容
本公开内容的各方面提供了用于视频编码和解码的方法和设备。在一些示例中,一种用于视频解码的设备包括处理电路系统。处理电路系统被配置成根据编码视频比特流重构图像的块。处理电路系统被配置成利用至少一个后处理神经网络(neural network,NN)对重构后的块中的第一两个相邻重构块的多个区域中的一个区域执行后处理。第一两个相邻重构块可以具有第一共享边界并且包括具有在第一共享边界的两侧上的样本的边界区域。第一两个相邻重构块的所述多个区域包括边界区域和在边界区域外部的非边界区域。处理电路系统可以用第一两个相邻重构块的多个区域中的经后处理的一个区域替换所述多个区域中的所述一个区域。
在实施方式中,多个区域中的这一个区域是边界区域,并且至少一个后处理NN包括至少一个去块NN。处理电路系统被配置成:利用至少一个去块NN对边界区域执行去块,并且用经去块的边界区域替换边界区域。
在实施方式中,边界区域还包括重构后的块的第二两个相邻重构块之间的第二共享边界的两侧上的样本,并且第一两个相邻重构块不同于第二两个相邻重构块。
在实施方式中,至少一个去块NN分别基于多个去块模型。处理电路系统被配置成:确定将多个去块模型中的哪一个去块模型应用于边界区域,并且利用所确定的去块模型对边界区域执行去块。
在实施方式中,确定应用多个去块模型中的哪一个去块模型由分类NN来执行。
在实施方式中,至少一个后处理NN包括至少一个增强NN。处理电路系统被配置成:利用至少一个增强NN增强非边界区域中的一个非边界区域,并且用非边界区域中的增强的一个非边界区域来替换非边界区域中的所述一个非边界区域。
在实施方式中,至少一个增强NN分别基于多个增强模型。处理电路系统被配置成:确定将多个增强模型中的哪一个增强模型应用于非边界区域中的所述一个非边界区域,并且利用所确定的增强模型增强非边界区域中的所述一个非边界区域。
在实施方式中,处理电路系统被配置成:对边界区域执行去块,并且增强非边界区域。处理电路系统可以用经去块的边界区域替换边界区域,并且分别用经增强的非边界区域替换非边界区域。
在实施方式中,共享样本位于边界区域和非边界区域中的一个非边界区域中,并且至少一个后处理NN还包括至少一个增强NN。处理电路系统被配置成:利用至少一个增强NN来增强非边界区域中的这一个非边界区域。处理电路系统可以利用非边界区域中的增强的一个非边界区域来替换非边界区域中的这一个非边界区域。可以用经去块的边界区域中的共享样本的值和非边界区域中的经增强的一个非边界区域中的共享样本的值的加权平均值来替换共享样本的值。
在实施方式中,处理电路系统被配置成:对编码视频比特流中的神经网络更新信息进行解码,其中神经网络更新信息对应于块中的一个块并且指示与视频解码器中的神经网络中的预训练参数相对应的替换参数。处理电路系统可以基于用替换参数更新的神经网络重构块中的所述一个块。
本公开内容的各方面还提供了一种非暂态计算机可读存储介质,其存储能够由至少一个处理器执行以执行用于视频解码的方法的程序。
附图说明
根据以下详细描述和附图,所公开的主题的进一步特征、性质和各种优点将更加明显,在附图中:
图1A是帧内预测模式的示例性子集的示意性图示。
图1B是示例性帧内预测方向的图示。
图2示出了根据实施方式的当前块(201)和周围样本。
图3是根据实施方式的通信系统(300)的简化框图的示意性图示。
图4是根据实施方式的通信系统(400)的简化框图的示意性图示。
图5是根据实施方式的解码器的简化框图的示意性图示。
图6是根据实施方式的编码器的简化框图的示意性图示。
图7示出了根据另一实施方式的编码器的框图。
图8示出了根据另一实施方式的解码器的框图。
图9A示出了根据本公开内容的实施方式的分块图像编码的示例。
图9B示出了根据本公开内容的实施方式的示例性NIC框架。
图10示出了根据本公开内容的实施方式的主编码器网络的示例性卷积神经网络(convolution neural network,CNN)。
图11示出了根据本公开内容的实施方式的主解码器网络的示例性CNN。
图12示出了根据本公开内容的实施方式的超编码器的示例性CNN。
图13示出了根据本公开内容的实施方式的超解码器的示例性CNN。
图14示出了根据本公开内容的实施方式的上下文模型网络的示例性CNN。
图15示出了根据本公开内容的实施方式的熵参数网络的示例性CNN。
图16A示出了根据本公开内容的实施方式的示例性视频编码器。
图16B示出了根据本公开内容的实施方式的示例性视频解码器。
图17示出了根据本公开内容的实施方式的示例性视频编码器。
图18示出了根据本公开内容的实施方式的示例性视频解码器。
图19示出了根据本公开内容的实施方式的用于确定边界强度值的示例性过程的流程图。
图20示出了根据本公开内容的实施方式的用于确定边界强度值的示例性样本位置。
图21A至图21C示出了根据本公开内容的实施方式的示例性去块过程。
图22示出了根据本公开内容的实施方式的包括多于两个块的样本的边界区域的示例。
图23示出了根据本公开内容的实施方式的基于多个去块模型的示例性去块过程。
图24示出了根据本公开内容的实施方式的示例增强过程。
图25示出了根据本公开内容的实施方式的示例性增强过程。
图26示出了根据本公开内容的实施方式的示例性图像级增强过程。
图27示出了根据本公开内容的实施方式的共享样本的示例。
图28示出了概述根据本公开内容的实施方式的过程的流程图。
图29是根据实施方式的计算机系统的示意性图示。
具体实施方式
图3示出了根据本公开内容的实施方式的通信系统(300)的简化框图。通信系统(300)包括可以经由例如网络(350)彼此通信的多个终端装置。例如,通信系统(300)包括经由网络(350)互连的第一对终端装置(310)和(320)。在图3的示例中,第一对终端装置(310)和(320)执行数据的单向传输。例如,终端装置(310)可以对视频数据(例如,由终端装置(310)捕获的视频图片流)进行编码,以供经由网络(350)传输至另一终端装置(320)。编码视频数据可以以一个或更多个编码视频比特流的形式传输。终端装置(320)可以从网络(350)接收编码视频数据,对编码视频数据进行解码以恢复视频图片,并且根据所恢复的视频数据显示视频图片。单向数据传输在媒体服务应用等中可以是常见的。
在另一示例中,通信系统(300)包括执行编码视频数据的双向传输的第二对终端装置(330)和(340),该双向传输可能例如在视频会议期间发生。对于数据的双向传输,在示例中,终端装置(330)和(340)中的每个终端装置可以对视频数据(例如,由终端装置捕获的视频图片流)进行编码,以供经由网络(350)传输至终端装置(330)和(340)中的另一终端装置。终端装置(330)和(340)中的每个终端装置还可以接收由终端装置(330)和(340)中的另一终端装置传输的编码视频数据,并且可以对该编码视频数据进行解码以恢复视频图片,并且可以根据所恢复的视频数据在可访问的显示装置处显示视频图片。
在图3的示例中,终端装置(310)、(320)、(330)和(340)可以被示出为服务器、个人计算机和智能电话,但是本公开内容的原理可以不被这样限制。本公开内容的实施方式适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(350)表示在终端装置(310)、(320)、(330)和(340)之间传送编码视频数据的任何数量的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。出于本讨论的目的,除非下面在本文中说明,否则网络(350)的架构和拓扑对于本公开内容的操作而言可能是无关紧要的。
作为所公开的主题的应用的示例,图4示出了视频编码器和视频解码器在流式传输环境中的放置。所公开的主题可以同样地适用于其他支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可以包括捕获子系统(413),该捕获子系统(413)可以包括创建例如未压缩的视频图片流(402)的视频源(401),例如数字摄像机。在示例中,视频图片流(402)包括由数字摄像机拍摄的样本。视频图片流(402)被描绘为粗线以强调当与编码视频数据(404)(或编码视频比特流)比较时高的数据量,该视频图片流(402)可以由耦接至视频源(401)的包括视频编码器(403)的电子装置(420)进行处理。视频编码器(403)可以包括硬件、软件或其组合,以实现或实施如下更详细地描述的所公开的主题的各方面。编码视频数据(404)(或编码视频比特流(404))被描绘为细线以强调当与视频图片流(402)比较时较低的数据量,编码视频数据(404)(或编码视频比特流(404))可以存储在流式传输服务器(405)上以供将来使用。一个或更多个流式传输客户端子系统例如图4中的客户端子系统(406)和(408)可以访问流式传输服务器(405)以检索编码视频数据(404)的副本(407)和(409)。客户端子系统(406)可以包括例如电子装置(430)中的视频解码器(410)。视频解码器(410)对传入的编码视频数据的副本(407)进行解码,并且创建可以在显示器(412)(例如,显示屏)或另一呈现装置(未描绘)上呈现的传出的视频图片流(411)。在一些流式传输系统中,可以根据某些视频编码/压缩标准对编码视频数据(404)、(407)和(409)(例如,视频比特流)进行编码。这些标准的示例包括ITU-T H.265建议书。在示例中,开发中的视频编码标准被非正式地称为通用视频编码(Versatile Video Coding,VVC)。所公开的主题可以用于VVC的背景下。
注意,电子装置(420)和(430)可以包括其他部件(未示出)。例如,电子装置(420)可以包括视频解码器(未示出),并且电子装置(430)也可以包括视频编码器(未示出)。
图5示出了根据本公开内容的实施方式的视频解码器(510)的框图。视频解码器(510)可以被包括在电子装置(530)中。电子装置(530)可以包括接收器(531)(例如,接收电路系统)。视频解码器(510)可以代替图4的示例中的视频解码器(410)使用。
接收器(531)可以接收要由视频解码器(510)解码的一个或更多个编码视频序列;在同一实施方式或另一实施方式中,一次接收一个编码视频序列,其中,每个编码视频序列的解码独立于其他编码视频序列。可以从信道(501)接收编码视频序列,该信道(501)可以是到存储编码视频数据的存储装置的硬件/软件链路。接收器(531)可以接收编码视频数据以及其他数据,例如编码音频数据和/或辅助数据流,它们可以被转发至其各自的使用实体(未描绘)。接收器(531)可以将编码视频序列与其他数据分开。为了防止网络抖动,可以将缓冲存储器(515)耦接在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)是视频解码器(510)的一部分。在其他应用中,缓冲存储器(515)可以在视频解码器(510)外部(未描绘)。在又一些其他应用中,在视频解码器(510)外部可以存在缓冲存储器(未描绘)以例如防止网络抖动,并且另外在视频解码器(510)内部可以存在另一缓冲存储器(515)以例如处理播出时序。当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,可能不需要缓冲存储器(515),或者缓冲存储器(515)可以是小的。为了在诸如因特网的尽力型(best effort)分组网络上使用,可能需要缓冲存储器(515),该缓冲存储器(515)可以是相对大的并且可以有利地具有自适应大小,并且可以至少部分地在视频解码器(510)外部的操作系统或类似元件(未描绘)中实现。
视频解码器(510)可以包括解析器(520)以根据编码视频序列重构符号(521)。这些符号的类别包括:用于管理视频解码器(510)的操作的信息,以及可能地包括用于控制呈现装置诸如呈现装置(512)(例如,显示屏)的信息,该呈现装置(512)不是电子装置(530)的组成部分而是可以耦接至电子装置(530),如图5中所示。呈现装置的控制信息可以呈补充增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)参数集片段(未描绘)的形式。解析器(520)可以对接收到的编码视频序列进行解析/熵解码。编码视频序列的编码可以符合视频编码技术或标准,并且可以遵循各种原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文敏感性的算术编码等。解析器(520)可以基于与组相对应的至少一个参数,从编码视频序列中提取针对视频解码器中的像素子组中的至少一个子组的子组参数集。子组可以包括:图片组(Group ofPictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等。解析器(520)还可以从编码视频序列中提取诸如变换系数、量化器参数值、运动矢量等的信息。
解析器(520)可以对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,以创建符号(521)。
符号(521)的重构可以根据编码视频图片或其部分的类型(例如:帧间图片和帧内图片、帧间块和帧内块)以及其他因素而涉及多个不同的单元。涉及哪些单元以及涉及方式可以通过由解析器(520)从编码视频序列解析的子组控制信息控制。为了清楚起见,未描绘解析器(520)与下面的多个单元之间的这样的子组控制信息流。
除已经提到的功能块以外,视频解码器(510)可以在概念上被细分为如下所述的多个功能单元。在商业约束下操作的实际实现中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开的主题的目的,在概念上细分为下面的功能单元是适当的。
第一单元是缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收经量化的变换系数以及控制信息(包括要使用哪种变换、块大小、量化因子、量化缩放矩阵等)作为(一个或多个)符号(521)。缩放器/逆变换单元(551)可以输出包括样本值的块,所述块可以被输入到聚合器(555)中。
在一些情况下,缩放器/逆变换(551)的输出样本可以属于帧内编码块;即:不使用来自先前重构的图片的预测性信息但可以使用来自当前图片的先前重构部分的预测性信息的块。这样的预测性信息可以由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)使用从当前图片缓冲器(558)获取的周围已重构信息生成大小和形状与重构中的块相同的块。例如,当前图片缓冲器(558)缓冲部分重构的当前图片和/或完全重构的当前图片。在一些情况下,聚合器(555)基于每个样本将帧内预测单元(552)已经生成的预测信息添加至如由缩放器/逆变换单元(551)提供的输出样本信息。
在其他情况下,缩放器/逆变换单元(551)的输出样本可以属于帧间编码并且可能经运动补偿的块。在这样的情况下,运动补偿预测单元(553)可以访问参考图片存储器(557)以获取用于预测的样本。在根据属于块的符号(521)对所获取的样本进行运动补偿之后,这些样本可以由聚合器(555)添加至缩放器/逆变换单元(551)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。可以通过运动矢量来控制运动补偿预测单元(553)从其获取预测样本的参考图片存储器(557)内的地址,所述运动矢量可以以符号(521)的形式被运动补偿预测单元(553)获得,所述符号(521)可以具有例如X分量、Y分量和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时对从参考图片存储器(557)中获取的样本值的插值、运动矢量预测机制等。
聚合器(555)的输出样本可以在环路滤波器单元(556)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波器技术,所述环路内滤波器技术受控于编码视频序列(也被称为编码视频比特流)中包括的参数,所述参数可以作为来自解析器(520)的符号(521)被环路滤波器单元(556)获得,但是环路内滤波器技术也可以对在对编码图片或编码视频序列的(按解码顺序的)先前部分进行解码期间获得的元信息进行响应,以及对先前重构并且经环路滤波的样本值进行响应。
环路滤波器单元(556)的输出可以是样本流,该样本流可以被输出至呈现装置(512)以及被存储在参考图片存储器(557)中以供在将来的帧间图片预测中使用。
一旦被完全重构,某些编码图片就可以被用作参考图片以供在将来预测中使用。例如,一旦与当前图片对应的编码图片被完全重构,并且该编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可以变为参考图片存储器(557)的一部分,并且可以在开始重构随后的编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可以根据诸如ITU-T H.265建议书的标准中的预定的视频压缩技术执行解码操作。在编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件两者的意义上,编码视频序列可以符合由所使用的视频压缩技术或标准指定的语法。具体地,配置文件可以从视频压缩技术或标准中可用的所有工具中选择某些工具作为仅在该配置文件下可供使用的工具。对于合规性,还需要编码视频序列的复杂度处于由视频压缩技术或标准的级别限定的界限内。在一些情况下,级别限制最大图片大小、最大帧速率、最大重构样本率(以例如每秒百万样本为单位进行测量)、最大参考图片大小等。在一些情况下,由级别设置的限制可以通过假想参考解码器(HypotheticalReference Decoder,HRD)规范以及在编码视频序列中用信令通知的HRD缓冲器管理的元数据来进一步限定。
在实施方式中,接收器(531)可以连同编码视频一起接收附加(冗余)数据。附加数据可以被包括为(一个或多个)编码视频序列的一部分。附加数据可以由视频解码器(510)使用以对数据进行适当解码以及/或者更准确地重构原始视频数据。附加数据可以呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图6示出了根据本公开内容的实施方式的视频编码器(603)的框图。视频编码器(603)被包括在电子装置(620)中。电子装置(620)包括传输器(640)(例如,传输电路系统)。视频编码器(603)可以代替图4的示例中的视频编码器(403)使用。
视频编码器(603)可以从视频源(601)(并非图6的示例中的电子装置(620)的一部分)接收视频样本,视频源(601)可以捕获要由视频编码器(603)进行编码的(一个或多个)视频图像。在另一示例中,视频源(601)是电子装置(620)的一部分。
视频源(601)可以提供要由视频编码器(603)进行编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的比特深度(例如:8比特、10比特、12比特……)、任何色彩空间(例如,BT.601Y CrCB、RGB……)和任何合适的采样结构(例如YCrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(601)可以是存储先前准备的视频的存储装置。在视频会议系统中,视频源(601)可以是捕获本地图像信息作为视频序列的摄像装置。视频数据可以被提供为当按顺序观看时被赋予运动的多个单独的图片。图片本身可以被组织为空间像素阵列,其中,取决于所用的采样结构、色彩空间等,每个像素可以包括一个或更多个样本。本领域技术人员可以容易理解像素与样本之间的关系。以下描述集中于样本。
根据实施方式,视频编码器(603)可以实时地或者在应用所需的任何其他时间约束下将源视频序列的图片编码并压缩成编码视频序列(643)。施行适当的编码速度是控制器(650)的一个功能。在一些实施方式中,控制器(650)控制如下所述的其他功能单元并且在功能上耦接至所述其他功能单元。为简洁起见未描绘耦接。由控制器(650)设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片组(GOP)布局、最大运动矢量搜索范围等。控制器(650)可以被配置成具有其他合适的功能,这些功能属于针对特定系统设计优化的视频编码器(603)。
在一些实施方式中,视频编码器(603)被配置成在编码环路中进行操作。作为极度简化的描述,在示例中,编码环路可以包括源编码器(630)(例如,负责基于要编码的输入图片和(一个或多个)参考图片创建符号,例如符号流)和嵌入在视频编码器(603)中的(本地)解码器(633)。解码器(633)以与(远程)解码器创建样本数据的方式类似的方式重构符号以创建样本数据(因为在所公开的主题中所考虑的视频压缩技术中,符号与编码视频比特流之间的任何压缩是无损的)。重构的样本流(样本数据)被输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的比特精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是比特精确的。换句话说,编码器的预测部分将与解码器在解码期间使用预测时所“看到”的样本值完全相同的样本值“视为”参考图片样本。参考图片同步性的这种基本原理(以及在例如由于信道误差而无法维持同步性的情况下产生的偏移)也用于一些相关技术。
“本地”解码器(633)的操作可以与“远程”解码器例如已经在上面结合图5详细描述的视频解码器(510)的操作相同。然而,另外简要地参照图5,由于符号可用并且由熵编码器(645)将符号编码成编码视频序列以及由解析器(520)对符号进行解码可以是无损的,因此可以不在本地解码器(633)中完全实现视频解码器(510)的包括缓冲存储器(515)和解析器(520)的熵解码部分。
在实施方式中,除了存在于解码器中的解析/熵解码之外的任何解码器技术以相同或基本上相同的功能形式存在于对应的编码器中。因此,所公开的主题集中于解码器操作。可以简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术相反。在某些方面,在下文提供更详细的描述。
在一些示例中,在操作期间,源编码器(630)可以执行运动补偿预测编码,所述运动补偿预测编码参考来自视频序列的被指定为“参考图片”的一个或更多个先前编码图片来对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的像素块与可以被选作该输入图片的(一个或多个)预测参考的(一个或多个)参考图片的像素块之间的差异进行编码。
本地视频解码器(633)可以基于由源编码器(630)创建的符号,对可以被指定为参考图片的图片的编码视频数据进行解码。编码引擎(632)的操作可以有利地为有损处理。当编码视频数据可以在视频解码器(图6中未示出)处被解码时,重构的视频序列通常可以是源视频序列的带有一些误差的副本。本地视频解码器(633)复制可以由视频解码器对参考图片执行的解码处理,并且可以使重构的参考图片存储在参考图片缓存(634)中。以此方式,视频编码器(603)可以在本地存储重构的参考图片的副本,所述副本与将由远端视频解码器获得的重构参考图片具有共同内容(不存在传输误差)。
预测器(635)可以针对编码引擎(632)执行预测搜索。也就是说,对于要被编码的新图片,预测器(635)可以在参考图片存储器(634)中搜索可以用作针对新图片的合适预测参考的样本数据(作为候选参考像素块)或特定元数据,例如参考图片运动矢量、块形状等。预测器(635)可以在逐样本块-像素块的基础上操作,以找到合适的预测参考。在一些情况下,如由通过预测器(635)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可以管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子组参数。
所有以上提及的功能单元的输出可以在熵编码器(645)中经受熵编码。熵编码器(645)通过根据诸如霍夫曼编码、可变长度编码、算术编码等的技术对由各种功能单元生成的符号进行无损压缩来将这些符号转换为编码视频序列。
传输器(640)可以缓冲由熵编码器(645)创建的(一个或多个)编码视频序列,从而为经由通信信道(660)进行传输做准备,该通信信道(660)可以是到存储编码视频数据的存储装置的硬件/软件链路。传输器(640)可以将来自视频编码器(603)的编码视频数据与要传输的其他数据合并,所述其他数据例如是编码音频数据和/或辅助数据流(未示出来源)。
控制器(650)可以管理视频编码器(603)的操作。在编码期间,控制器(650)可以向每个编码图片分配某一编码图片类型,这可能影响可以应用于相应的图片的编码技术。例如,通常可以向图片分配以下图片类型之一:
帧内图片(I图片),其可以是可以在不将序列中的任何其他图片用作预测源的情况下进行编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,
“IDR”)图片。本领域技术人员了解I图片的那些变型及其相应的应用和特征。
预测性图片(P图片),其可以是可以使用利用至多一个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。
双向预测性图片(B图片),其可以是可以使用利用至多两个运动矢量和参考索引来预测每个块的样本值的帧间预测或帧内预测进行编码和解码的图片。类似地,多个预测性图片可以使用多于两个参考图片和相关联元数据以用于单个块的重构。
源图片通常可以在空间上细分成多个样本块(例如,分别为4×4、8×8、4×8或16×16样本的块),并且逐块地被编码。可以参考其他(编码的)块对这些块进行预测性编码,所述其他块是通过应用于块的相应图片的编码分配而确定的。例如,可以对I图片的块进行非预测性编码,或者可以参考同一图片的编码块对I图片的块进行预测性编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片经由空间预测或经由时间预测对P图片的像素块进行预测性编码。可以参考一个或两个先前编码的参考图片经由空间预测或经由时间预测对B图片的块进行预测性编码。
视频编码器(603)可以根据诸如ITU-T H.265建议书的预定的视频编码技术或标准执行编码操作。在其操作中,视频编码器(603)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测性编码操作。因此,编码视频数据可以符合由所使用的视频编码技术或标准指定的语法。
在实施方式中,传输器(640)可以连同编码视频一起传输附加数据。源编码器(630)可以包括这样的数据作为编码视频序列的一部分。附加数据可以包括时间/空间/SNR增强层、其他形式的冗余数据例如冗余图片和切片、SEI消息、VUI参数集片段等。
视频可以按时间序列被捕获为多个源图片(视频图片)。帧内图片预测(通常被简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测利用图片之间的(时间或其他)相关性。在示例中,正在被编码/解码的特定图片(其被称为当前图片)被分割成块。在当前图片中的块类似于视频中先前编码且又被缓冲的参考图片中的参考块的情况下,可以通过被称作运动矢量的矢量对当前图片中的块进行编码。运动矢量指向参考图片中的参考块,并且在使用多个参考图片的情况下,运动矢量可以具有标识参考图片的第三维度。
在一些实施方式中,可以将双向预测技术用于帧间图片预测。根据双向预测技术,使用两个参考图片,例如按解码次序均在视频中的当前图片之前(但按显示次序可能分别在过去和将来)的第一参考图片和第二参考图片。可以通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可以通过第一参考块和第二参考块的组合来预测所述块。
此外,可以在帧间图片预测中使用合并模式技术以提高编码效率。
根据本公开内容的一些实施方式,以块为单位执行诸如帧间图片预测和帧内图片预测的预测。例如,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(codingtree unit,CTU)以便压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个编码树块(coding tree block,CTB),即一个亮度CTB和两个色度CTB。每个CTU可以被递归地以四叉树分成一个或多个编码单元(coding unit,CU)。例如,可以将64×64像素的CTU分成一个64×64像素的CU,或4个32×32像素的CU,或16个16×16像素的CU。在示例中,对每个CU进行分析以确定针对该CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU分成一个或更多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施方式中,以预测块为单位来执行编解码(编码/解码)中的预测操作。使用亮度预测块作为预测块的示例,预测块包括诸如8×8像素、16×16像素、8×16像素、16×8像素等的像素的值(例如,亮度值)的矩阵。
图7示出了根据本公开内容的另一实施方式的视频编码器(703)的图。视频编码器(703)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如,预测块),并且将处理块编码到作为编码视频序列的一部分的编码图片中。在示例中,视频编码器(703)代替图4的示例中的视频编码器(403)使用。
在HEVC示例中,视频编码器(703)接收处理块例如8×8样本的预测块等的样本值的矩阵。视频编码器(703)使用例如率失真优化来确定是使用帧内模式、帧间模式还是双向预测模式对处理块进行最佳编码。在将以帧内模式对处理块进行编码的情况下,视频编码器(703)可以使用帧内预测技术将处理块编码到编码图片中;而在将以帧间模式或双向预测模式对处理块进行编码的情况下,视频编码器(703)可以分别使用帧间预测或双向预测技术将处理块编码到编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助于一个或更多个运动矢量预测器外部的编码运动矢量分量的情况下从所述预测器得出运动矢量。在某些其他视频编码技术中,可以存在适用于对象块的运动矢量分量。在示例中,视频编码器(703)包括其他部件,例如,确定处理块的模式的模式决策模块(未示出)。
在图7的示例中,视频编码器(703)包括如图7所示的耦接在一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、总体控制器(721)以及熵编码器(725)。
帧间编码器(730)被配置成接收当前块(例如,处理块)的样本,将所述块与参考图片中的一个或更多个参考块(例如,先前图片和随后图片中的块)进行比较,生成帧间预测信息(例如,根据帧间编码技术的冗余信息、运动矢量、合并模式信息的描述),以及使用任何合适的技术基于帧间预测信息计算帧间预测结果(例如,预测块)。在一些示例中,参考图片是基于编码视频信息被解码的解码参考图片。
帧内编码器(722)被配置成:接收当前块(例如,处理块)的样本;在一些情况下将该块与同一图片中已经编码的块进行比较;在变换之后生成量化系数;以及在一些情况下还生成帧内预测信息(例如,根据一个或更多个帧内编码技术生成帧内预测方向信息)。在示例中,帧内编码器(722)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如,预测块)。
总体控制器(721)被配置成确定总体控制数据并且基于总体控制数据来控制视频编码器(703)的其他部件。在示例中,总体控制器(721)确定块的模式,并且基于该模式将控制信号提供至开关(726)。例如,当所述模式是帧内模式时,总体控制器(721)控制开关(726)以选择帧内模式结果以供残差计算器(723)使用,并且控制熵编码器(725)以选择帧内预测信息并且将所述帧内预测信息包括在比特流中;以及当所述模式是帧间模式时,总体控制器(721)控制开关(726)以选择帧间预测结果以供残差计算器(723)使用,并且控制熵编码器(725)以选择帧间预测信息并且将所述帧间预测信息包括在比特流中。
残差计算器(723)被配置成计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的预测结果之间的差(残差数据)。残差编码器(724)被配置成基于残差数据进行操作,以对残差数据进行编码来生成变换系数。在示例中,残差编码器(724)被配置成将残差数据从空间域转换到频域,并且生成变换系数。然后,变换系数经受量化处理以获得量化的变换系数。在各种实施方式中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)被配置成执行逆变换,并且生成解码残差数据。解码残差数据可以由帧内编码器(722)和帧间编码器(730)适当地使用。例如,帧间编码器(730)可以基于解码残差数据和帧间预测信息来生成解码块,以及帧内编码器(722)可以基于解码残差数据和帧内预测信息来生成解码块。在一些示例中,适当处理解码块以生成解码图片,并且这些解码图片可以缓冲在存储器电路(未示出)中并且用作参考图片。
熵编码器(725)被配置成对比特流进行格式化以包括编码块。熵编码器(725)被配置成包括根据合适的标准例如HEVC标准的各种信息。在示例中,熵编码器(725)被配置成在比特流中包括总体控制数据、选择的预测信息(例如,帧内预测信息或帧间预测信息)、残差信息和其他合适的信息。注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式下对块进行编码时,不存在残差信息。
图8示出了根据本公开内容的另一实施方式的视频解码器(810)的图。视频解码器(810)被配置成接收作为编码视频序列的一部分的编码图片,并且对编码图片进行解码以生成重构的图片。在示例中,视频解码器(810)代替图4示例中的视频解码器(410)使用。
在图8的示例中,视频解码器(810)包括如图8所示的耦接在一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重构模块(874)以及帧内解码器(872)。
熵解码器(871)可以被配置成根据编码图片来重构某些符号,这些符号表示构成编码图片的语法元素。这样的符号可以包括例如对块进行编码的模式(例如,帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可以标识分别供帧内解码器(872)或帧间解码器(880)使用以进行预测的某些样本或元数据的预测信息(例如,帧内预测信息或帧间预测信息)、例如量化的变换系数的形式的残差信息等。在示例中,当预测模式是帧间模式或双向预测模式时,将帧间预测信息提供给帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供给帧内解码器(872)。残差信息可以经受逆量化并且被提供给残差解码器(873)。
帧间解码器(880)被配置成接收帧间预测信息,并且基于帧间预测信息生成帧间预测结果。
帧内解码器(872)被配置成接收帧内预测信息,并且基于帧内预测信息生成预测结果。
残差解码器(873)被配置成执行逆量化以提取去量化的变换系数,并且处理所述去量化的变换系数,以将残差从频域转换到空间域。残差解码器(873)还可能需要某些控制信息(以包括量化器参数(Quantizer Parameter,QP)),并且所述信息可以由熵解码器(871)提供(未描绘出数据路径,因为这可能仅是少量控制信息)。
重构模块(874)被配置成在空间域中将由残差解码器(873)输出的残差与预测结果(根据情况由帧间预测模块或帧内预测模块输出)进行组合以形成重构的块,所述重构的块可以是重构的图片的一部分,所述重构的图片又可以是重构的视频的一部分。注意,可以执行其他合适的操作例如去块操作等来改善视觉质量。
注意,可以使用任何合适的技术来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在实施方式中,可以使用一个或更多个集成电路来实现视频编码器(403)、(603)和(703)以及视频解码器(410)、(510)和(810)。在另一实施方式中,可以使用执行软件指令的一个或更多个处理器来实现视频编码器(403)、(603)和(603)以及视频解码器(410)、(510)和(810)。
本公开内容描述了与神经图像压缩技术和/或神经视频压缩技术相关的视频编码技术,诸如基于人工智能(AI)的神经图像压缩(NIC)。本公开内容的方面包括NIC中的内容自适应在线训练,例如具有用于基于神经网络的端到端(E2E)优化的图像编码框架的后过滤的逐块内容自适应在线训练NIC方法。神经网络(NN)可以包括人工神经网络(ANN),例如深度神经网络(DNN)、卷积神经网络(CNN)等。
在实施方式中,相关的混合视频编解码器难以作为整体进行优化。例如,混合视频编解码器中单个模块(例如,编码器)的改进可能不会导致整体性能的编码增益。在基于NN的视频编码框架中,不同的模块可以从输入到输出进行联合优化,以通过执行学习过程或训练过程(例如,机器学习过程)改进最终目标(例如,率失真性能,例如公开内容中描述的率失真损失L),从而产生端到端优化的NIC。
示例性NIC框架或系统可以描述如下。NIC框架可以使用输入块x作为神经网络编码器(例如,基于诸如DNN的神经网络的编码器)的输入来计算可以紧凑以例如用于存储和传输目的的压缩表示(例如,紧凑表示)
Figure BDA0003896541730000211
神经网络解码器(例如,基于诸如DNN的神经网络的解码器)可以使用压缩表示
Figure BDA0003896541730000212
作为输入来重构输出块(也称为重构块)
Figure BDA0003896541730000213
在各种实施方式中,输入块x和重构块
Figure BDA0003896541730000214
在空间域中,并且压缩表示
Figure BDA0003896541730000215
在与空间域不同的域中。在一些示例中,压缩表示
Figure BDA0003896541730000216
被量化和熵编码。
在一些示例中,NIC框架可以使用变分自动编码器(VAE)结构。在VAE结构中,神经网络编码器可以直接将整个输入块x作为神经网络编码器的输入。整个输入块x可以通过一组神经网络层,这些层充当黑盒来计算压缩表示
Figure BDA0003896541730000217
压缩表示
Figure BDA0003896541730000218
是神经网络编码器的输出。神经网络解码器可以将整个压缩表示
Figure BDA0003896541730000219
作为输入。压缩表示
Figure BDA00038965417300002110
可以通过另一组神经网络层,这些层作为另一个黑盒来计算重构块
Figure BDA00038965417300002111
可以优化率失真(R-D)损失
Figure BDA00038965417300002112
以实现重构块
Figure BDA00038965417300002113
的失真损失
Figure BDA00038965417300002114
与具有权衡超参数λ的紧凑表示
Figure BDA00038965417300002115
的比特消耗R之间的折衷。
Figure BDA00038965417300002116
神经网络(例如,ANN)可以从示例中学习执行任务,而无需针对特定任务进行编程。ANN可以配置有连接的节点或人工神经元。节点之间的连接可以将信号从第一节点传输到第二节点(例如,接收节点),并且可以通过权重来修改信号,该权重可以由连接的权重系数指示。接收节点可以对来自将信号传输到接收节点的节点的信号(即,接收节点的输入信号)进行处理然后通过对输入信号应用函数来生成输出信号。该函数可以是线性函数。在示例中,输出信号是输入信号的加权和。在示例中,输出信号还被可以由偏置项指示的偏置修改,因此输出信号是偏置和输入信号的加权和的总和。该函数可以包括非线性运算,例如,对输入信号的加权和或偏置和加权和的和。输出信号可以被发送到连接到接收节点的节点(下游节点)。ANN可以通过参数(例如,连接的权重和/或偏置)来表示或配置。权重和/或偏置可以通过使用可以迭代调整权重和/或偏置的示例训练ANN来获得。配置有确定的权重和/或确定的偏置的经训练的ANN可用于执行任务。
ANN中的节点可以以任何合适的架构进行组织。在各种实施方式中,ANN中的节点被组织成层,包括将输入信号接收到ANN的输入层和输出来自ANN的输出信号的输出层。在实施方式中,ANN还包括在输入层和输出层之间的层,例如隐藏层。不同层可以对不同层的相应输入执行不同种类的变换。信号可以从输入层传输到输出层。
在输入层和输出层之间具有多个层的ANN可以被称为DNN。在实施方式中,DNN是其中数据从输入层流向输出层而没有环回的前馈网络。在示例中,DNN是其中一层中的每个节点都连接到下一层中的所有节点的全连接网络。在实施方式中,DNN是其中数据可以沿任何方向流动的循环神经网络(RNN)。在实施方式中,DNN是CNN。
CNN可以包括输入层、输出层以及输入层和输出层之间的隐藏层。隐藏层可以包括执行卷积例如二维(2D)卷积的卷积层(例如,在编码器中使用)。在实施方式中,在卷积层中执行的2D卷积在卷积核(也称为滤波器或通道,例如5×5矩阵)与到卷积层的输入信号(例如,2D矩阵,例如2D块,256×256矩阵)之间。在各种示例中,卷积核的维度(例如,5×5)小于输入信号的维度(例如,256×256)。因此,输入信号(例如,256×256矩阵)中被卷积核覆盖的部分(例如,5×5区域)小于输入信号的区域(例如,256×256区域),因此可以被称为下一层相应节点中的接受域。
在卷积期间,计算卷积核与输入信号中对应的接受域的点积。因此,卷积核的每个元素都是应用于接受域中的相应样本的权重,因此卷积核包括权重。例如,由5×5矩阵表示的卷积核有25个权重。在一些示例中,对卷积层的输出信号施加偏置,并且输出信号基于点积和偏置的和。
卷积核可以沿输入信号(例如,2D矩阵)移动称为步幅的大小,因此卷积操作生成特征图或激活图(例如,另一个2D矩阵),其反过来又有助于CNN中下一层的输入。例如,输入信号是具有256×256个样本的2D块,步幅是2个样本(例如,步幅为2)。对于步幅2,卷积核沿X方向(例如,水平方向)和/或Y方向(例如,垂直方向)移动2个样本。
可以在同一卷积层中将多个卷积核应用于输入信号以分别生成多个特征图,其中每个特征图可以表示输入信号的特定特征。一般来说,一个卷积层具有N个通道(即N个卷积核),每个卷积核具有M×M个样本,步幅S可以被指定为Conv:MxM cN sS。例如,一个卷积层具有192个通道,每个卷积核具有5×5个样本,步幅2被指定为Conv:5x5 c192 s2。隐藏层可以包括执行反卷积(例如2D反卷积)的反卷积层(例如,在解码器中使用)。反卷积是卷积的逆。一个反卷积层具有192个通道,每个反卷积核具有5×5个样本,步幅2被指定为DeConv:5x5 c192 s2。
在各种实施方式中,CNN具有以下益处。CNN中的许多可学习参数(即要训练的参数)可以明显小于DNN(例如,前馈DNN)中的许多可学习参数。在CNN中,相对大量的节点可以共享相同的滤波器(例如,相同的权重)和相同的偏置(如果使用偏置),因此可以减少内存占用,因为单个偏置和权重的单个矢量可以在共享相同滤波器的所有接受域之间使用。例如,对于具有100×100个样本的输入信号,具有5×5个样本的卷积核的卷积层具有25个可学习参数(例如,权重)。如果使用偏置,则一个通道使用26个可学习参数(例如,25个权重和一个偏置)。如果卷积层有N个通道,则总的可学习参数为26×N个。另一方面,对于DNN中的全连接层,对于下一层中的每个节点使用100×100(即10000)权重。如果下一层有L个节点,那么总的可学习参数为10000×L个。
CNN还可以包括一个或更多个其他层,例如池化层、可以将一层中的每个节点连接到另一层中的每个节点的全连接层、归一化层等。CNN中的层可以以任何合适的顺序和任何合适的架构(例如,前馈架构、循环架构)布置。在示例中,卷积层之后是其他层,例如池化层、全连接层、归一化层等。
池化层可用于通过将来自一层中的多个节点的输出组合到下一层中的单个节点中来减少数据的维度。下面描述具有特征图作为输入的池化层的池化操作。该描述可以适当地适用于其他输入信号。可以将特征图划分为子区域(例如矩形子区域),各个子区域中的特征可以例如通过取平均池中的平均值或最大池中的最大值来独立地下采样(或池化)到单个值。
池化层可以执行池化,例如局部池化、全局池化、最大池化、平均池化等。池化是非线性下采样的一种形式。局部池化在特征图中组合了少量节点(例如,局部节点集群,例如2×2个节点)。全局池化可以组合例如特征图的所有节点。
池化层可以减小表示的大小,从而减少参数的数量、内存占用以及CNN中的计算量。在示例中,在CNN中的连续卷积层之间插入了池化层。在示例中,池化层之后是激活函数,例如整流线性单元(ReLU)层。在示例中,在CNN中的连续卷积层之间省略了池化层。
归一化层可以是ReLU、泄漏ReLU、广义除法归一化(GDN)、逆GDN(IGDN)等。ReLU可以应用非饱和激活函数以通过将负值设置为零来从输入信号(例如特征图)中去除负值。对于负值,泄漏ReLU可以具有小的斜率(例如0.01)而不是平坦的斜率(例如0)。因此,如果值x大于0,则来自泄漏ReLU的输出是x。否则,来自泄漏ReLU的输出是值x乘以小的斜率(例如,0.01)。在示例中,斜率在训练之前被确定,并且因此在训练期间不学习。
在基于NN的图像压缩方法(诸如基于DNN或基于CNN的图像压缩方法)中,基于块或逐块的编码机制对于以基于DNN的视频编码标准诸如FVC压缩图像是有效的,而不是直接对整个图像进行编码。整个图像可以被划分成相同(或不同)大小的块,并且这些块可以被单独压缩。在实施方式中,图像可以被分割成大小相等或大小不相等的块。可以压缩分割的块而不是图像。图9A示出了根据本公开内容的实施方式的逐块图像编码的示例。图像(980)可以被划分成块,例如块(981)至块(996)。例如,可以根据扫描顺序来压缩块(981)至块(996)。在图9A所示的示例中,块(981)至块(989)已经被压缩,并且块(990)至块(996)将被压缩。
图像可以被视为块。在实施方式中,图像在没有被分割成块的情况下被压缩。整个图像可以是E2E NIC框架的输入。
图9B示出了根据本公开内容的实施方式的示例性NIC框架(900)(例如,NIC系统)。NIC框架(900)可以基于神经网络,诸如DNN和/或CNN。NIC框架(900)可以用于压缩(例如,编码)块和解压缩(例如,解码或重构)被压缩的块(例如,被编码的块)。NIC框架(900)可以包括使用神经网络实现的两个子神经网络,第一子NN(951)和第二子NN(952)。
第一子NN(951)可以类似于自动编码器,并且可以被训练以生成输入块x的压缩块
Figure BDA0003896541730000251
并且对该压缩块
Figure BDA0003896541730000252
进行解压缩以获得重构块
Figure BDA0003896541730000253
第一子NN(951)可以包括多个部件(或模块),诸如主编码器神经网络(或主编码器网络)(911)、量化器(912)、熵编码器(913)、熵解码器(914)和主解码器神经网络(或主编码器网络)(915)。参照图9,主编码器网络(911)可以从输入块x(例如,要被压缩或要被编码的块)生成潜在或潜在表示y。在示例中,使用CNN来实现主编码器网络(911)。潜在表示y与输入块x之间的关系可以使用式2来描述。
y=f1(x;θ1) 式2
其中,参数θ1表示如下参数:诸如主编码器网络(911)中的卷积核中使用的权重以及偏差(如果在主编码器网络(911)中使用偏差)。
可以使用量化器(912)对潜在表示y进行量化以生成经量化的潜在
Figure BDA00038965417300002513
例如,可以由熵编码器(913)使用无损压缩对经量化的潜在
Figure BDA0003896541730000255
进行压缩,以生成作为输入块x的压缩表示
Figure BDA0003896541730000256
的压缩块(例如,编码块)
Figure BDA0003896541730000257
(931)。熵编码器(913)可以使用诸如霍夫曼编码、算术编码等的熵编码技术。在示例中,熵编码器(913)使用算术编码并且是算术编码器。在示例中,编码块(931)在编码比特流中被传输。
编码块(931)可以由熵解码器(914)解压缩(例如,熵解码)以生成输出。熵解码器(914)可以使用与熵编码器(913)中使用的熵编码技术对应的诸如霍夫曼编码、算术编码等的熵编码技术。在示例中,熵解码器(914)使用算术解码并且是算术解码器。在示例中,在熵编码器(913)中使用无损压缩,在熵解码器(914)中使用无损解压缩,并且可以忽略诸如由于编码块(931)的传输而产生的噪声,来自熵解码器(914)的输出是经量化的潜在
Figure BDA0003896541730000258
主解码器网络(915)可以对经量化的潜在
Figure BDA0003896541730000259
进行解码以生成重构块
Figure BDA00038965417300002510
在示例中,使用CNN来实现主解码器网络(915)。重构块
Figure BDA00038965417300002511
(即,主解码器网络(915)的输出)与经量化的潜在
Figure BDA00038965417300002512
(即,主解码器网络(915)的输入)之间的关系可以使用式3来描述。
Figure BDA0003896541730000261
其中,参数θ2表示如下参数:诸如主解码器网络(915)中的卷积核中使用的权重以及偏差(如果在主解码器网络(915)中使用偏差)。因此,第一子NN(951)可以对输入块x进行压缩(例如,编码)以获得编码块(931),并且对编码块(931)进行解压缩(例如,解码)以获得重构块
Figure BDA0003896541730000262
由于由量化器(912)引入的量化损失,重构块
Figure BDA0003896541730000263
可能会与输入块x不同。
第二子NN(952)可以针对用于熵编码的经量化的潜在
Figure BDA0003896541730000264
学习熵模型(例如,先验概率模型)。因此,熵模型可以是取决于输入块x的条件熵模型,例如高斯混合模型(GMM)、高斯尺度模型(GSM)。第二子NN(952)可以包括上下文模型NN(916)、熵参数NN(917)、超编码器(921)、量化器(922)、熵编码器(923)、熵解码器(924)和超解码器(925)。上下文模型NN(916)中使用的熵模型可以是关于潜在(例如,经量化的潜在
Figure BDA0003896541730000265
)的自回归模型。在示例中,超编码器(921)、量化器(922)、熵编码器(923)、熵解码器(924)和超解码器(925)形成超神经网络(例如,超先验NN)。超神经网络可以表示对校正基于上下文的预测有用的信息。来自上下文模型NN(916)和超神经网络的数据可以通过熵参数NN(917)来组合。熵参数NN(917)可以生成如下参数,诸如用于熵模型诸如条件高斯熵模型(例如,GMM)的均值和尺度参数。
参照图9B,在编码器侧,来自量化器(912)的经量化的潜在
Figure BDA0003896541730000266
被馈送至上下文模型NN(916)中。在解码器侧,来自熵解码器(914)的经量化的潜在
Figure BDA0003896541730000267
被馈送至上下文模型NN(916)中。上下文模型NN(916)可以使用诸如CNN的神经网络来实现。上下文模型NN(916)可以基于上下文
Figure BDA0003896541730000268
生成输出ocm,i,该上下文
Figure BDA0003896541730000269
是对上下文模型NN(916)可用的经量化的潜在
Figure BDA00038965417300002610
上下文
Figure BDA00038965417300002611
可以包括编码器侧的先前经量化的潜在或解码器侧的先前被熵解码的经量化的潜在。上下文模型NN(916)的输出ocm,i与输入(例如,
Figure BDA00038965417300002612
)之间的关系可以使用式4来描述。
Figure BDA00038965417300002613
其中,参数θ3表示如下参数,诸如上下文模型NN(916)中的卷积核中使用的权重以及偏差(如果在上下文模型NN(916)中使用偏差)。
来自上下文模型NN(916)的输出ocm,i和来自超解码器(925)的输出ohc被馈送至熵参数NN(917)以生成输出oep。熵参数NN(917)可以使用诸如CNN的神经网络来实现。熵参数NN(917)的输出oep与输入(例如,ocm,i和ohc)之间的关系可以使用式5来描述。
oep=f4(ocm,i,ohc;θ4) 式5
其中,参数θ4表示如下参数,诸如熵参数NN(917)中的卷积核中使用的权重以及偏差(如果在熵参数NN(917)中使用偏差)。熵参数NN(917)的输出oep可以用于确定(例如,调节)熵模型,并且因此,经调节的熵模型可以例如经由来自超解码器(925)的输出ohc而依赖于输入块x。在示例中,输出oep包括用于调节熵模型(例如,GMM)的参数,诸如均值和尺度参数。参照图9B,熵编码器(913)和熵解码器(914)可以分别在熵编码和熵解码中使用熵模型(例如,条件熵模型)。
下面可以描述第二子NN(952)。潜在y可以被馈送至超编码器(921)中以生成超潜在z。在示例中,超编码器(921)使用诸如CNN的神经网络来实现。超潜在z与潜在y之间的关系可以使用式6来描述。
z=f5(y;θ5) 式6
其中,参数θ5表示如下参数,诸如超编码器(921)中的卷积核中使用的权重以及偏差(如果在超编码器(921)中使用偏差)。
由量化器(922)对超潜在z进行量化以生成经量化的潜在
Figure BDA0003896541730000271
例如,可以由熵编码器(923)使用无损压缩对经量化的潜在
Figure BDA0003896541730000272
进行压缩,以生成诸如来自超神经网络的编码比特(932)的边信息。熵编码器(923)可以使用诸如霍夫曼编码、算术编码等的熵编码技术。在示例中,熵编码器(923)使用算术编码并且是算术编码器。在示例中,诸如编码比特(932)的边信息可以在编码比特流中例如与编码块(931)一起传输。
诸如编码比特(932)的边信息可以由熵解码器(924)解压缩(例如,熵解码)以生成输出。熵解码器(924)可以使用诸如霍夫曼编码、算术编码等的熵编码技术。在示例中,熵解码器(924)使用算术解码并且是算术解码器。在示例中,在熵编码器(923)中使用无损压缩,在熵解码器(924)中使用无损解压缩,并且可以忽略诸如由于边信息的传输而导致的噪声,来自熵解码器(924)的输出可以是经量化的潜在
Figure BDA0003896541730000273
超解码器(925)可以对经量化的潜在
Figure BDA0003896541730000274
进行解码以生成输出ohc。输出ohc与经量化的潜在
Figure BDA0003896541730000275
之间的关系可以使用式7来描述。
Figure BDA0003896541730000276
其中,参数θ6表示如下参数,诸如超解码器(925)中的卷积核中使用的权重以及偏差(如果在超解码器(925)中使用偏差)。
如上所述,压缩比特或编码比特(932)可以作为边信息被添加到编码比特流,这使得熵解码器(914)能够使用条件熵模型。因此,熵模型可以是块相关的和空间自适应的,并且因此可以比固定熵模型更精确。
NIC框架(900)可以被适当地调整,以例如省略图9中所示的一个或更多个部件、修改图9中所示的一个或更多个部件以及/或者包括图9中未示出的一个或更多个部件。在示例中,使用固定熵模型的NIC框架包括第一子NN(951),而不包括第二子NN(952)。在示例中,NIC框架包括NIC框架(900)中除熵编码器(923)和熵解码器(924)之外的部件。
在实施方式中,使用诸如CNN的神经网络来实现图9所示的NIC框架(900)中的一个或更多个部件。NIC框架(例如,NIC框架(900))中的每个基于NN的部件(例如,主编码器网络(911)、主解码器网络(915)、上下文模型NN(916)、熵参数NN(917)、超编码器(921)或超解码器(925))可以包括任何合适的架构(例如,具有任何合适的层组合)、包括任何合适类型的参数(例如,权重、偏差、权重与偏差的组合等)并且包括任意合适数目的参数。
在实施方式中,使用相应的CNN来实现主编码器网络(911)、主解码器网络(915)、上下文模型NN(916)、熵参数NN(917)、超编码器(921)和超解码器(925)。
图10示出了根据本公开内容的实施方式的主编码器网络(911)的示例性CNN。例如,主编码器网络(911)包括四组层,其中每组层包括跟随有GDN层的卷积层5×5c192 s2。图10中所示的一个或更多个层可以被修改和/或省略。可以将另外的层添加到主编码器网络(911)。
图11示出了根据本公开内容的实施方式的主解码器网络(915)的示例性CNN。例如,主解码器网络(915)包括三组层,其中每组层包括跟随有IGDN层的去卷积层5x5 c192s2。此外,三组层之后是跟随有IGDN层的去卷积层5x5 c3 s2。图11中所示的一个或更多个层可以被修改和/或省略。可以将另外的层添加到主解码器网络(915)。
图12示出了根据本公开内容的实施方式的超编码器(921)的示例性CNN。例如,超编码器(921)包括跟随有泄漏ReLU的卷积层3x3 c192 s1,跟随有泄漏ReLU的卷积层5x5c192 s2,以及卷积层5x5 c192 s2。图12中所示的一个或更多个层可以被修改和/或省略。可以将另外的层添加到超编码器(921)。
图13示出了根据本公开内容的实施方式的超解码器(925)的示例性CNN。例如,超解码器(925)包括跟随有泄漏ReLU的去卷积层5x5 c192 s2、跟随有泄漏ReLU的去卷积层5x5 c288 s2以及去卷积层3x3 c384 s1。图13中所示的一个或更多个层可以被修改和/或省略。可以将另外的层添加到超编码器(925)。
图14示出了根据本公开内容的实施方式的上下文模型NN(916)的示例性CNN。例如,上下文模型NN(916)包括用于上下文预测的掩蔽卷积5x5 c384 s1,并且因此式4中的上下文
Figure BDA0003896541730000291
包括有限的上下文(例如,5×5卷积核)。可以修改图14中的卷积层。可以将另外的层添加到上下文模型NN(916)。
图15示出了根据本公开内容的实施方式的熵参数NN(917)的示例性CNN。例如,熵参数NN(917)包括跟随有泄漏ReLU的卷积层1x1 c640 s1、跟随有泄漏ReLU的卷积层1x1c512 s1以及卷积层1x1 c384 s1。可以修改和/或省略图15中所示的一个或更多个层。可以将另外的层添加到熵参数NN(917)。
如参照图10至图15所描述的,NIC框架(900)可以使用CNN来实现。NIC框架(900)可以被适当地调整,以使得使用任何适当类型的神经网络(例如,基于CNN或基于非CNN的神经网络)来实现NIC框架(900)中的一个或更多个部件(例如,(911)、(915)、(916)、(917)、(921)和/或(925))。NIC框架(900)的一个或更多个其他部件可以使用神经网络来实现。
包括神经网络(例如,CNN)的NIC框架(900)可以被训练以学习神经网络中使用的参数。例如,当使用CNN时,可以在训练过程中分别学习由θ1至θ6表示的参数,诸如主编码器网络(911)中的卷积核中使用的权重和偏差(如果在主编码器网络(911)中使用偏差)、主解码器网络(915)中的卷积核中使用的权重和偏差(如果在主解码器网络(915)中使用偏差)、超编码器(921)中的卷积核中使用的权重和偏差(如果在超编码器(921)中使用偏差)、超解码器(925)中的卷积核中使用的权重和偏差(如果在超解码器(925)中使用偏差)、上下文模型NN(916)中的卷积核中使用的权重和偏差(如果在上下文模型NN(916)中使用偏差)以及熵参数NN(917)中的卷积核中使用的权重和偏差(如果在熵参数NN(917)中使用偏差)。
在示例中,参照图10,主编码器网络(911)包括四个卷积层,其中每个卷积层具有5×5的卷积核和192个通道。因此,在主编码器网络(911)中的卷积核中使用的权重数量为19200(即,4×5×5×192)。主编码器网络(911)中使用的参数包括19200权重和可选的偏差。当在主编码器网络(911)中使用偏置和/或另外的NN时,可以包括另外的参数。
参照图9B,NIC框架(900)包括至少一个建立在神经网络上的部件或模块。至少一个部件可以包括主编码器网络(911)、主解码器网络(915)、超编码器(921)、超解码器(925)、上下文模型NN(916)和熵参数NN(917)中的一个或更多个。至少一个部件可以被单独训练。在示例中,训练过程用于分别学习每个部件的参数。至少一个部件可以作为组被联合训练。在示例中,训练过程用于联合学习至少一个部件的子集的参数。在示例中,训练过程用于学习所有至少一个部件的参数,并因此被称为E2E优化。
在NIC框架(900)中的一个或更多个部件的训练过程中,可以对一个或更多个部件的权重(或权重系数)进行初始化。在示例中,基于预训练的相应神经网络模型(例如,DNN模型、CNN模型)对权重进行初始化。在示例中,通过将权重设置为随机数来对权重进行初始化。
例如,在对权重进行初始化之后,可以使用训练块的集合来训练一个或更多个部件。训练块的集合可以包括具有任何合适大小的任何合适的块。在一些示例中,训练块的集合包括来自空间域中的原始图像、自然图像、计算机生成的图像等的块。在一些示例中,训练块的集合包括来自在空间域中具有残差数据的残差块或残差图像的块。残差数据可以由残差计算器(例如,残差计算器(723))来计算。在一些示例中,原始图像和/或包括残差数据的残差图像可以直接用于训练NIC框架中的神经网络。因此,原始图像、残差图像、来自原始图像的块和/或来自残差图像的块可以用于训练NIC框架中的神经网络。
为了简洁起见,使用训练块作为示例来描述以下训练过程。该描述可以适当地适于训练图像。训练块的集合中的训练块t可以通过图9B中的编码过程以生成压缩表示(例如,例如到比特流的编码信息)。编码信息可以通过图9B中描述的解码过程以计算和重构重构块
Figure BDA0003896541730000301
对于NIC框架(900),使两个竞争目标例如重构质量和比特消耗平衡。质量损失函数(例如,失真或失真损失)
Figure BDA0003896541730000302
可以用于指示重构质量,诸如重构(例如,重构块
Figure BDA0003896541730000303
)与原始块(例如,训练块t)之间的差异。速率(或速率损失)R可以用于指示压缩表示的比特消耗。在示例中,速率损失R还包括例如在确定上下文模型时使用的边信息。
对于神经图像压缩,可以在E2E优化中使用量化的可微分近似。在各种示例中,在基于神经网络的图像压缩的训练过程中,使用噪声注入来模拟量化,因此,量化是通过噪声注入来模拟而不是由量化器(例如,量化器(912))来执行。因此,使用噪声注入进行的训练可以以变化方式逼近量化误差。每像素比特(BPP)估计器可以用于模拟熵编码器,因此,熵编码由BPP估计器模拟而不是由熵编码器(例如,(913))和熵解码器(例如,(914))执行。因此,训练过程中式1所示的损失函数L中的速率损失R例如可以基于噪声注入和BPP估计器来估计。通常,较高的速率R可以允许较低的失真D,而较低的速率R会导致较高的失真D。因此,式1中的权衡超参数λ可以用于优化联合R-D损失L,其中作为λD和R的总和的L可以被优化。训练过程可以用于调整NIC框架(900)中的一个或更多个部件(例如(911)(915))的参数,使得联合R-D损失L被最小化或优化。
可以使用各种模型来确定失真损失D和速率损失R,并因此确定式1中的联合R-D损失L。在示例中,失真损失
Figure BDA0003896541730000311
被表示为峰值信噪比(PSNR),该峰值信噪比是基于均方误差、多尺度结构相似性(MS-SSIM)质量指数、PSNR和MS-SSIM的加权组合等的度量。
在示例中,训练过程的目标是训练诸如要在编码器侧使用的视频编码器的编码神经网络(例如,编码DNN)以及诸如要在解码器侧使用的视频解码器的解码神经网络(例如,解码DNN)。在示例中,参照图9B,编码神经网络可以包括主编码器网络(911)、超编码器(921)、超解码器(925)、上下文模型NN(916)和熵参数NN(917)。解码神经网络可以包括主解码器网络(915)、超解码器(925)、上下文模型NN(916)和熵参数NN(917)。视频编码器和/或视频解码器可以包括基于NN和/或不基于NN的其他部件。
可以以E2E方式训练NIC框架(例如,NIC框架(900))。在示例中,编码神经网络和解码神经网络在训练过程中基于反向传播梯度以E2E方式被联合更新。
在NIC框架(900)中的神经网络的参数被训练之后,NIC框架(900)中的一个或更多个部件可以用于对块进行编码和/或解码。在实施方式中,在编码器侧,视频编码器被配置成将输入块x编码成要在比特流中传输的编码块(931)。视频编码器可以包括NIC框架(900)中的多个部件。在实施方式中,在解码器侧,对应的视频解码器被配置成将比特流中的编码块(931)解码成重构块
Figure BDA0003896541730000321
视频解码器可以包括NIC框架(900)中的多个部件。
在示例中,例如,当采用内容自适应在线训练时,视频编码器包括NIC框架(900)中的所有部件。
图16A示出了根据本公开内容的实施方式的示例性视频编码器(1600A)。视频编码器(1600A)包括参照图9B描述的主编码器网络(911)、量化器(912)、熵编码器(913)和第二子NN(952),并且出于简化的目的省略了详细描述。图16B示出了根据本公开内容的实施方式的示例性视频解码器(1600B)。视频解码器(1600B)可以对应于视频编码器(1600A)。视频解码器(1600B)可以包括主解码器网络(915)、熵解码器(914)、上下文模型NN(916)、熵参数NN(917)、熵解码器(924)和超解码器(925)。参照图16A至图16B,在编码器侧,视频编码器(1600A)可以生成要在比特流中传输的编码块(931)和编码比特(932)。在解码器侧,视频解码器(1600B)可以接收编码块(931)和编码比特(932)并对编码块(931)和编码比特(932)进行解码。
图17至图18分别示出了根据本公开内容的实施方式的示例性视频编码器(1700)和相应的视频解码器(1800)。参照图17,编码器(1700)包括主编码器网络(911)、量化器(912)和熵编码器(913)。参照图9B描述主编码器网络(911)、量化器(912)和熵编码器(913)的示例。参照图18,视频解码器(1800)包括主解码器网络(915)和熵解码器(914)。参照图9B描述主解码器网络(915)和熵解码器(914)的示例。参照图17和图18,视频编码器(1700)可以生成要在比特流中传输的编码块(931)。视频解码器(1800)可以接收编码块(931)并对编码块(931)进行解码。
如上所述,可以基于训练图像的集合中的图像和/或块来训练包括视频编码器和视频解码器的NIC框架(900)。在一些示例中,要压缩(例如,编码)和/或传输的一个或更多个块具有与该训练块的集合显著不同的特性。因此,分别使用基于该训练块的集合训练的视频编码器和视频解码器对一个或更多个块进行编码和解码会导致相对较差的R-D损失L(例如,相对较大的失真和/或相对较大的比特率)。因此,本公开内容的各方面描述了用于NIC的内容自适应在线训练方法,诸如用于NIC的逐块内容自适应在线训练方法。
在逐块内容自适应在线训练方法中,可以将输入图像分割成块,并且块中的一个或更多个可以用于通过优化速率失真性能而将预训练的NIC框架中的一个或更多个参数更新为一个或更多个替换参数。指示一个或更多个替换参数或一个或更多个替换参数的子集的神经网络更新信息可以与块中被编码的一个或更多个块一起被编码到比特流中。在解码器侧,视频解码器可以对块中被编码的一个或更多个块进行解码,并且可以通过使用一个或更多个替换参数或一个或更多个替换参数的子集来实现较好的压缩性能。逐块内容自适应在线训练方法可以用作用于提高预训练的E2E NIC压缩方法的压缩性能的预处理步骤(例如,预编码步骤)。
为了区分基于训练块的集合的训练过程和基于要压缩(例如,编码)和/或传输的一个或更多个块的内容自适应在线训练过程,通过训练块的集合训练的NIC框架(900)、视频编码器和视频解码器分别被称为预训练的NIC框架(900)、预训练的视频编码器和预训练的视频解码器。预训练的NIC框架(900)中的参数、预训练的视频编码器中的参数或预训练的视频解码器中的参数分别被称为NIC预训练参数、编码器预训练参数和解码器预训练参数。在示例中,NIC预训练参数包括编码器预训练参数和解码器预训练参数。在示例中,编码器预训练参数和解码器预训练参数不交叠,其中编码器预训练参数都不包括在解码器预训练参数中。例如,(1700)中的编码器预训练参数(例如,主编码器网络(911)中的预训练参数)和(1800)中的解码器预训练参数(例如,主解码器网络(915)中的预训练参数)不交叠。在示例中,编码器预训练参数和解码器预训练参数交叠,其中编码器预训练参数中的至少一个被包括在解码器预训练参数中。例如,(1600A)中的编码器预训练参数(例如,上下文模型NN(916)中的预训练参数)和(1600B)中的解码器预训练参数(例如,上下文模型NN(916)中的预训练参数)交叠。可以基于训练块的集合中的块和/或图像获得NIC预训练参数。
内容自适应在线训练过程可以被称为微调过程并且在下面进行描述。预训练的NIC框架(900)中的NIC预训练参数中的一个或更多个预训练参数可以基于要编码和/或传输的一个或更多个块被进一步训练(例如,微调),其中一个或更多个块可以不同于训练块的集合。可以通过基于一个或更多个块对联合R-D损失L进行优化来微调NIC预训练参数中使用的一个或更多个预训练参数。已经由一个或更多个块微调的一个或更多个预训练参数被称为一个或更多个替换参数或一个或更多个微调参数。在实施方式中,在NIC预训练参数中的一个或更多个预训练参数已经被一个或更多个替换参数微调(例如,替换)之后,神经网络更新信息被编码到比特流中以指示一个或更多个替换参数或一个或更多个替换参数的子集。在示例中,NIC框架(900)被更新(或微调),其中一个或更多个预训练参数分别被一个或更多个替换参数替换。
在第一情况下,一个或更多个预训练参数包括一个或更多个预训练参数的第一子集和一个或更多个预训练参数的第二子集。一个或更多个替换参数包括一个或更多个替换参数的第一子集和一个或更多个替换参数的第二子集。
一个或更多个预训练参数的第一子集在预训练的视频编码器中被使用并且例如在训练过程中被一个或更多个替换参数的第一子集替换。因此,通过训练过程将预训练的视频编码器更新为更新后的视频编码器。神经网络更新信息可以指示要替换一个或更多个替换参数的第二子集的一个或更多个替换参数的第二子集。一个或更多个块可以使用更新后的视频编码器进行编码,并在比特流中与神经网络更新信息一起传输。
在解码器侧,一个或更多个预训练参数的第二子集被用在预训练的视频解码器中。在实施方式中,预训练的视频解码器接收神经网络更新信息并对神经网络更新信息进行解码,以确定一个或更多个替换参数的第二子集。当预训练的视频解码器中的一个或更多个预训练参数的第二子集被一个或更多个替换参数的第二子集替换时,预训练的视频解码器被更新为更新后的视频解码器。可以使用更新后的视频解码器对一个或更多个编码块进行解码。
图16A至图16B示出了第一情况的示例。例如,一个或更多个预训练参数包括预训练上下文模型NN(916)中的N1个预训练参数和预训练主解码器网络(915)中的N2个预训练参数。因此,一个或更多个预训练参数的第一子集包括N1个预训练参数,并且一个或更多个预训练参数的第二子集与一个或更多个预训练参数相同。因此,预训练上下文模型NN(916)中的N1个预训练参数可以被N1个对应替换参数替换,使得预训练的视频编码器(1600A)可以被更新为更新后的视频编码器(1600A)。预训练上下文模型NN(916)也被更新为更新后的上下文模型NN(916)。在解码器侧,N1个预训练参数可以被N1个对应替换参数替换,以及N2个预训练参数可以被N2个对应替换参数替换,将预训练上下文模型NN(916)更新为更新后的上下文模型NN(916),并将预训练主解码器网络(915)更新为更新后的主解码器网络(915)。因此,预训练的视频解码器(1600B)可以被更新为更新后的视频解码器(1600B)。
在第二情况下,在编码器侧的预训练的视频编码器中没有使用一个或更多个预训练参数。反而,在解码器侧的预训练的视频解码器中使用一个或更多个预训练参数。因此,预训练的视频编码器没有被更新,并且在训练过程之后继续是预训练的视频编码器。在实施方式中,神经网络更新信息指示一个或更多个替换参数。一个或更多个块可以使用预训练的视频编码器进行编码,并在比特流中与神经网络更新信息一起被传输。
在解码器侧,预训练的视频解码器可以接收神经网络更新信息并对神经网络更新信息进行解码,以确定一个或更多个替换参数。当预训练的视频解码器中的一个或更多个预训练参数被一个或更多个替换参数替换时,预训练的视频解码器被更新为更新后的视频解码器。可以使用更新后的视频解码器对一个或更多个编码块进行解码。
图16A至图16B示出了第二情况的示例。例如,一个或更多个预训练参数包括预训练主解码器网络(915)中的N2个预训练参数。因此,在编码器侧的预训练的视频编码器(例如,预训练的视频编码器(1600A))中没有使用一个或更多个预训练参数。因此,预训练的视频编码器(1600A)在训练过程之后继续是预训练的视频编码器。在解码器侧,N2个预训练参数可以被N2个对应替换参数替换,这将预训练主解码器网络(915)更新为更新后的主解码器网络(915)。因此,预训练的视频解码器(1600B)可以被更新为更新后的视频解码器(1600B)。
在第三情况下,一个或更多个预训练参数在预训练的视频编码器中被使用,并且例如在训练过程中被一个或更多个替换参数替换。因此,通过训练过程将预训练的视频编码器更新为更新后的视频编码器。一个或更多个块可以使用更新后的视频编码器进行编码并在比特流中传输。在比特流中没有编码神经网络更新信息。在解码器侧,预训练的视频解码器没有被更新,并且仍然是预训练的视频解码器。可以使用预训练的视频解码器对一个或更多个编码块进行解码。
图16A至图16B示出了第三情况的示例。例如,一个或更多个预训练参数在预训练主编码器网络(911)中。因此,预训练主编码器网络(911)中的一个或更多个预训练参数可以被一个或更多个替换参数替换,使得预训练的视频编码器(1600A)可以被更新为更新后的视频编码器(1600A)。预训练主编码器网络(911)也被更新为更新后的主编码器网络(911)。在解码器侧,预训练的视频解码器(1600B)没有被更新。
在诸如在第一情况、第二情况和第三情况下描述的各种示例中,视频解码可以由具有不同能力的预训练解码器(包括具有和不具有更新预训练参数的能力的解码器)执行。
在示例中,与使用预训练的视频编码器和预训练的视频解码器对一个或更多个块进行编码相比,可以通过使用更新后的视频编码器和/或更新后的视频解码器对一个或更多个块进行编码来提高压缩性能。因此,内容自适应在线训练方法可以用于使预训练的NIC框架(例如,预训练的NIC框架(900))适应于目标块内容(例如,要传输的一个或更多个块),并因此对预训练的NIC框架进行微调。因此,可以更新编码器侧的视频编码器和/或解码器侧的视频解码器。
内容自适应在线训练方法可以用作用于提高预训练E2E NIC压缩方法的压缩性能的预处理步骤(例如,预编码步骤)。
在实施方式中,一个或更多个块包括单个输入块,并且对单个输入块执行微调过程。NIC框架(900)基于单个输入块被训练和更新(例如,微调)。编码器侧的更新后的视频编码器和/或解码器侧的更新后的视频解码器可以用于对单个输入块和可选的其他输入块进行编码。神经网络更新信息可以与编码后的单个输入块一起被编码到比特流中。
在实施方式中,一个或更多个块包括多个输入块,并且对多个输入块执行微调过程。NIC框架(900)基于多个输入块被训练和更新(例如,微调)。编码器侧的更新后的视频编码器和/或解码器侧的更新后的解码器可以用于对多个输入块和可选的其他输入块进行编码。神经网络更新信息可以与编码后的多个输入块一起被编码到比特流中。
速率损失R可以随着神经网络更新信息在比特流中的信号发送而增加。当一个或更多个块包括单个输入块时,针对每个编码块用信号发送神经网络更新信息,并且速率损失R的第一增加用于指示由于每个块的神经网络更新信息的信号发送而导致的速率损失R的增加。当一个或更多个块包括多个输入块时,神经网络更新信息针对多个输入块被用信号发送并且被多个输入块共享,并且速率损失R的第二增加被用于指示由于每个块的神经网络更新信息的信号发送而导致的速率损失R的增加。因为神经网络更新信息由多个输入块共享,所以速率损失R的第二增加可以小于速率损失R的第一增加。因此,在一些示例中,使用多个输入块微调NIC框架会是有利的。
在实施方式中,要更新的一个或更多个预训练参数在预训练的NIC框架(900)的一个部件中。因此,预训练的NIC框架(900)的一个部件基于一个或更多个替换参数被更新,并且预训练的NIC框架(900)的其他部件未被更新。
一个部件可以是预训练的上下文模型NN(916)、预训练的熵参数NN(917)、预训练的主编码器网络(911)、预训练的主解码器网络(915)、预训练的超编码器(921)或预训练的超解码器(925)。可以根据预训练的NIC框架(900)中的部件中的哪些部件被更新来更新预训练的视频编码器和/或预训练的视频解码器。
在示例中,要更新的一个或更多个预训练参数在预训练的上下文模型NN(916)中,并且因此预训练的上下文模型NN(916)被更新而剩余部件(911)、(915)、(921)、(917)和(925)未被更新。在示例中,编码器侧的预训练的视频编码器和解码器侧的预训练的视频解码器包括预训练的上下文模型NN(916),并且因此预训练的视频编码器和预训练的视频解码器二者都被更新。
在示例中,要更新的一个或更多个预训练参数在预训练的超解码器(925)中,并且因此预训练的超解码器(925)被更新而剩余部件(911)、(915)、(916)、(917)和(921)未被更新。因此,预训练的视频编码器未被更新,而预训练的视频解码器被更新。
在实施方式中,要更新的一个或更多个预训练参数在预训练的NIC框架(900)的多个部件中。因此,预训练的NIC框架(900)的多个部件基于一个或更多个替换参数被更新。在示例中,预训练的NIC框架(900)的多个部件包括配置有神经网络(例如DNN、CNN)的所有部件。在示例中,预训练的NIC框架(900)的多个部件包括基于CNN的部件:预训练的主编码器网络(911)、预训练的主解码器网络(915)、预训练的上下文模型NN(916)、预训练的熵参数NN(917)、预训练的超编码器(921)和预训练的超解码器(925)。
如上所述,在示例中,要更新的一个或更多个预训练参数在预训练的NIC框架(900)的预训练的视频编码器中。在示例中,要更新的一个或更多个预训练参数在NIC框架(900)的预训练的视频解码器中。在示例中,要更新的一个或更多个预训练参数在预训练的NIC框架(900)的预训练的视频编码器和预训练的视频解码器中。
NIC框架(900)可以基于神经网络,例如,NIC框架(900)中的一个或更多个部件可以包括神经网络,例如CNN、DNN等。如上所述,神经网络可以由不同类型的参数例如权重、偏置等指定。NIC框架(900)中的每个基于神经网络的部件(例如,上下文模型NN(916)、熵参数NN(917)、主编码器网络(911)、主解码器网络(915)、超编码器(921)或超解码器(925))可以被配置有合适的参数,例如相应的权重、偏置或者权重和偏置的组合。当使用(一个或多个)CNN时,权重可以包括卷积核中的元素。可以使用一种或更多种类型的参数来指定神经网络。在实施方式中,要更新的一个或更多个预训练参数是(一个或更多个)偏置项,并且仅(一个或更多个)偏置项被一个或更多个替换参数替换。在实施方式中,要更新的一个或更多个预训练参数是权重,并且仅权重被一个或更多个替换参数替换。在实施方式中,要更新的一个或更多个预训练参数包括权重和(一个或更多个)偏置项,并且包括权重和(一个或更多个)偏置项的所有预训练参数被一个或更多个替换参数替换。在实施方式中,可以使用其他参数来指定神经网络,并且可以对其他参数进行微调。
微调过程可以包括多个阶段(例如,迭代),其中在迭代微调过程中更新一个或更多个预训练参数。过程可以在训练损失已经不变或将要不变时停止。在示例中,微调过程在训练损失(例如,R-D损失L)低于第一阈值时停止。在示例中,微调过程在两个连续训练损失之间的差低于第二阈值时停止。
与损失函数(例如,R-D损失L)一起,可以在微调过程中使用两个超参数(例如,步长和最大步数)。可以将最大迭代次数用作终止微调过程的最大迭代次数的阈值。在示例中,微调过程在迭代次数达到最大迭代次数时停止。
步长可以指示在线训练过程(例如,在线微调过程)的学习率。可以在微调过程中执行的反向传播计算或梯度下降算法中使用步长。可以使用任何合适的方法来确定步长。
针对图像中每个块的步长可以不同。在实施方式中,可以为图像分配不同的步长以实现更好的压缩结果(例如,更好的R-D损失L)。
在一些示例中,基于NIC框架(例如,NIC框架(900))的视频编码器和视频解码器可以直接对图像进行编码和解码。因此,分块内容自适应在线训练方法可以适用于通过直接使用一个或更多个图像来更新NIC框架中的某些参数,从而更新视频编码器和/或视频解码器。不同的图像可以具有不同的步长以实现优化的压缩结果。
在实施方式中,针对具有不同类型内容的块使用不同的步长以实现最优的结果。不同的类型可以指代不同的方差。在示例中,基于用于更新NIC框架的块的方差来确定步长。例如,具有高方差的块的步长大于具有低方差的块的步长,其中高方差大于低方差。
在实施方式中,基于块或图像的特性,例如块的RGB方差来选择步长。在实施方式中,基于块的RD性能(例如,R-D损失L)来选择步长。可以基于不同的步长生成多组替换参数,并且可以选择压缩性能更好(例如,R-D损失较小)的一组替换参数。
在实施方式中,可以使用第一步长来运行一定数量(例如,100)的迭代。然后,可以使用第二步长(例如,第一步长加上或减去尺寸增量)来运行一定数量的迭代。可以比较根据第一步长与第二步长的结果以确定要使用的步长。可以测试多于两个的步长以确定最优步长。
在微调过程期间步长可以变化。步长可以在微调过程开始时具有初始值,并且在微调过程的后期,例如在一定次数的迭代之后可以将初始值减小(例如减半)以实现更精细的调整。在迭代在线训练期间,步长或学习率可以由调度器改变。调度器可以包括用于调整步长的参数调整方法。调度器可以确定步长的值使得步长在若干间隔内可以增加、减少或保持恒定。在示例中,调度器在每个步骤中改变学习率。单个调度器或多个不同的调度器可以用于不同的块。因此,可以基于多个调度器生成多组替换参数,并且可以选择压缩性能更好(例如,R-D损失较小)的多组替换参数中的一组替换参数。
在实施方式中,为不同的块分配多个学习率调度以实现更好的压缩结果。在实施方式中,图像中的所有块共享相同的学习率调度。在实施方式中,学习率调度的选择基于块的特性,例如块的RGB方差。在实施方式中,学习率调度的选择基于块的RD性能。
在实施方式中,可以使用不同的块来更新NIC框架中的不同部件(例如,上下文模型NN(916)或超解码器(925))的不同参数。例如,使用第一块来更新上下文模型NN(916)中的参数,并且使用第二块来更新超解码器(925)中的参数。
在实施方式中,可以使用不同的块来更新NIC框架中的不同类型的参数(例如,偏置或权重)。例如,使用第一块来更新NIC框架中的一个或更多个神经网络中的至少一个偏置,并且使用第二块来更新NIC框架中的一个或更多个神经网络中的至少一个权重。
在实施方式中,图像中的多个块(例如,所有块)更新相同的一个或更多个参数。
在实施方式中,基于块的特性例如块的RGB方差来选择要更新的一个或更多个参数。在实施方式中,基于块的RD性能来选择要更新的一个或更多个参数。
在微调过程结束时,可以为相应的一个或更多个替换参数计算一个或更多个更新参数。在实施方式中,一个或更多个更新参数被计算为一个或更多个替换参数与对应的一个或更多个预训练参数之间的差。在实施方式中,一个或更多个更新参数分别是一个或更多个替换参数。
在实施方式中,可以例如使用某个线性或非线性变换根据一个或更多个替换参数生成一个或更多个更新参数,并且所述一个或更多个更新参数是基于一个或更多个替换参数生成的代表性参数。一个或更多个替换参数被转换成一个或更多个更新参数以用于更好的压缩。
一个或更多个更新参数的第一子集对应于一个或更多个替换参数的第一子集,并且一个或更多个更新参数的第二子集对应于一个或更多个替换参数的第二子集。
在实施方式中,不同的块具有不同的一个或更多个更新参数与一个或更多个替换参数之间的关系。例如,对于第一块,一个或更多个更新参数被计算为一个或更多个替换参数与对应的一个或更多个预训练参数之间的差。对于第二块,一个或更多个更新参数分别是一个或更多个替换参数。
在实施方式中,图像中的多个块(例如,所有块)具有相同的一个或更多个更新参数与一个或更多个替换参数之间的关系。
在实施方式中,基于块的特性例如块的RGB方差来选择一个或更多个更新参数与一个或更多个替换参数之间的关系。在实施方式中,基于块的RD性能来选择一个或更多个更新参数与一个或更多个替换参数之间的关系。
在示例中,可以例如使用作为Lempel-Ziv-Markov链算法(LZMA)、bzip2算法等的变体的LZMA2来压缩一个或更多个更新参数。在示例中,对于一个或更多个更新参数省略了压缩。在一些实施方式中,一个或更多个更新参数或者一个或更多个更新参数的第二子集可以作为神经网络更新信息被编码到比特流中,其中神经网络更新信息指示一个或更多个替换参数或者一个或更多个替换参数的第二子集。
在实施方式中,用于一个或更多个更新参数的压缩方法对于不同块是不同的。例如,对于第一块,使用LZMA2来压缩一个或更多个更新参数,而对于第二块,使用bzip2来压缩一个或更多个更新参数。在实施方式中,使用相同的压缩方法来压缩图像中多个块(例如,所有块)的一个或更多个更新参数。在实施方式中,基于块的特性例如块的RGB方差来选择压缩方法。在实施方式中,基于块的RD性能来选择压缩方法。
在微调过程之后,在一些示例中,可以基于(i)一个或更多个替换参数的第一子集或(ii)一个或更多个替换参数来更新或微调编码器侧的预训练的视频编码器。可以使用更新的视频编码器将输入块(例如,用于微调过程的一个或更多个块中的一个块)编码到比特流中。因此,比特流包括编码块和神经网络更新信息二者。
如果适用,在示例中,神经网络更新信息被预训练的视频解码器解码(例如,解压缩)以获得一个或更多个更新参数或者一个或更多个更新参数的第二子集。在示例中,可以基于上述一个或更多个更新参数与一个或更多个替换参数之间的关系来获得一个或更多个替换参数或者一个或更多个替换参数的第二子集。如上所述,可以微调预训练的视频解码器,并且可以使用解码的更新视频来对编码块进行解码。
NIC框架可以包括任何类型的神经网络并且使用任何基于神经网络的图像压缩方法,例如上下文超先验编码器-解码器框架(例如,图9B中所示的NIC框架)、尺度超先验编码器-解码器框架、高斯混合似然框架和高斯混合似然框架的变体、基于RNN的递归压缩方法和基于RNN的递归压缩方法的变体等。
与相关的E2E图像压缩方法相比,本公开内容中的内容自适应在线训练方法和装置可以具有以下优点。利用自适应在线训练机制来提高NIC编码效率。灵活且通用的框架的使用可以适应各种类型的预训练框架和质量度量。例如,通过使用利用要编码和传输的块的在线训练,可以替换各种类型的预训练框架中的某些预训练参数。
视频编码技术可以包括滤波操作,对重构样本执行滤波操作使得可以减少由有损压缩(例如通过量化)产生的伪影。在一个这样的滤波操作中使用去块滤波处理,其中,可以对两个相邻块之间的块边界(例如边界区域)进行滤波,使得可以实现样本值从一个块到另一个块的更平滑的过渡。
在一些相关示例(例如,HEVC)中,可以将去块滤波处理应用于相邻于块边界的样本。可以按照与解码处理相同的顺序对每个CU执行去块滤波处理。例如,可以通过首先对图像的垂直边界进行水平滤波,然后对图像的水平边界进行垂直滤波,来执行去块滤波处理。可以针对亮度分量和色度分量二者将滤波应用于被确定为要进行滤波的8×8块边界。在示例中,不对4×4块边界进行处理以降低复杂性。
可以使用边界强度(boundary strength,BS)来指示去块滤波处理的程度或强度。在实施方式中,BS的值为2指示强滤波,BS的值为1指示弱滤波,并且BS的值为0指示没有去块滤波。
图19示出了根据本公开内容的实施方式的用于确定BS值的过程(1900)的流程图。在其他实施方式中,图19中的步骤的顺序可以被重新排序,或者一个或更多个步骤可以被省略或替换。
在图19中,P与Q是之间具有边界的两个相邻的块。在垂直边界的情况下,P可以表示位于边界左侧的块,并且Q可以表示位于边界右侧的块。在水平边界的情况下,P可以表示位于边界上方的块,并且Q可以表示位于边界下方的块。
在图19中,可以基于预测模式(例如,帧内编码模式)、非零变换系数(或非零变换系数的存在)、参考图片、运动矢量的数量和/或运动矢量差来确定BS值。
在步骤(S1910)处,过程(1900)确定P或Q是否以帧内预测模式编码。当确定P和Q中的至少一个以帧内预测模式编码时,过程(1900)确定BS的第一值(例如,2)。否则,过程(1900)进行到步骤(S1920)。
在步骤(S1920)处,过程(1900)确定P或Q是否具有非零变换系数。当确定P和Q中的至少一个具有非零变换系数时,过程(1900)确定BS的第二值(例如,1)。否则,过程(1900)进行到步骤(S1930)。
在步骤(S1930)处,过程(1900)确定P和Q是否具有不同的参考图片。当确定P和Q具有不同的参考图片时,过程(1900)确定BS的第三值(例如,1)。否则,过程(1900)进行到步骤(S1940)。
在步骤(S1940)处,过程(1900)确定P和Q是否具有不同数量的运动矢量。当确定P和Q具有不同数量的运动矢量时,过程(1900)确定BS的第四值(例如,1)。否则,过程(1900)进行到步骤(S1950)。
在步骤(S1950)处,过程(1900)确定P与Q之间的运动矢量差是否大于或等于阈值T。当确定P与Q之间的运动矢量差大于或等于阈值T时,过程(1900)确定BS的第五值(例如,1)。否则,过程(1900)确定BS的第六值(例如,0)。在实施方式中,阈值T被设置成1个像素。在图19示例中,MV精度是1/4像素,因此MV差阈值的值可以被设置成4。在另一示例中,如果MV精度是1/16,则MV差的值可以被设置成16。
在图19示例中,第二值至第五值被设置为1。然而,在另一示例中,第二值至第五值中的一些或全部可以被设置为不同的值。
在一些实施方式中,可以以4×4块为基础计算BS,以及可以将BS重新映射到8×8网格。例如,选择与由4×4网格中的线构成的8个像素对应的BS的两个值中的最大值作为8×8网格中的边界的BS。
在一些相关示例,例如VVC测试模型5(VVC Test model 5,VTM5)中,去块滤波过程可以基于HEVC中使用的过程并且包括一些修改。例如,去块滤波器的滤波强度可以取决于重构样本的平均亮度级,可以扩展去块tC表,可以将较强的去块滤波器用于亮度分量和色度分量,可以将亮度去块滤波器应用于4×4样本网格,并且可以将色度去块滤波器应用于8×8样本网格。
在一些相关示例,例如HEVC中,去块滤波器的滤波强度可以由从平均量化参数qPL得出的变量β和tC控制。在一些相关示例,例如VTM5中,去块滤波器可以通过根据重构样本的亮度级将偏移添加至平均量化参数qPL来控制滤波强度。重构亮度级LL可以根据下式得出,
LL=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<bitDepth) 式8
其中,如图20中所示,得出i=0..3以及k=0和3的样本值pi,k和qi,k。图20示出了根据实施方式的用于确定边界强度值的示例性样本位置。
变量qPL可以根据下式得出,
qPL=((QpQ+QpP+1)>>1)+qpOffset 式9
其中,QpQ和QpP分别表示包含样本q0,0和p0,0的编码单元的量化参数。偏移qpOffset取决于传递函数和重构亮度级LL。qpOffset的映射函数和亮度级可以在序列参数集(sequence parameter set,SPS)中用信令通知,并且根据内容的传递特性来得出,因为传递函数可以在视频格式之间变化。
在一些相关示例,例如VTM5中,最大QP可以被扩展为63。为了反映基于块QP得出去块参数的值的去块表的对应变化,tC表可以适应QP范围的扩展而为tC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,25,28,31,35,39,44,50,56,63,70,79,88,99]。
在一些相关示例中,当边界的任一侧处的样本属于大块时,可以使用较强的去块滤波器(例如,双线性滤波器)。大块可以被定义为当块的宽度对于垂直边缘大于或等于32时,以及当块的高度对于水平边缘大于或等于32时。然后,针对i=0至Sp-1的块边界样本pi和针对j=0至Sq-1的块边界样本qi根据下式被线性插值替换:
pi′=(fi*Middles,t+(64-fi)*Ps+32)>>6),剪裁到pi±tcPDi 式10
qj′=(gj*Middles,t+(64-gj)*Qs+32)>>6),剪裁到qj±tcPDj 式11
其中,参数tcPDi和tcPDj是位置相关的剪裁参数,并且在表1中给出gj、fi、Middles,t、Ps和Qs
表1
Figure BDA0003896541730000441
Figure BDA0003896541730000451
Figure BDA0003896541730000461
在一些实施方式中,仅当条件1、条件2和条件3全部为真时,可以使用较强的亮度滤波器。条件1被称为大块条件。该条件检测P侧和Q侧处的样本是否属于大块。条件2和条件3根据下式确定:
条件2=(d<β)?真:假 式12
条件3=强滤波器条件=(dpq小于(β>>2),sp3+sq3小于(3*β>>5),并且Abs(p0-q0)小于(5*tC+1)>>1)?真:假
式13
其中,d、dpq、sp和sq是梯度计算的量值,梯度计算用于确定与基于β的阈值相比的细节量,以避免通过滤波去除细节,其中β是QP相关的编码噪声阈值。类似地,还检查跨越边界的梯度的量值小于基于tC的阈值,所述阈值是QP相关的去块强度阈值。
在一些实施方式中,针对色度的强去块滤波器可以根据下式定义:
p2′=(3*p3+2*p2+p1+p0+q0+4)>>3 式14
p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3 式15
p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3 式16
在实施方式中,针对色度的强去块滤波器可以对8×8色度样本网格执行去块。色度强滤波器可以用在块边界两侧处的样本上。例如,当块边界的两侧大于或等于8(以色度样本为单位)并且满足以下三个决策时,可以选择色度强滤波器。第一决策是确定由块边界分隔的两个块中的任何一个是大块。第二决策和第三决策分别是去块滤波器开/关决策和强滤波器决策,其可以与诸如HEVC的一些相关示例中的决策相同。在第一决策中,可以将BS修改以用于色度滤波,如表2中所示。对表2中的条件顺序地检查。如果满足条件,则跳过具有较低优先级的剩余条件。
表2
Figure BDA0003896541730000471
在实施方式中,当BS等于2,或者BS等于1,同时检测到大的块边界时,可以执行色度去块。在这样的情况下,第二决策和第三决策基本上与HEVC亮度强滤波器决策相同。
在一些相关示例,例如VVC中,可以对于亮度的4×4网格和对于色度的8×8网格启用去块滤波器。去块滤波过程可以应用于CU边界和子块边界。子块边界可以包括由基于子块的时间运动矢量预测(sub-block-based temporal motion vector prediction,SbTMVP)和仿射模式引入的预测单元边界,以及由子块变换(sub-block transform,SBT)和帧内子划分(intra sub-partition,ISP)模式引入的变换单元边界。
对于SBT和ISP子块,可以应用用于HEVC中的TU的去块滤波器。例如,当由边界分隔的子块中的任一者中存在非零系数时,可以将去块滤波器应用于TU边界。
对于4×4网格上的SbTMVP和仿射子块,可以应用用于HEVC中的PU的去块滤波器。例如,可以考虑相邻子块的参考图片与运动矢量之间的差来应用用于PU边界的去块滤波器。
可以使用任何合适的方法,例如本公开内容中的实施方式,根据编码视频比特流重构图像的块。例如,可以使用包括神经网络(例如,CNN)的视频解码器(例如,(1600B)或(1800))来重构块,神经网络具有由基于上述的分块内容自适应在线训练过程确定的一个或更多个相应的替换参数替换的一个或更多个预训练参数。根据本公开内容的一些实施方式,可以利用至少一个后处理NN对重构块中的第一两个相邻重构块的多个区域中的一个区域执行后处理。第一两个相邻重构块可以具有第一共享边界并且包括具有在第一共享边界的两侧上的样本的边界区域。第一两个相邻重构块的多个区域可以包括边界区域和在边界区域外部的非边界区域。可以利用第一两个相邻重构块的多个区域中的经后处理的一个区域替换多个区域中的一个区域。执行的后处理可以是对边界区域进行去块、增强非边界区域中的一个或更多个非边界区域、去块和增强的组合等。
可以使用一种或更多种去块方法来减少块之间的伪影(例如,图像中的重构块)。为了减少块之间的伪影,例如边界区域中的伪影,可以使用一个或更多个基于NN的去块模型。基于NN的去块模型可以是基于DNN的去块模型、基于CNN的去块模型等。可以使用诸如DNN、CNN等的NN来实现基于NN的去块模型。
在实施方式中,多个区域中的一个区域是边界区域。至少一个后处理NN包括至少一个去块NN,例如主解码器网络(915),并且可以利用至少一个去块NN对边界区域执行去块。可以利用去块的边界区域替换边界区域。去块的示例如图21A至图21C、图22、图23和图26中所示。
图21A至图21C示出了根据本公开内容的实施方式的示例性去块过程(2100)。参照图21A,可以将图像(2101)划分成多个块(2111)至(2114)。为简洁起见,图21A中示出了四个尺寸相等的块(2111)至(2114)。通常,可以将图像划分成任何合适数量的块,并且块的尺寸可以不同或相同,并且可以适当地调整描述。在一些示例中,可以通过去块对包括例如由将图像划分成块引起的伪影的区域进行处理。
在示例中,块(2111)至(2114)是来自主解码器网络(915)的重构块。重构块(2111)至(2114)的第一两个相邻重构块可以包括由第一共享边界(2141)分隔的块(2111)和(2113)。块(2111)和(2113)可以包括具有在第一共享边界(2141)的两侧上的样本的边界区域A。参照图21A至图21B,边界区域A可以包括分别位于块(2111)和(2113)中的子边界区域A1和A2。
重构块(2111)至(2114)中的两个相邻重构块可以包括由第二共享边界(2142)分隔的块(2112)和(2114)。块(2112)和(2114)可以包括具有在第二共享边界(2142)的两侧上的样本的边界区域B。参照图21A至图21B,边界区域B可以包括分别位于块(2112)和(2114)中的子边界区域B1和B2。
重构块(2111)至(2114)中的两个相邻重构块可以包括由共享边界(2143)分隔的块(2111)和(2112)。块(2111)和(2112)可以包括具有在共享边界(2143)的两侧上的样本的边界区域C。参照图21A至图21B,边界区域C可以包括分别位于块(2111)和(2112)中的子边界区域C1和C2。
重构块(2111)至(2114)中的两个相邻重构块可以包括由共享边界(2144)分隔的块(2113)和(2114)。块(2113)和(2114)可以包括具有在共享边界(2144)的两侧上的样本的边界区域D。参照图21A至图21B,边界区域D可以包括分别位于块(2113)和(2114)中的子边界区域D1和D2。
子边界区域A1至D1和A2至D2(以及边界区域A至D)可以具有任何合适的尺寸(例如,宽度和/或高度)。在图21A中所示的实施方式中,子边界区域A1、A2、B1和B2具有相同的m×n尺寸,其中n是块(2111)至(2114)的宽度,m是子边界区域A1、A2、B1和B2的高度。m和n都是正整数。在示例中,m是四个像素或四个样本。因此,边界区域A和B具有相同的2m×n尺寸。子边界区域C1、C2、D1和D2具有相同的n×m尺寸,其中n是块(2111)至(2114)的高度,m是子边界区域C1、C2、D1和D2的宽度。因此,边界区域C和D具有相同的n×2m尺寸。如上所述,子边界区域和边界区域可以具有不同的尺寸,例如不同的宽度、不同的高度等。例如,子边界区域A1和A2可以具有不同的高度。在示例中,子边界区域C1和C2可以具有不同的宽度。边界区域A和B可以具有不同的宽度。边界区域C和D可以具有不同的高度。
参照图21A至图21B,边界区域A包括自第一共享边界(2141)起块(2111)中的m排样本(例如,m行样本)和自第一共享边界(2141)起块(2113)中的m排样本(例如,m行样本)。边界区域C包括自共享边界(2143)起块(2111)中的m排样本(例如,m列样本)和自共享边界(2143)起块(2112)中的m排样本(例如,m列样本)。
可以利用至少一个去块NN,例如基于DNN、CNN或任何合适的NN的去块NN来对边界区域A至D中的一个或更多个执行去块。在示例中,至少一个去块NN包括去块NN(2130)。在示例中,使用包括一个或更多个卷积层的CNN来实现去块NN(2130)。去块NN(2130)可以包括本公开内容中描述的附加层,例如(一个或更多个)池化层、(一个或更多个)全连接层、(一个或更多个)归一化层等。去块NN(2130)中的层可以以任何合适的顺序和以任何合适的架构(例如,前馈架构、循环架构)来布置。在示例中,卷积层之后是其他层,例如(一个或更多个)池化层、(一个或更多个)全连接层、(一个或更多个)归一化层等。
可以利用去块NN(2130)对边界区域A至D执行去块。边界区域A至D中的一个或更多个包括伪影。伪影可能由相应的相邻块引起。可以将边界区域A至D中的一个或更多个发送至去块NN(2130)以减少伪影。因此,至去块NN(2130)的输入包括边界区域A至D中的一个或更多个,并且从去块NN(2130)的输出包括经去块的边界区域A至D中的一个或更多个。
参照图21B,边界区域A至D包括由相应的相邻块引起的伪影。可以将边界区域A至D发送至去块NN(2130)以减少伪影。从去块NN(2130)的输出包括去块的边界区域A’至D’。在示例中,去块的边界区域A’至D’中的伪影与边界区域A至D中的伪影相比得到了减少。
参照图21B和图21C,图像(2101)中的边界区域A至D被更新,例如通过被替换为经去块的边界区域A’至D’而被更新。因此,生成图像(2150)并且图像(2150)包括经去块的边界区域A’至D’和非边界区域(2121)至(2124)。
一个或更多个样本可以在多个边界区域中。当多个边界区域被对应的经去块的边界区域替换时,可以使用任何合适的方法来确定一个或更多个共享样本中的一个共享样本的值。
参照图21A,样本S在边界区域A和C中。在获得边界区域A’和C’之后,可以使用以下方法来获得样本S的值。在示例中,边界区域A被经去块的边界区域A’替换,并且随后,边界区域C被经去块的边界区域C’替换。因此,样本S的值由经去块的边界区域C’中的样本S的值确定。
在示例中,边界区域C被经去块的边界区域C’替换,并且随后,边界区域A被经去块的边界区域A’替换。因此,样本S的值由经去块的边界区域A’中的样本S的值确定。
在示例中,样本S的值由经去块的边界区域A’中的样本S的值和经去块的边界区域C’中的样本S的值的平均(例如,加权平均)来确定。
边界区域可以包括多于两个块的样本。图22示出了根据本公开内容的实施方式的包括多于两个块的样本的边界区域的示例。单个边界区域AB可以包括边界区域A和B。边界区域AB可以包括两个相邻重构块(2111)与(2113)之间的共享边界(2141)的两侧上的样本,并且包括两个相邻重构块(2112)与(2114)之间的共享边界(2142)的两侧上的样本。单个边界区域CD可以包括边界区域C和D。边界区域CD可以包括两个相邻重构块(2111)与(2112)之间的共享边界(2143)的两侧上的样本,并且包括两个相邻重构块(2113)与(2114)之间的共享边界(2144)的两侧上的样本。
去块NN(诸如去块NN(2130))可以对边界区域AB和CD中的一个或更多个边界区域执行去块以生成边界区域的一个或更多个经去块的边界区域。参照图22,边界区域AB和CD被发送至去块NN(2130)并且生成经去块的边界区域AB’和CD’。经去块的边界区域AB’和CD’可以替换图像(2101)中的边界区域AB和CD,从而生成图像(2250)。图像(2250)可以包括经去块的边界区域AB’至CD’和非边界区域(2121)至(2124)。
根据本公开内容的实施方式,可以使用多模型去块方法。可以将不同的去块模型应用于不同类型或类别的边界区域,以去除伪影。可以应用分类模块以将边界区域分类成不同的类别。可以应用任何分类模块。在示例中,分类模块基于NN。在示例中,分类模块不基于NN。可以根据相应类别将边界区域发送至不同的去块模型。
在实施方式中,至少一个去块NN包括分别基于不同的去块模型实现的多个去块NN。可以确定将多个去块NN的哪一个应用于边界区域。可以使用确定的去块NN对边界区域执行去块。在示例中,通过基于NN(例如,也被称为分类NN)——诸如DNN、CNN等——的分类模块确定应用多个去块NN的哪一个。
图23示出了根据本公开内容的实施方式的基于多个去块模型的示例性去块过程(2300)。分类模块(2310)可以将边界区域A至D分类成一个或更多个类别。例如,将边界区域C至D分类成第一类别,将边界区域B分类成第二类别,以及将边界区域A分类成第三类别。可以将不同的去块模型应用于不同类别中的边界区域。在图23中,可以使用去块NN(2330)执行去块,诸如基于多个去块模型(例如,去块模型1至L)的多模型去块。L是正整数。当L为1时,去块NN(2330)包括单个去块模型。当L大于1时,去块NN(2330)包括多个去块模型。
在示例中,将去块模型1应用于第一类别中的边界区域(例如,C和D),并且生成经去块的边界区域(例如,C”和D”)。将去块模型2应用于第二类别中的边界区域(例如,B),并且生成经去块的边界区域(例如B”)。将去块模型3应用于第三类别中的边界区域(例如A),并且生成经去块的边界区域(例如A”)。经去块的边界区域A”至D”可以替换图像(2101)中对应的边界区域A至D,从而生成图像(2350)。图像(2350)可以包括经去块的边界区域A”至D”和非边界区域(2121)至(2124)。
可以应用任何合适的度量来对边界区域进行分类或归类。在示例中,根据边界区域的内容对边界区域进行分类。例如,将具有高频内容(例如,具有相对大的方差的内容)的边界区域和具有低频内容(例如具有相对小的方差的内容)的边界区域分类成与不同的去块模型相对应的不同类别。可以使用边界区域中的伪影的强度对边界区域进行分类。可以将多模型去块方法应用于任何合适的边界区域,诸如两个或更多个块之间的边界区域(例如,A、B、C、D、AB和/或CD)。可以基于边界区域内的样本的最大差异来确定边界区域的频率。在示例中,确定共享边界的第一侧中的第一边缘附近的样本的第一差异。在示例中,确定共享边界的第二侧中的第二边缘附近的样本的第二差异。在示例中,确定第一差异和第二差异。
可以应用去块NN(例如,图21B中的去块NN(2130)或图23中的去块NN(2330))去除块之间的伪影。在示例中,靠近共享边界的样本或像素可以比远离共享边界的样本(或像素)被更多地去块。返回参照图21A,样本S比样本F靠近共享边界(2141),因此样本S可以比样本F被更多地去块。
去块NN(例如,图21B中的去块NN(2130)或图23中的去块NN(2330))中的去块模型可以包括一个或更多个卷积层。例如,可以使用基于CNN的注意力机制(例如,非局部注意力、Squeeze-and-Excitation Network(SENet))、残差神经网络(ResNet)(例如,包括一组CNN或卷积神经网络以及激活函数)等。例如,例如,可以通过将输出大小改变至与输入大小相同来使用由图像超分辨率使用的DNN。在图像超分辨率中,可以将图像的分辨率从低分辨率提高至高分辨率。
上面描述了如何使用NN或其他基于学习的方法对边界区域执行去块。在一些示例中,视频编码器和/或视频解码器可以在基于NN的去块方法或不基于NN的去块方法之间进行选择。可以在各种级别(诸如切片级别、图片级别、针对一组图片、序列级别等)上进行选择。该选择可以使用标志来用信令通知。该选择可以根据边界区域的内容来推断。
视频编码器和/或视频解码器可以应用除了例如对像素或样本的NN得出的调整在默认水平的边界强度(BS)的本公开内容中描述的方法和实施方式之外的各种水平的边界强度。可以通过分析边界条件和块编码特征分配不同水平的BS以修改(例如,放大或缩小)默认调整。
根据本公开内容的实施方式,至少一个后处理NN可以包含至少一个增强NN。可以使用至少一个增强NN来增强相邻重构块的非边界区域的一个或更多个非边界区域。可以用非边界区域的增强的一个或更多个非边界区域替换非边界区域中的一个或更多个非边界区域。
可以将重构图像(例如,图21C中的图像(2101))发送至增强模块以生成增强的图像(例如,最终的重构图像)。在执行去块的一些实施方式中,可以在通过使用去块NN减少伪影之后将重构图像发送至增强模块。为了提高图像的质量,可以在后增强模块诸如图24中的后增强NN(2430)中使用基于NN的后增强模型(例如,基于DNN或CNN的后增强模型)。
图24示出了根据本公开内容的实施方式的示例增强过程(2400)。在一些示例中,图像(2101)中的非边界区域(2121)至(2124)(例如,除了边界区域A至D之外的剩余区)不被发送至去块模块(例如,去块NN(2130))。在示例中,非边界区域(例如,非边界区域(2121))来自图像(例如,(2101))中的重构块(例如,(2111)),以及边界区域的大小可以是(n-m)×(n-m)。如参照图21A所述,n是重构块(例如,(2111))的边长(例如,宽度和/或高度),并且m是用于去块的子边界区域(例如,A1)的边长。可以将一个或更多个非边界区域(2121)至(2124)发送至增强模块以进一步提高一个或更多个非边界区域(2121)至(2124)的质量。增强的一个或更多个非边界区域可以替换图像中的一个或更多个非边界区域(2121)至(2124)。参照图24,将非边界区域(2121)至(2124)馈送至后增强NN(2430)以生成增强的非边界区域((2121’))至(2124’)。增强的非边界区域(2121’)至(2124’)可以替换增强的非边界区域(2121)至(2124)以生成增强图像(2450)。
在示例中,非边界区域与边界区域交叠,使得非边界区域的一部分在边界区域中。在示例中,非边界区域是整个编码块。参照图24,块(2111)可以是非边界区域,因此非边界区域(2111)与其他相邻的块(诸如(2112)至(2113))邻接。
在一些实施方式中,至少一个增强NN分别基于多个增强模型(例如,后增强模型)。例如,可以通过分类模块确定将多个增强模型的哪一个应用于非边界区域。可以使用确定的增强模型来增强非边界区域。在示例中,通过基于NN(例如,也被称为分类NN)——诸如DNN、CNN等——的分类模块确定应用多个增强模型中的哪一个。分类模块(例如,在后增强过程(例如,(2500))中使用的分类模块(2510))可以与分类模块(例如,在去块过程(例如,(2300))中使用的分类模块(2310))相同或不同。在后增强过程中使用的分类模块(例如,分类模块(2510))可以包括NN(例如,DNN或CNN)。在示例中,后增强过程中使用的分类模块(例如,分类模块(2510))不包括NN。
图25示出了根据本公开内容的实施方式的示例性增强过程(2500),诸如多模型后增强模块。
分类模块(2510)可以将非边界区域(2121)至(2124)分类成一个或更多个类别。例如,将非边界区域(2122)至(2123)分类成第一类别,以及将非边界区域域(2121)和(2124)分类成第二类别。可以将不同的增强模型(例如,后增强模型)应用于不同类别中的非边界区域。在图25中,诸如可以基于多个增强模型(例如,增强模型1至J)的多模型增强,使用增强NN(2530)执行增强。J是正整数。当J为1时,增强NN(2530)包括单个增强模型。当J大于1时,增强NN(2530)包括多个增强模型。
在示例中,将增强模型1应用于第一类别中的非边界区域(例如,(2122)至(2123)),并且生成增强的非边界区域(例如,(2121”)至(2123”))。将增强模型2应用于第二类别中的非边界区域(例如,(2121)和(2124)),并且生成增强的非边界区域(例如,(2121”)和(2124”)))。增强的非边界区域(2121”)至(2124”)可以替换对应的非边界区域(2121)至(2124),增强图像(2550)包括增强的非边界区域(2121”)至(2124”)和边界区域A至D。
可以应用任何合适的度量来对非边界区域进行分类或归类。在示例中,根据非边界区域的内容对非边界区域进行分类。例如,将具有高频内容(例如,具有相对大的方差的内容)的无边界区域和具有低频内容(例如,具有相对小的方差的内容)的无边界区域分成与不同的增强模型相对应的不同的类别。
如参照图21至图25所述,可以在块级别处增强图像。增强模型(例如,后增强模型)可以增强整个图像。图26示出了根据本公开内容的实施方式的用于增强整个图像的示例性图像级别增强过程(2600)。如图21A中所述,图像(2101)包括非边界区域(2121)至(2124)和边界区域A至D。在示例中,如上所述,图像(2101)是包括重构块(2111)至(2114)的重构图像。可以减少边界区域中的伪影,并且可以使用改善的视觉质量来增强非边界区域。
参照图26,可以将包括边界区域A至D和非边界区域(2121)至(2124)的图像(2101)馈送至增强模块(2630)中。增强模块(2630)可以例如通过对边界区域A至D进行去块来生成分别与边界区域A至D相对应的增强的边界区域E至H。增强模块(2630)可以生成分别与非边界区域(2121)至(2124)相对应的增强的非边界区域(2621)至(2624)。增强的边界区域E至H可以分别替换边界区域A至D,以及增强的非边界区域(2621)至(2624)可以分别替换非边界区域(2121)至(2124),因此基于重构的图像(2101)来生成增强的图像(2650)。
在示例中,基于图像的增强模块(2630)包括可以执行去块和增强二者的增强NN。在示例中,基于图像的增强模块(2630)包括可以执行增强的增强NN和可以执行去块的去块NN。
参照图24至图26所描述的增强模块(例如,(2430)、(2530)以及(2630))可以提高图像的质量。增强模块(例如,(2430)、(2530)以及(2630))可以包括一个或更多个卷积层。可以使用基于CNN的注意力机制(例如,非局部注意力,SENet)、ResNet(例如,包括一组CNN或卷积网络以及一个激活函数)等。例如,例如,通过将输出大小改变至与输入大小相同,可以使用由图像超分辨率使用的DNN。
图像中的边界区域和非边界区域可以以任何合适的顺序(诸如顺序地或同时地)由增强NN和去块NN处理。在示例中,边界区域由去块NN去块,以及随后,非边界区域由增强NN处理。在示例中,非边界区域由增强NN处理,以及随后,边界区域由去块NN去块。
根据本公开内容的实施方式,增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330))和/或分类NN(例如,(2310)或(2510))可以包括任何神经网络架构,可以包括任何数目的层,可以包括一个或更多个子神经网络,如本公开内容中所描述,并且可以使用任何合适的训练图像或训练块来训练增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330))和/或分类NN(例如,(2310)或(2510))。训练图像可以包括原始图像或包含残差数据的图像。训练块可以来自原始图像或包含残差数据的图像。
如本公开内容中所述,可以应用内容自适应在线训练以更新增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330)和/或分类NN(例如,(2310)或(2510))之一中的一个或更多个预训练参数。
可以单独地训练增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330))和/或分类NN(例如,(2310)或(2510))),例如,训练单个去块NN以确定去块NN中的预训练参数。增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330))和/或分类NN(例如,(2310)或(2510)))可以作为NIC框架中的部件被训练(被预训练或被在线训练)。例如,NIC框架(900)和增强NN(例如,(2430)、(2530)或(2630))、去块NN(例如,(2130)或(2330))、和/或分类NN(例如,(2310)或(2510))的至少一个可以被联合训练。
例如,由于增强过程是在块被重构之后执行,因此增强过程(例如,(2400)、(2500)或(2600))可以被称为后增强过程。出于相同的原因,增强模块(例如,(2430)、(2530)或(2630))可以被称为后增强模块或后增强NN。
在一些示例中,重构图像(2101)包括残差数据。
例如,可以通过增强模块和去块模块,在不同的过程中修改两个交叠区域中的共享样本。图27示出了根据本公开内容的实施方式的共享样本的示例。图27示出了图像(2701)的一部分。图像(2701)可以是由视频解码器(例如,(1600B)或(1800))重构的图像。图像(2701)内的区(2710)和区(2720)共享区(2730)使得共享的区域(2730)与区域(2710)和区域(2720)交叠。共享的区域(2730)内的样本是由区域(2710)和(2720)共享的样本。在示例中,通过去块模块修改区域(2710),以及通过增强模块修改区域(2720)。
来自增强模块的共享样本的样本值被表示为Pi,其中,i可以是1、2、……以及K,并且K是共享的区域(2730)中的共享的样本的数目。来自去块模块的共享样本的样本值被表示为Di。可以应用加权平均确定共享的样本的最终样本值(表示为Ai)。该过程被称为边界区域处的像素混合。例如,Ai=wi*Pi+(1-wi)*Di,其中wi是针对共享的区域(2730)中的样本位置i设计的权重参数。在示例中,wi被设置为0.5,并且对于不同的样本位置wi相同。在示例中,对于不同的位置,权重可以不同。wi可以取决于两个区域(例如,(2710)和(2720))内的样本的位置。例如,样本S1位于区域(2710)的边缘处,并且位于远离区域(2720)的边缘的列处。因此,样本S1的位置相对于靠近区域(2710)的中心更靠近区域(2720)的中心。对于样本S1,将较大的权重分配给P1。例如,A1=5/8*P1+3/8*D1。例如,样本S2位于区域(2720)的边缘,并且位于远离区域(2721)的边缘的列处。因此,样本S2的位置相对于靠近区域(2720)的中心更靠近区域(2710)的中心。对于样本S2,将较大的权重分配给P2。例如,A2=3/8*P2+5/8*D2。
以上描述可以在多于两个区域包括共享区域时适用及应用。以上描述可以在多个区域包括被去块的边界区域、增强的非边界区域、或被去块的边界区域和增强的非边界区域的组合时适用及应用。
共享样本可以位于边界区域的交叠部分中,或位于边界区域和非边界区域的交叠部分中。如上所述,可以使用增强NN来增强非边界区域,并且可以对边界区域进行去块。可以使用交叠部分的值的加权平均替换共享样本的值。例如,可以使用经去块的边界区域中的共享样本的值和增强的非边界区域中的共享样本的值的加权值替换共享样本的值。
图28示出了概述根据本公开内容的实施方式的过程(2800)的流程图。可以在编码块的重构中使用过程(2800)。在各种实施方式中,通过处理电路(诸如终端装置(310)、(320)、(330)以及(340)中的处理电路,执行视频解码器(1600B)的功能的处理电路,执行视频解码器(1800)的功能的处理电路)执行过程(2800)。在示例中,处理电路执行以下项的功能的组合:(i)视频解码器(410)、视频解码器(510)以及视频解码器(810)中的一个和(ii)视频解码器(1600B)或视频解码器(1800)中的一个。在一些实施方式中,过程(2800)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(2800)。该过程在(S2801)处开始,并进行至(S2010)。
在(S2810)处,可以使用任何合适的方法根据编码视频比特流来重构图像的块。可以基于NNs(诸如CNNs)通过视频解码器(例如,(1600B)或(1800))重构块。在示例中,可以在编码视频比特流中用信令通知视频解码器中的预训练参数的替换参数,并且更新视频解码器。经更新的视频解码器可以重构图像中的块。
在(S2820)处,可以使用至少一个后处理NN对重构块的第一两个相邻重构块的多个区域的一个执行后处理。第一两个相邻的重构块(例如,图21A中的(2111)和(2113))可以具有第一共享边界(例如,(2141))以及包括具有在第一共享边界的两侧上的样本的边界区域(例如,边界区域A)。诸如参照图21A至图21C和图22至图27所述,第一两个相邻重构块的多个区域可以包括边界区域(例如,边界区域A)和边界区域外部的非边界区域(例如,(2121)和(2123))。
在示例中,多个区域的一个区域是边界区域,至少一个后处理NN包括至少一个去块NN,并且可以使用至少一个去块NN对边界区域执行去块。诸如在图21A至图21C中所描述的示例,可以使用经去块的边界区域替换边界区域。
在示例中,如图22中所述,边界区域(例如,图22中的边界区域AB)还包括在第二两个相邻重构块(例如,(2112)和(2114))之间的第二共享边界的两侧上的样本,并且第一两个相邻的重构块(例如,(2111)和(2113))不同于第二两个相邻的重构块(例如,(2112)和(2114))。
在示例中,至少一个去块NN(例如,(2330))分别基于多个去块模型。可以确定将多个去块模型的哪一个应用于边界区域。如图23中所述,可以使用确定的去块模型对边界区域执行去块。
在示例中,至少一个后处理NN包括至少一个增强NN(例如,(2430))。如图24至图25中所述,可以使用至少一个增强NN来增强非边界区域中的一个。
在示例中,如图26中所述,可以对边界区域执行去块,以及对非边界区域进行增强。
在(S2030)处,如参照图21A至21C和图22至图26所述,可以使用第一两个相邻的重构块的多个区域的一个的后处理区域来替换多个区域的一个区域。
过程(2800)进行至(S2899),并结束。
过程(2800)可以适当地适应于各种场景并且可以相应地调整过程(2800)中的步骤。可以调整、省略、重复和/或组合过程(2800)中的一个或更多个步骤。可以使用任何合适的顺序来实现过程(2800)。可以添加另外的步骤。
本公开内容中的实施方式可以单独地使用或以任意顺序组合地使用。此外,可以通过处理电路(例如,一个或更多个处理器或一个或更多个集成电路)来实现方法(或实施方式)、编码器以及解码器的每一个。在一个示例中,一个或更多个处理器执行存储在非暂态计算机可读介质中的程序。
本公开内容不对用于编码器(诸如基于神经网络的编码器)、解码器(诸如基于神经网络的解码器)的方法施加任何限制。在编码器、解码器等中使用的神经网络可以是任何合适类型的神经网络,诸如DNN、CNN等。
因此,本公开内容的内容自适应在线训练方法可以适应不同类型的NIC框架,例如不同类型的编码DNN、解码DNN、编码CNN、解码CNN等。
上述技术可以实现为使用计算机可读指令的计算机软件,并且物理存储在一个或更多个计算机可读介质中。例如,图29示出了适于实现所公开主题的某些实施方式的计算机系统(2900)。
可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,所述机器代码或计算机语言可以经受汇编、编译、链接等机制以创建包括指令的代码,所述指令可以由一个或更多个计算机中央处理单元(central processing unit,CPU)、图形处理单元(Graphics Processing Unit,GPU)等直接执行或者通过解译、微代码执行等执行。
指令可以在各种类型的计算机或其部件(包括例如个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等)上执行。
图29中示出的用于计算机系统(2900)的部件本质上是示例性的,并且不旨在对实现本公开内容的实施方式的计算机软件的使用范围或功能提出任何限制。部件的配置也不应当被解释为具有与计算机系统(2900)的示例性实施方式中示出的部件中的任何一个部件或部件的组合有关的任何依赖性或要求。
计算机系统(2900)可以包括某些人机接口输入装置。这样的人机接口输入装置可以对由一个或更多个人类用户通过例如触觉输入(例如:击键、滑动、数据手套移动)、音频输入(例如:语音、拍打)、视觉输入(例如:姿势)、嗅觉输入(未描绘)实现的输入作出响应。人机接口装置还可以用于捕获不一定与人的有意输入直接有关的某些介质,例如,音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静态图像摄像装置获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。
输入人机接口装置可以包括以下中的一个或更多个(仅描绘每个中的一个):键盘(2901)、鼠标(2902)、轨迹板(2903)、触摸屏(2910)、数据手套(未示出)、操纵杆(2905)、麦克风(2906)、扫描仪(2907)和摄像机(2908)。
计算机系统(2900)还可以包括某些人机接口输出装置。这样的人机接口输出装置可以通过例如触觉输出、声音、光和气味/味道来刺激一个或更多个人类用户的感官。这样的人机接口输出装置可以包括:触觉输出装置(例如,通过触摸屏(2910)、数据手套(未示出)或操纵杆(2905)进行的触觉反馈,但是也可以存在不用作输入装置的触觉反馈装置);音频输出装置(例如:扬声器(2909)、头戴式耳机(未描绘));视觉输出装置(例如,屏幕(2910),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,每个均具有或不具有触摸屏输入能力,每个均具有或不具有触觉反馈能力——其中的一些可能能够通过诸如立体图像输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘);全息显示器和烟罐(未描绘));以及打印机(未描绘)。
计算机系统(2900)还可以包括人类可访问的存储装置及其相关联的介质,例如包括具有CD/DVD等介质(2921)的CD/DVD ROM/RW(2920)的光学介质、拇指驱动器(2922)、可移除硬盘驱动器或固态驱动器(2923)、诸如磁带和软盘的传统磁介质(未描绘)、基于专用ROM/ASIC/PLD的装置诸如安全软件狗(未描绘)等。
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包含传输介质、载波或其他瞬时信号。
计算机系统(2900)还可以包括到一个或更多个通信网络(2955)的接口(2954)。网络可以例如是无线的、有线的、光学的。网络还可以是局域网、广域网、城域网、车辆和工业网络、实时网络、延迟容忍的网络等。网络的示例包括局域网诸如以太网、无线LAN,包括GSM、3G、4G、5G、LTE等的蜂窝网络,包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络,包括CANBus的车辆和工业网络等。某些网络通常需要附接至某些通用数据端口或外围总线(2949)(例如,计算机系统(2900)的USB端口)的外部网络接口适配器;其他网络通常通过附接至如下所述的系统总线集成到计算机系统(2900)的核心中(例如,通过以太网接口集成到PC计算机系统,或通过蜂窝网络接口集成到智能电话计算机系统)。计算机系统(2900)可以通过使用这些网络中的任何网络与其他实体进行通信。这样的通信可以是单向仅接收的(例如,广播电视)、单向仅发送的(例如,到某些CANbus装置的CANbus)、或双向的,例如到使用局域或广域数字网络的其他计算机系统。可以在如上所述的这些网络和网络接口中的每个网络和网络接口上使用特定的协议和协议栈。
以上提及的人机接口装置、人类可访问存储装置和网络接口可以附接至计算机系统(2900)的核(2940)。
核(2940)可以包括一个或更多个中央处理单元(CPU)(2941)、图形处理单元(GPU)(2942)、现场可编程门区域(Field Programmable Gate Area,FPGA)(2943)形式的专用可编程处理单元、用于某些任务的硬件加速器(2944)、图形适配器(2950)等。这些装置以及只读存储器(Read-only memory,ROM)(2945)、随机存取存储器(2946)、内部大容量存储装置(2947)例如内部非用户可访问的硬盘驱动器、SSD等可以通过系统总线(2948)连接。在一些计算机系统中,可以以一个或更多个物理插头的形式访问系统总线(2948),以通过另外的CPU、GPU等实现扩展。外围装置可以直接地或通过外围总线(2949)附接至核的系统总线(2948)。在示例中,屏幕(2910)可以连接至图形适配器(2950)。外围总线的架构包括PCI、USB等。
CPU(2941)、GPU(2942)、FPGA(2943)和加速器(2944)可以执行某些指令,这些指令可以组合构成以上提及的计算机代码。该计算机代码可以被存储在ROM(2945)或RAM(2946)中。过渡数据也可以被存储在RAM(2946)中,而永久数据可以被存储在例如内部大容量存储装置(2947)中。可以通过使用缓存存储器来实现对存储装置中的任何存储装置的快速存储和检索,该缓存存储器可以与一个或更多个CPU(2941)、GPU(2942)、大容量存储装置(2947)、ROM(2945)、RAM(2946)等紧密关联。
计算机可读介质上可以具有用于执行各种计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开内容的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以具有计算机软件领域的技术人员公知且可用的类型。
作为示例而非限制,具有架构的计算机系统(2900)特别是核(2940)可以提供作为处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一个或更多个有形计算机可读介质中的软件的结果而提供的功能。这样的计算机可读介质可以是与如以上所介绍的用户可访问的大容量存储装置相关联的介质,以及具有非暂态性质的核(2940)的某些存储装置,例如核内部的大容量存储装置(2947)或ROM(2945)。可以将实现本公开内容的各种实施方式的软件存储在这样的装置中并且由核(2940)执行。根据特定需求,计算机可读介质可以包括一个或更多个存储器装置或芯片。软件可以使核(2940)——特别是其中的处理器(包括CPU、GPU、FPGA等)——执行本文中描述的特定处理或特定处理的特定部分,包括限定存储在RAM(2946)中的数据结构以及根据由软件限定的处理修改这样的数据结构。另外地或作为替选,计算机系统可以由于硬连线或以其他方式体现在电路中(例如:加速器(2944))的逻辑而提供功能,该逻辑可以代替软件而操作或与软件一起操作以执行本文中描述的特定处理或特定处理的特定部分。在适当的情况下,提及软件可以包含逻辑,并且反之提及逻辑也可以包含软件。在适当的情况下,提及计算机可读介质可以包含存储用于执行的软件的电路(例如,集成电路(integrated circuit,IC))、实施用于执行的逻辑的电路或上述两者。本公开内容包括硬件与软件的任何合适的组合。
附录A:首字母缩写词
JEM:联合开发模型
VVC:多功能视频编码
BMS:基准集
MV:运动矢量
HEVC:高效视频编解码
SEI:补充增强信息
VUI:视频可用性信息
GOPs:图片组
TUs:变换单元
PUs:预测单元
CTUs:编码树单元
CTBs:编码树块
PBs:预测块
HRD:假想参考解码器
SNR:信噪比
CPUs:中央处理单元
GPUs:图形处理单元
CRT:阴极射线管
LCD:液晶显示器
OLED:有机发光二极管
CD:致密盘
DVD:数字视频光盘
ROM:只读存储器
RAM:随机存取存储器
ASIC:专用集成电路
PLD:可编程逻辑装置
LAN:局域网
GSM:全球移动通信系统
LTE:长期演进
CANBus:控制器区域网络总线
USB:通用串行总线
PCI:外围组件互连
FPGA:现场可编程门区域
SSD:固态驱动器
IC:集成电路
CU:编码单元
NIC:神经图像压缩
R-D:率失真
E2E:端到端
ANN:人工神经网络
DNN:深度神经网络
CNN:卷积神经网络
虽然本公开内容已经描述了若干示例性实施方式,但是存在落入本公开内容的范围内的变更、置换和各种替代等同物。因此将认识到,虽然本文中没有明确示出或描述,但是本领域技术人员能够设想实施本公开内容的原理并且因此在其精神和范围内的许多系统和方法。

Claims (20)

1.一种用于视频解码器中的视频解码的方法,包括:
根据编码视频比特流重构图像的块;
用至少一个后处理神经网络(NN)对重构后的块中的第一两个相邻重构块的多个区域中的一个区域执行后处理,所述第一两个相邻重构块具有第一共享边界并且包括具有在所述第一共享边界的两侧上的样本的边界区域,所述第一两个相邻重构块的所述多个区域包括所述边界区域和在所述边界区域外部的非边界区域;以及
用所述第一两个相邻重构块的所述多个区域中的经后处理的所述一个区域替换所述多个区域中的所述一个区域。
2.根据权利要求1所述的方法,其中,
所述多个区域中的所述一个区域是所述边界区域,
所述至少一个后处理NN包括至少一个去块NN,
所述后处理的所述执行包括利用所述至少一个去块NN对所述边界区域执行去块,以及
所述替换包括用经去块的边界区域替换所述边界区域。
3.根据权利要求2所述的方法,其中,
所述边界区域还包括所述重构后的块的第二两个相邻重构块之间的第二共享边界的两侧上的样本,并且
所述第一两个相邻重构块不同于所述第二两个相邻重构块。
4.根据权利要求2所述的方法,其中,
所述至少一个去块NN分别基于多个去块模型,并且
执行去块还包括:
确定将所述多个去块模型中的哪一个去块模型应用于所述边界区域,并且
利用所确定的去块模型对所述边界区域执行去块。
5.根据权利要求4所述的方法,其中,确定应用所述多个去块模型中的哪一个去块模型由分类NN来执行。
6.根据权利要求1所述的方法,其中,
所述至少一个后处理NN包括至少一个增强NN,
所述后处理的所述执行包括利用所述至少一个增强NN增强所述非边界区域中的一个非边界区域,以及
所述替换包括用所述非边界区域中的经增强的一个非边界区域来替换所述非边界区域中的所述一个非边界区域。
7.根据权利要求6所述的方法,其中,
所述至少一个增强NN分别基于多个增强模型,并且
所述增强还包括:
确定将所述多个增强模型中的哪一个增强模型应用于所述非边界区域中的所述一个非边界区域,并且
利用所确定的增强模型增强所述非边界区域中的所述一个非边界区域。
8.根据权利要求1所述的方法,其中,
所述执行包括:
对所述边界区域执行去块,以及
增强所述非边界区域,以及
所述替换包括:
用经去块的边界区域替换所述边界区域,以及
分别用经增强的非边界区域替换所述非边界区域。
9.根据权利要求2所述的方法,其中,
共享样本位于所述边界区域和所述非边界区域中的一个非边界区域中,
所述至少一个后处理NN还包括至少一个增强NN,
所述后处理的所述执行还包括利用所述至少一个增强NN来增强所述非边界区域中的所述一个非边界区域,以及
所述替换还包括用所述非边界区域中的增强的一个非边界区域来替换所述非边界区域中的所述一个非边界区域,用经去块的边界区域中的所述共享样本的值和所述非边界区域中的经增强的一个非边界区域中的所述共享样本的值的加权平均值来替换所述共享样本的值。
10.根据权利要求1所述的方法,其中,
所述方法还包括对所述编码视频比特流中的神经网络更新信息进行解码,所述神经网络更新信息对应于所述块中的一个块并且指示与所述视频解码器中的神经网络中的预训练参数相对应的替换参数;并且
所述块的所述重构包括基于用所述替换参数更新的所述神经网络重构所述块中的所述一个块。
11.一种用于视频解码的设备,包括:
处理电路系统,其被配置成:
根据编码视频比特流重构图像的块;
用至少一个后处理神经网络(NN)对重构后的块中的第一两个相邻重构块的多个区域中的一个区域执行后处理,所述第一两个相邻重构块具有第一共享边界并且包括具有在所述第一共享边界的两侧上的样本的边界区域,所述第一两个相邻重构块的所述多个区域包括所述边界区域和在所述边界区域外部的非边界区域;以及
用所述第一两个相邻重构块的所述多个区域中的经后处理的所述一个区域替换所述多个区域中的所述一个区域。
12.根据权利要求11所述的设备,其中,
所述多个区域中的所述一个区域是所述边界区域,
所述至少一个后处理NN包括至少一个去块NN,并且
所述处理电路系统被配置成:
利用所述至少一个去块NN对所述边界区域执行去块,以及
用经去块的边界区域替换所述边界区域。
13.根据权利要求12所述的设备,其中,
所述边界区域还包括所述重构后的块的第二两个相邻重构块之间的第二共享边界的两侧上的样本,并且
所述第一两个相邻重构块不同于所述第二两个相邻重构块。
14.根据权利要求12所述的设备,其中,
所述至少一个去块NN分别基于多个去块模型,并且
所述处理电路系统被配置成:
确定将所述多个去块模型中的哪一个去块模型应用于所述边界区域,并且
利用所确定的去块模型对所述边界区域执行去块。
15.根据权利要求11所述的设备,其中,
所述至少一个后处理NN包括至少一个增强NN,并且
所述处理电路系统被配置成:
利用所述至少一个增强NN增强所述非边界区域中的一个非边界区域,以及
用所述非边界区域中的经增强的一个非边界区域来替换所述非边界区域中的所述一个非边界区域。
16.根据权利要求15所述的设备,其中,
所述至少一个增强NN分别基于多个增强模型,并且
所述处理电路系统被配置成:
确定将所述多个增强模型中的哪一个增强模型应用于所述非边界区域中的所述一个非边界区域,并且
利用所确定的增强模型增强所述非边界区域中的所述一个非边界区域。
17.根据权利要求11所述的设备,其中,所述处理电路系统被配置成:
对所述边界区域执行去块,
增强所述非边界区域,
用经去块的边界区域替换所述边界区域,以及
分别用经增强的非边界区域替换所述非边界区域。
18.根据权利要求12所述的设备,其中,
共享样本位于所述边界区域和所述非边界区域中的一个非边界区域中,
所述至少一个后处理NN还包括至少一个增强NN,并且
所述处理电路系统被配置成:
利用所述至少一个增强NN来增强所述非边界区域中的所述一个非边界区域,以及
用所述非边界区域中的增强的一个非边界区域来替换所述非边界区域中的所述一个非边界区域,用去块的边界区域中的所述共享样本的值和所述非边界区域中的增强的一个非边界区域中的所述共享样本的值的加权平均值来替换所述共享样本的值。
19.根据权利要求11所述的设备,其中,所述处理电路系统被配置成:
对所述编码视频比特流中的神经网络更新信息进行解码,所述神经网络更新信息对应于所述块中的一个块,并且指示与所述视频解码器中的神经网络中的预训练参数相对应的替换参数;并且
基于利用所述替换参数更新的所述神经网络重构所述块中的所述一个块。
20.一种非暂态计算机可读存储介质,其存储能够由至少一个处理器执行以执行如下操作的程序:
根据编码视频比特流重构图像的块;
用至少一个后处理神经网络(NN)对重构后的块中的第一两个相邻重构块的多个区域中的一个区域执行后处理,所述第一两个相邻重构块具有第一共享边界并且包括具有在所述第一共享边界的两侧上的样本的边界区域,所述第一两个相邻重构块的所述多个区域包括所述边界区域和在所述边界区域外部的非边界区域;以及
用所述第一两个相邻重构块的所述多个区域中的经后处理的一个区域替换所述多个区域中的所述一个区域。
CN202280003599.7A 2021-04-30 2022-04-29 通过后滤波的神经图像压缩中的分块内容自适应在线训练 Pending CN115769576A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163182506P 2021-04-30 2021-04-30
US63/182,506 2021-04-30
US17/730,040 US20220360770A1 (en) 2021-04-30 2022-04-26 Block-wise content-adaptive online training in neural image compression with post filtering
US17/730,040 2022-04-26
PCT/US2022/072029 WO2022232848A1 (en) 2021-04-30 2022-04-29 Block-wise content-adaptive online training in neural image compression with post filtering

Publications (1)

Publication Number Publication Date
CN115769576A true CN115769576A (zh) 2023-03-07

Family

ID=83848782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280003599.7A Pending CN115769576A (zh) 2021-04-30 2022-04-29 通过后滤波的神经图像压缩中的分块内容自适应在线训练

Country Status (5)

Country Link
US (1) US20220360770A1 (zh)
JP (1) JP2023528180A (zh)
KR (1) KR20230003566A (zh)
CN (1) CN115769576A (zh)
WO (1) WO2022232848A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555857A (zh) * 2019-08-19 2019-12-10 浙江工业大学 一种语义边缘主导的高分遥感影像分割方法
CN111145195A (zh) * 2019-12-03 2020-05-12 上海海事大学 一种基于轻量级深度神经网络的视频中人像轮廓探测方法
CN111310767A (zh) * 2020-01-16 2020-06-19 浙江科技学院 一种基于边界增强的显著性检测方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7460596B2 (en) * 2004-04-29 2008-12-02 Mediatek Incorporation Adaptive de-blocking filtering apparatus and method for MPEG video decoder
US8204128B2 (en) * 2007-08-01 2012-06-19 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry, Through The Communications Research Centre Canada Learning filters for enhancing the quality of block coded still and video images
US8891905B2 (en) * 2012-12-19 2014-11-18 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Boundary-based high resolution depth mapping
EP3451293A1 (en) * 2017-08-28 2019-03-06 Thomson Licensing Method and apparatus for filtering with multi-branch deep learning
US11166014B2 (en) * 2017-12-14 2021-11-02 Electronics And Telecommunications Research Institute Image encoding and decoding method and device using prediction network
WO2019194460A1 (ko) * 2018-04-01 2019-10-10 엘지전자 주식회사 컨벌루션 뉴럴 네트워크를 이용한 영상 코딩 방법 및 그 장치
US11716469B2 (en) * 2020-12-10 2023-08-01 Lemon Inc. Model selection in neural network-based in-loop filter for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555857A (zh) * 2019-08-19 2019-12-10 浙江工业大学 一种语义边缘主导的高分遥感影像分割方法
CN111145195A (zh) * 2019-12-03 2020-05-12 上海海事大学 一种基于轻量级深度神经网络的视频中人像轮廓探测方法
CN111310767A (zh) * 2020-01-16 2020-06-19 浙江科技学院 一种基于边界增强的显著性检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WEI JIA等: "Residual Guided Deblocking With Deep Learning", 《ICIP2020》, 25 October 2020 (2020-10-25) *
YAT-HONGLAM等: "AHG11: Content-adaptive neural network post-processing filter(JVET-V0075)", 《JOINTVIDEOEXPERTSTEAM(JVET)OFITU-TSG16WP3ANDISO/IECJTC1/SC2922NDMEETING, BYTELECONFERENCE, 20–28APR.2021》, 21 April 2021 (2021-04-21) *
ZHENGXIN CHEN等: "Enhanced wide-activated residual network for efficient and accurate imagedeblocking", 《SIGNAL PROCESSING: IMAGE COMMUNICATION》, 21 April 2021 (2021-04-21) *

Also Published As

Publication number Publication date
JP2023528180A (ja) 2023-07-04
KR20230003566A (ko) 2023-01-06
US20220360770A1 (en) 2022-11-10
WO2022232848A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
JP7434604B2 (ja) ニューラル画像圧縮における画像置換を用いたコンテンツ適応型オンライン訓練
US11979565B2 (en) Content-adaptive online training method and apparatus for post-filtering
US20220405979A1 (en) Content-adaptive online training method and apparatus for deblocking in block-wise image compression
JP7443564B2 (ja) ビデオデコーディングの方法、装置、及びコンピュータプログラム、並びにビデオエンコーディングの方法
EP4107952A1 (en) Block-wise content-adaptive online training in neural image compression with post filtering
CN116349225B (zh) 视频解码方法和装置、电子设备和存储介质
CN115769576A (zh) 通过后滤波的神经图像压缩中的分块内容自适应在线训练
US11889112B2 (en) Block-wise content-adaptive online training in neural image compression
US20220353521A1 (en) Method and apparatus for content-adaptive online training in neural image compression

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40083589

Country of ref document: HK